commit 8ffb0acb2672cd200c20a4c809f5c20a836dae45 Author: Radek Davidek Date: Thu Feb 26 15:03:19 2026 +0100 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..15ad8ef --- /dev/null +++ b/.gitignore @@ -0,0 +1,51 @@ +### Eclipse +.metadata +.classpath +.project +.settings/ + +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.mvn +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +mvnw +mvnw.cmd + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ + +### Log4j2 ### +logs +*.log + +# Ignore Mac DS_Store files +.DS_Store + +dependency-reduced-pom.xml + +cert.pem \ No newline at end of file diff --git a/test-harness/.gitignore b/test-harness/.gitignore new file mode 100644 index 0000000..ff7a25f --- /dev/null +++ b/test-harness/.gitignore @@ -0,0 +1,6 @@ +.idea +target +*.iml +.classpath +.project +.settings diff --git a/test-harness/README.md b/test-harness/README.md new file mode 100644 index 0000000..d7f51bf --- /dev/null +++ b/test-harness/README.md @@ -0,0 +1,3 @@ +# Test Harness + +This repo conatins Test Harness, code name "Hercules". diff --git a/test-harness/lib/ST4-4.3.4.jar b/test-harness/lib/ST4-4.3.4.jar new file mode 100644 index 0000000..21a2f61 Binary files /dev/null and b/test-harness/lib/ST4-4.3.4.jar differ diff --git a/test-harness/lib/accessors-smart-2.5.0.jar b/test-harness/lib/accessors-smart-2.5.0.jar new file mode 100644 index 0000000..2acd43b Binary files /dev/null and b/test-harness/lib/accessors-smart-2.5.0.jar differ diff --git a/test-harness/lib/angus-activation-2.0.1.jar b/test-harness/lib/angus-activation-2.0.1.jar new file mode 100644 index 0000000..9d56221 Binary files /dev/null and b/test-harness/lib/angus-activation-2.0.1.jar differ diff --git a/test-harness/lib/angus-mail-1.0.0.jar b/test-harness/lib/angus-mail-1.0.0.jar new file mode 100644 index 0000000..6a14b6f Binary files /dev/null and b/test-harness/lib/angus-mail-1.0.0.jar differ diff --git a/test-harness/lib/antlr-runtime-3.5.3.jar b/test-harness/lib/antlr-runtime-3.5.3.jar new file mode 100644 index 0000000..0b06a7a Binary files /dev/null and b/test-harness/lib/antlr-runtime-3.5.3.jar differ diff --git a/test-harness/lib/aopalliance-repackaged-3.0.3.jar b/test-harness/lib/aopalliance-repackaged-3.0.3.jar new file mode 100644 index 0000000..b774de5 Binary files /dev/null and b/test-harness/lib/aopalliance-repackaged-3.0.3.jar differ diff --git a/test-harness/lib/apiguardian-api-1.1.0.jar b/test-harness/lib/apiguardian-api-1.1.0.jar new file mode 100644 index 0000000..e6fcead Binary files /dev/null and b/test-harness/lib/apiguardian-api-1.1.0.jar differ diff --git a/test-harness/lib/asm-9.5.jar b/test-harness/lib/asm-9.5.jar new file mode 100644 index 0000000..f5701dc Binary files /dev/null and b/test-harness/lib/asm-9.5.jar differ diff --git a/test-harness/lib/assertj-core-3.25.3.jar b/test-harness/lib/assertj-core-3.25.3.jar new file mode 100644 index 0000000..5bbac20 Binary files /dev/null and b/test-harness/lib/assertj-core-3.25.3.jar differ diff --git a/test-harness/lib/async-http-client-2.12.3.jar b/test-harness/lib/async-http-client-2.12.3.jar new file mode 100644 index 0000000..3bed21d Binary files /dev/null and b/test-harness/lib/async-http-client-2.12.3.jar differ diff --git a/test-harness/lib/async-http-client-netty-utils-2.12.3.jar b/test-harness/lib/async-http-client-netty-utils-2.12.3.jar new file mode 100644 index 0000000..f072e8f Binary files /dev/null and b/test-harness/lib/async-http-client-netty-utils-2.12.3.jar differ diff --git a/test-harness/lib/auto-service-annotations-1.1.1.jar b/test-harness/lib/auto-service-annotations-1.1.1.jar new file mode 100644 index 0000000..b9ceaf7 Binary files /dev/null and b/test-harness/lib/auto-service-annotations-1.1.1.jar differ diff --git a/test-harness/lib/bcpkix-jdk18on-1.72.jar b/test-harness/lib/bcpkix-jdk18on-1.72.jar new file mode 100644 index 0000000..b4902c8 Binary files /dev/null and b/test-harness/lib/bcpkix-jdk18on-1.72.jar differ diff --git a/test-harness/lib/bcprov-jdk18on-1.71.jar b/test-harness/lib/bcprov-jdk18on-1.71.jar new file mode 100644 index 0000000..c996730 Binary files /dev/null and b/test-harness/lib/bcprov-jdk18on-1.71.jar differ diff --git a/test-harness/lib/bcutil-jdk18on-1.72.jar b/test-harness/lib/bcutil-jdk18on-1.72.jar new file mode 100644 index 0000000..e9be74d Binary files /dev/null and b/test-harness/lib/bcutil-jdk18on-1.72.jar differ diff --git a/test-harness/lib/byte-buddy-1.14.5.jar b/test-harness/lib/byte-buddy-1.14.5.jar new file mode 100644 index 0000000..409c3c3 Binary files /dev/null and b/test-harness/lib/byte-buddy-1.14.5.jar differ diff --git a/test-harness/lib/cache-api-1.1.0.jar b/test-harness/lib/cache-api-1.1.0.jar new file mode 100644 index 0000000..4640137 Binary files /dev/null and b/test-harness/lib/cache-api-1.1.0.jar differ diff --git a/test-harness/lib/checker-qual-3.41.0.jar b/test-harness/lib/checker-qual-3.41.0.jar new file mode 100644 index 0000000..17a85a1 Binary files /dev/null and b/test-harness/lib/checker-qual-3.41.0.jar differ diff --git a/test-harness/lib/commons-beanutils-1.9.3.jar b/test-harness/lib/commons-beanutils-1.9.3.jar new file mode 100644 index 0000000..6728154 Binary files /dev/null and b/test-harness/lib/commons-beanutils-1.9.3.jar differ diff --git a/test-harness/lib/commons-beanutils-core-1.8.0.jar b/test-harness/lib/commons-beanutils-core-1.8.0.jar new file mode 100644 index 0000000..87c15f4 Binary files /dev/null and b/test-harness/lib/commons-beanutils-core-1.8.0.jar differ diff --git a/test-harness/lib/commons-codec-1.11.jar b/test-harness/lib/commons-codec-1.11.jar new file mode 100644 index 0000000..2245120 Binary files /dev/null and b/test-harness/lib/commons-codec-1.11.jar differ diff --git a/test-harness/lib/commons-collections-3.2.2.jar b/test-harness/lib/commons-collections-3.2.2.jar new file mode 100644 index 0000000..fa5df82 Binary files /dev/null and b/test-harness/lib/commons-collections-3.2.2.jar differ diff --git a/test-harness/lib/commons-configuration-1.6.jar b/test-harness/lib/commons-configuration-1.6.jar new file mode 100644 index 0000000..2d4689a Binary files /dev/null and b/test-harness/lib/commons-configuration-1.6.jar differ diff --git a/test-harness/lib/commons-digester-1.8.jar b/test-harness/lib/commons-digester-1.8.jar new file mode 100644 index 0000000..1110f0a Binary files /dev/null and b/test-harness/lib/commons-digester-1.8.jar differ diff --git a/test-harness/lib/commons-exec-1.3.jar b/test-harness/lib/commons-exec-1.3.jar new file mode 100644 index 0000000..9a64351 Binary files /dev/null and b/test-harness/lib/commons-exec-1.3.jar differ diff --git a/test-harness/lib/commons-io-2.6.jar b/test-harness/lib/commons-io-2.6.jar new file mode 100644 index 0000000..00556b1 Binary files /dev/null and b/test-harness/lib/commons-io-2.6.jar differ diff --git a/test-harness/lib/commons-lang-2.4.jar b/test-harness/lib/commons-lang-2.4.jar new file mode 100644 index 0000000..532939e Binary files /dev/null and b/test-harness/lib/commons-lang-2.4.jar differ diff --git a/test-harness/lib/commons-lang3-3.7.jar b/test-harness/lib/commons-lang3-3.7.jar new file mode 100644 index 0000000..f37ded6 Binary files /dev/null and b/test-harness/lib/commons-lang3-3.7.jar differ diff --git a/test-harness/lib/commons-logging-1.2.jar b/test-harness/lib/commons-logging-1.2.jar new file mode 100644 index 0000000..93a3b9f Binary files /dev/null and b/test-harness/lib/commons-logging-1.2.jar differ diff --git a/test-harness/lib/commons-text-1.4.jar b/test-harness/lib/commons-text-1.4.jar new file mode 100644 index 0000000..3e81a79 Binary files /dev/null and b/test-harness/lib/commons-text-1.4.jar differ diff --git a/test-harness/lib/cryptacular-1.2.5.jar b/test-harness/lib/cryptacular-1.2.5.jar new file mode 100644 index 0000000..8cc43f3 Binary files /dev/null and b/test-harness/lib/cryptacular-1.2.5.jar differ diff --git a/test-harness/lib/cxf-core-4.0.3.jar b/test-harness/lib/cxf-core-4.0.3.jar new file mode 100644 index 0000000..da16bfd Binary files /dev/null and b/test-harness/lib/cxf-core-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-bindings-soap-4.0.3.jar b/test-harness/lib/cxf-rt-bindings-soap-4.0.3.jar new file mode 100644 index 0000000..8d7558f Binary files /dev/null and b/test-harness/lib/cxf-rt-bindings-soap-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-bindings-xml-4.0.3.jar b/test-harness/lib/cxf-rt-bindings-xml-4.0.3.jar new file mode 100644 index 0000000..a33f33f Binary files /dev/null and b/test-harness/lib/cxf-rt-bindings-xml-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-databinding-jaxb-4.0.3.jar b/test-harness/lib/cxf-rt-databinding-jaxb-4.0.3.jar new file mode 100644 index 0000000..be639d0 Binary files /dev/null and b/test-harness/lib/cxf-rt-databinding-jaxb-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-frontend-jaxws-4.0.3.jar b/test-harness/lib/cxf-rt-frontend-jaxws-4.0.3.jar new file mode 100644 index 0000000..934b3e7 Binary files /dev/null and b/test-harness/lib/cxf-rt-frontend-jaxws-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-frontend-simple-4.0.3.jar b/test-harness/lib/cxf-rt-frontend-simple-4.0.3.jar new file mode 100644 index 0000000..ebbd05d Binary files /dev/null and b/test-harness/lib/cxf-rt-frontend-simple-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-security-4.0.3.jar b/test-harness/lib/cxf-rt-security-4.0.3.jar new file mode 100644 index 0000000..b19c6ba Binary files /dev/null and b/test-harness/lib/cxf-rt-security-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-security-saml-4.0.3.jar b/test-harness/lib/cxf-rt-security-saml-4.0.3.jar new file mode 100644 index 0000000..429085b Binary files /dev/null and b/test-harness/lib/cxf-rt-security-saml-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-transports-http-4.0.3.jar b/test-harness/lib/cxf-rt-transports-http-4.0.3.jar new file mode 100644 index 0000000..b13dbf1 Binary files /dev/null and b/test-harness/lib/cxf-rt-transports-http-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-ws-addr-4.0.3.jar b/test-harness/lib/cxf-rt-ws-addr-4.0.3.jar new file mode 100644 index 0000000..d102c84 Binary files /dev/null and b/test-harness/lib/cxf-rt-ws-addr-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-ws-policy-4.0.3.jar b/test-harness/lib/cxf-rt-ws-policy-4.0.3.jar new file mode 100644 index 0000000..b0bb85b Binary files /dev/null and b/test-harness/lib/cxf-rt-ws-policy-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-ws-security-4.0.3.jar b/test-harness/lib/cxf-rt-ws-security-4.0.3.jar new file mode 100644 index 0000000..33ac751 Binary files /dev/null and b/test-harness/lib/cxf-rt-ws-security-4.0.3.jar differ diff --git a/test-harness/lib/cxf-rt-wsdl-4.0.3.jar b/test-harness/lib/cxf-rt-wsdl-4.0.3.jar new file mode 100644 index 0000000..943b8a1 Binary files /dev/null and b/test-harness/lib/cxf-rt-wsdl-4.0.3.jar differ diff --git a/test-harness/lib/dm3270-lib-0.9.1.jar b/test-harness/lib/dm3270-lib-0.9.1.jar new file mode 100644 index 0000000..2e9afae Binary files /dev/null and b/test-harness/lib/dm3270-lib-0.9.1.jar differ diff --git a/test-harness/lib/ehcache-3.10.8-jakarta.jar b/test-harness/lib/ehcache-3.10.8-jakarta.jar new file mode 100644 index 0000000..264b547 Binary files /dev/null and b/test-harness/lib/ehcache-3.10.8-jakarta.jar differ diff --git a/test-harness/lib/error_prone_annotations-2.27.0.jar b/test-harness/lib/error_prone_annotations-2.27.0.jar new file mode 100644 index 0000000..4ea471f Binary files /dev/null and b/test-harness/lib/error_prone_annotations-2.27.0.jar differ diff --git a/test-harness/lib/failsafe-3.3.2.jar b/test-harness/lib/failsafe-3.3.2.jar new file mode 100644 index 0000000..76ae519 Binary files /dev/null and b/test-harness/lib/failsafe-3.3.2.jar differ diff --git a/test-harness/lib/failureaccess-1.0.1.jar b/test-harness/lib/failureaccess-1.0.1.jar new file mode 100644 index 0000000..9b56dc7 Binary files /dev/null and b/test-harness/lib/failureaccess-1.0.1.jar differ diff --git a/test-harness/lib/gson-2.11.0.jar b/test-harness/lib/gson-2.11.0.jar new file mode 100644 index 0000000..18e59c8 Binary files /dev/null and b/test-harness/lib/gson-2.11.0.jar differ diff --git a/test-harness/lib/guava-32.1.2-jre.jar b/test-harness/lib/guava-32.1.2-jre.jar new file mode 100644 index 0000000..e71fd46 Binary files /dev/null and b/test-harness/lib/guava-32.1.2-jre.jar differ diff --git a/test-harness/lib/hamcrest-core-1.3.jar b/test-harness/lib/hamcrest-core-1.3.jar new file mode 100644 index 0000000..9d5fe16 Binary files /dev/null and b/test-harness/lib/hamcrest-core-1.3.jar differ diff --git a/test-harness/lib/hk2-api-3.0.3.jar b/test-harness/lib/hk2-api-3.0.3.jar new file mode 100644 index 0000000..a8f8e88 Binary files /dev/null and b/test-harness/lib/hk2-api-3.0.3.jar differ diff --git a/test-harness/lib/hk2-locator-3.0.3.jar b/test-harness/lib/hk2-locator-3.0.3.jar new file mode 100644 index 0000000..6fd9b3b Binary files /dev/null and b/test-harness/lib/hk2-locator-3.0.3.jar differ diff --git a/test-harness/lib/hk2-utils-3.0.3.jar b/test-harness/lib/hk2-utils-3.0.3.jar new file mode 100644 index 0000000..e586d4c Binary files /dev/null and b/test-harness/lib/hk2-utils-3.0.3.jar differ diff --git a/test-harness/lib/httpclient-4.5.14.jar b/test-harness/lib/httpclient-4.5.14.jar new file mode 100644 index 0000000..2bb7c07 Binary files /dev/null and b/test-harness/lib/httpclient-4.5.14.jar differ diff --git a/test-harness/lib/httpcore-4.4.16.jar b/test-harness/lib/httpcore-4.4.16.jar new file mode 100644 index 0000000..f0bdebe Binary files /dev/null and b/test-harness/lib/httpcore-4.4.16.jar differ diff --git a/test-harness/lib/ilods_shared_resources-0.0.9.jar b/test-harness/lib/ilods_shared_resources-0.0.9.jar new file mode 100644 index 0000000..0d101b1 Binary files /dev/null and b/test-harness/lib/ilods_shared_resources-0.0.9.jar differ diff --git a/test-harness/lib/istack-commons-runtime-4.0.0.jar b/test-harness/lib/istack-commons-runtime-4.0.0.jar new file mode 100644 index 0000000..66f9d42 Binary files /dev/null and b/test-harness/lib/istack-commons-runtime-4.0.0.jar differ diff --git a/test-harness/lib/j2objc-annotations-2.8.jar b/test-harness/lib/j2objc-annotations-2.8.jar new file mode 100644 index 0000000..3595c4f Binary files /dev/null and b/test-harness/lib/j2objc-annotations-2.8.jar differ diff --git a/test-harness/lib/jackson-annotations-2.16.1.jar b/test-harness/lib/jackson-annotations-2.16.1.jar new file mode 100644 index 0000000..b9c48e6 Binary files /dev/null and b/test-harness/lib/jackson-annotations-2.16.1.jar differ diff --git a/test-harness/lib/jackson-core-2.16.1.jar b/test-harness/lib/jackson-core-2.16.1.jar new file mode 100644 index 0000000..a8ff5e3 Binary files /dev/null and b/test-harness/lib/jackson-core-2.16.1.jar differ diff --git a/test-harness/lib/jackson-databind-2.16.1.jar b/test-harness/lib/jackson-databind-2.16.1.jar new file mode 100644 index 0000000..5171b7a Binary files /dev/null and b/test-harness/lib/jackson-databind-2.16.1.jar differ diff --git a/test-harness/lib/jackson-dataformat-csv-2.16.1.jar b/test-harness/lib/jackson-dataformat-csv-2.16.1.jar new file mode 100644 index 0000000..d59e286 Binary files /dev/null and b/test-harness/lib/jackson-dataformat-csv-2.16.1.jar differ diff --git a/test-harness/lib/jackson-dataformat-xml-2.16.1.jar b/test-harness/lib/jackson-dataformat-xml-2.16.1.jar new file mode 100644 index 0000000..1cd03f2 Binary files /dev/null and b/test-harness/lib/jackson-dataformat-xml-2.16.1.jar differ diff --git a/test-harness/lib/jackson-datatype-jdk8-2.16.1.jar b/test-harness/lib/jackson-datatype-jdk8-2.16.1.jar new file mode 100644 index 0000000..e399401 Binary files /dev/null and b/test-harness/lib/jackson-datatype-jdk8-2.16.1.jar differ diff --git a/test-harness/lib/jackson-datatype-jsr310-2.16.1.jar b/test-harness/lib/jackson-datatype-jsr310-2.16.1.jar new file mode 100644 index 0000000..d34b0ef Binary files /dev/null and b/test-harness/lib/jackson-datatype-jsr310-2.16.1.jar differ diff --git a/test-harness/lib/jackson-module-jakarta-xmlbind-annotations-2.15.3.jar b/test-harness/lib/jackson-module-jakarta-xmlbind-annotations-2.15.3.jar new file mode 100644 index 0000000..312cfe2 Binary files /dev/null and b/test-harness/lib/jackson-module-jakarta-xmlbind-annotations-2.15.3.jar differ diff --git a/test-harness/lib/jackson-module-parameter-names-2.16.1.jar b/test-harness/lib/jackson-module-parameter-names-2.16.1.jar new file mode 100644 index 0000000..83a08af Binary files /dev/null and b/test-harness/lib/jackson-module-parameter-names-2.16.1.jar differ diff --git a/test-harness/lib/jakarta.activation-2.0.1.jar b/test-harness/lib/jakarta.activation-2.0.1.jar new file mode 100644 index 0000000..521c7c4 Binary files /dev/null and b/test-harness/lib/jakarta.activation-2.0.1.jar differ diff --git a/test-harness/lib/jakarta.activation-api-2.1.2.jar b/test-harness/lib/jakarta.activation-api-2.1.2.jar new file mode 100644 index 0000000..ea57b3e Binary files /dev/null and b/test-harness/lib/jakarta.activation-api-2.1.2.jar differ diff --git a/test-harness/lib/jakarta.annotation-api-2.0.0.jar b/test-harness/lib/jakarta.annotation-api-2.0.0.jar new file mode 100644 index 0000000..a7f3008 Binary files /dev/null and b/test-harness/lib/jakarta.annotation-api-2.0.0.jar differ diff --git a/test-harness/lib/jakarta.inject-api-2.0.1.jar b/test-harness/lib/jakarta.inject-api-2.0.1.jar new file mode 100644 index 0000000..a92e099 Binary files /dev/null and b/test-harness/lib/jakarta.inject-api-2.0.1.jar differ diff --git a/test-harness/lib/jakarta.jws-api-3.0.0.jar b/test-harness/lib/jakarta.jws-api-3.0.0.jar new file mode 100644 index 0000000..5d6151b Binary files /dev/null and b/test-harness/lib/jakarta.jws-api-3.0.0.jar differ diff --git a/test-harness/lib/jakarta.mail-api-2.1.0.jar b/test-harness/lib/jakarta.mail-api-2.1.0.jar new file mode 100644 index 0000000..ae91f12 Binary files /dev/null and b/test-harness/lib/jakarta.mail-api-2.1.0.jar differ diff --git a/test-harness/lib/jakarta.ws.rs-api-3.0.0.jar b/test-harness/lib/jakarta.ws.rs-api-3.0.0.jar new file mode 100644 index 0000000..31f2596 Binary files /dev/null and b/test-harness/lib/jakarta.ws.rs-api-3.0.0.jar differ diff --git a/test-harness/lib/jakarta.xml.bind-api-3.0.1.jar b/test-harness/lib/jakarta.xml.bind-api-3.0.1.jar new file mode 100644 index 0000000..f890cba Binary files /dev/null and b/test-harness/lib/jakarta.xml.bind-api-3.0.1.jar differ diff --git a/test-harness/lib/jakarta.xml.soap-api-3.0.1.jar b/test-harness/lib/jakarta.xml.soap-api-3.0.1.jar new file mode 100644 index 0000000..7a9e6da Binary files /dev/null and b/test-harness/lib/jakarta.xml.soap-api-3.0.1.jar differ diff --git a/test-harness/lib/jakarta.xml.ws-api-3.0.1.jar b/test-harness/lib/jakarta.xml.ws-api-3.0.1.jar new file mode 100644 index 0000000..f27aa1b Binary files /dev/null and b/test-harness/lib/jakarta.xml.ws-api-3.0.1.jar differ diff --git a/test-harness/lib/jasypt-1.9.3.jar b/test-harness/lib/jasypt-1.9.3.jar new file mode 100644 index 0000000..f4c4606 Binary files /dev/null and b/test-harness/lib/jasypt-1.9.3.jar differ diff --git a/test-harness/lib/java-client-8.6.0.jar b/test-harness/lib/java-client-8.6.0.jar new file mode 100644 index 0000000..b88a760 Binary files /dev/null and b/test-harness/lib/java-client-8.6.0.jar differ diff --git a/test-harness/lib/java-support-8.4.0.jar b/test-harness/lib/java-support-8.4.0.jar new file mode 100644 index 0000000..53c7638 Binary files /dev/null and b/test-harness/lib/java-support-8.4.0.jar differ diff --git a/test-harness/lib/javassist-3.29.2-GA.jar b/test-harness/lib/javassist-3.29.2-GA.jar new file mode 100644 index 0000000..68fc301 Binary files /dev/null and b/test-harness/lib/javassist-3.29.2-GA.jar differ diff --git a/test-harness/lib/jaxb-core-3.0.0-M5.jar b/test-harness/lib/jaxb-core-3.0.0-M5.jar new file mode 100644 index 0000000..eb823a8 Binary files /dev/null and b/test-harness/lib/jaxb-core-3.0.0-M5.jar differ diff --git a/test-harness/lib/jaxb-runtime-3.0.0-M5.jar b/test-harness/lib/jaxb-runtime-3.0.0-M5.jar new file mode 100644 index 0000000..d45e2ff Binary files /dev/null and b/test-harness/lib/jaxb-runtime-3.0.0-M5.jar differ diff --git a/test-harness/lib/jersey-client-3.0.12.jar b/test-harness/lib/jersey-client-3.0.12.jar new file mode 100644 index 0000000..934a76e Binary files /dev/null and b/test-harness/lib/jersey-client-3.0.12.jar differ diff --git a/test-harness/lib/jersey-common-3.0.12.jar b/test-harness/lib/jersey-common-3.0.12.jar new file mode 100644 index 0000000..e4198b0 Binary files /dev/null and b/test-harness/lib/jersey-common-3.0.12.jar differ diff --git a/test-harness/lib/jersey-entity-filtering-3.0.12.jar b/test-harness/lib/jersey-entity-filtering-3.0.12.jar new file mode 100644 index 0000000..fa4a122 Binary files /dev/null and b/test-harness/lib/jersey-entity-filtering-3.0.12.jar differ diff --git a/test-harness/lib/jersey-hk2-3.0.12.jar b/test-harness/lib/jersey-hk2-3.0.12.jar new file mode 100644 index 0000000..5960a0d Binary files /dev/null and b/test-harness/lib/jersey-hk2-3.0.12.jar differ diff --git a/test-harness/lib/jersey-media-json-jackson-3.0.12.jar b/test-harness/lib/jersey-media-json-jackson-3.0.12.jar new file mode 100644 index 0000000..0fd98cb Binary files /dev/null and b/test-harness/lib/jersey-media-json-jackson-3.0.12.jar differ diff --git a/test-harness/lib/jersey-media-multipart-3.0.12.jar b/test-harness/lib/jersey-media-multipart-3.0.12.jar new file mode 100644 index 0000000..b4b4dea Binary files /dev/null and b/test-harness/lib/jersey-media-multipart-3.0.12.jar differ diff --git a/test-harness/lib/jooq-3.1.0.jar b/test-harness/lib/jooq-3.1.0.jar new file mode 100644 index 0000000..14fac2d Binary files /dev/null and b/test-harness/lib/jooq-3.1.0.jar differ diff --git a/test-harness/lib/json-path-2.9.0.jar b/test-harness/lib/json-path-2.9.0.jar new file mode 100644 index 0000000..f731408 Binary files /dev/null and b/test-harness/lib/json-path-2.9.0.jar differ diff --git a/test-harness/lib/json-smart-2.5.0.jar b/test-harness/lib/json-smart-2.5.0.jar new file mode 100644 index 0000000..2685e03 Binary files /dev/null and b/test-harness/lib/json-smart-2.5.0.jar differ diff --git a/test-harness/lib/json-unit-assertj-3.2.7.jar b/test-harness/lib/json-unit-assertj-3.2.7.jar new file mode 100644 index 0000000..4a11797 Binary files /dev/null and b/test-harness/lib/json-unit-assertj-3.2.7.jar differ diff --git a/test-harness/lib/json-unit-core-3.2.7.jar b/test-harness/lib/json-unit-core-3.2.7.jar new file mode 100644 index 0000000..631f8b8 Binary files /dev/null and b/test-harness/lib/json-unit-core-3.2.7.jar differ diff --git a/test-harness/lib/json-unit-json-path-3.2.7.jar b/test-harness/lib/json-unit-json-path-3.2.7.jar new file mode 100644 index 0000000..21dc4df Binary files /dev/null and b/test-harness/lib/json-unit-json-path-3.2.7.jar differ diff --git a/test-harness/lib/jsr305-3.0.2.jar b/test-harness/lib/jsr305-3.0.2.jar new file mode 100644 index 0000000..59222d9 Binary files /dev/null and b/test-harness/lib/jsr305-3.0.2.jar differ diff --git a/test-harness/lib/junit-4.12.jar b/test-harness/lib/junit-4.12.jar new file mode 100644 index 0000000..3a7fc26 Binary files /dev/null and b/test-harness/lib/junit-4.12.jar differ diff --git a/test-harness/lib/junit-jupiter-api-5.5.1.jar b/test-harness/lib/junit-jupiter-api-5.5.1.jar new file mode 100644 index 0000000..8873cb4 Binary files /dev/null and b/test-harness/lib/junit-jupiter-api-5.5.1.jar differ diff --git a/test-harness/lib/junit-jupiter-engine-5.5.1.jar b/test-harness/lib/junit-jupiter-engine-5.5.1.jar new file mode 100644 index 0000000..f6f4218 Binary files /dev/null and b/test-harness/lib/junit-jupiter-engine-5.5.1.jar differ diff --git a/test-harness/lib/junit-jupiter-params-5.5.1.jar b/test-harness/lib/junit-jupiter-params-5.5.1.jar new file mode 100644 index 0000000..ed32475 Binary files /dev/null and b/test-harness/lib/junit-jupiter-params-5.5.1.jar differ diff --git a/test-harness/lib/junit-platform-commons-1.5.1.jar b/test-harness/lib/junit-platform-commons-1.5.1.jar new file mode 100644 index 0000000..f941792 Binary files /dev/null and b/test-harness/lib/junit-platform-commons-1.5.1.jar differ diff --git a/test-harness/lib/junit-platform-engine-1.5.1.jar b/test-harness/lib/junit-platform-engine-1.5.1.jar new file mode 100644 index 0000000..34d024f Binary files /dev/null and b/test-harness/lib/junit-platform-engine-1.5.1.jar differ diff --git a/test-harness/lib/junit-platform-launcher-1.5.1.jar b/test-harness/lib/junit-platform-launcher-1.5.1.jar new file mode 100644 index 0000000..829fa2c Binary files /dev/null and b/test-harness/lib/junit-platform-launcher-1.5.1.jar differ diff --git a/test-harness/lib/junit-platform-runner-1.5.1.jar b/test-harness/lib/junit-platform-runner-1.5.1.jar new file mode 100644 index 0000000..9e29b1a Binary files /dev/null and b/test-harness/lib/junit-platform-runner-1.5.1.jar differ diff --git a/test-harness/lib/junit-platform-suite-api-1.5.1.jar b/test-harness/lib/junit-platform-suite-api-1.5.1.jar new file mode 100644 index 0000000..7056e86 Binary files /dev/null and b/test-harness/lib/junit-platform-suite-api-1.5.1.jar differ diff --git a/test-harness/lib/junit-vintage-engine-5.5.1.jar b/test-harness/lib/junit-vintage-engine-5.5.1.jar new file mode 100644 index 0000000..3022219 Binary files /dev/null and b/test-harness/lib/junit-vintage-engine-5.5.1.jar differ diff --git a/test-harness/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar b/test-harness/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar new file mode 100644 index 0000000..45832c0 Binary files /dev/null and b/test-harness/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar differ diff --git a/test-harness/lib/log4j-api-2.17.1.jar b/test-harness/lib/log4j-api-2.17.1.jar new file mode 100644 index 0000000..605c45d Binary files /dev/null and b/test-harness/lib/log4j-api-2.17.1.jar differ diff --git a/test-harness/lib/log4j-core-2.17.1.jar b/test-harness/lib/log4j-core-2.17.1.jar new file mode 100644 index 0000000..bbead12 Binary files /dev/null and b/test-harness/lib/log4j-core-2.17.1.jar differ diff --git a/test-harness/lib/log4j-iostreams-2.17.1.jar b/test-harness/lib/log4j-iostreams-2.17.1.jar new file mode 100644 index 0000000..10b6db7 Binary files /dev/null and b/test-harness/lib/log4j-iostreams-2.17.1.jar differ diff --git a/test-harness/lib/log4j-jul-2.17.1.jar b/test-harness/lib/log4j-jul-2.17.1.jar new file mode 100644 index 0000000..bab94c2 Binary files /dev/null and b/test-harness/lib/log4j-jul-2.17.1.jar differ diff --git a/test-harness/lib/metrics-core-4.2.15.jar b/test-harness/lib/metrics-core-4.2.15.jar new file mode 100644 index 0000000..cbeed55 Binary files /dev/null and b/test-harness/lib/metrics-core-4.2.15.jar differ diff --git a/test-harness/lib/mimepull-1.9.11.jar b/test-harness/lib/mimepull-1.9.11.jar new file mode 100644 index 0000000..99a4aba Binary files /dev/null and b/test-harness/lib/mimepull-1.9.11.jar differ diff --git a/test-harness/lib/mssql-jdbc-8.2.0.jre8.jar b/test-harness/lib/mssql-jdbc-8.2.0.jre8.jar new file mode 100644 index 0000000..9b9f025 Binary files /dev/null and b/test-harness/lib/mssql-jdbc-8.2.0.jre8.jar differ diff --git a/test-harness/lib/neethi-3.2.0.jar b/test-harness/lib/neethi-3.2.0.jar new file mode 100644 index 0000000..840bf4f Binary files /dev/null and b/test-harness/lib/neethi-3.2.0.jar differ diff --git a/test-harness/lib/netty-buffer-4.1.96.Final.jar b/test-harness/lib/netty-buffer-4.1.96.Final.jar new file mode 100644 index 0000000..354486b Binary files /dev/null and b/test-harness/lib/netty-buffer-4.1.96.Final.jar differ diff --git a/test-harness/lib/netty-codec-4.1.96.Final.jar b/test-harness/lib/netty-codec-4.1.96.Final.jar new file mode 100644 index 0000000..7101971 Binary files /dev/null and b/test-harness/lib/netty-codec-4.1.96.Final.jar differ diff --git a/test-harness/lib/netty-codec-http-4.1.96.Final.jar b/test-harness/lib/netty-codec-http-4.1.96.Final.jar new file mode 100644 index 0000000..e598d2d Binary files /dev/null and b/test-harness/lib/netty-codec-http-4.1.96.Final.jar differ diff --git a/test-harness/lib/netty-codec-socks-4.1.60.Final.jar b/test-harness/lib/netty-codec-socks-4.1.60.Final.jar new file mode 100644 index 0000000..6b94d39 Binary files /dev/null and b/test-harness/lib/netty-codec-socks-4.1.60.Final.jar differ diff --git a/test-harness/lib/netty-common-4.1.96.Final.jar b/test-harness/lib/netty-common-4.1.96.Final.jar new file mode 100644 index 0000000..c9eff76 Binary files /dev/null and b/test-harness/lib/netty-common-4.1.96.Final.jar differ diff --git a/test-harness/lib/netty-handler-4.1.96.Final.jar b/test-harness/lib/netty-handler-4.1.96.Final.jar new file mode 100644 index 0000000..ec36faa Binary files /dev/null and b/test-harness/lib/netty-handler-4.1.96.Final.jar differ diff --git a/test-harness/lib/netty-handler-proxy-4.1.60.Final.jar b/test-harness/lib/netty-handler-proxy-4.1.60.Final.jar new file mode 100644 index 0000000..b4be3c7 Binary files /dev/null and b/test-harness/lib/netty-handler-proxy-4.1.60.Final.jar differ diff --git a/test-harness/lib/netty-reactive-streams-2.0.4.jar b/test-harness/lib/netty-reactive-streams-2.0.4.jar new file mode 100644 index 0000000..38b5efa Binary files /dev/null and b/test-harness/lib/netty-reactive-streams-2.0.4.jar differ diff --git a/test-harness/lib/netty-resolver-4.1.96.Final.jar b/test-harness/lib/netty-resolver-4.1.96.Final.jar new file mode 100644 index 0000000..29e08ed Binary files /dev/null and b/test-harness/lib/netty-resolver-4.1.96.Final.jar differ diff --git a/test-harness/lib/netty-transport-4.1.96.Final.jar b/test-harness/lib/netty-transport-4.1.96.Final.jar new file mode 100644 index 0000000..ddf8deb Binary files /dev/null and b/test-harness/lib/netty-transport-4.1.96.Final.jar differ diff --git a/test-harness/lib/netty-transport-classes-epoll-4.1.96.Final.jar b/test-harness/lib/netty-transport-classes-epoll-4.1.96.Final.jar new file mode 100644 index 0000000..dad7911 Binary files /dev/null and b/test-harness/lib/netty-transport-classes-epoll-4.1.96.Final.jar differ diff --git a/test-harness/lib/netty-transport-classes-kqueue-4.1.96.Final.jar b/test-harness/lib/netty-transport-classes-kqueue-4.1.96.Final.jar new file mode 100644 index 0000000..a5f6a8e Binary files /dev/null and b/test-harness/lib/netty-transport-classes-kqueue-4.1.96.Final.jar differ diff --git a/test-harness/lib/netty-transport-native-epoll-4.1.60.Final-linux-x86_64.jar b/test-harness/lib/netty-transport-native-epoll-4.1.60.Final-linux-x86_64.jar new file mode 100644 index 0000000..c3f2fed Binary files /dev/null and b/test-harness/lib/netty-transport-native-epoll-4.1.60.Final-linux-x86_64.jar differ diff --git a/test-harness/lib/netty-transport-native-epoll-4.1.96.Final.jar b/test-harness/lib/netty-transport-native-epoll-4.1.96.Final.jar new file mode 100644 index 0000000..3bace84 Binary files /dev/null and b/test-harness/lib/netty-transport-native-epoll-4.1.96.Final.jar differ diff --git a/test-harness/lib/netty-transport-native-kqueue-4.1.60.Final-osx-x86_64.jar b/test-harness/lib/netty-transport-native-kqueue-4.1.60.Final-osx-x86_64.jar new file mode 100644 index 0000000..7cf26a0 Binary files /dev/null and b/test-harness/lib/netty-transport-native-kqueue-4.1.60.Final-osx-x86_64.jar differ diff --git a/test-harness/lib/netty-transport-native-kqueue-4.1.96.Final.jar b/test-harness/lib/netty-transport-native-kqueue-4.1.96.Final.jar new file mode 100644 index 0000000..b6eb351 Binary files /dev/null and b/test-harness/lib/netty-transport-native-kqueue-4.1.96.Final.jar differ diff --git a/test-harness/lib/netty-transport-native-unix-common-4.1.96.Final.jar b/test-harness/lib/netty-transport-native-unix-common-4.1.96.Final.jar new file mode 100644 index 0000000..f8dfc95 Binary files /dev/null and b/test-harness/lib/netty-transport-native-unix-common-4.1.96.Final.jar differ diff --git a/test-harness/lib/ojdbc8-12.2.0.1.jar b/test-harness/lib/ojdbc8-12.2.0.1.jar new file mode 100644 index 0000000..bf41243 Binary files /dev/null and b/test-harness/lib/ojdbc8-12.2.0.1.jar differ diff --git a/test-harness/lib/opensaml-core-4.3.0.jar b/test-harness/lib/opensaml-core-4.3.0.jar new file mode 100644 index 0000000..4efa3aa Binary files /dev/null and b/test-harness/lib/opensaml-core-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-profile-api-4.3.0.jar b/test-harness/lib/opensaml-profile-api-4.3.0.jar new file mode 100644 index 0000000..9080204 Binary files /dev/null and b/test-harness/lib/opensaml-profile-api-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-saml-api-4.3.0.jar b/test-harness/lib/opensaml-saml-api-4.3.0.jar new file mode 100644 index 0000000..8c2d899 Binary files /dev/null and b/test-harness/lib/opensaml-saml-api-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-saml-impl-4.3.0.jar b/test-harness/lib/opensaml-saml-impl-4.3.0.jar new file mode 100644 index 0000000..003b27f Binary files /dev/null and b/test-harness/lib/opensaml-saml-impl-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-security-api-4.3.0.jar b/test-harness/lib/opensaml-security-api-4.3.0.jar new file mode 100644 index 0000000..6c935e2 Binary files /dev/null and b/test-harness/lib/opensaml-security-api-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-security-impl-4.3.0.jar b/test-harness/lib/opensaml-security-impl-4.3.0.jar new file mode 100644 index 0000000..6038fc1 Binary files /dev/null and b/test-harness/lib/opensaml-security-impl-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-soap-api-4.3.0.jar b/test-harness/lib/opensaml-soap-api-4.3.0.jar new file mode 100644 index 0000000..23f9032 Binary files /dev/null and b/test-harness/lib/opensaml-soap-api-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-xacml-api-4.3.0.jar b/test-harness/lib/opensaml-xacml-api-4.3.0.jar new file mode 100644 index 0000000..430de78 Binary files /dev/null and b/test-harness/lib/opensaml-xacml-api-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-xacml-impl-4.3.0.jar b/test-harness/lib/opensaml-xacml-impl-4.3.0.jar new file mode 100644 index 0000000..f70dc31 Binary files /dev/null and b/test-harness/lib/opensaml-xacml-impl-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-xacml-saml-api-4.3.0.jar b/test-harness/lib/opensaml-xacml-saml-api-4.3.0.jar new file mode 100644 index 0000000..bf51757 Binary files /dev/null and b/test-harness/lib/opensaml-xacml-saml-api-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-xacml-saml-impl-4.3.0.jar b/test-harness/lib/opensaml-xacml-saml-impl-4.3.0.jar new file mode 100644 index 0000000..1e87b9d Binary files /dev/null and b/test-harness/lib/opensaml-xacml-saml-impl-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-xmlsec-api-4.3.0.jar b/test-harness/lib/opensaml-xmlsec-api-4.3.0.jar new file mode 100644 index 0000000..05d0daf Binary files /dev/null and b/test-harness/lib/opensaml-xmlsec-api-4.3.0.jar differ diff --git a/test-harness/lib/opensaml-xmlsec-impl-4.3.0.jar b/test-harness/lib/opensaml-xmlsec-impl-4.3.0.jar new file mode 100644 index 0000000..10d49b9 Binary files /dev/null and b/test-harness/lib/opensaml-xmlsec-impl-4.3.0.jar differ diff --git a/test-harness/lib/opentelemetry-api-1.28.0.jar b/test-harness/lib/opentelemetry-api-1.28.0.jar new file mode 100644 index 0000000..9a80508 Binary files /dev/null and b/test-harness/lib/opentelemetry-api-1.28.0.jar differ diff --git a/test-harness/lib/opentelemetry-api-events-1.28.0-alpha.jar b/test-harness/lib/opentelemetry-api-events-1.28.0-alpha.jar new file mode 100644 index 0000000..993a1de Binary files /dev/null and b/test-harness/lib/opentelemetry-api-events-1.28.0-alpha.jar differ diff --git a/test-harness/lib/opentelemetry-context-1.28.0.jar b/test-harness/lib/opentelemetry-context-1.28.0.jar new file mode 100644 index 0000000..2d1a0a4 Binary files /dev/null and b/test-harness/lib/opentelemetry-context-1.28.0.jar differ diff --git a/test-harness/lib/opentelemetry-exporter-logging-1.28.0.jar b/test-harness/lib/opentelemetry-exporter-logging-1.28.0.jar new file mode 100644 index 0000000..935d3c2 Binary files /dev/null and b/test-harness/lib/opentelemetry-exporter-logging-1.28.0.jar differ diff --git a/test-harness/lib/opentelemetry-extension-incubator-1.28.0-alpha.jar b/test-harness/lib/opentelemetry-extension-incubator-1.28.0-alpha.jar new file mode 100644 index 0000000..61e6ac0 Binary files /dev/null and b/test-harness/lib/opentelemetry-extension-incubator-1.28.0-alpha.jar differ diff --git a/test-harness/lib/opentelemetry-sdk-1.28.0.jar b/test-harness/lib/opentelemetry-sdk-1.28.0.jar new file mode 100644 index 0000000..a65263e Binary files /dev/null and b/test-harness/lib/opentelemetry-sdk-1.28.0.jar differ diff --git a/test-harness/lib/opentelemetry-sdk-common-1.28.0.jar b/test-harness/lib/opentelemetry-sdk-common-1.28.0.jar new file mode 100644 index 0000000..7b021ff Binary files /dev/null and b/test-harness/lib/opentelemetry-sdk-common-1.28.0.jar differ diff --git a/test-harness/lib/opentelemetry-sdk-extension-autoconfigure-1.28.0.jar b/test-harness/lib/opentelemetry-sdk-extension-autoconfigure-1.28.0.jar new file mode 100644 index 0000000..976a0ef Binary files /dev/null and b/test-harness/lib/opentelemetry-sdk-extension-autoconfigure-1.28.0.jar differ diff --git a/test-harness/lib/opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar b/test-harness/lib/opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar new file mode 100644 index 0000000..31089ee Binary files /dev/null and b/test-harness/lib/opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar differ diff --git a/test-harness/lib/opentelemetry-sdk-logs-1.28.0.jar b/test-harness/lib/opentelemetry-sdk-logs-1.28.0.jar new file mode 100644 index 0000000..bb13094 Binary files /dev/null and b/test-harness/lib/opentelemetry-sdk-logs-1.28.0.jar differ diff --git a/test-harness/lib/opentelemetry-sdk-metrics-1.28.0.jar b/test-harness/lib/opentelemetry-sdk-metrics-1.28.0.jar new file mode 100644 index 0000000..d42bfdb Binary files /dev/null and b/test-harness/lib/opentelemetry-sdk-metrics-1.28.0.jar differ diff --git a/test-harness/lib/opentelemetry-sdk-trace-1.28.0.jar b/test-harness/lib/opentelemetry-sdk-trace-1.28.0.jar new file mode 100644 index 0000000..b7963c8 Binary files /dev/null and b/test-harness/lib/opentelemetry-sdk-trace-1.28.0.jar differ diff --git a/test-harness/lib/opentelemetry-semconv-1.28.0-alpha.jar b/test-harness/lib/opentelemetry-semconv-1.28.0-alpha.jar new file mode 100644 index 0000000..b293fe4 Binary files /dev/null and b/test-harness/lib/opentelemetry-semconv-1.28.0-alpha.jar differ diff --git a/test-harness/lib/opentest4j-1.2.0.jar b/test-harness/lib/opentest4j-1.2.0.jar new file mode 100644 index 0000000..d500636 Binary files /dev/null and b/test-harness/lib/opentest4j-1.2.0.jar differ diff --git a/test-harness/lib/osgi-resource-locator-1.0.3.jar b/test-harness/lib/osgi-resource-locator-1.0.3.jar new file mode 100644 index 0000000..0f3c386 Binary files /dev/null and b/test-harness/lib/osgi-resource-locator-1.0.3.jar differ diff --git a/test-harness/lib/postgresql-42.7.1.jar b/test-harness/lib/postgresql-42.7.1.jar new file mode 100644 index 0000000..18331b7 Binary files /dev/null and b/test-harness/lib/postgresql-42.7.1.jar differ diff --git a/test-harness/lib/reactive-streams-1.0.3.jar b/test-harness/lib/reactive-streams-1.0.3.jar new file mode 100644 index 0000000..b9b487c Binary files /dev/null and b/test-harness/lib/reactive-streams-1.0.3.jar differ diff --git a/test-harness/lib/robotil-1.10.jar b/test-harness/lib/robotil-1.10.jar new file mode 100644 index 0000000..40afd6a Binary files /dev/null and b/test-harness/lib/robotil-1.10.jar differ diff --git a/test-harness/lib/saaj-impl-2.0.1.jar b/test-harness/lib/saaj-impl-2.0.1.jar new file mode 100644 index 0000000..568ae52 Binary files /dev/null and b/test-harness/lib/saaj-impl-2.0.1.jar differ diff --git a/test-harness/lib/selenium-api-4.13.0.jar b/test-harness/lib/selenium-api-4.13.0.jar new file mode 100644 index 0000000..d7a9145 Binary files /dev/null and b/test-harness/lib/selenium-api-4.13.0.jar differ diff --git a/test-harness/lib/selenium-chrome-driver-4.13.0.jar b/test-harness/lib/selenium-chrome-driver-4.13.0.jar new file mode 100644 index 0000000..21db8a6 Binary files /dev/null and b/test-harness/lib/selenium-chrome-driver-4.13.0.jar differ diff --git a/test-harness/lib/selenium-chromium-driver-4.13.0.jar b/test-harness/lib/selenium-chromium-driver-4.13.0.jar new file mode 100644 index 0000000..2be7b0c Binary files /dev/null and b/test-harness/lib/selenium-chromium-driver-4.13.0.jar differ diff --git a/test-harness/lib/selenium-devtools-v115-4.13.0.jar b/test-harness/lib/selenium-devtools-v115-4.13.0.jar new file mode 100644 index 0000000..f891df1 Binary files /dev/null and b/test-harness/lib/selenium-devtools-v115-4.13.0.jar differ diff --git a/test-harness/lib/selenium-devtools-v116-4.13.0.jar b/test-harness/lib/selenium-devtools-v116-4.13.0.jar new file mode 100644 index 0000000..89f5c41 Binary files /dev/null and b/test-harness/lib/selenium-devtools-v116-4.13.0.jar differ diff --git a/test-harness/lib/selenium-devtools-v117-4.13.0.jar b/test-harness/lib/selenium-devtools-v117-4.13.0.jar new file mode 100644 index 0000000..b7653c9 Binary files /dev/null and b/test-harness/lib/selenium-devtools-v117-4.13.0.jar differ diff --git a/test-harness/lib/selenium-devtools-v85-4.13.0.jar b/test-harness/lib/selenium-devtools-v85-4.13.0.jar new file mode 100644 index 0000000..6960a4e Binary files /dev/null and b/test-harness/lib/selenium-devtools-v85-4.13.0.jar differ diff --git a/test-harness/lib/selenium-edge-driver-4.13.0.jar b/test-harness/lib/selenium-edge-driver-4.13.0.jar new file mode 100644 index 0000000..10612f9 Binary files /dev/null and b/test-harness/lib/selenium-edge-driver-4.13.0.jar differ diff --git a/test-harness/lib/selenium-firefox-driver-4.13.0.jar b/test-harness/lib/selenium-firefox-driver-4.13.0.jar new file mode 100644 index 0000000..3351da9 Binary files /dev/null and b/test-harness/lib/selenium-firefox-driver-4.13.0.jar differ diff --git a/test-harness/lib/selenium-http-4.13.0.jar b/test-harness/lib/selenium-http-4.13.0.jar new file mode 100644 index 0000000..7198845 Binary files /dev/null and b/test-harness/lib/selenium-http-4.13.0.jar differ diff --git a/test-harness/lib/selenium-ie-driver-4.13.0.jar b/test-harness/lib/selenium-ie-driver-4.13.0.jar new file mode 100644 index 0000000..5453e27 Binary files /dev/null and b/test-harness/lib/selenium-ie-driver-4.13.0.jar differ diff --git a/test-harness/lib/selenium-java-4.13.0.jar b/test-harness/lib/selenium-java-4.13.0.jar new file mode 100644 index 0000000..a63e635 Binary files /dev/null and b/test-harness/lib/selenium-java-4.13.0.jar differ diff --git a/test-harness/lib/selenium-json-4.13.0.jar b/test-harness/lib/selenium-json-4.13.0.jar new file mode 100644 index 0000000..98db5e7 Binary files /dev/null and b/test-harness/lib/selenium-json-4.13.0.jar differ diff --git a/test-harness/lib/selenium-manager-4.13.0.jar b/test-harness/lib/selenium-manager-4.13.0.jar new file mode 100644 index 0000000..e276481 Binary files /dev/null and b/test-harness/lib/selenium-manager-4.13.0.jar differ diff --git a/test-harness/lib/selenium-os-4.13.0.jar b/test-harness/lib/selenium-os-4.13.0.jar new file mode 100644 index 0000000..b8c94dc Binary files /dev/null and b/test-harness/lib/selenium-os-4.13.0.jar differ diff --git a/test-harness/lib/selenium-remote-driver-4.13.0.jar b/test-harness/lib/selenium-remote-driver-4.13.0.jar new file mode 100644 index 0000000..5a754b5 Binary files /dev/null and b/test-harness/lib/selenium-remote-driver-4.13.0.jar differ diff --git a/test-harness/lib/selenium-safari-driver-4.13.0.jar b/test-harness/lib/selenium-safari-driver-4.13.0.jar new file mode 100644 index 0000000..a4b7d14 Binary files /dev/null and b/test-harness/lib/selenium-safari-driver-4.13.0.jar differ diff --git a/test-harness/lib/selenium-support-4.13.0.jar b/test-harness/lib/selenium-support-4.13.0.jar new file mode 100644 index 0000000..0ce87c8 Binary files /dev/null and b/test-harness/lib/selenium-support-4.13.0.jar differ diff --git a/test-harness/lib/slf4j-api-2.0.9.jar b/test-harness/lib/slf4j-api-2.0.9.jar new file mode 100644 index 0000000..3796afe Binary files /dev/null and b/test-harness/lib/slf4j-api-2.0.9.jar differ diff --git a/test-harness/lib/stax-ex-2.0.1.jar b/test-harness/lib/stax-ex-2.0.1.jar new file mode 100644 index 0000000..3df5bc3 Binary files /dev/null and b/test-harness/lib/stax-ex-2.0.1.jar differ diff --git a/test-harness/lib/stax2-api-4.2.1.jar b/test-harness/lib/stax2-api-4.2.1.jar new file mode 100644 index 0000000..28c6a08 Binary files /dev/null and b/test-harness/lib/stax2-api-4.2.1.jar differ diff --git a/test-harness/lib/txw2-3.0.0-M5.jar b/test-harness/lib/txw2-3.0.0-M5.jar new file mode 100644 index 0000000..86b329c Binary files /dev/null and b/test-harness/lib/txw2-3.0.0-M5.jar differ diff --git a/test-harness/lib/vault-java-driver-5.1.0.jar b/test-harness/lib/vault-java-driver-5.1.0.jar new file mode 100644 index 0000000..4d82f21 Binary files /dev/null and b/test-harness/lib/vault-java-driver-5.1.0.jar differ diff --git a/test-harness/lib/woodstox-core-6.5.1.jar b/test-harness/lib/woodstox-core-6.5.1.jar new file mode 100644 index 0000000..b22b384 Binary files /dev/null and b/test-harness/lib/woodstox-core-6.5.1.jar differ diff --git a/test-harness/lib/wsdl4j-1.6.3.jar b/test-harness/lib/wsdl4j-1.6.3.jar new file mode 100644 index 0000000..b9c10b9 Binary files /dev/null and b/test-harness/lib/wsdl4j-1.6.3.jar differ diff --git a/test-harness/lib/wss4j-bindings-3.0.1.jar b/test-harness/lib/wss4j-bindings-3.0.1.jar new file mode 100644 index 0000000..75a1c00 Binary files /dev/null and b/test-harness/lib/wss4j-bindings-3.0.1.jar differ diff --git a/test-harness/lib/wss4j-policy-3.0.1.jar b/test-harness/lib/wss4j-policy-3.0.1.jar new file mode 100644 index 0000000..7a14e48 Binary files /dev/null and b/test-harness/lib/wss4j-policy-3.0.1.jar differ diff --git a/test-harness/lib/wss4j-ws-security-common-3.0.1.jar b/test-harness/lib/wss4j-ws-security-common-3.0.1.jar new file mode 100644 index 0000000..278f11f Binary files /dev/null and b/test-harness/lib/wss4j-ws-security-common-3.0.1.jar differ diff --git a/test-harness/lib/wss4j-ws-security-dom-3.0.1.jar b/test-harness/lib/wss4j-ws-security-dom-3.0.1.jar new file mode 100644 index 0000000..7506570 Binary files /dev/null and b/test-harness/lib/wss4j-ws-security-dom-3.0.1.jar differ diff --git a/test-harness/lib/wss4j-ws-security-policy-stax-3.0.1.jar b/test-harness/lib/wss4j-ws-security-policy-stax-3.0.1.jar new file mode 100644 index 0000000..14e3edf Binary files /dev/null and b/test-harness/lib/wss4j-ws-security-policy-stax-3.0.1.jar differ diff --git a/test-harness/lib/wss4j-ws-security-stax-3.0.1.jar b/test-harness/lib/wss4j-ws-security-stax-3.0.1.jar new file mode 100644 index 0000000..6ada399 Binary files /dev/null and b/test-harness/lib/wss4j-ws-security-stax-3.0.1.jar differ diff --git a/test-harness/lib/xml-resolver-1.2.jar b/test-harness/lib/xml-resolver-1.2.jar new file mode 100644 index 0000000..e535bdc Binary files /dev/null and b/test-harness/lib/xml-resolver-1.2.jar differ diff --git a/test-harness/lib/xmlschema-core-2.3.1.jar b/test-harness/lib/xmlschema-core-2.3.1.jar new file mode 100644 index 0000000..2970160 Binary files /dev/null and b/test-harness/lib/xmlschema-core-2.3.1.jar differ diff --git a/test-harness/lib/xmlsec-3.0.2.jar b/test-harness/lib/xmlsec-3.0.2.jar new file mode 100644 index 0000000..aca0482 Binary files /dev/null and b/test-harness/lib/xmlsec-3.0.2.jar differ diff --git a/test-harness/pom.xml b/test-harness/pom.xml new file mode 100644 index 0000000..1aa0937 --- /dev/null +++ b/test-harness/pom.xml @@ -0,0 +1,532 @@ + + + 4.0.0 + + cz.moneta.test + harness + 7.55-SNAPSHOT + + + UTF-8 + 5.5.1 + 1.5.1 + 4.13.0 + 3.0.12 + 1.9.11 + 2.16.1 + 12.2.0.1 + 8.2.0.jre8 + 42.7.1 + 3.7 + 1.4 + 2.6 + 3.1.0 + 5.1.0 + 2.17.1 + 8.6.0 + 1.9.3 + 1.6 + 4.0.3 + + + + + + org.junit.jupiter + junit-jupiter-api + ${junit.jupiter.version} + + + + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} + + + + org.junit.jupiter + junit-jupiter-params + ${junit.jupiter.version} + + + + + org.junit.vintage + junit-vintage-engine + ${junit.jupiter.version} + + + + org.junit.platform + junit-platform-runner + ${junit.platform.version} + + + + org.junit.platform + junit-platform-suite-api + ${junit.platform.version} + + + + org.seleniumhq.selenium + selenium-java + ${selenium.version} + + + + com.google.code.gson + gson + 2.11.0 + + + + org.apache.httpcomponents + httpclient + 4.5.14 + + + + com.oracle.jdbc + ojdbc8 + ${oracle.driver.version} + + + + com.microsoft.sqlserver + mssql-jdbc + ${microsoft.sql.driver.version} + + + + org.postgresql + postgresql + ${postgres.driver.version} + + + + org.glassfish.jersey.core + jersey-client + ${jersey.version} + + + + org.glassfish.jersey.inject + jersey-hk2 + ${jersey.version} + + + + org.glassfish.jersey.core + jersey-common + ${jersey.version} + + + + org.jvnet.mimepull + mimepull + ${mimepull.version} + + + + org.glassfish.jersey.media + jersey-media-json-jackson + ${jersey.version} + + + + org.glassfish.jersey.media + jersey-media-multipart + ${jersey.version} + + + + com.fasterxml.jackson.core + jackson-core + ${jackson-modules.version} + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson-modules.version} + + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson-modules.version} + + + + com.fasterxml.jackson.dataformat + jackson-dataformat-csv + ${jackson-modules.version} + + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + ${jackson-modules.version} + + + + com.fasterxml.jackson.module + jackson-module-parameter-names + ${jackson-modules.version} + + + + com.fasterxml.jackson.datatype + jackson-datatype-jdk8 + ${jackson-modules.version} + + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + ${jackson-modules.version} + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + + org.apache.commons + commons-text + ${commons-text.version} + + + + commons-io + commons-io + ${commons-io.version} + + + + commons-beanutils + commons-beanutils + ${commons-beanutils.version} + + + + commons-configuration + commons-configuration + ${commons-configuration.version} + + + + org.jooq + jooq + ${jooq.version} + + + + com.bettercloud + vault-java-driver + ${vault-java-driver.version} + + + + org.apache.logging.log4j + log4j-api + ${log4j.version} + + + org.apache.logging.log4j + log4j-core + ${log4j.version} + + + org.apache.logging.log4j + log4j-jul + ${log4j.version} + + + + org.apache.logging.log4j + log4j-iostreams + ${log4j.version} + + + + io.appium + java-client + ${appium-java-client.version} + + + + + org.apache.cxf + cxf-rt-frontend-jaxws + ${cxf.version} + + + + org.apache.cxf + cxf-rt-transports-http + ${cxf.version} + + + + org.apache.cxf + cxf-rt-ws-security + ${cxf.version} + + + + + javax.servlet + javax.servlet-api + 4.0.1 + provided + + + + + us.abstracta + dm3270-lib + 0.9.1 + + + + + cz.moneta.ilods + ilods_shared_resources + 0.0.9 + + + + + jakarta.xml.bind + jakarta.xml.bind-api + 3.0.1 + + + jakarta.xml.ws + jakarta.xml.ws-api + 3.0.1 + + + jakarta.xml.soap + jakarta.xml.soap-api + 3.0.1 + + + jakarta.annotation + jakarta.annotation-api + 2.0.0 + + + jakarta.jws + jakarta.jws-api + 3.0.0 + + + + com.codoid + robotil + 1.10 + + + + + org.antlr + ST4 + 4.3.4 + + + + + net.javacrumbs.json-unit + json-unit-assertj + 3.2.7 + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.9.0 + + + install + + copy-dependencies + + + ${project.build.directory}/lib + runtime + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.7.0 + + 17 + 17 + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M4 + + + HARNESS_CONFIG + + + + + + + + + Moneta Artifactory + + true + + + + + false + true + central + libs-release + https://artifactory-aws.ux.mbid.cz/artifactory/libs-release + + + true + false + snapshots + libs-snapshot + https://artifactory-aws.ux.mbid.cz/artifactory/libs-snapshot + + + + + false + true + central + plugins-release + https://artifactory-aws.ux.mbid.cz/artifactory/plugins-release + + + true + false + snapshots + plugins-snapshot + https://artifactory-aws.ux.mbid.cz/artifactory/plugins-snapshot + + + + + + cxf-cebia + + false + + + + + org.apache.cxf + cxf-codegen-plugin + ${cxf.version} + + + generate-sources + generate-sources + + ${basedir}/src/main/java + + + ${basedir}/src/main/resources/ws/IvaServiceActual.wsdl + + -xjc-Xfluent-api + + + ${basedir}/src/main/resources/ws/jaxb-bindings.xml + + + + + + + wsdl2java + + + + + + net.java.dev.jaxb2-commons + jaxb-fluent-api + 2.1.8 + + + + + + + + withDeps + + false + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.6.0 + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + + + + + + + + + Martin Petrus + martin.petrus@moneta.cz + + + Petr Fifka + petr.fifka1@moneta.cz + + + Georgij Boljuba + georgij@boljuba.com + + + diff --git a/test-harness/src/main/java/cz/moneta/test/harness/HarnessJunit5Extension.java b/test-harness/src/main/java/cz/moneta/test/harness/HarnessJunit5Extension.java new file mode 100644 index 0000000..0385b50 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/HarnessJunit5Extension.java @@ -0,0 +1,418 @@ +package cz.moneta.test.harness; + +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.config.ConfigProvider; +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.context.BaseStoreAccessor; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.data.Browser; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.endpoints.MobileEndpoint; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.greenscreen.GreenScreenEndpoint; +import cz.moneta.test.harness.endpoints.jira.JiraTestResultPublisher; +import cz.moneta.test.harness.exception.BeforeAllHarnessException; +import cz.moneta.test.harness.exception.HarnessConfigurationException; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.junit.jupiter.api.extension.*; +import org.junit.jupiter.api.extension.ExtensionContext.Namespace; +import org.junit.jupiter.api.extension.ExtensionContext.Store; +import org.junit.platform.engine.UniqueId; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Parameter; +import java.util.*; +import java.util.concurrent.CopyOnWriteArraySet; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class HarnessJunit5Extension implements BeforeAllCallback, BeforeEachCallback, ParameterResolver, + TestExecutionExceptionHandler, AfterEachCallback, ExecutionCondition, LifecycleMethodExecutionExceptionHandler, + BeforeTestExecutionCallback, AfterAllCallback { + + private static final Logger logger = LogManager.getLogger(HarnessJunit5Extension.class); + + public static final String ACTIVE_ENDPOINTS = "ACTIVE_ENDPOINTS"; + private static final Namespace ENDPOINT_NAMESPACE = Namespace.create("ENDPOINT"); + protected static final Namespace CONFIG_NAMESPACE = Namespace.create("CONFIG"); + protected static final Namespace GENERATORS_NAMESPACE = Namespace.create("GENERATORS"); + + private static final String RESOLUTION_PASS = "PASS"; + private static final String RESOLUTION_FAIL = "FAIL"; + + private static final String BROWSER_CONFIG_KEY = "browser"; + + private boolean hasBeforeAllFail = false; + private String beforeAllThrowableMessage; + + @Override + public void beforeAll(ExtensionContext extensionContext) { + extensionContext.getStore(ENDPOINT_NAMESPACE).put(ACTIVE_ENDPOINTS, new CopyOnWriteArraySet>()); + } + + @Override + public void beforeEach(ExtensionContext extensionContext) { + extensionContext.getStore(ENDPOINT_NAMESPACE).put(ACTIVE_ENDPOINTS, new CopyOnWriteArraySet>()); + extensionContext.getStore(ExtensionContext.Namespace.create("UPLOADS")).remove("jira.uploads"); + } + + @Override + public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) { + return Stream.>>of( + () -> getTestContext(parameterContext), + () -> getAuthKey(parameterContext)) + .map(Supplier::get) + .anyMatch(Optional::isPresent); + } + + @Override + public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) { + storeCurrentTestName(extensionContext); + + return Stream.>>of( + () -> getTestContext(parameterContext).map(tc -> { + try { + return tc.getType().getConstructor(Store.class, Store.class, Store.class, Store.class, Store.class) + .newInstance( + extensionContext.getRoot().getStore(Namespace.GLOBAL), + extensionContext.getStore(Namespace.GLOBAL), + extensionContext.getStore(ENDPOINT_NAMESPACE), + extensionContext.getStore(CONFIG_NAMESPACE), + extensionContext.getStore(GENERATORS_NAMESPACE)); + } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { + throw new ParameterResolutionException("Failed to initialize parameter " + + parameterContext.getParameter().getType().getSimpleName(), e); + } + }), + () -> getAuthKey(parameterContext) + .map(ak -> ak.getAnnotation(Key.class).value()) + .map(ak -> AuthSupport.getCredentials(ak, new BaseStoreAccessor( + extensionContext.getRoot().getStore(Namespace.GLOBAL), + extensionContext.getStore(Namespace.GLOBAL), + extensionContext.getStore(ENDPOINT_NAMESPACE), + extensionContext.getStore(CONFIG_NAMESPACE), + extensionContext.getStore(GENERATORS_NAMESPACE)) { + }))) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElseThrow(() -> new ParameterResolutionException("Parameter of type " + + parameterContext.getParameter().getType().getSimpleName() + + " is not supported")); + } + + @Override + public void handleTestExecutionException(ExtensionContext extensionContext, Throwable throwable) throws Throwable { + processException(extensionContext); + + throw Optional.of(throwable) + .filter(HarnessException.class::isInstance) + .map(AssertionError::new) + .map(Throwable.class::cast) + .orElse(throwable); + } + + @Override + public void handleBeforeAllMethodExecutionException(ExtensionContext extensionContext, Throwable throwable) { + //This is workaround for possible bug in JUnit5 and Surefire - in case of beforeAll exception are test skipped instead of failed + //https://github.com/junit-team/junit5/issues/2178 + hasBeforeAllFail = true; + beforeAllThrowableMessage = throwable.toString(); + + processException(extensionContext); + JiraTestResultPublisher.logJiraTestResult(extensionContext, throwable); + logger.error("Method @BeforeAll in test class {} failed with exception: {}.", () -> extensionContext.getRequiredTestClass().getName(), () -> beforeAllThrowableMessage); + } + + @Override + public void beforeTestExecution(ExtensionContext extensionContext) { + if (hasBeforeAllFail) { + throw new BeforeAllHarnessException("Exception in before all occurred. Original exception message: " + beforeAllThrowableMessage); + } + } + + private void processException(ExtensionContext extensionContext) { + Set files = processWebEndpoints(extensionContext); + processMobileEndpoints(extensionContext); + processGreenscreenEndpoints(extensionContext); + + Store uploads = extensionContext.getStore(Namespace.create("UPLOADS")); + uploads.put("jira.uploads", files); + } + + private void processGreenscreenEndpoints(ExtensionContext extensionContext) { + getActiveEndpoints(extensionContext).stream() + .filter(p -> GreenScreenEndpoint.class.isAssignableFrom(p.getLeft())) + .map(c -> extensionContext.getStore(ENDPOINT_NAMESPACE).get(c, GreenScreenEndpoint.class)) + .forEach(e -> logger.info("Failed on screen:\n" + e.getText(1, 1, 0))); + } + + private void processMobileEndpoints(ExtensionContext extensionContext) { + getActiveEndpoints(extensionContext).stream() + .filter(p -> MobileEndpoint.class.isAssignableFrom(p.getLeft())) + .map(c -> extensionContext.getStore(ENDPOINT_NAMESPACE).get(c, MobileEndpoint.class)) + .forEach(mobileEndpoint -> { + mobileEndpoint.takeSnapshot(extensionContext.getDisplayName()); + mobileEndpoint.saveSources(extensionContext.getDisplayName()); + }); + } + + private Set processWebEndpoints(ExtensionContext extensionContext) { + return getActiveEndpoints(extensionContext).stream() + .filter(p -> WebEndpoint.class.isAssignableFrom(p.getLeft())) + .map(c -> extensionContext.getStore(ENDPOINT_NAMESPACE).get(c, WebEndpoint.class)) + .map(webEndpoint -> { + Set files = new HashSet<>(); + String filePrefix = (extensionContext.getTestClass().get().getSimpleName() + "_" + extensionContext.getDisplayName()).replaceAll("[\\\\/:*?\"<>|]", ""); + files.add(webEndpoint.takeSnapshot(filePrefix)); + files.addAll(webEndpoint.captureLogs(filePrefix)); + webEndpoint.captureDom(filePrefix); + return files; + }) + .filter(set -> !set.isEmpty()) + .collect(HashSet::new, Set::addAll, Set::addAll); + } + + @SuppressWarnings("unchecked") + private Set, Object[]>> getActiveEndpoints(ExtensionContext extensionContext) { + return extensionContext.getStore(ENDPOINT_NAMESPACE).get(ACTIVE_ENDPOINTS, Set.class); + } + + private void closeActiveEndpoints(ExtensionContext extensionContext) { + getActiveEndpoints(extensionContext).stream() + .filter(Objects::nonNull) + .map(c -> extensionContext.getStore(ENDPOINT_NAMESPACE).remove(c, Endpoint.class)) + .peek(e -> { + if (e instanceof MobileEndpoint) { + ((MobileEndpoint) e).captureVideo(extensionContext.getDisplayName()); + } + }) + .forEach(Endpoint::close); + } + + @Override + public void afterEach(ExtensionContext extensionContext) { + closeActiveEndpoints(extensionContext); + if (!hasBeforeAllFail) { + JiraTestResultPublisher.logJiraTestResult(extensionContext); + } + logTestResult(extensionContext); + } + + @Override + public void afterAll(ExtensionContext extensionContext) { + //Closes only endpoints initialized in BeforeAll and not used in test methods + closeActiveEndpoints(extensionContext); + } + + private Optional getAuthKey(ParameterContext parameterContext) { + return Optional.of(parameterContext.getParameter()) + .filter(p -> p.getAnnotation(Key.class) != null) + .filter(p -> Credentials.class.isAssignableFrom(p.getType())); + } + + private Optional getTestContext(ParameterContext parameterContext) { + return Optional.of(parameterContext.getParameter()) + .filter(p -> p.getType().getAnnotation(TestContext.class) != null) + .filter(p -> StoreAccessor.class.isAssignableFrom(p.getType())); + } + + @Override + public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { + if (isClassExtensionContext(context)) { + return evaluateClassExecutionContext(context); + } + + Environment environment = getCurrentEnvironment(context); + return context.getTestMethod() + .filter(m -> environment != null) + .flatMap(m -> Stream.>>of( + () -> checkTestCaseEnvironments(environment, m, context.getDisplayName()), + () -> checkDefectEnvironments(environment, m, context.getDisplayName(), context), + () -> checkGlobalParameterSet(context, m, context.getDisplayName()), + () -> checkJiraReportingRules(context, m, context.getDisplayName())) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst()) + .orElse(enableEvaluationAndLogExecutionStart(context)); + } + + private boolean isClassExtensionContext(ExtensionContext extensionContext) { + String simpleTestName = extensionContext.getTestClass() + .get() + .getSimpleName(); + + return !extensionContext.getTestMethod().isPresent() && extensionContext.getDisplayName().equals(simpleTestName); + } + + private ConditionEvaluationResult evaluateClassExecutionContext(ExtensionContext extensionContext) { + ConfigProvider.readConfig().forEach((k, v) -> extensionContext.getStore(CONFIG_NAMESPACE).put(k, v)); + Browser definedBrowser = getBrowserFromConfig(extensionContext); + String className = getClassCanonicalName(extensionContext); + Class testClass = extensionContext.getTestClass().get(); + + return Stream.>>of( + () -> Optional.ofNullable(testClass.getAnnotation(TestScenario.class)) + .map(TestScenario::browsers), + () -> Optional.ofNullable(testClass.getAnnotation(NonConcurrentTestScenario.class)) + .map(NonConcurrentTestScenario::browsers), + () -> Optional.ofNullable(testClass.getAnnotation(TestScenarioWithOrder.class)) + .map(TestScenarioWithOrder::browsers)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .filter(browsers -> Arrays.stream(browsers) + .noneMatch(definedBrowser::equals)) + .map(browsers -> ConditionEvaluationResult.disabled("Tests in class " + + className + " disabled. It is marked to only run on " + + Arrays.stream(browsers) + .map(Enum::name) + .collect(Collectors.joining(", ")))) + .orElse(enableClassForTests(className)); + } + + private ConditionEvaluationResult enableClassForTests(String className) { + logger.info("Test execution in test class {} started.", () -> className); + return ConditionEvaluationResult.enabled("Tests in " + className + " enabled."); + } + + private Optional checkGlobalParameterSet(ExtensionContext extensionContext, Method testMethod, String testName) { + Store rootStore = extensionContext.getRoot().getStore(Namespace.GLOBAL); + return Optional.of(Arrays.stream(testMethod.getAnnotationsByType(EnableIfSet.class)) + .map(annotation -> { + if (rootStore == null) { + return ConditionEvaluationResult.disabled(String.format("Test %s is disabled: Need to check key '%s' " + + "to be set, but root context is null. Skipping...", testName, annotation.globalKey())); + } + Object value = rootStore.get(annotation.globalKey()); + if (value == null) { + return ConditionEvaluationResult.disabled(String.format("Test %s is disabled: Key '%s' " + + "is not set in global context. Skipping...", testName, annotation.globalKey())); + } + return null; + }).filter(Objects::nonNull) + .findFirst() + .orElse(ConditionEvaluationResult.enabled("Test " + testName + " enabled"))); + } + + private Optional checkJiraReportingRules(ExtensionContext extensionContext, Method testMethod, String testName) { + if (Boolean.parseBoolean(extensionContext.getStore(CONFIG_NAMESPACE).get("reports.tmfj.publish", String.class))) { + return Optional.of(Arrays.stream(testMethod.getAnnotationsByType(JiraTestCase.class)) + .map(annotation -> { + if (JiraTestResultPublisher.doesTestCaseExist(annotation.id(), extensionContext)) { + return null; + } else { + return ConditionEvaluationResult.disabled(String.format("Test %s is disabled: Cannot find Test Case with id '%s' " + + "in Jira, but reporting to Jira is requested. Skipping...", testName, annotation.id())); + } + }).filter(Objects::nonNull) + .findFirst() + .orElse(ConditionEvaluationResult.enabled("Test " + testName + " enabled"))); + } + return Optional.empty(); + } + + private Optional checkTestCaseEnvironments(Environment environment, Method testMethod, + String testName) { + return Stream.>>of( + () -> Optional.ofNullable(testMethod.getAnnotation(TestCase.class)) + .map(TestCase::environments), + () -> Optional.ofNullable(testMethod.getAnnotation(ParameterizedTestCase.class)) + .map(ParameterizedTestCase::environments)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .filter(envs -> Arrays.stream(envs).noneMatch(environment::equals)) + .map(envs -> ConditionEvaluationResult.disabled("Test " + + testName + " disabled. It is marked to only run on " + + Arrays.stream(envs).map(Enum::name).collect(Collectors.joining(", ")))); + } + + private Optional checkDefectEnvironments(Environment environment, Method testMethod, + String testName, ExtensionContext context) { + return Optional.of(context.getStore(CONFIG_NAMESPACE) + .getOrComputeIfAbsent("harness.defects.ignore", k -> "false")) + .filter(ignore -> !"true".equals(ignore)) + .flatMap(i -> Arrays.stream(testMethod.getAnnotationsByType(Defect.class)) + .filter(d -> Arrays.stream(d.environments()).anyMatch(environment::equals)) + .findFirst()) + .map(d -> ConditionEvaluationResult.disabled("Test " + + testName + " in environment " + environment + " disabled due to defect '" + d.value() + "'")); + } + + private Environment getCurrentEnvironment(ExtensionContext context) { + return Optional.ofNullable(context.getStore(CONFIG_NAMESPACE) + .get(HarnessConfigConstants.ENVIRONMENT_TYPE)) + .filter(String.class::isInstance) + .map(String.class::cast) + .map(Environment::fromString) + .map(e -> { + logger.info("Detected environment: {}", () -> e.name()); + return e; + }) + .orElseThrow(() -> + new HarnessConfigurationException("You need to configure mandatory parameter " + HarnessConfigConstants.ENVIRONMENT_TYPE)); + } + + private Browser getBrowserFromConfig(ExtensionContext extensionContext) { + String browserConfigName = System.getProperty(BROWSER_CONFIG_KEY); + + if (browserConfigName == null) { + browserConfigName = Optional.ofNullable(extensionContext.getStore(CONFIG_NAMESPACE).get(BROWSER_CONFIG_KEY, String.class)) + .orElseThrow(() -> new HarnessConfigurationException(("You need to configure browser to run tests!"))); + } + + Browser browser = Browser.getBrowserByConfigName(browserConfigName); + logger.info("Detected browser: {}", browser::name); + return browser; + } + + private ConditionEvaluationResult enableEvaluationAndLogExecutionStart(ExtensionContext extensionContext) { + String testName = extensionContext.getDisplayName(); + logger.info("Test case {} execution in test class {} started.", () -> testName, () -> getClassCanonicalName(extensionContext)); + return ConditionEvaluationResult.enabled("Test " + testName + " enabled"); + } + + private void logTestResult(ExtensionContext extensionContext) { + Method testMethod = extensionContext.getRequiredTestMethod(); + Optional executionException = extensionContext.getExecutionException(); + String resolution = executionException.map(e -> RESOLUTION_FAIL).orElse(RESOLUTION_PASS); + + logger.info("Test case {} in test class {} executed with resolution - {}.", () -> extensionContext.getDisplayName(), () -> testMethod.getDeclaringClass(), () -> resolution); + + if (resolution.equals(RESOLUTION_FAIL)) { + logger.error("ERROR: ", () -> executionException.get()); + } + } + + private String getClassCanonicalName(ExtensionContext extensionContext) { + return extensionContext.getTestClass() + .get() + .getCanonicalName(); + } + + private void storeCurrentTestName(ExtensionContext extensionContext) { + String uniqueId = UniqueId.parse(extensionContext.getUniqueId()) + .getSegments() + .stream() + .skip(1) + .map(UniqueId.Segment::getValue) + .collect(Collectors.joining(".")); + extensionContext.getRoot().getStore(Namespace.GLOBAL).put(HarnessConfigConstants.TEST_UNIQUE_ID, uniqueId); + + String shortId = (extensionContext.getTestClass().get().getSimpleName() + "_" + extensionContext.getDisplayName()).replaceAll("[\\\\/:*?\"<>|]", ""); + extensionContext.getRoot().getStore(Namespace.GLOBAL).put(HarnessConfigConstants.TEST_SHORT_ID, shortId); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/Defect.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/Defect.java new file mode 100644 index 0000000..4c0c45f --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/Defect.java @@ -0,0 +1,33 @@ +package cz.moneta.test.harness.annotations; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import static cz.moneta.test.harness.annotations.Environment.DEV; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.FVE; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +/** + * Disables test in specified environments with a reference to the related issue + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Repeatable(Defects.class) +public @interface Defect { + /** + * Reason for test being disabled (ideally) including a reference to a JIRA or TEAMTRACK issue + */ + String value(); + + /** + * Applicable environments where the test should be effectively disabled (default is all environments) + */ + Environment[] environments() default {DEV, TST1, PPE, EDU, FVE}; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/Defects.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/Defects.java new file mode 100644 index 0000000..1d56208 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/Defects.java @@ -0,0 +1,17 @@ +package cz.moneta.test.harness.annotations; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * container annotation for {@link cz.moneta.test.harness.annotations.Defect} + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface Defects { + Defect[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/EnableIfSet.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/EnableIfSet.java new file mode 100644 index 0000000..804fe0c --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/EnableIfSet.java @@ -0,0 +1,13 @@ +package cz.moneta.test.harness.annotations; + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(EnableIfSets.class) +@Documented +public @interface EnableIfSet { + + String globalKey(); + +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/EnableIfSets.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/EnableIfSets.java new file mode 100644 index 0000000..8258831 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/EnableIfSets.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.annotations; + +import java.lang.annotation.*; + +/** + * Container annotation + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface EnableIfSets { + + EnableIfSet[] value(); + +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/Environment.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/Environment.java new file mode 100644 index 0000000..3d0828c --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/Environment.java @@ -0,0 +1,30 @@ +package cz.moneta.test.harness.annotations; + +import java.util.EnumSet; + +public enum Environment { + DEV("DigDev"), + TST1("TST1"), + TST3("TST3"), + PPE("PPE"), + EDU("EDU"), + FVE("FVE"), + LIVE("LIVE"); + + Environment(String jiraAlias) { + this.jiraAlias = jiraAlias; + } + + private String jiraAlias; + + public static Environment fromString(String env) { + return EnumSet.allOf(Environment.class).stream() + .filter(e -> e.name().equalsIgnoreCase(env)) + .findFirst() + .orElse(null); + } + + public String getJiraAlias() { + return jiraAlias; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/JiraTestCase.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/JiraTestCase.java new file mode 100644 index 0000000..b8accdc --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/JiraTestCase.java @@ -0,0 +1,22 @@ +package cz.moneta.test.harness.annotations; + +import java.lang.annotation.*; + +/** + * {@code @JiraTestCase} is used to signal that the annotated method implements + * particular test case in Test Management for JIRA. + * + * The info in this annotation is used by harness to create Test Run objects in + * Test Management for JIRA when configured and enabled, otherwise it has no effect. + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(JiraTestCases.class) +@Documented +public @interface JiraTestCase { + + String id(); + + String project() default ""; + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/JiraTestCases.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/JiraTestCases.java new file mode 100644 index 0000000..d9d2871 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/JiraTestCases.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.annotations; + +import java.lang.annotation.*; + +/** + * Container annotation + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface JiraTestCases { + + JiraTestCase[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/NonConcurrentTestScenario.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/NonConcurrentTestScenario.java new file mode 100644 index 0000000..214c384 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/NonConcurrentTestScenario.java @@ -0,0 +1,31 @@ +package cz.moneta.test.harness.annotations; + +import cz.moneta.test.harness.HarnessJunit5Extension; +import cz.moneta.test.harness.data.Browser; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.platform.runner.JUnitPlatform; +import org.junit.runner.RunWith; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * This annotation is used for managing parallel test execution. + * Test class with this annotation will not be executed in parallel to other classes with this annotation. + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@RunWith(JUnitPlatform.class) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +@ExtendWith(HarnessJunit5Extension.class) +public @interface NonConcurrentTestScenario { + + String name() default ""; + + Browser[] browsers() default {Browser.MS_EDGE, Browser.GOOGLE_CHROME}; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/ParameterizedTestCase.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/ParameterizedTestCase.java new file mode 100644 index 0000000..1f4490a --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/ParameterizedTestCase.java @@ -0,0 +1,17 @@ +package cz.moneta.test.harness.annotations; + +import org.junit.jupiter.params.ParameterizedTest; + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@ParameterizedTest +public @interface ParameterizedTestCase { + + String name () default ""; + + Environment[] environments() default {Environment.DEV, Environment.TST1, Environment.PPE, Environment.EDU, Environment.FVE}; + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestCase.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestCase.java new file mode 100644 index 0000000..cc4ee4c --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestCase.java @@ -0,0 +1,16 @@ +package cz.moneta.test.harness.annotations; + +import org.junit.jupiter.api.Test; + +import java.lang.annotation.*; + +@Target({ ElementType.ANNOTATION_TYPE, ElementType.METHOD }) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Test +public @interface TestCase { + + String name() default ""; + + Environment[] environments() default {Environment.DEV, Environment.TST1, Environment.PPE, Environment.EDU, Environment.FVE}; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestContext.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestContext.java new file mode 100644 index 0000000..41a92ad --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestContext.java @@ -0,0 +1,9 @@ +package cz.moneta.test.harness.annotations; + +import java.lang.annotation.*; + +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface TestContext { +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestScenario.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestScenario.java new file mode 100644 index 0000000..dd8e48b --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestScenario.java @@ -0,0 +1,26 @@ +package cz.moneta.test.harness.annotations; + +import cz.moneta.test.harness.HarnessJunit5Extension; +import cz.moneta.test.harness.data.Browser; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; +import org.junit.platform.runner.JUnitPlatform; +import org.junit.runner.RunWith; + +import java.lang.annotation.*; + +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@RunWith(JUnitPlatform.class) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +@Execution(ExecutionMode.CONCURRENT) +@ExtendWith(HarnessJunit5Extension.class) +public @interface TestScenario { + + String name() default ""; + + Browser[] browsers() default {Browser.MS_EDGE, Browser.GOOGLE_CHROME}; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestScenarioWithOrder.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestScenarioWithOrder.java new file mode 100644 index 0000000..505af90 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestScenarioWithOrder.java @@ -0,0 +1,29 @@ +package cz.moneta.test.harness.annotations; + +import cz.moneta.test.harness.HarnessJunit5Extension; +import cz.moneta.test.harness.data.Browser; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; +import org.junit.platform.runner.JUnitPlatform; +import org.junit.runner.RunWith; + +import java.lang.annotation.*; + +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@RunWith(JUnitPlatform.class) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@ExtendWith(HarnessJunit5Extension.class) +public @interface TestScenarioWithOrder { + + String name() default ""; + + Browser[] browsers() default {Browser.MS_EDGE, Browser.GOOGLE_CHROME}; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestSuite.java b/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestSuite.java new file mode 100644 index 0000000..113bc1f --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/annotations/TestSuite.java @@ -0,0 +1,19 @@ +package cz.moneta.test.harness.annotations; + +import cz.moneta.test.harness.HarnessJunit5Extension; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.platform.runner.JUnitPlatform; +import org.junit.runner.RunWith; + +import java.lang.annotation.*; + +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@RunWith(JUnitPlatform.class) +@ExtendWith(HarnessJunit5Extension.class) +public @interface TestSuite { + + String name() default ""; + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/config/ConfigProvider.java b/test-harness/src/main/java/cz/moneta/test/harness/config/ConfigProvider.java new file mode 100644 index 0000000..66e2f23 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/config/ConfigProvider.java @@ -0,0 +1,117 @@ +package cz.moneta.test.harness.config; + +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.exception.HarnessConfigurationException; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Properties; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public final class ConfigProvider { + + private static final Logger logger = LogManager.getLogger(ConfigProvider.class); + + private ConfigProvider() {} + + public static Map readConfig() { + String fileName = Stream.>of( + () -> System.getProperty("config"), + () -> System.getenv("HARNESS_CONFIG")) + .map(Supplier::get) + .filter(Objects::nonNull) + .findFirst() + .orElseThrow(() -> new HarnessConfigurationException("You need to provide a configuration file")); + + Map resultConfig = loadConfig(fileName, new ArrayList<>()); + logger.debug("Effective configuration:"); + resultConfig.entrySet() + .stream() + .filter(configEntry -> !configEntry.getKey().equals(HarnessConfigConstants.VAULT_PASSWORD_CONFIG)) //DO NOT LOG VAULT PWD VALUE! + .collect(Collectors.toMap(Map.Entry::getKey, configEntry -> configEntry.getValue().trim())) + .forEach((key, value) -> logger.debug("{}={}", key, value)); + return resultConfig; + } + + private static Map loadConfig(String fileName, List configStack) { + Map properties = readProperties(fileName); + + return Optional.ofNullable(properties.get("environment.from")) + .map(fn -> { + if (configStack.contains(fn)) { + throw new IllegalStateException("Config chain contains circular dependencies"); + } + return fn; + }) + .map(fn -> { + configStack.add(fn); + return loadConfig(fn, configStack); + }) + .map(p -> { + p.putAll(properties); + return p; + }) + .orElse(properties); + } + + private static Map readProperties(String fileName) { + Reader reader; + try { + logger.debug(() -> String.format("Trying to load config file: %s", fileName)); + reader = new FileReader(fileName); + } catch (FileNotFoundException e) { + logger.debug(() -> + String.format("Could not load file: %s, trying to load it as classpath resource", fileName)); + reader = getReaderForClasspathResource(fileName); + } + + Properties properties = new Properties(); + try { + properties.load(reader); + } catch (IOException e) { + throw new IllegalStateException("Cannot read config file", e); + } + + return properties.stringPropertyNames().stream() + .collect(Collectors.toMap(k -> k, k -> resolveSystemProperty(properties.getProperty(k)))); + } + + private static String resolveSystemProperty(String value) { + return Stream.>>of( + () -> Optional.ofNullable(value).filter(v -> !value.startsWith("$")), + () -> Optional.ofNullable(value) + .map(v -> System.getProperty(v.substring(1))) + .map(v -> { + logger.debug("Successfully resolved system property: {}", () -> value); + return v; + })) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Cannot find system property for: " + value)); + } + + private static Reader getReaderForClasspathResource(String resourceName) { + String resourcePath = "envs/" + resourceName; //TODO hidden magic constant - fix this concept + InputStream resourceAsStream = ConfigProvider.class.getClassLoader().getResourceAsStream(resourcePath); + if (resourceAsStream != null) { + return new InputStreamReader(resourceAsStream); + } else { + throw new IllegalStateException(String.format("Cannot find config file: %s", resourceName)); + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/Connector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/Connector.java new file mode 100644 index 0000000..970c711 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/Connector.java @@ -0,0 +1,7 @@ +package cz.moneta.test.harness.connectors; + +public interface Connector { + + default void close() { + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/DemoConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/DemoConnector.java new file mode 100644 index 0000000..b8ff7d8 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/DemoConnector.java @@ -0,0 +1,39 @@ +package cz.moneta.test.harness.connectors; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + +public class DemoConnector implements Connector { + + private Path directory; + + public void connectToTempDirectoryService(String name) { + try { + directory = Files.createTempDirectory(name); + } catch (IOException e) { + throw new RuntimeException("Cannot connect to temp filesystem service", e); + } + } + + public void createFile(String name) { + try { + Files.createFile(directory.resolve(name)); + } catch (IOException e) { + throw new RuntimeException(String.format("Cannot create file: %s", name), e); + } + } + + public boolean fileExists(String name) { + return Files.exists(directory.resolve(name)); + } + + public void deleteFile(String name) { + try { + Files.delete(directory.resolve(name)); + } catch (IOException e) { + throw new RuntimeException(String.format("Cannot delete file: %s", name), e); + } + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/GreenScreenConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/GreenScreenConnector.java new file mode 100644 index 0000000..6974288 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/GreenScreenConnector.java @@ -0,0 +1,156 @@ +package cz.moneta.test.harness.connectors; + +import com.bytezone.dm3270.ConnectionListener; +import com.bytezone.dm3270.TerminalClient; +import com.bytezone.dm3270.commands.AIDCommand; +import com.bytezone.dm3270.display.ScreenDimensions; +import cz.moneta.test.harness.support.greenscreen.Key; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.glassfish.jersey.SslConfigurator; + +import javax.net.ssl.SSLSocketFactory; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.cert.CertificateException; +import java.util.concurrent.Semaphore; +import java.util.concurrent.TimeUnit; + +public class GreenScreenConnector implements Connector { + + public static final String CLIENT = "08548"; + private static final Logger LOG = LogManager.getLogger("GreenScreenConnector"); + private final Semaphore lock = new Semaphore(0); + private final TerminalClient terminal; + private final String url; + private final String user; + private final String password; + + public GreenScreenConnector(String url, String user, String password) { + this.url = url; + this.user = user; + this.password = password; + + this.terminal = new TerminalClient(0, new ScreenDimensions(24, 80)); + terminal.setConnectionTimeoutMillis(20_000); + terminal.setConnectionListener(buildConnectionListener()); + terminal.addScreenChangeListener(sw -> { + LOG.debug(() -> "screen changed: \n" + toCp870(terminal.getScreenText())); + lock.release(); + }); + terminal.setSocketFactory(buildSocketFactory()); + } + + private static ConnectionListener buildConnectionListener() { + return new ConnectionListener() { + @Override + public void onConnection() { + LOG.info("CONNECTED!!!"); + } + + @Override + public void onException(Exception e) { + LOG.error("Green screen connection failed", e); + } + + @Override + public void onConnectionClosed() { + LOG.info("CONNECTION CLOSED!!!"); + } + }; + } + + private static String toCp870(String cp1047) { + try { + return new String(cp1047.getBytes("CP1047"), "CP870"); + } catch (UnsupportedEncodingException e) { + throw new IllegalStateException("Error converting CP1047 to CP870"); + } + } + + private static String toCp1047(String cp870) { + try { + return new String(cp870.getBytes("CP870"), "CP1047"); + } catch (UnsupportedEncodingException e) { + throw new IllegalStateException("Error converting CP870 to CP1047"); + } + } + + public void connectAndLogin() { + terminal.connect(url, 992); + waitForScreenChange(); + terminal.setFieldTextByCoord(24, 1, "atrf"); + terminal.sendAID(AIDCommand.AID_ENTER, "ENTER"); + waitForScreenChange(); + terminal.sendAID(AIDCommand.AID_ENTER, "ENTER"); + waitForScreenChange(); + terminal.setFieldTextByCoord(6, 25, CLIENT); + terminal.setFieldTextByCoord(8, 24, user); + terminal.setFieldTextByCoord(10, 24, password); + terminal.sendAID(AIDCommand.AID_ENTER, "ENTER"); + waitForScreenChange(); + waitForScreenChange(); + terminal.sendAID(AIDCommand.AID_ENTER, "ENTER"); + waitForScreenChange(); + } + + private void waitForScreenChange() { + boolean success = false; + try { + success = lock.tryAcquire(5L, TimeUnit.SECONDS); + TimeUnit.MILLISECONDS.sleep(200); + } catch (InterruptedException e) { + LOG.error(e); + } + if (!success) { + throw new IllegalStateException("Failed to load screen within 5 second timeout"); + } + } + + private SSLSocketFactory buildSocketFactory() { + try (InputStream truststoreIs = this.getClass().getClassLoader() + .getResourceAsStream("keystores/greenScreenTrustStore")) { + + KeyStore trustedStore = KeyStore.getInstance(KeyStore.getDefaultType()); + trustedStore.load(truststoreIs, "changeit".toCharArray()); + + return SslConfigurator.newInstance() + .trustStore(trustedStore) + .keyStorePassword("changeit".toCharArray()) + .createSSLContext() + .getSocketFactory(); + + } catch (KeyStoreException | IOException | CertificateException | NoSuchAlgorithmException e) { + throw new IllegalStateException("Failed to initialize SSL context", e); + } + } + + public String getText(int row, int column, int length) { + String screenText = toCp870(terminal.getScreenText()); + if (length == 0) { + return screenText; + } else { + int beginIndex = (row - 1) * 81 + column - 1; + return screenText.substring(beginIndex, beginIndex + length); + } + } + + public void pressKey(Key key) { + switch (key) { + case ENTER: + terminal.sendAID(AIDCommand.AID_ENTER, "ENTER"); + waitForScreenChange(); + break; + default: + throw new IllegalArgumentException("Unknown key " + key.name()); + } + } + + public void type(int row, int column, String text) { + terminal.setFieldTextByCoord(row, column, toCp1047(text)); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/IlodsServerConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/IlodsServerConnector.java new file mode 100644 index 0000000..bc3b78a --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/IlodsServerConnector.java @@ -0,0 +1,129 @@ +package cz.moneta.test.harness.connectors; + +import itSodTesting.sharedResources.objects.dataTransfer.IlodsServerEnvironmentList; +import itSodTesting.sharedResources.objects.dataTransfer.IlodsServerSourceSystem; +import itSodTesting.sharedResources.objects.dataTransfer.ObjectTransferToClient; +import itSodTesting.sharedResources.objects.dataTransfer.ObjectTransferToServer; +import itSodTesting.sharedResources.utils.getUser.LoggedUser; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.net.SocketTimeoutException; + +public class IlodsServerConnector implements Connector { + + private static final Logger logger = LogManager.getLogger(IlodsServerConnector.class); + + private static final String token = "&PE$T.Q;1SXdhF@#$vdnv3,M8r5+dr=e"; + + private static final Pair liveServer = Pair.of("primary", "MBCZVW1DL0LRC02.mbid.cz"); + private static final Pair backupServer = Pair.of("secondary", "MBCZVW0BL0LRC01.mbid.cz"); + private static final Pair devServer = Pair.of("develop", "MBCZDWHQXX10366.mbid.cz"); + + private Pair currentServer = liveServer; + // private Pair currentServer = devServer; + + private IlodsServerEnvironmentList environment; + + public IlodsServerConnector(IlodsServerEnvironmentList environment) { + this.environment = environment; + } + + public ObjectTransferToClient sendRequest(ObjectTransferToServer data) { + ObjectTransferToClient receivedObject = connectAndReceiveData(data); + + // no response = second try + if (receivedObject == null) { + switchServer(); + receivedObject = connectAndReceiveData(data); + } + + if (receivedObject == null) { + throw new RuntimeException("Cannot connect to Ilods servers"); + } + + return receivedObject; + } + + private ObjectTransferToClient connectAndReceiveData(ObjectTransferToServer data) { + ObjectTransferToClient receivedObject = null; + Socket clientSocket = null; + + try { + clientSocket = new Socket(); + clientSocket.connect(new InetSocketAddress(currentServer.getRight(), 51001), 1000); + clientSocket.setSoTimeout(60 * 1000); + + ObjectOutputStream outToServer = new ObjectOutputStream(clientSocket.getOutputStream()); + ObjectInputStream inFromServer = new ObjectInputStream(clientSocket.getInputStream()); + + // add clients informations do data + data.setToken(token); + data.setSourceSystem(IlodsServerSourceSystem.HARNESS); + data.setMachineId(LoggedUser.getComputerName()); + data.setClientId(LoggedUser.getUserName()); + data.setEnvironment(environment); + + // pack and sending object data to server + outToServer.writeObject(data); + + // unpack and reading object response from server + Object transferedObject = inFromServer.readObject(); + receivedObject = (ObjectTransferToClient) transferedObject; + + // recognize and process errors + if (receivedObject.getResultCode() == 12) { + throw new RuntimeException("Fatal error during processing " + data.getActionType() + ": " + receivedObject.getResultString()); + } else if (receivedObject.getResultCode() != 0) { + throw new RuntimeException("Server error during processing " + data.getActionType() + ": " + receivedObject.getResultString()); + } + + } catch (SocketTimeoutException e) { + logger.warn("Connection timed out - " + currentServer.getLeft() + " Ilods server didn't respond within the specified interval"); + } catch (ClassNotFoundException | IOException e) { + logger.warn("Ilods server (" + currentServer.getLeft() + ") unavailable", e); + } finally { + closeConnection(clientSocket); + } + + return receivedObject; + } + + private void switchServer() { + // Set up switch between primary/secondary Ilods Server (with check develop mode) + if (currentServer == devServer) { + return; + } + + if (currentServer == liveServer) { + currentServer = backupServer; + } else { + currentServer = liveServer; + } + logger.info("Trying to call " + currentServer.getLeft() + " Ilods server"); + } + + private void closeConnection(Socket socket) { + if (socket == null) + return; + try { + socket.shutdownInput(); + } catch (IOException e) { + } + try { + socket.shutdownOutput(); + } catch (IOException e) { + } + try { + socket.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/VaultConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/VaultConnector.java new file mode 100644 index 0000000..d8fff14 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/VaultConnector.java @@ -0,0 +1,123 @@ +package cz.moneta.test.harness.connectors; + +import com.bettercloud.vault.SslConfig; +import com.bettercloud.vault.Vault; +import com.bettercloud.vault.VaultConfig; +import com.bettercloud.vault.VaultException; +import com.bettercloud.vault.api.Logical; +import com.bettercloud.vault.response.LogicalResponse; +import cz.moneta.test.harness.connectors.rest.BaseRestConnector; +import cz.moneta.test.harness.support.auth.Credentials; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.security.KeyStore; +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + +public class VaultConnector extends BaseRestConnector { + + private static final Logger LOG = LogManager.getLogger(VaultConnector.class); + + private static String url; + private static String username; + private static String pwd; + + private static Vault vault; + private static VaultConfig config; + + private static LocalDateTime tokenExpiration; + + public VaultConnector(String url, String username, String pwd) { + this.url = url; + this.username = username; + this.pwd = pwd; + + if (tokenExpiration == null) { + initVaultConnection(); + } else if (tokenExpiration.minusMinutes(1).isBefore(LocalDateTime.now())) { + loginVault(); + } + } + + private void initVaultConnection() { + try { + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + keyStore.load(this.getClass().getClassLoader().getResourceAsStream("keystores/mb_root"), "changeit".toCharArray()); + config = new VaultConfig() + .address(url) + .sslConfig(new SslConfig() + .trustStore(keyStore) + .build()) + .build(); + + vault = new Vault(config, 2); + + loginVault(); + + } catch (Exception e) { + throw new IllegalStateException("Failed to connect to vault url: " + url, e); + } + } + + private void loginVault() { + try { + String token = vault.auth().loginByUserPass(username, pwd).getAuthClientToken(); + config.token(token).build(); + + long ttl = vault.auth().lookupSelf().getTTL(); + tokenExpiration = LocalDateTime.now().plusSeconds(ttl); + } catch (VaultException e) { + LOG.error("Cannot get Vault token", e); + } + } + + public Optional getUsernameAndPassword(String path) { + return Optional.ofNullable(vault.logical()) + .map(v -> readValue(path, v)) + .map(LogicalResponse::getDataObject) + .flatMap(d -> Optional.ofNullable(d.getString("username")).map(usr -> Pair.of(usr, d))) + .flatMap(p -> Optional.ofNullable(p.getRight().getString("password")).map(pwd -> new Credentials(p.getLeft(), pwd))); + } + + @SuppressWarnings("unchecked") + public Optional getValue(String path, String key) { + return Optional.ofNullable(vault.logical()) + .map(v -> readValue(path, v)) + .map(LogicalResponse::getDataObject) + .map(d -> (T) d.getString(key)); + } + + public void setKeyValue(String path, String key, String value) { + Optional.ofNullable(readValue(path, vault.logical())) + .map(LogicalResponse::getData) + .map(map -> new HashMap(map)) + .map(m -> { + m.put(key, value); + return m; + }) + .map(m -> writeValue(path, m, vault.logical())) + .orElseThrow(() -> new IllegalStateException("Cannot write value to vault")); + } + + private LogicalResponse writeValue(String path, Map value, Logical vault) { + try { + return vault.write(path, value); + } catch (VaultException e) { + LOG.error("Failed to write value from vault: {}\n{}", path, e); + return null; + } + } + + private LogicalResponse readValue(String path, Logical v) { + try { + return v.read(path); + } catch (VaultException e) { + LOG.error("Failed to read value from vault: {}\n{}", path, e); + return null; + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/WsConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/WsConnector.java new file mode 100644 index 0000000..f2a41ba --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/WsConnector.java @@ -0,0 +1,46 @@ +package cz.moneta.test.harness.connectors; + +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.ws.BindingProvider; +import jakarta.xml.ws.Dispatch; +import jakarta.xml.ws.Service; +import jakarta.xml.ws.handler.MessageContext; +import org.apache.cxf.jaxws.CXFService; + +import javax.xml.namespace.QName; +import java.net.URL; + +public class WsConnector { + + private final Service service; + private final QName portName; + private final String address; + private final String serviceNamespace; + + public WsConnector(String address, URL wsdlUrl, QName serviceName) { + this.address = address; + Service service = CXFService.create(wsdlUrl, serviceName); + if (service.getPorts().hasNext()) { + this.portName = service.getPorts().next(); + } else { + throw new IllegalStateException(String.format("Service definition %s has no ports defined", wsdlUrl.toString())); + } + this.serviceNamespace = serviceName.getNamespaceURI(); + this.service = service; + } + + @SuppressWarnings("unchecked") + public RESP invoke(Object request, Class responseClass) { + try { + QName operationName = new QName(serviceNamespace, request.getClass().getSimpleName()); + JAXBContext jaxbContext = JAXBContext.newInstance(responseClass.getPackage().getName()); + Dispatch dispatch = service.createDispatch(portName, jaxbContext, Service.Mode.PAYLOAD); + dispatch.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, address); + dispatch.getRequestContext().put(MessageContext.WSDL_OPERATION, operationName); + return (RESP) dispatch.invoke(request); + } catch (JAXBException e) { + throw new IllegalArgumentException("Failed to invoke request", e); + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/common/ServletConfigAccessor.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/common/ServletConfigAccessor.java new file mode 100644 index 0000000..d56c7f0 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/common/ServletConfigAccessor.java @@ -0,0 +1,27 @@ +package cz.moneta.test.harness.connectors.common; + +import cz.moneta.test.harness.config.ConfigProvider; +import cz.moneta.test.harness.context.ConfigAccessor; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class ServletConfigAccessor implements ConfigAccessor { + + private final Map config = new ConcurrentHashMap<>(ConfigProvider.readConfig()); + + @Override + public String getConfig(String key) { + return config.get(key); + } + + @Override + public String getConfig(String key, String defaultValue) { + return config.getOrDefault(key, defaultValue); + } + + @Override + public void putConfig(String key, String value) { + config.put(key, value); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/DatabaseConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/DatabaseConnector.java new file mode 100644 index 0000000..6b3a753 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/DatabaseConnector.java @@ -0,0 +1,44 @@ +package cz.moneta.test.harness.connectors.database; + +import cz.moneta.test.harness.connectors.Connector; +import org.jooq.Record; +import org.jooq.Result; +import org.jooq.SQLDialect; +import org.jooq.impl.DSL; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class DatabaseConnector implements Connector { + + private final String url; + private final String user; + private final String password; + + public DatabaseConnector(String url, String user, String password) { + this.url = url; + this.user = user; + this.password = password; + } + + protected Result executeSql(String sql, SQLDialect sqlDialect) { + try (Connection connection = DriverManager.getConnection(getUrl(), getUser(), getPassword())) { + return DSL.using(connection, sqlDialect).fetch(sql); + } catch (SQLException e) { + throw new RuntimeException("Error executing native sql database", e); + } + } + + public String getUrl() { + return url; + } + + public String getUser() { + return user; + } + + public String getPassword() { + return password; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/MsSqlConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/MsSqlConnector.java new file mode 100644 index 0000000..8fe889a --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/MsSqlConnector.java @@ -0,0 +1,23 @@ +package cz.moneta.test.harness.connectors.database; + +import cz.moneta.test.harness.support.auth.Credentials; +import org.jooq.Record; +import org.jooq.Result; +import org.jooq.SQLDialect; + +public class MsSqlConnector extends DatabaseConnector { + + private static final String windowsAuthenticationOption = ";integratedSecurity=true"; + + public MsSqlConnector(String url, Credentials credentials) { + super(url, credentials.getUsername(), credentials.getPassword()); + } + + public MsSqlConnector(String url) { + super(url + windowsAuthenticationOption, "", ""); + } + + public Result executeSql(String sql) { + return super.executeSql(sql, SQLDialect.SQLSERVER); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/OracleConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/OracleConnector.java new file mode 100644 index 0000000..ba69d05 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/OracleConnector.java @@ -0,0 +1,65 @@ +package cz.moneta.test.harness.connectors.database; + +import org.jooq.Configuration; +import org.jooq.DSLContext; +import org.jooq.Record; +import org.jooq.Result; +import org.jooq.Routine; +import org.jooq.SQLDialect; +import org.jooq.TableRecord; +import org.jooq.impl.DSL; +import org.jooq.impl.DefaultConfiguration; +import org.jooq.impl.DefaultConnectionProvider; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.util.function.Consumer; +import java.util.function.Function; + +public class OracleConnector extends DatabaseConnector { + + public OracleConnector(String url, String user, String password) { + super(url, user, password); + } + + public > R executeDsl(Function query) { + try (Connection connection = DriverManager.getConnection(getUrl(), getUser(), getPassword())) { + return query.apply(DSL.using(connection, SQLDialect.ORACLE)); + } catch (SQLException e) { + throw new RuntimeException("Error querying database", e); + } + } + + public K insertDsl(Function query) { + try (Connection connection = DriverManager.getConnection(getUrl(), getUser(), getPassword())) { + return query.apply(DSL.using(connection, SQLDialect.ORACLE)); + } catch (SQLException e) { + throw new RuntimeException("Error querying database", e); + } + } + + public > R executeProcedure(R procedure) { + try (Connection connection = DriverManager.getConnection(getUrl(), getUser(), getPassword())) { + Configuration configuration = new DefaultConfiguration() + .derive(new DefaultConnectionProvider(connection)) + .derive(SQLDialect.ORACLE); + procedure.execute(configuration); + return procedure; + } catch (SQLException e) { + throw new RuntimeException("Error executing procedure database", e); + } + } + + public Result executeSql(String sql) { + return super.executeSql(sql, SQLDialect.ORACLE); + } + + public void executeStatement(Consumer execute) { + try (Connection connection = DriverManager.getConnection(getUrl(), getUser(), getPassword())) { + execute.accept(connection); + } catch (SQLException e) { + throw new RuntimeException("Error executing statement", e); + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/PostgresConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/PostgresConnector.java new file mode 100644 index 0000000..6a38403 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/database/PostgresConnector.java @@ -0,0 +1,16 @@ +package cz.moneta.test.harness.connectors.database; + +import org.jooq.Record; +import org.jooq.Result; +import org.jooq.SQLDialect; + +public class PostgresConnector extends DatabaseConnector { + + public PostgresConnector(String url, String user, String password) { + super(url, user, password); + } + + public Result executeSql(String sqlToExecute) { + return super.executeSql(sqlToExecute, SQLDialect.POSTGRES); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/AppiumMobileConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/AppiumMobileConnector.java new file mode 100644 index 0000000..dc63e7e --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/AppiumMobileConnector.java @@ -0,0 +1,338 @@ +package cz.moneta.test.harness.connectors.mobile; + +import cz.moneta.test.harness.connectors.Connector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.smartbanka.MobilePlatform; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.web.TextContainer; +import cz.moneta.test.harness.support.web.Until; +import io.appium.java_client.AppiumDriver; +import io.appium.java_client.MobileBy; +import io.appium.java_client.remote.MobileCapabilityType; +import io.appium.java_client.touch.offset.PointOption; +import org.apache.commons.io.FileUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.openqa.selenium.*; +import org.openqa.selenium.remote.CapabilityType; +import org.openqa.selenium.remote.DesiredCapabilities; +import org.openqa.selenium.support.ui.ExpectedCondition; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.FluentWait; +import org.openqa.selenium.support.ui.WebDriverWait; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Paths; +import java.time.Duration; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.function.Function; +import java.util.stream.Stream; + +import static io.appium.java_client.touch.offset.PointOption.point; +import static java.time.Duration.ofMillis; +import static org.apache.commons.collections.CollectionUtils.isNotEmpty; +import static org.openqa.selenium.support.ui.ExpectedConditions.alertIsPresent; + +public abstract class AppiumMobileConnector implements Connector { + private static final Logger logger = LogManager.getLogger(AppiumMobileConnector.class); + private static final int LAZY_ELEMENT_RENDER_TIMEOUT = 5; + protected String deviceName; + protected String udid; + protected String bundleId; + protected String appBinaryPath; + protected String host; + protected final StoreAccessor store; + private final Function defaultLookup; + + protected abstract A getDriver(); + + public abstract void captureVideo(String snapshotFileName); + + public abstract void resetApp(); + + public abstract void close(); + + public AppiumMobileConnector(Function defaultLookup, StoreAccessor store, String host, String appBinaryPath) { + this.store = store; + this.host = host; + this.defaultLookup = defaultLookup; + this.appBinaryPath = appBinaryPath; + } + + public String getDeviceName() { + return deviceName; + } + + public StoreAccessor getStore() { + return store; + } + + protected void setDesiredCapabilities(Platform platformName, String deviceName, String udid, String automationName, DesiredCapabilities capabilities) { + capabilities.setCapability(CapabilityType.PLATFORM_NAME, platformName); + // capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, deviceName); + // capabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 150); + // capabilities.setCapability(MobileCapabilityType.NO_RESET, true); + // capabilities.setCapability(MobileCapabilityType.UDID, udid); + // capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, automationName); + // capabilities.setCapability(MobileCapabilityType.APP, appBinaryPath); + } + + protected Optional launchExistingApp(A driver) { + // return Optional.of(driver) + // .map(app -> { + // driver.launchApp(); + // return driver; + // }); + return Optional.of(driver); + // TODO: actually not supported + } + + private void installApp(String path, A driver) { +// Optional.of(bundleId) +// .filter(app -> !driver.isAppInstalled(app)) +// .map(installApp -> { +// logger.info("App was not found on the device " + deviceName + " and will be installed"); +// try { +// driver.installApp(path); +// } catch (WebDriverException e) { +// throw new HarnessException("The application at " + path + " does not exist or is not accessible. " + +// "Please, check if the path is correct"); +// } +// return driver; +// }); + // TODO: actually not supported + } + + protected void mobileLanguage(DesiredCapabilities capabilities, String ENPlatformLocale, String CZPlatformLocale) { + String languageKey = store.getConfig("appium.language", "cs"); + switch (languageKey) { + case "en": + capabilities.setCapability(MobileCapabilityType.LANGUAGE, "en"); + capabilities.setCapability(MobileCapabilityType.LOCALE, ENPlatformLocale); + break; + case "cs": + capabilities.setCapability(MobileCapabilityType.LANGUAGE, "cs"); + capabilities.setCapability(MobileCapabilityType.LOCALE, CZPlatformLocale); + break; + default: + throw new HarnessException("Please, define the appium.language parameter. Available language is cs or en"); + } + } + + protected Boolean checkVideoRecord() { + return Boolean.parseBoolean(store.getConfig("appium.video.record", "false")); + } + + public void click(String path, MobileLookup mobileLookup) { +// new TouchAction<>(getDriver()) +// .tap(tapOptions().withElement(element(waitForLazyElement(path, mobileLookup)))) +// .perform(); + // TODO: actually not supported + } + + protected WebElement waitForLazyElement(String path, MobileLookup mobileLookup) { + doWaitForLazyElement(path, mobileLookup); + return getDriver().findElement(resolveMobileLookup(mobileLookup, path)); + } + + List waitForLazyElements(String path, MobileLookup mobileLookup) { + doWaitForLazyElement(path, mobileLookup); + return getDriver().findElements(resolveMobileLookup(mobileLookup, path)); + } + + private void doWaitForLazyElement(String path, MobileLookup mobileLookup) { + new FluentWait<>(getDriver()) + .withTimeout(Duration.ofSeconds(LAZY_ELEMENT_RENDER_TIMEOUT)) + .pollingEvery(ofMillis(300)) + .ignoring(NoSuchElementException.class) + .ignoring(StaleElementReferenceException.class) + .withMessage("Element/s not found within " + LAZY_ELEMENT_RENDER_TIMEOUT + + " seconds timeout. If this error occurs, you might want to consider using explicit @AndroidWait or @IosWait annotation. " + path) + .until(driver -> !driver.findElements(resolveMobileLookup(mobileLookup, path)).isEmpty()); + } + + private Alert waitForAlert(int timeout) { + return new FluentWait<>(getDriver()) + .withTimeout(Duration.ofSeconds(timeout)) + .pollingEvery(Duration.ofMillis(300)) + .withMessage("Alert is not present after " + timeout + " seconds timeout.") + .until(driver -> alertIsPresent().apply(getDriver())); + } + + public void acceptAlert(int timeout) { + waitForAlert(timeout).accept(); + } + + public void dismissAlert(int timeout) { + waitForAlert(timeout).dismiss(); + } + + public String getText(String path, MobileLookup mobileLookup) { + return waitForLazyElement(path, mobileLookup).getText(); + } + + public void waitForElements(int timeoutSeconds, MobileLookup mobileLookup, Until until, String... elementsToCheck) { + WebDriverWait wait = new WebDriverWait(getDriver(), Duration.ofSeconds(timeoutSeconds)); + Arrays.stream(elementsToCheck) + .forEach(path -> wait.until(resolveUntil(until).apply(resolveMobileLookup(mobileLookup, path)))); + } + + public void scrollRight() { + horizontalScroll(0.2, 0.8, 0.5); + } + + public void scrollLeft() { + horizontalScroll(0.8, 0.2, 0.5); + } + + public void swipeViewLeft() { + horizontalScroll(0.9, 0.02, 0.88); + } + + public void swipeViewRight() { + horizontalScroll(0.02, 0.9, 0.88); + } + + private void horizontalScroll(double startPercentage, double endPercentage, double anchorPercentage) { + Dimension size = getDriver().manage().window().getSize(); + int anchor = (int) (size.height * anchorPercentage); + int startPoint = (int) (size.width * startPercentage); + int endPoint = (int) (size.width * endPercentage); + + doScroll(point(startPoint, anchor), point(endPoint, anchor)); + } + + public void scrollDown() { + verticalScroll(0.5, 0.2); + } + + public void scrollUp() { + verticalScroll(0.2, 0.5); + } + + public void scrollLeftUntil(String path, MobileLookup mobileLookup) { + doScrollUntil(path, mobileLookup, this::scrollLeft); + } + + public void scrollRightUntil(String path, MobileLookup mobileLookup) { + doScrollUntil(path, mobileLookup, this::scrollRight); + } + + public void scrollDownUntil(String path, MobileLookup mobileLookup) { + doScrollUntil(path, mobileLookup, this::scrollDown); + } + + public void scrollUpUntil(String path, MobileLookup mobileLookup) { + doScrollUntil(path, mobileLookup, this::scrollUp); + } + + public void swipeFromToElement(String source, String target, MobileLookup mobileLookup) { +// Point fromElementPosition = waitForLazyElement(source, mobileLookup).getCenter(); +// Point toElementPosition = getDriver().findElement(resolveMobileLookup(mobileLookup, target)).getCenter(); +// doScroll(point(fromElementPosition.x, fromElementPosition.y), point(toElementPosition.x, toElementPosition.y)); + // TODO: actually not supported + } + + private void doScrollUntil(String path, MobileLookup mobileLookup, Runnable scroll) { + Stream.generate(() -> scroll) + .limit(10) + .peek(Runnable::run) + .filter(r -> isNotEmpty(getDriver().findElements(resolveMobileLookup(mobileLookup, path)))) + .findFirst() + .orElseThrow(() -> + new HarnessException(String.format("Element '%s' not present after 10 swipes", path))); + } + + private void verticalScroll(double startPercentage, double endPercentage) { + Dimension size = getDriver().manage().window().getSize(); + int anchor = (int) (size.width * 0.3); + int startPoint = (int) (size.height * startPercentage); + int endPoint = (int) (size.height * endPercentage); + + doScroll(point(anchor, startPoint), point(anchor, endPoint)); + } + + private void doScroll(PointOption from, PointOption to) { +// new TouchAction(getDriver()) +// .press(from) +// .waitAction(waitOptions(ofMillis(1000))) +// .moveTo(to) +// .release().perform(); + // TODO: acctualy not supported + } + + public void takeSnapshot(String snapshotFileName) { + String snapshotsPath = store.getConfig("appium.snapshots.path", "target/screenshots"); + File file = Paths.get(snapshotsPath, snapshotFileName).toFile(); + try { + FileUtils.writeByteArrayToFile(file, getDriver().getScreenshotAs(OutputType.BYTES)); + } catch (IOException e) { + throw new IllegalStateException("Unable to write " + snapshotFileName + " to " + snapshotsPath, e); + } + } + + public void saveSource(String sourceFileName) { + String sourcesPath = store.getConfig("appium.view.sources.path", "target/sources"); + File file = Paths.get(sourcesPath, sourceFileName).toFile(); + try { + FileUtils.writeByteArrayToFile(file, getDriver().getPageSource().getBytes()); + } catch (IOException e) { + throw new IllegalStateException("Unable to write " + sourceFileName + " to " + sourcesPath, e); + } + } + + public void type(TextContainer input, String text, boolean clear, MobileLookup mobileLookup) { + if (clear) { + clearInput(input, mobileLookup); + } + waitForLazyElement(input.getPath(), mobileLookup).sendKeys(text); + } + + private void clearInput(TextContainer input, MobileLookup mobileLookup) { + waitForLazyElement(input.getPath(), mobileLookup).clear(); + } + + public WebElementsCheck elementsCheck() { + return new WebElementsCheck(this); + } + + private By resolveMobileLookup(MobileLookup mobileLookup, String path) { + if (MobilePlatform.isAndroid(getStore())) { + path = mobileLookup.equals(MobileLookup.ANDROID_TEXT) ? "new UiSelector().textContains(\"" + path + "\")" : path; + path = mobileLookup.equals(MobileLookup.ID) ? bundleId + ":id/" + path : path; + } + return resolveLookup(mobileLookup).apply(path); + } + + private Function resolveLookup(MobileLookup mobileLookup) { + switch (mobileLookup) { + case XPATH: + return MobileBy::xpath; + case ID: + return MobileBy::id; + case IOS_NAME: + return MobileBy::name; + case ANDROID_TEXT: + return MobileBy::AndroidUIAutomator; + default: + return defaultLookup; + } + } + + private Function> resolveUntil(Until until) { + switch (until) { + case VISIBLE: + return ExpectedConditions::visibilityOfElementLocated; + case PRESENT_IN_DOM: + return ExpectedConditions::presenceOfElementLocated; + case GONE: + return ExpectedConditions::invisibilityOfElementLocated; + default: + return ExpectedConditions::presenceOfElementLocated; + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/UnsupportedPlatformException.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/UnsupportedPlatformException.java new file mode 100644 index 0000000..47c21cf --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/UnsupportedPlatformException.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.connectors.mobile; + +import cz.moneta.test.harness.endpoints.smartbanka.MobilePlatform; +import org.openqa.selenium.Platform; + +public class UnsupportedPlatformException extends AssertionError { + + public UnsupportedPlatformException(MobilePlatform platform) { + super("Method is supported only for " + platform + ", please check your mobile platform or use another method"); + } + + public UnsupportedPlatformException(String message) { + super(message); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/WebElementsCheck.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/WebElementsCheck.java new file mode 100644 index 0000000..d561a7b --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/WebElementsCheck.java @@ -0,0 +1,28 @@ +package cz.moneta.test.harness.connectors.mobile; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import org.openqa.selenium.WebElement; + +import java.util.List; + +public class WebElementsCheck { + + private final AppiumMobileConnector connector; + + public WebElementsCheck(AppiumMobileConnector connector) { + this.connector = connector; + } + + public void checkElementContent(String path, String content, MobileLookup mobileLookup) { + List elements = connector.waitForLazyElements(path, mobileLookup); + elements.stream() + .map(WebElement::getText) + .filter(text -> text.contains(content)) + .findFirst() + .orElseThrow(() -> new AssertionError(String.format("Cannot find element that contains text %s", content))); + } + + public void checkElementPresent(String path, MobileLookup mobileLookup) { + connector.waitForLazyElement(path, mobileLookup); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/android/AndroidConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/android/AndroidConnector.java new file mode 100644 index 0000000..de88006 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/android/AndroidConnector.java @@ -0,0 +1,123 @@ +package cz.moneta.test.harness.connectors.mobile.android; + +import cz.moneta.test.harness.connectors.mobile.AppiumMobileConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.exception.HarnessException; +import io.appium.java_client.android.AndroidDriver; +import io.appium.java_client.android.nativekey.AndroidKey; +import io.appium.java_client.android.nativekey.KeyEvent; +import io.appium.java_client.remote.AutomationName; +import org.apache.commons.io.FileUtils; +import org.openqa.selenium.By; +import org.openqa.selenium.Platform; +import org.openqa.selenium.WebDriverException; +import org.openqa.selenium.remote.DesiredCapabilities; + +import java.io.File; +import java.io.IOException; +import java.net.ConnectException; +import java.net.MalformedURLException; +import java.net.URL; +import java.nio.file.Paths; +import java.util.Arrays; +import java.util.Base64; +import java.util.Optional; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Stream; + +public class AndroidConnector extends AppiumMobileConnector { + private final AndroidDriver driver; + + public AndroidConnector(Function defaultLookup, StoreAccessor store, String host, String deviceName, String udid, String appPackage, String appBinaryPath) { + super(defaultLookup, store, host, appBinaryPath); + this.deviceName = deviceName; + this.udid = udid; + this.bundleId = appPackage; + this.driver = initDriver(); + } + + @Override + protected AndroidDriver getDriver() { + return driver; + } + + private AndroidDriver initDriver() { + return startDriver() + .map(this::startRecording) + .flatMap(d -> + Stream.>>of( + () -> launchExistingApp(d)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst()) + .orElseThrow(() -> new HarnessException("App was not started")); + } + + private Optional startDriver() { + return Optional.ofNullable(host) + .map(cs -> { + DesiredCapabilities capabilities = new DesiredCapabilities(); + mobileLanguage(capabilities, "US", "CZ"); + setDesiredCapabilities(Platform.ANDROID, deviceName, udid, getUiAutomator(), capabilities); + try { + return new AndroidDriver(new URL(cs), capabilities); + } catch (MalformedURLException e) { + throw new HarnessException(String.format("Appium connection to ANDROID device is invalid: %s", cs), e); + } catch (WebDriverException e) { + if (e.getCause() instanceof ConnectException) { + throw new HarnessException(String.format("Cannot connect to Appium on %s. Is your Appium Desktop running?", cs), e); + } else { + throw new HarnessException("Android driver didn't start, please check the connect to server", e); + } + } + }); + } + + @Override + public void captureVideo(String videoFileName) { + if (!checkVideoRecord()) { + return; + } + String videoPath = store.getConfig("appium.video.path", "target/videos"); + File file = Paths.get(videoPath, videoFileName).toFile(); + try { + FileUtils.writeByteArrayToFile(file, Base64.getDecoder().decode(driver.stopRecordingScreen())); + } catch (IOException e) { + throw new IllegalStateException("Unable to write " + videoFileName + " to " + videoPath, e); + } + } + + @Override + public void resetApp() { + driver.resetApp(); + driver.activateApp(bundleId); + } + + @Override + public void close() { + driver.quit(); + } + + public void hideAndroidKeyboard() { + driver.hideKeyboard(); + } + + private AndroidDriver startRecording(AndroidDriver driver) { + if (checkVideoRecord()) { + driver.startRecordingScreen(); + } + return driver; + } + + private String getUiAutomator() { + boolean uiAutomator = Boolean.parseBoolean(store.getConfig("appium.android.uiAutomator", "false")); + return uiAutomator ? AutomationName.ANDROID_UIAUTOMATOR2 : null; + } + + public void pressAndroidKeys(AndroidKey... keys) { + Arrays.stream(keys) + .forEach(key -> getDriver().pressKey(new KeyEvent(key))); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/ios/HideIosKeyboardButton.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/ios/HideIosKeyboardButton.java new file mode 100644 index 0000000..8ab6da0 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/ios/HideIosKeyboardButton.java @@ -0,0 +1,19 @@ +package cz.moneta.test.harness.connectors.mobile.ios; + +public enum HideIosKeyboardButton { + DONE("Done"), + GO("Go"), + ENTER("Enter"), + RETURN("Return"), + NONE(""); + + private final String value; + + HideIosKeyboardButton(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/ios/IosConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/ios/IosConnector.java new file mode 100644 index 0000000..0e0a380 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/mobile/ios/IosConnector.java @@ -0,0 +1,134 @@ +package cz.moneta.test.harness.connectors.mobile.ios; + +import cz.moneta.test.harness.connectors.mobile.AppiumMobileConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import io.appium.java_client.ios.IOSDriver; +import io.appium.java_client.remote.AutomationName; +import io.appium.java_client.remote.IOSMobileCapabilityType; +import org.apache.commons.io.FileUtils; +import org.openqa.selenium.*; +import org.openqa.selenium.remote.DesiredCapabilities; + +import java.io.File; +import java.io.IOException; +import java.net.ConnectException; +import java.net.MalformedURLException; +import java.net.URL; +import java.nio.file.Paths; +import java.util.Base64; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Stream; + +public class IosConnector extends AppiumMobileConnector { + private IOSDriver iosDriver; + + public IosConnector(Function defaultLookup, StoreAccessor store, String host, String deviceName, String udid, String bundleId, String appBinaryPath) { + super(defaultLookup, store, host, appBinaryPath); + this.udid = udid; + this.bundleId = bundleId; + this.deviceName = deviceName; + this.iosDriver = initDriver(); + } + + @Override + protected IOSDriver getDriver() { + return iosDriver; + } + + private IOSDriver initDriver() { + return startDriver() + .map(this::startRecording) + .flatMap(d -> Stream.>>of( + () -> launchExistingApp(d)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst()) + .orElseThrow(() -> new HarnessException("App was not started")); + } + + private Optional startDriver() { + return Optional.ofNullable(host) + .map(cs -> { + DesiredCapabilities capabilities = new DesiredCapabilities(); + setDesiredCapabilities(Platform.IOS, deviceName, udid, AutomationName.IOS_XCUI_TEST, capabilities); + mobileLanguage(capabilities, "en_US", "cs_CZ"); + capabilities.setCapability(IOSMobileCapabilityType.BUNDLE_ID, this.bundleId); + try { + return new IOSDriver(new URL(cs), capabilities); + } catch (MalformedURLException e) { + throw new HarnessException(String.format("Appium connection to IOS device is invalid: %s", cs), e); + } catch (WebDriverException e) { + if (e.getCause() instanceof ConnectException) { + throw new HarnessException(String.format("Cannot connect to Appium on %s. Is your Appium Desktop running?", cs), e); + } else { + throw new HarnessException("Ios driver didn't start, please check the connect to server", e); + } + } + }); + } + + @Override + public void captureVideo(String videoFileName) { + if (!checkVideoRecord()) { + return; + } + String videoPath = store.getConfig("appium.video.path", "target/videos"); + File file = Paths.get(videoPath, videoFileName).toFile(); + try { + FileUtils.writeByteArrayToFile(file, Base64.getDecoder().decode(iosDriver.stopRecordingScreen())); + } catch (IOException e) { + throw new IllegalStateException("Unable to write " + videoFileName + " to " + videoPath, e); + } + } + + private IOSDriver startRecording(IOSDriver driver) { + if (checkVideoRecord()) { + driver.startRecordingScreen(); + } + return driver; + } + + @Override + public void resetApp() { + iosDriver.removeApp(bundleId); + iosDriver.installApp(appBinaryPath); + iosDriver.activateApp(bundleId); + } + + @Override + public void close() { + iosDriver.closeApp(); + } + + public void hideIosKeyboard(HideIosKeyboardButton hideIosKeyboardButton) { + click(hideIosKeyboardButton.getValue(), MobileLookup.ID); + } + + public void executeScrollScript(String name, String direction) { + Map args = new HashMap<>(); + args.put("direction", direction); + args.put("name", name); + Optional.of(getDriver()) + .filter(JavascriptExecutor.class::isInstance) + .map(JavascriptExecutor.class::cast) + .ifPresent(script -> { + try { + script.executeScript("mobile: scroll", args); + } catch (NoSuchElementException e) { + throw new HarnessException("Element " + name + " is not present"); + } + }); + } + + //TODO add in the future + public void pressIosKeys() { + + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/BaseRestConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/BaseRestConnector.java new file mode 100644 index 0000000..0762a8b --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/BaseRestConnector.java @@ -0,0 +1,62 @@ +package cz.moneta.test.harness.connectors.rest; + +import cz.moneta.test.harness.connectors.Connector; +import org.apache.logging.log4j.jul.LogManager; +import org.glassfish.jersey.SslConfigurator; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.client.HttpUrlConnectorProvider; +import org.glassfish.jersey.jackson.JacksonFeature; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider; +import org.glassfish.jersey.logging.LoggingFeature; +import org.glassfish.jersey.media.multipart.MultiPartFeature; + +import jakarta.ws.rs.client.Client; +import jakarta.ws.rs.client.ClientBuilder; +import java.io.IOException; +import java.io.InputStream; +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.cert.CertificateException; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; + +import static cz.moneta.test.harness.constants.HarnessConfigConstants.DEFAULT_REST_READ_TIMEOUT; + +public abstract class BaseRestConnector implements Connector { + + protected Client createHttpClient(String loggerName) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException { + return createHttpClient(loggerName, DEFAULT_REST_READ_TIMEOUT); + } + + protected Client createHttpClient(String loggerName, long readTimeout) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException { + KeyStore trustedStore = KeyStore.getInstance(KeyStore.getDefaultType()); + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + + trustedStore.load(getInputStream("keystores/mb_root"), "changeit".toCharArray()); + keyStore.load(getInputStream("keystores/api_gw_client.p12"), "changeit".toCharArray()); + + ClientConfig config = new ClientConfig() + .register(JacksonFeature.class) + .register(JacksonJsonProvider.class) + .register(MultiPartFeature.class) + .register(new LoggingFeature(LogManager.getLogManager().getLogger(loggerName), + Level.FINE, LoggingFeature.Verbosity.PAYLOAD_ANY, 1024 * 1024)) + .property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true); // TODO: test it, this line may affect all REST calls + + return ClientBuilder.newBuilder() + .withConfig(config) + .connectTimeout(10, TimeUnit.SECONDS) + .readTimeout(readTimeout, TimeUnit.SECONDS) + .sslContext(SslConfigurator.newInstance() + .trustStore(trustedStore) + .keyStore(keyStore) + .keyStorePassword("changeit".toCharArray()) + .createSSLContext()) + .build(); + } + + public InputStream getInputStream(String name) { + return this.getClass().getClassLoader().getResourceAsStream(name); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/ExtendedRestConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/ExtendedRestConnector.java new file mode 100644 index 0000000..b2219fe --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/ExtendedRestConnector.java @@ -0,0 +1,38 @@ +package cz.moneta.test.harness.connectors.rest; + +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.InternalServerErrorException; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.Response; +import java.util.Map; + +/** + * Rest connector returning extendable object. Now the response contains body and response headers. + */ +public class ExtendedRestConnector extends SimpleRestConnector implements RestConnector { + + public ExtendedRestConnector(String endpointUrl, String loggerName) { + super(endpointUrl, loggerName); + } + + public ExtendedRestConnector(String endpointUrl, String loggerName, long readTimeout) { + super(endpointUrl, loggerName, readTimeout); + } + + @Override + public Pair> postExtended(String path, Entity request, + Class responseType, + Map headers) { + try { + Response response = doPost(path, request, headers); + + return Pair.of(response.getStatus(), new ExtendedRestResponse<>(response.readEntity(responseType), + response.getHeaders())); + } catch (InternalServerErrorException serverError) { + return throwWithResponseText(serverError); + } + } +} + + diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/ExtendedRestResponse.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/ExtendedRestResponse.java new file mode 100644 index 0000000..e070718 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/ExtendedRestResponse.java @@ -0,0 +1,25 @@ +package cz.moneta.test.harness.connectors.rest; + +import jakarta.ws.rs.core.MultivaluedMap; + +/** + * Extendable response object from {@link ExtendedRestConnector}. + */ +public class ExtendedRestResponse { + + private T responseBody; + private MultivaluedMap responseHeaders; + + public ExtendedRestResponse(T responseBody, MultivaluedMap responseHeaders) { + this.responseBody = responseBody; + this.responseHeaders = responseHeaders; + } + + public T getResponseBody() { + return responseBody; + } + + public MultivaluedMap getResponseHeaders() { + return responseHeaders; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/RemoteRestCallRequest.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/RemoteRestCallRequest.java new file mode 100644 index 0000000..4748a9a --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/RemoteRestCallRequest.java @@ -0,0 +1,40 @@ +package cz.moneta.test.harness.connectors.rest; + +import java.util.Map; + +public class RemoteRestCallRequest { + private String path; + private Object request; + private Map getProperties; + private Map headers; + + public RemoteRestCallRequest() {} + + public RemoteRestCallRequest(String path, Map getProperties, Map headers) { + this.path = path; + this.getProperties = getProperties; + this.headers = headers; + } + + public RemoteRestCallRequest(String path, Object request, Map headers) { + this.path = path; + this.request = request; + this.headers = headers; + } + + public String getPath() { + return path; + } + + public Object getRequest() { + return request; + } + + public Map getGetProperties() { + return getProperties; + } + + public Map getHeaders() { + return headers; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/ResponseHandler.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/ResponseHandler.java new file mode 100644 index 0000000..8690897 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/ResponseHandler.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.connectors.rest; + +/** + * Response handler which enables response verification and post-processing + * + * @param original request invocation (i.e. the request call) + * @param the original response against which the handling is performed + * @see cz.moneta.test.harness.connectors.wso2.TokenRenewalResponseHandler + */ +public interface ResponseHandler { + RESP handle(I invocation, RESP response); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/RestConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/RestConnector.java new file mode 100644 index 0000000..9b7b289 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/RestConnector.java @@ -0,0 +1,40 @@ +package cz.moneta.test.harness.connectors.rest; + +import cz.moneta.test.harness.performance.PerformanceAware; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.client.Invocation; +import jakarta.ws.rs.core.GenericType; +import jakarta.ws.rs.core.Response; +import java.lang.reflect.Method; +import java.util.Map; +import java.util.function.Function; + +public interface RestConnector extends PerformanceAware { + Pair get(String path, Map properties, GenericType responseType, Map headers); + + Pair post(String path, Entity request, GenericType responseType, Map headers); + + Pair delete(String path, Map properties, GenericType responseType, Map headers); + + Pair patch(String path, Entity request, GenericType repsonseType, Map headers); + + RestConnector registerResponseHandler( + ResponseHandler>, Response> responseHandler); + + /** + * Return response body with response headers. + */ + default Pair> postExtended( + String path, Entity request, + Class responseType, Map headers) { + throw new IllegalStateException("Not implemented"); + } + + @Override + default String getPerformanceReportKey(Object proxy, Method method, Object[] args) { + return (String) args[0]; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/SimpleRestConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/SimpleRestConnector.java new file mode 100644 index 0000000..494b150 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/rest/SimpleRestConnector.java @@ -0,0 +1,155 @@ +package cz.moneta.test.harness.connectors.rest; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.InternalServerErrorException; +import jakarta.ws.rs.ProcessingException; +import jakarta.ws.rs.client.Client; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.client.Invocation; +import jakarta.ws.rs.client.WebTarget; +import jakarta.ws.rs.core.CacheControl; +import jakarta.ws.rs.core.GenericType; +import jakarta.ws.rs.core.Response; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +import static cz.moneta.test.harness.constants.HarnessConfigConstants.DEFAULT_REST_READ_TIMEOUT; +import static cz.moneta.test.harness.support.rest.RestUtils.toMultiMap; + +public class SimpleRestConnector extends BaseRestConnector implements RestConnector { + + protected WebTarget target; + protected List>, Response>> responseHandlers = new ArrayList<>(); + + public SimpleRestConnector(String endpointUrl, String loggerName) { + this(endpointUrl, loggerName, DEFAULT_REST_READ_TIMEOUT); + } + + public SimpleRestConnector(String endpointUrl, String loggerName, long readTimeout) { + try { + Client client = createHttpClient(loggerName, readTimeout); + target = client.target(endpointUrl); + } catch (Exception e) { + throw new RuntimeException("REST connector is not configured properly", e); + } + } + + @Override + public Pair get(String path, Map properties, GenericType responseType, Map headers) { + try { + Invocation.Builder invocation = properties.entrySet().stream() + .reduce(target, (t, e) -> t.queryParam(e.getKey(), e.getValue()), (t1, t2) -> t1) + .path(path) + .request() + .headers(toMultiMap(headers)) + .cacheControl(CacheControl.valueOf("no-cache")); + + Response response = responseHandlers.stream() + .reduce( + invocation.get(), + (resp, h) -> h.handle(Pair.of(invocation, Invocation.Builder::get), resp), + (h1, h2) -> h1); + + return Pair.of(response.getStatus(), response.readEntity(responseType)); + } catch (InternalServerErrorException serverError) { + return throwWithResponseText(serverError); + } catch (ProcessingException e) { + throw new RuntimeException("Error during HTTP connection " + e.getMessage(), e); + } + } + + @Override + public Pair post(String path, Entity request, GenericType responseType, Map headers) { + try { + Response response = doPost(path, request, headers); + + return Pair.of(response.getStatus(), response.readEntity(responseType)); + } catch (InternalServerErrorException serverError) { + return throwWithResponseText(serverError); + } catch (ProcessingException e) { + throw new RuntimeException("Error during HTTP connection " + e.getMessage(), e); + } + } + + protected Response doPost(String path, Entity request, Map headers) { + Invocation.Builder invocation = target.path(path) + .request() + .headers(toMultiMap(headers)) + .cacheControl(CacheControl.valueOf("no-cache")); + + return responseHandlers.stream() + .reduce( + invocation.post(request), + (resp, h) -> h.handle(Pair.of(invocation, i -> i.post(request)), resp), + (h1, h2) -> h1); + } + + @Override + public Pair delete(String path, Map properties, GenericType responseType, Map headers) { + try { + Invocation.Builder invocation = properties.entrySet().stream() + .reduce(target, (t, e) -> t.queryParam(e.getKey(), e.getValue()), (t1, t2) -> t1) + .path(path) + .request() + .headers(toMultiMap(headers)) + .cacheControl(CacheControl.valueOf("no-cache")); + + Response response = responseHandlers.stream() + .reduce( + invocation.delete(), + (resp, h) -> h.handle(Pair.of(invocation, Invocation.Builder::delete), resp), + (h1, h2) -> h1); + + return Pair.of(response.getStatus(), response.readEntity(responseType)); + } catch (InternalServerErrorException serverError) { + return throwWithResponseText(serverError); + } catch (ProcessingException e) { + throw new RuntimeException("Error during HTTP connection " + e.getMessage(), e); + } + } + + @Override + public Pair patch(String path, Entity request, GenericType responseType, Map headers) { + try { + Invocation.Builder invocation = target.path(path) + .request() + .headers(toMultiMap(headers)) + .cacheControl(CacheControl.valueOf("no-cache")); + + Response response = responseHandlers.stream() + .reduce( + invocation.method("PATCH", request), + (resp, h) -> h.handle(Pair.of(invocation, i -> i.method("PATCH", request)), resp), + (h1, h2) -> h1); + + return Pair.of(response.getStatus(), response.readEntity(responseType)); + } catch (InternalServerErrorException serverError) { + return throwWithResponseText(serverError); + } catch (ProcessingException e) { + throw new RuntimeException("Error during HTTP connection " + e.getMessage(), e); + } + } + + @Override + public RestConnector registerResponseHandler(ResponseHandler>, Response> responseHandler) { + responseHandlers.add(responseHandler); + return this; + } + + protected T throwWithResponseText(InternalServerErrorException serverError) { + String response = "N/A"; + try { + response = IOUtils.toString((InputStream) serverError.getResponse().getEntity(), Charset.defaultCharset()); + } catch (IOException ignore) { + } + throw new AssertionError(String.format("Request failed. HTTP status: %d, response: %s", serverError.getResponse().getStatus(), response)); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Alerts.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Alerts.java new file mode 100644 index 0000000..3e3c9cc --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Alerts.java @@ -0,0 +1,66 @@ +package cz.moneta.test.harness.connectors.web; + +import org.openqa.selenium.Alert; +import org.openqa.selenium.TimeoutException; +import org.openqa.selenium.support.ui.FluentWait; + +import java.time.Duration; +import java.util.function.Consumer; + +import static org.openqa.selenium.support.ui.ExpectedConditions.alertIsPresent; +import static org.openqa.selenium.support.ui.ExpectedConditions.not; + +public class Alerts { + + private final SeleniumWebConnector connector; + + public Alerts(SeleniumWebConnector connector) { + this.connector = connector; + } + + public void dismissAlert(int timeout) { + handleAlert(timeout, Alert::dismiss); + } + + public void acceptAlert(int timeout) { + handleAlert(timeout, Alert::accept); + } + + public boolean isAlertPresent(int timeout) { + try { + waitForAlert(timeout); + return true; + } catch (TimeoutException e) { + return false; + } + } + + private void handleAlert(int timeout, Consumer action) { + waitForAlert(timeout); + action.accept(connector.getDriver() + .switchTo() + .alert()); + + new FluentWait<>(connector.getDriver()) + .withTimeout(Duration.ofSeconds(timeout)) + .pollingEvery(Duration.ofMillis(300)) + .withMessage("Alert is still present after " + timeout + " seconds timeout.") + .until(driver -> not(alertIsPresent())).apply(connector.getDriver()); + } + + public String getAlertText(int timeout) { + waitForAlert(timeout); + return connector.getDriver() + .switchTo() + .alert() + .getText(); + } + + private void waitForAlert(int timeout) { + new FluentWait<>(connector.getDriver()) + .withTimeout(Duration.ofSeconds(timeout)) + .pollingEvery(Duration.ofMillis(300)) + .withMessage("Alert is not present after " + timeout + " seconds timeout.") + .until(driver -> alertIsPresent().apply(connector.getDriver())); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Clicks.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Clicks.java new file mode 100644 index 0000000..31fda58 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Clicks.java @@ -0,0 +1,67 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.support.web.Clickable; +import cz.moneta.test.harness.support.web.Lookup; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import java.time.Duration; +import java.util.Optional; + +public class Clicks { + + private final SeleniumWebConnector connector; + private static final int CLICKABLE_TIMEOUT = 5; + + private final static String DOUBLE_CLICK_JS = "var evt = document.createEvent('MouseEvents');" + + "evt.initMouseEvent('dblclick',true, true, window, 10, 0, 0, 0, 0, false, false, false, false, 0,null);" + + "arguments[0].dispatchEvent(evt);"; + + private final static String JS_CLICK_SCRIPT = "console.debug('jsClick start'); " + + "setTimeout(function(elem){ elem.click();}, 0, arguments[0]); " + + "console.debug('jsClick end');"; + + public Clicks(SeleniumWebConnector connector) { + this.connector = connector; + } + + public void click(Clickable clickable, Lookup lookup) { + WebElement element = connector.waits().waitForLazyElement(clickable.getPath(), lookup); + isClickable(element).click(); + } + + protected WebElement isClickable(WebElement webElement) { + WebDriverWait wait = new WebDriverWait(connector.getDriver(), Duration.ofSeconds(CLICKABLE_TIMEOUT)); + return wait.until(ExpectedConditions.elementToBeClickable(webElement)); + } + + protected WebElement isClickable(Clickable clickable, Lookup lookup) { + WebDriverWait wait = new WebDriverWait(connector.getDriver(), Duration.ofSeconds(CLICKABLE_TIMEOUT)); + return wait.until(ExpectedConditions.elementToBeClickable(connector.resolveLookup(lookup).apply(clickable.getPath()))); + } + + public void doubleClick(Clickable clickable, Lookup lookup) { + Actions actions = new Actions(connector.getDriver()); + WebElement element = connector.waits().waitForLazyElement(clickable.getPath(), lookup); + actions.doubleClick(element); + } + + public void jsDoubleClick(Clickable clickable, Lookup lookup) { + Optional.of(connector.getDriver()) + .filter(JavascriptExecutor.class::isInstance) + .map(JavascriptExecutor.class::cast) + .ifPresent(e -> e.executeScript(DOUBLE_CLICK_JS, + connector.waits().waitForLazyElement(clickable.getPath(), lookup))); + } + + public void jsClick(Clickable clickable, Lookup lookup) { + Optional.of(connector.getDriver()) + .filter(JavascriptExecutor.class::isInstance) + .map(JavascriptExecutor.class::cast) + .ifPresent(e -> e.executeScript(JS_CLICK_SCRIPT, + connector.waits().waitForLazyElement(clickable.getPath(), lookup))); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Cookies.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Cookies.java new file mode 100644 index 0000000..6a50942 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Cookies.java @@ -0,0 +1,30 @@ +package cz.moneta.test.harness.connectors.web; + +import org.openqa.selenium.Cookie; + +import java.util.Date; +import java.util.Optional; + +public class Cookies { + + private final SeleniumWebConnector connector; + + public Cookies(SeleniumWebConnector connector) { + this.connector = connector; + } + + public String getCookie(String name) { + return Optional.ofNullable(connector.getDriver().manage().getCookieNamed(name)) + .map(Cookie::getValue) + .orElse(null); + } + + public void addCookie(String name, String value, String domain, String path, Date expiry, boolean isSecure, boolean isHttpOnly) { + Cookie cookie = new Cookie(name, value, domain, path, expiry, isSecure, isHttpOnly); + connector.getDriver().manage().addCookie(cookie); + } + + public void addCookie(Cookie cookie) { + connector.getDriver().manage().addCookie(cookie); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/DriverUtils.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/DriverUtils.java new file mode 100644 index 0000000..2cb4f01 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/DriverUtils.java @@ -0,0 +1,255 @@ +package cz.moneta.test.harness.connectors.web; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.exception.HarnessConfigurationException; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.selenium.ClasspathFileDetector; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.openqa.selenium.*; +import org.openqa.selenium.logging.*; +import org.openqa.selenium.manager.SeleniumManager; +import org.openqa.selenium.remote.RemoteWebDriver; + +import java.io.File; +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static cz.moneta.test.harness.constants.HarnessConfigConstants.SELENIUM_DOWNLOAD_DIRECTORY; + +public class DriverUtils { + + protected static final Set LOG_TYPES = Stream.of(LogType.BROWSER, LogType.CLIENT, LogType.DRIVER, + LogType.PERFORMANCE, LogType.PROFILER, LogType.SERVER).collect(Collectors.toSet()); + private static final Logger logger = LogManager.getLogger(DriverUtils.class); + private final SeleniumWebConnector connector; + + public DriverUtils(SeleniumWebConnector connector) { + this.connector = connector; + } + + public String takeSnapshot(String snapshotFileName) { + String snapshotsPath = connector.getStore().getConfig("selenium.snapshots.path", "target/screenshots"); + File file = Paths.get(snapshotsPath, snapshotFileName).toFile(); + try { + FileUtils.writeByteArrayToFile(file, ((TakesScreenshot) connector.getDriver()).getScreenshotAs(OutputType.BYTES)); + } catch (IOException e) { + throw new IllegalStateException("Unable to write snapshot " + snapshotFileName + " to " + snapshotsPath, e); + } catch (WebDriverException e2) { // An unexpected error swallows why the test failed + logger.error("Error during getting snapshot: " + e2.getMessage()); + e2.printStackTrace(); + } + return file.getAbsolutePath(); + } + + public String captureLog(String logFileName, String logType) { + String path = connector.getStore().getConfig("selenium.logs.path", "target/logs"); + Logs logs = connector.getDriver() + .manage() + .logs(); + + LogEntries logEntriesForType = null; + try { + logEntriesForType = logs.get(logType); + } catch (Exception wde) { + logger.warn(() -> "We were not able to get log entries for log type: " + logType); + } + if (logEntriesForType != null) { + List logEntries = logEntriesForType.getAll(); + try { + File file = Paths.get(path, logFileName, ".log").toFile(); + FileUtils.writeLines(file, logEntries); + return file.getAbsolutePath(); + } catch (IOException e) { + throw new IllegalStateException("Unable to write log " + logFileName + " to " + path, e); + } + } + return null; + } + + public void captureDom(String domFileName) { + String path = connector.getStore().getConfig("selenium.dom.path", "target/dom"); + File file = Paths.get(path, domFileName).toFile(); + try { + FileUtils.write(file, connector.getDriver().getPageSource()); + } catch (IOException e) { + throw new IllegalStateException("Unable to write " + domFileName + " to " + path, e); + } catch (WebDriverException e2) { // An unexpected error swallows why the test failed + logger.error("Error during getting DOM: " + e2.getMessage()); + e2.printStackTrace(); + } + } + + /** + * Add platform/browser/driver independent capabilities. + * + * @return DesiredCapabilities with default capabilities added + */ + protected void addDefaultDesiredCapabilities(MutableCapabilities capabilities) { + LoggingPreferences logs = new LoggingPreferences(); + LOG_TYPES.forEach(lt -> logs.enable(lt, Level.ALL)); + //capabilities.setCapability(CapabilityType.LOGGING_PREFS, logs); // TODO: vyřešit + + java.util.logging.Logger.getLogger(RemoteWebDriver.class.getName()).setLevel(Level.INFO); + java.util.logging.Logger.getLogger(SeleniumManager.class.getName()).setLevel(Level.INFO); + } + + /** + * Allows to configure additional capabilities. + * + * @param capabilities collection of capabilities to be added to + * @param key key to use for capabilities lookup in configuration + */ + protected void addAdditionalDesiredCapabilities(MutableCapabilities capabilities, String key) { + String additionalCapabilities = connector.getStore().getConfig(key); + if (additionalCapabilities != null) { + Arrays.stream(additionalCapabilities.split(",")).forEach( + (item) -> { + String[] keyValue = item.split("="); + String value = keyValue[1]; + if (!keyValue[0].equals("applicationName")) { + if ("true".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value)) { + capabilities.setCapability(keyValue[0], Boolean.parseBoolean(value)); + } else { + capabilities.setCapability(keyValue[0], value); + } + } + } + ); + } + } + + WebDriver initializeRemoteWebDriver(String hubUrl) { + try { + // TODO: timeout připojení k browseru + // HttpClient.Factory factory = HttpClient.Factory.createDefault(); + // HttpClient.Builder builder = factory.builder() + // .connectionTimeout(Duration.ofSeconds(10)); + + // HttpClient.Factory clientFactory = new HttpClient.Factory() { + // @Override + // public HttpClient.Builder builder() { + // return new HttpClient.Builder() { + // @Override + // public HttpClient createClient(URL url) { + // return builder.createClient(url); + // } + // }; + // } + + // @Override + // public void cleanupIdleClients() { + // factory.cleanupIdleClients(); + // } + // }; + + // HttpCommandExecutor executor = new HttpCommandExecutor(new HashMap<>(), new URL(hubUrl), clientFactory); + // RemoteWebDriver remoteWebDriver = new RemoteWebDriver(executor, connector.getDesiredRemoteCapabilities()); + + RemoteWebDriver remoteWebDriver = new RemoteWebDriver(new URL(hubUrl), connector.getDesiredRemoteCapabilities()); + + remoteWebDriver.setFileDetector(new ClasspathFileDetector()); + String sessionId = remoteWebDriver.getSessionId().toString(); + logger.info(() -> String.format("New Selenium web driver session %s started at node %s", sessionId, getNodeUrl(hubUrl, sessionId))); + return remoteWebDriver; + } catch (Exception e) { + logger.error(() -> "Failed to initialize remote web driver with url " + hubUrl, e); + return null; + } + } + + private String getNodeUrl(String hubUrl, String sessionId) { + HttpURLConnection gridApiConnection = null; + try { + URL url = new URL(hubUrl); + URL gridGraphQLUrl = new URL(String.format("http://%s:%d/graphql", url.getHost(), url.getPort())); + Map headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + Pair response = new SimpleRestConnector(gridGraphQLUrl.toString(), "SeleniumGraphQL") + .post("", + Entity.json("{\"query\":\"{ session (id: \\\"" + sessionId + "\\\") { uri, nodeUri } } \"}"), + new GenericType<>(String.class), + headers); + JsonObject gridResponse = JsonParser.parseString(response.getRight().toString()).getAsJsonObject(); + String nodeUrlString = gridResponse.getAsJsonObject("data").getAsJsonObject("session").get("uri").getAsString(); + URL nodeUrl = new URL(nodeUrlString); + this.connector.setNodeHost(nodeUrl.getHost()); + return nodeUrlString; + } catch (Exception e) { + throw new HarnessException(String.format("Failed to get node info for session %s", sessionId), e); + } finally { + if (gridApiConnection != null) { + try { + gridApiConnection.disconnect(); + } catch (Exception e) { + throw new HarnessException("Could not close connection to grid API.", e); + } + } + } + } + + public boolean checkIfFileExists(String directory, String filename, int waitInSeconds, boolean deleteFile, boolean useDirectoryListMethod) { + boolean fileExists = false; + // If no directory set as input parameter then get it from config file or System properties. + if (directory == null) { + directory = Stream.of(Optional.ofNullable(System.getProperty(SELENIUM_DOWNLOAD_DIRECTORY)), + Optional.ofNullable(connector.getStore().getConfig(SELENIUM_DOWNLOAD_DIRECTORY))) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElseThrow(() -> new HarnessConfigurationException(("You need to set download directory or configure " + SELENIUM_DOWNLOAD_DIRECTORY + " parameter!"))); + } + + // File which we try to find + File fileToCheck = FileUtils.getFile(directory, filename); + File folderToCheck = new File(directory); + + try { + // Checking if file is downloaded. Try it every second to "waitInSeconds" limit. + for (int i = 0; i <= waitInSeconds; i++) { + // Simulating wait for file download. + Thread.sleep(TimeUnit.SECONDS.toMillis(1)); + + if (useDirectoryListMethod) { + logger.debug("Checking if file: {} present in directory list: {}.", filename, directory); + fileExists = Arrays.stream(folderToCheck.list()).anyMatch(filename::equals); + } else { + logger.debug("Checking if file: {} exists in directory: {}.", filename, directory); + fileExists = (fileToCheck.exists() || fileToCheck.isFile()); + } + + if (fileExists) break; + } + + // When file exists - log it and delete file + if (fileExists) { + logger.debug("Found file: {}.", fileToCheck.getAbsolutePath()); + logger.info("Found expected file: {} in directory {}.", filename, directory); + // For cleaning purposes. (Does not delete all files, ex. in case of wrong filename the downloaded file will remain in directory.) + if (deleteFile) { + logger.debug("Deleting file: {}.", fileToCheck.getAbsolutePath()); + Files.delete(fileToCheck.toPath()); + } + } else { + throw new HarnessException(String.format("Could not find expected file: %s in directory %s withing the specified timeout", filename, directory)); + } + } catch (Exception e) { + throw new HarnessException(String.format("Something went wrong: Could not find expected file: %s in directory %s.", filename, directory), e); + } + return fileExists; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/ElementsActions.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/ElementsActions.java new file mode 100644 index 0000000..139d46f --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/ElementsActions.java @@ -0,0 +1,99 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.TimeoutException; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; + +import java.util.List; +import java.util.Optional; + +public class ElementsActions { + + private static final int DEFAULT_TIMEOUT_FOR_WAIT = 30; + private static final Logger logger = LogManager.getLogger(ElementsActions.class); + + private final SeleniumWebConnector connector; + private final String JS = "var evObj = document.createEvent('MouseEvents');" + + "evObj.initMouseEvent(\"mouseover\",true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);" + + "arguments[0].dispatchEvent(evObj);"; + + public ElementsActions(SeleniumWebConnector connector) { + this.connector = connector; + } + + public void moveToElement(String path, Lookup lookup) { + Actions actions = new Actions(connector.getDriver()); + actions.moveToElement(waitForLazyElement(path, lookup)) + .build() + .perform(); + } + + public void moveToElementAndClick(String hoverElementPath, String clickElementPath, Lookup lookup) { + Optional.of(connector.getDriver()) + .filter(JavascriptExecutor.class::isInstance) + .map(JavascriptExecutor.class::cast) + .ifPresent(e -> { + e.executeScript(JS, waitForLazyElement(hoverElementPath, lookup)); + connector.clicks().click(() -> clickElementPath, lookup); + }); + } + + public String getText(String path, Lookup lookup) { + return waitForLazyElement(path, lookup).getText(); + } + + public boolean isElementVisible(String path, Lookup lookup) { + return isElementVisible(DEFAULT_TIMEOUT_FOR_WAIT, path, lookup); + } + + public boolean isElementVisible(int timeout, String path, Lookup lookup) { + try { + waitForElement(timeout, path, lookup, Until.VISIBLE); + return true; + } catch (TimeoutException e) { + logger.warn("Element {} is not visible after {}s.", () -> path, () -> timeout); + return false; + } + } + + public void dragAndDropElement(String source, String target, Lookup lookup) { + Actions actions = new Actions(connector.getDriver()); + actions.dragAndDrop(waitForLazyElement(source, lookup), findElement(target, lookup)) + .build() + .perform(); + } + + public void dragAndDropBy(String source, int xOffset, int yOffset, Lookup lookup) { + Actions actions = new Actions(connector.getDriver()); + actions.dragAndDropBy(waitForLazyElement(source, lookup), xOffset, yOffset) + .build() + .perform(); + } + + private WebElement waitForLazyElement(String path, Lookup lookup) { + return connector.waits().waitForLazyElement(path, lookup); + } + + private WebElement findElement(String path, Lookup lookup) { + return connector.getDriver() + .findElement(connector.resolveLookup(lookup).apply(path)); + } + + private void waitForElement(int timeout, String path, Lookup lookup, Until until) { + connector.waits().waitForElements(timeout, lookup, until, path); + } + + public void scrollIntoView(String path, Lookup lookup) { + WebElement element = connector.getDriver().findElement(connector.resolveLookup(lookup).apply(path)); + connector.scrolling().scrollIntoView(element); + } + + public List findElements(String path, Lookup lookup) { + return connector.getDriver().findElements(connector.resolveLookup(lookup).apply(path)); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/ElementsChecks.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/ElementsChecks.java new file mode 100644 index 0000000..4f57bc8 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/ElementsChecks.java @@ -0,0 +1,37 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.support.web.Lookup; +import org.openqa.selenium.WebElement; + +import java.util.List; + +public class ElementsChecks { + + private final SeleniumWebConnector connector; + + public ElementsChecks(SeleniumWebConnector connector) { + this.connector = connector; + } + + public boolean isElementPresent(String path, Lookup lookup) { + return !connector.getDriver().findElements(connector.resolveLookup(lookup).apply(path)).isEmpty(); + } + + public boolean isElementEnabled(String path, Lookup lookup) { + return connector.waits().waitForLazyElement(path, lookup).isEnabled(); + } + + public void isAtLeastOneElementPresent(String xpath, Lookup lookup) { + connector.waits() + .waitForLazyElement(xpath, lookup); + } + + public void checkElementContent(String path, String content, Lookup lookup) { + List elements = connector.waits().waitForLazyElements(path, lookup); + elements.stream() + .map(WebElement::getText) + .filter(text -> text.contains(content)) + .findFirst() + .orElseThrow(() -> new AssertionError(String.format("Cannot find element that contains text %s", content))); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Frames.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Frames.java new file mode 100644 index 0000000..5398ccc --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Frames.java @@ -0,0 +1,19 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.support.web.Lookup; + +public class Frames { + + private final SeleniumWebConnector connector; + + public Frames(SeleniumWebConnector connector) { + this.connector = connector; + } + + public void switchToFrame(String frame, Lookup lookup) { + connector + .getDriver() + .switchTo().frame(connector.waits().waitForLazyElement(frame, lookup)); + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Navigations.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Navigations.java new file mode 100644 index 0000000..6d037c6 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Navigations.java @@ -0,0 +1,40 @@ +package cz.moneta.test.harness.connectors.web; + +public class Navigations { + + private final SeleniumWebConnector connector; + + public Navigations(SeleniumWebConnector connector) { + this.connector = connector; + } + + public void switchToDefaultContent() { + connector.getDriver() + .switchTo() + .defaultContent(); + } + + public void navigateTo(String url) { + connector.getDriver() + .navigate() + .to(url); + } + + public void navigateRefresh() { + connector.getDriver() + .navigate() + .refresh(); + } + + public void navigateBack() { + connector.getDriver() + .navigate() + .back(); + } + + public void navigateForward() { + connector.getDriver() + .navigate() + .forward(); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Scripts.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Scripts.java new file mode 100644 index 0000000..3c4b7a9 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Scripts.java @@ -0,0 +1,24 @@ +package cz.moneta.test.harness.connectors.web; + +import org.openqa.selenium.JavascriptExecutor; + +import java.util.Optional; + +public class Scripts { + + private final SeleniumWebConnector connector; + + public Scripts(SeleniumWebConnector connector) { + this.connector = connector; + } + + public Object executeScript(String script, Object[] args) { + JavascriptExecutor executor = Optional.of(connector.getDriver()) + .filter(JavascriptExecutor.class::isInstance) + .map(JavascriptExecutor.class::cast) + .orElseThrow(() -> new IllegalStateException("This driver does not support JavaScript!")); + return args == null + ? executor.executeScript(script) + : executor.executeScript(script, args); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Scrolling.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Scrolling.java new file mode 100644 index 0000000..298eaac --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Scrolling.java @@ -0,0 +1,16 @@ +package cz.moneta.test.harness.connectors.web; + +import org.openqa.selenium.WebElement; + +public class Scrolling { + + private final SeleniumWebConnector connector; + + public Scrolling(SeleniumWebConnector connector) { + this.connector = connector; + } + public void scrollIntoView(WebElement element) { + connector.scripts().executeScript("arguments[0].scrollIntoView(true);", new Object[]{element}); + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Selects.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Selects.java new file mode 100644 index 0000000..6a18365 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Selects.java @@ -0,0 +1,80 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.support.web.Lookup; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.Select; + +import java.util.List; +import java.util.stream.Collectors; + +public class Selects { + + private final SeleniumWebConnector connector; + + public Selects(SeleniumWebConnector connector) { + this.connector = connector; + } + + public void selectByVisibleText(String path, String text, Lookup lookup) { + WebElement element = connector.waits() + .waitForLazyElement(path, lookup); + connector.scrolling().scrollIntoView(element); + new Select(element).selectByVisibleText(text); + } + + public void selectByValue(String path, String value, Lookup lookup) { + WebElement element = connector.waits() + .waitForLazyElement(path, lookup); + connector.scrolling().scrollIntoView(element); + connector.elementsActions().moveToElement(path, lookup); + new Select(element).selectByValue(value); + } + + public void selectByOptionOrder(String path, int optionOrder, Lookup lookup) { + WebElement element = connector.waits() + .waitForLazyElement(path, lookup); + connector.scrolling().scrollIntoView(element); + new Select(element).selectByIndex(--optionOrder); + } + + /** + * Select option by text part of option value + *

+ * In some cases is necessary to select option only by part of value in option. This method accepts path to element + * lookup strategy value and list of text parts of options. + *

+ *

+ * In this method is created in xpath for select one value. Used strategy: create xpath with contains separated by + * OR. + *

+ *

+ * Example: + *

+     *         From ["ValueA", "ValueB"] will create xpath:
+     *         "//option[contains(text(),'ValueA') or contains(text(),'ValueB')]"
+     *     
+ *

+ * + * @param path - path to select element + * @param lookup - lookup strategy for select element + * @param textOptionsParts - list of option text parts to look for + */ + public void selectByContainingTexts(String path, Lookup lookup, List textOptionsParts) { + List optionXpaths = textOptionsParts.stream() + .map(text -> String.format("contains(text(),'%s')", text)) + .collect(Collectors.toList()); + String joinedContains = String.join(" or ", optionXpaths); + String optionXpath = String.format("//option[%s]", joinedContains); + + Waits waits = connector.waits(); + waits.waitForLazyElement(path, lookup) + .findElements(waits.byLocator(Lookup.XPATH, optionXpath)) + .get(0) + .click(); + } + + public String getFirstSelectedOptionText(String path, Lookup lookup) { + Select select = new Select(connector.waits().waitForLazyElement(path, lookup)); + return select.getFirstSelectedOption().getText(); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SeleniumChromeConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SeleniumChromeConnector.java new file mode 100644 index 0000000..d55e706 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SeleniumChromeConnector.java @@ -0,0 +1,92 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.exception.HarnessException; +import org.apache.commons.lang3.tuple.Pair; +import org.openqa.selenium.By; +import org.openqa.selenium.Capabilities; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.remote.DesiredCapabilities; + +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; + +import static cz.moneta.test.harness.constants.HarnessConfigConstants.SELENIUM_DOWNLOAD_DIRECTORY; +import static cz.moneta.test.harness.constants.HarnessConfigConstants.SELENIUM_GRID_PLATFORM; + +public class SeleniumChromeConnector extends SeleniumWebConnector { + + public SeleniumChromeConnector(Function defaultLookup, StoreAccessor store, String... extraOptions) { + super(defaultLookup, store, extraOptions); + } + + @Override + protected Pair getLocalWebDriver() { + setupDriver(); + + return Optional.ofNullable(store.getConfig("selenium.chromebinary.path")) + .map(bin -> { + ChromeOptions chromeOptions = getChromeOptions(); + chromeOptions.setBinary(bin); + return chromeOptions; + }) + .map(o -> Pair.of(new ChromeDriver(o), false)) + .orElse(null); + } + + private void setupDriver() { + Optional.ofNullable(store.getConfig("selenium.chrome.webdriver.path")) + .map(path -> { + System.setProperty("webdriver.chrome.driver", path); + return path; + }) + .orElseThrow(() -> new AssertionError("Please provide path to the Chrome driver using selenium.chrome.webdriver.path configuration key or use a selenium grid")); + } + + private ChromeOptions getChromeOptions() { + ChromeOptions chromeOptions = new ChromeOptions(); + + Optional.ofNullable(store.getConfig("selenium.webdriver.chrome.options")) + .map(o -> o.split("\\s+")) + .ifPresent(chromeOptions::addArguments); + + chromeOptions.addArguments(extraOptions); + + this.driverUtils().addDefaultDesiredCapabilities(chromeOptions); + + this.driverUtils().addAdditionalDesiredCapabilities(chromeOptions, "selenium.chrome.capabilities"); + + // Set up Selenium Grid session name + chromeOptions.setCapability("se:name", store.get(HarnessConfigConstants.TEST_UNIQUE_ID).toString()); + + // Choose which Selenium Grid node will be used + Optional.ofNullable(store.getConfig(SELENIUM_GRID_PLATFORM)) + .ifPresent(platform -> chromeOptions.setPlatformName(platform)); + + // Overrides default download directory in Chrome profile preferences, http://chromedriver.chromium.org/capabilities + // By default headless mode does not download any files unless download directory is set. + Optional.ofNullable(store.getConfig(SELENIUM_DOWNLOAD_DIRECTORY)) + .ifPresent(experimentalOptions -> { + Map prefs = new HashMap(); + prefs.put("download.default_directory", store.getConfig(SELENIUM_DOWNLOAD_DIRECTORY)); + chromeOptions.setExperimentalOption("prefs", prefs); + }); + + return chromeOptions; + } + + @Override + protected Capabilities getDesiredRemoteCapabilities() { + return new DesiredCapabilities(getChromeOptions()); + } + + @Override + public void downloadFileViaIePrompt(int waitInSeconds) { + throw new HarnessException("This method is not implemented on Chrome. Use capabilities settings instead."); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SeleniumEdgeConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SeleniumEdgeConnector.java new file mode 100644 index 0000000..5b530a5 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SeleniumEdgeConnector.java @@ -0,0 +1,91 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.exception.HarnessException; +import org.apache.commons.lang3.tuple.Pair; +import org.openqa.selenium.By; +import org.openqa.selenium.Capabilities; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.edge.EdgeDriver; +import org.openqa.selenium.edge.EdgeOptions; +import org.openqa.selenium.remote.DesiredCapabilities; + +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; + +import static cz.moneta.test.harness.constants.HarnessConfigConstants.SELENIUM_DOWNLOAD_DIRECTORY; +import static cz.moneta.test.harness.constants.HarnessConfigConstants.SELENIUM_GRID_PLATFORM; + +public class SeleniumEdgeConnector extends SeleniumWebConnector { + + public SeleniumEdgeConnector(Function defaultLookup, StoreAccessor store) { + super(defaultLookup, store); + } + + @Override + protected Pair getLocalWebDriver() { + setupDriver(); + + EdgeDriver driver = new EdgeDriver(getEdgeOptions()); + driver.manage() + .window() + .maximize(); + return Pair.of(driver, false); + } + + private void setupDriver() { + Optional.ofNullable(store.getConfig("selenium.edge.webdriver.path")) + .map(path -> { + System.setProperty("webdriver.edge.driver", path); + return path; + }) + .orElseThrow(() -> new AssertionError("Please provide path to the Edge driver using selenium.edge.webdriver.path configuration key or use a selenium grid")); + } + + private EdgeOptions getEdgeOptions() { + EdgeOptions edgeOptions = new EdgeOptions(); + + this.driverUtils().addDefaultDesiredCapabilities(edgeOptions); + + Optional.ofNullable(store.getConfig("selenium.webdriver.edge.options")) + .map(o -> o.split("\\s+")) + .ifPresent(edgeOptions::addArguments); + edgeOptions.addArguments(extraOptions); + + this.driverUtils().addAdditionalDesiredCapabilities(edgeOptions, "selenium.edge.capabilities"); + + // Set up Selenium Grid session name + edgeOptions.setCapability("se:name", store.get(HarnessConfigConstants.TEST_UNIQUE_ID).toString()); + + // Choose which Selenium Grid node will be used + Optional.ofNullable(store.getConfig(SELENIUM_GRID_PLATFORM)) + .ifPresent(platform -> edgeOptions.setPlatformName(platform)); + + + Map prefs = new HashMap(); + // Allow clipboard usage + prefs.put("profile.default_content_setting_values.clipboard", 1); + + // Overrides default download directory in Edge profile preferences + Optional.ofNullable(store.getConfig(SELENIUM_DOWNLOAD_DIRECTORY)) + .ifPresent(experimentalOptions -> { + prefs.put("download.default_directory", store.getConfig(SELENIUM_DOWNLOAD_DIRECTORY)); + }); + edgeOptions.setExperimentalOption("prefs", prefs); + + return edgeOptions; + } + + @Override + protected Capabilities getDesiredRemoteCapabilities() { + return new DesiredCapabilities(getEdgeOptions()); + } + + @Override + public void downloadFileViaIePrompt(int waitInSeconds) { + throw new HarnessException("This method is not implemented on Chrome. Use capabilities settings instead."); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SeleniumWebConnector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SeleniumWebConnector.java new file mode 100644 index 0000000..0226505 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SeleniumWebConnector.java @@ -0,0 +1,185 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.connectors.Connector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.web.Lookup; +import org.apache.commons.lang3.tuple.Pair; +import org.openqa.selenium.By; +import org.openqa.selenium.Capabilities; +import org.openqa.selenium.WebDriver; + +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.TimeUnit; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Stream; + +public abstract class SeleniumWebConnector implements Connector { + + private final WebDriver webDriver; + private final boolean isRemoteDriver; + protected final Function defaultLookup; + protected final StoreAccessor store; + protected final String[] extraOptions; + + private String nodeHost; + + public SeleniumWebConnector(Function defaultLookup, StoreAccessor store, String[] extraOptions) { + this.extraOptions = extraOptions; + this.store = store; + this.defaultLookup = defaultLookup; + Pair driverInfo = getPreferredWebDriver(); + isRemoteDriver = driverInfo.getRight(); + WebDriver driver = driverInfo.getLeft(); + if (driver == null) { + throw new HarnessException("We were not able to initialize webDriver. Please check your configs, logs and talk to your admin"); + } + + //TODO fix this - it slows down test execution but some tests are build with this implicit wait + driver.manage().timeouts().implicitlyWait(2L, TimeUnit.SECONDS); + driver.manage().timeouts().pageLoadTimeout(90L, TimeUnit.SECONDS); + this.webDriver = driver; + } + + public SeleniumWebConnector(Function defaultLookup, StoreAccessor store) { + this(defaultLookup, store, new String[]{}); + } + + public Clicks clicks() { + return new Clicks(this); + } + + public Waits waits() { + return new Waits(this); + } + + public Alerts alerts() { + return new Alerts(this); + } + + public Types types() { + return new Types(this); + } + + public Selects selects() { + return new Selects(this); + } + + public SendKeys sendKeys() { + return new SendKeys(this); + } + + public Frames frames() { + return new Frames(this); + } + + public Windows windows() { + return new Windows(this); + } + + public Navigations navigations() { + return new Navigations(this); + } + + public ElementsChecks elementsChecks() { + return new ElementsChecks(this); + } + + public Cookies cookies() { + return new Cookies(this); + } + + public Scripts scripts() { + return new Scripts(this); + } + + public ElementsActions elementsActions() { + return new ElementsActions(this); + } + + public Scrolling scrolling() {return new Scrolling(this); } + + public DriverUtils driverUtils() { + return new DriverUtils(this); + } + + public StoreAccessor getStore() { + return store; + } + + public boolean isRemoteDriver() { + return isRemoteDriver; + } + + public abstract void downloadFileViaIePrompt(int waitInSeconds); + + /** + * returns a pair of web driver and whether it is a remote instance (true = remote, false = local driver) + */ + private Pair getPreferredWebDriver() { + return Stream.>>of(this::getDedicatedWebDriver, this::getSharedWebDriver, this::getLocalWebDriver) + .map(Supplier::get) + .filter(Objects::nonNull) + .findFirst() + .orElseThrow(() -> new IllegalStateException("No suitable web driver could be initialized.")); + } + + private Pair getDedicatedWebDriver() { + return Optional.ofNullable(store.getConfig("selenium.grid.dedicated.url")) + .map(url -> Pair.of(driverUtils().initializeRemoteWebDriver(url), true)) + .orElse(null); + } + + private Pair getSharedWebDriver() { + return Optional.ofNullable(store.getConfig("selenium.grid.shared.url")) + .map(url -> Pair.of(driverUtils().initializeRemoteWebDriver(url), true)) + .orElse(null); + } + + public String getAttribute(String path, Lookup lookup, String attributeName) { + return waits().waitForLazyElement(path, lookup) + .getAttribute(attributeName ); + } + + protected abstract Pair getLocalWebDriver(); + + protected abstract Capabilities getDesiredRemoteCapabilities(); + + public WebDriver getDriver() { + return webDriver; + } + + @Override + public void close() { + webDriver.quit(); + } + + public String getCurrentUrl() { + return webDriver.getCurrentUrl(); + } + + protected Function resolveLookup(Lookup lookup) { + switch (lookup) { + case XPATH: + return By::xpath; + case ID: + return By::id; + case CLASSNAME: + return By::className; + case NAME: + return By::name; + default: + return defaultLookup; + } + } + + public String getNodeHost() { + return nodeHost; + } + + public void setNodeHost(String nodeHost) { + this.nodeHost = nodeHost; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SendKeys.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SendKeys.java new file mode 100644 index 0000000..3c42c7d --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/SendKeys.java @@ -0,0 +1,35 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.support.web.Key; +import org.openqa.selenium.Keys; +import org.openqa.selenium.interactions.Actions; + +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +public class SendKeys { + + private final SeleniumWebConnector connector; + + public SendKeys(SeleniumWebConnector connector) { + this.connector = connector; + } + + public void sendKeysOneAtATime(Key[] keys) { + Actions actions = new Actions(connector.getDriver()); + Arrays.stream(keys) + .forEach(k -> { + actions.sendKeys(k).build().perform(); + try { + TimeUnit.MILLISECONDS.sleep(100); + } catch (InterruptedException e) { + // + } + }); + } + + public void sendKeysAsChord(Key[] keys) { + Actions actions = new Actions(connector.getDriver()); + actions.sendKeys(Keys.chord(keys)).build().perform(); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Types.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Types.java new file mode 100644 index 0000000..1d55257 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Types.java @@ -0,0 +1,61 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.TextContainer; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.Keys; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; + +import java.util.Optional; + +public class Types { + + private final SeleniumWebConnector connector; + + public Types(SeleniumWebConnector connector) { + this.connector = connector; + } + + public void type(TextContainer input, String text, boolean clear, Lookup lookup) { + if (clear) { + clearInput(input, lookup); + } + connector.waits() + .waitForLazyElement(input.getPath(), lookup) + .sendKeys(text); + } + + public void jsType(TextContainer input, String text, boolean clear, Lookup lookup) { + if (clear) { + clearInput(input, lookup); + } + Optional.of(connector.getDriver()) + .filter(JavascriptExecutor.class::isInstance) + .map(JavascriptExecutor.class::cast) + .ifPresent(e -> { + WebElement element = connector.waits().waitForLazyElement(input.getPath(), lookup); + if ("textarea".equals(element.getTagName())) { + e.executeScript("arguments[0].value=arguments[1];", element, text); + } else { + e.executeScript("arguments[0].setAttribute('value', arguments[1]);", element, text); + } + }); + } + + private void clearInput(TextContainer input, Lookup lookup) { + connector.waits() + .waitForLazyElement(input.getPath(), lookup) + .sendKeys(Keys.chord(Keys.CONTROL, "a"), Keys.BACK_SPACE); + } + + public void typeWithControlDown(String input, String keys, Lookup lookup) { + new Actions(connector.getDriver()) + .click(connector.waits().waitForLazyElement(input, lookup)) + .keyDown(Keys.CONTROL) + .sendKeys(keys) + .keyUp(Keys.CONTROL) + .perform(); + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Waits.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Waits.java new file mode 100644 index 0000000..0e8be48 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Waits.java @@ -0,0 +1,184 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.utils.expectedconditions.BooleanExpectedConditions; +import org.apache.commons.lang3.ArrayUtils; +import org.openqa.selenium.*; +import org.openqa.selenium.support.ui.ExpectedCondition; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.FluentWait; +import org.openqa.selenium.support.ui.WebDriverWait; + +import java.time.Duration; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.function.Function; + +public class Waits { + + private final SeleniumWebConnector connector; + private static final int LAZY_ELEMENT_RENDER_TIMEOUT = 5; + + public Waits(SeleniumWebConnector connector) { + this.connector = connector; + } + + public void waitForElements(int timeoutSeconds, Lookup lookup, Until until, String... elementsToCheck) { + WebDriverWait wait = new WebDriverWait(connector.getDriver(), Duration.ofSeconds(timeoutSeconds)); + wait.ignoring(WebDriverException.class); + + Arrays.stream(elementsToCheck) + .forEach(path -> wait.until(resolveUntil(until).apply(byLocator(lookup, path)))); + } + + public void waitForAtLeastOneElement(int timeoutSeconds, Lookup lookup, String... elementsToCheck) { + WebDriverWait wait = new WebDriverWait(connector.getDriver(), Duration.ofSeconds(timeoutSeconds)); + + ExpectedCondition[] expectedConditions = Arrays.stream(elementsToCheck) + .map(path -> + ExpectedConditions.visibilityOfElementLocated(byLocator(lookup, path))) + .toArray(ExpectedCondition[]::new); + wait.until(ExpectedConditions.or(expectedConditions)); + } + + WebElement waitForLazyElement(String path, Lookup lookup) { + doWaitForLazyElement(path, lookup); + return connector.getDriver() + .findElement(byLocator(lookup, path)); + } + + List waitForLazyElements(String path, Lookup lookup) { + doWaitForLazyElement(path, lookup); + return connector.getDriver() + .findElements(byLocator(lookup, path)); + } + + private void doWaitForLazyElement(String path, Lookup lookup) { + new FluentWait<>(connector.getDriver()) + .withTimeout(Duration.ofSeconds(LAZY_ELEMENT_RENDER_TIMEOUT)) + .pollingEvery(Duration.ofMillis(500)) + .ignoring(NoSuchElementException.class) + .ignoring(StaleElementReferenceException.class) + .withMessage("Element/s not found within " + LAZY_ELEMENT_RENDER_TIMEOUT + + " seconds timeout. If this error occurs, you might want to consider using explicit @Wait annotation. " + path) + .until(driver -> !driver.findElements(byLocator(lookup, path)).isEmpty()); + } + + public void waitForElementAndRefresh(String waitElementPath, String refreshElementPath, Lookup waitElementLookup, + Lookup refreshElementLookup, int timeoutSeconds, int pollingEverySeconds) { + Runnable refreshFunction = () -> connector.clicks().click(() -> refreshElementPath, refreshElementLookup); + waitForElementAndRefresh(waitElementPath, waitElementLookup, refreshFunction, timeoutSeconds, + pollingEverySeconds, true); +// waitForLazyElement(refreshElementPath, refreshElementLookup).click(); + } + + public void waitForElementAndRefresh(String waitElementPath, Lookup waitElementLookup, Runnable refreshFunction, + int timeoutSeconds, int pollingEverySeconds, boolean shouldBeWaitElementVisible) { + new FluentWait<>(connector.getDriver()) + .withTimeout(Duration.ofSeconds(timeoutSeconds)) + .pollingEvery(Duration.ofSeconds(pollingEverySeconds)) + .ignoring(NoSuchElementException.class) + .ignoring(StaleElementReferenceException.class) + .ignoring(TimeoutException.class) + .withMessage("Element/s not present within " + timeoutSeconds + " seconds timeout. Wait and refreshed " + + "every: " + pollingEverySeconds + " seconds.\n For element: " + waitElementPath) + .until(driver -> { + if (shouldBeWaitElementVisible == true) { + return checkIfElementPresentAndRefresh(waitElementPath, waitElementLookup, refreshFunction, driver); + } else { + return checkIfElementDisappearAndRefresh(waitElementPath, waitElementLookup, refreshFunction, driver); + } + }); + } + + private WebElement checkIfElementPresentAndRefresh(String waitElementPath, Lookup waitElementLookup, Runnable refreshFunction, WebDriver driver) { + Optional.of(driver.findElements(byLocator(waitElementLookup, waitElementPath))) + .filter(Collection::isEmpty) + .ifPresent(col -> refreshFunction.run()); + return driver.findElement(byLocator(waitElementLookup, waitElementPath)); + } + + private boolean checkIfElementDisappearAndRefresh(String waitElementPath, Lookup waitElementLookup, Runnable refreshFunction, WebDriver driver) { + Optional.of(driver.findElements(byLocator(waitElementLookup, waitElementPath))) + .ifPresent(col -> refreshFunction.run()); + return driver.findElements(byLocator(waitElementLookup, waitElementPath)).size() == 0; + } + + public void waitOrFailOnErrorElement(int timeoutSeconds, String pathForWaiting, String pathToFail, Lookup lookup) { + WebDriverWait wait = new WebDriverWait(connector.getDriver(), Duration.ofSeconds(timeoutSeconds)); + wait.withTimeout(Duration.ofSeconds(timeoutSeconds)) + .pollingEvery(Duration.ofSeconds(3)) + .withMessage("Element " + pathForWaiting + " or " + pathToFail + " isn't present after " + timeoutSeconds + " seconds") + .until(ExpectedConditions.or( + visibilityOfElementLocated(lookup, pathForWaiting), + visibilityOfElementLocated(lookup, pathToFail))); + if (connector.elementsChecks().isElementPresent(pathToFail, lookup)) { + throw new HarnessException(pathToFail + " is present instead of " + pathForWaiting); + } + } + + /** + * Method for wait if all elements passed as parameter in defined state (Visible, Gone, Present in DOM) and there is not + * visible fail element. Fail element is for example error screen. + *

+ * Wait is implemented as fluent wait with 500ms polling and all parameters are transformed into expected conditions. + * These conditions are used in fluent wait. + *

+ *

+ * In case of fail element visible is thrown FailElementDisplayedException. + *

+ * + * @param timeoutSeconds - wait timeout + * @param lookup - define locator strategy + * @param until - state to check - Visible, Gone, Present in DOM + * @param xpathToFail - xpath for fail element/error screen + * @param elementsToCheck - elements to be wait for + */ + public void waitOrFailOnErrorXpath(int timeoutSeconds, Lookup lookup, Until until, String xpathToFail, String... elementsToCheck) { + ExpectedCondition[] conditionsToCheck = Arrays.stream(elementsToCheck) + .map(elementToCheck -> resolveUntil(until).apply(byLocator(lookup, elementToCheck))) + .toArray(ExpectedCondition[]::new); + + ExpectedCondition[] failElementNotDisplayed = new ExpectedCondition[]{BooleanExpectedConditions.failElementNotDisplayed(byLocator(Lookup.XPATH, xpathToFail))}; + + ExpectedCondition[] conditionsToEvaluate = ArrayUtils.addAll(failElementNotDisplayed, conditionsToCheck); + + WebDriverWait wait = new WebDriverWait(connector.getDriver(), Duration.ofSeconds(timeoutSeconds)); + wait.withTimeout(Duration.ofSeconds(timeoutSeconds)) + .pollingEvery(Duration.ofMillis(500L)) + .withMessage(getErrorElementsMessage(timeoutSeconds, elementsToCheck)) + .until(ExpectedConditions.and(conditionsToEvaluate)); + } + + private String getErrorElementsMessage(int timeoutSeconds, String... elements) { + String elementsInString = String.join(",", elements); + return "Some of listed elements isn't present after " + timeoutSeconds + " seconds. Elements: " + elementsInString; + } + + public By byLocator(Lookup lookup, String path) { + return connector.resolveLookup(lookup).apply(path); + } + + private ExpectedCondition visibilityOfElementLocated(Lookup lookup, String path) { + return ExpectedConditions.visibilityOfElementLocated(byLocator(lookup, path)); + } + + private Function> resolveUntil(Until until) { + switch (until) { + case VISIBLE: + return ExpectedConditions::visibilityOfElementLocated; + case PRESENT_IN_DOM: + return ExpectedConditions::presenceOfElementLocated; + case GONE: + return ExpectedConditions::invisibilityOfElementLocated; + case CLICKABLE: + return ExpectedConditions::elementToBeClickable; + default: + return ExpectedConditions::presenceOfElementLocated; + } + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Windows.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Windows.java new file mode 100644 index 0000000..7b317fd --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/web/Windows.java @@ -0,0 +1,65 @@ +package cz.moneta.test.harness.connectors.web; + +import cz.moneta.test.harness.exception.HarnessException; +import org.openqa.selenium.Dimension; +import org.openqa.selenium.NoSuchWindowException; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import java.time.Duration; +import java.util.Optional; + +public class Windows { + + private final SeleniumWebConnector connector; + + public Windows(SeleniumWebConnector connector) { + this.connector = connector; + } + + public void switchToOtherWindow(int timeout, int expectedNumberOfWindows) { + WebDriverWait wait = new WebDriverWait(connector.getDriver(), Duration.ofSeconds(timeout)); + wait.until(ExpectedConditions.numberOfWindowsToBe(expectedNumberOfWindows)); + connector.getDriver() + .getWindowHandles() + .stream() + .filter(w -> getCurrentWindow().map(cw -> !cw.equals(w)).orElse(true)) + .findFirst() + .map(otherWindow -> connector.getDriver().switchTo().window(otherWindow)) + .orElseThrow(() -> new HarnessException( + "Not possible to switch to other window. Only current window is present.")); + } + + public void switchToWindowByTitle(String title) { + for (String winHandle : connector.getDriver().getWindowHandles()) { + if (connector.getDriver().switchTo().window(winHandle).getTitle().equals(title)) { + return; + } + } + throw new HarnessException("A browser window named \"" + title + "\" was not found"); + } + + public void switchWindowResolution(int width, int height) { + WebDriver.Window window = connector.getDriver().manage().window(); + Dimension targetSize = new Dimension(width, height); + window.setSize(targetSize); + if (!targetSize.equals(window.getSize())) { + throw new IllegalStateException(String.format("Failed to switch window size to %d %d", width, height)); + } + } + + private Optional getCurrentWindow() { + try { + return Optional.of(connector + .getDriver() + .getWindowHandle()); + } catch (NoSuchWindowException e) { + return Optional.empty(); + } + } + + public void closeCurrentWindow() { + connector.getDriver().close(); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/wso2/RemoteWso2Connector.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/wso2/RemoteWso2Connector.java new file mode 100644 index 0000000..35615fd --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/wso2/RemoteWso2Connector.java @@ -0,0 +1,78 @@ +package cz.moneta.test.harness.connectors.wso2; + +import cz.moneta.test.harness.connectors.rest.BaseRestConnector; +import cz.moneta.test.harness.connectors.rest.RemoteRestCallRequest; +import cz.moneta.test.harness.connectors.rest.ResponseHandler; +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.context.ConfigAccessor; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Client; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.client.Invocation; +import jakarta.ws.rs.client.WebTarget; +import jakarta.ws.rs.core.GenericType; +import jakarta.ws.rs.core.Response; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; + +@Deprecated +public class RemoteWso2Connector extends BaseRestConnector implements RestConnector { + + private final WebTarget target; + + public RemoteWso2Connector(ConfigAccessor store) { + try { + Client client = createHttpClient("RemoteWso2Connector"); + this.target = Optional.ofNullable(store.getConfig("selenium.grid.shared.url")) + .map(client::target) + .map(t -> t.path("grid/admin")) + .map(t -> t.path(Wso2ConnectorServlet.class.getSimpleName())) + .orElseThrow(() -> new IllegalStateException("Failed to initialize remote Wso2 connector.")); + } catch (Exception e) { + throw new IllegalStateException("Failed to initialize remote Wso2 connector.", e); + } + } + + @Override + public Pair get(String path, Map properties, GenericType responseType, + Map headers) { + RemoteRestCallRequest get = new RemoteRestCallRequest(path, properties, headers); + return sendAndReceive("call-get", get, responseType); + } + + @Override + public Pair post(String path, Entity request, GenericType responseType, Map headers) { + RemoteRestCallRequest post = new RemoteRestCallRequest(path, request, headers); + return sendAndReceive("call-post", post, responseType); + } + + @Override + public Pair delete(String path, Map properties, GenericType responseType, + Map headers) { + RemoteRestCallRequest delete = new RemoteRestCallRequest(path, properties, headers); + return sendAndReceive("call-delete", delete, responseType); + } + + @Override + public Pair patch(String path, Entity request, GenericType responseType, Map headers) { + RemoteRestCallRequest patch = new RemoteRestCallRequest(path, request, headers); + return sendAndReceive("call-patch", patch, responseType); + } + + @Override + public RestConnector registerResponseHandler( + ResponseHandler>, Response> responseHandler) { + throw new UnsupportedOperationException("RemoteWso2Connector#registerResponseHandler not implemented"); + } + + @SuppressWarnings("unchecked") + private Pair sendAndReceive(String method, RemoteRestCallRequest request, GenericType responseType) { + Response response = target.path(method) + .request() + .post(Entity.json(request)); + return Pair.of(response.getStatus(), response.readEntity(responseType)); + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/wso2/TokenRenewalResponseHandler.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/wso2/TokenRenewalResponseHandler.java new file mode 100644 index 0000000..75aa26b --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/wso2/TokenRenewalResponseHandler.java @@ -0,0 +1,33 @@ +package cz.moneta.test.harness.connectors.wso2; + +import cz.moneta.test.harness.connectors.rest.ResponseHandler; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.http.HttpStatus; + +import jakarta.ws.rs.client.Invocation; +import jakarta.ws.rs.core.Response; +import java.util.function.Function; +import java.util.function.Supplier; + +public class TokenRenewalResponseHandler implements ResponseHandler>, Response> { + + private final Supplier tokenSupplier; + + public TokenRenewalResponseHandler(Supplier tokenSupplier) { + this.tokenSupplier = tokenSupplier; + } + + /** + * Checks whether the HTTP response status is 401 UNAUTHORIZED in which case it resends the original request with + * a renewed Authorization Bearer token + */ + @Override + public Response handle(Pair> invocation, Response response) { + if (response.getStatus() == HttpStatus.SC_UNAUTHORIZED) { + Invocation.Builder builder = invocation.getLeft().header("Authorization", "Bearer " + tokenSupplier.get()); + return invocation.getRight().apply(builder); + } else { + return response; + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/connectors/wso2/Wso2ConnectorServlet.java b/test-harness/src/main/java/cz/moneta/test/harness/connectors/wso2/Wso2ConnectorServlet.java new file mode 100644 index 0000000..cf56a10 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/connectors/wso2/Wso2ConnectorServlet.java @@ -0,0 +1,95 @@ +package cz.moneta.test.harness.connectors.wso2; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; +import cz.moneta.test.harness.connectors.common.ServletConfigAccessor; +import cz.moneta.test.harness.connectors.rest.RemoteRestCallRequest; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.ConfigAccessor; +import org.apache.commons.lang3.tuple.Pair; + +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import java.io.IOException; +import java.util.Optional; +import java.util.function.Supplier; +import java.util.stream.Stream; + +public class Wso2ConnectorServlet extends HttpServlet { + + private static final ObjectMapper JACKSON = new ObjectMapper() + .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false) + .registerModules(new ParameterNamesModule(), new Jdk8Module(), new JavaTimeModule()); + + private final ConfigAccessor store; + private final SimpleRestConnector connector; + + public Wso2ConnectorServlet() { + this.store = new ServletConfigAccessor(); + this.connector = new SimpleRestConnector( + store.getConfig("endpoints.wso2.url"), "Wso2ConnectorServlet"); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) { + Optional.ofNullable(req.getPathInfo()) + .flatMap(pi -> Stream.>>>>of( + () -> Optional.of(pi).filter(i -> i.contains("/call-get")).map(i -> () -> callGet(req)), + () -> Optional.of(pi).filter(i -> i.contains("/call-post")).map(i -> () -> callPost(req))) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst()) + .map(Supplier::get) + .ifPresent(r -> mapOntoResponse(r, resp)); + } + + private void mapOntoResponse(Pair result, HttpServletResponse resp) { + try { + resp.setContentType("application/json"); + resp.setStatus(result.getLeft()); + resp.getWriter().write(result.getRight()); + } catch (IOException e) { + e.printStackTrace(); //TODO logging + } + } + + private Pair callGet(HttpServletRequest req) { + try { + RemoteRestCallRequest request = JACKSON.readValue(req.getInputStream(), RemoteRestCallRequest.class); + return connector.get( + request.getPath(), + request.getGetProperties(), + new GenericType<>(String.class), + request.getHeaders()); + } catch (Exception e) { + e.printStackTrace(); //TODO logging + return null; + } + } + + private Pair callPost(HttpServletRequest req) { + try { + RemoteRestCallRequest request = JACKSON.readValue(req.getInputStream(), RemoteRestCallRequest.class); + return connector.post( + request.getPath(), + Entity.json(request.getRequest()), + new GenericType<>(String.class), + request.getHeaders()); + } catch (Exception e) { + e.printStackTrace(); //TODO logging + return null; + } + } + + @Override + public void destroy() { + connector.close(); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/constants/HarnessConfigConstants.java b/test-harness/src/main/java/cz/moneta/test/harness/constants/HarnessConfigConstants.java new file mode 100644 index 0000000..5ebf940 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/constants/HarnessConfigConstants.java @@ -0,0 +1,21 @@ +package cz.moneta.test.harness.constants; + +public final class HarnessConfigConstants { + + public static final String TEST_UNIQUE_ID = "TEST_UNIQUE_ID"; + public static final String TEST_SHORT_ID = "TEST_SHORT_ID"; + public static final String VAULT_USERNAME_CONFIG = "vault.username"; + public static final String VAULT_PASSWORD_CONFIG = "vault.password"; + public static final String VAULT_URL_CONFIG = "vault.url"; + public static final String VAULT_WSO2_KEYS_PATH = "vault.client.secrets.path"; + public static final String VAULT_CAGW_KEYS_PATH = "vault.cagw.client.secrets.path"; + public static final String ENVIRONMENT_TYPE = "environment.type"; + public static final String JENKINS_BUILD_URL = "jenkins.build.url"; + public static final String SELENIUM_DOWNLOAD_DIRECTORY = "selenium.download.directory"; + public static final String SELENIUM_GRID_PLATFORM = "selenium.grid.platform"; + + public static final long DEFAULT_REST_READ_TIMEOUT = 10L; + + private HarnessConfigConstants() { + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/context/BaseStoreAccessor.java b/test-harness/src/main/java/cz/moneta/test/harness/context/BaseStoreAccessor.java new file mode 100644 index 0000000..589d83f --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/context/BaseStoreAccessor.java @@ -0,0 +1,204 @@ +package cz.moneta.test.harness.context; + +import cz.moneta.test.harness.annotations.TestContext; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.exception.HarnessConfigurationException; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.data.Generator; +import cz.moneta.test.harness.support.data.GeneratorType; +import cz.moneta.test.harness.support.util.Level; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.junit.jupiter.api.extension.ExtensionContext.Store; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static cz.moneta.test.harness.HarnessJunit5Extension.ACTIVE_ENDPOINTS; + +@SuppressWarnings("unchecked") +@TestContext +public abstract class BaseStoreAccessor implements StoreAccessor { + + private static final Logger LOG = LogManager.getLogger("Harness"); + + private final Store rootStore; + private final Store globalStore; + private final Store endpointStore; + private final Store configStore; + private final Store generatorsStore; + + public BaseStoreAccessor(Store rootStore, Store globalStore, Store endpointStore, Store configStore, Store generatorsStore) { + this.rootStore = rootStore; + this.globalStore = globalStore; + this.endpointStore = endpointStore; + this.configStore = configStore; + this.generatorsStore = generatorsStore; + } + + @Override + public E getEndpoint(Class endpointClass, Object... args) { + Set, List>> activeEndpoints = endpointStore.get(ACTIVE_ENDPOINTS, Set.class); + return endpointStore.getOrComputeIfAbsent( + Pair.of(endpointClass, Arrays.asList(args)), + c -> { + try { + Class[] paramTypes = Stream.concat( + Stream.of(StoreAccessor.class), + Arrays.stream(args).map(Object::getClass)).toArray(Class[]::new); + Constructor constructor = endpointClass.getConstructor(paramTypes); + return constructor.newInstance(ArrayUtils.insert(0, args, this)); + } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { + throw Stream.of(Optional.ofNullable(e.getCause()), Optional.of(e)) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .map(t -> new IllegalStateException("Endpoint " + endpointClass.getSimpleName() + + " could not be instantiated: " + t.getMessage(), e) + ) + .get(); + } finally { + activeEndpoints.add(c); + } + }, + endpointClass); + } + + @Override + public void closeEndpoint(Endpoint activeEndpoint) { + Set, List>> activeEndpoints = endpointStore.get(ACTIVE_ENDPOINTS, Set.class); + Pair, List> pair = activeEndpoints.stream() + .filter(p -> endpointStore.get(p, Endpoint.class) == activeEndpoint) + .findFirst() + .orElseThrow(() -> new IllegalArgumentException("Cannot find active endpoint to close")); + + Endpoint endpoint = endpointStore.get(pair, Endpoint.class); + endpoint.close(); + activeEndpoints.remove(pair); + endpointStore.remove(pair, Endpoint.class); + } + + @Override + public Set getActiveEndpoints() { + Set, List>> activeEndpoints = endpointStore.get(ACTIVE_ENDPOINTS, Set.class); + return activeEndpoints.stream() + .map(pair -> (E) endpointStore.get(pair, Endpoint.class)) + .collect(Collectors.toSet()); + } + + @Override + public String getConfig(String key) { + return configStore.get(key, String.class); + } + + @Override + public String getConfig(String key, String defaultValue) { + return Optional.ofNullable(configStore.get(key, String.class)).orElse(defaultValue); + } + + @Override + public void putConfig(String key, String value) { + log(Level.INFO, "Value: " + value + " is stored with key: " + key); + configStore.put(key, value); + } + + @Override + public T get(String key) { + return get(key, false); + } + + @Override + public T get(String key, boolean nullEnabled) { + if (nullEnabled) { + return (T) globalStore.get(key); + } else { + return (T) Optional.ofNullable(globalStore.get(key)) + .orElseThrow(() -> new HarnessException("Error getting value from store, key: " + key + " is null\nCheck if value in this key is correctly set")); + } + } + + @Override + public void store(String key, Object value) { + log(Level.INFO, "Value: " + value + " is stored with key: " + key); + globalStore.put(key, value); + } + + @Override + public void storeGlobal(String key, Object value) { + log(Level.INFO, "Value: " + value + " is stored with key: " + key); + rootStore.put(key, value); + } + + @Override + public void storeGlobal(String key, Supplier orCreate) { + log(Level.INFO, "Value: " + orCreate.get().toString() + " is stored with key: " + key); + rootStore.getOrComputeIfAbsent(key, k -> orCreate.get()); + } + + @Override + public T getGlobal(String key, Supplier orCreate) { + return (T) rootStore.getOrComputeIfAbsent(key, k -> orCreate.get()); + } + + @Override + public T getGlobal(String key) { + return (T) rootStore.get(key); + } + + @Override + public void log(String template, Object... args) { + LOG.info(template, args); + } + + @Override + public void log(Level level, String template, Object... args) { + LOG.log(org.apache.logging.log4j.Level.getLevel(level.name()), template, args); + } + + protected void addGenerator(GeneratorType type, Generator generator) { + generatorsStore.put(type, generator); + } + + @Override + public T generate(GeneratorType type, Object... params) { + return (T) generatorsStore.get(type, Generator.class).generate(this, params); + } + + /** + * Get config value from system property or value from config store. + *

+ * Value get by priority: + *

    + *
  1. + * System property (e.g. passed by maven -D) + *
  2. + *
  3. + * Value from config store + *
  4. + *
+ *

+ *

+ * In case of value not found HarnessConfigurationException is thrown. + *

+ * + * @param key identifier + * @return String value for defined key + */ + public String getSystemOrConfigValue(String key) { + return Stream.of(Optional.ofNullable(System.getProperty(key)), Optional.ofNullable(getConfig(key))) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElseThrow(() -> new HarnessConfigurationException(("You need to configure " + key + " parameter!"))); + } +} + diff --git a/test-harness/src/main/java/cz/moneta/test/harness/context/ConfigAccessor.java b/test-harness/src/main/java/cz/moneta/test/harness/context/ConfigAccessor.java new file mode 100644 index 0000000..5b38b23 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/context/ConfigAccessor.java @@ -0,0 +1,10 @@ +package cz.moneta.test.harness.context; + +public interface ConfigAccessor { + + String getConfig(String key); + + String getConfig(String key, String defaultValue); + + void putConfig(String key, String value); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/context/StoreAccessor.java b/test-harness/src/main/java/cz/moneta/test/harness/context/StoreAccessor.java new file mode 100644 index 0000000..0c116c4 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/context/StoreAccessor.java @@ -0,0 +1,98 @@ +package cz.moneta.test.harness.context; + +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.support.data.Generator; +import cz.moneta.test.harness.support.data.GeneratorType; +import cz.moneta.test.harness.support.util.Level; + +import java.util.Set; +import java.util.function.Supplier; + +public interface StoreAccessor extends ConfigAccessor { + + /** + * This method is used to get a direct access to an application or system endpoint. Typical usage is: + *
+ *
{@code
+     * public Login openLoginPage() {
+     *     LoansBranchEndpoint endpoint = harness.getEndpoint(LoansBranchEndpoint.class);
+     *     endpoint.openApplication();
+     *     return Builders.newWebFlowBuilder(Login.class, endpoint, harness);
+     * }
+     * }
+ * + * Subsequent calls to this method within the same test class return the same instance of the endpoint. + *
+ * NOTE calling this method with different arguments results in multiple instance of the same endpoint + * being instantiated + * + * @param endpointClass desired endpoint class + * @param args arguments to be passed to the endpoint implementation constructor + * @return returns an existing or - in case has not been instantiated - new instance of the endpoint + */ + E getEndpoint(Class endpointClass, Object... args); + + void closeEndpoint(Endpoint endpoint); + + Set getActiveEndpoints(); + + /** + * Returns a value previously stored via the {@link StoreAccessor#store} method within the same test class. + *
{@code
+     * harness.withUfoBanka()
+     *      .openLoginPage()
+     *      .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials))
+     *      .fillSearchTerm(harness.get(HKO001_MainClientPage.CLIENT_CIF_STORE_KEY))
+     *      .clickSearchByCif()
+     * }
+ */ + T get(String key); + + T get(String key, boolean nullEnabled); + + /** + * Stores the given value with the key. The key-value pair is kept for the duration of the test class execution. + */ + void store(String key, Object value); + + /** + * Works much like {@link StoreAccessor#get} only it gets values from the persistent global storage that is kept + * for the duration of the execution of all test classes + * + * @param key key + * @param orCreate if the key-value pair is not found, the supplier instantiates and stores the value before + * returning it + */ + T getGlobal(String key, Supplier orCreate); + + /** + * Works much like {@link StoreAccessor#get} only it gets values from the persistent global storage that is kept + * for the duration of the execution of all test classes + */ + T getGlobal(String key); + + /** + * Works much like {@link StoreAccessor#store} only it stores values in the persistent global storage that is kept + * for the duration of the execution of all test classes + */ + void storeGlobal(String key, Object value); + + void storeGlobal(String key, Supplier orCreate); + + void log(String template, Object... args); + + void log(Level level, String template, Object... args); + + /** + * Generates a value. + *

+ * Typical usage: + *

{@code
+     * String ico = harness.generate(GeneratorType.ICO);
+     * }
+ + * @param type typ of the generator to be used + * @param params parameters to be passed to the {@link Generator#generate} method + */ + T generate(GeneratorType type, Object... params); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/data/Browser.java b/test-harness/src/main/java/cz/moneta/test/harness/data/Browser.java new file mode 100644 index 0000000..b8c2a7b --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/data/Browser.java @@ -0,0 +1,27 @@ +package cz.moneta.test.harness.data; + +import java.util.Arrays; + +public enum Browser { + + GOOGLE_CHROME("chrome"), + MS_EDGE("edge"), + NOT_SUPPORTED("not_supported"); + + private String configName; + + Browser(String configName) { + this.configName = configName; + } + + public String getConfigName() { + return configName; + } + + public static Browser getBrowserByConfigName(String configName) { + return Arrays.stream(values()) + .filter(browser -> browser.getConfigName().equals(configName.trim().toLowerCase())) + .findFirst() + .orElse(NOT_SUPPORTED); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/BaseWsEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/BaseWsEndpoint.java new file mode 100644 index 0000000..42dcdda --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/BaseWsEndpoint.java @@ -0,0 +1,20 @@ +package cz.moneta.test.harness.endpoints; + +import cz.moneta.test.harness.connectors.WsConnector; + +import javax.xml.namespace.QName; +import java.net.URL; + +public abstract class BaseWsEndpoint implements Endpoint { + + private final WsConnector connector; + + public BaseWsEndpoint(String address, URL wsdlUrl, QName serviceName) { + connector = new WsConnector(address, wsdlUrl, serviceName); + } + + public RESP invoke(Object request, Class responseClass) { + return connector.invoke(request, responseClass); + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/CommonEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/CommonEndpoint.java new file mode 100644 index 0000000..3cc0819 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/CommonEndpoint.java @@ -0,0 +1,28 @@ +package cz.moneta.test.harness.endpoints; + +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.context.StoreAccessor; + +public class CommonEndpoint implements Endpoint { + + private Environment environment; + + public CommonEndpoint(StoreAccessor storeAccessor) { + this.environment = getEnvironmentByConfigName(storeAccessor); + } + + private Environment getEnvironmentByConfigName(StoreAccessor storeAccessor) { + String environmentConfigName = System.getProperty(HarnessConfigConstants.ENVIRONMENT_TYPE); + + if (environmentConfigName == null) { + environmentConfigName = storeAccessor.getConfig(HarnessConfigConstants.ENVIRONMENT_TYPE); + } + + return Environment.fromString(environmentConfigName); + } + + public Environment getEnvironment() { + return environment; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/Endpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/Endpoint.java new file mode 100644 index 0000000..3e1a8e2 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/Endpoint.java @@ -0,0 +1,35 @@ +package cz.moneta.test.harness.endpoints; + +/** + * Endpoints are the the primary interface for interacting with the Harness library. + *

+ * They serve as unified wrappers around implementation details (i.e. native libraries), so, that no prior knowledge + * of numerous system client libraries is required. + *

+ * Common endpoint would hold an instance of a single {@link cz.moneta.test.harness.connectors.Connector Connector} + * responsible for the actual native client library interaction. Such connectors would include REST, WS, ORACLE or + * Selenium ones. + *

+ * While implementing an endpoint for a new system, it is a good idea to find a similar endpoint harnessing the + * same/required connector type. For example when implementing an endpoint for a new REST API, one + * could start with modifying {@link cz.moneta.test.harness.endpoints.autoapi.AutoApiEndpoint AutoApiEndpoint} + * or similar + *

+ * Some endpoints may require a new Connector implemented for a specific technology which is not handled by Harness yet + *

+ * Endpoints are usually instantiated inside a {@code harness.withSomeSystemName()} method which in turn calls + * {@code harness.getEndpoint(SomeSystemEndpoint.class)} + *

+ * All endpoints instantiated via the {@link cz.moneta.test.harness.context.StoreAccessor#getEndpoint(Class, Object...)} + * method are automatically closed (i.e. the resources are released) after each test + */ +public interface Endpoint { + + default boolean canAccess() { + return true; + } + + default void close() { + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/MobileEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/MobileEndpoint.java new file mode 100644 index 0000000..8bbbe85 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/MobileEndpoint.java @@ -0,0 +1,190 @@ +package cz.moneta.test.harness.endpoints; + +import cz.moneta.test.harness.connectors.mobile.AppiumMobileConnector; +import cz.moneta.test.harness.connectors.mobile.UnsupportedPlatformException; +import cz.moneta.test.harness.connectors.mobile.android.AndroidConnector; +import cz.moneta.test.harness.connectors.mobile.ios.IosConnector; +import cz.moneta.test.harness.endpoints.smartbanka.MobilePlatform; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.share.Direction; +import cz.moneta.test.harness.support.web.Clickable; +import cz.moneta.test.harness.support.web.TextContainer; +import cz.moneta.test.harness.support.web.Until; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.concurrent.TimeUnit; +import java.util.function.Supplier; + +public class MobileEndpoint implements Endpoint { + protected final ThreadLocal connector; + + public MobileEndpoint(Supplier connectorSupplier) { + this.connector = ThreadLocal.withInitial(connectorSupplier); + } + + public AndroidConnector getAndroid() { + try { + return (AndroidConnector) connector.get(); + } catch (ClassCastException e) { + throw new UnsupportedPlatformException(MobilePlatform.ANDROID); + } + } + + public IosConnector getIos() { + try { + return (IosConnector) connector.get(); + } catch (ClassCastException e) { + throw new UnsupportedPlatformException(MobilePlatform.IOS); + } + } + + public void click(Clickable clickable, MobileLookup mobileLookup) { + connector.get().click(clickable.getPath(), mobileLookup); + } + + public void acceptAlert(int timeout) { + connector.get().acceptAlert(timeout); + } + + public void dismissAlert(int timeout) { + connector.get().dismissAlert(timeout); + } + + public String getText(String path, MobileLookup mobileLookup) { + return connector.get().getText(path, mobileLookup); + } + + public String getText(String path) { + return getText(path, MobileLookup.DEFAULT); + } + + public void waitForElementsToLoad(int timeoutSeconds, MobileLookup mobileLookup, Until until, String... elementsToCheck) { + connector.get().waitForElements(timeoutSeconds, mobileLookup, until, elementsToCheck); + } + + public void sleepSeconds(int seconds) { + try { + TimeUnit.SECONDS.sleep(seconds); + } catch (InterruptedException e) { + // + } + } + + public void scroll(Direction direction) { + switch (direction) { + case UP: + connector.get().scrollUp(); + break; + case DOWN: + connector.get().scrollDown(); + break; + case RIGHT: + connector.get().scrollRight(); + break; + case LEFT: + connector.get().scrollLeft(); + break; + default: + throw new HarnessException("unknown direction"); + } + } + + public void scrollToElement(Direction direction, MobileLookup mobileLookup, String path) { + switch (direction) { + case UP: + connector.get().scrollUpUntil(path, mobileLookup); + break; + case DOWN: + connector.get().scrollDownUntil(path, mobileLookup); + break; + case LEFT: + connector.get().scrollLeftUntil(path, mobileLookup); + break; + case RIGHT: + connector.get().scrollRightUntil(path, mobileLookup); + break; + default: + throw new HarnessException("unknown direction"); + } + } + + public void swipeViewLeft(){ + connector.get().swipeViewLeft(); + } + + public void swipeViewRight(){ + connector.get().swipeViewRight(); + } + + public void swipeFromToElement(String source, String target, MobileLookup mobileLookup) { + connector.get().swipeFromToElement(source, target, mobileLookup); + } + + public void type(TextContainer input, String text, boolean clear, MobileLookup mobileLookup) { + connector.get().type(input, text, clear, mobileLookup); + } + + public void type(TextContainer input, String text, MobileLookup mobileLookup) { + type(input, text, true, mobileLookup); + + } + + public void type(TextContainer input, String text) { + type(input, text, true, MobileLookup.DEFAULT); + + } + + public void takeSnapshot(String prefix) { + connector.get().takeSnapshot(getFileName(prefix, ".png")); + } + + public void saveSources(String viewName) { + connector.get().saveSource(getFileName(viewName, ".xml")); + } + + public void captureVideo(String prefix) { + connector.get().captureVideo(getFileName(prefix, ".mp4")); + } + + public void resetApp() { + connector.get().resetApp(); + } + + public void checkElementContent(String id, String content, MobileLookup mobileLookup) { + connector.get().elementsCheck().checkElementContent(id, content, mobileLookup); + } + + public void checkElementContent(String id, String content) { + connector.get().elementsCheck().checkElementContent(id, content, MobileLookup.DEFAULT); + } + + public void checkElementPresent(String path, MobileLookup mobileLookup){ + connector.get().elementsCheck().checkElementPresent(path, mobileLookup); + } + + @Override + public void close() { + connector.get().close(); + } + + private String getFileName(String prefix, String suffix) { + SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy/(HH.mm.ss)"); + Date date = new Date(System.currentTimeMillis()); + StringBuilder sb = new StringBuilder(); + if (prefix != null) { + sb.append(prefix); + sb.append("-"); + } + sb.append(formatter.format(date)); + sb.append("-"); + sb.append(MobilePlatform.getMobilePlatformFromConfig(connector.get().getStore())); + sb.append("-"); + sb.append(connector.get().getDeviceName()); + if (suffix != null) { + sb.append(suffix); + } + return sb.toString(); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/MonetaPortalEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/MonetaPortalEndpoint.java new file mode 100644 index 0000000..525aef5 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/MonetaPortalEndpoint.java @@ -0,0 +1,13 @@ +package cz.moneta.test.harness.endpoints; + +import cz.moneta.test.harness.context.StoreAccessor; +import org.openqa.selenium.By; + +public class MonetaPortalEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.moneta-portal.url"; + + public MonetaPortalEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/RestEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/RestEndpoint.java new file mode 100644 index 0000000..32f95e2 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/RestEndpoint.java @@ -0,0 +1,27 @@ +package cz.moneta.test.harness.endpoints; + +import cz.moneta.test.harness.connectors.rest.ExtendedRestResponse; +import cz.moneta.test.harness.context.StoreAccessor; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Entity; +import java.util.Map; + +public interface RestEndpoint extends Endpoint { + Pair get(String path, Map properties, Class responseType, Map headers); + + //TODO - make jackson pick up the correct generic type rather than a linked hash map + Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse); + + default Pair> postExtended(String path, Entity request, + Class responseType, + Map headers) { + throw new UnsupportedOperationException(String.format("Endpoint %s does not support extended request yet. Talk to the Harness support team about it", this.getClass().getSimpleName())); + } + + Pair delete(String path, Map properties, Class responseType, Map headers); + + Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse); + + StoreAccessor getStore(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/SmartAutoEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/SmartAutoEndpoint.java new file mode 100644 index 0000000..55fb4f1 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/SmartAutoEndpoint.java @@ -0,0 +1,13 @@ +package cz.moneta.test.harness.endpoints; + +import cz.moneta.test.harness.context.StoreAccessor; +import org.openqa.selenium.By; + +public class SmartAutoEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.smart-auto.url"; + + public SmartAutoEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/WebEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/WebEndpoint.java new file mode 100644 index 0000000..f94141b --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/WebEndpoint.java @@ -0,0 +1,751 @@ +package cz.moneta.test.harness.endpoints; + +import cz.moneta.test.harness.connectors.web.SeleniumChromeConnector; +import cz.moneta.test.harness.connectors.web.SeleniumEdgeConnector; +import cz.moneta.test.harness.connectors.web.SeleniumWebConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.data.Browser; +import cz.moneta.test.harness.exception.HarnessConfigurationException; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.web.Clickable; +import cz.moneta.test.harness.support.web.Key; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.TextContainer; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.junit.platform.commons.util.StringUtils; +import org.openqa.selenium.By; +import org.openqa.selenium.Cookie; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.logging.LogType; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class WebEndpoint extends CommonEndpoint { + + private static final String BROWSER_CONFIG_KEY = "browser"; + private static final String WAIT_DEFAULT_CONFIG_KEY = "waitSecondsForElementDefault"; + private static final Logger logger = LogManager.getLogger(WebEndpoint.class); + + protected ThreadLocal connector; + private String applicationBase; + private Browser browser; + private int waitDefaultFromConfig; + + public WebEndpoint(String endpointUrl, Function defaultLookup, StoreAccessor store, String... extraOptions) { + super(store); + this.applicationBase = getApplicationUrlFromConfig(endpointUrl, store); + this.browser = getBrowserByConfigName(store); + this.waitDefaultFromConfig = getWaitDefaultFromConfig(store); + initConnector(defaultLookup, store, extraOptions); + } + + public WebEndpoint(String endpointUrl, Function defaultLookup, StoreAccessor store, Browser defaultBrowser, String... extraOptions) { + super(store); + this.applicationBase = getApplicationUrlFromConfig(endpointUrl, store); + this.browser = getBrowserWithCheckIgnoreDefaultParam(defaultBrowser, store); + this.waitDefaultFromConfig = getWaitDefaultFromConfig(store); + initConnector(defaultLookup, store, extraOptions); + } + + private boolean ignoreDefaultBrowser(StoreAccessor store) { + return Boolean.parseBoolean(store.getConfig("ignore-default-browser", "false")); + } + + private void initConnector(Function defaultLookup, StoreAccessor store, String... extraOptions) { + Supplier connectorSupplier = getConnectorSupplier(defaultLookup, store, extraOptions); + + this.connector = ThreadLocal.withInitial(connectorSupplier); + this.connector.set(connectorSupplier.get()); + } + + private String getApplicationUrlFromConfig(String endpointUrl, StoreAccessor store) { + String applicationUrl = Optional.ofNullable(store.getConfig(endpointUrl)) + .orElseThrow(() -> + new IllegalStateException("You need to configure " + endpointUrl + " to work with application!")); + logger.info("Successfully found endpoint URL: {}", () -> applicationUrl); + return applicationUrl; + } + + private Browser getBrowserWithCheckIgnoreDefaultParam(Browser defaultBrowser, StoreAccessor store) { + if (ignoreDefaultBrowser(store)) { + return getBrowserByConfigName(store); + } else { + logger.info("Default browser will be used. Browser in config file will be ignored!"); + return defaultBrowser; + } + } + + private Browser getBrowserByConfigName(StoreAccessor store) { + String browserConfigName = System.getProperty(BROWSER_CONFIG_KEY); + + if (browserConfigName == null) { + browserConfigName = store.getConfig(BROWSER_CONFIG_KEY); + } + + return Browser.getBrowserByConfigName(browserConfigName); + } + + private Supplier getConnectorSupplier(Function defaultLookup, StoreAccessor store, String... extraOptions) { + switch (browser) { + case GOOGLE_CHROME: + return () -> new SeleniumChromeConnector(defaultLookup, store, extraOptions); + case MS_EDGE: + return () -> new SeleniumEdgeConnector(defaultLookup, store); + default: + throw new HarnessConfigurationException("Unsupported browser defined in configuration."); + } + } + + public String getApplicationBase() { + return this.applicationBase; + } + + public void openApplication(String... pathParts) { + connector.get().getDriver() + .get(getApplicationBase() + concatenatePathParts(pathParts)); + maximizeBrowserWindow(); + } + + private String concatenatePathParts(String[] pathParts) { + return Arrays.stream(pathParts) + .filter(StringUtils::isNotBlank) + .collect(Collectors.joining("/")); + } + + public void maximizeBrowserWindow() { + connector.get() + .getDriver() + .manage() + .window() + .maximize(); + } + + public void waitForElementsToLoad(int timeoutSeconds, Lookup lookup, Until until, String... elementsToCheck) { + int timeout = getTimeoutValue(timeoutSeconds); + connector.get().waits().waitForElements(timeout, lookup, until, elementsToCheck); + } + + public void waitForElementsToLoad(int timeoutSeconds, String... elementsToCheck) { + waitForElementsToLoad(timeoutSeconds, Lookup.DEFAULT, Until.PRESENT_IN_DOM, elementsToCheck); + } + + public void waitForElementsToLoad(int timeoutSeconds, Lookup lookup, String... elementsToCheck) { + waitForElementsToLoad(timeoutSeconds, lookup, Until.PRESENT_IN_DOM, elementsToCheck); + } + + public void waitForElementsToLoad(int timeoutSeconds, Until until, String... elementsToCheck) { + waitForElementsToLoad(timeoutSeconds, Lookup.DEFAULT, until, elementsToCheck); + } + + public void waitForAnyElementToLoad(int timeoutSeconds, Lookup lookup, String... elementsToCheck) { + connector.get().waits().waitForAtLeastOneElement(timeoutSeconds, lookup, elementsToCheck); + } + + public void waitForAnyElementToLoad(int timeoutSeconds, String... elementsToCheck) { + waitForAnyElementToLoad(timeoutSeconds, Lookup.DEFAULT, elementsToCheck); + } + + public void waitForElementAndRefresh(String waitElementPath, String refreshElementPath, Lookup waitElementLookup, + Lookup refreshElementLookup, int timeoutSeconds, int pollingEverySeconds) { + connector.get().waits().waitForElementAndRefresh(waitElementPath, refreshElementPath, waitElementLookup, refreshElementLookup, + timeoutSeconds, pollingEverySeconds); + } + + public void waitForElementAndRefresh(String waitElementPath, String refreshElementPath, int timeoutSeconds, + int pollingEverySeconds) { + connector.get().waits().waitForElementAndRefresh(waitElementPath, refreshElementPath, Lookup.DEFAULT, Lookup.DEFAULT, + timeoutSeconds, pollingEverySeconds); + } + + public void waitForElementAndRefresh(String waitElementPath, String refreshElementPath) { + connector.get().waits().waitForElementAndRefresh(waitElementPath, refreshElementPath, Lookup.DEFAULT, Lookup.DEFAULT, + 20, 1); + } + + public void waitForElementAndRefresh(String waitElementPath, Lookup waitElementLookup, Runnable refreshFunction, + int timeoutSeconds, int pollingEverySeconds) { + connector.get().waits().waitForElementAndRefresh(waitElementPath, waitElementLookup, refreshFunction, + timeoutSeconds, pollingEverySeconds, true); + } + + public void waitForElementDisappearOrRefresh(String waitElementPath, Lookup waitElementLookup, Runnable refreshFunction, + int timeoutSeconds, int pollingEverySeconds) { + connector.get().waits().waitForElementAndRefresh(waitElementPath, waitElementLookup, refreshFunction, + timeoutSeconds, pollingEverySeconds, false); + } + + public void waitOrFailOnErrorElement(int timeoutSeconds, String pathForWaiting, String pathToFail, Lookup lookup) { + connector.get().waits().waitOrFailOnErrorElement(timeoutSeconds, pathForWaiting, pathToFail, lookup); + } + + /** + * Method for wait if all elements passed as parameter in defined state (Visible, Gone, Present in DOM) and there is not + * visible fail element. Fail element is for example error screen. + *

+ * Wait is implemented as fluent wait with 500ms polling and all parameters are transformed into expected conditions. + * These conditions are used in fluent wait. + *

+ *

+ * In case of fail element visible is thrown FailElementDisplayedException. + *

+ * + * @param timeoutSeconds - wait timeout + * @param lookup - define locator strategy + * @param until - state to check - Visible, Gone, Present in DOM + * @param xpathToFail - xpath for fail element/error screen + * @param elementsToCheck - elements to be wait for + */ + public void waitOrFailOnErrorXpath(int timeoutSeconds, Lookup lookup, Until until, String xpathToFail, String... elementsToCheck) { + int timeout = getTimeoutValue(timeoutSeconds); + connector.get().waits().waitOrFailOnErrorXpath(timeout, lookup, until, xpathToFail, elementsToCheck); + } + + public void dismissAlert(int timeout) { + connector.get().alerts().dismissAlert(timeout); + } + + public void acceptAlert(int timeout) { + connector.get().alerts().acceptAlert(timeout); + } + + public String getAlertText(int timeout) { + return connector.get().alerts().getAlertText(timeout); + } + + /** + * This method is used for get information about alert is present on open web application + * + * @param timeout The maximum wait to present alert + * @return boolean value for existing alert + */ + public boolean isAlertPresent(int timeout) { + return connector.get().alerts().isAlertPresent(timeout); + } + + public void click(Clickable clickable, Lookup lookup) { + connector.get().clicks().click(clickable, lookup); + } + + public void click(Clickable clickable) { + click(clickable, Lookup.DEFAULT); + } + + public void doubleClick(Clickable clickable, Lookup lookup) { + connector.get().clicks().doubleClick(clickable, lookup); + } + + public void jsDoubleClick(Clickable clickable, Lookup lookup) { + connector.get().clicks().jsDoubleClick(clickable, lookup); + } + + public void jsClick(Clickable clickable, Lookup lookup) { + connector.get().clicks().jsClick(clickable, lookup); + } + + public void jsClick(Clickable clickable) { + jsClick(clickable, Lookup.DEFAULT); + } + + public void type(TextContainer input, String text, boolean clear, Lookup lookup) { + connector.get().types().type(input, text, clear, lookup); + } + + public void type(TextContainer input, String text, boolean clear) { + type(input, text, clear, Lookup.DEFAULT); + } + + public void jsType(TextContainer input, String text, boolean clear, Lookup lookup) { + connector.get().types().jsType(input, text, clear, lookup); + } + + public void jsType(TextContainer input, String text, boolean clear) { + jsType(input, text, clear, Lookup.DEFAULT); + } + + public void typeWithControlDown(String input, String keys, Lookup lookup) { + connector.get().types().typeWithControlDown(input, keys, lookup); + } + + public void typeWithControlDown(String input, String keys) { + typeWithControlDown(input, keys, Lookup.DEFAULT); + } + + public void isAtLeastOneElementPresent(String path, Lookup lookup) { + connector.get().elementsChecks().isAtLeastOneElementPresent(path, lookup); + } + + public void isAtLeastOneElementPresent(String path) { + isAtLeastOneElementPresent(path, Lookup.DEFAULT); + } + + public boolean isElementPresent(String path, Lookup lookup) { + return connector.get().elementsChecks().isElementPresent(path, lookup); + } + + public boolean isElementEnabled(String path) { + return isElementEnabled(path, Lookup.DEFAULT); + } + + public boolean isElementEnabled(String path, Lookup lookup) { + return connector.get().elementsChecks().isElementEnabled(path, lookup); + } + + public void checkElementContent(String id, String content, Lookup lookup) { + connector.get().elementsChecks().checkElementContent(id, content, lookup); + } + + public void checkElementContent(String id, String content) { + checkElementContent(id, content, Lookup.DEFAULT); + } + + public Object executeScript(String script, Object... args) { + return connector.get().scripts().executeScript(script, args); + } + + public String getCookie(String name) { + return connector.get().cookies().getCookie(name); + } + + /** + * Creating a cookie for set values. + * + * @param name The cookie's name Set for default value. + * @param value The cookie's value. + * @param domain The domain the cookie is visible to. If set to null, will be se to your default domain. + * @param path The path the cookie is visible to. If set to null, will be set to "/". + * @param expiry The cookie's expiration date. You may be set to null. + * @param isSecure You must set whether this cookie requires a secure connection. + * @param isHttpOnly You must set whether this cookie is a httpOnly. + */ + public void addCookies(String name, String value, String domain, String path, Date expiry, boolean isSecure, boolean isHttpOnly) { + connector.get().cookies().addCookie(name, value, domain, path, expiry, isSecure, isHttpOnly); + } + + // Create a cookie for given name and value with default values + public void addCookies(String name, String value) { + connector.get().cookies().addCookie(name, value, null, null, null, true, false); + } + + public void addCookies(Cookie cookie) { + connector.get().cookies().addCookie(cookie); + } + + public void selectByVisibleText(String path, String text, Lookup lookup) { + connector.get().selects().selectByVisibleText(path, text, lookup); + } + + public void selectByVisibleText(String path, String text) { + selectByVisibleText(path, text, Lookup.DEFAULT); + } + + + public void selectByValue(String path, String value, Lookup lookup) { + connector.get().selects().selectByValue(path, value, lookup); + } + + public void selectByValue(String path, String value) { + selectByValue(path, value, Lookup.DEFAULT); + } + + public void selectByOptionOrder(String path, int optionOrder, Lookup lookup) { + connector.get().selects().selectByOptionOrder(path, optionOrder, lookup); + } + + public void selectByOptionOrder(String path, int optionOrder) { + connector.get().selects().selectByOptionOrder(path, optionOrder, Lookup.DEFAULT); + } + + /** + * Select option by text part of option value + *

+ * In some cases is necessary to select option only by part of value in option. This method accepts path to element + * lookup strategy value and list of text parts of options. + *

+ * + * @param path - path to select element + * @param textOptionsParts - list of option text parts to look for + */ + public void selectByContainingTexts(String path, List textOptionsParts) { + selectByContainingTexts(path, Lookup.DEFAULT, textOptionsParts); + } + + /** + * Select option by text part of option value + *

+ * In some cases is necessary to select option only by part of value in option. This method accepts path to element + * lookup strategy value and list of text parts of options. + *

+ * + * @param path - path to select element + * @param lookup - lookup strategy for select element + * @param textOptionsParts - list of option text parts to look for + */ + public void selectByContainingTexts(String path, Lookup lookup, List textOptionsParts) { + connector.get().selects().selectByContainingTexts(path, lookup, textOptionsParts); + } + + public String getSelectedFirstItemText(String path, Lookup lookup) { + return connector.get().selects().getFirstSelectedOptionText(path, lookup); + } + + public String getSelectedFirstItemText(String path) { + return getSelectedFirstItemText(path, Lookup.DEFAULT); + } + + public String getText(String path, Lookup lookup) { + return connector.get().elementsActions().getText(path, lookup); + } + + public String getText(String path) { + return getText(path, Lookup.DEFAULT); + } + + public void switchToFrame(String frame, Lookup lookup) { + connector.get().frames().switchToFrame(frame, lookup); + } + + public void switchToFrame(String frame) { + switchToFrame(frame, Lookup.DEFAULT); + } + + public void switchToDefaultContent() { + connector.get().navigations().switchToDefaultContent(); + } + + public void changePath(String path) { + connector.get().navigations().navigateTo(applicationBase + path); + } + + public void changeUrl(String url) { + connector.get().navigations().navigateTo(url); + } + + public void navigateBack() { + connector.get().navigations().navigateBack(); + } + + public void navigateForward() { + connector.get().navigations().navigateForward(); + } + + /** + * This method is used for refreshing page which is currently open in webdriver + */ + public void refeshPage() { + connector.get().navigations().navigateRefresh(); + } + + public String takeSnapshot(String prefix) { + return connector.get().driverUtils().takeSnapshot(getFileName(prefix, ".png")); + } + + public Set captureLogs(String prefix) { + return Stream.of(LogType.BROWSER, LogType.CLIENT, LogType.DRIVER, LogType.PERFORMANCE, /*LogType.PROFILER,*/ LogType.SERVER) + .map(logType -> connector.get().driverUtils().captureLog(getFileName(String.format("%s.%s", prefix, logType)), logType)) + .collect(Collectors.toSet()); + } + + public void captureDom(String prefix) { + connector.get().driverUtils().captureDom(getFileName(prefix, ".dom.dump.html")); + } + + protected String getFileName(String prefix) { + return getFileName(prefix, null); + } + + protected String getFileName(String prefix, String suffix) { + StringBuilder sb = new StringBuilder(); + if (prefix != null) { + sb.append(prefix); + sb.append("-"); + } + sb.append(getClass().getSimpleName()); + sb.append("-"); + sb.append(System.currentTimeMillis()); + if (suffix != null) { + sb.append(suffix); + } + return sb.toString(); + } + + public String getCurrentUrl() { + return connector.get().getCurrentUrl(); + } + + @Override + public void close() { + connector.get().close(); + } + + public void closeCurrentWindow() { + connector.get().windows().closeCurrentWindow(); + } + + public void sleepSeconds(int seconds) { + sleep(TimeUnit.SECONDS, seconds); + } + + public void sleep(TimeUnit timeUnit, long timeout) { + try { + timeUnit.sleep(timeout); + } catch (InterruptedException e) { + logger.warn("Sleep throws InterruptedException!", e); + Thread.currentThread().interrupt(); + } + } + + public void switchToOtherWindow(int timeout, int expectedNumberOfWindows) { + connector.get().windows().switchToOtherWindow(timeout, expectedNumberOfWindows); + } + + public void switchToWindowByTitle(String windowTitle) { + connector.get().windows().switchToWindowByTitle(windowTitle); + } + + public void switchToActiveElement() { + connector.get().getDriver().switchTo().activeElement(); + } + + public void closePopup(int closeWindowTimeout) { + closeCurrentWindow(); + switchToOtherWindow(closeWindowTimeout, 1); + } + + public void focusToNewPopup(int openWindowTimeout) { + switchToOtherWindow(openWindowTimeout, 2); + } + + public boolean isHeadlessModeOn() { + return executeScript("return navigator.userAgent").toString().contains("Headless"); + } + + /** + * FIXME: Currently doesn't work. Workarounded by argument --kiosk-printing + * Watch https://github.com/MicrosoftEdge/EdgeWebDriver/issues/115 + */ + public void dismissEdgePrintDialog() { + if (browser != Browser.MS_EDGE) + throw new HarnessException("Method dismissEdgePrintDialog is designed only for browser MS Edge"); + + if (isHeadlessModeOn()) { + if (isAlertPresent(30)) { + dismissAlert(1); + } + + } else { + String originalWindow = connector.get().getDriver().getWindowHandle(); + + try { + // Switch to Print dialog and close it + // FIXME: this loop stuck on getTitle method + /*for (String winHandle : connector.get().getDriver().getWindowHandles()) { + String title = connector.get().getDriver().switchTo().window(winHandle).getTitle(); + if (title.matches("^[0-9a-fA-F-]{36}")) {// print dialog has generated title, example: fe0c496e-d557-4460-a360-f0e2555265f8 + connector.get().getDriver().findElement(By.xpath("//button[span[text()='Cancel']]")).click(); + } + }*/ + + // This will work only with 2 windows opened + switchToOtherWindow(30, 2); + String btnCancelXpath = "//button[span[text()='Cancel']]"; + waitForElementsToLoad(30, Lookup.XPATH, btnCancelXpath); + connector.get().getDriver().findElement(By.xpath(btnCancelXpath)).click(); + } catch (Exception e) { + throw (e); + } finally { + connector.get().getDriver().switchTo().window(originalWindow); + } + } + } + + public void switchWindowResolution(int width, int height) { + connector.get().windows().switchWindowResolution(width, height); + } + + public void moveToElement(String path, Lookup lookup) { + connector.get().elementsActions().moveToElement(path, lookup); + } + + public void moveToElement(String path) { + moveToElement(path, Lookup.DEFAULT); + } + + public void moveToElementAndClickToOtherElement(String hoverElementPath, String clickElementPath, Lookup lookup) { + connector.get().elementsActions().moveToElementAndClick(hoverElementPath, clickElementPath, lookup); + } + + public void moveToElementAndClickToOtherElement(String hoverElementPath, String clickElementPath) { + moveToElementAndClickToOtherElement(hoverElementPath, clickElementPath, Lookup.DEFAULT); + } + + /** + * @deprecated use sendKeysOneAtATime instead of this method + */ + @Deprecated + public void scrollToPageBottom() { + sendKeysOneAtATime(Key.END); + } + + /** + * @deprecated use sendKeysOneAtATime instead of this method + */ + @Deprecated + public void scrollToPageTop() { + sendKeysOneAtATime(Key.HOME); + } + + public void sendKeysOneAtATime(Key... keys) { + connector.get().sendKeys().sendKeysOneAtATime(keys); + } + + public void sendKeysAsChord(Key... keys) { + connector.get().sendKeys().sendKeysAsChord(keys); + } + + public boolean isElementVisible(String path, Lookup lookup) { + return connector.get().elementsActions().isElementVisible(path, lookup); + } + + public boolean isElementVisible(String path) { + return isElementVisible(path, Lookup.DEFAULT); + } + + public boolean isElementVisible(int timeout, String path, Lookup lookup) { + return connector.get().elementsActions().isElementVisible(timeout, path, lookup); + } + + public void dragAndDrop(String source, String target, Lookup lookup) { + connector.get().elementsActions().dragAndDropElement(source, target, lookup); + } + + public void dragAndDrop(String source, String target) { + dragAndDrop(source, target, Lookup.DEFAULT); + } + + public void dragAndDropBy(String source, int xOffset, int yOffset, Lookup lookup) { + connector.get().elementsActions().dragAndDropBy(source, xOffset, yOffset, lookup); + } + + public void dragAndDropBy(String source, int xOffset, int yOffset) { + dragAndDropBy(source, xOffset, yOffset, Lookup.DEFAULT); + } + + public void scrollIntoView(String path, Lookup lookup) { + connector.get().elementsActions().scrollIntoView(path, lookup); + } + + public void scrollIntoView(String path) { + connector.get().elementsActions().scrollIntoView(path, Lookup.DEFAULT); + } + + public String getAttribute(String path, Lookup lookup, String attributeName) { + return connector.get().getAttribute(path, lookup, attributeName); + } + + public String getAttribute(String path, String attributeName) { + return getAttribute(path, Lookup.DEFAULT, attributeName); + } + + public Browser getBrowser() { + return browser; + } + + /** + * This method is used for downloading file in Internet Explorer. It is not possible to turn off IE download prompt. + * It is necessary to specify wait time for downloading. Download in IE is not possible handle via Selenium and for this + * reason is used sleep instead of timeout. + *

+ * This method handles standard prompt downloading for Internet Explorer on Selenium Grid. + *

+ *

+ * Not implemented for Chrome - download handling is possible via capabilities. + *

+ * + * @param waitInSeconds - time for sleep in process + */ + public void downloadFileViaIePrompt(int waitInSeconds) { + connector.get().downloadFileViaIePrompt(waitInSeconds); + } + + private int getWaitDefaultFromConfig(StoreAccessor store) { + String waitForElementDefault = System.getProperty(WAIT_DEFAULT_CONFIG_KEY); + + if (waitForElementDefault == null) { + waitForElementDefault = store.getConfig(WAIT_DEFAULT_CONFIG_KEY, "0"); + } + return Integer.parseInt(waitForElementDefault); + } + + private int getWaitDefaultFromMethod() { + try { + return (Integer) Wait.class.getDeclaredMethod("waitSecondsForElement").getDefaultValue(); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } + return 0; + } + + private int getTimeoutValue(int timeoutSeconds) { + int timeout = timeoutSeconds; + if (waitDefaultFromConfig != 0 && timeoutSeconds == getWaitDefaultFromMethod()) { + timeout = waitDefaultFromConfig; + } + + return timeout; + } + + public List findAndGetListOfElements(String path, Lookup lookup) { + return connector.get().elementsActions().findElements(path, lookup); + } + + public String getNodeHost() { + return connector.get().getNodeHost(); + } + + /** + * Enables to check if specified file exists in download directory. + *

+ * Can be called after file is downloaded. It checks if specified file exists in target download directory. + * If not specified then download directory is taken from config parameter selenium.download.directory, ex. selenium.download.directory=\\\\localhost\\c$\\Temp + * Usually it takes some time to download a file therefore use timeoutInSeconds as pause before checking for file existence. + * By default if file is found it is also deleted from disk. + *

+ * There are two methods for detecting the existence of file. + * The first is to use the File.exists() method - it works in large folders, but sometimes it returns true only after a long time the file exists. + * The second is by browsing the list of files in the directory, it is faster but not suitable for directories with a large count of files. + *

+ * + * @param filename - name of file to check if exists + * @param waitInSeconds - pause before checking for file existence + * @param directory - if not defined you must set default directory through config parameter selenium.download.directory + * @param deleteFile - set to false if you do not want to delete checked file + * @param useDirectoryListMethod - set to true if you want to use directory list search method instead of File.exists() + */ + public Boolean checkIfFileExists(String filename, int waitInSeconds, String directory, boolean deleteFile, boolean useDirectoryListMethod) { + return connector.get().driverUtils().checkIfFileExists(directory, filename, waitInSeconds, deleteFile, useDirectoryListMethod); + } + + public Boolean checkIfFileExists(String filename, int waitInSeconds, String directory, boolean deleteFile) { + return checkIfFileExists(filename, waitInSeconds, directory, deleteFile, false); + } + + public Boolean checkIfFileExists(String filename, int waitInSeconds, String directory) { + return checkIfFileExists(filename, waitInSeconds, directory, true); + } + + public Boolean checkIfFileExists(String filename, int waitInSeconds) { + return checkIfFileExists(filename, waitInSeconds, null, true); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/aresapi/AresApiEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/aresapi/AresApiEndpoint.java new file mode 100644 index 0000000..ef86f52 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/aresapi/AresApiEndpoint.java @@ -0,0 +1,51 @@ +package cz.moneta.test.harness.endpoints.aresapi; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.Map; +import java.util.Optional; + +public class AresApiEndpoint implements RestEndpoint { + + private RestConnector restConnector; + private StoreAccessor store; + + public AresApiEndpoint(StoreAccessor store) { + this.store = store; + String endpointName = "endpoints.ares-api.url"; + this.restConnector = Optional.ofNullable(store.getConfig(endpointName)) + .map(url -> new SimpleRestConnector(url, "AresApiRestLogger")) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointName + " to work with AresApi")); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/autoapi/AutoApiEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/autoapi/AutoApiEndpoint.java new file mode 100644 index 0000000..173a73d --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/autoapi/AutoApiEndpoint.java @@ -0,0 +1,50 @@ +package cz.moneta.test.harness.endpoints.autoapi; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import java.util.Map; +import java.util.Optional; + +public class AutoApiEndpoint implements RestEndpoint { + private RestConnector restConnector; + private StoreAccessor store; + + public AutoApiEndpoint(StoreAccessor store) { + this.store = store; + String endpointName = "endpoints.auto-api.url"; + this.restConnector = Optional.ofNullable(store.getConfig(endpointName)) + .map(url -> new SimpleRestConnector(url, "AutoApiRestLogger")) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointName + " to work with AutoApi")); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/autoapi/PSmartAutoEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/autoapi/PSmartAutoEndpoint.java new file mode 100644 index 0000000..6459ba0 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/autoapi/PSmartAutoEndpoint.java @@ -0,0 +1,50 @@ +package cz.moneta.test.harness.endpoints.autoapi; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.Map; +import java.util.Optional; + +public class PSmartAutoEndpoint implements RestEndpoint { + private RestConnector restConnector; + private StoreAccessor store; + + public PSmartAutoEndpoint(StoreAccessor store) { + this.store = store; + String endpointName = "endpoints.psmartauto.url"; + this.restConnector = Optional.ofNullable(store.getConfig(endpointName)) + .map(url -> new SimpleRestConnector(url, "PSmartAutoRestLogger")) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointName + " to work with PSmartAuto")); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/autodb/AutoDBEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/autodb/AutoDBEndpoint.java new file mode 100644 index 0000000..a379a64 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/autodb/AutoDBEndpoint.java @@ -0,0 +1,47 @@ +package cz.moneta.test.harness.endpoints.autodb; + +import cz.moneta.test.harness.connectors.database.OracleConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import org.jooq.DSLContext; +import org.jooq.Record; +import org.jooq.Result; +import org.jooq.Routine; +import org.jooq.TableRecord; + +import java.util.Optional; +import java.util.function.Function; + +public class AutoDBEndpoint implements Endpoint { + + private final ThreadLocal autoDbConnector = ThreadLocal.withInitial(this::initConnector); + + private final StoreAccessor store; + + public AutoDBEndpoint(StoreAccessor store) { + this.store = store; + } + + public > R executeDsl(Function query) { + return autoDbConnector.get().executeDsl(query); + } + + public > R executeProcedure(R procedure) { + return autoDbConnector.get().executeProcedure(procedure); + } + + public Result executeSql(String sql) { + return autoDbConnector.get().executeSql(sql); + } + + private OracleConnector initConnector() { + String endpointName = "endpoints.auto-db.url"; + Credentials credentials = AuthSupport.getCredentials("auto-db", store); + return Optional.ofNullable(store.getConfig(endpointName)) + .map(url -> new OracleConnector(url, credentials.getUsername(), credentials.getPassword())) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointName + " to work with Udebs Database")); + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/broadcom/BroadcomEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/broadcom/BroadcomEndpoint.java new file mode 100644 index 0000000..3185d99 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/broadcom/BroadcomEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.broadcom; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class BroadcomEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.broadcom.url"; + + public BroadcomEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/cagw/CaGwEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/cagw/CaGwEndpoint.java new file mode 100644 index 0000000..7a20690 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/cagw/CaGwEndpoint.java @@ -0,0 +1,58 @@ +package cz.moneta.test.harness.endpoints.cagw; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import cz.moneta.test.harness.support.auth.AuthSupport; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import java.util.Map; + +public class CaGwEndpoint implements RestEndpoint { + + private RestConnector restConnector; + private StoreAccessor store; + + public CaGwEndpoint(StoreAccessor store) { + this.store = store; + String url = store.getConfig("endpoints.cagw.url"); + if (url == null) { + throw new IllegalStateException("You need to configure endpoints.cagw.url to work with CBL"); + } + this.restConnector = new SimpleRestConnector(url, "CaGwRestLogger"); + + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + public String getClientSecret(String clientKey) { + return AuthSupport.getClientSecret(clientKey, store, HarnessConfigConstants.VAULT_CAGW_KEYS_PATH); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/cashman/CashmanEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/cashman/CashmanEndpoint.java new file mode 100644 index 0000000..75977e3 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/cashman/CashmanEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.cashman; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class CashmanEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.cashman.url"; + + public CashmanEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/cebia/CebiaWsEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/cebia/CebiaWsEndpoint.java new file mode 100644 index 0000000..476b32e --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/cebia/CebiaWsEndpoint.java @@ -0,0 +1,20 @@ +package cz.moneta.test.harness.endpoints.cebia; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.BaseWsEndpoint; + +import javax.xml.namespace.QName; +import java.net.URL; + +@Deprecated(since = "unmaintained since update to Java 17") +public class CebiaWsEndpoint extends BaseWsEndpoint { + + private static final String CEBIA_ADDRESS = "https://app.cebia.com/IVATEST/Services/IvaServiceActual.svc"; + private static final URL CEBIA_WSDL_URL = CebiaWsEndpoint.class.getClassLoader().getResource("ws/IvaServiceActual.wsdl"); + private static final QName CEBIA_SERVICE_NAME = new QName("http://schemas.cebia.com/iva/service/", "IvaService"); + + public CebiaWsEndpoint(StoreAccessor store) { + super(CEBIA_ADDRESS, CEBIA_WSDL_URL, CEBIA_SERVICE_NAME); + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/demo/DemoChromeWebEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/demo/DemoChromeWebEndpoint.java new file mode 100644 index 0000000..eb301cc --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/demo/DemoChromeWebEndpoint.java @@ -0,0 +1,16 @@ +package cz.moneta.test.harness.endpoints.demo; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.data.Browser; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class DemoChromeWebEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.demo.url"; + private static final Browser DEFAULT_BROWSER = Browser.GOOGLE_CHROME; + + public DemoChromeWebEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor, DEFAULT_BROWSER); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/demo/DemoEdgeWebEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/demo/DemoEdgeWebEndpoint.java new file mode 100644 index 0000000..c9c1357 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/demo/DemoEdgeWebEndpoint.java @@ -0,0 +1,16 @@ +package cz.moneta.test.harness.endpoints.demo; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.data.Browser; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class DemoEdgeWebEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.demo.url"; + private static final Browser DEFAULT_BROWSER = Browser.MS_EDGE; + + public DemoEdgeWebEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor, DEFAULT_BROWSER); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/demo/DemoEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/demo/DemoEndpoint.java new file mode 100644 index 0000000..058ceb6 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/demo/DemoEndpoint.java @@ -0,0 +1,28 @@ +package cz.moneta.test.harness.endpoints.demo; + +import cz.moneta.test.harness.connectors.DemoConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; + +public class DemoEndpoint implements Endpoint { + + private DemoConnector connector; + + public DemoEndpoint(StoreAccessor store) { + connector = new DemoConnector(); + String location = store.getConfig("endpoints.demo.spirits.location"); + connector.connectToTempDirectoryService(location); + } + + public void summonSpirit(String name) { + connector.createFile(name); + } + + public boolean spiritPresent(String name) { + return connector.fileExists(name); + } + + public void expelSpirit(String name) { + connector.deleteFile(name); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/dmbsib/DmbsIbEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/dmbsib/DmbsIbEndpoint.java new file mode 100644 index 0000000..143d8cb --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/dmbsib/DmbsIbEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.dmbsib; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class DmbsIbEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.dmbsib.web.url"; + + public DmbsIbEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/elastic/ElasticReadEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/elastic/ElasticReadEndpoint.java new file mode 100644 index 0000000..6ed80b8 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/elastic/ElasticReadEndpoint.java @@ -0,0 +1,50 @@ +package cz.moneta.test.harness.endpoints.elastic; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import java.util.Map; +import java.util.Optional; + +public class ElasticReadEndpoint implements RestEndpoint { + private final RestConnector restConnector; + private final StoreAccessor store; + + public ElasticReadEndpoint(StoreAccessor store) { + this.store = store; + String endpointUrl = "endpoints.elastic.read.url"; + this.restConnector = Optional.ofNullable(store.getConfig(endpointUrl)) + .map(url -> new SimpleRestConnector(url, "ElasticRestLogger")) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointUrl + " to work with Elastic Search.")); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/elastic/ElasticWriteEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/elastic/ElasticWriteEndpoint.java new file mode 100644 index 0000000..37cff97 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/elastic/ElasticWriteEndpoint.java @@ -0,0 +1,50 @@ +package cz.moneta.test.harness.endpoints.elastic; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import java.util.Map; +import java.util.Optional; + +public class ElasticWriteEndpoint implements RestEndpoint { + private final RestConnector restConnector; + private final StoreAccessor store; + + public ElasticWriteEndpoint(StoreAccessor store) { + this.store = store; + String endpointUrl = "endpoints.elastic.write.url"; + this.restConnector = Optional.ofNullable(store.getConfig(endpointUrl)) + .map(url -> new SimpleRestConnector(url, "ElasticRestLogger")) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointUrl + " to work with Elastic Search.")); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/exevido/ExevidoEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/exevido/ExevidoEndpoint.java new file mode 100644 index 0000000..0782ec4 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/exevido/ExevidoEndpoint.java @@ -0,0 +1,17 @@ +package cz.moneta.test.harness.endpoints.exevido; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.data.Browser; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class ExevidoEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.exevido.url"; + + private static final Browser DEFAULT_BROWSER = Browser.GOOGLE_CHROME; + + public ExevidoEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::id, storeAccessor, DEFAULT_BROWSER); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/finanso/FinansoEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/finanso/FinansoEndpoint.java new file mode 100644 index 0000000..5a0f5e7 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/finanso/FinansoEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.finanso; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class FinansoEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.finanso.url"; + + public FinansoEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/forte/ForteEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/forte/ForteEndpoint.java new file mode 100644 index 0000000..d77b49d --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/forte/ForteEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.forte; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class ForteEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.forte.url"; + + public ForteEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/forte/ForteLightEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/forte/ForteLightEndpoint.java new file mode 100644 index 0000000..fbb8823 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/forte/ForteLightEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.forte; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class ForteLightEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.fortelight.url"; + + public ForteLightEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/greenscreen/GreenScreenEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/greenscreen/GreenScreenEndpoint.java new file mode 100644 index 0000000..82a629e --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/greenscreen/GreenScreenEndpoint.java @@ -0,0 +1,44 @@ +package cz.moneta.test.harness.endpoints.greenscreen; + +import cz.moneta.test.harness.connectors.GreenScreenConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.greenscreen.Key; + +import java.util.Optional; + +public class GreenScreenEndpoint implements Endpoint { + + private final ThreadLocal connector = ThreadLocal.withInitial(this::initConnector); + private StoreAccessor store; + + public GreenScreenEndpoint(StoreAccessor store) { + this.store = store; + } + + public void connect() { + connector.get().connectAndLogin(); + } + + public String getText(int row, int column, int length) { + return connector.get().getText(row, column, length); + } + + public void pressKey(Key key) { + connector.get().pressKey(key); + } + + public void type(int row, int column, String text) { + connector.get().type(row, column, text); + } + + private GreenScreenConnector initConnector() { + String endpointName = "endpoints.greenscreen.url"; + Credentials credentials = AuthSupport.getCredentials("greenscreen", store); + return Optional.ofNullable(store.getConfig(endpointName)) + .map(url -> new GreenScreenConnector(url, credentials.getUsername(), credentials.getPassword())) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointName + " to work with Greenscreen interface")); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/hypos/BrokerPortalEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/hypos/BrokerPortalEndpoint.java new file mode 100644 index 0000000..b42b5ea --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/hypos/BrokerPortalEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.hypos; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class BrokerPortalEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.broker-portal.url"; + + public BrokerPortalEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/hypos/HyposEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/hypos/HyposEndpoint.java new file mode 100644 index 0000000..ea34d7e --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/hypos/HyposEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.hypos; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class HyposEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.hypos.url"; + + public HyposEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/hypos/hyposdb/HyposDbEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/hypos/hyposdb/HyposDbEndpoint.java new file mode 100644 index 0000000..14975c0 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/hypos/hyposdb/HyposDbEndpoint.java @@ -0,0 +1,40 @@ +package cz.moneta.test.harness.endpoints.hypos.hyposdb; + +import cz.moneta.test.harness.connectors.database.MsSqlConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import org.jooq.Record; +import org.jooq.Result; + +import java.util.Optional; + +public class HyposDbEndpoint implements Endpoint { + + private final StoreAccessor store; + private final ThreadLocal hyposDbConnector = ThreadLocal.withInitial(this::initConnector); + private static final String endpointName = "endpoints.hyposdb.url"; + + public HyposDbEndpoint(StoreAccessor store) { + this.store = store; + } + + public Result executeSql(String sql) { + return hyposDbConnector.get().executeSql(sql); + } + + private MsSqlConnector initConnector() { + String credentialsValue = "hypos-db"; + Optional configEndpointValue = Optional.ofNullable(store.getConfig(endpointName)); + + return configEndpointValue.map(url -> { + if (AuthSupport.hasCredentials(credentialsValue, store)) { + Credentials credentials = AuthSupport.getCredentials(credentialsValue, store); + return new MsSqlConnector(url, credentials); + } + + return new MsSqlConnector(url); + }).orElseThrow(() -> new IllegalStateException("You need to configure " + endpointName + " to work with Hypos Database")); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ib/IbEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ib/IbEndpoint.java new file mode 100644 index 0000000..3a289d6 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ib/IbEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.ib; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class IbEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.ib.url"; + + public IbEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ib/NewIbEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ib/NewIbEndpoint.java new file mode 100644 index 0000000..8bdf5bf --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ib/NewIbEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.ib; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class NewIbEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER_NEW_IB = "endpoints.new.ib.url"; + + public NewIbEndpoint(StoreAccessor store) { + super(ENDPOINT_URL_IDENTIFIER_NEW_IB, By::xpath, store); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ilodsserver/IlodsServerEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ilodsserver/IlodsServerEndpoint.java new file mode 100644 index 0000000..afc9ead --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ilodsserver/IlodsServerEndpoint.java @@ -0,0 +1,209 @@ +package cz.moneta.test.harness.endpoints.ilodsserver; + +import cz.moneta.test.harness.connectors.IlodsServerConnector; +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.CommonEndpoint; +import cz.moneta.test.harness.support.mwf.TifClient; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import itSodTesting.sharedResources.objects.dataTransfer.IlodsServerAction; +import itSodTesting.sharedResources.objects.dataTransfer.IlodsServerEnvironmentList; +import itSodTesting.sharedResources.objects.dataTransfer.IlodsServerRequestType; +import itSodTesting.sharedResources.objects.dataTransfer.ObjectTransferToClient; +import itSodTesting.sharedResources.objects.dataTransfer.ObjectTransferToServer; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlApplTp; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlBusProdClass; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlSubType; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlType; +import itSodTesting.sharedResources.objects.ilods.odsDataContainers.FlxData; +import itSodTesting.sharedResources.objects.ilods.odsDataContainers.UniPtInfolimitData2; +import itSodTesting.sharedResources.objects.ilods.odsDataContainers.UniPtScData; +import itSodTesting.sharedResources.objects.ilods.odsDataContainers.UniPtSegmData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +public class IlodsServerEndpoint extends CommonEndpoint { + + private static final Logger logger = LogManager.getLogger(IlodsServerEndpoint.class); + + private IlodsServerConnector connector; + private IlodsServerEnvironmentList environment; + private StoreAccessor store; + + public IlodsServerEndpoint(StoreAccessor store) { + super(store); + this.store = store; + this.environment = IlodsServerEnvironmentList.findEnvironment(store.getConfig(HarnessConfigConstants.ENVIRONMENT_TYPE)); + this.connector = new IlodsServerConnector(environment); + } + + private ObjectTransferToClient sendRequest(ObjectTransferToServer data) { + data.setSrcSysLogId(store.getGlobal(HarnessConfigConstants.TEST_UNIQUE_ID)); + return connector.sendRequest(data); + } + + public String sendTestRequest() { + ObjectTransferToServer data = new ObjectTransferToServer(IlodsServerAction.TEST); + ObjectTransferToClient response = sendRequest(data); + return (String) response.getObject("TestString"); + } + + public String setScore(String scoreId, String rcNum, String icoNum) { + return setScore(scoreId, 999.0, 999.0, rcNum, icoNum); + } + + public String setScore(String scoreId, double scTot, double scNoBeh, String rcNum, String icoNum) { + OdsEndpoint ods = (OdsEndpoint) store.getEndpoint(OdsEndpoint.class); + if (ods.checkScoreCardId(scoreId) == false) { + throw new IllegalStateException("The set score card (" + scoreId + ") doesn't exist!"); + } + + UniPtScData scData = new UniPtScData(); + scData.setScTpCode(scoreId); + scData.setUniPtKey(ods.getUniPtKey(rcNum, icoNum)); + scData.setScTot(scTot); + scData.setScNoBeh(scNoBeh); + scData.normalizeData(environment); + + ObjectTransferToServer data = new ObjectTransferToServer(IlodsServerAction.ODS_SET_SCORE); + data.addObject("UNI_PT_SC_DATA", scData); + + ObjectTransferToClient response = sendRequest(data); + UniPtScData respUniPtScData = (UniPtScData) response.getObject("UNI_PT_SC_DATA"); + String errorCode = respUniPtScData.getErrorCode(); + logger.info("Set score result: " + (errorCode.equals("0") ? "OK" : "ERROR")); + return errorCode; + } + + public String setTurnovers(String accNum, String cif, int turnoversValue) { + return setTurnovers(accNum, cif, Collections.nCopies(12, turnoversValue).stream().mapToInt(i -> i).toArray()); + } + + public String setTurnovers(String accNum, String cif, int[] turnoversValues) { + if (turnoversValues.length != 12) { + throw new IllegalStateException("Array of turnovers doesn't have required length! Please enter values for all 12 months."); + } + + FlxData flxData = new FlxData(false); + flxData.setAccNum(accNum); + flxData.setInstPtCif(cif); + for (int i = 0; i < 12; i++) { + flxData.setTurnoverForMonth(i, turnoversValues[i]); + } + + ObjectTransferToServer data = new ObjectTransferToServer(IlodsServerAction.ODS_SET_TURNOVERS); + data.addObject("FLX_BUS_DATA", flxData); + + ObjectTransferToClient response = sendRequest(data); + FlxData respFlxData = (FlxData) response.getObject("FLX_BUS_DATA"); + String errorCode = respFlxData.getErrorCode(); + logger.info("Set turnovers result: " + (errorCode.equals("0") ? "OK" : "ERROR")); + return errorCode; + } + + public String setInfolimit(IlBusProdClass busProdClass, IlType ilType, IlSubType ilSubType, double ilAmount, IlApplTp applTpCode, String rcNum, String icoNum) { + if (busProdClass.isClip() == true) { + throw new HarnessException("Set infolimit CLIP is not implemented. Please contact Test Automation team."); + } + + OdsEndpoint ods = (OdsEndpoint) store.getEndpoint(OdsEndpoint.class); + long uniPtKey = ods.getUniPtKey(rcNum, icoNum); + + UniPtInfolimitData2 infolimitData = new UniPtInfolimitData2(); + infolimitData.setBusProdClassCode(busProdClass.getId()); + infolimitData.setInfolimitTpCode(ilType.getId()); + infolimitData.setInfolimitSubTpCode(ilSubType.getKey()); + infolimitData.setInfolimitAmt(ilAmount); + infolimitData.setApplTpCode(applTpCode.toString()); + infolimitData.setUniPtKey(uniPtKey); + + infolimitData.normalizeData(); + + ObjectTransferToServer data = new ObjectTransferToServer(IlodsServerAction.ODS_SET_INFOLIMIT); + data.addObject("UNI_PT_INFOLIMIT_DATA", infolimitData); + + ObjectTransferToClient response = sendRequest(data); + UniPtInfolimitData2 respUniPtInfolimitData = (UniPtInfolimitData2) response.getObject("UNI_PT_INFOLIMIT_DATA"); + String errorCode = respUniPtInfolimitData.getErrorCode(); + logger.info("Set infolimit result: " + (errorCode.equals("0") ? "OK" : "ERROR")); + return errorCode; + } + + public String setSegment(String segmentCode, String segmentationCode, String rcNum, String icoNum) { + OdsEndpoint ods = (OdsEndpoint) store.getEndpoint(OdsEndpoint.class); + String segmentKey = ods.checkSegmentCodeAndGetId(segmentCode, segmentationCode); + if (segmentKey == null) { + throw new IllegalStateException("The set segment (" + segmentCode + ") with segmentation (" + segmentationCode + ") doesn't exist!"); + } + + UniPtSegmData segmData = new UniPtSegmData(); + segmData.setSegmCode(segmentCode); + segmData.setSegCode(segmentationCode); + segmData.setSrcRole(segmentKey); + + segmData.setUniPtKey(ods.getUniPtKey(rcNum, icoNum)); + segmData.normalizeData(); + + ObjectTransferToServer data = new ObjectTransferToServer(IlodsServerAction.ODS_SET_SEGMENT); + data.addObject("UNI_PT_SEGM_DATA", segmData); + + ObjectTransferToClient response = sendRequest(data); + UniPtSegmData respUniPtSegmData = (UniPtSegmData) response.getObject("UNI_PT_SEGM_DATA"); + String errorCode = respUniPtSegmData.getErrorCode(); + logger.info("Set segment result: " + (errorCode.equals("0") ? "OK" : "ERROR")); + return errorCode; + } + + public Map callMWF(String name, String version, TifClient tifClient, Map properties, Set outputParamNames) { + String xmlDefinition = ""; + try { + try (InputStream xmlDefinitionFile = this.getClass() + .getClassLoader() + .getResourceAsStream("xmlMappings/" + tifClient.getTarget() + "_" + name + "_" + version + ".xml")) { + try (InputStreamReader xmlDefinitionFileReader = new InputStreamReader(xmlDefinitionFile); + BufferedReader reader = new BufferedReader(xmlDefinitionFileReader)) { + xmlDefinition = reader.lines().collect(Collectors.joining(System.lineSeparator())); + } + } + } catch (NullPointerException e) { + throw new HarnessException("XML definition for " + name + "_" + version + " is not found"); + } catch (IOException e) { + throw new HarnessException("XML definition for " + name + "_" + version + " is not readable"); + } + + ObjectTransferToServer data = new ObjectTransferToServer(IlodsServerAction.MWF); + data.addObject("PARAMS", properties); + data.addObject("OUT_PARAMS", outputParamNames); + data.addObject("TIF_CLIENT", tifClient.toString()); + data.addObject("MWF_NAME", name); + data.addObject("MWF_VERSION", version); + data.addObject("MWF_DEFINITION", xmlDefinition); + + data.setRequestType(IlodsServerRequestType.MWF); + ObjectTransferToClient response = sendRequest(data); + + return (Map) response.getObject("MQ_RESPONSE"); + } + + public static void sendEmail(String subject, String message) { + ObjectTransferToServer data = new ObjectTransferToServer(IlodsServerAction.UTILS_SEND_MAIL); + data.addObject("FROM_EMAIL", "ilods@moneta.cz"); + data.addObject("FROM_NAME", "ILODS (MONETA)"); + data.addObject("RECIPIENTS", new String[] { "vaclav.viktorin@moneta.cz" }); + data.addObject("SUBJECT", subject); + data.addObject("MESSAGE_BODY", message); + + data.setRequestType(IlodsServerRequestType.WF); + new IlodsServerConnector(IlodsServerEnvironmentList.XNA).sendRequest(data); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/jira/JiraEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/jira/JiraEndpoint.java new file mode 100644 index 0000000..80b57b4 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/jira/JiraEndpoint.java @@ -0,0 +1,45 @@ +package cz.moneta.test.harness.endpoints.jira; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.Map; + +public class JiraEndpoint implements RestEndpoint { + + private RestConnector restConnector; + + public JiraEndpoint(String url) { + this.restConnector = new SimpleRestConnector(url, "JiraRestLogger"); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public StoreAccessor getStore() { + throw new RuntimeException("Method getStore is not implemented for JiraEndpoint."); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/jira/JiraTestResult.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/jira/JiraTestResult.java new file mode 100644 index 0000000..a5b7085 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/jira/JiraTestResult.java @@ -0,0 +1,79 @@ +package cz.moneta.test.harness.endpoints.jira; + +import java.util.HashMap; + +public class JiraTestResult { + + private String projectKey; + private String testCaseKey; + private String status; + private String environment; + private String comment; + private String executedBy; + private String version; + private HashMap customFields = new HashMap<>(); + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + + public String getEnvironment() { + return environment; + } + + public void setEnvironment(String environment) { + this.environment = environment; + } + + public String getProjectKey() { + return projectKey; + } + + public void setProjectKey(String projectKey) { + this.projectKey = projectKey; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getTestCaseKey() { + return testCaseKey; + } + + public void setTestCaseKey(String testCaseKey) { + this.testCaseKey = testCaseKey; + } + + public String getExecutedBy() { + return executedBy; + } + + public void setExecutedBy(String executedBy) {this.executedBy = executedBy;} + + public String getVersion() { + return version; + } + + public void setVersion(String version) {this.version = version;} + + public HashMap getCustomFields() { + return customFields; + } + + public void setCustomFields(HashMap customFields) { + this.customFields = customFields; + } + + public void setFieldInCustomFields(String name, String value) { + customFields.put(name, value); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/jira/JiraTestResultPublisher.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/jira/JiraTestResultPublisher.java new file mode 100644 index 0000000..dabb72c --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/jira/JiraTestResultPublisher.java @@ -0,0 +1,299 @@ +package cz.moneta.test.harness.endpoints.jira; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.connectors.VaultConnector; +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import itSodTesting.sharedResources.utils.getUser.LoggedUser; +import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.glassfish.jersey.media.multipart.FormDataMultiPart; +import org.glassfish.jersey.media.multipart.MultiPart; +import org.glassfish.jersey.media.multipart.file.FileDataBodyPart; +import org.junit.jupiter.api.extension.ExtensionContext; + +import jakarta.ws.rs.WebApplicationException; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.MediaType; +import java.io.File; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.Set; + +import static com.fasterxml.jackson.databind.node.JsonNodeType.*; + +public final class JiraTestResultPublisher { + + private static final Logger LOG = LogManager.getLogger(JiraTestResultPublisher.class); + + private ExtensionContext.Store configStore; + + private JiraTestResultPublisher() { + // hide constructor + } + + public static boolean doesTestCaseExist(String testCase, ExtensionContext extensionContext) { + ExtensionContext.Store configStore = extensionContext.getStore(ExtensionContext.Namespace.create("CONFIG")); + JiraEndpoint endpoint = getJiraZephyrScaleEndpoint(configStore); + String authorizationToken = getAuthorizationToken(configStore); + + try { + String path = "testcase/" + testCase; + Integer status = RawRestRequest.jsonBuilder(endpoint) + .withPath(path) + .withHeader("Authorization", "Basic " + authorizationToken) + .get() + .getStatus(); + + if (status == 200) { + LOG.debug(String.format("Jira TestCase with id %s exists", testCase)); + return true; + } else { + LOG.warn(String.format("Jira TestCase with id %s does not exist", testCase)); + return false; + } + } catch (WebApplicationException e) { + LOG.warn(String.format("Error while looking up TestCase id %s in Jira: ", testCase), e); + return false; + } + } + + private static JiraEndpoint getJiraZephyrScaleEndpoint(ExtensionContext.Store configStore) { + return getJiraEndpoint("reports.tmfj.url", configStore); + } + + private static JiraEndpoint getJiraCoreEndpoint(ExtensionContext.Store configStore) { + return getJiraEndpoint("endpoints.jira.core", configStore); + } + + private static JiraEndpoint getJiraEndpoint(String configKey, ExtensionContext.Store configStore) { + String url = configStore.get(configKey, String.class); + if (StringUtils.isEmpty(url)) { + throw new IllegalStateException("You need to configure " + configKey + " to work with JIRA"); + } + return new JiraEndpoint(url); + } + + public static String createTestResult(String testCase, ExtensionContext extensionContext, Optional executionException) { + String testResultId; + String status = executionException.map(e -> "Fail").orElse("Pass"); + ExtensionContext.Store configStore = extensionContext.getStore(ExtensionContext.Namespace.create("CONFIG")); + JiraEndpoint endpoint = getJiraZephyrScaleEndpoint(configStore); + String authorizationToken = getAuthorizationToken(configStore); + + JiraTestResult pojoTestResult = createPojo(testCase, extensionContext, status, configStore, executionException); + String cycleKey = (String) configStore.get("reports.tmfj.test.cycle"); + //Parameter is for cases when we do not want to publish executions which are not part of a test cycle + boolean publishToTestCycleOnly = Boolean.parseBoolean(configStore.get("reports.tmfj.publishtocycleonly", String.class)); + if (belongsToCycle(extensionContext, testCase, cycleKey)) { + LOG.debug("Publishing test results for test case {} in test cycle {}.", testCase, cycleKey); + testResultId = postTestResult(authorizationToken, pojoTestResult, endpoint, cycleKey); + } else if (publishToTestCycleOnly) { + LOG.debug("Skipping test results publishing for test case {} since reports.tmfj.publishtocycleonly is set to true.", testCase); + testResultId = null; + } else { + LOG.debug("Publishing test results for test case {}.", testCase, cycleKey); + testResultId = postTestResult(authorizationToken, pojoTestResult, endpoint, null); + } + + Optional.ofNullable(extensionContext.getStore(ExtensionContext.Namespace.create("UPLOADS")).get("jira.uploads")) + .filter(s -> !testResultId.isEmpty()) + .map(s -> (Set) s) + .ifPresent(s -> postSnapshots(s, authorizationToken, endpoint, testResultId)); + return testResultId; + } + + private static boolean belongsToCycle(ExtensionContext extensionContext, String testCase, String testCycle) { + if (testCycle == null) { + return false; + } + + ExtensionContext.Store configStore = extensionContext.getStore(ExtensionContext.Namespace.create("CONFIG")); + JiraEndpoint endpoint = getJiraZephyrScaleEndpoint(configStore); + String authorizationToken = getAuthorizationToken(configStore); + + try { + String path = "testrun/" + testCycle; + RawRestRequest.Response response = RawRestRequest.jsonBuilder(endpoint) + .withPath(path) + .withHeader("Authorization", "Basic " + authorizationToken) + .get(); + + JsonNode items = response.extract("items"); + if (items.getNodeType() == ARRAY) { + for (JsonNode node : items) { + if (node.getNodeType() == OBJECT) { + if (testCase.equalsIgnoreCase(node.get("testCaseKey").asText())) { + return true; + } + } + } + } + return false; + } catch (WebApplicationException | NullPointerException | IllegalArgumentException e) { + LOG.warn(String.format("Error while looking up TestRun %s in Jira: ", testCycle), e); + return false; + } + } + + private static String getAuthorizationToken(ExtensionContext.Store configStore) { + return (String) Optional.ofNullable(getAccessToken("jira", configStore)) + .orElseGet(() -> Optional.ofNullable(configStore.get("reports.tmfj.token", String.class)) + .orElseThrow(() -> new IllegalStateException(String.format("Jira token not found either through " + + "vault nor in properties. Please define 'reports.tmfj.token' properties in order to use local configuration.")))); + } + + private static String getExecutedByUserKey(ExtensionContext extensionContext) { + //Get username only for employees. Other accounts might not be in Jira and are defaulted to jenkins.user. + String user = Optional.of(LoggedUser.getUserName()) + .filter(username -> username.matches("\\d{9}")) + //jenkins.user is Jenkins technical user with access to Jira + .orElse("jenkins.user"); + + ExtensionContext.Store configStore = extensionContext.getStore(ExtensionContext.Namespace.create("CONFIG")); + JiraEndpoint endpoint = getJiraCoreEndpoint(configStore); + String authorizationToken = getAuthorizationToken(configStore); + + try { + String path = "user"; + RawRestRequest.Response response = RawRestRequest.jsonBuilder(endpoint) + .withPath(path) + .withHeader("Authorization", "Basic " + authorizationToken) + .withParam("username", user) + .get(); + + JsonNode key = response.extract("key"); + return key.asText(); + + } catch (WebApplicationException | NullPointerException | IllegalArgumentException e) { + LOG.error(String.format("Error while getting userkey for username %s in Jira: ", user), e); + return user; + } + } + + private static JiraTestResult createPojo(String testCase, ExtensionContext extensionContext, String status, ExtensionContext.Store configStore, Optional executionException) { + JiraTestResult pojoTestResult = new JiraTestResult(); + pojoTestResult.setProjectKey(testCase.split("-")[0]); + pojoTestResult.setTestCaseKey(testCase); + pojoTestResult.setStatus(status); + pojoTestResult.setExecutedBy(getExecutedByUserKey(extensionContext)); + pojoTestResult.setVersion(configStore.getOrDefault("reports.tmfj.release.version", String.class, null)); + Optional.ofNullable(configStore.get(HarnessConfigConstants.ENVIRONMENT_TYPE)) + .map(String::valueOf) + .map(Environment::fromString) + .map(Environment::getJiraAlias) + .ifPresent(pojoTestResult::setEnvironment); + + Object commentObject = extensionContext.getStore(ExtensionContext.Namespace.GLOBAL).get("reports.tmfj.execution.comment"); + if (commentObject != null) { + pojoTestResult.setComment(String.format("Data from Test Execution:
%s", commentObject.toString().replaceAll("\n", "
"))); + } + + Object commentObjectUfoSessionId = extensionContext.getStore(ExtensionContext.Namespace.GLOBAL).get("reports.tmfj.execution.commentufosessionid"); + + executionException.map(Throwable::getMessage) + .ifPresent(errorComment -> { + StringBuilder comment = new StringBuilder(); + if (pojoTestResult.getComment() != null) { + comment.append(pojoTestResult.getComment()); + comment.append("
"); + } + comment.append("Error Details:
"); + if (commentObjectUfoSessionId != null) { + comment.append(String.format("UFO Session ID: %s
", commentObjectUfoSessionId)); + } + comment.append(errorComment); + pojoTestResult.setComment(comment.toString()); + }); + + Optional.ofNullable(configStore.get(HarnessConfigConstants.JENKINS_BUILD_URL)) + .map(String::valueOf) + .ifPresent(value -> pojoTestResult.setFieldInCustomFields("Jenkins Execution", value)); + + return pojoTestResult; + } + + private static String getAccessToken(String path, ExtensionContext.Store store) { + return Optional.ofNullable(store.get(HarnessConfigConstants.VAULT_URL_CONFIG)).map(String::valueOf) + .flatMap(u -> Optional.ofNullable(store.get(HarnessConfigConstants.VAULT_USERNAME_CONFIG)).map(String::valueOf) + .flatMap(l -> Optional.ofNullable(store.get(HarnessConfigConstants.VAULT_PASSWORD_CONFIG)).map(String::valueOf) + .map(p -> new VaultConnector(u, l, p)))) + .flatMap(v -> Optional.of("vault.path.base.common") + .map(store::get) + .flatMap(p -> v.getValue(p + "/" + path, "token")) + .map(String::valueOf)) + .orElse(null); + } + + private static void postSnapshots(Set files, String authorizationToken, JiraEndpoint je, String testResultId) { + Map headers = new HashMap<>(); + headers.put("Content-Type", "multipart/form-data"); + headers.put("Authorization", "Basic " + authorizationToken); + headers.put("X-Atlassian-Token", "no-check"); + if (!files.isEmpty()) { + MultiPart multiPart = new FormDataMultiPart(); + files.removeIf(f -> f == null || !f.endsWith(".png")); + files.forEach(f -> { + FileDataBodyPart screenshot = new FileDataBodyPart("file", new File(f)); + multiPart.bodyPart(screenshot).setMediaType(MediaType.MULTIPART_FORM_DATA_TYPE); + }); + try { + je.post("testresult/" + testResultId + "/attachments", Entity.entity(multiPart, multiPart.getMediaType()), String.class, headers, false); + } catch (WebApplicationException e) { + LOG.warn("Snapshot to JIRA could not be uploaded: ", e); + } + } + } + + private static String postTestResult(String authorizationToken, JiraTestResult tr, JiraEndpoint je, String cycleKey) { + String testResultId = null; + try { + String path = "testresult"; + if (cycleKey != null) { + path = String.format("testrun/%s/testcase/%s/", cycleKey, tr.getTestCaseKey()) + path; + } + + RawRestRequest.Response response = RawRestRequest.jsonBuilder(je) + .withPath(path) + .withHeader("Authorization", "Basic " + authorizationToken) + .withPojoPayload(tr) + .post(); + + if (response.getStatus() == 201) { + testResultId = response.extract("id").asText(); + LOG.info("Jira TestResult created id: {}", testResultId); + } else { + JsonNode errorMessages = response.extract("errorMessages"); + errorMessages.forEach(message -> LOG.warn("Jira TestResult could not be created: {}", message.asText())); + } + } catch (WebApplicationException | NullPointerException |IllegalArgumentException e) { + LOG.warn("Jira TestResult could not be created: ", e); + } + return testResultId; + } + + public static void logJiraTestResult(ExtensionContext extensionContext, Throwable throwable) { + if (Boolean.parseBoolean(extensionContext.getStore(ExtensionContext.Namespace.create("CONFIG")).get("reports.tmfj.publish", String.class))) { + if (throwable != null) { + Arrays.stream(extensionContext.getRequiredTestClass().getMethods()) + .flatMap(method -> Arrays.stream(method.getDeclaredAnnotationsByType(JiraTestCase.class))) + .map(JiraTestCase::id) + .forEach(testCaseId -> createTestResult(testCaseId, extensionContext, Optional.ofNullable(throwable))); + return; + } + + Arrays.stream(extensionContext.getRequiredTestMethod().getAnnotationsByType(JiraTestCase.class)) + .map(JiraTestCase::id) + .forEach(testCaseId -> JiraTestResultPublisher.createTestResult(testCaseId, extensionContext, extensionContext.getExecutionException())); + } + } + + public static void logJiraTestResult(ExtensionContext extensionContext) { + logJiraTestResult(extensionContext, null); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/kasanova/KasanovaEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/kasanova/KasanovaEndpoint.java new file mode 100644 index 0000000..9128599 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/kasanova/KasanovaEndpoint.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.endpoints.kasanova; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.data.Browser; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class KasanovaEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.kasanova.url"; + + public KasanovaEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::id, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/monetaapiportal/MonetaApiPortalEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/monetaapiportal/MonetaApiPortalEndpoint.java new file mode 100644 index 0000000..31564ff --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/monetaapiportal/MonetaApiPortalEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.monetaapiportal; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class MonetaApiPortalEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.moneta-api-portal.url"; + + public MonetaApiPortalEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::id, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/mvcr/MvcrEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/mvcr/MvcrEndpoint.java new file mode 100644 index 0000000..fdd195b --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/mvcr/MvcrEndpoint.java @@ -0,0 +1,48 @@ +package cz.moneta.test.harness.endpoints.mvcr; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import java.util.Map; + +public class MvcrEndpoint implements RestEndpoint { + + private RestConnector restConnector; + private StoreAccessor store; + + public MvcrEndpoint(StoreAccessor store) { + this.store = store; + String url = "https://aplikace.mvcr.cz"; + this.restConnector = new SimpleRestConnector(url, "MvcrRestLogger"); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/nasdb/NasDbEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/nasdb/NasDbEndpoint.java new file mode 100644 index 0000000..6349851 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/nasdb/NasDbEndpoint.java @@ -0,0 +1,64 @@ +package cz.moneta.test.harness.endpoints.nasdb; + +import cz.moneta.test.harness.connectors.database.OracleConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import org.jooq.Record; +import org.jooq.Result; + +import java.sql.CallableStatement; +import java.sql.SQLException; +import java.util.Optional; + +public class NasDbEndpoint implements Endpoint { + + private final ThreadLocal connector = ThreadLocal.withInitial(this::initConnector); + + private final StoreAccessor store; + + public NasDbEndpoint(StoreAccessor store) { + this.store = store; + } + + public void insertUser(String rc, String firstName, String lastName) { + connector.get().executeStatement(connection -> { + try { + CallableStatement call = connection.prepareCall("{ call nasdb_owner.insertuser(?,?,?,?) }"); + call.setString(1, rc); + call.setString(2, rc); + call.setString(3, firstName); + call.setString(4, lastName); + call.execute(); + } catch (SQLException e) { + throw new IllegalStateException( + String.format("Failed to insert new user (rc: %s, name: %s %s) into NAS DB", + rc, firstName, lastName), e); + } + }); + } + + public boolean checkPresentIdCardOnBlacklist(String idCard) { + String sql = "select * from nasdb_owner.blist_lost_id_card d where d.id_card_num = '" + idCard + "'"; + return executeSql(sql).size() > 0 ? true : false; + } + + @Override + public boolean canAccess() { + return AuthSupport.hasCredentials("nasdb", store); + } + + public Result executeSql(String sql) { + return connector.get().executeSql(sql); + } + + private OracleConnector initConnector() { + String endpointName = "endpoints.nasdb.url"; + Credentials credentials = AuthSupport.getCredentials("nasdb", store); + return Optional.ofNullable(store.getConfig(endpointName)) + .map(url -> new OracleConnector(url, credentials.getUsername(), credentials.getPassword())) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointName + " to work with" + + " NAS DB")); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/oauth2/web/Oauth2WebEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/oauth2/web/Oauth2WebEndpoint.java new file mode 100644 index 0000000..5a30995 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/oauth2/web/Oauth2WebEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.oauth2.web; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class Oauth2WebEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.oauth2.web.url"; + + public Oauth2WebEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ods/OdsEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ods/OdsEndpoint.java new file mode 100644 index 0000000..9ba278d --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ods/OdsEndpoint.java @@ -0,0 +1,83 @@ +package cz.moneta.test.harness.endpoints.ods; + +import cz.moneta.test.harness.connectors.database.OracleConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import org.jooq.Record; +import org.jooq.Result; + +import java.math.BigInteger; +import java.util.Optional; + +public class OdsEndpoint implements Endpoint { + + private final StoreAccessor store; + private final ThreadLocal connector = ThreadLocal.withInitial(this::initConnector); + + public OdsEndpoint(StoreAccessor store) { + this.store = store; + } + + public Result executeSql(String sql) { + return connector.get().executeSql(sql); + } + + @Override + public boolean canAccess() { + return AuthSupport.hasCredentials("ods", store); + } + + private OracleConnector initConnector() { + String endpointName = "endpoints.ods.url"; + Credentials credentials = AuthSupport.getCredentials("ods", store); + return Optional.ofNullable(store.getConfig(endpointName)) + .map(url -> new OracleConnector(url, credentials.getUsername(), credentials.getPassword())) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointName + " to work with ODS")); + } + + public long getUniPtKey(String rc, String ico) { + String sql = "select distinct up.uni_pt_key " + + " from ODS_L1_OWNER.inst_pt ip " + + " left join ODS_L1_OWNER.uni_pt up " + + " on ip.uni_pt_key = up.uni_pt_key " + + " where up.bus_key = 1 " + + " and up.uni_pt_key > 0 " + + " and up.del_flag = 0 "; + + if (rc != null && !rc.equals("")) { + sql += " and up.rc_num = '" + rc + "' "; + } + + if (ico != null && !ico.equals("")) { + sql += " and up.ico_num = '" + ico + "' "; + } else { + sql += " and up.pt_tp_key = 1"; + } + + Result result = executeSql(sql); + + if (result.size() > 1) { + throw new IllegalStateException("More than one uniPtKey found! (Input RC: " + rc + " ICO: " + ico + ")"); + } + if (result.size() < 1) { + throw new IllegalStateException("No uniPtKey found! (Input RC: " + rc + " ICO: " + ico + ")"); + } + + return ((BigInteger) result.getValue(0, 0)).longValue(); + } + + public boolean checkScoreCardId(String scId) { + String sql = "select * from ODS_L1_OWNER.Scg_Tp stp where stp.del_flag=0 and stp.id = '" + scId + "'"; + return executeSql(sql).size() == 1 ? true : false; + } + + public String checkSegmentCodeAndGetId(String segmentCode, String segmentationCode) { + String sql = "select segm.segm_key from ODS_L1_OWNER.seg seg join ODS_L1_OWNER.segm segm on seg.segm_key=segm.segm_key where segm.id = '" + segmentCode + "' and seg.id = '" + segmentationCode + "'"; + return executeSql(sql).stream() + .findFirst() + .map(x -> x.getValue(0).toString()) + .orElse(null); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapi/OpenApiBaseEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapi/OpenApiBaseEndpoint.java new file mode 100644 index 0000000..2069eb3 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapi/OpenApiBaseEndpoint.java @@ -0,0 +1,94 @@ +package cz.moneta.test.harness.endpoints.openapi; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; +import cz.moneta.test.harness.connectors.rest.ExtendedRestConnector; +import cz.moneta.test.harness.connectors.rest.ExtendedRestResponse; +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.Map; + +public class OpenApiBaseEndpoint implements RestEndpoint, Endpoint { + private static final ObjectMapper JACKSON = new ObjectMapper() + .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false) + .registerModules(new ParameterNamesModule(), new Jdk8Module(), new JavaTimeModule()); + + protected RestConnector restConnector; + protected StoreAccessor store; + + public OpenApiBaseEndpoint(StoreAccessor store, String key) { + this.store = store; + String url = store.getConfig(key); + if (url == null) { + throw new IllegalStateException("You need to configure " + key + " url to work with OpenAPI"); + } + this.restConnector = new ExtendedRestConnector(url, "OpenApiRestLogger"); + } + + //TODO - make jackson pick up the correct generic type rather than a linked hash map + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + Pair cblRestResponse = restConnector.get(path, properties, new GenericType() { }, headers); + JsonNode jsonNode = cblRestResponse.getRight(); + try { + return Pair.of(cblRestResponse.getLeft(), JACKSON.convertValue(jsonNode.toString(), responseType)); + } catch (IllegalArgumentException possiblyErrorResponse) { + throw new AssertionError(String.format("HTTP GET response looks different than expected: %s", cblRestResponse.getRight()), possiblyErrorResponse); + } + } + + //TODO - make jackson pick up the correct generic type rather than a linked hash map + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + Pair cblRestResponse = restConnector.post(path, request, new GenericType() { }, headers); + try { + JsonNode jsonNode = cblRestResponse.getRight(); + return Pair.of(cblRestResponse.getLeft(), JACKSON.convertValue(jsonNode.toString(), responseType)); + } catch (IllegalArgumentException possiblyErrorResponse) { + throw new AssertionError(String.format("HTTP POST response looks different than expected: %s", cblRestResponse.getRight()), possiblyErrorResponse); + } + } + + //TODO - make jackson pick up the correct generic type rather than a linked hash map + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + Pair cblRestResponse = restConnector.delete(path, properties, new GenericType() { }, headers); + JsonNode jsonNode = cblRestResponse.getRight(); + try { + return Pair.of(cblRestResponse.getLeft(), JACKSON.convertValue(jsonNode.toString(), responseType)); + } catch (IllegalArgumentException possiblyErrorResponse) { + throw new AssertionError(String.format("HTTP DELETE response looks different than expected: %s", cblRestResponse.getRight()), possiblyErrorResponse); + } + } + + //TODO - make jackson pick up the correct generic type rather than a linked hash map + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + Pair cblRestResponse = restConnector.patch(path, request, new GenericType() { }, headers); + try { + JsonNode jsonNode = cblRestResponse.getRight(); + return Pair.of(cblRestResponse.getLeft(), JACKSON.convertValue(jsonNode.toString(), responseType)); + } catch (IllegalArgumentException possiblyErrorResponse) { + throw new AssertionError(String.format("HTTP PATCH response looks different than expected: %s", cblRestResponse.getRight()), possiblyErrorResponse); + } + } + @Override + public Pair> postExtended(String path, Entity request, Class responseType, Map headers) { + return this.restConnector.postExtended(path, request, responseType, headers); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapi/OpenApiEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapi/OpenApiEndpoint.java new file mode 100644 index 0000000..509f399 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapi/OpenApiEndpoint.java @@ -0,0 +1,10 @@ +package cz.moneta.test.harness.endpoints.openapi; + +import cz.moneta.test.harness.context.StoreAccessor; + +public class OpenApiEndpoint extends OpenApiBaseEndpoint { + + public OpenApiEndpoint(StoreAccessor store) { + super(store, "endpoints.openapi.url"); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapi/OpenApiResponse.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapi/OpenApiResponse.java new file mode 100644 index 0000000..3502fbf --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapi/OpenApiResponse.java @@ -0,0 +1,30 @@ +package cz.moneta.test.harness.endpoints.openapi; + +public class OpenApiResponse { + private String status; + private S responseObject; + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public S getResponseObject() { + return responseObject; + } + + public void setResponseObject(S responseObject) { + this.responseObject = responseObject; + } + + @Override + public String toString() { + return "{" + + "status='" + status + '\'' + + ", responseObject=" + responseObject + + '}'; + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapica/OpenApiCaEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapica/OpenApiCaEndpoint.java new file mode 100644 index 0000000..ca49b5b --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/openapica/OpenApiCaEndpoint.java @@ -0,0 +1,11 @@ +package cz.moneta.test.harness.endpoints.openapica; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.openapi.OpenApiBaseEndpoint; + +public class OpenApiCaEndpoint extends OpenApiBaseEndpoint { + + public OpenApiCaEndpoint(StoreAccessor store) { + super(store, "endpoints.openapica.url"); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/payment_engine/PaymentEngineEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/payment_engine/PaymentEngineEndpoint.java new file mode 100644 index 0000000..56c103a --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/payment_engine/PaymentEngineEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.payment_engine; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class PaymentEngineEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.payment-engine.url"; + + public PaymentEngineEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/refinanso/RefinansoEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/refinanso/RefinansoEndpoint.java new file mode 100644 index 0000000..f517a21 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/refinanso/RefinansoEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.refinanso; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class RefinansoEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.refinanso.url"; + + public RefinansoEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/sales_force/SalesForceApiEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/sales_force/SalesForceApiEndpoint.java new file mode 100644 index 0000000..70bf8b9 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/sales_force/SalesForceApiEndpoint.java @@ -0,0 +1,50 @@ +package cz.moneta.test.harness.endpoints.sales_force; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import java.util.Map; +import java.util.Optional; + +public class SalesForceApiEndpoint implements RestEndpoint { + private final RestConnector restConnector; + private final StoreAccessor store; + + public SalesForceApiEndpoint(StoreAccessor store) { + this.store = store; + String endpointUrl = "endpoints.sales-force.api.url"; + this.restConnector = Optional.ofNullable(store.getConfig(endpointUrl)) + .map(url -> new SimpleRestConnector(url, "SalesForceApiRestLogger")) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointUrl + " to work with Sales Force API.")); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/sales_force/SalesForceEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/sales_force/SalesForceEndpoint.java new file mode 100644 index 0000000..c08726e --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/sales_force/SalesForceEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.sales_force; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class SalesForceEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.sales-force.url"; + + public SalesForceEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/smartauto/SmartAutoSetmanEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/smartauto/SmartAutoSetmanEndpoint.java new file mode 100644 index 0000000..fb8dc21 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/smartauto/SmartAutoSetmanEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.smartauto; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class SmartAutoSetmanEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.smart-auto-setman.url"; + + public SmartAutoSetmanEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/smartbanka/MobilePlatform.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/smartbanka/MobilePlatform.java new file mode 100644 index 0000000..03ffce0 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/smartbanka/MobilePlatform.java @@ -0,0 +1,37 @@ +package cz.moneta.test.harness.endpoints.smartbanka; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.exception.HarnessException; + +import java.util.Arrays; + +public enum MobilePlatform { + IOS("ios"), + ANDROID("android"), + IOS_SIMULATOR("ios simulator"); + + private final String mobilePlatform; + + MobilePlatform(String mobilePlatform) { + this.mobilePlatform = mobilePlatform; + } + + public String getMobilePlatform() { + return mobilePlatform; + } + + public static MobilePlatform getMobilePlatformFromConfig(StoreAccessor store, String configKey) { + return Arrays.stream(values()) + .filter(mobile -> mobile.getMobilePlatform().equalsIgnoreCase(store.getConfig(configKey))) + .findFirst() + .orElseThrow(() -> new HarnessException("You need to define " + configKey + " in config file for working with mobile devices")); + } + + public static MobilePlatform getMobilePlatformFromConfig(StoreAccessor store) { + return getMobilePlatformFromConfig(store, "mobile.platform"); + } + + public static Boolean isAndroid(StoreAccessor store) { + return getMobilePlatformFromConfig(store).equals(MobilePlatform.ANDROID); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/smartbanka/SbEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/smartbanka/SbEndpoint.java new file mode 100644 index 0000000..d65dec0 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/smartbanka/SbEndpoint.java @@ -0,0 +1,68 @@ +package cz.moneta.test.harness.endpoints.smartbanka; + +import cz.moneta.test.harness.connectors.mobile.AppiumMobileConnector; +import cz.moneta.test.harness.connectors.mobile.UnsupportedPlatformException; +import cz.moneta.test.harness.connectors.mobile.android.AndroidConnector; +import cz.moneta.test.harness.connectors.mobile.ios.IosConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MobileEndpoint; +import org.openqa.selenium.By; + +import java.util.Optional; + +import static cz.moneta.test.harness.endpoints.smartbanka.MobilePlatform.getMobilePlatformFromConfig; + +public class SbEndpoint extends MobileEndpoint { + + public SbEndpoint(StoreAccessor store) { + super(() -> prepareConnector(store)); + } + + private static AppiumMobileConnector prepareConnector(StoreAccessor store) { + MobilePlatform mobilePlatform = getMobilePlatformFromConfig(store, "mobile.platform"); + switch (mobilePlatform) { + case ANDROID: + return new AndroidConnector(By::id, store, + loadConfig(store, "appium.android.host"), + loadConfig(store, "appium.android.device"), + loadConfig(store, "appium.android.udid"), + loadConfig(store, "appium.android.package"), + loadConfig(store, "appium.android.path")); + + case IOS: + return new IosConnector( + By::id, + store, + loadConfig(store, "appium.ios.host"), + loadConfig(store, "appium.ios.device"), + loadConfig(store, "appium.ios.udid"), + loadConfig(store, "appium.ios.bundleid"), + loadConfig(store, "appium.ios.path") + ); + + case IOS_SIMULATOR: + return new IosConnector( + By::id, + store, + loadConfig(store, "appium.ios.host"), + loadConfig(store, "appium.ios.device"), + null, + loadConfig(store, "appium.ios.bundleid"), + loadConfig(store, "appium.ios.path") + ); + + default: + throw new UnsupportedPlatformException("This platform is unsupported"); + } + } + + private static String loadConfig(StoreAccessor store, String configKey) { + return Optional.ofNullable(store.getConfig(configKey)) + .orElseThrow(() -> new IllegalStateException("You need to configure " + configKey + " to work with mobile device")); + } + + public void connect() { + this.connector.get(); + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/szrmockapi/SzrMockApiEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/szrmockapi/SzrMockApiEndpoint.java new file mode 100644 index 0000000..1734357 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/szrmockapi/SzrMockApiEndpoint.java @@ -0,0 +1,55 @@ +package cz.moneta.test.harness.endpoints.szrmockapi; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import java.util.Map; +import java.util.Optional; + +/** + * SZR = Správa základních registrů - https://www.szrcr.cz/ + * Test environments verify identity against the mock server - https://confluence.moneta.cz/display/LAB8/Dokumentace+Mock+APIs + */ + +public class SzrMockApiEndpoint implements RestEndpoint { + private final RestConnector restConnector; + private final StoreAccessor store; + + public SzrMockApiEndpoint(StoreAccessor store) { + this.store = store; + String endpointName = "endpoints.szr-mock-api.url" ; + this.restConnector = Optional.ofNullable(store.getConfig(endpointName)) + .map(url->new SimpleRestConnector(url,"SzrMockApiLogger")) + .orElseThrow(()-> new IllegalStateException("You need to configure " + endpointName + " to work with SzrMockApi")); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/testautomationdb/TestAutomationDbEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/testautomationdb/TestAutomationDbEndpoint.java new file mode 100644 index 0000000..ba93b37 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/testautomationdb/TestAutomationDbEndpoint.java @@ -0,0 +1,69 @@ +package cz.moneta.test.harness.endpoints.testautomationdb; + +import cz.moneta.test.harness.connectors.database.PostgresConnector; +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.CommonEndpoint; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jooq.Record; +import org.jooq.Result; + +import java.util.Optional; + +public class TestAutomationDbEndpoint extends CommonEndpoint { + + // Logins to DB must be here because of local test runs + private static final String NAME = "cli_creator"; + private static final String PASS = "dkGkl8_7XcTJfLqm1G"; + private static final String INSERT_CREATED_CLIENT_SQL = "INSERT INTO created_clients_log (cif, birth_number, ico, environment, time_created, created_by, test_case, platform, jenkins, grid_node) " + + "VALUES ('#CLIENT_CIF', '#BIRTH_NUMBER', #ICO, '#ENVIRONMENT', '#TTME_CREATED', '#CREATED_BY', '#TEST_CASE', '#PLATFORM', #JENKINS, #GRID_NODE)"; + + private final ThreadLocal testAutomationDdConnector = ThreadLocal.withInitial(this::initConnector); + + private final StoreAccessor storeAccessor; + + private static final Logger logger = LogManager.getLogger(TestAutomationDbEndpoint.class); + + public TestAutomationDbEndpoint(StoreAccessor storeAccessor) { + super(storeAccessor); + this.storeAccessor = storeAccessor; + } + + public Result executeSql(String sqlToExecute) { + return testAutomationDdConnector.get().executeSql(sqlToExecute); + } + + public void insertCreatedClientInfo(String cif, String birthNumber, String ico, String dateTimeCreated, String bankerUsername, String platform, String gridNode) { + String sqlToExecute = INSERT_CREATED_CLIENT_SQL.replace("#CLIENT_CIF", cif) + .replace("#BIRTH_NUMBER", birthNumber) + .replace("#ICO", handlePossibleNullValue(ico)) + .replace("#ENVIRONMENT", getEnvironment().getJiraAlias()) + .replace("#TTME_CREATED", dateTimeCreated) + .replace("#CREATED_BY", bankerUsername) + .replace("#TEST_CASE", storeAccessor.getGlobal(HarnessConfigConstants.TEST_UNIQUE_ID)) + .replace("#PLATFORM", platform) + .replace("#JENKINS", getRunOnJenkinsValue()) + .replace("#GRID_NODE", handlePossibleNullValue(gridNode)); + + this.executeSql(sqlToExecute); + + logger.info("Created client data logged in Test Automation Database. Executed sql: " + sqlToExecute); + } + + private String handlePossibleNullValue(String value) { + return value == null ? "null" : "'" + value + "'"; + } + + private String getRunOnJenkinsValue() { + boolean runOnJenkins = storeAccessor.getConfig(HarnessConfigConstants.JENKINS_BUILD_URL) != null; + return Boolean.toString(runOnJenkins); + } + + private PostgresConnector initConnector() { + String endpointUrl = "endpoints.testautomationdb.url"; + return Optional.ofNullable(storeAccessor.getConfig(endpointUrl)) + .map(url -> new PostgresConnector(url, NAME, PASS)) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointUrl + " to work with Test Automation Database")); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/testautomationpage/TestAutomationPageEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/testautomationpage/TestAutomationPageEndpoint.java new file mode 100644 index 0000000..6114fd5 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/testautomationpage/TestAutomationPageEndpoint.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.endpoints.testautomationpage; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import org.openqa.selenium.By; + +public class TestAutomationPageEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.web.testautomationpage.url"; + + public TestAutomationPageEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::xpath, storeAccessor); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/udebs/UdebsEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/udebs/UdebsEndpoint.java new file mode 100644 index 0000000..ee6e594 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/udebs/UdebsEndpoint.java @@ -0,0 +1,52 @@ +package cz.moneta.test.harness.endpoints.udebs; + +import cz.moneta.test.harness.connectors.database.OracleConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import org.jooq.DSLContext; +import org.jooq.Record; +import org.jooq.Result; +import org.jooq.Routine; +import org.jooq.TableRecord; + +import java.util.Optional; +import java.util.function.Function; + +public class UdebsEndpoint implements Endpoint { + + private final ThreadLocal udebsConnector = ThreadLocal.withInitial(this::initConnector); + + private final StoreAccessor store; + + public UdebsEndpoint(StoreAccessor store) { + this.store = store; + } + + public > R executeDsl(Function query) { + return udebsConnector.get().executeDsl(query); +} + + public > R executeProcedure(R procedure) { + return udebsConnector.get().executeProcedure(procedure); + } + + public Result executeSql(String sql) { + return udebsConnector.get().executeSql(sql); + } + + @Override + public boolean canAccess() { + return AuthSupport.hasCredentials("udebs", store); + } + + private OracleConnector initConnector() { + String endpointName = "endpoints.udebs.url"; + Credentials credentials = AuthSupport.getCredentials("udebs", store); + return Optional.ofNullable(store.getConfig(endpointName)) + .map(url -> new OracleConnector(url, credentials.getUsername(), credentials.getPassword())) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointName + " to work with Udebs Database")); + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ufo/UfoEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ufo/UfoEndpoint.java new file mode 100644 index 0000000..9b2df17 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/ufo/UfoEndpoint.java @@ -0,0 +1,64 @@ +package cz.moneta.test.harness.endpoints.ufo; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.data.Browser; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.exception.FailElementDisplayedException; +import cz.moneta.test.harness.support.util.Level; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.openqa.selenium.By; + +import java.util.concurrent.TimeUnit; + +public class UfoEndpoint extends WebEndpoint { + + private static final String ENDPOINT_URL_IDENTIFIER = "endpoints.ufo.banka.url"; + private static final Browser DEFAULT_BROWSER = Browser.MS_EDGE; + private static final String XPATH_TO_FAIL = "//*[@id='ERR405_S001'] " + + "| //*[@id='ERR405_S002'] " + + "| //*[@id='ERR405_S003'] " + + "| //*[@id='ERR005_S001'] " + + "| //*[@id='ERR005_S002'] " + + "| //*[@id='ERR005_S003'] " + + "| //*[@id='ERR004_S001']"; + private static final String ERROR_DETAIL_XPATH = "//textarea[contains(@title, 'Detail chyby')]"; + private static final String SESSION_ID_XPATH = "//input[@name = 'sessionId']"; + + private static final Logger logger = LogManager.getLogger(UfoEndpoint.class); + + public UfoEndpoint(StoreAccessor storeAccessor) { + super(ENDPOINT_URL_IDENTIFIER, By::id, storeAccessor, DEFAULT_BROWSER); + setImplicitlyWait(); + } + + public UfoEndpoint(StoreAccessor storeAccessor, String token) { + super(ENDPOINT_URL_IDENTIFIER, By::id, storeAccessor, DEFAULT_BROWSER); + storeAccessor.log(Level.INFO, "UfoEndpoint with token {}", token); + setImplicitlyWait(); + } + + private void setImplicitlyWait() { + this.connector + .get() + .getDriver() + .manage() + .timeouts() + .implicitlyWait(0L, TimeUnit.MILLISECONDS); + } + + @Override + public void waitForElementsToLoad(int timeoutSeconds, Lookup lookup, Until until, String... elementsToCheck) { + try { + super.waitOrFailOnErrorXpath(timeoutSeconds, lookup, until, XPATH_TO_FAIL, elementsToCheck); + } catch (FailElementDisplayedException failElementException) { + String errorDetail = getAttribute(ERROR_DETAIL_XPATH, Lookup.XPATH, "value"); + String ufoSessionId = getAttribute(SESSION_ID_XPATH, Lookup.XPATH, "value"); + String exceptionText = "Error page displayed (UFO Session ID: " + ufoSessionId + ") with following detail: " + errorDetail; + logger.error(exceptionText); + throw new FailElementDisplayedException(exceptionText, failElementException); + } + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/wso2/MockServerEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/wso2/MockServerEndpoint.java new file mode 100644 index 0000000..c5f3bb3 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/wso2/MockServerEndpoint.java @@ -0,0 +1,51 @@ +package cz.moneta.test.harness.endpoints.wso2; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.Map; +import java.util.Optional; + +public class MockServerEndpoint implements RestEndpoint { + + private RestConnector restConnector; + private StoreAccessor store; + + public MockServerEndpoint(StoreAccessor store) { + this.store = store; + String endpointName = "endpoints.mockserver.url"; + this.restConnector = Optional.ofNullable(store.getConfig(endpointName)) + .map(url -> new SimpleRestConnector(url, "MockServerLogger")) + .orElseThrow(() -> new IllegalStateException("You need to configure " + endpointName + " to work with Mock server")); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/wso2/Wso2GatewayEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/wso2/Wso2GatewayEndpoint.java new file mode 100644 index 0000000..77d3465 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/wso2/Wso2GatewayEndpoint.java @@ -0,0 +1,104 @@ +package cz.moneta.test.harness.endpoints.wso2; + +import cz.moneta.test.harness.connectors.rest.ExtendedRestConnector; +import cz.moneta.test.harness.connectors.rest.ExtendedRestResponse; +import cz.moneta.test.harness.connectors.rest.ResponseHandler; +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.wso2.RemoteWso2Connector; +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import cz.moneta.test.harness.performance.PerformanceWrapper; +import cz.moneta.test.harness.support.auth.AuthSupport; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.client.Invocation; +import jakarta.ws.rs.core.GenericType; +import jakarta.ws.rs.core.Response; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; + +import static cz.moneta.test.harness.constants.HarnessConfigConstants.DEFAULT_REST_READ_TIMEOUT; + +public class Wso2GatewayEndpoint implements RestEndpoint { + + private RestConnector restConnector; + private StoreAccessor store; + + public Wso2GatewayEndpoint(StoreAccessor store) { + this(store, DEFAULT_REST_READ_TIMEOUT); + } + + @SuppressWarnings("unchecked") + public Wso2GatewayEndpoint(StoreAccessor store, Long readTimeout) { + this.store = store; + restConnector = Optional.ofNullable(store.getConfig("endpoints.wso2.remote")) + .map(Boolean::valueOf) + .filter(t -> t) + .map(b -> new RemoteWso2Connector(store)) + .orElseGet(() -> Optional.ofNullable(store.getConfig("endpoints.wso2.gw.url")) + .map(url -> new ExtendedRestConnector(url, "Wso2GatewayLogger", readTimeout)) + .map(c -> isPerformanceTest(store) + ? PerformanceWrapper.wrap(c, "wso2-performance-report.jtl", store, RestConnector.class) + : c) + .orElseThrow(() -> new IllegalStateException("You need to configure endpoints.wso2.gw.url to work with WSO2"))); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + // @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public void close() { + if (isPerformanceTest(store)) { + restConnector.publishReport(store); + } + } + + private static boolean isPerformanceTest(StoreAccessor store) { + return "true".equals(store.getConfig("performance.report.enable")); + } + + /** + * Return response body with response headers. + */ + public Pair> postExtended(String path, Entity request, + Class responseType, + Map headers) { + return restConnector.postExtended(path, request, responseType, headers); + } + + public Wso2GatewayEndpoint registerResponseHandler(ResponseHandler< + Pair>, + Response> responseHandler) { + restConnector.registerResponseHandler(responseHandler); + return this; + } + + public String getClientSecret(String clientKey) { + return AuthSupport.getClientSecret(clientKey, store, HarnessConfigConstants.VAULT_WSO2_KEYS_PATH); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/endpoints/xyzmo/XyzmoEndpoint.java b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/xyzmo/XyzmoEndpoint.java new file mode 100644 index 0000000..7a6936f --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/endpoints/xyzmo/XyzmoEndpoint.java @@ -0,0 +1,51 @@ +package cz.moneta.test.harness.endpoints.xyzmo; + +import cz.moneta.test.harness.connectors.rest.RestConnector; +import cz.moneta.test.harness.connectors.rest.SimpleRestConnector; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import org.apache.commons.lang3.tuple.Pair; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.GenericType; +import java.util.Map; +import java.util.Optional; + +public class XyzmoEndpoint implements RestEndpoint { + + private RestConnector restConnector; + private StoreAccessor store; + + public XyzmoEndpoint(StoreAccessor store, Integer port) { + this.store = store; + restConnector = Optional.ofNullable(store.getConfig("endpoints.xyzmo.url")) + .map(url -> url + ":" + port) + .map(url -> new SimpleRestConnector(url, "XyzmoLogger")) + .orElseThrow(() -> new IllegalStateException("You need to configure endpoints.xyzmo.url to work with Xyzmo")); + } + + @Override + public Pair get(String path, Map properties, Class responseType, Map headers) { + return restConnector.get(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair post(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.post(path, request, new GenericType<>(responseType), headers); + } + + @Override + public Pair delete(String path, Map properties, Class responseType, Map headers) { + return restConnector.delete(path, properties, new GenericType<>(responseType), headers); + } + + @Override + public Pair patch(String path, Entity request, Class responseType, Map headers, boolean rawResponse) { + return restConnector.patch(path, request, new GenericType<>(responseType), headers); + } + + @Override + public StoreAccessor getStore() { + return store; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/exception/BeforeAllHarnessException.java b/test-harness/src/main/java/cz/moneta/test/harness/exception/BeforeAllHarnessException.java new file mode 100644 index 0000000..aeb9538 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/exception/BeforeAllHarnessException.java @@ -0,0 +1,8 @@ +package cz.moneta.test.harness.exception; + +public class BeforeAllHarnessException extends RuntimeException { + + public BeforeAllHarnessException(String message) { + super(message); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/exception/ExceptionMessages.java b/test-harness/src/main/java/cz/moneta/test/harness/exception/ExceptionMessages.java new file mode 100644 index 0000000..78506d6 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/exception/ExceptionMessages.java @@ -0,0 +1,9 @@ +package cz.moneta.test.harness.exception; + +public final class ExceptionMessages { + + public static final String NOT_POSSIBLE_TO_USE_SINGLE_GONE_WAIT = "It is not possible to use @Wait until GONE without any other @Wait. It is necessary to use at least one another @Wait to be sure that page is loaded."; + + private ExceptionMessages() { + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/exception/FailElementDisplayedException.java b/test-harness/src/main/java/cz/moneta/test/harness/exception/FailElementDisplayedException.java new file mode 100644 index 0000000..0003e51 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/exception/FailElementDisplayedException.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.exception; + +public class FailElementDisplayedException extends RuntimeException { + + public FailElementDisplayedException(String message) { + super(message); + } + + public FailElementDisplayedException(String message, Throwable throwable) { + super(message, throwable); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/exception/HarnessConfigurationException.java b/test-harness/src/main/java/cz/moneta/test/harness/exception/HarnessConfigurationException.java new file mode 100644 index 0000000..5f4808f --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/exception/HarnessConfigurationException.java @@ -0,0 +1,8 @@ +package cz.moneta.test.harness.exception; + +public class HarnessConfigurationException extends RuntimeException { + + public HarnessConfigurationException(String message) { + super(message); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/exception/HarnessException.java b/test-harness/src/main/java/cz/moneta/test/harness/exception/HarnessException.java new file mode 100644 index 0000000..2c9769d --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/exception/HarnessException.java @@ -0,0 +1,16 @@ +package cz.moneta.test.harness.exception; + +public class HarnessException extends RuntimeException { + + public HarnessException(String message) { + super(message); + } + + public HarnessException(Throwable cause) { + super(cause); + } + + public HarnessException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/performance/PerformanceAware.java b/test-harness/src/main/java/cz/moneta/test/harness/performance/PerformanceAware.java new file mode 100644 index 0000000..27d2551 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/performance/PerformanceAware.java @@ -0,0 +1,17 @@ +package cz.moneta.test.harness.performance; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.util.Level; + +import java.lang.reflect.Method; + +public interface PerformanceAware { + + default void publishReport(StoreAccessor harness) { + harness.log(Level.WARN, "Performance report could not be published as the method was not run through the PerformanceWrapper"); + } + + default String getPerformanceReportKey(Object proxy, Method method, Object[] args) { + return method.getName(); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/performance/PerformanceReportEntry.java b/test-harness/src/main/java/cz/moneta/test/harness/performance/PerformanceReportEntry.java new file mode 100644 index 0000000..9f6d6f9 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/performance/PerformanceReportEntry.java @@ -0,0 +1,42 @@ +package cz.moneta.test.harness.performance; + +public class PerformanceReportEntry { + private final String key; + private final long start; + private final long end; + private final boolean successful; + private final String threadName; + + public PerformanceReportEntry(String key, long start, long end, boolean successful) { + this.key = key; + this.start = start; + this.end = end; + this.successful = successful; + this.threadName = Thread.currentThread().getName(); + } + + public String getKey() { + return key; + } + + public long getStart() { + return start; + } + + public long getEnd() { + return end; + } + + public boolean isSuccessful() { + return successful; + } + + public String asReportLine() { + return String.format("", + (end - start), + start, + successful, + key, + threadName); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/performance/PerformanceWrapper.java b/test-harness/src/main/java/cz/moneta/test/harness/performance/PerformanceWrapper.java new file mode 100644 index 0000000..7863809 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/performance/PerformanceWrapper.java @@ -0,0 +1,101 @@ +package cz.moneta.test.harness.performance; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.util.Level; +import org.apache.commons.lang.exception.ExceptionUtils; + +import java.io.IOException; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static java.nio.file.StandardOpenOption.CREATE_NEW; + +@SuppressWarnings("unchecked") +public final class PerformanceWrapper { + + private static final String REPORT_HEADER = "\n"; + private static final String REPORT_FOOTER = ""; + + private PerformanceWrapper() { + } + + public static I wrap(I wrapped, String reportPath, StoreAccessor harness, Class... interfaces) { + return (I) Proxy.newProxyInstance( + Thread.currentThread().getContextClassLoader(), + interfaces, + new PerformanceInvocationHandler(wrapped, reportPath, harness)); + } + + private static class PerformanceInvocationHandler implements InvocationHandler { + + private final PerformanceAware wrapped; + private final List performanceEntries = new CopyOnWriteArrayList<>(); + private final Path path; + + public PerformanceInvocationHandler(PerformanceAware wrapped, String reportPath, StoreAccessor harness) { + this.wrapped = wrapped; + this.path = Stream.of(reportPath, "performance-report.jtl") + .filter(Objects::nonNull) + .findFirst() + .map(Paths::get) + .map(p -> { + try { + Files.deleteIfExists(p); + } catch (IOException e) { + harness.log(Level.ERROR, "Could not delete existing performance report:\n%s", + ExceptionUtils.getFullStackTrace(e)); + return null; + } + return p; + }) + .orElseThrow(() -> new IllegalStateException("Could not create performance report file")); + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) throws InvocationTargetException, IllegalAccessException { + if ("publishReport".equals(method.getName())) { + Stream.of( + Stream.of(REPORT_HEADER), + performanceEntries.stream().map(PerformanceReportEntry::asReportLine), + Stream.of(REPORT_FOOTER)) + .flatMap(s -> s) + .collect(Collectors.collectingAndThen(Collectors.toList(), this::writeLines)); + + return null; + } else { + long start = System.currentTimeMillis(); + String reportKey = wrapped.getPerformanceReportKey(proxy, method, args); + boolean success = true; + try { + return method.invoke(wrapped, args); + } catch (Exception e) { + success = false; + throw e; + } finally { + long end = System.currentTimeMillis(); + performanceEntries.add(new PerformanceReportEntry(reportKey, start, end, success)); + } + } + } + + private Path writeLines(List lines) { + try { + return Files.write(path, lines, CREATE_NEW); + } catch (IOException e) { + throw new IllegalStateException(String.format("Could not write performance report:%n%s", + lines.stream().collect(Collectors.joining("\n")), e)); + } + } + + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/auth/AuthSupport.java b/test-harness/src/main/java/cz/moneta/test/harness/support/auth/AuthSupport.java new file mode 100644 index 0000000..5bb9456 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/auth/AuthSupport.java @@ -0,0 +1,129 @@ +package cz.moneta.test.harness.support.auth; + +import cz.moneta.test.harness.connectors.VaultConnector; +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.context.StoreAccessor; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.Optional; +import java.util.function.Supplier; +import java.util.stream.Stream; + +public final class AuthSupport { + + private static final String USERNAME_CREDENTIALS = "credentials.%s.username"; + private static final String PASSWORD_CREDENTIALS = "credentials.%s.password"; + private static final String TOKEN_CREDENTIALS = "credentials.%s.token"; + private static final String PROPERTIES_FILE_SOURCE = "properties file"; + private static final String VAULT_SOURCE = "Vault"; + + private static final Logger logger = LogManager.getLogger(AuthSupport.class); + + private AuthSupport() { + } + + public static Credentials getCredentials(String path, StoreAccessor store) { + return getCredentialsOptional(path, store) + .orElseThrow(() -> new IllegalStateException(String.format("Credentials not found either through " + + "vault nor in properties. Please define 'credentials.%1$s.username' " + + "and 'credentials.%1$s.password' properties in order to use local configuration.", path))); + } + + public static boolean hasCredentials(String path, StoreAccessor store) { + return getCredentialsOptional(path, store).isPresent(); + } + + private static Optional getCredentialsOptional(String path, StoreAccessor store) { + return Stream.>>of( + () -> getCredentialsFromProperties(store, path), + () -> getCredentialsFromVault(store, path)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst(); + } + + private static Optional getCredentialsFromProperties(StoreAccessor store, String path) { + Optional credentialsFromProperties = Optional + .ofNullable(getConfigFromProperties(USERNAME_CREDENTIALS, store, path)) + .flatMap(u -> Optional.ofNullable(getConfigFromProperties(PASSWORD_CREDENTIALS, store, path)) + .map(p -> new Credentials(u, p))); + + logUsernameAndSource(PROPERTIES_FILE_SOURCE, credentialsFromProperties); + return credentialsFromProperties; + } + + private static String getConfigFromProperties(String identifier, StoreAccessor store, String path) { + return store.getConfig(String.format(identifier, path)); + } + + private static Optional getCredentialsFromVault(StoreAccessor store, String path) { + Optional credentialsFromVault = Optional.ofNullable(store.getConfig(HarnessConfigConstants.VAULT_URL_CONFIG)) + .flatMap(u -> Optional.ofNullable(store.getConfig(HarnessConfigConstants.VAULT_USERNAME_CONFIG)) + .flatMap(l -> Optional.ofNullable(store.getConfig(HarnessConfigConstants.VAULT_PASSWORD_CONFIG)) + .map(p -> new VaultConnector(u, l, p)))) + .flatMap(v -> Optional.of("vault.path.base") + .map(store::getConfig) + .flatMap(p -> v.getUsernameAndPassword(p + "/" + path))); + + logUsernameAndSource(VAULT_SOURCE, credentialsFromVault); + return credentialsFromVault; + } + + private static void logUsernameAndSource(String usernameSource, Optional credentialsSource) { + Credentials credentials = Stream.of(credentialsSource) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElse(null); + if (credentials != null) { + logger.info("Username source: {}.", () -> usernameSource); + logger.info("Used username: {}.", credentials::getUsername); + } + } + + public static String getAccessToken(String path, StoreAccessor store) { + return Stream.>>of( + () -> getAccessTokenFromConfig(String.format(TOKEN_CREDENTIALS, path), store), + () -> getAccessTokenFromVault(path, store)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElseThrow(() -> new IllegalStateException(String.format("Token not found either through " + + "vault nor in properties. Please define '" + TOKEN_CREDENTIALS + "' properties in order to use local configuration.", path))); + } + + private static Optional getAccessTokenFromConfig(String path, StoreAccessor store) { + return Optional.ofNullable(store.getConfig(path)); + } + + private static Optional getAccessTokenFromVault(String path, StoreAccessor store) { + return Optional.ofNullable(store.getConfig(HarnessConfigConstants.VAULT_URL_CONFIG)) + .flatMap(u -> Optional.ofNullable(store.getConfig(HarnessConfigConstants.VAULT_USERNAME_CONFIG)) + .flatMap(l -> Optional.ofNullable(store.getConfig(HarnessConfigConstants.VAULT_PASSWORD_CONFIG)) + .map(p -> new VaultConnector(u, l, p)))) + .flatMap(v -> Optional.of("vault.path.base") + .map(store::getConfig) + .flatMap(p -> v.getValue(p + "/" + path, "token"))); + } + + public static String getClientSecret(String clientKey, StoreAccessor store, String keysPath) { + return Stream.of(store.getConfig("vault.password")) + .filter(pwd -> pwd != null && !pwd.isEmpty()) + .map(w -> Optional.ofNullable(store.getConfig(HarnessConfigConstants.VAULT_URL_CONFIG)) + .flatMap(u -> Optional.ofNullable(store.getConfig(HarnessConfigConstants.VAULT_USERNAME_CONFIG)) + .flatMap(l -> Optional.ofNullable(store.getConfig(HarnessConfigConstants.VAULT_PASSWORD_CONFIG)) + .map(x -> new VaultConnector(u, l, w)))) + .flatMap(v -> Optional.of(keysPath) + .map(store::getConfig) + .flatMap(p -> v.getValue(p, clientKey)) + .map(String::valueOf)) + .orElseThrow(() -> new IllegalStateException("Client secret '" + clientKey + "' could not be read from Vault"))) + .findFirst() + .orElseGet(() -> Optional.ofNullable(store.getConfig(clientKey)) + .map(String::valueOf) + .orElseThrow(() -> new IllegalStateException("Client secret '" + clientKey + "' could not be read from Vault or local config file"))); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/auth/Credentials.java b/test-harness/src/main/java/cz/moneta/test/harness/support/auth/Credentials.java new file mode 100644 index 0000000..8f8d80c --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/auth/Credentials.java @@ -0,0 +1,20 @@ +package cz.moneta.test.harness.support.auth; + +public class Credentials { + + private final String username; + private final String password; + + public Credentials(String username, String password) { + this.username = username; + this.password = password; + } + + public String getUsername() { + return username; + } + + public String getPassword() { + return password; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/auth/Key.java b/test-harness/src/main/java/cz/moneta/test/harness/support/auth/Key.java new file mode 100644 index 0000000..930ea56 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/auth/Key.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.support.auth; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.PARAMETER) +@Retention(RetentionPolicy.RUNTIME) +public @interface Key { + String value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/data/Builders.java b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Builders.java new file mode 100644 index 0000000..a9495df --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Builders.java @@ -0,0 +1,126 @@ +package cz.moneta.test.harness.support.data; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.reflect.ReflectionUtils; +import org.apache.commons.beanutils.ConvertUtils; +import org.apache.commons.lang3.StringUtils; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.function.Supplier; +import java.util.stream.Stream; + +@SuppressWarnings("unchecked") +public final class Builders { + + private Builders() { + } + + public static > B newDataBuilder(Class builder, StoreAccessor harness) { + return (B) Proxy.newProxyInstance( + Thread.currentThread().getContextClassLoader(), + new Class[]{builder}, + new DataProviderInvocationHandler(harness)); + } + + private static class DataProviderInvocationHandler implements InvocationHandler { + + private final Map values = new HashMap<>(); + private final StoreAccessor harness; + private String persistingMethod; + + public DataProviderInvocationHandler(StoreAccessor harness) { + this.harness = harness; + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) throws InvocationTargetException, IllegalAccessException { + if (StoreAccessor.class.equals(method.getDeclaringClass())) { + return method.invoke(harness, args); + } + return Stream.>>of( + () -> handlePersists(method), + () -> handleWith(proxy, method, args), + () -> handleGet(method), + () -> handleDefault(proxy, method, args), + () -> handleValue(method), + () -> handleDate(method), + () -> handleGenerate(method, args)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .map(v -> { + values.put(method.getName(), v); + return v; + }) + .orElseThrow(() -> new IllegalStateException("Could not handle method: " + + proxy.getClass().getInterfaces()[0].getSimpleName() + "#" + method.getName())); + } + + private Optional handlePersists(Method method) { + Optional.ofNullable(method.getAnnotation(Persists.class)) + .ifPresent(a -> persistingMethod = method.getName()); + //a bit hacky, but we need this method always pass-through + return Optional.empty(); + } + + private Optional handleWith(Object proxy, Method method, Object[] args) { + return Optional.of(method) + .filter(m -> m.getName().startsWith("with")) + .map(m -> { + if (persistingMethod != null) { + throw new IllegalStateException(String.format( + "Method NonClient#%s attempted to modify the entity after it had been persisted in " + + "NonClient#%s. Please do all modifications before persisting.", + method.getName(), persistingMethod)); + } + String paramName = StringUtils.uncapitalize(m.getName().replaceFirst("with", "")); + values.put(paramName, args[0]); + return proxy; + }); + } + + private Optional handleGet(Method method) { + return Optional.of(method.getName()).map(values::get); + } + + private Optional handleDefault(Object proxy, Method method, Object[] args) { + return Optional.of(method) + .filter(Method::isDefault) + .map(m -> ReflectionUtils + .invokeDefaultMethod(proxy, m, (String message) -> String.format("Error invoking method %s. Error message: %s", m.getName(), message), args)); + } + + private Optional handleValue(Method method) { + return Optional.ofNullable(method.getAnnotation(Value.class)) + .map(v -> ConvertUtils.convert(v.value(), method.getReturnType())) + .filter(v -> String.class.isAssignableFrom(method.getReturnType()) || !String.class.isInstance(v)); + } + + private Optional handleDate(Method method) { + return Optional.ofNullable(method.getAnnotation(Date.class)) + .map(d -> java.util.Date.from(Optional.of(d.year()) + .filter(y -> y == 0) + .map(y -> LocalDate.now()) + .orElseGet(() -> LocalDate.of(d.year(), d.month(), d.dayOfMonth())) + .plusDays(d.plusDays()) + .minusDays(d.minusDays()) + .atStartOfDay() + .atZone(ZoneId.systemDefault()) + .toInstant())); + } + + private Optional handleGenerate(Method method, Object[] args) { + return Optional.ofNullable(method.getAnnotation(Generate.class)) + .map(g -> harness.generate(g.value(), args)); + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/data/DataProvider.java b/test-harness/src/main/java/cz/moneta/test/harness/support/data/DataProvider.java new file mode 100644 index 0000000..eb95e7f --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/data/DataProvider.java @@ -0,0 +1,103 @@ +package cz.moneta.test.harness.support.data; + +import cz.moneta.test.harness.context.StoreAccessor; + +/** + * This is the marker interface of data builder proxies. These serve as simple dynamic sources of unique test data. + *

+ * Such data builders are usually accessed via {@code harness.data()} where the proxy is instantiated by calling + * the respective {@link Builders#newDataBuilder(Class, StoreAccessor)} method. + *

+ * An example data builder may look as follows: + *

{@code
+ * public interface AClient extends DataProvider, StoreAccessor {
+ *
+ *    @literal @Generate(FIRST_NAME)
+ *     String firstName();
+ *
+ *    @literal @Generate(LAST_NAME)
+ *     String lastName();
+ *
+ *    @literal @Generate(RC)
+ *     String birthNumber(LocalDate from, LocalDate to);
+ *
+ *    @literal @Value("Praha")
+ *     String placeOfBirth();
+ *
+ *     default IdCard idCard(LocalDate dateOfBirth) {
+ *         birthNumber(dateOfBirth, dateOfBirth);
+ *         return generate(ID_CARD, dateOfBirth);
+ *     }
+ *
+ *    @literal @Value("El123543")
+ *     String driverLicenceId();
+ *
+ *    @literal @Persists
+ *     default AClient withBesimRuleForGeneratedIco() {
+ *         new BesimTasks(this).setupIco(this);
+ *         return this;
+ *     }
+ *
+ *     default Address residencyAddress() {
+ *         return Address.builder()
+ *                 .street("Pražská")
+ *                 .descriptiveNumber("121")
+ *                 .orientationNumber("")
+ *                 .city("Kolín")
+ *                 .zip("28002")
+ *                 .country("CZ")
+ *                 .build();
+ *     }
+ *
+ *    @literal @Generate(MOBILE_PHONE_NUMBER)
+ *     String mobileNumber();
+ *
+ *    @literal @Value("nothing@nothing.com")
+ *     String email();
+ *
+ *     AClient withFirstName(String firstName);
+ *
+ *     AClient withLastName(String lastName);
+ *
+ *     AClient withBirthNumber(String birthNumber);
+ *
+ *     AClient withPlaceOfBirth(String placeOfBirth);
+ *
+ *     AClient withIdCard(IdCard idCard);
+ *
+ *     AClient withDriverLicenceId(String driverLicenceId);
+ *
+ *     AClient withResidencyAddress(Address residencyAddress);
+ *
+ *     AClient withMobileNumber(String mobileNumber);
+ *
+ *     AClient withEmail(String email);
+ * }
+ * }
+ * + * And the usage would be as follows: + *
{@code
+ * AClient client = Builders.newDataBuilder(AClient.class, harness)
+ *     // override the default email
+ *     .withEmail("something@nothing.com")
+ *     // use a specific name rather than a generated one
+ *     .withFirstName("Rudolf")
+ *
+ *  // get a generated id card object
+ *  IdCard idCard = client.idCard(LocalDate.of(2016, 1, 1));
+ *  // get the place of birth
+ *  String placeOfBirth = client.placeOfBirth();
+ *  ...
+ *
+ * }
+ * + * Please note that data is generated only once and lazily (i.e. calling the {@code idCard} method always returns + * the same instance of IdCard which, in turn, is only generated after the first call to the method) + * + * @see Generate + * @see Value + * @see Date + * @see Persists + */ +public interface DataProvider> { +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/data/Date.java b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Date.java new file mode 100644 index 0000000..11df6a3 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Date.java @@ -0,0 +1,16 @@ +package cz.moneta.test.harness.support.data; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Date { + int plusDays() default 0; + int minusDays() default 0; + int dayOfMonth() default 0; + int month() default 0; + int year() default 0; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/data/Generate.java b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Generate.java new file mode 100644 index 0000000..c8e4dc9 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Generate.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.support.data; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Generate { + GeneratorType value(); + + String[] params() default {}; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/data/Generator.java b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Generator.java new file mode 100644 index 0000000..8ed3652 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Generator.java @@ -0,0 +1,11 @@ +package cz.moneta.test.harness.support.data; + +import cz.moneta.test.harness.context.StoreAccessor; + +public interface Generator { + T generate(StoreAccessor harness, Object... params); + + default T generate(Object... params) { + return generate(null, params); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/data/GeneratorType.java b/test-harness/src/main/java/cz/moneta/test/harness/support/data/GeneratorType.java new file mode 100644 index 0000000..311f713 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/data/GeneratorType.java @@ -0,0 +1,17 @@ +package cz.moneta.test.harness.support.data; + +public enum GeneratorType { + RC, + FIRST_NAME, + LAST_NAME, + ID_CARD, + ID_CARD_CHECK_DIGIT, + PASSPORT_NUMBER, + MOBILE_PHONE_NUMBER, + FIX_LINE_PHONE_NUMBER, + ICO, + SIPO, + ACCOUNT_NUMBER, + RESIDENCY_ADDRESS, + EMPLOYER +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/data/Persists.java b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Persists.java new file mode 100644 index 0000000..d0cc155 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Persists.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.support.data; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marks the proxy as persisted as to prevent further modification of persistent data + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Persists { +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/data/Value.java b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Value.java new file mode 100644 index 0000000..f3d3519 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/data/Value.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.support.data; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Value { + String value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Builder.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Builder.java new file mode 100644 index 0000000..218984a --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Builder.java @@ -0,0 +1,8 @@ +package cz.moneta.test.harness.support.greenscreen; + +import java.util.function.Function; + +@FunctionalInterface +public interface Builder { + T then(Function shortcut); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Builders.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Builders.java new file mode 100644 index 0000000..3c8cca6 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Builders.java @@ -0,0 +1,236 @@ +package cz.moneta.test.harness.support.greenscreen; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.greenscreen.GreenScreenEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.Optional; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@SuppressWarnings("unchecked") +public final class Builders { + + private static final Logger LOG = LogManager.getLogger(Builders.class); + + private Builders() { + } + + public static > A newGreenScreenFlowBuilder( + Class flow, GreenScreenEndpoint endpoint, StoreAccessor harness) { + + A builder = (A) Proxy.newProxyInstance( + Thread.currentThread().getContextClassLoader(), + new Class[]{flow}, + getInvocationHandler(endpoint, harness)); + + processClassAnnotations(builder, endpoint, flow, harness); + + return builder; + } + + private static > void processClassAnnotations( + A builder, GreenScreenEndpoint endpoint, Class flow, StoreAccessor harness) { + + List> interfaces = getInterfaces(builder.getClass(), new ArrayList<>()); + doCheckScreenContains(endpoint, flow, interfaces.stream() + .flatMap(i -> Arrays.stream(i.getAnnotationsByType(CheckScreenContains.class))) + .toArray(CheckScreenContains[]::new)); + doStoreElementContent(endpoint, harness, interfaces.stream() + .flatMap(i -> Arrays.stream(i.getAnnotationsByType(StoreContent.class))) + .toArray(StoreContent[]::new)); + doLog(endpoint, harness, interfaces.stream() + .flatMap(i -> Arrays.stream(i.getAnnotationsByType(Log.class))) + .toArray(Log[]::new)); + } + + private static List> getInterfaces(Class clazz, List> accumulator) { + Arrays.stream(clazz.getInterfaces()).forEach(c -> { + accumulator.add(c); + getInterfaces(c, accumulator); + }); + return accumulator; + } + + private static InvocationHandler getInvocationHandler(GreenScreenEndpoint endpoint, StoreAccessor harness) { + return (proxy, method, args) -> { + if (StoreAccessor.class.equals(method.getDeclaringClass())) { + return method.invoke(harness, args); + } + return builderOperations(endpoint, harness, proxy, method, args); + }; + } + + private static Object handleReturnType(GreenScreenEndpoint endpoint, Object proxy, Method method, Object[] args, + StoreAccessor harness) { + + return Stream.>>of( + () -> handleThen(proxy, method, args), + () -> resolveScreen(endpoint, proxy, method, harness)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElse(proxy); + } + + private static Optional handleThen(Object proxy, Method method, Object[] args) { + return Arrays.stream(Builder.class.getMethods()) + .filter(m -> "then".equals(m.getName())) + .filter(method::equals) + .findFirst() + .map(m -> args[0]) + .filter(Function.class::isInstance) + .map(Function.class::cast) + .map(f -> f.apply(proxy)); + } + + private static Object builderOperations( + GreenScreenEndpoint endpoint, StoreAccessor harness, Object proxy, Method method, Object[] args) { + + doCheckScreenContains(endpoint, method, args); + doLog(endpoint, harness, method.getAnnotationsByType(Log.class)); + doStoreElementContent(endpoint, harness, method.getAnnotationsByType(StoreContent.class)); + doType(endpoint, method, args); + doKeyPress(endpoint, method); + return handleReturnType(endpoint, proxy, method, args, harness); + } + + private static void doCheckScreenContains(GreenScreenEndpoint endpoint, Method method, Object[] args) { + CheckScreenContains[] annotations = method.getAnnotationsByType(CheckScreenContains.class); + zipArgsAndExplicitValues(annotations, CheckScreenContains::text, method, args).forEach(p -> { + LOG.debug(() -> String.format("CheckScreenContains at row %s, column %s: '%s'", + p.getLeft().row(), p.getLeft().column(), p.getRight())); + String actual = endpoint.getText(p.getLeft().row(), p.getLeft().column(), p.getRight().length()); + if (!p.getRight().equals(actual)) { + throw new HarnessException(String.format( + "%s#%s: Found '%s' at row %s, column %s, but expected '%s'", + method.getDeclaringClass().getSimpleName(), method.getName(), actual, p.getLeft().row(), + p.getLeft().column(), p.getRight())); + } + }); + } + + private static void doCheckScreenContains(GreenScreenEndpoint endpoint, Class flow, CheckScreenContains[] annotations) { + if (Arrays.stream(annotations).anyMatch(a -> StringUtils.isBlank(a.text()))) { + throw new IllegalStateException("Class-level CheckScreenContains annotations must have its text specified"); + } + + Arrays.stream(annotations) + .forEach(a -> { + LOG.debug(() -> String.format("CheckScreenContains at row %s, column %s: '%s'", + a.row(), a.column(), a.text())); + String actual = endpoint.getText(a.row(), a.column(), a.text().length()); + if (!a.text().equals(actual)) { + throw new HarnessException(String.format( + "%s: Found '%s' at row %s, column %s, but expected '%s'", + flow.getSimpleName(), actual, a.row(), a.column(), a.text())); + } + }); + } + + private static void doLog(GreenScreenEndpoint endpoint, StoreAccessor harness, Log[] logs) { + Arrays.stream(logs) + .forEach(log -> Optional.ofNullable(endpoint.getText(log.row(), log.column(), log.length())) + .filter(StringUtils::isNotBlank) + .map(c -> { + harness.log(log.level(), log.template(), c); + return c; + }) + .orElseThrow(() -> new HarnessException("Screen content could not be read"))); + } + + private static void doStoreElementContent( + GreenScreenEndpoint endpoint, StoreAccessor harness, StoreContent[] secs) { + + Arrays.stream(secs) + .forEach(sec -> Optional.ofNullable(endpoint.getText(sec.row(), sec.column(), sec.length())) + .filter(StringUtils::isNotBlank) + .map(c -> { + LOG.debug(() -> String.format("StoreContent: %s", c)); + harness.store(sec.storeKey(), c); + return c; + }) + .orElseThrow(() -> new HarnessException("Screen content could not be read"))); + } + + private static void doType(GreenScreenEndpoint endpoint, Method method, Object[] args) { + Type[] annotations = method.getAnnotationsByType(Type.class); + zipArgsAndExplicitValues(annotations, Type::text, method, args).forEach(p -> { + LOG.debug(() -> String.format("Type at row %s, column %s: '%s'", p.getLeft().row(), p.getLeft() + .column(), p.getRight())); + endpoint.type(p.getLeft().row(), p.getLeft().column(), p.getRight()); + }); + } + + private static List> zipArgsAndExplicitValues( + A[] annotations, Function extractor, Method method, Object[] args) { + + if (ArrayUtils.isEmpty(annotations)) { + return Collections.emptyList(); + } + + LinkedList argsQueue = args == null + ? new LinkedList<>() + : new LinkedList<>(Arrays.asList(args)); + List> pairs = Arrays.stream(annotations) + .map(a -> Pair.of(a, Optional.of(extractor.apply(a)) + .filter(StringUtils::isNotBlank) + .orElseGet(() -> String.valueOf(argsQueue.poll())))) + .collect(Collectors.toList()); + + if (!argsQueue.isEmpty()) { + throw new IllegalStateException("The number of arguments passed to method '" + + method.getDeclaringClass().getSimpleName() + "#" + method.getName() + + "' plus explicit declarations (i.e. those via Annotation#text()) must match the annotation " + + "count!"); + } + + return pairs; + } + + private static void doKeyPress(GreenScreenEndpoint endpoint, Method method) { + Arrays.stream(method.getAnnotationsByType(KeyPress.class)) + .forEach(ks -> endpoint.pressKey(ks.value())); + } + + private static > Optional resolveScreen( + GreenScreenEndpoint endpoint, Object proxy, Method method, StoreAccessor harness) { + + return Stream.>>of( + () -> handleScreenFlowReturnType(endpoint, proxy, method, harness), + () -> Optional.of((A) proxy)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .map(Object.class::cast) + .findFirst(); + } + + private static > Optional handleScreenFlowReturnType( + GreenScreenEndpoint endpoint, Object proxy, Method method, StoreAccessor harness) { + + return Optional.of(method.getReturnType()) + .filter(rt -> !rt.isInstance(proxy)) + .filter(GreenScreenFlow.class::isAssignableFrom) + .map(screen -> { + LOG.debug(() -> String.format("Screen (return): %s", screen.getSimpleName())); + return newGreenScreenFlowBuilder((Class) screen, endpoint, harness); + }); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/CheckScreenContains.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/CheckScreenContains.java new file mode 100644 index 0000000..58dc5fa --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/CheckScreenContains.java @@ -0,0 +1,19 @@ +package cz.moneta.test.harness.support.greenscreen; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(ChecksScreenContains.class) +public @interface CheckScreenContains { + + int row() default 1; + + int column() default 1; + + String text() default ""; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/ChecksScreenContains.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/ChecksScreenContains.java new file mode 100644 index 0000000..2825dfb --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/ChecksScreenContains.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.greenscreen; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface ChecksScreenContains { + CheckScreenContains[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/GreenScreenFlow.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/GreenScreenFlow.java new file mode 100644 index 0000000..0cd79e9 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/GreenScreenFlow.java @@ -0,0 +1,49 @@ +package cz.moneta.test.harness.support.greenscreen; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.greenscreen.GreenScreenEndpoint; + +/** + * This is the marker interface of green screen flow builder proxies. + *

+ * The builders are usually accessed via {@code harness.withGreenScreen()} or similar method where the proxy + * is instantiated by calling the respective + * {@link Builders#newGreenScreenFlowBuilder(Class, GreenScreenEndpoint, StoreAccessor)} method. + *

+ * An example green screen builder may look as follows: + *

{@code
+ * @literal @CheckScreenContains(row = 2, column = 37, text = "WELCOME")
+ *  public interface WELCOME_WelcomeScreen extends GreenScreenFlow {
+ *
+ *     @literal @Type(row = 1, column = 9, text = "ARCL")
+ *     @literal @KeyPress(Key.ENTER)
+ *      ARCL00_CustomerSearchScreen openCustomerSearch();
+ *
+ *     @literal @Type(row = 1, column = 9, text = "AZXI")
+ *     @literal @KeyPress(Key.ENTER)
+ *      AZXI00_CustomerViewLocateScreen openCustomerViewLocateScreen();
+ *  }
+ * }
+ * Please note that if the return type of the method is a different GreenScreenFlow builder, a new proxy is instantiated + * based on the return type + *

+ * And the usage would be as follows: + *

{@code
+ *  harness.withGreenScreen()
+ *      .logIn()
+ *      .openCustomerSearch()
+ *      .searchByIdentificationNumber("8106179257")
+ *      .checkCustomerNumber("0008611000200026460")
+ *      .openCustomerDetail()
+ *      .checkCardAccountNumber("0008614700200000624")
+ *      ...
+ * }
+ * + * @see KeyPress + * @see Type + * @see CheckScreenContains + * @see StoreContent + * @see Log + */ +public interface GreenScreenFlow
> extends Builder { +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Key.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Key.java new file mode 100644 index 0000000..3ef8cd8 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Key.java @@ -0,0 +1,5 @@ +package cz.moneta.test.harness.support.greenscreen; + +public enum Key { + ENTER +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/KeyPress.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/KeyPress.java new file mode 100644 index 0000000..43efd69 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/KeyPress.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.greenscreen; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(KeyPresses.class) +public @interface KeyPress { + + Key value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/KeyPresses.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/KeyPresses.java new file mode 100644 index 0000000..a0f136f --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/KeyPresses.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.support.greenscreen; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface KeyPresses { + KeyPress[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Log.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Log.java new file mode 100644 index 0000000..0bbb65c --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Log.java @@ -0,0 +1,25 @@ +package cz.moneta.test.harness.support.greenscreen; + +import cz.moneta.test.harness.support.util.Level; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(Logs.class) +public @interface Log { + + Level level() default Level.INFO; + + int row() default 1; + + int column() default 1; + + int length() default 0; + + String template() default "{}"; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Logs.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Logs.java new file mode 100644 index 0000000..cb5903f --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Logs.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.greenscreen; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface Logs { + Log[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/StoreContent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/StoreContent.java new file mode 100644 index 0000000..317a19a --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/StoreContent.java @@ -0,0 +1,21 @@ +package cz.moneta.test.harness.support.greenscreen; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(StoreContents.class) +public @interface StoreContent { + + String storeKey(); + + int row() default 1; + + int column() default 1; + + int length() default 0; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/StoreContents.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/StoreContents.java new file mode 100644 index 0000000..404050a --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/StoreContents.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.greenscreen; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface StoreContents { + StoreContent[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Type.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Type.java new file mode 100644 index 0000000..591468d --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Type.java @@ -0,0 +1,19 @@ +package cz.moneta.test.harness.support.greenscreen; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(Types.class) +public @interface Type { + + int row(); + + int column(); + + String text() default ""; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Types.java b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Types.java new file mode 100644 index 0000000..78deadb --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/greenscreen/Types.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.greenscreen; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Types { + Type[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/MobileLookup.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/MobileLookup.java new file mode 100644 index 0000000..7a20369 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/MobileLookup.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.support.mobile; + +/** + * Enum for define type of element identification. XPATH, ID, IOS_NAME, TEXT, DEFAULT can be used. + */ +public enum MobileLookup { + ID, + XPATH, + IOS_NAME, + ANDROID_TEXT, + DEFAULT +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidBuilders.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidBuilders.java new file mode 100644 index 0000000..ce7a784 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidBuilders.java @@ -0,0 +1,151 @@ +package cz.moneta.test.harness.support.mobile.android; + +import cz.moneta.test.harness.endpoints.MobileEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.share.AnnotationsBuilder; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; + +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.Optional; +import java.util.stream.IntStream; + +import static cz.moneta.test.harness.support.reflect.ReflectionUtils.getInterfaces; + +public class AndroidBuilders extends AnnotationsBuilder { + + private AndroidBuilders() { + } + + private static void doAndroidClick(MobileEndpoint endpoint, Method method, Object[] args) { + Arrays.stream(method.getAnnotationsByType(AndroidClick.class)) + .filter(click -> StringUtils.isNotBlank(click.value())) + .forEach(click -> { + if (click.by().equals(MobileLookup.ANDROID_TEXT)) { + endpoint.click(click::value, MobileLookup.ANDROID_TEXT); + } else { + endpoint.click(() -> constructDynamicElement(click.value(), click.isStringDynamicXpath(), args), click.by()); + } + doAndroidWait(click.andWait(), endpoint, args); + }); + } + + private static void doAndroidWait(MobileEndpoint mobileEndpoint, Method method, Object[] args) { + Arrays.stream(method.getAnnotationsByType(AndroidWait.class)) + .forEach(w -> doAndroidWait(w, mobileEndpoint, args)); + } + + private static void doAndroidWait(AndroidWait androidWait, MobileEndpoint mobileEndpoint) { + doAndroidWait(androidWait, mobileEndpoint, null); + } + + private static void doAndroidWait(AndroidWait androidWait, MobileEndpoint mobileEndpoint, Object[] args) { + doWait(androidWait.value(), androidWait.waitSecondsForElement(), androidWait.by(), androidWait.until(), androidWait.explicitWaitSeconds(), androidWait.isStringDynamicXpath(), mobileEndpoint, args); + } + + + private static void doAndroidScroll(Method method, MobileEndpoint mobileEndpoint) { + Arrays.stream(method.getAnnotationsByType(AndroidScroll.class)) + .forEach(scroll -> { + doScroll(scroll.direction(), scroll, scroll.untilElementPresent(), scroll.by(), mobileEndpoint); + if (scroll.andClick()) { + mobileEndpoint.click(scroll::untilElementPresent, scroll.by()); + } + }); + } + + private static void doAndroidCheckElementContent(MobileEndpoint endpoint, Method method, Object[] args) { + AndroidCheckElementContent[] elementContents = method.getAnnotationsByType(AndroidCheckElementContent.class); + Arrays.stream(elementContents) + .forEach(el -> doCheckElementContent(elementContents, el.value(), el.by(), endpoint, method, args)); + + } + + private static void doAndroidType(MobileEndpoint endpoint, Method method, Object[] args) { + AndroidTypeInto[] annotations = method.getAnnotationsByType(AndroidTypeInto.class); + checkAnnotationLength(annotations, method, args); + IntStream.range(0, annotations.length) + .mapToObj(i -> Pair.of(annotations[i], String.valueOf(args[i]))) + .filter(p -> StringUtils.isNotBlank(p.getLeft().value())) + .forEach(p -> { + endpoint.type(p.getLeft()::value, p.getRight(), p.getLeft().clear(), p.getLeft().by()); + if (p.getLeft().hideKeyboardAfterType()) { + endpoint.getAndroid().hideAndroidKeyboard(); + } + doAndroidWait(p.getLeft().andWait(), endpoint, args); + }); + } + + public static Optional doAndroidGetElementContent(MobileEndpoint mobileEndpoint, Method method) { + return Arrays.stream(method.getAnnotationsByType(AndroidGetElementContent.class)) + .filter(type -> StringUtils.isNotBlank(type.value())) + .findFirst() + .map(type -> Optional.ofNullable(mobileEndpoint.getText(type.value(), type.by())) + .filter(StringUtils::isNotBlank) + .orElseThrow(() -> new HarnessException("Element '" + type.value() + "' content could not be read"))); + } + + private static void doAndroidSelect(MobileEndpoint endpoint, Method method, Object[] args) { + AndroidSelect[] annotations = method.getAnnotationsByType(AndroidSelect.class); + if (annotations.length == 0) { + return; + } + checkAnnotationLength(annotations, method, args); + String value = getSelectValue(args[0]); + + IntStream.range(0, annotations.length) + .mapToObj(i -> Pair.of(annotations[i], args[i])) + .filter(AndroidBuilders::hasSelectValue) + .forEach(p -> { + endpoint.click(() -> p.getLeft().value(), p.getLeft().by()); + endpoint.scrollToElement(p.getLeft().scrollToValue(), p.getLeft().by(), p.getLeft().value()); + endpoint.click(() -> value, MobileLookup.ANDROID_TEXT); + }); + } + + //TODO: the same with iosCheckElementPresent, move to AnnotationsBuilder + private static void doAndroidCheckElementPresent(MobileEndpoint endpoint, Method method, Object[] args) { + AndroidCheckElementPresent[] annotations = method.getAnnotationsByType(AndroidCheckElementPresent.class); + Arrays.stream(annotations) + .filter(check -> StringUtils.isNotBlank(check.value())) + .forEach(check -> { + try { + if (check.isStringDynamicXpath()) { + IntStream.range(0, args.length) + .mapToObj(i -> Pair.of(annotations[i], args[i])) + .forEach(elementPresentObjectPair -> endpoint.checkElementPresent(constructDynamicElement(elementPresentObjectPair.getLeft().value(), elementPresentObjectPair.getLeft().isStringDynamicXpath(), new Object[]{elementPresentObjectPair.getRight()}), elementPresentObjectPair.getLeft().by())); + } else { + endpoint.checkElementPresent(constructDynamicElement(check.value(), check.isStringDynamicXpath(), args), check.by()); + } + } catch (ArrayIndexOutOfBoundsException | NullPointerException e) { + throw new IllegalStateException(method.getDeclaringClass().getSimpleName() + "#" + method.getName() + + " The number of arguments passed to a AndroidCheckElementPresent-annotated method with isDynamicXpath = true parameter " + + "must match the annotation count!", e); + } + }); + } + + private static boolean hasSelectValue(Pair pair) { + return StringUtils.isNotBlank(pair.getLeft().value()) && pair.getRight() != null; + } + + public static void androidBuilderOperations(MobileEndpoint endpoint, Method method, Object proxy, Object[] args) { + doAndroidWait(endpoint, method, args); + doAndroidScroll(method, endpoint); + doAndroidClick(endpoint, method, args); + doAndroidType(endpoint, method, args); + doAndroidCheckElementContent(endpoint, method, args); + doAndroidCheckElementPresent(endpoint, method, args); + doAndroidSelect(endpoint, method, args); + doCustomAction(proxy, method, args); + } + + public static > void processClassAnnotations(A builder, MobileEndpoint endpoint) { + getInterfaces(builder.getClass()).stream() + .flatMap(i -> Arrays.stream(i.getAnnotationsByType(AndroidWait.class))) + .forEach(w -> doAndroidWait(w, endpoint)); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidCheckElementContent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidCheckElementContent.java new file mode 100644 index 0000000..d19b662 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidCheckElementContent.java @@ -0,0 +1,40 @@ +package cz.moneta.test.harness.support.mobile.android; + +import cz.moneta.test.harness.support.mobile.MobileLookup; + +import java.lang.annotation.*; + +/** + * Annotation is used for check element content. String parameter is mandatory. If Element does not contains + * defined content AssertException is thrown.
+ * Example: + *
+ *         {@literal @}AndroidCheckElementContent (SOME_VALUE)
+ *          SomePage checkSomeElementContent(String content);
+ *    
+ * {@link #by()} can be used for use XPATH, ID or DEFAULT to identify element.
+ * Example2:
+ *
+ *         {@literal @}AndroidCheckElementContent (
+ *               value = SOME_XPATH,
+ *               by = MobileLookup.XPATH,
+ *          )
+ *          SomePage checkSomeElementContent(String content);
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(AndroidCheckElementContents.class) +public @interface AndroidCheckElementContent { + /** + * Value for element identification. + */ + String value(); + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidCheckElementContents.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidCheckElementContents.java new file mode 100644 index 0000000..10ac409 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidCheckElementContents.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.mobile.android; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AndroidCheckElementContents { + AndroidCheckElementContent[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidCheckElementPresent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidCheckElementPresent.java new file mode 100644 index 0000000..8b47cd3 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidCheckElementPresent.java @@ -0,0 +1,61 @@ +package cz.moneta.test.harness.support.mobile.android; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.web.CheckElementsPresent; +import cz.moneta.test.harness.support.web.Lookup; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Checks if element is present, if not TimeoutException is thrown.
+ * Dynamic path functionality is supported. See {@link cz.moneta.test.harness.support.web.DynamicPathPart} + * for use or open @see
Confluence Best Practises page
+ * Example: + *
+ *        {@literal @}AndroidCheckElementPresent (SOME_VALUE)
+ *          SomePage someElement();
+ *    
+ * {@link #by()} can be used when there is need to use other than default lookup function.
+ * {@link #isStringDynamicXpath()} - Use to set String from method in xpath. Boolean type. The default value is: false.
+ * + * Example2: + *
+ *        {@literal @}AndroidCheckElementPresent (value = SOME_XPATH_VALUE,
+ *                                         by = Lookup.XPATH)
+ *          SomePage someElement();
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example3:
+ *
+ *         {@literal @}AndroidCheckElementPresent{
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          SomePage someElement();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AndroidCheckElementPresent { + + /** + * Value for element identification. + */ + String value(); + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. + */ + boolean isStringDynamicXpath() default false; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidClick.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidClick.java new file mode 100644 index 0000000..c50c4e8 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidClick.java @@ -0,0 +1,59 @@ +package cz.moneta.test.harness.support.mobile.android; + +import cz.moneta.test.harness.support.mobile.MobileLookup; + +import java.lang.annotation.*; + +/** + * Click annotation is used for click on element.
+ * Dynamic path functionality is supported. See {@link cz.moneta.test.harness.support.web.DynamicPathPart} + * for use or open @see Confluence Best Practises page
+ * Example: + *
+ *         {@literal @}AndroidClick (SOME_VALUE)
+ *          SomePage simpleClick();
+ *    
+ * {@link #andWait()} Used for wait to element after click.
+ * Example2: + *
+ *         {@literal @}AndroidClick{
+ *               value = SOME_VALUE,
+ *               andWait = {@literal @}AndroidWait(value = XPATH, by = MobileLookup.XPATH),
+ *          )
+ *          SomePage someClickWithWait();
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example3:
+ *
+ *         {@literal @}AndroidClick{
+ *               value = SOME_XPATH,
+ *               by = MobileLookup.XPATH,
+ *          )
+ *          SomePage clickToSomeElementByXpath();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(AndroidClicks.class) +public @interface AndroidClick { + /** + * Value for element identification. + */ + String value() default ""; + + /** + * Wait for element after click. See {@literal @}{@link AndroidWait} annotation. + */ + AndroidWait andWait() default @AndroidWait; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. + */ + boolean isStringDynamicXpath() default false; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidClicks.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidClicks.java new file mode 100644 index 0000000..7abe6ff --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidClicks.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.support.mobile.android; + +import java.lang.annotation.*; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AndroidClicks { + AndroidClick[] value(); +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidGetElementContent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidGetElementContent.java new file mode 100644 index 0000000..ad7e884 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidGetElementContent.java @@ -0,0 +1,49 @@ +package cz.moneta.test.harness.support.mobile.android; + +import cz.moneta.test.harness.support.mobile.MobileLookup; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * AndroidGetElementContent annotation is used for getting text value from element and returning it. Return type of annotated + * method has to be String.
+ * Value from html below is "Content text". + *
+ *     <div>Content text</div>
+ *    
+ * Example: + *
+ *        {@literal @}AndroidGetElementContent (SOME_VALUE)
+ *         String someElement();
+ *    
+ * HarnessException is thrown if element is NOT readable (see example below). + *
+ *      <input title="title text [CIF001_S001_E013]" id="CIF001_S001_E013">
+ *    
+ * + * {@link #by()} could be used for other then default type of element search. + * Example2:
+ *
+ *         {@literal @}AndroidGetElementContent{
+ *               value = SOME_XPATH,
+ *               by = MobileLookup.XPATH,
+ *          )
+ *          String someElement();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AndroidGetElementContent { + /** + * Value for identification of select element. + */ + String value(); + + /** + * Type of element identification which will be used for element search. See {@link MobileLookup} for exact types. + */ + MobileLookup by() default MobileLookup.DEFAULT; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidScroll.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidScroll.java new file mode 100644 index 0000000..7f1319c --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidScroll.java @@ -0,0 +1,75 @@ +package cz.moneta.test.harness.support.mobile.android; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.share.Direction; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Scroll annotation is used for scroll using direction.
+ * Example: + *
+ *         {@literal @}@AndroidScroll(direction = Direction.SOME_DIRECTION)
+ *          SomePage simpleScroll();
+ *    
+ * {@link #untilElementPresent()} Used for scroll to element.
+ * Example2: + *
+ *         {@literal @}AndroidScroll{
+ *               direction = Direction.SOME_DIRECTION,
+ *               untilElementPresent = "SOME_PATH"
+ *               )
+ *          SomePage someScrollUntilElementIsPresent();
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example3:
+ *
+ *         {@literal @}AndroidScroll{
+ *               direction = Direction.SOME_DIRECTION,
+ *               untilElementPresent = "SOME_PATH",
+ *               by = MobileLookup.XPATH,
+ *          )
+ *          SomePage someScrollUntilElementIsPresent();
+ *    
+ * {@link #by()} could be used for scroll until element is present and then click on that element. + * Example4:
+ *
+ *          {@literal @}AndroidScroll{
+ *                direction = Direction.SOME_DIRECTION,
+ *                untilElementPresent = "SOME_PATH",
+ *                by = MobileLookup.XPATH,
+ *                andClick = true
+ *            )
+ *            SomePage someScrollUntilElementAndClick();
+ *      
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AndroidScroll { + /** + * Direction for scrolling + * UP, DOWN, LEFT, RIGHT can be used + */ + Direction direction() default Direction.DEFAULT; + + /** + * Will keep scrolling until element is present. + * Value for identification of element. + */ + String untilElementPresent() default ""; + + /** + * Click on element after scroll. + */ + boolean andClick() default false; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidSelect.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidSelect.java new file mode 100644 index 0000000..9f0f341 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidSelect.java @@ -0,0 +1,64 @@ +package cz.moneta.test.harness.support.mobile.android; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.share.Direction; +import cz.moneta.test.harness.support.web.Lookup; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +/** + * Select annotation is used for pick {@link #value()} from select (list of values) by text parameter. + * String parameter is used for identify element and text parameter is used for searching by select value.
+ * String/text parameter type is mandatory. IllegalStateException is thrown if not added.
+ * This annotation does not support dynamic path construction.
+ * + * Example: + *
+ *         {@literal @}AndroidSelect (SOME_VALUE)
+ *          SomePage selectSomeValue(String text);
+ *    
+ * {@link #by()} could be used for other then default type of element search.
+ * Example2:
+ *
+ *         {@literal @}AndroidSelect {
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          SomePage selectSomeValue(String text);
+ *    
+ * {@link #scrollToValue()} set direction if you need to use scroll to text + * Example3:
+ *
+ *          value(); //this will select first option in select with identificator 'SOME_VALUE'
+ *
+ *         {@literal @}AndroidSelect {
+ *               value = SOME_VALUE,
+ *               scrollToValue = Direction.DOWN,
+ *          )
+ *          SomePage selectSomeValue(String text);
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AndroidSelect { + /** + * Value for element identification. + */ + String value(); + + /** + * Direction for scrolling + * UP, DOWN, can be used + */ + Direction scrollToValue() default Direction.DEFAULT; + + /** + * Type of element identification which will be used for searching of value. XPATH, ID, IOS_NAME, ANDROID_TEXT or DEFAULT can be used. + * + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; + +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidTypeInto.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidTypeInto.java new file mode 100644 index 0000000..7525246 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidTypeInto.java @@ -0,0 +1,76 @@ +package cz.moneta.test.harness.support.mobile.android; + +import cz.moneta.test.harness.support.mobile.MobileLookup; + +import java.lang.annotation.*; + +/** + * AndroidTypeInto annotation is used for write some value to element.
+ * This annotation does not support dynamic path construction.
+ * Example: + *
+ *        {@literal @}AndroidTypeInto (SOME_VALUE)
+ *         SomePage fillElement(String text);
+ *    
+ * Element can be cleared before write using {@link #clear()}.
+ * {@link #hideKeyboardAfterType()} is used for hide mobile default keyboard after fill the text, + * default is true, use false if you don't need to hide a keyboard.
+ * Example2: + *
+ *           {@literal @}AndroidTypeInto{
+ *             value = SOME_VALUE,
+ *             hideKeyboardAfterType = false
+ *           )
+ *           SomePage fillElement(String text);
+ *  
+ * {@link #andWait()} is used for wait to other element after fill.
+ * Example3: + *
+ *          {@literal @}AndroidTypeInto{
+ *              value = SOME_VALUE,
+ *              clear = true,
+ *              andWait = @Wait(forXpath = "xpath of element to wait", waitSecondsForElement = 50),
+ *           )
+ *           SomePage fillElement(String text);
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example4:
+ *
+ *         {@literal @}AndroidTypeInto{
+ *               value = SOME_XPATH,
+ *               by = MobileLookup.XPATH,
+ *          )
+ *          SomePage fillElement(String text);
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(AndroidTypeIntos.class) +public @interface AndroidTypeInto { + /** + * Value for identification of element. XPATH or ID of element can be used. + */ + String value(); + + /** + * Set true if want to clear element before write. + */ + boolean clear() default false; + + /** + * Set false if you don't want to hide a mobile keyboard after the type action. + */ + boolean hideKeyboardAfterType() default true; + + /** + * Wait for element show after typing. Use {@literal @}{@link AndroidWait} annotation. Tool is not waiting for any element by default. + */ + AndroidWait andWait() default @AndroidWait; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidTypeIntos.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidTypeIntos.java new file mode 100644 index 0000000..0cfd5b7 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidTypeIntos.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.mobile.android; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface AndroidTypeIntos { + AndroidTypeInto[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidWait.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidWait.java new file mode 100644 index 0000000..9586e28 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidWait.java @@ -0,0 +1,91 @@ +package cz.moneta.test.harness.support.mobile.android; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.web.Until; + +import java.lang.annotation.*; + +/** + * Wait annotation is used for wait for some element or explicit wait.
+ * Dynamic path functionality is supported. See {@link cz.moneta.test.harness.support.web.DynamicPathPart} + * for use or open @see Confluence Best Practises page
+ * Wait for element example: + *
+ *         {@literal @}AndroidWait (SOME_VALUE)
+ *          SomePage waitForElement();
+ *    
+ * Explicit wait example: + *
+ *         {@literal @}AndroidWait (explicitWaitSeconds = 10)
+ *          SomePage waitTenSeconds();
+ *    
+ * Params:
+ * {@link #value()} - Value for element identification. More values can be used.
+ * {@link #waitSecondsForElement()} - Wait timeout. Default value is: 20
+ * {@link #by()} - could be used for other then default type of element search.
+ * {@link #until()} - wait type. Default value is: {@link Until}.PRESENT_IN_DOM.
+ * {@link #isStringDynamicXpath()} - Use to set String from method in xpath. Boolean type. The default value is: false.
+ * Example 3: + *
+ *         {@literal @}AndroidWait (
+ *                           value = SOME_CLASSNAME,
+ *                           waitSecondsForElement = 30,
+ *                           by = MobileLookup.CLASSNAME,
+ *                           until = Until.GONE)
+ *          SomePage waitForElementGone();
+ *    
+ * + * IMPORTANT: For @AndroidWait until GONE used in flows (WebFlow) is necessary to have another @AndroidWait for element to identify + * displayed page - if wrong page still loaded, @AndroidWait until GONE is validate to this page not the expected one. In case this rule + * is not followed, test execution throws HarnessException. + *
+ *
+ * NOTE: In case you need for eg. both id and xpath, you need express id as xpath and use {@link MobileLookup}.XPATH
+ * Example 4: + *
+ *          String XPATH = "//div[@attr1='attribute']";
+ *          String ID_AS_XPATH = "//div[@id='id']";
+ *
+ *         {@literal @}AndroidWait (
+ *              value = {XPATH, ID_AS_XPATH},
+ *              by = MobileLookup.XPATH
+ *              )
+ *          SomePage waitForElementGone();
+ *    
+ */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface AndroidWait{ + + /** + * Value for identification of element. + */ + String[] value() default {}; + + /** + * Maximum waiting time (timeout) for element + */ + int waitSecondsForElement() default 20; + + /** + * Tool will wait for defined seconds. + */ + int explicitWaitSeconds() default 0; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; + + /** + * Defines what type of wait condition will be used. + * @see Until + */ + Until until() default Until.PRESENT_IN_DOM; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. + */ + boolean isStringDynamicXpath() default false; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidWaits.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidWaits.java new file mode 100644 index 0000000..3be8be4 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/android/AndroidWaits.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.mobile.android; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface AndroidWaits { + AndroidWait[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosBuilders.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosBuilders.java new file mode 100644 index 0000000..eb1671b --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosBuilders.java @@ -0,0 +1,178 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import cz.moneta.test.harness.endpoints.MobileEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.share.AnnotationsBuilder; +import cz.moneta.test.harness.support.mobile.share.Direction; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; + +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.Optional; +import java.util.stream.IntStream; +import java.util.stream.Stream; + +import static cz.moneta.test.harness.support.reflect.ReflectionUtils.getInterfaces; + +public class IosBuilders extends AnnotationsBuilder { + + private IosBuilders() { + } + + private static void doIosWait(MobileEndpoint mobileEndpoint, Method method, Object[] args) { + Arrays.stream(method.getAnnotationsByType(IosWait.class)) + .forEach(w -> doIosWait(w, mobileEndpoint, args)); + } + + private static void doIosWait(IosWait iosWait, MobileEndpoint mobileEndpoint) { + doIosWait(iosWait, mobileEndpoint, null); + } + + private static void doIosWait(IosWait iosWait, MobileEndpoint mobileEndpoint, Object[] args) { + doWait(iosWait.value(), iosWait.waitSecondsForElement(), iosWait.by(), iosWait.until(), iosWait.explicitWaitSeconds(), iosWait.isStringDynamicXpath(), mobileEndpoint, args); + } + + private static void doIosClick(MobileEndpoint endpoint, Method method, Object[] args) { + Arrays.stream(method.getAnnotationsByType(IosClick.class)) + .filter(click -> StringUtils.isNotBlank(click.value())) + .forEach(click -> { + endpoint.click(() -> constructDynamicElement(click.value(), click.isStringDynamicXpath(), args), click.by()); + doIosWait(click.andWait(), endpoint, args); + }); + } + + private static void doIosScroll(Method method, MobileEndpoint mobileEndpoint) { + Arrays.stream(method.getAnnotationsByType(IosScroll.class)) + .forEach(scroll -> { + doScroll(scroll.direction(), scroll, scroll.untilElementPresent(), scroll.by(), mobileEndpoint); + if (scroll.andClick()) { + mobileEndpoint.click(scroll::untilElementPresent, scroll.by()); + } + }); + + } + + private static void doIosCheckElementContent(MobileEndpoint endpoint, Method method, Object[] args) { + IosCheckElementContent[] elementContents = method.getAnnotationsByType(IosCheckElementContent.class); + Arrays.stream(elementContents) + .forEach(el -> doCheckElementContent(elementContents, el.value(), el.by(), endpoint, method, args)); + } + + private static void doIosType(MobileEndpoint endpoint, Method method, Object[] args) { + IosTypeInto[] annotations = method.getAnnotationsByType(IosTypeInto.class); + checkAnnotationLength(annotations, method, args); + IntStream.range(0, annotations.length) + .mapToObj(i -> Pair.of(annotations[i], String.valueOf(args[i]))) + .filter(p -> StringUtils.isNotBlank(p.getLeft().value())) + .forEach(p -> { + endpoint.type(p.getLeft()::value, p.getRight(), p.getLeft().clear(), p.getLeft().by()); + if (p.getLeft().hideKeyboardAfterType()) { + endpoint.getIos().hideIosKeyboard(p.getLeft().hideButton()); + } + doIosWait(p.getLeft().andWait(), endpoint, args); + }); + } + + public static Optional doIosGetElementContent(MobileEndpoint mobileEndpoint, Method method) { + return Arrays.stream(method.getAnnotationsByType(IosGetElementContent.class)) + .filter(type -> StringUtils.isNotBlank(type.value())) + .findFirst() + .map(type -> Optional.ofNullable(mobileEndpoint.getText(type.value(), type.by())) + .filter(StringUtils::isNotBlank) + .orElseThrow(() -> new HarnessException("Element '" + type.value() + "' content could not be read"))); + } + + private static void doIosSelect(MobileEndpoint endpoint, Method method, Object... args) { + IosSelect[] annotations = method.getAnnotationsByType(IosSelect.class); + if (annotations.length == 0) { + return; + } + checkAnnotationLength(annotations, method, args); + String value = getSelectValue(args[0]); + + IntStream.range(0, annotations.length) + .mapToObj(i -> Pair.of(annotations[i], args[i])) + .filter(IosBuilders::hasSelectValue) + .forEach(p -> { + endpoint.click(() -> p.getLeft().value(), p.getLeft().by()); + iosScroll(endpoint, p.getLeft(), value); + endpoint.click(() -> value, MobileLookup.IOS_NAME); + }); + } + + //TODO: the same with androidCheckElementPresent, move to AnnotationsBuilder + private static void doIosCheckElementPresent(MobileEndpoint endpoint, Method method, Object[] args) { + IosCheckElementPresent[] annotations = method.getAnnotationsByType(IosCheckElementPresent.class); + Arrays.stream(annotations) + .filter(check -> StringUtils.isNotBlank(check.value())) + .forEach(check -> { + try { + if (check.isStringDynamicXpath()) { + IntStream.range(0, args.length) + .mapToObj(i -> Pair.of(annotations[i], args[i])) + .forEach(elementPresentObjectPair -> endpoint.checkElementPresent(constructDynamicElement(elementPresentObjectPair.getLeft().value(), elementPresentObjectPair.getLeft().isStringDynamicXpath(), new Object[]{elementPresentObjectPair.getRight()}), elementPresentObjectPair.getLeft().by())); + } else { + endpoint.checkElementPresent(constructDynamicElement(check.value(), check.isStringDynamicXpath(), args), check.by()); + } + } catch (ArrayIndexOutOfBoundsException | NullPointerException e) { + throw new IllegalStateException(method.getDeclaringClass().getSimpleName() + "#" + method.getName() + + " The number of arguments passed to a IosCheckElementPresent-annotated method with isDynamicXpath = true parameter " + + "must match the annotation count!", e); + } + }); + } + + private static void iosScroll(MobileEndpoint endpoint, IosSelect iosSelect, String value) { + Stream.>of( + Optional.of(iosSelect.scrollToValue()) + .filter(Direction.DOWN::equals) + .map(direction -> () -> scrollDownWithJS(endpoint, iosSelect, value)), + Optional.of(iosSelect.scrollToValue()) + .filter(Direction.UP::equals) + .map(direction -> () -> scrollUpWithJS(endpoint, iosSelect, value))) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .ifPresent(Runnable::run); + } + + private static void scrollDownWithJS(MobileEndpoint endpoint, IosSelect iosSelect, String value) { + if (iosSelect.jsScroll()) { + endpoint.getIos().executeScrollScript(value, "up"); + } else { + endpoint.getIos().scrollDownUntil(value, MobileLookup.IOS_NAME); + } + } + + private static void scrollUpWithJS(MobileEndpoint endpoint, IosSelect iosSelect, String value) { + if (iosSelect.jsScroll()) { + endpoint.getIos().executeScrollScript(value, "down"); + } else { + endpoint.getIos().scrollUpUntil(value, MobileLookup.IOS_NAME); + } + } + + private static boolean hasSelectValue(Pair pair) { + return StringUtils.isNotBlank(pair.getLeft().value()) && pair.getRight() != null; + } + + public static void iosBuilderOperations(MobileEndpoint endpoint, Object proxy, Method method, Object[] args) { + doIosWait(endpoint, method, args); + doIosScroll(method, endpoint); + doIosClick(endpoint, method, args); + doIosType(endpoint, method, args); + doIosCheckElementContent(endpoint, method, args); + doIosCheckElementPresent(endpoint, method, args); + doIosSelect(endpoint, method, args); + doCustomAction(proxy, method, args); + } + + public static > void processClassAnnotations(A builder, MobileEndpoint endpoint) { + getInterfaces(builder.getClass()).stream() + .flatMap(i -> Arrays.stream(i.getAnnotationsByType(IosWait.class))) + .forEach(w -> doIosWait(w, endpoint)); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosCheckElementContent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosCheckElementContent.java new file mode 100644 index 0000000..36992e4 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosCheckElementContent.java @@ -0,0 +1,41 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.web.CheckElementContents; + +import java.lang.annotation.*; + +/** + * Annotation is used for check element content. String parameter is mandatory. If Element does not contains + * defined content AssertException is thrown.
+ * Example: + *
+ *         {@literal @}IosCheckElementContent (SOME_VALUE)
+ *          SomePage checkSomeElementContent(String content);
+ *    
+ * {@link #by()} can be used for use XPATH, ID or DEFAULT to identify element.
+ * Example2:
+ *
+ *         {@literal @}IosCheckElementContent (
+ *               value = SOME_XPATH,
+ *               by = MobileLookup.XPATH,
+ *          )
+ *          SomePage checkSomeElementContent(String content);
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(IosCheckElementContents.class) +public @interface IosCheckElementContent { + /** + * Value for element identification. + */ + String value(); + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosCheckElementContents.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosCheckElementContents.java new file mode 100644 index 0000000..9a05783 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosCheckElementContents.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import cz.moneta.test.harness.support.web.CheckElementContents; + +import java.lang.annotation.*; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface IosCheckElementContents { + IosCheckElementContent[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosCheckElementPresent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosCheckElementPresent.java new file mode 100644 index 0000000..c7a8c2e --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosCheckElementPresent.java @@ -0,0 +1,58 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import cz.moneta.test.harness.support.mobile.MobileLookup; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Checks if element is present, if not TimeoutException is thrown.
+ * Dynamic path functionality is supported. See {@link cz.moneta.test.harness.support.web.DynamicPathPart} + * for use or open @see
Confluence Best Practises page
+ * Example: + *
+ *        {@literal @}IosCheckElementPresent (SOME_VALUE)
+ *          SomePage someElement();
+ *    
+ * {@link #by()} can be used when there is need to use other than default lookup function.
+ * {@link #isStringDynamicXpath()} - Use to set String from method in xpath. Boolean type. The default value is: false.
+ * + * Example2: + *
+ *        {@literal @}IosCheckElementPresent (value = SOME_XPATH_VALUE,
+ *                                         by = Lookup.XPATH)
+ *          SomePage someElement();
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example3:
+ *
+ *         {@literal @}IosCheckElementPresent{
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          SomePage someElement();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface IosCheckElementPresent { + + /** + * Value for element identification. + */ + String value(); + + /** + * Type of element identification which will be used for element search. XPATH, IOS_NAME, ID or DEFAULT can be used. + * + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. + */ + boolean isStringDynamicXpath() default false; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosClick.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosClick.java new file mode 100644 index 0000000..cc98776 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosClick.java @@ -0,0 +1,59 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import cz.moneta.test.harness.support.mobile.MobileLookup; + +import java.lang.annotation.*; + +/** + * IosClick annotation is used for click on element.
+ * Dynamic path functionality is supported. See {@link cz.moneta.test.harness.support.web.DynamicPathPart} + * for use or open @see Confluence Best Practises page
+ * Example: + *
+ *         {@literal @}IosClick (SOME_VALUE)
+ *          SomePage simpleClick();
+ *    
+ * {@link #andWait()} Used for wait to element after click.
+ * Example2: + *
+ *         {@literal @}IosClick{
+ *               value = SOME_VALUE,
+ *               andWait = {@literal @}IosWait(value = XPATH, by = MobileLookup.XPATH),
+ *          )
+ *          SomePage someClickWithWaitAndJSClick();
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example3:
+ *
+ *         {@literal @}IosClick{
+ *               value = SOME_XPATH,
+ *               by = MobileLookup.XPATH,
+ *          )
+ *          SomePage clickToSomeElementByXpath();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(IosClicks.class) +public @interface IosClick { + /** + * Value for element identification. + */ + String value() default ""; + + /** + * Wait for element after click. See {@literal @}{@link IosWait} annotation. + */ + IosWait andWait() default @IosWait; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. + */ + boolean isStringDynamicXpath() default false; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosClicks.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosClicks.java new file mode 100644 index 0000000..5c04807 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosClicks.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface IosClicks { + IosClick[] value(); +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosGetElementContent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosGetElementContent.java new file mode 100644 index 0000000..2a200ba --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosGetElementContent.java @@ -0,0 +1,47 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import cz.moneta.test.harness.support.mobile.MobileLookup; + +import java.lang.annotation.*; + +/** + * IosGetElementContent annotation is used for getting text value from element and returning it. Return type of annotated + * method has to be String.
+ * Value from html below is "Content text". + *
+ *     <div>Content text</div>
+ *    
+ * Example: + *
+ *        {@literal @}IosGetElementContent (SOME_VALUE)
+ *         String someElement();
+ *    
+ * HarnessException is thrown if element is NOT readable (see example below). + *
+ *      <input title="title text [CIF001_S001_E013]" id="CIF001_S001_E013">
+ *    
+ *

+ * {@link #by()} could be used for other then default type of element search. + * Example2:
+ *

+ *         {@literal @}IosGetElementContent{
+ *               value = SOME_XPATH,
+ *               by = MobileLookup.XPATH,
+ *          )
+ *          String someElement();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface IosGetElementContent { + /** + * Value for identification of select element. + */ + String value(); + + /** + * Type of element identification which will be used for element search. See {@link MobileLookup} for exact types. + */ + MobileLookup by() default MobileLookup.DEFAULT; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosScroll.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosScroll.java new file mode 100644 index 0000000..bdba698 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosScroll.java @@ -0,0 +1,75 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.share.Direction; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Scroll annotation is used for scroll using direction.
+ * Example: + *
+ *         {@literal @}@IosScroll(direction = Direction.SOME_DIRECTION)
+ *          SomePage simpleScroll();
+ *    
+ * {@link #untilElementPresent()} Used for scroll to element.
+ * Example2: + *
+ *         {@literal @}IosScroll{
+ *               direction = Direction.SOME_DIRECTION,
+ *               untilElementPresent = "SOME_PATH"
+ *               )
+ *          SomePage someScrollUntilElementIsPresent();
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example3:
+ *
+ *         {@literal @}IosScroll{
+ *               direction = Direction.SOME_DIRECTION,
+ *               untilElementPresent = "SOME_PATH",
+ *               by = MobileLookup.XPATH,
+ *          )
+ *          SomePage someScrollUntilElementIsPresent();
+ *    
+ * {@link #andClick()} could be used for scroll until element is present and then click on that element. + * Example4:
+ *
+ *           {@literal @}IosScroll{
+ *                direction = Direction.SOME_DIRECTION,
+ *                untilElementPresent = "SOME_PATH",
+ *                by = MobileLookup.XPATH,
+ *                andClick = true
+ *           )
+ *           SomePage someScrollUntilElementAndClick();
+ *     
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface IosScroll { + /** + * Direction for scrolling + * UP, DOWN, LEFT, RIGHT can be used + */ + Direction direction(); + + /** + * Will keep scrolling until element is present. + * Value for identification of element. + */ + String untilElementPresent() default ""; + + /** + * Click on element after scroll. See {@literal @}{@link IosClick} annotation. + */ + boolean andClick() default false; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosSelect.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosSelect.java new file mode 100644 index 0000000..55d5fbd --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosSelect.java @@ -0,0 +1,81 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.share.Direction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Select annotation is used for pick {@link #value()} from select (list of values) by name parameter. + * String parameter is used for identify element and name parameter is used for searching by select value.
+ * String/name parameter type is mandatory. IllegalStateException is thrown if not added.
+ * This annotation does not support dynamic path construction.
+ * + * Example: + *
+ *         {@literal @}IosSelect (SOME_VALUE)
+ *          SomePage selectSomeValue(String name);
+ *    
+ * {@link #by()} could be used for other then default type of element search.
+ * Example2:
+ *
+ *         {@literal @}IosSelect {
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          SomePage selectSomeValue(String name);
+ *    
+ * {@link #scrollToValue()} set direction if you need to use scroll to name + * Example3:
+ *
+ *          value(); //this will select first option in select with identificator 'SOME_VALUE'
+ *
+ *         {@literal @}IosSelect {
+ *               value = SOME_VALUE,
+ *               scrollToValue = Direction.DOWN,
+ *          )
+ *          SomePage selectSomeValue(String name);
+ *    
+ * {@link #jsScroll()} set true if you need to execute javaScript scroll + * Example3:
+ *
+ *           {@literal @}IosSelect {
+ *             value = SOME_VALUE,
+ *             scrollToValue = Direction.DOWN,
+ *             jsScroll = true
+ *          )
+ *         SomePage selectSomeValue(String name);
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface IosSelect { + /** + * Value for element identification. + */ + String value(); + + /** + * Direction for scrolling + * UP, DOWN, can be used + */ + Direction scrollToValue() default Direction.DEFAULT; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; + + /** + * If set true javascript jsScroll will be done. + */ + boolean jsScroll() default false; + +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosTypeInto.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosTypeInto.java new file mode 100644 index 0000000..c7cf6c1 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosTypeInto.java @@ -0,0 +1,84 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import cz.moneta.test.harness.connectors.mobile.ios.HideIosKeyboardButton; +import cz.moneta.test.harness.support.mobile.MobileLookup; + +import java.lang.annotation.*; + +/** + * AndroidTypeInto annotation is used for write some value to element.
+ * This annotation does not support dynamic path construction.
+ * Example: + *
+ *        {@literal @}IosTypeInto (SOME_VALUE)
+ *         SomePage fillElement(String text);
+ *    
+ * Element can be cleared before write using {@link #clear()}.
+ * {@link #hideKeyboardAfterType()} is used for hide mobile default keyboard after fill the text, + * default is true, use false if you don't need to hide a keyboard.
+ * Example2: + *
+ *           {@literal @}IosTypeInto{
+ *             value = SOME_VALUE,
+ *             hideKeyboardAfterType = false
+ *           )
+ *           SomePage fillElement(String text);
+ *  
+ * {@link #andWait()} is used for wait to other element after fill.
+ * Example3: + *
+ *          {@literal @}IosTypeInto{
+ *              value = SOME_VALUE,
+ *              clear = true,
+ *              andWait = @Wait(forXpath = "xpath of element to wait", waitSecondsForElement = 50),
+ *           )
+ *           SomePage fillElement(String text);
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example4:
+ *
+ *         {@literal @}IosTypeInto{
+ *               value = SOME_XPATH,
+ *               by = MobileLookup.XPATH,
+ *          )
+ *          SomePage fillElement(String text);
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(IosTypeIntos.class) +public @interface IosTypeInto { + /** + * Value for identification of element. XPATH or ID of element can be used. + */ + String value(); + + /** + * Set true if want to clear element before write. + */ + boolean clear() default false; + + /** + * Set false if you don't want to hide a mobile keyboard after the type action. + */ + boolean hideKeyboardAfterType() default true; + + /** + * Type of element identification which will be used for hide ios keyboard. DONE, RETURN, GO, ENTER can be used. + * + * @see HideIosKeyboardButton + */ + HideIosKeyboardButton hideButton() default HideIosKeyboardButton.DONE; + + /** + * Wait for element show after typing. Use {@literal @}{@link Wait} annotation. Tool is not waiting for any element by default. + */ + IosWait andWait() default @IosWait; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosTypeIntos.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosTypeIntos.java new file mode 100644 index 0000000..ce06d80 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosTypeIntos.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface IosTypeIntos { + IosTypeInto[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosWait.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosWait.java new file mode 100644 index 0000000..7972593 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosWait.java @@ -0,0 +1,91 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.web.Until; + +import java.lang.annotation.*; + +/** + * Wait annotation is used for wait for some element or explicit wait.
+ * Dynamic path functionality is supported. See {@link cz.moneta.test.harness.support.web.DynamicPathPart} + * for use or open @see Confluence Best Practises page
+ * Wait for element example: + *
+ *         {@literal @}IosWait (SOME_VALUE)
+ *          SomePage waitForElement();
+ *    
+ * Explicit wait example: + *
+ *         {@literal @}IosWait (explicitWaitSeconds = 10)
+ *          SomePage waitTenSeconds();
+ *    
+ * Params:
+ * {@link #value()} - Value for element identification. More values can be used.
+ * {@link #waitSecondsForElement()} - Wait timeout. Default value is: 20
+ * {@link #by()} - could be used for other then default type of element search.
+ * {@link #until()} - wait type. Default value is: {@link Until}.PRESENT_IN_DOM.
+ * {@link #isStringDynamicXpath()} - Use to set String from method in xpath. Boolean type. The default value is: false.
+ * Example 3: + *
+ *         {@literal @}IosWait (
+ *                           value = SOME_CLASSNAME,
+ *                           waitSecondsForElement = 30,
+ *                           by = MobileLookup.CLASSNAME,
+ *                           until = Until.GONE)
+ *          SomePage waitForElementGone();
+ *    
+ * + * IMPORTANT: For @IosWait until GONE used in flows (WebFlow) is necessary to have another @IosWait for element to identify + * displayed page - if wrong page still loaded, @IosWait until GONE is validate to this page not the expected one. In case this rule + * is not followed, test execution throws HarnessException. + *
+ *
+ * NOTE: In case you need for eg. both id and xpath, you need express id as xpath and use {@link MobileLookup}.XPATH
+ * Example 4: + *
+ *          String XPATH = "//div[@attr1='attribute']";
+ *          String ID_AS_XPATH = "//div[@id='id']";
+ *
+ *         {@literal @}IosWait (
+ *              value = {XPATH, ID_AS_XPATH},
+ *              by = MobileLookup.XPATH
+ *              )
+ *          SomePage waitForElementGone();
+ *    
+ */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(IosWaits.class) +public @interface IosWait { + /** + * Value for identification of element. + */ + String[] value() default {}; + + /** + * Maximum waiting time (timeout) for element + */ + int waitSecondsForElement() default 20; + + /** + * Tool will wait for defined seconds. + */ + int explicitWaitSeconds() default 0; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * @see MobileLookup + */ + MobileLookup by() default MobileLookup.DEFAULT; + + /** + * Defines what type of wait condition will be used. + * @see Until + */ + Until until() default Until.PRESENT_IN_DOM; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. + */ + boolean isStringDynamicXpath() default false; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosWaits.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosWaits.java new file mode 100644 index 0000000..cc4272d --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/ios/IosWaits.java @@ -0,0 +1,17 @@ +package cz.moneta.test.harness.support.mobile.ios; + +import cz.moneta.test.harness.support.web.Wait; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface IosWaits { + IosWait[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/AnnotationsBuilder.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/AnnotationsBuilder.java new file mode 100644 index 0000000..20c1da2 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/AnnotationsBuilder.java @@ -0,0 +1,124 @@ +package cz.moneta.test.harness.support.mobile.share; + +import cz.moneta.test.harness.endpoints.MobileEndpoint; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.web.DynamicPathPart; +import cz.moneta.test.harness.support.web.SelectByValue; +import cz.moneta.test.harness.support.web.Until; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.Optional; +import java.util.stream.Stream; + +public class AnnotationsBuilder { + + protected static void doWait(String[] value, int waitSecondsForElement, MobileLookup by, Until until, int explicitWaitSeconds, boolean isStringDynamicXpath, MobileEndpoint endpoint, Object[] args) { + Stream.>of( + Optional.of(value) + .filter(ArrayUtils::isNotEmpty) + .map(present -> () -> endpoint.waitForElementsToLoad(waitSecondsForElement, by, + until, constructDynamicElements(present, isStringDynamicXpath, args))), + Optional.of(explicitWaitSeconds) + .filter(s -> s > 0) + .map(s -> () -> endpoint.sleepSeconds(s))) + .filter(Optional::isPresent) + .map(Optional::get) + .forEach(Runnable::run); + } + + protected static void doCustomAction(Object proxy, Method method, Object[] args) { + Optional.ofNullable(method) + .filter(m -> m.isAnnotationPresent(MobileCustomAction.class)) + .filter(Method::isDefault) + .ifPresent(m -> Builders.invokeDefaultMethod(proxy, m, args)); + } + + protected static void doScroll(Direction direction, Annotation annotation, String untilElementPresent, MobileLookup by, MobileEndpoint endpoint) { + Stream.>of( + Optional.of(annotation) + .filter(s -> Direction.LEFT == direction && StringUtils.isNotEmpty(untilElementPresent)) + .map(s -> () -> endpoint.scrollToElement(Direction.LEFT, by, + untilElementPresent)), + Optional.of(direction) + .filter(Direction.LEFT::equals) + .map(d -> () -> endpoint.scroll(Direction.LEFT)), + Optional.of(annotation) + .filter(s -> Direction.RIGHT == direction && StringUtils.isNotEmpty(untilElementPresent)) + .map(s -> () -> endpoint.scrollToElement(Direction.RIGHT, by, + untilElementPresent)), + Optional.of(direction) + .filter(Direction.RIGHT::equals) + .map(d -> () -> endpoint.scroll(Direction.RIGHT)), + Optional.of(annotation) + .filter(s -> Direction.UP == direction && StringUtils.isNotEmpty(untilElementPresent)) + .map(s -> () -> endpoint.scrollToElement(Direction.UP, by, + untilElementPresent)), + Optional.of(direction) + .filter(Direction.UP::equals) + .map(d -> () -> endpoint.scroll(Direction.UP)), + Optional.of(annotation) + .filter(s -> Direction.DOWN == direction && StringUtils.isNotEmpty(untilElementPresent)) + .map(s -> () -> endpoint.scrollToElement(Direction.DOWN, by, + untilElementPresent)), + Optional.of(direction) + .filter(Direction.DOWN::equals) + .map(d -> () -> endpoint.scroll(Direction.DOWN))) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .ifPresent(Runnable::run); + } + + protected static void doCheckElementContent(Annotation[] annotations, String checkValue, MobileLookup by, MobileEndpoint endpoint, Method method, Object[] args) { + checkAnnotationLength(annotations, method, args); + Arrays.stream(annotations) + .filter(check -> StringUtils.isNotBlank(checkValue)) + .forEach(check -> { + String value = getSelectValue(args[0]); + endpoint.checkElementContent(checkValue, value, by); + }); + } + + protected static String getSelectValue(Object selectObject) { + return selectObject instanceof SelectByValue ? ((SelectByValue) selectObject).getValue() : String.valueOf(selectObject); + } + + protected static void checkAnnotationLength(Annotation[] annotations, Method method, Object[] args) { + annotations = method.getAnnotationsByType(Annotation.class); + if (annotations.length > 0 && (args == null || annotations.length != args.length)) { + throw new IllegalStateException("The number of arguments passed to a annotated method '" + + method.getDeclaringClass().getSimpleName() + "#" + method.getName() + + "' must match the annotation count!"); + } + } + + protected static String constructDynamicElement(String path, boolean isStringDynamicXpath, Object[] args) { + Optional dynamicXpath; + if (isStringDynamicXpath) { + dynamicXpath = Optional.ofNullable(args) + .map(a -> Arrays.stream(a) + .filter(String.class::isInstance) + .map(String.class::cast) + .toArray()); + } else { + dynamicXpath = Optional.ofNullable(args) + .map(a -> Arrays.stream(a) + .filter(DynamicPathPart.class::isInstance) + .map(DynamicPathPart.class::cast) + .map(DynamicPathPart::getValue) + .toArray()); + } + return dynamicXpath.map(a -> String.format(path, a)) + .orElse(path); + } + + private static String[] constructDynamicElements(String[] path, boolean isStringDynamicXpath, Object[] args) { + return Arrays.stream(path) + .map(p -> constructDynamicElement(p, isStringDynamicXpath, args)) + .toArray(String[]::new); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/Builders.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/Builders.java new file mode 100644 index 0000000..4512965 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/Builders.java @@ -0,0 +1,145 @@ +package cz.moneta.test.harness.support.mobile.share; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MobileEndpoint; +import cz.moneta.test.harness.endpoints.smartbanka.MobilePlatform; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.mobile.android.AndroidBuilders; +import cz.moneta.test.harness.support.mobile.ios.IosBuilders; +import cz.moneta.test.harness.support.reflect.ReflectionUtils; +import cz.moneta.test.harness.support.web.Builder; +import org.openqa.selenium.WebDriverException; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.util.Arrays; +import java.util.Optional; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Stream; + +@SuppressWarnings("unchecked") +public class Builders { + + private Builders() { + } + + public static > A newMobileFlowBuilder(Class pageFlow, MobileEndpoint endpoint, StoreAccessor harness) { + A builder = (A) Proxy.newProxyInstance( + Thread.currentThread().getContextClassLoader(), + new Class[]{pageFlow}, + getInvocationHandler(endpoint, harness)); + processClassAnnotations(builder, harness, endpoint); + return builder; + } + + private static InvocationHandler getInvocationHandler(MobileEndpoint endpoint, StoreAccessor harness) { + return (proxy, method, args) -> { + if (StoreAccessor.class.equals(method.getDeclaringClass())) { + return method.invoke(harness, args); + } + try { + return doTerminalOperations(endpoint, proxy, harness, method, args) + .orElseGet(builderOperations(endpoint, harness, proxy, method, args)); + } catch (WebDriverException e) { + throw new HarnessException( + String.format("Error invoking method '%s#%s'. Error message: %s", + method.getDeclaringClass().getSimpleName(), + method.getName(), + e.getMessage()), e); + } + }; + } + + private static Supplier builderOperations(MobileEndpoint endpoint, StoreAccessor harness, Object proxy, Method method, Object[] args) { + return () -> { + checkAnnotationType(endpoint, harness, proxy, method, args); + return resolveView(endpoint, proxy, method, harness); + }; + } + + private static void checkAnnotationType(MobileEndpoint endpoint, StoreAccessor harness, Object proxy, Method method, Object[] args) { + if (MobilePlatform.isAndroid(harness)) { + AndroidBuilders.androidBuilderOperations(endpoint, method, proxy, args); + } else { + IosBuilders.iosBuilderOperations(endpoint, proxy, method, args); + } + } + + private static > void processClassAnnotations(A builder, StoreAccessor harness, MobileEndpoint endpoint) { + if (MobilePlatform.isAndroid(harness)) { + AndroidBuilders.processClassAnnotations(builder, endpoint); + } else { + IosBuilders.processClassAnnotations(builder, endpoint); + } + } + + private static Optional doTerminalOperations(MobileEndpoint endpoint, Object proxy, StoreAccessor store, Method method, Object[] args) { + return Stream + .>>of( + () -> handleThen(proxy, method, args), + () -> doGetElementContent(endpoint, method, store)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst(); + } + + private static Optional doGetElementContent(MobileEndpoint endpoint, Method method, StoreAccessor store) { + if (MobilePlatform.isAndroid(store)) { + return AndroidBuilders.doAndroidGetElementContent(endpoint, method); + } + return IosBuilders.doIosGetElementContent(endpoint, method); + } + + private static Optional handleThen(Object proxy, Method method, Object[] args) { + return Arrays.stream(Builder.class.getMethods()) + .filter(m -> "then".equals(m.getName())) + .filter(method::equals) + .findFirst() + .map(m -> args[0]) + .filter(Function.class::isInstance) + .map(Function.class::cast) + .map(f -> f.apply(proxy)); + } + + private static > A resolveView(MobileEndpoint endpoint, Object proxy, Method method, StoreAccessor harness) { + return Stream.>>of( + () -> handleView(endpoint, method, harness), + () -> handleReturnType(endpoint, proxy, method, harness), + () -> Optional.of((A) proxy)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .get(); + } + + protected static > Optional handleView(MobileEndpoint endpoint, Method method, + StoreAccessor harness) { + return Arrays.stream(method.getAnnotationsByType(View.class)) + .findFirst() + .map(View::value) + .map(view -> newMobileFlowBuilder((Class) view, endpoint, harness)); + } + + protected static > Optional handleReturnType(MobileEndpoint endpoint, Object proxy, + Method method, StoreAccessor harness) { + return Optional.of(method.getReturnType()) + .filter(rt -> !rt.isInstance(proxy)) + .filter(MobileFlow.class::isAssignableFrom) + .map(page -> newMobileFlowBuilder((Class) page, endpoint, harness)); + } + + protected static T invokeDefaultMethod(Object proxy, Method method, Object... args) { + return ReflectionUtils.invokeDefaultMethod( + proxy, + method, + msg -> String.format("Error invoking method '%s#%s'. Error message: %s", + method.getDeclaringClass().getSimpleName(), + method.getName(), + msg), + args); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/Direction.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/Direction.java new file mode 100644 index 0000000..0084877 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/Direction.java @@ -0,0 +1,9 @@ +package cz.moneta.test.harness.support.mobile.share; + +public enum Direction { + RIGHT, + LEFT, + UP, + DOWN, + DEFAULT; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/MobileCustomAction.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/MobileCustomAction.java new file mode 100644 index 0000000..679bb66 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/MobileCustomAction.java @@ -0,0 +1,36 @@ +package cz.moneta.test.harness.support.mobile.share; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Executes custom action defined in default method. The annotated method must be default.
+ * This is applicable when is needed to do some other action which is not possible handle with predefined annotations.
+ * It is need to extend class by StoreAccessor to use MobileCustomAction. + * + * Example: + *
+ *    public interface SomePage extends SomeFlow, StoreAccessor {
+ *        //...
+ *        {@literal @}MobileCustomAction
+ *         default SomePage someCustomAction() {
+ *              MobileEndpoint endpoint = getEndpoint(SomeEndpointClass.class);
+ *              endpoint.click(() -> SOME_ELEMENT_IN_PAGE);
+ *              endpoint.waitForElementsToLoad(20, SOME_ELEMENT_IN_PAGE2);
+ *              //...
+ *              return null;
+ *         }
+ *         //...
+ *    }
+ * 
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface MobileCustomAction { +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/MobileFlow.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/MobileFlow.java new file mode 100644 index 0000000..d99cd52 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/MobileFlow.java @@ -0,0 +1,65 @@ +package cz.moneta.test.harness.support.mobile.share; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.mobile.ios.IosTypeInto; +import cz.moneta.test.harness.support.web.Builder; + +/** + * This ss the marker interface of mobile flow builder proxies. + *

+ * The builders are usually accessed via {@code harness.withSB()} or similar method where the proxy + * is instantiated by calling the respective + * {@link Builders#newMobileFlowBuilder(Class, MobileEndpoint, StoreAccessor)} method. + *

+ * An example mobile flow builder may look as follows: + *

{@code
+ * @literal @AndroidWait(value = PIN_INPUT, waitSecondsForElement = 60)
+ * @literal @IosWait(value = PIN_INPUT, waitSecondsForElement = 60)
+ *  public interface LandingView extends SbViewFlow {
+ *
+ *      String PIN_INPUT = "eu.inloop.gemoney.tst1:id/edit_pin_value";
+ *      String PIN_SUBMIT_BUTTON = "eu.inloop.gemoney.tst1:id/btn_pin_submit";
+ *      String PAYMENT_BUTTON_XPATH = "//android.widget.TextView[contains(@text, 'Payment')]";
+ *
+ *      String IOS_PIN_INPUT = "PIN_TEXT";
+ *      String IOS_PIN_SUBMIT_BUTTON = "PIN_BUTTON";
+ *      String IOS_PAYMENT_BUTTON = "Zaplatit"
+ *
+ *     @literal @AndroidTypeInto(PIN_INPUT)
+ *     @literal @IosTypeInto(IOS_PIN_INPUT)
+ *     @literal @AndroidClick(PIN_SUBMIT_BUTTON)
+ *     @literal @IosClick(IOS_PIN_SUBMIT_BUTTON)
+ *      BalanceView enterPinAndContinue(String pin);
+ *
+ *     @literal @AndroidClick(value = PAYMENT_BUTTON_XPATH, by = MobileLookup.XPATH)
+ *     @literal @IosClick(value = IOS_PAYMENT_BUTTON)
+ *      AccountSelectionView tapPayment();
+ *  }
+ * }
+ * Please note that if the return type of the method is a different MobileFlow builder, a new proxy is instantiated + * based on the return type + *

+ * And the usage would be as follows: + *

{@code
+ *  harness.withSB()
+ *      .onLandingPage()
+ *      .enterPinAndContinue(PIN)
+ *      .then(withSb.enableAdvancedFeatures())
+ *      .restartApp()
+ *      ...
+ * }
+ * + * @see cz.moneta.test.harness.support.mobile.android.AndroidWait + * @see cz.moneta.test.harness.support.mobile.android.AndroidClick + * @see cz.moneta.test.harness.support.mobile.android.AndroidScroll + * @see cz.moneta.test.harness.support.mobile.android.AndroidTypeInto + * + * @see cz.moneta.test.harness.support.mobile.ios.IosWait + * @see cz.moneta.test.harness.support.mobile.ios.IosClick + * @see cz.moneta.test.harness.support.mobile.ios.IosScroll + * @see IosTypeInto + * + */ +public interface MobileFlow
extends Builder { + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/View.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/View.java new file mode 100644 index 0000000..f95c34c --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mobile/share/View.java @@ -0,0 +1,16 @@ +package cz.moneta.test.harness.support.mobile.share; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface View { + /** + * Class of next view + */ + Class> value(); + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/ApiVersion.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/ApiVersion.java new file mode 100644 index 0000000..e55634c --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/ApiVersion.java @@ -0,0 +1,32 @@ +package cz.moneta.test.harness.support.mwf; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation is used for setting MWF API version in case it is different for each environment. Typically if version 001 is not available.
+ * If not defined then MWF API version is set to 001.
+ * Example: + *
+ *         {@literal @}ApiVersion(versionTST3 = "100", versionTST1 = "200", versionPPE = "300", versionEDU = "400")
+ *          public interface MWFIQ1 extends MwfRequest {}
+ *    
+ * Example2: Defaults API version to 001 for all environments + *
+ *         {@literal @}ApiVersion
+ *          public interface MWFIQ1 extends MwfRequest {}
+ *    
+ */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface ApiVersion { + String versionTST3() default "001"; + + String versionTST1() default "001"; + + String versionPPE() default "001"; + + String versionEDU() default "001"; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/Builders.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/Builders.java new file mode 100644 index 0000000..d74fd33 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/Builders.java @@ -0,0 +1,218 @@ +package cz.moneta.test.harness.support.mwf; + +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ilodsserver.IlodsServerEndpoint; +import cz.moneta.test.harness.support.util.BaseRequestBuilder; +import cz.moneta.test.harness.support.util.RequestPoll; +import org.apache.commons.lang3.ArrayUtils; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Proxy; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@SuppressWarnings("unchecked") +public final class Builders { + + private Builders() {} + + public static > R newMwfBuilder( + Class request, TifClient tifClient, StoreAccessor harness) { + + return (R) Proxy.newProxyInstance( + Thread.currentThread().getContextClassLoader(), + new Class[]{request, RequestPoll.class}, + new RequestBuilderInvocationHandler(request.getSimpleName(), getApiVersion(request, harness), tifClient, harness.getEndpoint(IlodsServerEndpoint.class), harness)); + } + + /** + * Choosing MWF version based on current environment. Used in combination with annotation ApiVersion, ex. @ApiVersion(versionTST1 = "100", versionPPE = "200") + * If annotation ApiVersion is not used it defaults to version 001. + */ + private static > String getApiVersion(Class request, StoreAccessor harness) { + String version = "001"; + ApiVersion apiVersion = request.getAnnotation(ApiVersion.class); + if (apiVersion != null) { + switch (harness.getConfig(HarnessConfigConstants.ENVIRONMENT_TYPE).toUpperCase()) { + case "TST3": + version = apiVersion.versionTST3(); + break; + case "TST1": + version = apiVersion.versionTST1(); + break; + case "PPE": + version = apiVersion.versionPPE(); + break; + case "EDU": + version = apiVersion.versionEDU(); + break; + } + } + return version; + } + + private static class RequestBuilderInvocationHandler extends BaseRequestBuilder implements InvocationHandler { + + private final String name; + private final String apiVersion; + private TifClient tifClient; + private IlodsServerEndpoint endpoint; + private final Map params = new HashMap<>(); + + private RequestBuilderInvocationHandler(String name, String apiVersion, TifClient tifClient, IlodsServerEndpoint endpoint, StoreAccessor harness) { + super(harness); + this.name = name; + this.apiVersion = apiVersion; + this.tifClient = tifClient; + this.endpoint = endpoint; + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) { + return Stream.>>of( + () -> handleLog(proxy, method, args), + () -> handleThen(proxy, method, args), + () -> handlePollUntil(proxy, method, args), + () -> handlePollDelay(proxy, method, args), + () -> handlePollRetries(proxy, method, args), + () -> handlePollEvalFunction(proxy, method, args), + () -> handleSend(proxy, method), + () -> handleParams(proxy, method, args)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Could not handle method: " + + proxy.getClass().getInterfaces()[0].getSimpleName() + "#" + method.getName())); + } + + private Optional handleParams(Object proxy, Method method, Object[] args) { + Optional.ofNullable(method.getAnnotation(Parameter.class)) + .filter(p -> ArrayUtils.isNotEmpty(args)) + .ifPresent(p -> { + if (args[0] instanceof Collection) { + Object collection = ((Collection) args[0]).stream() + .filter(MwfData.class::isInstance) + .map(s -> ((MwfData) s).getParams()) + .collect(Collectors.toList()); + params.put(p.name(), collection); + } else { + params.put(p.name(), args[0]); + } + }); + return Optional.of(proxy); + } + + private Optional handleSend(Object proxy, Method method) { + return Optional.of(method) + .filter(m -> "send".equals(m.getName())) + .flatMap(m -> doSend(proxy)); + } + + protected Optional doSend(Object proxy) { + Class responseClass = getResponseClass(proxy); + Set outputParamNames = Arrays.stream(responseClass.getMethods()) + .map(m -> m.getAnnotation(Parameter.class)) + .filter(Objects::nonNull) + .map(Parameter::name) + .collect(Collectors.toSet()); + + return Optional.ofNullable(endpoint.callMWF(name, apiVersion, tifClient, params, outputParamNames)) + .map(response -> { + RESP responseProxy = toResponse(responseClass, response); + harness.store(responseClass.getSimpleName(), response); + responseLoggers.forEach(l -> l.accept(responseProxy)); + return responseProxy; + }); + } + + private RESP toResponse(Class responseClass, Map outputParameters) { + return (RESP) Proxy.newProxyInstance( + Thread.currentThread().getContextClassLoader(), + new Class[]{responseClass}, + new ResponseInvocationHandler(outputParameters)); + } + + private static Class getResponseClass(Object proxy) { + return (Class) ((ParameterizedType) ((Class) proxy.getClass() + .getGenericInterfaces()[0]) + .getGenericInterfaces()[0]) + .getActualTypeArguments()[1]; + } + + private static class ResponseInvocationHandler implements InvocationHandler { + + private final Map outputParameters; + + public ResponseInvocationHandler(Map outputParameters) { + this.outputParameters = outputParameters; + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) { + return Optional.ofNullable(method.getAnnotation(Parameter.class)) + .map(Parameter::name) + .map(outputParameters::get) + .flatMap(p -> Stream.>>of( + () -> extractCollection(method, p), + () -> extractObject(method, p), + () -> Optional.of(p)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + ) + .orElse(null); + } + + private Optional extractObject(Method method, Object param) { + return Arrays.stream(method.getReturnType().getConstructors()) + .filter(c -> param instanceof Map) + .filter(c -> c.getParameterTypes().length == 1 && Map.class.equals(c.getParameterTypes()[0])) + .findFirst() + .map(c -> { + try { + return c.newInstance(param); + } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { + throw new IllegalArgumentException("Failed to map parameter", e); + } + }); + } + + private Optional extractCollection(Method method, Object param) { + return Optional.of(param) + .filter(p -> List.class.equals(method.getReturnType())) + .filter(Collection.class::isInstance) + .map(Collection.class::cast) + .map(c -> { + Class dataType = (Class) ((ParameterizedType) method.getGenericReturnType()) + .getActualTypeArguments()[0]; + return c.stream() + .map(i -> { + try { + return dataType.getConstructor(Map.class).newInstance((Map) i); + } catch (InstantiationException | NoSuchMethodException | + InvocationTargetException | IllegalAccessException e) { + throw new IllegalArgumentException("Failed to map parameter", e); + } + }) + .collect(Collectors.toList()); + }); + } + } + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/MwfData.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/MwfData.java new file mode 100644 index 0000000..61927fb --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/MwfData.java @@ -0,0 +1,7 @@ +package cz.moneta.test.harness.support.mwf; + +import java.util.Map; + +public interface MwfData { + Map getParams(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/MwfRequest.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/MwfRequest.java new file mode 100644 index 0000000..aedf561 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/MwfRequest.java @@ -0,0 +1,68 @@ +package cz.moneta.test.harness.support.mwf; + +import cz.moneta.test.harness.context.StoreAccessor; + +import cz.moneta.test.harness.support.util.Builder; +import cz.moneta.test.harness.support.util.RequestPoll; +import cz.moneta.test.harness.support.util.Level; + +import java.util.function.Function; + +/** + * This ss the marker interface of MWF request builder proxies. + *

+ * The builders are usually accessed via {@code harness.withIHub()} or similar method where the proxy + * is instantiated by calling the respective + * {@link Builders#newMwfBuilder(Class, TifClient, StoreAccessor)} method. + *

+ * An example MWF builder may look as follows: + *

{@code
+ * @literal @ApiVersion(versionTST1 = "765")
+ *  public interface MWF109 extends MwfRequest {
+ *
+ *     @literal @Parameter(name = "Adresat")
+ *      MWF109 Adresat(String Adresat);
+ *     @literal @Parameter(name = "CO")
+ *      MWF109 Co(String Co);
+ *     @literal @Parameter(name = "CP")
+ *      MWF109 Cp(String Cp);
+ *     @literal @Parameter(name = "CisloPasu")
+ *      MWF109 CisloPasu(String CisloPasu);
+ *     @literal @Parameter(name = "CistyMesicniPrijem")
+ *      MWF109 CistyMesicniPrijem(Double CistyMesicniPrijem);
+ *     @literal @Parameter(name = "Ctvrt")
+ *      MWF109 Ctvrt(String Ctvrt);
+ *     @literal @Parameter(name = "DatumExpiraceKontaktnichUdaju")
+ *      MWF109 DatumExpiraceKontaktnichUdaju(java.util.Date DatumExpiraceKontaktnichUdaju);
+ *     @literal @Parameter(name = "DatumExpiracePotvrzeniStudent")
+ *      MWF109 DatumExpiracePotvrzeniStudent(java.util.Date DatumExpiracePotvrzeniStudent);
+ *     @literal @Parameter(name = "DatumNarozeni")
+ *      MWF109 DatumNarozeni(java.util.Date DatumNarozeni);
+ *      ...
+ *  }
+ * }
+ * And the usage would be as follows: + *
{@code
+ *  MWF109Response resp = harness.withIHub()
+ *      .prepareRequestAsUfo(MWF109.class)
+ *      .RodneCislo(client.birthNumber())
+ *      .DatumNarozeni(TestUtils.dateFromString(client.birthDate(), "d.M.yyyy"))
+ *      ...
+ *      .send();
+ * }
+ * + * Please note that each MWF builder must have its corresponding DAPI xml mapping available on classpath so that + * DAPI calls may be executed successfully + * + * @see Parameter + * @see ApiVersion + */ +public interface MwfRequest extends Builder { + RESP send(); + + RequestPoll pollUntil(Function extractor); + + B log(String template, Function... args); + + B log(Level level, String template, Function... args); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/Parameter.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/Parameter.java new file mode 100644 index 0000000..8169a37 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/Parameter.java @@ -0,0 +1,13 @@ +package cz.moneta.test.harness.support.mwf; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Parameter { + String name(); + boolean required() default false; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/TifClient.java b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/TifClient.java new file mode 100644 index 0000000..c4bd9dd --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/mwf/TifClient.java @@ -0,0 +1,22 @@ +package cz.moneta.test.harness.support.mwf; + +public enum TifClient { + + HUB_CBL("HUB"), + HUB_UFO("HUB"), + NAS_CBL("NAS"), + HUB_GEM("HUB"), + WSO2_CBL("IPG"), + WSO2_UFO("IPG"), + WSO2_GEM("IPG"); + + private final String target; + + TifClient(String target) { + this.target = target; + } + + public String getTarget() { + return target; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/reflect/ReflectionUtils.java b/test-harness/src/main/java/cz/moneta/test/harness/support/reflect/ReflectionUtils.java new file mode 100644 index 0000000..57275cb --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/reflect/ReflectionUtils.java @@ -0,0 +1,58 @@ +package cz.moneta.test.harness.support.reflect; + +import cz.moneta.test.harness.exception.HarnessException; + +import java.lang.invoke.MethodHandles; +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.function.Function; + +@SuppressWarnings("unchecked") +public final class ReflectionUtils { + + private ReflectionUtils() { + } + + public static T invokeDefaultMethod(Object proxy, Method method, Function messageFormatSupplier, Object... args) { + Class declaringClass = method.getDeclaringClass(); + try { + Constructor constructor = MethodHandles.Lookup.class.getDeclaredConstructor(Class.class); + constructor.setAccessible(true); + return (T) constructor.newInstance(declaringClass) + .in(declaringClass) + .unreflectSpecial(method, declaringClass) + .bindTo(proxy) + .invokeWithArguments(args); + } catch (Throwable e) { + throw new HarnessException(messageFormatSupplier.apply(e.getMessage()), e); + } + } + + public static Optional invokeDefaultMethodByName(String methodName, Object proxy, Function messageSupplier) { + return getInterfaces(proxy.getClass()).stream() + .flatMap(i -> Arrays.stream(i.getMethods())) + .filter(m -> methodName.equals(m.getName())) + .filter(Method::isDefault) + .findFirst() + .map(m -> invokeDefaultMethod(proxy, m, messageSupplier)); + } + + public static List> getInterfaces(Class clazz) { + return doGetInterfaces(clazz, new ArrayList<>()); + } + + private static List> doGetInterfaces(Class clazz, List> accumulator) { + if (clazz.isInterface()) { + accumulator.add(clazz); + } + Arrays.stream(clazz.getInterfaces()).forEach(c -> { + accumulator.add(c); + getInterfaces(c); + }); + return accumulator; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/rest/AllowedContentTypes.java b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/AllowedContentTypes.java new file mode 100644 index 0000000..abcdfd1 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/AllowedContentTypes.java @@ -0,0 +1,33 @@ +package cz.moneta.test.harness.support.rest; + +import java.util.EnumSet; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +public enum AllowedContentTypes { + + PDF("pdf", "application/pdf"); + + private final String extension; + private final String contentType; + + private static final Map CONTENT_TYPES_VALUE_LOOKUP = EnumSet.allOf(AllowedContentTypes.class).stream() + .collect(Collectors.toMap(el -> el.contentType, Function.identity())); + + AllowedContentTypes(String extension, String contentType) { + this.extension = extension; + this.contentType = contentType; + } + + public String getExtension() { + return extension; + } + + public static AllowedContentTypes getByMimeType(String contentType) { + if (CONTENT_TYPES_VALUE_LOOKUP.get(contentType) != null) { + return CONTENT_TYPES_VALUE_LOOKUP.get(contentType); + } + throw new IllegalStateException("Content type of Base64 String is not allowed: " + contentType); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Builders.java b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Builders.java new file mode 100644 index 0000000..8e2b896 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Builders.java @@ -0,0 +1,204 @@ +package cz.moneta.test.harness.support.rest; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.reflect.ReflectionUtils; +import cz.moneta.test.harness.support.util.BaseRequestBuilder; +import cz.moneta.test.harness.support.util.RequestPoll; +import jakarta.ws.rs.client.Entity; +import org.apache.commons.exec.util.MapUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.tuple.Pair; + +import java.lang.reflect.*; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Stream; + +@SuppressWarnings("unchecked") +public final class Builders { + + private static final ObjectMapper JACKSON = new ObjectMapper() + .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false) + .registerModules(new ParameterNamesModule(), new Jdk8Module(), new JavaTimeModule()); + + private Builders() { + } + + public static > R newRestBuilder( + Class request, Class endpoint, StoreAccessor harness) { + return (R) Proxy.newProxyInstance( + Thread.currentThread().getContextClassLoader(), + new Class[]{request, RequestPoll.class}, + new RequestBuilderInvocationHandler(harness.getEndpoint(endpoint), harness)); + } + + private static class RequestBuilderInvocationHandler extends BaseRequestBuilder implements InvocationHandler { + + private final RestEndpoint endpoint; + private final Map params = new HashMap<>(); + private final Map pathParams = new HashMap<>(); + private final Map headers = new HashMap<>(); + + private RequestBuilderInvocationHandler(RestEndpoint endpoint, StoreAccessor harness) { + super(harness); + this.endpoint = endpoint; + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) { + return Stream.>>of( + () -> handleLog(proxy, method, args), + () -> handleThen(proxy, method, args), + () -> handlePollUntil(proxy, method, args), + () -> handlePollDelay(proxy, method, args), + () -> handlePollRetries(proxy, method, args), + () -> handlePollEvalFunction(proxy, method, args), + () -> handleSend(proxy, method), + () -> handleHeaders(proxy, method, args), + () -> handlePathParams(proxy, method, args), + () -> handleParams(proxy, method, args)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Could not handle method: " + + proxy.getClass().getInterfaces()[0].getSimpleName() + "#" + method.getName())); + } + + private Optional handleParams(Object proxy, Method method, Object[] args) { + return Optional.ofNullable(args) + .map(Arrays::stream) + .orElseGet(Stream::empty) + .findFirst() + .map(a -> { + params.put(method.getName(), a); + return a; + }) + .map(a -> proxy); + } + + private Optional handleHeaders(Object proxy, Method method, Object[] args) { + return Arrays.stream(method.getAnnotationsByType(Header.class)) + .filter(a -> ArrayUtils.isNotEmpty(args)) + .findFirst() + .map(h -> { + headers.put(h.value(), args[0]); + return h; + }) + .map(h -> proxy); + } + + private Optional handlePathParams(Object proxy, Method method, Object[] args) { + return Arrays.stream(method.getAnnotationsByType(PathParam.class)) + .filter(a -> ArrayUtils.isNotEmpty(args)) + .findFirst() + .map(p -> { + pathParams.put(p.value(), args[0]); + return p; + }) + .map(p -> proxy); + } + + private Optional handleSend(Object proxy, Method method) { + return Optional.of(method) + .filter(m -> "send".equals(m.getName())) + .flatMap(m -> doSend(proxy)); + } + + protected Optional doSend(Object proxy) { + Class builder = proxy.getClass().getInterfaces()[0]; + return Stream.>>of( + () -> Optional.ofNullable(builder.getAnnotation(Post.class)) + .map(p -> (RESP) endpoint.post( + resolvePathParams(p.value()), + toEntity(params, getRequestClass(proxy), p.callType()), + getResponseClass(proxy), + resolveHeaders(builder), p.rawResponse()).getRight()), + () -> Optional.ofNullable(builder.getAnnotation(Get.class)) + .map(g -> (RESP) endpoint.get( + resolvePathParams(g.value()), + params, + getResponseClass(proxy), + resolveHeaders(builder)).getRight())) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .map(resp -> { + harness.store(resp.getClass().getName(), resp); + responseLoggers.forEach(l -> l.accept(resp)); + return resp; + }); + } + + private String resolvePathParams(String path) { + return pathParams.entrySet().stream() + .>map(e -> s -> s.replace("{" + e.getKey() + "}", String.valueOf(e.getValue()))) + .reduce(Function.identity(), Function::andThen) + .apply(path); + } + + private Map resolveHeaders(Object proxy) { + return ReflectionUtils.>invokeDefaultMethodByName( + "defaultHeaders", + proxy, + (String message) -> String.format("Error getting default headers. Error message: %s", message)) + .map(h -> MapUtils.merge(h, headers)) + .orElse(headers); + } + + private static Class getRequestClass(Object proxy) { + Pair, ? extends Class> pair = getRestRequestTypes(proxy); + return pair.getLeft(); + } + + private static Class getResponseClass(Object proxy) { + return (Class) getRestRequestTypes(proxy).getRight(); + } + + private static Pair, ? extends Class> getRestRequestTypes(Object proxy) { + return ReflectionUtils.getInterfaces(proxy.getClass()).stream() + .flatMap(i -> Arrays.stream(i.getGenericInterfaces())) + .filter(gi -> gi instanceof ParameterizedType) + .map(ParameterizedType.class::cast) + //.filter(gi -> RestRequest.class.equals(gi.getRawType())) + .findFirst() + .map(rr -> { + Type[] arguments = rr.getActualTypeArguments(); + return Pair.of(resolveType(arguments[1], proxy), resolveType(arguments[2], proxy)); //FIXME + }) + .orElseThrow(() -> new IllegalStateException(proxy.getClass().getInterfaces()[0].getSimpleName() + + " builder interfaces must inherit from RestRequest")); + } + + private static Class resolveType(Type argument, Object proxy) { + // if (argument instanceof TypeVariableImpl) { + // return (Class) ((TypeVariableImpl) argument).getGenericDeclaration(); + // } else { + return (Class) argument; + // } + } + + private static Entity toEntity(Map params, Class requestClass, CallType callType) { + switch (callType) { + case JSON: + return Entity.json(JACKSON.convertValue(params, requestClass)); + case FORM: + return Entity.form(RestUtils.toMultiMap(params)); + default: + throw new HarnessException("Call type: " + callType + " is unknown."); + } + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/rest/CallType.java b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/CallType.java new file mode 100644 index 0000000..5b09053 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/CallType.java @@ -0,0 +1,5 @@ +package cz.moneta.test.harness.support.rest; + +public enum CallType { + JSON, FORM +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Get.java b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Get.java new file mode 100644 index 0000000..97b9401 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Get.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.support.rest; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface Get { + String value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Header.java b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Header.java new file mode 100644 index 0000000..9ab3c77 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Header.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.support.rest; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Header { + String value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/rest/PathParam.java b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/PathParam.java new file mode 100644 index 0000000..36ea564 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/PathParam.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.support.rest; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface PathParam { + String value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Post.java b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Post.java new file mode 100644 index 0000000..236c6d8 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/Post.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.support.rest; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface Post { + String value(); + CallType callType() default CallType.JSON; + boolean rawResponse() default false; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/rest/RawRestRequest.java b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/RawRestRequest.java new file mode 100644 index 0000000..1fa95bc --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/RawRestRequest.java @@ -0,0 +1,841 @@ +package cz.moneta.test.harness.support.rest; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; +import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; +import cz.moneta.test.harness.connectors.rest.ExtendedRestResponse; +import cz.moneta.test.harness.constants.HarnessConfigConstants; +import cz.moneta.test.harness.endpoints.RestEndpoint; +import cz.moneta.test.harness.support.util.FileReader; +import cz.moneta.test.harness.support.util.Template; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.MultivaluedMap; +import net.javacrumbs.jsonunit.assertj.JsonAssert; +import net.javacrumbs.jsonunit.assertj.JsonAssertions; +import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; +import org.junit.jupiter.api.Assertions; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Paths; +import java.util.*; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * RawRestRequest provides a simplified api for executing RESTful calls. Its typical usage would be: + *

+ *

{@code
+ * ResultObject result = RawRestRequest.jsonBuilder(someEndpointInstance)
+ *       .withPath("/service/method/...")
+ *       .withHeader("Authorization", "Basic 123456")
+ *       .withPojoPayload(somePojoInstance)
+ *       .post(ResultObject.class)
+ *       .andAssertFieldValue("someField", "someValue")
+ * }
+ */ +@SuppressWarnings("unchecked") +public final class RawRestRequest { + + private RawRestRequest() { + } + + /** + * Factory method for JSON-based requests + */ + public static Path jsonBuilder(RestEndpoint endpoint) { + return new Builder(endpoint, + new ObjectMapper() + .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false) + .registerModules(new ParameterNamesModule(), new Jdk8Module(), new JavaTimeModule()), + Entity::json); + } + + /** + * Factory method for XML-based requests + */ + public static Path xmlBuilder(RestEndpoint endpoint) { + return new Builder(endpoint, new XmlMapper(), Entity::xml); + } + + /** + * Factory method for custom media type requests + */ + public static Path customXmlBuilder(RestEndpoint endpoint, String mediaType) { + return new Builder(endpoint, new XmlMapper(), p -> Entity.entity(p, mediaType)); + } + + public static Path customJsonBuilder(RestEndpoint endpoint, String mediaType) { + return new Builder(endpoint, + new ObjectMapper() + .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false) + .registerModules(new ParameterNamesModule(), new Jdk8Module(), new JavaTimeModule()), + p -> Entity.entity(p, mediaType)); + } + + public interface Path { + + /** + * The relative request path i.e. URL without the protocol, host and port parts + */ + Request withPath(String path); + + /** + * Prefix to relative path to by added during setting path variable + *

+ * Default value will be empty String + */ + Path setPathPrefix(String pathPrefix); + } + + public interface Request extends Json, Get, Delete { + Request withHeader(String key, Object value); + + /** + * Rresolves a GET, DELETE ... request path parameter + *

{@code
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path/{a_path_parameter}/further/path")
+         *     .withPathParam("a_path_parameter", 123)
+         *     .get()
+         * }
+ *

+ * Results in the following URL being called. + *
+ * {@code https://some_application_host/some/path/123/further/path} + * + *

{@code
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path/{a_path_parameter}/further/path")
+         *     .withPathParam("a_path_parameter", 123)
+         *     .delete()
+         * }
+ *

+ * Results in the following URL being called. + *
+ * {@code https://some_application_host/some/path/123/further/path} + */ + Request withPathParam(String name, Object value); + + /** + * Adds a GET request parameter to URL + *

{@code
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path")
+         *     .withParam("value", 123)
+         *     .get()
+         * }
+ *

+ * Results in the following URL being called. + *
+ * {@code https://some_application_host/some/path?value=123} + */ + Request withParam(String name, Object value); + } + + public interface Json { + + /** + * Creates payload from string. + *

+ * Example: + *

{@code
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path")
+         *     .withHeader("Authorization", "Bearer 123465")
+         *     .withPayload("{" +
+         *             "  \"SPECIAL_CODE\": \"100\"," +
+         *             "  \"RS_persons\": [" +
+         *             "    {" +
+         *             "      \"my_string\": \"abcd\"," +
+         *             "      \"name\": \"Adam\"," +
+         *             "      \"city\": \"Jihlava\"" +
+         *             "    }," +
+         *             "    {" +
+         *             "      \"my_string\": \"aaaaaa\"," +
+         *             "      \"name\": \"David\"," +
+         *             "      \"city\": \"Plzeň\"" +
+         *             "    }" +
+         *             "  ]" +
+         *             "}")
+         *     .post()
+         * }
+ */ + Post withPayload(String payload); + + Patch withPayloadPatch(String payload); + + /** + * Creates payload from POJO. + *

+ * Example: + *

{@code
+         * DummyRequest request = DummyRequest.builder()
+         *     .specialCode("100")
+         *     .rsPersons(Arrays.asList(
+         *         new Dummy("abcd", "Adam", "Jihlava"),
+         *         new Dummy("aaaaaa", "David", "Plzeň")))
+         *     .build();
+         *
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path")
+         *     .withHeader("Authorization", "Bearer 123456")
+         *     .withPojoPayload(request)
+         *     .post()
+         * }
+ */ + Post withPojoPayload(Object payload); + + /** + * Reads payload from a file. + *

+ * Example: + *

{@code
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path")
+         *     .withHeader("Authorization", "Bearer 123456")
+         *     .withPayloadFromFile("some_request.json")
+         *     .post()
+         * }
+ */ + Post withPayloadFromFile(String uri); + + Post withPayloadFromTemplate(Template template); + + /** + * Returns the Request payload + * Good for logging + */ + String getPayload(); + } + + public interface Get { + + /** + * Sends the actual GET request and returns the {@link Response} object + */ + Response get(); + + /** + * Sends the actual GET request and maps the response onto the response type specified + * + * @param responseType the required response type + */ + RESP get(Class responseType); + } + + public interface Delete { + + /** + * Sends the actual GET request and returns the {@link Response} object + */ + Response delete(); + + /** + * Sends the actual GET request and maps the response onto the response type specified + * + * @param responseType the required response type + */ + RESP delete(Class responseType); + } + + public interface Post { + + /** + * Adds a field to an existing rest request. + *
{@code
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path")
+         *     .withHeader("Authorization", "Bearer 123456")
+         *
+         *     // let's start with an empty request; it works with any pre-defined requests too, of course
+         *     .withPayload("{}")
+         *
+         *     // this adds a collection named someArrayField to the root of the request
+         *     .addField("someArrayField", Arrays.asList(1, 2, 3)))
+         *
+         *     // this adds an empty object named someObjectField to the root of the request, please note that
+         *     // we are adding a plain Object, but any POJO or a Collection could be used just as well
+         *     .addField("someObjectField", new Object())
+         *
+         *     // let's add a String field to the newly created field, please note that we're not adding it to the root
+         *     // but rather to someObjectField
+         *     .addField("someObjectField", "aStringField", "some string value")
+         *
+         *      // let's add an array field with three items
+         *     .addField("someObjectField", "aCollectionField", Arrays.asList(new Object(), new Object(), new Object()))
+         *
+         *      // let's add a field to the third item of the array; please note the dot syntax while accessing nested
+         *      // fields and the bracket syntax while accessing elements within a collection
+         *     .addField("someObjectField.aCollectionField[2]", "aNumberField", 123)
+         *     .post()
+         * }
+ *

+ * The resulting request now looks as follows: + *

{@code
+         * {
+         *     "someArrayField": [1, 2, 3],
+         *     "someObjectField": {
+         *         "aStringField": "some string value",
+         *         "aCollectionField": [
+         *             {},
+         *             {},
+         *             {"aNumberField": 123}
+         *         ]
+         *     }
+         * }
+         * }
+ * + * @param path path within the requesst relative to its root; use empty string (i.e. "") to add a field + * directly to the root of the request + * @param fieldName the name of the field being added + * @param value the value of the field being added; it may be of any type (i.e. a String, POJO, Collection...) + */ + Post addField(String path, String fieldName, Object value); + + /** + * Adds a field to the root of the rest request. See {@link Builder#addField(String, String, Object)} for usage + */ + Post addField(String fieldName, Object value); + + /** + * Adds an irem to an existing array. + *
{@code
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path")
+         *     .withHeader("Authorization", "Bearer 123456")
+         *     .withPayload("{
+         *         "anArray": [
+         *             {"field1": 123},
+         *             {"field2": 456},
+         *             {"nestedArray": ["one", "two", "three"]},
+         *         ]
+         *     }")
+         *     .appendToArray("anArray[2].nestedArray", "four")
+         * }
+ *

+ * Please note the bracket syntax when accessing elements within a collection and the dot syntax while + * accessing nested fields. + *

+ * The resulting request looks as follows: + *

{@code
+         * {
+         *     "anArray": [
+         *         {"field1": 123},
+         *         {"field2": 456},
+         *         {"nestedArray": ["one", "two", "three", "four"]},
+         *     ]
+         * }
+         * }
+ */ + Post appendToArray(String path, Object value); + + /** + * Sends the actual POST request and returns the {@link Response} object + */ + Response post(); + + Response postExtended(); + + /** + * Sends the actual POST request and maps the response onto the response type specified + * + * @param responseType the required response type + */ + RESP post(Class responseType); + + ExtendedRestResponse postExtended(Class responseType); + } + + public interface Patch { + + /** + * Sends the actual PATCH request and returns the {@link Response} object + */ + Response patch(); + + /** + * Sends the actual PATCH request and maps the response onto the response type specified + * + * @param responseType the required response type + */ + RESP patch(Class responseType); + } + + public interface Response { + + /** + * Makes an assertion on response field value. Please note the dot and bracket syntaxes while accessing + * nested elements + *
{@code
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path")
+         *     .get()
+         *     .andAssertFieldValue("aField.aCollection[3].aCollectionElementField.anotherNestedField", 456)
+         * }
+ * The example asserts that the following structure is present within the response: + *
{@code
+         * {
+         *     ...
+         *     "aField": [
+         *         ...,
+         *         ...,
+         *         ...,
+         *         {
+         *             ...,
+         *             "aCollectionElementField": {
+         *                 ...,
+         *                 "anotherNestedField": 456 <<<
+         *             }
+         *         }
+         *
+         *     ]
+         * }
+         * }
+ */ + Response andAssertFieldValue(String field, String value); + + /** + * Makes an assertion on the presence of the given element. Please note the dot and bracket syntaxes while + * accessing nested elements + *
{@code
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path")
+         *     .get()
+         *     .andAssertPresent("aField.aCollection[3].aCollectionElementField.anotherNestedField")
+         * }
+ * The example asserts that the following structure is present within the response: + *
{@code
+         * {
+         *     ...
+         *     "aField": [
+         *         ...,
+         *         ...,
+         *         ...,
+         *         {
+         *             ...,
+         *             "aCollectionElementField": {
+         *                 ...,
+         *                 "anotherNestedField": 456 <<<
+         *             }
+         *         }
+         *
+         *     ]
+         * }
+         * }
+ */ + Response andAssertPresent(String field); + + /** + * Makes an assertion on the absence of an element. Basically, a negated {@link #andAssertPresent} + */ + Response andAssertNotPresent(String field); + + List getHeader(String header); + + Response assertHeaderPresent(String header); + + /** + * Makes an assertion on HTTP response status + *
{@code
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path")
+         *     .get()
+         *     .andAssertStatus(200)
+         * }
+ */ + Response andAssertStatus(int status); + + /** + * Extracts the value of a particular response element. Please note the dot and bracket syntaxes while + * accessing nested elements + *
{@code
+         * RawRestRequest.jsonBuilder(harness.getEndpoint(SomeRestEndpoint.class))
+         *     .withPath("some/path")
+         *     .get()
+         *     .extract("aField.aCollection[3].aCollectionElementField.anotherNestedField")
+         *     .asText()
+         * }
+ * Would have yielded "456" from the following hypothetical response + *
{@code
+         * {
+         *     ...
+         *     "aField": [
+         *         ...,
+         *         ...,
+         *         ...,
+         *         {
+         *             ...,
+         *             "aCollectionElementField": {
+         *                 ...,
+         *                 "anotherNestedField": 456 <<<
+         *             }
+         *         }
+         *
+         *     ]
+         * }
+         * }
+ */ + JsonNode extract(String fieldName); + + /** + * Returns the HTTP response status + */ + Integer getStatus(); + + /** + * Returns the Request payload + * Good for logging + */ + String getPayload(); + + /** + * Expecting base64 string in format "data:application/pdf;base64,JVBERi0xLj..." + * For more variability it needs more development :) + */ + Response saveBase64FieldAsFile(String field); + + RESP mapResponseIntoObject(Class responseObjectClass); + + JsonAssert.ConfigurableJsonAssert andAssertWithAssertJ(); + } + + public static class Builder implements Path, Request, Json, Post, Get, Delete, Patch, Response { + + private static final Pattern ARRAY_NODE_PATTERN = Pattern.compile("(.*?)\\[([0-9]*?)\\]"); + + private final RestEndpoint endpoint; + private final ObjectMapper jackson; + private final Function> type; + private final Map headers = new HashMap<>(); + private final Map params = new HashMap<>(); + private final Map pathParams = new HashMap<>(); + private String path; + private String pathPrefix = ""; + private String payload; + private JsonNode response; + private Integer status; + private MultivaluedMap responseHeaders; + + private Builder(RestEndpoint endpoint, ObjectMapper jackson, Function> type) { + this.endpoint = endpoint; + this.jackson = jackson; + this.type = type; + } + + private static JsonNode extractNode(String path, JsonNode rootNode) { + return Arrays.stream(path.split("\\.")) + .filter(StringUtils::isNotEmpty) + .reduce(rootNode, + (r, p) -> { + Matcher matcher = ARRAY_NODE_PATTERN.matcher(p); + if (matcher.find()) { + return r.path(matcher.group(1)).path(Integer.valueOf(matcher.group(2))); + } else { + return r.path(p); + } + }, + (j1, j2) -> j1); + } + + public Request withPath(String path) { + this.path = this.pathPrefix + path; + return this; + } + + public Path setPathPrefix(String pathPrefix) { + this.pathPrefix = pathPrefix; + return this; + } + + public Post withPayload(String payload) { + this.payload = payload; + return this; + } + + public Patch withPayloadPatch(String payload) { + this.payload = payload; + return this; + } + + public Post withPojoPayload(Object payload) { + try { + this.payload = jackson.writeValueAsString(payload); + } catch (JsonProcessingException e) { + throw new IllegalArgumentException("Failed to parse payload: " + + (payload == null ? null : payload.toString())); + } + return this; + } + + public Post withPayloadFromFile(String path) { + this.payload = FileReader.readFileFromResources(path); + return this; + } + + public Post withPayloadFromTemplate(Template template) { + this.payload = template.render(); + return this; + } + + public Request withHeader(String key, Object value) { + this.headers.put(key, value); + return this; + } + + public Post addField(String fieldName, Object value) { + return addField("", fieldName, value); + } + + public Post addField(String path, String fieldName, Object value) { + handleNode(path, node -> { + JsonNode newNode = jackson.valueToTree(value); + ((ObjectNode) node).set(fieldName, newNode); + }); + return this; + } + + public Post appendToArray(String path, Object value) { + handleNode(path, node -> { + JsonNode newNode = jackson.valueToTree(value); + ((ArrayNode) node).add(newNode); + }); + return this; + } + + private void handleNode(String path, Consumer nodeHandler) { + try { + JsonNode rootNode = jackson.readTree(payload); + nodeHandler.accept(extractNode(path, rootNode)); + this.payload = jackson.writeValueAsString(rootNode); + } catch (IOException e) { + throw new IllegalStateException(String.format("Failed to parse payload: %s", payload), e); + } + } + + public Request withParam(String name, Object value) { + params.put(name, value); + return this; + } + + public RESP get(Class responseType) { + return doGet(responseType).getRight(); + } + + public Response get() { + Pair response = doGet(String.class); + this.status = response.getLeft(); + this.response = parseResponse(response.getRight()); + return this; + } + + private Pair doGet(Class responseType) { + return endpoint.get(resolvePathParams(path), params, responseType, headers); + } + + public Request withPathParam(String name, Object value) { + pathParams.put(name, value); + return this; + } + + public RESP delete(Class responseType) { + return doDelete(responseType).getRight(); + } + + public Response delete() { + Pair response = doDelete(String.class); + this.status = response.getLeft(); + this.response = parseResponse(response.getRight()); + return this; + } + + private Pair doDelete(Class responseType) { + return endpoint.delete(resolvePathParams(path), params, responseType, headers); + } + + private String resolvePathParams(String path) { + return pathParams.entrySet().stream() + .>map(e -> s -> s.replace("{" + e.getKey() + "}", String.valueOf(e.getValue()))) + .reduce(Function.identity(), Function::andThen) + .apply(path); + } + + public RESP post(Class responseType) { + return doPost(responseType).getRight(); + } + + public ExtendedRestResponse postExtended(Class responseType) { + return doExtendedPost(responseType).getRight(); + } + + public Response post() { + Pair response = doPost(String.class); + this.status = response.getLeft(); + this.response = parseResponse(response.getRight()); + return this; + } + + public Response postExtended() { + Pair> response = doExtendedPost(String.class); + this.status = response.getLeft(); + this.response = parseResponse(response.getRight().getResponseBody()); + this.responseHeaders = response.getRight().getResponseHeaders(); + return this; + } + + private Pair doPost(Class responseType) { + return endpoint.post(path, type.apply(payload), responseType, headers, false); + } + + private Pair> doExtendedPost(Class responseType) { + return endpoint.postExtended(path, type.apply(payload), responseType, headers); + } + + public RESP patch(Class responseType) { + return doPatch(responseType).getRight(); + } + + public Response patch() { + Pair response = doPatch(String.class); + this.status = response.getLeft(); + this.response = parseResponse(response.getRight()); + return this; + } + + private Pair doPatch(Class responseType) { + return endpoint.patch(path, type.apply(payload), responseType, headers, false); + } + + private JsonNode parseResponse(String rawResponse) { + try { + return jackson.readTree(rawResponse); + } catch (IOException e) { + throw new IllegalArgumentException(String.format("Failed to parse response: %s", rawResponse), e); + } + } + + public Response andAssertFieldValue(String path, String value) { + if (responseHeaders != null) { + Assertions.assertEquals(value, extract(path).asText(), String.format("Input: '%s', \n Output: '%s' \n activityId -> %s", + this.payload, + this.response.toString(), + this.responseHeaders.get("activityId"))); + } else { + Assertions.assertEquals(value, extract(path).asText(), String.format("Input: '%s', \n Output: '%s'", + this.payload, + this.response.toString())); + } + return this; + } + + public Response andAssertPresent(String path) { + JsonNode node = extract(path); + if (node.isMissingNode()) { + throw new AssertionError(String.format("Expected path is missing: %s", path)); + } + return this; + } + + public Response andAssertNotPresent(String path) { + JsonNode node = extract(path); + if (!node.isMissingNode()) { + throw new AssertionError(String.format("Unexpected path is present: %s, value: %s", path, node.asText())); + } + return this; + } + + @Override + public List getHeader(String header) { + if (!this.responseHeaders.containsKey(header)) { + return null; + } + return this.responseHeaders.get(header); + } + + public Response assertHeaderPresent(String header) { + if (!this.responseHeaders.containsKey(header)) { + throw new AssertionError(String.format("Expected header is missing in response: %s", header)); + } + return this; + } + + public Response andAssertStatus(int expected) { + if (this.status == 204 && this.responseHeaders == null) { //204 = no content, response and header is null + Assertions.assertEquals(expected, this.status, String.format("Input: '%s'", this.payload)); + return this; + } + + if (this.status == 204) { //204 = no content, response is null + Assertions.assertEquals(expected, this.status, String.format("Input: '%s', \n activityId -> %s", + this.payload, + this.responseHeaders.get("activityId"))); + return this; + } + + if (this.responseHeaders != null) { + Assertions.assertEquals(expected, this.status, String.format("Input: '%s', \n Output: '%s' \n activityId -> %s", + this.payload, + this.response.toString(), + this.responseHeaders.get("activityId"))); + } else { + Assertions.assertEquals(expected, this.status, String.format("Input: '%s', \n Output: '%s'", + this.payload, + this.response.toString())); + + } + return this; + } + + public JsonNode extract(String path) { + return extractNode(path, this.response); + } + + public Integer getStatus() { + return status; + } + + public String getPayload() { + return payload; + } + + public Response saveBase64FieldAsFile(String field) { + String downloadsPath = endpoint.getStore().getConfig("harness.downloads.path", "target/downloads"); + try { + String[] base64Text = extract(field).asText().split(",", 2); + AllowedContentTypes type = AllowedContentTypes.getByMimeType(base64Text[0].replace("data:", "").replace(";base64", "")); + String finalFileName = endpoint.getStore().get(HarnessConfigConstants.TEST_SHORT_ID) + "-" + System.currentTimeMillis() + "." + type.getExtension(); + File file = Paths.get(downloadsPath, finalFileName).toFile(); + FileUtils.writeByteArrayToFile(file, Base64.getDecoder().decode(base64Text[1])); + } catch (IndexOutOfBoundsException e) { + throw new IllegalStateException("Unable to parse input Base64 text", e); + } catch (IOException e) { + throw new IllegalStateException("Unable to save downloaded file to " + downloadsPath, e); + } + return this; + } + + public RESP mapResponseIntoObject(Class responseObjectClass) { + String responseString = this.response.toString(); + try { + return jackson.readValue(responseString, responseObjectClass); + } catch (IOException possiblyErrorResponse) { + throw new AssertionError(String.format("HTTP POST response looks different than expected: %s", responseString), possiblyErrorResponse); + } + } + + public JsonAssert.ConfigurableJsonAssert andAssertWithAssertJ() { + return JsonAssertions.assertThatJson(this.response); + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/rest/RestRequest.java b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/RestRequest.java new file mode 100644 index 0000000..cdf9953 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/RestRequest.java @@ -0,0 +1,17 @@ +package cz.moneta.test.harness.support.rest; + +import cz.moneta.test.harness.support.util.Builder; +import cz.moneta.test.harness.support.util.RequestPoll; +import cz.moneta.test.harness.support.util.Level; + +import java.util.function.Function; + +public interface RestRequest extends Builder { + RESP send(); + + RequestPoll pollUntil(Function extractor); + + B log(String template, Function... args); + + B log(Level level, String template, Function... args); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/rest/RestUtils.java b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/RestUtils.java new file mode 100644 index 0000000..8312898 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/rest/RestUtils.java @@ -0,0 +1,16 @@ +package cz.moneta.test.harness.support.rest; + +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; +import java.util.Map; + +public class RestUtils { + + @SuppressWarnings("unchecked") + public static MultivaluedMap toMultiMap(Map map) { + return map.entrySet() + .stream() + .collect(MultivaluedHashMap::new, (m, e) -> m.putSingle(e.getKey(), (T) e.getValue()), Map::putAll); + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/selenium/ClasspathFileDetector.java b/test-harness/src/main/java/cz/moneta/test/harness/support/selenium/ClasspathFileDetector.java new file mode 100644 index 0000000..643ba8a --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/selenium/ClasspathFileDetector.java @@ -0,0 +1,41 @@ +package cz.moneta.test.harness.support.selenium; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.openqa.selenium.remote.FileDetector; + +import java.io.File; +import java.util.Arrays; +import java.util.Optional; +import java.util.stream.Collector; + +public class ClasspathFileDetector implements FileDetector { + + private static final Logger LOGGER = LogManager.getLogger(ClasspathFileDetector.class); + + private static final Collector PATH_COLLECTOR = Collector.of( + StringBuilder::new, + StringBuilder::append, + StringBuilder::append, + StringBuilder::toString); + + @Override + public File getLocalFile(CharSequence... keys) { + LOGGER.debug(String.format("About to resolve file on classpath for keys: %s", keys)); + return Optional.ofNullable(keys) + .map(k -> { + String path = Arrays.stream(k).collect(PATH_COLLECTOR); + LOGGER.debug("Path: {}", path); + return path; + }) + .map(p -> { + File file = new File(p); + LOGGER.debug("File exists: {}", file.exists()); + LOGGER.debug("File isFile: {}", file.isFile()); + return file; + }) + .filter(File::exists) + .filter(File::isFile) + .orElse(null); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/util/BaseRequestBuilder.java b/test-harness/src/main/java/cz/moneta/test/harness/support/util/BaseRequestBuilder.java new file mode 100644 index 0000000..44eddf6 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/util/BaseRequestBuilder.java @@ -0,0 +1,128 @@ +package cz.moneta.test.harness.support.util; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.exception.HarnessException; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.commons.lang3.tuple.Triple; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Stream; + +@SuppressWarnings("unchecked") +public abstract class BaseRequestBuilder { + + protected final StoreAccessor harness; + private Function pollElementExtractor; + private int pollDelay = 500; + private int pollRetries = 10; + protected List> responseLoggers = new ArrayList<>(); + + public BaseRequestBuilder(StoreAccessor harness) { + this.harness = harness; + } + + protected Optional handleLog(Object proxy, Method method, Object[] args) { + return Optional.of(method) + .filter(m -> "log".equals(m.getName())) + .map(m -> { + if (Level.class.equals(m.getParameterTypes()[0])) { + return Triple.of((Level) args[0], (String) args[1], (Function[]) args[2]); + } else { + return Triple.of(Level.INFO, (String) args[0], (Function[]) args[1]); + } + }) + .map(t -> { + responseLoggers.add((RESP r) -> harness.log(t.getLeft(), t.getMiddle(), Arrays + .stream(t.getRight()).map(a -> a.apply(r)).toArray())); + return proxy; + }); + } + + protected Optional handleThen(Object proxy, Method method, Object[] args) { + return Optional.of(method) + .filter(m -> "then".equals(m.getName())) + .filter(m -> ArrayUtils.isNotEmpty(args)) + .map(m -> args[0]) + .filter(Function.class::isInstance) + .map(Function.class::cast) + .map(f -> f.apply(proxy)); + } + + protected Optional handlePollUntil(Object proxy, Method method, Object[] args) { + return Optional.of(method) + .filter(m -> "pollUntil".equals(m.getName())) + .map(m -> { + pollElementExtractor = (Function) args[0]; + return proxy; + }); + } + + protected Optional handlePollDelay(Object proxy, Method method, Object[] args) { + return Optional.of(method) + .filter(m -> "retryDelayMillis".equals(m.getName())) + .map(m -> { + pollDelay = (int) args[0]; + return proxy; + }); + } + + protected Optional handlePollRetries(Object proxy, Method method, Object[] args) { + return Optional.of(method) + .filter(m -> "maxRetries".equals(m.getName())) + .map(m -> { + pollRetries = (int) args[0]; + return proxy; + }); + } + + protected Optional handlePollEvalFunction(Object proxy, Method method, Object[] args) { + return Stream.>>>of( + Pair.of("isNull", () -> Objects::isNull), + Pair.of("isNotNull", () -> Objects::nonNull), + Pair.of("isEqual", () -> o -> Objects.equals(args[0], o))) + .filter(p -> method.getName().equals(p.getLeft())) + .findFirst() + .map(Pair::getRight) + .map(Supplier::get) + .map(f -> doPoll(proxy, f)); + } + + private RESP doPoll(Object proxy, Function evalFunction) { + return Stream.iterate(0, this::delay) + .limit(pollRetries) + .map(i -> doSend(proxy)) + .filter(Optional::isPresent) + .map(Optional::get) + .filter(res -> { + Boolean result = pollElementExtractor.andThen(evalFunction).apply(res); + if (!result) { + harness.log(Level.INFO, "Poll unsuccessful (response was: {})", res.toString()); + } + return result; + }) + .findFirst() + .orElseThrow(() -> new HarnessException(String.format("Poll failed. Tried %d time(s) with delay %d", pollRetries, pollDelay))); + } + + protected abstract Optional doSend(Object proxy); + + private int delay(int i) { + try { + TimeUnit.MILLISECONDS.sleep(pollDelay); + } catch (InterruptedException e) { + // + } + return i; + } + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/util/Builder.java b/test-harness/src/main/java/cz/moneta/test/harness/support/util/Builder.java new file mode 100644 index 0000000..c69f61e --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/util/Builder.java @@ -0,0 +1,8 @@ +package cz.moneta.test.harness.support.util; + +import java.util.function.Function; + +@FunctionalInterface +public interface Builder { + T then(Function shortcut); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/util/FileReader.java b/test-harness/src/main/java/cz/moneta/test/harness/support/util/FileReader.java new file mode 100644 index 0000000..89b807d --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/util/FileReader.java @@ -0,0 +1,48 @@ +package cz.moneta.test.harness.support.util; + +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.apache.commons.io.IOUtils; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Optional; + +public class FileReader { + @Deprecated(forRemoval = true) + public static String readFileFromResourcesOld(String path) { + return Optional.ofNullable(RawRestRequest.Builder.class.getClassLoader().getResource(path)) + .map(url -> { + try { + return url.toURI(); + } catch (URISyntaxException e) { + throw new IllegalArgumentException("Resource not found: " + path); + } + }) + .map(Paths::get) + .map(p -> { + try { + return Files.lines(p); + } catch (IOException e) { + throw new IllegalStateException("Resource not read from file: " + path); + } + }) + .orElseThrow(() -> new IllegalArgumentException("Resource not found: " + path)) + .reduce(new StringBuilder(), StringBuilder::append, StringBuilder::append) + .toString(); + } + + public static String readFileFromResources(String path) { + return Optional.ofNullable(RawRestRequest.Builder.class.getClassLoader().getResource(path)) + .map(url -> { + try { + return IOUtils.toString(url, Charset.defaultCharset()); + } catch (IOException e) { + throw new IllegalArgumentException("Resource cannot be read: " + path); + } + }) + .orElseThrow(() -> new IllegalArgumentException("Resource not found: " + path)); + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/util/Level.java b/test-harness/src/main/java/cz/moneta/test/harness/support/util/Level.java new file mode 100644 index 0000000..35c47c8 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/util/Level.java @@ -0,0 +1,5 @@ +package cz.moneta.test.harness.support.util; + +public enum Level { + DEBUG, INFO, WARN, ERROR +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/util/RequestPoll.java b/test-harness/src/main/java/cz/moneta/test/harness/support/util/RequestPoll.java new file mode 100644 index 0000000..7b36fab --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/util/RequestPoll.java @@ -0,0 +1,20 @@ +package cz.moneta.test.harness.support.util; + +public interface RequestPoll { + + /** + * default is 500 milliseconds + */ + RequestPoll retryDelayMillis(int delay); + + /** + * default is 10 retries + */ + RequestPoll maxRetries(int retries); + + RESP isNull(); + + RESP isNotNull(); + + RESP isEqual(Object object); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/util/Template.java b/test-harness/src/main/java/cz/moneta/test/harness/support/util/Template.java new file mode 100644 index 0000000..755f9bd --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/util/Template.java @@ -0,0 +1,47 @@ +package cz.moneta.test.harness.support.util; + +import org.stringtemplate.v4.ST; + +/** + * StringTemplate + */ +public class Template { + + ST template; + + public static Template fromFilepath(String filePath) { + return new Template(FileReader.readFileFromResources(filePath)); + } + + public Template(String templateString) { + this.template = new ST(templateString); + } + + public Template set(String variable, String value) { + this.template.add(variable, value); + return this; + } + + public Template set(String variable, Template value) { + this.template.add(variable, value.render()); + return this; + } + + public Template setQuoted(String variable, String value) { + return set(variable, (value != null) ? String.format("\"%s\"", value) : null); + } + + public Template setQuoted(String variable, Template value) { + return setQuoted(variable, value.render()); + } + + public Template setRawAttribute(String variable, Object value) { + this.template.add(variable, value); + return this; + } + + public String render() { + return template.render(); + } +} + diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/AcceptAlert.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/AcceptAlert.java new file mode 100644 index 0000000..6287496 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/AcceptAlert.java @@ -0,0 +1,41 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation is used for accept alert window on the web. Parameter waitSecondsForAlert is mandatory. If alert text does not contains + * defined expectedAlertText AssertException is thrown.
+ * Example: + *
+ *         {@literal @}AcceptAlert (waitSecondsForAlert = SOME_TIMEOUT)
+ *          SomePage acceptAlert();
+ *    
+ * + * Example2:
+ *
+ *         {@literal @}AcceptAlert (
+ *               waitSecondsForAlert = SOME_TIMEOUT,
+ *               expectedAlertText = SOME_TEXT,
+ *          )
+ *          SomePage checkAlertTextandAcceptAlert();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface AcceptAlert { + + /** + * Maximum waiting time (timeout) for Alert window + */ + + int waitSecondsForAlert(); + + /** + * Text for comparison with text in the alert window + */ + + String expectedAlertText() default ""; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Builder.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Builder.java new file mode 100644 index 0000000..ddb980e --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Builder.java @@ -0,0 +1,8 @@ +package cz.moneta.test.harness.support.web; + +import java.util.function.Function; + +@FunctionalInterface +public interface Builder { + T then(Function shortcut); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Builders.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Builders.java new file mode 100644 index 0000000..0c34525 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Builders.java @@ -0,0 +1,746 @@ +package cz.moneta.test.harness.support.web; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.exception.ExceptionMessages; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.reflect.ReflectionUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.commons.lang3.tuple.Triple; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.junit.jupiter.api.Assertions; +import org.openqa.selenium.WebDriverException; + +import java.io.File; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import java.util.stream.Stream; + +@SuppressWarnings("unchecked") +public final class Builders { + + private static final Logger LOG = LogManager.getLogger(Builders.class); + + private Builders() { + } + + public static > A newWebFlowBuilder(Class pageFlow, WebEndpoint endpoint, StoreAccessor harness) { + + A builder = (A) Proxy.newProxyInstance( + Thread.currentThread().getContextClassLoader(), + new Class[]{pageFlow}, + getInvocationHandler(endpoint, harness)); + + Stream.of("beforePageLoad", "loadPage") + .forEach(m -> invokeOnLoadMethod(m, builder, endpoint)); + processClassAnnotations(builder, endpoint, harness); + return builder; + } + + private static > void processClassAnnotations(A builder, WebEndpoint endpoint, StoreAccessor harness) { + List> interfaces = getInterfaces(builder.getClass(), new ArrayList<>()); + interfaces.stream() + .flatMap(i -> Arrays.stream(i.getAnnotationsByType(Wait.class))) + .sorted(Comparator.comparingInt(wait -> wait.until().getPriority())) + .collect(Collectors.collectingAndThen(Collectors.toList(), listWait -> evaluateGoneWaits(listWait))) + .forEach(w -> doWait(w, endpoint)); + interfaces.stream() + .flatMap(i -> Arrays.stream(i.getAnnotationsByType(WaitOrFailOnErrorElement.class))) + .forEach(w -> doWaitOrFailOnErrorElement(w, endpoint)); + doStoreElementContent(endpoint, harness, interfaces.stream() + .flatMap(i -> Arrays.stream(i.getAnnotationsByType(StoreElementContent.class))) + .toArray(StoreElementContent[]::new)); + doLog(endpoint, harness, interfaces.stream() + .flatMap(i -> Arrays.stream(i.getAnnotationsByType(Log.class))) + .toArray(Log[]::new)); + } + + private static List evaluateGoneWaits(List listWait) { + if (hasOnlyUntilGoneWait(listWait)) { + throw new HarnessException(ExceptionMessages.NOT_POSSIBLE_TO_USE_SINGLE_GONE_WAIT); + } + return listWait; + } + + private static boolean hasOnlyUntilGoneWait(List listWait) { + return listWait.size() == 1 && listWait.get(0).until() == Until.GONE; + } + + private static > void invokeOnLoadMethod(String methodName, A builder, WebEndpoint endpoint) { + getInterfaces(builder.getClass(), new ArrayList<>()).stream() + .flatMap(i -> Arrays.stream(i.getMethods())) + .filter(m -> methodName.equals(m.getName())) + .filter(Method::isDefault) + .findFirst() + .ifPresent(m -> invokeDefaultMethod(builder, m, endpoint, endpoint)); + } + + private static List> getInterfaces(Class clazz, List> accumulator) { + Arrays.stream(clazz.getInterfaces()).forEach(c -> { + accumulator.add(c); + getInterfaces(c, accumulator); + }); + return accumulator; + } + + private static InvocationHandler getInvocationHandler(WebEndpoint endpoint, StoreAccessor harness) { + return (proxy, method, args) -> { + if (StoreAccessor.class.equals(method.getDeclaringClass())) { + return method.invoke(harness, args); + } + try { + return builderOperations(endpoint, harness, proxy, method, args); + } catch (WebDriverException e) { + throw new HarnessException( + String.format("Error invoking method '%s#%s' (url: %s). Error message: %s", + method.getDeclaringClass().getSimpleName(), + method.getName(), + endpoint.getCurrentUrl(), + e.getMessage()), e); + } + }; + } + + private static Object handleReturnType(WebEndpoint endpoint, Object proxy, Method method, Object[] args, StoreAccessor harness) { + return Stream + .>>of( + () -> handleThen(proxy, method, args), + () -> doGetCookie(endpoint, method), + () -> doGetContent(endpoint, method), + () -> resolvePage(endpoint, proxy, method, harness)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElse(proxy); + } + + private static Optional handleThen(Object proxy, Method method, Object[] args) { + return Arrays.stream(Builder.class.getMethods()) + .filter(m -> "then".equals(m.getName())) + .filter(method::equals) + .findFirst() + .map(m -> args[0]) + .filter(Function.class::isInstance) + .map(Function.class::cast) + .map(f -> f.apply(proxy)); + } + + private static Optional doGetContent(WebEndpoint endpoint, Method method) { + return Arrays.stream(method.getAnnotationsByType(GetElementContent.class)) + .filter(type -> StringUtils.isNotBlank(type.value())) + .findFirst() + .map(type -> Optional.ofNullable(endpoint.getText(type.value(), type.by())) + .filter(StringUtils::isNotBlank) + .orElseThrow(() -> new HarnessException("Element '" + type.value() + "' content could not be read (url: " + endpoint.getCurrentUrl() + ")"))); + } + + private static void doStoreElementContent(WebEndpoint endpoint, StoreAccessor harness, StoreElementContent[] secs) { + doStoreElementContent(endpoint, harness, secs, null); + } + + private static void doStoreElementContent(WebEndpoint endpoint, StoreAccessor harness, StoreElementContent[] secs, Object[] args) { + Arrays.stream(secs) + .forEach(sec -> Optional.ofNullable(endpoint.getText(constructDynamicElement(sec.value(), sec.isStringDynamicXpath(), args), sec.by())) + .filter(StringUtils::isNotBlank) + .map(c -> { + LOG.debug(() -> String.format("StoreElementContent: %s", sec.value())); + harness.store(sec.storeKey(), c); + return c; + }) + .orElseThrow(() -> new HarnessException("Element '" + sec.value() + "' content could not be read (url: " + endpoint.getCurrentUrl() + ")"))); + } + + private static void doLog(WebEndpoint endpoint, StoreAccessor harness, Log[] logs) { + Arrays.stream(logs) + .forEach(log -> Optional.ofNullable(endpoint.getText(log.value(), log.by())) + .filter(StringUtils::isNotBlank) + .map(c -> { + harness.log(log.level(), log.template(), c); + return c; + }) + .orElseThrow(() -> new HarnessException("Element '" + log.value() + "' content could not be logged (url: " + endpoint.getCurrentUrl() + ")"))); + } + + private static Optional doGetCookie(WebEndpoint endpoint, Method method) { + return Arrays.stream(method.getAnnotationsByType(GetCookie.class)) + .filter(type -> StringUtils.isNotBlank(type.value())) + .findFirst() + .map(type -> Optional.ofNullable(endpoint.getCookie(type.value())) + .orElseThrow(() -> new HarnessException("No cookie by name '" + type.value() + "' found in session (url: " + endpoint.getCurrentUrl() + ")"))); + } + + private static Object builderOperations(WebEndpoint endpoint, StoreAccessor harness, Object proxy, Method method, Object[] args) { + doSwitchToDefaultContent(endpoint, method); + doSwitchFrame(endpoint, method); + doWaitOrFailOnErrorElement(endpoint, method, args); + doWait(endpoint, method, args); + checkElement(endpoint, method, args); + checkElementContent(endpoint, method, args); + doLog(endpoint, harness, method.getAnnotationsByType(Log.class)); + doStoreElementContent(endpoint, harness, method.getAnnotationsByType(StoreElementContent.class), args); + doType(endpoint, method, args); + doTypeFileUpload(endpoint, method, args); + doSelect(endpoint, method, args); + doExecuteScript(endpoint, method, args); + doClick(endpoint, method, args); + doKeyPress(endpoint, method, args); + doCustomAction(proxy, method, endpoint, args); + doDismissAlert(endpoint, method); + doAcceptAlert(endpoint, method); + return handleReturnType(endpoint, proxy, method, args, harness); + } + + private static void doKeyPress(WebEndpoint endpoint, Method method, Object[] args) { + Arrays.stream(method.getAnnotationsByType(KeyPress.class)) + .filter(ks -> ArrayUtils.isNotEmpty(ks.value())) + .forEach(ks -> { + if (ks.chord()) { + endpoint.sendKeysAsChord(ks.value()); + } else { + endpoint.sendKeysOneAtATime(ks.value()); + } + doWait(ks.andWait(), endpoint, args); + }); + } + + private static Object invokeValueSupplier(Object proxy, String methodName, WebEndpoint endpoint) { + return Optional.ofNullable(methodName) + .filter(StringUtils::isNotBlank) + .map(m -> { + Class page = proxy.getClass().getInterfaces()[0]; + try { + return invokeDefaultMethod(proxy, page.getMethod(m), endpoint); + } catch (NoSuchMethodException e) { + throw new HarnessException("Could not resolve supplier method '" + + page.getSimpleName() + "#" + m + + "' (url: " + endpoint.getCurrentUrl() + ")", e); + } + }) + .orElse(""); + } + + private static void doSwitchToDefaultContent(WebEndpoint endpoint, Method method) { + Arrays.stream(method.getAnnotationsByType(SwitchToDefaultContent.class)) + .findFirst() + .ifPresent(s -> endpoint.switchToDefaultContent()); + } + + private static void doSwitchFrame(WebEndpoint endpoint, Method method) { + Arrays.stream(method.getAnnotationsByType(SwitchToFrame.class)) + .filter(switchToFrame -> StringUtils.isNotBlank(switchToFrame.value())) + .forEach(switchToFrame -> { + LOG.debug(() -> String.format("SwitchToFrame: %s", switchToFrame.value())); + endpoint.switchToFrame(switchToFrame.value(), switchToFrame.by()); + }); + } + + private static > Optional resolvePage(WebEndpoint endpoint, Object proxy, Method method, + StoreAccessor harness) { + return Stream.>>of( + () -> handlePage(endpoint, method, harness), + () -> handleWebFlowReturnType(endpoint, proxy, method, harness), + () -> Optional.of((A) proxy)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .map(Object.class::cast) + .findFirst(); + } + + private static > Optional handlePage(WebEndpoint endpoint, Method method, StoreAccessor harness) { + return Arrays.stream(method.getAnnotationsByType(Page.class)) + .findFirst() + .map(p -> doNavigation(p, endpoint)) + .map(Page::value) + .map(page -> { + LOG.debug(() -> String.format("Page: %s", page.getSimpleName())); + return newWebFlowBuilder((Class) page, endpoint, harness); + }); + } + + private static > Optional handleWebFlowReturnType(WebEndpoint endpoint, Object proxy, Method method, StoreAccessor harness) { + return Optional.of(method.getReturnType()) + .filter(rt -> !rt.isInstance(proxy)) + .filter(WebFlow.class::isAssignableFrom) + .map(page -> { + LOG.debug(() -> String.format("Page (return): %s", page.getSimpleName())); + return newWebFlowBuilder((Class) page, endpoint, harness); + }); + } + + private static Page doNavigation(Page page, WebEndpoint endpoint) { + Stream.>of( + Optional.of(page.path()) + .filter(StringUtils::isNotBlank) + .map(path -> () -> endpoint.changePath(path)), + Optional.of(page.url()) + .filter(StringUtils::isNotBlank) + .map(url -> () -> endpoint.changeUrl(url))) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .ifPresent(Runnable::run); + return page; + } + + private static void doWaitOrFailOnErrorElement(WaitOrFailOnErrorElement waitOrFailOnError, WebEndpoint endpoint) { + doWaitOrFailOnErrorElement(waitOrFailOnError, endpoint, null); + } + + private static void doWaitOrFailOnErrorElement(WebEndpoint endpoint, Method method, Object[] args) { + Arrays.stream(method.getAnnotationsByType(WaitOrFailOnErrorElement.class)) + .forEach(w -> doWaitOrFailOnErrorElement(w, endpoint, args)); + } + + private static void doWaitOrFailOnErrorElement(WaitOrFailOnErrorElement waitOrFailOnError, WebEndpoint endpoint, Object[] args) { + Stream.>of( + Optional.of(waitOrFailOnError.value()) + .filter(StringUtils::isNotEmpty) + .map(present -> () -> endpoint.waitOrFailOnErrorElement(waitOrFailOnError.waitSecondsForElement(), + constructDynamicElement(present, waitOrFailOnError.isStringDynamicXpath(), args), + waitOrFailOnError.valueToFail(), + waitOrFailOnError.by()))) + .filter(Optional::isPresent) + .map(Optional::get) + .forEach(Runnable::run); + } + + private static void doClick(WebEndpoint endpoint, Method method, Object[] args) { + Click[] clicks = method.getAnnotationsByType(Click.class); + AtomicInteger index = new AtomicInteger(0); + + Arrays.stream(clicks) + .filter(click -> StringUtils.isNotBlank(click.value())) + .forEach(click -> { + LOG.debug(() -> String.format("Click: %s", constructDynamicElement(click.value(), click.isStringDynamicXpath(), args))); + try { + if (click.isStringDynamicXpath()) { + clickToElement(click, endpoint, new Object[]{args[index.getAndIncrement()]}); + } else { + clickToElement(click, endpoint, args); + } + } catch (ArrayIndexOutOfBoundsException | NullPointerException e) { + throw new IllegalStateException(method.getDeclaringClass().getSimpleName() + "#" + method.getName() + + " The number of arguments passed to a CheckElementPresent-annotated method with isDynamicXpath = true parameter " + + "must match the annotation count!", e); + } + doWait(click.andWait(), endpoint, args); + }); + } + + private static void clickToElement(Click click, WebEndpoint endpoint, Object[] args) { + Clickable clickable = () -> constructDynamicElement(click.value(), click.isStringDynamicXpath(), args); + if (click.jsClick()) { + endpoint.jsClick(clickable, click.by()); + } else { + endpoint.click(clickable, click.by()); + } + } + + private static void doType(WebEndpoint endpoint, Method method, Object[] args) { + TypeInto[] annotations = method.getAnnotationsByType(TypeInto.class); + String className = method.getDeclaringClass().getSimpleName(); + String methodName = method.getName(); + int numberOfArgsToInto = annotations.length; + int numberOfArgsToXpathAndInto = 2 * numberOfArgsToInto; + boolean dynamicXpath = isContainsDynamicXpathInTypeInto(annotations); + + if (dynamicXpath && !checkNumbersOfDynamicXpathInTypeInto(annotations)) { + throw new IllegalStateException("All TypeInto-annotated in container method '" + + className + "#" + methodName + + "' must have DynamicXpath or normal xpath"); + } + + if (dynamicXpath) { + checkParametersCountTypeInto(annotations, className, methodName, numberOfArgsToXpathAndInto, args); + IntStream.range(0, annotations.length) + .mapToObj(i -> Triple.of(annotations[i], String.valueOf(args[2 * i]), String.valueOf(args[2 * i + 1]))) + .filter(p -> StringUtils.isNotBlank(p.getLeft().value())) + .forEach(p -> { + LOG.debug(() -> String.format("TypeInto: %s", p.getLeft().value())); + if (p.getLeft().jsType()) { + endpoint.jsType(() -> constructDynamicElement(p.getLeft().value(), p.getLeft().isStringDynamicXpath(), new String[]{p.getMiddle()}), p.getRight(), p.getLeft().clear(), p.getLeft().by()); + } else { + endpoint.type(() -> constructDynamicElement(p.getLeft().value(), p.getLeft().isStringDynamicXpath(), new String[]{p.getMiddle()}), p.getRight(), p.getLeft().clear(), p.getLeft().by()); + } + doWait(p.getLeft().andWait(), endpoint, args); + }); + } else { + checkParametersCountTypeInto(annotations, className, methodName, numberOfArgsToInto, args); + IntStream.range(0, annotations.length) + .mapToObj(i -> Pair.of(annotations[i], String.valueOf(args[i]))) + .filter(p -> StringUtils.isNotBlank(p.getLeft().value())) + .forEach(p -> { + LOG.debug(() -> String.format("TypeInto: %s", p.getLeft().value())); + if (p.getLeft().jsType()) { + endpoint.jsType(p.getLeft()::value, p.getRight(), p.getLeft().clear(), p.getLeft().by()); + } else { + endpoint.type(p.getLeft()::value, p.getRight(), p.getLeft().clear(), p.getLeft().by()); + } + doWait(p.getLeft().andWait(), endpoint, args); + }); + } + } + + private static void checkParametersCountTypeInto(TypeInto[] annotations, String className, String methodName, int expectedArgs, Object[] args) { + if (annotations.length > 0 && (args == null || expectedArgs != args.length)) { + throw new IllegalStateException("The number of arguments passed to a TypeInto-annotated method '" + + className + "#" + methodName + + "' must match the annotation count (input params) and in case is used dynamic xpath must be two params for every annotations (xpath params and input param)!"); + } + } + + private static boolean isContainsDynamicXpathInTypeInto(TypeInto[] annotations) { + return Stream.of(annotations) + .anyMatch(TypeInto::isStringDynamicXpath); + } + + private static boolean checkNumbersOfDynamicXpathInTypeInto(TypeInto[] annotations) { + return Stream.of(annotations) + .allMatch(TypeInto::isStringDynamicXpath); + } + + private static void doTypeFileUpload(WebEndpoint endpoint, Method method, Object[] args) { + FileUpload[] annotations = method.getAnnotationsByType(FileUpload.class); + String className = method.getDeclaringClass().getSimpleName(); + String methodName = method.getName(); + int numberOfArgs = annotations.length; + int numberOfArgsDynamic = 2 * numberOfArgs; + + boolean dynamicXpath = Stream.of(annotations).anyMatch(FileUpload::isStringDynamicXpath); + + if (dynamicXpath && !Stream.of(annotations).allMatch(FileUpload::isStringDynamicXpath)) { + throw new IllegalStateException("All TypeInto-annotated in container method '" + + className + "#" + methodName + + "' must have DynamicXpath or normal xpath"); + } + + if(dynamicXpath) { + checkParametersCountFileUpload(annotations, className, methodName, numberOfArgsDynamic, args); + IntStream.range(0, annotations.length) + .mapToObj(i -> Triple.of(annotations[i], String.valueOf(args[2 * i]), String.valueOf(args[2 * i + 1]))) + .filter(p -> StringUtils.isNotBlank(p.getLeft().value())) + .forEach(p -> { + LOG.debug(() -> String.format("TypeInto: %s", p.getLeft().value())); + + String typeIn = buildFilePathString(p.getRight()); + endpoint.type(() -> constructDynamicElement(p.getLeft().value(), p.getLeft().isStringDynamicXpath(), new String[]{p.getMiddle()}), typeIn, p.getLeft().clear(), p.getLeft().by()); + + doWait(p.getLeft().andWait(), endpoint, args); + }); + } else { + checkParametersCountFileUpload(annotations, className, methodName, numberOfArgs, args); + IntStream.range(0, annotations.length) + .mapToObj(i -> Pair.of(annotations[i], String.valueOf(args[i]))) + .filter(p -> StringUtils.isNotBlank(p.getLeft().value())) + .forEach(p -> { + LOG.debug(() -> String.format("TypeInto: %s", p.getLeft().value())); + + String typeIn = buildFilePathString(p.getRight()); + endpoint.type(p.getLeft()::value, typeIn, p.getLeft().clear(), p.getLeft().by()); + + doWait(p.getLeft().andWait(), endpoint, args); + }); + } + } + + private static void checkParametersCountFileUpload(FileUpload[] annotations, String className, String methodName, int expectedArgs, Object[] args) { + if (annotations.length > 0 && (args == null || expectedArgs != args.length)) { + throw new IllegalStateException("The number of arguments passed to a FileUpload-annotated method '" + + className + "#" + methodName + + "' must match the annotation count (input params) and in case is used dynamic xpath must be two params for every annotations (xpath params and input param)!"); + } + } + + private static String buildFilePathString(String path) { + LOG.debug("Looking for file location of: " + path); + // Try to get file path for resource file + try { + //Gets absolute resource file path from either disk or JAR file - format file:/path/to/jarfile.jar!/typeIn + String filePath = Builders.class.getClassLoader().getResource(path).getFile(); + if (!filePath.contains(".jar!")) { + path = filePath; + } + } catch (NullPointerException e) { + LOG.debug("Could not get file path for resource file: " + path + " Continuing as non-resource file."); + } + // Try to get file absolute path + try { + path = new File(path).getAbsolutePath(); + } catch (NullPointerException e) { + throw new HarnessException("Could not get absolute path for file: " + path); + } + + LOG.debug("Path to file: " + path); + + return path; + } + + private static void doWait(WebEndpoint endpoint, Method method, Object[] args) { + Wait[] waits = method.getAnnotationsByType(Wait.class); + String className = method.getDeclaringClass().getSimpleName(); + String methodName = method.getName(); + AtomicInteger index = new AtomicInteger(0); + + checkCountParametersWaitDynamicXpaths(waits, className, methodName, args); + Arrays.stream(waits) + .forEach(w -> { + if (w.isStringDynamicXpath()) { + doWait(w, endpoint, new Object[]{args[index.getAndIncrement()]}); + } else { + doWait(w, endpoint, args); + } + }); + } + + private static void doWait(Wait wait, WebEndpoint endpoint) { + doWait(wait, endpoint, null); + } + + private static void doWait(Wait wait, WebEndpoint endpoint, Object[] args) { + Stream.>of( + Optional.of(wait.value()) + .filter(ArrayUtils::isNotEmpty) + .map(present -> () -> endpoint.waitForElementsToLoad(wait.waitSecondsForElement(), wait.by(), + wait.until(), constructDynamicElements(present, wait.isStringDynamicXpath(), args))), + Optional.of(wait.explicitWaitSeconds()) + .filter(s -> s > 0) + .map(s -> () -> endpoint.sleepSeconds(s))) + .filter(Optional::isPresent) + .map(Optional::get) + .forEach(Runnable::run); + } + + private static void checkCountParametersWaitDynamicXpaths(Wait[] annotations, String className, String methodName, Object[] args) { + long countDynamicXpaths = Stream.of(annotations) + .filter(Wait::isStringDynamicXpath) + .count(); + + if (countDynamicXpaths >= 1 && countDynamicXpaths != args.length) { + throw new IllegalStateException("The number of arguments passed to dynamic annotated method '" + + className + "#" + methodName + + "' must match the annotations count with set dynamic xpath!"); + } + } + + private static void doSelect(WebEndpoint endpoint, Method method, Object[] args) { + Select[] annotations = method.getAnnotationsByType(Select.class); + if (annotations.length > 0 && (args == null || annotations.length != args.length)) { + throw new IllegalStateException("The number of arguments passed to a Select-annotated method '" + + method.getDeclaringClass().getSimpleName() + "#" + method.getName() + + "' must match the annotation count!"); + } + IntStream.range(0, annotations.length) + .mapToObj(i -> Pair.of(annotations[i], args[i])) + .filter(p -> StringUtils.isNotBlank(p.getLeft().value())) + .filter(p -> p.getRight() != null) + .forEach(p -> { + LOG.debug(() -> String.format("Select: %s", p.getLeft().value())); + if (p.getLeft().selectByOrder()) { + endpoint.selectByOptionOrder(p.getLeft().value(), (Integer) p.getRight(), p.getLeft().by()); + } else if (p.getRight() instanceof Integer || p.getRight() instanceof Long) { + endpoint.selectByValue(p.getLeft().value(), String.valueOf(p.getRight()), p.getLeft().by()); + } else { + String value; + if (SelectByValue.class.isInstance(p.getRight())) { + value = ((SelectByValue) p.getRight()).getValue(); + } else { + value = String.valueOf(p.getRight()); + } + endpoint.selectByVisibleText(p.getLeft().value(), value, p.getLeft().by()); + } + doWait(p.getLeft().andWait(), endpoint, args); + }); + } + + private static void doCustomAction(Object proxy, Method method, WebEndpoint endpoint, Object[] args) { + Optional.ofNullable(method) + .filter(m -> m.isAnnotationPresent(CustomAction.class)) + .map(Builders::checkForConflictingAnnotations) + .filter(Method::isDefault) + .ifPresent(m -> invokeDefaultMethod(proxy, m, endpoint, args)); + } + + private static Method checkForConflictingAnnotations(Method method) { + Stream.of(Click.class, TypeInto.class, Select.class, ExecuteJavaScript.class) + .map(method::getAnnotationsByType) + .filter(ArrayUtils::isNotEmpty) + .findAny() + .ifPresent(a -> { + throw new IllegalStateException("Cannot use @CustomAction with neither of @Click, @TypeInto, @Select, @ExecuteJavaScript annotations"); + }); + return method; + } + + private static void doExecuteScript(WebEndpoint endpoint, Method method, Object[] args) { + Arrays.stream(method.getAnnotationsByType(ExecuteJavaScript.class)) + .filter(type -> StringUtils.isNotBlank(type.value())) + .forEach(type -> endpoint.executeScript(type.value(), args)); + } + + private static void checkElement(WebEndpoint endpoint, Method method, Object[] args) { + CheckElementPresent[] annotations = method.getAnnotationsByType(CheckElementPresent.class); + AtomicInteger index = new AtomicInteger(0); + + Arrays.stream(annotations) + .filter(check -> StringUtils.isNotBlank(check.value())) + .forEach(check -> { + try { + if (check.isStringDynamicXpath()) { + checkElementPresent(endpoint, check, new Object[]{args[index.getAndIncrement()]}); + } else { + checkElementPresent(endpoint, check, args); + } + } catch (ArrayIndexOutOfBoundsException | NullPointerException e) { + throw new IllegalStateException(method.getDeclaringClass().getSimpleName() + "#" + method.getName() + + " The number of arguments passed to a CheckElementPresent-annotated method with isDynamicXpath = true parameter " + + "must match the annotation count!", e); + } + }); + } + + private static void checkElementPresent(WebEndpoint endpoint, CheckElementPresent checkElement, Object[] args) { + endpoint.isAtLeastOneElementPresent(constructDynamicElement(checkElement.value(), checkElement.isStringDynamicXpath(), args), checkElement.by()); + } + + private static void checkElementContent(WebEndpoint endpoint, Method method, Object[] args) { + CheckElementContent[] annotations = method.getAnnotationsByType(CheckElementContent.class); + String className = method.getDeclaringClass().getSimpleName(); + String methodName = method.getName(); + int numberOfArgsToCheck = annotations.length; + int numberOfArgsToXpathAndCheck = 2 * numberOfArgsToCheck; + boolean dynamicXpath = isContainsDynamicXpathInCheckElementContent(annotations); + + if (dynamicXpath && !checkNumbersOfDynamicXpathInCheckElementContent(annotations)) { + throw new IllegalStateException("All CheckElementContent-annotated in container method '" + + className + "#" + methodName + + "' must have DynamicXpath or normal xpath"); + } + + if (dynamicXpath) { + checkParametersCountCheckElementContent(annotations, className, methodName, numberOfArgsToXpathAndCheck, args); + IntStream.range(0, annotations.length) + .mapToObj(i -> Triple.of(annotations[i], String.valueOf(args[2 * i]), String.valueOf(args[2 * i + 1]))) + .filter(check -> StringUtils.isNotBlank(check.getLeft().value())) + .forEach(check -> { + LOG.debug(() -> String.format("CheckElementContent: " + check.getLeft().value(), check.getMiddle())); + endpoint.checkElementContent(constructDynamicElement(check.getLeft().value(), check.getLeft().isStringDynamicXpath(), new String[]{check.getMiddle()}), check.getRight(), check.getLeft().by()); + }); + } else { + checkParametersCountCheckElementContent(annotations, className, methodName, numberOfArgsToCheck, args); + Arrays.stream(annotations) + .filter(check -> StringUtils.isNotBlank(check.value())) + .forEach(check -> { + String value; + if (SelectByValue.class.isInstance(args[0])) { + value = ((SelectByValue) args[0]).getValue(); + } else { + value = String.valueOf(args[0]); + } + LOG.debug(() -> String.format("CheckElementContent: %s", check.value())); + endpoint.checkElementContent(check.value(), value, check.by()); + }); + } + } + + private static void checkParametersCountCheckElementContent(CheckElementContent[] annotations, String className, String methodName, int expectedArgs, Object[] args) { + if (annotations.length > 0 && (args == null || expectedArgs != args.length)) { + throw new IllegalStateException("The number of arguments passed to a CheckElementContent-annotated method '" + + className + "#" + methodName + + "' must match the annotation count (input params) and in case is used dynamic xpath must be two params for every annotations (xpath params and input param)!"); + } + } + + private static boolean isContainsDynamicXpathInCheckElementContent(CheckElementContent[] annotations) { + return Stream.of(annotations) + .anyMatch(CheckElementContent::isStringDynamicXpath); + } + + private static boolean checkNumbersOfDynamicXpathInCheckElementContent(CheckElementContent[] annotations) { + return Stream.of(annotations) + .allMatch(CheckElementContent::isStringDynamicXpath); + } + + private static T invokeDefaultMethod(Object proxy, Method method, WebEndpoint endpoint, Object... args) { + return ReflectionUtils.invokeDefaultMethod( + proxy, + method, + (String message) -> String.format("Error invoking method '%s#%s' (url: %s). Error message: %s", + method.getDeclaringClass().getSimpleName(), + method.getName(), + endpoint.getCurrentUrl(), + message), + args); + } + + private static String constructDynamicElement(String path, boolean isStringDynamicXpath, Object[] args) { + Optional dynamicXpath; + if (isStringDynamicXpath) { + dynamicXpath = Optional.ofNullable(args) + .map(a -> Arrays.stream(a) + .filter(String.class::isInstance) + .map(String.class::cast) + .toArray()); + } else { + dynamicXpath = Optional.ofNullable(args) + .map(a -> Arrays.stream(a) + .filter(DynamicPathPart.class::isInstance) + .map(DynamicPathPart.class::cast) + .map(DynamicPathPart::getValue) + .toArray()); + } + return dynamicXpath.map(a -> String.format(path, a)) + .orElse(path); + } + + private static String[] constructDynamicElements(String[] path, boolean isStringDynamicXpath, Object[] args) { + return Arrays.stream(path) + .map(p -> constructDynamicElement(p, isStringDynamicXpath, args)) + .toArray(String[]::new); + } + + private static void doDismissAlert(WebEndpoint endpoint, Method method) { + Arrays.stream(method.getAnnotationsByType(DismissAlert.class)) + .peek(dismissAlert -> { + if (dismissAlert.waitSecondsForAlert() <= 0) { + throw new IllegalStateException("Your waitSecondsForAlert in DismissAlert annotation on " + method.getName() + " can not be " + dismissAlert.waitSecondsForAlert() + " Set value to > 0"); + } + }) + .forEach(s -> { + if (s.expectedAlertText().isEmpty()) { + endpoint.dismissAlert(s.waitSecondsForAlert()); + } else { + Assertions.assertEquals(s.expectedAlertText(), endpoint.getAlertText(s.waitSecondsForAlert())); + endpoint.dismissAlert(s.waitSecondsForAlert()); + } + }); + } + + private static void doAcceptAlert(WebEndpoint endpoint, Method method) { + Arrays.stream(method.getAnnotationsByType(AcceptAlert.class)) + .peek(acceptAlert -> { + if (acceptAlert.waitSecondsForAlert() <= 0) { + throw new IllegalStateException("Your waitSecondsForAlert in AcceptAlert annotation on " + method.getName() + " can not be " + acceptAlert.waitSecondsForAlert() + " Set value to > 0"); + } + }) + .forEach(s -> { + if (s.expectedAlertText().isEmpty()) { + endpoint.acceptAlert(s.waitSecondsForAlert()); + } else { + Assertions.assertEquals(s.expectedAlertText(), endpoint.getAlertText(s.waitSecondsForAlert())); + endpoint.acceptAlert(s.waitSecondsForAlert()); + } + }); + } +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementContent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementContent.java new file mode 100644 index 0000000..d3f7678 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementContent.java @@ -0,0 +1,43 @@ +package cz.moneta.test.harness.support.web; + + +import java.lang.annotation.*; + +/** + * Annotation is used for check element content. String parameter is mandatory. If Element does not contains + * defined content AssertException is thrown.
+ * Example: + *
+ *         {@literal @}CheckElementContent (SOME_VALUE)
+ *          SomePage checkSomeElementContent(String content);
+ *    
+ * {@link #by()} can be used for use XPATH, ID or DEFAULT to identify element.
+ * Example2:
+ *
+ *         {@literal @}CheckElementContent (
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          SomePage checkSomeElementContent(String content);
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(CheckElementContents.class) +public @interface CheckElementContent { + /** + * Value for element identification. + */ + String value(); + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * @see Lookup + */ + Lookup by() default Lookup.DEFAULT; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. In container of method with TypeInto annotation you must have everywhere use just normal xpath or dynamic xpath! + */ + boolean isStringDynamicXpath() default false; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementContents.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementContents.java new file mode 100644 index 0000000..d150599 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementContents.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface CheckElementContents { + CheckElementContent[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementPresent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementPresent.java new file mode 100644 index 0000000..2c75f12 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementPresent.java @@ -0,0 +1,58 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Checks if element is present, if not TimeoutException is thrown.
+ * Dynamic path functionality is supported. See {@link cz.moneta.test.harness.support.web.DynamicPathPart} + * for use or open @see
Confluence Best Practises page
+ * Example: + *
+ *        {@literal @}CheckElementPresent (SOME_VALUE)
+ *          SomePage someElement();
+ *    
+ * {@link #by()} can be used when there is need to use other than default lookup function.
+ * {@link #isStringDynamicXpath()} - Use to set String from method in xpath. Boolean type. The default value is: false.
+ * + * Example2: + *
+ *        {@literal @}CheckElementPresent (value = SOME_XPATH_VALUE,
+ *                                         by = Lookup.XPATH)
+ *          SomePage someElement();
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example3:
+ *
+ *         {@literal @}CheckElementPresent{
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          SomePage someElement();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(CheckElementsPresent.class) +public @interface CheckElementPresent { + + /** + * Value for element identification. + */ + String value(); + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see Lookup + */ + Lookup by() default Lookup.DEFAULT; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. + */ + boolean isStringDynamicXpath() default false; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementsPresent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementsPresent.java new file mode 100644 index 0000000..ea9419e --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/CheckElementsPresent.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface CheckElementsPresent { + CheckElementPresent[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Click.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Click.java new file mode 100644 index 0000000..c921cc4 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Click.java @@ -0,0 +1,71 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Click annotation is used for click on element.
+ * Dynamic path functionality is supported. See {@link cz.moneta.test.harness.support.web.DynamicPathPart} + * for use or open @see Confluence Best Practises page
+ * Example: + *
+ *         {@literal @}Click (SOME_VALUE)
+ *          SomePage simpleClick();
+ *    
+ * {@link #jsClick()} is used when standard click not works. + * {@link #andWait()} Used for wait to element after click.
+ * {@link #isStringDynamicXpath()} - Use to set String from method in xpath. Boolean type. The default value is: false.
+ * Example2: + *
+ *         {@literal @}Click{
+ *               value = SOME_VALUE,
+ *               andWait = {@literal @}Wait(value = XPATH, by = Lookup.XPATH),
+ *               jsClick = true
+ *          )
+ *          SomePage someClickWithWaitAndJSClick();
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example3:
+ *
+ *         {@literal @}Click{
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          SomePage clickToSomeElementByXpath();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(Clicks.class) +public @interface Click { + + /** + * Value for element identification. + */ + String value(); + + /** + * If set true javascript click will be done. + */ + boolean jsClick() default false; + + /** + * Wait for element after click. See {@literal @}{@link Wait} annotation. + */ + Wait andWait() default @Wait; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see Lookup + */ + Lookup by() default Lookup.DEFAULT; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. + */ + boolean isStringDynamicXpath() default false; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Clickable.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Clickable.java new file mode 100644 index 0000000..41ec46d --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Clickable.java @@ -0,0 +1,5 @@ +package cz.moneta.test.harness.support.web; + +public interface Clickable { + String getPath(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Clicks.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Clicks.java new file mode 100644 index 0000000..3b90d16 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Clicks.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Clicks { + Click[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/CustomAction.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/CustomAction.java new file mode 100644 index 0000000..d183e2e --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/CustomAction.java @@ -0,0 +1,33 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Executes custom action defined in default method. The annotated method must be default.
+ * This is applicable when is needed to do some other action which is not possible handle with predefined annotations.
+ * This annotation is NOT combinable with {@link Select}, {@link Click}, {@link TypeInto}. It is need to extend + * class by StoreAccessor to use CustomAction. + * + * Example: + *
+ *    public interface SomePage extends SomeFlow, StoreAccessor {
+ *        //...
+ *        {@literal @}CustomAction
+ *         default SomePage someCustomAction() {
+ *              WebEndpoint endpoint = getEndpoint(SomeEndpointClass.class);
+ *              endpoint.click(() -> SOME_ELEMENT_IN_PAGE);
+ *              endpoint.waitForElementsToLoad(20, SOME_ELEMENT_IN_PAGE2);
+ *              //...
+ *              return null;
+ *         }
+ *         //...
+ *    }
+ * 
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface CustomAction { +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/DismissAlert.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/DismissAlert.java new file mode 100644 index 0000000..b7779ce --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/DismissAlert.java @@ -0,0 +1,41 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation is used for dismiss alert window on the web. Parameter waitSecondsForAlert is mandatory. If alert text does not contains + * defined expectedAlertText AssertException is thrown.
+ * Example: + *
+ *         {@literal @}DismissAlert (waitSecondsForAlert = SOME_TIMEOUT)
+ *          SomePage dismissAlert();
+ *    
+ * + * Example2:
+ *
+ *         {@literal @}DismissAlert (
+ *               waitSecondsForAlert = SOME_TIMEOUT,
+ *               expectedAlertText = SOME_TEXT,
+ *          )
+ *          SomePage checkAlertTextandDismissAlert();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface DismissAlert { + + /** + * Maximum waiting time (timeout) for Alert window + */ + + int waitSecondsForAlert(); + + /** + * Text for comparison with text in the alert window + */ + + String expectedAlertText() default ""; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/DynamicPathPart.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/DynamicPathPart.java new file mode 100644 index 0000000..151b7e1 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/DynamicPathPart.java @@ -0,0 +1,10 @@ +package cz.moneta.test.harness.support.web; + +/** + * Interface is used for enums which are used for constructing dynamic paths in DSL.
+ * If you want to use dynamic path construction, you have to implement this interface in DSL enum and then use as paramater in page methods.
+ * For examples of use @see Confluence Best Practises page
+ **/ +public interface DynamicPathPart { + String getValue(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/ExecuteJavaScript.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/ExecuteJavaScript.java new file mode 100644 index 0000000..12f8bb4 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/ExecuteJavaScript.java @@ -0,0 +1,27 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Executes the given JavaScript in the Selenium WebDriver.
+ * + * Example: + *
+ *        //When above code is executed, it will scroll down by 600 pixels.
+ *         {@literal @}ExecuteJavaScript ("window.scrollBy(0,600)")
+ *          SomePage executeJavaScript();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(ExecuteJavaScripts.class) +public @interface ExecuteJavaScript { + /** + * Javascript code. + */ + String value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/ExecuteJavaScripts.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/ExecuteJavaScripts.java new file mode 100644 index 0000000..0e429df --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/ExecuteJavaScripts.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface ExecuteJavaScripts { + ExecuteJavaScript[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/FileUpload.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/FileUpload.java new file mode 100644 index 0000000..0e284da --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/FileUpload.java @@ -0,0 +1,63 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.*; + +/** + * FileUpload annotation is used to upload a file by using relative path.
+ * This annotation does not support dynamic path construction.
+ * Example: + *
+ *        {@literal @}FileUpload (SOME_VALUE)
+ *         SomePage uploadIdScan(String text);
+ *    
+ * Element can be cleared before write using {@link #clear()}.
+ * {@link #andWait()} is used for wait to other element after fill.
+ * Example2: + *
+ *          {@literal @}FileUpload{
+ *              value = SOME_VALUE,
+ *              clear = true,
+ *              andWait = @Wait(forXpath = "xpath of element to wait", waitSecondsForElement = 50),
+ *           )
+ *           SomePage uploadIdScan(String text);
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example3:
+ *
+ *         {@literal @}FileUpload{
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          SomePage uploadIdScan(String text);
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(FileUploads.class) +public @interface FileUpload { + /** + * Value for identification of element. XPATH or ID of element can be used. + */ + String value(); + + /** + * Set true if want to clear element before write. + */ + boolean clear() default false; + + /** + * Wait for element show after typing. Use {@literal @}{@link Wait} annotation. Tool is not waiting for any element by default. + */ + Wait andWait() default @Wait; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * @see Lookup + */ + Lookup by() default Lookup.DEFAULT; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. In container of method with FileUpload annotation you must have everywhere use just normal xpath or dynamic xpath! + */ + boolean isStringDynamicXpath() default false; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/FileUploads.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/FileUploads.java new file mode 100644 index 0000000..c1e4522 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/FileUploads.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface FileUploads { + FileUpload[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/GetCookie.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/GetCookie.java new file mode 100644 index 0000000..b7c7a61 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/GetCookie.java @@ -0,0 +1,23 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Obtain cookie value by its name, returns String value. String type method must be used.
+ * Example: + *
+ *        {@literal @}GetCookie ("cookie name")
+ *         String getSomeCookie();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface GetCookie { + /** + * Cookie name + */ + String value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/GetElementContent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/GetElementContent.java new file mode 100644 index 0000000..13ddee0 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/GetElementContent.java @@ -0,0 +1,48 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * GetElementContent annotation is used for getting text value from element and returning it. Return type of annotated + * method has to be String.
+ * Value from html below is "Content text". + *
+ *     <div>Content text</div>
+ *    
+ * Example: + *
+ *        {@literal @}GetElementContent (SOME_VALUE)
+ *         String someElement();
+ *    
+ * HarnessException is thrown if element is NOT readable (see example below). + *
+ *      <input title="title text [CIF001_S001_E013]" id="CIF001_S001_E013">
+ *    
+ * + * {@link #by()} could be used for other then default type of element search. + * Example2:
+ *
+ *         {@literal @}GetElementContent{
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          String someElement();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface GetElementContent { + + /** + * Value for identification of select element. + */ + String value(); + + /** + * Type of element identification which will be used for element search. See {@link Lookup} for exact types. + */ + Lookup by() default Lookup.DEFAULT; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Key.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Key.java new file mode 100644 index 0000000..d147360 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Key.java @@ -0,0 +1,107 @@ +package cz.moneta.test.harness.support.web; + +public enum Key implements CharSequence { + + BACK_SPACE('\uE003'), + TAB('\uE004'), + ENTER('\uE007'), + SHIFT('\uE008'), + CONTROL('\uE009'), + ALT('\uE00A'), + ESCAPE('\uE00C'), + SPACE('\uE00D'), + PAGE_UP('\uE00E'), + PAGE_DOWN('\uE00F'), + END('\uE010'), + HOME('\uE011'), + LEFT('\uE012'), + UP('\uE013'), + RIGHT('\uE014'), + DOWN('\uE015'), + INSERT('\uE016'), + DELETE('\uE017'), + + // Function keys + F1('\uE031'), + F2('\uE032'), + F3('\uE033'), + F4('\uE034'), + F5('\uE035'), + F6('\uE036'), + F7('\uE037'), + F8('\uE038'), + F9('\uE039'), + F10('\uE03A'), + F11('\uE03B'), + F12('\uE03C'), + + //ALPHABET + A('a'), + B('b'), + C('c'), + D('d'), + E('e'), + F('f'), + G('g'), + H('h'), + I('i'), + J('j'), + K('k'), + L('l'), + M('m'), + N('n'), + O('o'), + P('p'), + Q('q'), + R('r'), + S('s'), + T('t'), + U('u'), + V('v'), + W('w'), + X('x'), + Y('y'), + Z('z'), + + //NUMBERS + NUMBER_1('1'), + NUMBER_2('2'), + NUMBER_3('3'), + NUMBER_4('4'), + NUMBER_5('5'), + NUMBER_6('6'), + NUMBER_7('7'), + NUMBER_8('8'), + NUMBER_9('9'), + NUMBER_0('0'); + + private final char keyCode; + + Key(char keyCode) { + this.keyCode = keyCode; + } + + public char charAt(int index) { + if (index == 0) { + return keyCode; + } + return 0; + } + + public int length() { + return 1; + } + + public CharSequence subSequence(int start, int end) { + if (start == 0 && end == 1) { + return String.valueOf(keyCode); + } + throw new IndexOutOfBoundsException(); + } + + @Override + public String toString() { + return String.valueOf(keyCode); + } + +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/KeyPress.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/KeyPress.java new file mode 100644 index 0000000..b00b7ed --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/KeyPress.java @@ -0,0 +1,58 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * This annotation is used when you need to press some keyboard keys on page. + * You can add one or more keys to {@link #value()}. There is 100 ms delay between keys pressing by default if you want to + * press keys in same time use {@link #chord()}.
+ * {@link #andWait()} is used when you want to wait for something after key press.
+ * Example: + *
+ *         {@literal @}KeyPress (Key.END)
+ *          SomePage scrollToPageEnd();
+ *    
+ * Example2: + *
+ *         {@literal @}KeyPress ({Key.NUMBER_1, Key.NUMBER_2, Key.NUMBER_3})
+ *          SomePage press123();
+ *    
+ * Example3: + *
+ *         {@literal @}KeyPress (value = {Key.CONTROL, Key.A}, chord = true)
+ *          SomePage selectAllContent();
+ *    
+ * Example3: + *
+ *         {@literal @}KeyPress (
+ *              value = Key.DOWN,
+ *              andWait = {@literal @}Wait(value = XPATH, by = Lookup.XPATH),
+ *          )
+ *          SomePage pressEndAndWaitForSomething();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(KeyPresses.class) +public @interface KeyPress { + + /** + * One or array of Keys to be press + * @see Key + */ + Key[] value(); + + /** + * In default keys are pressed with 100ms delay. If you want to press keys at same time (for example CTRL+A) set to true + */ + boolean chord() default false; + + /** + * Wait for element after key press. See {@literal @}{@link Wait} annotation. + */ + Wait andWait() default @Wait; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/KeyPresses.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/KeyPresses.java new file mode 100644 index 0000000..be74ee8 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/KeyPresses.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface KeyPresses { + KeyPress[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Log.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Log.java new file mode 100644 index 0000000..e4b0399 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Log.java @@ -0,0 +1,55 @@ +package cz.moneta.test.harness.support.web; + +import cz.moneta.test.harness.support.util.Level; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Log some value obtained using lookup_value to log file using {@link #level()}
+ * Example: + *
+ *         {@literal @}Log (LOOKUP_VALUE)
+ *          SomePage goToPageOrWhatever();
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example2:
+ *
+ *         {@literal @}Log {
+ *               level = Level.INFO,
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *               template = "[]"
+ *          )
+ *          SomePage goToPageOrWhatever();
+ *    
+ */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(Logs.class) +public @interface Log { + /** + * Logging level. + * @see Level + */ + Level level() default Level.INFO; + + /** + * Value for element identification. + */ + String value(); + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * @see Lookup + */ + Lookup by() default Lookup.DEFAULT; + + /** + * Template for logging entry (default "{}"). + */ + String template() default "{}"; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Logs.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Logs.java new file mode 100644 index 0000000..349e2aa --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Logs.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface Logs { + Log[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Lookup.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Lookup.java new file mode 100644 index 0000000..7d6f264 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Lookup.java @@ -0,0 +1,12 @@ +package cz.moneta.test.harness.support.web; + +/** + * Enum for define type of element identification. XPATH, ID, DEFAULT can be used. + */ +public enum Lookup { + CLASSNAME, + ID, + NAME, + XPATH, + DEFAULT +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Page.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Page.java new file mode 100644 index 0000000..733393e --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Page.java @@ -0,0 +1,65 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Page annotation is used for transition to another page. Usually is used with other annotations (fe. with {@link Click}).
+ * Example: + *
+ *         {@literal @}Click (SOME_VALUE)
+ *         {@literal @}Page (SomePage.class)
+ *          SomePage clickAndGoToSomePage();
+ * 
+ * {@link #url()} is used for direct open a specific page.
+ * Example2: + *
+ *         {@literal @}Page(
+ *           value = SomePage.class,
+ *           url = "https://www.somepage.cz"
+ *           )
+ *          SomePage directGoToSomePage();
+ * 
+ * {@link #path()} is used for direct open a specific suffix in current page. For example when you are at page: + *
+ *     https://frontendtst/TST1/ufo/banka
+ * 
+ * path parameter: + *
+ *     path = "/text"
+ * 
+ * opens page: + *
+ *     https://frontendtst/TST1/ufo/banka/text
+ * 
+ * Example3: + *
+ *         {@literal @}Page(
+ *           value = SomePage.class,
+ *           path = "/someSuffix"
+ *           )
+ *          SomePage directGoToSomePageSuffix();
+ * 
+ * Parameters path and url are NOT combinable. When you add both of them only path will be evaluated. + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Page { + /** + * Class of next page. For example: SomePage.class. + */ + Class> value(); + + /** + * Suffix of next page. Current url + suffix will be used. + */ + String path() default ""; + + /** + * URL of next page. + */ + String url() default ""; + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Select.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Select.java new file mode 100644 index 0000000..f55beca --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Select.java @@ -0,0 +1,77 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Select annotation is used for pick {@link #value()} from select (list of values) by String or int or long text parameter. + * String parameter is used for identify element by its text and int is used for searching by select value.
+ * String/int parameter type is mandatory. IllegalStateException is thrown if not added.
+ * This annotation does not support dynamic path construction.
+ * + * Example: + *
+ *         {@literal @}Select (SOME_VALUE)
+ *          SomePage selectSomeValue(String text);
+ *    
+ * Example2: + *
+ *         {@literal @}Select (SOME_VALUE)
+ *          SomePage selectSomeValue(int selectValue);
+ *    
+ * Example3: + *
+ *         {@literal @}Select (SOME_VALUE)
+ *           SomePage selectSomeValue(long selectValue);
+ *    
+ * {@link #by()} could be used for other then default type of element search.
+ * Example4:
+ *
+ *         {@literal @}Select {
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          SomePage selectSomeValue(String text);
+ *    
+ * {@link #selectByOrder()} set true when you need select option by its order in select tag. Int parameter must + * be added in method.
+ * Example5:
+ *
+ *          selectSomeValue(1); //this will select first option in select with identificator 'SOME_VALUE'
+ *
+ *         {@literal @}Select {
+ *               value = SOME_VALUE,
+ *               selectByOptionOrder = true,
+ *          )
+ *          SomePage selectSomeValue(int optionOrder);
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(Selects.class) +public @interface Select { + /** + * Value for element identification. + */ + String value(); + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see Lookup + */ + Lookup by() default Lookup.DEFAULT; + + /** + * Wait for element show after select. Use {@literal @}{@link Wait} annotation. Tool is not waiting for any element by default. + */ + Wait andWait() default @Wait; + + /** + * Select option in select by its order if set true. This annotation needs int parameter in method. + */ + boolean selectByOrder() default false; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/SelectByValue.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/SelectByValue.java new file mode 100644 index 0000000..889df27 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/SelectByValue.java @@ -0,0 +1,14 @@ +package cz.moneta.test.harness.support.web; + +/** + * Interface is used for enums which describe select html tags + **/ +public interface SelectByValue { + + /** + * + * @return the value we want to be used for option lookup + */ + String getValue(); + +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Selects.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Selects.java new file mode 100644 index 0000000..4d70bdc --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Selects.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Selects { + Select[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/StoreElementContent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/StoreElementContent.java new file mode 100644 index 0000000..3c95841 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/StoreElementContent.java @@ -0,0 +1,58 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * This assertion saves a key-value pair obtained from site by using particular lookup method (e.g. XPath). + * Key and lookup_value strings are mandatory, lookup_method is optional.
+ * Dynamic path functionality is supported. See {@link cz.moneta.test.harness.support.web.DynamicPathPart} + * for use or open @see Confluence Best Practises page
+ * Example: + *
+ *          {@literal @}StoreElementContent (key_name, value_lookup)
+ *           SomePage goToPageOrWhatever();
+ *     
+ * {@link #by()} can be used for use XPATH, ID or DEFAULT to identify element.
+ * {@link #isStringDynamicXpath()} - Use to set String from method in xpath. Boolean type. The default value is: false.
+ * Example2:
+ *
+ *          {@literal @}StoreElementContent (key_name, value_lookup, lookup_method)
+ *                key_name = KEY_NAME,
+ *                lookup_value = SOME_XPATH,
+ *                lookup_method = Lookup.XPATH,
+ *           )
+ *           SomePage goToPageOrWhatever();
+ *     
+ */ + +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(StoreElementContents.class) +public @interface StoreElementContent { + + /** + * A unique key under which is the value stored. + */ + String storeKey(); + + /** + * Value for element identification. + */ + String value(); + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see Lookup + */ + Lookup by() default Lookup.DEFAULT; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. + */ + boolean isStringDynamicXpath() default false; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/StoreElementContents.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/StoreElementContents.java new file mode 100644 index 0000000..ac92afd --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/StoreElementContents.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface StoreElementContents { + StoreElementContent[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/SwitchToDefaultContent.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/SwitchToDefaultContent.java new file mode 100644 index 0000000..afff3a8 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/SwitchToDefaultContent.java @@ -0,0 +1,20 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Selects either the first frame on the page, or the main document when a page contains iframes. Usually uses with + * other annotations. + *
+ *         {@literal @}SwitchToDefaultContent
+ *         {@literal @}Click(SOME_VALUE)
+ *          SomePage switchToDefaultAndClick\();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface SwitchToDefaultContent { +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/SwitchToFrame.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/SwitchToFrame.java new file mode 100644 index 0000000..bf0b6c2 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/SwitchToFrame.java @@ -0,0 +1,39 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Select a frame using {@link #value()}
+ * Example: + *
+ *         {@literal @}SwitchToFrame (SOME_VALUE)
+ *          SomePage switchToSomeFrame();
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example2:
+ *
+ *         {@literal @}SwitchToFrame {
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          SomePage switchToSomeFrame();
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface SwitchToFrame { + + /** + * frameElement – The frame element to switch to. + */ + String value(); + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * @see Lookup + */ + Lookup by() default Lookup.DEFAULT; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/TextContainer.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/TextContainer.java new file mode 100644 index 0000000..03e4f18 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/TextContainer.java @@ -0,0 +1,5 @@ +package cz.moneta.test.harness.support.web; + +public interface TextContainer { + String getPath(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/TypeInto.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/TypeInto.java new file mode 100644 index 0000000..982814b --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/TypeInto.java @@ -0,0 +1,70 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.*; + +/** + * TypeInto annotation is used for write some value to element.
+ * This annotation does not support dynamic path construction.
+ * Example: + *
+ *        {@literal @}TypeInto (SOME_VALUE)
+ *         SomePage fillElement(String text);
+ *    
+ * Element can be cleared before write using {@link #clear()}.
+ * {@link #jsType()} is available when standard typeInto not works.
+ * {@link #andWait()} is used for wait to other element after fill.
+ * Example2: + *
+ *          {@literal @}TypeInto{
+ *              value = SOME_VALUE,
+ *              clear = true,
+ *              andWait = @Wait(forXpath = "xpath of element to wait", waitSecondsForElement = 50),
+ *              jsType = true
+ *           )
+ *           SomePage fillElement(String text);
+ *    
+ * {@link #by()} could be used for other then default type of element search. + * Example3:
+ *
+ *         {@literal @}TypeInto{
+ *               value = SOME_XPATH,
+ *               by = Lookup.XPATH,
+ *          )
+ *          SomePage fillElement(String text);
+ *    
+ */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(TypeIntos.class) +public @interface TypeInto { + /** + * Value for identification of element. XPATH or ID of element can be used. + */ + String value(); + + /** + * Set true if want to use javascript Type into element instead of Selenium. + */ + boolean jsType() default false; + + /** + * Set true if want to clear element before write. + */ + boolean clear() default false; + + /** + * Wait for element show after typing. Use {@literal @}{@link Wait} annotation. Tool is not waiting for any element by default. + */ + Wait andWait() default @Wait; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * @see Lookup + */ + Lookup by() default Lookup.DEFAULT; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. In container of method with TypeInto annotation you must have everywhere use just normal xpath or dynamic xpath! + */ + boolean isStringDynamicXpath() default false; +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/TypeIntos.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/TypeIntos.java new file mode 100644 index 0000000..5c06215 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/TypeIntos.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface TypeIntos { + TypeInto[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Until.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Until.java new file mode 100644 index 0000000..4a3516c --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Until.java @@ -0,0 +1,18 @@ +package cz.moneta.test.harness.support.web; + +public enum Until { + VISIBLE(2), + PRESENT_IN_DOM(1), + GONE(3), + CLICKABLE(4); + + private int priority; + + Until(int priority) { + this.priority = priority; + } + + public int getPriority() { + return priority; + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Wait.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Wait.java new file mode 100644 index 0000000..2ecc8e3 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Wait.java @@ -0,0 +1,95 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Repeatable; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Wait annotation is used for wait for some element or explicit wait.
+ * Dynamic path functionality is supported. See {@link cz.moneta.test.harness.support.web.DynamicPathPart} + * for use or open @see Confluence Best Practises page
+ * Wait for element example: + *
+ *         {@literal @}Wait (SOME_VALUE)
+ *          SomePage waitForElement();
+ *    
+ * Explicit wait example: + *
+ *         {@literal @}Wait (explicitWaitSeconds = 10)
+ *          SomePage waitTenSeconds();
+ *    
+ * Params:
+ * {@link #value()} - Value for element identification. More values can be used.
+ * {@link #waitSecondsForElement()} - Wait timeout. Default value is: 20
+ * {@link #by()} - could be used for other then default type of element search.
+ * {@link #until()} - wait type. Default value is: {@link Until}.PRESENT_IN_DOM.
+ * {@link #isStringDynamicXpath()} - Use to set String from method in xpath. Boolean type. The default value is: false.
+ * Example 3: + *
+ *         {@literal @}Wait (
+ *                           value = SOME_CLASSNAME,
+ *                           waitSecondsForElement = 30,
+ *                           by = Lookup.CLASSNAME,
+ *                           until = Until.GONE)
+ *          SomePage waitForElementGone();
+ *    
+ * + * IMPORTANT: For @Wait until GONE used in flows (WebFlow) is necessary to have another @Wait for element to identify + * displayed page - if wrong page still loaded, @Wait until GONE is validate to this page not the expected one. In case this rule + * is not followed, test execution throws HarnessException. + *
+ *
+ * NOTE: In case you need for eg. both id and xpath, you need express id as xpath and use {@link Lookup}.XPATH
+ * Example 4: + *
+ *          String XPATH = "//div[@attr1='attribute']";
+ *          String ID_AS_XPATH = "//div[@id='id']";
+ *
+ *         {@literal @}Wait (
+ *              value = {XPATH, ID_AS_XPATH},
+ *              by = Lookup.XPATH
+ *              )
+ *          SomePage waitForElementGone();
+ *    
+ */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Repeatable(Waits.class) +public @interface Wait { + + /** + * Value for identification of element. + */ + String[] value() default {}; + + /** + * Maximum waiting time (timeout) for element + */ + int waitSecondsForElement() default 20; + + /** + * Tool will wait for defined seconds. + */ + int explicitWaitSeconds() default 0; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see Lookup + */ + Lookup by() default Lookup.DEFAULT; + + /** + * Defines what type of wait condition will be used. + * + * @see Until + */ + Until until() default Until.PRESENT_IN_DOM; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. + */ + boolean isStringDynamicXpath() default false; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/WaitOrFailOnErrorElement.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/WaitOrFailOnErrorElement.java new file mode 100644 index 0000000..ef0ae83 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/WaitOrFailOnErrorElement.java @@ -0,0 +1,78 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * WaitOrFailOnErrorElement annotation is used for waiting for #value element and fail of test if #valueToFail element is present
+ * Dynamic path functionality is supported for #value element. See {@link cz.moneta.test.harness.support.web.DynamicPathPart} + * for use or open @see Confluence Best Practises page
+ * WaitOrFailOnErrorElement for element example: + *
+ *         {@literal @}@WaitOrFailOnErrorElement(SOME_VALUE_FOR_WAITING, SOME_VALUE_TO_FAIL, waitSecondsForElement = 80, by = Lookup.XPATH)
+ *          SomePage waitForElement();
+ *    
+ *

+ * Params:
+ * {@link #value()} - Value for element identification..
+ * {@link #valueToFail()} - Value for identification of element to fail of test..
+ * {@link #waitSecondsForElement()} - Wait timeout. Default value is: 20
+ * {@link #by()} - could be used for other then default type of element search.
+ * {@link #isStringDynamicXpath()} - Use to set String from method in xpath. Boolean type. The default value is: false.
+ * Example 3: + *

+ *         {@literal @}WaitOrFailOnErrorElement (
+ *                           value = SOME_CLASSNAME,
+ *                           valueToFail = SOME_CLASSNAME,
+ *                           waitSecondsForElement = 30,
+ *                           by = Lookup.CLASSNAME,
+ *          SomePage waitForElementGone();
+ *    
+ * + *
+ *
+ * NOTE: In case you need for eg. both id and xpath, you need express id as xpath and use {@link Lookup}.XPATH
+ * Example 4: + *
+ *          String XPATH = "//div[@attr1='attribute']";
+ *          String ID_AS_XPATH = "//div[@id='id']";
+ *
+ *         {@literal @}WaitOrFailOnErrorElement (
+ *              value = {XPATH, ID_AS_XPATH},
+ *              by = Lookup.XPATH
+ *              )
+ *          SomePage waitForElementGone();
+ *    
+ */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface WaitOrFailOnErrorElement { + /** + * Value for identification of element for waiting. + */ + String value(); + + /** + * Value for identification of element to fail of test. + */ + String valueToFail(); + + /** + * Maximum waiting time (timeout) for element + */ + int waitSecondsForElement() default 20; + + /** + * Type of element identification which will be used for element search. XPATH, ID or DEFAULT can be used. + * + * @see Lookup + */ + Lookup by() default Lookup.DEFAULT; + + /** + * If set true will be used input String parameter of method to substitute %s in xpath. + */ + boolean isStringDynamicXpath() default false; +} \ No newline at end of file diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/Waits.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Waits.java new file mode 100644 index 0000000..aa305b5 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/Waits.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness.support.web; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Container annotation + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface Waits { + Wait[] value(); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/web/WebFlow.java b/test-harness/src/main/java/cz/moneta/test/harness/support/web/WebFlow.java new file mode 100644 index 0000000..f4e6b16 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/web/WebFlow.java @@ -0,0 +1,67 @@ +package cz.moneta.test.harness.support.web; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +/** + * This ss the marker interface of web flow builder proxies. + *

+ * The builders are usually accessed via {@code harness.withIB()} or similar method where the proxy + * is instantiated by calling the respective + * {@link Builders#newWebFlowBuilder(Class, WebEndpoint, StoreAccessor)} method. + *

+ * An example web flow builder may look as follows: + *

{@code
+ * @literal @Wait(value = {USERNAME_INPUT, PASSWORD_INPUT, CONFIRM_BUTTON})
+ *  public interface LoginPage extends WebFlow, LoginPageTransitions {
+ *
+ *      String USERNAME_INPUT = "//input[@tabindex='1' and @type='password']";
+ *      String PASSWORD_INPUT = "//input[@tabindex='2' and @type='password']";
+ *      String CONFIRM_BUTTON = "//button[@onclick='javascript:loginUser();']";
+ *
+ *     @literal @TypeInto(USERNAME_INPUT)
+ *      LoginPage typeUsername(String username);
+ *
+ *     @literal @TypeInto(PASSWORD_INPUT)
+ *      LoginPage typePassword(String password);
+ *
+ *     @literal @Click(CONFIRM_BUTTON)
+ *      LoginPageTransitions clickLogin();
+ *  }
+ * }
+ * Please note that if the return type of the method is a different WebFlow builder, a new proxy is instantiated + * based on the return type + *

+ * And the usage would be as follows: + *

{@code
+ *  harness.withIB()
+ *      .openLoginPage()
+ *      .typeUsername(udebsCredentials.getUsername())
+ *      .typePassword(udebsCredentials.getPassword())
+ *      .clickLogin()
+ *      .onAuthMobileKeyPage()
+ *      .fillMobileKey("12341234")
+ *      .clickLogin()
+ *      .onWelcomePage()
+ *      ...
+ * }
+ * + * @see Click + * @see TypeInto + * @see Select + * @see CheckElementContent + * @see CheckElementPresent + * @see CustomAction + * @see ExecuteJavaScript + * @see FileUpload + * @see GetCookie + * @see GetElementContent + * @see StoreElementContent + * @see SwitchToFrame + * @see Log + * @see Wait + * @see WaitOrFailOnErrorElement + */ +public interface WebFlow> extends Builder { + void beforePageLoad(WebEndpoint endpoint); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/ws/Builders.java b/test-harness/src/main/java/cz/moneta/test/harness/support/ws/Builders.java new file mode 100644 index 0000000..f216790 --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/ws/Builders.java @@ -0,0 +1,73 @@ +package cz.moneta.test.harness.support.ws; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.BaseWsEndpoint; +import cz.moneta.test.harness.support.util.BaseRequestBuilder; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.util.Optional; +import java.util.function.Supplier; +import java.util.stream.Stream; + +@SuppressWarnings("unchecked") +public final class Builders { + + private Builders() { + } + + public static > R newWsBuilder( + Object request, Class responseType, Class endpoint, StoreAccessor harness) { + return (R) Proxy.newProxyInstance( + Thread.currentThread().getContextClassLoader(), + new Class[]{WsRequest.class}, + new RequestBuilderInvocationHandler<>(request, responseType, harness.getEndpoint(endpoint), harness)); + } + + private static class RequestBuilderInvocationHandler extends BaseRequestBuilder implements InvocationHandler { + + private final Object request; + private final Class responseType; + private final BaseWsEndpoint endpoint; + + private RequestBuilderInvocationHandler(Object request, Class responseType, BaseWsEndpoint endpoint, StoreAccessor harness) { + super(harness); + this.request = request; + this.responseType = responseType; + this.endpoint = endpoint; + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) { + return Stream.>>of( + () -> handleLog(proxy, method, args), + () -> handlePollUntil(proxy, method, args), + () -> handlePollDelay(proxy, method, args), + () -> handlePollRetries(proxy, method, args), + () -> handlePollEvalFunction(proxy, method, args), + () -> handleSend(proxy, method)) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Could not handle method: " + + proxy.getClass().getInterfaces()[0].getSimpleName() + "#" + method.getName())); + } + + private Optional handleSend(Object proxy, Method method) { + return Optional.of(method) + .filter(m -> "send".equals(m.getName())) + .flatMap(m -> doSend(proxy)); + } + + protected Optional doSend(Object proxy) { + return Optional.ofNullable(endpoint.invoke(request, responseType)) + .map(resp -> { + harness.store(responseType.getName(), resp); + responseLoggers.forEach(l -> l.accept(resp)); + return resp; + }); + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/ws/WsRequest.java b/test-harness/src/main/java/cz/moneta/test/harness/support/ws/WsRequest.java new file mode 100644 index 0000000..9568a1c --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/ws/WsRequest.java @@ -0,0 +1,16 @@ +package cz.moneta.test.harness.support.ws; + +import cz.moneta.test.harness.support.util.Level; +import cz.moneta.test.harness.support.util.RequestPoll; + +import java.util.function.Function; + +public interface WsRequest { + RESP send(); + + RequestPoll pollUntil(Function extractor); + + WsRequest log(String template, Function... args); + + WsRequest log(Level level, String template, Function... args); +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/support/xml/XmlUtils.java b/test-harness/src/main/java/cz/moneta/test/harness/support/xml/XmlUtils.java new file mode 100644 index 0000000..6a17b2b --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/support/xml/XmlUtils.java @@ -0,0 +1,123 @@ +package cz.moneta.test.harness.support.xml; + +import org.apache.commons.lang3.tuple.Triple; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +import javax.xml.XMLConstants; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringWriter; +import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.Map; +import java.util.stream.IntStream; + +public final class XmlUtils { + + private XmlUtils() { + } + + public static String resolveTemplate(String path, Map params, Triple>... nodesToInsert) { + + try (InputStream documentStream = XmlUtils.class.getClassLoader().getResourceAsStream(path)) { + + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + Document doc = dBuilder.parse(documentStream); + doc.getDocumentElement().normalize(); + + doReplacements(doc, params); + + Arrays.stream(nodesToInsert) + .forEach(t -> getParentNode(doc, t.getLeft()) + .appendChild(getChildNode(doc, t.getMiddle(), t.getRight()))); + + DOMSource domSource = new DOMSource(doc); + StringWriter writer = new StringWriter(); + StreamResult result = new StreamResult(writer); + TransformerFactory tf = TransformerFactory.newInstance(); + tf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); + Transformer transformer = tf.newTransformer(); + transformer.setOutputProperty(OutputKeys.INDENT, "no"); + transformer.transform(domSource, result); + + return writer.toString(); + } catch (IOException + | ParserConfigurationException + | SAXException + | TransformerException e) { + throw new AssertionError("failed to resolve definition for " + path, e); + } + } + + private static Node getChildNode(Document parentDoc, String nodeFile, Map params) { + + try (InputStream documentStream = XmlUtils.class.getClassLoader().getResourceAsStream(nodeFile)) { + + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + Document doc = dBuilder.parse(documentStream); + doc.getDocumentElement().normalize(); + + doReplacements(doc, params); + + return parentDoc.importNode(doc.getDocumentElement(), true); + } catch (IOException + | ParserConfigurationException + | SAXException e) { + throw new AssertionError("failed to resolve child node definition for " + nodeFile, e); + } + } + + private static void doReplacements(Document doc, Map params) { + NodeList tags = doc.getElementsByTagName("*"); + + IntStream.range(0, tags.getLength()) + .mapToObj(tags::item) + .filter(t -> t.getTextContent() != null && params.containsKey(t.getTextContent())) + .forEach(t -> t.setTextContent(params.get(t.getTextContent()))); + } + + private static Node getParentNode(Document doc, String parentTagName) { + NodeList tags = doc.getElementsByTagName(parentTagName); + if (tags.getLength() != 1) { + throw new IllegalArgumentException("Did not find exactly one matching parent element"); + } + return tags.item(0); + } + + public static boolean documentsEqual(String document1, String document2) { + try { + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + dbf.setNamespaceAware(true); + dbf.setCoalescing(true); + dbf.setIgnoringElementContentWhitespace(true); + dbf.setIgnoringComments(true); + DocumentBuilder db = dbf.newDocumentBuilder(); + + Document doc1 = db.parse(new ByteArrayInputStream(document1.getBytes(StandardCharsets.UTF_8))); + doc1.normalizeDocument(); + Document doc2 = db.parse(new ByteArrayInputStream(document2.getBytes(StandardCharsets.UTF_8))); + doc2.normalizeDocument(); + + return doc1.isEqualNode(doc2); + } catch (IOException + | ParserConfigurationException + | SAXException e) { + throw new AssertionError("failed to compare xml documents", e); + } + } +} diff --git a/test-harness/src/main/java/cz/moneta/test/harness/utils/expectedconditions/BooleanExpectedConditions.java b/test-harness/src/main/java/cz/moneta/test/harness/utils/expectedconditions/BooleanExpectedConditions.java new file mode 100644 index 0000000..9d2d7dd --- /dev/null +++ b/test-harness/src/main/java/cz/moneta/test/harness/utils/expectedconditions/BooleanExpectedConditions.java @@ -0,0 +1,33 @@ +package cz.moneta.test.harness.utils.expectedconditions; + +import cz.moneta.test.harness.exception.FailElementDisplayedException; +import org.openqa.selenium.By; +import org.openqa.selenium.NoSuchElementException; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedCondition; + +public class BooleanExpectedConditions { + + /** + * Custom expected condition for check element not displayed on page. + *

+ * If element displayed condition will throw new FailElementDisplayedException. In all other cases (even NoSuchElementException) + * returns true - it means that element not displayed. + *

+ * + * @param locator - locator (By) value to check if not displayed + */ + public static ExpectedCondition failElementNotDisplayed(By locator) { + return driver -> { + try { + WebElement element = driver.findElement(locator); + if (element.isDisplayed()) { + throw new FailElementDisplayedException("Fail element displayed. Locator: " + locator.toString()); + } + return true; + } catch (NoSuchElementException e) { + return true; + } + }; + } +} diff --git a/test-harness/src/main/resources/keystores/api_gw_client.p12 b/test-harness/src/main/resources/keystores/api_gw_client.p12 new file mode 100644 index 0000000..9e31c2d Binary files /dev/null and b/test-harness/src/main/resources/keystores/api_gw_client.p12 differ diff --git a/test-harness/src/main/resources/keystores/greenScreenTrustStore b/test-harness/src/main/resources/keystores/greenScreenTrustStore new file mode 100644 index 0000000..8b4b03e Binary files /dev/null and b/test-harness/src/main/resources/keystores/greenScreenTrustStore differ diff --git a/test-harness/src/main/resources/keystores/mb_root b/test-harness/src/main/resources/keystores/mb_root new file mode 100644 index 0000000..9c7ae87 Binary files /dev/null and b/test-harness/src/main/resources/keystores/mb_root differ diff --git a/test-harness/src/main/resources/ws/IvaServiceActual.wsdl b/test-harness/src/main/resources/ws/IvaServiceActual.wsdl new file mode 100644 index 0000000..002a11b --- /dev/null +++ b/test-harness/src/main/resources/ws/IvaServiceActual.wsdl @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test-harness/src/main/resources/ws/jaxb-bindings.xml b/test-harness/src/main/resources/ws/jaxb-bindings.xml new file mode 100644 index 0000000..333dc8d --- /dev/null +++ b/test-harness/src/main/resources/ws/jaxb-bindings.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/test-harness/src/test/java/cz/moneta/test/harness/BaseHarness.java b/test-harness/src/test/java/cz/moneta/test/harness/BaseHarness.java new file mode 100644 index 0000000..8bbeea7 --- /dev/null +++ b/test-harness/src/test/java/cz/moneta/test/harness/BaseHarness.java @@ -0,0 +1,19 @@ +package cz.moneta.test.harness; + +import cz.moneta.test.harness.annotations.TestContext; +import cz.moneta.test.harness.context.BaseStoreAccessor; +import cz.moneta.test.harness.support.data.GeneratorType; +import org.junit.jupiter.api.extension.ExtensionContext.Store; + +@TestContext +public class BaseHarness extends BaseStoreAccessor { + + public BaseHarness(Store rootStore, Store globalStore, Store endpointStore, Store configStore, Store generatorsStore) { + super(rootStore, globalStore, endpointStore, configStore, generatorsStore); + initGenerators(); + } + + private void initGenerators() { + addGenerator(GeneratorType.RC, new HarnessUnitTestGenerator()); + } +} diff --git a/test-harness/src/test/java/cz/moneta/test/harness/HarnessUnitTestGenerator.java b/test-harness/src/test/java/cz/moneta/test/harness/HarnessUnitTestGenerator.java new file mode 100644 index 0000000..25f302c --- /dev/null +++ b/test-harness/src/test/java/cz/moneta/test/harness/HarnessUnitTestGenerator.java @@ -0,0 +1,15 @@ +package cz.moneta.test.harness; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.data.Generator; + +import java.util.concurrent.ThreadLocalRandom; + +public class HarnessUnitTestGenerator implements Generator { + + private static final String UNIT_TEST_RC = "1234"; + + public String generate(StoreAccessor harness, Object... params) { + return UNIT_TEST_RC; + } +} \ No newline at end of file diff --git a/test-harness/src/test/java/cz/moneta/test/harness/config/MockConfig.java b/test-harness/src/test/java/cz/moneta/test/harness/config/MockConfig.java new file mode 100644 index 0000000..ab9dde8 --- /dev/null +++ b/test-harness/src/test/java/cz/moneta/test/harness/config/MockConfig.java @@ -0,0 +1,107 @@ +package cz.moneta.test.harness.config; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.support.data.GeneratorType; +import cz.moneta.test.harness.support.util.Level; + +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Supplier; + +public class MockConfig implements StoreAccessor { + + private final Map config; + + private MockConfig(Map config) { + this.config = config; + } + + public static MockConfigBuilder builder() { + return new MockConfigBuilder(); + } + + @Override + public E getEndpoint(Class endpointClass, Object... args) { + return null; + } + + @Override + public void closeEndpoint(Endpoint endpoint) {} + + @Override + public Set getActiveEndpoints() { + return null; + } + + @Override + public String getConfig(String key) { + return config.get(key); + } + + @Override + public String getConfig(String key, String defaultValue) { + return config.getOrDefault(key, defaultValue); + } + + @Override + public void putConfig(String key, String value) {} + + @Override + public T get(String key) { + return null; + } + + @Override + public T get(String key, boolean nullEnabled) { + return null; + } + + @Override + public void store(String key, Object value) {} + + @Override + public T getGlobal(String key, Supplier orCreate) { + return null; + } + + @Override + public T getGlobal(String key) { + return null; + } + + @Override + public void storeGlobal(String key, Object value) {} + + @Override + public void storeGlobal(String key, Supplier orCreate) {} + + @Override + public void log(String template, Object... args) {} + + @Override + public void log(Level level, String template, Object... args) {} + + @Override + public T generate(GeneratorType type, Object... param) { + return null; + } + + public static final class MockConfigBuilder { + + private final Map config = new ConcurrentHashMap<>(); + + private MockConfigBuilder() {} + + public MockConfigBuilder put(String key, String value) { + config.put(key, value); + return this; + } + + public MockConfig build() { + return new MockConfig(config); + } + } + +} diff --git a/test-harness/src/test/java/cz/moneta/test/harness/constants/ConstantsForUnitTests.java b/test-harness/src/test/java/cz/moneta/test/harness/constants/ConstantsForUnitTests.java new file mode 100644 index 0000000..5af04ce --- /dev/null +++ b/test-harness/src/test/java/cz/moneta/test/harness/constants/ConstantsForUnitTests.java @@ -0,0 +1,9 @@ +package cz.moneta.test.harness.constants; + +public class ConstantsForUnitTests { + + public static final String CONFIG_PROPERTY_IDENTIFIER = "config"; + + private ConstantsForUnitTests() { + } +} diff --git a/test-harness/src/test/java/cz/moneta/test/harness/extensions/SystemVariableExtensionForTest.java b/test-harness/src/test/java/cz/moneta/test/harness/extensions/SystemVariableExtensionForTest.java new file mode 100644 index 0000000..c0ee046 --- /dev/null +++ b/test-harness/src/test/java/cz/moneta/test/harness/extensions/SystemVariableExtensionForTest.java @@ -0,0 +1,23 @@ +package cz.moneta.test.harness.extensions; + +import org.junit.jupiter.api.extension.AfterAllCallback; +import org.junit.jupiter.api.extension.ConditionEvaluationResult; +import org.junit.jupiter.api.extension.ExecutionCondition; +import org.junit.jupiter.api.extension.ExtensionContext; + +import static cz.moneta.test.harness.constants.ConstantsForUnitTests.CONFIG_PROPERTY_IDENTIFIER; + +//Dirty trick how to set system property for test execution +public class SystemVariableExtensionForTest implements ExecutionCondition, AfterAllCallback { + + @Override + public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext extensionContext) { + System.setProperty(CONFIG_PROPERTY_IDENTIFIER, "config/env_test_config"); + return ConditionEvaluationResult.enabled("Enabled"); + } + + @Override + public void afterAll(ExtensionContext extensionContext) throws Exception { + System.clearProperty(CONFIG_PROPERTY_IDENTIFIER); + } +} diff --git a/test-harness/src/test/java/cz/moneta/test/harness/tests/HarnessJunit5ExtensionTest.java b/test-harness/src/test/java/cz/moneta/test/harness/tests/HarnessJunit5ExtensionTest.java new file mode 100644 index 0000000..324ac9c --- /dev/null +++ b/test-harness/src/test/java/cz/moneta/test/harness/tests/HarnessJunit5ExtensionTest.java @@ -0,0 +1,120 @@ +package cz.moneta.test.harness.tests; + +import cz.moneta.test.harness.HarnessJunit5Extension; +import cz.moneta.test.harness.annotations.Defect; +import cz.moneta.test.harness.annotations.Defects; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.EnableIfSets; +import cz.moneta.test.harness.annotations.ParameterizedTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.extensions.SystemVariableExtensionForTest; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.params.provider.ValueSource; + +import static cz.moneta.test.harness.annotations.Environment.DEV; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; + +/** + * These tests need config=env_test_config setting with PPE environment + */ +@ExtendWith(SystemVariableExtensionForTest.class) +@ExtendWith(HarnessJunit5Extension.class) +class HarnessJunit5ExtensionTest { + + //This test will be skipped if working correctly + @TestCase(environments = EDU) + void mustNotRunAsEnvironmentDoesNotMatch() { + fail("This test should be skipped if working correctly!"); + } + + @TestCase + void mustRunAsDefaultEnvironmentMatches() { + assertTrue(true); + } + + @TestCase(environments = {DEV, PPE}) + void mustRunAsOneEnvironmentMatches() { + assertTrue(true); + } + + @ParameterizedTestCase(environments = EDU) + @ValueSource(strings = {"param"}) + void parametrizedMustNotRunAsEnvironmentDoesNotMatch(String param) { + fail("This test should be skipped if working correctly!"); + } + + @ParameterizedTestCase + @ValueSource(strings = {"param"}) + void parametrizedMustRunAsDefaultEnvironmentMatches(String param) { + assertTrue(true); + } + + @ParameterizedTestCase(environments = {DEV, PPE}) + @ValueSource(strings = {"param"}) + void parametrizedMustRunAsOneEnvironmentMatches(String param) { + assertTrue(true); + } + + @Defect("disabled in all environments by default") + @TestCase(environments = {DEV, PPE}) + void mustNotRunAsTheTestIsDisabledAcrossAllEnvironments() { + fail("This test should be skipped if working correctly!"); + } + + @Defect(value = "disabled only in PPE", environments = PPE) + @TestCase(environments = PPE) + void mustNotRunAsTheTestIsDisabledForTheSpecifiedEnvironment() { + fail("This test should be skipped if working correctly!"); + } + + @Defect(value = "disabled in EDU", environments = EDU) + @Defect(value = "disabled in DEV", environments = DEV) + @Defect(value = "disabled in TST1", environments = TST1) + @Defect(value = "disabled in PPE", environments = PPE) + @TestCase(environments = PPE) + void mustNotRunAsOneOfTheDefectsMatchesCurrentEnvironment() { + fail("This test should be skipped if working correctly!"); + } + + @Defects({ + @Defect(value = "disabled in EDU", environments = EDU), + @Defect(value = "disabled in DEV", environments = DEV), + @Defect(value = "disabled in TST1", environments = TST1), + @Defect(value = "disabled in PPE", environments = PPE)}) + @TestCase(environments = PPE) + void mustNotRunAsOneOfTheDefectsMatchesCurrentEnvironmentDefectsArray() { + fail("This test should be skipped if working correctly!"); + } + + @Defect(value = "disabled only in EDU", environments = EDU) + @TestCase(environments = {EDU, PPE}) + void mustRunAsTheTestIsNotDisabledForCurrentEnvironment() { + assertTrue(true); + } + + @Disabled + @TestCase + void mustNotRunAsItIsDisabled() { + fail("This test case should be skipped if working correctly!"); + } + + @TestCase + @EnableIfSet(globalKey = "KeyA") + void mustNotRunAsKeyAIsNotSet() { + fail("This test case should be skipped if working correctly!"); + } + + @TestCase + @EnableIfSets({ + @EnableIfSet(globalKey = "KeyB"), + @EnableIfSet(globalKey = "KeyA")}) + void mustNotRunAsKeyAAndKeyBAreNotSet() { + fail("This test case should be skipped if working correctly!"); + } + +} \ No newline at end of file diff --git a/test-harness/src/test/java/cz/moneta/test/harness/tests/UnitTestEndpoint.java b/test-harness/src/test/java/cz/moneta/test/harness/tests/UnitTestEndpoint.java new file mode 100644 index 0000000..4cb14be --- /dev/null +++ b/test-harness/src/test/java/cz/moneta/test/harness/tests/UnitTestEndpoint.java @@ -0,0 +1,10 @@ +package cz.moneta.test.harness.tests; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; + +public class UnitTestEndpoint implements Endpoint { + + public UnitTestEndpoint(StoreAccessor storeAccessor) { + } +} diff --git a/test-harness/src/test/java/cz/moneta/test/harness/tests/config/ConfigProviderTest.java b/test-harness/src/test/java/cz/moneta/test/harness/tests/config/ConfigProviderTest.java new file mode 100644 index 0000000..4f0d2a3 --- /dev/null +++ b/test-harness/src/test/java/cz/moneta/test/harness/tests/config/ConfigProviderTest.java @@ -0,0 +1,71 @@ +package cz.moneta.test.harness.tests.config; + +import cz.moneta.test.harness.config.ConfigProvider; +import cz.moneta.test.harness.exception.HarnessConfigurationException; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +import static cz.moneta.test.harness.constants.ConstantsForUnitTests.CONFIG_PROPERTY_IDENTIFIER; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +class ConfigProviderTest { + + private static final String ANSWER_KEY = "answer"; + private static final String ANSWER_VALUE = "42"; + + @Test + void requiresConfigParameter() { + Assertions.assertThrows(HarnessConfigurationException.class, ConfigProvider::readConfig, + "Reading configuration must fail when no config parameter was given and HARNESS_CONFIG is not set"); + } + + @Test + void looksUpConfigOnClasspath() { + setSystemConfigProperty("config/simple"); + assertEquals(1, ConfigProvider.readConfig().size()); + } + + @Test + void looksUpConfigOnClasspathWithReferenceResolution() { + setSystemConfigProperty("config/references/valid/c"); + Map configMap = ConfigProvider.readConfig(); + assertEquals(2, configMap.size()); + assertEquals("config/references/valid/b", configMap.get("environment.from")); + assertEquals(ANSWER_VALUE, configMap.get(ANSWER_KEY)); + } + + @Test + void shouldThrowWhenCircularReferencesWereDetected() { + setSystemConfigProperty("config/references/invalid/c"); + assertThrows(IllegalStateException.class, ConfigProvider::readConfig, + "Reading configuration with circular dependencies must fail"); + } + + @Test + void shouldResolveEnvironmentVariable() { + setSystemConfigProperty("config/with-env"); + System.setProperty("secret.answer", ANSWER_VALUE); + Map config = ConfigProvider.readConfig(); + assertEquals(ANSWER_VALUE, config.get(ANSWER_KEY)); + } + + @Test + void shouldThrowWhenEnvironmentVariableCannotBeResolved() { + setSystemConfigProperty("config/with-env-unmapped"); + assertThrows(IllegalStateException.class, ConfigProvider::readConfig, + "Reading configuration must fail when no config parameter was given"); + } + + @AfterEach + void cleanUp() { + System.clearProperty(CONFIG_PROPERTY_IDENTIFIER); + } + + private void setSystemConfigProperty(String configProperty) { + System.setProperty(CONFIG_PROPERTY_IDENTIFIER, configProperty); //TODO internal getReaderForClasspathResource add envs/ to path -> FIX + } +} diff --git a/test-harness/src/test/java/cz/moneta/test/harness/tests/connectors/rest/BaseRestConnectorTest.java b/test-harness/src/test/java/cz/moneta/test/harness/tests/connectors/rest/BaseRestConnectorTest.java new file mode 100644 index 0000000..c3f9a94 --- /dev/null +++ b/test-harness/src/test/java/cz/moneta/test/harness/tests/connectors/rest/BaseRestConnectorTest.java @@ -0,0 +1,34 @@ +package cz.moneta.test.harness.tests.connectors.rest; + +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.connectors.rest.BaseRestConnector; +import cz.moneta.test.harness.extensions.SystemVariableExtensionForTest; +import org.junit.Assert; +import org.junit.jupiter.api.extension.ExtendWith; + +/** + * These tests need config=env_test_config setting with PPE environment + */ +@ExtendWith(SystemVariableExtensionForTest.class) +@TestScenario(name = "BaseRestConnector unit tests") +public class BaseRestConnectorTest { + + private BaseRestConnector mockRestConnector = new BaseRestConnector() { + }; + + @TestCase(name = "Test BaseRestConnector getInputStream if trustedStore 'mb_root' is found") + public void getInputStreamMbRoot() { + Assert.assertNotNull(mockRestConnector.getInputStream("keystores/mb_root")); + } + + @TestCase(name = "Test BaseRestConnector getInputStream if trustedStore 'api_gw_client' is found") + public void getInputStreamApiGwClient() { + Assert.assertNotNull(mockRestConnector.getInputStream("keystores/api_gw_client.p12")); + } + + @TestCase(name = "Negative Test BaseRestConnector getInputStream(String name) if trustedStore is NOT found") + public void getInputStreamNotFound() { + Assert.assertNull(mockRestConnector.getInputStream("someNonsense")); + } +} diff --git a/test-harness/src/test/java/cz/moneta/test/harness/tests/context/BaseStoreAccessorTest.java b/test-harness/src/test/java/cz/moneta/test/harness/tests/context/BaseStoreAccessorTest.java new file mode 100644 index 0000000..ccbe3f2 --- /dev/null +++ b/test-harness/src/test/java/cz/moneta/test/harness/tests/context/BaseStoreAccessorTest.java @@ -0,0 +1,82 @@ +package cz.moneta.test.harness.tests.context; + +import cz.moneta.test.harness.BaseHarness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.extensions.SystemVariableExtensionForTest; +import cz.moneta.test.harness.tests.UnitTestEndpoint; +import org.junit.Assert; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.extension.ExtendWith; + +import static cz.moneta.test.harness.support.data.GeneratorType.RC; + +/** + * These tests need config=env_test_config setting with PPE environment + */ +@ExtendWith(SystemVariableExtensionForTest.class) +@TestScenario(name = "BaseStoreAccessor unit tests") +public class BaseStoreAccessorTest { + + private static final String TEST_VALUE = "TEST_VALUE"; + private static final String TEST_KEY = "TEST_KEY"; + private static final String TEST_KEY_GLOBAL = "TEST_KEY_GLOBAL"; + private static final Object TEST_OBJECT = new Object(); + + @TestCase(name = "Test harness store functionality store and get with existing key") + void storeValuesStringPositiveTest(BaseHarness harness) { + harness.store(TEST_KEY, TEST_VALUE); + Assert.assertEquals(harness.get(TEST_KEY), TEST_VALUE); + } + + @TestCase(name = "Test harness store functionality store and get with existing key") + void storeValuesObjectPositiveTest(BaseHarness harness) { + harness.store(TEST_KEY, TEST_OBJECT); + Assert.assertSame(harness.get(TEST_KEY), TEST_OBJECT); + } + + @TestCase(name = "Test harness store functionality store and get without existing key") + void storeValuesNegativeTest(BaseHarness harness) { + Assertions.assertThrows(HarnessException.class, () -> harness.get(TEST_KEY)); + } + + @TestCase(name = "Test harness global store functionality store and get with existing key") + void globalStoreValuesObjectPositiveTest(BaseHarness harness) { + harness.storeGlobal(TEST_KEY_GLOBAL, TEST_OBJECT); + Assert.assertSame(harness.getGlobal(TEST_KEY_GLOBAL), TEST_OBJECT); + } + + @TestCase(name = "Test harness global store functionality store and get with existing key") + void globalStoreValuesStringPositiveTest(BaseHarness harness) { + harness.storeGlobal(TEST_KEY_GLOBAL, TEST_VALUE); + Assert.assertSame(harness.getGlobal(TEST_KEY_GLOBAL), TEST_VALUE); + } + + @TestCase(name = "Test to using general generator") + void testGeneratePositive(BaseHarness harness) { + Assert.assertSame("1234", harness.generate(RC)); + } + + @TestCase(name = "Test harness init endpoint and check") + void getEndpointPositiveTest(BaseHarness harness) { + harness.getEndpoint(UnitTestEndpoint.class); + Object initEndpoint = harness.getActiveEndpoints() + .stream() + .findAny() + .get() + .getClass(); + Assert.assertSame(UnitTestEndpoint.class, initEndpoint); + } + + @TestCase(name = "Test harness init and close endpoint") + void closeEndpointPositiveTest(BaseHarness harness) { + UnitTestEndpoint activeUnitTestEndpoint = harness.getEndpoint(UnitTestEndpoint.class); + harness.closeEndpoint(activeUnitTestEndpoint); + boolean initEndpoint = harness.getActiveEndpoints() + .stream() + .findAny() + .isPresent(); + Assert.assertTrue(!initEndpoint); + } +} \ No newline at end of file diff --git a/test-harness/src/test/java/cz/moneta/test/harness/tests/support/xml/XmlUtilsTest.java b/test-harness/src/test/java/cz/moneta/test/harness/tests/support/xml/XmlUtilsTest.java new file mode 100644 index 0000000..1a7d758 --- /dev/null +++ b/test-harness/src/test/java/cz/moneta/test/harness/tests/support/xml/XmlUtilsTest.java @@ -0,0 +1,81 @@ +package cz.moneta.test.harness.tests.support.xml; + +import cz.moneta.test.harness.support.xml.XmlUtils; +import org.apache.commons.lang3.tuple.Triple; +import org.junit.jupiter.api.Test; + +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Stream; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +@SuppressWarnings("unchecked") +class XmlUtilsTest { + + private static final String EXPECTED_RESULT = "\n" + + " xaxa\n" + + " replacement 1\n" + + " xaxa\n" + + " \n" + + " replacement 1\n" + + " xaxa\n" + + " \n" + + " replacement 2\n" + + " replacement 2\n" + + " \n" + + " child 1 replacement 1\n" + + " fsd\n" + + " \n" + + " fsd\n" + + " \n" + + " child 1 replacement 1\n" + + " child 1 replacement 2\n" + + " \n" + + " \n" + + "\n" + + " child 2 replacement 1\n" + + " fsd\n" + + " \n" + + " fsd\n" + + " \n" + + " child 2 replacement 1\n" + + " child 2 replacement 2\n" + + " \n" + + " \n" + + "\n" + + " child 3 replacement 1\n" + + " fsd\n" + + " \n" + + " fsd\n" + + " \n" + + " child 3 replacement 1\n" + + " child 3 replacement 2\n" + + " \n" + + " \n" + + "\n" + + " replacement 2\n" + + " \n" + + " xaxa\n" + + ""; + + @Test + void testXmlTemplateResolving() { + Map parentReplacements = new HashMap() {{ + put("#{placeholder 1}", "replacement 1"); + put("#{placeholder 2}", "replacement 2"); + }}; + Triple>[] children = Stream.of("child 1", "child 2", "child 3") + .map(child -> Triple.of("parent_node", "xml/child_node.xml", new HashMap() {{ + put("#{placeholder 1}", child + " replacement 1"); + put("#{placeholder 2}", child + " replacement 2"); + }})) + .toArray(Triple[]::new); + + String result = XmlUtils.resolveTemplate("xml/parent_node.xml", parentReplacements, children); + + assertTrue(XmlUtils.documentsEqual(result, EXPECTED_RESULT)); + } + +} \ No newline at end of file diff --git a/test-harness/src/test/resources/envs/config/env_test_config b/test-harness/src/test/resources/envs/config/env_test_config new file mode 100644 index 0000000..5989377 --- /dev/null +++ b/test-harness/src/test/resources/envs/config/env_test_config @@ -0,0 +1,3 @@ +environment.type=ppe +harness.defects.ignore=false +browser=chrome \ No newline at end of file diff --git a/test-harness/src/test/resources/envs/config/references/invalid/a b/test-harness/src/test/resources/envs/config/references/invalid/a new file mode 100644 index 0000000..a173c4f --- /dev/null +++ b/test-harness/src/test/resources/envs/config/references/invalid/a @@ -0,0 +1 @@ +environment.from=config/references/invalid/c \ No newline at end of file diff --git a/test-harness/src/test/resources/envs/config/references/invalid/b b/test-harness/src/test/resources/envs/config/references/invalid/b new file mode 100644 index 0000000..7500b65 --- /dev/null +++ b/test-harness/src/test/resources/envs/config/references/invalid/b @@ -0,0 +1 @@ +environment.from=config/references/invalid/a \ No newline at end of file diff --git a/test-harness/src/test/resources/envs/config/references/invalid/c b/test-harness/src/test/resources/envs/config/references/invalid/c new file mode 100644 index 0000000..bdce0a8 --- /dev/null +++ b/test-harness/src/test/resources/envs/config/references/invalid/c @@ -0,0 +1 @@ +environment.from=config/references/invalid/b \ No newline at end of file diff --git a/test-harness/src/test/resources/envs/config/references/valid/a b/test-harness/src/test/resources/envs/config/references/valid/a new file mode 100644 index 0000000..ebabe62 --- /dev/null +++ b/test-harness/src/test/resources/envs/config/references/valid/a @@ -0,0 +1 @@ +answer=42 \ No newline at end of file diff --git a/test-harness/src/test/resources/envs/config/references/valid/b b/test-harness/src/test/resources/envs/config/references/valid/b new file mode 100644 index 0000000..5bfe255 --- /dev/null +++ b/test-harness/src/test/resources/envs/config/references/valid/b @@ -0,0 +1 @@ +environment.from=config/references/valid/a \ No newline at end of file diff --git a/test-harness/src/test/resources/envs/config/references/valid/c b/test-harness/src/test/resources/envs/config/references/valid/c new file mode 100644 index 0000000..0f816e2 --- /dev/null +++ b/test-harness/src/test/resources/envs/config/references/valid/c @@ -0,0 +1 @@ +environment.from=config/references/valid/b \ No newline at end of file diff --git a/test-harness/src/test/resources/envs/config/simple b/test-harness/src/test/resources/envs/config/simple new file mode 100644 index 0000000..1c6a1a9 --- /dev/null +++ b/test-harness/src/test/resources/envs/config/simple @@ -0,0 +1 @@ +a=b \ No newline at end of file diff --git a/test-harness/src/test/resources/envs/config/with-env b/test-harness/src/test/resources/envs/config/with-env new file mode 100644 index 0000000..1abbd89 --- /dev/null +++ b/test-harness/src/test/resources/envs/config/with-env @@ -0,0 +1 @@ +answer=$secret.answer \ No newline at end of file diff --git a/test-harness/src/test/resources/envs/config/with-env-unmapped b/test-harness/src/test/resources/envs/config/with-env-unmapped new file mode 100644 index 0000000..e5f01da --- /dev/null +++ b/test-harness/src/test/resources/envs/config/with-env-unmapped @@ -0,0 +1 @@ +missing=$non.existing.value \ No newline at end of file diff --git a/test-harness/src/test/resources/log4j2.xml b/test-harness/src/test/resources/log4j2.xml new file mode 100644 index 0000000..760506f --- /dev/null +++ b/test-harness/src/test/resources/log4j2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/test-harness/src/test/resources/xml/child_node.xml b/test-harness/src/test/resources/xml/child_node.xml new file mode 100644 index 0000000..274305f --- /dev/null +++ b/test-harness/src/test/resources/xml/child_node.xml @@ -0,0 +1,11 @@ + + #{placeholder 1} + fsd + + fsd + + #{placeholder 1} + #{placeholder 2} + + + \ No newline at end of file diff --git a/test-harness/src/test/resources/xml/parent_node.xml b/test-harness/src/test/resources/xml/parent_node.xml new file mode 100644 index 0000000..9668787 --- /dev/null +++ b/test-harness/src/test/resources/xml/parent_node.xml @@ -0,0 +1,15 @@ + + xaxa + #{placeholder 1} + xaxa + + #{placeholder 1} + xaxa + + #{placeholder 2} + #{placeholder 2} + + #{placeholder 2} + + xaxa + \ No newline at end of file diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000..67c2843 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,7 @@ +target +.idea +*.iml +.classpath +.project +.settings +*.log \ No newline at end of file diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..45f34d7 --- /dev/null +++ b/tests/README.md @@ -0,0 +1,32 @@ + +# Automated tests + +This repo contains automated tests for all squads. + +## How to configure tests + +Check [Jak začít automatizovat testy](https://confluence.moneta.cz/pages/viewpage.action?pageId=1277377457) page. + +The best way to start is to +* Choose the method you want to use from about (IDE, command line, default file) +* Create a config file that contains: +``` +environment.type=tst1 +environment.from=tst1 +browser=chrome +``` + +### Testing application (example, IB) in Google Chrome +You need following parameters to test using Google Chrome: +``` +selenium.webdriver.path=c:\\Users\\\\drivers\\chromedriver.exe +selenium.chromebinary.path=C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe +``` +More details can be found on [Jak začít automatizovat testy](https://confluence.moneta.cz/pages/viewpage.action?pageId=1277377457) page + +### Testing application (example, UFO) in MS Edge +You need following parameters to test using MS Edge: +``` +selenium.edge.webdriver.path=c:\\Users\\\\\drivers\\msedgedriver.exe +``` +More details can be found on [Jak začít automatizovat testy](https://confluence.moneta.cz/pages/viewpage.action?pageId=1277377457) page diff --git a/tests/lib/ST4-4.3.4.jar b/tests/lib/ST4-4.3.4.jar new file mode 100644 index 0000000..21a2f61 Binary files /dev/null and b/tests/lib/ST4-4.3.4.jar differ diff --git a/tests/lib/accessors-smart-2.5.0.jar b/tests/lib/accessors-smart-2.5.0.jar new file mode 100644 index 0000000..2acd43b Binary files /dev/null and b/tests/lib/accessors-smart-2.5.0.jar differ diff --git a/tests/lib/angus-activation-2.0.1.jar b/tests/lib/angus-activation-2.0.1.jar new file mode 100644 index 0000000..9d56221 Binary files /dev/null and b/tests/lib/angus-activation-2.0.1.jar differ diff --git a/tests/lib/angus-mail-1.0.0.jar b/tests/lib/angus-mail-1.0.0.jar new file mode 100644 index 0000000..6a14b6f Binary files /dev/null and b/tests/lib/angus-mail-1.0.0.jar differ diff --git a/tests/lib/annotations-15.0.jar b/tests/lib/annotations-15.0.jar new file mode 100644 index 0000000..3f83832 Binary files /dev/null and b/tests/lib/annotations-15.0.jar differ diff --git a/tests/lib/antlr-runtime-3.5.3.jar b/tests/lib/antlr-runtime-3.5.3.jar new file mode 100644 index 0000000..0b06a7a Binary files /dev/null and b/tests/lib/antlr-runtime-3.5.3.jar differ diff --git a/tests/lib/aopalliance-repackaged-3.0.3.jar b/tests/lib/aopalliance-repackaged-3.0.3.jar new file mode 100644 index 0000000..b774de5 Binary files /dev/null and b/tests/lib/aopalliance-repackaged-3.0.3.jar differ diff --git a/tests/lib/apiguardian-api-1.1.0.jar b/tests/lib/apiguardian-api-1.1.0.jar new file mode 100644 index 0000000..e6fcead Binary files /dev/null and b/tests/lib/apiguardian-api-1.1.0.jar differ diff --git a/tests/lib/asm-9.5.jar b/tests/lib/asm-9.5.jar new file mode 100644 index 0000000..f5701dc Binary files /dev/null and b/tests/lib/asm-9.5.jar differ diff --git a/tests/lib/assertj-core-3.25.3.jar b/tests/lib/assertj-core-3.25.3.jar new file mode 100644 index 0000000..5bbac20 Binary files /dev/null and b/tests/lib/assertj-core-3.25.3.jar differ diff --git a/tests/lib/async-http-client-2.12.3.jar b/tests/lib/async-http-client-2.12.3.jar new file mode 100644 index 0000000..3bed21d Binary files /dev/null and b/tests/lib/async-http-client-2.12.3.jar differ diff --git a/tests/lib/async-http-client-netty-utils-2.12.3.jar b/tests/lib/async-http-client-netty-utils-2.12.3.jar new file mode 100644 index 0000000..f072e8f Binary files /dev/null and b/tests/lib/async-http-client-netty-utils-2.12.3.jar differ diff --git a/tests/lib/auto-service-annotations-1.1.1.jar b/tests/lib/auto-service-annotations-1.1.1.jar new file mode 100644 index 0000000..b9ceaf7 Binary files /dev/null and b/tests/lib/auto-service-annotations-1.1.1.jar differ diff --git a/tests/lib/bcpkix-jdk18on-1.72.jar b/tests/lib/bcpkix-jdk18on-1.72.jar new file mode 100644 index 0000000..b4902c8 Binary files /dev/null and b/tests/lib/bcpkix-jdk18on-1.72.jar differ diff --git a/tests/lib/bcprov-jdk18on-1.71.jar b/tests/lib/bcprov-jdk18on-1.71.jar new file mode 100644 index 0000000..c996730 Binary files /dev/null and b/tests/lib/bcprov-jdk18on-1.71.jar differ diff --git a/tests/lib/bcutil-jdk18on-1.72.jar b/tests/lib/bcutil-jdk18on-1.72.jar new file mode 100644 index 0000000..e9be74d Binary files /dev/null and b/tests/lib/bcutil-jdk18on-1.72.jar differ diff --git a/tests/lib/byte-buddy-1.14.5.jar b/tests/lib/byte-buddy-1.14.5.jar new file mode 100644 index 0000000..409c3c3 Binary files /dev/null and b/tests/lib/byte-buddy-1.14.5.jar differ diff --git a/tests/lib/cache-api-1.1.0.jar b/tests/lib/cache-api-1.1.0.jar new file mode 100644 index 0000000..4640137 Binary files /dev/null and b/tests/lib/cache-api-1.1.0.jar differ diff --git a/tests/lib/checker-qual-3.41.0.jar b/tests/lib/checker-qual-3.41.0.jar new file mode 100644 index 0000000..17a85a1 Binary files /dev/null and b/tests/lib/checker-qual-3.41.0.jar differ diff --git a/tests/lib/commons-beanutils-1.9.3.jar b/tests/lib/commons-beanutils-1.9.3.jar new file mode 100644 index 0000000..6728154 Binary files /dev/null and b/tests/lib/commons-beanutils-1.9.3.jar differ diff --git a/tests/lib/commons-beanutils-core-1.8.0.jar b/tests/lib/commons-beanutils-core-1.8.0.jar new file mode 100644 index 0000000..87c15f4 Binary files /dev/null and b/tests/lib/commons-beanutils-core-1.8.0.jar differ diff --git a/tests/lib/commons-codec-1.11.jar b/tests/lib/commons-codec-1.11.jar new file mode 100644 index 0000000..2245120 Binary files /dev/null and b/tests/lib/commons-codec-1.11.jar differ diff --git a/tests/lib/commons-collections-3.2.2.jar b/tests/lib/commons-collections-3.2.2.jar new file mode 100644 index 0000000..fa5df82 Binary files /dev/null and b/tests/lib/commons-collections-3.2.2.jar differ diff --git a/tests/lib/commons-configuration-1.6.jar b/tests/lib/commons-configuration-1.6.jar new file mode 100644 index 0000000..2d4689a Binary files /dev/null and b/tests/lib/commons-configuration-1.6.jar differ diff --git a/tests/lib/commons-digester-1.8.jar b/tests/lib/commons-digester-1.8.jar new file mode 100644 index 0000000..1110f0a Binary files /dev/null and b/tests/lib/commons-digester-1.8.jar differ diff --git a/tests/lib/commons-exec-1.3.jar b/tests/lib/commons-exec-1.3.jar new file mode 100644 index 0000000..9a64351 Binary files /dev/null and b/tests/lib/commons-exec-1.3.jar differ diff --git a/tests/lib/commons-io-2.6.jar b/tests/lib/commons-io-2.6.jar new file mode 100644 index 0000000..00556b1 Binary files /dev/null and b/tests/lib/commons-io-2.6.jar differ diff --git a/tests/lib/commons-lang-2.4.jar b/tests/lib/commons-lang-2.4.jar new file mode 100644 index 0000000..532939e Binary files /dev/null and b/tests/lib/commons-lang-2.4.jar differ diff --git a/tests/lib/commons-lang3-3.7.jar b/tests/lib/commons-lang3-3.7.jar new file mode 100644 index 0000000..f37ded6 Binary files /dev/null and b/tests/lib/commons-lang3-3.7.jar differ diff --git a/tests/lib/commons-logging-1.2.jar b/tests/lib/commons-logging-1.2.jar new file mode 100644 index 0000000..93a3b9f Binary files /dev/null and b/tests/lib/commons-logging-1.2.jar differ diff --git a/tests/lib/commons-text-1.4.jar b/tests/lib/commons-text-1.4.jar new file mode 100644 index 0000000..3e81a79 Binary files /dev/null and b/tests/lib/commons-text-1.4.jar differ diff --git a/tests/lib/cryptacular-1.2.5.jar b/tests/lib/cryptacular-1.2.5.jar new file mode 100644 index 0000000..8cc43f3 Binary files /dev/null and b/tests/lib/cryptacular-1.2.5.jar differ diff --git a/tests/lib/cxf-core-4.0.3.jar b/tests/lib/cxf-core-4.0.3.jar new file mode 100644 index 0000000..da16bfd Binary files /dev/null and b/tests/lib/cxf-core-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-bindings-soap-4.0.3.jar b/tests/lib/cxf-rt-bindings-soap-4.0.3.jar new file mode 100644 index 0000000..8d7558f Binary files /dev/null and b/tests/lib/cxf-rt-bindings-soap-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-bindings-xml-4.0.3.jar b/tests/lib/cxf-rt-bindings-xml-4.0.3.jar new file mode 100644 index 0000000..a33f33f Binary files /dev/null and b/tests/lib/cxf-rt-bindings-xml-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-databinding-jaxb-4.0.3.jar b/tests/lib/cxf-rt-databinding-jaxb-4.0.3.jar new file mode 100644 index 0000000..be639d0 Binary files /dev/null and b/tests/lib/cxf-rt-databinding-jaxb-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-frontend-jaxws-4.0.3.jar b/tests/lib/cxf-rt-frontend-jaxws-4.0.3.jar new file mode 100644 index 0000000..934b3e7 Binary files /dev/null and b/tests/lib/cxf-rt-frontend-jaxws-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-frontend-simple-4.0.3.jar b/tests/lib/cxf-rt-frontend-simple-4.0.3.jar new file mode 100644 index 0000000..ebbd05d Binary files /dev/null and b/tests/lib/cxf-rt-frontend-simple-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-security-4.0.3.jar b/tests/lib/cxf-rt-security-4.0.3.jar new file mode 100644 index 0000000..b19c6ba Binary files /dev/null and b/tests/lib/cxf-rt-security-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-security-saml-4.0.3.jar b/tests/lib/cxf-rt-security-saml-4.0.3.jar new file mode 100644 index 0000000..429085b Binary files /dev/null and b/tests/lib/cxf-rt-security-saml-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-transports-http-4.0.3.jar b/tests/lib/cxf-rt-transports-http-4.0.3.jar new file mode 100644 index 0000000..b13dbf1 Binary files /dev/null and b/tests/lib/cxf-rt-transports-http-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-ws-addr-4.0.3.jar b/tests/lib/cxf-rt-ws-addr-4.0.3.jar new file mode 100644 index 0000000..d102c84 Binary files /dev/null and b/tests/lib/cxf-rt-ws-addr-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-ws-policy-4.0.3.jar b/tests/lib/cxf-rt-ws-policy-4.0.3.jar new file mode 100644 index 0000000..b0bb85b Binary files /dev/null and b/tests/lib/cxf-rt-ws-policy-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-ws-security-4.0.3.jar b/tests/lib/cxf-rt-ws-security-4.0.3.jar new file mode 100644 index 0000000..33ac751 Binary files /dev/null and b/tests/lib/cxf-rt-ws-security-4.0.3.jar differ diff --git a/tests/lib/cxf-rt-wsdl-4.0.3.jar b/tests/lib/cxf-rt-wsdl-4.0.3.jar new file mode 100644 index 0000000..943b8a1 Binary files /dev/null and b/tests/lib/cxf-rt-wsdl-4.0.3.jar differ diff --git a/tests/lib/dm3270-lib-0.9.1.jar b/tests/lib/dm3270-lib-0.9.1.jar new file mode 100644 index 0000000..2e9afae Binary files /dev/null and b/tests/lib/dm3270-lib-0.9.1.jar differ diff --git a/tests/lib/ehcache-3.10.8-jakarta.jar b/tests/lib/ehcache-3.10.8-jakarta.jar new file mode 100644 index 0000000..264b547 Binary files /dev/null and b/tests/lib/ehcache-3.10.8-jakarta.jar differ diff --git a/tests/lib/error_prone_annotations-2.27.0.jar b/tests/lib/error_prone_annotations-2.27.0.jar new file mode 100644 index 0000000..4ea471f Binary files /dev/null and b/tests/lib/error_prone_annotations-2.27.0.jar differ diff --git a/tests/lib/failsafe-3.3.2.jar b/tests/lib/failsafe-3.3.2.jar new file mode 100644 index 0000000..76ae519 Binary files /dev/null and b/tests/lib/failsafe-3.3.2.jar differ diff --git a/tests/lib/failureaccess-1.0.1.jar b/tests/lib/failureaccess-1.0.1.jar new file mode 100644 index 0000000..9b56dc7 Binary files /dev/null and b/tests/lib/failureaccess-1.0.1.jar differ diff --git a/tests/lib/gson-2.11.0.jar b/tests/lib/gson-2.11.0.jar new file mode 100644 index 0000000..18e59c8 Binary files /dev/null and b/tests/lib/gson-2.11.0.jar differ diff --git a/tests/lib/guava-32.1.2-jre.jar b/tests/lib/guava-32.1.2-jre.jar new file mode 100644 index 0000000..e71fd46 Binary files /dev/null and b/tests/lib/guava-32.1.2-jre.jar differ diff --git a/tests/lib/hamcrest-core-1.3.jar b/tests/lib/hamcrest-core-1.3.jar new file mode 100644 index 0000000..9d5fe16 Binary files /dev/null and b/tests/lib/hamcrest-core-1.3.jar differ diff --git a/tests/lib/harness-7.55-SNAPSHOT.jar b/tests/lib/harness-7.55-SNAPSHOT.jar new file mode 100644 index 0000000..fa47ca7 Binary files /dev/null and b/tests/lib/harness-7.55-SNAPSHOT.jar differ diff --git a/tests/lib/hk2-api-3.0.3.jar b/tests/lib/hk2-api-3.0.3.jar new file mode 100644 index 0000000..a8f8e88 Binary files /dev/null and b/tests/lib/hk2-api-3.0.3.jar differ diff --git a/tests/lib/hk2-locator-3.0.3.jar b/tests/lib/hk2-locator-3.0.3.jar new file mode 100644 index 0000000..6fd9b3b Binary files /dev/null and b/tests/lib/hk2-locator-3.0.3.jar differ diff --git a/tests/lib/hk2-utils-3.0.3.jar b/tests/lib/hk2-utils-3.0.3.jar new file mode 100644 index 0000000..e586d4c Binary files /dev/null and b/tests/lib/hk2-utils-3.0.3.jar differ diff --git a/tests/lib/httpclient-4.5.14.jar b/tests/lib/httpclient-4.5.14.jar new file mode 100644 index 0000000..2bb7c07 Binary files /dev/null and b/tests/lib/httpclient-4.5.14.jar differ diff --git a/tests/lib/httpcore-4.4.16.jar b/tests/lib/httpcore-4.4.16.jar new file mode 100644 index 0000000..f0bdebe Binary files /dev/null and b/tests/lib/httpcore-4.4.16.jar differ diff --git a/tests/lib/ilods_shared_resources-0.0.9.jar b/tests/lib/ilods_shared_resources-0.0.9.jar new file mode 100644 index 0000000..0d101b1 Binary files /dev/null and b/tests/lib/ilods_shared_resources-0.0.9.jar differ diff --git a/tests/lib/istack-commons-runtime-4.0.0.jar b/tests/lib/istack-commons-runtime-4.0.0.jar new file mode 100644 index 0000000..66f9d42 Binary files /dev/null and b/tests/lib/istack-commons-runtime-4.0.0.jar differ diff --git a/tests/lib/j2objc-annotations-2.8.jar b/tests/lib/j2objc-annotations-2.8.jar new file mode 100644 index 0000000..3595c4f Binary files /dev/null and b/tests/lib/j2objc-annotations-2.8.jar differ diff --git a/tests/lib/jackson-annotations-2.16.1.jar b/tests/lib/jackson-annotations-2.16.1.jar new file mode 100644 index 0000000..b9c48e6 Binary files /dev/null and b/tests/lib/jackson-annotations-2.16.1.jar differ diff --git a/tests/lib/jackson-core-2.16.1.jar b/tests/lib/jackson-core-2.16.1.jar new file mode 100644 index 0000000..a8ff5e3 Binary files /dev/null and b/tests/lib/jackson-core-2.16.1.jar differ diff --git a/tests/lib/jackson-databind-2.16.1.jar b/tests/lib/jackson-databind-2.16.1.jar new file mode 100644 index 0000000..5171b7a Binary files /dev/null and b/tests/lib/jackson-databind-2.16.1.jar differ diff --git a/tests/lib/jackson-dataformat-csv-2.16.1.jar b/tests/lib/jackson-dataformat-csv-2.16.1.jar new file mode 100644 index 0000000..d59e286 Binary files /dev/null and b/tests/lib/jackson-dataformat-csv-2.16.1.jar differ diff --git a/tests/lib/jackson-dataformat-xml-2.16.1.jar b/tests/lib/jackson-dataformat-xml-2.16.1.jar new file mode 100644 index 0000000..1cd03f2 Binary files /dev/null and b/tests/lib/jackson-dataformat-xml-2.16.1.jar differ diff --git a/tests/lib/jackson-datatype-jdk8-2.16.1.jar b/tests/lib/jackson-datatype-jdk8-2.16.1.jar new file mode 100644 index 0000000..e399401 Binary files /dev/null and b/tests/lib/jackson-datatype-jdk8-2.16.1.jar differ diff --git a/tests/lib/jackson-datatype-jsr310-2.16.1.jar b/tests/lib/jackson-datatype-jsr310-2.16.1.jar new file mode 100644 index 0000000..d34b0ef Binary files /dev/null and b/tests/lib/jackson-datatype-jsr310-2.16.1.jar differ diff --git a/tests/lib/jackson-module-jakarta-xmlbind-annotations-2.15.3.jar b/tests/lib/jackson-module-jakarta-xmlbind-annotations-2.15.3.jar new file mode 100644 index 0000000..312cfe2 Binary files /dev/null and b/tests/lib/jackson-module-jakarta-xmlbind-annotations-2.15.3.jar differ diff --git a/tests/lib/jackson-module-parameter-names-2.16.1.jar b/tests/lib/jackson-module-parameter-names-2.16.1.jar new file mode 100644 index 0000000..83a08af Binary files /dev/null and b/tests/lib/jackson-module-parameter-names-2.16.1.jar differ diff --git a/tests/lib/jakarta.activation-2.0.1.jar b/tests/lib/jakarta.activation-2.0.1.jar new file mode 100644 index 0000000..521c7c4 Binary files /dev/null and b/tests/lib/jakarta.activation-2.0.1.jar differ diff --git a/tests/lib/jakarta.activation-api-2.1.2.jar b/tests/lib/jakarta.activation-api-2.1.2.jar new file mode 100644 index 0000000..ea57b3e Binary files /dev/null and b/tests/lib/jakarta.activation-api-2.1.2.jar differ diff --git a/tests/lib/jakarta.annotation-api-2.0.0.jar b/tests/lib/jakarta.annotation-api-2.0.0.jar new file mode 100644 index 0000000..a7f3008 Binary files /dev/null and b/tests/lib/jakarta.annotation-api-2.0.0.jar differ diff --git a/tests/lib/jakarta.inject-api-2.0.1.jar b/tests/lib/jakarta.inject-api-2.0.1.jar new file mode 100644 index 0000000..a92e099 Binary files /dev/null and b/tests/lib/jakarta.inject-api-2.0.1.jar differ diff --git a/tests/lib/jakarta.jws-api-3.0.0.jar b/tests/lib/jakarta.jws-api-3.0.0.jar new file mode 100644 index 0000000..5d6151b Binary files /dev/null and b/tests/lib/jakarta.jws-api-3.0.0.jar differ diff --git a/tests/lib/jakarta.mail-api-2.1.0.jar b/tests/lib/jakarta.mail-api-2.1.0.jar new file mode 100644 index 0000000..ae91f12 Binary files /dev/null and b/tests/lib/jakarta.mail-api-2.1.0.jar differ diff --git a/tests/lib/jakarta.ws.rs-api-3.0.0.jar b/tests/lib/jakarta.ws.rs-api-3.0.0.jar new file mode 100644 index 0000000..31f2596 Binary files /dev/null and b/tests/lib/jakarta.ws.rs-api-3.0.0.jar differ diff --git a/tests/lib/jakarta.xml.bind-api-3.0.1.jar b/tests/lib/jakarta.xml.bind-api-3.0.1.jar new file mode 100644 index 0000000..f890cba Binary files /dev/null and b/tests/lib/jakarta.xml.bind-api-3.0.1.jar differ diff --git a/tests/lib/jakarta.xml.soap-api-3.0.1.jar b/tests/lib/jakarta.xml.soap-api-3.0.1.jar new file mode 100644 index 0000000..7a9e6da Binary files /dev/null and b/tests/lib/jakarta.xml.soap-api-3.0.1.jar differ diff --git a/tests/lib/jakarta.xml.ws-api-3.0.1.jar b/tests/lib/jakarta.xml.ws-api-3.0.1.jar new file mode 100644 index 0000000..f27aa1b Binary files /dev/null and b/tests/lib/jakarta.xml.ws-api-3.0.1.jar differ diff --git a/tests/lib/jasypt-1.9.3.jar b/tests/lib/jasypt-1.9.3.jar new file mode 100644 index 0000000..f4c4606 Binary files /dev/null and b/tests/lib/jasypt-1.9.3.jar differ diff --git a/tests/lib/java-client-8.6.0.jar b/tests/lib/java-client-8.6.0.jar new file mode 100644 index 0000000..b88a760 Binary files /dev/null and b/tests/lib/java-client-8.6.0.jar differ diff --git a/tests/lib/java-support-8.4.0.jar b/tests/lib/java-support-8.4.0.jar new file mode 100644 index 0000000..53c7638 Binary files /dev/null and b/tests/lib/java-support-8.4.0.jar differ diff --git a/tests/lib/javassist-3.29.2-GA.jar b/tests/lib/javassist-3.29.2-GA.jar new file mode 100644 index 0000000..68fc301 Binary files /dev/null and b/tests/lib/javassist-3.29.2-GA.jar differ diff --git a/tests/lib/jaxb-core-3.0.0-M5.jar b/tests/lib/jaxb-core-3.0.0-M5.jar new file mode 100644 index 0000000..eb823a8 Binary files /dev/null and b/tests/lib/jaxb-core-3.0.0-M5.jar differ diff --git a/tests/lib/jaxb-runtime-3.0.0-M5.jar b/tests/lib/jaxb-runtime-3.0.0-M5.jar new file mode 100644 index 0000000..d45e2ff Binary files /dev/null and b/tests/lib/jaxb-runtime-3.0.0-M5.jar differ diff --git a/tests/lib/jersey-client-3.0.12.jar b/tests/lib/jersey-client-3.0.12.jar new file mode 100644 index 0000000..934a76e Binary files /dev/null and b/tests/lib/jersey-client-3.0.12.jar differ diff --git a/tests/lib/jersey-common-3.0.12.jar b/tests/lib/jersey-common-3.0.12.jar new file mode 100644 index 0000000..e4198b0 Binary files /dev/null and b/tests/lib/jersey-common-3.0.12.jar differ diff --git a/tests/lib/jersey-entity-filtering-3.0.12.jar b/tests/lib/jersey-entity-filtering-3.0.12.jar new file mode 100644 index 0000000..fa4a122 Binary files /dev/null and b/tests/lib/jersey-entity-filtering-3.0.12.jar differ diff --git a/tests/lib/jersey-hk2-3.0.12.jar b/tests/lib/jersey-hk2-3.0.12.jar new file mode 100644 index 0000000..5960a0d Binary files /dev/null and b/tests/lib/jersey-hk2-3.0.12.jar differ diff --git a/tests/lib/jersey-media-json-jackson-3.0.12.jar b/tests/lib/jersey-media-json-jackson-3.0.12.jar new file mode 100644 index 0000000..0fd98cb Binary files /dev/null and b/tests/lib/jersey-media-json-jackson-3.0.12.jar differ diff --git a/tests/lib/jersey-media-multipart-3.0.12.jar b/tests/lib/jersey-media-multipart-3.0.12.jar new file mode 100644 index 0000000..b4b4dea Binary files /dev/null and b/tests/lib/jersey-media-multipart-3.0.12.jar differ diff --git a/tests/lib/jooq-3.1.0.jar b/tests/lib/jooq-3.1.0.jar new file mode 100644 index 0000000..14fac2d Binary files /dev/null and b/tests/lib/jooq-3.1.0.jar differ diff --git a/tests/lib/json-path-2.9.0.jar b/tests/lib/json-path-2.9.0.jar new file mode 100644 index 0000000..f731408 Binary files /dev/null and b/tests/lib/json-path-2.9.0.jar differ diff --git a/tests/lib/json-smart-2.5.0.jar b/tests/lib/json-smart-2.5.0.jar new file mode 100644 index 0000000..2685e03 Binary files /dev/null and b/tests/lib/json-smart-2.5.0.jar differ diff --git a/tests/lib/json-unit-assertj-3.2.7.jar b/tests/lib/json-unit-assertj-3.2.7.jar new file mode 100644 index 0000000..4a11797 Binary files /dev/null and b/tests/lib/json-unit-assertj-3.2.7.jar differ diff --git a/tests/lib/json-unit-core-3.2.7.jar b/tests/lib/json-unit-core-3.2.7.jar new file mode 100644 index 0000000..631f8b8 Binary files /dev/null and b/tests/lib/json-unit-core-3.2.7.jar differ diff --git a/tests/lib/json-unit-json-path-3.2.7.jar b/tests/lib/json-unit-json-path-3.2.7.jar new file mode 100644 index 0000000..21dc4df Binary files /dev/null and b/tests/lib/json-unit-json-path-3.2.7.jar differ diff --git a/tests/lib/jsr305-3.0.2.jar b/tests/lib/jsr305-3.0.2.jar new file mode 100644 index 0000000..59222d9 Binary files /dev/null and b/tests/lib/jsr305-3.0.2.jar differ diff --git a/tests/lib/junit-4.12.jar b/tests/lib/junit-4.12.jar new file mode 100644 index 0000000..3a7fc26 Binary files /dev/null and b/tests/lib/junit-4.12.jar differ diff --git a/tests/lib/junit-jupiter-api-5.5.1.jar b/tests/lib/junit-jupiter-api-5.5.1.jar new file mode 100644 index 0000000..8873cb4 Binary files /dev/null and b/tests/lib/junit-jupiter-api-5.5.1.jar differ diff --git a/tests/lib/junit-jupiter-engine-5.5.1.jar b/tests/lib/junit-jupiter-engine-5.5.1.jar new file mode 100644 index 0000000..f6f4218 Binary files /dev/null and b/tests/lib/junit-jupiter-engine-5.5.1.jar differ diff --git a/tests/lib/junit-jupiter-params-5.5.1.jar b/tests/lib/junit-jupiter-params-5.5.1.jar new file mode 100644 index 0000000..ed32475 Binary files /dev/null and b/tests/lib/junit-jupiter-params-5.5.1.jar differ diff --git a/tests/lib/junit-platform-commons-1.5.1.jar b/tests/lib/junit-platform-commons-1.5.1.jar new file mode 100644 index 0000000..f941792 Binary files /dev/null and b/tests/lib/junit-platform-commons-1.5.1.jar differ diff --git a/tests/lib/junit-platform-console-1.5.1.jar b/tests/lib/junit-platform-console-1.5.1.jar new file mode 100644 index 0000000..c95785a Binary files /dev/null and b/tests/lib/junit-platform-console-1.5.1.jar differ diff --git a/tests/lib/junit-platform-engine-1.5.1.jar b/tests/lib/junit-platform-engine-1.5.1.jar new file mode 100644 index 0000000..34d024f Binary files /dev/null and b/tests/lib/junit-platform-engine-1.5.1.jar differ diff --git a/tests/lib/junit-platform-launcher-1.5.1.jar b/tests/lib/junit-platform-launcher-1.5.1.jar new file mode 100644 index 0000000..829fa2c Binary files /dev/null and b/tests/lib/junit-platform-launcher-1.5.1.jar differ diff --git a/tests/lib/junit-platform-reporting-1.5.1.jar b/tests/lib/junit-platform-reporting-1.5.1.jar new file mode 100644 index 0000000..4532986 Binary files /dev/null and b/tests/lib/junit-platform-reporting-1.5.1.jar differ diff --git a/tests/lib/junit-platform-runner-1.5.1.jar b/tests/lib/junit-platform-runner-1.5.1.jar new file mode 100644 index 0000000..9e29b1a Binary files /dev/null and b/tests/lib/junit-platform-runner-1.5.1.jar differ diff --git a/tests/lib/junit-platform-suite-api-1.5.1.jar b/tests/lib/junit-platform-suite-api-1.5.1.jar new file mode 100644 index 0000000..7056e86 Binary files /dev/null and b/tests/lib/junit-platform-suite-api-1.5.1.jar differ diff --git a/tests/lib/junit-vintage-engine-5.5.1.jar b/tests/lib/junit-vintage-engine-5.5.1.jar new file mode 100644 index 0000000..3022219 Binary files /dev/null and b/tests/lib/junit-vintage-engine-5.5.1.jar differ diff --git a/tests/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar b/tests/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar new file mode 100644 index 0000000..45832c0 Binary files /dev/null and b/tests/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar differ diff --git a/tests/lib/log4j-api-2.17.1.jar b/tests/lib/log4j-api-2.17.1.jar new file mode 100644 index 0000000..605c45d Binary files /dev/null and b/tests/lib/log4j-api-2.17.1.jar differ diff --git a/tests/lib/log4j-core-2.17.1.jar b/tests/lib/log4j-core-2.17.1.jar new file mode 100644 index 0000000..bbead12 Binary files /dev/null and b/tests/lib/log4j-core-2.17.1.jar differ diff --git a/tests/lib/log4j-iostreams-2.17.1.jar b/tests/lib/log4j-iostreams-2.17.1.jar new file mode 100644 index 0000000..10b6db7 Binary files /dev/null and b/tests/lib/log4j-iostreams-2.17.1.jar differ diff --git a/tests/lib/log4j-jul-2.17.1.jar b/tests/lib/log4j-jul-2.17.1.jar new file mode 100644 index 0000000..bab94c2 Binary files /dev/null and b/tests/lib/log4j-jul-2.17.1.jar differ diff --git a/tests/lib/metrics-core-4.2.15.jar b/tests/lib/metrics-core-4.2.15.jar new file mode 100644 index 0000000..cbeed55 Binary files /dev/null and b/tests/lib/metrics-core-4.2.15.jar differ diff --git a/tests/lib/mimepull-1.9.11.jar b/tests/lib/mimepull-1.9.11.jar new file mode 100644 index 0000000..99a4aba Binary files /dev/null and b/tests/lib/mimepull-1.9.11.jar differ diff --git a/tests/lib/mssql-jdbc-8.2.0.jre8.jar b/tests/lib/mssql-jdbc-8.2.0.jre8.jar new file mode 100644 index 0000000..9b9f025 Binary files /dev/null and b/tests/lib/mssql-jdbc-8.2.0.jre8.jar differ diff --git a/tests/lib/mssql-jdbc_auth-8.2.0.x86.dll b/tests/lib/mssql-jdbc_auth-8.2.0.x86.dll new file mode 100644 index 0000000..f079f98 Binary files /dev/null and b/tests/lib/mssql-jdbc_auth-8.2.0.x86.dll differ diff --git a/tests/lib/neethi-3.2.0.jar b/tests/lib/neethi-3.2.0.jar new file mode 100644 index 0000000..840bf4f Binary files /dev/null and b/tests/lib/neethi-3.2.0.jar differ diff --git a/tests/lib/netty-buffer-4.1.96.Final.jar b/tests/lib/netty-buffer-4.1.96.Final.jar new file mode 100644 index 0000000..354486b Binary files /dev/null and b/tests/lib/netty-buffer-4.1.96.Final.jar differ diff --git a/tests/lib/netty-codec-4.1.96.Final.jar b/tests/lib/netty-codec-4.1.96.Final.jar new file mode 100644 index 0000000..7101971 Binary files /dev/null and b/tests/lib/netty-codec-4.1.96.Final.jar differ diff --git a/tests/lib/netty-codec-http-4.1.96.Final.jar b/tests/lib/netty-codec-http-4.1.96.Final.jar new file mode 100644 index 0000000..e598d2d Binary files /dev/null and b/tests/lib/netty-codec-http-4.1.96.Final.jar differ diff --git a/tests/lib/netty-codec-socks-4.1.60.Final.jar b/tests/lib/netty-codec-socks-4.1.60.Final.jar new file mode 100644 index 0000000..6b94d39 Binary files /dev/null and b/tests/lib/netty-codec-socks-4.1.60.Final.jar differ diff --git a/tests/lib/netty-common-4.1.96.Final.jar b/tests/lib/netty-common-4.1.96.Final.jar new file mode 100644 index 0000000..c9eff76 Binary files /dev/null and b/tests/lib/netty-common-4.1.96.Final.jar differ diff --git a/tests/lib/netty-handler-4.1.96.Final.jar b/tests/lib/netty-handler-4.1.96.Final.jar new file mode 100644 index 0000000..ec36faa Binary files /dev/null and b/tests/lib/netty-handler-4.1.96.Final.jar differ diff --git a/tests/lib/netty-handler-proxy-4.1.60.Final.jar b/tests/lib/netty-handler-proxy-4.1.60.Final.jar new file mode 100644 index 0000000..b4be3c7 Binary files /dev/null and b/tests/lib/netty-handler-proxy-4.1.60.Final.jar differ diff --git a/tests/lib/netty-reactive-streams-2.0.4.jar b/tests/lib/netty-reactive-streams-2.0.4.jar new file mode 100644 index 0000000..38b5efa Binary files /dev/null and b/tests/lib/netty-reactive-streams-2.0.4.jar differ diff --git a/tests/lib/netty-resolver-4.1.96.Final.jar b/tests/lib/netty-resolver-4.1.96.Final.jar new file mode 100644 index 0000000..29e08ed Binary files /dev/null and b/tests/lib/netty-resolver-4.1.96.Final.jar differ diff --git a/tests/lib/netty-transport-4.1.96.Final.jar b/tests/lib/netty-transport-4.1.96.Final.jar new file mode 100644 index 0000000..ddf8deb Binary files /dev/null and b/tests/lib/netty-transport-4.1.96.Final.jar differ diff --git a/tests/lib/netty-transport-classes-epoll-4.1.96.Final.jar b/tests/lib/netty-transport-classes-epoll-4.1.96.Final.jar new file mode 100644 index 0000000..dad7911 Binary files /dev/null and b/tests/lib/netty-transport-classes-epoll-4.1.96.Final.jar differ diff --git a/tests/lib/netty-transport-classes-kqueue-4.1.96.Final.jar b/tests/lib/netty-transport-classes-kqueue-4.1.96.Final.jar new file mode 100644 index 0000000..a5f6a8e Binary files /dev/null and b/tests/lib/netty-transport-classes-kqueue-4.1.96.Final.jar differ diff --git a/tests/lib/netty-transport-native-epoll-4.1.60.Final-linux-x86_64.jar b/tests/lib/netty-transport-native-epoll-4.1.60.Final-linux-x86_64.jar new file mode 100644 index 0000000..c3f2fed Binary files /dev/null and b/tests/lib/netty-transport-native-epoll-4.1.60.Final-linux-x86_64.jar differ diff --git a/tests/lib/netty-transport-native-epoll-4.1.96.Final.jar b/tests/lib/netty-transport-native-epoll-4.1.96.Final.jar new file mode 100644 index 0000000..3bace84 Binary files /dev/null and b/tests/lib/netty-transport-native-epoll-4.1.96.Final.jar differ diff --git a/tests/lib/netty-transport-native-kqueue-4.1.60.Final-osx-x86_64.jar b/tests/lib/netty-transport-native-kqueue-4.1.60.Final-osx-x86_64.jar new file mode 100644 index 0000000..7cf26a0 Binary files /dev/null and b/tests/lib/netty-transport-native-kqueue-4.1.60.Final-osx-x86_64.jar differ diff --git a/tests/lib/netty-transport-native-kqueue-4.1.96.Final.jar b/tests/lib/netty-transport-native-kqueue-4.1.96.Final.jar new file mode 100644 index 0000000..b6eb351 Binary files /dev/null and b/tests/lib/netty-transport-native-kqueue-4.1.96.Final.jar differ diff --git a/tests/lib/netty-transport-native-unix-common-4.1.96.Final.jar b/tests/lib/netty-transport-native-unix-common-4.1.96.Final.jar new file mode 100644 index 0000000..f8dfc95 Binary files /dev/null and b/tests/lib/netty-transport-native-unix-common-4.1.96.Final.jar differ diff --git a/tests/lib/ojdbc8-12.2.0.1.jar b/tests/lib/ojdbc8-12.2.0.1.jar new file mode 100644 index 0000000..bf41243 Binary files /dev/null and b/tests/lib/ojdbc8-12.2.0.1.jar differ diff --git a/tests/lib/opensaml-core-4.3.0.jar b/tests/lib/opensaml-core-4.3.0.jar new file mode 100644 index 0000000..4efa3aa Binary files /dev/null and b/tests/lib/opensaml-core-4.3.0.jar differ diff --git a/tests/lib/opensaml-profile-api-4.3.0.jar b/tests/lib/opensaml-profile-api-4.3.0.jar new file mode 100644 index 0000000..9080204 Binary files /dev/null and b/tests/lib/opensaml-profile-api-4.3.0.jar differ diff --git a/tests/lib/opensaml-saml-api-4.3.0.jar b/tests/lib/opensaml-saml-api-4.3.0.jar new file mode 100644 index 0000000..8c2d899 Binary files /dev/null and b/tests/lib/opensaml-saml-api-4.3.0.jar differ diff --git a/tests/lib/opensaml-saml-impl-4.3.0.jar b/tests/lib/opensaml-saml-impl-4.3.0.jar new file mode 100644 index 0000000..003b27f Binary files /dev/null and b/tests/lib/opensaml-saml-impl-4.3.0.jar differ diff --git a/tests/lib/opensaml-security-api-4.3.0.jar b/tests/lib/opensaml-security-api-4.3.0.jar new file mode 100644 index 0000000..6c935e2 Binary files /dev/null and b/tests/lib/opensaml-security-api-4.3.0.jar differ diff --git a/tests/lib/opensaml-security-impl-4.3.0.jar b/tests/lib/opensaml-security-impl-4.3.0.jar new file mode 100644 index 0000000..6038fc1 Binary files /dev/null and b/tests/lib/opensaml-security-impl-4.3.0.jar differ diff --git a/tests/lib/opensaml-soap-api-4.3.0.jar b/tests/lib/opensaml-soap-api-4.3.0.jar new file mode 100644 index 0000000..23f9032 Binary files /dev/null and b/tests/lib/opensaml-soap-api-4.3.0.jar differ diff --git a/tests/lib/opensaml-xacml-api-4.3.0.jar b/tests/lib/opensaml-xacml-api-4.3.0.jar new file mode 100644 index 0000000..430de78 Binary files /dev/null and b/tests/lib/opensaml-xacml-api-4.3.0.jar differ diff --git a/tests/lib/opensaml-xacml-impl-4.3.0.jar b/tests/lib/opensaml-xacml-impl-4.3.0.jar new file mode 100644 index 0000000..f70dc31 Binary files /dev/null and b/tests/lib/opensaml-xacml-impl-4.3.0.jar differ diff --git a/tests/lib/opensaml-xacml-saml-api-4.3.0.jar b/tests/lib/opensaml-xacml-saml-api-4.3.0.jar new file mode 100644 index 0000000..bf51757 Binary files /dev/null and b/tests/lib/opensaml-xacml-saml-api-4.3.0.jar differ diff --git a/tests/lib/opensaml-xacml-saml-impl-4.3.0.jar b/tests/lib/opensaml-xacml-saml-impl-4.3.0.jar new file mode 100644 index 0000000..1e87b9d Binary files /dev/null and b/tests/lib/opensaml-xacml-saml-impl-4.3.0.jar differ diff --git a/tests/lib/opensaml-xmlsec-api-4.3.0.jar b/tests/lib/opensaml-xmlsec-api-4.3.0.jar new file mode 100644 index 0000000..05d0daf Binary files /dev/null and b/tests/lib/opensaml-xmlsec-api-4.3.0.jar differ diff --git a/tests/lib/opensaml-xmlsec-impl-4.3.0.jar b/tests/lib/opensaml-xmlsec-impl-4.3.0.jar new file mode 100644 index 0000000..10d49b9 Binary files /dev/null and b/tests/lib/opensaml-xmlsec-impl-4.3.0.jar differ diff --git a/tests/lib/opentelemetry-api-1.28.0.jar b/tests/lib/opentelemetry-api-1.28.0.jar new file mode 100644 index 0000000..9a80508 Binary files /dev/null and b/tests/lib/opentelemetry-api-1.28.0.jar differ diff --git a/tests/lib/opentelemetry-api-events-1.28.0-alpha.jar b/tests/lib/opentelemetry-api-events-1.28.0-alpha.jar new file mode 100644 index 0000000..993a1de Binary files /dev/null and b/tests/lib/opentelemetry-api-events-1.28.0-alpha.jar differ diff --git a/tests/lib/opentelemetry-context-1.28.0.jar b/tests/lib/opentelemetry-context-1.28.0.jar new file mode 100644 index 0000000..2d1a0a4 Binary files /dev/null and b/tests/lib/opentelemetry-context-1.28.0.jar differ diff --git a/tests/lib/opentelemetry-exporter-logging-1.28.0.jar b/tests/lib/opentelemetry-exporter-logging-1.28.0.jar new file mode 100644 index 0000000..935d3c2 Binary files /dev/null and b/tests/lib/opentelemetry-exporter-logging-1.28.0.jar differ diff --git a/tests/lib/opentelemetry-extension-incubator-1.28.0-alpha.jar b/tests/lib/opentelemetry-extension-incubator-1.28.0-alpha.jar new file mode 100644 index 0000000..61e6ac0 Binary files /dev/null and b/tests/lib/opentelemetry-extension-incubator-1.28.0-alpha.jar differ diff --git a/tests/lib/opentelemetry-sdk-1.28.0.jar b/tests/lib/opentelemetry-sdk-1.28.0.jar new file mode 100644 index 0000000..a65263e Binary files /dev/null and b/tests/lib/opentelemetry-sdk-1.28.0.jar differ diff --git a/tests/lib/opentelemetry-sdk-common-1.28.0.jar b/tests/lib/opentelemetry-sdk-common-1.28.0.jar new file mode 100644 index 0000000..7b021ff Binary files /dev/null and b/tests/lib/opentelemetry-sdk-common-1.28.0.jar differ diff --git a/tests/lib/opentelemetry-sdk-extension-autoconfigure-1.28.0.jar b/tests/lib/opentelemetry-sdk-extension-autoconfigure-1.28.0.jar new file mode 100644 index 0000000..976a0ef Binary files /dev/null and b/tests/lib/opentelemetry-sdk-extension-autoconfigure-1.28.0.jar differ diff --git a/tests/lib/opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar b/tests/lib/opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar new file mode 100644 index 0000000..31089ee Binary files /dev/null and b/tests/lib/opentelemetry-sdk-extension-autoconfigure-spi-1.28.0.jar differ diff --git a/tests/lib/opentelemetry-sdk-logs-1.28.0.jar b/tests/lib/opentelemetry-sdk-logs-1.28.0.jar new file mode 100644 index 0000000..bb13094 Binary files /dev/null and b/tests/lib/opentelemetry-sdk-logs-1.28.0.jar differ diff --git a/tests/lib/opentelemetry-sdk-metrics-1.28.0.jar b/tests/lib/opentelemetry-sdk-metrics-1.28.0.jar new file mode 100644 index 0000000..d42bfdb Binary files /dev/null and b/tests/lib/opentelemetry-sdk-metrics-1.28.0.jar differ diff --git a/tests/lib/opentelemetry-sdk-trace-1.28.0.jar b/tests/lib/opentelemetry-sdk-trace-1.28.0.jar new file mode 100644 index 0000000..b7963c8 Binary files /dev/null and b/tests/lib/opentelemetry-sdk-trace-1.28.0.jar differ diff --git a/tests/lib/opentelemetry-semconv-1.28.0-alpha.jar b/tests/lib/opentelemetry-semconv-1.28.0-alpha.jar new file mode 100644 index 0000000..b293fe4 Binary files /dev/null and b/tests/lib/opentelemetry-semconv-1.28.0-alpha.jar differ diff --git a/tests/lib/opentest4j-1.2.0.jar b/tests/lib/opentest4j-1.2.0.jar new file mode 100644 index 0000000..d500636 Binary files /dev/null and b/tests/lib/opentest4j-1.2.0.jar differ diff --git a/tests/lib/osgi-resource-locator-1.0.3.jar b/tests/lib/osgi-resource-locator-1.0.3.jar new file mode 100644 index 0000000..0f3c386 Binary files /dev/null and b/tests/lib/osgi-resource-locator-1.0.3.jar differ diff --git a/tests/lib/postgresql-42.7.1.jar b/tests/lib/postgresql-42.7.1.jar new file mode 100644 index 0000000..18331b7 Binary files /dev/null and b/tests/lib/postgresql-42.7.1.jar differ diff --git a/tests/lib/reactive-streams-1.0.3.jar b/tests/lib/reactive-streams-1.0.3.jar new file mode 100644 index 0000000..b9b487c Binary files /dev/null and b/tests/lib/reactive-streams-1.0.3.jar differ diff --git a/tests/lib/robotil-1.10.jar b/tests/lib/robotil-1.10.jar new file mode 100644 index 0000000..40afd6a Binary files /dev/null and b/tests/lib/robotil-1.10.jar differ diff --git a/tests/lib/saaj-impl-2.0.1.jar b/tests/lib/saaj-impl-2.0.1.jar new file mode 100644 index 0000000..568ae52 Binary files /dev/null and b/tests/lib/saaj-impl-2.0.1.jar differ diff --git a/tests/lib/selenium-api-4.13.0.jar b/tests/lib/selenium-api-4.13.0.jar new file mode 100644 index 0000000..d7a9145 Binary files /dev/null and b/tests/lib/selenium-api-4.13.0.jar differ diff --git a/tests/lib/selenium-chrome-driver-4.13.0.jar b/tests/lib/selenium-chrome-driver-4.13.0.jar new file mode 100644 index 0000000..21db8a6 Binary files /dev/null and b/tests/lib/selenium-chrome-driver-4.13.0.jar differ diff --git a/tests/lib/selenium-chromium-driver-4.13.0.jar b/tests/lib/selenium-chromium-driver-4.13.0.jar new file mode 100644 index 0000000..2be7b0c Binary files /dev/null and b/tests/lib/selenium-chromium-driver-4.13.0.jar differ diff --git a/tests/lib/selenium-devtools-v115-4.13.0.jar b/tests/lib/selenium-devtools-v115-4.13.0.jar new file mode 100644 index 0000000..f891df1 Binary files /dev/null and b/tests/lib/selenium-devtools-v115-4.13.0.jar differ diff --git a/tests/lib/selenium-devtools-v116-4.13.0.jar b/tests/lib/selenium-devtools-v116-4.13.0.jar new file mode 100644 index 0000000..89f5c41 Binary files /dev/null and b/tests/lib/selenium-devtools-v116-4.13.0.jar differ diff --git a/tests/lib/selenium-devtools-v117-4.13.0.jar b/tests/lib/selenium-devtools-v117-4.13.0.jar new file mode 100644 index 0000000..b7653c9 Binary files /dev/null and b/tests/lib/selenium-devtools-v117-4.13.0.jar differ diff --git a/tests/lib/selenium-devtools-v85-4.13.0.jar b/tests/lib/selenium-devtools-v85-4.13.0.jar new file mode 100644 index 0000000..6960a4e Binary files /dev/null and b/tests/lib/selenium-devtools-v85-4.13.0.jar differ diff --git a/tests/lib/selenium-edge-driver-4.13.0.jar b/tests/lib/selenium-edge-driver-4.13.0.jar new file mode 100644 index 0000000..10612f9 Binary files /dev/null and b/tests/lib/selenium-edge-driver-4.13.0.jar differ diff --git a/tests/lib/selenium-firefox-driver-4.13.0.jar b/tests/lib/selenium-firefox-driver-4.13.0.jar new file mode 100644 index 0000000..3351da9 Binary files /dev/null and b/tests/lib/selenium-firefox-driver-4.13.0.jar differ diff --git a/tests/lib/selenium-http-4.13.0.jar b/tests/lib/selenium-http-4.13.0.jar new file mode 100644 index 0000000..7198845 Binary files /dev/null and b/tests/lib/selenium-http-4.13.0.jar differ diff --git a/tests/lib/selenium-ie-driver-4.13.0.jar b/tests/lib/selenium-ie-driver-4.13.0.jar new file mode 100644 index 0000000..5453e27 Binary files /dev/null and b/tests/lib/selenium-ie-driver-4.13.0.jar differ diff --git a/tests/lib/selenium-java-4.13.0.jar b/tests/lib/selenium-java-4.13.0.jar new file mode 100644 index 0000000..a63e635 Binary files /dev/null and b/tests/lib/selenium-java-4.13.0.jar differ diff --git a/tests/lib/selenium-json-4.13.0.jar b/tests/lib/selenium-json-4.13.0.jar new file mode 100644 index 0000000..98db5e7 Binary files /dev/null and b/tests/lib/selenium-json-4.13.0.jar differ diff --git a/tests/lib/selenium-manager-4.13.0.jar b/tests/lib/selenium-manager-4.13.0.jar new file mode 100644 index 0000000..e276481 Binary files /dev/null and b/tests/lib/selenium-manager-4.13.0.jar differ diff --git a/tests/lib/selenium-os-4.13.0.jar b/tests/lib/selenium-os-4.13.0.jar new file mode 100644 index 0000000..b8c94dc Binary files /dev/null and b/tests/lib/selenium-os-4.13.0.jar differ diff --git a/tests/lib/selenium-remote-driver-4.13.0.jar b/tests/lib/selenium-remote-driver-4.13.0.jar new file mode 100644 index 0000000..5a754b5 Binary files /dev/null and b/tests/lib/selenium-remote-driver-4.13.0.jar differ diff --git a/tests/lib/selenium-safari-driver-4.13.0.jar b/tests/lib/selenium-safari-driver-4.13.0.jar new file mode 100644 index 0000000..a4b7d14 Binary files /dev/null and b/tests/lib/selenium-safari-driver-4.13.0.jar differ diff --git a/tests/lib/selenium-support-4.13.0.jar b/tests/lib/selenium-support-4.13.0.jar new file mode 100644 index 0000000..0ce87c8 Binary files /dev/null and b/tests/lib/selenium-support-4.13.0.jar differ diff --git a/tests/lib/slf4j-api-1.7.25.jar b/tests/lib/slf4j-api-1.7.25.jar new file mode 100644 index 0000000..0143c09 Binary files /dev/null and b/tests/lib/slf4j-api-1.7.25.jar differ diff --git a/tests/lib/snakeyaml-1.26.jar b/tests/lib/snakeyaml-1.26.jar new file mode 100644 index 0000000..8f301fd Binary files /dev/null and b/tests/lib/snakeyaml-1.26.jar differ diff --git a/tests/lib/stax-ex-2.0.1.jar b/tests/lib/stax-ex-2.0.1.jar new file mode 100644 index 0000000..3df5bc3 Binary files /dev/null and b/tests/lib/stax-ex-2.0.1.jar differ diff --git a/tests/lib/stax2-api-4.2.1.jar b/tests/lib/stax2-api-4.2.1.jar new file mode 100644 index 0000000..28c6a08 Binary files /dev/null and b/tests/lib/stax2-api-4.2.1.jar differ diff --git a/tests/lib/txw2-3.0.0-M5.jar b/tests/lib/txw2-3.0.0-M5.jar new file mode 100644 index 0000000..86b329c Binary files /dev/null and b/tests/lib/txw2-3.0.0-M5.jar differ diff --git a/tests/lib/vault-java-driver-5.1.0.jar b/tests/lib/vault-java-driver-5.1.0.jar new file mode 100644 index 0000000..4d82f21 Binary files /dev/null and b/tests/lib/vault-java-driver-5.1.0.jar differ diff --git a/tests/lib/woodstox-core-6.5.1.jar b/tests/lib/woodstox-core-6.5.1.jar new file mode 100644 index 0000000..b22b384 Binary files /dev/null and b/tests/lib/woodstox-core-6.5.1.jar differ diff --git a/tests/lib/wsdl4j-1.6.3.jar b/tests/lib/wsdl4j-1.6.3.jar new file mode 100644 index 0000000..b9c10b9 Binary files /dev/null and b/tests/lib/wsdl4j-1.6.3.jar differ diff --git a/tests/lib/wss4j-bindings-3.0.1.jar b/tests/lib/wss4j-bindings-3.0.1.jar new file mode 100644 index 0000000..75a1c00 Binary files /dev/null and b/tests/lib/wss4j-bindings-3.0.1.jar differ diff --git a/tests/lib/wss4j-policy-3.0.1.jar b/tests/lib/wss4j-policy-3.0.1.jar new file mode 100644 index 0000000..7a14e48 Binary files /dev/null and b/tests/lib/wss4j-policy-3.0.1.jar differ diff --git a/tests/lib/wss4j-ws-security-common-3.0.1.jar b/tests/lib/wss4j-ws-security-common-3.0.1.jar new file mode 100644 index 0000000..278f11f Binary files /dev/null and b/tests/lib/wss4j-ws-security-common-3.0.1.jar differ diff --git a/tests/lib/wss4j-ws-security-dom-3.0.1.jar b/tests/lib/wss4j-ws-security-dom-3.0.1.jar new file mode 100644 index 0000000..7506570 Binary files /dev/null and b/tests/lib/wss4j-ws-security-dom-3.0.1.jar differ diff --git a/tests/lib/wss4j-ws-security-policy-stax-3.0.1.jar b/tests/lib/wss4j-ws-security-policy-stax-3.0.1.jar new file mode 100644 index 0000000..14e3edf Binary files /dev/null and b/tests/lib/wss4j-ws-security-policy-stax-3.0.1.jar differ diff --git a/tests/lib/wss4j-ws-security-stax-3.0.1.jar b/tests/lib/wss4j-ws-security-stax-3.0.1.jar new file mode 100644 index 0000000..6ada399 Binary files /dev/null and b/tests/lib/wss4j-ws-security-stax-3.0.1.jar differ diff --git a/tests/lib/xml-resolver-1.2.jar b/tests/lib/xml-resolver-1.2.jar new file mode 100644 index 0000000..e535bdc Binary files /dev/null and b/tests/lib/xml-resolver-1.2.jar differ diff --git a/tests/lib/xmlschema-core-2.3.1.jar b/tests/lib/xmlschema-core-2.3.1.jar new file mode 100644 index 0000000..2970160 Binary files /dev/null and b/tests/lib/xmlschema-core-2.3.1.jar differ diff --git a/tests/lib/xmlsec-3.0.2.jar b/tests/lib/xmlsec-3.0.2.jar new file mode 100644 index 0000000..aca0482 Binary files /dev/null and b/tests/lib/xmlsec-3.0.2.jar differ diff --git a/tests/pom.xml b/tests/pom.xml new file mode 100644 index 0000000..91cccba --- /dev/null +++ b/tests/pom.xml @@ -0,0 +1,256 @@ + + + 4.0.0 + cz.moneta.test + tests + 2.28-SNAPSHOT + + 7.55-SNAPSHOT + UTF-8 + 1.5.1 + + + + cz.moneta.test + harness + ${harness.version} + + + org.slf4j + slf4j-api + 1.7.25 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-csv + 2.16.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + 2.16.1 + + + org.projectlombok + lombok + 1.18.30 + provided + + + com.microsoft.sqlserver + mssql-jdbc_auth + 8.2.0.x86 + dll + + + org.jetbrains + annotations + 15.0 + + + org.junit.platform + junit-platform-reporting + ${junit.platform.version} + + + org.junit.platform + junit-platform-console + ${junit.platform.version} + + + org.yaml + snakeyaml + 1.26 + + + + + Moneta Artifactory + + true + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.9.0 + + + install + + copy-dependencies + + + ${project.build.directory}/lib + runtime + + + + + + maven-compiler-plugin + 3.13.0 + + 17 + 17 + + + + maven-surefire-plugin + 2.22.2 + + --add-opens java.base/java.lang.invoke=ALL-UNNAMED -Dhttp.proxyHost=wsa-aws.mbid.cz -Dhttp.proxyPort=8008 -Dhttps.proxyHost=wsa-aws.mbid.cz -Dhttps.proxyPort=8008 + -Dhttp.nonProxyHosts="elasticclusterawscoord*|elasticclusterawsingest*|jenkinslivex*|cbltstx|vault|vault.svc.k8s.moneta-containers.net|selenium-hub.svc.k8s.moneta-containers.net|jira*|d000*|x000*|l000*|digdev*|r000|spii-live-significant|mbczvl1dl0ihat3.ux.mbid.cz|mbczvl1dl0ihet3.ux.mbid.cz|wso2-fve-gw.ux.mbid.cz|wso2eifve.lb.mbid.cz|wso2eippe.lb.mbid.cz|wso2-ppe-gw.ux.mbid.cz|mbczvl0bl0enin3.ux.mbid.cz|wso2-tst1-gw.ux.mbid.cz|wso2eitst1.lb.mbid.cz|wso2-edu-gw.ux.mbid.cz|mbczvl0bl0enin5.ux.mbid.cz|mbczvl1dl0enin6.ux.mbid.cz|wso2api01-wso2-02.ux.mbid.cz|api-szr.tst.moneta-containers.net|api-szr.ppe.moneta-containers.net|docker1|mbczvl1dl0mockt.ux.mbid.cz|api.tst.moneta-containers.net|api.ppe.moneta-containers.net" + + cz.moneta.test.sandbox.demo.HarnessDemoTest.java + + false + false + + + + + + + + true + + + false + + central + libs-release + https://artifactory-aws.ux.mbid.cz/artifactory/libs-release + + + + false + + + true + + snapshots + libs-snapshot + https://artifactory-aws.ux.mbid.cz/artifactory/libs-snapshot + + + + + + true + + + false + + central + plugins-release + https://artifactory-aws.ux.mbid.cz/artifactory/plugins-release + + + + false + + + true + + snapshots + plugins-snapshot + https://artifactory-aws.ux.mbid.cz/artifactory/plugins-snapshot + + + + + build.package + + + build.package + true + + + + + + maven-compiler-plugin + 3.13.0 + + 17 + 17 + + + + maven-assembly-plugin + 3.6.0 + + + package + + single + + + + + cz.moneta.test.testrunner.TestRunner + + + + src/assembly/assembly.xml + + + + + + + + + + + true + + + false + + central + libs-release + https://artifactory-aws.ux.mbid.cz/artifactory/libs-release + + + + false + + + true + + snapshots + libs-snapshot + https://artifactory-aws.ux.mbid.cz/artifactory/libs-snapshot + + + + + + true + + + false + + central + plugins-release + https://artifactory-aws.ux.mbid.cz/artifactory/plugins-release + + + + false + + + true + + snapshots + plugins-snapshot + https://artifactory-aws.ux.mbid.cz/artifactory/plugins-snapshot + + + + + diff --git a/tests/src/assembly/assembly.xml b/tests/src/assembly/assembly.xml new file mode 100644 index 0000000..4cdd653 --- /dev/null +++ b/tests/src/assembly/assembly.xml @@ -0,0 +1,39 @@ + + tests + + jar + + false + + + / + true + true + test + + com.microsoft.sqlserver:mssql-jdbc_auth:dll:8.2.0.x86 + + + + + + ${project.build.directory}/test-classes + / + + **/** + + true + + + ${project.build.directory}/classes + / + + **/** + + true + + + \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/Harness.java b/tests/src/main/java/cz/moneta/test/dsl/Harness.java new file mode 100644 index 0000000..8729fc7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/Harness.java @@ -0,0 +1,300 @@ +package cz.moneta.test.dsl; + +import cz.moneta.test.dsl.aresapi.AresApiBuilder; +import cz.moneta.test.dsl.auto.autoapi.AutoApiBuilder; +import cz.moneta.test.dsl.auto.smartauto.SmartAuto; +import cz.moneta.test.dsl.auto.smartauto.setman.SmartAutoSetman; +import cz.moneta.test.dsl.broadcom.Broadcom; +import cz.moneta.test.dsl.brokerportal.BrokerPortal; +import cz.moneta.test.dsl.caapi.CaApiBuilder; +import cz.moneta.test.dsl.cagw.CaGwBuilder; +import cz.moneta.test.dsl.cashman.Cashman; +import cz.moneta.test.dsl.cebia.Cebia; +import cz.moneta.test.dsl.demo.Spirits; +import cz.moneta.test.dsl.demo.web.DemoWebChrome; +import cz.moneta.test.dsl.demo.web.DemoWebEdge; +import cz.moneta.test.dsl.dmbsib.DmbsIb; +import cz.moneta.test.dsl.elastic.ElasticApiBuilder; +import cz.moneta.test.dsl.exevido.Exevido; +import cz.moneta.test.dsl.finanso.Finanso; +import cz.moneta.test.dsl.forte.Forte; +import cz.moneta.test.dsl.fortelight.ForteLight; +import cz.moneta.test.dsl.greenscreen.GreenScreen; +import cz.moneta.test.dsl.hypos.Hypos; +import cz.moneta.test.dsl.ib.Ib; +import cz.moneta.test.dsl.ilods.Ilods; +import cz.moneta.test.dsl.kasanova.Kasanova; +import cz.moneta.test.dsl.mobile.smartbanking.home.Sb; +import cz.moneta.test.dsl.monetaapiportal.MonetaApiPortal; +import cz.moneta.test.dsl.monetaportal.MonetaPortal; +import cz.moneta.test.dsl.mwf.IHub; +import cz.moneta.test.dsl.newib.NewIb; +import cz.moneta.test.dsl.oauth2.web.Oauth2Web; +import cz.moneta.test.dsl.openapi.OpenApiBuilder; +import cz.moneta.test.dsl.payment_engine.PaymentEngine; +import cz.moneta.test.dsl.refinanso.Refinanso; +import cz.moneta.test.dsl.salesforce.SalesForce; +import cz.moneta.test.dsl.salesforceapi.SalesForceApiBuilder; +import cz.moneta.test.dsl.szrmock.SzrMockBuilder; +import cz.moneta.test.dsl.testautomationpage.TestAutomationPage; +import cz.moneta.test.dsl.udebs.Udebs; +import cz.moneta.test.dsl.ufo.Ufo; +import cz.moneta.test.dsl.util.data.*; +import cz.moneta.test.dsl.util.data.generators.*; +import cz.moneta.test.dsl.util.task.Tasks; +import cz.moneta.test.dsl.util.task.dataprepare.DataPrepareTasks; +import cz.moneta.test.dsl.wso2.MockServer; +import cz.moneta.test.dsl.wso2.Wso2; +import cz.moneta.test.harness.annotations.TestContext; +import cz.moneta.test.harness.context.BaseStoreAccessor; +import cz.moneta.test.harness.support.data.GeneratorType; +import org.junit.jupiter.api.extension.ExtensionContext.Store; + +import static cz.moneta.test.harness.support.data.GeneratorType.*; + +/** + * {@link Harness} is considered the central entry and interaction point of the Harness framework. It utilizes the + * builder pattern and provides a comprehensive fluent API. + *

+ * It serves as an entry point to individual systems' and applications' DSL via Harness#with<system> methods + * (e.g. {@link Harness#withUdebs()}) + *

+ * Additionally, it sports a number of utility methods. These include (for details see the individual method documentation): + *

    + *
  • {@link Harness#getEndpoint} retrieves individual system/application endpoint with its api
  • + *
  • {@link Harness#get} retrieves value from Harness key-value store (this store has test class scope)
  • + *
  • {@link Harness#store} stores value in Harness key-value store with a given key
  • + *
  • {@link Harness#getGlobal} retrieves value from Harness global key-value store (this store is persistent across all tests run)
  • + *
  • {@link Harness#storeGlobal} stores value in Harness global key-value store with a given key
  • + *
  • {@link Harness#log} is the preferred method of logging in Harness
  • + *
  • {@link Harness#generate} gives access to value generators registered with Harness (see {@link GeneratorType GeneratorType} for the list of available generators)
  • + *
  • {@link Harness#getConfig} gives access to properties stored in harness config files
  • + *
  • {@link Harness#data} gives access to test data builders (e.g. {@link cz.moneta.test.dsl.util.data.client.NonClient NonClient}) + *
  • {@link Harness#tasks} gives access to a collection of tasks such as isolated database calls or re-usable parts of web flows + *
+ *

+ *

+ * Harness can be (and usually is) injected into test methods as a parameter. + *

{@code
+ *    @literal @TestCase
+ *     public void tc_check_config(Harness harness) {
+ *         SpiritRef countDooku = harness.withDemo()
+ *                 .summonSpirit("Count Dooku");
+ *         ...
+ *     }
+ *  }
+ */ +@TestContext +public class Harness extends BaseStoreAccessor { + + private static final String SECOND_BANKER_TOKEN = "Second UFO"; + + public Harness(Store rootStore, Store globalStore, Store endpointStore, Store configStore, Store generatorsStore) { + super(rootStore, globalStore, endpointStore, configStore, generatorsStore); + initGenerators(); + } + + public static String getSecondBankerToken() { + return SECOND_BANKER_TOKEN; + } + + public Udebs withUdebs() { + return new Udebs(this); + } + + public OpenApiBuilder withOpenApi() { + return new OpenApiBuilder(this); + } + + public CaApiBuilder withCaOpenApi() { + return new CaApiBuilder(this); + } + + public CaGwBuilder withCaGw() { + return new CaGwBuilder(this); + } + + @Deprecated + public Ib withIB() { + return new Ib(this); + } + + public NewIb withNewIb() { + return new NewIb(this); + } + + @Deprecated + public IHub withIHub() { + return new IHub(this); + } + + public Wso2 withWso2() { + return new Wso2(this); + } + + public Ufo withUfo() { + return new Ufo(this); + } + + public Ufo withUfoSecondInstance() { + return new Ufo(this, SECOND_BANKER_TOKEN); + } + + @Deprecated + public Oauth2Web withOauth2Web() { + return new Oauth2Web(this); + } + + public DmbsIb withDmbsIb() { + return new DmbsIb(this); + } + + public Spirits withDemo() { + return new Spirits(this); + } + + public DemoWebChrome withDemoChromeTestPage() { + return new DemoWebChrome(this); + } + + public DemoWebEdge withDemoEdgeTestPage() { + return new DemoWebEdge(this); + } + + public MonetaPortal withMonetaPortal() { + return new MonetaPortal(this); + } + + public BrokerPortal withBrokerPortal() { + return new BrokerPortal(this); + } + + public Hypos withHypos() { + return new Hypos(this); + } + + public SmartAuto withSmartAuto() { + return new SmartAuto(this); + } + + public SmartAutoSetman withSmartAutoSetman() { + return new SmartAutoSetman(this); + } + + public AutoApiBuilder withAutoApi() { + return new AutoApiBuilder(this); + } + + public AresApiBuilder withAresApi() { + return new AresApiBuilder(this); + } + + public Sb withSB() { + return new Sb(this); + } + + public Kasanova withKasanova() { + return new Kasanova(this); + } + + @Deprecated(since = "unmaintained since update to Java 17") + public Cebia withCebia() { + return new Cebia(this); + } + + public GreenScreen withGreenScreen() { + return new GreenScreen(this); + } + + public Data data() { + return new Data(this); + } + + public Tasks tasks() { + return new Tasks(this); + } + + public MonetaApiPortal withMonetaApiPortal() { + return new MonetaApiPortal(this); + } + + public PaymentEngine withPaymentEngine() { + return new PaymentEngine(this); + } + + public Ilods withIlods() { + return new Ilods(this); + } + + public DataPrepareTasks dataPrepare() { + return new DataPrepareTasks(this); + } + + public Refinanso withRefinanso() { + return new Refinanso(this); + } + + public Finanso withFinanso() { + return new Finanso(this); + } + + public TestAutomationPage withTestAutomationPage() { + return new TestAutomationPage(this); + } + + public SalesForce withSalesForce() { + return new SalesForce(this); + } + + public SalesForceApiBuilder withSalesForceApi() { + return new SalesForceApiBuilder(this); + } + + public ElasticApiBuilder withElasticApi() { + return new ElasticApiBuilder(this); + } + + public ForteLight withForteLight() { + return new ForteLight(this); + } + + public Forte withForte() { + return new Forte(this); + } + + public Broadcom withBroadcom() { + return new Broadcom(this); + } + + public SzrMockBuilder withSzrMock() { + return new SzrMockBuilder(this); + } + + public MockServer withMockServer() { + return new MockServer(this); + } + + public Exevido withExevido() { + return new Exevido(this); + } + + public Cashman withCashman() { + return new Cashman(this); + } + + private void initGenerators() { + addGenerator(RC, new RcGenerator()); + addGenerator(FIRST_NAME, new FirstNameGenerator()); + addGenerator(LAST_NAME, new LastNameGenerator()); + addGenerator(ID_CARD, new IdCardGenerator()); + addGenerator(ID_CARD_CHECK_DIGIT, new IdCardCheckDigitGenerator()); + addGenerator(PASSPORT_NUMBER, new PassportGenerator()); + addGenerator(MOBILE_PHONE_NUMBER, new MobilePhoneNumberGenerator()); + addGenerator(FIX_LINE_PHONE_NUMBER, new FixLinePhoneNumberGenerator()); + addGenerator(ICO, new IcoGenerator()); + addGenerator(SIPO, new SipoGenerator()); + addGenerator(ACCOUNT_NUMBER, new AccountNumberGenerator()); + addGenerator(RESIDENCY_ADDRESS, new ResidencyAddressGenerator()); + addGenerator(EMPLOYER, new EmployerGenerator()); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/aresapi/AresApiBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/aresapi/AresApiBuilder.java new file mode 100644 index 0000000..83ddba0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/aresapi/AresApiBuilder.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.aresapi; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.aresapi.AresApiEndpoint; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +public class AresApiBuilder { + + private final Harness harness; + + public AresApiBuilder(Harness harness) { + this.harness = harness; + } + + public RawRestRequest.Path prepareRequest() { + return RawRestRequest.jsonBuilder(harness.getEndpoint(AresApiEndpoint.class)); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/AutoApiBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/AutoApiBuilder.java new file mode 100644 index 0000000..8dc6049 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/AutoApiBuilder.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.auto.autoapi; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.autoapi.lamder.LamderBuilder; +import cz.moneta.test.dsl.auto.autoapi.setman.SetmanBuilder; +import cz.moneta.test.harness.endpoints.autoapi.AutoApiEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class AutoApiBuilder { + + private final Harness harness; + + public AutoApiBuilder(Harness harness) { + this.harness = harness; + } + + public LamderBuilder lamder() { + return new LamderBuilder(harness); + } + + public SetmanBuilder setman() { + return new SetmanBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, AutoApiEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/AutoApiRequest.java b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/AutoApiRequest.java new file mode 100644 index 0000000..e4f223e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/AutoApiRequest.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.auto.autoapi; + +import cz.moneta.test.harness.support.rest.Header; +import cz.moneta.test.harness.support.rest.RestRequest; + +public interface AutoApiRequest extends RestRequest { + @Header("Authorization") + B withAuthorizationBearer(String authorizationBearer); + + @Header("Accept") + B withAccept(String accept); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/LamderBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/LamderBuilder.java new file mode 100644 index 0000000..f0748a7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/LamderBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.auto.autoapi.lamder; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.autoapi.lamder.authentication.AuthenticationBuilder; +import cz.moneta.test.harness.endpoints.autoapi.AutoApiEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class LamderBuilder { + private final Harness harness; + + public LamderBuilder(Harness harness) { + this.harness = harness; + } + + public AuthenticationBuilder authentication() { + return new AuthenticationBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, AutoApiEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/AuthenticationBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/AuthenticationBuilder.java new file mode 100644 index 0000000..05d0d59 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/AuthenticationBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.auto.autoapi.lamder.authentication; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.autoapi.lamder.authentication.login.Login; +import cz.moneta.test.harness.endpoints.autoapi.AutoApiEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class AuthenticationBuilder { + private final Harness harness; + + public AuthenticationBuilder(Harness harness) { + this.harness = harness; + } + + public Login prepareLoginRequest() { + return getBuilder(Login.class); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, AutoApiEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/login/Login.java b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/login/Login.java new file mode 100644 index 0000000..f69c4ed --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/login/Login.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.auto.autoapi.lamder.authentication.login; + +import cz.moneta.test.dsl.auto.autoapi.AutoApiRequest; +import cz.moneta.test.harness.support.rest.Post; + +@Post(value = "/lamder/authentication/login") +public interface Login extends AutoApiRequest { + Login password(String password); + Login securityCode(String securityCode); + Login userName(String userName); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/login/LoginRequest.java b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/login/LoginRequest.java new file mode 100644 index 0000000..a1a62b5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/login/LoginRequest.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.auto.autoapi.lamder.authentication.login; + +import lombok.Data; + +@Data +public class LoginRequest { + String password; + String securityCode; + String userName; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/login/LoginResponse.java b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/login/LoginResponse.java new file mode 100644 index 0000000..c4e71d4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/lamder/authentication/login/LoginResponse.java @@ -0,0 +1,77 @@ +package cz.moneta.test.dsl.auto.autoapi.lamder.authentication.login; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +@AllArgsConstructor +@Data +public class LoginResponse { + private Privileges[] privileges; + private AccessToken accessToken; + private Operator operator; + private RefreshToken refreshToken; + private Code code; + private Message message; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Message { + private String message; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Code { + private String code; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class AccessToken { + private String token; + private String expiresAt; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class RefreshToken { + private String token; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Privileges { + private Integer privilegeId; + private Integer roleId; + private String privilegeName; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Operator { + private String firstName; + private String lastName; + private Boolean changePassword; + private Integer operatorId; + private Integer acquisitionPlaceId; + private Boolean tescoVisible; + private Boolean commissionDealerVisible; + private Boolean commissionAgentVisible; + private Boolean biometricSign; + private Boolean cancelApplication; + private Boolean blockRc; + private String fullName; + private Boolean darkMode; + private Integer dealerId; + private Boolean manualDealerSelection; + private String defaultForm; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/setman/SetmanBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/setman/SetmanBuilder.java new file mode 100644 index 0000000..645f147 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/autoapi/setman/SetmanBuilder.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.auto.autoapi.setman; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.autoapi.AutoApiEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class SetmanBuilder { + private final Harness harness; + + public SetmanBuilder(Harness harness) { + this.harness = harness; + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, AutoApiEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/ChangePasswordPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/ChangePasswordPage.java new file mode 100644 index 0000000..f5eb20b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/ChangePasswordPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.auto.smartauto.ChangePasswordPage.*; + +@Wait({INPUT_OLD_PASSWORD, INPUT_NEW_PASSWORD, INPUT_NEW_PASSWORD_CONFIRM, BUTTON_CHANGE_PASSWORD}) +public interface ChangePasswordPage extends SmartAutoFlow { + + String INPUT_OLD_PASSWORD = "//input[@name='oldPassword']"; + String INPUT_NEW_PASSWORD = "//input[@name='newPassword']"; + String INPUT_NEW_PASSWORD_CONFIRM = "//input[@name='newPasswordConfirm']"; + String BUTTON_CHANGE_PASSWORD = "//button//span[contains(text(), 'ZMĚNIT HESLO')]"; + String SUCCESSFUL_CHANGED_PASSWORD_MESSAGE = "//div[contains(text(), 'Heslo bylo úspěšně změněno')]"; + + @TypeInto(INPUT_OLD_PASSWORD) + ChangePasswordPage typeOldPassword(String oldPassword); + + @TypeInto(INPUT_NEW_PASSWORD) + ChangePasswordPage typeNewPassword(String newPassword); + + @TypeInto(INPUT_NEW_PASSWORD_CONFIRM) + ChangePasswordPage typeNewPasswordConfirm(String newPasswordConfirm); + + @Click(BUTTON_CHANGE_PASSWORD) + ChangePasswordPage clickChangePassword(); + + @Wait(value = SUCCESSFUL_CHANGED_PASSWORD_MESSAGE, until = Until.VISIBLE) + @CheckElementPresent(SUCCESSFUL_CHANGED_PASSWORD_MESSAGE) + ChangePasswordPage checkSuccessfulChangedPasswordMessage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/CustomerPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/CustomerPage.java new file mode 100644 index 0000000..a8c1393 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/CustomerPage.java @@ -0,0 +1,557 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +public interface CustomerPage extends SmartAutoFlow, StoreAccessor { + + String NAME = "//input[@name='person.nonBusinessman.contact.contactFirstName']"; + String PHONE_NUMBER = "//input[@name='person.nonBusinessman.contact.contactPhoneNumberCzk']"; + String EMAIL = "//input[@name='person.nonBusinessman.contact.contactEmail']"; + String ADDRESS = "(//input[contains(@placeholder, 'RUIAN')])[1]"; + String NATIONALITY = "//input[@value='Česká republika']"; + String NATIONALITY_CHOOSE = "//button[contains(text(), '%s')]"; + String PIN = "//input[@name='person.nonBusinessman.identification.pin']"; + String BIRTHDATE = "//input[@value='%s']"; + String BIRTHPLACE = "//input[@name='person.nonBusinessman.identification.birthPlace']"; + String IDENTIFICATION_ID_NUMBER = "//input[@name='person.nonBusinessman.identification.idNumber']"; + String IDENTIFICATION_ID_VALIDITY = "(//span[contains(text(), 'Platnost dokladu')])/..//following-sibling::div/input"; + String FIRST_IDENTIFICATION_TYPE = "(//span[contains(text(), 'Typ dokladu')])/../../following-sibling::div"; + String FIRST_IDENTIFICATION_TYPE_CHOOSE = "//button[contains(text(), '%s')]"; + String FIRST_IDENTIFICATION_ISSUER = "//span[contains(.,'Doklad vydal')]/../following-sibling::div/div/div/input"; + String FIRST_IDENTIFICATION_ISSUER_CHOOSE = "//span[contains(.,'Doklad vydal')]/../following-sibling::div/div[2]/button[1]"; + String SECOND_IDENTIFICATION_TYPE = "(//span[contains(text(), 'Typ druhého dokladu')])/../../following-sibling::div"; + String SECOND_IDENTIFICATION_TYPE_CHOOSE = "//button[contains(text(), '%s')]"; + String SECOND_IDENTIFICATION_ID_NUMBER = "//input[@name='person.nonBusinessman.identification.otherIdNumber']"; + String SECOND_IDENTIFICATION_ID_VALIDITY = "(//span[contains(text(), 'Platnost druhého dokladu')])/..//following-sibling::div/input"; + String ACCOUNT_NUMBER = "//input[@name='person.nonBusinessman.bankContact.accountNumber']"; + String BANK_CODE = "(//span[contains(text(), 'Kód banky')])/../..//following-sibling::div//input"; + String BANK_CODE_CHOOSE = "//button[contains(text(), '%s')]"; + String MARITAL_STATUS = "(//span[contains(text(), 'Rodinný stav')])/../..//following-sibling::div//input"; + String MARITAL_STATUS_CHOOSE = "//button[contains(text(), '%s')]"; + String DEPENDENT_NUMBER = "//input[@name='person.nonBusinessman.personalData.dependentNumber']"; + String HOUSING_KIND = "(//span[contains(text(), 'Způsob bydlení')])/../..//following-sibling::div//input"; + String HOUSING_KIND_CHOOSE = "//button[contains(text(), '%s')]"; + String EDUCATION = "(//span[contains(text(), 'Vzdělání')])/../..//following-sibling::div//input"; + String EDUCATION_CHOOSE = "//button[contains(text(), '%s')]"; + String EMPLOYMENT = "(//span[contains(text(), 'Zaměstnání')])/../..//following-sibling::div//input"; + String EMPLOYMENT_CHOOSE = "//button[contains(text(), '%s')]"; + String EMPLOYMENT_START_DATE = "(//span[contains(text(), 'Datum nástupu')])/..//following-sibling::div/input"; + String EMPLOYMENT_END_DATE = "(//span[contains(text(), 'Datum ukončení')])/..//following-sibling::div/input"; + String EMPLOYMENT_END_PERIOD_DATE = "(//span[contains(text(), 'Datum ukončení doby')])/..//following-sibling::div/input"; + String EMPLOYMENT_NOTICE_PERIOD = "(//span[contains(text(), 'Klient ve výpovědní lhůtě')])/../../../preceding-sibling::span/.."; + String OCCUPATION = "//input[@name='person.nonBusinessman.employment.occupation']"; + String NET_INCOME = "//input[@name='person.nonBusinessman.revenuesAndExpenses.netIncome']"; + String NET_MONTHLY_HOUSEHOLD_INCOME = "//input[@name='person.nonBusinessman.revenuesAndExpenses.netMonthlyHouseholdIncome']"; + String MONTHLY_PAYMENTS = "//input[@name='person.nonBusinessman.revenuesAndExpenses.monthlyPayments']"; + String OTHER_MONTHLY_CHARGES = "//input[@name='person.nonBusinessman.revenuesAndExpenses.otherMonthlyCharges']"; + String COMPANY = "//input[@placeholder='Vyhledávání firmy v ARES']"; + String SEARCH_IN_ARES = "//span[contains(text(), 'Vyhledat v ARES')]"; + String COMPANY_CHOOSE = "//p[contains(text(), '%s')]"; + String COMPANY_ARES_VERIFICATION = "(//span[contains(text(), 'Ověřeno v ARES')])[1]"; + String COMPANY_PHONE_NUMBER = "//input[@name='person.nonBusinessman.employer.contactPhoneNumberCzk']"; + String COMPANY_OTHER_PHONE_NUMBER = "//input[@name='person.nonBusinessman.employer.contactPhoneNumberOther']"; + String COMPANY_EMAIL = "//input[@name='person.nonBusinessman.employer.contactEmail']"; + String COMPANY_NOT_REGISTERED = "//input[@name='person.nonBusinessman.employer.foreignEmployer']//.."; + String COMPANY_NAME = "//input[@name='person.nonBusinessman.employer.company.companyName']"; + String COMPANY_STREET = "//input[@name='person.nonBusinessman.employer.company.companyAddress.street']"; + String COMPANY_RESIDENCE_NUMBER = "//input[@name='person.nonBusinessman.employer.company.companyAddress.residenceNumber']"; + String COMPANY_ORIENTATION_NUMBER = "//input[@name='person.nonBusinessman.employer.company.companyAddress.orientationNumber']"; + String COMPANY_ZIP_CODE = "//input[@name='person.nonBusinessman.employer.company.companyAddress.zipCode']"; + String COMPANY_CITY = "//input[@name='person.nonBusinessman.employer.company.companyAddress.city']"; + String COMPANY_COUNTRY = "(//span[(text()='Země')])/../..//following-sibling::div//input"; + String COMPANY_COUNTRY_CHOOSE = "//button[contains(text(), '%s')]"; + String STAY_TYPE = "(//span[contains(text(), 'Typ pobytů')])/../..//following-sibling::div//input"; + String STAY_TYPE_CHOOSE = "//button[contains(text(), '%s')]"; + String VEHICLE_PAGE = "//span[contains(text(), 'Předmět')]"; // page transition + String OTHERS_PAGE = "//span[contains(text(), 'Ostatní')]"; // page transition + String BUSINESSMAN_PHONE_NUMBER = "//input[@name='person.businessman.businessmanInformation.contactPhoneNumberCzk']"; + String BUSINESSMAN_OTHER_PHONE_NUMBER = "//input[@name='person.businessman.businessmanInformation.contactPhoneNumberOther']"; + String BUSINESSMAN_EMAIL = "//input[@name='person.businessman.businessmanInformation.contactEmail']"; + String BUSINESSMAN_SILENT_COMPANION = "//input[@name='person.businessman.businessmanInformation.silentCompanion']/.."; + String FIRST_REPRESENTATIVE_COMPANY_ROLE = "(//span[contains(text(), 'Role ve firmě')])/../..//following-sibling::div//input"; + String FIRST_REPRESENTATIVE_COMPANY_ROLE_CHOOSE = "//button[contains(text(), '%s')]"; + String FIRST_REPRESENTATIVE_NAME = "//input[@name='person.businessman.representatives[0].firstName']"; + String FIRST_REPRESENTATIVE_SURENAME = "//input[@name='person.businessman.representatives[0].surname']"; + String FIRST_REPRESENTATIVE_TITLE_BEFORE = "//input[@name='person.businessman.representatives[0].titleBefore']"; + String FIRST_REPRESENTATIVE_TITLE_AFTER = "//input[@name='person.businessman.representatives[0].titleAfter']"; + String FIRST_REPRESENTATIVE_NATIONALITY = "(//span[contains(text(), 'Občanství')])/../..//following-sibling::div//input"; + String FIRST_REPRESENTATIVE_NATIONALITY_CHOOSE = "//button[contains(text(), '%s')]"; + String FIRST_REPRESENTATIVE_COUNTRY = "(//span[contains(text(), 'Země narození')])/../..//following-sibling::div//input"; + String FIRST_REPRESENTATIVE_COUNTRY_CHOOSE = "//button[contains(text(), '%s')]"; + String FIRST_REPRESENTATIVE_STAY_TYPE = "(//span[contains(text(), 'Typ pobytů')])/../..//following-sibling::div//input"; + String FIRST_REPRESENTATIVE_STAY_TYPE_CHOOSE = "//button[contains(text(), '%s')]"; + String FIRST_REPRESENTATIVE_PIN = "//input[@name='person.businessman.representatives[0].pin']"; + String FIRST_REPRESENTATIVE_BIRTHDATE = "//input[@value='%s']"; + String FIRST_REPRESENTATIVE_BIRTHPLACE = "//input[@name='person.businessman.representatives[0].birthPlace']"; + String FIRST_REPRESENTATIVE_IDENTIFICATION_TYPE = "(//span[contains(text(), 'Typ dokladu')])/../../following-sibling::div"; + String FIRST_REPRESENTATIVE_IDENTIFICATION_TYPE_CHOOSE = "//button[contains(text(), '%s')]"; + String FIRST_REPRESENTATIVE_IDENTIFICATION_ID_NUMBER = "//input[@name='person.businessman.representatives[0].identityNumber']"; + String FIRST_REPRESENTATIVE_IDENTIFICATION_ID_VALIDITY = "(//span[contains(text(), 'Platnost dokladu')])/..//following-sibling::div/input"; + String FIRST_REPRESENTATIVE_PHONE_NUMBER = "//input[@name='person.businessman.representatives[0].contactPhoneNumberCzk']"; + String FIRST_REPRESENTATIVE_OTHER_PHONE_NUMBER = "//input[@name='person.businessman.representatives[0].contactPhoneNumberOther']"; + String FIRST_REPRESENTATIVE_CONTACT_ADDRESS = "(//span[contains(.,'Kontaktní adresa')]/../../label/following-sibling::div/div/div/input)[2]"; + String FIRST_REPRESENTATIVE_CONTACT_ADDRESS_CHOOSE = "(//span[contains(.,'Kontaktní adresa')]/../../label/following-sibling::div/div)[3]/button[1]"; + String FIRST_REPRESENTATIVE_PERMANENT_ADDRESS = "//span[contains(.,'Trvalé bydliště')]/../../label/following-sibling::div/div/div/input"; + String FIRST_REPRESENTATIVE_PERMANENT_ADDRESS_CHOOSE = "//span[contains(.,'Trvalé bydliště')]/../../label/following-sibling::div/div/following-sibling::div/button[1]"; + String FIRST_REPRESENTATIVE_EMAIL_ADDRESS = "//input[@name='person.businessman.representatives[0].email']"; + String BUSINESSMAN_ACCOUNT_NUMBER = "//input[@name='person.businessman.businessmanInformation.bankContact.accountNumber']"; + String BUSINESSMAN_BANK_CODE = "(//span[contains(text(), 'Kód banky')])/../..//following-sibling::div//input"; + String BUSINESSMAN_BANK_CODE_CHOOSE = "//button[contains(text(), '%s')]"; + String BUSINESSMAN_TAX_RECORDS = "(//span[contains(text(), 'Daňová evidence')])/.."; + String BUSINESSMAN_DOUBLE_ENTRY = "(//span[contains(text(), 'Podvojné účetnictví')])/.."; + String BUSINESSMAN_TAX_RECORDS_OWN_ASSETS = "//input[@name='person.businessman.financialInformation.ownAssets']"; + String BUSINESSMAN_TAX_RECORDS_INCOME_COMMITMENT_SUM = "//input[@name='person.businessman.financialInformation.commitmentSum']"; + String BUSINESSMAN_TAX_RECORDS_INCOME_COMMITMENT_DIFFERENCE = "//input[@name='person.businessman.financialInformation.incomeCommitmentDifference']"; + String BUSINESSMAN_TAX_RECORDS_SHORT_TERM_RECEIVABLES = "//input[@name='person.businessman.financialInformation.shortTermReceivables']"; + String BUSINESSMAN_TAX_RECORDS_INCOME_TOTAL = "//input[@name='person.businessman.financialInformation.incomeTotal']"; + String BUSINESSMAN_DOUBLE_ENTRY_EQUITY = "//input[@name='person.businessman.financialInformation.equity']"; + String BUSINESSMAN_DOUBLE_ENTRY_FOREIGN_SOURCES = "//input[@name='person.businessman.financialInformation.foreignSources']"; + String BUSINESSMAN_DOUBLE_ENTRY_PROFIT_BEFORE_TAX = "//input[@name='person.businessman.financialInformation.profitBeforeTax']"; + String BUSINESSMAN_DOUBLE_ENTRY_SHORT_TIME_RECEIVABLES = "//input[@name='person.businessman.financialInformation.shortTermReceivables']"; + String BUSINESSMAN_DOUBLE_ENTRY_INCOME_TOTAL = "//input[@name='person.businessman.financialInformation.incomeTotal']"; + String ADD_REPRESENTATIVE = "//span[contains(text(), 'Přidat zástupce')]/.."; + String SECOND_REPRESENTATIVE_COMPANY_ROLE = "((//span[contains(text(), 'Role ve firmě')])/../..//following-sibling::div//input)[2]"; + String SECOND_REPRESENTATIVE_COMPANY_ROLE_CHOOSE = "//button[contains(text(), '%s')]"; + String SECOND_REPRESENTATIVE_NAME = "//input[@name='person.businessman.representatives[1].firstName']"; + String SECOND_REPRESENTATIVE_SURENAME = "//input[@name='person.businessman.representatives[1].surname']"; + String SECOND_REPRESENTATIVE_TITLE_BEFORE = "//input[@name='person.businessman.representatives[1].titleBefore']"; + String SECOND_REPRESENTATIVE_TITLE_AFTER = "//input[@name='person.businessman.representatives[1].titleAfter']"; + String SECOND_REPRESENTATIVE_NATIONALITY = "((//span[contains(text(), 'Občanství')])/../..//following-sibling::div//input)[2]"; + String SECOND_REPRESENTATIVE_NATIONALITY_CHOOSE = "//button[contains(text(), '%s')]"; + String SECOND_REPRESENTATIVE_COUNTRY = "((//span[contains(text(), 'Země narození')])/../..//following-sibling::div//input)[2]"; + String SECOND_REPRESENTATIVE_COUNTRY_CHOOSE = "//button[contains(text(), '%s')]"; + String SECOND_REPRESENTATIVE_PIN = "//input[@name='person.businessman.representatives[1].pin']"; + String SECOND_REPRESENTATIVE_BIRTHDATE = "//input[@value='%s']"; + String SECOND_REPRESENTATIVE_BIRTHPLACE = "//input[@name='person.businessman.representatives[1].birthPlace']"; + String SECOND_REPRESENTATIVE_IDENTIFICATION_TYPE = "((//span[contains(text(), 'Typ dokladu')])/../../following-sibling::div)[2]"; + String SECOND_REPRESENTATIVE_IDENTIFICATION_TYPE_CHOOSE = "//button[contains(text(), '%s')]"; + String SECOND_REPRESENTATIVE_IDENTIFICATION_ID_NUMBER = "//input[@name='person.businessman.representatives[1].identityNumber']"; + String SECOND_REPRESENTATIVE_IDENTIFICATION_ID_VALIDITY = "((//span[contains(text(), 'Platnost dokladu')])/..//following-sibling::div/input)[2]"; + String SECOND_REPRESENTATIVE_PHONE_NUMBER = "//input[@name='person.businessman.representatives[1].contactPhoneNumberCzk']"; + String SECOND_REPRESENTATIVE_OTHER_PHONE_NUMBER = "//input[@name='person.businessman.representatives[1].contactPhoneNumberOther']"; + String SECOND_REPRESENTATIVE_CONTACT_ADDRESS = "(//input[contains(@placeholder, 'RUIAN')])[2]"; + String SECOND_REPRESENTATIVE_CONTACT_ADDRESS_CHOOSE = "//button//p[contains(text(), '%s')]"; + String SECOND_REPRESENTATIVE_CONTACT_ADDRESS_RUIAN_VERIFICATION = "(//span[contains(text(), 'Ověřeno v RUIAN')])[3]"; + String SECOND_REPRESENTATIVE_EMAIL_ADDRESS = "//input[@name='person.businessman.representatives[1].email']"; + String INCOME_SOURCE = "//span[contains(.,'Zdroj původu peněz - První platba')]/../following-sibling::div/div/div/input"; + String INCOME_SOURCE_CHOOSE = "//span[contains(.,'Zdroj původu peněz - První platba')]/../following-sibling::div/div/button[1]"; + String COMPANY_CREATION_DATE = "//span[text() = 'Datum založení']/..//following-sibling::div/input"; + String REGISTRY_TYPE = "//span[text() = 'Obchodní rejstřík']/../..//following-sibling::div/div/div/input"; + String REGISTRY_TYPE_FIELD = "//span[text() = 'Obchodní rejstřík']/../..//following-sibling::div/div/button[1]"; + String NUMBER_OF_EMPLOYEES = "//span[text() = 'Počet zaměstnanců']/../..//following-sibling::div/div/div/input"; + String NUMBER_OF_EMPLOYEES_FIELD = "//span[text() = 'Počet zaměstnanců']/../..//following-sibling::div/div/button[1]"; + + @Click(FIRST_IDENTIFICATION_ISSUER) + CustomerPage clickFirstIdentificationIssuer(); + + @Click(FIRST_IDENTIFICATION_ISSUER_CHOOSE) + CustomerPage chooseFirstIdentificationIssuer(); + + @TypeInto(NAME) + CustomerPage typeName(String name); + + @TypeInto(PHONE_NUMBER) + CustomerPage typePhoneNumber(String phoneNumber); + + @TypeInto(EMAIL) + CustomerPage typeEmail(String email); + + @Click(NATIONALITY) + CustomerPage clickNationality(Nationality nationality); + + @Click(NATIONALITY_CHOOSE) + CustomerPage chooseNationality(Nationality nationality); + + @TypeInto(PIN) + CustomerPage typePin(String pin); + + @KeyPress(Key.TAB) + CustomerPage lostFocus(); + + @CheckElementPresent(BIRTHDATE) + CustomerPage checkBirthdate(Birthdate birthdate); + + @TypeInto(BIRTHPLACE) + CustomerPage typeBirthplace(String birthplace); + + @TypeInto(IDENTIFICATION_ID_NUMBER) + CustomerPage typeIdentificationIdNumber(String identificationIdNumber); + + @TypeInto(IDENTIFICATION_ID_VALIDITY) + CustomerPage typeIdentificationIdValidity(String identificationIdValidity); + + @Click(FIRST_IDENTIFICATION_TYPE) + CustomerPage clickFirstIdentificationType(); + + @Click(FIRST_IDENTIFICATION_TYPE_CHOOSE) + CustomerPage chooseFirstIdentificationType(IdentificationType identificationType); + + @Click(SECOND_IDENTIFICATION_TYPE) + CustomerPage clickSecondIdentificationType(); + + @Click(SECOND_IDENTIFICATION_TYPE_CHOOSE) + CustomerPage chooseSecondIdentificationType(IdentificationType identificationType); + + @TypeInto(SECOND_IDENTIFICATION_ID_NUMBER) + CustomerPage typeSecondIdentificationIdNumber(String identificationIdNumber); + + @TypeInto(SECOND_IDENTIFICATION_ID_VALIDITY) + CustomerPage typeSecondIdentificationIdValidity(String identificationIdValidity); + + @TypeInto(ACCOUNT_NUMBER) + CustomerPage typeAccountNumber(String accountNumber); + + @Click(BANK_CODE) + CustomerPage clickBankCode(); + + @Click(BANK_CODE_CHOOSE) + CustomerPage chooseBankCode(BankCode bankCode); + + @Click(value = MARITAL_STATUS, jsClick = true) + CustomerPage clickMaritalStatus(); + + @Click(value = MARITAL_STATUS_CHOOSE, jsClick = true) + CustomerPage chooseMaritalStatus(MaritalStatus maritalStatus); + + @TypeInto(DEPENDENT_NUMBER) + CustomerPage typeDependentNumber(int dependentNumber); + + @Click(value = HOUSING_KIND, jsClick = true) + CustomerPage clickHousingKind(); + + @Click(value = HOUSING_KIND_CHOOSE, jsClick = true) + CustomerPage chooseHousingKind(HousingKind housingKind); + + @Click(value = EDUCATION, jsClick = true) + CustomerPage clickEducation(); + + @Click(value = EDUCATION_CHOOSE, jsClick = true) + CustomerPage chooseEducation(Education education); + + @Click(value = EMPLOYMENT, jsClick = true) + CustomerPage clickEmployment(); + + @Click(value = EMPLOYMENT_CHOOSE, jsClick = true) + CustomerPage chooseEmployment(Employment employment); + + @TypeInto(EMPLOYMENT_START_DATE) + CustomerPage typeEmploymentStartDate(String startDate); + + @TypeInto(EMPLOYMENT_END_DATE) + CustomerPage typeEmploymentEndDate(String endDate); + + @TypeInto(EMPLOYMENT_END_PERIOD_DATE) + CustomerPage typeEmploymentEndPeriodDate(String endPeriodDate); + + @Click(EMPLOYMENT_NOTICE_PERIOD) + CustomerPage clickClientInNoticePeriod(); + + @TypeInto(OCCUPATION) + CustomerPage typeOccupation(String occupation); + + @TypeInto(NET_INCOME) + CustomerPage typeNetIncome(int netIncome); + + @TypeInto(NET_MONTHLY_HOUSEHOLD_INCOME) + CustomerPage typeNetMonthlyHouseholdIncome(int netMonthlyHouseholdIncome); + + @Click(INCOME_SOURCE) + CustomerPage clickIncomeSource(); + + @Click(INCOME_SOURCE_CHOOSE) + CustomerPage chooseIncomeSource(); + + @TypeInto(MONTHLY_PAYMENTS) + CustomerPage typeMonthlyPayments(int monthlyPayments); + + @TypeInto(OTHER_MONTHLY_CHARGES) + CustomerPage typeOtherMonthlyCharges(int otherMonthlyCharges); + + @TypeInto(COMPANY) + CustomerPage typeCompany(Company company); + + @Click(value = SEARCH_IN_ARES, jsClick = true) + CustomerPage clickSearchInAres(); + + @Wait(value = COMPANY_CHOOSE, waitSecondsForElement = 60) + @Click(value = COMPANY_CHOOSE, andWait = @Wait(value = COMPANY_ARES_VERIFICATION, waitSecondsForElement = 90)) + CustomerPage chooseCompany(Company company); + + @TypeInto(ADDRESS) + CustomerPage typeCompanyContactAddress(String companyContactAddress); + + @TypeInto(COMPANY_PHONE_NUMBER) + CustomerPage typeCompanyPhoneNumber(String companyPhoneNumber); + + @TypeInto(COMPANY_OTHER_PHONE_NUMBER) + CustomerPage typeCompanyOtherPhoneNumber(String ompanyOtherPhoneNumber); + + @TypeInto(COMPANY_EMAIL) + CustomerPage typeCompanyEmail(String companyEmail); + + @Wait(value = VEHICLE_PAGE, waitSecondsForElement = 30) + @Click(value = VEHICLE_PAGE, jsClick = true) + VehiclePage clickVehiclePage(); + + @Click(value = OTHERS_PAGE, jsClick = true) + OthersPage clickOthersPage(); + + @Click(COMPANY_NOT_REGISTERED) + CustomerPage clickCompanyNotRegistered(); + + @TypeInto(COMPANY_NAME) + CustomerPage typeCompanyName(String companyName); + + @TypeInto(COMPANY_STREET) + CustomerPage typeCompanyStree(String companyStree); + + @TypeInto(COMPANY_RESIDENCE_NUMBER) + CustomerPage typeCompanyResidenceNumber(int companyResidenceNumber); + + @TypeInto(COMPANY_ORIENTATION_NUMBER) + CustomerPage typeCompanyOrientationNumber(int companyOrientationNumber); + + @TypeInto(COMPANY_ZIP_CODE) + CustomerPage typeCompanyZipCode(int companyZipCode); + + @TypeInto(COMPANY_CITY) + CustomerPage typeCompanyCity(String companyCity); + + @Click(value = COMPANY_COUNTRY, jsClick = true) + CustomerPage clickCompanyCountry(); + + @Click(value = COMPANY_COUNTRY_CHOOSE, jsClick = true) + CustomerPage chooseCompanyCountry(Nationality nationality); + + @Click(value = STAY_TYPE, jsClick = true) + CustomerPage clickStayType(); + + @Click(value = STAY_TYPE_CHOOSE, jsClick = true) + CustomerPage chooseStayType(StayType stayType); + + @TypeInto(BUSINESSMAN_PHONE_NUMBER) + CustomerPage typeBusinessmanPhoneNumber(String phoneNumber); + + @TypeInto(BUSINESSMAN_OTHER_PHONE_NUMBER) + CustomerPage typeBusinessmanOtherPhoneNumber(String phoneNumber); + + @TypeInto(BUSINESSMAN_EMAIL) + CustomerPage typeBusinessmanEmail(String email); + + @TypeInto(COMPANY_CREATION_DATE) + CustomerPage fillCreationDate(String date); + + @Click(REGISTRY_TYPE) + CustomerPage clickRegistryType(); + + @Click(REGISTRY_TYPE_FIELD) + CustomerPage chooseRegistryType(); + + @Click(NUMBER_OF_EMPLOYEES) + CustomerPage clickNoOfEmployees(); + + @Click(NUMBER_OF_EMPLOYEES_FIELD) + CustomerPage chooseNoOfEmployees(); + + @Click(BUSINESSMAN_SILENT_COMPANION) + CustomerPage clickBusinessmanSilentCompanion(); + + @Click(value = FIRST_REPRESENTATIVE_COMPANY_ROLE, jsClick = true) + CustomerPage clickCompanyRole(); + + @Click(value = FIRST_REPRESENTATIVE_COMPANY_ROLE_CHOOSE, jsClick = true) + CustomerPage chooseCompanyRole(CompanyRole companyRole); + + @Wait(value = FIRST_REPRESENTATIVE_NAME, until = Until.CLICKABLE) + @TypeInto(FIRST_REPRESENTATIVE_NAME) + CustomerPage typeFirstRepresentativeName(String name); + + @TypeInto(FIRST_REPRESENTATIVE_SURENAME) + CustomerPage typeFirstRepresentativeSurname(String surname); + + @TypeInto(FIRST_REPRESENTATIVE_TITLE_BEFORE) + CustomerPage typeFirstRepresentativeTitleBefore(String titleBefore); + + @TypeInto(FIRST_REPRESENTATIVE_TITLE_AFTER) + CustomerPage typeFirstRepresentativeTitleAfter(String titleAfter); + + @Click(value = FIRST_REPRESENTATIVE_NATIONALITY, jsClick = true) + CustomerPage clickFirstRepresentativeNationality(); + + @Click(value = FIRST_REPRESENTATIVE_NATIONALITY_CHOOSE, jsClick = true) + CustomerPage chooseFirstRepresentativeNationality(Nationality nationality); + + @Click(value = FIRST_REPRESENTATIVE_COUNTRY, jsClick = true) + CustomerPage clickFirstRepresentativeCountry(); + + @Click(value = FIRST_REPRESENTATIVE_COUNTRY_CHOOSE, jsClick = true) + CustomerPage chooseFirstRepresentativeCountry(Country country); + + @Click(value = FIRST_REPRESENTATIVE_STAY_TYPE, jsClick = true) + CustomerPage clickFirstRepresentativeStayType(); + + @Click(value = FIRST_REPRESENTATIVE_STAY_TYPE_CHOOSE, jsClick = true) + CustomerPage chooseFirstRepresentativeStayType(StayType stayType); + + @TypeInto(FIRST_REPRESENTATIVE_PIN) + CustomerPage typeFirstRepresentativePin(String pin); + + @CheckElementPresent(FIRST_REPRESENTATIVE_BIRTHDATE) + CustomerPage checkFirstRepresentativeBirthdate(Birthdate birthdate); + + @TypeInto(FIRST_REPRESENTATIVE_BIRTHPLACE) + CustomerPage typeFirstRepresentativeBirthplace(String birthplace); + + @Click(value = FIRST_REPRESENTATIVE_IDENTIFICATION_TYPE) + CustomerPage clickFirstRepresentativeIdentificationType(); + + @Click(value = FIRST_REPRESENTATIVE_IDENTIFICATION_TYPE_CHOOSE, jsClick = true) + CustomerPage chooseFirstRepresentativeIdentificationType(IdentificationType identificationType); + + @TypeInto(FIRST_REPRESENTATIVE_IDENTIFICATION_ID_NUMBER) + CustomerPage typeFirstRepresentativeIdentificationIdNumber(String identificationIdNumber); + + @TypeInto(FIRST_REPRESENTATIVE_IDENTIFICATION_ID_VALIDITY) + CustomerPage typeFirstRepresentativeIdentificationIdValidity(String identificationIdValidity); + + @TypeInto(FIRST_REPRESENTATIVE_PHONE_NUMBER) + CustomerPage typeFirstRepresentativePhoneNumber(String phoneNumber); + + @TypeInto(FIRST_REPRESENTATIVE_OTHER_PHONE_NUMBER) + CustomerPage typeFirstRepresentativeOtherPhoneNumber(String otherPhoneNumber); + + @Wait(explicitWaitSeconds = 1) + @TypeInto(FIRST_REPRESENTATIVE_CONTACT_ADDRESS) + CustomerPage typeFirstRepresentativeContactAddress(String contactAddress); + + @Click(value = FIRST_REPRESENTATIVE_CONTACT_ADDRESS_CHOOSE) + CustomerPage clickFirstRepresentativeContactAddress(Address address); + + @TypeInto(FIRST_REPRESENTATIVE_PERMANENT_ADDRESS) + CustomerPage typeFirstRepresentativePermanentAddress(String contactAddress); + + @Click(value = FIRST_REPRESENTATIVE_PERMANENT_ADDRESS_CHOOSE) + CustomerPage clickFirstRepresentativePermanentAddress(Address address); + + @TypeInto(BUSINESSMAN_ACCOUNT_NUMBER) + CustomerPage typeBusinessmanAccountNumber(String accountNumber); + + @Click(value = BUSINESSMAN_BANK_CODE) + CustomerPage clickBusinessmanBankCode(); + + @Click(BUSINESSMAN_BANK_CODE_CHOOSE) + CustomerPage chooseBusinessmanBankCode(BankCode bankCode); + + @Click(BUSINESSMAN_TAX_RECORDS) + CustomerPage clickBusinessmanTaxRecords(); + + @Click(BUSINESSMAN_DOUBLE_ENTRY) + CustomerPage clickBusinessmanDoubleEntry(); + + @TypeInto(BUSINESSMAN_TAX_RECORDS_OWN_ASSETS) + CustomerPage typeBusinessmanTaxRecordsOwnAssets(int ownAssets); + + @TypeInto(BUSINESSMAN_TAX_RECORDS_INCOME_COMMITMENT_SUM) + CustomerPage typeBusinessmanTaxRecordsIncomeCommitmentSum(int incomeCommitmentSum); + + @TypeInto(BUSINESSMAN_TAX_RECORDS_INCOME_COMMITMENT_DIFFERENCE) + CustomerPage typeBusinessmanTaxRecordsIncomeCommitmentDifference(int incomeCommitmentDifference); + + @TypeInto(BUSINESSMAN_TAX_RECORDS_SHORT_TERM_RECEIVABLES) + CustomerPage typeBusinessmanTaxRecordsShortTimeReceivables(int shortTimeReceivables); + + @TypeInto(BUSINESSMAN_TAX_RECORDS_INCOME_TOTAL) + CustomerPage typeBusinessmanTaxRecordsIncomeTotal(int incomeTotal); + + @TypeInto(BUSINESSMAN_DOUBLE_ENTRY_EQUITY) + CustomerPage typeBusinessmanDoubleEntryEquity(int equity); + + @TypeInto(BUSINESSMAN_DOUBLE_ENTRY_FOREIGN_SOURCES) + CustomerPage typeBusinessmanDoubleEntryForeignSources(int foreignSources); + + @TypeInto(BUSINESSMAN_DOUBLE_ENTRY_PROFIT_BEFORE_TAX) + CustomerPage typeBusinessmanDoubleEntryProfitBeforeTax(int profitBeforeTax); + + @TypeInto(BUSINESSMAN_DOUBLE_ENTRY_SHORT_TIME_RECEIVABLES) + CustomerPage typeBusinessmanDoubleEntryShortTimeReceivables(int shortTimeReceivables); + + @TypeInto(BUSINESSMAN_DOUBLE_ENTRY_INCOME_TOTAL) + CustomerPage typeBusinessmanDoubleEntryIncomeTotal(int incomeTotal); + + @Click(ADD_REPRESENTATIVE) + CustomerPage clickAddRepresentative(); + + @Click(value = SECOND_REPRESENTATIVE_COMPANY_ROLE, jsClick = true) + CustomerPage clickSecondCompanyRole(); + + @Click(value = SECOND_REPRESENTATIVE_COMPANY_ROLE_CHOOSE, jsClick = true) + CustomerPage chooseSecondCompanyRole(CompanyRole companyRole); + + @TypeInto(SECOND_REPRESENTATIVE_NAME) + CustomerPage typeSecondRepresentativeName(String name); + + @TypeInto(SECOND_REPRESENTATIVE_SURENAME) + CustomerPage typeSecondRepresentativeSurname(String surname); + + @TypeInto(SECOND_REPRESENTATIVE_TITLE_BEFORE) + CustomerPage typeSecondRepresentativeTitleBefore(String titleBefore); + + @TypeInto(SECOND_REPRESENTATIVE_TITLE_AFTER) + CustomerPage typeSecondRepresentativeTitleAfter(String titleAfter); + + @Click(value = SECOND_REPRESENTATIVE_NATIONALITY, jsClick = true) + CustomerPage clickSecondRepresentativeNationality(); + + @Click(value = SECOND_REPRESENTATIVE_NATIONALITY_CHOOSE, jsClick = true) + CustomerPage chooseSecondRepresentativeNationality(Nationality nationality); + + @Click(value = SECOND_REPRESENTATIVE_COUNTRY, jsClick = true) + CustomerPage clickSecondRepresentativeCountry(); + + @Click(value = SECOND_REPRESENTATIVE_COUNTRY_CHOOSE, jsClick = true) + CustomerPage chooseSecondRepresentativeCountry(Country country); + + @TypeInto(SECOND_REPRESENTATIVE_PIN) + CustomerPage typeSecondRepresentativePin(String pin); + + @CheckElementPresent(SECOND_REPRESENTATIVE_BIRTHDATE) + CustomerPage checkSecondRepresentativeBirthdate(Birthdate birthdate); + + @TypeInto(SECOND_REPRESENTATIVE_BIRTHPLACE) + CustomerPage typeSecondRepresentativeBirthplace(String birthplace); + + @Click(value = SECOND_REPRESENTATIVE_IDENTIFICATION_TYPE) + CustomerPage clickSecondRepresentativeIdentificationType(); + + @Click(value = SECOND_REPRESENTATIVE_IDENTIFICATION_TYPE_CHOOSE, jsClick = true) + CustomerPage chooseSecondRepresentativeIdentificationType(IdentificationType identificationType); + + @TypeInto(SECOND_REPRESENTATIVE_IDENTIFICATION_ID_NUMBER) + CustomerPage typeSecondRepresentativeIdentificationIdNumber(String identificationIdNumber); + + @TypeInto(SECOND_REPRESENTATIVE_IDENTIFICATION_ID_VALIDITY) + CustomerPage typeSecondRepresentativeIdentificationIdValidity(String identificationIdValidity); + + @TypeInto(SECOND_REPRESENTATIVE_PHONE_NUMBER) + CustomerPage typeSecondRepresentativePhoneNumber(String phoneNumber); + + @TypeInto(SECOND_REPRESENTATIVE_OTHER_PHONE_NUMBER) + CustomerPage typeSecondRepresentativeOtherPhoneNumber(String otherPhoneNumber); + + @TypeInto(SECOND_REPRESENTATIVE_CONTACT_ADDRESS) + CustomerPage typeSecondRepresentativeContactAddress(String contactAddress); + + @Click(value = SECOND_REPRESENTATIVE_CONTACT_ADDRESS_CHOOSE, andWait = @Wait(value = SECOND_REPRESENTATIVE_CONTACT_ADDRESS_RUIAN_VERIFICATION, waitSecondsForElement = 30), jsClick = true) + CustomerPage clickSecondRepresentativeContactAddress(Address address); + + @Click(value = CommonElements.SAVE_CALCULATION_BUTTON, andWait = @Wait(value = CommonElements.SUCCESSFUL_SAVED_CALCULATION_MESSAGE, until = Until.VISIBLE), jsClick = true) + CustomerPage clickSaveCalculation(); + + @TypeInto(FIRST_REPRESENTATIVE_EMAIL_ADDRESS) + CustomerPage typeFirstRepresentativeEmailAddress(String email); + + @TypeInto(SECOND_REPRESENTATIVE_EMAIL_ADDRESS) + CustomerPage typeSecondRepresentativeEmailAddress(String email); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/DocumentsConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/DocumentsConfirmationPage.java new file mode 100644 index 0000000..b24d4e5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/DocumentsConfirmationPage.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.SmartAutoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.auto.smartauto.DocumentsConfirmationPage.*; + +@Wait(value = {DOWNLOAD_ANCHOR, DOCUMENT_CANVAS}, waitSecondsForElement = 60) +public interface DocumentsConfirmationPage extends SmartAutoFlow, StoreAccessor { + + String DOWNLOAD_ANCHOR = "//a[@testid='download-button']"; + String CONTINUE_BUTTON = "//button[@testid='bbutton'][not (@disabled)]//span[contains(text(), 'Souhlasím')]"; + String DISABLED_CONTINUE_BUTTON = "//button[@disabled]"; + String DOCUMENT_CANVAS = "//canvas[contains(@class, 'pdf__Page__canvas')]"; + + @CustomAction + default DocumentsConfirmationPage scrollToDocumentBottom() { + SmartAutoEndpoint endpoint = getEndpoint(SmartAutoEndpoint.class); + //Making sure that this element is really ready for click, for some reasons sometimes click was received by it's sibling + endpoint.sleepSeconds(1); + endpoint.click(() -> DOCUMENT_CANVAS); + endpoint.sendKeysOneAtATime(Key.END); + endpoint.waitForElementsToLoad(30, Until.GONE, DISABLED_CONTINUE_BUTTON); + endpoint.waitForElementsToLoad(30, CONTINUE_BUTTON); + return null; + } + + @Click(value = CONTINUE_BUTTON, jsClick = true) + @Page(NewCalculationPage.class) + NewCalculationPage clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/InvoicesPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/InvoicesPage.java new file mode 100644 index 0000000..c66fed7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/InvoicesPage.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.dsl.auto.smartauto.shared.CalendarAccessor; +import cz.moneta.test.dsl.auto.smartauto.shared.Day; +import cz.moneta.test.dsl.auto.smartauto.shared.Month; +import cz.moneta.test.dsl.auto.smartauto.shared.Year; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface InvoicesPage extends SmartAutoFlow, CalendarAccessor { + String DATE_FROM_BUTTON = "//div[label/span[text()='Od data 1. ZP']]/div/button"; + String DATE_TO_BUTTON = "//div[label/span[text()='Do data 1. ZP']]/div/button"; + String SEARCH_BUTTON = "//button[@id='FetchListButton']"; + + @Click(DATE_FROM_BUTTON) + InvoicesPage clickDateFrom(); + + @Click(DATE_TO_BUTTON) + InvoicesPage clickDateTo(); + + @Click(DATE_FROM_MONTH) + InvoicesPage clickDateFromMonth(); + + @Click(DATE_TO_MONTH) + InvoicesPage clickDateToMonth(); + + @Click(DATE_FROM_MONTH_DEFAULT) + InvoicesPage clickDateFromMonthValue(Month month); + + @Click(DATE_TO_MONTH_DEFAULT) + InvoicesPage clickDateToMonthValue(Month month); + + @Click(DATE_FROM_DAY_DEFAULT) + InvoicesPage clickDateFromDayValue(Day day); + + @Click(DATE_TO_DAY_DEFAULT) + InvoicesPage clickDateToDayValue(Day day); + + @TypeInto(value = FROM_DATE_YEAR_FIELD, clear = true) + InvoicesPage setDateFromYear(Year year); + + @Click(SEARCH_BUTTON) + InvoicesPage clickSearch(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/LoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/LoginPage.java new file mode 100644 index 0000000..8359bd5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/LoginPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.auto.smartauto.LoginPage.*; + +@Wait(value = {USERNAME_INPUT, PASSWORD_INPUT, LOGIN_BUTTON}, waitSecondsForElement = 40) +public interface LoginPage extends SmartAutoFlow { + + String USERNAME_INPUT = "//input[@name='username']"; + String PASSWORD_INPUT = "//input[@name='password']"; + String LOGIN_BUTTON = "//button[@type='submit']"; + String UNAUTHORIZED_ACCESS = "//div[contains(text(), 'Neplatné')]"; + + @TypeInto(USERNAME_INPUT) + LoginPage typeUsername(String userName); + + @TypeInto(PASSWORD_INPUT) + LoginPage typePassword(String password); + + @Click(value = LOGIN_BUTTON, jsClick = true) + LoginPage clickLoginToFail(); + + @Wait(value = UNAUTHORIZED_ACCESS, until = Until.VISIBLE) + @CheckElementPresent(UNAUTHORIZED_ACCESS) + LoginPage checkUnauthorizedAccess(); + + @Click(value = LOGIN_BUTTON, jsClick = true) + NewCalculationPage clickLogin(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/NewCalculationPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/NewCalculationPage.java new file mode 100644 index 0000000..148f5fc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/NewCalculationPage.java @@ -0,0 +1,541 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.dsl.auto.smartauto.cr.ForBillingPage; +import cz.moneta.test.dsl.auto.smartauto.df.DashboardPage; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.SmartAutoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.auto.smartauto.NewCalculationPage.*; + +@Wait(value = {VEHICLE_NEW_VEHICLE_BUTTON, VEHICLE_SEARCH_BRAND, VEHICLE_PRICE, VEHICLE_VALUE_ADDED_TAX_YES_BUTTON, + VEHICLE_REGISTRATION_DATE, IMG_AUTO_OPERATOR_OPTIONS}, + waitSecondsForElement = 40) +@Wait(value = CommonElements.LOADER_DIV, until = Until.GONE) +public interface NewCalculationPage extends SmartAutoFlow, StoreAccessor { + String VEHICLE_CUSTOMER_DEFAULT = "//button//span[contains(text(), '%s')]"; + String VEHICLE_VAT_BUTTON_DEFAULT = "//button//span[contains(text(), '%s')]"; + String VEHICLE_USAGE_DEFAULT = "//button[@type='button' and contains(., '%s')]"; + String VEHICLE_NEW_VEHICLE_BUTTON = "//button[@type='button' and contains(., 'Nová')]"; + String PRCLASS_VALUE_DEFAULT = "//button[@data-testid=\"%s\"]"; + String SUBSIDY_VALUE_DEFAULT = "//span[contains(text(), \"%s\")]"; + String VEHICLE_CATEGORY_DEFAULT = "//span[contains(text(), 'Kategorie')]//..//../following-sibling::div/button[@data-testid='%s']"; + String PRGROUP_VALUE_DEFAULT = "//button[@data-testid=\"%s\"]"; + String VEHICLE_GROUP_COMBOBOX_ARROW = "//span[contains(text(), 'Skupina')]/../../following::button[contains(., '▼')]"; + String VEHICLE_GROUP_COMBOBOX_VALUE_DEFAULT = "//button[@type='button' and contains(., '%s')]"; + String VEHICLE_SEARCH_BRAND = "//span[contains(text(), 'Značka vozidla')]/../../following-sibling::div//input"; + String VEHICLE_SEARCH_MODEL = "//span[contains(text(), 'Model vozidla')]/../../following-sibling::div//input"; + String VEHICLE_SEARCH_BRAND_FIRST_OPTION_DEFAULT = "(//button[contains(text(), '%s')])[1]"; + String VEHICLE_SEARCH_MODEL_FIRST_OPTION_DEFAULT = "(//button[contains(text(), '%s')])[1]"; + String VEHICLE_PRICE = "//input[@name='vehicle.price']"; + String COMPANY_NAME = "//input[@name='companyName']"; + String COMPANY_TYPE = "//span[contains(.,'Typ firmy')]/..//following-sibling::div/div/div/input"; + String COMPANY_TYPE_SRO = "//span[contains(.,'Typ firmy')]/..//following-sibling::div/div/button[1]"; + String COMPANY_IC = "//input[@name='ico']"; + String COMPANY_RESIDENCE_NUMBER = "//input[@name='companyAddress.residenceNumber']"; + String COMPANY_TOWNSHIP = "//input[@name='companyAddress.township']"; + String COMPANY_CITY = "//input[@name='companyAddress.city']"; + String COMPANY_ZIP = "//input[@name='companyAddress.zipCode']"; + String COMPANY_RESIDENCE_TYPE = "//span[contains(text(),'Popisné')]/../../..//preceding-sibling::input"; + String VEHICLE_VALUE_ADDED_TAX_YES_BUTTON = "//button//span[contains(text(), 'Ano')]"; + String VEHICLE_USAGE_COMBOBOX_ARROW = "//span[contains(text(), 'Účel')]/../../following::button[contains(., '▼')]"; + String VEHICLE_REGISTRATION_DATE = "//input[@id='popover']"; + String VEHICLE_REGISTRATION_DATE_MONTH = "//span[1][contains(text(), '%s')]"; + String VEHICLE_REGISTRATION_DATE_YEAR = "//li[contains(text(), '%s')]"; + String SAVE_BTN = "(//span[text() = 'Uložit'])[2]"; + String VEHICLE_REGISTRATION_DATE_CHOOSE_BUTTON = "//button//span[contains(text(), 'Vybrat')]"; + String VEHICLE_FINANCE_PRODUCT = "(//DIV//p//span[contains(text(), 'Vyberte záznam ...')])[1]"; + String VEHICLE_FINANCE_PRODUCT_CHOOSE_BUTTON_DEFAULT = "(//div/h3[contains(text(), '%s')])/..//following-sibling::div//button//span[contains(text(), 'Vybrat')][1]/.."; + String VEHICLE_CAR_INSURANCE = "//span[contains(text(),'Povinné ručení')]/following-sibling::div/div[contains(text(),'Vyberte záznam ...')][1]"; + String VEHICLE_CAR_ACCIDENT_INSURANCE = "(//DIV//p//span[contains(text(), 'Vyberte záznam ...')])[1]"; + String VEHICLE_CAR_BENEFITS = "(//DIV//p//span[contains(text(), 'Vyberte záznam ...')])[1]"; + String VEHICLE_CAR_BENEFITS_OPTION_DEFAULT = "(//label//span[contains(text(), '%s')])[1]/.."; + String VEHICLE_CAR_BENEFITS_CHOOSE_BUTTON = "(//button//span[contains(text(), 'Vybrat')])[1]"; + String VEHICLE_CAR_ACCIDENT_INSURANCE_OPTION_DEFAULT = "(//label//span[contains(text(), '%s')])[1]/.."; + String VEHICLE_CAR_ACCIDENT_INSURANCE_CHOOSE_BUTTON = "(//button//span[contains(text(), 'Vybrat')])[1]"; + String VEHICLE_CAR_ACCIDENT_INSURANCE_FIRM_NAME = "//input[@placeholder='Vyhledávání firmy v ARES']"; + String VEHICLE_CAR_ACCIDENT_INSURANCE_FIRM_NAME_SEARCH = "//input[@placeholder='Vyhledávání firmy v ARES']/../div/button"; + String VEHICLE_CAR_ACCIDENT_INSURANCE_FIRM_NAME_FIELD = "//input[@placeholder='Vyhledávání firmy v ARES']/../../../div/button[1]"; + String VEHICLE_CAR_INSURANCE_CUSTOMER_NAME = "//label//span[contains(text(), 'Jméno')]/../following-sibling::input"; + String VEHICLE_CAR_INSURANCE_CUSTOMER_SURNAME = "//label//span[contains(text(), 'Příjmení')]/../following-sibling::input"; + String VEHICLE_CAR_INSURANCE_CUSTOMER_BIRTHDATE = "//label//span[contains(text(), 'Datum narození')]/../following-sibling::div/input"; + String VEHICLE_CAR_INSURANCE_CUSTOMER_PIN = "//label//span[contains(text(), 'Rodné číslo')]/../following-sibling::input"; + String VEHICLE_CAR_INSURANCE_CUSTOMER_NATIONALITY = "//label/span/span[contains(text(), 'Občanství')]/../../following-sibling::div/div/div/input"; + String VEHICLE_CAR_INSURANCE_CUSTOMER_NATIONALITY_FIELD = "//label/span/span[contains(text(), 'Občanství')]/../../following-sibling::div/div/button[1]"; + String VEHICLE_CAR_INSURANCE_CUSTOMER_ADDRESS = "//span[contains(text(),'Trvalé bydliště')]/../../following-sibling::div/div/div/input"; + String VEHICLE_CAR_INSURANCE_CUSTOMER_ADDRESS_FIELDS = "//span[contains(text(),'Trvalé bydliště')]/../../following-sibling::div/div/button[1]"; + String VEHICLE_CAR_INSURANCE_VEHICLE_TAB = "//button/div/div[contains(text(),'Předmět')]"; + String VEHICLE_CAR_INSURANCE_VEHICLE_VIN = "//input[@name='vehicle.chassisNumber']"; + String VEHICLE_CAR_INSURANCE_VEHICLE_VIN_SEARCH = "//button[contains(text(), 'Hledat')]"; + String VEHICLE_CAR_INSURANCE_VEHICLE_TYPE = "//div[contains(@class, 'styles_table-item__1MCcy')][1]"; + String VEHICLE_CAR_INSURANCE_VEHICLE_FUEL_TYPE_INPUT = "//span[contains(.,'Palivo')]/../../div/div/div/input"; + String VEHICLE_CAR_INSURANCE_VEHICLE_FUEL_TYPE_CHOOSE = "//span[contains(.,'Palivo')]/../../div/div/button[contains(.,'%s')]"; + String VEHICLE_CAR_INSURANCE_VEHICLE_SECOND_FUEL_TYPE_INPUT = "//label[contains(.,'Palivo')]/../div/button"; + String VEHICLE_CAR_INSURANCE_VEHICLE_SECOND_FUEL_TYPE_CHOOSE = "//label[contains(.,'Palivo')]/../div/ul/li[contains(.,'%s')]"; + String VEHICLE_CAR_INSURANCE_VEHICLE_SEARCH_NO_VIN = "//button[contains(.,'Vyhledat')]"; + String VEHICLE_CAR_INSURANCE_VEHICLE_VOLUME_AGRO = "//label[contains(.,'Objem')]/following-sibling::div/div/input"; + String VEHICLE_CAR_INSURANCE_VEHICLE_POWER_AGRO = "//label[contains(.,'Výkon')]/following-sibling::div/div/input"; + String VEHICLE_CAR_INSURANCE_VEHICLE_WEIGHT_AGRO = "//label[contains(.,'Hmotnost')]/following-sibling::div/div/input"; + String VEHICLE_CAR_INSURANCE_VEHICLE_FUEL_AGRO = "//label[contains(.,'Palivo')]/following-sibling::div/button"; + String VEHICLE_CAR_INSURANCE_VEHICLE_FUEL_AGRO_CHOOSE = "//label[contains(.,'Palivo')]/following-sibling::div/ul/li/div[contains(.,'%s')]"; + String VEHICLE_CAR_INSURANCE_INSURANCE_TAB = "//button/div/div[contains(text(),'Pojištění')]"; + String VEHICLE_CAR_INSURANCE_INSURANCE_HAV_FIELD_DEFAULT = "//h4[contains(.,'Havarijní pojištění')]/../../../../div[2]/div[2]/div/div[1]/section/h4/button/span[2]"; + String VEHICLE_CAR_INSURANCE_INSURANCE_HAV_FIELD_CHOOSE_DEFAULT = "//h4[contains(.,'Havarijní pojištění')]/../../../../div[2]/div[2]/div/div/section/div/div/div/button"; + String VEHICLE_CAR_INSURANCE_INSURANCE_POV_FIELD_DEFAULT = "//h4[contains(.,'Povinné ručení')]/../../../../div[2]/div[1]/div/div[1]/section/h4/button/span[2]"; + String VEHICLE_CAR_INSURANCE_INSURANCE_POV_FIELD_CHOOSE_DEFAULT = "//h4[contains(.,'Povinné ručení')]/../../../../div[2]/div[1]/div/div/section/div/div/div/button"; + String VEHICLE_CAR_INSURANCE_INSURANCE_CHOOSE = "//section[@data-testid='Tabs']/div[2]/div[3]/div/div[3]/div/div/button[contains(.,'Vybrat')]"; + String CREATE_APPLICATION = "//span[contains(text(), 'Vytvořit žádost')]/parent::button"; + String DIV_CLICK_BLOCKER = "//div[@class='_21KP5GbzHYNm19YwGmWy0r']"; + String DIV_CLICK_BLOCKER_2 = "//div[@class='_3Lp0XIzdhx1ktbMqO92O8T']"; + String IMG_AUTO_OPERATOR_OPTIONS = "//img[@src='./static/media/auto.705bbb78dc90ca27d48c.png']"; + String SPAN_CHANGE_PASSWORD = "//span[contains(text(), 'Změnit heslo')]"; + String SPAN_DEALER_FINANCING = "//span[contains(text(), 'Dealer Financing')]"; + String SPAN_COMMISSION_REPORTING = "//span[contains(text(), 'Provizní Reporting')]"; + String NEW_CALCULATION_BUTTON = "//span[text() = \"Vytvořit žádost\"]"; + String FP_DIMMER = "//div[@class='dimmer-2DQ8w']"; + String MAIN_NAV_PROFILE = "//img[contains(@class, 'auto-img-exsNS')]"; + String INVOICES_BUTTON = "//span[text() = 'Provizní Reporting']"; + String FIRST_PAYMENT_INPUT = "//input[@name = 'computation.firstPayment']"; + String LOGIN_SUCCESS = "//div[@id='q9edoy1']"; + // AGRO + String AGRO_SEARCH_BRAND_ARROW = "//span[contains(text(), 'Značka')]/../following::button[contains(., '▼')]"; + String AGRO_SEARCH = "//button[@type='button' and contains(., '%s')]"; + String AGRO_MODEL = "//input[@name='vehicle.subjectDescription']"; + String AGRO_CALENDAR_BUTTON = "//label[contains(text(), 'Datum')]//following-sibling::div//button"; + String AGRO_CALENDAR_TODAY = "//span[@class='flatpickr-day today']"; + String AGRO_DEFERRED_DRAWING = "//input[@name='vehicle.carRegistration.deferredDrawing']"; + String AGRO_ITEM_TYPE_SEARCH_ARROW = "//span[contains(text(), 'Typ předmětu')]/../following::button[contains(., '▼')]"; + + + // AGRO Dotace checkbox + String AGRO_PGRLF_CHECKBOX = "//*[@id='donation-1']"; + String AGRO_SZIF_CHECKBOX = "//*[@id='donation-2']"; + String AGRO_YOUNGFARMER_CHECKBOX = "//*[@id='youngFarmer']"; + + // AGRO bez TP + String AGRO_NO_TP_BRAND = "//input[@name='vehicle.producer']"; + + // elements for @CheckElementPresent + String VEHICLE_FIRST_PAYMENT_NOT_EMPTY = "//input[@name='computation.firstPayment'][not(@value='')]"; + String VEHICLE_INSTALMENT_COUNT_NOT_EMPTY = "//input[@name='computation.instalmentCount'][not(@value='')]"; + String VEHICLE_INSTALMENT_COMPUTATION_NOT_EMPTY = "//input[@name='computation.instalment'][not(@value='')]"; + String MENU_NEW_CALCULATION = "(//span[contains(text(), 'Nová kalkulace')])[1]"; + String MENU_SAVED = "(//span[contains(text(), 'Uložené')])[1]"; + String MENU_QUEUE = "(//span[contains(text(), 'Fronta')])[1]"; + String AGRO_SEARCH_TYPE = "//input[@placeholder='Vyberte stroj']"; + String AGRO_SEARCH_RESULT = "//button[contains(text(), '%s')]"; + + // Nerovnoměrné splátky + String IRREGULAR_ICON = "//button[@class='btn-33Jra btn-sm-vOrTC btn-secondary-3voo4 btn-no-shadow-3u6tG ml-2-2RUiN px-3-2pJmf']"; + String IRREGULAR_EDIT_BUTTON = "//span[@data-testid='CreditBadge']"; + String IRREGULAR_INPUT = "//input[@class='form-control-2EJkW']"; + String IRREGULAR_CONFIRM = "//button[contains(@class,'btn-33Jra btn-sm-vOrTC btn-secondary-3voo4 btn-no-shadow-3u6tG px-3-2pJmf')]"; + String IRREGULAR_SUBMIT = "//button[@data-testid='irregularInstallmentButtonAgree']"; + String IS_IRREGULAR = "//button[contains(text(), 'Průměrná')]"; + String VEHICLE_INSTALMENT_COMPUTATION_VALUE = "//input[@name='computation.instalmentCount']"; + + @TypeInto(value = COMPANY_NAME, clear = true) + NewCalculationPage typeCompanyName(String name); + + @Click(COMPANY_TYPE) + NewCalculationPage clickCompanyType(); + + @Click(COMPANY_TYPE_SRO) + NewCalculationPage chooseCompanyType(); + + @TypeInto(COMPANY_TOWNSHIP) + NewCalculationPage typeCompanyTownship(String township); + + @TypeInto(COMPANY_CITY) + NewCalculationPage typeCompanyCity(String city); + + @TypeInto(COMPANY_IC) + NewCalculationPage typeCompanyIco(Integer ico); + + @TypeInto(COMPANY_ZIP) + NewCalculationPage typeCompanyZip(Integer zip); + + @TypeInto(COMPANY_RESIDENCE_NUMBER) + NewCalculationPage typeCompanyResidenceNumber(Integer residenceNumber); + + @Click(value = COMPANY_RESIDENCE_TYPE, jsClick = true) + NewCalculationPage chooseCompanyResidenceType(); + + @Click(SAVE_BTN) + NewCalculationPage clickSave(); + + @TypeInto(value = VEHICLE_INSTALMENT_COMPUTATION_VALUE, clear = true) + NewCalculationPage editInstalmentComputation(String months); + + @CheckElementPresent(MENU_NEW_CALCULATION) + NewCalculationPage checkMenuNewCalculation(); + + @CheckElementPresent(MENU_SAVED) + NewCalculationPage checkMenuSaved(); + + @CheckElementPresent(MENU_QUEUE) + NewCalculationPage checkMenuQueue(); + + @Wait(value = VEHICLE_SEARCH_BRAND_FIRST_OPTION_DEFAULT, waitSecondsForElement = 30) + @Click(value = VEHICLE_SEARCH_BRAND_FIRST_OPTION_DEFAULT, andWait = @Wait(explicitWaitSeconds = 2)) + NewCalculationPage clickVehicleBrandSearchedOption(Brand brand); + + @Wait(value = VEHICLE_SEARCH_MODEL_FIRST_OPTION_DEFAULT, waitSecondsForElement = 30) + @Click(value = VEHICLE_SEARCH_MODEL_FIRST_OPTION_DEFAULT, jsClick = true) + NewCalculationPage clickVehicleModelSearchedOption(Model model); + + @Wait(value = VEHICLE_CATEGORY_DEFAULT, until = Until.CLICKABLE) + @Click(value = VEHICLE_CATEGORY_DEFAULT, andWait = @Wait(explicitWaitSeconds = 5)) + NewCalculationPage clickVehicleCategoryValue(Category category); + + @Click(value = PRGROUP_VALUE_DEFAULT, andWait = @Wait(explicitWaitSeconds = 2)) + NewCalculationPage clickVehiclePrGroupValue(PrGroup prGroup); + + @Click(value = PRCLASS_VALUE_DEFAULT, andWait = @Wait(explicitWaitSeconds = 1)) + NewCalculationPage clickVehiclePrClassValue(PrClass prClass); + + @Click(value = VEHICLE_GROUP_COMBOBOX_VALUE_DEFAULT, andWait = @Wait(explicitWaitSeconds = 2)) + NewCalculationPage clickVehicleGroupComboboxValue(Group group); + + @Wait(value = {DIV_CLICK_BLOCKER, DIV_CLICK_BLOCKER_2}, until = Until.GONE, waitSecondsForElement = 30) + @Wait(value = FP_DIMMER, until = Until.GONE) + @Wait(value = VEHICLE_FINANCE_PRODUCT, waitSecondsForElement = 30) + @Click(value = VEHICLE_FINANCE_PRODUCT, andWait = @Wait(value = CommonElements.MODAL, waitSecondsForElement = 30)) + NewCalculationPage clickVehicleFinanceProduct(); + + @Wait(value = VEHICLE_FINANCE_PRODUCT_CHOOSE_BUTTON_DEFAULT, waitSecondsForElement = 30) + @Click(value = VEHICLE_FINANCE_PRODUCT_CHOOSE_BUTTON_DEFAULT, jsClick = true) + NewCalculationPage clickVehicleFinanceProductChoose(Product product); + + @Wait(value = {VEHICLE_FIRST_PAYMENT_NOT_EMPTY, VEHICLE_INSTALMENT_COUNT_NOT_EMPTY}, waitSecondsForElement = 30) + NewCalculationPage waitForCalculationOutput(); + + @Wait(value = VEHICLE_INSTALMENT_COMPUTATION_NOT_EMPTY, waitSecondsForElement = 30) + NewCalculationPage waitForCalculationInstalmentOutput(); + + @Wait(value = {DIV_CLICK_BLOCKER, DIV_CLICK_BLOCKER_2}, until = Until.GONE, waitSecondsForElement = 30) + @Wait(value = VEHICLE_CAR_INSURANCE, waitSecondsForElement = 30) + @Click(value = VEHICLE_CAR_INSURANCE) + NewCalculationPage clickVehicleCarInsurance(); + + @Wait(VEHICLE_CAR_ACCIDENT_INSURANCE_FIRM_NAME) + @TypeInto(value = VEHICLE_CAR_ACCIDENT_INSURANCE_FIRM_NAME, clear = true) + NewCalculationPage typeVehicleInsuranceFirmName(String companyName); + + @Wait(VEHICLE_CAR_ACCIDENT_INSURANCE_FIRM_NAME_FIELD) + @Click(value = VEHICLE_CAR_ACCIDENT_INSURANCE_FIRM_NAME_FIELD, jsClick = true) + NewCalculationPage clickVehicleInsuranceFirmField(); + + @Wait(VEHICLE_CAR_ACCIDENT_INSURANCE_FIRM_NAME_SEARCH) + @Click(value = VEHICLE_CAR_ACCIDENT_INSURANCE_FIRM_NAME_SEARCH, jsClick = true) + NewCalculationPage clickVehicleInsuranceFirmSearch(); + + @Wait(VEHICLE_CAR_INSURANCE_CUSTOMER_NAME) + @TypeInto(value = VEHICLE_CAR_INSURANCE_CUSTOMER_NAME, clear = true) + NewCalculationPage typeVehicleInsuranceCustomerName(String name); + + @Wait(VEHICLE_CAR_INSURANCE_CUSTOMER_SURNAME) + @TypeInto(value = VEHICLE_CAR_INSURANCE_CUSTOMER_SURNAME, clear = true) + NewCalculationPage typeVehicleInsuranceCustomerSurname(String surname); + + @Wait(VEHICLE_CAR_INSURANCE_CUSTOMER_BIRTHDATE) + @TypeInto(value = VEHICLE_CAR_INSURANCE_CUSTOMER_BIRTHDATE, clear = true) + NewCalculationPage typeVehicleInsuranceCustomerBirthdate(String birthdate); + + @Wait(VEHICLE_CAR_INSURANCE_CUSTOMER_PIN) + @TypeInto(value = VEHICLE_CAR_INSURANCE_CUSTOMER_PIN, clear = true) + NewCalculationPage typeVehicleInsuranceCustomerPIN(String pin); + + @Wait(VEHICLE_CAR_INSURANCE_CUSTOMER_NATIONALITY) + @TypeInto(value = VEHICLE_CAR_INSURANCE_CUSTOMER_NATIONALITY, clear = true) + NewCalculationPage typeVehicleInsuranceCustomerNationality(String nationality); + + @Wait(VEHICLE_CAR_INSURANCE_CUSTOMER_NATIONALITY_FIELD) + @Click(value = VEHICLE_CAR_INSURANCE_CUSTOMER_NATIONALITY_FIELD) + NewCalculationPage clickVehicleInsuranceCustomerNationality(); + + @Wait(VEHICLE_CAR_INSURANCE_CUSTOMER_ADDRESS) + @TypeInto(value = VEHICLE_CAR_INSURANCE_CUSTOMER_ADDRESS, clear = true) + NewCalculationPage typeVehicleInsuranceCustomerAddress(Address address); + + @Wait(VEHICLE_CAR_INSURANCE_CUSTOMER_ADDRESS_FIELDS) + @Click(value = VEHICLE_CAR_INSURANCE_CUSTOMER_ADDRESS_FIELDS, jsClick = true) + NewCalculationPage clickVehicleInsuranceCustomerAddress(); + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_TAB) + @Click(value = VEHICLE_CAR_INSURANCE_VEHICLE_TAB, jsClick = true) + NewCalculationPage clickVehicleInsuranceVehicleTab(); + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_TAB) + @TypeInto(value = VEHICLE_CAR_INSURANCE_VEHICLE_VOLUME_AGRO) + NewCalculationPage typeVehicleInsuranceVehicleVolume(String volume); + + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_TAB) + @TypeInto(value = VEHICLE_CAR_INSURANCE_VEHICLE_POWER_AGRO) + NewCalculationPage typeVehicleInsuranceVehiclePower(String power); + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_TAB) + @TypeInto(value = VEHICLE_CAR_INSURANCE_VEHICLE_WEIGHT_AGRO) + NewCalculationPage typeVehicleInsuranceVehicleWeight(String weight); + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_TAB) + @Click(VEHICLE_CAR_INSURANCE_VEHICLE_FUEL_AGRO) + NewCalculationPage clickVehicleInsuranceVehicleFuelTypeAgro(); + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_TAB) + @Click(VEHICLE_CAR_INSURANCE_VEHICLE_FUEL_AGRO_CHOOSE) + NewCalculationPage chooseVehicleInsuranceVehicleFuelTypeAgro(FilterFuel fuel); + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_TAB) + @Click(VEHICLE_CAR_INSURANCE_VEHICLE_FUEL_TYPE_INPUT) + NewCalculationPage clickVehicleInsuranceVehicleFuelType(); + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_TAB) + @Click(VEHICLE_CAR_INSURANCE_VEHICLE_FUEL_TYPE_CHOOSE) + NewCalculationPage chooseVehicleInsuranceVehicleFuelType(FilterFuel fuel); + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_TAB) + @Click(VEHICLE_CAR_INSURANCE_VEHICLE_SECOND_FUEL_TYPE_INPUT) + NewCalculationPage clickVehicleInsuranceVehicleFuelTypeSecond(); + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_TAB) + @Click(VEHICLE_CAR_INSURANCE_VEHICLE_SECOND_FUEL_TYPE_CHOOSE) + NewCalculationPage chooseVehicleInsuranceVehicleFuelTypeSecond(FilterFuel fuel); + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_TAB) + @Click(VEHICLE_CAR_INSURANCE_VEHICLE_SEARCH_NO_VIN) + NewCalculationPage clickVehicleInsuranceVehicleFilterSearch(); + + @Wait(VEHICLE_CAR_INSURANCE_VEHICLE_VIN) + @TypeInto(value = VEHICLE_CAR_INSURANCE_VEHICLE_VIN, clear = true) + NewCalculationPage typeVehicleInsuranceVehicleVIN(String VIN); + + @Wait(value = VEHICLE_CAR_INSURANCE_VEHICLE_VIN_SEARCH, waitSecondsForElement = 30) + @Click(value = VEHICLE_CAR_INSURANCE_VEHICLE_VIN_SEARCH, jsClick = true) + NewCalculationPage clickVehicleInsuranceVehicleVINSearch(); + + @Wait(value = VEHICLE_CAR_INSURANCE_VEHICLE_TYPE, waitSecondsForElement = 30) + @Wait(explicitWaitSeconds = 1) + @Click(value = VEHICLE_CAR_INSURANCE_VEHICLE_TYPE, jsClick = true) + NewCalculationPage clickVehicleInsuranceVehicleType(); + + @Wait(explicitWaitSeconds = 2) + @Click(value = VEHICLE_CAR_INSURANCE_INSURANCE_TAB) + NewCalculationPage clickVehicleInsuranceInsuranceTab(); + + @Wait(value = VEHICLE_CAR_INSURANCE_INSURANCE_POV_FIELD_DEFAULT, waitSecondsForElement = 30) + @Click(value = VEHICLE_CAR_INSURANCE_INSURANCE_POV_FIELD_DEFAULT) + NewCalculationPage clickVehicleInsuranceInsurancePovInsurance(); + + @Wait(value = VEHICLE_CAR_INSURANCE_INSURANCE_POV_FIELD_DEFAULT, waitSecondsForElement = 30) + @Click(value = VEHICLE_CAR_INSURANCE_INSURANCE_POV_FIELD_CHOOSE_DEFAULT) + NewCalculationPage clickVehicleInsuranceInsurancePovInsuranceChoose(); + + @Wait(value = VEHICLE_CAR_INSURANCE_INSURANCE_HAV_FIELD_DEFAULT, waitSecondsForElement = 30) + @Click(value = VEHICLE_CAR_INSURANCE_INSURANCE_HAV_FIELD_DEFAULT) + NewCalculationPage clickVehicleInsuranceInsuranceHavInsurance(); + + @Wait(value = VEHICLE_CAR_INSURANCE_INSURANCE_HAV_FIELD_DEFAULT, waitSecondsForElement = 30) + @Click(value = VEHICLE_CAR_INSURANCE_INSURANCE_HAV_FIELD_CHOOSE_DEFAULT) + NewCalculationPage clickVehicleInsuranceInsuranceHavInsuranceChoose(); + + @Wait(value = VEHICLE_CAR_INSURANCE_INSURANCE_CHOOSE, waitSecondsForElement = 30) + @Click(value = VEHICLE_CAR_INSURANCE_INSURANCE_CHOOSE,jsClick = true) + NewCalculationPage clickVehicleInsuranceInsuranceChoose(); + + @Wait(value = {DIV_CLICK_BLOCKER, DIV_CLICK_BLOCKER_2}, until = Until.GONE, waitSecondsForElement = 30) + @Wait(value = VEHICLE_CAR_ACCIDENT_INSURANCE, waitSecondsForElement = 30) + @Click(value = VEHICLE_CAR_ACCIDENT_INSURANCE, andWait = @Wait(value = CommonElements.MODAL, waitSecondsForElement = 30)) + NewCalculationPage clickVehicleAccidentInsurance(); + + @Wait(value = {DIV_CLICK_BLOCKER, DIV_CLICK_BLOCKER_2}, until = Until.GONE, waitSecondsForElement = 30) + @Wait(value = VEHICLE_CAR_ACCIDENT_INSURANCE_OPTION_DEFAULT, waitSecondsForElement = 30) + @Click(VEHICLE_CAR_ACCIDENT_INSURANCE_OPTION_DEFAULT) + NewCalculationPage clickVehicleAccidentInsuranceOption(AccidentInsurance accidentInsurance); + + @Wait(value = VEHICLE_CAR_ACCIDENT_INSURANCE_CHOOSE_BUTTON, waitSecondsForElement = 30) + @Click(value = VEHICLE_CAR_ACCIDENT_INSURANCE_CHOOSE_BUTTON, jsClick = true) + NewCalculationPage clickVehicleAccidentInsuranceChoose(); + + @Wait(value = {DIV_CLICK_BLOCKER, DIV_CLICK_BLOCKER_2}, until = Until.GONE, waitSecondsForElement = 30) + @Wait(value = VEHICLE_CAR_BENEFITS, waitSecondsForElement = 30) + @Click(value = VEHICLE_CAR_BENEFITS, andWait = @Wait(value = CommonElements.MODAL, waitSecondsForElement = 30)) + NewCalculationPage clickVehicleBenefit(); + + @Wait(value = {DIV_CLICK_BLOCKER, DIV_CLICK_BLOCKER_2}, until = Until.GONE, waitSecondsForElement = 30) + @Wait(value = VEHICLE_CAR_BENEFITS_OPTION_DEFAULT, waitSecondsForElement = 30) + @Click(VEHICLE_CAR_BENEFITS_OPTION_DEFAULT) + NewCalculationPage clickVehicleBenefitOption(Benefit benefit); + + @Wait(value = VEHICLE_CAR_BENEFITS_CHOOSE_BUTTON, waitSecondsForElement = 30) + @Click(value = VEHICLE_CAR_BENEFITS_CHOOSE_BUTTON, jsClick = true) + NewCalculationPage clickVehicleBenefitChoose(); + + @Wait(explicitWaitSeconds = 15) + @Click(value = IMG_AUTO_OPERATOR_OPTIONS, jsClick = true) + NewCalculationPage clickOperatorOptions(); + + @Click(value = SPAN_CHANGE_PASSWORD, jsClick = true) + ChangePasswordPage clickChangePassword(); + + @Click(value = SPAN_DEALER_FINANCING, jsClick = true) + DashboardPage clickDealerFinancing(); + + @Click(SPAN_COMMISSION_REPORTING) + ForBillingPage clickCommissionReporting(); + + @Click(value = VEHICLE_CUSTOMER_DEFAULT, andWait = @Wait(explicitWaitSeconds = 1)) + NewCalculationPage clickCustomer(Customer customer); + + @Click(VEHICLE_USAGE_COMBOBOX_ARROW) + NewCalculationPage clickVehicleUsageComboboxArrow(); + + @Click(VEHICLE_USAGE_DEFAULT) + NewCalculationPage clickVehicleUsage(Usage usage); + + @TypeInto(value = VEHICLE_SEARCH_BRAND, andWait = @Wait(explicitWaitSeconds = 2)) + NewCalculationPage typeVehicleBrand(String vehicleName); + + @TypeInto(value = VEHICLE_SEARCH_MODEL, andWait = @Wait(explicitWaitSeconds = 2)) + NewCalculationPage typeVehicleModel(String vehicleModel); + + @TypeInto(VEHICLE_PRICE) + NewCalculationPage typePrice(int price); + + @Click(VEHICLE_VAT_BUTTON_DEFAULT) + NewCalculationPage clickVat(Vat vat); + + @Click(VEHICLE_GROUP_COMBOBOX_ARROW) + NewCalculationPage clickVehicleGroupComboboxArrow(); + + @Click(VEHICLE_REGISTRATION_DATE) + NewCalculationPage clickVehicleRegistrationDate(); + + @Click(value = VEHICLE_REGISTRATION_DATE_MONTH, isStringDynamicXpath = true) + NewCalculationPage clickVehicleRegistrationMonth(String month); + + @Click(VEHICLE_REGISTRATION_DATE_YEAR) + NewCalculationPage clickVehicleRegistrationYear(Year year); + + @Click(VEHICLE_REGISTRATION_DATE_CHOOSE_BUTTON) + NewCalculationPage clickVehicleRegistrationDateChoose(); + + @CheckElementPresent(VEHICLE_FIRST_PAYMENT_NOT_EMPTY) + NewCalculationPage checkVehicleFirstPayment(); + + @CheckElementPresent(VEHICLE_INSTALMENT_COUNT_NOT_EMPTY) + NewCalculationPage checkVehicleInstalmentCount(); + + @CheckElementPresent(VEHICLE_INSTALMENT_COMPUTATION_NOT_EMPTY) + NewCalculationPage checkVehicleInstalmentComputation(); + + @Click(value = CommonElements.SAVE_CALCULATION_BUTTON, andWait = @Wait(value = CommonElements.SUCCESSFUL_SAVED_CALCULATION_MESSAGE, until = Until.VISIBLE), jsClick = true) + NewCalculationPage clickSaveCalculation(); + + @Wait(value = CREATE_APPLICATION, until = Until.CLICKABLE) + @Click(value = CREATE_APPLICATION, jsClick = true) + CustomerPage clickCreateApplication(); + + @Click(MENU_QUEUE) + QueuePage clickMenuQueue(); + + @Click(AGRO_SEARCH) + NewCalculationPage clickAgroBrand(Brand brand); + + @Click(AGRO_SEARCH) + NewCalculationPage clickAgroItemType(ItemType itemType); + + @Click(value = AGRO_SEARCH_BRAND_ARROW, andWait = @Wait(explicitWaitSeconds = 2)) + NewCalculationPage clickAgroSearchBrandArrow(); + + @Click(value = AGRO_ITEM_TYPE_SEARCH_ARROW, andWait = @Wait(explicitWaitSeconds = 2)) + NewCalculationPage clickItemTypeSearchArrow(); + + @Click(value = AGRO_SEARCH_TYPE, andWait = @Wait(explicitWaitSeconds = 2), jsClick = true) + NewCalculationPage searchAgroModel(); + + @Click(value = AGRO_SEARCH_RESULT, jsClick = true) + NewCalculationPage clickAgroModel(Model model); + + @TypeInto(value = AGRO_MODEL, andWait = @Wait(explicitWaitSeconds = 1)) + NewCalculationPage typeAgroModel(String model); + + + @TypeInto(value = AGRO_NO_TP_BRAND, andWait = @Wait(explicitWaitSeconds = 1)) + NewCalculationPage typeAgroBrandWithoutTP(String brand); + + @Click(value = AGRO_PGRLF_CHECKBOX, jsClick = true) + NewCalculationPage clickAgroPgrlf(); + + @Click(value = AGRO_SZIF_CHECKBOX, jsClick = true) + NewCalculationPage clickAgroSzif(); + + @Click(value = AGRO_YOUNGFARMER_CHECKBOX, jsClick = true) + NewCalculationPage clickAgroYoungFarmer(); + + @Click(value = AGRO_CALENDAR_BUTTON, jsClick = true, andWait = @Wait(explicitWaitSeconds = 2)) + NewCalculationPage clickAgroCalendar(); + + @Click(value = AGRO_CALENDAR_TODAY, andWait = @Wait(explicitWaitSeconds = 2)) + NewCalculationPage clickAgroToday(); + + @Click(value = AGRO_DEFERRED_DRAWING, jsClick = true) + NewCalculationPage clickDeferredDrawing(); + + // Nerovnoměrné splátky + @Click(value = IRREGULAR_ICON) + NewCalculationPage clickIrregularIcon(); + + @Click(value = IRREGULAR_EDIT_BUTTON) + NewCalculationPage clickIrregularEditButton(); + + @Click(value = IRREGULAR_CONFIRM, andWait = @Wait(explicitWaitSeconds = 2)) + NewCalculationPage clickIrregularConfirm(); + + @Click(value = IRREGULAR_SUBMIT) + NewCalculationPage clickIrregularSubmit(); + + @TypeInto(value = IRREGULAR_INPUT, clear = true) + NewCalculationPage typeIrregularPayment(Long payment); + + @CheckElementPresent(IS_IRREGULAR) + NewCalculationPage checkIfIrregular(); + + @Click(value = MENU_SAVED) + SavedCalculationsPage clickMenuSaved(); + + @Wait(value = LOGIN_SUCCESS, until = Until.GONE) + @Click(value = MAIN_NAV_PROFILE) + NewCalculationPage clickNavigation(); + + @Click(value = INVOICES_BUTTON) + InvoicesPage clickInvoices(); + + @Click(value = SUBSIDY_VALUE_DEFAULT, andWait = @Wait(until = Until.VISIBLE)) + NewCalculationPage setSubsidyValue(Subsidy subsidy); + + @TypeInto(value = FIRST_PAYMENT_INPUT, clear = true) + NewCalculationPage typeFirstPayment(int payment); + + @CustomAction + default NewCalculationPage scrollToTop() { + SmartAutoEndpoint endpoint = getEndpoint(SmartAutoEndpoint.class); + endpoint.scrollIntoView(NEW_CALCULATION_BUTTON); + return null; + } + + @KeyPress(Key.TAB) + NewCalculationPage lostFocus(); + + @Wait(VEHICLE_CAR_INSURANCE) + @CustomAction + default NewCalculationPage scrollToChoose() { + SmartAutoEndpoint endpoint = getEndpoint(SmartAutoEndpoint.class); + endpoint.scrollIntoView(VEHICLE_CAR_INSURANCE_INSURANCE_CHOOSE); + return null; + } + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/OthersPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/OthersPage.java new file mode 100644 index 0000000..b203d0e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/OthersPage.java @@ -0,0 +1,80 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.dsl.auto.smartauto.shared.BankCode; +import cz.moneta.test.dsl.auto.smartauto.shared.CommonElements; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +public interface OthersPage extends SmartAutoFlow { + + String VEHICLE_PAGE_VALIDATION = "//span[contains(text(), 'Předmět')]//following-sibling::span[contains(text(), '✓')]"; + String DEALER_CONTACT_PHONE_NUMBER = "//input[@name='sign.dealerContactPhoneNumber']"; + String ACCOUNT_NUMBER = "//input[@name='sign.bankContactC2C.accountNumber']"; + String BANK_CODE = "//span[contains(text(), 'Kód banky')]/../../..//input"; + String BUTTON = "//button[contains(text(), '%s')]"; + String APPROVAL_MESSAGE = "//span[contains(text(), 'Zpráva pro schvalovatele')]/../../../textarea"; + String VEHICLE_PAGE = "//span[contains(text(), 'Předmět')]"; + String DUPLICATE_APPLICATION = "//span[contains(text(), 'Duplikovat')]"; + String CALCULATION_NAME = "//input[@name='calculationName']"; + String BUTTON_OK = "//span[contains(text(), 'Ok')]"; + String BUTTON_CONSUMER = "//span[contains(text(), 'Spotřebitel')]/.."; + String C2C_COMPANY_NAME = "//input[@name='sign.bankContactC2C.companyName']"; + String C2C_COMPANY_ICO = "//input[@name='sign.bankContactC2C.ico']"; + String C2C_FIRST_NAME = "//input[@name='sign.bankContactC2C.contactFirstName']"; + String C2C_SURNAME = "//input[@name='sign.bankContactC2C.contactSurname']"; + String C2C_BIRTH_DATE = "//label[contains(text(), 'Datum narození')]/../div/input"; + + + @CheckElementPresent(VEHICLE_PAGE_VALIDATION) + OthersPage checkVehiclePageValidation(); + + @TypeInto(DEALER_CONTACT_PHONE_NUMBER) + OthersPage typeDealerContactPhoneNumber(int dealerContactphoneNumber); + + @TypeInto(ACCOUNT_NUMBER) + OthersPage typeAccountNumber(int accountNumber); + + @TypeInto(BANK_CODE) + OthersPage typeBankCode(String bankCode); + + @Click(BUTTON) + OthersPage clickBankCode(BankCode bankCode); + + @TypeInto(APPROVAL_MESSAGE) + OthersPage typeApprovalMessage(String approvalMessage); + + @Click(value = VEHICLE_PAGE, jsClick = true) + VehiclePage clickVehiclePage(); + + @Click(value = CommonElements.SAVE_CALCULATION_BUTTON, andWait = @Wait(value = CommonElements.SUCCESSFUL_SAVED_CALCULATION_MESSAGE), jsClick = true) + OthersPage clickSaveCalculation(); + + @Click(value = DUPLICATE_APPLICATION, jsClick = true) + OthersPage clickDuplicateApplication(); + + @TypeInto(CALCULATION_NAME) + OthersPage typeCalculationName(String calculationName); + + @Click(BUTTON_OK) + VehiclePage clickDuplicateApplicationButtonOk(); + + @Click(BUTTON_CONSUMER) + OthersPage clickConsumer(); + + @TypeInto(C2C_COMPANY_NAME) + OthersPage typeC2CCompanyName(String c2cCompanyName); + + @TypeInto(C2C_COMPANY_ICO) + OthersPage typeC2CCompanyIco(String c2cCompanyIco); + + @TypeInto(C2C_FIRST_NAME) + OthersPage typeC2CFirstName(String c2cFirstName); + + @TypeInto(C2C_SURNAME) + OthersPage typeC2CSurname(String c2cSurname); + + @TypeInto(C2C_BIRTH_DATE) + OthersPage typeC2CBirthDate(String c2cBirthDate); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/QueuePage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/QueuePage.java new file mode 100644 index 0000000..8492fcb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/QueuePage.java @@ -0,0 +1,63 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.dsl.auto.smartauto.shared.CalendarAccessor; +import cz.moneta.test.dsl.auto.smartauto.shared.Day; +import cz.moneta.test.dsl.auto.smartauto.shared.Month; +import cz.moneta.test.dsl.auto.smartauto.shared.Year; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.auto.smartauto.QueuePage.*; + +@Wait(value = {DATE_FROM, DATE_TO}, + waitSecondsForElement = 40) +public interface QueuePage extends SmartAutoFlow, StoreAccessor, CalendarAccessor { + + String HEADING_SEND_APPLICATIONS = "//span[contains(text(), 'Odeslané žádosti')]"; + String FIRST_APPLICATION = "//div/div/div/button/i"; + String DATE_FROM = "//label[contains(., 'Datum od')]/following-sibling::div/button"; + String DATE_TO = "//label[contains(., 'Datum do')]/following-sibling::div/button"; + String SEARCH_BUTTON = "//button[@testid='bbutton' and span[text()='Zobrazit']]"; + String QUEUE_ITEM = "(//div[contains(@class, 'queue-item-hVy1h')])[1]"; + + @CheckElementPresent(HEADING_SEND_APPLICATIONS) + QueuePage checkHeadingSendApplication(); + + @Click(FIRST_APPLICATION) + OthersPage clickOpenApplication(); + + @Click(DATE_FROM) + QueuePage clickDateFrom(); + + @Click(DATE_TO) + QueuePage clickDateTo(); + + @Click(DATE_FROM_MONTH) + QueuePage clickDateFromMonth(); + + @Click(DATE_TO_MONTH) + QueuePage clickDateToMonth(); + + @Click(value = DATE_FROM_MONTH_DEFAULT, andWait = @Wait(explicitWaitSeconds = 1)) + QueuePage setDateFromMonthValue(Month month); + + @Click(value = DATE_TO_MONTH_DEFAULT, andWait = @Wait(explicitWaitSeconds = 1)) + QueuePage setDateToMonthValue(Month month); + + @Click(value = DATE_FROM_DAY_DEFAULT, andWait = @Wait(explicitWaitSeconds = 1)) + QueuePage setDateFromDayValue(Day day); + + @Click(value = DATE_TO_DAY_DEFAULT, andWait = @Wait(explicitWaitSeconds = 1)) + QueuePage setDateToDayValue(Day day); + + @TypeInto(value = FROM_DATE_YEAR_FIELD, clear = true) + QueuePage setDateFromYear(Year year); + + @Click(SEARCH_BUTTON) + QueuePage clickSearch(); + + @Wait(value = QUEUE_ITEM, explicitWaitSeconds = 1) + @CheckElementPresent(QUEUE_ITEM) + QueuePage checkQueueItem(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/SavedCalculationsPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/SavedCalculationsPage.java new file mode 100644 index 0000000..e9e7beb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/SavedCalculationsPage.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +public interface SavedCalculationsPage extends SmartAutoFlow, StoreAccessor, CalendarAccessor { + + String HEADING_SAVED_CALCULATIONS = "//h1/span[contains(text(), 'Kalkulace')]"; + String FIRST_APPLICATION_DIV = "//h2/../div[1]/div/"; + String CALCULATION_NAME = FIRST_APPLICATION_DIV + "div/div[1]"; + String CALCULATION_STATUS = FIRST_APPLICATION_DIV + "/span/span[contains(text(), 'Rozpracovaná žádost')]"; + String CALCULATION_DATE = FIRST_APPLICATION_DIV + "div/div[5]"; + String DATE_FROM = "//label[contains(., 'Datum od')]/following-sibling::div/button"; + String DATE_TO = "//label[contains(., 'Datum do')]/following-sibling::div/button"; + String SEARCH_BUTTON = "//button[@testid='bbutton' and span[text()='Zobrazit']]"; + String FROM_DATE_YEAR_FIELD_ARROWDOWN = "(//span[@class='arrowDown'])[1]"; + String SAVED_ITEM = "(//div[contains(@class, 'calculation-item-scbBC')])[1]"; + + @CheckElementPresent(HEADING_SAVED_CALCULATIONS) + SavedCalculationsPage checkSavedCalculationHeading(); + + @CheckElementContent(CALCULATION_NAME) + SavedCalculationsPage checkForCalculationTitle(String title); + + @CheckElementContent(CALCULATION_DATE) + SavedCalculationsPage checkForCalculationDate(String date); + + @CheckElementPresent(CALCULATION_STATUS) + SavedCalculationsPage checkForCalculationStatus(); + + @Click(DATE_FROM) + SavedCalculationsPage clickDateFrom(); + + @Click(DATE_TO) + SavedCalculationsPage clickDateTo(); + + @Click(DATE_FROM_MONTH) + SavedCalculationsPage clickDateFromMonth(); + + @Click(DATE_TO_MONTH) + SavedCalculationsPage clickDateToMonth(); + + @Click(DATE_FROM_MONTH_DEFAULT) + SavedCalculationsPage clickDateFromMonthValue(Month month); + + @Click(DATE_TO_MONTH_DEFAULT) + SavedCalculationsPage clickDateToMonthValue(Month month); + + @Click(DATE_FROM_DAY_DEFAULT) + SavedCalculationsPage clickDateFromDayValue(Day day); + + @Click(DATE_TO_DAY_DEFAULT) + SavedCalculationsPage clickDateToDayValue(Day day); + + @Click(FROM_DATE_YEAR_FIELD_ARROWDOWN) + SavedCalculationsPage setDateFromYear(Year year); + + @Click(SEARCH_BUTTON) + SavedCalculationsPage clickSearch(); + + @Wait(value = SAVED_ITEM, explicitWaitSeconds = 1) + @CheckElementPresent(SAVED_ITEM) + SavedCalculationsPage checkSavedItem(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/SmartAuto.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/SmartAuto.java new file mode 100644 index 0000000..4bdcdd7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/SmartAuto.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.SmartAutoEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class SmartAuto { + + private final Harness harness; + + public SmartAuto(Harness harness) { + this.harness = harness; + } + + public LoginPage openLoginPage() { + SmartAutoEndpoint smartAutoEndpoint = harness.getEndpoint(SmartAutoEndpoint.class); + smartAutoEndpoint.openApplication(); + return Builders.newWebFlowBuilder(LoginPage.class, smartAutoEndpoint, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/SmartAutoFlow.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/SmartAutoFlow.java new file mode 100644 index 0000000..8a43f40 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/SmartAutoFlow.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.LOADER_DIV; + +public interface SmartAutoFlow
> extends WebFlow { + + default void beforePageLoad(WebEndpoint endpoint) { + endpoint.waitForElementsToLoad(90, Until.GONE, LOADER_DIV); + // wait for case when second Loader appear for additional data loading + endpoint.waitForElementsToLoad(90, Until.GONE, LOADER_DIV); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/VehiclePage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/VehiclePage.java new file mode 100644 index 0000000..f5e1522 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/VehiclePage.java @@ -0,0 +1,202 @@ +package cz.moneta.test.dsl.auto.smartauto; + +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.SmartAutoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.LOADER_DIV; + +public interface VehiclePage extends SmartAutoFlow, StoreAccessor { + + String CUSTOMER_PAGE_VALIDATION = "//span[contains(text(), 'Zákazník')]//following-sibling::span[contains(text(), '✓')]"; + String OTHERS_PAGE_VALIDATION = "//span[contains(text(), 'Ostatní')]//following-sibling::span[contains(text(), '✓')]"; + String VEHICLE_INFORMATION_BRAND = "//input[@name='vehicle.car.carBrand.name'][@value='%s']"; + String VEHICLE_INFORMATION_MODEL = "//input[@name='vehicle.car.carModelShort.name'][@value='%s']"; + String VEHICLE_INFORMATION_VIN_CHECKBOX = "//span[contains(text(), 'Vůz nemá VIN')]/../../../.."; + String VEHICLE_INFORMATION_VIN = "//input[@name='vehicle.chassisNumber']"; + String BUTTON_SEARCH = "(//span[text() = 'Vyhledat'])[1]"; + String FILTER_FUEL = "(//span[contains(text(), 'Palivo')])[1]/../..//following-sibling::div//input"; + String FILTER_FUEL_2 = "(//span[contains(text(), 'Palivo')])[2]/../..//following-sibling::div//input"; + String FILTER_BODYWORK = "(//span[contains(text(), 'Typ karosérie')])[1]/../..//following-sibling::div//input"; + String FILTER_GEARBOX = "(//span[contains(text(), 'Typ převodovky')])[1]/../..//following-sibling::div//input"; + String FILTER_DOORS = "(//span[contains(text(), 'Počet dveří')])[1]/../..//following-sibling::div//input"; + String BUTTON_FILTER_SEARCH = "//span[contains(text(), 'Filtry pro vyhledání vozidla')]/../../../../..//span[contains(text(), 'Vyhledat')]/.."; + String BUTTON_SEARCHED_VEHICLE = "//div[@class='vehicle-table-scrollbar-_sQil col-1TMxT']/div[1]/div"; + String BUTTON = "//button[contains(text(), '%s')]"; + String ENGINE_CAPACITY = "//input[@name='vehicle.specificCar.engineCapacity']"; + String ENGINE_KW = "//input[@name='vehicle.specificCar.engineKw']"; + String ENGINE_POWER = "//input[@name='enginePower']"; + String WEIGHT_TOTAL = "//input[@name='vehicle.specificCar.weightTotal']"; + String SEATS = "//input[@name='vehicle.specificCar.sittingPlaceNr']"; + String FUEL = "(//span[contains(text(), 'Palivo')])[2]/../..//following-sibling::div//input[@value='%s']"; + String MILEAGE = "//input[@name='vehicle.specificCar.travel']"; + String IMPORT_VEHICLE = "//span[contains(text(), 'Vozidlo z dovozu')]/../../../div/div/span/button/span[contains(text(), '%s')]"; + String DEALER_IS_OWNER = "//span[contains(text(), 'Dealer je majitelem vozidla')]/../../..//span[contains(text(), '%s')]/.."; + String DESCRIPTION = "//textarea[@name='vehicle.specificCar.description']"; + String OTHERS_PAGE = "//span[contains(text(), 'Ostatní')]"; + String BUTTON_TO_QUEUE = "//button[@data-testid=\"Button\"]/span[contains(text(),'Do fronty')]/.."; + String BUTTON_QUEUE_ACCEPT = "//button[contains(text(), 'Potvrdit')]"; + String MENU_SAVED = "(//span[contains(text(), 'Uložené')])[1]"; + + //AGRO + String AGRO_INFORMATION_BRAND = "//span[contains(text(), 'Výrobce')]/../following-sibling::div//input|//input[@name='vehicle.producer']"; + String AGRO_INFORMATION_MODEL = "//input[@name='vehicle.subjectDescription']"; + String AGRO_CAPACITY = "//input[@name='vehicle.withTp.engineCapacity']"; + String AGRO_ENGINE_KW = "//input[@name='vehicle.withTp.engineKw']"; + String AGRO_WEIGHT_TOTAL = "//input[@name='vehicle.withTp.weightTotal']"; + String AGRO_ACCESSORY = "//textarea[@name='vehicle.additionalThings']"; + String AGRO_NOTE = "//textarea[@name='vehicle.note']"; + String VEHICLE_DO_NOT_HAVE_VIN = "//input[@name='vehicle.withoutVin']"; + String AGRO_PGRLF_BUTTON_ACCEPT = "//label[@id='pgrlf']/span[contains(text(), 'PGRLF')]"; + String SUBSIDY_CONFIRM_CHECKBOX = "//span[contains(@class, 'f-checkbox2__text') and contains(., 'dotace')]"; + String ACCEPT_SUBSIDY_BUTTON = "//label[@id='pokus']"; + + @CheckElementPresent(CUSTOMER_PAGE_VALIDATION) + VehiclePage checkCustomerPageValidation(); + + @CheckElementPresent(OTHERS_PAGE_VALIDATION) + VehiclePage checkOthersPageValidation(); + + @CheckElementPresent(VEHICLE_INFORMATION_BRAND) + VehiclePage checkVehicleInformationBrand(Brand brand); + + @CheckElementPresent(VEHICLE_INFORMATION_MODEL) + VehiclePage checkVehicleInformationModel(Model model); + + @Click(value = VEHICLE_INFORMATION_VIN_CHECKBOX, jsClick = true) + VehiclePage clickVehicleWithoutVin(); + + @TypeInto(FILTER_FUEL) + VehiclePage typeFilterFuel(String filterFuel); + + @Wait(value = LOADER_DIV, until = Until.GONE) + @TypeInto(value = FILTER_FUEL_2, clear = true) + VehiclePage typeFilterFuel2(String filterFuel2); + + @Click(BUTTON) + VehiclePage clickFilterFuel(FilterFuel filterFuel); + + @Click(BUTTON) + VehiclePage clickFilterFuel2(FilterFuel filterFuel); + + @TypeInto(ENGINE_POWER) + VehiclePage typeFilterPower(String filterPower); + + @Wait(explicitWaitSeconds = 2) + @TypeInto(FILTER_BODYWORK) + VehiclePage typeFilterBodywork(String filterBodywork); + + @Click(value = BUTTON, andWait = @Wait(explicitWaitSeconds = 2)) + VehiclePage clickFilterBodywork(FilterBodywork filterBodywork); + + @TypeInto(FILTER_GEARBOX) + VehiclePage typeFilterGearbox(String filterGearbox); + + @Click(BUTTON) + VehiclePage clickFilterGearbox(FilterGearbox filterGearbox); + + @TypeInto(FILTER_DOORS) + VehiclePage typeFilterDoors(String filterDoors); + + @Click(BUTTON) + VehiclePage clickFilterDoors(FilterDoors filterDoors); + + @Click(value = BUTTON_FILTER_SEARCH, andWait = @Wait(explicitWaitSeconds = 3), jsClick = true) + VehiclePage clickSearchWithFilters(); + + @Wait(explicitWaitSeconds = 4) + @Click(BUTTON_SEARCHED_VEHICLE) + VehiclePage clickSearchedVehicle(Model model); + + @CheckElementPresent(ENGINE_CAPACITY) + VehiclePage checkEngineCapacity(); + + @CheckElementPresent(ENGINE_KW) + VehiclePage checkEngineKw(); + + @CheckElementPresent(WEIGHT_TOTAL) + VehiclePage checkWeightTotal(); + + @CheckElementPresent(SEATS) + VehiclePage checkSeats(); + + @CheckElementPresent(FUEL) + VehiclePage checkFuel(FilterFuel filterFuel); + + @TypeInto(value = MILEAGE, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + VehiclePage typeMileage(int mileage); + + @TypeInto(value = DESCRIPTION, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + VehiclePage typeDescription(String description); + + @Click(IMPORT_VEHICLE) + VehiclePage clickImportVehicle(ImportVehicle importVehicle); + + @Click(DEALER_IS_OWNER) + VehiclePage clickDealerIsOwner(DealerIsOwner dealerIsOwner); + + @Click(value = OTHERS_PAGE, jsClick = true) + OthersPage clickOthersPage(); + + @TypeInto(VEHICLE_INFORMATION_VIN) + VehiclePage typeVehicleVin(String vin); + + @Click(BUTTON_SEARCH) + VehiclePage clickSearchWithVin(); + + @Click(value = BUTTON_TO_QUEUE, jsClick = true) + VehiclePage clickToQueue(); + + @Click(value = CommonElements.SAVE_CALCULATION_BUTTON, andWait = @Wait(value = CommonElements.SUCCESSFUL_SAVED_CALCULATION_MESSAGE, until = Until.VISIBLE), jsClick = true) + VehiclePage clickSaveCalculation(); + + @Click(MENU_SAVED) + SavedCalculationsPage clickMenuSaved(); + + //AGRO + + @CheckElementPresent(AGRO_INFORMATION_BRAND) + VehiclePage checkAgroInformationBrand(Brand brand); + + @CheckElementPresent(AGRO_INFORMATION_MODEL) + VehiclePage checkAgroInformationModel(Model model); + + @TypeInto(AGRO_CAPACITY) + VehiclePage typeAgroCapacity(Integer capacity); + + @TypeInto(AGRO_ENGINE_KW) + VehiclePage typeAgroEngineKw(Integer engineKw); + + @TypeInto(AGRO_WEIGHT_TOTAL) + VehiclePage typeAgroWeightTotal(Integer weightTotal); + + @TypeInto(AGRO_ACCESSORY) + VehiclePage typeAgroAccessory(String accessory); + + @TypeInto(AGRO_NOTE) + VehiclePage typeAgroNote(String note); + + @Click(value = VEHICLE_DO_NOT_HAVE_VIN, jsClick = true) + VehiclePage clickDoNotHaveVIN(); + + @Click(value = AGRO_PGRLF_BUTTON_ACCEPT, jsClick = true, andWait = @Wait(explicitWaitSeconds = 1)) + VehiclePage clickAcceptPGRLF(); + + @Click(value = SUBSIDY_CONFIRM_CHECKBOX, jsClick = true) + VehiclePage clickAcceptSubsidyCheckbox(); + + @Click(value = BUTTON_QUEUE_ACCEPT, jsClick = true) + QueuePage clickQueueAccept(); + + @Click(value = ACCEPT_SUBSIDY_BUTTON) + VehiclePage clickSubsidyAcceptButton(); + + @CustomAction() + default VehiclePage scrollToAccept() { + SmartAutoEndpoint endpoint = getEndpoint(SmartAutoEndpoint.class); + endpoint.scrollIntoView(BUTTON_QUEUE_ACCEPT); + return null; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/cr/ForBillingPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/cr/ForBillingPage.java new file mode 100644 index 0000000..d54c4cd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/cr/ForBillingPage.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.auto.smartauto.cr; + +import cz.moneta.test.dsl.auto.smartauto.SmartAutoFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.CheckElementsPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.ACTIVE_FILTERS_BUTTON; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.COLUMNS_BUTTON; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.CR_MENU_COMMISSIONS; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.CR_MENU_CREDIT_NOTES; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.CR_MENU_FOR_BILLING; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.CR_MENU_INVOICES; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.EXPORT_BUTTON; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.NEXT_PAGE_BUTTON; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.PREVIOUS_PAGE_BUTTON; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.SORT_ACTIVITY_BUTTON; + +@Wait(value = {CR_MENU_FOR_BILLING, CR_MENU_INVOICES, CR_MENU_COMMISSIONS, CR_MENU_CREDIT_NOTES}, waitSecondsForElement = 40) +public interface ForBillingPage extends SmartAutoFlow { + + String PARTNER_TEXT = "//span[contains(text(), 'Partner')]"; + String FROM_DATE_TEXT = "//span[contains(text(), 'Od data')]"; + String TO_DATE_TEXT = "//span[contains(text(), 'Do data')]"; + String COMMISSIONS_CREDIT_NOTES_TEXT = "//span[contains(text(), 'Provize/Dobropis')]"; + String FILTER_TITLE = "//span[contains(text(), 'Filtr')]"; + String BILLING_COMMISSIONS_TITLE = "//span[contains(text(), 'Provize k fakturaci')]"; + String RESET_BUTTON = "//span[contains(text(), 'Resetovat')]"; + String SEARCH_BUTTON = "//span[contains(text(), 'Vyhledat')]"; + String INVOICE_BUTTON = "//span[contains(text(), 'Vyfakturovat')]"; + + @CheckElementsPresent(value = { + @CheckElementPresent(PARTNER_TEXT), + @CheckElementPresent(FROM_DATE_TEXT), + @CheckElementPresent(TO_DATE_TEXT), + @CheckElementPresent(COMMISSIONS_CREDIT_NOTES_TEXT)}) + ForBillingPage checkForBillingTexts(); + + @CheckElementsPresent(value = {@CheckElementPresent(FILTER_TITLE), @CheckElementPresent(BILLING_COMMISSIONS_TITLE)}) + ForBillingPage checkForBillingTitles(); + + @CheckElementsPresent(value = { + @CheckElementPresent(RESET_BUTTON), + @CheckElementPresent(SEARCH_BUTTON), + @CheckElementPresent(INVOICE_BUTTON), + @CheckElementPresent(ACTIVE_FILTERS_BUTTON), + @CheckElementPresent(SORT_ACTIVITY_BUTTON), + @CheckElementPresent(COLUMNS_BUTTON), + @CheckElementPresent(EXPORT_BUTTON), + @CheckElementPresent(PREVIOUS_PAGE_BUTTON), + @CheckElementPresent(NEXT_PAGE_BUTTON)}) + ForBillingPage checkForBillingButtons(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/df/DashboardPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/df/DashboardPage.java new file mode 100644 index 0000000..3884a0a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/df/DashboardPage.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.auto.smartauto.df; + +import cz.moneta.test.dsl.auto.smartauto.SmartAutoFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.CheckElementsPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.ACTIVE_FILTERS_BUTTON; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.COLUMNS_BUTTON; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.DF_MENU_DASHBOARD; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.DF_MENU_FINANCING; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.DF_MENU_INVOICES; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.DF_MENU_MESSAGES; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.EXPORT_BUTTON; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.NEXT_PAGE_BUTTON; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.PREVIOUS_PAGE_BUTTON; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.SORT_ACTIVITY_BUTTON; + +@Wait(value = {DF_MENU_DASHBOARD, DF_MENU_FINANCING, DF_MENU_INVOICES, DF_MENU_MESSAGES}, waitSecondsForElement = 40) +public interface DashboardPage extends SmartAutoFlow { + + String CURRENT_INTEREST_RATE_TEXT = "//strong[contains(text(), 'Aktuální úroková sazba')]"; + String TOTAL_LIMIT_TEXT = "//span[contains(text(), 'Limit')]"; + String TOTAL_DEPLETED_TEXT = "//span[contains(text(), 'Vyčerpáno')]"; + String TOTAL_AVAILABLE_LIMIT_TEXT = "//span[contains(text(), 'Volný limit')]"; + String FOR_PAYMENT_TEXT = "//span[contains(text(), 'K úhradě')]"; + String OVERDUE_PAYMENT_TEXT = "//span[contains(text(), 'Z toho po splatnosti')]"; + String PRODUCT_LIST_TITLE = "//span[contains(text(), 'Seznam produktů')]"; + String ALL_CONTRACT_BUTTON = "//span[contains(text(), 'Všechny zakázky')]"; + + @CheckElementsPresent(value = { + @CheckElementPresent(CURRENT_INTEREST_RATE_TEXT), + @CheckElementPresent(TOTAL_LIMIT_TEXT), + @CheckElementPresent(TOTAL_DEPLETED_TEXT), + @CheckElementPresent(TOTAL_AVAILABLE_LIMIT_TEXT), + @CheckElementPresent(FOR_PAYMENT_TEXT), + @CheckElementPresent(OVERDUE_PAYMENT_TEXT), + }) + DashboardPage checkDashboardTexts(); + + @CheckElementsPresent(value = { + @CheckElementPresent(PRODUCT_LIST_TITLE)}) + DashboardPage checkDashboardTitles(); + + @CheckElementsPresent(value = { + @CheckElementPresent(ALL_CONTRACT_BUTTON), + @CheckElementPresent(ACTIVE_FILTERS_BUTTON), + @CheckElementPresent(SORT_ACTIVITY_BUTTON), + @CheckElementPresent(COLUMNS_BUTTON), + @CheckElementPresent(EXPORT_BUTTON), + @CheckElementPresent(PREVIOUS_PAGE_BUTTON), + @CheckElementPresent(NEXT_PAGE_BUTTON)}) + DashboardPage checkDashboardButtons(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/DealersDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/DealersDetailPage.java new file mode 100644 index 0000000..d11847d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/DealersDetailPage.java @@ -0,0 +1,105 @@ +package cz.moneta.test.dsl.auto.smartauto.setman; + +import cz.moneta.test.dsl.auto.smartauto.SmartAutoFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; + +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.REACT_TABLE; + +public interface DealersDetailPage extends SmartAutoFlow { + + String HEADING_DEALERS_DETAIL = "(//h1[contains(text(), 'Detail prodejce')])"; + String SAVE_BUTTON = "(//button[contains(text(), 'Uložit')])"; + String GENERAL_SECTION = "(//span[contains(text(), 'Obecné')])"; + String DEALERS_GROUPS_SECTION = "(//h6[contains(text(), 'Skupiny prodejců')])"; + String GENERAL_SECTION_ID_LABEL = "(//label[contains(text(), 'Id')])"; + String GENERAL_SECTION_ACTIVE_LABEL = "//span[contains(text(), 'Aktivní')]"; + String GENERAL_SECTION_AUTHORIZED_LABEL = "(//span[contains(text(), 'Autorizován')])"; + String GENERAL_SECTION_CNB_LABEL = "(//span[contains(text(), 'ČNB')])"; + String GENERAL_SECTION_PARTNER_LABEL = "(//label[contains(text(), 'Partner')])"; + String GENERAL_SECTION_TITLE_LABEL = "(//label[contains(text(), 'Název')])[1]"; + String GENERAL_SECTION_SIGNATURE_DATE_SOS_LABEL = "(//label[contains(text(), 'Datum podpisu SOS')])"; + String GENERAL_SECTION_CENTER_LABEL = "(//label[contains(text(), 'Středisko (region)')])"; + String GENERAL_SECTION_COLORED_CHANNEL_LABEL = "(//label[contains(text(), 'Barevný kanál')])"; + String GENERAL_SECTION_PATRON_LABEL = "(//div[contains(text(), 'Patron (obchodní zástupce)')])"; + String GENERAL_SECTION_COLORED_ACQUISITION_PLACE_LABEL = "(//div[contains(text(), 'Barevné pořizovací místo')])"; + String GENERAL_SECTION_ACQUISITION_PLACE_LABEL = "(//div[contains(text(), 'Pořizovací místo')])"; + String GENERAL_SECTION_NOTE_LABEL = "(//label[contains(text(), 'Poznámka')])"; + String GENERAL_SECTION_SET_PATRON_BUTTON = "(//div[contains(text(), 'Patron (obchodní zástupce)')])"; + String GENERAL_SECTION_GO_TO_PATRON_BUTTON = "(//div[contains(text(), 'Patron (obchodní zástupce)')])//*[1]"; + String GENERAL_SECTION_SET_ACQUISITION_PLACE_BUTTON = "(//div[contains(text(), 'Barevné pořizovací místo')])"; + String GENERAL_SECTION_GO_TO_ACQUISITION_PLACE_BUTTON = "(//div[contains(text(), 'Barevné pořizovací místo')])//*[1]"; + String GENERAL_SECTION_SET_COLORED_ACQUISITION_PLACE_BUTTON = "(//div[contains(text(), 'Barevné pořizovací místo')])"; + String GENERAL_SECTION_GO_TO_COLORED_ACQUISITION_PLACE_BUTTON = "(//div[contains(text(), 'Barevné pořizovací místo')])//*[1]"; + + @CheckElementPresent(HEADING_DEALERS_DETAIL) + DealersDetailPage checkHeadingDealersDetail(); + + @CheckElementPresent(SAVE_BUTTON) + DealersDetailPage checkSaveButton(); + + @CheckElementPresent(REACT_TABLE) + DealersDetailPage checkTable(); + + @CheckElementPresent(GENERAL_SECTION) + DealersDetailPage checkGeneralSection(); + + @CheckElementPresent(DEALERS_GROUPS_SECTION) + DealersDetailPage checkDealersGroupsSection(); + + @CheckElementPresent(GENERAL_SECTION_ID_LABEL) + DealersDetailPage checkGeneralSectionIdLabel(); + + @CheckElementPresent(GENERAL_SECTION_ACTIVE_LABEL) + DealersDetailPage checkGeneralSectionActiveLabel(); + + @CheckElementPresent(GENERAL_SECTION_AUTHORIZED_LABEL) + DealersDetailPage checkGeneralSectionAuthorizedLabel(); + + @CheckElementPresent(GENERAL_SECTION_CNB_LABEL) + DealersDetailPage checkGeneralSectionCnbLabel(); + + @CheckElementPresent(GENERAL_SECTION_PARTNER_LABEL) + DealersDetailPage checkGeneralSectionPartnerLabel(); + + @CheckElementPresent(GENERAL_SECTION_TITLE_LABEL) + DealersDetailPage checkGeneralSectionTitleLabel(); + + @CheckElementPresent(GENERAL_SECTION_SIGNATURE_DATE_SOS_LABEL) + DealersDetailPage checkGeneralSectionSignatureDateSosLabel(); + + @CheckElementPresent(GENERAL_SECTION_CENTER_LABEL) + DealersDetailPage checkGeneralSectionCenterLabel(); + + @CheckElementPresent(GENERAL_SECTION_COLORED_CHANNEL_LABEL) + DealersDetailPage checkGeneralSectionColoredChannelLabel(); + + @CheckElementPresent(GENERAL_SECTION_PATRON_LABEL) + DealersDetailPage checkGeneralSectionPatronLabel(); + + @CheckElementPresent(GENERAL_SECTION_COLORED_ACQUISITION_PLACE_LABEL) + DealersDetailPage checkGeneralSectionColoredAcquisitionPlaceLabel(); + + @CheckElementPresent(GENERAL_SECTION_ACQUISITION_PLACE_LABEL) + DealersDetailPage checkGeneralSectionAcquisitionPlaceLabel(); + + @CheckElementPresent(GENERAL_SECTION_NOTE_LABEL) + DealersDetailPage checkGeneralSectionNoteLabel(); + + @CheckElementPresent(GENERAL_SECTION_SET_PATRON_BUTTON) + DealersDetailPage checkGeneralSectionSetPatronButton(); + + @CheckElementPresent(GENERAL_SECTION_GO_TO_PATRON_BUTTON) + DealersDetailPage checkGeneralSectionGoToPatronButton(); + + @CheckElementPresent(GENERAL_SECTION_SET_ACQUISITION_PLACE_BUTTON) + DealersDetailPage checkGeneralSectionSetAcquisitionPlaceButton(); + + @CheckElementPresent(GENERAL_SECTION_GO_TO_ACQUISITION_PLACE_BUTTON) + DealersDetailPage checkGeneralSectionGoToAcquisitionPlaceButton(); + + @CheckElementPresent(GENERAL_SECTION_SET_COLORED_ACQUISITION_PLACE_BUTTON) + DealersDetailPage checkGeneralSectionSetColoredAcquisitionPlaceButton(); + + @CheckElementPresent(GENERAL_SECTION_GO_TO_COLORED_ACQUISITION_PLACE_BUTTON) + DealersDetailPage checkGeneralSectionGoToColoredAcquisitionPlaceButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/DealersPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/DealersPage.java new file mode 100644 index 0000000..0140b25 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/DealersPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.auto.smartauto.setman; + +import cz.moneta.test.dsl.auto.smartauto.SmartAutoFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; + +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.REACT_TABLE; +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.REACT_TABLE_LINK_ICON; + +public interface DealersPage extends SmartAutoFlow { + + String HEADING_DEALERS_LIST = "(//h1[contains(text(), 'Seznam Prodejců')])"; + + @CheckElementPresent(HEADING_DEALERS_LIST) + DealersPage checkHeadingDealers(); + + @CheckElementPresent(REACT_TABLE) + DealersPage checkTable(); + + @Click(REACT_TABLE_LINK_ICON) + DealersDetailPage clickFirstDealer(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/LoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/LoginPage.java new file mode 100644 index 0000000..c71343a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/LoginPage.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.auto.smartauto.setman; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.SmartAutoFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.auto.smartauto.setman.LoginPage.*; + +@Wait(value = {LOGO}, waitSecondsForElement = 40) +public interface LoginPage extends SmartAutoFlow { + + String USERNAME_INPUT = "//input[@type='text']"; + String PASSWORD_INPUT = "//input[@type='password']"; + String LOGIN_BUTTON = "//button[@type='submit']"; + String UNAUTHORIZED_ACCESS = "//div[contains(text(), '403')]"; + String LOGOUT = "//span[contains(@class, 'logout')]"; + String LOGO = "//img[contains(@alt, 'MONETA Auto company logo')]"; + + @TypeInto(value=USERNAME_INPUT) + LoginPage typeUsername(String userName); + + @TypeInto(PASSWORD_INPUT) + LoginPage typePassword(String password); + + @Click(LOGIN_BUTTON) + LoginPage clickLoginToFail(); + + @Wait(value = UNAUTHORIZED_ACCESS, until = Until.VISIBLE) + @CheckElementPresent(UNAUTHORIZED_ACCESS) + LoginPage checkUnauthorizedAccess(); + + @Click(LOGIN_BUTTON) + MainPage clickLogin(); + + @Click(LOGOUT) + LoginPage logout(); + + + @CustomAction + default LoginPage logoutIfNecessary(Harness harness) { + String url = harness.getConfig("selenium.grid.shared.url"); + if (url == null) { + logout(); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/MainPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/MainPage.java new file mode 100644 index 0000000..6be55ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/MainPage.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.auto.smartauto.setman; + +import cz.moneta.test.dsl.auto.smartauto.SmartAutoFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +public interface MainPage extends SmartAutoFlow { + + String MENU_PARTNERS = "(//li[contains(text(), 'Partneři')])"; + String SUBMENU_ACQUISITION_PLACES = "(//div[contains(text(), 'Pořizovací místa')])"; + String SUBMENU_OPERATORS = "(//div[contains(text(), 'Aktivní operátoři')])"; + String SUBMENU_NEW_OPERATORS = "(//div[contains(text(), 'Noví operátoři')])"; + String SUBMENU_NEW_DEALERS = "(//div[contains(text(), 'Noví prodejci')])"; + String SUBMENU_DEALERS = "(//div[contains(text(), 'Prodejci')])"; + String SUBMENU_EXT_PARTNERS = "(//div[contains(text(), 'Externí partneři')])"; + String MENU_PRODUCTS = "(//li[contains(text(), 'Produkty')])"; + String MENU_INSURANCE = "(//li[contains(text(), 'Pojištění')])"; + String MENU_DOCUMENTS = "(//li[contains(text(), 'Dokladovost')])"; + String MENU_OTHERS = "(//li[contains(text(), 'Ostatní')])"; + + + @CheckElementPresent(MENU_PARTNERS) + MainPage checkMenuPartners(); + + @CheckElementPresent(MENU_PRODUCTS) + MainPage checkMenuProducts(); + + @CheckElementPresent(MENU_INSURANCE) + MainPage checkMenuInsurance(); + + @CheckElementPresent(MENU_DOCUMENTS) + MainPage checkMenuDocuments(); + + @CheckElementPresent(MENU_OTHERS) + MainPage checkMenuOthers(); + + @Click(value = MENU_PARTNERS, andWait = @Wait(value = {SUBMENU_DEALERS, SUBMENU_NEW_DEALERS, SUBMENU_ACQUISITION_PLACES, SUBMENU_EXT_PARTNERS, SUBMENU_NEW_OPERATORS, SUBMENU_OPERATORS}, until = Until.VISIBLE)) + MainPage clickMenuPartners(); + + @Click(value = SUBMENU_NEW_DEALERS, jsClick = true) + NewDealersPage clickNewDealers(); + + @Click(value = SUBMENU_DEALERS, jsClick = true) + DealersPage clickDealers(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/NewDealersPage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/NewDealersPage.java new file mode 100644 index 0000000..d83ef7c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/NewDealersPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.auto.smartauto.setman; + +import cz.moneta.test.dsl.auto.smartauto.SmartAutoFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; + +public interface NewDealersPage extends SmartAutoFlow { + + String HEADING_NEW_DEALERS = "(//h1[contains(text(), 'Rozpracovaní prodejci')])"; + + @CheckElementPresent(HEADING_NEW_DEALERS) + NewDealersPage checkHeadingNewDealers(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/SmartAutoSetman.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/SmartAutoSetman.java new file mode 100644 index 0000000..99028c1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/setman/SmartAutoSetman.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.auto.smartauto.setman; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.smartauto.SmartAutoSetmanEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class SmartAutoSetman { + + private final Harness harness; + + public SmartAutoSetman(Harness harness) { + this.harness = harness; + } + + public LoginPage openLoginPage() { + SmartAutoSetmanEndpoint smartAutoSetmanEndpoint = harness.getEndpoint(SmartAutoSetmanEndpoint.class); + smartAutoSetmanEndpoint.openApplication(); + return Builders.newWebFlowBuilder(LoginPage.class, smartAutoSetmanEndpoint, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/AccidentInsurance.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/AccidentInsurance.java new file mode 100644 index 0000000..59a3275 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/AccidentInsurance.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum AccidentInsurance implements DynamicPathPart { + CESKA_POJISTOVNA("Česká pojišťovna"), + NO_INSURANCE("Bez pojištění"), + INDIVIDUAL("Individuálně sjednané"); + + private final String accidentInsurance; + + AccidentInsurance(String accidentInsurance) { + this.accidentInsurance = accidentInsurance; + } + + @Override + public String getValue() { + return accidentInsurance; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Address.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Address.java new file mode 100644 index 0000000..a06b805 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Address.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Address implements DynamicPathPart { + BRANICKA("Branická"); + + private final String address; + + Address(String address) { + this.address = address; + } + + @Override + public String getValue() { + return address; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/BankCode.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/BankCode.java new file mode 100644 index 0000000..ae42d47 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/BankCode.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum BankCode implements DynamicPathPart { + KOMERCNI_BANKA("0100 Komerční banka, a.s."); + + private final String bankCode; + + BankCode(String bankCode) { + this.bankCode = bankCode; + } + + @Override + public String getValue() { + return bankCode; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Benefit.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Benefit.java new file mode 100644 index 0000000..c76c640 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Benefit.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Benefit implements DynamicPathPart { + AUTORADIO("Autorádio"); + + private final String benefit; + + Benefit(String benefit) { + this.benefit = benefit; + } + + @Override + public String getValue() { + return benefit; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Birthdate.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Birthdate.java new file mode 100644 index 0000000..4c91180 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Birthdate.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Birthdate implements DynamicPathPart { + DEFAULT_BIRTHDATE_WOMAN("19.09.1987"), + DEFAULT_BIRTHDATE_MAN("20.09.1987"); + + private final String birthdate; + + Birthdate(String birthdate) { + this.birthdate = birthdate; + } + + @Override + public String getValue() { + return birthdate; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Brand.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Brand.java new file mode 100644 index 0000000..469bea9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Brand.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Brand implements DynamicPathPart { + SKODA("Škoda"), + FIAT("Fiat"), + AGADOS("Agados"), + HARLEY("Harley Davidson"), + JCB("JCB"), + DETHLEFFS("Dethleffs"); + + private final String brand; + + Brand(String brand) { + this.brand = brand; + } + + @Override + public String getValue() { + return brand; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CalculationData.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CalculationData.java new file mode 100644 index 0000000..7c52cc0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CalculationData.java @@ -0,0 +1,134 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import lombok.Getter; + +@Getter +public class CalculationData { + private Customer customer; + private Category category; + private Brand brand; + private Model model; + private FilterFuel fuel; + private String volume; + private String power; + private String weight; + private int price; + private String vin; + private Vat vat; + private Usage usage; + private String month; + private Year year; + private Product product; + private Group group; + private PrGroup prGroup; + private PrClass prClass; + private Subsidy subsidy; + private ItemType itemType; + private int firstPayment; + + public CalculationData setCustomer(Customer customer) { + this.customer = customer; + return this; + } + + public CalculationData setCategory(Category category) { + this.category = category; + return this; + } + + public CalculationData setFirstPayment(int firstPayment) { + this.firstPayment = firstPayment; + return this; + } + + public CalculationData setBrand(Brand brand) { + this.brand = brand; + return this; + } + + public CalculationData setModel(Model model) { + this.model = model; + return this; + } + + public CalculationData setPrice(int price) { + this.price = price; + return this; + } + + public CalculationData setVin(String vin) { + this.vin = vin; + return this; + } + + public CalculationData setVat(Vat vat) { + this.vat = vat; + return this; + } + + public CalculationData setUsage(Usage usage) { + this.usage = usage; + return this; + } + + public CalculationData setMonth(String month) { + this.month = month; + return this; + } + + public CalculationData setSubsidy(Subsidy subsidy) { + this.subsidy = subsidy; + return this; + } + + public CalculationData setYear(Year year) { + this.year = year; + return this; + } + + public CalculationData setProduct(Product product) { + this.product = product; + return this; + } + + public CalculationData setGroup(Group group) { + this.group = group; + return this; + } + + public CalculationData setPrClass(PrClass prClass) { + this.prClass = prClass; + return this; + } + + public CalculationData setPrGroup(PrGroup prGroup) { + this.prGroup = prGroup; + return this; + } + + public CalculationData setItemType(ItemType itemType) { + this.itemType = itemType; + return this; + } + + public CalculationData setFuel(FilterFuel fuel) { + this.fuel = fuel; + return this; + } + + public CalculationData setVolume(String volume) { + this.volume = volume; + return this; + } + + public CalculationData setPower(String power) { + this.power = power; + return this; + } + + public CalculationData setWeight(String weight) { + this.weight = weight; + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CalendarAccessor.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CalendarAccessor.java new file mode 100644 index 0000000..7f7beb8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CalendarAccessor.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +public interface CalendarAccessor { + String DATE_FROM_MONTH_DEFAULT = "(//select[@class='flatpickr-monthDropdown-months'])[1]/option[@class='flatpickr-monthDropdown-month' and @value=\"%s\"]"; + String DATE_TO_MONTH_DEFAULT = "(//select[@class='flatpickr-monthDropdown-months'])[2]/option[@class='flatpickr-monthDropdown-month' and @value=\"%s\"]"; + String DATE_FROM_DAY_DEFAULT = "(//div[@class='dayContainer'])[1]/span[text() = \"%s\"][1]"; + String DATE_TO_DAY_DEFAULT = "(//div[@class='dayContainer'])[2]/span[text() = \"%s\"][1]"; + String FROM_DATE_YEAR_FIELD= "(//input[@class='numInput cur-year'])[1]"; + String DATE_FROM_MONTH = "(//select[@class='flatpickr-monthDropdown-months'])[1]"; + String DATE_TO_MONTH = "(//select[@class='flatpickr-monthDropdown-months'])[2]"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Category.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Category.java new file mode 100644 index 0000000..08910d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Category.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Category implements DynamicPathPart { + VEHICLES("prCategory1"), + TECHNOLOGY("prCategory2"), + AGRO("prCategory3"); + + private final String category; + + Category(String category) { + this.category = category; + } + + @Override + public String getValue() { + return category; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ChooseInsurance.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ChooseInsurance.java new file mode 100644 index 0000000..e574c4a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ChooseInsurance.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import lombok.Getter; + +public class ChooseInsurance { + public InsuranceGroup ig; + + @Getter + public String type; + + public ChooseInsurance setType(String type) { + this.type = type; + return this; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CommonElements.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CommonElements.java new file mode 100644 index 0000000..b9f6d7b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CommonElements.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +public interface CommonElements { + String LOADER_DIV = "//div[contains(@class, 'loader')]"; + String MODAL = "//div[@role='dialog']"; + String COLUMNS_BUTTON = "(//span[contains(text(), 'Sloupce')])"; + String REACT_TABLE = "//div[contains(@class, 'card')]"; + String REACT_TABLE_LINK_ICON = "//span[contains(@class, 'c-icon c-icon--arrowRight')]"; + String SAVE_CALCULATION_BUTTON = "//span[contains(text(), 'Uložit')]"; + String SUCCESSFUL_SAVED_CALCULATION_MESSAGE = "//div[contains(text(), 'Kalkulace byla úspěšně uložena.')]"; + + // Shared menu for DF + String DF_MENU_DASHBOARD = "(//span[contains(text(), 'Přehledy')])[1]"; + String DF_MENU_FINANCING = "(//span[contains(text(), 'Financování')])[1]"; + String DF_MENU_INVOICES = "(//span[contains(text(), 'Faktury')])[1]"; + String DF_MENU_MESSAGES = "(//span[contains(text(), 'Zprávy')])[1]"; + + // Shared menu for CR + String CR_MENU_FOR_BILLING = "(//span[contains(text(), 'K fakturaci')])[1]"; + String CR_MENU_INVOICES = "(//span[contains(text(), 'Faktury')])[1]"; + String CR_MENU_COMMISSIONS = "(//span[contains(text(), 'Provize')])[1]"; + String CR_MENU_CREDIT_NOTES = "(//span[contains(text(), 'Dobropisy')])[1]"; + + // Shared buttons for DF and CR + String ACTIVE_FILTERS_BUTTON = "//span[contains(text(), 'Aktivních filtrů')]"; + String SORT_ACTIVITY_BUTTON = "//span[contains(text(), 'Třídění aktivní')]"; + String EXPORT_BUTTON = "//span[contains(text(), 'Export')]"; + String PREVIOUS_PAGE_BUTTON = "//button[contains(text(), 'Předchozí strana')]"; + String NEXT_PAGE_BUTTON = "//button[contains(text(), 'Další strana')]"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Company.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Company.java new file mode 100644 index 0000000..2e257df --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Company.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Company implements DynamicPathPart { + AVAST("AVAST s.r.o."), + ELTODO("ELTODO OSVĚTLENÍ, s.r.o."); + + private final String company; + + Company(String company) { + this.company = company; + } + + @Override + public String getValue() { + return company; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CompanyData.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CompanyData.java new file mode 100644 index 0000000..9d4cdc2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CompanyData.java @@ -0,0 +1,86 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import lombok.Getter; + +@Getter +public class CompanyData { + private Company company; + private Address companyContactAddress; + private String companyPhoneNumber; + private String companyOtherPhoneNumber; + private String companyEmail; + private String companyName; + private String companyStreet; + private int companyResidenceNumber; + private int companyOrientationNumber; + private int companyZipCode; + private String companyCity; + private Nationality companyCountry; + private Ico ico; + + public CompanyData setCompany(Company company) { + this.company = company; + return this; + } + + public CompanyData setCompanyContactAddress(Address companyContactAddress) { + this.companyContactAddress = companyContactAddress; + return this; + } + + public CompanyData setCompanyPhoneNumber(String companyPhoneNumber) { + this.companyPhoneNumber = companyPhoneNumber; + return this; + } + + public CompanyData setCompanyOtherPhoneNumber(String companyOtherPhoneNumber) { + this.companyOtherPhoneNumber = companyOtherPhoneNumber; + return this; + } + + public CompanyData setCompanyEmail(String companyEmail) { + this.companyEmail = companyEmail; + return this; + } + + + public CompanyData setCompanyName(String companyName) { + this.companyName = companyName; + return this; + } + + public CompanyData setCompanyStreet(String companyStreet) { + this.companyStreet = companyStreet; + return this; + } + + public CompanyData setCompanyResidenceNumber(int companyResidenceNumber) { + this.companyResidenceNumber = companyResidenceNumber; + return this; + } + + public CompanyData setCompanyOrientationNumber(int companyOrientationNumber) { + this.companyOrientationNumber = companyOrientationNumber; + return this; + } + + public CompanyData setCompanyZipCode(int companyZipCode) { + this.companyZipCode = companyZipCode; + return this; + } + + public CompanyData setCompanyCity(String companyCity) { + this.companyCity = companyCity; + return this; + } + + public CompanyData setCompanyCountry(Nationality companyCountry) { + this.companyCountry = companyCountry; + return this; + } + + public CompanyData setIco(Ico ico) { + this.ico = ico; + return this; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CompanyRole.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CompanyRole.java new file mode 100644 index 0000000..0977d06 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/CompanyRole.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum CompanyRole implements DynamicPathPart { + OWNER("Majitel"), + SECRETARY("Jednatel"); + + private final String companyRole; + + CompanyRole(String companyRole) { + this.companyRole = companyRole; + } + + @Override + public String getValue() { + return companyRole; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ContactData.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ContactData.java new file mode 100644 index 0000000..37ea968 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ContactData.java @@ -0,0 +1,67 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import lombok.Getter; + +@Getter +public class ContactData { + private String name; + private String surname; + private String birthplace; + private String titleBefore; + private String titleAfter; + private String phoneNumber; + private String otherPhoneNumber; + private String email; + private Address address; + private Address contactAddress; + + public ContactData setName(String name) { + this.name = name; + return this; + } + + public ContactData setSurname(String surname) { + this.surname = surname; + return this; + } + + public ContactData setTitleBefore(String titleBefore) { + this.titleBefore = titleBefore; + return this; + } + + public ContactData setTitleAfter(String titleAfter) { + this.titleAfter = titleAfter; + return this; + } + + public ContactData setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + return this; + } + + public ContactData setOtherPhoneNumber(String otherPhoneNumber) { + this.otherPhoneNumber = otherPhoneNumber; + return this; + } + + public ContactData setEmail(String email) { + this.email = email; + return this; + } + + public ContactData setAddress(Address address) { + this.address = address; + return this; + } + + public ContactData setBirthplace(String birthplace) { + this.birthplace = birthplace; + return this; + } + + public ContactData setContactAddress(Address contactAddress) { + this.contactAddress = contactAddress; + return this; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Country.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Country.java new file mode 100644 index 0000000..a30bff2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Country.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Country implements DynamicPathPart { + CZECH_REPUBLIC("Česká republika"), + SLOVAKIA("Slovensko"); + + private final String country; + + Country(String country) { + this.country = country; + } + + @Override + public String getValue() { + return country; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Customer.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Customer.java new file mode 100644 index 0000000..36a1c0f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Customer.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Customer implements DynamicPathPart { + CONSUMER("Spotřebitel"), + BUSINESSMAN_WITHOUT_VAT("Podnikatel - neplátce DPH"), + BUSINESSMAN_WITH_VAT("Podnikatel - plátce DPH"); + + private final String customer; + + Customer(String customer) { + this.customer = customer; + } + + @Override + public String getValue() { + return customer; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/DateData.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/DateData.java new file mode 100644 index 0000000..e7fa60a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/DateData.java @@ -0,0 +1,5 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +public record DateData(Year year, Month month, Day day) { + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Day.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Day.java new file mode 100644 index 0000000..716d01a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Day.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public class Day implements DynamicPathPart { + private final int value; + + public Day(int value) { + this.value = value; + } + + @Override + public String getValue() { + return Integer.toString(value); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/DealerIsOwner.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/DealerIsOwner.java new file mode 100644 index 0000000..315ccd2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/DealerIsOwner.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum DealerIsOwner implements DynamicPathPart { + YES("Ano"), + NO("Ne"); + + private final String dealerIsOwner; + + DealerIsOwner(String dealerIsOwner) { + this.dealerIsOwner = dealerIsOwner; + } + + @Override + public String getValue() { + return dealerIsOwner; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Education.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Education.java new file mode 100644 index 0000000..2010e0f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Education.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Education implements DynamicPathPart { + COLLEGE("Vysokoškolské"), + HIGHSCHOOL("Střední všeobecné"); + + private final String education; + + Education(String education) { + this.education = education; + } + + @Override + public String getValue() { + return education; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Employment.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Employment.java new file mode 100644 index 0000000..e62b38f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Employment.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Employment implements DynamicPathPart { + INDEFINITE_PERIOD("Na dobu neurčitou"), + RETIREMENT("Důchodce"), + CERTAIN_TIME("Na dobu určitou"); + + private final String employment; + + Employment(String employment) { + this.employment = employment; + } + + @Override + public String getValue() { + return employment; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/EngineCapacityInterval.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/EngineCapacityInterval.java new file mode 100644 index 0000000..c611f2a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/EngineCapacityInterval.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum EngineCapacityInterval implements DynamicPathPart { + _0_TO_1000("0 - 1000"), + _51_TO_350("51 - 350"), + _351_TO_500("351 - 500"), + _501("501"), + _1351_to_1400("1351 - 1400"), + _1851_to_2500("1851 - 2500"), + _2501("2501"); + + private final String interval; + + EngineCapacityInterval(String interval) { + this.interval = interval; + } + + @Override + public String getValue() { + return interval; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterBodywork.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterBodywork.java new file mode 100644 index 0000000..f915c5b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterBodywork.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum FilterBodywork implements DynamicPathPart { + COMBI("kombi"), + OTHERS("ostatní"); + + private final String filterBodyWork; + + FilterBodywork(String filterBodyWork) { + this.filterBodyWork = filterBodyWork; + } + + @Override + public String getValue() { + return filterBodyWork; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterDoors.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterDoors.java new file mode 100644 index 0000000..52ee51c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterDoors.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum FilterDoors implements DynamicPathPart { + ZERO("0"), + ONE_TO_THREE("1-3"), + FOUR_TO_FIVE("4-5"); + + private final String filterDoors; + + FilterDoors(String filterDoors) { + this.filterDoors = filterDoors; + } + + @Override + public String getValue() { + return filterDoors; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterFuel.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterFuel.java new file mode 100644 index 0000000..9d40f4c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterFuel.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum FilterFuel implements DynamicPathPart { + PETROL("benzín"), + OIL("nafta"), + WITHOUT_FUEL("bez paliva"); + + private final String filterFuel; + + FilterFuel(String filterFuel) { + this.filterFuel = filterFuel; + } + + @Override + public String getValue() { + return filterFuel; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterGearbox.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterGearbox.java new file mode 100644 index 0000000..689fe23 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/FilterGearbox.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum FilterGearbox implements DynamicPathPart { + MANUAL("manuální"), + AUTOMATIC("automatická"); + + private final String filterGearbox; + + FilterGearbox(String filterGearbox) { + this.filterGearbox = filterGearbox; + } + + @Override + public String getValue() { + return filterGearbox; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Group.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Group.java new file mode 100644 index 0000000..582e3ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Group.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Group implements DynamicPathPart { + M1("M1 - motorová vozidla pro přepravu do 9 osob a do 3,5t"), + LC("LC - motorová vozidla se 2 koly nad 50 ccm"), + O1("O1 - přípojná vozidla do 0,7t"), + T("T - kolové traktory"), + CUTTER("Řezačka"), + WORK_MACHINES("Pracovní stroje samochodné"); + + private final String group; + + Group(String group) { + this.group = group; + } + + @Override + public String getValue() { + return group; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/HousingKind.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/HousingKind.java new file mode 100644 index 0000000..c6c9ebd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/HousingKind.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum HousingKind implements DynamicPathPart { + OWN_FLAT("Byt vlastní"), + RENTED_FLAT("Byt pronajatý"); + + private final String housingKind; + + HousingKind(String housingKind) { + this.housingKind = housingKind; + } + + @Override + public String getValue() { + return housingKind; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Ico.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Ico.java new file mode 100644 index 0000000..00f1f2e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Ico.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Ico implements DynamicPathPart { + AVAST("25070339"), + ELTODO("25751018"); + + private final String ico; + + Ico(String ico) { + this.ico = ico; + } + + @Override + public String getValue() { + return ico; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/IdentificationData.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/IdentificationData.java new file mode 100644 index 0000000..6b3bc8c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/IdentificationData.java @@ -0,0 +1,85 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import lombok.Getter; + +@Getter +public class IdentificationData { + private Nationality nationality; + private Pin pin; + private Birthdate birthdate; + private String birthplace; + private IdentificationType identificationType; + private String identificationIdNumber; + private String identificationIdValidity; + private IdentificationType secondIdentificationType; + private String secondIdentificationIdNumber; + private String secondIdentificationIdValidity; + private StayType stayType; + private CompanyRole companyRole; + private Country country; + + public IdentificationData setNationality(Nationality nationality) { + this.nationality = nationality; + return this; + } + + public IdentificationData setPin(Pin pin) { + this.pin = pin; + return this; + } + + public IdentificationData setBirthdate(Birthdate birthdate) { + this.birthdate = birthdate; + return this; + } + + public IdentificationData setBirthplace(String birthplace) { + this.birthplace = birthplace; + return this; + } + + public IdentificationData setIdentificationType(IdentificationType identificationType) { + this.identificationType = identificationType; + return this; + } + + public IdentificationData setIdentificationIdNumber(String identificationIdNumber) { + this.identificationIdNumber = identificationIdNumber; + return this; + } + + public IdentificationData setIdentificationIdValidity(String identificationIdValidity) { + this.identificationIdValidity = identificationIdValidity; + return this; + } + + public IdentificationData setSecondIdentificationType(IdentificationType secondIdentificationType) { + this.secondIdentificationType = secondIdentificationType; + return this; + } + + public IdentificationData setSecondIdentificationIdNumber(String secondIdentificationIdNumber) { + this.secondIdentificationIdNumber = secondIdentificationIdNumber; + return this; + } + + public IdentificationData setSecondIdentificationIdValidity(String secondIdentificationIdValidity) { + this.secondIdentificationIdValidity = secondIdentificationIdValidity; + return this; + } + + public IdentificationData setStayType(StayType stayType) { + this.stayType = stayType; + return this; + } + + public IdentificationData setCompanyRole(CompanyRole companyRole) { + this.companyRole = companyRole; + return this; + } + + public IdentificationData setCountry(Country country) { + this.country = country; + return this; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/IdentificationType.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/IdentificationType.java new file mode 100644 index 0000000..6d2f5c1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/IdentificationType.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum IdentificationType implements DynamicPathPart { + IDENTITY_CARD("Občanský průkaz"), + DRIVER_LICENSE("Řidičský průkaz"); + + private final String identificationType; + + IdentificationType(String identificationType) { + this.identificationType = identificationType; + } + + @Override + public String getValue() { + return identificationType; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ImportVehicle.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ImportVehicle.java new file mode 100644 index 0000000..44fa068 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ImportVehicle.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum ImportVehicle implements DynamicPathPart { + YES("Ano"), + NO("Ne"); + + private final String importVehicle; + + ImportVehicle(String importVehicle) { + this.importVehicle = importVehicle; + } + + @Override + public String getValue() { + return importVehicle; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Insurance.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Insurance.java new file mode 100644 index 0000000..7ef64ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Insurance.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Insurance implements DynamicPathPart { + CESKA_POJISTOVNA("Česká pojišťovna"), + STANDARD_AGRO("Generali Česká pojišťovna a.s. - STANDARD AGRO"), + NO_INSURANCE("Bez povinného ručení"), + INDIVIDUAL("Individuálně sjednané"); + + private final String insurance; + + Insurance(String insurance) { + this.insurance = insurance; + } + + @Override + public String getValue() { + return insurance; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/InsuranceAndBenefitData.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/InsuranceAndBenefitData.java new file mode 100644 index 0000000..c89782a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/InsuranceAndBenefitData.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import org.junit.jupiter.api.BeforeEach; + +public class InsuranceAndBenefitData { + + protected Insurance insurance; + protected AccidentInsurance accidentInsurance; + protected Benefit benefit; + protected EngineCapacityInterval interval; + + @BeforeEach + public void prepareInsuranceAndBenefitData() { + insurance = Insurance.CESKA_POJISTOVNA; + accidentInsurance = AccidentInsurance.CESKA_POJISTOVNA; + benefit = Benefit.AUTORADIO; + interval = EngineCapacityInterval._0_TO_1000; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/InsuranceGroup.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/InsuranceGroup.java new file mode 100644 index 0000000..6e88ece --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/InsuranceGroup.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum InsuranceGroup implements DynamicPathPart { + UNIQA("Uniqa"), + GENERALI("GČP"); + + private final String insuranceGroup; + + InsuranceGroup(String insuranceGroup) { + this.insuranceGroup = insuranceGroup; + } + + @Override + public String getValue() { + return insuranceGroup; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ItemType.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ItemType.java new file mode 100644 index 0000000..42ad057 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/ItemType.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum ItemType implements DynamicPathPart { + TRACTOR("Kolový traktor"); + + private final String itemType; + + ItemType(String itemType) { + this.itemType = itemType; + } + + @Override + public String getValue() { + return itemType; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/MaritalStatus.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/MaritalStatus.java new file mode 100644 index 0000000..7a241a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/MaritalStatus.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum MaritalStatus implements DynamicPathPart { + SINGLE("Svobodný/ná"); + + private final String maritalStatus; + + MaritalStatus(String maritalStatus) { + this.maritalStatus = maritalStatus; + } + + @Override + public String getValue() { + return maritalStatus; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Model.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Model.java new file mode 100644 index 0000000..a84012c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Model.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Model implements DynamicPathPart { + FABIA("Fabia"), + FABIA_SPEC("FABIA"), + BRAVO("Bravo"), + HANDY("HANDY"), + SOFTAIL("Softail"), + SOFTAIL_BREAKOUT("Breakout"), + MODEL("Nakladač"), + DUCATO("Ducato"), + AVANTGARDE("Avantgarde"); + + private final String model; + + Model(String model) { + this.model = model; + } + + @Override + public String getValue() { + return model; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Month.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Month.java new file mode 100644 index 0000000..531a29c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Month.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public class Month implements DynamicPathPart { + private final int value; + + public Month(int value) { + this.value = value; + } + + @Override + public String getValue() { + return Integer.toString(value); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Nationality.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Nationality.java new file mode 100644 index 0000000..f27bcb0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Nationality.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Nationality implements DynamicPathPart { + CZECH_REPUBLIC("Česká republika"), + SLOVAKIA("Slovensko"); + + private final String nationality; + + Nationality(String nationality) { + this.nationality = nationality; + } + + @Override + public String getValue() { + return nationality; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Pin.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Pin.java new file mode 100644 index 0000000..8348829 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Pin.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Pin implements DynamicPathPart { + DEFAULT_PIN_WOMAN("8759190198"), + DEFAULT_PIN_MAN("8709200192"); + + private final String pin; + + Pin(String pin) { + this.pin = pin; + } + + @Override + public String getValue() { + return pin; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/PrClass.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/PrClass.java new file mode 100644 index 0000000..ddac9ba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/PrClass.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum PrClass implements DynamicPathPart { + CARNEW("carClass1"), + CARUSED("carClass2"), + AGRONEW("carClass5"), + AGROUSED("carClass6"); + + private final String prClass; + + PrClass(String prClass) { + this.prClass = prClass; + } + + @Override + public String getValue() { + return prClass; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/PrGroup.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/PrGroup.java new file mode 100644 index 0000000..b418edc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/PrGroup.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum PrGroup implements DynamicPathPart { + CAR("prGroup1"), + MOTORCYCLE("prGroup2"), + TRAILER("prGroup3"), + AGROTP("prGroup5"), + AGROWITHOUTTP("prGroup6"); + + private final String prGroup; + + PrGroup(String prGroup) { + this.prGroup = prGroup; + } + + @Override + public String getValue() { + return prGroup; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Product.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Product.java new file mode 100644 index 0000000..92ec219 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Product.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Product implements DynamicPathPart { + AUTO_CREDIT_STANDARD("standard (úvěr) - AUTOMATY"), + AUTO_CREDIT_C2C("C2C - AUTOMATY"), + AUTO_CREDIT_IC_C2C("C2C - AUTOMATY"), + AUTO_CREDIT_IC_STANDARD("standard (úvěr) - AUTOMATY"), + AUTO_CREDIT_BACK_LOAN("zpětný úvěr - AUTOMATY"), + MOTO_CREDIT_STANDARD("standard (úvěr) - AUTOMATY"), + MOTO_CREDIT_C2C("C2C - AUTOMATY"), + MOTO_CREDIT_BACK_LOAN("zpětný úvěr - AUTOMATY"), + AGRO_CREDIT("standard Agro - AUTOMATY"), + AGRO_CREDIT_YOUNG_FARMER("standard Agro - AUTOMATY"), + AGRO_WITHOUT_TP("standard Agro - AUTOMATY"), + AGRO_WITHOUT_TP_YOUNG_FARMER("standard Agro - AUTOMATY"), + AGRO_WITHTP_YOUNG_FARMER_C2C("C2C Agro - AUTOMATY"); + + private final String product; + + Product(String product) { + this.product = product; + } + + @Override + public String getValue() { + return product; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/StayType.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/StayType.java new file mode 100644 index 0000000..983437d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/StayType.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum StayType implements DynamicPathPart { + PERMANENT("Trvalý pobyt"); + + private final String stayType; + + StayType(String stayType) { + this.stayType = stayType; + } + + @Override + public String getValue() { + return stayType; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Subsidy.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Subsidy.java new file mode 100644 index 0000000..e2bd9b0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Subsidy.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Subsidy implements DynamicPathPart { + ELEKTROMOBILITA("Záruční program Elektromobilita"), + PGRLF("Podpůrný a garanční rolnický a lesnický fond"), + SZIF("Státní zemědělský intervenční fond"), + NPZP("Národní program Životní prostředí"), + YOUNG_FARMER("Začínající podnikatel PGRLF)"); + + private final String subsidy; + + Subsidy(String subsidy) { + this.subsidy = subsidy; + } + + @Override + public String getValue() { + return subsidy; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Usage.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Usage.java new file mode 100644 index 0000000..771f6bd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Usage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Usage implements DynamicPathPart { + OTHERS("ostatní"), + CARAVAN("obytný vůz"); + + private final String usage; + + Usage(String usage) { + this.usage = usage; + } + + @Override + public String getValue() { + return usage; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Vat.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Vat.java new file mode 100644 index 0000000..a5f7cd7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Vat.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Vat implements DynamicPathPart { + YES("Ano"), + NO("Ne"); + + private final String vat; + + Vat(String vat) { + this.vat = vat; + } + + @Override + public String getValue() { + return vat; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/VehicleData.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/VehicleData.java new file mode 100644 index 0000000..c02160b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/VehicleData.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import lombok.Getter; + +@Getter +public class VehicleData { + private String vin; + + public VehicleData setVin(String vin) { + this.vin = vin; + return this; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Year.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Year.java new file mode 100644 index 0000000..7911306 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/shared/Year.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.auto.smartauto.shared; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Year implements DynamicPathPart { + _2012("2012"), + _2014("2014"), + _2019("2019"), + _2020("2020"), + _2021("2021"), + _2022("2022"), + _2023("2023"), + _2024("2024"), + _2025("2025"); + + private final String year; + + Year(String year) { + this.year = year; + } + + @Override + public String getValue() { + return year; + } + + public static Year getPreviousYear() { + return Year.valueOf("_" + String.valueOf(java.time.Year.now().getValue() - 1)); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/util/MonthUtil.java b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/util/MonthUtil.java new file mode 100644 index 0000000..ba0c221 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/auto/smartauto/util/MonthUtil.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.auto.smartauto.util; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +import java.util.Calendar; +import java.util.Locale; + +import static org.apache.commons.lang3.StringUtils.capitalize; + +public class MonthUtil implements DynamicPathPart { + private final String month; + + public MonthUtil(String month) { + this.month = month; + } + + public static String getCurrentMonth() { + Calendar cal = Calendar.getInstance(); + Locale loc = new Locale("cs", "CZ"); + return capitalize(cal.getDisplayName(Calendar.MONTH, Calendar.LONG_STANDALONE, loc)); + } + + @Override + public String getValue() { + return month; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/broadcom/Broadcom.java b/tests/src/main/java/cz/moneta/test/dsl/broadcom/Broadcom.java new file mode 100644 index 0000000..8c92218 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/broadcom/Broadcom.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.broadcom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.broadcom.BroadcomEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class Broadcom { + + private final Harness harness; + + public Broadcom(Harness harness) { + this.harness = harness; + } + + public BroadcomLoginPage openBroadcomLoginPage() { + BroadcomEndpoint broadcomEndpoint = harness.getEndpoint(BroadcomEndpoint.class); + broadcomEndpoint.openApplication(); + return Builders.newWebFlowBuilder(BroadcomLoginPage.class, broadcomEndpoint, harness); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/broadcom/BroadcomHomePage.java b/tests/src/main/java/cz/moneta/test/dsl/broadcom/BroadcomHomePage.java new file mode 100644 index 0000000..fb0ecc7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/broadcom/BroadcomHomePage.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.broadcom; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.broadcom.BroadcomEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface BroadcomHomePage extends WebFlow, StoreAccessor { + + String LEFT_MENU_FRAME = "//frame[@name='leftFrame']"; + String MAIN_MENU_FRAME = "//frame[@name='mainFrame']"; + String ALL_TRANSTACTIONS_LINK = "//a[text()='All Transactions']"; + String INPUT_FROM_YEAR = "//input[starts-with(@id, 'reportForm:j_id_1') and preceding-sibling::text()[1][contains(., 'Year')]]"; + String INPUT_FROM_MONTH = "//input[starts-with(@id, 'reportForm:j_id_1') and preceding-sibling::text()[1][contains(., 'Month')]]"; + String INPUT_FROM_DAY = "//input[starts-with(@id, 'reportForm:j_id_1') and preceding-sibling::text()[1][contains(., 'Day')]]"; + String INPUT_FROM_HOUR = "//input[starts-with(@id, 'reportForm:j_id_1') and preceding-sibling::text()[1][contains(., 'Hour')]]"; + String INPUT_FROM_MINUTE = "//input[starts-with(@id, 'reportForm:j_id_1') and preceding-sibling::text()[1][contains(., 'Min')]]"; + String INPUT_TO_YEAR = "//input[starts-with(@id, 'reportForm:j_id_2') and preceding-sibling::text()[1][contains(., 'Year')]]"; + String INPUT_TO_MONTH = "//input[starts-with(@id, 'reportForm:j_id_2') and preceding-sibling::text()[1][contains(., 'Month')]]"; + String INPUT_TO_DAY = "//input[starts-with(@id, 'reportForm:j_id_2') and preceding-sibling::text()[1][contains(., 'Day')]]"; + String INPUT_TO_HOUR = "//input[starts-with(@id, 'reportForm:j_id_2') and preceding-sibling::text()[1][contains(., 'Hour')]]"; + String INPUT_TO_MINUTE = "//input[starts-with(@id, 'reportForm:j_id_2') and preceding-sibling::text()[1][contains(., 'Min')]]"; + String EXPORT_BUTTON = "//input[@id='reportForm:btnExport']"; + + @CustomAction + default BroadcomHomePage switchFrameAndGoToAllTransactions() { + BroadcomEndpoint endpoint = getEndpoint(BroadcomEndpoint.class); + endpoint.switchToFrame(LEFT_MENU_FRAME); + endpoint.click(() -> ALL_TRANSTACTIONS_LINK); + endpoint.switchToDefaultContent(); + endpoint.switchToFrame(MAIN_MENU_FRAME); + endpoint.waitForElementsToLoad(10, EXPORT_BUTTON); + return null; + } + + @TypeInto(value = INPUT_FROM_YEAR, clear = true) + @TypeInto(value = INPUT_FROM_MONTH, clear = true) + @TypeInto(value = INPUT_FROM_DAY, clear = true) + @TypeInto(INPUT_FROM_HOUR) + @TypeInto(INPUT_FROM_MINUTE) + BroadcomHomePage fillFromDateTime(String year, String month, String day, String hour, String min); + + @TypeInto(value = INPUT_TO_YEAR, clear = true) + @TypeInto(value = INPUT_TO_MONTH, clear = true) + @TypeInto(value = INPUT_TO_DAY, clear = true) + @TypeInto(INPUT_TO_HOUR) + @TypeInto(INPUT_TO_MINUTE) + BroadcomHomePage fillToDateTime(String year, String month, String day, String hour, String min); + + @CustomAction + default BroadcomHomePage clickToExportAndDownloadFile(String dates) { + BroadcomEndpoint endpoint = getEndpoint(BroadcomEndpoint.class); + String expectedFileName = "AllTransactionsExtended_" + dates + ".csv"; + log("Starting download of file: {}", expectedFileName); + endpoint.click(() -> EXPORT_BUTTON); + endpoint.checkIfFileExists(expectedFileName, 180, null, false, true); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/broadcom/BroadcomLoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/broadcom/BroadcomLoginPage.java new file mode 100644 index 0000000..68c2b07 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/broadcom/BroadcomLoginPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.broadcom; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.broadcom.BroadcomLoginPage.USERNAME_INPUT; + +@Wait(USERNAME_INPUT) +public interface BroadcomLoginPage extends WebFlow { + String USERNAME_INPUT = "//input[@name='adminname']"; + String PASSWORD_INPUT = "//input[@name='password']"; + String LOGIN_BUTTON = "//input[@name='Submit']"; + + @TypeInto(value = USERNAME_INPUT, clear = true) + @TypeInto(value = PASSWORD_INPUT, clear = true) + @Click(LOGIN_BUTTON) + BroadcomHomePage loginWithUsernameAndPassword(String username, String password); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/BrokerPortal.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/BrokerPortal.java new file mode 100644 index 0000000..d1da0c7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/BrokerPortal.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.hypos.BrokerPortalEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class BrokerPortal { + + private final Harness harness; + + public BrokerPortal(Harness harness) { + this.harness = harness; + } + + public BrokerPortalLoginPage openLoginPage() { + BrokerPortalEndpoint brokerPortalEndpoint = harness.getEndpoint(BrokerPortalEndpoint.class); + brokerPortalEndpoint.openApplication(); + + return Builders.newWebFlowBuilder(BrokerPortalLoginPage.class, brokerPortalEndpoint, harness) + .acceptCookies(); + } + + public void closeLoginPage() { + harness.closeEndpoint(harness.getEndpoint(BrokerPortalEndpoint.class)); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/BrokerPortalHomePage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/BrokerPortalHomePage.java new file mode 100644 index 0000000..08894df --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/BrokerPortalHomePage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.brokerportal; + +import cz.moneta.test.dsl.brokerportal.components.Menu; +import cz.moneta.test.harness.endpoints.hypos.BrokerPortalEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.BrokerPortalHomePage.USER_PROFILE; + +@Wait(USER_PROFILE) +public interface BrokerPortalHomePage extends WebFlow, Menu { + String USER_PROFILE = "//button[@id = 'userProfile']"; + String NEW_VERSION_MODAL_CLOSE_BUTTON = "//h4[contains(text(),'Nová verze')]/../preceding-sibling::header/button"; + + @CheckElementPresent(USER_PROFILE) + BrokerPortalHomePage checkPresentUserProfile(); + + @CustomAction + default BrokerPortalHomePage closeNewVersionModal() { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + + if (endpoint.isElementPresent(NEW_VERSION_MODAL_CLOSE_BUTTON, Lookup.XPATH)) { + endpoint.click(() -> NEW_VERSION_MODAL_CLOSE_BUTTON); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/BrokerPortalLoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/BrokerPortalLoginPage.java new file mode 100644 index 0000000..6994547 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/BrokerPortalLoginPage.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.brokerportal; + +import cz.moneta.test.dsl.brokerportal.forgottenpassword.ForgottenPasswordPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.BrokerPortalEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.BrokerPortalLoginPage.LOGIN_INPUT; + +@Wait(LOGIN_INPUT) +public interface BrokerPortalLoginPage extends WebFlow, StoreAccessor { + String LOGIN_INPUT = "//input[@name='login']"; + String PASSWORD_INPUT = "//input[@name='password']"; + String LOGIN_BUTTON = "//button[@type='submit']"; + String FORGOTTEN_PASSWORD_BUTTON = "//a[@href='#/forgottenPassword']/button"; + String ACCEPT_COOKIES_BUTTON = "//button[@id='onetrust-accept-btn-handler']"; + + /** + * Clicking on accept cookies button. This condition is here because tab with accept cookies + * is showing up only on local computer, not on server. + * @return + */ + @CustomAction + default BrokerPortalLoginPage acceptCookies() { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + + if (endpoint.isElementPresent(ACCEPT_COOKIES_BUTTON, Lookup.XPATH)) { + endpoint.click(() -> ACCEPT_COOKIES_BUTTON); + } + return null; + } + + @TypeInto(LOGIN_INPUT) + BrokerPortalLoginPage fillLogin(String login); + + @TypeInto(PASSWORD_INPUT) + BrokerPortalLoginPage fillPassword(String password); + + @Click(LOGIN_BUTTON) + BrokerPortalHomePage clickLoginButton(); + + @Click(LOGIN_BUTTON) + BrokerPortalLoginPage clickLoginStayOnLoginPageButton(); + + @Click(FORGOTTEN_PASSWORD_BUTTON) + ForgottenPasswordPage clickForgottenPasswordButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/components/ApplicationSignModal.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/components/ApplicationSignModal.java new file mode 100644 index 0000000..63b1b2d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/components/ApplicationSignModal.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.brokerportal.components; + +import cz.moneta.test.dsl.brokerportal.contract.VictoryScreenPage; +import cz.moneta.test.dsl.brokerportal.contract.fullapplication.FullApplicationVictoryModal; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.components.ApplicationSignModal.SEND_SMS_BUTTON; + +@Wait(SEND_SMS_BUTTON) +public interface ApplicationSignModal extends WebFlow { + String SEND_SMS_BUTTON = "//button[@id = 'signModalSendSMS']"; + String SEND_NEW_SMS_BUTTON = "//button[@id = 'signModalSendNewCode']"; + String SEND_NEW_SMS_BUTTON_DISABLED = SEND_NEW_SMS_BUTTON + "[@disabled]"; + String SIGN_BUTTON = "//button[@id = 'signModalSendCode']"; + String SMS_CODE_INPUT = "//input[@name = 'code']"; + + @Click(value = SEND_SMS_BUTTON, andWait = @Wait(value = SMS_CODE_INPUT, until = Until.VISIBLE)) + ApplicationSignModal clickSendSmsButton(); + + @Click(value = SEND_NEW_SMS_BUTTON, andWait = @Wait(value = SEND_NEW_SMS_BUTTON_DISABLED, until = Until.GONE)) + ApplicationSignModal clickSendNewSmsButton(); + + @Click(SIGN_BUTTON) + VictoryScreenPage clickSignShortApplicationButton(); + + @Click(SIGN_BUTTON) + FullApplicationVictoryModal clickSignFullApplicationButton(); + + @TypeInto(SMS_CODE_INPUT) + ApplicationSignModal fillSmsCode(String smsCode); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/components/Menu.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/components/Menu.java new file mode 100644 index 0000000..62e7225 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/components/Menu.java @@ -0,0 +1,51 @@ +package cz.moneta.test.dsl.brokerportal.components; + +import cz.moneta.test.dsl.brokerportal.contract.CalculatorPage; +import cz.moneta.test.dsl.brokerportal.contract.ContractListPage; +import cz.moneta.test.dsl.brokerportal.enums.Product; +import cz.moneta.test.dsl.brokerportal.userprofile.UserProfilePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.BrokerPortalEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.components.Menu.PRODUCTS_BUTTON; + +@Wait(PRODUCTS_BUTTON) +public interface Menu extends StoreAccessor { + String PRODUCTS_BUTTON = "//button[@id='products']"; + String PRODUCT_BUTTON = "//button[@id='%s']"; + String BUSINESSES_BUTTON = "//button[@id='businesses']"; + String NEW_VERSION_DISABLE = "//header[@class='c-modal__header']/button"; + String USER_PROFILE_BUTTON = "//button[@id='userProfile']"; + String USER_PROFILE_SETTINGS_BUTTON = "//button[@id='settings']"; + + @Click(PRODUCTS_BUTTON) + Menu clickProductsButton(); + + @Click(PRODUCT_BUTTON) + CalculatorPage clickProductMortgageButton(Product product); + + @Click(BUSINESSES_BUTTON) + ContractListPage clickContracts(); + + @Click(USER_PROFILE_BUTTON) + Menu clickUserProfileButton(); + + @Click(USER_PROFILE_SETTINGS_BUTTON) + UserProfilePage clickUserProfileSettingsButton(); + + /** + * Clicking on X button on tab with new version available. This condition is here because this tab + * is showing up only on local computer, not on server. + * @return + */ + @CustomAction + default Menu disableNewVersion() { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + + if (endpoint.isElementPresent(NEW_VERSION_DISABLE, Lookup.XPATH)) { + endpoint.click(() -> NEW_VERSION_DISABLE); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/CalculatorPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/CalculatorPage.java new file mode 100644 index 0000000..055d1d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/CalculatorPage.java @@ -0,0 +1,311 @@ +package cz.moneta.test.dsl.brokerportal.contract; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.brokerportal.contractdetail.ContractDetailPage; +import cz.moneta.test.dsl.brokerportal.enums.Client; +import cz.moneta.test.dsl.brokerportal.contract.shortapplication.ShortApplicationPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.BrokerPortalEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.contract.CalculatorPage.ADD_APPLICANT_BUTTON; + +@Wait(ADD_APPLICANT_BUTTON) +public interface CalculatorPage extends WebFlow, StoreAccessor { + //CLIENTS + String ADD_APPLICANT_BUTTON = "//button[@id='addApplicant']"; + String HOUSEHOLD_CHECKBOX = "//input[@name='persons[%s].sameHousehold']//.."; + String CLIENT_TAB = "//a[@id='persons[%s]']"; + + //Basic info + String SEX_SELECT = "//div[@id='persons[%s].sex']//input"; + String FIRST_NAME_INPUT = "//input[@name='persons[%s].firstName']"; + String LAST_NAME_INPUT = "//input[@name='persons[%s].lastName']"; + String BIRTH_DATE_INPUT = "//input[@name='persons[%s].birthDate']"; + String CONTACT_COUNTRY = "//div[@id='persons[%s].contactCountryId']//input"; + String NATIONALITY = "//div[@id='persons[%s].nationalityId']//input"; + String MARITAL_STATUS_SELECT = "//div[@id='persons[%s].maritalStatus']//input"; + String MATE_CHECKBOX = "//label[@id='persons[%s].partner']"; + + //Income Employment + String GROSS_INCOME_INPUT = "//input[@name='persons[%s].employeeIncomes[0].grossIncome']"; + String NET_INCOME_INPUT = "//input[@name='persons[%s].employeeIncomes[0].netIncome']"; + + //Income Business + String BUSINESS_INCOME_BUTTON = "//h2/button//span[text()='Z podnikání']"; + String TURNOVER_LATEST_INPUT = "//input[@name='persons[%s].turnoverLatest']"; + String TAX_BASE_LATEST_INPUT = "//input[@name='persons[%s].taxBaseLatest']"; + String TAX_AMOUNT_LATEST_INPUT = "//input[@name='persons[%s].taxAmountLatest']"; + String COST_ACCOUNTING_TYPE_SELECT = "//div[@id='persons[%s].costAccountingType']//input"; + String COST_PERCENTAGE_RATE_SELECT = "//div[@id='persons[%s].costPercentageRate']//input"; + String NACE_CODE_SELECT = "//div[@id='persons[%s].naceCode']//input"; + String TURNOVER_PENULTIMATE_INPUT = "//input[@name='persons[%s].turnoverPenultimate']"; + String TAX_BASE_PENULTIMATE_INPUT = "//input[@name='persons[%s].taxBasePenultimate']"; + String DAP_CHECKBOX = "//label[@id='persons[%1$s].dapYes']"; + String COST_YEAR_LATEST_SELECT = "//div[@id='persons[%s].yearLatest']//input"; + String COST_YEAR_PENULTIMATE_SELECT = "//div[@id='persons[%s].yearPenultimate']//input"; + + //Income Other + String OTHER_INCOME_BUTTON = "//h2/button//span[text()='Ostatní']"; + String ADD_INCOME_BUTTON = "//button[@id='persons[%s].addIncome']"; + String OTHER_INCOME_TYPE_SELECT = "//div[@id='persons[%1$s].otherIncomes[%2$s].type']//input"; + String OTHER_INCOME_AMOUNT_INPUT = "//input[@name='persons[%1$s].otherIncomes[%2$s].amount']"; + + //Expenditures + String ADD_EXPENDITURE_BUTTON = "//button[@id='persons[%s].addExpenditure']"; + String EXPENDITURE_TYPE_SELECT = "//div[@id='persons[%1$s].expenditures[%2$s].type']//input"; + String EXPENDITURE_INSTALMENT_AMOUNT_INPUT = "//input[@name='persons[%1$s].expenditures[%2$s].instalmentAmount']"; + String EXPENDITURE_CREDIT_RESTRICTION_INPUT = "//input[@name='persons[%1$s].expenditures[%2$s].creditRestriction']"; + String EXPENDITURE_DEBT_INPUT = "//input[@name='persons[%1$s].expenditures[%2$s].debt']"; + String EXPENDITURE_CORRECTION_SELECT = "//div[@id='persons[%1$s].expenditures[%2$s].correction']//input"; + + //LOAN + //Parameters + String PRODUCT_SELECT = "//div[@id='product']//input"; + String LOAN_AMOUNT_INPUT = "//input[@name='loanAmount']"; + String MATURITY_INPUT = "//input[@name='maturityYears']"; + String FIXATION_SELECT = "//div[@id='fixation']//input"; + String LOAN_PURPOSE_SELECT = "//div[@id='purposes']//input"; + String SERVICES_SELECT = "//div[@id='services']//input"; + + //Insurance + String INSURANCE_TYPE_SELECT = "//div[@id='insuranceType']//input"; + String INSURANCE_CHECKBOX = "//label[@id='insuredApplicants[%s].selected']"; + + //Loan owner + String LOAN_OWNER_CHECKBOX = "//li[@id='isLoanOwner_value-false']"; + + //Loan security + String LOAN_SECURITY_ESTATE_TYPE_SELECT = "//div[@id='loanSecurity[%s].estateType']//input"; + String LOAN_SECURITY_VALUE_INPUT = "//input[@name='loanSecurity[%s].value']"; + String LOAN_SECURITY_CONTRACT_RELATION_SELECT = "//div[@id='loanSecurity[%s].contractRelation']//input"; + String ADD_PROPERTY_BUTTON = "//button[@id='addProperty']"; + + //Buttons + String BACK_TO_CONTRACT_DETAIL_BUTTON = "//button[@id='backToBusinessDetailResult']"; + String CALCULATE_BUTTON = "//button[@id='calculate']"; + String SAVE_CALCULATION_BUTTON = "//button[@id='saveCalculation']"; + String TO_SHORT_APPLICATION_BUTTON = "//button[@id='toCalculatorApplication']"; + + //CONTROL + String CALCULATION_ALERT_SUCCESS = "//div[@role='alert' and contains(@class, 'success')]"; + String CONTRACT_ID = "//div[@id='result-anchor-id']/..//p[2]"; + + @Click(value = ADD_APPLICANT_BUTTON, jsClick = true) + CalculatorPage clickAddApplicantButton(); + + @Click(value = HOUSEHOLD_CHECKBOX, jsClick = true) + CalculatorPage clickHouseholdCheckbox(Client client); + + @Click(CLIENT_TAB) + CalculatorPage clickClientTab(Client client); + + @CustomAction + default CalculatorPage selectSex(String sex, Client client) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(SEX_SELECT, client.getValue()), sex, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @TypeInto(value = FIRST_NAME_INPUT, isStringDynamicXpath = true) + CalculatorPage fillFirstName(String client, String firstName); + + @TypeInto(value = LAST_NAME_INPUT, isStringDynamicXpath = true) + CalculatorPage fillLastName(String client, String lastName); + + @TypeInto(value = BIRTH_DATE_INPUT, isStringDynamicXpath = true) + CalculatorPage fillBirthDate(String client, String date); + + @TypeInto(value = CONTACT_COUNTRY, isStringDynamicXpath = true) + @KeyPress(Key.ENTER) + CalculatorPage fillContactCountry(String client, String contactCountry); + + @TypeInto(value = NATIONALITY, isStringDynamicXpath = true) + @KeyPress(Key.ENTER) + CalculatorPage fillNationality(String client, String nationality); + + @TypeInto(value = MARITAL_STATUS_SELECT, isStringDynamicXpath = true) + @KeyPress(Key.ENTER) + CalculatorPage selectMaritalStatus(String client, String maritalStatus); + + @Click(MATE_CHECKBOX) + CalculatorPage clickMateCheckbox(Client client); + + @TypeInto(value = GROSS_INCOME_INPUT, isStringDynamicXpath = true) + CalculatorPage fillGrossIncome(String client, String grossIncome); + + @TypeInto(value = NET_INCOME_INPUT, isStringDynamicXpath = true) + CalculatorPage fillNetIncome(String client, String netIncome); + + @Click(BUSINESS_INCOME_BUTTON) + CalculatorPage clickBusinessIncome(); + + @TypeInto(value = COST_YEAR_LATEST_SELECT, isStringDynamicXpath = true) + @KeyPress(Key.ENTER) + CalculatorPage selectYearLatest(String client, String yearLatest); + + @TypeInto(value = TURNOVER_LATEST_INPUT, isStringDynamicXpath = true) + CalculatorPage fillTurnoverLatest(String client, String turnOverLatest); + + @TypeInto(value = TAX_BASE_LATEST_INPUT, isStringDynamicXpath = true) + CalculatorPage fillTaxBaseLatest(String client, String taxBaseLatest); + + @TypeInto(value = TAX_AMOUNT_LATEST_INPUT, isStringDynamicXpath = true) + CalculatorPage fillTaxAmountLatest(String client, String taxAmountLatest); + + @TypeInto(value = COST_ACCOUNTING_TYPE_SELECT, isStringDynamicXpath = true) + @KeyPress(Key.ENTER) + CalculatorPage selectCostAccountingType(String client, String costAccountingType); + + @TypeInto(value = COST_PERCENTAGE_RATE_SELECT, isStringDynamicXpath = true) + @KeyPress(Key.ENTER) + CalculatorPage selectCostPercentageRate(String client, String costPercentageRate); + + @TypeInto(value = NACE_CODE_SELECT, isStringDynamicXpath = true) + @KeyPress(Key.ENTER) + CalculatorPage selectNaceCode(String client, String naceCode); + + @TypeInto(value = COST_YEAR_PENULTIMATE_SELECT, isStringDynamicXpath = true) + @KeyPress(Key.ENTER) + CalculatorPage selectYearPenultimate(String client, String yearPenultimate); + + @TypeInto(value = TURNOVER_PENULTIMATE_INPUT, isStringDynamicXpath = true) + CalculatorPage fillTurnoverPenultimate(String client, String turnOverPenultimate); + + @TypeInto(value = TAX_BASE_PENULTIMATE_INPUT, isStringDynamicXpath = true) + CalculatorPage fillTaxBasePenultimate(String client, String taxBasePenultimate); + + @Click(DAP_CHECKBOX) + CalculatorPage clickDapCheckbox(Client client); + + @Click(OTHER_INCOME_BUTTON) + CalculatorPage clickOtherIncome(); + + @CustomAction + default CalculatorPage selectOtherIncome(String client, String row, String otherIncomeType) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(OTHER_INCOME_TYPE_SELECT, client, row), otherIncomeType, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @CustomAction + default CalculatorPage fillOtherIncomeAmount(String client, String row, String otherIncomeAmount) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(OTHER_INCOME_AMOUNT_INPUT, client, row), otherIncomeAmount, false); + return null; + } + + @Click(ADD_INCOME_BUTTON) + CalculatorPage clickAddIncomeButton(Client client); + + @Click(ADD_EXPENDITURE_BUTTON) + CalculatorPage clickAddExpenditureButton(Client client); + + @CustomAction + default CalculatorPage selectExpenditureType(String client, String row, String expenditureType) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EXPENDITURE_TYPE_SELECT, client, row), expenditureType, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @CustomAction + default CalculatorPage fillExpenditureInstalmentAmount(String client, String row, String expenditureInstalmentAmount) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EXPENDITURE_INSTALMENT_AMOUNT_INPUT, client, row), expenditureInstalmentAmount, false); + return null; + } + + @CustomAction + default CalculatorPage fillExpenditureCreditRestriction(String client, String row, String expenditureCreditRestriction) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EXPENDITURE_CREDIT_RESTRICTION_INPUT, client, row), expenditureCreditRestriction, false); + return null; + } + + @CustomAction + default CalculatorPage fillExpenditureDebt(String client, String row, String expenditureDebt) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EXPENDITURE_DEBT_INPUT, client, row), expenditureDebt, false); + return null; + } + + @CustomAction + default CalculatorPage selectExpenditureCorrection(String client, String row, String expenditureCorrection) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EXPENDITURE_CORRECTION_SELECT, client, row), expenditureCorrection, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @TypeInto(PRODUCT_SELECT) + @KeyPress(Key.ENTER) + CalculatorPage selectProduct(String product); + + @TypeInto(LOAN_AMOUNT_INPUT) + CalculatorPage fillLoanAmount(String loanAmount); + + @TypeInto(value = MATURITY_INPUT, clear = true) + CalculatorPage fillMaturity(String maturity); + + @TypeInto(FIXATION_SELECT) + @KeyPress(Key.ENTER) + CalculatorPage selectFixation(String fixation); + + @TypeInto(LOAN_PURPOSE_SELECT) + @KeyPress(Key.ENTER) + CalculatorPage selectLoanPurpose(String loanPurpose); + + @TypeInto(SERVICES_SELECT) + @KeyPress(Key.ENTER) + CalculatorPage selectService(String service); + + @TypeInto(INSURANCE_TYPE_SELECT) + CalculatorPage selectInsuranceType(String insuranceType); + + @Click(INSURANCE_CHECKBOX) + CalculatorPage clickInsuranceCheckbox(Client client); + + @Click(value = LOAN_OWNER_CHECKBOX, jsClick = true) + CalculatorPage clickLoanOwnerCheckbox(); + + @Click(ADD_PROPERTY_BUTTON) + CalculatorPage clickAddPropertyButton(); + + @TypeInto(value = LOAN_SECURITY_ESTATE_TYPE_SELECT, isStringDynamicXpath = true) + @KeyPress(Key.ENTER) + CalculatorPage selectLoanSecurityEstateType(String row, String loanSecurityEstateType); + + @TypeInto(value = LOAN_SECURITY_VALUE_INPUT, isStringDynamicXpath = true) + CalculatorPage fillLoanSecurityAmount(String row, String loanSecurityAmount); + + @TypeInto(value = LOAN_SECURITY_CONTRACT_RELATION_SELECT, isStringDynamicXpath = true) + @KeyPress(Key.ENTER) + CalculatorPage selectLoanSecurityContractRelation(String row, String loanSecurityContractRelation); + + @CustomAction + default CalculatorPage getContractId(Harness harness) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + String str = endpoint.getText(CONTRACT_ID); + harness.store("CONTRACT_ID", str.replaceAll("\\D+","")); + return null; + } + + @Click(BACK_TO_CONTRACT_DETAIL_BUTTON) + ContractDetailPage opensContractDetailPage(); + + @Click(value = CALCULATE_BUTTON, andWait = @Wait(SAVE_CALCULATION_BUTTON)) + CalculatorPage clickCalculateButton(); + + @Wait(value = SAVE_CALCULATION_BUTTON, explicitWaitSeconds = 2) + @Click(value = SAVE_CALCULATION_BUTTON, andWait = @Wait(TO_SHORT_APPLICATION_BUTTON)) + CalculatorPage clickSaveCalculationButton(); + + @Click(TO_SHORT_APPLICATION_BUTTON) + ShortApplicationPage clickToShortApplicationButton(); + + @CheckElementPresent(CALCULATION_ALERT_SUCCESS) + CalculatorPage checkCalculationSuccessfulAlert(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/ContractListPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/ContractListPage.java new file mode 100644 index 0000000..f6ec237 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/ContractListPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.brokerportal.contract; + +import cz.moneta.test.dsl.brokerportal.contractdetail.ContractDetailPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.contract.ContractListPage.CONTRACT_ROW; + +@Wait(value = CONTRACT_ROW, waitSecondsForElement = 60) +public interface ContractListPage extends WebFlow, StoreAccessor { + String SEARCH_INPUT = "//input[@id='otherText']"; + String SEARCH_SELECT_BY_TYPE = "//div[@id='otherSelect']//input"; + String SEARCH_ACTUAL_STATES = "//div[@id='actualStates']//input"; + String SEARCH_BUTTON = "//button[text()='Zobrazit']"; + String CONTRACT_STATE = "//p[@title='%s']"; + String CONTRACT_ROW = "//div[@class='c-card c-card--small u-mb--large withPointers']/div[@class='c-card__header']//*[@class='h-row']"; + String LOADER = "//div[contains(@class, 'c-loader')]"; + + @TypeInto(value = SEARCH_SELECT_BY_TYPE, clear = true) + @KeyPress(Key.ENTER) + ContractListPage selectBy(String type); + + @TypeInto(SEARCH_ACTUAL_STATES) + @KeyPress(Key.ENTER) + ContractListPage selectState(String state); + + @TypeInto(SEARCH_INPUT) + ContractListPage insertContractId(String contractId); + + @Click(value = SEARCH_BUTTON, andWait = @Wait(value = LOADER, until = Until.GONE, waitSecondsForElement = 60)) + ContractListPage searchContracts(); + + @Click(CONTRACT_ROW) + ContractDetailPage openContract(); + + @CheckElementPresent(value = CONTRACT_STATE, isStringDynamicXpath = true) + ContractListPage checkContractState(String state); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/ValuationPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/ValuationPage.java new file mode 100644 index 0000000..be8f79b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/ValuationPage.java @@ -0,0 +1,243 @@ +package cz.moneta.test.dsl.brokerportal.contract; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.BrokerPortalEndpoint; +import cz.moneta.test.harness.support.web.*; + +public interface ValuationPage extends WebFlow, StoreAccessor { + + //Valuation - property search + String INPUT_CITY = "//input[@name = 'city']"; + String INPUT_AREA = "//div[@id = 'search-area']//input"; + + String INPUT_FLATUNIT = "//input[@id = 'flatUnit']"; + String INPUT_HOUSE = "//input[@id = 'house']"; + String BUTTON_CONTINUE = "//button/span[text() = 'Pokračovat']"; + String CHECKBOX_HOUSECHECK = "//li[@id = 'estate_value-house']"; + String BUTTON_CONFIRM = "//button/span[text() = 'Potvrdit nemovitost']"; + + //Valuation - Adress + String INPUT_SEARCHADDRESS = "//div[@id = 'searchAddress']//input"; + + //Valuation - Flat + String INPUT_FLATTYPE = "//div[@id = 'type']//input"; + String INPUT_FLATPLACING = "//div[@id = 'placing']//input"; + String INPUT_FLATDISPOSITION = "//div[@id = 'disposition']//input"; + String INPUT_FLATSTATUS = "//div[@id = 'technicalStatus']//input"; + + String INPUT_FLATFLOORAREA = "//input[@id = 'floorArea']"; + String INPUT_FLATFLOORAREAOTHER = "//input[@id = 'floorAreaOther']"; + String INPUT_FLATPARKINGOUTSIDE = "//input[@id = 'parkingPlaceOutside']"; + String INPUT_FLATPARKINGINSIDE = "//input[@id = 'parkingPlaceInside']"; + String INPUT_FLATGARAGE = "//input[@id = 'garage']"; + + // Price + String INPUT_PURCHASEPRICE = "//input[@id = 'purchasePrice']"; + + //Valuation - Flat house + String INPUT_FLATHOUSETYPE = "//div[@id = 'buildingConstructionMaterial']//input"; + String INPUT_FLATHOUSEYEAR = "//input[@id = 'constructionYearBuilding']"; + String INPUT_FLATHOUSEFLOORS = "//input[@id = 'upstairsFloors']"; + String INPUT_FLATHOUSESTATUS = "//div[@id = 'buildingTechnicalStatus']//input"; + + //Valuation - House + String INPUT_HOUSEMATERIAL = "//div[@id = 'constructionMaterial']//input"; + String INPUT_HOUSEYEAR = "//input[@id = 'constructionYearBuilding']"; + String INPUT_HOUSESTATUS = "//div[@id = 'technicalStatus']//input"; + String INPUT_HOUSELANDAREA = "//input[@id = 'landArea']"; + String INPUT_GARAGEBASEMENT = "//input[@id = 'garageBasementCount']"; + String INPUT_GARAGEGROUND = "//input[@id = 'garageGroundFloorCount']"; + String INPUT_GARAGESEPARATE = "//input[@id = 'garageSeparateCount']"; + String INPUT_NEEDCALCULATEFALSE = "//li[@id = 'needCalculate_value-false']"; + String INPUT_FLOORAREA = "//input[@name = 'floorArea']"; + + //Valuation - User + String INPUT_ROLE = "//div[@id = 'role']//input"; + String INPUT_FIRSTNAME = "//input[@id = 'firstName']"; + String INPUT_LASTNAME = "//input[@id = 'lastName']"; + String INPUT_PHONE = "//input[@name = 'phone']"; + + /** + * Compare given victory screen id with shown on BP. + * + * @param victoryScreenId - String Xpath of victoryScreenId. + * @return + */ + @CustomAction + default ValuationPage checkVictoryId(String victoryScreenId) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + if (endpoint.isAlertPresent(10)) { + endpoint.acceptAlert(5); + } + String DIV_VSCREEN = String.format("//h4[@id = '%s']", victoryScreenId); + endpoint.waitForAnyElementToLoad(300, Lookup.XPATH, DIV_VSCREEN); + return null; + } + + @CustomAction + default ValuationPage reportResults(String valuationType, String contractId) { + String outputLog = String.format("Broker portal valuation completed with %s result. Contract ID is: %s", valuationType, contractId); + log(outputLog); + return null; + } + + @TypeInto(INPUT_HOUSEMATERIAL) + @KeyPress(Key.ENTER) + ValuationPage selectHouseMaterial(String material); + + @TypeInto(INPUT_HOUSEYEAR) + @KeyPress(Key.ENTER) + ValuationPage selectHouseYear(int year); + + @TypeInto(INPUT_HOUSESTATUS) + @KeyPress(Key.ENTER) + ValuationPage selectHouseStatus(String status); + + @TypeInto(INPUT_HOUSELANDAREA) + @KeyPress(Key.ENTER) + ValuationPage selectHouseLandArea(int status); + + @TypeInto(INPUT_GARAGEBASEMENT) + @KeyPress(Key.ENTER) + ValuationPage selectHouseGarageBasement(int garageBasement); + + @TypeInto(INPUT_GARAGEGROUND) + @KeyPress(Key.ENTER) + ValuationPage selectHouseGarageGround(String garageGround); + + @TypeInto(INPUT_GARAGESEPARATE) + @KeyPress(Key.ENTER) + ValuationPage selectHouseGarageSeparated(String garageSeparated); + + @Click(INPUT_NEEDCALCULATEFALSE) + ValuationPage clickNeedCalculateFalse(); + + @TypeInto(INPUT_FLOORAREA) + ValuationPage insertHouseFloorArea(int floorArea); + + /** + * Insert area and pick it from list. + * Reason for this complicated xpath is, because there are always two corresponding elements - one of them is hidden. + * + * @param area - String of Area (On tests enviroments work only Prague and Brno areas.) + * @return + */ + @CustomAction + default ValuationPage insertArea(String area) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> INPUT_AREA, area, false); + String DIV_MENUITEM = String.format("//*/div[text() = '%s' and not(ancestor::div[contains(@style,'display: inline-block;')])]", area); + endpoint.waitForAnyElementToLoad(5, DIV_MENUITEM); + endpoint.click(() -> DIV_MENUITEM); + return null; + } + + /** + * Waiting till element is visible, then scrolling to it and then clicking on it. + * + * @return + */ + @CustomAction + default ValuationPage clickConfirm() { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.scrollIntoView(BUTTON_CONFIRM); + endpoint.waitForAnyElementToLoad(5, String.valueOf(Until.VISIBLE), BUTTON_CONFIRM); + endpoint.click(() -> BUTTON_CONFIRM); + return null; + } + + /** + * Waiting till list of addresses is loaded and then picking one of them. + * Reason for this complicated xpath is, because there are always two corresponding elements - one of them is hidden. + * + * @param address + * @return + */ + @CustomAction + default ValuationPage insertAddress(String address) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + String DIV_MENUITEM = String.format("//*/div[text()[contains(., '%s')] and not(ancestor::div[contains(@style,'display: inline-block;')])]", address); + endpoint.waitForAnyElementToLoad(5, INPUT_SEARCHADDRESS); + endpoint.type(() -> INPUT_SEARCHADDRESS, address, false); + endpoint.waitForAnyElementToLoad(5, DIV_MENUITEM); + endpoint.click(() -> DIV_MENUITEM); + endpoint.sendKeysAsChord(Key.ENTER); + return null; + } + + @TypeInto(INPUT_FLATTYPE) + @KeyPress(Key.ENTER) + ValuationPage selectFlatType(String flatType); + + @TypeInto(INPUT_FLATPLACING) + @KeyPress(Key.ENTER) + ValuationPage selectFlatPlacing(String flatPlacing); + + @TypeInto(INPUT_FLATDISPOSITION) + @KeyPress(Key.ENTER) + ValuationPage selectFlatDisposition(String flatDisposition); + + @TypeInto(INPUT_FLATSTATUS) + @KeyPress(Key.ENTER) + ValuationPage selectFlatState(String flatState); + + @TypeInto(INPUT_FLATFLOORAREA) + ValuationPage insertFlatArea(int flatArea); + + @TypeInto(INPUT_FLATFLOORAREAOTHER) + ValuationPage insertFlatAreaOther(int flatAreaOther); + + @TypeInto(INPUT_FLATPARKINGOUTSIDE) + ValuationPage insertFlatParkingOutside(int parkingOutside); + + @TypeInto(INPUT_FLATPARKINGINSIDE) + ValuationPage insertFlatParkingInside(int parkingOutside); + + @TypeInto(INPUT_FLATGARAGE) + ValuationPage insertFlatGarage(int parkingGarage); + + @TypeInto(INPUT_PURCHASEPRICE) + ValuationPage insertPrice(int flatPrice); + + @TypeInto(INPUT_FLATHOUSETYPE) + @KeyPress(Key.ENTER) + ValuationPage insertFlatHouseType(String flatHouseType); + + @TypeInto(INPUT_FLATHOUSEFLOORS) + ValuationPage insertFlatHouseFloors(int flatHouseFloors); + + @TypeInto(INPUT_FLATHOUSESTATUS) + @KeyPress(Key.ENTER) + ValuationPage insertFlatHouseStatus(String flatHouseStatus); + + @TypeInto(INPUT_ROLE) + @KeyPress(Key.ENTER) + ValuationPage insertUserRole(String userRole); + + @TypeInto(INPUT_FIRSTNAME) + ValuationPage insertUserFirstName(String userFirstName); + + @TypeInto(INPUT_LASTNAME) + ValuationPage insertUserLastName(String userLastName); + + @TypeInto(INPUT_PHONE) + ValuationPage insertUserPhone(String userPhone); + + @TypeInto(INPUT_FLATHOUSEYEAR) + ValuationPage insertFlatHouseYear(String flatHouseType); + + @TypeInto(INPUT_CITY) + ValuationPage insertCity(String city); + + @TypeInto(INPUT_HOUSE) + ValuationPage insertHouse(String unit); + + @TypeInto(INPUT_FLATUNIT) + ValuationPage insertFlatUnit(String unit); + + @Click(BUTTON_CONTINUE) + ValuationPage clickContinue(); + + @Click(CHECKBOX_HOUSECHECK) + ValuationPage clickHouse(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/VictoryScreenPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/VictoryScreenPage.java new file mode 100644 index 0000000..027ef7f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/VictoryScreenPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.brokerportal.contract; + +import cz.moneta.test.dsl.brokerportal.contract.fullapplication.FullApplicationPage; +import cz.moneta.test.dsl.brokerportal.contractdetail.ContractDetailPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.brokerportal.contract.VictoryScreenPage.TO_FULL_APPLICATION_BUTTON; + +@Wait(value = TO_FULL_APPLICATION_BUTTON, waitSecondsForElement = 300) +public interface VictoryScreenPage extends WebFlow { + String TO_FULL_APPLICATION_BUTTON = "//button[@id='victoryScreenToFullApplication']"; + String TO_CONTRACT_DETAIL_BUTTON = "//button//small[text()='Zpět na detail obchodu']"; + + @Click(TO_FULL_APPLICATION_BUTTON) + FullApplicationPage clickToFullApplication(); + + @Click(TO_CONTRACT_DETAIL_BUTTON) + ContractDetailPage clickToContractDetail(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/fullapplication/FullApplicationPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/fullapplication/FullApplicationPage.java new file mode 100644 index 0000000..4a54617 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/fullapplication/FullApplicationPage.java @@ -0,0 +1,279 @@ +package cz.moneta.test.dsl.brokerportal.contract.fullapplication; + +import cz.moneta.test.dsl.brokerportal.enums.AddressType; +import cz.moneta.test.dsl.brokerportal.enums.Client; +import cz.moneta.test.dsl.brokerportal.enums.Household; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.BrokerPortalEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.contract.fullapplication.FullApplicationPage.GENERATE_FULL_APPLICATION_BUTTON; + +@Wait(value = GENERATE_FULL_APPLICATION_BUTTON, waitSecondsForElement = 40) +public interface FullApplicationPage extends WebFlow, StoreAccessor { + String SECOND_IDENTITY_TYPE_SELECT = "//div[@id='households[%2$s].persons[%1$s].identities[1].type']//input"; + String SECOND_IDENTITY_VALUE_INPUT = "//input[@name='households[%2$s].persons[%1$s].identities[1].value']"; + String SECOND_IDENTITY_EXPIRATION_DATE_INPUT = "//input[@name='households[%2$s].persons[%1$s].identities[1].expirationDate']"; + String EDUCATION_SELECT = "//div[@id='households[%2$s].persons[%1$s].education']//input"; + String CURRENT_LIVING_TYPE_SELECT = "//div[@id='households[%2$s].persons[%1$s].livingType']//input"; + String EMPLOYMENT_PEP_CHECKBOX = "//li[@id='households[%2$s].persons[%1$s].pepFlag_value-false']"; + String MAIN_CLIENT_RELATION_SELECT = "//div[@id='households[%2$s].persons[%1$s].mainClientRelation']//input"; + String ADDRESS_SAME_CHECKBOX = "//label[@id='households[%2$s].persons[%1$s].%3$sSame']//.."; + + String EMPLOYER_SEARCH = "//div[@id='households[%2$s].persons[%1$s].employeeIncomes[0].employerNameSearch']"; + String EMPLOYER_SEARCH_INPUT = EMPLOYER_SEARCH + "/div"; + String EMPLOYER_SEARCH_RESULT = EMPLOYER_SEARCH + "//div[contains(text(),'%3$s')]/p"; + String EMPLOYER_SEARCH_MANUAL = EMPLOYER_SEARCH + "//div[text()='Zadat ručně']"; + String EMPLOYER_NAME = "//input[@name='households[%2$s].persons[%1$s].employeeIncomes[0].employerName']"; + String EMPLOYER_ICO = "//input[@name='households[%2$s].persons[%1$s].employeeIncomes[0].employerRegistrationNumber']"; + String EMPLOYER_ADDRESS_STREET = "//input[@name='households[%2$s].persons[%1$s].employeeIncomes[0].employeeAddress.street']"; + String EMPLOYER_ADDRESS_STREET_NUMBER = "//input[@name='households[%2$s].persons[%1$s].employeeIncomes[0].employeeAddress.streetNumber']"; + String EMPLOYER_ADDRESS_NUMBER_ORIENTATIONAL = "//input[@name='households[%2$s].persons[%1$s].employeeIncomes[0].employeeAddress.streetNumberOrientational']"; + String EMPLOYER_ADDRESS_ZIP_CODE = "//input[@name='households[%2$s].persons[%1$s].employeeIncomes[0].employeeAddress.zipCode']"; + String EMPLOYER_ADDRESS_CITY = "//input[@name='households[%2$s].persons[%1$s].employeeIncomes[0].employeeAddress.city']"; + String EMPLOYER_PHONE = "//input[@name='households[%2$s].persons[%1$s].employeeIncomes[0].employerPhone']"; + String EMPLOYMENT_TYPE_SELECT = "//div[@id='households[%2$s].persons[%1$s].employeeIncomes[0].employmentType']//input"; + String EMPLOYMENT_START_DATE_INPUT = "//input[@name='households[%2$s].persons[%1$s].employeeIncomes[0].employmentStart']"; + String EMPLOYMENT_FINISH_DATE_INPUT = "//input[@name='households[%2$s].persons[%1$s].employeeIncomes[0].employmentFinish']"; + String PROFESSION_INPUT = "//input[@name='households[%2$s].persons[%1$s].employeeIncomes[0].profession']"; + String EMPLOYMENT_IS_FIRT_CHECKBOX = "//li[@id='households[%2$s].persons[%1$s].employeeIncomes[0].isFirst_value-false']"; + String EMPLOYMENT_SPECIAL_RELATION_CHECKBOX = "//li[@id='households[%2$s].persons[%1$s].employeeIncomes[0].specialRelation_value-false']"; + String EMPLOYMENT_ABROAD_CHECKBOX = "//li[@id='households[%2$s].persons[%1$s].employeeIncomes[0].employeeAbroad_value-true']"; + String EMPLOYMENT_AGENCY_CHECKBOX = "//li[@id='households[%2$s].persons[%1$s].employeeIncomes[0].employmentAgency_value-false']"; + String EMPLOYMENT_CASH_SALARY_CHECKBOX = "//li[@id='households[%2$s].persons[%1$s].employeeIncomes[0].cashSalary_value-true']"; + String EMPLOYMENT_PAID_TO_MMB_CHECKBOX = "//li[@id='households[%2$s].persons[%1$s].employeeIncomes[0].paidToMmb_value-false']"; + + String DRAWING_ACCOUNT_SELECT = "//div[@id='drawingAccount']//input"; + String NOTIFICATION_SMS_CHECKBOX = "//label[@id='notificationIfPaymentChangedSms']"; + String NOTIFICATION_EMAIL_CHECKBOX = "//label[@id='notificationIfPaymentChangedEmail']"; + String REALTY_PURCHASE_REASON_SELECT = "//div[@id='realtyPurchaseReason']//input"; + String LOAN_OBJECT_SELECT = "//div[@id='loanObject']//input"; + + String GENERATE_FULL_APPLICATION_BUTTON = "//button[@id='fullApplicationGenerate']"; + + @CustomAction + default FullApplicationPage selectSecondIdentityType(String identityCardType, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(SECOND_IDENTITY_TYPE_SELECT, client.getInHouseholdValue(), household.getValue()), identityCardType, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @CustomAction + default FullApplicationPage fillSecondIdentityValue(String identityCardId, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(SECOND_IDENTITY_VALUE_INPUT, client.getInHouseholdValue(), household.getValue()), identityCardId, false); + return null; + } + + @CustomAction + default FullApplicationPage fillSecondIdentityExpirationDate(String date, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(SECOND_IDENTITY_EXPIRATION_DATE_INPUT, client.getInHouseholdValue(), household.getValue()), date, false); + return null; + } + + @CustomAction + default FullApplicationPage selectEducation(String education, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EDUCATION_SELECT, client.getInHouseholdValue(), household.getValue()), education, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @CustomAction + default FullApplicationPage selectCurrentLivingType(String currentLivingType, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(CURRENT_LIVING_TYPE_SELECT, client.getInHouseholdValue(), household.getValue()), currentLivingType, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @CustomAction + default FullApplicationPage clickPep(Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.jsClick(() -> String.format(EMPLOYMENT_PEP_CHECKBOX, client.getInHouseholdValue(), household.getValue())); + return null; + } + + @CustomAction + default FullApplicationPage selectMainClientRelation(String mainClientRelation, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(MAIN_CLIENT_RELATION_SELECT, client.getInHouseholdValue(), household.getValue()), mainClientRelation, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @CustomAction + default FullApplicationPage clickAddressSameCheckbox(Client client, Household household, AddressType addressType) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.click(() -> String.format(ADDRESS_SAME_CHECKBOX, client.getInHouseholdValue(), household.getValue(), addressType.getValue())); + return null; + } + + @CustomAction + default FullApplicationPage searchEmployer(String search, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + String employerSearchResult = String.format(EMPLOYER_SEARCH_RESULT, client.getInHouseholdValue(), household.getValue(), search); + endpoint.type(() -> String.format(EMPLOYER_SEARCH_INPUT, client.getInHouseholdValue(), household.getValue()), search, false); + endpoint.waitForElementsToLoad(10, employerSearchResult); + endpoint.click(() -> employerSearchResult); + return null; + } + + @CustomAction + default FullApplicationPage searchEmployerManual(Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.click(() -> String.format(EMPLOYER_SEARCH_INPUT, client.getInHouseholdValue(), household.getValue())); + endpoint.click(() -> String.format(EMPLOYER_SEARCH_MANUAL, client.getInHouseholdValue(), household.getValue())); + return null; + } + + @CustomAction + default FullApplicationPage selectEmploymentType(String employmentType, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMPLOYMENT_TYPE_SELECT, client.getInHouseholdValue(), household.getValue()), employmentType, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @CustomAction + default FullApplicationPage fillEmployerName(String employerName, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMPLOYER_NAME, client.getInHouseholdValue(), household.getValue()), employerName, false); + return null; + } + + @CustomAction + default FullApplicationPage fillEmployerIco(String employerIco, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMPLOYER_ICO, client.getInHouseholdValue(), household.getValue()), employerIco, false); + return null; + } + + @CustomAction + default FullApplicationPage fillEmployerStreet(String employerStreet, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMPLOYER_ADDRESS_STREET, client.getInHouseholdValue(), household.getValue()), employerStreet, false); + return null; + } + + @CustomAction + default FullApplicationPage fillEmployerStreetNumber(String employerStreetNumber, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMPLOYER_ADDRESS_STREET_NUMBER, client.getInHouseholdValue(), household.getValue()), employerStreetNumber, false); + return null; + } + + @CustomAction + default FullApplicationPage fillEmployerNumberOrientational(String employerNumberOrientational, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMPLOYER_ADDRESS_NUMBER_ORIENTATIONAL, client.getInHouseholdValue(), household.getValue()), employerNumberOrientational, false); + return null; + } + + @CustomAction + default FullApplicationPage fillEmployerZipCode(String employerZipCode, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMPLOYER_ADDRESS_ZIP_CODE, client.getInHouseholdValue(), household.getValue()), employerZipCode, false); + return null; + } + + @CustomAction + default FullApplicationPage fillEmployerCity(String employerCity, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMPLOYER_ADDRESS_CITY, client.getInHouseholdValue(), household.getValue()), employerCity, false); + return null; + } + + @CustomAction + default FullApplicationPage fillEmployerPhone(String employerPhone, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMPLOYER_PHONE, client.getInHouseholdValue(), household.getValue()), employerPhone, false); + return null; + } + + @CustomAction + default FullApplicationPage fillEmploymentStartDate(String date, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMPLOYMENT_START_DATE_INPUT, client.getInHouseholdValue(), household.getValue()), date, false); + return null; + } + + @CustomAction + default FullApplicationPage fillEmploymentFinishDate(String date, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMPLOYMENT_FINISH_DATE_INPUT, client.getInHouseholdValue(), household.getValue()), date, false); + return null; + } + + @CustomAction + default FullApplicationPage clickEmploymentIsFirst(Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.jsClick(() -> String.format(EMPLOYMENT_IS_FIRT_CHECKBOX, client.getInHouseholdValue(), household.getValue())); + return null; + } + + @CustomAction + default FullApplicationPage clickEmploymentSpecialRelation(Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.jsClick(() -> String.format(EMPLOYMENT_SPECIAL_RELATION_CHECKBOX, client.getInHouseholdValue(), household.getValue())); + return null; + } + + @CustomAction + default FullApplicationPage fillProfession(String profession, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(PROFESSION_INPUT, client.getInHouseholdValue(), household.getValue()), profession, false); + return null; + } + + @CustomAction + default FullApplicationPage clickEmploymentAbroad(Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.jsClick(() -> String.format(EMPLOYMENT_ABROAD_CHECKBOX, client.getInHouseholdValue(), household.getValue())); + return null; + } + + @CustomAction + default FullApplicationPage clickEmploymentCashSalary(Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.jsClick(() -> String.format(EMPLOYMENT_CASH_SALARY_CHECKBOX, client.getInHouseholdValue(), household.getValue())); + return null; + } + + @CustomAction + default FullApplicationPage clickEmploymentAgency(Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.jsClick(() -> String.format(EMPLOYMENT_AGENCY_CHECKBOX, client.getInHouseholdValue(), household.getValue())); + return null; + } + + @CustomAction + default FullApplicationPage clickEmploymentPaidToMmb(Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.jsClick(() -> String.format(EMPLOYMENT_PAID_TO_MMB_CHECKBOX, client.getInHouseholdValue(), household.getValue())); + return null; + } + + @TypeInto(DRAWING_ACCOUNT_SELECT) + @KeyPress(Key.ENTER) + FullApplicationPage selectDrawingAccount(String drawingAccount); + + @Click(NOTIFICATION_SMS_CHECKBOX) + FullApplicationPage clickSmsNotifyWhenPaymentChangesCheckbox(); + + @Click(NOTIFICATION_EMAIL_CHECKBOX) + FullApplicationPage clickEmailNotifyWhenPaymentChangesCheckbox(); + + @TypeInto(REALTY_PURCHASE_REASON_SELECT) + @KeyPress(Key.ENTER) + FullApplicationPage selectRealtyPurchaseReason(String purchaseReason); + + @TypeInto(LOAN_OBJECT_SELECT) + @KeyPress(Key.ENTER) + FullApplicationPage selectLoanObject(String loanObject); + + @Click(GENERATE_FULL_APPLICATION_BUTTON) + FullApplicationSignPage clickGenerateFullApplication(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/fullapplication/FullApplicationSignPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/fullapplication/FullApplicationSignPage.java new file mode 100644 index 0000000..0bb2ec7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/fullapplication/FullApplicationSignPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.brokerportal.contract.fullapplication; + +import cz.moneta.test.dsl.brokerportal.components.ApplicationSignModal; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.brokerportal.contract.fullapplication.FullApplicationSignPage.SIGN_BUTTON; + +@Wait (value = SIGN_BUTTON, waitSecondsForElement = 60) +public interface FullApplicationSignPage extends WebFlow { + String SIGN_BUTTON = "//button[@id='fullApplicationSign']"; + + @Click(value = SIGN_BUTTON) + ApplicationSignModal clickContinueToSignButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/fullapplication/FullApplicationVictoryModal.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/fullapplication/FullApplicationVictoryModal.java new file mode 100644 index 0000000..6659492 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/fullapplication/FullApplicationVictoryModal.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.brokerportal.contract.fullapplication; + +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.brokerportal.contract.fullapplication.FullApplicationVictoryModal.TO_CONTRACT_DETAIL_BUTTON; + +@Wait(value = TO_CONTRACT_DETAIL_BUTTON, waitSecondsForElement = 30) +public interface FullApplicationVictoryModal extends WebFlow { + String TO_CONTRACT_DETAIL_BUTTON = "//button[@id='applicationSignedFinish']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/shortapplication/ShortApplicationPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/shortapplication/ShortApplicationPage.java new file mode 100644 index 0000000..1258c2e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/shortapplication/ShortApplicationPage.java @@ -0,0 +1,77 @@ +package cz.moneta.test.dsl.brokerportal.contract.shortapplication; + +import cz.moneta.test.dsl.brokerportal.enums.Client; +import cz.moneta.test.dsl.brokerportal.enums.Household; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.BrokerPortalEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.contract.shortapplication.ShortApplicationPage.APPLICATION_CONFIRM_BUTTON; + +@Wait(APPLICATION_CONFIRM_BUTTON) +public interface ShortApplicationPage extends WebFlow, StoreAccessor { + String PERSONAL_ID_INPUT = "//input[@name='households[%2$s].persons[%1$s].personalId']"; + String FIRST_IDENTITY_VALUE_INPUT = "//input[@name='households[%2$s].persons[%1$s].identities[0].value']"; + String FIRST_IDENTITY_EXPIRATION_DATE_INPUT = "//input[@name='households[%2$s].persons[%1$s].identities[0].expirationDate']"; + String EMAIL_INPUT = "//input[@name='households[%2$s].persons[%1$s].email']"; + String PHONE_INPUT = "//input[@name='households[%2$s].persons[%1$s].phone']"; + String CHECK_IDENTITY_CHECKBOX = "//label[@id='households[%2$s].persons[%1$s].szrAgreement']"; + String CHECK_IDENTITY_BUTTON = "//button[@id='households[%2$s].persons[%1$s].CallSzrButton']"; + String CHECK_IDENTITY_OK = CHECK_IDENTITY_BUTTON + "[text()='Totožnost ověřena']"; + String APPLICATION_CONFIRM_BUTTON = "//button[@id='applicationConfirm' and not(@disabled)]"; + + @CustomAction + default ShortApplicationPage fillPersonalId(String personalId, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(PERSONAL_ID_INPUT, client.getInHouseholdValue(), household.getValue()), personalId, false); + return null; + } + + @CustomAction + default ShortApplicationPage fillFirstIdentityValue(String identityCardId, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(FIRST_IDENTITY_VALUE_INPUT, client.getInHouseholdValue(), household.getValue()), identityCardId, false); + return null; + } + + @CustomAction + default ShortApplicationPage fillFirstIdentityExpirationDate(String date, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(FIRST_IDENTITY_EXPIRATION_DATE_INPUT, client.getInHouseholdValue(), household.getValue()), date, false); + return null; + } + + @CustomAction + default ShortApplicationPage fillEmail(String email, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(EMAIL_INPUT, client.getInHouseholdValue(), household.getValue()), email, false); + endpoint.click(() -> String.format(PHONE_INPUT, client.getInHouseholdValue(), household.getValue())); + endpoint.waitForElementsToLoad(10, APPLICATION_CONFIRM_BUTTON); + return null; + } + + @CustomAction + default ShortApplicationPage fillPhone(String phone, Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.type(() -> String.format(PHONE_INPUT, client.getInHouseholdValue(), household.getValue()), phone, false); + return null; + } + + @CustomAction + default ShortApplicationPage clickCheckIdentityCheckbox(Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.click(() -> String.format(CHECK_IDENTITY_CHECKBOX, client.getInHouseholdValue(), household.getValue())); + return null; + } + + @CustomAction + default ShortApplicationPage clickCheckIdentityButton(Client client, Household household) { + BrokerPortalEndpoint endpoint = getEndpoint(BrokerPortalEndpoint.class); + endpoint.click(() -> String.format(CHECK_IDENTITY_BUTTON, client.getInHouseholdValue(), household.getValue())); + endpoint.waitForElementsToLoad(10, String.format(CHECK_IDENTITY_OK, client.getInHouseholdValue(), household.getValue())); + return null; + } + + @Click(APPLICATION_CONFIRM_BUTTON) + ShortApplicationSummaryPage clickApplicationConfirmButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/shortapplication/ShortApplicationSignPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/shortapplication/ShortApplicationSignPage.java new file mode 100644 index 0000000..b67bc47 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/shortapplication/ShortApplicationSignPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.brokerportal.contract.shortapplication; + +import cz.moneta.test.dsl.brokerportal.components.ApplicationSignModal; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.brokerportal.contract.shortapplication.ShortApplicationSignPage.SIGN_BUTTON; + +@Wait(SIGN_BUTTON) +public interface ShortApplicationSignPage extends WebFlow { + String SIGN_BUTTON = "//button[@id='applicationSign']"; + + @Click(SIGN_BUTTON) + ApplicationSignModal clickContinueToSignButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/shortapplication/ShortApplicationSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/shortapplication/ShortApplicationSummaryPage.java new file mode 100644 index 0000000..34330cc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contract/shortapplication/ShortApplicationSummaryPage.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.brokerportal.contract.shortapplication; + +import cz.moneta.test.dsl.brokerportal.enums.Client; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.contract.shortapplication.ShortApplicationSummaryPage.SUMMARY_APPLICANTS_CONFIRM_BUTTON; + +@Wait(value = SUMMARY_APPLICANTS_CONFIRM_BUTTON, waitSecondsForElement = 30) +public interface ShortApplicationSummaryPage extends WebFlow, StoreAccessor { + String SUMMARY_APPLICANTS_CONFIRM_BUTTON = "//button[@id='applicationSummaryApplicantsConfirm']"; + String AGREEMENTS_CONFIRM_BUTTON = "//button[@id='applicationSummaryAgreementsConfirm']"; + String REGISTER_CHECK_BUTTON = "//button[@id='applicationSummaryRegisterCheck']"; + String AGREEMENT_COMMUNICATION_CHECKBOX = "//label[@id='communication[%s].selected']"; + String AGREEMENT_MARKETING_CHECKBOX = "//label[@id='marketing[%s].selected']"; + String AGREEMENT_TRUE_DATA_CHECKBOX = "//label[@id='agreeTrueData']"; + String AGREEMENT_REGISTER_CHECK_CHECKBOX = "//label[@id='agreeRegisterCheck']"; + + @Click(value = AGREEMENT_COMMUNICATION_CHECKBOX, jsClick = true) + ShortApplicationSummaryPage clickAgreementCommunicationCheckbox(Client client); + + @Click(value = AGREEMENT_MARKETING_CHECKBOX, jsClick = true) + ShortApplicationSummaryPage clickAgreementMarketingCheckbox(Client client); + + @Click(SUMMARY_APPLICANTS_CONFIRM_BUTTON) + ShortApplicationSummaryPage clickSummaryApplicantsConfirmButton(); + + @Click(AGREEMENTS_CONFIRM_BUTTON) + ShortApplicationSummaryPage clickApplicantsAgreementsConfirmButton(); + + @Click(REGISTER_CHECK_BUTTON) + ShortApplicationSignPage clickCreateApplicationButton(); + + @Click(value = AGREEMENT_TRUE_DATA_CHECKBOX, jsClick = true) + ShortApplicationSummaryPage clickAgreementTruDataCheckbox(); + + @Click(value = AGREEMENT_REGISTER_CHECK_CHECKBOX, jsClick = true) + ShortApplicationSummaryPage clickAgreementRegisterCheckCheckbox(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractAssignToBankModal.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractAssignToBankModal.java new file mode 100644 index 0000000..0bbc9c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractAssignToBankModal.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.brokerportal.contractdetail; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.brokerportal.contractdetail.ContractAssignToBankModal.ASSING_TO_BANK_BUTTON; + +@Wait(ASSING_TO_BANK_BUTTON) +public interface ContractAssignToBankModal extends WebFlow, StoreAccessor { + String ASSING_TO_BANK_BUTTON = "//form//button[text()='Předat obchod']"; + String MISSING_DOCUMENT_ERROR = "//form//small[text()=' - Nedodáno']"; + + @CheckElementPresent(MISSING_DOCUMENT_ERROR) + ContractAssignToBankModal checkMissingDocument(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractChecklistDocumentDateModal.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractChecklistDocumentDateModal.java new file mode 100644 index 0000000..65756bf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractChecklistDocumentDateModal.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.brokerportal.contractdetail; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.brokerportal.contractdetail.ContractChecklistDocumentDateModal.DOCUMENT_DATE; + +@Wait(DOCUMENT_DATE) +public interface ContractChecklistDocumentDateModal extends WebFlow, StoreAccessor { + String DOCUMENT_DATE = "//input[@id='documentDate']"; + String SAVE_BUTTON = "//button[text()='Uložit']"; + + @TypeInto(DOCUMENT_DATE) + ContractChecklistDocumentDateModal fillDocumentDate(String date); + + @Click(SAVE_BUTTON) + ContractDetailPage clickSaveButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractDetailEditContactModal.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractDetailEditContactModal.java new file mode 100644 index 0000000..6f78ee4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractDetailEditContactModal.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.brokerportal.contractdetail; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(ContractDetailEditContactModal.SAVE_CONTACT_DETAILS) +public interface ContractDetailEditContactModal extends WebFlow, StoreAccessor { + String PHONE_CONTACT_INPUT = "//input[@id='cellPhone']"; + String EMAIL_CONTACT_INPUT = "//input[@id='email']"; + String SAVE_CONTACT_DETAILS = "//div[@class='c-modal__body']//button[text()='Uložit'][not(@disabled)]"; + + @TypeInto(value = PHONE_CONTACT_INPUT) + ContractDetailEditContactModal fillPhoneNumber(String phoneNumber); + + @TypeInto(value = EMAIL_CONTACT_INPUT) + ContractDetailEditContactModal fillEmail(String email); + + @Click(SAVE_CONTACT_DETAILS) + ContractDetailPage saveContactDetails (); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractDetailPage.java new file mode 100644 index 0000000..1e1aef2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/contractdetail/ContractDetailPage.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.brokerportal.contractdetail; + +import cz.moneta.test.dsl.brokerportal.contract.ValuationPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.contractdetail.ContractDetailPage.BUTTON_SHOW_CALCULATION; + +@Wait(BUTTON_SHOW_CALCULATION) +public interface ContractDetailPage extends WebFlow { + String BUTTON_VALUATE = "//button[@id='canAppraise']"; + String BUTTON_ASSIGN_PROCESSING_TEAM = "//button[@id='canAssignProcessingTeam']"; + String BUTTON_SHOW_CALCULATION = "//button[@id='canShowCalculation']"; + String BUTTON_CHECKLIST = "//ul/li/button[text()='Checklist']"; + + String EDIT_CONTACT_DETAILS_BUTTON = "//div[@class='c-card__header']//button[@data-testid='Link']"; + String CHECKLIST_DIV = "//h4[text()='Checklist - dokumenty požadované ke schválení']/parent::div"; + String CHECKLIST_LOADER = "//div[contains(@class, 'loader')]"; + String CHECKLIST_DOC = CHECKLIST_DIV + "//h5[text()='%s']"; + String CHECKLIST_DOC_FILE_UPLOAD = "(" + CHECKLIST_DIV + "//input[@type='file'])[1]"; + String CHECKLIST_DOC_UPLOAD_BUTTON = CHECKLIST_DIV + "//button[text()='Nahrát']"; + String CHECKLIST_DOC_UPLOAD_LOADER = CHECKLIST_DIV + "//button[text()='Nahrát'][contains(@class, 'loading')]"; + String CHECKLIST_DOC_UPLOADED = CHECKLIST_DIV + "//small[contains(text(), 'Dokument byl nahrán')]"; + + @Click(EDIT_CONTACT_DETAILS_BUTTON) + ContractDetailEditContactModal opensContactDetailsModal(); + + @Click(BUTTON_ASSIGN_PROCESSING_TEAM) + ContractAssignToBankModal clickAssignProcessingTeam(); + + @Wait(value = BUTTON_VALUATE, waitSecondsForElement = 10) + @Click(BUTTON_VALUATE) + ValuationPage clickValuateProperty(); + + @Click(value = BUTTON_CHECKLIST, andWait = @Wait(value = CHECKLIST_LOADER, until = Until.GONE)) + ContractDetailPage clickChecklist(); + + @Click(value = CHECKLIST_DOC, isStringDynamicXpath = true) + ContractDetailPage clickChecklistDoc(String doc); + + @Click(CHECKLIST_DOC_UPLOAD_BUTTON) + ContractChecklistDocumentDateModal clickChecklistDocUpload(); + + @FileUpload(CHECKLIST_DOC_FILE_UPLOAD) + ContractDetailPage checklistUploadFile(String filePath); + + @Wait(value = CHECKLIST_DOC_UPLOAD_LOADER, until = Until.GONE) + ContractDetailPage waitChecklistUpload(); + + @Wait(value = CHECKLIST_LOADER, until = Until.GONE) + ContractDetailPage waitChecklist(); + + @CheckElementPresent(CHECKLIST_DOC_UPLOADED) + ContractDetailPage checkChecklistDocUploaded(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/AddressType.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/AddressType.java new file mode 100644 index 0000000..eff0f31 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/AddressType.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.brokerportal.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum AddressType implements DynamicPathPart { + PERMANENT_ADDRESS("permanentAddress"), + CONTACT_ADDRESS("contactAddress"), + REAL_ADDRESS("realAddress"); + + private final String addressType; + + AddressType(String addressType) { + this.addressType = addressType; + } + + @Override + public String getValue() { + return addressType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Client.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Client.java new file mode 100644 index 0000000..c850258 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Client.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.brokerportal.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Client implements DynamicPathPart { + FIRST_CLIENT("0", "0"), + SECOND_CLIENT("1", "1"), + THIRD_CLIENT("2", "0"), + FOURTH_CLIENT("3", "1"); + + private final String client; + private final String clientInHousehold; + + Client(String client, String clientInHousehold) { + this.client = client; + this.clientInHousehold = clientInHousehold; + } + + @Override + public String getValue() { return client; } + + public String getInHouseholdValue() { return clientInHousehold; } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Household.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Household.java new file mode 100644 index 0000000..88f6586 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Household.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.brokerportal.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Household implements DynamicPathPart { + FIRST_HOUSEHOLD("0"), + SECOND_HOUSEHOLD("1"); + + private final String household; + + Household(String household) { + this.household = household; + } + + @Override + public String getValue() { + return household; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Product.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Product.java new file mode 100644 index 0000000..b9eefc5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Product.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.brokerportal.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Product implements DynamicPathPart { + MORTGAGE("mortgage"), + LOAN_RETAIL("loan-retail"), + LOAN_SME("loan-sme"), + ACCOUNT("current-account"), + REFINANSO("refinanso"); + + private final String product; + + Product(String product) { + this.product = product; + } + + @Override + public String getValue() { + return product; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Row.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Row.java new file mode 100644 index 0000000..3aae8c1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/enums/Row.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.brokerportal.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Row implements DynamicPathPart { + FIRST_ROW("0"), + SECOND_ROW("1"), + THIRD_ROW("2"), + FOURTH_ROW("3"); + + private final String row; + + Row(String row) { + this.row = row; + } + + @Override + public String getValue() { + return row; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/forgottenpassword/ForgottenPasswordConfirmPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/forgottenpassword/ForgottenPasswordConfirmPage.java new file mode 100644 index 0000000..8c80368 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/forgottenpassword/ForgottenPasswordConfirmPage.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.brokerportal.forgottenpassword; + +import cz.moneta.test.dsl.brokerportal.BrokerPortalLoginPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.forgottenpassword.ForgottenPasswordConfirmPage.GO_TO_LOGIN_PAGE_BUTTON; + +@Wait(GO_TO_LOGIN_PAGE_BUTTON) +public interface ForgottenPasswordConfirmPage extends WebFlow{ + String GO_TO_LOGIN_PAGE_BUTTON = "//a[@href = '#/']/button"; + + @Click(GO_TO_LOGIN_PAGE_BUTTON) + BrokerPortalLoginPage clickGoToLoginPage(); + } \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/forgottenpassword/ForgottenPasswordPage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/forgottenpassword/ForgottenPasswordPage.java new file mode 100644 index 0000000..df8687f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/forgottenpassword/ForgottenPasswordPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.brokerportal.forgottenpassword; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.brokerportal.forgottenpassword.ForgottenPasswordPage.LOGIN_NAME_INPUT; + +@Wait(LOGIN_NAME_INPUT) +public interface ForgottenPasswordPage extends WebFlow{ + String LOGIN_NAME_INPUT = "//input[@name = 'login']"; + String SEND_BUTTON = "//button[@type = 'submit']"; + + @TypeInto(LOGIN_NAME_INPUT) + ForgottenPasswordPage fillLogin(String login); + + @Click(SEND_BUTTON) + ForgottenPasswordConfirmPage clickSendButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/userprofile/UserProfilePage.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/userprofile/UserProfilePage.java new file mode 100644 index 0000000..1d67473 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/userprofile/UserProfilePage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.brokerportal.userprofile; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.brokerportal.userprofile.UserProfilePage.PROFILE_BUTTON; + +@Wait(PROFILE_BUTTON) +public interface UserProfilePage extends WebFlow { + String PROFILE_BUTTON = "//a[@href='#/profile']"; + String NOTIFICATIONS_BUTTON = "//a[@href='#/notifications']"; + String KOMPLETACE_SLOZKY_CHECKBOX = "//label[@id='stt_kompletace_slozky']"; + + @Click(NOTIFICATIONS_BUTTON) + UserProfilePage clickNotificationsButtons(); + + @CheckElementPresent(KOMPLETACE_SLOZKY_CHECKBOX) + UserProfilePage checkCheckboxKompletaceSlozky(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/FlatValuationData.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/FlatValuationData.java new file mode 100644 index 0000000..7f5708c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/FlatValuationData.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.brokerportal.valuationsdataprepare; + +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class FlatValuationData { + public String propertyArea; + public String flatUnit; + public String address; + public String userRole; + public String userFirstName; + public String userLastName; + public String userPhone; + public List valuationDetails; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/FlatValuationDetails.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/FlatValuationDetails.java new file mode 100644 index 0000000..f81483f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/FlatValuationDetails.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.brokerportal.valuationsdataprepare; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class FlatValuationDetails { + public String valuation; + public String type; + public String placing; + public String disposition; + public String state; + public int area; + public int areaOther; + public int outsideParking; + public int insideParking; + public int garage; + public int price; + public String houseType; + public String houseYear; + public int houseFloors; + public String houseStatus; + public String victoryScreen; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/HouseValuationData.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/HouseValuationData.java new file mode 100644 index 0000000..9ecd2e8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/HouseValuationData.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.brokerportal.valuationsdataprepare; + +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class HouseValuationData { + public String propertyArea; + public String houseUnit; + public String address; + public String userRole; + public String userFirstName; + public String userLastName; + public String userPhone; + public List valuationDetails; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/HouseValuationDetails.java b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/HouseValuationDetails.java new file mode 100644 index 0000000..53cd952 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/brokerportal/valuationsdataprepare/HouseValuationDetails.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.brokerportal.valuationsdataprepare; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class HouseValuationDetails { + public String valuation; + public String material; + public int year; + public String state; + public int landArea; + public int garageBasement; + public int garageGround; + public int garageSeparate; + public int price; + public int floorArea; + public String victoryScreen; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/caapi/CaApiBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/caapi/CaApiBuilder.java new file mode 100644 index 0000000..b985e76 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/caapi/CaApiBuilder.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.caapi; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.openapica.OpenApiCaEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class CaApiBuilder { + + private Harness harness; + + public CaApiBuilder(Harness harness) { + this.harness = harness; + } + + public RawRestRequest.Path prepareRequest() { + return RawRestRequest.jsonBuilder(harness.getEndpoint(OpenApiCaEndpoint.class)); + } + + public RawRestRequest.Path prepareSecuredRequest() { + return prepareRequestPathPrefix("secured/"); + } + + public RawRestRequest.Path prepareUnsecuredRequest() { + return prepareRequestPathPrefix("unsecured/"); + } + + private RawRestRequest.Path prepareRequestPathPrefix(String pathPrefix) { + OpenApiCaEndpoint endpoint = harness.getEndpoint(OpenApiCaEndpoint.class); + return RawRestRequest.jsonBuilder(endpoint) + .setPathPrefix(pathPrefix); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, OpenApiCaEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/CaGwAuthRequest.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/CaGwAuthRequest.java new file mode 100644 index 0000000..b665183 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/CaGwAuthRequest.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.cagw; + +import cz.moneta.test.harness.support.rest.Header; +import cz.moneta.test.harness.support.rest.RestRequest; + +public interface CaGwAuthRequest extends RestRequest { + + @Header("Authorization") + B withAuthorizationBearer(String authorizationBearer); + + @Header("application_id") + B withApplicationId(String applicationId); + + @Header("application_secret") + B withApplicationSecret(String applicationSecret); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/CaGwBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/CaGwBuilder.java new file mode 100644 index 0000000..a1a7274 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/CaGwBuilder.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.cagw; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.ApiBuilder; +import cz.moneta.test.dsl.cagw.auth.AuthBuilder; +import cz.moneta.test.dsl.cagw.oauth2.Oauth2Builder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class CaGwBuilder { + + private final Harness harness; + + public CaGwBuilder(Harness harness) { + this.harness = harness; + } + + public ApiBuilder api() { + return new ApiBuilder(harness); + } + + public Oauth2Builder oauth2() { + return new Oauth2Builder(harness); + } + + public AuthBuilder auth() { + return new AuthBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/DefaultCaGwResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/DefaultCaGwResponse.java new file mode 100644 index 0000000..b689650 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/DefaultCaGwResponse.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.cagw; + +import lombok.Data; + +@Data +public class DefaultCaGwResponse { + + private String error; + private String error_description; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/ApiBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/ApiBuilder.java new file mode 100644 index 0000000..d867bf4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/ApiBuilder.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.cagw.api; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.CblBuilder; +import cz.moneta.test.dsl.cagw.api.v2.V2Builder; +import cz.moneta.test.dsl.cagw.api.v4.V4Builder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.dsl.cagw.api.v1.V1Builder; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class ApiBuilder { + private final Harness harness; + + public ApiBuilder(Harness harness) { + this.harness = harness; + } + + public CblBuilder cbl() { + return new CblBuilder(harness); + } + + public V2Builder v2() { + return new V2Builder(harness); + } + + public V4Builder v4() { + return new V4Builder(harness); + } + + public V1Builder v1() { + return new V1Builder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/CblBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/CblBuilder.java new file mode 100644 index 0000000..fdab623 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/CblBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.cbl; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.PsdBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class CblBuilder { + private final Harness harness; + + public CblBuilder(Harness harness) { + this.harness = harness; + } + + public PsdBuilder psd() { + return new PsdBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/PsdBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/PsdBuilder.java new file mode 100644 index 0000000..10973ca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/PsdBuilder.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.AispBuilder; +import cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.PispBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class PsdBuilder { + private final Harness harness; + + public PsdBuilder(Harness harness) { + this.harness = harness; + } + + public PispBuilder pisp() { + return new PispBuilder(harness); + } + + public AispBuilder aisp() { + return new AispBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/AispBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/AispBuilder.java new file mode 100644 index 0000000..384dfc8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/AispBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.MyBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class AispBuilder { + private final Harness harness; + + public AispBuilder(Harness harness) { + this.harness = harness; + } + + public MyBuilder my() { + return new MyBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/MyBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/MyBuilder.java new file mode 100644 index 0000000..8209c5d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/MyBuilder.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.Account; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.AccountsBuilder; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.AccountsWithParams; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + + +public class MyBuilder { + private final Harness harness; + + public MyBuilder(Harness harness) { + this.harness = harness; + } + + public AccountsBuilder accounts() { + return new AccountsBuilder(harness); + } + + public Account prepareAccountsRequest() { + return getBuilder(Account.class); + } + + public AccountsWithParams prepareAccountsWithParamsRequest() { + return getBuilder(AccountsWithParams.class); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/Account.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/Account.java new file mode 100644 index 0000000..fc9df83 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/Account.java @@ -0,0 +1,8 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.Get; + +@Get("/api/cbl/psd/aisp/my/accounts") +public interface Account extends CaGwAuthRequest { +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/AccountsBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/AccountsBuilder.java new file mode 100644 index 0000000..969255a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/AccountsBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.IdBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class AccountsBuilder { + private final Harness harness; + + public AccountsBuilder(Harness harness) { + this.harness = harness; + } + + public IdBuilder id() { + return new IdBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/AccountsResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/AccountsResponse.java new file mode 100644 index 0000000..66105a6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/AccountsResponse.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +public class AccountsResponse { + private String nextPage; + private String pageCount; + private String pageNumber; + private String pageSize; + private Accounts[] accounts; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Accounts { + private String currency; + private String feePlanI18N; + private String id; + private Identification identification; + private String nameI18N; + private String productI18N; + private Servicer servicer; + private String[] ownersNames; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Identification { + private String iban; + private String other; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Servicer { + private String bankCode; + private String bic; + private String countryCode; + } + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/AccountsWithParams.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/AccountsWithParams.java new file mode 100644 index 0000000..623242b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/AccountsWithParams.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.Get; + +@Get("/api/cbl/psd/aisp/my/accounts") +public interface AccountsWithParams extends CaGwAuthRequest { + + AccountsWithParams sort(String sort); + + AccountsWithParams order(String order); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/IdBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/IdBuilder.java new file mode 100644 index 0000000..3ff8c8d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/IdBuilder.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.balance.Balance; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.transactions.Transactions; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.transactions.TransactionsWithParams; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class IdBuilder { + private final Harness harness; + + public IdBuilder(Harness harness) { + this.harness = harness; + } + + public Balance prepareBalanceRequest() { + return getBuilder(Balance.class); + } + + public Transactions prepareTransactionsRequest() { + return getBuilder(Transactions.class); + } + + public TransactionsWithParams prepareTransactionsWithParamsRequest() { + return getBuilder(TransactionsWithParams.class); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/balance/Balance.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/balance/Balance.java new file mode 100644 index 0000000..f4b2956 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/balance/Balance.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.balance; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.Get; +import cz.moneta.test.harness.support.rest.PathParam; + +@Get("/api/cbl/psd/aisp/my/accounts/{id}/balance") +public interface Balance extends CaGwAuthRequest { + + @PathParam("id") + Balance id(String id); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/balance/BalanceResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/balance/BalanceResponse.java new file mode 100644 index 0000000..a4da1ce --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/balance/BalanceResponse.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.balance; + +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; + +@Data +public class BalanceResponse { + private Balance[] balances; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Balance { + private Amount amount; + private String creditDebitIndicator; + private Date date; + private Type type; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Amount { + String currency; + double value; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Date { + String dateTime; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Type { + CodeOrProprietary codeOrProprietary; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class CodeOrProprietary { + String code; + } + } + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/transactions/Transactions.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/transactions/Transactions.java new file mode 100644 index 0000000..11513d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/transactions/Transactions.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.transactions; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.Get; +import cz.moneta.test.harness.support.rest.PathParam; + +@Get("/api/cbl/psd/aisp/my/accounts/{id}/transactions") +public interface Transactions extends CaGwAuthRequest { + + @PathParam("id") + Transactions id(String id); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/transactions/TransactionsResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/transactions/TransactionsResponse.java new file mode 100644 index 0000000..0b00e53 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/transactions/TransactionsResponse.java @@ -0,0 +1,205 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.transactions; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +public class TransactionsResponse { + private int nextPage; + private int pageCount; + private int pageNumber; + private int pageSize; + private Transactions[] transactions; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Transactions { + private Amount amount; + private BookingDate bookingDate; + private String creditDebitIndicator; + private EntryDetails entryDetails; + private String entryReference; + private String reversalIndicator; + private String status; + private ValueDate valueDate; + private EnteredDate enteredDate; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Amount { + private String currency; + private double value; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class BookingDate { + private String date; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class EntryDetails { + private TransactionDetails transactionDetails; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class TransactionDetails { + private Purpose purpose; + private References references; + private RelatedParties relatedParties; + private RemittanceInformation remittanceInformation; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Purpose { + private String proprietary; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class References { + private String chequeNumber; + private String clearingSystemReference; + private String endToEndIdentification; + private String instructionIdentification; + private String paymentInformationIdentification; + private String transactionDescription; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class RelatedParties { + private Creditor creditor; + private CreditorAccount creditorAccount; + private Debtor debtor; + private DebtorAccount debtorAccount; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Creditor { + private String name; + private PostalAddress postalAddress; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class PostalAddress { + private String addressLine; + private String country; + private String townName; + } + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class CreditorAccount { + private String currency; + private Identification identification; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Identification { + private String iban; + private Other other; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Other { + private String identification; + } + } + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Debtor { + private String name; + private PostalAddress postalAddress; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class PostalAddress { + private String addressLine; + private String country; + private String townName; + } + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class DebtorAccount { + private String currency; + private Identification identification; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Identification { + private String iban; + private Other other; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Other { + private String identification; + } + } + } + } + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class RemittanceInformation { + private Structured structured; + private String unstructured; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Structured { + private CreditorReferenceInformation creditorReferenceInformation; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class CreditorReferenceInformation { + private String reference; + } + } + } + } + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class ValueDate { + private String date; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class EnteredDate { + private String date; + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/transactions/TransactionsWithParams.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/transactions/TransactionsWithParams.java new file mode 100644 index 0000000..be6663b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/aisp/my/accounts/id/transactions/TransactionsWithParams.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.transactions; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.Get; +import cz.moneta.test.harness.support.rest.PathParam; + +@Get("/api/cbl/psd/aisp/my/accounts/{id}/transactions") +public interface TransactionsWithParams extends CaGwAuthRequest { + + @PathParam("id") + TransactionsWithParams id(String id); + + TransactionsWithParams fromDate(String fromDate); + + TransactionsWithParams toDate(String toDate); + + TransactionsWithParams size(String size); + + TransactionsWithParams page(String page); + + TransactionsWithParams sort(String sort); + + TransactionsWithParams order(String order); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/PispBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/PispBuilder.java new file mode 100644 index 0000000..6eb9e22 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/PispBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.MyBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class PispBuilder { + private final Harness harness; + + public PispBuilder(Harness harness) { + this.harness = harness; + } + + public MyBuilder my() { + return new MyBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/MyBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/MyBuilder.java new file mode 100644 index 0000000..1384d91 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/MyBuilder.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments.Payment; +import cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments.PaymentsBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class MyBuilder { + private final Harness harness; + + public MyBuilder(Harness harness) { + this.harness = harness; + } + + public PaymentsBuilder payments() { + return new PaymentsBuilder(harness); + } + + public Payment preparePaymentRequest() { + return getBuilder(Payment.class); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/Amount.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/Amount.java new file mode 100644 index 0000000..9ca9bf5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/Amount.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class Amount { + + private InstructedAmount instructedAmount; + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class InstructedAmount { + private int value; + private String currency; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/Creditor.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/Creditor.java new file mode 100644 index 0000000..e4b231c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/Creditor.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class Creditor { + private PostalAddress postalAddress; + private String name; + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class PostalAddress { + private String addressLine; + private String country; + private String townName; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/CreditorAccount.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/CreditorAccount.java new file mode 100644 index 0000000..f108d51 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/CreditorAccount.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class CreditorAccount { + private String currency; + private CreditorIdentification identification; + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class CreditorIdentification { + private String iban; + private Other other; + } + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Other { + private String identification; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/CreditorAgent.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/CreditorAgent.java new file mode 100644 index 0000000..3448bd5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/CreditorAgent.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class CreditorAgent { + private FinancialInstitutionIdentification financialInstitutionIdentification; + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class FinancialInstitutionIdentification { + private String name; + private String bic; + private PostalAddress postalAddress; + } + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class PostalAddress { + private String addressLine; + private String country; + private String townName; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/DebtorAccount.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/DebtorAccount.java new file mode 100644 index 0000000..9b2d4fa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/DebtorAccount.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class DebtorAccount { + private String currency; + private DebtorIdentification identification; + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class DebtorIdentification { + private Other other; + private String iban; + } + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Other { + private String identification; + } +} + + + + diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/Payment.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/Payment.java new file mode 100644 index 0000000..4334215 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/Payment.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.Post; + +@Post("/api/cbl/psd/pisp/my/payments") +public interface Payment extends CaGwAuthRequest { + + Payment amount(Amount amount); + + Payment debtorAccount(DebtorAccount debtorAccount); + + Payment creditorAccount(CreditorAccount creditorAccount); + + Payment requestedExecutionDate(String requestedExecutionDate); + + Payment remittanceInformation (RemittanceInformation remittanceInformation); + + Payment chargeBearer (String chargeBearer); + + Payment transactionConfirmation (String transactionConfirmation); + + Payment creditorAgent (CreditorAgent creditorAgent); + + Payment paymentIdentification (PaymentIdentification paymentIdentification); + + Payment creditor (Creditor creditor); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentIdentification.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentIdentification.java new file mode 100644 index 0000000..07090e4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentIdentification.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class PaymentIdentification { + private String endToEndIdentification; + private String transactionIdentification; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentRequest.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentRequest.java new file mode 100644 index 0000000..f4b76b3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentRequest.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments; + +import lombok.Data; + +@Data +public class PaymentRequest { + + Amount amount; + DebtorAccount debtorAccount; + CreditorAccount creditorAccount; + String requestedExecutionDate; + RemittanceInformation remittanceInformation; + String chargeBearer; + String transactionConfirmation; + PaymentIdentification paymentIdentification; + CreditorAgent creditorAgent; + Creditor creditor; + + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentResponse.java new file mode 100644 index 0000000..d3d5c38 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentResponse.java @@ -0,0 +1,93 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +@AllArgsConstructor +@Data +public class PaymentResponse { + private Amount amount; + private Object creditor; + private CreditorAccountResponse creditorAccount; + private CreditorAgent creditorAgent; + private DebtorAccount debtorAccount; + private PaymentIdentification paymentIdentification; + private Object paymentTypeInformation; + private RemittanceInformation remittanceInformation; + private String requestedExecutionDate; + private String chargeBearer; + private String transactionConfirmation; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class CreditorAccountResponse { + private Identification identification; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Identification { + private String iban; + private Object other; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class CreditorAgent { + private FinancialInstitutionIdentification financialInstitutionIdentification; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class FinancialInstitutionIdentification { + private String bic; + private String name; + private PostalAddress postalAddress; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class PostalAddress { + private String addressLine; + private String country; + private String townName; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class PaymentIdentification { + private String endToEndIdentification; + private String transactionIdentification; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class RemittanceInformation { + private Structured structured; + private String unstructured; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Structured { + private CreditorReferenceInformation creditorReferenceInformation; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class CreditorReferenceInformation { + private String reference; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentsBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentsBuilder.java new file mode 100644 index 0000000..26ccb88 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/PaymentsBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments.paymentid.PaymentIdBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class PaymentsBuilder { + private final Harness harness; + + public PaymentsBuilder(Harness harness) { + this.harness = harness; + } + + public PaymentIdBuilder paymentId() { + return new PaymentIdBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/RemittanceInformation.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/RemittanceInformation.java new file mode 100644 index 0000000..b799aa9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/RemittanceInformation.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class RemittanceInformation { + private String unstructured; + private Structured structured; + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Structured { + private CreditorReferenceInformation creditorReferenceInformation; + } + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class CreditorReferenceInformation { + private String reference; + } +} + + + + diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/paymentid/PaymentIdBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/paymentid/PaymentIdBuilder.java new file mode 100644 index 0000000..93bab6f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/paymentid/PaymentIdBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments.paymentid; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments.paymentid.status.Status; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class PaymentIdBuilder { + private final Harness harness; + + public PaymentIdBuilder(Harness harness) { + this.harness = harness; + } + + public Status prepareStatusRequest() { + return getBuilder(Status.class); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/paymentid/status/Status.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/paymentid/status/Status.java new file mode 100644 index 0000000..25face6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/paymentid/status/Status.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments.paymentid.status; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.Get; +import cz.moneta.test.harness.support.rest.PathParam; + + +@Get("/api/cbl/psd/pisp/payments/{paymentId}/status") +public interface Status extends CaGwAuthRequest { + + @PathParam("paymentId") + Status paymentId(String paymentId); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/paymentid/status/StatusResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/paymentid/status/StatusResponse.java new file mode 100644 index 0000000..4c159c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/cbl/psd/pisp/my/payments/paymentid/status/StatusResponse.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments.paymentid.status; + +import lombok.Data; + +@Data +public class StatusResponse { + + String instructionStatus; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/V1Builder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/V1Builder.java new file mode 100644 index 0000000..8c2f1d0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/V1Builder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.v1; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v1.external.ExternalBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class V1Builder { + private final Harness harness; + + public V1Builder(Harness harness) { + this.harness = harness; + } + + public ExternalBuilder external() { + return new ExternalBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/ExternalBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/ExternalBuilder.java new file mode 100644 index 0000000..61d96a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/ExternalBuilder.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.cagw.api.v1.external; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v1.external.product.ProductBuilder; +import cz.moneta.test.dsl.cagw.api.v1.external.service.ServiceBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class ExternalBuilder { + private final Harness harness; + + public ExternalBuilder(Harness harness) { + this.harness = harness; + } + + public ProductBuilder product() { + return new ProductBuilder(harness); + } + + public ServiceBuilder service() { + return new ServiceBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/ProductBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/ProductBuilder.java new file mode 100644 index 0000000..71206ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/ProductBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.product; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.CloanBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class ProductBuilder { + private final Harness harness; + + public ProductBuilder(Harness harness) { + this.harness = harness; + } + + public CloanBuilder cbl() { + return new CloanBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/CloanBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/CloanBuilder.java new file mode 100644 index 0000000..54bdde4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/CloanBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.product.cloan; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application.ApplicationBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class CloanBuilder { + private final Harness harness; + + public CloanBuilder(Harness harness) { + this.harness = harness; + } + + public ApplicationBuilder application() { + return new ApplicationBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Address.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Address.java new file mode 100644 index 0000000..7514676 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Address.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class Address { + private String street; + private String descriptiveNumber; + private String orientationNumber; + private String town; + private String zip; + private String country; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Application.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Application.java new file mode 100644 index 0000000..6a98cae --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Application.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.Post; + +@Post("/cbl//external/product/cloan/application") +//working url for cbl, only workarround +//@Post("/cbl//external/product/cloan/application") +public interface Application extends CaGwAuthRequest { + + Application loan(Loan loan); + Application client(Client client); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/ApplicationBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/ApplicationBuilder.java new file mode 100644 index 0000000..a497f17 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/ApplicationBuilder.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class ApplicationBuilder { + private final Harness harness; + + public ApplicationBuilder(Harness harness) { + this.harness = harness; + } + + public Application prepareApplicationRequest() { + return getBuilder(Application.class); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/ApplicationTokenRequest.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/ApplicationTokenRequest.java new file mode 100644 index 0000000..9bc3465 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/ApplicationTokenRequest.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application; + +import lombok.Data; + +@Data +public class ApplicationTokenRequest { + Loan loan; + Client client; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/ApplicationTokenResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/ApplicationTokenResponse.java new file mode 100644 index 0000000..16bb4ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/ApplicationTokenResponse.java @@ -0,0 +1,8 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application; + +import lombok.Data; + +@Data +public class ApplicationTokenResponse { + Long applicationId; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Client.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Client.java new file mode 100644 index 0000000..9c003b8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Client.java @@ -0,0 +1,92 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class Client { + private String firstname; + private String lastname; + private String birthNumber; + private ProofOfIdentity primaryProofOfIdentity; + private ProofOfIdentity secondaryProofOfIdentity; + private String nationality; + private Address contactAddress; + private Address permanentAddress; + private Integer currentAddressSinceYear; + private String phoneNumber; + private String email; + private String maritalStatus; + private String restrictedJoinedAssets; + private String accommodationType; + private String educationLevel; + private Occupation occupation; + private Consents consents; + private String familyBusiness; + private String familyBusinessPercentage; + private Integer netMonthlyIncome; + private Integer homeIncome; + private String incomeTaxBase; + private Integer grossIncome; + private String tax; + private String taxableYear; + private Integer dependentPersons; + private Integer otherLoanPayments; + private Integer wageDeductions; + private Integer otherExpenses; + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class ProofOfIdentity { + private String type; + private String number; + //FIXME correct date pattern + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "CET") + private Date expirationDate; + private String issuingCountry; + } + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Occupation { + private String status; + private Integer code; + private Institution institution; + private String employmentFrom; + private String employmentTo; + private Boolean trialPeriod; + private Boolean onNotice; + } + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Institution { + private String name; + private String ico; + private String phoneNumber; + private Address address; + } + + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Consents { + private Boolean dataProcessing; + private Boolean debtRegisterCheck; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Loan.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Loan.java new file mode 100644 index 0000000..73ef7a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/product/cloan/application/Loan.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class Loan { + private Integer termMonths; + private Integer amount; + private Boolean insurance; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/ServiceBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/ServiceBuilder.java new file mode 100644 index 0000000..7466c07 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/ServiceBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.service; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v1.external.service.voicebot.VoicebotBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class ServiceBuilder { + private final Harness harness; + + public ServiceBuilder(Harness harness) { + this.harness = harness; + } + + public VoicebotBuilder voicebot() { + return new VoicebotBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/VoicebotBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/VoicebotBuilder.java new file mode 100644 index 0000000..fa51483 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/VoicebotBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.service.voicebot; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v1.external.service.voicebot.voicepassworddetail.VoicePasswordDetail; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class VoicebotBuilder { + private final Harness harness; + + public VoicebotBuilder(Harness harness) { + this.harness = harness; + } + + public VoicePasswordDetail prepareVoicePasswordDetailApi() { + return getBuilder(VoicePasswordDetail.class); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/voicepassworddetail/VoicePasswordDetail.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/voicepassworddetail/VoicePasswordDetail.java new file mode 100644 index 0000000..0b5770b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/voicepassworddetail/VoicePasswordDetail.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.service.voicebot.voicepassworddetail; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.Post; + +@Post("/api/v1/external/service/voicebot/voice_password_detail") +public interface VoicePasswordDetail extends CaGwAuthRequest { + + VoicePasswordDetail entityId(String entityId); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/voicepassworddetail/VoicePasswordDetailRequest.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/voicepassworddetail/VoicePasswordDetailRequest.java new file mode 100644 index 0000000..5050c5e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/voicepassworddetail/VoicePasswordDetailRequest.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.service.voicebot.voicepassworddetail; + +import lombok.Data; + +@Data +public class VoicePasswordDetailRequest { + + private String entityId; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/voicepassworddetail/VoicePasswordDetailResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/voicepassworddetail/VoicePasswordDetailResponse.java new file mode 100644 index 0000000..417df29 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v1/external/service/voicebot/voicepassworddetail/VoicePasswordDetailResponse.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.cagw.api.v1.external.service.voicebot.voicepassworddetail; + +import cz.moneta.test.dsl.cagw.DefaultCaGwResponse; +import lombok.Data; + +@Data +public class VoicePasswordDetailResponse extends DefaultCaGwResponse { + + private String attempts; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/V2Builder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/V2Builder.java new file mode 100644 index 0000000..acfc2c4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/V2Builder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.v2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v2.external.ExternalBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class V2Builder { + private final Harness harness; + + public V2Builder(Harness harness) { + this.harness = harness; + } + + public ExternalBuilder external() { + return new ExternalBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/ExternalBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/ExternalBuilder.java new file mode 100644 index 0000000..c1ff1d3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/ExternalBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.v2.external; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; +import cz.moneta.test.dsl.cagw.api.v2.external.client.ClientBuilder; + +public class ExternalBuilder { + private final Harness harness; + + public ExternalBuilder(Harness harness) { + this.harness = harness; + } + + public ClientBuilder client() { + return new ClientBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/ClientBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/ClientBuilder.java new file mode 100644 index 0000000..115030e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/ClientBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.v2.external.client; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; +import cz.moneta.test.dsl.cagw.api.v2.external.client.kyc.KycBuilder; + +public class ClientBuilder { + private final Harness harness; + + public ClientBuilder(Harness harness) { + this.harness = harness; + } + + public KycBuilder kyc() { + return new KycBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/KycBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/KycBuilder.java new file mode 100644 index 0000000..2292cba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/KycBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.v2.external.client.kyc; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v2.external.client.kyc.businesscard.BusinessCardBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class KycBuilder { + private final Harness harness; + + public KycBuilder(Harness harness) { + this.harness = harness; + } + + public BusinessCardBuilder bussinesCard() { + return new BusinessCardBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/businesscard/BusinessCard.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/businesscard/BusinessCard.java new file mode 100644 index 0000000..05c27e1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/businesscard/BusinessCard.java @@ -0,0 +1,8 @@ +package cz.moneta.test.dsl.cagw.api.v2.external.client.kyc.businesscard; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.Get; + +@Get("/api/v2/external/client/kyc/businesscard") +public interface BusinessCard extends CaGwAuthRequest { +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/businesscard/BusinessCardBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/businesscard/BusinessCardBuilder.java new file mode 100644 index 0000000..42bcb83 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/businesscard/BusinessCardBuilder.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.cagw.api.v2.external.client.kyc.businesscard; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class BusinessCardBuilder { + private final Harness harness; + + public BusinessCardBuilder(Harness harness) { + this.harness = harness; + } + + public BusinessCard prepareBusinessCardRequest() { + return getBuilder(BusinessCard.class); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/businesscard/BusinessCardResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/businesscard/BusinessCardResponse.java new file mode 100644 index 0000000..3f582ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v2/external/client/kyc/businesscard/BusinessCardResponse.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.cagw.api.v2.external.client.kyc.businesscard; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +public class BusinessCardResponse { + private Address address; + private String birthDate; + private String birthNumber; + private String birthPlace; + private String firstName; + private String gender; + private String lastName; + private String nationality; + private PrimaryIdentityPaper primaryIdentityPaper; + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class Address { + private String buildingNumber; + private String city; + private String country; + private String street; + private String streetNumber; + private String zip; + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + public static class PrimaryIdentityPaper { + private String expirationDate; + private String issuingCountry; + private String number; + private String type; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/V4Builder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/V4Builder.java new file mode 100644 index 0000000..e5ff45a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/V4Builder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.v4; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v4.token.TokenBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class V4Builder { + private final Harness harness; + + public V4Builder(Harness harness) { + this.harness = harness; + } + + public TokenBuilder token() { + return new TokenBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/ApiV4Token.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/ApiV4Token.java new file mode 100644 index 0000000..9e612bc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/ApiV4Token.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.cagw.api.v4.token; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.CallType; +import cz.moneta.test.harness.support.rest.Post; + +@Deprecated +@Post(value = "api/v4/token", callType = CallType.FORM) +public interface ApiV4Token extends CaGwAuthRequest { + + ApiV4Token code(String code); + + ApiV4Token client_id(String clientId); + + ApiV4Token client_secret(String client_secret); + + ApiV4Token grant_type(String grant_type); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/TokenBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/TokenBuilder.java new file mode 100644 index 0000000..a3d81c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/TokenBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.api.v4.token; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class TokenBuilder { + + private final Harness harness; + + public TokenBuilder(Harness harness) { + this.harness = harness; + } + + public ApiV4Token prepareTokenRequest() { + return getBuilder(ApiV4Token.class); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/TokenRequest.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/TokenRequest.java new file mode 100644 index 0000000..5d2ebd1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/TokenRequest.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.cagw.api.v4.token; + +import lombok.Data; + +@Data +public class TokenRequest { + + private String code; + private String client_id; + private String client_secret; + private String grant_type; + +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/TokenResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/TokenResponse.java new file mode 100644 index 0000000..1f0f9c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/api/v4/token/TokenResponse.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.cagw.api.v4.token; + +import lombok.Data; + +@Data +public class TokenResponse { + + private String access_token; + private String token_type; + private String expires_in; + private String refresh_token; + private String scope; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/AuthBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/AuthBuilder.java new file mode 100644 index 0000000..bd1ba22 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/AuthBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.auth; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.auth.oauth.OauthBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class AuthBuilder { + private final Harness harness; + + public AuthBuilder(Harness harness) { + this.harness = harness; + } + + public OauthBuilder oauth() { + return new OauthBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/OauthBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/OauthBuilder.java new file mode 100644 index 0000000..655bf81 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/OauthBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.auth.oauth; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.auth.oauth.v2.V2Builder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class OauthBuilder { + private final Harness harness; + + public OauthBuilder(Harness harness) { + this.harness = harness; + } + + public V2Builder v2() { + return new V2Builder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/V2Builder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/V2Builder.java new file mode 100644 index 0000000..bf2cff9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/V2Builder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.auth.oauth.v2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.auth.oauth.v2.token.TokenBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class V2Builder { + private final Harness harness; + + public V2Builder(Harness harness) { + this.harness = harness; + } + + public TokenBuilder token() { + return new TokenBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/OauthToken.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/OauthToken.java new file mode 100644 index 0000000..05e0153 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/OauthToken.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.cagw.auth.oauth.v2.token; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.CallType; +import cz.moneta.test.harness.support.rest.Post; + +@Post(value = "auth/oauth/v2/token", callType = CallType.FORM) +public interface OauthToken extends CaGwAuthRequest { + + OauthToken client_id(String clientId); + + OauthToken client_secret(String client_secret); + + OauthToken grant_type(String grant_type); + + OauthToken scope(String scope); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/OauthTokenRequest.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/OauthTokenRequest.java new file mode 100644 index 0000000..552107f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/OauthTokenRequest.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.cagw.auth.oauth.v2.token; + +import lombok.Data; + +@Data +public class OauthTokenRequest { + + private String client_id; + private String client_secret; + private String grant_type; + private String scope; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/OauthTokenResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/OauthTokenResponse.java new file mode 100644 index 0000000..e8a6052 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/OauthTokenResponse.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.cagw.auth.oauth.v2.token; + +import cz.moneta.test.dsl.cagw.DefaultCaGwResponse; +import lombok.Data; + +import java.util.List; + +@Data +public class OauthTokenResponse extends DefaultCaGwResponse { + + private String access_token; + private String token_type; + private String expires_in; + private String refresh_token; + private String scope; + private List resource; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/TokenBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/TokenBuilder.java new file mode 100644 index 0000000..a85d305 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/auth/oauth/v2/token/TokenBuilder.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.cagw.auth.oauth.v2.token; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + + +public class TokenBuilder { + + private final Harness harness; + + public TokenBuilder(Harness harness) { + this.harness = harness; + } + + public OauthToken prepareOauth2V2TokenRequest() { + return getBuilder(OauthToken.class); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/Oauth2Builder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/Oauth2Builder.java new file mode 100644 index 0000000..396a9f8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/Oauth2Builder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.cagw.oauth2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.oauth2.token.TokenBuilder; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class Oauth2Builder { + private final Harness harness; + + public Oauth2Builder(Harness harness) { + this.harness = harness; + } + + public TokenBuilder token() { + return new TokenBuilder(harness); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/Oauth2Token.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/Oauth2Token.java new file mode 100644 index 0000000..0b58c10 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/Oauth2Token.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.cagw.oauth2.token; + +import cz.moneta.test.dsl.cagw.CaGwAuthRequest; +import cz.moneta.test.harness.support.rest.CallType; +import cz.moneta.test.harness.support.rest.Post; + +@Deprecated +@Post(value = "/oauth2/token", callType = CallType.FORM) +public interface Oauth2Token extends CaGwAuthRequest { + + Oauth2Token code(String code); + + Oauth2Token client_id(String clientId); + + Oauth2Token client_secret(String client_secret); + + Oauth2Token grant_type(String grant_type); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/Oauth2TokenRequest.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/Oauth2TokenRequest.java new file mode 100644 index 0000000..b50a8c6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/Oauth2TokenRequest.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.cagw.oauth2.token; + +import lombok.Data; + +@Data +public class Oauth2TokenRequest { + + private String code; + private String client_id; + private String client_secret; + private String grant_type; + +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/Oauth2TokenResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/Oauth2TokenResponse.java new file mode 100644 index 0000000..1534eda --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/Oauth2TokenResponse.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.cagw.oauth2.token; + +import lombok.Data; + +@Data +public class Oauth2TokenResponse { + + private String access_token; + private String token_type; + private String expires_in; + private String refresh_token; + private String scope; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/TokenBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/TokenBuilder.java new file mode 100644 index 0000000..545391d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cagw/oauth2/token/TokenBuilder.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.cagw.oauth2.token; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + + +public class TokenBuilder { + + private final Harness harness; + + public TokenBuilder(Harness harness) { + this.harness = harness; + } + + public Oauth2Token prepareOauth2TokenRequest() { + return getBuilder(Oauth2Token.class); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, CaGwEndpoint.class, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cashman/Cashman.java b/tests/src/main/java/cz/moneta/test/dsl/cashman/Cashman.java new file mode 100644 index 0000000..cdc21d7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cashman/Cashman.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.cashman; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cashman.pages.CashmanHomePage; +import cz.moneta.test.harness.endpoints.cashman.CashmanEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class Cashman { + + private final Harness harness; + private CashmanEndpoint cashmanEndpoint; + + public Cashman(Harness harness) { + this.harness = harness; + } + + public CashmanHomePage openCashmanHomePage() { + cashmanEndpoint = harness.getEndpoint(CashmanEndpoint.class); + cashmanEndpoint.openApplication(); + return Builders.newWebFlowBuilder(CashmanHomePage.class, cashmanEndpoint, harness); + } + + public void closeCashman() { + harness.closeEndpoint(harness.getEndpoint(CashmanEndpoint.class)); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cashman/enums/CashmanOrderStatus.java b/tests/src/main/java/cz/moneta/test/dsl/cashman/enums/CashmanOrderStatus.java new file mode 100644 index 0000000..bf69972 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cashman/enums/CashmanOrderStatus.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.cashman.enums; + +import lombok.Getter; + +@Getter +public enum CashmanOrderStatus { + + APPROVED("Schválená"); + + private final String status; + + CashmanOrderStatus(String status) { + this.status = status; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/CashmanHomePage.java b/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/CashmanHomePage.java new file mode 100644 index 0000000..3c88be5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/CashmanHomePage.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.cashman.pages; + +import cz.moneta.test.dsl.cashman.pages.menu_OM.CashmanOMCzkPragueList; +import cz.moneta.test.dsl.cashman.pages.menu_OM.CashmanOMNewOrderPage; +import cz.moneta.test.dsl.cashman.pages.menu_deposit.CashmanDepositCzkPrague; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.cashman.CashmanEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.cashman.pages.CashmanHomePage.LOGO; + +@Wait(LOGO) +public interface CashmanHomePage extends WebFlow, StoreAccessor { + String LOGO = "//img[ @alt='CashMan']"; + String OM = "//a[@class='nav-link dropdown-toggle'][contains(text(),' OM')]"; + String OM_NEW_ORDER = "//a[@href='/nova-objednavka-om']"; + String OM_CZK_PRAGUE = "//a[@href='/om-orders?idDeposit=1&orderEditType=CZK']"; + String DEPOSIT = "//a[@class='nav-link dropdown-toggle'][contains(text(),' Depozitum')]"; + String DEPOSIT_CZK_PRAGUE = "//a[@href='/depo-CZK?idDeposit=1']"; + + @CustomAction + default void clickOnItem(String partOfMenuXpath, String itemXpath) { + CashmanEndpoint endpoint = getEndpoint(CashmanEndpoint.class); + endpoint.click(() -> partOfMenuXpath); + endpoint.click(() -> itemXpath); + } + + @CustomAction + default CashmanOMNewOrderPage clickOnOMAndChooseNewOrder() { + clickOnItem(OM, OM_NEW_ORDER); + return null; + } + + @CustomAction + default CashmanOMCzkPragueList clickOnOMAndChooseCzkPrague() { + clickOnItem(OM, OM_CZK_PRAGUE); + return null; + } + + @CustomAction + default CashmanDepositCzkPrague clickOnDepositAndChooseCzkPrague() { + clickOnItem(DEPOSIT, DEPOSIT_CZK_PRAGUE); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_OM/CashmanOMCzkPragueList.java b/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_OM/CashmanOMCzkPragueList.java new file mode 100644 index 0000000..abd4c10 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_OM/CashmanOMCzkPragueList.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.cashman.pages.menu_OM; + +import cz.moneta.test.dsl.cashman.pages.CashmanHomePage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.cashman.pages.menu_OM.CashmanOMCzkPragueList.FILTER_POPOVER; + +@Wait(FILTER_POPOVER) +public interface CashmanOMCzkPragueList extends WebFlow { + String FILTER_POPOVER = "//a[@id='popoverTrig']"; + String WAITING_FLAG_CHECKBOX = "//input[@name='waitingFlag']"; + String DATE_FROM_INPUT = "//input[@name='modifiedDateFrom']"; + String ORDER_ID_INPUT = "//input[@name='realId']"; + String SUBMIT_FILTER = "//button[@name='filter']"; + String ORDER_ID_TABLE = "//tbody//a[contains(text(), '%s')]"; + String ORDER_STATUS_TABLE = "//tbody//span[contains(text(), '%s')]"; + String FILTERED_SPAN = "//span[contains(text(), 'Filtrování objednávek je aktivní.')]"; + String HOME_PAGE = "//a[@href='/domu']"; + + @Click(FILTER_POPOVER) + CashmanOMCzkPragueList clickOnFilter(); + + @TypeInto(ORDER_ID_INPUT) + CashmanOMCzkPragueList fillOrderId(String orderId); + + @Click(WAITING_FLAG_CHECKBOX) + CashmanOMCzkPragueList clickOnWaitingFlag(); + + @TypeInto(DATE_FROM_INPUT) + @KeyPress(Key.ENTER) + CashmanOMCzkPragueList fillDateFrom(String date); + + @Click(SUBMIT_FILTER) + CashmanOMCzkPragueList submitFilter(); + + @Wait(value = ORDER_ID_TABLE, isStringDynamicXpath = true) + CashmanOMCzkPragueList waitForOrderIdPresence(String orderId); + + @CheckElementPresent(value = ORDER_STATUS_TABLE, isStringDynamicXpath = true) + CashmanOMCzkPragueList checkOrderStatus(String orderStatus); + + @Click(HOME_PAGE) + CashmanHomePage clickOnHomePage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_OM/CashmanOMNewOrderPage.java b/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_OM/CashmanOMNewOrderPage.java new file mode 100644 index 0000000..2172b04 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_OM/CashmanOMNewOrderPage.java @@ -0,0 +1,73 @@ +package cz.moneta.test.dsl.cashman.pages.menu_OM; + +import cz.moneta.test.dsl.cashman.pages.CashmanHomePage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.cashman.pages.menu_OM.CashmanOMNewOrderPage.OM_DROPDOWN; + +@Wait(OM_DROPDOWN) +public interface CashmanOMNewOrderPage extends WebFlow { + String OM_DROPDOWN = "//button[@class='btn dropdown-toggle bs-placeholder btn-light']"; + String OM_3693 = "//a[@id='bs-select-2-103']"; + String CREATE_BUTTON = "//button[@id='confirm-send-order-to-ca-button-id']"; + String REQUIRED_DATE_INPUT = "//input[@id='requiredDate']"; + String NOTE_TEXTAREA = "//textarea[@id='note']"; + String BILLS_FLAG_CHECKBOX = "//input[@id='billsFlag']"; + String LOANS_REGISTRATION_NUMBERS_TEXTAREA = "//textarea[@id='loansRegistrationNumbers']"; + String NOMINAL_100_INPUT = "//input[@nominalid='trueNOTECZK100']"; + String NOMINAL_10_INPUT = "//input[@nominalid='trueCOINCZK10']"; + String BANKNOTES_SUMMARY = "(//span[@class='currency-list-no-break'])[14][contains(text(),'%s')]"; + String COINS_SUMMARY = "(//span[@class='currency-list-no-break'])[16][contains(text(),'%s')]"; + String SUMMARY = "(//span[@class='currency-list-no-break'])[18][contains(text(),'%s')]"; + String SEND = "//button[@class='btn btn-content confirm-btn btn-confirm']"; + String ORDER_ID_XPATH = "//div[@class='portlet-msg-success']/span"; + String ORDER_ID_KEY = "ORDER_ID_KEY"; + String HOME_PAGE = "//a[@href='/domu']"; + + @Click(OM_DROPDOWN) + @Click(OM_3693) + CashmanOMNewOrderPage selectOM3693(); + + @Click(CREATE_BUTTON) + CashmanOMNewOrderPage createNewOrder(); + + @TypeInto(REQUIRED_DATE_INPUT) + @KeyPress(Key.ENTER) + CashmanOMNewOrderPage fillRequiredDate(String date); + + @TypeInto(NOTE_TEXTAREA) + CashmanOMNewOrderPage fillNote(String note); + + @Click(BILLS_FLAG_CHECKBOX) + CashmanOMNewOrderPage clickOnBillsFlagCheckBox(); + + @TypeInto(LOANS_REGISTRATION_NUMBERS_TEXTAREA) + CashmanOMNewOrderPage fillLoansRegistrationNumbers(String loansRegistrationNumbers); + + @TypeInto(value = NOMINAL_100_INPUT, clear = true) + CashmanOMNewOrderPage fillNominal100Amount(String amountBanknotes); + + @TypeInto(value = NOMINAL_10_INPUT, clear = true) + CashmanOMNewOrderPage fillNominal10Amount(String amountCoins); + + @CheckElementPresent(value = BANKNOTES_SUMMARY, isStringDynamicXpath = true) + CashmanOMNewOrderPage checkBanknotesSummary(String banknotesSummary); + + @CheckElementPresent(value = COINS_SUMMARY, isStringDynamicXpath = true) + CashmanOMNewOrderPage checkCoinsSummary(String coinsSummary); + + @CheckElementPresent(value = SUMMARY, isStringDynamicXpath = true) + CashmanOMNewOrderPage checkSummary(String summary); + + @KeyPress(Key.ENTER) + CashmanOMNewOrderPage submitNewOrder(); + + @Click(value = SEND, andWait = @Wait(value = ORDER_ID_XPATH, until = Until.VISIBLE)) + CashmanOMNewOrderPage sendNewOrder(); + + @StoreElementContent(storeKey = ORDER_ID_KEY, value = ORDER_ID_XPATH) + CashmanOMNewOrderPage storeOrderId(); + + @Click(HOME_PAGE) + CashmanHomePage clickOnHomePage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_deposit/CashmanDepositCzkPrague.java b/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_deposit/CashmanDepositCzkPrague.java new file mode 100644 index 0000000..c361e83 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_deposit/CashmanDepositCzkPrague.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.cashman.pages.menu_deposit; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface CashmanDepositCzkPrague extends WebFlow { + String LEVY_OM = "(//a[contains(text(), 'Odvody OM')])[1]"; + + @Click(LEVY_OM) + CashmanDepositCzkPragueList clickOnLevyOM(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_deposit/CashmanDepositCzkPragueList.java b/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_deposit/CashmanDepositCzkPragueList.java new file mode 100644 index 0000000..2ac7721 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cashman/pages/menu_deposit/CashmanDepositCzkPragueList.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.cashman.pages.menu_deposit; + +import cz.moneta.test.dsl.cashman.pages.CashmanHomePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface CashmanDepositCzkPragueList extends WebFlow { + String ORDER_ID_TABLE = "//tbody//a[contains(text(), '%s')]"; + String HOME_PAGE = "//a[@href='/domu']"; + + @Wait(value = ORDER_ID_TABLE, isStringDynamicXpath = true) + CashmanDepositCzkPragueList waitForOrderIdPresence(String orderId); + + @Click(HOME_PAGE) + CashmanHomePage clickOnHomePage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cashman/tasks/CashmanTasks.java b/tests/src/main/java/cz/moneta/test/dsl/cashman/tasks/CashmanTasks.java new file mode 100644 index 0000000..c2a41b3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cashman/tasks/CashmanTasks.java @@ -0,0 +1,67 @@ +package cz.moneta.test.dsl.cashman.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cashman.enums.CashmanOrderStatus; +import cz.moneta.test.dsl.cashman.pages.CashmanHomePage; +import cz.moneta.test.dsl.cashman.pages.menu_OM.CashmanOMNewOrderPage; +import cz.moneta.test.dsl.util.data.payment.PaymentData; + +import java.util.function.Function; + +public class CashmanTasks { + + private final Harness harness; + + public CashmanTasks(Harness harness) { + this.harness = harness; + } + + public LoginTasks loginTasks() { + return new LoginTasks(harness); + } + + public Function createNewOrder(PaymentData data) { + return start -> start.clickOnOMAndChooseNewOrder() + .selectOM3693() + .createNewOrder() + .fillRequiredDate(data.getTodayDate()) + .clickOnBillsFlagCheckBox() + .fillLoansRegistrationNumbers(data.getLoansRegistrationNumbersAmount()) + .fillNominal100Amount(data.getBanknotesAmount()) + .fillNominal10Amount(data.getCoinsAmount()) + .fillNote(data.getName1()); + } + + public Function checkOrderSummaries(PaymentData data) { + return start -> start.checkBanknotesSummary(data.getBanknotesSummary()) + .checkCoinsSummary(data.getCoinsSummary()) + .checkSummary(data.getSummary()); + } + + public Function submitNewOrder(PaymentData data) { + return start -> start.fillNominal10Amount(data.getCoinsAmount()) + .submitNewOrder() + .sendNewOrder() + .storeOrderId() + .clickOnHomePage(); + } + + public Function checkOrderPresence(PaymentData data, CashmanOrderStatus status) { + return start -> start.clickOnOMAndChooseCzkPrague() + .clickOnFilter() + .fillOrderId(data.getOrderId()) + .clickOnWaitingFlag() + .fillDateFrom(data.getTodayDate()) + .submitFilter() + .waitForOrderIdPresence(data.getOrderId()) + .checkOrderStatus(status.getStatus()) + .clickOnHomePage(); + } + + public Function checkOrderPresenceInDeposit(PaymentData data) { + return start -> start.clickOnDepositAndChooseCzkPrague() + .clickOnLevyOM() + .waitForOrderIdPresence(data.getOrderId()) + .clickOnHomePage(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cashman/tasks/LoginTasks.java b/tests/src/main/java/cz/moneta/test/dsl/cashman/tasks/LoginTasks.java new file mode 100644 index 0000000..99c828c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cashman/tasks/LoginTasks.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.cashman.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cashman.pages.CashmanHomePage; + +public class LoginTasks { + private final Harness harness; + + public LoginTasks(Harness harness) { + this.harness = harness; + } + + public CashmanHomePage openCashmanHomePage(Harness harness) { + return harness.withCashman() + .openCashmanHomePage(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cashman/utils/CashmanUtils.java b/tests/src/main/java/cz/moneta/test/dsl/cashman/utils/CashmanUtils.java new file mode 100644 index 0000000..97551ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cashman/utils/CashmanUtils.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.cashman.utils; + +import cz.moneta.test.dsl.Harness; +import org.apache.commons.lang.StringUtils; + +public class CashmanUtils { + + public static String getOrderId(Harness harness) { + return StringUtils.substringBetween(harness.get("ORDER_ID_KEY"), + "Objednávka odvodu CZK ID ", " byla odeslána a schválena"); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/Cebia.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/Cebia.java new file mode 100644 index 0000000..a9aa7fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/Cebia.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.cebia; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.cebia.CebiaWsEndpoint; +import cz.moneta.test.harness.support.ws.Builders; +import cz.moneta.test.harness.support.ws.WsRequest; + +@Deprecated(since = "unmaintained since update to Java 17") +public class Cebia { + + private final StoreAccessor harness; + + public Cebia(StoreAccessor harness) { + this.harness = harness; + } + + public WsRequest prepareRequest(Object request, Class responseClass) { + return Builders.newWsBuilder(request, responseClass, CebiaWsEndpoint.class, harness); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ArrayOfWSEquipmentType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ArrayOfWSEquipmentType.java new file mode 100644 index 0000000..9815f7d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ArrayOfWSEquipmentType.java @@ -0,0 +1,86 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for ArrayOfWSEquipmentType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="ArrayOfWSEquipmentType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="WSEquipmentType" type="{http://samo.cz/iva/}WSEquipmentType" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ArrayOfWSEquipmentType", propOrder = { + "wsEquipmentType" +}) +public class ArrayOfWSEquipmentType { + + @XmlElement(name = "WSEquipmentType", nillable = true) + protected List wsEquipmentType; + + /** + * Gets the value of the wsEquipmentType property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the wsEquipmentType property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getWSEquipmentType().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link WSEquipmentType } + * + * + */ + public List getWSEquipmentType() { + if (wsEquipmentType == null) { + wsEquipmentType = new ArrayList(); + } + return this.wsEquipmentType; + } + + public ArrayOfWSEquipmentType withWSEquipmentType(WSEquipmentType... values) { + if (values!= null) { + for (WSEquipmentType value: values) { + getWSEquipmentType().add(value); + } + } + return this; + } + + public ArrayOfWSEquipmentType withWSEquipmentType(Collection values) { + if (values!= null) { + getWSEquipmentType().addAll(values); + } + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ArrayOfWSIdentification3Result.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ArrayOfWSIdentification3Result.java new file mode 100644 index 0000000..9c19a3f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ArrayOfWSIdentification3Result.java @@ -0,0 +1,86 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for ArrayOfWSIdentification3Result complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="ArrayOfWSIdentification3Result">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="WSIdentification3Result" type="{http://samo.cz/iva/}WSIdentification3Result" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ArrayOfWSIdentification3Result", propOrder = { + "wsIdentification3Result" +}) +public class ArrayOfWSIdentification3Result { + + @XmlElement(name = "WSIdentification3Result", nillable = true) + protected List wsIdentification3Result; + + /** + * Gets the value of the wsIdentification3Result property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the wsIdentification3Result property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getWSIdentification3Result().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link WSIdentification3Result } + * + * + */ + public List getWSIdentification3Result() { + if (wsIdentification3Result == null) { + wsIdentification3Result = new ArrayList(); + } + return this.wsIdentification3Result; + } + + public ArrayOfWSIdentification3Result withWSIdentification3Result(WSIdentification3Result... values) { + if (values!= null) { + for (WSIdentification3Result value: values) { + getWSIdentification3Result().add(value); + } + } + return this; + } + + public ArrayOfWSIdentification3Result withWSIdentification3Result(Collection values) { + if (values!= null) { + getWSIdentification3Result().addAll(values); + } + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ArrayOfWSVehicleType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ArrayOfWSVehicleType.java new file mode 100644 index 0000000..2a4d957 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ArrayOfWSVehicleType.java @@ -0,0 +1,86 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for ArrayOfWSVehicleType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="ArrayOfWSVehicleType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="WSVehicleType" type="{http://samo.cz/iva/}WSVehicleType" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ArrayOfWSVehicleType", propOrder = { + "wsVehicleType" +}) +public class ArrayOfWSVehicleType { + + @XmlElement(name = "WSVehicleType", nillable = true) + protected List wsVehicleType; + + /** + * Gets the value of the wsVehicleType property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the wsVehicleType property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getWSVehicleType().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link WSVehicleType } + * + * + */ + public List getWSVehicleType() { + if (wsVehicleType == null) { + wsVehicleType = new ArrayList(); + } + return this.wsVehicleType; + } + + public ArrayOfWSVehicleType withWSVehicleType(WSVehicleType... values) { + if (values!= null) { + for (WSVehicleType value: values) { + getWSVehicleType().add(value); + } + } + return this; + } + + public ArrayOfWSVehicleType withWSVehicleType(Collection values) { + if (values!= null) { + getWSVehicleType().addAll(values); + } + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ObjectFactory.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ObjectFactory.java new file mode 100644 index 0000000..0d1b6e4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/ObjectFactory.java @@ -0,0 +1,829 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlElementDecl; +import jakarta.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the cz.moneta.test.dsl.cebia.iva package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _WSVehicleType_QNAME = new QName("http://samo.cz/iva/", "WSVehicleType"); + private final static QName _WSAdministrativeDataType_QNAME = new QName("http://samo.cz/iva/", "WSAdministrativeDataType"); + private final static QName _WSVehicleIdentificationType_QNAME = new QName("http://samo.cz/iva/", "WSVehicleIdentificationType"); + private final static QName _WSBrandType_QNAME = new QName("http://samo.cz/iva/", "WSBrandType"); + private final static QName _WSVehicleModelType_QNAME = new QName("http://samo.cz/iva/", "WSVehicleModelType"); + private final static QName _WSVehicleVersionType_QNAME = new QName("http://samo.cz/iva/", "WSVehicleVersionType"); + private final static QName _WSVersionStateEnum_QNAME = new QName("http://samo.cz/iva/", "WSVersionStateEnum"); + private final static QName _WSPriceType_QNAME = new QName("http://samo.cz/iva/", "WSPriceType"); + private final static QName _WSVehicleRegistrationType_QNAME = new QName("http://samo.cz/iva/", "WSVehicleRegistrationType"); + private final static QName _WSVehicleVariantType_QNAME = new QName("http://samo.cz/iva/", "WSVehicleVariantType"); + private final static QName _WSGearboxType_QNAME = new QName("http://samo.cz/iva/", "WSGearboxType"); + private final static QName _WSBodyworkType_QNAME = new QName("http://samo.cz/iva/", "WSBodyworkType"); + private final static QName _WSEngineType_QNAME = new QName("http://samo.cz/iva/", "WSEngineType"); + private final static QName _WSFuelTankType_QNAME = new QName("http://samo.cz/iva/", "WSFuelTankType"); + private final static QName _ArrayOfWSEquipmentType_QNAME = new QName("http://samo.cz/iva/", "ArrayOfWSEquipmentType"); + private final static QName _WSEquipmentType_QNAME = new QName("http://samo.cz/iva/", "WSEquipmentType"); + private final static QName _WSRegistrationCertificatePartII_QNAME = new QName("http://samo.cz/iva/", "WSRegistrationCertificatePartII"); + private final static QName _WSRCIIVehicle_QNAME = new QName("http://samo.cz/iva/", "WSRCIIVehicle"); + private final static QName _WSRCIIEngine_QNAME = new QName("http://samo.cz/iva/", "WSRCIIEngine"); + private final static QName _WSRCIIEmissions_QNAME = new QName("http://samo.cz/iva/", "WSRCIIEmissions"); + private final static QName _WSRCIIBodywork_QNAME = new QName("http://samo.cz/iva/", "WSRCIIBodywork"); + private final static QName _WSRCIIDimensions_QNAME = new QName("http://samo.cz/iva/", "WSRCIIDimensions"); + private final static QName _WSRCIIWeights_QNAME = new QName("http://samo.cz/iva/", "WSRCIIWeights"); + private final static QName _WSRCIIAxles_QNAME = new QName("http://samo.cz/iva/", "WSRCIIAxles"); + private final static QName _WSRCIIOthers_QNAME = new QName("http://samo.cz/iva/", "WSRCIIOthers"); + private final static QName _WSIdentificationResponse_QNAME = new QName("http://samo.cz/iva/", "WSIdentificationResponse"); + private final static QName _ArrayOfWSVehicleType_QNAME = new QName("http://samo.cz/iva/", "ArrayOfWSVehicleType"); + private final static QName _WSSearchCriteriaTolerance_QNAME = new QName("http://samo.cz/iva/", "WSSearchCriteriaTolerance"); + private final static QName _WSIdentification3Response_QNAME = new QName("http://samo.cz/iva/", "WSIdentification3Response"); + private final static QName _ArrayOfWSIdentification3Result_QNAME = new QName("http://samo.cz/iva/", "ArrayOfWSIdentification3Result"); + private final static QName _WSIdentification3Result_QNAME = new QName("http://samo.cz/iva/", "WSIdentification3Result"); + private final static QName _WSValuation_QNAME = new QName("http://samo.cz/iva/", "WSValuation"); + private final static QName _WSVehiclePrices_QNAME = new QName("http://samo.cz/iva/", "WSVehiclePrices"); + private final static QName _WSPrice_QNAME = new QName("http://samo.cz/iva/", "WSPrice"); + private final static QName _WSResultStatus_QNAME = new QName("http://samo.cz/iva/", "WSResultStatus"); + private final static QName _WSForecast_QNAME = new QName("http://samo.cz/iva/", "WSForecast"); + private final static QName _WSInputDataType_QNAME = new QName("http://samo.cz/iva/", "WSInputDataType"); + private final static QName _WSDetailResponse_QNAME = new QName("http://samo.cz/iva/", "WSDetailResponse"); + private final static QName _WSValuationRequest_QNAME = new QName("http://samo.cz/iva/", "WSValuationRequest"); + private final static QName _WSValuationResponse_QNAME = new QName("http://samo.cz/iva/", "WSValuationResponse"); + private final static QName _WSValuationType_QNAME = new QName("http://samo.cz/iva/", "WSValuationType"); + private final static QName _WSValuation2Request_QNAME = new QName("http://samo.cz/iva/", "WSValuation2Request"); + private final static QName _WSValuation2Response_QNAME = new QName("http://samo.cz/iva/", "WSValuation2Response"); + private final static QName _WSSearchCriteriaAttributeEnum_QNAME = new QName("http://samo.cz/iva/", "WSSearchCriteriaAttributeEnum"); + private final static QName _WSSearchCriteriaValuesResponse_QNAME = new QName("http://samo.cz/iva/", "WSSearchCriteriaValuesResponse"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: cz.moneta.test.dsl.cebia.iva + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link WSVehicleType } + * + */ + public WSVehicleType createWSVehicleType() { + return new WSVehicleType(); + } + + /** + * Create an instance of {@link WSIdentificationResponse } + * + */ + public WSIdentificationResponse createWSIdentificationResponse() { + return new WSIdentificationResponse(); + } + + /** + * Create an instance of {@link WSSearchCriteriaTolerance } + * + */ + public WSSearchCriteriaTolerance createWSSearchCriteriaTolerance() { + return new WSSearchCriteriaTolerance(); + } + + /** + * Create an instance of {@link WSIdentification3Response } + * + */ + public WSIdentification3Response createWSIdentification3Response() { + return new WSIdentification3Response(); + } + + /** + * Create an instance of {@link WSInputDataType } + * + */ + public WSInputDataType createWSInputDataType() { + return new WSInputDataType(); + } + + /** + * Create an instance of {@link WSDetailResponse } + * + */ + public WSDetailResponse createWSDetailResponse() { + return new WSDetailResponse(); + } + + /** + * Create an instance of {@link WSValuationRequest } + * + */ + public WSValuationRequest createWSValuationRequest() { + return new WSValuationRequest(); + } + + /** + * Create an instance of {@link WSValuationResponse } + * + */ + public WSValuationResponse createWSValuationResponse() { + return new WSValuationResponse(); + } + + /** + * Create an instance of {@link WSValuation2Request } + * + */ + public WSValuation2Request createWSValuation2Request() { + return new WSValuation2Request(); + } + + /** + * Create an instance of {@link WSValuation2Response } + * + */ + public WSValuation2Response createWSValuation2Response() { + return new WSValuation2Response(); + } + + /** + * Create an instance of {@link WSSearchCriteriaValuesResponse } + * + */ + public WSSearchCriteriaValuesResponse createWSSearchCriteriaValuesResponse() { + return new WSSearchCriteriaValuesResponse(); + } + + /** + * Create an instance of {@link WSAdministrativeDataType } + * + */ + public WSAdministrativeDataType createWSAdministrativeDataType() { + return new WSAdministrativeDataType(); + } + + /** + * Create an instance of {@link WSVehicleIdentificationType } + * + */ + public WSVehicleIdentificationType createWSVehicleIdentificationType() { + return new WSVehicleIdentificationType(); + } + + /** + * Create an instance of {@link WSBrandType } + * + */ + public WSBrandType createWSBrandType() { + return new WSBrandType(); + } + + /** + * Create an instance of {@link WSVehicleModelType } + * + */ + public WSVehicleModelType createWSVehicleModelType() { + return new WSVehicleModelType(); + } + + /** + * Create an instance of {@link WSVehicleVersionType } + * + */ + public WSVehicleVersionType createWSVehicleVersionType() { + return new WSVehicleVersionType(); + } + + /** + * Create an instance of {@link WSPriceType } + * + */ + public WSPriceType createWSPriceType() { + return new WSPriceType(); + } + + /** + * Create an instance of {@link WSVehicleRegistrationType } + * + */ + public WSVehicleRegistrationType createWSVehicleRegistrationType() { + return new WSVehicleRegistrationType(); + } + + /** + * Create an instance of {@link WSVehicleVariantType } + * + */ + public WSVehicleVariantType createWSVehicleVariantType() { + return new WSVehicleVariantType(); + } + + /** + * Create an instance of {@link WSGearboxType } + * + */ + public WSGearboxType createWSGearboxType() { + return new WSGearboxType(); + } + + /** + * Create an instance of {@link WSBodyworkType } + * + */ + public WSBodyworkType createWSBodyworkType() { + return new WSBodyworkType(); + } + + /** + * Create an instance of {@link WSEngineType } + * + */ + public WSEngineType createWSEngineType() { + return new WSEngineType(); + } + + /** + * Create an instance of {@link WSFuelTankType } + * + */ + public WSFuelTankType createWSFuelTankType() { + return new WSFuelTankType(); + } + + /** + * Create an instance of {@link ArrayOfWSEquipmentType } + * + */ + public ArrayOfWSEquipmentType createArrayOfWSEquipmentType() { + return new ArrayOfWSEquipmentType(); + } + + /** + * Create an instance of {@link WSEquipmentType } + * + */ + public WSEquipmentType createWSEquipmentType() { + return new WSEquipmentType(); + } + + /** + * Create an instance of {@link WSRegistrationCertificatePartII } + * + */ + public WSRegistrationCertificatePartII createWSRegistrationCertificatePartII() { + return new WSRegistrationCertificatePartII(); + } + + /** + * Create an instance of {@link WSRCIIVehicle } + * + */ + public WSRCIIVehicle createWSRCIIVehicle() { + return new WSRCIIVehicle(); + } + + /** + * Create an instance of {@link WSRCIIEngine } + * + */ + public WSRCIIEngine createWSRCIIEngine() { + return new WSRCIIEngine(); + } + + /** + * Create an instance of {@link WSRCIIEmissions } + * + */ + public WSRCIIEmissions createWSRCIIEmissions() { + return new WSRCIIEmissions(); + } + + /** + * Create an instance of {@link WSRCIIBodywork } + * + */ + public WSRCIIBodywork createWSRCIIBodywork() { + return new WSRCIIBodywork(); + } + + /** + * Create an instance of {@link WSRCIIDimensions } + * + */ + public WSRCIIDimensions createWSRCIIDimensions() { + return new WSRCIIDimensions(); + } + + /** + * Create an instance of {@link WSRCIIWeights } + * + */ + public WSRCIIWeights createWSRCIIWeights() { + return new WSRCIIWeights(); + } + + /** + * Create an instance of {@link WSRCIIAxles } + * + */ + public WSRCIIAxles createWSRCIIAxles() { + return new WSRCIIAxles(); + } + + /** + * Create an instance of {@link WSRCIIOthers } + * + */ + public WSRCIIOthers createWSRCIIOthers() { + return new WSRCIIOthers(); + } + + /** + * Create an instance of {@link ArrayOfWSVehicleType } + * + */ + public ArrayOfWSVehicleType createArrayOfWSVehicleType() { + return new ArrayOfWSVehicleType(); + } + + /** + * Create an instance of {@link ArrayOfWSIdentification3Result } + * + */ + public ArrayOfWSIdentification3Result createArrayOfWSIdentification3Result() { + return new ArrayOfWSIdentification3Result(); + } + + /** + * Create an instance of {@link WSIdentification3Result } + * + */ + public WSIdentification3Result createWSIdentification3Result() { + return new WSIdentification3Result(); + } + + /** + * Create an instance of {@link WSValuation } + * + */ + public WSValuation createWSValuation() { + return new WSValuation(); + } + + /** + * Create an instance of {@link WSVehiclePrices } + * + */ + public WSVehiclePrices createWSVehiclePrices() { + return new WSVehiclePrices(); + } + + /** + * Create an instance of {@link WSPrice } + * + */ + public WSPrice createWSPrice() { + return new WSPrice(); + } + + /** + * Create an instance of {@link WSResultStatus } + * + */ + public WSResultStatus createWSResultStatus() { + return new WSResultStatus(); + } + + /** + * Create an instance of {@link WSForecast } + * + */ + public WSForecast createWSForecast() { + return new WSForecast(); + } + + /** + * Create an instance of {@link WSValuationType } + * + */ + public WSValuationType createWSValuationType() { + return new WSValuationType(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSVehicleType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSVehicleType") + public JAXBElement createWSVehicleType(WSVehicleType value) { + return new JAXBElement(_WSVehicleType_QNAME, WSVehicleType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSAdministrativeDataType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSAdministrativeDataType") + public JAXBElement createWSAdministrativeDataType(WSAdministrativeDataType value) { + return new JAXBElement(_WSAdministrativeDataType_QNAME, WSAdministrativeDataType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSVehicleIdentificationType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSVehicleIdentificationType") + public JAXBElement createWSVehicleIdentificationType(WSVehicleIdentificationType value) { + return new JAXBElement(_WSVehicleIdentificationType_QNAME, WSVehicleIdentificationType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSBrandType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSBrandType") + public JAXBElement createWSBrandType(WSBrandType value) { + return new JAXBElement(_WSBrandType_QNAME, WSBrandType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSVehicleModelType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSVehicleModelType") + public JAXBElement createWSVehicleModelType(WSVehicleModelType value) { + return new JAXBElement(_WSVehicleModelType_QNAME, WSVehicleModelType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSVehicleVersionType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSVehicleVersionType") + public JAXBElement createWSVehicleVersionType(WSVehicleVersionType value) { + return new JAXBElement(_WSVehicleVersionType_QNAME, WSVehicleVersionType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSVersionStateEnum }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSVersionStateEnum") + public JAXBElement createWSVersionStateEnum(WSVersionStateEnum value) { + return new JAXBElement(_WSVersionStateEnum_QNAME, WSVersionStateEnum.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSPriceType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSPriceType") + public JAXBElement createWSPriceType(WSPriceType value) { + return new JAXBElement(_WSPriceType_QNAME, WSPriceType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSVehicleRegistrationType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSVehicleRegistrationType") + public JAXBElement createWSVehicleRegistrationType(WSVehicleRegistrationType value) { + return new JAXBElement(_WSVehicleRegistrationType_QNAME, WSVehicleRegistrationType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSVehicleVariantType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSVehicleVariantType") + public JAXBElement createWSVehicleVariantType(WSVehicleVariantType value) { + return new JAXBElement(_WSVehicleVariantType_QNAME, WSVehicleVariantType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSGearboxType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSGearboxType") + public JAXBElement createWSGearboxType(WSGearboxType value) { + return new JAXBElement(_WSGearboxType_QNAME, WSGearboxType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSBodyworkType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSBodyworkType") + public JAXBElement createWSBodyworkType(WSBodyworkType value) { + return new JAXBElement(_WSBodyworkType_QNAME, WSBodyworkType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSEngineType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSEngineType") + public JAXBElement createWSEngineType(WSEngineType value) { + return new JAXBElement(_WSEngineType_QNAME, WSEngineType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSFuelTankType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSFuelTankType") + public JAXBElement createWSFuelTankType(WSFuelTankType value) { + return new JAXBElement(_WSFuelTankType_QNAME, WSFuelTankType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfWSEquipmentType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "ArrayOfWSEquipmentType") + public JAXBElement createArrayOfWSEquipmentType(ArrayOfWSEquipmentType value) { + return new JAXBElement(_ArrayOfWSEquipmentType_QNAME, ArrayOfWSEquipmentType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSEquipmentType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSEquipmentType") + public JAXBElement createWSEquipmentType(WSEquipmentType value) { + return new JAXBElement(_WSEquipmentType_QNAME, WSEquipmentType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSRegistrationCertificatePartII }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSRegistrationCertificatePartII") + public JAXBElement createWSRegistrationCertificatePartII(WSRegistrationCertificatePartII value) { + return new JAXBElement(_WSRegistrationCertificatePartII_QNAME, WSRegistrationCertificatePartII.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSRCIIVehicle }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSRCIIVehicle") + public JAXBElement createWSRCIIVehicle(WSRCIIVehicle value) { + return new JAXBElement(_WSRCIIVehicle_QNAME, WSRCIIVehicle.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSRCIIEngine }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSRCIIEngine") + public JAXBElement createWSRCIIEngine(WSRCIIEngine value) { + return new JAXBElement(_WSRCIIEngine_QNAME, WSRCIIEngine.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSRCIIEmissions }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSRCIIEmissions") + public JAXBElement createWSRCIIEmissions(WSRCIIEmissions value) { + return new JAXBElement(_WSRCIIEmissions_QNAME, WSRCIIEmissions.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSRCIIBodywork }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSRCIIBodywork") + public JAXBElement createWSRCIIBodywork(WSRCIIBodywork value) { + return new JAXBElement(_WSRCIIBodywork_QNAME, WSRCIIBodywork.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSRCIIDimensions }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSRCIIDimensions") + public JAXBElement createWSRCIIDimensions(WSRCIIDimensions value) { + return new JAXBElement(_WSRCIIDimensions_QNAME, WSRCIIDimensions.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSRCIIWeights }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSRCIIWeights") + public JAXBElement createWSRCIIWeights(WSRCIIWeights value) { + return new JAXBElement(_WSRCIIWeights_QNAME, WSRCIIWeights.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSRCIIAxles }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSRCIIAxles") + public JAXBElement createWSRCIIAxles(WSRCIIAxles value) { + return new JAXBElement(_WSRCIIAxles_QNAME, WSRCIIAxles.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSRCIIOthers }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSRCIIOthers") + public JAXBElement createWSRCIIOthers(WSRCIIOthers value) { + return new JAXBElement(_WSRCIIOthers_QNAME, WSRCIIOthers.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSIdentificationResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSIdentificationResponse") + public JAXBElement createWSIdentificationResponse(WSIdentificationResponse value) { + return new JAXBElement(_WSIdentificationResponse_QNAME, WSIdentificationResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfWSVehicleType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "ArrayOfWSVehicleType") + public JAXBElement createArrayOfWSVehicleType(ArrayOfWSVehicleType value) { + return new JAXBElement(_ArrayOfWSVehicleType_QNAME, ArrayOfWSVehicleType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSSearchCriteriaTolerance }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSSearchCriteriaTolerance") + public JAXBElement createWSSearchCriteriaTolerance(WSSearchCriteriaTolerance value) { + return new JAXBElement(_WSSearchCriteriaTolerance_QNAME, WSSearchCriteriaTolerance.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSIdentification3Response }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSIdentification3Response") + public JAXBElement createWSIdentification3Response(WSIdentification3Response value) { + return new JAXBElement(_WSIdentification3Response_QNAME, WSIdentification3Response.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfWSIdentification3Result }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "ArrayOfWSIdentification3Result") + public JAXBElement createArrayOfWSIdentification3Result(ArrayOfWSIdentification3Result value) { + return new JAXBElement(_ArrayOfWSIdentification3Result_QNAME, ArrayOfWSIdentification3Result.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSIdentification3Result }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSIdentification3Result") + public JAXBElement createWSIdentification3Result(WSIdentification3Result value) { + return new JAXBElement(_WSIdentification3Result_QNAME, WSIdentification3Result.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSValuation }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSValuation") + public JAXBElement createWSValuation(WSValuation value) { + return new JAXBElement(_WSValuation_QNAME, WSValuation.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSVehiclePrices }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSVehiclePrices") + public JAXBElement createWSVehiclePrices(WSVehiclePrices value) { + return new JAXBElement(_WSVehiclePrices_QNAME, WSVehiclePrices.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSPrice }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSPrice") + public JAXBElement createWSPrice(WSPrice value) { + return new JAXBElement(_WSPrice_QNAME, WSPrice.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSResultStatus }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSResultStatus") + public JAXBElement createWSResultStatus(WSResultStatus value) { + return new JAXBElement(_WSResultStatus_QNAME, WSResultStatus.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSForecast }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSForecast") + public JAXBElement createWSForecast(WSForecast value) { + return new JAXBElement(_WSForecast_QNAME, WSForecast.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSInputDataType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSInputDataType") + public JAXBElement createWSInputDataType(WSInputDataType value) { + return new JAXBElement(_WSInputDataType_QNAME, WSInputDataType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSDetailResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSDetailResponse") + public JAXBElement createWSDetailResponse(WSDetailResponse value) { + return new JAXBElement(_WSDetailResponse_QNAME, WSDetailResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSValuationRequest }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSValuationRequest") + public JAXBElement createWSValuationRequest(WSValuationRequest value) { + return new JAXBElement(_WSValuationRequest_QNAME, WSValuationRequest.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSValuationResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSValuationResponse") + public JAXBElement createWSValuationResponse(WSValuationResponse value) { + return new JAXBElement(_WSValuationResponse_QNAME, WSValuationResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSValuationType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSValuationType") + public JAXBElement createWSValuationType(WSValuationType value) { + return new JAXBElement(_WSValuationType_QNAME, WSValuationType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSValuation2Request }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSValuation2Request") + public JAXBElement createWSValuation2Request(WSValuation2Request value) { + return new JAXBElement(_WSValuation2Request_QNAME, WSValuation2Request.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSValuation2Response }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSValuation2Response") + public JAXBElement createWSValuation2Response(WSValuation2Response value) { + return new JAXBElement(_WSValuation2Response_QNAME, WSValuation2Response.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSSearchCriteriaAttributeEnum }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSSearchCriteriaAttributeEnum") + public JAXBElement createWSSearchCriteriaAttributeEnum(WSSearchCriteriaAttributeEnum value) { + return new JAXBElement(_WSSearchCriteriaAttributeEnum_QNAME, WSSearchCriteriaAttributeEnum.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSSearchCriteriaValuesResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://samo.cz/iva/", name = "WSSearchCriteriaValuesResponse") + public JAXBElement createWSSearchCriteriaValuesResponse(WSSearchCriteriaValuesResponse value) { + return new JAXBElement(_WSSearchCriteriaValuesResponse_QNAME, WSSearchCriteriaValuesResponse.class, null, value); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSAdministrativeDataType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSAdministrativeDataType.java new file mode 100644 index 0000000..cc3ff9b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSAdministrativeDataType.java @@ -0,0 +1,100 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSAdministrativeDataType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSAdministrativeDataType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VIN" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSAdministrativeDataType", propOrder = { + "vin", + "id" +}) +public class WSAdministrativeDataType { + + @XmlElement(name = "VIN", nillable = true) + protected String vin; + @XmlElement(name = "ID", nillable = true) + protected String id; + + /** + * Gets the value of the vin property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIN() { + return vin; + } + + /** + * Sets the value of the vin property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIN(String value) { + this.vin = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getID() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setID(String value) { + this.id = value; + } + + public WSAdministrativeDataType withVIN(String value) { + setVIN(value); + return this; + } + + public WSAdministrativeDataType withID(String value) { + setID(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSBodyworkType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSBodyworkType.java new file mode 100644 index 0000000..bccb683 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSBodyworkType.java @@ -0,0 +1,232 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSBodyworkType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSBodyworkType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="TypeID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Doors" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="Seats" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="CabinType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="BoxType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSBodyworkType", propOrder = { + "type", + "typeID", + "doors", + "seats", + "cabinType", + "boxType" +}) +public class WSBodyworkType { + + @XmlElement(name = "Type", nillable = true) + protected String type; + @XmlElement(name = "TypeID", nillable = true) + protected String typeID; + @XmlElement(name = "Doors", nillable = true) + protected Integer doors; + @XmlElement(name = "Seats", nillable = true) + protected Integer seats; + @XmlElement(name = "CabinType", nillable = true) + protected String cabinType; + @XmlElement(name = "BoxType", nillable = true) + protected String boxType; + + /** + * Gets the value of the type property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * Sets the value of the type property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * Gets the value of the typeID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTypeID() { + return typeID; + } + + /** + * Sets the value of the typeID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTypeID(String value) { + this.typeID = value; + } + + /** + * Gets the value of the doors property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getDoors() { + return doors; + } + + /** + * Sets the value of the doors property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setDoors(Integer value) { + this.doors = value; + } + + /** + * Gets the value of the seats property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getSeats() { + return seats; + } + + /** + * Sets the value of the seats property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setSeats(Integer value) { + this.seats = value; + } + + /** + * Gets the value of the cabinType property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCabinType() { + return cabinType; + } + + /** + * Sets the value of the cabinType property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCabinType(String value) { + this.cabinType = value; + } + + /** + * Gets the value of the boxType property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getBoxType() { + return boxType; + } + + /** + * Sets the value of the boxType property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setBoxType(String value) { + this.boxType = value; + } + + public WSBodyworkType withType(String value) { + setType(value); + return this; + } + + public WSBodyworkType withTypeID(String value) { + setTypeID(value); + return this; + } + + public WSBodyworkType withDoors(Integer value) { + setDoors(value); + return this; + } + + public WSBodyworkType withSeats(Integer value) { + setSeats(value); + return this; + } + + public WSBodyworkType withCabinType(String value) { + setCabinType(value); + return this; + } + + public WSBodyworkType withBoxType(String value) { + setBoxType(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSBrandType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSBrandType.java new file mode 100644 index 0000000..eca0b8c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSBrandType.java @@ -0,0 +1,133 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSBrandType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSBrandType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Code" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="LocalName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSBrandType", propOrder = { + "code", + "name", + "localName" +}) +public class WSBrandType { + + @XmlElement(name = "Code", nillable = true) + protected String code; + @XmlElement(name = "Name", nillable = true) + protected String name; + @XmlElement(name = "LocalName", nillable = true) + protected String localName; + + /** + * Gets the value of the code property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCode() { + return code; + } + + /** + * Sets the value of the code property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCode(String value) { + this.code = value; + } + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the localName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getLocalName() { + return localName; + } + + /** + * Sets the value of the localName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLocalName(String value) { + this.localName = value; + } + + public WSBrandType withCode(String value) { + setCode(value); + return this; + } + + public WSBrandType withName(String value) { + setName(value); + return this; + } + + public WSBrandType withLocalName(String value) { + setLocalName(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSDetailResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSDetailResponse.java new file mode 100644 index 0000000..b4b45a8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSDetailResponse.java @@ -0,0 +1,199 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSDetailResponse complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSDetailResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="TxID" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
+ *         <element name="Vehicle" type="{http://samo.cz/iva/}WSVehicleType" minOccurs="0"/>
+ *         <element name="ReturnCode" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="ReturnMessage" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ProcessInfo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSDetailResponse", propOrder = { + "txID", + "vehicle", + "returnCode", + "returnMessage", + "processInfo" +}) +public class WSDetailResponse { + + @XmlElement(name = "TxID") + protected Long txID; + @XmlElement(name = "Vehicle", nillable = true) + protected WSVehicleType vehicle; + @XmlElement(name = "ReturnCode") + protected Integer returnCode; + @XmlElement(name = "ReturnMessage", nillable = true) + protected String returnMessage; + @XmlElement(name = "ProcessInfo", nillable = true) + protected String processInfo; + + /** + * Gets the value of the txID property. + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getTxID() { + return txID; + } + + /** + * Sets the value of the txID property. + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setTxID(Long value) { + this.txID = value; + } + + /** + * Gets the value of the vehicle property. + * + * @return + * possible object is + * {@link WSVehicleType } + * + */ + public WSVehicleType getVehicle() { + return vehicle; + } + + /** + * Sets the value of the vehicle property. + * + * @param value + * allowed object is + * {@link WSVehicleType } + * + */ + public void setVehicle(WSVehicleType value) { + this.vehicle = value; + } + + /** + * Gets the value of the returnCode property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getReturnCode() { + return returnCode; + } + + /** + * Sets the value of the returnCode property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setReturnCode(Integer value) { + this.returnCode = value; + } + + /** + * Gets the value of the returnMessage property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getReturnMessage() { + return returnMessage; + } + + /** + * Sets the value of the returnMessage property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setReturnMessage(String value) { + this.returnMessage = value; + } + + /** + * Gets the value of the processInfo property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getProcessInfo() { + return processInfo; + } + + /** + * Sets the value of the processInfo property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setProcessInfo(String value) { + this.processInfo = value; + } + + public WSDetailResponse withTxID(Long value) { + setTxID(value); + return this; + } + + public WSDetailResponse withVehicle(WSVehicleType value) { + setVehicle(value); + return this; + } + + public WSDetailResponse withReturnCode(Integer value) { + setReturnCode(value); + return this; + } + + public WSDetailResponse withReturnMessage(String value) { + setReturnMessage(value); + return this; + } + + public WSDetailResponse withProcessInfo(String value) { + setProcessInfo(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSEngineType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSEngineType.java new file mode 100644 index 0000000..2c860b2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSEngineType.java @@ -0,0 +1,431 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import java.math.BigDecimal; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSEngineType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSEngineType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="TypeID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="CodeOM" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="CapacityCcm" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="CapacityLiters" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="PowerKW" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="FuelType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="FuelTypeID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="FuelCity" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="FuelCountry" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="FuelMix" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="CylindersCount" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSEngineType", propOrder = { + "type", + "typeID", + "codeOM", + "capacityCcm", + "capacityLiters", + "powerKW", + "fuelType", + "fuelTypeID", + "fuelCity", + "fuelCountry", + "fuelMix", + "cylindersCount" +}) +public class WSEngineType { + + @XmlElement(name = "Type", nillable = true) + protected String type; + @XmlElement(name = "TypeID", nillable = true) + protected String typeID; + @XmlElement(name = "CodeOM", nillable = true) + protected String codeOM; + @XmlElement(name = "CapacityCcm", nillable = true) + protected Integer capacityCcm; + @XmlElement(name = "CapacityLiters", nillable = true) + protected BigDecimal capacityLiters; + @XmlElement(name = "PowerKW", nillable = true) + protected Integer powerKW; + @XmlElement(name = "FuelType", nillable = true) + protected String fuelType; + @XmlElement(name = "FuelTypeID", nillable = true) + protected String fuelTypeID; + @XmlElement(name = "FuelCity", nillable = true) + protected BigDecimal fuelCity; + @XmlElement(name = "FuelCountry", nillable = true) + protected BigDecimal fuelCountry; + @XmlElement(name = "FuelMix", nillable = true) + protected BigDecimal fuelMix; + @XmlElement(name = "CylindersCount", nillable = true) + protected Integer cylindersCount; + + /** + * Gets the value of the type property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * Sets the value of the type property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * Gets the value of the typeID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTypeID() { + return typeID; + } + + /** + * Sets the value of the typeID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTypeID(String value) { + this.typeID = value; + } + + /** + * Gets the value of the codeOM property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodeOM() { + return codeOM; + } + + /** + * Sets the value of the codeOM property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodeOM(String value) { + this.codeOM = value; + } + + /** + * Gets the value of the capacityCcm property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getCapacityCcm() { + return capacityCcm; + } + + /** + * Sets the value of the capacityCcm property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setCapacityCcm(Integer value) { + this.capacityCcm = value; + } + + /** + * Gets the value of the capacityLiters property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getCapacityLiters() { + return capacityLiters; + } + + /** + * Sets the value of the capacityLiters property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setCapacityLiters(BigDecimal value) { + this.capacityLiters = value; + } + + /** + * Gets the value of the powerKW property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getPowerKW() { + return powerKW; + } + + /** + * Sets the value of the powerKW property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setPowerKW(Integer value) { + this.powerKW = value; + } + + /** + * Gets the value of the fuelType property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFuelType() { + return fuelType; + } + + /** + * Sets the value of the fuelType property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFuelType(String value) { + this.fuelType = value; + } + + /** + * Gets the value of the fuelTypeID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFuelTypeID() { + return fuelTypeID; + } + + /** + * Sets the value of the fuelTypeID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFuelTypeID(String value) { + this.fuelTypeID = value; + } + + /** + * Gets the value of the fuelCity property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getFuelCity() { + return fuelCity; + } + + /** + * Sets the value of the fuelCity property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setFuelCity(BigDecimal value) { + this.fuelCity = value; + } + + /** + * Gets the value of the fuelCountry property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getFuelCountry() { + return fuelCountry; + } + + /** + * Sets the value of the fuelCountry property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setFuelCountry(BigDecimal value) { + this.fuelCountry = value; + } + + /** + * Gets the value of the fuelMix property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getFuelMix() { + return fuelMix; + } + + /** + * Sets the value of the fuelMix property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setFuelMix(BigDecimal value) { + this.fuelMix = value; + } + + /** + * Gets the value of the cylindersCount property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getCylindersCount() { + return cylindersCount; + } + + /** + * Sets the value of the cylindersCount property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setCylindersCount(Integer value) { + this.cylindersCount = value; + } + + public WSEngineType withType(String value) { + setType(value); + return this; + } + + public WSEngineType withTypeID(String value) { + setTypeID(value); + return this; + } + + public WSEngineType withCodeOM(String value) { + setCodeOM(value); + return this; + } + + public WSEngineType withCapacityCcm(Integer value) { + setCapacityCcm(value); + return this; + } + + public WSEngineType withCapacityLiters(BigDecimal value) { + setCapacityLiters(value); + return this; + } + + public WSEngineType withPowerKW(Integer value) { + setPowerKW(value); + return this; + } + + public WSEngineType withFuelType(String value) { + setFuelType(value); + return this; + } + + public WSEngineType withFuelTypeID(String value) { + setFuelTypeID(value); + return this; + } + + public WSEngineType withFuelCity(BigDecimal value) { + setFuelCity(value); + return this; + } + + public WSEngineType withFuelCountry(BigDecimal value) { + setFuelCountry(value); + return this; + } + + public WSEngineType withFuelMix(BigDecimal value) { + setFuelMix(value); + return this; + } + + public WSEngineType withCylindersCount(Integer value) { + setCylindersCount(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSEquipmentType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSEquipmentType.java new file mode 100644 index 0000000..4b982a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSEquipmentType.java @@ -0,0 +1,299 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.serialization.arrays.ArrayOfstring; + + +/** + *

Java class for WSEquipmentType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSEquipmentType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Type" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="Code" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="CodeOM" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Group" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="PackageItems" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="Price" type="{http://samo.cz/iva/}WSPriceType" minOccurs="0"/>
+ *         <element name="Selected" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSEquipmentType", propOrder = { + "type", + "code", + "codeOM", + "group", + "description", + "packageItems", + "price", + "selected" +}) +public class WSEquipmentType { + + @XmlElement(name = "Type", nillable = true) + protected Integer type; + @XmlElement(name = "Code", nillable = true) + protected String code; + @XmlElement(name = "CodeOM", nillable = true) + protected String codeOM; + @XmlElement(name = "Group", nillable = true) + protected String group; + @XmlElement(name = "Description", nillable = true) + protected String description; + @XmlElement(name = "PackageItems", nillable = true) + protected ArrayOfstring packageItems; + @XmlElement(name = "Price", nillable = true) + protected WSPriceType price; + @XmlElement(name = "Selected", nillable = true) + protected Boolean selected; + + /** + * Gets the value of the type property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getType() { + return type; + } + + /** + * Sets the value of the type property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setType(Integer value) { + this.type = value; + } + + /** + * Gets the value of the code property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCode() { + return code; + } + + /** + * Sets the value of the code property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCode(String value) { + this.code = value; + } + + /** + * Gets the value of the codeOM property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodeOM() { + return codeOM; + } + + /** + * Sets the value of the codeOM property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodeOM(String value) { + this.codeOM = value; + } + + /** + * Gets the value of the group property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getGroup() { + return group; + } + + /** + * Sets the value of the group property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setGroup(String value) { + this.group = value; + } + + /** + * Gets the value of the description property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescription() { + return description; + } + + /** + * Sets the value of the description property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescription(String value) { + this.description = value; + } + + /** + * Gets the value of the packageItems property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getPackageItems() { + return packageItems; + } + + /** + * Sets the value of the packageItems property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setPackageItems(ArrayOfstring value) { + this.packageItems = value; + } + + /** + * Gets the value of the price property. + * + * @return + * possible object is + * {@link WSPriceType } + * + */ + public WSPriceType getPrice() { + return price; + } + + /** + * Sets the value of the price property. + * + * @param value + * allowed object is + * {@link WSPriceType } + * + */ + public void setPrice(WSPriceType value) { + this.price = value; + } + + /** + * Gets the value of the selected property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isSelected() { + return selected; + } + + /** + * Sets the value of the selected property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSelected(Boolean value) { + this.selected = value; + } + + public WSEquipmentType withType(Integer value) { + setType(value); + return this; + } + + public WSEquipmentType withCode(String value) { + setCode(value); + return this; + } + + public WSEquipmentType withCodeOM(String value) { + setCodeOM(value); + return this; + } + + public WSEquipmentType withGroup(String value) { + setGroup(value); + return this; + } + + public WSEquipmentType withDescription(String value) { + setDescription(value); + return this; + } + + public WSEquipmentType withPackageItems(ArrayOfstring value) { + setPackageItems(value); + return this; + } + + public WSEquipmentType withPrice(WSPriceType value) { + setPrice(value); + return this; + } + + public WSEquipmentType withSelected(Boolean value) { + setSelected(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSForecast.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSForecast.java new file mode 100644 index 0000000..d84c0b0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSForecast.java @@ -0,0 +1,100 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSForecast complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSForecast">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Price" type="{http://samo.cz/iva/}WSPrice" minOccurs="0"/>
+ *         <element name="Status" type="{http://samo.cz/iva/}WSResultStatus" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSForecast", propOrder = { + "price", + "status" +}) +public class WSForecast { + + @XmlElement(name = "Price", nillable = true) + protected WSPrice price; + @XmlElement(name = "Status", nillable = true) + protected WSResultStatus status; + + /** + * Gets the value of the price property. + * + * @return + * possible object is + * {@link WSPrice } + * + */ + public WSPrice getPrice() { + return price; + } + + /** + * Sets the value of the price property. + * + * @param value + * allowed object is + * {@link WSPrice } + * + */ + public void setPrice(WSPrice value) { + this.price = value; + } + + /** + * Gets the value of the status property. + * + * @return + * possible object is + * {@link WSResultStatus } + * + */ + public WSResultStatus getStatus() { + return status; + } + + /** + * Sets the value of the status property. + * + * @param value + * allowed object is + * {@link WSResultStatus } + * + */ + public void setStatus(WSResultStatus value) { + this.status = value; + } + + public WSForecast withPrice(WSPrice value) { + setPrice(value); + return this; + } + + public WSForecast withStatus(WSResultStatus value) { + setStatus(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSFuelTankType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSFuelTankType.java new file mode 100644 index 0000000..6ee14b0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSFuelTankType.java @@ -0,0 +1,134 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import java.math.BigDecimal; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSFuelTankType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSFuelTankType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="MainCapacityL" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="AdditionalCapacityL" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="LPG_CNG_CapacityL" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSFuelTankType", propOrder = { + "mainCapacityL", + "additionalCapacityL", + "lpgcngCapacityL" +}) +public class WSFuelTankType { + + @XmlElement(name = "MainCapacityL", nillable = true) + protected BigDecimal mainCapacityL; + @XmlElement(name = "AdditionalCapacityL", nillable = true) + protected BigDecimal additionalCapacityL; + @XmlElement(name = "LPG_CNG_CapacityL", nillable = true) + protected BigDecimal lpgcngCapacityL; + + /** + * Gets the value of the mainCapacityL property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getMainCapacityL() { + return mainCapacityL; + } + + /** + * Sets the value of the mainCapacityL property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setMainCapacityL(BigDecimal value) { + this.mainCapacityL = value; + } + + /** + * Gets the value of the additionalCapacityL property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getAdditionalCapacityL() { + return additionalCapacityL; + } + + /** + * Sets the value of the additionalCapacityL property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setAdditionalCapacityL(BigDecimal value) { + this.additionalCapacityL = value; + } + + /** + * Gets the value of the lpgcngCapacityL property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getLPGCNGCapacityL() { + return lpgcngCapacityL; + } + + /** + * Sets the value of the lpgcngCapacityL property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setLPGCNGCapacityL(BigDecimal value) { + this.lpgcngCapacityL = value; + } + + public WSFuelTankType withMainCapacityL(BigDecimal value) { + setMainCapacityL(value); + return this; + } + + public WSFuelTankType withAdditionalCapacityL(BigDecimal value) { + setAdditionalCapacityL(value); + return this; + } + + public WSFuelTankType withLPGCNGCapacityL(BigDecimal value) { + setLPGCNGCapacityL(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSGearboxType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSGearboxType.java new file mode 100644 index 0000000..9cf3e8a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSGearboxType.java @@ -0,0 +1,166 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSGearboxType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSGearboxType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="TypeID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="CodeOM" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Gears" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSGearboxType", propOrder = { + "type", + "typeID", + "codeOM", + "gears" +}) +public class WSGearboxType { + + @XmlElement(name = "Type", nillable = true) + protected String type; + @XmlElement(name = "TypeID", nillable = true) + protected String typeID; + @XmlElement(name = "CodeOM", nillable = true) + protected String codeOM; + @XmlElement(name = "Gears", nillable = true) + protected Integer gears; + + /** + * Gets the value of the type property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * Sets the value of the type property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * Gets the value of the typeID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTypeID() { + return typeID; + } + + /** + * Sets the value of the typeID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTypeID(String value) { + this.typeID = value; + } + + /** + * Gets the value of the codeOM property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodeOM() { + return codeOM; + } + + /** + * Sets the value of the codeOM property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodeOM(String value) { + this.codeOM = value; + } + + /** + * Gets the value of the gears property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getGears() { + return gears; + } + + /** + * Sets the value of the gears property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setGears(Integer value) { + this.gears = value; + } + + public WSGearboxType withType(String value) { + setType(value); + return this; + } + + public WSGearboxType withTypeID(String value) { + setTypeID(value); + return this; + } + + public WSGearboxType withCodeOM(String value) { + setCodeOM(value); + return this; + } + + public WSGearboxType withGears(Integer value) { + setGears(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSIdentification3Response.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSIdentification3Response.java new file mode 100644 index 0000000..19d8c36 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSIdentification3Response.java @@ -0,0 +1,133 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSIdentification3Response complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSIdentification3Response">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="TxID" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
+ *         <element name="Results" type="{http://samo.cz/iva/}ArrayOfWSIdentification3Result" minOccurs="0"/>
+ *         <element name="Status" type="{http://samo.cz/iva/}WSResultStatus" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSIdentification3Response", propOrder = { + "txID", + "results", + "status" +}) +public class WSIdentification3Response { + + @XmlElement(name = "TxID") + protected Long txID; + @XmlElement(name = "Results", nillable = true) + protected ArrayOfWSIdentification3Result results; + @XmlElement(name = "Status", nillable = true) + protected WSResultStatus status; + + /** + * Gets the value of the txID property. + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getTxID() { + return txID; + } + + /** + * Sets the value of the txID property. + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setTxID(Long value) { + this.txID = value; + } + + /** + * Gets the value of the results property. + * + * @return + * possible object is + * {@link ArrayOfWSIdentification3Result } + * + */ + public ArrayOfWSIdentification3Result getResults() { + return results; + } + + /** + * Sets the value of the results property. + * + * @param value + * allowed object is + * {@link ArrayOfWSIdentification3Result } + * + */ + public void setResults(ArrayOfWSIdentification3Result value) { + this.results = value; + } + + /** + * Gets the value of the status property. + * + * @return + * possible object is + * {@link WSResultStatus } + * + */ + public WSResultStatus getStatus() { + return status; + } + + /** + * Sets the value of the status property. + * + * @param value + * allowed object is + * {@link WSResultStatus } + * + */ + public void setStatus(WSResultStatus value) { + this.status = value; + } + + public WSIdentification3Response withTxID(Long value) { + setTxID(value); + return this; + } + + public WSIdentification3Response withResults(ArrayOfWSIdentification3Result value) { + setResults(value); + return this; + } + + public WSIdentification3Response withStatus(WSResultStatus value) { + setStatus(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSIdentification3Result.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSIdentification3Result.java new file mode 100644 index 0000000..660313f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSIdentification3Result.java @@ -0,0 +1,199 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSIdentification3Result complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSIdentification3Result">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Vehicle" type="{http://samo.cz/iva/}WSVehicleType" minOccurs="0"/>
+ *         <element name="Valuation" type="{http://samo.cz/iva/}WSValuation" minOccurs="0"/>
+ *         <element name="Forecast12" type="{http://samo.cz/iva/}WSForecast" minOccurs="0"/>
+ *         <element name="Forecast24" type="{http://samo.cz/iva/}WSForecast" minOccurs="0"/>
+ *         <element name="Forecast36" type="{http://samo.cz/iva/}WSForecast" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSIdentification3Result", propOrder = { + "vehicle", + "valuation", + "forecast12", + "forecast24", + "forecast36" +}) +public class WSIdentification3Result { + + @XmlElement(name = "Vehicle", nillable = true) + protected WSVehicleType vehicle; + @XmlElement(name = "Valuation", nillable = true) + protected WSValuation valuation; + @XmlElement(name = "Forecast12", nillable = true) + protected WSForecast forecast12; + @XmlElement(name = "Forecast24", nillable = true) + protected WSForecast forecast24; + @XmlElement(name = "Forecast36", nillable = true) + protected WSForecast forecast36; + + /** + * Gets the value of the vehicle property. + * + * @return + * possible object is + * {@link WSVehicleType } + * + */ + public WSVehicleType getVehicle() { + return vehicle; + } + + /** + * Sets the value of the vehicle property. + * + * @param value + * allowed object is + * {@link WSVehicleType } + * + */ + public void setVehicle(WSVehicleType value) { + this.vehicle = value; + } + + /** + * Gets the value of the valuation property. + * + * @return + * possible object is + * {@link WSValuation } + * + */ + public WSValuation getValuation() { + return valuation; + } + + /** + * Sets the value of the valuation property. + * + * @param value + * allowed object is + * {@link WSValuation } + * + */ + public void setValuation(WSValuation value) { + this.valuation = value; + } + + /** + * Gets the value of the forecast12 property. + * + * @return + * possible object is + * {@link WSForecast } + * + */ + public WSForecast getForecast12() { + return forecast12; + } + + /** + * Sets the value of the forecast12 property. + * + * @param value + * allowed object is + * {@link WSForecast } + * + */ + public void setForecast12(WSForecast value) { + this.forecast12 = value; + } + + /** + * Gets the value of the forecast24 property. + * + * @return + * possible object is + * {@link WSForecast } + * + */ + public WSForecast getForecast24() { + return forecast24; + } + + /** + * Sets the value of the forecast24 property. + * + * @param value + * allowed object is + * {@link WSForecast } + * + */ + public void setForecast24(WSForecast value) { + this.forecast24 = value; + } + + /** + * Gets the value of the forecast36 property. + * + * @return + * possible object is + * {@link WSForecast } + * + */ + public WSForecast getForecast36() { + return forecast36; + } + + /** + * Sets the value of the forecast36 property. + * + * @param value + * allowed object is + * {@link WSForecast } + * + */ + public void setForecast36(WSForecast value) { + this.forecast36 = value; + } + + public WSIdentification3Result withVehicle(WSVehicleType value) { + setVehicle(value); + return this; + } + + public WSIdentification3Result withValuation(WSValuation value) { + setValuation(value); + return this; + } + + public WSIdentification3Result withForecast12(WSForecast value) { + setForecast12(value); + return this; + } + + public WSIdentification3Result withForecast24(WSForecast value) { + setForecast24(value); + return this; + } + + public WSIdentification3Result withForecast36(WSForecast value) { + setForecast36(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSIdentificationResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSIdentificationResponse.java new file mode 100644 index 0000000..0b81be3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSIdentificationResponse.java @@ -0,0 +1,199 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSIdentificationResponse complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSIdentificationResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="TxID" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
+ *         <element name="Vehicles" type="{http://samo.cz/iva/}ArrayOfWSVehicleType" minOccurs="0"/>
+ *         <element name="ReturnCode" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="ReturnMessage" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ProcessInfo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSIdentificationResponse", propOrder = { + "txID", + "vehicles", + "returnCode", + "returnMessage", + "processInfo" +}) +public class WSIdentificationResponse { + + @XmlElement(name = "TxID") + protected Long txID; + @XmlElement(name = "Vehicles", nillable = true) + protected ArrayOfWSVehicleType vehicles; + @XmlElement(name = "ReturnCode") + protected Integer returnCode; + @XmlElement(name = "ReturnMessage", nillable = true) + protected String returnMessage; + @XmlElement(name = "ProcessInfo", nillable = true) + protected String processInfo; + + /** + * Gets the value of the txID property. + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getTxID() { + return txID; + } + + /** + * Sets the value of the txID property. + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setTxID(Long value) { + this.txID = value; + } + + /** + * Gets the value of the vehicles property. + * + * @return + * possible object is + * {@link ArrayOfWSVehicleType } + * + */ + public ArrayOfWSVehicleType getVehicles() { + return vehicles; + } + + /** + * Sets the value of the vehicles property. + * + * @param value + * allowed object is + * {@link ArrayOfWSVehicleType } + * + */ + public void setVehicles(ArrayOfWSVehicleType value) { + this.vehicles = value; + } + + /** + * Gets the value of the returnCode property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getReturnCode() { + return returnCode; + } + + /** + * Sets the value of the returnCode property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setReturnCode(Integer value) { + this.returnCode = value; + } + + /** + * Gets the value of the returnMessage property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getReturnMessage() { + return returnMessage; + } + + /** + * Sets the value of the returnMessage property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setReturnMessage(String value) { + this.returnMessage = value; + } + + /** + * Gets the value of the processInfo property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getProcessInfo() { + return processInfo; + } + + /** + * Sets the value of the processInfo property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setProcessInfo(String value) { + this.processInfo = value; + } + + public WSIdentificationResponse withTxID(Long value) { + setTxID(value); + return this; + } + + public WSIdentificationResponse withVehicles(ArrayOfWSVehicleType value) { + setVehicles(value); + return this; + } + + public WSIdentificationResponse withReturnCode(Integer value) { + setReturnCode(value); + return this; + } + + public WSIdentificationResponse withReturnMessage(String value) { + setReturnMessage(value); + return this; + } + + public WSIdentificationResponse withProcessInfo(String value) { + setProcessInfo(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSInputDataType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSInputDataType.java new file mode 100644 index 0000000..f26559b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSInputDataType.java @@ -0,0 +1,100 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSInputDataType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSInputDataType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VIN" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSInputDataType", propOrder = { + "vin", + "id" +}) +public class WSInputDataType { + + @XmlElement(name = "VIN", nillable = true) + protected String vin; + @XmlElement(name = "ID", nillable = true) + protected String id; + + /** + * Gets the value of the vin property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIN() { + return vin; + } + + /** + * Sets the value of the vin property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIN(String value) { + this.vin = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getID() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setID(String value) { + this.id = value; + } + + public WSInputDataType withVIN(String value) { + setVIN(value); + return this; + } + + public WSInputDataType withID(String value) { + setID(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSPrice.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSPrice.java new file mode 100644 index 0000000..a70c128 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSPrice.java @@ -0,0 +1,167 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import java.math.BigDecimal; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSPrice complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSPrice">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Price" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="PriceInclVAT" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="VAT" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="Currency" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSPrice", propOrder = { + "price", + "priceInclVAT", + "vat", + "currency" +}) +public class WSPrice { + + @XmlElement(name = "Price") + protected BigDecimal price; + @XmlElement(name = "PriceInclVAT", nillable = true) + protected BigDecimal priceInclVAT; + @XmlElement(name = "VAT", nillable = true) + protected BigDecimal vat; + @XmlElement(name = "Currency", nillable = true) + protected String currency; + + /** + * Gets the value of the price property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getPrice() { + return price; + } + + /** + * Sets the value of the price property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setPrice(BigDecimal value) { + this.price = value; + } + + /** + * Gets the value of the priceInclVAT property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getPriceInclVAT() { + return priceInclVAT; + } + + /** + * Sets the value of the priceInclVAT property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setPriceInclVAT(BigDecimal value) { + this.priceInclVAT = value; + } + + /** + * Gets the value of the vat property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getVAT() { + return vat; + } + + /** + * Sets the value of the vat property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setVAT(BigDecimal value) { + this.vat = value; + } + + /** + * Gets the value of the currency property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCurrency() { + return currency; + } + + /** + * Sets the value of the currency property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCurrency(String value) { + this.currency = value; + } + + public WSPrice withPrice(BigDecimal value) { + setPrice(value); + return this; + } + + public WSPrice withPriceInclVAT(BigDecimal value) { + setPriceInclVAT(value); + return this; + } + + public WSPrice withVAT(BigDecimal value) { + setVAT(value); + return this; + } + + public WSPrice withCurrency(String value) { + setCurrency(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSPriceType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSPriceType.java new file mode 100644 index 0000000..7fa2d04 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSPriceType.java @@ -0,0 +1,134 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import java.math.BigDecimal; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSPriceType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSPriceType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="WithoutVAT" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="WithVAT" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="PriceCurrency" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSPriceType", propOrder = { + "withoutVAT", + "withVAT", + "priceCurrency" +}) +public class WSPriceType { + + @XmlElement(name = "WithoutVAT", nillable = true) + protected BigDecimal withoutVAT; + @XmlElement(name = "WithVAT", nillable = true) + protected BigDecimal withVAT; + @XmlElement(name = "PriceCurrency", nillable = true) + protected String priceCurrency; + + /** + * Gets the value of the withoutVAT property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getWithoutVAT() { + return withoutVAT; + } + + /** + * Sets the value of the withoutVAT property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setWithoutVAT(BigDecimal value) { + this.withoutVAT = value; + } + + /** + * Gets the value of the withVAT property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getWithVAT() { + return withVAT; + } + + /** + * Sets the value of the withVAT property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setWithVAT(BigDecimal value) { + this.withVAT = value; + } + + /** + * Gets the value of the priceCurrency property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPriceCurrency() { + return priceCurrency; + } + + /** + * Sets the value of the priceCurrency property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPriceCurrency(String value) { + this.priceCurrency = value; + } + + public WSPriceType withWithoutVAT(BigDecimal value) { + setWithoutVAT(value); + return this; + } + + public WSPriceType withWithVAT(BigDecimal value) { + setWithVAT(value); + return this; + } + + public WSPriceType withPriceCurrency(String value) { + setPriceCurrency(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIAxles.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIAxles.java new file mode 100644 index 0000000..e278cfd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIAxles.java @@ -0,0 +1,199 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSRCIIAxles complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSRCIIAxles">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="L" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No20" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No21" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No22" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No23" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSRCIIAxles", propOrder = { + "l", + "no20", + "no21", + "no22", + "no23" +}) +public class WSRCIIAxles { + + @XmlElement(name = "L", nillable = true) + protected String l; + @XmlElement(name = "No20", nillable = true) + protected String no20; + @XmlElement(name = "No21", nillable = true) + protected String no21; + @XmlElement(name = "No22", nillable = true) + protected String no22; + @XmlElement(name = "No23", nillable = true) + protected String no23; + + /** + * Gets the value of the l property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getL() { + return l; + } + + /** + * Sets the value of the l property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setL(String value) { + this.l = value; + } + + /** + * Gets the value of the no20 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo20() { + return no20; + } + + /** + * Sets the value of the no20 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo20(String value) { + this.no20 = value; + } + + /** + * Gets the value of the no21 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo21() { + return no21; + } + + /** + * Sets the value of the no21 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo21(String value) { + this.no21 = value; + } + + /** + * Gets the value of the no22 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo22() { + return no22; + } + + /** + * Sets the value of the no22 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo22(String value) { + this.no22 = value; + } + + /** + * Gets the value of the no23 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo23() { + return no23; + } + + /** + * Sets the value of the no23 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo23(String value) { + this.no23 = value; + } + + public WSRCIIAxles withL(String value) { + setL(value); + return this; + } + + public WSRCIIAxles withNo20(String value) { + setNo20(value); + return this; + } + + public WSRCIIAxles withNo21(String value) { + setNo21(value); + return this; + } + + public WSRCIIAxles withNo22(String value) { + setNo22(value); + return this; + } + + public WSRCIIAxles withNo23(String value) { + setNo23(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIBodywork.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIBodywork.java new file mode 100644 index 0000000..9b1c0f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIBodywork.java @@ -0,0 +1,364 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSRCIIBodywork complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSRCIIBodywork">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="No6" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No7" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No8" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="R" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="S" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="S1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="S2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No9" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No10" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No11" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSRCIIBodywork", propOrder = { + "no6", + "no7", + "no8", + "r", + "s", + "s1", + "s2", + "no9", + "no10", + "no11" +}) +public class WSRCIIBodywork { + + @XmlElement(name = "No6", nillable = true) + protected String no6; + @XmlElement(name = "No7", nillable = true) + protected String no7; + @XmlElement(name = "No8", nillable = true) + protected String no8; + @XmlElement(name = "R", nillable = true) + protected String r; + @XmlElement(name = "S", nillable = true) + protected String s; + @XmlElement(name = "S1", nillable = true) + protected String s1; + @XmlElement(name = "S2", nillable = true) + protected String s2; + @XmlElement(name = "No9", nillable = true) + protected String no9; + @XmlElement(name = "No10", nillable = true) + protected String no10; + @XmlElement(name = "No11", nillable = true) + protected String no11; + + /** + * Gets the value of the no6 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo6() { + return no6; + } + + /** + * Sets the value of the no6 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo6(String value) { + this.no6 = value; + } + + /** + * Gets the value of the no7 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo7() { + return no7; + } + + /** + * Sets the value of the no7 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo7(String value) { + this.no7 = value; + } + + /** + * Gets the value of the no8 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo8() { + return no8; + } + + /** + * Sets the value of the no8 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo8(String value) { + this.no8 = value; + } + + /** + * Gets the value of the r property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getR() { + return r; + } + + /** + * Sets the value of the r property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setR(String value) { + this.r = value; + } + + /** + * Gets the value of the s property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getS() { + return s; + } + + /** + * Sets the value of the s property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setS(String value) { + this.s = value; + } + + /** + * Gets the value of the s1 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getS1() { + return s1; + } + + /** + * Sets the value of the s1 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setS1(String value) { + this.s1 = value; + } + + /** + * Gets the value of the s2 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getS2() { + return s2; + } + + /** + * Sets the value of the s2 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setS2(String value) { + this.s2 = value; + } + + /** + * Gets the value of the no9 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo9() { + return no9; + } + + /** + * Sets the value of the no9 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo9(String value) { + this.no9 = value; + } + + /** + * Gets the value of the no10 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo10() { + return no10; + } + + /** + * Sets the value of the no10 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo10(String value) { + this.no10 = value; + } + + /** + * Gets the value of the no11 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo11() { + return no11; + } + + /** + * Sets the value of the no11 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo11(String value) { + this.no11 = value; + } + + public WSRCIIBodywork withNo6(String value) { + setNo6(value); + return this; + } + + public WSRCIIBodywork withNo7(String value) { + setNo7(value); + return this; + } + + public WSRCIIBodywork withNo8(String value) { + setNo8(value); + return this; + } + + public WSRCIIBodywork withR(String value) { + setR(value); + return this; + } + + public WSRCIIBodywork withS(String value) { + setS(value); + return this; + } + + public WSRCIIBodywork withS1(String value) { + setS1(value); + return this; + } + + public WSRCIIBodywork withS2(String value) { + setS2(value); + return this; + } + + public WSRCIIBodywork withNo9(String value) { + setNo9(value); + return this; + } + + public WSRCIIBodywork withNo10(String value) { + setNo10(value); + return this; + } + + public WSRCIIBodywork withNo11(String value) { + setNo11(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIDimensions.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIDimensions.java new file mode 100644 index 0000000..a8bceee --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIDimensions.java @@ -0,0 +1,232 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSRCIIDimensions complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSRCIIDimensions">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="No12" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No13" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No14" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="M" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No15" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No16" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSRCIIDimensions", propOrder = { + "no12", + "no13", + "no14", + "m", + "no15", + "no16" +}) +public class WSRCIIDimensions { + + @XmlElement(name = "No12", nillable = true) + protected String no12; + @XmlElement(name = "No13", nillable = true) + protected String no13; + @XmlElement(name = "No14", nillable = true) + protected String no14; + @XmlElement(name = "M", nillable = true) + protected String m; + @XmlElement(name = "No15", nillable = true) + protected String no15; + @XmlElement(name = "No16", nillable = true) + protected String no16; + + /** + * Gets the value of the no12 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo12() { + return no12; + } + + /** + * Sets the value of the no12 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo12(String value) { + this.no12 = value; + } + + /** + * Gets the value of the no13 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo13() { + return no13; + } + + /** + * Sets the value of the no13 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo13(String value) { + this.no13 = value; + } + + /** + * Gets the value of the no14 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo14() { + return no14; + } + + /** + * Sets the value of the no14 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo14(String value) { + this.no14 = value; + } + + /** + * Gets the value of the m property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getM() { + return m; + } + + /** + * Sets the value of the m property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setM(String value) { + this.m = value; + } + + /** + * Gets the value of the no15 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo15() { + return no15; + } + + /** + * Sets the value of the no15 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo15(String value) { + this.no15 = value; + } + + /** + * Gets the value of the no16 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo16() { + return no16; + } + + /** + * Sets the value of the no16 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo16(String value) { + this.no16 = value; + } + + public WSRCIIDimensions withNo12(String value) { + setNo12(value); + return this; + } + + public WSRCIIDimensions withNo13(String value) { + setNo13(value); + return this; + } + + public WSRCIIDimensions withNo14(String value) { + setNo14(value); + return this; + } + + public WSRCIIDimensions withM(String value) { + setM(value); + return this; + } + + public WSRCIIDimensions withNo15(String value) { + setNo15(value); + return this; + } + + public WSRCIIDimensions withNo16(String value) { + setNo16(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIEmissions.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIEmissions.java new file mode 100644 index 0000000..9b1d72d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIEmissions.java @@ -0,0 +1,166 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSRCIIEmissions complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSRCIIEmissions">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="V6" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="V7" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="V9" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Directive" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSRCIIEmissions", propOrder = { + "v6", + "v7", + "v9", + "directive" +}) +public class WSRCIIEmissions { + + @XmlElement(name = "V6", nillable = true) + protected String v6; + @XmlElement(name = "V7", nillable = true) + protected String v7; + @XmlElement(name = "V9", nillable = true) + protected String v9; + @XmlElement(name = "Directive", nillable = true) + protected String directive; + + /** + * Gets the value of the v6 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getV6() { + return v6; + } + + /** + * Sets the value of the v6 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setV6(String value) { + this.v6 = value; + } + + /** + * Gets the value of the v7 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getV7() { + return v7; + } + + /** + * Sets the value of the v7 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setV7(String value) { + this.v7 = value; + } + + /** + * Gets the value of the v9 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getV9() { + return v9; + } + + /** + * Sets the value of the v9 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setV9(String value) { + this.v9 = value; + } + + /** + * Gets the value of the directive property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDirective() { + return directive; + } + + /** + * Sets the value of the directive property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDirective(String value) { + this.directive = value; + } + + public WSRCIIEmissions withV6(String value) { + setV6(value); + return this; + } + + public WSRCIIEmissions withV7(String value) { + setV7(value); + return this; + } + + public WSRCIIEmissions withV9(String value) { + setV9(value); + return this; + } + + public WSRCIIEmissions withDirective(String value) { + setDirective(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIEngine.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIEngine.java new file mode 100644 index 0000000..10621c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIEngine.java @@ -0,0 +1,199 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSRCIIEngine complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSRCIIEngine">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="No4" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No5" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="P1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="P2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="P3" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSRCIIEngine", propOrder = { + "no4", + "no5", + "p1", + "p2", + "p3" +}) +public class WSRCIIEngine { + + @XmlElement(name = "No4", nillable = true) + protected String no4; + @XmlElement(name = "No5", nillable = true) + protected String no5; + @XmlElement(name = "P1", nillable = true) + protected String p1; + @XmlElement(name = "P2", nillable = true) + protected String p2; + @XmlElement(name = "P3", nillable = true) + protected String p3; + + /** + * Gets the value of the no4 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo4() { + return no4; + } + + /** + * Sets the value of the no4 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo4(String value) { + this.no4 = value; + } + + /** + * Gets the value of the no5 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo5() { + return no5; + } + + /** + * Sets the value of the no5 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo5(String value) { + this.no5 = value; + } + + /** + * Gets the value of the p1 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getP1() { + return p1; + } + + /** + * Sets the value of the p1 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setP1(String value) { + this.p1 = value; + } + + /** + * Gets the value of the p2 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getP2() { + return p2; + } + + /** + * Sets the value of the p2 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setP2(String value) { + this.p2 = value; + } + + /** + * Gets the value of the p3 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getP3() { + return p3; + } + + /** + * Sets the value of the p3 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setP3(String value) { + this.p3 = value; + } + + public WSRCIIEngine withNo4(String value) { + setNo4(value); + return this; + } + + public WSRCIIEngine withNo5(String value) { + setNo5(value); + return this; + } + + public WSRCIIEngine withP1(String value) { + setP1(value); + return this; + } + + public WSRCIIEngine withP2(String value) { + setP2(value); + return this; + } + + public WSRCIIEngine withP3(String value) { + setP3(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIOthers.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIOthers.java new file mode 100644 index 0000000..00b1e9a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIOthers.java @@ -0,0 +1,595 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSRCIIOthers complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSRCIIOthers">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="No19" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="T" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No24_1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No24_2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No24_3" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No24_4" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="U1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="U2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="U3" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No25" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No26" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No27" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Q" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No28" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No29" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No30" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="OtherRecords" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSRCIIOthers", propOrder = { + "no19", + "t", + "no241", + "no242", + "no243", + "no244", + "u1", + "u2", + "u3", + "no25", + "no26", + "no27", + "q", + "no28", + "no29", + "no30", + "otherRecords" +}) +public class WSRCIIOthers { + + @XmlElement(name = "No19", nillable = true) + protected String no19; + @XmlElement(name = "T", nillable = true) + protected String t; + @XmlElement(name = "No24_1", nillable = true) + protected String no241; + @XmlElement(name = "No24_2", nillable = true) + protected String no242; + @XmlElement(name = "No24_3", nillable = true) + protected String no243; + @XmlElement(name = "No24_4", nillable = true) + protected String no244; + @XmlElement(name = "U1", nillable = true) + protected String u1; + @XmlElement(name = "U2", nillable = true) + protected String u2; + @XmlElement(name = "U3", nillable = true) + protected String u3; + @XmlElement(name = "No25", nillable = true) + protected String no25; + @XmlElement(name = "No26", nillable = true) + protected String no26; + @XmlElement(name = "No27", nillable = true) + protected String no27; + @XmlElement(name = "Q", nillable = true) + protected String q; + @XmlElement(name = "No28", nillable = true) + protected String no28; + @XmlElement(name = "No29", nillable = true) + protected String no29; + @XmlElement(name = "No30", nillable = true) + protected String no30; + @XmlElement(name = "OtherRecords", nillable = true) + protected String otherRecords; + + /** + * Gets the value of the no19 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo19() { + return no19; + } + + /** + * Sets the value of the no19 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo19(String value) { + this.no19 = value; + } + + /** + * Gets the value of the t property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getT() { + return t; + } + + /** + * Sets the value of the t property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setT(String value) { + this.t = value; + } + + /** + * Gets the value of the no241 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo241() { + return no241; + } + + /** + * Sets the value of the no241 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo241(String value) { + this.no241 = value; + } + + /** + * Gets the value of the no242 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo242() { + return no242; + } + + /** + * Sets the value of the no242 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo242(String value) { + this.no242 = value; + } + + /** + * Gets the value of the no243 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo243() { + return no243; + } + + /** + * Sets the value of the no243 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo243(String value) { + this.no243 = value; + } + + /** + * Gets the value of the no244 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo244() { + return no244; + } + + /** + * Sets the value of the no244 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo244(String value) { + this.no244 = value; + } + + /** + * Gets the value of the u1 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getU1() { + return u1; + } + + /** + * Sets the value of the u1 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setU1(String value) { + this.u1 = value; + } + + /** + * Gets the value of the u2 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getU2() { + return u2; + } + + /** + * Sets the value of the u2 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setU2(String value) { + this.u2 = value; + } + + /** + * Gets the value of the u3 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getU3() { + return u3; + } + + /** + * Sets the value of the u3 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setU3(String value) { + this.u3 = value; + } + + /** + * Gets the value of the no25 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo25() { + return no25; + } + + /** + * Sets the value of the no25 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo25(String value) { + this.no25 = value; + } + + /** + * Gets the value of the no26 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo26() { + return no26; + } + + /** + * Sets the value of the no26 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo26(String value) { + this.no26 = value; + } + + /** + * Gets the value of the no27 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo27() { + return no27; + } + + /** + * Sets the value of the no27 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo27(String value) { + this.no27 = value; + } + + /** + * Gets the value of the q property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getQ() { + return q; + } + + /** + * Sets the value of the q property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setQ(String value) { + this.q = value; + } + + /** + * Gets the value of the no28 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo28() { + return no28; + } + + /** + * Sets the value of the no28 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo28(String value) { + this.no28 = value; + } + + /** + * Gets the value of the no29 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo29() { + return no29; + } + + /** + * Sets the value of the no29 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo29(String value) { + this.no29 = value; + } + + /** + * Gets the value of the no30 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo30() { + return no30; + } + + /** + * Sets the value of the no30 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo30(String value) { + this.no30 = value; + } + + /** + * Gets the value of the otherRecords property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getOtherRecords() { + return otherRecords; + } + + /** + * Sets the value of the otherRecords property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setOtherRecords(String value) { + this.otherRecords = value; + } + + public WSRCIIOthers withNo19(String value) { + setNo19(value); + return this; + } + + public WSRCIIOthers withT(String value) { + setT(value); + return this; + } + + public WSRCIIOthers withNo241(String value) { + setNo241(value); + return this; + } + + public WSRCIIOthers withNo242(String value) { + setNo242(value); + return this; + } + + public WSRCIIOthers withNo243(String value) { + setNo243(value); + return this; + } + + public WSRCIIOthers withNo244(String value) { + setNo244(value); + return this; + } + + public WSRCIIOthers withU1(String value) { + setU1(value); + return this; + } + + public WSRCIIOthers withU2(String value) { + setU2(value); + return this; + } + + public WSRCIIOthers withU3(String value) { + setU3(value); + return this; + } + + public WSRCIIOthers withNo25(String value) { + setNo25(value); + return this; + } + + public WSRCIIOthers withNo26(String value) { + setNo26(value); + return this; + } + + public WSRCIIOthers withNo27(String value) { + setNo27(value); + return this; + } + + public WSRCIIOthers withQ(String value) { + setQ(value); + return this; + } + + public WSRCIIOthers withNo28(String value) { + setNo28(value); + return this; + } + + public WSRCIIOthers withNo29(String value) { + setNo29(value); + return this; + } + + public WSRCIIOthers withNo30(String value) { + setNo30(value); + return this; + } + + public WSRCIIOthers withOtherRecords(String value) { + setOtherRecords(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIVehicle.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIVehicle.java new file mode 100644 index 0000000..144650e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIVehicle.java @@ -0,0 +1,331 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSRCIIVehicle complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSRCIIVehicle">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="No1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="J" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="D1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="D2_Type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="D2_Variant" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="D2_Version" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="E" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No3" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSRCIIVehicle", propOrder = { + "no1", + "no2", + "j", + "d1", + "d2Type", + "d2Variant", + "d2Version", + "e", + "no3" +}) +public class WSRCIIVehicle { + + @XmlElement(name = "No1", nillable = true) + protected String no1; + @XmlElement(name = "No2", nillable = true) + protected String no2; + @XmlElement(name = "J", nillable = true) + protected String j; + @XmlElement(name = "D1", nillable = true) + protected String d1; + @XmlElement(name = "D2_Type", nillable = true) + protected String d2Type; + @XmlElement(name = "D2_Variant", nillable = true) + protected String d2Variant; + @XmlElement(name = "D2_Version", nillable = true) + protected String d2Version; + @XmlElement(name = "E", nillable = true) + protected String e; + @XmlElement(name = "No3", nillable = true) + protected String no3; + + /** + * Gets the value of the no1 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo1() { + return no1; + } + + /** + * Sets the value of the no1 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo1(String value) { + this.no1 = value; + } + + /** + * Gets the value of the no2 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo2() { + return no2; + } + + /** + * Sets the value of the no2 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo2(String value) { + this.no2 = value; + } + + /** + * Gets the value of the j property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getJ() { + return j; + } + + /** + * Sets the value of the j property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setJ(String value) { + this.j = value; + } + + /** + * Gets the value of the d1 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getD1() { + return d1; + } + + /** + * Sets the value of the d1 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setD1(String value) { + this.d1 = value; + } + + /** + * Gets the value of the d2Type property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getD2Type() { + return d2Type; + } + + /** + * Sets the value of the d2Type property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setD2Type(String value) { + this.d2Type = value; + } + + /** + * Gets the value of the d2Variant property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getD2Variant() { + return d2Variant; + } + + /** + * Sets the value of the d2Variant property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setD2Variant(String value) { + this.d2Variant = value; + } + + /** + * Gets the value of the d2Version property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getD2Version() { + return d2Version; + } + + /** + * Sets the value of the d2Version property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setD2Version(String value) { + this.d2Version = value; + } + + /** + * Gets the value of the e property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getE() { + return e; + } + + /** + * Sets the value of the e property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setE(String value) { + this.e = value; + } + + /** + * Gets the value of the no3 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo3() { + return no3; + } + + /** + * Sets the value of the no3 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo3(String value) { + this.no3 = value; + } + + public WSRCIIVehicle withNo1(String value) { + setNo1(value); + return this; + } + + public WSRCIIVehicle withNo2(String value) { + setNo2(value); + return this; + } + + public WSRCIIVehicle withJ(String value) { + setJ(value); + return this; + } + + public WSRCIIVehicle withD1(String value) { + setD1(value); + return this; + } + + public WSRCIIVehicle withD2Type(String value) { + setD2Type(value); + return this; + } + + public WSRCIIVehicle withD2Variant(String value) { + setD2Variant(value); + return this; + } + + public WSRCIIVehicle withD2Version(String value) { + setD2Version(value); + return this; + } + + public WSRCIIVehicle withE(String value) { + setE(value); + return this; + } + + public WSRCIIVehicle withNo3(String value) { + setNo3(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIWeights.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIWeights.java new file mode 100644 index 0000000..50fd0fc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRCIIWeights.java @@ -0,0 +1,298 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSRCIIWeights complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSRCIIWeights">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="G" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="F1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="F2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="N" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No17" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="O1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="O2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="No18" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSRCIIWeights", propOrder = { + "g", + "f1", + "f2", + "n", + "no17", + "o1", + "o2", + "no18" +}) +public class WSRCIIWeights { + + @XmlElement(name = "G", nillable = true) + protected String g; + @XmlElement(name = "F1", nillable = true) + protected String f1; + @XmlElement(name = "F2", nillable = true) + protected String f2; + @XmlElement(name = "N", nillable = true) + protected String n; + @XmlElement(name = "No17", nillable = true) + protected String no17; + @XmlElement(name = "O1", nillable = true) + protected String o1; + @XmlElement(name = "O2", nillable = true) + protected String o2; + @XmlElement(name = "No18", nillable = true) + protected String no18; + + /** + * Gets the value of the g property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getG() { + return g; + } + + /** + * Sets the value of the g property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setG(String value) { + this.g = value; + } + + /** + * Gets the value of the f1 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getF1() { + return f1; + } + + /** + * Sets the value of the f1 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setF1(String value) { + this.f1 = value; + } + + /** + * Gets the value of the f2 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getF2() { + return f2; + } + + /** + * Sets the value of the f2 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setF2(String value) { + this.f2 = value; + } + + /** + * Gets the value of the n property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN() { + return n; + } + + /** + * Sets the value of the n property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN(String value) { + this.n = value; + } + + /** + * Gets the value of the no17 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo17() { + return no17; + } + + /** + * Sets the value of the no17 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo17(String value) { + this.no17 = value; + } + + /** + * Gets the value of the o1 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getO1() { + return o1; + } + + /** + * Sets the value of the o1 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setO1(String value) { + this.o1 = value; + } + + /** + * Gets the value of the o2 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getO2() { + return o2; + } + + /** + * Sets the value of the o2 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setO2(String value) { + this.o2 = value; + } + + /** + * Gets the value of the no18 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNo18() { + return no18; + } + + /** + * Sets the value of the no18 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNo18(String value) { + this.no18 = value; + } + + public WSRCIIWeights withG(String value) { + setG(value); + return this; + } + + public WSRCIIWeights withF1(String value) { + setF1(value); + return this; + } + + public WSRCIIWeights withF2(String value) { + setF2(value); + return this; + } + + public WSRCIIWeights withN(String value) { + setN(value); + return this; + } + + public WSRCIIWeights withNo17(String value) { + setNo17(value); + return this; + } + + public WSRCIIWeights withO1(String value) { + setO1(value); + return this; + } + + public WSRCIIWeights withO2(String value) { + setO2(value); + return this; + } + + public WSRCIIWeights withNo18(String value) { + setNo18(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRegistrationCertificatePartII.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRegistrationCertificatePartII.java new file mode 100644 index 0000000..586114f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSRegistrationCertificatePartII.java @@ -0,0 +1,331 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSRegistrationCertificatePartII complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSRegistrationCertificatePartII">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="RCNo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Vehicle" type="{http://samo.cz/iva/}WSRCIIVehicle" minOccurs="0"/>
+ *         <element name="Engine" type="{http://samo.cz/iva/}WSRCIIEngine" minOccurs="0"/>
+ *         <element name="Emissions" type="{http://samo.cz/iva/}WSRCIIEmissions" minOccurs="0"/>
+ *         <element name="Bodywork" type="{http://samo.cz/iva/}WSRCIIBodywork" minOccurs="0"/>
+ *         <element name="Dimensions" type="{http://samo.cz/iva/}WSRCIIDimensions" minOccurs="0"/>
+ *         <element name="Weights" type="{http://samo.cz/iva/}WSRCIIWeights" minOccurs="0"/>
+ *         <element name="Axles" type="{http://samo.cz/iva/}WSRCIIAxles" minOccurs="0"/>
+ *         <element name="Other" type="{http://samo.cz/iva/}WSRCIIOthers" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSRegistrationCertificatePartII", propOrder = { + "rcNo", + "vehicle", + "engine", + "emissions", + "bodywork", + "dimensions", + "weights", + "axles", + "other" +}) +public class WSRegistrationCertificatePartII { + + @XmlElement(name = "RCNo", nillable = true) + protected String rcNo; + @XmlElement(name = "Vehicle", nillable = true) + protected WSRCIIVehicle vehicle; + @XmlElement(name = "Engine", nillable = true) + protected WSRCIIEngine engine; + @XmlElement(name = "Emissions", nillable = true) + protected WSRCIIEmissions emissions; + @XmlElement(name = "Bodywork", nillable = true) + protected WSRCIIBodywork bodywork; + @XmlElement(name = "Dimensions", nillable = true) + protected WSRCIIDimensions dimensions; + @XmlElement(name = "Weights", nillable = true) + protected WSRCIIWeights weights; + @XmlElement(name = "Axles", nillable = true) + protected WSRCIIAxles axles; + @XmlElement(name = "Other", nillable = true) + protected WSRCIIOthers other; + + /** + * Gets the value of the rcNo property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRCNo() { + return rcNo; + } + + /** + * Sets the value of the rcNo property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRCNo(String value) { + this.rcNo = value; + } + + /** + * Gets the value of the vehicle property. + * + * @return + * possible object is + * {@link WSRCIIVehicle } + * + */ + public WSRCIIVehicle getVehicle() { + return vehicle; + } + + /** + * Sets the value of the vehicle property. + * + * @param value + * allowed object is + * {@link WSRCIIVehicle } + * + */ + public void setVehicle(WSRCIIVehicle value) { + this.vehicle = value; + } + + /** + * Gets the value of the engine property. + * + * @return + * possible object is + * {@link WSRCIIEngine } + * + */ + public WSRCIIEngine getEngine() { + return engine; + } + + /** + * Sets the value of the engine property. + * + * @param value + * allowed object is + * {@link WSRCIIEngine } + * + */ + public void setEngine(WSRCIIEngine value) { + this.engine = value; + } + + /** + * Gets the value of the emissions property. + * + * @return + * possible object is + * {@link WSRCIIEmissions } + * + */ + public WSRCIIEmissions getEmissions() { + return emissions; + } + + /** + * Sets the value of the emissions property. + * + * @param value + * allowed object is + * {@link WSRCIIEmissions } + * + */ + public void setEmissions(WSRCIIEmissions value) { + this.emissions = value; + } + + /** + * Gets the value of the bodywork property. + * + * @return + * possible object is + * {@link WSRCIIBodywork } + * + */ + public WSRCIIBodywork getBodywork() { + return bodywork; + } + + /** + * Sets the value of the bodywork property. + * + * @param value + * allowed object is + * {@link WSRCIIBodywork } + * + */ + public void setBodywork(WSRCIIBodywork value) { + this.bodywork = value; + } + + /** + * Gets the value of the dimensions property. + * + * @return + * possible object is + * {@link WSRCIIDimensions } + * + */ + public WSRCIIDimensions getDimensions() { + return dimensions; + } + + /** + * Sets the value of the dimensions property. + * + * @param value + * allowed object is + * {@link WSRCIIDimensions } + * + */ + public void setDimensions(WSRCIIDimensions value) { + this.dimensions = value; + } + + /** + * Gets the value of the weights property. + * + * @return + * possible object is + * {@link WSRCIIWeights } + * + */ + public WSRCIIWeights getWeights() { + return weights; + } + + /** + * Sets the value of the weights property. + * + * @param value + * allowed object is + * {@link WSRCIIWeights } + * + */ + public void setWeights(WSRCIIWeights value) { + this.weights = value; + } + + /** + * Gets the value of the axles property. + * + * @return + * possible object is + * {@link WSRCIIAxles } + * + */ + public WSRCIIAxles getAxles() { + return axles; + } + + /** + * Sets the value of the axles property. + * + * @param value + * allowed object is + * {@link WSRCIIAxles } + * + */ + public void setAxles(WSRCIIAxles value) { + this.axles = value; + } + + /** + * Gets the value of the other property. + * + * @return + * possible object is + * {@link WSRCIIOthers } + * + */ + public WSRCIIOthers getOther() { + return other; + } + + /** + * Sets the value of the other property. + * + * @param value + * allowed object is + * {@link WSRCIIOthers } + * + */ + public void setOther(WSRCIIOthers value) { + this.other = value; + } + + public WSRegistrationCertificatePartII withRCNo(String value) { + setRCNo(value); + return this; + } + + public WSRegistrationCertificatePartII withVehicle(WSRCIIVehicle value) { + setVehicle(value); + return this; + } + + public WSRegistrationCertificatePartII withEngine(WSRCIIEngine value) { + setEngine(value); + return this; + } + + public WSRegistrationCertificatePartII withEmissions(WSRCIIEmissions value) { + setEmissions(value); + return this; + } + + public WSRegistrationCertificatePartII withBodywork(WSRCIIBodywork value) { + setBodywork(value); + return this; + } + + public WSRegistrationCertificatePartII withDimensions(WSRCIIDimensions value) { + setDimensions(value); + return this; + } + + public WSRegistrationCertificatePartII withWeights(WSRCIIWeights value) { + setWeights(value); + return this; + } + + public WSRegistrationCertificatePartII withAxles(WSRCIIAxles value) { + setAxles(value); + return this; + } + + public WSRegistrationCertificatePartII withOther(WSRCIIOthers value) { + setOther(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSResultStatus.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSResultStatus.java new file mode 100644 index 0000000..02c67bf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSResultStatus.java @@ -0,0 +1,100 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSResultStatus complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSResultStatus">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="ReturnCode" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="ReturnMessage" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSResultStatus", propOrder = { + "returnCode", + "returnMessage" +}) +public class WSResultStatus { + + @XmlElement(name = "ReturnCode") + protected Integer returnCode; + @XmlElement(name = "ReturnMessage", nillable = true) + protected String returnMessage; + + /** + * Gets the value of the returnCode property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getReturnCode() { + return returnCode; + } + + /** + * Sets the value of the returnCode property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setReturnCode(Integer value) { + this.returnCode = value; + } + + /** + * Gets the value of the returnMessage property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getReturnMessage() { + return returnMessage; + } + + /** + * Sets the value of the returnMessage property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setReturnMessage(String value) { + this.returnMessage = value; + } + + public WSResultStatus withReturnCode(Integer value) { + setReturnCode(value); + return this; + } + + public WSResultStatus withReturnMessage(String value) { + setReturnMessage(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSSearchCriteriaAttributeEnum.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSSearchCriteriaAttributeEnum.java new file mode 100644 index 0000000..b2fd930 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSSearchCriteriaAttributeEnum.java @@ -0,0 +1,126 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSSearchCriteriaAttributeEnum. + * + *

The following schema fragment specifies the expected content contained within this class. + *

+ *

+ * <simpleType name="WSSearchCriteriaAttributeEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <enumeration value="All"/>
+ *     <enumeration value="Brand"/>
+ *     <enumeration value="Model"/>
+ *     <enumeration value="ModelGeneration"/>
+ *     <enumeration value="ModelYear"/>
+ *     <enumeration value="ModelCodesOM"/>
+ *     <enumeration value="EquipmentLevel"/>
+ *     <enumeration value="EngineCapacityCcm"/>
+ *     <enumeration value="EngineCapacityLiters"/>
+ *     <enumeration value="EnginePowerKW"/>
+ *     <enumeration value="FuelType"/>
+ *     <enumeration value="GearboxType"/>
+ *     <enumeration value="Gears"/>
+ *     <enumeration value="DriveType"/>
+ *     <enumeration value="BodyWorkType"/>
+ *     <enumeration value="Doors"/>
+ *     <enumeration value="Seats"/>
+ *     <enumeration value="Weight"/>
+ *     <enumeration value="Wheelbase"/>
+ *     <enumeration value="OverallLength"/>
+ *     <enumeration value="OverallHeight"/>
+ *     <enumeration value="VehicleKind"/>
+ *     <enumeration value="OverallWidth"/>
+ *     <enumeration value="Payload"/>
+ *     <enumeration value="WheelbasePlus"/>
+ *     <enumeration value="CabinType"/>
+ *     <enumeration value="BoxType"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "WSSearchCriteriaAttributeEnum") +@XmlEnum +public enum WSSearchCriteriaAttributeEnum { + + @XmlEnumValue("All") + ALL("All"), + @XmlEnumValue("Brand") + BRAND("Brand"), + @XmlEnumValue("Model") + MODEL("Model"), + @XmlEnumValue("ModelGeneration") + MODEL_GENERATION("ModelGeneration"), + @XmlEnumValue("ModelYear") + MODEL_YEAR("ModelYear"), + @XmlEnumValue("ModelCodesOM") + MODEL_CODES_OM("ModelCodesOM"), + @XmlEnumValue("EquipmentLevel") + EQUIPMENT_LEVEL("EquipmentLevel"), + @XmlEnumValue("EngineCapacityCcm") + ENGINE_CAPACITY_CCM("EngineCapacityCcm"), + @XmlEnumValue("EngineCapacityLiters") + ENGINE_CAPACITY_LITERS("EngineCapacityLiters"), + @XmlEnumValue("EnginePowerKW") + ENGINE_POWER_KW("EnginePowerKW"), + @XmlEnumValue("FuelType") + FUEL_TYPE("FuelType"), + @XmlEnumValue("GearboxType") + GEARBOX_TYPE("GearboxType"), + @XmlEnumValue("Gears") + GEARS("Gears"), + @XmlEnumValue("DriveType") + DRIVE_TYPE("DriveType"), + @XmlEnumValue("BodyWorkType") + BODY_WORK_TYPE("BodyWorkType"), + @XmlEnumValue("Doors") + DOORS("Doors"), + @XmlEnumValue("Seats") + SEATS("Seats"), + @XmlEnumValue("Weight") + WEIGHT("Weight"), + @XmlEnumValue("Wheelbase") + WHEELBASE("Wheelbase"), + @XmlEnumValue("OverallLength") + OVERALL_LENGTH("OverallLength"), + @XmlEnumValue("OverallHeight") + OVERALL_HEIGHT("OverallHeight"), + @XmlEnumValue("VehicleKind") + VEHICLE_KIND("VehicleKind"), + @XmlEnumValue("OverallWidth") + OVERALL_WIDTH("OverallWidth"), + @XmlEnumValue("Payload") + PAYLOAD("Payload"), + @XmlEnumValue("WheelbasePlus") + WHEELBASE_PLUS("WheelbasePlus"), + @XmlEnumValue("CabinType") + CABIN_TYPE("CabinType"), + @XmlEnumValue("BoxType") + BOX_TYPE("BoxType"); + private final String value; + + WSSearchCriteriaAttributeEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static WSSearchCriteriaAttributeEnum fromValue(String v) { + for (WSSearchCriteriaAttributeEnum c: WSSearchCriteriaAttributeEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSSearchCriteriaTolerance.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSSearchCriteriaTolerance.java new file mode 100644 index 0000000..7fcd128 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSSearchCriteriaTolerance.java @@ -0,0 +1,464 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import java.math.BigDecimal; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSSearchCriteriaTolerance complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSSearchCriteriaTolerance">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="EngineCapacityCcmTolerance" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="EngineCapacityLitersTolerance" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="EnginePowerTolerance" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="WeightTolerance" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="WheelbaseTolerance" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="OverallLengthTolerance" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="OverallHeightTolerance" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="SeatsFrom" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="SeatsTo" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="FirstRegistrationDateTolerance" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="OverallWidthTolerance" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="PayloadTolerance" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="WheelbasePlusTolerance" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSSearchCriteriaTolerance", propOrder = { + "engineCapacityCcmTolerance", + "engineCapacityLitersTolerance", + "enginePowerTolerance", + "weightTolerance", + "wheelbaseTolerance", + "overallLengthTolerance", + "overallHeightTolerance", + "seatsFrom", + "seatsTo", + "firstRegistrationDateTolerance", + "overallWidthTolerance", + "payloadTolerance", + "wheelbasePlusTolerance" +}) +public class WSSearchCriteriaTolerance { + + @XmlElement(name = "EngineCapacityCcmTolerance", nillable = true) + protected Integer engineCapacityCcmTolerance; + @XmlElement(name = "EngineCapacityLitersTolerance", nillable = true) + protected BigDecimal engineCapacityLitersTolerance; + @XmlElement(name = "EnginePowerTolerance", nillable = true) + protected Integer enginePowerTolerance; + @XmlElement(name = "WeightTolerance", nillable = true) + protected Integer weightTolerance; + @XmlElement(name = "WheelbaseTolerance", nillable = true) + protected Integer wheelbaseTolerance; + @XmlElement(name = "OverallLengthTolerance", nillable = true) + protected Integer overallLengthTolerance; + @XmlElement(name = "OverallHeightTolerance", nillable = true) + protected Integer overallHeightTolerance; + @XmlElement(name = "SeatsFrom", nillable = true) + protected Integer seatsFrom; + @XmlElement(name = "SeatsTo", nillable = true) + protected Integer seatsTo; + @XmlElement(name = "FirstRegistrationDateTolerance", nillable = true) + protected Integer firstRegistrationDateTolerance; + @XmlElement(name = "OverallWidthTolerance", nillable = true) + protected Integer overallWidthTolerance; + @XmlElement(name = "PayloadTolerance", nillable = true) + protected Integer payloadTolerance; + @XmlElement(name = "WheelbasePlusTolerance", nillable = true) + protected Integer wheelbasePlusTolerance; + + /** + * Gets the value of the engineCapacityCcmTolerance property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getEngineCapacityCcmTolerance() { + return engineCapacityCcmTolerance; + } + + /** + * Sets the value of the engineCapacityCcmTolerance property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setEngineCapacityCcmTolerance(Integer value) { + this.engineCapacityCcmTolerance = value; + } + + /** + * Gets the value of the engineCapacityLitersTolerance property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getEngineCapacityLitersTolerance() { + return engineCapacityLitersTolerance; + } + + /** + * Sets the value of the engineCapacityLitersTolerance property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setEngineCapacityLitersTolerance(BigDecimal value) { + this.engineCapacityLitersTolerance = value; + } + + /** + * Gets the value of the enginePowerTolerance property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getEnginePowerTolerance() { + return enginePowerTolerance; + } + + /** + * Sets the value of the enginePowerTolerance property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setEnginePowerTolerance(Integer value) { + this.enginePowerTolerance = value; + } + + /** + * Gets the value of the weightTolerance property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getWeightTolerance() { + return weightTolerance; + } + + /** + * Sets the value of the weightTolerance property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setWeightTolerance(Integer value) { + this.weightTolerance = value; + } + + /** + * Gets the value of the wheelbaseTolerance property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getWheelbaseTolerance() { + return wheelbaseTolerance; + } + + /** + * Sets the value of the wheelbaseTolerance property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setWheelbaseTolerance(Integer value) { + this.wheelbaseTolerance = value; + } + + /** + * Gets the value of the overallLengthTolerance property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getOverallLengthTolerance() { + return overallLengthTolerance; + } + + /** + * Sets the value of the overallLengthTolerance property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setOverallLengthTolerance(Integer value) { + this.overallLengthTolerance = value; + } + + /** + * Gets the value of the overallHeightTolerance property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getOverallHeightTolerance() { + return overallHeightTolerance; + } + + /** + * Sets the value of the overallHeightTolerance property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setOverallHeightTolerance(Integer value) { + this.overallHeightTolerance = value; + } + + /** + * Gets the value of the seatsFrom property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getSeatsFrom() { + return seatsFrom; + } + + /** + * Sets the value of the seatsFrom property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setSeatsFrom(Integer value) { + this.seatsFrom = value; + } + + /** + * Gets the value of the seatsTo property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getSeatsTo() { + return seatsTo; + } + + /** + * Sets the value of the seatsTo property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setSeatsTo(Integer value) { + this.seatsTo = value; + } + + /** + * Gets the value of the firstRegistrationDateTolerance property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getFirstRegistrationDateTolerance() { + return firstRegistrationDateTolerance; + } + + /** + * Sets the value of the firstRegistrationDateTolerance property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setFirstRegistrationDateTolerance(Integer value) { + this.firstRegistrationDateTolerance = value; + } + + /** + * Gets the value of the overallWidthTolerance property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getOverallWidthTolerance() { + return overallWidthTolerance; + } + + /** + * Sets the value of the overallWidthTolerance property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setOverallWidthTolerance(Integer value) { + this.overallWidthTolerance = value; + } + + /** + * Gets the value of the payloadTolerance property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getPayloadTolerance() { + return payloadTolerance; + } + + /** + * Sets the value of the payloadTolerance property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setPayloadTolerance(Integer value) { + this.payloadTolerance = value; + } + + /** + * Gets the value of the wheelbasePlusTolerance property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getWheelbasePlusTolerance() { + return wheelbasePlusTolerance; + } + + /** + * Sets the value of the wheelbasePlusTolerance property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setWheelbasePlusTolerance(Integer value) { + this.wheelbasePlusTolerance = value; + } + + public WSSearchCriteriaTolerance withEngineCapacityCcmTolerance(Integer value) { + setEngineCapacityCcmTolerance(value); + return this; + } + + public WSSearchCriteriaTolerance withEngineCapacityLitersTolerance(BigDecimal value) { + setEngineCapacityLitersTolerance(value); + return this; + } + + public WSSearchCriteriaTolerance withEnginePowerTolerance(Integer value) { + setEnginePowerTolerance(value); + return this; + } + + public WSSearchCriteriaTolerance withWeightTolerance(Integer value) { + setWeightTolerance(value); + return this; + } + + public WSSearchCriteriaTolerance withWheelbaseTolerance(Integer value) { + setWheelbaseTolerance(value); + return this; + } + + public WSSearchCriteriaTolerance withOverallLengthTolerance(Integer value) { + setOverallLengthTolerance(value); + return this; + } + + public WSSearchCriteriaTolerance withOverallHeightTolerance(Integer value) { + setOverallHeightTolerance(value); + return this; + } + + public WSSearchCriteriaTolerance withSeatsFrom(Integer value) { + setSeatsFrom(value); + return this; + } + + public WSSearchCriteriaTolerance withSeatsTo(Integer value) { + setSeatsTo(value); + return this; + } + + public WSSearchCriteriaTolerance withFirstRegistrationDateTolerance(Integer value) { + setFirstRegistrationDateTolerance(value); + return this; + } + + public WSSearchCriteriaTolerance withOverallWidthTolerance(Integer value) { + setOverallWidthTolerance(value); + return this; + } + + public WSSearchCriteriaTolerance withPayloadTolerance(Integer value) { + setPayloadTolerance(value); + return this; + } + + public WSSearchCriteriaTolerance withWheelbasePlusTolerance(Integer value) { + setWheelbasePlusTolerance(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSSearchCriteriaValuesResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSSearchCriteriaValuesResponse.java new file mode 100644 index 0000000..2b4c923 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSSearchCriteriaValuesResponse.java @@ -0,0 +1,1192 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.serialization.arrays.ArrayOfdecimal; +import cz.moneta.test.dsl.cebia.serialization.arrays.ArrayOfint; +import cz.moneta.test.dsl.cebia.serialization.arrays.ArrayOfstring; + + +/** + *

Java class for WSSearchCriteriaValuesResponse complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSSearchCriteriaValuesResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="TxID" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
+ *         <element name="BrandNames" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="ModelNames" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="ModelGenerations" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="ModelYears" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="ModelCodesOM" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="EquipmentLevels" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="EngineCapacitiesCcm" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="EngineCapacitiesLiters" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfdecimal" minOccurs="0"/>
+ *         <element name="EnginePowersKW" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="FuelTypes" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="FuelTypesIDs" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="GearboxTypes" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="GearboxTypesIDs" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="Gears" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="DriveTypes" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="DriveTypesIDs" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="BodyWorkTypes" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="BodyWorkTypesIDs" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="Doors" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="Seats" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="Weights" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="Wheelbases" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="OverallLengths" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="OverallHeights" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="BrandLocalNames" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="ModelLocalNames" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="EquipmentLocalLevels" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="VehicleKinds" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="VehicleKindsIDs" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="OverallWidths" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="Payloads" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="WheelbasesPlus" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfint" minOccurs="0"/>
+ *         <element name="CabinTypes" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="BoxTypes" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSSearchCriteriaValuesResponse", propOrder = { + "txID", + "brandNames", + "modelNames", + "modelGenerations", + "modelYears", + "modelCodesOM", + "equipmentLevels", + "engineCapacitiesCcm", + "engineCapacitiesLiters", + "enginePowersKW", + "fuelTypes", + "fuelTypesIDs", + "gearboxTypes", + "gearboxTypesIDs", + "gears", + "driveTypes", + "driveTypesIDs", + "bodyWorkTypes", + "bodyWorkTypesIDs", + "doors", + "seats", + "weights", + "wheelbases", + "overallLengths", + "overallHeights", + "brandLocalNames", + "modelLocalNames", + "equipmentLocalLevels", + "vehicleKinds", + "vehicleKindsIDs", + "overallWidths", + "payloads", + "wheelbasesPlus", + "cabinTypes", + "boxTypes" +}) +public class WSSearchCriteriaValuesResponse { + + @XmlElement(name = "TxID") + protected Long txID; + @XmlElement(name = "BrandNames", nillable = true) + protected ArrayOfstring brandNames; + @XmlElement(name = "ModelNames", nillable = true) + protected ArrayOfstring modelNames; + @XmlElement(name = "ModelGenerations", nillable = true) + protected ArrayOfint modelGenerations; + @XmlElement(name = "ModelYears", nillable = true) + protected ArrayOfint modelYears; + @XmlElement(name = "ModelCodesOM", nillable = true) + protected ArrayOfstring modelCodesOM; + @XmlElement(name = "EquipmentLevels", nillable = true) + protected ArrayOfstring equipmentLevels; + @XmlElement(name = "EngineCapacitiesCcm", nillable = true) + protected ArrayOfint engineCapacitiesCcm; + @XmlElement(name = "EngineCapacitiesLiters", nillable = true) + protected ArrayOfdecimal engineCapacitiesLiters; + @XmlElement(name = "EnginePowersKW", nillable = true) + protected ArrayOfint enginePowersKW; + @XmlElement(name = "FuelTypes", nillable = true) + protected ArrayOfstring fuelTypes; + @XmlElement(name = "FuelTypesIDs", nillable = true) + protected ArrayOfstring fuelTypesIDs; + @XmlElement(name = "GearboxTypes", nillable = true) + protected ArrayOfstring gearboxTypes; + @XmlElement(name = "GearboxTypesIDs", nillable = true) + protected ArrayOfstring gearboxTypesIDs; + @XmlElement(name = "Gears", nillable = true) + protected ArrayOfint gears; + @XmlElement(name = "DriveTypes", nillable = true) + protected ArrayOfstring driveTypes; + @XmlElement(name = "DriveTypesIDs", nillable = true) + protected ArrayOfstring driveTypesIDs; + @XmlElement(name = "BodyWorkTypes", nillable = true) + protected ArrayOfstring bodyWorkTypes; + @XmlElement(name = "BodyWorkTypesIDs", nillable = true) + protected ArrayOfstring bodyWorkTypesIDs; + @XmlElement(name = "Doors", nillable = true) + protected ArrayOfint doors; + @XmlElement(name = "Seats", nillable = true) + protected ArrayOfint seats; + @XmlElement(name = "Weights", nillable = true) + protected ArrayOfint weights; + @XmlElement(name = "Wheelbases", nillable = true) + protected ArrayOfint wheelbases; + @XmlElement(name = "OverallLengths", nillable = true) + protected ArrayOfint overallLengths; + @XmlElement(name = "OverallHeights", nillable = true) + protected ArrayOfint overallHeights; + @XmlElement(name = "BrandLocalNames", nillable = true) + protected ArrayOfstring brandLocalNames; + @XmlElement(name = "ModelLocalNames", nillable = true) + protected ArrayOfstring modelLocalNames; + @XmlElement(name = "EquipmentLocalLevels", nillable = true) + protected ArrayOfstring equipmentLocalLevels; + @XmlElement(name = "VehicleKinds", nillable = true) + protected ArrayOfstring vehicleKinds; + @XmlElement(name = "VehicleKindsIDs", nillable = true) + protected ArrayOfstring vehicleKindsIDs; + @XmlElement(name = "OverallWidths", nillable = true) + protected ArrayOfint overallWidths; + @XmlElement(name = "Payloads", nillable = true) + protected ArrayOfint payloads; + @XmlElement(name = "WheelbasesPlus", nillable = true) + protected ArrayOfint wheelbasesPlus; + @XmlElement(name = "CabinTypes", nillable = true) + protected ArrayOfstring cabinTypes; + @XmlElement(name = "BoxTypes", nillable = true) + protected ArrayOfstring boxTypes; + + /** + * Gets the value of the txID property. + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getTxID() { + return txID; + } + + /** + * Sets the value of the txID property. + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setTxID(Long value) { + this.txID = value; + } + + /** + * Gets the value of the brandNames property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getBrandNames() { + return brandNames; + } + + /** + * Sets the value of the brandNames property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setBrandNames(ArrayOfstring value) { + this.brandNames = value; + } + + /** + * Gets the value of the modelNames property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getModelNames() { + return modelNames; + } + + /** + * Sets the value of the modelNames property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setModelNames(ArrayOfstring value) { + this.modelNames = value; + } + + /** + * Gets the value of the modelGenerations property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getModelGenerations() { + return modelGenerations; + } + + /** + * Sets the value of the modelGenerations property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setModelGenerations(ArrayOfint value) { + this.modelGenerations = value; + } + + /** + * Gets the value of the modelYears property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getModelYears() { + return modelYears; + } + + /** + * Sets the value of the modelYears property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setModelYears(ArrayOfint value) { + this.modelYears = value; + } + + /** + * Gets the value of the modelCodesOM property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getModelCodesOM() { + return modelCodesOM; + } + + /** + * Sets the value of the modelCodesOM property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setModelCodesOM(ArrayOfstring value) { + this.modelCodesOM = value; + } + + /** + * Gets the value of the equipmentLevels property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getEquipmentLevels() { + return equipmentLevels; + } + + /** + * Sets the value of the equipmentLevels property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setEquipmentLevels(ArrayOfstring value) { + this.equipmentLevels = value; + } + + /** + * Gets the value of the engineCapacitiesCcm property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getEngineCapacitiesCcm() { + return engineCapacitiesCcm; + } + + /** + * Sets the value of the engineCapacitiesCcm property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setEngineCapacitiesCcm(ArrayOfint value) { + this.engineCapacitiesCcm = value; + } + + /** + * Gets the value of the engineCapacitiesLiters property. + * + * @return + * possible object is + * {@link ArrayOfdecimal } + * + */ + public ArrayOfdecimal getEngineCapacitiesLiters() { + return engineCapacitiesLiters; + } + + /** + * Sets the value of the engineCapacitiesLiters property. + * + * @param value + * allowed object is + * {@link ArrayOfdecimal } + * + */ + public void setEngineCapacitiesLiters(ArrayOfdecimal value) { + this.engineCapacitiesLiters = value; + } + + /** + * Gets the value of the enginePowersKW property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getEnginePowersKW() { + return enginePowersKW; + } + + /** + * Sets the value of the enginePowersKW property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setEnginePowersKW(ArrayOfint value) { + this.enginePowersKW = value; + } + + /** + * Gets the value of the fuelTypes property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getFuelTypes() { + return fuelTypes; + } + + /** + * Sets the value of the fuelTypes property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setFuelTypes(ArrayOfstring value) { + this.fuelTypes = value; + } + + /** + * Gets the value of the fuelTypesIDs property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getFuelTypesIDs() { + return fuelTypesIDs; + } + + /** + * Sets the value of the fuelTypesIDs property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setFuelTypesIDs(ArrayOfstring value) { + this.fuelTypesIDs = value; + } + + /** + * Gets the value of the gearboxTypes property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getGearboxTypes() { + return gearboxTypes; + } + + /** + * Sets the value of the gearboxTypes property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setGearboxTypes(ArrayOfstring value) { + this.gearboxTypes = value; + } + + /** + * Gets the value of the gearboxTypesIDs property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getGearboxTypesIDs() { + return gearboxTypesIDs; + } + + /** + * Sets the value of the gearboxTypesIDs property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setGearboxTypesIDs(ArrayOfstring value) { + this.gearboxTypesIDs = value; + } + + /** + * Gets the value of the gears property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getGears() { + return gears; + } + + /** + * Sets the value of the gears property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setGears(ArrayOfint value) { + this.gears = value; + } + + /** + * Gets the value of the driveTypes property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getDriveTypes() { + return driveTypes; + } + + /** + * Sets the value of the driveTypes property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setDriveTypes(ArrayOfstring value) { + this.driveTypes = value; + } + + /** + * Gets the value of the driveTypesIDs property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getDriveTypesIDs() { + return driveTypesIDs; + } + + /** + * Sets the value of the driveTypesIDs property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setDriveTypesIDs(ArrayOfstring value) { + this.driveTypesIDs = value; + } + + /** + * Gets the value of the bodyWorkTypes property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getBodyWorkTypes() { + return bodyWorkTypes; + } + + /** + * Sets the value of the bodyWorkTypes property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setBodyWorkTypes(ArrayOfstring value) { + this.bodyWorkTypes = value; + } + + /** + * Gets the value of the bodyWorkTypesIDs property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getBodyWorkTypesIDs() { + return bodyWorkTypesIDs; + } + + /** + * Sets the value of the bodyWorkTypesIDs property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setBodyWorkTypesIDs(ArrayOfstring value) { + this.bodyWorkTypesIDs = value; + } + + /** + * Gets the value of the doors property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getDoors() { + return doors; + } + + /** + * Sets the value of the doors property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setDoors(ArrayOfint value) { + this.doors = value; + } + + /** + * Gets the value of the seats property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getSeats() { + return seats; + } + + /** + * Sets the value of the seats property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setSeats(ArrayOfint value) { + this.seats = value; + } + + /** + * Gets the value of the weights property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getWeights() { + return weights; + } + + /** + * Sets the value of the weights property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setWeights(ArrayOfint value) { + this.weights = value; + } + + /** + * Gets the value of the wheelbases property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getWheelbases() { + return wheelbases; + } + + /** + * Sets the value of the wheelbases property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setWheelbases(ArrayOfint value) { + this.wheelbases = value; + } + + /** + * Gets the value of the overallLengths property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getOverallLengths() { + return overallLengths; + } + + /** + * Sets the value of the overallLengths property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setOverallLengths(ArrayOfint value) { + this.overallLengths = value; + } + + /** + * Gets the value of the overallHeights property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getOverallHeights() { + return overallHeights; + } + + /** + * Sets the value of the overallHeights property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setOverallHeights(ArrayOfint value) { + this.overallHeights = value; + } + + /** + * Gets the value of the brandLocalNames property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getBrandLocalNames() { + return brandLocalNames; + } + + /** + * Sets the value of the brandLocalNames property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setBrandLocalNames(ArrayOfstring value) { + this.brandLocalNames = value; + } + + /** + * Gets the value of the modelLocalNames property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getModelLocalNames() { + return modelLocalNames; + } + + /** + * Sets the value of the modelLocalNames property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setModelLocalNames(ArrayOfstring value) { + this.modelLocalNames = value; + } + + /** + * Gets the value of the equipmentLocalLevels property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getEquipmentLocalLevels() { + return equipmentLocalLevels; + } + + /** + * Sets the value of the equipmentLocalLevels property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setEquipmentLocalLevels(ArrayOfstring value) { + this.equipmentLocalLevels = value; + } + + /** + * Gets the value of the vehicleKinds property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getVehicleKinds() { + return vehicleKinds; + } + + /** + * Sets the value of the vehicleKinds property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setVehicleKinds(ArrayOfstring value) { + this.vehicleKinds = value; + } + + /** + * Gets the value of the vehicleKindsIDs property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getVehicleKindsIDs() { + return vehicleKindsIDs; + } + + /** + * Sets the value of the vehicleKindsIDs property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setVehicleKindsIDs(ArrayOfstring value) { + this.vehicleKindsIDs = value; + } + + /** + * Gets the value of the overallWidths property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getOverallWidths() { + return overallWidths; + } + + /** + * Sets the value of the overallWidths property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setOverallWidths(ArrayOfint value) { + this.overallWidths = value; + } + + /** + * Gets the value of the payloads property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getPayloads() { + return payloads; + } + + /** + * Sets the value of the payloads property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setPayloads(ArrayOfint value) { + this.payloads = value; + } + + /** + * Gets the value of the wheelbasesPlus property. + * + * @return + * possible object is + * {@link ArrayOfint } + * + */ + public ArrayOfint getWheelbasesPlus() { + return wheelbasesPlus; + } + + /** + * Sets the value of the wheelbasesPlus property. + * + * @param value + * allowed object is + * {@link ArrayOfint } + * + */ + public void setWheelbasesPlus(ArrayOfint value) { + this.wheelbasesPlus = value; + } + + /** + * Gets the value of the cabinTypes property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getCabinTypes() { + return cabinTypes; + } + + /** + * Sets the value of the cabinTypes property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setCabinTypes(ArrayOfstring value) { + this.cabinTypes = value; + } + + /** + * Gets the value of the boxTypes property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getBoxTypes() { + return boxTypes; + } + + /** + * Sets the value of the boxTypes property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setBoxTypes(ArrayOfstring value) { + this.boxTypes = value; + } + + public WSSearchCriteriaValuesResponse withTxID(Long value) { + setTxID(value); + return this; + } + + public WSSearchCriteriaValuesResponse withBrandNames(ArrayOfstring value) { + setBrandNames(value); + return this; + } + + public WSSearchCriteriaValuesResponse withModelNames(ArrayOfstring value) { + setModelNames(value); + return this; + } + + public WSSearchCriteriaValuesResponse withModelGenerations(ArrayOfint value) { + setModelGenerations(value); + return this; + } + + public WSSearchCriteriaValuesResponse withModelYears(ArrayOfint value) { + setModelYears(value); + return this; + } + + public WSSearchCriteriaValuesResponse withModelCodesOM(ArrayOfstring value) { + setModelCodesOM(value); + return this; + } + + public WSSearchCriteriaValuesResponse withEquipmentLevels(ArrayOfstring value) { + setEquipmentLevels(value); + return this; + } + + public WSSearchCriteriaValuesResponse withEngineCapacitiesCcm(ArrayOfint value) { + setEngineCapacitiesCcm(value); + return this; + } + + public WSSearchCriteriaValuesResponse withEngineCapacitiesLiters(ArrayOfdecimal value) { + setEngineCapacitiesLiters(value); + return this; + } + + public WSSearchCriteriaValuesResponse withEnginePowersKW(ArrayOfint value) { + setEnginePowersKW(value); + return this; + } + + public WSSearchCriteriaValuesResponse withFuelTypes(ArrayOfstring value) { + setFuelTypes(value); + return this; + } + + public WSSearchCriteriaValuesResponse withFuelTypesIDs(ArrayOfstring value) { + setFuelTypesIDs(value); + return this; + } + + public WSSearchCriteriaValuesResponse withGearboxTypes(ArrayOfstring value) { + setGearboxTypes(value); + return this; + } + + public WSSearchCriteriaValuesResponse withGearboxTypesIDs(ArrayOfstring value) { + setGearboxTypesIDs(value); + return this; + } + + public WSSearchCriteriaValuesResponse withGears(ArrayOfint value) { + setGears(value); + return this; + } + + public WSSearchCriteriaValuesResponse withDriveTypes(ArrayOfstring value) { + setDriveTypes(value); + return this; + } + + public WSSearchCriteriaValuesResponse withDriveTypesIDs(ArrayOfstring value) { + setDriveTypesIDs(value); + return this; + } + + public WSSearchCriteriaValuesResponse withBodyWorkTypes(ArrayOfstring value) { + setBodyWorkTypes(value); + return this; + } + + public WSSearchCriteriaValuesResponse withBodyWorkTypesIDs(ArrayOfstring value) { + setBodyWorkTypesIDs(value); + return this; + } + + public WSSearchCriteriaValuesResponse withDoors(ArrayOfint value) { + setDoors(value); + return this; + } + + public WSSearchCriteriaValuesResponse withSeats(ArrayOfint value) { + setSeats(value); + return this; + } + + public WSSearchCriteriaValuesResponse withWeights(ArrayOfint value) { + setWeights(value); + return this; + } + + public WSSearchCriteriaValuesResponse withWheelbases(ArrayOfint value) { + setWheelbases(value); + return this; + } + + public WSSearchCriteriaValuesResponse withOverallLengths(ArrayOfint value) { + setOverallLengths(value); + return this; + } + + public WSSearchCriteriaValuesResponse withOverallHeights(ArrayOfint value) { + setOverallHeights(value); + return this; + } + + public WSSearchCriteriaValuesResponse withBrandLocalNames(ArrayOfstring value) { + setBrandLocalNames(value); + return this; + } + + public WSSearchCriteriaValuesResponse withModelLocalNames(ArrayOfstring value) { + setModelLocalNames(value); + return this; + } + + public WSSearchCriteriaValuesResponse withEquipmentLocalLevels(ArrayOfstring value) { + setEquipmentLocalLevels(value); + return this; + } + + public WSSearchCriteriaValuesResponse withVehicleKinds(ArrayOfstring value) { + setVehicleKinds(value); + return this; + } + + public WSSearchCriteriaValuesResponse withVehicleKindsIDs(ArrayOfstring value) { + setVehicleKindsIDs(value); + return this; + } + + public WSSearchCriteriaValuesResponse withOverallWidths(ArrayOfint value) { + setOverallWidths(value); + return this; + } + + public WSSearchCriteriaValuesResponse withPayloads(ArrayOfint value) { + setPayloads(value); + return this; + } + + public WSSearchCriteriaValuesResponse withWheelbasesPlus(ArrayOfint value) { + setWheelbasesPlus(value); + return this; + } + + public WSSearchCriteriaValuesResponse withCabinTypes(ArrayOfstring value) { + setCabinTypes(value); + return this; + } + + public WSSearchCriteriaValuesResponse withBoxTypes(ArrayOfstring value) { + setBoxTypes(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuation.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuation.java new file mode 100644 index 0000000..55d89de --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuation.java @@ -0,0 +1,233 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import javax.xml.datatype.XMLGregorianCalendar; + + +/** + *

Java class for WSValuation complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSValuation">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="ValuationDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ *         <element name="NewPrices" type="{http://samo.cz/iva/}WSVehiclePrices" minOccurs="0"/>
+ *         <element name="MarketPrices" type="{http://samo.cz/iva/}WSVehiclePrices" minOccurs="0"/>
+ *         <element name="FinalPrice" type="{http://samo.cz/iva/}WSPrice" minOccurs="0"/>
+ *         <element name="Status" type="{http://samo.cz/iva/}WSResultStatus" minOccurs="0"/>
+ *         <element name="PdfDocument" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSValuation", propOrder = { + "valuationDate", + "newPrices", + "marketPrices", + "finalPrice", + "status", + "pdfDocument" +}) +public class WSValuation { + + @XmlElement(name = "ValuationDate") + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar valuationDate; + @XmlElement(name = "NewPrices", nillable = true) + protected WSVehiclePrices newPrices; + @XmlElement(name = "MarketPrices", nillable = true) + protected WSVehiclePrices marketPrices; + @XmlElement(name = "FinalPrice", nillable = true) + protected WSPrice finalPrice; + @XmlElement(name = "Status", nillable = true) + protected WSResultStatus status; + @XmlElement(name = "PdfDocument", nillable = true) + protected byte[] pdfDocument; + + /** + * Gets the value of the valuationDate property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValuationDate() { + return valuationDate; + } + + /** + * Sets the value of the valuationDate property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValuationDate(XMLGregorianCalendar value) { + this.valuationDate = value; + } + + /** + * Gets the value of the newPrices property. + * + * @return + * possible object is + * {@link WSVehiclePrices } + * + */ + public WSVehiclePrices getNewPrices() { + return newPrices; + } + + /** + * Sets the value of the newPrices property. + * + * @param value + * allowed object is + * {@link WSVehiclePrices } + * + */ + public void setNewPrices(WSVehiclePrices value) { + this.newPrices = value; + } + + /** + * Gets the value of the marketPrices property. + * + * @return + * possible object is + * {@link WSVehiclePrices } + * + */ + public WSVehiclePrices getMarketPrices() { + return marketPrices; + } + + /** + * Sets the value of the marketPrices property. + * + * @param value + * allowed object is + * {@link WSVehiclePrices } + * + */ + public void setMarketPrices(WSVehiclePrices value) { + this.marketPrices = value; + } + + /** + * Gets the value of the finalPrice property. + * + * @return + * possible object is + * {@link WSPrice } + * + */ + public WSPrice getFinalPrice() { + return finalPrice; + } + + /** + * Sets the value of the finalPrice property. + * + * @param value + * allowed object is + * {@link WSPrice } + * + */ + public void setFinalPrice(WSPrice value) { + this.finalPrice = value; + } + + /** + * Gets the value of the status property. + * + * @return + * possible object is + * {@link WSResultStatus } + * + */ + public WSResultStatus getStatus() { + return status; + } + + /** + * Sets the value of the status property. + * + * @param value + * allowed object is + * {@link WSResultStatus } + * + */ + public void setStatus(WSResultStatus value) { + this.status = value; + } + + /** + * Gets the value of the pdfDocument property. + * + * @return + * possible object is + * byte[] + */ + public byte[] getPdfDocument() { + return pdfDocument; + } + + /** + * Sets the value of the pdfDocument property. + * + * @param value + * allowed object is + * byte[] + */ + public void setPdfDocument(byte[] value) { + this.pdfDocument = value; + } + + public WSValuation withValuationDate(XMLGregorianCalendar value) { + setValuationDate(value); + return this; + } + + public WSValuation withNewPrices(WSVehiclePrices value) { + setNewPrices(value); + return this; + } + + public WSValuation withMarketPrices(WSVehiclePrices value) { + setMarketPrices(value); + return this; + } + + public WSValuation withFinalPrice(WSPrice value) { + setFinalPrice(value); + return this; + } + + public WSValuation withStatus(WSResultStatus value) { + setStatus(value); + return this; + } + + public WSValuation withPdfDocument(byte[] value) { + setPdfDocument(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuation2Request.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuation2Request.java new file mode 100644 index 0000000..d2322a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuation2Request.java @@ -0,0 +1,304 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import java.math.BigDecimal; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import javax.xml.datatype.XMLGregorianCalendar; +import cz.moneta.test.dsl.cebia.serialization.arrays.ArrayOfstring; + + +/** + *

Java class for WSValuation2Request complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSValuation2Request">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VehicleId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="VIN" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="RegPlate" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="RegistrationDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ *         <element name="ValuationDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ *         <element name="OptionalEquipment" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="ExtraEquipmentPrice" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="Mileage" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSValuation2Request", propOrder = { + "vehicleId", + "vin", + "regPlate", + "registrationDate", + "valuationDate", + "optionalEquipment", + "extraEquipmentPrice", + "mileage" +}) +public class WSValuation2Request { + + @XmlElement(name = "VehicleId", nillable = true) + protected String vehicleId; + @XmlElement(name = "VIN", nillable = true) + protected String vin; + @XmlElement(name = "RegPlate", nillable = true) + protected String regPlate; + @XmlElement(name = "RegistrationDate", nillable = true) + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar registrationDate; + @XmlElement(name = "ValuationDate", nillable = true) + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar valuationDate; + @XmlElement(name = "OptionalEquipment", nillable = true) + protected ArrayOfstring optionalEquipment; + @XmlElement(name = "ExtraEquipmentPrice", nillable = true) + protected BigDecimal extraEquipmentPrice; + @XmlElement(name = "Mileage", nillable = true) + protected Integer mileage; + + /** + * Gets the value of the vehicleId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVehicleId() { + return vehicleId; + } + + /** + * Sets the value of the vehicleId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVehicleId(String value) { + this.vehicleId = value; + } + + /** + * Gets the value of the vin property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIN() { + return vin; + } + + /** + * Sets the value of the vin property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIN(String value) { + this.vin = value; + } + + /** + * Gets the value of the regPlate property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRegPlate() { + return regPlate; + } + + /** + * Sets the value of the regPlate property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRegPlate(String value) { + this.regPlate = value; + } + + /** + * Gets the value of the registrationDate property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getRegistrationDate() { + return registrationDate; + } + + /** + * Sets the value of the registrationDate property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setRegistrationDate(XMLGregorianCalendar value) { + this.registrationDate = value; + } + + /** + * Gets the value of the valuationDate property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValuationDate() { + return valuationDate; + } + + /** + * Sets the value of the valuationDate property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValuationDate(XMLGregorianCalendar value) { + this.valuationDate = value; + } + + /** + * Gets the value of the optionalEquipment property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getOptionalEquipment() { + return optionalEquipment; + } + + /** + * Sets the value of the optionalEquipment property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setOptionalEquipment(ArrayOfstring value) { + this.optionalEquipment = value; + } + + /** + * Gets the value of the extraEquipmentPrice property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getExtraEquipmentPrice() { + return extraEquipmentPrice; + } + + /** + * Sets the value of the extraEquipmentPrice property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setExtraEquipmentPrice(BigDecimal value) { + this.extraEquipmentPrice = value; + } + + /** + * Gets the value of the mileage property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getMileage() { + return mileage; + } + + /** + * Sets the value of the mileage property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setMileage(Integer value) { + this.mileage = value; + } + + public WSValuation2Request withVehicleId(String value) { + setVehicleId(value); + return this; + } + + public WSValuation2Request withVIN(String value) { + setVIN(value); + return this; + } + + public WSValuation2Request withRegPlate(String value) { + setRegPlate(value); + return this; + } + + public WSValuation2Request withRegistrationDate(XMLGregorianCalendar value) { + setRegistrationDate(value); + return this; + } + + public WSValuation2Request withValuationDate(XMLGregorianCalendar value) { + setValuationDate(value); + return this; + } + + public WSValuation2Request withOptionalEquipment(ArrayOfstring value) { + setOptionalEquipment(value); + return this; + } + + public WSValuation2Request withExtraEquipmentPrice(BigDecimal value) { + setExtraEquipmentPrice(value); + return this; + } + + public WSValuation2Request withMileage(Integer value) { + setMileage(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuation2Response.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuation2Response.java new file mode 100644 index 0000000..ce389e4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuation2Response.java @@ -0,0 +1,230 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSValuation2Response complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSValuation2Response">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="TxID" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
+ *         <element name="Valuation" type="{http://samo.cz/iva/}WSValuationType" minOccurs="0"/>
+ *         <element name="PdfDocument" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
+ *         <element name="ReturnCode" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="ReturnMessage" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ProcessInfo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSValuation2Response", propOrder = { + "txID", + "valuation", + "pdfDocument", + "returnCode", + "returnMessage", + "processInfo" +}) +public class WSValuation2Response { + + @XmlElement(name = "TxID") + protected Long txID; + @XmlElement(name = "Valuation", nillable = true) + protected WSValuationType valuation; + @XmlElement(name = "PdfDocument", nillable = true) + protected byte[] pdfDocument; + @XmlElement(name = "ReturnCode") + protected Integer returnCode; + @XmlElement(name = "ReturnMessage", nillable = true) + protected String returnMessage; + @XmlElement(name = "ProcessInfo", nillable = true) + protected String processInfo; + + /** + * Gets the value of the txID property. + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getTxID() { + return txID; + } + + /** + * Sets the value of the txID property. + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setTxID(Long value) { + this.txID = value; + } + + /** + * Gets the value of the valuation property. + * + * @return + * possible object is + * {@link WSValuationType } + * + */ + public WSValuationType getValuation() { + return valuation; + } + + /** + * Sets the value of the valuation property. + * + * @param value + * allowed object is + * {@link WSValuationType } + * + */ + public void setValuation(WSValuationType value) { + this.valuation = value; + } + + /** + * Gets the value of the pdfDocument property. + * + * @return + * possible object is + * byte[] + */ + public byte[] getPdfDocument() { + return pdfDocument; + } + + /** + * Sets the value of the pdfDocument property. + * + * @param value + * allowed object is + * byte[] + */ + public void setPdfDocument(byte[] value) { + this.pdfDocument = value; + } + + /** + * Gets the value of the returnCode property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getReturnCode() { + return returnCode; + } + + /** + * Sets the value of the returnCode property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setReturnCode(Integer value) { + this.returnCode = value; + } + + /** + * Gets the value of the returnMessage property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getReturnMessage() { + return returnMessage; + } + + /** + * Sets the value of the returnMessage property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setReturnMessage(String value) { + this.returnMessage = value; + } + + /** + * Gets the value of the processInfo property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getProcessInfo() { + return processInfo; + } + + /** + * Sets the value of the processInfo property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setProcessInfo(String value) { + this.processInfo = value; + } + + public WSValuation2Response withTxID(Long value) { + setTxID(value); + return this; + } + + public WSValuation2Response withValuation(WSValuationType value) { + setValuation(value); + return this; + } + + public WSValuation2Response withPdfDocument(byte[] value) { + setPdfDocument(value); + return this; + } + + public WSValuation2Response withReturnCode(Integer value) { + setReturnCode(value); + return this; + } + + public WSValuation2Response withReturnMessage(String value) { + setReturnMessage(value); + return this; + } + + public WSValuation2Response withProcessInfo(String value) { + setProcessInfo(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuationRequest.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuationRequest.java new file mode 100644 index 0000000..72876b4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuationRequest.java @@ -0,0 +1,238 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import java.math.BigDecimal; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import javax.xml.datatype.XMLGregorianCalendar; +import cz.moneta.test.dsl.cebia.serialization.arrays.ArrayOfstring; + + +/** + *

Java class for WSValuationRequest complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSValuationRequest">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VehicleId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="RegistrationDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ *         <element name="ValuationDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ *         <element name="OptionalEquipment" type="{http://schemas.microsoft.com/2003/10/Serialization/Arrays}ArrayOfstring" minOccurs="0"/>
+ *         <element name="ExtraEquipmentPrice" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="Mileage" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSValuationRequest", propOrder = { + "vehicleId", + "registrationDate", + "valuationDate", + "optionalEquipment", + "extraEquipmentPrice", + "mileage" +}) +public class WSValuationRequest { + + @XmlElement(name = "VehicleId", nillable = true) + protected String vehicleId; + @XmlElement(name = "RegistrationDate", nillable = true) + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar registrationDate; + @XmlElement(name = "ValuationDate", nillable = true) + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar valuationDate; + @XmlElement(name = "OptionalEquipment", nillable = true) + protected ArrayOfstring optionalEquipment; + @XmlElement(name = "ExtraEquipmentPrice", nillable = true) + protected BigDecimal extraEquipmentPrice; + @XmlElement(name = "Mileage", nillable = true) + protected Integer mileage; + + /** + * Gets the value of the vehicleId property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVehicleId() { + return vehicleId; + } + + /** + * Sets the value of the vehicleId property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVehicleId(String value) { + this.vehicleId = value; + } + + /** + * Gets the value of the registrationDate property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getRegistrationDate() { + return registrationDate; + } + + /** + * Sets the value of the registrationDate property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setRegistrationDate(XMLGregorianCalendar value) { + this.registrationDate = value; + } + + /** + * Gets the value of the valuationDate property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValuationDate() { + return valuationDate; + } + + /** + * Sets the value of the valuationDate property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValuationDate(XMLGregorianCalendar value) { + this.valuationDate = value; + } + + /** + * Gets the value of the optionalEquipment property. + * + * @return + * possible object is + * {@link ArrayOfstring } + * + */ + public ArrayOfstring getOptionalEquipment() { + return optionalEquipment; + } + + /** + * Sets the value of the optionalEquipment property. + * + * @param value + * allowed object is + * {@link ArrayOfstring } + * + */ + public void setOptionalEquipment(ArrayOfstring value) { + this.optionalEquipment = value; + } + + /** + * Gets the value of the extraEquipmentPrice property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getExtraEquipmentPrice() { + return extraEquipmentPrice; + } + + /** + * Sets the value of the extraEquipmentPrice property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setExtraEquipmentPrice(BigDecimal value) { + this.extraEquipmentPrice = value; + } + + /** + * Gets the value of the mileage property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getMileage() { + return mileage; + } + + /** + * Sets the value of the mileage property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setMileage(Integer value) { + this.mileage = value; + } + + public WSValuationRequest withVehicleId(String value) { + setVehicleId(value); + return this; + } + + public WSValuationRequest withRegistrationDate(XMLGregorianCalendar value) { + setRegistrationDate(value); + return this; + } + + public WSValuationRequest withValuationDate(XMLGregorianCalendar value) { + setValuationDate(value); + return this; + } + + public WSValuationRequest withOptionalEquipment(ArrayOfstring value) { + setOptionalEquipment(value); + return this; + } + + public WSValuationRequest withExtraEquipmentPrice(BigDecimal value) { + setExtraEquipmentPrice(value); + return this; + } + + public WSValuationRequest withMileage(Integer value) { + setMileage(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuationResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuationResponse.java new file mode 100644 index 0000000..a462781 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuationResponse.java @@ -0,0 +1,199 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSValuationResponse complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSValuationResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="TxID" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
+ *         <element name="Valuation" type="{http://samo.cz/iva/}WSValuationType" minOccurs="0"/>
+ *         <element name="ReturnCode" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="ReturnMessage" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ProcessInfo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSValuationResponse", propOrder = { + "txID", + "valuation", + "returnCode", + "returnMessage", + "processInfo" +}) +public class WSValuationResponse { + + @XmlElement(name = "TxID") + protected Long txID; + @XmlElement(name = "Valuation", nillable = true) + protected WSValuationType valuation; + @XmlElement(name = "ReturnCode") + protected Integer returnCode; + @XmlElement(name = "ReturnMessage", nillable = true) + protected String returnMessage; + @XmlElement(name = "ProcessInfo", nillable = true) + protected String processInfo; + + /** + * Gets the value of the txID property. + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getTxID() { + return txID; + } + + /** + * Sets the value of the txID property. + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setTxID(Long value) { + this.txID = value; + } + + /** + * Gets the value of the valuation property. + * + * @return + * possible object is + * {@link WSValuationType } + * + */ + public WSValuationType getValuation() { + return valuation; + } + + /** + * Sets the value of the valuation property. + * + * @param value + * allowed object is + * {@link WSValuationType } + * + */ + public void setValuation(WSValuationType value) { + this.valuation = value; + } + + /** + * Gets the value of the returnCode property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getReturnCode() { + return returnCode; + } + + /** + * Sets the value of the returnCode property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setReturnCode(Integer value) { + this.returnCode = value; + } + + /** + * Gets the value of the returnMessage property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getReturnMessage() { + return returnMessage; + } + + /** + * Sets the value of the returnMessage property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setReturnMessage(String value) { + this.returnMessage = value; + } + + /** + * Gets the value of the processInfo property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getProcessInfo() { + return processInfo; + } + + /** + * Sets the value of the processInfo property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setProcessInfo(String value) { + this.processInfo = value; + } + + public WSValuationResponse withTxID(Long value) { + setTxID(value); + return this; + } + + public WSValuationResponse withValuation(WSValuationType value) { + setValuation(value); + return this; + } + + public WSValuationResponse withReturnCode(Integer value) { + setReturnCode(value); + return this; + } + + public WSValuationResponse withReturnMessage(String value) { + setReturnMessage(value); + return this; + } + + public WSValuationResponse withProcessInfo(String value) { + setProcessInfo(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuationType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuationType.java new file mode 100644 index 0000000..d457a4f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSValuationType.java @@ -0,0 +1,332 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import java.math.BigDecimal; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSValuationType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSValuationType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="BaseVehicleNewPrice" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="OptionalEquipmentNewPrice" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="ExtraEquipmentNewPrice" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="VehicleNewPrice" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="BaseVehicleMarketPrice" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="OptionalEquipmentMarketPrice" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="ExtraEquipmentMarketPrice" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="VehicleMarketPrice" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ *         <element name="PriceCurrency" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSValuationType", propOrder = { + "baseVehicleNewPrice", + "optionalEquipmentNewPrice", + "extraEquipmentNewPrice", + "vehicleNewPrice", + "baseVehicleMarketPrice", + "optionalEquipmentMarketPrice", + "extraEquipmentMarketPrice", + "vehicleMarketPrice", + "priceCurrency" +}) +public class WSValuationType { + + @XmlElement(name = "BaseVehicleNewPrice", nillable = true) + protected BigDecimal baseVehicleNewPrice; + @XmlElement(name = "OptionalEquipmentNewPrice", nillable = true) + protected BigDecimal optionalEquipmentNewPrice; + @XmlElement(name = "ExtraEquipmentNewPrice", nillable = true) + protected BigDecimal extraEquipmentNewPrice; + @XmlElement(name = "VehicleNewPrice", nillable = true) + protected BigDecimal vehicleNewPrice; + @XmlElement(name = "BaseVehicleMarketPrice", nillable = true) + protected BigDecimal baseVehicleMarketPrice; + @XmlElement(name = "OptionalEquipmentMarketPrice", nillable = true) + protected BigDecimal optionalEquipmentMarketPrice; + @XmlElement(name = "ExtraEquipmentMarketPrice", nillable = true) + protected BigDecimal extraEquipmentMarketPrice; + @XmlElement(name = "VehicleMarketPrice", nillable = true) + protected BigDecimal vehicleMarketPrice; + @XmlElement(name = "PriceCurrency", nillable = true) + protected String priceCurrency; + + /** + * Gets the value of the baseVehicleNewPrice property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getBaseVehicleNewPrice() { + return baseVehicleNewPrice; + } + + /** + * Sets the value of the baseVehicleNewPrice property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setBaseVehicleNewPrice(BigDecimal value) { + this.baseVehicleNewPrice = value; + } + + /** + * Gets the value of the optionalEquipmentNewPrice property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getOptionalEquipmentNewPrice() { + return optionalEquipmentNewPrice; + } + + /** + * Sets the value of the optionalEquipmentNewPrice property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setOptionalEquipmentNewPrice(BigDecimal value) { + this.optionalEquipmentNewPrice = value; + } + + /** + * Gets the value of the extraEquipmentNewPrice property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getExtraEquipmentNewPrice() { + return extraEquipmentNewPrice; + } + + /** + * Sets the value of the extraEquipmentNewPrice property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setExtraEquipmentNewPrice(BigDecimal value) { + this.extraEquipmentNewPrice = value; + } + + /** + * Gets the value of the vehicleNewPrice property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getVehicleNewPrice() { + return vehicleNewPrice; + } + + /** + * Sets the value of the vehicleNewPrice property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setVehicleNewPrice(BigDecimal value) { + this.vehicleNewPrice = value; + } + + /** + * Gets the value of the baseVehicleMarketPrice property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getBaseVehicleMarketPrice() { + return baseVehicleMarketPrice; + } + + /** + * Sets the value of the baseVehicleMarketPrice property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setBaseVehicleMarketPrice(BigDecimal value) { + this.baseVehicleMarketPrice = value; + } + + /** + * Gets the value of the optionalEquipmentMarketPrice property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getOptionalEquipmentMarketPrice() { + return optionalEquipmentMarketPrice; + } + + /** + * Sets the value of the optionalEquipmentMarketPrice property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setOptionalEquipmentMarketPrice(BigDecimal value) { + this.optionalEquipmentMarketPrice = value; + } + + /** + * Gets the value of the extraEquipmentMarketPrice property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getExtraEquipmentMarketPrice() { + return extraEquipmentMarketPrice; + } + + /** + * Sets the value of the extraEquipmentMarketPrice property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setExtraEquipmentMarketPrice(BigDecimal value) { + this.extraEquipmentMarketPrice = value; + } + + /** + * Gets the value of the vehicleMarketPrice property. + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getVehicleMarketPrice() { + return vehicleMarketPrice; + } + + /** + * Sets the value of the vehicleMarketPrice property. + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setVehicleMarketPrice(BigDecimal value) { + this.vehicleMarketPrice = value; + } + + /** + * Gets the value of the priceCurrency property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPriceCurrency() { + return priceCurrency; + } + + /** + * Sets the value of the priceCurrency property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPriceCurrency(String value) { + this.priceCurrency = value; + } + + public WSValuationType withBaseVehicleNewPrice(BigDecimal value) { + setBaseVehicleNewPrice(value); + return this; + } + + public WSValuationType withOptionalEquipmentNewPrice(BigDecimal value) { + setOptionalEquipmentNewPrice(value); + return this; + } + + public WSValuationType withExtraEquipmentNewPrice(BigDecimal value) { + setExtraEquipmentNewPrice(value); + return this; + } + + public WSValuationType withVehicleNewPrice(BigDecimal value) { + setVehicleNewPrice(value); + return this; + } + + public WSValuationType withBaseVehicleMarketPrice(BigDecimal value) { + setBaseVehicleMarketPrice(value); + return this; + } + + public WSValuationType withOptionalEquipmentMarketPrice(BigDecimal value) { + setOptionalEquipmentMarketPrice(value); + return this; + } + + public WSValuationType withExtraEquipmentMarketPrice(BigDecimal value) { + setExtraEquipmentMarketPrice(value); + return this; + } + + public WSValuationType withVehicleMarketPrice(BigDecimal value) { + setVehicleMarketPrice(value); + return this; + } + + public WSValuationType withPriceCurrency(String value) { + setPriceCurrency(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleIdentificationType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleIdentificationType.java new file mode 100644 index 0000000..e92b2cd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleIdentificationType.java @@ -0,0 +1,565 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import javax.xml.datatype.XMLGregorianCalendar; + + +/** + *

Java class for WSVehicleIdentificationType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSVehicleIdentificationType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Brand" type="{http://samo.cz/iva/}WSBrandType" minOccurs="0"/>
+ *         <element name="Model" type="{http://samo.cz/iva/}WSVehicleModelType" minOccurs="0"/>
+ *         <element name="Version" type="{http://samo.cz/iva/}WSVehicleVersionType" minOccurs="0"/>
+ *         <element name="EquipmentLevel" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="VehicleKind" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="VehicleKindID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="CountryCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="CountryName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ForeignMarket" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ *         <element name="IndividualImport" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ *         <element name="ProductionYear" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="ProductionDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ *         <element name="ProductionDateMonthValid" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ *         <element name="ProductionDateDayValid" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ *         <element name="LocalEquipmentLevel" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ImageID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSVehicleIdentificationType", propOrder = { + "brand", + "model", + "version", + "equipmentLevel", + "vehicleKind", + "vehicleKindID", + "countryCode", + "countryName", + "foreignMarket", + "individualImport", + "productionYear", + "productionDate", + "productionDateMonthValid", + "productionDateDayValid", + "localEquipmentLevel", + "imageID" +}) +public class WSVehicleIdentificationType { + + @XmlElement(name = "Brand", nillable = true) + protected WSBrandType brand; + @XmlElement(name = "Model", nillable = true) + protected WSVehicleModelType model; + @XmlElement(name = "Version", nillable = true) + protected WSVehicleVersionType version; + @XmlElement(name = "EquipmentLevel", nillable = true) + protected String equipmentLevel; + @XmlElement(name = "VehicleKind", nillable = true) + protected String vehicleKind; + @XmlElement(name = "VehicleKindID", nillable = true) + protected String vehicleKindID; + @XmlElement(name = "CountryCode", nillable = true) + protected String countryCode; + @XmlElement(name = "CountryName", nillable = true) + protected String countryName; + @XmlElement(name = "ForeignMarket") + protected Boolean foreignMarket; + @XmlElement(name = "IndividualImport") + protected Boolean individualImport; + @XmlElement(name = "ProductionYear", nillable = true) + protected Integer productionYear; + @XmlElement(name = "ProductionDate", nillable = true) + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar productionDate; + @XmlElement(name = "ProductionDateMonthValid", nillable = true) + protected Boolean productionDateMonthValid; + @XmlElement(name = "ProductionDateDayValid", nillable = true) + protected Boolean productionDateDayValid; + @XmlElement(name = "LocalEquipmentLevel", nillable = true) + protected String localEquipmentLevel; + @XmlElement(name = "ImageID", nillable = true) + protected String imageID; + + /** + * Gets the value of the brand property. + * + * @return + * possible object is + * {@link WSBrandType } + * + */ + public WSBrandType getBrand() { + return brand; + } + + /** + * Sets the value of the brand property. + * + * @param value + * allowed object is + * {@link WSBrandType } + * + */ + public void setBrand(WSBrandType value) { + this.brand = value; + } + + /** + * Gets the value of the model property. + * + * @return + * possible object is + * {@link WSVehicleModelType } + * + */ + public WSVehicleModelType getModel() { + return model; + } + + /** + * Sets the value of the model property. + * + * @param value + * allowed object is + * {@link WSVehicleModelType } + * + */ + public void setModel(WSVehicleModelType value) { + this.model = value; + } + + /** + * Gets the value of the version property. + * + * @return + * possible object is + * {@link WSVehicleVersionType } + * + */ + public WSVehicleVersionType getVersion() { + return version; + } + + /** + * Sets the value of the version property. + * + * @param value + * allowed object is + * {@link WSVehicleVersionType } + * + */ + public void setVersion(WSVehicleVersionType value) { + this.version = value; + } + + /** + * Gets the value of the equipmentLevel property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getEquipmentLevel() { + return equipmentLevel; + } + + /** + * Sets the value of the equipmentLevel property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setEquipmentLevel(String value) { + this.equipmentLevel = value; + } + + /** + * Gets the value of the vehicleKind property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVehicleKind() { + return vehicleKind; + } + + /** + * Sets the value of the vehicleKind property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVehicleKind(String value) { + this.vehicleKind = value; + } + + /** + * Gets the value of the vehicleKindID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVehicleKindID() { + return vehicleKindID; + } + + /** + * Sets the value of the vehicleKindID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVehicleKindID(String value) { + this.vehicleKindID = value; + } + + /** + * Gets the value of the countryCode property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCountryCode() { + return countryCode; + } + + /** + * Sets the value of the countryCode property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCountryCode(String value) { + this.countryCode = value; + } + + /** + * Gets the value of the countryName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCountryName() { + return countryName; + } + + /** + * Sets the value of the countryName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCountryName(String value) { + this.countryName = value; + } + + /** + * Gets the value of the foreignMarket property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isForeignMarket() { + return foreignMarket; + } + + /** + * Sets the value of the foreignMarket property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setForeignMarket(Boolean value) { + this.foreignMarket = value; + } + + /** + * Gets the value of the individualImport property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isIndividualImport() { + return individualImport; + } + + /** + * Sets the value of the individualImport property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setIndividualImport(Boolean value) { + this.individualImport = value; + } + + /** + * Gets the value of the productionYear property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getProductionYear() { + return productionYear; + } + + /** + * Sets the value of the productionYear property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setProductionYear(Integer value) { + this.productionYear = value; + } + + /** + * Gets the value of the productionDate property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getProductionDate() { + return productionDate; + } + + /** + * Sets the value of the productionDate property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setProductionDate(XMLGregorianCalendar value) { + this.productionDate = value; + } + + /** + * Gets the value of the productionDateMonthValid property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isProductionDateMonthValid() { + return productionDateMonthValid; + } + + /** + * Sets the value of the productionDateMonthValid property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setProductionDateMonthValid(Boolean value) { + this.productionDateMonthValid = value; + } + + /** + * Gets the value of the productionDateDayValid property. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isProductionDateDayValid() { + return productionDateDayValid; + } + + /** + * Sets the value of the productionDateDayValid property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setProductionDateDayValid(Boolean value) { + this.productionDateDayValid = value; + } + + /** + * Gets the value of the localEquipmentLevel property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getLocalEquipmentLevel() { + return localEquipmentLevel; + } + + /** + * Sets the value of the localEquipmentLevel property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLocalEquipmentLevel(String value) { + this.localEquipmentLevel = value; + } + + /** + * Gets the value of the imageID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getImageID() { + return imageID; + } + + /** + * Sets the value of the imageID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setImageID(String value) { + this.imageID = value; + } + + public WSVehicleIdentificationType withBrand(WSBrandType value) { + setBrand(value); + return this; + } + + public WSVehicleIdentificationType withModel(WSVehicleModelType value) { + setModel(value); + return this; + } + + public WSVehicleIdentificationType withVersion(WSVehicleVersionType value) { + setVersion(value); + return this; + } + + public WSVehicleIdentificationType withEquipmentLevel(String value) { + setEquipmentLevel(value); + return this; + } + + public WSVehicleIdentificationType withVehicleKind(String value) { + setVehicleKind(value); + return this; + } + + public WSVehicleIdentificationType withVehicleKindID(String value) { + setVehicleKindID(value); + return this; + } + + public WSVehicleIdentificationType withCountryCode(String value) { + setCountryCode(value); + return this; + } + + public WSVehicleIdentificationType withCountryName(String value) { + setCountryName(value); + return this; + } + + public WSVehicleIdentificationType withForeignMarket(Boolean value) { + setForeignMarket(value); + return this; + } + + public WSVehicleIdentificationType withIndividualImport(Boolean value) { + setIndividualImport(value); + return this; + } + + public WSVehicleIdentificationType withProductionYear(Integer value) { + setProductionYear(value); + return this; + } + + public WSVehicleIdentificationType withProductionDate(XMLGregorianCalendar value) { + setProductionDate(value); + return this; + } + + public WSVehicleIdentificationType withProductionDateMonthValid(Boolean value) { + setProductionDateMonthValid(value); + return this; + } + + public WSVehicleIdentificationType withProductionDateDayValid(Boolean value) { + setProductionDateDayValid(value); + return this; + } + + public WSVehicleIdentificationType withLocalEquipmentLevel(String value) { + setLocalEquipmentLevel(value); + return this; + } + + public WSVehicleIdentificationType withImageID(String value) { + setImageID(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleModelType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleModelType.java new file mode 100644 index 0000000..ccf4906 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleModelType.java @@ -0,0 +1,298 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSVehicleModelType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSVehicleModelType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Code" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Generation" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="CodeOM" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ModelYear" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="LocalName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ModelFrom" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="ModelTo" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSVehicleModelType", propOrder = { + "code", + "name", + "generation", + "codeOM", + "modelYear", + "localName", + "modelFrom", + "modelTo" +}) +public class WSVehicleModelType { + + @XmlElement(name = "Code", nillable = true) + protected String code; + @XmlElement(name = "Name", nillable = true) + protected String name; + @XmlElement(name = "Generation", nillable = true) + protected Integer generation; + @XmlElement(name = "CodeOM", nillable = true) + protected String codeOM; + @XmlElement(name = "ModelYear", nillable = true) + protected Integer modelYear; + @XmlElement(name = "LocalName", nillable = true) + protected String localName; + @XmlElement(name = "ModelFrom", nillable = true) + protected Integer modelFrom; + @XmlElement(name = "ModelTo", nillable = true) + protected Integer modelTo; + + /** + * Gets the value of the code property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCode() { + return code; + } + + /** + * Sets the value of the code property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCode(String value) { + this.code = value; + } + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the generation property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getGeneration() { + return generation; + } + + /** + * Sets the value of the generation property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setGeneration(Integer value) { + this.generation = value; + } + + /** + * Gets the value of the codeOM property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodeOM() { + return codeOM; + } + + /** + * Sets the value of the codeOM property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodeOM(String value) { + this.codeOM = value; + } + + /** + * Gets the value of the modelYear property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getModelYear() { + return modelYear; + } + + /** + * Sets the value of the modelYear property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setModelYear(Integer value) { + this.modelYear = value; + } + + /** + * Gets the value of the localName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getLocalName() { + return localName; + } + + /** + * Sets the value of the localName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLocalName(String value) { + this.localName = value; + } + + /** + * Gets the value of the modelFrom property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getModelFrom() { + return modelFrom; + } + + /** + * Sets the value of the modelFrom property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setModelFrom(Integer value) { + this.modelFrom = value; + } + + /** + * Gets the value of the modelTo property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getModelTo() { + return modelTo; + } + + /** + * Sets the value of the modelTo property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setModelTo(Integer value) { + this.modelTo = value; + } + + public WSVehicleModelType withCode(String value) { + setCode(value); + return this; + } + + public WSVehicleModelType withName(String value) { + setName(value); + return this; + } + + public WSVehicleModelType withGeneration(Integer value) { + setGeneration(value); + return this; + } + + public WSVehicleModelType withCodeOM(String value) { + setCodeOM(value); + return this; + } + + public WSVehicleModelType withModelYear(Integer value) { + setModelYear(value); + return this; + } + + public WSVehicleModelType withLocalName(String value) { + setLocalName(value); + return this; + } + + public WSVehicleModelType withModelFrom(Integer value) { + setModelFrom(value); + return this; + } + + public WSVehicleModelType withModelTo(Integer value) { + setModelTo(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehiclePrices.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehiclePrices.java new file mode 100644 index 0000000..e099385 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehiclePrices.java @@ -0,0 +1,199 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSVehiclePrices complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSVehiclePrices">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="BasePrice" type="{http://samo.cz/iva/}WSPrice" minOccurs="0"/>
+ *         <element name="OptionalEquipmentPrice" type="{http://samo.cz/iva/}WSPrice" minOccurs="0"/>
+ *         <element name="VehiclePrice" type="{http://samo.cz/iva/}WSPrice" minOccurs="0"/>
+ *         <element name="ListPrice" type="{http://samo.cz/iva/}WSPrice" minOccurs="0"/>
+ *         <element name="ListPriceDiscount" type="{http://samo.cz/iva/}WSPrice" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSVehiclePrices", propOrder = { + "basePrice", + "optionalEquipmentPrice", + "vehiclePrice", + "listPrice", + "listPriceDiscount" +}) +public class WSVehiclePrices { + + @XmlElement(name = "BasePrice", nillable = true) + protected WSPrice basePrice; + @XmlElement(name = "OptionalEquipmentPrice", nillable = true) + protected WSPrice optionalEquipmentPrice; + @XmlElement(name = "VehiclePrice", nillable = true) + protected WSPrice vehiclePrice; + @XmlElement(name = "ListPrice", nillable = true) + protected WSPrice listPrice; + @XmlElement(name = "ListPriceDiscount", nillable = true) + protected WSPrice listPriceDiscount; + + /** + * Gets the value of the basePrice property. + * + * @return + * possible object is + * {@link WSPrice } + * + */ + public WSPrice getBasePrice() { + return basePrice; + } + + /** + * Sets the value of the basePrice property. + * + * @param value + * allowed object is + * {@link WSPrice } + * + */ + public void setBasePrice(WSPrice value) { + this.basePrice = value; + } + + /** + * Gets the value of the optionalEquipmentPrice property. + * + * @return + * possible object is + * {@link WSPrice } + * + */ + public WSPrice getOptionalEquipmentPrice() { + return optionalEquipmentPrice; + } + + /** + * Sets the value of the optionalEquipmentPrice property. + * + * @param value + * allowed object is + * {@link WSPrice } + * + */ + public void setOptionalEquipmentPrice(WSPrice value) { + this.optionalEquipmentPrice = value; + } + + /** + * Gets the value of the vehiclePrice property. + * + * @return + * possible object is + * {@link WSPrice } + * + */ + public WSPrice getVehiclePrice() { + return vehiclePrice; + } + + /** + * Sets the value of the vehiclePrice property. + * + * @param value + * allowed object is + * {@link WSPrice } + * + */ + public void setVehiclePrice(WSPrice value) { + this.vehiclePrice = value; + } + + /** + * Gets the value of the listPrice property. + * + * @return + * possible object is + * {@link WSPrice } + * + */ + public WSPrice getListPrice() { + return listPrice; + } + + /** + * Sets the value of the listPrice property. + * + * @param value + * allowed object is + * {@link WSPrice } + * + */ + public void setListPrice(WSPrice value) { + this.listPrice = value; + } + + /** + * Gets the value of the listPriceDiscount property. + * + * @return + * possible object is + * {@link WSPrice } + * + */ + public WSPrice getListPriceDiscount() { + return listPriceDiscount; + } + + /** + * Sets the value of the listPriceDiscount property. + * + * @param value + * allowed object is + * {@link WSPrice } + * + */ + public void setListPriceDiscount(WSPrice value) { + this.listPriceDiscount = value; + } + + public WSVehiclePrices withBasePrice(WSPrice value) { + setBasePrice(value); + return this; + } + + public WSVehiclePrices withOptionalEquipmentPrice(WSPrice value) { + setOptionalEquipmentPrice(value); + return this; + } + + public WSVehiclePrices withVehiclePrice(WSPrice value) { + setVehiclePrice(value); + return this; + } + + public WSVehiclePrices withListPrice(WSPrice value) { + setListPrice(value); + return this; + } + + public WSVehiclePrices withListPriceDiscount(WSPrice value) { + setListPriceDiscount(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleRegistrationType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleRegistrationType.java new file mode 100644 index 0000000..bb3477c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleRegistrationType.java @@ -0,0 +1,104 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import javax.xml.datatype.XMLGregorianCalendar; + + +/** + *

Java class for WSVehicleRegistrationType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSVehicleRegistrationType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="FirstRegistrationDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ *         <element name="FirstRegistrationDateEU" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSVehicleRegistrationType", propOrder = { + "firstRegistrationDate", + "firstRegistrationDateEU" +}) +public class WSVehicleRegistrationType { + + @XmlElement(name = "FirstRegistrationDate", nillable = true) + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar firstRegistrationDate; + @XmlElement(name = "FirstRegistrationDateEU", nillable = true) + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar firstRegistrationDateEU; + + /** + * Gets the value of the firstRegistrationDate property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getFirstRegistrationDate() { + return firstRegistrationDate; + } + + /** + * Sets the value of the firstRegistrationDate property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setFirstRegistrationDate(XMLGregorianCalendar value) { + this.firstRegistrationDate = value; + } + + /** + * Gets the value of the firstRegistrationDateEU property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getFirstRegistrationDateEU() { + return firstRegistrationDateEU; + } + + /** + * Sets the value of the firstRegistrationDateEU property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setFirstRegistrationDateEU(XMLGregorianCalendar value) { + this.firstRegistrationDateEU = value; + } + + public WSVehicleRegistrationType withFirstRegistrationDate(XMLGregorianCalendar value) { + setFirstRegistrationDate(value); + return this; + } + + public WSVehicleRegistrationType withFirstRegistrationDateEU(XMLGregorianCalendar value) { + setFirstRegistrationDateEU(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleType.java new file mode 100644 index 0000000..34fa085 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleType.java @@ -0,0 +1,364 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSVehicleType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSVehicleType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="AdministrativeData" type="{http://samo.cz/iva/}WSAdministrativeDataType" minOccurs="0"/>
+ *         <element name="Identification" type="{http://samo.cz/iva/}WSVehicleIdentificationType" minOccurs="0"/>
+ *         <element name="Registration" type="{http://samo.cz/iva/}WSVehicleRegistrationType" minOccurs="0"/>
+ *         <element name="Variant" type="{http://samo.cz/iva/}WSVehicleVariantType" minOccurs="0"/>
+ *         <element name="Gearbox" type="{http://samo.cz/iva/}WSGearboxType" minOccurs="0"/>
+ *         <element name="Bodywork" type="{http://samo.cz/iva/}WSBodyworkType" minOccurs="0"/>
+ *         <element name="Engine" type="{http://samo.cz/iva/}WSEngineType" minOccurs="0"/>
+ *         <element name="FuelTank" type="{http://samo.cz/iva/}WSFuelTankType" minOccurs="0"/>
+ *         <element name="Accessories" type="{http://samo.cz/iva/}ArrayOfWSEquipmentType" minOccurs="0"/>
+ *         <element name="RegistrationCertificatePart" type="{http://samo.cz/iva/}WSRegistrationCertificatePartII" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSVehicleType", propOrder = { + "administrativeData", + "identification", + "registration", + "variant", + "gearbox", + "bodywork", + "engine", + "fuelTank", + "accessories", + "registrationCertificatePart" +}) +public class WSVehicleType { + + @XmlElement(name = "AdministrativeData", nillable = true) + protected WSAdministrativeDataType administrativeData; + @XmlElement(name = "Identification", nillable = true) + protected WSVehicleIdentificationType identification; + @XmlElement(name = "Registration", nillable = true) + protected WSVehicleRegistrationType registration; + @XmlElement(name = "Variant", nillable = true) + protected WSVehicleVariantType variant; + @XmlElement(name = "Gearbox", nillable = true) + protected WSGearboxType gearbox; + @XmlElement(name = "Bodywork", nillable = true) + protected WSBodyworkType bodywork; + @XmlElement(name = "Engine", nillable = true) + protected WSEngineType engine; + @XmlElement(name = "FuelTank", nillable = true) + protected WSFuelTankType fuelTank; + @XmlElement(name = "Accessories", nillable = true) + protected ArrayOfWSEquipmentType accessories; + @XmlElement(name = "RegistrationCertificatePart", nillable = true) + protected WSRegistrationCertificatePartII registrationCertificatePart; + + /** + * Gets the value of the administrativeData property. + * + * @return + * possible object is + * {@link WSAdministrativeDataType } + * + */ + public WSAdministrativeDataType getAdministrativeData() { + return administrativeData; + } + + /** + * Sets the value of the administrativeData property. + * + * @param value + * allowed object is + * {@link WSAdministrativeDataType } + * + */ + public void setAdministrativeData(WSAdministrativeDataType value) { + this.administrativeData = value; + } + + /** + * Gets the value of the identification property. + * + * @return + * possible object is + * {@link WSVehicleIdentificationType } + * + */ + public WSVehicleIdentificationType getIdentification() { + return identification; + } + + /** + * Sets the value of the identification property. + * + * @param value + * allowed object is + * {@link WSVehicleIdentificationType } + * + */ + public void setIdentification(WSVehicleIdentificationType value) { + this.identification = value; + } + + /** + * Gets the value of the registration property. + * + * @return + * possible object is + * {@link WSVehicleRegistrationType } + * + */ + public WSVehicleRegistrationType getRegistration() { + return registration; + } + + /** + * Sets the value of the registration property. + * + * @param value + * allowed object is + * {@link WSVehicleRegistrationType } + * + */ + public void setRegistration(WSVehicleRegistrationType value) { + this.registration = value; + } + + /** + * Gets the value of the variant property. + * + * @return + * possible object is + * {@link WSVehicleVariantType } + * + */ + public WSVehicleVariantType getVariant() { + return variant; + } + + /** + * Sets the value of the variant property. + * + * @param value + * allowed object is + * {@link WSVehicleVariantType } + * + */ + public void setVariant(WSVehicleVariantType value) { + this.variant = value; + } + + /** + * Gets the value of the gearbox property. + * + * @return + * possible object is + * {@link WSGearboxType } + * + */ + public WSGearboxType getGearbox() { + return gearbox; + } + + /** + * Sets the value of the gearbox property. + * + * @param value + * allowed object is + * {@link WSGearboxType } + * + */ + public void setGearbox(WSGearboxType value) { + this.gearbox = value; + } + + /** + * Gets the value of the bodywork property. + * + * @return + * possible object is + * {@link WSBodyworkType } + * + */ + public WSBodyworkType getBodywork() { + return bodywork; + } + + /** + * Sets the value of the bodywork property. + * + * @param value + * allowed object is + * {@link WSBodyworkType } + * + */ + public void setBodywork(WSBodyworkType value) { + this.bodywork = value; + } + + /** + * Gets the value of the engine property. + * + * @return + * possible object is + * {@link WSEngineType } + * + */ + public WSEngineType getEngine() { + return engine; + } + + /** + * Sets the value of the engine property. + * + * @param value + * allowed object is + * {@link WSEngineType } + * + */ + public void setEngine(WSEngineType value) { + this.engine = value; + } + + /** + * Gets the value of the fuelTank property. + * + * @return + * possible object is + * {@link WSFuelTankType } + * + */ + public WSFuelTankType getFuelTank() { + return fuelTank; + } + + /** + * Sets the value of the fuelTank property. + * + * @param value + * allowed object is + * {@link WSFuelTankType } + * + */ + public void setFuelTank(WSFuelTankType value) { + this.fuelTank = value; + } + + /** + * Gets the value of the accessories property. + * + * @return + * possible object is + * {@link ArrayOfWSEquipmentType } + * + */ + public ArrayOfWSEquipmentType getAccessories() { + return accessories; + } + + /** + * Sets the value of the accessories property. + * + * @param value + * allowed object is + * {@link ArrayOfWSEquipmentType } + * + */ + public void setAccessories(ArrayOfWSEquipmentType value) { + this.accessories = value; + } + + /** + * Gets the value of the registrationCertificatePart property. + * + * @return + * possible object is + * {@link WSRegistrationCertificatePartII } + * + */ + public WSRegistrationCertificatePartII getRegistrationCertificatePart() { + return registrationCertificatePart; + } + + /** + * Sets the value of the registrationCertificatePart property. + * + * @param value + * allowed object is + * {@link WSRegistrationCertificatePartII } + * + */ + public void setRegistrationCertificatePart(WSRegistrationCertificatePartII value) { + this.registrationCertificatePart = value; + } + + public WSVehicleType withAdministrativeData(WSAdministrativeDataType value) { + setAdministrativeData(value); + return this; + } + + public WSVehicleType withIdentification(WSVehicleIdentificationType value) { + setIdentification(value); + return this; + } + + public WSVehicleType withRegistration(WSVehicleRegistrationType value) { + setRegistration(value); + return this; + } + + public WSVehicleType withVariant(WSVehicleVariantType value) { + setVariant(value); + return this; + } + + public WSVehicleType withGearbox(WSGearboxType value) { + setGearbox(value); + return this; + } + + public WSVehicleType withBodywork(WSBodyworkType value) { + setBodywork(value); + return this; + } + + public WSVehicleType withEngine(WSEngineType value) { + setEngine(value); + return this; + } + + public WSVehicleType withFuelTank(WSFuelTankType value) { + setFuelTank(value); + return this; + } + + public WSVehicleType withAccessories(ArrayOfWSEquipmentType value) { + setAccessories(value); + return this; + } + + public WSVehicleType withRegistrationCertificatePart(WSRegistrationCertificatePartII value) { + setRegistrationCertificatePart(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleVariantType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleVariantType.java new file mode 100644 index 0000000..7427c20 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleVariantType.java @@ -0,0 +1,463 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSVehicleVariantType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSVehicleVariantType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="DriveType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="DriveTypeID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="DriveCodeOM" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Weight" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="Wheelbase" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="OverallLength" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="OverallHeight" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="OverallWidth" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="Payload" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="WheelbasePlus" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="FrontTyres" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="RearTyres" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="SuspensionType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSVehicleVariantType", propOrder = { + "driveType", + "driveTypeID", + "driveCodeOM", + "weight", + "wheelbase", + "overallLength", + "overallHeight", + "overallWidth", + "payload", + "wheelbasePlus", + "frontTyres", + "rearTyres", + "suspensionType" +}) +public class WSVehicleVariantType { + + @XmlElement(name = "DriveType", nillable = true) + protected String driveType; + @XmlElement(name = "DriveTypeID", nillable = true) + protected String driveTypeID; + @XmlElement(name = "DriveCodeOM", nillable = true) + protected String driveCodeOM; + @XmlElement(name = "Weight", nillable = true) + protected Integer weight; + @XmlElement(name = "Wheelbase", nillable = true) + protected Integer wheelbase; + @XmlElement(name = "OverallLength", nillable = true) + protected Integer overallLength; + @XmlElement(name = "OverallHeight", nillable = true) + protected Integer overallHeight; + @XmlElement(name = "OverallWidth", nillable = true) + protected Integer overallWidth; + @XmlElement(name = "Payload", nillable = true) + protected Integer payload; + @XmlElement(name = "WheelbasePlus", nillable = true) + protected Integer wheelbasePlus; + @XmlElement(name = "FrontTyres", nillable = true) + protected String frontTyres; + @XmlElement(name = "RearTyres", nillable = true) + protected String rearTyres; + @XmlElement(name = "SuspensionType", nillable = true) + protected String suspensionType; + + /** + * Gets the value of the driveType property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDriveType() { + return driveType; + } + + /** + * Sets the value of the driveType property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDriveType(String value) { + this.driveType = value; + } + + /** + * Gets the value of the driveTypeID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDriveTypeID() { + return driveTypeID; + } + + /** + * Sets the value of the driveTypeID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDriveTypeID(String value) { + this.driveTypeID = value; + } + + /** + * Gets the value of the driveCodeOM property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDriveCodeOM() { + return driveCodeOM; + } + + /** + * Sets the value of the driveCodeOM property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDriveCodeOM(String value) { + this.driveCodeOM = value; + } + + /** + * Gets the value of the weight property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getWeight() { + return weight; + } + + /** + * Sets the value of the weight property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setWeight(Integer value) { + this.weight = value; + } + + /** + * Gets the value of the wheelbase property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getWheelbase() { + return wheelbase; + } + + /** + * Sets the value of the wheelbase property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setWheelbase(Integer value) { + this.wheelbase = value; + } + + /** + * Gets the value of the overallLength property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getOverallLength() { + return overallLength; + } + + /** + * Sets the value of the overallLength property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setOverallLength(Integer value) { + this.overallLength = value; + } + + /** + * Gets the value of the overallHeight property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getOverallHeight() { + return overallHeight; + } + + /** + * Sets the value of the overallHeight property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setOverallHeight(Integer value) { + this.overallHeight = value; + } + + /** + * Gets the value of the overallWidth property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getOverallWidth() { + return overallWidth; + } + + /** + * Sets the value of the overallWidth property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setOverallWidth(Integer value) { + this.overallWidth = value; + } + + /** + * Gets the value of the payload property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getPayload() { + return payload; + } + + /** + * Sets the value of the payload property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setPayload(Integer value) { + this.payload = value; + } + + /** + * Gets the value of the wheelbasePlus property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getWheelbasePlus() { + return wheelbasePlus; + } + + /** + * Sets the value of the wheelbasePlus property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setWheelbasePlus(Integer value) { + this.wheelbasePlus = value; + } + + /** + * Gets the value of the frontTyres property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFrontTyres() { + return frontTyres; + } + + /** + * Sets the value of the frontTyres property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFrontTyres(String value) { + this.frontTyres = value; + } + + /** + * Gets the value of the rearTyres property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRearTyres() { + return rearTyres; + } + + /** + * Sets the value of the rearTyres property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRearTyres(String value) { + this.rearTyres = value; + } + + /** + * Gets the value of the suspensionType property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSuspensionType() { + return suspensionType; + } + + /** + * Sets the value of the suspensionType property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSuspensionType(String value) { + this.suspensionType = value; + } + + public WSVehicleVariantType withDriveType(String value) { + setDriveType(value); + return this; + } + + public WSVehicleVariantType withDriveTypeID(String value) { + setDriveTypeID(value); + return this; + } + + public WSVehicleVariantType withDriveCodeOM(String value) { + setDriveCodeOM(value); + return this; + } + + public WSVehicleVariantType withWeight(Integer value) { + setWeight(value); + return this; + } + + public WSVehicleVariantType withWheelbase(Integer value) { + setWheelbase(value); + return this; + } + + public WSVehicleVariantType withOverallLength(Integer value) { + setOverallLength(value); + return this; + } + + public WSVehicleVariantType withOverallHeight(Integer value) { + setOverallHeight(value); + return this; + } + + public WSVehicleVariantType withOverallWidth(Integer value) { + setOverallWidth(value); + return this; + } + + public WSVehicleVariantType withPayload(Integer value) { + setPayload(value); + return this; + } + + public WSVehicleVariantType withWheelbasePlus(Integer value) { + setWheelbasePlus(value); + return this; + } + + public WSVehicleVariantType withFrontTyres(String value) { + setFrontTyres(value); + return this; + } + + public WSVehicleVariantType withRearTyres(String value) { + setRearTyres(value); + return this; + } + + public WSVehicleVariantType withSuspensionType(String value) { + setSuspensionType(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleVersionType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleVersionType.java new file mode 100644 index 0000000..4697e34 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVehicleVersionType.java @@ -0,0 +1,304 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import javax.xml.datatype.XMLGregorianCalendar; + + +/** + *

Java class for WSVehicleVersionType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSVehicleVersionType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VersionName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="VersionState" type="{http://samo.cz/iva/}WSVersionStateEnum" minOccurs="0"/>
+ *         <element name="VersionOnMarketIntroduced" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ *         <element name="VersionOnMarketConcluded" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ *         <element name="VersionSpecificationChanged" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
+ *         <element name="Price" type="{http://samo.cz/iva/}WSPriceType" minOccurs="0"/>
+ *         <element name="BasePrice" type="{http://samo.cz/iva/}WSPriceType" minOccurs="0"/>
+ *         <element name="Discount" type="{http://samo.cz/iva/}WSPriceType" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSVehicleVersionType", propOrder = { + "versionName", + "versionState", + "versionOnMarketIntroduced", + "versionOnMarketConcluded", + "versionSpecificationChanged", + "price", + "basePrice", + "discount" +}) +public class WSVehicleVersionType { + + @XmlElement(name = "VersionName", nillable = true) + protected String versionName; + @XmlElement(name = "VersionState") + @XmlSchemaType(name = "string") + protected WSVersionStateEnum versionState; + @XmlElement(name = "VersionOnMarketIntroduced", nillable = true) + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar versionOnMarketIntroduced; + @XmlElement(name = "VersionOnMarketConcluded", nillable = true) + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar versionOnMarketConcluded; + @XmlElement(name = "VersionSpecificationChanged", nillable = true) + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar versionSpecificationChanged; + @XmlElement(name = "Price", nillable = true) + protected WSPriceType price; + @XmlElement(name = "BasePrice", nillable = true) + protected WSPriceType basePrice; + @XmlElement(name = "Discount", nillable = true) + protected WSPriceType discount; + + /** + * Gets the value of the versionName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersionName() { + return versionName; + } + + /** + * Sets the value of the versionName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersionName(String value) { + this.versionName = value; + } + + /** + * Gets the value of the versionState property. + * + * @return + * possible object is + * {@link WSVersionStateEnum } + * + */ + public WSVersionStateEnum getVersionState() { + return versionState; + } + + /** + * Sets the value of the versionState property. + * + * @param value + * allowed object is + * {@link WSVersionStateEnum } + * + */ + public void setVersionState(WSVersionStateEnum value) { + this.versionState = value; + } + + /** + * Gets the value of the versionOnMarketIntroduced property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getVersionOnMarketIntroduced() { + return versionOnMarketIntroduced; + } + + /** + * Sets the value of the versionOnMarketIntroduced property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setVersionOnMarketIntroduced(XMLGregorianCalendar value) { + this.versionOnMarketIntroduced = value; + } + + /** + * Gets the value of the versionOnMarketConcluded property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getVersionOnMarketConcluded() { + return versionOnMarketConcluded; + } + + /** + * Sets the value of the versionOnMarketConcluded property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setVersionOnMarketConcluded(XMLGregorianCalendar value) { + this.versionOnMarketConcluded = value; + } + + /** + * Gets the value of the versionSpecificationChanged property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getVersionSpecificationChanged() { + return versionSpecificationChanged; + } + + /** + * Sets the value of the versionSpecificationChanged property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setVersionSpecificationChanged(XMLGregorianCalendar value) { + this.versionSpecificationChanged = value; + } + + /** + * Gets the value of the price property. + * + * @return + * possible object is + * {@link WSPriceType } + * + */ + public WSPriceType getPrice() { + return price; + } + + /** + * Sets the value of the price property. + * + * @param value + * allowed object is + * {@link WSPriceType } + * + */ + public void setPrice(WSPriceType value) { + this.price = value; + } + + /** + * Gets the value of the basePrice property. + * + * @return + * possible object is + * {@link WSPriceType } + * + */ + public WSPriceType getBasePrice() { + return basePrice; + } + + /** + * Sets the value of the basePrice property. + * + * @param value + * allowed object is + * {@link WSPriceType } + * + */ + public void setBasePrice(WSPriceType value) { + this.basePrice = value; + } + + /** + * Gets the value of the discount property. + * + * @return + * possible object is + * {@link WSPriceType } + * + */ + public WSPriceType getDiscount() { + return discount; + } + + /** + * Sets the value of the discount property. + * + * @param value + * allowed object is + * {@link WSPriceType } + * + */ + public void setDiscount(WSPriceType value) { + this.discount = value; + } + + public WSVehicleVersionType withVersionName(String value) { + setVersionName(value); + return this; + } + + public WSVehicleVersionType withVersionState(WSVersionStateEnum value) { + setVersionState(value); + return this; + } + + public WSVehicleVersionType withVersionOnMarketIntroduced(XMLGregorianCalendar value) { + setVersionOnMarketIntroduced(value); + return this; + } + + public WSVehicleVersionType withVersionOnMarketConcluded(XMLGregorianCalendar value) { + setVersionOnMarketConcluded(value); + return this; + } + + public WSVehicleVersionType withVersionSpecificationChanged(XMLGregorianCalendar value) { + setVersionSpecificationChanged(value); + return this; + } + + public WSVehicleVersionType withPrice(WSPriceType value) { + setPrice(value); + return this; + } + + public WSVehicleVersionType withBasePrice(WSPriceType value) { + setBasePrice(value); + return this; + } + + public WSVehicleVersionType withDiscount(WSPriceType value) { + setDiscount(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVersionStateEnum.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVersionStateEnum.java new file mode 100644 index 0000000..e25d08d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/WSVersionStateEnum.java @@ -0,0 +1,99 @@ + +package cz.moneta.test.dsl.cebia.iva; + +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSVersionStateEnum. + * + *

The following schema fragment specifies the expected content contained within this class. + *

+ *

+ * <simpleType name="WSVersionStateEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <enumeration value="Unknown"/>
+ *     <enumeration value="StockOnly"/>
+ *     <enumeration value="CurrencyChange"/>
+ *     <enumeration value="ModelNameChange"/>
+ *     <enumeration value="Embargoed"/>
+ *     <enumeration value="FaceLift"/>
+ *     <enumeration value="OutGoing"/>
+ *     <enumeration value="IncentiveChange"/>
+ *     <enumeration value="MakeNameChange"/>
+ *     <enumeration value="Fleet"/>
+ *     <enumeration value="ModelYearChange"/>
+ *     <enumeration value="NewModel"/>
+ *     <enumeration value="OptionChange"/>
+ *     <enumeration value="PriceChange"/>
+ *     <enumeration value="Reintroduced"/>
+ *     <enumeration value="SpecificationChange"/>
+ *     <enumeration value="TaxChange"/>
+ *     <enumeration value="NewVersion"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "WSVersionStateEnum") +@XmlEnum +public enum WSVersionStateEnum { + + @XmlEnumValue("Unknown") + UNKNOWN("Unknown"), + @XmlEnumValue("StockOnly") + STOCK_ONLY("StockOnly"), + @XmlEnumValue("CurrencyChange") + CURRENCY_CHANGE("CurrencyChange"), + @XmlEnumValue("ModelNameChange") + MODEL_NAME_CHANGE("ModelNameChange"), + @XmlEnumValue("Embargoed") + EMBARGOED("Embargoed"), + @XmlEnumValue("FaceLift") + FACE_LIFT("FaceLift"), + @XmlEnumValue("OutGoing") + OUT_GOING("OutGoing"), + @XmlEnumValue("IncentiveChange") + INCENTIVE_CHANGE("IncentiveChange"), + @XmlEnumValue("MakeNameChange") + MAKE_NAME_CHANGE("MakeNameChange"), + @XmlEnumValue("Fleet") + FLEET("Fleet"), + @XmlEnumValue("ModelYearChange") + MODEL_YEAR_CHANGE("ModelYearChange"), + @XmlEnumValue("NewModel") + NEW_MODEL("NewModel"), + @XmlEnumValue("OptionChange") + OPTION_CHANGE("OptionChange"), + @XmlEnumValue("PriceChange") + PRICE_CHANGE("PriceChange"), + @XmlEnumValue("Reintroduced") + REINTRODUCED("Reintroduced"), + @XmlEnumValue("SpecificationChange") + SPECIFICATION_CHANGE("SpecificationChange"), + @XmlEnumValue("TaxChange") + TAX_CHANGE("TaxChange"), + @XmlEnumValue("NewVersion") + NEW_VERSION("NewVersion"); + private final String value; + + WSVersionStateEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static WSVersionStateEnum fromValue(String v) { + for (WSVersionStateEnum c: WSVersionStateEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/package-info.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/package-info.java new file mode 100644 index 0000000..c9f51aa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/iva/package-info.java @@ -0,0 +1,2 @@ +@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://samo.cz/iva/", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED) +package cz.moneta.test.dsl.cebia.iva; diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/Alive.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/Alive.java new file mode 100644 index 0000000..bdf872f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/Alive.java @@ -0,0 +1,101 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="header" type="{http://schemas.cebia.com/iva/service/}WSHeaderType" minOccurs="0"/>
+ *         <element name="returnParam" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "header", + "returnParam" +}) +@XmlRootElement(name = "Alive") +public class Alive { + + @XmlElement(nillable = true) + protected WSHeaderType header; + protected Integer returnParam; + + /** + * Gets the value of the header property. + * + * @return + * possible object is + * {@link WSHeaderType } + * + */ + public WSHeaderType getHeader() { + return header; + } + + /** + * Sets the value of the header property. + * + * @param value + * allowed object is + * {@link WSHeaderType } + * + */ + public void setHeader(WSHeaderType value) { + this.header = value; + } + + /** + * Gets the value of the returnParam property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getReturnParam() { + return returnParam; + } + + /** + * Sets the value of the returnParam property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setReturnParam(Integer value) { + this.returnParam = value; + } + + public Alive withHeader(WSHeaderType value) { + setHeader(value); + return this; + } + + public Alive withReturnParam(Integer value) { + setReturnParam(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/AliveResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/AliveResponse.java new file mode 100644 index 0000000..69dce28 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/AliveResponse.java @@ -0,0 +1,69 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="AliveResult" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "aliveResult" +}) +@XmlRootElement(name = "AliveResponse") +public class AliveResponse { + + @XmlElement(name = "AliveResult") + protected Integer aliveResult; + + /** + * Gets the value of the aliveResult property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getAliveResult() { + return aliveResult; + } + + /** + * Sets the value of the aliveResult property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setAliveResult(Integer value) { + this.aliveResult = value; + } + + public AliveResponse withAliveResult(Integer value) { + setAliveResult(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/IvaService.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/IvaService.java new file mode 100644 index 0000000..ffc1fd8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/IvaService.java @@ -0,0 +1,147 @@ +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebResult; +import jakarta.jws.WebService; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.ws.Action; +import jakarta.xml.ws.RequestWrapper; +import jakarta.xml.ws.ResponseWrapper; + +/** + * This class was generated by Apache CXF 3.2.7 + * 2019-01-29T15:43:30.805+01:00 + * Generated source version: 3.2.7 + * + */ +@WebService(targetNamespace = "http://schemas.cebia.com/iva/service/", name = "IvaService") +@XmlSeeAlso({cz.moneta.test.dsl.cebia.serialization.ObjectFactory.class, cz.moneta.test.dsl.cebia.serialization.arrays.ObjectFactory.class, cz.moneta.test.dsl.cebia.iva.ObjectFactory.class, ObjectFactory.class}) +public interface IvaService { + + @WebMethod(operationName = "VehicleIdentification1", action = "http://schemas.cebia.com/iva/service/IvaService/VehicleIdentification1") + @Action(input = "http://schemas.cebia.com/iva/service/IvaService/VehicleIdentification1", output = "http://schemas.cebia.com/iva/service/IvaService/VehicleIdentification1Response") + @RequestWrapper(localName = "VehicleIdentification1", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleIdentification1") + @ResponseWrapper(localName = "VehicleIdentification1Response", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleIdentification1Response") + @WebResult(name = "VehicleIdentification1Result", targetNamespace = "http://schemas.cebia.com/iva/service/") + public cz.moneta.test.dsl.cebia.iva.WSIdentificationResponse vehicleIdentification1( + @WebParam(name = "header", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.schemas.iva.service.WSHeaderType header, + @WebParam(name = "vehicle", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.iva.WSVehicleType vehicle + ); + + @WebMethod(operationName = "VehicleValuation", action = "http://schemas.cebia.com/iva/service/IvaService/VehicleValuation") + @Action(input = "http://schemas.cebia.com/iva/service/IvaService/VehicleValuation", output = "http://schemas.cebia.com/iva/service/IvaService/VehicleValuationResponse") + @RequestWrapper(localName = "VehicleValuation", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleValuation") + @ResponseWrapper(localName = "VehicleValuationResponse", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleValuationResponse") + @WebResult(name = "VehicleValuationResult", targetNamespace = "http://schemas.cebia.com/iva/service/") + public cz.moneta.test.dsl.cebia.iva.WSValuationResponse vehicleValuation( + @WebParam(name = "header", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.schemas.iva.service.WSHeaderType header, + @WebParam(name = "inputData", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.iva.WSValuationRequest inputData + ); + + @WebMethod(operationName = "VehicleValuation2", action = "http://schemas.cebia.com/iva/service/IvaService/VehicleValuation2") + @Action(input = "http://schemas.cebia.com/iva/service/IvaService/VehicleValuation2", output = "http://schemas.cebia.com/iva/service/IvaService/VehicleValuation2Response") + @RequestWrapper(localName = "VehicleValuation2", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleValuation2") + @ResponseWrapper(localName = "VehicleValuation2Response", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleValuation2Response") + @WebResult(name = "VehicleValuation2Result", targetNamespace = "http://schemas.cebia.com/iva/service/") + public cz.moneta.test.dsl.cebia.iva.WSValuation2Response vehicleValuation2( + @WebParam(name = "header", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.schemas.iva.service.WSHeaderType header, + @WebParam(name = "inputData", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.iva.WSValuation2Request inputData + ); + + @WebMethod(operationName = "Alive", action = "http://schemas.cebia.com/iva/service/IvaService/Alive") + @Action(input = "http://schemas.cebia.com/iva/service/IvaService/Alive", output = "http://schemas.cebia.com/iva/service/IvaService/AliveResponse") + @RequestWrapper(localName = "Alive", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.Alive") + @ResponseWrapper(localName = "AliveResponse", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.AliveResponse") + @WebResult(name = "AliveResult", targetNamespace = "http://schemas.cebia.com/iva/service/") + public java.lang.Integer alive( + @WebParam(name = "header", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.schemas.iva.service.WSHeaderType header, + @WebParam(name = "returnParam", targetNamespace = "http://schemas.cebia.com/iva/service/") + java.lang.Integer returnParam + ); + + @WebMethod(operationName = "SearchCriteriaValues", action = "http://schemas.cebia.com/iva/service/IvaService/SearchCriteriaValues") + @Action(input = "http://schemas.cebia.com/iva/service/IvaService/SearchCriteriaValues", output = "http://schemas.cebia.com/iva/service/IvaService/SearchCriteriaValuesResponse") + @RequestWrapper(localName = "SearchCriteriaValues", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.SearchCriteriaValues") + @ResponseWrapper(localName = "SearchCriteriaValuesResponse", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.SearchCriteriaValuesResponse") + @WebResult(name = "SearchCriteriaValuesResult", targetNamespace = "http://schemas.cebia.com/iva/service/") + public cz.moneta.test.dsl.cebia.iva.WSSearchCriteriaValuesResponse searchCriteriaValues( + @WebParam(name = "header", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.schemas.iva.service.WSHeaderType header, + @WebParam(name = "Criteria", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.iva.WSVehicleType criteria, + @WebParam(name = "SearchMode", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.iva.WSSearchCriteriaAttributeEnum searchMode + ); + + @WebMethod(operationName = "VehicleIdentification2", action = "http://schemas.cebia.com/iva/service/IvaService/VehicleIdentification2") + @Action(input = "http://schemas.cebia.com/iva/service/IvaService/VehicleIdentification2", output = "http://schemas.cebia.com/iva/service/IvaService/VehicleIdentification2Response") + @RequestWrapper(localName = "VehicleIdentification2", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleIdentification2") + @ResponseWrapper(localName = "VehicleIdentification2Response", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleIdentification2Response") + @WebResult(name = "VehicleIdentification2Result", targetNamespace = "http://schemas.cebia.com/iva/service/") + public cz.moneta.test.dsl.cebia.iva.WSIdentificationResponse vehicleIdentification2( + @WebParam(name = "header", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.schemas.iva.service.WSHeaderType header, + @WebParam(name = "vehicle", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.iva.WSVehicleType vehicle, + @WebParam(name = "tolerance", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.iva.WSSearchCriteriaTolerance tolerance + ); + + @WebMethod(operationName = "VehicleDetail1", action = "http://schemas.cebia.com/iva/service/IvaService/VehicleDetail1") + @Action(input = "http://schemas.cebia.com/iva/service/IvaService/VehicleDetail1", output = "http://schemas.cebia.com/iva/service/IvaService/VehicleDetail1Response") + @RequestWrapper(localName = "VehicleDetail1", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleDetail1") + @ResponseWrapper(localName = "VehicleDetail1Response", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleDetail1Response") + @WebResult(name = "VehicleDetail1Result", targetNamespace = "http://schemas.cebia.com/iva/service/") + public cz.moneta.test.dsl.cebia.iva.WSDetailResponse vehicleDetail1( + @WebParam(name = "header", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.schemas.iva.service.WSHeaderType header, + @WebParam(name = "inputData", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.iva.WSInputDataType inputData + ); + + @WebMethod(operationName = "VehicleDetailByVin", action = "http://schemas.cebia.com/iva/service/IvaService/VehicleDetailByVin") + @Action(input = "http://schemas.cebia.com/iva/service/IvaService/VehicleDetailByVin", output = "http://schemas.cebia.com/iva/service/IvaService/VehicleDetailByVinResponse") + @RequestWrapper(localName = "VehicleDetailByVin", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleDetailByVin") + @ResponseWrapper(localName = "VehicleDetailByVinResponse", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleDetailByVinResponse") + @WebResult(name = "VehicleDetailByVinResult", targetNamespace = "http://schemas.cebia.com/iva/service/") + public cz.moneta.test.dsl.cebia.iva.WSDetailResponse vehicleDetailByVin( + @WebParam(name = "header", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.schemas.iva.service.WSHeaderType header, + @WebParam(name = "vin", targetNamespace = "http://schemas.cebia.com/iva/service/") + java.lang.String vin + ); + + @WebMethod(operationName = "VehicleIdentification3", action = "http://schemas.cebia.com/iva/service/IvaService/VehicleIdentification3") + @Action(input = "http://schemas.cebia.com/iva/service/IvaService/VehicleIdentification3", output = "http://schemas.cebia.com/iva/service/IvaService/VehicleIdentification3Response") + @RequestWrapper(localName = "VehicleIdentification3", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleIdentification3") + @ResponseWrapper(localName = "VehicleIdentification3Response", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleIdentification3Response") + @WebResult(name = "VehicleIdentification3Result", targetNamespace = "http://schemas.cebia.com/iva/service/") + public cz.moneta.test.dsl.cebia.iva.WSIdentification3Response vehicleIdentification3( + @WebParam(name = "header", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.schemas.iva.service.WSHeaderType header, + @WebParam(name = "VIN", targetNamespace = "http://schemas.cebia.com/iva/service/") + java.lang.String vin, + @WebParam(name = "RegPlate", targetNamespace = "http://schemas.cebia.com/iva/service/") + java.lang.String regPlate + ); + + @WebMethod(operationName = "VehicleDetail2", action = "http://schemas.cebia.com/iva/service/IvaService/VehicleDetail2") + @Action(input = "http://schemas.cebia.com/iva/service/IvaService/VehicleDetail2", output = "http://schemas.cebia.com/iva/service/IvaService/VehicleDetail2Response") + @RequestWrapper(localName = "VehicleDetail2", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleDetail2") + @ResponseWrapper(localName = "VehicleDetail2Response", targetNamespace = "http://schemas.cebia.com/iva/service/", className = "cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleDetail2Response") + @WebResult(name = "VehicleDetail2Result", targetNamespace = "http://schemas.cebia.com/iva/service/") + public cz.moneta.test.dsl.cebia.iva.WSDetailResponse vehicleDetail2( + @WebParam(name = "header", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.schemas.iva.service.WSHeaderType header, + @WebParam(name = "inputData", targetNamespace = "http://schemas.cebia.com/iva/service/") + cz.moneta.test.dsl.cebia.iva.WSInputDataType inputData + ); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/IvaService_Service.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/IvaService_Service.java new file mode 100644 index 0000000..9471c89 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/IvaService_Service.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.ws.Service; +import jakarta.xml.ws.WebEndpoint; +import jakarta.xml.ws.WebServiceClient; +import jakarta.xml.ws.WebServiceFeature; + +import javax.xml.namespace.QName; +import java.net.MalformedURLException; +import java.net.URL; + +/** + * This class was generated by Apache CXF 3.2.7 + * 2019-01-29T15:43:30.880+01:00 + * Generated source version: 3.2.7 + * + */ +@WebServiceClient(name = "IvaService", + wsdlLocation = "file:/C:/Users/543829651/git/test-harness/src/main/resources/ws/IvaServiceActual.wsdl", + targetNamespace = "http://schemas.cebia.com/iva/service/") +public class IvaService_Service extends Service { + + public final static URL WSDL_LOCATION; + + public final static QName SERVICE = new QName("http://schemas.cebia.com/iva/service/", "IvaService"); + public final static QName BasicHttpBindingIvaService = new QName("http://schemas.cebia.com/iva/service/", "BasicHttpBinding_IvaService"); + static { + URL url = null; + try { + url = new URL("file:/C:/Users/543829651/git/test-harness/src/main/resources/ws/IvaServiceActual.wsdl"); + } catch (MalformedURLException e) { + java.util.logging.Logger.getLogger(IvaService_Service.class.getName()) + .log(java.util.logging.Level.INFO, + "Can not initialize the default wsdl from {0}", "file:/C:/Users/543829651/git/test-harness/src/main/resources/ws/IvaServiceActual.wsdl"); + } + WSDL_LOCATION = url; + } + + public IvaService_Service(URL wsdlLocation) { + super(wsdlLocation, SERVICE); + } + + public IvaService_Service(URL wsdlLocation, QName serviceName) { + super(wsdlLocation, serviceName); + } + + public IvaService_Service() { + super(WSDL_LOCATION, SERVICE); + } + + public IvaService_Service(WebServiceFeature ... features) { + super(WSDL_LOCATION, SERVICE, features); + } + + public IvaService_Service(URL wsdlLocation, WebServiceFeature ... features) { + super(wsdlLocation, SERVICE, features); + } + + public IvaService_Service(URL wsdlLocation, QName serviceName, WebServiceFeature ... features) { + super(wsdlLocation, serviceName, features); + } + + + + + /** + * + * @return + * returns IvaService + */ + @WebEndpoint(name = "BasicHttpBinding_IvaService") + public IvaService getBasicHttpBindingIvaService() { + return super.getPort(BasicHttpBindingIvaService, IvaService.class); + } + + /** + * + * @param features + * A list of {@link jakarta.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. + * @return + * returns IvaService + */ + @WebEndpoint(name = "BasicHttpBinding_IvaService") + public IvaService getBasicHttpBindingIvaService(WebServiceFeature... features) { + return super.getPort(BasicHttpBindingIvaService, IvaService.class, features); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/ObjectFactory.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/ObjectFactory.java new file mode 100644 index 0000000..0122af4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/ObjectFactory.java @@ -0,0 +1,213 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlElementDecl; +import jakarta.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the cz.moneta.test.dsl.cebia.schemas.iva.service package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _WSHeaderType_QNAME = new QName("http://schemas.cebia.com/iva/service/", "WSHeaderType"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: cz.moneta.test.dsl.cebia.schemas.iva.service + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link VehicleIdentification1 } + * + */ + public VehicleIdentification1 createVehicleIdentification1() { + return new VehicleIdentification1(); + } + + /** + * Create an instance of {@link WSHeaderType } + * + */ + public WSHeaderType createWSHeaderType() { + return new WSHeaderType(); + } + + /** + * Create an instance of {@link VehicleIdentification1Response } + * + */ + public VehicleIdentification1Response createVehicleIdentification1Response() { + return new VehicleIdentification1Response(); + } + + /** + * Create an instance of {@link VehicleIdentification2 } + * + */ + public VehicleIdentification2 createVehicleIdentification2() { + return new VehicleIdentification2(); + } + + /** + * Create an instance of {@link VehicleIdentification2Response } + * + */ + public VehicleIdentification2Response createVehicleIdentification2Response() { + return new VehicleIdentification2Response(); + } + + /** + * Create an instance of {@link VehicleIdentification3 } + * + */ + public VehicleIdentification3 createVehicleIdentification3() { + return new VehicleIdentification3(); + } + + /** + * Create an instance of {@link VehicleIdentification3Response } + * + */ + public VehicleIdentification3Response createVehicleIdentification3Response() { + return new VehicleIdentification3Response(); + } + + /** + * Create an instance of {@link VehicleDetail1 } + * + */ + public VehicleDetail1 createVehicleDetail1() { + return new VehicleDetail1(); + } + + /** + * Create an instance of {@link VehicleDetail1Response } + * + */ + public VehicleDetail1Response createVehicleDetail1Response() { + return new VehicleDetail1Response(); + } + + /** + * Create an instance of {@link VehicleDetail2 } + * + */ + public VehicleDetail2 createVehicleDetail2() { + return new VehicleDetail2(); + } + + /** + * Create an instance of {@link VehicleDetail2Response } + * + */ + public VehicleDetail2Response createVehicleDetail2Response() { + return new VehicleDetail2Response(); + } + + /** + * Create an instance of {@link VehicleValuation } + * + */ + public VehicleValuation createVehicleValuation() { + return new VehicleValuation(); + } + + /** + * Create an instance of {@link VehicleValuationResponse } + * + */ + public VehicleValuationResponse createVehicleValuationResponse() { + return new VehicleValuationResponse(); + } + + /** + * Create an instance of {@link VehicleValuation2 } + * + */ + public VehicleValuation2 createVehicleValuation2() { + return new VehicleValuation2(); + } + + /** + * Create an instance of {@link VehicleValuation2Response } + * + */ + public VehicleValuation2Response createVehicleValuation2Response() { + return new VehicleValuation2Response(); + } + + /** + * Create an instance of {@link SearchCriteriaValues } + * + */ + public SearchCriteriaValues createSearchCriteriaValues() { + return new SearchCriteriaValues(); + } + + /** + * Create an instance of {@link SearchCriteriaValuesResponse } + * + */ + public SearchCriteriaValuesResponse createSearchCriteriaValuesResponse() { + return new SearchCriteriaValuesResponse(); + } + + /** + * Create an instance of {@link Alive } + * + */ + public Alive createAlive() { + return new Alive(); + } + + /** + * Create an instance of {@link AliveResponse } + * + */ + public AliveResponse createAliveResponse() { + return new AliveResponse(); + } + + /** + * Create an instance of {@link VehicleDetailByVin } + * + */ + public VehicleDetailByVin createVehicleDetailByVin() { + return new VehicleDetailByVin(); + } + + /** + * Create an instance of {@link VehicleDetailByVinResponse } + * + */ + public VehicleDetailByVinResponse createVehicleDetailByVinResponse() { + return new VehicleDetailByVinResponse(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WSHeaderType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.cebia.com/iva/service/", name = "WSHeaderType") + public JAXBElement createWSHeaderType(WSHeaderType value) { + return new JAXBElement(_WSHeaderType_QNAME, WSHeaderType.class, null, value); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/SearchCriteriaValues.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/SearchCriteriaValues.java new file mode 100644 index 0000000..9deed2b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/SearchCriteriaValues.java @@ -0,0 +1,139 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSSearchCriteriaAttributeEnum; +import cz.moneta.test.dsl.cebia.iva.WSVehicleType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="header" type="{http://schemas.cebia.com/iva/service/}WSHeaderType" minOccurs="0"/>
+ *         <element name="Criteria" type="{http://samo.cz/iva/}WSVehicleType" minOccurs="0"/>
+ *         <element name="SearchMode" type="{http://samo.cz/iva/}WSSearchCriteriaAttributeEnum" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "header", + "criteria", + "searchMode" +}) +@XmlRootElement(name = "SearchCriteriaValues") +public class SearchCriteriaValues { + + @XmlElement(nillable = true) + protected WSHeaderType header; + @XmlElement(name = "Criteria", nillable = true) + protected WSVehicleType criteria; + @XmlElement(name = "SearchMode") + @XmlSchemaType(name = "string") + protected WSSearchCriteriaAttributeEnum searchMode; + + /** + * Gets the value of the header property. + * + * @return + * possible object is + * {@link WSHeaderType } + * + */ + public WSHeaderType getHeader() { + return header; + } + + /** + * Sets the value of the header property. + * + * @param value + * allowed object is + * {@link WSHeaderType } + * + */ + public void setHeader(WSHeaderType value) { + this.header = value; + } + + /** + * Gets the value of the criteria property. + * + * @return + * possible object is + * {@link WSVehicleType } + * + */ + public WSVehicleType getCriteria() { + return criteria; + } + + /** + * Sets the value of the criteria property. + * + * @param value + * allowed object is + * {@link WSVehicleType } + * + */ + public void setCriteria(WSVehicleType value) { + this.criteria = value; + } + + /** + * Gets the value of the searchMode property. + * + * @return + * possible object is + * {@link WSSearchCriteriaAttributeEnum } + * + */ + public WSSearchCriteriaAttributeEnum getSearchMode() { + return searchMode; + } + + /** + * Sets the value of the searchMode property. + * + * @param value + * allowed object is + * {@link WSSearchCriteriaAttributeEnum } + * + */ + public void setSearchMode(WSSearchCriteriaAttributeEnum value) { + this.searchMode = value; + } + + public SearchCriteriaValues withHeader(WSHeaderType value) { + setHeader(value); + return this; + } + + public SearchCriteriaValues withCriteria(WSVehicleType value) { + setCriteria(value); + return this; + } + + public SearchCriteriaValues withSearchMode(WSSearchCriteriaAttributeEnum value) { + setSearchMode(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/SearchCriteriaValuesResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/SearchCriteriaValuesResponse.java new file mode 100644 index 0000000..dbcd122 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/SearchCriteriaValuesResponse.java @@ -0,0 +1,70 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSSearchCriteriaValuesResponse; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="SearchCriteriaValuesResult" type="{http://samo.cz/iva/}WSSearchCriteriaValuesResponse" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "searchCriteriaValuesResult" +}) +@XmlRootElement(name = "SearchCriteriaValuesResponse") +public class SearchCriteriaValuesResponse { + + @XmlElement(name = "SearchCriteriaValuesResult", nillable = true) + protected WSSearchCriteriaValuesResponse searchCriteriaValuesResult; + + /** + * Gets the value of the searchCriteriaValuesResult property. + * + * @return + * possible object is + * {@link WSSearchCriteriaValuesResponse } + * + */ + public WSSearchCriteriaValuesResponse getSearchCriteriaValuesResult() { + return searchCriteriaValuesResult; + } + + /** + * Sets the value of the searchCriteriaValuesResult property. + * + * @param value + * allowed object is + * {@link WSSearchCriteriaValuesResponse } + * + */ + public void setSearchCriteriaValuesResult(WSSearchCriteriaValuesResponse value) { + this.searchCriteriaValuesResult = value; + } + + public SearchCriteriaValuesResponse withSearchCriteriaValuesResult(WSSearchCriteriaValuesResponse value) { + setSearchCriteriaValuesResult(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail1.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail1.java new file mode 100644 index 0000000..634ede7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail1.java @@ -0,0 +1,103 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSInputDataType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="header" type="{http://schemas.cebia.com/iva/service/}WSHeaderType" minOccurs="0"/>
+ *         <element name="inputData" type="{http://samo.cz/iva/}WSInputDataType" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "header", + "inputData" +}) +@XmlRootElement(name = "VehicleDetail1") +public class VehicleDetail1 { + + @XmlElement(nillable = true) + protected WSHeaderType header; + @XmlElement(nillable = true) + protected WSInputDataType inputData; + + /** + * Gets the value of the header property. + * + * @return + * possible object is + * {@link WSHeaderType } + * + */ + public WSHeaderType getHeader() { + return header; + } + + /** + * Sets the value of the header property. + * + * @param value + * allowed object is + * {@link WSHeaderType } + * + */ + public void setHeader(WSHeaderType value) { + this.header = value; + } + + /** + * Gets the value of the inputData property. + * + * @return + * possible object is + * {@link WSInputDataType } + * + */ + public WSInputDataType getInputData() { + return inputData; + } + + /** + * Sets the value of the inputData property. + * + * @param value + * allowed object is + * {@link WSInputDataType } + * + */ + public void setInputData(WSInputDataType value) { + this.inputData = value; + } + + public VehicleDetail1 withHeader(WSHeaderType value) { + setHeader(value); + return this; + } + + public VehicleDetail1 withInputData(WSInputDataType value) { + setInputData(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail1Response.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail1Response.java new file mode 100644 index 0000000..522f761 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail1Response.java @@ -0,0 +1,70 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSDetailResponse; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VehicleDetail1Result" type="{http://samo.cz/iva/}WSDetailResponse" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "vehicleDetail1Result" +}) +@XmlRootElement(name = "VehicleDetail1Response") +public class VehicleDetail1Response { + + @XmlElement(name = "VehicleDetail1Result", nillable = true) + protected WSDetailResponse vehicleDetail1Result; + + /** + * Gets the value of the vehicleDetail1Result property. + * + * @return + * possible object is + * {@link WSDetailResponse } + * + */ + public WSDetailResponse getVehicleDetail1Result() { + return vehicleDetail1Result; + } + + /** + * Sets the value of the vehicleDetail1Result property. + * + * @param value + * allowed object is + * {@link WSDetailResponse } + * + */ + public void setVehicleDetail1Result(WSDetailResponse value) { + this.vehicleDetail1Result = value; + } + + public VehicleDetail1Response withVehicleDetail1Result(WSDetailResponse value) { + setVehicleDetail1Result(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail2.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail2.java new file mode 100644 index 0000000..d0cdcf7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail2.java @@ -0,0 +1,103 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSInputDataType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="header" type="{http://schemas.cebia.com/iva/service/}WSHeaderType" minOccurs="0"/>
+ *         <element name="inputData" type="{http://samo.cz/iva/}WSInputDataType" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "header", + "inputData" +}) +@XmlRootElement(name = "VehicleDetail2") +public class VehicleDetail2 { + + @XmlElement(nillable = true) + protected WSHeaderType header; + @XmlElement(nillable = true) + protected WSInputDataType inputData; + + /** + * Gets the value of the header property. + * + * @return + * possible object is + * {@link WSHeaderType } + * + */ + public WSHeaderType getHeader() { + return header; + } + + /** + * Sets the value of the header property. + * + * @param value + * allowed object is + * {@link WSHeaderType } + * + */ + public void setHeader(WSHeaderType value) { + this.header = value; + } + + /** + * Gets the value of the inputData property. + * + * @return + * possible object is + * {@link WSInputDataType } + * + */ + public WSInputDataType getInputData() { + return inputData; + } + + /** + * Sets the value of the inputData property. + * + * @param value + * allowed object is + * {@link WSInputDataType } + * + */ + public void setInputData(WSInputDataType value) { + this.inputData = value; + } + + public VehicleDetail2 withHeader(WSHeaderType value) { + setHeader(value); + return this; + } + + public VehicleDetail2 withInputData(WSInputDataType value) { + setInputData(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail2Response.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail2Response.java new file mode 100644 index 0000000..85550fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetail2Response.java @@ -0,0 +1,70 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSDetailResponse; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VehicleDetail2Result" type="{http://samo.cz/iva/}WSDetailResponse" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "vehicleDetail2Result" +}) +@XmlRootElement(name = "VehicleDetail2Response") +public class VehicleDetail2Response { + + @XmlElement(name = "VehicleDetail2Result", nillable = true) + protected WSDetailResponse vehicleDetail2Result; + + /** + * Gets the value of the vehicleDetail2Result property. + * + * @return + * possible object is + * {@link WSDetailResponse } + * + */ + public WSDetailResponse getVehicleDetail2Result() { + return vehicleDetail2Result; + } + + /** + * Sets the value of the vehicleDetail2Result property. + * + * @param value + * allowed object is + * {@link WSDetailResponse } + * + */ + public void setVehicleDetail2Result(WSDetailResponse value) { + this.vehicleDetail2Result = value; + } + + public VehicleDetail2Response withVehicleDetail2Result(WSDetailResponse value) { + setVehicleDetail2Result(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetailByVin.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetailByVin.java new file mode 100644 index 0000000..9546c4c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetailByVin.java @@ -0,0 +1,102 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="header" type="{http://schemas.cebia.com/iva/service/}WSHeaderType" minOccurs="0"/>
+ *         <element name="vin" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "header", + "vin" +}) +@XmlRootElement(name = "VehicleDetailByVin") +public class VehicleDetailByVin { + + @XmlElement(nillable = true) + protected WSHeaderType header; + @XmlElement(nillable = true) + protected String vin; + + /** + * Gets the value of the header property. + * + * @return + * possible object is + * {@link WSHeaderType } + * + */ + public WSHeaderType getHeader() { + return header; + } + + /** + * Sets the value of the header property. + * + * @param value + * allowed object is + * {@link WSHeaderType } + * + */ + public void setHeader(WSHeaderType value) { + this.header = value; + } + + /** + * Gets the value of the vin property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVin() { + return vin; + } + + /** + * Sets the value of the vin property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVin(String value) { + this.vin = value; + } + + public VehicleDetailByVin withHeader(WSHeaderType value) { + setHeader(value); + return this; + } + + public VehicleDetailByVin withVin(String value) { + setVin(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetailByVinResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetailByVinResponse.java new file mode 100644 index 0000000..7a0dee5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleDetailByVinResponse.java @@ -0,0 +1,70 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSDetailResponse; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VehicleDetailByVinResult" type="{http://samo.cz/iva/}WSDetailResponse" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "vehicleDetailByVinResult" +}) +@XmlRootElement(name = "VehicleDetailByVinResponse") +public class VehicleDetailByVinResponse { + + @XmlElement(name = "VehicleDetailByVinResult", nillable = true) + protected WSDetailResponse vehicleDetailByVinResult; + + /** + * Gets the value of the vehicleDetailByVinResult property. + * + * @return + * possible object is + * {@link WSDetailResponse } + * + */ + public WSDetailResponse getVehicleDetailByVinResult() { + return vehicleDetailByVinResult; + } + + /** + * Sets the value of the vehicleDetailByVinResult property. + * + * @param value + * allowed object is + * {@link WSDetailResponse } + * + */ + public void setVehicleDetailByVinResult(WSDetailResponse value) { + this.vehicleDetailByVinResult = value; + } + + public VehicleDetailByVinResponse withVehicleDetailByVinResult(WSDetailResponse value) { + setVehicleDetailByVinResult(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification1.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification1.java new file mode 100644 index 0000000..894727c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification1.java @@ -0,0 +1,103 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSVehicleType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="header" type="{http://schemas.cebia.com/iva/service/}WSHeaderType" minOccurs="0"/>
+ *         <element name="vehicle" type="{http://samo.cz/iva/}WSVehicleType" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "header", + "vehicle" +}) +@XmlRootElement(name = "VehicleIdentification1") +public class VehicleIdentification1 { + + @XmlElement(nillable = true) + protected WSHeaderType header; + @XmlElement(nillable = true) + protected WSVehicleType vehicle; + + /** + * Gets the value of the header property. + * + * @return + * possible object is + * {@link WSHeaderType } + * + */ + public WSHeaderType getHeader() { + return header; + } + + /** + * Sets the value of the header property. + * + * @param value + * allowed object is + * {@link WSHeaderType } + * + */ + public void setHeader(WSHeaderType value) { + this.header = value; + } + + /** + * Gets the value of the vehicle property. + * + * @return + * possible object is + * {@link WSVehicleType } + * + */ + public WSVehicleType getVehicle() { + return vehicle; + } + + /** + * Sets the value of the vehicle property. + * + * @param value + * allowed object is + * {@link WSVehicleType } + * + */ + public void setVehicle(WSVehicleType value) { + this.vehicle = value; + } + + public VehicleIdentification1 withHeader(WSHeaderType value) { + setHeader(value); + return this; + } + + public VehicleIdentification1 withVehicle(WSVehicleType value) { + setVehicle(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification1Response.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification1Response.java new file mode 100644 index 0000000..7815699 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification1Response.java @@ -0,0 +1,70 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSIdentificationResponse; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VehicleIdentification1Result" type="{http://samo.cz/iva/}WSIdentificationResponse" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "vehicleIdentification1Result" +}) +@XmlRootElement(name = "VehicleIdentification1Response") +public class VehicleIdentification1Response { + + @XmlElement(name = "VehicleIdentification1Result", nillable = true) + protected WSIdentificationResponse vehicleIdentification1Result; + + /** + * Gets the value of the vehicleIdentification1Result property. + * + * @return + * possible object is + * {@link WSIdentificationResponse } + * + */ + public WSIdentificationResponse getVehicleIdentification1Result() { + return vehicleIdentification1Result; + } + + /** + * Sets the value of the vehicleIdentification1Result property. + * + * @param value + * allowed object is + * {@link WSIdentificationResponse } + * + */ + public void setVehicleIdentification1Result(WSIdentificationResponse value) { + this.vehicleIdentification1Result = value; + } + + public VehicleIdentification1Response withVehicleIdentification1Result(WSIdentificationResponse value) { + setVehicleIdentification1Result(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification2.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification2.java new file mode 100644 index 0000000..759d2a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification2.java @@ -0,0 +1,137 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSSearchCriteriaTolerance; +import cz.moneta.test.dsl.cebia.iva.WSVehicleType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="header" type="{http://schemas.cebia.com/iva/service/}WSHeaderType" minOccurs="0"/>
+ *         <element name="vehicle" type="{http://samo.cz/iva/}WSVehicleType" minOccurs="0"/>
+ *         <element name="tolerance" type="{http://samo.cz/iva/}WSSearchCriteriaTolerance" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "header", + "vehicle", + "tolerance" +}) +@XmlRootElement(name = "VehicleIdentification2") +public class VehicleIdentification2 { + + @XmlElement(nillable = true) + protected WSHeaderType header; + @XmlElement(nillable = true) + protected WSVehicleType vehicle; + @XmlElement(nillable = true) + protected WSSearchCriteriaTolerance tolerance; + + /** + * Gets the value of the header property. + * + * @return + * possible object is + * {@link WSHeaderType } + * + */ + public WSHeaderType getHeader() { + return header; + } + + /** + * Sets the value of the header property. + * + * @param value + * allowed object is + * {@link WSHeaderType } + * + */ + public void setHeader(WSHeaderType value) { + this.header = value; + } + + /** + * Gets the value of the vehicle property. + * + * @return + * possible object is + * {@link WSVehicleType } + * + */ + public WSVehicleType getVehicle() { + return vehicle; + } + + /** + * Sets the value of the vehicle property. + * + * @param value + * allowed object is + * {@link WSVehicleType } + * + */ + public void setVehicle(WSVehicleType value) { + this.vehicle = value; + } + + /** + * Gets the value of the tolerance property. + * + * @return + * possible object is + * {@link WSSearchCriteriaTolerance } + * + */ + public WSSearchCriteriaTolerance getTolerance() { + return tolerance; + } + + /** + * Sets the value of the tolerance property. + * + * @param value + * allowed object is + * {@link WSSearchCriteriaTolerance } + * + */ + public void setTolerance(WSSearchCriteriaTolerance value) { + this.tolerance = value; + } + + public VehicleIdentification2 withHeader(WSHeaderType value) { + setHeader(value); + return this; + } + + public VehicleIdentification2 withVehicle(WSVehicleType value) { + setVehicle(value); + return this; + } + + public VehicleIdentification2 withTolerance(WSSearchCriteriaTolerance value) { + setTolerance(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification2Response.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification2Response.java new file mode 100644 index 0000000..455dbc4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification2Response.java @@ -0,0 +1,70 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSIdentificationResponse; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VehicleIdentification2Result" type="{http://samo.cz/iva/}WSIdentificationResponse" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "vehicleIdentification2Result" +}) +@XmlRootElement(name = "VehicleIdentification2Response") +public class VehicleIdentification2Response { + + @XmlElement(name = "VehicleIdentification2Result", nillable = true) + protected WSIdentificationResponse vehicleIdentification2Result; + + /** + * Gets the value of the vehicleIdentification2Result property. + * + * @return + * possible object is + * {@link WSIdentificationResponse } + * + */ + public WSIdentificationResponse getVehicleIdentification2Result() { + return vehicleIdentification2Result; + } + + /** + * Sets the value of the vehicleIdentification2Result property. + * + * @param value + * allowed object is + * {@link WSIdentificationResponse } + * + */ + public void setVehicleIdentification2Result(WSIdentificationResponse value) { + this.vehicleIdentification2Result = value; + } + + public VehicleIdentification2Response withVehicleIdentification2Result(WSIdentificationResponse value) { + setVehicleIdentification2Result(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification3.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification3.java new file mode 100644 index 0000000..6f5bd50 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification3.java @@ -0,0 +1,135 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="header" type="{http://schemas.cebia.com/iva/service/}WSHeaderType" minOccurs="0"/>
+ *         <element name="VIN" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="RegPlate" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "header", + "vin", + "regPlate" +}) +@XmlRootElement(name = "VehicleIdentification3") +public class VehicleIdentification3 { + + @XmlElement(nillable = true) + protected WSHeaderType header; + @XmlElement(name = "VIN", nillable = true) + protected String vin; + @XmlElement(name = "RegPlate", nillable = true) + protected String regPlate; + + /** + * Gets the value of the header property. + * + * @return + * possible object is + * {@link WSHeaderType } + * + */ + public WSHeaderType getHeader() { + return header; + } + + /** + * Sets the value of the header property. + * + * @param value + * allowed object is + * {@link WSHeaderType } + * + */ + public void setHeader(WSHeaderType value) { + this.header = value; + } + + /** + * Gets the value of the vin property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIN() { + return vin; + } + + /** + * Sets the value of the vin property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIN(String value) { + this.vin = value; + } + + /** + * Gets the value of the regPlate property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRegPlate() { + return regPlate; + } + + /** + * Sets the value of the regPlate property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRegPlate(String value) { + this.regPlate = value; + } + + public VehicleIdentification3 withHeader(WSHeaderType value) { + setHeader(value); + return this; + } + + public VehicleIdentification3 withVIN(String value) { + setVIN(value); + return this; + } + + public VehicleIdentification3 withRegPlate(String value) { + setRegPlate(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification3Response.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification3Response.java new file mode 100644 index 0000000..db86513 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleIdentification3Response.java @@ -0,0 +1,70 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSIdentification3Response; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VehicleIdentification3Result" type="{http://samo.cz/iva/}WSIdentification3Response" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "vehicleIdentification3Result" +}) +@XmlRootElement(name = "VehicleIdentification3Response") +public class VehicleIdentification3Response { + + @XmlElement(name = "VehicleIdentification3Result", nillable = true) + protected WSIdentification3Response vehicleIdentification3Result; + + /** + * Gets the value of the vehicleIdentification3Result property. + * + * @return + * possible object is + * {@link WSIdentification3Response } + * + */ + public WSIdentification3Response getVehicleIdentification3Result() { + return vehicleIdentification3Result; + } + + /** + * Sets the value of the vehicleIdentification3Result property. + * + * @param value + * allowed object is + * {@link WSIdentification3Response } + * + */ + public void setVehicleIdentification3Result(WSIdentification3Response value) { + this.vehicleIdentification3Result = value; + } + + public VehicleIdentification3Response withVehicleIdentification3Result(WSIdentification3Response value) { + setVehicleIdentification3Result(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuation.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuation.java new file mode 100644 index 0000000..1ffc829 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuation.java @@ -0,0 +1,103 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSValuationRequest; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="header" type="{http://schemas.cebia.com/iva/service/}WSHeaderType" minOccurs="0"/>
+ *         <element name="inputData" type="{http://samo.cz/iva/}WSValuationRequest" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "header", + "inputData" +}) +@XmlRootElement(name = "VehicleValuation") +public class VehicleValuation { + + @XmlElement(nillable = true) + protected WSHeaderType header; + @XmlElement(nillable = true) + protected WSValuationRequest inputData; + + /** + * Gets the value of the header property. + * + * @return + * possible object is + * {@link WSHeaderType } + * + */ + public WSHeaderType getHeader() { + return header; + } + + /** + * Sets the value of the header property. + * + * @param value + * allowed object is + * {@link WSHeaderType } + * + */ + public void setHeader(WSHeaderType value) { + this.header = value; + } + + /** + * Gets the value of the inputData property. + * + * @return + * possible object is + * {@link WSValuationRequest } + * + */ + public WSValuationRequest getInputData() { + return inputData; + } + + /** + * Sets the value of the inputData property. + * + * @param value + * allowed object is + * {@link WSValuationRequest } + * + */ + public void setInputData(WSValuationRequest value) { + this.inputData = value; + } + + public VehicleValuation withHeader(WSHeaderType value) { + setHeader(value); + return this; + } + + public VehicleValuation withInputData(WSValuationRequest value) { + setInputData(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuation2.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuation2.java new file mode 100644 index 0000000..11cce6c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuation2.java @@ -0,0 +1,103 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSValuation2Request; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="header" type="{http://schemas.cebia.com/iva/service/}WSHeaderType" minOccurs="0"/>
+ *         <element name="inputData" type="{http://samo.cz/iva/}WSValuation2Request" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "header", + "inputData" +}) +@XmlRootElement(name = "VehicleValuation2") +public class VehicleValuation2 { + + @XmlElement(nillable = true) + protected WSHeaderType header; + @XmlElement(nillable = true) + protected WSValuation2Request inputData; + + /** + * Gets the value of the header property. + * + * @return + * possible object is + * {@link WSHeaderType } + * + */ + public WSHeaderType getHeader() { + return header; + } + + /** + * Sets the value of the header property. + * + * @param value + * allowed object is + * {@link WSHeaderType } + * + */ + public void setHeader(WSHeaderType value) { + this.header = value; + } + + /** + * Gets the value of the inputData property. + * + * @return + * possible object is + * {@link WSValuation2Request } + * + */ + public WSValuation2Request getInputData() { + return inputData; + } + + /** + * Sets the value of the inputData property. + * + * @param value + * allowed object is + * {@link WSValuation2Request } + * + */ + public void setInputData(WSValuation2Request value) { + this.inputData = value; + } + + public VehicleValuation2 withHeader(WSHeaderType value) { + setHeader(value); + return this; + } + + public VehicleValuation2 withInputData(WSValuation2Request value) { + setInputData(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuation2Response.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuation2Response.java new file mode 100644 index 0000000..ba94930 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuation2Response.java @@ -0,0 +1,70 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSValuation2Response; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VehicleValuation2Result" type="{http://samo.cz/iva/}WSValuation2Response" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "vehicleValuation2Result" +}) +@XmlRootElement(name = "VehicleValuation2Response") +public class VehicleValuation2Response { + + @XmlElement(name = "VehicleValuation2Result", nillable = true) + protected WSValuation2Response vehicleValuation2Result; + + /** + * Gets the value of the vehicleValuation2Result property. + * + * @return + * possible object is + * {@link WSValuation2Response } + * + */ + public WSValuation2Response getVehicleValuation2Result() { + return vehicleValuation2Result; + } + + /** + * Sets the value of the vehicleValuation2Result property. + * + * @param value + * allowed object is + * {@link WSValuation2Response } + * + */ + public void setVehicleValuation2Result(WSValuation2Response value) { + this.vehicleValuation2Result = value; + } + + public VehicleValuation2Response withVehicleValuation2Result(WSValuation2Response value) { + setVehicleValuation2Result(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuationResponse.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuationResponse.java new file mode 100644 index 0000000..6281827 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/VehicleValuationResponse.java @@ -0,0 +1,70 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import cz.moneta.test.dsl.cebia.iva.WSValuationResponse; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="VehicleValuationResult" type="{http://samo.cz/iva/}WSValuationResponse" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "vehicleValuationResult" +}) +@XmlRootElement(name = "VehicleValuationResponse") +public class VehicleValuationResponse { + + @XmlElement(name = "VehicleValuationResult", nillable = true) + protected WSValuationResponse vehicleValuationResult; + + /** + * Gets the value of the vehicleValuationResult property. + * + * @return + * possible object is + * {@link WSValuationResponse } + * + */ + public WSValuationResponse getVehicleValuationResult() { + return vehicleValuationResult; + } + + /** + * Sets the value of the vehicleValuationResult property. + * + * @param value + * allowed object is + * {@link WSValuationResponse } + * + */ + public void setVehicleValuationResult(WSValuationResponse value) { + this.vehicleValuationResult = value; + } + + public VehicleValuationResponse withVehicleValuationResult(WSValuationResponse value) { + setVehicleValuationResult(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/WSHeaderType.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/WSHeaderType.java new file mode 100644 index 0000000..20a9b8b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/WSHeaderType.java @@ -0,0 +1,133 @@ + +package cz.moneta.test.dsl.cebia.schemas.iva.service; + +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for WSHeaderType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="WSHeaderType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="License" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="UserName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="UserPassword" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WSHeaderType", propOrder = { + "license", + "userName", + "userPassword" +}) +public class WSHeaderType { + + @XmlElement(name = "License", nillable = true) + protected String license; + @XmlElement(name = "UserName", nillable = true) + protected String userName; + @XmlElement(name = "UserPassword", nillable = true) + protected String userPassword; + + /** + * Gets the value of the license property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getLicense() { + return license; + } + + /** + * Sets the value of the license property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLicense(String value) { + this.license = value; + } + + /** + * Gets the value of the userName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUserName() { + return userName; + } + + /** + * Sets the value of the userName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUserName(String value) { + this.userName = value; + } + + /** + * Gets the value of the userPassword property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUserPassword() { + return userPassword; + } + + /** + * Sets the value of the userPassword property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUserPassword(String value) { + this.userPassword = value; + } + + public WSHeaderType withLicense(String value) { + setLicense(value); + return this; + } + + public WSHeaderType withUserName(String value) { + setUserName(value); + return this; + } + + public WSHeaderType withUserPassword(String value) { + setUserPassword(value); + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/package-info.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/package-info.java new file mode 100644 index 0000000..fa830dd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/schemas/iva/service/package-info.java @@ -0,0 +1,2 @@ +@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://schemas.cebia.com/iva/service/", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED) +package cz.moneta.test.dsl.cebia.schemas.iva.service; diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/ObjectFactory.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/ObjectFactory.java new file mode 100644 index 0000000..6342bbe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/ObjectFactory.java @@ -0,0 +1,249 @@ + +package cz.moneta.test.dsl.cebia.serialization; + +import java.math.BigDecimal; +import java.math.BigInteger; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlElementDecl; +import jakarta.xml.bind.annotation.XmlRegistry; +import javax.xml.datatype.Duration; +import javax.xml.datatype.XMLGregorianCalendar; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the cz.moneta.test.dsl.cebia.serialization package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _AnyType_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "anyType"); + private final static QName _AnyURI_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "anyURI"); + private final static QName _Base64Binary_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "base64Binary"); + private final static QName _Boolean_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "boolean"); + private final static QName _Byte_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "byte"); + private final static QName _DateTime_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "dateTime"); + private final static QName _Decimal_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "decimal"); + private final static QName _Double_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "double"); + private final static QName _Float_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "float"); + private final static QName _Int_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "int"); + private final static QName _Long_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "long"); + private final static QName _QName_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "QName"); + private final static QName _Short_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "short"); + private final static QName _String_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "string"); + private final static QName _UnsignedByte_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "unsignedByte"); + private final static QName _UnsignedInt_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "unsignedInt"); + private final static QName _UnsignedLong_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "unsignedLong"); + private final static QName _UnsignedShort_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "unsignedShort"); + private final static QName _Char_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "char"); + private final static QName _Duration_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "duration"); + private final static QName _Guid_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/", "guid"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: cz.moneta.test.dsl.cebia.serialization + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Object }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "anyType") + public JAXBElement createAnyType(Object value) { + return new JAXBElement(_AnyType_QNAME, Object.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "anyURI") + public JAXBElement createAnyURI(String value) { + return new JAXBElement(_AnyURI_QNAME, String.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "base64Binary") + public JAXBElement createBase64Binary(byte[] value) { + return new JAXBElement(_Base64Binary_QNAME, byte[].class, null, ((byte[]) value)); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Boolean }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "boolean") + public JAXBElement createBoolean(Boolean value) { + return new JAXBElement(_Boolean_QNAME, Boolean.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Byte }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "byte") + public JAXBElement createByte(Byte value) { + return new JAXBElement(_Byte_QNAME, Byte.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link XMLGregorianCalendar }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "dateTime") + public JAXBElement createDateTime(XMLGregorianCalendar value) { + return new JAXBElement(_DateTime_QNAME, XMLGregorianCalendar.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link BigDecimal }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "decimal") + public JAXBElement createDecimal(BigDecimal value) { + return new JAXBElement(_Decimal_QNAME, BigDecimal.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Double }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "double") + public JAXBElement createDouble(Double value) { + return new JAXBElement(_Double_QNAME, Double.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Float }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "float") + public JAXBElement createFloat(Float value) { + return new JAXBElement(_Float_QNAME, Float.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Integer }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "int") + public JAXBElement createInt(Integer value) { + return new JAXBElement(_Int_QNAME, Integer.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Long }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "long") + public JAXBElement createLong(Long value) { + return new JAXBElement(_Long_QNAME, Long.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link QName }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "QName") + public JAXBElement createQName(QName value) { + return new JAXBElement(_QName_QNAME, QName.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Short }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "short") + public JAXBElement createShort(Short value) { + return new JAXBElement(_Short_QNAME, Short.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "string") + public JAXBElement createString(String value) { + return new JAXBElement(_String_QNAME, String.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Short }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "unsignedByte") + public JAXBElement createUnsignedByte(Short value) { + return new JAXBElement(_UnsignedByte_QNAME, Short.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Long }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "unsignedInt") + public JAXBElement createUnsignedInt(Long value) { + return new JAXBElement(_UnsignedInt_QNAME, Long.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link BigInteger }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "unsignedLong") + public JAXBElement createUnsignedLong(BigInteger value) { + return new JAXBElement(_UnsignedLong_QNAME, BigInteger.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Integer }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "unsignedShort") + public JAXBElement createUnsignedShort(Integer value) { + return new JAXBElement(_UnsignedShort_QNAME, Integer.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Integer }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "char") + public JAXBElement createChar(Integer value) { + return new JAXBElement(_Char_QNAME, Integer.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Duration }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "duration") + public JAXBElement createDuration(Duration value) { + return new JAXBElement(_Duration_QNAME, Duration.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/", name = "guid") + public JAXBElement createGuid(String value) { + return new JAXBElement(_Guid_QNAME, String.class, null, value); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ArrayOfdecimal.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ArrayOfdecimal.java new file mode 100644 index 0000000..7f4e150 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ArrayOfdecimal.java @@ -0,0 +1,85 @@ + +package cz.moneta.test.dsl.cebia.serialization.arrays; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for ArrayOfdecimal complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="ArrayOfdecimal">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="decimal" type="{http://www.w3.org/2001/XMLSchema}decimal" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ArrayOfdecimal", propOrder = { + "decimal" +}) +public class ArrayOfdecimal { + + protected List decimal; + + /** + * Gets the value of the decimal property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the decimal property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getDecimal().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link BigDecimal } + * + * + */ + public List getDecimal() { + if (decimal == null) { + decimal = new ArrayList(); + } + return this.decimal; + } + + public ArrayOfdecimal withDecimal(BigDecimal... values) { + if (values!= null) { + for (BigDecimal value: values) { + getDecimal().add(value); + } + } + return this; + } + + public ArrayOfdecimal withDecimal(Collection values) { + if (values!= null) { + getDecimal().addAll(values); + } + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ArrayOfint.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ArrayOfint.java new file mode 100644 index 0000000..fed6517 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ArrayOfint.java @@ -0,0 +1,86 @@ + +package cz.moneta.test.dsl.cebia.serialization.arrays; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for ArrayOfint complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="ArrayOfint">
+ *   <complexContent>
+ *     <restriction base="{...}anyType">
+ *       <sequence>
+ *         <element name="int" type="{...}int" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ArrayOfint", propOrder = { + "_int" +}) +public class ArrayOfint { + + @XmlElement(name = "int", type = Integer.class) + protected List _int; + + /** + * Gets the value of the int property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the int property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getInt().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link Integer } + * + * + */ + public List getInt() { + if (_int == null) { + _int = new ArrayList(); + } + return this._int; + } + + public ArrayOfint withInt(Integer... values) { + if (values!= null) { + for (Integer value: values) { + getInt().add(value); + } + } + return this; + } + + public ArrayOfint withInt(Collection values) { + if (values!= null) { + getInt().addAll(values); + } + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ArrayOfstring.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ArrayOfstring.java new file mode 100644 index 0000000..8a9b2de --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ArrayOfstring.java @@ -0,0 +1,86 @@ + +package cz.moneta.test.dsl.cebia.serialization.arrays; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for ArrayOfstring complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="ArrayOfstring">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="string" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ArrayOfstring", propOrder = { + "string" +}) +public class ArrayOfstring { + + @XmlElement(nillable = true) + protected List string; + + /** + * Gets the value of the string property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the string property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getString().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getString() { + if (string == null) { + string = new ArrayList(); + } + return this.string; + } + + public ArrayOfstring withString(String... values) { + if (values!= null) { + for (String value: values) { + getString().add(value); + } + } + return this; + } + + public ArrayOfstring withString(Collection values) { + if (values!= null) { + getString().addAll(values); + } + return this; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ObjectFactory.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ObjectFactory.java new file mode 100644 index 0000000..6e6737c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/ObjectFactory.java @@ -0,0 +1,89 @@ + +package cz.moneta.test.dsl.cebia.serialization.arrays; + +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlElementDecl; +import jakarta.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the cz.moneta.test.dsl.cebia.serialization.arrays package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _ArrayOfstring_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/Arrays", "ArrayOfstring"); + private final static QName _ArrayOfint_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/Arrays", "ArrayOfint"); + private final static QName _ArrayOfdecimal_QNAME = new QName("http://schemas.microsoft.com/2003/10/Serialization/Arrays", "ArrayOfdecimal"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: cz.moneta.test.dsl.cebia.serialization.arrays + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link ArrayOfstring } + * + */ + public ArrayOfstring createArrayOfstring() { + return new ArrayOfstring(); + } + + /** + * Create an instance of {@link ArrayOfint } + * + */ + public ArrayOfint createArrayOfint() { + return new ArrayOfint(); + } + + /** + * Create an instance of {@link ArrayOfdecimal } + * + */ + public ArrayOfdecimal createArrayOfdecimal() { + return new ArrayOfdecimal(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfstring }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/Arrays", name = "ArrayOfstring") + public JAXBElement createArrayOfstring(ArrayOfstring value) { + return new JAXBElement(_ArrayOfstring_QNAME, ArrayOfstring.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfint }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/Arrays", name = "ArrayOfint") + public JAXBElement createArrayOfint(ArrayOfint value) { + return new JAXBElement(_ArrayOfint_QNAME, ArrayOfint.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ArrayOfdecimal }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://schemas.microsoft.com/2003/10/Serialization/Arrays", name = "ArrayOfdecimal") + public JAXBElement createArrayOfdecimal(ArrayOfdecimal value) { + return new JAXBElement(_ArrayOfdecimal_QNAME, ArrayOfdecimal.class, null, value); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/package-info.java b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/package-info.java new file mode 100644 index 0000000..9f008ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/cebia/serialization/arrays/package-info.java @@ -0,0 +1,2 @@ +@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://schemas.microsoft.com/2003/10/Serialization/Arrays", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED) +package cz.moneta.test.dsl.cebia.serialization.arrays; diff --git a/tests/src/main/java/cz/moneta/test/dsl/demo/SpiritRef.java b/tests/src/main/java/cz/moneta/test/dsl/demo/SpiritRef.java new file mode 100644 index 0000000..bd7a160 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/demo/SpiritRef.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.demo; + +public class SpiritRef { + + private String name; + + public SpiritRef(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/demo/SpiritVerifier.java b/tests/src/main/java/cz/moneta/test/dsl/demo/SpiritVerifier.java new file mode 100644 index 0000000..d1ffc4b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/demo/SpiritVerifier.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.demo; + +import cz.moneta.test.harness.endpoints.demo.DemoEndpoint; + +import static org.junit.jupiter.api.Assertions.*; + +public class SpiritVerifier { + + private DemoEndpoint demoEndpoint; + + public SpiritVerifier(DemoEndpoint demoEndpoint) { + this.demoEndpoint = demoEndpoint; + } + + public SpiritVerifier thatWeAreInPresenceOf(SpiritRef ref) { + assertTrue(demoEndpoint.spiritPresent(ref.getName()), + String.format("We have lost contact with the spirit of %s", ref.getName())); + return this; + } + + public SpiritVerifier thatThereIsNoSignOf(String name) { + assertFalse(demoEndpoint.spiritPresent(new SpiritRef(name).getName()), + String.format("Danger! We are being haunted by the spirit of %s", name)); + return this; + } + + public SpiritVerifier thatThereIsNoSignOf(SpiritRef ref) { + return thatThereIsNoSignOf(ref.getName()); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/demo/Spirits.java b/tests/src/main/java/cz/moneta/test/dsl/demo/Spirits.java new file mode 100644 index 0000000..5cf2a89 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/demo/Spirits.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.demo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.demo.DemoEndpoint; + +public class Spirits { + + private final Harness harness; + + public Spirits(Harness harness) { + this.harness = harness; + } + + public SpiritRef summonSpirit(String name) { + harness.getEndpoint(DemoEndpoint.class).summonSpirit(name); + return new SpiritRef(name); + } + + public Spirits expel(SpiritRef ref) { + harness.getEndpoint(DemoEndpoint.class).expelSpirit(ref.getName()); + return this; + } + + public SpiritVerifier verify() { + return new SpiritVerifier(harness.getEndpoint(DemoEndpoint.class)); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/demo/web/DemoTestPage.java b/tests/src/main/java/cz/moneta/test/dsl/demo/web/DemoTestPage.java new file mode 100644 index 0000000..95918a9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/demo/web/DemoTestPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.demo.web; + +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.demo.web.DemoTestPage.PAGE_LABEL_H1_XPATH; +import static cz.moneta.test.dsl.demo.web.DemoTestPage.LOADER_DIV; + +@Wait(value = LOADER_DIV, waitSecondsForElement = 60, until = Until.GONE) +@Wait(value = PAGE_LABEL_H1_XPATH, waitSecondsForElement = 60) +public interface DemoTestPage extends WebFlow { + + String LOADER_DIV = "//div[contains(@class, 'moneta-spinner__logo')]"; + String PAGE_LABEL_H1_XPATH = "//h1[text()='MONETA Auto']"; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/demo/web/DemoWebChrome.java b/tests/src/main/java/cz/moneta/test/dsl/demo/web/DemoWebChrome.java new file mode 100644 index 0000000..990234e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/demo/web/DemoWebChrome.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.demo.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.demo.DemoChromeWebEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class DemoWebChrome { + + private final Harness harness; + + public DemoWebChrome(Harness harness) { + this.harness = harness; + } + + public DemoTestPage openTestPage() { + DemoChromeWebEndpoint demoChromeWebEndpoint = harness.getEndpoint(DemoChromeWebEndpoint.class); + demoChromeWebEndpoint.openApplication(); + return Builders.newWebFlowBuilder(DemoTestPage.class, demoChromeWebEndpoint, harness); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/demo/web/DemoWebEdge.java b/tests/src/main/java/cz/moneta/test/dsl/demo/web/DemoWebEdge.java new file mode 100644 index 0000000..ebb9b53 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/demo/web/DemoWebEdge.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.demo.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.demo.DemoEdgeWebEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class DemoWebEdge { + + private final Harness harness; + + public DemoWebEdge(Harness harness) { + this.harness = harness; + } + + public DemoTestPage openTestPage() { + DemoEdgeWebEndpoint demoEdgeWebEndpoint = harness.getEndpoint(DemoEdgeWebEndpoint.class); + demoEdgeWebEndpoint.openApplication(); + return Builders.newWebFlowBuilder(DemoTestPage.class, demoEdgeWebEndpoint, harness); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/dmbsib/ConfirmPaymentOrderPage.java b/tests/src/main/java/cz/moneta/test/dsl/dmbsib/ConfirmPaymentOrderPage.java new file mode 100644 index 0000000..f3e162a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/dmbsib/ConfirmPaymentOrderPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.dmbsib; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Page; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.dmbsib.ConfirmPaymentOrderPage.REQUESTED_DATE_SPAN; + +@Wait(REQUESTED_DATE_SPAN) +public interface ConfirmPaymentOrderPage extends WebFlow, StoreAccessor { + String SEND_MOBILE_KEY_BUTTON = "//button//span[contains(text(), 'Odeslat mobilní klíč')]"; + String VERIFY_MOBILE_KEY = "//button//span[contains(text(), 'Ověřit mobilní klíč')]"; + String MOBILE_KEY_INPUT = "//input[@name='smsKey']"; + String REQUESTED_DATE_SPAN = "//span[contains(text(), 'Datum splatnosti')]"; + + @Click(value = SEND_MOBILE_KEY_BUTTON, andWait = @Wait(value = VERIFY_MOBILE_KEY, until = Until.VISIBLE)) + ConfirmPaymentOrderPage clickSendMobileKey(); + + @TypeInto(MOBILE_KEY_INPUT) + ConfirmPaymentOrderPage fillMobileKey(String mobileKey); + + @Click(VERIFY_MOBILE_KEY) + @Page(ThirdPartyApplicationPageWithStatusCode.class) + ThirdPartyApplicationPageWithStatusCode verifyMobileKeyAndContinueToSuccessPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/dmbsib/DmbsIb.java b/tests/src/main/java/cz/moneta/test/dsl/dmbsib/DmbsIb.java new file mode 100644 index 0000000..e594718 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/dmbsib/DmbsIb.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.dmbsib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.dmbsib.DmbsIbEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class DmbsIb { + + private final Harness harness; + + public DmbsIb(Harness harness) { + this.harness = harness; + } + + public DmbsIbWebTransitions onDmbsIbTransitions() { + harness.getEndpoint(DmbsIbEndpoint.class).openApplication(); + return Builders.newWebFlowBuilder(DmbsIbWebTransitions.class, harness.getEndpoint(DmbsIbEndpoint.class), harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/dmbsib/DmbsIbWebTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/dmbsib/DmbsIbWebTransitions.java new file mode 100644 index 0000000..20bc090 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/dmbsib/DmbsIbWebTransitions.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.dmbsib; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.dmbsib.DmbsIbEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Page; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface DmbsIbWebTransitions extends WebFlow, StoreAccessor { + String CONFIRM_PAYMENT_ORDER_GENERAL_PATH = "oauth2/#/payment?payment_id={transactionIdentification}&return_url=http%3A%2F%2Fdmbs.internetbanka.cz"; + + @CustomAction + @Page(LoginPage.class) + default LoginPage openLoginPage(String transactionIdentification) { + DmbsIbEndpoint endpoint = getEndpoint(DmbsIbEndpoint.class); + endpoint.changePath(CONFIRM_PAYMENT_ORDER_GENERAL_PATH.replace("{transactionIdentification}", transactionIdentification)); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/dmbsib/LoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/dmbsib/LoginPage.java new file mode 100644 index 0000000..dc3b18e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/dmbsib/LoginPage.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.dmbsib; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Page; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.dmbsib.LoginPage.MONETA_LOGO_XPATH; + +@Wait(MONETA_LOGO_XPATH) +public interface LoginPage extends WebFlow, StoreAccessor { + + String MONETA_LOGO_XPATH = "//img[@alt='MONETA logo']"; + String LOGIN_INPUT = "//input[@name='id']"; + String PASSWORD_INPUT = "//input[@name='password']"; + String SEND_MOBILE_KEY_BUTTON = "//button//span[contains(text(), 'Odeslat mobilní klíč')]"; + String VERIFY_MOBILE_KEY = "//button//span[contains(text(), 'Ověřit mobilní klíč')]"; + String MOBILE_KEY_INPUT = "//input[@name='smsKey']"; + + @TypeInto(LOGIN_INPUT) + LoginPage fillLogin(String login); + + @TypeInto(PASSWORD_INPUT) + LoginPage fillPassword(String password); + + @Click(value = SEND_MOBILE_KEY_BUTTON, andWait = @Wait(value = VERIFY_MOBILE_KEY, until = Until.VISIBLE)) + LoginPage clickSendMobileKey(); + + @TypeInto(MOBILE_KEY_INPUT) + LoginPage fillMobileKey(String mobileKey); + + @Click(VERIFY_MOBILE_KEY) + @Page(ConfirmPaymentOrderPage.class) + ConfirmPaymentOrderPage clickVerifyMobileKeyAndContinueToSubmitOrder(); + + @Page(ConfirmPaymentOrderPage.class) + ConfirmPaymentOrderPage continueToSubmitOrder(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/dmbsib/ThirdPartyApplicationPageWithStatusCode.java b/tests/src/main/java/cz/moneta/test/dsl/dmbsib/ThirdPartyApplicationPageWithStatusCode.java new file mode 100644 index 0000000..0d46b28 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/dmbsib/ThirdPartyApplicationPageWithStatusCode.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.dmbsib; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.dmbsib.DmbsIbEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.dmbsib.ThirdPartyApplicationPageWithStatusCode.BODY_TAG; + +@Wait(value = BODY_TAG) +public interface ThirdPartyApplicationPageWithStatusCode extends WebFlow, StoreAccessor { + + String BODY_TAG = "//body[contains(.,'gemwebdevx')]"; + String STATUS_CODE_STORE = "STATUS_CODE"; + + @CustomAction + default ThirdPartyApplicationPageWithStatusCode getAuthTokenAndStoreIt() { + DmbsIbEndpoint endpoint = getEndpoint(DmbsIbEndpoint.class); + String token = endpoint.getCurrentUrl().split("response_code=")[1]; + log("Status code is: {}", token); + store(STATUS_CODE_STORE, token); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/earchiv/StatementsPage.java b/tests/src/main/java/cz/moneta/test/dsl/earchiv/StatementsPage.java new file mode 100644 index 0000000..1b85b75 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/earchiv/StatementsPage.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.earchiv; + +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.earchiv.StatementsPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface StatementsPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//h1[contains(text(), 'Výpisy')]"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/elastic/ElasticApiBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/elastic/ElasticApiBuilder.java new file mode 100644 index 0000000..60f2ab7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/elastic/ElasticApiBuilder.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.elastic; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.elastic.ElasticReadEndpoint; +import cz.moneta.test.harness.endpoints.elastic.ElasticWriteEndpoint; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +public class ElasticApiBuilder { + private final Harness harness; + + public ElasticApiBuilder(Harness harness) { + this.harness = harness; + } + + public RawRestRequest.Path prepareReadRequest() { + return RawRestRequest.jsonBuilder(harness.getEndpoint(ElasticReadEndpoint.class)); + } + + public RawRestRequest.Path prepareWriteRequest() { + return RawRestRequest.jsonBuilder(harness.getEndpoint(ElasticWriteEndpoint.class)); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/elastic/tasks/ElasticApiTasks.java b/tests/src/main/java/cz/moneta/test/dsl/elastic/tasks/ElasticApiTasks.java new file mode 100644 index 0000000..e69855b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/elastic/tasks/ElasticApiTasks.java @@ -0,0 +1,87 @@ +package cz.moneta.test.dsl.elastic.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; + +public class ElasticApiTasks { + private final Harness harness; + + private static final Logger logger = LogManager.getLogger(ElasticApiTasks.class); + + public ElasticApiTasks(Harness harness) { + this.harness = harness; + } + + // Use with basic auth header "Authorization: Basic ") + public String getAuthorizationToken() { + Credentials cred = AuthSupport.getCredentials(Keys.elastic.sfindexuser, harness); + return TestUtils.encodeBase64(cred.getUsername() + ":" + cred.getPassword()); + } + + public RawRestRequest.Response search(String index, String token, String jsonBody) { + return harness.withElasticApi() + .prepareReadRequest() + .withPath(index + "/_search") + .withHeader("Authorization", "Basic " + token) + .withPayload(jsonBody) + .post() + .andAssertStatus(200); + } + + public void bulk(String index, String token, String jsonBody) { + harness.withElasticApi() + .prepareReadRequest() + .withPath(index + "/_bulk") + .withHeader("Authorization", "Basic " + token) + .withHeader("Content-Type", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200); + } + + public LocalDateTime getBroadcomLastLogTime() { + String result = harness.withElasticApi() + .prepareReadRequest() + .withPath("prod-fv-app*/_search") + .withHeader("Authorization", "Basic " + AuthSupport.getAccessToken(Keys.elastic.broadcom, harness)) + .withPayload("{ " + + "\"size\" : 1, " + + "\"query\" : { " + + "\"match\" : { " + + "\"datasource_origin\" : \"db_broadcomm\"" + + "}" + + "}," + + "\"sort\": [ " + + "{" + + "\"@timestamp\" : {" + + "\"order\" : \"desc\"" + + "}" + + "}" + + "]," + + "\"fields\" : [" + + "\"@timestamp\"" + + "]," + + "\"_source\" : false" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("hits.hits[0].fields.@timestamp[0]") + .extract("hits.hits[0].fields.@timestamp[0]") + .asText(); + + logger.info("Timestamp returned from elastic is: " + result); + + return LocalDateTime.parse(result, DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC)); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/DataBoxType.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/DataBoxType.java new file mode 100644 index 0000000..1f81d1f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/DataBoxType.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.exevido; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum DataBoxType implements DynamicPathPart { + MMB("MMB"), + GEMM("GEMM"), + MA("MA"), + ML("ML"), + NAMC("NAMC"), + MSS("MSS"); + + private final String dataBoxType; + + DataBoxType(String type) { + this.dataBoxType = type; + } + + @Override + public String getValue() { + return dataBoxType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/Exevido.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/Exevido.java new file mode 100644 index 0000000..726f399 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/Exevido.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.exevido; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.exevido.pages.LoginPage; +import cz.moneta.test.harness.endpoints.exevido.ExevidoEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +/** + * For class schema and specifics of Exevido DSL, see: https://confluence.moneta.cz/x/KgEDaQ + */ +public class Exevido { + + private final Harness harness; + private ExevidoEndpoint exevidoEndpoint; + + public Exevido(Harness harness) { + this.harness = harness; + } + + public LoginPage openLoginPage() { + exevidoEndpoint = harness.getEndpoint(ExevidoEndpoint.class); + exevidoEndpoint.openApplication(); + return Builders.newWebFlowBuilder(LoginPage.class, exevidoEndpoint, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/ExevidoWebFlow.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/ExevidoWebFlow.java new file mode 100644 index 0000000..d9a0e83 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/ExevidoWebFlow.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.exevido; + +import cz.moneta.test.dsl.exevido.components.ExevidoPanels; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.WebFlow; + +import java.util.function.UnaryOperator; + +public interface ExevidoWebFlow> extends WebFlow, ExevidoPanels, Builder { + + void beforePageLoad(WebEndpoint endpoint); + + /** + * Executes steps that starts and ends on the same page type that is not known in advance. + *

+ * This method exists alongside the {@link Builder#then(java.util.function.Function)} + * to explicitly model steps where {@code S == T} and where S and T are not known in advance. + * + * This is annotated with {@code @CustomAction} so that the Harness's invocation pipeline treats it + * as an executable step and actually invokes the default method on the proxy. + * + * @param steps the flow of steps to be applied to the current page proxy + * @return the same page proxy type {@code A} to allow fluent chaining + */ + @SuppressWarnings("unchecked") + @CustomAction + default A thenSame(UnaryOperator steps) { + return steps.apply((A) this); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/components/ExevidoPanels.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/components/ExevidoPanels.java new file mode 100644 index 0000000..00aea6f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/components/ExevidoPanels.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.exevido.components; + +/** + * Aggregates the Exevido's navigation menus into a single interface. + * + * @param the self type of the page object, enabling fluent navigation chaining + */ +public interface ExevidoPanels extends LeftMenu, TopMenu, SmallBoxes { + + String LOADER_DIV = "loading_check"; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/components/LeftMenu.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/components/LeftMenu.java new file mode 100644 index 0000000..ee2c39b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/components/LeftMenu.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.exevido.components; + +import cz.moneta.test.dsl.exevido.pages.IncomingMessagesPage; +import cz.moneta.test.dsl.exevido.pages.OutgoingMessagesPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.exevido.components.ExevidoPanels.LOADER_DIV; +import static cz.moneta.test.dsl.exevido.components.LeftMenu.PAGE_SA_SMART_MENU; + +@Wait(PAGE_SA_SMART_MENU) +@Wait(value = LOADER_DIV, until = Until.GONE) +public interface LeftMenu { + + String PAGE_SA_SMART_MENU = "sasmartmenu"; + String CATEGORY_INCOMING_MESSAGES = "incoming_messages_link"; + String SUBCATEGORY_ALL_INCOMING_MESSAGES_A = "all_incoming_messages"; + String CATEGORY_OUTGOING_MESSAGES = "outgoing_messages_link"; + String SUBCATEGORY_ALL_OUTGOING_MESSAGES_A = "all_outgoing_messages_link"; + String CATEGORY_INHERITANCE_MMB_XPATH = "//li[@id='Dědictví - MMB']"; + String SUBCATEGORY_WITHOUT_FOLDER_XPATH = CATEGORY_INHERITANCE_MMB_XPATH + "//a[contains(., 'Bez spisu')]"; + String SUBCATEGORY_FOR_PROCESSING_XPATH = CATEGORY_INHERITANCE_MMB_XPATH + "//a[contains(., 'Ke zpracování')]"; + String FOR_PROCESSING_D_REQUEST_MMB_XPATH = CATEGORY_INHERITANCE_MMB_XPATH + "//a[contains(., 'D - Žádost [M] - MMB')]"; + String REFRESH_COUNTERS_BUTTON = "refresh_counters"; + + @Click(value = CATEGORY_INCOMING_MESSAGES, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + IncomingMessagesPage clickIncomingMessages(); + + @Click(value = SUBCATEGORY_ALL_INCOMING_MESSAGES_A, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + IncomingMessagesPage clickAllIncomingMessages(); + + @Click(value = CATEGORY_OUTGOING_MESSAGES, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + OutgoingMessagesPage clickOutgoingMessages(); + + @Click(SUBCATEGORY_ALL_OUTGOING_MESSAGES_A) + OutgoingMessagesPage clickAllOutgoingMessages(); + + @Click(value = CATEGORY_INHERITANCE_MMB_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SUBCATEGORY_WITHOUT_FOLDER_XPATH, by = Lookup.XPATH ,until = Until.VISIBLE)) + @Click(value = SUBCATEGORY_WITHOUT_FOLDER_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + IncomingMessagesPage clickInheritanceMmbWithoutFolder(); + + @Click(value = CATEGORY_INHERITANCE_MMB_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SUBCATEGORY_FOR_PROCESSING_XPATH, by = Lookup.XPATH, until = Until.VISIBLE)) + @Click(value = SUBCATEGORY_FOR_PROCESSING_XPATH, by = Lookup.XPATH, andWait = @Wait(value = FOR_PROCESSING_D_REQUEST_MMB_XPATH, by = Lookup.XPATH, until = Until.VISIBLE)) + LeftMenu clickInheritanceMmbForProcessing(); + + @Click(value = FOR_PROCESSING_D_REQUEST_MMB_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + IncomingMessagesPage clickRequestMmb(); + + @Click(value = REFRESH_COUNTERS_BUTTON, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + T clickRefreshCounters(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/components/SmallBoxes.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/components/SmallBoxes.java new file mode 100644 index 0000000..10102f6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/components/SmallBoxes.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.exevido.components; + +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Lookup; + +public interface SmallBoxes { + + String NOTIFICATIONS_XPATH = "//div[contains(@id,'smallbox')]"; + + @CheckElementContent(value = NOTIFICATIONS_XPATH, by = Lookup.XPATH) + T checkNofiticationText(String text); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/components/TopMenu.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/components/TopMenu.java new file mode 100644 index 0000000..062d7fa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/components/TopMenu.java @@ -0,0 +1,52 @@ +package cz.moneta.test.dsl.exevido.components; + +import cz.moneta.test.dsl.exevido.DataBoxType; +import cz.moneta.test.dsl.exevido.pages.LoginPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.exevido.components.ExevidoPanels.LOADER_DIV; +import static cz.moneta.test.dsl.exevido.components.SmallBoxes.NOTIFICATIONS_XPATH; +import static cz.moneta.test.dsl.exevido.components.TopMenu.EXEVIDO_LOGO; + +@Wait(EXEVIDO_LOGO) +@Wait(value = LOADER_DIV, until = Until.GONE) +public interface TopMenu { + + String EXEVIDO_LOGO = "logo"; + String CHOOSE_DATA = "choose_data_box"; + String COMPANY_SELECT_BOX = "company_id"; + String COMPANY_MMB_XPATH = "//div[contains(@title, 'MONETA Money Bank, a.s. - 25672720')]"; + String COMPANY_MSS_XPATH = "//div[contains(@title, 'MONETA Stavební Spořitelna, a.s. - 47115289')]"; + String DATA_BOX_SELECT_BOX = "databox_select"; + String DATA_BOX_XPATH = "//div[contains(@title, '%1$s')]"; + String ADD_DATA_BOX_BUTTON = "addDatabox"; + String LOG_OUT_BUTTON = "logout_btn"; + String CONFIRM_BUTTON = "confirm_button"; + + @Wait(value = NOTIFICATIONS_XPATH, until = Until.GONE) + @Click(CHOOSE_DATA) + TopMenu clickChooseDataBox(); + + @Click(value = COMPANY_SELECT_BOX) + TopMenu clickSelectCompanyBox(); + + @Click(value = COMPANY_MMB_XPATH, by = Lookup.XPATH) + TopMenu clickCompanyMMB(); + + @Click(value = COMPANY_MSS_XPATH, by = Lookup.XPATH) + TopMenu clickCompanyMSS(); + + @Click(DATA_BOX_SELECT_BOX) + TopMenu clickSelectDataBox(); + + @Click(value = DATA_BOX_XPATH, by = Lookup.XPATH) + TopMenu clickDataBox(DataBoxType dataBoxType); + + @Click(value = ADD_DATA_BOX_BUTTON, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + T addDataBox(); + + @Click(LOG_OUT_BUTTON) + @Click(CONFIRM_BUTTON) + LoginPage logOutFromExevido(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/DetailIncomingMessagePage.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/DetailIncomingMessagePage.java new file mode 100644 index 0000000..c6e1c10 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/DetailIncomingMessagePage.java @@ -0,0 +1,124 @@ +package cz.moneta.test.dsl.exevido.pages; + +import cz.moneta.test.dsl.exevido.ExevidoWebFlow; +import cz.moneta.test.dsl.exevido.components.ExevidoPanels; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.exevido.ExevidoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.exevido.pages.DetailIncomingMessagePage.PAGE_LABEL; + +@Wait(value = PAGE_LABEL) +public interface DetailIncomingMessagePage extends ExevidoWebFlow, StoreAccessor { + + String PAGE_LABEL = "outgoing_message_label"; + String ASSIGN_BUTTON = "assign_to_me"; + String PROCESSED_BUTTON = "set_as_processed"; + String RETURN_TO_MAILROOM_BUTTON = "return_to_podatelna"; + String RETURN_FOR_REASON = "podatelnaReason"; + String ADD_REASON_BUTTON = "addReasonPodatelnaButton"; + String DELEGATE_BUTTON = "delegate_button_id"; + String ASSIGNEE_XPATH = "//iq-select2[@id='new_assignee']//input"; + String ASSIGNEE_USER_GROUP_XPATH = "//iq-select2[@id='new_assignee_user_group']//input"; + String ASSIGNEE_ITEM = "//*[@id='item_0' and contains(@title,'%s')]"; + String PROCESSING_SETTINGS_LABEL_XPATH = "//b[text()='Nastavení zpracování']"; + + String SAVE_BUTTON = "save_message_recipient"; + + String WARNING = "col-lg-12"; + String DOWNLOAD_ATTACHMENTS_BUTTON = "mass_download_button"; + String DOWNLOAD_ATTACHMENT_DIV = "file-name-cell-buttons"; + String MORE_INFORMATION = "unpack_message_informations"; + String GENERATE_PDF_BUTTON_XPATH = "//button[contains(@class, 'btn-light') and contains(., 'Generovat Doručenku v PDF')]"; + String DOWNLOAD_PDF = "//button[contains(@class, 'btn-light') and contains(., 'Stáhnout Doručenku v PDF')]"; + String DOWNLOAD_MSG = "//button[contains(@class, 'btn-light') and contains(., ' Stáhnout MSG')]"; + String DOWNLOAD_ZFO_DELIVERY_RECEIPT_XPATH = "//button[contains(., 'Stáhnout ZFO Doručenku')]"; + String DOWNLOAD_ZFO = "//button[normalize-space()='Stáhnout ZFO']"; + String MESSAGE_RETURN_P = "//p[text()='Zpráva byla vrácena na podatelnu k dalšímu zpracování']"; + String INTERNAL_REFERENCE_NUMBER = "//accordion-group[.//b[text()='Spisy']]//table//tr/td[2][normalize-space()='%s']"; + String MESSAGE_ID_SPAN = "message_id"; + + @Click(ASSIGN_BUTTON) + DetailIncomingMessagePage clickAssign(); + + @Click(PROCESSED_BUTTON) + DetailIncomingMessagePage clickProcessed(); + + @Click(RETURN_TO_MAILROOM_BUTTON) + DetailIncomingMessagePage clickReturn(); + + @TypeInto(RETURN_FOR_REASON) + DetailIncomingMessagePage fillReason(String reason); + + @Click(value = ADD_REASON_BUTTON, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + DetailIncomingMessagePage clickAddReason(); + + @Click(value = DELEGATE_BUTTON, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + IncomingMessagesPage clickDelegate(); + + @CustomAction + private DetailIncomingMessagePage fillUserSelector(String value, String inputXpath) { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.type(() -> inputXpath, value, false, Lookup.XPATH); + endpoint.scrollIntoView(PROCESSING_SETTINGS_LABEL_XPATH, Lookup.XPATH); + endpoint.waitForElementsToLoad(1, Lookup.XPATH, Until.VISIBLE, String.format(ASSIGNEE_ITEM, value)); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @CustomAction + default DetailIncomingMessagePage fillAssignee(String assignee) { + return fillUserSelector(assignee, ASSIGNEE_XPATH); + } + + @CustomAction + default DetailIncomingMessagePage fillGroup(String group) { + return fillUserSelector(group, ASSIGNEE_USER_GROUP_XPATH); + } + + @CheckElementContent(value = WARNING, by = Lookup.CLASSNAME) + DetailIncomingMessagePage checkWarning(String warning); + + @CheckElementContent(value = MESSAGE_RETURN_P, by = Lookup.XPATH) + DetailIncomingMessagePage checkMessageReturn(String warning); + + @Click(value = DOWNLOAD_ATTACHMENTS_BUTTON, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + DetailIncomingMessagePage downloadAttachments(); + + @Click(value = DOWNLOAD_ATTACHMENT_DIV, by = Lookup.CLASSNAME, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + DetailIncomingMessagePage downloadAttachment(); + + @Click(value = MORE_INFORMATION, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + DetailIncomingMessagePage clickMoreInformation(); + + @CustomAction + default DetailIncomingMessagePage generatePdf() { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.scrollIntoView(DOWNLOAD_MSG, Lookup.XPATH); + endpoint.click(() -> GENERATE_PDF_BUTTON_XPATH, Lookup.XPATH); + return null; + } + + @Click(value = DOWNLOAD_PDF, by = Lookup.XPATH, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + DetailIncomingMessagePage downloadPdf(); + + @Click(value = DOWNLOAD_MSG, by = Lookup.XPATH, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + DetailIncomingMessagePage downloadMsg(); + + @CustomAction + default DetailIncomingMessagePage downloadZfoDeliveryReceipt() { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.scrollIntoView(DOWNLOAD_MSG, Lookup.XPATH); + endpoint.click(() -> DOWNLOAD_ZFO_DELIVERY_RECEIPT_XPATH, Lookup.XPATH); + return null; + } + + @Click(value = DOWNLOAD_ZFO, by = Lookup.XPATH, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + DetailIncomingMessagePage downloadZfo(); + + @CheckElementPresent(value = INTERNAL_REFERENCE_NUMBER, by = Lookup.XPATH, isStringDynamicXpath = true) + DetailIncomingMessagePage checkInternalReferenceNumber(String referenceNumber); + + @CheckElementContent(value = MESSAGE_ID_SPAN) + NewIncomingMessagePage checkMessageId(String id); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/IncomingMessagesPage.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/IncomingMessagesPage.java new file mode 100644 index 0000000..4219bbb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/IncomingMessagesPage.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dsl.exevido.pages; + +import cz.moneta.test.dsl.exevido.ExevidoWebFlow; +import cz.moneta.test.dsl.exevido.components.ExevidoPanels; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.exevido.ExevidoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.exevido.pages.IncomingMessagesPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface IncomingMessagesPage extends ExevidoWebFlow, StoreAccessor { + + String PAGE_LABEL_XPATH = "//b[contains(text(),'Příchozí zprávy dle stavu')]"; + String FIRST_INCOMING_MESSAGE_CHECKBOX_XPATH = "//tr[@id='incoming_message_0_row']//td[@class='checkbox-table-cell']"; + String CREATE_NEW_INCOMING_MESSAGE_BUTTON = "create_new_incoming_message"; + String ID_MESSAGE_INPUT = "text_message_id"; + String INCOMING_MESSAGE_ROW = "incoming_message_0_row"; + String INCOMING_MESSAGE_TABLE_BODY = "//tbody[@id='incoming_message_table_body']//*[@title='%s']"; + String DATE_RANGE_ACCEPTANCE_TIME = "date_range_acceptance_time"; + String INCOMING_MESSAGE_ROW_CHECKBOX = "//tr[@id='incoming_message_0_row']//label[input[@type='checkbox']]/span"; + String INCOMING_MESSAGES_ACTION_BUTTON = "incoming_messages_action_button"; + String MARK_AS_IRRELEVANT_BUTTON = "irrelevant"; + String IRRELEVANT_REASON = "irrelevant_reason"; + String ADD_IRRELEVANT_REASON_BUTTON = "add_reason_button"; + String MESSAGE_ID_DIV = "//tr[@id='incoming_message_0_row']/td[3]"; + String MESSAGE_ID_KEY = "MESSAGE_ID"; + + + @CheckElementPresent(value = FIRST_INCOMING_MESSAGE_CHECKBOX_XPATH, by = Lookup.XPATH) + IncomingMessagesPage checkFirstIncomingMessagePresence(); + + @CheckElementPresent(value = INCOMING_MESSAGE_TABLE_BODY, by = Lookup.XPATH, isStringDynamicXpath = true) + IncomingMessagesPage checkMessageTitlePresence(String messageTitle); + + @Click(CREATE_NEW_INCOMING_MESSAGE_BUTTON) + NewIncomingMessagePage clickCreateNewIncomingMessage(); + + @TypeInto(value = ID_MESSAGE_INPUT, clear = true) + @KeyPress(value = Key.ENTER, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + IncomingMessagesPage searchByMessageId(String id); + + @CustomAction + default DetailIncomingMessagePage clickIncomingMessageRow(int timeout) { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.sendKeysOneAtATime(Key.ENTER); + endpoint.waitForElementAndRefresh(INCOMING_MESSAGE_ROW, Lookup.ID, endpoint::refeshPage, timeout, 2); + endpoint.click(() -> INCOMING_MESSAGE_ROW, Lookup.ID); + return null; + } + + @TypeInto(value = DATE_RANGE_ACCEPTANCE_TIME, clear = true) + @KeyPress(value = Key.ENTER, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + IncomingMessagesPage searchByDateRange(String date); + + @Click(value = INCOMING_MESSAGE_ROW_CHECKBOX, by = Lookup.XPATH) + IncomingMessagesPage clickIncomingMessageRowCheckbox(); + + @Click(INCOMING_MESSAGES_ACTION_BUTTON) + @Click(MARK_AS_IRRELEVANT_BUTTON) + IncomingMessagesPage clickMarkAsIrrelevantMessage(); + + @TypeInto(IRRELEVANT_REASON) + @Click(ADD_IRRELEVANT_REASON_BUTTON) + IncomingMessagesPage addIrrelevantReason(String reason); + + @StoreElementContent(storeKey = MESSAGE_ID_KEY, value = MESSAGE_ID_DIV, by = Lookup.XPATH) + IncomingMessagesPage saveMessageID(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/LoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/LoginPage.java new file mode 100644 index 0000000..df0cefe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/LoginPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.exevido.pages; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.exevido.pages.LoginPage.PAGE_LOGO; + +@Wait(value = PAGE_LOGO, by = Lookup.XPATH) +public interface LoginPage extends WebFlow { + + String PAGE_LOGO = "//img[@alt='Exevido']"; + String USERNAME = "username"; + String PASSWORD = "password"; + String LOGIN_BUTTON = "login"; + + @TypeInto(value = USERNAME, clear = true) + LoginPage fillUsername(String username); + + @TypeInto(value = PASSWORD, clear = true) + LoginPage fillPassword(String password); + + @Click(LOGIN_BUTTON) + IncomingMessagesPage clickLogin(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/NewIncomingMessagePage.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/NewIncomingMessagePage.java new file mode 100644 index 0000000..01d21dc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/NewIncomingMessagePage.java @@ -0,0 +1,117 @@ +package cz.moneta.test.dsl.exevido.pages; + +import cz.moneta.test.dsl.exevido.ExevidoWebFlow; +import cz.moneta.test.dsl.exevido.components.ExevidoPanels; +import cz.moneta.test.dsl.ufo.banka.pages.fon.UploadUtil; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.exevido.ExevidoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.exevido.pages.NewIncomingMessagePage.PAGE_LABEL_B; + +@Wait(PAGE_LABEL_B) +public interface NewIncomingMessagePage extends ExevidoWebFlow, StoreAccessor { + + String MESSAGE_ID_KEY = "MESSAGE_ID"; + String PAGE_LABEL_B = "outgoing_message_label"; + String SUBJECT_INPUT = "subject"; + String SENDER_XPATH = "//iq-select2[@id='_selectId']//input"; + String FILE_UPLOAD_XPATH = "(//input[@type='file' and @multiple='multiple'])"; + String UPLOAD_SUCCESSFUL_ANNOUNCEMENT_XPATH = "//p[text()='Upload byl úspěšný']"; + String ASSIGNEE_USER_GROUP_XPATH = "//iq-select2[@id='new_assignee_user_group']//input"; + String RECIPIENT_NUMBER_INPUT = "legal_title_point"; + String FIRST_ITEM_USER_GROUP_XPATH = "//div[@id='item_0' and contains(@title, '%s')]"; + String SAVE_MESSAGE_BUTTON = "incoming_save_button"; + String MESSAGE_ID_SPAN = "message_id"; + String ALERT_YES_BUTTON = "unsaved_data_confirm_button"; + String TYPE_OF_MESSAGE = "//iq-select2[@id='_type_option']//input"; + String ITEM_TYPE_OF_MESSAGE = "//*[starts-with(@id,'item_') and @title= '%s']"; + String SENDER_ITEM = "item_0"; + String DELEGATE_BUTTON = "delegate_button_id"; + String DROPDOWN_CREATE_DUPLICATE_BUTTON = "//app-actis-button[@buttonid='create_copy']/following-sibling::button"; + String SEND_TO_ANOTHER_DATA_BOX_BUTTON = "//app-actis-button//button[contains(., 'Do jiné datové schránky')]"; + String UNIVERSAL_SINGLE_SELECT = "singleSelect"; + String OTHER_SELECTION_XPATH = "//iq-select2[@id='singleSelect']//div[contains(@class, 'select2-dropdown-item') and contains(@title, '%s')]"; + String UNIVERSAL_SUBMIT_SINGLE_SELECT_BUTTON = "submitSingleSelect"; + String CONFIRM_BUTTON = "//button[normalize-space()='Potvrdit']"; + String CHANGE_MESSAGE_TYPE = "change_message_type"; + + @TypeInto(SUBJECT_INPUT) + NewIncomingMessagePage fillSubject(String subject); + + @TypeInto(value = TYPE_OF_MESSAGE, by = Lookup.XPATH) + @Click(value = ITEM_TYPE_OF_MESSAGE, by = Lookup.XPATH, isStringDynamicXpath = true) + NewIncomingMessagePage fillTypeMessage(String messageType); + + @TypeInto(value = SENDER_XPATH, by = Lookup.XPATH, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + @KeyPress(value = Key.ENTER) + NewIncomingMessagePage fillSender(String sender); + + @CustomAction + default NewIncomingMessagePage uploadAttachment(String documentPath) { + String path = UploadUtil.getResourcePath(documentPath); + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + + endpoint.type(() -> FILE_UPLOAD_XPATH, path, false, Lookup.XPATH); + endpoint.waitForElementsToLoad(10, Lookup.XPATH, Until.VISIBLE, UPLOAD_SUCCESSFUL_ANNOUNCEMENT_XPATH); + return null; + } + + @CustomAction + default NewIncomingMessagePage acceptAlertIfVisible() { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + if (endpoint.isElementVisible(0, ALERT_YES_BUTTON, Lookup.ID)) { + endpoint.click(() -> ALERT_YES_BUTTON); + } + return null; + } + + @CustomAction + default NewIncomingMessagePage fillAssigneeUserGroup(String group) { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.type(() -> ASSIGNEE_USER_GROUP_XPATH, group, false, Lookup.XPATH); + endpoint.scrollIntoView(RECIPIENT_NUMBER_INPUT, Lookup.ID); + String xPath = String.format(FIRST_ITEM_USER_GROUP_XPATH, group); + endpoint.click(() -> xPath, Lookup.XPATH); + return null; + } + + @Click(value = SAVE_MESSAGE_BUTTON, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + NewIncomingMessagePage clickSave(); + + @CustomAction + default NewIncomingMessagePage storeMessageId() { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + String messageId = endpoint.getText(MESSAGE_ID_SPAN).replaceAll("ID:(\\d+)", "$1"); + store(MESSAGE_ID_KEY, messageId); + return null; + } + + @CustomAction + default IncomingMessagesPage clickDelegateMessage() { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.scrollToPageTop(); + endpoint.scrollIntoView(ASSIGNEE_USER_GROUP_XPATH, Lookup.XPATH); + endpoint.click(() -> DELEGATE_BUTTON); + return null; + } + + @Click(value = DROPDOWN_CREATE_DUPLICATE_BUTTON, by = Lookup.XPATH) + @Click(value = SEND_TO_ANOTHER_DATA_BOX_BUTTON, by = Lookup.XPATH) + NewIncomingMessagePage sendToAnotherDataBox(); + + @Click(UNIVERSAL_SINGLE_SELECT) + NewIncomingMessagePage clickUniversalSingleSelect(); + + @Click(value = OTHER_SELECTION_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + NewIncomingMessagePage fillSingleSelect(String inputValue); + + @Click(value = UNIVERSAL_SUBMIT_SINGLE_SELECT_BUTTON) + NewIncomingMessagePage clickSubmitSingleSelect(); + + @Click(value = CONFIRM_BUTTON, by = Lookup.XPATH) + DetailIncomingMessagePage clickConfirm(); + + @Click(CHANGE_MESSAGE_TYPE) + NewIncomingMessagePage clickChangeMessageType(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/NewOutgoingMessagePage.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/NewOutgoingMessagePage.java new file mode 100644 index 0000000..13261be --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/NewOutgoingMessagePage.java @@ -0,0 +1,194 @@ +package cz.moneta.test.dsl.exevido.pages; + +import cz.moneta.test.dsl.exevido.ExevidoWebFlow; +import cz.moneta.test.dsl.exevido.components.ExevidoPanels; +import cz.moneta.test.dsl.ufo.banka.pages.fon.UploadUtil; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.exevido.ExevidoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.PAGE_LABEL_B; + +@Wait(PAGE_LABEL_B) +public interface NewOutgoingMessagePage extends ExevidoWebFlow, StoreAccessor { + + String MESSAGE_ID_KEY = "MESSAGE_ID"; + String PDF_VIEWER_CONTENT_KEY = "PDF_VIEWER_CONTENT"; + String PAGE_LABEL_B = "outgoing_message_label"; + String SAVE_CONCEPT_BUTTON = "save_concept"; + String RECIPIENT_XPATH = "//iq-select2[@id='recipient_id']//input"; + String MULTIPLE_RECIPIENT_XPATH = "//input[@placeholder='Vyberte id příjemce']"; + String ASSIGNEE_USER_GROUP_XPATH = "//iq-select2[@id='new_assignee_user_group']//input"; + String FIRST_ITEM_DIV = "//*[@id='item_0' and contains(@class,'select2-dropdown-item')]"; + String FIRST_ITEM_USER_GROUP_XPATH = "//div[@id='item_0' and contains(@title, '%s')]"; + String COST_CENTER_INPUT = "cost_center"; + String SUBJECT_INPUT = "subject"; + String SEND_MESSAGE_DROPDOWN_BUTTON = "send_message_dropdown"; + String FILE_UPLOAD_XPATH = "(//input[@type='file' and @multiple='multiple'])[2]"; + String PDF_VIEWER_IFRAME = "pdfIframe"; + String EDIT_PDF_IFRAME_XPATH = "//iframe[contains(@id, 'tiny-angular_')]"; + String TEMPLATE_FOOTER = "document-footer"; + String PDF_TEMPLATE_GENERATING_BUTTON = "IncomingMessagesActionButton"; + String EMPTY_TEMPLATE = "//ul[@id='pdf_templates_firstLevel']/li//li/a[text()='Prazdná šablona' or text()='Prázdná šablona MMB']"; + String EDIT_TEMPLATE_BUTTON = "edit_attachment"; + String SAVE_TEMPLATE_XPATH = "//tbody[@id='attachment_table_body']//i[@title='Uložit']/.."; + String UNPACK_MESSAGE_INFORMATIONS = "unpack_message_informations"; + String UPLOAD_SUCCESFUL_ANNOUNCEMENT_XPATH = "//div[contains(@id,'smallbox')]//*[text()='Upload byl úspěšný']"; + String TEMPLATE_CREATING_ANNOUNCEMENT_XPATH = "//div[contains(@id,'smallbox')]//*[text()='Probíhá vytváření šablony']"; + String TEMPLATE_EDIT_SAVE_ANNOUNCEMENT_XPATH = "//div[contains(@id,'smallbox')]//*[text()='Probíhá vytváření odpovědi']"; + String GENERATE_PDF = "waitingForPdfProgressBar"; + String SEND_MESSAGE_NOW_LI = "send_message_now"; + String MESSAGE_IS_SENDING_DIV = "message_identification"; + String MESSAGE_SUCCESSFULLY_SEND_LOG_XPATH = "//span[contains(text(), 'byla odeslána')]"; + String MESSAGE_SEND_FAILURE_LOG_XPATH = "//span[contains(text(), 'selhání odeslání zprávy')]"; + String ATTACHMENT_PATH = "regression/exevido/testExevido.txt"; + String SECOND_ATTACHMENT_PATH = "regression/exevido/testExevido2.txt"; + String MESSAGE_ID_SPAN = "message_id"; + String MULTIPLE_RECIPIENTS_SPAN = "//label[@for='multiple_recipients']"; + String ADD_RECIPIENT_TO_LIST_BUTTON = "add_to_list_button"; + String BACK_BUTTON = "back_button"; + String PDF_VIEWER = "viewer"; + + @TypeInto(value = RECIPIENT_XPATH, by = Lookup.XPATH, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + NewOutgoingMessagePage fillRecipient(String recipient); + + @TypeInto(value = MULTIPLE_RECIPIENT_XPATH, by = Lookup.XPATH, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + NewOutgoingMessagePage fillMultipleRecipient(String recipient); + + @CustomAction + default NewOutgoingMessagePage fillAssigneeUserGroup(String group) { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.type(() -> ASSIGNEE_USER_GROUP_XPATH, group, false, Lookup.XPATH); + endpoint.scrollIntoView(COST_CENTER_INPUT, Lookup.ID); + String xPath = String.format(FIRST_ITEM_USER_GROUP_XPATH, group); + endpoint.click(() -> xPath, Lookup.XPATH); + return null; + } + + @KeyPress(Key.ENTER) + NewOutgoingMessagePage pressEnter(); + + @TypeInto(SUBJECT_INPUT) + NewOutgoingMessagePage fillSubject(String subject); + + @Click(SEND_MESSAGE_DROPDOWN_BUTTON) + NewOutgoingMessagePage clickSendMessageDropdown(); + + @CustomAction + default NewOutgoingMessagePage uploadAttachment(String documentPath) { + + String path = UploadUtil.getResourcePath(documentPath); + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + + endpoint.type(() -> FILE_UPLOAD_XPATH, path, false, Lookup.XPATH); + endpoint.waitForElementsToLoad(5, Lookup.XPATH, Until.VISIBLE, UPLOAD_SUCCESFUL_ANNOUNCEMENT_XPATH); + return null; + } + + @Click(PDF_TEMPLATE_GENERATING_BUTTON) + NewOutgoingMessagePage clickPdfTemplateGenerating(); + + @Click(value = EMPTY_TEMPLATE, by = Lookup.XPATH, jsClick = true, + andWait = @Wait(value = TEMPLATE_CREATING_ANNOUNCEMENT_XPATH, by = Lookup.XPATH, until = Until.GONE)) + NewOutgoingMessagePage clickEmptyTemplateMmb(); + + @Click(value = EDIT_TEMPLATE_BUTTON, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + NewOutgoingMessagePage clickEditTemplate(); + + @CustomAction + default NewOutgoingMessagePage storePdfViewerContent() { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.switchToFrame(PDF_VIEWER_IFRAME); + this.store(PDF_VIEWER_CONTENT_KEY, PDF_VIEWER); + endpoint.switchToDefaultContent(); + return null; + } + + @CustomAction + default NewOutgoingMessagePage clickSaveTemplate() { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.click(() -> UNPACK_MESSAGE_INFORMATIONS); + endpoint.sendKeysOneAtATime(Key.PAGE_UP); + endpoint.moveToElement(SAVE_TEMPLATE_XPATH, Lookup.XPATH); + endpoint.click(() -> SAVE_TEMPLATE_XPATH, Lookup.XPATH); + endpoint.waitForElementsToLoad(5, Until.GONE, LOADER_DIV); + endpoint.waitForElementsToLoad(10, Lookup.XPATH, Until.GONE, TEMPLATE_EDIT_SAVE_ANNOUNCEMENT_XPATH); + endpoint.waitForElementsToLoad(5, Until.GONE, GENERATE_PDF); + return null; + } + + @CustomAction + default NewOutgoingMessagePage checkChangeOfPdfContent() { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.switchToFrame(PDF_VIEWER_IFRAME); + String editedTemplate = endpoint.getText(PDF_VIEWER); + Assertions.assertTrue(editedTemplate.contains("auto test")); + Assertions.assertNotEquals(this.get(PDF_VIEWER_CONTENT_KEY), endpoint.getText(PDF_VIEWER)); + endpoint.switchToDefaultContent(); + return null; + } + + @CustomAction + default NewOutgoingMessagePage editTemplate() { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.switchToFrame(EDIT_PDF_IFRAME_XPATH, Lookup.XPATH); + endpoint.sendKeysOneAtATime(Key.PAGE_DOWN); + endpoint.click(() -> TEMPLATE_FOOTER, Lookup.CLASSNAME); + endpoint.sendKeysOneAtATime(Key.A, Key.U, Key.T, Key.O, Key.SPACE, Key.T, Key.E, Key.S, Key.T); + endpoint.switchToDefaultContent(); + endpoint.sendKeysOneAtATime(Key.PAGE_UP); + return null; + } + + @Click(SAVE_CONCEPT_BUTTON) + NewOutgoingMessagePage clickSaveConcept(); + + @Click(value = SEND_MESSAGE_NOW_LI, andWait = @Wait(value = ExevidoPanels.LOADER_DIV, until = Until.GONE)) + NewOutgoingMessagePage clickSendMessageNow(); + + @CustomAction + default NewOutgoingMessagePage checkMessageCorrectlySend() { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.refeshPage(); + endpoint.waitForElementAndRefresh(MESSAGE_SUCCESSFULLY_SEND_LOG_XPATH, Lookup.XPATH, endpoint::refeshPage, 30, 10); + Assertions.assertTrue(endpoint.getText(MESSAGE_IS_SENDING_DIV).contains("Odeslaná")); + return null; + } + + @CustomAction + default NewOutgoingMessagePage checkMessageIncorrectlySend() { + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + endpoint.refeshPage(); + endpoint.waitForElementAndRefresh(MESSAGE_SEND_FAILURE_LOG_XPATH, Lookup.XPATH, endpoint::refeshPage, 30, 10); + Assertions.assertTrue(endpoint.getText(MESSAGE_IS_SENDING_DIV).contains("Chybná")); + return null; + } + + @CustomAction + default NewOutgoingMessagePage checkMassMessageCorrectlySend() { + + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + String message = endpoint.getText(MESSAGE_IS_SENDING_DIV); + Assertions.assertTrue(message.contains("Odeslaná - Hromadně")); + return null; + } + + @CustomAction + default NewOutgoingMessagePage storeMessageId() { + + ExevidoEndpoint endpoint = getEndpoint(ExevidoEndpoint.class); + String messageId = endpoint.getText(MESSAGE_ID_SPAN).replaceAll("ID:(\\d+)", "$1"); + store(MESSAGE_ID_KEY, messageId); + return null; + } + + @Click(value = MULTIPLE_RECIPIENTS_SPAN, by = Lookup.XPATH) + NewOutgoingMessagePage clickMultipleRecipients(); + + @Click(value = ADD_RECIPIENT_TO_LIST_BUTTON) + NewOutgoingMessagePage addRecipient(); + + @Click(BACK_BUTTON) + OutgoingMessagesPage clickBack(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/OutgoingMessagesPage.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/OutgoingMessagesPage.java new file mode 100644 index 0000000..de0bcdd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/pages/OutgoingMessagesPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.exevido.pages; + +import cz.moneta.test.dsl.exevido.ExevidoWebFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.exevido.pages.OutgoingMessagesPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface OutgoingMessagesPage extends ExevidoWebFlow { + + String PAGE_LABEL_XPATH = "//b[contains(text(), 'Odchozí zprávy dle stavu')]"; + String CREATE_NEW_OUTGOING_MESSAGE_BUTTON = "create_new_outgoing_message"; + + @Click(CREATE_NEW_OUTGOING_MESSAGE_BUTTON) + NewOutgoingMessagePage clickCreateNewOutgoingMessage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/tasks/ExevidoTasks.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/tasks/ExevidoTasks.java new file mode 100644 index 0000000..f2f0788 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/tasks/ExevidoTasks.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.exevido.tasks; + +import cz.moneta.test.dsl.Harness; + +public class ExevidoTasks { + + private final Harness harness; + + public ExevidoTasks(Harness harness) { + this.harness = harness; + } + + public LoginTasks login() { + return new LoginTasks(harness); + } + + public SelectDataBoxTasks selectDataBox() { + return new SelectDataBoxTasks(harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/tasks/LoginTasks.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/tasks/LoginTasks.java new file mode 100644 index 0000000..b4ae75e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/tasks/LoginTasks.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.exevido.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.exevido.DataBoxType; +import cz.moneta.test.dsl.exevido.pages.IncomingMessagesPage; +import cz.moneta.test.dsl.exevido.pages.LoginPage; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +public class LoginTasks { + + private final Harness harness; + + public LoginTasks(Harness harness) { + this.harness = harness; + } + + public Function withCredentials(Credentials credentials) { + return start -> start.fillUsername(credentials.getUsername()) + .fillPassword(credentials.getPassword()) + .clickLogin(); + } + + public Function withCredentialsToMmb(Credentials credentials) { + return start -> start.then(withCredentials((credentials))) + .thenSame(harness.tasks().exevidoTasks().selectDataBox().selectDataBoxMmbType(DataBoxType.MMB)); + } + + public Function withCredentialsToMss(Credentials credentials) { + return start -> start.then(withCredentials((credentials))) + .thenSame(harness.tasks().exevidoTasks().selectDataBox().selectDataBoxMssType(DataBoxType.MSS)); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/exevido/tasks/SelectDataBoxTasks.java b/tests/src/main/java/cz/moneta/test/dsl/exevido/tasks/SelectDataBoxTasks.java new file mode 100644 index 0000000..3b063bd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/exevido/tasks/SelectDataBoxTasks.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.exevido.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.exevido.DataBoxType; +import cz.moneta.test.dsl.exevido.ExevidoWebFlow; +import cz.moneta.test.dsl.exevido.components.ExevidoPanels; + +import java.util.function.UnaryOperator; + +public class SelectDataBoxTasks { + + private final Harness harness; + + public SelectDataBoxTasks(Harness harness) { + this.harness = harness; + } + + public

> UnaryOperator

selectDataBoxMmbType(DataBoxType dataBoxType) { + return start -> start + .clickChooseDataBox() + .clickSelectCompanyBox() + .clickCompanyMMB() + .clickSelectDataBox() + .clickDataBox(dataBoxType) + .addDataBox(); + } + + public

> UnaryOperator

selectDataBoxMssType(DataBoxType dataBoxType) { + return start -> start + .clickChooseDataBox() + .clickSelectCompanyBox() + .clickCompanyMSS() + .clickSelectDataBox() + .clickDataBox(dataBoxType) + .addDataBox(); + } + + public

> UnaryOperator

selectDataBoxMssAll() { + return start -> start + .clickChooseDataBox() + .clickSelectCompanyBox() + .clickCompanyMSS() + .addDataBox(); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/finanso/Finanso.java b/tests/src/main/java/cz/moneta/test/dsl/finanso/Finanso.java new file mode 100644 index 0000000..3df98cb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/finanso/Finanso.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.finanso; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.finanso.FinansoEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class Finanso { + private Harness harness; + + public Finanso(Harness harness) { + this.harness = harness; + } + + public FinansoHomePage openHomePage() { + FinansoEndpoint endpoint = harness.getEndpoint(FinansoEndpoint.class); + endpoint.openApplication(); + return Builders.newWebFlowBuilder(FinansoHomePage.class, endpoint, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/finanso/FinansoHomePage.java b/tests/src/main/java/cz/moneta/test/dsl/finanso/FinansoHomePage.java new file mode 100644 index 0000000..4306769 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/finanso/FinansoHomePage.java @@ -0,0 +1,6 @@ +package cz.moneta.test.dsl.finanso; + +import cz.moneta.test.harness.support.web.WebFlow; + +public interface FinansoHomePage extends WebFlow { +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/finanso/FinansoIncomePage.java b/tests/src/main/java/cz/moneta/test/dsl/finanso/FinansoIncomePage.java new file mode 100644 index 0000000..3b91d36 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/finanso/FinansoIncomePage.java @@ -0,0 +1,67 @@ +package cz.moneta.test.dsl.finanso; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.*; + +@Wait(FinansoIncomePage.INCOME_INPUT) +@Wait(value = FinansoIncomePage.LOADER, until = Until.GONE) +public interface FinansoIncomePage extends WebFlow, StoreAccessor { + String LOADER = "//div[contains(@class,'loader')]"; + String INCOME_INPUT = "//input[@id='income']"; + String INSTALLMENT_INPUT = "//input[@id='otherInstallment']"; + String REALITY_AMOUNT_INPUT = "//input[@id='realtyAmount']"; + String MORTGAGE_AMOUNT = "//input[@id='amountMortgage']"; + String MORTGAGE_MATURITY = "//input[@id='term']"; + String MORTGAGE_FIXATION = "//div[@name='cbFixation.code']"; + String BACK_BUTTON = "//button[@data-testid='back']"; + + @CustomAction + default FinansoIncomePage storeIncomeValue(String storeKey) { + store(storeKey, getInputValue(INCOME_INPUT)); + return null; + } + + @CustomAction + default FinansoIncomePage storeInstallmentValue(String storeKey) { + store(storeKey, getInputValue(INSTALLMENT_INPUT)); + return null; + } + + @CustomAction + default FinansoIncomePage storeFinansoAmount(String storeKey) { + store(storeKey, getInputValue(MORTGAGE_AMOUNT)); + return null; + } + + @CustomAction + default FinansoIncomePage storeFinansoRealityAmount(String storeKey) { + store(storeKey, getInputValue(REALITY_AMOUNT_INPUT)); + return null; + } + + @CustomAction + default FinansoIncomePage storeFinansoMaturity(String storeKey) { + store(storeKey, getInputValue(MORTGAGE_MATURITY)); + return null; + } + + @CustomAction + default FinansoIncomePage storeFinansoFixation(String storeKey) { + store(storeKey, getInputValue(MORTGAGE_FIXATION).replaceFirst("^0+", "")); + return null; + } + + @Click(BACK_BUTTON) + FinansoIncomePage goBack(); + + private String getInputValue(String xpath) { + MonetaPortalEndpoint e = getEndpoint(MonetaPortalEndpoint.class); + return e.getAttribute(xpath, "value").replaceAll("\\D", ""); + } + + private String getElementText(String xpath) { + MonetaPortalEndpoint e = getEndpoint(MonetaPortalEndpoint.class); + return e.getText(xpath).replaceAll("\\D", ""); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/Forte.java b/tests/src/main/java/cz/moneta/test/dsl/forte/Forte.java new file mode 100644 index 0000000..7659488 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/Forte.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.forte; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.forte.pages.ForteHomePage; +import cz.moneta.test.harness.endpoints.forte.ForteEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class Forte { + + private final Harness harness; + private ForteEndpoint forteEndpoint; + + public Forte(Harness harness) { + this.harness = harness; + } + + public ForteHomePage openForteHomePage() { + forteEndpoint = harness.getEndpoint(ForteEndpoint.class); + forteEndpoint.openApplication(); + return Builders.newWebFlowBuilder(ForteHomePage.class, forteEndpoint, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/FortePageFlow.java b/tests/src/main/java/cz/moneta/test/dsl/forte/FortePageFlow.java new file mode 100644 index 0000000..3af902e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/FortePageFlow.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.forte; + +import cz.moneta.test.dsl.forte.pages.ForteHeaderMenu; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface FortePageFlow> extends WebFlow, ForteHeaderMenu { + String SPINNER = "spinner"; + String CONTENT_DIV = "//div[@class='content_data']"; + + default void beforePageLoad(WebEndpoint webEndpoint) { + webEndpoint.waitForElementsToLoad(30, Lookup.ID, Until.GONE, SPINNER); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/components/AppointmentsMenu.java b/tests/src/main/java/cz/moneta/test/dsl/forte/components/AppointmentsMenu.java new file mode 100644 index 0000000..501db8e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/components/AppointmentsMenu.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.forte.components; + +import cz.moneta.test.dsl.forte.pages.appointments.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.forte.ForteEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.components.AppointmentsMenu.LEFT_PANEL; + +@Wait(LEFT_PANEL) +public interface AppointmentsMenu extends RoleSelection, Builder, StoreAccessor { + + // Menu for ForteRoles.APP_ADMIN + String ROLES_ADMINISTRATION = LEFT_PANEL + "//a[@href='/appointments/role/']"; + String PRODUCT_TYPES = LEFT_PANEL + "//a[@href='/appointments/producttype/']"; + String LIST_OF_EMPTY_SLOTS = LEFT_PANEL + "//a[@href='/appointments/branchplaces/']"; + + // Menu for ForteRoles.BANKER + String APPOINTMENTS_NOT_ASSIGNED = "//a[@href='/appointments/notassigned/']"; + String BRANCH_SELECT = "//select[@id='frmselectBranchSimpleForm-branch']"; + String BRANCH_SELECT_OPTION = BRANCH_SELECT + "//option[contains(text(),'%s')]"; + String BRANCH_SELECT_ADD_OM = BRANCH_SELECT + "//option[@value='add']"; + + // Menu for ForteRoles.APP_ADMIN + @Click(ROLES_ADMINISTRATION) + RolesAdministrationPage clickRolesAdministration(); + + @Click(PRODUCT_TYPES) + ProductTypesPage clickProductTypes(); + + @Click(LIST_OF_EMPTY_SLOTS) + ListOfEmptySlotsPage clickListOfEmptySlots(); + + // Menu for ForteRoles.BANKER + @Click(APPOINTMENTS_NOT_ASSIGNED) + NotSignedAppointments clickNotAssignedAppointments(); + + @Click(BRANCH_SELECT) + @Click(value = BRANCH_SELECT_OPTION, isStringDynamicXpath = true) + AppointmentsMainPage selectOm(String omName); + + @CustomAction + default SelectOMPage clickAddOM() { + ForteEndpoint endpoint = getEndpoint(ForteEndpoint.class); + endpoint.click(() -> BRANCH_SELECT); + endpoint.waitForElementsToLoad(5, BRANCH_SELECT_ADD_OM); + endpoint.click(() -> BRANCH_SELECT_ADD_OM); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/components/BranchesMenu.java b/tests/src/main/java/cz/moneta/test/dsl/forte/components/BranchesMenu.java new file mode 100644 index 0000000..fbda33d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/components/BranchesMenu.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.forte.components; + +import cz.moneta.test.dsl.forte.pages.branches.BranchesMainPage; +import cz.moneta.test.dsl.forte.pages.branches.MmbBranchesListPage; +import cz.moneta.test.dsl.forte.pages.branches.MmbFindBranchesPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.components.BranchesMenu.CONTROL_MENU_UL; + +@Wait(CONTROL_MENU_UL) +public interface BranchesMenu extends RoleSelection, Builder { + String CONTROL_MENU_UL = LEFT_PANEL + "//ul[@class='control menu']"; + String MMB_BRANCHES_FIND_BRANCHES_LINK = CONTROL_MENU_UL + "//a[@href='/branches/findbranchesmmb/']"; + String MMB_BRANCHES_BRANCHES_LIST_LINK = CONTROL_MENU_UL + "//a[@href='/branches/branchmmb/']"; + + @Wait(MMB_BRANCHES_FIND_BRANCHES_LINK) + @Click(MMB_BRANCHES_FIND_BRANCHES_LINK) + MmbFindBranchesPage clickMmbFindBranches(); + + @Wait(MMB_BRANCHES_BRANCHES_LIST_LINK) + @Click(MMB_BRANCHES_BRANCHES_LIST_LINK) + MmbBranchesListPage clickMmbBranchesList(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/components/BrnControlsMenu.java b/tests/src/main/java/cz/moneta/test/dsl/forte/components/BrnControlsMenu.java new file mode 100644 index 0000000..3912202 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/components/BrnControlsMenu.java @@ -0,0 +1,68 @@ +package cz.moneta.test.dsl.forte.components; + +import cz.moneta.test.dsl.forte.pages.brncontrols.BrnControlsMainPage; +import cz.moneta.test.dsl.forte.pages.brncontrols.ControlsOnOmPage; +import cz.moneta.test.dsl.forte.pages.brncontrols.BrnControlsUniversalEnumInterface; +import cz.moneta.test.dsl.forte.pages.contracts.ReportControlsOnOm; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.components.RoleSelection.LEFT_PANEL; + +@Wait(LEFT_PANEL) +public interface BrnControlsMenu extends RoleSelection, Builder { + String CONTROL_MENU_UL = LEFT_PANEL + "//ul[@class='control menu']"; + String CONTROLS_ON_OM = CONTROL_MENU_UL + "//a[@href='/controlsom/controlplan/']"; + + String CONTROLS_ENUMS_TOTAL_RESULT = CONTROL_MENU_UL + "//a[@href='/controlsom/totalresult/']"; + String CONTROLS_ENUMS_ERROR_TYPES = CONTROL_MENU_UL + "//a[@href='/controlsom/errortype/']"; + String CONTROLS_ENUMS_TRANSACTION_FORMS = CONTROL_MENU_UL + "//a[@href='/controlsom/transactionform/']"; + String CONTROLS_ENUMS_TRANSACTION_TYPES = CONTROL_MENU_UL + "//a[@href='/controlsom/transactiontype/']"; + String CONTROLS_ENUMS_TREND_CONTROL = CONTROL_MENU_UL + "//a[@href='/controlsom/trend/']"; + String CONTROLS_ENUMS_CONTROL_TYPES = CONTROL_MENU_UL + "//a[@href='/controlsom/controltype/']"; + String CONTROLS_ENUMS_PRODUCT_TYPES = CONTROL_MENU_UL + "//a[@href='/controlsom/producttype/']"; + String CONTROLS_ENUMS_CONTROL_RESULTS = CONTROL_MENU_UL + "//a[@href='/controlsom/controlresult/']"; + + String SECURITY_ENUMS_CONTROLS_TYPES = CONTROL_MENU_UL + "//a[@href='/controlsom/securitytype/']"; + String SECURITY_ENUMS_CONTROL_RESULTS = CONTROL_MENU_UL + "//a[@href='/controlsom/securityresult/']"; + + String REPORTS_CONTROLS_ON_OM = CONTROL_MENU_UL + "//a[@href='/controlsom/processreport/']"; + + @Click(CONTROLS_ON_OM) + ControlsOnOmPage clickControlsOnOM(); + + @Click(CONTROLS_ENUMS_TOTAL_RESULT) + BrnControlsUniversalEnumInterface clickControlsEnumsTotalResult(); + + @Click(CONTROLS_ENUMS_ERROR_TYPES) + BrnControlsUniversalEnumInterface clickControlsEnumsErrorTypes(); + + @Click(CONTROLS_ENUMS_TRANSACTION_FORMS) + BrnControlsUniversalEnumInterface clickControlsEnumsTransactionForms(); + + @Click(CONTROLS_ENUMS_TRANSACTION_TYPES) + BrnControlsUniversalEnumInterface clientControlsEnumsTransactionTypes(); + + @Click(CONTROLS_ENUMS_TREND_CONTROL) + BrnControlsUniversalEnumInterface clickControlsEnumsTrendControl(); + + @Click(CONTROLS_ENUMS_CONTROL_TYPES) + BrnControlsUniversalEnumInterface clickControlsEnumsControlTypes(); + + @Click(CONTROLS_ENUMS_PRODUCT_TYPES) + BrnControlsUniversalEnumInterface clickControlsEnumsProductTypes(); + + @Click(CONTROLS_ENUMS_CONTROL_RESULTS) + BrnControlsUniversalEnumInterface clickControlsEnumsControlResults(); + + @Click(SECURITY_ENUMS_CONTROLS_TYPES) + BrnControlsUniversalEnumInterface clickSecurityEnumsControlsTypes(); + + @Click(SECURITY_ENUMS_CONTROL_RESULTS) + BrnControlsUniversalEnumInterface clickSecurityEnumsControlResults(); + + @Click(REPORTS_CONTROLS_ON_OM) + ReportControlsOnOm clickReportsControlsOnOM(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/components/ContractsMenu.java b/tests/src/main/java/cz/moneta/test/dsl/forte/components/ContractsMenu.java new file mode 100644 index 0000000..5d53499 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/components/ContractsMenu.java @@ -0,0 +1,67 @@ +package cz.moneta.test.dsl.forte.components; + +import cz.moneta.test.dsl.forte.pages.contracts.*; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.components.BranchesMenu.CONTROL_MENU_UL; + +@Wait(CONTROL_MENU_UL) +public interface ContractsMenu extends RoleSelection, Builder { + String CONTROL_MENU_UL = LEFT_PANEL + "//ul[@class='control menu']"; + String PAYMENTS_LIST_LINK = CONTROL_MENU_UL + "//a[@href='/contracts/payments/']"; + String FIND_CONTRACTS_LINK = CONTROL_MENU_UL + "//a[@href='/contracts/find/']"; + + String ENUMS_CDR_ACCOUNTS = CONTROL_MENU_UL + "//a[@href='/contracts/cdraccount/']"; + String ENUMS_CURRENCY = CONTROL_MENU_UL + "//a[@href='/contracts/currency/']"; + String ENUMS_COST_CENTERS = CONTROL_MENU_UL + "//a[@href='/contracts/costcenter/']"; + String ENUMS_DPH_RATES = CONTROL_MENU_UL + "//a[@href='/contracts/dph/']"; + String ENUMS_PAYMENT_CATEGORIES = CONTROL_MENU_UL + "//a[@href='/contracts/paymenttype/']"; + String ENUMS_PAYMENT_TERMS = CONTROL_MENU_UL + "//a[@href='/contracts/paymenttermtype/']"; + String ENUMS_VALORIZATION = CONTROL_MENU_UL + "//a[@href='/contracts/valorizationtype/']"; + String ENUMS_ACCOUNTING_BRIDGE = CONTROL_MENU_UL + "//a[@href='/contracts/bridge/']"; + String ENUMS_CHANGE_TYPES = CONTROL_MENU_UL + "//a[@href='/contracts/changetype/']"; + String ENUMS_DISCOUNT_RATES = CONTROL_MENU_UL + "//a[@href='/contracts/discountrate/']"; + String ENUMS_BLE = CONTROL_MENU_UL + "//a[@href='/contracts/bletype/']"; + + @Click(PAYMENTS_LIST_LINK) + ListPaymentsPage clickPaymentsList(); + + @Click(FIND_CONTRACTS_LINK) + FindContractsPage clickFindContracts(); + + @Click(ENUMS_CDR_ACCOUNTS) + ContractsUniversalEnumInterface clickEnumsCdrAccounts(); + + @Click(ENUMS_CURRENCY) + ContractsUniversalEnumInterface clickEnumsCurrency(); + + @Click(ENUMS_COST_CENTERS) + ContractsUniversalEnumInterface clickEnumsCostCenters(); + + @Click(ENUMS_DPH_RATES) + ContractsUniversalEnumInterface clickEnumsDphRates(); + + @Click(ENUMS_PAYMENT_CATEGORIES) + ContractsUniversalEnumInterface clickEnumsPaymentCategories(); + + @Click(ENUMS_PAYMENT_TERMS) + ContractsUniversalEnumInterface clickEnumsPaymentTerms(); + + @Click(ENUMS_VALORIZATION) + ContractsUniversalEnumInterface clickEnumsValorization(); + + @Click(ENUMS_ACCOUNTING_BRIDGE) + ContractsUniversalEnumInterface clickEnumsAccountingBridge(); + + @Click(ENUMS_CHANGE_TYPES) + ContractsUniversalEnumInterface clickEnumsChangeTypes(); + + @Click(ENUMS_DISCOUNT_RATES) + ContractsUniversalEnumInterface clickEnumsDiscountRates(); + + @Click(ENUMS_BLE) + ContractsUniversalEnumInterface clickEnumsBLE(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/components/ForteRoles.java b/tests/src/main/java/cz/moneta/test/dsl/forte/components/ForteRoles.java new file mode 100644 index 0000000..e3b2fa0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/components/ForteRoles.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.forte.components; + +import cz.moneta.test.harness.support.web.SelectByValue; + +public enum ForteRoles implements SelectByValue { + USER_MODE("Uživatelský režim"), + SUPERUSER("Superuživatel"), + ADMIN_RETAIL("Administrátor retail"), + BANKER("Bankéř"), + APP_ADMIN("Správce aplikace"), + RSZP("RSZP"), + ADMINISTRATOR("Administrátor"), + OPERATOR_FINANCE("Operátor finance"), + OPERATOR_IFRS("Operátor IFRS"); + + String roleName; + ForteRoles(String roleName) { + this.roleName = roleName; + } + + @Override + public String getValue() { + return roleName; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/components/PortalMenu.java b/tests/src/main/java/cz/moneta/test/dsl/forte/components/PortalMenu.java new file mode 100644 index 0000000..160fc84 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/components/PortalMenu.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.forte.components; + +import cz.moneta.test.dsl.forte.pages.portal.LogsPage; +import cz.moneta.test.dsl.forte.pages.portal.PortalMainPage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.components.PortalMenu.CONTROL_MENU_UL; + +@Wait(CONTROL_MENU_UL) +public interface PortalMenu extends RoleSelection, Builder { + String SIDE_BLOCK_DIV = "//div[@class='side-block']"; + String CONTROL_MENU_UL = SIDE_BLOCK_DIV + "//ul[@class='control menu']"; + String PARTITION_DIV = SIDE_BLOCK_DIV + "//div[@class='partition']"; + String LOGS_LINK = PARTITION_DIV + "//a[@href='/portal/log/']"; + + @Click(LOGS_LINK) + LogsPage clickLogs(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/components/RoleSelection.java b/tests/src/main/java/cz/moneta/test/dsl/forte/components/RoleSelection.java new file mode 100644 index 0000000..71331e9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/components/RoleSelection.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.forte.components; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.forte.ForteEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.components.RoleSelection.ROLE_MENU; + +@Wait(ROLE_MENU) +public interface RoleSelection extends Builder, StoreAccessor { + String LEFT_PANEL = "//div[@class='side-block']"; + String ROLE_MENU = LEFT_PANEL + "//select[@id='frmroleForm-role']"; + String MAIN_CATEGORY = LEFT_PANEL + "//a[starts-with(text(), 'Úvod')]"; + + @CustomAction + default T selectRoleMenu(ForteRoles valueRole) { + ForteEndpoint endpoint = getEndpoint(ForteEndpoint.class); + endpoint.selectByVisibleText(ROLE_MENU, valueRole.getValue()); + endpoint.waitForElementsToLoad(10, Lookup.ID, Until.GONE, FortePageFlow.SPINNER); + endpoint.click(() -> MAIN_CATEGORY); + endpoint.waitForElementsToLoad(10, Lookup.ID, Until.GONE, FortePageFlow.SPINNER); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/ForteHeaderMenu.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/ForteHeaderMenu.java new file mode 100644 index 0000000..dc12305 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/ForteHeaderMenu.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.forte.pages; + +import cz.moneta.test.dsl.forte.pages.appointments.AppointmentsMainPage; +import cz.moneta.test.dsl.forte.pages.brncontrols.BrnControlsMainPage; +import cz.moneta.test.dsl.forte.pages.contracts.ContractsMainPage; +import cz.moneta.test.dsl.forte.pages.portal.PortalMainPage; +import cz.moneta.test.dsl.forte.pages.branches.BranchesMainPage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.ForteHeaderMenu.HOME_PAGE_LINK; +import static cz.moneta.test.dsl.forte.pages.ForteHeaderMenu.NAVIGATION_DIV; + +@Wait({NAVIGATION_DIV, HOME_PAGE_LINK}) +public interface ForteHeaderMenu extends Builder { + String HEADER_DIV = "//div[@class='header']"; + String NAVIGATION_DIV = HEADER_DIV + "//div[@class='navigation']"; + String HOME_PAGE_LINK = HEADER_DIV + "//a[@href='/portal/home/']"; + String APPOINTMENTS_LINK = NAVIGATION_DIV + "//a[@href='/appointments/']"; + String CONTRACTS_LINK = NAVIGATION_DIV + "//a[@href='/contracts/']"; + String BRANCHES_LINK = NAVIGATION_DIV + "//a[@href='/branches/']"; + String CONTROLS_OM_LINK = NAVIGATION_DIV + "//a[@href='/controlsom/']"; + + @Click(HOME_PAGE_LINK) + PortalMainPage clickPortal(); + + @Click(APPOINTMENTS_LINK) + AppointmentsMainPage clickAppointments(); + + @Click(CONTRACTS_LINK) + ContractsMainPage clickContracts(); + + @Click(BRANCHES_LINK) + BranchesMainPage clickBranches(); + + @Click(CONTROLS_OM_LINK) + BrnControlsMainPage clickControlsOM(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/ForteHomePage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/ForteHomePage.java new file mode 100644 index 0000000..712d571 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/ForteHomePage.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.forte.pages; + +import cz.moneta.test.dsl.forte.FortePageFlow; + +/** + * Pseudo home page aby se před každým testem vybrala aplikace v které se bude pracovat + */ +public interface ForteHomePage extends FortePageFlow, ForteHeaderMenu { + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/AppointmentDetail.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/AppointmentDetail.java new file mode 100644 index 0000000..1d527c6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/AppointmentDetail.java @@ -0,0 +1,55 @@ +package cz.moneta.test.dsl.forte.pages.appointments; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.AppointmentsMenu; +import cz.moneta.test.harness.support.web.GetElementContent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.appointments.AppointmentDetail.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface AppointmentDetail extends FortePageFlow, AppointmentsMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[contains(text(), 'Detail schůzky:')]"; + + String CLIENT_NAME = "//tr[./td[text()='Klient']]/td[2]"; + String CLIENT_PHONE_NUMBER = "//tr[./td[text()='Telefon']]/td[2]"; + String CLIENT_EMAIL = "//tr[./td[text()='Email']]/td[2]"; + String APPOINTMENT_PRODUCT = "//tr[./td[text()='Produkt']]/td[2]"; + String APPOINTMENT_DATE = "//tr[./td[text()='Datum']]/td[2]"; + String APPOINTMENT_TIME_FROM = "//tr[./td[text()='Začátek']]/td[2]"; + String APPOINTMENT_TIME_TO = "//tr[./td[text()='Konec']]/td[2]"; + String APPOINTMENT_DURATION = "//tr[./td[text()='Trvání']]/td[2]"; + String APPOINTMENT_SOURCE = "//tr[./td[text()='Zdroj']]/td[2]"; + String APPOINTMENT_NOTE = "//tr[./td[text()='Poznámka']]/td[2]"; + + @GetElementContent(CLIENT_NAME) + String getClientName(); + + @GetElementContent(CLIENT_PHONE_NUMBER) + String getClientPhoneNumber(); + + @GetElementContent(CLIENT_EMAIL) + String getClientEmail(); + + @GetElementContent(APPOINTMENT_PRODUCT) + String getAppointmentProduct(); + + @GetElementContent(APPOINTMENT_DATE) + String getAppointmentDate(); + + @GetElementContent(APPOINTMENT_TIME_FROM) + String getAppointmentTimeFrom(); + + @GetElementContent(APPOINTMENT_TIME_TO) + String getAppointmentTimeTo(); + + @GetElementContent(APPOINTMENT_DURATION) + String getAppointmentDuration(); + + @GetElementContent(APPOINTMENT_SOURCE) + String getAppointmentSource(); + + @GetElementContent(APPOINTMENT_NOTE) + String getAppointmentNote(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/AppointmentsMainPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/AppointmentsMainPage.java new file mode 100644 index 0000000..28a8e8a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/AppointmentsMainPage.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.forte.pages.appointments; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.AppointmentsMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.appointments.AppointmentsMainPage.HOME_TITLE; + + +@Wait(HOME_TITLE) +public interface AppointmentsMainPage extends FortePageFlow, AppointmentsMenu { + String HOME_TITLE = "//title[text()='Schůzky | FORTE ']"; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/BankersOnBranchPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/BankersOnBranchPage.java new file mode 100644 index 0000000..72e8f4c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/BankersOnBranchPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.forte.pages.appointments; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.AppointmentsMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.appointments.BankersOnBranchPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface BankersOnBranchPage extends FortePageFlow, AppointmentsMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[contains(text(), 'Správa bankéřů na pobočce')]"; + String CHANGE_BUTTON = CONTENT_DIV + "//a[@href='/appointments/branchbankers/?do=capacityForm-show']"; + String CAPACITY_FORM = "//form[@id='frm-capacityForm-capacityForm']"; + String CAPACITY = CAPACITY_FORM + "//input[@id='frmcapacityForm-capacity']"; + String CHANGE_CAPACITY_BUTTON = CAPACITY_FORM + "//input[@name='add']"; + String BRANCH_CAPACITY_LABEL = "//div[@class='capacity']"; + + @Click(value = CHANGE_BUTTON, andWait = @Wait(CAPACITY)) + BankersOnBranchPage clickChangeCapacity(); + + @TypeInto(value = CAPACITY, clear = true) + BankersOnBranchPage fillCapacity(int capacityCount); + + @Click(value = CHANGE_CAPACITY_BUTTON, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + BankersOnBranchPage clickSetCapacity(); + + @CheckElementContent(BRANCH_CAPACITY_LABEL) + BankersOnBranchPage checkBranchCapacity(int capacity); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/ListOfEmptySlotsPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/ListOfEmptySlotsPage.java new file mode 100644 index 0000000..9016a35 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/ListOfEmptySlotsPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.forte.pages.appointments; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.AppointmentsMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.appointments.ListOfEmptySlotsPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ListOfEmptySlotsPage extends FortePageFlow, AppointmentsMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[text()='Seznam volných slotů na pobočkách']"; + String SLOTS_TABLE = CONTENT_DIV + "//form[@action='/appointments/branchplaces/']"; + + @CheckElementPresent(SLOTS_TABLE) + ListOfEmptySlotsPage checkTablePresents(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/NotSignedAppointments.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/NotSignedAppointments.java new file mode 100644 index 0000000..b212434 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/NotSignedAppointments.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.forte.pages.appointments; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.AppointmentsMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.appointments.NotSignedAppointments.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface NotSignedAppointments extends FortePageFlow, AppointmentsMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[text()='Schůzky bez přiděleného bankéře']"; + String APPOINTMENTS_TABLE = CONTENT_DIV + "//form[@action='/appointments/notassigned/']"; + + String CLIENT_FILTER_INPUT = "//input[@name='filters[client]']"; + String NOTE_FILTER_INPUT = "//input[@name='filters[note]']"; + String SUBMIT_FILTER_BUTTON = "//label[./*[@id='filter-grid']]"; + String FIRST_APPOINTMENT_DETAIL_BUTTON = "(//a[@title='Detail schůzky']/span)[1]"; + + @CheckElementPresent(APPOINTMENTS_TABLE) + NotSignedAppointments checkTablePresents(); + + @TypeInto(CLIENT_FILTER_INPUT) + NotSignedAppointments fillClientFilter(String clientName); + + @TypeInto(NOTE_FILTER_INPUT) + NotSignedAppointments fillNoteFilter(String note); + + @Click(value = SUBMIT_FILTER_BUTTON) + NotSignedAppointments clickSubmitFilter(); + + @Click(value = FIRST_APPOINTMENT_DETAIL_BUTTON) + AppointmentDetail clickFirstAppointmentDetail(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/ProductTypesPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/ProductTypesPage.java new file mode 100644 index 0000000..02f7afa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/ProductTypesPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.forte.pages.appointments; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.AppointmentsMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.appointments.ProductTypesPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ProductTypesPage extends FortePageFlow, AppointmentsMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[text()='Typ produktu']"; + String PRODUCTS_TABLE = CONTENT_DIV + "//form[@action='/appointments/producttype/']"; + + @CheckElementPresent(PRODUCTS_TABLE) + ProductTypesPage checkTablePresents(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/RolesAdministrationPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/RolesAdministrationPage.java new file mode 100644 index 0000000..180d89f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/RolesAdministrationPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.forte.pages.appointments; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.AppointmentsMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.appointments.RolesAdministrationPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface RolesAdministrationPage extends FortePageFlow, AppointmentsMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[text()='Správa rolí']"; + String ROLES_TABLE = CONTENT_DIV + "//form[@action='/appointments/role/']"; + + @CheckElementPresent(ROLES_TABLE) + RolesAdministrationPage checkTablePresents(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/SelectOMPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/SelectOMPage.java new file mode 100644 index 0000000..3bded2a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/appointments/SelectOMPage.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.forte.pages.appointments; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.AppointmentsMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.appointments.SelectOMPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface SelectOMPage extends FortePageFlow, AppointmentsMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[text()='Výběr OM']"; + String OM_NAME = "//input[@class='typeSearch text ui-autocomplete-input']"; + String FIRST_SEARCHED_OM = "//div[@class='ui-menu-item-wrapper']"; + String FORM_DIALOG = "//div[@id='snippet-newBranchForm-']"; + String ROLE_MENU = FORM_DIALOG + "//select[@id='frmnewBranchForm-role']"; + String ADD_OM_BUTTON = FORM_DIALOG + "//input[@type='submit']"; + String SET_ACTIVE_BRANCH_BUTTON = CONTENT_DIV + "//input[@type='submit']"; + + @TypeInto(value = OM_NAME) + SelectOMPage fillBranchName(String branchName); + + @Click(FIRST_SEARCHED_OM) + SelectOMPage clickFirstSearchedOm(); + + @Select(ROLE_MENU) + SelectOMPage clickRoleMenu(String roleName); + + @Click(value = ADD_OM_BUTTON, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + SelectOMPage clickSubmit(); + + @Click(SET_ACTIVE_BRANCH_BUTTON) + BankersOnBranchPage clickSetActiveBranch(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/BranchesMainPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/BranchesMainPage.java new file mode 100644 index 0000000..b7841a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/BranchesMainPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.forte.pages.branches; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.BranchesMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.branches.BranchesMainPage.HOME_TITLE; + +@Wait(HOME_TITLE) +public interface BranchesMainPage extends FortePageFlow, BranchesMenu { + String HOME_TITLE = "//title[text()='Pobočky | FORTE ']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/DocumentsListPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/DocumentsListPage.java new file mode 100644 index 0000000..45ef257 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/DocumentsListPage.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.forte.pages.branches; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.BranchesMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.branches.DocumentsListPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface DocumentsListPage extends FortePageFlow, BranchesMenu { + + String PAGE_TITLE = CONTENT_DIV + "//h3[starts-with(text(), 'Přehled dokumentů pobočky')]"; + String ADD_PHOTO_OR_DOCUMENT_LINK = CONTENT_DIV + "//a[@title='Vytvořit nový záznam']//span[@class='icon-container']"; + String NEW_FORM = "//form[@id='frm-newItemForm-newItemForm']"; + String NEW_RECORD_NAME_INPUT = NEW_FORM + "//input[@name='name']"; + String NEW_RECORD_ADD_BUTTON = NEW_FORM + "//input[@name='add']"; + String NEW_RECORD_FILE_UPLOAD = NEW_FORM + "//input[@name='file']"; + String DOCUMENT_NAME = CONTENT_DIV + "//table[@class='datagrid']//tbody//tr//span[text()='%s']"; + String REMOVE_LAST_DOCUMENT_LINK = "//table[@class='datagrid']//tr[last()]//a[@title='Smazat záznam']//span[@class='icon-container']"; + + String YES_BUTTON = "//form[@id='frm-confirmForm-confirmationDialogForm']//button[@name='yes']"; + + @Click(value = ADD_PHOTO_OR_DOCUMENT_LINK, andWait = @Wait(NEW_RECORD_NAME_INPUT)) + DocumentsListPage clickAddNewPhotoDocument(); + + @TypeInto(NEW_RECORD_NAME_INPUT) + DocumentsListPage fillRecordName(String name); + + @FileUpload(NEW_RECORD_FILE_UPLOAD) + DocumentsListPage uploadDocument(String documentPath); + + @Click(value = NEW_RECORD_ADD_BUTTON, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + DocumentsListPage clickAddButton(); + + @CheckElementPresent(value = DOCUMENT_NAME, isStringDynamicXpath = true) + DocumentsListPage checkDocumentPresence(String documentName); + + @Click(value = REMOVE_LAST_DOCUMENT_LINK, andWait = @Wait(YES_BUTTON)) + DocumentsListPage clickRemoveLastDocument(); + + @Click(value = YES_BUTTON, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + DocumentsListPage clickYes(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbBranchDetailMapPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbBranchDetailMapPage.java new file mode 100644 index 0000000..88a0fd1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbBranchDetailMapPage.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.forte.pages.branches; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.BranchesMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.branches.MmbBranchDetailMapPage.MAP_CANVAS; +import static cz.moneta.test.dsl.forte.pages.branches.MmbBranchDetailMapPage.PAGE_TITLE; + +@Wait({PAGE_TITLE, MAP_CANVAS}) +public interface MmbBranchDetailMapPage extends FortePageFlow, BranchesMenu { // TODO: dodělat a přejmenovat + String PAGE_TITLE = CONTENT_DIV + "//h3[starts-with(text(), 'Mapa pobočky')]"; + String MAP_CANVAS = CONTENT_DIV + "//canvas"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbBranchDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbBranchDetailPage.java new file mode 100644 index 0000000..44ad567 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbBranchDetailPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.forte.pages.branches; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.BranchesMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.branches.MmbBranchDetailPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface MmbBranchDetailPage extends FortePageFlow, BranchesMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[starts-with(text(), 'Detail pobočky')]"; + String SHOW_ON_MAP_LINK = CONTENT_DIV + "//a[@title='Zobrazit na mapě']//span[@class='iconbox']"; + String PHOTO_ADMINISTRATION_LINK = CONTENT_DIV + "//a[@title='Správa foto/dokumentů']//span[@class='iconbox']"; + + @Click(SHOW_ON_MAP_LINK) + MmbBranchDetailMapPage clickShowOnMap(); + + @Click(PHOTO_ADMINISTRATION_LINK) + DocumentsListPage clickPhotoAdministration(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbBranchesListPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbBranchesListPage.java new file mode 100644 index 0000000..80ab0ec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbBranchesListPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.forte.pages.branches; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.BranchesMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.branches.MmbBranchesListPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface MmbBranchesListPage extends FortePageFlow, BranchesMenu { + + String PAGE_TITLE = CONTENT_DIV + "//h3[starts-with(text(), 'Seznam poboček')]"; + String EXPORT_TO_EXCEL_BUTTON = CONTENT_DIV + "//table[@class='datagrid']//a[@title='Exportovat do Excelu']//span[@class='icon-container']"; + String FILTER_FORM = CONTENT_DIV + "//form[@id='frm-grid-form']"; + String ADDRESS_FILTER_INPUT = FILTER_FORM + "//input[@id='frm-datagrid-grid-form-filters-address']"; + String SUBMIT_FILTER_BUTTON = FILTER_FORM + "//label[./*[@id='filter-grid']]"; + String FIRST_BRANCH_DETAIL_LINK = CONTENT_DIV + "//table[@class='datagrid']//tbody//child::tr[1]//a"; + + @TypeInto(value = ADDRESS_FILTER_INPUT, clear = true) + MmbBranchesListPage fillAddressFilter(String address); + + @Click(value = SUBMIT_FILTER_BUTTON, andWait = @Wait(value = SPINNER, until = Until.GONE,by = Lookup.ID)) + MmbBranchesListPage clickSubmitFilter(); + + @Click(FIRST_BRANCH_DETAIL_LINK) + MmbBranchDetailPage clickFirstBranchDetail(); + + @Click(EXPORT_TO_EXCEL_BUTTON) + MmbBranchesListPage clickExportToExcel(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbFindBranchesPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbFindBranchesPage.java new file mode 100644 index 0000000..ae3f550 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/branches/MmbFindBranchesPage.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.forte.pages.branches; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.BranchesMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.branches.MmbFindBranchesPage.PAGE_TITLE; +import static cz.moneta.test.dsl.forte.pages.branches.MmbFindBranchesPage.SEARCH_BUTTON; + +@Wait({PAGE_TITLE, SEARCH_BUTTON}) +public interface MmbFindBranchesPage extends FortePageFlow, BranchesMenu { + + String PAGE_TITLE = CONTENT_DIV + "//h3[text()='Vyhledávání poboček']"; + String SEARCH_FORM = CONTENT_DIV + "//form[@id='frm-findForm-findForm']"; + String BRANCH_NAME_INPUT = SEARCH_FORM + "//input[@name='branch']"; + String SEARCH_BUTTON = SEARCH_FORM + "//input[@name='_submit']"; + String FOUND_BRANCHES_DIV = CONTENT_DIV + "//div[@id='snippet--results']"; + String FOUND_BRANCHES_TITLE = FOUND_BRANCHES_DIV + "//h4[text()='Nalezené pobočky']"; + String FOUND_BRANCHES_RESULT_TABLE = FOUND_BRANCHES_DIV + "//a[starts-with(text(), '%s')]"; + + @TypeInto(value = BRANCH_NAME_INPUT, clear = true) + MmbFindBranchesPage fillBranchName(String branchName); + + @Click(value = SEARCH_BUTTON, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + MmbFindBranchesPage clickSearch(); + + @CheckElementPresent(FOUND_BRANCHES_TITLE) + MmbFindBranchesPage checkFoundBranchesTitle(); + + @CheckElementPresent(value = FOUND_BRANCHES_RESULT_TABLE, isStringDynamicXpath = true) + MmbFindBranchesPage checkFoundBranchesElements(String expectedLinkString); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/BrnControlsMainPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/BrnControlsMainPage.java new file mode 100644 index 0000000..a448b34 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/BrnControlsMainPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.forte.pages.brncontrols; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.BrnControlsMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.brncontrols.BrnControlsMainPage.HOME_TITLE; + +@Wait(HOME_TITLE) +public interface BrnControlsMainPage extends FortePageFlow, BrnControlsMenu { + String HOME_TITLE = "//title[text()='Kontroly OM | FORTE ']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/BrnControlsUniversalEnumInterface.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/BrnControlsUniversalEnumInterface.java new file mode 100644 index 0000000..7b88811 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/BrnControlsUniversalEnumInterface.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.forte.pages.brncontrols; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.BrnControlsMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.brncontrols.BrnControlsUniversalEnumInterface.HOME_TITLE; +import static cz.moneta.test.dsl.forte.pages.brncontrols.BrnControlsUniversalEnumInterface.TABLE_FIRST_ROW_TITLE; + +/** + * Interface for branch controls checks + * This just check if enum table is loaded + * Don't use it with specific work on specific enum. You can extend this interface + */ +@Wait({HOME_TITLE, TABLE_FIRST_ROW_TITLE}) +public interface BrnControlsUniversalEnumInterface extends FortePageFlow, BrnControlsMenu { + String HOME_TITLE = "//title[text()='Kontroly OM | FORTE ']"; + String TABLE_FIRST_ROW_TITLE = CONTENT_DIV + "//table[@class='datagrid']//tr"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/ControlDetail.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/ControlDetail.java new file mode 100644 index 0000000..bdf93ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/ControlDetail.java @@ -0,0 +1,59 @@ +package cz.moneta.test.dsl.forte.pages.brncontrols; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.BrnControlsMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.brncontrols.ControlDetail.HOME_TITLE; + +@Wait(HOME_TITLE) +public interface ControlDetail extends FortePageFlow, BrnControlsMenu { + String HOME_TITLE = "//title[text()='Kontroly OM | FORTE ']"; + + String TRANSACTION_CONTROLS_ADD_BUTTON = "//form[@id='frm-transactionGrid-form']//span[text()='Přidat']"; + String ADD_TRANSACTION_CONTROL_FORM = "//form[@id='frm-newTransactionForm-newTransactionForm']"; + String CONTROL_TYPE_SELECT = ADD_TRANSACTION_CONTROL_FORM + "//select[@id='frmnewTransactionForm-type']"; + String TRANSACTION_DATE_INPUT = ADD_TRANSACTION_CONTROL_FORM + "//input[@id='frmnewTransactionForm-date_transaction']"; + String ACCOUNT_NUMBER_INPUT = ADD_TRANSACTION_CONTROL_FORM + "//input[@id='frmnewTransactionForm-account_number']"; + String TRANSACTION_NUMBER_INPUT = ADD_TRANSACTION_CONTROL_FORM + "//input[@id='frmnewTransactionForm-transaction_number']"; + String TRANSACTION_TYPE_SELECT = ADD_TRANSACTION_CONTROL_FORM + "//select[@id='frmnewTransactionForm-transaction_type']"; + String CONTROL_RESULT_SELECT = ADD_TRANSACTION_CONTROL_FORM + "//select[@id='frmnewTransactionForm-result']"; + String BANKER_SSO_INPUT = ADD_TRANSACTION_CONTROL_FORM + "//input[@id='frmnewTransactionForm-sso_banker']"; + String FIRST_FOUND_BANKER = "//li//div[contains(text(),'%s')]"; + String SUBMIT_BUTTON = ADD_TRANSACTION_CONTROL_FORM + "//input[@name='add']"; + + String FIRST_TRANSACTION_DATE = "//form[@id='frm-transactionGrid-form']//tbody//tr//td[3]"; + + @Click(value = TRANSACTION_CONTROLS_ADD_BUTTON, andWait = @Wait(CONTROL_TYPE_SELECT)) + ControlDetail clickAddTransactionControl(); + + @Select(value = CONTROL_TYPE_SELECT, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + ControlDetail selectControlType(int value); + + @TypeInto(value = TRANSACTION_DATE_INPUT, clear = true) + @KeyPress(Key.TAB) + ControlDetail fillTransactionDate(String transactionDate); + + @TypeInto(ACCOUNT_NUMBER_INPUT) + ControlDetail fillAccountNumber(String account); + + @TypeInto(TRANSACTION_NUMBER_INPUT) + ControlDetail fillTransactionNumber(String transactionNumber); + + @Select(value = TRANSACTION_TYPE_SELECT, andWait = @Wait(value = SPINNER, until = Until.GONE,by = Lookup.ID)) + ControlDetail selectTransactionType(int value); + + @Select(value = CONTROL_RESULT_SELECT, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + ControlDetail selectControlResult(int value); + + @TypeInto(value = BANKER_SSO_INPUT, andWait = @Wait(explicitWaitSeconds = 3)) + @Click(value = FIRST_FOUND_BANKER, isStringDynamicXpath = true) + ControlDetail fillBankerSSO(String sso); + + @Click(value = SUBMIT_BUTTON, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + ControlDetail clickSubmit(); + + @CheckElementPresent(FIRST_TRANSACTION_DATE) + ControlsOnOmPage checkFirstTransactionDate(String date); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/ControlsOnOmPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/ControlsOnOmPage.java new file mode 100644 index 0000000..8a5ba19 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/brncontrols/ControlsOnOmPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.forte.pages.brncontrols; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.BrnControlsMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.brncontrols.ControlsOnOmPage.HOME_TITLE; + +@Wait(HOME_TITLE) +public interface ControlsOnOmPage extends FortePageFlow, BrnControlsMenu { + String HOME_TITLE = "//title[text()='Kontroly OM | FORTE ']"; + + String CURRENT_MONTH_BUTTON = "//div[@class='controlContainer']//input[@name='nowBtn']"; + String FIRST_CONTROL_DETAIL_BUTTON = "//form[@id='frm-grid-form']//span[@class='ge-icon fa icon icon-view ge-color-blue']"; + + @Click(CURRENT_MONTH_BUTTON) + ControlsOnOmPage clickCurrentQuarterFilterButton(); + + @Click(FIRST_CONTROL_DETAIL_BUTTON) + ControlDetail clickFirstControlDetail(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ContractDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ContractDetailPage.java new file mode 100644 index 0000000..287e5c1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ContractDetailPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.forte.pages.contracts; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.ContractsMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.contracts.ContractDetailPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ContractDetailPage extends FortePageFlow, ContractsMenu { + String PAGE_TITLE = "//h3[text()='Detail smlouvy']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ContractsMainPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ContractsMainPage.java new file mode 100644 index 0000000..ed56b39 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ContractsMainPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.forte.pages.contracts; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.ContractsMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.contracts.ContractsMainPage.HOME_TITLE; + +@Wait(HOME_TITLE) +public interface ContractsMainPage extends FortePageFlow, ContractsMenu { + String HOME_TITLE = "//title[text()='Evidence smluv | FORTE ']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ContractsUniversalEnumInterface.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ContractsUniversalEnumInterface.java new file mode 100644 index 0000000..716e0da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ContractsUniversalEnumInterface.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.forte.pages.contracts; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.ContractsMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.contracts.ContractsUniversalEnumInterface.HOME_TITLE; +import static cz.moneta.test.dsl.forte.pages.contracts.ContractsUniversalEnumInterface.TABLE_FIRST_ROW_TITLE; + +/** + * Interface for contracts checks + * This just check if enum table is loaded + * Don't use it with specific work on specific enum. You can extend this interface + */ +@Wait({HOME_TITLE, TABLE_FIRST_ROW_TITLE}) +public interface ContractsUniversalEnumInterface extends FortePageFlow, ContractsMenu { + String HOME_TITLE = "//title[text()='Evidence smluv | FORTE ']"; + String TABLE_FIRST_ROW_TITLE = CONTENT_DIV + "//table[@class='datagrid']//tr"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/FindContractsPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/FindContractsPage.java new file mode 100644 index 0000000..95b2f92 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/FindContractsPage.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.forte.pages.contracts; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.ContractsMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.contracts.FindContractsPage.*; + +@Wait({PAGE_TITLE, CLEAR_BUTTON, SEARCH_BUTTON}) +public interface FindContractsPage extends FortePageFlow, ContractsMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[text()='Hledat smlouvu']"; + String SEARCH_FORM = CONTENT_DIV + "//form[@id='frm-searchForm-searchForm']"; + String SEARCH_BY_SELECT = SEARCH_FORM + "//select[@name='search_type']"; + String CONTRACT_NUMBER_INPUT = SEARCH_FORM + "//input[@name='contract_num']"; + String CONTRACT_NAME_INPUT = SEARCH_FORM + "//input[@name='contract_name']"; + String CLEAR_BUTTON = SEARCH_FORM + "//input[@name='clear']"; + String SEARCH_BUTTON = SEARCH_FORM + "//input[@name='search']"; + + String RESULT_FORM = CONTENT_DIV + "//form[@id='frm-grid-form']"; + String FIRST_RESULT_DETAIL_BUTTON = RESULT_FORM + "//span[@class='ge-icon fa icon icon-view ge-color-blue'][1]"; + + @Select(SEARCH_BY_SELECT) + FindContractsPage selectSearchBy(String searchBy); + + @TypeInto(CONTRACT_NUMBER_INPUT) + FindContractsPage fillContractNumber(String contractNumber); + + @TypeInto(CONTRACT_NAME_INPUT) + FindContractsPage fillContractName(String contractName); + + @Click(value = CLEAR_BUTTON, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + FindContractsPage clickClearForm(); + + @Click(value = SEARCH_BUTTON, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + FindContractsPage clickSearchContract(); + + @Click(FIRST_RESULT_DETAIL_BUTTON) + ContractDetailPage clickFirstResultDetail(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ListPaymentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ListPaymentsPage.java new file mode 100644 index 0000000..6ba2664 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ListPaymentsPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.forte.pages.contracts; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.ContractsMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.contracts.ListPaymentsPage.PAGE_TITLE; +import static cz.moneta.test.dsl.forte.pages.contracts.ListPaymentsPage.FIRST_PAYMENT_DETAIL_BUTTON; + +@Wait({PAGE_TITLE, FIRST_PAYMENT_DETAIL_BUTTON}) +public interface ListPaymentsPage extends FortePageFlow, ContractsMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[text()='Přehled všech plateb za období']"; + String CURRENT_MONTH_BUTTON = "//div[@class='controlContainer']//input[@name='nowBtn']"; + + String RESULT_FORM = CONTENT_DIV + "//form[@id='frm-grid-form']"; + String FIRST_PAYMENT_DETAIL_BUTTON = RESULT_FORM + "//span[@class='ge-icon fa icon icon-view ge-color-blue']"; + + @Click(value = CURRENT_MONTH_BUTTON, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + ListPaymentsPage clickCurrentMonth(); + + @Click(FIRST_PAYMENT_DETAIL_BUTTON) + PaymentDetailPage clickFirstPaymentDetail(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/PaymentDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/PaymentDetailPage.java new file mode 100644 index 0000000..8bfebff --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/PaymentDetailPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.forte.pages.contracts; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.ContractsMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.contracts.PaymentDetailPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface PaymentDetailPage extends FortePageFlow, ContractsMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[contains(text(), 'Platební podmínky ke smlouvě č.')]"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ReportControlsOnOm.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ReportControlsOnOm.java new file mode 100644 index 0000000..5ae3f59 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/contracts/ReportControlsOnOm.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.forte.pages.contracts; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.BrnControlsMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.forte.pages.contracts.ReportControlsOnOm.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ReportControlsOnOm extends FortePageFlow, BrnControlsMenu { + String PAGE_TITLE = CONTENT_DIV + "//h3[text()='Report kontrol na OM']"; + + String QUARTER_SELECT = CONTENT_DIV + "//select[@id='frmfindForm-quarter']"; + + String SUBMIT_BUTTON = CONTENT_DIV + "//input[@name='search']"; + + String RESULT_TABLE_FIRST_ROW = CONTENT_DIV + "//table[@class='datagrid']//tr"; + + @Select(QUARTER_SELECT) + ReportControlsOnOm selectQuarter(String quarter); + + @Select(value = QUARTER_SELECT, selectByOrder = true) + ReportControlsOnOm selectQuarterByIndex(int index); + + @Click(value = SUBMIT_BUTTON, andWait = @Wait(value = SPINNER, until = Until.GONE, by = Lookup.ID)) + ReportControlsOnOm clickSearch(); + + @CheckElementPresent(RESULT_TABLE_FIRST_ROW) + ReportControlsOnOm checkResultTablePresence(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/portal/LogsPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/portal/LogsPage.java new file mode 100644 index 0000000..cde8c13 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/portal/LogsPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.forte.pages.portal; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.PortalMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.portal.LogsPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface LogsPage extends FortePageFlow, PortalMenu { + String PAGE_TITLE = "//h3[text()='HTML chyby']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/forte/pages/portal/PortalMainPage.java b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/portal/PortalMainPage.java new file mode 100644 index 0000000..cdc3b0f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/forte/pages/portal/PortalMainPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.forte.pages.portal; + +import cz.moneta.test.dsl.forte.FortePageFlow; +import cz.moneta.test.dsl.forte.components.PortalMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.forte.pages.portal.PortalMainPage.FAST_ITEMS_DIV; +import static cz.moneta.test.dsl.forte.pages.portal.PortalMainPage.HOME_TITLE; +import static cz.moneta.test.dsl.forte.pages.portal.PortalMainPage.USEFUL_ITEMS_DIV; + +@Wait({HOME_TITLE, USEFUL_ITEMS_DIV, FAST_ITEMS_DIV}) +public interface PortalMainPage extends FortePageFlow, PortalMenu { + String HOME_TITLE = "//title[text()='FORTE ']"; + + String CONTENT_DIV = "//div[@class='content_data']"; + String USEFUL_ITEMS_DIV = CONTENT_DIV + "//div[@class='useful-items']"; + String FAST_ITEMS_DIV = CONTENT_DIV + "//div[@class='fast-items']"; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/ForteLight.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/ForteLight.java new file mode 100644 index 0000000..89f0581 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/ForteLight.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.fortelight; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.fortelight.pages.ForteLightHomePage; +import cz.moneta.test.harness.endpoints.forte.ForteLightEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class ForteLight { + + private final Harness harness; + private ForteLightEndpoint forteLightEndpoint; + + public ForteLight(Harness harness) { + this.harness = harness; + } + + public ForteLightHomePage openForteLightHomePage() { + forteLightEndpoint = harness.getEndpoint(ForteLightEndpoint.class); + forteLightEndpoint.openApplication(); + return Builders.newWebFlowBuilder(ForteLightHomePage.class, forteLightEndpoint, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/ForteLightPageFlow.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/ForteLightPageFlow.java new file mode 100644 index 0000000..0e39b15 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/ForteLightPageFlow.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.fortelight; + +import cz.moneta.test.dsl.fortelight.components.PageHeader; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ForteLightPageFlow> extends WebFlow, PageHeader { + String SPINNER = "spinner"; + + default void beforePageLoad(WebEndpoint webEndpoint) { + webEndpoint.waitForElementsToLoad(30, Lookup.ID, Until.GONE, SPINNER); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/AttendanceMenu.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/AttendanceMenu.java new file mode 100644 index 0000000..77a6650 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/AttendanceMenu.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.fortelight.components; + +import cz.moneta.test.dsl.fortelight.pages.attendance.TimesheetPage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.fortelight.components.AttendanceMenu.CONTROL_MENU_UL; + +@Wait(CONTROL_MENU_UL) +public interface AttendanceMenu extends Builder { + String SIDE_BLOCK_DIV = "//div[@class='side-block']"; + String CONTROL_MENU_UL = SIDE_BLOCK_DIV + "//ul[@class='control menu']"; + String FILL_ATTENDANCE_LINK = CONTROL_MENU_UL + "//a[@href='/attendance/timesheet/']"; + + @Click(FILL_ATTENDANCE_LINK) + TimesheetPage clickFillAttendance(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/HomePageMenu.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/HomePageMenu.java new file mode 100644 index 0000000..3007217 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/HomePageMenu.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.fortelight.components; + +import cz.moneta.test.dsl.fortelight.pages.MyPage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.fortelight.components.HomePageMenu.CONTROL_MENU_UL; + +@Wait(CONTROL_MENU_UL) +public interface HomePageMenu extends Builder { + String SIDE_BLOCK_DIV = "//div[@class='side-block']"; + String CONTROL_MENU_UL = SIDE_BLOCK_DIV + "//ul[@class='control menu']"; + String MY_PROFILE = CONTROL_MENU_UL + "//a[@href='/portal/my/']"; + + @Click(MY_PROFILE) + MyPage clickMyProfile(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/IntermediaryMenu.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/IntermediaryMenu.java new file mode 100644 index 0000000..2309355 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/IntermediaryMenu.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.fortelight.components; + +import cz.moneta.test.dsl.fortelight.pages.intermediary.ImportdealerPage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.fortelight.components.IntermediaryMenu.CONTROL_MENU_UL; + +@Wait(CONTROL_MENU_UL) +public interface IntermediaryMenu extends Builder { + String SIDE_BLOCK_DIV = "//div[@class='side-block']"; + String CONTROL_MENU_UL = SIDE_BLOCK_DIV + "//ul[@class='control menu']"; + String IMPORT_DEALER_LINK = CONTROL_MENU_UL + "//a[@href='/intermediary/importdealer/']"; + + @Wait(value = IMPORT_DEALER_LINK, by = Lookup.XPATH, explicitWaitSeconds = 3) + @Click(IMPORT_DEALER_LINK) + ImportdealerPage clickImportDealerMenu(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/IntermediaryRoleMenu.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/IntermediaryRoleMenu.java new file mode 100644 index 0000000..0496561 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/IntermediaryRoleMenu.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.fortelight.components; + +import cz.moneta.test.dsl.fortelight.pages.intermediary.IntermediaryPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.fortelight.components.IntermediaryRoleMenu.ROLE_MENU; + +@Wait(ROLE_MENU) +public interface IntermediaryRoleMenu extends Builder { + String ROLE_MENU = "//div[@class='side-block']//select[@name='role']"; + String ROLE_USER = ROLE_MENU + "//option[text()='Uživatelský režim']"; + String ROLE_ADMINBO = ROLE_MENU + "//option[text()='Administrátor BO']"; + + @GetElementContent(ROLE_USER) + String getUserId(); + + @GetElementContent(ROLE_ADMINBO) + String getAdminBoId(); + + @Select(value = ROLE_MENU) + IntermediaryPage selectRoleMenu(String valueRole); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/PageHeader.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/PageHeader.java new file mode 100644 index 0000000..b983ccd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/PageHeader.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.fortelight.components; + +import cz.moneta.test.dsl.fortelight.pages.ForteLightHomePage; +import cz.moneta.test.dsl.fortelight.pages.MyPage; +import cz.moneta.test.dsl.fortelight.pages.attendance.TimesheetPage; +import cz.moneta.test.dsl.fortelight.pages.intermediary.IntermediaryPage; +import cz.moneta.test.dsl.fortelight.pages.portal.PortalPage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.fortelight.components.PageHeader.HOME_PAGE_LINK; +import static cz.moneta.test.dsl.fortelight.components.PageHeader.NAVIGATION_DIV; + +@Wait({HOME_PAGE_LINK, NAVIGATION_DIV}) +public interface PageHeader extends Builder { + String HEADER_DIV = "//div[@class='header']"; + String HOME_PAGE_LINK = HEADER_DIV + "//a[@href='/portal/home/']"; + + String NAVIGATION_DIV = HEADER_DIV + "//div[@class='navigation']"; + String NAVIGATION_BUTTON = NAVIGATION_DIV + "//div[@id='navigation-button']"; + String ATTENDANCE_LINK = NAVIGATION_DIV + "//a[@href='/attendance/']"; + String INTERMEDIARY_LINK = NAVIGATION_DIV + "//a[@href='/intermediary/']"; + String PORTAL_LINK = HEADER_DIV + "//a[@href='/portal/home/']//img"; + + String IDENTITY_DIV = HEADER_DIV + "//div[@class='identity']"; + String MY_PROFILE_LINK = IDENTITY_DIV + "//a[@href='/portal/my/']"; + + @Click(HOME_PAGE_LINK) + ForteLightHomePage clickHomePage(); + + @Click(ATTENDANCE_LINK) + TimesheetPage clickAttendance(); + + @Click(MY_PROFILE_LINK) + MyPage clickMyProfileIcon(); + + @Click(NAVIGATION_BUTTON) + PageHeader clickNavigationButton(); + + @Click(INTERMEDIARY_LINK) + IntermediaryPage clickIntermediaryMenu(); + + @Click(PORTAL_LINK) + PortalPage clickPortalMenu(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/PortalMenu.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/PortalMenu.java new file mode 100644 index 0000000..00be895 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/PortalMenu.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.fortelight.components; + +import cz.moneta.test.dsl.fortelight.pages.portal.LogPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.fortelight.components.PortalMenu.CONTROL_MENU_UL; + +@Wait(CONTROL_MENU_UL) +public interface PortalMenu extends Builder { + String SIDE_BLOCK_DIV = "//div[@class='side-block']"; + String CONTROL_MENU_UL = SIDE_BLOCK_DIV + "//ul[@class='control menu']"; + String PARTITION_DIV = SIDE_BLOCK_DIV + "//div[@class='partition']"; + + String LOGS_LINK = PARTITION_DIV + "//a[@href='/portal/log/']"; + + @Wait(value = LOGS_LINK, by = Lookup.XPATH, explicitWaitSeconds = 3) + @Click(LOGS_LINK) + LogPage clickLogsLink(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/PortalRoleMenu.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/PortalRoleMenu.java new file mode 100644 index 0000000..d1a2437 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/components/PortalRoleMenu.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.fortelight.components; + +import cz.moneta.test.dsl.fortelight.pages.portal.PortalPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.fortelight.components.PortalRoleMenu.ROLE_SELECT; + +@Wait(ROLE_SELECT) +public interface PortalRoleMenu extends Builder { + String ROLE_TR_TABLE = "//tr[@id='pair-frmroleForm-role']"; + String ROLE_SELECT = ROLE_TR_TABLE + "//select[@id='frmroleForm-role']"; + String ROLE_MENU = "//div[@class='side-block']//select[@name='role']"; + String ROLE_ADMIN = ROLE_MENU + "//option[text()='Superuživatel']"; + + @GetElementContent(ROLE_ADMIN) + String getAdminId(); + + @Select(value = ROLE_SELECT) + PortalPage SelectSuperAdmin(String valueToSelect); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/ForteLightHomePage.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/ForteLightHomePage.java new file mode 100644 index 0000000..7148f51 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/ForteLightHomePage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.fortelight.pages; + +import cz.moneta.test.dsl.fortelight.ForteLightPageFlow; +import cz.moneta.test.dsl.fortelight.components.HomePageMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.fortelight.pages.ForteLightHomePage.FAST_ITEMS_DIV; +import static cz.moneta.test.dsl.fortelight.pages.ForteLightHomePage.IMPORTANT_NOTE_DIV; +import static cz.moneta.test.dsl.fortelight.pages.ForteLightHomePage.USEFUL_ITEMS_DIV; + +@Wait({IMPORTANT_NOTE_DIV, USEFUL_ITEMS_DIV, FAST_ITEMS_DIV}) +public interface ForteLightHomePage extends ForteLightPageFlow, HomePageMenu { + String CONTENT_DIV = "//div[@class='content_data']"; + String IMPORTANT_NOTE_DIV = CONTENT_DIV + "//div[@class='importantNote']"; + String USEFUL_ITEMS_DIV = CONTENT_DIV + "//div[@class='useful-items']"; + String FAST_ITEMS_DIV = CONTENT_DIV + "//div[@class='fast-items']"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/MyPage.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/MyPage.java new file mode 100644 index 0000000..7008765 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/MyPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.fortelight.pages; + +import cz.moneta.test.dsl.fortelight.ForteLightPageFlow; +import cz.moneta.test.dsl.fortelight.components.HomePageMenu; +import cz.moneta.test.dsl.fortelight.pages.attendance.TimesheetPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.fortelight.pages.MyPage.TOP_LINKS_DIV; + +@Wait(TOP_LINKS_DIV) +public interface MyPage extends ForteLightPageFlow, HomePageMenu { + String CONTENT_DIV = "//div[@class='content_data']"; + String TOP_LINKS_DIV = CONTENT_DIV + "//div[@id='topLinks']"; + String ATTENDANCE_ICON = TOP_LINKS_DIV + "//a[@title='Docházka zaměstnance']"; + + @Click(ATTENDANCE_ICON) + TimesheetPage clickAttendanceIcon(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/attendance/TimesheetPage.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/attendance/TimesheetPage.java new file mode 100644 index 0000000..bcc3a4b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/attendance/TimesheetPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.fortelight.pages.attendance; + +import cz.moneta.test.dsl.fortelight.ForteLightPageFlow; +import cz.moneta.test.dsl.fortelight.components.AttendanceMenu; +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.fortelight.pages.attendance.TimesheetPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface TimesheetPage extends ForteLightPageFlow, AttendanceMenu { + String CONTENT_DIV = "//div[@class='content_data']"; + String PAGE_TITLE = CONTENT_DIV + "//h3[text()='Výkaz docházky za období']"; + + @CheckElementContent(PAGE_TITLE) + TimesheetPage checkPageTitle(String pageTitle); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/intermediary/ImportdealerPage.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/intermediary/ImportdealerPage.java new file mode 100644 index 0000000..b5667f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/intermediary/ImportdealerPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.fortelight.pages.intermediary; + +import cz.moneta.test.dsl.fortelight.ForteLightPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.fortelight.pages.intermediary.ImportdealerPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ImportdealerPage extends ForteLightPageFlow { + String CONTENT_DIV = "//div[@class='content_data']"; + String PAGE_TITLE = CONTENT_DIV + "//h3[starts-with(text(), 'Nahrát soubor')]"; + String IMPORT_FORM = "//form[@id='frm-uploadForm-upload-upload']"; + String FILE_UPLOAD = IMPORT_FORM + "//input[@name='file']"; + String ADD_BUTTON = IMPORT_FORM + "//input[@name='add']"; + + @CheckElementContent(PAGE_TITLE) + ImportdealerPage checkPageTitle(String pageTitle); + + @FileUpload(value = FILE_UPLOAD, by = Lookup.XPATH) + ImportdealerPage uploadDocument(String DOC_PATH); + + @Click(value = ADD_BUTTON, by = Lookup.XPATH) + ImportdealercheckPage clickUploadButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/intermediary/ImportdealercheckPage.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/intermediary/ImportdealercheckPage.java new file mode 100644 index 0000000..d064cb4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/intermediary/ImportdealercheckPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.fortelight.pages.intermediary; + +import cz.moneta.test.dsl.fortelight.ForteLightPageFlow; +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.fortelight.pages.intermediary.ImportdealercheckPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ImportdealercheckPage extends ForteLightPageFlow { + String CONTENT_DIV = "//div[@class='content_data']"; + String PAGE_TITLE = CONTENT_DIV + "//h3[starts-with(text(), 'Kontrola nových prodejců')]"; + String GRID = CONTENT_DIV + "//div[@id='snippet--results']"; + String GRID_TITLE = GRID + "//h4[text()='Nalezené pobočky']"; + String GRID_RESULT = GRID + "//a[starts-with(text(), 'Brno')]"; + +// String REMOVE_LINK = "//form[@id='frm-grid-form']//tr[contains(*/td/span/text(),'Bachar Petr, Ing. PhDr')]//a[@title='Odstranit prodejce']//span[@class='icon-container']"; +// String REMOVE_LINK = "//form[@id='frm-grid-form']//tr/td/span[normalize-space(text())='Bachar Petr, Ing. PhDr']//a[@title='Odstranit prodejce']//span[@class='icon-container']"; + String REMOVE_LINK = "//form[@id='frm-grid-form']//tr[contains(., 'Bachar')]//td//a[@title='Odstranit prodejce']//span[@class='icon-container']"; +// String REMOVE_LINK = "//form[@id='frm-grid-form']//tr//td//a[@title='Odstranit prodejce']//span[@class='icon-container']"; + String YES_BUTTON = "//div[@id='snippet-confirmForm-']//button[@name='yes']"; + + @CheckElementContent(PAGE_TITLE) + ImportdealercheckPage checkPageTitle(String pageTitle); + + @CheckElementContent(GRID_TITLE) + ImportdealercheckPage checkGrid(String gridTitle); + + @CheckElementContent(GRID_RESULT) + ImportdealercheckPage checkResult(String gridResult); + + @Click(REMOVE_LINK) + ImportdealercheckPage clickRemoveDealer(); + + @Click(YES_BUTTON) + ImportdealercheckPage clickYes(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/intermediary/IntermediaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/intermediary/IntermediaryPage.java new file mode 100644 index 0000000..6c6cd21 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/intermediary/IntermediaryPage.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.fortelight.pages.intermediary; + +import cz.moneta.test.dsl.fortelight.ForteLightPageFlow; +import cz.moneta.test.dsl.fortelight.components.IntermediaryMenu; +import cz.moneta.test.dsl.fortelight.components.IntermediaryRoleMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.fortelight.pages.intermediary.IntermediaryPage.HOME_TITLE; + +@Wait(HOME_TITLE) +public interface IntermediaryPage extends ForteLightPageFlow, IntermediaryMenu, IntermediaryRoleMenu { + String HOME_TITLE = "//title[text()='Třetí strany | FORTE light ']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/portal/LogPage.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/portal/LogPage.java new file mode 100644 index 0000000..a1f7ace --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/portal/LogPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.fortelight.pages.portal; + +import cz.moneta.test.dsl.fortelight.ForteLightPageFlow; +import cz.moneta.test.dsl.fortelight.components.HomePageMenu; +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.fortelight.pages.MyPage.TOP_LINKS_DIV; + +@Wait(TOP_LINKS_DIV) +public interface LogPage extends ForteLightPageFlow, HomePageMenu { + String TITLE = "//h3[text()='HTML chyby']"; + + @CheckElementContent(TITLE) + LogPage CheckPageTitle(String title); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/portal/PortalPage.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/portal/PortalPage.java new file mode 100644 index 0000000..06ac6c4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/pages/portal/PortalPage.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.fortelight.pages.portal; + +import cz.moneta.test.dsl.fortelight.ForteLightPageFlow; +import cz.moneta.test.dsl.fortelight.components.PortalMenu; +import cz.moneta.test.dsl.fortelight.components.PortalRoleMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.fortelight.pages.portal.PortalPage.HOME_TITLE; + +@Wait(HOME_TITLE) +public interface PortalPage extends ForteLightPageFlow, PortalMenu, PortalRoleMenu { + String HOME_TITLE = "//title[text()='FORTE light ']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/fortelight/tasks/ForteLightTasks.java b/tests/src/main/java/cz/moneta/test/dsl/fortelight/tasks/ForteLightTasks.java new file mode 100644 index 0000000..74b851e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/fortelight/tasks/ForteLightTasks.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.fortelight.tasks; + +import cz.moneta.test.dsl.Harness; + +public class ForteLightTasks { + private final Harness harness; + + public ForteLightTasks(Harness harness) { + this.harness = harness; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARCL/ARCL00_CustomerSearchScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARCL/ARCL00_CustomerSearchScreen.java new file mode 100644 index 0000000..395f5a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARCL/ARCL00_CustomerSearchScreen.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.greenscreen.ARCL; + +import cz.moneta.test.harness.support.greenscreen.CheckScreenContains; +import cz.moneta.test.harness.support.greenscreen.GreenScreenFlow; +import cz.moneta.test.harness.support.greenscreen.Key; +import cz.moneta.test.harness.support.greenscreen.KeyPress; +import cz.moneta.test.harness.support.greenscreen.Type; + +@CheckScreenContains(row = 1, column = 2, text = "ARCL") +@CheckScreenContains(row = 1, column = 58, text = "PAGE 00") +@CheckScreenContains(row = 2, column = 31, text = "CUSTOMER NAME LOCATE") +public interface ARCL00_CustomerSearchScreen extends GreenScreenFlow { + + @Type(row = 5, column = 5, text = "1") + @Type(row = 5, column = 11) + @KeyPress(Key.ENTER) + ARCL01_CustomerSearchResultScreen searchByIdentificationNumber(String rc); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARCL/ARCL01_CustomerSearchResultScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARCL/ARCL01_CustomerSearchResultScreen.java new file mode 100644 index 0000000..e11539b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARCL/ARCL01_CustomerSearchResultScreen.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.greenscreen.ARCL; + +import cz.moneta.test.harness.support.greenscreen.*; + +@CheckScreenContains(row = 1, column = 2, text = "ARCL") +@CheckScreenContains(row = 1, column = 58, text = "PAGE 01") +@CheckScreenContains(row = 2, column = 31, text = "CUSTOMER NAME SELECT") +public interface ARCL01_CustomerSearchResultScreen extends GreenScreenFlow { + + @CheckScreenContains(row = 10, column = 54) + ARCL01_CustomerSearchResultScreen checkCustomerNumber(String customerNumber); + + @Type(row = 10, column = 4, text = "x") + @KeyPress(Key.ENTER) + ARCL02_CustomerDetailScreen openCustomerDetail(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARCL/ARCL02_CustomerDetailScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARCL/ARCL02_CustomerDetailScreen.java new file mode 100644 index 0000000..804d4dc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARCL/ARCL02_CustomerDetailScreen.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.greenscreen.ARCL; + +import cz.moneta.test.dsl.greenscreen.ARQE.ARQE02_AccountEmbossingScreen; +import cz.moneta.test.harness.support.greenscreen.*; + +import static cz.moneta.test.dsl.greenscreen.AZXI.AZXI01_CustomerViewSelectScreen.ACCOUNT_NUMBER_KEY; +import static cz.moneta.test.dsl.greenscreen.AZXI.AZXI01_CustomerViewSelectScreen.CARD_NUMBER_KEY; + +@CheckScreenContains(row = 1, column = 2, text = "ARCL") +@CheckScreenContains(row = 1, column = 58, text = "PAGE 02") +@CheckScreenContains(row = 2, column = 31, text = "CUSTOMER NAME DETAIL") +public interface ARCL02_CustomerDetailScreen extends GreenScreenFlow { + + @CheckScreenContains(row = 9, column = 51) + ARCL02_CustomerDetailScreen checkCardAccountNumber(String accountNumber); + + @CheckScreenContains(row = 10, column = 51) + ARCL02_CustomerDetailScreen checkCardNumber(String cardNumber); + + @CheckScreenContains(row = 9, column = 47) + @CheckScreenContains(row = 10, column = 47) + ARCL02_CustomerDetailScreen checkOrgValueForAccountAndCard(String accountOrg, String cardOrg); + + @CheckScreenContains(row = 7, column = 28, text = "NEXT TRANS ( )") + @Type(row = 7, column = 42, text = "ARQE") + @Type(row = 9, column = 5, text = "x") + @KeyPress(Key.ENTER) + ARQE02_AccountEmbossingScreen openAccountDetail(); + + @StoreContent(row = 10, column = 51, length = 19, storeKey = CARD_NUMBER_KEY) + ARCL02_CustomerDetailScreen storeCardId(); + + @StoreContent(row = 9, column = 51, length = 19, storeKey = ACCOUNT_NUMBER_KEY) + ARCL02_CustomerDetailScreen storeAccountId(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARME/ARME02_AccountEmbossing_Edit.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARME/ARME02_AccountEmbossing_Edit.java new file mode 100644 index 0000000..2cfff6c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARME/ARME02_AccountEmbossing_Edit.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.greenscreen.ARME; + +import cz.moneta.test.harness.support.greenscreen.*; + +@CheckScreenContains(row = 1, column = 2, text = "ARME") +@CheckScreenContains(row = 1, column = 58, text = "PAGE 02") +@CheckScreenContains(row = 2, column = 32, text = "ACCOUNT EMBOSSING") +public interface ARME02_AccountEmbossing_Edit extends GreenScreenFlow { + + @Type(row = 12, column = 24) + @KeyPress(Key.ENTER) + ARME02_AccountEmbossing_Edit setExpirationDate(String MMYYYY); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE00_AccountEmbossinScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE00_AccountEmbossinScreen.java new file mode 100644 index 0000000..41be91d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE00_AccountEmbossinScreen.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.greenscreen.ARQE; + +import cz.moneta.test.harness.support.greenscreen.*; + +@CheckScreenContains(row = 1, column = 2, text = "ARQE") +@CheckScreenContains(row = 1, column = 58, text = "PAGE 00") +@CheckScreenContains(row = 2, column = 32, text = "ACCOUNT EMBOSSING") +public interface ARQE00_AccountEmbossinScreen extends GreenScreenFlow, ARQE00_Transitions, ARQE_Pages { + + @Type(row = 7, column = 34) + ARQE00_AccountEmbossinScreen typeCardNumber(String cardNumber); + + @KeyPress(Key.ENTER) + ARQE00_Transitions pressEnter(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE00_Transitions.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE00_Transitions.java new file mode 100644 index 0000000..8d0f6ec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE00_Transitions.java @@ -0,0 +1,6 @@ +package cz.moneta.test.dsl.greenscreen.ARQE; + +public interface ARQE00_Transitions { + + ARQE02_AccountEmbossingScreen onAccountEmbossingScreen(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE02_AccountEmbossingScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE02_AccountEmbossingScreen.java new file mode 100644 index 0000000..8fb64e1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE02_AccountEmbossingScreen.java @@ -0,0 +1,58 @@ +package cz.moneta.test.dsl.greenscreen.ARQE; + +import cz.moneta.test.dsl.greenscreen.ARME.ARME02_AccountEmbossing_Edit; +import cz.moneta.test.harness.support.greenscreen.CheckScreenContains; +import cz.moneta.test.harness.support.greenscreen.GreenScreenFlow; +import cz.moneta.test.harness.support.greenscreen.Key; +import cz.moneta.test.harness.support.greenscreen.KeyPress; +import cz.moneta.test.harness.support.greenscreen.Type; + +@CheckScreenContains(row = 1, column = 2, text = "ARQE") +@CheckScreenContains(row = 1, column = 58, text = "PAGE 02") +@CheckScreenContains(row = 2, column = 32, text = "ACCOUNT EMBOSSING") +public interface ARQE02_AccountEmbossingScreen extends GreenScreenFlow, ARQE_Pages { + + @CheckScreenContains(row = 13, column = 24) + ARQE02_AccountEmbossingScreen checkName(String name); + + @CheckScreenContains(row = 18, column = 24) + @CheckScreenContains(row = 20, column = 24) + ARQE02_AccountEmbossingScreen checkAddress(String street, String city); + + @CheckScreenContains(row = 5, column = 33) + ARQE02_AccountEmbossingScreen checkCardAccountNumber(String accountNumber); + + @CheckScreenContains(row = 4, column = 33) + ARQE02_AccountEmbossingScreen checkCardNumber(String cardNumber); + + @CheckScreenContains(row = 12, column = 45) + ARQE02_AccountEmbossingScreen checkCustomerNumber(String customerNumber); + + @CheckScreenContains(row = 3, column = 41) + ARQE02_AccountEmbossingScreen checkCardLogo(String logo); + + @CheckScreenContains(row = 3, column = 33) + ARQE02_AccountEmbossingScreen checkOrg(String org); + + @CheckScreenContains(row = 15, column = 65, text = "EMBLEM") + @CheckScreenContains(row = 15, column = 74) + ARQE02_AccountEmbossingScreen checkEmblem(String emblem); + + @CheckScreenContains(row = 16, column = 30, text = "CRDHLD FLG") + @CheckScreenContains(row = 16, column = 43) + ARQE02_AccountEmbossingScreen checkCardholderFlag(String flag); + + @CheckScreenContains(row = 8, column = 2, text = "ACTION") + @CheckScreenContains(row = 8, column = 33) + ARQE02_AccountEmbossingScreen checkCardAction(String action); + + @Type(row = 1, column = 63, text = "03") + @KeyPress(Key.ENTER) + ARQE03_AccountEmbossingScreen switchToNextAccountDetailScreen(); + + @Type(row = 1, column = 9, text = "ARME") + @KeyPress(Key.ENTER) + @Type(row = 1, column = 63, text = "02") + @KeyPress(Key.ENTER) + ARME02_AccountEmbossing_Edit openCardDetailsForEditing(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE03_AccountEmbossingScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE03_AccountEmbossingScreen.java new file mode 100644 index 0000000..7fbbbda --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE03_AccountEmbossingScreen.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.greenscreen.ARQE; + +import cz.moneta.test.harness.support.greenscreen.CheckScreenContains; +import cz.moneta.test.harness.support.greenscreen.GreenScreenFlow; +import cz.moneta.test.harness.support.greenscreen.Key; +import cz.moneta.test.harness.support.greenscreen.KeyPress; +import cz.moneta.test.harness.support.greenscreen.Type; + +@CheckScreenContains(row = 1, column = 2, text = "ARQE") +@CheckScreenContains(row = 1, column = 58, text = "PAGE 03") +@CheckScreenContains(row = 2, column = 32, text = "ACCOUNT EMBOSSING") +public interface ARQE03_AccountEmbossingScreen extends GreenScreenFlow, ARQE_Pages { + + @CheckScreenContains(row = 9, column = 41, text = "RETAIL PURCH AMT") + @CheckScreenContains(row = 9, column = 61) + ARQE03_AccountEmbossingScreen checkRetailAmount(String amount); + + @CheckScreenContains(row = 10, column = 41, text = "ATM CASH AMOUNT") + @CheckScreenContains(row = 10, column = 61) + ARQE03_AccountEmbossingScreen checkAtmAmount(String amount); + + @CheckScreenContains(row = 11, column = 41, text = "OTC CASH AMOUNT") + @CheckScreenContains(row = 11, column = 61) + ARQE03_AccountEmbossingScreen checkOtcAmount(String amount); + + @Type(row = 1, column = 63, text = "09") + @KeyPress(Key.ENTER) + ARQE09_UserFieldsScreen switchToUserFieldsScreen(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE09_UserFieldsScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE09_UserFieldsScreen.java new file mode 100644 index 0000000..e069570 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE09_UserFieldsScreen.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.greenscreen.ARQE; + +import cz.moneta.test.harness.support.greenscreen.CheckScreenContains; +import cz.moneta.test.harness.support.greenscreen.GreenScreenFlow; + +@CheckScreenContains(row = 1, column = 2, text = "ARQE") +@CheckScreenContains(row = 1, column = 58, text = "PAGE 09") +@CheckScreenContains(row = 2, column = 38, text = "USER FIELDS") +public interface ARQE09_UserFieldsScreen extends GreenScreenFlow { + + @CheckScreenContains(row = 6, column = 57) + ARQE09_UserFieldsScreen checkBirthNumber(String rc); + + @CheckScreenContains(row = 14, column = 19) + ARQE09_UserFieldsScreen checkPinMobileNumber(String phoneNumber); + + @CheckScreenContains(row = 6, column = 17) + ARQE09_UserFieldsScreen checkPassword(String password); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE43_AccountEmbossingScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE43_AccountEmbossingScreen.java new file mode 100644 index 0000000..ca2ad4d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE43_AccountEmbossingScreen.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.greenscreen.ARQE; + +import cz.moneta.test.harness.support.greenscreen.*; + +@CheckScreenContains(row = 1, column = 2, text = "ARQE") +@CheckScreenContains(row = 1, column = 58, text = "PAGE 43") +@CheckScreenContains(row = 2, column = 32, text = "ACCOUNT EMBOSSING") +public interface ARQE43_AccountEmbossingScreen extends GreenScreenFlow, ARQE_Pages { + + @CheckScreenContains(row = 6, column = 44, text = "MEM FEE OCC") + @CheckScreenContains(row = 6, column = 58) + ARQE43_AccountEmbossingScreen checkMembershipFeeOccurrence(String occurrence); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE_Pages.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE_Pages.java new file mode 100644 index 0000000..846a7f1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/ARQE/ARQE_Pages.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.greenscreen.ARQE; + +import cz.moneta.test.harness.support.greenscreen.Builder; +import cz.moneta.test.harness.support.greenscreen.Key; +import cz.moneta.test.harness.support.greenscreen.KeyPress; +import cz.moneta.test.harness.support.greenscreen.Type; + +public interface ARQE_Pages extends Builder { + + @Type(row = 1, column = 63, text = "00") + @KeyPress(Key.ENTER) + ARQE00_AccountEmbossinScreen toPage00(); + + @Type(row = 1, column = 63, text = "02") + @KeyPress(Key.ENTER) + ARQE02_AccountEmbossingScreen toPage02(); + + @Type(row = 1, column = 63, text = "03") + @KeyPress(Key.ENTER) + ARQE03_AccountEmbossingScreen toPage03(); + + @Type(row = 1, column = 63, text = "43") + @KeyPress(Key.ENTER) + ARQE43_AccountEmbossingScreen toPage43(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/AZXI/AZXI00_CustomerViewLocateScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/AZXI/AZXI00_CustomerViewLocateScreen.java new file mode 100644 index 0000000..04e6dd1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/AZXI/AZXI00_CustomerViewLocateScreen.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.greenscreen.AZXI; + +import cz.moneta.test.harness.support.greenscreen.*; + +@CheckScreenContains(row = 1, column = 2, text = "AZXI") +@CheckScreenContains(row = 1, column = 58, text = "PAGE 00") +@CheckScreenContains(row = 2, column = 29, text = "CUSTOMER VIEW LOCATE") +public interface AZXI00_CustomerViewLocateScreen extends GreenScreenFlow, AZXI00_CustomerViewLocateScreenTransitions { + + @Type(row = 8, column = 39) + AZXI00_CustomerViewLocateScreen typeUniqueIdNumber(String id); + + @KeyPress(Key.ENTER) + AZXI00_CustomerViewLocateScreenTransitions pressEnter(); + + @CheckScreenContains(row = 23, column = 2, text = "VPE5SUV21S UNIQUE ID NOT ON FILE") + AZXI00_CustomerViewLocateScreen assertUniqueIdNotOnFile(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/AZXI/AZXI00_CustomerViewLocateScreenTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/AZXI/AZXI00_CustomerViewLocateScreenTransitions.java new file mode 100644 index 0000000..515b5e6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/AZXI/AZXI00_CustomerViewLocateScreenTransitions.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.greenscreen.AZXI; + +import cz.moneta.test.harness.support.greenscreen.Builder; + +public interface AZXI00_CustomerViewLocateScreenTransitions extends Builder { + + AZXI00_CustomerViewLocateScreen onError(); + + AZXI01_CustomerViewSelectScreen onCustomerViewSelectScreen(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/AZXI/AZXI01_CustomerViewSelectScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/AZXI/AZXI01_CustomerViewSelectScreen.java new file mode 100644 index 0000000..b60ce4e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/AZXI/AZXI01_CustomerViewSelectScreen.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.greenscreen.AZXI; + +import cz.moneta.test.dsl.greenscreen.ARQE.ARQE00_AccountEmbossinScreen; +import cz.moneta.test.harness.support.greenscreen.*; + +@CheckScreenContains(row = 1, column = 2, text = "AZXI") +@CheckScreenContains(row = 1, column = 58, text = "PAGE 01") +@CheckScreenContains(row = 2, column = 29, text = "CUSTOMER VIEW SELECT") +public interface AZXI01_CustomerViewSelectScreen extends GreenScreenFlow { + + String CARD_NUMBER_KEY = "CARD_NUMBER"; + String ACCOUNT_NUMBER_KEY = "ACCOUNT_NUMBER"; + + @StoreContent(row = 7, column = 57, length = 19, storeKey = CARD_NUMBER_KEY) + AZXI01_CustomerViewSelectScreen storeFirstCardId(); + + @StoreContent(row = 7, column = 32, length = 19, storeKey = ACCOUNT_NUMBER_KEY) + AZXI01_CustomerViewSelectScreen storeFirstAccountId(); + + @Type(row = 1, column = 9, text = "ARQE") + @KeyPress(Key.ENTER) + ARQE00_AccountEmbossinScreen openAccountEmbossinScreen(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/GreenScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/GreenScreen.java new file mode 100644 index 0000000..1b5bcce --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/GreenScreen.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.greenscreen; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.greenscreen.GreenScreenEndpoint; +import cz.moneta.test.harness.support.greenscreen.Builders; + +public class GreenScreen { + private final StoreAccessor harness; + + public GreenScreen(StoreAccessor harness) { + this.harness = harness; + } + + public WELCOME_WelcomeScreen logIn() { + GreenScreenEndpoint endpoint = harness.getEndpoint(GreenScreenEndpoint.class); + endpoint.connect(); + return Builders.newGreenScreenFlowBuilder(WELCOME_WelcomeScreen.class, endpoint, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/greenscreen/WELCOME_WelcomeScreen.java b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/WELCOME_WelcomeScreen.java new file mode 100644 index 0000000..b79192a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/greenscreen/WELCOME_WelcomeScreen.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.greenscreen; + +import cz.moneta.test.dsl.greenscreen.ARCL.ARCL00_CustomerSearchScreen; +import cz.moneta.test.dsl.greenscreen.AZXI.AZXI00_CustomerViewLocateScreen; +import cz.moneta.test.harness.support.greenscreen.CheckScreenContains; +import cz.moneta.test.harness.support.greenscreen.GreenScreenFlow; +import cz.moneta.test.harness.support.greenscreen.Key; +import cz.moneta.test.harness.support.greenscreen.KeyPress; +import cz.moneta.test.harness.support.greenscreen.Type; + +@CheckScreenContains(row = 2, column = 37, text = "WELCOME") +public interface WELCOME_WelcomeScreen extends GreenScreenFlow { + + @Type(row = 1, column = 9, text = "ARCL") + @KeyPress(Key.ENTER) + ARCL00_CustomerSearchScreen openCustomerSearch(); + + @Type(row = 1, column = 9, text = "AZXI") + @KeyPress(Key.ENTER) + AZXI00_CustomerViewLocateScreen openCustomerViewLocateScreen(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/Hypos.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/Hypos.java new file mode 100644 index 0000000..bb5b4a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/Hypos.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.pages.HyposLoginPage; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class Hypos { + private final Harness harness; + + public Hypos(Harness harness) { + this.harness = harness; + } + + public HyposLoginPage openLoginPage() { + HyposEndpoint hyposEndpoint = harness.getEndpoint(HyposEndpoint.class); + hyposEndpoint.openApplication(); + return Builders.newWebFlowBuilder(HyposLoginPage.class, hyposEndpoint, harness); + } + + public void closeHypos() { + harness.closeEndpoint(harness.getEndpoint(HyposEndpoint.class)); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/components/ContractMenu.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/components/ContractMenu.java new file mode 100644 index 0000000..9f4d393 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/components/ContractMenu.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.hypos.components; + +import cz.moneta.test.dsl.hypos.pages.contract.ContractHistoryPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.components.ContractMenu.EVENTS_STATE_BOX_LINK; +import static cz.moneta.test.dsl.hypos.components.ContractMenu.SET_EVENTS_FLAGS_LINK; +import static cz.moneta.test.dsl.hypos.pages.HyposPageFlow.LOADER; + +@Wait({EVENTS_STATE_BOX_LINK, SET_EVENTS_FLAGS_LINK}) +public interface ContractMenu extends Builder, StoreAccessor { + //Menu below horizontal main menu on contract pages + String CONTRACT_MENU_DIV = "//div[@id='info-tab-block']"; + String CONTRACT_STATE_TD = CONTRACT_MENU_DIV + "//table[@id='listicka-radek-tbl-2']//td[contains(text(),'%s')]"; + String EVENTS_STATE_BOX_LINK = CONTRACT_MENU_DIV + "//a[contains(text(),'přejít')]"; + String SET_EVENTS_FLAGS_LINK = CONTRACT_MENU_DIV + "//a[contains(text(),'nastavit příznak')]"; + + String EVENTS_STATE_BOX_DIV = CONTRACT_MENU_DIV + "//div[@id='events-state-box']"; + String EVENTS_STATE_PREPARE_CONTRACTS_LINK = EVENTS_STATE_BOX_DIV + "//a[contains(text(),'Příprava smluv')]"; + + String EVENTS_SET_FLAGS_DIV = CONTRACT_MENU_DIV + "//div[@id='events-set-flags']"; + String EVENT_FLAG_LINK = EVENTS_SET_FLAGS_DIV + "//a[contains(text(),'%s')]"; + + String COMMENT_BOX_SAVE_BUTTON = CONTRACT_MENU_DIV + "//div[@id='CommentBox' and contains(@style,'display: block')]//input[@value='Uložit']"; + + @CheckElementPresent(value = CONTRACT_STATE_TD, isStringDynamicXpath = true) + ContractHistoryPage checkContractState(String state); + + @Click(SET_EVENTS_FLAGS_LINK) + ContractHistoryPage clickSetEventsFlagsLink(); + + @Click(EVENTS_STATE_BOX_LINK) + ContractHistoryPage clickEventsStateBoxLink(); + + @Wait(EVENTS_STATE_PREPARE_CONTRACTS_LINK) + @Click(EVENTS_STATE_PREPARE_CONTRACTS_LINK) + ContractHistoryPage clickPrepareContractsStateLink(); + + @Click(value = EVENT_FLAG_LINK, andWait = @Wait(value = LOADER, until = Until.GONE), isStringDynamicXpath = true) + ContractHistoryPage clickContractFlag(String contractFlag); + + @Click(value = COMMENT_BOX_SAVE_BUTTON, andWait = @Wait(value = LOADER, until = Until.GONE)) + ContractHistoryPage clickCommentBoxSaveButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/components/Menu.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/components/Menu.java new file mode 100644 index 0000000..0c45c02 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/components/Menu.java @@ -0,0 +1,160 @@ +package cz.moneta.test.dsl.hypos.components; + +import cz.moneta.test.dsl.hypos.pages.HyposMainPage; +import cz.moneta.test.dsl.hypos.pages.contract.ContractHistoryPage; +import cz.moneta.test.dsl.hypos.pages.contract.SearchContractPage; +import cz.moneta.test.dsl.hypos.pages.contract.approval.ScoringPage; +import cz.moneta.test.dsl.hypos.pages.contract.approvalchecklist.ApprovalChecklistPage; +import cz.moneta.test.dsl.hypos.pages.contract.backoffice.BackOfficePage; +import cz.moneta.test.dsl.hypos.pages.contract.clients.ClientsListPage; +import cz.moneta.test.dsl.hypos.pages.contract.clients.LoadCifPage; +import cz.moneta.test.dsl.hypos.pages.contract.communication.CommunicationPage; +import cz.moneta.test.dsl.hypos.pages.contract.complaints.ComplaintsPage; +import cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentsPage; +import cz.moneta.test.dsl.hypos.pages.contract.externalsources.ExternalSourcesPage; +import cz.moneta.test.dsl.hypos.pages.contract.fees.FeesPage; +import cz.moneta.test.dsl.hypos.pages.contract.forms.FormsPage; +import cz.moneta.test.dsl.hypos.pages.contract.lifeinsurance.LifeInsurancePage; +import cz.moneta.test.dsl.hypos.pages.contract.loan.LoanPage; +import cz.moneta.test.dsl.hypos.pages.contract.notifications.NotificationsPage; +import cz.moneta.test.dsl.hypos.pages.contract.pktu.PktuPage; +import cz.moneta.test.dsl.hypos.pages.contract.processchecklist.ProcessChecklistPage; +import cz.moneta.test.dsl.hypos.pages.contract.realty.RealtyPage; +import cz.moneta.test.dsl.hypos.pages.contract.realtyinsurance.RealtyInsurancePage; +import cz.moneta.test.dsl.hypos.pages.contract.retention.RetentionPage; +import cz.moneta.test.dsl.hypos.pages.contract.service.ServicePage; +import cz.moneta.test.dsl.hypos.pages.contract.urgent.UrgentPage; +import cz.moneta.test.dsl.hypos.pages.contract.withdrawal.WithdrawalRequestsPage; +import cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage; +import cz.moneta.test.dsl.hypos.pages.structure.StructurePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; + +public interface Menu extends Builder, StoreAccessor { + //iframes present on Hypos pages, Hypokom and Hypokalkulačka do not use iframes + String HEADER_FRAME_XPATH = "//frameset/frame[@id='header']"; + String MAIN_FRAME_XPATH = "//frameset/frame[@id='main']"; + + //Horizontal menus + String HYPOS_LINK = "//a[text()='Hypos']"; + String HYPOKALKULACKA_LINK = "//div[@class='headermenu']//a[text()='Hypokalkulačka']"; + String HYPOKOM_LINK = "//div[@class='headermenu']//a[text()='Hypokom']"; + String USER_DETAIL_LINK = "//div[@class='headermenu']//a[@href='/Hypos/user.php?cmd=detail']"; + + //Vertical menus + String VERTICAL_MENU_LIST = "//ul[@class='vert-menu']"; + String SEARCH_CONTRACT_LINK = VERTICAL_MENU_LIST + "//a[contains(@href, 'search.contract')]"; //link Oprava údajů, vstup dat + String STRUCTURE_LINK = VERTICAL_MENU_LIST + "//a/div[text()='Sestavy']"; + String LOAN_LINK = VERTICAL_MENU_LIST + "//a[text()='Úvěr']"; + String REALTY_LINK = VERTICAL_MENU_LIST + "//a[text()='Nemovitosti']"; + String SCORING_LINK = VERTICAL_MENU_LIST + "//a[text()='Schvalování']"; + String CLIENTS_LINK = VERTICAL_MENU_LIST + "//a[text()='Klienti']"; + String LIFE_INSURANCE_LINK = VERTICAL_MENU_LIST + "//a[text()='Životní pojištění']"; + String DOCUMENTS_LINK = VERTICAL_MENU_LIST + "//a[text()='Dokumenty']"; + String WITHDRAWAL_REQUESTS_LINK = VERTICAL_MENU_LIST + "//a[text()='Žádosti o čerpání']"; + String VERTICAL_MENU_HYPOKALKULACKA_LINK = VERTICAL_MENU_LIST + "//a[text()='Hypokalkulačka']"; + String CONTRACT_HOMEPAGE_LINK = VERTICAL_MENU_LIST + "//a[text()='Úvodní stránka']"; + String CLOSE_CONTRACT_LINK = VERTICAL_MENU_LIST + "//a[text()='KONEC PRÁCE']"; + String APPROVAL_CHECKLIST_LINK = VERTICAL_MENU_LIST + "//a[text()='Schvalovací checklist']"; + String FEES_LINK = VERTICAL_MENU_LIST + "//a[text()='Poplatky']"; + String REALTY_INSURANCE_LINK = VERTICAL_MENU_LIST + "//a[text()='Sjednání pojištění majetku']"; + String FORMS_LINK = VERTICAL_MENU_LIST + "//a[text()='Formuláře']"; + String PROCESS_CHECKLIST_LINK = VERTICAL_MENU_LIST + "//a[text()='Checklist procesních kroků']"; + String COMMUNICATION_LINK = VERTICAL_MENU_LIST + "//a[text()='Sdělení']"; + String NOTIFICATIONS_LINK = VERTICAL_MENU_LIST + "//a[text()='Notifikace klienta']"; + String PKTU_LINK = VERTICAL_MENU_LIST + "//a[text()='PKTÚ']"; + String EXTERNAL_SOURCES_LINK = VERTICAL_MENU_LIST + "//a[text()='Externí zdroje']"; + String URGENT_LINK = VERTICAL_MENU_LIST + "//a[text()='Urgenty']"; + String RETENTION_LINK = VERTICAL_MENU_LIST + "//a[text()='Retence']"; + String SERVICE_LINK = VERTICAL_MENU_LIST + "//a[text()='Servis']"; + String BACKOFFICE_LINK = VERTICAL_MENU_LIST + "//a[text()='BackOffice']"; + String COMPLAINTS_LINK = VERTICAL_MENU_LIST + "//a[text()='Úkoly na centrálu']"; + + @Click(SEARCH_CONTRACT_LINK) + SearchContractPage clickSearchContract(); + + @Click(CONTRACT_HOMEPAGE_LINK) + ContractHistoryPage clickHomepage(); + + @Click(CLOSE_CONTRACT_LINK) + HyposMainPage clickCloseContract(); + + @Click(CLIENTS_LINK) + ClientsListPage clickClients(); + + @Click(LIFE_INSURANCE_LINK) + LifeInsurancePage clickLifeInsurance(); + + @Click(CLIENTS_LINK) + LoadCifPage clickClientsToSetCif(); + + @Click(LOAN_LINK) + LoanPage clickLoan(); + + @Click(REALTY_LINK) + RealtyPage clickRealty(); + + @Click(DOCUMENTS_LINK) + DocumentsPage clickDocuments(); + + @Click(APPROVAL_CHECKLIST_LINK) + ApprovalChecklistPage clickApprovalChecklist(); + + @Click(WITHDRAWAL_REQUESTS_LINK) + WithdrawalRequestsPage clickWithdrawalRequests(); + + @Click(SCORING_LINK) + ScoringPage clickScoring(); + + @Click(STRUCTURE_LINK) + StructurePage clickStructure(); + + @Click(FEES_LINK) + FeesPage clickFees(); + + @Click(REALTY_INSURANCE_LINK) + RealtyInsurancePage clickRealtyInsurance(); + + @Click(FORMS_LINK) + FormsPage clickForms(); + + @Click(PROCESS_CHECKLIST_LINK) + ProcessChecklistPage clickProcessChecklist(); + + @Click(COMMUNICATION_LINK) + CommunicationPage clickCommunication(); + + @Click(NOTIFICATIONS_LINK) + NotificationsPage clickNotifications(); + + @Click(PKTU_LINK) + PktuPage clickPktu(); + + @Click(EXTERNAL_SOURCES_LINK) + ExternalSourcesPage clickExternalSources(); + + @Click(URGENT_LINK) + UrgentPage clickUrgent(); + + @Click(RETENTION_LINK) + RetentionPage clickRetention(); + + @Click(SERVICE_LINK) + ServicePage clickService(); + + @Click(BACKOFFICE_LINK) + BackOfficePage clickBackOffice(); + + @Click(COMPLAINTS_LINK) + ComplaintsPage clickComplaints(); + + @CustomAction + default HypokalkulackaPage clickHypokalkulacka() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> VERTICAL_MENU_HYPOKALKULACKA_LINK); + endpoint.focusToNewPopup(20); + endpoint.maximizeBrowserWindow(); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/components/StructureMenu.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/components/StructureMenu.java new file mode 100644 index 0000000..73fc09d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/components/StructureMenu.java @@ -0,0 +1,67 @@ +package cz.moneta.test.dsl.hypos.components; + +import cz.moneta.test.dsl.hypos.pages.HyposMainPage; +import cz.moneta.test.dsl.hypos.pages.structure.*; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; + +public interface StructureMenu extends Builder { + String BACK_BUTTON = "//a[contains(@href,'cmd=main')]"; + + String DRAW_POSTPONED_LINK = "//a[text()='Odložená čerpání']"; + String DRAW_LINK = "//a[text()='Čerpání']"; + String UW2_LINK = "//a[text()='Stav obchodů UW2']"; + String DOCS_VERIFICATION_LINK = "//a[text()='Elektronická verifikace dokumentů']"; + String APPRAISEMENT_FEE_LINK = "//a[text()='Poplatek za posouzení vhodnosti zástavy']"; + String LETTER_LINK = "//a[text()='Tisková linka']"; + String PPD_LINK = "//a[text()='PPD']"; + String UW1_LINK = "//a[text()='Fronta UW1']"; + String OPUS_LINK = "//a[text()='OPUS III']"; + String PKTU_LINK = "//a[text()='PKTÚ']"; + String CADASTER_REQUESTS_LINK = "//a[text()='Požadavky v KN']"; + String CLIENT_CHANGE_LINK = "//a[text()='Změny po podpisu smlouvy']"; + String FINANCIAL_EXCEPTION_LINK = "//a[text()='Výjimky z financí']"; + String END_OF_WORK_LINK = "//a[text()='KONEC PRÁCE']"; + + @Click(BACK_BUTTON) + StructurePage clickBackButton(); + + @Click(DRAW_POSTPONED_LINK) + StructureDrawPostponedPage clickDrawPostponed(); + + @Click(DRAW_LINK) + StructureDrawPage clickDraw(); + + @Click(UW2_LINK) + StructureUw2Page clickUw2(); + + @Click(DOCS_VERIFICATION_LINK) + StructureDocsVerificationPage clickDocsVerification(); + + @Click(APPRAISEMENT_FEE_LINK) + StructureAppraisementFeePage clickAppraisementFee(); + + @Click(LETTER_LINK) + StructureLetterPage clickLetter(); + + @Click(PPD_LINK) + StructurePpdPage clickPpd(); + + @Click(UW1_LINK) + StructureUw1Page clickUw1(); + + @Click(OPUS_LINK) + StructureOpusPage clickOpus(); + + @Click(PKTU_LINK) + StructurePktuPage clickPktu(); + + @Click(CLIENT_CHANGE_LINK) + StructureClientChangePage clickClientChange(); + + @Click(FINANCIAL_EXCEPTION_LINK) + StructureFinancialExceptionPage clickFinancialException(); + + @Click(END_OF_WORK_LINK) + HyposMainPage clickEndOfWork(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/HyposContractPrepare.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/HyposContractPrepare.java new file mode 100644 index 0000000..f173ea7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/HyposContractPrepare.java @@ -0,0 +1,190 @@ +package cz.moneta.test.dsl.hypos.contractPrepare; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.*; +import cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage; +import cz.moneta.test.dsl.hypos.tasks.HyposDbTasks; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.dsl.util.data.hypos.Expenditure; +import cz.moneta.test.dsl.util.data.hypos.HouseholdIncome; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.dsl.util.data.hypos.Realty; +import org.junit.jupiter.api.Assertions; + +import java.util.ArrayList; +import java.util.List; + +import static cz.moneta.test.dsl.hypos.enums.Client.FIRST_CLIENT; +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage.HYPOKALKULACKA_ID; + +public class HyposContractPrepare { + + private final Harness harness; + private HyposTasks tasks; + + public HyposContractPrepare(Harness harness) { + this.harness = harness; + } + + /** + * Creating new contract used as precondition for Hypos tests. + * + * @return String of contract id used for following tests. + */ + public String createNewContract(Harness harness) { + + HyposTasks tasks = harness.tasks().hypos(); + + String birthNumber = harness.tasks().common().getRcMinMaxAge(20, 30); + + Address permanentAddress = Address.builder() + .street("Pražská") + .descriptiveNumber("121") + .orientationNumber("") + .city("Kolín") + .zip("28002") + .country("CZ") + .build(); + + NonClient nonClient = harness.data().newNonClient() + .withBirthNumber(birthNumber) + .withEmail(TestUtils.getEmailBasedOnRc(birthNumber)) + .withPlaceOfBirth("Praha") + .withNationality(ClientNationality.CZ.getValue()) + .withMaritalStatus(MaritalStatus.SINGLE) + .withEducationLevel(EducationLevel.HIGHER) + .withGrossIncome(90000) + .withNetMonthlyIncome(80000) + .withEmployer(Employer.builder().ico("00007064").build()) + .withOccupationStatus(OccupationStatus.FULL_TIME_EMPLOYEE) + .withOccupationEmploymentFromRaw(DateUtils.getSpecificDayRaw(1, 1, 2000)) + .withOccupationType(OccupationType.IT_GUYS) + .withIncomeSources("1") + .withDependants(0) + .withAccommodationType(AccommodationType.PARENTS) + .withResidencyAddress(permanentAddress); + + List expenditures = new ArrayList() {{ + add(Expenditure.builder() + .type(ExpenditureType.OTHER_CLIENT.getValue()) + .amount("1000") + .correction(CorrectionType.NO_CORRECTION.getValue()) + .build()); + }}; + + HyposClient hyposClient = HyposClient.builder() + .nonClient(nonClient) + .stayType(StayType.PERMANENT_WITH_PIN.getValue()) + .livingType(LivingType.WITH_PARENTS.getValue()) + .expenditures(expenditures) + .build(); + + //HYPOS CONTRACT + List hyposClients = new ArrayList() {{ + add(hyposClient); + }}; + + Realty realty = Realty.builder() + .searchByRealtyType(RealtySearchType.FLAT.getValue()) + .registerArea("Brno") + .autosuggestionText("Město Brno") + .descriptiveNumber("1234") + .flatNumber("1") + .realtyPrice(3000000) + .realtyPriceCurrent(3500000) + .realtyType(RealtyType.FLAT.getValue()) + .pledgeType(PledgeType.PROPERTY_HOUSING.getValue()) + .contractRelation(ContranctRelation.PLEDGE_WITH_CURRENT_REALTY.getValue()) + .collateralType(CollateralType.FLAT.getValue()) + .appraiserCompany(AppraiserCompany.MONETA_SUPERVISION.getValue()) + .build(); + + HyposContract hyposContract = HyposContract.builder() + .clients(hyposClients) + .realty(realty) + .mortgageLoanAmount(1000000) + .mortgageOwnResources(0) + .mortgageOtherResources(0) + .loanObjectType(LoanObjectType.FLAT.getValue()) + .purchaseReason(PurchaseReason.OWN_HOUSING.getValue()) + .firstHouseholdIncome(HouseholdIncome.builder().withIncome(1).withoutIncome(0).build()) + .build(); + + HypokalkulackaPage hypokalkulackaPage = harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .switchToHypokalkulacka() + .then(tasks.hypokalkulackaTasks().addClientData(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientAddress(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientIncomeEmployee(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientExpenditure(hyposContract, FIRST_CLIENT.getValue())) + + .then(tasks.hypokalkulackaTasks().addHouseholds(hyposContract)) + .then(tasks.hypokalkulackaTasks().addRealtyData(hyposContract)) + .then(tasks.hypokalkulackaTasks().addLoanData(hyposContract)) + .then(tasks.hypokalkulackaTasks().addApplicationData(hyposContract)) + .clickSaveHypokalkulackaButtonAndCheckAlertText() + .then(tasks.hypokalkulackaTasks().generateAndSignAgreements101()) + .then(tasks.hypokalkulackaTasks().generateAndSignMortgageApplication()) + .getHypokalkulackaVersion(harness); + + String hypokalkulackaId = harness.get(HYPOKALKULACKA_ID).toString(); + + hypokalkulackaPage.then(tasks.hypokalkulackaTasks().saveHypokalkulacka()); + Assertions.assertNotNull(hypokalkulackaId, "Hypokalkulačka ID is empty. Stopping test."); + + String contractId = new HyposDbTasks(harness).getContractId(hypokalkulackaId); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .switchToHypokom() + .then(tasks.hypokomTasks().searchClientByContractId(contractId)) + .then(tasks.hypokomTasks().setClientAppointmentDate()) + .then(tasks.hypokomTasks().createNewContract(contractId, hyposContract)); + + harness.store("CONTRACT_ID", contractId); + + return harness.get("CONTRACT_ID"); + } + + /** + * Add unit to Realty as precondition for continuous tests + * + * @param harness + * @param contractId - String of contract id created in createNewContract method. + */ + public void addUnitToRealty(Harness harness, String contractId, int realtyType) { + tasks = harness.tasks().hypos(); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.SUPERVISOR)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.valuationTasks().setNewRealty(realtyType)) + .then(tasks.valuationTasks().checkUnitUsage(realtyType)) + .then(tasks.valuationTasks().addUnitToRealty(realtyType)) + ; + } + + public void createValuationFlat(Harness harness, String contractId) { + int REALTY_FLAT_DESKTOP = 1; + tasks = harness.tasks().hypos(); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.SUPERVISOR)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.valuationTasks().goToMarketValuationForm()) + .then(tasks.valuationTasks().doFlatMarketValuation(REALTY_FLAT_DESKTOP)); + } + + /** + * Close browser after precondition is finished. + * Reason is, that precondition test should be independent from other tests -> every test has it's own browser session. + */ + public void closeBrowser() { + harness.withHypos().closeHypos(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/BusinessIncomeYamlData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/BusinessIncomeYamlData.java new file mode 100644 index 0000000..53cce1a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/BusinessIncomeYamlData.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class BusinessIncomeYamlData { + private int turnoverLatest; + private int taxBaseLatest; + private int paidTax; + private String costAccounting; + private String naceCode; + private int turnoverPenultimate; + private int taxBasePenultimate; + private String ico; + private String currency; + private String startDate; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/ContractDataPrepare.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/ContractDataPrepare.java new file mode 100644 index 0000000..4d38db5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/ContractDataPrepare.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.HyposLogType; +import cz.moneta.test.dsl.hypos.tasks.HyposCommonTasks; +import cz.moneta.test.dsl.util.data.YamlLoader; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.dsl.util.data.hypos.Person; +import cz.moneta.test.dsl.util.data.hypos.Realty; + +import java.util.List; + +public class ContractDataPrepare { + + private final HyposCommonTasks tasks; + + public ContractDataPrepare(Harness harness) { + this.tasks = harness.tasks().hypos().hyposCommonTasks(); + } + + /** + * Creating new contract for Hypos tests. + * + * @param hyposYamlData contains yaml file and optionally client data + * For example: "yaml birthNumber firstName lastName" + * For example: "yaml" + * @return HyposContract with static data. + */ + public HyposContract prepareContractData(String hyposYamlData, Harness harness) { + String[] yamlDataParts = hyposYamlData.split(" "); + Person person = null; + if (yamlDataParts.length == 4) { + person = Person.builder() + .birthNumber(yamlDataParts[1]) + .firstName(yamlDataParts[2]) + .lastName(yamlDataParts[3]) + .build(); + } + + YamlLoader yamlLoader = new YamlLoader("yamls/hypos/hyposContract/" + yamlDataParts[0], HyposContractYamlData.class); + HyposContractYamlData hyposContractYamlData = yamlLoader.parseObject(); + List hyposClients = HyposClient.builder().build().createHyposClients(hyposContractYamlData, person, harness); + Realty realty = Realty.builder().build().createRealty(hyposContractYamlData); + hyposClients.forEach(hyposClient -> tasks.hyposLog(HyposLogType.CLIENT, + String.format("%s %s", hyposClient.getNonClient().birthNumber(), hyposClient.getNonClient().fullName()))); + + return HyposContract.builder().build().createHyposContract(hyposContractYamlData, hyposClients, realty); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/EmployeeIncomeYamlData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/EmployeeIncomeYamlData.java new file mode 100644 index 0000000..b49df7a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/EmployeeIncomeYamlData.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class EmployeeIncomeYamlData { + private int grossSalary; + private int netSalary; + private String ico; + private String startDate; + private String type; + private String profession; + private String phone; + private String currency; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/ExpenditureYamlData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/ExpenditureYamlData.java new file mode 100644 index 0000000..ee26ced --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/ExpenditureYamlData.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ExpenditureYamlData { + private String type; + private String amount; + private String correction; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposAddressYamlData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposAddressYamlData.java new file mode 100644 index 0000000..dacf9ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposAddressYamlData.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class HyposAddressYamlData { + private String street; + private String descriptiveNumber; + private String orientationNumber; + private String city; + private String zip; + private String country; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposClientYamlData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposClientYamlData.java new file mode 100644 index 0000000..2c754c8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposClientYamlData.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class HyposClientYamlData { + private String type; + private String placeOfBirth; + private String nationality; + private HyposAddressYamlData residencyAddress; + private String stayType; + private String livingType; + private List expenditures; + private List employeeIncomes; + private List otherIncomes; + private BusinessIncomeYamlData businessIncomes; + private String firstIdentityType; + private String secondIdentityType; + private String cardifType; + private String clientRelation; + private String household; + private Boolean employee; + private String pep; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposContractYamlData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposContractYamlData.java new file mode 100644 index 0000000..fb76e4e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposContractYamlData.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class HyposContractYamlData { + private List clients; + private HyposRealtyYamlData realty; + private int mortgageLoanAmount; + private int mortgageLoanMaturity; + private int mortgageOwnResources; + private int mortgageOtherResources; + private String loanProduct; + private String loanAction; + private String loanObjectType; + private String purchaseReason; + private List householdIncome; + private List loanPurposes; + private List drawingConditions; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposDrawingConditionYamlData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposDrawingConditionYamlData.java new file mode 100644 index 0000000..221df77 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposDrawingConditionYamlData.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class HyposDrawingConditionYamlData { + private String condition; + private List tranches; + private String type; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposHouseholdYamlData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposHouseholdYamlData.java new file mode 100644 index 0000000..d8822a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposHouseholdYamlData.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class HyposHouseholdYamlData { + private String type; + private int withIncome; + private int withoutIncome; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposLoanPurposeYamlData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposLoanPurposeYamlData.java new file mode 100644 index 0000000..dea894f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposLoanPurposeYamlData.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class HyposLoanPurposeYamlData { + private String amount; + private String type; + private String tranche; + private String paymentType; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposRealtyYamlData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposRealtyYamlData.java new file mode 100644 index 0000000..e6c0fbf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/HyposRealtyYamlData.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class HyposRealtyYamlData { + private String searchByRealtyType; + private String registerArea; + private String autosuggestionText; + private String descriptiveNumber; + private String flatNumber; + private String realtyType; + private int realtyPrice; + private String contractRelation; + private String collateralType; + private String pledgeType; + private String appraiserCompany; + private int realtyPriceCurrent; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/OtherIncomeYamlData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/OtherIncomeYamlData.java new file mode 100644 index 0000000..b3d2331 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/data/OtherIncomeYamlData.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.data; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class OtherIncomeYamlData { + private String type; + private String amount; + private String currency; + private String paidToMmb; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/process/ContractProcessPrepare.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/process/ContractProcessPrepare.java new file mode 100644 index 0000000..38db587 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/contractPrepare/process/ContractProcessPrepare.java @@ -0,0 +1,316 @@ +package cz.moneta.test.dsl.hypos.contractPrepare.process; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.*; +import cz.moneta.test.dsl.hypos.pages.contract.ContractHistoryPage; +import cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage; +import cz.moneta.test.dsl.hypos.tasks.HyposDbTasks; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.endpoints.testautomationdb.TestAutomationDbEndpoint; +import org.junit.jupiter.api.Assertions; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.dsl.hypos.enums.Client.FIRST_CLIENT; +import static cz.moneta.test.dsl.hypos.enums.HyposLogType.PROCESS; +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage.HYPOKALKULACKA_ID; + +public class ContractProcessPrepare { + + private final Harness harness; + private final HyposTasks tasks; + private static final String CONTRACT_STATE_SIGNED = "Úvěr podepsán"; + + public ContractProcessPrepare(Harness harness) { + this.harness = harness; + this.tasks = harness.tasks().hypos(); + } + + /** + * Get hypos profile for fill client income in hypokalkulacka based on loan action. + * @param loanAction - mortgages loan action + * @return HyposProfile + */ + private HyposProfile getProfileForIncome(String loanAction) { + if (HyposAction.isActionEmployee(loanAction)) { + return HyposProfile.PAYROLL_ACCOUNTANT; + } else { + return HyposProfile.EMERGENCY; + } + } + + /** + * Creating new hypokalkulacka for Hypos tests. + * @param hyposContract - mortgages data + */ + public void createNewHypokalkulacka(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + HypokalkulackaPage hypokalkulackaPage = harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .switchToHypokalkulacka() + .then(tasks.hypokalkulackaTasks().addClientData(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientAddress(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientIncomeEmployee(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientIncomeBusiness(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientIncomeOther(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientExpenditure(hyposContract, FIRST_CLIENT.getValue())); + + // Set other client data + for (int client = 1; client < hyposContract.getClients().size(); client++) { + hypokalkulackaPage.then(tasks.hypokalkulackaTasks().addOtherClientData(hyposContract, client)) + .then(tasks.hypokalkulackaTasks().addClientAddress(hyposContract, client)) + .then(tasks.hypokalkulackaTasks().addClientIncomeEmployee(hyposContract, client)) + .then(tasks.hypokalkulackaTasks().addClientIncomeBusiness(hyposContract, client)) + .then(tasks.hypokalkulackaTasks().addClientIncomeOther(hyposContract, client)) + .then(tasks.hypokalkulackaTasks().addClientExpenditure(hyposContract, client)); + } + + hypokalkulackaPage.then(tasks.hypokalkulackaTasks().addHouseholds(hyposContract)) + .then(tasks.hypokalkulackaTasks().addRealtyData(hyposContract)) + .then(tasks.hypokalkulackaTasks().addLoanData(hyposContract)); + + hyposContract.getLoanPurposes().stream() + .filter(purpose -> purpose.getType().equals(LoanPurposeType.REFINANCING.getValue())) + .findAny() + .ifPresent(purpose -> hypokalkulackaPage.fillFirstExpectedDrawDate(LocalDate.now().plusMonths(15).format(DateTimeFormatter.ofPattern("d.M.yyyy")))); + + hypokalkulackaPage.then(tasks.hypokalkulackaTasks().addApplicationData(hyposContract)) + .clickSaveHypokalkulackaButtonAndCheckAlertText() + .then(tasks.hypokalkulackaTasks().generateAndSignAgreements101()) + .then(tasks.hypokalkulackaTasks().generateAndSignMortgageApplication()) + .getHypokalkulackaVersion(harness); + + String hypokalkulackaId = harness.get(HYPOKALKULACKA_ID).toString(); + hypokalkulackaPage.then(tasks.hypokalkulackaTasks().saveHypokalkulacka()); + Assertions.assertNotNull(hypokalkulackaId, "Hypokalkulačka ID is empty. Stopping test."); + String contractId = new HyposDbTasks(harness).getContractId(hypokalkulackaId); + Assertions.assertNotNull(contractId, "Contract ID is empty. Stopping test."); + hyposContract.setContractId(contractId); + } + + /** + * Filling in mandatory data and start prescoring. + * @param hyposContract - mortgages data + */ + public void fillDataAndStartPrescoring(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .switchToHypokom() + .then(tasks.hypokomTasks().searchClientByContractId(hyposContract.getContractId())) + .then(tasks.hypokomTasks().setClientAppointmentDate()) + .then(tasks.hypokomTasks().createNewContract(hyposContract.getContractId(), hyposContract)); + + Assertions.assertEquals(true, new HyposDbTasks(harness).contractPrescoringFinished(hyposContract.getContractId()), "Prescoring was not finished in 180 seconds interval."); + harness.withHypos().closeHypos(); + } + + /** + * Filling in mandatory detail income data in hypokalkulacka. + * @param hyposContract - mortgages data + */ + public void fillDetailIncomeInHypokalkulacka(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + HypokalkulackaPage hypokalkulackaPage = harness.withHypos().openLoginPage() + .then(tasks.loginToHyposWithProfile(getProfileForIncome(hyposContract.getLoanAction()))) + .then(tasks.searchAndOpenContract(hyposContract.getContractId())) + .clickHypokalkulacka(); + + for (int client = 0; client < hyposContract.getClients().size(); client++) { + if (!hyposContract.getClients().get(client).getEmployeeIncomes().isEmpty()) + for (int income = 0; income < hyposContract.getClients().get(client).getEmployeeIncomes().size(); income++) { + hypokalkulackaPage.then(tasks.hypokalkulackaTasks().fillClientDetailIncomeEmployee(hyposContract, client, income)); + } + hypokalkulackaPage.then(tasks.hypokalkulackaTasks().fillClientDetailIncomeBusiness(hyposContract, client)); + } + hypokalkulackaPage.clickSaveNewHypokalkulackaVersionAndAcceptAlertText() + .closeHypokalkulackaAndContinueWithContract(hyposContract); + } + + /** + * Filling in mandatory data and start scoring. + * @param hyposContract - mortgages data + */ + public void fillDataAndStartScoringManual(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + ContractHistoryPage contractHistoryPage = harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Obchod založen - kontrola OK")) + .then(tasks.contractTasks().setNoCifForClient(hyposContract)) + .then(tasks.contractTasks().setLoanAndDrawingConditions(hyposContract)) + .then(tasks.contractTasks().setNewRealtyAndSupervision(hyposContract)) + .then(tasks.contractTasks().importChecklistUwDocument()); + + hyposContract.getClients().stream() + .filter(cardif -> !cardif.getCardifType().equals(CardifType.WITHOUT_CARDIF.getValue())) + .findAny() + .ifPresent(cardif -> contractHistoryPage.then(tasks.contractTasks().setLifeInsurance())); + + this.fillDetailIncomeInHypokalkulacka(hyposContract); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(hyposContract.getContractId())) + .then(tasks.contractTasks().setScoringManual()); + + Assertions.assertEquals(true, new HyposDbTasks(harness).contractScoringFinished(hyposContract.getContractId()), "Contract checking was not finished in 180 seconds interval."); + } + + /** + * Filling in mandatory life insirance data in contract detail + * @param hyposContract - mortgages data + */ + public void fillLifeInsuranceData(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Obchod založen - kontrola OK")) + .then(tasks.contractTasks().setLifeInsurance()) + .clickCloseContract(); + } + + /** + * Filling in mandatory data and approve contract. + * @param hyposContract - mortgages data + */ + public void approveContract(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Ověřování")) + .then(tasks.contractTasks().setEventsFlagsUw1()); + + ContractHistoryPage contractHistoryPage = harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Ověřování")) + .then(tasks.hypokalkulackaTasks().createNewHypokalkulackaVersion(hyposContract)) + .then(tasks.contractTasks().finishContractApproval(hyposContract)) + .checkContractState("Úvěr schválen"); + + hyposContract.getClients().stream() + .filter(cardif -> !cardif.getCardifType().equals(CardifType.WITHOUT_CARDIF.getValue())) + .findAny() + .ifPresent(cardif -> contractHistoryPage.then(tasks.contractTasks().setLifeInsurance())); + } + + /** + * Generating contract documents and sign contract. + * @param hyposContract - mortgages data + */ + public void generateAndSignLoanContractDocuments(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Úvěr schválen")) + .then(tasks.contractTasks().setEventsFlagsUw2()); + + Assertions.assertEquals(true, new HyposDbTasks(harness).loanAccountOpeningFinished(hyposContract.getContractId()), "Loan account was not opened in 420 seconds interval."); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Příprava smluv")) + .then(tasks.contractTasks().generateLoanContractDocuments()) + .then(tasks.contractTasks().setEventsFlagsDocumentsReady()); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Příprava smluv")) + .then(tasks.contractTasks().signLoanContractDocuments()) + .checkContractState(CONTRACT_STATE_SIGNED) + .clickCloseContract(); + } + + /** + * Creating and settings current account. + * @param hyposContract - mortgages data + */ + public void createCurrentAccount(HyposContract hyposContract, Credentials banker) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + String cif = harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), CONTRACT_STATE_SIGNED)) + .then(tasks.contractTasks().getClientCifInHypos(hyposContract)); + Assertions.assertNotNull(cif, "Client's CIF is empty. Stopping test."); + String currentAccountNumber = tasks.createCurrentAccountForExistingClient(banker.getUsername(), hyposContract, cif); + String nodeHost = harness.getEndpoint(HyposEndpoint.class).getNodeHost(); + String createdDateTime = DateUtils.getFormattedTodayDateTime("yyyy-MM-dd hh:mm:ss"); + harness.getEndpoint(TestAutomationDbEndpoint.class) + .insertCreatedClientInfo(cif, hyposContract.getClients().get(FIRST_CLIENT.getValue()).getNonClient().birthNumber(), null, createdDateTime, banker.getUsername(), "Hypos", nodeHost); + hyposContract.setCurrentAccountNumber(currentAccountNumber); + } + + /** + * Filling in mandatory data and create draw request. + * @param hyposContract - mortgages data + */ + public void fillDataAndCreateDrawRequest(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), CONTRACT_STATE_SIGNED)) + .then(tasks.contractTasks().setLandAreaRegistrationDates()) + .then(tasks.contractTasks().setClientCurrentAccount(hyposContract.getCurrentAccountNumber())); + harness.withHypos() + .openLoginPage() + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), CONTRACT_STATE_SIGNED)) + .then(tasks.contractTasks().approveDrawingConditions()) + .then(tasks.contractTasks().createNewDrawRequest(hyposContract)); + harness.withHypos() + .openLoginPage() + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), CONTRACT_STATE_SIGNED)) + .then(tasks.contractTasks().processAndApproveNewDraw()); + } + + /** + * Verify draw request. + * @param hyposContract - mortgages data + */ + public void verifyDrawRequest(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + harness.withHypos() + .openLoginPage() + .switchToTestDrawVerificationPage() + .then(tasks.searchAndVerifyDraw(hyposContract.getContractId())); + } + + /** + * Drawing contract. + * @param hyposContract - mortgages data + */ + public void doDrawInIcbs(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Úvěr dočerpán")) + .then(tasks.contractTasks().doDrawInIcbs()); + } + + /** + * Checking contract after drawing. + * @param hyposContract - mortgages data + */ + public void checkContractDrawing(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(PROCESS, new Object(){}.getClass().getEnclosingMethod().getName()); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Úvěr splácen")); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/RealtyData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/RealtyData.java new file mode 100644 index 0000000..02247a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/RealtyData.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.hypos.dataPrepare; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class RealtyData { + public List realtyCategories; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/RealtyDetails.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/RealtyDetails.java new file mode 100644 index 0000000..959ffa7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/RealtyDetails.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.dataPrepare; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class RealtyDetails { + public String realtyCategory; + public String propertyArea; + public String documentNumber; + public String finalType; + public String pledgeType; + public String pledgeCode; + public String orientationNumber; + public String tdPosition; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/FlatValuationData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/FlatValuationData.java new file mode 100644 index 0000000..e30b641 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/FlatValuationData.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.hypos.dataPrepare.valuations; + +import lombok.Getter; +import lombok.Setter; +import java.util.List; + +@Getter +@Setter +public class FlatValuationData { + public String addressStreet; + public String addressNumber; + public String addressTown; + public String addressPostCode; + public String finalType; + public String type; + public List valuationDetails; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/FlatValuationDetails.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/FlatValuationDetails.java new file mode 100644 index 0000000..1267792 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/FlatValuationDetails.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.hypos.dataPrepare.valuations; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class FlatValuationDetails { + public String valuation; + public String purpose; + public int price; + public String disposition; + public String placing; + public int area; + public int areaOther; + public String state; + public int outsideParking; + public int insideParking; + public int garage; + public String houseType; + public String houseYear; + public String houseStatus; + public int houseFloors; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/HouseValuationData.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/HouseValuationData.java new file mode 100644 index 0000000..612656a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/HouseValuationData.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.hypos.dataPrepare.valuations; + + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class HouseValuationData { + public String addressStreet; + public String addressNumber; + public String addressTown; + public String addressPostCode; + public String finalType; + public String type; + public List valuationDetails; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/HouseValuationDetails.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/HouseValuationDetails.java new file mode 100644 index 0000000..d258829 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/dataPrepare/valuations/HouseValuationDetails.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.hypos.dataPrepare.valuations; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class HouseValuationDetails { + + public String valuation; + public String purpose; + public int price; + public int year; + public String material; + public int area; + public int areaOther; + public String state; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/AppraiserCompany.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/AppraiserCompany.java new file mode 100644 index 0000000..80b7d36 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/AppraiserCompany.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum AppraiserCompany { + MONETA_SUPERVISION("MONETA - supervize"), + MONETA_OTHER("MONETA - ostatní"); + + private final String appraiserCompany; + + AppraiserCompany(String appraiserCompany) { + this.appraiserCompany = appraiserCompany; + } + + public String getValue() { + return appraiserCompany; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CadasterRequestType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CadasterRequestType.java new file mode 100644 index 0000000..d611fca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CadasterRequestType.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum CadasterRequestType { + PART_OWNER_LIST("Část. výpis LV"), + CADASTER_MAP("Kat. mapa"), + OWNER_LIST("List vlastnictví"), + CADASTER_PROCEEDINGS("Řízení na KN"); + + private final String cadasterRequestType; + + CadasterRequestType(String cadasterRequestType) { + this.cadasterRequestType = cadasterRequestType; + } + + public String getValue() { + return cadasterRequestType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CardifType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CardifType.java new file mode 100644 index 0000000..632bf8c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CardifType.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum CardifType { + CARDIF_1("1"), + CARDIF_1_PLUS_1("1-1"), + WITHOUT_CARDIF("x"); + + private final String cardifType; + + CardifType(String cardifType) { + this.cardifType = cardifType; + } + + public String getValue() { + return cardifType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ChecklistDocCategory.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ChecklistDocCategory.java new file mode 100644 index 0000000..589e25b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ChecklistDocCategory.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum ChecklistDocCategory { + IDENTITY_GENERAL("doklady-general"), + INSURANCE_GENERAL("pojisteni-general"), + EXPENDITURE("vydaje"), + INCOME_ALIMENT("aliment"), + INCOME_RENTE("rente"), + INCOME_PARENTAL_CONTRIBUTION("parental_contribution"), + INCOME_DIETS("intl_driver_diets"), + INCOME_OTHER_PENSION("other_pension"), + INCOME_PROFIT_PORTION("profit_portion"), + INCOME_BUSINESS("business"), + INCOME_EMPLOYEE("main"), + INCOME_RENTAL_ALLOWANCE_GROSS("rental_allowance_gross"), + GENERAL_GENERAL("obecne-general"), + PURPOSE_GENERAL("ucel"), + ALLOC_COL("zajisteni"); + + private final String checklistDocCategory; + + ChecklistDocCategory(String checklistDocCategory) { + this.checklistDocCategory = checklistDocCategory; + } + + public String getValue() { + return checklistDocCategory; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ChecklistTab.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ChecklistTab.java new file mode 100644 index 0000000..8f29e02 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ChecklistTab.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum ChecklistTab { + CLIENT("klient"), + LOAN("uver"), + ALLOCATED_COLLATERAL("zajisteni"); + + private final String checklistTab; + + ChecklistTab(String checklistTab) { + this.checklistTab = checklistTab; + } + + public String getValue() { + return checklistTab; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/Client.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/Client.java new file mode 100644 index 0000000..63891cc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/Client.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum Client { + FIRST_CLIENT(0, "1"), + SECOND_CLIENT(1, "2"), + THIRD_CLIENT(2, "3"), + FOURTH_CLIENT(3, "4"); + + private final int client; + private final String clientOrder; + + Client(int client, String clientInHousehold) { + this.client = client; + this.clientOrder = clientInHousehold; + } + + public int getValue() { + return client; + } + + public String getOrderValue() { + return clientOrder; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ClientNationality.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ClientNationality.java new file mode 100644 index 0000000..097a861 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ClientNationality.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum ClientNationality { + CZ("Česká republika"), + SK("Slovensko"); + + private final String nationality; + + ClientNationality(String nationality) { + this.nationality = nationality; + } + + public String getValue() { + return nationality; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ClientRelationType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ClientRelationType.java new file mode 100644 index 0000000..5d0b3e6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ClientRelationType.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum ClientRelationType { + SIBLING("Bratr/Sestra"), + PARTNER("Druh/družka"), + HUSBAND_WIFE("Manžel/ka"), + GRANDPARENT("Prarodič"), + CO_OWNER("Spoluvlastník/ce"), + CHILD("Syn/dcera"), + SIBLING_LAW("Švagr/Švagrová"), + PARENT_LAW("Tchán/tchýně"), + GRANDCHILD("Vnuk/Vnučka"), + CHILD_LAW("Zeť/Snacha"), + PARENT("Otec/matka"), + OTHER("Ostatní"); + + private final String clientRelationType; + + ClientRelationType(String clientRelationType) { + this.clientRelationType = clientRelationType; + } + + public String getValue() { + return clientRelationType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CollateralCode.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CollateralCode.java new file mode 100644 index 0000000..5806791 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CollateralCode.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum CollateralCode { + CODE_149("149 - Bytová jednotka (evidovaná samostatně v KN) bez podílu na pozemku"); + + private final String collateralCode; + + CollateralCode(String collateralCode) { + this.collateralCode = collateralCode; + } + + public String getValue() { + return collateralCode; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CollateralType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CollateralType.java new file mode 100644 index 0000000..9d46cda --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CollateralType.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum CollateralType { + FLAT("Jednotka"), + RIGHT("Právo stavby"), + BUILDING("Budova"), + LAND("Pozemek"); + + private final String collateralType; + + CollateralType(String collateralType) { + this.collateralType = collateralType; + } + + public String getValue() { + return collateralType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CollectableFee.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CollectableFee.java new file mode 100644 index 0000000..7d2dddc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CollectableFee.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum CollectableFee { + APPENDIX_CLIENT_INITIATIVE("DODATEK - Z PODNĚTU KLIENTA"), + FEE_DOWNLOAD_LV_KM("Poplatek za stažení LV/KM"), + OTHER_BANK_INFORMATION("OSTATNÍ - BANKOVNÍ INFORMACE"); + + private final String collectableFee; + + CollectableFee(String collectableFee) { + this.collectableFee = collectableFee; + } + + public String getValue() { + return collectableFee; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ContractFlag.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ContractFlag.java new file mode 100644 index 0000000..f7928bb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ContractFlag.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum ContractFlag { + ACCEPT_UW1("Přijetí digitální složky na UW1"), + ELABORATE_UW1("Rozpracování digitální složky na UW1"), + SEND_FOLDER_UW2("Odeslání digitální složky na UW2"), + ACCEPT_FOLDER_UW2("Fyzické přijetí složky na UW2"), + DOCUMENTS_READY("Smlouvy připraveny bez BÚ"); + + private final String contractFlag; + + ContractFlag(String contractFlag) { + this.contractFlag = contractFlag; + } + + public String getValue() { + return contractFlag; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ContranctRelation.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ContranctRelation.java new file mode 100644 index 0000000..2d85bd9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ContranctRelation.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum ContranctRelation { + PLEDGE_WITH_OTHER_REALTY("Zajištění jinou nemovitostí"), + PLEDGE_WITH_CURRENT_REALTY("Zajištění = objekt úvěru"), + PLEDGE_ADDIONAL("Dozajištění"), + PLEDGE_NONPURPOSE_LOAN("Zajištění neúčelového úvěru"); + + private final String contractRelation; + + ContranctRelation(String contractRelation) { + this.contractRelation = contractRelation; + } + + public String getValue() { + return contractRelation; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CorrectionType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CorrectionType.java new file mode 100644 index 0000000..156ae6b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/CorrectionType.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum CorrectionType { + NO_CORRECTION("---"), + DOC_APPROVE("doložené ke schval."), + DOC_DRAW("doložené k čerp."), + REFUNDING("refinancování úvěru"), + DUPLICITY("duplicita závazků"); + + private final String correctionType; + + CorrectionType(String correctionType) { + this.correctionType = correctionType; + } + + public String getValue() { + return correctionType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/DocumentState.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/DocumentState.java new file mode 100644 index 0000000..b0097eb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/DocumentState.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum DocumentState { + PREPARED("0"), + GENERATED("1"), + VERIFIED("2"); + + private final String documentState; + + DocumentState(String documentState) { + this.documentState = documentState; + } + + public String getValue() { + return documentState; + } + + public static String getNameByValue(String value) { + for (DocumentState state : DocumentState.values()) { + if (state.getValue().equals(value)) { + return state.name(); + } + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/DocumentTemplate.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/DocumentTemplate.java new file mode 100644 index 0000000..a9fc8e0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/DocumentTemplate.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum DocumentTemplate { + PLEDGE_AGREEMENT("2", "Zástavní smlouva"), + DEPOSIT_PROPOSAL("335", "Návrh na vklad"), + SHORT_APPLICATION("391", "Zkrácená žádost o poskytnutí úvěru"), + FULL_APPLICATION("333", "Žádost o poskytnutí HÚ"); + + private final String documentTemplateId; + private final String documentTemplateName; + + DocumentTemplate(String documentTemplateId, String documentTemplateName) { + this.documentTemplateId = documentTemplateId; + this.documentTemplateName = documentTemplateName; + } + + public String getValue() { + return documentTemplateId; + } + + public String getName() { + return documentTemplateName; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ExpenditureType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ExpenditureType.java new file mode 100644 index 0000000..314e810 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ExpenditureType.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum ExpenditureType { + ALIMENT("Výživné"), + CONTOCURRENT("Kontokorent"), + CPS_LIABILITY("Závazek ze SJM"), + CREDIT_CARD("Kreditní karta"), + LEASING("Leasing"), + LOAN_CONSUMER("Splátka půjček a úvěrů"), + LOAN_MORTAGAGE("Splátka jin. hyp. úvěru"), + LOAN_SAVING("Splátka úvěru stav. spoření"), + OTHER_CLIENT("Jiné nezbytné náklady na klienta"), + OTHER_ALIMENT("Jiné náklady na vyživované osoby"), + OTHER("Jiné splátkové závazky"); + + private final String expenditureType; + + ExpenditureType(String expenditureType) { + this.expenditureType = expenditureType; + } + + public String getValue() { + return expenditureType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposAction.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposAction.java new file mode 100644 index 0000000..d1240b1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposAction.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.hypos.enums; + +import java.util.stream.Stream; + +public enum HyposAction { + FINANSO("Finanso"), + REFINANSO("Refinanso"), + EMPLOYEE_FLEXIBLE_MORTGAGE("Zaměstnanec - Hypoteční úvěr na bydlení 80"), + EMPLOYEE_AMERICAN_MORTGAGE("Zaměstnanec - Americká HY"), + EMPLOYEE_VARIABLE_MORTGAGE("Zaměstnanec - Hypotéka s variabilní sazbou 80"), + BUSINESS_MORTGAGE("Živnostenská hypotéka"), + WITHOUT_ACTION("--"); + + private final String hyposAction; + + HyposAction(String hyposAction) { + this.hyposAction = hyposAction; + } + + public String getValue() { + return hyposAction; + } + + public static boolean isActionEmployee(String action) { + return Stream.of(EMPLOYEE_FLEXIBLE_MORTGAGE, EMPLOYEE_AMERICAN_MORTGAGE, EMPLOYEE_VARIABLE_MORTGAGE) + .anyMatch(a -> a.getValue().equals(action)); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposContractState.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposContractState.java new file mode 100644 index 0000000..078db69 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposContractState.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum HyposContractState { + UVER_SPLACENI("stt_uver_splaceni"), + OBCHOD_ZALOZEN_KONTROLA_OK("stt_obchod_zalozen_kontrola_ok"), + DOPLN_DOKLADY("stt_dopln_doklady"), + PRIPRAVA_SMLUV("stt_priprava_smluv"), + OVEROVANI("stt_overovani"); + + private final String hyposContractState; + + HyposContractState(String hyposContractState) { + this.hyposContractState = hyposContractState; + } + + public String getValue() { + return hyposContractState; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposLogType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposLogType.java new file mode 100644 index 0000000..5a929b4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposLogType.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum HyposLogType { + TASK("Begin task"), + PROCESS("Begin proces"), + CLIENT("Hypos client"); + + private final String hyposLogType; + + HyposLogType(String hyposLogType) { + this.hyposLogType = hyposLogType; + } + + public String getValue() { + return hyposLogType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposProduct.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposProduct.java new file mode 100644 index 0000000..bf23af7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposProduct.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum HyposProduct { + AMERICAN("AMERICKÁ HYPOTÉKA"), + FLEXIBLE("Hypoteční úvěr na bydlení"), + VARIABLE("VARIABILNÍ HYPOTÉKA"); + + private final String hyposProduct; + + HyposProduct(String hyposProduct) { + this.hyposProduct = hyposProduct; + } + + public String getValue() { + return hyposProduct; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposProfile.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposProfile.java new file mode 100644 index 0000000..76f4621 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/HyposProfile.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum HyposProfile { + EMERGENCY(5), + HOB(23), + PAYROLL_ACCOUNTANT(26), + SUPERVISOR(27); + + private final int profile; + + HyposProfile(int profile) { + this.profile = profile; + } + + public int getValue() { + return profile; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/IdentityType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/IdentityType.java new file mode 100644 index 0000000..b8f7c9b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/IdentityType.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum IdentityType { + IDENTITY_CARD("Občanský průkaz ČR"), + PASSPORT("Pas"), + EU_NEMBER_CARD("ID cizince"); + + private final String identityType; + + IdentityType(String identityType) { + this.identityType = identityType; + } + + public String getValue() { + return identityType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/IncomeCurrency.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/IncomeCurrency.java new file mode 100644 index 0000000..08ec911 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/IncomeCurrency.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum IncomeCurrency { + CZK("CZK - Česká republika"); + + private final String currency; + + IncomeCurrency(String currency) { + this.currency = currency; + } + + public String getValue() { + return currency; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/LivingType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/LivingType.java new file mode 100644 index 0000000..b110970 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/LivingType.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum LivingType { + COOPERATIVE_FLAT("Družstevní byt"), + RENTED_FLAT("Pronajatý byt"), + RENTED_HOUSE("Pronajatý dům"), + WITH_PARENTS("U rodičů"), + OWN_FLAT("Vlastní byt"), + OWN_HOUSE("Vlastní dům"), + OTHER("Jiné"); + + private final String livingType; + + LivingType(String livingType) { + this.livingType = livingType; + } + + public String getValue() { + return livingType; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/LoanObjectType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/LoanObjectType.java new file mode 100644 index 0000000..8cfc5b5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/LoanObjectType.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum LoanObjectType { + FLAT("Byt"), + HOUSE_OR_PLOT("Dům/Pozemek"), + RIGHT_TO_BUILD("Právo stavby"), + WITHOUT_PURPOSE("Bez účelu"), + OTHER("Ostatní"); + + private final String loanObject; + + LoanObjectType(String loanObject) { + this.loanObject = loanObject; + } + + public String getValue() { + return loanObject; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/LoanPurposeType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/LoanPurposeType.java new file mode 100644 index 0000000..79542e7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/LoanPurposeType.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.hypos.enums; + + +public enum LoanPurposeType { + BUY("1"), + RECONSTRUCTION("11"), + WITHOUT_PURPOSE("81"), + MONEY_TO_ACCOUNT("83"), + REFINANCING("90"); + + private final String loanPurposeType; + + LoanPurposeType(String loanPurposeType) { + this.loanPurposeType = loanPurposeType; + } + + public String getValue() { + return loanPurposeType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/MainIncomeType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/MainIncomeType.java new file mode 100644 index 0000000..850b874 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/MainIncomeType.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum MainIncomeType { + DEFINED_PERIOD("Na dobu určitou"), + UNDEFINED_PERIOD("Na dobu neurčitou"), + WORK_ACTIVITY_AGREEMENT("Dohoda o pracovní činnosti"), + WORK_AGREEMENT("Dohoda o provedení práce"); + + private final String mainIncomeType; + + MainIncomeType(String mainIncomeType) { + this.mainIncomeType = mainIncomeType; + } + + public String getValue() { + return mainIncomeType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/OtherIncomeType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/OtherIncomeType.java new file mode 100644 index 0000000..b7fe942 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/OtherIncomeType.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.hypos.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum OtherIncomeType implements DynamicPathPart { + MATERNITY_ALLOWANCE("maternity-allowance"), + INVALIDITY_PENSION("invalidity-pension"), + OLDAGE_PENSION("oldage-pension"), + OTHER_PENSION("other-pension"), + RENTE("rente"), + CAPITAL_ASSETS("capital-assets"), + DRIVER_DIETS("intl-driver-diets"), + ALIMENT("aliment"), + PARENTAL_CONTRIBUTION("parental-contribution"), + FOSTER_CARE("foster-care"), + PROFIT_PORTION("profit-portion"), + OTHER("other"), + RENTAL_ALLOWANCE_GROSS("rental-allowance-gross"), + RENTAL_ALLOWANCE_TAX_RETURN("rental-allowance-tax-return"), + RENTAL_ALLOWANCE("rental-allowance"), + FUTURE_RENTAL_ALLOWANCE("future-rental-allowance"), + UNSPECIFIED("unspecified"); + + private final String otherIncomeType; + + OtherIncomeType(String otherIncomeType) { + this.otherIncomeType = otherIncomeType; + } + + public String getValue() { + return otherIncomeType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/PaymentType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/PaymentType.java new file mode 100644 index 0000000..fb0b54c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/PaymentType.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.hypos.enums; + + +public enum PaymentType { + WITHOUT_PURPOSE("1"), + GROUP_PURPOSE_BUY("2"), + PAYMENT_ADVANCE("3"), + PAYMENT_AFTER_WORK("4"), + GROUP_PURPOSE_CONSOLIDATION("5"); + + private final String paymentType; + + PaymentType(String paymentType) { + this.paymentType = paymentType; + } + + public String getValue() { + return paymentType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/PledgeType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/PledgeType.java new file mode 100644 index 0000000..7b846a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/PledgeType.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum PledgeType { + PROPERTY_COMMERCIAL("Komerční nemovitosti"), + PROPERTY_HOUSING("Nemovitosti - bydlení"); + + private final String pledgeType; + + PledgeType(String pledgeType) { + this.pledgeType = pledgeType; + } + + public String getValue() { + return pledgeType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/PurchaseReason.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/PurchaseReason.java new file mode 100644 index 0000000..2d5aab7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/PurchaseReason.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum PurchaseReason { + LEASE("Pronájem"), + OWN_HOUSING("Vlastní bydlení"); + + private final String purchaseReason; + + PurchaseReason(String purchaseReason) { + this.purchaseReason = purchaseReason; + } + + public String getValue() { + return purchaseReason; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/RealtySearchType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/RealtySearchType.java new file mode 100644 index 0000000..1c60bf1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/RealtySearchType.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum RealtySearchType { + FLAT("byt"), + HOUSE("budova"), + LAND("pozemek"), + BUILD_PERMIT("právo stavby"), + PAPER_OF_OWNERSHIP("list vlastnictví"), + GEOMETRIC_PLAN("geometrický plán"), + OWNER_DECLARATION("prohlášení vlastníka"), + APPRAISAL("ocenění"), + DB_ID("db id"); + + private final String realtySearchType; + + RealtySearchType(String realtySearchType) { + this.realtySearchType = realtySearchType; + } + + public String getValue() { + return realtySearchType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/RealtyType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/RealtyType.java new file mode 100644 index 0000000..9edf2e2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/RealtyType.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum RealtyType { + FLAT_COOPERATIVE_OWNERSHIP("Byt v družstevním vlastnictví"), + FLAT("Byt v osobním vlastnictví"), + HOUSE("Rodinný dům"), + PLOT("Stavební pozemek"), + OTHER("Jiný"); + + private final String realtyType; + + RealtyType(String realtyType) { + this.realtyType = realtyType; + } + + public String getValue() { + return realtyType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ScoringApprovalResultType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ScoringApprovalResultType.java new file mode 100644 index 0000000..9d0b48d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ScoringApprovalResultType.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum ScoringApprovalResultType { + AUTOMAT("pro aktuální žádost"), + MANUAL("pro aktuální žádost - Manual"); + + private final String scoringApprovalType; + + ScoringApprovalResultType(String scoringApprovalType) { + this.scoringApprovalType = scoringApprovalType; + } + + public String getValue() { + return scoringApprovalType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ScoringParameterType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ScoringParameterType.java new file mode 100644 index 0000000..12e2a32 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/ScoringParameterType.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum ScoringParameterType { + REFUSAL_REASON("Důvody zamítnutí"), + LIMIT("Limity"), + APPROVAL_RESULT("Výsledek rozhodnutí"), + BONITY("Výstupy bonity - Ukazatelé"), + BONITY_LTV("Výstupy bonity - Ukazatelé"), + STRATEGY("Strategie"); + + private final String scoringApprovalType; + + ScoringParameterType(String scoringApprovalType) { + this.scoringApprovalType = scoringApprovalType; + } + + public String getValue() { + return scoringApprovalType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/StayType.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/StayType.java new file mode 100644 index 0000000..b2d1468 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/StayType.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum StayType { + TEMPORARY_WITHOUT_PIN("Přechodný bez RČ"), + TEMPORARY_WITH_PIN("Přechodný s RČ"), + PERMANENT_WITHOUT_PIN("Trvalý bez RČ"), + PERMANENT_WITH_PIN("Trvalý s RČ"), + OTHER("Ostatní"); + + private final String accomodationType; + + StayType(String accomodationType) { + this.accomodationType = accomodationType; + } + + public String getValue() { + return accomodationType; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/YesNo.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/YesNo.java new file mode 100644 index 0000000..af7a32d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/enums/YesNo.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.hypos.enums; + +public enum YesNo { + YES("1"), + NO("0"); + + private final String yesNo; + + YesNo(String yesNo) { + this.yesNo = yesNo; + } + + public String getValue() { + return yesNo; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/HyposLoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/HyposLoginPage.java new file mode 100644 index 0000000..064dfe1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/HyposLoginPage.java @@ -0,0 +1,99 @@ +package cz.moneta.test.dsl.hypos.pages; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.cadaster.CadasterNavigationPage; +import cz.moneta.test.dsl.hypos.pages.contract.hyposutils.TestDrawVerificationPage; +import cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage; +import cz.moneta.test.dsl.hypos.pages.hypokom.HypokomSearchPage; +import cz.moneta.test.dsl.hypos.pages.mpt.MptPage; +import cz.moneta.test.dsl.hypos.pages.realty.RealtyMenuPage; +import cz.moneta.test.dsl.hypos.pages.structure.StructurePage; +import cz.moneta.test.dsl.hypos.pages.tasklist.TaskListPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.HyposLoginPage.SECONDARY_PROFILE_SELECT; + +@Wait(value = SECONDARY_PROFILE_SELECT, until = Until.VISIBLE) +public interface HyposLoginPage extends HyposPageFlow, Menu, StoreAccessor { + String SECONDARY_PROFILE_SELECT = "//select[@name='secondary_profile']"; + String HYPOS_LOGIN_BUTTON = "//a[text()='HYPOS přihlášení']"; + + @Select(value = SECONDARY_PROFILE_SELECT, andWait = @Wait(value = SECONDARY_PROFILE_SELECT, until = Until.VISIBLE)) + HyposLoginPage selectSecondaryProfile(int profile); + + @CheckElementPresent(SECONDARY_PROFILE_SELECT) + HyposLoginPage checkSecondaryProfile(); + + @CheckElementPresent(HYPOS_LOGIN_BUTTON) + HyposLoginPage checkLoginButton(); + + @CustomAction + default HypokomSearchPage switchToHypokom() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.changePath("Hypos/hypokom.php"); + return null; + } + + @CustomAction + default HyposMainPage switchToHyposMainPage() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.changePath("Hypos/main.php"); + endpoint.switchToFrame(MAIN_FRAME_XPATH); + return null; + } + + @CustomAction + default HypokalkulackaPage switchToHypokalkulacka() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.changePath("Hypos/calc.php?cmd=calc.edit"); + return null; + } + + @CustomAction + default TestDrawVerificationPage switchToTestDrawVerificationPage() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.changePath("test-draw-ver.php"); + return null; + } + + @CustomAction + default MptPage switchToMptPage() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.changePath("Hypos/sestavy.php?cmd=mpt.list"); + return null; + } + + @CustomAction + default StructurePage switchToStructurePage() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.changePath("Hypos/sestavy.php?cmd=main"); + return null; + } + + @CustomAction + default CadasterNavigationPage switchToCadasterPage() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.changePath("Hypos/realty.php?cmd=cadaster.navigation"); + return null; + } + + @CustomAction + default RealtyMenuPage switchToRealtyPage() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.changePath("Hypos/realty.php?cmd=realty.menu"); + return null; + } + + @CustomAction + default TaskListPage switchToTaskListPage() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.changePath("complaints.php?cmd=complaints.list"); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/HyposMainPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/HyposMainPage.java new file mode 100644 index 0000000..cd34281 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/HyposMainPage.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.hypos.pages; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.HyposMainPage.SEARCH_CONTRACT_LINK; + +@Wait(SEARCH_CONTRACT_LINK) +public interface HyposMainPage extends HyposPageFlow, Menu, StoreAccessor {} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/HyposPageFlow.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/HyposPageFlow.java new file mode 100644 index 0000000..975a099 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/HyposPageFlow.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.hypos.pages; + +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface HyposPageFlow> extends WebFlow { + String LOADER = "//div[@class='loading' and not(contains(@style,'display: none'))]"; + + default void beforePageLoad(WebEndpoint endpoint) { + endpoint.waitForElementsToLoad(120, Until.GONE, LOADER); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/cadaster/CadasterNavigationPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/cadaster/CadasterNavigationPage.java new file mode 100644 index 0000000..82d2a8f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/cadaster/CadasterNavigationPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.hypos.pages.cadaster; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.cadaster.CadasterNavigationPage.CADASTER_REQUEST_BUTTON; + +@Wait(CADASTER_REQUEST_BUTTON) +public interface CadasterNavigationPage extends HyposPageFlow, StoreAccessor { + String CADASTER_REQUEST_BUTTON = "//a[contains(@href,'cadaster.requests-report')]"; + + @Click(CADASTER_REQUEST_BUTTON) + CadasterRequestPage clickCadasterRequestPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/cadaster/CadasterRedocDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/cadaster/CadasterRedocDetailPage.java new file mode 100644 index 0000000..e6e8884 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/cadaster/CadasterRedocDetailPage.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.hypos.pages.cadaster; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.hypos.pages.contract.realty.UnitDetailPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.cadaster.CadasterRedocDetailPage.CADASTER_REQUEST; + +@Wait(CADASTER_REQUEST) +public interface CadasterRedocDetailPage extends HyposPageFlow, StoreAccessor { + String CADASTER_REQUEST = "//table[@id='cadaster-requests']/tbody/tr"; + + String REALTY_DETAIL = "//*[contains(text(),'%s')]//following::a[contains(@href,'realty.overview')]"; + String FLAT_UNIT_DETAIL = "//table[@id='flat-listing']" + REALTY_DETAIL; + String BUILDING_DETAIL = "//table[@id='building-listing']" + REALTY_DETAIL; + String LAND_DETAIL = "//table[@id='lot-listing']" + REALTY_DETAIL; + + @CheckElementPresent(CADASTER_REQUEST) + CadasterRedocDetailPage checkCadasterRequest(); + + @Click(value = FLAT_UNIT_DETAIL, isStringDynamicXpath = true) + UnitDetailPage clickFlatUnitDetail(String flatNumber); + + @Click(value = BUILDING_DETAIL, isStringDynamicXpath = true) + UnitDetailPage clickBuildingDetail(String buildingNumber); + + @Click(value = LAND_DETAIL, isStringDynamicXpath = true) + UnitDetailPage clickLandDetail(String buildingNumber); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/cadaster/CadasterRequestPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/cadaster/CadasterRequestPage.java new file mode 100644 index 0000000..a6001e2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/cadaster/CadasterRequestPage.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.hypos.pages.cadaster; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.hypos.pages.cadaster.CadasterRequestPage.FILTER_TYPE_SELECT; + +@Wait(FILTER_TYPE_SELECT) +public interface CadasterRequestPage extends HyposPageFlow, StoreAccessor { + String FILTER_TYPE_SELECT = "//select[@name='filter[type]']"; + String FILTER_STATUS_SELECT = "//select[@name='filter[status]']"; + String FILTER_SEARCH_BUTTON = "//button[text()='Zobrazit' and not(@disabled)]"; + String REDOC_DETAIL = "(//a[contains(@href,'redoc.overview')])[1]"; + + @Click(value = FILTER_SEARCH_BUTTON, andWait = @Wait(value = REDOC_DETAIL, until = Until.CLICKABLE)) + CadasterRequestPage clickSearchButton(); + + @Select(FILTER_TYPE_SELECT) + CadasterRequestPage selectFilterType(String type); + + @Select(FILTER_STATUS_SELECT) + CadasterRequestPage selectFilterStatus(String status); + + @CustomAction + default CadasterRedocDetailPage clickRedocDetail() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> REDOC_DETAIL); + endpoint.switchToOtherWindow(20, 2); + endpoint.maximizeBrowserWindow(); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/ContractHistoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/ContractHistoryPage.java new file mode 100644 index 0000000..a0cc6a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/ContractHistoryPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.hypos.pages.contract; + +import cz.moneta.test.dsl.hypos.components.ContractMenu; +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.ContractHistoryPage.HISTORY_TABLE_TITLE; + +@Wait(HISTORY_TABLE_TITLE) +public interface ContractHistoryPage extends HyposPageFlow, Menu, ContractMenu { + String PAGE_TITLE = "//h1[text()='Historie obchodu %s']"; + String HISTORY_TABLE_TITLE = "//h2[text()='Stavy a příznaky']"; + + @CheckElementPresent(value = PAGE_TITLE, isStringDynamicXpath = true) + ContractHistoryPage checkContractIdPresent(String contractId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/EditContinuePage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/EditContinuePage.java new file mode 100644 index 0000000..829b786 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/EditContinuePage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.hypos.pages.contract; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.EditContinuePage.ENTER_CONTRACT_BUTTON_XPATH; +import static cz.moneta.test.dsl.hypos.pages.contract.EditContinuePage.PAGE_TITLE_XPATH; + +@Wait({PAGE_TITLE_XPATH, ENTER_CONTRACT_BUTTON_XPATH}) +public interface EditContinuePage extends HyposPageFlow { + String PAGE_TITLE_XPATH = "//h1[text()='Oprava / pokračování']"; + String ENTER_CONTRACT_BUTTON_XPATH = "//input[@value='Vstup do obchodu']"; + String ENTER_HYPOKALKULACKA_BUTTON_XPATH = "//input[@id='calc']"; + String CONTRACT_ID_TD = "//table[@class='content']/tbody/tr/th[text()='Obchodní případ č.']//following::td[contains(text(),'%s')]"; + + @CheckElementPresent(value = CONTRACT_ID_TD, isStringDynamicXpath = true) + EditContinuePage checkContractId(String contractId); + + @CheckElementPresent(ENTER_CONTRACT_BUTTON_XPATH) + EditContinuePage checkEnterContractButtonExistence(); + + @Click(ENTER_CONTRACT_BUTTON_XPATH) + ContractHistoryPage clickEnterContractButton(); + + @Click(ENTER_HYPOKALKULACKA_BUTTON_XPATH) + HypokalkulackaPage clickEnterHypokalkulackaButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/NewContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/NewContractPage.java new file mode 100644 index 0000000..ce32af0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/NewContractPage.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.hypos.pages.contract; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.hypos.pages.hypokom.HypokomSearchPage; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.NewContractPage.PAGE_TITLE_XPATH; + +@Wait(PAGE_TITLE_XPATH) +public interface NewContractPage extends HyposPageFlow, Menu, StoreAccessor { + String PAGE_TITLE_XPATH = "//h1[text()='Nový obchod']"; + String CLIENT_AGREEMENT_XPATH = "//div[@id='client-%s']"; + String AGREEMENT_MARKETING_IMG_XPATH = CLIENT_AGREEMENT_XPATH + "//img[@id='img-MarketingByAllChannels']"; + String AGREEMENT_CHANNELS_IMG_XPATH = CLIENT_AGREEMENT_XPATH + "//img[@id='img-CommBankSecretByUnsecured']"; + String AGREEMENT_MESSAGING_IMG_XPATH = CLIENT_AGREEMENT_XPATH + "//img[@id='img-InstantMessagingByAllPlatforms']"; + String ARES_AND_JUSTICE_BUTTON_XPATH = "//input[@value='ARES a JUSTICE']"; + String ESTABLISH_BUTTON_XPATH = "//input[@value='Založit']"; + + @CustomAction + default NewContractPage checkAgreements(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + for (int i = 0; i < hyposContract.getClients().size(); i++) { + String client = String.valueOf(i + 1); + endpoint.click(() -> String.format(AGREEMENT_MARKETING_IMG_XPATH, client)); + endpoint.click(() -> String.format(AGREEMENT_CHANNELS_IMG_XPATH, client)); + endpoint.click(() -> String.format(AGREEMENT_MESSAGING_IMG_XPATH, client)); + } + return null; + } + + @Click(ARES_AND_JUSTICE_BUTTON_XPATH) + NewContractPage clickAresAndJustice(); + + @Click(ESTABLISH_BUTTON_XPATH) + EditContinuePage clickEstablishContract(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/SearchContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/SearchContractPage.java new file mode 100644 index 0000000..877b40f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/SearchContractPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.hypos.pages.contract; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.SearchContractPage.CONTRACT_CODE_INPUT; +import static cz.moneta.test.dsl.hypos.pages.contract.SearchContractPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.SearchContractPage.SEARCH_CONTRACT_BUTTON; + +@Wait({PAGE_TITLE, CONTRACT_CODE_INPUT, SEARCH_CONTRACT_BUTTON}) +public interface SearchContractPage extends HyposPageFlow { + String PAGE_TITLE = "//h1[text()='Vyhledání obchodu']"; + String SEARCH_FORM = "//form[@class='uiForm']"; + String CONTRACT_CODE_INPUT = SEARCH_FORM + "//input[@id='contractCode']"; + String SEARCH_CONTRACT_BUTTON = SEARCH_FORM + "//input[@value='Vyhledat']"; + + @TypeInto(CONTRACT_CODE_INPUT) + SearchContractPage fillContractId(String contractId); + + @Click(SEARCH_CONTRACT_BUTTON) + EditContinuePage clickSearchcontractButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ApVerificationPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ApVerificationPage.java new file mode 100644 index 0000000..5f0f682 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ApVerificationPage.java @@ -0,0 +1,58 @@ +package cz.moneta.test.dsl.hypos.pages.contract.approval; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import org.openqa.selenium.WebElement; + +import java.util.ArrayList; +import java.util.List; + +import static cz.moneta.test.dsl.hypos.pages.contract.approval.ApVerificationPage.AVAILABLE_DOCUMENT; + +@Wait(AVAILABLE_DOCUMENT) +public interface ApVerificationPage extends HyposPageFlow, StoreAccessor, Menu { + String SEND_TO_AP_BUTTON = "//a[text()='Odeslat']"; + String AVAILABLE_DOCUMENT = "//tbody[@id='risk-docs']/tr[1]"; + String AVAILABLE_TASKS = "//tbody[@id='complaints']/tr"; + String AVAILABLE_TASK = AVAILABLE_TASKS + "[%s]"; + String AVAILABLE_TASK_ID = AVAILABLE_TASK + "//input[@class='task-id']/preceding-sibling::a"; + + String TASK_IDS = "TASK_IDS"; + + @Click(SEND_TO_AP_BUTTON) + ApVerificationPage clickSendToApButton(); + + @CustomAction + default ApVerificationPage dragAndDropDocuments() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.waitForElementsToLoad(5, AVAILABLE_TASKS); + List availableTasks = endpoint.findAndGetListOfElements(AVAILABLE_TASKS, Lookup.XPATH); + for (int i = 1; i <= availableTasks.size(); i++) { + String availableTask = String.format(AVAILABLE_TASK, i); + endpoint.waitForElementsToLoad(5, availableTask); + endpoint.dragAndDrop(AVAILABLE_DOCUMENT, availableTask); + } + return null; + } + + @CustomAction + default ApVerificationPage getTaskIds(Harness harness) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + List taskIds = new ArrayList<>(); + endpoint.waitForElementsToLoad(5, AVAILABLE_TASKS); + List availableTasks = endpoint.findAndGetListOfElements(AVAILABLE_TASKS, Lookup.XPATH); + for (int i = 1; i <= availableTasks.size(); i++) { + String availableTask = String.format(AVAILABLE_TASK_ID, i); + taskIds.add(endpoint.getText(availableTask)); + } + harness.store(TASK_IDS, taskIds); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/CancelContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/CancelContractPage.java new file mode 100644 index 0000000..703cf90 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/CancelContractPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.hypos.pages.contract.approval; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.AcceptAlert; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.approval.CancelContractPage.CANCEL_CONTRACT_BY_CLIENT_CHECKBOX; + +@Wait(CANCEL_CONTRACT_BY_CLIENT_CHECKBOX) +public interface CancelContractPage extends HyposPageFlow, StoreAccessor, Menu { + String CANCEL_CONTRACT_BUTTON = "//input[@id='cancel-contract']"; + String CANCEL_CONTRACT_BY_CLIENT_CHECKBOX = "//input[@id='stt_obchod_zrusen_ze_strany_klienta']"; + String CANCEL_CONTRACT_SUCCESS_TEXT = "//h2[text()='Došlo k úspěšnému ukončení obchodu']"; + + @Click(CANCEL_CONTRACT_BY_CLIENT_CHECKBOX) + CancelContractPage clickCancelContractByClientCheckbox(); + + @Click(CANCEL_CONTRACT_BUTTON) + @AcceptAlert(waitSecondsForAlert = 10) + CancelContractPage clickCancelContractButton(); + + @CheckElementPresent(CANCEL_CONTRACT_SUCCESS_TEXT) + CancelContractPage checkCancelContractSuccessText(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ScoringChecklistPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ScoringChecklistPage.java new file mode 100644 index 0000000..187a608 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ScoringChecklistPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.hypos.pages.contract.approval; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.hypos.pages.contract.approval.ScoringChecklistPage.COMMENT_TEXTAREA; + +@Wait(COMMENT_TEXTAREA) +public interface ScoringChecklistPage extends HyposPageFlow, StoreAccessor { + String COMMENT_TEXTAREA = "//textarea[@name='comment' and not(@disabled)]"; + String SCORING_BUTTON = "//button[text()='Předat na scoring']"; + + @Click(SCORING_BUTTON) + ScoringPage clickHandoverToScoringButton(); + + @TypeInto(COMMENT_TEXTAREA) + ScoringChecklistPage fillComment(String comment); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ScoringDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ScoringDetailPage.java new file mode 100644 index 0000000..e1ba005 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ScoringDetailPage.java @@ -0,0 +1,146 @@ +package cz.moneta.test.dsl.hypos.pages.contract.approval; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.util.data.hypos.ScoringParameter; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.util.Level; +import org.openqa.selenium.WebElement; +import java.util.ArrayList; +import java.util.List; + +import static cz.moneta.test.dsl.hypos.enums.ScoringParameterType.*; +import static cz.moneta.test.dsl.hypos.pages.contract.approval.ScoringDetailPage.RESPONSE_INPUT_TAB; + +@Wait(RESPONSE_INPUT_TAB) +public interface ScoringDetailPage extends HyposPageFlow, StoreAccessor, Menu { + String RESPONSE_INPUT_TAB = "//a[contains(text(),'Žádost - výstupy')]"; + String RESPONSE_INPUT_DIV = "//div[@id='tabs-response']"; + String REFUSAL_REASON_TABLE = RESPONSE_INPUT_DIV + "//th[text()='Důvody zamítnutí']/ancestor::table[1]//tbody/tr"; + String LIMIT_VALUE = RESPONSE_INPUT_DIV + "//th[text()='%1$s']/ancestor::table[1]//td[text()='%2$s']/following-sibling::td[2]"; + String BONITY_VALUE = RESPONSE_INPUT_DIV + "//th[text()='%1$s']/ancestor::table[1]//td[text()='%2$s']/..//td[text()='%3$s']/preceding-sibling::td[3]"; + String BONITY_LTV_VALUE = RESPONSE_INPUT_DIV + "//th[text()='%1$s']/ancestor::table[1]//td[text()='%2$s']/following-sibling::td[3]"; + String APPROVAL_RESULT_VALUE = RESPONSE_INPUT_DIV + "//table//th[text()='%s']/following-sibling::td"; + String REFUSAL_REASON_VALUES = REFUSAL_REASON_TABLE + "/td[1]"; + String REFUSAL_REASON_VALUE = REFUSAL_REASON_TABLE + "[%s]/td[1]"; + + String RESPONSE_APPROVAL_TAB = "//a[contains(text(),'r.č')]"; + String STRATEGY_VALUE = "//div[@id='approval-response']//th[text()='%1$s']/ancestor::table[1]//td[text()='%2$s']/following-sibling::td[2]"; + + @CustomAction + default ScoringDetailPage checkScoringParametersLimit(List scoringParameters) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> RESPONSE_INPUT_TAB); + scoringParameters.stream() + .filter(type -> type.getType().equals(LIMIT)) + .forEach(scoringParameter -> { + String parameterXpath = String.format(LIMIT_VALUE, scoringParameter.getType().getValue(), scoringParameter.getName()); + endpoint.waitForElementsToLoad(5,parameterXpath); + String parameterValue = endpoint.getText(parameterXpath); + log(Level.INFO,(scoringParameter.getExpectedValue().equals(parameterValue) ? "OK " : "ERROR ") + + LIMIT.getValue() + ", " + scoringParameter.getName() + " - expected: " + + scoringParameter.getExpectedValue() + " found: " + parameterValue); + }); + return null; + } + + @CustomAction + default ScoringDetailPage checkScoringParametersBonity(List scoringParameters) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> RESPONSE_INPUT_TAB); + scoringParameters.stream() + .filter(type -> type.getType().equals(BONITY)) + .forEach(scoringParameter -> { + String parameterXpath = String.format(BONITY_VALUE, scoringParameter.getType().getValue(), scoringParameter.getName(), scoringParameter.getAutomat().getValue()); + endpoint.waitForElementsToLoad(5,parameterXpath); + String parameterValue = endpoint.getText(parameterXpath); + log(Level.INFO,(scoringParameter.getExpectedValue().equals(parameterValue) ? "OK " : "ERROR ") + + BONITY.getValue() + ", " + scoringParameter.getName() + " " + + scoringParameter.getAutomat().getValue() + " - expected: " + + scoringParameter.getExpectedValue() + " found: " + parameterValue); + }); + return null; + } + + @CustomAction + default ScoringDetailPage checkScoringParametersBonityLtv(List scoringParameters) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> RESPONSE_INPUT_TAB); + scoringParameters.stream() + .filter(type -> type.getType().equals(BONITY_LTV)) + .forEach(scoringParameter -> { + String parameterXpath = String.format(BONITY_LTV_VALUE, scoringParameter.getType().getValue(), scoringParameter.getName()); + endpoint.waitForElementsToLoad(5,parameterXpath); + String parameterValue = endpoint.getText(parameterXpath); + log(Level.INFO,(scoringParameter.getExpectedValue().equals(parameterValue) ? "OK " : "ERROR ") + + BONITY_LTV.getValue() + ", " + scoringParameter.getName() + " - expected: " + + scoringParameter.getExpectedValue() + " found: " + parameterValue); + }); + return null; + } + + @CustomAction + default ScoringDetailPage checkScoringParametersStrategy(List scoringParameters) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> RESPONSE_APPROVAL_TAB); + scoringParameters.stream() + .filter(type -> type.getType().equals(STRATEGY)) + .forEach(scoringParameter -> { + String parameterXpath = String.format(STRATEGY_VALUE, scoringParameter.getType().getValue(), scoringParameter.getName()); + endpoint.waitForElementsToLoad(5,parameterXpath); + String parameterValue = endpoint.getText(parameterXpath); + log(Level.INFO,(scoringParameter.getExpectedValue().equals(parameterValue) ? "OK " : "ERROR ") + + STRATEGY.getValue() + ", " + scoringParameter.getName() + " - expected: " + + scoringParameter.getExpectedValue() + " found: " + parameterValue); + }); + return null; + } + + @CustomAction + default ScoringDetailPage checkScoringParameterApprovalResult(List scoringParameters) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> RESPONSE_INPUT_TAB); + ScoringParameter scoringParameter = scoringParameters.stream() + .filter(type -> type.getType().equals(APPROVAL_RESULT)) + .findFirst() + .orElseThrow(() -> new IllegalStateException("No scoring parameter with type APPROVAL_RESULT found")); + String parameterXpath = String.format(APPROVAL_RESULT_VALUE, scoringParameter.getType().getValue()); + endpoint.waitForElementsToLoad(5,parameterXpath); + String parameterValue = endpoint.getText(parameterXpath); + log(Level.INFO,(scoringParameter.getExpectedValue().equals(parameterValue) ? "OK " : "ERROR ") + + APPROVAL_RESULT.getValue() + " - expected: " + scoringParameter.getExpectedValue() + " found: " + parameterValue + ); + return null; + } + + @CustomAction + default ScoringDetailPage checkScoringParametersRefusalReason(List scoringParameters) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> RESPONSE_INPUT_TAB); + endpoint.waitForElementsToLoad(5,REFUSAL_REASON_VALUES); + List resultRefusalElements = endpoint.findAndGetListOfElements(REFUSAL_REASON_VALUES, Lookup.XPATH); + List resultRefusalValues = new ArrayList<>(); + for (int i = 1; i <= resultRefusalElements.size(); i++) { + String xpath = String.format(REFUSAL_REASON_VALUE, i+1); + resultRefusalValues.add(endpoint.getText(xpath)); + } + scoringParameters.stream() + .filter(parameterType -> parameterType.getType().equals(REFUSAL_REASON)) + .forEach(parameter -> { + int indexOfParameter = resultRefusalValues.indexOf(parameter.getName()); + if (indexOfParameter != -1) { + log(Level.INFO,"OK " + REFUSAL_REASON.getValue() + ", " + parameter.getName()); + resultRefusalValues.remove(indexOfParameter); + } else { + log(Level.INFO,"ERROR " + REFUSAL_REASON.getValue() + ", " + parameter.getName() + " - Parameter not find"); + } + }); + resultRefusalValues + .forEach(parameter -> log(Level.INFO,"ERROR " + REFUSAL_REASON.getValue() + ", " + parameter + " - Parameter missing in input" )); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ScoringPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ScoringPage.java new file mode 100644 index 0000000..7e5bd49 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approval/ScoringPage.java @@ -0,0 +1,124 @@ +package cz.moneta.test.dsl.hypos.pages.contract.approval; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.AcceptAlert; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.Waits; + +import static cz.moneta.test.dsl.hypos.pages.contract.approval.ScoringPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.tasks.HyposTasks.defaultDateFormat; + +@Wait(PAGE_TITLE) +public interface ScoringPage extends HyposPageFlow, Menu, StoreAccessor { + String PAGE_TITLE = "//h1[text()='Schvalování']"; + String MANUAL_SCORING_LINK = "//a[text()='Předat na scoring - manuál']"; + String AUTOMAT_SCORING_LINK = "//a[text()='Předat na scoring - automat']"; + String SEND_TO_SCORING_BUTTON = "//button[contains(text(),'Odeslat na scoring')]"; + String APPROVAL_TYPE_SCORING_TD = "//div[@id='scoring-list']//td[text()='Scoring']"; + String APPROVE_TAB_LINK = "//li[@role='tab']/a[text()='Schvalování']"; + String ELECTRONIC_APPROVAL_PROTOCOL_RADIO_NO = "//input[@id='electronic_approval_protocol_no']"; + String APPROVE_CONTRACT_LINK = "//form[@id='approveForm']//a[text()='Schválit obchod']"; + String UW_CHECKS_DIV = "//div[@id='uw-checks']"; + String NAS_ONGOING_CHECKS_DIV = UW_CHECKS_DIV + "//div[@class='nas-uw-check-loading']"; + String CONFIRM_APPROVAL_BUTTON = UW_CHECKS_DIV + "//button[text()='Dokončit schválení']"; + String AP_VERIFICATION_BUTTON = "//a[text()='Doplň doklady']"; + String CANCEL_CONTRACT_BUTTON = "//a[text()='Ukončit obchod']"; + String SCORING_AP_DETAIL_BUTTON = "//div[@id='scoring-list']//a[text()='%s']"; + String SCORING_AP_ID = "//div[@id='scoring-list']//td[text()='Scoring']/following-sibling::td/a[contains(@href,'approve.result')]"; + String CONTRACT_APPROVED_TEXT = "//td[text()='Schválení UW']//following-sibling::td[contains(text(), 'Schváleno')]"; + + String CONDITION_FORM = "//form[@id='condition']"; + String CONDITION_DETAIL = "//a[contains(text(),'%s')]"; + String CONDITION_FULFILLMENT_DATE_INPUT = CONDITION_FORM + "//input[@name='tce_date']"; + String CONDITION_SAVE_BUTTON = CONDITION_FORM + "//button[text()='Uložit']"; + + String AP_ID = "AP_ID"; + + @CustomAction + default ScoringChecklistPage clickManualScoring() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> MANUAL_SCORING_LINK); + endpoint.acceptAlert(20); + return null; + } + + @Click(AUTOMAT_SCORING_LINK) + ScoringChecklistPage clickAutomatScoring(); + + @Wait(value = LOADER, waitSecondsForElement = 30, until = Until.GONE) + @Wait(value = LOADER, waitSecondsForElement = 30, until = Until.GONE) + @Wait(value = LOADER, waitSecondsForElement = 30, until = Until.GONE) + @Click(SEND_TO_SCORING_BUTTON) + ScoringPage clickSendToScoringButton(); + + @Click(AP_VERIFICATION_BUTTON) + ApVerificationPage clickToApVerification(); + + @Click(value = SCORING_AP_DETAIL_BUTTON, isStringDynamicXpath = true) + ScoringDetailPage clickScoringDetail(String scoringApId); + + @Click(CANCEL_CONTRACT_BUTTON) + CancelContractPage clickToCancelContract(); + + @Wait(value = APPROVAL_TYPE_SCORING_TD, until = Until.VISIBLE, waitSecondsForElement = 60) + @CheckElementPresent(APPROVAL_TYPE_SCORING_TD) + ScoringPage checkScoringApprovalPresent(); + + @Click(value = APPROVE_TAB_LINK, andWait = @Wait(value = LOADER, until = Until.GONE)) + ScoringPage clickApproveTab(); + + @Click(ELECTRONIC_APPROVAL_PROTOCOL_RADIO_NO) + ScoringPage checkElectronicApprovalProtocolNo(); + + @Click(APPROVE_CONTRACT_LINK) + @AcceptAlert(waitSecondsForAlert = 30) + ScoringPage clickApproveContractButton(); + + @Waits({ + @Wait(value = NAS_ONGOING_CHECKS_DIV, waitSecondsForElement = 60, until = Until.GONE), + @Wait(value = CONFIRM_APPROVAL_BUTTON, waitSecondsForElement = 60, until = Until.CLICKABLE) + }) + @Click(CONFIRM_APPROVAL_BUTTON) + @AcceptAlert(waitSecondsForAlert = 30) + ScoringPage waitAndClickConfirmApprovalButton(); + + @Waits({ + @Wait(value = CONTRACT_APPROVED_TEXT, waitSecondsForElement = 120, until = Until.VISIBLE), + @Wait(value = LOADER, waitSecondsForElement = 30, until = Until.GONE), + @Wait(value = CONTRACT_HOMEPAGE_LINK, waitSecondsForElement = 30, until = Until.CLICKABLE) + }) + ScoringPage waitUntilContractApproved(); + + @CustomAction + default ScoringPage getApId(Harness harness) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + harness.store(AP_ID, endpoint.getText(SCORING_AP_ID)); + return null; + } + + @CustomAction + default ScoringPage setConditionsFulfillmentDate(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + for (int i = 0; i < hyposContract.getDrawingConditions().size(); i++) { + if (hyposContract.getDrawingConditions().get(i).getType() != null) { + String condition = String.format(CONDITION_DETAIL, hyposContract.getDrawingConditions().get(i).getCondition()); + endpoint.click(() -> condition); + endpoint.waitForElementsToLoad(20, Until.VISIBLE, CONDITION_FULFILLMENT_DATE_INPUT); + endpoint.type(() -> CONDITION_FULFILLMENT_DATE_INPUT, DateUtils.getTodayDateIncrementedByDays(60, defaultDateFormat), true); + endpoint.click(() -> CONDITION_SAVE_BUTTON); + endpoint.acceptAlert(20); + } + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approvalchecklist/ApprovalChecklistPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approvalchecklist/ApprovalChecklistPage.java new file mode 100644 index 0000000..8475d4e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approvalchecklist/ApprovalChecklistPage.java @@ -0,0 +1,71 @@ +package cz.moneta.test.dsl.hypos.pages.contract.approvalchecklist; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.enums.ChecklistDocCategory; +import cz.moneta.test.dsl.hypos.enums.ChecklistTab; +import cz.moneta.test.dsl.hypos.enums.Client; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.openqa.selenium.WebElement; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.List; + +import static cz.moneta.test.dsl.hypos.enums.ChecklistDocCategory.IDENTITY_GENERAL; +import static cz.moneta.test.dsl.hypos.pages.contract.approvalchecklist.ApprovalChecklistPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.approvalchecklist.ChecklistImportDocModalPage.VALIDITY_DATE_INPUT; +import static cz.moneta.test.dsl.hypos.tasks.HyposTasks.defaultDateFormat; + +@Wait(PAGE_TITLE) +public interface ApprovalChecklistPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Checklist dokumentů']"; + String CHECKLIST_TAB_LOAN = "//span[text()='Úvěr']"; + String CHECKLIST_TAB_ALLOCATED_COLLATERAL = "//span[text()='Zajištění']"; + String CHECKLIST_TAB_CLIENT = "//table//div//li[contains(@aria-controls,'section-%1$s')]%2$s"; + String ADD_OTHER_RQ_DOC = "//tbody[@id='o_ostatni_uver']//a[text()='Přidat požadovaný dokument']"; + String UPLOAD_UW_EXCEPTION_LINK = "//tbody[@id='ostatni_uver-general']//a[@class='upload-file float-right']"; + String DOCS_IN_CATEGORY = "//div[contains(@id,'section-%1$s')]%2$s//tbody[contains(@id,'%3$s')]//tr[not(contains(@class,'hidden'))]//a[text()='nahrát']"; + String DOCS_IN_CATEGORY_UPLOAD_BUTTON = "(" + DOCS_IN_CATEGORY + ")[%4$s]"; + + @Click(CHECKLIST_TAB_LOAN) + ApprovalChecklistPage clickChecklistLoan(); + + @Click(CHECKLIST_TAB_ALLOCATED_COLLATERAL) + ApprovalChecklistPage clickChecklistAllocatedCollateral(); + + @Click(value = DOCS_IN_CATEGORY, isStringDynamicXpath = true) + ApprovalChecklistPage clickChecklistClient(String client); + + @Click(ADD_OTHER_RQ_DOC) + ChecklistAddDocTypeModalPage clickAddOtherRqDoc(); + + @Click(UPLOAD_UW_EXCEPTION_LINK) + ChecklistImportDocModalPage clickUploadUwException(); + + @CustomAction + default ApprovalChecklistPage addChecklistDocs(ChecklistTab checklistTab, Client client, ChecklistDocCategory category, Harness harness) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + String clientOrder = checklistTab.equals(ChecklistTab.CLIENT) ? "[" + client.getOrderValue() + "]" : ""; + + List docs = endpoint.findAndGetListOfElements(String.format(DOCS_IN_CATEGORY, checklistTab.getValue(), clientOrder, category.getValue()), Lookup.XPATH); + + if (!docs.isEmpty()) { + endpoint.click(() -> String.format(CHECKLIST_TAB_CLIENT, checklistTab.getValue(), clientOrder)); + for (int i = 1; i <= docs.size(); i++) { + String doc = String.format(DOCS_IN_CATEGORY_UPLOAD_BUTTON, checklistTab.getValue(), clientOrder, category.getValue(), i); + endpoint.click(() -> doc); + ChecklistImportDocModalPage checklistImportDocModalPage = Builders.newWebFlowBuilder(ChecklistImportDocModalPage.class, endpoint, harness); + if (endpoint.isElementVisible(1, VALIDITY_DATE_INPUT, Lookup.XPATH)) { + checklistImportDocModalPage.fillValidityDate(LocalDate.now().plusYears(category == IDENTITY_GENERAL ? 5 : 0).format(DateTimeFormatter.ofPattern(defaultDateFormat))) + .checkValidityDate(); + } + checklistImportDocModalPage.uploadFileChecklist(harness.tasks().common().getFakePdfPath()) + .saveFileChecklist(); + } + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approvalchecklist/ChecklistAddDocTypeModalPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approvalchecklist/ChecklistAddDocTypeModalPage.java new file mode 100644 index 0000000..551b80f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approvalchecklist/ChecklistAddDocTypeModalPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.hypos.pages.contract.approvalchecklist; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.approvalchecklist.ChecklistAddDocTypeModalPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ChecklistAddDocTypeModalPage extends HyposPageFlow, Menu { + String MODAL_XPATH = "//div[@id=\"simplemodal-container\"]"; + String PAGE_TITLE = MODAL_XPATH + "//h2[text()='Přidání požadovaného dokumentu']"; + String REQUESTED_DOC_FIELD = MODAL_XPATH + "//input[@type='text']"; + String UW_EXCEPTION_DOC_TYPE = MODAL_XPATH + "//a[text()='Výjimka']"; + String SAVE_BUTTON = MODAL_XPATH + "//button[text()='Uložit']"; + + @TypeInto(REQUESTED_DOC_FIELD) + ChecklistAddDocTypeModalPage fillRequestedDoc (String requestedChecklistDoc); + + @Click(UW_EXCEPTION_DOC_TYPE) + ChecklistAddDocTypeModalPage selectUwExceptionDocType(); + + @Click(value = SAVE_BUTTON, andWait = @Wait(value = ApprovalChecklistPage.PAGE_TITLE, until = Until.VISIBLE)) + ApprovalChecklistPage saveModalPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approvalchecklist/ChecklistImportDocModalPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approvalchecklist/ChecklistImportDocModalPage.java new file mode 100644 index 0000000..aadecab --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/approvalchecklist/ChecklistImportDocModalPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.hypos.pages.contract.approvalchecklist; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.hypos.pages.contract.approvalchecklist.ChecklistImportDocModalPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ChecklistImportDocModalPage extends HyposPageFlow, Menu { + String MODAL_XPATH = "//div[@id='simplemodal-container']"; + String PAGE_TITLE = MODAL_XPATH + "//h2[text()='Import souboru k požadovanému dokumentu']"; + String CHOOSE_FILE = MODAL_XPATH + "//input[@type='file']"; + String SAVE_BUTTON = MODAL_XPATH + "//button[text()='Uložit']"; + String VALIDITY_DATE_INPUT = MODAL_XPATH + "//input[@name='validityDate']"; + + @FileUpload(CHOOSE_FILE) + ChecklistImportDocModalPage uploadFileChecklist(String filePath); + + @TypeInto(value = VALIDITY_DATE_INPUT, clear = true) + ChecklistImportDocModalPage fillValidityDate(String validityDate); + + @KeyPress(value = Key.TAB, andWait = @Wait(value = SAVE_BUTTON, until = Until.CLICKABLE)) + ChecklistImportDocModalPage checkValidityDate(); + + @Click(SAVE_BUTTON) + ApprovalChecklistPage saveFileChecklist(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/backoffice/BackOfficePage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/backoffice/BackOfficePage.java new file mode 100644 index 0000000..b9ad19e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/backoffice/BackOfficePage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.pages.contract.backoffice; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.backoffice.BackOfficePage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface BackOfficePage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Backoffice']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/clients/ClientDetailsPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/clients/ClientDetailsPage.java new file mode 100644 index 0000000..1f2496b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/clients/ClientDetailsPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.hypos.pages.contract.clients; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.GetElementContent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.clients.ClientDetailsPage.PAGE_TITLE; + +@Wait({PAGE_TITLE}) +public interface ClientDetailsPage extends HyposPageFlow { + String PAGE_TITLE = "//h2[text()='Identifikační údaje']"; + String CLIENT_PIN_TD = "//th[text()='Rodné číslo']//following::td[1]"; + String CLIENT_CIF_TD = "//th[text()='Číslo CIF']//following::td[1]"; + + @CheckElementContent(CLIENT_PIN_TD) + ClientDetailsPage checkClientPin(String pin); + + @GetElementContent(CLIENT_CIF_TD) + String getClientCif(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/clients/ClientsListPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/clients/ClientsListPage.java new file mode 100644 index 0000000..7314e36 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/clients/ClientsListPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.hypos.pages.contract.clients; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.clients.ClientsListPage.CONSENT_BUTTON_INPUT; +import static cz.moneta.test.dsl.hypos.pages.contract.clients.ClientsListPage.PAGE_TITLE; + +@Wait({PAGE_TITLE, CONSENT_BUTTON_INPUT}) +public interface ClientsListPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Klienti']"; + String CONSENT_BUTTON_INPUT = "//input[@value='Nastavit souhlas']"; + String CLIENT_DETAILS_LINK = "//a/b[contains(text(),'...DETAIL')]"; + + @Click(CLIENT_DETAILS_LINK) + ClientDetailsPage clickOpenClientDetails(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/clients/LoadCifPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/clients/LoadCifPage.java new file mode 100644 index 0000000..45905db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/clients/LoadCifPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.hypos.pages.contract.clients; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.clients.LoadCifPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface LoadCifPage extends HyposPageFlow, StoreAccessor { + String PAGE_TITLE = "//h1[text()='Načtení CIF z ICBS']"; + String NO_CIF_RADIO_XPATH = "(//input[@name='cif'])[%s]"; + String SAVE_BUTTON_XPATH = "(//th//input[@value='Uložit'])[%s]"; + String LOADER_IMG_XPATH = "//div[not(@style='display: none;')]/img[@src='/img/common/loadingAnimation.gif']"; + + @CustomAction + default ClientsListPage setNoCifRadio(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + for (int i = 0; i < hyposContract.getClients().size(); i++) { + String client = String.valueOf(i+1); + endpoint.click(() -> String.format(NO_CIF_RADIO_XPATH, client)); + endpoint.click(() -> String.format(SAVE_BUTTON_XPATH, client)); + endpoint.waitForElementsToLoad(20, Until.GONE, LOADER_IMG_XPATH); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/communication/CommunicationPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/communication/CommunicationPage.java new file mode 100644 index 0000000..30d6512 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/communication/CommunicationPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.hypos.pages.contract.communication; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.communication.CommunicationPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface CommunicationPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Sdělení']"; + String NEW_COMMUNICATION = "//h2[text()='Nové sdělení']"; + String COMMUNICATION_TEXT_FIELD = "//textarea[@name='memoText']"; + String SAVE_COMMUNICATION_TEXT_FIELD = "//form[@class='uiForm']//input[@value='Uložit']"; + + @Click(NEW_COMMUNICATION) + CommunicationPage openNewCommunication(); + + @TypeInto(COMMUNICATION_TEXT_FIELD) + CommunicationPage addNewCommunication(String communicationMessage); + + @Click(SAVE_COMMUNICATION_TEXT_FIELD) + CommunicationPage saveNewCommunication(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/complaints/ComplaintsPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/complaints/ComplaintsPage.java new file mode 100644 index 0000000..af3d55e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/complaints/ComplaintsPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.pages.contract.complaints; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.complaints.ComplaintsPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ComplaintsPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Úkoly na centrálu']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentGeneratePage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentGeneratePage.java new file mode 100644 index 0000000..f9905f6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentGeneratePage.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.hypos.pages.contract.documents; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.openqa.selenium.TimeoutException; + +import static cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentGeneratePage.GENERATE_BUTTON; +import static cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentGeneratePage.PAGE_TITLE; + +@Wait({PAGE_TITLE, GENERATE_BUTTON}) +public interface DocumentGeneratePage extends HyposPageFlow, StoreAccessor { + String PAGE_TITLE = "//h1[contains(text(),'Volby generování dokumentu')]"; + String DOCUMENTS_MAKER_INPUT = "//input[@id='docsMaker']"; + String AUTO_VERIFY_CHECKBOX = "//input[@id='auto-verify']"; + String SIGN_LOCATION_PRAGUE_RADIO = "//input[@value='Praze']"; + + String GENERATE_BUTTON = "//button[@id='butt-gen']"; + + @TypeInto(value = DOCUMENTS_MAKER_INPUT, clear = true) + DocumentGeneratePage fillCurrentBanker(String username); + + @Click(AUTO_VERIFY_CHECKBOX) + DocumentGeneratePage clickAutoVerifyCheckbox(); + + @Click(SIGN_LOCATION_PRAGUE_RADIO) + DocumentGeneratePage clickSignInPrague(); + + @CustomAction + default DocumentsPage clickGenerateButton() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.waitForElementsToLoad(20, Until.CLICKABLE, GENERATE_BUTTON); + endpoint.click(() -> GENERATE_BUTTON); + try { + endpoint.acceptAlert(120); //ne vzdy se zobrazi + } catch (TimeoutException e) { + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentImportPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentImportPage.java new file mode 100644 index 0000000..af30ffc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentImportPage.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.hypos.pages.contract.documents; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.FileUpload; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentImportPage.IMPORTED_DOCUMENT_TYPE_SELECT; +import static cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentImportPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentImportPage.SAVE_BUTTON; + +@Wait({PAGE_TITLE, IMPORTED_DOCUMENT_TYPE_SELECT, SAVE_BUTTON}) +public interface DocumentImportPage extends HyposPageFlow { + String PAGE_TITLE = "//h1[text()='Import dokumentu']"; + String IMPORTED_DOCUMENT_TYPE_SELECT = "//select[@id='import-doc-type']"; + String DOCUMENT_CATEGORY_SELECT = "//select[@id='document-category']"; + String DOCUMENT_TYPE_SELECT = "//select[@id='document-type']"; + String DOCUMENT_CLASSIFICATION_SELECT = "//select[@id='document-classification']"; + String FILE_NAME_INPUT = "//input[@id='suffix']"; + String FILE_UPLOAD_INPUT = "//input[@id='importedFile']"; + String SAVE_BUTTON = "//input[@id = 'submit-button' and @value='Uložit']"; + + @Select(IMPORTED_DOCUMENT_TYPE_SELECT) + DocumentImportPage selectImportedDocumentType(String documentType); + + @Wait(DOCUMENT_CATEGORY_SELECT) + @Select(DOCUMENT_CATEGORY_SELECT) + DocumentImportPage selectDocumentCategory(String documentCategory); + + @Select(DOCUMENT_TYPE_SELECT) + DocumentImportPage selectDocumentType(String documentType); + + @Select(DOCUMENT_CLASSIFICATION_SELECT) + DocumentImportPage selectDocumentClassification(String documentClassification); + + @TypeInto(value = FILE_NAME_INPUT, clear = true) + DocumentImportPage fillDocumentName(String name); + + @FileUpload(FILE_UPLOAD_INPUT) + DocumentImportPage uploadFile(String filePath); + + @Click(SAVE_BUTTON) + DocumentsPage clickSave(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentSignPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentSignPage.java new file mode 100644 index 0000000..ccaa625 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentSignPage.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.hypos.pages.contract.documents; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.hypos.pages.contract.ContractHistoryPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentSignPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentSignPage.SAVE_BUTTON; + +@Wait({PAGE_TITLE, SAVE_BUTTON}) +public interface DocumentSignPage extends HyposPageFlow { + String PAGE_TITLE = "//h2[contains(text(),'Podpis dokumentu')]"; + String SIGNATURE_DATE_CLIENT_INPUT = "//input[@id='dateClient']"; + String BANKER_NAME_LABEL = "//label[@for='contactName']"; + String SAVE_BUTTON = "//button[@id='butt-sign']"; + String SIGNATURE_DATE_LOADER_DIV = "//div[@class='loading-overlay']"; + + @TypeInto(SIGNATURE_DATE_CLIENT_INPUT) + DocumentSignPage fillSignatureDateByClient(String signDate); + + @Click(SAVE_BUTTON) + ContractHistoryPage clickSave(); + + @Click(value = BANKER_NAME_LABEL, andWait = @Wait(value = SIGNATURE_DATE_LOADER_DIV, until = Until.GONE)) + DocumentSignPage clickBankerName(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentsPage.java new file mode 100644 index 0000000..496e892 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/documents/DocumentsPage.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.hypos.pages.contract.documents; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentsPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentsPage.DOCUMENT_LIST; + +@Wait({PAGE_TITLE, DOCUMENT_LIST}) +public interface DocumentsPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h3[text()='Dokumenty']"; + String DOCUMENT_LIST = "//tbody[@id='doc-list-whatever']"; + String IMPORT_DOCUMENT_BUTTON = "//a[text()='IMPORT']"; + String GENERATE_LOAN_CONTRACT_LINK = "//td[text()='Úvěrová smlouva']//following::td[1]/a[text()='Volby generování']"; + String LOAN_CONTRACT_DOCUMENTS_TABLE = "//tbody[@id='doc-list-whatever']//tr[@rel='1']"; + String EXPAND_LOAN_CONTRACT_DOCUMENTS_SPAN = LOAN_CONTRACT_DOCUMENTS_TABLE + "//span[contains(text(),'Úvěrová smlouva')]"; + String SIGN_LOAN_CONTRACT_DOCUMENTS_BUTTON = LOAN_CONTRACT_DOCUMENTS_TABLE + "//following::input[@value='Podepsat']"; + String HYPOKALKULACKA_DOCUMENTS_BUTTON = "//form//span[contains(text(), 'Hypokalkulačka')]"; + String DOC_DRAFT_SELECTED_CHECKBOX = "//a[contains(text(),'%s')]//following::input[contains(@class,'selectedDocs')][1]"; + String DELETE_SELECTED_BUTTON = "//button[@id='deleteConfirm']"; + String DELETE_SELECTED_CONFIRM_BUTTON = "//div[@id='deleteComment']//button[text()='Smazat']"; + + @Click(IMPORT_DOCUMENT_BUTTON) + DocumentImportPage clickImportDocuments(); + + @Click(HYPOKALKULACKA_DOCUMENTS_BUTTON) + DocumentsPage clickHypokalkulackaDocuments(); + + @Click(GENERATE_LOAN_CONTRACT_LINK) + DocumentGeneratePage clickGenerateLoanContractLink(); + + @Click(EXPAND_LOAN_CONTRACT_DOCUMENTS_SPAN) + DocumentsPage expandLoanContractDocuments(); + + @Wait(SIGN_LOAN_CONTRACT_DOCUMENTS_BUTTON) + @Click(SIGN_LOAN_CONTRACT_DOCUMENTS_BUTTON) + DocumentSignPage clickSignContractDocuments(); + + @Click(value = DOC_DRAFT_SELECTED_CHECKBOX, isStringDynamicXpath = true) + DocumentsPage selectDraftDocument(String document); + + @Click(DELETE_SELECTED_BUTTON) + DocumentsPage clickDeleteSelectedDocument(); + + @Click(value = DELETE_SELECTED_CONFIRM_BUTTON, andWait = @Wait(value = LOADER, until = Until.GONE)) + DocumentsPage clickDeleteSelectedDocumentConfirm(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/externalsources/ExternalSourcesPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/externalsources/ExternalSourcesPage.java new file mode 100644 index 0000000..6c9249a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/externalsources/ExternalSourcesPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.pages.contract.externalsources; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.externalsources.ExternalSourcesPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ExternalSourcesPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Externí zdroje']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/fees/FeesPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/fees/FeesPage.java new file mode 100644 index 0000000..873283d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/fees/FeesPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.hypos.pages.contract.fees; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.hypos.pages.contract.fees.FeesPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.fees.FeesPage.COLLECTABLE_FEE_SELECT; + +@Wait({PAGE_TITLE, COLLECTABLE_FEE_SELECT}) +public interface FeesPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Poplatky']"; + String COLLECTABLE_FEE_SELECT = "//select[@id='collectable-fee']"; + String CASH_BUTTON = "//input[@value='INKASOVAT']"; + String COLLECTED_FEE_TEXT = "//h3[contains(text(),'Byl zinkasován poplatek')]"; + + @Select(COLLECTABLE_FEE_SELECT) + FeesPage selectCollectableFee(String fee); + + @Click(value = CASH_BUTTON, andWait = @Wait(value = COLLECTED_FEE_TEXT, until = Until.VISIBLE)) + FeesPage clickCash(); + + @CheckElementPresent(COLLECTED_FEE_TEXT) + FeesPage checkCollectedFee(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/forms/FormsPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/forms/FormsPage.java new file mode 100644 index 0000000..acbd2f4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/forms/FormsPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.pages.contract.forms; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.forms.FormsPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface FormsPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Formuláře']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/hyposutils/TestDrawVerificationPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/hyposutils/TestDrawVerificationPage.java new file mode 100644 index 0000000..e1acc88 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/hyposutils/TestDrawVerificationPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.hypos.pages.contract.hyposutils; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.hyposutils.TestDrawVerificationPage.SEARCH_DRAW_BUTTON; +import static cz.moneta.test.dsl.hypos.pages.contract.hyposutils.TestDrawVerificationPage.SEARCH_DRAW_INPUT; + +@Wait({SEARCH_DRAW_INPUT, SEARCH_DRAW_BUTTON}) +public interface TestDrawVerificationPage extends HyposPageFlow, StoreAccessor { + String SEARCH_DRAW_INPUT = "//input[@name='c']"; + String SEARCH_DRAW_BUTTON = "//button[text()='Vyhledat čerpání obchodu']"; + String DRAW_CHECKBOX_INPUT = "//input[@name='ids[]']"; + String SUBMIT_DRAW_BUTTON = "//button[text()='Verifikovat vybrané']"; + + @TypeInto(SEARCH_DRAW_INPUT) + TestDrawVerificationPage fillContractToSearch(String contractId); + + @Click(value = SEARCH_DRAW_BUTTON, andWait = @Wait(value = DRAW_CHECKBOX_INPUT, until = Until.VISIBLE)) + TestDrawVerificationPage clickSearchButton(); + + @Click(DRAW_CHECKBOX_INPUT) + TestDrawVerificationPage clickDrawCheckbox(); + + @Click(value = SUBMIT_DRAW_BUTTON, andWait = @Wait(value = DRAW_CHECKBOX_INPUT, waitSecondsForElement = 30, until = Until.GONE)) + TestDrawVerificationPage clickVerifyDraw(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/lifeinsurance/LifeInsuranceDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/lifeinsurance/LifeInsuranceDetailPage.java new file mode 100644 index 0000000..ebfda87 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/lifeinsurance/LifeInsuranceDetailPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.pages.contract.lifeinsurance; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.lifeinsurance.LifeInsuranceDetailPage.LIFE_INSURANCE_EDIT_BUTTON; + + +@Wait(LIFE_INSURANCE_EDIT_BUTTON) +public interface LifeInsuranceDetailPage extends HyposPageFlow, Menu { + String LIFE_INSURANCE_EDIT_BUTTON = "//a[contains(text(),'Upravit pojištění')]"; + + @Click(LIFE_INSURANCE_EDIT_BUTTON) + LifeInsuranceEditPage clickLifeInsuranceEditButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/lifeinsurance/LifeInsuranceEditPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/lifeinsurance/LifeInsuranceEditPage.java new file mode 100644 index 0000000..5621c60 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/lifeinsurance/LifeInsuranceEditPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.hypos.pages.contract.lifeinsurance; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.lifeinsurance.LifeInsuranceEditPage.LIFE_INSURANCE_FORM; + + +@Wait({LIFE_INSURANCE_FORM}) +public interface LifeInsuranceEditPage extends HyposPageFlow { + String LIFE_INSURANCE_FORM = "//form[@name='frm']"; + String LIFE_INSURANCE_STATE_SELECT = LIFE_INSURANCE_FORM + "//select[@id='state_']"; + String SAVE_LIFE_INSURANCE_BUTTON = LIFE_INSURANCE_FORM + "//input[@value='Uložit']"; + + @Select(LIFE_INSURANCE_STATE_SELECT) + LifeInsuranceEditPage selectLifeInsuranceState(String lifeInsuranceState); + + @Click(SAVE_LIFE_INSURANCE_BUTTON) + LifeInsuranceDetailPage clickSaveLifeInsuranceButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/lifeinsurance/LifeInsurancePage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/lifeinsurance/LifeInsurancePage.java new file mode 100644 index 0000000..258ae69 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/lifeinsurance/LifeInsurancePage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.hypos.pages.contract.lifeinsurance; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.lifeinsurance.LifeInsurancePage.PAGE_TITLE; + + +@Wait(PAGE_TITLE) +public interface LifeInsurancePage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Životní pojištění']"; + String LIFE_INSURANCE_DETAIL_BUTTON = "//table//a[contains(@href,'lifeInsurance.php?cmd=insurance.overview')]"; + + @Click(LIFE_INSURANCE_DETAIL_BUTTON) + LifeInsuranceDetailPage clickLifeInsuranceDetailButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/ClientCurrentAcountPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/ClientCurrentAcountPage.java new file mode 100644 index 0000000..d565d98 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/ClientCurrentAcountPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.hypos.pages.contract.loan; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.loan.ClientCurrentAcountPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.loan.ClientCurrentAcountPage.SAVE_BUTTON; + +@Wait({PAGE_TITLE, SAVE_BUTTON}) +public interface ClientCurrentAcountPage extends HyposPageFlow { + String PAGE_TITLE = "//h1[text()='Účet pro splácení']"; + String CURRENT_ACCOUNTS_FORM = "//form[@id='form-bezneucty']"; + String SELECT_CURRENT_ACCOUNT_RADIO = CURRENT_ACCOUNTS_FORM + "//input[@value='%s']"; + String SAVE_BUTTON = CURRENT_ACCOUNTS_FORM + "//input[@value='Uložit']"; + String BACK_BUTTON = CURRENT_ACCOUNTS_FORM + "//input[@value='Návrat']"; + + @Click(value = SELECT_CURRENT_ACCOUNT_RADIO, isStringDynamicXpath = true) + ClientCurrentAcountPage setCurrentAccount(String currentAccount); + + @Click(SAVE_BUTTON) + ClientCurrentAcountPage clickSaveCurrentAccount(); + + @Click(BACK_BUTTON) + LoanPage clickBackButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/DrawingConditionsApprovalPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/DrawingConditionsApprovalPage.java new file mode 100644 index 0000000..246c1e5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/DrawingConditionsApprovalPage.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.hypos.pages.contract.loan; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.openqa.selenium.WebElement; + +import java.util.List; + +import static cz.moneta.test.dsl.hypos.pages.contract.loan.DrawingConditionsApprovalPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.loan.DrawingConditionsApprovalPage.SAVE_BUTTON; + +@Wait({PAGE_TITLE, SAVE_BUTTON}) +public interface DrawingConditionsApprovalPage extends HyposPageFlow, StoreAccessor { + String PAGE_TITLE = "//h1[contains(text(),'Odsouhlasení vybraných podmínek')]"; + String CONDITIONS_APPROVAL_TABLE = "//table[@id='terms-agreement-table']"; + String CONDITIONS_APPROVAL_ROW = CONDITIONS_APPROVAL_TABLE + "//tr[contains(@class,'tranche-row')]//input[contains(@class,'term-check') and not(@checked)]/../.."; + String CONDITIONS_APPROVAL_ROW_WITH_VALIDITY = CONDITIONS_APPROVAL_ROW + "//input[contains(@class,'term-unlimited-valid')]"; + + String CONDITION_CHECK_CHECKBOX = "(" + CONDITIONS_APPROVAL_ROW + ")[%s]//input[contains(@class,'term-check')]"; + String CONDITION_VALIDITY_UNLIMITED_CHECKBOX = "(" + CONDITIONS_APPROVAL_ROW_WITH_VALIDITY + ")[%s]"; + + String SAVE_BUTTON = CONDITIONS_APPROVAL_TABLE + "//input[@value='Návrat s uložením']"; + + @CustomAction + default DrawingConditionsApprovalPage approveDrawingConditions() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + List conditionRows = endpoint.findAndGetListOfElements(CONDITIONS_APPROVAL_ROW, Lookup.XPATH); + for (int i = 1; i <= conditionRows.size(); i++) { + int rowIndex = i; + endpoint.click(() -> String.format(CONDITION_CHECK_CHECKBOX, rowIndex)); + endpoint.waitForElementsToLoad(20, Until.GONE, LOADER); + } + List conditionRowsWithDate = endpoint.findAndGetListOfElements(CONDITIONS_APPROVAL_ROW_WITH_VALIDITY, Lookup.XPATH); + for (int i = 1; i <= conditionRowsWithDate.size(); i++) { + int rowIndex = i; + endpoint.click(() -> String.format(CONDITION_VALIDITY_UNLIMITED_CHECKBOX, rowIndex)); + } + return null; + } + + @CustomAction + default DrawingConditionsApprovalPage approveMortgageConditions() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + List conditionRows = endpoint.findAndGetListOfElements(CONDITIONS_APPROVAL_ROW, Lookup.XPATH); + for (int i = 1; i <= conditionRows.size(); i++) { + int rowIndex = i; + endpoint.click(() -> String.format(CONDITION_CHECK_CHECKBOX, rowIndex)); + } + return null; + } + + @Click(SAVE_BUTTON) + LoanPage clickSaveAndReturnButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/DrawingConditionsPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/DrawingConditionsPage.java new file mode 100644 index 0000000..4e2888d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/DrawingConditionsPage.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.hypos.pages.contract.loan; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.loan.DrawingConditionsPage.ASSIGNED_DIV; +import static cz.moneta.test.dsl.hypos.pages.contract.loan.DrawingConditionsPage.AVAILABLE_DIV; +import static cz.moneta.test.dsl.hypos.pages.contract.loan.DrawingConditionsPage.PAGE_TITLE; + +@Wait({PAGE_TITLE, AVAILABLE_DIV, ASSIGNED_DIV}) +public interface DrawingConditionsPage extends HyposPageFlow, StoreAccessor { + String PAGE_TITLE = "//h1[text()='Volba podmínky']"; + String AVAILABLE_DIV = "//div[@id='available']"; + String ASSIGNED_DIV = "//div[@id='assigned']"; + String CONDITION = "(" + AVAILABLE_DIV + "//td[contains(text(),'%s')])[1]"; + String CONDITION_CHECKBOX = "(" + ASSIGNED_DIV + "//a[contains(text(),'%1$s')]/following::td[1]/div/input)[%2$s]"; + String RETURN_LINK = "//a[text()='Návrat']"; + + @CustomAction + default DrawingConditionsPage moveAndCheckConditions(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + for (int i = 0; i < hyposContract.getDrawingConditions().size(); i++) { + String conditionTd = String.format(CONDITION, hyposContract.getDrawingConditions().get(i).getCondition()); + endpoint.waitForElementsToLoad(60, Until.VISIBLE, conditionTd); + endpoint.scrollIntoView(conditionTd); + endpoint.dragAndDropBy(conditionTd, 1000, 0); + endpoint.waitForElementsToLoad(60, Until.GONE, HyposPageFlow.LOADER); + + if (hyposContract.getDrawingConditions().get(i).getTranches() != null) { + for (int j = 0; j < hyposContract.getDrawingConditions().get(i).getTranches().size(); j++) { + String conditionTranche = String.format(CONDITION_CHECKBOX, hyposContract.getDrawingConditions().get(i).getCondition(), hyposContract.getDrawingConditions().get(i).getTranches().get(j)); + endpoint.click(() -> conditionTranche); + } + } + } + return null; + } + + @Click(RETURN_LINK) + LoanPage clickReturnButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/LoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/LoanPage.java new file mode 100644 index 0000000..bf0c357 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/LoanPage.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.hypos.pages.contract.loan; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.AcceptAlert; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.loan.LoanPage.PAGE_TITLE; + +@Wait({PAGE_TITLE}) +public interface LoanPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Úvěr']"; + String NEW_TRANSACTION_LINK = "//a[text()='Nová tranše...']"; + String EDIT_DRAWING_CONDITIONS_LINK = "//a[text()='Editace...']"; + String SET_CURRENT_ACCOUNT_LINK = "//a[text()='Vybrat BÚ...']"; + String CONDITIONS_APPROVAL_LINK = "//following::strong/a[text()='Odsouhlasení podmínek...']"; + String DRAWING_CONDITIONS_APPROVAL_LINK = "//td/strong[text()='Podmínky čerpání']" + CONDITIONS_APPROVAL_LINK; + String MORGTAGE_CONDITIONS_APPROVAL_LINK = "//td/strong[text()='Podmínky pro generování zástavní smlouvy']" + CONDITIONS_APPROVAL_LINK; + String NEW_DRAW_LINK = "//a[contains(text(),'Nové čerpání...')]"; + String APPROVE_NEW_DRAW_LINK = "//a[contains(text(),'Schválit')]"; + String DO_DRAW_IN_ICBS_LINK = "//span[@id='doDraw']/a[contains(text(),'VYČERPAT V ICBS')]"; + + @Click(NEW_TRANSACTION_LINK) + NewTransactionPage clickAddNewTransaction(); + + @Click(EDIT_DRAWING_CONDITIONS_LINK) + DrawingConditionsPage clickSetDrawingConditions(); + + @Click(SET_CURRENT_ACCOUNT_LINK) + ClientCurrentAcountPage clickSetCurrentAccount(); + + @Click(DRAWING_CONDITIONS_APPROVAL_LINK) + DrawingConditionsApprovalPage clickApproveDrawingConditions(); + + @Click(MORGTAGE_CONDITIONS_APPROVAL_LINK) + DrawingConditionsApprovalPage clickApproveMortgageConditions(); + + @Click(NEW_DRAW_LINK) + NewDrawPage clickNewDraw(); + + @Click(APPROVE_NEW_DRAW_LINK) + @AcceptAlert(waitSecondsForAlert = 10) + LoanPage clickApproveNewDraw(); + + @Click(DO_DRAW_IN_ICBS_LINK) + @AcceptAlert(waitSecondsForAlert = 30) + LoanPage clickDoDrawInIcbs(); + + @Wait(value = LOADER, waitSecondsForElement = 60, until = Until.GONE) + LoanPage waitDrawInIcbs(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/NewDrawPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/NewDrawPage.java new file mode 100644 index 0000000..bc71aec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/NewDrawPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.hypos.pages.contract.loan; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.loan.NewDrawPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.loan.NewDrawPage.SAVE_BUTTON; + +@Wait({PAGE_TITLE, SAVE_BUTTON}) +public interface NewDrawPage extends HyposPageFlow { + String PAGE_TITLE = "//h1[text()='Nové čerpání']"; + String NEW_DRAW_FORM = "//form[@id='nove-cerpani']"; + String ADD_NEW_DRAW_LINK = NEW_DRAW_FORM + "//a[text()='přidat']"; + String SAVE_BUTTON = NEW_DRAW_FORM + "//button[text()='Uložit']"; + + @Click(ADD_NEW_DRAW_LINK) + NewDrawPage clickAddNewDraw(); + + @Click(SAVE_BUTTON) + LoanPage clickSaveButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/NewTransactionPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/NewTransactionPage.java new file mode 100644 index 0000000..963ad7f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/loan/NewTransactionPage.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.hypos.pages.contract.loan; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.loan.NewTransactionPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.loan.NewTransactionPage.SAVE_BUTTON; + +@Wait({PAGE_TITLE, SAVE_BUTTON}) +public interface NewTransactionPage extends HyposPageFlow, StoreAccessor { + String PAGE_TITLE = "//h2[text()='Zadání tranší']"; + String TRANCHE_TABLE = "//table[@id='subTranche']"; + String LOAN_AMOUNT_INPUT = "//input[@id='amount%s']"; + String LOAN_TYPE_SELECT = "//select[@id='purposeId%s']"; + String PAYMENT_TYPE_SELECT = "//select[@id='paymentTypeId%s']"; + String TRANCHE_INPUT = "//input[@id='trancheOrder%s']"; + String ADD_TRANCHE_BUTTON = TRANCHE_TABLE + "//a[contains(text(), 'Přidat další tranši')]"; + String SAVE_BUTTON = TRANCHE_TABLE + "//input[@value='Uložit']"; + + @TypeInto(value = LOAN_AMOUNT_INPUT, clear = true) + NewTransactionPage fillLoanAmount(int loanAmount); + + @Click(SAVE_BUTTON) + LoanPage clickSaveButton(); + + @CustomAction + default NewTransactionPage addTranches(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + for (int i = 0; i < hyposContract.getLoanPurposes().size(); i++) { + String tranche = String.valueOf(i); + endpoint.selectByValue(String.format(LOAN_TYPE_SELECT, tranche), hyposContract.getLoanPurposes().get(i).getType()); + endpoint.type(() -> String.format(LOAN_AMOUNT_INPUT, tranche), hyposContract.getLoanPurposes().get(i).getAmount(), true); + endpoint.type(() -> String.format(TRANCHE_INPUT, tranche), hyposContract.getLoanPurposes().get(i).getTranche(), true); + if(!hyposContract.getLoanPurposes().get(i).getType().equals("1")) { + endpoint.selectByValue(String.format(PAYMENT_TYPE_SELECT, tranche), hyposContract.getLoanPurposes().get(i).getPaymentType()); + } + if(hyposContract.getLoanPurposes().size() > i + 1) { + endpoint.click(() -> ADD_TRANCHE_BUTTON); + } + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/notifications/NotificationsPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/notifications/NotificationsPage.java new file mode 100644 index 0000000..c0e14a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/notifications/NotificationsPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.pages.contract.notifications; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.notifications.NotificationsPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface NotificationsPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h3[text()='Notifikace klienta']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/pktu/PktuPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/pktu/PktuPage.java new file mode 100644 index 0000000..16ec412 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/pktu/PktuPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.pages.contract.pktu; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.pktu.PktuPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface PktuPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='PKTÚ (pracovní kopie technického účtu)']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/processchecklist/ProcessChecklistPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/processchecklist/ProcessChecklistPage.java new file mode 100644 index 0000000..a280b38 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/processchecklist/ProcessChecklistPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.hypos.pages.contract.processchecklist; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.processchecklist.ProcessChecklistPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ProcessChecklistPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Checklist procesních kroků']"; + String PLEDGE_AGREEMENT_SUBMIT_BUTTON = "//form[@id='pledge-agreement-form']//input[@id='submit-btn']"; + + @Click(value = PLEDGE_AGREEMENT_SUBMIT_BUTTON, andWait = @Wait(value = LOADER, until = Until.GONE, waitSecondsForElement = 60)) + DocumentsPage clickPledgeAgreementSubmit(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/AcquireApprovedSupervisionPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/AcquireApprovedSupervisionPage.java new file mode 100644 index 0000000..df078de --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/AcquireApprovedSupervisionPage.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.hypos.pages.contract.realty; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.realty.AcquireApprovedSupervisionPage.APPRAISER_COMPANY_SELECT; +import static cz.moneta.test.dsl.hypos.pages.contract.realty.AcquireApprovedSupervisionPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.realty.AcquireApprovedSupervisionPage.SEND_BUTTON; + +@Wait({PAGE_TITLE, APPRAISER_COMPANY_SELECT, SEND_BUTTON}) +public interface AcquireApprovedSupervisionPage extends HyposPageFlow { + String PAGE_TITLE = "//h1[contains(text(),'Pořízení: Schválená supervize k celku č.')]"; + String APPRAISER_COMPANY_SELECT = "//select[@id='appraiser_house']"; + String APPRAISER_NAME_SELECT = "//select[@id='appraiserId']"; + String APPRAISER_NAME_FIRST_SELECT = APPRAISER_NAME_SELECT + "/option[2]"; + String APPRAISAL_DATE_INPUT = "//input[@name='toDate']"; + String REPRODUCTION_PRICE_INPUT = "//input[@id='reproPrice']"; + String CURRENT_PRICE_INPUT = "//input[@id='currentPrice']"; + String SEND_BUTTON = "//input[@value='Odeslat']"; + + @Select(value = APPRAISER_COMPANY_SELECT, andWait = @Wait(value = APPRAISER_NAME_FIRST_SELECT, until = Until.VISIBLE)) + AcquireApprovedSupervisionPage selectAppraiserCompany(String companyName); + + @Select(APPRAISER_NAME_SELECT) + AcquireApprovedSupervisionPage selectAppraiserName(String name); + + @Select(value = APPRAISER_NAME_SELECT, selectByOrder = true) + AcquireApprovedSupervisionPage selectAppraiserNameByOrder(int order); + + @TypeInto(APPRAISAL_DATE_INPUT) + AcquireApprovedSupervisionPage fillAppraisalDate(String date); + + @TypeInto(REPRODUCTION_PRICE_INPUT) + AcquireApprovedSupervisionPage fillReproductionPrice(int price); + + @TypeInto(CURRENT_PRICE_INPUT) + AcquireApprovedSupervisionPage fillCurrentPrice(int price); + + @Click(SEND_BUTTON) + ApprovedSupervisionCreatedPage clickSendButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/ApprovedSupervisionCreatedPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/ApprovedSupervisionCreatedPage.java new file mode 100644 index 0000000..2b8734c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/ApprovedSupervisionCreatedPage.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.hypos.pages.contract.realty; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.realty.ApprovedSupervisionCreatedPage.BACK_TO_UNIT_DETAIL_LINK; + +@Wait(BACK_TO_UNIT_DETAIL_LINK) +public interface ApprovedSupervisionCreatedPage extends HyposPageFlow { + String BACK_TO_UNIT_DETAIL_LINK = "//a[contains(text(),'návrat na detail celku')]"; + + @Click(BACK_TO_UNIT_DETAIL_LINK) + UnitDetailPage clickBackToUnitDetailLink(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/CreateNewUnitPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/CreateNewUnitPage.java new file mode 100644 index 0000000..df3bc99 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/CreateNewUnitPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.hypos.pages.contract.realty; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.*; + +public interface CreateNewUnitPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Nový celek']"; + String GUARANTEE_CODE_SELECT = "//select[@name='codeId']"; + String FUTURE_REALTY_TYPE_SELECT = "//select[@name='finalRealtyType']"; + String PLEDGE_TYPE_SELECT = "//select[@name='typeId']"; + String PLEDGE_CODE_SELECT = "//select[@name = 'codeId']"; + String USE_THIS_UNIT_CHECKBOX = "//input[@name='isNatural']"; + String SAVE_BUTTON = "//th//input[@value='Uložit']"; + String SAVE_PLEDGE_BUTTON = "//table//a[text()='Uložit']"; + String PLEDGE_LOADER = "//table//img[@src='/img/common/loadingAnimationSmall.gif']"; + + @Select(GUARANTEE_CODE_SELECT) + CreateNewUnitPage selectCode(String guaranteeCode); + + @Select(FUTURE_REALTY_TYPE_SELECT) + CreateNewUnitPage selectRealtyType(String realtyType); + + @Select(PLEDGE_TYPE_SELECT) + CreateNewUnitPage selectPledgeType(String pledgeType); + + @Select(PLEDGE_CODE_SELECT) + CreateNewUnitPage selectPledgeCode(String pledgeCode); + + @Click(USE_THIS_UNIT_CHECKBOX) + CreateNewUnitPage clickUseThisUnitCheckbox(); + + @Click(SAVE_BUTTON) + UnitDetailPage clickSaveButton(); + + @Click(value = SAVE_PLEDGE_BUTTON, andWait = @Wait(value = PLEDGE_LOADER, until = Until.GONE)) + CreateNewUnitPage clickSavePledgeButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/OrderSupervisionPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/OrderSupervisionPage.java new file mode 100644 index 0000000..b6a1fe8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/OrderSupervisionPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.pages.contract.realty; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.realty.OrderSupervisionPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.realty.OrderSupervisionPage.SEND_BUTTON; + +@Wait({PAGE_TITLE, SEND_BUTTON}) +public interface OrderSupervisionPage extends HyposPageFlow { + String PAGE_TITLE = "//h1[contains(text(),'Objednání supervize k celku č.')]"; + String SEND_BUTTON = "//input[@id='submit-appraisement-order']"; + + @Click(SEND_BUTTON) + UnitDetailPage clickSubmitButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/OrderValuationPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/OrderValuationPage.java new file mode 100644 index 0000000..8a1a19d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/OrderValuationPage.java @@ -0,0 +1,455 @@ +package cz.moneta.test.dsl.hypos.pages.contract.realty; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.Assert; +import org.openqa.selenium.WebElement; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +public interface OrderValuationPage extends HyposPageFlow, Menu { + String A_BACKTOREALTYDETAIL = "//a[contains(text(), 'návrat na detail celku')]"; + String SELECT_ORDERER_TYPE = "//select[@id='orderer-type']"; + String SELECT_FINALTYPE = "//select[@id = 'realty-type']"; + String SELECT_REALTYUNITTYPE = "//select[@id = 'realty-unit-type']"; + String SELECT_REALTYBUILDINGTYPE = "//select[@id = 'realty-building-type']"; + String SELECT_PURPOSE = "//select[@id = 'ucel']"; + String INPUT_ADDRESSSTREET = "//input[@name = 'address_street']"; + String INPUT_ADDRESSTOWN = "//input[@name = 'address_town']"; + String INPUT_ADDRESSTOWNPART = "//input[@name = 'address_town_part']"; + String INPUT_ADDRESSDESCRIPTIVENUMBER = "//input[@name = 'address_descriptive_number']"; + String INPUT_ADDRESSPOSTCODE = "//input[@name = 'address_post_code']"; + String SELECT_CONTACTROLE = "//select[@id = 'kontaktRole']"; + String INPUT_PURCHASEPRICE = "//tr[@id='segment-purchase-price' and not(@class='hidden')]//input[@id='kupniCena']"; + String INPUT_SHARE = "//input[@id = 'kupniPodil']"; + String COMBOBOX_DOCUMENTSAVAILABLE_YES = "//input[@name = 'documents_available' and @value = '1']"; + String COMBOBOX_DOCUMENTSAVAILABLE_NO = "//input[@name = 'documents_available' and @value = '0']"; + String CHECKBOX_COMPLETEDVALUATION = "//input[@id = 'podkladyVypracovaneOceneni']"; + String TH_FLATDESCRIBE = "//th[text() = 'popis bytu']"; + String TH_BUILDINGDESCRIBE = "//th[text() = 'popis budovy']"; + + //FLAT when documents available = yes + String SELECT_DISPOSITION = "//select[@id = 'bytDispozicniReseni']"; + String INPUT_FLATAREA = "//input[@id = 'bytPlochaBezPrislusenstvi']"; + String SELECT_FLATSTATE = "//select[@id = 'bytStavBytu']"; + String INPUT_FLATLOCATION = "//select[@id = 'bytUmisteniJednotky']"; + String INPUT_TOTALAREAOTHER = "//input[@id = 'bytPlochaPrislusenstvi']"; + String COMBOBOX_PROPERTYRENTED_YES_FLAT = "//input[@name = 'realty[flat][rented]' and @value = '1']"; + String COMBOBOX_PROPERTYRENTED_NO_FLAT = "//input[@name = 'realty[flat][rented]' and @value = '0']"; + String INPUT_OUTSIDEPARKING = "//input[@id = 'bytPocetParkovacichMistVenkovni']"; + String INPUT_INSIDEPARKING = "//input[@id = 'bytPocetParkovacichMistVnitrni']"; + String INPUT_GARAGE = "//input[@id = 'bytPocetParkovacichMistStani']"; + String SELECT_CONSTRUCTIONMATERIAL_FLAT = "//select[@name = 'realty[flat_building][flat_building_type]']"; + String INPUT_BUILDYEAR_FLAT = "//input[@id = 'bytovyDumRokVystavby']"; + String COMBOBOX_ELEVATOR_YES = "//input[@name = 'realty[flat_building][elevator]' and @value = '1']"; + String COMBOBOX_ELEVATOR_NO = "//input[@name = 'realty[flat_building][elevator]' and @value = '0']"; + String SELECT_TECHNICALSTATE_FLAT = "//select[@id = 'bytovyDumTechnickyStav']"; + String INPUT_FLOORS = "//input[@id = 'bytovyDumPocetNadzemnichPodlazi']"; + + //HOUSE + String SELECT_CONSTRUCTIONMATERIAL_HOUSE = "//select[@id = 'construction-material-house']"; + String INPUT_BUILDYEAR_HOUSE = "//input[@id = 'budovaRokVystavby']"; + String INPUT_AREATOTAL_HOUSE = "//input[@id = 'budovaSoucetPlochPozemku']"; + String COMBOBOX_GARAGEINHOUSE_YES = "//input[@name = 'realty[house][garage_in_house]' and @value = '1']"; + String COMBOBOX_GARAGEINHOUSE_NO = "//input[@name = 'realty[house][garage_in_house]' and @value = '0']"; + String SELECT_TECHNICALSTATE_HOUSE = "//select[@name = 'realty[house][technical_condition_house]']"; + String COMBOBOX_PROPERTYRENTED_YES_HOUSE = "//input[@name = 'realty[house][rented]' and @value = '1']"; + String COMBOBOX_PROPERTYRENTED_NO_HOUSE = "//input[@name = 'realty[house][rented]' and @value = '0']"; + String INPUT_FLOOREAREA_HOUSE = "//input[@id = 'budovaZapocitatelnaPodlahovaPlocha']"; + String COMBOBOX_SEPARATEGARAGE_YES_HOUSE = "//input[@name = 'realty[house][garage_separate]' and @value = '1']"; + String COMBOBOX_SEPARATEGARAGE_NO_HOUSE = "//input[@name = 'realty[house][garage_separate]' and @value = '0']"; + String INPUT_PURPOSEDETAIL = "//textarea[@id = 'detailUcelu']"; + + //when documents available = no + String H4_WARNINGMESSAGE = "//h4[@id = 'error-msg-duration-increase']"; + String COMBOBOX_OWNERCOOPERATE_YES = "//input[@name = 'documents_owner_cooperate' and @value = '1']"; + String COMBOBOX_OWNERCOOPERATE_NO = "//input[@name = 'documents_owner_cooperate' and @value = '0']"; + String COMBOBOX_HASDOCUMENTS_YES = "//input[@name = 'documents_owner_has_documents' and @value = '1']"; + String COMBOBOX_HASDOCUMENTS_NO = "//input[@name = 'documents_owner_has_documents' and @value = '0']"; + String COMBOBOX_ATYPICAL_YES = "//input[@name = 'documents_atypical_property' and @value = '1']"; + String COMBOBOX_ATYPICAL_NO = "//input[@name = 'documents_atypical_property' and @value = '0']"; + + String INPUT_ATTACHMENT = "//input[@id = 'attachment']"; + String BUTTON_ANOTHERATTACHMENT = "//button[text() = 'další příloha']"; + String COMBOBOX_DOCUMENTSLATER_YES = "//input[@name = 'documents_later' and @value = '1']"; + String COMBOBOX_DOCUMENTSLATER_NO = "//input[@name = 'documents_later' and @value = '0']"; + String INPUT_ADDITIONALINFO = "//textarea[@id = 'informaceProOdhadce']"; + String INPUT_SAVE = "//input[@id = 'submit-appraisement-order']"; + + String A_ORDERDETAIL = "//*[text() = 'Detail objednávky']"; + + HashMap purposeTp = new HashMap() {{ + put("americká hypotéka", true); + put("další zajištění", true); + put("konsolidace", true); + put("koupě", true); + put("refinancování - dokončená nemovitost", true); + put("refinancování - následná rekonstrukce", true); + put("refinancování - rozestavěno", false); + put("rekonstrukce", true); + put("úprava rozsahu celku", true); + put("vypořádání SJM / dědictví", true); + put("výstavba", false); + put("změna zástavy", true); + put("ostatní", true); + }}; + + String[] elementsWithoutDocuments = { + H4_WARNINGMESSAGE, COMBOBOX_OWNERCOOPERATE_YES, COMBOBOX_OWNERCOOPERATE_NO, COMBOBOX_HASDOCUMENTS_YES, COMBOBOX_HASDOCUMENTS_NO, + COMBOBOX_ATYPICAL_YES, COMBOBOX_ATYPICAL_NO}; + + /** + * Checking elements that are similar for all types of realty. + * + * @return + */ + @CustomAction + default OrderValuationPage checkSharedElements() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + + String[] sharedElements = {SELECT_FINALTYPE, SELECT_REALTYUNITTYPE, SELECT_PURPOSE, INPUT_ADDRESSSTREET, INPUT_ADDRESSTOWN, + INPUT_ADDRESSTOWN, INPUT_ADDRESSTOWNPART, INPUT_ADDRESSDESCRIPTIVENUMBER, INPUT_ADDRESSPOSTCODE, SELECT_CONTACTROLE, + INPUT_PURCHASEPRICE, INPUT_SHARE, CHECKBOX_COMPLETEDVALUATION, INPUT_ATTACHMENT, BUTTON_ANOTHERATTACHMENT, + INPUT_ADDITIONALINFO, INPUT_SAVE}; + + for (String sharedElement : sharedElements) { + endpoint.waitForElementsToLoad(5, sharedElement); + } + log("All shared elements are present."); + return null; + } + + /** + * Checking elements for Flats realty. Method iterates over two lists - RealtyTypes and purposeTypes for final realty type Flat. + * In iterations, there are 2 checkers for what elements should be visible for every combination of those lists. + * If both of them are true, the elements check for additional section is made. + * If at least one of the condition is false, check for additional section not visible is made. + * + * @return + */ + @CustomAction + default OrderValuationPage checkFlatElements() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + selectFinalType("Jednotka"); + + HashMap realtyTypes = new HashMap() {{ + put("Bytová jednotka", true); + put("Ateliér", true); + put("Loft", true); + put("Mezonet", true); + put("Penthouse", true); + put("Jiné", false); + }}; + + String[] elementsWithDocumentsFlats = {SELECT_DISPOSITION, INPUT_FLATAREA, SELECT_FLATSTATE, INPUT_FLATLOCATION, INPUT_TOTALAREAOTHER, + COMBOBOX_PROPERTYRENTED_YES_FLAT, COMBOBOX_PROPERTYRENTED_NO_FLAT, INPUT_OUTSIDEPARKING, INPUT_INSIDEPARKING, INPUT_INSIDEPARKING, + SELECT_CONSTRUCTIONMATERIAL_FLAT, INPUT_BUILDYEAR_FLAT, COMBOBOX_ELEVATOR_YES, COMBOBOX_ELEVATOR_NO, SELECT_TECHNICALSTATE_FLAT, + INPUT_FLOORS}; + + for (Map.Entry realtyType : realtyTypes.entrySet()) { + selectRealtyFlatType(realtyType.getKey()); + + Boolean additionalSectionProperty = realtyType.getValue(); + + for (Map.Entry purposeType : purposeTp.entrySet()) { + selectPurpose(purposeType.getKey()); + + Boolean additionalSectionPurpose = purposeType.getValue(); + + if (additionalSectionProperty && additionalSectionPurpose) { + clickDocumentsAvailable(); + Arrays.stream(elementsWithDocumentsFlats).forEach(e -> endpoint.waitForElementsToLoad(5, e)); + + clickDocumentsNotAvailable(); + Arrays.stream(elementsWithoutDocuments).forEach(e -> endpoint.waitForElementsToLoad(5, e)); + } else { + String errorMessage = String.format("Section for flat describe is visible in %s with purpose %s.", realtyType, purposeType); + Assert.assertFalse(errorMessage, endpoint.isElementVisible(1, TH_FLATDESCRIBE, Lookup.XPATH)); + } + } + + } + log("All elements for flats are present."); + return null; + } + + /** + * Checking elements for Houses realty. Method iterates over two lists - RealtyTypes and purposeTypes for final realty type Building. + * In iterations, there are 2 checkers for what elements should be visible for every combination of those lists. + * If both of them are true, the elements check for additional section is made. + * If at least one of the condition is false, check for additional section not visible is made. + * + * @return + */ + @CustomAction + default OrderValuationPage checkHouseElements() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + selectFinalType("Budova"); + + HashMap realtyTypes = new HashMap() {{ + put("Rodinný dům", true); + put("Rekreační objekt", false); + put("Jiná - rezidenční", false); + put("Jiná - nerezidenční", false); + }}; + + String[] elementsWithDocumentsHouses = {SELECT_CONSTRUCTIONMATERIAL_HOUSE, INPUT_BUILDYEAR_HOUSE, INPUT_AREATOTAL_HOUSE, COMBOBOX_GARAGEINHOUSE_YES, + COMBOBOX_GARAGEINHOUSE_NO, SELECT_TECHNICALSTATE_HOUSE, COMBOBOX_PROPERTYRENTED_YES_HOUSE, COMBOBOX_PROPERTYRENTED_NO_HOUSE, INPUT_FLOOREAREA_HOUSE, + COMBOBOX_SEPARATEGARAGE_YES_HOUSE, COMBOBOX_SEPARATEGARAGE_NO_HOUSE}; + + for (Map.Entry realtyType : realtyTypes.entrySet()) { + selectRealtyHouseType(realtyType.getKey()); + Boolean additionalSectionProperty = realtyType.getValue(); + + for (Map.Entry purposeType : purposeTp.entrySet()) { + selectPurpose(purposeType.getKey()); + Boolean additionalSectionPurpose = purposeType.getValue(); + + if (additionalSectionProperty && additionalSectionPurpose) { + clickDocumentsAvailable(); + Arrays.stream(elementsWithDocumentsHouses).forEach(e -> endpoint.waitForElementsToLoad(5, e)); + + clickDocumentsNotAvailable(); + Arrays.stream(elementsWithoutDocuments).forEach(e -> endpoint.waitForElementsToLoad(5, e)); + } else { + String errorMessage = String.format("Section for building describe is visible in %s with purpose %s.", realtyType, purposeType); + Assert.assertFalse(errorMessage, endpoint.isElementVisible(1, TH_BUILDINGDESCRIBE, Lookup.XPATH)); + } + } + } + log("All elements for houses are present."); + return null; + } + + /** + * Check elements for land realty. This method iterates only in one list - PurposeTypes. + * In this iteration, there is only check, that no additional section is visible and if purpose is "ostatní" that one specific element is showed. + * + * @return + */ + @CustomAction + default OrderValuationPage checkLandElements() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + selectFinalType("Pozemek"); + + for (Map.Entry purposeType : purposeTp.entrySet()) { + selectPurpose(purposeType.getKey()); + System.out.println(purposeType.getKey()); + Assert.assertFalse("Combobox for documents availability is visible.", endpoint.isElementVisible(1, COMBOBOX_DOCUMENTSAVAILABLE_YES, Lookup.XPATH)); + Assert.assertFalse("Combobox for documents availability is visible.", endpoint.isElementVisible(1, COMBOBOX_DOCUMENTSAVAILABLE_NO, Lookup.XPATH)); + + if (purposeType.getKey().equals("ostatní")) { + Assert.assertTrue(endpoint.isElementVisible(INPUT_PURPOSEDETAIL)); + Assert.assertFalse("Combobox for documents availability is visible.", endpoint.isElementVisible(1, COMBOBOX_DOCUMENTSAVAILABLE_YES, Lookup.XPATH)); + Assert.assertFalse("Combobox for documents availability is visible.", endpoint.isElementVisible(1, COMBOBOX_DOCUMENTSAVAILABLE_NO, Lookup.XPATH)); + } + } + return null; + } + + @Click(A_BACKTOREALTYDETAIL) + OrderValuationPage clickBackToRealtyDetail(); + + @Select(SELECT_ORDERER_TYPE) + OrderValuationPage selectOrdererType(String ordereType); + + @TypeInto(SELECT_FINALTYPE) + @KeyPress(Key.ENTER) + OrderValuationPage selectFinalType(String finalType); + + @TypeInto(SELECT_REALTYUNITTYPE) + @KeyPress(Key.ENTER) + OrderValuationPage selectRealtyFlatType(String realtyType); + + @TypeInto(SELECT_REALTYBUILDINGTYPE) + @KeyPress(Key.ENTER) + OrderValuationPage selectRealtyHouseType(String realtyType); + + @TypeInto(SELECT_PURPOSE) + @KeyPress(Key.ENTER) + OrderValuationPage selectPurpose(String purpose); + + @TypeInto(INPUT_ADDRESSSTREET) + OrderValuationPage insertAddressStreet(String street); + + @TypeInto(INPUT_ADDRESSTOWN) + OrderValuationPage insertAddressTown(String town); + + @TypeInto(INPUT_ADDRESSTOWNPART) + OrderValuationPage insertAddressTownPart(String townPart); + + @TypeInto(INPUT_ADDRESSDESCRIPTIVENUMBER) + OrderValuationPage insertAddressDescriptiveNumber(String descriptiveNumber); + + @TypeInto(INPUT_ADDRESSPOSTCODE) + OrderValuationPage insertAddressPostCode(String postCode); + + @TypeInto(SELECT_CONTACTROLE) + @KeyPress(Key.ENTER) + OrderValuationPage selectContactRole(String contactRole); + + @TypeInto(INPUT_SHARE) + OrderValuationPage insertShare(int share); + + @Click(COMBOBOX_DOCUMENTSAVAILABLE_YES) + OrderValuationPage clickDocumentsAvailable(); + + @Wait(value = SELECT_DISPOSITION, until = Until.CLICKABLE) + OrderValuationPage waitFlatDispositionClickable(); + + @Wait(value = SELECT_CONSTRUCTIONMATERIAL_HOUSE, until = Until.CLICKABLE) + OrderValuationPage waitHouseMaterialClickable(); + + @Click(COMBOBOX_DOCUMENTSAVAILABLE_NO) + OrderValuationPage clickDocumentsNotAvailable(); + + @Click(CHECKBOX_COMPLETEDVALUATION) + OrderValuationPage clickCompletedValuation(); + + @TypeInto(SELECT_DISPOSITION) + @KeyPress(Key.ENTER) + OrderValuationPage selectDisposition(String disposition); + + @TypeInto(INPUT_FLATAREA) + OrderValuationPage insertArea(int area); + + @TypeInto(SELECT_FLATSTATE) + @KeyPress(Key.ENTER) + OrderValuationPage selectFlatState(String flatState); + + @TypeInto(INPUT_FLATLOCATION) + @KeyPress(Key.ENTER) + OrderValuationPage selectFlatLocation(String flatLocation); + + @TypeInto(INPUT_TOTALAREAOTHER) + OrderValuationPage insertTotalAreaOther(int totalAreaOther); + + @Click(COMBOBOX_PROPERTYRENTED_YES_FLAT) + OrderValuationPage clickPropertyRentedFlat(); + + @Click(COMBOBOX_PROPERTYRENTED_NO_FLAT) + OrderValuationPage clickPropertyNotRentedFlat(); + + @TypeInto(INPUT_OUTSIDEPARKING) + OrderValuationPage insertOutsideParking(int outsideParking); + + @TypeInto(INPUT_INSIDEPARKING) + OrderValuationPage insertInsideParking(int insideParking); + + @TypeInto(INPUT_GARAGE) + OrderValuationPage insertGarage(int garage); + + @TypeInto(SELECT_CONSTRUCTIONMATERIAL_FLAT) + @KeyPress(Key.ENTER) + OrderValuationPage selectConstructionMaterialFlat(String constructionMaterial); + + @TypeInto(INPUT_BUILDYEAR_FLAT) + OrderValuationPage insertBuildYearFlat(String buildYear); + + @Click(COMBOBOX_ELEVATOR_YES) + OrderValuationPage clickElevatorYes(); + + @Click(COMBOBOX_ELEVATOR_NO) + OrderValuationPage clickElevatorNo(); + + @TypeInto(SELECT_TECHNICALSTATE_FLAT) + @KeyPress(Key.ENTER) + OrderValuationPage selectTechnicalStateFlat(String technicalState); + + @TypeInto(INPUT_FLOORS) + OrderValuationPage insertFloors(int floors); + + @TypeInto(SELECT_CONSTRUCTIONMATERIAL_HOUSE) + @KeyPress(Key.ENTER) + OrderValuationPage selectConstructionMaterial(String constructionMaterial); + + @TypeInto(INPUT_BUILDYEAR_HOUSE) + OrderValuationPage insertBuildYear(int buildYear); + + @TypeInto(INPUT_AREATOTAL_HOUSE) + OrderValuationPage insertAreaTotalHouse(int areaTotal); + + @Click(COMBOBOX_GARAGEINHOUSE_YES) + OrderValuationPage clickGarageInHouse(); + + @Click(COMBOBOX_GARAGEINHOUSE_NO) + OrderValuationPage clickNoGarageInHouse(); + + @TypeInto(SELECT_TECHNICALSTATE_HOUSE) + @KeyPress(Key.ENTER) + OrderValuationPage selectTechnicalState(String technicalState); + + @Click(COMBOBOX_PROPERTYRENTED_YES_HOUSE) + OrderValuationPage clickPropertyRentedHouse(); + + @Click(COMBOBOX_PROPERTYRENTED_NO_HOUSE) + OrderValuationPage clickPropertyNotRentedHouse(); + + @TypeInto(INPUT_FLOOREAREA_HOUSE) + OrderValuationPage insertFloorAreaHouse(int areaOther); + + @Click(COMBOBOX_SEPARATEGARAGE_YES_HOUSE) + OrderValuationPage clickSeparateGarageInHouse(); + + @Click(COMBOBOX_SEPARATEGARAGE_NO_HOUSE) + OrderValuationPage clickNoSeparateGarageInHouse(); + + @CheckElementPresent(H4_WARNINGMESSAGE) + OrderValuationPage checkWarningMessage(); + + @Click(COMBOBOX_OWNERCOOPERATE_YES) + OrderValuationPage clickOwnerCooperate(); + + @Click(COMBOBOX_OWNERCOOPERATE_NO) + OrderValuationPage clickOwnerNotCooperate(); + + @Click(COMBOBOX_HASDOCUMENTS_YES) + OrderValuationPage clickHasDocuments(); + + @Click(COMBOBOX_HASDOCUMENTS_NO) + OrderValuationPage clickHasNoDocuments(); + + @Click(COMBOBOX_ATYPICAL_YES) + OrderValuationPage clickIsAtypical(); + + @Click(COMBOBOX_ATYPICAL_NO) + OrderValuationPage clickIsNotAtypical(); + + @Click(INPUT_ATTACHMENT) + OrderValuationPage clickAttachment(); + + @Click(BUTTON_ANOTHERATTACHMENT) + OrderValuationPage clickAnotherAttachment(); + + @Click(COMBOBOX_DOCUMENTSLATER_YES) + OrderValuationPage clickDocumentsLater(); + + @Click(COMBOBOX_DOCUMENTSLATER_NO) + OrderValuationPage clickDocumentsNotLater(); + + @TypeInto(INPUT_ADDITIONALINFO) + OrderValuationPage insertAdditionalInfo(String additionalInfo); + + @Click(INPUT_SAVE) + OrderValuationPage clickSave(); + + @Wait(value = A_ORDERDETAIL, waitSecondsForElement = 180) + @Click(A_ORDERDETAIL) + ValuationDetailPage waitForValuationComplete(); + + @CustomAction + default OrderValuationPage insertPurchasePrice(int purchasePrice) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + List elements = endpoint.findAndGetListOfElements(INPUT_PURCHASEPRICE, Lookup.XPATH); + if (!elements.isEmpty()) { + endpoint.type(() -> INPUT_PURCHASEPRICE, Integer.toString(purchasePrice), false, Lookup.XPATH); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/RealtyPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/RealtyPage.java new file mode 100644 index 0000000..73692b9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/RealtyPage.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.hypos.pages.contract.realty; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.realty.RealtyPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.realty.RealtyPage.SEARCH_REALTY_LINK; + +@Wait({PAGE_TITLE, SEARCH_REALTY_LINK}) +public interface RealtyPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[contains(text(),'Detail obchodu')]"; + String SEARCH_REALTY_LINK = "//a[contains(text(),'vyhledání nemovitosti a přiřazení jako zajištění')]"; + String LAND_AREA_REGISTRY_DRAFT_DATE_INPUT = "//th[contains(text(),'Datum podání návrhu na vklad ZP')]//following::input[@name='datum[1]']"; + String LAND_AREA_REGISTRY_ENTRY_DATE_INPUT = "//th[contains(text(),'Datum zápisu ZP do KN')]//following::input[@name='datum[3]']"; + String LAND_AREA_REGISTRY_LIEN_1ST_INPUT = "//th[contains(text(),'Datum, kdy se banka dozvěděla, že je ZP na 1. místě')]//following::input[@name='datum[4]']"; + String SAVE_UNIT_DATES_INPUT = "//form[contains(@class,'sec-dateStore')]//input[@value='Uložit']"; + + String REALTY_DETAIL = "a[contains(text(), 'Zobrazit detail celku')]"; + String REALTY_DETAIL_LINK = "(//" + REALTY_DETAIL + ")[1]"; + String REALTY_DETAIL_BY_REALTY_NUMBER_LINK = "//table[contains(@class,'content')]//td[text()='%s']//following::" + REALTY_DETAIL; + + @Click(SEARCH_REALTY_LINK) + SearchRealtyPage clickSearchRealty(); + + @Click(REALTY_DETAIL_LINK) + UnitDetailPage clickRealtyDetail(); + + @Click(value = REALTY_DETAIL_BY_REALTY_NUMBER_LINK, isStringDynamicXpath = true) + UnitDetailPage clickRealtyDetail(String realtyNumber); + + @TypeInto(LAND_AREA_REGISTRY_DRAFT_DATE_INPUT) + RealtyPage fillLandAreaRegistryDraftDate(String date); + + @TypeInto(LAND_AREA_REGISTRY_ENTRY_DATE_INPUT) + RealtyPage fillLandAreaRegistryEntryDate(String date); + + @TypeInto(LAND_AREA_REGISTRY_LIEN_1ST_INPUT) + RealtyPage fillLandAreaRegistryLien1stDate(String date); + + @Click(value = SAVE_UNIT_DATES_INPUT, andWait = @Wait(value = LOADER, until = Until.GONE)) + RealtyPage clickSaveLandRegistryDates(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/SearchRealtyPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/SearchRealtyPage.java new file mode 100644 index 0000000..9baec79 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/SearchRealtyPage.java @@ -0,0 +1,68 @@ +package cz.moneta.test.dsl.hypos.pages.contract.realty; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.hypos.pages.cadaster.CadasterRedocDetailPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.realty.SearchRealtyPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.realty.SearchRealtyPage.REALTY_SEARCH_BUTTON; +import static cz.moneta.test.dsl.hypos.pages.contract.realty.SearchRealtyPage.SEARCH_DATA_TABLE; + +@Wait({PAGE_TITLE, SEARCH_DATA_TABLE, REALTY_SEARCH_BUTTON}) +public interface SearchRealtyPage extends HyposPageFlow { + String PAGE_TITLE = "//h2[text()='Vyhledání nemovitosti']"; + String SEARCH_DATA_TABLE = "//table[@id='search-data']"; + String LAND_AREA_NAME_INPUT = SEARCH_DATA_TABLE + "//input[@id='nazev-katuz']"; + String LAND_AREA_CODE_INPUT = SEARCH_DATA_TABLE + "//input[@id='kod-katuz']"; + String LV_INPUT = SEARCH_DATA_TABLE + "//input[@id='cislo-lv']"; + String LAND_AREA_AUTOSUGGEST_LINK = "//a[contains(text(),'%s')]"; + String DESCRIPTIVE_NUMBER = SEARCH_DATA_TABLE + "//input[@name='house_no']"; + String REGISTRATION_NUMBER = "//input[@name='reg_no']"; + String FLAT_NUMBER = SEARCH_DATA_TABLE + "//input[@name='flat_no']"; + String REALTY_TYPE_SELECT = "//select[@title='Typ hledané nemovitosti']"; + String REALTY_SEARCH_BUTTON = "//input[@value='Vyhledat']"; + String CREATE_NEW_UNIT_LINK = "//a[contains(text(),'vytvořit nový celek')]"; + String CREATE_NEW_UNIT_SEARCH_LINK = "//table//a[contains(text(),'nový celek')]"; + String REDOC_DETAIL_LINK = "//a[contains(text(),'LV %s')]"; + + @Select(value = REALTY_TYPE_SELECT, andWait = @Wait(value = LAND_AREA_NAME_INPUT, until = Until.VISIBLE)) + SearchRealtyPage selectRealtyType(String realtyType); + + @TypeInto(value = LAND_AREA_NAME_INPUT, clear = true) + SearchRealtyPage fillAreaName(String area); + + @TypeInto(value = LAND_AREA_CODE_INPUT, clear = true) + SearchRealtyPage fillAreaCode(String area); + + @TypeInto(value = LV_INPUT, clear = true) + SearchRealtyPage fillLv(String lv); + + @Click(value = LAND_AREA_AUTOSUGGEST_LINK, isStringDynamicXpath = true) + SearchRealtyPage clickAutosuggestLink(String landArea); + + @Click(value = REDOC_DETAIL_LINK, isStringDynamicXpath = true) + CadasterRedocDetailPage clickRedocDetail(String lv); + + @TypeInto(DESCRIPTIVE_NUMBER) + SearchRealtyPage fillDescriptiveNumber(String number); + + @TypeInto(REGISTRATION_NUMBER) + SearchRealtyPage fillRegistrationNumber(String number); + + @TypeInto(FLAT_NUMBER) + SearchRealtyPage fillFlatNumber(String number); + + @Click(REALTY_SEARCH_BUTTON) + SearchRealtyPage clickSearchButton(); + + @Wait(CREATE_NEW_UNIT_LINK) + @Click(CREATE_NEW_UNIT_LINK) + CreateNewUnitPage clickCreateNewUnit(); + + @Click(CREATE_NEW_UNIT_SEARCH_LINK) + CreateNewUnitPage clickCreateNewSearchUnit(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/UnitDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/UnitDetailPage.java new file mode 100644 index 0000000..7d1bd53 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/UnitDetailPage.java @@ -0,0 +1,172 @@ +package cz.moneta.test.dsl.hypos.pages.contract.realty; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.hypos.pages.contract.realty.UnitDetailPage.PAGE_TITLE; +import static cz.moneta.test.dsl.hypos.pages.contract.realty.UnitDetailPage.APPROVED_SUPERVISION_BUTTON; + +@Wait(value = {PAGE_TITLE, APPROVED_SUPERVISION_BUTTON}, waitSecondsForElement = 120) +public interface UnitDetailPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h2[text()='Detail celku']"; + String APPROVED_SUPERVISION_BUTTON = "//a[contains(text(),'schválenou supervizi')]"; + String ADD_UNIT_BUTTON = "//a[contains(text(),'přidat jednotku')]"; + String UNIT_CATEGORY_SELECT = "//select[@id='cmd']"; + String CADASTRAL_TERRITORY_INPUT = "//input[@id='nazev-katuz']"; + String DOCUMENT_NUMBER_INPUT = "//input[@id='cislo-pd']"; + String LAND_NUMBER_INPUT = "//input[@name='lot_no']"; + String CADASTRAL_TERRITORY_AUTOSUGGEST = "//a[contains(text(),'%s')]"; + String SUBMIT_BUTTON = "//input[@value='Vyhledat']"; + String USED_PLEDGE_INPUT = "//input[@name='dummy']"; + String USED_PLEDGE_LINK = "//input[@name='dummy']/following-sibling::a"; + String CHECKED_PLEDGE_INPUT = "//input[@name='share[]' and @checked='checked']"; + String UNUSED_PLEDGE_INPUT = "//input[@name='share[]']"; + String ADD_TABLE_TH = "//*[contains(text(),'Podíly zástavců v celku')]"; + String SAVE_UNIT_BUTTON = "//a[contains(text(),'Uložit')]"; + String REMOVE_BUTTON = "//td[contains(text(),'%1$s')]/following-sibling::td[%2$s]/ul/li/a[contains(text(),'odebrat')]"; + String ADD_BUTTON = "//td[contains(text(),'%s')]/following-sibling::td[contains(@class,'operations')]/a[contains(text(),'přidat')]"; + String NO_FLATS_TD = "//td[contains(text(),'celek neobsahuje žádné byty')]"; + String NO_HOUSES_TD = "//td[contains(text(),'celek neobsahuje žádné budovy')]"; + String NO_LANDS_TD = "//td[contains(text(),'celek neobsahuje žádné pozemky')]"; + String ORDER_VALUATION_BUTTON = "//span/a[contains(text(),'tržní ocenění')]"; + String ORDER_SUPERVISION_BUTTON = "//span/a[contains(text(),'supervizi')]"; + String FIRST_ORDER_BUTTON = "//tr[@class='tooltip']/td[1]/a[1]"; + String UNIT_REMOVE_BUTTON = "//td[text()='%s']//following::a[contains(@href,'unit.attach-form')]"; + String CONTRACT_ID_LINK = "//th[contains(text(),'Seznam obchodů')]/ancestor::table//a[contains(@href,'sec.overview')]"; + + String CONTRACT_ID = "CONTRACT_ID"; + + @Click(FIRST_ORDER_BUTTON) + ValuationDetailPage openFirstOrder(); + + @Click(ORDER_VALUATION_BUTTON) + OrderValuationPage clickOnOrderValuation(); + + @Click(ORDER_SUPERVISION_BUTTON) + OrderSupervisionPage clickOnOrderSupervision(); + + @Click(APPROVED_SUPERVISION_BUTTON) + AcquireApprovedSupervisionPage clickApprovedSupervisionLink(); + + @Wait(value = ADD_UNIT_BUTTON, waitSecondsForElement = 5) + @Click(ADD_UNIT_BUTTON) + UnitDetailPage clickAddUnit(); + + @TypeInto(UNIT_CATEGORY_SELECT) + @KeyPress(Key.ENTER) + UnitDetailPage selectUnitCategory(String unitCategory); + + @TypeInto(CADASTRAL_TERRITORY_INPUT) + UnitDetailPage fillCadastralTerritory(String cadastralTerritory); + + @Click(value = CADASTRAL_TERRITORY_AUTOSUGGEST, isStringDynamicXpath = true) + UnitDetailPage clickAutosuggestLink(String cadastralTerritory); + + @TypeInto(DOCUMENT_NUMBER_INPUT) + UnitDetailPage fillDocumentNumber(String documentNumber); + + @TypeInto(LAND_NUMBER_INPUT) + UnitDetailPage fillLandNumber(String landNumber); + + @Click(SUBMIT_BUTTON) + UnitDetailPage clickSubmit(); + + @CustomAction + default UnitDetailPage clickRemove(String orientationNumber, String tdPosition) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> String.format(REMOVE_BUTTON, orientationNumber, tdPosition)); + return null; + } + + @CustomAction + default UnitDetailPage clickAdd(String orientationNumber) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> String.format(ADD_BUTTON, orientationNumber)); + return null; + } + + @CustomAction + default UnitDetailPage addUnit(String orientationNumber) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + clickAdd(orientationNumber); + endpoint.click(() -> UNUSED_PLEDGE_INPUT); + endpoint.click(() -> SAVE_UNIT_BUTTON); + return null; + } + + /** + * Checker, if unit is used in other realty, if so, it is removed to it could be used elsewhere. + * + * @param orientationNumber - String of property orientation number + * @param tdPosition - possition of button in HTML structure... Flats has different td than houses. + * @return + */ + @CustomAction + default UnitDetailPage checkUnitUsage(String orientationNumber, String tdPosition) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + clickAdd(orientationNumber); + endpoint.waitForElementsToLoad(5, ADD_TABLE_TH); + + if (endpoint.isElementPresent(USED_PLEDGE_INPUT, Lookup.XPATH)) { + removeUnit(orientationNumber, tdPosition); + log("Unit removed."); + } else { + log("Unit is available to add to the new realty."); + } + return null; + } + + /** + * Redirection to another url. In this case it is used for redirect back to created realty detail. + * + * @param url - String Url of realty detail. + * @return + */ + @CustomAction + default UnitDetailPage navigateTo(String url) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.changeUrl(url); + return null; + } + + /** + * Remove unit from other realty. + * + * @param orientationNumber - String of property orientation number + * @param tdPosition - possition of button in HTML structure... Flats has different td than houses. + * @return + */ + @CustomAction + default UnitDetailPage removeUnit(String orientationNumber, String tdPosition) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + log("Unit is used elsewhere, removing it first."); + endpoint.click(() -> USED_PLEDGE_LINK); + + clickRemove(orientationNumber, tdPosition); + endpoint.click(() -> CHECKED_PLEDGE_INPUT); + endpoint.click(() -> SAVE_UNIT_BUTTON); + endpoint.waitForElementsToLoad(30, NO_FLATS_TD); + endpoint.waitForElementsToLoad(30, NO_HOUSES_TD); + endpoint.waitForElementsToLoad(30, NO_LANDS_TD); + return null; + } + + @CustomAction + default UnitDetailPage removeUnit(String number) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> String.format(UNIT_REMOVE_BUTTON, number)); + endpoint.click(() -> CHECKED_PLEDGE_INPUT); + endpoint.click(() -> SAVE_UNIT_BUTTON); + return null; + } + + @CustomAction + default UnitDetailPage getContractId(Harness harness) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + harness.store(CONTRACT_ID, endpoint.getText(CONTRACT_ID_LINK)); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/ValuationDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/ValuationDetailPage.java new file mode 100644 index 0000000..b235f25 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realty/ValuationDetailPage.java @@ -0,0 +1,355 @@ +package cz.moneta.test.dsl.hypos.pages.contract.realty; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import java.util.Arrays; + +import static cz.moneta.test.dsl.hypos.pages.contract.realty.ValuationDetailPage.H1_ORDERVALUATION; + +@Wait(value = H1_ORDERVALUATION, waitSecondsForElement = 180) +public interface ValuationDetailPage extends HyposPageFlow, Menu { + + String autoComment = "Automation Test"; + + String H1_ORDERVALUATION = "//h1[text()='Objednávka ocenění']"; + String H2_RISKS = "//h2[text()='Rizika a stanovení podmínek']"; + String H2_FINAL = "//h2[text()='Finální ocenění']"; + String H3_VALUATIONCOMPLETED = "//h3[text()='Ocenění bylo uloženo']"; + String H2_REALTYDESCRIPTION = "//h2[text()='Popis nemovitosti']"; + + String A_TAKE = "//a[@id='assign-link']"; + String A_GIVE = "//a[@id='forward-link']"; + String A_DEFER = "//a[@id='delay-link']"; + String A_CANCEL = "//a[@id='cancel-link']"; + String A_PROCESSORDER = "//a[@id='final-valuation-process' and contains(text(),'Zpracovat')]"; + + String TD_LASTOPERATION = "//table[@id='appr-order-events']/tbody/tr[1]/td[2]"; + String TD_LASTOPERATION_COMMENT = "//table[@id='appr-order-events']/tbody/tr[1]/td[3]"; + String TD_VALUATIONTYPE = "//th[text()='Způsob zpracování - výchozí']/following-sibling::td[1]"; + + String INPUT_GIVEORDER = "//input[@value='Předat objednávku']"; + String INPUT_DEFERORDER = "//input[@value='Odložit objednávku']"; + String INPUT_DELAYUNTIL = "//input[@name='delayUntil']"; + String INPUT_CANCEL = "//input[@value='Zrušit objednávku']"; + String INPUT_CURRENTPRICE = "//input[@name='final_valuation[results][data][current_price]']"; + String INPUT_JKSOPRICE = "//input[@id='results-auto-reproduction-price-flat']"; + String INPUT_REPRODUCTIVEPRICE = "//input[@id='results-reproduction-price-flat']"; + String INPUT_FLATAREA = "//input[@id='flat-floor-area']"; + String INPUT_FLATAREOTHER = "//input[@id='flat-floor-area-other']"; + + String SELECT_FLAT_HEATING = "//select[@id='flat-heating']"; + String SELECT_FLAT_HEATING_MEDIUM = "//select[@name='realty[flat][unit_heating_medium_tp]']"; + String CHECKBOX_FLAT_AIRCONDITION = "//input[@name='realty[flat][unit_airconditioning_system_flag]' and @value='0']"; + String INPUT_BUILD_APART_CNT = "//input[@id='build-apart-cnt']"; + String CHECKBOX_BUILD_GAS = "//input[@name='realty[flat_building][build_conn_gas_distr_flag]' and @value='0']"; + String CHECKBOX_BUILD_SOLAR_POWER = "//input[@name='realty[flat_building][build_solar_power_plant_flag]' and @value='0']"; + + String SELECT_HOUSE_MAIN_BUILD_TYPE = "//select[@name='realty[house][main_rlt_build_subtp]']"; + String SELECT_HOUSE_RECONSTRUCTION = "//select[@name='realty[house][data][reconstruction]']"; + String SELECT_HOUSE_HEATING_SYSTEM = "//select[@name='realty[house][unit_heating_system_tp]']"; + String SELECT_HOUSE_HEATING_MEDIUM = "//select[@name='realty[house][unit_heating_medium_tp]']"; + String CHECKBOX_HOUSE_WATER_NETWORK = "//input[@name='realty[house][water_supply_network_public]' and @value='1']"; + String CHECKBOX_HOUSE_SEWERAGE_NETWORK = "//input[@name='realty[house][sewerage_supply_network_public]' and @value='1']"; + String CHECKBOX_HOUSE_SEWERAGE_NETWORK_OWN = "//input[@name='realty[house][sewerage_supply_network_own]' and @value='1']"; + String CHECKBOX_HOUSE_GAS_NETWORK = "//input[@name='realty[house][gas_supply_network_public]' and @value='1']"; + String CHECKBOX_HOUSE_SOLAR_POWER = "//input[@name='realty[house][build_solar_power_plant_flag]' and @value='0']"; + String CHECKBOX_HOUSE_AIRCONDITION = "//input[@name='realty[house][unit_airconditioning_system_flag]' and @value='0']"; + String CHECKBOX_HOUSE_FLOOR_DOWNSTAIR = "//input[@name='realty[house_building][build_floor_downstairs_flag]' and @value='0']"; + String CHECKBOX_HOUSE_FLOOR_UPSTAIR = "//input[@name='realty[house_building][build_floor_upstairs_cnt]' and @value='1']"; + String CHECKBOX_HOUSE_FLOOR_ATTIC = "//input[@name='realty[house_building][build_floor_tp_attic_flag]' and @value='1']"; + String INPUT_HOUSE_BUILT_UP_AREA = "//input[@name='realty[house_building][built_up_area]']"; + String INPUT_HOUSE_SURROUND_SPACE = "//input[@id='house-building-surround-space']"; + String INPUT_HOUSE_FLOOR_AREA = "//input[@id='house-building-residential-floor-area']"; + + + String TEXTAREA_FORWARDCOMMENT = "//textarea[@id='forward-comment']"; + String TEXTAREA_DELAYCOMMNET = "//textarea[@id='delay-comment']"; + String TEXTAREA_CANCELCOMMNET = "//textarea[@id='cancel-comment']"; + + String BUTTON_COMPARATOR_ADD_REALTY = "//button[contains(text(),'Přidat nemovitost')]"; + String INPUT_COMPARATOR_REALTY_AREA = "(//input[@name='realty_area'])[last()]"; + String INPUT_COMPARATOR_LAND_AREA = "(//input[@name='land_area'])[last()]"; + String INPUT_COMPARATOR_PRICE = "(//input[@name='price'])[last()]"; + + String BUTTON_SAVERISKS = "//form[@id='risk-form']//*[text()='Uložit sekci']"; + String BUTTON_SAVEALL = "//button[contains(text(),'Uložit vše')]"; + + String DIV_LOADING = "//div[@class='loading']"; + + @Wait(value = H3_VALUATIONCOMPLETED, waitSecondsForElement = 60) + ValuationDetailPage waitForValuationCompleted(); + + @TypeInto(value = INPUT_REPRODUCTIVEPRICE, clear = true) + ValuationDetailPage insertReproductivePrice(int price); + + @TypeInto(value = INPUT_CURRENTPRICE, clear = true) + ValuationDetailPage insertCurrentPrice(int price); + + @Click(A_PROCESSORDER) + ValuationDetailPage clickProcess(); + + @Click(H2_RISKS) + ValuationDetailPage clickRisks(); + + @Click(H2_FINAL) + ValuationDetailPage clickFinalSection(); + + @Wait(H2_REALTYDESCRIPTION) + @Click(H2_REALTYDESCRIPTION) + ValuationDetailPage clickRealtyDescription(); + + @Click(value = BUTTON_SAVEALL, andWait = @Wait(value = BUTTON_SAVEALL, until = Until.CLICKABLE)) + ValuationDetailPage clickSaveAll(); + + @Click(BUTTON_SAVERISKS) + ValuationDetailPage clickSaveRisks(); + + @Click(A_DEFER) + ValuationDetailPage clickDeferOrder(); + + @TypeInto(INPUT_DELAYUNTIL) + ValuationDetailPage insertDelayUntil(String delay); + + @TypeInto(TEXTAREA_DELAYCOMMNET) + ValuationDetailPage insertDelayComment(String comment); + + @Click(INPUT_DEFERORDER) + ValuationDetailPage clickDeferOrderInput(); + + @AcceptAlert(waitSecondsForAlert = 10) + ValuationDetailPage acceptAlert(); + + @Click(A_CANCEL) + ValuationDetailPage clickCancelOrder(); + + @TypeInto(TEXTAREA_CANCELCOMMNET) + ValuationDetailPage insertCancelComment(String comment); + + @Click(INPUT_CANCEL) + ValuationDetailPage clickCancelOrderInput(); + + @Click(A_GIVE) + ValuationDetailPage clickGiveOrder(); + + @TypeInto(TEXTAREA_FORWARDCOMMENT) + ValuationDetailPage insertForwardComment(String comment); + + @Click(INPUT_GIVEORDER) + ValuationDetailPage clickGiveOrderInput(); + + @Click(A_TAKE) + ValuationDetailPage clickTakeOrder(); + + @CheckElementPresent(DIV_LOADING) + ValuationDetailPage checkLoadingScreen(); + + @Click(A_PROCESSORDER) + ValuationDetailPage clickProcessOrder(); + + @Click(CHECKBOX_FLAT_AIRCONDITION) + ValuationDetailPage clickFlatAircondition(); + + @Click(CHECKBOX_BUILD_GAS) + ValuationDetailPage clickBuildGas(); + + @Click(CHECKBOX_BUILD_SOLAR_POWER) + ValuationDetailPage clickBuildSolarPower(); + + @Select(SELECT_FLAT_HEATING) + ValuationDetailPage selectFlatHeating(String heating); + + @Select(SELECT_FLAT_HEATING_MEDIUM) + ValuationDetailPage selectFlatHeatingMedium(String medium); + + @TypeInto(INPUT_BUILD_APART_CNT) + ValuationDetailPage insertBuildApart(String apart); + + @TypeInto(INPUT_COMPARATOR_REALTY_AREA) + ValuationDetailPage insertComparatorRealtyArea(String area); + + @TypeInto(INPUT_COMPARATOR_LAND_AREA) + ValuationDetailPage insertComparatorLandArea(String area); + + @TypeInto(INPUT_COMPARATOR_PRICE) + ValuationDetailPage insertComparatorPrice(String price); + + @Click(BUTTON_COMPARATOR_ADD_REALTY) + ValuationDetailPage clickComparatorAddRealty(); + + @Select(SELECT_HOUSE_MAIN_BUILD_TYPE) + ValuationDetailPage selectHouseMainBuildType(String buildType); + + @Select(SELECT_HOUSE_RECONSTRUCTION) + ValuationDetailPage selectHouseReconstruction(String reconstruction); + + @Select(SELECT_HOUSE_HEATING_SYSTEM) + ValuationDetailPage selectHouseHeatingSystem(String heatingSystem); + + @Select(SELECT_HOUSE_HEATING_MEDIUM) + ValuationDetailPage selectHouseHeatingMedium(String medium); + + @Click(CHECKBOX_HOUSE_WATER_NETWORK) + ValuationDetailPage clickHouseWaterNetwork(); + + @Click(CHECKBOX_HOUSE_SEWERAGE_NETWORK) + ValuationDetailPage clickHouseSewerageNetwork(); + + @Click(CHECKBOX_HOUSE_SEWERAGE_NETWORK_OWN) + ValuationDetailPage clickHouseSewerageNetworkOwn(); + + @Click(CHECKBOX_HOUSE_GAS_NETWORK) + ValuationDetailPage clickHouseGasNetwork(); + + @Click(CHECKBOX_HOUSE_SOLAR_POWER) + ValuationDetailPage clickHouseSolarPower(); + + @Click(CHECKBOX_HOUSE_AIRCONDITION) + ValuationDetailPage clickHouseAircondition(); + + @Click(CHECKBOX_HOUSE_FLOOR_DOWNSTAIR) + ValuationDetailPage clickHouseFloorDownstair(); + + @Click(CHECKBOX_HOUSE_FLOOR_UPSTAIR) + ValuationDetailPage clickHouseFloorUpstair(); + + @Click(CHECKBOX_HOUSE_FLOOR_ATTIC) + ValuationDetailPage clickHouseFloorAttic(); + + @TypeInto(value = INPUT_HOUSE_BUILT_UP_AREA, clear = true) + ValuationDetailPage insertBuiltUpArea(String area); + + @TypeInto(value = INPUT_HOUSE_SURROUND_SPACE, clear = true) + ValuationDetailPage insertSurroundSpace(String area); + + @TypeInto(value = INPUT_HOUSE_FLOOR_AREA,clear = true) + ValuationDetailPage insertFloorArea(String area); + + /** + * Verify if last operation has correct comment in history of order. + * + * @return + */ + @CustomAction + default ValuationDetailPage verifyLastOperationComment() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + String lastOperationComment = endpoint.getText(TD_LASTOPERATION_COMMENT); + String errorMessageComment = String.format("Order should have comment in last operation '%s', instead of this it has %s", autoComment, lastOperationComment); + Assertions.assertEquals(lastOperationComment, autoComment, errorMessageComment); + return null; + } + + /** + * Verifying if valuation has correct type according to predefined parameters. + * + * @param expectedType - String of expected valuation type. + * @return + */ + @CustomAction + default ValuationDetailPage verifyValuationType(String expectedType) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + String valuationType = endpoint.getText(TD_VALUATIONTYPE); + String errorMessage = String.format("Valuation has type %s, instead of expected type %s", valuationType, expectedType); + Assertions.assertEquals(valuationType, expectedType, errorMessage); + return null; + } + + /** + * Check shared elements in the header of valuation form. + * Will be used for flats, houses and lands, because header is always same. + * @return + */ + @CustomAction + default ValuationDetailPage checkSharedElements() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + + String[] contractDetailElements = {"Číslo obchodu", "Způsob zpracování - výchozí", "Typ nemovitosti", "Účel ocenění", "Detail účelu ocenění", + "Výše úvěru", "LTV z hypokalkulačky", "Broker", "Typ objednatele", "Klient", "Zpracovatel", "Kupní cena", "Dosud čerpáno", "Číslo objednávky ocenění", + "Hypoteční bankéř", "Celek"}; + Arrays.stream(contractDetailElements).forEach(e -> endpoint.waitForElementsToLoad(5, String.format("//th[text() = '%s:']/following-sibling::td[1]", e))); + + String[] orderDetailElements = {"Kontaktní informace na osobu, která může zpřístupnit nemovitost", "Adresa nemovitosti", "Datum objednání", + "Čas od objednání", "Odloženo do", "Požadovaný termín zhotovení"}; + + Arrays.stream(orderDetailElements).forEach(e -> endpoint.waitForElementsToLoad(5, String.format("//td[text() = '%s:']/following-sibling::td", e))); + + return null; + } + + /** + * Check elements presence. Works only for elements with ID! + * @param elements String array with same types of elements (selects, inputs etc...) + * @param elementsType String element type to be checked. + * @return + */ + @CustomAction + default ValuationDetailPage checkElements(String[] elements, String elementsType) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + Arrays.stream(elements).forEach(e -> endpoint.waitForElementsToLoad(5, String.format("//%s[@id = '%s']", elementsType, e))); + return null; + } + + /** + * Get values used for reproductive price calculation and verify if value is correct. + * @return + */ + @CustomAction + default ValuationDetailPage doCalculationAndVerify() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + + double flatArea = Double.parseDouble(endpoint.getAttribute(INPUT_FLATAREA, "value").replace(",",".")); + double flatAreaOther = Double.parseDouble(endpoint.getAttribute(INPUT_FLATAREOTHER, "value").replace(",",".")); + double countedArea; + + if ((flatAreaOther / 2 )> 0.2 * flatArea){ + countedArea = flatArea + flatAreaOther * 0.2; + } else { + countedArea = flatArea + (flatAreaOther / 2); + } + + double JKSOhodnota = Double.parseDouble(endpoint.getAttribute(INPUT_JKSOPRICE,"value").replace(",",".")); + double expectedValue = Math.floor((countedArea * JKSOhodnota)/ 10000) * 10000; + double reproductivePrice = Double.parseDouble(endpoint.getAttribute(INPUT_REPRODUCTIVEPRICE, "value").replace(",",".")); + + String message = String.format("Expected reporductive price value %s is not equal actual price %s.", expectedValue, reproductivePrice); + Assertions.assertEquals(expectedValue, reproductivePrice, message); + return null; + } + + /** + * Setting all risks to no, so valuation could be processed. + * + * @return + */ + @CustomAction + default ValuationDetailPage setAllRisksNo() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + String[] risks = {"redoc_registration", "pledge", "right_energy", "right_usage", + "right_entry", "preemption", "other_restriction", "stopping", "real_usage", "unused", + "under_construction", "other_risk", "engineering_networks", "foreign_land", "accessible", + "lease_agreement", "flood_area"}; + + Arrays.stream(risks).forEach(e -> endpoint.click(() -> String.format("//input[@name = 'risks[%s]' and @value = '0']", e))); + + return null; + } + + /** + * Verify if in history is correct last operation type. + * + * @param operationType String type of operation. + * @return + */ + @CustomAction + default ValuationDetailPage verifyLastOperation(String operationType) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.waitForElementsToLoad(10, Until.CLICKABLE, TD_LASTOPERATION); + String lastOperation = endpoint.getText(TD_LASTOPERATION); + String errorMessage = String.format("Order should have last operation '%s', instead of this it has %s", operationType, lastOperation); + Assertions.assertTrue(lastOperation.contains(operationType), errorMessage); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realtyinsurance/RealtyInsurancePage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realtyinsurance/RealtyInsurancePage.java new file mode 100644 index 0000000..9c83416 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/realtyinsurance/RealtyInsurancePage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.pages.contract.realtyinsurance; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.realtyinsurance.RealtyInsurancePage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface RealtyInsurancePage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Sjednání pojištění majetku']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/retention/RetentionPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/retention/RetentionPage.java new file mode 100644 index 0000000..09befb4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/retention/RetentionPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.pages.contract.retention; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.retention.RetentionPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface RetentionPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Retence']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/service/ServicePage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/service/ServicePage.java new file mode 100644 index 0000000..2fa9752 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/service/ServicePage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.pages.contract.service; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.service.ServicePage.TABLE_TD_PROCESS; + +@Wait(TABLE_TD_PROCESS) +public interface ServicePage extends HyposPageFlow, Menu { + String TABLE_TD_PROCESS = "//table//td[text()='Proces']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/urgent/UrgentPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/urgent/UrgentPage.java new file mode 100644 index 0000000..a5f8c76 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/urgent/UrgentPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.hypos.pages.contract.urgent; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.contract.urgent.UrgentPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface UrgentPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h2[text()='Urgenty']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/withdrawal/WithdrawalRequestsPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/withdrawal/WithdrawalRequestsPage.java new file mode 100644 index 0000000..d548224 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/contract/withdrawal/WithdrawalRequestsPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.hypos.pages.contract.withdrawal; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.hypos.pages.contract.withdrawal.WithdrawalRequestsPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface WithdrawalRequestsPage extends HyposPageFlow, Menu { + String PAGE_TITLE = "//h1[text()='Žádosti o čerpání']"; + String NEW_REQUEST_TABLE = "//table[@id='novazadost']"; + String DRAW_REQUEST_DATE_INPUT = NEW_REQUEST_TABLE + "//input[@id='draw-request-date']"; + String ADD_DECISION_DATE_LINK = NEW_REQUEST_TABLE + "//a[@id='add-decision-date']"; + String INVOICES_TABLE = "//table[@id='faktury']"; + String SET_CLIENT_ACCOUNT_INPUT = INVOICES_TABLE + "//input[contains(@class,'bu')]"; + String SET_CLIENT_NAME_SELECT = INVOICES_TABLE + "//select[@name='faktura_na_jmeno_select[]']"; + String WITHDRAWAL_AMOUNT_INPUT = INVOICES_TABLE + "//input[@name='faktura_castka[]']"; + String SAVE_BUTTON = "//form[@id='formZadost']//input[@value='Uložit']"; + + @TypeInto(DRAW_REQUEST_DATE_INPUT) + WithdrawalRequestsPage fillDrawDate(String date); + + @Click(value = ADD_DECISION_DATE_LINK, andWait = @Wait(value = LOADER, until = Until.GONE)) + WithdrawalRequestsPage clickAddDecisionDate(); + + @Click(SET_CLIENT_ACCOUNT_INPUT) + WithdrawalRequestsPage clickClientAccountCheckbox(); + + @Select(SET_CLIENT_NAME_SELECT) + WithdrawalRequestsPage selectCurrentAccountOwner(String clientName); + + @TypeInto(WITHDRAWAL_AMOUNT_INPUT) + WithdrawalRequestsPage fillLoanAmount(int loanAmount); + + @Click(SAVE_BUTTON) + WithdrawalRequestsPage clickSaveButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaAddressPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaAddressPage.java new file mode 100644 index 0000000..f0cacc8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaAddressPage.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaAddressPage.ALL_ADDRESSES_EQUAL_CHECKBOX; +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaAddressPage.SAVE_ADDRESS_BUTTON; + +@Wait(value = {ALL_ADDRESSES_EQUAL_CHECKBOX, SAVE_ADDRESS_BUTTON}, until = Until.VISIBLE) +public interface HypokalkulackaAddressPage extends HyposPageFlow { + String ADDRESS_DIV_XPATH = "//div[@id='address-input']"; + String STREET_INPUT = ADDRESS_DIV_XPATH + "//input[@name='address_street']"; + String DESCRIPTIVE_NUMBER_INPUT = ADDRESS_DIV_XPATH + "//input[@name='address_descriptive_number']"; + String ORIENTATION_NUMBER_INPUT = ADDRESS_DIV_XPATH + "//input[@name='address_orientation_number']"; + String CITY_INPUT = ADDRESS_DIV_XPATH + "//input[@name='address_town']"; + String ZIP_INPUT = ADDRESS_DIV_XPATH + "//input[@name='address_post_code']"; + String ALL_ADDRESSES_EQUAL_CHECKBOX = ADDRESS_DIV_XPATH + "//input[@id='address-all-eq']"; + String SAVE_ADDRESS_BUTTON = ADDRESS_DIV_XPATH + "//input[@value='Uložit']"; + String ADDRESS_LOADER_IMG = ADDRESS_DIV_XPATH + "//img[@class='addressLoading']"; + String ZIP_LOADER_IMG = ADDRESS_DIV_XPATH + "//span[@id='address-client-name']/../..//img[@class='zipLoading' and contains(@style,'display: inline')]"; + String WHISPER_INPUT = ADDRESS_DIV_XPATH + "//input[@id='whisper']"; + String WHISPER_LOADER_IMG = "//input[@id='whisper']/following-sibling::img[contains(@style,'display: inline')]"; + String SELECT_ADDRESS_WHISPER_LINK = "(//tbody[contains(@class,'selectAddress') and not(contains(@style,'display: none'))]//a)[1]"; + + @Click(value = ALL_ADDRESSES_EQUAL_CHECKBOX, andWait = @Wait(value = ADDRESS_LOADER_IMG, until = Until.GONE)) + HypokalkulackaAddressPage clickAllAddressesEqual(); + + @TypeInto(value = STREET_INPUT, clear = true, andWait = @Wait(value = ADDRESS_LOADER_IMG, until = Until.GONE)) + HypokalkulackaAddressPage fillStreet(String street); + + @TypeInto(value = CITY_INPUT, clear = true, andWait = @Wait(value = ADDRESS_LOADER_IMG, until = Until.GONE)) + HypokalkulackaAddressPage fillCity(String city); + + @TypeInto(value = DESCRIPTIVE_NUMBER_INPUT, clear = true, andWait = @Wait(value = ADDRESS_LOADER_IMG, until = Until.GONE)) + HypokalkulackaAddressPage fillDescriptiveNumber(String descriptiveNumber); + + @TypeInto(value = ORIENTATION_NUMBER_INPUT, clear = true, andWait = @Wait(value = ADDRESS_LOADER_IMG, until = Until.GONE)) + HypokalkulackaAddressPage fillOrientationNumber(String orientationNumber); + + @TypeInto(value = ZIP_INPUT, clear = true, andWait = @Wait(value = ZIP_LOADER_IMG, until = Until.GONE)) + HypokalkulackaAddressPage fillZip(String zip); + + @TypeInto(value = WHISPER_INPUT, clear = true, andWait = @Wait(value = WHISPER_LOADER_IMG, until = Until.GONE)) + HypokalkulackaAddressPage fillAddressWhisper(String whisperInput); + + @Wait(value = SELECT_ADDRESS_WHISPER_LINK, until = Until.CLICKABLE) + HypokalkulackaAddressPage waitForAddressFromWhisper(); + + @Click(value = SELECT_ADDRESS_WHISPER_LINK, andWait = @Wait(value = ZIP_LOADER_IMG, until = Until.GONE)) + HypokalkulackaAddressPage selectAddressFromWhisper(); + + @Click(value = SAVE_ADDRESS_BUTTON, jsClick = true) + HypokalkulackaPage clickSaveAddressButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientDetailPage.java new file mode 100644 index 0000000..61109f5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientDetailPage.java @@ -0,0 +1,82 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaClientDetailPage.SAVE_CLIENT_BUTTON; + +@Wait(value = SAVE_CLIENT_BUTTON, until = Until.VISIBLE) +public interface HypokalkulackaClientDetailPage extends HyposPageFlow, StoreAccessor { + String CLIENT_INPUT_DIV = "//div[@id='client-input']"; + String PIN_INPUT = CLIENT_INPUT_DIV + "//input[@id='client-pin']"; + String FIRST_NAME_INPUT = CLIENT_INPUT_DIV + "//input[@id='client-first-name']"; + String LAST_NAME_INPUT = CLIENT_INPUT_DIV + "//input[@id='client-last-name']"; + String PHONE_INPUT = CLIENT_INPUT_DIV + "//input[@id='client-cell']"; + String EMAIL_INPUT = CLIENT_INPUT_DIV + "//input[@id='client-email']"; + String MARITAL_STATUS_SELECT = CLIENT_INPUT_DIV + "//select[@id='client-marital-status']"; + String STAY_TYPE_SELECT = CLIENT_INPUT_DIV + "//select[@id='client-stay-type']"; + String LIVING_TYPE_SELECT = CLIENT_INPUT_DIV + "//select[@id='client-living-type']"; + String EDUCATION_SELECT = CLIENT_INPUT_DIV + "//select[@id='client-education']"; + String BIRTH_DATE_INPUT = CLIENT_INPUT_DIV + "//input[@id='client-dob']"; + String NATIONALITY_SELECT = CLIENT_INPUT_DIV + "//select[@id='client-nationality']"; + String CLIENT_RELATION_SELECT = CLIENT_INPUT_DIV + "//select[@id='client-relation']"; + String HOUSEHOLD_SELECT = CLIENT_INPUT_DIV + "//select[@id='client-household-nr']"; + String EMPLOYEE_INPUT = CLIENT_INPUT_DIV + "//input[@id='client-is-ge-employee']"; + + String PIN_SEARCH_BUTTON = CLIENT_INPUT_DIV + "//input[@id='client-search-by-pin']"; + String SAVE_CLIENT_BUTTON = CLIENT_INPUT_DIV + "//input[@value='Uložit']"; + + @TypeInto(PIN_INPUT) + @Click(value = PIN_SEARCH_BUTTON, andWait = @Wait(value = PIN_SEARCH_BUTTON, until = Until.VISIBLE)) + HypokalkulackaClientDetailPage fillPinAndSearchPin(String pin); + + @TypeInto(FIRST_NAME_INPUT) + HypokalkulackaClientDetailPage fillFirstName(String firstName); + + @TypeInto(LAST_NAME_INPUT) + HypokalkulackaClientDetailPage fillLastName(String lastName); + + @TypeInto(PHONE_INPUT) + HypokalkulackaClientDetailPage fillPhone(String phone); + + @TypeInto(EMAIL_INPUT) + HypokalkulackaClientDetailPage fillEmail(String email); + + @Select(MARITAL_STATUS_SELECT) + HypokalkulackaClientDetailPage selectMaritalStatus(String maritalStatus); + + @Select(STAY_TYPE_SELECT) + HypokalkulackaClientDetailPage selectStayType(String stayType); + + @Select(LIVING_TYPE_SELECT) + HypokalkulackaClientDetailPage selectLivingType(String livingType); + + @Select(EDUCATION_SELECT) + HypokalkulackaClientDetailPage selectEducationType(String educationType); + + @TypeInto(value = BIRTH_DATE_INPUT, clear = true) + HypokalkulackaClientDetailPage fillBirthDate(String birthDate); + + @Select(NATIONALITY_SELECT) + HypokalkulackaClientDetailPage selectNationality(String nationality); + + @Select(CLIENT_RELATION_SELECT) + HypokalkulackaClientDetailPage selectClientRelation(String clientRelation); + + @Select(HOUSEHOLD_SELECT) + HypokalkulackaClientDetailPage selectHousehold(String household); + + @Click(SAVE_CLIENT_BUTTON) + HypokalkulackaPage clickSaveClientButton(); + + @CustomAction + default HypokalkulackaClientDetailPage selectEmployee(boolean employee) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + if (employee) { + endpoint.click(() -> EMPLOYEE_INPUT); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientExpenditurePage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientExpenditurePage.java new file mode 100644 index 0000000..65437f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientExpenditurePage.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.hypos.enums.CorrectionType; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaClientExpenditurePage.SAVE_EXPENDITURE_BUTTON; + +@Wait(value = SAVE_EXPENDITURE_BUTTON, until = Until.VISIBLE) +public interface HypokalkulackaClientExpenditurePage extends HyposPageFlow, StoreAccessor { + String EXPENDITURE_INPUT_DIV = "//div[@id='expenditure-input']"; + String EXPENDITURE_ACTIVE_ROW = EXPENDITURE_INPUT_DIV + "//tbody[(contains(@class, 'listing'))]/tr[contains(@class,'pending')]"; + String EXPENDITURE_TYPE_SELECT = EXPENDITURE_ACTIVE_ROW + "/td/select[contains(@class,'expenditure-type')]"; + String EXPENDITURE_CORRECTION_SELECT = EXPENDITURE_ACTIVE_ROW + "/preceding::tr[1]/td/select[contains(@class,'expenditure-correction')]"; + String EXPENDITURE_INSTALMENT_AMOUNT_INPUT = EXPENDITURE_ACTIVE_ROW + "/preceding::tr[1]/td/input[contains(@class,'expenditure-instalment-amount')]"; + + String SAVE_EXPENDITURE_BUTTON = EXPENDITURE_INPUT_DIV + "//input[@value='Uložit']"; + + @CustomAction + default HypokalkulackaClientExpenditurePage setExpenditures(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + for (int i = 0; i < hyposContract.getClients().get(0).getExpenditures().size(); i++) { + endpoint.selectByVisibleText(EXPENDITURE_TYPE_SELECT, hyposContract.getClients().get(0).getExpenditures().get(i).getType()); + endpoint.type(() -> EXPENDITURE_INSTALMENT_AMOUNT_INPUT, hyposContract.getClients().get(0).getExpenditures().get(i).getAmount(), true); + if (!hyposContract.getClients().get(0).getExpenditures().get(i).getCorrection().equals(CorrectionType.NO_CORRECTION.getValue())){ + endpoint.selectByVisibleText(EXPENDITURE_CORRECTION_SELECT, hyposContract.getClients().get(0).getExpenditures().get(i).getCorrection()); + } + } + return null; + } + + @Click(SAVE_EXPENDITURE_BUTTON) + HypokalkulackaPage clickSaveExpenditureButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientIncomeBusinessDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientIncomeBusinessDetailPage.java new file mode 100644 index 0000000..316c4fa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientIncomeBusinessDetailPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface HypokalkulackaClientIncomeBusinessDetailPage extends HyposPageFlow { + String INCOME_BUSINESS_DIV = "//div[@id='income-business-detailed']"; + String SAVE_INCOME_DETAIL_BUTTON = INCOME_BUSINESS_DIV + "//input[@value='Uložit']"; + String PAID_TO_MMB_CHECKBOX = INCOME_BUSINESS_DIV + "//input[@id='b-paid-to-mmb-n']"; + String PAID_TAX_INPUT = INCOME_BUSINESS_DIV + "//input[@id='b-paid-tax']"; + String CORP_PHONE_INPUT = INCOME_BUSINESS_DIV + "//input[@id='corp_phone']"; + + @Click(SAVE_INCOME_DETAIL_BUTTON) + HypokalkulackaClientIncomePage clickSaveIncomeBusinessDetail(); + + @Click(PAID_TO_MMB_CHECKBOX) + HypokalkulackaClientIncomeBusinessDetailPage clickBusinessPaidToMmb(); + + @TypeInto(value = PAID_TAX_INPUT, clear = true) + HypokalkulackaClientIncomeBusinessDetailPage fillPaidTax(int paidTax); + + @TypeInto(value = CORP_PHONE_INPUT, clear = true) + HypokalkulackaClientIncomeBusinessDetailPage fillCorpPhone(String corpPhone); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientIncomeEmployeeDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientIncomeEmployeeDetailPage.java new file mode 100644 index 0000000..cbdd5cb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientIncomeEmployeeDetailPage.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface HypokalkulackaClientIncomeEmployeeDetailPage extends HyposPageFlow { + String MAIN_INCOME_DEATIAL_DIV = "//div[@id='income-main-detailed']"; + String CASH_SALARY_NO_RADIO = MAIN_INCOME_DEATIAL_DIV + "//input[@id='q-cash-salary-n']"; + String EMPLOYEE_ABROAD_NO_RADIO = MAIN_INCOME_DEATIAL_DIV + "//input[@id='q-employee-abroad-n']"; + String EMPLOYEE_SHAREHOLDER_NO_RADIO = MAIN_INCOME_DEATIAL_DIV + "//input[@id='q-employee-shareholder-n']"; + String PAID_TO_MMB_NO_RADIO = MAIN_INCOME_DEATIAL_DIV + "//input[@id='d-paid-to-mmb-n']"; + String EMPLOYMENT_AGENCY_NO_RADIO = MAIN_INCOME_DEATIAL_DIV + "//input[@id='d-employment-agency-n']"; + String EMPLOYMENT_PHONE = MAIN_INCOME_DEATIAL_DIV + "//input[@id='corp_phone']"; + String SAVE_INCOME_DETAIL_BUTTON = MAIN_INCOME_DEATIAL_DIV + "//input[@value='Uložit']"; + + @Click(CASH_SALARY_NO_RADIO) + HypokalkulackaClientIncomeEmployeeDetailPage clickCashSalaryNoRadio(); + + @Click(EMPLOYEE_ABROAD_NO_RADIO) + HypokalkulackaClientIncomeEmployeeDetailPage clickEmployeeAbroadNoRadio(); + + @Click(EMPLOYEE_SHAREHOLDER_NO_RADIO) + HypokalkulackaClientIncomeEmployeeDetailPage clickEmployeeShareholderNoRadio(); + + @Click(PAID_TO_MMB_NO_RADIO) + HypokalkulackaClientIncomeEmployeeDetailPage clickPaidToMmbNoRadio(); + + @Click(EMPLOYMENT_AGENCY_NO_RADIO) + HypokalkulackaClientIncomeEmployeeDetailPage clickEmploymentAgencyNoRadio(); + + @TypeInto(value = EMPLOYMENT_PHONE, clear = true) + HypokalkulackaClientIncomeEmployeeDetailPage fillPhone(String phone); + + @Click(SAVE_INCOME_DETAIL_BUTTON) + HypokalkulackaClientIncomePage clickSaveIncomeEmployeeDetail(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientIncomePage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientIncomePage.java new file mode 100644 index 0000000..8143c5c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaClientIncomePage.java @@ -0,0 +1,193 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.dsl.util.data.hypos.OtherIncome; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; + +import java.util.Optional; + +import static cz.moneta.test.dsl.hypos.enums.OtherIncomeType.*; +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaClientIncomePage.SAVE_INCOME_BUTTON; + +@Wait(value = SAVE_INCOME_BUTTON, until = Until.VISIBLE) +public interface HypokalkulackaClientIncomePage extends HyposPageFlow, StoreAccessor { + String MAIN_INCOME_TABLE = "//table[@id='form-main-income']"; + + String EMPLOYEE_INCOME_GROSS_INPUT = MAIN_INCOME_TABLE + "//input[@id='income-salary-gross']"; + String EMPLOYEE_INCOME_NET_INPUT = MAIN_INCOME_TABLE + "//input[@id='income-salary-net']"; + String EMPLOYEE_INCOME_CURRENCY_SELECT = MAIN_INCOME_TABLE + "//select[@id='income-employee-currency']"; + String EMPLOYEE_INCOME_ICO_INPUT = MAIN_INCOME_TABLE + "//input[@id='income-ico']"; + String EMPLOYEE_INCOME_START_DATE_INPUT = MAIN_INCOME_TABLE + "//input[@id='income-emp-date']"; + String EMPLOYEE_INCOME_TYPE_INPUT = MAIN_INCOME_TABLE + "//select[@id='income-type']"; + String EMPLOYEE_INCOME_PROFESSION_INPUT = MAIN_INCOME_TABLE + "//input[@id='income-profession']"; + String EMPLOYEE_INCOME_PHONE_INPUT = MAIN_INCOME_TABLE + "//input[@id='income-corp-phone']"; + String EMPLOYEE_INCOME_SPECIAL_RELATION_CHECKBOX = MAIN_INCOME_TABLE + "//input[@id='income-special-relation-no']"; + String EMPLOYEE_INCOME_DETAIL_BUTTON = MAIN_INCOME_TABLE + "//a[contains(@class,'income-main-detailed-link')]"; + + String BUSINESS_INCOME_TURNOVER_LATEST_INPUT = "//input[@id='income-business-turnover-latest']"; + String BUSINESS_INCOME_TAX_BASE_LATEST_INPUT = "//input[@id='income-business-tax-base-latest']"; + String BUSINESS_INCOME_PAID_TAX_INPUT = "//input[@id='income-business-paid-tax']"; + String BUSINESS_INCOME_COST_ACCOUNTING_SELECT = "//select[@id='income-business-cost-accounting']"; + String BUSINESS_INCOME_CODE_INPUT = "//input[@id='income-business-code']/preceding-sibling::input"; + String BUSINESS_INCOME_CODE_LINK = "//ul[contains(@class,'ui-autocomplete')]//a[contains(text(),'%s')]"; + String BUSINESS_INCOME_TURNOVER_PENULTIMATE_INPUT = "//input[@id='income-business-turnover-penultimate']"; + String BUSINESS_INCOME_TAX_BASE_PENULTIMATE_INPUT = "//input[@id='income-business-tax-base-penultimate']"; + String BUSINESS_INCOME_ICO_INPUT = "//input[@id='income-business-ico']"; + String BUSINESS_INCOME_START_INPUT = "//input[@id='income-business-start']"; + String BUSINESS_INCOME_CURRENCY_SELECT = "//select[@id='income-business-currency']"; + String BUSINESS_INCOME_PHONE_INPUT = "//input[@id='income-business-corp-phone']"; + String BUSINESS_INCOME_DETAIL_BUTTON = "//a[contains(@class,'income-business-detailed-link')]"; + + String OTHER_INCOME_INPUT = "//input[@id='income-%s']"; + String OTHER_INCOME_CURRENCY_SELECT = "//select[@id='income-%s-currency']"; + String OTHER_INCOME_PAID_TO_MMB_CHECKBOX = "//input[@id='%1$s-paid-to-mmb-%2$s']"; + String OTHER_INCOME_PARENTAL_CONTRIBUTION_DATE = "//input[@id='income-parental-contribution-date']"; + String OTHER_INCOME_COOPERATOVE_FLAT_RENTAL = "//input[@id='q-cooperative-flat-rental-n']"; + String OTHER_INCOME_OWN_COMPANY_RENTAL = "//input[@id='q-own-company-rental-n']"; + String OTHER_INCOME_OWN_PLEDGE_RENTAL = "//input[@id='q-own-pledge-rental-n']"; + String SAVE_INCOME_BUTTON = MAIN_INCOME_TABLE + "//following::div/input[@value='Uložit']"; + String INCOME_TAB = "(//div[@id='income-tabs']//span[contains(text(),'%1$s')])[%2$s]"; + String ADD_INCOME = "//div[@id='add-income']"; + String ADD_INCOME_SUBMIT = "//button[@id='submit-add-income']"; + + @TypeInto(EMPLOYEE_INCOME_GROSS_INPUT) + HypokalkulackaClientIncomePage fillGrossSalary(int grossSalary); + + @TypeInto(EMPLOYEE_INCOME_NET_INPUT) + HypokalkulackaClientIncomePage fillNetSalary(int netSalary); + + @Select(EMPLOYEE_INCOME_CURRENCY_SELECT) + HypokalkulackaClientIncomePage selectCurrencyForEmployee(String currency); + + @TypeInto(EMPLOYEE_INCOME_ICO_INPUT) + @KeyPress(value = Key.ENTER, andWait = @Wait(value = LOADER, until = Until.GONE)) + HypokalkulackaClientIncomePage fillEmployerIco(String ico); + + @TypeInto(EMPLOYEE_INCOME_START_DATE_INPUT) + HypokalkulackaClientIncomePage fillEmploymentStartDate(String startDate); + + @Select(EMPLOYEE_INCOME_TYPE_INPUT) + HypokalkulackaClientIncomePage fillEmploymentType(String employmentType); + + @TypeInto(EMPLOYEE_INCOME_PROFESSION_INPUT) + HypokalkulackaClientIncomePage fillProfession(String profession); + + @Click(EMPLOYEE_INCOME_SPECIAL_RELATION_CHECKBOX) + HypokalkulackaClientIncomePage clickSpecialRelation(); + + @TypeInto(value = EMPLOYEE_INCOME_PHONE_INPUT, clear = true) + HypokalkulackaClientIncomePage fillCorpPhone(String phone); + + @Click(EMPLOYEE_INCOME_DETAIL_BUTTON) + HypokalkulackaClientIncomeEmployeeDetailPage clickIncomeEmployeeDetails(); + + @Click(BUSINESS_INCOME_DETAIL_BUTTON) + HypokalkulackaClientIncomeBusinessDetailPage clickIncomeBusinessDetails(); + + @TypeInto(BUSINESS_INCOME_TURNOVER_LATEST_INPUT) + HypokalkulackaClientIncomePage fillTurnoverLatest(int turnoverLatest); + + @TypeInto(BUSINESS_INCOME_TAX_BASE_LATEST_INPUT) + HypokalkulackaClientIncomePage fillTaxBaseLatest(int taxBaseLatest); + + @TypeInto(BUSINESS_INCOME_PAID_TAX_INPUT) + HypokalkulackaClientIncomePage fillPaidTax(int paidTax); + + @TypeInto(value = BUSINESS_INCOME_CODE_INPUT) + HypokalkulackaClientIncomePage fillCode(String code); + + @Click(value = BUSINESS_INCOME_CODE_LINK, isStringDynamicXpath = true) + HypokalkulackaClientIncomePage clickCode(String code); + + @TypeInto(BUSINESS_INCOME_TURNOVER_PENULTIMATE_INPUT) + HypokalkulackaClientIncomePage fillTurnoverPenultimate(int turnoverPenultimate); + + @TypeInto(BUSINESS_INCOME_TAX_BASE_PENULTIMATE_INPUT) + HypokalkulackaClientIncomePage fillTaxBasePenultimate(int taxBasePenultimate); + + @TypeInto(BUSINESS_INCOME_ICO_INPUT) + HypokalkulackaClientIncomePage fillBusinessIco(String ico); + + @TypeInto(BUSINESS_INCOME_START_INPUT) + HypokalkulackaClientIncomePage fillBusinessStartDate(String businessStartDate); + + @TypeInto(value = BUSINESS_INCOME_PHONE_INPUT, clear = true) + HypokalkulackaClientIncomePage fillBusinessCorpPhone(String phone); + + @Select(BUSINESS_INCOME_COST_ACCOUNTING_SELECT) + HypokalkulackaClientIncomePage selectCostAccounting(String costAccounting); + + @Select(value = BUSINESS_INCOME_CURRENCY_SELECT, andWait = @Wait(value = SAVE_INCOME_BUTTON, until = Until.VISIBLE)) + HypokalkulackaClientIncomePage selectCurrencyForBusiness(String currency); + + @Click(value = SAVE_INCOME_BUTTON) + HypokalkulackaPage clickSaveIncomeButton(); + + @CustomAction + default HypokalkulackaClientIncomePage selectTab(String incomeType, String income) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> String.format(INCOME_TAB, incomeType, income)); + return null; + } + + @CustomAction + default HypokalkulackaPage addOtherIncomeEmployee(HyposContract hyposContract, int client) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + hyposContract.getClients().get(client).getEmployeeIncomes().stream() + .skip(1) + .forEach(employeeIncome -> { + endpoint.click(() -> ADD_INCOME); + endpoint.click(() -> ADD_INCOME_SUBMIT); + endpoint.type(() -> EMPLOYEE_INCOME_GROSS_INPUT, String.valueOf(employeeIncome.getGrossSalary()), false); + endpoint.type(() -> EMPLOYEE_INCOME_NET_INPUT, String.valueOf(employeeIncome.getNetSalary()), false); + endpoint.type(() -> EMPLOYEE_INCOME_ICO_INPUT, employeeIncome.getIco(), false); + endpoint.type(() -> EMPLOYEE_INCOME_START_DATE_INPUT, employeeIncome.getStartDate(), false); + endpoint.selectByVisibleText(EMPLOYEE_INCOME_TYPE_INPUT, employeeIncome.getType()); + endpoint.type(() -> EMPLOYEE_INCOME_PHONE_INPUT, employeeIncome.getPhone(), true); + endpoint.type(() -> EMPLOYEE_INCOME_PROFESSION_INPUT, employeeIncome.getProfession(), false); + endpoint.click(() -> EMPLOYEE_INCOME_SPECIAL_RELATION_CHECKBOX); + endpoint.selectByVisibleText(EMPLOYEE_INCOME_CURRENCY_SELECT, employeeIncome.getCurrency()); + }); + endpoint.click(() -> SAVE_INCOME_BUTTON); + return null; + } + + @CustomAction + default HypokalkulackaClientIncomePage setOtherIncomes(HyposContract hyposContract, int client) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + hyposContract.getClients().get(client).getOtherIncomes() + .forEach(otherIncome -> { + endpoint.type(() -> String.format(OTHER_INCOME_INPUT, otherIncome.getType()), otherIncome.getAmount(), false); + endpoint.selectByVisibleText(String.format(OTHER_INCOME_CURRENCY_SELECT, otherIncome.getType()), otherIncome.getCurrency()); + if (otherIncome.getPaidToMmb() != null) { + endpoint.click(() -> String.format(OTHER_INCOME_PAID_TO_MMB_CHECKBOX, otherIncome.getType(), otherIncome.getPaidToMmb())); + } + if (otherIncome.getType().equals(PARENTAL_CONTRIBUTION.getValue())) { + endpoint.type(() -> OTHER_INCOME_PARENTAL_CONTRIBUTION_DATE, + DateUtils.getTodayDateIncrementedByDays(-30, "dd.MM.yyyy"), false); + } + }); + return null; + } + + @CustomAction + default HypokalkulackaClientIncomePage clickIncomesRental(HyposContract hyposContract, int client) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + Optional rentalIncome = hyposContract.getClients().get(client).getOtherIncomes().stream() + .filter(type -> type.getType().equals(RENTAL_ALLOWANCE_GROSS.getValue()) + || type.getType().equals(RENTAL_ALLOWANCE_TAX_RETURN.getValue()) + || type.getType().equals(RENTAL_ALLOWANCE.getValue())) + .findAny(); + + if (rentalIncome.isPresent()) { + endpoint.click(() -> OTHER_INCOME_COOPERATOVE_FLAT_RENTAL); + endpoint.click(() -> OTHER_INCOME_OWN_COMPANY_RENTAL); + endpoint.click(() -> OTHER_INCOME_OWN_PLEDGE_RENTAL); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaDocumentSignature.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaDocumentSignature.java new file mode 100644 index 0000000..37d9a17 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaDocumentSignature.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import org.openqa.selenium.TimeoutException; + +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaDocumentSignature.SAVE_SIGNATURE_BUTTON; + +@Wait(value = SAVE_SIGNATURE_BUTTON, until = Until.VISIBLE) +public interface HypokalkulackaDocumentSignature extends HyposPageFlow, StoreAccessor { + String DOCUMENT_SUGNATURE_DIV = "//div[@id='document-signature']"; + String SIGNATURE_BYBANK_INPUT = DOCUMENT_SUGNATURE_DIV + "//input[@id='sign-date-bank']"; + String SIGNATURE_BYCLIENT_INPUT = DOCUMENT_SUGNATURE_DIV + "//input[@id='sign-date-client']"; + String SAVE_SIGNATURE_BUTTON = DOCUMENT_SUGNATURE_DIV + "//button[@id='butt-sign-doc']"; + + @TypeInto(value = SIGNATURE_BYBANK_INPUT, andWait = @Wait(value = SAVE_SIGNATURE_BUTTON, until = Until.VISIBLE)) + HypokalkulackaDocumentSignature fillSignatureByBank(String signatureDate); + + @TypeInto(value = SIGNATURE_BYCLIENT_INPUT, andWait = @Wait(value = SAVE_SIGNATURE_BUTTON, until = Until.VISIBLE)) + HypokalkulackaDocumentSignature fillSignatureByClient(String signatureDate); + + @CustomAction + default HypokalkulackaPage clickSaveDocumentSignatures() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> SAVE_SIGNATURE_BUTTON); + try { + endpoint.acceptAlert(60); //ne vzdy se zobrazi + } catch (TimeoutException e) { + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaEditLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaEditLoanPage.java new file mode 100644 index 0000000..3c1b2a6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaEditLoanPage.java @@ -0,0 +1,83 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.hypos.enums.CardifType; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaEditLoanPage.SAVE_LOAN_BUTTON; + +@Wait(value = SAVE_LOAN_BUTTON, until = Until.VISIBLE) +public interface HypokalkulackaEditLoanPage extends HyposPageFlow, StoreAccessor { + String LOAN_INPUT_DIV = "//div[@id='loan-input']"; + String LOAN_PRODUCT_SELECT = LOAN_INPUT_DIV + "//select[@id='loan-product']"; + String LOAN_ACTION_SELECT = LOAN_INPUT_DIV + "//select[@id='loan-actions']"; + String LOAN_AMOUNT_INPUT = LOAN_INPUT_DIV + "//input[@id='loan-amount']"; + String LOAN_MATURITY_INPUT = LOAN_INPUT_DIV + "//input[@id='loan-maturity-years']"; + String LOAN_OWN_RESOURCES_INPUT = LOAN_INPUT_DIV + "//input[@id='loan-own-resources']"; + String LOAN_OTHER_RESOURCES_INPUT = LOAN_INPUT_DIV + "//input[@id='loan-other-resources']"; + String TOTAL_INVESTMENT_INTENTION_INPUT = LOAN_INPUT_DIV + "//input[@id='total-investment-intention']"; + String LOAN_OBJECT_SELECT = LOAN_INPUT_DIV + "//select[@id='loan-object']"; + String REALTY_PURCHASE_REASON_SELECT = LOAN_INPUT_DIV + "//select[@id='realty-purchase-reason']"; + String LOAN_PURPOSE_TYPE_SELECT = "(" + LOAN_INPUT_DIV + "//table[@id='loan-purposes']//select[contains(@class,'purposes')])[%s]"; + String LOAN_PURPOSE_AMOUNT_INPUT = "(" + LOAN_INPUT_DIV + "//table[@id='loan-purposes']//input[contains(@class,'purpose-amount')])[%s]"; + String LOAN_CARDIF_SELECT = LOAN_INPUT_DIV + "//label[@for='loan-cardif-%s']"; + String LOAN_CARDIF_CLIENT_SELECT = LOAN_INPUT_DIV + "//select[@id='loan-cardif-client']"; + String SAVE_LOAN_BUTTON = LOAN_INPUT_DIV + "//button[@id='calc-loan-store']"; + + @TypeInto(value = LOAN_AMOUNT_INPUT, clear = true) + HypokalkulackaEditLoanPage fillLoanAmount(int loanAmount); + + @TypeInto(value = LOAN_MATURITY_INPUT, clear = true) + HypokalkulackaEditLoanPage fillLoanMaturity(int loanMaturity); + + @TypeInto(value = LOAN_OWN_RESOURCES_INPUT, clear = true) + HypokalkulackaEditLoanPage fillOwnResources(int amount); + + @TypeInto(value = LOAN_OTHER_RESOURCES_INPUT, clear = true) + HypokalkulackaEditLoanPage fillOtherResources(int amount); + + @TypeInto(value = TOTAL_INVESTMENT_INTENTION_INPUT, clear = true) + HypokalkulackaEditLoanPage fillTotalInvestmentIntention(int loanAmount); + + @Select(LOAN_PRODUCT_SELECT) + HypokalkulackaEditLoanPage selectLoanProduct(String loanProduct); + + @Select(LOAN_ACTION_SELECT) + HypokalkulackaEditLoanPage selectLoanAction(String loanAction); + + @Select(LOAN_OBJECT_SELECT) + HypokalkulackaEditLoanPage selectLoanObject(String loanObject); + + @Select(REALTY_PURCHASE_REASON_SELECT) + HypokalkulackaEditLoanPage selectRealtyPurchaseReason(String reason); + + @Click(SAVE_LOAN_BUTTON) + HypokalkulackaPage clickSaveLoanButton(); + + @CustomAction + default HypokalkulackaEditLoanPage addLoanPurposes(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + for (int i = 0; i < hyposContract.getLoanPurposes().size(); i++) { + String loanPurpose = String.valueOf(i + 1); + endpoint.selectByValue(String.format(LOAN_PURPOSE_TYPE_SELECT, loanPurpose), hyposContract.getLoanPurposes().get(i).getType()); + endpoint.type(() -> String.format(LOAN_PURPOSE_AMOUNT_INPUT, loanPurpose), hyposContract.getLoanPurposes().get(i).getAmount(), true); + } + return null; + } + + @CustomAction + default HypokalkulackaEditLoanPage addCardif(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + hyposContract.getClients().stream() + .filter(cardif -> !cardif.getCardifType().equals(CardifType.WITHOUT_CARDIF.getValue())) + .forEach(client -> { + endpoint.click(() -> String.format(LOAN_CARDIF_SELECT, client.getCardifType())); + endpoint.selectByVisibleText(LOAN_CARDIF_CLIENT_SELECT, client.getNonClient().fullName()); + }); + + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaHouseholdPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaHouseholdPage.java new file mode 100644 index 0000000..c4d9475 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaHouseholdPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaHouseholdPage.SAVE_HOUSEHOLD_BUTTON; + +@Wait(value = SAVE_HOUSEHOLD_BUTTON, until = Until.VISIBLE) +public interface HypokalkulackaHouseholdPage extends HyposPageFlow { + String HOUSEHOLD_INPUT_DIV = "//div[@id='household-input']"; + String HOUSEHOLD_INCOME_INPUT = HOUSEHOLD_INPUT_DIV + "//input[@id='household-income']"; + String HOUSEHOLD_WITHOUT_INCOME_INPUT = HOUSEHOLD_INPUT_DIV + "//input[@id='household-without-income']"; + + String SAVE_HOUSEHOLD_BUTTON = HOUSEHOLD_INPUT_DIV + "//input[@value='Uložit']"; + + @TypeInto(HOUSEHOLD_INCOME_INPUT) + HypokalkulackaHouseholdPage fillHouseholdwithIncome(int withIncome); + + @TypeInto(HOUSEHOLD_WITHOUT_INCOME_INPUT) + HypokalkulackaHouseholdPage fillHouseholdWithoutIncome(int withoutIncome); + + @Click(SAVE_HOUSEHOLD_BUTTON) + HypokalkulackaPage clickSaveExpenditureButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaLoanApplicationPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaLoanApplicationPage.java new file mode 100644 index 0000000..fe837a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaLoanApplicationPage.java @@ -0,0 +1,96 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.hypos.enums.YesNo; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaLoanApplicationPage.SAVE_APPLICATION_FORM_BUTTON; +import static cz.moneta.test.dsl.hypos.tasks.HyposTasks.defaultDateFormat; + +@Wait(value = SAVE_APPLICATION_FORM_BUTTON, until = Until.VISIBLE) +public interface HypokalkulackaLoanApplicationPage extends HyposPageFlow, StoreAccessor { + String APPLICATION_FORM_DIV = "//div[@id='application-form']"; + String BRANCH_SELECT = APPLICATION_FORM_DIV + "//select[@id='appl-branch-la']"; + String BIRTH_PLACE_INPUT = APPLICATION_FORM_DIV + "//input[@id='appl-natal-place-%s']"; + String CLIENT_ID_PAPERS_LINK = APPLICATION_FORM_DIV + "//a[@id='appl-identity%1$s-link-%2$s']"; + String PEP_CHECKBOX = APPLICATION_FORM_DIV + "//input[@name='is_polliticaly_exposed-%1$s' and @value=%2$s]"; + String PEP_REASON = APPLICATION_FORM_DIV + "//textarea[@id='appl-pol-exp-reason-%1$s']"; + String SAVE_APPLICATION_FORM_BUTTON = APPLICATION_FORM_DIV + "//button[text()='Uložit']"; + + String IDENTITY_INPUT_DIV = "//div[@id='identity-form']"; + String IDENTITY_TYPE_SELECT = IDENTITY_INPUT_DIV + "//select[@id='ident-type']"; + String IDENTITY_NUMBER_INPUT = IDENTITY_INPUT_DIV + "//input[@id='ident-value']"; + String IDENTITY_EXPIRY_DATE_INPUT = IDENTITY_INPUT_DIV + "//input[@id='ident-expiry']"; + String IDENTITY_SAVE_BUTTON = IDENTITY_INPUT_DIV + "//button[text()='Uložit']"; + String IDENTITY_LOADER_DIV = "//div[@class='loading-overlay']"; + + @Select(BRANCH_SELECT) + HypokalkulackaLoanApplicationPage selectContactBranch(String branch); + + @Click(SAVE_APPLICATION_FORM_BUTTON) + HypokalkulackaPage clickSaveApplicationButton(); + + @CustomAction + default HypokalkulackaLoanApplicationPage addBirthPlace(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + for (int i = 0; i < hyposContract.getClients().size(); i++) { + String client = String.valueOf(i + 1); + endpoint.type(() -> String.format(BIRTH_PLACE_INPUT, client), hyposContract.getClients().get(i).getNonClient().placeOfBirth(), false); + } + return null; + } + + @CustomAction + default HypokalkulackaLoanApplicationPage selectPep(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + for (int i = 0; i < hyposContract.getClients().size(); i++) { + String client = String.valueOf(i + 1); + String pep = hyposContract.getClients().get(i).getPep(); + endpoint.click(() -> String.format(PEP_CHECKBOX, client, pep)); + if (pep.equals(YesNo.YES.getValue())) { + endpoint.type(() -> String.format(PEP_REASON, client), "Test PEP", false); + } + } + return null; + } + + @CustomAction + default HypokalkulackaLoanApplicationPage addFirstIdentity(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + for (int i = 0; i < hyposContract.getClients().size(); i++) { + String client = String.valueOf(i + 1); + endpoint.click(() -> String.format(CLIENT_ID_PAPERS_LINK, 1, client)); + endpoint.selectByVisibleText(IDENTITY_TYPE_SELECT, hyposContract.getClients().get(i).getFirstIdentityType()); + endpoint.waitForElementsToLoad(20, Until.GONE, IDENTITY_LOADER_DIV); + endpoint.type(() -> IDENTITY_NUMBER_INPUT, hyposContract.getClients().get(i).getNonClient().idCardNumber(), false); + endpoint.waitForElementsToLoad(20, Until.GONE, IDENTITY_LOADER_DIV); + endpoint.type(() -> IDENTITY_EXPIRY_DATE_INPUT, DateUtils.getDateWithFormat(hyposContract.getClients().get(i).getNonClient().idCardExpiredRaw(), defaultDateFormat), false); + endpoint.waitForElementsToLoad(20, Until.GONE, IDENTITY_LOADER_DIV); + endpoint.waitForElementsToLoad(10, Until.VISIBLE, IDENTITY_SAVE_BUTTON); + endpoint.click(() -> IDENTITY_SAVE_BUTTON); + } + return null; + } + + @CustomAction + default HypokalkulackaLoanApplicationPage addSecondIdentity(HyposContract hyposContract) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + for (int i = 0; i < hyposContract.getClients().size(); i++) { + String client = String.valueOf(i + 1); + endpoint.click(() -> String.format(CLIENT_ID_PAPERS_LINK, 2, client)); + endpoint.selectByVisibleText(IDENTITY_TYPE_SELECT, hyposContract.getClients().get(i).getSecondIdentityType()); + endpoint.waitForElementsToLoad(20, Until.GONE, IDENTITY_LOADER_DIV); + endpoint.type(() -> IDENTITY_NUMBER_INPUT, hyposContract.getClients().get(i).getNonClient().idCardNumber(), false); + endpoint.waitForElementsToLoad(20, Until.GONE, IDENTITY_LOADER_DIV); + endpoint.type(() -> IDENTITY_EXPIRY_DATE_INPUT, DateUtils.getDateWithFormat(hyposContract.getClients().get(i).getNonClient().idCardExpiredRaw(), defaultDateFormat), false); + endpoint.waitForElementsToLoad(20, Until.GONE, IDENTITY_LOADER_DIV); + endpoint.waitForElementsToLoad(10, Until.VISIBLE, IDENTITY_SAVE_BUTTON); + endpoint.click(() -> IDENTITY_SAVE_BUTTON); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaPage.java new file mode 100644 index 0000000..3ce36f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaPage.java @@ -0,0 +1,163 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.hypos.pages.contract.ContractHistoryPage; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.hypos.enums.Client.FIRST_CLIENT; +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage.ADD_CLIENT_BUTTON; +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage.HYPOKALKULACKA_LOADER; + +@Wait(ADD_CLIENT_BUTTON) +@Wait(value = HYPOKALKULACKA_LOADER, until = Until.GONE) +public interface HypokalkulackaPage extends HyposPageFlow, Menu, StoreAccessor { + String HYPOKALKULACKA_VERSION_SELECT = "//select[@id='versions']"; + String HYPOKALKULACKA_LATEST_VERSION = HYPOKALKULACKA_VERSION_SELECT + "/option[@class='latest']"; + String ADD_CLIENT_BUTTON = "//div[@id='col-client']//a[@id='butt-new-client']"; + String ADD_PERMANENT_ADDRESS_BUTTON = "//div[@id='col-client']//a[contains(@class,'permanent-address') and text()='Zadat']"; + String ADD_INCOME_BUTTON = "(//table[contains(@class,'income')]//a[contains(@class,'income-fullname')])[%s]"; + String ADD_EXPENDITURE_BUTTON = "(//table[contains(@class,'expenditure')]//td[contains(@class,'expenditure-fullname')]/a[not(contains(@class, 'no-name'))])[%s]"; + String ADD_HOUSEHOLD_INCOME_BUTTON = "(//table[contains(@class,'household')]//a[@class='household-edit'])[%s]"; + String ADD_REALTY_BUTTON = "//div[@id='col-section']//a[@id='butt-new-realty']"; + String EDIT_LOAN_BUTTON = "//div[@id='col-loan']//a[@id='butt-edit-loan']"; + String EDIT_APPLICATION_BUTTON = "//div[@id='col-loan']//a[@id='butt-edit-application']"; + String FIRST_EXPECTED_DRAW_DATE_INPUT = "//input[@id='first-expected-draw-date']"; + String CALCULATE_BUTTON = "//div[@id='col-calculation']//a[@id='butt-calculate'] "; + String EXPENDITURE_TABLE = "//span[text()='Výdaje klientů']//following::table[1][not(contains(@style,'display: none'))]"; + + String DOCUMENTS_DIV = "//div[@id='col-docs']"; + String GENERATE_AGREEMENTS101_BUTTON = DOCUMENTS_DIV + "//span[@id='generate-link-186']/a"; + String GENERATE_AGREEMENTS101_LOADER_IMG = DOCUMENTS_DIV + "//span[@id='generate-link-186']/img[@src='/img/common/loadingAnimationSmall.gif']"; + String SIGN_AGREEMENTS101_BUTTON = DOCUMENTS_DIV + "//span[@id='sign-link-186']/a"; + String GENERATE_APPLICATION_BUTTON = DOCUMENTS_DIV + "//span[@id='generate-link-333']/a"; + String GENERATE_APPLICATION_LOADER_IMG = DOCUMENTS_DIV + "//span[@id='generate-link-333']/img[@src='/img/common/loadingAnimationSmall.gif']"; + String SIGN_APPLICATION_BUTTON = DOCUMENTS_DIV + "//span[@id='sign-link-333']/a"; + + String SAVE_HYPOKALKULACKA_BUTTON_SPAN = "//span[@id='save-version' and not(contains(@style,'display: none'))]"; + String SAVE_HYPOKALKULACKA_BUTTON = SAVE_HYPOKALKULACKA_BUTTON_SPAN + "/input[@value='Uložit']"; + String SAVE_NEW_HYPOKALKULACKA_VERSION_BUTTON = SAVE_HYPOKALKULACKA_BUTTON_SPAN + "/input[@value='Uložit novou verzi']"; + + String HYPOKALKULACKA_CALCULATE_LOADER = "//div[@id='col-calculation-container']//div[@class='loading-overlay']"; + String HYPOKALKULACKA_LOADER = "//body/div[@class='loading' and contains(@style,'display: block')]"; + + + String HYPOKALKULACKA_ID = "HYPOKALKULACKA_ID"; + String HYPOKALKULACKA_VERSION_SAVED_ALERT_TEXT = "Hypokalkulačka byla úspěšně uložena."; + + HypokalkulackaPage onHypokalkulackaPage(); + + @Click(ADD_CLIENT_BUTTON) + HypokalkulackaClientDetailPage clickAddClientButton(); + + @Click(ADD_PERMANENT_ADDRESS_BUTTON) + HypokalkulackaAddressPage clickAddPermanentAddress(); + + @Click(value = ADD_INCOME_BUTTON, isStringDynamicXpath = true) + HypokalkulackaClientIncomePage clickClientIncomeButton(String client); + + @Click(value = ADD_EXPENDITURE_BUTTON, isStringDynamicXpath = true) + HypokalkulackaClientExpenditurePage clickClientExpenditureButton(String client); + + @Click(value = ADD_HOUSEHOLD_INCOME_BUTTON, isStringDynamicXpath = true) + HypokalkulackaHouseholdPage clickHouseholdButton(String household); + + @Click(ADD_REALTY_BUTTON) + HypokalkulackaRealtyPage clickAddRealtyButton(); + + @Click(EDIT_LOAN_BUTTON) + HypokalkulackaEditLoanPage clickEditLoanButton(); + + @Click(EDIT_APPLICATION_BUTTON) + HypokalkulackaLoanApplicationPage clickEditApplicationButton(); + + @Click(value = CALCULATE_BUTTON, andWait = @Wait(value = HYPOKALKULACKA_CALCULATE_LOADER, until = Until.GONE)) + HypokalkulackaPage clickCalculateButton(); + + @TypeInto(FIRST_EXPECTED_DRAW_DATE_INPUT) + HypokalkulackaPage fillFirstExpectedDrawDate(String drawDate); + + @Wait(value = GENERATE_AGREEMENTS101_BUTTON, waitSecondsForElement = 60, until = Until.VISIBLE) + @Click(value = GENERATE_AGREEMENTS101_BUTTON, andWait = @Wait(value = GENERATE_AGREEMENTS101_LOADER_IMG, waitSecondsForElement = 60, until = Until.GONE)) + HypokalkulackaPage clickGenerateAgreements101(); + + @CustomAction + default HypokalkulackaDocumentSignature clickSignAgreements101() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.waitForElementsToLoad(60, Until.VISIBLE, SIGN_AGREEMENTS101_BUTTON); + endpoint.click(() -> SIGN_AGREEMENTS101_BUTTON); + endpoint.acceptAlert(20); + return null; + } + + @CustomAction + default HypokalkulackaPage clickGenerateMortgageApplication() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.waitForElementsToLoad(60, Until.VISIBLE, GENERATE_APPLICATION_BUTTON); + endpoint.click(() -> GENERATE_APPLICATION_BUTTON); + endpoint.acceptAlert(20); + endpoint.acceptAlert(60); + endpoint.waitForElementsToLoad(60, Until.GONE, GENERATE_APPLICATION_LOADER_IMG); + return null; + } + + @CustomAction + default HypokalkulackaDocumentSignature clickSignMortgageApplication() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.waitForElementsToLoad(60, Until.VISIBLE, SIGN_APPLICATION_BUTTON); + endpoint.click(() -> SIGN_APPLICATION_BUTTON); + endpoint.acceptAlert(20); + return null; + } + + @CustomAction + default HypokalkulackaPage getHypokalkulackaVersion(Harness harness) { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + harness.store(HYPOKALKULACKA_ID, endpoint.getAttribute(HYPOKALKULACKA_LATEST_VERSION, "value")); + return null; + } + + @CustomAction + default HypokalkulackaPage clickSaveNewHypokalkulackaVersionAndAcceptAlertText() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.waitForElementsToLoad(30, EXPENDITURE_TABLE); + endpoint.waitForElementsToLoad(30, Until.GONE, HYPOKALKULACKA_CALCULATE_LOADER); + endpoint.waitForElementsToLoad(10, Until.CLICKABLE, SAVE_NEW_HYPOKALKULACKA_VERSION_BUTTON); + endpoint.click(() -> SAVE_NEW_HYPOKALKULACKA_VERSION_BUTTON); + String alertText = endpoint.getAlertText(60); + Assertions.assertEquals(alertText, HYPOKALKULACKA_VERSION_SAVED_ALERT_TEXT, String.format("Alert text is not: %s", HYPOKALKULACKA_VERSION_SAVED_ALERT_TEXT)); + endpoint.acceptAlert(60); + return null; + } + + @CustomAction + default HypokalkulackaPage clickSaveHypokalkulackaButtonAndCheckAlertText() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.waitForElementsToLoad(30, EXPENDITURE_TABLE); + endpoint.waitForElementsToLoad(30, Until.GONE, HYPOKALKULACKA_CALCULATE_LOADER); + endpoint.waitForElementsToLoad(10, Until.CLICKABLE, SAVE_HYPOKALKULACKA_BUTTON); + endpoint.click(() -> SAVE_HYPOKALKULACKA_BUTTON); + String alertText = endpoint.getAlertText(60); + Assertions.assertEquals(alertText, HYPOKALKULACKA_VERSION_SAVED_ALERT_TEXT, String.format("Alert text is not: %s", HYPOKALKULACKA_VERSION_SAVED_ALERT_TEXT)); + endpoint.acceptAlert(60); + return null; + } + + @CustomAction + default ContractHistoryPage closeHypokalkulackaAndContinueWithContract(HyposContract hyposContract) { + String clientName = String.format("%s %s", hyposContract.getClients().get(FIRST_CLIENT.getValue()).getNonClient().firstName(), hyposContract.getClients().get(FIRST_CLIENT.getValue()).getNonClient().lastName()); + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.closeCurrentWindow(); + endpoint.switchToWindowByTitle(clientName); + endpoint.switchToFrame(MAIN_FRAME_XPATH); + return null; + } + + @CheckElementPresent(SAVE_NEW_HYPOKALKULACKA_VERSION_BUTTON) + HypokalkulackaPage checkSaveNewHypokalkulackaVersionButtonPresent(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaRealtyPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaRealtyPage.java new file mode 100644 index 0000000..8833a75 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokalkulacka/HypokalkulackaRealtyPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.hypos.pages.hypokalkulacka; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaRealtyPage.SAVE_REALTY_BUTTON_XPATH; + +@Wait(value = SAVE_REALTY_BUTTON_XPATH, until = Until.VISIBLE) +public interface HypokalkulackaRealtyPage extends HyposPageFlow { + String REALTY_INPUT_DIV = "//div[@id='realty-input']"; + String REALTY_TYPE_SELECT = REALTY_INPUT_DIV + "//select[@id='realty-type']"; + String REALTY_PRICE_INPUT = REALTY_INPUT_DIV + "//input[@id='realty-price']"; + String REALTY_CONTRACT_SELECT = REALTY_INPUT_DIV + "//select[@id='realty-contract-relation']"; + String SAVE_REALTY_BUTTON_XPATH = REALTY_INPUT_DIV + "//input[@value='Uložit']"; + + @Select(REALTY_TYPE_SELECT) + HypokalkulackaRealtyPage selectRealtyType(String realtyType); + + @TypeInto(value = REALTY_PRICE_INPUT, clear = true) + HypokalkulackaRealtyPage fillRealtyPrice(int price); + + @Select(REALTY_CONTRACT_SELECT) + HypokalkulackaRealtyPage selectContractRealtion(String contranctRelation); + + @Click(SAVE_REALTY_BUTTON_XPATH) + HypokalkulackaPage clickSaveRealtyButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokom/HypokomContactDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokom/HypokomContactDetailPage.java new file mode 100644 index 0000000..2da26b5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokom/HypokomContactDetailPage.java @@ -0,0 +1,51 @@ +package cz.moneta.test.dsl.hypos.pages.hypokom; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import org.openqa.selenium.TimeoutException; + +import static cz.moneta.test.dsl.hypos.pages.hypokom.HypokomContactDetailPage.CONDITIONS_AND_SYMPTOMS_TAB_XPATH; + +@Wait(CONDITIONS_AND_SYMPTOMS_TAB_XPATH) +public interface HypokomContactDetailPage extends HyposPageFlow, StoreAccessor { + String CONDITIONS_AND_SYMPTOMS_TAB_XPATH = "//a[text()='Stavy a příznaky']"; + String FLAG_DATE_XPATH = "//input[@id='flag-limit']"; + String SET_BUTTON_XPATH = "//input[@id='butt-set-flag']"; + String CLOSE_BUTTON_XPATH = "//a[contains(@class, 'simplemodal-close')]"; + + @Click(CONDITIONS_AND_SYMPTOMS_TAB_XPATH) + HypokomContactDetailPage clickConditionsAndSymptomsTab(); + + @TypeInto(FLAG_DATE_XPATH) + HypokomContactDetailPage fillFlagDate(String date); + + @CustomAction + default HypokomContactDetailPage clickSetButtonAndDismissAlert() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> SET_BUTTON_XPATH); + //Obe upozorneni se zobrazuji jenom v IE na PC s Outlookem + try { + endpoint.dismissAlert(10); + } catch (TimeoutException e) { + } + try { + endpoint.acceptAlert(10); + } catch (TimeoutException e) { + } + // V headless mode se zde objeví neovladatelné okno, které ovlivňuje zbytek testu + if(endpoint.isHeadlessModeOn()) { + endpoint.switchToOtherWindow(10,2); + endpoint.closeCurrentWindow(); + endpoint.switchToOtherWindow(10,1); + } + return null; + } + + @Click(CLOSE_BUTTON_XPATH) + HypokomSearchPage clickCloseButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokom/HypokomSearchPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokom/HypokomSearchPage.java new file mode 100644 index 0000000..fcf17db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/hypokom/HypokomSearchPage.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.hypos.pages.hypokom; + +import cz.moneta.test.dsl.hypos.components.Menu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.hypos.pages.contract.NewContractPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.hypokom.HypokomSearchPage.CONTACTS_TABLE_XPATH; + +@Wait(value = CONTACTS_TABLE_XPATH, waitSecondsForElement = 120) +public interface HypokomSearchPage extends HyposPageFlow, Menu, StoreAccessor { + String CONTACTS_TABLE_XPATH = "//div[@id='contacts']//table[@class='content']"; + String FILTER_CONTACT_ID_INPUT_XPATH = "//input[@id='filter-id']"; + String FILTER_HYPOS_ID_INPUT_XPATH = "//input[@id='filter-code']"; + String FILTER_SINCE_INPUT_XPATH = "//input[@id='filter-since']"; + String FILTER_STATE_ID_CHECKBOX_XPATH = "//input[@id='%s']"; + String ELABORATE_CONTACT_BUTTON_XPATH = "//a[contains(@class, 'icon-elaborate')]"; + String FILTER_BUTTON_XPATH_XPATH = "//form[@id='contacts-filter-form']//input[@value='Zobrazit']"; + String CREATE_CONTRACT_BUTTON_XPATH = "//a[contains(@class, 'icon-createcontract')]"; + + @TypeInto(FILTER_CONTACT_ID_INPUT_XPATH) + HypokomSearchPage fillContactId(String id); + + @TypeInto(FILTER_HYPOS_ID_INPUT_XPATH) + HypokomSearchPage fillHyposId(String id); + + @TypeInto(FILTER_SINCE_INPUT_XPATH) + HypokomSearchPage fillSince(String since); + + @Click(value = FILTER_STATE_ID_CHECKBOX_XPATH, isStringDynamicXpath = true) + HypokomSearchPage clickState(String stateId); + + @Click(FILTER_BUTTON_XPATH_XPATH) + HypokomSearchPage clickFilterButton(); + + @Wait(CONTACTS_TABLE_XPATH) + @Click(ELABORATE_CONTACT_BUTTON_XPATH) + HypokomContactDetailPage clickElaborateContactButton(); + + @Wait(CONTACTS_TABLE_XPATH) + @CustomAction + default NewContractPage clickCreateContractButtonAndSwitch() { + HyposEndpoint endpoint = getEndpoint(HyposEndpoint.class); + endpoint.click(() -> CREATE_CONTRACT_BUTTON_XPATH); + endpoint.sleepSeconds(15); + endpoint.closeCurrentWindow(); + endpoint.switchToWindowByTitle("Založení nového hypotečního obchodu"); + endpoint.switchToFrame(MAIN_FRAME_XPATH); + endpoint.maximizeBrowserWindow(); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/mpt/MptPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/mpt/MptPage.java new file mode 100644 index 0000000..a33fd08 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/mpt/MptPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.hypos.pages.mpt; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.mpt.MptPage.SEARCH_BUTTON; + +@Wait(SEARCH_BUTTON) +public interface MptPage extends HyposPageFlow, StoreAccessor { + String SEARCH_BUTTON = "//input[@value='Vyhledat']"; + String CONTRACT_LIST = "//table[@id='list']//td[1]//a[@href]"; + + @Click(SEARCH_BUTTON) + MptPage clickSearchButton(); + + @CheckElementPresent(CONTRACT_LIST) + MptPage checkContractList(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/realty/RealtyMenuPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/realty/RealtyMenuPage.java new file mode 100644 index 0000000..ccda8c5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/realty/RealtyMenuPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.pages.realty; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.dsl.hypos.pages.contract.realty.SearchRealtyPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.realty.RealtyMenuPage.REALTY_SEARCH_BUTTON; + +@Wait(REALTY_SEARCH_BUTTON) +public interface RealtyMenuPage extends HyposPageFlow, StoreAccessor { + String REALTY_SEARCH_BUTTON = "//a[contains(@href,'realty.search&')]"; + + @Click(REALTY_SEARCH_BUTTON) + SearchRealtyPage clickRealtySearchPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureAppraisementFeePage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureAppraisementFeePage.java new file mode 100644 index 0000000..72b9487 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureAppraisementFeePage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructureAppraisementFeePage.SEARCH_BUTTON; + +@Wait(SEARCH_BUTTON) +public interface StructureAppraisementFeePage extends HyposPageFlow, StructureMenu, StoreAccessor { + String CONTRACTS = "//table//tbody//td/a[contains(@href,'/')]"; + String SEARCH_BUTTON = "//input[@value='Vyhledat']"; + + @CheckElementPresent(CONTRACTS) + StructureAppraisementFeePage checkContracts(); + + @Click(SEARCH_BUTTON) + StructureAppraisementFeePage clickSearchButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureClientChangePage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureClientChangePage.java new file mode 100644 index 0000000..797f0d9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureClientChangePage.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructureClientChangePage.APPENDIX_LINK; + +@Wait(APPENDIX_LINK) +public interface StructureClientChangePage extends HyposPageFlow, StructureMenu, StoreAccessor { + String CONTRACTS = "//table//tbody//td/a[contains(@href,'/')]"; + String APPENDIX_LINK = "//a[@id='ui-id-3']"; + String APPENDIX_ALLOWED_LINK = "//div[@id='section-a3']//a[text()='Povolené']"; + String FILTER_CREATED_BY_SELECT = "//select[@id='filter-created_by']"; + String SEARCH_BUTTON = "//button[@id='filter-submit']"; + + @Click(APPENDIX_LINK) + StructureClientChangePage clickAppendix(); + + @Click(SEARCH_BUTTON) + StructureClientChangePage clickSearchButton(); + + @Click(APPENDIX_ALLOWED_LINK) + StructureClientChangePage clickAppendixAllowed(); + + @CheckElementPresent(CONTRACTS) + StructureClientChangePage checkContracts(); + + @Select(FILTER_CREATED_BY_SELECT) + StructureClientChangePage selectFilterCreatedBy(String createdBy); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureDocsVerificationPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureDocsVerificationPage.java new file mode 100644 index 0000000..284055c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureDocsVerificationPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructureDocsVerificationPage.CONTRACTS; + +@Wait(CONTRACTS) +public interface StructureDocsVerificationPage extends HyposPageFlow, StructureMenu, StoreAccessor { + String CONTRACTS = "//table//tbody//td/a[contains(@href,'/')]"; + + @CheckElementPresent(CONTRACTS) + StructureDocsVerificationPage checkContracts(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureDrawPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureDrawPage.java new file mode 100644 index 0000000..56734c8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureDrawPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructureDrawPage.CONTRACTS; + +@Wait(CONTRACTS) +public interface StructureDrawPage extends HyposPageFlow, StructureMenu, StoreAccessor { + String CONTRACTS = "//table//tbody//td/a[contains(@href,'/')]"; + + @CheckElementPresent(CONTRACTS) + StructureDrawPage checkContracts(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureDrawPostponedPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureDrawPostponedPage.java new file mode 100644 index 0000000..4fb12bc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureDrawPostponedPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructureDrawPostponedPage.SEARCH_BUTTON; + +@Wait(SEARCH_BUTTON) +public interface StructureDrawPostponedPage extends HyposPageFlow, StructureMenu, StoreAccessor { + String SEARCH_BUTTON = "//button[text()='Vyhledat']"; + String RESET_FILTER_BUTTON = "//button[@id='filter-reset']"; + String CONTRACTS = "//table//tbody//td/a[contains(@href,'/')]"; + + @Click(value = SEARCH_BUTTON, andWait = @Wait(value = CONTRACTS, waitSecondsForElement = 60)) + StructureDrawPostponedPage clickSearchButton(); + + @Click(RESET_FILTER_BUTTON) + StructureDrawPostponedPage clickResetFilterButton(); + + @CheckElementPresent(CONTRACTS) + StructureDrawPostponedPage checkContracts(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureFinancialExceptionPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureFinancialExceptionPage.java new file mode 100644 index 0000000..e34013a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureFinancialExceptionPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructureFinancialExceptionPage.CONTRACTS; + +@Wait(CONTRACTS) +public interface StructureFinancialExceptionPage extends HyposPageFlow, StructureMenu, StoreAccessor { + String CONTRACTS = "//table//tbody//td/a[contains(@href,'/')]"; + + @CheckElementPresent(CONTRACTS) + StructureFinancialExceptionPage checkContracts(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureLetterPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureLetterPage.java new file mode 100644 index 0000000..1108813 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureLetterPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructureLetterPage.CONTRACTS; + +@Wait(CONTRACTS) +public interface StructureLetterPage extends HyposPageFlow, StructureMenu, StoreAccessor { + String CONTRACTS = "//table//tbody//td/a[contains(@href,'/')]"; + + @CheckElementPresent(CONTRACTS) + StructureLetterPage checkContracts(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureOpusPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureOpusPage.java new file mode 100644 index 0000000..662bb2a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureOpusPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructureOpusPage.SPIN_LINK; + +@Wait(SPIN_LINK) +public interface StructureOpusPage extends HyposPageFlow, StructureMenu, StoreAccessor { + String CONTRACTS = "//table//tbody//td/a[contains(@href,'/')]"; + String SPIN_LINK = "//a[@id='ui-id-2']"; + String SPIN_ALLOWED_LINK = "//div[@id='section-otocka']//a[text()='Povolené']"; + + @Click(SPIN_LINK) + StructureOpusPage clickSpin(); + + @Click(SPIN_ALLOWED_LINK) + StructureOpusPage clickSpinAllowed(); + + @CheckElementPresent(CONTRACTS) + StructureOpusPage checkContracts(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructurePage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructurePage.java new file mode 100644 index 0000000..6938228 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructurePage.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructurePage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface StructurePage extends HyposPageFlow, StructureMenu, StoreAccessor { + String PAGE_TITLE = "//h1[text()='Sestavy a statistiky']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructurePktuPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructurePktuPage.java new file mode 100644 index 0000000..2e99c14 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructurePktuPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructurePktuPage.FILTER_DATE_FROM; + +@Wait(FILTER_DATE_FROM) +public interface StructurePktuPage extends HyposPageFlow, StructureMenu, StoreAccessor { + String TRANSACTIONS = "//table//tbody//td/a[contains(@href,'?cmd=pktu_detail')]"; + String SEARCH_BUTTON = "//input[@name='sbmt']"; + String FILTER_DATE_FROM = "//input[@id='filterDateFrom']"; + + @Click(SEARCH_BUTTON) + StructurePktuPage clickSearchButton(); + + @TypeInto(value = FILTER_DATE_FROM, clear = true) + StructurePktuPage fillFilterDateFrom(String date); + + @CheckElementPresent(TRANSACTIONS) + StructurePktuPage checkTransactions(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructurePpdPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructurePpdPage.java new file mode 100644 index 0000000..54b9b8d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructurePpdPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructurePpdPage.ACTIVE_SANCTIONS_LINK; + +@Wait(ACTIVE_SANCTIONS_LINK) +public interface StructurePpdPage extends HyposPageFlow, StructureMenu, StoreAccessor { + String CONTRACTS = "//table//tbody//td/a[contains(@href,'/')]"; + String ACTIVE_SANCTIONS_LINK = "//a[contains(text(),'Obchody s aktivní sankcí')]"; + + @CheckElementPresent(CONTRACTS) + StructurePpdPage checkContracts(); + + @Click(ACTIVE_SANCTIONS_LINK) + StructurePpdPage clickActiveSanctions(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureUw1Page.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureUw1Page.java new file mode 100644 index 0000000..3c599be --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureUw1Page.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructureUw1Page.CONTRACTS; + +@Wait(value = CONTRACTS, waitSecondsForElement = 180) +public interface StructureUw1Page extends HyposPageFlow, StructureMenu, StoreAccessor { + String CONTRACTS = "//table//tbody//td/a[contains(@href,'/')]"; + + @CheckElementPresent(CONTRACTS) + StructureUw1Page checkContracts(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureUw2Page.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureUw2Page.java new file mode 100644 index 0000000..14fc658 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/structure/StructureUw2Page.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.pages.structure; + +import cz.moneta.test.dsl.hypos.components.StructureMenu; +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.structure.StructureUw2Page.CONTRACTS; + +@Wait(value = CONTRACTS, waitSecondsForElement = 180) +public interface StructureUw2Page extends HyposPageFlow, StructureMenu, StoreAccessor { + String CONTRACTS = "//table//tbody//td/a[contains(@href,'/')]"; + + @CheckElementPresent(CONTRACTS) + StructureUw2Page checkContracts(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/tasklist/TaskDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/tasklist/TaskDetailPage.java new file mode 100644 index 0000000..ca77bf4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/tasklist/TaskDetailPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.hypos.pages.tasklist; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.tasklist.TaskDetailPage.PAGE_TITLE; + + +@Wait(PAGE_TITLE) +public interface TaskDetailPage extends HyposPageFlow, StoreAccessor { + String PAGE_TITLE = "//h1[text()='Detail úkolu']"; + + @CheckElementPresent(PAGE_TITLE) + TaskDetailPage checkPageTitle(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/tasklist/TaskListPage.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/tasklist/TaskListPage.java new file mode 100644 index 0000000..f4b861d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/pages/tasklist/TaskListPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.hypos.pages.tasklist; + +import cz.moneta.test.dsl.hypos.pages.HyposPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.hypos.pages.tasklist.TaskListPage.FILTER_MODE_SELECT; + + +@Wait(FILTER_MODE_SELECT) +public interface TaskListPage extends HyposPageFlow, StoreAccessor { + String FILTER_MODE_SELECT = "//select[@id='filter-mode']"; + String FILTER_TYPE_SELECT = "//select[@id='filter-type']"; + String FILTER_SEARCH_BUTTON = "//button[text()='Vyhledat']"; + String TASK_DETAIL = "(//a[contains(@href,'complaint.detail')])[1]"; + + @Click(FILTER_SEARCH_BUTTON) + TaskListPage clickSearchButton(); + + @Click(TASK_DETAIL) + TaskDetailPage clickTaskDetail(); + + @Select(FILTER_MODE_SELECT) + TaskListPage selectFilterMode(String mode); + + @Select(FILTER_TYPE_SELECT) + TaskListPage selectFilterType(String type); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/ContractTasks.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/ContractTasks.java new file mode 100644 index 0000000..1c92443 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/ContractTasks.java @@ -0,0 +1,342 @@ +package cz.moneta.test.dsl.hypos.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.*; +import cz.moneta.test.dsl.hypos.pages.contract.ContractHistoryPage; +import cz.moneta.test.dsl.hypos.pages.contract.approval.CancelContractPage; +import cz.moneta.test.dsl.hypos.pages.contract.approval.ScoringChecklistPage; +import cz.moneta.test.dsl.hypos.pages.contract.documents.DocumentsPage; +import cz.moneta.test.dsl.hypos.pages.contract.fees.FeesPage; +import cz.moneta.test.dsl.hypos.pages.contract.loan.ClientCurrentAcountPage; +import cz.moneta.test.dsl.hypos.pages.contract.loan.LoanPage; +import cz.moneta.test.dsl.hypos.pages.contract.withdrawal.WithdrawalRequestsPage; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.dsl.util.data.hypos.ScoringParameter; + +import java.util.List; +import java.util.function.Function; + +import static cz.moneta.test.dsl.hypos.enums.Client.FIRST_CLIENT; +import static cz.moneta.test.dsl.hypos.enums.HyposLogType.TASK; +import static cz.moneta.test.dsl.hypos.pages.contract.approval.ScoringPage.AP_ID; + +public class ContractTasks { + public static final String defaultDateFormat = "d.M.yyyy"; + + private final Harness harness; + private HyposCommonTasks tasks; + + public ContractTasks(Harness harness) { + this.harness = harness; + this.tasks = harness.tasks().hypos().hyposCommonTasks(); + } + + public Function cashCollectedFee() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickFees() + .selectCollectableFee(CollectableFee.FEE_DOWNLOAD_LV_KM.getValue()) + .clickCash() + .checkCollectedFee(); + } + + public Function setNoCifForClient(HyposContract hyposContract) { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickClientsToSetCif() + .setNoCifRadio(hyposContract) + .clickHomepage(); + } + + public Function setLifeInsurance() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickLifeInsurance() + .clickLifeInsuranceDetailButton() + .clickLifeInsuranceEditButton() + .selectLifeInsuranceState("Klient je pojistitelný") + .clickSaveLifeInsuranceButton() + .clickHomepage(); + } + + public Function setLoanAndDrawingConditions(HyposContract hyposContract) { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickLoan() + .clickAddNewTransaction() + .addTranches(hyposContract) + .clickSaveButton() + .clickSetDrawingConditions() + .moveAndCheckConditions(hyposContract) + .clickReturnButton() + .clickHomepage(); + } + + public Function setNewRealtyAndSupervision(HyposContract hyposContract) { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickRealty() + .clickSearchRealty() + .selectRealtyType(hyposContract.getRealty().getSearchByRealtyType()) + .fillAreaName(hyposContract.getRealty().getRegisterArea()) + .clickAutosuggestLink(hyposContract.getRealty().getAutosuggestionText()) + .fillDescriptiveNumber(hyposContract.getRealty().getDescriptiveNumber()) + .fillFlatNumber(hyposContract.getRealty().getFlatNumber()) + .clickSearchButton() + .clickCreateNewUnit() + .selectRealtyType(hyposContract.getRealty().getCollateralType()) + .selectPledgeType(hyposContract.getRealty().getPledgeType()) + .clickSaveButton() + .clickApprovedSupervisionLink() + .selectAppraiserCompany(hyposContract.getRealty().getAppraiserCompany()) + .selectAppraiserNameByOrder(hyposContract.getRealty().getAppraiserOrder()) + .fillAppraisalDate(DateUtils.getFormattedTodayDate(defaultDateFormat)) + .fillReproductionPrice(hyposContract.getRealty().getRealtyPrice()) + .fillCurrentPrice(hyposContract.getRealty().getRealtyPriceCurrent()) + .clickSendButton() + .clickBackToUnitDetailLink() + .clickHomepage(); + } + + public Function importChecklistUwDocument() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickApprovalChecklist() + .clickChecklistLoan() + .clickAddOtherRqDoc() + .fillRequestedDoc("Výjimka") + .selectUwExceptionDocType() + .saveModalPage() + .clickUploadUwException() + .uploadFileChecklist(harness.tasks().common().getFakePdfPath()) + .saveFileChecklist() + .clickHomepage(); + } + + public Function setScoringManual() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickScoring() + .clickManualScoring() + .then(checkChecklistAndSendToScoring()); + } + + public Function setScoringAutomat() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickScoring() + .clickAutomatScoring() + .then(checkChecklistAndSendToScoring()); + } + + public Function setPrepareContractsState() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickEventsStateBoxLink() + .clickPrepareContractsStateLink() + .clickCommentBoxSaveButton() + .clickHomepage(); + } + + public Function setApVerification() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickScoring() + .getApId(harness) + .clickToApVerification() + .dragAndDropDocuments() + .clickSendToApButton() + .getTaskIds(harness) + .clickHomepage(); + } + + public Function checkScoringResult(List scoringParameters) { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickScoring() + .clickScoringDetail(harness.get(AP_ID).toString()) + .checkScoringParametersLimit(scoringParameters) + .checkScoringParameterApprovalResult(scoringParameters) + .checkScoringParametersBonity(scoringParameters) + .checkScoringParametersBonityLtv(scoringParameters) + .checkScoringParametersStrategy(scoringParameters) + .checkScoringParametersRefusalReason(scoringParameters) + .clickHomepage(); + } + + public Function setCancelContract() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickScoring() + .clickToCancelContract() + .clickCancelContractByClientCheckbox() + .clickCancelContractButton() + .checkCancelContractSuccessText(); + } + + public Function setEventsFlagsUw1() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickSetEventsFlagsLink() + .clickContractFlag(ContractFlag.ACCEPT_UW1.getValue()) + .clickCommentBoxSaveButton() + .clickSetEventsFlagsLink() + .clickContractFlag(ContractFlag.ELABORATE_UW1.getValue()) + .clickCommentBoxSaveButton() + .clickHomepage(); + } + + public Function setEventsFlagsUw2() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickSetEventsFlagsLink() + .clickContractFlag(ContractFlag.SEND_FOLDER_UW2.getValue()) + .clickCommentBoxSaveButton() + .clickSetEventsFlagsLink() + .clickContractFlag(ContractFlag.ACCEPT_FOLDER_UW2.getValue()) + .clickCommentBoxSaveButton() + .clickHomepage(); + } + + public Function setEventsFlagsDocumentsReady() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickSetEventsFlagsLink() + .clickContractFlag(ContractFlag.DOCUMENTS_READY.getValue()) + .clickCommentBoxSaveButton() + .clickHomepage(); + } + + public Function finishContractApproval(HyposContract hyposContract) { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickScoring() + .clickApproveTab() + .setConditionsFulfillmentDate(hyposContract) + .checkElectronicApprovalProtocolNo() + .clickApproveContractButton() + .waitAndClickConfirmApprovalButton() + .waitUntilContractApproved() + .clickHomepage(); + } + + public Function getClientCifInHypos(HyposContract hyposContract) { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickClients() + .clickOpenClientDetails() + .checkClientPin(hyposContract.getClients().get(FIRST_CLIENT.getValue()).getNonClient().birthNumber()) + .getClientCif(); + } + + public Function generateLoanContractDocuments() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickDocuments() + .clickGenerateLoanContractLink() + .clickAutoVerifyCheckbox() + .clickSignInPrague() + .clickGenerateButton() + .clickHomepage(); + } + + public Function signLoanContractDocuments() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickDocuments() + .expandLoanContractDocuments() + .clickSignContractDocuments() + .fillSignatureDateByClient(DateUtils.getFormattedTodayDate(defaultDateFormat)) + .clickBankerName() + .clickSave(); + } + + public Function setLandAreaRegistrationDates() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickRealty() + .fillLandAreaRegistryDraftDate(DateUtils.getFormattedTodayDate(defaultDateFormat)) + .fillLandAreaRegistryEntryDate(DateUtils.getFormattedTodayDate(defaultDateFormat)) + .fillLandAreaRegistryLien1stDate(DateUtils.getFormattedTodayDate(defaultDateFormat)) + .clickSaveLandRegistryDates() + .clickHomepage(); + } + + public Function setClientCurrentAccount(String currentAccountNumber) { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickLoan() + .clickSetCurrentAccount() + .setCurrentAccount(currentAccountNumber) + .clickSaveCurrentAccount(); + } + + public Function approveDrawingConditions() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickLoan() + .clickApproveDrawingConditions() + .approveDrawingConditions() + .clickSaveAndReturnButton() + .clickApproveMortgageConditions() + .approveMortgageConditions() + .clickSaveAndReturnButton() + .clickHomepage(); + } + + public Function createNewDrawRequest(HyposContract hyposContract) { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + String clientName = String.format("%s %s", hyposContract.getClients().get(FIRST_CLIENT.getValue()).getNonClient().firstName(), hyposContract.getClients().get(FIRST_CLIENT.getValue()).getNonClient().lastName()); + return start -> start.clickWithdrawalRequests() + .fillDrawDate(DateUtils.getFormattedTodayDate(defaultDateFormat)) + .clickAddDecisionDate() + .clickClientAccountCheckbox() + .selectCurrentAccountOwner(clientName) + .fillLoanAmount(hyposContract.getMortgageLoanAmount()) + .clickSaveButton(); + } + + public Function processAndApproveNewDraw() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickLoan() + .clickNewDraw() + .clickAddNewDraw() + .clickSaveButton() + .clickApproveNewDraw(); + } + + public Function doDrawInIcbs() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickLoan() + .clickDoDrawInIcbs() + .waitDrawInIcbs(); + } + + public Function setChecklistClient(Client client) { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.clickApprovalChecklist() + .addChecklistDocs(ChecklistTab.CLIENT, client, ChecklistDocCategory.IDENTITY_GENERAL, harness) + .addChecklistDocs(ChecklistTab.CLIENT, client, ChecklistDocCategory.INCOME_EMPLOYEE, harness) + .addChecklistDocs(ChecklistTab.CLIENT, client, ChecklistDocCategory.INCOME_BUSINESS, harness) + .addChecklistDocs(ChecklistTab.CLIENT, client, ChecklistDocCategory.INCOME_PARENTAL_CONTRIBUTION, harness) + .addChecklistDocs(ChecklistTab.CLIENT, client, ChecklistDocCategory.INCOME_DIETS, harness) + .addChecklistDocs(ChecklistTab.CLIENT, client, ChecklistDocCategory.INCOME_ALIMENT, harness) + .addChecklistDocs(ChecklistTab.CLIENT, client, ChecklistDocCategory.INCOME_RENTE, harness) + .addChecklistDocs(ChecklistTab.CLIENT, client, ChecklistDocCategory.INCOME_OTHER_PENSION, harness) + .addChecklistDocs(ChecklistTab.CLIENT, client, ChecklistDocCategory.INCOME_PROFIT_PORTION, harness) + .addChecklistDocs(ChecklistTab.CLIENT, client, ChecklistDocCategory.INCOME_RENTAL_ALLOWANCE_GROSS, harness) + .addChecklistDocs(ChecklistTab.CLIENT, client, ChecklistDocCategory.EXPENDITURE, harness) + .clickHomepage(); + } + + public Function setChecklistLoan() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickApprovalChecklist() + .clickChecklistLoan() + .addChecklistDocs(ChecklistTab.LOAN, null, ChecklistDocCategory.GENERAL_GENERAL, harness) + .addChecklistDocs(ChecklistTab.LOAN, null, ChecklistDocCategory.PURPOSE_GENERAL, harness) + .clickHomepage(); + } + + public Function setChecklistAllocatedCollateral () { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickApprovalChecklist() + .clickChecklistAllocatedCollateral() + .addChecklistDocs(ChecklistTab.ALLOCATED_COLLATERAL, null, ChecklistDocCategory.ALLOC_COL, harness) + .clickHomepage(); + } + + private Function checkChecklistAndSendToScoring() { + tasks.hyposLog(TASK, new Object() {}.getClass().getEnclosingMethod().getName()); + return start -> start.fillComment("Testovací komentář") + .clickHandoverToScoringButton() + .clickSendToScoringButton() + .checkScoringApprovalPresent() + .clickHomepage(); + } + + public Function deleteSelectedDocument () { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickDeleteSelectedDocument() + .clickDeleteSelectedDocumentConfirm(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HypokalkulackaTasks.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HypokalkulackaTasks.java new file mode 100644 index 0000000..5808467 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HypokalkulackaTasks.java @@ -0,0 +1,266 @@ +package cz.moneta.test.dsl.hypos.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.Client; +import cz.moneta.test.dsl.hypos.pages.contract.ContractHistoryPage; +import cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaClientDetailPage; +import cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.hypos.enums.HyposLogType.TASK; +import static cz.moneta.test.dsl.hypos.tasks.HyposTasks.defaultDateFormat; + +public class HypokalkulackaTasks { + private final Harness harness; + private final HyposTasks tasks; + + public HypokalkulackaTasks(Harness harness) { + this.harness = harness; + this.tasks = harness.tasks().hypos(); + } + + public Function addClientData(HyposContract hyposContract, int client) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.onHypokalkulackaPage() + .clickAddClientButton() + .then(fillClientData(hyposContract, client)) + .clickSaveClientButton(); + } + + public Function addOtherClientData(HyposContract hyposContract, int client) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.onHypokalkulackaPage() + .clickAddClientButton() + .then(fillClientData(hyposContract, client)) + .selectClientRelation(hyposContract.getClients().get(client).getClientRelation()) + .clickSaveClientButton(); + } + + public Function addClientAddress(HyposContract hyposContract, int client) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickAddPermanentAddress() + .clickAllAddressesEqual() + .fillStreet(hyposContract.getClients().get(client).getNonClient().residencyAddress().getStreet()) + .fillDescriptiveNumber(hyposContract.getClients().get(client).getNonClient().residencyAddress().getDescriptiveNumber()) + .fillCity(hyposContract.getClients().get(client).getNonClient().residencyAddress().getCity()) + .fillZip(hyposContract.getClients().get(client).getNonClient().residencyAddress().getZip()) + .clickSaveAddressButton(); + } + + public Function addClientIncomeEmployee(HyposContract hyposContract, int client) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + if (hyposContract.getClients().get(client).getEmployeeIncomes().isEmpty()) + return start -> start; + return start -> start.onHypokalkulackaPage() + .clickClientIncomeButton(String.valueOf(client + 1)) + .selectTab("(Z)", "1") + .fillGrossSalary(hyposContract.getClients().get(client).getEmployeeIncomes().get(0).getGrossSalary()) + .fillEmployerIco(hyposContract.getClients().get(client).getEmployeeIncomes().get(0).getIco()) + .fillNetSalary(hyposContract.getClients().get(client).getEmployeeIncomes().get(0).getNetSalary()) + .fillEmploymentStartDate(hyposContract.getClients().get(client).getEmployeeIncomes().get(0).getStartDate()) + .fillEmploymentType(hyposContract.getClients().get(client).getEmployeeIncomes().get(0).getType()) + .fillCorpPhone(hyposContract.getClients().get(client).getEmployeeIncomes().get(0).getPhone()) + .fillProfession(hyposContract.getClients().get(client).getEmployeeIncomes().get(0).getProfession()) + .clickSpecialRelation() + .selectCurrencyForEmployee(hyposContract.getClients().get(client).getEmployeeIncomes().get(0).getCurrency()) + .addOtherIncomeEmployee(hyposContract, client); + } + + public Function addClientIncomeBusiness(HyposContract hyposContract, int client) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + if (hyposContract.getClients().get(client).getBusinessIncome() == null) + return start -> start; + return start -> start.onHypokalkulackaPage() + .clickClientIncomeButton(String.valueOf(client + 1)) + .selectTab("(P)", "1") + .fillTurnoverLatest(hyposContract.getClients().get(client).getBusinessIncome().getTurnoverLatest()) + .fillTaxBaseLatest(hyposContract.getClients().get(client).getBusinessIncome().getTaxBaseLatest()) + .fillPaidTax(hyposContract.getClients().get(client).getBusinessIncome().getPaidTax()) + .selectCostAccounting(hyposContract.getClients().get(client).getBusinessIncome().getCostAccounting()) + .fillCode(hyposContract.getClients().get(client).getBusinessIncome().getNaceCode()) + .clickCode(hyposContract.getClients().get(client).getBusinessIncome().getNaceCode()) + .fillTurnoverPenultimate(hyposContract.getClients().get(client).getBusinessIncome().getTurnoverPenultimate()) + .fillTaxBasePenultimate(hyposContract.getClients().get(client).getBusinessIncome().getTaxBasePenultimate()) + .fillBusinessIco(hyposContract.getClients().get(client).getBusinessIncome().getIco()) + .fillBusinessStartDate(hyposContract.getClients().get(client).getBusinessIncome().getStartDate()) + .selectCurrencyForBusiness(hyposContract.getClients().get(client).getBusinessIncome().getCurrency()) + .fillBusinessCorpPhone(harness.tasks().hypos().hyposCommonTasks().getMobilePhoneNumber()) + .clickSaveIncomeButton(); + } + + public Function addClientIncomeOther(HyposContract hyposContract, int client) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + if (hyposContract.getClients().get(client).getOtherIncomes().isEmpty()) + return start -> start; + return start -> start.onHypokalkulackaPage() + .clickClientIncomeButton(String.valueOf(client+1)) + .selectTab("(O)", "1") + .setOtherIncomes(hyposContract, client) + .clickIncomesRental(hyposContract, client) + .clickSaveIncomeButton(); + } + + public Function addClientExpenditure(HyposContract hyposContract, int client) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickClientExpenditureButton(String.valueOf(client + 1)) + .setExpenditures(hyposContract) + .clickSaveExpenditureButton(); + } + + public Function addHouseholds(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickHouseholdButton("1") + .fillHouseholdwithIncome(hyposContract.getFirstHouseholdIncome().getWithIncome()) + .fillHouseholdWithoutIncome(hyposContract.getFirstHouseholdIncome().getWithoutIncome()) + .clickSaveExpenditureButton() + .clickHouseholdButton("2") + .fillHouseholdwithIncome(hyposContract.getSecondHouseholdIncome().getWithIncome()) + .fillHouseholdWithoutIncome(hyposContract.getSecondHouseholdIncome().getWithoutIncome()) + .clickSaveExpenditureButton(); + } + + public Function addSecondHousehold(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickHouseholdButton("2") + .fillHouseholdwithIncome(hyposContract.getSecondHouseholdIncome().getWithIncome()) + .fillHouseholdWithoutIncome(hyposContract.getSecondHouseholdIncome().getWithoutIncome()) + .clickSaveExpenditureButton(); + } + + public Function addRealtyData(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickAddRealtyButton() + .selectRealtyType(hyposContract.getRealty().getRealtyType()) + .fillRealtyPrice(hyposContract.getRealty().getRealtyPrice()) + .selectContractRealtion(hyposContract.getRealty().getContractRelation()) + .clickSaveRealtyButton(); + } + + public Function addLoanData(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickEditLoanButton() + .selectLoanProduct(hyposContract.getLoanProduct()) + .selectLoanAction(hyposContract.getLoanAction()) + .fillLoanAmount(hyposContract.getMortgageLoanAmount()) + .fillLoanMaturity(hyposContract.getMortgageLoanMaturity()) + .fillOwnResources(hyposContract.getMortgageOwnResources()) + .fillOtherResources(hyposContract.getMortgageOtherResources()) + .fillTotalInvestmentIntention(hyposContract.getMortgageLoanAmount()) + .selectLoanObject(hyposContract.getLoanObjectType()) + .selectRealtyPurchaseReason(hyposContract.getPurchaseReason()) + .addLoanPurposes(hyposContract) + .addCardif(hyposContract) + .clickSaveLoanButton(); + } + + public Function addApplicationData(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickEditApplicationButton() + .selectContactBranch("Praha 4 - BB Centrum") + .addBirthPlace(hyposContract) + .addFirstIdentity(hyposContract) + .addSecondIdentity(hyposContract) + .selectPep(hyposContract) + .clickSaveApplicationButton(); + } + + public Function generateAndSignAgreements101() { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickGenerateAgreements101() + .clickSignAgreements101() + .fillSignatureByBank(DateUtils.getFormattedTodayDate(defaultDateFormat)) + .fillSignatureByClient(DateUtils.getFormattedTodayDate(defaultDateFormat)) + .clickSaveDocumentSignatures(); + } + + public Function generateAndSignMortgageApplication() { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickGenerateMortgageApplication() + .clickSignMortgageApplication() + .fillSignatureByBank(DateUtils.getFormattedTodayDate(defaultDateFormat)) + .fillSignatureByClient(DateUtils.getFormattedTodayDate(defaultDateFormat)) + .clickSaveDocumentSignatures(); + } + + public Function saveHypokalkulacka() { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.onHypokalkulackaPage() + .clickSaveHypokalkulackaButtonAndCheckAlertText() + .checkSaveNewHypokalkulackaVersionButtonPresent(); + } + + public Function fillClientDetailIncomeEmployee(HyposContract hyposContract, int client, int income) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickClientIncomeButton(String.valueOf(client + 1)) + .selectTab("(Z)", String.valueOf(income + 1)) + .clickIncomeEmployeeDetails() + .clickPaidToMmbNoRadio() + .clickEmploymentAgencyNoRadio() + .clickCashSalaryNoRadio() + .clickEmployeeAbroadNoRadio() + .clickEmployeeShareholderNoRadio() + .fillPhone(hyposContract.getClients().get(client).getEmployeeIncomes().get(income).getPhone()) + .clickSaveIncomeEmployeeDetail() + .clickSaveIncomeButton(); + } + + public Function setClientDetailIncomeEmployee(HyposContract hyposContract, Client client) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickHypokalkulacka() + .then(fillClientDetailIncomeEmployee(hyposContract, client.getValue(), 0)) + .clickSaveNewHypokalkulackaVersionAndAcceptAlertText() + .closeHypokalkulackaAndContinueWithContract(hyposContract) + .clickHomepage(); + } + + public Function fillClientDetailIncomeBusiness(HyposContract hyposContract, int client) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + if (hyposContract.getClients().get(client).getBusinessIncome() == null) + return start -> start; + return start -> start.clickClientIncomeButton(String.valueOf(client + 1)) + .selectTab("(P)", "1") + .clickIncomeBusinessDetails() + .fillCorpPhone(harness.tasks().hypos().hyposCommonTasks().getMobilePhoneNumber()) + .fillPaidTax(hyposContract.getClients().get(client).getBusinessIncome().getPaidTax()) + .clickBusinessPaidToMmb() + .clickSaveIncomeBusinessDetail() + .clickSaveIncomeButton(); + } + + public Function setClientDetailIncomeBusiness(HyposContract hyposContract, Client client) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickHypokalkulacka() + .then(fillClientDetailIncomeBusiness(hyposContract, Integer.parseInt(client.getOrderValue()))) + .clickSaveNewHypokalkulackaVersionAndAcceptAlertText() + .closeHypokalkulackaAndContinueWithContract(hyposContract) + .clickHomepage(); + } + + public Function createNewHypokalkulackaVersion(HyposContract hyposContract) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickHypokalkulacka() + .clickSaveNewHypokalkulackaVersionAndAcceptAlertText() + .closeHypokalkulackaAndContinueWithContract(hyposContract) + .clickHomepage(); + } + + private Function fillClientData(HyposContract hyposContract, int client) { + tasks.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.fillPinAndSearchPin(hyposContract.getClients().get(client).getNonClient().birthNumber()) + .fillFirstName(hyposContract.getClients().get(client).getNonClient().firstName()) + .fillLastName(hyposContract.getClients().get(client).getNonClient().lastName()) + .selectNationality(hyposContract.getClients().get(client).getNonClient().nationality()) + .fillBirthDate(hyposContract.getClients().get(client).getNonClient().birthDate()) + .fillPhone(hyposContract.getClients().get(client).getNonClient().fixPhoneNumberHome()) + .fillEmail(hyposContract.getClients().get(client).getNonClient().email()) + .selectEducationType(hyposContract.getClients().get(client).getNonClient().educationLevel().getUfoValue()) + .selectStayType(hyposContract.getClients().get(client).getStayType()) + .selectLivingType(hyposContract.getClients().get(client).getLivingType()) + .selectMaritalStatus(hyposContract.getClients().get(client).getNonClient().maritalStatus().getHyposValue()) + .selectHousehold(hyposContract.getClients().get(client).getHousehold()) + .selectEmployee(hyposContract.getClients().get(client).getEmployee()); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HypokomTasks.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HypokomTasks.java new file mode 100644 index 0000000..59b815b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HypokomTasks.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.hypos.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.pages.contract.EditContinuePage; +import cz.moneta.test.dsl.hypos.pages.hypokom.HypokomSearchPage; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.hypos.enums.HyposLogType.TASK; +import static cz.moneta.test.dsl.hypos.tasks.HyposTasks.defaultDateFormat; + +public class HypokomTasks { + private final Harness harness; + private HyposCommonTasks tasks; + + public HypokomTasks(Harness harness) { + this.harness = harness; + this.tasks = harness.tasks().hypos().hyposCommonTasks(); + } + + public Function searchClientByContractId(String contractId) { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.fillHyposId(contractId) + .clickFilterButton(); + } + + public Function setClientAppointmentDate() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickElaborateContactButton() + .clickConditionsAndSymptomsTab() + .fillFlagDate(DateUtils.getFormattedTodayDate(defaultDateFormat)) + .clickSetButtonAndDismissAlert() + .clickCloseButton(); + } + + public Function createNewContract(String contractId, HyposContract hyposContract) { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickCreateContractButtonAndSwitch() + .checkAgreements(hyposContract) + .clickAresAndJustice() + .clickEstablishContract() + .checkEnterContractButtonExistence() + .checkContractId(contractId); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposCommonTasks.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposCommonTasks.java new file mode 100644 index 0000000..d8a014d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposCommonTasks.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.hypos.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.HyposLogType; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.harness.support.data.GeneratorType; + +public class HyposCommonTasks { + private final Harness harness; + + public HyposCommonTasks(Harness harness) { + this.harness = harness; + } + + public String getFullAddress(Address address) { + String fullAddress; + if (address.getOrientationNumber().equals("")) { + fullAddress = String.format("%s %s, %s %s", + address.getStreet(), + address.getDescriptiveNumber(), + address.getZip(), + address.getCity()); + } else { + fullAddress = String.format("%s %s/%s, %s %s", + address.getStreet(), + address.getDescriptiveNumber(), + address.getOrientationNumber(), + address.getZip(), + address.getCity()); + } + return fullAddress; + } + + public String getAddressWhisper(Address address) { + return address.getStreet() + " " + address.getDescriptiveNumber() + ", " + address.getCity() + " " + address.getZip(); + } + + public String getMobilePhoneNumber() { + return "420" + harness.generate(GeneratorType.MOBILE_PHONE_NUMBER); + } + + public void hyposLog(HyposLogType hyposLogType, String hyposLog) { + harness.log("HyposLog - {}: {}", hyposLogType.getValue(), hyposLog); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposDbTasks.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposDbTasks.java new file mode 100644 index 0000000..df39b36 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposDbTasks.java @@ -0,0 +1,236 @@ +package cz.moneta.test.dsl.hypos.tasks; + +import cz.moneta.test.dsl.hypos.enums.DocumentState; +import cz.moneta.test.dsl.hypos.enums.DocumentTemplate; +import cz.moneta.test.dsl.hypos.enums.HyposContractState; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.hypos.hyposdb.HyposDbEndpoint; + +import static cz.moneta.test.dsl.hypos.enums.HyposContractState.*; + +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import java.util.HashMap; +import java.util.Map; + +public class HyposDbTasks { + private final StoreAccessor harness; + private static final String EMPTY_RESULT = ""; + + private final String GET_CONTRACT_ID_QUERY = + "SELECT contract.ctr_code AS CONTRACTID " + + "FROM dbo.calc calc JOIN dbo.contract contract ON contract.ctr_id = calc.contact " + + "WHERE calc.id = _HYPOKALKULACKAID_"; + + private final String GET_CONTRACT_STATE_QUERY = + "SELECT ctr_fk_state AS STATE " + + "FROM dbo.contract " + + "WHERE ctr_code = _CONTRACTID_"; + + private final String GET_APPROVAL_REQUEST_STATE_QUERY = + "SELECT approval_request.state AS STATE " + + "FROM dbo.approval_request approval_request " + + "JOIN dbo.contract contract ON contract.ctr_id = approval_request.contract " + + "WHERE contract.ctr_code = _CONTRACTID_ " + + "AND approval_request.type = 'scoring'"; + + private final String GET_CONTRACT_BY_STATE_QUERY = + "SELECT TOP 1 ctr_code AS CONTRACTID " + + "FROM dbo.contract " + + "WHERE ctr_fk_state = '_CONTRACTSTATE_' " + + "AND ctr_fk_process = 7 " + + "ORDER BY ctr_code DESC"; + + private final String GET_CONTRACT_WITH_BU_BY_STATE_QUERY = + "SELECT TOP 1 c.ctr_code AS CONTRACTID " + + "FROM dbo.contract c " + + "JOIN dbo.contract_detail cd ON cd.ctd_fk_contract = c.ctr_id " + + "WHERE c.ctr_fk_state = '_CONTRACTSTATE_' " + + "AND c.ctr_fk_process = 7 " + + "AND cd.current_account_id != 102920 " + + "ORDER BY c.ctr_code DESC"; + + private final String GET_CLIENT_DETAIL_BY_PIN_QUERY = + "SELECT contract.ctr_code AS CTR_CODE, " + + "person.cif AS CIF, " + + "person.first_name AS FIRST_NAME, " + + "person.last_name AS LAST_NAME, " + + "person.pin AS PIN " + + "FROM dbo.contract contract " + + "JOIN dbo.client client ON contract.ctr_id = client.contract " + + "JOIN dbo.person person ON client.person = person.id " + + "WHERE pin = '_PIN_'"; + + private final String GET_DOCUMENT_STATE_QUERY = + "SELECT TOP 1 d.doc_fk_status AS STATE " + + "FROM dbo.docs d " + + "JOIN dbo.contract c ON c.ctr_id = d.doc_fk_contract " + + "WHERE c.ctr_code = _CONTRACTID_ " + + "and d.doc_fk_template = _TEMPLATE_ " + + "AND d.doc_valid = 1 " + + "AND d.doc_fk_status = 1 " + + "AND d.doc_created > DATEADD(MINUTE, -10, SYSDATETIME()) " + + "ORDER BY d.doc_created DESC"; + + String HYPOS_CONTRACT_ID = "HYPOS_CONTRACT_ID"; + + public HyposDbTasks(StoreAccessor harness) { + this.harness = harness; + } + + private String getContractState(String contractId) { + return harness.getEndpoint(HyposDbEndpoint.class) + .executeSql(GET_CONTRACT_STATE_QUERY.replace("_CONTRACTID_", contractId)) + .getValues("STATE") + .get(0) + .toString(); + } + + private String getApprovalRequestState(String contractId) { + return harness.getEndpoint(HyposDbEndpoint.class) + .executeSql(GET_APPROVAL_REQUEST_STATE_QUERY.replace("_CONTRACTID_", contractId)) + .getValues("STATE") + .get(0) + .toString(); + } + + private String getDocumentState(String contractId, DocumentTemplate template) { + Result records = harness.getEndpoint(HyposDbEndpoint.class) + .executeSql(GET_DOCUMENT_STATE_QUERY.replace("_CONTRACTID_", contractId).replace("_TEMPLATE_", template.getValue())); + if (records.isEmpty()) { + return EMPTY_RESULT; + } else { + return records.getValues("STATE").get(0).toString(); + } + } + + public String getContractId(String hypokalkulackaId) { + String contractId = harness.getEndpoint(HyposDbEndpoint.class) + .executeSql(GET_CONTRACT_ID_QUERY.replace("_HYPOKALKULACKAID_", hypokalkulackaId)) + .getValues("CONTRACTID") + .get(0) + .toString(); + harness.store(contractId, HYPOS_CONTRACT_ID); + return contractId; + } + + public String getContractIdByState(HyposContractState contractState) { + return harness.getEndpoint(HyposDbEndpoint.class) + .executeSql(GET_CONTRACT_BY_STATE_QUERY.replace("_CONTRACTSTATE_", contractState.getValue())) + .getValues("CONTRACTID") + .get(0) + .toString(); + } + + public String getContractIdWithBuByState(HyposContractState contractState) { + return harness.getEndpoint(HyposDbEndpoint.class) + .executeSql(GET_CONTRACT_WITH_BU_BY_STATE_QUERY.replace("_CONTRACTSTATE_", contractState.getValue())) + .getValues("CONTRACTID") + .get(0) + .toString(); + } + + public Map getClientDetailsByPin(String clientPin) { + Map personDetails = new HashMap<>(); + Result records = harness.getEndpoint(HyposDbEndpoint.class) + .executeSql(GET_CLIENT_DETAIL_BY_PIN_QUERY.replace("_PIN_", clientPin)); + + if (records.isEmpty()) { + Assertions.fail("No results found from the initial SQL query. Was the input PIN correct? Are you using the correct environment?"); + } + personDetails.put("CTR_CODE", records.get(0).getValue("CTR_CODE", String.class)); + personDetails.put("CIF", records.get(0).getValue("CIF", String.class)); + personDetails.put("FIRST_NAME", records.get(0).getValue("FIRST_NAME", String.class)); + personDetails.put("LAST_NAME", records.get(0).getValue("LAST_NAME", String.class)); + personDetails.put("FULL_NAME", String.format("%s %s", records.get(0).getValue("FIRST_NAME", String.class), records.get(0).getValue("LAST_NAME", String.class))); + personDetails.put("PIN", clientPin); + return personDetails; + } + + public Boolean contractPrescoringFinished(String contractId) { + //1 SQL query each 5 seconds for 180 seconds + for (int i = 0; i < 36; i++) { + try { + Thread.sleep(5000); + String currentState = getContractState(contractId); + harness.log("Current prescoring status for contract {} is {}", contractId, currentState); + if (currentState.equals(OBCHOD_ZALOZEN_KONTROLA_OK.getValue())) { + return true; + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + return false; + } + + public Boolean contractScoringFinished(String contractId) { + //1 SQL query each 5 seconds for 180 seconds + for (int i = 0; i < 36; i++) { + try { + Thread.sleep(5000); + String currentState = getContractState(contractId); + harness.log("Current scoring status for contract {} is {}", contractId, currentState); + if (currentState.equals(OVEROVANI.getValue())) { + return true; + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + return false; + } + + public Boolean contractScoringWithApVerificationFinished(String contractId) { + //1 SQL query each 5 seconds for 180 seconds + for (int i = 0; i < 36; i++) { + try { + Thread.sleep(5000); + String currentState = getApprovalRequestState(contractId); + harness.log("Current approval request status for contract {} is {}", contractId, currentState); + if (currentState.equals(DOPLN_DOKLADY.getValue())) { + return true; + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + return false; + } + + public Boolean loanAccountOpeningFinished(String contractId) { + //1 SQL query each 10 seconds for 420 seconds + for (int i = 0; i < 42; i++) { + try { + Thread.sleep(10000); + String currentState = getContractState(contractId); + harness.log("Current create loan status for contract {} is {}", contractId, currentState); + if (currentState.equals(PRIPRAVA_SMLUV.getValue())) { + return true; + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + return false; + } + + public Boolean contractDocumentFinished(String contractId, DocumentTemplate template) { + //1 SQL query each 10 seconds for 120 seconds + for (int i = 0; i < 12; i++) { + try { + Thread.sleep(10000); + String currentState = getDocumentState(contractId, template); + harness.log("Current document {} status for contract {} is {}", template, contractId, DocumentState.getNameByValue(currentState)); + if (currentState.equals(DocumentState.GENERATED.getValue())) { + return true; + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + return false; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposStructureTasks.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposStructureTasks.java new file mode 100644 index 0000000..cce8f3a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposStructureTasks.java @@ -0,0 +1,117 @@ +package cz.moneta.test.dsl.hypos.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.pages.structure.*; +import java.util.function.Function; + +import static cz.moneta.test.dsl.hypos.enums.HyposLogType.TASK; + +public class HyposStructureTasks { + private final Harness harness; + private HyposCommonTasks tasks; + + public HyposStructureTasks(Harness harness) { + this.harness = harness; + this.tasks = harness.tasks().hypos().hyposCommonTasks(); + } + + public Function checkStructureDrawPostponed() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickDrawPostponed() + .clickResetFilterButton() + .clickSearchButton() + .checkContracts() + .clickBackButton(); + } + + public Function checkStructureDraw() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickDraw() + .checkContracts() + .clickBackButton(); + } + + public Function checkStructureUw2() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickUw2() + .checkContracts() + .clickBackButton(); + } + + public Function checkStructureDocsVerification() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickDocsVerification() + .checkContracts() + .clickEndOfWork() + .clickStructure(); + } + + public Function checkStructureAppraisementFee() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickAppraisementFee() + .clickSearchButton() + .checkContracts() + .clickEndOfWork() + .clickStructure(); + } + + public Function checkStructureLetter() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickLetter() + .checkContracts() + .clickBackButton(); + } + + public Function checkStructurePpd() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickPpd() + .clickActiveSanctions() + .checkContracts() + .clickEndOfWork() + .clickStructure(); + } + + public Function checkStructureUw1() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickUw1() + .checkContracts() + .clickBackButton(); + } + + public Function checkStructureOpus() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickOpus() + .clickSpin() + .clickSpinAllowed() + .checkContracts() + .clickBackButton(); + } + + public Function checkStructurePktu() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickPktu() + .fillFilterDateFrom("01.01.2010") + .clickSearchButton() + .checkTransactions() + .clickBackButton(); + } + + public Function checkStructureClientChange() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickClientChange() + .clickAppendix() + .clickAppendixAllowed() + .selectFilterCreatedBy("-- všichni --") + .clickSearchButton() + .checkContracts() + .clickBackButton(); + } + + public Function checkStructureFinancialException() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickFinancialException() + .checkContracts() + .clickEndOfWork() + .clickStructure(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposTasks.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposTasks.java new file mode 100644 index 0000000..57eeb01 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposTasks.java @@ -0,0 +1,97 @@ +package cz.moneta.test.dsl.hypos.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.HyposProfile; +import cz.moneta.test.dsl.hypos.pages.HyposLoginPage; +import cz.moneta.test.dsl.hypos.pages.contract.ContractHistoryPage; +import cz.moneta.test.dsl.hypos.pages.contract.hyposutils.TestDrawVerificationPage; +import cz.moneta.test.dsl.util.data.client.HyposClient; +import cz.moneta.test.dsl.util.data.client.NewClient; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.hypos.enums.Client.FIRST_CLIENT; +import static cz.moneta.test.dsl.hypos.enums.HyposLogType.TASK; + +public class HyposTasks { + public static final String defaultDateFormat = "d.M.yyyy"; + + private final Harness harness; + + public HyposTasks(Harness harness) { + this.harness = harness; + } + + public HypokalkulackaTasks hypokalkulackaTasks() { + return new HypokalkulackaTasks(harness); + } + + public HypokomTasks hypokomTasks() { + return new HypokomTasks(harness); + } + + public HyposCommonTasks hyposCommonTasks() { + return new HyposCommonTasks(harness); + } + + public HyposWso2Tasks hyposWso2Tasks() { + return new HyposWso2Tasks(harness); + } + + public HyposStructureTasks hyposStructureTasks() { + return new HyposStructureTasks(harness); + } + + public ContractTasks contractTasks() { + return new ContractTasks(harness); + } + + public ValuationTasks valuationTasks() { + return new ValuationTasks(harness); + } + + public Function loginToHyposWithProfile(HyposProfile profile) { + this.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.selectSecondaryProfile(profile.getValue()) + .checkLoginButton(); + } + + public Function searchAndOpenContractAndCheckState(String contractId, String contractState) { + this.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.then(searchAndOpenContract(contractId)) + .checkContractState(contractState); + } + + public Function searchAndOpenContract(String contractId) { + this.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.switchToHyposMainPage() + .clickSearchContract() + .fillContractId(contractId) + .clickSearchcontractButton() + .checkContractId(contractId) + .clickEnterContractButton() + .checkContractIdPresent(contractId); + } + + public Function searchAndVerifyDraw(String contractId) { + this.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.fillContractToSearch(contractId) + .clickSearchButton() + .clickDrawCheckbox() + .clickVerifyDraw(); + } + + public String createNewCifAndCurrentAccount(String bankerUsername, HyposClient hyposClient) { + this.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + NewClientWithCurrentAccountInformation newFoClientInformation = harness.dataPrepare().createCifWithCurrentAccountApiSequence(bankerUsername, hyposClient.getNonClient()); + return newFoClientInformation.getCurrentAccount(); + } + + public String createCurrentAccountForExistingClient(String bankerUsername, HyposContract hyposContract, String cif) { + this.hyposCommonTasks().hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + NewClient newCustomer = new NewClient(hyposContract.getClients().get(FIRST_CLIENT.getValue()).getNonClient(), cif); + return harness.dataPrepare().createCurrentAccountFo(bankerUsername, newCustomer); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposWso2Tasks.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposWso2Tasks.java new file mode 100644 index 0000000..f89d8e1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/HyposWso2Tasks.java @@ -0,0 +1,85 @@ +package cz.moneta.test.dsl.hypos.tasks; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.support.util.Template; + +public class HyposWso2Tasks { + private final Harness harness; + public static final String userIdL2Hypos = "900600300"; + private final String tokenMortgages; + public final String tokenUfo; + + public HyposWso2Tasks(Harness harness) { + this.harness = harness; + this.tokenMortgages = harness.tasks().wso2().authorization().getToken("MORTGAGES_HYP"); + this.tokenUfo = harness.tasks().wso2().authorization().getToken("UFO"); + } + + /** + * 01/ Loads all clients´ products + * FOR cycle to go through all JSON response objects and if current account found, extract it (see @return) + * + * @return clientCurrentAccount - parameter RS_OUACEX within the object same object as RS_OUTYPE=0098 of the API response = current account number + */ + public String getCurrentAccountNumberIfExists(String clientCif) { + String clientCurrentAccount = null; + JsonNode responseBuExists = harness.withWso2() + .prepareRequest() + .withPath("/t/mwf.legacy/HUB/MWFEQ5/001") + .withHeader("USERID_L2", userIdL2Hypos) + .withHeader("Authorization", "Bearer " + tokenMortgages) + .withPayloadFromTemplate(Template.fromFilepath("system/wso2/mortgages_cluster/createInternetBankApis/MWFEQ5.json") + .setQuoted("CIF", clientCif)) + .post() + .andAssertStatus(200) + .extract("Data"); + + for (int i = 0; i < responseBuExists.size(); i++) { + if (responseBuExists.get(i).findValue("RS_OUTYPE").textValue().equals("0098")) { + clientCurrentAccount = responseBuExists.get(i).findValue("RS_OUACEX").textValue(); + harness.log("Current account already exists. Its number is: " + clientCurrentAccount); + break; + } + } + return clientCurrentAccount; + } + + /** + * 04/ Creates a client in UDEBS, if clientUdebsExistence=FALSE + */ + public void createClientInUdebs(String clientCif, String clientFirstName, String clientCurrentAccount, String clientLastName, String clientPin, String clientFullName) { + harness.withWso2() + .prepareRequest() + .withPath("/t/mwf.legacy/MWFA02/001") + .withHeader("USERID_L2", userIdL2Hypos) + .withHeader("Authorization", "Bearer " + tokenUfo) + .withPayloadFromTemplate(Template.fromFilepath("system/wso2/mortgages_cluster/createInternetBankApis/MWFAO2.json") + .setQuoted("CIF", clientCif) + .setQuoted("firstName", clientFirstName) + .setQuoted("lastName", clientLastName) + .setQuoted("currAcc", clientCurrentAccount) + .setQuoted("clientFullName", clientFullName) + .setQuoted("pin", clientPin)) + .post() + .andAssertStatus(200); + harness.log("Client in UDEBS was created."); + } + + /** + * 08/ Insert Internet Bank details to the contract tab Notifications (Sdeleni) + */ + public void insertInternetBankLoginToCommunication(String contractId, String clientPin, String clientIbLogin) { + harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/CRT_PR_SDELENI/001") + .withHeader("USERID_L2", userIdL2Hypos) + .withHeader("Authorization", "Bearer " + tokenMortgages) + .withPayloadFromTemplate(Template.fromFilepath("system/wso2/mortgages_cluster/createInternetBankApis/crt_pr_sdeleni.json") + .setQuoted("ContractId", contractId) + .setQuoted("Text", "Login do IB pro RC " + clientPin + " je: " + clientIbLogin)) + .post() + .andAssertStatus(200); + harness.log("Internet Bank login was saved into contract's notifications (Sdeleni)."); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/ValuationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/ValuationTasks.java new file mode 100644 index 0000000..1d82313 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/hypos/tasks/ValuationTasks.java @@ -0,0 +1,480 @@ +package cz.moneta.test.dsl.hypos.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.dataPrepare.RealtyData; +import cz.moneta.test.dsl.hypos.dataPrepare.valuations.FlatValuationData; +import cz.moneta.test.dsl.hypos.dataPrepare.valuations.HouseValuationData; +import cz.moneta.test.dsl.hypos.enums.RealtySearchType; +import cz.moneta.test.dsl.hypos.pages.cadaster.CadasterRedocDetailPage; +import cz.moneta.test.dsl.hypos.pages.contract.ContractHistoryPage; +import cz.moneta.test.dsl.hypos.pages.contract.realty.CreateNewUnitPage; +import cz.moneta.test.dsl.hypos.pages.contract.realty.OrderValuationPage; +import cz.moneta.test.dsl.hypos.pages.contract.realty.UnitDetailPage; +import cz.moneta.test.dsl.hypos.pages.contract.realty.ValuationDetailPage; +import cz.moneta.test.dsl.hypos.pages.realty.RealtyMenuPage; +import cz.moneta.test.dsl.util.data.YamlLoader; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.hypos.enums.HyposLogType.TASK; + +public class ValuationTasks { + private final String YAML_REALTY_DETAIL_PATH = "yamls/hypos/realtyDetails"; + + private final Harness harness; + + private HyposCommonTasks tasks; + + public ValuationTasks(Harness harness) { + this.harness = harness; + this.tasks = harness.tasks().hypos().hyposCommonTasks(); + } + + /** + * Create new realty in predefined contract. + * + * @param realtyType - String defining if realty will be flat, house or land. + * @return + */ + public Function setNewRealty(int realtyType) { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + YamlLoader yamlLoader = new YamlLoader(YAML_REALTY_DETAIL_PATH, RealtyData.class); + RealtyData data = yamlLoader.parseObject(); + + return start -> start + .clickRealty() + .clickSearchRealty() + .selectRealtyType(data.realtyCategories.get(realtyType).realtyCategory) + .fillAreaName(data.realtyCategories.get(realtyType).propertyArea) + .clickAutosuggestLink(data.realtyCategories.get(realtyType).propertyArea) + .fillDescriptiveNumber(data.realtyCategories.get(realtyType).documentNumber) + .clickSearchButton() + .clickCreateNewUnit() + .selectRealtyType(data.realtyCategories.get(realtyType).finalType) + .selectPledgeType(data.realtyCategories.get(realtyType).pledgeType) + .selectPledgeCode(data.realtyCategories.get(realtyType).pledgeCode) + .clickUseThisUnitCheckbox() + .clickSaveButton() + ; + } + + /** + * Checker, if unit is used in other realty, if so, it is removed to it could be used elsewhere. + * + * @param realtyType - Int defining if realy will be flat, house or land. + * @return + */ + public Function checkUnitUsage(int realtyType) { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + YamlLoader yamlLoader = new YamlLoader(YAML_REALTY_DETAIL_PATH, RealtyData.class); + RealtyData data = yamlLoader.parseObject(); + return start -> start + .clickAddUnit() + .selectUnitCategory(data.realtyCategories.get(realtyType).realtyCategory) + .fillCadastralTerritory(data.realtyCategories.get(realtyType).propertyArea) + .clickAutosuggestLink(data.realtyCategories.get(realtyType).propertyArea) + .fillDocumentNumber(data.realtyCategories.get(realtyType).documentNumber) + .clickSubmit() + .checkUnitUsage(data.realtyCategories.get(realtyType).orientationNumber, data.realtyCategories.get(realtyType).tdPosition) + .clickRealty() + .clickRealtyDetail() + ; + } + + /** + * Adding unit to realty. Method checkUnitUsage should be called before this, because if unit is used elsewhere and it isn't removed first, method fail. + * + * @param realtyType - Int defining if realy will be flat, house or land. + * @return + */ + public Function addUnitToRealty(int realtyType) { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + YamlLoader yamlLoader = new YamlLoader(YAML_REALTY_DETAIL_PATH, RealtyData.class); + RealtyData data = yamlLoader.parseObject(); + + return start -> start + .clickAddUnit() + .selectUnitCategory(data.realtyCategories.get(realtyType).realtyCategory) + .fillCadastralTerritory(data.realtyCategories.get(realtyType).propertyArea) + .clickAutosuggestLink(data.realtyCategories.get(realtyType).propertyArea) + .fillDocumentNumber(data.realtyCategories.get(realtyType).documentNumber) + .clickSubmit() + .addUnit(data.realtyCategories.get(realtyType).orientationNumber) + ; + } + + /** + * Go to Market valuation form + * + * @return + */ + public Function goToMarketValuationForm() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start + .clickRealty() + .clickRealtyDetail() + .clickOnOrderValuation() + ; + } + + /** + * Check if all elements that should be visible in specific sections are visible. + * + * @return + */ + public Function checkElementsInOrderForm() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start + .checkSharedElements() + .checkFlatElements() + .checkHouseElements() + .checkLandElements() + ; + } + + public Function doFlatMarketValuation() { + return doFlatMarketValuation(1); + } + + public Function doHouseMarketValuation() { + return doHouseMarketValuation(0); + } + + /** + * Create a new valuation for realty type - Flat. + * + * @param valuationType - Int defining if realty will go on Verification, desktop, full or online process. + * @return + */ + public Function doFlatMarketValuation(int valuationType) { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + YamlLoader yamlLoader = new YamlLoader("yamls/hypos/valuations/flatValuations", FlatValuationData.class); + FlatValuationData data = yamlLoader.parseObject(); + + return start -> start.selectOrdererType("Mortgage") + .selectFinalType(data.finalType) + .selectPurpose(data.valuationDetails.get(valuationType).purpose) + .insertAddressStreet(data.addressStreet) + .insertAddressDescriptiveNumber(data.addressNumber) + .insertAddressTown(data.addressTown) + .insertAddressPostCode(data.addressPostCode) + .selectContactRole("Žadatel o úvěr") + .insertPurchasePrice(data.valuationDetails.get(valuationType).price) + .clickDocumentsAvailable() + .waitFlatDispositionClickable() + .selectDisposition(data.valuationDetails.get(valuationType).disposition) + .insertArea(data.valuationDetails.get(valuationType).area) + .selectFlatState(data.valuationDetails.get(valuationType).state) + .selectFlatLocation(data.valuationDetails.get(valuationType).placing) + .insertTotalAreaOther(data.valuationDetails.get(valuationType).areaOther) + .clickPropertyNotRentedFlat() + .insertOutsideParking(data.valuationDetails.get(valuationType).outsideParking) + .insertInsideParking(data.valuationDetails.get(valuationType).insideParking) + .insertGarage(data.valuationDetails.get(valuationType).garage) + .selectConstructionMaterialFlat(data.valuationDetails.get(valuationType).houseType) + .selectTechnicalStateFlat(data.valuationDetails.get(valuationType).houseStatus) + .insertBuildYearFlat(data.valuationDetails.get(valuationType).houseYear) + .insertFloors(data.valuationDetails.get(valuationType).houseFloors) + .clickElevatorYes() + .clickDocumentsLater() + .clickSave() + .waitForValuationComplete() + .verifyValuationType(data.valuationDetails.get(valuationType).valuation) + ; + } + + /** + * Create a new valuation for realty type - House. + * + * @param valuationType - Int defining if realy will go on Verification, desktop, full or online process. + * @return + */ + public Function doHouseMarketValuation(int valuationType) { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + YamlLoader yamlLoader = new YamlLoader("yamls/hypos/valuations/houseValuations", HouseValuationData.class); + HouseValuationData data = yamlLoader.parseObject(); + return start -> start + .selectFinalType(data.finalType) + .selectPurpose(data.valuationDetails.get(valuationType).purpose) + .insertAddressStreet(data.addressStreet) + .insertAddressDescriptiveNumber(data.addressNumber) + .insertAddressTown(data.addressTown) + .insertAddressPostCode(data.addressPostCode) + .selectContactRole("Žadatel o úvěr") + .insertPurchasePrice(data.valuationDetails.get(valuationType).price) + .clickDocumentsAvailable() + .waitHouseMaterialClickable() + .selectConstructionMaterial(data.valuationDetails.get(valuationType).material) + .insertBuildYear(data.valuationDetails.get(valuationType).year) + .insertAreaTotalHouse(data.valuationDetails.get(valuationType).area) + .insertFloorAreaHouse(data.valuationDetails.get(valuationType).areaOther) + .selectTechnicalState(data.valuationDetails.get(valuationType).state) + .clickPropertyNotRentedHouse() + .clickGarageInHouse() + .clickNoSeparateGarageInHouse() + .clickDocumentsLater() + .clickSave() + .waitForValuationComplete() + .verifyValuationType(data.valuationDetails.get(valuationType).valuation) + ; + } + + /** + * Tests if order is set to defer state with correct comment. + * + * @return + */ + public Function deferOrder() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start + .clickDeferOrder() + .insertDelayUntil("31.12.2023") + .insertDelayComment(ValuationDetailPage.autoComment) + .clickDeferOrderInput() + .acceptAlert() + .verifyLastOperation("odloženo") + .verifyLastOperationComment() + ; + } + + /** + * Tests if order is set to cancel state with correct comment. + * + * @return + */ + public Function cancelOrder() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start + .clickCancelOrder() + .insertCancelComment(ValuationDetailPage.autoComment) + .clickCancelOrderInput() + .acceptAlert() + .verifyLastOperation("zrušeno") + .verifyLastOperationComment() + ; + } + + /** + * Tests if order is gived with correct comment. + * + * @return + */ + public Function giveOrder() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start + .clickGiveOrder() + .insertForwardComment(ValuationDetailPage.autoComment) + .clickGiveOrderInput() + .acceptAlert() + .verifyLastOperation("předáno") + .verifyLastOperationComment() + ; + } + + /** + * Tests if order is taken. + * + * @return + */ + public Function takeOrder() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start + .clickTakeOrder() + .acceptAlert() + .verifyLastOperation("převzato") + ; + } + + /** + * Fill required fields in valuation form for finished the order. + * + * @return + */ + public Function finishOrder() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start + .clickTakeOrder() + .acceptAlert() + .verifyLastOperation("převzato") + .clickRisks() + .setAllRisksNo() + .clickFinalSection() + .insertReproductivePrice(500000) + .insertCurrentPrice(1000000) + .clickSaveAll() + .clickProcessOrder() + .acceptAlert() + .waitForValuationCompleted() + ; + } + + public Function finishFlatOrder() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickTakeOrder() + .acceptAlert() + .verifyLastOperation("převzato") + .clickRealtyDescription() + .selectFlatHeating("Centrální dálkové (Kotel mimo stavbu)") + .selectFlatHeatingMedium("Plyn") + .clickFlatAircondition() + .insertBuildApart("8") + .clickBuildGas() + .clickBuildSolarPower() + .clickRisks() + .setAllRisksNo() + .clickFinalSection() + .clickComparatorAddRealty() + .insertComparatorRealtyArea("50") + .insertComparatorPrice("50000") + .clickComparatorAddRealty() + .insertComparatorRealtyArea("50") + .insertComparatorPrice("50000") + .clickComparatorAddRealty() + .insertComparatorRealtyArea("50") + .insertComparatorPrice("50000") + .insertReproductivePrice(7000000) + .insertCurrentPrice(6800000) + .clickSaveAll() + .clickProcessOrder() + .acceptAlert() + .waitForValuationCompleted(); + } + + public Function finishBuildingOrder() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickTakeOrder() + .acceptAlert() + .verifyLastOperation("převzato") + .clickRealtyDescription() + .selectHouseMainBuildType("Samostatně stojící") + .selectHouseReconstruction("Bez rekonstrukce") + .selectHouseHeatingSystem("Centrální domovní (Kotel ve stavbě)") + .selectHouseHeatingMedium("Plyn") + .clickHouseWaterNetwork() + .clickHouseSewerageNetwork() + .clickHouseSewerageNetworkOwn() + .clickHouseGasNetwork() + .clickHouseSolarPower() + .clickHouseAircondition() + .clickHouseFloorDownstair() + .clickHouseFloorUpstair() + .clickHouseFloorAttic() + .insertBuiltUpArea("80") + .insertFloorArea("140") + .clickRisks() + .setAllRisksNo() + .clickFinalSection() + .clickComparatorAddRealty() + .insertComparatorRealtyArea("50") + .insertSurroundSpace("800") + .insertComparatorLandArea("80") + .insertComparatorPrice("50000") + .clickComparatorAddRealty() + .insertComparatorRealtyArea("50") + .insertComparatorLandArea("80") + .insertComparatorPrice("50000") + .clickComparatorAddRealty() + .insertComparatorRealtyArea("50") + .insertComparatorLandArea("80") + .insertComparatorPrice("50000") + .insertCurrentPrice(6800000) + .clickSaveAll() + .clickProcessOrder() + .acceptAlert() + .waitForValuationCompleted(); + } + + /** + * Checking presence of elements that should be located in valuation form. + * @return + */ + public Function checkFlatElements() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + String[] selectElements = {"flat-technical-description", "flat-unit-placement", "flat-unit-type", "flat-unit-disposition", "flat-technical-status", + "flat-heating", "flat-technical-condition-before-reconstruction", "flat-building-type", "flat-building-technical-condition", "flat-building-land", + "flat-building-realty-locality", "flat-building-traffic-car"}; + + String[] inputElement = {"flat-building-flat-floor", "flat-floor-area", "flat-countable-floor-area", "flat-floor-area-other", "flat-terrace-area", + "flat-balcony-loggia-area", "flat-lumber-area", "flat-front-garden-area", "flat-cellar-area", "flat-reconstruction-year", "flat-wear", + "flat-indoor-parking", "flat-outdoor-parking", "flat-garage", "flat-building-construction-year", "flat-building-reconstruction-year", "flat-building-wear", "flat-building-upstairs-floor", "flat-acceptable-budget"}; + + String[] textAreaElements = {"flat-garage-note", "flat-reconstruction-description", "flat-budget-comment"}; + + return start -> start + .clickRealtyDescription() + .checkElements(selectElements, "select") + .checkElements(inputElement, "input") + .checkElements(textAreaElements, "textarea") + .clickRealtyDescription() + ; + } + + /** + * Verifying correctness of reproductive price formula. + * @return + */ + public Function verifyReproductivePrice() { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start + .clickRealtyDescription() + .clickFinalSection() + .doCalculationAndVerify() + ; + } + + public Function searchCadasterRedocDetail(String areaCode, String lv) { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickRealtySearchPage() + .selectRealtyType(RealtySearchType.PAPER_OF_OWNERSHIP.getValue()) + .fillAreaCode(areaCode) + .clickAutosuggestLink(areaCode) + .fillLv(lv) + .clickSearchButton() + .clickRedocDetail(lv); + } + + public Function createNewFlatUnit(String areaCode, String flatNumber) { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickRealty() + .clickSearchRealty() + .selectRealtyType(RealtySearchType.FLAT.getValue()) + .fillAreaCode(areaCode) + .clickAutosuggestLink(areaCode) + .fillFlatNumber(flatNumber) + .clickSearchButton() + .clickCreateNewSearchUnit() + .selectRealtyType("Jednotka") + .selectPledgeType("Nemovitosti - bydlení") + .clickSavePledgeButton(); + } + + public Function createNewBuildingUnit(String areaCode, String buildingNumber) { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickRealty() + .clickSearchRealty() + .selectRealtyType(RealtySearchType.HOUSE.getValue()) + .fillAreaCode(areaCode) + .clickAutosuggestLink(areaCode) + .fillDescriptiveNumber(buildingNumber) + .clickSearchButton() + .clickCreateNewSearchUnit() + .selectRealtyType("Budova") + .selectPledgeType("Nemovitosti - bydlení") + .selectPledgeCode("33 - Rodinný dům s pozemkem") + .clickSavePledgeButton(); + } + + public Function addLandToUnit(String lv, String areaCode, String buildingNumber, String landNumber) { + tasks.hyposLog(TASK, new Object(){}.getClass().getEnclosingMethod().getName()); + return start -> start.clickRealty() + .clickRealtyDetail(buildingNumber) + .clickAddUnit() + .selectUnitCategory(RealtySearchType.LAND.getValue()) + .fillCadastralTerritory(areaCode) + .clickAutosuggestLink(areaCode) + .fillDocumentNumber(lv) + .fillLandNumber(landNumber) + .clickSubmit() + .addUnit(landNumber); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/Ib.java b/tests/src/main/java/cz/moneta/test/dsl/ib/Ib.java new file mode 100644 index 0000000..0d8a635 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/Ib.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.authentication.LoginPage; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class Ib { + + private final Harness harness; + private IbEndpoint ibEndpoint; + + public Ib(Harness harness) { + this.harness = harness; + } + + public LoginPage openLoginPage() { + ibEndpoint = harness.getEndpoint(IbEndpoint.class); + ibEndpoint.openApplication(); + + // Login page is frame based, frames are added by javascript. Yeah, life is a hassle, I know + ibEndpoint.switchToFrame("//frameset/frame[2]"); + + return Builders.newWebFlowBuilder(LoginPage.class, ibEndpoint, harness); + } + + public void closeApplication() { + harness.closeEndpoint(harness.getEndpoint(IbEndpoint.class)); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/IbPageFlow.java b/tests/src/main/java/cz/moneta/test/dsl/ib/IbPageFlow.java new file mode 100644 index 0000000..8da3859 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/IbPageFlow.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ib; + +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface IbPageFlow> extends WebFlow { + String BUSY_LOADER = "//div[@class='busyLoader']"; + String MONETA_LOGO_SPINER = "//img[@alt='MONETA Logo Spinner']"; + + default void beforePageLoad(WebEndpoint endpoint) { + endpoint.waitForElementsToLoad(300, Until.GONE, BUSY_LOADER); + endpoint.waitForElementsToLoad(300, Until.GONE, MONETA_LOGO_SPINER); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/current/CurrentAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/current/CurrentAccountPage.java new file mode 100644 index 0000000..9a92860 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/current/CurrentAccountPage.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.ib.account.current; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; +import org.openqa.selenium.WebElement; + +import java.util.List; + +import static cz.moneta.test.dsl.ib.account.current.CurrentAccountPage.CURRENT_ACCOUNT_LIST_HEADER; + +@Wait(value = CURRENT_ACCOUNT_LIST_HEADER, waitSecondsForElement = 40) +public interface CurrentAccountPage extends IbPageFlow, MainMenu, AccountsAndTransactionsSubmenu, StoreAccessor { + + String CURRENT_ACCOUNT_LIST_HEADER = "//div[@id='document']//img[contains(@src, 'prehled_beznych_uctu.gif')]"; + String FIRST_ACCOUNT_CELL = "//div[@id='document']//table[@id='balanceList_1_1']//tr[@class='listBodyOdd']"; + String AVAILABLE_BALANCE_XPATH = "//td[@class='listItemBold listBodyOdd']"; + String AVAILABLE_BALANCE_VALUE_KEY = "AVAILABLE_BALANCE_VALUE"; + String ACCOUNTS = "//span[@class='account listBodyOdd']/a"; + String FLEXICREDIT_AMOUNT = "//a[contains(text(), '%s')]//ancestor::tr[contains(@id, 'a')]//span[contains(text(), 'částka je včetně kontokorentu')]//following-sibling::span"; + + @CheckElementPresent(FIRST_ACCOUNT_CELL) + CurrentAccountPage checkUserHasACurrentAccount(); + + @StoreElementContent(storeKey = AVAILABLE_BALANCE_VALUE_KEY, value = AVAILABLE_BALANCE_XPATH, by = Lookup.XPATH) + CurrentAccountPage getAvailableBalance(); + + @CustomAction + default CurrentAccountPage verifyFlexiCreditAmount(String account, String expectedFlexiAmount) { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + String actualFlexiAmount = endpoint.getText(String.format(FLEXICREDIT_AMOUNT, account)).replaceAll("Kč| ", ""); + if (!expectedFlexiAmount.contains(actualFlexiAmount)) { + throw new HarnessException("Actual amount is not equals to expected amount"); + } + return null; + } + + @CustomAction + default CurrentAccountPage checkExistJustCurrentAccount(String currentAccountNumber) { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + int expectedAccounts = 1; + List listAccountElements = endpoint.findAndGetListOfElements(ACCOUNTS, Lookup.XPATH); + boolean isCurrentAccountExist = listAccountElements.stream() + .anyMatch(s -> s.getText().contains(currentAccountNumber)); + + Assertions.assertTrue(isCurrentAccountExist, "Expected account name is " + currentAccountNumber); + Assertions.assertEquals(expectedAccounts, listAccountElements.size(), "Expected number of accounts is " + expectedAccounts); + + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/current/TransactionListPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/current/TransactionListPage.java new file mode 100644 index 0000000..c42b3d2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/current/TransactionListPage.java @@ -0,0 +1,55 @@ +package cz.moneta.test.dsl.ib.account.current; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.current.TransactionListPage.TRANSACTION_LIST_HEADER; + +@Wait(TRANSACTION_LIST_HEADER) +public interface TransactionListPage extends IbPageFlow, MainMenu, AccountsAndTransactionsSubmenu { + + String TRANSACTION_LIST_HEADER = "//div[@id='document']//img[contains(@src, 'prehled_trans.gif')]"; + String FIRST_TRANSACTION_CELL = "//div[@id='document']//table[@id='movementList_1_2']//tr[@class='listBodyOdd']"; + String FILTER_TRANSACTIONS_BUTTON = "//div[@id='document']//form[@id='mainFrm']//img[contains(@src, 'zobrazit_b.gif')]"; + String DATE_FROM = "//input[@id='valueDateFrom']"; + String TRANSACTIONS_TYPES = "//select[@id='transactionType']"; + String DISPLAY_BUTTON = "//table[@id='helpNav']//img[contains(@src, 'images_new/zobrazit_b.gif')]"; + String LOADER_DIV = "//div[@class='busyLoader']"; + String PAYMENT_VALUE_XPATH = "//td/font[text()='%s']"; + String TRANSACTIONS_DATES = "//table[@id='movementList_1_2']//td[@class='listItem' and contains(text(), '%s')]"; + + @CustomAction + default TransactionListPage checkDateOfTransactionIfPresent(String transactionDate) { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.isAtLeastOneElementPresent(String.format(TRANSACTIONS_DATES, transactionDate)); + return null; + } + + @CheckElementPresent(FIRST_TRANSACTION_CELL) + TransactionListPage checkUserHasSomeTransactions(); + + @Click(FILTER_TRANSACTIONS_BUTTON) + TransactionListPage clickFilterTransactions(); + + @TypeInto(value = DATE_FROM, clear = true) + TransactionListPage fillDateFrom(String actualDate); + + @Select(TRANSACTIONS_TYPES) + TransactionListPage selectTransactionsTypes(String transactionTypes); + + @Click(value = DISPLAY_BUTTON, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + TransactionListPage clickDisplayTransactions(); + + @CheckElementPresent(value = PAYMENT_VALUE_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + TransactionListPage checkPaymentValue(String paymentValue); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/CancelSavingAccountCheckPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/CancelSavingAccountCheckPage.java new file mode 100644 index 0000000..43bbb39 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/CancelSavingAccountCheckPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ib.account.saving; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.saving.CancelSavingAccountCheckPage.NAME_PAGE_XPATH; +import static cz.moneta.test.dsl.ib.account.saving.CancelSavingAccountCheckPage.SECOND_STEP_IN_PROGRESS_IMG; + +@Wait({NAME_PAGE_XPATH, SECOND_STEP_IN_PROGRESS_IMG}) +public interface CancelSavingAccountCheckPage extends IbPageFlow, MainMenu, SavingMenu { + String NAME_PAGE_XPATH = "//img[@alt='Zrušení spořicícho účtu']"; + String SECOND_STEP_IN_PROGRESS_IMG = "//img[@src='images_new/top_step2.gif']"; + String MOBILE_KEY_INPUT = "//input[@id='SMSCode']"; + String SIGN_BUTTON = "//a[@id='sendBtn']"; + + @TypeInto(MOBILE_KEY_INPUT) + CancelSavingAccountCheckPage fillInMobileKey(String mobileKey); + + @Click(SIGN_BUTTON) + CancelSavingAccountConfirmPage clickSignButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/CancelSavingAccountConfirmPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/CancelSavingAccountConfirmPage.java new file mode 100644 index 0000000..50260f1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/CancelSavingAccountConfirmPage.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ib.account.saving; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.saving.CancelSavingAccountConfirmPage.NAME_PAGE_XPATH; +import static cz.moneta.test.dsl.ib.account.saving.CancelSavingAccountConfirmPage.THIRD_STEP_IN_PROGRESS_IMG; + +@Wait({NAME_PAGE_XPATH, THIRD_STEP_IN_PROGRESS_IMG}) +public interface CancelSavingAccountConfirmPage extends IbPageFlow, MainMenu, SavingMenu { + String NAME_PAGE_XPATH = "//img[@alt='Zrušení spořicícho účtu']"; + String THIRD_STEP_IN_PROGRESS_IMG = "//img[@src='images_new/top_step3.gif']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/CancelSavingAccountEnteringPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/CancelSavingAccountEnteringPage.java new file mode 100644 index 0000000..ebad577 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/CancelSavingAccountEnteringPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ib.account.saving; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.saving.CancelSavingAccountEnteringPage.FIRST_STEP_IN_PROGRESS_IMG; +import static cz.moneta.test.dsl.ib.account.saving.CancelSavingAccountEnteringPage.NAME_PAGE_XPATH; + +@Wait({NAME_PAGE_XPATH, FIRST_STEP_IN_PROGRESS_IMG}) +public interface CancelSavingAccountEnteringPage extends IbPageFlow, MainMenu, SavingMenu { + String NAME_PAGE_XPATH = "//img[@alt='Zrušení spořicícho účtu']"; + String FIRST_STEP_IN_PROGRESS_IMG = "//img[@src='images_new/top_step1.gif']"; + String CONTINUE_BUTTON = "//img[@alt='Pokračovat']"; + + @Click(CONTINUE_BUTTON) + CancelSavingAccountCheckPage clickToContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/NewSavingAccountCheckPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/NewSavingAccountCheckPage.java new file mode 100644 index 0000000..eae8274 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/NewSavingAccountCheckPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ib.account.saving; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.saving.NewSavingAccountCheckPage.PAGE_XPATH; +import static cz.moneta.test.dsl.ib.account.saving.NewSavingAccountCheckPage.SECOND_STEP_IN_PROGRESS_IMG; + +@Wait({PAGE_XPATH, SECOND_STEP_IN_PROGRESS_IMG}) +public interface NewSavingAccountCheckPage extends IbPageFlow, MainMenu, SavingMenu { + String PAGE_XPATH = "//img[@alt='Nový spoříci účet']"; + String SECOND_STEP_IN_PROGRESS_IMG = "//img[@src='images_new/top_step2.gif']"; + String MOBILE_KEY = "//input[@id='SMSCode']"; + String CONFIRM_BUTTON = "//a[@id='sendBtn']"; + + @TypeInto(MOBILE_KEY) + NewSavingAccountCheckPage fillInSmsKey(String smsKey); + + @Click(CONFIRM_BUTTON) + OverviewOfSavingsAccounts clickToConfirmationButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/NewSavingAccountConfirmPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/NewSavingAccountConfirmPage.java new file mode 100644 index 0000000..d501c78 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/NewSavingAccountConfirmPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ib.account.saving; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.saving.NewSavingAccountConfirmPage.PAGE_XPATH; +import static cz.moneta.test.dsl.ib.account.saving.NewSavingAccountConfirmPage.THIRD_STEP_IN_PROGRESS_IMG; + +@Wait({PAGE_XPATH, THIRD_STEP_IN_PROGRESS_IMG}) +public interface NewSavingAccountConfirmPage extends IbPageFlow, MainMenu, SavingMenu { + String PAGE_XPATH = "//img[@alt='Nový spoříci účet']"; + String THIRD_STEP_IN_PROGRESS_IMG = "images_new/top_step3.gif"; + String CONFIRMATION_TEXT_XPATH = "//b[text()='Požadavek na založení nového spořicího účtu byl úspěšně odeslán.']"; + String OVERVIEW_OF_SAVING_ACCOUNTS_BUTTON = "//img[@alt='Přehled spořicích účtů']"; + + @CheckElementPresent(CONFIRMATION_TEXT_XPATH) + NewSavingAccountConfirmPage checkConfirmationText(); + + @Click(OVERVIEW_OF_SAVING_ACCOUNTS_BUTTON) + NewSavingAccountConfirmPage clickOverviewOfSavingsAccounts(); + + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/NewSavingAccountEnteringPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/NewSavingAccountEnteringPage.java new file mode 100644 index 0000000..5359c10 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/NewSavingAccountEnteringPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.ib.account.saving; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.saving.NewSavingAccountEnteringPage.PAGE_XPATH; +import static cz.moneta.test.dsl.ib.account.saving.NewSavingAccountEnteringPage.FIRST_STEP_IN_PROGRESS_IMG; + +@Wait({PAGE_XPATH, FIRST_STEP_IN_PROGRESS_IMG}) +public interface NewSavingAccountEnteringPage extends IbPageFlow, MainMenu, SavingMenu { + String PAGE_XPATH = "//img[@alt='Nový spoříci účet']"; + String FIRST_STEP_IN_PROGRESS_IMG = "//img[@src='images_new/top_step1.gif']"; + String INPUT_ACCOUNT_NAME = "//input[@id='accountName']"; + String TAX_JURISDICTION_MENU = "//select[@id='zeme_1']"; + String CHECKBOX_PRECONTRACTUAL_INFORMATION = "//input[@name='prvaP']"; + String CHECKBOX_PRODUCTION_CONDITIONS = "//input[@name='druhaP']"; + String CONTINUE_BUTTON = "//img[@alt='Pokračovat']"; + + @TypeInto(INPUT_ACCOUNT_NAME) + NewSavingAccountEnteringPage fillInAccountName(String fillYourAccountName); + + @Select(TAX_JURISDICTION_MENU) + NewSavingAccountEnteringPage selectTaxJurisdiction(String taxJurisdiction); + + @Click(CHECKBOX_PRECONTRACTUAL_INFORMATION) + NewSavingAccountEnteringPage confirmCheckPrecontractualInformation(); + + @Click(CHECKBOX_PRODUCTION_CONDITIONS) + NewSavingAccountEnteringPage confirmCheckProductionConditions(); + + @Click(CONTINUE_BUTTON) + NewSavingAccountCheckPage clickToContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/OverviewOfSavingsAccounts.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/OverviewOfSavingsAccounts.java new file mode 100644 index 0000000..d15f886 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/OverviewOfSavingsAccounts.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ib.account.saving; + + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.dsl.ib.components.UserMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.StoreElementContent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.saving.OverviewOfSavingsAccounts.OVERVIEW_SAVING_ACCOUNTS_PAGE_XPATH; + +@Wait(OVERVIEW_SAVING_ACCOUNTS_PAGE_XPATH) +public interface OverviewOfSavingsAccounts extends IbPageFlow, MainMenu, UserMenu, SavingMenu { + String OVERVIEW_SAVING_ACCOUNTS_PAGE_XPATH = "//img[@alt='Přehled spořicích účtů']"; + String FIRST_SAVING_ACCOUNT_XPATH = "//tr[@id='a1']"; + String ACCOUNT_NUMBER_XPATH = "//tr[@id='a1']//a[@class='blueNavWP']"; + String SAVING_ACCOUNT_NUMBER_KEY = "SAVING_ACCOUNT_NUMBER"; + String CANCEL_BUTTON = "//img[@src='images_new/zrusit_wb.gif']"; + + @CheckElementPresent(FIRST_SAVING_ACCOUNT_XPATH) + OverviewOfSavingsAccounts checkAccountAndGetAccountNumber(); + + @Click(value = CANCEL_BUTTON) + CancelSavingAccountEnteringPage clickToCancel(); + + @StoreElementContent(storeKey = SAVING_ACCOUNT_NUMBER_KEY, value = ACCOUNT_NUMBER_XPATH) + OverviewOfSavingsAccounts getSavingAccountNumber(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/SavingsAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/SavingsAccountPage.java new file mode 100644 index 0000000..9bdde7a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/SavingsAccountPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ib.account.saving; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.saving.SavingsAccountPage.SAVING_ACCOUNTS_LIST_HEADER; + +@Wait(value = SAVING_ACCOUNTS_LIST_HEADER) +public interface SavingsAccountPage extends IbPageFlow, MainMenu, SavingMenu { + String SAVING_ACCOUNTS_LIST_HEADER = "//div[@id='document']//td/img[contains(@src, 'prehled_sporeni.gif')]"; + String BUTTTON_SAVING_ACCOUNT_ESTABLISHMENT_ONLINE = "//table[@id='createSavings']//tr[2]//img[@alt='Založit online']"; + String SAVING_ACCOUNT_NAME_XPATH = "//a[contains(text(),'%s')]/ancestor::tr[@class='odd']//a[@class='blueNavWP']"; + + @Click(BUTTTON_SAVING_ACCOUNT_ESTABLISHMENT_ONLINE) + NewSavingAccountEnteringPage clickButtonEstablishmentOnlineSavingAccount(); + + @Click(value = SAVING_ACCOUNT_NAME_XPATH, isStringDynamicXpath = true) + OverviewOfSavingsAccounts clickToSpecificSavingAccountOnSavingAccountPage(String nameSavingAccount); + + @Click(TRANSFER_OF_FOUNDS) + TransferOfFoundsMainPage clickToTransferOfFounds(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsCheckPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsCheckPage.java new file mode 100644 index 0000000..07fddd6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsCheckPage.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.ib.account.saving; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.CheckElementsPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.saving.TransferOfFoundsCheckPage.*; + +@Wait({PAGE_ID, IMG_NAME_OF_PAGE, SECOND_STEP_IN_PROGRESS_IMG}) +public interface TransferOfFoundsCheckPage extends IbPageFlow, MainMenu, SavingMenu { + String PAGE_ID = "//div[@id='parentform']"; + String IMG_NAME_OF_PAGE = "//img[@alt='Převod prostředků']"; + String SECOND_STEP_IN_PROGRESS_IMG = PAGE_ID + "//img[@src='images_new/top_step2.gif']"; + String WITHOUT_SIGN_BUTTON = PAGE_ID + "//a[@id='sendNoSign' and contains(text(),'BEZ PODPISU')]"; + String SAVE_TO_SIGN_BUTTON = PAGE_ID + "//a[@id='sendToWaitingRoom' and contains(text(),'ULOŽIT K PODPISU')]"; + + //Transaction to saving account + String FROM_ACCOUNT_CA_XPATH = PAGE_ID + "//td[contains(text(),'Z účtu')]/following-sibling::td[contains(text(),'Běžný účet CZK')]"; + String TO_ACCOUNT_SA_XPATH = PAGE_ID + "//td[contains(text(),'Na účet')]/following-sibling::td[contains(text(),'Spořicí účet CZK')]"; + String VALUE = PAGE_ID + "//td[contains(text(),'Částka')]/following-sibling::td[contains(text(),'%s')]"; + + //Transaction to current account + String FROM_ACCOUNT_SA_XPATH = PAGE_ID + "//td[contains(text(),'Z účtu')]/following-sibling::td[contains(text(),'Spořicí účet CZK')]"; + String TO_ACCOUN_CA_XPATH = PAGE_ID + "//td[contains(text(),'Na účet')]/following-sibling::td[contains(text(),'Běžný účet CZK')]"; + + @CheckElementsPresent({ + @CheckElementPresent(value = FROM_ACCOUNT_CA_XPATH), + @CheckElementPresent(value = TO_ACCOUNT_SA_XPATH), + @CheckElementPresent(value = VALUE, isStringDynamicXpath = true) + }) + TransferOfFoundsCheckPage checkValuesToTransactionToSavingAccount(String valueOfAmount); + + @Click(WITHOUT_SIGN_BUTTON) + TransferOfFoundsConfirmPage clickToWithoutSignButton(); + + @CheckElementsPresent({ + @CheckElementPresent(value = FROM_ACCOUNT_SA_XPATH), + @CheckElementPresent(value = TO_ACCOUN_CA_XPATH), + @CheckElementPresent(value = VALUE, isStringDynamicXpath = true) + }) + TransferOfFoundsCheckPage checkValuesToTransactionFromSavingAccount(String valueOfAmount); + + @Click(SAVE_TO_SIGN_BUTTON) + TransferOfFoundsConfirmPage clickSaveToSignButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsConfirmPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsConfirmPage.java new file mode 100644 index 0000000..1e52f65 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsConfirmPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ib.account.saving; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.accountsandtransactions.paymentawaitingsignature.PaymentsAwaitingSignature; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.saving.TransferOfFoundsConfirmPage.*; + +@Wait({PAGE_ID, IMG_NAME_OF_PAGE, THIRD_STEP_IN_PROGRESS_IMG, TABLE_TRANSFER_DONE_XPATH}) +public interface TransferOfFoundsConfirmPage extends IbPageFlow, MainMenu, SavingMenu { + String PAGE_ID = "//div[@id='parentform']"; + String IMG_NAME_OF_PAGE = "//img[@alt='Převod prostředků']"; + String THIRD_STEP_IN_PROGRESS_IMG = PAGE_ID + "//img[@src='images_new/top_step3.gif']"; + String TABLE_TRANSFER_DONE_XPATH = PAGE_ID + "//table[@id='tdsoMoneyTransferDone_3_1']"; + String OVERVIEW_SAVING_ACCOUNTS_BUTTON = PAGE_ID + "//img[@alt='Přehled spořicích účtů']"; + String PAYMENTS_TO_SIGN_BUTTON = PAGE_ID + "//img[@alt='Platby k podpisu']"; + + @Click(OVERVIEW_SAVING_ACCOUNTS_BUTTON) + OverviewOfSavingsAccounts clickToOverviewSavingAccounts(); + + @Click(PAYMENTS_TO_SIGN_BUTTON) + PaymentsAwaitingSignature clickPaymentsToSingButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsEnteringPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsEnteringPage.java new file mode 100644 index 0000000..6056e3d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsEnteringPage.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.ib.account.saving; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ib.account.saving.TransferOfFoundsEnteringPage.*; + +@Wait({PAGE_ID, IMG_NAME_OF_PAGE, FIRST_STEP_IN_PROGRESS_IMG, TABLE_TRANSFER_XPATH, TRANSFER_TO_SAVING_ACCOUNT_XPATH}) +public interface TransferOfFoundsEnteringPage extends IbPageFlow, MainMenu, SavingMenu { + String PAGE_ID = "//div[@id='parentform']"; + String IMG_NAME_OF_PAGE = "//img[@alt='Převod prostředků']"; + String FIRST_STEP_IN_PROGRESS_IMG = PAGE_ID + "//img[@src='images_new/top_step1.gif']"; + String TABLE_TRANSFER_XPATH = "//table[@id='tableTransfer']"; + String TRANSFER_TO_SAVING_ACCOUNT_XPATH = TABLE_TRANSFER_XPATH + "//td[contains(text(),'Převod')]/following::input[@id='transferType']/following-sibling::span[contains(text(),'Na spořicí účet')]"; + String INPUT_AMOUNT = PAGE_ID + "//td[contains(text(), 'Částka')]//parent::td//following::input[@id='amount']"; + String CONTINUE_BUTTON = "//img[@alt='Pokračovat']"; + + //Table - Transfer to saving account + String TRANSFER_TO_SAVING_ACCOUNT_TABLE = "//table[@id='transfer.toSavingAccount']"; + String FROM_ACCOUNT_XPATH = TRANSFER_TO_SAVING_ACCOUNT_TABLE + "//td[contains(text(), 'Z účtu')]/following-sibling::td//select[@id='fromAccount']"; + String DISPO_CURRENT_ACCOUNT_XPATH = TRANSFER_TO_SAVING_ACCOUNT_TABLE + "//tr[@id='_tr_dispoBalance2']/td[text()='Disponibilní zůstatek']"; + String DUE_DATE = "//td[text()='Datum splatnosti']/following::input[@id='valueDateToSavingAcc']"; + + //Transfer from saving account + String TRNSFER_TO_MONETA_XPATH = "//td[contains(text(),'Převod na')]//following::input[@id='transferTo']/following-sibling::span[text()='Vlastní účet v MONETA Money Bank']"; + String TO_ACCOUNT_XPATH = "//span[contains(text(), 'Ze spořicího účtu')]//preceding-sibling::input[@id='transferType']"; + String SELECT_ACCOUNT = "//td[contains(text(),'Na účet')]//following::select[@id='toAccount']"; + + @TypeInto(INPUT_AMOUNT) + TransferOfFoundsEnteringPage inputAmountToTransfer(String amountToTransfer); + + @CheckElementsPresent({ + @CheckElementPresent(value = FROM_ACCOUNT_XPATH), + @CheckElementPresent(value = DISPO_CURRENT_ACCOUNT_XPATH), + @CheckElementPresent(value = DUE_DATE) + }) + TransferOfFoundsEnteringPage checkElementsTransferToSavingAccount(); + + @Click(CONTINUE_BUTTON) + TransferOfFoundsCheckPage clickToContinueButton(); + + @Click(TO_ACCOUNT_XPATH) + TransferOfFoundsEnteringPage chooseTransferFromSavingAccount(); + + @CheckElementsPresent({ + @CheckElementPresent(value = TRNSFER_TO_MONETA_XPATH), + @CheckElementPresent(value = SELECT_ACCOUNT), + @CheckElementPresent(value = DUE_DATE) + }) + TransferOfFoundsEnteringPage checkElementsTransferFromSavingAccount(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsMainPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsMainPage.java new file mode 100644 index 0000000..a698365 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/account/saving/TransferOfFoundsMainPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ib.account.saving; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.SavingMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.account.saving.TransferOfFoundsMainPage.*; + +@Wait({PAGE_ID, IMG_NAME_OF_PAGE, IMG_CHOOSE_BUTTON}) +public interface TransferOfFoundsMainPage extends IbPageFlow, MainMenu, SavingMenu { + String PAGE_ID = "//div[@id='parentform']"; + String IMG_NAME_OF_PAGE = "//img[@alt='Převod prostředků']"; + String IMG_CHOOSE_BUTTON = "//div[@id='tdsoTran']//img[@alt='Zvolit žádost']"; + + @Click(IMG_CHOOSE_BUTTON) + TransferOfFoundsEnteringPage clickToChooseButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/ListOfStandingOrdersDirectDebitsAndSipoPaymentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/ListOfStandingOrdersDirectDebitsAndSipoPaymentsPage.java new file mode 100644 index 0000000..5df774a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/ListOfStandingOrdersDirectDebitsAndSipoPaymentsPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.accountsandtransactions.directdebitorder.DirectDebitAuthorizePage; +import cz.moneta.test.dsl.ib.accountsandtransactions.directdebitorder.DirectDebitChangePage; +import cz.moneta.test.dsl.ib.accountsandtransactions.directdebitorder.DirectDebitCreatePage; +import cz.moneta.test.dsl.ib.accountsandtransactions.sipopayment.SipoOrderCreatePage; +import cz.moneta.test.dsl.ib.accountsandtransactions.standingorder.StandingOrderCreatePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.accountsandtransactions.ListOfStandingOrdersDirectDebitsAndSipoPaymentsPage.NEW_DIRECT_DEBIT_AUTHORIZATION; + +@Wait(value = NEW_DIRECT_DEBIT_AUTHORIZATION) +public interface ListOfStandingOrdersDirectDebitsAndSipoPaymentsPage extends IbPageFlow { + String NEW_DIRECT_DEBIT_AUTHORIZATION = "//img[@alt='Nové povolení inkasa']"; + String NEW_SIPO_AUTHORIZATION = "//img[@alt='Nové povolení platby SIPO']"; + String NEW_STANDING_BUTTON = "//img[@alt='Nový trvalý příkaz']"; + String CHANGE_BUTTON = "//img[@alt='Změnit']"; + String CANCEL_BUTTON = "//img[@alt='Zrušit']"; + + @Click(NEW_SIPO_AUTHORIZATION) + SipoOrderCreatePage clicNewSipoOrder(); + + @Click(NEW_DIRECT_DEBIT_AUTHORIZATION) + DirectDebitCreatePage clicNewDirectDebidOrder(); + + @Click(NEW_STANDING_BUTTON) + StandingOrderCreatePage clickNewStandingOrder(); + + @Click(CHANGE_BUTTON) + DirectDebitChangePage clickChangeDirectDebit(); + + @Click(CANCEL_BUTTON) + DirectDebitAuthorizePage clickCancelDirectDebit(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitAuthorizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitAuthorizePage.java new file mode 100644 index 0000000..475ed3f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitAuthorizePage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.directdebitorder; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.accountsandtransactions.directdebitorder.DirectDebitAuthorizePage.SMS_CODE_IPUT; + +@Wait(value = SMS_CODE_IPUT) +public interface DirectDebitAuthorizePage extends IbPageFlow { + String SIPO_PAYMENT_AUTHORIZATION_OVERVIEW = "//a[@id='sendBtn']"; + String SMS_CODE_IPUT = "//input[@id='SMSCode']"; + String DIRECT_DEBIT_LIMIT_PRESENCE = "//table[@id='helpNav']"; + + @TypeInto(SMS_CODE_IPUT) + DirectDebitAuthorizePage typeSmsCode(String smsCode); + + @Click(SIPO_PAYMENT_AUTHORIZATION_OVERVIEW) + DirectDebitConfirmationPage clickSign(); + + @CheckElementContent(DIRECT_DEBIT_LIMIT_PRESENCE) + DirectDebitAuthorizePage checkDirectDebitLimitPresence(String insurance); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitChangePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitChangePage.java new file mode 100644 index 0000000..3710af9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitChangePage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.directdebitorder; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface DirectDebitChangePage extends IbPageFlow{ + String CONTINUE_BUTTON = "//img[@alt='Pokračovat']"; + String USER_NOTE = "//input[@id='userNote']"; + String DIRECT_DEBIT_LIMIT = "//input[@id='amount']"; + String END_DATE = "//input[@id='endDate']"; + + @Click(CONTINUE_BUTTON) + DirectDebitAuthorizePage clickContinueButton(); + + @TypeInto(value = USER_NOTE, clear = true) + DirectDebitChangePage fillUserNote(String userNote); + + @TypeInto(value = DIRECT_DEBIT_LIMIT, clear = true) + DirectDebitChangePage fillDirectDebitLimit(String incassoLimit); + + @TypeInto(value = END_DATE, clear = true) + DirectDebitChangePage fillEndDate(String endDate); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitConfirmationPage.java new file mode 100644 index 0000000..c74ef4c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitConfirmationPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.directdebitorder; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.accountsandtransactions.directdebitorder.DirectDebitConfirmationPage.FORM_DIV; + +@Wait(value = FORM_DIV) +public interface DirectDebitConfirmationPage extends IbPageFlow { + String DIRECT_DEBIT_AUTHORIZATION_OVERVIEW = "//img[@alt='Přehled povolení inkas']"; + String DIRECT_DEBIT_BACK = "//img[@alt='Zpět']"; + String FORM_DIV = "//div[@id='x31809652']"; + + @Click(DIRECT_DEBIT_AUTHORIZATION_OVERVIEW) + DirectDebitConfirmationPage clickDirectDebitList(); + + @Click(DIRECT_DEBIT_BACK) + DirectDebitConfirmationPage clickBack(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitCreatePage.java new file mode 100644 index 0000000..fd44acb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/directdebitorder/DirectDebitCreatePage.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.directdebitorder; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.data.GeneratorType; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.accountsandtransactions.directdebitorder.DirectDebitCreatePage.CONTINUE_BUTTON; + +@Wait(value = CONTINUE_BUTTON) +public interface DirectDebitCreatePage extends IbPageFlow, StoreAccessor { + String FROM_FIRST_ACCOUNT_SELECT = "//select[@id='fromAccount']//option[position() = 1]"; + String PARTNER_ACCOUNT_NUMBER = "//input[@name='partnerAccountNumber']"; + String PARTNER_ACCOUNT_BANK = "//input[@name='partnerAccountBank']"; + String USER_NOTE = "//input[@id='userNote']"; + String DIRECT_DEBIT_LIMIT = "//input[@id='amount']"; + String END_DATE = "//input[@id='endDate']"; + String CONTINUE_BUTTON = "//img[@alt='Pokračovat']"; + + @Click(FROM_FIRST_ACCOUNT_SELECT) + DirectDebitCreatePage clickFromAccountSelect(); + + @CustomAction + default DirectDebitCreatePage getAndFillAccountFromNumber() { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + String value = endpoint.getAttribute(FROM_FIRST_ACCOUNT_SELECT, "value"); + String partnerAccountNo = generate(GeneratorType.ACCOUNT_NUMBER, value); + endpoint.type(() -> PARTNER_ACCOUNT_NUMBER, partnerAccountNo, false); + return null; + } + + @TypeInto(PARTNER_ACCOUNT_BANK) + DirectDebitCreatePage fillToAccountBank(String toAccountBank); + + @TypeInto(USER_NOTE) + DirectDebitCreatePage fillUserNote(String userNote); + + @TypeInto(DIRECT_DEBIT_LIMIT) + DirectDebitCreatePage fillDirectDebitLimit(String incassoLimit); + + @TypeInto(END_DATE) + DirectDebitCreatePage fillEndDate(String endDate); + + @Click(CONTINUE_BUTTON) + DirectDebitAuthorizePage clickContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentawaitingsignature/PaymentsAwaitingSignature.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentawaitingsignature/PaymentsAwaitingSignature.java new file mode 100644 index 0000000..ae2f9cf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentawaitingsignature/PaymentsAwaitingSignature.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.paymentawaitingsignature; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.accountsandtransactions.paymentawaitingsignature.PaymentsAwaitingSignature.NAME_OF_PAGE; +import static cz.moneta.test.dsl.ib.accountsandtransactions.paymentawaitingsignature.PaymentsAwaitingSignature.SEARCH_BY_FLIED_XPATH; + +@Wait({NAME_OF_PAGE, SEARCH_BY_FLIED_XPATH}) +public interface PaymentsAwaitingSignature extends IbPageFlow, MainMenu { + String SELECT_ALL_CHECKBOX = "//input[@name='selectAll']"; + String SIGN_BUTTON = "//img[@id='sendToSign']"; + String LOADER_DIV = "//div[@class='busyLoader' and @style='display: block;']"; + String SEARCH_BY_FLIED_XPATH = "//div[@id='filterLeft']//following::span[contains(text(), 'Vyhledat podle')]"; + String EMAIL_NOTIFY_FIELD_XPATH = "//div[@id='mailNotifyRight']//following::span[contains(text(), 'E-mailová upozornění')]"; + String NAME_OF_PAGE = "//img[@alt='Platby k podpisu']"; + String FIRST_PAYMENT_CHECKBOX = "//tr[@id='a1']/descendant::input"; + String REJECT_BUTTON = "//img[@alt='Zamítnout vybrané']"; + String AUTHOR_PAYMENT_SELECT = "//select[@id='creator']/option[contains(text(),'%s')]"; + String SHOW_BUTTON = "//img[@id='filterBtnUp']"; + String LOADER = "//div[@class='busyLoaderImg']"; + String FIRST_PAYMENT_BY_AUTHOR_PAYMENT_IN_TABLE = "(//td[@class='listItem' and contains(.,'%s')]/following-sibling::td/descendant::input)[1]"; + + @Click(value = SELECT_ALL_CHECKBOX, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + PaymentsAwaitingSignature clicSelectAll(); + + @Click(SIGN_BUTTON) + PaymentsAwaitingSignatureConfirmationPage clicSignSelected(); + + @Click(SIGN_BUTTON) + PaymentsAwaitingSignatureAuthorizePage clickSignSelectedButton(); + + @Click(REJECT_BUTTON) + PaymentsAwaitingSignatureAuthorizePage clickRejectSelectedButton(); + + @Click(FIRST_PAYMENT_CHECKBOX) + PaymentsAwaitingSignature selectFirstPayment(); + + @Click(value = AUTHOR_PAYMENT_SELECT, isStringDynamicXpath = true) + @Click(value = SHOW_BUTTON, andWait = @Wait(value = LOADER, until = Until.GONE)) + PaymentsAwaitingSignature selectAuthorPaymentAndClickShowButton(String authorPayment); + + @Click(value = FIRST_PAYMENT_BY_AUTHOR_PAYMENT_IN_TABLE, isStringDynamicXpath = true) + PaymentsAwaitingSignature selectFirstPaymentByAuthor(String nameOfAuthorPayment); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentawaitingsignature/PaymentsAwaitingSignatureAuthorizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentawaitingsignature/PaymentsAwaitingSignatureAuthorizePage.java new file mode 100644 index 0000000..ebfb6fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentawaitingsignature/PaymentsAwaitingSignatureAuthorizePage.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.paymentawaitingsignature; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.accountsandtransactions.paymentawaitingsignature.PaymentsAwaitingSignatureAuthorizePage.PAYMENTS_FOR_SIGNATURE; + +@Wait(PAYMENTS_FOR_SIGNATURE) +public interface PaymentsAwaitingSignatureAuthorizePage extends IbPageFlow, AccountsAndTransactionsSubmenu, MainMenu { + String SIGN_BUTTON = "//a[@id='sendToSign']"; + String SMS_CODE_IPUT = "//input[@id='SMSCode']"; + String SIGN_SMS_BUTTON = "//a[@id='sendBtn']"; + String PAYMENTS_FOR_SIGNATURE = "//img[@alt='Platby k podpisu']"; + String REJECT_BUTTON = "//img[@alt='Zamítnout vybrané']"; + + @Click(SIGN_BUTTON) + PaymentsAwaitingSignatureAuthorizePage clickSign(); + + @Click(SIGN_SMS_BUTTON) + PaymentsAwaitingSignatureConfirmationPage clickSignSms(); + + @TypeInto(SMS_CODE_IPUT) + PaymentsAwaitingSignatureAuthorizePage typeSmsCode(String smsCode); + + @Click(PAYMENTS_FOR_SIGNATURE) + PaymentsAwaitingSignature clickPaymentsAwaitingSignature(); + + @Click(REJECT_BUTTON) + PaymentsAwaitingSignatureConfirmationPage clickRejectSelectedButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentawaitingsignature/PaymentsAwaitingSignatureConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentawaitingsignature/PaymentsAwaitingSignatureConfirmationPage.java new file mode 100644 index 0000000..f5a139d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentawaitingsignature/PaymentsAwaitingSignatureConfirmationPage.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.paymentawaitingsignature; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; + +public interface PaymentsAwaitingSignatureConfirmationPage extends IbPageFlow, AccountsAndTransactionsSubmenu, MainMenu { + String SIGN_BUTTON = "//a[@id='sendToSign']"; + + @Click(SIGN_BUTTON) + PaymentsAwaitingSignatureAuthorizePage clickSign(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentordershistory/PaymentOrdersHistoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentordershistory/PaymentOrdersHistoryPage.java new file mode 100644 index 0000000..b2985c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/paymentordershistory/PaymentOrdersHistoryPage.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.paymentordershistory; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.welcome.WelcomePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ib.accountsandtransactions.paymentordershistory.PaymentOrdersHistoryPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface PaymentOrdersHistoryPage extends IbPageFlow, MainMenu, StoreAccessor { + String PAGE_TITLE = "//table[@id='titleLabelTable']//img[@alt='Přehled příkazů k úhradě zadaných on-line kanály']"; + String DISPLAY_BUTTON = "//table[@id='helpNav']//img[contains(@src, 'images_new/zobrazit_b.gif')]"; + String TRANSACTIONS_TYPES = "//table[@id='helpNav']//select[@id='typPrikazuDatas']"; + String TRANSACTIONS_ID_ORDER = "//a[contains(text(), 'ID transakce ')]/img"; + String TRANSACTIONS_PACKAGE_ID_XPATH = "//tr[@id='a1']/td[5]"; + String DATE_FROM = "//input[@id='valueDateFrom']"; + String LOADER_DIV = "//div[@class='busyLoader']"; + + @Click(value = DISPLAY_BUTTON, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + PaymentOrdersHistoryPage clickDisplayTransactions(); + + @Click(value = TRANSACTIONS_ID_ORDER, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + PaymentOrdersHistoryPage clickOrderTransactionsById(); + + @TypeInto(value = DATE_FROM, clear = true) + PaymentOrdersHistoryPage fillDateFrom(String actualDate); + + @Select(TRANSACTIONS_TYPES) + PaymentOrdersHistoryPage selectTransactionsTypes(String transactionTypes); + + @GetElementContent(TRANSACTIONS_PACKAGE_ID_XPATH) + String getElementWithPackageId(); + + @CustomAction() + default PaymentOrdersHistoryPage checkElementContentPackageId(String packageId) { + log("Data from IB:\n" + getElementWithPackageId()); + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.checkElementContent(TRANSACTIONS_PACKAGE_ID_XPATH, packageId); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/pendingtransactions/PendingTransactionsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/pendingtransactions/PendingTransactionsPage.java new file mode 100644 index 0000000..10eb14f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/pendingtransactions/PendingTransactionsPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.pendingtransactions; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.*; + +public interface PendingTransactionsPage extends IbPageFlow { + + String ACCOUNT_NUMBERS_LIST = "//table[@id='helpNav']//select[@id='account']"; + String SEARCH_BUTTON = "//img[@alt='Zobrazit']"; + String RESERVATION_AMOUNT_XPATH = "//tr[@id='a1']/td/font[text()='%s']"; + String RESERVATION_DATA_XPATH = "//tr[@id='a1']/td[contains(text(),'%s')]"; + + @Wait(value = ACCOUNT_NUMBERS_LIST) + @Select(ACCOUNT_NUMBERS_LIST) + PendingTransactionsPage selectAccountNumber(String accountNumber); + + @Wait(value = SEARCH_BUTTON) + @Click(SEARCH_BUTTON) + PendingTransactionsPage clickSearch(); + + @CheckElementPresent(value = RESERVATION_AMOUNT_XPATH, isStringDynamicXpath = true) + PendingTransactionsPage checkReservationAmount(String amount); + + @CheckElementPresent(value = RESERVATION_DATA_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + PendingTransactionsPage checkReservationDate(String date); + + @CheckElementPresent(value = RESERVATION_DATA_XPATH, isStringDynamicXpath = true) + PendingTransactionsPage checkReservationDescription(String description); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/sipopayment/SipoOrderAuthorizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/sipopayment/SipoOrderAuthorizePage.java new file mode 100644 index 0000000..94f93c5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/sipopayment/SipoOrderAuthorizePage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.sipopayment; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import static cz.moneta.test.dsl.ib.accountsandtransactions.sipopayment.SipoOrderAuthorizePage.SMS_CODE_IPUT; + +@Wait(value = SMS_CODE_IPUT) +public interface SipoOrderAuthorizePage extends IbPageFlow { + String SIGN_BUTTON = "//a[@id='sendBtn']"; + String SMS_CODE_IPUT = "//input[@id='SMSCode']"; + + @TypeInto(SMS_CODE_IPUT) + SipoOrderAuthorizePage typeSmsCode(String smsCode); + @Click(SIGN_BUTTON) + SipoOrderConfirmationPage clickSign(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/sipopayment/SipoOrderConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/sipopayment/SipoOrderConfirmationPage.java new file mode 100644 index 0000000..4fa2cfd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/sipopayment/SipoOrderConfirmationPage.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.sipopayment; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import static cz.moneta.test.dsl.ib.accountsandtransactions.sipopayment.SipoOrderConfirmationPage.SIPO_PAYMENT_AUTHORIZATION_OVERVIEW; + +@Wait(value = SIPO_PAYMENT_AUTHORIZATION_OVERVIEW) +public interface SipoOrderConfirmationPage extends IbPageFlow { + String SIPO_PAYMENT_AUTHORIZATION_OVERVIEW = "//img[@alt='Přehled povolení platby SIPO']"; + + @Click(SIPO_PAYMENT_AUTHORIZATION_OVERVIEW) + SipoOrderConfirmationPage clickSipoList(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/sipopayment/SipoOrderCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/sipopayment/SipoOrderCreatePage.java new file mode 100644 index 0000000..bfe2591 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/sipopayment/SipoOrderCreatePage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.sipopayment; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import static cz.moneta.test.dsl.ib.accountsandtransactions.sipopayment.SipoOrderCreatePage.SIPO_NUMBER; + +@Wait(value = SIPO_NUMBER) +public interface SipoOrderCreatePage extends IbPageFlow{ + String CONTINUE_BUTTON = "//img[@alt='Pokračovat']"; + String FROM_ACCOUNT_SELECT = "//select[@id='fromAccount']"; + String SIPO_NUMBER ="//input[@id='vakusLinkNum']"; + String SIPO_LIMIT ="//input[@id='amount']"; + String MONTH_OF_FINAL_PAYMENT ="//input[@id='endDate']"; + + @Click(FROM_ACCOUNT_SELECT) + SipoOrderCreatePage clickFromAccountSelect(); + @TypeInto(SIPO_NUMBER) + SipoOrderCreatePage fillSipoNumber(String sipoNumber); + @TypeInto(SIPO_LIMIT) + SipoOrderCreatePage fillSipoLimit(String sipoLimit); + @TypeInto(MONTH_OF_FINAL_PAYMENT) + SipoOrderCreatePage fillEndDate(String sipoEndDate); + @Click(CONTINUE_BUTTON) + SipoOrderAuthorizePage clickContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/standingorder/StandingOrderAuthorizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/standingorder/StandingOrderAuthorizePage.java new file mode 100644 index 0000000..c049477 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/standingorder/StandingOrderAuthorizePage.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.standingorder; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.accountsandtransactions.ListOfStandingOrdersDirectDebitsAndSipoPaymentsPage; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; + +public interface StandingOrderAuthorizePage extends IbPageFlow, MainMenu, AccountsAndTransactionsSubmenu { + String LIST_STANDING_ORDER_BUTTON = "//img[@alt='Přehled trvalých příkazů']"; + + @Click(LIST_STANDING_ORDER_BUTTON) + ListOfStandingOrdersDirectDebitsAndSipoPaymentsPage clickListStandingOrderButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/standingorder/StandingOrderConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/standingorder/StandingOrderConfirmationPage.java new file mode 100644 index 0000000..60edb5b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/standingorder/StandingOrderConfirmationPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.standingorder; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface StandingOrderConfirmationPage extends IbPageFlow, MainMenu, AccountsAndTransactionsSubmenu { + String SIGN_BUTTON = "//a[@id='sendToSign']"; + String SMS_CODE_IPUT = "//input[@id='SMSCode']"; + String SEND_BUTTON = "//a[@id='sendBtn']"; + + @Click(SIGN_BUTTON) + StandingOrderConfirmationPage clickSign(); + + @TypeInto(SMS_CODE_IPUT) + StandingOrderConfirmationPage typeSmsCode(String smsCode); + + @Click(SEND_BUTTON) + StandingOrderAuthorizePage clickSend(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/standingorder/StandingOrderCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/standingorder/StandingOrderCreatePage.java new file mode 100644 index 0000000..cffbfc5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/standingorder/StandingOrderCreatePage.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.standingorder; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface StandingOrderCreatePage extends IbPageFlow { + String ACCOUNT_SELECT = "//select[@name='fromAccount']"; + String ACCOUNT_BANK_INPUT = "//input [@name='partnerAccountBank']"; + String ACCOUNT_PARTNER_INPUT = "//input[@name='partnerAccountNumber']"; + String NAME_STANDING_INPUT = "//input [@name='creditInfo']"; + String AMOUNT_STANDING_INPUT = "//input [@name='amount']"; + String VARIABLE_SYMBOL_INPUT = "//input [@name='vs']"; + String CONST_SYMBOL_INPUT = "//input [@name='cs']"; + String SPECIFIC_SYMBOL_INPUT = "//input [@name='ss']"; + String MESSAGE_INPUT = "//input [@name='clientRef']"; + String STANDING_CONTINUE_BUTTON = "//img[@alt='Pokračovat']"; + + @Click(ACCOUNT_SELECT) + StandingOrderCreatePage clickAccountSelect(); + + @TypeInto(ACCOUNT_BANK_INPUT) + StandingOrderCreatePage fillPartnerAccountBank(String bankCode); + + @TypeInto(ACCOUNT_PARTNER_INPUT) + StandingOrderCreatePage fillPartnerAccount(String beneficiaryAccount); + + @TypeInto(NAME_STANDING_INPUT) + StandingOrderCreatePage fillOrderName(String orderName); + + @TypeInto(AMOUNT_STANDING_INPUT) + StandingOrderCreatePage fillAmount(String amountInCZK); + + @TypeInto(VARIABLE_SYMBOL_INPUT) + StandingOrderCreatePage fillVariableSymbol(String variableSymbol); + + @TypeInto(CONST_SYMBOL_INPUT) + StandingOrderCreatePage fillConstSymbol(String constantSymbol); + + @TypeInto(SPECIFIC_SYMBOL_INPUT) + StandingOrderCreatePage fillSpecificSymbol(String specificSymbol); + + @TypeInto(MESSAGE_INPUT) + StandingOrderCreatePage fillMessage(String message); + + @Click(STANDING_CONTINUE_BUTTON) + StandingOrderConfirmationPage clickContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/templates/TemplateNewBetweenAuthorizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/templates/TemplateNewBetweenAuthorizePage.java new file mode 100644 index 0000000..8693d0a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/templates/TemplateNewBetweenAuthorizePage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.templates; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.accountsandtransactions.templates.TemplateNewBetweenAuthorizePage.SEND_BUTTON; + +@Wait(value = SEND_BUTTON) +public interface TemplateNewBetweenAuthorizePage extends IbPageFlow, MainMenu { + String SMS_CODE_INPUT = "//input[@id='SMSCode']"; + String SEND_BUTTON = "//a[@id='sendBtn']"; + + @TypeInto(SMS_CODE_INPUT) + TemplateNewBetweenAuthorizePage typeSmsCode(String smsCode); + + @Click(SEND_BUTTON) + TemplateNewBetweenConfirmationPage clickSendButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/templates/TemplateNewBetweenConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/templates/TemplateNewBetweenConfirmationPage.java new file mode 100644 index 0000000..be048b6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/templates/TemplateNewBetweenConfirmationPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.templates; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.accountsandtransactions.templates.TemplateNewBetweenConfirmationPage.TEMPLATE_OVERVIEW; + +@Wait(value = TEMPLATE_OVERVIEW) +public interface TemplateNewBetweenConfirmationPage extends IbPageFlow, MainMenu { + String TEMPLATE_OVERVIEW = "//img[@alt='Přehled šablon']"; + + @Click(TEMPLATE_OVERVIEW) + TemplateNewBetweenConfirmationPage clickTemplateOverview(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/templates/TemplateNewBetweenCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/templates/TemplateNewBetweenCreatePage.java new file mode 100644 index 0000000..ef42434 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/accountsandtransactions/templates/TemplateNewBetweenCreatePage.java @@ -0,0 +1,164 @@ +package cz.moneta.test.dsl.ib.accountsandtransactions.templates; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.accountsandtransactions.templates.TemplateNewBetweenCreatePage.NEW_TEMPLATE_BUTTON; + +@Wait(value = NEW_TEMPLATE_BUTTON) +public interface TemplateNewBetweenCreatePage extends IbPageFlow, MainMenu { + String NEW_TEMPLATE_BUTTON = "//img[@alt='Nová šablona']"; + String TYPE_PAYMENT_SELECT = "//input[@value='FPOT2']"; + String TEMPLATE_NAME_INPUT = "//input[@name='fpo.template_name']"; + String TYPE_PAYMENT2_SELECT = "//input[@value='FPOK']"; + String TYPE_SEPA_PAYMENT_SELECT = "//input[@value='FPOE']"; + String ACCOUNT_SELECT = "//select[@id='fromAccountFPO']/option[2]"; + String DOMESTIC_ACCOUNT_SELECT = "//select[@id='fromAccountDPO']/option[2]"; + String ACCOUNT_SEPA_FROM_SELECT = "//select[@id='fromAccountFPO']/option[2]"; + String OWN_ACCOUNT_FROM_SELECT = "//select[@id='fromAccountFPOK']/option[2]"; + String PARTNER_ACCOUNT_NUMBER = "//input[@name='partnerAccountNumberFPOT2']"; + String DOMESTIC_PARTNER_ACCOUNT_NUMBER = "//input[@name='partnerAccountNumber']"; + String DOMESTIC_PARTNER_BANK = "//input[@id='partnerAccountBank']"; + String DOMESTIC_AMOUNT = "//input[@id='amount']"; + String SEPA_AMOUNT = "//input[@id='castka']"; + String SEPA_IBAN = "//input[@id='partnerAccountNumber5']"; + String SEPA_PAYEE_NAME = "//input[@id='prijemce']"; + String SEPA_PAYEE_ADDRESS = "//input[@id='prijemceJmeno']"; + String SEPA_PAYEE_ADDRESS2 = "//input[@id='prijemceStat']"; + String SEPA_COUNTRY_OF_PAYEE = "//select[@id='zemePrijemcePlatby']/option[@value='DE']"; + String SEPA_RECIPIENT_MSG = "//textarea[@name='fpo.avizo']"; + String SEPA_REFERENCE = "//input[@id='debitReference']"; + String SECOND_OWN_ACCOUNT_TO_SELECT = "//select[@id='fpo.toAccount']/option[3]"; + String CHECK_ACCOUNT_BUTTON = "//img[@alt='Ověřit účet příjemce']"; + String TEMPLATE_AMOUNT_INPUT = "//input[@id='castka']"; + String VARIABLE_SYMBOL_INPUT = "//input[@id='fpo_vs']"; + String DOMESTIC_VARIABLE_SYMBOL_INPUT = "//input[@id='vs']"; + String DETAIL_URL = "//img[@src='images_new/male_plus.gif']"; + String CONSTANT_SYMBOL_INPUT = "//input[@name='fpo_cs']"; + String DOMESTIC_CONSTANT_SYMBOL_INPUT = "//input[@name='cs']"; + String SPECIFIC_SYMBOL_INPUT = "//input[@name='fpo_ss']"; + String DOMESTIC_SPECIFIC_SYMBOL_INPUT = "//input[@name='ss']"; + String CURRENCY_CZK_SELECT = "//select[@id='mena']/option[@value='CZK']"; + String RECIPIENT_MSG = "//textarea[@name='fpo.avizoFX']"; + String DOMESTIC_RECIPIENT_MSG = "//textarea[@name='dpo.avizo']"; + String CATEGORY_SELECT = "//select[@id='categoryId']/option[2]"; + String NEXT_TEMPLATE_BUTTON = "//img[@src='images_new/pokracovat_b.gif']"; + String NOTE_MSG = "//textarea[@name='note']"; + + @Click(NEW_TEMPLATE_BUTTON) + TemplateNewBetweenCreatePage clickNewTemplate(); + + @Click(TYPE_PAYMENT_SELECT) + TemplateNewBetweenCreatePage clickTypePayment(); + + @Click(TYPE_PAYMENT2_SELECT) + TemplateNewBetweenCreatePage clickTypeOwnPayment(); + + @Click(TYPE_SEPA_PAYMENT_SELECT) + TemplateNewBetweenCreatePage clickTypeSepaPayment(); + + @TypeInto(TEMPLATE_NAME_INPUT) + TemplateNewBetweenCreatePage fillTemplateName(String templateName); + + @Click(ACCOUNT_SELECT) + TemplateNewBetweenCreatePage clickAccountSelect(); + + @Click(ACCOUNT_SEPA_FROM_SELECT) + TemplateNewBetweenCreatePage clickAccountSepaSelect(); + + @Click(DOMESTIC_ACCOUNT_SELECT) + TemplateNewBetweenCreatePage clickDomesticAccountSelect(); + + @Click(OWN_ACCOUNT_FROM_SELECT) + TemplateNewBetweenCreatePage clickAccountOwnSelect(); + + @TypeInto(PARTNER_ACCOUNT_NUMBER) + TemplateNewBetweenCreatePage fillPartnerAccount(String partnerAccountNumber); + + @TypeInto(DOMESTIC_PARTNER_BANK) + TemplateNewBetweenCreatePage fillDomesticPartnerBank(String domesticPartnerBank); + + @TypeInto(DOMESTIC_AMOUNT) + TemplateNewBetweenCreatePage fillDomesticAmount(String domesticAmount); + + @TypeInto(SEPA_AMOUNT) + TemplateNewBetweenCreatePage fillSepaAmount(String sepaAmount); + + @TypeInto(SEPA_IBAN) + TemplateNewBetweenCreatePage fillSepaIban(String sepaIban); + + @TypeInto(SEPA_PAYEE_NAME) + TemplateNewBetweenCreatePage fillSepaPayeeName(String sepaPayeeName); + + @TypeInto(SEPA_PAYEE_ADDRESS) + TemplateNewBetweenCreatePage fillSepaPayeeAddress(String sepaPayeeAddress); + + @TypeInto(SEPA_PAYEE_ADDRESS2) + TemplateNewBetweenCreatePage fillSepaPayeeAddress2(String sepaPayeeAddress2); + + @Click(SEPA_COUNTRY_OF_PAYEE) + TemplateNewBetweenCreatePage clickSepaCountryPayee(); + + @TypeInto(SEPA_RECIPIENT_MSG) + TemplateNewBetweenCreatePage fillSepaRecipientMsg(String sepaRecipientMsg); + + @TypeInto(SEPA_REFERENCE) + TemplateNewBetweenCreatePage fillSepaReference(String sepaReference); + + @TypeInto(DOMESTIC_PARTNER_ACCOUNT_NUMBER) + TemplateNewBetweenCreatePage fillDomesticPartnerAccount(String domesticPartnerAccountNumber); + + @Click(SECOND_OWN_ACCOUNT_TO_SELECT) + TemplateNewBetweenCreatePage clickSecondOwnAccount(); + + @Click(CHECK_ACCOUNT_BUTTON) + TemplateNewBetweenCreatePage clickCheckButton(); + + @TypeInto(TEMPLATE_AMOUNT_INPUT) + TemplateNewBetweenCreatePage fillTemplateAmount(String templateAmountInput); + + @Click(CURRENCY_CZK_SELECT) + TemplateNewBetweenCreatePage clickCurrencySelect(); + + @Click(CURRENCY_CZK_SELECT) + TemplateNewBetweenCreatePage clickCurrencyOwnSelect(); + + @TypeInto(VARIABLE_SYMBOL_INPUT) + TemplateNewBetweenCreatePage fillTemplateVs(String variableSymbol); + + @TypeInto(DOMESTIC_VARIABLE_SYMBOL_INPUT) + TemplateNewBetweenCreatePage fillTemplateDomesticVs(String domesticVariableSymbol); + + @Click(DETAIL_URL) + TemplateNewBetweenCreatePage clickDetailUrl(); + + @TypeInto(CONSTANT_SYMBOL_INPUT) + TemplateNewBetweenCreatePage fillTemplateCs(String constantSymbol); + + @TypeInto(DOMESTIC_CONSTANT_SYMBOL_INPUT) + TemplateNewBetweenCreatePage fillTemplateDomesticCs(String domesticConstantSymbol); + + @TypeInto(SPECIFIC_SYMBOL_INPUT) + TemplateNewBetweenCreatePage fillTemplateSs(String specificSymbol); + + @TypeInto(DOMESTIC_SPECIFIC_SYMBOL_INPUT) + TemplateNewBetweenCreatePage fillTemplateDomesticSs(String domesticSpecificSymbol); + + @TypeInto(RECIPIENT_MSG) + TemplateNewBetweenCreatePage fillRecipientMsg(String recipientMsg); + + @TypeInto(DOMESTIC_RECIPIENT_MSG) + TemplateNewBetweenCreatePage fillDomesticRecipientMsg(String domesticRecipientMsg); + + @Click(CATEGORY_SELECT) + TemplateNewBetweenCreatePage clickCategorySelect(); + + @TypeInto(NOTE_MSG) + TemplateNewBetweenCreatePage fillRecipientNote(String noteMsg); + + @Click(NEXT_TEMPLATE_BUTTON) + TemplateNewBetweenAuthorizePage clickNextButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/AuthChoicePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/AuthChoicePage.java new file mode 100644 index 0000000..2e81773 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/AuthChoicePage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ib.authentication; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.support.web.Click; + +public interface AuthChoicePage extends IbPageFlow, AuthChoicePageTransitions { + + String AUTHENTICATE_WITH_PASSWORD_BUTTON = "//div[@id='document']//img[contains(@src, 'prihlasitseheslem_b.gif')]"; + String AUTHENTICATE_WITH_MOBILE_KEY_BUTTON = "//button[@id='typeMobileKey']"; + String AUTHENTICATE_WITH_CERTIFICATE_BUTTON = "//div[@id='document']//img[contains(@src, 'prihlasitsecertifikatem_b.gif')]"; + String AUTHENTICATE_TO_BANKA_MINI = "//div[@id='document']//img[contains(@src, 'pristup-do-evypisu_b.gif')]"; + + default void loadPage(WebEndpoint endpoint) { + endpoint.waitForAnyElementToLoad(20, + AUTHENTICATE_WITH_PASSWORD_BUTTON, + AUTHENTICATE_WITH_MOBILE_KEY_BUTTON, + AUTHENTICATE_WITH_CERTIFICATE_BUTTON, + AUTHENTICATE_TO_BANKA_MINI); + } + + @Click(AUTHENTICATE_WITH_MOBILE_KEY_BUTTON) + AuthMobileKeyPage chooseAuthenticationWithMobileKey(); + @Click(AUTHENTICATE_WITH_PASSWORD_BUTTON) + AuthChoicePageTransitions chooseAuthenticationWithPasswordOnly(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/AuthChoicePageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/AuthChoicePageTransitions.java new file mode 100644 index 0000000..714c86e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/AuthChoicePageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ib.authentication; + +import cz.moneta.test.dsl.ib.welcome.WelcomePage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Page; + + +public interface AuthChoicePageTransitions extends Builder { + + @Page(AuthMobileKeyPage.class) + AuthMobileKeyPage onAuthMobileKeyPage(); + @Page(WelcomePage.class) + WelcomePage onWelcomePage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/AuthMobileKeyPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/AuthMobileKeyPage.java new file mode 100644 index 0000000..dafc719 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/AuthMobileKeyPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ib.authentication; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.authentication.AuthMobileKeyPage.*; + + +@Wait({MOBILE_KEY_INPUT, MOBILE_KEY_CONFIRM_BUTTON, ENTER_KEY_TEXT}) +public interface AuthMobileKeyPage extends IbPageFlow { + + String MOBILE_KEY_INPUT = "//form[@id='mainFrm']//input[@type='text']"; + String MOBILE_KEY_CONFIRM_BUTTON = "//form[@id='mainFrm']//button[@type='submit']"; + String ENTER_KEY_TEXT = "//label[contains(text(), 'Zadejte mobilní klíč')]"; + + @TypeInto(MOBILE_KEY_INPUT) + AuthMobileKeyPage fillMobileKey(String mobileKey); + + @Click(MOBILE_KEY_CONFIRM_BUTTON) + WelcomePageTransitions clickLogin(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/LoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/LoginPage.java new file mode 100644 index 0000000..73c1e8e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/LoginPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ib.authentication; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.authentication.LoginPage.*; + +@Wait(value = {USERNAME_INPUT, PASSWORD_INPUT, CONFIRM_BUTTON}) +public interface LoginPage extends IbPageFlow { + + String USERNAME_INPUT = "//input[@tabindex='1' and @type='text']"; + String PASSWORD_INPUT = "//input[@tabindex='2' and @type='password']"; + String CONFIRM_BUTTON = "//button[@type='submit']"; + + @TypeInto(USERNAME_INPUT) + LoginPage typeUsername(String username); + + @TypeInto(PASSWORD_INPUT) + LoginPage typePassword(String password); + + @Click(CONFIRM_BUTTON) + LoginPageTransitions clickLogin(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/LoginPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/LoginPageTransitions.java new file mode 100644 index 0000000..dd12f1c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/LoginPageTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ib.authentication; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.welcome.WelcomePage; + +public interface LoginPageTransitions extends IbPageFlow { + + AuthChoicePage onAuthChoicePage(); + + AuthMobileKeyPage onAuthMobileKeyPage(); + + WelcomePage onWelcomePage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/LogoutSuccessfulPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/LogoutSuccessfulPage.java new file mode 100644 index 0000000..6ee51b0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/LogoutSuccessfulPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ib.authentication; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.authentication.LogoutSuccessfulPage.PAGE_NAME; + +@Wait(PAGE_NAME) +public interface LogoutSuccessfulPage extends IbPageFlow { + String PAGE_NAME = "//table[@class='loginTable']"; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/WelcomePageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/WelcomePageTransitions.java new file mode 100644 index 0000000..bd0e484 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/authentication/WelcomePageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ib.authentication; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.welcome.LoginToBankModalPage; +import cz.moneta.test.dsl.ib.welcome.NonactiveDisponentWelcomePage; +import cz.moneta.test.dsl.ib.welcome.WelcomePage; + +public interface WelcomePageTransitions extends IbPageFlow { + + WelcomePage onWelcomePage(); + + LoginToBankModalPage onLoginToBankModalPage(); + + NonactiveDisponentWelcomePage onNonactiveDisponentWelcomePage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/AdditionalServicesPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/AdditionalServicesPage.java new file mode 100644 index 0000000..9ac53fa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/AdditionalServicesPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ib.cards; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.cards.AdditionalServicesPage.OVERVIEW_ADDITIONAL_SERVICES_PAGE_NAME; +import static cz.moneta.test.dsl.ib.cards.AdditionalServicesPage.SERVICES_TABLE; + +@Wait({OVERVIEW_ADDITIONAL_SERVICES_PAGE_NAME, SERVICES_TABLE}) +public interface AdditionalServicesPage extends IbPageFlow, CardsVerticalMenu, MainMenu { + String OVERVIEW_ADDITIONAL_SERVICES_PAGE_NAME = "//img[@alt='Přehled doplňkových služeb']"; + String SERVICES_TABLE = "//table[@id='cardServices_2_5']"; + String EXHAUSTED_AMOUNT_INSURANCE_XPATH = "//tr[@id='a1']"; + + @Wait(value = SERVICES_TABLE, explicitWaitSeconds = 20) + AdditionalServicesPage waitToAdditional(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/CardsOverviewPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/CardsOverviewPage.java new file mode 100644 index 0000000..70474a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/CardsOverviewPage.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ib.cards; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.cards.CardsVerticalMenu.APPLICATIONS_OVERVIEW_ANCHOR; + +// FIXME: There is no simple way to say that we are on cards page until we request at least one card +@Wait(APPLICATIONS_OVERVIEW_ANCHOR) +public interface CardsOverviewPage extends IbPageFlow, CardsVerticalMenu { + + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/CardsVerticalMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/CardsVerticalMenu.java new file mode 100644 index 0000000..81e9f04 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/CardsVerticalMenu.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ib.cards; + +import cz.moneta.test.dsl.ib.cards.application.ApplicationsOverviewPage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; + +public interface CardsVerticalMenu extends Builder { + + String CARDS_OVERVIEW_ANCHOR = "//a[contains(text(), 'Přehled karet')]"; + String APPLICATIONS_OVERVIEW_ANCHOR = "//a[contains(text(), 'Přehled žádostí')]"; + String ADDITIONAL_SERVICES = "//a[text()='Doplňkové služby']"; + + @Click(CARDS_OVERVIEW_ANCHOR) + CardsOverviewPage openCardsOverviewPage(); + + @Click(APPLICATIONS_OVERVIEW_ANCHOR) + ApplicationsOverviewPage openApplicationsOverviewOverviewPage(); + + @Click(ADDITIONAL_SERVICES) + AdditionalServicesPage clickToAdditionalServices(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/ApplicationConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/ApplicationConfirmationPage.java new file mode 100644 index 0000000..a76dcd4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/ApplicationConfirmationPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.cards.application; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MobileKeyConfirmation; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.cards.application.ApplicationConfirmationPage.PAGE_NAME; + + +@Wait(PAGE_NAME) +public interface ApplicationConfirmationPage extends IbPageFlow, + MobileKeyConfirmation { + + String PAGE_NAME = "//*[@id=\"creditCardNew_2_9\"]/tbody/tr/td/table[1]/tbody/tr/td[text()='Vaše karta']"; + String CONTINUE_BUTTON = "//*[@id=\"mainFrm\"]/table[4]/tbody/tr/td[2]/img"; + + ApplicationFinishingPage onApplicationFinishingPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/ApplicationFinishingPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/ApplicationFinishingPage.java new file mode 100644 index 0000000..ae11edb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/ApplicationFinishingPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ib.cards.application; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MobileKeyConfirmation; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.cards.application.ApplicationFinishingPage.PAGE_NAME; + + +@Wait(PAGE_NAME) +public interface ApplicationFinishingPage extends IbPageFlow, + MobileKeyConfirmation { + + String PAGE_NAME = "//b[text()='Vaše žádost o kreditní kartu byla úspěšně odeslaná ke schválení. O jeho výsledku']"; + String CONTINUE_BUTTON = "//*[@id=\"mainFrm\"]/table[4]/tbody/tr/td[2]/img"; + + @Click(CONTINUE_BUTTON) + ApplicationFinishingPage onApplicationFinisingPage(); + + @Click("//*[@id=\"creditCardNew_2_9\"]/tbody/tr/td/table[3]/tbody/tr/td/a/img") + ApplicationsOverviewPage continueToApplicationOvereview(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/ApplicationsOverviewPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/ApplicationsOverviewPage.java new file mode 100644 index 0000000..e2d096b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/ApplicationsOverviewPage.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.ib.cards.application; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.cards.CardsVerticalMenu; +import cz.moneta.test.dsl.ib.cards.application.contract.PrepareContractPage; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ib.cards.application.ApplicationsOverviewPage.PAGE_NAME; + +@Wait(PAGE_NAME) +public interface ApplicationsOverviewPage extends IbPageFlow, + CardsVerticalMenu, MainMenu, StoreAccessor { + String PAGE_NAME = "//*[@id=\"x31809652\"]/table/tbody/tr[1]/td/table/tbody/tr/td/b[text()='Žádost o kreditní kartu']"; + + String FIRST_APPLICATION_ID = "//*[@id=\"x31809652\"]/table/tbody/tr[3]/td[1]"; + String FIRST_APPLICATION_STATUS = "//*[@id=\"x31809652\"]/table/tbody/tr[3]/td[2]"; + String FIRST_APPLICATION_PROMO = "//*[@id=\"x31809652\"]/table/tbody/tr[3]/td[4]"; + String FIRST_APPLICATION_LIMIT = "//*[@id=\"x31809652\"]/table/tbody/tr[3]/td[5]"; + + String FIRST_APPLICATION_APPROVED = FIRST_APPLICATION_STATUS + "[text()='Schválená']"; + + String SIGN_APPLICATION_BUTTON = "//*[@id=\"x31809652\"]/table/tbody/tr[5]/td/a[1]"; + + @CustomAction + default ApplicationsOverviewPage waitForApproval() { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.waitForElementAndRefresh(FIRST_APPLICATION_APPROVED, CardsVerticalMenu.APPLICATIONS_OVERVIEW_ANCHOR, Lookup.XPATH, Lookup.DEFAULT, 300, 20); + return null; + } + + @CheckElementContent(FIRST_APPLICATION_STATUS) + ApplicationsOverviewPage checkFirstApplicationStatus(String status); + + @CheckElementContent(FIRST_APPLICATION_LIMIT) + ApplicationsOverviewPage checkFirstApplicationLimit(String limit); + + @Click(SIGN_APPLICATION_BUTTON) + PrepareContractPage signApplicationAndContinueToPrepareContractPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/CardDetailsOfferBanner.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/CardDetailsOfferBanner.java new file mode 100644 index 0000000..78c7519 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/CardDetailsOfferBanner.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.cards.application; + +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Click; + +public interface CardDetailsOfferBanner extends Builder { + + String CREDIT_CARD_OFFER = "//*[@id='x31809652']/div[4]/div/div/div[2]/div/h3"; + String I_AM_INTERESTED = "//*[@id='x31809652']/div[4]/div/div/div[3]/div/button[1]"; + + @CheckElementContent(CREDIT_CARD_OFFER) + T checkCreditCardOfferPresent(String offerHead); + + @Click(I_AM_INTERESTED) + CardDetailsPage clickIamInterested(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/CardDetailsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/CardDetailsPage.java new file mode 100644 index 0000000..752a29a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/CardDetailsPage.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.ib.cards.application; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.cards.application.CardDetailsPage.CONTINUE_TO_PERSONAL_DETAIL_BUTTON; + +@Wait(CONTINUE_TO_PERSONAL_DETAIL_BUTTON) +public interface CardDetailsPage extends IbPageFlow { + + String CONTINUE_TO_PERSONAL_DETAIL_BUTTON = "//*[@id=\"btnContinueStep2\"]"; + String LIMITS_CREDIT = "//*[@id=\"VyseUveru\"]"; + String DAILY_LIMITS_PURCHASES = "//*[@id=\"AutorizacniLimit_Bezhotovostni\"]"; + String DAILY_LIMITS_WITHDRAWS = "//*[@id=\"AutorizacniLimit_Hotovost\"]"; + String OFFER_TRAVEL_AND_SPORT = "//*[@id=\"053\"]"; + String STATEMENTS_DISTRIBUTION_DROPDOWN = "//*[@id=\"DistribuceVypisu\"]"; + String DUE_DATE = "//*[@id=\"ZuctovaciObdobi\"]"; + String PAYMENT_METHOD = "//*[@id=\"ZpusobUhrady\"]"; + String ACTIVATION_PASSWORD = "//*[@id=\"Heslo\"]"; + String WITHOUT_INSURANCE = "//*[@id=\"_tr_Pojisteni\"]/td[2]/table/tbody/tr[2]/td[1]/label/span"; + String AGREE_WITH_USING_PERSONAL_INFO = "//*[@id=\"_tr_ccNewS4\"]/td[2]/table/tbody/tr/td[1]/table/tbody/tr/td[1]"; + + @TypeInto(value = LIMITS_CREDIT, clear = true) + CardDetailsPage fillCreditLimit(String limit); + + @Click(OFFER_TRAVEL_AND_SPORT) + CardDetailsPage selectTravelAndSportOffer(); + + @TypeInto(DAILY_LIMITS_PURCHASES) + CardDetailsPage fillDailyPurchasesLimit(String limit); + + @TypeInto(DAILY_LIMITS_WITHDRAWS) + CardDetailsPage fillDailyWithdrawsLimit(String limit); + + @Select(STATEMENTS_DISTRIBUTION_DROPDOWN) + CardDetailsPage selectStatementType(String statementType); + + @TypeInto(ACTIVATION_PASSWORD) + CardDetailsPage fillActivationPassword(String activationPassword); + + @TypeInto(DUE_DATE) + CardDetailsPage selectDueDate(String range); + + @Select(PAYMENT_METHOD) + CardDetailsPage selectPaymentMethod(String paymentMethod); + + @Click(WITHOUT_INSURANCE) + CardDetailsPage selectWithoutInsuranceOption(); + + @Click(AGREE_WITH_USING_PERSONAL_INFO) + @Click(CONTINUE_TO_PERSONAL_DETAIL_BUTTON) + PersonalDetailsPage agreeAndContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/EmploymentDetailsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/EmploymentDetailsPage.java new file mode 100644 index 0000000..2e686dc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/EmploymentDetailsPage.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.ib.cards.application; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ib.cards.application.EmploymentDetailsPage.PAGE_NAME; + +@Wait(PAGE_NAME) +public interface EmploymentDetailsPage extends IbPageFlow { + + String PAGE_NAME = "//*[@id=\"mainFrm\"]/table[1]/tbody/tr/td[text()='Zaměstnání']"; + String CONTINUE_BUTTON = "//*[@id=\"mainFrm\"]/table[4]/tbody/tr/td[2]/img"; + + @Click(CONTINUE_BUTTON) + ApplicationConfirmationPage continueApplicationConfirmation(); + + @TypeInto(value = "RS_CISTYMESICPRIJEM3M", by = Lookup.ID) + EmploymentDetailsPage setApproximateMonthlyIncomeAverage(int approximateMonthlyIncomeAverage); + + @TypeInto(value = "RS_CELKOVYPRIJEMDOM", by = Lookup.ID) + EmploymentDetailsPage setHouseholdMonthlyIncome(int householdMonthlyIncome); + + @TypeInto(value = "RS_JINEMESSPLATKY", by = Lookup.ID) + EmploymentDetailsPage setOtherNonMMBMonthlyPayments(int otherNonMMBMonthlyPayments); + + @TypeInto(value = "RS_OSTATNIZIVOTNINAKLADY", by = Lookup.ID) + EmploymentDetailsPage setOtherMonthlyExpenses(int otherMonthlyExpenses); + + @TypeInto(value = "RS_SRAZKYZEMZDY", by = Lookup.ID) + EmploymentDetailsPage setSalaryDiscounts(int salaryDiscounts); + + @Select(value = "RS_POVOLANI", by = Lookup.ID) + EmploymentDetailsPage setEmployment(String employment); + + @TypeInto(value = "RS_DATUMZAMOD", by = Lookup.ID) + EmploymentDetailsPage setEmploymentStartDate(String employmentStartDate); + + @Select(value = "RS_ZAMZEME", by = Lookup.ID) + EmploymentDetailsPage setCounty(String county); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/PersonalDetailsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/PersonalDetailsPage.java new file mode 100644 index 0000000..e1366fc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/PersonalDetailsPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ib.cards.application; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ib.cards.application.PersonalDetailsPage.PAGE_NAME; + + +@Wait(PAGE_NAME) +public interface PersonalDetailsPage extends IbPageFlow { + + String PAGE_NAME = "//*[@id=\"helpNav\"]/tbody/tr[2]/td[text()='Osobní údaje']"; + String CONTINUE_BUTTON = "//*[@id=\"mainFrm\"]/table[4]/tbody/tr/td[2]/img"; + + @Select(value = "RS_OSOBNIDOKLAD2TYP", by = Lookup.ID) + PersonalDetailsPage selectSecondIdType(String idType); + + @TypeInto(value = "RS_OSOBNIDOKLAD2CISLO", by = Lookup.ID) + PersonalDetailsPage setSecondIdNumber(String secondIDNumber); + + @TypeInto(value = "RS_OSOBNIDOKLAD2PLATNOSTDO", by = Lookup.ID) + PersonalDetailsPage setSecondIdValidTo(String secondIdValidTo); + + @Click(CONTINUE_BUTTON) + EmploymentDetailsPage continueToEmploymentDetails(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/contract/PrepareContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/contract/PrepareContractPage.java new file mode 100644 index 0000000..635123a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/contract/PrepareContractPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ib.cards.application.contract; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.cards.CardsVerticalMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.cards.application.contract.PrepareContractPage.PAGE_NAME; + +@Wait(PAGE_NAME) +public interface PrepareContractPage extends IbPageFlow, CardsVerticalMenu { + + String PAGE_NAME = "//*[@id=\"x31809652\"]/span/b[text()='Předsmluvní informace']"; + + @Click("//input[@type='checkbox' and @name='confirm']") + PrepareContractPage clickConfirm(); + + @Click("//*[@id=\"x31809652\"]/table[2]/tbody/tr[4]/td[2]/img") + ReviewContractPage clickAgreeAndContinueToReview(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/contract/ReviewContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/contract/ReviewContractPage.java new file mode 100644 index 0000000..4d773bb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/contract/ReviewContractPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ib.cards.application.contract; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.cards.CardsVerticalMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.cards.application.contract.ReviewContractPage.PAGE_NAME; + +@Wait(PAGE_NAME) +public interface ReviewContractPage extends IbPageFlow, CardsVerticalMenu { + String PAGE_NAME = "//*[@id=\"agreementSign_2_9\"]/tbody/tr/td/table[1]/tbody/tr/td[text()='Parametry kreditní karty dle Vaší žádosti']"; + String SIGN_BUTTON = "//img[@id='sendBtn']"; + String SMS_CODE_INPUT = "//input[@id='SMSCode']"; + + @TypeInto(SMS_CODE_INPUT) + ReviewContractPage typeSmsCode(String smsCode); + + @Click("//input[@type='checkbox' and @name='prvaP']") + ReviewContractPage clickConfirm(); + + @Click(SIGN_BUTTON) + SignatureConfirmationPage signContractAndContinueToConfirmationPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/contract/SignatureConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/contract/SignatureConfirmationPage.java new file mode 100644 index 0000000..2ee0a08 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/cards/application/contract/SignatureConfirmationPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ib.cards.application.contract; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.cards.CardsVerticalMenu; +import cz.moneta.test.dsl.ib.cards.application.ApplicationsOverviewPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.cards.application.contract.SignatureConfirmationPage.PAGE_NAME; + +@Wait(PAGE_NAME) +public interface SignatureConfirmationPage extends IbPageFlow, CardsVerticalMenu { + String PAGE_NAME = "//*[@id=\"agreementSign_2_9\"]/tbody/tr/td/table[2]/tbody/tr/td[contains(text(),' Děkujeme za podpis smlouvy!')]"; + + String APPLICATION_REVIEW = "//*[@id=\"agreementSign_2_9\"]/tbody/tr/td/table[3]/tbody/tr/td/a/img"; + + @Click(APPLICATION_REVIEW) + ApplicationsOverviewPage continueToApplicationOverviewPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/components/AccountsAndTransactionsSubmenu.java b/tests/src/main/java/cz/moneta/test/dsl/ib/components/AccountsAndTransactionsSubmenu.java new file mode 100644 index 0000000..cf86e3a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/components/AccountsAndTransactionsSubmenu.java @@ -0,0 +1,82 @@ +package cz.moneta.test.dsl.ib.components; + +import cz.moneta.test.dsl.ib.account.current.CurrentAccountPage; +import cz.moneta.test.dsl.ib.account.current.TransactionListPage; +import cz.moneta.test.dsl.ib.accountsandtransactions.ListOfStandingOrdersDirectDebitsAndSipoPaymentsPage; +import cz.moneta.test.dsl.ib.accountsandtransactions.paymentawaitingsignature.PaymentsAwaitingSignature; +import cz.moneta.test.dsl.ib.accountsandtransactions.paymentordershistory.PaymentOrdersHistoryPage; +import cz.moneta.test.dsl.ib.accountsandtransactions.pendingtransactions.PendingTransactionsPage; +import cz.moneta.test.dsl.ib.accountsandtransactions.templates.TemplateNewBetweenCreatePage; +import cz.moneta.test.dsl.ib.documents.MyDocumentsPage; +import cz.moneta.test.dsl.ib.payment.domestic.PaymentOrderCreatePage; +import cz.moneta.test.dsl.ib.payment.foreign.ForeignPaymentOderCreatePage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +public interface AccountsAndTransactionsSubmenu extends Builder { + + String CURRENT_ACCOUNTS_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'balances_list')]"; + String PENDING_TRANSACTIONS_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'balances_pendingList')]"; + String TRANSACTIONS_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'movements_listExt')]"; + String PAYMENT_ORDERS_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'dpoview_list2')]"; + String PAYMENTS_TO_BE_SIGNED_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'waitingRoom_listExt')]"; + String NEW_DOMESTIC_PAYMENT_ORDER_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'dpo_clearForm')]"; + String NEW_FOREIGN_PAYMENT_ORDER_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'fpo_clearForm')]"; + String TEMPLATES_SETTING_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'partner_list')]"; + String STANDING_ORDERS_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'ist_listProduct')]"; + String BONUS_PROGRAM_BENE_PLUS_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'cardService_benePlus')]"; + String MOBILE_OPERATORS_PAYMENT_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, ''rchar_list'')]"; + String FX_MONEY_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'fxMoney_clearForm')]"; + String NOTIFICATIONS_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'forAdv_listRefresh')]"; + String STATEMENTS_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'estatement_listRefresh')]"; + String MY_DOCUMENTS_BUTTON = "//div[@id='document']//ul[@id='navList']//a[contains(@href, 'cardService_myDocs')]"; + + @Click(CURRENT_ACCOUNTS_BUTTON) + CurrentAccountPage clickCurrentAccounts(); + + @Click(PENDING_TRANSACTIONS_BUTTON) + PendingTransactionsPage clickPendingTransactions(); + + @Wait(value = TRANSACTIONS_BUTTON, until = Until.VISIBLE) + @Click(TRANSACTIONS_BUTTON) + TransactionListPage clickTransactions(); + + @Click(PAYMENT_ORDERS_BUTTON) + PaymentOrdersHistoryPage clickPaymentOrders(); + + @Click(PAYMENTS_TO_BE_SIGNED_BUTTON) + PaymentsAwaitingSignature clickPaymentsWaitingForSignature(); + + @Click(NEW_DOMESTIC_PAYMENT_ORDER_BUTTON) + PaymentOrderCreatePage clickNewDomesticPaymentOrder(); + + @Click(NEW_FOREIGN_PAYMENT_ORDER_BUTTON) + ForeignPaymentOderCreatePage clickNewForeignPaymentOrder(); + + @Click(TEMPLATES_SETTING_BUTTON) + TemplateNewBetweenCreatePage clickTemplatesSetting(); + + @Click(STANDING_ORDERS_BUTTON) + ListOfStandingOrdersDirectDebitsAndSipoPaymentsPage clickStandingOrders(); + + @Click(BONUS_PROGRAM_BENE_PLUS_BUTTON) + void clickBonusProgramBenePlus(); + + @Click(MOBILE_OPERATORS_PAYMENT_BUTTON) + void clickMobileOperatorsPayment(); + + @Click(FX_MONEY_BUTTON) + void clickFxMoney(); + + @Click(NOTIFICATIONS_BUTTON) + void clickNotifications(); + + @Click(STATEMENTS_BUTTON) + void clickStatements(); + + @Click(MY_DOCUMENTS_BUTTON) + MyDocumentsPage clickMyDocuments(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/components/MainMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ib/components/MainMenu.java new file mode 100644 index 0000000..0d0b2bf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/components/MainMenu.java @@ -0,0 +1,81 @@ +package cz.moneta.test.dsl.ib.components; + +import cz.moneta.test.dsl.ib.account.current.CurrentAccountPage; +import cz.moneta.test.dsl.ib.account.saving.SavingsAccountPage; +import cz.moneta.test.dsl.ib.authentication.LogoutSuccessfulPage; +import cz.moneta.test.dsl.ib.cards.CardsOverviewPage; +import cz.moneta.test.dsl.ib.insurance.InsurancePage; +import cz.moneta.test.dsl.ib.loans.IbLoansPage; +import cz.moneta.test.dsl.ib.mortgages.OverviewOfMortgagesPage; +import cz.moneta.test.dsl.ib.welcome.WelcomePage; +import cz.moneta.test.dsl.newib.mainpage.InvestmentsPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import java.util.List; + +import static cz.moneta.test.dsl.ib.components.MainMenu.*; + +@Wait({ACCOUNTS_AND_TRANSACTIONS_BUTTON, LOG_OFF_BUTTON}) +public interface MainMenu extends Builder, StoreAccessor { + + String MENU_PARENT = "//div[@id='document']//a"; + String ACCOUNTS_AND_TRANSACTIONS_BUTTON = MENU_PARENT + "/img[@alt='Moje účty']"; + String SAVINGS_ACCOUNTS_BUTTON = MENU_PARENT + "/img[@alt='Spoření']"; + String CARDS_BUTTON = MENU_PARENT + "/img[@alt='karty']"; + String LOANS_BUTTON = MENU_PARENT + "/img[@alt='Půjčky']"; + String INSURANCE_BUTTON = MENU_PARENT + "/img[@alt='Pojištění']"; + String MORTGAGE_BUTTON = MENU_PARENT + "/img[@alt='Hypotéky']"; + String INVESTMENT_BUTTON = MENU_PARENT + "/img[@alt='Investování']"; + String LOG_OFF_BUTTON = MENU_PARENT + "/img[contains(@src, 'button_login.gif')]"; + String WELCOME_PAGE_BUTTON = MENU_PARENT + "//img[@alt='WELCOME PAGE']"; + String ITEM_IN_MENU_NOT_ACTIVE = MENU_PARENT + "//img[@alt='%s' and not(@onclick)]/parent::td"; + String ITEM_IN_MENU_ACTIVE = MENU_PARENT + "//img[@alt='%s' and @onclick]/parent::a"; + + @Click(ACCOUNTS_AND_TRANSACTIONS_BUTTON) + CurrentAccountPage clickAccountsAndTransactions(); + + @Click(SAVINGS_ACCOUNTS_BUTTON) + SavingsAccountPage clickSavings(); + + @Click(CARDS_BUTTON) + CardsOverviewPage clickCards(); + + @Click(LOANS_BUTTON) + IbLoansPage clickLoans(); + + @Click(INSURANCE_BUTTON) + InsurancePage clickInsurance(); + + @Click(MORTGAGE_BUTTON) + OverviewOfMortgagesPage clickMortgages(); + + @Click(INVESTMENT_BUTTON) + InvestmentsPage clickInvestments(); + + @CustomAction + default void clickLogOff() { + IbEndpoint endpoint = this.getEndpoint(IbEndpoint.class); + endpoint.click(() -> LOG_OFF_BUTTON); + endpoint.waitForElementsToLoad(10, LogoutSuccessfulPage.PAGE_NAME); + this.closeEndpoint(endpoint); + } + + @Click(WELCOME_PAGE_BUTTON) + WelcomePage clickToWelcomePageButton(); + + @CustomAction + default WelcomePage checkMainMenuItemsIsNotClickable(List mainMenuItems) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + mainMenuItems.forEach(s -> ibEndpoint.isElementPresent(String.format(ITEM_IN_MENU_NOT_ACTIVE, s), Lookup.XPATH)); + return null; + } + + @CustomAction + default WelcomePage checkMainMenuItemsIsClickable(List mainMenuItems) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + mainMenuItems.forEach(s -> ibEndpoint.isElementPresent(String.format(ITEM_IN_MENU_ACTIVE, s), Lookup.XPATH)); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/components/MobileKeyConfirmation.java b/tests/src/main/java/cz/moneta/test/dsl/ib/components/MobileKeyConfirmation.java new file mode 100644 index 0000000..3395e95 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/components/MobileKeyConfirmation.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ib.components; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface MobileKeyConfirmation { + + String SEND_MOBILE_KEY_LINK = "//img[@alt='Odeslat'] | //a[@id='sendBtn']"; + String SMS_CODE_INPUT = "//input[@id='SMSCode']"; + + @TypeInto(SMS_CODE_INPUT) + A typeSmsCode(String smsCode); + + @Click(SEND_MOBILE_KEY_LINK) + A validateMobileKey(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/components/SavingMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ib/components/SavingMenu.java new file mode 100644 index 0000000..267373c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/components/SavingMenu.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ib.components; + +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.components.SavingMenu.SAVING_MENU_XPATH; + +@Wait(SAVING_MENU_XPATH) +public interface SavingMenu extends Builder { + String SAVING_MENU_XPATH = "//ul[@id='navList']"; + String TRANSFER_OF_FOUNDS = SAVING_MENU_XPATH + "//a[text()='Převod prostředků']"; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/components/UserMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ib/components/UserMenu.java new file mode 100644 index 0000000..ed1d8a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/components/UserMenu.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ib.components; + +import cz.moneta.test.dsl.ib.documents.MyDocumentsPage; +import cz.moneta.test.dsl.ib.messages.IbArrivedMailsPage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.components.UserMenu.MESSAGES; + +@Wait(MESSAGES) +public interface UserMenu extends Builder { + String MY_DOCUMENTS_BUTTON = "//a[text()='Moje dokumenty']"; + String MESSAGES = "//a[text() = 'Zprávy']"; + String SETTINGS_PAGE_LINK = "//img[contains(@src,'images/nastaveni')]"; + + @Click(MY_DOCUMENTS_BUTTON) + MyDocumentsPage clickToMyDocuments(); + + @Wait(MESSAGES) + @Click(MESSAGES) + IbArrivedMailsPage messages(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/documents/MyDocumentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/documents/MyDocumentsPage.java new file mode 100644 index 0000000..c10adfc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/documents/MyDocumentsPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ib.documents; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.UserMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.documents.MyDocumentsPage.PAGE_IDENTIFICATOR; + +@Wait(PAGE_IDENTIFICATOR) +public interface MyDocumentsPage extends IbPageFlow, MainMenu, UserMenu, StoreAccessor { + String PAGE_IDENTIFICATOR = "//img[@alt='Obecný frame Moje dokumenty']"; + String DOCUMENT_PRODUCT_XPATH = "//a/b[text()='%s']"; + String FILTER_GROUP = "group"; + String VALUE_DATE_FROM = "valueDateFrom"; + String SHOW_BUTTON = "//img[@alt = 'Zobrazit']"; + + @Select(value = FILTER_GROUP, by = Lookup.ID, andWait = @Wait(value = BUSY_LOADER, until = Until.GONE)) + MyDocumentsPage selectGroup(String groupType); + + @TypeInto(value = VALUE_DATE_FROM, by = Lookup.ID) + MyDocumentsPage setDateFrom(String dateFrom); + + @Click(value = SHOW_BUTTON, andWait = @Wait(value = BUSY_LOADER, until = Until.GONE)) + MyDocumentsPage showDocuments(); + + @CheckElementPresent(value = DOCUMENT_PRODUCT_XPATH, isStringDynamicXpath = true) + MyDocumentsPage checkDocumentName(String documentName); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/ConfirmOtherPhoneNumberPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/ConfirmOtherPhoneNumberPage.java new file mode 100644 index 0000000..801ba23 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/ConfirmOtherPhoneNumberPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ib.doidentifikace; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.doidentifikace.ConfirmOtherPhoneNumberPage.BACK_TO_VERIFICATION_BUTTON; + +@Wait(BACK_TO_VERIFICATION_BUTTON) +public interface ConfirmOtherPhoneNumberPage extends IbPageFlow, StoreAccessor { + String BACK_TO_VERIFICATION_BUTTON = "//button[@testid='back-to-sms-verification-button']"; + String CONFIRM_INVALID_PHONE_BUTTON = "//button[@testid='handle-invalid-phone-button']"; + + @Click(BACK_TO_VERIFICATION_BUTTON) + PhoneNumberPage returnToPhoneNumberPage(); + + @Click(CONFIRM_INVALID_PHONE_BUTTON) + SendCustomerToBankPage confirmInvalidPhoneNumber(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/ConfirmPageAnotherPerson.java b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/ConfirmPageAnotherPerson.java new file mode 100644 index 0000000..a90a969 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/ConfirmPageAnotherPerson.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ib.doidentifikace; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.welcome.WelcomePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.doidentifikace.ConfirmPageAnotherPerson.CONFIRM_BUTTON_ANOTHER_PERSON; + +@Wait(CONFIRM_BUTTON_ANOTHER_PERSON) +public interface ConfirmPageAnotherPerson extends IbPageFlow { + String CONFIRM_BUTTON_ANOTHER_PERSON = "//button[@testid='handle-invalid-context-button']"; + + @Click(value = CONFIRM_BUTTON_ANOTHER_PERSON) + WelcomePage clickToConfirmButtonAnotherPerson(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/ConfirmSMSPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/ConfirmSMSPage.java new file mode 100644 index 0000000..1d3f4a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/ConfirmSMSPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ib.doidentifikace; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.doidentifikace.ConfirmSMSPage.CONFIRM_SMS_WINDOW; + +@Wait(CONFIRM_SMS_WINDOW) +public interface ConfirmSMSPage extends IbPageFlow, StoreAccessor { + String CONFIRM_SMS_WINDOW = "//span[@testid='invalid-phone-link']"; + String INPUT_SMS_KEY = "//input[@placeholder='Opište kód z SMS']"; //FIXME + String CONFIRM_SMS_BUTTON = "//button[@testid='verify-sms-key-button']"; + + @TypeInto(value = INPUT_SMS_KEY, clear = true) + ConfirmSMSPage typeSMSKey(String smsKey); + + @Wait(value = INPUT_SMS_KEY, explicitWaitSeconds = 2) + ConfirmSMSPage waitSMSField(); + + @CustomAction + default SuccessPage focusAndClickToConfirmSmsButton() { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.moveToElement(CONFIRM_SMS_WINDOW); + endpoint.click(() -> CONFIRM_SMS_BUTTON); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/IdentityCardPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/IdentityCardPage.java new file mode 100644 index 0000000..7c73b13 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/IdentityCardPage.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.ib.doidentifikace; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.doidentifikace.IdentityCardPage.IDENTITY_CARD_WINDOW; + +@Wait(IDENTITY_CARD_WINDOW) +public interface IdentityCardPage extends IbPageFlow, StoreAccessor { + String IDENTITY_CARD_WINDOW = "//input[@testid='validity-input']"; + String CONFIRM_DATE_ID = "//button[@testid='verify-id-validity-button']"; + + @CustomAction + default IdentityCardPage focusAndClickToDateId() { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.moveToElement(IDENTITY_CARD_WINDOW); + endpoint.click(() -> IDENTITY_CARD_WINDOW); + return null; + } + + @TypeInto(value = IDENTITY_CARD_WINDOW, clear = true) + IdentityCardPage typeDateId(String dateID); + + @CustomAction + default PhoneNumberPage focusAndClickToDateConfirm() { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.moveToElement(IDENTITY_CARD_WINDOW); + endpoint.click(() -> CONFIRM_DATE_ID); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/PhoneNumberPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/PhoneNumberPage.java new file mode 100644 index 0000000..51e2cd6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/PhoneNumberPage.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ib.doidentifikace; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.doidentifikace.PhoneNumberPage.PHONE_NUMBER_WINDOW; + +@Wait(PHONE_NUMBER_WINDOW) +public interface PhoneNumberPage extends IbPageFlow, StoreAccessor { + String PHONE_NUMBER_WINDOW = "//input[@testid='validity-input']"; + String SEND_SMS_BUTTON = "//button[@testid='show-sms-input-button']"; + String LINK_THIS_IS_NOT_MY_NUMBER = "//span[@testid='invalid-phone-link']"; + + @CustomAction + default ConfirmSMSPage focusAndClickToSmsButton() { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.moveToElement(PHONE_NUMBER_WINDOW); + endpoint.click(() -> SEND_SMS_BUTTON); + return null; + } + + @CustomAction + default ConfirmOtherPhoneNumberPage focusAndClickToNotMyNumber() { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.moveToElement(PHONE_NUMBER_WINDOW); + endpoint.click(() -> LINK_THIS_IS_NOT_MY_NUMBER); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/SendCustomerToBankPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/SendCustomerToBankPage.java new file mode 100644 index 0000000..6d88d0c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/SendCustomerToBankPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ib.doidentifikace; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.welcome.WelcomePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.doidentifikace.SendCustomerToBankPage.MAKE_APPOINTMENT_BUTTON; + +@Wait(MAKE_APPOINTMENT_BUTTON) +public interface SendCustomerToBankPage extends IbPageFlow, StoreAccessor { + String MAKE_APPOINTMENT_BUTTON = "//a[@testid='make-appointment-button']"; + String CLOSE_ICON = "//div[@testid='close-icon']"; + + @CheckElementPresent(MAKE_APPOINTMENT_BUTTON) + SendCustomerToBankPage checkMakeAppointmentButton(); + + @Click(value = CLOSE_ICON) + WelcomePage closePage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/SuccessPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/SuccessPage.java new file mode 100644 index 0000000..f15088c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/doidentifikace/SuccessPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ib.doidentifikace; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.welcome.WelcomePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.doidentifikace.SuccessPage.SUCCESS_WINDOW; + +@Wait(SUCCESS_WINDOW) +public interface SuccessPage extends IbPageFlow { + String SUCCESS_WINDOW = "//span[@testid='go-to-dashboard-button']"; + + @Click(value = SUCCESS_WINDOW, jsClick = true) + WelcomePage focusAndClickIBReturnButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/InsurancePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/InsurancePage.java new file mode 100644 index 0000000..1caffb6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/InsurancePage.java @@ -0,0 +1,108 @@ +package cz.moneta.test.dsl.ib.insurance; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.insurance.paymentsandexpenses.PaymentsAndExpensesCreatePage; +import cz.moneta.test.dsl.ib.insurance.accident.AccidentInsuranceCreatePage; +import cz.moneta.test.dsl.ib.insurance.electronicpayment.ElectronicPaymentInsuranceCreatePage; +import cz.moneta.test.dsl.ib.insurance.exhaustedAmount.ExhaustedAmountInputPage; +import cz.moneta.test.dsl.ib.insurance.insuranceofproperty.InsuranceOfPropertyCardsAndInternetRisksCreatePage; +import cz.moneta.test.dsl.ib.insurance.travel.LongTermTravelInsuranceCreatePage; +import cz.moneta.test.dsl.ib.insurance.travel.ShortTermTravelInsuranceCreatePage; +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +public interface InsurancePage extends IbPageFlow, MainMenu { + + String SHORT_TERM_INSURANCE_CREATE_BUTTON = "//a[contains(@href, 'STTI')]"; + String ACCIDENT_INSURANCE_CREATE_BUTTON = "//a[contains(@href, 'ACCIDENT')]"; + String INSURANCE_OF_PROPERTY_CARDS_AND_INTERNET_RISKS_CREATE_BUTTON = "//a[contains(@href, '7733001')]"; + String ELECTRONIC_PAYMENT_INSURANCE_CREATE_BUTTON = "//a[contains(@href, '7734001')]"; + String INSURANCE_TABLE = "//table[@id='insuranceList_16_1']"; + String LONG_TERM_INSURANCE_CREATE_BUTTON = "//a[contains(@href, 'LTTI')]"; + String LONG_TERM_EUROPE_SINGLE_INSURANCE = "//td[contains(text(), 'Dlouhodobé cestovní pojištění Evropa (single)')]"; + String LONG_TERM_EUROPE_FAMILY_INSURANCE = "//td[contains(text(), 'Dlouhodobé cestovní pojištění Evropa (family)')]"; + String LONG_TERM_WORLD_SINGLE_INSURANCE = "//td[contains(text(), 'Dlouhodobé cestovní pojištění Svět (single)')]"; + String LONG_TERM_WORLD_FAMILY_INSURANCE = "//td[contains(text(), 'Dlouhodobé cestovní pojištění Svět (family)')]"; + String ELECTRONIC_PAYMENT_INSURANCE_CHECK = "//td[contains(text(), 'Pojištění elektronických plateb')]"; + String PAYMENTS_AND_EXPENSES_INSURANCE_CREATE_BUTTON = "//a[contains(@href, '7701002')]"; + String PAYMENTS_AND_EXPENSES_INSURANCE_CHECK = "//td[contains(text(), 'Pojištění splátek a výdajů')]"; + String PROPERTY_CARDS_AND_INTERNET_RISK_INSURANCE_CHECK = "//td[contains(text(), 'Pojištění osobních věcí, platebních karet a internetových rizik')]"; + String ACCIDENT_ADULT_INSURANCE_CHECK = "//td[contains(text(), 'Úrazové pojištění - varianta Dospělý')]"; + String ACCIDENT_FAMILY_INSURANCE_CHECK = "//td[contains(text(), 'Úrazové pojištění - varianta Family')]"; + String ACCIDENT_JUNIOR_INSURANCE_CHECK = "//td[contains(text(), 'Úrazové pojištění - varianta Junior')]"; + String SHORT_TERM_EUROPE_SINGLE_INSURANCE = "//td[contains(text(), 'Krátkodobé cestovní pojištění Evropa single')]"; + String SHORT_TERM_EUROPE_FAMILY_INSURANCE = "//td[contains(text(), 'Krátkodobé cestovní pojištění Evropa family')]"; + String SHORT_TERM_WORLD_SINGLE_INSURANCE = "//td[contains(text(), 'Krátkodobé cestovní pojištění Svět single')]"; + String SHORT_TERM_WORLD_FAMILY_INSURANCE = "//td[contains(text(), 'Krátkodobé cestovní pojištění Svět family')]"; + String EXHAUSTED_AMOUNT_INSURANCE_BUTTON = "//img[@src='images_new/banners/insurance/pojisteniVycerpaneCastky.png']/following::div[@class='button']"; + + @Click(SHORT_TERM_INSURANCE_CREATE_BUTTON) + ShortTermTravelInsuranceCreatePage clickCreateShortTermInsurance(); + + @Click(ACCIDENT_INSURANCE_CREATE_BUTTON) + AccidentInsuranceCreatePage clickCreateAccidentInsurence(); + + @Click(INSURANCE_OF_PROPERTY_CARDS_AND_INTERNET_RISKS_CREATE_BUTTON) + InsuranceOfPropertyCardsAndInternetRisksCreatePage clickCreateInsuranceOfPropertyCardsAndInternetRisks(); + + @Click(ELECTRONIC_PAYMENT_INSURANCE_CREATE_BUTTON) + ElectronicPaymentInsuranceCreatePage clickCreateElectronicPaymentInsurance(); + + @Click (PAYMENTS_AND_EXPENSES_INSURANCE_CREATE_BUTTON) + PaymentsAndExpensesCreatePage clickCreatePaymentsAndExpensesInsurance(); + + @CheckElementContent(INSURANCE_TABLE) + InsurancePage checkInsuranceIsFound(String insurance); + + @Click(value = EXHAUSTED_AMOUNT_INSURANCE_BUTTON) + ExhaustedAmountInputPage clickCreateExhaustedAmountInsurance(); + + @Wait(waitSecondsForElement = 15) + @Click(LONG_TERM_INSURANCE_CREATE_BUTTON) + LongTermTravelInsuranceCreatePage clickCreateLongTermInsurance(); + + @Wait(LONG_TERM_EUROPE_SINGLE_INSURANCE) + InsurancePage checkLongTravelEuropeSingleInsuranceIsFound(); + + @Wait(SHORT_TERM_EUROPE_SINGLE_INSURANCE) + InsurancePage checkShortTravelEuropeSingleInsuranceIsFound(); + + @Wait(LONG_TERM_EUROPE_FAMILY_INSURANCE) + InsurancePage checkLongTravelEuropeFamilyInsuranceIsFound(); + + @Wait(SHORT_TERM_EUROPE_FAMILY_INSURANCE) + InsurancePage checkShortTravelEuropeFamilyInsuranceIsFound(); + + @Wait(LONG_TERM_WORLD_SINGLE_INSURANCE) + InsurancePage checkLongTravelWorldSingleInsuranceIsFound(); + + @Wait(SHORT_TERM_WORLD_SINGLE_INSURANCE) + InsurancePage checkShortTravelWorldSingleInsuranceIsFound(); + + @Wait(LONG_TERM_WORLD_FAMILY_INSURANCE) + InsurancePage checkLongTravelWorldFamilyInsuranceIsFound(); + + @Wait(SHORT_TERM_WORLD_FAMILY_INSURANCE) + InsurancePage checkShortTravelWorldFamilyInsuranceIsFound(); + + @Wait(ELECTRONIC_PAYMENT_INSURANCE_CHECK) + InsurancePage checkElectronicPaymentInsuranceIsFound(); + + @Wait(PAYMENTS_AND_EXPENSES_INSURANCE_CHECK) + InsurancePage checkPaymentsAndExpensesInsuranceIsFound(); + + @Wait (PROPERTY_CARDS_AND_INTERNET_RISK_INSURANCE_CHECK) + InsurancePage checkPropertyCardsAndInternetRiskInsuranceIsFound(); + + @Wait (ACCIDENT_ADULT_INSURANCE_CHECK) + InsurancePage checkAccidentAdultInsuranceIsFound(); + + @Wait (ACCIDENT_FAMILY_INSURANCE_CHECK) + InsurancePage checkAccidentFamilyInsuranceIsFound(); + + + @Wait (ACCIDENT_JUNIOR_INSURANCE_CHECK) + InsurancePage checkAccidentJuniorInsuranceIsFound(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/accident/AccidentInsuranceConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/accident/AccidentInsuranceConfirmationPage.java new file mode 100644 index 0000000..5a35887 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/accident/AccidentInsuranceConfirmationPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ib.insurance.accident; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.insurance.InsurancePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.accident.AccidentInsuranceConfirmationPage.LIST_INSURANCE_BUTTON; + +@Wait(value = LIST_INSURANCE_BUTTON) +public interface AccidentInsuranceConfirmationPage extends IbPageFlow, MainMenu { + + String LIST_INSURANCE_BUTTON = "//img[contains(@src, 'prehled-pojisteni')]"; + + @Click(LIST_INSURANCE_BUTTON) + InsurancePage clickListInsurace(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/accident/AccidentInsuranceCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/accident/AccidentInsuranceCreatePage.java new file mode 100644 index 0000000..48d099f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/accident/AccidentInsuranceCreatePage.java @@ -0,0 +1,70 @@ +package cz.moneta.test.dsl.ib.insurance.accident; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.accident.AccidentInsuranceCreatePage.CONTINUE_BUTTON; + +@Wait(CONTINUE_BUTTON) +public interface AccidentInsuranceCreatePage extends IbPageFlow, MainMenu { + + String ACCOUNT_SELECT = "//select[@name='accountNumber']"; + String JUNIOR_INSURANCE_SELECT = "//select[@name='insuranceType']/option[@value='7713002']"; + String ADULT_INSURANCE_SELECT = "//select[@name='insuranceType']/option[@value='7713005']"; + String FAMILY_INSURANCE_SELECT = "//select[@name='insuranceType']/option[@value='7713006']"; + String FIRST_NAME_INPUT = "//input[@name='firstName']"; + String LAST_NAME_INPUT = "//input[@name='lastName']"; + String IDENTIFICATION_NUMBER_INPUT = "//input[@name='personalNumber']"; + String DISABLEMENT_AGREEMENT_CHECKBOX = "//input[@id='invalidityYes']"; + String CHILDREN_AGREEMENT_CHECKBOX = "//input[@id='childrenYes']"; + String LICENCE_AGREEMENT_CHECKBOX = "//input[@name='licenceAgreement1']"; + String INSURANCE_AGREEMENT_CHECKBOX = "//input[@name='licenceAgreement2']"; + String CONTINUE_BUTTON = "//a[@id='btnContinue']"; + String SMS_CODE_INPUT = "//input[@name='mobileKey']"; + String SEND_BUTTON = "//a[@id='btnVerify']"; + + @Click(ACCOUNT_SELECT) + AccidentInsuranceCreatePage clickAccountSelect(); + + @Click(JUNIOR_INSURANCE_SELECT) + AccidentInsuranceCreatePage clickInsuranceSelectJunior(); + + @Click(ADULT_INSURANCE_SELECT) + AccidentInsuranceCreatePage clickInsuranceSelectAdult(); + + @Click(FAMILY_INSURANCE_SELECT) + AccidentInsuranceCreatePage clickInsuranceSelectFamily(); + + @TypeInto(FIRST_NAME_INPUT) + AccidentInsuranceCreatePage fillToFirstName(String firstName); + + @TypeInto(LAST_NAME_INPUT) + AccidentInsuranceCreatePage fillToLastName(String lastName); + + @TypeInto(IDENTIFICATION_NUMBER_INPUT) + AccidentInsuranceCreatePage fillToIdentificationNumberName(String identificationNumber); + + @Click(CHILDREN_AGREEMENT_CHECKBOX) + AccidentInsuranceCreatePage clickChildrenAgreement(); + + @Click(DISABLEMENT_AGREEMENT_CHECKBOX) + AccidentInsuranceCreatePage clickInvalidityAgreement(); + + @Click(LICENCE_AGREEMENT_CHECKBOX) + AccidentInsuranceCreatePage clickLicenceAgreement(); + + @Click(INSURANCE_AGREEMENT_CHECKBOX) + AccidentInsuranceCreatePage clickInsuranceAgreement(); + + @Click(CONTINUE_BUTTON) + AccidentInsuranceCreatePage clickContinueButton(); + + @TypeInto(SMS_CODE_INPUT) + AccidentInsuranceCreatePage typeSmsCode(String smsCode); + + @Click(SEND_BUTTON) + AccidentInsuranceConfirmationPage clickSend(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/electronicpayment/ElectronicPaymentInsuranceAuthotizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/electronicpayment/ElectronicPaymentInsuranceAuthotizePage.java new file mode 100644 index 0000000..ef97285 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/electronicpayment/ElectronicPaymentInsuranceAuthotizePage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ib.insurance.electronicpayment; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.electronicpayment.ElectronicPaymentInsuranceAuthotizePage.SEND_BUTTON; + +@Wait(SEND_BUTTON) +public interface ElectronicPaymentInsuranceAuthotizePage extends IbPageFlow, MainMenu { + + String SMS_CODE_INPUT = "//input[@name='mobileKey']"; + String SEND_BUTTON = "//a[@id='btnVerify']"; + + @TypeInto(SMS_CODE_INPUT) + ElectronicPaymentInsuranceAuthotizePage typeSmsCode(String smsCode); + + @Click(SEND_BUTTON) + ElectronicPaymentInsuranceConfirmationPage clickSend(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/electronicpayment/ElectronicPaymentInsuranceConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/electronicpayment/ElectronicPaymentInsuranceConfirmationPage.java new file mode 100644 index 0000000..91fe986 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/electronicpayment/ElectronicPaymentInsuranceConfirmationPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.insurance.electronicpayment; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.insurance.InsurancePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.electronicpayment.ElectronicPaymentInsuranceConfirmationPage.LIST_INSURANCE_BUTTON; + +@Wait(LIST_INSURANCE_BUTTON) +public interface ElectronicPaymentInsuranceConfirmationPage extends IbPageFlow, MainMenu { + + String LIST_INSURANCE_BUTTON = "//img[contains(@src, 'prehled-pojisteni')]"; + + @Click(LIST_INSURANCE_BUTTON) + InsurancePage clickListInsurace(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/electronicpayment/ElectronicPaymentInsuranceCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/electronicpayment/ElectronicPaymentInsuranceCreatePage.java new file mode 100644 index 0000000..56541ca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/electronicpayment/ElectronicPaymentInsuranceCreatePage.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ib.insurance.electronicpayment; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.electronicpayment.ElectronicPaymentInsuranceCreatePage.CONTINUE_BUTTON; + +@Wait(CONTINUE_BUTTON) +public interface ElectronicPaymentInsuranceCreatePage extends IbPageFlow, MainMenu { + + String ACCOUNT_SELECT = "//select[@name='accountNumber']"; + String LICENCE_AGREEMENT_CHECKBOX = "//input[@name='licenceAgreement1']"; + String INSURANCE_AGREEMENT_CHECKBOX = "//input[@name='licenceAgreement2']"; + String CONTINUE_BUTTON = "//a[@id='btnContinue']"; + + @Click(ACCOUNT_SELECT) + ElectronicPaymentInsuranceCreatePage clickAccountSelect(); + + @Click(LICENCE_AGREEMENT_CHECKBOX) + ElectronicPaymentInsuranceCreatePage clickLicenceAgreement(); + + @Click(INSURANCE_AGREEMENT_CHECKBOX) + ElectronicPaymentInsuranceCreatePage clickInsuranceAgreement(); + + @Click(CONTINUE_BUTTON) + ElectronicPaymentInsuranceAuthotizePage clickContinueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/exhaustedAmount/ExhaustedAmnountInsuranceActivationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/exhaustedAmount/ExhaustedAmnountInsuranceActivationPage.java new file mode 100644 index 0000000..dcbb46f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/exhaustedAmount/ExhaustedAmnountInsuranceActivationPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ib.insurance.exhaustedAmount; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.insurance.InsurancePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.exhaustedAmount.ExhaustedAmnountInsuranceActivationPage.EXHAUSTED_AMOUNT_ACTIVATION_PAGE_NAME; +import static cz.moneta.test.dsl.ib.insurance.exhaustedAmount.ExhaustedAmnountInsuranceActivationPage.SECOND_STEP_IN_PROGRESS; + +@Wait({EXHAUSTED_AMOUNT_ACTIVATION_PAGE_NAME, SECOND_STEP_IN_PROGRESS}) +public interface ExhaustedAmnountInsuranceActivationPage extends IbPageFlow, MainMenu { + String EXHAUSTED_AMOUNT_ACTIVATION_PAGE_NAME = "//div[contains(text(), 'Aktivace pojištění vyčerpané částky ke kreditní kartě')]"; + String SECOND_STEP_IN_PROGRESS = "//img[@src='images_new/top_step2_2.gif']"; + String OVERVIEW_INSURANCE_BUTTON = "//img[@alt='Přehled pojištění']"; + + @Click(OVERVIEW_INSURANCE_BUTTON) + InsurancePage clickOverviewInsuranceButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/exhaustedAmount/ExhaustedAmountInputPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/exhaustedAmount/ExhaustedAmountInputPage.java new file mode 100644 index 0000000..f0cf667 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/exhaustedAmount/ExhaustedAmountInputPage.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.ib.insurance.exhaustedAmount; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ib.insurance.exhaustedAmount.ExhaustedAmountInputPage.FIRST_STEP_IN_PROGRESS; +import static cz.moneta.test.dsl.ib.insurance.exhaustedAmount.ExhaustedAmountInputPage.PAGE_NAME_XPATH; + +@Wait({PAGE_NAME_XPATH, FIRST_STEP_IN_PROGRESS}) +public interface ExhaustedAmountInputPage extends IbPageFlow, MainMenu { + String PAGE_NAME_XPATH = "//div[contains(text(),'Aktivace pojištění vyčerpané částky ke kreditní kartě')]"; + String FIRST_STEP_IN_PROGRESS = "//img[@src='images_new/top_step2_1.gif']"; + String INFORMATION_MATERIAL_TO_INSURANCE_PROGRAM_CHECKBOX = "//tr[@id='_tr_insuranceAccept1']//input[@type='checkbox' and @name='insuranceAccept1']"; + String INFORMATION_MATERIAL_TO_INSURANCE_PROGRAM_LINK = "//tr[@id='_tr_insuranceAccept1']//a[@href='https://www.moneta.cz/documents/cz/informacni-brozura-pojisteni-vycerpane-castky.pdf' and contains(text(),'informačního materiálu k pojistnému programu \"Pojištění vyčerpané částky\"')]"; + String AGREEMENT_INSURANCE_CHECKBOX = "//tr[@id='_tr_insuranceAccept2']//input[@name='insuranceAccept2']"; + String AGREEMENT_INSURANCE_LINK = "//tr[@id='_tr_insuranceAccept2']//a[text()='souhlasu s pojištěním']"; + String CONTINUE_BUTTON = "//img[@alt='Pokračovat']"; + String MOBILE_KEY_TEXT = "//tr[@id='_tr_SMSCode']/td[contains(text(), 'Mobilní klíč')]"; + String MOBILE_KEY_INPUT = "//tr[@id='_tr_SMSCode']//input[@id='SMSCode']"; + String SIGN_BUTTON = "//a[@id='sendBtn']"; + + @CheckElementPresent(INFORMATION_MATERIAL_TO_INSURANCE_PROGRAM_LINK) + @Click(INFORMATION_MATERIAL_TO_INSURANCE_PROGRAM_CHECKBOX) + ExhaustedAmountInputPage clickCheckToInformationMaterial(); + + @CheckElementPresent(AGREEMENT_INSURANCE_LINK) + @Click(AGREEMENT_INSURANCE_CHECKBOX) + ExhaustedAmountInputPage clickAgreementWithInsurance(); + + @Click(CONTINUE_BUTTON) + ExhaustedAmountInputPage clickCountinueButton(); + + @CheckElementPresent(MOBILE_KEY_TEXT) + @TypeInto(MOBILE_KEY_INPUT) + ExhaustedAmountInputPage fillInMobileKey(String mobileKey); + + @Click(SIGN_BUTTON) + ExhaustedAmountInputPage clickSignButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/insuranceofproperty/InsuranceOfPropertyCardsAndInternetRisksAuthotizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/insuranceofproperty/InsuranceOfPropertyCardsAndInternetRisksAuthotizePage.java new file mode 100644 index 0000000..a82ec9f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/insuranceofproperty/InsuranceOfPropertyCardsAndInternetRisksAuthotizePage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ib.insurance.insuranceofproperty; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.insuranceofproperty.InsuranceOfPropertyCardsAndInternetRisksAuthotizePage.SEND_BUTTON; + +@Wait({SEND_BUTTON}) +public interface InsuranceOfPropertyCardsAndInternetRisksAuthotizePage extends IbPageFlow, MainMenu { + + String SMS_CODE_INPUT = "//input[@name='mobileKey']"; + String SEND_BUTTON = "//a[@id='btnVerify']"; + + @TypeInto(SMS_CODE_INPUT) + InsuranceOfPropertyCardsAndInternetRisksAuthotizePage typeSmsCode(String smsCode); + + @Click(SEND_BUTTON) + InsuranceOfPropertyCardsAndInternetRisksConfirmationPage clickSend(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/insuranceofproperty/InsuranceOfPropertyCardsAndInternetRisksConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/insuranceofproperty/InsuranceOfPropertyCardsAndInternetRisksConfirmationPage.java new file mode 100644 index 0000000..fe51743 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/insuranceofproperty/InsuranceOfPropertyCardsAndInternetRisksConfirmationPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.insurance.insuranceofproperty; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.insurance.InsurancePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.insuranceofproperty.InsuranceOfPropertyCardsAndInternetRisksConfirmationPage.LIST_INSURANCE_BUTTON; + +@Wait(value = LIST_INSURANCE_BUTTON) +public interface InsuranceOfPropertyCardsAndInternetRisksConfirmationPage extends IbPageFlow, MainMenu { + + String LIST_INSURANCE_BUTTON = "//img[contains(@src, 'prehled-pojisteni')]"; + + @Click(LIST_INSURANCE_BUTTON) + InsurancePage clickListInsurace(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/insuranceofproperty/InsuranceOfPropertyCardsAndInternetRisksCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/insuranceofproperty/InsuranceOfPropertyCardsAndInternetRisksCreatePage.java new file mode 100644 index 0000000..da0985c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/insuranceofproperty/InsuranceOfPropertyCardsAndInternetRisksCreatePage.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ib.insurance.insuranceofproperty; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.insuranceofproperty.InsuranceOfPropertyCardsAndInternetRisksCreatePage.CONTINUE_BUTTON; + +@Wait(CONTINUE_BUTTON) +public interface InsuranceOfPropertyCardsAndInternetRisksCreatePage extends IbPageFlow, MainMenu { + + String ACCOUNT_SELECT = "//select[@name='accountNumber']"; + String LICENCE_AGREEMENT_CHECKBOX = "//input[@name='licenceAgreement1']"; + String INSURANCE_AGREEMENT_CHECKBOX = "//input[@name='licenceAgreement2']"; + String CONTINUE_BUTTON = "//a[@id='btnContinue']"; + + @Click(ACCOUNT_SELECT) + InsuranceOfPropertyCardsAndInternetRisksCreatePage clickAccountSelect(); + + @Click(LICENCE_AGREEMENT_CHECKBOX) + InsuranceOfPropertyCardsAndInternetRisksCreatePage clickLicenceAgreement(); + + @Click(INSURANCE_AGREEMENT_CHECKBOX) + InsuranceOfPropertyCardsAndInternetRisksCreatePage clickInsuranceAgreement(); + + @Click(CONTINUE_BUTTON) + InsuranceOfPropertyCardsAndInternetRisksAuthotizePage clickContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/paymentsandexpenses/PaymentsAndExpensesAuthorizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/paymentsandexpenses/PaymentsAndExpensesAuthorizePage.java new file mode 100644 index 0000000..ec6c755 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/paymentsandexpenses/PaymentsAndExpensesAuthorizePage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ib.insurance.paymentsandexpenses; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.paymentsandexpenses.PaymentsAndExpensesAuthorizePage.SEND_BUTTON; + +@Wait({SEND_BUTTON}) +public interface PaymentsAndExpensesAuthorizePage extends IbPageFlow, MainMenu { + + String SMS_CODE_INPUT = "//input[@name='SMSCode']"; + String SEND_BUTTON = "//a[@id='sendBtn']"; + + @TypeInto(SMS_CODE_INPUT) + PaymentsAndExpensesAuthorizePage typeSmsCode(String smsCode); + + @Click(SEND_BUTTON) + PaymentsAndExpensesConfirmationPage clickSend(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/paymentsandexpenses/PaymentsAndExpensesConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/paymentsandexpenses/PaymentsAndExpensesConfirmationPage.java new file mode 100644 index 0000000..9d179cb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/paymentsandexpenses/PaymentsAndExpensesConfirmationPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.insurance.paymentsandexpenses; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.insurance.InsurancePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.insuranceofproperty.InsuranceOfPropertyCardsAndInternetRisksConfirmationPage.LIST_INSURANCE_BUTTON; + +@Wait(value = LIST_INSURANCE_BUTTON) +public interface PaymentsAndExpensesConfirmationPage extends IbPageFlow, MainMenu { + + String LIST_INSURANCE_BUTTON = "//img[contains(@src, 'prehled-pojisteni')]"; + + @Click(LIST_INSURANCE_BUTTON) + InsurancePage clickListInsurace(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/paymentsandexpenses/PaymentsAndExpensesCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/paymentsandexpenses/PaymentsAndExpensesCreatePage.java new file mode 100644 index 0000000..b0b8795 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/paymentsandexpenses/PaymentsAndExpensesCreatePage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ib.insurance.paymentsandexpenses; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; + +//@Wait(CONTINUE_BUTTON) +public interface PaymentsAndExpensesCreatePage extends IbPageFlow, MainMenu { + + String ACCOUNT_SELECT = "//select[@name='insuranceAccount']"; + String HEALTH_CONDITION_CONFIRMATION = "//input[@value='A']"; + String LICENCE_AGREEMENT_CHECKBOX = "//input[@name='insuranceAccept1']"; + String INSURANCE_AGREEMENT_CHECKBOX = "//input[@name='insuranceAccept2']"; + String CONTINUE_BUTTON_XPATH = "//img[@alt='Pokračovat']"; + + @Click(ACCOUNT_SELECT) + PaymentsAndExpensesCreatePage clickAccountSelect(); + + @Click(HEALTH_CONDITION_CONFIRMATION) + PaymentsAndExpensesCreatePage clickHealthCOnditionConfirmation(); + + @Click(LICENCE_AGREEMENT_CHECKBOX) + PaymentsAndExpensesCreatePage clickLicenceAgreement(); + + @Click(INSURANCE_AGREEMENT_CHECKBOX) + PaymentsAndExpensesCreatePage clickInsuranceAgreement(); + + @Click(CONTINUE_BUTTON_XPATH) + PaymentsAndExpensesAuthorizePage clickContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/LongTermTravelInsuranceAuthorizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/LongTermTravelInsuranceAuthorizePage.java new file mode 100644 index 0000000..1c754cb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/LongTermTravelInsuranceAuthorizePage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ib.insurance.travel; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.travel.LongTermTravelInsuranceAuthorizePage.SEND_BUTTON; + +@Wait({SEND_BUTTON}) +public interface LongTermTravelInsuranceAuthorizePage extends IbPageFlow, MainMenu { + + String SMS_CODE_INPUT = "//input[@name='mobileKey']"; + String SEND_BUTTON = "//a[@id='btnVerify']"; + + @TypeInto(SMS_CODE_INPUT) + LongTermTravelInsuranceAuthorizePage typeSmsCode(String smsCode); + + @Click(SEND_BUTTON) + LongTermTravelInsuranceConfirmationPage clickSend(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/LongTermTravelInsuranceConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/LongTermTravelInsuranceConfirmationPage.java new file mode 100644 index 0000000..a2f1b52 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/LongTermTravelInsuranceConfirmationPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.insurance.travel; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.insurance.InsurancePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.travel.LongTermTravelInsuranceConfirmationPage.LIST_INSURANCE_BUTTON; + +@Wait(value = LIST_INSURANCE_BUTTON) +public interface LongTermTravelInsuranceConfirmationPage extends IbPageFlow, MainMenu { + + String LIST_INSURANCE_BUTTON = "//img[contains(@src, 'prehled-pojisteni')]"; + + @Click(LIST_INSURANCE_BUTTON) + InsurancePage clickListInsurace(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/LongTermTravelInsuranceCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/LongTermTravelInsuranceCreatePage.java new file mode 100644 index 0000000..f941966 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/LongTermTravelInsuranceCreatePage.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.ib.insurance.travel; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.travel.LongTermTravelInsuranceCreatePage.CONTINUE_BUTTON; + +@Wait(CONTINUE_BUTTON) +public interface LongTermTravelInsuranceCreatePage extends IbPageFlow, MainMenu { + + String ACCOUNT_SELECT = "//select[@name='accountNumber']"; + String REGION_EUROPE_SELECT = "//input[@id='regionEurope']"; + String REGION_WORLD_SELECT = "//input[@id='regionWorld']"; + String VARIANT_SINGLE_SELECT = "//input[@id='variantSingle']"; + String VARIANT_FAMILY_SELECT = "//input[@id='variantFamily']"; + String LICENCE_AGREEMENT_CHECKBOX = "//input[@name='licenceAgreement1']"; + String INSURANCE_AGREEMENT_CHECKBOX = "//input[@name='licenceAgreement2']"; + String CONTINUE_BUTTON = "//a[@id='btnContinue']"; + + @Click(ACCOUNT_SELECT) + LongTermTravelInsuranceCreatePage clickAccountSelect(); + + @Click(REGION_EUROPE_SELECT) + LongTermTravelInsuranceCreatePage clickRegionEuropeSelect(); + + @Click(REGION_WORLD_SELECT) + LongTermTravelInsuranceCreatePage clickRegionWorldSelect(); + + @Click(VARIANT_SINGLE_SELECT) + LongTermTravelInsuranceCreatePage clickVariantSingleSelect(); + + @Click(VARIANT_FAMILY_SELECT) + LongTermTravelInsuranceCreatePage clickVariantFamilySelect(); + + @Click(LICENCE_AGREEMENT_CHECKBOX) + LongTermTravelInsuranceCreatePage clickLicenceAgreement(); + + @Click(INSURANCE_AGREEMENT_CHECKBOX) + LongTermTravelInsuranceCreatePage clickInsuranceAgreement(); + + @Click(CONTINUE_BUTTON) + LongTermTravelInsuranceAuthorizePage clickContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/ShortTermTravelInsuranceAuthorizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/ShortTermTravelInsuranceAuthorizePage.java new file mode 100644 index 0000000..cded719 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/ShortTermTravelInsuranceAuthorizePage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ib.insurance.travel; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.travel.ShortTermTravelInsuranceAuthorizePage.SEND_BUTTON; + +@Wait({SEND_BUTTON}) +public interface ShortTermTravelInsuranceAuthorizePage extends IbPageFlow, MainMenu { + + String SMS_CODE_INPUT = "//input[@name='mobileKey']"; + String SEND_BUTTON = "//a[@id='btnVerify']"; + + @TypeInto(SMS_CODE_INPUT) + ShortTermTravelInsuranceAuthorizePage typeSmsCode(String smsCode); + + @Click(SEND_BUTTON) + ShortTermTravelInsuranceConfirmationPage clickSend(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/ShortTermTravelInsuranceConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/ShortTermTravelInsuranceConfirmationPage.java new file mode 100644 index 0000000..a3297c1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/ShortTermTravelInsuranceConfirmationPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ib.insurance.travel; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.insurance.InsurancePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.travel.ShortTermTravelInsuranceConfirmationPage.LIST_INSURANCE_BUTTON; + +@Wait(value = LIST_INSURANCE_BUTTON) +public interface ShortTermTravelInsuranceConfirmationPage extends IbPageFlow, MainMenu { + + String LIST_INSURANCE_BUTTON = "//img[contains(@src, 'prehled-pojisteni')]"; + + @Click(LIST_INSURANCE_BUTTON) + InsurancePage clickListInsurace(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/ShortTermTravelInsuranceCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/ShortTermTravelInsuranceCreatePage.java new file mode 100644 index 0000000..467c76d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/insurance/travel/ShortTermTravelInsuranceCreatePage.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.ib.insurance.travel; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.insurance.travel.ShortTermTravelInsuranceCreatePage.CONTINUE_BUTTON; + +@Wait(CONTINUE_BUTTON) +public interface ShortTermTravelInsuranceCreatePage extends IbPageFlow, MainMenu { + + String ACCOUNT_SELECT = "//select[@name='accountNumber']"; + String REGION_EUROPE_SELECT = "//input[@id='regionEurope']"; + String REGION_WORLD_SELECT = "//input[@id='regionWorld']"; + String VARIANT_SINGLE_SELECT = "//input[@id='variantSingle']"; + String VARIANT_FAMILY_SELECT = "//input[@id='variantFamily']"; + String LICENCE_AGREEMENT_CHECKBOX = "//input[@name='licenceAgreement1']"; + String INSURANCE_AGREEMENT_CHECKBOX = "//input[@name='licenceAgreement2']"; + String CONTINUE_BUTTON = "//a[@id='btnContinue']"; + + @Click(ACCOUNT_SELECT) + ShortTermTravelInsuranceCreatePage clickAccountSelect(); + + @Click(REGION_WORLD_SELECT) + ShortTermTravelInsuranceCreatePage clickRegionWorldSelect(); + + @Click(REGION_EUROPE_SELECT) + ShortTermTravelInsuranceCreatePage clickRegionEuropeSelect(); + + @Click(VARIANT_SINGLE_SELECT) + ShortTermTravelInsuranceCreatePage clickVariantSingleSelect(); + + @Click(VARIANT_FAMILY_SELECT) + ShortTermTravelInsuranceCreatePage clickVariantFamilySelect(); + + @Click(LICENCE_AGREEMENT_CHECKBOX) + ShortTermTravelInsuranceCreatePage clickLicenceAgreement(); + + @Click(INSURANCE_AGREEMENT_CHECKBOX) + ShortTermTravelInsuranceCreatePage clickInsuranceAgreement(); + + @Click(CONTINUE_BUTTON) + ShortTermTravelInsuranceAuthorizePage clickContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loan/ProductSelectorPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loan/ProductSelectorPage.java new file mode 100644 index 0000000..f8ae18f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loan/ProductSelectorPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ib.loan; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loan.ProductSelectorPage.PAGE_BUTTONS_VISIBILITY; + +@Wait(PAGE_BUTTONS_VISIBILITY) +public interface ProductSelectorPage extends IbPageFlow { + String EXPRESS_BUTTON_ID = "express-button"; + String FLEXI_BUTTON_ID = "flexi-button"; + String CREDIT_CARD_BUTTON_ID = "creditCard-button"; + String PAGE_BUTTONS_VISIBILITY = "//button[@data-test-id='" + EXPRESS_BUTTON_ID + "' or @data-test-id='" + FLEXI_BUTTON_ID + "' or @data-test-id='" + CREDIT_CARD_BUTTON_ID + "']"; + String FLEXI_BUTTON = "//button[@data-test-id='" + FLEXI_BUTTON_ID + "']"; + + @Click(FLEXI_BUTTON) + ProductSelectorPage clickFlexiButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCContractPage.java new file mode 100644 index 0000000..75d9921 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCContractPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.ib.loan.creditcard; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loan.creditcard.CCContractPage.AGREE_AND_SIGN_BUTTON; + +@Wait(value = AGREE_AND_SIGN_BUTTON, waitSecondsForElement = 180) +public interface CCContractPage extends IbPageFlow { + String PREVIOUS_PAGE_OF_CONTRACT_BUTTON = "//span[@data-test-id='previous-page']"; + String NEXT_PAGE_OF_CONTRACT_BUTTON = "//span[@data-test-id='next-page']"; + String AGREE_AND_SIGN_BUTTON = "//button[@data-test-id='agree-button']"; + String SIGN_AGREEMENT_BUTTON = "//button[@data-test-id='verify-button']"; + String VERIFICATION_CODE = "//input[@data-test-id='verification-code']"; + //TODO fix xpath for leaving process after update of test-id on elements (LAB3-3637) + //String LEAVE_PROCESS = "//*[@id='root']/div/div/div/div[2]/div[1]/button"; + + @Click(PREVIOUS_PAGE_OF_CONTRACT_BUTTON) + CCContractPage clickOnPreviousPageOfContract(); + + @Click(NEXT_PAGE_OF_CONTRACT_BUTTON) + CCContractPage clickOnNextPageOfContract(); + + @Click(AGREE_AND_SIGN_BUTTON) + CCContractPage clickContinueToSignature(); + + @Click(SIGN_AGREEMENT_BUTTON) + CCContractPage clickSignAgreement(); + + @TypeInto(value = VERIFICATION_CODE, clear = true) + CCContractPage insertVerificationCode(String verificationCode); + + //Dont use until fix in LAB3-3637 + //@Click(LEAVE_PROCESS) + //CCContractPage clickLeaveProcess(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCProductConfiguratorPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCProductConfiguratorPage.java new file mode 100644 index 0000000..4288f6b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCProductConfiguratorPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ib.loan.creditcard; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loan.creditcard.CCProductConfiguratorPage.LOAN_AMOUNT_INPUT; + +@Wait(value = LOAN_AMOUNT_INPUT) +public interface CCProductConfiguratorPage extends IbPageFlow { + String LOAN_AMOUNT_INPUT = "//input[@id='helpers.creditCardAmount']"; + String CONTINUE_TO_SUMMARY_BUTTON = "//span[text()='Pokračovat']/parent::button[@data-test-id='continue-button']"; + + @TypeInto(value = LOAN_AMOUNT_INPUT, clear = true) + CCProductConfiguratorPage typeLoanAmount(String loanAmount); + + @Click(CONTINUE_TO_SUMMARY_BUTTON) + CCSummaryPage continueToSummary(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCScoringPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCScoringPage.java new file mode 100644 index 0000000..0d9d567 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCScoringPage.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ib.loan.creditcard; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; + +public interface CCScoringPage extends IbPageFlow { + String SCORING_HEADLINE = "//h1[@data-test-id='headline']"; + + @CheckElementPresent(SCORING_HEADLINE) + CCContractPage checkScoringHeadlineIsPretesnt(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCSummaryPage.java new file mode 100644 index 0000000..4a2c9f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loan/creditcard/CCSummaryPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ib.loan.creditcard; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loan.creditcard.CCSummaryPage.CONTINUE_TO_SCORING_BUTTON; + +@Wait(CONTINUE_TO_SCORING_BUTTON) +public interface CCSummaryPage extends IbPageFlow { + String CONTINUE_TO_SCORING_BUTTON = "//button[@data-test-id='continue-button']"; + + @Click(CONTINUE_TO_SCORING_BUTTON) + CCScoringPage continueToScoring(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/IbLoanData.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/IbLoanData.java new file mode 100644 index 0000000..71ea1ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/IbLoanData.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ib.loans; + +import lombok.Data; + +@Data +public class IbLoanData { + String loanAmount; + String loanTerms; + String monthlyInstallment; + String intRate; + String rpsn; + String totalAmount; + String email; + String occupationType; + String employmentSince; + String secondaryDocument; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/IbLoansLeftMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/IbLoansLeftMenu.java new file mode 100644 index 0000000..a6fe56a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/IbLoansLeftMenu.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.ib.loans; + +import cz.moneta.test.dsl.ib.loans.consolidationloans.ConsolidationCalculatorPage; +import cz.moneta.test.dsl.ib.loans.expressloan.IbExpressLoanPage; +import cz.moneta.test.dsl.ib.loans.flexicredit.OfferFlexicreditApplicationPage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.IbLoansLeftMenu.DEFERMENT_OF_INSTALLMENTS; +import static cz.moneta.test.dsl.ib.loans.IbLoansLeftMenu.MY_DOCUMENTS; +import static cz.moneta.test.dsl.ib.loans.IbLoansLeftMenu.OVERVIEW_OF_LOANS; +import static cz.moneta.test.dsl.ib.loans.IbLoansLeftMenu.OVERVIEW_OF_TRANSACTIONS; + +@Wait({OVERVIEW_OF_LOANS, OVERVIEW_OF_LOANS, OVERVIEW_OF_TRANSACTIONS, MY_DOCUMENTS, DEFERMENT_OF_INSTALLMENTS}) +public interface IbLoansLeftMenu extends Builder { + String MENU_PARENT = "//ul[@id = 'navList']"; + + String OVERVIEW_OF_LOANS = MENU_PARENT + "//a[text() = 'Přehled půjček']"; + String OVERVIEW_OF_TRANSACTIONS = MENU_PARENT + "//a[text() = 'Přehled transakcí']"; + String MY_DOCUMENTS = MENU_PARENT + "//a[text() = 'Moje dokumenty']"; + String DEFERMENT_OF_INSTALLMENTS = MENU_PARENT + "//a[text() = 'Odklad splátek']"; + String EXPESS_LOAN = MENU_PARENT + "//a[text() = 'Žádost o Expres půjčku']"; + String FLEXICREDIT_APPLICATION = MENU_PARENT + "//a[text() = 'Žádost o Flexikredit']"; + String REQUIRMENT_TO_CONSOLIDATION_LOANS = MENU_PARENT + "//a[text()='Žádost o Konsolidaci půjček']"; + + @Wait(FLEXICREDIT_APPLICATION) + @Click(value = FLEXICREDIT_APPLICATION, jsClick = true) + OfferFlexicreditApplicationPage flexicreditApplication(); + + @Click(REQUIRMENT_TO_CONSOLIDATION_LOANS) + ConsolidationCalculatorPage clickRequirementToConsolidationLoans(); + + @Wait(EXPESS_LOAN) + @Click(EXPESS_LOAN) + IbExpressLoanPage expressLoan(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/IbLoansPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/IbLoansPage.java new file mode 100644 index 0000000..3aa4592 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/IbLoansPage.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ib.loans; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Wait; + +public interface IbLoansPage extends IbPageFlow, IbLoansLeftMenu, StoreAccessor { + + String ACCEPTED_EXPRESS_LOAN = "//td[text() = 'Expres půjčka']//parent::tr//td[contains(text(), 'Schváleno')]"; + + @Wait(ACCEPTED_EXPRESS_LOAN) + IbLoansPage verifyExpressLoanData(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/consolidationloans/ConsolidationCalculatorPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/consolidationloans/ConsolidationCalculatorPage.java new file mode 100644 index 0000000..de01e04 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/consolidationloans/ConsolidationCalculatorPage.java @@ -0,0 +1,150 @@ +package cz.moneta.test.dsl.ib.loans.consolidationloans; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.openqa.selenium.WebElement; + +import java.util.Arrays; +import java.util.List; + +import static cz.moneta.test.dsl.ib.loans.consolidationloans.ConsolidationCalculatorPage.*; + +@Wait({CALCULATOR_PANEL_PARENT, TITLE_PAGE, LOANS_CALCULATOR_FIELDS, CARD_CALCULATOR_FIELDS, OVERDRAFT_CALCULATOR_FIELDS, RESULT_FIELD}) +public interface ConsolidationCalculatorPage extends IbPageFlow, MainMenu, StoreAccessor { + //Identification PAGE elements + String CALCULATOR_PANEL_PARENT = "//div[@id = 'calculatorPanel']"; + String TITLE_PAGE = CALCULATOR_PANEL_PARENT + "//td[text()='Spočítejte si snížení Vaší splátky při konsolidaci půjček z jiných bank.']"; + String CONTINUE_BUTTON = CALCULATOR_PANEL_PARENT + "//div[@id='next-step-btn']"; + + //Fields for requirment to loans consolidation + String LOANS_CALCULATOR_FIELDS = CALCULATOR_PANEL_PARENT + "//div[@id='loan-calculator']"; + String ADD_ANOTHER_LOAN_BUTTON = CALCULATOR_PANEL_PARENT + "//span[text()='Úvěr']//ancestor::div[@id='loan-calculator']/descendant::div[@id='loan-add-btn']"; + String LOAN_REMAINING_INPUTS = CALCULATOR_PANEL_PARENT + "//label[contains(text(),'Zbývá mi doplatit')]//following-sibling::input[@class='loan-remaining']"; + String LOAN_PAYMENT_INPUTS = LOANS_CALCULATOR_FIELDS + "//label[contains(text(),'Měsíčně splácím')]//following-sibling::input[@class='loan-payment']"; + String LOAN_PROVIDER_SELECTORS_XPATH = LOANS_CALCULATOR_FIELDS + "//label[contains(text(),'Poskytovatel')]//following-sibling::select"; + String FIRST_LOAN_PROVIDER_SELECTORS = LOAN_PROVIDER_SELECTORS_XPATH + "[@name='loanProvider1']"; + String SECOND_LOAN_PROVIDER_SELECTORS = LOAN_PROVIDER_SELECTORS_XPATH + "[@name='loanProvider2']"; + String THIRD_LOAN_PROVIDER_SELECTORS = LOAN_PROVIDER_SELECTORS_XPATH + "[@name='loanProvider3']"; + String LOAN_REMOVE_BUTTON = CALCULATOR_PANEL_PARENT + "//div[@id='loan%s']//span[@class='remove-btn']/a[text()='Odebrat']"; + + //Fields for requirment to loans consolidation + String CARD_CALCULATOR_FIELDS = CALCULATOR_PANEL_PARENT + "//div[@id='card-calculator']"; + String ADD_CREDIT_CARD_BUTTON = CALCULATOR_PANEL_PARENT + "//span[text()='Kreditní karta']//ancestor::div[@id='card-calculator']/descendant::div[@id='card-add-btn']"; + String CARD_REMAINING_INPUTS = CALCULATOR_PANEL_PARENT + "//label[contains(text(),'Mohu čerpat až')]//following-sibling::input[@class='card-payment']"; + String CARD_PROVIDER_SELECTORS_XPATH = CARD_CALCULATOR_FIELDS + "//label[contains(text(),'Poskytovatel')]//following-sibling::select"; + String FIRST_CREDIT_CARD_PROVIDER_SELECTORS = CARD_PROVIDER_SELECTORS_XPATH + "[@name='cardProvider1']"; + String SECOND_CREDIT_CARD_PROVIDER_SELECTORS = CARD_PROVIDER_SELECTORS_XPATH + "[@name='cardProvider2']"; + String THIRD_CREDIT_CARD_PROVIDER_SELECTORS = CARD_PROVIDER_SELECTORS_XPATH + "[@name='cardProvider3']"; + String CARD_REMOVE_BUTTON = CARD_CALCULATOR_FIELDS + "//div[@id='card%s']//span[@class='remove-btn-noloan']/a[text()='Odebrat']"; + + //Fields for requirment to loans consolidation + String OVERDRAFT_CALCULATOR_FIELDS = CALCULATOR_PANEL_PARENT + "//div[@id='overdraft-calculator']"; + String ADD_OVERDRAFT_BUTTON = CALCULATOR_PANEL_PARENT + "//span[text()='Kontokorent']//ancestor::div[@id='overdraft-calculator']/descendant::div[@id='overdraft-add-btn']"; + String OVERDRAFT_PAYMENT_INPUTS = CALCULATOR_PANEL_PARENT + "//label[contains(text(),'Mohu čerpat až')]//following-sibling::input[@class='overdraft-payment']"; + String OVERDRAFT_PROVIDER_SELECTORS_XPATH = OVERDRAFT_CALCULATOR_FIELDS + "//label[contains(text(),'Poskytovatel')]//following-sibling::select"; + String FIRST_OVERDRAFT_PROVIDER_SELECTORS = OVERDRAFT_PROVIDER_SELECTORS_XPATH + "[@name='overdraftProvider1']"; + String SECOND_OVERDRAFT_PROVIDER_SELECTORS = OVERDRAFT_PROVIDER_SELECTORS_XPATH + "[@name='overdraftProvider2']"; + String THIRD_OVERDRAFT_PROVIDER_SELECTORS = OVERDRAFT_PROVIDER_SELECTORS_XPATH + "[@name='overdraftProvider3']"; + String OVERDRAFT_REMOVE_BUTTON = OVERDRAFT_CALCULATOR_FIELDS + "//div[@id='overdraft%s']//span[@class='remove-btn-noloan']/a[text()='Odebrat']"; + + //Result field + String RESULT_FIELD = CALCULATOR_PANEL_PARENT + "//div[@id='result-fields']"; + String TOTAL_MONTHLY_PAYMENT_SUM = RESULT_FIELD + "//label[contains(text(), 'Celkem měsíčně splácíte:')]/following-sibling::span[@id='total-monthly-payment-sum']"; + String TOTAL_CONSOLIDATION_PAYMENT_SUM = RESULT_FIELD + "//label[contains(text(), 'Celkem konsolidujete:')]/following-sibling::span[@id='total-consolidation-sum']"; + String TOTAL_MONTHLY_PAYMENT_KEY = "TotalMonthlyPayment"; + String TOTAL_CONSOLIDATION_PAYMENT_KEY = "TotalConsolidationPayment"; + + @Clicks({ + @Click(ADD_ANOTHER_LOAN_BUTTON), + @Click(ADD_ANOTHER_LOAN_BUTTON)}) + ConsolidationCalculatorPage twoTimesClickToAddAnotherLoanButton(); + + @CustomAction + default ConsolidationCalculatorPage fillInInputsLoanFields(String loanRemainingFirst, String loanRemainingSecond, String loanRemainingThird, String loanPaymentFirst, String loanPaymentSecond, String loanPaymentThird) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + List loanRemainingValues = Arrays.asList(loanRemainingFirst, loanRemainingSecond, loanRemainingThird); + List loanPaymentValues = Arrays.asList(loanPaymentFirst, loanPaymentSecond, loanPaymentThird); + List remainingInputs = ibEndpoint.findAndGetListOfElements(LOAN_REMAINING_INPUTS, Lookup.XPATH); + List allPaymentInputs = ibEndpoint.findAndGetListOfElements(LOAN_PAYMENT_INPUTS, Lookup.XPATH); + + for (int i = 0; i < remainingInputs.size(); i++) { + remainingInputs.get(i).sendKeys(loanRemainingValues.get(i)); + allPaymentInputs.get(i).sendKeys(loanPaymentValues.get(i)); + } + return null; + } + + @Selects({ + @Select(FIRST_LOAN_PROVIDER_SELECTORS), + @Select(SECOND_LOAN_PROVIDER_SELECTORS), + @Select(THIRD_LOAN_PROVIDER_SELECTORS)}) + ConsolidationCalculatorPage selectProvidersInLoanField(String providerInFirstLoans, String providerInSecondLoans, String providerInThirdLoans); + + @Click(value = LOAN_REMOVE_BUTTON, isStringDynamicXpath = true) + ConsolidationCalculatorPage clickToRemoveButtonInLoanField(String numberFieldOfLoanToRemove); + + @CustomAction + default ConsolidationCalculatorPage fillInInputsCardFields(String cardPaymentFirst, String cardPaymentSecond, String cardPaymentThird) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + List cardPaymentValues = Arrays.asList(cardPaymentFirst, cardPaymentSecond, cardPaymentThird); + List cardInputs = ibEndpoint.findAndGetListOfElements(CARD_REMAINING_INPUTS, Lookup.XPATH); + + for (int i = 0; i < cardInputs.size(); i++) { + cardInputs.get(i).sendKeys(cardPaymentValues.get(i)); + } + return null; + } + + @Clicks({ + @Click(ADD_CREDIT_CARD_BUTTON), + @Click(ADD_CREDIT_CARD_BUTTON), + @Click(ADD_CREDIT_CARD_BUTTON)}) + ConsolidationCalculatorPage threeTimesClickToAddCreditCardButton(); + + @Selects({ + @Select(FIRST_CREDIT_CARD_PROVIDER_SELECTORS), + @Select(SECOND_CREDIT_CARD_PROVIDER_SELECTORS), + @Select(THIRD_CREDIT_CARD_PROVIDER_SELECTORS)}) + ConsolidationCalculatorPage selectProvidersInCardField(String providerInFirstCard, String providerInSecondCard, String providerInThirdCard); + + @Click(value = CARD_REMOVE_BUTTON, isStringDynamicXpath = true) + ConsolidationCalculatorPage clickToRemoveButtonInCardField(String numberFieldOfCardToRemove); + + @CustomAction + default ConsolidationCalculatorPage fillInInputsOverdraftFields(String overdraftPaymentFirst, String overdraftPaymentSecond, String overdraftPaymentThird) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + List paymentOverdraftValues = Arrays.asList(overdraftPaymentFirst, overdraftPaymentSecond, overdraftPaymentThird); + List overdraftInputs = ibEndpoint.findAndGetListOfElements(OVERDRAFT_PAYMENT_INPUTS, Lookup.XPATH); + + for (int i = 0; i < overdraftInputs.size(); i++) { + overdraftInputs.get(i).sendKeys(paymentOverdraftValues.get(i)); + } + return null; + } + + @Clicks({ + @Click(ADD_OVERDRAFT_BUTTON), + @Click(ADD_OVERDRAFT_BUTTON), + @Click(ADD_OVERDRAFT_BUTTON)}) + ConsolidationCalculatorPage threeTimesClickToAddOverdraftButton(); + + @Selects({ + @Select(FIRST_OVERDRAFT_PROVIDER_SELECTORS), + @Select(SECOND_OVERDRAFT_PROVIDER_SELECTORS), + @Select(THIRD_OVERDRAFT_PROVIDER_SELECTORS)}) + ConsolidationCalculatorPage selectProvidersInOverdraftField(String providerInFirstOverdraft, String providerInSecondOverdraft, String providerInThirdOverdraft); + + @Click(value = OVERDRAFT_REMOVE_BUTTON, isStringDynamicXpath = true) + ConsolidationCalculatorPage clickToRemoveButtonInOverdraftField(String numberFieldOfOverdraftToRemove); + + @StoreElementContents({ + @StoreElementContent(storeKey = "TotalMonthlyPayment", value = TOTAL_MONTHLY_PAYMENT_SUM), + @StoreElementContent(storeKey = "TotalConsolidationPayment", value = TOTAL_CONSOLIDATION_PAYMENT_SUM)}) + ConsolidationCalculatorPage getTotalMonthlyPaymentAndConsolidationPaymentValues(); + + @Click(CONTINUE_BUTTON) + YouRequestToMergeLoansPage clickToContinueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/consolidationloans/ThankPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/consolidationloans/ThankPage.java new file mode 100644 index 0000000..ca117c5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/consolidationloans/ThankPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ib.loans.consolidationloans; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.loans.IbLoansPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.consolidationloans.ThankPage.CONTINUE_TO_OVERVIEW_LOANS_BUTTON; +import static cz.moneta.test.dsl.ib.loans.consolidationloans.ThankPage.THANK_TEXT; + +@Wait({THANK_TEXT, CONTINUE_TO_OVERVIEW_LOANS_BUTTON}) +public interface ThankPage extends IbPageFlow, MainMenu { + String THANK_TEXT = "//div[@id='thankText' and contains(text(), 'Děkujeme za Váš zájem o sloučení Vašich stávajících závazků.')]"; + String CONTINUE_TO_OVERVIEW_LOANS_BUTTON = "//div[@id='thanks-next-step-btn' and contains(text(), 'POKRAČOVAT NA PŘEHLED PŮJČEK')]"; + + @Click(CONTINUE_TO_OVERVIEW_LOANS_BUTTON) + IbLoansPage clickContinueToOverviewLoansButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/consolidationloans/YouRequestToMergeLoansPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/consolidationloans/YouRequestToMergeLoansPage.java new file mode 100644 index 0000000..85f6817 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/consolidationloans/YouRequestToMergeLoansPage.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dsl.ib.loans.consolidationloans; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ib.loans.consolidationloans.YouRequestToMergeLoansPage.*; + +@Wait({TITLE_PAGE_XPATH, LOAN_CALCULATOR, LOAN_CALCULATOR_SLIDER, REPAYMENT_PERIOD_SLIDER}) +public interface YouRequestToMergeLoansPage extends IbPageFlow, MainMenu { + String TITLE_PAGE_XPATH = "//div[@id='parentform']//td[contains(text(), 'Požadujete sloučit úvěry ve výši')]"; + String REQUIREMENT_ONLINE_BUTTON = "//div[@id='next-step-btn']"; + + //Loan calculator + String LOAN_CALCULATOR = "//div[@id='loanForm']"; + String LOAN_CALCULATOR_SLIDER = "//h3[contains(text(), 'Ke své konsolidaci si můžete ještě půjčit navíc')]//following::div[@class='slider_box']//div[@id='slider1']"; + String REPAYMENT_PERIOD_SLIDER = "//h3[contains(text(), 'Nastavte si, jak dlouho chcete nově splácet')]//following::div[@class='slider_box']//div[@id='slider2']"; + String LOANS_INPUT = "//div[@id='slider1']/ancestor::div[@class='slider_box']//input[@id='loanAmount']"; + String TERMS_INPUT = "//div[@id='slider2']/ancestor::div[@class='slider_box']//input[@id='loanTerms']"; + String INSURANCE_ABBILITY_TO_PAYMENT_RADIO = "//span[contains(text(), 'Pojištění schopnosti splácet')]//preceding-sibling::span[@id='spanInsurance10']"; + + // Result table + String RESULT_TABLE_XPATH = "//table[@id='resultTable']"; + String NEW_AMOUNT_OF_INSTALLMENT = RESULT_TABLE_XPATH + "//td[contains(text(), '%s')]"; + String NEW_AMOUNT_OF_LOAN = RESULT_TABLE_XPATH + "//td[contains(text(), '%s')]"; + String SAVE_MONTHLY = RESULT_TABLE_XPATH + "//td[contains(text(), '%s')]"; + + @CustomAction + default YouRequestToMergeLoansPage moveSlidersAndCheckValues() { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + String valueLoanInput; + String newValueLoanInput; + String valueTermInput; + String newValueTermInput; + + valueLoanInput = ibEndpoint.getAttribute(LOANS_INPUT, "value"); + ibEndpoint.dragAndDropBy(LOAN_CALCULATOR_SLIDER, 0, 5); + ibEndpoint.click(() -> LOANS_INPUT); + newValueLoanInput = ibEndpoint.getAttribute(LOANS_INPUT, "value"); + Assertions.assertNotEquals(valueLoanInput, newValueLoanInput); + + valueTermInput = ibEndpoint.getAttribute(TERMS_INPUT, "value"); + ibEndpoint.dragAndDropBy(REPAYMENT_PERIOD_SLIDER, 0, 5); + ibEndpoint.click(() -> TERMS_INPUT); + newValueTermInput = ibEndpoint.getAttribute(TERMS_INPUT, "value"); + Assertions.assertNotEquals(valueTermInput, newValueTermInput); + return null; + } + + @CheckElementsPresent({ + @CheckElementPresent(value = NEW_AMOUNT_OF_INSTALLMENT, isStringDynamicXpath = true), + @CheckElementPresent(value = NEW_AMOUNT_OF_LOAN, isStringDynamicXpath = true), + @CheckElementPresent(value = SAVE_MONTHLY, isStringDynamicXpath = true)}) + YouRequestToMergeLoansPage checkLablesInResultTable(String nameOfLableNewInstallment, String nameOfLableNewAmountLoan, String nameOfLableSaveMonthly); + + @Wait(explicitWaitSeconds = 5) + @TypeIntos({ + @TypeInto(value = LOANS_INPUT, clear = true, andWait = @Wait(explicitWaitSeconds = 5)), + @TypeInto(value = TERMS_INPUT, clear = true, andWait = @Wait(explicitWaitSeconds = 5))}) + YouRequestToMergeLoansPage fillInLoanAndTermInput(String fillInLoan, String fillInTerm); + + @Click(INSURANCE_ABBILITY_TO_PAYMENT_RADIO) + YouRequestToMergeLoansPage clickToInsuranceRadioButton(); + + @Click(REQUIREMENT_ONLINE_BUTTON) + ThankPage clickToRequirementOnlineButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/IbExpressLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/IbExpressLoanPage.java new file mode 100644 index 0000000..3d8b4a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/IbExpressLoanPage.java @@ -0,0 +1,73 @@ +package cz.moneta.test.dsl.ib.loans.expressloan; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.IbLoanData; +import cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.PersonalDataExpressLoanPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.Waits; + +import static cz.moneta.test.dsl.ib.loans.expressloan.IbExpressLoanPage.EXPRESS_LOAN_CALCULATOR; + +@Wait(value = {EXPRESS_LOAN_CALCULATOR}, by = Lookup.ID) +public interface IbExpressLoanPage extends IbPageFlow, StoreAccessor { + String EXPRESS_LOAN_CALCULATOR = "loanForm"; + + String LOAN_AMOUNT_INPUT = "//input[@id = 'loanAmount']"; + String LOAN_AMOUNT_SLIDER = "//div[@id = 'slider1']"; + + String LOAN_TERMS_INPUT = "//input[@id = 'loanTerms']"; + String LOAN_TERMS_SLIDER = "//div[@id = 'slider2']"; + + String MONTHLY_INSTALLMENT_VALUE = "monthlyInstallmentId"; + String INT_RATE_VALUE = "intRateId"; + String RPSN = "rpsnId"; + String TOTAL_AMOUNT = "totalAmountId"; + + String CONTINUE_BUTTON = "//a[@class = 'continue-button']"; + String LOADER = "//div[@class = 'busyLoaderImg']"; + + @Waits(value = { + @Wait(LOAN_AMOUNT_SLIDER), + @Wait(value = LOAN_AMOUNT_INPUT)}) + @CustomAction + default IbExpressLoanPage setLoanAmount(String loanAmount) { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.type(() -> LOAN_AMOUNT_INPUT, loanAmount, true); + endpoint.sleepSeconds(5); + endpoint.waitForElementsToLoad(30, Until.GONE, LOADER); + return null; + } + + + @Waits(value = { + @Wait(LOAN_TERMS_SLIDER), + @Wait(value = LOAN_TERMS_INPUT)}) + @CustomAction + default IbExpressLoanPage setLoanTerms(String loanTerms) { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.type(() -> LOAN_TERMS_INPUT, loanTerms, true); + endpoint.sleepSeconds(5); + endpoint.waitForElementsToLoad(30, Until.GONE, LOADER); + return null; + } + + @Wait(CONTINUE_BUTTON) + @Wait(value = LOADER, until = Until.GONE) + @CustomAction + default PersonalDataExpressLoanPage getDataAndContinueToPersonalData(IbLoanData loanData) { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.sleepSeconds(10); + loanData.setMonthlyInstallment(endpoint.getText(MONTHLY_INSTALLMENT_VALUE, Lookup.ID)); + loanData.setIntRate(endpoint.getText(INT_RATE_VALUE, Lookup.ID)); + loanData.setRpsn(endpoint.getText(RPSN, Lookup.ID)); + loanData.setTotalAmount(endpoint.getText(TOTAL_AMOUNT, Lookup.ID)); + endpoint.click(() -> CONTINUE_BUTTON); + return null; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/IbYourExpressLoanInformationComponent.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/IbYourExpressLoanInformationComponent.java new file mode 100644 index 0000000..1246a53 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/IbYourExpressLoanInformationComponent.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.ib.loans.expressloan; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.Waits; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ib.IbPageFlow.BUSY_LOADER; +import static cz.moneta.test.dsl.ib.loans.expressloan.IbYourExpressLoanInformationComponent.HEADER_MENU; +import static cz.moneta.test.dsl.ib.loans.expressloan.IbYourExpressLoanInformationComponent.HEADER_TEXT; +import static cz.moneta.test.dsl.ib.loans.expressloan.IbYourExpressLoanInformationComponent.RE_COUNTING_BUTTON; + +@Waits(value = { + @Wait(value = HEADER_MENU, by = Lookup.ID), + @Wait(value = HEADER_TEXT), + @Wait(value = RE_COUNTING_BUTTON)}) +public interface IbYourExpressLoanInformationComponent extends Builder, StoreAccessor { + String HEADER_MENU = "menu1div"; + String HEADER_TEXT = "//div[text() = 'Vaše půjčka']"; + + String LOAN_AMOUNT_VALUE = "loanAmountTotal"; + String LOAN_TERMS_VALUE = "loanTerms"; + String INSTALLMENT_AMOUNT = "installmentAmount"; + String INTEREST_RATE = "interestRate"; + + String RE_COUNTING_BUTTON = "//a[@class = 'smallPrimaryButton']"; + + @Wait(value = {LOAN_AMOUNT_VALUE, LOAN_TERMS_VALUE, INSTALLMENT_AMOUNT, INTEREST_RATE}, by = Lookup.ID) + @CustomAction + default T verifyLoanInformation(String expectedLoanAmount, String expectedLoanTerms, String expectedInstallmentAmount, String expectedInterestRate) { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.waitForElementsToLoad(20, Until.GONE, BUSY_LOADER); + String actualLoanAmount = endpoint.getText(LOAN_AMOUNT_VALUE, Lookup.ID).replaceAll(" ", ""); + String actualLoanTerms = endpoint.getText(LOAN_TERMS_VALUE, Lookup.ID); + String actualInstallmentAmount = endpoint.getText(INSTALLMENT_AMOUNT, Lookup.ID); + String actualInterestRate = endpoint.getText(INTEREST_RATE, Lookup.ID); + + Assertions.assertTrue(actualLoanAmount.contains(expectedLoanAmount), "Expected loan amount " + expectedLoanAmount + " was not equal to actual " + actualLoanAmount); + Assertions.assertTrue(actualLoanTerms.contains(expectedLoanTerms), "Expected loan term " + expectedLoanTerms + " was not equal to actual " + actualLoanTerms); + Assertions.assertTrue(actualInstallmentAmount.contains(expectedInstallmentAmount), "Expected installment total amount " + expectedInstallmentAmount + " was not equal to actual " + actualInstallmentAmount); + Assertions.assertTrue(actualInterestRate.contains(expectedInterestRate), "Expected interest rate " + expectedInterestRate + " was not equal to actual " + actualInterestRate); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/IbExpressLoanAdditionalInformationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/IbExpressLoanAdditionalInformationPage.java new file mode 100644 index 0000000..a11345d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/IbExpressLoanAdditionalInformationPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.expressloan.IbYourExpressLoanInformationComponent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanAdditionalInformationPage.ACCOMMODATION_SELECT; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanAdditionalInformationPage.BORN_PLACE; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanAdditionalInformationPage.CHILD_COUNT; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanAdditionalInformationPage.CITIZEN_SHIP_SELECT; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanAdditionalInformationPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanAdditionalInformationPage.EDUCATION_SELECT; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanAdditionalInformationPage.MARITAL_STATUS_SELECT; + +@Wait(value = {EDUCATION_SELECT, ACCOMMODATION_SELECT, MARITAL_STATUS_SELECT, CHILD_COUNT, CITIZEN_SHIP_SELECT, BORN_PLACE, CONTINUE_BUTTON}, by = Lookup.ID) +public interface IbExpressLoanAdditionalInformationPage extends IbPageFlow, IbYourExpressLoanInformationComponent { + String EDUCATION_SELECT = "education"; + String ACCOMMODATION_SELECT = "accommodation"; + String MARITAL_STATUS_SELECT = "maritalStatus"; + String CHILD_COUNT = "childCount"; + String CITIZEN_SHIP_SELECT = "citizenship"; + String BORN_PLACE = "bornPlace"; + + String CONTINUE_BUTTON = "continueButton"; + + @Wait(value = CONTINUE_BUTTON, by = Lookup.ID) + @Click(value = CONTINUE_BUTTON, by = Lookup.ID) + IbExpressLoanPermanentResidenceAndContactAddressPage continueToPermanentResidenceAndContactAddress(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/IbExpressLoanEmploymentAndIncomeExpenses.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/IbExpressLoanEmploymentAndIncomeExpenses.java new file mode 100644 index 0000000..e7e7884 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/IbExpressLoanEmploymentAndIncomeExpenses.java @@ -0,0 +1,95 @@ +package cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.expressloan.loanSummary.IbSummaryExpressLoanPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.EMPLOYER_DESCRIPTIVE_NUMBER; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.EMPLOYER_ID; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.EMPLOYER_NAME; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.EMPLOYER_ORIENTATION_NUMBER; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.EMPLOYER_STREET; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.EMPLOYER_TOWN; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.EMPLOYER_ZIP; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.EMPLOYMENT_SINCE; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.EMPLOYMENT_TYPE_SELECT; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.OCCUPATION_SELECT; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.OTHER_LOANS; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanEmploymentAndIncomeExpenses.WORK_PHONE; + +@Wait(value = {EMPLOYMENT_TYPE_SELECT, OCCUPATION_SELECT, EMPLOYMENT_SINCE, EMPLOYER_NAME, EMPLOYER_ID, EMPLOYER_STREET, EMPLOYER_DESCRIPTIVE_NUMBER, EMPLOYER_ORIENTATION_NUMBER, EMPLOYER_TOWN, EMPLOYER_ZIP, WORK_PHONE, OTHER_LOANS}, by = Lookup.ID) +public interface IbExpressLoanEmploymentAndIncomeExpenses extends IbPageFlow { + String EMPLOYMENT_TYPE_SELECT = "employmentType"; + String OCCUPATION_SELECT = "occupation"; + String EMPLOYMENT_SINCE = "employmentSince"; + String EMPLOYER_NAME = "employerName"; + String EMPLOYER_ID = "employerId"; + String EMPLOYER_STREET = "employerStreet"; + String EMPLOYER_DESCRIPTIVE_NUMBER = "employerDescriptiveNumber"; + String EMPLOYER_ORIENTATION_NUMBER = "employerOrientationNumber"; + String EMPLOYER_ZIP = "employerZip"; + String EMPLOYER_TOWN = "employerTown"; + String EMPLOYER_COUNTRY_SELECT = "employerCountry"; + String WORK_PHONE = "workPhone"; + String EMPLOYMENT_COUNT = "employmentCount"; + String AVERAGE_INCOME = "averageIncome"; + String AVERAGE_HOME_INCOME = "averageHomeIncome"; + String OTHER_LOANS = "otherLoans"; + String OTHER_COSTS = "otherCosts"; + String WAGES_DEDUCTION = "wagesDeduction"; + String CONTINUE_CHECKBOX_1 = "continueCheckBox_1"; + String CONTINUE_BUTTON = "continueButton"; + + String NOTICE_PERIOD_NONE = "//tr[@id = '_tr_noticePeriodNone']//input"; + + String BACK_BUTTON = "//a[text() = 'ZPĚT']"; + + @Wait(value = OCCUPATION_SELECT, by = Lookup.ID) + @Select(value = OCCUPATION_SELECT, by = Lookup.ID) + IbExpressLoanEmploymentAndIncomeExpenses secOccupationType(String occupationType); + + @Wait(value = EMPLOYMENT_SINCE, by = Lookup.ID) + @TypeInto(value = EMPLOYMENT_SINCE, by = Lookup.ID, clear = true) + IbExpressLoanEmploymentAndIncomeExpenses setEmploymentSince(String employmentFrom); + + @Wait(value = EMPLOYMENT_COUNT, by = Lookup.ID) + @Select(value = EMPLOYMENT_COUNT, by = Lookup.ID) + IbExpressLoanEmploymentAndIncomeExpenses setEmploymentCount(String employmentCount); + + @Wait(value = AVERAGE_INCOME, by = Lookup.ID) + @TypeInto(value = AVERAGE_INCOME, by = Lookup.ID, clear = true) + IbExpressLoanEmploymentAndIncomeExpenses typeAverageIncome(String averageIncome); + + @Wait(value = AVERAGE_HOME_INCOME, by = Lookup.ID) + @TypeInto(value = AVERAGE_HOME_INCOME, by = Lookup.ID, clear = true) + IbExpressLoanEmploymentAndIncomeExpenses typeAverageHomeIncome(String averageHomeIncome); + + @Wait(value = OTHER_LOANS, by = Lookup.ID) + @TypeInto(value = OTHER_LOANS, by = Lookup.ID, clear = true) + IbExpressLoanEmploymentAndIncomeExpenses typeOtherLoans(String otherLoans); + + @Wait(value = OTHER_COSTS, by = Lookup.ID) + @TypeInto(value = OTHER_COSTS, by = Lookup.ID, clear = true) + IbExpressLoanEmploymentAndIncomeExpenses typeOtherCosts(String otherCosts); + + @Wait(value = WAGES_DEDUCTION, by = Lookup.ID) + @TypeInto(value = WAGES_DEDUCTION, by = Lookup.ID, clear = true) + IbExpressLoanEmploymentAndIncomeExpenses typeWagesDeduction(String wagesDeduction); + + @Wait(NOTICE_PERIOD_NONE) + @Click(NOTICE_PERIOD_NONE) + IbExpressLoanEmploymentAndIncomeExpenses setNoneNoticePeriod(); + + @Wait(BACK_BUTTON) + @Click(value = BACK_BUTTON, jsClick = true) + IbExpressLoanPermanentResidenceAndContactAddressPage backToPermanentResidenceAndContactAddress(); + + @Wait(value = CONTINUE_CHECKBOX_1, by = Lookup.ID) + @Click(value = CONTINUE_CHECKBOX_1, by = Lookup.ID, jsClick = true) + @Click(value = CONTINUE_BUTTON, by = Lookup.ID) + IbSummaryExpressLoanPage agreementCheckboxAndContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/IbExpressLoanPermanentResidenceAndContactAddressPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/IbExpressLoanPermanentResidenceAndContactAddressPage.java new file mode 100644 index 0000000..a55c746 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/IbExpressLoanPermanentResidenceAndContactAddressPage.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanPermanentResidenceAndContactAddressPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanPermanentResidenceAndContactAddressPage.COUNTRY_SELECT; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanPermanentResidenceAndContactAddressPage.DESCRIPTIVE_NUMBER; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanPermanentResidenceAndContactAddressPage.DIFFERENT_CONTACT_ADDRESS; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanPermanentResidenceAndContactAddressPage.ORIENTATION_NUMBER; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanPermanentResidenceAndContactAddressPage.STAY_SINCE_SELECT; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanPermanentResidenceAndContactAddressPage.STREET; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.IbExpressLoanPermanentResidenceAndContactAddressPage.TOWN; + +@Wait(value = {STREET, DESCRIPTIVE_NUMBER, ORIENTATION_NUMBER, TOWN, COUNTRY_SELECT, STAY_SINCE_SELECT, DIFFERENT_CONTACT_ADDRESS, CONTINUE_BUTTON}, by = Lookup.ID) +public interface IbExpressLoanPermanentResidenceAndContactAddressPage extends IbPageFlow { + String STREET = "street"; + String DESCRIPTIVE_NUMBER = "descriptiveNumber"; + String ORIENTATION_NUMBER = "orientationNumber"; + String ZIP = "zip"; + String TOWN = "town"; + String COUNTRY_SELECT = "country"; + String STAY_SINCE_SELECT = "staySince"; + String DIFFERENT_CONTACT_ADDRESS = "differentContactAddress"; + + String CONTINUE_BUTTON = "continueButton"; + + @Wait(value = CONTINUE_BUTTON, by = Lookup.ID) + @Click(value = CONTINUE_BUTTON, by = Lookup.ID) + IbExpressLoanEmploymentAndIncomeExpenses continueToEmploymentAndIncomeExpenses(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/PersonalDataExpressLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/PersonalDataExpressLoanPage.java new file mode 100644 index 0000000..f83f768 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/dataCheckPart/PersonalDataExpressLoanPage.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.expressloan.IbYourExpressLoanInformationComponent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.PersonalDataExpressLoanPage.BIRTH_NUMBER; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.PersonalDataExpressLoanPage.FIRST_NAME; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.PersonalDataExpressLoanPage.LAST_NAME; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.PersonalDataExpressLoanPage.PHONE_NUMBER; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.PersonalDataExpressLoanPage.PRIMARY_ID_COUNTRY_SELECT; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.PersonalDataExpressLoanPage.PRIMARY_ID_NUMBER; +import static cz.moneta.test.dsl.ib.loans.expressloan.dataCheckPart.PersonalDataExpressLoanPage.PRIMARY_ID_VALIDITY; + +@Wait(value = {FIRST_NAME, LAST_NAME, BIRTH_NUMBER, PRIMARY_ID_NUMBER, PRIMARY_ID_VALIDITY, PRIMARY_ID_COUNTRY_SELECT, PHONE_NUMBER}, by = Lookup.ID) +public interface PersonalDataExpressLoanPage extends IbPageFlow, IbYourExpressLoanInformationComponent { + + String FIRST_NAME = "firstName"; + String LAST_NAME = "lastName"; + String BIRTH_NUMBER = "birthNumber"; + String PRIMARY_ID_NUMBER = "primaryIdentificationNumber"; + String PRIMARY_ID_VALIDITY = "primaryIdentificationValidity"; + String PRIMARY_ID_COUNTRY_SELECT = "primaryIdentificationCountry"; + String SECONDARY_ID_TYPE_SELECT = "secondaryIdentificationType"; + String EMAIL = "email"; + String PHONE_NUMBER = "phoneNumber"; + String CONTINUE_BUTTON = "continueButton"; + + @Wait(value = SECONDARY_ID_TYPE_SELECT, by = Lookup.ID) + @Select(value = SECONDARY_ID_TYPE_SELECT, by = Lookup.ID) + PersonalDataExpressLoanPage selectSecondaryIdType(String documentType); + + @Wait(value = EMAIL, by = Lookup.ID) + @TypeInto(value = EMAIL, by = Lookup.ID, clear = true) + PersonalDataExpressLoanPage setEmail(String email); + + @Wait(value = CONTINUE_BUTTON, by = Lookup.ID) + @Click(value = CONTINUE_BUTTON, by = Lookup.ID) + IbExpressLoanAdditionalInformationPage continueToAdditionalInformation(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/loanSummary/IbInsuranceExpressLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/loanSummary/IbInsuranceExpressLoanPage.java new file mode 100644 index 0000000..a291558 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/loanSummary/IbInsuranceExpressLoanPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ib.loans.expressloan.loanSummary; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.expressloan.signLoan.IbPreContractExpressLoanPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.expressloan.loanSummary.IbInsuranceExpressLoanPage.TO_INSURE; + +@Wait(TO_INSURE) +public interface IbInsuranceExpressLoanPage extends IbPageFlow { + String TO_INSURE = "//button[text() = 'Pojistit se']"; + + @Wait(TO_INSURE) + @Click(TO_INSURE) + IbPreContractExpressLoanPage toInsure(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/loanSummary/IbSummaryExpressLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/loanSummary/IbSummaryExpressLoanPage.java new file mode 100644 index 0000000..04a90c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/loanSummary/IbSummaryExpressLoanPage.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.ib.loans.expressloan.loanSummary; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.expressloan.loanSummary.IbSummaryExpressLoanPage.APPROVED_LOAN_AMOUNT; +import static cz.moneta.test.dsl.ib.loans.expressloan.loanSummary.IbSummaryExpressLoanPage.APPROVED_LOAN_RATE; +import static cz.moneta.test.dsl.ib.loans.expressloan.loanSummary.IbSummaryExpressLoanPage.APPROVED_LOAN_RPSN; +import static cz.moneta.test.dsl.ib.loans.expressloan.loanSummary.IbSummaryExpressLoanPage.APPROVED_LOAN_TERM; +import static cz.moneta.test.dsl.ib.loans.expressloan.loanSummary.IbSummaryExpressLoanPage.APPROVED_LOAN_TOTAL; +import static cz.moneta.test.dsl.ib.loans.expressloan.loanSummary.IbSummaryExpressLoanPage.APPROVED_MONTHLY_AMOUNT; + +@Wait(value = {APPROVED_LOAN_AMOUNT, APPROVED_LOAN_TERM, APPROVED_MONTHLY_AMOUNT, APPROVED_LOAN_RATE, APPROVED_LOAN_RPSN, APPROVED_LOAN_TOTAL}, by = Lookup.ID) +public interface IbSummaryExpressLoanPage extends IbPageFlow { + String APPROVED_LOAN_AMOUNT = "approvedLoanAmount"; + String APPROVED_LOAN_TERM = "approvedLoanTerm"; + + String APPROVED_MONTHLY_AMOUNT = "approvedMonthlyAmount"; + String APPROVED_LOAN_RATE = "approvedLoanRate"; + String APPROVED_LOAN_RPSN = "approvedLoanRPSN"; + String APPROVED_LOAN_TOTAL = "approvedLoanTotal"; + String SIGN_BUTTON = "signApprovedButton"; + String WAITING_TEXT = "//*[contains(text(), 'Za malou chvíli se dozvíte, zda Vám můžeme poskytnout požadovanou půjčku')]"; + + @Wait(value = WAITING_TEXT, until = Until.GONE) + @Wait(value = SIGN_BUTTON, by = Lookup.ID) + @Wait(value = BUSY_LOADER, until = Until.GONE) + @Click(value = SIGN_BUTTON, by = Lookup.ID, jsClick = true) + IbInsuranceExpressLoanPage wantInsurance(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/signLoan/IbPreContractExpressLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/signLoan/IbPreContractExpressLoanPage.java new file mode 100644 index 0000000..e531f73 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/signLoan/IbPreContractExpressLoanPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ib.loans.expressloan.signLoan; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.expressloan.signLoan.IbPreContractExpressLoanPage.PRE_CONTRACT_TEXT; + +@Wait(PRE_CONTRACT_TEXT) +public interface IbPreContractExpressLoanPage extends IbPageFlow { + String PRE_CONTRACT_TEXT = "//td[text() ='Předsmluvní informace']"; + String ACCEPT_CHECKBOX = "//input[@id = 'accept']"; + String CONTINUE_BUTTON = "continueButton"; + + @Wait(ACCEPT_CHECKBOX) + @Click(value = ACCEPT_CHECKBOX, jsClick = true) + @Click(value = CONTINUE_BUTTON, by = Lookup.ID, jsClick = true) + IbSignExpressLoanPage acceptAndContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/signLoan/IbSentExpressLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/signLoan/IbSentExpressLoanPage.java new file mode 100644 index 0000000..c6a82cc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/signLoan/IbSentExpressLoanPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.loans.expressloan.signLoan; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.IbLoansPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.expressloan.signLoan.IbSentExpressLoanPage.SUCCESS_TEXT; + +@Wait(SUCCESS_TEXT) +public interface IbSentExpressLoanPage extends IbPageFlow { + String SUCCESS_TEXT = "//td[text() = 'Gratulujeme!']"; + String BACK_TO_LOAN_OVERVIEW = "//a[text() = 'POKRAČOVAT NA PŘEHLED PŮJČEK']"; + + @Wait(BACK_TO_LOAN_OVERVIEW) + @Click(value = BACK_TO_LOAN_OVERVIEW, jsClick = true) + IbLoansPage loansOverview(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/signLoan/IbSignExpressLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/signLoan/IbSignExpressLoanPage.java new file mode 100644 index 0000000..5eecd15 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/expressloan/signLoan/IbSignExpressLoanPage.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ib.loans.expressloan.signLoan; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.expressloan.signLoan.IbSignExpressLoanPage.SIGN_TEXT; + +@Wait(SIGN_TEXT) +public interface IbSignExpressLoanPage extends IbPageFlow { + String SIGN_TEXT = "//td[text() = 'Podpis smlouvy']"; + String CONTINUE_BUTTON = "//a[text() = 'POKRAČOVAT']"; + String MOBILE_KEY_INPUT = "mobileKey"; + String SEND_BUTTON = "mobileKeySubmitBtn"; + + @Wait(CONTINUE_BUTTON) + @Click(value = CONTINUE_BUTTON, jsClick = true, andWait = @Wait(value = BUSY_LOADER, until = Until.GONE)) + IbSignExpressLoanPage continueToSign(); + + @Wait(value = MOBILE_KEY_INPUT, by = Lookup.ID) + @TypeInto(value = MOBILE_KEY_INPUT, by = Lookup.ID) + @Wait(value = BUSY_LOADER, until = Until.GONE) + IbSignExpressLoanPage typeMobileKey(String mobileKey); + + @Wait(value = SEND_BUTTON, by = Lookup.ID) + @Wait(value = BUSY_LOADER, until = Until.GONE) + @Click(value = SEND_BUTTON, by = Lookup.ID, jsClick = true) + IbSentExpressLoanPage sendLoanRequest(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/FlexicreditApplicationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/FlexicreditApplicationPage.java new file mode 100644 index 0000000..42304e0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/FlexicreditApplicationPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit; + +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage.CONTRACT; +import static cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage.FLEXICREDIT_FORM; +import static cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage.HEADER; +import static cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage.MONEY; +import static cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage.OFFER; +import static cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage.REQUEST; + +@Wait({FLEXICREDIT_FORM, HEADER, OFFER, REQUEST, CONTRACT, MONEY}) +public interface FlexicreditApplicationPage extends Builder { + String FLEXICREDIT_FORM = "//div[@id = 'ib-app-flexikredit']"; + String HEADER = "//span[text() = 'Flexikredit žádost']"; + + String OFFER = "//ul//span[text()='Nabídka']"; + String REQUEST = "//ul//span[text()='Žádost']"; + String CONTRACT = "//ul//span[text()='Smlouva']"; + String MONEY = "//ul//span[text()='Peníze']"; + + String CONTINUE_BUTTON = "//span[text()='Pokračovat']//parent::button"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/FlexicreditFinalPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/FlexicreditFinalPage.java new file mode 100644 index 0000000..0b7d085 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/FlexicreditFinalPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.welcome.WelcomePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditFinalPage.SUCCESSFUL_REQUEST_TEST; + +@Wait(SUCCESSFUL_REQUEST_TEST) +public interface FlexicreditFinalPage extends IbPageFlow, FlexicreditApplicationPage { + String SUCCESSFUL_REQUEST_TEST = "//span[text() = 'Váš kontokorent již máte k dispozici']"; + String BACK_BUTTON = "//span[text()='Zpět na přehled zůstatků']//parent::button"; + + @Wait(BACK_BUTTON) + @Click(value = BACK_BUTTON, jsClick = true) + WelcomePage backToWelcomePage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/OfferFlexicreditApplicationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/OfferFlexicreditApplicationPage.java new file mode 100644 index 0000000..8030602 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/OfferFlexicreditApplicationPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestAdressFlexicreditApplicationPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.flexicredit.OfferFlexicreditApplicationPage.FIRST_HEADER_TEXT; + +@Wait(FIRST_HEADER_TEXT) +public interface OfferFlexicreditApplicationPage extends IbPageFlow, FlexicreditApplicationPage { + String FIRST_HEADER_TEXT = "//span[text()='Nastavte si kontokorent pro svůj účet']"; + + String CURRENT_ACCOUNT = "//span[text()='Běžný účet']//parent::label//following::div[contains(text(), '%s')]"; + String LOAN_AMOUNT = "//span[text()='Výše rezervy']//parent::label//following::input[@name= 'loanAmount']"; + + @TypeInto(value = LOAN_AMOUNT, clear = true, andWait = @Wait(value = MONETA_LOGO_SPINER, until = Until.GONE)) + OfferFlexicreditApplicationPage setLoanAmount(String amount); + + @Wait(CONTINUE_BUTTON) + @Click(value = CONTINUE_BUTTON, jsClick = true) + RequestAdressFlexicreditApplicationPage clickContinueButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/AfterReadContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/AfterReadContractPage.java new file mode 100644 index 0000000..8f3bf13 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/AfterReadContractPage.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit.contract; + +import cz.moneta.test.dsl.ib.IbPageFlow; + +public interface AfterReadContractPage extends IbPageFlow { + + FlexicreditReadContractInformation onFlexicreditReadContractInformation(); + FlexicreditPreparedToSignPage onFlexicreditPreparedToSignPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditContractInformationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditContractInformationPage.java new file mode 100644 index 0000000..1a94745 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditContractInformationPage.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit.contract; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; + +import java.util.stream.IntStream; + +public interface FlexicreditContractInformationPage extends IbPageFlow, StoreAccessor { + + String PDF_FORM = "//div[@id = 'pdfViewModal']"; + String END_OF_THE_PAGE = PDF_FORM + "//div[@data-page-number = '7']//div[text() = 'Tel.: +420 224 443 636 | www.moneta.cz'][last()]"; + String DOCUMENTS_TO_READ = "//span[text() = 'Vaše dokumenty k přečtení']"; + + String BACK_BUTTON = "//span[text() = 'Zpět']//parent::button"; + String DOCUMENT = "//div[@id='pdfViewModal']//div[@class = 'react-pdf__Page' and @data-page-number = '%s']"; + + @CustomAction + default AfterReadContractPage readContractAndBack() { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + IntStream.range(1, 6) + .forEachOrdered(index -> ibEndpoint.dragAndDrop(String.format(DOCUMENT, index), String.format(DOCUMENT, index + 1))); + ibEndpoint.scrollIntoView(END_OF_THE_PAGE); + ibEndpoint.waitForElementsToLoad(20, BACK_BUTTON); + ibEndpoint.click(() -> BACK_BUTTON); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditOverdraftAmountPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditOverdraftAmountPage.java new file mode 100644 index 0000000..007b45b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditOverdraftAmountPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit.contract; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Clicks; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.flexicredit.contract.FlexicreditOverdraftAmountPage.MINIMAL_PAYMENT_CONSENT; +import static cz.moneta.test.dsl.ib.loans.flexicredit.contract.FlexicreditOverdraftAmountPage.OVERDRAFT_HEADER_TEXT; + +@Wait({OVERDRAFT_HEADER_TEXT, MINIMAL_PAYMENT_CONSENT}) +public interface FlexicreditOverdraftAmountPage extends IbPageFlow, FlexicreditApplicationPage { + String OVERDRAFT_HEADER_TEXT = "//span[text() = 'Schválili jsme Vám následující možnosti']"; + String MINIMAL_PAYMENT_CONSENT = "//span[text() = 'Zajistím, aby mi na účet přišlo každý měsíc, alespoň požadované minimum 1000 Kč']//ancestor::label//input[@name = 'minimalPaymentConsent']"; + + @Clicks(value = { + @Click(value = MINIMAL_PAYMENT_CONSENT, jsClick = true), + @Click(value = CONTINUE_BUTTON, jsClick = true)}) + FlexicreditPreContractInformation confirmAndContinueToPreContract(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditPreContractInformation.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditPreContractInformation.java new file mode 100644 index 0000000..f90ed9d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditPreContractInformation.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit.contract; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.flexicredit.contract.FlexicreditPreContractInformation.PRE_CONTRACT_HEADER_TEXT; +import static cz.moneta.test.dsl.ib.loans.flexicredit.contract.FlexicreditPreContractInformation.TO_READ_CONTRACT_BUTTON; + +@Wait({PRE_CONTRACT_HEADER_TEXT, TO_READ_CONTRACT_BUTTON}) +public interface FlexicreditPreContractInformation extends IbPageFlow, FlexicreditApplicationPage { + String PRE_CONTRACT_HEADER_TEXT = "//span[text() = 'Předsmluvní informace']"; + String TO_READ_CONTRACT_BUTTON = "//span[text() = 'Přečíst']//parent::button"; + + @Wait(TO_READ_CONTRACT_BUTTON) + @Click(value = TO_READ_CONTRACT_BUTTON, jsClick = true) + FlexicreditContractInformationPage readContract(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditPreparedToSignPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditPreparedToSignPage.java new file mode 100644 index 0000000..755ebde --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditPreparedToSignPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit.contract; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage; +import cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditFinalPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.flexicredit.contract.FlexicreditPreparedToSignPage.HEADER_PREPARED_TO_SIGN; + +@Wait({HEADER_PREPARED_TO_SIGN}) +public interface FlexicreditPreparedToSignPage extends IbPageFlow, FlexicreditApplicationPage { + String HEADER_PREPARED_TO_SIGN = "//span[text() = 'Dokumenty jsou připraveny k podpisu']"; + String TO_READ_CONTRACT_BUTTON = "//span[text() = 'Přečíst']//parent::button"; + String SIGN_DOCUMENTS = "//span[text() = 'Podepsat dokumenty']"; + + String SMS_CODE = "//input[@placeholder = 'Opište kód z SMS']"; + + @Click(TO_READ_CONTRACT_BUTTON) + FlexicreditContractInformationPage readContract(); + + @Wait(SIGN_DOCUMENTS) + @Click(value = SIGN_DOCUMENTS, jsClick = true, andWait = @Wait(SMS_CODE)) + FlexicreditPreparedToSignPage signDocuments(); + + @Wait(SMS_CODE) + @TypeInto(value = SMS_CODE, andWait = @Wait(SIGN_DOCUMENTS)) + @Click(SIGN_DOCUMENTS) + FlexicreditFinalPage typeSmsCodeAndSignDocuments(String smsCode); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditReadContractInformation.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditReadContractInformation.java new file mode 100644 index 0000000..999dedf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/contract/FlexicreditReadContractInformation.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit.contract; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.flexicredit.contract.FlexicreditReadContractInformation.AGREE_AND_CONTINUE; +import static cz.moneta.test.dsl.ib.loans.flexicredit.contract.FlexicreditReadContractInformation.PRE_CONTRACT_HEADER_TEXT; +import static cz.moneta.test.dsl.ib.loans.flexicredit.contract.FlexicreditReadContractInformation.CONTRACT_IS_READ_BUTTON; + +@Wait({PRE_CONTRACT_HEADER_TEXT, CONTRACT_IS_READ_BUTTON, AGREE_AND_CONTINUE}) +public interface FlexicreditReadContractInformation extends IbPageFlow, FlexicreditApplicationPage { + + String PRE_CONTRACT_HEADER_TEXT = "//span[text() = 'Předsmluvní informace']"; + String CONTRACT_IS_READ_BUTTON = "//span[text() = 'Přečteno']//parent::button"; + String AGREE_AND_CONTINUE = "//span[text() = 'Souhlasím a pokračovat']//parent::button"; + + @Click(AGREE_AND_CONTINUE) + FlexicreditPreparedToSignPage contractIsReadAndAgree(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/request/RequestAdressFlexicreditApplicationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/request/RequestAdressFlexicreditApplicationPage.java new file mode 100644 index 0000000..b7e50a9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/request/RequestAdressFlexicreditApplicationPage.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit.request; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestAdressFlexicreditApplicationPage.COUNTRY; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestAdressFlexicreditApplicationPage.DESCRIPTIVE_NUMBER; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestAdressFlexicreditApplicationPage.MAILING_ADDRESS; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestAdressFlexicreditApplicationPage.NAME; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestAdressFlexicreditApplicationPage.ORIENTATION_NUMBER; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestAdressFlexicreditApplicationPage.SECOND_HEADER_TEXT; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestAdressFlexicreditApplicationPage.SURNAME; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestAdressFlexicreditApplicationPage.TOWN; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestAdressFlexicreditApplicationPage.ZIP; + +//TODO:add assert for data +@Wait({SECOND_HEADER_TEXT, NAME, SURNAME, DESCRIPTIVE_NUMBER, ORIENTATION_NUMBER, ZIP, TOWN, COUNTRY, MAILING_ADDRESS}) +public interface RequestAdressFlexicreditApplicationPage extends IbPageFlow, FlexicreditApplicationPage { + String SECOND_HEADER_TEXT = "//span[text() = 'Máme správně Vaše kontaktní údaje?']"; + + //Contact + String NAME = "//span[text()='Jméno']//parent::label//following::input[@name= 'person.name']"; + String SURNAME = "//span[text()='Příjmení']//parent::label//following::input[@name= 'person.surname']"; + String STREET = "//span[text()='Ulice']//parent::label//following::input[@name= 'permanentAddress.street']"; + + //Address + String DESCRIPTIVE_NUMBER = "//span[text()='Č. popisné / orientační']//parent::label//following::input[@name= 'permanentAddress.descriptiveNumber']"; + String ORIENTATION_NUMBER = "//input[@name= 'permanentAddress.orientationNumber']"; + String ZIP = "//span[text()='PSČ']//parent::label//following::input[@name= 'permanentAddress.zip']"; + String TOWN = "//span[text()='Obec / Město']//parent::label//following::input[@name= 'permanentAddress.town']"; + String COUNTRY = "//span[text()='Země']//parent::label//following::input[@name= 'permanentAddress.country']"; //TODO test to click on element + + String MAILING_ADDRESS = "//span[text()='Korespondenční adresa je odlišná od trvalého bydliště']//ancestor::label//input[@id = 'differentAddresses']"; + + @Wait(CONTINUE_BUTTON) + @Click(value = CONTINUE_BUTTON, jsClick = true) + RequestRevenuesFlexicreditApplicationPage clickContinueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/request/RequestConfirmationFlexicreditApplicationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/request/RequestConfirmationFlexicreditApplicationPage.java new file mode 100644 index 0000000..aa255ae --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/request/RequestConfirmationFlexicreditApplicationPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit.request; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage; +import cz.moneta.test.dsl.ib.loans.flexicredit.contract.FlexicreditOverdraftAmountPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestConfirmationFlexicreditApplicationPage.CONFIRM_HEADER_TEXT; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestConfirmationFlexicreditApplicationPage.EDUCATION; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestConfirmationFlexicreditApplicationPage.HOUSING; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestConfirmationFlexicreditApplicationPage.MARITAL_STATUS; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestConfirmationFlexicreditApplicationPage.NATIONALITY; + +@Wait({CONFIRM_HEADER_TEXT, EDUCATION, MARITAL_STATUS, NATIONALITY, HOUSING}) +public interface RequestConfirmationFlexicreditApplicationPage extends IbPageFlow, FlexicreditApplicationPage, StoreAccessor { + String CONFIRM_HEADER_TEXT = "//span[text() = 'Teď už jen drobnosti']"; + + String EDUCATION = "//span[text()='Dosažené vzdělání']//parent::label//following::input[@name= 'education']"; + String MARITAL_STATUS = "//span[text()='Rodinný stav']//parent::label//following::input[@name= 'maritalStatus']"; + String NATIONALITY = "//span[text()='Státní příslušnost']//parent::label//following::input[@name= 'nationality']"; + String SECOND_DOCUMENT_TYPE = "react-select-10-input"; + String SECOND_DOCUMENT_VALUE = "//div[contains(@id, 'react-select-10-option') and text() = '%s']"; + String HOUSING = "//span[text()='Druh bydlení']//parent::label//following::input[@name= 'housing']"; + + String AGREE_AND_CONTINUE = "//span[text() = 'Souhlasím, pokračovat']//parent::button"; + + @Click(value = AGREE_AND_CONTINUE, jsClick = true) + FlexicreditOverdraftAmountPage agreeAndContinueToOverdraftAmount(); + + @Wait(value = SECOND_DOCUMENT_TYPE, by = Lookup.ID) + @Click(value = SECOND_DOCUMENT_TYPE, by = Lookup.ID, jsClick = true) + @Wait(value = SECOND_DOCUMENT_VALUE, isStringDynamicXpath = true) + @Click(value = SECOND_DOCUMENT_VALUE, isStringDynamicXpath = true) + RequestConfirmationFlexicreditApplicationPage setSecondDocument(String secondDocument); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/request/RequestRevenuesFlexicreditApplicationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/request/RequestRevenuesFlexicreditApplicationPage.java new file mode 100644 index 0000000..2dc521e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/loans/flexicredit/request/RequestRevenuesFlexicreditApplicationPage.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.ib.loans.flexicredit.request; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditApplicationPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.COUNTRY; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.DEDUCTIONS_FROM_SALARY; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.DESCRIPTIVE_NUMBER; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.EMPLOYER_ID; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.EMPLOYMENT_TYPE; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.IN_TRIAL_PERIOD; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.MONTHLY_HOUSE_INCOME; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.MONTHLY_INCOME; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.NAME_OF_EMPLOYEE; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.NUMBER_OF_DEPENDENTS; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.ON_NOTICE; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.ORIENTATION_NUMBER; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.OTHER_LIVING_COSTS; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.OTHER_MONTHLY_INSTALLMENTS; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.REVENUES_HEADER_TEXT; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.STREET; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.TOWN; +import static cz.moneta.test.dsl.ib.loans.flexicredit.request.RequestRevenuesFlexicreditApplicationPage.ZIP; + + +@Wait({REVENUES_HEADER_TEXT, EMPLOYMENT_TYPE, IN_TRIAL_PERIOD, ON_NOTICE, + NAME_OF_EMPLOYEE, EMPLOYER_ID, STREET, DESCRIPTIVE_NUMBER, ORIENTATION_NUMBER, TOWN, ZIP, COUNTRY, + MONTHLY_INCOME, MONTHLY_HOUSE_INCOME, OTHER_MONTHLY_INSTALLMENTS, OTHER_LIVING_COSTS, DEDUCTIONS_FROM_SALARY, NUMBER_OF_DEPENDENTS}) +public interface RequestRevenuesFlexicreditApplicationPage extends IbPageFlow, FlexicreditApplicationPage, StoreAccessor { + String REVENUES_HEADER_TEXT = "//span[text() = 'Máme správně údaje o Vašich příjmech?']"; + + //Employment + String EMPLOYMENT_TYPE = "//span[text()='Pracovní poměr']//parent::label//following::input[@name= 'incomeSource.employmentType']"; + String IN_TRIAL_PERIOD = "//span[text()='Jsem ve zkušební lhůtě']//ancestor::label//input[@id = 'incomeSource.inTrialPeriod']"; + String ON_NOTICE = "//span[text()='Jsem ve výpovědní lhůtě']//ancestor::label//input[@id = 'incomeSource.onNotice']"; + + //Employer + String NAME_OF_EMPLOYEE = "//span[text()='Název zaměstnavatele']//parent::label//following::div[@id = 'react-autowhatever-1']//preceding-sibling::input"; + String EMPLOYER_ID = "//span[text()='IČ']//parent::label//following::input[@name= 'employer.employerId']"; + String STREET = "//span[text()='Ulice']//parent::label//following::input[@name= 'employer.employerAddress.street']"; + String DESCRIPTIVE_NUMBER = "//span[text()='Č. popisné / orientační']//parent::label//following::input[@name= 'employer.employerAddress.descriptiveNumber']"; + String ORIENTATION_NUMBER = "//input[@name= 'employer.employerAddress.orientationNumber']"; + String TOWN = "//span[text()='Obec / Město']//parent::label//following::input[@name= 'employer.employerAddress.town']"; + String ZIP = "//span[text()='PSČ']//parent::label//following::input[@name= 'employer.employerAddress.zip']"; + String COUNTRY = "//span[text()='Země']//parent::label//following::input[@name= 'employer.employerAddress.country']"; //TODO test to click on element + + //Revenues and expenses + String MONTHLY_INCOME = "//span[text()='Čistý měsíční příjem']//parent::label//following::input[@name= 'solvency.netMonthlyIncome']"; + String MONTHLY_HOUSE_INCOME = "//span[text()='Čistý měsíční příjem domácnosti']//parent::label//following::input[@name= 'householdSolvency.netMonthlyHouseIncome']"; + String OTHER_MONTHLY_INSTALLMENTS = "//span[text()='Měsíční splátky mimo MMB']//parent::label//following::input[@name= 'solvency.otherMonthlyInstallments']"; + String OTHER_LIVING_COSTS = "//span[text()='Ostatní nestandardní měsíční výdaje']//parent::label//following::input[@name= 'solvency.otherLivingCosts']"; + String DEDUCTIONS_FROM_SALARY = "//span[text()='Srážky ze mzdy']//parent::label//following::input[@name= 'solvency.deductionsFromWages']"; + + String RESIDENCE_FLAG_TRUE = "//span[text()='Daňový rezident ČR']//parent::label//following::input[@name= 'solvency.residenceFlag' and @value = '%s']"; + String NUMBER_OF_DEPENDENTS = "//span[text()='Počet vyživovaných osob']//parent::label//following::input[@id= 'react-select-6-input']"; + + @TypeInto(value = MONTHLY_INCOME, clear = true) + RequestRevenuesFlexicreditApplicationPage typeMonthlyIncome(String monthlyIncome); + + @TypeInto(value = MONTHLY_HOUSE_INCOME, clear = true) + RequestRevenuesFlexicreditApplicationPage typeMonthlyHouseIncome(String monthlyHouseIncome); + + @TypeInto(value = OTHER_MONTHLY_INSTALLMENTS, clear = true) + RequestRevenuesFlexicreditApplicationPage typeOtherMonthlyInstallments(String typeOtherMonthlyInstallments); + + @TypeInto(value = OTHER_LIVING_COSTS, clear = true) + RequestRevenuesFlexicreditApplicationPage typeOtherLivingCosts(String otherLivingCosts); + + @TypeInto(value = DEDUCTIONS_FROM_SALARY, clear = true) + RequestRevenuesFlexicreditApplicationPage typeDeductionsFromSalary(String deductionsFromSalary); + + @CustomAction + default RequestRevenuesFlexicreditApplicationPage setResidenceFlag(boolean residenceFlag) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + ibEndpoint.jsClick(() -> String.format(RESIDENCE_FLAG_TRUE, residenceFlag ? "true" : "else")); + return null; + } + + @Wait(CONTINUE_BUTTON) + @Click(value = CONTINUE_BUTTON, jsClick = true) + RequestConfirmationFlexicreditApplicationPage clickContinueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbArrivedMailsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbArrivedMailsPage.java new file mode 100644 index 0000000..05233ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbArrivedMailsPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ib.messages; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.UserMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.messages.IbArrivedMailsPage.HEADER_LABEL; + +@Wait(HEADER_LABEL) +public interface IbArrivedMailsPage extends IbPageFlow, MainMenu, UserMenu, IbMailsLeftMenu { + String HEADER_LABEL = "//h3[text() = 'Doručené zprávy']"; + String WRITE_NEW_MESSAGE = "//img[@alt = 'Napsat novou zprávu']"; + String WAITING_FOR_ANSWER_TEXT = "//div[@class = 'savedInfoBox_text' and contains(text(), 'Děkujeme Vám za zprávu a potvrzujeme její přijetí. Odpovíme co nejdříve, nejpozději do 48 hodin')]"; + + @Wait(WRITE_NEW_MESSAGE) + @Click(WRITE_NEW_MESSAGE) + IbWriteNewMailPage clickOnWriteNewMail(); + + @Wait(WAITING_FOR_ANSWER_TEXT) + IbArrivedMailsPage checkInfoText(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbMailDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbMailDetailPage.java new file mode 100644 index 0000000..3021d3e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbMailDetailPage.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.ib.messages; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.UserMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.AcceptAlert; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ib.messages.IbMailDetailPage.MAIL_DETAIL_TABLE; + +@Wait(MAIL_DETAIL_TABLE) +public interface IbMailDetailPage extends IbPageFlow, MainMenu, UserMenu, IbMailsLeftMenu, StoreAccessor { + String MAIL_DETAIL_TABLE = "//table[contains(@id, 'mailDetail')]"; + String MAIL_SUBJECT = MAIL_DETAIL_TABLE + "//h3[@class = 'pageLabel']"; + String MAIL_MESSAGE = MAIL_DETAIL_TABLE + "//td[@class = 'message']"; + String DELETE_BTN = "//img[@alt = 'Smazat']"; + String DELETED_MAIL_TEX = "//div[text() = 'Zpráva byla smazána.']"; + + @CustomAction + default IbMailDetailPage compareSentMailData(String mailSubject, String mailMessage) { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + String actualMailSubject = endpoint.getText(MAIL_SUBJECT); + String actualMailMessage = endpoint.getText(MAIL_MESSAGE); + Assertions.assertEquals(mailSubject, actualMailSubject, "Actual mail title " + actualMailSubject + " is not equal to expected " + mailSubject); + Assertions.assertEquals(mailMessage, actualMailMessage, "Actual mail message " + actualMailMessage + " is not equal to expected " + mailMessage); + return null; + } + + @Wait(DELETE_BTN) + @Click(DELETE_BTN) + @AcceptAlert(waitSecondsForAlert = 20) + IbMailDetailPage deleteMail(); + + @Wait(DELETED_MAIL_TEX) + IbMailDetailPage checkDeletedMailInfoText(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbMailsLeftMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbMailsLeftMenu.java new file mode 100644 index 0000000..2ad308b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbMailsLeftMenu.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ib.messages; + +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +public interface IbMailsLeftMenu extends Builder { + String NAV_LIST_PARENT = "//ul[@id = 'navList']"; + String ARRIVED_MAILS = NAV_LIST_PARENT + "//a[text() = 'Doručené zprávy']"; + String SENT_MAILS = NAV_LIST_PARENT + "//a[text() = 'Odeslané zprávy']"; + String NEW_MAIL = NAV_LIST_PARENT + "//a[text() = 'Napsat novou zprávu']"; + + @Wait(ARRIVED_MAILS) + @Click(ARRIVED_MAILS) + IbArrivedMailsPage clickOnArrivedMails(); + + @Wait(SENT_MAILS) + @Click(SENT_MAILS) + IbSentMessagePage clickOnSentMails(); + + @Wait(NEW_MAIL) + @Click(NEW_MAIL) + IbWriteNewMailPage clickOnNewMail(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbSentMessagePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbSentMessagePage.java new file mode 100644 index 0000000..7c7efd4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbSentMessagePage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ib.messages; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.UserMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.messages.IbSentMessagePage.SENT_HEADER_TEXT; +import static cz.moneta.test.dsl.ib.messages.IbSentMessagePage.WRITE_NEW_MAIL; + +@Wait({SENT_HEADER_TEXT, WRITE_NEW_MAIL}) +public interface IbSentMessagePage extends IbPageFlow, MainMenu, UserMenu, IbMailsLeftMenu { + String SENT_HEADER_TEXT = "//h3[text() = 'Odeslané zprávy']"; + String WRITE_NEW_MAIL = "//img[@alt = 'Napsat novou zprávu']"; + String MAIL_ROW = "//tr[contains(@class, 'readMessage')]"; + String SENT_MAIL = MAIL_ROW + "//td[@class = 'listItem' and contains(text(), '%s')]"; + + @Wait(MAIL_ROW) + @Click(value = SENT_MAIL, isStringDynamicXpath = true) + IbMailDetailPage openMail(String mailTitle); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbWriteNewMailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbWriteNewMailPage.java new file mode 100644 index 0000000..7e8854d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/messages/IbWriteNewMailPage.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.ib.messages; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.UserMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.messages.IbWriteNewMailPage.NEW_MESSAGE_HEADER_TEXT; + +@Wait(NEW_MESSAGE_HEADER_TEXT) +public interface IbWriteNewMailPage extends IbPageFlow, MainMenu, UserMenu, IbMailsLeftMenu { + String NEW_MESSAGE_HEADER_TEXT = "//h3[text() = 'Napsat novou zprávu']"; + String MAIL_SUBJECT = "mail_subject"; + String MAIL_TOPIC_SELECT = "mail_topic"; + String MESSAGE_FORM = "mail_body"; + + String SEND_BTN = "//img[@id='send1']"; + String CANCEL_BTN = "//img[@alt='Zrušit']"; + + @Wait(value = MAIL_SUBJECT, by = Lookup.ID) + @TypeInto(value = MAIL_SUBJECT, by = Lookup.ID) + IbWriteNewMailPage typeMailSubject(String mailSubject); + + @Wait(value = MAIL_TOPIC_SELECT, by = Lookup.ID) + @Select(value = MAIL_TOPIC_SELECT, by = Lookup.ID) + IbWriteNewMailPage selectMailTopic(String mailTopic); + + @Wait(value = MESSAGE_FORM, by = Lookup.ID) + @TypeInto(value = MESSAGE_FORM, by = Lookup.ID) + IbWriteNewMailPage typeMailText(String message); + + @Wait(SEND_BTN) + @Click(SEND_BTN) + IbArrivedMailsPage clickOnSendMail(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/MortgageCalculatorPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/MortgageCalculatorPage.java new file mode 100644 index 0000000..9600334 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/MortgageCalculatorPage.java @@ -0,0 +1,113 @@ +package cz.moneta.test.dsl.ib.mortgages; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.Assert; + +import static cz.moneta.test.dsl.ib.mortgages.MortgageCalculatorPage.*; + +@Wait({MORTGAGE_CALCULATOR_TITLE_PAGE, MORTGAGES_CALCULATOR_INPUTS_PANEL, MORTGAGES_CALCULATOR_RESULT_PANEL}) +public interface MortgageCalculatorPage extends IbPageFlow, MainMenu { + String MORTGAGE_CALCULATOR_TITLE_PAGE = "//p[text()='Hypoteční kalkulačka']"; + String MORTGAGES_CALCULATOR_INPUTS_PANEL = "//div[@class='flexi-mortgage-calculator-input']"; + String MORTGAGES_CALCULATOR_RESULT_PANEL = "//div[@class='flexi-mortgage-calculator-result']"; + + //Calculator inputs panel + String AMOUNT_OF_REALITY_INPUT = MORTGAGES_CALCULATOR_INPUTS_PANEL + "//label[contains(text(), 'Cena nemovitosti')]/parent::div/following-sibling::div//input[@id='realtyAmount']"; + String MORTGAGE_AMOUNT_INPUT = MORTGAGES_CALCULATOR_INPUTS_PANEL + "//label[contains(text(), 'Výše hypotéky')]/parent::div/following-sibling::div//input[@id='loanAmount']"; + String FREE_RESOURCES_INPUT = MORTGAGES_CALCULATOR_INPUTS_PANEL + "//label[contains(text(), ' Volné úspory')]/parent::div/following-sibling::div//input[@id='freeResources']"; + String REPEYMENT_PERIOD = MORTGAGES_CALCULATOR_INPUTS_PANEL + "//label[contains(text(), ' Doba splácení')]/parent::div/following-sibling::div//input[@id='maturity']"; + String FIXATION_LENGTH = MORTGAGES_CALCULATOR_INPUTS_PANEL + "//label[contains(text(), 'Délka fixace')]/parent::div//div[@id='fixationWrapper']"; + String FIXATION_LENGTH_BUTTON = FIXATION_LENGTH + "/button[@fixation='3']"; + String INSURANCE_ABILITY_PAYMENT = MORTGAGES_CALCULATOR_INPUTS_PANEL + "//div[contains(text(), 'Pojištění schopnosti splácet')]/following-sibling::div/span[@id='withInsuranceLabel' and text()='S pojištěním']/preceding-sibling::span[@id='withInsurance']"; + String WITHOUT_INSURANCE_ABILITY_PAYMENT = MORTGAGES_CALCULATOR_INPUTS_PANEL + "//div[contains(text(), 'Pojištění schopnosti splácet')]/following-sibling::div/span[@id='withoutInsuranceLabel' and text()='Bez pojištění']/preceding-sibling::span[@id='withoutInsurance']"; + String LOAN_AMOUNT_SLIDER = MORTGAGES_CALCULATOR_INPUTS_PANEL + "//div[@id='loanAmountSlider']"; + String MATURITY_SLIDER = MORTGAGES_CALCULATOR_INPUTS_PANEL + "//div[@id='maturitySlider']"; + + String AVERAGE_MONTHLY_PAYMENT = MORTGAGES_CALCULATOR_RESULT_PANEL + "//div[contains(text(), 'Průměrná měsíční splátka')]/following-sibling::div/p[@id='monthlyInstalment']"; + String EFECTIVE_INTEREST_RATE = MORTGAGES_CALCULATOR_RESULT_PANEL + "//span[contains(text(), 'Efektivní úroková sazba')]"; + String RPSN_ELEMENT = MORTGAGES_CALCULATOR_RESULT_PANEL + "//span[contains(text(), 'RPSN')]"; + String I_AM_INTERESTED_BUTTON = MORTGAGES_CALCULATOR_RESULT_PANEL + "//div[contains(text(), 'MÁM ZÁJEM')]"; + String UNDEFINED = "undefined Kč"; + + @CheckElementsPresent({ + @CheckElementPresent(AMOUNT_OF_REALITY_INPUT), + @CheckElementPresent(MORTGAGE_AMOUNT_INPUT), + @CheckElementPresent(FREE_RESOURCES_INPUT), + @CheckElementPresent(REPEYMENT_PERIOD), + @CheckElementPresent(FIXATION_LENGTH), + @CheckElementPresent(LOAN_AMOUNT_SLIDER), + @CheckElementPresent(INSURANCE_ABILITY_PAYMENT), + @CheckElementPresent(WITHOUT_INSURANCE_ABILITY_PAYMENT), + @CheckElementPresent(MATURITY_SLIDER), + }) + MortgageCalculatorPage checkCalculatorInputsPanelElements(); + + @CheckElementsPresent({ + @CheckElementPresent(AVERAGE_MONTHLY_PAYMENT), + @CheckElementPresent(EFECTIVE_INTEREST_RATE), + @CheckElementPresent(RPSN_ELEMENT), + @CheckElementPresent(I_AM_INTERESTED_BUTTON) + }) + MortgageCalculatorPage checkCalculatorRsultPanelElements(); + + @CustomAction + default MortgageCalculatorPage getMonthlyPaymentAndCheckNotUndefinedValue() { + String monthlyPayment = getMonthlyPayment(); + Assert.assertNotEquals(UNDEFINED, monthlyPayment); + return null; + } + + @GetElementContent(AVERAGE_MONTHLY_PAYMENT) + String getMonthlyPayment(); + + @CustomAction + default MortgageCalculatorPage changeMortgageAmountAndCheckChangeValueMonthlyPayment(String amountOfReality) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + String monthlyPaymentBeforeChange = getMonthlyPayment(); + ibEndpoint.type(() -> MORTGAGE_AMOUNT_INPUT, amountOfReality, true); + ibEndpoint.sleepSeconds(5); + String monthlyPaymentAfterChange = getMonthlyPayment(); + Assert.assertFalse("Monthly payment before change mortgages amount is " + monthlyPaymentBeforeChange + " and monthly payment after change is " + monthlyPaymentAfterChange, (monthlyPaymentBeforeChange.contains(monthlyPaymentAfterChange)) || (monthlyPaymentAfterChange.contains(UNDEFINED))); + return null; + } + + @CustomAction + default MortgageCalculatorPage changeFreeResourcesAndCheckChangeValueMonthlyPayment(String freeResources) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + String monthlyPaymentBeforeChange = getMonthlyPayment(); + ibEndpoint.type(() -> FREE_RESOURCES_INPUT, freeResources, true); + ibEndpoint.sleepSeconds(5); + String monthlyPaymentAfterChange = getMonthlyPayment(); + Assert.assertFalse("Monthly payment before change free resources is " + monthlyPaymentBeforeChange + " and monthly payment after change is " + monthlyPaymentAfterChange, (monthlyPaymentBeforeChange.contains(monthlyPaymentAfterChange)) || (monthlyPaymentAfterChange.contains(UNDEFINED))); + return null; + } + + + @CustomAction + default MortgageCalculatorPage changeFixationLenghtAndCheckChangeValueMonthlyPayment() { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + String monthlyPaymentBeforeChange = getMonthlyPayment(); + ibEndpoint.click(() -> FIXATION_LENGTH_BUTTON); + ibEndpoint.sleepSeconds(5); + String monthlyPaymentAfterChange = getMonthlyPayment(); + Assert.assertFalse("Monthly payment before change period of fixation is " + monthlyPaymentBeforeChange + " and monthly payment after change is " + monthlyPaymentAfterChange, (monthlyPaymentBeforeChange.contains(monthlyPaymentAfterChange)) || (monthlyPaymentAfterChange.contains(UNDEFINED))); + return null; + } + + @CustomAction + default MortgageCalculatorPage insuranceAbilityPaymentAndCheckChangeValueMonthlyPayment() { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + String monthlyPaymentBeforeChange = getMonthlyPayment(); + ibEndpoint.click(() -> INSURANCE_ABILITY_PAYMENT); + ibEndpoint.sleepSeconds(7); + String monthlyPaymentAfterChange = getMonthlyPayment(); + Assert.assertFalse("Monthly payment without insurance is " + monthlyPaymentBeforeChange + " and monthly payment after change is " + monthlyPaymentAfterChange, (monthlyPaymentBeforeChange.contains(monthlyPaymentAfterChange)) || (monthlyPaymentAfterChange.contains(UNDEFINED))); + return null; + } + + @Click(I_AM_INTERESTED_BUTTON) + MortgagesCalculatorThankPage clickIAmInterestedButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/MortgageLeftMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/MortgageLeftMenu.java new file mode 100644 index 0000000..2b6e7a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/MortgageLeftMenu.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ib.mortgages; + +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.mortgages.MortgageLeftMenu.*; + +@Wait({OVERVIEW_OF_MORTGAGES_MENU_ITEM, OVERVIEW_OF_TRANSACTION_MENU_ITEM, MORTGAGE_CALCULATOR_MENU_ITEM}) +public interface MortgageLeftMenu extends Builder { + String NAV_LIST_MENU = "//ul[@id='navList']"; + String OVERVIEW_OF_MORTGAGES_MENU_ITEM = NAV_LIST_MENU + "//a[contains(text(), 'Přehled hypoték')]"; + String OVERVIEW_OF_TRANSACTION_MENU_ITEM = NAV_LIST_MENU + "//a[contains(text(), 'Přehled transakcí')]"; + String MORTGAGE_CALCULATOR_MENU_ITEM = NAV_LIST_MENU + "//a[contains(text(), 'Hypoteční kalkulátor')]"; + String ONLINE_REQUIREMENT_MENU_ITEM = NAV_LIST_MENU + "//a[contains(text(), 'Online žádost')]"; + String DEFFERED_PAYMENTS_MENU_ITEM = NAV_LIST_MENU + "//a[contains(text(), 'Odklad splátek')]"; + String MY_DOCUMENTS_MENU_ITEM = NAV_LIST_MENU + "//a[contains(text(), 'Moje dokumenty')]"; + + @Click(MORTGAGE_CALCULATOR_MENU_ITEM) + MortgageCalculatorPage clickToMortgageCalculatorInMenu(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/MortgagesCalculatorThankPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/MortgagesCalculatorThankPage.java new file mode 100644 index 0000000..0bd1dfc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/MortgagesCalculatorThankPage.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.ib.mortgages; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.mortgages.MortgagesCalculatorThankPage.AGAIN_REQUEST_BUTTON; +import static cz.moneta.test.dsl.ib.mortgages.MortgagesCalculatorThankPage.THANK_PAGE_ID; + +@Wait({THANK_PAGE_ID, AGAIN_REQUEST_BUTTON}) +public interface MortgagesCalculatorThankPage extends IbPageFlow, MainMenu, MortgageLeftMenu { + String THANK_PAGE_ID = "//div[@id='thank']"; + String AGAIN_REQUEST_BUTTON = "//div[@id='thanks-next-step-btn']"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/OverviewOfMortgagesPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/OverviewOfMortgagesPage.java new file mode 100644 index 0000000..f33c391 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/mortgages/OverviewOfMortgagesPage.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ib.mortgages; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.mortgages.OverviewOfMortgagesPage.MORTGAGE_CALCULATOR_BUTTON; +import static cz.moneta.test.dsl.ib.mortgages.OverviewOfMortgagesPage.OVERVIEW_OF_MORTGAGES_TITLE; + +@Wait({OVERVIEW_OF_MORTGAGES_TITLE, MORTGAGE_CALCULATOR_BUTTON}) +public interface OverviewOfMortgagesPage extends IbPageFlow, MainMenu, MortgageLeftMenu { + String PARENT_FORM_ID = "//div[@id='parentform']"; + String OVERVIEW_OF_MORTGAGES_TITLE = PARENT_FORM_ID + "//img[@alt='Přehled hypoték']"; + String MORTGAGE_CALCULATOR_BUTTON = PARENT_FORM_ID + "//img[@alt='Hypoteční kalkulačka']"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/payment/domestic/PaymentOrderAuthorizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/domestic/PaymentOrderAuthorizePage.java new file mode 100644 index 0000000..bc6057f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/domestic/PaymentOrderAuthorizePage.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.ib.payment.domestic; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.payment.domestic.PaymentOrderAuthorizePage.FORM_DIV; + +@Wait(value = FORM_DIV) +public interface PaymentOrderAuthorizePage extends IbPageFlow, MainMenu, AccountsAndTransactionsSubmenu { + + String SIGN_BUTTON = "//a[@id='sign-button']"; + String SIGN_MASS_PAYMENT_BUTTON = "//img[@alt='Podepsat']"; + String SEND_BUTTON = "//a[@id='commit-button']"; + String SEND_MASS_PAYMENT_BUTTON = "//a[@id='sendBtn']"; + String SMS_CODE_IPUT = "//input[@id='mobile-key']"; + String SMS_CODE_MASS_PAYMENT_INPUT = "//input[@id='SMSCode']"; + String RESULT_DIV = "//div[@id='payment-result-content']"; + String SAVE_TO_SIGN = "//a[@id='send-to-waiting-room-button']"; + String FORM_DIV = "//div[@id='x31809652']"; + + @Click(SIGN_BUTTON) + PaymentOrderAuthorizePage clickSign(); + + @Click(SIGN_MASS_PAYMENT_BUTTON) + PaymentOrderAuthorizePage clickSignMassPayment(); + + @Click(value = SAVE_TO_SIGN, andWait = @Wait(value = RESULT_DIV, until = Until.VISIBLE, waitSecondsForElement = 60)) + PaymentOrderConfirmationPage clickSaveToSign(); + + @Click(value = SIGN_BUTTON, andWait = @Wait(value = RESULT_DIV, until = Until.VISIBLE, waitSecondsForElement = 60)) + PaymentOrderConfirmationPage clickSignTransferBetweenOwnAcc(); + + @TypeInto(SMS_CODE_IPUT) + PaymentOrderAuthorizePage typeSmsCode(String smsCode); + + @TypeInto(SMS_CODE_MASS_PAYMENT_INPUT) + PaymentOrderAuthorizePage typeSmsCodeMassPayment(String smsCode); + + @Click(value = SEND_BUTTON, andWait = @Wait(value = RESULT_DIV, until = Until.VISIBLE, waitSecondsForElement = 60)) + PaymentOrderConfirmationPage clickSend(); + + @Click(SEND_MASS_PAYMENT_BUTTON) + PaymentOrderConfirmationPage clickSendMassPayment(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/payment/domestic/PaymentOrderConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/domestic/PaymentOrderConfirmationPage.java new file mode 100644 index 0000000..e54c532 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/domestic/PaymentOrderConfirmationPage.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ib.payment.domestic; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.payment.domestic.PaymentOrderConfirmationPage.FORM_DIV; + +@Wait(value = FORM_DIV) +public interface PaymentOrderConfirmationPage extends IbPageFlow, MainMenu, AccountsAndTransactionsSubmenu { + + String LIST_PAYMENT_ORDERS_BUTTON = "//a[@class='smallSecondaryButton' and contains(text(), 'Přehled příkazů')]"; + String LIST_PAYMENT_ORDERS_MASS_PAYMENT_BUTTON = "//img[@alt='Přehled příkazů k úhradě']"; + String FORM_DIV = "//div[@id='x31809652']"; + String PAYMENT_OK_WINDOW = "//span[@class='ok']"; + + @Click(LIST_PAYMENT_ORDERS_BUTTON) + PaymentOrderConfirmationPage clickListPaymentOrders(); + + @Click(LIST_PAYMENT_ORDERS_MASS_PAYMENT_BUTTON) + PaymentOrderConfirmationPage clickListMassPaymentOrders(); + + @Wait(explicitWaitSeconds = 15) + @CheckElementPresent(value = PAYMENT_OK_WINDOW) + PaymentOrderConfirmationPage checkPaymentOkWindow(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/payment/domestic/PaymentOrderCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/domestic/PaymentOrderCreatePage.java new file mode 100644 index 0000000..df3af62 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/domestic/PaymentOrderCreatePage.java @@ -0,0 +1,106 @@ +package cz.moneta.test.dsl.ib.payment.domestic; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ib.payment.domestic.PaymentOrderCreatePage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ib.payment.domestic.PaymentOrderCreatePage.FROM_ACCOUNT_SELECT; + +@Wait({FROM_ACCOUNT_SELECT, CONTINUE_BUTTON}) +public interface PaymentOrderCreatePage extends IbPageFlow, MainMenu, AccountsAndTransactionsSubmenu { + String TRANSFER_BETWEEN_OWN_ACCOUNTS = "//input[@name='DPOType' and @value='cat']"; + String MASS_PAYMENT = "//input[@name='DPOType' and @value='mpo']"; + String FROM_ACCOUNT_SELECT = "//select[@id='fromAccount']"; + String FROM_ACCOUNT_SELECT_BY_NAME = "//select[@id='fromAccount']/option[contains(text(),'%s')]"; + String FROM_FIRST_OWN_ACCOUNT_SELECT_MASS_PAYMENT = "//select[@id='fromAccount']/option[1]"; + String FROM_FIRST_OWN_ACCOUNT_SELECT = "//select[@id='CatFromAccount']/option[2]"; + String TO_ACCOUNT_NUMBER_INPUT = "//div[@id='document']//form[@id='mainFrm']//input[@name='partnerAccountNumber']"; + String TO_ACCOUNT_BANK_INPUT = "//div[@id='document']//form[@id='mainFrm']//input[@id='partnerAccountBank']"; + String TO_SECOND_OWN_ACCOUNT_SELECT = "//select[@id='CatToAccount']/option[3]"; + String AMOUNT_INPUT = "//div[@id='document']//form[@id='mainFrm']//input[@id='amount']"; + String VARIABLE_SYMBOL_INPUT = "//div[@id='document']//form[@id='mainFrm']//input[@id='vs']"; + String CONSTANT_SYMBOL_INPUT = "//div[@id='document']//form[@id='mainFrm']//input[@name='cs']"; + String NOTE_FOR_RECIPIENT_AREA = "//input[@id='avizo']"; + String NOTE_FOR_RECIPIENT_AREA_MASS_PAYMENT = "//textarea[@id='avizo']"; + String CATEGORY_SELECT = "//select[@id='categoryId']"; + String NOTE_AREA = "//input[@id='note']"; + String STANDARD_PAYMENT = "//input[@id='paymentTypeStandard']"; + String INSTANT_PAYMENT = "//input[@id='paymentTypeInstant']"; + String PRIORITY_PAYMENT = "//input[@id='paymentTypePriority']"; + String CONTINUE_BUTTON = "//a[@id='continueStep2']"; + String CONTINUE_BUTTON_MASS_PAYMENT = "//img[@id='continueStep2']"; + String ADD_PAYMENT_ORDER = "//img[@alt='Přidat příkaz k úhradě']"; + + @Click(TRANSFER_BETWEEN_OWN_ACCOUNTS) + PaymentOrderCreatePage clickTransferBetweenOwnAccounts(); + + @Click(MASS_PAYMENT) + PaymentOrderCreatePage clickMassPayment(); + + @Click(FROM_ACCOUNT_SELECT) + PaymentOrderCreatePage clickFromAccountSelect(); + + @Click(value = FROM_ACCOUNT_SELECT_BY_NAME, isStringDynamicXpath = true) + PaymentOrderCreatePage selectFromAccountByName(String nameAccount); + + @Click(FROM_FIRST_OWN_ACCOUNT_SELECT_MASS_PAYMENT) + PaymentOrderCreatePage clickFromFirstAccountMassPaymentSelect(); + + @Click(FROM_FIRST_OWN_ACCOUNT_SELECT) + PaymentOrderCreatePage clickFromFirstAccountSelect(); + + @TypeInto(TO_ACCOUNT_NUMBER_INPUT) + PaymentOrderCreatePage fillToAccountNumber(String toAccountNumber); + + @TypeInto(TO_ACCOUNT_BANK_INPUT) + PaymentOrderCreatePage fillToAccountBank(String toAccountBank); + + @Click(TO_SECOND_OWN_ACCOUNT_SELECT) + PaymentOrderCreatePage clickToSecondOwnAccountSelect(); + + @TypeInto(value = AMOUNT_INPUT, andWait = @Wait(explicitWaitSeconds = 2)) + PaymentOrderCreatePage fillAmount(String amount); + + @TypeInto(VARIABLE_SYMBOL_INPUT) + PaymentOrderCreatePage fillVariableSymbol(String variableSymbol); + + @TypeInto(CONSTANT_SYMBOL_INPUT) + PaymentOrderCreatePage fillConstantSymbol(String constantSymbol); + + @TypeInto(NOTE_FOR_RECIPIENT_AREA) + PaymentOrderCreatePage fillNoteForRecipient(String noteForRecipient); + + @TypeInto(NOTE_FOR_RECIPIENT_AREA_MASS_PAYMENT) + PaymentOrderCreatePage fillNoteForRecipientMassPayment(String noteForRecipient); + + @Wait(explicitWaitSeconds = 1) + @Click(STANDARD_PAYMENT) + PaymentOrderCreatePage clickStandardPayment(); + + @Click(INSTANT_PAYMENT) + PaymentOrderCreatePage clickInstantPayment(); + + @Click(PRIORITY_PAYMENT) + PaymentOrderCreatePage clickPriorityPayment(); + + @Click(CATEGORY_SELECT) + PaymentOrderCreatePage clickCategorySelect(); + + @TypeInto(NOTE_AREA) + PaymentOrderCreatePage fillNote(String note); + + @Click(CONTINUE_BUTTON) + PaymentOrderCreatePage clickContinueButtonMassPayment(); + + @Click(ADD_PAYMENT_ORDER) + PaymentOrderCreatePage clickAddPaymentOrder(); + + @Click(CONTINUE_BUTTON_MASS_PAYMENT) + PaymentOrderAuthorizePage clickMassPaymentContinueButton(); + + @Click(CONTINUE_BUTTON) + @Page(PaymentOrderAuthorizePage.class) + PaymentOrderAuthorizePage clickContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/payment/foreign/ForeignPaymentOderCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/foreign/ForeignPaymentOderCreatePage.java new file mode 100644 index 0000000..e3b19dd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/foreign/ForeignPaymentOderCreatePage.java @@ -0,0 +1,90 @@ +package cz.moneta.test.dsl.ib.payment.foreign; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ib.payment.foreign.ForeignPaymentOderCreatePage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ib.payment.foreign.ForeignPaymentOderCreatePage.FROM_ACCOUNT_SELECT; + + +@Wait({FROM_ACCOUNT_SELECT, CONTINUE_BUTTON}) +public interface ForeignPaymentOderCreatePage extends IbPageFlow, MainMenu, AccountsAndTransactionsSubmenu { + + String SEPA_PAYMENT_SELECT = "//input[@value='FPOE']"; + String FOREIGN_CURRENCY_ORDER_BETWEEN_OWN_ACCOUNTS = "//input[@value='FPOK']"; + String FOREIGN_CURRENCY_ORDER_BETWEEN_MMB_ACCOUNTS = "//input[@value='FPOT2']"; + String PARENT_ELEMENT_FORM = "//div[@id='document']//form[@id='mainFrm']"; + String FROM_ACCOUNT_SELECT = PARENT_ELEMENT_FORM + "//select[@id='fromAccount']"; + String FROM_FIRST_ACCOUNT_SELECT = "//select[@id='fromAccount']/option[2]"; + String TO_OWN_SECOND_ACCOUNT_SELECT = "//select[@id='fpo.toAccount']/option[3]"; + String AMOUNT_INPUT = PARENT_ELEMENT_FORM + "//input[@id='castka']"; + String TO_ACCOUNT_CURRENCY_INPUT = PARENT_ELEMENT_FORM + "//select[@id='mena']"; + String CHARGE_SELECT = PARENT_ELEMENT_FORM + "//select[@id='vylohy']"; + String TO_ACCOUNT_NUMBER_INPUT = PARENT_ELEMENT_FORM + "//input[@name='partnerAccountNumber2']"; + String TO_SEPA_ACCOUNT_NUMBER_INPUT = PARENT_ELEMENT_FORM + "//input[@name='partnerAccountNumber5']"; + String TO_MMB_ACCOUNT_NUMBER_INPUT = PARENT_ELEMENT_FORM + "//input[@name='partnerAccountNumberFPOT2']"; + String RECIPIENT_NAME_INPUT = PARENT_ELEMENT_FORM + "//input[@name='prijemce']"; + String RECIPIENT_ADDRESS_INPUT = PARENT_ELEMENT_FORM + "//input[@name='prijemceJmeno']"; + String RECIPIENT_CITY_INPUT = PARENT_ELEMENT_FORM + "//input[@name='prijemceStat']"; + String NOTE_AREA = PARENT_ELEMENT_FORM + "//textarea[@id='fpo.avizo']"; + String CHECK_RECIPIENTS_ACCOUNT = "//img[@alt='Ověřit účet příjemce']"; + String CONTINUE_BUTTON = PARENT_ELEMENT_FORM + "//img[contains(@src, 'pokracovat_b.gif')]"; + String LOADER_DIV = "//div[@class='busyLoader' and @style='display: block;']"; + + @Click(SEPA_PAYMENT_SELECT) + ForeignPaymentOderCreatePage clickSEPAPayment(); + + @Click(FOREIGN_CURRENCY_ORDER_BETWEEN_OWN_ACCOUNTS) + ForeignPaymentOderCreatePage clickForeignPaymentBetweenOwnPayment(); + + @Click(FOREIGN_CURRENCY_ORDER_BETWEEN_MMB_ACCOUNTS) + ForeignPaymentOderCreatePage clickForeignPaymentBetweenMMBAccountsPayment(); + + @Click(FROM_ACCOUNT_SELECT) + ForeignPaymentOderCreatePage clickFromAccountSelect(); + + @Click(FROM_FIRST_ACCOUNT_SELECT) + ForeignPaymentOderCreatePage clickFromFirstAccountSelect(); + + @Click(TO_OWN_SECOND_ACCOUNT_SELECT) + ForeignPaymentOderCreatePage clickToOwnSecondAccountSelect(); + + @TypeInto(AMOUNT_INPUT) + ForeignPaymentOderCreatePage fillAmount(String amount); + + @Select(TO_ACCOUNT_CURRENCY_INPUT) + ForeignPaymentOderCreatePage clickCurrencySelect(String currency); + + @Select(CHARGE_SELECT) + ForeignPaymentOderCreatePage clickChargeSelect(String charge); + + @TypeInto(TO_ACCOUNT_NUMBER_INPUT) + ForeignPaymentOderCreatePage fillToAccountNumber(String toAccountNumber); + + @TypeInto(TO_SEPA_ACCOUNT_NUMBER_INPUT) + ForeignPaymentOderCreatePage fillToSEPAAccountNumber(String toAccountNumber); + + @TypeInto(TO_MMB_ACCOUNT_NUMBER_INPUT) + ForeignPaymentOderCreatePage fillToMMBAccountNumber(String toAccountNumber); + + @TypeInto(RECIPIENT_NAME_INPUT) + ForeignPaymentOderCreatePage fillRecipientName(String recipientName); + + @TypeInto(RECIPIENT_ADDRESS_INPUT) + ForeignPaymentOderCreatePage fillRecipientAddress(String recipientAddress); + + @TypeInto(RECIPIENT_CITY_INPUT) + ForeignPaymentOderCreatePage fillRecipientCity(String recipientCity); + + @TypeInto(NOTE_AREA) + ForeignPaymentOderCreatePage fillNote(String recipientBankName); + + @Click(value = CHECK_RECIPIENTS_ACCOUNT, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + ForeignPaymentOderCreatePage clickCheckRecipientsAccButton(); + + @Click(CONTINUE_BUTTON) + ForeignPaymentOrderAuthorizePage clickContinueButton(); +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/payment/foreign/ForeignPaymentOrderAuthorizePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/foreign/ForeignPaymentOrderAuthorizePage.java new file mode 100644 index 0000000..1f6dfba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/foreign/ForeignPaymentOrderAuthorizePage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ib.payment.foreign; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface ForeignPaymentOrderAuthorizePage extends IbPageFlow, MainMenu, AccountsAndTransactionsSubmenu { + + String SIGN_BUTTON = "//a[@id='sendToSign']"; + String SEND_BUTTON = "//a[@id='sendBtn']"; + String SMS_CODE_IPUT = "//input[@id='SMSCode']"; + + @Click(SIGN_BUTTON) + ForeignPaymentOrderAuthorizePage clickSign(); + + @TypeInto(SMS_CODE_IPUT) + ForeignPaymentOrderAuthorizePage typeSmsCode(String smsCode); + + @Click(SEND_BUTTON) + ForeignPaymentOrderConfirmationPage clickSend(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/payment/foreign/ForeignPaymentOrderConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/foreign/ForeignPaymentOrderConfirmationPage.java new file mode 100644 index 0000000..424a6da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/payment/foreign/ForeignPaymentOrderConfirmationPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.payment.foreign; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.AccountsAndTransactionsSubmenu; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.payment.foreign.ForeignPaymentOrderConfirmationPage.LIST_PAYMENT_ORDERS_BUTTON; + +@Wait(value = LIST_PAYMENT_ORDERS_BUTTON) +public interface ForeignPaymentOrderConfirmationPage extends IbPageFlow, MainMenu, AccountsAndTransactionsSubmenu { + + String LIST_PAYMENT_ORDERS_BUTTON = "//img[contains(@src, 'prehled_prikazu')]"; + + @Click(LIST_PAYMENT_ORDERS_BUTTON) + ForeignPaymentOrderConfirmationPage clickListPaymentOrders(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/PasswordAndChannelManagementPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/PasswordAndChannelManagementPage.java new file mode 100644 index 0000000..ef7142d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/PasswordAndChannelManagementPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ib.settings.ib; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.settings.ib.limit.IbChangeLimitPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Clicks; +import cz.moneta.test.harness.support.web.GetElementContent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.ib.PasswordAndChannelManagementPage.HEADER_TEXT_CHANNEL_TEXT; + +@Wait(HEADER_TEXT_CHANNEL_TEXT) +public interface PasswordAndChannelManagementPage extends IbPageFlow { + + String HEADER_TEXT_CHANNEL_TEXT = "//img[@alt='Správa kanálů přímého bankovnictví']"; + String IN_WITH_MOBILE_KEY = "//td[contains(text(), 'Internet Banka s mobilním klíčem')]//preceding::input[@id = 'productIdRadio']"; + String CHANGE_LIMIT_BTN = "//div[@id = 'changeLimitBtn']//img"; + String ACTUAL_DAILY_LIMIT = "//td[contains(text(), 'Internet Banka s mobilním klíčem')]//ancestor::tr[@class = 'listBodyOdd']//td[contains(text(), 'Kč')]"; + + @GetElementContent(ACTUAL_DAILY_LIMIT) + String getActualLimit(); + + @Clicks(value = { + @Click(IN_WITH_MOBILE_KEY), + @Click(CHANGE_LIMIT_BTN)}) + IbChangeLimitPage changeLimit(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/SettingsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/SettingsPage.java new file mode 100644 index 0000000..c605b68 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/SettingsPage.java @@ -0,0 +1,8 @@ +package cz.moneta.test.dsl.ib.settings.ib; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; + +public interface SettingsPage extends IbPageFlow, MainMenu, SettingsVerticalMenu { + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/SettingsVerticalMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/SettingsVerticalMenu.java new file mode 100644 index 0000000..9765972 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/SettingsVerticalMenu.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.ib.settings.ib; + +import cz.moneta.test.dsl.ib.settings.ib.contactInformation.IbContactInformationPage; +import cz.moneta.test.dsl.ib.settings.ib.ediponents.DisponentsOverview; +import cz.moneta.test.dsl.ib.settings.smartbanka.SmartBankingPage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu.MENU_PARENT; +import static cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu.SMART_BANKA_LINK; + +@Wait({MENU_PARENT, SMART_BANKA_LINK}) +public interface SettingsVerticalMenu extends Builder { + + String MENU_PARENT = "//ul[@id = 'navList']"; + String PASSWORD_AND_CHANNEL_MANAGEMENT = "//a[text()='Změna hesla a správa kanálů']"; + String SMART_BANKA_LINK = "//a[text()='Smart Banka']"; + String CONTACT_INFORMATION = "//a[text()='Kontaktní informace']"; + String SMART_BANKA_ACCEPT = "//*[@id=\"smartBankAccept\"]"; + String CONTINUE_LINK = "//img[@alt='Pokračovat']"; + String EDIPONENTS_ADMINISTRATION = "//a[text()='Správa eDisponentů']"; + + @Click(SMART_BANKA_LINK) + SmartBankingPage selectSmartBanka(); + + @Click(SMART_BANKA_ACCEPT) + SettingsPage acceptSmartBankaTermsAndConditions(); + + @Click(CONTINUE_LINK) + SettingsPage clickContinue(); + + @Click(PASSWORD_AND_CHANNEL_MANAGEMENT) + PasswordAndChannelManagementPage passwordAndChannelManagement(); + + @Wait(CONTACT_INFORMATION) + @Click(value = CONTACT_INFORMATION, jsClick = true) + IbContactInformationPage contactInformation(); + + @Click(EDIPONENTS_ADMINISTRATION) + DisponentsOverview clickToEdisponentsAdministration(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbChangeContactDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbChangeContactDataPage.java new file mode 100644 index 0000000..083492a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbChangeContactDataPage.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.ib.settings.ib.contactInformation; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ib.settings.ib.contactInformation.IbChangeContactDataPage.CHANGE_INPUTS_TABLE; + +@Wait(value = {CHANGE_INPUTS_TABLE}, by = Lookup.ID) +public interface IbChangeContactDataPage extends WebFlow { + String CHANGE_INPUTS_TABLE = "KIN801_S002_X002"; + + String FIRST_NAME = "KIN801_S002_E001"; + String LAST_NAME = "KIN801_S002_E002"; + String STREET = "KIN801_S002_E003"; + String DESCRIPTIVE_NUMBER = "KIN801_S002_E004"; + String TOWN = "KIN801_S002_E006"; + String POSTAL_CODE = "KIN801_S002_E007"; + String COUNTRY = "KIN801_S002_E008"; + String PHONE_NUMBER = "KIN801_S002_E010"; + String MOBILE_NUMBER = "KIN801_S002_E012"; + String EMAIL = "KIN801_S002_E013"; + + String CONTINUE_BUTTON = "KIN801_S002_P003"; + + @Wait(value = STREET, by = Lookup.ID) + @TypeInto(value = STREET, by = Lookup.ID, clear = true) + IbChangeContactDataPage setStreet(String street); + + @Wait(value = MOBILE_NUMBER, by = Lookup.ID) + @TypeInto(value = MOBILE_NUMBER, by = Lookup.ID, clear = true) + IbChangeContactDataPage setMobileNumber(String mobileNumber); + + @Wait(value = CONTINUE_BUTTON, by = Lookup.ID) + @Click(value = CONTINUE_BUTTON, jsClick = true, by = Lookup.ID) + IbSignChangedContactDataPage continueToSignPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbContactInformationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbContactInformationPage.java new file mode 100644 index 0000000..14ca098 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbContactInformationPage.java @@ -0,0 +1,73 @@ +package cz.moneta.test.dsl.ib.settings.ib.contactInformation; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.SwitchToFrame; +import cz.moneta.test.harness.support.web.Wait; + +public interface IbContactInformationPage extends IbPageFlow, StoreAccessor { + String PERMANENT_ADDRESS_INFORMATION_TABLE = "KIN801_S001_X002"; + String FRAME = "UFO"; + + //Kontaktni adresa + String CONTACT_ADDRESS_INFORMATION_TABLE = "KIN801_S001_X003"; + String FIRST_NAME = "KIN801_S001_L023"; + String SECOND_NAME = "KIN801_S001_L044"; + String STREET = "KIN801_S001_L024"; + String POSTAL_CODE = "KIN801_S001_L025"; + String TOWN = "KIN801_S001_L042"; + String COUNTRY_CODE = "KIN801_S001_L026"; + String MOBILE_NUMBER = "KIN801_S001_L031"; + String EMAIL = "KIN801_S001_L032"; + String CHANGE_CONTACTS_BUTTON = "KIN801_S001_P005"; + + String CHANGED_DATA_TEXT = "KIN801_S001_L040"; + + @SwitchToFrame(value = FRAME, by = Lookup.ID) + @Wait(value = {PERMANENT_ADDRESS_INFORMATION_TABLE, CONTACT_ADDRESS_INFORMATION_TABLE}, by = Lookup.ID) + IbContactInformationPage switchToFrame(); + + @Wait(value = FIRST_NAME, by = Lookup.ID) + @CheckElementContent(value = FIRST_NAME, by = Lookup.ID) + IbContactInformationPage checkFirstName(String firstName); + + @Wait(value = SECOND_NAME, by = Lookup.ID) + @CheckElementContent(value = SECOND_NAME, by = Lookup.ID) + IbContactInformationPage checkSecondName(String secondName); + + @Wait(value = STREET, by = Lookup.ID) + @CheckElementContent(value = STREET, by = Lookup.ID) + IbContactInformationPage checkStreet(String street); + + @Wait(value = POSTAL_CODE, by = Lookup.ID) + @CheckElementContent(value = POSTAL_CODE, by = Lookup.ID) + IbContactInformationPage checkPostalCode(String postalCode); + + @Wait(value = TOWN, by = Lookup.ID) + @CheckElementContent(value = TOWN, by = Lookup.ID) + IbContactInformationPage checkTown(String town); + + @Wait(value = COUNTRY_CODE, by = Lookup.ID) + @CheckElementContent(value = COUNTRY_CODE, by = Lookup.ID) + IbContactInformationPage checkCountryCode(String countryCode); + + @Wait(value = MOBILE_NUMBER, by = Lookup.ID) + @CheckElementContent(value = MOBILE_NUMBER, by = Lookup.ID) + IbContactInformationPage checkMobileNumber(String mobileNumber); + + @Wait(value = EMAIL, by = Lookup.ID) + @CheckElementContent(value = EMAIL, by = Lookup.ID) + IbContactInformationPage checkEmail(String email); + + @Wait(value = CHANGE_CONTACTS_BUTTON, by = Lookup.ID) + @Click(value = CHANGE_CONTACTS_BUTTON,jsClick = true, by = Lookup.ID) + IbChangeContactDataPage changeContactData(); + + @Wait(value = CHANGED_DATA_TEXT, by = Lookup.ID) + @CheckElementContent(value = CHANGED_DATA_TEXT, by = Lookup.ID) + IbContactInformationPage checkChangedDataText(String message); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbSignChangedContactDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbSignChangedContactDataPage.java new file mode 100644 index 0000000..e77d4da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbSignChangedContactDataPage.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.ib.settings.ib.contactInformation; + +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ib.settings.ib.contactInformation.IbSignChangedContactDataPage.DATA_TABLE; + +@Wait(value = DATA_TABLE, by = Lookup.ID) +public interface IbSignChangedContactDataPage extends WebFlow { + String DATA_TABLE = "KIN801_S003_X002"; + + String FIRST_NAME = "KIN801_S003_L013"; + String LAST_NAME = "KIN801_S003_L016"; + String STREET = "KIN801_S003_L017"; + String DESCRIPTIVE_NUMBER = "KIN801_S003_L018"; + String CITY = "KIN801_S003_L020"; + String POSTAL_CODE = "KIN801_S003_L021"; + String MOBILE_NUMBER = "KIN801_S003_L026"; + String EMAIL = "KIN801_S003_L027"; + + String MOBILE_KEY_INPUT = "KIN801_S003_E001"; + String SEND_BUTTON = "KIN801_S003_P004"; + + @Wait(value = FIRST_NAME, by = Lookup.ID) + @CheckElementContent(value = FIRST_NAME, by = Lookup.ID) + IbSignChangedContactDataPage checkFirstName(String firstName); + + @Wait(value = LAST_NAME, by = Lookup.ID) + @CheckElementContent(value = LAST_NAME, by = Lookup.ID) + IbSignChangedContactDataPage checkLastName(String lastName); + + @Wait(value = STREET, by = Lookup.ID) + @CheckElementContent(value = STREET, by = Lookup.ID) + IbSignChangedContactDataPage checkStreet(String street); + + @Wait(value = DESCRIPTIVE_NUMBER, by = Lookup.ID) + @CheckElementContent(value = DESCRIPTIVE_NUMBER, by = Lookup.ID) + IbSignChangedContactDataPage checkDescriptiveNumber(String descriptiveNumber); + + @Wait(value = CITY, by = Lookup.ID) + @CheckElementContent(value = CITY, by = Lookup.ID) + IbSignChangedContactDataPage checkCity(String city); + + @Wait(value = POSTAL_CODE, by = Lookup.ID) + @CheckElementContent(value = POSTAL_CODE, by = Lookup.ID) + IbSignChangedContactDataPage checkPostalCode(String postalCode); + + @Wait(value = MOBILE_NUMBER, by = Lookup.ID) + @CheckElementContent(value = MOBILE_NUMBER, by = Lookup.ID) + IbSignChangedContactDataPage checkMobileNumber(String mobileNumber); + + @Wait(value = EMAIL, by = Lookup.ID) + @CheckElementContent(value = EMAIL, by = Lookup.ID) + IbSignChangedContactDataPage checkEmail(String email); + + @Wait(value = {MOBILE_KEY_INPUT, SEND_BUTTON}, by = Lookup.ID) + @TypeInto(value = MOBILE_KEY_INPUT, by = Lookup.ID) + @Click(value = SEND_BUTTON, by = Lookup.ID) + IbSignedOfChangeContactDataPage typeMobileKeyAndSendRequest(String mobileKey); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbSignedOfChangeContactDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbSignedOfChangeContactDataPage.java new file mode 100644 index 0000000..ab71788 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/contactInformation/IbSignedOfChangeContactDataPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ib.settings.ib.contactInformation; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ib.settings.ib.contactInformation.IbSignedOfChangeContactDataPage.WAITING_HEADER_TEXT; + +@Wait(WAITING_HEADER_TEXT) +public interface IbSignedOfChangeContactDataPage extends WebFlow { + String WAITING_HEADER_TEXT = "//div[@id = 'KIN801_S004_L002' and contains(text(), 'Požadavek na změnu kontaktní adresy byl úspěšně zpracován a bude vyřízen během následujících 24 hodin')]"; + + String OVERVIEW_CONTACT_INFORMATION = "KIN801_S004_P001"; + + @Wait(value = OVERVIEW_CONTACT_INFORMATION, by = Lookup.ID) + @Click(value = OVERVIEW_CONTACT_INFORMATION, by = Lookup.ID) + IbContactInformationPage overviewContactInformation(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/CheckSetDiponentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/CheckSetDiponentPage.java new file mode 100644 index 0000000..2755c7d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/CheckSetDiponentPage.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.ib.settings.ib.ediponents; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.CheckSetDiponentPage.CHECK_SET_DISPONENT_TITLE; +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.CheckSetDiponentPage.SET_ACTIVE_DISPONENT_STEP_2; + +@Waits({ + @Wait(CHECK_SET_DISPONENT_TITLE), + @Wait(SET_ACTIVE_DISPONENT_STEP_2)}) +public interface CheckSetDiponentPage extends IbPageFlow, MainMenu, SettingsVerticalMenu { + String CHECK_SET_DISPONENT_TITLE = "//img[@alt='Nastavení disponenta']"; + String SET_ACTIVE_DISPONENT_STEP_2 = "//img[@src='images_new/top_step2.gif']"; + String SET_PAYMENTS_LIMIT = "//td[text()='Platební limity']//following::input[@value='%s']"; + String SET_RIGHTS_FOR_ACCOUNTS = "//td[text()='Práva pro účty']//following::label[contains(text(),'%s')]"; + String MOBILE_KEY_INPUT = "//td[contains(text(),'Mobilní klíč')]/following::input[@id='SMSCode']"; + String SIGN_SET_ACTIVE_DISPONENT_BUTTON = "//a[@id='sendBtn' and contains(text(),'PODEPSAT')]"; + + @CheckElementPresent(value = SET_RIGHTS_FOR_ACCOUNTS, isStringDynamicXpath = true) + CheckSetDiponentPage checkSetAccountName(String setAccountName); + + @CheckElementPresent(value = SET_PAYMENTS_LIMIT, isStringDynamicXpath = true) + CheckSetDiponentPage checkPaymentLimit(String paymentLimit); + + @TypeInto(MOBILE_KEY_INPUT) + CheckSetDiponentPage fillInMobileKey(String mobileKey); + + @Click(SIGN_SET_ACTIVE_DISPONENT_BUTTON) + ConfirmSetDiponentPage clickSign(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/ConfirmSetDiponentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/ConfirmSetDiponentPage.java new file mode 100644 index 0000000..e3dc804 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/ConfirmSetDiponentPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ib.settings.ib.ediponents; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.Waits; + +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.ConfirmSetDiponentPage.*; + +@Waits({ + @Wait(CONFIRM_SET_DISPONENT_TITLE), + @Wait(SET_ACTIVE_DISPONENT_STEP_3), + @Wait(REQUEST_SENT)}) +public interface ConfirmSetDiponentPage extends IbPageFlow, MainMenu, SettingsVerticalMenu { + String CONFIRM_SET_DISPONENT_TITLE = "//img[@alt='Nastavení disponenta']"; + String SET_ACTIVE_DISPONENT_STEP_3 = "//img[@src='images_new/top_step3.gif']"; + String OVERVIEW_EDISPONENTS_BUTTON = "//img[@src='images_new/prehled_disponentu_wb.gif']"; + String REQUEST_SENT = "//b[contains(text(),'Požadavek na nastavení disponenta byl úspěšně odeslán.')]"; + + @Click(OVERVIEW_EDISPONENTS_BUTTON) + DisponentsOverview clickOverviewDisponents(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/DetailDisponentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/DetailDisponentPage.java new file mode 100644 index 0000000..06ed1fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/DetailDisponentPage.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.ib.settings.ib.ediponents; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import org.junit.Assert; +import org.openqa.selenium.WebElement; + +import java.util.List; + +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.DetailDisponentPage.DETAIL_DISPONENTS_TITLE; + +@Wait(DETAIL_DISPONENTS_TITLE) +public interface DetailDisponentPage extends IbPageFlow, MainMenu, SettingsVerticalMenu, StoreAccessor { + String DETAIL_DISPONENTS_TITLE = "//img[@alt='Detail disponenta']"; + String RIGHTS_FOR_ACCOUNTS = "//td[text()='Práva pro účty']//following::label[contains(text(),'%s')]/input[@type='checkbox']"; + String CHECKBOX_PAGE = "//td[text()='Práva pro účty']//following::input"; + String RIGHTS_ACCOUNTS = "//td[text()='Práva pro účty']//following::input[@checked='true']/parent::td"; + + @CustomAction + default DetailDisponentPage checkRightsForAccountAndSmartBank(String account) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + List listElements = ibEndpoint.findAndGetListOfElements(RIGHTS_ACCOUNTS, Lookup.XPATH); + boolean isAccountMatched = listElements.stream() + .anyMatch(s -> s.getText().matches("(.*)" + account + "(.*)")); + Assert.assertTrue("Disponent not contains expected product or contains another products: Numbers of product " + listElements.size() + " and expected product " + account + " is " + isAccountMatched, listElements.size() == 2 && isAccountMatched); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/DisponentsOverview.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/DisponentsOverview.java new file mode 100644 index 0000000..a77ba15 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/DisponentsOverview.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.ib.settings.ib.ediponents; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.dsl.ib.settings.ib.ediponents.activate.RequestActivateDisponentPage; +import cz.moneta.test.dsl.ib.settings.ib.ediponents.deactivate.RequestDeactivateDiponentPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.StoreElementContent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.DisponentsOverview.DISPONENTS_OVERVIEW_TITLE; + +@Wait(DISPONENTS_OVERVIEW_TITLE) +public interface DisponentsOverview extends IbPageFlow, MainMenu, SettingsVerticalMenu { + String DISPONENTS_OVERVIEW_TITLE = "//img[@alt='Přehled disponentů']"; + String CHECK_BOX = "//input[@id='productIdRadio' and @value='%s']"; + String CHANGE_SETTING_BUTTON = "//img[@alt='Změnit nastavení']"; + String DETAIL_BUTTON = "//input[@value='%s']/ancestor::td[@class='listItem']/following-sibling::td/input[@src='images_new/arrow_blue.gif']"; + String DISPONENT_NAME = "//input[@id='productIdRadio' and @value='%s']/parent::td/following-sibling::td"; + String ACTIVATE_EDISPONENT_BUTTON = "//img[@alt='Aktivovat disponenta']"; + String DEACTIVATE_EDISPONENT_BUTTON = "//img[@alt='Deaktivovat disponenta']"; + String ACTIVE_DISPONENT_NAME_KEY = "ACTIVE_DISPONENT_NAME"; + String PASIVE_DISPONENT_NAME_KEY = "PASIVE_DISPONENT_NAME"; + + @Click(value = CHECK_BOX, isStringDynamicXpath = true) + DisponentsOverview chooseDisponent(String username); + + @Click(value = DETAIL_BUTTON, isStringDynamicXpath = true) + DetailDisponentPage clickToDetail(String username); + + @Click(value = CHANGE_SETTING_BUTTON) + RequestSetDiponentPage clickToChangeSettings(); + + @StoreElementContent(storeKey = ACTIVE_DISPONENT_NAME_KEY, value = DISPONENT_NAME, isStringDynamicXpath = true) + DisponentsOverview getActiveDisponentName(String activeDispoUserName); + + @StoreElementContent(storeKey = PASIVE_DISPONENT_NAME_KEY, value = DISPONENT_NAME, isStringDynamicXpath = true) + DisponentsOverview getPasiveDisponentName(String pasiveDispoUserName); + + @Click(DEACTIVATE_EDISPONENT_BUTTON) + RequestDeactivateDiponentPage clickDeactiveDisponentButton(); + + @Click(ACTIVATE_EDISPONENT_BUTTON) + RequestActivateDisponentPage clickActivateDisponentButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/RequestSetDiponentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/RequestSetDiponentPage.java new file mode 100644 index 0000000..489c46a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/RequestSetDiponentPage.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.ib.settings.ib.ediponents; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import java.util.List; + +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.RequestSetDiponentPage.REQUEST_SET_DISPONENT_TITLE; +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.RequestSetDiponentPage.SET_ACTIVE_DISPONENT_STEP_1; + +@Waits({ + @Wait(REQUEST_SET_DISPONENT_TITLE), + @Wait(SET_ACTIVE_DISPONENT_STEP_1)}) +public interface RequestSetDiponentPage extends IbPageFlow, MainMenu, SettingsVerticalMenu { + String REQUEST_SET_DISPONENT_TITLE = "//img[@alt='Nastavení disponenta']"; + String SET_ACTIVE_DISPONENT_STEP_1 = "//img[@src='images_new/top_step1.gif']"; + String RIGHTS_FOR_ACCOUNTS_CHECKBOX = "//td[text()='Práva pro účty']//following::label[contains(text(),'%s')]/input[@type='checkbox']"; + String USE_SMART_BANK = "//td[text()='Využívání Smart Banky']//following::label[contains(text(),'Povolení používání Smart Banky')]/input[@type='checkbox']"; + String CONTINUE_BUTTON_REQUEST_SET_DISPONENT = "//img[@alt='Pokračovat']"; + String PAYMENTS_LIMITS_CHECKBOX = "//td[text()='Platební limity']/following::label[contains(text(),'Nastavit denní limit')]/input[@type='checkbox']"; + String LIMIT_INPUT = "//td[text()='Platební limity']/following::input[@id='limit']"; + + @Click(value = RIGHTS_FOR_ACCOUNTS_CHECKBOX, isStringDynamicXpath = true) + RequestSetDiponentPage rightsForAccountsClickToCheckbox(String nameOfItem); + + @Click(USE_SMART_BANK) + RequestSetDiponentPage allowedToUseSmartBankClickCheckbox(); + + @Click(CONTINUE_BUTTON_REQUEST_SET_DISPONENT) + RequestSetDiponentPage clickToContinueButtonWithoutSelection(); + + @Click(CONTINUE_BUTTON_REQUEST_SET_DISPONENT) + CheckSetDiponentPage clickToContinueButton(); + + @AcceptAlert(waitSecondsForAlert = 10, expectedAlertText = "Chyba - minimálně jeden účet musí být vybrán") + RequestSetDiponentPage accpetAlertWindow(); + + @Click(PAYMENTS_LIMITS_CHECKBOX) + RequestSetDiponentPage clickCheckboxPaymentsLimits(); + + @TypeInto(value = LIMIT_INPUT, clear = true) + RequestSetDiponentPage typeLimit(String limit); + + @CustomAction + default RequestSetDiponentPage rightsForAccountsClicksToCheckboxes(List namesOfItems) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + namesOfItems.forEach(s -> ibEndpoint.click(() -> String.format(RIGHTS_FOR_ACCOUNTS_CHECKBOX, s))); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/activate/CheckActivateDisponentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/activate/CheckActivateDisponentPage.java new file mode 100644 index 0000000..750f3c5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/activate/CheckActivateDisponentPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ib.settings.ib.ediponents.activate; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.activate.CheckActivateDisponentPage.ACTIVATE_DISPONENT_STEP_2; +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.activate.CheckActivateDisponentPage.CHECK_ACTIVATE_DISPONENT_TITLE; + +@Wait({CHECK_ACTIVATE_DISPONENT_TITLE, ACTIVATE_DISPONENT_STEP_2}) +public interface CheckActivateDisponentPage extends IbPageFlow, MainMenu, SettingsVerticalMenu { + String CHECK_ACTIVATE_DISPONENT_TITLE = "//img[@alt='Aktivace disponenta']"; + String ACTIVATE_DISPONENT_STEP_2 = "//img[@src='images_new/top_step2.gif']"; + String NEW_DISPONENT_STATUS = "//td[contains(text(),'Nový stav disponenta')]/following-sibling::td[contains(text(),'Aktivní')]"; + String DEACTIVATE_SIGN_BUTTON = "//a[@id='sendBtn' and contains(text(),'PODEPSAT')]"; + + @CheckElementPresent(NEW_DISPONENT_STATUS) + @Click(DEACTIVATE_SIGN_BUTTON) + ConfirmActivateDisponentPage checkActiveStatusAndSign(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/activate/ConfirmActivateDisponentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/activate/ConfirmActivateDisponentPage.java new file mode 100644 index 0000000..2c9b7b7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/activate/ConfirmActivateDisponentPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ib.settings.ib.ediponents.activate; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.dsl.ib.settings.ib.ediponents.DisponentsOverview; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.activate.ConfirmActivateDisponentPage.ACTIVATE_DISPONENT_STEP_3; +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.activate.ConfirmActivateDisponentPage.CONFIRM_ACTIVATE_DISPONENT_TITLE; + +@Wait({CONFIRM_ACTIVATE_DISPONENT_TITLE, ACTIVATE_DISPONENT_STEP_3}) +public interface ConfirmActivateDisponentPage extends IbPageFlow, MainMenu, SettingsVerticalMenu { + String CONFIRM_ACTIVATE_DISPONENT_TITLE = "//img[@alt='Aktivace disponenta']"; + String ACTIVATE_DISPONENT_STEP_3 = "//img[@src='images_new/top_step3.gif']"; + String OVERVIEW_EDISPONENTS_BUTTON = "//img[@src='images_new/prehled_disponentu_wb.gif']"; + + @Click(OVERVIEW_EDISPONENTS_BUTTON) + DisponentsOverview clickOverviewDisponents(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/activate/RequestActivateDisponentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/activate/RequestActivateDisponentPage.java new file mode 100644 index 0000000..2e48d0c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/activate/RequestActivateDisponentPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ib.settings.ib.ediponents.activate; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.activate.RequestActivateDisponentPage.ACTIVATE_DISPONENT_STEP_1; +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.activate.RequestActivateDisponentPage.REQUEST_ACTIVATE_TITLE; + +@Wait({REQUEST_ACTIVATE_TITLE, ACTIVATE_DISPONENT_STEP_1}) +public interface RequestActivateDisponentPage extends IbPageFlow, MainMenu, SettingsVerticalMenu { + String REQUEST_ACTIVATE_TITLE = "//img[@alt='Aktivace disponenta']"; + String ACTIVATE_DISPONENT_STEP_1 = "//img[@src='images_new/top_step1.gif']"; + String NEW_DISPONENT_ACTIVATE_STATUS = "//td[contains(text(),'Nový stav disponenta')]/following-sibling::td[contains(text(),'Aktivní')]"; + String ACTIVATE_CONTINUE_BUTTON = "//img[@alt='Pokračovat']"; + + @CheckElementPresent(NEW_DISPONENT_ACTIVATE_STATUS) + @Click(value = ACTIVATE_CONTINUE_BUTTON) + CheckActivateDisponentPage checkActiveStatusAndClickToContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/deactivate/CheckDeactivateDisponentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/deactivate/CheckDeactivateDisponentPage.java new file mode 100644 index 0000000..4c93243 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/deactivate/CheckDeactivateDisponentPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ib.settings.ib.ediponents.deactivate; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.deactivate.CheckDeactivateDisponentPage.CHECK_DEACTIVATE_DISPONENT_TITLE; +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.deactivate.CheckDeactivateDisponentPage.DEACTIVATE_DISPONENT_STEP_2; + +@Wait({CHECK_DEACTIVATE_DISPONENT_TITLE, DEACTIVATE_DISPONENT_STEP_2}) +public interface CheckDeactivateDisponentPage extends IbPageFlow, MainMenu, SettingsVerticalMenu { + String CHECK_DEACTIVATE_DISPONENT_TITLE = "//img[@alt='Deativace disponenta']"; + String DEACTIVATE_DISPONENT_STEP_2 = "//img[@src='images_new/top_step2.gif']"; + String NEW_DISPONENT_STATUS = "//td[contains(text(),'Nový stav disponenta')]/following-sibling::td[contains(text(),'Neaktivní')]"; + String DEACTIVATE_SIGN_BUTTON = "//a[@id='sendBtn' and contains(text(),'PODEPSAT')]"; + + @CheckElementPresent(NEW_DISPONENT_STATUS) + @Click(DEACTIVATE_SIGN_BUTTON) + ConfirmDeactivateDisponentPage checkDeactiveStatusAndSign(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/deactivate/ConfirmDeactivateDisponentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/deactivate/ConfirmDeactivateDisponentPage.java new file mode 100644 index 0000000..bfe3234 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/deactivate/ConfirmDeactivateDisponentPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ib.settings.ib.ediponents.deactivate; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.dsl.ib.settings.ib.ediponents.DisponentsOverview; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.deactivate.ConfirmDeactivateDisponentPage.*; + +@Wait({CONFIRM_DEACTIVATE_DISPONENT_TITLE, DEACTIVATE_DISPONENT_STEP_3}) +public interface ConfirmDeactivateDisponentPage extends IbPageFlow, MainMenu, SettingsVerticalMenu { + String CONFIRM_DEACTIVATE_DISPONENT_TITLE = "//img[@alt='Deativace disponenta']"; + String DEACTIVATE_DISPONENT_STEP_3 = "//img[@src='images_new/top_step3.gif']"; + String OVERVIEW_EDISPONENTS_BUTTON = "//img[@src='images_new/prehled_disponentu_wb.gif']"; + + @Click(OVERVIEW_EDISPONENTS_BUTTON) + DisponentsOverview clickOverviewDisponents(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/deactivate/RequestDeactivateDiponentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/deactivate/RequestDeactivateDiponentPage.java new file mode 100644 index 0000000..54f86af --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/ediponents/deactivate/RequestDeactivateDiponentPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ib.settings.ib.ediponents.deactivate; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.deactivate.RequestDeactivateDiponentPage.REQUEST_SET_DEACTIVATE_TITLE; +import static cz.moneta.test.dsl.ib.settings.ib.ediponents.deactivate.RequestDeactivateDiponentPage.SET_DEACTIVATE_DISPONENT_STEP_1; + +@Wait({REQUEST_SET_DEACTIVATE_TITLE, SET_DEACTIVATE_DISPONENT_STEP_1}) +public interface RequestDeactivateDiponentPage extends IbPageFlow, MainMenu, SettingsVerticalMenu { + String REQUEST_SET_DEACTIVATE_TITLE = "//img[@alt='Deativace disponenta']"; + String SET_DEACTIVATE_DISPONENT_STEP_1 = "//img[@src='images_new/top_step1.gif']"; + String NEW_DISPONENT_STATUS = "//td[contains(text(),'Nový stav disponenta')]/following-sibling::td[contains(text(),'Neaktivní')]"; + String DEACTIVE_CONTINUE_BUTTON = "//img[@alt='Pokračovat']"; + + @CheckElementPresent(NEW_DISPONENT_STATUS) + @Click(value = DEACTIVE_CONTINUE_BUTTON) + CheckDeactivateDisponentPage checkDeactiveStatusAndClickToContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/limit/IbChangeLimitFinalPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/limit/IbChangeLimitFinalPage.java new file mode 100644 index 0000000..3e6155e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/limit/IbChangeLimitFinalPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.settings.ib.limit; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.settings.ib.PasswordAndChannelManagementPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.ib.limit.IbChangeLimitFinalPage.CHANNEL_MANAGEMENT_BTN; +import static cz.moneta.test.dsl.ib.settings.ib.limit.IbChangeLimitFinalPage.SUCCESS_CHANGED_LIMIT_TEXT; + +@Wait({SUCCESS_CHANGED_LIMIT_TEXT, CHANNEL_MANAGEMENT_BTN}) +public interface IbChangeLimitFinalPage extends IbPageFlow { + String SUCCESS_CHANGED_LIMIT_TEXT = "//b[contains(text(), 'Požadavek na změnu limitů byl úspěšně odeslán')]"; + String CHANNEL_MANAGEMENT_BTN = "//img[@alt = 'Správa kanálů']"; + + @Click(CHANNEL_MANAGEMENT_BTN) + PasswordAndChannelManagementPage clickOnchannelManagement(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/limit/IbChangeLimitPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/limit/IbChangeLimitPage.java new file mode 100644 index 0000000..4b1980d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/limit/IbChangeLimitPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ib.settings.ib.limit; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.ib.limit.IbChangeLimitPage.DAILY_LIMIT; +import static cz.moneta.test.dsl.ib.settings.ib.limit.IbChangeLimitPage.WEEKLY_LIMIT; + +@Wait({DAILY_LIMIT, WEEKLY_LIMIT}) +public interface IbChangeLimitPage extends IbPageFlow { + String DAILY_LIMIT = "//input[@id = 'channelLimitDaily']"; + String WEEKLY_LIMIT = "//input[@id = 'channelLimitWeekly']"; + + String CONTINUE_BTN = "//img[@alt = 'Pokračovat']"; + + @TypeInto(DAILY_LIMIT) + IbChangeLimitPage setDailyLimit(int limit); + + @Click(CONTINUE_BTN) + IbConfirmLimitPage continueToConfirmPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/limit/IbConfirmLimitPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/limit/IbConfirmLimitPage.java new file mode 100644 index 0000000..d82f401 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/ib/limit/IbConfirmLimitPage.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.ib.settings.ib.limit; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import org.junit.Assert; + +import static cz.moneta.test.dsl.ib.settings.ib.limit.IbConfirmLimitPage.CHANGE_LIMIT_HEADER; +import static cz.moneta.test.dsl.ib.settings.ib.limit.IbConfirmLimitPage.LIMIT_REDUCTION_LABEL; + +@Wait({CHANGE_LIMIT_HEADER, LIMIT_REDUCTION_LABEL}) +public interface IbConfirmLimitPage extends IbPageFlow, StoreAccessor { + String CHANGE_LIMIT_HEADER = "//table[@id = 'titleLabelTable']"; + String LIMIT_REDUCTION_LABEL = "//td[contains(text(), 'Požadavek')]"; + String LIMIT_VALUE = "//td[contains(text(), 'Denní limit')]//following-sibling::td"; + String MOBILE_KEY = "SMSCode"; + String SIGN_BTN = "sendBtn"; + + @CustomAction + default IbConfirmLimitPage compareLimit(int previousLimit) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + String limitValue = ibEndpoint.getText(LIMIT_VALUE); + Assert.assertEquals("Previous limit is not equal to limit value", String.valueOf(previousLimit), limitValue.replaceAll(" ", "")); + return null; + } + + @TypeInto(value = MOBILE_KEY, by = Lookup.ID) + @Click(value = SIGN_BTN, by = Lookup.ID) + IbChangeLimitFinalPage setMobileKeyAndSign(String smsCode); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/DeviceRegisteredWizard.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/DeviceRegisteredWizard.java new file mode 100644 index 0000000..72e44f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/DeviceRegisteredWizard.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ib.settings.smartbanka; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MobileKeyConfirmation; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.smartbanka.DeviceRegisteredWizard.DEVICE_INFO_TABLE; + +@Wait(value = DEVICE_INFO_TABLE, by = Lookup.XPATH) +public interface DeviceRegisteredWizard extends IbPageFlow, MobileKeyConfirmation { + String DEVICE_INFO_TABLE = "//table[contains(@id, 'smartBankRegistration')]"; + + SuccessRegisteredMobileDevice onSuccessRegisteredMobileDevice(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/DeviceRegistrationWizard.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/DeviceRegistrationWizard.java new file mode 100644 index 0000000..0c085ec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/DeviceRegistrationWizard.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ib.settings.smartbanka; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MobileKeyConfirmation; +import cz.moneta.test.harness.support.web.GetElementContent; + +public interface DeviceRegistrationWizard extends IbPageFlow, MobileKeyConfirmation { + + String DEVICE_REGISTRATION_CODE = "//div[contains(@style,'text-align:')]"; + + @GetElementContent(DEVICE_REGISTRATION_CODE) + String getDeviceRegistrationCode(); + + DeviceRegisteredWizard afterMobileActivation(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/DeviceRemovalWizard.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/DeviceRemovalWizard.java new file mode 100644 index 0000000..d0745b4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/DeviceRemovalWizard.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ib.settings.smartbanka; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MobileKeyConfirmation; +import cz.moneta.test.dsl.ib.settings.ib.SettingsPage; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.harness.support.web.Click; + +public interface DeviceRemovalWizard extends IbPageFlow, SettingsVerticalMenu, MobileKeyConfirmation { + + String CONTINUE_LINK = "//img[@alt='Pokračovat']"; + + @Click(CONTINUE_LINK) + DeviceRemovalWizard confirmRemovalIntent(); + + SettingsPage onSettingsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/SmartBankingPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/SmartBankingPage.java new file mode 100644 index 0000000..c908213 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/SmartBankingPage.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.ib.settings.smartbanka; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.settings.ib.SettingsVerticalMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.endpoints.smartbanka.MobilePlatform; +import cz.moneta.test.harness.support.util.Level; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.settings.smartbanka.SmartBankingPage.TITLE_TEXT; + +@Wait(TITLE_TEXT) +public interface SmartBankingPage extends IbPageFlow, MainMenu, SettingsVerticalMenu { + String TITLE_TEXT = "//h3[text() = 'Správa registrovaných mobilních zařízení']"; + String REGISTER_LINK = "//img[@alt='Registrace zařízení']"; + String UNREGISTER_LINK = "//img[@alt='Odstranit']"; + + String DEVICES_LIST = "//table[contains(@id, 'smartBankList')]/tbody[count(tr[contains(@id, 'a')]) = 3]"; + String DEVICE = "//td[contains(text(), '%s')]//..//input[@id='productIdRadio']"; + + @Click(UNREGISTER_LINK) + DeviceRemovalWizard startDeviceRemoval(); + + @Click(REGISTER_LINK) + DeviceRegistrationWizard startDeviceRegistration(); + + @CustomAction + default SmartBankingPage chooseDevice(StoreAccessor store){ + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + String deviceName = store.getConfig("appium.android.device"); + if (!MobilePlatform.isAndroid(store)){ + deviceName = store.getConfig("appium.ios.device"); + } + String path = String.format(DEVICE, deviceName); + if (endpoint.isElementPresent(path, Lookup.XPATH)){ + endpoint.click(() -> path, Lookup.XPATH); + }else { + log(Level.INFO,"Mobile device " + deviceName + " was not found"); + } + return null; + } + + @CustomAction + default DeviceRegistrationWizard startRegistration(StoreAccessor store, String mobileKey) { + IbEndpoint ibEndpoint = getEndpoint(IbEndpoint.class); + if (ibEndpoint.isElementVisible(5, DEVICES_LIST, Lookup.DEFAULT) && + !ibEndpoint.isElementVisible(10, REGISTER_LINK, Lookup.DEFAULT)) { + return + chooseDevice(store) + .startDeviceRemoval() + .confirmRemovalIntent() + .typeSmsCode(mobileKey) + .validateMobileKey() + .onSettingsPage() + .selectSmartBanka() + .startDeviceRegistration(); + } + return startDeviceRegistration(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/SuccessRegisteredMobileDevice.java b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/SuccessRegisteredMobileDevice.java new file mode 100644 index 0000000..74d3708 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/settings/smartbanka/SuccessRegisteredMobileDevice.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ib.settings.smartbanka; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = SuccessRegisteredMobileDevice.SUCCESS_REGISTERED_TEXT, by = Lookup.XPATH) +public interface SuccessRegisteredMobileDevice extends IbPageFlow { + String SUCCESS_REGISTERED_TEXT = "//div[contains(text(), 'Vaše mobilní zařízení bylo úspěšně zaregistrováno. Gratulujeme.')]"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/tasks/cards/application/IbCardsApplicationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ib/tasks/cards/application/IbCardsApplicationTasks.java new file mode 100644 index 0000000..b59af14 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/tasks/cards/application/IbCardsApplicationTasks.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ib.tasks.cards.application; + +import cz.moneta.test.dsl.ib.cards.application.CardDetailsPage; +import cz.moneta.test.dsl.ib.cards.application.PersonalDetailsPage; + +import java.util.function.Function; + +public class IbCardsApplicationTasks { + + public Function + fillCardDetails(String limit, String dailyPurchaseLimit, String dailyWithdrawsLimit, + String statementType, String activationPassword, String dueDate, String paymentMethod) { + return start -> start.fillCreditLimit(limit) + .selectTravelAndSportOffer() + .fillDailyPurchasesLimit(dailyPurchaseLimit) + .fillDailyWithdrawsLimit(dailyWithdrawsLimit) + .selectStatementType(statementType) + .fillActivationPassword(activationPassword) + .selectDueDate(dueDate) + .selectPaymentMethod(paymentMethod) + .selectWithoutInsuranceOption() + .agreeAndContinue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/utils/IbUtils.java b/tests/src/main/java/cz/moneta/test/dsl/ib/utils/IbUtils.java new file mode 100644 index 0000000..91b9264 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/utils/IbUtils.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ib.utils; + +import cz.moneta.test.dsl.Harness; +import org.junit.Assert; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class IbUtils { + private static final String DATE_FORMAT = "dd.MM.yyyy HH:mm:ss"; + + public static void verifyTransactionStatus(Harness harness, LocalDateTime testExecutionStartTime, String clientID, String operId, Integer secondsToWait) { + LocalDateTime plusFiveMinutesDateTime = testExecutionStartTime.plusMinutes(5); + String fromDateTime = DateTimeFormatter.ofPattern(DATE_FORMAT).format(testExecutionStartTime); + String toDateTime = DateTimeFormatter.ofPattern(DATE_FORMAT).format(plusFiveMinutesDateTime); + String transactionStatus = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientID, operId, "15", fromDateTime, toDateTime, secondsToWait, "60"); + + Assert.assertEquals("Verify that transaction with operID: " + operId + " is in the correct statusID", "60", transactionStatus); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/welcome/LoginToBankModalPage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/welcome/LoginToBankModalPage.java new file mode 100644 index 0000000..0fd8d11 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/welcome/LoginToBankModalPage.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.ib.welcome; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.doidentifikace.ConfirmPageAnotherPerson; +import cz.moneta.test.dsl.ib.doidentifikace.IdentityCardPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.welcome.LoginToBankModalPage.CLOSE_ICON; +import static cz.moneta.test.dsl.ib.welcome.LoginToBankModalPage.MODAL_WINDOW_ID; +import static cz.moneta.test.harness.support.web.Until.VISIBLE; + +@Wait(value = {MODAL_WINDOW_ID, CLOSE_ICON}, until = VISIBLE) +public interface LoginToBankModalPage extends IbPageFlow, StoreAccessor { + String MODAL_WINDOW_ID = "//div[@testid='safety-rules-container']"; + String CLOSE_ICON = "//div[@testid='close-icon']"; + String CLOSE_AND_HIDE_BUTTON = "//span[@testid='close-and-hide-button']"; + String CHECKBOX_PERSON = "//div[@aria-checked]"; + String CONFIRM_BUTTON = "//button[@testid='handle-agree-button']"; + String NEED_HELP_TEXT_SPAN = "//span[contains(text(), 'Potřebujete poradit?')]"; //FIXME + String ANOTHER_PERSON_BUTTON = "//span[contains(text(), 'Jsem někdo jiný')]"; //FIXME + String GO_DASHBOARD_BUTTON = "//span[@testid='go-to-dashboard-button']"; + + @Click(value = CLOSE_ICON, jsClick = true) + @Click(value = CLOSE_AND_HIDE_BUTTON, andWait = @Wait(value = MODAL_WINDOW_ID, until = Until.GONE)) + WelcomePage closeModal(); + + @CustomAction + default IdentityCardPage clickCheckboxAndConfirm() { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.moveToElement(NEED_HELP_TEXT_SPAN); + endpoint.click(() -> CHECKBOX_PERSON); + endpoint.click(() -> CONFIRM_BUTTON); + return null; + } + + @CustomAction + default ConfirmPageAnotherPerson clickAnotherPerson() { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + endpoint.moveToElement(NEED_HELP_TEXT_SPAN); + endpoint.click(() -> ANOTHER_PERSON_BUTTON); + //endpoint.click(() -> GO_DASHBOARD_BUTTON); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/welcome/NonactiveDisponentWelcomePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/welcome/NonactiveDisponentWelcomePage.java new file mode 100644 index 0000000..e0ceb36 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/welcome/NonactiveDisponentWelcomePage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ib.welcome; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ib.welcome.NonactiveDisponentWelcomePage.LOGOUT_BUTTON; +import static cz.moneta.test.dsl.ib.welcome.NonactiveDisponentWelcomePage.NONACTIVE_DISPONENT_HEADER_PAGE; + +@Wait({NONACTIVE_DISPONENT_HEADER_PAGE, LOGOUT_BUTTON}) +public interface NonactiveDisponentWelcomePage extends IbPageFlow { + String NONACTIVE_DISPONENT_HEADER_PAGE = "//p[@class='paragraphHeader']/b[text()='Neaktivní eDisponent']"; + String NONACTIVE_DISPONENT_INFORMATION_TEXT = "//p[@class='paragraphBasic' and contains(text(), 'Litujeme, ale tento eDisponent nebyl doposud aktivován. Z důvodu bezpečnosti je nutné, aby jeho aktivaci provedl ve své Internet Bance nejdříve majitel účtu.')]"; + String LOGOUT_BUTTON = "//img[@alt='Odhlášení']"; + + @CheckElementPresent(NONACTIVE_DISPONENT_INFORMATION_TEXT) + NonactiveDisponentWelcomePage checkInformationTextToNonactiveDisponentPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ib/welcome/WelcomePage.java b/tests/src/main/java/cz/moneta/test/dsl/ib/welcome/WelcomePage.java new file mode 100644 index 0000000..631f4a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ib/welcome/WelcomePage.java @@ -0,0 +1,99 @@ +package cz.moneta.test.dsl.ib.welcome; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.ib.cards.application.CardDetailsOfferBanner; +import cz.moneta.test.dsl.ib.components.MainMenu; +import cz.moneta.test.dsl.ib.components.UserMenu; +import cz.moneta.test.dsl.ib.loan.ProductSelectorPage; +import cz.moneta.test.dsl.ib.loan.creditcard.CCProductConfiguratorPage; +import cz.moneta.test.dsl.ib.settings.ib.SettingsPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.util.Level; +import cz.moneta.test.harness.support.web.*; + +import java.util.concurrent.TimeUnit; + +import static cz.moneta.test.dsl.ib.welcome.WelcomePage.SETTINGS_PAGE_LINK; + +@Wait(value = SETTINGS_PAGE_LINK, waitSecondsForElement = 90) +public interface WelcomePage extends IbPageFlow, MainMenu, CardDetailsOfferBanner, StoreAccessor, UserMenu { + + String WELCOME_PAGE_HOME_IMAGE = "//div[@id='document']//img[contains(@src, 'images_new/home_down')]"; + String VALIDATE_MY_LOGIN_BUTTON = "//span[@testid='open-modal-button']"; + String CAT_BANNER = "//*[@id='x31809652']/div[2]/div[2]/div[4]"; + String COMMERCIAL_LOAN_BANNER = "//div[contains(@class,'salesBanner')]"; + String INTERESTED_IN_COMMERCIAL_LOAN_BUTTON = "//span[contains(@class,'salesStartButton')]"; + String COMMERCIAL_CREDIT_CARD_BANNER = "//div[contains(@class,'salesBanner-multi-creditCard benefit-reward')]"; + String INTERESTED_IN_COMMERCIAL_CARD_BUTTON = "//button[contains(@class,'startSalesProcess')]"; + String BANNER_DIV = "//div[contains(@class,'banner')]"; + String CLOSE_DIV = "//div[@data-event='closeWindow']"; + String OVERLAY_DIV = "//div[@class='curtain']"; + String OVERLAY_INACTIVE_DIV = "//div[contains(@class,'curtain inactive')]"; + String COOKIES_POP_XPATH = "//div[@id='cookiesBar']"; + String COOKIES_BUTTON_XPATH = "//span[@id='acceptButton']"; + String DISPO_CURRENT_ACCOUNT_XPATH = "//td[@class='accName' and contains(text(), 'Běžný účet')]/following-sibling::td[@class='dispoAmount']"; + String DISPO_SAVING_ACCOUNT_XPATH = "//td[@class='accName' and contains(text(), 'Spořicí účet')]/following-sibling::td[@class='dispoAmount']"; + String CURRENT_ACCOUNT_NUMBER = "//td[contains(text(), 'Běžný účet')]"; + String NAME_WELCOME_PAGE = "//img[@class='avatarImg']/following-sibling::span"; + String CURRENT_ACCOUNT_DISPO_KEY = "CURRENT_ACCOUNT_DISPO"; + String SAVING_ACCOUNT_DISPO_KEY = "SAVING_ACCOUNT_DISPO"; + String MY_NAME_KEY = "MY_NAME"; + + //Handling of random displayed banner. We do not test the banner so this solution is feasible. + default void loadPage(WebEndpoint endpoint) { + if (endpoint.isElementPresent(OVERLAY_DIV, Lookup.DEFAULT)) { + endpoint.click(() -> CLOSE_DIV); + endpoint.waitForElementsToLoad(10, Until.GONE, BANNER_DIV); + endpoint.sleep(TimeUnit.MILLISECONDS, 200); + endpoint.waitForElementsToLoad(10, OVERLAY_INACTIVE_DIV); + log(Level.DEBUG, "Banner with AD is displayed and then closed"); + } + } + + @CheckElementPresent(WELCOME_PAGE_HOME_IMAGE) + WelcomePage checkWelcomePageImageIsPresent(); + + @Click(VALIDATE_MY_LOGIN_BUTTON) + LoginToBankModalPage openLoginToBankModal(); + + @Click(CAT_BANNER) + WelcomePage dismissAnnoyingCatBanner(); + + @Click(value = "acceptButton", by = Lookup.ID) + WelcomePage consentToCookies(); + + @Wait(value = SETTINGS_PAGE_LINK, until = Until.VISIBLE) + @Click(SETTINGS_PAGE_LINK) + SettingsPage goToSettings(); + + @CheckElementPresent(COMMERCIAL_LOAN_BANNER) + WelcomePage checkUserHasALoanBanner(); + + @Click(INTERESTED_IN_COMMERCIAL_LOAN_BUTTON) + ProductSelectorPage clickInterestedInLoan(); + + @CheckElementPresent(COMMERCIAL_CREDIT_CARD_BANNER) + WelcomePage checkUserHasACommercialCreditCardBanner(); + + @Click(INTERESTED_IN_COMMERCIAL_CARD_BUTTON) + CCProductConfiguratorPage clickInterestedInCard(); + + @CustomAction + default WelcomePage checkAndConfirmCookies() { + IbEndpoint endpoint = getEndpoint(IbEndpoint.class); + if (endpoint.isElementPresent(COOKIES_POP_XPATH, Lookup.XPATH)) + endpoint.click(() -> COOKIES_BUTTON_XPATH); + return null; + } + + @StoreElementContent(storeKey = SAVING_ACCOUNT_DISPO_KEY, value = DISPO_SAVING_ACCOUNT_XPATH) + WelcomePage getDispoSavingAccount(); + + @StoreElementContent(storeKey = CURRENT_ACCOUNT_DISPO_KEY, value = DISPO_CURRENT_ACCOUNT_XPATH) + WelcomePage getDispoCurrentAccount(); + + @StoreElementContent(storeKey = MY_NAME_KEY, value = NAME_WELCOME_PAGE) + WelcomePage getNameFromWelcomePage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ilods/Ilods.java b/tests/src/main/java/cz/moneta/test/dsl/ilods/Ilods.java new file mode 100644 index 0000000..0019770 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ilods/Ilods.java @@ -0,0 +1,91 @@ +package cz.moneta.test.dsl.ilods; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.ilodsserver.IlodsServerEndpoint; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlApplTp; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlBusProdClass; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlSubType; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlType; + +public class Ilods { + + private final Harness harness; + private IlodsServerEndpoint ilodsEndpoint; + + public Ilods(Harness harness) { + this.harness = harness; + this.ilodsEndpoint = harness.getEndpoint(IlodsServerEndpoint.class); + } + + /** + * Method for test Ilods server connection + * + * @return "OK" when everything is ok, Exception when everything else + */ + public String sendTestRequest() { + return ilodsEndpoint.sendTestRequest(); + } + + /** + * Setting scorecard for entered client + * + * @param scoreCardId ID of required score card + * @param rc Client birth number + * @param ico Client IČ + */ + public void setScore(String scoreCardId, String rc, String ico) { + ilodsEndpoint.setScore(scoreCardId, rc, ico); + } + + /** + * Setting turnovers for entered client + * + * @param accNum Account number + * @param cif Client CIF number + * @param turnoversValue Value of turnovers (same for every month) + * @return error code where 0 is OK, everything else means error + */ + public String setTurnovers(String accNum, String cif, int turnoversValue) { + return ilodsEndpoint.setTurnovers(accNum, cif, turnoversValue); + } + + /** + * Setting turnovers for entered client + * + * @param accNum Account number + * @param cif Client CIF number + * @param turnoversValues Array with values for 12 months + * (ex.: new int[]{1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 11000, 12000}) + * @return error code where 0 is OK, everything else means error + */ + public String setTurnovers(String accNum, String cif, int[] turnoversValues) { + return ilodsEndpoint.setTurnovers(accNum, cif, turnoversValues); + } + + /** + * Setting infolimit for entered client + * + * @param busProdClass Product (choose from IlBusProdClass enum) + * @param ilType Infolimit Type (choose from IlType enum) + * @param ilAmount Infolimit Amount + * @param applTpCode ApplTp (choose from IlApplTp enum) + * @param rcNum Client birth number + * @param icoNum Client IČ + * @return error code where 0 is OK, everything else means error + */ + public String setInfolimit(IlBusProdClass busProdClass, IlType ilType, IlSubType ilSubType, double ilAmount, IlApplTp applTpCode, String rcNum, String icoNum) { + return ilodsEndpoint.setInfolimit(busProdClass, ilType, ilSubType, ilAmount, applTpCode, rcNum, icoNum); + } + + /** + * Setting segment for entered client + * + * @param segmentCode Segment type + * @param segmentationCode Segmentation type + * @param rcNum Client birth number + * @param icoNum Client IČ + */ + public String setSegment(String segmentCode, String segmentationCode, String rcNum, String icoNum) { + return ilodsEndpoint.setSegment(segmentCode, segmentationCode, rcNum, icoNum); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNCommonElements.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNCommonElements.java new file mode 100644 index 0000000..dd36c8e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNCommonElements.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.kasanova; + +import java.time.LocalDate; + +public interface KSNCommonElements { + String LOADER_DIV = "dialog-waiting-title"; + String MAIN_IFRAME_NAME = "framemain"; + String MAIN_IFRAME_XPATH = "//iframe[@name='" + MAIN_IFRAME_NAME + "']"; + String ODKAZY_Z_POKLADEN = "//button[text()='OK']"; + String PAGE_TITLE = "//div[@class='cTitle']"; + + String IDENTIFICATION_AUTH_PERSON_1 = "//input[@id='personCheck1']"; + String IDENTIFICATION_AUTH_PERSON_2 = "//input[@id='personCheck2']"; + String IDENTIFICATION_AUTH_PERSON_3 = "//input[@id='personCheck3']"; + String IDENTIFICATION_AUTH_PERSON_4 = "//input[@id='personCheck4']"; + String IDENTIFICATION_AUTH_PERSON_5 = "//input[@id='personCheck5']"; + + String AMOUNT_INPUT = "amountId"; + String DEBET_AMOUNT_INPUT = "debetAmountId"; + String DEBET_AMOUNT_INPUT2 = "debetAmount"; + String FEE_CODE = "feeCode"; + String WITHDRAW_AMOUNT_INPUT = "withdrawAmountId"; + String DEPOSIT_AMOUNT_INPUT = "depositAmountId"; + String SMENA_AMOUNT_INPUT = "smenaId"; + String SMENA_INPUT = "smena"; + String VYPLATA_AMOUNT_INPUT = "vyplataId"; + String IDENTIFICATION_CLIENT_NAME_INPUT = "clientName"; + String IDENTIFICATION_PERSONAL_NUMBER_INPUT = "personalNumber"; + String IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT = "idType"; + String IDENTIFICATION_ID_NUMBER_INPUT = "idNumber"; + String IDENTIFICATION_ADDRESS_INPUT = "address"; + String IDENTIFICATION_SEX_SELECT = "sex"; + String IDENTIFICATION_COUNTRY_ID_SELECT = "idCountry"; + String IDENTIFICATION_ID_END_DATE_INPUT = "idEndDate"; + String IDENTIFICATION_LONG_TERM_RESIDENCE_SELECT = "longTermResidence"; + String IDENTIFICATION_NATIONALITY_SELECT = "nationality"; + String IDENTIFICATION_BIRTH_PLACE_INPUT = "idBirthPlace"; + String IDENTIFICATION_AUTH_PERSON = "//select[@id='authPerson']"; + + //variables for bulk deposit (function 18) + String FIRST_DEPOSIT_AMOUNT_INPUT = "simpleValue1"; + String FIRST_DEPOSIT_VAR_SYMBOL = "simpleVarSymbol1"; + String SECOND_DEPOSIT_AMOUNT_INPUT = "simpleValue2"; + String SECOND_DEPOSIT_VAR_SYMBOL = "simpleVarSymbol2"; + + String DESCRIPTION_INPUT = "description"; + String VARIABLE_SYMBOL_INPUT = "varSymbol"; + String CONSTANT_SYMBOL_INPUT = "constSymbol"; + String SPECIFIC_SYMBOL_INPUT = "specSymbol"; + String AGREEMENT_NUMBER_INPUT = "agreementNumber"; + String ORIGINE_PURPOSE_SELECT = "selorigpurp"; + String ORIGINE_PURPOSE2_SELECT = "selorigpurp2"; + String RELATION_TO_THE_OWNER_SELECT = "selrelown"; + + String DEPOSITBOOK_BALANCE_INPUT = "zustatekID"; + String DEPOSITBOOK_BALANCE_INPUT2 = "zustatekId"; + String DEPOSITBOOK_LINE_NUMBER = "lineNumber"; + String DEPOSITBOOK_BALANCE_ICBS = "//input[@name='zustatekICBS']"; + + String VERIFY_DIALOG_AMOUNT = "//input[@id='v_amount']"; + String VERIFY_DIALOG_ACCOUNT = "//input[@id='v_account']"; + String VERIFY_DIALOG_UID = "//input[@id='uid']"; + String VERIFY_DIALOG_SSOID = "//input[@id='ssoid']"; + String VERIFY_DIALOG_PASSWORD = "//input[@id='password']"; + String VERIFY_BUTTON = "//button[text()='Ověřit']"; + String VERIFY_DIALOG_IFRAME = "//iframe[@src='/KasanovaWeb/DialogVerifyLogin']"; + + String BUTTON_PRINT = "print"; + String BUTTON_SAVE = "save"; + String BUTTON_SAVE_TMP = "saveTmp"; + String BUTTON_NEXT = "next"; + String BUTTON_BACK = "back"; + String BUTTON_BACK2 = "backButton"; + String BUTTON_SAVE_AND_NOT_DISABLED = "//button[@id='save'and not(@disabled)]"; + String BUTTON_PRINT_SUMMARY = "printSmry"; + String BUTTON_CESSION = "print_cession_info"; + String BUTTON_PRINT_INFO = "print_info"; + String BUTTON_ADD_DEPOSIT = "addSimpleItemBtn"; + String BUTTON_KASADIALOG = "//div[@class='kasadialog-board']"; + String BUTTON_KASADIALOG_YES = "//button[text()='Ano']"; + String BUTTON_KASADIALOG_OK = "//button[text()='Ok']"; + String BUTTON_KASADIALOG_NO = "//button[text()='Ne']"; + + String COINSPLIT_DYNAMIC_PATH = "//input[@id='%s']"; + + LocalDate YEAR_ONE = LocalDate.now().plusYears(1); + LocalDate YEAR_MORE = YEAR_ONE.plusYears(3); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNPageFlow.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNPageFlow.java new file mode 100644 index 0000000..519705a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNPageFlow.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.kasanova; + +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KSNPageFlow> extends WebFlow, KSNCommonElements { + + static void loadLocalPage(WebEndpoint endpoint, String element){ + endpoint.switchToDefaultContent(); + endpoint.waitForElementsToLoad(20, Lookup.XPATH, MAIN_IFRAME_XPATH); + endpoint.switchToFrame(MAIN_IFRAME_NAME); + endpoint.waitForElementsToLoad(80, Until.GONE, LOADER_DIV); + endpoint.waitForElementsToLoad(20, element); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNStorno.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNStorno.java new file mode 100644 index 0000000..e64fd6f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNStorno.java @@ -0,0 +1,101 @@ +package cz.moneta.test.dsl.kasanova; + +import static cz.moneta.test.dsl.kasanova.components.KSNMainMenu.ROOT_MENU; + +import org.junit.jupiter.api.Assertions; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; + +public interface KSNStorno extends KSNCommonElements, StoreAccessor { + + /** + * Method for executing storno of various Kasanova functions. + * @param isStornoOn - true/false - if you want execute storno or not + * @param verifyAmount - amount of money + * @param verifyAccount - account number + * @param verifyUid - tellerId of verify user + * @param verifySso - sso of verify user + * @param verifyPass - password of verify user + * @param reduceNumber - reduce last transaction number by given number + * @return + */ + @CustomAction + default A doStorno(boolean isStornoOn, String verifyAmount, String verifyAccount, String verifyUid, String verifySso, String verifyPass, int reduceNumber) { + + if (!isStornoOn) { + return null; + } + + String LTN = "//div[@class='userPanel']//span[@id='ltn']"; + String MENU_09_BUTTON = "//button[text()='Údržbové operace']"; + String MENU_09_SUBMENU_06_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Žurnál']"; + String BUTTON_JOURNAL_DETAIL_PRINT = "//form[@name='journalDetailForm']//button[@id='print']"; + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + + // main menu loading + endpoint.switchToDefaultContent(); + endpoint.switchToFrame(MAIN_IFRAME_NAME); + endpoint.waitForElementsToLoad(40, Lookup.XPATH, Until.PRESENT_IN_DOM, ROOT_MENU); + + // reading last transaction number from userPanel + String lastTransactionNumber = endpoint.getText(LTN, Lookup.XPATH); + if (lastTransactionNumber == null || lastTransactionNumber.isEmpty()) { + Assertions.fail("lastTransactionNumber not found"); + } + + int lastTransactionNumberInt = Integer.parseInt(lastTransactionNumber) - reduceNumber; + String STORNO_TRANSACTION_BUTTON_ID = "storno_transakcebtn" + lastTransactionNumberInt; + + // enter journal page + endpoint.click(() -> MENU_09_BUTTON, Lookup.XPATH); + endpoint.click(() -> MENU_09_SUBMENU_06_BUTTON, Lookup.XPATH); + // click storno button in journal + endpoint.waitForElementsToLoad(80, Until.GONE, LOADER_DIV); + endpoint.waitForElementsToLoad(80, Until.VISIBLE, STORNO_TRANSACTION_BUTTON_ID); + endpoint.click(() -> STORNO_TRANSACTION_BUTTON_ID); + + // click print button + endpoint.waitForElementsToLoad(80, Until.GONE, LOADER_DIV); + endpoint.waitForElementsToLoad(30, Lookup.XPATH, Until.VISIBLE, BUTTON_JOURNAL_DETAIL_PRINT); + endpoint.click(() -> BUTTON_JOURNAL_DETAIL_PRINT, Lookup.XPATH); + + // verification + endpoint.waitForElementsToLoad(80, Until.GONE, LOADER_DIV); + endpoint.waitForAnyElementToLoad(30, Lookup.XPATH, BUTTON_KASADIALOG, VERIFY_DIALOG_IFRAME); + endpoint.switchToFrame(VERIFY_DIALOG_IFRAME, Lookup.XPATH); + endpoint.waitForElementsToLoad(30, Lookup.XPATH, Until.VISIBLE, VERIFY_DIALOG_AMOUNT); + endpoint.type(() -> VERIFY_DIALOG_AMOUNT, verifyAmount, false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_ACCOUNT, verifyAccount, false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_UID, verifyUid, false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_SSOID, verifySso, false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_PASSWORD, verifyPass, false, Lookup.XPATH); + endpoint.switchToDefaultContent(); + endpoint.switchToFrame(MAIN_IFRAME_NAME); + endpoint.click(() -> VERIFY_BUTTON, Lookup.XPATH); + endpoint.sleepSeconds(3); + + // click save button and accept alerts + endpoint.waitForElementsToLoad(10, Until.CLICKABLE, BUTTON_SAVE_TMP); + endpoint.click(() -> BUTTON_SAVE_TMP); + + //"Opravdu chcete stornovat tuto transakci ?" + if (endpoint.isAlertPresent(30)) { + endpoint.acceptAlert(1); + } + + //"Transakce byla úspěšně stornována." + endpoint.waitForElementsToLoad(80, Lookup.XPATH, Until.PRESENT_IN_DOM, BUTTON_KASADIALOG_OK); + endpoint.click(() -> BUTTON_KASADIALOG_OK, Lookup.XPATH); + + // click back button in journal + endpoint.waitForElementsToLoad(80, Until.VISIBLE, BUTTON_BACK); + endpoint.click(() -> BUTTON_BACK); + + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNUtils.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNUtils.java new file mode 100644 index 0000000..00b5428 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/KSNUtils.java @@ -0,0 +1,327 @@ +package cz.moneta.test.dsl.kasanova; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.authentication.KSNLoginPage; +import cz.moneta.test.dsl.kasanova.components.enums.*; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Key; +import cz.moneta.test.harness.support.web.KeyPress; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.SwitchToDefaultContent; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import org.junit.jupiter.api.Assertions; +import java.text.NumberFormat; +import java.text.ParseException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import static cz.moneta.test.dsl.kasanova.components.KSNMainMenu.ROOT_MENU; + +public interface KSNUtils extends KSNCommonElements, StoreAccessor, KSNStorno { + + @CustomAction + default A coinSplitTable(KSNCoinSplits coinSplit, String text) { + String xpath = String.format(COINSPLIT_DYNAMIC_PATH, coinSplit.getValue()); + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> xpath, text, false, Lookup.XPATH); + return null; + } + + @CustomAction + default A checkRedirect(String redirectFunctionTitle) { + String FUNCTION_TITLE = "//div[@class='cTitle']"; + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.waitForElementsToLoad(20, Lookup.XPATH, FUNCTION_TITLE); + String title = endpoint.getText(FUNCTION_TITLE, Lookup.XPATH); + Assertions.assertEquals(redirectFunctionTitle, title); + return null; + } + + @CustomAction + default A checkFunctionIsDone() { + final String INPUT_REPORT = "//div[@id='reportPanel']//input[@id='report']"; + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.waitForElementsToLoad(30, Lookup.XPATH, Until.PRESENT_IN_DOM, ROOT_MENU); + endpoint.switchToDefaultContent(); + endpoint.switchToFrame("links"); + endpoint.isElementPresent(INPUT_REPORT, Lookup.XPATH); + String reportMessage; + boolean checkReportMessage = false; + for (int i = 0; i < 60; i++) { + reportMessage = endpoint.getAttribute(INPUT_REPORT, Lookup.XPATH, "value"); + checkReportMessage = reportMessage.startsWith("Funkce byla úspěšně odeslána a akceptována Host Tellerem."); + if (checkReportMessage) { + break; + } else { + endpoint.sleep(TimeUnit.MILLISECONDS, 500); + } + } + Assertions.assertTrue(checkReportMessage); + return null; + } + + @CustomAction + default KSNLoginPage logOut() { + String ROOT_MENU = "//div[@id='root_menu']"; + String MENU_09_BUTTON = "//button[text()='Údržbové operace']"; + String MENU_09_SUBMENU_02_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Dočasné odhlášení']"; + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.switchToDefaultContent(); + endpoint.switchToFrame(MAIN_IFRAME_NAME); + endpoint.waitForElementsToLoad(40, Lookup.XPATH, ROOT_MENU); + endpoint.waitForElementsToLoad(20, Lookup.XPATH, MENU_09_BUTTON); + endpoint.click(() -> MENU_09_BUTTON, Lookup.XPATH); + endpoint.click(() -> MENU_09_SUBMENU_02_BUTTON, Lookup.XPATH); + endpoint.waitForElementsToLoad(30, Kasanova.CONTINUE_BUTTON); + return null; + } + + @CustomAction + default A fillIdentificationAndSymbolsMini() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), false); + if (endpoint.isElementVisible(1, DESCRIPTION_INPUT, Lookup.DEFAULT)) { + endpoint.type(() -> DESCRIPTION_INPUT, KSNDescriptions.getRandomDescriptionValue(), false); + } + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + + @CustomAction + default A fillIdentificationAndSymbolsShort() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + if (endpoint.isElementVisible(1, IDENTIFICATION_NATIONALITY_SELECT, Lookup.DEFAULT)) { + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, KSNCountries.getRandomCountryValue()); + } + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), false); + if (endpoint.isElementVisible(1, DESCRIPTION_INPUT, Lookup.DEFAULT)) { + endpoint.type(() -> DESCRIPTION_INPUT, KSNDescriptions.getRandomDescriptionValue(), false); + } + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + + @CustomAction + default A fillIdentificationAndSymbolsLong() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_ID_END_DATE_INPUT, DateUtils.getRandomDate(YEAR_ONE.getYear(), YEAR_MORE.getYear(), KSNPatterns.DDMMYYYY.getValue()), true); + String coutry = KSNCountries.getRandomCountryValue(); + endpoint.selectByVisibleText(IDENTIFICATION_COUNTRY_ID_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_LONG_TERM_RESIDENCE_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, coutry); + endpoint.type(() -> IDENTIFICATION_BIRTH_PLACE_INPUT, KSNBirthPlaces.getRandomBirthPlaceValue(), true); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), true); + if (endpoint.isElementVisible(1, DESCRIPTION_INPUT, Lookup.DEFAULT)) { + endpoint.type(() -> DESCRIPTION_INPUT, KSNDescriptions.getRandomDescriptionValue(), false); + } + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + + @CustomAction + default A fillIdentificationAndSymbolsForDepositbook() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), false); + endpoint.type(() -> DESCRIPTION_INPUT, KSNDescriptions.getRandomDescriptionValue(), false); + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + + @CustomAction + default A fillDepositBookBalance(String depositBookBalanceInput) { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + String depositbookBalanceICBS = endpoint.getAttribute(DEPOSITBOOK_BALANCE_ICBS, Lookup.XPATH, "value"); + endpoint.type(() -> depositBookBalanceInput, depositbookBalanceICBS, false); + return null; + } + + @Wait(explicitWaitSeconds = 3) + @CustomAction + default A dismissPrintWindow() { + // KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + + // TODO: workerounded by browser argument --kiosk-printing and explicitWait + // endpoint.dismissEdgePrintDialog(); + // if(endpoint.isHeadlessModeOn() == false) + // endpoint.switchToFrame(MAIN_FRAME); + + return null; + } + + // Fee coinsplit table is filled with nominals according to field 'Poplatek' + @CustomAction + default A fillFeeCoinsplit() { + final String INPUT_FEE = "//input[@name='fee2']"; // Poplatek + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + String feeValue = endpoint.getAttribute(INPUT_FEE, Lookup.XPATH, "value"); + int feeValueInt = 0; + try { + NumberFormat formatter = NumberFormat.getNumberInstance(Locale.GERMAN); + feeValueInt = formatter.parse(feeValue).intValue(); + } catch(ParseException e) { + log("Parsing of fee [" + feeValue + "] failed. Continue with 0"); + } + List tableValues = new ArrayList<>(Arrays.asList(new Integer[] {5000, 2000, 1000, 500, 200, 100, 50, 20, 10, 5, 2, 1})); + Map coinSplitMap = new LinkedHashMap<>(); + + for (int value : tableValues) { + if (feeValueInt <= 0) { + break; + } + int result = feeValueInt / value; + if (result > 0) { + if (value >= 100) { + coinSplitMap.put("csFee2Main-CZK-B-" + value, String.valueOf(result)); + } else { + coinSplitMap.put("csFee2Main-CZK-C-" + value, String.valueOf(result)); + } + feeValueInt = feeValueInt % value; + } + } + for (String item : coinSplitMap.keySet()) { + String xpath = String.format(COINSPLIT_DYNAMIC_PATH, item); + endpoint.type(() -> xpath, coinSplitMap.get(item), false, Lookup.XPATH); + } + return null; + } + + @CustomAction + default A doVerification(Harness harness, String verifyAmount, String verifyAccount, Credentials verifyBanker) { + String VERIFY_BANKER_UID = "kasanova-config.verify-banker.uid"; + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.waitForElementsToLoad(80, Until.GONE, LOADER_DIV); + endpoint.waitForAnyElementToLoad(30, Lookup.XPATH, BUTTON_KASADIALOG, VERIFY_DIALOG_IFRAME); + endpoint.switchToFrame(VERIFY_DIALOG_IFRAME, Lookup.XPATH); + endpoint.waitForElementsToLoad(30, Lookup.XPATH, Until.VISIBLE, VERIFY_DIALOG_AMOUNT); + endpoint.type(() -> VERIFY_DIALOG_AMOUNT, verifyAmount, false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_ACCOUNT, verifyAccount, false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_UID, harness.getConfig(VERIFY_BANKER_UID), false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_SSOID, verifyBanker.getUsername(), false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_PASSWORD, verifyBanker.getPassword(), false, Lookup.XPATH); + endpoint.switchToDefaultContent(); + endpoint.switchToFrame(MAIN_IFRAME_NAME); + endpoint.click(() -> VERIFY_BUTTON, Lookup.XPATH); + return null; + } + + @CustomAction + default A kasanovaDialogClickOK() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + if (endpoint.isElementVisible(20, BUTTON_KASADIALOG, Lookup.XPATH)) { + endpoint.click(() -> BUTTON_KASADIALOG_OK, Lookup.XPATH); + } + return null; + } + + @CustomAction + default A kasanovaDialogClickYes() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + if (endpoint.isElementVisible(20, BUTTON_KASADIALOG, Lookup.XPATH)) { + endpoint.click(() -> BUTTON_KASADIALOG_YES, Lookup.XPATH); + } + return null; + } + + @Click(BUTTON_BACK2) + A backToMainMenu(); + + @SwitchToDefaultContent + A switchToDefaultFrame(); + + @TypeInto(DEPOSIT_AMOUNT_INPUT) + @KeyPress(Key.TAB) + A depositAmount(String text); + + @TypeInto(WITHDRAW_AMOUNT_INPUT) + @KeyPress(Key.TAB) + A withdrawAmount(String text); + + @TypeInto(SMENA_AMOUNT_INPUT) + @KeyPress(Key.TAB) + A smenaAmount(String text); + + @TypeInto(VYPLATA_AMOUNT_INPUT) + @KeyPress(Key.TAB) + A vyplataAmount(String text); + + @TypeInto(DEBET_AMOUNT_INPUT) + A debetAmount(String text); + + @TypeInto(DEBET_AMOUNT_INPUT2) + A debetAmount2(String text); + + @Select(value = IDENTIFICATION_AUTH_PERSON, by = Lookup.XPATH) + A authPerson(String text); + + @Click(value = IDENTIFICATION_AUTH_PERSON_1, by = Lookup.XPATH) + A authPerson1(); + + @Click(value = IDENTIFICATION_AUTH_PERSON_3, by = Lookup.XPATH) + A authPerson3(); + + @Click(value = IDENTIFICATION_AUTH_PERSON_4, by = Lookup.XPATH) + A authPerson4(); + + @Select(ORIGINE_PURPOSE_SELECT) + A originePurpose(String text); + + @Select(ORIGINE_PURPOSE2_SELECT) + A originePurpose2(String text); + + @Select(RELATION_TO_THE_OWNER_SELECT) + A relationToTheOwner(String text); + + @Click(value = PAGE_TITLE, by = Lookup.XPATH) + @Click(BUTTON_PRINT) + A continueWithPrintAction(); + + @Wait(value = BUTTON_SAVE_TMP, until = Until.CLICKABLE, waitSecondsForElement = 20) + @Click(BUTTON_SAVE_TMP) + A continueWithSaveAction(); + + @Click(BUTTON_CESSION) + A clickCession(); + + @Click(BUTTON_PRINT_INFO) + A clickPrintInfo(); + + @TypeInto(DEPOSITBOOK_LINE_NUMBER) + A lineNumber(String text); + + @Select(IDENTIFICATION_SEX_SELECT) + A sex(String text); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/Kasanova.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/Kasanova.java new file mode 100644 index 0000000..fc0aba2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/Kasanova.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.kasanova; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.authentication.KSNLoginPage; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.Builders; +import cz.moneta.test.harness.support.web.Until; + +public class Kasanova { + + public static final String MAIN_FRAME = "framemain"; + public static final String CONTINUE_BUTTON = "continuebut"; + private final Harness harness; + + public Kasanova(Harness harness) { + this.harness = harness; + } + + public KSNLoginPage openLoginPage() { + KasanovaEndpoint endpoint = harness.getEndpoint(KasanovaEndpoint.class); + endpoint.openApplication(); + endpoint.switchToFrame(MAIN_FRAME); + endpoint.waitForElementsToLoad(20, Until.PRESENT_IN_DOM, CONTINUE_BUTTON); + endpoint.click(() -> CONTINUE_BUTTON); + return Builders.newWebFlowBuilder(KSNLoginPage.class, endpoint, harness); + } + + public boolean isStornoOn() { + return Boolean.parseBoolean(this.harness.getConfig("kasanova-config.doStorno")); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/authentication/KSNLoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/authentication/KSNLoginPage.java new file mode 100644 index 0000000..8297ca5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/authentication/KSNLoginPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.kasanova.authentication; + +import static cz.moneta.test.dsl.kasanova.authentication.KSNLoginPage.CONFIRM_BUTTON; +import static cz.moneta.test.dsl.kasanova.authentication.KSNLoginPage.PASSWORD_INPUT; +import static cz.moneta.test.dsl.kasanova.authentication.KSNLoginPage.USERNAME_INPUT; + +import cz.moneta.test.dsl.kasanova.components.KSNMainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait({USERNAME_INPUT, PASSWORD_INPUT, CONFIRM_BUTTON}) +public interface KSNLoginPage extends WebFlow { + + String USERNAME_INPUT = "ssoedit"; + String PASSWORD_INPUT = "password"; + String CONFIRM_BUTTON = "loginbtn"; + + @TypeInto(USERNAME_INPUT) + KSNLoginPage typeUsername(String username); + + @TypeInto(PASSWORD_INPUT) + KSNLoginPage typePassword(String password); + + @Click(CONFIRM_BUTTON) + KSNMainMenu clickLogin(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/authentication/KSNLoginSuccessPage.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/authentication/KSNLoginSuccessPage.java new file mode 100644 index 0000000..16c1d18 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/authentication/KSNLoginSuccessPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.kasanova.authentication; + +import static cz.moneta.test.dsl.kasanova.authentication.KSNLoginSuccessPage.CONTINUE_BUTTON; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.components.KSNMainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(CONTINUE_BUTTON) +public interface KSNLoginSuccessPage extends KSNPageFlow{ + + String CONTINUE_BUTTON = "nextbtnmm"; + + @Click(CONTINUE_BUTTON) + KSNMainMenu clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN11Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN11Page.java new file mode 100644 index 0000000..8baace9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN11Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN11Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEPOSIT_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN12Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN12Page.java new file mode 100644 index 0000000..7ace643 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN12Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN12Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEPOSIT_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN13Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN13Page.java new file mode 100644 index 0000000..4f2360c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN13Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN13Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEPOSIT_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN14Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN14Page.java new file mode 100644 index 0000000..4a4c541 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN14Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN14Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEPOSIT_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN15Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN15Page.java new file mode 100644 index 0000000..91ac0f2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN15Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN15Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEPOSIT_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN16Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN16Page.java new file mode 100644 index 0000000..a2b67be --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN16Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN16Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEPOSIT_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN18Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN18Page.java new file mode 100644 index 0000000..cb9b2d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN18Page.java @@ -0,0 +1,78 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAdress; +import cz.moneta.test.dsl.kasanova.components.enums.KSNBirthPlaces; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCountries; +import cz.moneta.test.dsl.kasanova.components.enums.KSNDescriptions; +import cz.moneta.test.dsl.kasanova.components.enums.KSNGender; +import cz.moneta.test.dsl.kasanova.components.enums.KSNIdCards; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNames; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface KSN18Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEPOSIT_AMOUNT_INPUT); + } + + @TypeInto(FIRST_DEPOSIT_AMOUNT_INPUT) + KSN18Page firstDepositAmount(String text); + + @TypeInto(FIRST_DEPOSIT_VAR_SYMBOL) + KSN18Page firstDepositVarSymbol(String text); + + @TypeInto(SECOND_DEPOSIT_AMOUNT_INPUT) + KSN18Page secondDepositAmount(String text); + + @TypeInto(SECOND_DEPOSIT_VAR_SYMBOL) + KSN18Page secondDepositVarSymbol(String text); + + @Click(BUTTON_PRINT_SUMMARY) + KSN18Page clickPrintSmry(); + + @Click(BUTTON_ADD_DEPOSIT) + KSN18Page clickAddAnotherDeposit(); + + @CustomAction + default KSN18Page fillIdentificationAndConstantSymbolMini() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, KSNCountries.getRandomCountryValue()); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), false); + endpoint.type(() -> DESCRIPTION_INPUT, KSNDescriptions.getRandomDescriptionValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + + @CustomAction + default KSN18Page fillIdentificationAndConstantSymbolLong() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_ID_END_DATE_INPUT, DateUtils.getRandomDate(YEAR_ONE.getYear(), YEAR_MORE.getYear(), KSNPatterns.DDMMYYYY.getValue()), true); + String coutry = KSNCountries.getRandomCountryValue(); + endpoint.selectByVisibleText(IDENTIFICATION_COUNTRY_ID_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_LONG_TERM_RESIDENCE_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, coutry); + endpoint.type(() -> IDENTIFICATION_BIRTH_PLACE_INPUT, KSNBirthPlaces.getRandomBirthPlaceValue(), true); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), true); + endpoint.type(() -> DESCRIPTION_INPUT, KSNDescriptions.getRandomDescriptionValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN19Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN19Page.java new file mode 100644 index 0000000..5692e27 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN19Page.java @@ -0,0 +1,64 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAdress; +import cz.moneta.test.dsl.kasanova.components.enums.KSNBirthPlaces; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCountries; +import cz.moneta.test.dsl.kasanova.components.enums.KSNDescriptions; +import cz.moneta.test.dsl.kasanova.components.enums.KSNGender; +import cz.moneta.test.dsl.kasanova.components.enums.KSNIdCards; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNames; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; + +public interface KSN19Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEPOSIT_AMOUNT_INPUT); + } + + @CustomAction + default KSN19Page fillIdentificationAndSymbolsFunc19Short() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, KSNCountries.getRandomCountryValue()); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), false); + endpoint.type(() -> DESCRIPTION_INPUT, KSNDescriptions.getRandomDescriptionValue(), false); + endpoint.type(() -> AGREEMENT_NUMBER_INPUT, "6123456304", false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + + @CustomAction + default KSN19Page fillIdentificationAndSymbolsFunc19Long() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_ID_END_DATE_INPUT, DateUtils.getRandomDate(YEAR_ONE.getYear(), YEAR_MORE.getYear(), KSNPatterns.DDMMYYYY.getValue()), true); + String coutry = KSNCountries.getRandomCountryValue(); + endpoint.selectByVisibleText(IDENTIFICATION_COUNTRY_ID_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_LONG_TERM_RESIDENCE_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, coutry); + endpoint.type(() -> IDENTIFICATION_BIRTH_PLACE_INPUT, KSNBirthPlaces.getRandomBirthPlaceValue(), true); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), true); + endpoint.type(() -> DESCRIPTION_INPUT, KSNDescriptions.getRandomDescriptionValue(), false); + endpoint.type(() -> AGREEMENT_NUMBER_INPUT, "6123456304", false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN21Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN21Page.java new file mode 100644 index 0000000..5ea2d93 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN21Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN21Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEPOSIT_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN22Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN22Page.java new file mode 100644 index 0000000..7776208 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN22Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN22Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEPOSIT_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN31Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN31Page.java new file mode 100644 index 0000000..d6eae2e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN31Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN31Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, WITHDRAW_AMOUNT_INPUT); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN33Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN33Page.java new file mode 100644 index 0000000..27422c7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN33Page.java @@ -0,0 +1,51 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.Wait; +import org.junit.jupiter.api.Assertions; +import java.text.NumberFormat; +import java.text.ParseException; +import java.util.Locale; + +public interface KSN33Page extends KSNPageFlow, KSNUtils { + + String AUTH_PERSON_NAME = "//select[@name='authPerson']"; + String PAYCHECK = "//input[@id='vyplata']"; + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, WITHDRAW_AMOUNT_INPUT); + } + + /** + * this method ensures that paycheck and output nominals still have same + * values + * + * @param expectedPaycheck + * @return + */ + @CustomAction + default KSN33Page checkPaycheck(Double expectedPaycheck) { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + String paycheck = endpoint.getAttribute(PAYCHECK, Lookup.XPATH, "value"); + double paycheckDouble = 0.0; + try { + paycheckDouble = NumberFormat.getInstance(Locale.GERMAN).parse(paycheck).doubleValue(); + } catch (ParseException e) { + e.printStackTrace(); + } + Assertions.assertEquals(expectedPaycheck, paycheckDouble); + return null; + } + + @Select(value = AUTH_PERSON_NAME, by = Lookup.XPATH) + KSN33Page authPerson(String text); + + @Wait(explicitWaitSeconds = 3) + KSN33Page waitSec(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN34Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN34Page.java new file mode 100644 index 0000000..11772b9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN34Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN34Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, WITHDRAW_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN36Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN36Page.java new file mode 100644 index 0000000..b5a5f5f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN36Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN36Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, WITHDRAW_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN41Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN41Page.java new file mode 100644 index 0000000..d59197e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN41Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN41Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, WITHDRAW_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN42Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN42Page.java new file mode 100644 index 0000000..e67663a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN42Page.java @@ -0,0 +1,64 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; + +public interface KSN42Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, WITHDRAW_AMOUNT_INPUT); + } + + /** + * converts amount of money from CZK currency to foreign currency and result + * inserts into WITHDRAW_AMOUNT_INPUT field + * + * @param money + * - amount of money in CZK currency + * @return + */ + @CustomAction + default KSN42Page calculateWithdrawAmount(double money) { + final String EXCHANGE_RATE = "//input[@id='exchangeRate']"; + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + String exchangeRateValue = endpoint.getAttribute(EXCHANGE_RATE, Lookup.XPATH, "value"); + if (!exchangeRateValue.isEmpty()) { + double exchangeRateDouble = Double.valueOf(exchangeRateValue); + if (exchangeRateDouble > 0) { + money = money / exchangeRateDouble; + } + } + String result = String.format("%.2f", money); + endpoint.type(() -> WITHDRAW_AMOUNT_INPUT, result, false); + return null; + } + + @CustomAction + default KSN42Page doVerification(Harness harness, String verifyAccount, Credentials verifyBanker) { + String VERIFY_BANKER_UID = "kasanova-config.verify-banker.uid"; + final String WITHDRAW_AMOUNT = "//input[@id='withdrawAmountId']"; + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + String withdrawAmountValue = endpoint.getAttribute(WITHDRAW_AMOUNT, Lookup.XPATH, "value"); + endpoint.waitForElementsToLoad(80, Until.GONE, LOADER_DIV); + endpoint.waitForAnyElementToLoad(30, Lookup.XPATH, BUTTON_KASADIALOG, VERIFY_DIALOG_IFRAME); + endpoint.switchToFrame(VERIFY_DIALOG_IFRAME, Lookup.XPATH); + endpoint.waitForElementsToLoad(20, Lookup.XPATH, VERIFY_DIALOG_AMOUNT); + endpoint.type(() -> VERIFY_DIALOG_AMOUNT, withdrawAmountValue, false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_ACCOUNT, verifyAccount, false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_UID, harness.getConfig(VERIFY_BANKER_UID), false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_SSOID, verifyBanker.getUsername(), false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_PASSWORD, verifyBanker.getPassword(), false, Lookup.XPATH); + endpoint.switchToDefaultContent(); + endpoint.switchToFrame(MAIN_IFRAME_NAME); + endpoint.click(() -> VERIFY_BUTTON, Lookup.XPATH); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN43Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN43Page.java new file mode 100644 index 0000000..9d09e62 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN43Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN43Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, WITHDRAW_AMOUNT_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN51Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN51Page.java new file mode 100644 index 0000000..fe7d812 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN51Page.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; + +public interface KSN51Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, SMENA_INPUT); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN53Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN53Page.java new file mode 100644 index 0000000..27fc5a8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN53Page.java @@ -0,0 +1,64 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAdress; +import cz.moneta.test.dsl.kasanova.components.enums.KSNBirthPlaces; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCountries; +import cz.moneta.test.dsl.kasanova.components.enums.KSNGender; +import cz.moneta.test.dsl.kasanova.components.enums.KSNIdCards; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNames; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; + +public interface KSN53Page extends KSNPageFlow, KSNUtils { + + String AUTH_PERSON_NAME = "//select[@name='authPerson']"; + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, IDENTIFICATION_CLIENT_NAME_INPUT); + } + + @CustomAction + default KSN53Page fillIdentificationAndSymbolsLong() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_ID_END_DATE_INPUT, DateUtils.getRandomDate(YEAR_ONE.getYear(), YEAR_MORE.getYear(), KSNPatterns.DDMMYYYY.getValue()), true); + String coutry = KSNCountries.getRandomCountryValue(); + endpoint.selectByVisibleText(IDENTIFICATION_COUNTRY_ID_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_LONG_TERM_RESIDENCE_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, coutry); + endpoint.type(() -> IDENTIFICATION_BIRTH_PLACE_INPUT, KSNBirthPlaces.getRandomBirthPlaceValue(), true); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), true); + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + + @CustomAction + default KSN53Page fillIdentificationAndSymbolsShort() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), false); + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + + @Select(value = AUTH_PERSON_NAME, by = Lookup.XPATH) + KSN53Page authPerson(String text); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN61Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN61Page.java new file mode 100644 index 0000000..d8ed1ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN61Page.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAdress; +import cz.moneta.test.dsl.kasanova.components.enums.KSNBirthPlaces; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCountries; +import cz.moneta.test.dsl.kasanova.components.enums.KSNGender; +import cz.moneta.test.dsl.kasanova.components.enums.KSNIdCards; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNames; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; + +public interface KSN61Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, SMENA_AMOUNT_INPUT); + } + + @CustomAction + default KSN61Page fillIdentificationAndSymbolsSmenaShort() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, KSNCountries.getRandomCountryValue()); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), false); + return null; + } + + @CustomAction + default KSN61Page fillIdentificationAndSymbolsSmenaLong() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_ID_END_DATE_INPUT, DateUtils.getRandomDate(YEAR_ONE.getYear(), YEAR_MORE.getYear(), KSNPatterns.DDMMYYYY.getValue()), true); + String coutry = KSNCountries.getRandomCountryValue(); + endpoint.selectByVisibleText(IDENTIFICATION_COUNTRY_ID_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_LONG_TERM_RESIDENCE_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, coutry); + endpoint.type(() -> IDENTIFICATION_BIRTH_PLACE_INPUT, KSNBirthPlaces.getRandomBirthPlaceValue(), true); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), true); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN62Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN62Page.java new file mode 100644 index 0000000..82fe98a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN62Page.java @@ -0,0 +1,120 @@ +package cz.moneta.test.dsl.kasanova.components; + +import java.text.NumberFormat; +import java.text.ParseException; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAdress; +import cz.moneta.test.dsl.kasanova.components.enums.KSNBirthPlaces; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCountries; +import cz.moneta.test.dsl.kasanova.components.enums.KSNGender; +import cz.moneta.test.dsl.kasanova.components.enums.KSNIdCards; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNames; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; + +public interface KSN62Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, VYPLATA_AMOUNT_INPUT); + } + + @CustomAction + default KSN62Page fillIdentificationAndSymbolsSmenaShort() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, KSNCountries.getRandomCountryValue()); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), false); + return null; + } + + @CustomAction + default KSN62Page fillIdentificationAndSymbolsSmenaLong() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_ID_END_DATE_INPUT, DateUtils.getRandomDate(YEAR_ONE.getYear(), YEAR_MORE.getYear(), KSNPatterns.DDMMYYYY.getValue()), true); + String coutry = KSNCountries.getRandomCountryValue(); + endpoint.selectByVisibleText(IDENTIFICATION_COUNTRY_ID_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_LONG_TERM_RESIDENCE_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, coutry); + endpoint.type(() -> IDENTIFICATION_BIRTH_PLACE_INPUT, KSNBirthPlaces.getRandomBirthPlaceValue(), true); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), true); + return null; + } + + // Coinsplit table is filled with nominals according to field 'Částka směny' (smena) + @CustomAction + default KSN62Page fillCoinsplitTable() { + final String INPUT_SMENA = "//input[@id='smena']"; // Částka směny + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + String smenaValue = endpoint.getAttribute(INPUT_SMENA, Lookup.XPATH, "value"); + int smenaValueInt = 0; + try { + NumberFormat formatter = NumberFormat.getNumberInstance(Locale.GERMAN); + smenaValueInt = formatter.parse(smenaValue).intValue(); + } catch(ParseException e) { + e.printStackTrace(); + } + List tableValues = new ArrayList<>(); + tableValues.add(5000); + tableValues.add(2000); + tableValues.add(1000); + tableValues.add(500); + tableValues.add(200); + tableValues.add(100); + tableValues.add(50); + tableValues.add(20); + tableValues.add(10); + tableValues.add(5); + tableValues.add(2); + tableValues.add(1); + + Map coinSplitMap = new LinkedHashMap<>(); + + for (int value : tableValues) { + if (smenaValueInt <= 0) { + break; + } + int result = smenaValueInt / value; + if (result > 0) { + if (value >= 100) { + coinSplitMap.put("csM-CZK-B-" + value, String.valueOf(result)); + } else { + coinSplitMap.put("csM-CZK-C-" + value, String.valueOf(result)); + } + smenaValueInt = smenaValueInt % value; + } + } + for (String item : coinSplitMap.keySet()) { + String xpath = String.format(COINSPLIT_DYNAMIC_PATH, item); + endpoint.type(() -> xpath, coinSplitMap.get(item), false, Lookup.XPATH); + } + + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN71Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN71Page.java new file mode 100644 index 0000000..9d35e8d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN71Page.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; + +public interface KSN71Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEBET_AMOUNT_INPUT); + } + + @CustomAction + default KSN71Page fillSymbols() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN72Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN72Page.java new file mode 100644 index 0000000..e8eab0e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN72Page.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; + +public interface KSN72Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEBET_AMOUNT_INPUT2); + } + + @CustomAction + default KSN72Page fillSymbols() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN74Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN74Page.java new file mode 100644 index 0000000..94517d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN74Page.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; + +public interface KSN74Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEBET_AMOUNT_INPUT); + } + + @CustomAction + default KSN74Page fillSymbols() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN75Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN75Page.java new file mode 100644 index 0000000..71cdd00 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN75Page.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; + +public interface KSN75Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, DEBET_AMOUNT_INPUT2); + } + + @CustomAction + default KSN75Page fillSymbols() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> VARIABLE_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN81Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN81Page.java new file mode 100644 index 0000000..3482196 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN81Page.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; + +public interface KSN81Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, AMOUNT_INPUT); + } + + @CustomAction + default KSN81Page fillAmount(String text) { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> AMOUNT_INPUT, text, true); + return null; + } + + @CustomAction + default KSN81Page fillConstantAndSpecificSymbols() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN83Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN83Page.java new file mode 100644 index 0000000..c06a9a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN83Page.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; + +public interface KSN83Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, AMOUNT_INPUT); + } + + @CustomAction + default KSN83Page fillConstantAndSpecificSymbols() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> CONSTANT_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> SPECIFIC_SYMBOL_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN86Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN86Page.java new file mode 100644 index 0000000..e269421 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN86Page.java @@ -0,0 +1,94 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAdress; +import cz.moneta.test.dsl.kasanova.components.enums.KSNBirthPlaces; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCountries; +import cz.moneta.test.dsl.kasanova.components.enums.KSNDescriptions; +import cz.moneta.test.dsl.kasanova.components.enums.KSNGender; +import cz.moneta.test.dsl.kasanova.components.enums.KSNIdCards; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNames; +import cz.moneta.test.dsl.kasanova.components.enums.KSNNumberGenerator; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; + +public interface KSN86Page extends KSNPageFlow, KSNUtils { + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, FEE_CODE); + } + + @CustomAction + default KSN86Page fillIdentificationMini() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, KSNCountries.getRandomCountryValue()); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), false); + endpoint.type(() -> DESCRIPTION_INPUT, KSNDescriptions.getRandomDescriptionValue(), false); + return null; + } + + @CustomAction + default KSN86Page fillIdentificationShort() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_ID_END_DATE_INPUT, DateUtils.getRandomDate(YEAR_ONE.getYear(), YEAR_MORE.getYear(), KSNPatterns.DDMMYYYY.getValue()), true); + String coutry = KSNCountries.getRandomCountryValue(); + endpoint.selectByVisibleText(IDENTIFICATION_COUNTRY_ID_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_LONG_TERM_RESIDENCE_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, coutry); + endpoint.type(() -> IDENTIFICATION_BIRTH_PLACE_INPUT, KSNBirthPlaces.getRandomBirthPlaceValue(), true); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), false); + endpoint.type(() -> DESCRIPTION_INPUT, KSNDescriptions.getRandomDescriptionValue(), false); + return null; + } + + @CustomAction + default KSN86Page fillIdentificationLong() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.type(() -> IDENTIFICATION_CLIENT_NAME_INPUT, KSNNames.getRandomNameValue(), true); + endpoint.type(() -> IDENTIFICATION_PERSONAL_NUMBER_INPUT, DateUtils.getRandomDate(1940, 2000, KSNPatterns.DD_MM_YYYY.getValue()), false); + endpoint.selectByVisibleText(IDENTIFICATION_SEX_SELECT, KSNGender.getRandomGenderValue()); + endpoint.selectByVisibleText(IDENTIFICATION_PERSONAL_NUMBER_TYPE_SELECT, KSNIdCards.getRandomIdCardValue()); + endpoint.type(() -> IDENTIFICATION_ID_NUMBER_INPUT, KSNNumberGenerator.getRandomNumberValue(), false); + endpoint.type(() -> IDENTIFICATION_ID_END_DATE_INPUT, DateUtils.getRandomDate(YEAR_ONE.getYear(), YEAR_MORE.getYear(), KSNPatterns.DDMMYYYY.getValue()), true); + String coutry = KSNCountries.getRandomCountryValue(); + endpoint.selectByVisibleText(IDENTIFICATION_COUNTRY_ID_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_LONG_TERM_RESIDENCE_SELECT, coutry); + endpoint.selectByVisibleText(IDENTIFICATION_NATIONALITY_SELECT, coutry); + endpoint.type(() -> IDENTIFICATION_BIRTH_PLACE_INPUT, KSNBirthPlaces.getRandomBirthPlaceValue(), true); + endpoint.type(() -> IDENTIFICATION_ADDRESS_INPUT, KSNAdress.getRandomAdressValue(), true); + endpoint.type(() -> DESCRIPTION_INPUT, KSNDescriptions.getRandomDescriptionValue(), false); + return null; + } + + @CustomAction + default KSN86Page dismissMultiAlerts(int timeout) { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + if (endpoint.isElementVisible(timeout, BUTTON_KASADIALOG, Lookup.XPATH)) { + endpoint.click(() -> BUTTON_KASADIALOG_OK, Lookup.XPATH); + } + if (endpoint.isElementVisible(timeout, BUTTON_KASADIALOG, Lookup.XPATH)) { + endpoint.click(() -> BUTTON_KASADIALOG_OK, Lookup.XPATH); + } + return null; + } + + @Select(FEE_CODE) + KSN86Page selectFee(String text); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN88Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN88Page.java new file mode 100644 index 0000000..ca46531 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN88Page.java @@ -0,0 +1,122 @@ +package cz.moneta.test.dsl.kasanova.components; + +import java.util.concurrent.TimeUnit; +import org.junit.jupiter.api.Assertions; +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +public interface KSN88Page extends KSNPageFlow, KSNUtils { + + String CURRENCY_TITLE = "//legend[@class='csBilanceLegend']"; + String BUTTON_COUNT = "count"; + String BUTTON_CHECK_CASH = "checkCashBtn"; + + default void loadPage(WebEndpoint endpoint) { + KSNPageFlow.loadLocalPage(endpoint, "tillMain_result"); + } + + @CustomAction + default KSN88Page checkCurrencyAndGoNext(String currency) { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + String pageCurrency = ""; + for (int i = 0; i < 10; i++) { + endpoint.waitForElementsToLoad(20, Lookup.XPATH, CURRENCY_TITLE); + String title = endpoint.getText(CURRENCY_TITLE, Lookup.XPATH); + String[] titleArray = title.split(" "); + pageCurrency = titleArray[1]; + if (currency.equals(pageCurrency)) { + break; + } else { + endpoint.sleep(TimeUnit.SECONDS, 2); + } + } + Assertions.assertEquals(currency, pageCurrency); + endpoint.click(() -> BUTTON_COUNT); + + fillTableBilance("csPapersBilance"); + + if ("CZK".equals(pageCurrency)) { + fillTableBilance("csCoinsBilance"); + } + endpoint.click(() -> BUTTON_NEXT); + return null; + } + + @CustomAction + default KSN88Page fillTableBilance(String moneyType) { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + String tbodySection = "//div[@id='tillMain']//div[@class='" + moneyType + "']//table//tbody//tr"; + int rows = endpoint.findAndGetListOfElements(tbodySection, Lookup.XPATH).size(); + char minus = '-'; + + for (int i = 2; i <= rows; i++) { + String firstCellInput = "//div[@id='tillMain']//div[@class='" + moneyType + "']//table//tbody//tr[" + i + "]//td[1]//input"; + String lastCellInput = "//div[@id='tillMain']//div[@class='" + moneyType + "']//table//tbody//tr[" + i + "]//td[4]//input[@name='tillMainDiffH']"; + String lastCellInputValue = endpoint.getAttribute(lastCellInput, Lookup.XPATH, "value"); + + if (!"0".equals(lastCellInputValue)) { + if (minus == lastCellInputValue.charAt(0)) { + lastCellInputValue = lastCellInputValue.substring(1); + endpoint.type(() -> firstCellInput, lastCellInputValue, true, Lookup.XPATH); + } + } + } + return null; + } + + @CustomAction + default KSN88Page fillVerification(String verifyUid, String verifySso, String verifyPass) { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.waitForElementsToLoad(30, Lookup.XPATH, Until.PRESENT_IN_DOM, VERIFY_DIALOG_IFRAME); + endpoint.switchToFrame(VERIFY_DIALOG_IFRAME, Lookup.XPATH); + endpoint.waitForElementsToLoad(30, Lookup.XPATH, Until.PRESENT_IN_DOM, VERIFY_DIALOG_UID); + endpoint.type(() -> VERIFY_DIALOG_UID, verifyUid, false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_SSOID, verifySso, false, Lookup.XPATH); + endpoint.type(() -> VERIFY_DIALOG_PASSWORD, verifyPass, false, Lookup.XPATH); + endpoint.switchToDefaultContent(); + endpoint.switchToFrame(MAIN_IFRAME_NAME); + endpoint.click(() -> VERIFY_BUTTON, Lookup.XPATH); + return null; + } + + @CustomAction + default KSNMainMenu dismissPrintWindow(int timeout) { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + if (endpoint.isAlertPresent(timeout)) { + endpoint.dismissAlert(1); + } + return null; + } + + @CustomAction + default KSN88Page kasaDialogClickOK(int timeoutSeconds) { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.waitForElementsToLoad(timeoutSeconds, Lookup.XPATH, Until.PRESENT_IN_DOM, BUTTON_KASADIALOG); + endpoint.click(() -> BUTTON_KASADIALOG_OK, Lookup.XPATH); + return null; + } + + @CustomAction + default KSNMainMenu verificationInfoDialogClose() { + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.waitForElementsToLoad(10, Lookup.XPATH, Until.PRESENT_IN_DOM, BUTTON_KASADIALOG); + endpoint.click(() -> BUTTON_KASADIALOG_OK, Lookup.XPATH); + return null; + } + + @Click(BUTTON_NEXT) + KSN88Page clickNext(); + + // button "Kontrola hotovosti + @Wait(value = BUTTON_CHECK_CASH, until = Until.CLICKABLE) + @Click(BUTTON_CHECK_CASH) + KSN88Page clickCashBalance(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN95Page.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN95Page.java new file mode 100644 index 0000000..bc182f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSN95Page.java @@ -0,0 +1,63 @@ +package cz.moneta.test.dsl.kasanova.components; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.endpoints.kasanova.KasanovaEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.SwitchToFrame; +import cz.moneta.test.harness.support.web.Until; +import org.junit.jupiter.api.Assertions; + +public interface KSN95Page extends KSNPageFlow, KSNUtils { + + @CustomAction + default KSNMainMenu executeStartDay(String tillId) { + + String ROOT_MENU = "//div[@id='root_menu']"; + String IFRAME = "//iframe[@id='ifr']"; + String MENU_09_BUTTON = "//button[text()='Údržbové operace']"; + String MENU_09_SUBMENU_01_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Start dne']"; + String FUNCTION_TITLE = "//div[@class='cTitle']"; + String START_DAY_TILL_ID = "//input[@name='tillId']"; + String START_DAY_TILL_CASH_BILANCE = "//input[@name='tillCacheBilance']"; + String START_DAY_BTN_CONTINUE = "//button[text()='Pokračovat']"; + String START_DAY_BTN_OK = "//button[@accesskey='O']"; + String START_DAY_FUNCTION_TITLE = "91 - Start dne"; + String BACK_TO_MAIN_MENU = "//button[@accesskey='E']"; + String CELL_TILL_SUMMARY = "//div[@class='cItem']//fieldset//table//tbody//tr[2]//td[3]"; + + KasanovaEndpoint endpoint = getEndpoint(KasanovaEndpoint.class); + endpoint.switchToDefaultContent(); + endpoint.switchToFrame(MAIN_IFRAME_XPATH, Lookup.XPATH); + + // Function 95 - "Celkový sumář pokladny" + endpoint.waitForElementsToLoad(30, Lookup.XPATH, CELL_TILL_SUMMARY); + String tillSummary = endpoint.getText(CELL_TILL_SUMMARY, Lookup.XPATH); // 1.390,95 + String tillSummaryWithoutDots = tillSummary.replaceAll("\\.", ""); // 1390,95 + String finalStringSummary = tillSummaryWithoutDots.substring(0, tillSummaryWithoutDots.length() - 3); // 1390 + endpoint.click(() -> BACK_TO_MAIN_MENU, Lookup.XPATH); + + // Function 91 - "Start dne" + endpoint.waitForElementsToLoad(30, Lookup.XPATH, ROOT_MENU); + endpoint.click(() -> MENU_09_BUTTON, Lookup.XPATH); + endpoint.click(() -> MENU_09_SUBMENU_01_BUTTON, Lookup.XPATH); + endpoint.waitForElementsToLoad(30, Lookup.XPATH, Until.PRESENT_IN_DOM, IFRAME); + endpoint.switchToFrame(IFRAME, Lookup.XPATH); + endpoint.waitForElementsToLoad(20, Lookup.XPATH, START_DAY_TILL_ID); + endpoint.type(() -> START_DAY_TILL_ID, tillId, false, Lookup.XPATH); + endpoint.type(() -> START_DAY_TILL_CASH_BILANCE, finalStringSummary, false, Lookup.XPATH); + endpoint.click(() -> START_DAY_BTN_CONTINUE, Lookup.XPATH); + endpoint.switchToDefaultContent(); + endpoint.switchToFrame(MAIN_IFRAME_XPATH, Lookup.XPATH); + endpoint.waitForElementsToLoad(30, Lookup.XPATH, FUNCTION_TITLE); + String titleStartDay = endpoint.getText(FUNCTION_TITLE, Lookup.XPATH); + Assertions.assertEquals(START_DAY_FUNCTION_TITLE, titleStartDay); + endpoint.click(() -> START_DAY_BTN_OK, Lookup.XPATH); + return null; + } + + @SwitchToFrame(MAIN_IFRAME_NAME) + KSN95Page switchToMainFrame(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSNMainMenu.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSNMainMenu.java new file mode 100644 index 0000000..f052401 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/KSNMainMenu.java @@ -0,0 +1,942 @@ +package cz.moneta.test.dsl.kasanova.components; + +import static cz.moneta.test.dsl.kasanova.components.KSNMainMenu.ROOT_MENU; + +import cz.moneta.test.dsl.kasanova.KSNPageFlow; +import cz.moneta.test.dsl.kasanova.KSNUtils; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.SwitchToFrame; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = ROOT_MENU, by = Lookup.XPATH, until=Until.PRESENT_IN_DOM) +public interface KSNMainMenu extends KSNPageFlow, KSNUtils, Builder { + + /** ---------------- SELECTING FOR FUNCTIONS ---------------- */ + + String ROOT_MENU = "//div[@id='root_menu']"; + String MA_ACC_NUMBER = "//input[@id='MANumber']"; + String CA_ACC_NUMBER = "//input[@id='CANaccNumber']"; + String WU_NUMBER = "//div[@id='divWUNumber']"; + String NEXT_BUTTON = "//button[@id='nextbtn']"; + String SMENA_NEXT_BUTTON = "//div[@id='div1Change']//button[text()='Pokračovat']"; + String TRX_CUR_SELECT = "//select[@id='currencysel']"; + String TRX_CUR_TILL_TRANS_SELECT = "//select[@id='currencyTillTrans']"; + String HK_ACC_NAME_SELECT = "//select[@id='HKAccounts']"; + String HK2_ACC_NAME_SELECT = "//select[@id='CHKAccounts']"; + String DEBET_ACC_NUMBER_SHOW = "//input[@id='debetAccNumber_show']"; + String CREDIT_ACC_NUMBER_SHOW = "//input[@id='creditAccNumber_show']"; + String CHECKBOX_KREDIT_HK = "credit3"; + String CHECKBOX_DEBET_HK = "debet3"; + String IFRAME = "//iframe[@id='ifr']"; + String START_DAY_TILL_ID = "//input[@name='tillId']"; + String BTN_CONTINUE = "//button[text()='Pokračovat']"; + + @SwitchToFrame(value = IFRAME, by = Lookup.XPATH) + @Wait(value = DEBET_ACC_NUMBER_SHOW, by = Lookup.XPATH, until = Until.PRESENT_IN_DOM) + @TypeInto(value = DEBET_ACC_NUMBER_SHOW, by = Lookup.XPATH) + KSNMainMenu debet_AccountNumber(String accountNumber); + + @TypeInto(value = CREDIT_ACC_NUMBER_SHOW, by = Lookup.XPATH) + KSNMainMenu credit_AccountNumber(String accountNumber); + + @Click(value = CHECKBOX_KREDIT_HK, by = Lookup.ID) + KSNMainMenu clickKreditHlKnihaCheckbox(); + + @Click(value = CHECKBOX_DEBET_HK, by = Lookup.ID) + KSNMainMenu clickDebetHlKnihaCheckbox(); + + @SwitchToFrame(value = IFRAME, by = Lookup.XPATH) + @Wait(value = MA_ACC_NUMBER, by = Lookup.XPATH, until = Until.PRESENT_IN_DOM) + @TypeInto(value = MA_ACC_NUMBER, by = Lookup.XPATH) + KSNMainMenu MA_AccountNumber(String accountNumber); + + @SwitchToFrame(value = IFRAME, by = Lookup.XPATH) + @Wait(value = CA_ACC_NUMBER, by = Lookup.XPATH, until = Until.PRESENT_IN_DOM) + @TypeInto(value = CA_ACC_NUMBER, by = Lookup.XPATH) + KSNMainMenu CA_AccountNumber(String accountNumber); + + @SwitchToFrame(value = IFRAME, by = Lookup.XPATH) + @Wait(value = WU_NUMBER, by = Lookup.XPATH, until = Until.PRESENT_IN_DOM) + KSNMainMenu WUNumber(); + + @Select(value = TRX_CUR_SELECT, by = Lookup.XPATH) + KSNMainMenu Currency(String option); + + @SwitchToFrame(value = IFRAME, by = Lookup.XPATH) + @Wait(value = TRX_CUR_TILL_TRANS_SELECT, by = Lookup.XPATH, until = Until.PRESENT_IN_DOM) + @Select(value = TRX_CUR_TILL_TRANS_SELECT, by = Lookup.XPATH) + KSNMainMenu CurrencyTillTrans(String option); + + @SwitchToFrame(value = IFRAME, by = Lookup.XPATH) + @Wait(value = HK_ACC_NAME_SELECT, by = Lookup.XPATH, until = Until.PRESENT_IN_DOM) + @Select(value = HK_ACC_NAME_SELECT, by = Lookup.XPATH) + KSNMainMenu HK_AccountNameSelect(String option); + + @SwitchToFrame(value = IFRAME, by = Lookup.XPATH) + @Wait(value = HK2_ACC_NAME_SELECT, by = Lookup.XPATH, until = Until.PRESENT_IN_DOM) + @Select(value = HK2_ACC_NAME_SELECT, by = Lookup.XPATH) + KSNMainMenu HK2_AccountNameSelect(String option); + + @SwitchToFrame(value = IFRAME, by = Lookup.XPATH) + @Wait(value = START_DAY_TILL_ID, by = Lookup.XPATH, until = Until.PRESENT_IN_DOM) + @TypeInto(value = START_DAY_TILL_ID, by = Lookup.XPATH) + KSNMainMenu fillTillId(String option); + +/** ------------------------------------------------------------------------------------------------------------------------------------------- **/ + + /** ---------------- SECTION A ---------------- **/ + + String MENU_0A_BUTTON = "//button[text()='Administrace']"; + @Click(value = MENU_0A_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSectionA(); + + /** ---- SUB SECTION A1 ---- **/ + + String MENU_0A_SUBMENU_01_BUTTON = "//td[text()='Administrace']//ancestor::tbody//button[text()='Uživatelé']"; + @Click(value = MENU_0A_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSubSectionA1(); + + /** ---- FUNCTION A11 ---- **/ + + String MENU_0A_SUBMENU_01_SUBMENU_01_BUTTON = "//button[text()='Přidat uživatele']"; + @Click(value = MENU_0A_SUBMENU_01_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA11(); + + /** ---- FUNCTION A12 ---- **/ + + String MENU_0A_SUBMENU_01_SUBMENU_02_BUTTON = "//button[text()='Seznam uživatelů']"; + @Click(value = MENU_0A_SUBMENU_01_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA12(); + + /** ---- FUNCTION A13 ---- **/ + + String MENU_0A_SUBMENU_01_SUBMENU_03_BUTTON = "//button[text()='Seznam přihlášených uživatelů']"; + @Click(value = MENU_0A_SUBMENU_01_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA13(); + + /** ---- FUNCTION A14 ---- **/ + + String MENU_0A_SUBMENU_01_SUBMENU_04_BUTTON = "//button[text()='Reset hesla']"; + @Click(value = MENU_0A_SUBMENU_01_SUBMENU_04_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA14(); + + /** ---- FUNCTION A15 ---- **/ + + String MENU_0A_SUBMENU_01_SUBMENU_05_BUTTON = "//button[text()='Potvrzení uzávěrky']"; + @Click(value = MENU_0A_SUBMENU_01_SUBMENU_05_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA15(); + + /** ---- FUNCTION A16 ---- **/ + + String MENU_0A_SUBMENU_01_SUBMENU_06_BUTTON = "//button[text()='Vyjmutí transakcí z AZT']"; + @Click(value = MENU_0A_SUBMENU_01_SUBMENU_06_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA16(); + + /** ---- FUNCTION A17 ---- **/ + + String MENU_0A_SUBMENU_01_SUBMENU_07_BUTTON = "//button[text()='Aktivní pokladny']"; + @Click(value = MENU_0A_SUBMENU_01_SUBMENU_07_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA17(); + + /** ---- FUNCTION A18 ---- **/ + + String MENU_0A_SUBMENU_01_SUBMENU_08_BUTTON = "//button[text()='Log - override flag']"; + @Click(value = MENU_0A_SUBMENU_01_SUBMENU_08_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA18(); + + /** ---- FUNCTION A19 ---- **/ + + String MENU_0A_SUBMENU_01_SUBMENU_09_BUTTON = "//button[text()='Seznam nepoužívaných účtů']"; + @Click(value = MENU_0A_SUBMENU_01_SUBMENU_09_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA19(); + + /** ---- FUNCTION A1A ---- **/ + + String MENU_0A_SUBMENU_01_SUBMENU_0A_BUTTON = "//button[text()='Potvrzení nespárovaných odvodů']"; + @Click(value = MENU_0A_SUBMENU_01_SUBMENU_0A_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA1A(); + + /** ---- FUNCTION A1B ---- **/ + + String MENU_0A_SUBMENU_01_SUBMENU_0B_BUTTON = "//button[text()='Povolení synchronizace nominálů']"; + @Click(value = MENU_0A_SUBMENU_01_SUBMENU_0B_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA1B(); + + /** ---- SUB SECTION A2 ---- **/ + + String MENU_0A_SUBMENU_02_BUTTON = "//td[text()='Administrace']//ancestor::tbody//button[text()='Skupiny']"; + @Click(value = MENU_0A_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSubSectionA2(); + + /** ---- FUNCTION A21 ---- **/ + + String MENU_0A_SUBMENU_02_SUBMENU_01_BUTTON = "//button[text()='Přidat skupinu']"; + @Click(value = MENU_0A_SUBMENU_02_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA21(); + + /** ---- FUNCTION A22 ---- **/ + + String MENU_0A_SUBMENU_02_SUBMENU_02_BUTTON = "//button[text()='Seznam skupin']"; + @Click(value = MENU_0A_SUBMENU_02_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA22(); + + /** ---- SUB SECTION A3 ---- **/ + + String MENU_0A_SUBMENU_03_BUTTON = "//td[text()='Administrace']//ancestor::tbody//button[text()='Změna parametrů']"; + @Click(value = MENU_0A_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSubSectionA3(); + + /** ---- FUNCTION A31 ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_01_BUTTON = "//button[text()='Aplikační parametry']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA31(); + + /** ---- FUNCTION A32 ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_02_BUTTON = "//button[text()='Security parametry']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA32(); + + /** ---- FUNCTION A33 ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_03_BUTTON = "//button[text()='Číselník účtů hlavní knihy']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA33(); + + /** ---- FUNCTION A34 ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_04_BUTTON = "//button[text()='Číselník nákladových středisek HK']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_04_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA34(); + + /** ---- FUNCTION A35 ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_05_BUTTON = "//button[text()='Nastavení parametrů zálohovaní']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_05_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA35(); + + /** ---- FUNCTION A36 ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_06_BUTTON = "//button[text()='Číselník kódů bank']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_06_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA36(); + + /** ---- FUNCTION A37 ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_07_BUTTON = "//button[text()='Číselník symbolů']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_07_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA37(); + + /** ---- FUNCTION A38 ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_08_BUTTON = "//button[text()='Nastavení limitů poplatků']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA38(); + + /** ---- FUNCTION A39 ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_09_BUTTON = "//button[text()='Výčetka']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_09_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA39(); + + /** ---- FUNCTION A30 ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_00_BUTTON = "//button[text()='Účty MTS a Leasing']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_00_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA30(); + + /** ---- FUNCTION A3A ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_0A_BUTTON = "//button[text()='Poplatky za mince/bankovky']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_0A_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA3A(); + + /** ---- FUNCTION A3B ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_0B_BUTTON = "//button[text()='Technické účty']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_0B_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA3B(); + + /** ---- FUNCTION A3C ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_0C_BUTTON = "//button[text()='Účty s nepovoleným výběrem']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_0C_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA3C(); + + /** ---- FUNCTION A3D ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_0D_BUTTON = "//button[text()='Účty podílových fondů']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_0D_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA3D(); + + /** ---- FUNCTION A3E ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_0E_BUTTON = "//button[text()='Nastavení poplatkových plánů']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_0E_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA3E(); + + /** ---- FUNCTION A3F ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_0F_BUTTON = "//button[text()='Účty s nepovoleným vkladem']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_0F_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA3F(); + + /** ---- FUNCTION A3G ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_0G_BUTTON = "//button[text()='Nastavení nepoplatkovaných účtů']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_0G_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA3G(); + + /** ---- FUNCTION A3H ---- **/ + + String MENU_0A_SUBMENU_03_SUBMENU_0H_BUTTON = "//button[text()='Nastavení Měn pro OM']"; + @Click(value = MENU_0A_SUBMENU_03_SUBMENU_0H_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA3H(); + + /** ---- SUB SECTION A4 ---- **/ + + String MENU_0A_SUBMENU_04_BUTTON = "//td[text()='Administrace']//ancestor::tbody//button[text()='Systémové akce']"; + @Click(value = MENU_0A_SUBMENU_04_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSubSectionA4(); + + /** ---- FUNCTION A41 ---- **/ + + String MENU_0A_SUBMENU_04_SUBMENU_01_BUTTON = "//button[text()='Změna systémové zprávy']"; + @Click(value = MENU_0A_SUBMENU_04_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA41(); + + /** ---- FUNCTION A42 ---- **/ + + String MENU_0A_SUBMENU_04_SUBMENU_02_BUTTON = "//button[text()='Restartovat']"; + @Click(value = MENU_0A_SUBMENU_04_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA42(); + + /** ---- FUNCTION A43 ---- **/ + + String MENU_0A_SUBMENU_04_SUBMENU_03_BUTTON = "//button[text()='Načíst kurzy z ICBS']"; + @Click(value = MENU_0A_SUBMENU_04_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA43(); + + /** ---- SUB SECTION A5 ---- **/ + + String MENU_0A_SUBMENU_05_BUTTON = "//td[text()='Administrace']//ancestor::tbody//button[text()='Audit']"; + @Click(value = MENU_0A_SUBMENU_05_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSubSectionA5(); + + /** ---- FUNCTION A51 ---- **/ + + String MENU_0A_SUBMENU_05_SUBMENU_01_BUTTON = "//button[text()='Změna systémové zprávy']"; + @Click(value = MENU_0A_SUBMENU_05_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA51(); + + /** ---- FUNCTION A52 ---- **/ + + String MENU_0A_SUBMENU_05_SUBMENU_02_BUTTON = "//button[text()='Restartovat']"; + @Click(value = MENU_0A_SUBMENU_05_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA52(); + + /** ---- FUNCTION A53 ---- **/ + + String MENU_0A_SUBMENU_05_SUBMENU_03_BUTTON = "//button[text()='Načíst kurzy z ICBS']"; + @Click(value = MENU_0A_SUBMENU_05_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA53(); + + /** ---- SUB SECTION A6 ---- **/ + + String MENU_0A_SUBMENU_06_BUTTON = "//td[text()='Administrace']//ancestor::tbody//button[text()='Pokladníci']"; + @Click(value = MENU_0A_SUBMENU_06_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSubSectionA6(); + + /** ---- FUNCTION A61 ---- **/ + + String MENU_0A_SUBMENU_06_SUBMENU_01_BUTTON = "//button[text()='Změna systémové zprávy']"; + @Click(value = MENU_0A_SUBMENU_06_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA61(); + + /** ---- FUNCTION A62 ---- **/ + + String MENU_0A_SUBMENU_06_SUBMENU_02_BUTTON = "//button[text()='Restartovat']"; + @Click(value = MENU_0A_SUBMENU_06_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunctionA62(); + + + /** ---- SUB SECTION A7 ---- **/ + String MENU_0A_SUBMENU_07_BUTTON = "//td[text()='Administrace']//ancestor::tbody//button[text()='Odkazy z pokladen']"; + @Click(value = MENU_0A_SUBMENU_07_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSubSectionA7(); + + /** ---- SUB SECTION A8 ---- **/ + String MENU_0A_SUBMENU_08_BUTTON = "//td[text()='Administrace']//ancestor::tbody//button[text()='Nastavení SignPadů']"; + @Click(value = MENU_0A_SUBMENU_08_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSubSectionA8(); + + /** ---- SUB SECTION A9 ---- **/ + String MENU_0A_SUBMENU_09_BUTTON = "//td[text()='Administrace']//ancestor::tbody//button[text()='Nastavení Recyklačních pokladen']"; + @Click(value = MENU_0A_SUBMENU_09_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSubSectionA9(); + + /** ---- SUB SECTION A0 ---- **/ + String MENU_0A_SUBMENU_0A_BUTTON = "//td[text()='Administrace']//ancestor::tbody//button[text()='Korekce nominálů Trezor <-> RP']"; + @Click(value = MENU_0A_SUBMENU_0A_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSubSectionAA(); + +/** ------------------------------------------------------------------------------------------------------------------------------------------- **/ + + /** ---------------- SECTION 1 ---------------- **/ + + String MENU_01_BUTTON = "//button[text()='Vklad v měně účtu']"; + @Click(value = MENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSection1(); + + /** ---- FUNCTION 11 ---- **/ + + String MENU_01_SUBMENU_01_BUTTON = "//td[text()='Vklad v měně účtu']//ancestor::tbody//button[text()='BÚ']"; + @Click(value = MENU_01_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction11(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN11Page EnterFunction11(); + + /** ---- FUNCTION 12 ---- **/ + + String MENU_01_SUBMENU_02_BUTTON = "//td[text()='Vklad v měně účtu']//ancestor::tbody//button[text()='VK']"; + @Click(value = MENU_01_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction12(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN12Page enterFunction12(); + + /** ---- FUNCTION 13 ---- **/ + + String MENU_01_SUBMENU_03_BUTTON = "//td[text()='Vklad v měně účtu']//ancestor::tbody//button[text()='TV']"; + @Click(value = MENU_01_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction13(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN13Page enterFunction13(); + + /** ---- FUNCTION 14 ---- **/ + + String MENU_01_SUBMENU_04_BUTTON = "//td[text()='Vklad v měně účtu']//ancestor::tbody//button[text()='HK']"; + @Click(value = MENU_01_SUBMENU_04_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction14(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN14Page EnterFunction14(); + + /** ---- FUNCTION 15 ---- **/ + + String MENU_01_SUBMENU_05_BUTTON = "//td[text()='Vklad v měně účtu']//ancestor::tbody//button[text()='Hypotéka (dříve WHB)']"; + @Click(value = MENU_01_SUBMENU_05_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction15(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN15Page enterFunction15(); + + /** ---- FUNCTION 16 ---- **/ + + String MENU_01_SUBMENU_06_BUTTON = "//td[text()='Vklad v měně účtu']//ancestor::tbody//button[text()='Odvod uzavřenými obaly']"; + @Click(value = MENU_01_SUBMENU_06_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction16(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN16Page enterFunction16(); + + /** ---- FUNCTION 17 ---- **/ + + String MENU_01_SUBMENU_07_BUTTON = "//td[text()='Vklad v měně účtu']//ancestor::tbody//button[text()='Vklad na jinou banku']"; + @Click(value = MENU_01_SUBMENU_07_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction17(); + + /** ---- FUNCTION 18 ---- **/ + + String MENU_01_SUBMENU_08_BUTTON = "//td[text()='Vklad v měně účtu']//ancestor::tbody//button[text()='Hromadný vklad']"; + @Click(value = MENU_01_SUBMENU_08_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction18(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN18Page enterFunction18(); + + /** ---- FUNCTION 19 ---- **/ + + String MENU_01_SUBMENU_09_BUTTON = "//td[text()='Vklad v měně účtu']//ancestor::tbody//button[text()='MONETA - Stavební spořitelna']"; + @Click(value = MENU_01_SUBMENU_09_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction19(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN19Page enterFunction19(); + +/** ------------------------------------------------------------------------------------------------------------------------------------------- **/ + + /** ---------------- SECTION 2 ---------------- **/ + + String MENU_02_BUTTON = "//button[text()='Vklad v jiné měně']"; + @Click(value = MENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSection2(); + + /** ---- FUNCTION 21 ---- **/ + + String MENU_02_SUBMENU_01_BUTTON = "//td[text()='Vklad v jiné měně']//ancestor::tbody//button[text()='BÚ']"; + @Click(value = MENU_02_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction21(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN21Page EnterFunction21(); + + /** ---- FUNCTION 22 ---- **/ + + String MENU_02_SUBMENU_02_BUTTON = "//td[text()='Vklad v jiné měně']//ancestor::tbody//button[text()='HK']"; + @Click(value = MENU_02_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction22(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN22Page EnterFunction22(); + +/** ------------------------------------------------------------------------------------------------------------------------------------------- **/ + + /** ---------------- SECTION 3 ---------------- **/ + + String MENU_03_BUTTON = "//button[text()='Výběr v měně účtu']"; + @Click(value = MENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSection3(); + + /** ---- FUNCTION 31 ---- **/ + + String MENU_03_SUBMENU_01_BUTTON = "//td[text()='Výběr v měně účtu']//ancestor::tbody//button[text()='BÚ']"; + @Click(value = MENU_03_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction31(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN31Page EnterFunction31(); + + /** ---- FUNCTION 32 ---- **/ + + String MENU_03_SUBMENU_02_BUTTON = "//td[text()='Výběr v měně účtu']//ancestor::tbody//button[text()='Šekem']"; + @Click(value = MENU_03_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction32(); + + /** ---- FUNCTION 33 ---- **/ + + String MENU_03_SUBMENU_03_BUTTON = "//td[text()='Výběr v měně účtu']//ancestor::tbody//button[text()='VK']"; + @Click(value = MENU_03_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction33(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN33Page enterFunction33(); + + /** ---- FUNCTION 34 ---- **/ + + String MENU_03_SUBMENU_04_BUTTON = "//td[text()='Výběr v měně účtu']//ancestor::tbody//button[text()='HK']"; + @Click(value = MENU_03_SUBMENU_04_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction34(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN34Page EnterFunction34(); + + /** ---- FUNCTION 35 ---- **/ + + String MENU_03_SUBMENU_05_BUTTON = "//td[text()='Výběr v měně účtu']//ancestor::tbody//button[text()='Výplata z FPV']"; + @Click(value = MENU_03_SUBMENU_05_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction35(); + + /** ---- FUNCTION 36 ---- **/ + + String MENU_03_SUBMENU_06_BUTTON = "//td[text()='Výběr v měně účtu']//ancestor::tbody//button[text()='BÚ - třetí osoba']"; + @Click(value = MENU_03_SUBMENU_06_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction36(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN36Page EnterFunction36(); + +/** ------------------------------------------------------------------------------------------------------------------------------------------- **/ + + /** ---------------- SECTION 4 ---------------- **/ + + String MENU_04_BUTTON = "//button[text()='Výběr v jiné měně']"; + @Click(value = MENU_04_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSection4(); + + /** ---- FUNCTION 41 ---- **/ + + String MENU_04_SUBMENU_01_BUTTON = "//td[text()='Výběr v jiné měně']//ancestor::tbody//button[text()='BÚ']"; + @Click(value = MENU_04_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction41(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN41Page EnterFunction41(); + + /** ---- FUNCTION 42 ---- **/ + + String MENU_04_SUBMENU_02_BUTTON = "//td[text()='Výběr v jiné měně']//ancestor::tbody//button[text()='HK']"; + @Click(value = MENU_04_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction42(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN42Page EnterFunction42(); + + /** ---- FUNCTION 43 ---- **/ + + String MENU_04_SUBMENU_03_BUTTON = "//td[text()='Výběr v jiné měně']//ancestor::tbody//button[text()='BÚ - třetí osoba']"; + @Click(value = MENU_04_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction43(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN43Page EnterFunction43(); + +/** ------------------------------------------------------------------------------------------------------------------------------------------- **/ + + /** ---------------- SECTION 5 ---------------- **/ + + String MENU_05_BUTTON = "//button[text()='Zrušení účtu']"; + @Click(value = MENU_05_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSection5(); + + /** ---- FUNCTION 51 ---- **/ + + String MENU_05_SUBMENU_01_BUTTON = "//td[text()='Zrušení účtu']//ancestor::tbody//button[text()='BÚ']"; + @Click(value = MENU_05_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction51(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN51Page enterFunction51(); + + /** ---- FUNCTION 52 ---- **/ + + String MENU_05_SUBMENU_02_BUTTON = "//td[text()='Zrušení účtu']//ancestor::tbody//button[text()='VK']"; + @Click(value = MENU_05_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction52(); + + /** ---- FUNCTION 53 ---- **/ + + String MENU_05_SUBMENU_03_BUTTON = "//td[text()='Zrušení účtu']//ancestor::tbody//button[text()='TV']"; + @Click(value = MENU_05_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction53(); + + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN53Page EnterFunction53(); + +/** ------------------------------------------------------------------------------------------------------------------------------------------- **/ + + /** ---------------- SECTION 6 ---------------- **/ + + String MENU_06_BUTTON = "//button[text()='Směnárna']"; + @Click(value = MENU_06_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSection6(); + + /** ---- FUNCTION 61 ---- **/ + + String MENU_06_SUBMENU_01_BUTTON = "//td[text()='Směnárna']//ancestor::tbody//button[text()='Nákup valut bankou']"; + @Click(value = MENU_06_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction61(); + + @SwitchToFrame(value = IFRAME, by = Lookup.XPATH) + @Wait(value = SMENA_NEXT_BUTTON, by = Lookup.XPATH, until = Until.PRESENT_IN_DOM) + @Click(value = SMENA_NEXT_BUTTON, by = Lookup.XPATH) + KSN61Page enterFunction61(); + + /** ---- FUNCTION 62 ---- **/ + + String MENU_06_SUBMENU_02_BUTTON = "//td[text()='Směnárna']//ancestor::tbody//button[text()='Prodej valut bankou']"; + @Click(value = MENU_06_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction62(); + + @SwitchToFrame(value = IFRAME, by = Lookup.XPATH) + @Wait(value = SMENA_NEXT_BUTTON, by = Lookup.XPATH, until = Until.PRESENT_IN_DOM) + @Click(value = SMENA_NEXT_BUTTON, by = Lookup.XPATH) + KSN62Page enterFunction62(); + + /** ---- FUNCTION 63 ---- **/ + + String MENU_06_SUBMENU_03_BUTTON = "//td[text()='Směnárna']//ancestor::tbody//button[text()='Konverze valut']"; + @Click(value = MENU_06_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction63(); + + /** ---- FUNCTION 64 ---- **/ + + String MENU_06_SUBMENU_04_BUTTON = "//td[text()='Směnárna']//ancestor::tbody//button[text()='Nákup valut v prekluzi bankou']"; + @Click(value = MENU_06_SUBMENU_04_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction64(); + +/** ------------------------------------------------------------------------------------------------------------------------------------------- **/ + + /** ---------------- SECTION 7 ---------------- **/ + + String MENU_07_BUTTON = "//button[text()='Bezhotovostní převod']"; + @Click(value = MENU_07_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSection7(); + + /** ---- FUNCTION 71 ---- **/ + + String MENU_07_SUBMENU_01_BUTTON = "//td[text()='Bezhotovostní převod']//ancestor::tbody//button[text()='Převod']"; + @Click(value = MENU_07_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction71(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN71Page EnterFunction71(); + + /** ---- FUNCTION 72 ---- **/ + + String MENU_07_SUBMENU_02_BUTTON = "//td[text()='Bezhotovostní převod']//ancestor::tbody//button[text()='Storno bezhotov.operací']"; + @Click(value = MENU_07_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction72(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN72Page EnterFunction72(); + + /** ---- FUNCTION 73 ---- **/ + + String MENU_07_SUBMENU_03_BUTTON = "//td[text()='Bezhotovostní převod']//ancestor::tbody//button[text()='Převod cash direct']"; + @Click(value = MENU_07_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction73(); + + /** ---- FUNCTION 74 ---- **/ + + String MENU_07_SUBMENU_04_BUTTON = "//td[text()='Bezhotovostní převod']//ancestor::tbody//button[text()='Převod bez klienta']"; + @Click(value = MENU_07_SUBMENU_04_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction74(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN74Page EnterFunction74(); + + /** ---- FUNCTION 75 ---- **/ + + String MENU_07_SUBMENU_05_BUTTON = "//td[text()='Bezhotovostní převod']//ancestor::tbody//button[text()='Storno bezhotov. operací bez klienta']"; + @Click(value = MENU_07_SUBMENU_05_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction75(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN75Page EnterFunction75(); + +/** ------------------------------------------------------------------------------------------------------------------------------------------- **/ + + /** ---------------- SECTION 8 ---------------- **/ + + String MENU_08_BUTTON = "//button[text()='Provozní operace']"; + @Click(value = MENU_08_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSection8(); + + /** ---- FUNCTION 81 ---- **/ + + String MENU_08_SUBMENU_01_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Odvod pokladny']"; + @Click(value = MENU_08_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction81(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN81Page EnterFunction81(); + + /** ---- FUNCTION 82 ---- **/ + + String MENU_08_SUBMENU_02_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Odvod mezi pokladnami']"; + @Click(value = MENU_08_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction82(); + + /** ---- FUNCTION 83 ---- **/ + + String MENU_08_SUBMENU_03_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Dotace pokladny']"; + @Click(value = MENU_08_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction83(); + + @Click(value = NEXT_BUTTON, by = Lookup.XPATH) + KSN83Page EnterFunction83(); + + /** ---- FUNCTION 84 ---- **/ + + String MENU_08_SUBMENU_04_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Dotace mezi pokladnami']"; + @Click(value = MENU_08_SUBMENU_04_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction84(); + + /** ---- FUNCTION 85 ---- **/ + + String MENU_08_SUBMENU_05_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Aktualizace VK']"; + @Click(value = MENU_08_SUBMENU_05_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction85(); + + /** ---- FUNCTION 86 ---- **/ + + String MENU_08_SUBMENU_06_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Výměna hotovosti']"; + @Click(value = MENU_08_SUBMENU_06_BUTTON, by = Lookup.XPATH) + KSN86Page KSNFunction86(); + + /** ---- FUNCTION 87 ---- **/ + + String MENU_08_SUBMENU_07_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Bilance hotovosti']"; + @Click(value = MENU_08_SUBMENU_07_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction87(); + + /** ---- FUNCTION 88 ---- **/ + + String MENU_08_SUBMENU_08_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Uzávěrka']"; + @Click(value = MENU_08_SUBMENU_08_BUTTON, by = Lookup.XPATH) + KSN88Page KSNFunction88(); + + /** ---- FUNCTION 89 ---- **/ + + String MENU_08_SUBMENU_09_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Nedokončené transakce']"; + @Click(value = MENU_08_SUBMENU_09_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction89(); + + /** ---- FUNCTION 8A ---- **/ + + String MENU_08_SUBMENU_0A_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Aktivování spícího účtu']"; + @Click(value = MENU_08_SUBMENU_0A_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction8A(); + + /** ---- FUNCTION 8B ---- **/ + + String MENU_08_SUBMENU_0B_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Potvrzení aktivace']"; + @Click(value = MENU_08_SUBMENU_0B_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction8B(); + + /** ---- FUNCTION 8C ---- **/ + + String MENU_08_SUBMENU_0C_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Nulový poplatek za výběr na OM']"; + @Click(value = MENU_08_SUBMENU_0C_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction8C(); + + /** ---- FUNCTION 8H ---- **/ + + String MENU_08_SUBMENU_0H_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Zobrazení účtu']"; + @Click(value = MENU_08_SUBMENU_0H_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction8H(); + + /** ---- FUNCTION 8I ---- **/ + + String MENU_08_SUBMENU_0I_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Zobrazení nepoplatkových účtů']"; + @Click(value = MENU_08_SUBMENU_0I_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction8I(); + + /** ---- FUNCTION 8J ---- **/ + + String MENU_08_SUBMENU_0J_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Zobrazení poplatkových plánů']"; + @Click(value = MENU_08_SUBMENU_0J_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction8J(); + + /** ---- FUNCTION 8K ---- **/ + + String MENU_08_SUBMENU_0K_BUTTON = "//td[text()='Provozní operace']//ancestor::tbody//button[text()='Karta klienta']"; + @Click(value = MENU_08_SUBMENU_0K_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction8K(); + +/** ------------------------------------------------------------------------------------------------------------------------------------------- **/ + + /** ---------------- SECTION 9 ---------------- **/ + + String MENU_09_BUTTON = "//button[text()='Údržbové operace']"; + @Click(value = MENU_09_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSection9(); + + /** ---- FUNCTION 91 ---- **/ + + String MENU_09_SUBMENU_01_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Start dne']"; + @Click(value = MENU_09_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction91(); + + /** ---- FUNCTION 92 ---- **/ + + String MENU_09_SUBMENU_02_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Dočasné odhlášení']"; + @Click(value = MENU_09_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction92(); + + /** ---- FUNCTION 93 ---- **/ + + String MENU_09_SUBMENU_03_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Trvalé odhlášení']"; + @Click(value = MENU_09_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction93(); + + /** ---- FUNCTION 94 ---- **/ + + String MENU_09_SUBMENU_04_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Celkový sumář OM']"; + @Click(value = MENU_09_SUBMENU_04_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction94(); + + /** ---- FUNCTION 95 ---- **/ + + String MENU_09_SUBMENU_05_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Celkový sumář pokladny']"; + @Click(value = MENU_09_SUBMENU_05_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction95(); + + @Click(value = BTN_CONTINUE, by = Lookup.XPATH) + KSN95Page enterFunction95(); + + /** ---- FUNCTION 96 ---- **/ + + String MENU_09_SUBMENU_06_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Žurnál']"; + @Click(value = MENU_09_SUBMENU_06_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction96(); + + /** ---- FUNCTION 97 ---- **/ + + String MENU_09_SUBMENU_07_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Archiv']"; + @Click(value = MENU_09_SUBMENU_07_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction97(); + + /** ---- SUB SECTION 98 ---- **/ + + String MENU_09_SUBMENU_08_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Původ/účel a vztah']"; + @Click(value = MENU_09_SUBMENU_08_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSubSection98(); + + /** ---- FUNCTION 981 ---- **/ + + String MENU_09_SUBMENU_08_SUBMENU_01_BUTTON = "//button[text()='Okno - původ/účel a vztah']"; + @Click(value = MENU_09_SUBMENU_08_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction981(); + + /** ---- FUNCTION 982 ---- **/ + + String MENU_09_SUBMENU_08_SUBMENU_02_BUTTON = "//button[text()='Nastavení okna původ/účel a vztah']"; + @Click(value = MENU_09_SUBMENU_08_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction982(); + + /** ---- FUNCTION 99 ---- **/ + + String MENU_09_SUBMENU_09_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Ověřované transakce']"; + @Click(value = MENU_09_SUBMENU_09_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction99(); + +/** ------------------------------------------------------------------------------------------------------------------------------------------- **/ + + /** ---------------- SECTION 9 ---------------- **/ + + String MENU_00_BUTTON = "//button[text()='Nastavení']"; + @Click(value = MENU_00_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNSection0(); + + /** ---- FUNCTION 01 ---- **/ + + String MENU_00_SUBMENU_01_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Změna hesla pokladníka']"; + @Click(value = MENU_00_SUBMENU_01_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction01(); + + /** ---- FUNCTION 02 ---- **/ + + String MENU_00_SUBMENU_02_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Změna e-mailu']"; + @Click(value = MENU_00_SUBMENU_02_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction02(); + + /** ---- FUNCTION 03 ---- **/ + + String MENU_00_SUBMENU_03_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Celkový účetního datumu']"; + @Click(value = MENU_00_SUBMENU_03_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction03(); + + /** ---- FUNCTION 04 ---- **/ + + String MENU_00_SUBMENU_04_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Nastavení tiskárny']"; + @Click(value = MENU_00_SUBMENU_04_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction04(); + + /** ---- FUNCTION 05 ---- **/ + + String MENU_00_SUBMENU_05_BUTTON = "//td[text()='Údržbové operace']//ancestor::tbody//button[text()='Potvrzení uzávěrky - override flag']"; + @Click(value = MENU_00_SUBMENU_05_BUTTON, by = Lookup.XPATH) + KSNMainMenu KSNFunction05(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNAccounts.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNAccounts.java new file mode 100644 index 0000000..828d5b5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNAccounts.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +public enum KSNAccounts{ + CZK_206971718("206971718"), + CZK_206980606("206980606"), + CZK_16916363("16916363"), + CZK_214419499("214419499"), + CZK_215667013("215667013"), + CZK_206973713("206973713"), + EUR_192019717("192019717"), + UCET_PENIZE_NA_CESTE("1191000"), + TV_CZK_156748779("156748779"), + TV_CZK_214564530("214564530"), + VK_CZK_4170859("4170859"), + UCET_STAVEBNI_SPORITELNA("115115115"), + UCET_HYPOTEKA("90026975"); + + private final String value; + + KSNAccounts(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNAdress.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNAdress.java new file mode 100644 index 0000000..a6bb969 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNAdress.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +import java.util.Random; + +public enum KSNAdress { + PRAHA_4("Praha 4, 255 08, Prčice"), + PLZEN_6("Plzeň 6, 251 87, Staromyslivecká"), + TEPLA_478("Teplá 478, 975 00, Dlouhá"), + OSTRAVA("Ostrava 17, 145 00, Dušná"); + + private final String value; + private final static Random random = new Random(); + + KSNAdress(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + + public static KSNAdress getRandomAdress() { + int i = random.nextInt(KSNAdress.values().length); + return KSNAdress.values()[i]; + } + + public static String getRandomAdressValue() { + int i = random.nextInt(KSNAdress.values().length); + return KSNAdress.values()[i].getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNBirthPlaces.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNBirthPlaces.java new file mode 100644 index 0000000..8872a69 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNBirthPlaces.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +import java.util.Random; + +public enum KSNBirthPlaces { + PRAHA("Praha"), + PLZEN("Plzeň"), + LONDON("Londýn"), + NEW_YORK("New York"), + MOSCOW("Moskva"); + + private final String value; + private static final Random random = new Random(); + + KSNBirthPlaces(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + + public static KSNBirthPlaces getRandomBirthPlace() { + int i = random.nextInt(KSNBirthPlaces.values().length); + return KSNBirthPlaces.values()[i]; + } + + public static String getRandomBirthPlaceValue() { + int i = random.nextInt(KSNBirthPlaces.values().length); + return KSNBirthPlaces.values()[i].getValue(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNCoinSplits.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNCoinSplits.java new file mode 100644 index 0000000..a8485d4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNCoinSplits.java @@ -0,0 +1,110 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum KSNCoinSplits implements DynamicPathPart { + + COINSPLIT_DELIVERED_CZK_5000_INPUT("csDelivered-CZK-B-5000"), + COINSPLIT_DELIVERED_CZK_2000_INPUT("csDelivered-CZK-B-2000"), + COINSPLIT_DELIVERED_CZK_1000_INPUT("csDelivered-CZK-B-1000"), + COINSPLIT_DELIVERED_CZK_500_INPUT("csDelivered-CZK-B-500"), + COINSPLIT_DELIVERED_CZK_200_INPUT("csDelivered-CZK-B-200"), + COINSPLIT_DELIVERED_CZK_100_INPUT("csDelivered-CZK-B-100"), + COINSPLIT_DELIVERED_CZK_50_INPUT("csDelivered-CZK-C-50"), + COINSPLIT_DELIVERED_CZK_20_INPUT("csDelivered-CZK-C-20"), + COINSPLIT_DELIVERED_CZK_10_INPUT("csDelivered-CZK-C-10"), + COINSPLIT_DELIVERED_CZK_5_INPUT("csDelivered-CZK-C-5"), + COINSPLIT_DELIVERED_CZK_2_INPUT("csDelivered-CZK-C-2"), + COINSPLIT_DELIVERED_CZK_1_INPUT("csDelivered-CZK-C-1"), + + COINSPLIT_REQUESTED_CZK_5000_INPUT("csRequested-CZK-B-5000"), + COINSPLIT_REQUESTED_CZK_2000_INPUT("csRequested-CZK-B-2000"), + COINSPLIT_REQUESTED_CZK_1000_INPUT("csRequested-CZK-B-1000"), + COINSPLIT_REQUESTED_CZK_500_INPUT("csRequested-CZK-B-500"), + COINSPLIT_REQUESTED_CZK_200_INPUT("csRequested-CZK-B-200"), + COINSPLIT_REQUESTED_CZK_100_INPUT("csRequested-CZK-B-100"), + COINSPLIT_REQUESTED_CZK_50_INPUT("csRequested-CZK-C-50"), + COINSPLIT_REQUESTED_CZK_20_INPUT("csRequested-CZK-C-20"), + COINSPLIT_REQUESTED_CZK_10_INPUT("csRequested-CZK-C-10"), + COINSPLIT_REQUESTED_CZK_5_INPUT("csRequested-CZK-C-5"), + COINSPLIT_REQUESTED_CZK_2_INPUT("csRequested-CZK-C-2"), + COINSPLIT_REQUESTED_CZK_1_INPUT("csRequested-CZK-C-1"), + + COINSPLIT_CZK_5000_INPUT("csMain-CZK-B-5000"), + COINSPLIT_CZK_2000_INPUT("csMain-CZK-B-2000"), + COINSPLIT_CZK_1000_INPUT("csMain-CZK-B-1000"), + COINSPLIT_CZK_500_INPUT("csMain-CZK-B-500"), + COINSPLIT_CZK_200_INPUT("csMain-CZK-B-200"), + COINSPLIT_CZK_100_INPUT("csMain-CZK-B-100"), + COINSPLIT_CZK_50_INPUT("csMain-CZK-C-50"), + COINSPLIT_CZK_20_INPUT("csMain-CZK-C-20"), + COINSPLIT_CZK_10_INPUT("csMain-CZK-C-10"), + COINSPLIT_CZK_5_INPUT("csMain-CZK-C-5"), + COINSPLIT_CZK_2_INPUT("csMain-CZK-C-2"), + COINSPLIT_CZK_1_INPUT("csMain-CZK-C-1"), + + COINSPLIT_FEE_MAIN_CZK_5000_INPUT("csFee2Main-CZK-B-5000"), + COINSPLIT_FEE_MAIN_CZK_2000_INPUT("csFee2Main-CZK-B-2000"), + COINSPLIT_FEE_MAIN_CZK_1000_INPUT("csFee2Main-CZK-B-1000"), + COINSPLIT_FEE_MAIN_CZK_500_INPUT("csFee2Main-CZK-B-500"), + COINSPLIT_FEE_MAIN_CZK_200_INPUT("csFee2Main-CZK-B-200"), + COINSPLIT_FEE_MAIN_CZK_100_INPUT("csFee2Main-CZK-B-100"), + COINSPLIT_FEE_MAIN_CZK_50_INPUT("csFee2Main-CZK-C-50"), + COINSPLIT_FEE_MAIN_CZK_20_INPUT("csFee2Main-CZK-C-20"), + COINSPLIT_FEE_MAIN_CZK_10_INPUT("csFee2Main-CZK-C-10"), + COINSPLIT_FEE_MAIN_CZK_5_INPUT("csFee2Main-CZK-C-5"), + COINSPLIT_FEE_MAIN_CZK_2_INPUT("csFee2Main-CZK-C-2"), + COINSPLIT_FEE_MAIN_CZK_1_INPUT("csFee2Main-CZK-C-1"), + + COINSPLIT_FEE_REMAINDER_CZK_5000_INPUT("csFee2Remainder-CZK-B-5000"), + COINSPLIT_FEE_REMAINDER_CZK_2000_INPUT("csFee2Remainder-CZK-B-2000"), + COINSPLIT_FEE_REMAINDER_CZK_1000_INPUT("csFee2Remainder-CZK-B-1000"), + COINSPLIT_FEE_REMAINDER_CZK_500_INPUT("csFee2Remainder-CZK-B-500"), + COINSPLIT_FEE_REMAINDER_CZK_200_INPUT("csFee2Remainder-CZK-B-200"), + COINSPLIT_FEE_REMAINDER_CZK_100_INPUT("csFee2Remainder-CZK-B-100"), + COINSPLIT_FEE_REMAINDER_CZK_50_INPUT("csFee2Remainder-CZK-C-50"), + COINSPLIT_FEE_REMAINDER_CZK_20_INPUT("csFee2Remainder-CZK-C-20"), + COINSPLIT_FEE_REMAINDER_CZK_10_INPUT("csFee2Remainder-CZK-C-10"), + COINSPLIT_FEE_REMAINDER_CZK_5_INPUT("csFee2Remainder-CZK-C-5"), + COINSPLIT_FEE_REMAINDER_CZK_2_INPUT("csFee2Remainder-CZK-C-2"), + COINSPLIT_FEE_REMAINDER_CZK_1_INPUT("csFee2Remainder-CZK-C-1"), + + COINSPLIT_USD_100_INPUT("csMain-USD-B-100"), + COINSPLIT_USD_50_INPUT("csMain-USD-B-50"), + COINSPLIT_USD_20_INPUT("csMain-USD-B-20"), + COINSPLIT_USD_10_INPUT("csMain-USD-B-10"), + COINSPLIT_USD_5_INPUT("csMain-USD-B-5"), + COINSPLIT_USD_2_INPUT("csMain-USD-B-2"), + COINSPLIT_USD_1_INPUT("csMain-USD-B-1"), + + SMENA_COINSPLIT_USD_100_INPUT("csM-USD-B-100"), + SMENA_COINSPLIT_USD_50_INPUT("csM-USD-B-50"), + SMENA_COINSPLIT_USD_20_INPUT("csM-USD-B-20"), + SMENA_COINSPLIT_USD_10_INPUT("csM-USD-B-10"), + SMENA_COINSPLIT_USD_5_INPUT("csM-USD-B-5"), + SMENA_COINSPLIT_USD_2_INPUT("csM-USD-B-2"), + SMENA_COINSPLIT_USD_1_INPUT("csM-USD-B-1"), + + COINSPLIT_EUR_500_INPUT("csMain-EUR-B-500"), + COINSPLIT_EUR_200_INPUT("csMain-EUR-B-200"), + COINSPLIT_EUR_100_INPUT("csMain-EUR-B-100"), + COINSPLIT_EUR_50_INPUT("csMain-EUR-B-50"), + COINSPLIT_EUR_20_INPUT("csMain-EUR-B-20"), + COINSPLIT_EUR_10_INPUT("csMain-EUR-B-10"), + COINSPLIT_EUR_5_INPUT("csMain-EUR-B-5"), + + COINSPLIT_GBP_50_INPUT("csMain-GBP-B-50"), + COINSPLIT_GBP_20_INPUT("csMain-GBP-B-20"), + COINSPLIT_GBP_10_INPUT("csMain-GBP-B-10"), + COINSPLIT_GBP_5_INPUT("csMain-GBP-B-5"); + + private final String value; + + KSNCoinSplits(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNCountries.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNCountries.java new file mode 100644 index 0000000..2f5c092 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNCountries.java @@ -0,0 +1,272 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +import java.util.Random; + +public enum KSNCountries { + CZ("Česká republika"), + AF("Afghánistán"), + AX("Alandské ostrovy"), + AL("Albánie"), + DZ("Alžírsko"), + AS("Americká Samoa"), + VI("Americké Panenské ostrovy"), + AD("Andorra"), + AO("Angola"), + AI("Anguilla"), + AQ("Antarktida"), + AG("Antigua a Barbuda"), + AR("Argentina"), + AM("Arménie"), + AW("Aruba"), + AU("Austrálie"), + AZ("Ázerbájdžán"), + BS("Bahamy"), + BH("Bahrajn"), + BD("Bangladéš"), + BB("Barbados"), + BE("Belgie"), + BZ("Belize"), + BY("Bělorusko"), + BJ("Benin"), + BM("Bermudy"), + BT("Bhútán"), + BO("Bolívie"), + BQ("Bonaire, Svatý Eustach a Saba"), + BA("Bosna a Hercegovina"), + BW("Botswana"), + BV("Bouvetův ostrov"), + BR("Brazílie"), + IO("Britské indickooceánské území"), + VG("Britské Panenské ostrovy"), + BN("Brunej"), + BG("Bulharsko"), + BF("Burkina Faso"), + BI("Burundi"), + TD("Čad"), + ME("Černá Hora"), + CL("Chile"), + HR("Chorvatsko"), + CN("Čína"), + CK("Cookovy ostrovy"), + CW("Curacao"), + DK("Dánsko"), + CD("Demokratická republika Kongo"), + DM("Dominika"), + DO("Dominikánská republika"), + DJ("Džibutsko"), + EG("Egypt"), + EC("Ekvádor"), + ER("Eritrea"), + EE("Estonsko"), + ET("Etiopie"), + FO("Faerské ostrovy"), + FK("Falklandy"), + FJ("Fidži"), + PH("Filipíny"), + FI("Finsko"), + FR("Francie"), + GF("Francouzská Guyana"), + TF("Francouzská jižní a antarktická území"), + PF("Francouzská Polynésie"), + GA("Gabon"), + GM("Gambie"), + GH("Ghana"), + GI("Gibraltar"), + GD("Grenada"), + GL("Grónsko"), + GE("Gruzie"), + GP("Guadeloupe"), + GU("Guam"), + GT("Guatemala"), + GG("Guernsey"), + GN("Guinea"), + GW("Guinea-Bissau"), + GY("Guyana"), + HT("Haiti"), + HM("Heardův ostrov a MacDonaldovy ostrovy"), + HN("Honduras"), + HK("Hongkong"), + IN("Indie"), + ID("Indonésie"), + IQ("Irák"), + IR("Írán"), + IE("Irsko"), + IS("Island"), + IT("Itálie"), + IL("Izrael"), + JM("Jamajka"), + JP("Japonsko"), + YE("Jemen"), + JE("Jersey"), + ZA("Jižní Afrika"), + GS("Jižní Georgie a Jižní Sandwichovy ostrovy"), + SS("Jižní Súdán"), + JO("Jordánsko"), + KY("Kajmanské ostrovy"), + KH("Kambodža"), + CM("Kamerun"), + CA("Kanada"), + CV("Kapverdy"), + QA("Katar"), + KZ("Kazachstán"), + KE("Keňa"), + KI("Kiribati"), + CC("Kokosové (Keelingovy) ostrovy"), + CO("Kolumbie"), + KM("Komory"), + CG("Konžská republika"), + KP("Korejská lidově demokratická republika"), + KR("Korejská republika"), + XK("Kosovo"), + CR("Kostarika"), + CU("Kuba"), + KW("Kuvajt"), + CY("Kypr"), + KG("Kyrgyzstán"), + LA("Laos"), + LS("Lesotho"), + LB("Libanon"), + LR("Libérie"), + LY("Libye"), + LI("Lichtenštejnsko"), + LT("Litva"), + LV("Lotyšsko"), + LU("Lucembursko"), + MO("Macao"), + MG("Madagaskar"), + HU("Maďarsko"), + MK("Makedonie"), + MY("Malajsie"), + MW("Malawi"), + MV("Maledivy"), + ML("Mali"), + MT("Malta"), + IM("Man"), + MA("Maroko"), + MH("Marshallovy ostrovy"), + MQ("Martinik"), + MU("Mauricius"), + MR("Mauritánie"), + YT("Mayotte"), + UM("Menší odlehlé ostrovy USA"), + MX("Mexiko"), + FM("Mikronésie"), + MD("Moldavsko"), + MC("Monako"), + MN("Mongolsko"), + MS("Montserrat"), + MZ("Mosambik"), + MM("Myanmar"), + NA("Namibie"), + NR("Nauru"), + DE("Německo"), + NP("Nepál"), + NE("Niger"), + NG("Nigérie"), + NI("Nikaragua"), + NU("Niue"), + NL("Nizozemsko"), + NF("Norfolk"), + NO("Norsko"), + NC("Nová Kaledonie"), + NZ("Nový Zéland"), + OM("Omán"), + PK("Pákistán"), + PW("Palau"), + PS("Palestina"), + PA("Panama"), + PG("Papua Nová Guinea"), + PY("Paraguay"), + PE("Peru"), + PN("Pitcairn"), + CI("Pobřeží Slonoviny"), + PL("Polsko"), + PR("Portoriko"), + PT("Portugalsko"), + AT("Rakousko"), + GR("Řecko"), + RE("Réunion"), + GQ("Rovníková Guinea"), + RO("Rumunsko"), + RU("Rusko"), + RW("Rwanda"), + PM("Saint Pierre a Miquelon"), + SB("Šalomounovy ostrovy"), + SV("Salvador"), + WS("Samoa"), + SM("San Marino"), + SA("Saúdská Arábie"), + SN("Senegal"), + MP("Severní Mariany"), + SC("Seychely"), + SL("Sierra Leone"), + SG("Singapur"), + SK("Slovensko"), + SI("Slovinsko"), + SO("Somálsko"), + ES("Španělsko"), + SJ("Špicberky a Jan Mayen"), + AE("Spojené arabské emiráty"), + US("Spojené státy"), + RS("Srbsko"), + LK("Šrí Lanka"), + CF("Středoafrická republika"), + SD("Súdán"), + SR("Surinam"), + SH("Svatá Helena"), + LC("Svatá Lucie"), + BL("Svatý Bartoloměj"), + KN("Svatý Kryštof a Nevis"), + MF("Svatý Martin (FR)"), + SX("Svatý Martin (NL)"), + ST("Svatý Tomáš a Princův ostrov"), + VC("Svatý Vincenc a Grenadiny"), + SZ("Svazijsko"), + SE("Švédsko"), + CH("Švýcarsko"), + SY("Sýrie"), + TJ("Tádžikistán"), + TZ("Tanzanie"), + TW("Tchaj-wan"), + TH("Thajsko"), + TG("Togo"), + TK("Tokelau"), + TO("Tonga"), + TT("Trinidad a Tobago"), + TN("Tunisko"), + TR("Turecko"), + TM("Turkmenistán"), + TC("Turks a Caicos"), + TV("Tuvalu"), + UG("Uganda"), + UA("Ukrajina"), + UY("Uruguay"), + UZ("Uzbekistán"), + CX("Vánoční ostrov"), + VU("Vanuatu"), + VA("Vatikán"), + GB("Velká Británie"), + VE("Venezuela"), + VN("Vietnam"), + TL("Východní Timor"), + WF("Wallis a Futuna"), + ZM("Zambie"), + EH("Západní Sahara"), + ZW("Zimbabwe"); + + private final String value; + private static final Random random = new Random(); + + KSNCountries(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + + public static String getRandomCountryValue() { + int i = random.nextInt(KSNCountries.values().length); + return KSNCountries.values()[i].getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNCurrencies.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNCurrencies.java new file mode 100644 index 0000000..74cfc5b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNCurrencies.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +public enum KSNCurrencies{ + CZK("CZK"), + USD("USD"), + GBP("GBP"), + EUR("EUR"), + HRK("HRK"), + CZK_NAME("CZK - Česká koruna"), + USD_NAME("USD - Americký dolar"), + GBP_NAME("GBP - Britská libra"), + EUR_NAME("EUR - Euro"), + HRK_NAME("HRK - Chorvatská kuna"); + + private final String value; + + KSNCurrencies(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNDescriptions.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNDescriptions.java new file mode 100644 index 0000000..3aa3423 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNDescriptions.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +import java.util.Random; + +public enum KSNDescriptions { + DSCP1("Klient se vyhýbá očnímu kontaktu"), + DSCP2("Klient je podezřelý"), + DSCP3("Je to fešák"), + DSCP4("Spěchá domů za manželkou"); + + private final String value; + private static final Random random = new Random(); + + KSNDescriptions(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + + public static KSNDescriptions getRandomDescription() { + int i = random.nextInt(KSNDescriptions.values().length); + return KSNDescriptions.values()[i]; + } + + public static String getRandomDescriptionValue() { + int i = random.nextInt(KSNDescriptions.values().length); + return KSNDescriptions.values()[i].getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNGender.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNGender.java new file mode 100644 index 0000000..9a9dbd4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNGender.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +import java.util.Random; + +public enum KSNGender { + MAN("Muž"), + WOMAN("Žena"); + + private final String value; + private static final Random random = new Random(); + + KSNGender(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + + public static String getRandomGenderValue() { + int i = random.nextInt(KSNGender.values().length); + return KSNGender.values()[i].getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNIdCards.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNIdCards.java new file mode 100644 index 0000000..dbfb798 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNIdCards.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +import java.util.Random; + +public enum KSNIdCards { + OP("OP"), + PAS("Pas"), + RIDICKY_PRUKAZ("ŘP"), + ID_CARD("ID card"), + POVOLENI_K_POBYTU("Povolení k pobytu"), + PRUKAZ_PRISLUSNIKA_CIZICH_OZBROJENYCH_SIL("Průkaz příslušníka cizích ozbrojených sil"); + + private final String value; + private static final Random random = new Random(); + + KSNIdCards(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + + public static String getRandomIdCardValue() { + int i = random.nextInt(KSNIdCards.values().length); + return KSNIdCards.values()[i].getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNNames.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNNames.java new file mode 100644 index 0000000..097c4e3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNNames.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +import java.util.Random; + +public enum KSNNames { + KAJA_MARIK("Kája Mařík"), + PETR_PAVEL("Petr Pavel"), + HONZA_JAN("Honza Jan"), + MIROSLAV_KECAL("Miroslav Kecal"); + + private final String value; + private static final Random random = new Random(); + + KSNNames(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + + public static KSNNames getRandomName() { + int i = random.nextInt(KSNNames.values().length); + return KSNNames.values()[i]; + } + + public static String getRandomNameValue() { + int i = random.nextInt(KSNNames.values().length); + return KSNNames.values()[i].getValue(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNNumberGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNNumberGenerator.java new file mode 100644 index 0000000..4cac7dc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNNumberGenerator.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +import java.util.Random; + +public enum KSNNumberGenerator { + N_248153694("248153694"), + N_145279816("145279816"), + N_499673661("499673661"), + N_667881222("667881222"), + N_1242874("1242874"), + N_7472722("7472722"), + N_7878982("7878982"), + N_4244547("4244547"), + N_47583("47583"), + N_12454("12454"), + N_17174("17174"), + N_32321("32321"); + + private final String value; + private static final Random random = new Random(); + + KSNNumberGenerator(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + + public static KSNNumberGenerator getRandomNumber() { + int i = random.nextInt(KSNNumberGenerator.values().length); + return KSNNumberGenerator.values()[i]; + } + + public static String getRandomNumberValue() { + int i = random.nextInt(KSNNumberGenerator.values().length); + return KSNNumberGenerator.values()[i].getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNOriginDeposit.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNOriginDeposit.java new file mode 100644 index 0000000..8ac492c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNOriginDeposit.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +public enum KSNOriginDeposit { + PUVOD_VKLADU_1("1 - Výnos/Náklad běžné podnikatelské činnosti"), + PUVOD_VKLADU_2("2 - Prodej/Nákup movitého a nemovitého majetku"), + PUVOD_VKLADU_3("3 - Dar/Dotace/Příspěvek/Výhra"), + PUVOD_VKLADU_4("4 - Půjčka/Úvěr"), + PUVOD_VKLADU_5("5 - Podíl na zisku/Dividenda/Renta"), + PUVOD_VKLADU_6("6 - Prodej/Nákup majetkového podílu, akcií"), + PUVOD_VKLADU_7("7 - Úspory uložené v jiných finančních institucích"), + PUVOD_VKLADU_8("8 - Finanční transakce v rámci rodiny"), + PUVOD_VKLADU_9("9 - Náhrada škody/Pojistné plnění/Odstupné"), + PUVOD_VKLADU_10("10 - Prodej/Nákup starožitností, drahých kovů, zbraní"), + PUVOD_VKLADU_11("11 - Prodej/Nákup kryptoměny"), + PUVOD_VKLADU_12("12 - Na dovolenou/Z dovolené"), + PUVOD_VKLADU_98("98 - Ostatní výše neuvedeno"), + PUVOD_VKLADU_99("99 - Odmítám uvést původ a účel finančních prostředků"); + + private final String value; + + KSNOriginDeposit(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNPatterns.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNPatterns.java new file mode 100644 index 0000000..8877d7c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNPatterns.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +public enum KSNPatterns { + DD_MM_YYYY("dd.MM.yyyy"), + DDMMYYYY("ddMMyyyy"); + + private final String value; + + KSNPatterns(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNPersons.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNPersons.java new file mode 100644 index 0000000..2dc8607 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNPersons.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +public enum KSNPersons { + TOM_THOMIK("Tom Thomik"), + DRAHOSLAV_VRZAL("Drahoslav Vrzal"), + MICHAL_PODPISOVIC("Michal Podpisovic"), + PAVEL_OPTICKY("Pavel Optický"), + ANDREA_NESOUHLAS("Andrea Nesouhlas"), + JAN_DRUHY("Jan Druhý"), + JAN_TRETI("Jan Třetí"), + JAN_BIO("Jan Bio"), + VACLAV_KARTAK("Václav Karták"), + ALOIS_OPTIK("Alois Optik"), + LEOS_CHALUPA("Leoš Chalupa"), + VACLAV_KSNTESTY("Václav Kart-NEBRAT-KSNTESTY"); + + private final String value; + + KSNPersons(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNRelationShipToTheOwner.java b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNRelationShipToTheOwner.java new file mode 100644 index 0000000..2658093 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/kasanova/components/enums/KSNRelationShipToTheOwner.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.kasanova.components.enums; + +public enum KSNRelationShipToTheOwner { + VZTAH_K_MAJITELI_21("21 - Rodinný příslušník"), + VZTAH_K_MAJITELI_22("22 - Zaměstnanec"), + VZTAH_K_MAJITELI_23("23 - Obchodní partner"), + VZTAH_K_MAJITELI_24("24 - Zákazník"), + VZTAH_K_MAJITELI_25("25 - Osobní vztah"), + VZTAH_K_MAJITELI_26("26 - Úřední vztah"), + VZTAH_K_MAJITELI_27("27 - Věřitel nebo dlužník"), + VZTAH_K_MAJITELI_97("97 - Odmítám uvést vztah k majiteli"); + + private final String value; + + KSNRelationShipToTheOwner(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/ios/IosKeyboard.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/ios/IosKeyboard.java new file mode 100644 index 0000000..50397d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/ios/IosKeyboard.java @@ -0,0 +1,58 @@ +package cz.moneta.test.dsl.mobile.ios; + +public enum IosKeyboard { + NUMBER_1("1"), + NUMBER_2("2"), + NUMBER_3("3"), + NUMBER_4("4"), + NUMBER_5("5"), + NUMBER_6("6"), + NUMBER_7("7"), + NUMBER_8("8"), + NUMBER_9("9"), + NUMBER_0("0"), + NUMBER_DELETE("Delete"), + Q("q"), + W("w"), + E("e"), + R("r"), + T("t"), + Y("y"), + U("u"), + I("i"), + O("o"), + P("p"), + A("a"), + S("s"), + D("d"), + F("f"), + G("g"), + H("h"), + J("j"), + K("k"), + L("l"), + Z("z"), + X("x"), + C("c"), + V("v"), + B("b"), + N("n"), + M("m"), + DELETE_SYMBOL("delete"), + SHIFT("shift"), + MORE("more"), + LANGUAGE("Next keyboard"), + DICTATE("dictation"), + SPACE("space"), + RETURN("Return"); + + private final String value; + + IosKeyboard(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/BalanceView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/BalanceView.java new file mode 100644 index 0000000..00fc312 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/BalanceView.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mobile.smartbanking; + +import cz.moneta.test.dsl.mobile.smartbanking.menu.SmartBankingMenu; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosWait; + +import static cz.moneta.test.dsl.mobile.smartbanking.BalanceView.IOS_MORE_MENU_BUTTON; +import static cz.moneta.test.dsl.mobile.smartbanking.BalanceView.NAVIGATION_MENU; + +@AndroidWait(value = NAVIGATION_MENU, by = MobileLookup.XPATH) +@IosWait(IOS_MORE_MENU_BUTTON) +public interface BalanceView extends SbViewFlow { + String NAVIGATION_MENU = "//android.widget.FrameLayout[contains(@resource-id, 'eu.inloop.gemoney.tst1:id/bottom_navigation_wrapper')]"; + String MORE_MENU_BUTTON = NAVIGATION_MENU + "//android.widget.TextView[@text = 'Více']"; + + String IOS_MORE_MENU_BUTTON = "Více"; + + @AndroidClick(value = MORE_MENU_BUTTON, by = MobileLookup.XPATH) + @IosClick(IOS_MORE_MENU_BUTTON) + SmartBankingMenu openMenu(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/CurrentAccounts.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/CurrentAccounts.java new file mode 100644 index 0000000..22ef5be --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/CurrentAccounts.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mobile.smartbanking; + +import cz.moneta.test.dsl.mobile.smartbanking.accounts.AccountSelectionView; +import cz.moneta.test.dsl.mobile.smartbanking.payment.Payment; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.smartbanka.MobilePlatform; +import cz.moneta.test.harness.endpoints.smartbanka.SbEndpoint; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.MobileCustomAction; +import cz.moneta.test.harness.support.web.Until; + +import static cz.moneta.test.dsl.mobile.smartbanking.CurrentAccounts.ANDROID_ACCOUNTS_LIST; +import static cz.moneta.test.dsl.mobile.smartbanking.CurrentAccounts.IOS_CURRENT_ACCOUNT; + +@IosWait(IOS_CURRENT_ACCOUNT) +@AndroidWait(ANDROID_ACCOUNTS_LIST) +public interface CurrentAccounts extends SbViewFlow, StoreAccessor { + String ANDROID_ACCOUNTS_LIST = "list_item_account_account"; + String ACCOUNT = "//android.widget.TextView[@text= '%s']"; + + String IOS_CURRENT_ACCOUNT = "Běžný účet"; + + @MobileCustomAction + default AccountSelectionView clickOnAccount(StoreAccessor storeAccessor, Payment payment) { + SbEndpoint sbEndpoint = getEndpoint(SbEndpoint.class); + String account = String.format(ACCOUNT, payment.getFromAccountWithBankCode()); + if (MobilePlatform.isAndroid(storeAccessor)) { + sbEndpoint.waitForElementsToLoad(20, MobileLookup.XPATH, Until.VISIBLE, account); + sbEndpoint.click(() -> account, MobileLookup.XPATH); + } else { + sbEndpoint.click(payment::getFromAccountWithBankCode, MobileLookup.IOS_NAME); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/SbViewFlow.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/SbViewFlow.java new file mode 100644 index 0000000..d5df5c5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/SbViewFlow.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mobile.smartbanking; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.smartbanka.SbEndpoint; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; +import cz.moneta.test.harness.support.web.CustomAction; + +public interface SbViewFlow> extends MobileFlow, StoreAccessor { + + @CustomAction + default A saveSource() { + getEndpoint(SbEndpoint.class).saveSources(getClass().getInterfaces()[0].getSimpleName()); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/accounts/AccountNameSb.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/accounts/AccountNameSb.java new file mode 100644 index 0000000..21a73a2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/accounts/AccountNameSb.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mobile.smartbanking.accounts; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum AccountNameSb implements DynamicPathPart { + CURRENT("current"), + SAVINGS("savings"); + + private final String accountName; + + AccountNameSb(String accountName) { + this.accountName = accountName; + } + + @Override + public String getValue() { + return accountName; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/accounts/AccountSelectionView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/accounts/AccountSelectionView.java new file mode 100644 index 0000000..0aec5f7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/accounts/AccountSelectionView.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.mobile.smartbanking.accounts; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.dsl.mobile.smartbanking.payment.PaymentView; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosWait; + +import static cz.moneta.test.dsl.mobile.smartbanking.accounts.AccountSelectionView.HORIZONTAL_MENU; +import static cz.moneta.test.dsl.mobile.smartbanking.accounts.AccountSelectionView.IOS_PAY_BUTTON; + +@AndroidWait(value = HORIZONTAL_MENU, by = MobileLookup.XPATH) +@IosWait(IOS_PAY_BUTTON) +public interface AccountSelectionView extends SbViewFlow, StoreAccessor { + String HORIZONTAL_MENU = "//android.widget.LinearLayout[contains(@resource-id, 'id/transaction_list_parent_horizontal_menu')]"; + String PAY_BUTTON = HORIZONTAL_MENU + "//android.widget.TextView[@text='Zaplatit']"; + + String IOS_PAY_BUTTON = "Zaplatit"; + + @IosClick(IOS_PAY_BUTTON) + @AndroidClick(value = PAY_BUTTON, by = MobileLookup.XPATH) + PaymentView payment(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivatedSmartBankingView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivatedSmartBankingView.java new file mode 100644 index 0000000..3643553 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivatedSmartBankingView.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mobile.smartbanking.activation; + +import cz.moneta.test.dsl.mobile.smartbanking.BalanceView; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; + +import static cz.moneta.test.dsl.mobile.smartbanking.activation.ActivatedSmartBankingView.ANDROID_SUCCESS_ACTIVATION_TEXT; + +@AndroidWait(value = ANDROID_SUCCESS_ACTIVATION_TEXT, by = MobileLookup.ANDROID_TEXT) +@IosWait(value = ActivatedSmartBankingView.IOS_SUCCESS_ACTIVATION_TEXT, by = MobileLookup.IOS_NAME) +public interface ActivatedSmartBankingView extends MobileFlow { + String ANDROID_SUCCESS_ACTIVATION_TEXT = "Registrace proběhla úspěšně."; + String ANDROID_RUN_SB_BUTTON = "btn_registration_complete_start_using"; + + String IOS_SUCCESS_ACTIVATION_TEXT = "Aktivace úspěšná"; + String IOS_RUN_SB_BTN = "//XCUIElementTypeButton[@name='Spustit Smart Banku']"; + + @AndroidWait(ANDROID_RUN_SB_BUTTON) + @AndroidClick(ANDROID_RUN_SB_BUTTON) + @IosWait(value = IOS_RUN_SB_BTN, by = MobileLookup.XPATH) + @IosClick(value = IOS_RUN_SB_BTN, by = MobileLookup.XPATH) + BalanceView startUsingSmartBaking(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivationElements.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivationElements.java new file mode 100644 index 0000000..0a3562f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivationElements.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mobile.smartbanking.activation; + +public interface ActivationElements { + String FIRST_ANDROID_TEXT = "Vítejte! Nyní vám ukážeme, jak si aktivujete Smart Banku, zaregistrujete mobilní zařízení a vytvoříte svůj unikátní PIN kód"; + String FIRST_IOS_TEXT = "Vítejte! Nyní Vám ukážeme, jak si nastavíte Smart Banku, zaregistrujete vaše mobilní zařízení a vytvoříte váš unikátní PIN kód."; + + String SECOND_IOS_TEXT = "Přihlaste se do své Internet Banky. Vyberte „Nastavení“ a poté v levém menu položku „Smart Banka“."; + String SECOND_ANDROID_TEXT = "Přihlaste se do své Internet Banky. Vyberte \"Nastavení\" a poté v levém menu položku \"Smart Banka\""; + + String THIRD_IOS_TEXT = "Klikněte na „Nová registrace“ (pokud si Smart Banku aktivujete poprvé, následujte kroky k uzavření smlouvy o aktivaci služby)."; + String THIRD_ANDROID_TEXT = "Klikněte na \"Nová registrace\" (pokud si Smart Banku aktivujete poprvé, následujte kroky k uzavření smlouvy o aktivaci služby)."; + + String LAST_ANDROID_TEXT = "Naskenujte aktivační kód z Internet Banky telefonem nebo jej přepište ručně."; + String LAST_IOS_TEXT = "Naskenujte aktivační kód telefonem nebo jej přepište ručně."; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivationPinView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivationPinView.java new file mode 100644 index 0000000..89d0489 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivationPinView.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mobile.smartbanking.activation; + +import cz.moneta.test.dsl.mobile.smartbanking.landing.PinView; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; + +@AndroidWait(value = ActivationPinView.PIN_TITLE_TEXT, by = MobileLookup.ANDROID_TEXT) +@IosWait(ActivationPinView.IOS_PIN_TITLE_TEXT) +public interface ActivationPinView extends MobileFlow, PinView { + String PIN_TITLE_TEXT = "Vytvořte si svůj PIN kód pro Smart Banku a potvrďte."; //can't be used for ios + String IOS_PIN_TITLE_TEXT = "Vytvořte si svůj PIN kód pro Smart Banku a potvrďte."; + + ConfirmPinView onConfirmView(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivationView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivationView.java new file mode 100644 index 0000000..bb94a4e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ActivationView.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mobile.smartbanking.activation; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosWait; + +import static cz.moneta.test.dsl.mobile.smartbanking.activation.ActivationView.ALREADY_CLIENT_BUTTON_ID; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.ActivationView.IOS_ACTIVATION_BTN; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.ActivationView.IOS_NEW_ACCOUNT; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.ActivationView.NEW_ACCOUNT; + +@AndroidWait(value = {ALREADY_CLIENT_BUTTON_ID, NEW_ACCOUNT}, waitSecondsForElement = 120) +@IosWait(value = {IOS_ACTIVATION_BTN, IOS_NEW_ACCOUNT}, by = MobileLookup.IOS_NAME) +public interface ActivationView extends SbViewFlow { + String ALREADY_CLIENT_BUTTON_ID = "btn_already_client"; + String NEW_ACCOUNT = "btn_become_client"; + + String IOS_ACTIVATION_BTN = "Připojit se k mému účtu"; + String IOS_NEW_ACCOUNT = "Založit si nový účet"; + String USING_INTERNET_BANKING = "Připojit pomocí Internet Banky"; + + @AndroidClick(ALREADY_CLIENT_BUTTON_ID) + @IosClick(value = IOS_ACTIVATION_BTN, andWait = @IosWait(USING_INTERNET_BANKING)) + @IosClick(USING_INTERNET_BANKING) + FirstActivationView activateSmartBanking(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ConfirmPinView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ConfirmPinView.java new file mode 100644 index 0000000..f4136c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ConfirmPinView.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mobile.smartbanking.activation; + +import cz.moneta.test.dsl.mobile.smartbanking.landing.PinView; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; + +@AndroidWait(value = ConfirmPinView.CONFIRM_PIN_TITLE_TEXT, by = MobileLookup.ANDROID_TEXT) +@IosWait(ConfirmPinView.IOS_CONFIRM_PIN_TITLE_TEXT) +public interface ConfirmPinView extends MobileFlow, PinView { + String CONFIRM_PIN_TITLE_TEXT = "Zopakujte ještě jednou svůj zvolený PIN kód a potvrďte."; //can't be used for ios + String IOS_CONFIRM_PIN_TITLE_TEXT = "Zopakujte ještě jednou svůj zvolený PIN kód a potvrďte."; + + FinishActivationView onFinishActivationView(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/FinishActivationView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/FinishActivationView.java new file mode 100644 index 0000000..2c05d5b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/FinishActivationView.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mobile.smartbanking.activation; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; + +@AndroidWait(value = FinishActivationView.ANDROID_WAITING_FOR_SMS_TEXT, by = MobileLookup.ANDROID_TEXT) +@IosWait(FinishActivationView.IOS_WAITING_FOR_SMS_TEXT) +public interface FinishActivationView extends MobileFlow { + String ANDROID_WAITING_FOR_SMS_TEXT = "Vyčkejte nyní na SMS zprávu s \"Mobilním klíčem\" a zadejte jej do Internet Banky. Následně pak zvolte \"Pokračovat\""; + String ANDROID_ACTIVATION_COMPLETE_BTN = "btn_registration_complete_continue"; + + String IOS_WAITING_FOR_SMS_TEXT = "Vyčkejte nyní na SMS zprávu s „Mobilním klíčem“ a zadejte jej do Internet Banky. Následně pak zvolte „Pokračovat“."; + String IOS_ACTIVATE_COMPLETE_BTN = "Pokračovat"; + + @AndroidWait(ANDROID_ACTIVATION_COMPLETE_BTN) + @AndroidClick(ANDROID_ACTIVATION_COMPLETE_BTN) + @IosWait(value = IOS_ACTIVATE_COMPLETE_BTN, by = MobileLookup.IOS_NAME) + @IosClick(value = IOS_ACTIVATE_COMPLETE_BTN, by = MobileLookup.IOS_NAME) + ActivatedSmartBankingView tapOnCompleteActivationButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/FirstActivationView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/FirstActivationView.java new file mode 100644 index 0000000..fb1878e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/FirstActivationView.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mobile.smartbanking.activation; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.smartbanka.SbEndpoint; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.MobileCustomAction; + +import static cz.moneta.test.dsl.mobile.smartbanking.activation.FirstActivationView.FIRST_ANDROID_TEXT; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.FirstActivationView.FIRST_IOS_TEXT; + +@AndroidWait(value = FIRST_ANDROID_TEXT, by = MobileLookup.ANDROID_TEXT) +@IosWait(FIRST_IOS_TEXT) +public interface FirstActivationView extends SbViewFlow, ActivationElements, StoreAccessor { + + @MobileCustomAction + default SecondActivationView swipeToSecondActivationView(){ + SbEndpoint mobileEndpoint = getEndpoint(SbEndpoint.class); + mobileEndpoint.swipeViewLeft(); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/LastActivationView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/LastActivationView.java new file mode 100644 index 0000000..f5006e1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/LastActivationView.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mobile.smartbanking.activation; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.android.AndroidWaits; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.ios.IosWaits; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; + +import static cz.moneta.test.dsl.mobile.smartbanking.activation.ActivationElements.LAST_ANDROID_TEXT; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.ActivationElements.LAST_IOS_TEXT; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.LastActivationView.ANDROID_COPY_CODE; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.LastActivationView.ANDROID_SCAN_CODE; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.LastActivationView.IOS_COPY_CODE; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.LastActivationView.IOS_SCAN_CODE; + +@AndroidWaits(value = { + @AndroidWait(value = LAST_ANDROID_TEXT, by = MobileLookup.ANDROID_TEXT), + @AndroidWait({ANDROID_SCAN_CODE, ANDROID_COPY_CODE})}) +@IosWaits(value = { + @IosWait(LAST_IOS_TEXT), + @IosWait(value = {IOS_SCAN_CODE, IOS_COPY_CODE}, by = MobileLookup.IOS_NAME)}) +public interface LastActivationView extends MobileFlow, ActivationElements { + + String ANDROID_SCAN_CODE = "btn_registration_wizard_fragment_scan_code"; + String IOS_SCAN_CODE = "Naskenovat aktivační kód"; + + String ANDROID_COPY_CODE = "btn_registration_wizard_fragment_type_code"; + String IOS_COPY_CODE = "Přepsat aktivační kód"; + + @AndroidClick(ANDROID_COPY_CODE) + @IosClick(value = IOS_COPY_CODE, by = MobileLookup.IOS_NAME) + SetActivationCodeView chooseManualCodeEntry(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/SecondActivationView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/SecondActivationView.java new file mode 100644 index 0000000..2fe09db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/SecondActivationView.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mobile.smartbanking.activation; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.smartbanka.SbEndpoint; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.MobileCustomAction; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; + +import static cz.moneta.test.dsl.mobile.smartbanking.activation.ActivationElements.SECOND_ANDROID_TEXT; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.ActivationElements.SECOND_IOS_TEXT; + +@AndroidWait(value = SECOND_ANDROID_TEXT, by = MobileLookup.ANDROID_TEXT) +@IosWait(SECOND_IOS_TEXT) +public interface SecondActivationView extends MobileFlow, ActivationElements, StoreAccessor { + + @MobileCustomAction + default ThirdActivationView swipeToThirdActivationView(){ + SbEndpoint mobileEndpoint = getEndpoint(SbEndpoint.class); + mobileEndpoint.swipeViewLeft(); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/SetActivationCodeView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/SetActivationCodeView.java new file mode 100644 index 0000000..108d71d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/SetActivationCodeView.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.mobile.smartbanking.activation; + +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidTypeInto; +import cz.moneta.test.harness.support.mobile.android.AndroidTypeIntos; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosTypeInto; +import cz.moneta.test.harness.support.mobile.ios.IosTypeIntos; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; + +import static cz.moneta.test.dsl.mobile.smartbanking.activation.SetActivationCodeView.IOS_CODE_FIRST; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.SetActivationCodeView.IOS_CODE_SECOND; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.SetActivationCodeView.IOS_CODE_THIRD; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.SetActivationCodeView.IOS_CODE_FOURTH; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.SetActivationCodeView.ANDROID_CODE_FIRST; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.SetActivationCodeView.ANDROID_CODE_SECOND; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.SetActivationCodeView.ANDROID_CODE_THIRD; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.SetActivationCodeView.ANDROID_CODE_FOURTH; + +@IosWait(value = {IOS_CODE_FIRST, IOS_CODE_SECOND, IOS_CODE_THIRD, IOS_CODE_FOURTH}, by = MobileLookup.XPATH) +@AndroidWait(value = {ANDROID_CODE_FIRST, ANDROID_CODE_SECOND, ANDROID_CODE_THIRD, ANDROID_CODE_FOURTH}) +public interface SetActivationCodeView extends MobileFlow { + String ANDROID_CODE_FIRST = "edit_input_activation_code_first"; + String ANDROID_CODE_SECOND = "edit_input_activation_code_second"; + String ANDROID_CODE_THIRD = "edit_input_activation_code_third"; + String ANDROID_CODE_FOURTH = "edit_input_activation_code_fourth"; + String ANDROID_CONTINUE_BUTTON = "btn_input_code_continue"; + + String IOS_CODE_FIRST = "//XCUIElementTypeTextField[1]"; + String IOS_CODE_SECOND = "//XCUIElementTypeTextField[2]"; + String IOS_CODE_THIRD = "//XCUIElementTypeTextField[3]"; + String IOS_CODE_FOURTH = "//XCUIElementTypeTextField[4]"; + String IOS_CONTINUE_BUTTON = "Pokračovat"; + + @IosTypeIntos({ + @IosTypeInto(value = IOS_CODE_FIRST, by = MobileLookup.XPATH, hideKeyboardAfterType = false), + @IosTypeInto(value = IOS_CODE_SECOND, by = MobileLookup.XPATH, hideKeyboardAfterType = false), + @IosTypeInto(value = IOS_CODE_THIRD, by = MobileLookup.XPATH, hideKeyboardAfterType = false), + @IosTypeInto(value = IOS_CODE_FOURTH, by = MobileLookup.XPATH, hideKeyboardAfterType = false, andWait = @IosWait(IOS_CONTINUE_BUTTON))}) + @AndroidTypeIntos({ + @AndroidTypeInto(value = ANDROID_CODE_FIRST, hideKeyboardAfterType = false), + @AndroidTypeInto(value = ANDROID_CODE_SECOND, hideKeyboardAfterType = false), + @AndroidTypeInto(value = ANDROID_CODE_THIRD, hideKeyboardAfterType = false), + @AndroidTypeInto(value = ANDROID_CODE_FOURTH, hideKeyboardAfterType = false, andWait = @AndroidWait(ANDROID_CONTINUE_BUTTON))}) + SetActivationCodeView typePartsOfCode(String firstPart, String secondPart, String thirdPart, String fourthPart); + + @AndroidClick(ANDROID_CONTINUE_BUTTON) + @IosClick(IOS_CONTINUE_BUTTON) + ActivationPinView tapOnContinueButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ThirdActivationView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ThirdActivationView.java new file mode 100644 index 0000000..e971cfc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/activation/ThirdActivationView.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mobile.smartbanking.activation; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.smartbanka.SbEndpoint; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.MobileCustomAction; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; + +import static cz.moneta.test.dsl.mobile.smartbanking.activation.ActivationElements.THIRD_ANDROID_TEXT; +import static cz.moneta.test.dsl.mobile.smartbanking.activation.ActivationElements.THIRD_IOS_TEXT; + +@AndroidWait(value = THIRD_ANDROID_TEXT, by = MobileLookup.ANDROID_TEXT) +@IosWait(THIRD_IOS_TEXT) +public interface ThirdActivationView extends MobileFlow, ActivationElements, StoreAccessor { + + @MobileCustomAction + default LastActivationView swipeToLastActivationView(){ + SbEndpoint mobileEndpoint = getEndpoint(SbEndpoint.class); + mobileEndpoint.swipeViewLeft(); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/home/Sb.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/home/Sb.java new file mode 100644 index 0000000..7c6b695 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/home/Sb.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mobile.smartbanking.home; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.mobile.smartbanking.activation.ActivationView; +import cz.moneta.test.dsl.mobile.smartbanking.landing.LandingView; +import cz.moneta.test.harness.endpoints.smartbanka.MobilePlatform; +import cz.moneta.test.harness.endpoints.smartbanka.SbEndpoint; +import cz.moneta.test.harness.support.mobile.share.Builders; + +public class Sb { + + private final Harness harness; + + public Sb(Harness harness) { + this.harness = harness; + } + + public LandingView onLandingPage() { + SbEndpoint endpoint = harness.getEndpoint(SbEndpoint.class); + endpoint.connect(); + return Builders.newMobileFlowBuilder(LandingView.class, endpoint, harness); + } + + public ActivationView onActivationPage() { + SbEndpoint endpoint = harness.getEndpoint(SbEndpoint.class); + endpoint.resetApp(); + if (!MobilePlatform.isAndroid(harness)) { + endpoint.acceptAlert(5); + } + return Builders.newMobileFlowBuilder(ActivationView.class, endpoint, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/landing/LandingView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/landing/LandingView.java new file mode 100644 index 0000000..2325cb9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/landing/LandingView.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mobile.smartbanking.landing; + +import cz.moneta.test.dsl.mobile.smartbanking.BalanceView; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; + +import static cz.moneta.test.dsl.mobile.smartbanking.landing.LandingView.ANDROID_TEXT; +import static cz.moneta.test.dsl.mobile.smartbanking.landing.LandingView.IOS_TEXT; + +@IosWait(IOS_TEXT) +@AndroidWait(value = ANDROID_TEXT, waitSecondsForElement = 120) +public interface LandingView extends MobileFlow, PinView { + String ANDROID_TEXT = "txt_forgotten_pin"; + String IOS_TEXT = "Zapomněli jste PIN kód?"; + + BalanceView onBalanceView(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/landing/PinView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/landing/PinView.java new file mode 100644 index 0000000..1d80ebb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/landing/PinView.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.mobile.smartbanking.landing; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.smartbanka.MobilePlatform; +import cz.moneta.test.harness.endpoints.smartbanka.SbEndpoint; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidTypeInto; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosTypeInto; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.MobileCustomAction; +import cz.moneta.test.harness.support.mobile.share.MobileFlow; + +import java.util.Arrays; + +import static cz.moneta.test.dsl.mobile.smartbanking.landing.PinView.IOS_PIN_INPUT; +import static cz.moneta.test.dsl.mobile.smartbanking.landing.PinView.PIN_INPUT; + +@AndroidWait(value = PIN_INPUT) +@IosWait(IOS_PIN_INPUT) +public interface PinView> extends StoreAccessor { + String PIN_INPUT = "edit_pin_value"; + String PIN_SUBMIT = "btn_pin_submit"; + + String IOS_PIN_SUBMIT = "PIN_BUTTON"; + String IOS_PIN_INPUT = "PIN_TEXT"; + + @AndroidTypeInto(value = PIN_INPUT) + @IosTypeInto(IOS_PIN_INPUT) + @AndroidClick(value = PIN_SUBMIT) + @IosClick(IOS_PIN_SUBMIT) + T typePinAndContinue(String pin); + + @MobileCustomAction + default T enterPinUsingKeyboard(StoreAccessor store, SmartBankingLoginKeyboard... pin) { + SbEndpoint sbEndpoint = getEndpoint(SbEndpoint.class); + if (MobilePlatform.isAndroid(store)) { + Arrays.stream(pin).forEach(key -> sbEndpoint.click(key::getAndroidValue, MobileLookup.ID)); + sbEndpoint.click(() -> PIN_SUBMIT, MobileLookup.DEFAULT); + } else { + Arrays.stream(pin).forEach(key -> sbEndpoint.click(key::getValue, MobileLookup.ID)); + sbEndpoint.click(() -> IOS_PIN_SUBMIT, MobileLookup.DEFAULT); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/landing/SmartBankingLoginKeyboard.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/landing/SmartBankingLoginKeyboard.java new file mode 100644 index 0000000..b077a11 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/landing/SmartBankingLoginKeyboard.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mobile.smartbanking.landing; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum SmartBankingLoginKeyboard implements DynamicPathPart { + KEY_1("key_1", "1"), + KEY_2("key_2", "2"), + KEY_3("key_3", "3"), + KEY_4("key_4", "4"), + KEY_5("key_5", "5"), + KEY_6("key_6", "6"), + KEY_7("key_7", "7"), + KEY_8("key_8", "8"), + KEY_9("key_9", "9"); + + private final String androidKey; + + private final String iosKey; + + SmartBankingLoginKeyboard(String androidKey, String iosKey) { + this.androidKey = androidKey; + this.iosKey = iosKey; + } + + @Override + public String getValue() { + return iosKey; + } + + public String getAndroidValue() { + return androidKey; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/menu/SmartBankingMenu.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/menu/SmartBankingMenu.java new file mode 100644 index 0000000..aeae5de --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/menu/SmartBankingMenu.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.mobile.smartbanking.menu; + +import cz.moneta.test.dsl.mobile.smartbanking.CurrentAccounts; +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.dsl.mobile.smartbanking.accounts.AccountSelectionView; +import cz.moneta.test.dsl.mobile.smartbanking.templates.SmartBankingTemplatePage; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidScroll; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosScroll; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.mobile.share.Direction; + +import static cz.moneta.test.dsl.mobile.smartbanking.menu.SmartBankingMenu.CURRENT_ACCOUNTS; +import static cz.moneta.test.dsl.mobile.smartbanking.menu.SmartBankingMenu.IOS_CURRENT_ACCOUNTS; + +@AndroidWait(value = CURRENT_ACCOUNTS, by = MobileLookup.XPATH) +@IosWait(IOS_CURRENT_ACCOUNTS) +public interface SmartBankingMenu extends SbViewFlow { + String CURRENT_ACCOUNTS = "//android.widget.TextView[@text = 'Běžné účty']"; + String MY_TEMPLATES = "//android.widget.TextView[@text = 'Moje šablony']"; + + String IOS_CURRENT_ACCOUNTS = "Běžné účty"; + String IOS_TEMPLATES = "Moje šablony"; + + @AndroidScroll(direction = Direction.DOWN, untilElementPresent = MY_TEMPLATES, by = MobileLookup.XPATH,andClick = true) + @IosScroll(direction = Direction.DOWN, untilElementPresent = IOS_TEMPLATES, andClick = true) + SmartBankingTemplatePage clickOnMyTemplate(); + + @AndroidClick(value = CURRENT_ACCOUNTS, by = MobileLookup.XPATH) + @IosClick(IOS_CURRENT_ACCOUNTS) + CurrentAccounts clickOnCurrentAccounts(); //use this method if user has more than one account + + @AndroidClick(value = CURRENT_ACCOUNTS, by = MobileLookup.XPATH) + @IosClick(IOS_CURRENT_ACCOUNTS) + AccountSelectionView currentAccountsUserHasOneAccount(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/CertificationPaymentView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/CertificationPaymentView.java new file mode 100644 index 0000000..dce0023 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/CertificationPaymentView.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.mobile.smartbanking.payment; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.dsl.mobile.smartbanking.landing.PinView; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosWait; + +import static cz.moneta.test.dsl.mobile.smartbanking.payment.CertificationPaymentView.IOS_HEADER; +import static cz.moneta.test.dsl.mobile.smartbanking.payment.CertificationPaymentView.TOOLBAR_TITLE; + +@AndroidWait(value = TOOLBAR_TITLE, by = MobileLookup.XPATH) +@IosWait(value = IOS_HEADER, by = MobileLookup.IOS_NAME) +public interface CertificationPaymentView extends SbViewFlow, PinView { + String TOOLBAR_TITLE = "//android.widget.TextView[contains(@resource-id, 'id/toolbar_title') and @text='Autorizace']"; + String IOS_HEADER = "Autorizace"; + + SentPaymentView onSentPaymentView(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/Payment.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/Payment.java new file mode 100644 index 0000000..9ea4882 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/Payment.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mobile.smartbanking.payment; + +import lombok.Data; + +@Data +public class Payment { + private String toAccountNumber = "123"; + private String bankCode = "0600"; + private String amount = "1,00"; + private String variableSymbol = "123456789"; + private String fromAccount = "215920197"; + + public String getFromAccountWithBankCode(){ + return fromAccount + "/" + bankCode; + } + + public String getToAccountWithBankCode(){ + return toAccountNumber + "/" + bankCode; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/PaymentConfirmView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/PaymentConfirmView.java new file mode 100644 index 0000000..c7c83ba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/PaymentConfirmView.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.mobile.smartbanking.payment; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidTypeInto; +import cz.moneta.test.harness.support.mobile.android.AndroidTypeIntos; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosTypeInto; +import cz.moneta.test.harness.support.mobile.ios.IosTypeIntos; +import cz.moneta.test.harness.support.mobile.ios.IosWait; + +import static cz.moneta.test.dsl.mobile.smartbanking.payment.PaymentConfirmView.IOS_AMOUNT; +import static cz.moneta.test.dsl.mobile.smartbanking.payment.PaymentConfirmView.PAYMENT_PAGE; + +@AndroidWait(value = PAYMENT_PAGE) +@IosWait(IOS_AMOUNT) +public interface PaymentConfirmView extends SbViewFlow { + String PAYMENT_PAGE = "logged_activity_fragment_container"; + String AMOUNT = "edit_amount"; + String DUE_DATE = "edit_due_date"; + String VARIABLE_SYMBOL = "//android.widget.LinearLayout[contains(@resource-id, 'id/edit_payment_symbol_variable')]" + + "//android.widget.EditText[contains(@resource-id, 'id/txt_edit_value')]"; + + String CONTINUE_BUTTON = "btn_payment_continue"; + + String IOS_AMOUNT = "PAYMENT_AMOUNT"; + String IOS_VARIABLE_SYMBOL = "PAYMENT_VS"; + String IOS_CONTINUE_BUTTON = "Pokračovat"; + + @AndroidTypeIntos({@AndroidTypeInto(AMOUNT), @AndroidTypeInto(value = VARIABLE_SYMBOL, by = MobileLookup.XPATH)}) + @IosTypeIntos({@IosTypeInto(IOS_AMOUNT), @IosTypeInto(IOS_VARIABLE_SYMBOL)}) + PaymentConfirmView setPaymentData(String amount, String vs); + + @AndroidClick(value = CONTINUE_BUTTON) + @IosClick(IOS_CONTINUE_BUTTON) + PaymentSummaryView continueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/PaymentSummaryView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/PaymentSummaryView.java new file mode 100644 index 0000000..45936f5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/PaymentSummaryView.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dsl.mobile.smartbanking.payment; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.smartbanka.MobilePlatform; +import cz.moneta.test.harness.endpoints.smartbanka.SbEndpoint; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosWait; +import cz.moneta.test.harness.support.web.CustomAction; + +import static cz.moneta.test.dsl.mobile.smartbanking.payment.PaymentSummaryView.IOS_HEADER; +import static cz.moneta.test.dsl.mobile.smartbanking.payment.PaymentSummaryView.TOOLBAR_TITLE; + +@AndroidWait(value = TOOLBAR_TITLE, by = MobileLookup.XPATH) +@IosWait(value = IOS_HEADER, by = MobileLookup.IOS_NAME) +public interface PaymentSummaryView extends SbViewFlow, StoreAccessor { + String TOOLBAR_TITLE = "//android.widget.TextView[contains(@resource-id, 'id/toolbar_title') and @text='Kontrola údajů']"; + String FROM_ACCOUNT = "txt_info_second_row"; + String TO_ACCOUNT = "txt_info_row_value"; + String AMOUNT = "txt_money_row_amount"; + String DATE = "txt_info_row_value"; + String VARIABLE_SYMBOL = "txt_info_row_value"; + String SENT_BUTTON = "btn_send_payment"; + + String IOS_HEADER = "Kontrola údajů"; + String IOS_FROM_ACCOUNT = "ACCOUNT_NUMBER"; + String IOS_TO_ACCOUNT = "//XCUIElementTypeCell[contains(@name, 'Na účet')]/XCUIElementTypeOther[1]/XCUIElementTypeStaticText"; + String IOS_AMOUNT = "//XCUIElementTypeApplication[@name='TEST']/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther/XCUIElementTypeOther[1]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeTable/XCUIElementTypeCell[3]/XCUIElementTypeStaticText"; + String IOS_VARIABLE_SYMBOL = "//XCUIElementTypeCell[contains(@name, 'Variabilní symbol')]/XCUIElementTypeOther[1]/XCUIElementTypeStaticText"; + String IOS_SENT_BUTTON = "Pokračovat"; + + @CustomAction + default PaymentSummaryView checkPaymentData(StoreAccessor store, Payment payment){ + SbEndpoint endpoint = getEndpoint(SbEndpoint.class); + if (MobilePlatform.isAndroid(store)) { + endpoint.checkElementContent(FROM_ACCOUNT, payment.getFromAccountWithBankCode()); + endpoint.checkElementContent(TO_ACCOUNT, payment.getToAccountWithBankCode()); + endpoint.checkElementContent(AMOUNT, payment.getAmount()); + endpoint.checkElementContent(VARIABLE_SYMBOL, payment.getVariableSymbol()); + }else { + endpoint.checkElementContent(IOS_FROM_ACCOUNT, payment.getFromAccountWithBankCode()); + endpoint.checkElementContent(IOS_TO_ACCOUNT, payment.getToAccountWithBankCode(), MobileLookup.XPATH); + endpoint.checkElementContent(IOS_AMOUNT, payment.getAmount(), MobileLookup.XPATH); + endpoint.checkElementContent(IOS_VARIABLE_SYMBOL, payment.getVariableSymbol(), MobileLookup.XPATH); + } + return null; + } + +// //example of using containers +// @AndroidCheckElementContents({ +// @AndroidCheckElementContent(FROM_ACCOUNT), +// @AndroidCheckElementContent(TO_ACCOUNT), +// @AndroidCheckElementContent(AMOUNT), +// @AndroidCheckElementContent(VARIABLE_SYMBOL)}) +// @IosCheckElementContents({ +// @IosCheckElementContent(IOS_FROM_ACCOUNT), +// @IosCheckElementContent(IOS_TO_ACCOUNT), +// @IosCheckElementContent(IOS_AMOUNT), +// @IosCheckElementContent(IOS_VARIABLE_SYMBOL)}) +// PaymentSummaryView checkPaymentData(String fromAccount, String toAccount, String amount, String variableSymbol); + + @AndroidClick(value = SENT_BUTTON) + @IosClick(IOS_SENT_BUTTON) + CertificationPaymentView certifyButton(); +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/PaymentView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/PaymentView.java new file mode 100644 index 0000000..91376e8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/PaymentView.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.mobile.smartbanking.payment; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.harness.support.mobile.android.AndroidClick; +import cz.moneta.test.harness.support.mobile.android.AndroidTypeInto; +import cz.moneta.test.harness.support.mobile.android.AndroidTypeIntos; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.ios.IosClick; +import cz.moneta.test.harness.support.mobile.ios.IosTypeInto; +import cz.moneta.test.harness.support.mobile.ios.IosTypeIntos; +import cz.moneta.test.harness.support.mobile.ios.IosWait; + +import static cz.moneta.test.dsl.mobile.smartbanking.payment.PaymentView.ACCOUNT_NUMBER; +import static cz.moneta.test.dsl.mobile.smartbanking.payment.PaymentView.IOS_ACCOUNT_NUMBER; + +@AndroidWait(value = ACCOUNT_NUMBER) +@IosWait(IOS_ACCOUNT_NUMBER) +public interface PaymentView extends SbViewFlow { + String ACCOUNT_PREFIX = "edit_account_prefix"; + String ACCOUNT_NUMBER = "edit_account_number"; + String BANK_CODE = "edit_account_code"; + String bankCode = "btn_edit_account_banks"; + String CONTINUE_BUTTON = "btn_payment_continue"; + + String IOS_ACCOUNT_NUMBER = "Číslo účtu"; + String IOS_BANK_CODE = "Kód banky"; + String IOS_CONTINUE_BUTTON = "Pokračovat"; + + String SELECT_IOS_BANK_CODE = "Vyberte banku"; + + @AndroidTypeIntos({@AndroidTypeInto(value = ACCOUNT_NUMBER), @AndroidTypeInto(value = BANK_CODE)}) + @IosTypeIntos({@IosTypeInto(IOS_ACCOUNT_NUMBER), @IosTypeInto(IOS_BANK_CODE)}) + PaymentView setPaymentDestinationData(String accountNumber, String bankCode); + + //@IosSelect(value = SELECT_IOS_BANK_CODE, scrollToValue = Direction.DOWN, jsScroll = true) + //PaymentView selectBankCode(String name); + + @AndroidClick(value = CONTINUE_BUTTON) + @IosClick(IOS_CONTINUE_BUTTON) + PaymentConfirmView continueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/SentPaymentView.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/SentPaymentView.java new file mode 100644 index 0000000..c9f381c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/payment/SentPaymentView.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mobile.smartbanking.payment; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.harness.support.mobile.android.AndroidWait; +import cz.moneta.test.harness.support.mobile.MobileLookup; +import cz.moneta.test.harness.support.mobile.ios.IosWait; + +import static cz.moneta.test.dsl.mobile.smartbanking.payment.SentPaymentView.IOS_RESULT; +import static cz.moneta.test.dsl.mobile.smartbanking.payment.SentPaymentView.RESULT_TITLE; + +@AndroidWait(value = RESULT_TITLE, by = MobileLookup.XPATH) +@IosWait(IOS_RESULT) +public interface SentPaymentView extends SbViewFlow { + String RESULT_TITLE = "//android.widget.TextView[contains(@resource-id, 'id/txt_result_title') and @text='Platba byla odeslána']"; + + String IOS_RESULT = "Platba byla odeslána"; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingReturnMyMoney.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingReturnMyMoney.java new file mode 100644 index 0000000..fccdf9f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingReturnMyMoney.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mobile.smartbanking.templates; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = SmartBankingTemplatePage.MY_TEMPLATES, by = Lookup.XPATH) +public interface SmartBankingReturnMyMoney extends SbViewFlow { + + String MY_TEMPLATES = "//android.widget.TextView[@text = 'Moje šablony']"; + String RETURN_MY_MONEY = "//android.widget.TextView[@text = 'Mé peníze']"; + + @Click(value = RETURN_MY_MONEY, by = Lookup.XPATH) + SmartBankingReturnMyMoney clickOnMyMoney(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplateCompletion.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplateCompletion.java new file mode 100644 index 0000000..8fe68c7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplateCompletion.java @@ -0,0 +1,43 @@ +package cz.moneta.test.dsl.mobile.smartbanking.templates; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.smartbanka.SbEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = SmartBankingTemplateCompletion.NEW_TEMPLATES, by = Lookup.XPATH) +public interface SmartBankingTemplateCompletion extends SbViewFlow, StoreAccessor { + + String NEW_TEMPLATES = "//android.widget.TextView[@text = 'Nová šablona']"; + String TEMPLATE_TITLE = "edit_string"; + String TEMPLATE_ACCOUNT_NUMBER = "edit_account_number"; + String TEMPLATE_BANK_CODE = "edit_account_code"; + String TEMPLATE_AMOUNT = "edit_amount"; + String TEMPLATE_VARIABLE_SYMBOL = "edit_template_symbol_variable"; + String TEMPLATE_SPECIFIC_SYMBOL = "edit_template_symbol_specific"; + String TEMPLATE_CONSTANT_SYMBOL = "edit_template_symbol_constant"; + String TEMPLATE_NOTE_FOR_MY = "edit_template_note_for_me"; + String TEMPLATE_NOTE_FOR_RECIPIENT = "edit_template_note_for_receiver"; + String SAVE_TEMPLATE = "btn_template_save"; + + @CustomAction + default SmartBankingTemplateCompletion setTemplate(TemplateFiling templateFiling) { + SbEndpoint endpoint = getEndpoint(SbEndpoint.class); + endpoint.type(() -> TEMPLATE_TITLE, templateFiling.getName()); + endpoint.type(() -> TEMPLATE_ACCOUNT_NUMBER, templateFiling.getAccountNumber()); + endpoint.type(() -> TEMPLATE_BANK_CODE, templateFiling.getBankCode()); + endpoint.type(() -> TEMPLATE_AMOUNT, templateFiling.getAmount()); + endpoint.type(() -> TEMPLATE_VARIABLE_SYMBOL, templateFiling.getVariableSymbol()); + endpoint.type(() -> TEMPLATE_SPECIFIC_SYMBOL, templateFiling.getSpecificSymbol()); + endpoint.type(() -> TEMPLATE_CONSTANT_SYMBOL, templateFiling.getConstantSymbol()); + endpoint.type(() -> TEMPLATE_NOTE_FOR_MY, templateFiling.getNoteForMy()); + endpoint.type(() -> TEMPLATE_NOTE_FOR_RECIPIENT, templateFiling.getNoteForRecipient()); + return null; + } + + @Click(value = SAVE_TEMPLATE) + SmartBankingTemplateReturn clickOnTemplateCompletion(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplatePage.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplatePage.java new file mode 100644 index 0000000..e6fe154 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplatePage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mobile.smartbanking.templates; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = SmartBankingTemplatePage.MY_TEMPLATES, by = Lookup.XPATH) +public interface SmartBankingTemplatePage extends SbViewFlow { + + String MY_TEMPLATES = "//android.widget.TextView[@text = 'Moje šablony']"; + String ADD_TEMPLATE = "btn_loader_empty_action"; + + @Click(value = ADD_TEMPLATE) + SmartBankingTemplateCompletion clickOnAddTemplate(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplateReturn.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplateReturn.java new file mode 100644 index 0000000..320e0e3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplateReturn.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mobile.smartbanking.templates; + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = SmartBankingTemplateReturn.CREATED_TEMPLATES) +public interface SmartBankingTemplateReturn extends SbViewFlow { + + String CREATED_TEMPLATES = "toolbar_title"; + String RETURN_TEMPLATES = "btn_template_result"; + + @Click(value = RETURN_TEMPLATES) + SmartBankingTemplateReturnEnd clickOnTemplateReturn(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplateReturnEnd.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplateReturnEnd.java new file mode 100644 index 0000000..94b631e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/SmartBankingTemplateReturnEnd.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mobile.smartbanking.templates; + + +import cz.moneta.test.dsl.mobile.smartbanking.SbViewFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = SmartBankingTemplatePage.MY_TEMPLATES, by = Lookup.XPATH) +public interface SmartBankingTemplateReturnEnd extends SbViewFlow { + + String MY_TEMPLATES = "//android.widget.TextView[@text = 'Moje šablony']"; + String RETURN_TEMPLATES_END = "//android.widget.ImageButton[@content-desc ='Přejít nahoru']"; + + @Click(value = RETURN_TEMPLATES_END, by = Lookup.XPATH) + SmartBankingReturnMyMoney clickOnTemplateReturnEnd(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/TemplateFiling.java b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/TemplateFiling.java new file mode 100644 index 0000000..13e2f84 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mobile/smartbanking/templates/TemplateFiling.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mobile.smartbanking.templates; + + +import lombok.Data; + +@Data +public class TemplateFiling { + private String name = "SablonaFR"; + private String accountNumber = "215931136"; + private String bankCode = "0600"; + private String amount = "1,00"; + private String variableSymbol = "1"; + private String specificSymbol = "2"; + private String constantSymbol = "3"; + private String noteForMy = "Test"; + private String noteForRecipient = "Test"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaapiportal/LoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaapiportal/LoginPage.java new file mode 100644 index 0000000..a4a837c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaapiportal/LoginPage.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.monetaapiportal; + +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaapiportal.LoginPage.PAGE_LOGO; + +@Wait(value = PAGE_LOGO) +public interface LoginPage extends WebFlow { + + String PAGE_LOGO = "provider-name"; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaapiportal/MonetaApiPortal.java b/tests/src/main/java/cz/moneta/test/dsl/monetaapiportal/MonetaApiPortal.java new file mode 100644 index 0000000..1369ff7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaapiportal/MonetaApiPortal.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.monetaapiportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.monetaapiportal.MonetaApiPortalEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class MonetaApiPortal { + + private final Harness harness; + + public MonetaApiPortal(Harness harness) { + this.harness = harness; + } + + public LoginPage openLoginPage() { + MonetaApiPortalEndpoint endpoint = harness.getEndpoint(MonetaApiPortalEndpoint.class); + endpoint.openApplication(); + return Builders.newWebFlowBuilder(LoginPage.class, endpoint, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/HomePage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/HomePage.java new file mode 100644 index 0000000..aa4e7b0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/HomePage.java @@ -0,0 +1,77 @@ +package cz.moneta.test.dsl.monetaportal; + +import cz.moneta.test.dsl.monetaportal.components.MainMenu; +import cz.moneta.test.dsl.monetaportal.components.NavigationBar; +import cz.moneta.test.dsl.monetaportal.components.Web2Branch; +import cz.moneta.test.dsl.monetaportal.components.Web2Call; +import cz.moneta.test.dsl.monetaportal.more.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.HomePage.HOMEPAGE_EXCHANGE_RATES_TABLE; + +@Wait(HOMEPAGE_EXCHANGE_RATES_TABLE) +public interface HomePage extends WebFlow, MainMenu, NavigationBar, StoreAccessor { + + //Homepage + String HOMEPAGE_ACCEPT_COOKIES_BUTTON = "//button[@id = 'onetrust-accept-btn-handler']"; + String HOMEPAGE_BRANCHES_LINK = "//div[contains(@class, 'f-numerical-benefits__holder')]//a[@href='/kontakt/pobocky-moneta-money-bank']"; + String HOMEPAGE_ATM_LINK = "//div[contains(@class, 'f-numerical-benefits__holder')]//a[@href='/kontakt/bankomaty-moneta-money-bank#mapa-section']"; + String HOMEPAGE_ONLINE_PRODUCTS_LINK = "//div[contains(@class, 'f-numerical-benefits__holder')]//a[@href='/online/sjednani-produktu']"; + String HOMEPAGE_W2C_LINK = "//a[@class='f-contact-bar-item homepageW2C']"; + String HOMEPAGE_W2B_LINK = "//a[@class='f-contact-bar-item w2b']"; + String HOMEPAGE_ONLINE_SUPPORT_LINK = "//a[@class='f-contact-bar-item ' and @href='/online']"; + String HOMEPAGE_EXCHANGE_RATES_LINK = "//a[@class='f-contact-bar-item ' and @href='/kurzovni-listek']"; + String HOMEPAGE_EXCHANGE_RATES_TABLE = "//section[contains(@id, 'portlet_ExchangeRatesTable_')]"; + String HOMEPAGE_EXCHANGE_RATES_TABLE_MORE_BUTTON = "//section[contains(@id, 'portlet_ExchangeRatesTable_INSTANCE_')]//span[@data-message-id='FilterTabs.moreCurrencies']"; + String HOMEPAGE_EN_PAGE = "//div[@class='links_right']//a[@href='https://ppe.moneta.cz/web/en']"; + + @Click(HOMEPAGE_ACCEPT_COOKIES_BUTTON) + HomePage clickAcceptCookies(); + + @Click(HOMEPAGE_BRANCHES_LINK) + BranchesPage clickHomePageBranches(); + + @Click(HOMEPAGE_ATM_LINK) + ATMsPage clickHomePageATMs(); + + @Click(HOMEPAGE_ONLINE_PRODUCTS_LINK) + OnlineProductPage clickOnlineProducts(); + + @Click(HOMEPAGE_W2C_LINK) + Web2Call clickHomePageW2C(); + + @Click(HOMEPAGE_W2B_LINK) + Web2Branch clickHomePageW2B(); + + @Click(HOMEPAGE_ONLINE_SUPPORT_LINK) + OnlineSupportPage clickOnlineSupport(); + + @Click(HOMEPAGE_EXCHANGE_RATES_LINK) + ExchangeRatesPage clickExchangeRates(); + + @CheckElementPresent(HOMEPAGE_EXCHANGE_RATES_TABLE) + HomePage checkHomePageExchangeRatesTable(); + + @Click(HOMEPAGE_EXCHANGE_RATES_TABLE_MORE_BUTTON) + ExchangeRatesPage clickExchangeRatesTableMore(); + + @Click(HOMEPAGE_EN_PAGE) + HomePageEN clickENPage(); + + /** + * Clicking on accept cookies button. This condition is here because tab with accept cookies + * is showing up only on local computer, not on server. + * @return + */ + @CustomAction + default HomePage acceptCookies() { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + + if (endpoint.isElementPresent(HOMEPAGE_ACCEPT_COOKIES_BUTTON, Lookup.XPATH)) { + endpoint.click(() -> HOMEPAGE_ACCEPT_COOKIES_BUTTON); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/HomePageEN.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/HomePageEN.java new file mode 100644 index 0000000..1a2335b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/HomePageEN.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.monetaportal; + +import cz.moneta.test.dsl.monetaportal.components.Web2Branch; +import cz.moneta.test.dsl.monetaportal.components.Web2Call; +import cz.moneta.test.dsl.monetaportal.more.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.HomePageEN.HOMEPAGEEN_EXCHANGE_RATES_TABLE; + +@Wait(HOMEPAGEEN_EXCHANGE_RATES_TABLE) +public interface HomePageEN extends WebFlow, StoreAccessor { + + //HomepageEN + String HOMEPAGEEN_ACCEPT_COOKIES_BUTTON = "//button[@id = 'onetrust-accept-btn-handler']"; + String HOMEPAGEEN_W2C_LINK = "//a[@class='f-contact-bar-item w2c-modal']"; + String HOMEPAGEEN_W2B_LINK = "//a[@class='f-contact-bar-item w2b-modal']"; + String HOMEPAGEEN_EXCHANGE_RATES_TABLE = "//section[contains(@id, 'portlet_ExchangeRatesTable_')]"; + String HOMEPAGEEN_EXCHANGE_RATES_TABLE_MORE_BUTTON = "//section[contains(@id, 'portlet_ExchangeRatesTable_INSTANCE_')]//span[@data-message-id='FilterTabs.moreCurrencies']"; + + @Click(HOMEPAGEEN_ACCEPT_COOKIES_BUTTON) + HomePageEN clickAcceptCookies(); + + @Click(HOMEPAGEEN_W2C_LINK) + Web2Call clickHomePageW2C(); + + @Click(HOMEPAGEEN_W2B_LINK) + Web2Branch clickHomePageW2B(); + + @CheckElementPresent(HOMEPAGEEN_EXCHANGE_RATES_TABLE) + HomePageEN checkHomePageExchangeRatesTable(); + + @Click(HOMEPAGEEN_EXCHANGE_RATES_TABLE_MORE_BUTTON) + ExchangeRatesPageEN clickExchangeRatesTableMore(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/MonetaPortal.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/MonetaPortal.java new file mode 100644 index 0000000..7cfa9c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/MonetaPortal.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.monetaportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class MonetaPortal { + + private final Harness harness; + + public MonetaPortal(Harness harness) { + this.harness = harness; + } + + public HomePage openHomePage() { + MonetaPortalEndpoint endpoint = harness.getEndpoint(MonetaPortalEndpoint.class); + endpoint.openApplication(); + + return Builders.newWebFlowBuilder(HomePage.class, endpoint, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/accounts/CurrentAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/accounts/CurrentAccountPage.java new file mode 100644 index 0000000..1f8f4fe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/accounts/CurrentAccountPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.monetaportal.accounts; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.Naviblocks.NAVIBLOCKS_DIV; + +@Wait(NAVIBLOCKS_DIV) +public interface CurrentAccountPage extends WebFlow, Naviblocks { + + //Current account page + String BANNER_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-primary ']"; + + @Click(BANNER_SECTION_BUTTON) + CurrentAccountPage clickCurrentAccountNaviblocksSection(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/accounts/SavingAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/accounts/SavingAccountPage.java new file mode 100644 index 0000000..d6f27ff --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/accounts/SavingAccountPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.monetaportal.accounts; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.Naviblocks.NAVIBLOCKS_DIV; + +@Wait(NAVIBLOCKS_DIV) +public interface SavingAccountPage extends WebFlow, Naviblocks { + + //Saving account page + String BANNER_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-primary ']"; + + @Click(BANNER_SECTION_BUTTON) + SavingAccountPage clickSavingAccountNaviblocksSection(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/FooterCallFree.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/FooterCallFree.java new file mode 100644 index 0000000..199fc51 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/FooterCallFree.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.monetaportal.components; + +import cz.moneta.test.dsl.monetaportal.more.BranchesPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +public interface FooterCallFree { + + //FOOTER_CALL_FREE + String FOOTER_CALL_FREE_W2C_LINK = "//div[@class='footer-free-call__info']//a[@class='w2c-modal']"; + String FOOTER_CALL_FREE_BRANCH_PAGE_LINK = "//div[@class='footer-free-call__info']//a[@href='/kontakt#mapa-pobocek-section']"; + + @Click(value = FOOTER_CALL_FREE_W2C_LINK, andWait = @Wait(explicitWaitSeconds = 1)) + Web2Call clickFooterCallFreeW2C(); + + @Click(value = FOOTER_CALL_FREE_BRANCH_PAGE_LINK, andWait = @Wait(explicitWaitSeconds = 1)) + BranchesPage clickFooterCallFreeBranchPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/MainMenu.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/MainMenu.java new file mode 100644 index 0000000..5fecd55 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/MainMenu.java @@ -0,0 +1,129 @@ +package cz.moneta.test.dsl.monetaportal.components; + +import cz.moneta.test.dsl.monetaportal.HomePage; +import cz.moneta.test.dsl.monetaportal.accounts.CurrentAccountPage; +import cz.moneta.test.dsl.monetaportal.accounts.SavingAccountPage; +import cz.moneta.test.dsl.monetaportal.loans.*; +import cz.moneta.test.dsl.monetaportal.more.ExchangeRatesPage; +import cz.moneta.test.dsl.monetaportal.mortgages.MortgagePage; +import cz.moneta.test.dsl.monetaportal.products.CreditAccountPage; +import cz.moneta.test.dsl.monetaportal.products.CreditCardPage; +import cz.moneta.test.dsl.monetaportal.products.ProductsPage; +import cz.moneta.test.dsl.monetaportal.savings.BuildingSavingsPage; +import cz.moneta.test.dsl.monetaportal.savings.HoldingFundsPage; +import cz.moneta.test.dsl.monetaportal.savings.SupplementaryRetirementSchemesPage; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.monetaportal.components.MainMenu.SHORTCUTS_LOANS; + +@Wait(SHORTCUTS_LOANS) +public interface MainMenu extends Builder { + //Main menu + String SHORTCUTS_ACCOUNTS = "//div[@class='menu_wrapper']//li[@class='nav__item nav--full']//a[@href='/ucty-a-karty']"; + String SHORTCUTS_LOANS = "//div[@class='navbar-nav navbar-nav--images']//span[text()='Půjčky']"; + String SHORTCUTS_MORTGAGE_LOANS = "//div[@class='menu_wrapper']//li[@class='nav__item nav--full']//a[@href='/hypoteky']"; + String SHORTCUTS_SAVINGS = "//div[@class='menu_wrapper']//li[@class='nav__item nav--full']//a[@href='/sporeni-a-investice']"; + String SHORTCUTS_MORE = "//div[@class='menu_wrapper']//li[@class='nav__item nav--is_more']//a[@href='/vice']"; + //Submenu Accounts and cards + String SHORTCUTS_CURRENT_ACCOUNT = "//div[@class='list_items__item__title']/a[@href='/ucty-a-karty/bezny-ucet']"; + //Submenu Loans + String SHORTCUTS_EXPRESS_LOANS = "//div[contains(@class,'tab-panel-item') and not(contains(@class,'d-none'))]//ul[@id='xsellCards3']//a[@href='/pujcky-a-uvery/pujcka-na-cokoliv' ]"; + String REDUCE_OBLIGATIONS = "//div[@class='list_items__item__title']/a[@href='/pujcky-a-uvery/slouceni-pujcek']"; + String SHORTCUTS_LOANS_BUSINESS = "//div[@class='list_items__item__title']/a[@href='/pujcky-a-uvery/business-uver-nezajisteny']"; + String SHORTCUTS_LOANS_BUILDING_SAVINGS = "//div[@class='list_items__item__title']/a[@href='/pujcky-a-uvery/uver-ze-stavebniho-sporeni']"; + String SHORTCUTS_LOANS_BRIDGING = "//div[@id='xsellCards3']/a[@href='/pujcky-a-uvery/pujcka-pro-bydleni']"; + String SHORTCUTS_CREDIT_CARD = "//div[@class='list_items__item__title']/a[@href='/ucty-a-karty/kreditni-karta']"; + String SHORTCUTS_CREDIT_ACCOUNT = "//div[@class='list_items__item__title']/a[@href='/pujcky-a-uvery/kreditni-ucet']"; + //Submenu Mortgage loans + String SHORTCUTS_MORTGAGE = "//div[@class='list_items__item__title']/a[@href='/hypoteky/hypoteka']"; + //Submenu Savings + String SHORTCUTS_SAVING_ACCOUNT = "//a[@class='list_items__item-link' and @href='/sporeni-a-investice/sporici-ucet']"; + String SHORTCUTS_BUILDINGS_SAVINGS = "//a[@class='list_items__item-link' and @href='/sporeni-a-investice/stavebni-sporeni']"; + String SHORTCUTS_HOLDING_FUNDS = "//div[@class='list_items__item__title']/a[@href='/sporeni-a-investice/podilove-fondy']/span"; + String SHORTCUTS_SUPPLEMENTARY_RETIREMENT_SCHEMES = "//a[@class='list_items__item-link' and @href='/sporeni-a-investice/doplnkove-penzijni-sporeni']"; + //Submenu Others + String SHORTCUTS_EXCHANGE_RATE = "//div[@class='list_items__item__title']/a[@class='page-name' and @href='/kurzovni-listek']/span"; + //Není naše ----------------------------------------------------------------- + String SHORTCUTS_ACCOUNTS_AND_CARDS = "//nav[@role='navigation']/ul/li[@class='nav__item nav--full '][1]"; + + @Wait(SHORTCUTS_ACCOUNTS) + @Click(SHORTCUTS_ACCOUNTS) + HomePage openAccountsMenu(); + + @Wait(SHORTCUTS_LOANS) + @Click(SHORTCUTS_LOANS) + HomePage openLoansMenu(); + + @Wait(SHORTCUTS_MORTGAGE_LOANS) + @Click(SHORTCUTS_MORTGAGE_LOANS) + HomePage openMortgageLoansMenu(); + + @Wait(SHORTCUTS_SAVINGS) + @Click(SHORTCUTS_SAVINGS) + HomePage openSavingsMenu(); + + @Wait(SHORTCUTS_MORE) + @Click(SHORTCUTS_MORE) + HomePage openMoreMenu(); + //--------------------------------------------------------------------------- + @Wait(SHORTCUTS_CURRENT_ACCOUNT) + @Click(SHORTCUTS_CURRENT_ACCOUNT) + CurrentAccountPage openCurrentAccountPage(); + //--------------------------------------------------------------------------- + @Wait(SHORTCUTS_EXPRESS_LOANS) + @Click(SHORTCUTS_EXPRESS_LOANS) + ExpressLoanPage openExpressLoanPage(); + + @Wait(REDUCE_OBLIGATIONS) + @Click(REDUCE_OBLIGATIONS) + UDCExpressLoanPage openUdcLoan(); + + @Wait(SHORTCUTS_LOANS_BUSINESS) + @Click(SHORTCUTS_LOANS_BUSINESS) + BusinessLoanPage openExpressBusinessLoanPage(); + + @Wait(SHORTCUTS_LOANS_BUILDING_SAVINGS) + @Click(SHORTCUTS_LOANS_BUILDING_SAVINGS) + BuildingSavingsLoanPage openBuildingSavingsLoanPage(); + + @Wait(SHORTCUTS_LOANS_BRIDGING) + @Click(SHORTCUTS_LOANS_BRIDGING) + BridgingLoanPage openBridgingLoanPage(); + + @Wait(SHORTCUTS_CREDIT_CARD) + @Click(SHORTCUTS_CREDIT_CARD) + CreditCardPage openCreditCardPage(); + + @Wait(SHORTCUTS_CREDIT_ACCOUNT) + @Click(SHORTCUTS_CREDIT_ACCOUNT) + CreditAccountPage openCreditAccountPage(); + //--------------------------------------------------------------------------- + @Wait(SHORTCUTS_MORTGAGE) + @Click(SHORTCUTS_MORTGAGE) + MortgagePage openMortgagePage(); + //--------------------------------------------------------------------------- + @Wait(SHORTCUTS_SAVING_ACCOUNT) + @Click(SHORTCUTS_SAVING_ACCOUNT) + SavingAccountPage openSavingAccountPage(); + + @Wait(SHORTCUTS_BUILDINGS_SAVINGS) + @Click(SHORTCUTS_BUILDINGS_SAVINGS) + BuildingSavingsPage openBuildingSavingsPage(); + + @Wait(SHORTCUTS_HOLDING_FUNDS) + @Click(SHORTCUTS_HOLDING_FUNDS) + HoldingFundsPage openHoldingFundsPage(); + + @Wait(SHORTCUTS_SUPPLEMENTARY_RETIREMENT_SCHEMES) + @Click(SHORTCUTS_SUPPLEMENTARY_RETIREMENT_SCHEMES) + SupplementaryRetirementSchemesPage openSupplementaryRetirementSchemesPage(); + //--------------------------------------------------------------------------- + @Wait(SHORTCUTS_EXCHANGE_RATE) + @Click(SHORTCUTS_EXCHANGE_RATE) + ExchangeRatesPage openExchangeRates(); + //Není naše ----------------------------------------------------------------- + @Click(SHORTCUTS_ACCOUNTS_AND_CARDS) + ProductsPage goToAccountAndCards(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/Naviblocks.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/Naviblocks.java new file mode 100644 index 0000000..19f0834 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/Naviblocks.java @@ -0,0 +1,136 @@ +package cz.moneta.test.dsl.monetaportal.components; + +import cz.moneta.test.dsl.monetaportal.components.forms.AlaCarteLoanForm; +import cz.moneta.test.dsl.monetaportal.loans.GetCreditAccountPage; +import cz.moneta.test.dsl.monetaportal.more.ExpressBusinessWizard; +import cz.moneta.test.dsl.monetaportal.more.InternetBankPage; +import cz.moneta.test.dsl.monetaportal.more.SmartBankPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +public interface Naviblocks extends StoreAccessor { + + //NAVIBLOCKS + String NAVIBLOCKS_DIV = "//div[contains(@class,'page-section page-section--naviblocks page-section--naviblocks-big')]"; + String NAVIBLOCKS_W2C_BUTTON = NAVIBLOCKS_DIV + "//div[not(contains(@class, 'phone-visible'))]/a[contains(@class, 'w2c')]/.."; + String NAVIBLOCKS_W2B_BUTTON = NAVIBLOCKS_DIV + "//div[not(contains(@class, 'phone-visible'))]/a[contains(@class, 'w2b')]/.."; + String NAVIBLOCKS_ONLINE_NEW_CLIENTS = NAVIBLOCKS_DIV + "//h3[@class='naviblocks-tile__title phone-visible' and text()='Online pro nové klienty']/../div[@class= 'naviblocks-tile__link']"; + String NAVIBLOCKS_ONLINE_NEW_UDC = NAVIBLOCKS_DIV + "//h3[@class='naviblocks-tile__title phone-visible' and text()='Sjednání sloučení půjček online']/../div[@class= 'naviblocks-tile__link']"; + String NAVIBLOCKS_MERGE_IB_BUTTON = NAVIBLOCKS_DIV + "//h3[@class='naviblocks-tile__title']/span[contains(text(), 'Internet')]/../../div[@class= 'naviblocks-tile__link']"; + String NAVIBLOCKS_MERGE_SB_BUTTON = NAVIBLOCKS_DIV + "//div[not(contains(@class, 'phone-visible'))]/a[contains(@href, '/app')]"; + String NAVIBLOCKS_LOGIN_IB_BUTTON = NAVIBLOCKS_DIV + "//a[contains(text(), 'Internet')]/../../div[@class= 'naviblocks-tile__link']"; + String NAVIBLOCKS_IB_PAGE_BUTTON = NAVIBLOCKS_DIV + "//span[contains(text(), 'Internet')]/../../div[@class= 'naviblocks-tile__link']"; + String NAVIBLOCKS_ONLINE_BUSINESS_EXPRESS = NAVIBLOCKS_DIV + "//div[not(contains(@class, 'phone-visible'))]/a[contains(@href, 'expres-business')]"; + String NAVIBLOCKS_ONLINE_CREDIT_ACCOUNT_BUTTON = NAVIBLOCKS_DIV + "//div[not(contains(@class, 'phone-visible'))]/a[contains(@href, '/pujcky-a-uvery/ziskat-kreditni-ucet')]"; + String NAVIBLOCKS_W2C_LINK = NAVIBLOCKS_DIV + "//a[@class='w2c-modal']"; + String NAVIBLOCKS_BUILDING_SAVINGS_ONLINE_NEW_CLIENTS = NAVIBLOCKS_DIV + "//h3[@class='naviblocks-tile__title phone-visible' and text()='Sjednání online']/../div[@class= 'naviblocks-tile__link']"; + String NAVIBLOCKS_CURRENT_ACCOUNT_ONLINE_NEW_CLIENTS = NAVIBLOCKS_DIV + "//h3[@class='naviblocks-tile__title']//span[contains(text(), 'Plně online')]/../../div[@class= 'naviblocks-tile__link']"; + String NAVIBLOCKS_SAVING_ACCOUNT_ONLINE_NEW_CLIENTS = NAVIBLOCKS_DIV + "//h3[@class='naviblocks-tile__title']/span[contains(text(), 'běžným účtem')]/../../div[@class= 'naviblocks-tile__link']"; + String NAVIBLOCKS_INVEST_ONLINE = NAVIBLOCKS_DIV + "//h3[@class='naviblocks-tile__title phone-visible' and text()='Investujte online']/../div[@class= 'naviblocks-tile__link']"; + String W2B_DIV = "//div[@id='W2bModal']"; + String W2B_SEARCH_BRANCH_INPUT = W2B_DIV + "//input[@id = 'searchBranchInput']"; + + //NAVIBLOCKS + @Click(value = NAVIBLOCKS_W2C_BUTTON, andWait = @Wait(explicitWaitSeconds = 1)) + Web2Call clickNaviblocksW2C(); + + @Click(value = NAVIBLOCKS_W2B_BUTTON, andWait = @Wait(value = W2B_SEARCH_BRANCH_INPUT, until = Until.VISIBLE)) + Web2Branch clickNaviblocksW2B(); + + @CustomAction + default AlaCarteLoanForm clickNaviblocksCreateNewClientsOnline() { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + endpoint.click(() -> NAVIBLOCKS_ONLINE_NEW_CLIENTS); + endpoint.focusToNewPopup(20); + endpoint.maximizeBrowserWindow(); + return null; + } + + @CustomAction + default AlaCarteLoanForm clickNaviblocksCreateUDCOnline() { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + endpoint.click(() -> NAVIBLOCKS_ONLINE_NEW_UDC); + endpoint.focusToNewPopup(20); + endpoint.maximizeBrowserWindow(); + return null; + } + + @CustomAction + default InternetBankPage openNaviblocksIB() { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + endpoint.click(() -> NAVIBLOCKS_MERGE_IB_BUTTON); + endpoint.focusToNewPopup(20); + endpoint.maximizeBrowserWindow(); + return null; + } + + @CustomAction + default SmartBankPage openNaviblocksSB() { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + endpoint.click(() -> NAVIBLOCKS_MERGE_SB_BUTTON); + endpoint.focusToNewPopup(20); + endpoint.maximizeBrowserWindow(); + return null; + } + + @Click(value = NAVIBLOCKS_IB_PAGE_BUTTON, andWait = @Wait(explicitWaitSeconds = 1)) + InternetBankPage openNaviblocksOpenInternetBanking(); + + @CustomAction + default InternetBankPage openNaviblocksOpenIB() { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + endpoint.click(() -> NAVIBLOCKS_LOGIN_IB_BUTTON); + endpoint.focusToNewPopup(20); + endpoint.maximizeBrowserWindow(); + return null; + } + + @Click(value = NAVIBLOCKS_ONLINE_BUSINESS_EXPRESS, andWait = @Wait(explicitWaitSeconds = 1)) + ExpressBusinessWizard clickNaviblocksCreateBusinessExpressOnline(); + + @Click(value = NAVIBLOCKS_W2C_LINK, andWait = @Wait(explicitWaitSeconds = 1)) + Web2Call clickNaviblocksW2CLink(); + + @Click(NAVIBLOCKS_ONLINE_CREDIT_ACCOUNT_BUTTON) + GetCreditAccountPage clickNaviblocksCreditAccountButton(); + + @CustomAction + default AlaCarteLoanForm clickNaviblocksBuildingSavingsCreateNewClientsOnline() { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + endpoint.click(() -> NAVIBLOCKS_BUILDING_SAVINGS_ONLINE_NEW_CLIENTS); + endpoint.focusToNewPopup(20); + endpoint.maximizeBrowserWindow(); + return null; + } + + @CustomAction + default AlaCarteLoanForm clickNaviblocksCurrentAccountCreateNewClientsOnline() { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + endpoint.click(() -> NAVIBLOCKS_CURRENT_ACCOUNT_ONLINE_NEW_CLIENTS); + endpoint.focusToNewPopup(20); + endpoint.maximizeBrowserWindow(); + return null; + } + + @CustomAction + default AlaCarteLoanForm clickNaviblocksSavingAccountCreateNewClientsOnline() { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + endpoint.click(() -> NAVIBLOCKS_SAVING_ACCOUNT_ONLINE_NEW_CLIENTS); + endpoint.focusToNewPopup(20); + endpoint.maximizeBrowserWindow(); + return null; + } + + @CustomAction + default AlaCarteLoanForm clickNaviblocksInvestOnline() { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + endpoint.click(() -> NAVIBLOCKS_INVEST_ONLINE); + endpoint.focusToNewPopup(20); + endpoint.maximizeBrowserWindow(); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/NavigationBar.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/NavigationBar.java new file mode 100644 index 0000000..fee6858 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/NavigationBar.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.monetaportal.components; + +import cz.moneta.test.dsl.monetaportal.mortgages.MortgagePage; +import cz.moneta.test.dsl.monetaportal.products.InvestmentFundsPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +public interface NavigationBar extends MainMenu, StoreAccessor { + String MAIN_NAVIGATION_BAR = "//nav[@class='header__main']"; + String PRODUCTS_DROPDOWN_BUTTON = MAIN_NAVIGATION_BAR + "//button/span[text()='Produkty']"; + String INVESTMENTS_FUNDS = MAIN_NAVIGATION_BAR + "//a[contains(@href,'/sporeni-a-investice/podilove-fondy')]"; + String MORTGAGE = MAIN_NAVIGATION_BAR + "//a[contains(@href,'/hypoteky/hypoteka')]"; + + @Click(PRODUCTS_DROPDOWN_BUTTON) + NavigationBar openProductsDropDown(); + + @Wait(value = INVESTMENTS_FUNDS, until = Until.VISIBLE) + @Click(INVESTMENTS_FUNDS) + InvestmentFundsPage clickFunds(); + + @Wait(value = MORTGAGE, until = Until.VISIBLE) + @Click(MORTGAGE) + MortgagePage clickMortgage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/QuestionQuickCall.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/QuestionQuickCall.java new file mode 100644 index 0000000..df96b02 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/QuestionQuickCall.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.monetaportal.components; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +public interface QuestionQuickCall { + + // QUESTION_QUICK_CALL + String QUESTION_QUICK_CALL_DIV = "//div[contains(@class, 'page-section question-call')]"; + String QUESTION_QUICK_CALL_W2C_BUTTON = QUESTION_QUICK_CALL_DIV + "//a[contains(@class, 'btn btn-secondary w2c-modal')]"; + String QUESTION_QUICK_CALL_W2B_BUTTON = QUESTION_QUICK_CALL_DIV + "//a[contains(@class, 'btn btn-secondary w2b-modal')]"; + String W2B_SEARCH_BRANCH_INPUT = "//div[@id='W2bModal']//input[@id = 'searchBranchInput']"; + + + @Click(value = QUESTION_QUICK_CALL_W2C_BUTTON, andWait = @Wait(explicitWaitSeconds = 1)) + Web2Call clickQuestionQuickCallW2C(); + + @Click(value = QUESTION_QUICK_CALL_W2B_BUTTON, andWait = @Wait(value = W2B_SEARCH_BRANCH_INPUT, until = Until.VISIBLE)) + Web2Branch clickQuestionQuickCallW2B(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/Web2Branch.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/Web2Branch.java new file mode 100644 index 0000000..c36b9fe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/Web2Branch.java @@ -0,0 +1,135 @@ +package cz.moneta.test.dsl.monetaportal.components; + +import cz.moneta.test.dsl.monetaportal.enums.SearchBranchName; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.*; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.monetaportal.components.Web2Branch.W2B_SEARCH_BRANCH_INPUT; + +@Wait(W2B_SEARCH_BRANCH_INPUT) +public interface Web2Branch extends WebFlow, StoreAccessor { + + //W2B + String W2B_DIV = "//div[@id='W2bModal']"; + String W2B_SEARCH_BRANCH_INPUT = "//input[@name='address']"; + String W2B_SEARCH_RESULT_BRANCH = "//li[@role='option']//div[text()='%s']"; + String W2B_ARRANGE_APPOINTMENT_BUTTON = "//div[@id='branch-detail-info']//button[@type='button']"; + String W2B_FORM_VISIT_DAY_SELECT = "//select[@id='appointmentDate']"; + String W2B_FORM_VISIT_TIME_SELECT = "//select[@id='appointmentTime']"; + String W2B_CONTINUE_BUTTON = "//span[@data-message-id='AppointmentForm.continueButton']/.."; + String W2B_FORM_CLIENT_FULL_NAME_INPUT = "//input[@name='clientFullName']"; + String W2B_FORM_CLIENT_ICO_INPUT = "//input[@name='companyIdentificationNumber']"; + String W2B_FORM_CLIENT_PHONE_NUMBER_INPUT = "//input[@name='clientPhoneNumber']"; + String W2B_FORM_CLIENT_EMAIL_INPUT = "//input[@name='clientEmail']"; + String W2B_FORM_MESSAGE = "//textarea[@name='message']"; + String W2B_SUBMIT_BUTTON = "//button[@type='submit' and .//*[@data-message-id='ContactInfoForm.submitButton']]"; + String W2B_SUCCESS_MESSAGE = "//span[@data-message-id='ResultFormSuccess.appointmentSuccessfulHeader']"; + String W2B_MODAL_CLOSE_BUTTON = W2B_DIV + "//button[@id='modal__header__close-button']"; + String W2B_HAS_IDENTIFICATION_NUMBER = "//label[./input[@name='isSme']]"; + String W2B_DAY_SELECT_INPUT = "//div[@data-name='appointmentDate']"; + String W2B_TIME_SELECT_INPUT = "//div[@data-name='appointmentTime']"; + String W2B_SELECT_FIRST_OPTION = "//li[@role='option'][1]"; + + //W2B + @Click(W2B_SEARCH_BRANCH_INPUT) + Web2Branch clickW2BSearchBranch(); + + @Click(value = W2B_ARRANGE_APPOINTMENT_BUTTON, andWait = @Wait(value = W2B_DAY_SELECT_INPUT, waitSecondsForElement = 5)) + Web2Branch clickW2BArrangeAppointment(); + + @Wait(value = {W2B_FORM_VISIT_DAY_SELECT}) + @Click(W2B_FORM_VISIT_DAY_SELECT) + Web2Branch clickVisitDay(); + + @Select(value = W2B_FORM_VISIT_DAY_SELECT, selectByOrder = true) + Web2Branch selectVisitDay(int valueDay); + + @Click(W2B_FORM_VISIT_TIME_SELECT) + Web2Branch clickVisitTime(); + + @Select(value = W2B_FORM_VISIT_TIME_SELECT, selectByOrder = true) + Web2Branch selectVisitTime(int valueTime); + + @Click(W2B_CONTINUE_BUTTON) + Web2Branch clickW2BContinue(); + + @Waits({@Wait(value = W2B_SUBMIT_BUTTON, until = Until.CLICKABLE), @Wait(value = W2B_SUBMIT_BUTTON, until = Until.VISIBLE)}) + @Click(value = W2B_SUBMIT_BUTTON, jsClick = true) + Web2Branch clickW2BSubmit(); + + @TypeInto(value = W2B_SEARCH_BRANCH_INPUT, clear = true) + Web2Branch fillW2BSearchBranch(String searchBranchName); + + @Wait(value = {W2B_FORM_CLIENT_FULL_NAME_INPUT}) + @TypeInto(value = W2B_FORM_CLIENT_FULL_NAME_INPUT, clear = true) + Web2Branch fillW2BClientFullName(String clientFullName); + + @TypeInto(value = W2B_FORM_CLIENT_ICO_INPUT, clear = true) + Web2Branch fillW2BClientICO(String clientFullName); + + @TypeInto(value = W2B_FORM_CLIENT_PHONE_NUMBER_INPUT, clear = true) + Web2Branch fillW2BClientPhoneNumber(String clientPhoneNumber); + + @TypeInto(value = W2B_FORM_CLIENT_EMAIL_INPUT, clear = true) + Web2Branch fillW2BClientEmail(String clientEmail); + + @Wait(W2B_SUCCESS_MESSAGE) + Web2Branch checkW2BSuccessMessage(); + + @Click(W2B_SEARCH_RESULT_BRANCH) + Web2Branch clickW2BSearchResultBranches(SearchBranchName searchBranchName); + + @Click(W2B_MODAL_CLOSE_BUTTON) + Web2Branch clickW2BModalClose(); + + @Click(W2B_HAS_IDENTIFICATION_NUMBER) + Web2Branch clickHasIco(); + + @TypeInto(value = W2B_FORM_MESSAGE, clear = true) + Web2Branch fillW2BMessage(String message); + + @Click(value = W2B_DAY_SELECT_INPUT, jsClick = true, andWait = @Wait(W2B_SELECT_FIRST_OPTION)) + Web2Branch clickAppointmentDate(); + + @Click(value = W2B_TIME_SELECT_INPUT, jsClick = true, andWait = @Wait(W2B_SELECT_FIRST_OPTION)) + Web2Branch clickAppointmentTime(); + + @Click(value = W2B_SELECT_FIRST_OPTION, jsClick = true, andWait = @Wait(value = W2B_SELECT_FIRST_OPTION,until = Until.GONE)) + Web2Branch clickFirstOption(); + + @CustomAction + default Web2Branch storeAppointmentDateTime(String dateFormat) { + store("APPOINTMENT_DATE", getAppointmentDate(dateFormat)); + store("APPOINTMENT_TIME", getAppointmentTime()); + return null; + } + + private String getAppointmentDate(String dateFormat) { + String dayValue = getElementValue(W2B_DAY_SELECT_INPUT); + int year = LocalDate.now().getYear(); + + // Remove the day name (first word) from the string + String[] parts = dayValue.split(" ", 2); // Split at the first space + String datePart = parts.length > 1 ? parts[1] : dayValue; // Take only the date part + + String fullDate = datePart + " " + year; // Append the year + + return DateUtils.getDateWithFormat(TestUtils.dateFromString(fullDate, "dd. MM. yyyy"), dateFormat); + } + + private String getAppointmentTime() { + String timeValue = getElementValue(W2B_TIME_SELECT_INPUT); + return timeValue.substring(0, timeValue.length() - 8); + } + + private String getElementValue(String path) { + MonetaPortalEndpoint ep = getEndpoint(MonetaPortalEndpoint.class); + ep.waitForElementsToLoad(3, path); + return ep.getText(path); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/Web2Call.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/Web2Call.java new file mode 100644 index 0000000..3cfa3ec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/Web2Call.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.monetaportal.components; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.components.Web2Call.W2C_INPUT; + +@Wait(value = {W2C_INPUT}) +public interface Web2Call extends WebFlow, StoreAccessor { + + //W2C + String W2C_DIV = "//div[@id='W2cModal']"; + String W2C_INPUT = "//input[@name='phoneNumber']"; + String W2C_SUBMIT_BUTTON = "//button[@type='submit' and .//*[@data-message-id='w2c.ContactForm.submit']]"; + String W2C_SUCCESS_MESSAGE = "//span[@data-message-id='w2c.W2cResponse.responseMessage']"; + String W2C_MODAL_CLOSE_BUTTON = "//button[@id='modal__header__close-button']"; + + //W2C + @Click(W2C_INPUT) + Web2Call clickW2CPhone(); + + @Click(W2C_SUBMIT_BUTTON) + Web2Call clickW2CSubmit(); + + @TypeInto(value = W2C_INPUT, clear = true) + Web2Call fillW2CPhone(String phoneNumber); + + @CheckElementPresent(W2C_SUCCESS_MESSAGE) + Web2Call checkW2CSuccessMessage(); + + @Click(W2C_MODAL_CLOSE_BUTTON) + Web2Call clickW2CModalClose(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/BuildingSavingsCalculator.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/BuildingSavingsCalculator.java new file mode 100644 index 0000000..1f3aa43 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/BuildingSavingsCalculator.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.monetaportal.components.calculators; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +public interface BuildingSavingsCalculator extends Builder, StoreAccessor { + + String CALCULATOR_DIV = "//div[contains(@id,'HousingPlanCalculator')]"; + String CALCULATOR_BUILDING_SAVINGS_AMOUNT_INPUT = "(" + CALCULATOR_DIV + "//div[@class='styles__rowWrapper___2O0qg']//input[contains(@class,'FormattedNumberInput')])[1]"; + String CALCULATOR_BUILDING_SAVINGS_AMOUNT_SLIDER = "(" + CALCULATOR_DIV + "//div[@class='styles__sliderWrapper___2u_3B sc-bdVaJa iHZvIS']//div[contains(@class,'Slider__slider')])[1]"; + String CALCULATOR_BUILDING_SAVINGS_LENGTH_BY_SLIDER = "(" + CALCULATOR_DIV + "//div[@class='styles__sliderWrapper___2u_3B sc-bdVaJa iHZvIS']//div[contains(@class,'Slider__slider')])[2]"; + String CALCULATOR_BOX = CALCULATOR_DIV + "//div[@class='styles__EntrySection___3NWX7 sc-bdVaJa iHZvIS']"; + String CALCULATOR_SPINNER = CALCULATOR_DIV + "//div[@class='moneta-spinner__logo']"; + String RESULT_SECTION_SUM_SPAN = CALCULATOR_DIV + "//div[contains(@class, 'styles__ResultSection')]//span[@class='Text__PrimaryText-e8ep9d-0 GpVeu sc-bdVaJa dYbDtt']/span/span"; + + @Wait(value = CALCULATOR_SPINNER, until = Until.GONE) + @GetElementContent(RESULT_SECTION_SUM_SPAN) + String getSumOfSaving(); + + @Wait(CALCULATOR_BUILDING_SAVINGS_AMOUNT_INPUT) + @Click(CALCULATOR_BUILDING_SAVINGS_AMOUNT_INPUT) + BuildingSavingsCalculator clickBuildingSavingCalculatorAmountInput(); + + @CustomAction + default BuildingSavingsCalculator fillBuildingSavingCalculatorAmountInput(String amount) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialSumOfSaving = this.getSumOfSaving(); + endpoint.type(() -> CALCULATOR_BUILDING_SAVINGS_AMOUNT_INPUT, amount, true); + endpoint.click(() -> CALCULATOR_BOX); + String changedSumOfSaving = this.getSumOfSaving(); + System.out.println(initialSumOfSaving); + System.out.println(changedSumOfSaving); + Assertions.assertNotEquals(initialSumOfSaving, changedSumOfSaving, "Sum of savings calculation did not change."); + return null; + } + + @CustomAction + default BuildingSavingsCalculator moveBuildingSavingCalculatorAmountSlider(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialSumOfSaving = this.getSumOfSaving(); + endpoint.dragAndDropBy(CALCULATOR_BUILDING_SAVINGS_AMOUNT_SLIDER, xOffset, 0); + String changedSumOfSaving = this.getSumOfSaving(); + System.out.println(changedSumOfSaving); + Assertions.assertNotEquals(initialSumOfSaving, changedSumOfSaving, "Sum of savings calculation did not change."); + return null; + } + + @CustomAction + default BuildingSavingsCalculator moveBuildingSavingCalculatorLengthBySlider(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialSumOfSaving = this.getSumOfSaving(); + endpoint.dragAndDropBy(CALCULATOR_BUILDING_SAVINGS_LENGTH_BY_SLIDER, xOffset, 0); + String changedSumOfSaving = this.getSumOfSaving(); + System.out.println(changedSumOfSaving); + Assertions.assertNotEquals(initialSumOfSaving, changedSumOfSaving, "Sum of savings calculation did not change."); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/BusinessLoanCalculator.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/BusinessLoanCalculator.java new file mode 100644 index 0000000..d3a3b93 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/BusinessLoanCalculator.java @@ -0,0 +1,75 @@ +package cz.moneta.test.dsl.monetaportal.components.calculators; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +public interface BusinessLoanCalculator extends Builder, StoreAccessor { + + String CALCULATOR_DIV = "//div[@id='PersonalLoanCalculator_INSTANCE_XpGpIBXXDICl-react-root']"; + String CALCULATOR_APPROVE_ONLINE_BUTTON = CALCULATOR_DIV + "//a[@class='btn btn-tertiary sc-bdVaJa gRrvFh']"; + String CALCULATOR_LOAN_AMOUNT_INPUT = CALCULATOR_DIV + "//input[@class='FormattedNumberInput-sc-1v8uygx-1 FGtuM']/..//span[text()='Kč']/../..//input"; + String CALCULATOR_LOAN_AMOUNT_SLIDER = "(" + CALCULATOR_DIV + "//div[@class='FormattedSliderInput__sliderRangeWrapper___11-Gc'])[1]"; + String CALCULATOR_LENGTH_BY_INPUT = CALCULATOR_DIV + "//input[@class='FormattedNumberInput-sc-1v8uygx-1 FGtuM']/..//span[text()='splátek']/../..//input"; + String CALCULATOR_LENGTH_BY_SLIDER = "(" + CALCULATOR_DIV + "//div[@class='FormattedSliderInput__sliderRangeWrapper___11-Gc'])[2]"; + String CALCULATOR_BOX = CALCULATOR_DIV + "//div[@class='LoanCalculatorSection__slidersWrapper___2al12']"; + String CALCULATOR_SPINNER = CALCULATOR_DIV + "//div[@class='LoanResultSection__loadingCalculation___2QPS3']"; + String RESULT_SECTION_MONTHLY_PRICE_SPAN = CALCULATOR_DIV + "//div[contains(@class, 'LoanResultSection__result___2fwgr')]//span[@itemprop='price']/span"; + + @Wait(value = CALCULATOR_SPINNER, until = Until.GONE) + @GetElementContent(RESULT_SECTION_MONTHLY_PRICE_SPAN) + String getMonthlyPrice(); + + @Wait(value = {CALCULATOR_LOAN_AMOUNT_INPUT}) + @Click(CALCULATOR_LOAN_AMOUNT_INPUT) + BusinessLoanCalculator clickBusinessCalculatorAmountInput(); + + @CustomAction + default BusinessLoanCalculator fillBusinessCalculatorAmountInput(String amount) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.type(() -> CALCULATOR_LOAN_AMOUNT_INPUT, amount, true); + endpoint.click(() -> CALCULATOR_BOX); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(initialMonthlyPrice); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default BusinessLoanCalculator moveBusinessCalculatorLoanAmount(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.dragAndDropBy(CALCULATOR_LOAN_AMOUNT_SLIDER, xOffset, 0); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default BusinessLoanCalculator fillBusinessCalculatorLengthBy(String amount) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.type(() -> CALCULATOR_LENGTH_BY_INPUT, amount, true); + endpoint.click(() -> CALCULATOR_BOX); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(initialMonthlyPrice); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default BusinessLoanCalculator moveBusinessCalculatorLoanLengthBy(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.dragAndDropBy(CALCULATOR_LENGTH_BY_SLIDER, xOffset, 0); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/CreditCalculator.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/CreditCalculator.java new file mode 100644 index 0000000..5cf48be --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/CreditCalculator.java @@ -0,0 +1,43 @@ +package cz.moneta.test.dsl.monetaportal.components.calculators; + +import cz.moneta.test.dsl.monetaportal.components.forms.AlaCarteLoanForm; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import org.junit.jupiter.api.Assertions; + +public interface CreditCalculator extends Builder, StoreAccessor { + + //Credit calculator + String CALCULATOR_CREDIT_CARD_AMOUNT_INPUT = "//div[contains(@class, 'inputWrapper')]//input"; + String CALCULATOR_CREDIT_CARD_AMOUNT_SLIDER = "//div[contains(@class, 'Slider__wrapper')]/div[@role='slider']"; + String CALCULATOR_APPROVE_ONLINE_BUTTON = "//div[contains(@class, 'buttonWrapper')]//button"; + + @Click(CALCULATOR_CREDIT_CARD_AMOUNT_INPUT) + CreditCalculator clickCreditCalculatorAmountInput(); + + @Click(CALCULATOR_APPROVE_ONLINE_BUTTON) + AlaCarteLoanForm clickCreditCalculatorOnlineButton(); + + @CustomAction + default CreditCalculator fillCreditCalculatorAmountInput(String amount) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialCreditAmountSlider = endpoint.getAttribute(CALCULATOR_CREDIT_CARD_AMOUNT_SLIDER, "aria-valuenow"); + endpoint.type(() -> CALCULATOR_CREDIT_CARD_AMOUNT_INPUT, amount, true); + String changedCreditAmountSlider = endpoint.getAttribute(CALCULATOR_CREDIT_CARD_AMOUNT_SLIDER, "aria-valuenow"); + Assertions.assertNotEquals(initialCreditAmountSlider, changedCreditAmountSlider, "Credit amount did not change."); + return null; + } + + @CustomAction + default CreditCalculator moveCreditCalculatorAmount(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyCreditAmount = endpoint.getAttribute(CALCULATOR_CREDIT_CARD_AMOUNT_INPUT, "value"); + endpoint.dragAndDropBy(CALCULATOR_CREDIT_CARD_AMOUNT_SLIDER, xOffset, 0); + String changedMonthlyCreditAmount = endpoint.getAttribute(CALCULATOR_CREDIT_CARD_AMOUNT_INPUT, "value"); + Assertions.assertNotEquals(initialMonthlyCreditAmount, changedMonthlyCreditAmount, "Credit amount did not change."); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/ExpressLoanBannerCalculator.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/ExpressLoanBannerCalculator.java new file mode 100644 index 0000000..79e05ae --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/ExpressLoanBannerCalculator.java @@ -0,0 +1,66 @@ +package cz.moneta.test.dsl.monetaportal.components.calculators; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +public interface ExpressLoanBannerCalculator extends Builder, StoreAccessor { + + //Express loan calculator + String CALCULATOR_DIV = "//div[contains(@id, 'PersonalCalculator')]"; + String CALCULATOR_AMOUNT_INPUT = CALCULATOR_DIV + "//input[@class='calcInput__input___KmRsG calcInput__inputStrong___2ApyV']"; + String CALCULATOR_LOAN_AMOUNT_SLIDER = CALCULATOR_DIV + "//div[contains(@class, 'personalCalculator__loanAmountWrapperBannerDesign___L9eEd')]//div[contains(@class, 'calcSliderRangeNumber__thumbVisual___18-pc')]"; + String CALCULATOR_LENGTH_BY_SLIDER = CALCULATOR_DIV + "//div[contains(@class, 'personalCalculator__paymentPeriodWrapperBannerDesign___3isSh')]//div[contains(@class, 'calcSliderRangeNumber__thumbVisual___18-pc')]"; + String CALCULATOR_BOX = CALCULATOR_DIV + "//div[@class='calcCalculatorBoxBannerDesignStyle__Box-sc-1gailm5-0 EnhNJ']"; + String CALCULATOR_SPINNER = "//div[contains(@id, 'PersonalCalculator')]//div[@class='moneta-spinner--wrapper']"; + String RESULT_SECTION_MONTHLY_PRICE_SPAN = CALCULATOR_DIV + "//div[contains(@class, 'calcResultRowBannerDesignStyle__RightStyle')]//span[@itemprop='price']/span "; + String CALCULATOR_LOAN_BUTTON = CALCULATOR_DIV + "//button[@class='button__button___2nGpm btn btn-tertiary sc-bdVaJa gRrvFh']"; + + @Wait(value = CALCULATOR_SPINNER, until = Until.GONE) + @GetElementContent(RESULT_SECTION_MONTHLY_PRICE_SPAN) + String getMonthlyPrice(); + + @Wait(value = {CALCULATOR_AMOUNT_INPUT}) + @Click(CALCULATOR_AMOUNT_INPUT) + ExpressLoanBannerCalculator clickLoanCalculatorAmountInput(); + + @CustomAction + default ExpressLoanBannerCalculator fillLoanCalculatorAmountInput(String amount) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.type(() -> CALCULATOR_AMOUNT_INPUT, amount, true); + endpoint.click(() -> CALCULATOR_BOX); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(initialMonthlyPrice); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default ExpressLoanBannerCalculator moveCalculatorLoanAmount(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.dragAndDropBy(CALCULATOR_LOAN_AMOUNT_SLIDER, xOffset, 0); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default ExpressLoanBannerCalculator moveCalculatorLoanLengthBy(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.dragAndDropBy(CALCULATOR_LENGTH_BY_SLIDER, xOffset, 0); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @Wait(value = {CALCULATOR_LOAN_BUTTON}) + @Click(CALCULATOR_LOAN_BUTTON) + ExpressLoanBannerCalculator clickLoanCalculatorButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/ExpressLoanCalculator.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/ExpressLoanCalculator.java new file mode 100644 index 0000000..dfb32ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/ExpressLoanCalculator.java @@ -0,0 +1,67 @@ +package cz.moneta.test.dsl.monetaportal.components.calculators; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +public interface ExpressLoanCalculator extends Builder, StoreAccessor { + + //Express loan calculator + String CALCULATOR_DIV = "//div[contains(@id, 'PersonalCalculator')]"; + String CALCULATOR_AMOUNT_INPUT = CALCULATOR_DIV + "//input[@class='calcInput__input___KmRsG calcInput__inputStrong___2ApyV']"; + String CALCULATOR_LOAN_AMOUNT_SLIDER = CALCULATOR_DIV + "//div[contains(@class, 'personalCalculator__loanAmountBoxFullDesign___Lz7KF')]//div[contains(@class, 'calcSliderRangeNumber__thumbDefault___qxXnH')]"; + String CALCULATOR_LENGTH_BY_SLIDER = CALCULATOR_DIV + "//div[contains(@class, 'personalCalculator__paymentPeriodBoxFullDesign___oLJII')]//div[contains(@class, 'calcSliderRangeNumber__thumbDefault___qxXnH')]"; + String CALCULATOR_BOX = CALCULATOR_DIV + "//div[@class='CalcCalculatorBoxFullDesign__box___3AiZy']"; + String CALCULATOR_SPINNER = "//div[contains(@id, 'PersonalCalculator')]//div[@class='moneta-spinner--wrapper']"; + String RESULT_SECTION_MONTHLY_PRICE_SPAN = "//div[contains(@class, 'calcBoxFullDesign__resultBox___3LfyW')]//div[contains(@class, 'header__header___CJ0TM')]//span[@itemprop='price']/span "; + String CALCULATOR_LOAN_BUTTON = CALCULATOR_DIV + "//button[@class='button__button___3t77U btn btn-tertiary sc-bdVaJa gRrvFh']"; + + + @Wait(value = CALCULATOR_SPINNER, until = Until.GONE) + @GetElementContent(RESULT_SECTION_MONTHLY_PRICE_SPAN) + String getMonthlyPrice(); + + @Wait(value = {CALCULATOR_AMOUNT_INPUT}) + @Click(CALCULATOR_AMOUNT_INPUT) + ExpressLoanCalculator clickLoanCalculatorAmountInput(); + + @CustomAction + default ExpressLoanCalculator fillLoanCalculatorAmountInput(String amount) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.type(() -> CALCULATOR_AMOUNT_INPUT, amount, true); + endpoint.click(() -> CALCULATOR_BOX); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(initialMonthlyPrice); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default ExpressLoanCalculator moveCalculatorLoanAmount(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.dragAndDropBy(CALCULATOR_LOAN_AMOUNT_SLIDER, xOffset, 0); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default ExpressLoanCalculator moveCalculatorLoanLengthBy(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.dragAndDropBy(CALCULATOR_LENGTH_BY_SLIDER, xOffset, 0); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @Wait(value = {CALCULATOR_LOAN_BUTTON}) + @Click(CALCULATOR_LOAN_BUTTON) + ExpressLoanCalculator clickLoanCalculatorButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/LoanCalculator.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/LoanCalculator.java new file mode 100644 index 0000000..a8ebd9c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/calculators/LoanCalculator.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.monetaportal.components.calculators; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +public interface LoanCalculator extends Builder, StoreAccessor { + + //Loan calculator + String CALCULATOR_DIV = "//section[contains(@id, 'portlet_Wso2LoanCalculator_INSTANCE')]"; + String CALCULATOR_LOAN_AMOUNT_INPUT = "(" + CALCULATOR_DIV + "//input[@name='amount'])"; + String CALCULATOR_LOAN_AMOUNT_SLIDER = "(" + CALCULATOR_DIV + "//div[contains(@class, 'sc-dEFUer klhqCs')]//div[contains(@class, 'rc-slider-handle')])[1]"; + String CALCULATOR_LENGTH_BY_INPUT = "(" + CALCULATOR_DIV + "//input[@name='paymentPeriod'])"; + String CALCULATOR_LENGTH_BY_SLIDER = "(" + CALCULATOR_DIV + "//div[contains(@class, 'sc-dEFUer klhqCs')]//div[contains(@class, 'rc-slider-handle')])[2]"; + String CALCULATOR_BOX = CALCULATOR_DIV + "//div[contains(@class, 'calculatorLayoutstyle__ResultWrapper-sc-yndede-2')]"; + String CALCULATOR_SPINNER = "//div[contains(@id, 'Wso2LoanCalculator_INSTANCE')]//div[contains(@class, 'loanCalculatorstyles__ResultLoadingWrapper-sc')]"; + String RESULT_SECTION_MONTHLY_PRICE_SPAN = "//div[contains(@class, 'calculatorLayoutstyle__ResultWrapper-sc-yndede-2')]//span[@class='sc-guDLey bHiqw']"; + String CALCULATOR_LOAN_FIXATION_BUTTON = CALCULATOR_DIV + "//span[text()='3 roky']"; + String CALCULATOR_RESULT_SECTION_LOAN_BUTTON = CALCULATOR_DIV + "//div[contains(@class, 'calculatorLayoutstyle__ResultWrapper')]//button"; + + @Wait(value = CALCULATOR_SPINNER, until = Until.GONE) + @GetElementContent(RESULT_SECTION_MONTHLY_PRICE_SPAN) + String getMonthlyPrice(); + + @Wait(value = {CALCULATOR_LOAN_AMOUNT_INPUT}) + @Click(CALCULATOR_LOAN_AMOUNT_INPUT) + LoanCalculator clickLoanCalculatorAmountInput(); + + @CustomAction + default LoanCalculator fillLoanCalculatorAmountInput(String amount) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.type(() -> CALCULATOR_LOAN_AMOUNT_INPUT, amount, true); + endpoint.click(() -> CALCULATOR_BOX); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(initialMonthlyPrice); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default LoanCalculator moveLoanCalculatorLoanAmount(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.dragAndDropBy(CALCULATOR_LOAN_AMOUNT_SLIDER, xOffset, 0); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default LoanCalculator fillLoanCalculatorLengthBy(String amount) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.type(() -> CALCULATOR_LENGTH_BY_INPUT, amount, true); + endpoint.click(() -> CALCULATOR_BOX); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(initialMonthlyPrice); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default LoanCalculator moveLoanCalculatorLoanLengthBy(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.dragAndDropBy(CALCULATOR_LENGTH_BY_SLIDER, xOffset, 0); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default LoanCalculator clickLoanCalculatorFixationButton() { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.click(() -> CALCULATOR_LOAN_FIXATION_BUTTON); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/forms/AlaCarteLoanForm.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/forms/AlaCarteLoanForm.java new file mode 100644 index 0000000..9c6c464 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/components/forms/AlaCarteLoanForm.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.monetaportal.components.forms; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.components.forms.AlaCarteLoanForm.A_LA_CARTE_FORM_FIRSTNAME_INPUT; + +@Wait(A_LA_CARTE_FORM_FIRSTNAME_INPUT) +public interface AlaCarteLoanForm extends WebFlow, StoreAccessor { + + String A_LA_CARTE_FORM_DIV = "//div[contains(@class, 'UnifiedOnboarding__left___')]"; + String A_LA_CARTE_FORM_FIRSTNAME_INPUT = A_LA_CARTE_FORM_DIV + "//input[@id = 'firstName']"; + String A_LA_CARTE_FORM_LASTNAME_INPUT = A_LA_CARTE_FORM_DIV + "//input[@id = 'lastName']"; + String A_LA_CARTE_FORM_EMAIL_INPUT = A_LA_CARTE_FORM_DIV + "//input[@id = 'email']"; + String A_LA_CARTE_FORM_PHONENUMBER_INPUT = A_LA_CARTE_FORM_DIV + "//input[@id = 'phoneNumber']"; + String A_LA_CARTE_FORM_MAILINGAGREEMENT_CHECKBOX = A_LA_CARTE_FORM_DIV + "//input[@name = 'mailingAgreement']/.."; + String A_LA_CARTE_FORM_GDPRAGREEMENT_CHECKBOX = A_LA_CARTE_FORM_DIV + "//input[@name = 'gdprAgreement']/.."; + String A_LA_CARTE_FORM_WHATSAPPAGREEMENT_CHECKBOX = A_LA_CARTE_FORM_DIV + "//input[@name = 'whatsAppAgreement']/.."; + String A_LA_CARTE_FORM_CONFIRM_BUTTON = A_LA_CARTE_FORM_DIV + "//button[contains(@class, 'btn btn-tertiary')]"; + String A_LA_CARTE_FORM_QR_CODE = "//div[contains(@class, 'Result__qr___')]"; + + @TypeInto(value = A_LA_CARTE_FORM_FIRSTNAME_INPUT, clear = true) + AlaCarteLoanForm fillLoanFormFirstname(String LoanFormFirstname); + + @TypeInto(value = A_LA_CARTE_FORM_LASTNAME_INPUT, clear = true) + AlaCarteLoanForm fillLoanFormLastname(String LoanFormLastname); + + @TypeInto(value = A_LA_CARTE_FORM_EMAIL_INPUT, clear = true) + AlaCarteLoanForm fillLoanFormEmail(String LoanFormEmail); + + @TypeInto(value = A_LA_CARTE_FORM_PHONENUMBER_INPUT, clear = true) + AlaCarteLoanForm fillLoanFormPhoneNumber(String LoanFormPhoneNumber); + + @Click(A_LA_CARTE_FORM_MAILINGAGREEMENT_CHECKBOX) + AlaCarteLoanForm clickLoanFormMailingAgreement(); + + @Click(A_LA_CARTE_FORM_GDPRAGREEMENT_CHECKBOX) + AlaCarteLoanForm clickLoanFormGdprAgreement(); + + @Click(A_LA_CARTE_FORM_WHATSAPPAGREEMENT_CHECKBOX) + AlaCarteLoanForm clickLoanFormWhatsAppAgreement(); + + @Click(A_LA_CARTE_FORM_CONFIRM_BUTTON) + AlaCarteLoanForm clickLoanFormConfirm(); + + @Wait(A_LA_CARTE_FORM_QR_CODE) + @CheckElementPresent(A_LA_CARTE_FORM_QR_CODE) + AlaCarteLoanForm checkQRCode(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/enums/SearchBranchName.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/enums/SearchBranchName.java new file mode 100644 index 0000000..f391b45 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/enums/SearchBranchName.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.monetaportal.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum SearchBranchName implements DynamicPathPart { + BRUMLOVKA("Brumlovka"), + CESKE_BUDEJOVICE("České Budějovice"); + + private final String branchName; + + SearchBranchName(String branchName) { + this.branchName = branchName; + } + + @Override + public String getValue() { + return branchName; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/BridgingLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/BridgingLoanPage.java new file mode 100644 index 0000000..df7d7cd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/BridgingLoanPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.monetaportal.loans; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.dsl.monetaportal.components.calculators.LoanCalculator; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.calculators.LoanCalculator.CALCULATOR_RESULT_SECTION_LOAN_BUTTON; + +@Wait(CALCULATOR_RESULT_SECTION_LOAN_BUTTON) +public interface BridgingLoanPage extends WebFlow, LoanCalculator, Naviblocks { + + //Bridging loan calculator + String CALCULATOR_BANNER_SECTION_BUTTON = "//div[@class='col col-lg-6 col-sm-12 col-12 col-md-12 d-flex flex-column']//a[@class='btn btn-2xl btn-primary ']"; + String HYPOLOAN_BUTTON = "//a[@class='btn js-anchor btn-ghost-green ' and @href='/pujcky-a-uvery/hypopujcka-pro-bydleni']"; + + @Click(CALCULATOR_BANNER_SECTION_BUTTON) + BridgingLoanPage clickBridgingCalculatorSection(); + + @Click(HYPOLOAN_BUTTON) + HypoLoanPage clickHypoLoanPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/BuildingSavingsLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/BuildingSavingsLoanPage.java new file mode 100644 index 0000000..92dba7f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/BuildingSavingsLoanPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.monetaportal.loans; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.Naviblocks.NAVIBLOCKS_DIV; + +@Wait(NAVIBLOCKS_DIV) +public interface BuildingSavingsLoanPage extends WebFlow, Naviblocks { + + //Building savings loan page + String NAVIBLOCKS_BANNER_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-primary ']"; + + @Click(NAVIBLOCKS_BANNER_SECTION_BUTTON) + Naviblocks clickNaviblocksSection(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/BusinessLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/BusinessLoanPage.java new file mode 100644 index 0000000..8d37a8b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/BusinessLoanPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.monetaportal.loans; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.dsl.monetaportal.components.calculators.BusinessLoanCalculator; +import cz.moneta.test.dsl.monetaportal.more.ExpressBusinessWizard; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.loans.BusinessLoanPage.CALCULATOR_APPROVE_ONLINE_BUTTON; + +@Wait(CALCULATOR_APPROVE_ONLINE_BUTTON) +public interface BusinessLoanPage extends WebFlow, BusinessLoanCalculator, Naviblocks, ExpressBusinessWizard { + + //Business loan calculator + String CALCULATOR_BANNER_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-primary ']"; + String CALCULATOR_DIV = "//div[@id='PersonalLoanCalculator_INSTANCE_XpGpIBXXDICl-react-root']"; + String CALCULATOR_APPROVE_ONLINE_BUTTON = CALCULATOR_DIV + "//a[@class='btn btn-tertiary sc-bdVaJa gRrvFh']"; + + @Click(CALCULATOR_BANNER_SECTION_BUTTON) + BusinessLoanPage clickBusinessCalculatorSection(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/ExpressLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/ExpressLoanPage.java new file mode 100644 index 0000000..3e2f66d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/ExpressLoanPage.java @@ -0,0 +1,141 @@ +package cz.moneta.test.dsl.monetaportal.loans; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.dsl.monetaportal.components.QuestionQuickCall; +import cz.moneta.test.dsl.monetaportal.components.Web2Branch; +import cz.moneta.test.dsl.monetaportal.components.Web2Call; +import cz.moneta.test.dsl.monetaportal.components.calculators.ExpressLoanBannerCalculator; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.loans.ExpressLoanPage.CALCULATOR_DIV; + +// TODO: Will be removed + +@Wait(CALCULATOR_DIV) +public interface ExpressLoanPage extends WebFlow, ExpressLoanBannerCalculator, Naviblocks, QuestionQuickCall, StoreAccessor { + //Express loan calculator + String CALCULATOR_DIV = "//div[contains(@id, 'PersonalCalculator')]"; + String CALCULATOR_AMOUNT_INPUT = CALCULATOR_DIV + "//input[@class='calcInput__input___KmRsG calcInput__inputStrong___2ApyV']"; + String CALCULATOR_REDUCE_OBLIGATIONS_BUTTON = CALCULATOR_DIV + "//span[@data-message-id='ObligationForm.reducePayments']"; + String CALCULATOR_BOX = CALCULATOR_DIV + "//div[@class='CalcCalculatorBoxFullDesign__box___3AiZy']"; + + //NAVIBLOCK + String NAVIBLOCK_W2B_BUTTON = "//div[contains(@class, 'naviblocks')]//div[not(contains(@class, 'phone-visible'))]/a[contains(@class, 'w2b-modal')]"; + + //W2C + String W2C_DIV = "//div[@id='W2cModal']"; + String W2C_INPUT = W2C_DIV + "//input[@data-message-id='w2c.ContactForm.placeholder']"; + String W2C_SUBMIT_BUTTON = W2C_DIV + "//span[@data-message-id='w2c.ContactForm.submit']/.."; + String W2C_SUCCESS_MESSAGE = W2C_DIV + "//span[@data-message-id='w2c.W2cResponse.responseMessage']"; + + //W2B + String W2B_DIV = "//div[@id='W2bModal']"; + String W2B_SEARCH_BRANCH_INPUT = W2B_DIV + "//input[@id = 'searchBranchInput']"; + String W2B_SEARCH_RESULT_BRANCH = "//div[@class = 'pac-item']//span[contains(text(),'%s')]"; + String W2B_ARRANGE_APPOINTMENT_BUTTON = "(" + W2B_DIV + "//span[@data-message-id = 'BranchItem.arrangeAppointment'])[1]"; + String W2B_CONTINUE_BUTTON = W2B_DIV + "//span[@data-message-id = 'AppointmentForm.continueButton']/.."; + String W2B_FORM_CLIENT_FULL_NAME_INPUT = W2B_DIV + "//input[@id = 'clientFullName']"; + String W2B_FORM_CLIENT_PHONE_NUMBER_INPUT = W2B_DIV + "//input[@id = 'clientPhoneNumber']"; + String W2B_FORM_CLIENT_EMAIL_INPUT = W2B_DIV + "//input[@id = 'clientEmail']"; + String W2B_SUBMIT_BUTTON = W2B_DIV + "//span[@data-message-id = 'ContactInfoForm.submitButton']/.."; + String W2B_SUCCESS_MESSAGE = W2B_DIV + "//span[@data-message-id='ResultFormSuccess.appointmentSuccessfulHeader']"; + String W2B_BUTTON = "//a[@href='#w2b-modal']"; + String W2C_BUTTON = "//a[@href='/pujcky-a-uvery/pujcka-na-cokoliv#w2c-modal']"; + + @Waits({@Wait(value = W2B_BUTTON, until = Until.VISIBLE), @Wait(value = W2B_BUTTON, until = Until.CLICKABLE), @Wait(explicitWaitSeconds = 2)}) + @Click(value = W2B_BUTTON, jsClick = true) + Web2Branch clickArrangeAppointmentAtBranch(); + + @Wait(value = W2C_BUTTON, until = Until.VISIBLE) + @Click(value = W2C_BUTTON, jsClick = true) + Web2Call clickToCall(); + + //Express loan calculator + /*@Wait(value = {CALCULATOR_AMOUNT_INPUT}) + @Click(CALCULATOR_AMOUNT_INPUT) + ExpressLoanPage clickCalculatorAmountInput(); + + @CustomAction + default ExpressLoanPage fillCalculatorAmount(String amount) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.type(() -> CALCULATOR_AMOUNT_INPUT, amount, true); + endpoint.click(() -> CALCULATOR_BOX); + String changedMonthlyPrice = this.getMonthlyPrice(); + System.out.println(initialMonthlyPrice); + System.out.println(changedMonthlyPrice); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @CustomAction + default ExpressLoanPage moveCalculatorLoanLengthBy(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.dragAndDropBy(CALCULATOR_LENGTH_BY_SLIDER, xOffset, 0); + String changedMonthlyPrice = this.getMonthlyPrice(); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + //@Wait(value = CALCULATOR_SPINNER, until = Until.GONE) + //@Click(CALCULATOR_NEXT_BUTTON) + //GetExpressLoanPage clickCalculatorGetLoan(); + + @Click(CALCULATOR_REDUCE_OBLIGATIONS_BUTTON) + UDCLoanPage clickCalculatorReduceObligations();*/ + + //NAVIBLOCK + // @Click(value = NAVIBLOCK_W2C_BUTTON, andWait = @Wait(explicitWaitSeconds = 1)) + //Web2Call clickNaviblocksW2C(); + + /* + @Click(value = NAVIBLOCK_W2B_BUTTON, andWait = @Wait(value = W2B_SEARCH_BRANCH_INPUT, until = Until.VISIBLE)) + ExpressLoanPage clickNaviblocksW2B(); + + //W2C + @Click(W2C_INPUT) + ExpressLoanPage clickW2CPhone(); + + @Click(W2C_SUBMIT_BUTTON) + ExpressLoanPage clickW2CSubmit(); + + @TypeInto(value = W2C_INPUT, clear = true) + ExpressLoanPage fillW2CPhone(String phoneNumber); + + @CheckElementPresent(W2C_SUCCESS_MESSAGE) + ExpressLoanPage checkW2CSuccessMessage(); + + //W2B + @Click(W2B_SEARCH_BRANCH_INPUT) + ExpressLoanPage clickW2BSearchBranch(); + + @Click(W2B_ARRANGE_APPOINTMENT_BUTTON) + ExpressLoanPage clickW2BArrangeAppointment(); + + @Click(W2B_CONTINUE_BUTTON) + ExpressLoanPage clickW2BContinue(); + + @Click(W2B_SUBMIT_BUTTON) + ExpressLoanPage clickW2BSubmit(); + + @TypeInto(value = W2B_SEARCH_BRANCH_INPUT, clear = true) + ExpressLoanPage fillW2BSearchBranch(String searchBranchName); + + @TypeInto(value = W2B_FORM_CLIENT_FULL_NAME_INPUT, clear = true) + ExpressLoanPage fillW2BClientFullName(String clientFullName); + + @TypeInto(value = W2B_FORM_CLIENT_PHONE_NUMBER_INPUT, clear = true) + ExpressLoanPage fillW2BClientPhoneNumber(String clientPhoneNumber); + + @TypeInto(value = W2B_FORM_CLIENT_EMAIL_INPUT, clear = true) + ExpressLoanPage fillW2BClientEmail(String clientEmail); + + @CheckElementPresent(W2B_SUCCESS_MESSAGE) + ExpressLoanPage checkW2BSuccessMessage(); + + @Click(W2B_SEARCH_RESULT_BRANCH) + ExpressLoanPage clickW2BSearchResultBranches(SearchBranchName searchBranchName); +*/ +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/GetCreditAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/GetCreditAccountPage.java new file mode 100644 index 0000000..5cad536 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/GetCreditAccountPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.monetaportal.loans; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.dsl.monetaportal.components.calculators.CreditCalculator; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.calculators.CreditCalculator.CALCULATOR_APPROVE_ONLINE_BUTTON; + +@Wait(CALCULATOR_APPROVE_ONLINE_BUTTON) +public interface GetCreditAccountPage extends WebFlow, CreditCalculator, Naviblocks { +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/GetExpressLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/GetExpressLoanPage.java new file mode 100644 index 0000000..1f1e5f5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/GetExpressLoanPage.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.monetaportal.loans; + +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.loans.GetExpressLoanPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface GetExpressLoanPage extends WebFlow { + //NAVIBLOCKS + String PAGE_TITLE = "//h4[text()='Rychlá půjčka na cokoli']"; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/GetUDCLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/GetUDCLoanPage.java new file mode 100644 index 0000000..1e48aa0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/GetUDCLoanPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.monetaportal.loans; + +import cz.moneta.test.dsl.monetaportal.online.OnlineUDCLoanPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.loans.GetUDCLoanPage.NAVIBLOCKS_FQ_BUTTON; + +@Wait(NAVIBLOCKS_FQ_BUTTON) +public interface GetUDCLoanPage extends WebFlow { + //NAVIBLOCKS + String NAVIBLOCKS_FQ_BUTTON = "//div[contains(@id, 'JournalContentPortlet')]//div[not(contains(@class, 'phone-visible'))]/a[contains(@href, 'online.moneta.cz/konsolidace?')]"; + + @Click(NAVIBLOCKS_FQ_BUTTON) + OnlineUDCLoanPage clickFQ(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/HypoLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/HypoLoanPage.java new file mode 100644 index 0000000..c651e41 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/HypoLoanPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.monetaportal.loans; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.dsl.monetaportal.components.calculators.LoanCalculator; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.calculators.LoanCalculator.CALCULATOR_RESULT_SECTION_LOAN_BUTTON; + +@Wait(CALCULATOR_RESULT_SECTION_LOAN_BUTTON) +public interface HypoLoanPage extends WebFlow, LoanCalculator, Naviblocks { + + //Hypoloan calculator + String CALCULATOR_BANNER_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-primary ']"; + + @Click(CALCULATOR_BANNER_SECTION_BUTTON) + HypoLoanPage clickHypoCalculatorSection(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/UDCExpressLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/UDCExpressLoanPage.java new file mode 100644 index 0000000..d28adf6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/loans/UDCExpressLoanPage.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.monetaportal.loans; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.dsl.monetaportal.components.calculators.ExpressLoanCalculator; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.GetElementContent; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.calculators.ExpressLoanCalculator.RESULT_SECTION_MONTHLY_PRICE_SPAN; + +@Wait(RESULT_SECTION_MONTHLY_PRICE_SPAN) +public interface UDCExpressLoanPage extends WebFlow, ExpressLoanCalculator, Naviblocks, StoreAccessor { + //UDC loan calculator + String CALCULATOR_DIV = "//div[contains(@id, 'PersonalCalculator')]"; + String CALCULATOR_ADD_LOAN_BUTTON = CALCULATOR_DIV + "//span[@data-message-id='ObligationForm.addLoan']/.."; + String CALCULATOR_ADD_OVERDRAFT_BUTTON = CALCULATOR_DIV + "//span[@data-message-id='ObligationForm.addOverdraft']/.."; + String CALCULATOR_ADD_CREDIT_CARD_BUTTON = CALCULATOR_DIV + "//span[@data-message-id='ObligationForm.addCreditCard']/.."; + String CALCULATOR_ADD_OBLIGATION_INPUT_ = "(" + CALCULATOR_DIV + "//div[contains(@class, 'Obligation')]//input[not(contains(@value, '00'))])[1]"; + String CALCULATOR_ADD_EXTRA_MONEY_INPUT_ = "(" + CALCULATOR_DIV + "//div[contains(@class, 'Loan')]//input)[1]"; + String CALCULATOR_BANNER_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-primary ']"; + + @Click(CALCULATOR_BANNER_SECTION_BUTTON) + UDCExpressLoanPage clickCalculatorSection(); + + @Click(CALCULATOR_ADD_LOAN_BUTTON) + UDCExpressLoanPage clickCalculatorAddLoan(); + + @Click(CALCULATOR_ADD_OVERDRAFT_BUTTON) + UDCExpressLoanPage clickCalculatorAddOverdraft(); + + @Click(CALCULATOR_ADD_CREDIT_CARD_BUTTON) + UDCExpressLoanPage clickCalculatorAddCreditCard(); + + @TypeInto(value = CALCULATOR_ADD_OBLIGATION_INPUT_, clear = true) + UDCExpressLoanPage fillCalculatorObligation(String obligationAmount); + + @TypeInto(value = CALCULATOR_ADD_EXTRA_MONEY_INPUT_, clear = true) + UDCExpressLoanPage fillCalculatorExtraMoney(String extraMoneyAmount); + + @Wait(value = CALCULATOR_SPINNER, until = Until.GONE) + @GetElementContent(RESULT_SECTION_MONTHLY_PRICE_SPAN) + String getMonthlyPrice(); + + /*@CustomAction + default UDCLoanPage moveCalculatorLoanLengthBy(int xOffset) { + MonetaPortalEndpoint endpoint = getEndpoint(MonetaPortalEndpoint.class); + String initialMonthlyPrice = this.getMonthlyPrice(); + endpoint.dragAndDropBy(CALCULATOR_LENGTH_SLIDER, xOffset, 0); + String changedMonthlyPrice = this.getMonthlyPrice(); + Assertions.assertNotEquals(initialMonthlyPrice, changedMonthlyPrice, "Monthly price calculation did not change."); + return null; + } + + @Wait(value = CALCULATOR_SPINNER, until = Until.GONE) + @Click(CALCULATOR_NEXT_BUTTON) + GetUDCLoanPage clickCalculatorGetLoan();*/ +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ATMsPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ATMsPage.java new file mode 100644 index 0000000..81e5554 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ATMsPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.monetaportal.more; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.more.ATMsPage.ATMS_PAGE_MAP; + +@Wait(ATMS_PAGE_MAP) +public interface ATMsPage extends WebFlow { + + //ATMs page + String ATMS_PAGE_MAP = "//div[@class='gm-style']"; + + @CheckElementPresent(ATMS_PAGE_MAP) + ATMsPage checkATMsMap(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/BranchesPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/BranchesPage.java new file mode 100644 index 0000000..e9ce0c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/BranchesPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.monetaportal.more; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.more.BranchesPage.BRANCHES_PAGE_MAP; + +@Wait(BRANCHES_PAGE_MAP) +public interface BranchesPage extends WebFlow { + + //Branches page + String BRANCHES_PAGE_MAP = "//div[@class='gm-style']"; + + @CheckElementPresent(BRANCHES_PAGE_MAP) + BranchesPage checkBranchesMap(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ExchangeRatesPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ExchangeRatesPage.java new file mode 100644 index 0000000..8bc0f0c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ExchangeRatesPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.monetaportal.more; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.more.ExchangeRatesPage.EXCHANGE_RATES_TABLE; + +@Wait(EXCHANGE_RATES_TABLE) +public interface ExchangeRatesPage extends WebFlow { + //Exchange rates + String EXCHANGE_RATES_DIV = "//div[contains(@id, 'ExchangeRates')]"; + String EXCHANGE_RATES_FROM_INPUT = "(" + EXCHANGE_RATES_DIV + "//input[@type='tel'])[1]"; + String EXCHANGE_RATES_TO_INPUT = "(" + EXCHANGE_RATES_DIV + "//input[@type='tel'])[2]"; + String EXCHANGE_RATES_FROM_CURRENCY_SELECT = "(" + EXCHANGE_RATES_DIV + "//select)[1]"; + String EXCHANGE_RATES_TO_CURRENCY_SELECT = "(" + EXCHANGE_RATES_DIV + "//select)[2]"; + String EXCHANGE_RATES_TABLE = EXCHANGE_RATES_DIV + "//section[contains(@id, 'portlet_ExchangeRatesTable_INSTANCE_')]//div[contains(@class, 'Tabs__ContentWrapper-')]"; + + @CheckElementPresent(EXCHANGE_RATES_TABLE) + ExchangeRatesPage checkExchangeRatesTable(); + + @TypeInto(value = EXCHANGE_RATES_FROM_INPUT, clear = true) + ExchangeRatesPage fillEchangeRatesAmount(String amount); + + @Select(EXCHANGE_RATES_FROM_CURRENCY_SELECT) + ExchangeRatesPage selectExchangeRatesCurrencyFrom(String currency); + + @Select(EXCHANGE_RATES_TO_CURRENCY_SELECT) + ExchangeRatesPage selectExchangeRatesCurrencyTo(String currency); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ExchangeRatesPageEN.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ExchangeRatesPageEN.java new file mode 100644 index 0000000..e6e4d30 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ExchangeRatesPageEN.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.monetaportal.more; + +import cz.moneta.test.harness.support.web.*; +import static cz.moneta.test.dsl.monetaportal.more.ExchangeRatesPageEN.EXCHANGE_RATES_TABLE; + +@Wait(EXCHANGE_RATES_TABLE) +public interface ExchangeRatesPageEN extends WebFlow { + //Exchange rates EN + String EXCHANGE_RATES_DIV = "//div[contains(@id, 'ExchangeRates')]"; + String EXCHANGE_RATES_FROM_INPUT = "(" + EXCHANGE_RATES_DIV + "//input[@type='tel'])[1]"; + String EXCHANGE_RATES_TO_INPUT = "(" + EXCHANGE_RATES_DIV + "//input[@type='tel'])[2]"; + String EXCHANGE_RATES_FROM_CURRENCY_SELECT = "(" + EXCHANGE_RATES_DIV + "//select)[1]"; + String EXCHANGE_RATES_TO_CURRENCY_SELECT = "(" + EXCHANGE_RATES_DIV + "//select)[2]"; + String EXCHANGE_RATES_TABLE = EXCHANGE_RATES_DIV + "//section[contains(@id, 'portlet_ExchangeRatesTable_INSTANCE_')]//div[contains(@class, 'Tabs__ContentWrapper-')]"; + + @CheckElementPresent(EXCHANGE_RATES_TABLE) + ExchangeRatesPageEN checkExchangeRatesTable(); + + @TypeInto(value = EXCHANGE_RATES_FROM_INPUT, clear = true) + ExchangeRatesPageEN fillExchangeRatesAmount(String amount); + + @Select(EXCHANGE_RATES_FROM_CURRENCY_SELECT) + ExchangeRatesPageEN selectExchangeRatesCurrencyFrom(String currency); + + @Select(EXCHANGE_RATES_TO_CURRENCY_SELECT) + ExchangeRatesPageEN selectExchangeRatesCurrencyTo(String currency); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ExpressBusinessWizard.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ExpressBusinessWizard.java new file mode 100644 index 0000000..fbf9c2c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/ExpressBusinessWizard.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.monetaportal.more; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +public interface +ExpressBusinessWizard { + + //ExpressBusinessWizard + String EXPRESS_BUSINESS_WIZARD_CONTINUE_BUTTON = "//button[@class='c-btn mmb1--button--AJhVm u-mb--xSmall']/span"; + String EXPRESS_BUSINESS_WIZARD_ICO_INPUT = "//input[@id='companyIdentificationNumber']"; + + @Wait(EXPRESS_BUSINESS_WIZARD_CONTINUE_BUTTON) + @Click(EXPRESS_BUSINESS_WIZARD_CONTINUE_BUTTON) + ExpressBusinessWizard clickBusinessWizardContinue(); + + @Wait(EXPRESS_BUSINESS_WIZARD_ICO_INPUT) + @CheckElementPresent(EXPRESS_BUSINESS_WIZARD_ICO_INPUT) + ExpressBusinessWizard checkBusinessWizardICO(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/InternetBankPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/InternetBankPage.java new file mode 100644 index 0000000..3dbe078 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/InternetBankPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.monetaportal.more; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.more.InternetBankPage.IB_LOGIN_PAGE; + +@Wait(IB_LOGIN_PAGE) +public interface InternetBankPage extends WebFlow { + + String IB_LOGIN_PAGE = "//div[@class='c-card__header']"; + + @CheckElementPresent(IB_LOGIN_PAGE) + InternetBankPage checkIBPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/OnlineProductPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/OnlineProductPage.java new file mode 100644 index 0000000..ea041a2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/OnlineProductPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.monetaportal.more; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.more.OnlineProductPage.ONLINE_PRODUCT_PAGE_BORDER; + +@Wait(ONLINE_PRODUCT_PAGE_BORDER) +public interface OnlineProductPage extends WebFlow { + + //Online product page + String ONLINE_PRODUCT_PAGE_BORDER = "//div[@class='page-section page-section__banner-small-img bordered']"; + + @CheckElementPresent(ONLINE_PRODUCT_PAGE_BORDER) + OnlineProductPage checkOnlineProductBorder(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/OnlineSupportPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/OnlineSupportPage.java new file mode 100644 index 0000000..84edfdf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/OnlineSupportPage.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.monetaportal.more; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface OnlineSupportPage extends WebFlow { + + //Online support page + String ONLINE_SUPPORT_PAGE_BANNER = "//div[@class='page-section page-section__banner-small-img ']"; + + @CheckElementPresent(ONLINE_SUPPORT_PAGE_BANNER) + OnlineSupportPage checkOnlineSupportBanner(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/SmartBankPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/SmartBankPage.java new file mode 100644 index 0000000..c49b8a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/more/SmartBankPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.monetaportal.more; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.more.SmartBankPage.SB_APP_STORE_BUTTON; + +@Wait(SB_APP_STORE_BUTTON) +public interface SmartBankPage extends WebFlow { + + //Smart bank page + String SB_APP_STORE_BUTTON = "//a[@class='btn btn-app-store ']"; + + @CheckElementPresent(SB_APP_STORE_BUTTON) + SmartBankPage checkSBPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/mortgages/MortgagePage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/mortgages/MortgagePage.java new file mode 100644 index 0000000..63c49b9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/mortgages/MortgagePage.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.monetaportal.mortgages; + +import cz.moneta.test.dsl.finanso.FinansoIncomePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.*; + +@Wait(MortgagePage.MORTGAGE_CALCULATOR) +@Wait(MortgagePage.REALITY_AMOUNT_INPUT) +public interface MortgagePage extends WebFlow, StoreAccessor { + String MORTGAGE_CALCULATOR = "//mortgage-calculator-widget"; + String FIND_MAX_MORTGAGE_TAB_BUTTON = "//button[@aria-controls='tabPanelIdfindMaxMortgage:r0:']"; + String INCOME_APPLICANT_INPUT = MORTGAGE_CALCULATOR + "//input[@name='incomeApplicant']"; + String FEE_APPLICANT_INPUT = MORTGAGE_CALCULATOR + "//input[@name='feeApplicant']"; + String IS_COAPPLICANT_TRUE_RADIO_BUTTON = MORTGAGE_CALCULATOR + "//div[./input[@name='isCoApplicant' and @value='true']]"; + String IS_COAPPLICANT_FALSE_RADIO_BUTTON = MORTGAGE_CALCULATOR + "//div[./input[@name='isCoApplicant' and @value='false']]"; + String MAX_MORTGAGE_RESULT_SPAN = MORTGAGE_CALCULATOR + "//span[@data-message-id='MortgageResultSection.headerMaximumMortgage.mortgage']/ancestor::div[2]//span[@aria-hidden='true']"; + String MAX_MORTGAGE_TRANSFER_RESULT_BUTTON = MORTGAGE_CALCULATOR + "//button[not(@disabled) and .//* [@data-message-id='MortgageResultSection.iWantLoanMaximumMortgage.mortgage']]"; + String MAX_MORTGAGE_RESULT_MESSAGE = MORTGAGE_CALCULATOR + "//span[@data-message-id='MortgageResultSection.headerMaximumMortgage.mortgage']"; + String REALITY_AMOUNT_INPUT = MORTGAGE_CALCULATOR + "//input[@name='realtyAmount']"; + String AMOUNT_INPUT = MORTGAGE_CALCULATOR + "//input[@name='amount']"; + String MATURITY_INPUT = MORTGAGE_CALCULATOR + "//input[@name='maturity']"; + String FIXATION_RADIO = MORTGAGE_CALCULATOR + "//div[./input[@value='%S']]"; + String I_WANT_LOAN_BUTTON = MORTGAGE_CALCULATOR + "//button[not(@disabled) and .//span[@data-message-id='MortgageResultSection.iWantLoan.mortgage']]"; + String RESULT_LOADING = MORTGAGE_CALCULATOR + "//div[contains(@class,'Loading')]"; + + @Click(value = FIND_MAX_MORTGAGE_TAB_BUTTON, jsClick = true, andWait = @Wait(INCOME_APPLICANT_INPUT)) + MortgagePage clickFindMaxMortgageTabButton(); + + @TypeInto(value = INCOME_APPLICANT_INPUT, clear = true) + MortgagePage fillIncome(String income); + + @TypeInto(value = FEE_APPLICANT_INPUT, clear = true) + MortgagePage fillFee(String fee); + + @Click(IS_COAPPLICANT_TRUE_RADIO_BUTTON) + MortgagePage clickIsApplicantTrue(); + + @Click(IS_COAPPLICANT_FALSE_RADIO_BUTTON) + MortgagePage clickIsApplicantFalse(); + + @Click(value = FIXATION_RADIO, isStringDynamicXpath = true, jsClick = true, andWait = @Wait(value = RESULT_LOADING, until = Until.GONE)) + MortgagePage clickFixation(String fixation); + + @Wait(value = I_WANT_LOAN_BUTTON, until = Until.CLICKABLE) + @Click(value = I_WANT_LOAN_BUTTON, jsClick = true) + FinansoIncomePage clickIWantLoan(); + + @Wait(MAX_MORTGAGE_RESULT_MESSAGE) + @Wait(MAX_MORTGAGE_TRANSFER_RESULT_BUTTON) + @Wait(MAX_MORTGAGE_RESULT_SPAN) + @CustomAction + default MortgagePage storeMaxMortgageResult(String storeKey) { + MonetaPortalEndpoint e = getEndpoint(MonetaPortalEndpoint.class); + String resultText = e.getText(MAX_MORTGAGE_RESULT_SPAN); + store(storeKey, resultText.replaceAll("\\D", "")); + return null; + } + + @Click(value = MAX_MORTGAGE_TRANSFER_RESULT_BUTTON, andWait = @Wait(I_WANT_LOAN_BUTTON)) + MortgagePage clickTransferMaxMortgageResult(); + + @CustomAction + default MortgagePage storeMortgageRealityAmountValue(String storeKey) { + String valueText = getInputValue(REALITY_AMOUNT_INPUT); + store(storeKey, valueText); + return null; + } + + @CustomAction + default MortgagePage storeMortgageAmountValue(String storeKey) { + String valueText = getInputValue(AMOUNT_INPUT); + store(storeKey, valueText); + return null; + } + + @CustomAction + default MortgagePage storeMortgageMaturityValue(String storeKey) { + String valueText = getInputValue(MATURITY_INPUT); + store(storeKey, valueText); + return null; + } + + private String getInputValue(String xpath) { + MonetaPortalEndpoint e = getEndpoint(MonetaPortalEndpoint.class); + return e.getAttribute(xpath, "value").replaceAll("\\D", ""); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/online/OnlineExpressLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/online/OnlineExpressLoanPage.java new file mode 100644 index 0000000..78ebc7d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/online/OnlineExpressLoanPage.java @@ -0,0 +1,6 @@ +package cz.moneta.test.dsl.monetaportal.online; + +import cz.moneta.test.harness.support.web.WebFlow; + +public interface OnlineExpressLoanPage extends WebFlow { +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/online/OnlineUDCLoanPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/online/OnlineUDCLoanPage.java new file mode 100644 index 0000000..96930e5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/online/OnlineUDCLoanPage.java @@ -0,0 +1,6 @@ +package cz.moneta.test.dsl.monetaportal.online; + +import cz.moneta.test.harness.support.web.WebFlow; + +public interface OnlineUDCLoanPage extends WebFlow { +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/CreditAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/CreditAccountPage.java new file mode 100644 index 0000000..d9544cf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/CreditAccountPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.monetaportal.products; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.Naviblocks.NAVIBLOCKS_W2C_BUTTON; + +@Wait(NAVIBLOCKS_W2C_BUTTON) +public interface CreditAccountPage extends WebFlow, Naviblocks { + + //Credit card page + String CALCULATOR_BANNER_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-primary ']"; + + @Click(CALCULATOR_BANNER_SECTION_BUTTON) + CreditAccountPage clickCreditOnlineSection(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/CreditCardPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/CreditCardPage.java new file mode 100644 index 0000000..7e0c57c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/CreditCardPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.monetaportal.products; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.dsl.monetaportal.components.calculators.CreditCalculator; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.calculators.CreditCalculator.CALCULATOR_APPROVE_ONLINE_BUTTON; + +@Wait(CALCULATOR_APPROVE_ONLINE_BUTTON) +public interface CreditCardPage extends WebFlow, CreditCalculator, Naviblocks { + + //Credit card page + String CALCULATOR_BANNER_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-primary ']"; + + @Click(CALCULATOR_BANNER_SECTION_BUTTON) + CreditCardPage clickCreditOnlineSection(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/DebitAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/DebitAccountPage.java new file mode 100644 index 0000000..511b9a9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/DebitAccountPage.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.monetaportal.products; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.products.DebitAccountPage.PAGE_HEADER; + +@Wait(PAGE_HEADER) +public interface DebitAccountPage extends WebFlow, StoreAccessor { + + String PAGE_HEADER = "//h1[@class='page-title' and text()='Běžný účet Tom – zřízení online za pár minut']"; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/InvestmentFundDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/InvestmentFundDetailPage.java new file mode 100644 index 0000000..1e6fac8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/InvestmentFundDetailPage.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.monetaportal.products; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; +import org.openqa.selenium.WebElement; + +import java.util.List; +import java.util.regex.Pattern; + +@Wait(value = InvestmentFundDetailPage.CHART_CURVE, until = Until.VISIBLE) +@Wait(value = InvestmentFundDetailPage.FUND_CHART_PERIOD_UNSELECTED_BUTTON, until = Until.VISIBLE) +public interface InvestmentFundDetailPage extends WebFlow, StoreAccessor { + String FUND_CHART_WIDGET = "//mutual-fund-chart-widget"; + String CHART_CURVE = FUND_CHART_WIDGET + "//*[contains(@class,'recharts-curve')]"; + String FUND_CHART_PERIOD_UNSELECTED_BUTTON = FUND_CHART_WIDGET + "//button[@aria-selected='false']"; + String FIRST_CHART_DATE = FUND_CHART_WIDGET + "//*[contains(@class, 'xAxis')]//*[@class='recharts-text recharts-cartesian-axis-tick-value']/*"; //tags that cannot be found using xpath (g,text,tspan) + String CHART_DATE_ELEMENT_WITH_SPECIFIC_DATE = FIRST_CHART_DATE + "[text()='%s']"; + String REGEX_DATE_PATTERN = "\\d{2}\\.\\d{2}\\.\\d{4}"; + String WRONG_FORMAT_MESSAGE_PREFIX = "Date format does not match dd.MM.yyyy: "; + + @GetElementContent(FIRST_CHART_DATE) + String getFirstChartDate(); + + private void selectPeriodAndWaitForChange(int unselectedPeriodButtonNumber) { + MonetaPortalEndpoint e = getEndpoint(MonetaPortalEndpoint.class); + String originalDate = getFirstChartDate(); + Assertions.assertTrue(Pattern.matches(REGEX_DATE_PATTERN, originalDate), + WRONG_FORMAT_MESSAGE_PREFIX + originalDate); + String originalDateXpath = String.format(CHART_DATE_ELEMENT_WITH_SPECIFIC_DATE, originalDate); + e.waitForElementsToLoad(0,Until.VISIBLE, originalDateXpath); //checking if the originalDateXpath works + e.click(() -> FUND_CHART_PERIOD_UNSELECTED_BUTTON + "[" + unselectedPeriodButtonNumber + "]"); + e.waitForElementsToLoad(5, Until.GONE, originalDateXpath); //checking if the element with originalDateXpath at least disappears + String dateAfterChange = getFirstChartDate(); + Assertions.assertNotEquals(originalDate, dateAfterChange, "The start date of the period remained the same"); + Assertions.assertTrue(Pattern.matches(REGEX_DATE_PATTERN, dateAfterChange), + WRONG_FORMAT_MESSAGE_PREFIX + dateAfterChange); + } + + @CustomAction + default InvestmentFundDetailPage verifyChartBehavior() { + MonetaPortalEndpoint e = getEndpoint(MonetaPortalEndpoint.class); + List periodButtons = e.findAndGetListOfElements(FUND_CHART_PERIOD_UNSELECTED_BUTTON, Lookup.XPATH); + if (periodButtons.isEmpty()) { + throw new HarnessException("Missing period buttons (xpath: \"" + FUND_CHART_PERIOD_UNSELECTED_BUTTON + "\")"); + } + for (int i = 1; i <= periodButtons.size(); i++) { + selectPeriodAndWaitForChange(i); + } + return null; + } + + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/InvestmentFundsPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/InvestmentFundsPage.java new file mode 100644 index 0000000..9779acb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/InvestmentFundsPage.java @@ -0,0 +1,55 @@ +package cz.moneta.test.dsl.monetaportal.products; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.MonetaPortalEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; +import org.openqa.selenium.WebElement; + +import java.util.List; + + +@Waits({@Wait(InvestmentFundsPage.FILTER_FORM_WRAPPER), @Wait(InvestmentFundsPage.RISK_FILTER_SELECT)}) +public interface InvestmentFundsPage extends WebFlow, StoreAccessor { + String FILTER_FORM_WRAPPER = "//mutual-funds-widget"; + String GO_TO_FUND_DETAIL_BUTTON = "(//*[@data-message-id='list.btnFundDetail'])"; // "*" because it was changed soo many times + String GO_TO_FUND_DETAIL_BUTTON_BY_ORDER = GO_TO_FUND_DETAIL_BUTTON + "[%s]"; + String RISK_FILTER_SELECT = FILTER_FORM_WRAPPER + "//div[@data-name='risk']"; + String FILTER_OPTION_BY_VALUE = FILTER_FORM_WRAPPER + "//*[@role = 'option' and .//*[contains(text(),'%s')]]"; + String FILTER_OPTION = FILTER_FORM_WRAPPER + "//*[@role = 'option']"; + String All_FILTERS = "//span[@data-message-id='form.allFilters']"; + String FILTER_SELECTS = FILTER_FORM_WRAPPER + "//div[@role='combobox']"; + String ALL_FUNDS_BUTTON = "//button[.//*[@data-message-id='btnAllFunds']]"; + + @Click(value = GO_TO_FUND_DETAIL_BUTTON_BY_ORDER, jsClick = true, isStringDynamicXpath = true) + InvestmentFundDetailPage clickFundByOrder(String order); + + @Click(RISK_FILTER_SELECT) + InvestmentFundsPage clickRiskFilterSelect(); + + @Click(value = All_FILTERS, jsClick = true) + InvestmentFundsPage clickAllFilters(); + + @Click(value = ALL_FUNDS_BUTTON, jsClick = true) + InvestmentFundsPage clickAllFunds(); + + @Click(value = FILTER_OPTION_BY_VALUE, jsClick = true, isStringDynamicXpath = true) + InvestmentFundsPage clickOptionByValue(String value); + + @CustomAction + default InvestmentFundsPage checkAllFilters() { + MonetaPortalEndpoint e = getEndpoint(MonetaPortalEndpoint.class); + clickAllFilters(); + List filters = e.findAndGetListOfElements(FILTER_SELECTS, Lookup.XPATH); + filters.forEach(filterSelect -> { + int listedFundNumberBefore = e.findAndGetListOfElements(GO_TO_FUND_DETAIL_BUTTON, Lookup.XPATH).size(); + filterSelect.click(); + e.jsClick(() -> "(" + FILTER_OPTION + ")" + "[2]", Lookup.XPATH); + int listedFundNumberAfter = e.findAndGetListOfElements(GO_TO_FUND_DETAIL_BUTTON, Lookup.XPATH).size(); + Assertions.assertTrue(listedFundNumberBefore > listedFundNumberAfter); + clickAllFunds(); + }); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/ProductsPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/ProductsPage.java new file mode 100644 index 0000000..c3cbe84 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/products/ProductsPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.monetaportal.products; + + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.products.ProductsPage.DEBIT_ACCOUNTS; + +@Wait(DEBIT_ACCOUNTS) +public interface ProductsPage extends WebFlow { + + String DEBIT_ACCOUNTS = "//div[@class='submenu_popup__content__section']//a[text()='Běžné účty']"; + + @Click(DEBIT_ACCOUNTS) + DebitAccountPage selectDebitAccounts(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/BuildingSavingsPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/BuildingSavingsPage.java new file mode 100644 index 0000000..e7e42a1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/BuildingSavingsPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.monetaportal.savings; + +import cz.moneta.test.dsl.monetaportal.components.FooterCallFree; +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.dsl.monetaportal.components.calculators.BuildingSavingsCalculator; +import cz.moneta.test.dsl.monetaportal.loans.BridgingLoanPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.calculators.BuildingSavingsCalculator.CALCULATOR_BOX; + +@Wait(CALCULATOR_BOX) +public interface BuildingSavingsPage extends WebFlow, BuildingSavingsCalculator, Naviblocks, FooterCallFree { + + //Building saving page + String CALCULATOR_BANNER_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-primary ']"; + + @Click(CALCULATOR_BANNER_SECTION_BUTTON) + BridgingLoanPage clickBuildingSavingNaviblocksSection(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/HoldingFundsPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/HoldingFundsPage.java new file mode 100644 index 0000000..15b772c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/HoldingFundsPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.monetaportal.savings; + +import cz.moneta.test.dsl.monetaportal.components.FooterCallFree; +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.Naviblocks.NAVIBLOCKS_DIV; + +@Wait(NAVIBLOCKS_DIV) +public interface HoldingFundsPage extends WebFlow, Naviblocks, FooterCallFree { + + //Holding funds page + String HOLDING_FUNDS_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-primary ']"; + String NAVIBLOCKS_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-secondary ']"; + + @Click(HOLDING_FUNDS_SECTION_BUTTON) + HoldingFundsPage clickHoldingFundsPageFundsSection(); + + @Click(NAVIBLOCKS_SECTION_BUTTON) + Naviblocks clickHoldingFundsPageNaviblocksSection(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/SupplementaryRetirementSchemesPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/SupplementaryRetirementSchemesPage.java new file mode 100644 index 0000000..7f812df --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/SupplementaryRetirementSchemesPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.monetaportal.savings; + +import cz.moneta.test.dsl.monetaportal.components.Naviblocks; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.monetaportal.components.Naviblocks.NAVIBLOCKS_DIV; + +@Wait(NAVIBLOCKS_DIV) +public interface SupplementaryRetirementSchemesPage extends WebFlow, Naviblocks { + + //Supplementary Retirement Schemes page + String BANNER_SECTION_BUTTON = "//div[@class='b-product-claim__text-side']//a[@class='btn btn-primary ']"; + + @Click(BANNER_SECTION_BUTTON) + SupplementaryRetirementSchemesPage clickSupplementaryRetirementSchemestNaviblocksSection(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/AdditionalInformationPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/AdditionalInformationPage.java new file mode 100644 index 0000000..e22b217 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/AdditionalInformationPage.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.Waits; + +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.AdditionalInformationPage.NATIONALITY_NUMBER_WITH_VALUE; +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.AdditionalInformationPage.PAGE_HEADER; + +@Waits({@Wait(PAGE_HEADER), @Wait(NATIONALITY_NUMBER_WITH_VALUE)}) +public interface AdditionalInformationPage extends ChildBuildingSavingsPageFlow { + String PAGE_HEADER = "//h2[text()='Dodatečné informace']"; + String NATIONALITY_NUMBER_WITH_VALUE = "//button[@id='nationality_button' and string-length(@data-value) > 0]"; + String BIRTH_COUNTRY = "//button[@name='birthCountry']"; + String BIRTH_COUNTRY_OPTION = "//div[@class='c-dropdown__itemContent' and contains(text(),'%s')]"; + String PEP_YES = "//li[@id='pep_value-true']"; + String PEP_NO = "//li[@id='pep_value-false']"; + + @Click(PEP_YES) + AdditionalInformationPage clickPepYes(); + + @Click(PEP_NO) + AdditionalInformationPage clickPepNo(); + + @CustomAction + default AdditionalInformationPage setBirthCountry(String birthCountry) { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + ep.jsClick(() -> BIRTH_COUNTRY); + ep.jsClick(() -> String.format(BIRTH_COUNTRY_OPTION, birthCountry)); + return null; + } + + @Click(CONTINUE_BUTTON) + LawFormPage clickContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/CalculatorPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/CalculatorPage.java new file mode 100644 index 0000000..b5a2f41 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/CalculatorPage.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.CalculatorPage.PAGE_HEADER; + +@Wait(PAGE_HEADER) +public interface CalculatorPage extends ChildBuildingSavingsPageFlow { + String PAGE_HEADER = "//h2[text()='Nastavte parametry stavebního spoření']"; + String SLIDER = "/following-sibling::div[@class='f-slider u-mb--medium'][1]/"; + String SLIDER_DRAG = "/div[@class='f-slider__drag']"; + String SLIDER_HANDLE = "/div[@class='f-slider__handle']"; + String MONTH_PAYMENT = "//*[@id='monthlyPayment']"; + String TERM_LABEL = "//div[./div[text()='Doba spoření']]"; + String TERM_SLIDER_DRAG = TERM_LABEL + SLIDER + SLIDER_DRAG; + String TERM_SLIDER_HANDLE = TERM_LABEL + SLIDER + SLIDER_DRAG + SLIDER_HANDLE; + String TARGET_AMOUNT = "//*[@id='targetAmount']"; + String STATE_SUPPORT_INPUT = "//*[@id='stateSupport']"; + String STATE_SUPPORT_LABEL = "//*[@for='stateSupport']"; + + @TypeInto(value = MONTH_PAYMENT, clear = true) + CalculatorPage setPayment(String monthPayment); + + @CustomAction + default CalculatorPage setTerm(String value) { + dragAndDropSlider(TERM_SLIDER_DRAG, TERM_SLIDER_HANDLE, value); + return null; + } + + @TypeInto(value = TARGET_AMOUNT, clear = true) + CalculatorPage setTargetAmount(String targetAmount); + + @Click(STATE_SUPPORT_LABEL) + CalculatorPage clickStateSupport(); + + @CustomAction + default CalculatorPage setStateSupport(boolean isStateSupport) { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + boolean isChecked = ep.getAttribute(STATE_SUPPORT_INPUT, "value").equals("true"); + if (isStateSupport != isChecked) clickStateSupport(); + return null; + } + + @Click(CONTINUE_BUTTON) + ConsentsPage clickContinue(); + + private void dragAndDropSlider(String dragXpath, String handleXpath, String value) { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + + String defaultValue = ep.getAttribute(dragXpath, "aria-valuenow"); + double minValue = Integer.parseInt(ep.getAttribute(dragXpath, "aria-valuemin")); + double maxValue = Integer.parseInt(ep.getAttribute(dragXpath, "aria-valuemax")); + double maxOffset = ep.findAndGetListOfElements(dragXpath, Lookup.XPATH).stream().findFirst().get().getSize().width; + double intValue = Double.parseDouble(value); + double offset = maxOffset / (maxValue - minValue) * (intValue - Double.parseDouble(defaultValue)); + + ep.dragAndDropBy(handleXpath, (int) offset, 0); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ChildBuildingSavingsPageFlow.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ChildBuildingSavingsPageFlow.java new file mode 100644 index 0000000..7223e73 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ChildBuildingSavingsPageFlow.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ChildBuildingSavingsPageFlow> extends WebFlow, StoreAccessor { + + String MAIN_HEADER = "//h1[text()='Stavební spoření pro děti']"; + String SUBMIT_BUTTON = "//button[@type='submit']"; + String CONTINUE_BUTTON = "//button[text()='Pokračovat' and not (@disabled)]"; + String LOADER_XPATH = "//img[@alt='MONETA Logo Spinner']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ConsentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ConsentsPage.java new file mode 100644 index 0000000..5e44dcc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ConsentsPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.ConsentsPage.PAGE_HEADER; + +@Wait(value = PAGE_HEADER, waitSecondsForElement = 60) +public interface ConsentsPage extends ChildBuildingSavingsPageFlow { + String PAGE_HEADER = "//h2[text()='Nejdříve zvolte věk dítěte a poté si připravte potřebné dokumenty']"; + String AGE_LESS_THAN_15 = "//div[./p [text()='0 - 14 let']]"; + String AGE_MORE_THAN_14_AND_LOWER_THAN_19 = "//div[./p [text()='15 - 18 let']]"; + String AGREE_AND_CONTINUE = "//button[text()='Souhlasím a pokračovat']"; + + @Click(AGE_LESS_THAN_15) + ConsentsPage clickLessThan15(); + + @Click(AGE_MORE_THAN_14_AND_LOWER_THAN_19) + ConsentsPage clickMoreThan14(); + + @Click(AGREE_AND_CONTINUE) + PersonalDetailPage clickAgreeAndContinue(); + + @CustomAction + default ConsentsPage chooseAge(boolean isYoung) { + if (isYoung) clickLessThan15(); + else clickMoreThan14(); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ContinueOnMobilePage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ContinueOnMobilePage.java new file mode 100644 index 0000000..eb4398f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ContinueOnMobilePage.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.ContinueOnMobilePage.PAGE_HEADER; +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.ContinueOnMobilePage.QR_CODE; + +@Waits({@Wait(PAGE_HEADER), @Wait(QR_CODE)}) +public interface ContinueOnMobilePage extends ChildBuildingSavingsPageFlow { + String PAGE_HEADER = "//h2[text()='Pokračujte na mobilním telefonu']"; + String QR_CODE = "//div/*[@height]/*[@fill]/following-sibling::*[@fill and string-length(@d) > 0]"; + + PermanentAddressPage onPermanentAddress(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ContractPage.java new file mode 100644 index 0000000..90c812a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/ContractPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.ContractPage.PAGE_HEADER; +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.ContractPage.CONTRACT_LOADER; + +@Wait(value = CONTRACT_LOADER, until = Until.GONE, waitSecondsForElement = 60) +@Wait(PAGE_HEADER) +public interface ContractPage extends ChildBuildingSavingsPageFlow { + String PAGE_HEADER = "//h2[text()='Přečtěte si smlouvu s parametry produktu']"; + String CONTRACT_LOADER = "//div[contains(@class,'c-loader')]/following-sibling::h1[text() = 'Připravujeme Vám smlouvu, chvilku strpení prosím']"; + String GO_SIGN_CONTRACT = "//button[text()='Rozumím a souhlasím, pokračovat k podpisu' and not (@disabled)]"; + String SMS_KEY_INPUT = "//input[@id='mobileKey']"; + String SIGN = "//button[text()='Podepsat']"; + String PAGE = "//canvas[@class='react-pdf__Page__canvas']"; + + + @Click(GO_SIGN_CONTRACT) + ContractPage goSign(); + + @TypeInto(SMS_KEY_INPUT) + VictoryPage typeSmsKey(String smsKey); + + @CustomAction + default ContractPage scrollDown() { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + Integer pageHeight = Integer.parseInt(ep.getAttribute(PAGE, "height")); + Integer pageCount = ep.findAndGetListOfElements(PAGE, Lookup.XPATH).size(); + ep.executeScript("window.scrollBy(0," + pageCount * pageHeight + ")"); + + return null; + } + + @Click(SIGN) + VictoryPage sign(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/LawFormPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/LawFormPage.java new file mode 100644 index 0000000..6ff8335 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/LawFormPage.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.LawFormPage.PAGE_HEADER; + +@Wait(PAGE_HEADER) +public interface LawFormPage extends ChildBuildingSavingsPageFlow { + String PAGE_HEADER = "//h2[text()='Údaje vyžadované zákonem']"; + String ANSWER = "//*[text() = '%s']"; + + @CustomAction + default LawFormPage clickAnswers(String[] answers) { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + for (String answer : answers) { + ep.jsClick(() -> String.format(ANSWER, answer)); + } + return null; + } + + @CustomAction + default LawFormPage clickAnswers() { + String[] answers = {"Příjem z podnikání", "Příjem ze zaměstnání", "Převody z vlastního bankovního účtu", "50 000 - 100 000 Kč", "Ne"}; + clickAnswers(answers); + return null; + } + + @Click(CONTINUE_BUTTON) + PreContractInformationPage clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PermanentAddressPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PermanentAddressPage.java new file mode 100644 index 0000000..e808082 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PermanentAddressPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.PermanentAddressPage.LAND_REGISTRY_NUMBER_WITH_VALUE; +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.PermanentAddressPage.PAGE_HEADER; + +@Waits({@Wait(PAGE_HEADER), @Wait(LAND_REGISTRY_NUMBER_WITH_VALUE)}) +public interface PermanentAddressPage extends ChildBuildingSavingsPageFlow { + String PAGE_HEADER = "//h2[text()='Trvalý pobyt dítěte' or text()='Dodatečné informace']"; + String LAND_REGISTRY_NUMBER_WITH_VALUE = "//*[(@id='permanentAddressForm.descriptiveNumber' and string-length(@value) > 0) or (@id='nationality_button' and string-length(@data-value) > 0)]"; + + @Click(CONTINUE_BUTTON) + AdditionalInformationPage clickContinue(); + + AdditionalInformationPage onAdditionalInformation(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PersonalAddressPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PersonalAddressPage.java new file mode 100644 index 0000000..9db8792 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PersonalAddressPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.PersonalAddressPage.PAGE_HEADER; +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.PersonalAddressPage.EMAIL_WITH_VALUE; + +@Waits({@Wait(PAGE_HEADER), @Wait(EMAIL_WITH_VALUE)}) +public interface PersonalAddressPage extends ChildBuildingSavingsPageFlow { + String PAGE_HEADER = "//h2[text()='Máme správně Vaše kontaktní údaje?']"; + String EMAIL_WITH_VALUE = "//input[@id='email' and string-length(@value) > 0]"; + String CONTACT_SAME_AS_PERMANENT = "//*[@id='contactSameAsPermanent']"; + + @CustomAction + default PersonalAddressPage setContactSameAsPermanent(boolean isContactSameAsPermanent) { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + boolean isChecked = ep.getAttribute(CONTACT_SAME_AS_PERMANENT, "value").equals("true"); + if (isContactSameAsPermanent != isChecked) ep.jsClick(() -> CONTACT_SAME_AS_PERMANENT, Lookup.XPATH); + return null; + } + + @Click(CONTINUE_BUTTON) + ContinueOnMobilePage clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PersonalDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PersonalDetailPage.java new file mode 100644 index 0000000..fd79218 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PersonalDetailPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.Waits; + +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.PersonalDetailPage.PAGE_HEADER; +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.PersonalDetailPage.LAND_REGISTRY_NUMBER_WITH_VALUE; + +@Waits({@Wait(PAGE_HEADER), @Wait(LAND_REGISTRY_NUMBER_WITH_VALUE)}) +public interface PersonalDetailPage extends ChildBuildingSavingsPageFlow { + String PAGE_HEADER = "//h2[text()='Zkontrolujte své údaje z občanského průkazu']"; + String LAND_REGISTRY_NUMBER_WITH_VALUE = "//input[@id='permanentAddress.landRegistryNumber' and string-length(@value) > 0]"; + String PEP_YES = "//*[@id='pep_value-true']"; + String PEP_NO = "//*[@id='pep_value-false']"; + + @Click(PEP_YES) + PersonalDetailPage clickPepYes(); + + @Click(PEP_NO) + PersonalDetailPage clickPepNo(); + + @Click(CONTINUE_BUTTON) + PersonalAddressPage clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PreContractInformationPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PreContractInformationPage.java new file mode 100644 index 0000000..6aa18f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/PreContractInformationPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.PreContractInformationPage.PRE_CONTRACT_LOADER; + +@Wait(value = PRE_CONTRACT_LOADER, waitSecondsForElement = 10) +public interface PreContractInformationPage extends ChildBuildingSavingsPageFlow { + String PAGE_HEADER = "//h2[text()='Přečtěte si prosím předsmluvní informace']"; + String PRE_CONTRACT_LOADER = "//div[contains(@class,'c-loader')]/following-sibling::h2[@id='in-page-loader-with-message']"; + String AGREE_AND_CONTINUE = "//button[text()='Souhlasím, pokračovat']"; + + @Click(AGREE_AND_CONTINUE) + ContractPage clickAgreeAndContinue(); + + @CustomAction + default PreContractInformationPage waitToLoad() { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + ep.waitForElementsToLoad(300, Until.GONE, PRE_CONTRACT_LOADER); + ep.waitForElementsToLoad(5, PAGE_HEADER); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/VictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/VictoryPage.java new file mode 100644 index 0000000..f1dc6e0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/monetaportal/savings/childbuildingsavings/VictoryPage.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings; + +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.VictoryPage.VICTORY_LOADER; +import static cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.VictoryPage.PAGE_HEADER; + +@Wait(value = VICTORY_LOADER, until = Until.GONE, waitSecondsForElement = 60) +@Wait(PAGE_HEADER) +public interface VictoryPage extends ChildBuildingSavingsPageFlow { + String PAGE_HEADER = "//h2[text()='Hotovo, můžete začít spořit']"; + String VICTORY_LOADER = "//div[contains(@class,'c-loader')]/following-sibling::h1[text() = 'Teď to musíme podepsat my,\nchvilku strpení prosím']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/CMH_MSG_EMAIL_PLANNED.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/CMH_MSG_EMAIL_PLANNED.java new file mode 100644 index 0000000..d3c1ae9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/CMH_MSG_EMAIL_PLANNED.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface CMH_MSG_EMAIL_PLANNED extends MwfRequest { + + @Parameter(name = "GW_SYS_ID") + CMH_MSG_EMAIL_PLANNED gwSysId(String gwSysId); + @Parameter(name = "CMP_ID") + CMH_MSG_EMAIL_PLANNED cmpId(Long cmpId); + @Parameter(name = "SEND_TIME") + CMH_MSG_EMAIL_PLANNED sendTime(String sendTime); + @Parameter(name = "MESG_PARAMS") + CMH_MSG_EMAIL_PLANNED mesgParams(String mesgParams); + @Parameter(name = "REF_ID") + CMH_MSG_EMAIL_PLANNED refId(Long refId); + @Parameter(name = "CLIENT_ADDRESS_TO") + CMH_MSG_EMAIL_PLANNED clientAddressTo(String clientAddressTo); + @Parameter(name = "CLIENT_ADDRESS_CC") + CMH_MSG_EMAIL_PLANNED clientAddressCc(String clientAddressCc); + @Parameter(name = "CLIENT_ADDRESS_BCC") + CMH_MSG_EMAIL_PLANNED clientAddressBcc(String clientAddressBcc); + @Parameter(name = "REPLY_TO") + CMH_MSG_EMAIL_PLANNED replyTo(String replyTo); + @Parameter(name = "CLIENT_BIRTH_NUM") + CMH_MSG_EMAIL_PLANNED clientBirthNum(String clientBirthNum); + @Parameter(name = "CLIENT_ID") + CMH_MSG_EMAIL_PLANNED clientId(String clientId); + @Parameter(name = "MESG_ALLOW_PAIRING") + CMH_MSG_EMAIL_PLANNED mesgAllowPairing(Long mesgAllowPairing); + @Parameter(name = "MESG_ATTACHMENT_URI") + CMH_MSG_EMAIL_PLANNED mesgAttachmentUri(String mesgAttachmentUri); + @Parameter(name = "MESG_ATTACHMENT_DMS_ID") + CMH_MSG_EMAIL_PLANNED mesgAttachmentDmsId(String mesgAttachmentDmsId); + @Parameter(name = "MESG_ATTACHMENT_NAME") + CMH_MSG_EMAIL_PLANNED mesgAttachmentName(String mesgAttachmentName); + @Parameter(name = "DOCUMENT_GENERATION_TYPE") + CMH_MSG_EMAIL_PLANNED documentGenerationType(String documentGenerationType); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/CMH_MSG_EMAIL_PLANNEDResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/CMH_MSG_EMAIL_PLANNEDResponse.java new file mode 100644 index 0000000..5c843ec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/CMH_MSG_EMAIL_PLANNEDResponse.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface CMH_MSG_EMAIL_PLANNEDResponse { + + @Parameter(name = "MESG_ID") + Long mesgId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/IHub.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/IHub.java new file mode 100644 index 0000000..267e474 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/IHub.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.support.mwf.Builders; +import cz.moneta.test.harness.support.mwf.MwfRequest; +import cz.moneta.test.harness.support.mwf.TifClient; + +@Deprecated +public class IHub { + private final Harness harness; + + public IHub(Harness harness) { + this.harness = harness; + } + + public > R prepareRequestAsCbl(Class mwf) { + return Builders.newMwfBuilder(mwf, TifClient.HUB_CBL, harness); + } + + public > R prepareRequestAsUfo(Class mwf) { + return Builders.newMwfBuilder(mwf, TifClient.HUB_UFO, harness); + } + + public > R prepareRequestAsGem(Class mwf) { + return Builders.newMwfBuilder(mwf, TifClient.HUB_GEM, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF043.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF043.java new file mode 100644 index 0000000..ee037ab --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF043.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF043 extends MwfRequest { + + @Parameter(name = "ADMIPAddress") + MWF043 aDMIPAddress(String aDMIPAddress); + @Parameter(name = "ADMNoveHeslo") + MWF043 aDMNoveHeslo(String aDMNoveHeslo); + @Parameter(name = "ADMPopis") + MWF043 aDMPopis(String aDMPopis); + @Parameter(name = "ADMSessionID") + MWF043 aDMSessionID(String aDMSessionID); + @Parameter(name = "ADMSuperUziID") + MWF043 aDMSuperUziID(Long aDMSuperUziID); + @Parameter(name = "ADMUzivatelID") + MWF043 aDMUzivatelID(Long aDMUzivatelID); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF043Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF043Response.java new file mode 100644 index 0000000..cb36341 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF043Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF043Response { + + @Parameter(name = "ADMOperaceProvedena") + String aDMOperaceProvedena(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF060.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF060.java new file mode 100644 index 0000000..5b6b318 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF060.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF060 extends MwfRequest { + + @Parameter(name = "CisloUctu") + MWF060 cisloUctu(String cisloUctu); + @Parameter(name = "Kontext") + MWF060 kontext(String kontext); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF060Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF060Data.java new file mode 100644 index 0000000..2e4c398 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF060Data.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF060Data { + + private Map params; + + public MWF060Data(Map params) { + this.params = params; + } + + public String rsCislouctu() { + return (String) params.get("RS_CISLOUCTU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF060Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF060Response.java new file mode 100644 index 0000000..8a7ad54 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF060Response.java @@ -0,0 +1,285 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF060Response { + + @Parameter(name = "AAAdresat") + String aAAdresat(); + + @Parameter(name = "AACO") + String aaco(); + + @Parameter(name = "AACP") + String aacp(); + + @Parameter(name = "AACtvrt") + String aACtvrt(); + + @Parameter(name = "AAObec") + String aAObec(); + + @Parameter(name = "AAPSC") + String aapsc(); + + @Parameter(name = "AAPosta") + String aAPosta(); + + @Parameter(name = "AAUlice") + String aAUlice(); + + @Parameter(name = "AAZeme") + String aAZeme(); + + @Parameter(name = "BeznyZustatek") + Double beznyZustatek(); + + @Parameter(name = "CisloUctu") + String cisloUctu(); + + @Parameter(name = "CisloUctuAGB") + String cisloUctuAGB(); + + @Parameter(name = "DanZUroku") + Double danZUroku(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "DatumDalsihoVypisu") + java.util.Date datumDalsihoVypisu(); + + @Parameter(name = "DatumGenerovaniVypisu") + java.util.Date datumGenerovaniVypisu(); + + @Parameter(name = "DatumOtevreni") + java.util.Date datumOtevreni(); + + @Parameter(name = "DatumOtevreniRamce") + java.util.Date datumOtevreniRamce(); + + @Parameter(name = "DatumPosledniAktivity") + java.util.Date datumPosledniAktivity(); + + @Parameter(name = "DatumPosledniVklad") + java.util.Date datumPosledniVklad(); + + @Parameter(name = "DatumPoslednihoVypisu") + java.util.Date datumPoslednihoVypisu(); + + @Parameter(name = "DisponibilniZustatek") + Double disponibilniZustatek(); + + @Parameter(name = "DisponibilniZustatekZitra") + Double disponibilniZustatekZitra(); + + @Parameter(name = "DistribuceVypisu") + String distribuceVypisu(); + + @Parameter(name = "DruheJmeno") + String druheJmeno(); + + @Parameter(name = "FlexiBusTyp") + String flexiBusTyp(); + + @Parameter(name = "IndexUrokoveSazby") + Long indexUrokoveSazby(); + + @Parameter(name = "InformativniZustatek") + Double informativniZustatek(); + + @Parameter(name = "Jmeno") + String jmeno(); + + @Parameter(name = "KlasifikaceUctu") + String klasifikaceUctu(); + + @Parameter(name = "KonecnyZustatek") + Double konecnyZustatek(); + + @Parameter(name = "Mena") + String mena(); + + @Parameter(name = "MenaKod") + Long menaKod(); + + @Parameter(name = "MesicniObratyCR") + Double mesicniObratyCR(); + + @Parameter(name = "MesicniObratyDB") + Double mesicniObratyDB(); + + @Parameter(name = "MinimalniKreditnizustatek") + Double minimalniKreditnizustatek(); + + @Parameter(name = "ObchodniJmeno") + String obchodniJmeno(); + + @Parameter(name = "ObchodniMistoKod") + String obchodniMistoKod(); + + @Parameter(name = "ObchodniMistoNazev") + String obchodniMistoNazev(); + + @Parameter(name = "ObjektUveru") + String objektUveru(); + + @Parameter(name = "PausalniPoplatek") + Double pausalniPoplatek(); + + @Parameter(name = "PausalniPoplatekKTK") + Double pausalniPoplatekKTK(); + + @Parameter(name = "PausalniPoplatekPocetMesicuZdarma") + Long pausalniPoplatekPocetMesicuZdarma(); + + @Parameter(name = "PeriodaVypisu") + String periodaVypisu(); + + @Parameter(name = "PoplatkovyPlan") + String poplatkovyPlan(); + + @Parameter(name = "PoplatkovyPlanMatersky") + String poplatkovyPlanMatersky(); + + @Parameter(name = "PoplatkovyPlanPuvodni") + String poplatkovyPlanPuvodni(); + + @Parameter(name = "PoplatkovyPlanTisk") + String poplatkovyPlanTisk(); + + @Parameter(name = "PoplatkovyPlan_Sleva") + Long poplatkovyPlanSleva(); + + @Parameter(name = "PostovniPoukazka") + String postovniPoukazka(); + + @Parameter(name = "PouzitaAA") + String pouzitaAA(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "ProduktKod") + String produktKod(); + + @Parameter(name = "ProduktKodBU") + String produktKodBU(); + + @Parameter(name = "ProduktKodStary") + String produktKodStary(); + + @Parameter(name = "ProduktNazev") + String produktNazev(); + + @Parameter(name = "RamecExistuje") + String ramecExistuje(); + + @Parameter(name = "RocniObratyCR") + Double rocniObratyCR(); + + @Parameter(name = "RocniObratyDB") + Double rocniObratyDB(); + + @Parameter(name = "SankcniUrok") + Double sankcniUrok(); + + @Parameter(name = "SchvalenyLimitKontokorentu") + Double schvalenyLimitKontokorentu(); + + @Parameter(name = "SdruzUcetPoplatky") + String sdruzUcetPoplatky(); + + @Parameter(name = "SdruzUcetUroky") + String sdruzUcetUroky(); + + @Parameter(name = "ServisniPoplatek") + Double servisniPoplatek(); + + @Parameter(name = "SpecialniNabidka") + String specialniNabidka(); + + @Parameter(name = "SplatnyUrok") + Double splatnyUrok(); + + @Parameter(name = "SpravaNavazanehoUURemedialem") + String spravaNavazanehoUURemedialem(); + + @Parameter(name = "StavUctu") + String stavUctu(); + + @Parameter(name = "TitulPred") + String titulPred(); + + @Parameter(name = "TitulZa") + String titulZa(); + + @Parameter(name = "TrU_DatumPozadavkuNaZruseni") + java.util.Date trUDatumPozadavkuNaZruseni(); + + @Parameter(name = "TrU_DatumVerifZruseniTransp") + java.util.Date trUDatumVerifZruseniTransp(); + + @Parameter(name = "TrU_DatumVerifikaceTransp") + java.util.Date trUDatumVerifikaceTransp(); + + @Parameter(name = "TrU_DatumVytvoreni") + java.util.Date trUDatumVytvoreni(); + + @Parameter(name = "TrU_KodKategorie") + Long trUKodKategorie(); + + @Parameter(name = "TrU_KodMeny") + Long trUKodMeny(); + + @Parameter(name = "TrU_StatusTransparentnosti") + Long trUStatusTransparentnosti(); + + @Parameter(name = "TrU_UrednikPozadujiciZruseni") + String trUUrednikPozadujiciZruseni(); + + @Parameter(name = "TrU_VerifUrednikZruseniTransp") + String trUVerifUrednikZruseniTransp(); + + @Parameter(name = "TrU_VerifikovatUrednikem") + String trUVerifikovatUrednikem(); + + @Parameter(name = "TrU_VytvorilUrednik") + String trUVytvorilUrednik(); + + @Parameter(name = "TrU_ZkraceneJmeno") + String trUZkraceneJmeno(); + + @Parameter(name = "TransakceNavic") + String transakceNavic(); + + @Parameter(name = "TypUctu") + String typUctu(); + + @Parameter(name = "UrokZaCerpaniKontokorentu") + Double urokZaCerpaniKontokorentu(); + + @Parameter(name = "UrokovaSazba") + Double urokovaSazba(); + + @Parameter(name = "VypisNaKonciMesice") + Boolean vypisNaKonciMesice(); + + @Parameter(name = "VypisyFrekvence") + String vypisyFrekvence(); + + @Parameter(name = "VypisySpecifickeDatum") + Long vypisySpecifickeDatum(); + + @Parameter(name = "VysePoslednihoVkladu") + Double vysePoslednihoVkladu(); + + @Parameter(name = "ZpracovaneDatumZustatku") + java.util.Date zpracovaneDatumZustatku(); + + @Parameter(name = "ZpusobPripisu") + String zpusobPripisu(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF061.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF061.java new file mode 100644 index 0000000..a46f165 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF061.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF061 extends MwfRequest { + + @Parameter(name = "CisloUctu") + MWF061 cisloUctu(String cisloUctu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF061Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF061Response.java new file mode 100644 index 0000000..6a314e0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF061Response.java @@ -0,0 +1,204 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF061Response { + + @Parameter(name = "AAAdresat") + String aAAdresat(); + + @Parameter(name = "AACO") + String aaco(); + + @Parameter(name = "AACP") + String aacp(); + + @Parameter(name = "AACtvrt") + String aACtvrt(); + + @Parameter(name = "AAObec") + String aAObec(); + + @Parameter(name = "AAPSC") + String aapsc(); + + @Parameter(name = "AAPosta") + String aAPosta(); + + @Parameter(name = "AAUlice") + String aAUlice(); + + @Parameter(name = "AAZeme") + String aAZeme(); + + @Parameter(name = "AktualniCerpanaJistina") + Double aktualniCerpanaJistina(); + + @Parameter(name = "BlokaceNeprioritni_Datum") + java.util.Date blokaceNeprioritniDatum(); + + @Parameter(name = "BlokaceNeprioritni_Kod") + String blokaceNeprioritniKod(); + + @Parameter(name = "BlokacePrioritni_Datum") + java.util.Date blokacePrioritniDatum(); + + @Parameter(name = "BlokacePrioritni_Kod") + String blokacePrioritniKod(); + + @Parameter(name = "CelkemCastkaPoSplatnosti") + Double celkemCastkaPoSplatnosti(); + + @Parameter(name = "CelkovaDluznaCastka") + Double celkovaDluznaCastka(); + + @Parameter(name = "CelkovyPocetSplatek") + Long celkovyPocetSplatek(); + + @Parameter(name = "CisloBU") + String cisloBU(); + + @Parameter(name = "DatumCerpani") + java.util.Date datumCerpani(); + + @Parameter(name = "DatumNasledujiciSplatky") + java.util.Date datumNasledujiciSplatky(); + + @Parameter(name = "DatumNasledujiciSplatkyPoplatku") + java.util.Date datumNasledujiciSplatkyPoplatku(); + + @Parameter(name = "DatumOtevreni") + java.util.Date datumOtevreni(); + + @Parameter(name = "DatumPojisteni") + java.util.Date datumPojisteni(); + + @Parameter(name = "DatumPosledniSplatky") + java.util.Date datumPosledniSplatky(); + + @Parameter(name = "DatumPrvniNazaplaceneSplatky") + java.util.Date datumPrvniNazaplaceneSplatky(); + + @Parameter(name = "DatumPrvniPoSplatnosti") + java.util.Date datumPrvniPoSplatnosti(); + + @Parameter(name = "DatumPrvniSplatky") + java.util.Date datumPrvniSplatky(); + + @Parameter(name = "DatumRevize") + java.util.Date datumRevize(); + + @Parameter(name = "DenSplatky") + Long denSplatky(); + + @Parameter(name = "DisponibilniKCerpani") + Double disponibilniKCerpani(); + + @Parameter(name = "DistribuceVypisu") + String distribuceVypisu(); + + @Parameter(name = "DruheJmeno") + String druheJmeno(); + + @Parameter(name = "Jmeno") + String jmeno(); + + @Parameter(name = "MesicniSplatka") + Double mesicniSplatka(); + + @Parameter(name = "ObchodniMistoKod") + String obchodniMistoKod(); + + @Parameter(name = "ObchodniMistoNazev") + String obchodniMistoNazev(); + + @Parameter(name = "ObjektUveru") + String objektUveru(); + + @Parameter(name = "PausalniPolatek") + Double pausalniPolatek(); + + @Parameter(name = "PausalniPoplatekPerioda") + String pausalniPoplatekPerioda(); + + @Parameter(name = "Pausalni_poplatekFrekvence") + String pausalniPoplatekFrekvence(); + + @Parameter(name = "PocetDniPoSplatnosti") + Long pocetDniPoSplatnosti(); + + @Parameter(name = "Pojisteni") + String pojisteni(); + + @Parameter(name = "PoplatekPojisteni") + Double poplatekPojisteni(); + + @Parameter(name = "PoplatekPojisteniAktivni") + String poplatekPojisteniAktivni(); + + @Parameter(name = "PoplatekPojisteniCislo") + String poplatekPojisteniCislo(); + + @Parameter(name = "PoplatekStanovenYN") + String poplatekStanovenYN(); + + @Parameter(name = "PoplatekZaVypis") + Double poplatekZaVypis(); + + @Parameter(name = "PouzitaAA") + String pouzitaAA(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "PristupitelRC") + String pristupitelRC(); + + @Parameter(name = "PriznakOdepsanehoUveru") + String priznakOdepsanehoUveru(); + + @Parameter(name = "ProduktKod") + String produktKod(); + + @Parameter(name = "SplatkaUrok") + Double splatkaUrok(); + + @Parameter(name = "SplatnyFlexikredit") + String splatnyFlexikredit(); + + @Parameter(name = "StavUctu") + String stavUctu(); + + @Parameter(name = "SumaNezauctovanychTRNKarta") + Double sumaNezauctovanychTRNKarta(); + + @Parameter(name = "TitulPred") + String titulPred(); + + @Parameter(name = "TitulZa") + String titulZa(); + + @Parameter(name = "UrokovaSazba") + Double urokovaSazba(); + + @Parameter(name = "VyseUveru") + Double vyseUveru(); + + @Parameter(name = "ZbyvaSplatitCelkem") + Double zbyvaSplatitCelkem(); + + @Parameter(name = "ZbyvaSplatitJistina") + Double zbyvaSplatitJistina(); + + @Parameter(name = "ZbyvaSplatitSplatek") + Long zbyvaSplatitSplatek(); + + @Parameter(name = "ZbyvaSplatitUrok") + Double zbyvaSplatitUrok(); + + @Parameter(name = "ZesplatnenoAnoNe") + String zesplatnenoAnoNe(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF062.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF062.java new file mode 100644 index 0000000..3451dab --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF062.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF062 extends MwfRequest { + + @Parameter(name = "APZadosti") + MWF062 aPZadosti(String aPZadosti); + @Parameter(name = "NacistPuvodniZadostAnoNe") + MWF062 nacistPuvodniZadostAnoNe(String nacistPuvodniZadostAnoNe); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF062Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF062Data.java new file mode 100644 index 0000000..203aeb9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF062Data.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF062Data { + + private Map params; + + public MWF062Data(Map params) { + this.params = params; + } + + public String rsDoplnkovesluzby() { + return (String) params.get("RS_DOPLNKOVESLUZBY"); + } + + public java.util.Date rsDatumzalozenids() { + return (java.util.Date) params.get("RS_DATUMZALOZENIDS"); + } + + public String rsStavds() { + return (String) params.get("RS_STAVDS"); + } + + public java.util.Date rsDatumucinnosti() { + return (java.util.Date) params.get("RS_DATUMUCINNOSTI"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF062Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF062Response.java new file mode 100644 index 0000000..86052a9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF062Response.java @@ -0,0 +1,288 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF062Response { + + @Parameter(name = "AVZamOdData") + java.util.Date aVZamOdData(); + + @Parameter(name = "CIF") + String cif(); + + @Parameter(name = "CisloBU") + String cisloBU(); + + @Parameter(name = "CisloOM") + String cisloOM(); + + @Parameter(name = "CisloPasu") + String cisloPasu(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "DatumPodpisu") + java.util.Date datumPodpisu(); + + @Parameter(name = "DrzitelCIF") + String drzitelCIF(); + + @Parameter(name = "DrzitelHeslo") + String drzitelHeslo(); + + @Parameter(name = "DrzitelRC") + String drzitelRC(); + + @Parameter(name = "DrzitelTelefon") + String drzitelTelefon(); + + @Parameter(name = "DrzitelTelefonMobil") + String drzitelTelefonMobil(); + + @Parameter(name = "DrzitelTelefonMobilPredcisli") + String drzitelTelefonMobilPredcisli(); + + @Parameter(name = "DrzitelTelefonPredcisli") + String drzitelTelefonPredcisli(); + + @Parameter(name = "DrzitelTelefonZamestnani") + String drzitelTelefonZamestnani(); + + @Parameter(name = "DrzitelTelefonZamestnaniPredcisli") + String drzitelTelefonZamestnaniPredcisli(); + + @Parameter(name = "DuvodRozhodnuti") + String duvodRozhodnuti(); + + @Parameter(name = "DuvodZamitnuti") + String duvodZamitnuti(); + + @Parameter(name = "EvidencniCislo") + String evidencniCislo(); + + @Parameter(name = "KlientBydliNaAdreseOdPouzeRok") + Long klientBydliNaAdreseOdPouzeRok(); + + @Parameter(name = "KlientCisloDruhehoDokladu") + String klientCisloDruhehoDokladu(); + + @Parameter(name = "KlientCisloOP") + String klientCisloOP(); + + @Parameter(name = "KlientCisloPrvnihoDokladu") + String klientCisloPrvnihoDokladu(); + + @Parameter(name = "KlientDruhBydleni") + String klientDruhBydleni(); + + @Parameter(name = "KlientDruhDruhehoDokladu") + String klientDruhDruhehoDokladu(); + + @Parameter(name = "KlientDruhPrvnihoDokladu") + String klientDruhPrvnihoDokladu(); + + @Parameter(name = "KlientICO") + String klientICO(); + + @Parameter(name = "KlientJmeno") + String klientJmeno(); + + @Parameter(name = "KlientObchodniJmeno") + String klientObchodniJmeno(); + + @Parameter(name = "KlientPlatnostOP") + java.util.Date klientPlatnostOP(); + + @Parameter(name = "KlientPracPomer") + String klientPracPomer(); + + @Parameter(name = "KlientPredlDokladPrijem") + String klientPredlDokladPrijem(); + + @Parameter(name = "KlientPredlDokladSIPO") + String klientPredlDokladSIPO(); + + @Parameter(name = "KlientPredlDokladUcetNajem") + String klientPredlDokladUcetNajem(); + + @Parameter(name = "KlientPredlDokladVypisUcet") + String klientPredlDokladVypisUcet(); + + @Parameter(name = "KlientPredlDokladVyuctTelefon") + String klientPredlDokladVyuctTelefon(); + + @Parameter(name = "KlientPrijmeni") + String klientPrijmeni(); + + @Parameter(name = "KlientRC") + String klientRC(); + + @Parameter(name = "KlientStav") + String klientStav(); + + @Parameter(name = "KlientVzdelani") + String klientVzdelani(); + + @Parameter(name = "KlientZamCisloOrientacni") + String klientZamCisloOrientacni(); + + @Parameter(name = "KlientZamCisloPopisne") + String klientZamCisloPopisne(); + + @Parameter(name = "KlientZamCistyPrijem") + Double klientZamCistyPrijem(); + + @Parameter(name = "KlientZamICO") + String klientZamICO(); + + @Parameter(name = "KlientZamMobil") + String klientZamMobil(); + + @Parameter(name = "KlientZamMobilPredvolba") + String klientZamMobilPredvolba(); + + @Parameter(name = "KlientZamNazev") + String klientZamNazev(); + + @Parameter(name = "KlientZamObec") + String klientZamObec(); + + @Parameter(name = "KlientZamOdRoku") + java.util.Date klientZamOdRoku(); + + @Parameter(name = "KlientZamOdRokuPouzeRok") + Long klientZamOdRokuPouzeRok(); + + @Parameter(name = "KlientZamPSC") + String klientZamPSC(); + + @Parameter(name = "KlientZamPovolani") + String klientZamPovolani(); + + @Parameter(name = "KlientZamPrijemDom") + Double klientZamPrijemDom(); + + @Parameter(name = "KlientZamSplatky") + Double klientZamSplatky(); + + @Parameter(name = "KlientZamTel") + String klientZamTel(); + + @Parameter(name = "KlientZamTelPredvolba") + String klientZamTelPredvolba(); + + @Parameter(name = "KlientZamUlice") + String klientZamUlice(); + + @Parameter(name = "KlientZamVyzOsoby") + String klientZamVyzOsoby(); + + @Parameter(name = "KlientZamZakladDane") + Double klientZamZakladDane(); + + @Parameter(name = "LimitBankomat") + Double limitBankomat(); + + @Parameter(name = "LimitObchodnik") + Double limitObchodnik(); + + @Parameter(name = "MSISDN") + String msisdn(); + + @Parameter(name = "MaxPocetTransakciDen") + Long maxPocetTransakciDen(); + + @Parameter(name = "NahraditKartuCislo") + String nahraditKartuCislo(); + + @Parameter(name = "PCTTabulka") + String pCTTabulka(); + + @Parameter(name = "PojisteniVydajuPozadovano") + String pojisteniVydajuPozadovano(); + + @Parameter(name = "PojisteniVydajuSchvaleno") + String pojisteniVydajuSchvaleno(); + + @Parameter(name = "PoleDS") + String poleDS(); + + @Parameter(name = "PrimarniUrednik") + String primarniUrednik(); + + @Parameter(name = "StatEU") + String statEU(); + + @Parameter(name = "StatniPrislusnost") + String statniPrislusnost(); + + @Parameter(name = "TechnologieKarty") + String technologieKarty(); + + @Parameter(name = "TypKarty") + String typKarty(); + + @Parameter(name = "TypKartySchvaleno") + String typKartySchvaleno(); + + @Parameter(name = "Vypracoval") + String vypracoval(); + + @Parameter(name = "VytlaceneJmeno") + String vytlaceneJmeno(); + + @Parameter(name = "VytlaceneJmeno2") + String vytlaceneJmeno2(); + + @Parameter(name = "ZAKartaCO") + String zAKartaCO(); + + @Parameter(name = "ZAKartaCP") + String zAKartaCP(); + + @Parameter(name = "ZAKartaObec") + String zAKartaObec(); + + @Parameter(name = "ZAKartaPSC") + String zAKartaPSC(); + + @Parameter(name = "ZAKartaPosta") + String zAKartaPosta(); + + @Parameter(name = "ZAKartaTypAdresy") + String zAKartaTypAdresy(); + + @Parameter(name = "ZAKartaUlice") + String zAKartaUlice(); + + @Parameter(name = "ZAPINCO") + String zapinco(); + + @Parameter(name = "ZAPINCP") + String zapincp(); + + @Parameter(name = "ZAPINObec") + String zAPINObec(); + + @Parameter(name = "ZAPINPSC") + String zapinpsc(); + + @Parameter(name = "ZAPINPosta") + String zAPINPosta(); + + @Parameter(name = "ZAPINTypAdresy") + String zAPINTypAdresy(); + + @Parameter(name = "ZAPINUlice") + String zAPINUlice(); + + @Parameter(name = "ZamestnaniTelefon") + String zamestnaniTelefon(); + + @Parameter(name = "ZpusobDistribucePIN") + String zpusobDistribucePIN(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF067.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF067.java new file mode 100644 index 0000000..5bd8f0d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF067.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF067 extends MwfRequest { + + @Parameter(name = "CisloUctu") + MWF067 cisloUctu(String cisloUctu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF067Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF067Response.java new file mode 100644 index 0000000..73ae95d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF067Response.java @@ -0,0 +1,165 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF067Response { + + @Parameter(name = "AAAdresat") + String aAAdresat(); + + @Parameter(name = "AACO") + String aaco(); + + @Parameter(name = "AACP") + String aacp(); + + @Parameter(name = "AACtvrt") + String aACtvrt(); + + @Parameter(name = "AAObec") + String aAObec(); + + @Parameter(name = "AAPSC") + String aapsc(); + + @Parameter(name = "AAPosta") + String aAPosta(); + + @Parameter(name = "AAUlice") + String aAUlice(); + + @Parameter(name = "AAZeme") + String aAZeme(); + + @Parameter(name = "BeznyZustatek") + Double beznyZustatek(); + + @Parameter(name = "CisloUctu") + String cisloUctu(); + + @Parameter(name = "DanZUroku") + Double danZUroku(); + + @Parameter(name = "DatumDalsihoVypisu") + java.util.Date datumDalsihoVypisu(); + + @Parameter(name = "DatumGenerovaniVypisu") + java.util.Date datumGenerovaniVypisu(); + + @Parameter(name = "DatumOtevreni") + java.util.Date datumOtevreni(); + + @Parameter(name = "DisponibilniZustatek") + Double disponibilniZustatek(); + + @Parameter(name = "DistribuceVypisu") + String distribuceVypisu(); + + @Parameter(name = "DruheJmeno") + String druheJmeno(); + + @Parameter(name = "Jmeno") + String jmeno(); + + @Parameter(name = "JmenoUctu") + String jmenoUctu(); + + @Parameter(name = "KonecnyZustatek") + Double konecnyZustatek(); + + @Parameter(name = "Mena") + String mena(); + + @Parameter(name = "MesicniObratyCR") + Double mesicniObratyCR(); + + @Parameter(name = "MesicniObratyDB") + Double mesicniObratyDB(); + + @Parameter(name = "ObchodniMistoKod") + String obchodniMistoKod(); + + @Parameter(name = "ObchodniMistoKodNazev") + String obchodniMistoKodNazev(); + + @Parameter(name = "ObchodniMistoNazev") + String obchodniMistoNazev(); + + @Parameter(name = "PausalniPoplatek") + Double pausalniPoplatek(); + + @Parameter(name = "PeriodaVypisu") + String periodaVypisu(); + + @Parameter(name = "PouzitaAA") + String pouzitaAA(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "ProduktKod") + String produktKod(); + + @Parameter(name = "ProduktNazev") + String produktNazev(); + + @Parameter(name = "RocniObratyCR") + Double rocniObratyCR(); + + @Parameter(name = "RocniObratyDB") + Double rocniObratyDB(); + + @Parameter(name = "SankcniUrok") + Double sankcniUrok(); + + @Parameter(name = "SdruzUcetPoplatky") + String sdruzUcetPoplatky(); + + @Parameter(name = "ServisniPoplatek") + Double servisniPoplatek(); + + @Parameter(name = "SplatnyUrok") + Double splatnyUrok(); + + @Parameter(name = "StavUctu") + String stavUctu(); + + @Parameter(name = "TitulPred") + String titulPred(); + + @Parameter(name = "TitulZa") + String titulZa(); + + @Parameter(name = "TypPoplatkovehoPlanu") + Double typPoplatkovehoPlanu(); + + @Parameter(name = "UrokSazbaPasmo1") + Double urokSazbaPasmo1(); + + @Parameter(name = "UrokSazbaPasmo2") + Double urokSazbaPasmo2(); + + @Parameter(name = "UrokSazbaPasmo3") + Double urokSazbaPasmo3(); + + @Parameter(name = "UrokSazbaPasmo4") + Double urokSazbaPasmo4(); + + @Parameter(name = "UrokSazbaPasmo5") + Double urokSazbaPasmo5(); + + @Parameter(name = "UrokovaSazba") + Double urokovaSazba(); + + @Parameter(name = "UrokovyPlan") + String urokovyPlan(); + + @Parameter(name = "UrokovyPlanTisk") + String urokovyPlanTisk(); + + @Parameter(name = "VypisNaKonciMesice") + Boolean vypisNaKonciMesice(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF071.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF071.java new file mode 100644 index 0000000..c31a904 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF071.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF071 extends MwfRequest { + + @Parameter(name = "ADMAdresa") + MWF071 aDMAdresa(String aDMAdresa); + @Parameter(name = "ADMIPAddress") + MWF071 aDMIPAddress(String aDMIPAddress); + @Parameter(name = "ADMOMKod") + MWF071 aDMOMKod(String aDMOMKod); + @Parameter(name = "ADMOMNazev") + MWF071 aDMOMNazev(String aDMOMNazev); + @Parameter(name = "ADMPopis") + MWF071 aDMPopis(String aDMPopis); + @Parameter(name = "ADMPozice") + MWF071 aDMPozice(Long aDMPozice); + @Parameter(name = "ADMSessionID") + MWF071 aDMSessionID(String aDMSessionID); + @Parameter(name = "ADMSuperUziID") + MWF071 aDMSuperUziID(Long aDMSuperUziID); + @Parameter(name = "ADMUzivatelID") + MWF071 aDMUzivatelID(Long aDMUzivatelID); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF071Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF071Data.java new file mode 100644 index 0000000..5288cb5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF071Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF071Data { + + private Map params; + + public MWF071Data(Map params) { + this.params = params; + } + + public String rsAdmcisloom() { + return (String) params.get("RS_ADMCISLOOM"); + } + + public String rsAdmomnazev() { + return (String) params.get("RS_ADMOMNAZEV"); + } + + public String rsAdmadresa() { + return (String) params.get("RS_ADMADRESA"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF071Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF071Response.java new file mode 100644 index 0000000..8e1b8f8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF071Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF071Response { + + @Parameter(name = "ADMPocet") + Long aDMPocet(); + + @Parameter(name = "ADMPozice") + Long aDMPozice(); + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF081.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF081.java new file mode 100644 index 0000000..165dee3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF081.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF081 extends MwfRequest { + + @Parameter(name = "CIF") + MWF081 cif(String cif); + @Parameter(name = "ZnovuNacistUpominky") + MWF081 znovuNacistUpominky(Long znovuNacistUpominky); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF081Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF081Response.java new file mode 100644 index 0000000..1a1238e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF081Response.java @@ -0,0 +1,282 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF081Response { + + @Parameter(name = "Adresat") + String adresat(); + + @Parameter(name = "CO") + String co(); + + @Parameter(name = "CP") + String cp(); + + @Parameter(name = "CisloPasu") + String cisloPasu(); + + @Parameter(name = "CistyMesicniPrijem") + Double cistyMesicniPrijem(); + + @Parameter(name = "Ctvrt") + String ctvrt(); + + @Parameter(name = "DatumExpiraceKontaktnichUdaju") + java.util.Date datumExpiraceKontaktnichUdaju(); + + @Parameter(name = "DatumExpiracePotvrzeniStudent") + java.util.Date datumExpiracePotvrzeniStudent(); + + @Parameter(name = "DatumNarozeni") + java.util.Date datumNarozeni(); + + @Parameter(name = "DatumNastehovani") + java.util.Date datumNastehovani(); + + @Parameter(name = "DatumPosledniAktualizace") + java.util.Date datumPosledniAktualizace(); + + @Parameter(name = "DatumPotvrzeniPrijmu") + java.util.Date datumPotvrzeniPrijmu(); + + @Parameter(name = "DatumZalozeniCIFu") + java.util.Date datumZalozeniCIFu(); + + @Parameter(name = "DruhBydleni") + String druhBydleni(); + + @Parameter(name = "DruhKlienta") + String druhKlienta(); + + @Parameter(name = "DruhPrijmuKlienta") + String druhPrijmuKlienta(); + + @Parameter(name = "DruhaStatniPrislusnost") + String druhaStatniPrislusnost(); + + @Parameter(name = "DruheJmeno") + String druheJmeno(); + + @Parameter(name = "EMail") + String eMail(); + + @Parameter(name = "EkonomickySektor") + String ekonomickySektor(); + + @Parameter(name = "Funkce") + String funkce(); + + @Parameter(name = "IDSdeleniEmail") + Long iDSdeleniEmail(); + + @Parameter(name = "IDSdeleniExpiraceKU") + Long iDSdeleniExpiraceKU(); + + @Parameter(name = "IDSdeleniMobil") + Long iDSdeleniMobil(); + + @Parameter(name = "IDSdeleniZuzeneSJM") + Long iDSdeleniZuzeneSJM(); + + @Parameter(name = "JinyOsobniDoklad1Cislo") + String jinyOsobniDoklad1Cislo(); + + @Parameter(name = "JinyOsobniDoklad1Platnost") + java.util.Date jinyOsobniDoklad1Platnost(); + + @Parameter(name = "JinyOsobniDoklad1StatVydal") + String jinyOsobniDoklad1StatVydal(); + + @Parameter(name = "JinyOsobniDoklad1Typ") + String jinyOsobniDoklad1Typ(); + + @Parameter(name = "JinyOsobniDoklad2Cislo") + String jinyOsobniDoklad2Cislo(); + + @Parameter(name = "JinyOsobniDoklad2Platnost") + java.util.Date jinyOsobniDoklad2Platnost(); + + @Parameter(name = "JinyOsobniDoklad2StatVydal") + String jinyOsobniDoklad2StatVydal(); + + @Parameter(name = "JinyOsobniDoklad2Typ") + String jinyOsobniDoklad2Typ(); + + @Parameter(name = "KlasifikaceKlienta") + String klasifikaceKlienta(); + + @Parameter(name = "KodObchodnihoMista") + String kodObchodnihoMista(); + + @Parameter(name = "MistoNarozeni") + String mistoNarozeni(); + + @Parameter(name = "NazevZamestnavatele") + String nazevZamestnavatele(); + + @Parameter(name = "NejvyssiDosazeneVzdelani") + String nejvyssiDosazeneVzdelani(); + + @Parameter(name = "NezadouciKlient") + String nezadouciKlient(); + + @Parameter(name = "NoEmailFlag") + Long noEmailFlag(); + + @Parameter(name = "OPStatVydal") + String oPStatVydal(); + + @Parameter(name = "ObchodniMistoNazev") + String obchodniMistoNazev(); + + @Parameter(name = "Obec") + String obec(); + + @Parameter(name = "Osloveni") + String osloveni(); + + @Parameter(name = "OsobniBanker") + String osobniBanker(); + + @Parameter(name = "PSC") + String psc(); + + @Parameter(name = "PasStatVydal") + String pasStatVydal(); + + @Parameter(name = "PlatnostKontaktnichUdaju") + String platnostKontaktnichUdaju(); + + @Parameter(name = "PlatnostOPdo") + java.util.Date platnostOPdo(); + + @Parameter(name = "PlatnostPasuDo") + java.util.Date platnostPasuDo(); + + @Parameter(name = "PocetVyzivovanychDeti") + Long pocetVyzivovanychDeti(); + + @Parameter(name = "Pohlavi") + String pohlavi(); + + @Parameter(name = "Posta") + String posta(); + + @Parameter(name = "PotvrzeniStudent") + String potvrzeniStudent(); + + @Parameter(name = "Povolani") + String povolani(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "PrijmovaSkupina") + String prijmovaSkupina(); + + @Parameter(name = "PrvniJmeno") + String prvniJmeno(); + + @Parameter(name = "Rezidence") + String rezidence(); + + @Parameter(name = "RodinnyStav") + String rodinnyStav(); + + @Parameter(name = "RodneCislo") + String rodneCislo(); + + @Parameter(name = "SerieACisloOP") + String serieACisloOP(); + + @Parameter(name = "SocialneEkonomickaSkupina") + String socialneEkonomickaSkupina(); + + @Parameter(name = "SpiciUcet") + String spiciUcet(); + + @Parameter(name = "SpravniCelek") + String spravniCelek(); + + @Parameter(name = "StatniPrislusnost") + String statniPrislusnost(); + + @Parameter(name = "TelefonDalsi") + String telefonDalsi(); + + @Parameter(name = "TelefonDalsiPredvolba") + String telefonDalsiPredvolba(); + + @Parameter(name = "TelefonDomu") + String telefonDomu(); + + @Parameter(name = "TelefonDomuPredvolba") + String telefonDomuPredvolba(); + + @Parameter(name = "TelefonMobilni") + String telefonMobilni(); + + @Parameter(name = "TelefonMobilniPredvolba") + String telefonMobilniPredvolba(); + + @Parameter(name = "TelefonZamestnani") + String telefonZamestnani(); + + @Parameter(name = "TelefonZamestnaniPredvolba") + String telefonZamestnaniPredvolba(); + + @Parameter(name = "Titul") + String titul(); + + @Parameter(name = "TitulZaJmenem") + String titulZaJmenem(); + + @Parameter(name = "TypDruhehoDokladu") + String typDruhehoDokladu(); + + @Parameter(name = "TypKlienta") + String typKlienta(); + + @Parameter(name = "Ulice") + String ulice(); + + @Parameter(name = "VztahKBance") + String vztahKBance(); + + @Parameter(name = "ZAMCO") + String zamco(); + + @Parameter(name = "ZAMCP") + String zamcp(); + + @Parameter(name = "ZAMICO") + String zamico(); + + @Parameter(name = "ZAMPSC") + String zampsc(); + + @Parameter(name = "ZAMPosta") + String zAMPosta(); + + @Parameter(name = "ZAMUlice") + String zAMUlice(); + + @Parameter(name = "ZamObec") + String zamObec(); + + @Parameter(name = "ZamestnanOd") + java.util.Date zamestnanOd(); + + @Parameter(name = "Zeme") + String zeme(); + + @Parameter(name = "ZkraceneJmeno") + String zkraceneJmeno(); + + @Parameter(name = "ZuzeneSJM") + String zuzeneSJM(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF082.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF082.java new file mode 100644 index 0000000..72c083f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF082.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF082 extends MwfRequest { + + @Parameter(name = "CIF") + MWF082 cif(String cif); + @Parameter(name = "ZnovuNacistUpominky") + MWF082 znovuNacistUpominky(Long znovuNacistUpominky); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF082Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF082Response.java new file mode 100644 index 0000000..2c088d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF082Response.java @@ -0,0 +1,210 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF082Response { + + @Parameter(name = "Adresat") + String adresat(); + + @Parameter(name = "CO") + String co(); + + @Parameter(name = "CP") + String cp(); + + @Parameter(name = "CisloPasu") + String cisloPasu(); + + @Parameter(name = "Ctvrt") + String ctvrt(); + + @Parameter(name = "DIC") + String dic(); + + @Parameter(name = "DatumExpiraceKontaktnichUdaju") + java.util.Date datumExpiraceKontaktnichUdaju(); + + @Parameter(name = "DatumPlatnostiOP") + java.util.Date datumPlatnostiOP(); + + @Parameter(name = "DatumPodnikaniDo") + java.util.Date datumPodnikaniDo(); + + @Parameter(name = "DatumPodnikaniOd") + java.util.Date datumPodnikaniOd(); + + @Parameter(name = "DatumPosledniAktualizace") + java.util.Date datumPosledniAktualizace(); + + @Parameter(name = "DatumZalozeniCIFu") + java.util.Date datumZalozeniCIFu(); + + @Parameter(name = "DruheJmeno") + String druheJmeno(); + + @Parameter(name = "EMail") + String eMail(); + + @Parameter(name = "EkonomickySektor") + String ekonomickySektor(); + + @Parameter(name = "Funkce") + String funkce(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "ICOHlavnihoSpolku") + String iCOHlavnihoSpolku(); + + @Parameter(name = "IDSdeleniDatumPodnikaniDo") + Long iDSdeleniDatumPodnikaniDo(); + + @Parameter(name = "IDSdeleniDatumPodnikaniOd") + Long iDSdeleniDatumPodnikaniOd(); + + @Parameter(name = "IDSdeleniEmail") + Long iDSdeleniEmail(); + + @Parameter(name = "IDSdeleniExpiraceKU") + Long iDSdeleniExpiraceKU(); + + @Parameter(name = "IDSdeleniICOHlavnihoSpolku") + Long iDSdeleniICOHlavnihoSpolku(); + + @Parameter(name = "IDSdeleniMobil") + Long iDSdeleniMobil(); + + @Parameter(name = "JinyOsobniDoklad2Cislo") + String jinyOsobniDoklad2Cislo(); + + @Parameter(name = "JinyOsobniDoklad2Platnost") + java.util.Date jinyOsobniDoklad2Platnost(); + + @Parameter(name = "JinyOsobniDoklad2Typ") + String jinyOsobniDoklad2Typ(); + + @Parameter(name = "Jmeno") + String jmeno(); + + @Parameter(name = "KodObchodnihoMista") + String kodObchodnihoMista(); + + @Parameter(name = "NezadouciKlient") + String nezadouciKlient(); + + @Parameter(name = "OKEC") + String okec(); + + @Parameter(name = "OROddil") + String oROddil(); + + @Parameter(name = "ORSoud") + String oRSoud(); + + @Parameter(name = "ORVlozka") + String oRVlozka(); + + @Parameter(name = "ObchodniJmeno") + String obchodniJmeno(); + + @Parameter(name = "ObchodniMistoNazev") + String obchodniMistoNazev(); + + @Parameter(name = "Obec") + String obec(); + + @Parameter(name = "Osloveni") + String osloveni(); + + @Parameter(name = "OsobniBanker") + String osobniBanker(); + + @Parameter(name = "PSC") + String psc(); + + @Parameter(name = "PlatnostKontaktnichUdaju") + String platnostKontaktnichUdaju(); + + @Parameter(name = "PlatnostPasuDo") + java.util.Date platnostPasuDo(); + + @Parameter(name = "PocetZamestnancu") + String pocetZamestnancu(); + + @Parameter(name = "Posta") + String posta(); + + @Parameter(name = "PravniForma") + String pravniForma(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "RatingKlienta") + String ratingKlienta(); + + @Parameter(name = "Rezidence") + String rezidence(); + + @Parameter(name = "RodneCislo") + String rodneCislo(); + + @Parameter(name = "SerieACisloOP") + String serieACisloOP(); + + @Parameter(name = "SocialneEkonomickaSkupina") + String socialneEkonomickaSkupina(); + + @Parameter(name = "SpiciUcet") + String spiciUcet(); + + @Parameter(name = "SpravniCelek") + String spravniCelek(); + + @Parameter(name = "Telefon") + String telefon(); + + @Parameter(name = "TelefonDalsi") + String telefonDalsi(); + + @Parameter(name = "TelefonDalsiPredvolba") + String telefonDalsiPredvolba(); + + @Parameter(name = "TelefonMobilni") + String telefonMobilni(); + + @Parameter(name = "TelefonMobilniPredvolba") + String telefonMobilniPredvolba(); + + @Parameter(name = "TelefonPredvolba") + String telefonPredvolba(); + + @Parameter(name = "TitulPred") + String titulPred(); + + @Parameter(name = "TitulZa") + String titulZa(); + + @Parameter(name = "TypKlienta") + String typKlienta(); + + @Parameter(name = "Ulice") + String ulice(); + + @Parameter(name = "VztahKBance") + String vztahKBance(); + + @Parameter(name = "ZECO") + String zeco(); + + @Parameter(name = "Zeme") + String zeme(); + + @Parameter(name = "ZkraceneJmeno") + String zkraceneJmeno(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF083.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF083.java new file mode 100644 index 0000000..c2c255a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF083.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF083 extends MwfRequest { + + @Parameter(name = "CisloUctu") + MWF083 cisloUctu(String cisloUctu); + @Parameter(name = "NacistVsechnyBlokace") + MWF083 nacistVsechnyBlokace(String nacistVsechnyBlokace); + @Parameter(name = "TypUctu") + MWF083 typUctu(Long typUctu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF083Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF083Data.java new file mode 100644 index 0000000..a3372d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF083Data.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF083Data { + + private Map params; + + public MWF083Data(Map params) { + this.params = params; + } + + public Double rsCastka() { + return (Double) params.get("RS_CASTKA"); + } + + public java.util.Date rsDatumexpirace() { + return (java.util.Date) params.get("RS_DATUMEXPIRACE"); + } + + public java.util.Date rsDatumporizeni() { + return (java.util.Date) params.get("RS_DATUMPORIZENI"); + } + + public String rsDuvodblokace() { + return (String) params.get("RS_DUVODBLOKACE"); + } + + public String rsDuvodblokace2() { + return (String) params.get("RS_DUVODBLOKACE2"); + } + + public String rsId() { + return (String) params.get("RS_ID"); + } + + public String rsCislovety() { + return (String) params.get("RS_CISLOVETY"); + } + + public String rsTypvety() { + return (String) params.get("RS_TYPVETY"); + } + + public String rsBarva() { + return (String) params.get("RS_BARVA"); + } + + public String rsTypblokace() { + return (String) params.get("RS_TYPBLOKACE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF083Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF083Response.java new file mode 100644 index 0000000..3c197ba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF083Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF083Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF086.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF086.java new file mode 100644 index 0000000..a248a02 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF086.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF086 extends MwfRequest { + + @Parameter(name = "CisloUctu") + MWF086 cisloUctu(String cisloUctu); + @Parameter(name = "FiltrCastkaDo") + MWF086 filtrCastkaDo(Double filtrCastkaDo); + @Parameter(name = "FiltrCastkaOd") + MWF086 filtrCastkaOd(Double filtrCastkaOd); + @Parameter(name = "FiltrDatumDo") + MWF086 filtrDatumDo(java.util.Date filtrDatumDo); + @Parameter(name = "FiltrDatumOd") + MWF086 filtrDatumOd(java.util.Date filtrDatumOd); + @Parameter(name = "FiltrIDTransakce") + MWF086 filtrIDTransakce(String filtrIDTransakce); + @Parameter(name = "FiltrVariabilniSymbol") + MWF086 filtrVariabilniSymbol(String filtrVariabilniSymbol); + @Parameter(name = "KodOM") + MWF086 kodOM(String kodOM); + @Parameter(name = "StatusDo") + MWF086 statusDo(String statusDo); + @Parameter(name = "StatusOd") + MWF086 statusOd(String statusOd); + @Parameter(name = "VcetneInternichKonverzi") + MWF086 vcetneInternichKonverzi(Boolean vcetneInternichKonverzi); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF086Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF086Data.java new file mode 100644 index 0000000..bba7c7b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF086Data.java @@ -0,0 +1,201 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF086Data { + + private Map params; + + public MWF086Data(Map params) { + this.params = params; + } + + public Long rsCislotransakce() { + return (Long) params.get("RS_CISLOTRANSAKCE"); + } + + public java.util.Date rsDatumsplatnosti() { + return (java.util.Date) params.get("RS_DATUMSPLATNOSTI"); + } + + public java.util.Date rsDatumzuctovani() { + return (java.util.Date) params.get("RS_DATUMZUCTOVANI"); + } + + public String rsId() { + return (String) params.get("RS_ID"); + } + + public String rsKod() { + return (String) params.get("RS_KOD"); + } + + public String rsKodbanky() { + return (String) params.get("RS_KODBANKY"); + } + + public String rsKodtransakce() { + return (String) params.get("RS_KODTRANSAKCE"); + } + + public String rsOmcr() { + return (String) params.get("RS_OMCR"); + } + + public String rsPopis() { + return (String) params.get("RS_POPIS"); + } + + public String rsPorizujici() { + return (String) params.get("RS_PORIZUJICI"); + } + + public String rsRcode() { + return (String) params.get("RS_RCODE"); + } + + public String rsRseq() { + return (String) params.get("RS_RSEQ"); + } + + public Long rsTicislovety() { + return (Long) params.get("RS_TICISLOVETY"); + } + + public String rsTizdroj() { + return (String) params.get("RS_TIZDROJ"); + } + + public String rsTrtyp() { + return (String) params.get("RS_TRTYP"); + } + + public String rsTyptransakce() { + return (String) params.get("RS_TYPTRANSAKCE"); + } + + public String rsUcetplatce() { + return (String) params.get("RS_UCETPLATCE"); + } + + public String rsUcetprijemce() { + return (String) params.get("RS_UCETPRIJEMCE"); + } + + public java.util.Date rsValuta() { + return (java.util.Date) params.get("RS_VALUTA"); + } + + public Double rsZustatek() { + return (Double) params.get("RS_ZUSTATEK"); + } + + public java.util.Date rsDatumporizeni() { + return (java.util.Date) params.get("RS_DATUMPORIZENI"); + } + + public String rsStav() { + return (String) params.get("RS_STAV"); + } + + public String rsAvpole() { + return (String) params.get("RS_AVPOLE"); + } + + public Double rsDanuroku() { + return (Double) params.get("RS_DANUROKU"); + } + + public String rsKonstantnisymbol() { + return (String) params.get("RS_KONSTANTNISYMBOL"); + } + + public String rsMenatransakce() { + return (String) params.get("RS_MENATRANSAKCE"); + } + + public String rsNazevuctu() { + return (String) params.get("RS_NAZEVUCTU"); + } + + public String rsNazevuctuprijemce() { + return (String) params.get("RS_NAZEVUCTUPRIJEMCE"); + } + + public Long rsSpecifickysymbol() { + return (Long) params.get("RS_SPECIFICKYSYMBOL"); + } + + public String rsStavvk() { + return (String) params.get("RS_STAVVK"); + } + + public Long rsVariabilnisymbol() { + return (Long) params.get("RS_VARIABILNISYMBOL"); + } + + public String rsUcetpartnersky() { + return (String) params.get("RS_UCETPARTNERSKY"); + } + + public String rsNazevuctupartnersky() { + return (String) params.get("RS_NAZEVUCTUPARTNERSKY"); + } + + public String rsKodbankypartnersky() { + return (String) params.get("RS_KODBANKYPARTNERSKY"); + } + + public Double rsCastka() { + return (Double) params.get("RS_CASTKA"); + } + + public String rsKodkreditdebet() { + return (String) params.get("RS_KODKREDITDEBET"); + } + + public String rsKodtransakceexterni() { + return (String) params.get("RS_KODTRANSAKCEEXTERNI"); + } + + public Long rsPoraditransakce() { + return (Long) params.get("RS_PORADITRANSAKCE"); + } + + public String rsPopis2() { + return (String) params.get("RS_POPIS2"); + } + + public String rsPopis3() { + return (String) params.get("RS_POPIS3"); + } + + public String rsAvpole2() { + return (String) params.get("RS_AVPOLE2"); + } + + public String rsAvpole3() { + return (String) params.get("RS_AVPOLE3"); + } + + public String rsAvpole4() { + return (String) params.get("RS_AVPOLE4"); + } + + public String rsReferenceplatce() { + return (String) params.get("RS_REFERENCEPLATCE"); + } + + public Long rsVariabilnisendtosymbol() { + return (Long) params.get("RS_VARIABILNISENDTOSYMBOL"); + } + + public String rsKonstantnisendtosymbol() { + return (String) params.get("RS_KONSTANTNISENDTOSYMBOL"); + } + + public Long rsSpecifickysendtosymbol() { + return (Long) params.get("RS_SPECIFICKYSENDTOSYMBOL"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF086Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF086Response.java new file mode 100644 index 0000000..12a5160 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF086Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF086Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF097.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF097.java new file mode 100644 index 0000000..1174b7d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF097.java @@ -0,0 +1,198 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF097 extends MwfRequest { + + @Parameter(name = "AVZamOdData") + MWF097 aVZamOdData(java.util.Date aVZamOdData); + @Parameter(name = "CIF") + MWF097 cif(String cif); + @Parameter(name = "CisloBU") + MWF097 cisloBU(String cisloBU); + @Parameter(name = "CisloOM") + MWF097 cisloOM(String cisloOM); + @Parameter(name = "CisloPasu") + MWF097 cisloPasu(String cisloPasu); + @Parameter(name = "DatumPodpisu") + MWF097 datumPodpisu(java.util.Date datumPodpisu); + @Parameter(name = "DrzitelCIF") + MWF097 drzitelCIF(String drzitelCIF); + @Parameter(name = "DrzitelDatumNarozeni") + MWF097 drzitelDatumNarozeni(java.util.Date drzitelDatumNarozeni); + @Parameter(name = "DrzitelHeslo") + MWF097 drzitelHeslo(String drzitelHeslo); + @Parameter(name = "DrzitelPracPomer") + MWF097 drzitelPracPomer(String drzitelPracPomer); + @Parameter(name = "DrzitelRC") + MWF097 drzitelRC(String drzitelRC); + @Parameter(name = "DrzitelTelefon") + MWF097 drzitelTelefon(String drzitelTelefon); + @Parameter(name = "DrzitelTelefonMobil") + MWF097 drzitelTelefonMobil(String drzitelTelefonMobil); + @Parameter(name = "DrzitelTelefonMobilPredcisli") + MWF097 drzitelTelefonMobilPredcisli(String drzitelTelefonMobilPredcisli); + @Parameter(name = "DrzitelTelefonPredcisli") + MWF097 drzitelTelefonPredcisli(String drzitelTelefonPredcisli); + @Parameter(name = "DrzitelTelefonZamestnani") + MWF097 drzitelTelefonZamestnani(String drzitelTelefonZamestnani); + @Parameter(name = "DrzitelTelefonZamestnaniPredcisli") + MWF097 drzitelTelefonZamestnaniPredcisli(String drzitelTelefonZamestnaniPredcisli); + @Parameter(name = "EvidencniCislo") + MWF097 evidencniCislo(String evidencniCislo); + @Parameter(name = "Heslo") + MWF097 heslo(String heslo); + @Parameter(name = "KlientBydliNaAdreseOd") + MWF097 klientBydliNaAdreseOd(java.util.Date klientBydliNaAdreseOd); + @Parameter(name = "KlientCisloDruhehoDokladu") + MWF097 klientCisloDruhehoDokladu(String klientCisloDruhehoDokladu); + @Parameter(name = "KlientCisloOP") + MWF097 klientCisloOP(String klientCisloOP); + @Parameter(name = "KlientCisloPrvnihoDokladu") + MWF097 klientCisloPrvnihoDokladu(String klientCisloPrvnihoDokladu); + @Parameter(name = "KlientDruhBydleni") + MWF097 klientDruhBydleni(String klientDruhBydleni); + @Parameter(name = "KlientDruhDruhehoDokladu") + MWF097 klientDruhDruhehoDokladu(String klientDruhDruhehoDokladu); + @Parameter(name = "KlientDruhPrvnihoDokladu") + MWF097 klientDruhPrvnihoDokladu(String klientDruhPrvnihoDokladu); + @Parameter(name = "KlientEmail") + MWF097 klientEmail(String klientEmail); + @Parameter(name = "KlientJmeno") + MWF097 klientJmeno(String klientJmeno); + @Parameter(name = "KlientPlatnostOP") + MWF097 klientPlatnostOP(java.util.Date klientPlatnostOP); + @Parameter(name = "KlientPracPomer") + MWF097 klientPracPomer(String klientPracPomer); + @Parameter(name = "KlientPredlozeneDoklady") + MWF097 klientPredlozeneDoklady(String klientPredlozeneDoklady); + @Parameter(name = "KlientPrijmeni") + MWF097 klientPrijmeni(String klientPrijmeni); + @Parameter(name = "KlientRC") + MWF097 klientRC(String klientRC); + @Parameter(name = "KlientStav") + MWF097 klientStav(String klientStav); + @Parameter(name = "KlientTrCisloOrientacni") + MWF097 klientTrCisloOrientacni(String klientTrCisloOrientacni); + @Parameter(name = "KlientTrCisloPopisne") + MWF097 klientTrCisloPopisne(String klientTrCisloPopisne); + @Parameter(name = "KlientTrMobil") + MWF097 klientTrMobil(String klientTrMobil); + @Parameter(name = "KlientTrMobilPredvolba") + MWF097 klientTrMobilPredvolba(String klientTrMobilPredvolba); + @Parameter(name = "KlientTrObec") + MWF097 klientTrObec(String klientTrObec); + @Parameter(name = "KlientTrPSC") + MWF097 klientTrPSC(String klientTrPSC); + @Parameter(name = "KlientTrPosta") + MWF097 klientTrPosta(String klientTrPosta); + @Parameter(name = "KlientTrTelDomu") + MWF097 klientTrTelDomu(String klientTrTelDomu); + @Parameter(name = "KlientTrTelDomuPredvolba") + MWF097 klientTrTelDomuPredvolba(String klientTrTelDomuPredvolba); + @Parameter(name = "KlientTrUlice") + MWF097 klientTrUlice(String klientTrUlice); + @Parameter(name = "KlientVzdelani") + MWF097 klientVzdelani(String klientVzdelani); + @Parameter(name = "KlientZamCisloOrientacni") + MWF097 klientZamCisloOrientacni(String klientZamCisloOrientacni); + @Parameter(name = "KlientZamCisloPopisne") + MWF097 klientZamCisloPopisne(String klientZamCisloPopisne); + @Parameter(name = "KlientZamCistyPrijem") + MWF097 klientZamCistyPrijem(Double klientZamCistyPrijem); + @Parameter(name = "KlientZamICO") + MWF097 klientZamICO(String klientZamICO); + @Parameter(name = "KlientZamMobil") + MWF097 klientZamMobil(String klientZamMobil); + @Parameter(name = "KlientZamMobilPredvolba") + MWF097 klientZamMobilPredvolba(String klientZamMobilPredvolba); + @Parameter(name = "KlientZamNazev") + MWF097 klientZamNazev(String klientZamNazev); + @Parameter(name = "KlientZamObec") + MWF097 klientZamObec(String klientZamObec); + @Parameter(name = "KlientZamOdRoku") + MWF097 klientZamOdRoku(java.util.Date klientZamOdRoku); + @Parameter(name = "KlientZamPSC") + MWF097 klientZamPSC(String klientZamPSC); + @Parameter(name = "KlientZamPovolani") + MWF097 klientZamPovolani(String klientZamPovolani); + @Parameter(name = "KlientZamPrijemDom") + MWF097 klientZamPrijemDom(Double klientZamPrijemDom); + @Parameter(name = "KlientZamSplatky") + MWF097 klientZamSplatky(Double klientZamSplatky); + @Parameter(name = "KlientZamTel") + MWF097 klientZamTel(String klientZamTel); + @Parameter(name = "KlientZamTelPredvolba") + MWF097 klientZamTelPredvolba(String klientZamTelPredvolba); + @Parameter(name = "KlientZamUlice") + MWF097 klientZamUlice(String klientZamUlice); + @Parameter(name = "KlientZamVyzOsoby") + MWF097 klientZamVyzOsoby(String klientZamVyzOsoby); + @Parameter(name = "KlientZamZakladDane") + MWF097 klientZamZakladDane(Double klientZamZakladDane); + @Parameter(name = "LimitBankomat") + MWF097 limitBankomat(Double limitBankomat); + @Parameter(name = "LimitObchodnik") + MWF097 limitObchodnik(Double limitObchodnik); + @Parameter(name = "MSISDN") + MWF097 msisdn(String msisdn); + @Parameter(name = "MaxPocetTransakciDen") + MWF097 maxPocetTransakciDen(Long maxPocetTransakciDen); + @Parameter(name = "NahraditKartuCislo") + MWF097 nahraditKartuCislo(String nahraditKartuCislo); + @Parameter(name = "PCTTabulka") + MWF097 pCTTabulka(String pCTTabulka); + @Parameter(name = "PKEmbossovana") + MWF097 pKEmbossovana(String pKEmbossovana); + @Parameter(name = "PojisteniVydajuPozadovano") + MWF097 pojisteniVydajuPozadovano(String pojisteniVydajuPozadovano); + @Parameter(name = "PoleDS") + MWF097 poleDS(String poleDS); + @Parameter(name = "PrimarniUrednik") + MWF097 primarniUrednik(String primarniUrednik); + @Parameter(name = "StatEU") + MWF097 statEU(String statEU); + @Parameter(name = "StatniPrislusnost") + MWF097 statniPrislusnost(String statniPrislusnost); + @Parameter(name = "TechnologieKarty") + MWF097 technologieKarty(String technologieKarty); + @Parameter(name = "TypKarty") + MWF097 typKarty(String typKarty); + @Parameter(name = "VytlaceneJmeno") + MWF097 vytlaceneJmeno(String vytlaceneJmeno); + @Parameter(name = "VytlaceneJmeno2") + MWF097 vytlaceneJmeno2(String vytlaceneJmeno2); + @Parameter(name = "ZAKartaCO") + MWF097 zAKartaCO(String zAKartaCO); + @Parameter(name = "ZAKartaCP") + MWF097 zAKartaCP(String zAKartaCP); + @Parameter(name = "ZAKartaObec") + MWF097 zAKartaObec(String zAKartaObec); + @Parameter(name = "ZAKartaPSC") + MWF097 zAKartaPSC(String zAKartaPSC); + @Parameter(name = "ZAKartaPosta") + MWF097 zAKartaPosta(String zAKartaPosta); + @Parameter(name = "ZAKartaTypAdresy") + MWF097 zAKartaTypAdresy(String zAKartaTypAdresy); + @Parameter(name = "ZAKartaUlice") + MWF097 zAKartaUlice(String zAKartaUlice); + @Parameter(name = "ZAPINCO") + MWF097 zapinco(String zapinco); + @Parameter(name = "ZAPINCP") + MWF097 zapincp(String zapincp); + @Parameter(name = "ZAPINObec") + MWF097 zAPINObec(String zAPINObec); + @Parameter(name = "ZAPINPSC") + MWF097 zapinpsc(String zapinpsc); + @Parameter(name = "ZAPINPosta") + MWF097 zAPINPosta(String zAPINPosta); + @Parameter(name = "ZAPINTypAdresy") + MWF097 zAPINTypAdresy(String zAPINTypAdresy); + @Parameter(name = "ZAPINUlice") + MWF097 zAPINUlice(String zAPINUlice); + @Parameter(name = "ZalozeniIB") + MWF097 zalozeniIB(Long zalozeniIB); + @Parameter(name = "ZpusobDistribucePIN") + MWF097 zpusobDistribucePIN(String zpusobDistribucePIN); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF097Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF097Data.java new file mode 100644 index 0000000..90befb1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF097Data.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF097Data { + + private Map params; + + public MWF097Data(Map params) { + this.params = params; + } + + public String rsDoplnkovesluzby() { + return (String) params.get("RS_DOPLNKOVESLUZBY"); + } + + public java.util.Date rsDatumzalozenids() { + return (java.util.Date) params.get("RS_DATUMZALOZENIDS"); + } + + public String rsStavds() { + return (String) params.get("RS_STAVDS"); + } + + public java.util.Date rsDatumucinnosti() { + return (java.util.Date) params.get("RS_DATUMUCINNOSTI"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF097Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF097Response.java new file mode 100644 index 0000000..578a61f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF097Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF097Response { + + @Parameter(name = "APZadosti") + String aPZadosti(); + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B1.java new file mode 100644 index 0000000..84def3e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B1.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0B1 extends MwfRequest { + + @Parameter(name = "INBANK") + MWF0B1 inbank(Long inbank); + @Parameter(name = "INCLID") + MWF0B1 inclid(String inclid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B1Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B1Data.java new file mode 100644 index 0000000..8c115e7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B1Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF0B1Data { + + private Map params; + + public MWF0B1Data(Map params) { + this.params = params; + } + + public String rsOuproc() { + return (String) params.get("RS_OUPROC"); + } + + public String rsOuemsg() { + return (String) params.get("RS_OUEMSG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B1Response.java new file mode 100644 index 0000000..70f3c65 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B1Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0B1Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B6.java new file mode 100644 index 0000000..5faa5f7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B6.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0B6 extends MwfRequest { + + @Parameter(name = "CpiType") + MWF0B6 cpiType(String cpiType); + @Parameter(name = "Fixation") + MWF0B6 fixation(Long fixation); + @Parameter(name = "FreeResources") + MWF0B6 freeResources(Double freeResources); + @Parameter(name = "InterestType") + MWF0B6 interestType(String interestType); + @Parameter(name = "LoanAmount") + MWF0B6 loanAmount(Long loanAmount); + @Parameter(name = "Maturity") + MWF0B6 maturity(Long maturity); + @Parameter(name = "MonthlyResources") + MWF0B6 monthlyResources(Double monthlyResources); + @Parameter(name = "OffsetType") + MWF0B6 offsetType(String offsetType); + @Parameter(name = "RealtyAmount") + MWF0B6 realtyAmount(Long realtyAmount); + @Parameter(name = "YearResources") + MWF0B6 yearResources(Double yearResources); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B6Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B6Data.java new file mode 100644 index 0000000..36b0c01 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B6Data.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF0B6Data { + + private Map params; + + public MWF0B6Data(Map params) { + this.params = params; + } + + public String rsMaturity() { + return (String) params.get("RS_MATURITY"); + } + + public Double rsInstalment() { + return (Double) params.get("RS_INSTALMENT"); + } + + public Double rsInterestrate() { + return (Double) params.get("RS_INTERESTRATE"); + } + + public String rsProductid() { + return (String) params.get("RS_PRODUCTID"); + } + + public Long rsFixation() { + return (Long) params.get("RS_FIXATION"); + } + + public Double rsFreeresources() { + return (Double) params.get("RS_FREERESOURCES"); + } + + public Double rsPpiamount() { + return (Double) params.get("RS_PPIAMOUNT"); + } + + public String rsCalctype() { + return (String) params.get("RS_CALCTYPE"); + } + + public Double rsRpsn() { + return (Double) params.get("RS_RPSN"); + } + + public Double rsCardif() { + return (Double) params.get("RS_CARDIF"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B6Response.java new file mode 100644 index 0000000..c3ed182 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0B6Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0B6Response { + + @Parameter(name = "CpiIcbsId") + Long cpiIcbsId(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "SalesProductType") + String salesProductType(); + + @Parameter(name = "TotalAmount") + Double totalAmount(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0C5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0C5.java new file mode 100644 index 0000000..d4e59b5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0C5.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0C5 extends MwfRequest { + + @Parameter(name = "APPL_KEY") + MWF0C5 applKey(Long applKey); + @Parameter(name = "WF_STATE") + MWF0C5 wfState(String wfState); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0C5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0C5Response.java new file mode 100644 index 0000000..f43c5ba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0C5Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0C5Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D2.java new file mode 100644 index 0000000..ed9e258 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D2.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0D2 extends MwfRequest { + + @Parameter(name = "ChannelId") + MWF0D2 channelId(String channelId); + @Parameter(name = "ID_OM") + MWF0D2 idOm(String idOm); + @Parameter(name = "LOAN_AMOUNT") + MWF0D2 loanAmount(Double loanAmount); + @Parameter(name = "NetMonthlyIncome") + MWF0D2 netMonthlyIncome(Double netMonthlyIncome); + @Parameter(name = "OtherMonthlyPayments") + MWF0D2 otherMonthlyPayments(Long otherMonthlyPayments); + @Parameter(name = "PRODUCT_CLASS") + MWF0D2 productClass(String productClass); + @Parameter(name = "TERM") + MWF0D2 term(Long term); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D2Response.java new file mode 100644 index 0000000..5b75094 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D2Response.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0D2Response { + + @Parameter(name = "INST_AMOUNT") + Double instAmount(); + + @Parameter(name = "INT_RATE") + Double intRate(); + + @Parameter(name = "LOAN_AMOUNT") + Double loanAmount(); + + @Parameter(name = "MaxLoanAmount") + Double maxLoanAmount(); + + @Parameter(name = "MaxTerm") + Long maxTerm(); + + @Parameter(name = "RPSN") + Double rpsn(); + + @Parameter(name = "TERM") + Long term(); + + @Parameter(name = "TOTAL_AMOUNT") + Double totalAmount(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D7.java new file mode 100644 index 0000000..4f701f6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D7.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0D7 extends MwfRequest { + + @Parameter(name = "BirthNumber") + MWF0D7 birthNumber(String birthNumber); + @Parameter(name = "ChannelId") + MWF0D7 channelId(String channelId); + @Parameter(name = "ClientType") + MWF0D7 clientType(String clientType); + @Parameter(name = "ICO") + MWF0D7 ico(String ico); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D7Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D7Data.java new file mode 100644 index 0000000..c7a2422 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D7Data.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF0D7Data { + + private Map params; + + public MWF0D7Data(Map params) { + this.params = params; + } + + public Double rsServicefeeamount() { + return (Double) params.get("RS_SERVICEFEEAMOUNT"); + } + + public String rsServicefeetype() { + return (String) params.get("RS_SERVICEFEETYPE"); + } + + public Double rsRateindex() { + return (Double) params.get("RS_RATEINDEX"); + } + + public Double rsIntrateproc() { + return (Double) params.get("RS_INTRATEPROC"); + } + + public Double rsIntratereal() { + return (Double) params.get("RS_INTRATEREAL"); + } + + public Double rsDeviation() { + return (Double) params.get("RS_DEVIATION"); + } + + public String rsSalesproducttype() { + return (String) params.get("RS_SALESPRODUCTTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D7Response.java new file mode 100644 index 0000000..9dd4244 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D7Response.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0D7Response { + + @Parameter(name = "BusinessName") + String businessName(); + + @Parameter(name = "CardHolderFirstName") + String cardHolderFirstName(); + + @Parameter(name = "CardHolderSecondName") + String cardHolderSecondName(); + + @Parameter(name = "CardHolderSurname") + String cardHolderSurname(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "EBInsruranceUVA") + Double eBInsruranceUVA(); + + @Parameter(name = "InsuranceMaxAge") + Long insuranceMaxAge(); + + @Parameter(name = "PPISmeRate") + Double pPISmeRate(); + + @Parameter(name = "TitlePrefix") + String titlePrefix(); + + @Parameter(name = "TitleSuffix") + String titleSuffix(); + + @Parameter(name = "VPSFlag") + String vPSFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D8.java new file mode 100644 index 0000000..0bea642 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D8.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0D8 extends MwfRequest { + + @Parameter(name = "APP_SET_KEY") + MWF0D8 appSetKey(Long appSetKey); + @Parameter(name = "CONFIRM_OK_FLAG") + MWF0D8 confirmOkFlag(Long confirmOkFlag); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D8Response.java new file mode 100644 index 0000000..5188f65 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D8Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0D8Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D9.java new file mode 100644 index 0000000..8409375 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D9.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0D9 extends MwfRequest { + + @Parameter(name = "Autosignature") + MWF0D9 autosignature(Boolean autosignature); + @Parameter(name = "ContractSigned") + MWF0D9 contractSigned(Boolean contractSigned); + @Parameter(name = "ProdPackageKey") + MWF0D9 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D9Response.java new file mode 100644 index 0000000..1e4ee95 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0D9Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0D9Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G0.java new file mode 100644 index 0000000..70ce77b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G0.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0G0 extends MwfRequest { + + @Parameter(name = "LOAN_AMOUNT") + MWF0G0 loanAmount(Long loanAmount); + @Parameter(name = "MATURITY") + MWF0G0 maturity(Long maturity); + @Parameter(name = "PPI_TYPE") + MWF0G0 ppiType(String ppiType); + @Parameter(name = "PRODUCT") + MWF0G0 product(Long product); + @Parameter(name = "REALTY_AMOUNT") + MWF0G0 realtyAmount(Long realtyAmount); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G0Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G0Data.java new file mode 100644 index 0000000..73a1889 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G0Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF0G0Data { + + private Map params; + + public MWF0G0Data(Map params) { + this.params = params; + } + + public Long rsFixation() { + return (Long) params.get("RS_FIXATION"); + } + + public Double rsInterestRate() { + return (Double) params.get("RS_INTEREST_RATE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G0Response.java new file mode 100644 index 0000000..db5621d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G0Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0G0Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G1.java new file mode 100644 index 0000000..5cc9ee2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G1.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0G1 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF0G1 appKey(String appKey); + @Parameter(name = "CIF") + MWF0G1 cif(String cif); + @Parameter(name = "ChannelId") + MWF0G1 channelId(String channelId); + @Parameter(name = "CmID") + MWF0G1 cmID(String cmID); + @Parameter(name = "InstPtKey") + MWF0G1 instPtKey(String instPtKey); + @Parameter(name = "ProdPkgKey") + MWF0G1 prodPkgKey(Long prodPkgKey); + @Parameter(name = "SignatureID") + MWF0G1 signatureID(String signatureID); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G1Response.java new file mode 100644 index 0000000..bcbf84a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G1Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0G1Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G5.java new file mode 100644 index 0000000..a45bacb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G5.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0G5 extends MwfRequest { + + @Parameter(name = "CompletationChannelID") + MWF0G5 completationChannelID(String completationChannelID); + @Parameter(name = "GeneratedDocumentID") + MWF0G5 generatedDocumentID(String generatedDocumentID); + @Parameter(name = "ProdPackageKey") + MWF0G5 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G5Response.java new file mode 100644 index 0000000..5804207 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G5Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0G5Response { + + @Parameter(name = "CmID") + String cmID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G9.java new file mode 100644 index 0000000..66c72a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G9.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0G9 extends MwfRequest { + + @Parameter(name = "LOAN_AMOUNT") + MWF0G9 loanAmount(Double loanAmount); + @Parameter(name = "PPI_FLAG") + MWF0G9 ppiFlag(Long ppiFlag); + @Parameter(name = "RPMT_TP_ID") + MWF0G9 rpmtTpId(String rpmtTpId); + @Parameter(name = "SALES_PROD_TYPE") + MWF0G9 salesProdType(String salesProdType); + @Parameter(name = "TERM") + MWF0G9 term(Long term); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G9Response.java new file mode 100644 index 0000000..eb6ec00 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0G9Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0G9Response { + + @Parameter(name = "INSTALMENT") + Double instalment(); + + @Parameter(name = "INT_RATE") + Double intRate(); + + @Parameter(name = "OPENING_FEE_AMT") + Double openingFeeAmt(); + + @Parameter(name = "PPI_AMOUNT") + Double ppiAmount(); + + @Parameter(name = "TOTAL_LOAN_AMOUNT") + Double totalLoanAmount(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0H2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0H2.java new file mode 100644 index 0000000..7010648 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0H2.java @@ -0,0 +1,116 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF0H2 extends MwfRequest { + + @Parameter(name = "AddressCity") + MWF0H2 addressCity(String addressCity); + @Parameter(name = "AddressContCity") + MWF0H2 addressContCity(String addressContCity); + @Parameter(name = "AddressContCountry") + MWF0H2 addressContCountry(String addressContCountry); + @Parameter(name = "AddressContHouseNumber") + MWF0H2 addressContHouseNumber(String addressContHouseNumber); + @Parameter(name = "AddressContLandRegistryNumber") + MWF0H2 addressContLandRegistryNumber(String addressContLandRegistryNumber); + @Parameter(name = "AddressContSince") + MWF0H2 addressContSince(java.util.Date addressContSince); + @Parameter(name = "AddressContStreet") + MWF0H2 addressContStreet(String addressContStreet); + @Parameter(name = "AddressContZipCode") + MWF0H2 addressContZipCode(String addressContZipCode); + @Parameter(name = "AddressCountry") + MWF0H2 addressCountry(String addressCountry); + @Parameter(name = "AddressEmpCity") + MWF0H2 addressEmpCity(String addressEmpCity); + @Parameter(name = "AddressEmpHouseNumber") + MWF0H2 addressEmpHouseNumber(String addressEmpHouseNumber); + @Parameter(name = "AddressEmpLandRegistryNumber") + MWF0H2 addressEmpLandRegistryNumber(String addressEmpLandRegistryNumber); + @Parameter(name = "AddressEmpStreet") + MWF0H2 addressEmpStreet(String addressEmpStreet); + @Parameter(name = "AddressEmpZipCode") + MWF0H2 addressEmpZipCode(String addressEmpZipCode); + @Parameter(name = "AddressHouseNumber") + MWF0H2 addressHouseNumber(String addressHouseNumber); + @Parameter(name = "AddressLandRegistryNumber") + MWF0H2 addressLandRegistryNumber(String addressLandRegistryNumber); + @Parameter(name = "AddressStreet") + MWF0H2 addressStreet(String addressStreet); + @Parameter(name = "AddressZipCode") + MWF0H2 addressZipCode(String addressZipCode); + @Parameter(name = "BirthCountry") + MWF0H2 birthCountry(String birthCountry); + @Parameter(name = "BirthDate") + MWF0H2 birthDate(java.util.Date birthDate); + @Parameter(name = "BirthNumber") + MWF0H2 birthNumber(String birthNumber); + @Parameter(name = "BirthPlace") + MWF0H2 birthPlace(String birthPlace); + @Parameter(name = "BranchId") + MWF0H2 branchId(String branchId); + @Parameter(name = "CIF") + MWF0H2 cif(String cif); + @Parameter(name = "ChannelId") + MWF0H2 channelId(String channelId); + @Parameter(name = "Consent101SignDate") + MWF0H2 consent101SignDate(java.util.Date consent101SignDate); + @Parameter(name = "ConsultantID") + MWF0H2 consultantID(String consultantID); + @Parameter(name = "DependPersonsCount") + MWF0H2 dependPersonsCount(Long dependPersonsCount); + @Parameter(name = "EducationType") + MWF0H2 educationType(String educationType); + @Parameter(name = "Email") + MWF0H2 email(String email); + @Parameter(name = "EmployeeProcessRole") + MWF0H2 employeeProcessRole(String employeeProcessRole); + @Parameter(name = "EmployeeRoleId") + MWF0H2 employeeRoleId(String employeeRoleId); + @Parameter(name = "EmploymentId") + MWF0H2 employmentId(String employmentId); + @Parameter(name = "EmploymentName") + MWF0H2 employmentName(String employmentName); + @Parameter(name = "EmploymentSince") + MWF0H2 employmentSince(java.util.Date employmentSince); + @Parameter(name = "EmploymentType") + MWF0H2 employmentType(String employmentType); + @Parameter(name = "HousingType") + MWF0H2 housingType(String housingType); + @Parameter(name = "IDCard2Number") + MWF0H2 iDCard2Number(String iDCard2Number); + @Parameter(name = "IDCard2PublishingCountry") + MWF0H2 iDCard2PublishingCountry(String iDCard2PublishingCountry); + @Parameter(name = "IDCard2Type") + MWF0H2 iDCard2Type(String iDCard2Type); + @Parameter(name = "IDCard2ValidTo") + MWF0H2 iDCard2ValidTo(java.util.Date iDCard2ValidTo); + @Parameter(name = "IDCardNumber") + MWF0H2 iDCardNumber(String iDCardNumber); + @Parameter(name = "IDCardPublishingCountry") + MWF0H2 iDCardPublishingCountry(String iDCardPublishingCountry); + @Parameter(name = "IDCardType") + MWF0H2 iDCardType(String iDCardType); + @Parameter(name = "IDCardValidTo") + MWF0H2 iDCardValidTo(java.util.Date iDCardValidTo); + @Parameter(name = "IncomeAverageThreeMonths") + MWF0H2 incomeAverageThreeMonths(Double incomeAverageThreeMonths); + @Parameter(name = "MaritalAssets") + MWF0H2 maritalAssets(String maritalAssets); + @Parameter(name = "MaritalState") + MWF0H2 maritalState(String maritalState); + @Parameter(name = "Name") + MWF0H2 name(String name); + @Parameter(name = "Nationality") + MWF0H2 nationality(String nationality); + @Parameter(name = "Occupation") + MWF0H2 occupation(String occupation); + @Parameter(name = "PhoneNumber") + MWF0H2 phoneNumber(String phoneNumber); + @Parameter(name = "Sex") + MWF0H2 sex(String sex); + @Parameter(name = "Surname") + MWF0H2 surname(String surname); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0H2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0H2Response.java new file mode 100644 index 0000000..6838493 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF0H2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF0H2Response { + + @Parameter(name = "AppKey") + Long appKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF104.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF104.java new file mode 100644 index 0000000..94c46bf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF104.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF104 extends MwfRequest { + + @Parameter(name = "CIF") + MWF104 cif(String cif); + @Parameter(name = "ID_Navrh") + MWF104 iDNavrh(String iDNavrh); + @Parameter(name = "NAS_Flag") + MWF104 nASFlag(Long nASFlag); + @Parameter(name = "ZnovuNacistUpominky") + MWF104 znovuNacistUpominky(Long znovuNacistUpominky); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF104Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF104Response.java new file mode 100644 index 0000000..3bdcbe8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF104Response.java @@ -0,0 +1,204 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF104Response { + + @Parameter(name = "Adresat") + String adresat(); + + @Parameter(name = "AktualniDatum") + java.util.Date aktualniDatum(); + + @Parameter(name = "CO") + String co(); + + @Parameter(name = "CP") + String cp(); + + @Parameter(name = "Ctvrt") + String ctvrt(); + + @Parameter(name = "DalsiDokladCislo") + String dalsiDokladCislo(); + + @Parameter(name = "DatumExpiraceKontaktnichUdaju") + java.util.Date datumExpiraceKontaktnichUdaju(); + + @Parameter(name = "DatumExpiracePotvrzeniStudent") + java.util.Date datumExpiracePotvrzeniStudent(); + + @Parameter(name = "DatumNarozeni") + java.util.Date datumNarozeni(); + + @Parameter(name = "DatumOtevreni") + java.util.Date datumOtevreni(); + + @Parameter(name = "DatumSouhlasu101") + java.util.Date datumSouhlasu101(); + + @Parameter(name = "DatumTiskuOS") + java.util.Date datumTiskuOS(); + + @Parameter(name = "DelikvenceAktualni") + String delikvenceAktualni(); + + @Parameter(name = "DelikvenceHistoricka") + String delikvenceHistoricka(); + + @Parameter(name = "DruheJmeno") + String druheJmeno(); + + @Parameter(name = "DruhyDokladCislo") + String druhyDokladCislo(); + + @Parameter(name = "DruhyDokladPlatnost") + java.util.Date druhyDokladPlatnost(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "InfoLimitExpres") + Double infoLimitExpres(); + + @Parameter(name = "InfoLimitExpresDoplneni") + Double infoLimitExpresDoplneni(); + + @Parameter(name = "InfoLimitExpresDoplneniUU") + String infoLimitExpresDoplneniUU(); + + @Parameter(name = "InfoLimitFlexikredit") + Double infoLimitFlexikredit(); + + @Parameter(name = "InfoLimitKonsolidace") + Double infoLimitKonsolidace(); + + @Parameter(name = "InfoLimitKreditniKarta") + Double infoLimitKreditniKarta(); + + @Parameter(name = "InfoLimitOKKarta") + Double infoLimitOKKarta(); + + @Parameter(name = "KodOM") + String kodOM(); + + @Parameter(name = "KodOMICBS") + String kodOMICBS(); + + @Parameter(name = "NezadouciKlient") + String nezadouciKlient(); + + @Parameter(name = "OKEC") + String okec(); + + @Parameter(name = "OROddil") + String oROddil(); + + @Parameter(name = "ORSoud") + String oRSoud(); + + @Parameter(name = "ORVlozka") + String oRVlozka(); + + @Parameter(name = "ObchodniJmeno") + String obchodniJmeno(); + + @Parameter(name = "Obec") + String obec(); + + @Parameter(name = "PDPoKlasifikaci") + Double pDPoKlasifikaci(); + + @Parameter(name = "PSC") + String psc(); + + @Parameter(name = "PlatnostDalsihoDokladuDo") + java.util.Date platnostDalsihoDokladuDo(); + + @Parameter(name = "PocetNedorucenychVypisuAA") + String pocetNedorucenychVypisuAA(); + + @Parameter(name = "PocetNedorucenychVypisuTA") + String pocetNedorucenychVypisuTA(); + + @Parameter(name = "Posta") + String posta(); + + @Parameter(name = "PravniForma") + String pravniForma(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "PrvniJmeno") + String prvniJmeno(); + + @Parameter(name = "RACV") + String racv(); + + @Parameter(name = "RatingPoKlasifikaci") + String ratingPoKlasifikaci(); + + @Parameter(name = "RatingScalePoKlasifikaci") + String ratingScalePoKlasifikaci(); + + @Parameter(name = "Rezidence") + String rezidence(); + + @Parameter(name = "RizikoKlientaCIS") + String rizikoKlientaCIS(); + + @Parameter(name = "RodneCislo") + String rodneCislo(); + + @Parameter(name = "SerieACisloOP") + String serieACisloOP(); + + @Parameter(name = "SpiciUcet") + String spiciUcet(); + + @Parameter(name = "Telefon") + String telefon(); + + @Parameter(name = "TelefonMobilni") + String telefonMobilni(); + + @Parameter(name = "TelefonMobilniPredvolba") + String telefonMobilniPredvolba(); + + @Parameter(name = "TelefonPredvolba") + String telefonPredvolba(); + + @Parameter(name = "TitulPred") + String titulPred(); + + @Parameter(name = "TitulZa") + String titulZa(); + + @Parameter(name = "TypDalsihoDokladu") + String typDalsihoDokladu(); + + @Parameter(name = "TypDruhehoDokladu") + String typDruhehoDokladu(); + + @Parameter(name = "TypKlienta") + String typKlienta(); + + @Parameter(name = "TypKlientaDetail") + String typKlientaDetail(); + + @Parameter(name = "Ulice") + String ulice(); + + @Parameter(name = "Vek") + Double vek(); + + @Parameter(name = "Zeme") + String zeme(); + + @Parameter(name = "ZkraceneJmeno") + String zkraceneJmeno(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF108.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF108.java new file mode 100644 index 0000000..bfb2ec6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF108.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF108 extends MwfRequest { + + @Parameter(name = "Prijmeni") + MWF108 prijmeni(String prijmeni); + @Parameter(name = "RodneCislo") + MWF108 rodneCislo(String rodneCislo); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF108Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF108Response.java new file mode 100644 index 0000000..600bfd0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF108Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF108Response { + + @Parameter(name = "Stav101") + String stav101(); + + @Parameter(name = "Text101") + String text101(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF111.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF111.java new file mode 100644 index 0000000..00745c7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF111.java @@ -0,0 +1,129 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.ApiVersion; +import cz.moneta.test.harness.support.mwf.MwfRequest; +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWF111 extends MwfRequest { + + @Parameter(name = "Adresat") + MWF111 adresat(String adresat); + @Parameter(name = "CO") + MWF111 co(String co); + @Parameter(name = "CP") + MWF111 cp(String cp); + @Parameter(name = "CisloPasu") + MWF111 cisloPasu(String cisloPasu); + @Parameter(name = "Ctvrt") + MWF111 ctvrt(String ctvrt); + @Parameter(name = "DIC") + MWF111 dic(String dic); + @Parameter(name = "DatumExpiraceKontaktnichUdaju") + MWF111 datumExpiraceKontaktnichUdaju(java.util.Date datumExpiraceKontaktnichUdaju); + @Parameter(name = "DatumPlatnostiOP") + MWF111 datumPlatnostiOP(java.util.Date datumPlatnostiOP); + @Parameter(name = "DatumPodnikaniDo") + MWF111 datumPodnikaniDo(java.util.Date datumPodnikaniDo); + @Parameter(name = "DatumPodnikaniOd") + MWF111 datumPodnikaniOd(java.util.Date datumPodnikaniOd); + @Parameter(name = "DatumZalozeniCIFu") + MWF111 datumZalozeniCIFu(java.util.Date datumZalozeniCIFu); + @Parameter(name = "DruheJmeno") + MWF111 druheJmeno(String druheJmeno); + @Parameter(name = "EMail") + MWF111 eMail(String eMail); + @Parameter(name = "EkonomickySektor") + MWF111 ekonomickySektor(String ekonomickySektor); + @Parameter(name = "Funkce") + MWF111 funkce(String funkce); + @Parameter(name = "ICO") + MWF111 ico(String ico); + @Parameter(name = "ICOHlavnihoSpolku") + MWF111 iCOHlavnihoSpolku(String iCOHlavnihoSpolku); + @Parameter(name = "InsolvencniSpravce") + MWF111 insolvencniSpravce(String insolvencniSpravce); + @Parameter(name = "JinyOsobniDoklad2Cislo") + MWF111 jinyOsobniDoklad2Cislo(String jinyOsobniDoklad2Cislo); + @Parameter(name = "JinyOsobniDoklad2Platnost") + MWF111 jinyOsobniDoklad2Platnost(java.util.Date jinyOsobniDoklad2Platnost); + @Parameter(name = "JinyOsobniDoklad2Typ") + MWF111 jinyOsobniDoklad2Typ(String jinyOsobniDoklad2Typ); + @Parameter(name = "Jmeno") + MWF111 jmeno(String jmeno); + @Parameter(name = "KodObchodnihoMista") + MWF111 kodObchodnihoMista(String kodObchodnihoMista); + @Parameter(name = "OKEC") + MWF111 okec(String okec); + @Parameter(name = "OROddil") + MWF111 oROddil(String oROddil); + @Parameter(name = "ORSoud") + MWF111 oRSoud(String oRSoud); + @Parameter(name = "ORVlozka") + MWF111 oRVlozka(String oRVlozka); + @Parameter(name = "ObchodniJmeno") + MWF111 obchodniJmeno(String obchodniJmeno); + @Parameter(name = "Obec") + MWF111 obec(String obec); + @Parameter(name = "Osloveni") + MWF111 osloveni(String osloveni); + @Parameter(name = "OsobniBanker") + MWF111 osobniBanker(String osobniBanker); + @Parameter(name = "PSC") + MWF111 psc(String psc); + @Parameter(name = "PlatnostKontaktnichUdaju") + MWF111 platnostKontaktnichUdaju(String platnostKontaktnichUdaju); + @Parameter(name = "PlatnostPasuDo") + MWF111 platnostPasuDo(java.util.Date platnostPasuDo); + @Parameter(name = "PobytCR") + MWF111 pobytCR(String pobytCR); + @Parameter(name = "PocetZamestnancu") + MWF111 pocetZamestnancu(String pocetZamestnancu); + @Parameter(name = "Posta") + MWF111 posta(String posta); + @Parameter(name = "PravniForma") + MWF111 pravniForma(String pravniForma); + @Parameter(name = "Prijmeni") + MWF111 prijmeni(String prijmeni); + @Parameter(name = "RatingKlienta") + MWF111 ratingKlienta(String ratingKlienta); + @Parameter(name = "Rezidence") + MWF111 rezidence(String rezidence); + @Parameter(name = "RodneCislo") + MWF111 rodneCislo(String rodneCislo); + @Parameter(name = "SerieACisloOP") + MWF111 serieACisloOP(String serieACisloOP); + @Parameter(name = "SocialneEkonomickaSkupina") + MWF111 socialneEkonomickaSkupina(String socialneEkonomickaSkupina); + @Parameter(name = "SpravniCelek") + MWF111 spravniCelek(String spravniCelek); + @Parameter(name = "Telefon") + MWF111 telefon(String telefon); + @Parameter(name = "TelefonDalsi") + MWF111 telefonDalsi(String telefonDalsi); + @Parameter(name = "TelefonDalsiPredvolba") + MWF111 telefonDalsiPredvolba(String telefonDalsiPredvolba); + @Parameter(name = "TelefonMobilni") + MWF111 telefonMobilni(String telefonMobilni); + @Parameter(name = "TelefonMobilniPredvolba") + MWF111 telefonMobilniPredvolba(String telefonMobilniPredvolba); + @Parameter(name = "TelefonPredvolba") + MWF111 telefonPredvolba(String telefonPredvolba); + @Parameter(name = "TitulPred") + MWF111 titulPred(String titulPred); + @Parameter(name = "TitulZa") + MWF111 titulZa(String titulZa); + @Parameter(name = "TypKlienta") + MWF111 typKlienta(String typKlienta); + @Parameter(name = "Ulice") + MWF111 ulice(String ulice); + @Parameter(name = "UlozPSCBezKontroly") + MWF111 ulozPSCBezKontroly(String ulozPSCBezKontroly); + @Parameter(name = "Urednik") + MWF111 urednik(String urednik); + @Parameter(name = "ZECO") + MWF111 zeco(String zeco); + @Parameter(name = "Zeme") + MWF111 zeme(String zeme); + @Parameter(name = "ZkraceneJmeno") + MWF111 zkraceneJmeno(String zkraceneJmeno); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF111Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF111Response.java new file mode 100644 index 0000000..a419d27 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF111Response.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWF111Response { + + @Parameter(name = "CIF") + String cif(); + @Parameter(name = "EkonomickySektor") + String ekonomickySektor(); + @Parameter(name = "IDSdeleniDatumPodnikaniDo") + Long iDSdeleniDatumPodnikaniDo(); + @Parameter(name = "IDSdeleniDatumPodnikaniOd") + Long iDSdeleniDatumPodnikaniOd(); + @Parameter(name = "IDSdeleniEmail") + Long iDSdeleniEmail(); + @Parameter(name = "IDSdeleniExpiraceKU") + Long iDSdeleniExpiraceKU(); + @Parameter(name = "IDSdeleniICOHlavnihoSpolku") + Long iDSdeleniICOHlavnihoSpolku(); + @Parameter(name = "IDSdeleniMobil") + Long iDSdeleniMobil(); + @Parameter(name = "IDUnifikovanehoKlienta") + Long iDUnifikovanehoKlienta(); + @Parameter(name = "Rezidence") + String rezidence(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF118.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF118.java new file mode 100644 index 0000000..c69322f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF118.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF118 extends MwfRequest { + + @Parameter(name = "AP") + MWF118 ap(String ap); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF118Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF118Response.java new file mode 100644 index 0000000..c3b17ca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF118Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF118Response { + + @Parameter(name = "MTS_Stav") + Long mTSStav(); + + @Parameter(name = "Stav") + String stav(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF123.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF123.java new file mode 100644 index 0000000..18300ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF123.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF123 extends MwfRequest { + + @Parameter(name = "AP") + MWF123 ap(String ap); + @Parameter(name = "NacistPuvodniZadostAnoNe") + MWF123 nacistPuvodniZadostAnoNe(String nacistPuvodniZadostAnoNe); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF123Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF123Response.java new file mode 100644 index 0000000..f35fcd0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF123Response.java @@ -0,0 +1,327 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF123Response { + + @Parameter(name = "AAAdresat") + String aAAdresat(); + + @Parameter(name = "AACO") + String aaco(); + + @Parameter(name = "AACP") + String aacp(); + + @Parameter(name = "AAObec") + String aAObec(); + + @Parameter(name = "AAPSC") + String aapsc(); + + @Parameter(name = "AAPosta") + String aAPosta(); + + @Parameter(name = "AAUlice") + String aAUlice(); + + @Parameter(name = "AAZeme") + String aAZeme(); + + @Parameter(name = "AP") + String ap(); + + @Parameter(name = "AVZamOdData") + java.util.Date aVZamOdData(); + + @Parameter(name = "AZCO") + String azco(); + + @Parameter(name = "AZCP") + String azcp(); + + @Parameter(name = "AZObec") + String aZObec(); + + @Parameter(name = "AZPSC") + String azpsc(); + + @Parameter(name = "AZUlice") + String aZUlice(); + + @Parameter(name = "CCTypFormulare") + String cCTypFormulare(); + + @Parameter(name = "CisloBU") + String cisloBU(); + + @Parameter(name = "CisloDruhyDoklad") + String cisloDruhyDoklad(); + + @Parameter(name = "CisloOP") + String cisloOP(); + + @Parameter(name = "CisloPasu") + String cisloPasu(); + + @Parameter(name = "CistyMesicPrijem") + Double cistyMesicPrijem(); + + @Parameter(name = "CistyPrijemDomacnosti") + Double cistyPrijemDomacnosti(); + + @Parameter(name = "DatumKoncePracPomeru") + java.util.Date datumKoncePracPomeru(); + + @Parameter(name = "DatumPodpisuZadosti") + java.util.Date datumPodpisuZadosti(); + + @Parameter(name = "DatumZalBU") + java.util.Date datumZalBU(); + + @Parameter(name = "DruhBU") + String druhBU(); + + @Parameter(name = "DruhBydleni") + String druhBydleni(); + + @Parameter(name = "DruhVypisu") + String druhVypisu(); + + @Parameter(name = "DruhyDoklad") + String druhyDoklad(); + + @Parameter(name = "DuvodZamitnuti") + String duvodZamitnuti(); + + @Parameter(name = "Email") + String email(); + + @Parameter(name = "EvidencniCislo") + String evidencniCislo(); + + @Parameter(name = "Heslo") + String heslo(); + + @Parameter(name = "JineMesSplatky") + Double jineMesSplatky(); + + @Parameter(name = "JmenoKrestni") + String jmenoKrestni(); + + @Parameter(name = "KodAkceFlex") + String kodAkceFlex(); + + @Parameter(name = "KodOM") + String kodOM(); + + @Parameter(name = "KodProduktu") + String kodProduktu(); + + @Parameter(name = "KodProduktuSchvaleneho") + String kodProduktuSchvaleneho(); + + @Parameter(name = "NAJZahrICO") + String nAJZahrICO(); + + @Parameter(name = "NAJZahrPSC") + String nAJZahrPSC(); + + @Parameter(name = "NAJZahrTel") + String nAJZahrTel(); + + @Parameter(name = "NAJZahrZam") + String nAJZahrZam(); + + @Parameter(name = "NAJ_ZAM_ZEME") + String najZamZeme(); + + @Parameter(name = "ObratMesic1") + String obratMesic1(); + + @Parameter(name = "ObratMesic2") + String obratMesic2(); + + @Parameter(name = "ObratMesic3") + String obratMesic3(); + + @Parameter(name = "ObratPrijem1") + Double obratPrijem1(); + + @Parameter(name = "ObratPrijem2") + Double obratPrijem2(); + + @Parameter(name = "ObratPrijem3") + Double obratPrijem3(); + + @Parameter(name = "ObratRok1") + Long obratRok1(); + + @Parameter(name = "ObratRok2") + Long obratRok2(); + + @Parameter(name = "ObratRok3") + Long obratRok3(); + + @Parameter(name = "PlatnostOPDo") + java.util.Date platnostOPDo(); + + @Parameter(name = "PlatnostPasuDo") + java.util.Date platnostPasuDo(); + + @Parameter(name = "PobytNaSoucAdreseOdRoku") + Long pobytNaSoucAdreseOdRoku(); + + @Parameter(name = "PocetVyzivovanychOsob") + Long pocetVyzivovanychOsob(); + + @Parameter(name = "PoplatkovatFlexikreditFPGenius") + Long poplatkovatFlexikreditFPGenius(); + + @Parameter(name = "PouzitaAA") + String pouzitaAA(); + + @Parameter(name = "Povolani") + String povolani(); + + @Parameter(name = "PracovniPomer") + String pracovniPomer(); + + @Parameter(name = "PredlDokladIndex") + String predlDokladIndex(); + + @Parameter(name = "PredlDokladOStudiu") + String predlDokladOStudiu(); + + @Parameter(name = "PredlDokladPrijem") + String predlDokladPrijem(); + + @Parameter(name = "PredlDokladSIPO") + String predlDokladSIPO(); + + @Parameter(name = "PredlDokladUcetNajem") + String predlDokladUcetNajem(); + + @Parameter(name = "PredlDokladVypisUcet") + String predlDokladVypisUcet(); + + @Parameter(name = "PredlDokladVyuctTelefon") + String predlDokladVyuctTelefon(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "PrimarniUrednik") + String primarniUrednik(); + + @Parameter(name = "Rezident") + String rezident(); + + @Parameter(name = "RodneCislo") + String rodneCislo(); + + @Parameter(name = "StatniPrislusnost") + String statniPrislusnost(); + + @Parameter(name = "Stav") + String stav(); + + @Parameter(name = "StavRodinny") + String stavRodinny(); + + @Parameter(name = "TACO") + String taco(); + + @Parameter(name = "TACP") + String tacp(); + + @Parameter(name = "TAObec") + String tAObec(); + + @Parameter(name = "TAPSC") + String tapsc(); + + @Parameter(name = "TAPosta") + String tAPosta(); + + @Parameter(name = "TAUlice") + String tAUlice(); + + @Parameter(name = "TAZeme") + String tAZeme(); + + @Parameter(name = "TelefonDalsi") + String telefonDalsi(); + + @Parameter(name = "TelefonDalsiPredvolba") + String telefonDalsiPredvolba(); + + @Parameter(name = "TelefonDoZamPredvolba") + String telefonDoZamPredvolba(); + + @Parameter(name = "TelefonDoZamestnani") + String telefonDoZamestnani(); + + @Parameter(name = "TelefonDomu") + String telefonDomu(); + + @Parameter(name = "TelefonDomuPredvolba") + String telefonDomuPredvolba(); + + @Parameter(name = "TelefonMobilni") + String telefonMobilni(); + + @Parameter(name = "TelefonMobilniDoZamestnani") + String telefonMobilniDoZamestnani(); + + @Parameter(name = "TelefonMobilniDoZamestnaniPredvolba") + String telefonMobilniDoZamestnaniPredvolba(); + + @Parameter(name = "TelefonMobilniPredvolba") + String telefonMobilniPredvolba(); + + @Parameter(name = "TypUhrady") + String typUhrady(); + + @Parameter(name = "UrokovaSazba") + Double urokovaSazba(); + + @Parameter(name = "UrokovaSazbaSchvaleno") + Double urokovaSazbaSchvaleno(); + + @Parameter(name = "VZamOdRoku") + Long vZamOdRoku(); + + @Parameter(name = "Vypracovat") + String vypracovat(); + + @Parameter(name = "VyseRamce") + Double vyseRamce(); + + @Parameter(name = "VyseRamceSchvaleno") + Double vyseRamceSchvaleno(); + + @Parameter(name = "Vzdelani") + String vzdelani(); + + @Parameter(name = "ZakaznikSeZvlVztahem") + String zakaznikSeZvlVztahem(); + + @Parameter(name = "ZakladDane") + Double zakladDane(); + + @Parameter(name = "Zalozit_BU") + String zalozitBU(); + + @Parameter(name = "ZamestnavatelICO") + String zamestnavatelICO(); + + @Parameter(name = "ZamestnavatelNazev") + String zamestnavatelNazev(); + + @Parameter(name = "ZdrojZadosti") + String zdrojZadosti(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF125.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF125.java new file mode 100644 index 0000000..fc78b42 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF125.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF125 extends MwfRequest { + + @Parameter(name = "AP") + MWF125 ap(String ap); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF125Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF125Response.java new file mode 100644 index 0000000..3346942 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF125Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF125Response { + + @Parameter(name = "Stav") + String stav(); + + @Parameter(name = "StavBinarni") + String stavBinarni(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF134.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF134.java new file mode 100644 index 0000000..eb6c5ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF134.java @@ -0,0 +1,86 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF134 extends MwfRequest { + + @Parameter(name = "CIF") + MWF134 cif(String cif); + @Parameter(name = "CisloBU") + MWF134 cisloBU(String cisloBU); + @Parameter(name = "DrzitelCIF") + MWF134 drzitelCIF(String drzitelCIF); + @Parameter(name = "DrzitelDatumNarozeni") + MWF134 drzitelDatumNarozeni(java.util.Date drzitelDatumNarozeni); + @Parameter(name = "DrzitelHeslo") + MWF134 drzitelHeslo(String drzitelHeslo); + @Parameter(name = "DrzitelRC") + MWF134 drzitelRC(String drzitelRC); + @Parameter(name = "DrzitelTelefon") + MWF134 drzitelTelefon(String drzitelTelefon); + @Parameter(name = "DrzitelTelefon3DSecure") + MWF134 drzitelTelefon3DSecure(String drzitelTelefon3DSecure); + @Parameter(name = "DrzitelTelefonPredcisli") + MWF134 drzitelTelefonPredcisli(String drzitelTelefonPredcisli); + @Parameter(name = "DrzitelTelefonZamestnani") + MWF134 drzitelTelefonZamestnani(String drzitelTelefonZamestnani); + @Parameter(name = "DrzitelTelefonZamestnaniPredcisli") + MWF134 drzitelTelefonZamestnaniPredcisli(String drzitelTelefonZamestnaniPredcisli); + @Parameter(name = "Heslo") + MWF134 heslo(String heslo); + @Parameter(name = "KlientJmeno") + MWF134 klientJmeno(String klientJmeno); + @Parameter(name = "KlientPrijmeni") + MWF134 klientPrijmeni(String klientPrijmeni); + @Parameter(name = "LimitBankomat") + MWF134 limitBankomat(Double limitBankomat); + @Parameter(name = "LimitObchodnik") + MWF134 limitObchodnik(Double limitObchodnik); + @Parameter(name = "MSISDN") + MWF134 msisdn(String msisdn); + @Parameter(name = "PCTTabulka") + MWF134 pCTTabulka(String pCTTabulka); + @Parameter(name = "PlasticID") + MWF134 plasticID(String plasticID); + @Parameter(name = "PoleDS") + MWF134 poleDS(String poleDS); + @Parameter(name = "TypKartySchvaleno") + MWF134 typKartySchvaleno(String typKartySchvaleno); + @Parameter(name = "VytlaceneJmeno") + MWF134 vytlaceneJmeno(String vytlaceneJmeno); + @Parameter(name = "VytlaceneJmeno2") + MWF134 vytlaceneJmeno2(String vytlaceneJmeno2); + @Parameter(name = "ZAKartaCO") + MWF134 zAKartaCO(String zAKartaCO); + @Parameter(name = "ZAKartaCP") + MWF134 zAKartaCP(String zAKartaCP); + @Parameter(name = "ZAKartaObec") + MWF134 zAKartaObec(String zAKartaObec); + @Parameter(name = "ZAKartaPSC") + MWF134 zAKartaPSC(String zAKartaPSC); + @Parameter(name = "ZAKartaPosta") + MWF134 zAKartaPosta(String zAKartaPosta); + @Parameter(name = "ZAKartaTypAdresy") + MWF134 zAKartaTypAdresy(String zAKartaTypAdresy); + @Parameter(name = "ZAKartaUlice") + MWF134 zAKartaUlice(String zAKartaUlice); + @Parameter(name = "ZAPINCO") + MWF134 zapinco(String zapinco); + @Parameter(name = "ZAPINCP") + MWF134 zapincp(String zapincp); + @Parameter(name = "ZAPINObec") + MWF134 zAPINObec(String zAPINObec); + @Parameter(name = "ZAPINPSC") + MWF134 zapinpsc(String zapinpsc); + @Parameter(name = "ZAPINPosta") + MWF134 zAPINPosta(String zAPINPosta); + @Parameter(name = "ZAPINTypAdresy") + MWF134 zAPINTypAdresy(String zAPINTypAdresy); + @Parameter(name = "ZAPINUlice") + MWF134 zAPINUlice(String zAPINUlice); + @Parameter(name = "ZamestnaniTelefon") + MWF134 zamestnaniTelefon(String zamestnaniTelefon); + @Parameter(name = "ZpusobDistribucePIN") + MWF134 zpusobDistribucePIN(String zpusobDistribucePIN); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF134Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF134Data.java new file mode 100644 index 0000000..e65900d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF134Data.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF134Data { + + private Map params; + + public MWF134Data(Map params) { + this.params = params; + } + + public String rsDoplnkovesluzby() { + return (String) params.get("RS_DOPLNKOVESLUZBY"); + } + + public java.util.Date rsDatumzalozenids() { + return (java.util.Date) params.get("RS_DATUMZALOZENIDS"); + } + + public String rsStavds() { + return (String) params.get("RS_STAVDS"); + } + + public java.util.Date rsDatumucinnosti() { + return (java.util.Date) params.get("RS_DATUMUCINNOSTI"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF134Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF134Response.java new file mode 100644 index 0000000..96b1034 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF134Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF134Response { + + @Parameter(name = "CIF") + String cif(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "VytlaceneJmeno") + String vytlaceneJmeno(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF169.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF169.java new file mode 100644 index 0000000..febd9f0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF169.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF169 extends MwfRequest { + + @Parameter(name = "CisloUctu") + MWF169 cisloUctu(String cisloUctu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF169Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF169Response.java new file mode 100644 index 0000000..c5b10c9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF169Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF169Response { + + @Parameter(name = "DisponibilniZustatek") + Double disponibilniZustatek(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF175.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF175.java new file mode 100644 index 0000000..c7e9d17 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF175.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF175 extends MwfRequest { + + @Parameter(name = "CisloUctu") + MWF175 cisloUctu(String cisloUctu); + @Parameter(name = "Kontext") + MWF175 kontext(Long kontext); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF175Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF175Response.java new file mode 100644 index 0000000..aae421e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF175Response.java @@ -0,0 +1,150 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF175Response { + + @Parameter(name = "AAAdresat") + String aAAdresat(); + + @Parameter(name = "AACO") + String aaco(); + + @Parameter(name = "AACP") + String aacp(); + + @Parameter(name = "AACtvrt") + String aACtvrt(); + + @Parameter(name = "AAObec") + String aAObec(); + + @Parameter(name = "AAPSC") + String aapsc(); + + @Parameter(name = "AAPosta") + String aAPosta(); + + @Parameter(name = "AAUlice") + String aAUlice(); + + @Parameter(name = "AAZeme") + String aAZeme(); + + @Parameter(name = "BeznyZustatek") + Double beznyZustatek(); + + @Parameter(name = "CastkaPrecerpani") + Double castkaPrecerpani(); + + @Parameter(name = "DatumOtevreni") + java.util.Date datumOtevreni(); + + @Parameter(name = "DatumOtevreniDPC") + java.util.Date datumOtevreniDPC(); + + @Parameter(name = "DatumPocatkuDebetu") + java.util.Date datumPocatkuDebetu(); + + @Parameter(name = "DatumPocatkuKreditu") + java.util.Date datumPocatkuKreditu(); + + @Parameter(name = "DatumPosledniZmeny") + java.util.Date datumPosledniZmeny(); + + @Parameter(name = "DatumSchvaleni") + java.util.Date datumSchvaleni(); + + @Parameter(name = "DatumSplaceni") + java.util.Date datumSplaceni(); + + @Parameter(name = "DatumUzavreni") + java.util.Date datumUzavreni(); + + @Parameter(name = "DisponibilniZustatek") + Double disponibilniZustatek(); + + @Parameter(name = "DruheJmeno") + String druheJmeno(); + + @Parameter(name = "Jmeno") + String jmeno(); + + @Parameter(name = "MesicniObratyCR") + Double mesicniObratyCR(); + + @Parameter(name = "MesicniObratyDB") + Double mesicniObratyDB(); + + @Parameter(name = "ObchodniMistoKod") + String obchodniMistoKod(); + + @Parameter(name = "ObchodniMistoNazev") + String obchodniMistoNazev(); + + @Parameter(name = "ObjektUveru") + String objektUveru(); + + @Parameter(name = "PausalniPoplatek") + Double pausalniPoplatek(); + + @Parameter(name = "PocetDni") + Long pocetDni(); + + @Parameter(name = "PoplatkovyPlan") + String poplatkovyPlan(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "ProduktKod") + String produktKod(); + + @Parameter(name = "ProduktNazev") + String produktNazev(); + + @Parameter(name = "SankcniSazba") + Double sankcniSazba(); + + @Parameter(name = "SankcniUrok") + Double sankcniUrok(); + + @Parameter(name = "SpecialniNabidka") + String specialniNabidka(); + + @Parameter(name = "StavRamce") + String stavRamce(); + + @Parameter(name = "TitulPred") + String titulPred(); + + @Parameter(name = "TitulZa") + String titulZa(); + + @Parameter(name = "TypKontokorentu") + String typKontokorentu(); + + @Parameter(name = "TypPausalnihoPoplatku") + String typPausalnihoPoplatku(); + + @Parameter(name = "TypPoplatkovehoPlanu") + Double typPoplatkovehoPlanu(); + + @Parameter(name = "TypPosledniZmeny") + String typPosledniZmeny(); + + @Parameter(name = "UrokZaCerpaniKontokorentu") + Double urokZaCerpaniKontokorentu(); + + @Parameter(name = "UrokovaSazba") + Double urokovaSazba(); + + @Parameter(name = "VyseCerpani") + Double vyseCerpani(); + + @Parameter(name = "VyseRamce") + Double vyseRamce(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF183.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF183.java new file mode 100644 index 0000000..6879d66 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF183.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF183 extends MwfRequest { + + @Parameter(name = "ID") + MWF183 id(Long id); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF183Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF183Response.java new file mode 100644 index 0000000..80ada96 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF183Response.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF183Response { + + @Parameter(name = "CastkaLimitu") + Double castkaLimitu(); + + @Parameter(name = "CastkaZbyvajiciVPeriode") + Double castkaZbyvajiciVPeriode(); + + @Parameter(name = "CisloUctuPlatce") + String cisloUctuPlatce(); + + @Parameter(name = "CisloUctuPrijemceInterni") + String cisloUctuPrijemceInterni(); + + @Parameter(name = "DatumPlatnostDo") + java.util.Date datumPlatnostDo(); + + @Parameter(name = "DatumPosledniPlatby") + java.util.Date datumPosledniPlatby(); + + @Parameter(name = "DatumPosledniZmeny") + java.util.Date datumPosledniZmeny(); + + @Parameter(name = "DatumPrvniProvedenePlatby") + java.util.Date datumPrvniProvedenePlatby(); + + @Parameter(name = "KodBankyPrijemce") + String kodBankyPrijemce(); + + @Parameter(name = "KodObchodnihoMistaPlatce") + String kodObchodnihoMistaPlatce(); + + @Parameter(name = "NazevUctuPlatce") + String nazevUctuPlatce(); + + @Parameter(name = "NazevUctuPrijemce") + String nazevUctuPrijemce(); + + @Parameter(name = "Perioda") + String perioda(); + + @Parameter(name = "PovolenoOd") + java.util.Date povolenoOd(); + + @Parameter(name = "Stav") + String stav(); + + @Parameter(name = "Urednik") + String urednik(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF184.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF184.java new file mode 100644 index 0000000..7aa1257 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF184.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF184 extends MwfRequest { + + @Parameter(name = "Autorizace") + MWF184 autorizace(String autorizace); + @Parameter(name = "CastkaLimitu") + MWF184 castkaLimitu(Double castkaLimitu); + @Parameter(name = "CisloUctuPlatce") + MWF184 cisloUctuPlatce(String cisloUctuPlatce); + @Parameter(name = "CisloUctuPrijemceInterni") + MWF184 cisloUctuPrijemceInterni(String cisloUctuPrijemceInterni); + @Parameter(name = "DatumPlatnostDo") + MWF184 datumPlatnostDo(java.util.Date datumPlatnostDo); + @Parameter(name = "KodBankyPrijemce") + MWF184 kodBankyPrijemce(String kodBankyPrijemce); + @Parameter(name = "KodObchodnihoMistaPlatce") + MWF184 kodObchodnihoMistaPlatce(String kodObchodnihoMistaPlatce); + @Parameter(name = "NazevUctuPrijemce") + MWF184 nazevUctuPrijemce(String nazevUctuPrijemce); + @Parameter(name = "Perioda") + MWF184 perioda(String perioda); + @Parameter(name = "PocetTransakciVPeriode") + MWF184 pocetTransakciVPeriode(Long pocetTransakciVPeriode); + @Parameter(name = "PovolenoOd") + MWF184 povolenoOd(java.util.Date povolenoOd); + @Parameter(name = "Uzivatel") + MWF184 uzivatel(String uzivatel); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF184Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF184Response.java new file mode 100644 index 0000000..1915a7b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF184Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF184Response { + + @Parameter(name = "ID") + Long id(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF186.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF186.java new file mode 100644 index 0000000..0b2b6d8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF186.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF186 extends MwfRequest { + + @Parameter(name = "ID") + MWF186 id(Long id); + @Parameter(name = "Stav") + MWF186 stav(String stav); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF186Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF186Response.java new file mode 100644 index 0000000..3a2b573 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF186Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF186Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1B4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1B4.java new file mode 100644 index 0000000..e02bcf4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1B4.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1B4 extends MwfRequest { + + @Parameter(name = "ProdPackageKey") + MWF1B4 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1B4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1B4Response.java new file mode 100644 index 0000000..88c9c7d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1B4Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1B4Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1C4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1C4.java new file mode 100644 index 0000000..74b8ff9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1C4.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1C4 extends MwfRequest { + + @Parameter(name = "ChannelId") + MWF1C4 channelId(String channelId); + @Parameter(name = "Data") + MWF1C4 data(java.util.List data); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1C4Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1C4Data.java new file mode 100644 index 0000000..3a733e4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1C4Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1C4Data { + + private Map params; + + public MWF1C4Data(Map params) { + this.params = params; + } + + public String rsAccountnumber() { + return (String) params.get("RS_ACCOUNTNUMBER"); + } + + public String rsTransferpossible() { + return (String) params.get("RS_TRANSFERPOSSIBLE"); + } + + public String rsFeeplan() { + return (String) params.get("RS_FEEPLAN"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1C4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1C4Response.java new file mode 100644 index 0000000..61d4c6c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1C4Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1C4Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F0.java new file mode 100644 index 0000000..3c0e134 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F0.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1F0 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF1F0 appKey(Long appKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F0Response.java new file mode 100644 index 0000000..b68e38e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F0Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1F0Response { + + @Parameter(name = "WorkflowInApprovalProcess") + String workflowInApprovalProcess(); + + @Parameter(name = "WorkflowState") + String workflowState(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F1.java new file mode 100644 index 0000000..4a5334c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F1.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1F1 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF1F1 appKey(Long appKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F1RWSBusinessData.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F1RWSBusinessData.java new file mode 100644 index 0000000..bda8c26 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F1RWSBusinessData.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F1RWSBusinessData { + + private Map params; + + public MWF1F1RWSBusinessData(Map params) { + this.params = params; + } + + public String rsFirstname() { + return (String) params.get("RS_FIRSTNAME"); + } + + public String rsSurname() { + return (String) params.get("RS_SURNAME"); + } + + public String rsRole() { + return (String) params.get("RS_ROLE"); + } + + public java.util.Date rsBirthnumber() { + return (java.util.Date) params.get("RS_BIRTHNUMBER"); + } + + public String rsAddresscity() { + return (String) params.get("RS_ADDRESSCITY"); + } + + public String rsAddresszipcode() { + return (String) params.get("RS_ADDRESSZIPCODE"); + } + + public String rsAddressstreetdescnumber() { + return (String) params.get("RS_ADDRESSSTREETDESCNUMBER"); + } + + public String rsAddressstreet() { + return (String) params.get("RS_ADDRESSSTREET"); + } + + public String rsAddresscountry() { + return (String) params.get("RS_ADDRESSCOUNTRY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F1Response.java new file mode 100644 index 0000000..4a9c559 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F1Response.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1F1Response { + + @Parameter(name = "ArtificianPersonAddressCity") + String artificianPersonAddressCity(); + + @Parameter(name = "ArtificianPersonAddressCountry") + String artificianPersonAddressCountry(); + + @Parameter(name = "ArtificianPersonAddressDescriptionNumber") + String artificianPersonAddressDescriptionNumber(); + + @Parameter(name = "ArtificianPersonAddressStreet") + String artificianPersonAddressStreet(); + + @Parameter(name = "ArtificianPersonAddressZIPCode") + String artificianPersonAddressZIPCode(); + + @Parameter(name = "ArtificianPersonBusinesName") + String artificianPersonBusinesName(); + + @Parameter(name = "Ico") + String ico(); + + @Parameter(name = "InstPtKey") + String instPtKey(); + + @Parameter(name = "RWS_BusinessData") + java.util.List rWSBusinessData(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2.java new file mode 100644 index 0000000..c963194 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1F2 extends MwfRequest { + + @Parameter(name = "BranchId") + MWF1F2 branchId(String branchId); + @Parameter(name = "ChannelId") + MWF1F2 channelId(String channelId); + @Parameter(name = "ClientType") + MWF1F2 clientType(String clientType); + @Parameter(name = "Context") + MWF1F2 context(String context); + @Parameter(name = "Ico") + MWF1F2 ico(String ico); + @Parameter(name = "ProductClass") + MWF1F2 productClass(String productClass); + @Parameter(name = "RWS_ApplicationClientDetail") + MWF1F2 rWSApplicationClientDetail(java.util.List rWSApplicationClientDetail); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2RWSApplicationClientDetail.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2RWSApplicationClientDetail.java new file mode 100644 index 0000000..391d959 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2RWSApplicationClientDetail.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F2RWSApplicationClientDetail { + + private Map params; + + public MWF1F2RWSApplicationClientDetail(Map params) { + this.params = params; + } + + public String rsCif() { + return (String) params.get("RS_CIF"); + } + + public String rsRc() { + return (String) params.get("RS_RC"); + } + + public Double rsParticipation() { + return (Double) params.get("RS_PARTICIPATION"); + } + + public Double rsDepositamount() { + return (Double) params.get("RS_DEPOSITAMOUNT"); + } + + public Long rsInstptkey() { + return (Long) params.get("RS_INSTPTKEY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2RWSShortApps.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2RWSShortApps.java new file mode 100644 index 0000000..789d2b9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2RWSShortApps.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F2RWSShortApps { + + private Map params; + + public MWF1F2RWSShortApps(Map params) { + this.params = params; + } + + public String rsAppkey() { + return (String) params.get("RS_APPKEY"); + } + + public String rsProductclass() { + return (String) params.get("RS_PRODUCTCLASS"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2Response.java new file mode 100644 index 0000000..0869bdb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F2Response.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1F2Response { + + @Parameter(name = "InstPtKey") + Long instPtKey(); + + @Parameter(name = "KulKey") + Long kulKey(); + + @Parameter(name = "ProcessResult") + String processResult(); + + @Parameter(name = "RWS_ApplicationClientDetail") + java.util.List rWSApplicationClientDetail(); + + @Parameter(name = "RWS_ShortApps") + java.util.List rWSShortApps(); + + @Parameter(name = "WfId") + String wfId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F4.java new file mode 100644 index 0000000..d0ce759 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F4.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1F4 extends MwfRequest { + + @Parameter(name = "TOKEN_ID") + MWF1F4 tokenId(String tokenId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F4Response.java new file mode 100644 index 0000000..27e3abf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F4Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1F4Response { + + @Parameter(name = "SESSION_RESULT_CODE") + Long sessionResultCode(); + + @Parameter(name = "SESSION_RESULT_TEXT") + String sessionResultText(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5.java new file mode 100644 index 0000000..d3b468b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1F5 extends MwfRequest { + + @Parameter(name = "CLIENT_ACTION") + MWF1F5 clientAction(String clientAction); + @Parameter(name = "DEFAULT_SET") + MWF1F5 defaultSet(String defaultSet); + @Parameter(name = "ID_OM") + MWF1F5 idOm(String idOm); + @Parameter(name = "PARAM_IN") + MWF1F5 paramIn(java.util.List paramIn); + @Parameter(name = "SERVER_ACTION") + MWF1F5 serverAction(String serverAction); + @Parameter(name = "SESSION_NAME") + MWF1F5 sessionName(String sessionName); + @Parameter(name = "SESSION_RESULT_TEXT") + MWF1F5 sessionResultText(String sessionResultText); + @Parameter(name = "SESSION_TTL_IN_MINUTES") + MWF1F5 sessionTtlInMinutes(Long sessionTtlInMinutes); + @Parameter(name = "SSO_ID") + MWF1F5 ssoId(String ssoId); + @Parameter(name = "TASK_GROUP_IN") + MWF1F5 taskGroupIn(java.util.List taskGroupIn); + @Parameter(name = "TASK_IN") + MWF1F5 taskIn(java.util.List taskIn); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5ParamIn.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5ParamIn.java new file mode 100644 index 0000000..75a8bb4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5ParamIn.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F5ParamIn { + + private Map params; + + public MWF1F5ParamIn(Map params) { + this.params = params; + } + + public String rsParamName() { + return (String) params.get("RS_PARAM_NAME"); + } + + public String rsParamTaskId() { + return (String) params.get("RS_PARAM_TASK_ID"); + } + + public String rsParamValue() { + return (String) params.get("RS_PARAM_VALUE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5ParamOut.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5ParamOut.java new file mode 100644 index 0000000..9976fc3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5ParamOut.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F5ParamOut { + + private Map params; + + public MWF1F5ParamOut(Map params) { + this.params = params; + } + + public String rsParamName() { + return (String) params.get("RS_PARAM_NAME"); + } + + public String rsParamTaskId() { + return (String) params.get("RS_PARAM_TASK_ID"); + } + + public String rsParamValue() { + return (String) params.get("RS_PARAM_VALUE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5Response.java new file mode 100644 index 0000000..8c7cfcb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5Response.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1F5Response { + + @Parameter(name = "CLIENT_ACTION") + String clientAction(); + + @Parameter(name = "PARAM_OUT") + java.util.List paramOut(); + + @Parameter(name = "SERVER_ACTION") + String serverAction(); + + @Parameter(name = "SESSION_NAME") + String sessionName(); + + @Parameter(name = "SESSION_RESULT_CODE") + Long sessionResultCode(); + + @Parameter(name = "SESSION_RESULT_DESC") + String sessionResultDesc(); + + @Parameter(name = "TASK_GROUP_OUT") + java.util.List taskGroupOut(); + + @Parameter(name = "TASK_OUT") + java.util.List taskOut(); + + @Parameter(name = "TOKEN_ID") + String tokenId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskGroupIn.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskGroupIn.java new file mode 100644 index 0000000..005f666 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskGroupIn.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F5TaskGroupIn { + + private Map params; + + public MWF1F5TaskGroupIn(Map params) { + this.params = params; + } + + public String rsTaskGroupType() { + return (String) params.get("RS_TASK_GROUP_TYPE"); + } + + public String rsTaskGroupId() { + return (String) params.get("RS_TASK_GROUP_ID"); + } + + public String rsTaskGroupName() { + return (String) params.get("RS_TASK_GROUP_NAME"); + } + + public String rsTaskGroupSequenceMode() { + return (String) params.get("RS_TASK_GROUP_SEQUENCE_MODE"); + } + + public String rsTaskGroupDocumentUrl() { + return (String) params.get("RS_TASK_GROUP_DOCUMENT_URL"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskGroupOut.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskGroupOut.java new file mode 100644 index 0000000..39340e4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskGroupOut.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F5TaskGroupOut { + + private Map params; + + public MWF1F5TaskGroupOut(Map params) { + this.params = params; + } + + public String rsTaskGroupType() { + return (String) params.get("RS_TASK_GROUP_TYPE"); + } + + public String rsTaskGroupId() { + return (String) params.get("RS_TASK_GROUP_ID"); + } + + public String rsTaskGroupName() { + return (String) params.get("RS_TASK_GROUP_NAME"); + } + + public String rsTaskGroupSequenceMode() { + return (String) params.get("RS_TASK_GROUP_SEQUENCE_MODE"); + } + + public String rsTaskGroupDocumentUrl() { + return (String) params.get("RS_TASK_GROUP_DOCUMENT_URL"); + } + + public String rsTaskGroupSrcDocumentUrl() { + return (String) params.get("RS_TASK_GROUP_SRC_DOCUMENT_URL"); + } + + public String rsTaskGroupFltDocumentUrl() { + return (String) params.get("RS_TASK_GROUP_FLT_DOCUMENT_URL"); + } + + public Long rsTaskGroupResultCode() { + return (Long) params.get("RS_TASK_GROUP_RESULT_CODE"); + } + + public String rsTaskGroupResultText() { + return (String) params.get("RS_TASK_GROUP_RESULT_TEXT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskIn.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskIn.java new file mode 100644 index 0000000..4bd4013 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskIn.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F5TaskIn { + + private Map params; + + public MWF1F5TaskIn(Map params) { + this.params = params; + } + + public String rsTaskId() { + return (String) params.get("RS_TASK_ID"); + } + + public String rsTaskTaskGroupId() { + return (String) params.get("RS_TASK_TASK_GROUP_ID"); + } + + public Long rsTaskWidth() { + return (Long) params.get("RS_TASK_WIDTH"); + } + + public Long rsTaskHeight() { + return (Long) params.get("RS_TASK_HEIGHT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskOut.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskOut.java new file mode 100644 index 0000000..f280559 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F5TaskOut.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F5TaskOut { + + private Map params; + + public MWF1F5TaskOut(Map params) { + this.params = params; + } + + public String rsTaskId() { + return (String) params.get("RS_TASK_ID"); + } + + public String rsTaskTaskGroupId() { + return (String) params.get("RS_TASK_TASK_GROUP_ID"); + } + + public Long rsTaskResultCode() { + return (Long) params.get("RS_TASK_RESULT_CODE"); + } + + public String rsTaskResultText() { + return (String) params.get("RS_TASK_RESULT_TEXT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6.java new file mode 100644 index 0000000..bf2ed29 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1F6 extends MwfRequest { + + @Parameter(name = "TOKEN_ID") + MWF1F6 tokenId(String tokenId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6ParamOut.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6ParamOut.java new file mode 100644 index 0000000..7992ef4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6ParamOut.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F6ParamOut { + + private Map params; + + public MWF1F6ParamOut(Map params) { + this.params = params; + } + + public String rsParamName() { + return (String) params.get("RS_PARAM_NAME"); + } + + public String rsParamTaskId() { + return (String) params.get("RS_PARAM_TASK_ID"); + } + + public String rsParamValue() { + return (String) params.get("RS_PARAM_VALUE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6Response.java new file mode 100644 index 0000000..bb18286 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6Response.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1F6Response { + + @Parameter(name = "CLIENT_ACTION") + String clientAction(); + + @Parameter(name = "PARAM_OUT") + java.util.List paramOut(); + + @Parameter(name = "SERVER_ACTION") + String serverAction(); + + @Parameter(name = "SESSION_NAME") + String sessionName(); + + @Parameter(name = "SESSION_RESULT_CODE") + Long sessionResultCode(); + + @Parameter(name = "SESSION_RESULT_DESC") + String sessionResultDesc(); + + @Parameter(name = "SSO_ID") + String ssoId(); + + @Parameter(name = "TASK_GROUP_OUT") + java.util.List taskGroupOut(); + + @Parameter(name = "TASK_OUT") + java.util.List taskOut(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6TaskGroupOut.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6TaskGroupOut.java new file mode 100644 index 0000000..0b0a897 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6TaskGroupOut.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F6TaskGroupOut { + + private Map params; + + public MWF1F6TaskGroupOut(Map params) { + this.params = params; + } + + public String rsTaskGroupType() { + return (String) params.get("RS_TASK_GROUP_TYPE"); + } + + public String rsTaskGroupId() { + return (String) params.get("RS_TASK_GROUP_ID"); + } + + public String rsTaskGroupName() { + return (String) params.get("RS_TASK_GROUP_NAME"); + } + + public String rsTaskGroupSequenceMode() { + return (String) params.get("RS_TASK_GROUP_SEQUENCE_MODE"); + } + + public String rsTaskGroupDocumentUrl() { + return (String) params.get("RS_TASK_GROUP_DOCUMENT_URL"); + } + + public String rsTaskGroupSrcDocumentUrl() { + return (String) params.get("RS_TASK_GROUP_SRC_DOCUMENT_URL"); + } + + public String rsTaskGroupFltDocumentUrl() { + return (String) params.get("RS_TASK_GROUP_FLT_DOCUMENT_URL"); + } + + public Long rsTaskGroupResultCode() { + return (Long) params.get("RS_TASK_GROUP_RESULT_CODE"); + } + + public String rsTaskGroupResultText() { + return (String) params.get("RS_TASK_GROUP_RESULT_TEXT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6TaskOut.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6TaskOut.java new file mode 100644 index 0000000..55992db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1F6TaskOut.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1F6TaskOut { + + private Map params; + + public MWF1F6TaskOut(Map params) { + this.params = params; + } + + public String rsTaskId() { + return (String) params.get("RS_TASK_ID"); + } + + public String rsTaskTaskGroupId() { + return (String) params.get("RS_TASK_TASK_GROUP_ID"); + } + + public Long rsTaskResultCode() { + return (Long) params.get("RS_TASK_RESULT_CODE"); + } + + public String rsTaskResultText() { + return (String) params.get("RS_TASK_RESULT_TEXT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H1.java new file mode 100644 index 0000000..cd96fb9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H1.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1H1 extends MwfRequest { + + @Parameter(name = "CNL_ID") + MWF1H1 cnlId(String cnlId); + @Parameter(name = "CONSULTANT_EMPR_ICO") + MWF1H1 consultantEmprIco(String consultantEmprIco); + @Parameter(name = "CONSULTANT_EMPR_NAME") + MWF1H1 consultantEmprName(String consultantEmprName); + @Parameter(name = "CONSULTANT_ID") + MWF1H1 consultantId(String consultantId); + @Parameter(name = "CONSULTANT_MTS_ID") + MWF1H1 consultantMtsId(String consultantMtsId); + @Parameter(name = "DOC_INST_KEY") + MWF1H1 docInstKey(Long docInstKey); + @Parameter(name = "EMP_PROCESS_ROLE_ID") + MWF1H1 empProcessRoleId(String empProcessRoleId); + @Parameter(name = "EMP_ROLE_ID") + MWF1H1 empRoleId(String empRoleId); + @Parameter(name = "EMP_ROLE_KEY") + MWF1H1 empRoleKey(Long empRoleKey); + @Parameter(name = "EMP_SSO") + MWF1H1 empSso(String empSso); + @Parameter(name = "FAMILY_NAME") + MWF1H1 familyName(String familyName); + @Parameter(name = "FIRST_NAME") + MWF1H1 firstName(String firstName); + @Parameter(name = "POS_ID") + MWF1H1 posId(String posId); + @Parameter(name = "PRIM_FLAG") + MWF1H1 primFlag(Long primFlag); + @Parameter(name = "PRODPKG_KEY") + MWF1H1 prodpkgKey(Long prodpkgKey); + @Parameter(name = "SALESMAN_STAMP_FLAG") + MWF1H1 salesmanStampFlag(Long salesmanStampFlag); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H1Response.java new file mode 100644 index 0000000..5d63b84 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H1Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1H1Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H7.java new file mode 100644 index 0000000..4fa325c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H7.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1H7 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWF1H7 appKey(Long appKey); + @Parameter(name = "APP_SET_KEY") + MWF1H7 appSetKey(Long appSetKey); + @Parameter(name = "WF_ID") + MWF1H7 wfId(String wfId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H7Response.java new file mode 100644 index 0000000..4991867 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1H7Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1H7Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7.java new file mode 100644 index 0000000..4863a04 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1I7 extends MwfRequest { + + @Parameter(name = "AppsKey") + MWF1I7 appsKey(java.util.List appsKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7AppsKey.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7AppsKey.java new file mode 100644 index 0000000..50a65e3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7AppsKey.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF1I7AppsKey implements MwfData { + + private Map params = new HashMap<>(); + + private MWF1I7AppsKey() {} + + public static MWF1I7AppsKey builder() { + return new MWF1I7AppsKey(); + } + + public MWF1I7AppsKey rsAppKey(Long rsAppKey) { + params.put("RS_APP_KEY", rsAppKey); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7AppsState.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7AppsState.java new file mode 100644 index 0000000..c86383d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7AppsState.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF1I7AppsState { + + private Map params; + + public MWF1I7AppsState(Map params) { + this.params = params; + } + + public Long rsAppKey() { + return (Long) params.get("RS_APP_KEY"); + } + + public String rsAppState() { + return (String) params.get("RS_APP_STATE"); + } + + public String rsAppStateUfo() { + return (String) params.get("RS_APP_STATE_UFO"); + } + + public String rsAppStateAdc() { + return (String) params.get("RS_APP_STATE_ADC"); + } + + public String rsAppStateId() { + return (String) params.get("RS_APP_STATE_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7Response.java new file mode 100644 index 0000000..35697c1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1I7Response { + + @Parameter(name = "AppsState") + java.util.List appsState(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I9.java new file mode 100644 index 0000000..95534de --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I9.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF1I9 extends MwfRequest { + + @Parameter(name = "DepositOriginIdentifier") + MWF1I9 depositOriginIdentifier(String depositOriginIdentifier); + @Parameter(name = "PrevailingAccTrans") + MWF1I9 prevailingAccTrans(String prevailingAccTrans); + @Parameter(name = "ProdPackageKey") + MWF1I9 prodPackageKey(Long prodPackageKey); + @Parameter(name = "SSO") + MWF1I9 sso(String sso); + @Parameter(name = "TurnOnAccount") + MWF1I9 turnOnAccount(String turnOnAccount); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I9Response.java new file mode 100644 index 0000000..84f8d0c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF1I9Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF1I9Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF235.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF235.java new file mode 100644 index 0000000..c4e28c4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF235.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF235 extends MwfRequest { + + @Parameter(name = "CisloKarty") + MWF235 cisloKarty(Long cisloKarty); + @Parameter(name = "DruhKarty") + MWF235 druhKarty(String druhKarty); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF235Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF235Data.java new file mode 100644 index 0000000..5850d49 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF235Data.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF235Data { + + private Map params; + + public MWF235Data(Map params) { + this.params = params; + } + + public Double rsCastka() { + return (Double) params.get("RS_CASTKA"); + } + + public java.util.Date rsDatumblokace() { + return (java.util.Date) params.get("RS_DATUMBLOKACE"); + } + + public String rsDuvod() { + return (String) params.get("RS_DUVOD"); + } + + public Long rsPoradovecisloblokace() { + return (Long) params.get("RS_PORADOVECISLOBLOKACE"); + } + + public String rsTransakceprijatazamitnuta() { + return (String) params.get("RS_TRANSAKCEPRIJATAZAMITNUTA"); + } + + public String rsTypplatby() { + return (String) params.get("RS_TYPPLATBY"); + } + + public Long rsZbyvajicidnyblokace() { + return (Long) params.get("RS_ZBYVAJICIDNYBLOKACE"); + } + + public Double rsCastkadual() { + return (Double) params.get("RS_CASTKADUAL"); + } + + public java.util.Date rsCasblokace() { + return (java.util.Date) params.get("RS_CASBLOKACE"); + } + + public String rsPopisblokace() { + return (String) params.get("RS_POPISBLOKACE"); + } + + public String rsTypautorizace() { + return (String) params.get("RS_TYPAUTORIZACE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF235Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF235Response.java new file mode 100644 index 0000000..b2cbc23 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF235Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF235Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF294.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF294.java new file mode 100644 index 0000000..e992867 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF294.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF294 extends MwfRequest { + + @Parameter(name = "AP") + MWF294 ap(String ap); + @Parameter(name = "BeznyUcet") + MWF294 beznyUcet(String beznyUcet); + @Parameter(name = "CIF") + MWF294 cif(String cif); + @Parameter(name = "Cache") + MWF294 cache(String cache); + @Parameter(name = "CisloUU") + MWF294 cisloUU(String cisloUU); + @Parameter(name = "ClientID") + MWF294 clientID(String clientID); + @Parameter(name = "DatumPodpisuSmlouvy") + MWF294 datumPodpisuSmlouvy(java.util.Date datumPodpisuSmlouvy); + @Parameter(name = "MTS_Stav") + MWF294 mTSStav(Long mTSStav); + @Parameter(name = "RodneCislo") + MWF294 rodneCislo(String rodneCislo); + @Parameter(name = "Stav") + MWF294 stav(String stav); + @Parameter(name = "ZpusobPodpisu") + MWF294 zpusobPodpisu(String zpusobPodpisu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF294Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF294Response.java new file mode 100644 index 0000000..bd56950 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF294Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF294Response { + + @Parameter(name = "MTS_ZadostNalezena") + Boolean mTSZadostNalezena(); + + @Parameter(name = "RequestID") + String requestID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF29D.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF29D.java new file mode 100644 index 0000000..8f906b5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF29D.java @@ -0,0 +1,94 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF29D extends MwfRequest { + + @Parameter(name = "ATTR10_DT") + MWF29D attr10Dt(String attr10Dt); + @Parameter(name = "ATTR10_NAME") + MWF29D attr10Name(String attr10Name); + @Parameter(name = "ATTR10_VALUE") + MWF29D attr10Value(String attr10Value); + @Parameter(name = "ATTR1_DT") + MWF29D attr1Dt(String attr1Dt); + @Parameter(name = "ATTR1_NAME") + MWF29D attr1Name(String attr1Name); + @Parameter(name = "ATTR1_VALUE") + MWF29D attr1Value(String attr1Value); + @Parameter(name = "ATTR2_DT") + MWF29D attr2Dt(String attr2Dt); + @Parameter(name = "ATTR2_NAME") + MWF29D attr2Name(String attr2Name); + @Parameter(name = "ATTR2_VALUE") + MWF29D attr2Value(String attr2Value); + @Parameter(name = "ATTR3_DT") + MWF29D attr3Dt(String attr3Dt); + @Parameter(name = "ATTR3_NAME") + MWF29D attr3Name(String attr3Name); + @Parameter(name = "ATTR3_VALUE") + MWF29D attr3Value(String attr3Value); + @Parameter(name = "ATTR4_DT") + MWF29D attr4Dt(String attr4Dt); + @Parameter(name = "ATTR4_NAME") + MWF29D attr4Name(String attr4Name); + @Parameter(name = "ATTR4_VALUE") + MWF29D attr4Value(String attr4Value); + @Parameter(name = "ATTR5_DT") + MWF29D attr5Dt(String attr5Dt); + @Parameter(name = "ATTR5_NAME") + MWF29D attr5Name(String attr5Name); + @Parameter(name = "ATTR5_VALUE") + MWF29D attr5Value(String attr5Value); + @Parameter(name = "ATTR6_DT") + MWF29D attr6Dt(String attr6Dt); + @Parameter(name = "ATTR6_NAME") + MWF29D attr6Name(String attr6Name); + @Parameter(name = "ATTR6_VALUE") + MWF29D attr6Value(String attr6Value); + @Parameter(name = "ATTR7_DT") + MWF29D attr7Dt(String attr7Dt); + @Parameter(name = "ATTR7_NAME") + MWF29D attr7Name(String attr7Name); + @Parameter(name = "ATTR7_VALUE") + MWF29D attr7Value(String attr7Value); + @Parameter(name = "ATTR8_DT") + MWF29D attr8Dt(String attr8Dt); + @Parameter(name = "ATTR8_NAME") + MWF29D attr8Name(String attr8Name); + @Parameter(name = "ATTR8_VALUE") + MWF29D attr8Value(String attr8Value); + @Parameter(name = "ATTR9_DT") + MWF29D attr9Dt(String attr9Dt); + @Parameter(name = "ATTR9_NAME") + MWF29D attr9Name(String attr9Name); + @Parameter(name = "ATTR9_VALUE") + MWF29D attr9Value(String attr9Value); + @Parameter(name = "Data") + MWF29D data(java.util.List data); + @Parameter(name = "ISNULL1") + MWF29D isnull1(Long isnull1); + @Parameter(name = "ISNULL10") + MWF29D isnull10(Long isnull10); + @Parameter(name = "ISNULL2") + MWF29D isnull2(Long isnull2); + @Parameter(name = "ISNULL3") + MWF29D isnull3(Long isnull3); + @Parameter(name = "ISNULL4") + MWF29D isnull4(Long isnull4); + @Parameter(name = "ISNULL5") + MWF29D isnull5(Long isnull5); + @Parameter(name = "ISNULL6") + MWF29D isnull6(Long isnull6); + @Parameter(name = "ISNULL7") + MWF29D isnull7(Long isnull7); + @Parameter(name = "ISNULL8") + MWF29D isnull8(Long isnull8); + @Parameter(name = "ISNULL9") + MWF29D isnull9(Long isnull9); + @Parameter(name = "NEW_VERSION") + MWF29D newVersion(Long newVersion); + @Parameter(name = "ROLLBACK_LEVEL") + MWF29D rollbackLevel(Long rollbackLevel); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF29DData.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF29DData.java new file mode 100644 index 0000000..1896707 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF29DData.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF29DData implements MwfData { + + private Map params = new HashMap<>(); + + private MWF29DData() {} + + public static MWF29DData builder() { + return new MWF29DData(); + } + + public MWF29DData rsCmId(String rsCmId) { + params.put("RS_CM_ID", rsCmId); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF29DResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF29DResponse.java new file mode 100644 index 0000000..dcdf499 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF29DResponse.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF29DResponse { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Index") + Long index(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A0.java new file mode 100644 index 0000000..c8682d8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A0.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2A0 extends MwfRequest { + + @Parameter(name = "IdZadosti") + MWF2A0 idZadosti(String idZadosti); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A0Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A0Data.java new file mode 100644 index 0000000..fc3d07a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A0Data.java @@ -0,0 +1,77 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF2A0Data { + + private Map params; + + public MWF2A0Data(Map params) { + this.params = params; + } + + public String rsCmId() { + return (String) params.get("RS_CM_ID"); + } + + public String rsItemtype() { + return (String) params.get("RS_ITEMTYPE"); + } + + public String rsSemanticType() { + return (String) params.get("RS_SEMANTIC_TYPE"); + } + + public String rsCrtUsr() { + return (String) params.get("RS_CRT_USR"); + } + + public java.util.Date rsCrtTime() { + return (java.util.Date) params.get("RS_CRT_TIME"); + } + + public String rsChgUsr() { + return (String) params.get("RS_CHG_USR"); + } + + public java.util.Date rsChgTime() { + return (java.util.Date) params.get("RS_CHG_TIME"); + } + + public String rsChckoutUsr() { + return (String) params.get("RS_CHCKOUT_USR"); + } + + public java.util.Date rsChckoutTime() { + return (java.util.Date) params.get("RS_CHCKOUT_TIME"); + } + + public String rsBinPartId() { + return (String) params.get("RS_BIN_PART_ID"); + } + + public String rsBinPartVersion() { + return (String) params.get("RS_BIN_PART_VERSION"); + } + + public String rsIdzadosti() { + return (String) params.get("RS_IDZADOSTI"); + } + + public Long rsTypdokladu() { + return (Long) params.get("RS_TYPDOKLADU"); + } + + public Long rsKategoriedokladu() { + return (Long) params.get("RS_KATEGORIEDOKLADU"); + } + + public String rsZdrojdokumentu() { + return (String) params.get("RS_ZDROJDOKUMENTU"); + } + + public String rsCmUrl() { + return (String) params.get("RS_CM_URL"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A0Response.java new file mode 100644 index 0000000..fbbbc4d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A0Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2A0Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A3.java new file mode 100644 index 0000000..267614e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A3.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2A3 extends MwfRequest { + + @Parameter(name = "EMPLOYER_ICO") + MWF2A3 employerIco(String employerIco); + @Parameter(name = "EMPLOYMENT_TYPE") + MWF2A3 employmentType(String employmentType); + @Parameter(name = "RC_NUMBER") + MWF2A3 rcNumber(String rcNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A3Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A3Data.java new file mode 100644 index 0000000..a31fe68 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A3Data.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF2A3Data { + + private Map params; + + public MWF2A3Data(Map params) { + this.params = params; + } + + public String rsRecipientAccount() { + return (String) params.get("RS_RECIPIENT_ACCOUNT"); + } + + public String rsRecipientBankCode() { + return (String) params.get("RS_RECIPIENT_BANK_CODE"); + } + + public String rsAmount() { + return (String) params.get("RS_AMOUNT"); + } + + public String rsPayerAccount() { + return (String) params.get("RS_PAYER_ACCOUNT"); + } + + public String rsPayerBankCode() { + return (String) params.get("RS_PAYER_BANK_CODE"); + } + + public String rsPayerAccountName() { + return (String) params.get("RS_PAYER_ACCOUNT_NAME"); + } + + public String rsPayerEmprId() { + return (String) params.get("RS_PAYER_EMPR_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A3Response.java new file mode 100644 index 0000000..02587e7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2A3Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2A3Response { + + @Parameter(name = "ACCOUNT_INCOME_USE") + String accountIncomeUse(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "NET_INCOME_PER_3_MONTHS") + Double netIncomePer3Months(); + + @Parameter(name = "NUMBER_OF_INCOMES") + Long numberOfIncomes(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2C0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2C0.java new file mode 100644 index 0000000..4f987f2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2C0.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2C0 extends MwfRequest { + + @Parameter(name = "AccountNumber") + MWF2C0 accountNumber(String accountNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2C0Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2C0Data.java new file mode 100644 index 0000000..256f678 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2C0Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF2C0Data { + + private Map params; + + public MWF2C0Data(Map params) { + this.params = params; + } + + public String rsProductid() { + return (String) params.get("RS_PRODUCTID"); + } + + public String rsProducttype() { + return (String) params.get("RS_PRODUCTTYPE"); + } + + public String rsFeeplan() { + return (String) params.get("RS_FEEPLAN"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2C0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2C0Response.java new file mode 100644 index 0000000..50c5437 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2C0Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2C0Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DA.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DA.java new file mode 100644 index 0000000..70a0c40 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DA.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2DA extends MwfRequest { + + @Parameter(name = "CardInstanceNumber") + MWF2DA cardInstanceNumber(String cardInstanceNumber); + @Parameter(name = "CardTokenFilterByStatusCodeExcept") + MWF2DA cardTokenFilterByStatusCodeExcept(String cardTokenFilterByStatusCodeExcept); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DAData.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DAData.java new file mode 100644 index 0000000..47c4240 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DAData.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF2DAData { + + private Map params; + + public MWF2DAData(Map params) { + this.params = params; + } + + public String rsCardtokenrefid() { + return (String) params.get("RS_CARDTOKENREFID"); + } + + public String rsCardtokennumber() { + return (String) params.get("RS_CARDTOKENNUMBER"); + } + + public String rsCardtokennumbermask() { + return (String) params.get("RS_CARDTOKENNUMBERMASK"); + } + + public java.util.Date rsCardtokencreatedate() { + return (java.util.Date) params.get("RS_CARDTOKENCREATEDATE"); + } + + public java.util.Date rsCardtokenexpirationdate() { + return (java.util.Date) params.get("RS_CARDTOKENEXPIRATIONDATE"); + } + + public String rsCardtokenstatuscode() { + return (String) params.get("RS_CARDTOKENSTATUSCODE"); + } + + public String rsCardtokendeviceid() { + return (String) params.get("RS_CARDTOKENDEVICEID"); + } + + public String rsCardtokendevicename() { + return (String) params.get("RS_CARDTOKENDEVICENAME"); + } + + public String rsCardtokendevicetype() { + return (String) params.get("RS_CARDTOKENDEVICETYPE"); + } + + public String rsCardtokenwalletid() { + return (String) params.get("RS_CARDTOKENWALLETID"); + } + + public String rsCardtokenrequestorid() { + return (String) params.get("RS_CARDTOKENREQUESTORID"); + } + + public String rsCardtokenpanrefid() { + return (String) params.get("RS_CARDTOKENPANREFID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DAResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DAResponse.java new file mode 100644 index 0000000..eec1187 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DAResponse.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2DAResponse { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "ResponseStatusFlag") + String responseStatusFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DC.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DC.java new file mode 100644 index 0000000..1999416 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DC.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2DC extends MwfRequest { + + @Parameter(name = "CardInstanceNumber") + MWF2DC cardInstanceNumber(String cardInstanceNumber); + @Parameter(name = "CardTokenRequestDate") + MWF2DC cardTokenRequestDate(java.util.Date cardTokenRequestDate); + @Parameter(name = "CardTokenRequestStatusFlag") + MWF2DC cardTokenRequestStatusFlag(String cardTokenRequestStatusFlag); + @Parameter(name = "CardTokenWalletId") + MWF2DC cardTokenWalletId(String cardTokenWalletId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DCResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DCResponse.java new file mode 100644 index 0000000..b865e97 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DCResponse.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2DCResponse { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DD.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DD.java new file mode 100644 index 0000000..4169b44 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DD.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2DD extends MwfRequest { + + @Parameter(name = "CardInstanceNumber") + MWF2DD cardInstanceNumber(String cardInstanceNumber); + @Parameter(name = "CardTokenRefId") + MWF2DD cardTokenRefId(String cardTokenRefId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DDResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DDResponse.java new file mode 100644 index 0000000..3565a67 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2DDResponse.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2DDResponse { + + @Parameter(name = "ResponseStatusFlag") + String responseStatusFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2F3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2F3.java new file mode 100644 index 0000000..51a8f37 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2F3.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2F3 extends MwfRequest { + + @Parameter(name = "CIF") + MWF2F3 cif(String cif); + @Parameter(name = "CompanyName") + MWF2F3 companyName(String companyName); + @Parameter(name = "Date") + MWF2F3 date(java.util.Date date); + @Parameter(name = "DigitalSignatureIdentity") + MWF2F3 digitalSignatureIdentity(String digitalSignatureIdentity); + @Parameter(name = "GeneratedDocumentID") + MWF2F3 generatedDocumentID(String generatedDocumentID); + @Parameter(name = "ICO") + MWF2F3 ico(String ico); + @Parameter(name = "IdKlienta") + MWF2F3 idKlienta(String idKlienta); + @Parameter(name = "UserBirthDate") + MWF2F3 userBirthDate(java.util.Date userBirthDate); + @Parameter(name = "UserFirstName") + MWF2F3 userFirstName(String userFirstName); + @Parameter(name = "UserRole") + MWF2F3 userRole(String userRole); + @Parameter(name = "UserSecondName") + MWF2F3 userSecondName(String userSecondName); + @Parameter(name = "UserTitlePrefix") + MWF2F3 userTitlePrefix(String userTitlePrefix); + @Parameter(name = "UserTitleSuffix") + MWF2F3 userTitleSuffix(String userTitleSuffix); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2F3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2F3Response.java new file mode 100644 index 0000000..1c23b57 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2F3Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2F3Response { + + @Parameter(name = "CmID") + String cmID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H1.java new file mode 100644 index 0000000..d80edf2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H1.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2H1 extends MwfRequest { + + @Parameter(name = "ICO_NUM") + MWF2H1 icoNum(String icoNum); + @Parameter(name = "RC_NUM") + MWF2H1 rcNum(String rcNum); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H1Response.java new file mode 100644 index 0000000..2e09be1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H1Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2H1Response { + + @Parameter(name = "CLIENT_TYPE") + String clientType(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H5.java new file mode 100644 index 0000000..f3fb7f2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H5.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2H5 extends MwfRequest { + + @Parameter(name = "Category") + MWF2H5 category(String category); + @Parameter(name = "CellNumber") + MWF2H5 cellNumber(String cellNumber); + @Parameter(name = "ContactDate") + MWF2H5 contactDate(java.util.Date contactDate); + @Parameter(name = "ContactTimeNote") + MWF2H5 contactTimeNote(String contactTimeNote); + @Parameter(name = "Currency") + MWF2H5 currency(String currency); + @Parameter(name = "Email") + MWF2H5 email(String email); + @Parameter(name = "FirstName") + MWF2H5 firstName(String firstName); + @Parameter(name = "ICO") + MWF2H5 ico(String ico); + @Parameter(name = "IDBranch") + MWF2H5 iDBranch(String iDBranch); + @Parameter(name = "Landline") + MWF2H5 landline(String landline); + @Parameter(name = "LastName") + MWF2H5 lastName(String lastName); + @Parameter(name = "RequestedLoanAmount") + MWF2H5 requestedLoanAmount(Double requestedLoanAmount); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H5Response.java new file mode 100644 index 0000000..35da960 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H5Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2H5Response { + + @Parameter(name = "Result") + Boolean result(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H7.java new file mode 100644 index 0000000..9873ec9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2H7 extends MwfRequest { + + @Parameter(name = "ProdPackageKey") + MWF2H7 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H7Response.java new file mode 100644 index 0000000..94309f7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2H7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2H7Response { + + @Parameter(name = "DocumentURL") + String documentURL(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I6.java new file mode 100644 index 0000000..1f7b48b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I6.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2I6 extends MwfRequest { + + @Parameter(name = "AppSetKey") + MWF2I6 appSetKey(Long appSetKey); + @Parameter(name = "ProdPackageKey") + MWF2I6 prodPackageKey(Long prodPackageKey); + @Parameter(name = "WorkflowState") + MWF2I6 workflowState(String workflowState); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I6Response.java new file mode 100644 index 0000000..173aca1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I6Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2I6Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I9.java new file mode 100644 index 0000000..a8e5f42 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I9.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF2I9 extends MwfRequest { + + @Parameter(name = "CIF") + MWF2I9 cif(String cif); + @Parameter(name = "ChannelId") + MWF2I9 channelId(String channelId); + @Parameter(name = "Data") + MWF2I9 data(java.util.List data); + @Parameter(name = "ProdPackageKey") + MWF2I9 prodPackageKey(Long prodPackageKey); + @Parameter(name = "SignatureID") + MWF2I9 signatureID(String signatureID); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I9Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I9Data.java new file mode 100644 index 0000000..9145035 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I9Data.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF2I9Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWF2I9Data() {} + + public static MWF2I9Data builder() { + return new MWF2I9Data(); + } + + public MWF2I9Data rsCmid(String rsCmid) { + params.put("RS_CMID", rsCmid); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I9Response.java new file mode 100644 index 0000000..30c5ce4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF2I9Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF2I9Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF302.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF302.java new file mode 100644 index 0000000..2d3be25 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF302.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF302 extends MwfRequest { + + @Parameter(name = "AP") + MWF302 ap(String ap); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF302Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF302Response.java new file mode 100644 index 0000000..e3b0cf5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF302Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF302Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF303.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF303.java new file mode 100644 index 0000000..40b1bbf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF303.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF303 extends MwfRequest { + + @Parameter(name = "AP") + MWF303 ap(Long ap); + @Parameter(name = "CisloBU") + MWF303 cisloBU(String cisloBU); + @Parameter(name = "VyseRamceSchvaleno") + MWF303 vyseRamceSchvaleno(Double vyseRamceSchvaleno); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF303Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF303Response.java new file mode 100644 index 0000000..e15eaf3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF303Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF303Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF30D.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF30D.java new file mode 100644 index 0000000..7945a7b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF30D.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF30D extends MwfRequest { + + @Parameter(name = "UrednikSSO") + MWF30D urednikSSO(String urednikSSO); + @Parameter(name = "Zadost_KEY") + MWF30D zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF30DResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF30DResponse.java new file mode 100644 index 0000000..6f5e507 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF30DResponse.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF30DResponse { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF321.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF321.java new file mode 100644 index 0000000..0a1dc44 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF321.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF321 extends MwfRequest { + + @Parameter(name = "CIF") + MWF321 cif(String cif); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF321Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF321Response.java new file mode 100644 index 0000000..7ea6596 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF321Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF321Response { + + @Parameter(name = "CIFExistuje") + String cIFExistuje(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF371.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF371.java new file mode 100644 index 0000000..4560361 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF371.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF371 extends MwfRequest { + + @Parameter(name = "TypKarty") + MWF371 typKarty(String typKarty); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF371Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF371Data.java new file mode 100644 index 0000000..193074f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF371Data.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF371Data { + + private Map params; + + public MWF371Data(Map params) { + this.params = params; + } + + public String rsIddoplnkovesluzby() { + return (String) params.get("RS_IDDOPLNKOVESLUZBY"); + } + + public String rsNazev() { + return (String) params.get("RS_NAZEV"); + } + + public Boolean rsJevcene() { + return (Boolean) params.get("RS_JEVCENE"); + } + + public Boolean rsMaplast() { + return (Boolean) params.get("RS_MAPLAST"); + } + + public Boolean rsVolitelna() { + return (Boolean) params.get("RS_VOLITELNA"); + } + + public Double rsCena() { + return (Double) params.get("RS_CENA"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF371Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF371Response.java new file mode 100644 index 0000000..d05fc8e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF371Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF371Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "PoleDS") + String poleDS(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF395.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF395.java new file mode 100644 index 0000000..7db412c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF395.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF395 extends MwfRequest { + + @Parameter(name = "CisloUctu") + MWF395 cisloUctu(String cisloUctu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF395Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF395Response.java new file mode 100644 index 0000000..ee822fc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF395Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF395Response { + + @Parameter(name = "KonecnyZustatek") + Double konecnyZustatek(); + + @Parameter(name = "Mena") + String mena(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3A3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3A3.java new file mode 100644 index 0000000..ad45cce --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3A3.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF3A3 extends MwfRequest { + + @Parameter(name = "BirthNumber") + MWF3A3 birthNumber(String birthNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3A3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3A3Response.java new file mode 100644 index 0000000..c8eb4d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3A3Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF3A3Response { + + @Parameter(name = "Allowed") + String allowed(); + + @Parameter(name = "CIF") + String cif(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2.java new file mode 100644 index 0000000..4af0e28 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF3C2 extends MwfRequest { + + @Parameter(name = "BirthNumber") + MWF3C2 birthNumber(String birthNumber); + @Parameter(name = "ICO") + MWF3C2 ico(String ico); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSAddresses.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSAddresses.java new file mode 100644 index 0000000..d2ba13f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSAddresses.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3C2RWSAddresses { + + private Map params; + + public MWF3C2RWSAddresses(Map params) { + this.params = params; + } + + public String rsNote() { + return (String) params.get("RS_NOTE"); + } + + public String rsStreetnumber() { + return (String) params.get("RS_STREETNUMBER"); + } + + public String rsLandregistrynumber() { + return (String) params.get("RS_LANDREGISTRYNUMBER"); + } + + public String rsCitydistrict() { + return (String) params.get("RS_CITYDISTRICT"); + } + + public String rsAddresspurpose() { + return (String) params.get("RS_ADDRESSPURPOSE"); + } + + public String rsPost() { + return (String) params.get("RS_POST"); + } + + public String rsZip() { + return (String) params.get("RS_ZIP"); + } + + public String rsCountry() { + return (String) params.get("RS_COUNTRY"); + } + + public String rsCity() { + return (String) params.get("RS_CITY"); + } + + public String rsStreet() { + return (String) params.get("RS_STREET"); + } + + public java.util.Date rsAddresssince() { + return (java.util.Date) params.get("RS_ADDRESSSINCE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSDocuments.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSDocuments.java new file mode 100644 index 0000000..54cc681 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSDocuments.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3C2RWSDocuments { + + private Map params; + + public MWF3C2RWSDocuments(Map params) { + this.params = params; + } + + public String rsIdcardnumber() { + return (String) params.get("RS_IDCARDNUMBER"); + } + + public String rsIdcardissuingcountry() { + return (String) params.get("RS_IDCARDISSUINGCOUNTRY"); + } + + public java.util.Date rsIdcardexpirationdate() { + return (java.util.Date) params.get("RS_IDCARDEXPIRATIONDATE"); + } + + public String rsIdcardpurpose() { + return (String) params.get("RS_IDCARDPURPOSE"); + } + + public String rsIdcardtype() { + return (String) params.get("RS_IDCARDTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSEmails.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSEmails.java new file mode 100644 index 0000000..430099e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSEmails.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3C2RWSEmails { + + private Map params; + + public MWF3C2RWSEmails(Map params) { + this.params = params; + } + + public String rsEmail() { + return (String) params.get("RS_EMAIL"); + } + + public String rsEmailpurpose() { + return (String) params.get("RS_EMAILPURPOSE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSPhones.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSPhones.java new file mode 100644 index 0000000..9052996 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2RWSPhones.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3C2RWSPhones { + + private Map params; + + public MWF3C2RWSPhones(Map params) { + this.params = params; + } + + public String rsPhonepurpose() { + return (String) params.get("RS_PHONEPURPOSE"); + } + + public String rsPhonenumber() { + return (String) params.get("RS_PHONENUMBER"); + } + + public String rsPhonetype() { + return (String) params.get("RS_PHONETYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2Response.java new file mode 100644 index 0000000..7780d74 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C2Response.java @@ -0,0 +1,207 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF3C2Response { + + @Parameter(name = "AdministrativeUnit") + String administrativeUnit(); + + @Parameter(name = "BankEmployeeType") + String bankEmployeeType(); + + @Parameter(name = "BirthDate") + java.util.Date birthDate(); + + @Parameter(name = "BirthNumber") + String birthNumber(); + + @Parameter(name = "BirthPlace") + String birthPlace(); + + @Parameter(name = "BranchCode") + String branchCode(); + + @Parameter(name = "BranchName") + String branchName(); + + @Parameter(name = "BusinessCity") + String businessCity(); + + @Parameter(name = "BusinessCityDistrict") + String businessCityDistrict(); + + @Parameter(name = "BusinessCountry") + String businessCountry(); + + @Parameter(name = "BusinessEnd") + java.util.Date businessEnd(); + + @Parameter(name = "BusinessLandRegistryNumber") + String businessLandRegistryNumber(); + + @Parameter(name = "BusinessName") + String businessName(); + + @Parameter(name = "BusinessPSC") + String businessPSC(); + + @Parameter(name = "BusinessSector") + String businessSector(); + + @Parameter(name = "BusinessStart") + java.util.Date businessStart(); + + @Parameter(name = "BusinessStreet") + String businessStreet(); + + @Parameter(name = "BusinessStreetNumber") + String businessStreetNumber(); + + @Parameter(name = "CIFCreationDate") + java.util.Date cIFCreationDate(); + + @Parameter(name = "CIFFO") + String ciffo(); + + @Parameter(name = "CIFFOP") + String ciffop(); + + @Parameter(name = "ClientType") + String clientType(); + + @Parameter(name = "ContactInformationExpirationDate") + java.util.Date contactInformationExpirationDate(); + + @Parameter(name = "ContractInformationValidity") + String contractInformationValidity(); + + @Parameter(name = "Country") + String country(); + + @Parameter(name = "DIC") + String dic(); + + @Parameter(name = "Education") + String education(); + + @Parameter(name = "EmployedSince") + java.util.Date employedSince(); + + @Parameter(name = "EmployerICO") + String employerICO(); + + @Parameter(name = "EmployersName") + String employersName(); + + @Parameter(name = "EmploymentType") + String employmentType(); + + @Parameter(name = "FamilyName") + String familyName(); + + @Parameter(name = "FirstName") + String firstName(); + + @Parameter(name = "Gender") + String gender(); + + @Parameter(name = "HousingType") + String housingType(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "IncomeConfirmationDate") + java.util.Date incomeConfirmationDate(); + + @Parameter(name = "IncomeGroup") + String incomeGroup(); + + @Parameter(name = "LastUpdateDate") + java.util.Date lastUpdateDate(); + + @Parameter(name = "LegalForm") + String legalForm(); + + @Parameter(name = "MaritalAssetsStatus") + String maritalAssetsStatus(); + + @Parameter(name = "MaritalStatus") + String maritalStatus(); + + @Parameter(name = "MonthlyNetIncome") + Double monthlyNetIncome(); + + @Parameter(name = "NACE") + String nace(); + + @Parameter(name = "NurturedChildrenNumber") + Long nurturedChildrenNumber(); + + @Parameter(name = "OccupationDetail") + String occupationDetail(); + + @Parameter(name = "PersonalBanker") + String personalBanker(); + + @Parameter(name = "Post") + String post(); + + @Parameter(name = "RWS_Addresses") + java.util.List rWSAddresses(); + + @Parameter(name = "RWS_Documents") + java.util.List rWSDocuments(); + + @Parameter(name = "RWS_Emails") + java.util.List rWSEmails(); + + @Parameter(name = "RWS_Phones") + java.util.List rWSPhones(); + + @Parameter(name = "RelationToBank") + String relationToBank(); + + @Parameter(name = "Residency") + String residency(); + + @Parameter(name = "Salutation") + String salutation(); + + @Parameter(name = "SecondCountry") + String secondCountry(); + + @Parameter(name = "SecondName") + String secondName(); + + @Parameter(name = "SendMarketingOffers") + String sendMarketingOffers(); + + @Parameter(name = "ShortenedName") + String shortenedName(); + + @Parameter(name = "SleepingAccount") + String sleepingAccount(); + + @Parameter(name = "SocialEconomicalGroup") + String socialEconomicalGroup(); + + @Parameter(name = "StudentsConfirmation") + String studentsConfirmation(); + + @Parameter(name = "StudentsConfirmationExpirationDate") + java.util.Date studentsConfirmationExpirationDate(); + + @Parameter(name = "TitleAfter") + String titleAfter(); + + @Parameter(name = "TitleBefore") + String titleBefore(); + + @Parameter(name = "UndesirableClient") + String undesirableClient(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C3.java new file mode 100644 index 0000000..6d98ec7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C3.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF3C3 extends MwfRequest { + + @Parameter(name = "INST_PT_KEY") + MWF3C3 instPtKey(Long instPtKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C3Response.java new file mode 100644 index 0000000..42a3503 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3C3Response.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF3C3Response { + + @Parameter(name = "AddressCity") + String addressCity(); + + @Parameter(name = "AddressContHouseNumber") + String addressContHouseNumber(); + + @Parameter(name = "AddressContLandRegistryNumber") + String addressContLandRegistryNumber(); + + @Parameter(name = "AddressCountry") + String addressCountry(); + + @Parameter(name = "AddressStreet") + String addressStreet(); + + @Parameter(name = "AddressZipCode") + Long addressZipCode(); + + @Parameter(name = "FirstName") + String firstName(); + + @Parameter(name = "LastName") + String lastName(); + + @Parameter(name = "OkecCode") + String okecCode(); + + @Parameter(name = "SecondName") + String secondName(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3.java new file mode 100644 index 0000000..32f570d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF3E3 extends MwfRequest { + + @Parameter(name = "Channel") + MWF3E3 channel(String channel); + @Parameter(name = "ProductClass") + MWF3E3 productClass(String productClass); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3RWSGarantedAmount.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3RWSGarantedAmount.java new file mode 100644 index 0000000..2cd687d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3RWSGarantedAmount.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3E3RWSGarantedAmount { + + private Map params; + + public MWF3E3RWSGarantedAmount(Map params) { + this.params = params; + } + + public Double rsLoanfrom() { + return (Double) params.get("RS_LOANFROM"); + } + + public Double rsLoanto() { + return (Double) params.get("RS_LOANTO"); + } + + public Double rsInterestrate() { + return (Double) params.get("RS_INTERESTRATE"); + } + + public Long rsTermfrom() { + return (Long) params.get("RS_TERMFROM"); + } + + public Long rsTermto() { + return (Long) params.get("RS_TERMTO"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3RWSLoanAmount.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3RWSLoanAmount.java new file mode 100644 index 0000000..5b35bf9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3RWSLoanAmount.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3E3RWSLoanAmount { + + private Map params; + + public MWF3E3RWSLoanAmount(Map params) { + this.params = params; + } + + public Long rsVariantid() { + return (Long) params.get("RS_VARIANTID"); + } + + public Double rsLoanamountfrom() { + return (Double) params.get("RS_LOANAMOUNTFROM"); + } + + public Double rsLoanamountto() { + return (Double) params.get("RS_LOANAMOUNTTO"); + } + + public Long rsMaxterm() { + return (Long) params.get("RS_MAXTERM"); + } + + public Long rsMinterm() { + return (Long) params.get("RS_MINTERM"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3RWSTerm.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3RWSTerm.java new file mode 100644 index 0000000..6accf72 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3RWSTerm.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3E3RWSTerm { + + private Map params; + + public MWF3E3RWSTerm(Map params) { + this.params = params; + } + + public Long rsVariantId() { + return (Long) params.get("RS_VARIANT_ID"); + } + + public Long rsTerm() { + return (Long) params.get("RS_TERM"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3Response.java new file mode 100644 index 0000000..503f05b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3E3Response.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF3E3Response { + + @Parameter(name = "DiscountType") + String discountType(); + + @Parameter(name = "MaxLoanAmount") + Double maxLoanAmount(); + + @Parameter(name = "MaxLoanAmountForWeb") + Double maxLoanAmountForWeb(); + + @Parameter(name = "MaxTerm") + Long maxTerm(); + + @Parameter(name = "MinLoanAmount") + Double minLoanAmount(); + + @Parameter(name = "MinTerm") + Long minTerm(); + + @Parameter(name = "RWS_GarantedAmount") + java.util.List rWSGarantedAmount(); + + @Parameter(name = "RWS_LoanAmount") + java.util.List rWSLoanAmount(); + + @Parameter(name = "RWS_Term") + java.util.List rWSTerm(); + + @Parameter(name = "SalesProductType") + String salesProductType(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F3.java new file mode 100644 index 0000000..28732de --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F3.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF3F3 extends MwfRequest { + + @Parameter(name = "ApplSetKey") + MWF3F3 applSetKey(Long applSetKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F3Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F3Data.java new file mode 100644 index 0000000..862f660 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F3Data.java @@ -0,0 +1,169 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3F3Data { + + private Map params; + + public MWF3F3Data(Map params) { + this.params = params; + } + + public Long rsZadostKey() { + return (Long) params.get("RS_ZADOST_KEY"); + } + + public Long rsPriorita() { + return (Long) params.get("RS_PRIORITA"); + } + + public String rsStavzadosti() { + return (String) params.get("RS_STAVZADOSTI"); + } + + public String rsTypzadosti() { + return (String) params.get("RS_TYPZADOSTI"); + } + + public String rsPodtypzadosti() { + return (String) params.get("RS_PODTYPZADOSTI"); + } + + public Long rsAktivniFlag() { + return (Long) params.get("RS_AKTIVNI_FLAG"); + } + + public String rsFormalFlag() { + return (String) params.get("RS_FORMAL_FLAG"); + } + + public String rsSchvalchybaid() { + return (String) params.get("RS_SCHVALCHYBAID"); + } + + public String rsProdukttrida() { + return (String) params.get("RS_PRODUKTTRIDA"); + } + + public String rsRozhodnuti() { + return (String) params.get("RS_ROZHODNUTI"); + } + + public String rsKodproduktu() { + return (String) params.get("RS_KODPRODUKTU"); + } + + public Double rsVysenabidkyZavazna() { + return (Double) params.get("RS_VYSENABIDKY_ZAVAZNA"); + } + + public Double rsPozadovanacastka() { + return (Double) params.get("RS_POZADOVANACASTKA"); + } + + public String rsKodproduktuSales() { + return (String) params.get("RS_KODPRODUKTU_SALES"); + } + + public String rsTypinfolimitu() { + return (String) params.get("RS_TYPINFOLIMITU"); + } + + public Double rsNesplacenajistina() { + return (Double) params.get("RS_NESPLACENAJISTINA"); + } + + public String rsCislouctu() { + return (String) params.get("RS_CISLOUCTU"); + } + + public Double rsVysenabidkyNezavazna() { + return (Double) params.get("RS_VYSENABIDKY_NEZAVAZNA"); + } + + public Long rsPocetsplatek() { + return (Long) params.get("RS_POCETSPLATEK"); + } + + public Long rsCaVariantaKey() { + return (Long) params.get("RS_CA_VARIANTA_KEY"); + } + + public String rsFeStavIb() { + return (String) params.get("RS_FE_STAV_IB"); + } + + public String rsAppId() { + return (String) params.get("RS_APP_ID"); + } + + public String rsFeStavUfo() { + return (String) params.get("RS_FE_STAV_UFO"); + } + + public String rsCislouuctu() { + return (String) params.get("RS_CISLOUUCTU"); + } + + public Long rsId() { + return (Long) params.get("RS_ID"); + } + + public Double rsSchvFlexilimit() { + return (Double) params.get("RS_SCHV_FLEXILIMIT"); + } + + public String rsSchvKodproduktu() { + return (String) params.get("RS_SCHV_KODPRODUKTU"); + } + + public String rsSchvKodproduktusales() { + return (String) params.get("RS_SCHV_KODPRODUKTUSALES"); + } + + public Long rsSchvPocetsplatek() { + return (Long) params.get("RS_SCHV_POCETSPLATEK"); + } + + public String rsSchvProdukttrida() { + return (String) params.get("RS_SCHV_PRODUKTTRIDA"); + } + + public String rsSchvTyppojisteni() { + return (String) params.get("RS_SCHV_TYPPOJISTENI"); + } + + public Double rsSchvUrokovasazba() { + return (Double) params.get("RS_SCHV_UROKOVASAZBA"); + } + + public Double rsSchvVysesplatky() { + return (Double) params.get("RS_SCHV_VYSESPLATKY"); + } + + public Double rsSchvVyseuveru() { + return (Double) params.get("RS_SCHV_VYSEUVERU"); + } + + public String rsFePodtypzadosti() { + return (String) params.get("RS_FE_PODTYPZADOSTI"); + } + + public String rsPritomnyvsechnyosoby() { + return (String) params.get("RS_PRITOMNYVSECHNYOSOBY"); + } + + public String rsBezpritomnostiklienta() { + return (String) params.get("RS_BEZPRITOMNOSTIKLIENTA"); + } + + public String rsPriznakalternativninabidky() { + return (String) params.get("RS_PRIZNAKALTERNATIVNINABIDKY"); + } + + public Double rsSmartlimit() { + return (Double) params.get("RS_SMARTLIMIT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F3Response.java new file mode 100644 index 0000000..1788f53 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F3Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF3F3Response { + + @Parameter(name = "CMID") + String cmid(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "URL") + String url(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F4.java new file mode 100644 index 0000000..fbf59e6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F4.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF3F4 extends MwfRequest { + + @Parameter(name = "ApplSetKey") + MWF3F4 applSetKey(Long applSetKey); + @Parameter(name = "SignatureID") + MWF3F4 signatureID(String signatureID); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F4Response.java new file mode 100644 index 0000000..0f29a1e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F4Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF3F4Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F5.java new file mode 100644 index 0000000..cd43bc5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F5.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF3F5 extends MwfRequest { + + @Parameter(name = "ApplSetKey") + MWF3F5 applSetKey(Long applSetKey); + @Parameter(name = "RefusalReason") + MWF3F5 refusalReason(String refusalReason); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F5Response.java new file mode 100644 index 0000000..6557d55 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F5Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF3F5Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F7.java new file mode 100644 index 0000000..6f0d79d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF3F7 extends MwfRequest { + + @Parameter(name = "ApplSetKey") + MWF3F7 applSetKey(Long applSetKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F7Response.java new file mode 100644 index 0000000..77c7fcb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3F7Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF3F7Response { + + @Parameter(name = "ExpirationDate") + java.util.Date expirationDate(); + + @Parameter(name = "SignIsPossible") + Long signIsPossible(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H0.java new file mode 100644 index 0000000..56ec180 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H0.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF3H0 extends MwfRequest { + + @Parameter(name = "ClientInstId") + MWF3H0 clientInstId(String clientInstId); + @Parameter(name = "ClientInstSysId") + MWF3H0 clientInstSysId(String clientInstSysId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H0Response.java new file mode 100644 index 0000000..babe0a9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H0Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF3H0Response { + + @Parameter(name = "ClientInstIsSynchronized") + String clientInstIsSynchronized(); + + @Parameter(name = "ClientInstKey") + Long clientInstKey(); + + @Parameter(name = "ClientUniKey") + Long clientUniKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3.java new file mode 100644 index 0000000..5cfd476 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3.java @@ -0,0 +1,114 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF3H3 extends MwfRequest { + + @Parameter(name = "ActivatingPassword") + MWF3H3 activatingPassword(String activatingPassword); + @Parameter(name = "AppBranchId") + MWF3H3 appBranchId(String appBranchId); + @Parameter(name = "AppChannelId") + MWF3H3 appChannelId(String appChannelId); + @Parameter(name = "BusinessType") + MWF3H3 businessType(String businessType); + @Parameter(name = "ClientBirthCountry") + MWF3H3 clientBirthCountry(String clientBirthCountry); + @Parameter(name = "ClientBirthDate") + MWF3H3 clientBirthDate(java.util.Date clientBirthDate); + @Parameter(name = "ClientBirthNumber") + MWF3H3 clientBirthNumber(String clientBirthNumber); + @Parameter(name = "ClientBirthPlace") + MWF3H3 clientBirthPlace(String clientBirthPlace); + @Parameter(name = "ClientBusEmployeeCount") + MWF3H3 clientBusEmployeeCount(Long clientBusEmployeeCount); + @Parameter(name = "ClientBusGrossIncomeLastYear") + MWF3H3 clientBusGrossIncomeLastYear(Double clientBusGrossIncomeLastYear); + @Parameter(name = "ClientBusName") + MWF3H3 clientBusName(String clientBusName); + @Parameter(name = "ClientBusSector") + MWF3H3 clientBusSector(String clientBusSector); + @Parameter(name = "ClientBusStartDate") + MWF3H3 clientBusStartDate(java.util.Date clientBusStartDate); + @Parameter(name = "ClientCitizenship") + MWF3H3 clientCitizenship(String clientCitizenship); + @Parameter(name = "ClientDependPersons") + MWF3H3 clientDependPersons(Long clientDependPersons); + @Parameter(name = "ClientEducation") + MWF3H3 clientEducation(String clientEducation); + @Parameter(name = "ClientEmploymentType") + MWF3H3 clientEmploymentType(String clientEmploymentType); + @Parameter(name = "ClientFamilyBusFlag") + MWF3H3 clientFamilyBusFlag(String clientFamilyBusFlag); + @Parameter(name = "ClientFamilyBusProfitSharePct") + MWF3H3 clientFamilyBusProfitSharePct(Double clientFamilyBusProfitSharePct); + @Parameter(name = "ClientFixedPerFlag") + MWF3H3 clientFixedPerFlag(String clientFixedPerFlag); + @Parameter(name = "ClientForename") + MWF3H3 clientForename(String clientForename); + @Parameter(name = "ClientHousingType") + MWF3H3 clientHousingType(String clientHousingType); + @Parameter(name = "ClientIco") + MWF3H3 clientIco(String clientIco); + @Parameter(name = "ClientLegalForm") + MWF3H3 clientLegalForm(String clientLegalForm); + @Parameter(name = "ClientMaritalAssets") + MWF3H3 clientMaritalAssets(String clientMaritalAssets); + @Parameter(name = "ClientMaritalStatus") + MWF3H3 clientMaritalStatus(String clientMaritalStatus); + @Parameter(name = "ClientMiddleName") + MWF3H3 clientMiddleName(String clientMiddleName); + @Parameter(name = "ClientNameTitleAfter") + MWF3H3 clientNameTitleAfter(String clientNameTitleAfter); + @Parameter(name = "ClientNameTitleBefore") + MWF3H3 clientNameTitleBefore(String clientNameTitleBefore); + @Parameter(name = "ClientPresenceWithAllPersonsFlag") + MWF3H3 clientPresenceWithAllPersonsFlag(String clientPresenceWithAllPersonsFlag); + @Parameter(name = "ClientResidentFlag") + MWF3H3 clientResidentFlag(String clientResidentFlag); + @Parameter(name = "ClientSex") + MWF3H3 clientSex(String clientSex); + @Parameter(name = "ClientSurname") + MWF3H3 clientSurname(String clientSurname); + @Parameter(name = "ClientType") + MWF3H3 clientType(String clientType); + @Parameter(name = "CurrentAccountOpenFlag") + MWF3H3 currentAccountOpenFlag(String currentAccountOpenFlag); + @Parameter(name = "EmployeeSso") + MWF3H3 employeeSso(String employeeSso); + @Parameter(name = "IpAddress") + MWF3H3 ipAddress(String ipAddress); + @Parameter(name = "LoanAmount") + MWF3H3 loanAmount(Double loanAmount); + @Parameter(name = "LoanInstalmentAmount") + MWF3H3 loanInstalmentAmount(Double loanInstalmentAmount); + @Parameter(name = "LoanInstalmentDeferredCount") + MWF3H3 loanInstalmentDeferredCount(Long loanInstalmentDeferredCount); + @Parameter(name = "LoanInstalmentRegularDay") + MWF3H3 loanInstalmentRegularDay(Long loanInstalmentRegularDay); + @Parameter(name = "LoanInsuranceType") + MWF3H3 loanInsuranceType(String loanInsuranceType); + @Parameter(name = "LoanMaturityTerm") + MWF3H3 loanMaturityTerm(Long loanMaturityTerm); + @Parameter(name = "LoanRepaymentType") + MWF3H3 loanRepaymentType(String loanRepaymentType); + @Parameter(name = "OfficerForename") + MWF3H3 officerForename(String officerForename); + @Parameter(name = "OfficerFunctId") + MWF3H3 officerFunctId(String officerFunctId); + @Parameter(name = "OfficerKey") + MWF3H3 officerKey(Long officerKey); + @Parameter(name = "OfficerSurname") + MWF3H3 officerSurname(String officerSurname); + @Parameter(name = "RsAddresses") + MWF3H3 rsAddresses(java.util.List rsAddresses); + @Parameter(name = "RsEmails") + MWF3H3 rsEmails(java.util.List rsEmails); + @Parameter(name = "RsIds") + MWF3H3 rsIds(java.util.List rsIds); + @Parameter(name = "RsNaces") + MWF3H3 rsNaces(java.util.List rsNaces); + @Parameter(name = "RsPhones") + MWF3H3 rsPhones(java.util.List rsPhones); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3Response.java new file mode 100644 index 0000000..4c04a44 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3Response.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF3H3Response { + + @Parameter(name = "AppKey_ClientCif") + Long appKeyClientCif(); + + @Parameter(name = "AppKey_CurrentAccount") + Long appKeyCurrentAccount(); + + @Parameter(name = "AppKey_InternetBank") + Long appKeyInternetBank(); + + @Parameter(name = "AppSetKey") + Long appSetKey(); + + @Parameter(name = "Appkey_Express") + Long appkeyExpress(); + + @Parameter(name = "PackageKey") + Long packageKey(); + + @Parameter(name = "WorkflowId") + String workflowId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsAddresses.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsAddresses.java new file mode 100644 index 0000000..4b51e25 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsAddresses.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3H3RsAddresses { + + private Map params; + + public MWF3H3RsAddresses(Map params) { + this.params = params; + } + + public String rsAddressClientId() { + return (String) params.get("RS_ADDRESS_CLIENT_ID"); + } + + public String rsAddressPurpose() { + return (String) params.get("RS_ADDRESS_PURPOSE"); + } + + public String rsAddressCountry() { + return (String) params.get("RS_ADDRESS_COUNTRY"); + } + + public String rsAddressCity() { + return (String) params.get("RS_ADDRESS_CITY"); + } + + public String rsAddressStreet() { + return (String) params.get("RS_ADDRESS_STREET"); + } + + public String rsAddressStreetDescNo() { + return (String) params.get("RS_ADDRESS_STREET_DESC_NO"); + } + + public String rsAddressStreetOrientNo() { + return (String) params.get("RS_ADDRESS_STREET_ORIENT_NO"); + } + + public String rsAddressZipcode() { + return (String) params.get("RS_ADDRESS_ZIPCODE"); + } + + public String rsAddressPostOffice() { + return (String) params.get("RS_ADDRESS_POST_OFFICE"); + } + + public java.util.Date rsAddressSince() { + return (java.util.Date) params.get("RS_ADDRESS_SINCE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsEmails.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsEmails.java new file mode 100644 index 0000000..ef6249c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsEmails.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3H3RsEmails { + + private Map params; + + public MWF3H3RsEmails(Map params) { + this.params = params; + } + + public String rsEmailPurpose() { + return (String) params.get("RS_EMAIL_PURPOSE"); + } + + public String rsEmail() { + return (String) params.get("RS_EMAIL"); + } + + public String rsEmailClientId() { + return (String) params.get("RS_EMAIL_CLIENT_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsIds.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsIds.java new file mode 100644 index 0000000..0a416f6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsIds.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3H3RsIds { + + private Map params; + + public MWF3H3RsIds(Map params) { + this.params = params; + } + + public String rsIdCardPurpId() { + return (String) params.get("RS_ID_CARD_PURP_ID"); + } + + public String rsIdCardNr() { + return (String) params.get("RS_ID_CARD_NR"); + } + + public String rsIdCardTypeId() { + return (String) params.get("RS_ID_CARD_TYPE_ID"); + } + + public String rsIdCardCntryId() { + return (String) params.get("RS_ID_CARD_CNTRY_ID"); + } + + public java.util.Date rsIdCardExprDate() { + return (java.util.Date) params.get("RS_ID_CARD_EXPR_DATE"); + } + + public String rsIdCardClientId() { + return (String) params.get("RS_ID_CARD_CLIENT_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsNaces.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsNaces.java new file mode 100644 index 0000000..7db50c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsNaces.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3H3RsNaces { + + private Map params; + + public MWF3H3RsNaces(Map params) { + this.params = params; + } + + public Long rsPtOkecKey() { + return (Long) params.get("RS_PT_OKEC_KEY"); + } + + public Long rsInstPtKey() { + return (Long) params.get("RS_INST_PT_KEY"); + } + + public String rsOkecId() { + return (String) params.get("RS_OKEC_ID"); + } + + public Long rsOkecMainFlag() { + return (Long) params.get("RS_OKEC_MAIN_FLAG"); + } + + public Double rsPrftSharePct() { + return (Double) params.get("RS_PRFT_SHARE_PCT"); + } + + public Long rsDelFlag() { + return (Long) params.get("RS_DEL_FLAG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsPhones.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsPhones.java new file mode 100644 index 0000000..1cf9f74 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3H3RsPhones.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3H3RsPhones { + + private Map params; + + public MWF3H3RsPhones(Map params) { + this.params = params; + } + + public String rsPhonePurpose() { + return (String) params.get("RS_PHONE_PURPOSE"); + } + + public String rsPhoneType() { + return (String) params.get("RS_PHONE_TYPE"); + } + + public String rsPhoneNumber() { + return (String) params.get("RS_PHONE_NUMBER"); + } + + public String rsPhoneClientId() { + return (String) params.get("RS_PHONE_CLIENT_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0.java new file mode 100644 index 0000000..54e6d17 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF3I0 extends MwfRequest { + + @Parameter(name = "RS_IN") + MWF3I0 rsIn(java.util.List rsIn); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0Response.java new file mode 100644 index 0000000..d451ed5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF3I0Response { + + @Parameter(name = "AgreggatedState") + String agreggatedState(); + + @Parameter(name = "RS_OUT") + java.util.List rsOut(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0RsIn.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0RsIn.java new file mode 100644 index 0000000..e371a08 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0RsIn.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF3I0RsIn implements MwfData { + + private Map params = new HashMap<>(); + + private MWF3I0RsIn() {} + + public static MWF3I0RsIn builder() { + return new MWF3I0RsIn(); + } + + public MWF3I0RsIn rsAppkey(Long rsAppkey) { + params.put("RS_APPKEY", rsAppkey); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0RsOut.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0RsOut.java new file mode 100644 index 0000000..10e7337 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF3I0RsOut.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF3I0RsOut { + + private Map params; + + public MWF3I0RsOut(Map params) { + this.params = params; + } + + public Long rsAppkey() { + return (Long) params.get("RS_APPKEY"); + } + + public String rsAppstate() { + return (String) params.get("RS_APPSTATE"); + } + + public String rsProductclass() { + return (String) params.get("RS_PRODUCTCLASS"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF40D.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF40D.java new file mode 100644 index 0000000..0eab583 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF40D.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF40D extends MwfRequest { + + @Parameter(name = "CisloSmlouvy") + MWF40D cisloSmlouvy(String cisloSmlouvy); + @Parameter(name = "DatumPodpisuSmlouvy") + MWF40D datumPodpisuSmlouvy(java.util.Date datumPodpisuSmlouvy); + @Parameter(name = "KodProduktuSales") + MWF40D kodProduktuSales(String kodProduktuSales); + @Parameter(name = "ObchodniMistoKod") + MWF40D obchodniMistoKod(String obchodniMistoKod); + @Parameter(name = "UrednikID") + MWF40D urednikID(String urednikID); + @Parameter(name = "UrednikJmeno") + MWF40D urednikJmeno(String urednikJmeno); + @Parameter(name = "UrednikPrijmeni") + MWF40D urednikPrijmeni(String urednikPrijmeni); + @Parameter(name = "UrednikSSO") + MWF40D urednikSSO(String urednikSSO); + @Parameter(name = "ZadostAP") + MWF40D zadostAP(String zadostAP); + @Parameter(name = "Zadost_KEY") + MWF40D zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF40DResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF40DResponse.java new file mode 100644 index 0000000..1e80144 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF40DResponse.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF40DResponse { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF424.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF424.java new file mode 100644 index 0000000..1e08269 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF424.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF424 extends MwfRequest { + + @Parameter(name = "Heslo") + MWF424 heslo(String heslo); + @Parameter(name = "ID") + MWF424 id(String id); + @Parameter(name = "ZpusobPrihlaseni") + MWF424 zpusobPrihlaseni(String zpusobPrihlaseni); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF424Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF424Response.java new file mode 100644 index 0000000..1acba1f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF424Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF424Response { + + @Parameter(name = "Kod") + String kod(); + + @Parameter(name = "Platnost") + Long platnost(); + + @Parameter(name = "Prihlaseno") + Long prihlaseno(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF431.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF431.java new file mode 100644 index 0000000..7931a81 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF431.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF431 extends MwfRequest { + + @Parameter(name = "Data") + MWF431 data(java.util.List data); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF431Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF431Data.java new file mode 100644 index 0000000..3283f63 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF431Data.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF431Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWF431Data() {} + + public static MWF431Data builder() { + return new MWF431Data(); + } + + public MWF431Data rsCmid(String rsCmid) { + params.put("RS_CMID", rsCmid); + return this; + } + + public MWF431Data rsDocumenttype(String rsDocumenttype) { + params.put("RS_DOCUMENTTYPE", rsDocumenttype); + return this; + } + + public MWF431Data rsPagenumber(Long rsPagenumber) { + params.put("RS_PAGENUMBER", rsPagenumber); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF431Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF431Response.java new file mode 100644 index 0000000..1d95065 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF431Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF431Response { + + @Parameter(name = "CMID") + String cmid(); + + @Parameter(name = "URL") + String url(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF432.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF432.java new file mode 100644 index 0000000..08d382b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF432.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF432 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF432 appKey(Long appKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF432Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF432Response.java new file mode 100644 index 0000000..5a36a4e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF432Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF432Response { + + @Parameter(name = "IsInPackage") + String isInPackage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF439.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF439.java new file mode 100644 index 0000000..26bda82 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF439.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF439 extends MwfRequest { + + @Parameter(name = "CompletationChannelID") + MWF439 completationChannelID(String completationChannelID); + @Parameter(name = "GeneratedDocumentID") + MWF439 generatedDocumentID(String generatedDocumentID); + @Parameter(name = "LoanAmount") + MWF439 loanAmount(Double loanAmount); + @Parameter(name = "ProdPackageKey") + MWF439 prodPackageKey(Long prodPackageKey); + @Parameter(name = "Term") + MWF439 term(Long term); + @Parameter(name = "VariantKey") + MWF439 variantKey(Long variantKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF439Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF439Response.java new file mode 100644 index 0000000..32e8c98 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF439Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF439Response { + + @Parameter(name = "CmID") + String cmID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF446.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF446.java new file mode 100644 index 0000000..0aad1eb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF446.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF446 extends MwfRequest { + + @Parameter(name = "CompletationChannelID") + MWF446 completationChannelID(String completationChannelID); + @Parameter(name = "GeneratedDocumentID") + MWF446 generatedDocumentID(String generatedDocumentID); + @Parameter(name = "ProdPackageKey") + MWF446 prodPackageKey(Long prodPackageKey); + @Parameter(name = "SignatureID") + MWF446 signatureID(String signatureID); + @Parameter(name = "TimeStamp") + MWF446 timeStamp(java.util.Date timeStamp); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF446Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF446Response.java new file mode 100644 index 0000000..921d196 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF446Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF446Response { + + @Parameter(name = "CmID") + String cmID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF44D.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF44D.java new file mode 100644 index 0000000..db565ce --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF44D.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF44D extends MwfRequest { + + @Parameter(name = "BrandKarty") + MWF44D brandKarty(String brandKarty); + @Parameter(name = "CisloSmlouvy") + MWF44D cisloSmlouvy(String cisloSmlouvy); + @Parameter(name = "CisloUctu") + MWF44D cisloUctu(String cisloUctu); + @Parameter(name = "DesignKarty") + MWF44D designKarty(String designKarty); + @Parameter(name = "IDXselloveKampane") + MWF44D iDXselloveKampane(String iDXselloveKampane); + @Parameter(name = "OM_ID") + MWF44D omId(String omId); + @Parameter(name = "Operace") + MWF44D operace(String operace); + @Parameter(name = "PozadovanaCastka") + MWF44D pozadovanaCastka(Double pozadovanaCastka); + @Parameter(name = "PracovnikMTSID") + MWF44D pracovnikMTSID(String pracovnikMTSID); + @Parameter(name = "PrimarniUrednikID") + MWF44D primarniUrednikID(String primarniUrednikID); + @Parameter(name = "PrimarniUrednikJmeno") + MWF44D primarniUrednikJmeno(String primarniUrednikJmeno); + @Parameter(name = "PrimarniUrednikPrijmeni") + MWF44D primarniUrednikPrijmeni(String primarniUrednikPrijmeni); + @Parameter(name = "PrimarniUrednikSSO") + MWF44D primarniUrednikSSO(String primarniUrednikSSO); + @Parameter(name = "ProcentoHotovostnihoLimitu") + MWF44D procentoHotovostnihoLimitu(Double procentoHotovostnihoLimitu); + @Parameter(name = "ProcentoMinimalniSplatky") + MWF44D procentoMinimalniSplatky(Double procentoMinimalniSplatky); + @Parameter(name = "ProduktSales") + MWF44D produktSales(String produktSales); + @Parameter(name = "PromoAkce") + MWF44D promoAkce(String promoAkce); + @Parameter(name = "UrednikFunkce") + MWF44D urednikFunkce(String urednikFunkce); + @Parameter(name = "UrednikID") + MWF44D urednikID(String urednikID); + @Parameter(name = "UrednikJmeno") + MWF44D urednikJmeno(String urednikJmeno); + @Parameter(name = "UrednikPrijmeni") + MWF44D urednikPrijmeni(String urednikPrijmeni); + @Parameter(name = "UrednikSSO") + MWF44D urednikSSO(String urednikSSO); + @Parameter(name = "ZadostPuvodni") + MWF44D zadostPuvodni(String zadostPuvodni); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF44DResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF44DResponse.java new file mode 100644 index 0000000..8dfe9aa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF44DResponse.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF44DResponse { + + @Parameter(name = "LogoKarty") + Long logoKarty(); + + @Parameter(name = "Zadost") + String zadost(); + + @Parameter(name = "ZadostKey") + Long zadostKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF460.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF460.java new file mode 100644 index 0000000..95ddc1a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF460.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF460 extends MwfRequest { + + @Parameter(name = "Aktivni") + MWF460 aktivni(String aktivni); + @Parameter(name = "Isin") + MWF460 isin(String isin); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF460Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF460Data.java new file mode 100644 index 0000000..d5d22f8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF460Data.java @@ -0,0 +1,209 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF460Data { + + private Map params; + + public MWF460Data(Map params) { + this.params = params; + } + + public String rsTyppobocka() { + return (String) params.get("RS_TYPPOBOCKA"); + } + + public String rsIsin() { + return (String) params.get("RS_ISIN"); + } + + public String rsNazev() { + return (String) params.get("RS_NAZEV"); + } + + public String rsKategorie() { + return (String) params.get("RS_KATEGORIE"); + } + + public String rsMena() { + return (String) params.get("RS_MENA"); + } + + public String rsProfil() { + return (String) params.get("RS_PROFIL"); + } + + public String rsAktivni() { + return (String) params.get("RS_AKTIVNI"); + } + + public String rsEmitent() { + return (String) params.get("RS_EMITENT"); + } + + public String rsRodina() { + return (String) params.get("RS_RODINA"); + } + + public Double rsPoplatekvstup() { + return (Double) params.get("RS_POPLATEKVSTUP"); + } + + public Double rsPoplateksprava() { + return (Double) params.get("RS_POPLATEKSPRAVA"); + } + + public Double rsCojpl() { + return (Double) params.get("RS_COJPL"); + } + + public java.util.Date rsCojpldatum() { + return (java.util.Date) params.get("RS_COJPLDATUM"); + } + + public java.util.Date rsSplatnost() { + return (java.util.Date) params.get("RS_SPLATNOST"); + } + + public String rsNakup() { + return (String) params.get("RS_NAKUP"); + } + + public String rsProdej() { + return (String) params.get("RS_PRODEJ"); + } + + public String rsPrestup() { + return (String) params.get("RS_PRESTUP"); + } + + public java.util.Date rsObchoddennakup() { + return (java.util.Date) params.get("RS_OBCHODDENNAKUP"); + } + + public java.util.Date rsObchoddenprodej() { + return (java.util.Date) params.get("RS_OBCHODDENPRODEJ"); + } + + public java.util.Date rsObchoddenprestup() { + return (java.util.Date) params.get("RS_OBCHODDENPRESTUP"); + } + + public Double rsCojplczk() { + return (Double) params.get("RS_COJPLCZK"); + } + + public Double rsPocetksCelkem() { + return (Double) params.get("RS_POCETKS_CELKEM"); + } + + public Double rsPocetksDisponibilni() { + return (Double) params.get("RS_POCETKS_DISPONIBILNI"); + } + + public Double rsPocetksBlokace() { + return (Double) params.get("RS_POCETKS_BLOKACE"); + } + + public Double rsObjemCelkemCzk() { + return (Double) params.get("RS_OBJEM_CELKEM_CZK"); + } + + public Double rsMinimalniinvestice() { + return (Double) params.get("RS_MINIMALNIINVESTICE"); + } + + public String rsTechnickyucetcislo() { + return (String) params.get("RS_TECHNICKYUCETCISLO"); + } + + public java.util.Date rsDatpocpremobd() { + return (java.util.Date) params.get("RS_DATPOCPREMOBD"); + } + + public java.util.Date rsDatkonpremobd() { + return (java.util.Date) params.get("RS_DATKONPREMOBD"); + } + + public java.util.Date rsDatpocpripobd() { + return (java.util.Date) params.get("RS_DATPOCPRIPOBD"); + } + + public java.util.Date rsDatkonpripobd() { + return (java.util.Date) params.get("RS_DATKONPRIPOBD"); + } + + public java.util.Date rsDatsplat() { + return (java.util.Date) params.get("RS_DATSPLAT"); + } + + public Double rsSazbazakfix() { + return (Double) params.get("RS_SAZBAZAKFIX"); + } + + public String rsSazbazakfloat() { + return (String) params.get("RS_SAZBAZAKFLOAT"); + } + + public Double rsSazbapripfix() { + return (Double) params.get("RS_SAZBAPRIPFIX"); + } + + public String rsSazbapremfloat() { + return (String) params.get("RS_SAZBAPREMFLOAT"); + } + + public Double rsSazbapremfix() { + return (Double) params.get("RS_SAZBAPREMFIX"); + } + + public String rsProspekt() { + return (String) params.get("RS_PROSPEKT"); + } + + public String rsAtributobdobi() { + return (String) params.get("RS_ATRIBUTOBDOBI"); + } + + public String rsPremsazbasplneno() { + return (String) params.get("RS_PREMSAZBASPLNENO"); + } + + public String rsSpecifickysymbol() { + return (String) params.get("RS_SPECIFICKYSYMBOL"); + } + + public String rsTrhemise() { + return (String) params.get("RS_TRHEMISE"); + } + + public String rsSkupinaemise() { + return (String) params.get("RS_SKUPINAEMISE"); + } + + public String rsProdukt() { + return (String) params.get("RS_PRODUKT"); + } + + public Long rsPocetdesetinnychmist() { + return (Long) params.get("RS_POCETDESETINNYCHMIST"); + } + + public Long rsInvesticnihorizont() { + return (Long) params.get("RS_INVESTICNIHORIZONT"); + } + + public java.util.Date rsDatumvzniku() { + return (java.util.Date) params.get("RS_DATUMVZNIKU"); + } + + public Long rsStupenrizika() { + return (Long) params.get("RS_STUPENRIZIKA"); + } + + public String rsTypfond() { + return (String) params.get("RS_TYPFOND"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF460Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF460Response.java new file mode 100644 index 0000000..9084d3b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF460Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF460Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF461.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF461.java new file mode 100644 index 0000000..799026d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF461.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF461 extends MwfRequest { + + @Parameter(name = "Aktivni") + MWF461 aktivni(String aktivni); + @Parameter(name = "Cif") + MWF461 cif(String cif); + @Parameter(name = "Isin") + MWF461 isin(String isin); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF461Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF461Data.java new file mode 100644 index 0000000..9d82a45 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF461Data.java @@ -0,0 +1,193 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF461Data { + + private Map params; + + public MWF461Data(Map params) { + this.params = params; + } + + public String rsTyppobocka() { + return (String) params.get("RS_TYPPOBOCKA"); + } + + public String rsIsin() { + return (String) params.get("RS_ISIN"); + } + + public String rsNazev() { + return (String) params.get("RS_NAZEV"); + } + + public String rsKategorie() { + return (String) params.get("RS_KATEGORIE"); + } + + public String rsMena() { + return (String) params.get("RS_MENA"); + } + + public String rsProfil() { + return (String) params.get("RS_PROFIL"); + } + + public String rsAktivni() { + return (String) params.get("RS_AKTIVNI"); + } + + public String rsEmitent() { + return (String) params.get("RS_EMITENT"); + } + + public String rsRodina() { + return (String) params.get("RS_RODINA"); + } + + public Double rsPoplatekvstup() { + return (Double) params.get("RS_POPLATEKVSTUP"); + } + + public Double rsPoplateksprava() { + return (Double) params.get("RS_POPLATEKSPRAVA"); + } + + public Double rsCojpl() { + return (Double) params.get("RS_COJPL"); + } + + public java.util.Date rsCojpldatum() { + return (java.util.Date) params.get("RS_COJPLDATUM"); + } + + public java.util.Date rsSplatnost() { + return (java.util.Date) params.get("RS_SPLATNOST"); + } + + public String rsNakup() { + return (String) params.get("RS_NAKUP"); + } + + public String rsProdej() { + return (String) params.get("RS_PRODEJ"); + } + + public String rsPrestup() { + return (String) params.get("RS_PRESTUP"); + } + + public java.util.Date rsObchoddennakup() { + return (java.util.Date) params.get("RS_OBCHODDENNAKUP"); + } + + public java.util.Date rsObchoddenprodej() { + return (java.util.Date) params.get("RS_OBCHODDENPRODEJ"); + } + + public java.util.Date rsObchoddenprestup() { + return (java.util.Date) params.get("RS_OBCHODDENPRESTUP"); + } + + public Double rsCojplczk() { + return (Double) params.get("RS_COJPLCZK"); + } + + public Double rsPocetksCelkem() { + return (Double) params.get("RS_POCETKS_CELKEM"); + } + + public Double rsPocetksDisponibilni() { + return (Double) params.get("RS_POCETKS_DISPONIBILNI"); + } + + public Double rsPocetksBlokace() { + return (Double) params.get("RS_POCETKS_BLOKACE"); + } + + public Double rsObjemCelkemCzk() { + return (Double) params.get("RS_OBJEM_CELKEM_CZK"); + } + + public Double rsMinimalniinvestice() { + return (Double) params.get("RS_MINIMALNIINVESTICE"); + } + + public String rsTechnickyucetcislo() { + return (String) params.get("RS_TECHNICKYUCETCISLO"); + } + + public java.util.Date rsDatpocpremobd() { + return (java.util.Date) params.get("RS_DATPOCPREMOBD"); + } + + public java.util.Date rsDatkonpremobd() { + return (java.util.Date) params.get("RS_DATKONPREMOBD"); + } + + public java.util.Date rsDatpocpripobd() { + return (java.util.Date) params.get("RS_DATPOCPRIPOBD"); + } + + public java.util.Date rsDatkonpripobd() { + return (java.util.Date) params.get("RS_DATKONPRIPOBD"); + } + + public java.util.Date rsDatsplat() { + return (java.util.Date) params.get("RS_DATSPLAT"); + } + + public Double rsSazbazakfix() { + return (Double) params.get("RS_SAZBAZAKFIX"); + } + + public String rsSazbazakfloat() { + return (String) params.get("RS_SAZBAZAKFLOAT"); + } + + public Double rsSazbapripfix() { + return (Double) params.get("RS_SAZBAPRIPFIX"); + } + + public String rsSazbapremfloat() { + return (String) params.get("RS_SAZBAPREMFLOAT"); + } + + public Double rsSazbapremfix() { + return (Double) params.get("RS_SAZBAPREMFIX"); + } + + public String rsProspekt() { + return (String) params.get("RS_PROSPEKT"); + } + + public String rsAtributobdobi() { + return (String) params.get("RS_ATRIBUTOBDOBI"); + } + + public String rsPremsazbasplneno() { + return (String) params.get("RS_PREMSAZBASPLNENO"); + } + + public String rsSpecifickysymbol() { + return (String) params.get("RS_SPECIFICKYSYMBOL"); + } + + public String rsTrhemise() { + return (String) params.get("RS_TRHEMISE"); + } + + public String rsSkupinaemise() { + return (String) params.get("RS_SKUPINAEMISE"); + } + + public String rsProdukt() { + return (String) params.get("RS_PRODUKT"); + } + + public Long rsPocetdesetinnychmist() { + return (Long) params.get("RS_POCETDESETINNYCHMIST"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF461Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF461Response.java new file mode 100644 index 0000000..4eae44a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF461Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF461Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF474.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF474.java new file mode 100644 index 0000000..efe3580 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF474.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF474 extends MwfRequest { + + @Parameter(name = "CIF") + MWF474 cif(String cif); + @Parameter(name = "Data") + MWF474 data(java.util.List data); + @Parameter(name = "IdZadosti") + MWF474 idZadosti(String idZadosti); + @Parameter(name = "PhoneNum") + MWF474 phoneNum(String phoneNum); + @Parameter(name = "RC") + MWF474 rc(String rc); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF474Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF474Data.java new file mode 100644 index 0000000..9b6cb80 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF474Data.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF474Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWF474Data() {} + + public static MWF474Data builder() { + return new MWF474Data(); + } + + public MWF474Data rsCmid(String rsCmid) { + params.put("RS_CMID", rsCmid); + return this; + } + + public MWF474Data rsDocumenttype(String rsDocumenttype) { + params.put("RS_DOCUMENTTYPE", rsDocumenttype); + return this; + } + + public MWF474Data rsDocumentname(String rsDocumentname) { + params.put("RS_DOCUMENTNAME", rsDocumentname); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF474Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF474Response.java new file mode 100644 index 0000000..14c0740 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF474Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF474Response { + + @Parameter(name = "CMID") + String cmid(); + + @Parameter(name = "WFID") + String wfid(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF47D.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF47D.java new file mode 100644 index 0000000..9927f63 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF47D.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF47D extends MwfRequest { + + @Parameter(name = "APP_STATUS_ID") + MWF47D appStatusId(String appStatusId); + @Parameter(name = "APP_SUBTYPE_ID") + MWF47D appSubtypeId(String appSubtypeId); + @Parameter(name = "APP_TYPE_ID") + MWF47D appTypeId(String appTypeId); + @Parameter(name = "CONTRACT_NR") + MWF47D contractNr(String contractNr); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF47DData.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF47DData.java new file mode 100644 index 0000000..00f3f74 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF47DData.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF47DData { + + private Map params; + + public MWF47DData(Map params) { + this.params = params; + } + + public String rsAppId() { + return (String) params.get("RS_APP_ID"); + } + + public Long rsAppKey() { + return (Long) params.get("RS_APP_KEY"); + } + + public String rsAppTypeId() { + return (String) params.get("RS_APP_TYPE_ID"); + } + + public String rsAppSubtypeId() { + return (String) params.get("RS_APP_SUBTYPE_ID"); + } + + public String rsAppStatusId() { + return (String) params.get("RS_APP_STATUS_ID"); + } + + public java.util.Date rsDecisionDate() { + return (java.util.Date) params.get("RS_DECISION_DATE"); + } + + public String rsProductType() { + return (String) params.get("RS_PRODUCT_TYPE"); + } + + public String rsSalesProductType() { + return (String) params.get("RS_SALES_PRODUCT_TYPE"); + } + + public String rsCardBrand() { + return (String) params.get("RS_CARD_BRAND"); + } + + public String rsCardVariant() { + return (String) params.get("RS_CARD_VARIANT"); + } + + public String rsCardPromo() { + return (String) params.get("RS_CARD_PROMO"); + } + + public String rsCardDesign() { + return (String) params.get("RS_CARD_DESIGN"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF47DResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF47DResponse.java new file mode 100644 index 0000000..182c9d2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF47DResponse.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF47DResponse { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF485.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF485.java new file mode 100644 index 0000000..c395499 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF485.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF485 extends MwfRequest { + + @Parameter(name = "CardAccountNumber") + MWF485 cardAccountNumber(String cardAccountNumber); + @Parameter(name = "NextRecKey") + MWF485 nextRecKey(String nextRecKey); + @Parameter(name = "Org") + MWF485 org(String org); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF485Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF485Data.java new file mode 100644 index 0000000..06c7677 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF485Data.java @@ -0,0 +1,117 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF485Data { + + private Map params; + + public MWF485Data(Map params) { + this.params = params; + } + + public java.util.Date rsAuthdate() { + return (java.util.Date) params.get("RS_AUTHDATE"); + } + + public java.util.Date rsAuthtime() { + return (java.util.Date) params.get("RS_AUTHTIME"); + } + + public Double rsAuthamt() { + return (Double) params.get("RS_AUTHAMT"); + } + + public String rsAuthresp() { + return (String) params.get("RS_AUTHRESP"); + } + + public String rsAuthreason() { + return (String) params.get("RS_AUTHREASON"); + } + + public String rsReqtype() { + return (String) params.get("RS_REQTYPE"); + } + + public String rsRevind() { + return (String) params.get("RS_REVIND"); + } + + public Double rsCreditplan() { + return (Double) params.get("RS_CREDITPLAN"); + } + + public Double rsSkunbr() { + return (Double) params.get("RS_SKUNBR"); + } + + public Double rsTotsalesamt() { + return (Double) params.get("RS_TOTSALESAMT"); + } + + public String rsTotsalesamts() { + return (String) params.get("RS_TOTSALESAMTS"); + } + + public Double rsOffdownpmt() { + return (Double) params.get("RS_OFFDOWNPMT"); + } + + public String rsOffdownpmts() { + return (String) params.get("RS_OFFDOWNPMTS"); + } + + public Double rsDownpmtused() { + return (Double) params.get("RS_DOWNPMTUSED"); + } + + public String rsDownpmtuseds() { + return (String) params.get("RS_DOWNPMTUSEDS"); + } + + public String rsAction() { + return (String) params.get("RS_ACTION"); + } + + public String rsAuthid() { + return (String) params.get("RS_AUTHID"); + } + + public String rsAuthtype() { + return (String) params.get("RS_AUTHTYPE"); + } + + public String rsCardnbr() { + return (String) params.get("RS_CARDNBR"); + } + + public Double rsCardseq() { + return (Double) params.get("RS_CARDSEQ"); + } + + public Long rsTxnrectype() { + return (Long) params.get("RS_TXNRECTYPE"); + } + + public String rsSourcefile() { + return (String) params.get("RS_SOURCEFILE"); + } + + public String rsTidbinicafid() { + return (String) params.get("RS_TIDBINICAFID"); + } + + public Double rsDaycd() { + return (Double) params.get("RS_DAYCD"); + } + + public String rsDesc() { + return (String) params.get("RS_DESC"); + } + + public String rsReference() { + return (String) params.get("RS_REFERENCE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF485Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF485Response.java new file mode 100644 index 0000000..05cf3e8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF485Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF485Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "MoreRecInd") + String moreRecInd(); + + @Parameter(name = "NextRecKey") + String nextRecKey(); + + @Parameter(name = "NumberOfRecords") + Long numberOfRecords(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF494.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF494.java new file mode 100644 index 0000000..8061638 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF494.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF494 extends MwfRequest { + + @Parameter(name = "BirthNumber") + MWF494 birthNumber(String birthNumber); + @Parameter(name = "CompanyIdentificationNumber") + MWF494 companyIdentificationNumber(String companyIdentificationNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF494Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF494Data.java new file mode 100644 index 0000000..f5fa37a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF494Data.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF494Data { + + private Map params; + + public MWF494Data(Map params) { + this.params = params; + } + + public String rsAccountnumber() { + return (String) params.get("RS_ACCOUNTNUMBER"); + } + + public String rsCardnumber() { + return (String) params.get("RS_CARDNUMBER"); + } + + public String rsContractnumber() { + return (String) params.get("RS_CONTRACTNUMBER"); + } + + public Double rsDisponiblebalance() { + return (Double) params.get("RS_DISPONIBLEBALANCE"); + } + + public String rsProducttype() { + return (String) params.get("RS_PRODUCTTYPE"); + } + + public Double rsCreditlimit() { + return (Double) params.get("RS_CREDITLIMIT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF494Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF494Response.java new file mode 100644 index 0000000..4913978 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF494Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF494Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4A9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4A9.java new file mode 100644 index 0000000..7ff28d9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4A9.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4A9 extends MwfRequest { + + @Parameter(name = "ProdPackageKey") + MWF4A9 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4A9Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4A9Data.java new file mode 100644 index 0000000..1d6a69a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4A9Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4A9Data { + + private Map params; + + public MWF4A9Data(Map params) { + this.params = params; + } + + public String rsCmid() { + return (String) params.get("RS_CMID"); + } + + public String rsUrl() { + return (String) params.get("RS_URL"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4A9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4A9Response.java new file mode 100644 index 0000000..2714f58 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4A9Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4A9Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C3.java new file mode 100644 index 0000000..170a4e6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C3.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4C3 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF4C3 appKey(Long appKey); + @Parameter(name = "BirthNumber") + MWF4C3 birthNumber(String birthNumber); + @Parameter(name = "BranchId") + MWF4C3 branchId(String branchId); + @Parameter(name = "FirstName") + MWF4C3 firstName(String firstName); + @Parameter(name = "KulKey") + MWF4C3 kulKey(Long kulKey); + @Parameter(name = "LastName") + MWF4C3 lastName(String lastName); + @Parameter(name = "SignatureDate") + MWF4C3 signatureDate(java.util.Date signatureDate); + @Parameter(name = "SignatureType") + MWF4C3 signatureType(String signatureType); + @Parameter(name = "Sso") + MWF4C3 sso(String sso); + @Parameter(name = "WfId") + MWF4C3 wfId(String wfId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C3Response.java new file mode 100644 index 0000000..3bcfcbc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C3Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4C3Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C7.java new file mode 100644 index 0000000..4dc01c4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C7.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4C7 extends MwfRequest { + + @Parameter(name = "BirthNumber") + MWF4C7 birthNumber(String birthNumber); + @Parameter(name = "BranchId") + MWF4C7 branchId(String branchId); + @Parameter(name = "ChannelId") + MWF4C7 channelId(String channelId); + @Parameter(name = "ClientType") + MWF4C7 clientType(String clientType); + @Parameter(name = "Context") + MWF4C7 context(String context); + @Parameter(name = "Ico") + MWF4C7 ico(String ico); + @Parameter(name = "ProductClass") + MWF4C7 productClass(String productClass); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C7Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C7Data.java new file mode 100644 index 0000000..71189f0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C7Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4C7Data { + + private Map params; + + public MWF4C7Data(Map params) { + this.params = params; + } + + public String rsAppkey() { + return (String) params.get("RS_APPKEY"); + } + + public String rsProductclass() { + return (String) params.get("RS_PRODUCTCLASS"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C7Response.java new file mode 100644 index 0000000..d2b2342 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C7Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4C7Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "InstPtKey") + String instPtKey(); + + @Parameter(name = "KulKey") + Long kulKey(); + + @Parameter(name = "ProcessResult") + String processResult(); + + @Parameter(name = "WfId") + String wfId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C8.java new file mode 100644 index 0000000..87297cc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C8.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4C8 extends MwfRequest { + + @Parameter(name = "BirthNumber") + MWF4C8 birthNumber(String birthNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C8Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C8Data.java new file mode 100644 index 0000000..871c331 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C8Data.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4C8Data { + + private Map params; + + public MWF4C8Data(Map params) { + this.params = params; + } + + public String rsCurrentaccountnumber() { + return (String) params.get("RS_CURRENTACCOUNTNUMBER"); + } + + public String rsCurrentaccounttype() { + return (String) params.get("RS_CURRENTACCOUNTTYPE"); + } + + public String rsCurrentaccountname() { + return (String) params.get("RS_CURRENTACCOUNTNAME"); + } + + public String rsCurrentaccountcurrency() { + return (String) params.get("RS_CURRENTACCOUNTCURRENCY"); + } + + public String rsCurrentaccountfeeplan() { + return (String) params.get("RS_CURRENTACCOUNTFEEPLAN"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C8Response.java new file mode 100644 index 0000000..9cb92f1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4C8Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4C8Response { + + @Parameter(name = "ActiveIB") + String activeIB(); + + @Parameter(name = "ActiveLoanApplication") + String activeLoanApplication(); + + @Parameter(name = "CIF") + String cif(); + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4D3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4D3.java new file mode 100644 index 0000000..023907a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4D3.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4D3 extends MwfRequest { + + @Parameter(name = "BirthNumber") + MWF4D3 birthNumber(String birthNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4D3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4D3Response.java new file mode 100644 index 0000000..2aefd90 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4D3Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4D3Response { + + @Parameter(name = "HasActiveProducts") + String hasActiveProducts(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E0.java new file mode 100644 index 0000000..ddfc627 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E0.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4E0 extends MwfRequest { + + @Parameter(name = "ApplicationKey") + MWF4E0 applicationKey(Long applicationKey); + @Parameter(name = "ClientCif") + MWF4E0 clientCif(String clientCif); + @Parameter(name = "Data") + MWF4E0 data(java.util.List data); + @Parameter(name = "DocumentCardType") + MWF4E0 documentCardType(String documentCardType); + @Parameter(name = "DocumentFileType") + MWF4E0 documentFileType(String documentFileType); + @Parameter(name = "DocumentItemType") + MWF4E0 documentItemType(String documentItemType); + @Parameter(name = "DocumentType") + MWF4E0 documentType(String documentType); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E0Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E0Data.java new file mode 100644 index 0000000..44140a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E0Data.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF4E0Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWF4E0Data() {} + + public static MWF4E0Data builder() { + return new MWF4E0Data(); + } + + public MWF4E0Data rsCmid(String rsCmid) { + params.put("RS_CMID", rsCmid); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E0Response.java new file mode 100644 index 0000000..7cc20f8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E0Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4E0Response { + + @Parameter(name = "CmId") + String cmId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E1.java new file mode 100644 index 0000000..8b6bd16 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E1.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4E1 extends MwfRequest { + + @Parameter(name = "ClientEmployerCompanyNumber") + MWF4E1 clientEmployerCompanyNumber(String clientEmployerCompanyNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E1Response.java new file mode 100644 index 0000000..e3ca88a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E1Response.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4E1Response { + + @Parameter(name = "ClientEmployerBusAddrCity") + String clientEmployerBusAddrCity(); + + @Parameter(name = "ClientEmployerBusAddrDescNr") + String clientEmployerBusAddrDescNr(); + + @Parameter(name = "ClientEmployerBusAddrOrientNr") + String clientEmployerBusAddrOrientNr(); + + @Parameter(name = "ClientEmployerBusAddrStreet") + String clientEmployerBusAddrStreet(); + + @Parameter(name = "ClientEmployerBusAddrZipCode") + String clientEmployerBusAddrZipCode(); + + @Parameter(name = "ClientEmployerBusinessName") + String clientEmployerBusinessName(); + + @Parameter(name = "ClientEmployerCompanyNumber") + String clientEmployerCompanyNumber(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E2.java new file mode 100644 index 0000000..cbaf44c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E2.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4E2 extends MwfRequest { + + @Parameter(name = "ApplicationKey") + MWF4E2 applicationKey(Long applicationKey); + @Parameter(name = "TransactionCaptureSnapKey") + MWF4E2 transactionCaptureSnapKey(Long transactionCaptureSnapKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E2RWSClientIncomes.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E2RWSClientIncomes.java new file mode 100644 index 0000000..e353c17 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E2RWSClientIncomes.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4E2RWSClientIncomes { + + private Map params; + + public MWF4E2RWSClientIncomes(Map params) { + this.params = params; + } + + public String rsEmployercompanynumber() { + return (String) params.get("RS_EMPLOYERCOMPANYNUMBER"); + } + + public Double rsEmployeeincomeamount() { + return (Double) params.get("RS_EMPLOYEEINCOMEAMOUNT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E2Response.java new file mode 100644 index 0000000..333fe5d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4E2Response { + + @Parameter(name = "RWS_ClientIncomes") + java.util.List rWSClientIncomes(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E9.java new file mode 100644 index 0000000..7ae136b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E9.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4E9 extends MwfRequest { + + @Parameter(name = "CIF") + MWF4E9 cif(String cif); + @Parameter(name = "PROD_INST_KEY") + MWF4E9 prodInstKey(Long prodInstKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E9Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E9Data.java new file mode 100644 index 0000000..b6047c4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E9Data.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4E9Data { + + private Map params; + + public MWF4E9Data(Map params) { + this.params = params; + } + + public Long rsInsurProdInstKey() { + return (Long) params.get("RS_INSUR_PROD_INST_KEY"); + } + + public String rsInsurAccNum() { + return (String) params.get("RS_INSUR_ACC_NUM"); + } + + public Long rsInsurInstPtKey() { + return (Long) params.get("RS_INSUR_INST_PT_KEY"); + } + + public String rsInsurFirstName() { + return (String) params.get("RS_INSUR_FIRST_NAME"); + } + + public String rsInsurFamilyName() { + return (String) params.get("RS_INSUR_FAMILY_NAME"); + } + + public String rsInsurBirthNumber() { + return (String) params.get("RS_INSUR_BIRTH_NUMBER"); + } + + public java.util.Date rsInsurBirthDate() { + return (java.util.Date) params.get("RS_INSUR_BIRTH_DATE"); + } + + public String rsInsurDiffInstPtFlag() { + return (String) params.get("RS_INSUR_DIFF_INST_PT_FLAG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E9Response.java new file mode 100644 index 0000000..1510ec1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4E9Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4E9Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F2.java new file mode 100644 index 0000000..f1d87c5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F2.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4F2 extends MwfRequest { + + @Parameter(name = "AccountNumber") + MWF4F2 accountNumber(String accountNumber); + @Parameter(name = "CIF") + MWF4F2 cif(String cif); + @Parameter(name = "ChannelId") + MWF4F2 channelId(String channelId); + @Parameter(name = "FeePlan") + MWF4F2 feePlan(String feePlan); + @Parameter(name = "ProductClass") + MWF4F2 productClass(String productClass); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F2Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F2Data.java new file mode 100644 index 0000000..a2320a7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F2Data.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4F2Data { + + private Map params; + + public MWF4F2Data(Map params) { + this.params = params; + } + + public String rsPackageid() { + return (String) params.get("RS_PACKAGEID"); + } + + public String rsPackagename() { + return (String) params.get("RS_PACKAGENAME"); + } + + public String rsPackagedescription() { + return (String) params.get("RS_PACKAGEDESCRIPTION"); + } + + public Double rsPrice() { + return (Double) params.get("RS_PRICE"); + } + + public String rsCurrency() { + return (String) params.get("RS_CURRENCY"); + } + + public String rsPeriod() { + return (String) params.get("RS_PERIOD"); + } + + public String rsProducttype() { + return (String) params.get("RS_PRODUCTTYPE"); + } + + public String rsProductcode() { + return (String) params.get("RS_PRODUCTCODE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F2Response.java new file mode 100644 index 0000000..50a5dda --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F2Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4F2Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Index") + Long index(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F9.java new file mode 100644 index 0000000..57aa315 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F9.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4F9 extends MwfRequest { + + @Parameter(name = "AccountNumber") + MWF4F9 accountNumber(String accountNumber); + @Parameter(name = "AdditionalServiceState") + MWF4F9 additionalServiceState(String additionalServiceState); + @Parameter(name = "CIF") + MWF4F9 cif(String cif); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F9Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F9Data.java new file mode 100644 index 0000000..c1b29cf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F9Data.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4F9Data { + + private Map params; + + public MWF4F9Data(Map params) { + this.params = params; + } + + public String rsPackageid() { + return (String) params.get("RS_PACKAGEID"); + } + + public String rsAdditionalservicestate() { + return (String) params.get("RS_ADDITIONALSERVICESTATE"); + } + + public String rsPackagename() { + return (String) params.get("RS_PACKAGENAME"); + } + + public String rsCreationchannel() { + return (String) params.get("RS_CREATIONCHANNEL"); + } + + public String rsProductcode() { + return (String) params.get("RS_PRODUCTCODE"); + } + + public String rsCurrency() { + return (String) params.get("RS_CURRENCY"); + } + + public String rsPeriod() { + return (String) params.get("RS_PERIOD"); + } + + public Double rsPrice() { + return (Double) params.get("RS_PRICE"); + } + + public String rsCancellationchannel() { + return (String) params.get("RS_CANCELLATIONCHANNEL"); + } + + public java.util.Date rsCancellationdate() { + return (java.util.Date) params.get("RS_CANCELLATIONDATE"); + } + + public java.util.Date rsCreationdate() { + return (java.util.Date) params.get("RS_CREATIONDATE"); + } + + public String rsProducttype() { + return (String) params.get("RS_PRODUCTTYPE"); + } + + public Long rsProdinstkey() { + return (Long) params.get("RS_PRODINSTKEY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F9Response.java new file mode 100644 index 0000000..0a20917 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4F9Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4F9Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Index") + Long index(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G0.java new file mode 100644 index 0000000..542e417 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G0.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4G0 extends MwfRequest { + + @Parameter(name = "CISLO_UCTU") + MWF4G0 cisloUctu(String cisloUctu); + @Parameter(name = "DATUM_PODPISU") + MWF4G0 datumPodpisu(java.util.Date datumPodpisu); + @Parameter(name = "ID_OBCHOD") + MWF4G0 idObchod(String idObchod); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G0Response.java new file mode 100644 index 0000000..6bc78db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G0Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4G0Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G1.java new file mode 100644 index 0000000..1f68e27 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G1.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4G1 extends MwfRequest { + + @Parameter(name = "ADRESA_BYDLISTE_CO") + MWF4G1 adresaBydlisteCo(String adresaBydlisteCo); + @Parameter(name = "ADRESA_BYDLISTE_CP") + MWF4G1 adresaBydlisteCp(String adresaBydlisteCp); + @Parameter(name = "ADRESA_BYDLISTE_MESTO") + MWF4G1 adresaBydlisteMesto(String adresaBydlisteMesto); + @Parameter(name = "ADRESA_BYDLISTE_PSC") + MWF4G1 adresaBydlistePsc(String adresaBydlistePsc); + @Parameter(name = "ADRESA_BYDLISTE_ULICE") + MWF4G1 adresaBydlisteUlice(String adresaBydlisteUlice); + @Parameter(name = "ADRESA_BYDLISTE_ZEME") + MWF4G1 adresaBydlisteZeme(String adresaBydlisteZeme); + @Parameter(name = "ADRESA_KONTAKTNI_CO") + MWF4G1 adresaKontaktniCo(String adresaKontaktniCo); + @Parameter(name = "ADRESA_KONTAKTNI_CP") + MWF4G1 adresaKontaktniCp(String adresaKontaktniCp); + @Parameter(name = "ADRESA_KONTAKTNI_MESTO") + MWF4G1 adresaKontaktniMesto(String adresaKontaktniMesto); + @Parameter(name = "ADRESA_KONTAKTNI_PSC") + MWF4G1 adresaKontaktniPsc(String adresaKontaktniPsc); + @Parameter(name = "ADRESA_KONTAKTNI_ULICE") + MWF4G1 adresaKontaktniUlice(String adresaKontaktniUlice); + @Parameter(name = "ADRESA_KONTAKTNI_ZEME") + MWF4G1 adresaKontaktniZeme(String adresaKontaktniZeme); + @Parameter(name = "CIF") + MWF4G1 cif(String cif); + @Parameter(name = "CMDID") + MWF4G1 cmdid(String cmdid); + @Parameter(name = "DATUM_PODPISU") + MWF4G1 datumPodpisu(java.util.Date datumPodpisu); + @Parameter(name = "EMAIL") + MWF4G1 email(String email); + @Parameter(name = "ID_OBCHOD") + MWF4G1 idObchod(String idObchod); + @Parameter(name = "JMENO") + MWF4G1 jmeno(String jmeno); + @Parameter(name = "PLATNOST_DO") + MWF4G1 platnostDo(java.util.Date platnostDo); + @Parameter(name = "PLATNOST_OD") + MWF4G1 platnostOd(java.util.Date platnostOd); + @Parameter(name = "PODPIS_SMS") + MWF4G1 podpisSms(String podpisSms); + @Parameter(name = "PRIJMENI") + MWF4G1 prijmeni(String prijmeni); + @Parameter(name = "RC") + MWF4G1 rc(String rc); + @Parameter(name = "ROLE") + MWF4G1 role(String role); + @Parameter(name = "TELEFON1") + MWF4G1 telefon1(String telefon1); + @Parameter(name = "TELEFON2") + MWF4G1 telefon2(String telefon2); + @Parameter(name = "VYSE_POHLEDAVKY") + MWF4G1 vysePohledavky(String vysePohledavky); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G1Response.java new file mode 100644 index 0000000..8f902e8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4G1Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4G1Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4.java new file mode 100644 index 0000000..0467e1e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4H4 extends MwfRequest { + + @Parameter(name = "CHANNEL_ID") + MWF4H4 channelId(String channelId); + @Parameter(name = "CIF") + MWF4H4 cif(String cif); + @Parameter(name = "FILTER_VALUE") + MWF4H4 filterValue(String filterValue); + @Parameter(name = "RS_IN") + MWF4H4 rsIn(java.util.List rsIn); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4Response.java new file mode 100644 index 0000000..8a69230 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4H4Response { + + @Parameter(name = "RS_OUT") + java.util.List rsOut(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4RsIn.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4RsIn.java new file mode 100644 index 0000000..1048536 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4RsIn.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF4H4RsIn implements MwfData { + + private Map params = new HashMap<>(); + + private MWF4H4RsIn() {} + + public static MWF4H4RsIn builder() { + return new MWF4H4RsIn(); + } + + public MWF4H4RsIn rsInsuranceId(String rsInsuranceId) { + params.put("RS_INSURANCE_ID", rsInsuranceId); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4RsOut.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4RsOut.java new file mode 100644 index 0000000..77e6f3c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H4RsOut.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4H4RsOut { + + private Map params; + + public MWF4H4RsOut(Map params) { + this.params = params; + } + + public String rsInsuranceId() { + return (String) params.get("RS_INSURANCE_ID"); + } + + public Long rsAccExistsFlag() { + return (Long) params.get("RS_ACC_EXISTS_FLAG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6.java new file mode 100644 index 0000000..6b5f504 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4H6 extends MwfRequest { + + @Parameter(name = "ChannelId") + MWF4H6 channelId(String channelId); + @Parameter(name = "ProdPackageKey") + MWF4H6 prodPackageKey(Long prodPackageKey); + @Parameter(name = "RWS_IDsForProcessing") + MWF4H6 rWSIDsForProcessing(java.util.List rWSIDsForProcessing); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6RWSCreatedDocuments.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6RWSCreatedDocuments.java new file mode 100644 index 0000000..5280e27 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6RWSCreatedDocuments.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4H6RWSCreatedDocuments { + + private Map params; + + public MWF4H6RWSCreatedDocuments(Map params) { + this.params = params; + } + + public Long rsDocinstkey() { + return (Long) params.get("RS_DOCINSTKEY"); + } + + public String rsDocumenttype() { + return (String) params.get("RS_DOCUMENTTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6RWSIDsForProcessing.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6RWSIDsForProcessing.java new file mode 100644 index 0000000..d131f02 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6RWSIDsForProcessing.java @@ -0,0 +1,97 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF4H6RWSIDsForProcessing implements MwfData { + + private Map params = new HashMap<>(); + + private MWF4H6RWSIDsForProcessing() {} + + public static MWF4H6RWSIDsForProcessing builder() { + return new MWF4H6RWSIDsForProcessing(); + } + + public MWF4H6RWSIDsForProcessing rsFirstname(String rsFirstname) { + params.put("RS_FIRSTNAME", rsFirstname); + return this; + } + + public MWF4H6RWSIDsForProcessing rsSurname(String rsSurname) { + params.put("RS_SURNAME", rsSurname); + return this; + } + + public MWF4H6RWSIDsForProcessing rsBirthnumber(String rsBirthnumber) { + params.put("RS_BIRTHNUMBER", rsBirthnumber); + return this; + } + + public MWF4H6RWSIDsForProcessing rsIdcardnumber(String rsIdcardnumber) { + params.put("RS_IDCARDNUMBER", rsIdcardnumber); + return this; + } + + public MWF4H6RWSIDsForProcessing rsIdcardvalidto(java.util.Date rsIdcardvalidto) { + params.put("RS_IDCARDVALIDTO", rsIdcardvalidto); + return this; + } + + public MWF4H6RWSIDsForProcessing rsIdcardtype(String rsIdcardtype) { + params.put("RS_IDCARDTYPE", rsIdcardtype); + return this; + } + + public MWF4H6RWSIDsForProcessing rsIdcardpublishingcountry(String rsIdcardpublishingcountry) { + params.put("RS_IDCARDPUBLISHINGCOUNTRY", rsIdcardpublishingcountry); + return this; + } + + public MWF4H6RWSIDsForProcessing rsAddressstreet(String rsAddressstreet) { + params.put("RS_ADDRESSSTREET", rsAddressstreet); + return this; + } + + public MWF4H6RWSIDsForProcessing rsAddresshousenumber(String rsAddresshousenumber) { + params.put("RS_ADDRESSHOUSENUMBER", rsAddresshousenumber); + return this; + } + + public MWF4H6RWSIDsForProcessing rsAddresscity(String rsAddresscity) { + params.put("RS_ADDRESSCITY", rsAddresscity); + return this; + } + + public MWF4H6RWSIDsForProcessing rsAddresszipcode(String rsAddresszipcode) { + params.put("RS_ADDRESSZIPCODE", rsAddresszipcode); + return this; + } + + public MWF4H6RWSIDsForProcessing rsAddresscountry(String rsAddresscountry) { + params.put("RS_ADDRESSCOUNTRY", rsAddresscountry); + return this; + } + + public MWF4H6RWSIDsForProcessing rsNationalidcontrolnumber(Long rsNationalidcontrolnumber) { + params.put("RS_NATIONALIDCONTROLNUMBER", rsNationalidcontrolnumber); + return this; + } + + public MWF4H6RWSIDsForProcessing rsAddresslandregistrynumber(String rsAddresslandregistrynumber) { + params.put("RS_ADDRESSLANDREGISTRYNUMBER", rsAddresslandregistrynumber); + return this; + } + + public MWF4H6RWSIDsForProcessing rsCmid(String rsCmid) { + params.put("RS_CMID", rsCmid); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6Response.java new file mode 100644 index 0000000..80393dd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H6Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4H6Response { + + @Parameter(name = "AutoProcessDone") + Boolean autoProcessDone(); + + @Parameter(name = "RWS_CreatedDocuments") + java.util.List rWSCreatedDocuments(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7.java new file mode 100644 index 0000000..5c085a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4H7 extends MwfRequest { + + @Parameter(name = "ChannelId") + MWF4H7 channelId(String channelId); + @Parameter(name = "ClientName") + MWF4H7 clientName(String clientName); + @Parameter(name = "ClientSurname") + MWF4H7 clientSurname(String clientSurname); + @Parameter(name = "CmId") + MWF4H7 cmId(String cmId); + @Parameter(name = "DocumentSuspiciousData") + MWF4H7 documentSuspiciousData(Boolean documentSuspiciousData); + @Parameter(name = "Email") + MWF4H7 email(String email); + @Parameter(name = "Geolocation") + MWF4H7 geolocation(String geolocation); + @Parameter(name = "NationalIDControlNumber") + MWF4H7 nationalIDControlNumber(Long nationalIDControlNumber); + @Parameter(name = "ProdPackageKey") + MWF4H7 prodPackageKey(Long prodPackageKey); + @Parameter(name = "RWS_DocumentEdited") + MWF4H7 rWSDocumentEdited(java.util.List rWSDocumentEdited); + @Parameter(name = "RWS_DocumentNameMismatch") + MWF4H7 rWSDocumentNameMismatch(java.util.List rWSDocumentNameMismatch); + @Parameter(name = "RWS_DocumentSuspiciousScan") + MWF4H7 rWSDocumentSuspiciousScan(java.util.List rWSDocumentSuspiciousScan); + @Parameter(name = "VerificationMethod") + MWF4H7 verificationMethod(String verificationMethod); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7RWSDocumentEdited.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7RWSDocumentEdited.java new file mode 100644 index 0000000..cb3bba7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7RWSDocumentEdited.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4H7RWSDocumentEdited { + + private Map params; + + public MWF4H7RWSDocumentEdited(Map params) { + this.params = params; + } + + public String rsIdtype() { + return (String) params.get("RS_IDTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7RWSDocumentNameMismatch.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7RWSDocumentNameMismatch.java new file mode 100644 index 0000000..840e91c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7RWSDocumentNameMismatch.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4H7RWSDocumentNameMismatch { + + private Map params; + + public MWF4H7RWSDocumentNameMismatch(Map params) { + this.params = params; + } + + public String rsIdtype() { + return (String) params.get("RS_IDTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7RWSDocumentSuspiciousScan.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7RWSDocumentSuspiciousScan.java new file mode 100644 index 0000000..be7a867 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7RWSDocumentSuspiciousScan.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF4H7RWSDocumentSuspiciousScan { + + private Map params; + + public MWF4H7RWSDocumentSuspiciousScan(Map params) { + this.params = params; + } + + public String rsIdtype() { + return (String) params.get("RS_IDTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7Response.java new file mode 100644 index 0000000..620315f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4H7Response { + + @Parameter(name = "WorkflowID") + String workflowID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H9.java new file mode 100644 index 0000000..4ef22d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H9.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF4H9 extends MwfRequest { + + @Parameter(name = "CisloKaretnihoUctu") + MWF4H9 cisloKaretnihoUctu(Long cisloKaretnihoUctu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H9Response.java new file mode 100644 index 0000000..dc959e8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF4H9Response.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF4H9Response { + + @Parameter(name = "AktualniSplatkaPoslednihoVypisu") + Double aktualniSplatkaPoslednihoVypisu(); + + @Parameter(name = "CelkemDoplatit") + Double celkemDoplatit(); + + @Parameter(name = "DatumPosledniSplatky") + java.util.Date datumPosledniSplatky(); + + @Parameter(name = "DatumPoslednihoVypisu") + java.util.Date datumPoslednihoVypisu(); + + @Parameter(name = "DatumSplatnosti") + java.util.Date datumSplatnosti(); + + @Parameter(name = "DisponibilniZustatek") + Double disponibilniZustatek(); + + @Parameter(name = "SplatnaMinimalniSplatka") + Double splatnaMinimalniSplatka(); + + @Parameter(name = "UverovyRamec") + Double uverovyRamec(); + + @Parameter(name = "UverovyRamecVycerpany") + Double uverovyRamecVycerpany(); + + @Parameter(name = "VysePosledniSplatky") + Double vysePosledniSplatky(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF55D.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF55D.java new file mode 100644 index 0000000..58c9bbe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF55D.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF55D extends MwfRequest { + + @Parameter(name = "CARD_LOGO") + MWF55D cardLogo(String cardLogo); + @Parameter(name = "CARD_NUMBER") + MWF55D cardNumber(String cardNumber); + @Parameter(name = "CONTRACT_NUMBER") + MWF55D contractNumber(String contractNumber); + @Parameter(name = "DO_INFOLIMIT_FLAG") + MWF55D doInfolimitFlag(Long doInfolimitFlag); + @Parameter(name = "ID_OM") + MWF55D idOm(String idOm); + @Parameter(name = "PERSONAL_ID") + MWF55D personalId(String personalId); + @Parameter(name = "RC_NUM_CARD_HOLDER") + MWF55D rcNumCardHolder(String rcNumCardHolder); + @Parameter(name = "RC_NUM_CHECK_FLAG") + MWF55D rcNumCheckFlag(Long rcNumCheckFlag); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF55DData.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF55DData.java new file mode 100644 index 0000000..07088f9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF55DData.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF55DData { + + private Map params; + + public MWF55DData(Map params) { + this.params = params; + } + + public String rsSupplementaryAllowedTechgy() { + return (String) params.get("RS_SUPPLEMENTARY_ALLOWED_TECHGY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF55DResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF55DResponse.java new file mode 100644 index 0000000..28fcd65 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF55DResponse.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF55DResponse { + + @Parameter(name = "CARD_NUMBER") + String cardNumber(); + + @Parameter(name = "CLIP_ALLOWED_FLAG") + String clipAllowedFlag(); + + @Parameter(name = "CLIP_AMOUNT") + Double clipAmount(); + + @Parameter(name = "CLIP_CASH_LIMIT_PERCENT") + Double clipCashLimitPercent(); + + @Parameter(name = "CLIP_MIN_INSTALMENT_PERCENT") + Double clipMinInstalmentPercent(); + + @Parameter(name = "CONTRACT_NUMBER") + String contractNumber(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "SUPPLEMENTARY_ALLOWED_FLAG") + String supplementaryAllowedFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C1.java new file mode 100644 index 0000000..7217499 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C1.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF5C1 extends MwfRequest { + + @Parameter(name = "AccountNumber") + MWF5C1 accountNumber(String accountNumber); + @Parameter(name = "ActivatingPassword") + MWF5C1 activatingPassword(String activatingPassword); + @Parameter(name = "AppKey") + MWF5C1 appKey(String appKey); + @Parameter(name = "BranchId") + MWF5C1 branchId(String branchId); + @Parameter(name = "CardHolderBusinessName") + MWF5C1 cardHolderBusinessName(String cardHolderBusinessName); + @Parameter(name = "CardHolderName") + MWF5C1 cardHolderName(String cardHolderName); + @Parameter(name = "ChannelId") + MWF5C1 channelId(String channelId); + @Parameter(name = "ClientType") + MWF5C1 clientType(String clientType); + @Parameter(name = "FirstPaymentDay") + MWF5C1 firstPaymentDay(java.util.Date firstPaymentDay); + @Parameter(name = "InstallmentPaymentsType") + MWF5C1 installmentPaymentsType(String installmentPaymentsType); + @Parameter(name = "InsuranceType") + MWF5C1 insuranceType(String insuranceType); + @Parameter(name = "LoanAmount") + MWF5C1 loanAmount(Double loanAmount); + @Parameter(name = "RegularInstalmentDay") + MWF5C1 regularInstalmentDay(String regularInstalmentDay); + @Parameter(name = "Sso") + MWF5C1 sso(String sso); + @Parameter(name = "Term") + MWF5C1 term(Long term); + @Parameter(name = "VPSFlag") + MWF5C1 vPSFlag(String vPSFlag); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C1Response.java new file mode 100644 index 0000000..98073fc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C1Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF5C1Response { + + @Parameter(name = "InstallmentAmount") + Double installmentAmount(); + + @Parameter(name = "InterestRate") + Double interestRate(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C9.java new file mode 100644 index 0000000..3de00fe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C9.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF5C9 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF5C9 appKey(Long appKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C9Response.java new file mode 100644 index 0000000..9696a29 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5C9Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF5C9Response { + + @Parameter(name = "AppState") + String appState(); + + @Parameter(name = "CIF") + String cif(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F0.java new file mode 100644 index 0000000..68fb7c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F0.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF5F0 extends MwfRequest { + + @Parameter(name = "AccountNumber") + MWF5F0 accountNumber(String accountNumber); + @Parameter(name = "AdditionalServiceState") + MWF5F0 additionalServiceState(String additionalServiceState); + @Parameter(name = "CIF") + MWF5F0 cif(String cif); + @Parameter(name = "CancellationDate") + MWF5F0 cancellationDate(java.util.Date cancellationDate); + @Parameter(name = "ChannelId") + MWF5F0 channelId(String channelId); + @Parameter(name = "CreationDate") + MWF5F0 creationDate(java.util.Date creationDate); + @Parameter(name = "Currency") + MWF5F0 currency(String currency); + @Parameter(name = "EmployeeRoleId") + MWF5F0 employeeRoleId(String employeeRoleId); + @Parameter(name = "PackageId") + MWF5F0 packageId(String packageId); + @Parameter(name = "Period") + MWF5F0 period(String period); + @Parameter(name = "Price") + MWF5F0 price(Double price); + @Parameter(name = "ProdInstKey") + MWF5F0 prodInstKey(String prodInstKey); + @Parameter(name = "ProductCode") + MWF5F0 productCode(String productCode); + @Parameter(name = "ProductType") + MWF5F0 productType(String productType); + @Parameter(name = "SSO") + MWF5F0 sso(String sso); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F0Response.java new file mode 100644 index 0000000..ef61626 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F0Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF5F0Response { + + @Parameter(name = "DebitCardExist") + Boolean debitCardExist(); + + @Parameter(name = "ProdInstKey") + String prodInstKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F1.java new file mode 100644 index 0000000..256d02b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F1.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF5F1 extends MwfRequest { + + @Parameter(name = "ChannelId") + MWF5F1 channelId(String channelId); + @Parameter(name = "ClientType") + MWF5F1 clientType(String clientType); + @Parameter(name = "Ico") + MWF5F1 ico(String ico); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F1ComercialProducParamsData.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F1ComercialProducParamsData.java new file mode 100644 index 0000000..4c51d75 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F1ComercialProducParamsData.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF5F1ComercialProducParamsData { + + private Map params; + + public MWF5F1ComercialProducParamsData(Map params) { + this.params = params; + } + + public Double rsServicefeeamount() { + return (Double) params.get("RS_SERVICEFEEAMOUNT"); + } + + public String rsServicefeetype() { + return (String) params.get("RS_SERVICEFEETYPE"); + } + + public Double rsRateindex() { + return (Double) params.get("RS_RATEINDEX"); + } + + public Double rsIntrateproc() { + return (Double) params.get("RS_INTRATEPROC"); + } + + public Double rsIntratereal() { + return (Double) params.get("RS_INTRATEREAL"); + } + + public Double rsDeviation() { + return (Double) params.get("RS_DEVIATION"); + } + + public String rsSalesproducttype() { + return (String) params.get("RS_SALESPRODUCTTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F1Response.java new file mode 100644 index 0000000..14fea3f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F1Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF5F1Response { + + @Parameter(name = "BusinessName") + String businessName(); + + @Parameter(name = "ComercialProducParamsData") + java.util.List comercialProducParamsData(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F2.java new file mode 100644 index 0000000..c072855 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F2.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF5F2 extends MwfRequest { + + @Parameter(name = "Business") + MWF5F2 business(String business); + @Parameter(name = "IdPromoter") + MWF5F2 idPromoter(String idPromoter); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F2Response.java new file mode 100644 index 0000000..6b295d4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F2Response.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF5F2Response { + + @Parameter(name = "Active") + String active(); + + @Parameter(name = "Business") + String business(); + + @Parameter(name = "Email") + String email(); + + @Parameter(name = "ExistInOds") + String existInOds(); + + @Parameter(name = "MobilePhoneNumber") + String mobilePhoneNumber(); + + @Parameter(name = "Name") + String name(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F4.java new file mode 100644 index 0000000..efe5d42 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F4.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF5F4 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF5F4 appKey(Long appKey); + @Parameter(name = "DigitalSignatureIdentity") + MWF5F4 digitalSignatureIdentity(String digitalSignatureIdentity); + @Parameter(name = "GeneratedDocumentID") + MWF5F4 generatedDocumentID(String generatedDocumentID); + @Parameter(name = "InstPtKey") + MWF5F4 instPtKey(Long instPtKey); + @Parameter(name = "ProdPkgkey") + MWF5F4 prodPkgkey(String prodPkgkey); + @Parameter(name = "ProductClass") + MWF5F4 productClass(String productClass); + @Parameter(name = "SignatureID") + MWF5F4 signatureID(String signatureID); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F4Response.java new file mode 100644 index 0000000..fe67704 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5F4Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF5F4Response { + + @Parameter(name = "GeneratedDocumentID") + String generatedDocumentID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5G6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5G6.java new file mode 100644 index 0000000..8a7be87 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5G6.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF5G6 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWF5G6 appKey(Long appKey); + @Parameter(name = "PPIType") + MWF5G6 pPIType(String pPIType); + @Parameter(name = "UserRole") + MWF5G6 userRole(String userRole); + @Parameter(name = "User_SSO") + MWF5G6 userSSO(String userSSO); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5G6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5G6Response.java new file mode 100644 index 0000000..e702f7f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5G6Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF5G6Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H0.java new file mode 100644 index 0000000..093df6f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H0.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF5H0 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWF5H0 appKey(Long appKey); + @Parameter(name = "LOAN_AMOUNT") + MWF5H0 loanAmount(Double loanAmount); + @Parameter(name = "TERM") + MWF5H0 term(Long term); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H0Response.java new file mode 100644 index 0000000..8549938 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H0Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF5H0Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H8.java new file mode 100644 index 0000000..2b2c2af --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H8.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF5H8 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF5H8 appKey(String appKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H8Response.java new file mode 100644 index 0000000..4b6cb4c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF5H8Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF5H8Response { + + @Parameter(name = "CIF") + String cif(); + + @Parameter(name = "HasAcc") + String hasAcc(); + + @Parameter(name = "HasIB") + String hasIB(); + + @Parameter(name = "IsETBClient") + String isETBClient(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF60D.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF60D.java new file mode 100644 index 0000000..f87b225 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF60D.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF60D extends MwfRequest { + + @Parameter(name = "BusinessRequestor") + MWF60D businessRequestor(String businessRequestor); + @Parameter(name = "BusinessTarget") + MWF60D businessTarget(String businessTarget); + @Parameter(name = "ICO") + MWF60D ico(String ico); + @Parameter(name = "IDCustomer") + MWF60D iDCustomer(String iDCustomer); + @Parameter(name = "IDInstanceKlienta") + MWF60D iDInstanceKlienta(Long iDInstanceKlienta); + @Parameter(name = "IDUnifikovanehoKlienta") + MWF60D iDUnifikovanehoKlienta(Long iDUnifikovanehoKlienta); + @Parameter(name = "IDZdrojovehoSystemu") + MWF60D iDZdrojovehoSystemu(String iDZdrojovehoSystemu); + @Parameter(name = "Priznak_BankovniTajemstvi") + MWF60D priznakBankovniTajemstvi(String priznakBankovniTajemstvi); + @Parameter(name = "RC") + MWF60D rc(String rc); + @Parameter(name = "TridaProduktu") + MWF60D tridaProduktu(String tridaProduktu); + @Parameter(name = "TypOsoby") + MWF60D typOsoby(String typOsoby); + @Parameter(name = "UcelDotazu") + MWF60D ucelDotazu(String ucelDotazu); + @Parameter(name = "ZjistiAktivniSmlouvu") + MWF60D zjistiAktivniSmlouvu(String zjistiAktivniSmlouvu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF60DData.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF60DData.java new file mode 100644 index 0000000..6002c61 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF60DData.java @@ -0,0 +1,169 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF60DData { + + private Map params; + + public MWF60DData(Map params) { + this.params = params; + } + + public Long rsUniPtKeyOut() { + return (Long) params.get("RS_UNI_PT_KEY_OUT"); + } + + public Long rsContrInstPtKey() { + return (Long) params.get("RS_CONTR_INST_PT_KEY"); + } + + public String rsContrPtTp() { + return (String) params.get("RS_CONTR_PT_TP"); + } + + public Long rsOwnerInstPtKey() { + return (Long) params.get("RS_OWNER_INST_PT_KEY"); + } + + public String rsOwnerPtRoleTp() { + return (String) params.get("RS_OWNER_PT_ROLE_TP"); + } + + public String rsContrPtRoleTp() { + return (String) params.get("RS_CONTR_PT_ROLE_TP"); + } + + public Long rsProdInstKey() { + return (Long) params.get("RS_PROD_INST_KEY"); + } + + public Long rsAccKey() { + return (Long) params.get("RS_ACC_KEY"); + } + + public String rsAccNum() { + return (String) params.get("RS_ACC_NUM"); + } + + public String rsAccSrcSysId() { + return (String) params.get("RS_ACC_SRC_SYS_ID"); + } + + public String rsProdInstSrcSysId() { + return (String) params.get("RS_PROD_INST_SRC_SYS_ID"); + } + + public String rsProdInstContrNum() { + return (String) params.get("RS_PROD_INST_CONTR_NUM"); + } + + public String rsBussProdClassIdOut() { + return (String) params.get("RS_BUSS_PROD_CLASS_ID_OUT"); + } + + public String rsBusProdTpId() { + return (String) params.get("RS_BUS_PROD_TP_ID"); + } + + public String rsSalesProdTpId() { + return (String) params.get("RS_SALES_PROD_TP_ID"); + } + + public Double rsApplPtInstlShare() { + return (Double) params.get("RS_APPL_PT_INSTL_SHARE"); + } + + public String rsAccBusStatId() { + return (String) params.get("RS_ACC_BUS_STAT_ID"); + } + + public java.util.Date rsAccOpenDate() { + return (java.util.Date) params.get("RS_ACC_OPEN_DATE"); + } + + public java.util.Date rsAccCloseDate() { + return (java.util.Date) params.get("RS_ACC_CLOSE_DATE"); + } + + public Double rsAccPrincBal() { + return (Double) params.get("RS_ACC_PRINC_BAL"); + } + + public String rsAccCcy() { + return (String) params.get("RS_ACC_CCY"); + } + + public Double rsRpmtInstlAmt() { + return (Double) params.get("RS_RPMT_INSTL_AMT"); + } + + public Long rsRpmtInstlCnt() { + return (Long) params.get("RS_RPMT_INSTL_CNT"); + } + + public String rsRpmtPerCode() { + return (String) params.get("RS_RPMT_PER_CODE"); + } + + public String rsRpmtAnuiInstlFlag() { + return (String) params.get("RS_RPMT_ANUI_INSTL_FLAG"); + } + + public java.util.Date rsRpmtFirstInstlDate() { + return (java.util.Date) params.get("RS_RPMT_FIRST_INSTL_DATE"); + } + + public Double rsApplPtExpShare() { + return (Double) params.get("RS_APPL_PT_EXP_SHARE"); + } + + public Double rsAccOvduBal() { + return (Double) params.get("RS_ACC_OVDU_BAL"); + } + + public Long rsAccTotDelqDays() { + return (Long) params.get("RS_ACC_TOT_DELQ_DAYS"); + } + + public Double rsAccPd() { + return (Double) params.get("RS_ACC_PD"); + } + + public Double rsAccLgd() { + return (Double) params.get("RS_ACC_LGD"); + } + + public Double rsAccCcf() { + return (Double) params.get("RS_ACC_CCF"); + } + + public Double rsProdInstMnthlyFeeAmt() { + return (Double) params.get("RS_PROD_INST_MNTHLY_FEE_AMT"); + } + + public java.util.Date rsProdInstBondEndDate() { + return (java.util.Date) params.get("RS_PROD_INST_BOND_END_DATE"); + } + + public java.util.Date rsProdInstFinMatDate() { + return (java.util.Date) params.get("RS_PROD_INST_FIN_MAT_DATE"); + } + + public Double rsProdInstLmtAmt() { + return (Double) params.get("RS_PROD_INST_LMT_AMT"); + } + + public Long rsApplApplicantCnt() { + return (Long) params.get("RS_APPL_APPLICANT_CNT"); + } + + public String rsApplDistCnl() { + return (String) params.get("RS_APPL_DIST_CNL"); + } + + public String rsAccStatId() { + return (String) params.get("RS_ACC_STAT_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF60DResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF60DResponse.java new file mode 100644 index 0000000..d4a2540 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF60DResponse.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF60DResponse { + + @Parameter(name = "AktivniSmlouva") + String aktivniSmlouva(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF638.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF638.java new file mode 100644 index 0000000..03b5410 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF638.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF638 extends MwfRequest { + + @Parameter(name = "APPL_ID") + MWF638 applId(String applId); + @Parameter(name = "Channel_ID") + MWF638 channelID(String channelID); + @Parameter(name = "Zadost_KEY") + MWF638 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF638Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF638Response.java new file mode 100644 index 0000000..fd1d0c7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF638Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF638Response { + + @Parameter(name = "WFPrechodStavu") + String wFPrechodStavu(); + + @Parameter(name = "ZadostStav") + String zadostStav(); + + @Parameter(name = "ZadostStavUFO") + String zadostStavUFO(); + + @Parameter(name = "ZadostStav_ADCtext") + String zadostStavADCtext(); + + @Parameter(name = "ZadostStav_kod") + String zadostStavKod(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF639.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF639.java new file mode 100644 index 0000000..a78f765 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF639.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF639 extends MwfRequest { + + @Parameter(name = "BUCisloUctu") + MWF639 bUCisloUctu(String bUCisloUctu); + @Parameter(name = "BUMena") + MWF639 bUMena(String bUMena); + @Parameter(name = "BU_KEY") + MWF639 buKey(Long buKey); + @Parameter(name = "UUCislo") + MWF639 uUCislo(String uUCislo); + @Parameter(name = "UUMena") + MWF639 uUMena(String uUMena); + @Parameter(name = "UUObjektUveru") + MWF639 uUObjektUveru(String uUObjektUveru); + @Parameter(name = "UU_KEY") + MWF639 uuKey(Long uuKey); + @Parameter(name = "Zadost_KEY") + MWF639 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF639Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF639Response.java new file mode 100644 index 0000000..542fe58 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF639Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF639Response { + + @Parameter(name = "BU_KEY") + Long buKey(); + + @Parameter(name = "UU_KEY") + Long uuKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF640.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF640.java new file mode 100644 index 0000000..5e3e46c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF640.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF640 extends MwfRequest { + + @Parameter(name = "TypFormulare") + MWF640 typFormulare(String typFormulare); + @Parameter(name = "Zadost_KEY") + MWF640 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF640Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF640Response.java new file mode 100644 index 0000000..1b0409d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF640Response.java @@ -0,0 +1,2712 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF640Response { + + @Parameter(name = "A0001_FERROR_CODE") + String a0001FerrorCode(); + + @Parameter(name = "A0001_NOK") + Long a0001Nok(); + + @Parameter(name = "A0001_OK") + Long a0001Ok(); + + @Parameter(name = "A0002_FERROR_CODE") + String a0002FerrorCode(); + + @Parameter(name = "A0002_NOK") + Long a0002Nok(); + + @Parameter(name = "A0002_OK") + Long a0002Ok(); + + @Parameter(name = "A0003_FERROR_CODE") + String a0003FerrorCode(); + + @Parameter(name = "A0003_NOK") + Long a0003Nok(); + + @Parameter(name = "A0003_OK") + Long a0003Ok(); + + @Parameter(name = "A0004_FERROR_CODE") + String a0004FerrorCode(); + + @Parameter(name = "A0004_NOK") + Long a0004Nok(); + + @Parameter(name = "A0004_OK") + Long a0004Ok(); + + @Parameter(name = "A0005_FERROR_CODE") + String a0005FerrorCode(); + + @Parameter(name = "A0005_NOK") + Long a0005Nok(); + + @Parameter(name = "A0005_OK") + Long a0005Ok(); + + @Parameter(name = "A0006_FERROR_CODE") + String a0006FerrorCode(); + + @Parameter(name = "A0006_NOK") + Long a0006Nok(); + + @Parameter(name = "A0006_OK") + Long a0006Ok(); + + @Parameter(name = "A0007_FERROR_CODE") + String a0007FerrorCode(); + + @Parameter(name = "A0007_NOK") + Long a0007Nok(); + + @Parameter(name = "A0007_OK") + Long a0007Ok(); + + @Parameter(name = "A0008_FERROR_CODE") + String a0008FerrorCode(); + + @Parameter(name = "A0008_NOK") + Long a0008Nok(); + + @Parameter(name = "A0008_OK") + Long a0008Ok(); + + @Parameter(name = "A0009_FERROR_CODE") + String a0009FerrorCode(); + + @Parameter(name = "A0009_NOK") + Long a0009Nok(); + + @Parameter(name = "A0009_OK") + Long a0009Ok(); + + @Parameter(name = "A0010_FERROR_CODE") + String a0010FerrorCode(); + + @Parameter(name = "A0010_NOK") + Long a0010Nok(); + + @Parameter(name = "A0010_OK") + Long a0010Ok(); + + @Parameter(name = "A0011_FERROR_CODE") + String a0011FerrorCode(); + + @Parameter(name = "A0011_NOK") + Long a0011Nok(); + + @Parameter(name = "A0011_OK") + Long a0011Ok(); + + @Parameter(name = "A0012_FERROR_CODE") + String a0012FerrorCode(); + + @Parameter(name = "A0012_NOK") + Long a0012Nok(); + + @Parameter(name = "A0012_OK") + Long a0012Ok(); + + @Parameter(name = "A0013_FERROR_CODE") + String a0013FerrorCode(); + + @Parameter(name = "A0013_NOK") + Long a0013Nok(); + + @Parameter(name = "A0013_OK") + Long a0013Ok(); + + @Parameter(name = "A0014_FERROR_CODE") + String a0014FerrorCode(); + + @Parameter(name = "A0014_NOK") + Long a0014Nok(); + + @Parameter(name = "A0014_OK") + Long a0014Ok(); + + @Parameter(name = "A0015_FERROR_CODE") + String a0015FerrorCode(); + + @Parameter(name = "A0015_NOK") + Long a0015Nok(); + + @Parameter(name = "A0015_OK") + Long a0015Ok(); + + @Parameter(name = "A0016_FERROR_CODE") + String a0016FerrorCode(); + + @Parameter(name = "A0016_NOK") + Long a0016Nok(); + + @Parameter(name = "A0016_OK") + Long a0016Ok(); + + @Parameter(name = "A0017_FERROR_CODE") + String a0017FerrorCode(); + + @Parameter(name = "A0017_NOK") + Long a0017Nok(); + + @Parameter(name = "A0017_OK") + Long a0017Ok(); + + @Parameter(name = "A0018_FERROR_CODE") + String a0018FerrorCode(); + + @Parameter(name = "A0018_NOK") + Long a0018Nok(); + + @Parameter(name = "A0018_OK") + Long a0018Ok(); + + @Parameter(name = "A0019_FERROR_CODE") + String a0019FerrorCode(); + + @Parameter(name = "A0019_NOK") + Long a0019Nok(); + + @Parameter(name = "A0019_OK") + Long a0019Ok(); + + @Parameter(name = "A0020_FERROR_CODE") + String a0020FerrorCode(); + + @Parameter(name = "A0020_NOK") + Long a0020Nok(); + + @Parameter(name = "A0020_OK") + Long a0020Ok(); + + @Parameter(name = "A0021_FERROR_CODE") + String a0021FerrorCode(); + + @Parameter(name = "A0021_NOK") + Long a0021Nok(); + + @Parameter(name = "A0021_OK") + Long a0021Ok(); + + @Parameter(name = "A0022_FERROR_CODE") + String a0022FerrorCode(); + + @Parameter(name = "A0022_NOK") + Long a0022Nok(); + + @Parameter(name = "A0022_OK") + Long a0022Ok(); + + @Parameter(name = "A0023_FERROR_CODE") + String a0023FerrorCode(); + + @Parameter(name = "A0023_NOK") + Long a0023Nok(); + + @Parameter(name = "A0023_OK") + Long a0023Ok(); + + @Parameter(name = "A0024_FERROR_CODE") + String a0024FerrorCode(); + + @Parameter(name = "A0024_NOK") + Long a0024Nok(); + + @Parameter(name = "A0024_OK") + Long a0024Ok(); + + @Parameter(name = "A0025_FERROR_CODE") + String a0025FerrorCode(); + + @Parameter(name = "A0025_NOK") + Long a0025Nok(); + + @Parameter(name = "A0025_OK") + Long a0025Ok(); + + @Parameter(name = "A0026_FERROR_CODE") + String a0026FerrorCode(); + + @Parameter(name = "A0026_NOK") + Long a0026Nok(); + + @Parameter(name = "A0026_OK") + Long a0026Ok(); + + @Parameter(name = "A0027_FERROR_CODE") + String a0027FerrorCode(); + + @Parameter(name = "A0027_NOK") + Long a0027Nok(); + + @Parameter(name = "A0027_OK") + Long a0027Ok(); + + @Parameter(name = "A0028_FERROR_CODE") + String a0028FerrorCode(); + + @Parameter(name = "A0028_NOK") + Long a0028Nok(); + + @Parameter(name = "A0028_OK") + Long a0028Ok(); + + @Parameter(name = "A0029_FERROR_CODE") + String a0029FerrorCode(); + + @Parameter(name = "A0029_NOK") + Long a0029Nok(); + + @Parameter(name = "A0029_OK") + Long a0029Ok(); + + @Parameter(name = "A0030_FERROR_CODE") + String a0030FerrorCode(); + + @Parameter(name = "A0030_NOK") + Long a0030Nok(); + + @Parameter(name = "A0030_OK") + Long a0030Ok(); + + @Parameter(name = "A0031_FERROR_CODE") + String a0031FerrorCode(); + + @Parameter(name = "A0031_NOK") + Long a0031Nok(); + + @Parameter(name = "A0031_OK") + Long a0031Ok(); + + @Parameter(name = "A0032_FERROR_CODE") + String a0032FerrorCode(); + + @Parameter(name = "A0032_NOK") + Long a0032Nok(); + + @Parameter(name = "A0032_OK") + Long a0032Ok(); + + @Parameter(name = "A0033_FERROR_CODE") + String a0033FerrorCode(); + + @Parameter(name = "A0033_NOK") + Long a0033Nok(); + + @Parameter(name = "A0033_OK") + Long a0033Ok(); + + @Parameter(name = "A0034_FERROR_CODE") + String a0034FerrorCode(); + + @Parameter(name = "A0034_NOK") + Long a0034Nok(); + + @Parameter(name = "A0034_OK") + Long a0034Ok(); + + @Parameter(name = "A0035_FERROR_CODE") + String a0035FerrorCode(); + + @Parameter(name = "A0035_NOK") + Long a0035Nok(); + + @Parameter(name = "A0035_OK") + Long a0035Ok(); + + @Parameter(name = "A0036_FERROR_CODE") + String a0036FerrorCode(); + + @Parameter(name = "A0036_NOK") + Long a0036Nok(); + + @Parameter(name = "A0036_OK") + Long a0036Ok(); + + @Parameter(name = "A0037_FERROR_CODE") + String a0037FerrorCode(); + + @Parameter(name = "A0037_NOK") + Long a0037Nok(); + + @Parameter(name = "A0037_OK") + Long a0037Ok(); + + @Parameter(name = "A0038_FERROR_CODE") + String a0038FerrorCode(); + + @Parameter(name = "A0038_NOK") + Long a0038Nok(); + + @Parameter(name = "A0038_OK") + Long a0038Ok(); + + @Parameter(name = "A0039_FERROR_CODE") + String a0039FerrorCode(); + + @Parameter(name = "A0039_NOK") + Long a0039Nok(); + + @Parameter(name = "A0039_OK") + Long a0039Ok(); + + @Parameter(name = "A0040_FERROR_CODE") + String a0040FerrorCode(); + + @Parameter(name = "A0040_NOK") + Long a0040Nok(); + + @Parameter(name = "A0040_OK") + Long a0040Ok(); + + @Parameter(name = "A0041_FERROR_CODE") + String a0041FerrorCode(); + + @Parameter(name = "A0041_NOK") + Long a0041Nok(); + + @Parameter(name = "A0041_OK") + Long a0041Ok(); + + @Parameter(name = "A0042_FERROR_CODE") + String a0042FerrorCode(); + + @Parameter(name = "A0042_NOK") + Long a0042Nok(); + + @Parameter(name = "A0042_OK") + Long a0042Ok(); + + @Parameter(name = "A0043_FERROR_CODE") + String a0043FerrorCode(); + + @Parameter(name = "A0043_NOK") + Long a0043Nok(); + + @Parameter(name = "A0043_OK") + Long a0043Ok(); + + @Parameter(name = "A0044_FERROR_CODE") + String a0044FerrorCode(); + + @Parameter(name = "A0044_NOK") + Long a0044Nok(); + + @Parameter(name = "A0044_OK") + Long a0044Ok(); + + @Parameter(name = "A0045_FERROR_CODE") + String a0045FerrorCode(); + + @Parameter(name = "A0045_NOK") + Long a0045Nok(); + + @Parameter(name = "A0045_OK") + Long a0045Ok(); + + @Parameter(name = "A0046_FERROR_CODE") + String a0046FerrorCode(); + + @Parameter(name = "A0046_NOK") + Long a0046Nok(); + + @Parameter(name = "A0046_OK") + Long a0046Ok(); + + @Parameter(name = "A0047_FERROR_CODE") + String a0047FerrorCode(); + + @Parameter(name = "A0047_NOK") + Long a0047Nok(); + + @Parameter(name = "A0047_OK") + Long a0047Ok(); + + @Parameter(name = "A0048_FERROR_CODE") + String a0048FerrorCode(); + + @Parameter(name = "A0048_NOK") + Long a0048Nok(); + + @Parameter(name = "A0048_OK") + Long a0048Ok(); + + @Parameter(name = "A0049_FERROR_CODE") + String a0049FerrorCode(); + + @Parameter(name = "A0049_NOK") + Long a0049Nok(); + + @Parameter(name = "A0049_OK") + Long a0049Ok(); + + @Parameter(name = "A0050_FERROR_CODE") + String a0050FerrorCode(); + + @Parameter(name = "A0050_NOK") + Long a0050Nok(); + + @Parameter(name = "A0050_OK") + Long a0050Ok(); + + @Parameter(name = "A0051_FERROR_CODE") + String a0051FerrorCode(); + + @Parameter(name = "A0051_NOK") + Long a0051Nok(); + + @Parameter(name = "A0051_OK") + Long a0051Ok(); + + @Parameter(name = "A0052_FERROR_CODE") + String a0052FerrorCode(); + + @Parameter(name = "A0052_NOK") + Long a0052Nok(); + + @Parameter(name = "A0052_OK") + Long a0052Ok(); + + @Parameter(name = "A0053_FERROR_CODE") + String a0053FerrorCode(); + + @Parameter(name = "A0053_NOK") + Long a0053Nok(); + + @Parameter(name = "A0053_OK") + Long a0053Ok(); + + @Parameter(name = "A0054_FERROR_CODE") + String a0054FerrorCode(); + + @Parameter(name = "A0054_NOK") + Long a0054Nok(); + + @Parameter(name = "A0054_OK") + Long a0054Ok(); + + @Parameter(name = "A0055_FERROR_CODE") + String a0055FerrorCode(); + + @Parameter(name = "A0055_NOK") + Long a0055Nok(); + + @Parameter(name = "A0055_OK") + Long a0055Ok(); + + @Parameter(name = "A0056_FERROR_CODE") + String a0056FerrorCode(); + + @Parameter(name = "A0056_NOK") + Long a0056Nok(); + + @Parameter(name = "A0056_OK") + Long a0056Ok(); + + @Parameter(name = "A0057_FERROR_CODE") + String a0057FerrorCode(); + + @Parameter(name = "A0057_NOK") + Long a0057Nok(); + + @Parameter(name = "A0057_OK") + Long a0057Ok(); + + @Parameter(name = "A0058_FERROR_CODE") + String a0058FerrorCode(); + + @Parameter(name = "A0058_NOK") + Long a0058Nok(); + + @Parameter(name = "A0058_OK") + Long a0058Ok(); + + @Parameter(name = "A0059_FERROR_CODE") + String a0059FerrorCode(); + + @Parameter(name = "A0059_NOK") + Long a0059Nok(); + + @Parameter(name = "A0059_OK") + Long a0059Ok(); + + @Parameter(name = "A0060_FERROR_CODE") + String a0060FerrorCode(); + + @Parameter(name = "A0060_NOK") + Long a0060Nok(); + + @Parameter(name = "A0060_OK") + Long a0060Ok(); + + @Parameter(name = "A0061_FERROR_CODE") + String a0061FerrorCode(); + + @Parameter(name = "A0061_NOK") + Long a0061Nok(); + + @Parameter(name = "A0061_OK") + Long a0061Ok(); + + @Parameter(name = "A0062_FERROR_CODE") + String a0062FerrorCode(); + + @Parameter(name = "A0062_NOK") + Long a0062Nok(); + + @Parameter(name = "A0062_OK") + Long a0062Ok(); + + @Parameter(name = "A0063_FERROR_CODE") + String a0063FerrorCode(); + + @Parameter(name = "A0063_NOK") + Long a0063Nok(); + + @Parameter(name = "A0063_OK") + Long a0063Ok(); + + @Parameter(name = "A0064_FERROR_CODE") + String a0064FerrorCode(); + + @Parameter(name = "A0064_NOK") + Long a0064Nok(); + + @Parameter(name = "A0064_OK") + Long a0064Ok(); + + @Parameter(name = "A0065_FERROR_CODE") + String a0065FerrorCode(); + + @Parameter(name = "A0065_NOK") + Long a0065Nok(); + + @Parameter(name = "A0065_OK") + Long a0065Ok(); + + @Parameter(name = "A0066_FERROR_CODE") + String a0066FerrorCode(); + + @Parameter(name = "A0066_NOK") + Long a0066Nok(); + + @Parameter(name = "A0066_OK") + Long a0066Ok(); + + @Parameter(name = "A0067_FERROR_CODE") + String a0067FerrorCode(); + + @Parameter(name = "A0067_NOK") + Long a0067Nok(); + + @Parameter(name = "A0067_OK") + Long a0067Ok(); + + @Parameter(name = "A0068_FERROR_CODE") + String a0068FerrorCode(); + + @Parameter(name = "A0068_NOK") + Long a0068Nok(); + + @Parameter(name = "A0068_OK") + Long a0068Ok(); + + @Parameter(name = "A0069_FERROR_CODE") + String a0069FerrorCode(); + + @Parameter(name = "A0069_NOK") + Long a0069Nok(); + + @Parameter(name = "A0069_OK") + Long a0069Ok(); + + @Parameter(name = "A0070_FERROR_CODE") + String a0070FerrorCode(); + + @Parameter(name = "A0070_NOK") + Long a0070Nok(); + + @Parameter(name = "A0070_OK") + Long a0070Ok(); + + @Parameter(name = "A0071_FERROR_CODE") + String a0071FerrorCode(); + + @Parameter(name = "A0071_NOK") + Long a0071Nok(); + + @Parameter(name = "A0071_OK") + Long a0071Ok(); + + @Parameter(name = "A0072_FERROR_CODE") + String a0072FerrorCode(); + + @Parameter(name = "A0072_NOK") + Long a0072Nok(); + + @Parameter(name = "A0072_OK") + Long a0072Ok(); + + @Parameter(name = "A0073_FERROR_CODE") + String a0073FerrorCode(); + + @Parameter(name = "A0073_NOK") + Long a0073Nok(); + + @Parameter(name = "A0073_OK") + Long a0073Ok(); + + @Parameter(name = "A0074_FERROR_CODE") + String a0074FerrorCode(); + + @Parameter(name = "A0074_NOK") + Long a0074Nok(); + + @Parameter(name = "A0074_OK") + Long a0074Ok(); + + @Parameter(name = "A0075_FERROR_CODE") + String a0075FerrorCode(); + + @Parameter(name = "A0075_NOK") + Long a0075Nok(); + + @Parameter(name = "A0075_OK") + Long a0075Ok(); + + @Parameter(name = "A0076_FERROR_CODE") + String a0076FerrorCode(); + + @Parameter(name = "A0076_NOK") + Long a0076Nok(); + + @Parameter(name = "A0076_OK") + Long a0076Ok(); + + @Parameter(name = "A0077_FERROR_CODE") + String a0077FerrorCode(); + + @Parameter(name = "A0077_NOK") + Long a0077Nok(); + + @Parameter(name = "A0077_OK") + Long a0077Ok(); + + @Parameter(name = "A0078_FERROR_CODE") + String a0078FerrorCode(); + + @Parameter(name = "A0078_NOK") + Long a0078Nok(); + + @Parameter(name = "A0078_OK") + Long a0078Ok(); + + @Parameter(name = "A0079_FERROR_CODE") + String a0079FerrorCode(); + + @Parameter(name = "A0079_NOK") + Long a0079Nok(); + + @Parameter(name = "A0079_OK") + Long a0079Ok(); + + @Parameter(name = "A0080_FERROR_CODE") + String a0080FerrorCode(); + + @Parameter(name = "A0080_NOK") + Long a0080Nok(); + + @Parameter(name = "A0080_OK") + Long a0080Ok(); + + @Parameter(name = "A0081_FERROR_CODE") + String a0081FerrorCode(); + + @Parameter(name = "A0081_NOK") + Long a0081Nok(); + + @Parameter(name = "A0081_OK") + Long a0081Ok(); + + @Parameter(name = "A0082_FERROR_CODE") + String a0082FerrorCode(); + + @Parameter(name = "A0082_NOK") + Long a0082Nok(); + + @Parameter(name = "A0082_OK") + Long a0082Ok(); + + @Parameter(name = "A0083_FERROR_CODE") + String a0083FerrorCode(); + + @Parameter(name = "A0083_NOK") + Long a0083Nok(); + + @Parameter(name = "A0083_OK") + Long a0083Ok(); + + @Parameter(name = "A0084_FERROR_CODE") + String a0084FerrorCode(); + + @Parameter(name = "A0084_NOK") + Long a0084Nok(); + + @Parameter(name = "A0084_OK") + Long a0084Ok(); + + @Parameter(name = "A0085_FERROR_CODE") + String a0085FerrorCode(); + + @Parameter(name = "A0085_NOK") + Long a0085Nok(); + + @Parameter(name = "A0085_OK") + Long a0085Ok(); + + @Parameter(name = "A0086_FERROR_CODE") + String a0086FerrorCode(); + + @Parameter(name = "A0086_NOK") + Long a0086Nok(); + + @Parameter(name = "A0086_OK") + Long a0086Ok(); + + @Parameter(name = "A0087_FERROR_CODE") + String a0087FerrorCode(); + + @Parameter(name = "A0087_NOK") + Long a0087Nok(); + + @Parameter(name = "A0087_OK") + Long a0087Ok(); + + @Parameter(name = "A0088_FERROR_CODE") + String a0088FerrorCode(); + + @Parameter(name = "A0088_NOK") + Long a0088Nok(); + + @Parameter(name = "A0088_OK") + Long a0088Ok(); + + @Parameter(name = "A0089_FERROR_CODE") + String a0089FerrorCode(); + + @Parameter(name = "A0089_NOK") + Long a0089Nok(); + + @Parameter(name = "A0089_OK") + Long a0089Ok(); + + @Parameter(name = "A0090_FERROR_CODE") + String a0090FerrorCode(); + + @Parameter(name = "A0090_NOK") + Long a0090Nok(); + + @Parameter(name = "A0090_OK") + Long a0090Ok(); + + @Parameter(name = "A0091_FERROR_CODE") + String a0091FerrorCode(); + + @Parameter(name = "A0091_NOK") + Long a0091Nok(); + + @Parameter(name = "A0091_OK") + Long a0091Ok(); + + @Parameter(name = "A0092_FERROR_CODE") + String a0092FerrorCode(); + + @Parameter(name = "A0092_NOK") + Long a0092Nok(); + + @Parameter(name = "A0092_OK") + Long a0092Ok(); + + @Parameter(name = "A0093_FERROR_CODE") + String a0093FerrorCode(); + + @Parameter(name = "A0093_NOK") + Long a0093Nok(); + + @Parameter(name = "A0093_OK") + Long a0093Ok(); + + @Parameter(name = "A0094_FERROR_CODE") + String a0094FerrorCode(); + + @Parameter(name = "A0094_NOK") + Long a0094Nok(); + + @Parameter(name = "A0094_OK") + Long a0094Ok(); + + @Parameter(name = "A0095_FERROR_CODE") + String a0095FerrorCode(); + + @Parameter(name = "A0095_NOK") + Long a0095Nok(); + + @Parameter(name = "A0095_OK") + Long a0095Ok(); + + @Parameter(name = "A0096_FERROR_CODE") + String a0096FerrorCode(); + + @Parameter(name = "A0096_NOK") + Long a0096Nok(); + + @Parameter(name = "A0096_OK") + Long a0096Ok(); + + @Parameter(name = "A0097_FERROR_CODE") + String a0097FerrorCode(); + + @Parameter(name = "A0097_NOK") + Long a0097Nok(); + + @Parameter(name = "A0097_OK") + Long a0097Ok(); + + @Parameter(name = "A0098_FERROR_CODE") + String a0098FerrorCode(); + + @Parameter(name = "A0098_NOK") + Long a0098Nok(); + + @Parameter(name = "A0098_OK") + Long a0098Ok(); + + @Parameter(name = "A0099_FERROR_CODE") + String a0099FerrorCode(); + + @Parameter(name = "A0099_NOK") + Long a0099Nok(); + + @Parameter(name = "A0099_OK") + Long a0099Ok(); + + @Parameter(name = "A0100_FERROR_CODE") + String a0100FerrorCode(); + + @Parameter(name = "A0100_NOK") + Long a0100Nok(); + + @Parameter(name = "A0100_OK") + Long a0100Ok(); + + @Parameter(name = "A0101_FERROR_CODE") + String a0101FerrorCode(); + + @Parameter(name = "A0101_NOK") + Long a0101Nok(); + + @Parameter(name = "A0101_OK") + Long a0101Ok(); + + @Parameter(name = "A0102_FERROR_CODE") + String a0102FerrorCode(); + + @Parameter(name = "A0102_NOK") + Long a0102Nok(); + + @Parameter(name = "A0102_OK") + Long a0102Ok(); + + @Parameter(name = "A0103_FERROR_CODE") + String a0103FerrorCode(); + + @Parameter(name = "A0103_NOK") + Long a0103Nok(); + + @Parameter(name = "A0103_OK") + Long a0103Ok(); + + @Parameter(name = "A0104_FERROR_CODE") + String a0104FerrorCode(); + + @Parameter(name = "A0104_NOK") + Long a0104Nok(); + + @Parameter(name = "A0104_OK") + Long a0104Ok(); + + @Parameter(name = "A0105_FERROR_CODE") + String a0105FerrorCode(); + + @Parameter(name = "A0105_NOK") + Long a0105Nok(); + + @Parameter(name = "A0105_OK") + Long a0105Ok(); + + @Parameter(name = "A0106_FERROR_CODE") + String a0106FerrorCode(); + + @Parameter(name = "A0106_NOK") + Long a0106Nok(); + + @Parameter(name = "A0106_OK") + Long a0106Ok(); + + @Parameter(name = "A0107_FERROR_CODE") + String a0107FerrorCode(); + + @Parameter(name = "A0107_NOK") + Long a0107Nok(); + + @Parameter(name = "A0107_OK") + Long a0107Ok(); + + @Parameter(name = "A0108_FERROR_CODE") + String a0108FerrorCode(); + + @Parameter(name = "A0108_NOK") + Long a0108Nok(); + + @Parameter(name = "A0108_OK") + Long a0108Ok(); + + @Parameter(name = "A0109_FERROR_CODE") + String a0109FerrorCode(); + + @Parameter(name = "A0109_NOK") + Long a0109Nok(); + + @Parameter(name = "A0109_OK") + Long a0109Ok(); + + @Parameter(name = "A0110_FERROR_CODE") + String a0110FerrorCode(); + + @Parameter(name = "A0110_NOK") + Long a0110Nok(); + + @Parameter(name = "A0110_OK") + Long a0110Ok(); + + @Parameter(name = "A0111_FERROR_CODE") + String a0111FerrorCode(); + + @Parameter(name = "A0111_NOK") + Long a0111Nok(); + + @Parameter(name = "A0111_OK") + Long a0111Ok(); + + @Parameter(name = "A0112_FERROR_CODE") + String a0112FerrorCode(); + + @Parameter(name = "A0112_NOK") + Long a0112Nok(); + + @Parameter(name = "A0112_OK") + Long a0112Ok(); + + @Parameter(name = "A0113_FERROR_CODE") + String a0113FerrorCode(); + + @Parameter(name = "A0113_NOK") + Long a0113Nok(); + + @Parameter(name = "A0113_OK") + Long a0113Ok(); + + @Parameter(name = "A0114_FERROR_CODE") + String a0114FerrorCode(); + + @Parameter(name = "A0114_NOK") + Long a0114Nok(); + + @Parameter(name = "A0114_OK") + Long a0114Ok(); + + @Parameter(name = "A0115_FERROR_CODE") + String a0115FerrorCode(); + + @Parameter(name = "A0115_NOK") + Long a0115Nok(); + + @Parameter(name = "A0115_OK") + Long a0115Ok(); + + @Parameter(name = "A0116_FERROR_CODE") + String a0116FerrorCode(); + + @Parameter(name = "A0116_NOK") + Long a0116Nok(); + + @Parameter(name = "A0116_OK") + Long a0116Ok(); + + @Parameter(name = "A0117_FERROR_CODE") + String a0117FerrorCode(); + + @Parameter(name = "A0117_NOK") + Long a0117Nok(); + + @Parameter(name = "A0117_OK") + Long a0117Ok(); + + @Parameter(name = "A0118_FERROR_CODE") + String a0118FerrorCode(); + + @Parameter(name = "A0118_NOK") + Long a0118Nok(); + + @Parameter(name = "A0118_OK") + Long a0118Ok(); + + @Parameter(name = "A0119_FERROR_CODE") + String a0119FerrorCode(); + + @Parameter(name = "A0119_NOK") + Long a0119Nok(); + + @Parameter(name = "A0119_OK") + Long a0119Ok(); + + @Parameter(name = "A0120_FERROR_CODE") + String a0120FerrorCode(); + + @Parameter(name = "A0120_NOK") + Long a0120Nok(); + + @Parameter(name = "A0120_OK") + Long a0120Ok(); + + @Parameter(name = "A0121_FERROR_CODE") + String a0121FerrorCode(); + + @Parameter(name = "A0121_NOK") + Long a0121Nok(); + + @Parameter(name = "A0121_OK") + Long a0121Ok(); + + @Parameter(name = "A0122_FERROR_CODE") + String a0122FerrorCode(); + + @Parameter(name = "A0122_NOK") + Long a0122Nok(); + + @Parameter(name = "A0122_OK") + Long a0122Ok(); + + @Parameter(name = "A0123_FERROR_CODE") + String a0123FerrorCode(); + + @Parameter(name = "A0123_NOK") + Long a0123Nok(); + + @Parameter(name = "A0123_OK") + Long a0123Ok(); + + @Parameter(name = "A0124_FERROR_CODE") + String a0124FerrorCode(); + + @Parameter(name = "A0124_NOK") + Long a0124Nok(); + + @Parameter(name = "A0124_OK") + Long a0124Ok(); + + @Parameter(name = "A0125_FERROR_CODE") + String a0125FerrorCode(); + + @Parameter(name = "A0125_NOK") + Long a0125Nok(); + + @Parameter(name = "A0125_OK") + Long a0125Ok(); + + @Parameter(name = "A0126_FERROR_CODE") + String a0126FerrorCode(); + + @Parameter(name = "A0126_NOK") + Long a0126Nok(); + + @Parameter(name = "A0126_OK") + Long a0126Ok(); + + @Parameter(name = "A0127_FERROR_CODE") + String a0127FerrorCode(); + + @Parameter(name = "A0127_NOK") + Long a0127Nok(); + + @Parameter(name = "A0127_OK") + Long a0127Ok(); + + @Parameter(name = "A0128_FERROR_CODE") + String a0128FerrorCode(); + + @Parameter(name = "A0128_NOK") + Long a0128Nok(); + + @Parameter(name = "A0128_OK") + Long a0128Ok(); + + @Parameter(name = "A0129_FERROR_CODE") + String a0129FerrorCode(); + + @Parameter(name = "A0129_NOK") + Long a0129Nok(); + + @Parameter(name = "A0129_OK") + Long a0129Ok(); + + @Parameter(name = "A0130_FERROR_CODE") + String a0130FerrorCode(); + + @Parameter(name = "A0130_NOK") + Long a0130Nok(); + + @Parameter(name = "A0130_OK") + Long a0130Ok(); + + @Parameter(name = "A0131_FERROR_CODE") + String a0131FerrorCode(); + + @Parameter(name = "A0131_NOK") + Long a0131Nok(); + + @Parameter(name = "A0131_OK") + Long a0131Ok(); + + @Parameter(name = "A0132_FERROR_CODE") + String a0132FerrorCode(); + + @Parameter(name = "A0132_NOK") + Long a0132Nok(); + + @Parameter(name = "A0132_OK") + Long a0132Ok(); + + @Parameter(name = "A0133_FERROR_CODE") + String a0133FerrorCode(); + + @Parameter(name = "A0133_NOK") + Long a0133Nok(); + + @Parameter(name = "A0133_OK") + Long a0133Ok(); + + @Parameter(name = "A0134_FERROR_CODE") + String a0134FerrorCode(); + + @Parameter(name = "A0134_NOK") + Long a0134Nok(); + + @Parameter(name = "A0134_OK") + Long a0134Ok(); + + @Parameter(name = "A0135_FERROR_CODE") + String a0135FerrorCode(); + + @Parameter(name = "A0135_NOK") + Long a0135Nok(); + + @Parameter(name = "A0135_OK") + Long a0135Ok(); + + @Parameter(name = "A0136_FERROR_CODE") + String a0136FerrorCode(); + + @Parameter(name = "A0136_NOK") + Long a0136Nok(); + + @Parameter(name = "A0136_OK") + Long a0136Ok(); + + @Parameter(name = "A0137_FERROR_CODE") + String a0137FerrorCode(); + + @Parameter(name = "A0137_NOK") + Long a0137Nok(); + + @Parameter(name = "A0137_OK") + Long a0137Ok(); + + @Parameter(name = "A0138_FERROR_CODE") + String a0138FerrorCode(); + + @Parameter(name = "A0138_NOK") + Long a0138Nok(); + + @Parameter(name = "A0138_OK") + Long a0138Ok(); + + @Parameter(name = "A0139_FERROR_CODE") + String a0139FerrorCode(); + + @Parameter(name = "A0139_NOK") + Long a0139Nok(); + + @Parameter(name = "A0139_OK") + Long a0139Ok(); + + @Parameter(name = "A0140_FERROR_CODE") + String a0140FerrorCode(); + + @Parameter(name = "A0140_NOK") + Long a0140Nok(); + + @Parameter(name = "A0140_OK") + Long a0140Ok(); + + @Parameter(name = "A0141_FERROR_CODE") + String a0141FerrorCode(); + + @Parameter(name = "A0141_NOK") + Long a0141Nok(); + + @Parameter(name = "A0141_OK") + Long a0141Ok(); + + @Parameter(name = "A0142_FERROR_CODE") + String a0142FerrorCode(); + + @Parameter(name = "A0142_NOK") + Long a0142Nok(); + + @Parameter(name = "A0142_OK") + Long a0142Ok(); + + @Parameter(name = "A0143_FERROR_CODE") + String a0143FerrorCode(); + + @Parameter(name = "A0143_NOK") + Long a0143Nok(); + + @Parameter(name = "A0143_OK") + Long a0143Ok(); + + @Parameter(name = "A0144_FERROR_CODE") + String a0144FerrorCode(); + + @Parameter(name = "A0144_NOK") + Long a0144Nok(); + + @Parameter(name = "A0144_OK") + Long a0144Ok(); + + @Parameter(name = "A0145_FERROR_CODE") + String a0145FerrorCode(); + + @Parameter(name = "A0145_NOK") + Long a0145Nok(); + + @Parameter(name = "A0145_OK") + Long a0145Ok(); + + @Parameter(name = "A0146_FERROR_CODE") + String a0146FerrorCode(); + + @Parameter(name = "A0146_NOK") + Long a0146Nok(); + + @Parameter(name = "A0146_OK") + Long a0146Ok(); + + @Parameter(name = "A0147_FERROR_CODE") + String a0147FerrorCode(); + + @Parameter(name = "A0147_NOK") + Long a0147Nok(); + + @Parameter(name = "A0147_OK") + Long a0147Ok(); + + @Parameter(name = "A0148_FERROR_CODE") + String a0148FerrorCode(); + + @Parameter(name = "A0148_NOK") + Long a0148Nok(); + + @Parameter(name = "A0148_OK") + Long a0148Ok(); + + @Parameter(name = "A0149_FERROR_CODE") + String a0149FerrorCode(); + + @Parameter(name = "A0149_NOK") + Long a0149Nok(); + + @Parameter(name = "A0149_OK") + Long a0149Ok(); + + @Parameter(name = "A0150_FERROR_CODE") + String a0150FerrorCode(); + + @Parameter(name = "A0150_NOK") + Long a0150Nok(); + + @Parameter(name = "A0150_OK") + Long a0150Ok(); + + @Parameter(name = "A0151_FERROR_CODE") + String a0151FerrorCode(); + + @Parameter(name = "A0151_NOK") + Long a0151Nok(); + + @Parameter(name = "A0151_OK") + Long a0151Ok(); + + @Parameter(name = "A0152_FERROR_CODE") + String a0152FerrorCode(); + + @Parameter(name = "A0152_NOK") + Long a0152Nok(); + + @Parameter(name = "A0152_OK") + Long a0152Ok(); + + @Parameter(name = "A0153_FERROR_CODE") + String a0153FerrorCode(); + + @Parameter(name = "A0153_NOK") + Long a0153Nok(); + + @Parameter(name = "A0153_OK") + Long a0153Ok(); + + @Parameter(name = "A0154_FERROR_CODE") + String a0154FerrorCode(); + + @Parameter(name = "A0154_NOK") + Long a0154Nok(); + + @Parameter(name = "A0154_OK") + Long a0154Ok(); + + @Parameter(name = "A0155_FERROR_CODE") + String a0155FerrorCode(); + + @Parameter(name = "A0155_NOK") + Long a0155Nok(); + + @Parameter(name = "A0155_OK") + Long a0155Ok(); + + @Parameter(name = "A0156_FERROR_CODE") + String a0156FerrorCode(); + + @Parameter(name = "A0156_NOK") + Long a0156Nok(); + + @Parameter(name = "A0156_OK") + Long a0156Ok(); + + @Parameter(name = "A0157_FERROR_CODE") + String a0157FerrorCode(); + + @Parameter(name = "A0157_NOK") + Long a0157Nok(); + + @Parameter(name = "A0157_OK") + Long a0157Ok(); + + @Parameter(name = "A0158_FERROR_CODE") + String a0158FerrorCode(); + + @Parameter(name = "A0158_NOK") + Long a0158Nok(); + + @Parameter(name = "A0158_OK") + Long a0158Ok(); + + @Parameter(name = "A0159_FERROR_CODE") + String a0159FerrorCode(); + + @Parameter(name = "A0159_NOK") + Long a0159Nok(); + + @Parameter(name = "A0159_OK") + Long a0159Ok(); + + @Parameter(name = "A0160_FERROR_CODE") + String a0160FerrorCode(); + + @Parameter(name = "A0160_NOK") + Long a0160Nok(); + + @Parameter(name = "A0160_OK") + Long a0160Ok(); + + @Parameter(name = "A0161_FERROR_CODE") + String a0161FerrorCode(); + + @Parameter(name = "A0161_NOK") + Long a0161Nok(); + + @Parameter(name = "A0161_OK") + Long a0161Ok(); + + @Parameter(name = "A0162_FERROR_CODE") + String a0162FerrorCode(); + + @Parameter(name = "A0162_NOK") + Long a0162Nok(); + + @Parameter(name = "A0162_OK") + Long a0162Ok(); + + @Parameter(name = "A0163_FERROR_CODE") + String a0163FerrorCode(); + + @Parameter(name = "A0163_NOK") + Long a0163Nok(); + + @Parameter(name = "A0163_OK") + Long a0163Ok(); + + @Parameter(name = "A0164_FERROR_CODE") + String a0164FerrorCode(); + + @Parameter(name = "A0164_NOK") + Long a0164Nok(); + + @Parameter(name = "A0164_OK") + Long a0164Ok(); + + @Parameter(name = "A0165_FERROR_CODE") + String a0165FerrorCode(); + + @Parameter(name = "A0165_NOK") + Long a0165Nok(); + + @Parameter(name = "A0165_OK") + Long a0165Ok(); + + @Parameter(name = "A0166_FERROR_CODE") + String a0166FerrorCode(); + + @Parameter(name = "A0166_NOK") + Long a0166Nok(); + + @Parameter(name = "A0166_OK") + Long a0166Ok(); + + @Parameter(name = "A0167_FERROR_CODE") + String a0167FerrorCode(); + + @Parameter(name = "A0167_NOK") + Long a0167Nok(); + + @Parameter(name = "A0167_OK") + Long a0167Ok(); + + @Parameter(name = "A0168_FERROR_CODE") + String a0168FerrorCode(); + + @Parameter(name = "A0168_NOK") + Long a0168Nok(); + + @Parameter(name = "A0168_OK") + Long a0168Ok(); + + @Parameter(name = "A0169_FERROR_CODE") + String a0169FerrorCode(); + + @Parameter(name = "A0169_NOK") + Long a0169Nok(); + + @Parameter(name = "A0169_OK") + Long a0169Ok(); + + @Parameter(name = "A0170_FERROR_CODE") + String a0170FerrorCode(); + + @Parameter(name = "A0170_NOK") + Long a0170Nok(); + + @Parameter(name = "A0170_OK") + Long a0170Ok(); + + @Parameter(name = "A0171_FERROR_CODE") + String a0171FerrorCode(); + + @Parameter(name = "A0171_NOK") + Long a0171Nok(); + + @Parameter(name = "A0171_OK") + Long a0171Ok(); + + @Parameter(name = "A0172_FERROR_CODE") + String a0172FerrorCode(); + + @Parameter(name = "A0172_NOK") + Long a0172Nok(); + + @Parameter(name = "A0172_OK") + Long a0172Ok(); + + @Parameter(name = "A0173_FERROR_CODE") + String a0173FerrorCode(); + + @Parameter(name = "A0173_NOK") + Long a0173Nok(); + + @Parameter(name = "A0173_OK") + Long a0173Ok(); + + @Parameter(name = "A0174_FERROR_CODE") + String a0174FerrorCode(); + + @Parameter(name = "A0174_NOK") + Long a0174Nok(); + + @Parameter(name = "A0174_OK") + Long a0174Ok(); + + @Parameter(name = "A0175_FERROR_CODE") + String a0175FerrorCode(); + + @Parameter(name = "A0175_NOK") + Long a0175Nok(); + + @Parameter(name = "A0175_OK") + Long a0175Ok(); + + @Parameter(name = "A0176_FERROR_CODE") + String a0176FerrorCode(); + + @Parameter(name = "A0176_NOK") + Long a0176Nok(); + + @Parameter(name = "A0176_OK") + Long a0176Ok(); + + @Parameter(name = "A0177_FERROR_CODE") + String a0177FerrorCode(); + + @Parameter(name = "A0177_NOK") + Long a0177Nok(); + + @Parameter(name = "A0177_OK") + Long a0177Ok(); + + @Parameter(name = "A0178_FERROR_CODE") + String a0178FerrorCode(); + + @Parameter(name = "A0178_NOK") + Long a0178Nok(); + + @Parameter(name = "A0178_OK") + Long a0178Ok(); + + @Parameter(name = "A0179_FERROR_CODE") + String a0179FerrorCode(); + + @Parameter(name = "A0179_NOK") + Long a0179Nok(); + + @Parameter(name = "A0179_OK") + Long a0179Ok(); + + @Parameter(name = "A0180_FERROR_CODE") + String a0180FerrorCode(); + + @Parameter(name = "A0180_NOK") + Long a0180Nok(); + + @Parameter(name = "A0180_OK") + Long a0180Ok(); + + @Parameter(name = "A0181_FERROR_CODE") + String a0181FerrorCode(); + + @Parameter(name = "A0181_NOK") + Long a0181Nok(); + + @Parameter(name = "A0181_OK") + Long a0181Ok(); + + @Parameter(name = "A0182_FERROR_CODE") + String a0182FerrorCode(); + + @Parameter(name = "A0182_NOK") + Long a0182Nok(); + + @Parameter(name = "A0182_OK") + Long a0182Ok(); + + @Parameter(name = "A0183_FERROR_CODE") + String a0183FerrorCode(); + + @Parameter(name = "A0183_NOK") + Long a0183Nok(); + + @Parameter(name = "A0183_OK") + Long a0183Ok(); + + @Parameter(name = "A0184_FERROR_CODE") + String a0184FerrorCode(); + + @Parameter(name = "A0184_NOK") + Long a0184Nok(); + + @Parameter(name = "A0184_OK") + Long a0184Ok(); + + @Parameter(name = "A0185_FERROR_CODE") + String a0185FerrorCode(); + + @Parameter(name = "A0185_NOK") + Long a0185Nok(); + + @Parameter(name = "A0185_OK") + Long a0185Ok(); + + @Parameter(name = "A0186_FERROR_CODE") + String a0186FerrorCode(); + + @Parameter(name = "A0186_NOK") + Long a0186Nok(); + + @Parameter(name = "A0186_OK") + Long a0186Ok(); + + @Parameter(name = "A0187_FERROR_CODE") + String a0187FerrorCode(); + + @Parameter(name = "A0187_NOK") + Long a0187Nok(); + + @Parameter(name = "A0187_OK") + Long a0187Ok(); + + @Parameter(name = "A0188_FERROR_CODE") + String a0188FerrorCode(); + + @Parameter(name = "A0188_NOK") + Long a0188Nok(); + + @Parameter(name = "A0188_OK") + Long a0188Ok(); + + @Parameter(name = "A0189_FERROR_CODE") + String a0189FerrorCode(); + + @Parameter(name = "A0189_NOK") + Long a0189Nok(); + + @Parameter(name = "A0189_OK") + Long a0189Ok(); + + @Parameter(name = "A0190_FERROR_CODE") + String a0190FerrorCode(); + + @Parameter(name = "A0190_NOK") + Long a0190Nok(); + + @Parameter(name = "A0190_OK") + Long a0190Ok(); + + @Parameter(name = "A0191_FERROR_CODE") + String a0191FerrorCode(); + + @Parameter(name = "A0191_NOK") + Long a0191Nok(); + + @Parameter(name = "A0191_OK") + Long a0191Ok(); + + @Parameter(name = "A0192_FERROR_CODE") + String a0192FerrorCode(); + + @Parameter(name = "A0192_NOK") + Long a0192Nok(); + + @Parameter(name = "A0192_OK") + Long a0192Ok(); + + @Parameter(name = "A0193_FERROR_CODE") + String a0193FerrorCode(); + + @Parameter(name = "A0193_NOK") + Long a0193Nok(); + + @Parameter(name = "A0193_OK") + Long a0193Ok(); + + @Parameter(name = "A0194_FERROR_CODE") + String a0194FerrorCode(); + + @Parameter(name = "A0194_NOK") + Long a0194Nok(); + + @Parameter(name = "A0194_OK") + Long a0194Ok(); + + @Parameter(name = "A0195_FERROR_CODE") + String a0195FerrorCode(); + + @Parameter(name = "A0195_NOK") + Long a0195Nok(); + + @Parameter(name = "A0195_OK") + Long a0195Ok(); + + @Parameter(name = "A0196_FERROR_CODE") + String a0196FerrorCode(); + + @Parameter(name = "A0196_NOK") + Long a0196Nok(); + + @Parameter(name = "A0196_OK") + Long a0196Ok(); + + @Parameter(name = "A0197_FERROR_CODE") + String a0197FerrorCode(); + + @Parameter(name = "A0197_NOK") + Long a0197Nok(); + + @Parameter(name = "A0197_OK") + Long a0197Ok(); + + @Parameter(name = "A0198_FERROR_CODE") + String a0198FerrorCode(); + + @Parameter(name = "A0198_NOK") + Long a0198Nok(); + + @Parameter(name = "A0198_OK") + Long a0198Ok(); + + @Parameter(name = "A0199_FERROR_CODE") + String a0199FerrorCode(); + + @Parameter(name = "A0199_NOK") + Long a0199Nok(); + + @Parameter(name = "A0199_OK") + Long a0199Ok(); + + @Parameter(name = "A0200_FERROR_CODE") + String a0200FerrorCode(); + + @Parameter(name = "A0200_NOK") + Long a0200Nok(); + + @Parameter(name = "A0200_OK") + Long a0200Ok(); + + @Parameter(name = "A0201_FERROR_CODE") + String a0201FerrorCode(); + + @Parameter(name = "A0201_NOK") + Long a0201Nok(); + + @Parameter(name = "A0201_OK") + Long a0201Ok(); + + @Parameter(name = "A0202_FERROR_CODE") + String a0202FerrorCode(); + + @Parameter(name = "A0202_NOK") + Long a0202Nok(); + + @Parameter(name = "A0202_OK") + Long a0202Ok(); + + @Parameter(name = "A0203_FERROR_CODE") + String a0203FerrorCode(); + + @Parameter(name = "A0203_NOK") + Long a0203Nok(); + + @Parameter(name = "A0203_OK") + Long a0203Ok(); + + @Parameter(name = "A0204_FERROR_CODE") + String a0204FerrorCode(); + + @Parameter(name = "A0204_NOK") + Long a0204Nok(); + + @Parameter(name = "A0204_OK") + Long a0204Ok(); + + @Parameter(name = "A0205_FERROR_CODE") + String a0205FerrorCode(); + + @Parameter(name = "A0205_NOK") + Long a0205Nok(); + + @Parameter(name = "A0205_OK") + Long a0205Ok(); + + @Parameter(name = "A0206_FERROR_CODE") + String a0206FerrorCode(); + + @Parameter(name = "A0206_NOK") + Long a0206Nok(); + + @Parameter(name = "A0206_OK") + Long a0206Ok(); + + @Parameter(name = "A0207_FERROR_CODE") + String a0207FerrorCode(); + + @Parameter(name = "A0207_NOK") + Long a0207Nok(); + + @Parameter(name = "A0207_OK") + Long a0207Ok(); + + @Parameter(name = "A0208_FERROR_CODE") + String a0208FerrorCode(); + + @Parameter(name = "A0208_NOK") + Long a0208Nok(); + + @Parameter(name = "A0208_OK") + Long a0208Ok(); + + @Parameter(name = "A0209_FERROR_CODE") + String a0209FerrorCode(); + + @Parameter(name = "A0209_NOK") + Long a0209Nok(); + + @Parameter(name = "A0209_OK") + Long a0209Ok(); + + @Parameter(name = "A0210_FERROR_CODE") + String a0210FerrorCode(); + + @Parameter(name = "A0210_NOK") + Long a0210Nok(); + + @Parameter(name = "A0210_OK") + Long a0210Ok(); + + @Parameter(name = "A0211_FERROR_CODE") + String a0211FerrorCode(); + + @Parameter(name = "A0211_NOK") + Long a0211Nok(); + + @Parameter(name = "A0211_OK") + Long a0211Ok(); + + @Parameter(name = "A0212_FERROR_CODE") + String a0212FerrorCode(); + + @Parameter(name = "A0212_NOK") + Long a0212Nok(); + + @Parameter(name = "A0212_OK") + Long a0212Ok(); + + @Parameter(name = "A0213_FERROR_CODE") + String a0213FerrorCode(); + + @Parameter(name = "A0213_NOK") + Long a0213Nok(); + + @Parameter(name = "A0213_OK") + Long a0213Ok(); + + @Parameter(name = "A0214_FERROR_CODE") + String a0214FerrorCode(); + + @Parameter(name = "A0214_NOK") + Long a0214Nok(); + + @Parameter(name = "A0214_OK") + Long a0214Ok(); + + @Parameter(name = "A0215_FERROR_CODE") + String a0215FerrorCode(); + + @Parameter(name = "A0215_NOK") + Long a0215Nok(); + + @Parameter(name = "A0215_OK") + Long a0215Ok(); + + @Parameter(name = "A0216_FERROR_CODE") + String a0216FerrorCode(); + + @Parameter(name = "A0216_NOK") + Long a0216Nok(); + + @Parameter(name = "A0216_OK") + Long a0216Ok(); + + @Parameter(name = "A0217_FERROR_CODE") + String a0217FerrorCode(); + + @Parameter(name = "A0217_NOK") + Long a0217Nok(); + + @Parameter(name = "A0217_OK") + Long a0217Ok(); + + @Parameter(name = "A0218_FERROR_CODE") + String a0218FerrorCode(); + + @Parameter(name = "A0218_NOK") + Long a0218Nok(); + + @Parameter(name = "A0218_OK") + Long a0218Ok(); + + @Parameter(name = "A0219_FERROR_CODE") + String a0219FerrorCode(); + + @Parameter(name = "A0219_NOK") + Long a0219Nok(); + + @Parameter(name = "A0219_OK") + Long a0219Ok(); + + @Parameter(name = "A0220_FERROR_CODE") + String a0220FerrorCode(); + + @Parameter(name = "A0220_NOK") + Long a0220Nok(); + + @Parameter(name = "A0220_OK") + Long a0220Ok(); + + @Parameter(name = "A0221_FERROR_CODE") + String a0221FerrorCode(); + + @Parameter(name = "A0221_NOK") + Long a0221Nok(); + + @Parameter(name = "A0221_OK") + Long a0221Ok(); + + @Parameter(name = "A0222_FERROR_CODE") + String a0222FerrorCode(); + + @Parameter(name = "A0222_NOK") + Long a0222Nok(); + + @Parameter(name = "A0222_OK") + Long a0222Ok(); + + @Parameter(name = "A0223_FERROR_CODE") + String a0223FerrorCode(); + + @Parameter(name = "A0223_NOK") + Long a0223Nok(); + + @Parameter(name = "A0223_OK") + Long a0223Ok(); + + @Parameter(name = "A0224_FERROR_CODE") + String a0224FerrorCode(); + + @Parameter(name = "A0224_NOK") + Long a0224Nok(); + + @Parameter(name = "A0224_OK") + Long a0224Ok(); + + @Parameter(name = "A0225_FERROR_CODE") + String a0225FerrorCode(); + + @Parameter(name = "A0225_NOK") + Long a0225Nok(); + + @Parameter(name = "A0225_OK") + Long a0225Ok(); + + @Parameter(name = "A0226_FERROR_CODE") + String a0226FerrorCode(); + + @Parameter(name = "A0226_NOK") + Long a0226Nok(); + + @Parameter(name = "A0226_OK") + Long a0226Ok(); + + @Parameter(name = "A0227_FERROR_CODE") + String a0227FerrorCode(); + + @Parameter(name = "A0227_NOK") + Long a0227Nok(); + + @Parameter(name = "A0227_OK") + Long a0227Ok(); + + @Parameter(name = "A0228_FERROR_CODE") + String a0228FerrorCode(); + + @Parameter(name = "A0228_NOK") + Long a0228Nok(); + + @Parameter(name = "A0228_OK") + Long a0228Ok(); + + @Parameter(name = "A0229_FERROR_CODE") + String a0229FerrorCode(); + + @Parameter(name = "A0229_NOK") + Long a0229Nok(); + + @Parameter(name = "A0229_OK") + Long a0229Ok(); + + @Parameter(name = "A0230_FERROR_CODE") + String a0230FerrorCode(); + + @Parameter(name = "A0230_NOK") + Long a0230Nok(); + + @Parameter(name = "A0230_OK") + Long a0230Ok(); + + @Parameter(name = "A0231_FERROR_CODE") + String a0231FerrorCode(); + + @Parameter(name = "A0231_NOK") + Long a0231Nok(); + + @Parameter(name = "A0231_OK") + Long a0231Ok(); + + @Parameter(name = "A0232_FERROR_CODE") + String a0232FerrorCode(); + + @Parameter(name = "A0232_NOK") + Long a0232Nok(); + + @Parameter(name = "A0232_OK") + Long a0232Ok(); + + @Parameter(name = "A0233_FERROR_CODE") + String a0233FerrorCode(); + + @Parameter(name = "A0233_NOK") + Long a0233Nok(); + + @Parameter(name = "A0233_OK") + Long a0233Ok(); + + @Parameter(name = "A0234_FERROR_CODE") + String a0234FerrorCode(); + + @Parameter(name = "A0234_NOK") + Long a0234Nok(); + + @Parameter(name = "A0234_OK") + Long a0234Ok(); + + @Parameter(name = "A0235_FERROR_CODE") + String a0235FerrorCode(); + + @Parameter(name = "A0235_NOK") + Long a0235Nok(); + + @Parameter(name = "A0235_OK") + Long a0235Ok(); + + @Parameter(name = "A0236_FERROR_CODE") + String a0236FerrorCode(); + + @Parameter(name = "A0236_NOK") + Long a0236Nok(); + + @Parameter(name = "A0236_OK") + Long a0236Ok(); + + @Parameter(name = "A0237_FERROR_CODE") + String a0237FerrorCode(); + + @Parameter(name = "A0237_NOK") + Long a0237Nok(); + + @Parameter(name = "A0237_OK") + Long a0237Ok(); + + @Parameter(name = "A0238_FERROR_CODE") + String a0238FerrorCode(); + + @Parameter(name = "A0238_NOK") + Long a0238Nok(); + + @Parameter(name = "A0238_OK") + Long a0238Ok(); + + @Parameter(name = "A0239_FERROR_CODE") + String a0239FerrorCode(); + + @Parameter(name = "A0239_NOK") + Long a0239Nok(); + + @Parameter(name = "A0239_OK") + Long a0239Ok(); + + @Parameter(name = "A0240_FERROR_CODE") + String a0240FerrorCode(); + + @Parameter(name = "A0240_NOK") + Long a0240Nok(); + + @Parameter(name = "A0240_OK") + Long a0240Ok(); + + @Parameter(name = "A0241_FERROR_CODE") + String a0241FerrorCode(); + + @Parameter(name = "A0241_NOK") + Long a0241Nok(); + + @Parameter(name = "A0241_OK") + Long a0241Ok(); + + @Parameter(name = "A0242_FERROR_CODE") + String a0242FerrorCode(); + + @Parameter(name = "A0242_NOK") + Long a0242Nok(); + + @Parameter(name = "A0242_OK") + Long a0242Ok(); + + @Parameter(name = "A0243_FERROR_CODE") + String a0243FerrorCode(); + + @Parameter(name = "A0243_NOK") + Long a0243Nok(); + + @Parameter(name = "A0243_OK") + Long a0243Ok(); + + @Parameter(name = "A0244_FERROR_CODE") + String a0244FerrorCode(); + + @Parameter(name = "A0244_NOK") + Long a0244Nok(); + + @Parameter(name = "A0244_OK") + Long a0244Ok(); + + @Parameter(name = "A0245_FERROR_CODE") + String a0245FerrorCode(); + + @Parameter(name = "A0245_NOK") + Long a0245Nok(); + + @Parameter(name = "A0245_OK") + Long a0245Ok(); + + @Parameter(name = "A0246_FERROR_CODE") + String a0246FerrorCode(); + + @Parameter(name = "A0246_NOK") + Long a0246Nok(); + + @Parameter(name = "A0246_OK") + Long a0246Ok(); + + @Parameter(name = "A0247_FERROR_CODE") + String a0247FerrorCode(); + + @Parameter(name = "A0247_NOK") + Long a0247Nok(); + + @Parameter(name = "A0247_OK") + Long a0247Ok(); + + @Parameter(name = "A0248_FERROR_CODE") + String a0248FerrorCode(); + + @Parameter(name = "A0248_NOK") + Long a0248Nok(); + + @Parameter(name = "A0248_OK") + Long a0248Ok(); + + @Parameter(name = "A0249_FERROR_CODE") + String a0249FerrorCode(); + + @Parameter(name = "A0249_NOK") + Long a0249Nok(); + + @Parameter(name = "A0249_OK") + Long a0249Ok(); + + @Parameter(name = "A0250_FERROR_CODE") + String a0250FerrorCode(); + + @Parameter(name = "A0250_NOK") + Long a0250Nok(); + + @Parameter(name = "A0250_OK") + Long a0250Ok(); + + @Parameter(name = "A0251_FERROR_CODE") + String a0251FerrorCode(); + + @Parameter(name = "A0251_NOK") + Long a0251Nok(); + + @Parameter(name = "A0251_OK") + Long a0251Ok(); + + @Parameter(name = "A0252_FERROR_CODE") + String a0252FerrorCode(); + + @Parameter(name = "A0252_NOK") + Long a0252Nok(); + + @Parameter(name = "A0252_OK") + Long a0252Ok(); + + @Parameter(name = "A0253_FERROR_CODE") + String a0253FerrorCode(); + + @Parameter(name = "A0253_NOK") + Long a0253Nok(); + + @Parameter(name = "A0253_OK") + Long a0253Ok(); + + @Parameter(name = "A0254_FERROR_CODE") + String a0254FerrorCode(); + + @Parameter(name = "A0254_NOK") + Long a0254Nok(); + + @Parameter(name = "A0254_OK") + Long a0254Ok(); + + @Parameter(name = "A0255_FERROR_CODE") + String a0255FerrorCode(); + + @Parameter(name = "A0255_NOK") + Long a0255Nok(); + + @Parameter(name = "A0255_OK") + Long a0255Ok(); + + @Parameter(name = "A0256_FERROR_CODE") + String a0256FerrorCode(); + + @Parameter(name = "A0256_NOK") + Long a0256Nok(); + + @Parameter(name = "A0256_OK") + Long a0256Ok(); + + @Parameter(name = "A0257_FERROR_CODE") + String a0257FerrorCode(); + + @Parameter(name = "A0257_NOK") + Long a0257Nok(); + + @Parameter(name = "A0257_OK") + Long a0257Ok(); + + @Parameter(name = "A0258_FERROR_CODE") + String a0258FerrorCode(); + + @Parameter(name = "A0258_NOK") + Long a0258Nok(); + + @Parameter(name = "A0258_OK") + Long a0258Ok(); + + @Parameter(name = "A0259_FERROR_CODE") + String a0259FerrorCode(); + + @Parameter(name = "A0259_NOK") + Long a0259Nok(); + + @Parameter(name = "A0259_OK") + Long a0259Ok(); + + @Parameter(name = "A0260_FERROR_CODE") + String a0260FerrorCode(); + + @Parameter(name = "A0260_NOK") + Long a0260Nok(); + + @Parameter(name = "A0260_OK") + Long a0260Ok(); + + @Parameter(name = "A0261_FERROR_CODE") + String a0261FerrorCode(); + + @Parameter(name = "A0261_NOK") + Long a0261Nok(); + + @Parameter(name = "A0261_OK") + Long a0261Ok(); + + @Parameter(name = "A0262_FERROR_CODE") + String a0262FerrorCode(); + + @Parameter(name = "A0262_NOK") + Long a0262Nok(); + + @Parameter(name = "A0262_OK") + Long a0262Ok(); + + @Parameter(name = "A0263_FERROR_CODE") + String a0263FerrorCode(); + + @Parameter(name = "A0263_NOK") + Long a0263Nok(); + + @Parameter(name = "A0263_OK") + Long a0263Ok(); + + @Parameter(name = "A0264_FERROR_CODE") + String a0264FerrorCode(); + + @Parameter(name = "A0264_NOK") + Long a0264Nok(); + + @Parameter(name = "A0264_OK") + Long a0264Ok(); + + @Parameter(name = "A0265_FERROR_CODE") + String a0265FerrorCode(); + + @Parameter(name = "A0265_NOK") + Long a0265Nok(); + + @Parameter(name = "A0265_OK") + Long a0265Ok(); + + @Parameter(name = "A0266_FERROR_CODE") + String a0266FerrorCode(); + + @Parameter(name = "A0266_NOK") + Long a0266Nok(); + + @Parameter(name = "A0266_OK") + Long a0266Ok(); + + @Parameter(name = "A0267_FERROR_CODE") + String a0267FerrorCode(); + + @Parameter(name = "A0267_NOK") + Long a0267Nok(); + + @Parameter(name = "A0267_OK") + Long a0267Ok(); + + @Parameter(name = "A0268_FERROR_CODE") + String a0268FerrorCode(); + + @Parameter(name = "A0268_NOK") + Long a0268Nok(); + + @Parameter(name = "A0268_OK") + Long a0268Ok(); + + @Parameter(name = "A0269_FERROR_CODE") + String a0269FerrorCode(); + + @Parameter(name = "A0269_NOK") + Long a0269Nok(); + + @Parameter(name = "A0269_OK") + Long a0269Ok(); + + @Parameter(name = "A0270_FERROR_CODE") + String a0270FerrorCode(); + + @Parameter(name = "A0270_NOK") + Long a0270Nok(); + + @Parameter(name = "A0270_OK") + Long a0270Ok(); + + @Parameter(name = "A0271_FERROR_CODE") + String a0271FerrorCode(); + + @Parameter(name = "A0271_NOK") + Long a0271Nok(); + + @Parameter(name = "A0271_OK") + Long a0271Ok(); + + @Parameter(name = "A0272_FERROR_CODE") + String a0272FerrorCode(); + + @Parameter(name = "A0272_NOK") + Long a0272Nok(); + + @Parameter(name = "A0272_OK") + Long a0272Ok(); + + @Parameter(name = "A0273_FERROR_CODE") + String a0273FerrorCode(); + + @Parameter(name = "A0273_NOK") + Long a0273Nok(); + + @Parameter(name = "A0273_OK") + Long a0273Ok(); + + @Parameter(name = "A0274_FERROR_CODE") + String a0274FerrorCode(); + + @Parameter(name = "A0274_NOK") + Long a0274Nok(); + + @Parameter(name = "A0274_OK") + Long a0274Ok(); + + @Parameter(name = "A0275_FERROR_CODE") + String a0275FerrorCode(); + + @Parameter(name = "A0275_NOK") + Long a0275Nok(); + + @Parameter(name = "A0275_OK") + Long a0275Ok(); + + @Parameter(name = "A0276_FERROR_CODE") + String a0276FerrorCode(); + + @Parameter(name = "A0276_NOK") + Long a0276Nok(); + + @Parameter(name = "A0276_OK") + Long a0276Ok(); + + @Parameter(name = "A0277_FERROR_CODE") + String a0277FerrorCode(); + + @Parameter(name = "A0277_NOK") + Long a0277Nok(); + + @Parameter(name = "A0277_OK") + Long a0277Ok(); + + @Parameter(name = "A0278_FERROR_CODE") + String a0278FerrorCode(); + + @Parameter(name = "A0278_NOK") + Long a0278Nok(); + + @Parameter(name = "A0278_OK") + Long a0278Ok(); + + @Parameter(name = "A0279_FERROR_CODE") + String a0279FerrorCode(); + + @Parameter(name = "A0279_NOK") + Long a0279Nok(); + + @Parameter(name = "A0279_OK") + Long a0279Ok(); + + @Parameter(name = "A0280_FERROR_CODE") + String a0280FerrorCode(); + + @Parameter(name = "A0280_NOK") + Long a0280Nok(); + + @Parameter(name = "A0280_OK") + Long a0280Ok(); + + @Parameter(name = "A0281_FERROR_CODE") + String a0281FerrorCode(); + + @Parameter(name = "A0281_NOK") + Long a0281Nok(); + + @Parameter(name = "A0281_OK") + Long a0281Ok(); + + @Parameter(name = "A0282_FERROR_CODE") + String a0282FerrorCode(); + + @Parameter(name = "A0282_NOK") + Long a0282Nok(); + + @Parameter(name = "A0282_OK") + Long a0282Ok(); + + @Parameter(name = "A0283_FERROR_CODE") + String a0283FerrorCode(); + + @Parameter(name = "A0283_NOK") + Long a0283Nok(); + + @Parameter(name = "A0283_OK") + Long a0283Ok(); + + @Parameter(name = "A0284_FERROR_CODE") + String a0284FerrorCode(); + + @Parameter(name = "A0284_NOK") + Long a0284Nok(); + + @Parameter(name = "A0284_OK") + Long a0284Ok(); + + @Parameter(name = "A0285_FERROR_CODE") + String a0285FerrorCode(); + + @Parameter(name = "A0285_NOK") + Long a0285Nok(); + + @Parameter(name = "A0285_OK") + Long a0285Ok(); + + @Parameter(name = "A0286_FERROR_CODE") + String a0286FerrorCode(); + + @Parameter(name = "A0286_NOK") + Long a0286Nok(); + + @Parameter(name = "A0286_OK") + Long a0286Ok(); + + @Parameter(name = "A0287_FERROR_CODE") + String a0287FerrorCode(); + + @Parameter(name = "A0287_NOK") + Long a0287Nok(); + + @Parameter(name = "A0287_OK") + Long a0287Ok(); + + @Parameter(name = "A0288_FERROR_CODE") + String a0288FerrorCode(); + + @Parameter(name = "A0288_NOK") + Long a0288Nok(); + + @Parameter(name = "A0288_OK") + Long a0288Ok(); + + @Parameter(name = "A0289_FERROR_CODE") + String a0289FerrorCode(); + + @Parameter(name = "A0289_NOK") + Long a0289Nok(); + + @Parameter(name = "A0289_OK") + Long a0289Ok(); + + @Parameter(name = "A0290_FERROR_CODE") + String a0290FerrorCode(); + + @Parameter(name = "A0290_NOK") + Long a0290Nok(); + + @Parameter(name = "A0290_OK") + Long a0290Ok(); + + @Parameter(name = "A0291_FERROR_CODE") + String a0291FerrorCode(); + + @Parameter(name = "A0291_NOK") + Long a0291Nok(); + + @Parameter(name = "A0291_OK") + Long a0291Ok(); + + @Parameter(name = "A0292_FERROR_CODE") + String a0292FerrorCode(); + + @Parameter(name = "A0292_NOK") + Long a0292Nok(); + + @Parameter(name = "A0292_OK") + Long a0292Ok(); + + @Parameter(name = "A0293_FERROR_CODE") + String a0293FerrorCode(); + + @Parameter(name = "A0293_NOK") + Long a0293Nok(); + + @Parameter(name = "A0293_OK") + Long a0293Ok(); + + @Parameter(name = "A0294_FERROR_CODE") + String a0294FerrorCode(); + + @Parameter(name = "A0294_NOK") + Long a0294Nok(); + + @Parameter(name = "A0294_OK") + Long a0294Ok(); + + @Parameter(name = "A0295_FERROR_CODE") + String a0295FerrorCode(); + + @Parameter(name = "A0295_NOK") + Long a0295Nok(); + + @Parameter(name = "A0295_OK") + Long a0295Ok(); + + @Parameter(name = "A0296_FERROR_CODE") + String a0296FerrorCode(); + + @Parameter(name = "A0296_NOK") + Long a0296Nok(); + + @Parameter(name = "A0296_OK") + Long a0296Ok(); + + @Parameter(name = "A0297_FERROR_CODE") + String a0297FerrorCode(); + + @Parameter(name = "A0297_NOK") + Long a0297Nok(); + + @Parameter(name = "A0297_OK") + Long a0297Ok(); + + @Parameter(name = "A0298_FERROR_CODE") + String a0298FerrorCode(); + + @Parameter(name = "A0298_NOK") + Long a0298Nok(); + + @Parameter(name = "A0298_OK") + Long a0298Ok(); + + @Parameter(name = "A0299_FERROR_CODE") + String a0299FerrorCode(); + + @Parameter(name = "A0299_NOK") + Long a0299Nok(); + + @Parameter(name = "A0299_OK") + Long a0299Ok(); + + @Parameter(name = "A0300_FERROR_CODE") + String a0300FerrorCode(); + + @Parameter(name = "A0300_NOK") + Long a0300Nok(); + + @Parameter(name = "A0300_OK") + Long a0300Ok(); + + @Parameter(name = "FERROR_TEXT") + String ferrorText(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF643.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF643.java new file mode 100644 index 0000000..d75ac8f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF643.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF643 extends MwfRequest { + + @Parameter(name = "INST_PT_KEY") + MWF643 instPtKey(Long instPtKey); + @Parameter(name = "NactiDokladTyp_Flag") + MWF643 nactiDokladTypFlag(String nactiDokladTypFlag); + @Parameter(name = "PREV_DOC_INST_KEY_IN") + MWF643 prevDocInstKeyIn(Long prevDocInstKeyIn); + @Parameter(name = "REQD_DOC_SRC_IN") + MWF643 reqdDocSrcIn(String reqdDocSrcIn); + @Parameter(name = "WAITING_ONLY_FLAG") + MWF643 waitingOnlyFlag(String waitingOnlyFlag); + @Parameter(name = "Zadost_KEY") + MWF643 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF643Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF643Data.java new file mode 100644 index 0000000..173a9bd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF643Data.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF643Data { + + private Map params; + + public MWF643Data(Map params) { + this.params = params; + } + + public String rsDokladpredkladanykategorie() { + return (String) params.get("RS_DOKLADPREDKLADANYKATEGORIE"); + } + + public String rsDokladpredkladanyucel() { + return (String) params.get("RS_DOKLADPREDKLADANYUCEL"); + } + + public String rsDokladpredkladanysmazflag() { + return (String) params.get("RS_DOKLADPREDKLADANYSMAZFLAG"); + } + + public Long rsInstPtKey() { + return (Long) params.get("RS_INST_PT_KEY"); + } + + public String rsDokladpredkladanyzdroj() { + return (String) params.get("RS_DOKLADPREDKLADANYZDROJ"); + } + + public Long rsDokladpredkladanyKey() { + return (Long) params.get("RS_DOKLADPREDKLADANY_KEY"); + } + + public Long rsPrevDocInstKey() { + return (Long) params.get("RS_PREV_DOC_INST_KEY"); + } + + public Long rsDocKey() { + return (Long) params.get("RS_DOC_KEY"); + } + + public String rsRc() { + return (String) params.get("RS_RC"); + } + + public String rsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public String rsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public String rsDokladpredkladanytyp() { + return (String) params.get("RS_DOKLADPREDKLADANYTYP"); + } + + public String rsMinroledoklad() { + return (String) params.get("RS_MINROLEDOKLAD"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF643Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF643Response.java new file mode 100644 index 0000000..7f57739 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF643Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF643Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF647.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF647.java new file mode 100644 index 0000000..eebf4fe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF647.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF647 extends MwfRequest { + + @Parameter(name = "CLIENT_TYPE") + MWF647 clientType(String clientType); + @Parameter(name = "CONTRACT_ID") + MWF647 contractId(String contractId); + @Parameter(name = "CONTRACT_SYSTEM") + MWF647 contractSystem(String contractSystem); + @Parameter(name = "DISTR_CHANNEL_ID") + MWF647 distrChannelId(String distrChannelId); + @Parameter(name = "ICO") + MWF647 ico(String ico); + @Parameter(name = "INFOLIMIT_FROM_CACHE") + MWF647 infolimitFromCache(Long infolimitFromCache); + @Parameter(name = "NAME") + MWF647 name(String name); + @Parameter(name = "ONLINE_CHECK") + MWF647 onlineCheck(Long onlineCheck); + @Parameter(name = "POS_ID") + MWF647 posId(String posId); + @Parameter(name = "RC") + MWF647 rc(String rc); + @Parameter(name = "SURNAME") + MWF647 surname(String surname); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF647Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF647Data.java new file mode 100644 index 0000000..9e83663 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF647Data.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF647Data { + + private Map params; + + public MWF647Data(Map params) { + this.params = params; + } + + public String rsProductType() { + return (String) params.get("RS_PRODUCT_TYPE"); + } + + public Double rsInfolimit() { + return (Double) params.get("RS_INFOLIMIT"); + } + + public String rsAccId() { + return (String) params.get("RS_ACC_ID"); + } + + public String rsCurrency() { + return (String) params.get("RS_CURRENCY"); + } + + public String rsContractNr() { + return (String) params.get("RS_CONTRACT_NR"); + } + + public Double rsCashLimitPercent() { + return (Double) params.get("RS_CASH_LIMIT_PERCENT"); + } + + public Double rsInstalmentPercent() { + return (Double) params.get("RS_INSTALMENT_PERCENT"); + } + + public Double rsInfolimitGuaranted() { + return (Double) params.get("RS_INFOLIMIT_GUARANTED"); + } + + public String rsReasonCategory() { + return (String) params.get("RS_REASON_CATEGORY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF647Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF647Response.java new file mode 100644 index 0000000..8021a83 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF647Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF647Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF648.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF648.java new file mode 100644 index 0000000..2e0db26 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF648.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF648 extends MwfRequest { + + @Parameter(name = "CHANNEL_ID") + MWF648 channelId(String channelId); + @Parameter(name = "CLIENT_TYPE") + MWF648 clientType(String clientType); + @Parameter(name = "CONTRACT_ID") + MWF648 contractId(String contractId); + @Parameter(name = "CONTRACT_SYSTEM") + MWF648 contractSystem(String contractSystem); + @Parameter(name = "ICO") + MWF648 ico(String ico); + @Parameter(name = "NAME") + MWF648 name(String name); + @Parameter(name = "NAS_API_CONF_ID") + MWF648 nasApiConfId(Long nasApiConfId); + @Parameter(name = "NAS_FLOW_ID") + MWF648 nasFlowId(String nasFlowId); + @Parameter(name = "ONLINE_CHECK") + MWF648 onlineCheck(Long onlineCheck); + @Parameter(name = "POS_ID") + MWF648 posId(String posId); + @Parameter(name = "PURPOSE") + MWF648 purpose(String purpose); + @Parameter(name = "RC") + MWF648 rc(String rc); + @Parameter(name = "SURNAME") + MWF648 surname(String surname); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF648Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF648Data.java new file mode 100644 index 0000000..9023168 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF648Data.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF648Data { + + private Map params; + + public MWF648Data(Map params) { + this.params = params; + } + + public String rsIdBusiness() { + return (String) params.get("RS_ID_BUSINESS"); + } + + public String rsActualDebtFlag() { + return (String) params.get("RS_ACTUAL_DEBT_FLAG"); + } + + public String rsHistDebtFlag() { + return (String) params.get("RS_HIST_DEBT_FLAG"); + } + + public String rsCustType() { + return (String) params.get("RS_CUST_TYPE"); + } + + public String rsCustSubtype() { + return (String) params.get("RS_CUST_SUBTYPE"); + } + + public String rsDueCntrBusinessId() { + return (String) params.get("RS_DUE_CNTR_BUSINESS_ID"); + } + + public String rsDueCntrProdType() { + return (String) params.get("RS_DUE_CNTR_PROD_TYPE"); + } + + public String rsDueCntrAccId() { + return (String) params.get("RS_DUE_CNTR_ACC_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF648Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF648Response.java new file mode 100644 index 0000000..9a601f0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF648Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF648Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "HIST_CODE100_FKAG") + Long histCode100Fkag(); + + @Parameter(name = "KO_FLAG") + Long koFlag(); + + @Parameter(name = "OUT_NAS_FLOW_ID") + String outNasFlowId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF664.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF664.java new file mode 100644 index 0000000..7331374 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF664.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF664 extends MwfRequest { + + @Parameter(name = "ACTION_USER_SSO") + MWF664 actionUserSso(String actionUserSso); + @Parameter(name = "APP_SOURCE_ID") + MWF664 appSourceId(String appSourceId); + @Parameter(name = "APP_SYSTEM_ID") + MWF664 appSystemId(String appSystemId); + @Parameter(name = "AP_CUSTOM_ID") + MWF664 apCustomId(String apCustomId); + @Parameter(name = "CHANNEL") + MWF664 channel(String channel); + @Parameter(name = "CLIENT_NAME") + MWF664 clientName(String clientName); + @Parameter(name = "DMS_DOCUMENT_ID") + MWF664 dmsDocumentId(String dmsDocumentId); + @Parameter(name = "DOC_SOURCE_ID") + MWF664 docSourceId(String docSourceId); + @Parameter(name = "DOC_SYSTEM_ID") + MWF664 docSystemId(String docSystemId); + @Parameter(name = "FAX_ID") + MWF664 faxId(String faxId); + @Parameter(name = "FAX_IMAGE_LINK") + MWF664 faxImageLink(String faxImageLink); + @Parameter(name = "FAX_INCOME_TIME") + MWF664 faxIncomeTime(java.util.Date faxIncomeTime); + @Parameter(name = "INST_CUST_ID_1") + MWF664 instCustId1(Long instCustId1); + @Parameter(name = "INST_CUST_ID_2") + MWF664 instCustId2(Long instCustId2); + @Parameter(name = "INST_CUST_ID_3") + MWF664 instCustId3(Long instCustId3); + @Parameter(name = "POS_ID") + MWF664 posId(String posId); + @Parameter(name = "PRIORITY") + MWF664 priority(Double priority); + @Parameter(name = "QUEUE_TYPE") + MWF664 queueType(Long queueType); + @Parameter(name = "RC") + MWF664 rc(String rc); + @Parameter(name = "SIGNED_FLAG") + MWF664 signedFlag(String signedFlag); + @Parameter(name = "TASK_KEY") + MWF664 taskKey(Long taskKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF664Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF664Response.java new file mode 100644 index 0000000..85e27d9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF664Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF664Response { + + @Parameter(name = "TASK_KEY") + Long taskKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF671.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF671.java new file mode 100644 index 0000000..fdb790b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF671.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF671 extends MwfRequest { + + @Parameter(name = "APVSTUPNI") + MWF671 apvstupni(Long apvstupni); + @Parameter(name = "CISLOSMLOUVY") + MWF671 cislosmlouvy(String cislosmlouvy); + @Parameter(name = "DATUMDO") + MWF671 datumdo(java.util.Date datumdo); + @Parameter(name = "DATUMOD") + MWF671 datumod(java.util.Date datumod); + @Parameter(name = "ICO") + MWF671 ico(String ico); + @Parameter(name = "OM") + MWF671 om(String om); + @Parameter(name = "PORADCE") + MWF671 poradce(String poradce); + @Parameter(name = "PRIJMENI") + MWF671 prijmeni(String prijmeni); + @Parameter(name = "RODNECISLO") + MWF671 rodnecislo(String rodnecislo); + @Parameter(name = "STAVZADOSTI") + MWF671 stavzadosti(Long stavzadosti); + @Parameter(name = "STAVZADOSTIJEDNODUCHY") + MWF671 stavzadostijednoduchy(String stavzadostijednoduchy); + @Parameter(name = "TYPPRODUKTUID") + MWF671 typproduktuid(String typproduktuid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF671Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF671Data.java new file mode 100644 index 0000000..a846170 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF671Data.java @@ -0,0 +1,81 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF671Data { + + private Map params; + + public MWF671Data(Map params) { + this.params = params; + } + + public String rsAp() { + return (String) params.get("RS_AP"); + } + + public String rsKodproduktpozadovany() { + return (String) params.get("RS_KODPRODUKTPOZADOVANY"); + } + + public String rsKodproduktschvaleny() { + return (String) params.get("RS_KODPRODUKTSCHVALENY"); + } + + public java.util.Date rsDatumzadosti() { + return (java.util.Date) params.get("RS_DATUMZADOSTI"); + } + + public String rsIco() { + return (String) params.get("RS_ICO"); + } + + public String rsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public String rsKodakce() { + return (String) params.get("RS_KODAKCE"); + } + + public String rsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public String rsRodnecislo() { + return (String) params.get("RS_RODNECISLO"); + } + + public Long rsMtsStav() { + return (Long) params.get("RS_MTS_STAV"); + } + + public Double rsVyseuverupozadovana() { + return (Double) params.get("RS_VYSEUVERUPOZADOVANA"); + } + + public Double rsVyseuveruschvalena() { + return (Double) params.get("RS_VYSEUVERUSCHVALENA"); + } + + public String rsStav() { + return (String) params.get("RS_STAV"); + } + + public String rsDuvodrozhodnuti() { + return (String) params.get("RS_DUVODROZHODNUTI"); + } + + public String rsCislokarty() { + return (String) params.get("RS_CISLOKARTY"); + } + + public String rsPrescoring() { + return (String) params.get("RS_PRESCORING"); + } + + public String rsPrimaslib() { + return (String) params.get("RS_PRIMASLIB"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF671Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF671Response.java new file mode 100644 index 0000000..3751a01 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF671Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF671Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF672.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF672.java new file mode 100644 index 0000000..30b6673 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF672.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF672 extends MwfRequest { + + @Parameter(name = "APPuvodni") + MWF672 aPPuvodni(String aPPuvodni); + @Parameter(name = "CIF") + MWF672 cif(String cif); + @Parameter(name = "CisloBU") + MWF672 cisloBU(String cisloBU); + @Parameter(name = "KodProduktSchvaleny") + MWF672 kodProduktSchvaleny(String kodProduktSchvaleny); + @Parameter(name = "NovaVyseRamce") + MWF672 novaVyseRamce(Double novaVyseRamce); + @Parameter(name = "PuvodniVyseRamce") + MWF672 puvodniVyseRamce(Double puvodniVyseRamce); + @Parameter(name = "RodneCislo") + MWF672 rodneCislo(String rodneCislo); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF672Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF672Response.java new file mode 100644 index 0000000..39fc46a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF672Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF672Response { + + @Parameter(name = "AP") + String ap(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF673.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF673.java new file mode 100644 index 0000000..8365c44 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF673.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF673 extends MwfRequest { + + @Parameter(name = "AP") + MWF673 ap(String ap); + @Parameter(name = "CISLOUCTU") + MWF673 cislouctu(String cislouctu); + @Parameter(name = "CISLOUVEROVEHOUCTU") + MWF673 cislouverovehouctu(String cislouverovehouctu); + @Parameter(name = "DATUMPLATNOSTI") + MWF673 datumplatnosti(java.util.Date datumplatnosti); + @Parameter(name = "DATUMPODPISUSMLOUVY") + MWF673 datumpodpisusmlouvy(java.util.Date datumpodpisusmlouvy); + @Parameter(name = "STAVZADOSTI") + MWF673 stavzadosti(Long stavzadosti); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF673Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF673Response.java new file mode 100644 index 0000000..38ddf3e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF673Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF673Response { + + @Parameter(name = "ZADOSTNALEZENAANONE") + String zadostnalezenaanone(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF67D.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF67D.java new file mode 100644 index 0000000..e6a8c07 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF67D.java @@ -0,0 +1,84 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF67D extends MwfRequest { + + @Parameter(name = "AAAdresat") + MWF67D aAAdresat(String aAAdresat); + @Parameter(name = "AACO") + MWF67D aaco(String aaco); + @Parameter(name = "AACP") + MWF67D aacp(String aacp); + @Parameter(name = "AACtvrt") + MWF67D aACtvrt(String aACtvrt); + @Parameter(name = "AAObec") + MWF67D aAObec(String aAObec); + @Parameter(name = "AAPSC") + MWF67D aapsc(String aapsc); + @Parameter(name = "AAPosta") + MWF67D aAPosta(String aAPosta); + @Parameter(name = "AAUlice") + MWF67D aAUlice(String aAUlice); + @Parameter(name = "AAZeme") + MWF67D aAZeme(String aAZeme); + @Parameter(name = "AutomatickeObnoveni") + MWF67D automatickeObnoveni(String automatickeObnoveni); + @Parameter(name = "BUProTransakciVkladu") + MWF67D bUProTransakciVkladu(String bUProTransakciVkladu); + @Parameter(name = "CIF") + MWF67D cif(String cif); + @Parameter(name = "Cache_Pouzit") + MWF67D cachePouzit(Long cachePouzit); + @Parameter(name = "Castka") + MWF67D castka(Double castka); + @Parameter(name = "DatumOtevreni") + MWF67D datumOtevreni(java.util.Date datumOtevreni); + @Parameter(name = "DatumSplatnosti") + MWF67D datumSplatnosti(java.util.Date datumSplatnosti); + @Parameter(name = "DatumUkonceni") + MWF67D datumUkonceni(java.util.Date datumUkonceni); + @Parameter(name = "DistibuceVypisu") + MWF67D distibuceVypisu(String distibuceVypisu); + @Parameter(name = "DruhVypisu") + MWF67D druhVypisu(String druhVypisu); + @Parameter(name = "DruheJmeno") + MWF67D druheJmeno(String druheJmeno); + @Parameter(name = "JistinaDispozice") + MWF67D jistinaDispozice(String jistinaDispozice); + @Parameter(name = "Jmeno") + MWF67D jmeno(String jmeno); + @Parameter(name = "Mena") + MWF67D mena(String mena); + @Parameter(name = "ObchodniJmeno") + MWF67D obchodniJmeno(String obchodniJmeno); + @Parameter(name = "ObchodniMistoKod") + MWF67D obchodniMistoKod(String obchodniMistoKod); + @Parameter(name = "PeriodaObnoveni") + MWF67D periodaObnoveni(String periodaObnoveni); + @Parameter(name = "Prijmeni") + MWF67D prijmeni(String prijmeni); + @Parameter(name = "ProduktKod") + MWF67D produktKod(String produktKod); + @Parameter(name = "TitulPred") + MWF67D titulPred(String titulPred); + @Parameter(name = "TitulZa") + MWF67D titulZa(String titulZa); + @Parameter(name = "UcetJistinaBankaKod") + MWF67D ucetJistinaBankaKod(String ucetJistinaBankaKod); + @Parameter(name = "UcetJistinaCislo") + MWF67D ucetJistinaCislo(String ucetJistinaCislo); + @Parameter(name = "UcetUrokyBankaKod") + MWF67D ucetUrokyBankaKod(String ucetUrokyBankaKod); + @Parameter(name = "UcetUrokyCislo") + MWF67D ucetUrokyCislo(String ucetUrokyCislo); + @Parameter(name = "UlozPscBezKontroly") + MWF67D ulozPscBezKontroly(String ulozPscBezKontroly); + @Parameter(name = "UrednikPrimarni") + MWF67D urednikPrimarni(String urednikPrimarni); + @Parameter(name = "UrokDispozice") + MWF67D urokDispozice(String urokDispozice); + @Parameter(name = "UrokovaSazba") + MWF67D urokovaSazba(Double urokovaSazba); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF67DResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF67DResponse.java new file mode 100644 index 0000000..4f0cee4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF67DResponse.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF67DResponse { + + @Parameter(name = "Cache_IDRequestu") + String cacheIDRequestu(); + + @Parameter(name = "CisloUctu") + String cisloUctu(); + + @Parameter(name = "DatumUkonceni") + java.util.Date datumUkonceni(); + + @Parameter(name = "IDTransakce") + String iDTransakce(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF682.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF682.java new file mode 100644 index 0000000..633efb9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF682.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF682 extends MwfRequest { + + @Parameter(name = "ACCOUNT_NUMBER") + MWF682 accountNumber(String accountNumber); + @Parameter(name = "CIF") + MWF682 cif(String cif); + @Parameter(name = "RC") + MWF682 rc(String rc); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF682Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF682Response.java new file mode 100644 index 0000000..9d6e5f0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF682Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF682Response { + + @Parameter(name = "NAVYSIT") + Long navysit(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF68D.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF68D.java new file mode 100644 index 0000000..8aeba8f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF68D.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF68D extends MwfRequest { + + @Parameter(name = "Cache_Pouzit") + MWF68D cachePouzit(Long cachePouzit); + @Parameter(name = "CisloKaretnihoUctu") + MWF68D cisloKaretnihoUctu(Long cisloKaretnihoUctu); + @Parameter(name = "CisloKarty") + MWF68D cisloKarty(Long cisloKarty); + @Parameter(name = "DSDatumPristoupeni") + MWF68D dSDatumPristoupeni(java.util.Date dSDatumPristoupeni); + @Parameter(name = "DSKodDistribucnihoKanalu") + MWF68D dSKodDistribucnihoKanalu(String dSKodDistribucnihoKanalu); + @Parameter(name = "KodDS") + MWF68D kodDS(String kodDS); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF68DResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF68DResponse.java new file mode 100644 index 0000000..3fda428 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF68DResponse.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF68DResponse { + + @Parameter(name = "Cache_RequestID") + String cacheRequestID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF690.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF690.java new file mode 100644 index 0000000..393a2d3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF690.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF690 extends MwfRequest { + + @Parameter(name = "Data") + MWF690 data(java.util.List data); + @Parameter(name = "Varianta_KEY") + MWF690 variantaKEY(Long variantaKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF690Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF690Data.java new file mode 100644 index 0000000..e9f85b8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF690Data.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF690Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWF690Data() {} + + public static MWF690Data builder() { + return new MWF690Data(); + } + + public MWF690Data rsPoplatekvyse(Double rsPoplatekvyse) { + params.put("RS_POPLATEKVYSE", rsPoplatekvyse); + return this; + } + + public MWF690Data rsMena(String rsMena) { + params.put("RS_MENA", rsMena); + return this; + } + + public MWF690Data rsPoplatekjednorazovyFlag(String rsPoplatekjednorazovyFlag) { + params.put("RS_POPLATEKJEDNORAZOVY_FLAG", rsPoplatekjednorazovyFlag); + return this; + } + + public MWF690Data rsPoplatekKey(Long rsPoplatekKey) { + params.put("RS_POPLATEK_KEY", rsPoplatekKey); + return this; + } + + public MWF690Data rsPoplatektyp(String rsPoplatektyp) { + params.put("RS_POPLATEKTYP", rsPoplatektyp); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF690Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF690Response.java new file mode 100644 index 0000000..822af2f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF690Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF690Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF691.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF691.java new file mode 100644 index 0000000..26d21b9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF691.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF691 extends MwfRequest { + + @Parameter(name = "PoplatekJednorazovy_FLAG_IN") + MWF691 poplatekJednorazovyFLAGIN(String poplatekJednorazovyFLAGIN); + @Parameter(name = "PoplatekTyp_IN") + MWF691 poplatekTypIN(String poplatekTypIN); + @Parameter(name = "Varianta_KEY") + MWF691 variantaKEY(Long variantaKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF691Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF691Data.java new file mode 100644 index 0000000..33eaa55 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF691Data.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF691Data { + + private Map params; + + public MWF691Data(Map params) { + this.params = params; + } + + public Double rsPoplatekvyse() { + return (Double) params.get("RS_POPLATEKVYSE"); + } + + public String rsMena() { + return (String) params.get("RS_MENA"); + } + + public String rsPoplatekjednorazovyFlag() { + return (String) params.get("RS_POPLATEKJEDNORAZOVY_FLAG"); + } + + public Long rsPoplatekKey() { + return (Long) params.get("RS_POPLATEK_KEY"); + } + + public String rsPoplatektyp() { + return (String) params.get("RS_POPLATEKTYP"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF691Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF691Response.java new file mode 100644 index 0000000..3c9b351 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF691Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF691Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF694.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF694.java new file mode 100644 index 0000000..c95ac80 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF694.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF694 extends MwfRequest { + + @Parameter(name = "CisloUctu") + MWF694 cisloUctu(String cisloUctu); + @Parameter(name = "Jmeno") + MWF694 jmeno(String jmeno); + @Parameter(name = "NovaVyseRamce") + MWF694 novaVyseRamce(Double novaVyseRamce); + @Parameter(name = "Prijmeni") + MWF694 prijmeni(String prijmeni); + @Parameter(name = "PuvodniVyseRamce") + MWF694 puvodniVyseRamce(Double puvodniVyseRamce); + @Parameter(name = "TelCislo") + MWF694 telCislo(String telCislo); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF694Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF694Response.java new file mode 100644 index 0000000..722aaf9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF694Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF694Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C2.java new file mode 100644 index 0000000..780f308 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C2.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF6C2 extends MwfRequest { + + @Parameter(name = "InsuranceEndDate") + MWF6C2 insuranceEndDate(java.util.Date insuranceEndDate); + @Parameter(name = "InsuranceId") + MWF6C2 insuranceId(String insuranceId); + @Parameter(name = "InsuranceStartDate") + MWF6C2 insuranceStartDate(java.util.Date insuranceStartDate); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C2Response.java new file mode 100644 index 0000000..c60022d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF6C2Response { + + @Parameter(name = "InsurancePriceTotalAmount") + Double insurancePriceTotalAmount(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C6.java new file mode 100644 index 0000000..6f4e0c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C6.java @@ -0,0 +1,116 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF6C6 extends MwfRequest { + + @Parameter(name = "AddressCity") + MWF6C6 addressCity(String addressCity); + @Parameter(name = "AddressContCity") + MWF6C6 addressContCity(String addressContCity); + @Parameter(name = "AddressContCountry") + MWF6C6 addressContCountry(String addressContCountry); + @Parameter(name = "AddressContHouseNumber") + MWF6C6 addressContHouseNumber(String addressContHouseNumber); + @Parameter(name = "AddressContLandRegistryNumber") + MWF6C6 addressContLandRegistryNumber(String addressContLandRegistryNumber); + @Parameter(name = "AddressContSince") + MWF6C6 addressContSince(java.util.Date addressContSince); + @Parameter(name = "AddressContStreet") + MWF6C6 addressContStreet(String addressContStreet); + @Parameter(name = "AddressContZipCode") + MWF6C6 addressContZipCode(String addressContZipCode); + @Parameter(name = "AddressCountry") + MWF6C6 addressCountry(String addressCountry); + @Parameter(name = "AddressEmpCity") + MWF6C6 addressEmpCity(String addressEmpCity); + @Parameter(name = "AddressEmpHouseNumber") + MWF6C6 addressEmpHouseNumber(String addressEmpHouseNumber); + @Parameter(name = "AddressEmpLandRegistryNumber") + MWF6C6 addressEmpLandRegistryNumber(String addressEmpLandRegistryNumber); + @Parameter(name = "AddressEmpStreet") + MWF6C6 addressEmpStreet(String addressEmpStreet); + @Parameter(name = "AddressEmpZipCode") + MWF6C6 addressEmpZipCode(String addressEmpZipCode); + @Parameter(name = "AddressHouseNumber") + MWF6C6 addressHouseNumber(String addressHouseNumber); + @Parameter(name = "AddressLandRegistryNumber") + MWF6C6 addressLandRegistryNumber(String addressLandRegistryNumber); + @Parameter(name = "AddressStreet") + MWF6C6 addressStreet(String addressStreet); + @Parameter(name = "AddressZipCode") + MWF6C6 addressZipCode(String addressZipCode); + @Parameter(name = "BirthCountry") + MWF6C6 birthCountry(String birthCountry); + @Parameter(name = "BirthDate") + MWF6C6 birthDate(java.util.Date birthDate); + @Parameter(name = "BirthNumber") + MWF6C6 birthNumber(String birthNumber); + @Parameter(name = "BirthPlace") + MWF6C6 birthPlace(String birthPlace); + @Parameter(name = "BranchId") + MWF6C6 branchId(String branchId); + @Parameter(name = "CIF") + MWF6C6 cif(String cif); + @Parameter(name = "ChannelId") + MWF6C6 channelId(String channelId); + @Parameter(name = "Consent101SignDate") + MWF6C6 consent101SignDate(java.util.Date consent101SignDate); + @Parameter(name = "DependPersonsCount") + MWF6C6 dependPersonsCount(Long dependPersonsCount); + @Parameter(name = "EducationType") + MWF6C6 educationType(String educationType); + @Parameter(name = "Email") + MWF6C6 email(String email); + @Parameter(name = "EmployeeProcessRole") + MWF6C6 employeeProcessRole(String employeeProcessRole); + @Parameter(name = "EmployeeRoleId") + MWF6C6 employeeRoleId(String employeeRoleId); + @Parameter(name = "EmployeeSSO") + MWF6C6 employeeSSO(String employeeSSO); + @Parameter(name = "EmploymentId") + MWF6C6 employmentId(String employmentId); + @Parameter(name = "EmploymentName") + MWF6C6 employmentName(String employmentName); + @Parameter(name = "EmploymentSince") + MWF6C6 employmentSince(java.util.Date employmentSince); + @Parameter(name = "EmploymentType") + MWF6C6 employmentType(String employmentType); + @Parameter(name = "HousingType") + MWF6C6 housingType(String housingType); + @Parameter(name = "IDCard2Number") + MWF6C6 iDCard2Number(String iDCard2Number); + @Parameter(name = "IDCard2PublishingCountry") + MWF6C6 iDCard2PublishingCountry(String iDCard2PublishingCountry); + @Parameter(name = "IDCard2Type") + MWF6C6 iDCard2Type(String iDCard2Type); + @Parameter(name = "IDCard2ValidTo") + MWF6C6 iDCard2ValidTo(java.util.Date iDCard2ValidTo); + @Parameter(name = "IDCardNumber") + MWF6C6 iDCardNumber(String iDCardNumber); + @Parameter(name = "IDCardPublishingCountry") + MWF6C6 iDCardPublishingCountry(String iDCardPublishingCountry); + @Parameter(name = "IDCardType") + MWF6C6 iDCardType(String iDCardType); + @Parameter(name = "IDCardValidTo") + MWF6C6 iDCardValidTo(java.util.Date iDCardValidTo); + @Parameter(name = "IncomeAverageThreeMonths") + MWF6C6 incomeAverageThreeMonths(Double incomeAverageThreeMonths); + @Parameter(name = "MaritalAssets") + MWF6C6 maritalAssets(String maritalAssets); + @Parameter(name = "MaritalState") + MWF6C6 maritalState(String maritalState); + @Parameter(name = "Name") + MWF6C6 name(String name); + @Parameter(name = "Nationality") + MWF6C6 nationality(String nationality); + @Parameter(name = "Occupation") + MWF6C6 occupation(String occupation); + @Parameter(name = "PhoneNumber") + MWF6C6 phoneNumber(String phoneNumber); + @Parameter(name = "Sex") + MWF6C6 sex(String sex); + @Parameter(name = "Surname") + MWF6C6 surname(String surname); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C6Response.java new file mode 100644 index 0000000..4a33bee --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C6Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF6C6Response { + + @Parameter(name = "AppKey") + Long appKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C8.java new file mode 100644 index 0000000..ba6e03e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C8.java @@ -0,0 +1,184 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF6C8 extends MwfRequest { + + @Parameter(name = "AddressCity") + MWF6C8 addressCity(String addressCity); + @Parameter(name = "AddressContCity") + MWF6C8 addressContCity(String addressContCity); + @Parameter(name = "AddressContCountry") + MWF6C8 addressContCountry(String addressContCountry); + @Parameter(name = "AddressContHouseNumber") + MWF6C8 addressContHouseNumber(String addressContHouseNumber); + @Parameter(name = "AddressContLandRegistryNumber") + MWF6C8 addressContLandRegistryNumber(String addressContLandRegistryNumber); + @Parameter(name = "AddressContSince") + MWF6C8 addressContSince(java.util.Date addressContSince); + @Parameter(name = "AddressContStreet") + MWF6C8 addressContStreet(String addressContStreet); + @Parameter(name = "AddressContZipCode") + MWF6C8 addressContZipCode(String addressContZipCode); + @Parameter(name = "AddressCountry") + MWF6C8 addressCountry(String addressCountry); + @Parameter(name = "AddressEmpCity") + MWF6C8 addressEmpCity(String addressEmpCity); + @Parameter(name = "AddressEmpCountry") + MWF6C8 addressEmpCountry(String addressEmpCountry); + @Parameter(name = "AddressEmpHouseNumber") + MWF6C8 addressEmpHouseNumber(String addressEmpHouseNumber); + @Parameter(name = "AddressEmpLandRegistryNumber") + MWF6C8 addressEmpLandRegistryNumber(String addressEmpLandRegistryNumber); + @Parameter(name = "AddressEmpStreet") + MWF6C8 addressEmpStreet(String addressEmpStreet); + @Parameter(name = "AddressEmpZipCode") + MWF6C8 addressEmpZipCode(String addressEmpZipCode); + @Parameter(name = "AddressHouseNumber") + MWF6C8 addressHouseNumber(String addressHouseNumber); + @Parameter(name = "AddressLandRegistryNumber") + MWF6C8 addressLandRegistryNumber(String addressLandRegistryNumber); + @Parameter(name = "AddressStreet") + MWF6C8 addressStreet(String addressStreet); + @Parameter(name = "AddressZipCode") + MWF6C8 addressZipCode(String addressZipCode); + @Parameter(name = "BirthCountry") + MWF6C8 birthCountry(String birthCountry); + @Parameter(name = "BirthDate") + MWF6C8 birthDate(java.util.Date birthDate); + @Parameter(name = "BirthNumber") + MWF6C8 birthNumber(String birthNumber); + @Parameter(name = "BirthPlace") + MWF6C8 birthPlace(String birthPlace); + @Parameter(name = "BranchId") + MWF6C8 branchId(String branchId); + @Parameter(name = "BrokerId") + MWF6C8 brokerId(String brokerId); + @Parameter(name = "CIF") + MWF6C8 cif(String cif); + @Parameter(name = "ChannelId") + MWF6C8 channelId(String channelId); + @Parameter(name = "Consent101SignDate") + MWF6C8 consent101SignDate(java.util.Date consent101SignDate); + @Parameter(name = "ConsentUDCflag") + MWF6C8 consentUDCflag(Long consentUDCflag); + @Parameter(name = "DependPersonsCount") + MWF6C8 dependPersonsCount(Long dependPersonsCount); + @Parameter(name = "EducationType") + MWF6C8 educationType(String educationType); + @Parameter(name = "Email") + MWF6C8 email(String email); + @Parameter(name = "EmployeeName") + MWF6C8 employeeName(String employeeName); + @Parameter(name = "EmployeeProcessRole") + MWF6C8 employeeProcessRole(String employeeProcessRole); + @Parameter(name = "EmployeeRoleId") + MWF6C8 employeeRoleId(String employeeRoleId); + @Parameter(name = "EmployeeSSO") + MWF6C8 employeeSSO(String employeeSSO); + @Parameter(name = "EmployeeSurname") + MWF6C8 employeeSurname(String employeeSurname); + @Parameter(name = "EmploymentId") + MWF6C8 employmentId(String employmentId); + @Parameter(name = "EmploymentName") + MWF6C8 employmentName(String employmentName); + @Parameter(name = "EmploymentNotice") + MWF6C8 employmentNotice(Long employmentNotice); + @Parameter(name = "EmploymentSince") + MWF6C8 employmentSince(java.util.Date employmentSince); + @Parameter(name = "EmploymentTerminationNotice") + MWF6C8 employmentTerminationNotice(Long employmentTerminationNotice); + @Parameter(name = "EmploymentTrial") + MWF6C8 employmentTrial(Long employmentTrial); + @Parameter(name = "EmploymentType") + MWF6C8 employmentType(String employmentType); + @Parameter(name = "EmploymentUntil") + MWF6C8 employmentUntil(java.util.Date employmentUntil); + @Parameter(name = "ExpressOnly") + MWF6C8 expressOnly(String expressOnly); + @Parameter(name = "FamilyBusinessFlag") + MWF6C8 familyBusinessFlag(Long familyBusinessFlag); + @Parameter(name = "HousingType") + MWF6C8 housingType(String housingType); + @Parameter(name = "IDCard2Number") + MWF6C8 iDCard2Number(String iDCard2Number); + @Parameter(name = "IDCard2PublishingCountry") + MWF6C8 iDCard2PublishingCountry(String iDCard2PublishingCountry); + @Parameter(name = "IDCard2Type") + MWF6C8 iDCard2Type(String iDCard2Type); + @Parameter(name = "IDCard2ValidTo") + MWF6C8 iDCard2ValidTo(java.util.Date iDCard2ValidTo); + @Parameter(name = "IDCardNumber") + MWF6C8 iDCardNumber(String iDCardNumber); + @Parameter(name = "IDCardPublishingCountry") + MWF6C8 iDCardPublishingCountry(String iDCardPublishingCountry); + @Parameter(name = "IDCardType") + MWF6C8 iDCardType(String iDCardType); + @Parameter(name = "IDCardValidTo") + MWF6C8 iDCardValidTo(java.util.Date iDCardValidTo); + @Parameter(name = "IncomeAverageThreeMonths") + MWF6C8 incomeAverageThreeMonths(Double incomeAverageThreeMonths); + @Parameter(name = "IncomeDocumentType") + MWF6C8 incomeDocumentType(String incomeDocumentType); + @Parameter(name = "IncomeDocumentType2") + MWF6C8 incomeDocumentType2(String incomeDocumentType2); + @Parameter(name = "IncomeDocumentType3") + MWF6C8 incomeDocumentType3(String incomeDocumentType3); + @Parameter(name = "IncomeFamily") + MWF6C8 incomeFamily(Double incomeFamily); + @Parameter(name = "IncomesCount") + MWF6C8 incomesCount(Long incomesCount); + @Parameter(name = "LoanAmount") + MWF6C8 loanAmount(Double loanAmount); + @Parameter(name = "LoanDefferedInstalmentMonths") + MWF6C8 loanDefferedInstalmentMonths(Long loanDefferedInstalmentMonths); + @Parameter(name = "LoanInstalmentAmount") + MWF6C8 loanInstalmentAmount(Double loanInstalmentAmount); + @Parameter(name = "LoanInsuranceType") + MWF6C8 loanInsuranceType(String loanInsuranceType); + @Parameter(name = "LoanRegularInstalmentDay") + MWF6C8 loanRegularInstalmentDay(Long loanRegularInstalmentDay); + @Parameter(name = "LoanTerm") + MWF6C8 loanTerm(Long loanTerm); + @Parameter(name = "MaritalAssets") + MWF6C8 maritalAssets(String maritalAssets); + @Parameter(name = "MaritalState") + MWF6C8 maritalState(String maritalState); + @Parameter(name = "MaritalStateVerification") + MWF6C8 maritalStateVerification(String maritalStateVerification); + @Parameter(name = "Name") + MWF6C8 name(String name); + @Parameter(name = "Nationality") + MWF6C8 nationality(String nationality); + @Parameter(name = "Occupation") + MWF6C8 occupation(String occupation); + @Parameter(name = "OtherLivingExpenses") + MWF6C8 otherLivingExpenses(Long otherLivingExpenses); + @Parameter(name = "OtherMonthlyPayments") + MWF6C8 otherMonthlyPayments(Long otherMonthlyPayments); + @Parameter(name = "PhoneNumber") + MWF6C8 phoneNumber(String phoneNumber); + @Parameter(name = "Sex") + MWF6C8 sex(String sex); + @Parameter(name = "ShareOfPrftFamilyBus") + MWF6C8 shareOfPrftFamilyBus(Double shareOfPrftFamilyBus); + @Parameter(name = "SpecialCode") + MWF6C8 specialCode(String specialCode); + @Parameter(name = "SpecialCodeReasonId") + MWF6C8 specialCodeReasonId(String specialCodeReasonId); + @Parameter(name = "SpecialCodeReasonNote") + MWF6C8 specialCodeReasonNote(String specialCodeReasonNote); + @Parameter(name = "Surname") + MWF6C8 surname(String surname); + @Parameter(name = "TaxBase") + MWF6C8 taxBase(Double taxBase); + @Parameter(name = "TaxCrOnlyFlag") + MWF6C8 taxCrOnlyFlag(Long taxCrOnlyFlag); + @Parameter(name = "TaxToPayLastYear") + MWF6C8 taxToPayLastYear(Double taxToPayLastYear); + @Parameter(name = "TaxYear") + MWF6C8 taxYear(Long taxYear); + @Parameter(name = "TaxableIncomeLastYear") + MWF6C8 taxableIncomeLastYear(Double taxableIncomeLastYear); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C8Response.java new file mode 100644 index 0000000..3258bec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6C8Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF6C8Response { + + @Parameter(name = "ProdPackageKeyExpressOnly") + Long prodPackageKeyExpressOnly(); + + @Parameter(name = "ProdPackageKeyNoExpress") + Long prodPackageKeyNoExpress(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D7.java new file mode 100644 index 0000000..bce6cb0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D7.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF6D7 extends MwfRequest { + + @Parameter(name = "CIF") + MWF6D7 cif(String cif); + @Parameter(name = "CM_ID") + MWF6D7 cmId(String cmId); + @Parameter(name = "DokumentTyp") + MWF6D7 dokumentTyp(String dokumentTyp); + @Parameter(name = "NewVersion") + MWF6D7 newVersion(String newVersion); + @Parameter(name = "Produkt") + MWF6D7 produkt(String produkt); + @Parameter(name = "URLDokumentu") + MWF6D7 uRLDokumentu(String uRLDokumentu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D7Response.java new file mode 100644 index 0000000..56e9519 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D7Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF6D7Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D8.java new file mode 100644 index 0000000..2586382 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D8.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF6D8 extends MwfRequest { + + @Parameter(name = "BankaKod") + MWF6D8 bankaKod(String bankaKod); + @Parameter(name = "CIF") + MWF6D8 cif(String cif); + @Parameter(name = "CisloUctu") + MWF6D8 cisloUctu(String cisloUctu); + @Parameter(name = "CostCentrum") + MWF6D8 costCentrum(String costCentrum); + @Parameter(name = "DruhUctu") + MWF6D8 druhUctu(String druhUctu); + @Parameter(name = "IDObchodu") + MWF6D8 iDObchodu(Long iDObchodu); + @Parameter(name = "ISIN") + MWF6D8 isin(String isin); + @Parameter(name = "ISIN2") + MWF6D8 isin2(String isin2); + @Parameter(name = "IdVirtualniObjednavky") + MWF6D8 idVirtualniObjednavky(Long idVirtualniObjednavky); + @Parameter(name = "IdZaznamu") + MWF6D8 idZaznamu(Long idZaznamu); + @Parameter(name = "KlientIDDisponent") + MWF6D8 klientIDDisponent(Long klientIDDisponent); + @Parameter(name = "KonstantniSymbol") + MWF6D8 konstantniSymbol(Long konstantniSymbol); + @Parameter(name = "MenaUctu") + MWF6D8 menaUctu(String menaUctu); + @Parameter(name = "ObchodniDatum") + MWF6D8 obchodniDatum(java.util.Date obchodniDatum); + @Parameter(name = "Objem") + MWF6D8 objem(Double objem); + @Parameter(name = "Pobocka") + MWF6D8 pobocka(String pobocka); + @Parameter(name = "PobockaVyplaty") + MWF6D8 pobockaVyplaty(String pobockaVyplaty); + @Parameter(name = "PocetKS") + MWF6D8 pocetKS(Double pocetKS); + @Parameter(name = "Produkt") + MWF6D8 produkt(String produkt); + @Parameter(name = "SpecifickySymbol") + MWF6D8 specifickySymbol(String specifickySymbol); + @Parameter(name = "StavObchodu") + MWF6D8 stavObchodu(String stavObchodu); + @Parameter(name = "TypObchodu") + MWF6D8 typObchodu(String typObchodu); + @Parameter(name = "TypSmlouvy") + MWF6D8 typSmlouvy(String typSmlouvy); + @Parameter(name = "VariabilniSymbol") + MWF6D8 variabilniSymbol(String variabilniSymbol); + @Parameter(name = "VlozeniDatum") + MWF6D8 vlozeniDatum(java.util.Date vlozeniDatum); + @Parameter(name = "Vyplata") + MWF6D8 vyplata(String vyplata); + @Parameter(name = "ZadavatelID") + MWF6D8 zadavatelID(Long zadavatelID); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D8Response.java new file mode 100644 index 0000000..a486112 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D8Response.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF6D8Response { + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "ISIN") + String isin(); + + @Parameter(name = "ISIN2") + String isin2(); + + @Parameter(name = "ObchodniDatum") + java.util.Date obchodniDatum(); + + @Parameter(name = "Objem") + Double objem(); + + @Parameter(name = "PocetKS") + Double pocetKS(); + + @Parameter(name = "PseudoTransakceID") + String pseudoTransakceID(); + + @Parameter(name = "RodneCislo") + String rodneCislo(); + + @Parameter(name = "VyporadaniDatum") + java.util.Date vyporadaniDatum(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D9.java new file mode 100644 index 0000000..21a866f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D9.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF6D9 extends MwfRequest { + + @Parameter(name = "Banker") + MWF6D9 banker(String banker); + @Parameter(name = "CastkaTransakce") + MWF6D9 castkaTransakce(Double castkaTransakce); + @Parameter(name = "CisloUctu") + MWF6D9 cisloUctu(String cisloUctu); + @Parameter(name = "DatumVytvoreni") + MWF6D9 datumVytvoreni(java.util.Date datumVytvoreni); + @Parameter(name = "IdInvesticnihoDoporuceni") + MWF6D9 idInvesticnihoDoporuceni(Long idInvesticnihoDoporuceni); + @Parameter(name = "IdObjednavky") + MWF6D9 idObjednavky(Long idObjednavky); + @Parameter(name = "IdSmlouvy") + MWF6D9 idSmlouvy(String idSmlouvy); + @Parameter(name = "IdVirtualniObjednavky") + MWF6D9 idVirtualniObjednavky(Long idVirtualniObjednavky); + @Parameter(name = "IdZaznamu") + MWF6D9 idZaznamu(Long idZaznamu); + @Parameter(name = "Isin") + MWF6D9 isin(String isin); + @Parameter(name = "KodPobocky") + MWF6D9 kodPobocky(String kodPobocky); + @Parameter(name = "MenaTransakce") + MWF6D9 menaTransakce(String menaTransakce); + @Parameter(name = "PocetKusu") + MWF6D9 pocetKusu(Long pocetKusu); + @Parameter(name = "TypTransakce") + MWF6D9 typTransakce(String typTransakce); + @Parameter(name = "ZadavatelID") + MWF6D9 zadavatelID(Long zadavatelID); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D9Response.java new file mode 100644 index 0000000..5bb708c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6D9Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF6D9Response { + + @Parameter(name = "IdVirtualniObjednavky") + Long idVirtualniObjednavky(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G4.java new file mode 100644 index 0000000..59b2221 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G4.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF6G4 extends MwfRequest { + + @Parameter(name = "IPADRESA") + MWF6G4 ipadresa(String ipadresa); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G4Response.java new file mode 100644 index 0000000..a50332e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G4Response.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF6G4Response { + + @Parameter(name = "MAXCENAVOZU") + Double maxcenavozu(); + + @Parameter(name = "MAXFA") + Double maxfa(); + + @Parameter(name = "MAXPOCETSPL") + Long maxpocetspl(); + + @Parameter(name = "MAXZALOHA") + Double maxzaloha(); + + @Parameter(name = "MINCENAVOZU") + Double mincenavozu(); + + @Parameter(name = "MINFA") + Double minfa(); + + @Parameter(name = "MINPOCETSPL") + Long minpocetspl(); + + @Parameter(name = "MINZALOHA") + Double minzaloha(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G5.java new file mode 100644 index 0000000..c510679 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G5.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF6G5 extends MwfRequest { + + @Parameter(name = "CENAVOZU") + MWF6G5 cenavozu(Double cenavozu); + @Parameter(name = "IPADRESA") + MWF6G5 ipadresa(String ipadresa); + @Parameter(name = "POCETSPL") + MWF6G5 pocetspl(Long pocetspl); + @Parameter(name = "ZALOHA") + MWF6G5 zaloha(Double zaloha); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G5Response.java new file mode 100644 index 0000000..5a85486 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G5Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF6G5Response { + + @Parameter(name = "CELKEM") + Double celkem(); + + @Parameter(name = "FA") + Double fa(); + + @Parameter(name = "RPSN") + Double rpsn(); + + @Parameter(name = "SPLATKA") + Double splatka(); + + @Parameter(name = "UROK") + Double urok(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G8.java new file mode 100644 index 0000000..f8d1e2c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G8.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF6G8 extends MwfRequest { + + @Parameter(name = "IPT_CIF") + MWF6G8 iptCif(String iptCif); + @Parameter(name = "IPT_OCC_DET_CODE") + MWF6G8 iptOccDetCode(String iptOccDetCode); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G8Response.java new file mode 100644 index 0000000..0b78c7e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF6G8Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF6G8Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF700.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF700.java new file mode 100644 index 0000000..721f62c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF700.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF700 extends MwfRequest { + + @Parameter(name = "IDHOB") + MWF700 idhob(Long idhob); + @Parameter(name = "IDOM") + MWF700 idom(String idom); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF700Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF700Data.java new file mode 100644 index 0000000..bd2b01c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF700Data.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF700Data { + + private Map params; + + public MWF700Data(Map params) { + this.params = params; + } + + public String rsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public String rsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public Long rsIdhobout() { + return (Long) params.get("RS_IDHOBOUT"); + } + + public String rsOmout() { + return (String) params.get("RS_OMOUT"); + } + + public Long rsIdomout() { + return (Long) params.get("RS_IDOMOUT"); + } + + public String rsTelefon() { + return (String) params.get("RS_TELEFON"); + } + + public String rsTelefonpredcisli() { + return (String) params.get("RS_TELEFONPREDCISLI"); + } + + public String rsSso() { + return (String) params.get("RS_SSO"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF700Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF700Response.java new file mode 100644 index 0000000..1b6cf4e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF700Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF700Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF702.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF702.java new file mode 100644 index 0000000..1c8f87e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF702.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF702 extends MwfRequest { + + @Parameter(name = "APPL_SET_KEY") + MWF702 applSetKey(Long applSetKey); + @Parameter(name = "INST_PT_KEY") + MWF702 instPtKey(Long instPtKey); + @Parameter(name = "SCREEN_ID") + MWF702 screenId(String screenId); + @Parameter(name = "Zadost_KEY") + MWF702 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF702Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF702Response.java new file mode 100644 index 0000000..adf5c6f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF702Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF702Response { + + @Parameter(name = "FORMAL_OK_FLAG") + Long formalOkFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF731.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF731.java new file mode 100644 index 0000000..91f4412 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF731.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF731 extends MwfRequest { + + @Parameter(name = "PracovnikMTSID") + MWF731 pracovnikMTSID(String pracovnikMTSID); + @Parameter(name = "Storno_KodDuvoduStorna") + MWF731 stornoKodDuvoduStorna(String stornoKodDuvoduStorna); + @Parameter(name = "UrednikFunkce") + MWF731 urednikFunkce(String urednikFunkce); + @Parameter(name = "UrednikID") + MWF731 urednikID(String urednikID); + @Parameter(name = "UrednikJmeno") + MWF731 urednikJmeno(String urednikJmeno); + @Parameter(name = "UrednikPrijmeni") + MWF731 urednikPrijmeni(String urednikPrijmeni); + @Parameter(name = "UrednikRole") + MWF731 urednikRole(String urednikRole); + @Parameter(name = "UrednikSSO") + MWF731 urednikSSO(String urednikSSO); + @Parameter(name = "WPS_WFL_ID") + MWF731 wpsWflId(String wpsWflId); + @Parameter(name = "Zadost_KEY") + MWF731 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF731Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF731Response.java new file mode 100644 index 0000000..c5d3892 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF731Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF731Response { + + @Parameter(name = "Storno_Vysledek") + Long stornoVysledek(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF733.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF733.java new file mode 100644 index 0000000..b61ea6c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF733.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF733 extends MwfRequest { + + @Parameter(name = "ZadostAP") + MWF733 zadostAP(String zadostAP); + @Parameter(name = "Zadost_KEY") + MWF733 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF733Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF733Response.java new file mode 100644 index 0000000..553036f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF733Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF733Response { + + @Parameter(name = "SchvalenoFlag") + Boolean schvalenoFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF778.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF778.java new file mode 100644 index 0000000..7fbcb07 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF778.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF778 extends MwfRequest { + + @Parameter(name = "DEFFERED_INSTL_CNT") + MWF778 defferedInstlCnt(Long defferedInstlCnt); + @Parameter(name = "FA_IN") + MWF778 faIn(Long faIn); + @Parameter(name = "INSURANCE_TYPE_IN") + MWF778 insuranceTypeIn(String insuranceTypeIn); + @Parameter(name = "REGULAR_INSTALMENT_DAY") + MWF778 regularInstalmentDay(Long regularInstalmentDay); + @Parameter(name = "TERM_IN") + MWF778 termIn(Long termIn); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF778Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF778Response.java new file mode 100644 index 0000000..2fab7ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF778Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF778Response { + + @Parameter(name = "ANNUITY") + Double annuity(); + + @Parameter(name = "ERROR_MESSAGE") + String errorMessage(); + + @Parameter(name = "INT_RATE") + Double intRate(); + + @Parameter(name = "RPSN") + Double rpsn(); + + @Parameter(name = "SUM_INSURANCE_MONTHLY") + Double sumInsuranceMonthly(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF793.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF793.java new file mode 100644 index 0000000..57f1a2b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF793.java @@ -0,0 +1,52 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF793 extends MwfRequest { + + @Parameter(name = "APPLICATION_TYPE_IN") + MWF793 applicationTypeIn(String applicationTypeIn); + @Parameter(name = "APP_STATE_IN") + MWF793 appStateIn(String appStateIn); + @Parameter(name = "Barva_Flag") + MWF793 barvaFlag(String barvaFlag); + @Parameter(name = "CIF") + MWF793 cif(String cif); + @Parameter(name = "CisloDokladu") + MWF793 cisloDokladu(String cisloDokladu); + @Parameter(name = "CisloDruhehoDokladu") + MWF793 cisloDruhehoDokladu(String cisloDruhehoDokladu); + @Parameter(name = "CisloTelefonu") + MWF793 cisloTelefonu(String cisloTelefonu); + @Parameter(name = "DatumDo") + MWF793 datumDo(java.util.Date datumDo); + @Parameter(name = "DatumOd") + MWF793 datumOd(java.util.Date datumOd); + @Parameter(name = "FE_Channel_ID") + MWF793 fEChannelID(String fEChannelID); + @Parameter(name = "ICO") + MWF793 ico(String ico); + @Parameter(name = "IDZadosti") + MWF793 iDZadosti(String iDZadosti); + @Parameter(name = "MTS_TypZadosti") + MWF793 mTSTypZadosti(String mTSTypZadosti); + @Parameter(name = "NAS_Flag") + MWF793 nASFlag(Long nASFlag); + @Parameter(name = "OM") + MWF793 om(String om); + @Parameter(name = "OVR_Flag") + MWF793 oVRFlag(String oVRFlag); + @Parameter(name = "PRODUCT_REQUESTED_IN") + MWF793 productRequestedIn(String productRequestedIn); + @Parameter(name = "Prijmeni") + MWF793 prijmeni(String prijmeni); + @Parameter(name = "RC") + MWF793 rc(String rc); + @Parameter(name = "StavZadostiJednoduchy") + MWF793 stavZadostiJednoduchy(String stavZadostiJednoduchy); + @Parameter(name = "TypDokladu") + MWF793 typDokladu(String typDokladu); + @Parameter(name = "VIN") + MWF793 vin(String vin); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF793Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF793Data.java new file mode 100644 index 0000000..69b43bb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF793Data.java @@ -0,0 +1,137 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF793Data { + + private Map params; + + public MWF793Data(Map params) { + this.params = params; + } + + public String rsZadostsubtyp() { + return (String) params.get("RS_ZADOSTSUBTYP"); + } + + public java.util.Date rsDatumzadosti() { + return (java.util.Date) params.get("RS_DATUMZADOSTI"); + } + + public String rsIco() { + return (String) params.get("RS_ICO"); + } + + public String rsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public String rsKodakce() { + return (String) params.get("RS_KODAKCE"); + } + + public String rsNazev() { + return (String) params.get("RS_NAZEV"); + } + + public String rsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public String rsStav() { + return (String) params.get("RS_STAV"); + } + + public Double rsVyseuverupozadovana() { + return (Double) params.get("RS_VYSEUVERUPOZADOVANA"); + } + + public Double rsVyseuveruschvalena() { + return (Double) params.get("RS_VYSEUVERUSCHVALENA"); + } + + public String rsKodproduktpozadovany() { + return (String) params.get("RS_KODPRODUKTPOZADOVANY"); + } + + public String rsKodproduktschvaleny() { + return (String) params.get("RS_KODPRODUKTSCHVALENY"); + } + + public String rsRodnecislo() { + return (String) params.get("RS_RODNECISLO"); + } + + public Long rsMtsStav() { + return (Long) params.get("RS_MTS_STAV"); + } + + public String rsDuvodrozhodnuti() { + return (String) params.get("RS_DUVODROZHODNUTI"); + } + + public String rsPrescoring() { + return (String) params.get("RS_PRESCORING"); + } + + public String rsAppStateAdc() { + return (String) params.get("RS_APP_STATE_ADC"); + } + + public String rsCurrency() { + return (String) params.get("RS_CURRENCY"); + } + + public String rsApplicationType() { + return (String) params.get("RS_APPLICATION_TYPE"); + } + + public String rsExpresmanFlag() { + return (String) params.get("RS_EXPRESMAN_FLAG"); + } + + public String rsPos() { + return (String) params.get("RS_POS"); + } + + public String rsInstPtKey() { + return (String) params.get("RS_INST_PT_KEY"); + } + + public String rsChannel() { + return (String) params.get("RS_CHANNEL"); + } + + public Long rsAppKey() { + return (Long) params.get("RS_APP_KEY"); + } + + public String rsStavtxt() { + return (String) params.get("RS_STAVTXT"); + } + + public Double rsSplatkaSch() { + return (Double) params.get("RS_SPLATKA_SCH"); + } + + public Double rsSplatkaPozad() { + return (Double) params.get("RS_SPLATKA_POZAD"); + } + + public Double rsSplatka() { + return (Double) params.get("RS_SPLATKA"); + } + + public Long rsApplSetKey() { + return (Long) params.get("RS_APPL_SET_KEY"); + } + + public String rsRelationshiptypeId() { + return (String) params.get("RS_RELATIONSHIPTYPE_ID"); + } + + public String rsAp() { + return (String) params.get("RS_AP"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF793Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF793Response.java new file mode 100644 index 0000000..920946a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF793Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF793Response { + + @Parameter(name = "ChybaVstupu") + String chybaVstupu(); + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A5.java new file mode 100644 index 0000000..d044da0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A5.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7A5 extends MwfRequest { + + @Parameter(name = "CIF") + MWF7A5 cif(String cif); + @Parameter(name = "ChannelId") + MWF7A5 channelId(String channelId); + @Parameter(name = "Data") + MWF7A5 data(java.util.List data); + @Parameter(name = "LoginName") + MWF7A5 loginName(String loginName); + @Parameter(name = "ProdPackageKey") + MWF7A5 prodPackageKey(Long prodPackageKey); + @Parameter(name = "SignatureID") + MWF7A5 signatureID(String signatureID); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A5Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A5Data.java new file mode 100644 index 0000000..5e5c7f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A5Data.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF7A5Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWF7A5Data() {} + + public static MWF7A5Data builder() { + return new MWF7A5Data(); + } + + public MWF7A5Data rsCmid(String rsCmid) { + params.put("RS_CMID", rsCmid); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A5Response.java new file mode 100644 index 0000000..ab94030 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A5Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7A5Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7.java new file mode 100644 index 0000000..9706e7d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7A7 extends MwfRequest { + + @Parameter(name = "ChannelId") + MWF7A7 channelId(String channelId); + @Parameter(name = "ClientName") + MWF7A7 clientName(String clientName); + @Parameter(name = "ClientSurname") + MWF7A7 clientSurname(String clientSurname); + @Parameter(name = "CmId") + MWF7A7 cmId(String cmId); + @Parameter(name = "DocumentSuspiciousData") + MWF7A7 documentSuspiciousData(Boolean documentSuspiciousData); + @Parameter(name = "Email") + MWF7A7 email(String email); + @Parameter(name = "Geolocation") + MWF7A7 geolocation(String geolocation); + @Parameter(name = "NationalIDControlNumber") + MWF7A7 nationalIDControlNumber(Long nationalIDControlNumber); + @Parameter(name = "ProdPackageKey") + MWF7A7 prodPackageKey(Long prodPackageKey); + @Parameter(name = "RWS_DocumentEdited") + MWF7A7 rWSDocumentEdited(java.util.List rWSDocumentEdited); + @Parameter(name = "RWS_DocumentNameMismatch") + MWF7A7 rWSDocumentNameMismatch(java.util.List rWSDocumentNameMismatch); + @Parameter(name = "RWS_DocumentSuspiciousScan") + MWF7A7 rWSDocumentSuspiciousScan(java.util.List rWSDocumentSuspiciousScan); + @Parameter(name = "VerificationMethod") + MWF7A7 verificationMethod(String verificationMethod); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7RWSDocumentEdited.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7RWSDocumentEdited.java new file mode 100644 index 0000000..8863e90 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7RWSDocumentEdited.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF7A7RWSDocumentEdited { + + private Map params; + + public MWF7A7RWSDocumentEdited(Map params) { + this.params = params; + } + + public String rsIdtype() { + return (String) params.get("RS_IDTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7RWSDocumentNameMismatch.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7RWSDocumentNameMismatch.java new file mode 100644 index 0000000..ebd73ce --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7RWSDocumentNameMismatch.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF7A7RWSDocumentNameMismatch { + + private Map params; + + public MWF7A7RWSDocumentNameMismatch(Map params) { + this.params = params; + } + + public String rsIdtype() { + return (String) params.get("RS_IDTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7RWSDocumentSuspiciousScan.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7RWSDocumentSuspiciousScan.java new file mode 100644 index 0000000..18fc450 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7RWSDocumentSuspiciousScan.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF7A7RWSDocumentSuspiciousScan { + + private Map params; + + public MWF7A7RWSDocumentSuspiciousScan(Map params) { + this.params = params; + } + + public String rsIdtype() { + return (String) params.get("RS_IDTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7Response.java new file mode 100644 index 0000000..664da9c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7A7Response { + + @Parameter(name = "WorkflowID") + String workflowID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8.java new file mode 100644 index 0000000..af441c5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7A8 extends MwfRequest { + + @Parameter(name = "ChannelId") + MWF7A8 channelId(String channelId); + @Parameter(name = "ProdPackageKey") + MWF7A8 prodPackageKey(Long prodPackageKey); + @Parameter(name = "RWS_IDsForProcessing") + MWF7A8 rWSIDsForProcessing(java.util.List rWSIDsForProcessing); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8RWSCreatedDocuments.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8RWSCreatedDocuments.java new file mode 100644 index 0000000..95964ee --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8RWSCreatedDocuments.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF7A8RWSCreatedDocuments { + + private Map params; + + public MWF7A8RWSCreatedDocuments(Map params) { + this.params = params; + } + + public Long rsDocinstkey() { + return (Long) params.get("RS_DOCINSTKEY"); + } + + public String rsDocumenttype() { + return (String) params.get("RS_DOCUMENTTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8RWSIDsForProcessing.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8RWSIDsForProcessing.java new file mode 100644 index 0000000..a5f42c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8RWSIDsForProcessing.java @@ -0,0 +1,97 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF7A8RWSIDsForProcessing implements MwfData { + + private Map params = new HashMap<>(); + + private MWF7A8RWSIDsForProcessing() {} + + public static MWF7A8RWSIDsForProcessing builder() { + return new MWF7A8RWSIDsForProcessing(); + } + + public MWF7A8RWSIDsForProcessing rsFirstname(String rsFirstname) { + params.put("RS_FIRSTNAME", rsFirstname); + return this; + } + + public MWF7A8RWSIDsForProcessing rsSurname(String rsSurname) { + params.put("RS_SURNAME", rsSurname); + return this; + } + + public MWF7A8RWSIDsForProcessing rsBirthnumber(String rsBirthnumber) { + params.put("RS_BIRTHNUMBER", rsBirthnumber); + return this; + } + + public MWF7A8RWSIDsForProcessing rsIdcardnumber(String rsIdcardnumber) { + params.put("RS_IDCARDNUMBER", rsIdcardnumber); + return this; + } + + public MWF7A8RWSIDsForProcessing rsIdcardvalidto(java.util.Date rsIdcardvalidto) { + params.put("RS_IDCARDVALIDTO", rsIdcardvalidto); + return this; + } + + public MWF7A8RWSIDsForProcessing rsIdcardtype(String rsIdcardtype) { + params.put("RS_IDCARDTYPE", rsIdcardtype); + return this; + } + + public MWF7A8RWSIDsForProcessing rsIdcardpublishingcountry(String rsIdcardpublishingcountry) { + params.put("RS_IDCARDPUBLISHINGCOUNTRY", rsIdcardpublishingcountry); + return this; + } + + public MWF7A8RWSIDsForProcessing rsAddressstreet(String rsAddressstreet) { + params.put("RS_ADDRESSSTREET", rsAddressstreet); + return this; + } + + public MWF7A8RWSIDsForProcessing rsAddresshousenumber(String rsAddresshousenumber) { + params.put("RS_ADDRESSHOUSENUMBER", rsAddresshousenumber); + return this; + } + + public MWF7A8RWSIDsForProcessing rsAddresscity(String rsAddresscity) { + params.put("RS_ADDRESSCITY", rsAddresscity); + return this; + } + + public MWF7A8RWSIDsForProcessing rsAddresszipcode(String rsAddresszipcode) { + params.put("RS_ADDRESSZIPCODE", rsAddresszipcode); + return this; + } + + public MWF7A8RWSIDsForProcessing rsAddresscountry(String rsAddresscountry) { + params.put("RS_ADDRESSCOUNTRY", rsAddresscountry); + return this; + } + + public MWF7A8RWSIDsForProcessing rsNationalidcontrolnumber(Long rsNationalidcontrolnumber) { + params.put("RS_NATIONALIDCONTROLNUMBER", rsNationalidcontrolnumber); + return this; + } + + public MWF7A8RWSIDsForProcessing rsAddresslandregistrynumber(String rsAddresslandregistrynumber) { + params.put("RS_ADDRESSLANDREGISTRYNUMBER", rsAddresslandregistrynumber); + return this; + } + + public MWF7A8RWSIDsForProcessing rsCmid(String rsCmid) { + params.put("RS_CMID", rsCmid); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8Response.java new file mode 100644 index 0000000..bea21fc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7A8Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7A8Response { + + @Parameter(name = "AutoProcessDone") + Boolean autoProcessDone(); + + @Parameter(name = "RWS_CreatedDocuments") + java.util.List rWSCreatedDocuments(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C1.java new file mode 100644 index 0000000..8520fb2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C1.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7C1 extends MwfRequest { + + @Parameter(name = "AppKeyCardPlastic") + MWF7C1 appKeyCardPlastic(String appKeyCardPlastic); + @Parameter(name = "KulKey") + MWF7C1 kulKey(Long kulKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C1Response.java new file mode 100644 index 0000000..9283f33 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C1Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7C1Response { + + @Parameter(name = "WorkFlowState") + Long workFlowState(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C2.java new file mode 100644 index 0000000..0602fb7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C2.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7C2 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF7C2 appKey(String appKey); + @Parameter(name = "AppKeyCardPlastic") + MWF7C2 appKeyCardPlastic(String appKeyCardPlastic); + @Parameter(name = "KulKey") + MWF7C2 kulKey(Long kulKey); + @Parameter(name = "VariantKey") + MWF7C2 variantKey(Long variantKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C2Response.java new file mode 100644 index 0000000..e496f23 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C2Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7C2Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C3.java new file mode 100644 index 0000000..08b0ca4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C3.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7C3 extends MwfRequest { + + @Parameter(name = "LoanAccNumber") + MWF7C3 loanAccNumber(String loanAccNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C3Response.java new file mode 100644 index 0000000..938be59 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C3Response.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7C3Response { + + @Parameter(name = "ActAmount") + Double actAmount(); + + @Parameter(name = "ActInterestRate") + Double actInterestRate(); + + @Parameter(name = "ActRpsn") + Double actRpsn(); + + @Parameter(name = "ActTerm") + Long actTerm(); + + @Parameter(name = "AgreementCondition") + String agreementCondition(); + + @Parameter(name = "AmountNew") + Double amountNew(); + + @Parameter(name = "Date34Statement") + java.util.Date date34Statement(); + + @Parameter(name = "DrawAmountNew") + Double drawAmountNew(); + + @Parameter(name = "InterestRateNew") + Double interestRateNew(); + + @Parameter(name = "LoanType") + String loanType(); + + @Parameter(name = "RevisionPeriod") + Long revisionPeriod(); + + @Parameter(name = "RpsnNew") + Double rpsnNew(); + + @Parameter(name = "TermNew") + Long termNew(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C7.java new file mode 100644 index 0000000..d14f7d0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7C7 extends MwfRequest { + + @Parameter(name = "ProdPackageKey") + MWF7C7 prodPackageKey(String prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C7Response.java new file mode 100644 index 0000000..b16ed4e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C7Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7C7Response { + + @Parameter(name = "AggregatedState") + String aggregatedState(); + + @Parameter(name = "DocumentsRequiredOnlyPoiFlag") + Long documentsRequiredOnlyPoiFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C8.java new file mode 100644 index 0000000..a248991 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C8.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7C8 extends MwfRequest { + + @Parameter(name = "CisloUctuExterni") + MWF7C8 cisloUctuExterni(String cisloUctuExterni); + @Parameter(name = "CisloUctuInterni") + MWF7C8 cisloUctuInterni(String cisloUctuInterni); + @Parameter(name = "SmerPrevodu") + MWF7C8 smerPrevodu(Long smerPrevodu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C8Response.java new file mode 100644 index 0000000..180c406 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C8Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7C8Response { + + @Parameter(name = "CisloUctuExterni") + String cisloUctuExterni(); + + @Parameter(name = "CisloUctuInterni") + String cisloUctuInterni(); + + @Parameter(name = "PrevodExists") + Long prevodExists(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C9.java new file mode 100644 index 0000000..878f39e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C9.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7C9 extends MwfRequest { + + @Parameter(name = "ChannelId") + MWF7C9 channelId(String channelId); + @Parameter(name = "ProdPackageKey") + MWF7C9 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C9Response.java new file mode 100644 index 0000000..d628e14 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7C9Response.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7C9Response { + + @Parameter(name = "AmountFrom") + Double amountFrom(); + + @Parameter(name = "AmountRequested") + Double amountRequested(); + + @Parameter(name = "AmountTo") + Double amountTo(); + + @Parameter(name = "AppKey") + Long appKey(); + + @Parameter(name = "ProductVirtualCandidateKey") + Long productVirtualCandidateKey(); + + @Parameter(name = "TermFrom") + Long termFrom(); + + @Parameter(name = "TermTo") + Long termTo(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4.java new file mode 100644 index 0000000..b47cb1d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7D4 extends MwfRequest { + + @Parameter(name = "ApplicantBirthNumber") + MWF7D4 applicantBirthNumber(String applicantBirthNumber); + @Parameter(name = "ApplicantCif") + MWF7D4 applicantCif(String applicantCif); + @Parameter(name = "ClientAccountBankCode") + MWF7D4 clientAccountBankCode(String clientAccountBankCode); + @Parameter(name = "ClientAddresses") + MWF7D4 clientAddresses(String clientAddresses); + @Parameter(name = "ClientBirthDate") + MWF7D4 clientBirthDate(java.util.Date clientBirthDate); + @Parameter(name = "ClientBirthNumber") + MWF7D4 clientBirthNumber(String clientBirthNumber); + @Parameter(name = "ClientForename") + MWF7D4 clientForename(String clientForename); + @Parameter(name = "ClientIdentificationCardNumber") + MWF7D4 clientIdentificationCardNumber(String clientIdentificationCardNumber); + @Parameter(name = "ClientSurname") + MWF7D4 clientSurname(String clientSurname); + @Parameter(name = "RWS_ClientAccounts") + MWF7D4 rWSClientAccounts(java.util.List rWSClientAccounts); + @Parameter(name = "RWS_Transactions") + MWF7D4 rWSTransactions(java.util.List rWSTransactions); + @Parameter(name = "TransactionCaptureDate") + MWF7D4 transactionCaptureDate(java.util.Date transactionCaptureDate); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4RWSClientAccounts.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4RWSClientAccounts.java new file mode 100644 index 0000000..6df5715 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4RWSClientAccounts.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF7D4RWSClientAccounts { + + private Map params; + + public MWF7D4RWSClientAccounts(Map params) { + this.params = params; + } + + public String rsAccountownerforename() { + return (String) params.get("RS_ACCOUNTOWNERFORENAME"); + } + + public String rsAccountownersurname() { + return (String) params.get("RS_ACCOUNTOWNERSURNAME"); + } + + public String rsAccountnumber() { + return (String) params.get("RS_ACCOUNTNUMBER"); + } + + public String rsAccountcurrencycode() { + return (String) params.get("RS_ACCOUNTCURRENCYCODE"); + } + + public Double rsAccountbalanceavailableamount() { + return (Double) params.get("RS_ACCOUNTBALANCEAVAILABLEAMOUNT"); + } + + public String rsAccountiban() { + return (String) params.get("RS_ACCOUNTIBAN"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4RWSTransactions.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4RWSTransactions.java new file mode 100644 index 0000000..24edaa2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4RWSTransactions.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF7D4RWSTransactions { + + private Map params; + + public MWF7D4RWSTransactions(Map params) { + this.params = params; + } + + public String rsTransactiontargetaccountname() { + return (String) params.get("RS_TRANSACTIONTARGETACCOUNTNAME"); + } + + public String rsTransactiontargetiban() { + return (String) params.get("RS_TRANSACTIONTARGETIBAN"); + } + + public String rsTransactionid() { + return (String) params.get("RS_TRANSACTIONID"); + } + + public java.util.Date rsTransactiondate() { + return (java.util.Date) params.get("RS_TRANSACTIONDATE"); + } + + public String rsTransactiontargetbankcode() { + return (String) params.get("RS_TRANSACTIONTARGETBANKCODE"); + } + + public String rsTransactiontargetaccountnumber() { + return (String) params.get("RS_TRANSACTIONTARGETACCOUNTNUMBER"); + } + + public Double rsTransactionamount() { + return (Double) params.get("RS_TRANSACTIONAMOUNT"); + } + + public String rsTransactionvariablesymbol() { + return (String) params.get("RS_TRANSACTIONVARIABLESYMBOL"); + } + + public String rsTransactionnote() { + return (String) params.get("RS_TRANSACTIONNOTE"); + } + + public String rsTransactionclientiban() { + return (String) params.get("RS_TRANSACTIONCLIENTIBAN"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4Response.java new file mode 100644 index 0000000..fb8adae --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D4Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7D4Response { + + @Parameter(name = "TransactionCaptureSnapKey") + Long transactionCaptureSnapKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D6.java new file mode 100644 index 0000000..5a52ea1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D6.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7D6 extends MwfRequest { + + @Parameter(name = "ApplicationKey") + MWF7D6 applicationKey(Long applicationKey); + @Parameter(name = "TransactionCaptureSnapKey") + MWF7D6 transactionCaptureSnapKey(Long transactionCaptureSnapKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D6Response.java new file mode 100644 index 0000000..269517f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D6Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7D6Response { + + @Parameter(name = "ClientAccountDataIsValid") + String clientAccountDataIsValid(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D7.java new file mode 100644 index 0000000..a1d4482 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7D7 extends MwfRequest { + + @Parameter(name = "TransactionCaptureSnapKey") + MWF7D7 transactionCaptureSnapKey(Long transactionCaptureSnapKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D7Response.java new file mode 100644 index 0000000..8b1ae1e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7D7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7D7Response { + + @Parameter(name = "TransactionCalculationStateId") + String transactionCalculationStateId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7E2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7E2.java new file mode 100644 index 0000000..c3ea436 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7E2.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7E2 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF7E2 appKey(String appKey); + @Parameter(name = "KulKey") + MWF7E2 kulKey(Long kulKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7E2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7E2Response.java new file mode 100644 index 0000000..dacbbf6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7E2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7E2Response { + + @Parameter(name = "AppKeyCardPlastic") + String appKeyCardPlastic(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7G0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7G0.java new file mode 100644 index 0000000..4bf07ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7G0.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF7G0 extends MwfRequest { + + @Parameter(name = "AGENT_ID") + MWF7G0 agentId(String agentId); + @Parameter(name = "BRN_ID") + MWF7G0 brnId(String brnId); + @Parameter(name = "CONT_PHONE_NUM") + MWF7G0 contPhoneNum(String contPhoneNum); + @Parameter(name = "CONT_PROD_ID") + MWF7G0 contProdId(String contProdId); + @Parameter(name = "CONT_TP") + MWF7G0 contTp(Long contTp); + @Parameter(name = "CRE_DT") + MWF7G0 creDt(java.util.Date creDt); + @Parameter(name = "FIRST_NAME") + MWF7G0 firstName(String firstName); + @Parameter(name = "GEMID_ID") + MWF7G0 gemidId(String gemidId); + @Parameter(name = "LAST_NAME") + MWF7G0 lastName(String lastName); + @Parameter(name = "WEB_SRC_ID") + MWF7G0 webSrcId(String webSrcId); + @Parameter(name = "WEB_SRC_SYS_ID") + MWF7G0 webSrcSysId(String webSrcSysId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7G0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7G0Response.java new file mode 100644 index 0000000..1adb2fb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF7G0Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF7G0Response { + + @Parameter(name = "WEBPORTAL_CONT_KEY") + Long webportalContKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF810.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF810.java new file mode 100644 index 0000000..602ed95 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF810.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF810 extends MwfRequest { + + @Parameter(name = "PLTRIM_VIN") + MWF810 pltrimVin(String pltrimVin); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF810Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF810Data.java new file mode 100644 index 0000000..e1b1f7a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF810Data.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF810Data { + + private Map params; + + public MWF810Data(Map params) { + this.params = params; + } + + public String rsVin() { + return (String) params.get("RS_VIN"); + } + + public String rsZnacka() { + return (String) params.get("RS_ZNACKA"); + } + + public String rsModel() { + return (String) params.get("RS_MODEL"); + } + + public Long rsRokvyroby() { + return (Long) params.get("RS_ROKVYROBY"); + } + + public String rsBarva() { + return (String) params.get("RS_BARVA"); + } + + public String rsStav() { + return (String) params.get("RS_STAV"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF810Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF810Response.java new file mode 100644 index 0000000..ee43717 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF810Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF810Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF898.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF898.java new file mode 100644 index 0000000..08fea93 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF898.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF898 extends MwfRequest { + + @Parameter(name = "CHANNEL") + MWF898 channel(String channel); + @Parameter(name = "CIN") + MWF898 cin(String cin); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF898Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF898Response.java new file mode 100644 index 0000000..4c29fb3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF898Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF898Response { + + @Parameter(name = "ERRDESC") + String errdesc(); + + @Parameter(name = "RETURN") + String ret(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A3.java new file mode 100644 index 0000000..d23a377 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A3.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8A3 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF8A3 appKey(Long appKey); + @Parameter(name = "ProdPackageKey") + MWF8A3 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A3Response.java new file mode 100644 index 0000000..653b56f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A3Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8A3Response { + + @Parameter(name = "AppState") + Long appState(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A5.java new file mode 100644 index 0000000..f0cb4a2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A5.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8A5 extends MwfRequest { + + @Parameter(name = "ProdPackageKey") + MWF8A5 prodPackageKey(String prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A5Response.java new file mode 100644 index 0000000..b32562e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8A5Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8A5Response { + + @Parameter(name = "CancelationDate") + java.util.Date cancelationDate(); + + @Parameter(name = "CurrentAccount") + String currentAccount(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C1.java new file mode 100644 index 0000000..a4bb66d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C1.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8C1 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF8C1 appKey(Long appKey); + @Parameter(name = "InsuranceType") + MWF8C1 insuranceType(String insuranceType); + @Parameter(name = "LoanAmount") + MWF8C1 loanAmount(Double loanAmount); + @Parameter(name = "ProductVirtualCandidateKey") + MWF8C1 productVirtualCandidateKey(Long productVirtualCandidateKey); + @Parameter(name = "Term") + MWF8C1 term(Long term); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C1Response.java new file mode 100644 index 0000000..34e3b9f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C1Response.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8C1Response { + + @Parameter(name = "Instalment") + Double instalment(); + + @Parameter(name = "InsuranceMonthlyPayment") + Double insuranceMonthlyPayment(); + + @Parameter(name = "InterestRate") + Double interestRate(); + + @Parameter(name = "LastInstalment") + Double lastInstalment(); + + @Parameter(name = "MinimumInterestRate") + Double minimumInterestRate(); + + @Parameter(name = "PrimarInterestRate") + Double primarInterestRate(); + + @Parameter(name = "ProductCandidateKey") + Long productCandidateKey(); + + @Parameter(name = "RPSN") + Double rpsn(); + + @Parameter(name = "Term") + Long term(); + + @Parameter(name = "TermFrom") + Long termFrom(); + + @Parameter(name = "TermTo") + Long termTo(); + + @Parameter(name = "TotalAmount") + Double totalAmount(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C2.java new file mode 100644 index 0000000..050f408 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C2.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8C2 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF8C2 appKey(Long appKey); + @Parameter(name = "CIF") + MWF8C2 cif(String cif); + @Parameter(name = "InsuranceType") + MWF8C2 insuranceType(String insuranceType); + @Parameter(name = "LoanAmount") + MWF8C2 loanAmount(Double loanAmount); + @Parameter(name = "ProductCandidateKey") + MWF8C2 productCandidateKey(Long productCandidateKey); + @Parameter(name = "Term") + MWF8C2 term(Long term); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C2Response.java new file mode 100644 index 0000000..31a2e39 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8C2Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8C2Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D3.java new file mode 100644 index 0000000..5a8ac7f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D3.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8D3 extends MwfRequest { + + @Parameter(name = "Code") + MWF8D3 code(String code); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D3Response.java new file mode 100644 index 0000000..631b343 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D3Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8D3Response { + + @Parameter(name = "IsValid") + Boolean isValid(); + + @Parameter(name = "PromoterName") + String promoterName(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D4.java new file mode 100644 index 0000000..005e41f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D4.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8D4 extends MwfRequest { + + @Parameter(name = "AddressCountry") + MWF8D4 addressCountry(String addressCountry); + @Parameter(name = "AddressEmpCity") + MWF8D4 addressEmpCity(String addressEmpCity); + @Parameter(name = "AddressEmpHouseNumber") + MWF8D4 addressEmpHouseNumber(String addressEmpHouseNumber); + @Parameter(name = "AddressEmpLandRegistryNumber") + MWF8D4 addressEmpLandRegistryNumber(String addressEmpLandRegistryNumber); + @Parameter(name = "AddressEmpStreet") + MWF8D4 addressEmpStreet(String addressEmpStreet); + @Parameter(name = "AddressEmpZipCode") + MWF8D4 addressEmpZipCode(String addressEmpZipCode); + @Parameter(name = "AppKey") + MWF8D4 appKey(Long appKey); + @Parameter(name = "CIF") + MWF8D4 cif(String cif); + @Parameter(name = "ChannelId") + MWF8D4 channelId(String channelId); + @Parameter(name = "DependPersonsCount") + MWF8D4 dependPersonsCount(Long dependPersonsCount); + @Parameter(name = "EducationType") + MWF8D4 educationType(String educationType); + @Parameter(name = "EmploymentId") + MWF8D4 employmentId(String employmentId); + @Parameter(name = "EmploymentName") + MWF8D4 employmentName(String employmentName); + @Parameter(name = "EmploymentSince") + MWF8D4 employmentSince(java.util.Date employmentSince); + @Parameter(name = "EmploymentTrial") + MWF8D4 employmentTrial(Long employmentTrial); + @Parameter(name = "EmploymentType") + MWF8D4 employmentType(String employmentType); + @Parameter(name = "IncomeAverageThreeMonths") + MWF8D4 incomeAverageThreeMonths(Double incomeAverageThreeMonths); + @Parameter(name = "IncomeFamily") + MWF8D4 incomeFamily(Double incomeFamily); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D4Response.java new file mode 100644 index 0000000..fcbdc26 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8D4Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8D4Response { + + @Parameter(name = "AppKey") + Long appKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8E5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8E5.java new file mode 100644 index 0000000..0bb6770 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8E5.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8E5 extends MwfRequest { + + @Parameter(name = "AddressCity") + MWF8E5 addressCity(String addressCity); + @Parameter(name = "AddressCountry") + MWF8E5 addressCountry(String addressCountry); + @Parameter(name = "AddressStreet") + MWF8E5 addressStreet(String addressStreet); + @Parameter(name = "AddressStreetDescriptionNumber") + MWF8E5 addressStreetDescriptionNumber(String addressStreetDescriptionNumber); + @Parameter(name = "AddressStreetOrientNumber") + MWF8E5 addressStreetOrientNumber(String addressStreetOrientNumber); + @Parameter(name = "AddressZipCode") + MWF8E5 addressZipCode(String addressZipCode); + @Parameter(name = "InstPtKey") + MWF8E5 instPtKey(String instPtKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8E5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8E5Response.java new file mode 100644 index 0000000..930e7d3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8E5Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8E5Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8F6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8F6.java new file mode 100644 index 0000000..9c94ca7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8F6.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8F6 extends MwfRequest { + + @Parameter(name = "NOTAFFILIATE") + MWF8F6 notaffiliate(String notaffiliate); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8F6Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8F6Data.java new file mode 100644 index 0000000..36abb9d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8F6Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF8F6Data { + + private Map params; + + public MWF8F6Data(Map params) { + this.params = params; + } + + public String rsProduct() { + return (String) params.get("RS_PRODUCT"); + } + + public Long rsProducttypeid() { + return (Long) params.get("RS_PRODUCTTYPEID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8F6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8F6Response.java new file mode 100644 index 0000000..a21121e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8F6Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8F6Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G2.java new file mode 100644 index 0000000..1b204a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G2.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8G2 extends MwfRequest { + + @Parameter(name = "BankNumber") + MWF8G2 bankNumber(Long bankNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G2Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G2Data.java new file mode 100644 index 0000000..ed8d068 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G2Data.java @@ -0,0 +1,161 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF8G2Data { + + private Map params; + + public MWF8G2Data(Map params) { + this.params = params; + } + + public String rsTransactioncode() { + return (String) params.get("RS_TRANSACTIONCODE"); + } + + public String rsFee1Description() { + return (String) params.get("RS_FEE1_DESCRIPTION"); + } + + public String rsFee1Override() { + return (String) params.get("RS_FEE1_OVERRIDE"); + } + + public Double rsFee1Percent() { + return (Double) params.get("RS_FEE1_PERCENT"); + } + + public Double rsFee1Minimum() { + return (Double) params.get("RS_FEE1_MINIMUM"); + } + + public Double rsFee1Maximum() { + return (Double) params.get("RS_FEE1_MAXIMUM"); + } + + public Double rsFixedFee1Am() { + return (Double) params.get("RS_FIXED_FEE1_AM"); + } + + public String rsFee2Description() { + return (String) params.get("RS_FEE2_DESCRIPTION"); + } + + public String rsFee2Override() { + return (String) params.get("RS_FEE2_OVERRIDE"); + } + + public Double rsFee2Percent() { + return (Double) params.get("RS_FEE2_PERCENT"); + } + + public Double rsFee2Minimum() { + return (Double) params.get("RS_FEE2_MINIMUM"); + } + + public Double rsFee2Maximum() { + return (Double) params.get("RS_FEE2_MAXIMUM"); + } + + public Double rsFixedFee2Am() { + return (Double) params.get("RS_FIXED_FEE2_AM"); + } + + public String rsFee3Description() { + return (String) params.get("RS_FEE3_DESCRIPTION"); + } + + public String rsFee3Override() { + return (String) params.get("RS_FEE3_OVERRIDE"); + } + + public Double rsFee3Percent() { + return (Double) params.get("RS_FEE3_PERCENT"); + } + + public Double rsFee3Minimum() { + return (Double) params.get("RS_FEE3_MINIMUM"); + } + + public Double rsFee3Maximum() { + return (Double) params.get("RS_FEE3_MAXIMUM"); + } + + public Double rsFixedFee3Am() { + return (Double) params.get("RS_FIXED_FEE3_AM"); + } + + public String rsFee4Description() { + return (String) params.get("RS_FEE4_DESCRIPTION"); + } + + public String rsFee4Override() { + return (String) params.get("RS_FEE4_OVERRIDE"); + } + + public Double rsFee4Percent() { + return (Double) params.get("RS_FEE4_PERCENT"); + } + + public Double rsFee4Minimum() { + return (Double) params.get("RS_FEE4_MINIMUM"); + } + + public Double rsFee4Maximum() { + return (Double) params.get("RS_FEE4_MAXIMUM"); + } + + public Double rsFixedFee4Am() { + return (Double) params.get("RS_FIXED_FEE4_AM"); + } + + public String rsFee5Description() { + return (String) params.get("RS_FEE5_DESCRIPTION"); + } + + public String rsFee5Override() { + return (String) params.get("RS_FEE5_OVERRIDE"); + } + + public Double rsFee5Percent() { + return (Double) params.get("RS_FEE5_PERCENT"); + } + + public Double rsFee5Minimum() { + return (Double) params.get("RS_FEE5_MINIMUM"); + } + + public Double rsFee5Maximum() { + return (Double) params.get("RS_FEE5_MAXIMUM"); + } + + public Double rsFixedFee5Am() { + return (Double) params.get("RS_FIXED_FEE5_AM"); + } + + public String rsFee6Description() { + return (String) params.get("RS_FEE6_DESCRIPTION"); + } + + public String rsFee6Override() { + return (String) params.get("RS_FEE6_OVERRIDE"); + } + + public Double rsFee6Percent() { + return (Double) params.get("RS_FEE6_PERCENT"); + } + + public Double rsFee6Minimum() { + return (Double) params.get("RS_FEE6_MINIMUM"); + } + + public Double rsFee6Maximum() { + return (Double) params.get("RS_FEE6_MAXIMUM"); + } + + public Double rsFixedFee6Am() { + return (Double) params.get("RS_FIXED_FEE6_AM"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G2Response.java new file mode 100644 index 0000000..9de6033 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8G2Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G3.java new file mode 100644 index 0000000..3734a2a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G3.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8G3 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF8G3 appKey(Long appKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G3Response.java new file mode 100644 index 0000000..ef01ffe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G3Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8G3Response { + + @Parameter(name = "InstPtKey") + Long instPtKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G4.java new file mode 100644 index 0000000..3328660 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G4.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8G4 extends MwfRequest { + + @Parameter(name = "ICO") + MWF8G4 ico(String ico); + @Parameter(name = "ID") + MWF8G4 id(String id); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G4Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G4Data.java new file mode 100644 index 0000000..dc5f0d9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G4Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF8G4Data { + + private Map params; + + public MWF8G4Data(Map params) { + this.params = params; + } + + public String rsNaceCode() { + return (String) params.get("RS_NACE_CODE"); + } + + public String rsNaceDescription() { + return (String) params.get("RS_NACE_DESCRIPTION"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G4Response.java new file mode 100644 index 0000000..af2ea9d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G4Response.java @@ -0,0 +1,63 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8G4Response { + + @Parameter(name = "ARES_ADDRESS_CITY") + String aresAddressCity(); + + @Parameter(name = "ARES_ADDRESS_COUNTRY") + String aresAddressCountry(); + + @Parameter(name = "ARES_ADDRESS_DESCRIPTIVE_NUMBER") + String aresAddressDescriptiveNumber(); + + @Parameter(name = "ARES_ADDRESS_DESCRIPTIVE_NUMBER_TYPE") + String aresAddressDescriptiveNumberType(); + + @Parameter(name = "ARES_ADDRESS_ID") + String aresAddressId(); + + @Parameter(name = "ARES_ADDRESS_ORIENTATION_NUMBER") + String aresAddressOrientationNumber(); + + @Parameter(name = "ARES_ADDRESS_STREET") + String aresAddressStreet(); + + @Parameter(name = "ARES_ADDRESS_ZIP") + String aresAddressZip(); + + @Parameter(name = "BUSINESS_NAME") + String businessName(); + + @Parameter(name = "COMMENCEMENT_DATE") + java.util.Date commencementDate(); + + @Parameter(name = "DIC") + String dic(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "EMPLOYEE_COUNT_CATEGORY") + String employeeCountCategory(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "LEGAL_FORM_CODE") + String legalFormCode(); + + @Parameter(name = "LEGAL_FORM_NAME") + String legalFormName(); + + @Parameter(name = "STATUS_CODE") + Long statusCode(); + + @Parameter(name = "STATUS_MESSAGE") + String statusMessage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G5.java new file mode 100644 index 0000000..b4a1856 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G5.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8G5 extends MwfRequest { + + @Parameter(name = "ICO") + MWF8G5 ico(String ico); + @Parameter(name = "ID") + MWF8G5 id(String id); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G5Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G5Data.java new file mode 100644 index 0000000..34f3040 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G5Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF8G5Data { + + private Map params; + + public MWF8G5Data(Map params) { + this.params = params; + } + + public String rsNaceCode() { + return (String) params.get("RS_NACE_CODE"); + } + + public String rsNaceDescription() { + return (String) params.get("RS_NACE_DESCRIPTION"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G5Response.java new file mode 100644 index 0000000..94a0f06 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G5Response.java @@ -0,0 +1,66 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8G5Response { + + @Parameter(name = "BUSINESS_ADDRESS_CITY") + String businessAddressCity(); + + @Parameter(name = "BUSINESS_ADDRESS_COUNTRY") + String businessAddressCountry(); + + @Parameter(name = "BUSINESS_ADDRESS_DESCRIPTIVE_NUMBER") + String businessAddressDescriptiveNumber(); + + @Parameter(name = "BUSINESS_ADDRESS_DESCRIPTIVE_NUMBER_TYPE") + String businessAddressDescriptiveNumberType(); + + @Parameter(name = "BUSINESS_ADDRESS_ID") + String businessAddressId(); + + @Parameter(name = "BUSINESS_ADDRESS_ORIENTATION_NUMBER") + String businessAddressOrientationNumber(); + + @Parameter(name = "BUSINESS_ADDRESS_STREET") + String businessAddressStreet(); + + @Parameter(name = "BUSINESS_ADDRESS_ZIP") + String businessAddressZip(); + + @Parameter(name = "BUSINESS_NAME") + String businessName(); + + @Parameter(name = "COMMENCEMENT_DATE") + java.util.Date commencementDate(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "ECONOMIC_SECTOR_CODE") + String economicSectorCode(); + + @Parameter(name = "ECONOMIC_SECTOR_NAME") + String economicSectorName(); + + @Parameter(name = "EMPLOYEE_COUNT_CATEGORY") + String employeeCountCategory(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "LEGAL_FORM_CODE") + String legalFormCode(); + + @Parameter(name = "LEGAL_FORM_NAME") + String legalFormName(); + + @Parameter(name = "STATUS_CODE") + Long statusCode(); + + @Parameter(name = "STATUS_MESSAGE") + String statusMessage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6.java new file mode 100644 index 0000000..69731e3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6.java @@ -0,0 +1,114 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8G6 extends MwfRequest { + + @Parameter(name = "ActivatingPassword") + MWF8G6 activatingPassword(String activatingPassword); + @Parameter(name = "AppBranchId") + MWF8G6 appBranchId(String appBranchId); + @Parameter(name = "AppChannelId") + MWF8G6 appChannelId(String appChannelId); + @Parameter(name = "AppSetKey") + MWF8G6 appSetKey(Long appSetKey); + @Parameter(name = "BusinessType") + MWF8G6 businessType(String businessType); + @Parameter(name = "ClientBirthCountry") + MWF8G6 clientBirthCountry(String clientBirthCountry); + @Parameter(name = "ClientBirthDate") + MWF8G6 clientBirthDate(java.util.Date clientBirthDate); + @Parameter(name = "ClientBirthNumber") + MWF8G6 clientBirthNumber(String clientBirthNumber); + @Parameter(name = "ClientBirthPlace") + MWF8G6 clientBirthPlace(String clientBirthPlace); + @Parameter(name = "ClientBusEmployeeCount") + MWF8G6 clientBusEmployeeCount(Long clientBusEmployeeCount); + @Parameter(name = "ClientBusGrossIncomeLastYear") + MWF8G6 clientBusGrossIncomeLastYear(Double clientBusGrossIncomeLastYear); + @Parameter(name = "ClientBusName") + MWF8G6 clientBusName(String clientBusName); + @Parameter(name = "ClientBusSector") + MWF8G6 clientBusSector(String clientBusSector); + @Parameter(name = "ClientBusStartDate") + MWF8G6 clientBusStartDate(java.util.Date clientBusStartDate); + @Parameter(name = "ClientCitizenship") + MWF8G6 clientCitizenship(String clientCitizenship); + @Parameter(name = "ClientDependPersons") + MWF8G6 clientDependPersons(Long clientDependPersons); + @Parameter(name = "ClientEducation") + MWF8G6 clientEducation(String clientEducation); + @Parameter(name = "ClientEmploymentType") + MWF8G6 clientEmploymentType(String clientEmploymentType); + @Parameter(name = "ClientFamilyBusFlag") + MWF8G6 clientFamilyBusFlag(String clientFamilyBusFlag); + @Parameter(name = "ClientFamilyBusProfitSharePct") + MWF8G6 clientFamilyBusProfitSharePct(Double clientFamilyBusProfitSharePct); + @Parameter(name = "ClientFixedPerFlag") + MWF8G6 clientFixedPerFlag(String clientFixedPerFlag); + @Parameter(name = "ClientForename") + MWF8G6 clientForename(String clientForename); + @Parameter(name = "ClientHousingType") + MWF8G6 clientHousingType(String clientHousingType); + @Parameter(name = "ClientIco") + MWF8G6 clientIco(String clientIco); + @Parameter(name = "ClientLegalForm") + MWF8G6 clientLegalForm(String clientLegalForm); + @Parameter(name = "ClientMaritalAssets") + MWF8G6 clientMaritalAssets(String clientMaritalAssets); + @Parameter(name = "ClientMaritalStatus") + MWF8G6 clientMaritalStatus(String clientMaritalStatus); + @Parameter(name = "ClientMiddleName") + MWF8G6 clientMiddleName(String clientMiddleName); + @Parameter(name = "ClientNameTitleAfter") + MWF8G6 clientNameTitleAfter(String clientNameTitleAfter); + @Parameter(name = "ClientNameTitleBefore") + MWF8G6 clientNameTitleBefore(String clientNameTitleBefore); + @Parameter(name = "ClientPresenceWithAllPersonsFlag") + MWF8G6 clientPresenceWithAllPersonsFlag(String clientPresenceWithAllPersonsFlag); + @Parameter(name = "ClientResidentFlag") + MWF8G6 clientResidentFlag(String clientResidentFlag); + @Parameter(name = "ClientSex") + MWF8G6 clientSex(String clientSex); + @Parameter(name = "ClientSurname") + MWF8G6 clientSurname(String clientSurname); + @Parameter(name = "ClientType") + MWF8G6 clientType(String clientType); + @Parameter(name = "CurrentAccountOpenFlag") + MWF8G6 currentAccountOpenFlag(String currentAccountOpenFlag); + @Parameter(name = "EmployeeSso") + MWF8G6 employeeSso(String employeeSso); + @Parameter(name = "IpAddress") + MWF8G6 ipAddress(String ipAddress); + @Parameter(name = "LoanAmount") + MWF8G6 loanAmount(Double loanAmount); + @Parameter(name = "LoanInstalmentDeferredCount") + MWF8G6 loanInstalmentDeferredCount(Long loanInstalmentDeferredCount); + @Parameter(name = "LoanInstalmentRegularDay") + MWF8G6 loanInstalmentRegularDay(Long loanInstalmentRegularDay); + @Parameter(name = "LoanInsuranceType") + MWF8G6 loanInsuranceType(String loanInsuranceType); + @Parameter(name = "LoanMaturityTerm") + MWF8G6 loanMaturityTerm(Long loanMaturityTerm); + @Parameter(name = "LoanRepaymentType") + MWF8G6 loanRepaymentType(String loanRepaymentType); + @Parameter(name = "OfficerForename") + MWF8G6 officerForename(String officerForename); + @Parameter(name = "OfficerFunctId") + MWF8G6 officerFunctId(String officerFunctId); + @Parameter(name = "OfficerKey") + MWF8G6 officerKey(Long officerKey); + @Parameter(name = "OfficerSurname") + MWF8G6 officerSurname(String officerSurname); + @Parameter(name = "RsAddresses") + MWF8G6 rsAddresses(java.util.List rsAddresses); + @Parameter(name = "RsEmails") + MWF8G6 rsEmails(java.util.List rsEmails); + @Parameter(name = "RsIds") + MWF8G6 rsIds(java.util.List rsIds); + @Parameter(name = "RsNaces") + MWF8G6 rsNaces(java.util.List rsNaces); + @Parameter(name = "RsPhones") + MWF8G6 rsPhones(java.util.List rsPhones); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6Response.java new file mode 100644 index 0000000..10a7599 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6Response.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8G6Response { + + @Parameter(name = "AppKey_ClientCif") + Long appKeyClientCif(); + + @Parameter(name = "AppKey_CreditCardAccount") + Long appKeyCreditCardAccount(); + + @Parameter(name = "AppKey_CreditCardInstance") + Long appKeyCreditCardInstance(); + + @Parameter(name = "AppKey_CurrentAccount") + Long appKeyCurrentAccount(); + + @Parameter(name = "AppKey_InternetBank") + Long appKeyInternetBank(); + + @Parameter(name = "AppSetKey") + Long appSetKey(); + + @Parameter(name = "PackageKey") + Long packageKey(); + + @Parameter(name = "WorkflowId") + String workflowId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsAddresses.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsAddresses.java new file mode 100644 index 0000000..47b4414 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsAddresses.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF8G6RsAddresses { + + private Map params; + + public MWF8G6RsAddresses(Map params) { + this.params = params; + } + + public String rsAddressClientId() { + return (String) params.get("RS_ADDRESS_CLIENT_ID"); + } + + public String rsAddressPurpose() { + return (String) params.get("RS_ADDRESS_PURPOSE"); + } + + public String rsAddressCountry() { + return (String) params.get("RS_ADDRESS_COUNTRY"); + } + + public String rsAddressCity() { + return (String) params.get("RS_ADDRESS_CITY"); + } + + public String rsAddressStreet() { + return (String) params.get("RS_ADDRESS_STREET"); + } + + public String rsAddressStreetDescNo() { + return (String) params.get("RS_ADDRESS_STREET_DESC_NO"); + } + + public String rsAddressStreetOrientNo() { + return (String) params.get("RS_ADDRESS_STREET_ORIENT_NO"); + } + + public String rsAddressZipcode() { + return (String) params.get("RS_ADDRESS_ZIPCODE"); + } + + public String rsAddressPostOffice() { + return (String) params.get("RS_ADDRESS_POST_OFFICE"); + } + + public java.util.Date rsAddressSince() { + return (java.util.Date) params.get("RS_ADDRESS_SINCE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsEmails.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsEmails.java new file mode 100644 index 0000000..700487d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsEmails.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF8G6RsEmails { + + private Map params; + + public MWF8G6RsEmails(Map params) { + this.params = params; + } + + public String rsEmailPurpose() { + return (String) params.get("RS_EMAIL_PURPOSE"); + } + + public String rsEmail() { + return (String) params.get("RS_EMAIL"); + } + + public String rsEmailClientId() { + return (String) params.get("RS_EMAIL_CLIENT_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsIds.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsIds.java new file mode 100644 index 0000000..22bf788 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsIds.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF8G6RsIds { + + private Map params; + + public MWF8G6RsIds(Map params) { + this.params = params; + } + + public String rsIdCardPurpId() { + return (String) params.get("RS_ID_CARD_PURP_ID"); + } + + public String rsIdCardNr() { + return (String) params.get("RS_ID_CARD_NR"); + } + + public String rsIdCardTypeId() { + return (String) params.get("RS_ID_CARD_TYPE_ID"); + } + + public String rsIdCardCntryId() { + return (String) params.get("RS_ID_CARD_CNTRY_ID"); + } + + public java.util.Date rsIdCardExprDate() { + return (java.util.Date) params.get("RS_ID_CARD_EXPR_DATE"); + } + + public String rsIdCardClientId() { + return (String) params.get("RS_ID_CARD_CLIENT_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsNaces.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsNaces.java new file mode 100644 index 0000000..b369a68 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsNaces.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF8G6RsNaces { + + private Map params; + + public MWF8G6RsNaces(Map params) { + this.params = params; + } + + public Long rsPtOkecKey() { + return (Long) params.get("RS_PT_OKEC_KEY"); + } + + public Long rsInstPtKey() { + return (Long) params.get("RS_INST_PT_KEY"); + } + + public String rsOkecId() { + return (String) params.get("RS_OKEC_ID"); + } + + public Long rsOkecMainFlag() { + return (Long) params.get("RS_OKEC_MAIN_FLAG"); + } + + public Double rsPrftSharePct() { + return (Double) params.get("RS_PRFT_SHARE_PCT"); + } + + public Long rsDelFlag() { + return (Long) params.get("RS_DEL_FLAG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsPhones.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsPhones.java new file mode 100644 index 0000000..342740f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G6RsPhones.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF8G6RsPhones { + + private Map params; + + public MWF8G6RsPhones(Map params) { + this.params = params; + } + + public String rsPhonePurpose() { + return (String) params.get("RS_PHONE_PURPOSE"); + } + + public String rsPhoneType() { + return (String) params.get("RS_PHONE_TYPE"); + } + + public String rsPhoneNumber() { + return (String) params.get("RS_PHONE_NUMBER"); + } + + public String rsPhoneClientId() { + return (String) params.get("RS_PHONE_CLIENT_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G8.java new file mode 100644 index 0000000..a0adab1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G8.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8G8 extends MwfRequest { + + @Parameter(name = "KULAcceptationSkipFlag") + MWF8G8 kULAcceptationSkipFlag(Boolean kULAcceptationSkipFlag); + @Parameter(name = "PackageKey") + MWF8G8 packageKey(Long packageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G8Response.java new file mode 100644 index 0000000..7cb2e00 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8G8Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8G8Response { + + @Parameter(name = "AppSetKey") + Long appSetKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H7.java new file mode 100644 index 0000000..d51fe37 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H7.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8H7 extends MwfRequest { + + @Parameter(name = "CardInstanceNumber") + MWF8H7 cardInstanceNumber(String cardInstanceNumber); + @Parameter(name = "CardTokenRefId") + MWF8H7 cardTokenRefId(String cardTokenRefId); + @Parameter(name = "CardTokenRequestorId") + MWF8H7 cardTokenRequestorId(String cardTokenRequestorId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H7Response.java new file mode 100644 index 0000000..1129d7b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8H7Response { + + @Parameter(name = "ResponseStatusFlag") + String responseStatusFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H8.java new file mode 100644 index 0000000..0df34d1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H8.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF8H8 extends MwfRequest { + + @Parameter(name = "CardInstanceNumber") + MWF8H8 cardInstanceNumber(String cardInstanceNumber); + @Parameter(name = "CardTokenRefId") + MWF8H8 cardTokenRefId(String cardTokenRefId); + @Parameter(name = "CardTokenRequestorId") + MWF8H8 cardTokenRequestorId(String cardTokenRequestorId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H8Response.java new file mode 100644 index 0000000..78dc210 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF8H8Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF8H8Response { + + @Parameter(name = "ResponseStatusFlag") + String responseStatusFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF930.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF930.java new file mode 100644 index 0000000..f843688 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF930.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF930 extends MwfRequest { + + @Parameter(name = "DatumDo") + MWF930 datumDo(java.util.Date datumDo); + @Parameter(name = "DatumOd") + MWF930 datumOd(java.util.Date datumOd); + @Parameter(name = "ISIN") + MWF930 isin(String isin); + @Parameter(name = "PocetIntervaluVystupu") + MWF930 pocetIntervaluVystupu(Long pocetIntervaluVystupu); + @Parameter(name = "PozadovanaHodnota") + MWF930 pozadovanaHodnota(String pozadovanaHodnota); + @Parameter(name = "TypPeriody") + MWF930 typPeriody(String typPeriody); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF930Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF930Data.java new file mode 100644 index 0000000..2445b9b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF930Data.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF930Data { + + private Map params; + + public MWF930Data(Map params) { + this.params = params; + } + + public String rsIsin() { + return (String) params.get("RS_ISIN"); + } + + public String rsNazevisin() { + return (String) params.get("RS_NAZEVISIN"); + } + + public java.util.Date rsDatum() { + return (java.util.Date) params.get("RS_DATUM"); + } + + public String rsPozadovanahodnota() { + return (String) params.get("RS_POZADOVANAHODNOTA"); + } + + public Double rsVypoctenahodnota() { + return (Double) params.get("RS_VYPOCTENAHODNOTA"); + } + + public String rsMena() { + return (String) params.get("RS_MENA"); + } + + public String rsNazevmena() { + return (String) params.get("RS_NAZEVMENA"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF930Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF930Response.java new file mode 100644 index 0000000..8a134e5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF930Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF930Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF983.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF983.java new file mode 100644 index 0000000..d00cec9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF983.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF983 extends MwfRequest { + + @Parameter(name = "ISIN") + MWF983 isin(String isin); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF983Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF983Data.java new file mode 100644 index 0000000..aff3bef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF983Data.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF983Data { + + private Map params; + + public MWF983Data(Map params) { + this.params = params; + } + + public String rsIsin() { + return (String) params.get("RS_ISIN"); + } + + public String rsMena() { + return (String) params.get("RS_MENA"); + } + + public Double rsHodnotadenni() { + return (Double) params.get("RS_HODNOTADENNI"); + } + + public Double rsHodnotadekada() { + return (Double) params.get("RS_HODNOTADEKADA"); + } + + public Double rsHodnotamesic() { + return (Double) params.get("RS_HODNOTAMESIC"); + } + + public Double rsHodnotactvrtrok() { + return (Double) params.get("RS_HODNOTACTVRTROK"); + } + + public Double rsHodnotapulrok() { + return (Double) params.get("RS_HODNOTAPULROK"); + } + + public Double rsHodnotarok() { + return (Double) params.get("RS_HODNOTAROK"); + } + + public Double rsHodnotacele() { + return (Double) params.get("RS_HODNOTACELE"); + } + + public Double rsHodnotaytd() { + return (Double) params.get("RS_HODNOTAYTD"); + } + + public Double rsHodnota3rok() { + return (Double) params.get("RS_HODNOTA3ROK"); + } + + public Double rsHodnota5rok() { + return (Double) params.get("RS_HODNOTA5ROK"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF983Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF983Response.java new file mode 100644 index 0000000..70f3804 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF983Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF983Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF984.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF984.java new file mode 100644 index 0000000..da1c0d0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF984.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF984 extends MwfRequest { + + @Parameter(name = "CIF") + MWF984 cif(String cif); + @Parameter(name = "ISIN") + MWF984 isin(String isin); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF984Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF984Data.java new file mode 100644 index 0000000..26dc829 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF984Data.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF984Data { + + private Map params; + + public MWF984Data(Map params) { + this.params = params; + } + + public String rsIsin() { + return (String) params.get("RS_ISIN"); + } + + public String rsNazevisin() { + return (String) params.get("RS_NAZEVISIN"); + } + + public String rsMena() { + return (String) params.get("RS_MENA"); + } + + public Double rsPpcojpl() { + return (Double) params.get("RS_PPCOJPL"); + } + + public Double rsPpcojplczk() { + return (Double) params.get("RS_PPCOJPLCZK"); + } + + public Double rsObjem() { + return (Double) params.get("RS_OBJEM"); + } + + public Double rsObjemczk() { + return (Double) params.get("RS_OBJEMCZK"); + } + + public Double rsZisk() { + return (Double) params.get("RS_ZISK"); + } + + public Double rsZiskczk() { + return (Double) params.get("RS_ZISKCZK"); + } + + public Double rsZiskprocento() { + return (Double) params.get("RS_ZISKPROCENTO"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF984Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF984Response.java new file mode 100644 index 0000000..a20e1dd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF984Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF984Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF987.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF987.java new file mode 100644 index 0000000..07c8c77 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF987.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF987 extends MwfRequest { + + @Parameter(name = "ORGANIZATION") + MWF987 organization(String organization); + @Parameter(name = "RELATIONSHIP_NUMBER") + MWF987 relationshipNumber(String relationshipNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF987Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF987Data.java new file mode 100644 index 0000000..6eaeac2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF987Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF987Data { + + private Map params; + + public MWF987Data(Map params) { + this.params = params; + } + + public String rsAccountNumber() { + return (String) params.get("RS_ACCOUNT_NUMBER"); + } + + public String rsOrganization() { + return (String) params.get("RS_ORGANIZATION"); + } + + public String rsStatus() { + return (String) params.get("RS_STATUS"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF987Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF987Response.java new file mode 100644 index 0000000..13bd65d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF987Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF987Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF996.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF996.java new file mode 100644 index 0000000..77295e3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF996.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF996 extends MwfRequest { + + @Parameter(name = "CisloBU") + MWF996 cisloBU(String cisloBU); + @Parameter(name = "CisloKoduBanky") + MWF996 cisloKoduBanky(String cisloKoduBanky); + @Parameter(name = "CisloUctu") + MWF996 cisloUctu(String cisloUctu); + @Parameter(name = "KonstantniSymbol") + MWF996 konstantniSymbol(String konstantniSymbol); + @Parameter(name = "Poznamka") + MWF996 poznamka(String poznamka); + @Parameter(name = "PredcisliUctu") + MWF996 predcisliUctu(String predcisliUctu); + @Parameter(name = "ProduktKod") + MWF996 produktKod(String produktKod); + @Parameter(name = "SpecifickySymbol") + MWF996 specifickySymbol(String specifickySymbol); + @Parameter(name = "TransID") + MWF996 transID(String transID); + @Parameter(name = "VariabilniSymbol") + MWF996 variabilniSymbol(String variabilniSymbol); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF996Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF996Response.java new file mode 100644 index 0000000..bb91eb3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF996Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF996Response { + + @Parameter(name = "TransID") + String transID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9B8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9B8.java new file mode 100644 index 0000000..791b51d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9B8.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9B8 extends MwfRequest { + + @Parameter(name = "LoanAccNumber") + MWF9B8 loanAccNumber(String loanAccNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9B8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9B8Response.java new file mode 100644 index 0000000..215111f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9B8Response.java @@ -0,0 +1,51 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9B8Response { + + @Parameter(name = "AppKey") + Long appKey(); + + @Parameter(name = "ClientReactionOnChange") + Long clientReactionOnChange(); + + @Parameter(name = "DateContractSigned") + java.util.Date dateContractSigned(); + + @Parameter(name = "DateLastRevision") + java.util.Date dateLastRevision(); + + @Parameter(name = "DateNextRevision") + java.util.Date dateNextRevision(); + + @Parameter(name = "DayOfStatement") + String dayOfStatement(); + + @Parameter(name = "InterestRate") + Double interestRate(); + + @Parameter(name = "LastPaymentAmount") + Double lastPaymentAmount(); + + @Parameter(name = "LoanAmount") + Double loanAmount(); + + @Parameter(name = "PaymentAmount") + Double paymentAmount(); + + @Parameter(name = "PaymentCount") + Long paymentCount(); + + @Parameter(name = "PaymentPercent") + Double paymentPercent(); + + @Parameter(name = "RevisionPeriod") + Long revisionPeriod(); + + @Parameter(name = "StateLastRevision") + Long stateLastRevision(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C2.java new file mode 100644 index 0000000..174f3ca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C2.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9C2 extends MwfRequest { + + @Parameter(name = "CancelExtAccount") + MWF9C2 cancelExtAccount(Boolean cancelExtAccount); + @Parameter(name = "Cif") + MWF9C2 cif(String cif); + @Parameter(name = "DocumentId") + MWF9C2 documentId(String documentId); + @Parameter(name = "ExtAccBankCode") + MWF9C2 extAccBankCode(String extAccBankCode); + @Parameter(name = "ExtAccNumber") + MWF9C2 extAccNumber(String extAccNumber); + @Parameter(name = "ExtAccPrefix") + MWF9C2 extAccPrefix(String extAccPrefix); + @Parameter(name = "MonetaAccNumber") + MWF9C2 monetaAccNumber(String monetaAccNumber); + @Parameter(name = "SignatureId") + MWF9C2 signatureId(String signatureId); + @Parameter(name = "SignatureTimestamp") + MWF9C2 signatureTimestamp(java.util.Date signatureTimestamp); + @Parameter(name = "SwitchingDate") + MWF9C2 switchingDate(java.util.Date switchingDate); + @Parameter(name = "TransferPermOrders") + MWF9C2 transferPermOrders(Boolean transferPermOrders); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C2Response.java new file mode 100644 index 0000000..4444307 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C2Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9C2Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C3.java new file mode 100644 index 0000000..8e17fc5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C3.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9C3 extends MwfRequest { + + @Parameter(name = "CancelExtAccount") + MWF9C3 cancelExtAccount(Boolean cancelExtAccount); + @Parameter(name = "Cif") + MWF9C3 cif(String cif); + @Parameter(name = "ExtAccBankCode") + MWF9C3 extAccBankCode(String extAccBankCode); + @Parameter(name = "ExtAccNumber") + MWF9C3 extAccNumber(String extAccNumber); + @Parameter(name = "ExtAccPrefix") + MWF9C3 extAccPrefix(String extAccPrefix); + @Parameter(name = "MonetaAccNumber") + MWF9C3 monetaAccNumber(String monetaAccNumber); + @Parameter(name = "SwitchingDate") + MWF9C3 switchingDate(java.util.Date switchingDate); + @Parameter(name = "TransferPermOrders") + MWF9C3 transferPermOrders(Boolean transferPermOrders); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C3Response.java new file mode 100644 index 0000000..6466f5d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C3Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9C3Response { + + @Parameter(name = "Url") + String url(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C6.java new file mode 100644 index 0000000..9fb20c1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C6.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9C6 extends MwfRequest { + + @Parameter(name = "ProdPackageKey") + MWF9C6 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C6Response.java new file mode 100644 index 0000000..9360d2a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C6Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9C6Response { + + @Parameter(name = "WorkFlowState") + String workFlowState(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C7.java new file mode 100644 index 0000000..4f95093 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9C7 extends MwfRequest { + + @Parameter(name = "ProdPackageKey") + MWF9C7 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C7Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C7Data.java new file mode 100644 index 0000000..765bb85 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C7Data.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWF9C7Data { + + private Map params; + + public MWF9C7Data(Map params) { + this.params = params; + } + + public String rsCmid() { + return (String) params.get("RS_CMID"); + } + + public String rsUrl() { + return (String) params.get("RS_URL"); + } + + public String rsIdproduktu() { + return (String) params.get("RS_IDPRODUKTU"); + } + + public String rsTypdokumentu() { + return (String) params.get("RS_TYPDOKUMENTU"); + } + + public String rsNazevdokumentu() { + return (String) params.get("RS_NAZEVDOKUMENTU"); + } + + public String rsNazevdokumentuib() { + return (String) params.get("RS_NAZEVDOKUMENTUIB"); + } + + public String rsTridaproduktu() { + return (String) params.get("RS_TRIDAPRODUKTU"); + } + + public String rsSkupinaproduktu() { + return (String) params.get("RS_SKUPINAPRODUKTU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C7Response.java new file mode 100644 index 0000000..4719d2d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9C7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9C7Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D1.java new file mode 100644 index 0000000..52edd68 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D1.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9D1 extends MwfRequest { + + @Parameter(name = "CIF") + MWF9D1 cif(String cif); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D1Response.java new file mode 100644 index 0000000..681a8dc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D1Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9D1Response { + + @Parameter(name = "SplnujePodminky") + String splnujePodminky(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D4.java new file mode 100644 index 0000000..b1f7d53 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D4.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9D4 extends MwfRequest { + + @Parameter(name = "Data") + MWF9D4 data(java.util.List data); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D4Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D4Data.java new file mode 100644 index 0000000..dbb2d66 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D4Data.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF9D4Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWF9D4Data() {} + + public static MWF9D4Data builder() { + return new MWF9D4Data(); + } + + public MWF9D4Data rsAccountnumber(String rsAccountnumber) { + params.put("RS_ACCOUNTNUMBER", rsAccountnumber); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D4Response.java new file mode 100644 index 0000000..6403b69 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D4Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9D4Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D5.java new file mode 100644 index 0000000..7fa3c49 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D5.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9D5 extends MwfRequest { + + @Parameter(name = "CIF") + MWF9D5 cif(String cif); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D5Response.java new file mode 100644 index 0000000..a2f8697 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D5Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9D5Response { + + @Parameter(name = "AccountNumber") + String accountNumber(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D8.java new file mode 100644 index 0000000..b56f977 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D8.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9D8 extends MwfRequest { + + @Parameter(name = "Cif") + MWF9D8 cif(String cif); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D8Response.java new file mode 100644 index 0000000..04e33e5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9D8Response.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9D8Response { + + @Parameter(name = "AccountFee") + Double accountFee(); + + @Parameter(name = "InterestRate") + Double interestRate(); + + @Parameter(name = "OpeningFee") + Double openingFee(); + + @Parameter(name = "OverdraftAccountNumber") + String overdraftAccountNumber(); + + @Parameter(name = "OverdraftAmount") + Double overdraftAmount(); + + @Parameter(name = "ProductClass") + String productClass(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F1.java new file mode 100644 index 0000000..aef26a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F1.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9F1 extends MwfRequest { + + @Parameter(name = "CIF") + MWF9F1 cif(String cif); + @Parameter(name = "ChannelId") + MWF9F1 channelId(String channelId); + @Parameter(name = "CmID") + MWF9F1 cmID(String cmID); + @Parameter(name = "ProdPkgKey") + MWF9F1 prodPkgKey(Long prodPkgKey); + @Parameter(name = "RWS_Signs") + MWF9F1 rWSSigns(java.util.List rWSSigns); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F1RWSSigns.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F1RWSSigns.java new file mode 100644 index 0000000..fb450fb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F1RWSSigns.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWF9F1RWSSigns implements MwfData { + + private Map params = new HashMap<>(); + + private MWF9F1RWSSigns() {} + + public static MWF9F1RWSSigns builder() { + return new MWF9F1RWSSigns(); + } + + public MWF9F1RWSSigns rsIdsignature(String rsIdsignature) { + params.put("RS_IDSIGNATURE", rsIdsignature); + return this; + } + + public MWF9F1RWSSigns rsInstptkey(String rsInstptkey) { + params.put("RS_INSTPTKEY", rsInstptkey); + return this; + } + + public MWF9F1RWSSigns rsDatestamp(java.util.Date rsDatestamp) { + params.put("RS_DATESTAMP", rsDatestamp); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F1Response.java new file mode 100644 index 0000000..82d3dcc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F1Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9F1Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F9.java new file mode 100644 index 0000000..cf99c3a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F9.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9F9 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWF9F9 appKey(Long appKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F9Response.java new file mode 100644 index 0000000..b5dd666 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9F9Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9F9Response { + + @Parameter(name = "CalculationResult") + Long calculationResult(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G0.java new file mode 100644 index 0000000..4b063d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G0.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9G0 extends MwfRequest { + + @Parameter(name = "AppKey") + MWF9G0 appKey(Long appKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G0Response.java new file mode 100644 index 0000000..03f27ca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G0Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9G0Response { + + @Parameter(name = "LoanAccountNumber") + String loanAccountNumber(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G5.java new file mode 100644 index 0000000..745adb4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G5.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9G5 extends MwfRequest { + + @Parameter(name = "CMID_IN") + MWF9G5 cmidIn(String cmidIn); + @Parameter(name = "DOC_FORMAT") + MWF9G5 docFormat(String docFormat); + @Parameter(name = "URL_IN") + MWF9G5 urlIn(String urlIn); + @Parameter(name = "Update") + MWF9G5 update(Long update); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G5Response.java new file mode 100644 index 0000000..d5ccf92 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G5Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9G5Response { + + @Parameter(name = "CMID_OUT") + String cmidOut(); + + @Parameter(name = "URL_OUT") + String urlOut(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G6.java new file mode 100644 index 0000000..6d8369f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G6.java @@ -0,0 +1,180 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9G6 extends MwfRequest { + + @Parameter(name = "AddressCity") + MWF9G6 addressCity(String addressCity); + @Parameter(name = "AddressContCity") + MWF9G6 addressContCity(String addressContCity); + @Parameter(name = "AddressContCountry") + MWF9G6 addressContCountry(String addressContCountry); + @Parameter(name = "AddressContHouseNumber") + MWF9G6 addressContHouseNumber(String addressContHouseNumber); + @Parameter(name = "AddressContLandRegistryNumber") + MWF9G6 addressContLandRegistryNumber(String addressContLandRegistryNumber); + @Parameter(name = "AddressContSince") + MWF9G6 addressContSince(java.util.Date addressContSince); + @Parameter(name = "AddressContStreet") + MWF9G6 addressContStreet(String addressContStreet); + @Parameter(name = "AddressContZipCode") + MWF9G6 addressContZipCode(String addressContZipCode); + @Parameter(name = "AddressCountry") + MWF9G6 addressCountry(String addressCountry); + @Parameter(name = "AddressEmpCity") + MWF9G6 addressEmpCity(String addressEmpCity); + @Parameter(name = "AddressEmpCountry") + MWF9G6 addressEmpCountry(String addressEmpCountry); + @Parameter(name = "AddressEmpHouseNumber") + MWF9G6 addressEmpHouseNumber(String addressEmpHouseNumber); + @Parameter(name = "AddressEmpLandRegistryNumber") + MWF9G6 addressEmpLandRegistryNumber(String addressEmpLandRegistryNumber); + @Parameter(name = "AddressEmpStreet") + MWF9G6 addressEmpStreet(String addressEmpStreet); + @Parameter(name = "AddressEmpZipCode") + MWF9G6 addressEmpZipCode(String addressEmpZipCode); + @Parameter(name = "AddressHouseNumber") + MWF9G6 addressHouseNumber(String addressHouseNumber); + @Parameter(name = "AddressLandRegistryNumber") + MWF9G6 addressLandRegistryNumber(String addressLandRegistryNumber); + @Parameter(name = "AddressStreet") + MWF9G6 addressStreet(String addressStreet); + @Parameter(name = "AddressZipCode") + MWF9G6 addressZipCode(String addressZipCode); + @Parameter(name = "BirthCountry") + MWF9G6 birthCountry(String birthCountry); + @Parameter(name = "BirthDate") + MWF9G6 birthDate(java.util.Date birthDate); + @Parameter(name = "BirthNumber") + MWF9G6 birthNumber(String birthNumber); + @Parameter(name = "BirthPlace") + MWF9G6 birthPlace(String birthPlace); + @Parameter(name = "BranchId") + MWF9G6 branchId(String branchId); + @Parameter(name = "BrokerId") + MWF9G6 brokerId(String brokerId); + @Parameter(name = "CIF") + MWF9G6 cif(String cif); + @Parameter(name = "ChannelId") + MWF9G6 channelId(String channelId); + @Parameter(name = "Consent101SignDate") + MWF9G6 consent101SignDate(java.util.Date consent101SignDate); + @Parameter(name = "ConsentUDCflag") + MWF9G6 consentUDCflag(Long consentUDCflag); + @Parameter(name = "DependPersonsCount") + MWF9G6 dependPersonsCount(Long dependPersonsCount); + @Parameter(name = "EducationType") + MWF9G6 educationType(String educationType); + @Parameter(name = "Email") + MWF9G6 email(String email); + @Parameter(name = "EmployeeProcessRole") + MWF9G6 employeeProcessRole(String employeeProcessRole); + @Parameter(name = "EmployeeRoleId") + MWF9G6 employeeRoleId(String employeeRoleId); + @Parameter(name = "EmploymentId") + MWF9G6 employmentId(String employmentId); + @Parameter(name = "EmploymentName") + MWF9G6 employmentName(String employmentName); + @Parameter(name = "EmploymentNotice") + MWF9G6 employmentNotice(Long employmentNotice); + @Parameter(name = "EmploymentSince") + MWF9G6 employmentSince(java.util.Date employmentSince); + @Parameter(name = "EmploymentTerminationNotice") + MWF9G6 employmentTerminationNotice(Long employmentTerminationNotice); + @Parameter(name = "EmploymentTrial") + MWF9G6 employmentTrial(Long employmentTrial); + @Parameter(name = "EmploymentType") + MWF9G6 employmentType(String employmentType); + @Parameter(name = "EmploymentUntil") + MWF9G6 employmentUntil(java.util.Date employmentUntil); + @Parameter(name = "ExpressOnly") + MWF9G6 expressOnly(String expressOnly); + @Parameter(name = "FamilyBusinessFlag") + MWF9G6 familyBusinessFlag(Long familyBusinessFlag); + @Parameter(name = "HousingType") + MWF9G6 housingType(String housingType); + @Parameter(name = "IDCard2Number") + MWF9G6 iDCard2Number(String iDCard2Number); + @Parameter(name = "IDCard2PublishingCountry") + MWF9G6 iDCard2PublishingCountry(String iDCard2PublishingCountry); + @Parameter(name = "IDCard2Type") + MWF9G6 iDCard2Type(String iDCard2Type); + @Parameter(name = "IDCard2ValidTo") + MWF9G6 iDCard2ValidTo(java.util.Date iDCard2ValidTo); + @Parameter(name = "IDCard3Type") + MWF9G6 iDCard3Type(String iDCard3Type); + @Parameter(name = "IDCardNumber") + MWF9G6 iDCardNumber(String iDCardNumber); + @Parameter(name = "IDCardPublishingCountry") + MWF9G6 iDCardPublishingCountry(String iDCardPublishingCountry); + @Parameter(name = "IDCardType") + MWF9G6 iDCardType(String iDCardType); + @Parameter(name = "IDCardValidTo") + MWF9G6 iDCardValidTo(java.util.Date iDCardValidTo); + @Parameter(name = "IncomeAverageThreeMonths") + MWF9G6 incomeAverageThreeMonths(Double incomeAverageThreeMonths); + @Parameter(name = "IncomeDocumentType") + MWF9G6 incomeDocumentType(String incomeDocumentType); + @Parameter(name = "IncomeDocumentType2") + MWF9G6 incomeDocumentType2(String incomeDocumentType2); + @Parameter(name = "IncomeDocumentType3") + MWF9G6 incomeDocumentType3(String incomeDocumentType3); + @Parameter(name = "IncomeFamily") + MWF9G6 incomeFamily(Double incomeFamily); + @Parameter(name = "IncomesCount") + MWF9G6 incomesCount(Long incomesCount); + @Parameter(name = "LoanAmount") + MWF9G6 loanAmount(Double loanAmount); + @Parameter(name = "LoanDefferedInstalmentMonths") + MWF9G6 loanDefferedInstalmentMonths(Long loanDefferedInstalmentMonths); + @Parameter(name = "LoanInstalmentAmount") + MWF9G6 loanInstalmentAmount(Double loanInstalmentAmount); + @Parameter(name = "LoanInsuranceType") + MWF9G6 loanInsuranceType(String loanInsuranceType); + @Parameter(name = "LoanRegularInstalmentDay") + MWF9G6 loanRegularInstalmentDay(Long loanRegularInstalmentDay); + @Parameter(name = "LoanTerm") + MWF9G6 loanTerm(Long loanTerm); + @Parameter(name = "MaritalAssets") + MWF9G6 maritalAssets(String maritalAssets); + @Parameter(name = "MaritalState") + MWF9G6 maritalState(String maritalState); + @Parameter(name = "MaritalStateVerification") + MWF9G6 maritalStateVerification(String maritalStateVerification); + @Parameter(name = "Name") + MWF9G6 name(String name); + @Parameter(name = "Nationality") + MWF9G6 nationality(String nationality); + @Parameter(name = "Occupation") + MWF9G6 occupation(String occupation); + @Parameter(name = "OtherLivingExpenses") + MWF9G6 otherLivingExpenses(Long otherLivingExpenses); + @Parameter(name = "OtherMonthlyPayments") + MWF9G6 otherMonthlyPayments(Long otherMonthlyPayments); + @Parameter(name = "PhoneNumber") + MWF9G6 phoneNumber(String phoneNumber); + @Parameter(name = "Sex") + MWF9G6 sex(String sex); + @Parameter(name = "ShareOfPrftFamilyBus") + MWF9G6 shareOfPrftFamilyBus(Double shareOfPrftFamilyBus); + @Parameter(name = "SpecialCode") + MWF9G6 specialCode(String specialCode); + @Parameter(name = "SpecialCodeReasonId") + MWF9G6 specialCodeReasonId(String specialCodeReasonId); + @Parameter(name = "SpecialCodeReasonNote") + MWF9G6 specialCodeReasonNote(String specialCodeReasonNote); + @Parameter(name = "Surname") + MWF9G6 surname(String surname); + @Parameter(name = "TaxBase") + MWF9G6 taxBase(Double taxBase); + @Parameter(name = "TaxCrOnlyFlag") + MWF9G6 taxCrOnlyFlag(Long taxCrOnlyFlag); + @Parameter(name = "TaxToPayLastYear") + MWF9G6 taxToPayLastYear(Double taxToPayLastYear); + @Parameter(name = "TaxYear") + MWF9G6 taxYear(Long taxYear); + @Parameter(name = "TaxableIncomeLastYear") + MWF9G6 taxableIncomeLastYear(Double taxableIncomeLastYear); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G6Response.java new file mode 100644 index 0000000..8412ce7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G6Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9G6Response { + + @Parameter(name = "ProdPackageKeyExpressOnly") + Long prodPackageKeyExpressOnly(); + + @Parameter(name = "ProdPackageKeyNoExpress") + Long prodPackageKeyNoExpress(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G9.java new file mode 100644 index 0000000..de306e5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G9.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF9G9 extends MwfRequest { + + @Parameter(name = "FaInitiall") + MWF9G9 faInitiall(Double faInitiall); + @Parameter(name = "FaMonthly") + MWF9G9 faMonthly(Double faMonthly); + @Parameter(name = "SRRI") + MWF9G9 srri(String srri); + @Parameter(name = "Term") + MWF9G9 term(Long term); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G9Response.java new file mode 100644 index 0000000..d28e835 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWF9G9Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF9G9Response { + + @Parameter(name = "FaTotal") + Double faTotal(); + + @Parameter(name = "YieldAmountMax") + Double yieldAmountMax(); + + @Parameter(name = "YieldAmountMin") + Double yieldAmountMin(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA80.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA80.java new file mode 100644 index 0000000..ba724f2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA80.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFA80 extends MwfRequest { + + @Parameter(name = "CisloKaretnihoUctu") + MWFA80 cisloKaretnihoUctu(Long cisloKaretnihoUctu); + @Parameter(name = "DruhKarty") + MWFA80 druhKarty(String druhKarty); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA80Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA80Data.java new file mode 100644 index 0000000..341ac17 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA80Data.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFA80Data { + + private Map params; + + public MWFA80Data(Map params) { + this.params = params; + } + + public java.util.Date rsDatumvypisu() { + return (java.util.Date) params.get("RS_DATUMVYPISU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA80Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA80Response.java new file mode 100644 index 0000000..6440ec4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA80Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFA80Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA85.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA85.java new file mode 100644 index 0000000..a3bb3b9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA85.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFA85 extends MwfRequest { + + @Parameter(name = "CisloKarty") + MWFA85 cisloKarty(Long cisloKarty); + @Parameter(name = "PINZdarma") + MWFA85 pINZdarma(String pINZdarma); + @Parameter(name = "SmartPINNumber") + MWFA85 smartPINNumber(String smartPINNumber); + @Parameter(name = "TelefonMobilni") + MWFA85 telefonMobilni(String telefonMobilni); + @Parameter(name = "VypnoutKontroly") + MWFA85 vypnoutKontroly(String vypnoutKontroly); + @Parameter(name = "ZpusobDistribucePIN") + MWFA85 zpusobDistribucePIN(String zpusobDistribucePIN); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA85Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA85Response.java new file mode 100644 index 0000000..b6c7f38 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA85Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFA85Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA86.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA86.java new file mode 100644 index 0000000..2a6ed5e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA86.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFA86 extends MwfRequest { + + @Parameter(name = "CIF") + MWFA86 cif(String cif); + @Parameter(name = "Cache_Pouzit") + MWFA86 cachePouzit(Long cachePouzit); + @Parameter(name = "Cache_Signature") + MWFA86 cacheSignature(String cacheSignature); + @Parameter(name = "Cache_SystemID") + MWFA86 cacheSystemID(String cacheSystemID); + @Parameter(name = "CisloKarty") + MWFA86 cisloKarty(Long cisloKarty); + @Parameter(name = "DrzitelRC") + MWFA86 drzitelRC(String drzitelRC); + @Parameter(name = "DuvodAkce") + MWFA86 duvodAkce(String duvodAkce); + @Parameter(name = "DuvodOdblokovani") + MWFA86 duvodOdblokovani(String duvodOdblokovani); + @Parameter(name = "KontextKontrol") + MWFA86 kontextKontrol(String kontextKontrol); + @Parameter(name = "OdblokokaceKaretnihoUctu") + MWFA86 odblokokaceKaretnihoUctu(String odblokokaceKaretnihoUctu); + @Parameter(name = "Urednik") + MWFA86 urednik(String urednik); + @Parameter(name = "VypnoutKontroly") + MWFA86 vypnoutKontroly(String vypnoutKontroly); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA86Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA86Response.java new file mode 100644 index 0000000..10e17de --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA86Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFA86Response { + + @Parameter(name = "Cache_RequestID") + String cacheRequestID(); + + @Parameter(name = "OnlineFlag") + String onlineFlag(); + + @Parameter(name = "VysledekKontrol") + String vysledekKontrol(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA89.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA89.java new file mode 100644 index 0000000..26d4e3b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA89.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFA89 extends MwfRequest { + + @Parameter(name = "CastkaDo") + MWFA89 castkaDo(Double castkaDo); + @Parameter(name = "CastkaOd") + MWFA89 castkaOd(Double castkaOd); + @Parameter(name = "CisloKaretnihoUctu") + MWFA89 cisloKaretnihoUctu(Long cisloKaretnihoUctu); + @Parameter(name = "CisloKarty") + MWFA89 cisloKarty(String cisloKarty); + @Parameter(name = "DatumTransakceDo") + MWFA89 datumTransakceDo(java.util.Date datumTransakceDo); + @Parameter(name = "DatumTransakceOd") + MWFA89 datumTransakceOd(java.util.Date datumTransakceOd); + @Parameter(name = "DatumVypisu") + MWFA89 datumVypisu(java.util.Date datumVypisu); + @Parameter(name = "DruhKarty") + MWFA89 druhKarty(String druhKarty); + @Parameter(name = "PotlacitCashBack") + MWFA89 potlacitCashBack(String potlacitCashBack); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA89Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA89Data.java new file mode 100644 index 0000000..a554443 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA89Data.java @@ -0,0 +1,129 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFA89Data { + + private Map params; + + public MWFA89Data(Map params) { + this.params = params; + } + + public java.util.Date rsDatumtransakce() { + return (java.util.Date) params.get("RS_DATUMTRANSAKCE"); + } + + public java.util.Date rsDatumzauctovani() { + return (java.util.Date) params.get("RS_DATUMZAUCTOVANI"); + } + + public Double rsCastka() { + return (Double) params.get("RS_CASTKA"); + } + + public String rsTyptransakce() { + return (String) params.get("RS_TYPTRANSAKCE"); + } + + public String rsKreditniplan() { + return (String) params.get("RS_KREDITNIPLAN"); + } + + public String rsPopis() { + return (String) params.get("RS_POPIS"); + } + + public String rsAutorizacnikod() { + return (String) params.get("RS_AUTORIZACNIKOD"); + } + + public String rsUcet() { + return (String) params.get("RS_UCET"); + } + + public Long rsId() { + return (Long) params.get("RS_ID"); + } + + public java.util.Date rsDatumpristihovypisu() { + return (java.util.Date) params.get("RS_DATUMPRISTIHOVYPISU"); + } + + public java.util.Date rsDatumzauctovanivevls() { + return (java.util.Date) params.get("RS_DATUMZAUCTOVANIVEVLS"); + } + + public Long rsPocetbodu() { + return (Long) params.get("RS_POCETBODU"); + } + + public String rsProgram() { + return (String) params.get("RS_PROGRAM"); + } + + public Double rsCastkadual() { + return (Double) params.get("RS_CASTKADUAL"); + } + + public Double rsOdmeny() { + return (Double) params.get("RS_ODMENY"); + } + + public String rsApiTyptxn() { + return (String) params.get("RS_API_TYPTXN"); + } + + public String rsApiKodtxn() { + return (String) params.get("RS_API_KODTXN"); + } + + public String rsCisloobchodnika() { + return (String) params.get("RS_CISLOOBCHODNIKA"); + } + + public String rsCisloprodejnyobchodnika() { + return (String) params.get("RS_CISLOPRODEJNYOBCHODNIKA"); + } + + public String rsDatumprichoduplatby() { + return (String) params.get("RS_DATUMPRICHODUPLATBY"); + } + + public String rsCislouctudebet() { + return (String) params.get("RS_CISLOUCTUDEBET"); + } + + public String rsSpecifickysymbol() { + return (String) params.get("RS_SPECIFICKYSYMBOL"); + } + + public String rsCislokarty() { + return (String) params.get("RS_CISLOKARTY"); + } + + public String rsBarva() { + return (String) params.get("RS_BARVA"); + } + + public String rsCislokartymask() { + return (String) params.get("RS_CISLOKARTYMASK"); + } + + public String rsKodbanky() { + return (String) params.get("RS_KODBANKY"); + } + + public String rsVariabilnisymbol() { + return (String) params.get("RS_VARIABILNISYMBOL"); + } + + public String rsCislouctu() { + return (String) params.get("RS_CISLOUCTU"); + } + + public String rsZdrojtransakce() { + return (String) params.get("RS_ZDROJTRANSAKCE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA89Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA89Response.java new file mode 100644 index 0000000..95202d7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA89Response.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFA89Response { + + @Parameter(name = "CelkovaSplatnaSplatka") + Double celkovaSplatnaSplatka(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "DatumGenerovaniVypisu") + java.util.Date datumGenerovaniVypisu(); + + @Parameter(name = "DisponibilniZustatek") + Double disponibilniZustatek(); + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "SplatkaBezneObdobi") + Double splatkaBezneObdobi(); + + @Parameter(name = "SplatkaMinuleObdobi") + Double splatkaMinuleObdobi(); + + @Parameter(name = "VyseVycerpanehoRamceKonec") + Double vyseVycerpanehoRamceKonec(); + + @Parameter(name = "VyseVycerpanehoRamceZacatek") + Double vyseVycerpanehoRamceZacatek(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA90.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA90.java new file mode 100644 index 0000000..8acf6a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA90.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFA90 extends MwfRequest { + + @Parameter(name = "CastkaDo") + MWFA90 castkaDo(Double castkaDo); + @Parameter(name = "CastkaOd") + MWFA90 castkaOd(Double castkaOd); + @Parameter(name = "CisloKaretnihoUctu") + MWFA90 cisloKaretnihoUctu(Long cisloKaretnihoUctu); + @Parameter(name = "CisloKarty") + MWFA90 cisloKarty(String cisloKarty); + @Parameter(name = "DatumTransakceDo") + MWFA90 datumTransakceDo(java.util.Date datumTransakceDo); + @Parameter(name = "DatumTransakceOd") + MWFA90 datumTransakceOd(java.util.Date datumTransakceOd); + @Parameter(name = "DruhKarty") + MWFA90 druhKarty(String druhKarty); + @Parameter(name = "PotlacitCashBack") + MWFA90 potlacitCashBack(String potlacitCashBack); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA90Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA90Data.java new file mode 100644 index 0000000..c5f59bc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA90Data.java @@ -0,0 +1,129 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFA90Data { + + private Map params; + + public MWFA90Data(Map params) { + this.params = params; + } + + public java.util.Date rsDatumtransakce() { + return (java.util.Date) params.get("RS_DATUMTRANSAKCE"); + } + + public java.util.Date rsDatumzauctovani() { + return (java.util.Date) params.get("RS_DATUMZAUCTOVANI"); + } + + public Double rsCastka() { + return (Double) params.get("RS_CASTKA"); + } + + public String rsTyptransakce() { + return (String) params.get("RS_TYPTRANSAKCE"); + } + + public String rsKreditniplan() { + return (String) params.get("RS_KREDITNIPLAN"); + } + + public String rsPopis() { + return (String) params.get("RS_POPIS"); + } + + public String rsAutorizacnikod() { + return (String) params.get("RS_AUTORIZACNIKOD"); + } + + public String rsUcet() { + return (String) params.get("RS_UCET"); + } + + public Long rsId() { + return (Long) params.get("RS_ID"); + } + + public java.util.Date rsDatumpristihovypisu() { + return (java.util.Date) params.get("RS_DATUMPRISTIHOVYPISU"); + } + + public java.util.Date rsDatumzauctovanivevls() { + return (java.util.Date) params.get("RS_DATUMZAUCTOVANIVEVLS"); + } + + public Long rsPocetbodu() { + return (Long) params.get("RS_POCETBODU"); + } + + public String rsProgram() { + return (String) params.get("RS_PROGRAM"); + } + + public Double rsCastkadual() { + return (Double) params.get("RS_CASTKADUAL"); + } + + public Double rsOdmeny() { + return (Double) params.get("RS_ODMENY"); + } + + public String rsApiTyptxn() { + return (String) params.get("RS_API_TYPTXN"); + } + + public String rsApiKodtxn() { + return (String) params.get("RS_API_KODTXN"); + } + + public String rsCisloobchodnika() { + return (String) params.get("RS_CISLOOBCHODNIKA"); + } + + public String rsCisloprodejnyobchodnika() { + return (String) params.get("RS_CISLOPRODEJNYOBCHODNIKA"); + } + + public String rsDatumprichoduplatby() { + return (String) params.get("RS_DATUMPRICHODUPLATBY"); + } + + public String rsCislouctudebet() { + return (String) params.get("RS_CISLOUCTUDEBET"); + } + + public String rsSpecifickysymbol() { + return (String) params.get("RS_SPECIFICKYSYMBOL"); + } + + public String rsCislokarty() { + return (String) params.get("RS_CISLOKARTY"); + } + + public String rsBarva() { + return (String) params.get("RS_BARVA"); + } + + public String rsCislokartymask() { + return (String) params.get("RS_CISLOKARTYMASK"); + } + + public String rsKodbanky() { + return (String) params.get("RS_KODBANKY"); + } + + public String rsVariabilnisymbol() { + return (String) params.get("RS_VARIABILNISYMBOL"); + } + + public String rsCislouctu() { + return (String) params.get("RS_CISLOUCTU"); + } + + public String rsZdrojtransakce() { + return (String) params.get("RS_ZDROJTRANSAKCE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA90Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA90Response.java new file mode 100644 index 0000000..916acc4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFA90Response.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFA90Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "UcetCisloBU") + String ucetCisloBU(); + + @Parameter(name = "UcetKodBanky") + String ucetKodBanky(); + + @Parameter(name = "UcetSpecifickySymbol") + Double ucetSpecifickySymbol(); + + @Parameter(name = "UcetZpusobUhrady") + String ucetZpusobUhrady(); + + @Parameter(name = "UcetZpusubUhradyJednoduchy") + String ucetZpusubUhradyJednoduchy(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAE1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAE1.java new file mode 100644 index 0000000..2bd90a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAE1.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAE1 extends MwfRequest { + + @Parameter(name = "Data") + MWFAE1 data(java.util.List data); + @Parameter(name = "InteractiveContractId") + MWFAE1 interactiveContractId(String interactiveContractId); + @Parameter(name = "InteractiveContractName") + MWFAE1 interactiveContractName(String interactiveContractName); + @Parameter(name = "InteractiveHolderRole") + MWFAE1 interactiveHolderRole(String interactiveHolderRole); + @Parameter(name = "InteractiveHolderUserName") + MWFAE1 interactiveHolderUserName(String interactiveHolderUserName); + @Parameter(name = "InteractiveState") + MWFAE1 interactiveState(String interactiveState); + @Parameter(name = "IsInteractive") + MWFAE1 isInteractive(String isInteractive); + @Parameter(name = "directPrintEnable") + MWFAE1 directPrintEnable(Long directPrintEnable); + @Parameter(name = "docType") + MWFAE1 docType(String docType); + @Parameter(name = "duplexMode") + MWFAE1 duplexMode(Long duplexMode); + @Parameter(name = "numberOfCopies") + MWFAE1 numberOfCopies(Long numberOfCopies); + @Parameter(name = "printDoc") + MWFAE1 printDoc(Long printDoc); + @Parameter(name = "printerAddress") + MWFAE1 printerAddress(String printerAddress); + @Parameter(name = "printerPort") + MWFAE1 printerPort(Long printerPort); + @Parameter(name = "rptData") + MWFAE1 rptData(String rptData); + @Parameter(name = "rptName") + MWFAE1 rptName(String rptName); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAE1Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAE1Data.java new file mode 100644 index 0000000..15a1953 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAE1Data.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFAE1Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFAE1Data() {} + + public static MWFAE1Data builder() { + return new MWFAE1Data(); + } + + public MWFAE1Data rsName(String rsName) { + params.put("RS_NAME", rsName); + return this; + } + + public MWFAE1Data rsValue(String rsValue) { + params.put("RS_VALUE", rsValue); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAE1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAE1Response.java new file mode 100644 index 0000000..4b5fdf5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAE1Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAE1Response { + + @Parameter(name = "InteractiveTicketId") + String interactiveTicketId(); + + @Parameter(name = "documentURL") + String documentURL(); + + @Parameter(name = "numberOfPages") + Long numberOfPages(); + + @Parameter(name = "result") + String result(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAG2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAG2.java new file mode 100644 index 0000000..4fdaccd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAG2.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAG2 extends MwfRequest { + + @Parameter(name = "INAPPL") + MWFAG2 inappl(Long inappl); + @Parameter(name = "INBANK") + MWFAG2 inbank(Long inbank); + @Parameter(name = "INCNBR") + MWFAG2 incnbr(String incnbr); + @Parameter(name = "INCURSOR") + MWFAG2 incursor(Long incursor); + @Parameter(name = "INROWS") + MWFAG2 inrows(Long inrows); + @Parameter(name = "INSTAT") + MWFAG2 instat(String instat); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAG2Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAG2Data.java new file mode 100644 index 0000000..f8ee240 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAG2Data.java @@ -0,0 +1,85 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFAG2Data { + + private Map params; + + public MWFAG2Data(Map params) { + this.params = params; + } + + public String rsOuappl() { + return (String) params.get("RS_OUAPPL"); + } + + public Long rsOutrantyp() { + return (Long) params.get("RS_OUTRANTYP"); + } + + public String rsOuappldesc() { + return (String) params.get("RS_OUAPPLDESC"); + } + + public String rsOusubtyp() { + return (String) params.get("RS_OUSUBTYP"); + } + + public String rsOustypdesc() { + return (String) params.get("RS_OUSTYPDESC"); + } + + public String rsOuacct() { + return (String) params.get("RS_OUACCT"); + } + + public String rsOuacex() { + return (String) params.get("RS_OUACEX"); + } + + public String rsOuxrel() { + return (String) params.get("RS_OUXREL"); + } + + public String rsOutype() { + return (String) params.get("RS_OUTYPE"); + } + + public String rsOudesc() { + return (String) params.get("RS_OUDESC"); + } + + public String rsOubrch() { + return (String) params.get("RS_OUBRCH"); + } + + public String rsOustat() { + return (String) params.get("RS_OUSTAT"); + } + + public String rsOucmcn() { + return (String) params.get("RS_OUCMCN"); + } + + public String rsOucurr() { + return (String) params.get("RS_OUCURR"); + } + + public java.util.Date rsOuopdt() { + return (java.util.Date) params.get("RS_OUOPDT"); + } + + public Double rsOubal() { + return (Double) params.get("RS_OUBAL"); + } + + public String rsOudist() { + return (String) params.get("RS_OUDIST"); + } + + public java.util.Date rsOucldt() { + return (java.util.Date) params.get("RS_OUCLDT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAG2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAG2Response.java new file mode 100644 index 0000000..fe0aac6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAG2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAG2Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAIL.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAIL.java new file mode 100644 index 0000000..4bf057e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAIL.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfRequest; +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.List; + +public interface MWFAIL extends MwfRequest { + + @Parameter(name = "Data") + MWFAIL data(List data); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAILDataIn.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAILDataIn.java new file mode 100644 index 0000000..293bc05 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAILDataIn.java @@ -0,0 +1,221 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.HashMap; +import java.util.Map; + +public class MWFAILDataIn implements MwfData { + + private Map params = new HashMap<>(); + + private MWFAILDataIn() {} + + public static MWFAILDataIn builder() { + return new MWFAILDataIn(); + } + + public MWFAILDataIn rsOurcdtype(String rsOurcdtype) { + params.put("RS_OURCDTYPE", rsOurcdtype); + return this; + } + + public MWFAILDataIn rsOuappl(String rsOuappl) { + params.put("RS_OUAPPL", rsOuappl); + return this; + } + + public MWFAILDataIn rsOutrantyp(Long rsOutrantyp) { + params.put("RS_OUTRANTYP", rsOutrantyp); + return this; + } + + public MWFAILDataIn rsOusubtyp(String rsOusubtyp) { + params.put("RS_OUSUBTYP", rsOusubtyp); + return this; + } + + public MWFAILDataIn rsOudesc(String rsOudesc) { + params.put("RS_OUDESC", rsOudesc); + return this; + } + + public MWFAILDataIn rsOutype(String rsOutype) { + params.put("RS_OUTYPE", rsOutype); + return this; + } + + public MWFAILDataIn rsOucrccnt(Long rsOucrccnt) { + params.put("RS_OUCRCCNT", rsOucrccnt); + return this; + } + + public MWFAILDataIn rsOuacct(String rsOuacct) { + params.put("RS_OUACCT", rsOuacct); + return this; + } + + public MWFAILDataIn rsOubrch(String rsOubrch) { + params.put("RS_OUBRCH", rsOubrch); + return this; + } + + public MWFAILDataIn rsOuxrel(String rsOuxrel) { + params.put("RS_OUXREL", rsOuxrel); + return this; + } + + public MWFAILDataIn rsOucurr(String rsOucurr) { + params.put("RS_OUCURR", rsOucurr); + return this; + } + + public MWFAILDataIn rsOubal(Double rsOubal) { + params.put("RS_OUBAL", rsOubal); + return this; + } + + public MWFAILDataIn rsOuiodl(Double rsOuiodl) { + params.put("RS_OUIODL", rsOuiodl); + return this; + } + + public MWFAILDataIn rsOuopdt(java.util.Date rsOuopdt) { + params.put("RS_OUOPDT", rsOuopdt); + return this; + } + + public MWFAILDataIn rsOudesc1(String rsOudesc1) { + params.put("RS_OUDESC_1", rsOudesc1); + return this; + } + + public MWFAILDataIn rsOuemn11(String rsOuemn11) { + params.put("RS_OUEMN1_1", rsOuemn11); + return this; + } + + public MWFAILDataIn rsOulpos1(Double rsOulpos1) { + params.put("RS_OULPOS_1", rsOulpos1); + return this; + } + + public MWFAILDataIn rsOulatm1(Double rsOulatm1) { + params.put("RS_OULATM_1", rsOulatm1); + return this; + } + + public MWFAILDataIn rsOudesc2(String rsOudesc2) { + params.put("RS_OUDESC_2", rsOudesc2); + return this; + } + + public MWFAILDataIn rsOuenm12(String rsOuenm12) { + params.put("RS_OUENM1_2", rsOuenm12); + return this; + } + + public MWFAILDataIn rsOulpos2(Double rsOulpos2) { + params.put("RS_OULPOS_2", rsOulpos2); + return this; + } + + public MWFAILDataIn rsOulatm2(Double rsOulatm2) { + params.put("RS_OULATM_2", rsOulatm2); + return this; + } + + public MWFAILDataIn rsOucdno2(String rsOucdno2) { + params.put("RS_OUCDNO_2", rsOucdno2); + return this; + } + + public MWFAILDataIn rsOucdstat2(String rsOucdstat2) { + params.put("RS_OUCDSTAT_2", rsOucdstat2); + return this; + } + + public MWFAILDataIn rsOucexd2(java.util.Date rsOucexd2) { + params.put("RS_OUCEXD_2", rsOucexd2); + return this; + } + + public MWFAILDataIn rsOulmtamts3(Double rsOulmtamts3) { + params.put("RS_OULMTAMTS_3", rsOulmtamts3); + return this; + } + + public MWFAILDataIn rsOutienr3(Long rsOutienr3) { + params.put("RS_OUTIENR_3", rsOutienr3); + return this; + } + + public MWFAILDataIn rsOucrtdte3(java.util.Date rsOucrtdte3) { + params.put("RS_OUCRTDTE_3", rsOucrtdte3); + return this; + } + + public MWFAILDataIn rsTypeufo(String rsTypeufo) { + params.put("RS_TYPEUFO", rsTypeufo); + return this; + } + + public MWFAILDataIn rsLogo2(String rsLogo2) { + params.put("RS_LOGO_2", rsLogo2); + return this; + } + + public MWFAILDataIn rsOuacex(String rsOuacex) { + params.put("RS_OUACEX", rsOuacex); + return this; + } + + public MWFAILDataIn rsOuavb(Double rsOuavb) { + params.put("RS_OUAVB", rsOuavb); + return this; + } + + public MWFAILDataIn rsSpiciucet(String rsSpiciucet) { + params.put("RS_SPICIUCET", rsSpiciucet); + return this; + } + + public MWFAILDataIn rsPoplatkovyplan(String rsPoplatkovyplan) { + params.put("RS_POPLATKOVYPLAN", rsPoplatkovyplan); + return this; + } + + public MWFAILDataIn rsTermtv(String rsTermtv) { + params.put("RS_TERMTV", rsTermtv); + return this; + } + + public MWFAILDataIn rsNazevuctu(String rsNazevuctu) { + params.put("RS_NAZEVUCTU", rsNazevuctu); + return this; + } + + public MWFAILDataIn rsOucens(String rsOucens) { + params.put("RS_OUCENS", rsOucens); + return this; + } + + public MWFAILDataIn rsOucdno2Mask(String rsOucdno2Mask) { + params.put("RS_OUCDNO_2_MASK", rsOucdno2Mask); + return this; + } + + public MWFAILDataIn rsIdentifikatoructu(String rsIdentifikatoructu) { + params.put("RS_IDENTIFIKATORUCTU", rsIdentifikatoructu); + return this; + } + + public MWFAILDataIn rsSpravaremedialem(String rsSpravaremedialem) { + params.put("RS_SPRAVAREMEDIALEM", rsSpravaremedialem); + return this; + } + + public Map getParams() { + return params; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAILDataOut.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAILDataOut.java new file mode 100644 index 0000000..aee8b98 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAILDataOut.java @@ -0,0 +1,173 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; +import lombok.Data; + +import java.util.Map; + +@Data +public class MWFAILDataOut implements MwfData { + + private Map params; + + public MWFAILDataOut(Map params) { + this.params = params; + } + + public String getRsOurcdtype() { + return (String) params.get("RS_OURCDTYPE"); + } + + public String getRsOuapple() { + return (String) params.get("RS_OUAPPL"); + } + + public Long getRsOutrantyp() { + return (Long) params.get("RS_OUTRANTYP"); + } + + public String getRsOusubtyp() { + return (String) params.get("RS_OUSUBTYP"); + } + + public String getRsOudesc() { + return (String) params.get("RS_OUDESC"); + } + + public String getRsOutype() { + return (String) params.get("RS_OUTYPE"); + } + + public Long getRsOucrccnt() { + return (Long) params.get("RS_OUCRCCNT"); + } + + public String getRsOuacct() { + return (String) params.get("RS_OUACCT"); + } + + public String getRsOubrch() { + return (String) params.get("RS_OUBRCH"); + } + + public String getRsOuxrel() { + return (String) params.get("RS_OUXREL"); + } + + public String getRsOucurr() { + return (String) params.get("RS_OUCURR"); + } + + public Double getRsOuiodl() { + return (Double) params.get("RS_OUIODL"); + } + + public java.util.Date getRsOuopdt() { + return (java.util.Date) params.get("RS_OUOPDT"); + } + + public String getRsOudesc1() { + return (String) params.get("RS_OUDESC_1"); + } + + public String getRsOuemn11() { + return (String) params.get("RS_OUEMN1_1"); + } + + public Double getRsOulpos1() { + return (Double) params.get("RS_OULPOS_1"); + } + + public Double getRsOulatm1() { + return (Double) params.get("RS_OULATM_1"); + } + + public String getRsOudesc2() { + return (String) params.get("RS_OUDESC_2"); + } + + public String getRsOuenm12() { + return (String) params.get("RS_OUENM1_2"); + } + + public Double getRsOulpos2() { + return (Double) params.get("RS_OULPOS_2"); + } + + public Double getRsOulatm2() { + return (Double) params.get("RS_OULPOS_2"); + } + + public String getRsOucdno2() { + return (String) params.get("RS_OUCDNO_2"); + } + + public String getRsOucdstat2() { + return (String) params.get("RS_OUCDSTAT_2"); + } + + public java.util.Date getRsOucexd2() { + return (java.util.Date) params.get("RS_OUCEXD_2"); + } + + public Double getRsOulmtamts3() { + return (Double) params.get("RS_OULMTAMTS_3"); + } + + public Long getRsOutienr3() { + return (Long) params.get("RS_OUTIENR_3"); + } + + public java.util.Date getRsOucrtdte3() { + return (java.util.Date) params.get("RS_OUCRTDTE_3"); + } + + public String getRsTypeufo() { + return (String) params.get("RS_TYPEUFO"); + } + + public String getRsLogo2() { + return (String) params.get("RS_LOGO_2"); + } + + public String getRsOuacex() { + return (String) params.get("RS_OUACEX"); + } + + public Double getRsOuavb() { + return (Double) params.get("RS_OUAVB"); + } + + public String getRsSpiciucet() { + return (String) params.get("RS_SPICIUCET"); + } + + public String getRsPoplatkovyplan() { + return (String) params.get("RS_POPLATKOVYPLAN"); + } + + public String getRsTermtv() { + return (String) params.get("RS_TERMTV"); + } + + public String getRsNazevuctu() { + return (String) params.get("RS_NAZEVUCTU"); + } + + public String getRsOucens() { + return (String) params.get("RS_OUCENS"); + } + + public String getRsOucdno2Mask() { + return (String) params.get("RS_OUCDNO_2_MASK"); + } + + public String getRsIdentifikatoructu() { + return (String) params.get("RS_IDENTIFIKATORUCTU"); + } + + public String getRsSpravaremedialem() { + return (String) params.get("RS_SPRAVAREMEDIALEM"); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAILResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAILResponse.java new file mode 100644 index 0000000..b2a027b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAILResponse.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.List; + +public interface MWFAILResponse { + + @Parameter(name = "Data") + List data(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAO1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAO1.java new file mode 100644 index 0000000..6178b9a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAO1.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAO1 extends MwfRequest { + + @Parameter(name = "CIF") + MWFAO1 cif(String cif); + @Parameter(name = "ICO") + MWFAO1 ico(String ico); + @Parameter(name = "PrivatniBankerFlag") + MWFAO1 privatniBankerFlag(String privatniBankerFlag); + @Parameter(name = "RC") + MWFAO1 rc(String rc); + @Parameter(name = "SRC_SYS_ID") + MWFAO1 srcSysId(String srcSysId); + @Parameter(name = "TypOsoby") + MWFAO1 typOsoby(String typOsoby); + @Parameter(name = "TypVazby") + MWFAO1 typVazby(String typVazby); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAO1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAO1Response.java new file mode 100644 index 0000000..8b97ab2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAO1Response.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAO1Response { + + @Parameter(name = "BITSFlag") + String bITSFlag(); + + @Parameter(name = "FXToolFlag") + String fXToolFlag(); + + @Parameter(name = "IDSegmentu") + Long iDSegmentu(); + + @Parameter(name = "MAFlag") + String mAFlag(); + + @Parameter(name = "MAStav") + String mAStav(); + + @Parameter(name = "OMAdresa") + String oMAdresa(); + + @Parameter(name = "OMNazev") + String oMNazev(); + + @Parameter(name = "PBFlag") + String pBFlag(); + + @Parameter(name = "PrivatniBankerJmeno") + String privatniBankerJmeno(); + + @Parameter(name = "PrivatniBankerOM") + String privatniBankerOM(); + + @Parameter(name = "PrivatniBankerPrijmeni") + String privatniBankerPrijmeni(); + + @Parameter(name = "PrivatniBankerSSO") + String privatniBankerSSO(); + + @Parameter(name = "PrivatniBankerTelefon") + String privatniBankerTelefon(); + + @Parameter(name = "SegmentID") + String segmentID(); + + @Parameter(name = "VIPFlag") + String vIPFlag(); + + @Parameter(name = "ZahranicniObchodFlag") + String zahranicniObchodFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAS5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAS5.java new file mode 100644 index 0000000..1256c0c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAS5.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAS5 extends MwfRequest { + + @Parameter(name = "CisloKarty") + MWFAS5 cisloKarty(Long cisloKarty); + @Parameter(name = "DataJenZVSN") + MWFAS5 dataJenZVSN(Long dataJenZVSN); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAS5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAS5Response.java new file mode 100644 index 0000000..1ef7372 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAS5Response.java @@ -0,0 +1,450 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAS5Response { + + @Parameter(name = "AVON") + String avon(); + + @Parameter(name = "AktivaceKarty") + String aktivaceKarty(); + + @Parameter(name = "BlokaceSmlouvy") + String blokaceSmlouvy(); + + @Parameter(name = "BlokaceSmlouvy2") + String blokaceSmlouvy2(); + + @Parameter(name = "CCKAktualniDluznost") + Double cCKAktualniDluznost(); + + @Parameter(name = "CCKBlokace101") + String cCKBlokace101(); + + @Parameter(name = "CCKDatumOdlokovani") + java.util.Date cCKDatumOdlokovani(); + + @Parameter(name = "CCKDatumZmenyAktDluznosti") + java.util.Date cCKDatumZmenyAktDluznosti(); + + @Parameter(name = "CCKDatumZmenyBlokace101") + java.util.Date cCKDatumZmenyBlokace101(); + + @Parameter(name = "CCKDatumZmenyPovoleniTransakci") + java.util.Date cCKDatumZmenyPovoleniTransakci(); + + @Parameter(name = "CCKHistorickaDluznost") + Double cCKHistorickaDluznost(); + + @Parameter(name = "CCKTransakcePovoleny") + String cCKTransakcePovoleny(); + + @Parameter(name = "CelkemDoplatit") + Double celkemDoplatit(); + + @Parameter(name = "Chip") + String chip(); + + @Parameter(name = "CisloBU") + String cisloBU(); + + @Parameter(name = "CisloInstantniKarty") + Long cisloInstantniKarty(); + + @Parameter(name = "CisloInstantniKartyMask") + String cisloInstantniKartyMask(); + + @Parameter(name = "CisloKaretnihoUctu") + Long cisloKaretnihoUctu(); + + @Parameter(name = "CisloKaretnihoUctuMask") + String cisloKaretnihoUctuMask(); + + @Parameter(name = "CisloKarty") + Long cisloKarty(); + + @Parameter(name = "CisloKartyMask") + String cisloKartyMask(); + + @Parameter(name = "CisloOKSmlouvy") + String cisloOKSmlouvy(); + + @Parameter(name = "CisloSmlouvy") + String cisloSmlouvy(); + + @Parameter(name = "DatumAktivaceIVR") + java.util.Date datumAktivaceIVR(); + + @Parameter(name = "DatumAutomatickehoZruseniKarty") + java.util.Date datumAutomatickehoZruseniKarty(); + + @Parameter(name = "DatumBlokace") + java.util.Date datumBlokace(); + + @Parameter(name = "DatumBlokaceSmlouvy") + java.util.Date datumBlokaceSmlouvy(); + + @Parameter(name = "DatumBlokaceSmlouvy2") + java.util.Date datumBlokaceSmlouvy2(); + + @Parameter(name = "DatumExpiraceKarty") + String datumExpiraceKarty(); + + @Parameter(name = "DatumExpiraceKartyFull") + java.util.Date datumExpiraceKartyFull(); + + @Parameter(name = "DatumExpiraceMinuleKarty") + java.util.Date datumExpiraceMinuleKarty(); + + @Parameter(name = "DatumMoznehoZruseniBU") + java.util.Date datumMoznehoZruseniBU(); + + @Parameter(name = "DatumOdblokovani") + java.util.Date datumOdblokovani(); + + @Parameter(name = "DatumOdeslaniPoslednihoVypisu") + java.util.Date datumOdeslaniPoslednihoVypisu(); + + @Parameter(name = "DatumOtevreniKaretnihoUctu") + java.util.Date datumOtevreniKaretnihoUctu(); + + @Parameter(name = "DatumPodpisuSmlouvy") + java.util.Date datumPodpisuSmlouvy(); + + @Parameter(name = "DatumPosledniSplatky") + java.util.Date datumPosledniSplatky(); + + @Parameter(name = "DatumPosledniZmeny") + java.util.Date datumPosledniZmeny(); + + @Parameter(name = "DatumPoslednihoVypisu") + java.util.Date datumPoslednihoVypisu(); + + @Parameter(name = "DatumPrijetiNaPodatelnu") + java.util.Date datumPrijetiNaPodatelnu(); + + @Parameter(name = "DatumPristihoVypisu") + java.util.Date datumPristihoVypisu(); + + @Parameter(name = "DatumSplatnosti") + java.util.Date datumSplatnosti(); + + @Parameter(name = "DatumVydaniKarty") + java.util.Date datumVydaniKarty(); + + @Parameter(name = "DenGenerovaniVypisu") + Long denGenerovaniVypisu(); + + @Parameter(name = "DisponibilniZustatek") + Double disponibilniZustatek(); + + @Parameter(name = "DisponibilniZustatekHotovost") + Double disponibilniZustatekHotovost(); + + @Parameter(name = "DodatkovaKarta") + String dodatkovaKarta(); + + @Parameter(name = "DruhKarty") + String druhKarty(); + + @Parameter(name = "DrzitelDatumNarozeni") + java.util.Date drzitelDatumNarozeni(); + + @Parameter(name = "DrzitelHeslo") + String drzitelHeslo(); + + @Parameter(name = "DrzitelHeslo_PriznakZmeny") + String drzitelHesloPriznakZmeny(); + + @Parameter(name = "DrzitelJmeno") + String drzitelJmeno(); + + @Parameter(name = "DrzitelRC") + String drzitelRC(); + + @Parameter(name = "DrzitelTelefon") + String drzitelTelefon(); + + @Parameter(name = "DrzitelTelefonMobilni") + String drzitelTelefonMobilni(); + + @Parameter(name = "DrzitelTelefonMobilniPredvolba") + String drzitelTelefonMobilniPredvolba(); + + @Parameter(name = "DrzitelTelefonPredvolba") + String drzitelTelefonPredvolba(); + + @Parameter(name = "DrzitelTelefonZamestnani") + String drzitelTelefonZamestnani(); + + @Parameter(name = "DrzitelTelefonZamestnaniPredvolba") + String drzitelTelefonZamestnaniPredvolba(); + + @Parameter(name = "DuvodBlokace") + String duvodBlokace(); + + @Parameter(name = "Email") + String email(); + + @Parameter(name = "ExpiraceFlag") + String expiraceFlag(); + + @Parameter(name = "FLIP2") + String flip2(); + + @Parameter(name = "FLIPKarta") + String fLIPKarta(); + + @Parameter(name = "FLIPSK") + String flipsk(); + + @Parameter(name = "Firma") + String firma(); + + @Parameter(name = "Internet") + String internet(); + + @Parameter(name = "KodBanky") + String kodBanky(); + + @Parameter(name = "KodKarty") + String kodKarty(); + + @Parameter(name = "LimitBankomat") + Double limitBankomat(); + + @Parameter(name = "LimitMOTOInternet") + Double limitMOTOInternet(); + + @Parameter(name = "LimitObchodnik") + Double limitObchodnik(); + + @Parameter(name = "LogoPuvodni") + Long logoPuvodni(); + + @Parameter(name = "MSISDN") + String msisdn(); + + @Parameter(name = "MajitelJmeno") + String majitelJmeno(); + + @Parameter(name = "MajitelOP") + String majitelOP(); + + @Parameter(name = "MajitelRC") + String majitelRC(); + + @Parameter(name = "MaxPocetTransakciDen") + Long maxPocetTransakciDen(); + + @Parameter(name = "MaxPocetTransakciDenATM") + Long maxPocetTransakciDenATM(); + + @Parameter(name = "MaxPocetTransakciDenIMT") + Long maxPocetTransakciDenIMT(); + + @Parameter(name = "MinimalniSplatka") + String minimalniSplatka(); + + @Parameter(name = "MultibrandStatus") + String multibrandStatus(); + + @Parameter(name = "PCTTabulka") + String pCTTabulka(); + + @Parameter(name = "PlasticID") + String plasticID(); + + @Parameter(name = "PocetNedorucenychVypisu") + Long pocetNedorucenychVypisu(); + + @Parameter(name = "PresnyDatumExpiraceKarty") + java.util.Date presnyDatumExpiraceKarty(); + + @Parameter(name = "ProvadenaAkce") + String provadenaAkce(); + + @Parameter(name = "RetenceObrat") + String retenceObrat(); + + @Parameter(name = "RetenceObratStara") + String retenceObratStara(); + + @Parameter(name = "RocniObrat") + Double rocniObrat(); + + @Parameter(name = "SmartPINAnoNe") + String smartPINAnoNe(); + + @Parameter(name = "SmartPINNumber") + String smartPINNumber(); + + @Parameter(name = "SmartPINPozadavek") + Long smartPINPozadavek(); + + @Parameter(name = "SpecifickySymbol") + String specifickySymbol(); + + @Parameter(name = "SplatnaMinimalniSplatka") + Double splatnaMinimalniSplatka(); + + @Parameter(name = "StavDodani") + String stavDodani(); + + @Parameter(name = "StavKarty") + String stavKarty(); + + @Parameter(name = "StavSmlouvy") + String stavSmlouvy(); + + @Parameter(name = "StavVycerpanehoRamce") + Double stavVycerpanehoRamce(); + + @Parameter(name = "TACO") + String taco(); + + @Parameter(name = "TACP") + String tacp(); + + @Parameter(name = "TAMesto") + String tAMesto(); + + @Parameter(name = "TAPSC") + String tapsc(); + + @Parameter(name = "TAUlice") + String tAUlice(); + + @Parameter(name = "TypKarty") + String typKarty(); + + @Parameter(name = "TypKartyLogo") + String typKartyLogo(); + + @Parameter(name = "TypKarty_Final") + String typKartyFinal(); + + @Parameter(name = "TypLimituATM") + String typLimituATM(); + + @Parameter(name = "TypLimituRetail") + String typLimituRetail(); + + @Parameter(name = "UrokovaSazbaBankomat") + Double urokovaSazbaBankomat(); + + @Parameter(name = "UrokovaSazbaObchodnik") + Double urokovaSazbaObchodnik(); + + @Parameter(name = "UrokovaSazbaPriznak") + String urokovaSazbaPriznak(); + + @Parameter(name = "UrokovaSazbaZvyhodnenaEndDate") + java.util.Date urokovaSazbaZvyhodnenaEndDate(); + + @Parameter(name = "UrokovaSazbaZvyhodnenaStartDate") + java.util.Date urokovaSazbaZvyhodnenaStartDate(); + + @Parameter(name = "UverovyRamec") + Double uverovyRamec(); + + @Parameter(name = "UverovyRamecHotovost") + Double uverovyRamecHotovost(); + + @Parameter(name = "VyberMimoEU") + String vyberMimoEU(); + + @Parameter(name = "VysePosledniSplatky") + Double vysePosledniSplatky(); + + @Parameter(name = "VysePrecerpaneCastky") + Double vysePrecerpaneCastky(); + + @Parameter(name = "VytlaceneJmeno") + String vytlaceneJmeno(); + + @Parameter(name = "VytlaceneJmeno2") + String vytlaceneJmeno2(); + + @Parameter(name = "ZACO") + String zaco(); + + @Parameter(name = "ZACP") + String zacp(); + + @Parameter(name = "ZAMesto") + String zAMesto(); + + @Parameter(name = "ZAPINCO") + String zapinco(); + + @Parameter(name = "ZAPINCP") + String zapincp(); + + @Parameter(name = "ZAPINObec") + String zAPINObec(); + + @Parameter(name = "ZAPINPSC") + String zapinpsc(); + + @Parameter(name = "ZAPINPosta") + String zAPINPosta(); + + @Parameter(name = "ZAPINUlice") + String zAPINUlice(); + + @Parameter(name = "ZAPSC") + String zapsc(); + + @Parameter(name = "ZAPosta") + String zAPosta(); + + @Parameter(name = "ZAUlice") + String zAUlice(); + + @Parameter(name = "ZAZeme") + String zAZeme(); + + @Parameter(name = "ZamCO") + String zamCO(); + + @Parameter(name = "ZamCP") + String zamCP(); + + @Parameter(name = "ZamICO") + String zamICO(); + + @Parameter(name = "ZamMesto") + String zamMesto(); + + @Parameter(name = "ZamNazev") + String zamNazev(); + + @Parameter(name = "ZamPSC") + String zamPSC(); + + @Parameter(name = "ZamUlice") + String zamUlice(); + + @Parameter(name = "ZpusobDistribucePIN") + String zpusobDistribucePIN(); + + @Parameter(name = "ZpusobDistribuceVypisu") + String zpusobDistribuceVypisu(); + + @Parameter(name = "ZpusobRuseni") + String zpusobRuseni(); + + @Parameter(name = "ZpusobUhrady") + String zpusobUhrady(); + + @Parameter(name = "ZpusobUhradyJednoduchy") + String zpusobUhradyJednoduchy(); + + @Parameter(name = "Zvyhodneni") + String zvyhodneni(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU2.java new file mode 100644 index 0000000..b8fdf87 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU2.java @@ -0,0 +1,232 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAU2 extends MwfRequest { + + @Parameter(name = "AktivacniHeslo") + MWFAU2 aktivacniHeslo(String aktivacniHeslo); + @Parameter(name = "AutorizacniLimit_Bezhotovostni") + MWFAU2 autorizacniLimitBezhotovostni(Double autorizacniLimitBezhotovostni); + @Parameter(name = "AutorizacniLimit_Hotovost") + MWFAU2 autorizacniLimitHotovost(Double autorizacniLimitHotovost); + @Parameter(name = "AutorizacniLimit_Internet") + MWFAU2 autorizacniLimitInternet(Double autorizacniLimitInternet); + @Parameter(name = "AutorizacniLimit_Procento") + MWFAU2 autorizacniLimitProcento(Double autorizacniLimitProcento); + @Parameter(name = "AutorizacniLimit_Typ") + MWFAU2 autorizacniLimitTyp(String autorizacniLimitTyp); + @Parameter(name = "AvonLadyID") + MWFAU2 avonLadyID(String avonLadyID); + @Parameter(name = "AvonLadyIDDop") + MWFAU2 avonLadyIDDop(String avonLadyIDDop); + @Parameter(name = "BUCisloUctu") + MWFAU2 bUCisloUctu(String bUCisloUctu); + @Parameter(name = "BUKodBanky") + MWFAU2 bUKodBanky(String bUKodBanky); + @Parameter(name = "BUMena") + MWFAU2 bUMena(String bUMena); + @Parameter(name = "BUPeriodaVypisu") + MWFAU2 bUPeriodaVypisu(String bUPeriodaVypisu); + @Parameter(name = "BUProduktKod") + MWFAU2 bUProduktKod(String bUProduktKod); + @Parameter(name = "BUSpecifickySymbol") + MWFAU2 bUSpecifickySymbol(String bUSpecifickySymbol); + @Parameter(name = "BUVariabilniSymbol") + MWFAU2 bUVariabilniSymbol(String bUVariabilniSymbol); + @Parameter(name = "BUZalozitNovyUcet") + MWFAU2 bUZalozitNovyUcet(String bUZalozitNovyUcet); + @Parameter(name = "BU_KEY") + MWFAU2 buKey(Long buKey); + @Parameter(name = "Benefit") + MWFAU2 benefit(String benefit); + @Parameter(name = "BezPritomnostiKlienta") + MWFAU2 bezPritomnostiKlienta(String bezPritomnostiKlienta); + @Parameter(name = "BrandKarty") + MWFAU2 brandKarty(String brandKarty); + @Parameter(name = "CastkaPrvnihoCerpani") + MWFAU2 castkaPrvnihoCerpani(Long castkaPrvnihoCerpani); + @Parameter(name = "CelkovaSplatnaCastka") + MWFAU2 celkovaSplatnaCastka(Double celkovaSplatnaCastka); + @Parameter(name = "Channel_ID") + MWFAU2 channelID(String channelID); + @Parameter(name = "CisloPojisteniING") + MWFAU2 cisloPojisteniING(String cisloPojisteniING); + @Parameter(name = "CisloSmlouvyVarianty") + MWFAU2 cisloSmlouvyVarianty(String cisloSmlouvyVarianty); + @Parameter(name = "CobrandKarty") + MWFAU2 cobrandKarty(String cobrandKarty); + @Parameter(name = "DatumPodpisuZadosti") + MWFAU2 datumPodpisuZadosti(java.util.Date datumPodpisuZadosti); + @Parameter(name = "DatumPodpisuZadosti_Kuryr") + MWFAU2 datumPodpisuZadostiKuryr(java.util.Date datumPodpisuZadostiKuryr); + @Parameter(name = "DatumPrepoctuUroku") + MWFAU2 datumPrepoctuUroku(java.util.Date datumPrepoctuUroku); + @Parameter(name = "DatumPrvniSplatky") + MWFAU2 datumPrvniSplatky(java.util.Date datumPrvniSplatky); + @Parameter(name = "DenInkasniSplatky") + MWFAU2 denInkasniSplatky(String denInkasniSplatky); + @Parameter(name = "DenZuctovacihoObdobi") + MWFAU2 denZuctovacihoObdobi(Long denZuctovacihoObdobi); + @Parameter(name = "DesignKarty") + MWFAU2 designKarty(String designKarty); + @Parameter(name = "DruhBusinessu") + MWFAU2 druhBusinessu(String druhBusinessu); + @Parameter(name = "FormLockStatus") + MWFAU2 formLockStatus(String formLockStatus); + @Parameter(name = "IB_ACCES_TYPE") + MWFAU2 ibAccesType(String ibAccesType); + @Parameter(name = "IB_SIGN_TYPE") + MWFAU2 ibSignType(String ibSignType); + @Parameter(name = "IDXselloveKampane") + MWFAU2 iDXselloveKampane(String iDXselloveKampane); + @Parameter(name = "IP_ADDRESS") + MWFAU2 ipAddress(String ipAddress); + @Parameter(name = "IdVLSBalicku") + MWFAU2 idVLSBalicku(String idVLSBalicku); + @Parameter(name = "IndexLinearnihoSplaceni") + MWFAU2 indexLinearnihoSplaceni(String indexLinearnihoSplaceni); + @Parameter(name = "InfolimitTyp") + MWFAU2 infolimitTyp(String infolimitTyp); + @Parameter(name = "Infolimit_ZavaznyPlatnost") + MWFAU2 infolimitZavaznyPlatnost(java.util.Date infolimitZavaznyPlatnost); + @Parameter(name = "Infolimit_ZavaznyVyse") + MWFAU2 infolimitZavaznyVyse(Double infolimitZavaznyVyse); + @Parameter(name = "KodProduktu") + MWFAU2 kodProduktu(String kodProduktu); + @Parameter(name = "KodProduktuSales") + MWFAU2 kodProduktuSales(String kodProduktuSales); + @Parameter(name = "Mena") + MWFAU2 mena(String mena); + @Parameter(name = "MesicniSplatka") + MWFAU2 mesicniSplatka(Double mesicniSplatka); + @Parameter(name = "MigraceBU_Flag") + MWFAU2 migraceBUFlag(String migraceBUFlag); + @Parameter(name = "MinProcentoSplatky") + MWFAU2 minProcentoSplatky(Double minProcentoSplatky); + @Parameter(name = "ObchodniMistoKod") + MWFAU2 obchodniMistoKod(String obchodniMistoKod); + @Parameter(name = "OdkladSplatek") + MWFAU2 odkladSplatek(String odkladSplatek); + @Parameter(name = "PocetSplatek") + MWFAU2 pocetSplatek(Long pocetSplatek); + @Parameter(name = "Pojisteni") + MWFAU2 pojisteni(String pojisteni); + @Parameter(name = "PojisteniPoplatek") + MWFAU2 pojisteniPoplatek(Double pojisteniPoplatek); + @Parameter(name = "PojisteniProtiZneuziti") + MWFAU2 pojisteniProtiZneuziti(String pojisteniProtiZneuziti); + @Parameter(name = "PojisteniVycerpaneCastky") + MWFAU2 pojisteniVycerpaneCastky(String pojisteniVycerpaneCastky); + @Parameter(name = "PoplatkovyPlan") + MWFAU2 poplatkovyPlan(String poplatkovyPlan); + @Parameter(name = "Posledni4Cislice") + MWFAU2 posledni4Cislice(String posledni4Cislice); + @Parameter(name = "PovoleniInetTransakci") + MWFAU2 povoleniInetTransakci(String povoleniInetTransakci); + @Parameter(name = "PracovnikMTSID") + MWFAU2 pracovnikMTSID(String pracovnikMTSID); + @Parameter(name = "PrimarniUrednikID") + MWFAU2 primarniUrednikID(String primarniUrednikID); + @Parameter(name = "PrimarniUrednikJmeno") + MWFAU2 primarniUrednikJmeno(String primarniUrednikJmeno); + @Parameter(name = "PrimarniUrednikPrijmeni") + MWFAU2 primarniUrednikPrijmeni(String primarniUrednikPrijmeni); + @Parameter(name = "PrimarniUrednikSSO") + MWFAU2 primarniUrednikSSO(String primarniUrednikSSO); + @Parameter(name = "PrimarniUrednik_KEY") + MWFAU2 primarniUrednikKEY(Long primarniUrednikKEY); + @Parameter(name = "PritomnyVsechnyOsoby") + MWFAU2 pritomnyVsechnyOsoby(String pritomnyVsechnyOsoby); + @Parameter(name = "PromoAkce") + MWFAU2 promoAkce(String promoAkce); + @Parameter(name = "RPSN") + MWFAU2 rpsn(Double rpsn); + @Parameter(name = "RazitkoObchodniZastupce") + MWFAU2 razitkoObchodniZastupce(Long razitkoObchodniZastupce); + @Parameter(name = "RetentcniProgramFlag") + MWFAU2 retentcniProgramFlag(String retentcniProgramFlag); + @Parameter(name = "RocniUrokovaSazbaCASH") + MWFAU2 rocniUrokovaSazbaCASH(Double rocniUrokovaSazbaCASH); + @Parameter(name = "SouhlasOPKCestovniPojisteniFlag") + MWFAU2 souhlasOPKCestovniPojisteniFlag(String souhlasOPKCestovniPojisteniFlag); + @Parameter(name = "SouhlasOPKFlag") + MWFAU2 souhlasOPKFlag(String souhlasOPKFlag); + @Parameter(name = "SouhlasOPKPojisteniSchopnostiPlatit") + MWFAU2 souhlasOPKPojisteniSchopnostiPlatit(String souhlasOPKPojisteniSchopnostiPlatit); + @Parameter(name = "SouhlasOPKZpusobUhradySplatek") + MWFAU2 souhlasOPKZpusobUhradySplatek(String souhlasOPKZpusobUhradySplatek); + @Parameter(name = "TechnologieKarty") + MWFAU2 technologieKarty(String technologieKarty); + @Parameter(name = "TypAsistencniSluzby") + MWFAU2 typAsistencniSluzby(String typAsistencniSluzby); + @Parameter(name = "TypFormulare") + MWFAU2 typFormulare(String typFormulare); + @Parameter(name = "TypKarty") + MWFAU2 typKarty(String typKarty); + @Parameter(name = "TypSlevy") + MWFAU2 typSlevy(String typSlevy); + @Parameter(name = "TypSplaceni") + MWFAU2 typSplaceni(String typSplaceni); + @Parameter(name = "UUMenaTopUP") + MWFAU2 uUMenaTopUP(String uUMenaTopUP); + @Parameter(name = "UUTopUPCislo") + MWFAU2 uUTopUPCislo(String uUTopUPCislo); + @Parameter(name = "UUTopUP_KEY") + MWFAU2 uUTopUPKEY(Long uUTopUPKEY); + @Parameter(name = "UcelUveru") + MWFAU2 ucelUveru(String ucelUveru); + @Parameter(name = "UrednikFunkce") + MWFAU2 urednikFunkce(String urednikFunkce); + @Parameter(name = "UrednikID") + MWFAU2 urednikID(String urednikID); + @Parameter(name = "UrednikJmeno") + MWFAU2 urednikJmeno(String urednikJmeno); + @Parameter(name = "UrednikPrijmeni") + MWFAU2 urednikPrijmeni(String urednikPrijmeni); + @Parameter(name = "UrednikSSO") + MWFAU2 urednikSSO(String urednikSSO); + @Parameter(name = "Urednik_KEY") + MWFAU2 urednikKEY(String urednikKEY); + @Parameter(name = "UrokovaSazba") + MWFAU2 urokovaSazba(Double urokovaSazba); + @Parameter(name = "VariantaTyp") + MWFAU2 variantaTyp(String variantaTyp); + @Parameter(name = "Varianta_KEY") + MWFAU2 variantaKEY(Long variantaKEY); + @Parameter(name = "VelikostZalohy") + MWFAU2 velikostZalohy(Double velikostZalohy); + @Parameter(name = "VernostniProgram") + MWFAU2 vernostniProgram(String vernostniProgram); + @Parameter(name = "VypisKeKonciMesice_Flag") + MWFAU2 vypisKeKonciMesiceFlag(String vypisKeKonciMesiceFlag); + @Parameter(name = "VysePosledniSplatky") + MWFAU2 vysePosledniSplatky(Double vysePosledniSplatky); + @Parameter(name = "VyseUpsellu") + MWFAU2 vyseUpsellu(Double vyseUpsellu); + @Parameter(name = "VyseUveru") + MWFAU2 vyseUveru(Long vyseUveru); + @Parameter(name = "WEB_BANNER") + MWFAU2 webBanner(String webBanner); + @Parameter(name = "WEB_PARTNER_ID") + MWFAU2 webPartnerId(String webPartnerId); + @Parameter(name = "ZadostKanalPorizeni") + MWFAU2 zadostKanalPorizeni(String zadostKanalPorizeni); + @Parameter(name = "ZadostSubtyp") + MWFAU2 zadostSubtyp(String zadostSubtyp); + @Parameter(name = "ZadostTyp") + MWFAU2 zadostTyp(String zadostTyp); + @Parameter(name = "Zadost_KEY") + MWFAU2 zadostKEY(Long zadostKEY); + @Parameter(name = "ZboziCena") + MWFAU2 zboziCena(Double zboziCena); + @Parameter(name = "ZboziDruh") + MWFAU2 zboziDruh(String zboziDruh); + @Parameter(name = "ZpusobDistribucePIN") + MWFAU2 zpusobDistribucePIN(String zpusobDistribucePIN); + @Parameter(name = "ZpusobDistribuceVypisu") + MWFAU2 zpusobDistribuceVypisu(String zpusobDistribuceVypisu); + @Parameter(name = "ZpusobUhradySplatek") + MWFAU2 zpusobUhradySplatek(String zpusobUhradySplatek); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU2Response.java new file mode 100644 index 0000000..835a79f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU2Response.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAU2Response { + + @Parameter(name = "BU_KEY") + Long buKey(); + + @Parameter(name = "PrimarniUrednik_KEY") + Long primarniUrednikKEY(); + + @Parameter(name = "UUTopUP_KEY") + Long uUTopUPKEY(); + + @Parameter(name = "Urednik_KEY") + String urednikKEY(); + + @Parameter(name = "Varianta_KEY") + Long variantaKEY(); + + @Parameter(name = "Zadost_KEY") + Long zadostKEY(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU9.java new file mode 100644 index 0000000..a327b29 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU9.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAU9 extends MwfRequest { + + @Parameter(name = "Data") + MWFAU9 data(java.util.List data); + @Parameter(name = "Pocet") + MWFAU9 pocet(Long pocet); + @Parameter(name = "Zadost_KEY") + MWFAU9 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU9Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU9Data.java new file mode 100644 index 0000000..29502a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU9Data.java @@ -0,0 +1,812 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFAU9Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFAU9Data() {} + + public static MWFAU9Data builder() { + return new MWFAU9Data(); + } + + public MWFAU9Data rsInstPtKey(Long rsInstPtKey) { + params.put("RS_INST_PT_KEY", rsInstPtKey); + return this; + } + + public MWFAU9Data rsKlientrole(String rsKlientrole) { + params.put("RS_KLIENTROLE", rsKlientrole); + return this; + } + + public MWFAU9Data rsPoradizadatele(Long rsPoradizadatele) { + params.put("RS_PORADIZADATELE", rsPoradizadatele); + return this; + } + + public MWFAU9Data rsRodnecislo(String rsRodnecislo) { + params.put("RS_RODNECISLO", rsRodnecislo); + return this; + } + + public MWFAU9Data rsPohlavi(String rsPohlavi) { + params.put("RS_POHLAVI", rsPohlavi); + return this; + } + + public MWFAU9Data rsTitulpred(String rsTitulpred) { + params.put("RS_TITULPRED", rsTitulpred); + return this; + } + + public MWFAU9Data rsJmenokrestni(String rsJmenokrestni) { + params.put("RS_JMENOKRESTNI", rsJmenokrestni); + return this; + } + + public MWFAU9Data rsDruhejmeno(String rsDruhejmeno) { + params.put("RS_DRUHEJMENO", rsDruhejmeno); + return this; + } + + public MWFAU9Data rsPrijmeni(String rsPrijmeni) { + params.put("RS_PRIJMENI", rsPrijmeni); + return this; + } + + public MWFAU9Data rsRodneprijmeni(String rsRodneprijmeni) { + params.put("RS_RODNEPRIJMENI", rsRodneprijmeni); + return this; + } + + public MWFAU9Data rsTitulza(String rsTitulza) { + params.put("RS_TITULZA", rsTitulza); + return this; + } + + public MWFAU9Data rsOsobnidoklad1Key(Long rsOsobnidoklad1Key) { + params.put("RS_OSOBNIDOKLAD1_KEY", rsOsobnidoklad1Key); + return this; + } + + public MWFAU9Data rsOsobnidoklad1typ(String rsOsobnidoklad1typ) { + params.put("RS_OSOBNIDOKLAD1TYP", rsOsobnidoklad1typ); + return this; + } + + public MWFAU9Data rsOsobnidoklad1cislo(String rsOsobnidoklad1cislo) { + params.put("RS_OSOBNIDOKLAD1CISLO", rsOsobnidoklad1cislo); + return this; + } + + public MWFAU9Data rsOsobnidoklad1platnostdo(java.util.Date rsOsobnidoklad1platnostdo) { + params.put("RS_OSOBNIDOKLAD1PLATNOSTDO", rsOsobnidoklad1platnostdo); + return this; + } + + public MWFAU9Data rsOsobnidoklad2Key(Long rsOsobnidoklad2Key) { + params.put("RS_OSOBNIDOKLAD2_KEY", rsOsobnidoklad2Key); + return this; + } + + public MWFAU9Data rsOsobnidoklad2typ(String rsOsobnidoklad2typ) { + params.put("RS_OSOBNIDOKLAD2TYP", rsOsobnidoklad2typ); + return this; + } + + public MWFAU9Data rsOsobnidoklad2cislo(String rsOsobnidoklad2cislo) { + params.put("RS_OSOBNIDOKLAD2CISLO", rsOsobnidoklad2cislo); + return this; + } + + public MWFAU9Data rsOsobnidoklad2platnostdo(java.util.Date rsOsobnidoklad2platnostdo) { + params.put("RS_OSOBNIDOKLAD2PLATNOSTDO", rsOsobnidoklad2platnostdo); + return this; + } + + public MWFAU9Data rsStatniprislusnost(String rsStatniprislusnost) { + params.put("RS_STATNIPRISLUSNOST", rsStatniprislusnost); + return this; + } + + public MWFAU9Data rsRezidenceflag(String rsRezidenceflag) { + params.put("RS_REZIDENCEFLAG", rsRezidenceflag); + return this; + } + + public MWFAU9Data rsEvidencnicislo(String rsEvidencnicislo) { + params.put("RS_EVIDENCNICISLO", rsEvidencnicislo); + return this; + } + + public MWFAU9Data rsKlienttypmkt(String rsKlienttypmkt) { + params.put("RS_KLIENTTYPMKT", rsKlienttypmkt); + return this; + } + + public MWFAU9Data rsKlientvztakkzadateli(String rsKlientvztakkzadateli) { + params.put("RS_KLIENTVZTAKKZADATELI", rsKlientvztakkzadateli); + return this; + } + + public MWFAU9Data rsSpolecnadomacnostflag(String rsSpolecnadomacnostflag) { + params.put("RS_SPOLECNADOMACNOSTFLAG", rsSpolecnadomacnostflag); + return this; + } + + public MWFAU9Data rsAdrkorAdresat(String rsAdrkorAdresat) { + params.put("RS_ADRKOR_ADRESAT", rsAdrkorAdresat); + return this; + } + + public MWFAU9Data rsAdrkorKey(Long rsAdrkorKey) { + params.put("RS_ADRKOR_KEY", rsAdrkorKey); + return this; + } + + public MWFAU9Data rsAdrkorUlice(String rsAdrkorUlice) { + params.put("RS_ADRKOR_ULICE", rsAdrkorUlice); + return this; + } + + public MWFAU9Data rsAdrkorCp(String rsAdrkorCp) { + params.put("RS_ADRKOR_CP", rsAdrkorCp); + return this; + } + + public MWFAU9Data rsAdrkorCo(String rsAdrkorCo) { + params.put("RS_ADRKOR_CO", rsAdrkorCo); + return this; + } + + public MWFAU9Data rsAdrkorObec(String rsAdrkorObec) { + params.put("RS_ADRKOR_OBEC", rsAdrkorObec); + return this; + } + + public MWFAU9Data rsAdrkorPsc(String rsAdrkorPsc) { + params.put("RS_ADRKOR_PSC", rsAdrkorPsc); + return this; + } + + public MWFAU9Data rsAdrkorPosta(String rsAdrkorPosta) { + params.put("RS_ADRKOR_POSTA", rsAdrkorPosta); + return this; + } + + public MWFAU9Data rsTelefonkontaktniKey(Long rsTelefonkontaktniKey) { + params.put("RS_TELEFONKONTAKTNI_KEY", rsTelefonkontaktniKey); + return this; + } + + public MWFAU9Data rsTelefonkontaktni(String rsTelefonkontaktni) { + params.put("RS_TELEFONKONTAKTNI", rsTelefonkontaktni); + return this; + } + + public MWFAU9Data rsAdrkorZeme(String rsAdrkorZeme) { + params.put("RS_ADRKOR_ZEME", rsAdrkorZeme); + return this; + } + + public MWFAU9Data rsAdrkorDokladtyp(String rsAdrkorDokladtyp) { + params.put("RS_ADRKOR_DOKLADTYP", rsAdrkorDokladtyp); + return this; + } + + public MWFAU9Data rsAdrkorDokladdatumvystaveni(java.util.Date rsAdrkorDokladdatumvystaveni) { + params.put("RS_ADRKOR_DOKLADDATUMVYSTAVENI", rsAdrkorDokladdatumvystaveni); + return this; + } + + public MWFAU9Data rsAdrkorDokladKey(Long rsAdrkorDokladKey) { + params.put("RS_ADRKOR_DOKLAD_KEY", rsAdrkorDokladKey); + return this; + } + + public MWFAU9Data rsTelefonmobilniKey(Long rsTelefonmobilniKey) { + params.put("RS_TELEFONMOBILNI_KEY", rsTelefonmobilniKey); + return this; + } + + public MWFAU9Data rsTelefonmobilni(String rsTelefonmobilni) { + params.put("RS_TELEFONMOBILNI", rsTelefonmobilni); + return this; + } + + public MWFAU9Data rsAdrtrvAdresat(String rsAdrtrvAdresat) { + params.put("RS_ADRTRV_ADRESAT", rsAdrtrvAdresat); + return this; + } + + public MWFAU9Data rsAdrtrvKey(Long rsAdrtrvKey) { + params.put("RS_ADRTRV_KEY", rsAdrtrvKey); + return this; + } + + public MWFAU9Data rsAdrtrvUlice(String rsAdrtrvUlice) { + params.put("RS_ADRTRV_ULICE", rsAdrtrvUlice); + return this; + } + + public MWFAU9Data rsAdrtrvCp(String rsAdrtrvCp) { + params.put("RS_ADRTRV_CP", rsAdrtrvCp); + return this; + } + + public MWFAU9Data rsAdrtrvCo(String rsAdrtrvCo) { + params.put("RS_ADRTRV_CO", rsAdrtrvCo); + return this; + } + + public MWFAU9Data rsAdrtrvObec(String rsAdrtrvObec) { + params.put("RS_ADRTRV_OBEC", rsAdrtrvObec); + return this; + } + + public MWFAU9Data rsAdrtrvPsc(String rsAdrtrvPsc) { + params.put("RS_ADRTRV_PSC", rsAdrtrvPsc); + return this; + } + + public MWFAU9Data rsAdrtrvPosta(String rsAdrtrvPosta) { + params.put("RS_ADRTRV_POSTA", rsAdrtrvPosta); + return this; + } + + public MWFAU9Data rsAdrtrvZeme(String rsAdrtrvZeme) { + params.put("RS_ADRTRV_ZEME", rsAdrtrvZeme); + return this; + } + + public MWFAU9Data rsTelefonpevnaKey(Long rsTelefonpevnaKey) { + params.put("RS_TELEFONPEVNA_KEY", rsTelefonpevnaKey); + return this; + } + + public MWFAU9Data rsTelefonpevna(String rsTelefonpevna) { + params.put("RS_TELEFONPEVNA", rsTelefonpevna); + return this; + } + + public MWFAU9Data rsEmailKey(Long rsEmailKey) { + params.put("RS_EMAIL_KEY", rsEmailKey); + return this; + } + + public MWFAU9Data rsEmail(String rsEmail) { + params.put("RS_EMAIL", rsEmail); + return this; + } + + public MWFAU9Data rsDatumnastehovanirok(Long rsDatumnastehovanirok) { + params.put("RS_DATUMNASTEHOVANIROK", rsDatumnastehovanirok); + return this; + } + + public MWFAU9Data rsStavrodinny(String rsStavrodinny) { + params.put("RS_STAVRODINNY", rsStavrodinny); + return this; + } + + public MWFAU9Data rsDruhbydleni(String rsDruhbydleni) { + params.put("RS_DRUHBYDLENI", rsDruhbydleni); + return this; + } + + public MWFAU9Data rsVzdelani(String rsVzdelani) { + params.put("RS_VZDELANI", rsVzdelani); + return this; + } + + public MWFAU9Data rsPracovnipomer(String rsPracovnipomer) { + params.put("RS_PRACOVNIPOMER", rsPracovnipomer); + return this; + } + + public MWFAU9Data rsDatumpracovnipomerdo(java.util.Date rsDatumpracovnipomerdo) { + params.put("RS_DATUMPRACOVNIPOMERDO", rsDatumpracovnipomerdo); + return this; + } + + public MWFAU9Data rsZamnazev(String rsZamnazev) { + params.put("RS_ZAMNAZEV", rsZamnazev); + return this; + } + + public MWFAU9Data rsZamico(String rsZamico) { + params.put("RS_ZAMICO", rsZamico); + return this; + } + + public MWFAU9Data rsZamzeme(String rsZamzeme) { + params.put("RS_ZAMZEME", rsZamzeme); + return this; + } + + public MWFAU9Data rsZamadrAdresat(String rsZamadrAdresat) { + params.put("RS_ZAMADR_ADRESAT", rsZamadrAdresat); + return this; + } + + public MWFAU9Data rsZamadrKey(Long rsZamadrKey) { + params.put("RS_ZAMADR_KEY", rsZamadrKey); + return this; + } + + public MWFAU9Data rsZamadrUlice(String rsZamadrUlice) { + params.put("RS_ZAMADR_ULICE", rsZamadrUlice); + return this; + } + + public MWFAU9Data rsZamadrCp(String rsZamadrCp) { + params.put("RS_ZAMADR_CP", rsZamadrCp); + return this; + } + + public MWFAU9Data rsZamadrCo(String rsZamadrCo) { + params.put("RS_ZAMADR_CO", rsZamadrCo); + return this; + } + + public MWFAU9Data rsZamadrObec(String rsZamadrObec) { + params.put("RS_ZAMADR_OBEC", rsZamadrObec); + return this; + } + + public MWFAU9Data rsZamadrPsc(String rsZamadrPsc) { + params.put("RS_ZAMADR_PSC", rsZamadrPsc); + return this; + } + + public MWFAU9Data rsZamadrPosta(String rsZamadrPosta) { + params.put("RS_ZAMADR_POSTA", rsZamadrPosta); + return this; + } + + public MWFAU9Data rsTelefonzamkontaktniKey(Long rsTelefonzamkontaktniKey) { + params.put("RS_TELEFONZAMKONTAKTNI_KEY", rsTelefonzamkontaktniKey); + return this; + } + + public MWFAU9Data rsTelefonzamkontaktni(String rsTelefonzamkontaktni) { + params.put("RS_TELEFONZAMKONTAKTNI", rsTelefonzamkontaktni); + return this; + } + + public MWFAU9Data rsTelefonzammobilKey(Long rsTelefonzammobilKey) { + params.put("RS_TELEFONZAMMOBIL_KEY", rsTelefonzammobilKey); + return this; + } + + public MWFAU9Data rsTelefonzammobil(String rsTelefonzammobil) { + params.put("RS_TELEFONZAMMOBIL", rsTelefonzammobil); + return this; + } + + public MWFAU9Data rsZamadrZeme(String rsZamadrZeme) { + params.put("RS_ZAMADR_ZEME", rsZamadrZeme); + return this; + } + + public MWFAU9Data rsPovolani(String rsPovolani) { + params.put("RS_POVOLANI", rsPovolani); + return this; + } + + public MWFAU9Data rsDatumzamod(java.util.Date rsDatumzamod) { + params.put("RS_DATUMZAMOD", rsDatumzamod); + return this; + } + + public MWFAU9Data rsCistymesicprijem3m(Double rsCistymesicprijem3m) { + params.put("RS_CISTYMESICPRIJEM3M", rsCistymesicprijem3m); + return this; + } + + public MWFAU9Data rsHrubyrocniprijem(Double rsHrubyrocniprijem) { + params.put("RS_HRUBYROCNIPRIJEM", rsHrubyrocniprijem); + return this; + } + + public MWFAU9Data rsZakladdane(Double rsZakladdane) { + params.put("RS_ZAKLADDANE", rsZakladdane); + return this; + } + + public MWFAU9Data rsZakladdanerok(Long rsZakladdanerok) { + params.put("RS_ZAKLADDANEROK", rsZakladdanerok); + return this; + } + + public MWFAU9Data rsJinemessplatky(Double rsJinemessplatky) { + params.put("RS_JINEMESSPLATKY", rsJinemessplatky); + return this; + } + + public MWFAU9Data rsPocetvyzivovanychosob(Long rsPocetvyzivovanychosob) { + params.put("RS_POCETVYZIVOVANYCHOSOB", rsPocetvyzivovanychosob); + return this; + } + + public MWFAU9Data rsCelkovyprijemdom(Double rsCelkovyprijemdom) { + params.put("RS_CELKOVYPRIJEMDOM", rsCelkovyprijemdom); + return this; + } + + public MWFAU9Data rsSrazkyzemzdy(Double rsSrazkyzemzdy) { + params.put("RS_SRAZKYZEMZDY", rsSrazkyzemzdy); + return this; + } + + public MWFAU9Data rsPocetpotvrzeniprijmu(Long rsPocetpotvrzeniprijmu) { + params.put("RS_POCETPOTVRZENIPRIJMU", rsPocetpotvrzeniprijmu); + return this; + } + + public MWFAU9Data rsCif(String rsCif) { + params.put("RS_CIF", rsCif); + return this; + } + + public MWFAU9Data rsVztahklientakbance(String rsVztahklientakbance) { + params.put("RS_VZTAHKLIENTAKBANCE", rsVztahklientakbance); + return this; + } + + public MWFAU9Data rsDatumpodpisu101(java.util.Date rsDatumpodpisu101) { + params.put("RS_DATUMPODPISU101", rsDatumpodpisu101); + return this; + } + + public MWFAU9Data rsSouhlas101flag(String rsSouhlas101flag) { + params.put("RS_SOUHLAS101FLAG", rsSouhlas101flag); + return this; + } + + public MWFAU9Data rsSouhlasecbstav(String rsSouhlasecbstav) { + params.put("RS_SOUHLASECBSTAV", rsSouhlasecbstav); + return this; + } + + public MWFAU9Data rsIco(String rsIco) { + params.put("RS_ICO", rsIco); + return this; + } + + public MWFAU9Data rsMena(String rsMena) { + params.put("RS_MENA", rsMena); + return this; + } + + public MWFAU9Data rsKlientsmazflag(Long rsKlientsmazflag) { + params.put("RS_KLIENTSMAZFLAG", rsKlientsmazflag); + return this; + } + + public MWFAU9Data rsGeEmployeeFlag(String rsGeEmployeeFlag) { + params.put("RS_GE_EMPLOYEE_FLAG", rsGeEmployeeFlag); + return this; + } + + public MWFAU9Data rsDatumnarozeni(java.util.Date rsDatumnarozeni) { + params.put("RS_DATUMNAROZENI", rsDatumnarozeni); + return this; + } + + public MWFAU9Data rsMistonarozeni(String rsMistonarozeni) { + params.put("RS_MISTONAROZENI", rsMistonarozeni); + return this; + } + + public MWFAU9Data rsVztahkavonu(String rsVztahkavonu) { + params.put("RS_VZTAHKAVONU", rsVztahkavonu); + return this; + } + + public MWFAU9Data rsOsobnidoklad2Zeme(String rsOsobnidoklad2Zeme) { + params.put("RS_OSOBNIDOKLAD2_ZEME", rsOsobnidoklad2Zeme); + return this; + } + + public MWFAU9Data rsTypbyznysu(String rsTypbyznysu) { + params.put("RS_TYPBYZNYSU", rsTypbyznysu); + return this; + } + + public MWFAU9Data rsOsobnidoklad1Zeme(String rsOsobnidoklad1Zeme) { + params.put("RS_OSOBNIDOKLAD1_ZEME", rsOsobnidoklad1Zeme); + return this; + } + + public MWFAU9Data rsZahranicnizam(String rsZahranicnizam) { + params.put("RS_ZAHRANICNIZAM", rsZahranicnizam); + return this; + } + + public MWFAU9Data rsAdrkorOverenokuryrem(String rsAdrkorOverenokuryrem) { + params.put("RS_ADRKOR_OVERENOKURYREM", rsAdrkorOverenokuryrem); + return this; + } + + public MWFAU9Data rsAdrtrvOverenokuryrem(String rsAdrtrvOverenokuryrem) { + params.put("RS_ADRTRV_OVERENOKURYREM", rsAdrtrvOverenokuryrem); + return this; + } + + public MWFAU9Data rsZamadrOverenokuryrem(String rsZamadrOverenokuryrem) { + params.put("RS_ZAMADR_OVERENOKURYREM", rsZamadrOverenokuryrem); + return this; + } + + public MWFAU9Data rsTyppobytu(String rsTyppobytu) { + params.put("RS_TYPPOBYTU", rsTyppobytu); + return this; + } + + public MWFAU9Data rsCistymesicprijem3mKey(Long rsCistymesicprijem3mKey) { + params.put("RS_CISTYMESICPRIJEM3M_KEY", rsCistymesicprijem3mKey); + return this; + } + + public MWFAU9Data rsZakladdaneKey(Long rsZakladdaneKey) { + params.put("RS_ZAKLADDANE_KEY", rsZakladdaneKey); + return this; + } + + public MWFAU9Data rsHrubyrocniprijemKey(Long rsHrubyrocniprijemKey) { + params.put("RS_HRUBYROCNIPRIJEM_KEY", rsHrubyrocniprijemKey); + return this; + } + + public MWFAU9Data rsCelkovyprijemdomKey(Long rsCelkovyprijemdomKey) { + params.put("RS_CELKOVYPRIJEMDOM_KEY", rsCelkovyprijemdomKey); + return this; + } + + public MWFAU9Data rsKlienttyp(String rsKlienttyp) { + params.put("RS_KLIENTTYP", rsKlienttyp); + return this; + } + + public MWFAU9Data rsZivlistflag(String rsZivlistflag) { + params.put("RS_ZIVLISTFLAG", rsZivlistflag); + return this; + } + + public MWFAU9Data rsBezdlflag(String rsBezdlflag) { + params.put("RS_BEZDLFLAG", rsBezdlflag); + return this; + } + + public MWFAU9Data rsAdrkorDokladprohlaseniflag(String rsAdrkorDokladprohlaseniflag) { + params.put("RS_ADRKOR_DOKLADPROHLASENIFLAG", rsAdrkorDokladprohlaseniflag); + return this; + } + + public MWFAU9Data rsZaloha2(String rsZaloha2) { + params.put("RS_ZALOHA2", rsZaloha2); + return this; + } + + public MWFAU9Data rsZaloha1(String rsZaloha1) { + params.put("RS_ZALOHA1", rsZaloha1); + return this; + } + + public MWFAU9Data rsZivlistRqdocKey(Long rsZivlistRqdocKey) { + params.put("RS_ZIVLIST_RQDOC_KEY", rsZivlistRqdocKey); + return this; + } + + public MWFAU9Data rsZivlistDocKey(Long rsZivlistDocKey) { + params.put("RS_ZIVLIST_DOC_KEY", rsZivlistDocKey); + return this; + } + + public MWFAU9Data rsAdrkorDokladRqdocKey(Long rsAdrkorDokladRqdocKey) { + params.put("RS_ADRKOR_DOKLAD_RQDOC_KEY", rsAdrkorDokladRqdocKey); + return this; + } + + public MWFAU9Data rsBezdlDocKey(Long rsBezdlDocKey) { + params.put("RS_BEZDL_DOC_KEY", rsBezdlDocKey); + return this; + } + + public MWFAU9Data rsBezdlDatumvystaveni(java.util.Date rsBezdlDatumvystaveni) { + params.put("RS_BEZDL_DATUMVYSTAVENI", rsBezdlDatumvystaveni); + return this; + } + + public MWFAU9Data rsZivlistDatumvystaveni(java.util.Date rsZivlistDatumvystaveni) { + params.put("RS_ZIVLIST_DATUMVYSTAVENI", rsZivlistDatumvystaveni); + return this; + } + + public MWFAU9Data rsAdrkorDokladsmazflag(String rsAdrkorDokladsmazflag) { + params.put("RS_ADRKOR_DOKLADSMAZFLAG", rsAdrkorDokladsmazflag); + return this; + } + + public MWFAU9Data rsZivlistSmazflag(String rsZivlistSmazflag) { + params.put("RS_ZIVLIST_SMAZFLAG", rsZivlistSmazflag); + return this; + } + + public MWFAU9Data rsBezdlSmazflag(String rsBezdlSmazflag) { + params.put("RS_BEZDL_SMAZFLAG", rsBezdlSmazflag); + return this; + } + + public MWFAU9Data rsBezdlRqdocKey(Long rsBezdlRqdocKey) { + params.put("RS_BEZDL_RQDOC_KEY", rsBezdlRqdocKey); + return this; + } + + public MWFAU9Data rsDatumnastehovanidatum(java.util.Date rsDatumnastehovanidatum) { + params.put("RS_DATUMNASTEHOVANIDATUM", rsDatumnastehovanidatum); + return this; + } + + public MWFAU9Data rsPovolanityp(String rsPovolanityp) { + params.put("RS_POVOLANITYP", rsPovolanityp); + return this; + } + + public MWFAU9Data rsDuvodrozhodnutitext(String rsDuvodrozhodnutitext) { + params.put("RS_DUVODROZHODNUTITEXT", rsDuvodrozhodnutitext); + return this; + } + + public MWFAU9Data rsDuvodrozhodnutichybaflag(String rsDuvodrozhodnutichybaflag) { + params.put("RS_DUVODROZHODNUTICHYBAFLAG", rsDuvodrozhodnutichybaflag); + return this; + } + + public MWFAU9Data rsDanovepriznaniDokladsmazflag(String rsDanovepriznaniDokladsmazflag) { + params.put("RS_DANOVEPRIZNANI_DOKLADSMAZFLAG", rsDanovepriznaniDokladsmazflag); + return this; + } + + public MWFAU9Data rsDanovepriznaniDokladRqdocKey(Long rsDanovepriznaniDokladRqdocKey) { + params.put("RS_DANOVEPRIZNANI_DOKLAD_RQDOC_KEY", rsDanovepriznaniDokladRqdocKey); + return this; + } + + public MWFAU9Data rsDanovepriznaniDokladdatumvystaveni(java.util.Date rsDanovepriznaniDokladdatumvystaveni) { + params.put("RS_DANOVEPRIZNANI_DOKLADDATUMVYSTAVENI", rsDanovepriznaniDokladdatumvystaveni); + return this; + } + + public MWFAU9Data rsDanovepriznaniDokladKey(Long rsDanovepriznaniDokladKey) { + params.put("RS_DANOVEPRIZNANI_DOKLAD_KEY", rsDanovepriznaniDokladKey); + return this; + } + + public MWFAU9Data rsDanovepriznaniDokladflag(String rsDanovepriznaniDokladflag) { + params.put("RS_DANOVEPRIZNANI_DOKLADFLAG", rsDanovepriznaniDokladflag); + return this; + } + + public MWFAU9Data rsPotvrzeniprijmuDokladKey(Long rsPotvrzeniprijmuDokladKey) { + params.put("RS_POTVRZENIPRIJMU_DOKLAD_KEY", rsPotvrzeniprijmuDokladKey); + return this; + } + + public MWFAU9Data rsPotvrzeniprijmuDokladRqdocKey(Long rsPotvrzeniprijmuDokladRqdocKey) { + params.put("RS_POTVRZENIPRIJMU_DOKLAD_RQDOC_KEY", rsPotvrzeniprijmuDokladRqdocKey); + return this; + } + + public MWFAU9Data rsPotvrzeniprijmuDokladSmazflag(String rsPotvrzeniprijmuDokladSmazflag) { + params.put("RS_POTVRZENIPRIJMU_DOKLAD_SMAZFLAG", rsPotvrzeniprijmuDokladSmazflag); + return this; + } + + public MWFAU9Data rsPotvrzeniprijmuDokladTyp(String rsPotvrzeniprijmuDokladTyp) { + params.put("RS_POTVRZENIPRIJMU_DOKLAD_TYP", rsPotvrzeniprijmuDokladTyp); + return this; + } + + public MWFAU9Data rsEvidencnicisloDuvod(String rsEvidencnicisloDuvod) { + params.put("RS_EVIDENCNICISLO_DUVOD", rsEvidencnicisloDuvod); + return this; + } + + public MWFAU9Data rsEvidencnicisloKomentar(String rsEvidencnicisloKomentar) { + params.put("RS_EVIDENCNICISLO_KOMENTAR", rsEvidencnicisloKomentar); + return this; + } + + public MWFAU9Data rsStavrodinnyovereni(String rsStavrodinnyovereni) { + params.put("RS_STAVRODINNYOVERENI", rsStavrodinnyovereni); + return this; + } + + public MWFAU9Data rsNfcMsisdn(String rsNfcMsisdn) { + params.put("RS_NFC_MSISDN", rsNfcMsisdn); + return this; + } + + public MWFAU9Data rsNfcMsisdnKey(Long rsNfcMsisdnKey) { + params.put("RS_NFC_MSISDN_KEY", rsNfcMsisdnKey); + return this; + } + + public MWFAU9Data rsZuzenesjm(String rsZuzenesjm) { + params.put("RS_ZUZENESJM", rsZuzenesjm); + return this; + } + + public MWFAU9Data rsRodinnyzavod(String rsRodinnyzavod) { + params.put("RS_RODINNYZAVOD", rsRodinnyzavod); + return this; + } + + public MWFAU9Data rsRodinnyzavodpodil(Double rsRodinnyzavodpodil) { + params.put("RS_RODINNYZAVODPODIL", rsRodinnyzavodpodil); + return this; + } + + public MWFAU9Data rsOstatnizivotninaklady(Double rsOstatnizivotninaklady) { + params.put("RS_OSTATNIZIVOTNINAKLADY", rsOstatnizivotninaklady); + return this; + } + + public MWFAU9Data rsVydatkartukuveru(String rsVydatkartukuveru) { + params.put("RS_VYDATKARTUKUVERU", rsVydatkartukuveru); + return this; + } + + public MWFAU9Data rsPrijmyRadek101(Double rsPrijmyRadek101) { + params.put("RS_PRIJMY_RADEK101", rsPrijmyRadek101); + return this; + } + + public MWFAU9Data rsZkusebnidoba(String rsZkusebnidoba) { + params.put("RS_ZKUSEBNIDOBA", rsZkusebnidoba); + return this; + } + + public MWFAU9Data rsVypovednilhuta(String rsVypovednilhuta) { + params.put("RS_VYPOVEDNILHUTA", rsVypovednilhuta); + return this; + } + + public MWFAU9Data rsBirthCntryId(String rsBirthCntryId) { + params.put("RS_BIRTH_CNTRY_ID", rsBirthCntryId); + return this; + } + + public MWFAU9Data rsTaxCrOnlyFlag(Long rsTaxCrOnlyFlag) { + params.put("RS_TAX_CR_ONLY_FLAG", rsTaxCrOnlyFlag); + return this; + } + + public MWFAU9Data rsVydajenavyzivovaneosoby(Double rsVydajenavyzivovaneosoby) { + params.put("RS_VYDAJENAVYZIVOVANEOSOBY", rsVydajenavyzivovaneosoby); + return this; + } + + public MWFAU9Data rsPrijmynavyzivovaneosoby(Double rsPrijmynavyzivovaneosoby) { + params.put("RS_PRIJMYNAVYZIVOVANEOSOBY", rsPrijmynavyzivovaneosoby); + return this; + } + + public MWFAU9Data rsDanzalonskyrok(Double rsDanzalonskyrok) { + params.put("RS_DANZALONSKYROK", rsDanzalonskyrok); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU9Response.java new file mode 100644 index 0000000..fb0614e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAU9Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAU9Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV1.java new file mode 100644 index 0000000..35a83a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV1.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAV1 extends MwfRequest { + + @Parameter(name = "DuvodRozhodnuti_TypTextu") + MWFAV1 duvodRozhodnutiTypTextu(String duvodRozhodnutiTypTextu); + @Parameter(name = "INST_PT_KEY_IN") + MWFAV1 instPtKeyIn(Long instPtKeyIn); + @Parameter(name = "KlientRole") + MWFAV1 klientRole(String klientRole); + @Parameter(name = "VERIF_KONTEXT") + MWFAV1 verifKontext(String verifKontext); + @Parameter(name = "Zadost_KEY") + MWFAV1 zadostKEY(Long zadostKEY); + @Parameter(name = "ZobrazitDuvodRozhodnutiProExpresmana") + MWFAV1 zobrazitDuvodRozhodnutiProExpresmana(Long zobrazitDuvodRozhodnutiProExpresmana); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV1Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV1Data.java new file mode 100644 index 0000000..6bccb23 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV1Data.java @@ -0,0 +1,645 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFAV1Data { + + private Map params; + + public MWFAV1Data(Map params) { + this.params = params; + } + + public Long rsInstPtKey() { + return (Long) params.get("RS_INST_PT_KEY"); + } + + public String rsKlientrole() { + return (String) params.get("RS_KLIENTROLE"); + } + + public Long rsPoradizadatele() { + return (Long) params.get("RS_PORADIZADATELE"); + } + + public String rsRodnecislo() { + return (String) params.get("RS_RODNECISLO"); + } + + public String rsPohlavi() { + return (String) params.get("RS_POHLAVI"); + } + + public String rsTitulpred() { + return (String) params.get("RS_TITULPRED"); + } + + public String rsJmenokrestni() { + return (String) params.get("RS_JMENOKRESTNI"); + } + + public String rsDruhejmeno() { + return (String) params.get("RS_DRUHEJMENO"); + } + + public String rsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public String rsRodneprijmeni() { + return (String) params.get("RS_RODNEPRIJMENI"); + } + + public String rsTitulza() { + return (String) params.get("RS_TITULZA"); + } + + public Long rsOsobnidoklad1Key() { + return (Long) params.get("RS_OSOBNIDOKLAD1_KEY"); + } + + public String rsOsobnidoklad1typ() { + return (String) params.get("RS_OSOBNIDOKLAD1TYP"); + } + + public String rsOsobnidoklad1cislo() { + return (String) params.get("RS_OSOBNIDOKLAD1CISLO"); + } + + public java.util.Date rsOsobnidoklad1platnostdo() { + return (java.util.Date) params.get("RS_OSOBNIDOKLAD1PLATNOSTDO"); + } + + public Long rsOsobnidoklad2Key() { + return (Long) params.get("RS_OSOBNIDOKLAD2_KEY"); + } + + public String rsOsobnidoklad2typ() { + return (String) params.get("RS_OSOBNIDOKLAD2TYP"); + } + + public String rsOsobnidoklad2cislo() { + return (String) params.get("RS_OSOBNIDOKLAD2CISLO"); + } + + public java.util.Date rsOsobnidoklad2platnostdo() { + return (java.util.Date) params.get("RS_OSOBNIDOKLAD2PLATNOSTDO"); + } + + public String rsStatniprislusnost() { + return (String) params.get("RS_STATNIPRISLUSNOST"); + } + + public String rsRezidenceflag() { + return (String) params.get("RS_REZIDENCEFLAG"); + } + + public String rsEvidencnicislo() { + return (String) params.get("RS_EVIDENCNICISLO"); + } + + public String rsKlienttypmkt() { + return (String) params.get("RS_KLIENTTYPMKT"); + } + + public String rsKlientvztakkzadateli() { + return (String) params.get("RS_KLIENTVZTAKKZADATELI"); + } + + public String rsSpolecnadomacnostflag() { + return (String) params.get("RS_SPOLECNADOMACNOSTFLAG"); + } + + public String rsAdrkorAdresat() { + return (String) params.get("RS_ADRKOR_ADRESAT"); + } + + public Long rsAdrkorKey() { + return (Long) params.get("RS_ADRKOR_KEY"); + } + + public String rsAdrkorUlice() { + return (String) params.get("RS_ADRKOR_ULICE"); + } + + public String rsAdrkorCp() { + return (String) params.get("RS_ADRKOR_CP"); + } + + public String rsAdrkorCo() { + return (String) params.get("RS_ADRKOR_CO"); + } + + public String rsAdrkorObec() { + return (String) params.get("RS_ADRKOR_OBEC"); + } + + public String rsAdrkorPsc() { + return (String) params.get("RS_ADRKOR_PSC"); + } + + public String rsAdrkorPosta() { + return (String) params.get("RS_ADRKOR_POSTA"); + } + + public Long rsTelefonkontaktniKey() { + return (Long) params.get("RS_TELEFONKONTAKTNI_KEY"); + } + + public String rsTelefonkontaktni() { + return (String) params.get("RS_TELEFONKONTAKTNI"); + } + + public String rsAdrkorZeme() { + return (String) params.get("RS_ADRKOR_ZEME"); + } + + public String rsAdrkorDokladtyp() { + return (String) params.get("RS_ADRKOR_DOKLADTYP"); + } + + public java.util.Date rsAdrkorDokladdatumvystaveni() { + return (java.util.Date) params.get("RS_ADRKOR_DOKLADDATUMVYSTAVENI"); + } + + public Long rsAdrkorDokladKey() { + return (Long) params.get("RS_ADRKOR_DOKLAD_KEY"); + } + + public Long rsTelefonmobilniKey() { + return (Long) params.get("RS_TELEFONMOBILNI_KEY"); + } + + public String rsTelefonmobilni() { + return (String) params.get("RS_TELEFONMOBILNI"); + } + + public String rsAdrtrvAdresat() { + return (String) params.get("RS_ADRTRV_ADRESAT"); + } + + public Long rsAdrtrvKey() { + return (Long) params.get("RS_ADRTRV_KEY"); + } + + public String rsAdrtrvUlice() { + return (String) params.get("RS_ADRTRV_ULICE"); + } + + public String rsAdrtrvCp() { + return (String) params.get("RS_ADRTRV_CP"); + } + + public String rsAdrtrvCo() { + return (String) params.get("RS_ADRTRV_CO"); + } + + public String rsAdrtrvObec() { + return (String) params.get("RS_ADRTRV_OBEC"); + } + + public String rsAdrtrvPsc() { + return (String) params.get("RS_ADRTRV_PSC"); + } + + public String rsAdrtrvPosta() { + return (String) params.get("RS_ADRTRV_POSTA"); + } + + public String rsAdrtrvZeme() { + return (String) params.get("RS_ADRTRV_ZEME"); + } + + public Long rsTelefonpevnaKey() { + return (Long) params.get("RS_TELEFONPEVNA_KEY"); + } + + public String rsTelefonpevna() { + return (String) params.get("RS_TELEFONPEVNA"); + } + + public Long rsEmailKey() { + return (Long) params.get("RS_EMAIL_KEY"); + } + + public String rsEmail() { + return (String) params.get("RS_EMAIL"); + } + + public Long rsDatumnastehovanirok() { + return (Long) params.get("RS_DATUMNASTEHOVANIROK"); + } + + public String rsStavrodinny() { + return (String) params.get("RS_STAVRODINNY"); + } + + public String rsDruhbydleni() { + return (String) params.get("RS_DRUHBYDLENI"); + } + + public String rsVzdelani() { + return (String) params.get("RS_VZDELANI"); + } + + public String rsPracovnipomer() { + return (String) params.get("RS_PRACOVNIPOMER"); + } + + public java.util.Date rsDatumpracovnipomerdo() { + return (java.util.Date) params.get("RS_DATUMPRACOVNIPOMERDO"); + } + + public String rsZamnazev() { + return (String) params.get("RS_ZAMNAZEV"); + } + + public String rsZamico() { + return (String) params.get("RS_ZAMICO"); + } + + public String rsZamzeme() { + return (String) params.get("RS_ZAMZEME"); + } + + public String rsZamadrAdresat() { + return (String) params.get("RS_ZAMADR_ADRESAT"); + } + + public Long rsZamadrKey() { + return (Long) params.get("RS_ZAMADR_KEY"); + } + + public String rsZamadrUlice() { + return (String) params.get("RS_ZAMADR_ULICE"); + } + + public String rsZamadrCp() { + return (String) params.get("RS_ZAMADR_CP"); + } + + public String rsZamadrCo() { + return (String) params.get("RS_ZAMADR_CO"); + } + + public String rsZamadrObec() { + return (String) params.get("RS_ZAMADR_OBEC"); + } + + public String rsZamadrPsc() { + return (String) params.get("RS_ZAMADR_PSC"); + } + + public String rsZamadrPosta() { + return (String) params.get("RS_ZAMADR_POSTA"); + } + + public Long rsTelefonzamkontaktniKey() { + return (Long) params.get("RS_TELEFONZAMKONTAKTNI_KEY"); + } + + public String rsTelefonzamkontaktni() { + return (String) params.get("RS_TELEFONZAMKONTAKTNI"); + } + + public Long rsTelefonzammobilKey() { + return (Long) params.get("RS_TELEFONZAMMOBIL_KEY"); + } + + public String rsTelefonzammobil() { + return (String) params.get("RS_TELEFONZAMMOBIL"); + } + + public String rsZamadrZeme() { + return (String) params.get("RS_ZAMADR_ZEME"); + } + + public String rsPovolani() { + return (String) params.get("RS_POVOLANI"); + } + + public java.util.Date rsDatumzamod() { + return (java.util.Date) params.get("RS_DATUMZAMOD"); + } + + public Double rsCistymesicprijem3m() { + return (Double) params.get("RS_CISTYMESICPRIJEM3M"); + } + + public Double rsHrubyrocniprijem() { + return (Double) params.get("RS_HRUBYROCNIPRIJEM"); + } + + public Double rsZakladdane() { + return (Double) params.get("RS_ZAKLADDANE"); + } + + public Long rsZakladdanerok() { + return (Long) params.get("RS_ZAKLADDANEROK"); + } + + public Double rsJinemessplatky() { + return (Double) params.get("RS_JINEMESSPLATKY"); + } + + public Long rsPocetvyzivovanychosob() { + return (Long) params.get("RS_POCETVYZIVOVANYCHOSOB"); + } + + public Double rsCelkovyprijemdom() { + return (Double) params.get("RS_CELKOVYPRIJEMDOM"); + } + + public Double rsSrazkyzemzdy() { + return (Double) params.get("RS_SRAZKYZEMZDY"); + } + + public Long rsPocetpotvrzeniprijmu() { + return (Long) params.get("RS_POCETPOTVRZENIPRIJMU"); + } + + public String rsCif() { + return (String) params.get("RS_CIF"); + } + + public String rsVztahklientakbance() { + return (String) params.get("RS_VZTAHKLIENTAKBANCE"); + } + + public java.util.Date rsDatumpodpisu101() { + return (java.util.Date) params.get("RS_DATUMPODPISU101"); + } + + public String rsSouhlas101flag() { + return (String) params.get("RS_SOUHLAS101FLAG"); + } + + public String rsSouhlasecbstav() { + return (String) params.get("RS_SOUHLASECBSTAV"); + } + + public String rsIco() { + return (String) params.get("RS_ICO"); + } + + public String rsMena() { + return (String) params.get("RS_MENA"); + } + + public Long rsKlientsmazflag() { + return (Long) params.get("RS_KLIENTSMAZFLAG"); + } + + public String rsGeEmployeeFlag() { + return (String) params.get("RS_GE_EMPLOYEE_FLAG"); + } + + public java.util.Date rsDatumnarozeni() { + return (java.util.Date) params.get("RS_DATUMNAROZENI"); + } + + public String rsMistonarozeni() { + return (String) params.get("RS_MISTONAROZENI"); + } + + public String rsVztahkavonu() { + return (String) params.get("RS_VZTAHKAVONU"); + } + + public String rsOsobnidoklad2Zeme() { + return (String) params.get("RS_OSOBNIDOKLAD2_ZEME"); + } + + public String rsTypbyznysu() { + return (String) params.get("RS_TYPBYZNYSU"); + } + + public String rsOsobnidoklad1Zeme() { + return (String) params.get("RS_OSOBNIDOKLAD1_ZEME"); + } + + public String rsZahranicnizam() { + return (String) params.get("RS_ZAHRANICNIZAM"); + } + + public String rsAdrkorOverenokuryrem() { + return (String) params.get("RS_ADRKOR_OVERENOKURYREM"); + } + + public String rsAdrtrvOverenokuryrem() { + return (String) params.get("RS_ADRTRV_OVERENOKURYREM"); + } + + public String rsZamadrOverenokuryrem() { + return (String) params.get("RS_ZAMADR_OVERENOKURYREM"); + } + + public String rsTyppobytu() { + return (String) params.get("RS_TYPPOBYTU"); + } + + public Long rsCistymesicprijem3mKey() { + return (Long) params.get("RS_CISTYMESICPRIJEM3M_KEY"); + } + + public Long rsZakladdaneKey() { + return (Long) params.get("RS_ZAKLADDANE_KEY"); + } + + public Long rsHrubyrocniprijemKey() { + return (Long) params.get("RS_HRUBYROCNIPRIJEM_KEY"); + } + + public Long rsCelkovyprijemdomKey() { + return (Long) params.get("RS_CELKOVYPRIJEMDOM_KEY"); + } + + public String rsKlienttyp() { + return (String) params.get("RS_KLIENTTYP"); + } + + public String rsZivlistflag() { + return (String) params.get("RS_ZIVLISTFLAG"); + } + + public String rsBezdlflag() { + return (String) params.get("RS_BEZDLFLAG"); + } + + public String rsAdrkorDokladprohlaseniflag() { + return (String) params.get("RS_ADRKOR_DOKLADPROHLASENIFLAG"); + } + + public String rsZaloha2() { + return (String) params.get("RS_ZALOHA2"); + } + + public String rsZaloha1() { + return (String) params.get("RS_ZALOHA1"); + } + + public Long rsZivlistRqdocKey() { + return (Long) params.get("RS_ZIVLIST_RQDOC_KEY"); + } + + public Long rsZivlistDocKey() { + return (Long) params.get("RS_ZIVLIST_DOC_KEY"); + } + + public Long rsAdrkorDokladRqdocKey() { + return (Long) params.get("RS_ADRKOR_DOKLAD_RQDOC_KEY"); + } + + public Long rsBezdlDocKey() { + return (Long) params.get("RS_BEZDL_DOC_KEY"); + } + + public java.util.Date rsBezdlDatumvystaveni() { + return (java.util.Date) params.get("RS_BEZDL_DATUMVYSTAVENI"); + } + + public java.util.Date rsZivlistDatumvystaveni() { + return (java.util.Date) params.get("RS_ZIVLIST_DATUMVYSTAVENI"); + } + + public String rsAdrkorDokladsmazflag() { + return (String) params.get("RS_ADRKOR_DOKLADSMAZFLAG"); + } + + public String rsZivlistSmazflag() { + return (String) params.get("RS_ZIVLIST_SMAZFLAG"); + } + + public String rsBezdlSmazflag() { + return (String) params.get("RS_BEZDL_SMAZFLAG"); + } + + public Long rsBezdlRqdocKey() { + return (Long) params.get("RS_BEZDL_RQDOC_KEY"); + } + + public java.util.Date rsDatumnastehovanidatum() { + return (java.util.Date) params.get("RS_DATUMNASTEHOVANIDATUM"); + } + + public String rsPovolanityp() { + return (String) params.get("RS_POVOLANITYP"); + } + + public String rsDuvodrozhodnutitext() { + return (String) params.get("RS_DUVODROZHODNUTITEXT"); + } + + public String rsDuvodrozhodnutichybaflag() { + return (String) params.get("RS_DUVODROZHODNUTICHYBAFLAG"); + } + + public String rsDanovepriznaniDokladsmazflag() { + return (String) params.get("RS_DANOVEPRIZNANI_DOKLADSMAZFLAG"); + } + + public Long rsDanovepriznaniDokladRqdocKey() { + return (Long) params.get("RS_DANOVEPRIZNANI_DOKLAD_RQDOC_KEY"); + } + + public java.util.Date rsDanovepriznaniDokladdatumvystaveni() { + return (java.util.Date) params.get("RS_DANOVEPRIZNANI_DOKLADDATUMVYSTAVENI"); + } + + public Long rsDanovepriznaniDokladKey() { + return (Long) params.get("RS_DANOVEPRIZNANI_DOKLAD_KEY"); + } + + public String rsDanovepriznaniDokladflag() { + return (String) params.get("RS_DANOVEPRIZNANI_DOKLADFLAG"); + } + + public Long rsPotvrzeniprijmuDokladKey() { + return (Long) params.get("RS_POTVRZENIPRIJMU_DOKLAD_KEY"); + } + + public Long rsPotvrzeniprijmuDokladRqdocKey() { + return (Long) params.get("RS_POTVRZENIPRIJMU_DOKLAD_RQDOC_KEY"); + } + + public String rsPotvrzeniprijmuDokladSmazflag() { + return (String) params.get("RS_POTVRZENIPRIJMU_DOKLAD_SMAZFLAG"); + } + + public String rsPotvrzeniprijmuDokladTyp() { + return (String) params.get("RS_POTVRZENIPRIJMU_DOKLAD_TYP"); + } + + public String rsEvidencnicisloDuvod() { + return (String) params.get("RS_EVIDENCNICISLO_DUVOD"); + } + + public String rsEvidencnicisloKomentar() { + return (String) params.get("RS_EVIDENCNICISLO_KOMENTAR"); + } + + public String rsStavrodinnyovereni() { + return (String) params.get("RS_STAVRODINNYOVERENI"); + } + + public String rsNfcMsisdn() { + return (String) params.get("RS_NFC_MSISDN"); + } + + public Long rsNfcMsisdnKey() { + return (Long) params.get("RS_NFC_MSISDN_KEY"); + } + + public String rsZuzenesjm() { + return (String) params.get("RS_ZUZENESJM"); + } + + public String rsRodinnyzavod() { + return (String) params.get("RS_RODINNYZAVOD"); + } + + public Double rsRodinnyzavodpodil() { + return (Double) params.get("RS_RODINNYZAVODPODIL"); + } + + public Double rsOstatnizivotninaklady() { + return (Double) params.get("RS_OSTATNIZIVOTNINAKLADY"); + } + + public String rsVydatkartukuveru() { + return (String) params.get("RS_VYDATKARTUKUVERU"); + } + + public Double rsPrijmyRadek101() { + return (Double) params.get("RS_PRIJMY_RADEK101"); + } + + public String rsZkusebnidoba() { + return (String) params.get("RS_ZKUSEBNIDOBA"); + } + + public String rsVypovednilhuta() { + return (String) params.get("RS_VYPOVEDNILHUTA"); + } + + public String rsBirthCntryId() { + return (String) params.get("RS_BIRTH_CNTRY_ID"); + } + + public Long rsTaxCrOnlyFlag() { + return (Long) params.get("RS_TAX_CR_ONLY_FLAG"); + } + + public Double rsVydajenavyzivovaneosoby() { + return (Double) params.get("RS_VYDAJENAVYZIVOVANEOSOBY"); + } + + public Double rsPrijmynavyzivovaneosoby() { + return (Double) params.get("RS_PRIJMYNAVYZIVOVANEOSOBY"); + } + + public Double rsDanzalonskyrok() { + return (Double) params.get("RS_DANZALONSKYROK"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV1Response.java new file mode 100644 index 0000000..74d1f05 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV1Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAV1Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV3.java new file mode 100644 index 0000000..dd06551 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV3.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAV3 extends MwfRequest { + + @Parameter(name = "Kombinace_KEY") + MWFAV3 kombinaceKEY(Long kombinaceKEY); + @Parameter(name = "NacistPoplatkyFlag") + MWFAV3 nacistPoplatkyFlag(Long nacistPoplatkyFlag); + @Parameter(name = "VariantaTyp_Filtr") + MWFAV3 variantaTypFiltr(String variantaTypFiltr); + @Parameter(name = "ZadostOnlineFlag") + MWFAV3 zadostOnlineFlag(String zadostOnlineFlag); + @Parameter(name = "Zadost_KEY") + MWFAV3 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV3Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV3Data.java new file mode 100644 index 0000000..c8f3e73 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV3Data.java @@ -0,0 +1,329 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFAV3Data { + + private Map params; + + public MWFAV3Data(Map params) { + this.params = params; + } + + public java.util.Date rsDatumprvnisplatky() { + return (java.util.Date) params.get("RS_DATUMPRVNISPLATKY"); + } + + public String rsOdkladsplatek() { + return (String) params.get("RS_ODKLADSPLATEK"); + } + + public Double rsPojistenipoplatek() { + return (Double) params.get("RS_POJISTENIPOPLATEK"); + } + + public Long rsVyseuveru() { + return (Long) params.get("RS_VYSEUVERU"); + } + + public String rsVariantazvolenaflag() { + return (String) params.get("RS_VARIANTAZVOLENAFLAG"); + } + + public Double rsMesicnisplatka() { + return (Double) params.get("RS_MESICNISPLATKA"); + } + + public Double rsUrokovasazba() { + return (Double) params.get("RS_UROKOVASAZBA"); + } + + public String rsVariantadoporucenaflag() { + return (String) params.get("RS_VARIANTADOPORUCENAFLAG"); + } + + public String rsVariantatyp() { + return (String) params.get("RS_VARIANTATYP"); + } + + public String rsTerm() { + return (String) params.get("RS_TERM"); + } + + public Double rsRpsn() { + return (Double) params.get("RS_RPSN"); + } + + public Long rsVariantaKey() { + return (Long) params.get("RS_VARIANTA_KEY"); + } + + public String rsDeninkasnisplatky() { + return (String) params.get("RS_DENINKASNISPLATKY"); + } + + public String rsKodproduktu() { + return (String) params.get("RS_KODPRODUKTU"); + } + + public String rsPojisteni() { + return (String) params.get("RS_POJISTENI"); + } + + public String rsEmbosstyp() { + return (String) params.get("RS_EMBOSSTYP"); + } + + public String rsCobrandkarty() { + return (String) params.get("RS_COBRANDKARTY"); + } + + public String rsDesignkarty() { + return (String) params.get("RS_DESIGNKARTY"); + } + + public String rsKartaasociace() { + return (String) params.get("RS_KARTAASOCIACE"); + } + + public String rsKodproduktusales() { + return (String) params.get("RS_KODPRODUKTUSALES"); + } + + public String rsVernostniprogram() { + return (String) params.get("RS_VERNOSTNIPROGRAM"); + } + + public String rsPromoakce() { + return (String) params.get("RS_PROMOAKCE"); + } + + public String rsTypkarty() { + return (String) params.get("RS_TYPKARTY"); + } + + public String rsCislosmlouvyvarianty() { + return (String) params.get("RS_CISLOSMLOUVYVARIANTY"); + } + + public Double rsVelikostzalohy() { + return (Double) params.get("RS_VELIKOSTZALOHY"); + } + + public String rsBrandkarty() { + return (String) params.get("RS_BRANDKARTY"); + } + + public String rsPovoleniinettransakci() { + return (String) params.get("RS_POVOLENIINETTRANSAKCI"); + } + + public Double rsAutorizacnilimitBezhotovostni() { + return (Double) params.get("RS_AUTORIZACNILIMIT_BEZHOTOVOSTNI"); + } + + public Double rsAutorizacnilimitHotovost() { + return (Double) params.get("RS_AUTORIZACNILIMIT_HOTOVOST"); + } + + public String rsAutorizacnilimitTyp() { + return (String) params.get("RS_AUTORIZACNILIMIT_TYP"); + } + + public Double rsAutorizacnilimitProcento() { + return (Double) params.get("RS_AUTORIZACNILIMIT_PROCENTO"); + } + + public Double rsMinprocentosplatky() { + return (Double) params.get("RS_MINPROCENTOSPLATKY"); + } + + public Double rsUverovyramecod() { + return (Double) params.get("RS_UVEROVYRAMECOD"); + } + + public Double rsUverovyramecdo() { + return (Double) params.get("RS_UVEROVYRAMECDO"); + } + + public String rsTypasistencnisluzby() { + return (String) params.get("RS_TYPASISTENCNISLUZBY"); + } + + public String rsVariantadruh() { + return (String) params.get("RS_VARIANTADRUH"); + } + + public Double rsRocniurokovasazbacash() { + return (Double) params.get("RS_ROCNIUROKOVASAZBACASH"); + } + + public Double rsCelkovasplatnacastka() { + return (Double) params.get("RS_CELKOVASPLATNACASTKA"); + } + + public Double rsVyseupsellu() { + return (Double) params.get("RS_VYSEUPSELLU"); + } + + public Long rsPoradizavazku() { + return (Long) params.get("RS_PORADIZAVAZKU"); + } + + public Long rsDenzuctovacihoobdobi() { + return (Long) params.get("RS_DENZUCTOVACIHOOBDOBI"); + } + + public Double rsPoplatekotevreni() { + return (Double) params.get("RS_POPLATEKOTEVRENI"); + } + + public Double rsPoplatekbu() { + return (Double) params.get("RS_POPLATEKBU"); + } + + public Double rsPoplatekuu() { + return (Double) params.get("RS_POPLATEKUU"); + } + + public Double rsPoplatekprichozitranskace() { + return (Double) params.get("RS_POPLATEKPRICHOZITRANSKACE"); + } + + public String rsPoplatekmvk() { + return (String) params.get("RS_POPLATEKMVK"); + } + + public Double rsPoplatekrvk() { + return (Double) params.get("RS_POPLATEKRVK"); + } + + public String rsTypvypoctufina() { + return (String) params.get("RS_TYPVYPOCTUFINA"); + } + + public Double rsFlexilimit() { + return (Double) params.get("RS_FLEXILIMIT"); + } + + public String rsTypsplaceni() { + return (String) params.get("RS_TYPSPLACENI"); + } + + public String rsIndexlinearnihosplaceni() { + return (String) params.get("RS_INDEXLINEARNIHOSPLACENI"); + } + + public Long rsKombinaceKey() { + return (Long) params.get("RS_KOMBINACE_KEY"); + } + + public String rsRelAccNum() { + return (String) params.get("RS_REL_ACC_NUM"); + } + + public Double rsMinCrTurnPct() { + return (Double) params.get("RS_MIN_CR_TURN_PCT"); + } + + public String rsIncentiv() { + return (String) params.get("RS_INCENTIV"); + } + + public Double rsCastkaprvnihocerpani() { + return (Double) params.get("RS_CASTKAPRVNIHOCERPANI"); + } + + public String rsPoplatkovyplan() { + return (String) params.get("RS_POPLATKOVYPLAN"); + } + + public Double rsAutorizacnilimitInternet() { + return (Double) params.get("RS_AUTORIZACNILIMIT_INTERNET"); + } + + public Double rsVyseposlednisplatky() { + return (Double) params.get("RS_VYSEPOSLEDNISPLATKY"); + } + + public Double rsCerpVyseposlednisplatky() { + return (Double) params.get("RS_CERP_VYSEPOSLEDNISPLATKY"); + } + + public Double rsCerpUrokovasazba() { + return (Double) params.get("RS_CERP_UROKOVASAZBA"); + } + + public Double rsCerpRpsn() { + return (Double) params.get("RS_CERP_RPSN"); + } + + public Double rsCerpCelkovasplatnacastka() { + return (Double) params.get("RS_CERP_CELKOVASPLATNACASTKA"); + } + + public String rsBonusPeriodavyplacenibonusu() { + return (String) params.get("RS_BONUS_PERIODAVYPLACENIBONUSU"); + } + + public Double rsBonusCastka() { + return (Double) params.get("RS_BONUS_CASTKA"); + } + + public Long rsCerpPocetsplatek() { + return (Long) params.get("RS_CERP_POCETSPLATEK"); + } + + public Double rsCerpBonusCelkovacastka() { + return (Double) params.get("RS_CERP_BONUS_CELKOVACASTKA"); + } + + public Double rsCerpBonusRpsn() { + return (Double) params.get("RS_CERP_BONUS_RPSN"); + } + + public Double rsBonusCelkovavyse() { + return (Double) params.get("RS_BONUS_CELKOVAVYSE"); + } + + public Double rsCerpBonusUrokovasazba() { + return (Double) params.get("RS_CERP_BONUS_UROKOVASAZBA"); + } + + public Double rsCerpBonusVyseposlednisplatky() { + return (Double) params.get("RS_CERP_BONUS_VYSEPOSLEDNISPLATKY"); + } + + public String rsBonusTypvyplacenibonusu() { + return (String) params.get("RS_BONUS_TYPVYPLACENIBONUSU"); + } + + public Long rsCerpBonusPocetsplatek() { + return (Long) params.get("RS_CERP_BONUS_POCETSPLATEK"); + } + + public String rsVariantTpId() { + return (String) params.get("RS_VARIANT_TP_ID"); + } + + public java.util.Date rsDatumzalozeni() { + return (java.util.Date) params.get("RS_DATUMZALOZENI"); + } + + public java.util.Date rsDatumposlednizmeny() { + return (java.util.Date) params.get("RS_DATUMPOSLEDNIZMENY"); + } + + public String rsIdvlsbalicku() { + return (String) params.get("RS_IDVLSBALICKU"); + } + + public Double rsPrimIntrsRx() { + return (Double) params.get("RS_PRIM_INTRS_RX"); + } + + public Double rsMinIntrsRx() { + return (Double) params.get("RS_MIN_INTRS_RX"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV3Response.java new file mode 100644 index 0000000..e333982 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV3Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAV3Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV4.java new file mode 100644 index 0000000..0e50dff --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV4.java @@ -0,0 +1,218 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAV4 extends MwfRequest { + + @Parameter(name = "AktivacniHeslo") + MWFAV4 aktivacniHeslo(String aktivacniHeslo); + @Parameter(name = "AutorizacniLimit_Bezhotovostni") + MWFAV4 autorizacniLimitBezhotovostni(Double autorizacniLimitBezhotovostni); + @Parameter(name = "AutorizacniLimit_Hotovost") + MWFAV4 autorizacniLimitHotovost(Double autorizacniLimitHotovost); + @Parameter(name = "AutorizacniLimit_Internet") + MWFAV4 autorizacniLimitInternet(Double autorizacniLimitInternet); + @Parameter(name = "AutorizacniLimit_Typ") + MWFAV4 autorizacniLimitTyp(String autorizacniLimitTyp); + @Parameter(name = "AvonLadyID") + MWFAV4 avonLadyID(String avonLadyID); + @Parameter(name = "AvonLadyIDDop") + MWFAV4 avonLadyIDDop(String avonLadyIDDop); + @Parameter(name = "BUCisloUctu") + MWFAV4 bUCisloUctu(String bUCisloUctu); + @Parameter(name = "BUKodBanky") + MWFAV4 bUKodBanky(String bUKodBanky); + @Parameter(name = "BUMena") + MWFAV4 bUMena(String bUMena); + @Parameter(name = "BUPeriodaVypisu") + MWFAV4 bUPeriodaVypisu(String bUPeriodaVypisu); + @Parameter(name = "BUProduktKod") + MWFAV4 bUProduktKod(String bUProduktKod); + @Parameter(name = "BUSpecifickySymbol") + MWFAV4 bUSpecifickySymbol(String bUSpecifickySymbol); + @Parameter(name = "BUVariabilniSymbol") + MWFAV4 bUVariabilniSymbol(String bUVariabilniSymbol); + @Parameter(name = "BUZalozitNovyUcet") + MWFAV4 bUZalozitNovyUcet(String bUZalozitNovyUcet); + @Parameter(name = "BU_KEY") + MWFAV4 buKey(Long buKey); + @Parameter(name = "Benefit") + MWFAV4 benefit(String benefit); + @Parameter(name = "BrandKarty") + MWFAV4 brandKarty(String brandKarty); + @Parameter(name = "CastkaPrvnihoCerpani") + MWFAV4 castkaPrvnihoCerpani(Long castkaPrvnihoCerpani); + @Parameter(name = "CelkovaSplatnaCastka") + MWFAV4 celkovaSplatnaCastka(Double celkovaSplatnaCastka); + @Parameter(name = "Channel_ID") + MWFAV4 channelID(String channelID); + @Parameter(name = "CisloPojisteniING") + MWFAV4 cisloPojisteniING(String cisloPojisteniING); + @Parameter(name = "CisloSmlouvyVarianty") + MWFAV4 cisloSmlouvyVarianty(String cisloSmlouvyVarianty); + @Parameter(name = "CobrandKarty") + MWFAV4 cobrandKarty(String cobrandKarty); + @Parameter(name = "DatumPodpisuZadosti") + MWFAV4 datumPodpisuZadosti(java.util.Date datumPodpisuZadosti); + @Parameter(name = "DatumPodpisuZadosti_Kuryr") + MWFAV4 datumPodpisuZadostiKuryr(java.util.Date datumPodpisuZadostiKuryr); + @Parameter(name = "DatumPrepoctuUroku") + MWFAV4 datumPrepoctuUroku(java.util.Date datumPrepoctuUroku); + @Parameter(name = "DatumPrvniSplatky") + MWFAV4 datumPrvniSplatky(java.util.Date datumPrvniSplatky); + @Parameter(name = "DenInkasniSplatky") + MWFAV4 denInkasniSplatky(String denInkasniSplatky); + @Parameter(name = "DenZuctovacihoObdobi") + MWFAV4 denZuctovacihoObdobi(Long denZuctovacihoObdobi); + @Parameter(name = "DesignKarty") + MWFAV4 designKarty(String designKarty); + @Parameter(name = "DruhBusinessu") + MWFAV4 druhBusinessu(String druhBusinessu); + @Parameter(name = "IB_ACCES_TYPE") + MWFAV4 ibAccesType(String ibAccesType); + @Parameter(name = "IB_SIGN_TYPE") + MWFAV4 ibSignType(String ibSignType); + @Parameter(name = "IDXselloveKampane") + MWFAV4 iDXselloveKampane(String iDXselloveKampane); + @Parameter(name = "IP_ADDRESS") + MWFAV4 ipAddress(String ipAddress); + @Parameter(name = "IdVLSBalicku") + MWFAV4 idVLSBalicku(String idVLSBalicku); + @Parameter(name = "InfolimitTyp") + MWFAV4 infolimitTyp(String infolimitTyp); + @Parameter(name = "Infolimit_ZavaznyPlatnost") + MWFAV4 infolimitZavaznyPlatnost(java.util.Date infolimitZavaznyPlatnost); + @Parameter(name = "Infolimit_ZavaznyVyse") + MWFAV4 infolimitZavaznyVyse(Double infolimitZavaznyVyse); + @Parameter(name = "KodProduktu") + MWFAV4 kodProduktu(String kodProduktu); + @Parameter(name = "KodProduktuSales") + MWFAV4 kodProduktuSales(String kodProduktuSales); + @Parameter(name = "Mena") + MWFAV4 mena(String mena); + @Parameter(name = "MesicniSplatka") + MWFAV4 mesicniSplatka(Double mesicniSplatka); + @Parameter(name = "MigraceBU_Flag") + MWFAV4 migraceBUFlag(String migraceBUFlag); + @Parameter(name = "ObchodniMistoKod") + MWFAV4 obchodniMistoKod(String obchodniMistoKod); + @Parameter(name = "OdkladSplatek") + MWFAV4 odkladSplatek(String odkladSplatek); + @Parameter(name = "PocetSplatek") + MWFAV4 pocetSplatek(Long pocetSplatek); + @Parameter(name = "Pojisteni") + MWFAV4 pojisteni(String pojisteni); + @Parameter(name = "PojisteniPoplatek") + MWFAV4 pojisteniPoplatek(Double pojisteniPoplatek); + @Parameter(name = "PojisteniProtiZneuziti") + MWFAV4 pojisteniProtiZneuziti(String pojisteniProtiZneuziti); + @Parameter(name = "PojisteniVycerpaneCastky") + MWFAV4 pojisteniVycerpaneCastky(String pojisteniVycerpaneCastky); + @Parameter(name = "PoplatkovyPlan") + MWFAV4 poplatkovyPlan(String poplatkovyPlan); + @Parameter(name = "PovoleniInetTransakci") + MWFAV4 povoleniInetTransakci(String povoleniInetTransakci); + @Parameter(name = "PracovnikMTSID") + MWFAV4 pracovnikMTSID(String pracovnikMTSID); + @Parameter(name = "PrimarniUrednikID") + MWFAV4 primarniUrednikID(String primarniUrednikID); + @Parameter(name = "PrimarniUrednikJmeno") + MWFAV4 primarniUrednikJmeno(String primarniUrednikJmeno); + @Parameter(name = "PrimarniUrednikPrijmeni") + MWFAV4 primarniUrednikPrijmeni(String primarniUrednikPrijmeni); + @Parameter(name = "PrimarniUrednikSSO") + MWFAV4 primarniUrednikSSO(String primarniUrednikSSO); + @Parameter(name = "PrimarniUrednik_KEY") + MWFAV4 primarniUrednikKEY(Long primarniUrednikKEY); + @Parameter(name = "PromoAkce") + MWFAV4 promoAkce(String promoAkce); + @Parameter(name = "RPSN") + MWFAV4 rpsn(Double rpsn); + @Parameter(name = "RazitkoObchodniZastupce") + MWFAV4 razitkoObchodniZastupce(Long razitkoObchodniZastupce); + @Parameter(name = "RetentcniProgramFlag") + MWFAV4 retentcniProgramFlag(String retentcniProgramFlag); + @Parameter(name = "RocniUrokovaSazbaCASH") + MWFAV4 rocniUrokovaSazbaCASH(Double rocniUrokovaSazbaCASH); + @Parameter(name = "SouhlasOPKCestovniPojisteniFlag") + MWFAV4 souhlasOPKCestovniPojisteniFlag(String souhlasOPKCestovniPojisteniFlag); + @Parameter(name = "SouhlasOPKFlag") + MWFAV4 souhlasOPKFlag(String souhlasOPKFlag); + @Parameter(name = "SouhlasOPKPojisteniSchopnostiPlatit") + MWFAV4 souhlasOPKPojisteniSchopnostiPlatit(String souhlasOPKPojisteniSchopnostiPlatit); + @Parameter(name = "SouhlasOPKZpusobUhradySplatek") + MWFAV4 souhlasOPKZpusobUhradySplatek(String souhlasOPKZpusobUhradySplatek); + @Parameter(name = "TechnologieKarty") + MWFAV4 technologieKarty(String technologieKarty); + @Parameter(name = "TypAsistencniSluzby") + MWFAV4 typAsistencniSluzby(String typAsistencniSluzby); + @Parameter(name = "TypFormulare") + MWFAV4 typFormulare(String typFormulare); + @Parameter(name = "TypKarty") + MWFAV4 typKarty(String typKarty); + @Parameter(name = "TypSlevy") + MWFAV4 typSlevy(String typSlevy); + @Parameter(name = "UUMenaTopUP") + MWFAV4 uUMenaTopUP(String uUMenaTopUP); + @Parameter(name = "UUTopUPCislo") + MWFAV4 uUTopUPCislo(String uUTopUPCislo); + @Parameter(name = "UUTopUP_KEY") + MWFAV4 uUTopUPKEY(Long uUTopUPKEY); + @Parameter(name = "UcelUveru") + MWFAV4 ucelUveru(String ucelUveru); + @Parameter(name = "UrednikFunkce") + MWFAV4 urednikFunkce(String urednikFunkce); + @Parameter(name = "UrednikID") + MWFAV4 urednikID(String urednikID); + @Parameter(name = "UrednikJmeno") + MWFAV4 urednikJmeno(String urednikJmeno); + @Parameter(name = "UrednikPrijmeni") + MWFAV4 urednikPrijmeni(String urednikPrijmeni); + @Parameter(name = "UrednikSSO") + MWFAV4 urednikSSO(String urednikSSO); + @Parameter(name = "Urednik_KEY") + MWFAV4 urednikKEY(String urednikKEY); + @Parameter(name = "UrokovaSazba") + MWFAV4 urokovaSazba(Double urokovaSazba); + @Parameter(name = "VariantaTyp") + MWFAV4 variantaTyp(String variantaTyp); + @Parameter(name = "Varianta_KEY") + MWFAV4 variantaKEY(Long variantaKEY); + @Parameter(name = "VelikostZalohy") + MWFAV4 velikostZalohy(Double velikostZalohy); + @Parameter(name = "VernostniProgram") + MWFAV4 vernostniProgram(String vernostniProgram); + @Parameter(name = "VypisKeKonciMesice_Flag") + MWFAV4 vypisKeKonciMesiceFlag(String vypisKeKonciMesiceFlag); + @Parameter(name = "VysePosledniSplatky") + MWFAV4 vysePosledniSplatky(Double vysePosledniSplatky); + @Parameter(name = "VyseUpsellu") + MWFAV4 vyseUpsellu(Double vyseUpsellu); + @Parameter(name = "VyseUveru") + MWFAV4 vyseUveru(Long vyseUveru); + @Parameter(name = "WEB_BANNER") + MWFAV4 webBanner(String webBanner); + @Parameter(name = "WEB_PARTNER_ID") + MWFAV4 webPartnerId(String webPartnerId); + @Parameter(name = "ZadostSubtyp") + MWFAV4 zadostSubtyp(String zadostSubtyp); + @Parameter(name = "ZadostTyp") + MWFAV4 zadostTyp(String zadostTyp); + @Parameter(name = "Zadost_KEY") + MWFAV4 zadostKEY(Long zadostKEY); + @Parameter(name = "ZboziCena") + MWFAV4 zboziCena(Double zboziCena); + @Parameter(name = "ZboziDruh") + MWFAV4 zboziDruh(String zboziDruh); + @Parameter(name = "ZkraceneJmenoNaKarteDrzitel") + MWFAV4 zkraceneJmenoNaKarteDrzitel(String zkraceneJmenoNaKarteDrzitel); + @Parameter(name = "ZkraceneJmenoNaKarteFirma") + MWFAV4 zkraceneJmenoNaKarteFirma(String zkraceneJmenoNaKarteFirma); + @Parameter(name = "ZpusobDistribucePIN") + MWFAV4 zpusobDistribucePIN(String zpusobDistribucePIN); + @Parameter(name = "ZpusobDistribuceVypisu") + MWFAV4 zpusobDistribuceVypisu(String zpusobDistribuceVypisu); + @Parameter(name = "ZpusobUhradySplatek") + MWFAV4 zpusobUhradySplatek(String zpusobUhradySplatek); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV4Response.java new file mode 100644 index 0000000..b257095 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV4Response.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAV4Response { + + @Parameter(name = "BU_KEY") + Long buKey(); + + @Parameter(name = "PrimarniUrednik_KEY") + Long primarniUrednikKEY(); + + @Parameter(name = "UUTopUP_KEY") + Long uUTopUPKEY(); + + @Parameter(name = "Urednik_KEY") + String urednikKEY(); + + @Parameter(name = "VariantaTyp") + String variantaTyp(); + + @Parameter(name = "Varianta_KEY") + Long variantaKEY(); + + @Parameter(name = "WPS_WFL_ID") + String wpsWflId(); + + @Parameter(name = "Zadost_KEY") + Long zadostKEY(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV5.java new file mode 100644 index 0000000..3f8253f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV5.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAV5 extends MwfRequest { + + @Parameter(name = "Channel_ID") + MWFAV5 channelID(String channelID); + @Parameter(name = "Filtr_VariantaTyp") + MWFAV5 filtrVariantaTyp(String filtrVariantaTyp); + @Parameter(name = "TypExternihoTextu") + MWFAV5 typExternihoTextu(String typExternihoTextu); + @Parameter(name = "WPS_WFL_ID") + MWFAV5 wpsWflId(String wpsWflId); + @Parameter(name = "Zadost_KEY") + MWFAV5 zadostKEY(Long zadostKEY); + @Parameter(name = "ZiskatNazevPromoProgramu") + MWFAV5 ziskatNazevPromoProgramu(String ziskatNazevPromoProgramu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV5Response.java new file mode 100644 index 0000000..1b6d5a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV5Response.java @@ -0,0 +1,645 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAV5Response { + + @Parameter(name = "APP_DATE") + java.util.Date appDate(); + + @Parameter(name = "AktivacniHeslo") + String aktivacniHeslo(); + + @Parameter(name = "AutorizacniLimit_Bezhotovostni") + Double autorizacniLimitBezhotovostni(); + + @Parameter(name = "AutorizacniLimit_Hotovost") + Double autorizacniLimitHotovost(); + + @Parameter(name = "AutorizacniLimit_Internet") + Double autorizacniLimitInternet(); + + @Parameter(name = "AutorizacniLimit_Procento") + Double autorizacniLimitProcento(); + + @Parameter(name = "AutorizacniLimit_Typ") + String autorizacniLimitTyp(); + + @Parameter(name = "AvonLadyID") + String avonLadyID(); + + @Parameter(name = "AvonLadyIDDop") + String avonLadyIDDop(); + + @Parameter(name = "BUCisloUctu") + String bUCisloUctu(); + + @Parameter(name = "BUKodBanky") + String bUKodBanky(); + + @Parameter(name = "BUMena") + String bUMena(); + + @Parameter(name = "BUPeriodaVypisu") + String bUPeriodaVypisu(); + + @Parameter(name = "BUProduktKod") + String bUProduktKod(); + + @Parameter(name = "BUSpecifickySymbol") + String bUSpecifickySymbol(); + + @Parameter(name = "BUVariabilniSymbol") + String bUVariabilniSymbol(); + + @Parameter(name = "BUZalozitNovyUcet") + String bUZalozitNovyUcet(); + + @Parameter(name = "BU_KEY") + Long buKey(); + + @Parameter(name = "Benefit") + String benefit(); + + @Parameter(name = "BezPritomnostiKlienta") + String bezPritomnostiKlienta(); + + @Parameter(name = "BrandKarty") + String brandKarty(); + + @Parameter(name = "CastkaPrvnihoCerpani") + Long castkaPrvnihoCerpani(); + + @Parameter(name = "CelkovaSplatnaCastka") + Double celkovaSplatnaCastka(); + + @Parameter(name = "Channel_ID") + String channelID(); + + @Parameter(name = "CisloDocasneKarty") + String cisloDocasneKarty(); + + @Parameter(name = "CisloDocasneKartyMask") + String cisloDocasneKartyMask(); + + @Parameter(name = "CisloPojisteniING") + String cisloPojisteniING(); + + @Parameter(name = "CisloSmlouvy") + String cisloSmlouvy(); + + @Parameter(name = "CisloSmlouvyVarianty") + String cisloSmlouvyVarianty(); + + @Parameter(name = "CobrandKarty") + String cobrandKarty(); + + @Parameter(name = "DatumPodpisuSmlouvy") + java.util.Date datumPodpisuSmlouvy(); + + @Parameter(name = "DatumPodpisuZadosti") + java.util.Date datumPodpisuZadosti(); + + @Parameter(name = "DatumPodpisuZadosti_Kuryr") + java.util.Date datumPodpisuZadostiKuryr(); + + @Parameter(name = "DatumPrepoctuUroku") + java.util.Date datumPrepoctuUroku(); + + @Parameter(name = "DatumPrvniSplatky") + java.util.Date datumPrvniSplatky(); + + @Parameter(name = "DenInkasniSplatky") + String denInkasniSplatky(); + + @Parameter(name = "DenZuctovacihoObdobi") + Long denZuctovacihoObdobi(); + + @Parameter(name = "DesignKarty") + String designKarty(); + + @Parameter(name = "DruhBusinessu") + String druhBusinessu(); + + @Parameter(name = "DuvodPreschvaleni") + String duvodPreschvaleni(); + + @Parameter(name = "DuvodRozhodnuti") + String duvodRozhodnuti(); + + @Parameter(name = "DuvodRozhodnutiKod") + String duvodRozhodnutiKod(); + + @Parameter(name = "EmbossTyp") + String embossTyp(); + + @Parameter(name = "EnvelopeNumber") + String envelopeNumber(); + + @Parameter(name = "ExpresmanFlag") + String expresmanFlag(); + + @Parameter(name = "FormLockStatus") + String formLockStatus(); + + @Parameter(name = "IB_ACCES_TYPE") + String ibAccesType(); + + @Parameter(name = "IB_SIGN_TYPE") + String ibSignType(); + + @Parameter(name = "IDXselloveKampane") + String iDXselloveKampane(); + + @Parameter(name = "IP_ADDRESS") + String ipAddress(); + + @Parameter(name = "IdVLSBalicku") + String idVLSBalicku(); + + @Parameter(name = "IndexLinearnihoSplaceni") + String indexLinearnihoSplaceni(); + + @Parameter(name = "InfolimitTyp") + String infolimitTyp(); + + @Parameter(name = "Infolimit_ZavaznyPlatnost") + java.util.Date infolimitZavaznyPlatnost(); + + @Parameter(name = "Infolimit_ZavaznyVyse") + Double infolimitZavaznyVyse(); + + @Parameter(name = "KUL_KEY") + Long kulKey(); + + @Parameter(name = "KartaAsociace") + String kartaAsociace(); + + @Parameter(name = "KodProduktu") + String kodProduktu(); + + @Parameter(name = "KodProduktuSales") + String kodProduktuSales(); + + @Parameter(name = "Kombinace_KEY") + Long kombinaceKEY(); + + @Parameter(name = "Mena") + String mena(); + + @Parameter(name = "MesicniSplatka") + Double mesicniSplatka(); + + @Parameter(name = "MigraceBU_Flag") + String migraceBUFlag(); + + @Parameter(name = "MinProcentoSplatky") + Double minProcentoSplatky(); + + @Parameter(name = "MoznostPreschvalitFlag") + String moznostPreschvalitFlag(); + + @Parameter(name = "MoznostPreschvalitRole") + String moznostPreschvalitRole(); + + @Parameter(name = "ObchodniMistoKod") + String obchodniMistoKod(); + + @Parameter(name = "OdkladSplatek") + String odkladSplatek(); + + @Parameter(name = "PocetSplatek") + Long pocetSplatek(); + + @Parameter(name = "Pojisteni") + String pojisteni(); + + @Parameter(name = "PojisteniPoplatek") + Double pojisteniPoplatek(); + + @Parameter(name = "PojisteniPoplatekJednotky") + String pojisteniPoplatekJednotky(); + + @Parameter(name = "PojisteniProtiZneuziti") + String pojisteniProtiZneuziti(); + + @Parameter(name = "PojisteniVycerpaneCastky") + String pojisteniVycerpaneCastky(); + + @Parameter(name = "PoplatkovyPlan") + String poplatkovyPlan(); + + @Parameter(name = "Posledni4Cislice") + String posledni4Cislice(); + + @Parameter(name = "PovoleniInetTransakci") + String povoleniInetTransakci(); + + @Parameter(name = "PracovnikMTSID") + String pracovnikMTSID(); + + @Parameter(name = "PreschvaleniUrednikFunkce") + String preschvaleniUrednikFunkce(); + + @Parameter(name = "PrimarniUrednikID") + String primarniUrednikID(); + + @Parameter(name = "PrimarniUrednikJmeno") + String primarniUrednikJmeno(); + + @Parameter(name = "PrimarniUrednikPrijmeni") + String primarniUrednikPrijmeni(); + + @Parameter(name = "PrimarniUrednikSSO") + String primarniUrednikSSO(); + + @Parameter(name = "PrimarniUrednik_KEY") + Long primarniUrednikKEY(); + + @Parameter(name = "PritomnyVsechnyOsoby") + String pritomnyVsechnyOsoby(); + + @Parameter(name = "PromoAkce") + String promoAkce(); + + @Parameter(name = "PromoRewardProgram") + String promoRewardProgram(); + + @Parameter(name = "RPSN") + Double rpsn(); + + @Parameter(name = "RazitkoObchodniZastupce") + Long razitkoObchodniZastupce(); + + @Parameter(name = "RetentcniProgramFlag") + String retentcniProgramFlag(); + + @Parameter(name = "RocniUrokovaSazbaCASH") + Double rocniUrokovaSazbaCASH(); + + @Parameter(name = "Rozhodnuti") + String rozhodnuti(); + + @Parameter(name = "SCHV_AutorizacniLimit_Bezhotovostni") + Double sCHVAutorizacniLimitBezhotovostni(); + + @Parameter(name = "SCHV_AutorizacniLimit_Hotovost") + Double sCHVAutorizacniLimitHotovost(); + + @Parameter(name = "SCHV_AutorizacniLimit_Internet") + Double sCHVAutorizacniLimitInternet(); + + @Parameter(name = "SCHV_AutorizacniLimit_Procento") + Double sCHVAutorizacniLimitProcento(); + + @Parameter(name = "SCHV_AutorizacniLimit_Typ") + String sCHVAutorizacniLimitTyp(); + + @Parameter(name = "SCHV_BONUS_Castka") + Double sCHVBONUSCastka(); + + @Parameter(name = "SCHV_BONUS_CelkovaVyse") + Double sCHVBONUSCelkovaVyse(); + + @Parameter(name = "SCHV_BONUS_PeriodaVyplaceniBonusu") + String sCHVBONUSPeriodaVyplaceniBonusu(); + + @Parameter(name = "SCHV_BONUS_TypVyplaceniBonusu") + String sCHVBONUSTypVyplaceniBonusu(); + + @Parameter(name = "SCHV_BrandKarty") + String sCHVBrandKarty(); + + @Parameter(name = "SCHV_CERP_BONUS_CelkovaCastka") + Double sCHVCERPBONUSCelkovaCastka(); + + @Parameter(name = "SCHV_CERP_BONUS_PocetSplatek") + Double sCHVCERPBONUSPocetSplatek(); + + @Parameter(name = "SCHV_CERP_BONUS_RPSN") + Double schvCerpBonusRpsn(); + + @Parameter(name = "SCHV_CERP_BONUS_UrokovaSazba") + Double sCHVCERPBONUSUrokovaSazba(); + + @Parameter(name = "SCHV_CERP_BONUS_VysePosledniSplatky") + Double sCHVCERPBONUSVysePosledniSplatky(); + + @Parameter(name = "SCHV_CERP_CelkovaSplatnaCastka") + Double sCHVCERPCelkovaSplatnaCastka(); + + @Parameter(name = "SCHV_CERP_PocetSplatek") + Long sCHVCERPPocetSplatek(); + + @Parameter(name = "SCHV_CERP_RPSN") + Double schvCerpRpsn(); + + @Parameter(name = "SCHV_CERP_UrokovaSazba") + Double sCHVCERPUrokovaSazba(); + + @Parameter(name = "SCHV_CERP_VysePosledniSplatky") + Double sCHVCERPVysePosledniSplatky(); + + @Parameter(name = "SCHV_CastkaPrvnihoCerpani") + Double sCHVCastkaPrvnihoCerpani(); + + @Parameter(name = "SCHV_CelkovaSplatnaCastka") + Double sCHVCelkovaSplatnaCastka(); + + @Parameter(name = "SCHV_CisloSmlouvyVarianty") + String sCHVCisloSmlouvyVarianty(); + + @Parameter(name = "SCHV_CobrandKarty") + String sCHVCobrandKarty(); + + @Parameter(name = "SCHV_DatumPrvniSplatky") + java.util.Date sCHVDatumPrvniSplatky(); + + @Parameter(name = "SCHV_DenInkasniSplatky") + String sCHVDenInkasniSplatky(); + + @Parameter(name = "SCHV_DenZuctovacihoObdobi") + Long sCHVDenZuctovacihoObdobi(); + + @Parameter(name = "SCHV_DesignKarty") + String sCHVDesignKarty(); + + @Parameter(name = "SCHV_EmbossTyp") + String sCHVEmbossTyp(); + + @Parameter(name = "SCHV_Flexilimit") + Double sCHVFlexilimit(); + + @Parameter(name = "SCHV_IndexLinearnihoSplaceni") + String sCHVIndexLinearnihoSplaceni(); + + @Parameter(name = "SCHV_KartaAsociace") + String sCHVKartaAsociace(); + + @Parameter(name = "SCHV_KodProduktu") + String sCHVKodProduktu(); + + @Parameter(name = "SCHV_KodProduktuSales") + String sCHVKodProduktuSales(); + + @Parameter(name = "SCHV_Kombinace_KEY") + Long sCHVKombinaceKEY(); + + @Parameter(name = "SCHV_MesicniSplatka") + Double sCHVMesicniSplatka(); + + @Parameter(name = "SCHV_MinProcentoSplatky") + Double sCHVMinProcentoSplatky(); + + @Parameter(name = "SCHV_OdkladSplatek") + String sCHVOdkladSplatek(); + + @Parameter(name = "SCHV_PocetSplatek") + Long sCHVPocetSplatek(); + + @Parameter(name = "SCHV_Pojisteni") + String sCHVPojisteni(); + + @Parameter(name = "SCHV_PojisteniPoplatek") + Double sCHVPojisteniPoplatek(); + + @Parameter(name = "SCHV_PojisteniPoplatekJednotky") + String sCHVPojisteniPoplatekJednotky(); + + @Parameter(name = "SCHV_PoplatkovyPlan") + String sCHVPoplatkovyPlan(); + + @Parameter(name = "SCHV_PovoleniInetTransakci") + String sCHVPovoleniInetTransakci(); + + @Parameter(name = "SCHV_PromoAkce") + String sCHVPromoAkce(); + + @Parameter(name = "SCHV_RPSN") + Double schvRpsn(); + + @Parameter(name = "SCHV_RocniUrokovaSazbaCASH") + Double sCHVRocniUrokovaSazbaCASH(); + + @Parameter(name = "SCHV_TypAsistencniSluzby") + String sCHVTypAsistencniSluzby(); + + @Parameter(name = "SCHV_TypKarty") + String sCHVTypKarty(); + + @Parameter(name = "SCHV_TypSplaceni") + String sCHVTypSplaceni(); + + @Parameter(name = "SCHV_TypVypoctuFINA") + String sCHVTypVypoctuFINA(); + + @Parameter(name = "SCHV_UrokovaSazba") + Double sCHVUrokovaSazba(); + + @Parameter(name = "SCHV_VariantaDruh") + String sCHVVariantaDruh(); + + @Parameter(name = "SCHV_VariantaTyp") + String sCHVVariantaTyp(); + + @Parameter(name = "SCHV_Varianta_Key") + Long sCHVVariantaKey(); + + @Parameter(name = "SCHV_VelikostZalohy") + Double sCHVVelikostZalohy(); + + @Parameter(name = "SCHV_VernostniProgram") + String sCHVVernostniProgram(); + + @Parameter(name = "SCHV_VysePosledniSplatky") + Double sCHVVysePosledniSplatky(); + + @Parameter(name = "SCHV_VyseUpsellu") + Double sCHVVyseUpsellu(); + + @Parameter(name = "SCHV_VyseUveru") + Long sCHVVyseUveru(); + + @Parameter(name = "SchvalovatelFunkce") + String schvalovatelFunkce(); + + @Parameter(name = "SchvalovatelID") + String schvalovatelID(); + + @Parameter(name = "SchvalovatelJmeno") + String schvalovatelJmeno(); + + @Parameter(name = "SchvalovatelPrijmeni") + String schvalovatelPrijmeni(); + + @Parameter(name = "SchvalovatelSSO") + String schvalovatelSSO(); + + @Parameter(name = "Schvalovatel_KEY") + Long schvalovatelKEY(); + + @Parameter(name = "SouhlasOPKCestovniPojisteniFlag") + String souhlasOPKCestovniPojisteniFlag(); + + @Parameter(name = "SouhlasOPKCisloNavrhu") + String souhlasOPKCisloNavrhu(); + + @Parameter(name = "SouhlasOPKFlag") + String souhlasOPKFlag(); + + @Parameter(name = "SouhlasOPKPojisteniSchopnostiPlatit") + String souhlasOPKPojisteniSchopnostiPlatit(); + + @Parameter(name = "SouhlasOPKSchvaleno") + String souhlasOPKSchvaleno(); + + @Parameter(name = "SouhlasOPKZpusobUhradySplatek") + String souhlasOPKZpusobUhradySplatek(); + + @Parameter(name = "TechnologieKarty") + String technologieKarty(); + + @Parameter(name = "TypAsistencniSluzby") + String typAsistencniSluzby(); + + @Parameter(name = "TypFormulare") + String typFormulare(); + + @Parameter(name = "TypKarty") + String typKarty(); + + @Parameter(name = "TypSlevy") + String typSlevy(); + + @Parameter(name = "TypSplaceni") + String typSplaceni(); + + @Parameter(name = "UUCislo") + String uUCislo(); + + @Parameter(name = "UUMena") + String uUMena(); + + @Parameter(name = "UUMenaTopUP") + String uUMenaTopUP(); + + @Parameter(name = "UUObjektUveru") + String uUObjektUveru(); + + @Parameter(name = "UUTopUPCislo") + String uUTopUPCislo(); + + @Parameter(name = "UUTopUP_KEY") + Long uUTopUPKEY(); + + @Parameter(name = "UU_KEY") + Long uuKey(); + + @Parameter(name = "UcelUveru") + String ucelUveru(); + + @Parameter(name = "UrednikFunkce") + String urednikFunkce(); + + @Parameter(name = "UrednikID") + String urednikID(); + + @Parameter(name = "UrednikJmeno") + String urednikJmeno(); + + @Parameter(name = "UrednikPrijmeni") + String urednikPrijmeni(); + + @Parameter(name = "UrednikSSO") + String urednikSSO(); + + @Parameter(name = "Urednik_KEY") + String urednikKEY(); + + @Parameter(name = "UrokovaSazba") + Double urokovaSazba(); + + @Parameter(name = "VariantaTyp") + String variantaTyp(); + + @Parameter(name = "Varianta_KEY") + Long variantaKEY(); + + @Parameter(name = "VelikostZalohy") + Double velikostZalohy(); + + @Parameter(name = "VernostniProgram") + String vernostniProgram(); + + @Parameter(name = "VypisKeKonciMesice_Flag") + String vypisKeKonciMesiceFlag(); + + @Parameter(name = "VysePosledniSplatky") + Double vysePosledniSplatky(); + + @Parameter(name = "VyseUpsellu") + Double vyseUpsellu(); + + @Parameter(name = "VyseUveru") + Long vyseUveru(); + + @Parameter(name = "WEB_BANNER") + String webBanner(); + + @Parameter(name = "WEB_PARTNER_ID") + String webPartnerId(); + + @Parameter(name = "WFPrechodStavu") + String wFPrechodStavu(); + + @Parameter(name = "WPS_WFL_ID") + String wpsWflId(); + + @Parameter(name = "ZadostAP") + String zadostAP(); + + @Parameter(name = "ZadostKanalPorizeni") + String zadostKanalPorizeni(); + + @Parameter(name = "ZadostStavADCtext") + String zadostStavADCtext(); + + @Parameter(name = "ZadostStavNASDetail") + String zadostStavNASDetail(); + + @Parameter(name = "ZadostStavUFO") + String zadostStavUFO(); + + @Parameter(name = "ZadostSubtyp") + String zadostSubtyp(); + + @Parameter(name = "ZadostSystemZdroj") + String zadostSystemZdroj(); + + @Parameter(name = "ZadostTyp") + String zadostTyp(); + + @Parameter(name = "ZboziCena") + Double zboziCena(); + + @Parameter(name = "ZboziDruh") + String zboziDruh(); + + @Parameter(name = "ZkraceneJmenoNaKarteDrzitel") + String zkraceneJmenoNaKarteDrzitel(); + + @Parameter(name = "ZkraceneJmenoNaKarteFirma") + String zkraceneJmenoNaKarteFirma(); + + @Parameter(name = "ZpusobDistribucePIN") + String zpusobDistribucePIN(); + + @Parameter(name = "ZpusobDistribuceVypisu") + String zpusobDistribuceVypisu(); + + @Parameter(name = "ZpusobUhradySplatek") + String zpusobUhradySplatek(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV6.java new file mode 100644 index 0000000..7b0d0e1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV6.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAV6 extends MwfRequest { + + @Parameter(name = "CIF") + MWFAV6 cif(String cif); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV6Response.java new file mode 100644 index 0000000..96c3d7c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAV6Response.java @@ -0,0 +1,156 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAV6Response { + + @Parameter(name = "Adresat") + String adresat(); + + @Parameter(name = "CO") + String co(); + + @Parameter(name = "CP") + String cp(); + + @Parameter(name = "CisloPasu") + String cisloPasu(); + + @Parameter(name = "Ctvrt") + String ctvrt(); + + @Parameter(name = "DIC") + String dic(); + + @Parameter(name = "DalsiDokladCislo") + String dalsiDokladCislo(); + + @Parameter(name = "DatumExpiraceKontaktnichUdaju") + java.util.Date datumExpiraceKontaktnichUdaju(); + + @Parameter(name = "DatumExpiracePotvrzeniStudent") + java.util.Date datumExpiracePotvrzeniStudent(); + + @Parameter(name = "DatumNarozeni") + java.util.Date datumNarozeni(); + + @Parameter(name = "DruheJmeno") + String druheJmeno(); + + @Parameter(name = "DruhyDokladCislo") + String druhyDokladCislo(); + + @Parameter(name = "DruhyDokladPlatnost") + java.util.Date druhyDokladPlatnost(); + + @Parameter(name = "Fax") + Long fax(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "KodOM") + String kodOM(); + + @Parameter(name = "NezadouciKlient") + String nezadouciKlient(); + + @Parameter(name = "OKEC") + String okec(); + + @Parameter(name = "ObchodniJmeno") + String obchodniJmeno(); + + @Parameter(name = "Obec") + String obec(); + + @Parameter(name = "PSC") + String psc(); + + @Parameter(name = "PlatnostDalsihoDokladuDo") + java.util.Date platnostDalsihoDokladuDo(); + + @Parameter(name = "PlatnostPasu") + java.util.Date platnostPasu(); + + @Parameter(name = "PocetNedorucenychVypisuAA") + Long pocetNedorucenychVypisuAA(); + + @Parameter(name = "PocetNedorucenychVypisuTA") + Long pocetNedorucenychVypisuTA(); + + @Parameter(name = "Posta") + String posta(); + + @Parameter(name = "PravniForma") + String pravniForma(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "PrvniJmeno") + String prvniJmeno(); + + @Parameter(name = "Rezidence") + String rezidence(); + + @Parameter(name = "RizikoKlientaCIS") + String rizikoKlientaCIS(); + + @Parameter(name = "RodneCislo") + String rodneCislo(); + + @Parameter(name = "SerieACisloOP") + String serieACisloOP(); + + @Parameter(name = "SerieAPlatnostOP") + java.util.Date serieAPlatnostOP(); + + @Parameter(name = "SpiciUcet") + String spiciUcet(); + + @Parameter(name = "Telefon") + String telefon(); + + @Parameter(name = "TelefonPredvolba") + String telefonPredvolba(); + + @Parameter(name = "TelefonZamestnani") + Long telefonZamestnani(); + + @Parameter(name = "TitulPred") + String titulPred(); + + @Parameter(name = "TitulZa") + String titulZa(); + + @Parameter(name = "TypDalsihoDokladu") + String typDalsihoDokladu(); + + @Parameter(name = "TypDruhehoDokladu") + String typDruhehoDokladu(); + + @Parameter(name = "TypKlienta") + String typKlienta(); + + @Parameter(name = "TypKlientaDetail") + String typKlientaDetail(); + + @Parameter(name = "Ulice") + String ulice(); + + @Parameter(name = "UliceSpojena") + String uliceSpojena(); + + @Parameter(name = "Vek") + Double vek(); + + @Parameter(name = "Zeme") + String zeme(); + + @Parameter(name = "ZkraceneJmeno") + String zkraceneJmeno(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW1.java new file mode 100644 index 0000000..74d9a80 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW1.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAW1 extends MwfRequest { + + @Parameter(name = "ID_OM") + MWFAW1 idOm(String idOm); + @Parameter(name = "ProduktSales") + MWFAW1 produktSales(String produktSales); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW1Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW1Data.java new file mode 100644 index 0000000..289098a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW1Data.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFAW1Data { + + private Map params; + + public MWFAW1Data(Map params) { + this.params = params; + } + + public String rsBrandkarty() { + return (String) params.get("RS_BRANDKARTY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW1Response.java new file mode 100644 index 0000000..eabe66c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW1Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAW1Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW2.java new file mode 100644 index 0000000..aa9c39e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW2.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAW2 extends MwfRequest { + + @Parameter(name = "BrandKarty") + MWFAW2 brandKarty(String brandKarty); + @Parameter(name = "ID_OM") + MWFAW2 idOm(String idOm); + @Parameter(name = "ProduktSales") + MWFAW2 produktSales(String produktSales); + @Parameter(name = "PromoAkce") + MWFAW2 promoAkce(String promoAkce); + @Parameter(name = "ZadostTyp") + MWFAW2 zadostTyp(String zadostTyp); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW2Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW2Data.java new file mode 100644 index 0000000..6c6440b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW2Data.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFAW2Data { + + private Map params; + + public MWFAW2Data(Map params) { + this.params = params; + } + + public String rsDesignkarty() { + return (String) params.get("RS_DESIGNKARTY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW2Response.java new file mode 100644 index 0000000..968fc49 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW2Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAW2Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW6.java new file mode 100644 index 0000000..a85c495 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW6.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAW6 extends MwfRequest { + + @Parameter(name = "ID_OM") + MWFAW6 idOm(String idOm); + @Parameter(name = "ProduktSales") + MWFAW6 produktSales(String produktSales); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW6Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW6Data.java new file mode 100644 index 0000000..88282bc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW6Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFAW6Data { + + private Map params; + + public MWFAW6Data(Map params) { + this.params = params; + } + + public String rsPopis() { + return (String) params.get("RS_POPIS"); + } + + public String rsPromoakce() { + return (String) params.get("RS_PROMOAKCE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW6Response.java new file mode 100644 index 0000000..b60bcb4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAW6Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAW6Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAZ6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAZ6.java new file mode 100644 index 0000000..938a022 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAZ6.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFAZ6 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFAZ6 appKey(Long appKey); + @Parameter(name = "DECISION_TYPE") + MWFAZ6 decisionType(String decisionType); + @Parameter(name = "EMP_ROLE") + MWFAZ6 empRole(String empRole); + @Parameter(name = "FILTER_VALID_ONLY_FLAG") + MWFAZ6 filterValidOnlyFlag(Long filterValidOnlyFlag); + @Parameter(name = "INST_CUST_ID") + MWFAZ6 instCustId(Long instCustId); + @Parameter(name = "INST_DOC_KEY") + MWFAZ6 instDocKey(Long instDocKey); + @Parameter(name = "INST_OBLGTN_KEY") + MWFAZ6 instOblgtnKey(Long instOblgtnKey); + @Parameter(name = "REASONS_FILTER") + MWFAZ6 reasonsFilter(String reasonsFilter); + @Parameter(name = "REASON_ADD_ROLE") + MWFAZ6 reasonAddRole(String reasonAddRole); + @Parameter(name = "REASON_TEXT_TYPE") + MWFAZ6 reasonTextType(String reasonTextType); + @Parameter(name = "SCREEN_ID") + MWFAZ6 screenId(String screenId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAZ6Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAZ6Data.java new file mode 100644 index 0000000..6650901 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAZ6Data.java @@ -0,0 +1,189 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFAZ6Data { + + private Map params; + + public MWFAZ6Data(Map params) { + this.params = params; + } + + public Long rsApprRsnKey() { + return (Long) params.get("RS_APPR_RSN_KEY"); + } + + public String rsReasonCode() { + return (String) params.get("RS_REASON_CODE"); + } + + public String rsReasonCodeValid() { + return (String) params.get("RS_REASON_CODE_VALID"); + } + + public Long rsApproverValidFlag() { + return (Long) params.get("RS_APPROVER_VALID_FLAG"); + } + + public Long rsDecisionPriority() { + return (Long) params.get("RS_DECISION_PRIORITY"); + } + + public String rsReasonAddUser() { + return (String) params.get("RS_REASON_ADD_USER"); + } + + public String rsReasonAddRoleOut() { + return (String) params.get("RS_REASON_ADD_ROLE_OUT"); + } + + public java.util.Date rsReasonAddTime() { + return (java.util.Date) params.get("RS_REASON_ADD_TIME"); + } + + public String rsReasonInvalUser() { + return (String) params.get("RS_REASON_INVAL_USER"); + } + + public String rsReasonInvalRole() { + return (String) params.get("RS_REASON_INVAL_ROLE"); + } + + public java.util.Date rsReasonInvalTime() { + return (java.util.Date) params.get("RS_REASON_INVAL_TIME"); + } + + public String rsReasonTextInternal() { + return (String) params.get("RS_REASON_TEXT_INTERNAL"); + } + + public String rsReasonTextExternal() { + return (String) params.get("RS_REASON_TEXT_EXTERNAL"); + } + + public String rsReasonTextExternalCz() { + return (String) params.get("RS_REASON_TEXT_EXTERNAL_CZ"); + } + + public String rsReasonTextExternalSk() { + return (String) params.get("RS_REASON_TEXT_EXTERNAL_SK"); + } + + public String rsAdcReasonTextExternalCz() { + return (String) params.get("RS_ADC_REASON_TEXT_EXTERNAL_CZ"); + } + + public String rsAdcReasonTextExternalSk() { + return (String) params.get("RS_ADC_REASON_TEXT_EXTERNAL_SK"); + } + + public String rsReasonTextParameter1() { + return (String) params.get("RS_REASON_TEXT_PARAMETER_1"); + } + + public String rsReasonTextParameter2() { + return (String) params.get("RS_REASON_TEXT_PARAMETER_2"); + } + + public Long rsParameterCount() { + return (Long) params.get("RS_PARAMETER_COUNT"); + } + + public String rsRcNum() { + return (String) params.get("RS_RC_NUM"); + } + + public String rsReasonAddRole() { + return (String) params.get("RS_REASON_ADD_ROLE"); + } + + public String rsFormTypeId() { + return (String) params.get("RS_FORM_TYPE_ID"); + } + + public String rsFormItemAssignmentId() { + return (String) params.get("RS_FORM_ITEM_ASSIGNMENT_ID"); + } + + public String rsNbsmErrorCode() { + return (String) params.get("RS_NBSM_ERROR_CODE"); + } + + public Long rsInstCustIdOut() { + return (Long) params.get("RS_INST_CUST_ID_OUT"); + } + + public String rsDecisionTypeOut() { + return (String) params.get("RS_DECISION_TYPE_OUT"); + } + + public String rsMinEmpRoleInvalidate() { + return (String) params.get("RS_MIN_EMP_ROLE_INVALIDATE"); + } + + public String rsDecisionCategory() { + return (String) params.get("RS_DECISION_CATEGORY"); + } + + public String rsDecisionSubcategory() { + return (String) params.get("RS_DECISION_SUBCATEGORY"); + } + + public Long rsDecisionCategoryPriority() { + return (Long) params.get("RS_DECISION_CATEGORY_PRIORITY"); + } + + public Long rsDecisionSubcategoryPriority() { + return (Long) params.get("RS_DECISION_SUBCATEGORY_PRIORITY"); + } + + public String rsFirstName() { + return (String) params.get("RS_FIRST_NAME"); + } + + public String rsFamilyName() { + return (String) params.get("RS_FAMILY_NAME"); + } + + public String rsClientAppRole() { + return (String) params.get("RS_CLIENT_APP_ROLE"); + } + + public Long rsReasonCanBeInvalidate() { + return (Long) params.get("RS_REASON_CAN_BE_INVALIDATE"); + } + + public String rsEmpSsoId() { + return (String) params.get("RS_EMP_SSO_ID"); + } + + public String rsEmpRoleId() { + return (String) params.get("RS_EMP_ROLE_ID"); + } + + public String rsEmpPositionId() { + return (String) params.get("RS_EMP_POSITION_ID"); + } + + public String rsAppId() { + return (String) params.get("RS_APP_ID"); + } + + public Long rsAppKeyOut() { + return (Long) params.get("RS_APP_KEY_OUT"); + } + + public String rsReasonCorrectionType() { + return (String) params.get("RS_REASON_CORRECTION_TYPE"); + } + + public String rsScrennFormItemAssgn() { + return (String) params.get("RS_SCRENN_FORM_ITEM_ASSGN"); + } + + public Long rsReasonShadowFlag() { + return (Long) params.get("RS_REASON_SHADOW_FLAG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAZ6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAZ6Response.java new file mode 100644 index 0000000..b5de6e0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFAZ6Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAZ6Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB47.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB47.java new file mode 100644 index 0000000..7543474 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB47.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFB47 extends MwfRequest { + + @Parameter(name = "RodneCislo") + MWFB47 rodneCislo(String rodneCislo); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB47Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB47Data.java new file mode 100644 index 0000000..8ff8ac2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB47Data.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFB47Data { + + private Map params; + + public MWFB47Data(Map params) { + this.params = params; + } + + public String rsKategkontr() { + return (String) params.get("RS_KATEGKONTR"); + } + + public String rsTypkontr() { + return (String) params.get("RS_TYPKONTR"); + } + + public String rsRoleklienta() { + return (String) params.get("RS_ROLEKLIENTA"); + } + + public String rsBanka() { + return (String) params.get("RS_BANKA"); + } + + public Double rsDluh() { + return (Double) params.get("RS_DLUH"); + } + + public Double rsSplatka() { + return (Double) params.get("RS_SPLATKA"); + } + + public java.util.Date rsDatumvzniku() { + return (java.util.Date) params.get("RS_DATUMVZNIKU"); + } + + public Double rsZbyvazaplatit() { + return (Double) params.get("RS_ZBYVAZAPLATIT"); + } + + public Long rsPocetsplatek() { + return (Long) params.get("RS_POCETSPLATEK"); + } + + public String rsCcbOperationCode() { + return (String) params.get("RS_CCB_OPERATION_CODE"); + } + + public Double rsRamec() { + return (Double) params.get("RS_RAMEC"); + } + + public Double rsZustatekjistiny() { + return (Double) params.get("RS_ZUSTATEKJISTINY"); + } + + public Long rsDobaposplatnosti() { + return (Long) params.get("RS_DOBAPOSPLATNOSTI"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB47Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB47Response.java new file mode 100644 index 0000000..a226eb8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB47Response.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFB47Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "DatumAktualizace") + java.util.Date datumAktualizace(); + + @Parameter(name = "DluhCelkem") + Double dluhCelkem(); + + @Parameter(name = "DluhNeSplatkove") + Double dluhNeSplatkove(); + + @Parameter(name = "DluhRevolving") + Double dluhRevolving(); + + @Parameter(name = "DluhSplatkove") + Double dluhSplatkove(); + + @Parameter(name = "Index") + Long index(); + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "ZavazekCelkem") + Double zavazekCelkem(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB71.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB71.java new file mode 100644 index 0000000..6f2cccd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB71.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFB71 extends MwfRequest { + + @Parameter(name = "RodneCislo") + MWFB71 rodneCislo(String rodneCislo); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB71Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB71Data.java new file mode 100644 index 0000000..4d4b20d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB71Data.java @@ -0,0 +1,105 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFB71Data { + + private Map params; + + public MWFB71Data(Map params) { + this.params = params; + } + + public String rsCislokarty() { + return (String) params.get("RS_CISLOKARTY"); + } + + public String rsVytlacenejmeno() { + return (String) params.get("RS_VYTLACENEJMENO"); + } + + public String rsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public Double rsCastkauveru() { + return (Double) params.get("RS_CASTKAUVERU"); + } + + public String rsRodnecislo() { + return (String) params.get("RS_RODNECISLO"); + } + + public String rsProduktnazev() { + return (String) params.get("RS_PRODUKTNAZEV"); + } + + public java.util.Date rsDatumuzavrenismlouvy() { + return (java.util.Date) params.get("RS_DATUMUZAVRENISMLOUVY"); + } + + public String rsZdroj() { + return (String) params.get("RS_ZDROJ"); + } + + public String rsCislosmlouvy() { + return (String) params.get("RS_CISLOSMLOUVY"); + } + + public Double rsDluznacastka() { + return (Double) params.get("RS_DLUZNACASTKA"); + } + + public Double rsPreplatek() { + return (Double) params.get("RS_PREPLATEK"); + } + + public String rsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public String rsStavsmlouvy() { + return (String) params.get("RS_STAVSMLOUVY"); + } + + public String rsProduktkod() { + return (String) params.get("RS_PRODUKTKOD"); + } + + public Double rsMesicnisplatka() { + return (Double) params.get("RS_MESICNISPLATKA"); + } + + public String rsKodZeme() { + return (String) params.get("RS_KOD_ZEME"); + } + + public String rsStavuctuopk() { + return (String) params.get("RS_STAVUCTUOPK"); + } + + public String rsCislosmlouvyopk() { + return (String) params.get("RS_CISLOSMLOUVYOPK"); + } + + public String rsOrganizace() { + return (String) params.get("RS_ORGANIZACE"); + } + + public String rsAktivitakarty() { + return (String) params.get("RS_AKTIVITAKARTY"); + } + + public String rsRodnecislomajitel() { + return (String) params.get("RS_RODNECISLOMAJITEL"); + } + + public String rsJmenomajitel() { + return (String) params.get("RS_JMENOMAJITEL"); + } + + public String rsDodatkovakarta() { + return (String) params.get("RS_DODATKOVAKARTA"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB71Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB71Response.java new file mode 100644 index 0000000..8d118c7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFB71Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFB71Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBE0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBE0.java new file mode 100644 index 0000000..75abd0f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBE0.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFBE0 extends MwfRequest { + + @Parameter(name = "CastkaPrvnihoCerpani") + MWFBE0 castkaPrvnihoCerpani(Long castkaPrvnihoCerpani); + @Parameter(name = "PocetSplatek") + MWFBE0 pocetSplatek(Long pocetSplatek); + @Parameter(name = "VariantaVybranaFlag") + MWFBE0 variantaVybranaFlag(String variantaVybranaFlag); + @Parameter(name = "Varianta_KEY") + MWFBE0 variantaKEY(Long variantaKEY); + @Parameter(name = "VyseUveru") + MWFBE0 vyseUveru(Long vyseUveru); + @Parameter(name = "Zadost_KEY") + MWFBE0 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBE0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBE0Response.java new file mode 100644 index 0000000..2aeb73a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBE0Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFBE0Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOL.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOL.java new file mode 100644 index 0000000..d5022e0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOL.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFBOL extends MwfRequest { + + @Parameter(name = "BusinessType") + MWFBOL businessType(String businessType); + @Parameter(name = "ClientInstId") + MWFBOL clientInstId(String clientInstId); + @Parameter(name = "ClientInstKey") + MWFBOL clientInstKey(Long clientInstKey); + @Parameter(name = "ClientInstSysId") + MWFBOL clientInstSysId(String clientInstSysId); + @Parameter(name = "ClientUniKey") + MWFBOL clientUniKey(Long clientUniKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOLClientAttornies.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOLClientAttornies.java new file mode 100644 index 0000000..6ac72da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOLClientAttornies.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFBOLClientAttornies { + + private Map params; + + public MWFBOLClientAttornies(Map params) { + this.params = params; + } + + public Long rsClientattorneyinstkey() { + return (Long) params.get("RS_CLIENTATTORNEYINSTKEY"); + } + + public String rsClientattorneyinstsysid() { + return (String) params.get("RS_CLIENTATTORNEYINSTSYSID"); + } + + public Long rsClientconsentkey() { + return (Long) params.get("RS_CLIENTCONSENTKEY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOLClientConsents.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOLClientConsents.java new file mode 100644 index 0000000..fac4807 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOLClientConsents.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFBOLClientConsents { + + private Map params; + + public MWFBOLClientConsents(Map params) { + this.params = params; + } + + public Long rsConsentkey() { + return (Long) params.get("RS_CONSENTKEY"); + } + + public String rsConsenttype() { + return (String) params.get("RS_CONSENTTYPE"); + } + + public String rsConsentauditflag() { + return (String) params.get("RS_CONSENTAUDITFLAG"); + } + + public java.util.Date rsConsentsigntime() { + return (java.util.Date) params.get("RS_CONSENTSIGNTIME"); + } + + public String rsConsentstate() { + return (String) params.get("RS_CONSENTSTATE"); + } + + public String rsConsentvalue() { + return (String) params.get("RS_CONSENTVALUE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOLResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOLResponse.java new file mode 100644 index 0000000..bf25a6c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBOLResponse.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFBOLResponse { + + @Parameter(name = "ClientAttornies") + java.util.List clientAttornies(); + + @Parameter(name = "ClientConsents") + java.util.List clientConsents(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBV5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBV5.java new file mode 100644 index 0000000..7e0c4eb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBV5.java @@ -0,0 +1,142 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFBV5 extends MwfRequest { + + @Parameter(name = "AAAdresat") + MWFBV5 aAAdresat(String aAAdresat); + @Parameter(name = "AACO") + MWFBV5 aaco(String aaco); + @Parameter(name = "AACP") + MWFBV5 aacp(String aacp); + @Parameter(name = "AACtvrt") + MWFBV5 aACtvrt(String aACtvrt); + @Parameter(name = "AAObec") + MWFBV5 aAObec(String aAObec); + @Parameter(name = "AAPSC") + MWFBV5 aapsc(String aapsc); + @Parameter(name = "AAPosta") + MWFBV5 aAPosta(String aAPosta); + @Parameter(name = "AAUlice") + MWFBV5 aAUlice(String aAUlice); + @Parameter(name = "AAZeme") + MWFBV5 aAZeme(String aAZeme); + @Parameter(name = "AVPole") + MWFBV5 aVPole(String aVPole); + @Parameter(name = "CIF") + MWFBV5 cif(String cif); + @Parameter(name = "Cache") + MWFBV5 cache(Long cache); + @Parameter(name = "CastkaDalsiPlatby") + MWFBV5 castkaDalsiPlatby(Double castkaDalsiPlatby); + @Parameter(name = "CastkaKonecnePlatby") + MWFBV5 castkaKonecnePlatby(Double castkaKonecnePlatby); + @Parameter(name = "CastkaPrvniPlatby") + MWFBV5 castkaPrvniPlatby(Double castkaPrvniPlatby); + @Parameter(name = "CastkaTransakce") + MWFBV5 castkaTransakce(Double castkaTransakce); + @Parameter(name = "CisloCostCentra") + MWFBV5 cisloCostCentra(String cisloCostCentra); + @Parameter(name = "CisloUctuPlatce") + MWFBV5 cisloUctuPlatce(String cisloUctuPlatce); + @Parameter(name = "CisloUctuPrijemce") + MWFBV5 cisloUctuPrijemce(String cisloUctuPrijemce); + @Parameter(name = "CisloUctuPrijemceKodBanky") + MWFBV5 cisloUctuPrijemceKodBanky(String cisloUctuPrijemceKodBanky); + @Parameter(name = "DatumDalsiPlatby") + MWFBV5 datumDalsiPlatby(java.util.Date datumDalsiPlatby); + @Parameter(name = "DatumKonecnePlatby") + MWFBV5 datumKonecnePlatby(java.util.Date datumKonecnePlatby); + @Parameter(name = "DatumNarozeni") + MWFBV5 datumNarozeni(java.util.Date datumNarozeni); + @Parameter(name = "DatumOtevreni") + MWFBV5 datumOtevreni(java.util.Date datumOtevreni); + @Parameter(name = "DatumPrvniPlatby") + MWFBV5 datumPrvniPlatby(java.util.Date datumPrvniPlatby); + @Parameter(name = "DatumPrvnihoVypisu") + MWFBV5 datumPrvnihoVypisu(java.util.Date datumPrvnihoVypisu); + @Parameter(name = "DatumSplatnosti") + MWFBV5 datumSplatnosti(java.util.Date datumSplatnosti); + @Parameter(name = "DistribuceVypisu") + MWFBV5 distribuceVypisu(String distribuceVypisu); + @Parameter(name = "DruhKlienta") + MWFBV5 druhKlienta(String druhKlienta); + @Parameter(name = "DruheJmeno") + MWFBV5 druheJmeno(String druheJmeno); + @Parameter(name = "Jmeno") + MWFBV5 jmeno(String jmeno); + @Parameter(name = "KodBankyPrijemce") + MWFBV5 kodBankyPrijemce(String kodBankyPrijemce); + @Parameter(name = "KodMenyTransakce") + MWFBV5 kodMenyTransakce(Long kodMenyTransakce); + @Parameter(name = "KonstantniSymbol") + MWFBV5 konstantniSymbol(String konstantniSymbol); + @Parameter(name = "NazevUctuPlatce") + MWFBV5 nazevUctuPlatce(String nazevUctuPlatce); + @Parameter(name = "NazevUctuPrijemce") + MWFBV5 nazevUctuPrijemce(String nazevUctuPrijemce); + @Parameter(name = "ObchodniJmeno") + MWFBV5 obchodniJmeno(String obchodniJmeno); + @Parameter(name = "ObchodniMistoKod") + MWFBV5 obchodniMistoKod(String obchodniMistoKod); + @Parameter(name = "ObchodniMistoKodPlatce") + MWFBV5 obchodniMistoKodPlatce(String obchodniMistoKodPlatce); + @Parameter(name = "PausalniPoplatekPocetMesicuZdarma") + MWFBV5 pausalniPoplatekPocetMesicuZdarma(Long pausalniPoplatekPocetMesicuZdarma); + @Parameter(name = "Perioda") + MWFBV5 perioda(String perioda); + @Parameter(name = "PeriodaVypisu") + MWFBV5 periodaVypisu(String periodaVypisu); + @Parameter(name = "PoplatkovyPlan") + MWFBV5 poplatkovyPlan(String poplatkovyPlan); + @Parameter(name = "PostovniPoukazka") + MWFBV5 postovniPoukazka(String postovniPoukazka); + @Parameter(name = "PouzitaAA") + MWFBV5 pouzitaAA(String pouzitaAA); + @Parameter(name = "Prijmeni") + MWFBV5 prijmeni(String prijmeni); + @Parameter(name = "PrimarniUrednik") + MWFBV5 primarniUrednik(String primarniUrednik); + @Parameter(name = "ProduktKod") + MWFBV5 produktKod(String produktKod); + @Parameter(name = "Reference") + MWFBV5 reference(String reference); + @Parameter(name = "SFCisloTP") + MWFBV5 sFCisloTP(String sFCisloTP); + @Parameter(name = "SFMaterBU") + MWFBV5 sFMaterBU(String sFMaterBU); + @Parameter(name = "SFNazevUctu") + MWFBV5 sFNazevUctu(String sFNazevUctu); + @Parameter(name = "SFRozhodneObdobi") + MWFBV5 sFRozhodneObdobi(String sFRozhodneObdobi); + @Parameter(name = "SFVIPKlient") + MWFBV5 sFVIPKlient(String sFVIPKlient); + @Parameter(name = "SekundarniUrednik") + MWFBV5 sekundarniUrednik(String sekundarniUrednik); + @Parameter(name = "SpecifickyDen") + MWFBV5 specifickyDen(Long specifickyDen); + @Parameter(name = "SpecifickySymbol") + MWFBV5 specifickySymbol(Long specifickySymbol); + @Parameter(name = "TPVerifikova") + MWFBV5 tPVerifikova(String tPVerifikova); + @Parameter(name = "TitulPred") + MWFBV5 titulPred(String titulPred); + @Parameter(name = "TitulZa") + MWFBV5 titulZa(String titulZa); + @Parameter(name = "TypCRUctu") + MWFBV5 typCRUctu(String typCRUctu); + @Parameter(name = "TypSO") + MWFBV5 typSO(String typSO); + @Parameter(name = "UlozPSCBezKontroly") + MWFBV5 ulozPSCBezKontroly(String ulozPSCBezKontroly); + @Parameter(name = "Uzivatel") + MWFBV5 uzivatel(String uzivatel); + @Parameter(name = "VariabilniSymbol") + MWFBV5 variabilniSymbol(Long variabilniSymbol); + @Parameter(name = "VypisNaKonciMesice") + MWFBV5 vypisNaKonciMesice(Boolean vypisNaKonciMesice); + @Parameter(name = "ZpusobPripisu") + MWFBV5 zpusobPripisu(String zpusobPripisu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBV5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBV5Response.java new file mode 100644 index 0000000..a808452 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFBV5Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFBV5Response { + + @Parameter(name = "CisloUctu") + String cisloUctu(); + + @Parameter(name = "IDTP") + Long idtp(); + + @Parameter(name = "IDTR") + String idtr(); + + @Parameter(name = "RequestID") + Long requestID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC14.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC14.java new file mode 100644 index 0000000..449e90f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC14.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFC14 extends MwfRequest { + + @Parameter(name = "CisloKaretnihoUctu") + MWFC14 cisloKaretnihoUctu(String cisloKaretnihoUctu); + @Parameter(name = "Program") + MWFC14 program(String program); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC14Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC14Data.java new file mode 100644 index 0000000..59119dc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC14Data.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFC14Data { + + private Map params; + + public MWFC14Data(Map params) { + this.params = params; + } + + public String rsProgram() { + return (String) params.get("RS_PROGRAM"); + } + + public Long rsPocatecnistav() { + return (Long) params.get("RS_POCATECNISTAV"); + } + + public Long rsAktualnistav() { + return (Long) params.get("RS_AKTUALNISTAV"); + } + + public Long rsZiskanebody() { + return (Long) params.get("RS_ZISKANEBODY"); + } + + public Long rsVycerpanebody() { + return (Long) params.get("RS_VYCERPANEBODY"); + } + + public Long rsUpravenebody() { + return (Long) params.get("RS_UPRAVENEBODY"); + } + + public Long rsZiskanebodyodzacatkuroku() { + return (Long) params.get("RS_ZISKANEBODYODZACATKUROKU"); + } + + public Long rsCerpanebodyodzacatkuroku() { + return (Long) params.get("RS_CERPANEBODYODZACATKUROKU"); + } + + public Long rsZiskanebodyodvydanikarty() { + return (Long) params.get("RS_ZISKANEBODYODVYDANIKARTY"); + } + + public Long rsCerpanebodyodvydanikarty() { + return (Long) params.get("RS_CERPANEBODYODVYDANIKARTY"); + } + + public String rsProgramnazev() { + return (String) params.get("RS_PROGRAMNAZEV"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC14Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC14Response.java new file mode 100644 index 0000000..8ef6890 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC14Response.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFC14Response { + + @Parameter(name = "BodyDoKonceMesice") + Long bodyDoKonceMesice(); + + @Parameter(name = "CelkovyAktualniPocetBodu") + Long celkovyAktualniPocetBodu(); + + @Parameter(name = "CelkovyAktualniPocetOdmen") + Double celkovyAktualniPocetOdmen(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "DatumDalsihoVypisu") + java.util.Date datumDalsihoVypisu(); + + @Parameter(name = "OdmenyOdVydaniKarty") + Double odmenyOdVydaniKarty(); + + @Parameter(name = "OdmenyOdZacatkuRoku") + Double odmenyOdZacatkuRoku(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC15.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC15.java new file mode 100644 index 0000000..c073c4a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC15.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFC15 extends MwfRequest { + + @Parameter(name = "CisloKaretnihoUctu") + MWFC15 cisloKaretnihoUctu(String cisloKaretnihoUctu); + @Parameter(name = "DruhKarty") + MWFC15 druhKarty(String druhKarty); + @Parameter(name = "LogoKarty") + MWFC15 logoKarty(String logoKarty); + @Parameter(name = "Program") + MWFC15 program(String program); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC15Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC15Response.java new file mode 100644 index 0000000..c0f1cbd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC15Response.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFC15Response { + + @Parameter(name = "DatumKonceProgramu") + java.util.Date datumKonceProgramu(); + + @Parameter(name = "DatumPosledniTransakce") + java.util.Date datumPosledniTransakce(); + + @Parameter(name = "DatumPrvniTransakce") + java.util.Date datumPrvniTransakce(); + + @Parameter(name = "DatumZapsaniDoProgramu") + java.util.Date datumZapsaniDoProgramu(); + + @Parameter(name = "PopisProgramu") + String popisProgramu(); + + @Parameter(name = "ProgBodyDoKonceMesice") + Long progBodyDoKonceMesice(); + + @Parameter(name = "ProgBodyNaVoucher") + Long progBodyNaVoucher(); + + @Parameter(name = "ProgBodyProslouPlatnosti") + Long progBodyProslouPlatnosti(); + + @Parameter(name = "ProgBodyUpraveneCelkem") + String progBodyUpraveneCelkem(); + + @Parameter(name = "ProgBodyVycerpaneCelkem") + Long progBodyVycerpaneCelkem(); + + @Parameter(name = "ProgBodyVycerpaneZaRok") + Long progBodyVycerpaneZaRok(); + + @Parameter(name = "ProgBodyZiskaneCelkem") + Long progBodyZiskaneCelkem(); + + @Parameter(name = "ProgBodyZiskaneZaRok") + Long progBodyZiskaneZaRok(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC18.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC18.java new file mode 100644 index 0000000..dedc878 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC18.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFC18 extends MwfRequest { + + @Parameter(name = "CisloKaretnihoUctu") + MWFC18 cisloKaretnihoUctu(Long cisloKaretnihoUctu); + @Parameter(name = "CisloKarty") + MWFC18 cisloKarty(String cisloKarty); + @Parameter(name = "DatumTransakce") + MWFC18 datumTransakce(java.util.Date datumTransakce); + @Parameter(name = "DatumTransakceDo") + MWFC18 datumTransakceDo(java.util.Date datumTransakceDo); + @Parameter(name = "DatumTransakceOd") + MWFC18 datumTransakceOd(java.util.Date datumTransakceOd); + @Parameter(name = "DatumVypisu") + MWFC18 datumVypisu(java.util.Date datumVypisu); + @Parameter(name = "DruhKarty") + MWFC18 druhKarty(String druhKarty); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC18Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC18Data.java new file mode 100644 index 0000000..401d4e5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC18Data.java @@ -0,0 +1,105 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFC18Data { + + private Map params; + + public MWFC18Data(Map params) { + this.params = params; + } + + public java.util.Date rsDatumtransakce() { + return (java.util.Date) params.get("RS_DATUMTRANSAKCE"); + } + + public java.util.Date rsDatumzauctovani() { + return (java.util.Date) params.get("RS_DATUMZAUCTOVANI"); + } + + public Double rsCastka() { + return (Double) params.get("RS_CASTKA"); + } + + public String rsTyptransakce() { + return (String) params.get("RS_TYPTRANSAKCE"); + } + + public String rsKreditniplan() { + return (String) params.get("RS_KREDITNIPLAN"); + } + + public String rsPopis() { + return (String) params.get("RS_POPIS"); + } + + public String rsAutorizacnikod() { + return (String) params.get("RS_AUTORIZACNIKOD"); + } + + public String rsUcet() { + return (String) params.get("RS_UCET"); + } + + public Long rsId() { + return (Long) params.get("RS_ID"); + } + + public java.util.Date rsDatumpristihovypisu() { + return (java.util.Date) params.get("RS_DATUMPRISTIHOVYPISU"); + } + + public java.util.Date rsDatumzauctovanivevls() { + return (java.util.Date) params.get("RS_DATUMZAUCTOVANIVEVLS"); + } + + public Long rsPocetbodu() { + return (Long) params.get("RS_POCETBODU"); + } + + public String rsProgram() { + return (String) params.get("RS_PROGRAM"); + } + + public Double rsCastkadual() { + return (Double) params.get("RS_CASTKADUAL"); + } + + public Double rsOdmeny() { + return (Double) params.get("RS_ODMENY"); + } + + public String rsApiTyptxn() { + return (String) params.get("RS_API_TYPTXN"); + } + + public String rsApiKodtxn() { + return (String) params.get("RS_API_KODTXN"); + } + + public String rsCisloobchodnika() { + return (String) params.get("RS_CISLOOBCHODNIKA"); + } + + public String rsCisloprodejnyobchodnika() { + return (String) params.get("RS_CISLOPRODEJNYOBCHODNIKA"); + } + + public String rsDatumprichoduplatby() { + return (String) params.get("RS_DATUMPRICHODUPLATBY"); + } + + public String rsCislouctudebet() { + return (String) params.get("RS_CISLOUCTUDEBET"); + } + + public String rsSpecifickysymbol() { + return (String) params.get("RS_SPECIFICKYSYMBOL"); + } + + public String rsCislokarty() { + return (String) params.get("RS_CISLOKARTY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC18Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC18Response.java new file mode 100644 index 0000000..2e552a1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC18Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFC18Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC19.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC19.java new file mode 100644 index 0000000..e4f0e51 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC19.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFC19 extends MwfRequest { + + @Parameter(name = "CisloKaretnihoUctu") + MWFC19 cisloKaretnihoUctu(Long cisloKaretnihoUctu); + @Parameter(name = "DruhKarty") + MWFC19 druhKarty(String druhKarty); + @Parameter(name = "FiltraceVypisu") + MWFC19 filtraceVypisu(Long filtraceVypisu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC19Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC19Data.java new file mode 100644 index 0000000..b3ea91b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC19Data.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFC19Data { + + private Map params; + + public MWFC19Data(Map params) { + this.params = params; + } + + public java.util.Date rsDatumvypisu() { + return (java.util.Date) params.get("RS_DATUMVYPISU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC19Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC19Response.java new file mode 100644 index 0000000..9972301 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC19Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFC19Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC21.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC21.java new file mode 100644 index 0000000..cb44917 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC21.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFC21 extends MwfRequest { + + @Parameter(name = "CisloKarty") + MWFC21 cisloKarty(String cisloKarty); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC21Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC21Data.java new file mode 100644 index 0000000..2f024a8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC21Data.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFC21Data { + + private Map params; + + public MWFC21Data(Map params) { + this.params = params; + } + + public Long rsPoradovecislo() { + return (Long) params.get("RS_PORADOVECISLO"); + } + + public java.util.Date rsDatumvydani() { + return (java.util.Date) params.get("RS_DATUMVYDANI"); + } + + public String rsProgram() { + return (String) params.get("RS_PROGRAM"); + } + + public String rsInv() { + return (String) params.get("RS_INV"); + } + + public Long rsBody() { + return (Long) params.get("RS_BODY"); + } + + public Long rsPocetvoucheru() { + return (Long) params.get("RS_POCETVOUCHERU"); + } + + public String rsStatus() { + return (String) params.get("RS_STATUS"); + } + + public Long rsSeriovecislo() { + return (Long) params.get("RS_SERIOVECISLO"); + } + + public Double rsHodnota() { + return (Double) params.get("RS_HODNOTA"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC21Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC21Response.java new file mode 100644 index 0000000..80c273d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC21Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFC21Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC22.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC22.java new file mode 100644 index 0000000..ff978d7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC22.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFC22 extends MwfRequest { + + @Parameter(name = "CisloKarty") + MWFC22 cisloKarty(String cisloKarty); + @Parameter(name = "DatumVypisu") + MWFC22 datumVypisu(java.util.Date datumVypisu); + @Parameter(name = "FiltraceVypisu") + MWFC22 filtraceVypisu(Long filtraceVypisu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC22Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC22Data.java new file mode 100644 index 0000000..1f87e87 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC22Data.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFC22Data { + + private Map params; + + public MWFC22Data(Map params) { + this.params = params; + } + + public String rsProgram() { + return (String) params.get("RS_PROGRAM"); + } + + public Long rsPocatecnistav() { + return (Long) params.get("RS_POCATECNISTAV"); + } + + public Long rsZiskanebody() { + return (Long) params.get("RS_ZISKANEBODY"); + } + + public Long rsVycerpanebody() { + return (Long) params.get("RS_VYCERPANEBODY"); + } + + public Long rsUpravenebody() { + return (Long) params.get("RS_UPRAVENEBODY"); + } + + public Long rsKonecnystav() { + return (Long) params.get("RS_KONECNYSTAV"); + } + + public Long rsBodyzjinehoprogramu() { + return (Long) params.get("RS_BODYZJINEHOPROGRAMU"); + } + + public Long rsBodydojinehoprogramu() { + return (Long) params.get("RS_BODYDOJINEHOPROGRAMU"); + } + + public Long rsCelkemziskanebody() { + return (Long) params.get("RS_CELKEMZISKANEBODY"); + } + + public Long rsCelkemodebranebody() { + return (Long) params.get("RS_CELKEMODEBRANEBODY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC22Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC22Response.java new file mode 100644 index 0000000..0052632 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC22Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFC22Response { + + @Parameter(name = "CelkoveKonecneBody") + Long celkoveKonecneBody(); + + @Parameter(name = "CelkovePocatecniBody") + Long celkovePocatecniBody(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC27.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC27.java new file mode 100644 index 0000000..ac592df --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC27.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFC27 extends MwfRequest { + + @Parameter(name = "Call_Systems") + MWFC27 callSystems(String callSystems); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC27Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC27Response.java new file mode 100644 index 0000000..ae9c9d0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC27Response.java @@ -0,0 +1,348 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFC27Response { + + @Parameter(name = "KalkulackaOK") + String kalkulackaOK(); + + @Parameter(name = "StatusATA_STATUS_CODE") + String statusATASTATUSCODE(); + + @Parameter(name = "StatusATA_STATUS_DESC") + String statusATASTATUSDESC(); + + @Parameter(name = "StatusArcha_STATUS_CODE") + String statusArchaSTATUSCODE(); + + @Parameter(name = "StatusArcha_STATUS_DESC") + String statusArchaSTATUSDESC(); + + @Parameter(name = "StatusAuto_STATUS_CODE") + String statusAutoSTATUSCODE(); + + @Parameter(name = "StatusAuto_STATUS_DESC") + String statusAutoSTATUSDESC(); + + @Parameter(name = "StatusBIN_STATUS_CODE") + String statusBINSTATUSCODE(); + + @Parameter(name = "StatusBIN_STATUS_DESC") + String statusBINSTATUSDESC(); + + @Parameter(name = "StatusBRG_STATUS_CODE") + String statusBRGSTATUSCODE(); + + @Parameter(name = "StatusBRG_STATUS_DESC") + String statusBRGSTATUSDESC(); + + @Parameter(name = "StatusBankKlient4") + String statusBankKlient4(); + + @Parameter(name = "StatusBankKlient_STATUS_CODE") + String statusBankKlientSTATUSCODE(); + + @Parameter(name = "StatusBankKlient_STATUS_DESC") + String statusBankKlientSTATUSDESC(); + + @Parameter(name = "StatusCAP_STATUS_CODE") + String statusCAPSTATUSCODE(); + + @Parameter(name = "StatusCAP_STATUS_DESC") + String statusCAPSTATUSDESC(); + + @Parameter(name = "StatusCAS_ERROR_CODE") + String statusCASERRORCODE(); + + @Parameter(name = "StatusCAS_ERROR_DESC") + String statusCASERRORDESC(); + + @Parameter(name = "StatusCAS_RESULT_CODE") + String statusCASRESULTCODE(); + + @Parameter(name = "StatusCAS_STATUS_CODE") + String statusCASSTATUSCODE(); + + @Parameter(name = "StatusCAS_STATUS_DESC") + String statusCASSTATUSDESC(); + + @Parameter(name = "StatusCBL_STATUS_CODE") + String statusCBLSTATUSCODE(); + + @Parameter(name = "StatusCBL_STATUS_DESC") + String statusCBLSTATUSDESC(); + + @Parameter(name = "StatusCDI_STATUS_CODE") + String statusCDISTATUSCODE(); + + @Parameter(name = "StatusCDI_STATUS_DESC") + String statusCDISTATUSDESC(); + + @Parameter(name = "StatusCMD_STATUS_CODE") + String statusCMDSTATUSCODE(); + + @Parameter(name = "StatusCMD_STATUS_DESC") + String statusCMDSTATUSDESC(); + + @Parameter(name = "StatusCND_STATUS_CODE") + String statusCNDSTATUSCODE(); + + @Parameter(name = "StatusCND_STATUS_DESC") + String statusCNDSTATUSDESC(); + + @Parameter(name = "StatusCUR_STATUS_CODE") + String statusCURSTATUSCODE(); + + @Parameter(name = "StatusCUR_STATUS_DESC") + String statusCURSTATUSDESC(); + + @Parameter(name = "StatusCreditCheck_STATUS_CODE") + String statusCreditCheckSTATUSCODE(); + + @Parameter(name = "StatusCreditCheck_STATUS_DESC") + String statusCreditCheckSTATUSDESC(); + + @Parameter(name = "StatusDHB_STATUS_CODE") + String statusDHBSTATUSCODE(); + + @Parameter(name = "StatusDHB_STATUS_DESC") + String statusDHBSTATUSDESC(); + + @Parameter(name = "StatusDMS_STATUS_CODE") + String statusDMSSTATUSCODE(); + + @Parameter(name = "StatusDMS_STATUS_DESC") + String statusDMSSTATUSDESC(); + + @Parameter(name = "StatusEAR_STATUS_CODE") + String statusEARSTATUSCODE(); + + @Parameter(name = "StatusEAR_STATUS_DESC") + String statusEARSTATUSDESC(); + + @Parameter(name = "StatusEDE_STATUS_CODE") + String statusEDESTATUSCODE(); + + @Parameter(name = "StatusEDE_STATUS_DESC") + String statusEDESTATUSDESC(); + + @Parameter(name = "StatusERN_STATUS_CODE") + String statusERNSTATUSCODE(); + + @Parameter(name = "StatusERN_STATUS_DESC") + String statusERNSTATUSDESC(); + + @Parameter(name = "StatusFCO_STATUS_CODE") + String statusFCOSTATUSCODE(); + + @Parameter(name = "StatusFCO_STATUS_DESC") + String statusFCOSTATUSDESC(); + + @Parameter(name = "StatusFDB_STATUS_CODE") + String statusFDBSTATUSCODE(); + + @Parameter(name = "StatusFDB_STATUS_DESC") + String statusFDBSTATUSDESC(); + + @Parameter(name = "StatusFIP_STATUS_CODE") + String statusFIPSTATUSCODE(); + + @Parameter(name = "StatusFIP_STATUS_DESC") + String statusFIPSTATUSDESC(); + + @Parameter(name = "StatusFSP_STATUS_CODE") + String statusFSPSTATUSCODE(); + + @Parameter(name = "StatusFSP_STATUS_DESC") + String statusFSPSTATUSDESC(); + + @Parameter(name = "StatusGEM_GET_NPB") + String statusGEMGETNPB(); + + @Parameter(name = "StatusGMC_STATUS_CODE") + String statusGMCSTATUSCODE(); + + @Parameter(name = "StatusGMC_STATUS_DESC") + String statusGMCSTATUSDESC(); + + @Parameter(name = "StatusGemini4") + String statusGemini4(); + + @Parameter(name = "StatusGemini_STATUS_CODE") + String statusGeminiSTATUSCODE(); + + @Parameter(name = "StatusGemini_STATUS_DESC") + String statusGeminiSTATUSDESC(); + + @Parameter(name = "StatusGraffiti_STATUS_CODE") + String statusGraffitiSTATUSCODE(); + + @Parameter(name = "StatusGraffiti_STATUS_DESC") + String statusGraffitiSTATUSDESC(); + + @Parameter(name = "StatusHypos_STATUS_CODE") + String statusHyposSTATUSCODE(); + + @Parameter(name = "StatusHypos_STATUS_DESC") + String statusHyposSTATUSDESC(); + + @Parameter(name = "StatusICBS") + String statusICBS(); + + @Parameter(name = "StatusIHE_STATUS_CODE") + String statusIHESTATUSCODE(); + + @Parameter(name = "StatusIHE_STATUS_DESC") + String statusIHESTATUSDESC(); + + @Parameter(name = "StatusIH_STATUS_CODE") + String statusIHSTATUSCODE(); + + @Parameter(name = "StatusIH_STATUS_DESC") + String statusIHSTATUSDESC(); + + @Parameter(name = "StatusIND_STATUS_CODE") + String statusINDSTATUSCODE(); + + @Parameter(name = "StatusIND_STATUS_DESC") + String statusINDSTATUSDESC(); + + @Parameter(name = "StatusISR_STATUS_CODE") + String statusISRSTATUSCODE(); + + @Parameter(name = "StatusISR_STATUS_DESC") + String statusISRSTATUSDESC(); + + @Parameter(name = "StatusLNK_STATUS_CODE") + String statusLNKSTATUSCODE(); + + @Parameter(name = "StatusLNK_STATUS_DESC") + String statusLNKSTATUSDESC(); + + @Parameter(name = "StatusNAS_STATUS_CODE") + String statusNASSTATUSCODE(); + + @Parameter(name = "StatusNAS_STATUS_DESC") + String statusNASSTATUSDESC(); + + @Parameter(name = "StatusNDB_STATUS_CODE") + String statusNDBSTATUSCODE(); + + @Parameter(name = "StatusNDB_STATUS_DESC") + String statusNDBSTATUSDESC(); + + @Parameter(name = "StatusODS_STATUS_CODE") + String statusODSSTATUSCODE(); + + @Parameter(name = "StatusODS_STATUS_DESC") + String statusODSSTATUSDESC(); + + @Parameter(name = "StatusPAE_STATUS_CODE") + String statusPAESTATUSCODE(); + + @Parameter(name = "StatusPAE_STATUS_DESC") + String statusPAESTATUSDESC(); + + @Parameter(name = "StatusPAS_STATUS_CODE") + String statusPASSTATUSCODE(); + + @Parameter(name = "StatusPAS_STATUS_DESC") + String statusPASSTATUSDESC(); + + @Parameter(name = "StatusPMG_STATUS_CODE") + String statusPMGSTATUSCODE(); + + @Parameter(name = "StatusPMG_STATUS_DESC") + String statusPMGSTATUSDESC(); + + @Parameter(name = "StatusPSE_STATUS_CODE") + String statusPSESTATUSCODE(); + + @Parameter(name = "StatusPSE_STATUS_DESC") + String statusPSESTATUSDESC(); + + @Parameter(name = "StatusRTS_STATUS_CODE") + String statusRTSSTATUSCODE(); + + @Parameter(name = "StatusRTS_STATUS_DESC") + String statusRTSSTATUSDESC(); + + @Parameter(name = "StatusSAB_STATUS_CODE") + String statusSABSTATUSCODE(); + + @Parameter(name = "StatusSAB_STATUS_DESC") + String statusSABSTATUSDESC(); + + @Parameter(name = "StatusSAGS_STATUS_CODE") + String statusSAGSSTATUSCODE(); + + @Parameter(name = "StatusSAGS_STATUS_DESC") + String statusSAGSSTATUSDESC(); + + @Parameter(name = "StatusSBO_STATUS_CODE") + String statusSBOSTATUSCODE(); + + @Parameter(name = "StatusSBO_STATUS_DESC") + String statusSBOSTATUSDESC(); + + @Parameter(name = "StatusSFC_STATUS_CODE") + String statusSFCSTATUSCODE(); + + @Parameter(name = "StatusSFC_STATUS_DESC") + String statusSFCSTATUSDESC(); + + @Parameter(name = "StatusSIS_STATUS_CODE") + String statusSISSTATUSCODE(); + + @Parameter(name = "StatusSIS_STATUS_DESC") + String statusSISSTATUSDESC(); + + @Parameter(name = "StatusSMS_STATUS_CODE") + String statusSMSSTATUSCODE(); + + @Parameter(name = "StatusSMS_STATUS_DESC") + String statusSMSSTATUSDESC(); + + @Parameter(name = "StatusSRT_STATUS_CODE") + String statusSRTSTATUSCODE(); + + @Parameter(name = "StatusSRT_STATUS_DESC") + String statusSRTSTATUSDESC(); + + @Parameter(name = "StatusTECH1_STATUS_CODE") + String statusTECH1STATUSCODE(); + + @Parameter(name = "StatusTECH1_STATUS_DESC") + String statusTECH1STATUSDESC(); + + @Parameter(name = "StatusTECH2_STATUS_CODE") + String statusTECH2STATUSCODE(); + + @Parameter(name = "StatusTECH2_STATUS_DESC") + String statusTECH2STATUSDESC(); + + @Parameter(name = "StatusVSW_STATUS_CODE") + String statusVSWSTATUSCODE(); + + @Parameter(name = "StatusVSW_STATUS_DESC") + String statusVSWSTATUSDESC(); + + @Parameter(name = "StatusVisionPlus4") + String statusVisionPlus4(); + + @Parameter(name = "StatusWPS_STATUS_CODE") + String statusWPSSTATUSCODE(); + + @Parameter(name = "StatusWPS_STATUS_DESC") + String statusWPSSTATUSDESC(); + + @Parameter(name = "StatusXYZ_STATUS_CODE") + String statusXYZSTATUSCODE(); + + @Parameter(name = "StatusXYZ_STATUS_DESC") + String statusXYZSTATUSDESC(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC79.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC79.java new file mode 100644 index 0000000..dc4ab10 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC79.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFC79 extends MwfRequest { + + @Parameter(name = "CisloKarty") + MWFC79 cisloKarty(String cisloKarty); + @Parameter(name = "Kanal") + MWFC79 kanal(String kanal); + @Parameter(name = "LogoKarty") + MWFC79 logoKarty(String logoKarty); + @Parameter(name = "MajitelDatumNarozeni") + MWFC79 majitelDatumNarozeni(java.util.Date majitelDatumNarozeni); + @Parameter(name = "MajitelPracovniPomer") + MWFC79 majitelPracovniPomer(String majitelPracovniPomer); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC79Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC79Data.java new file mode 100644 index 0000000..4f180a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC79Data.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFC79Data { + + private Map params; + + public MWFC79Data(Map params) { + this.params = params; + } + + public String rsDs() { + return (String) params.get("RS_DS"); + } + + public String rsStatus() { + return (String) params.get("RS_STATUS"); + } + + public java.util.Date rsDatumvydani() { + return (java.util.Date) params.get("RS_DATUMVYDANI"); + } + + public Double rsCena() { + return (Double) params.get("RS_CENA"); + } + + public java.util.Date rsDatumucinnosti() { + return (java.util.Date) params.get("RS_DATUMUCINNOSTI"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC79Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC79Response.java new file mode 100644 index 0000000..abed2bc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC79Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFC79Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC80.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC80.java new file mode 100644 index 0000000..d62d656 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC80.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFC80 extends MwfRequest { + + @Parameter(name = "CisloUctu") + MWFC80 cisloUctu(String cisloUctu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC80Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC80Response.java new file mode 100644 index 0000000..04c0593 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFC80Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFC80Response { + + @Parameter(name = "CisloUctuExt") + String cisloUctuExt(); + + @Parameter(name = "CisloUctuIBAN") + String cisloUctuIBAN(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF6.java new file mode 100644 index 0000000..dce9fec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF6.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCF6 extends MwfRequest { + + @Parameter(name = "ADMKanalID") + MWFCF6 aDMKanalID(Long aDMKanalID); + @Parameter(name = "ADMPopis") + MWFCF6 aDMPopis(String aDMPopis); + @Parameter(name = "ADMSessionID") + MWFCF6 aDMSessionID(String aDMSessionID); + @Parameter(name = "ADMSuperUziID") + MWFCF6 aDMSuperUziID(Long aDMSuperUziID); + @Parameter(name = "ADMUzivatelHeslo") + MWFCF6 aDMUzivatelHeslo(String aDMUzivatelHeslo); + @Parameter(name = "ADMUzivatelskeJmeno") + MWFCF6 aDMUzivatelskeJmeno(String aDMUzivatelskeJmeno); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF6Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF6Data.java new file mode 100644 index 0000000..71e29f6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF6Data.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFCF6Data { + + private Map params; + + public MWFCF6Data(Map params) { + this.params = params; + } + + public String rsRole() { + return (String) params.get("RS_ROLE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF6Response.java new file mode 100644 index 0000000..e27ab83 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF6Response.java @@ -0,0 +1,78 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCF6Response { + + @Parameter(name = "ADMDobaPlatnostiHesla") + Long aDMDobaPlatnostiHesla(); + + @Parameter(name = "ADMExistujiciUcet") + String aDMExistujiciUcet(); + + @Parameter(name = "ADMIPAddress") + String aDMIPAddress(); + + @Parameter(name = "ADMJednorazoveHeslo") + String aDMJednorazoveHeslo(); + + @Parameter(name = "ADMOMKod") + String aDMOMKod(); + + @Parameter(name = "ADMPocetChybnychZadani") + Long aDMPocetChybnychZadani(); + + @Parameter(name = "ADMReprezentantOMJmenoPrijmeni") + String aDMReprezentantOMJmenoPrijmeni(); + + @Parameter(name = "ADMReprezentantOMTelefon") + String aDMReprezentantOMTelefon(); + + @Parameter(name = "ADMRoleVsechnaOM") + String aDMRoleVsechnaOM(); + + @Parameter(name = "ADMTelefonHotline") + String aDMTelefonHotline(); + + @Parameter(name = "ADMTelefonServis") + String aDMTelefonServis(); + + @Parameter(name = "ADMTimeOut") + Long aDMTimeOut(); + + @Parameter(name = "ADMUzivatelID") + Long aDMUzivatelID(); + + @Parameter(name = "ADMUzivatelJazykID") + Long aDMUzivatelJazykID(); + + @Parameter(name = "ADMUzivatelJmeno") + String aDMUzivatelJmeno(); + + @Parameter(name = "ADMUzivatelJmenoPrijmeni") + String aDMUzivatelJmenoPrijmeni(); + + @Parameter(name = "ADMUzivatelPrijmeni") + String aDMUzivatelPrijmeni(); + + @Parameter(name = "ADMUzivatelPusobisteID") + Long aDMUzivatelPusobisteID(); + + @Parameter(name = "ADMUzivatelSSO") + Long aDMUzivatelSSO(); + + @Parameter(name = "ADMUzivatelTisk") + String aDMUzivatelTisk(); + + @Parameter(name = "ADMUzivatelUrovenLogovani") + Long aDMUzivatelUrovenLogovani(); + + @Parameter(name = "ADMVyssiPrava") + String aDMVyssiPrava(); + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF7.java new file mode 100644 index 0000000..a56c4bf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF7.java @@ -0,0 +1,52 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCF7 extends MwfRequest { + + @Parameter(name = "ACCOUNT_NUMBER") + MWFCF7 accountNumber(String accountNumber); + @Parameter(name = "APPL_ID") + MWFCF7 applId(String applId); + @Parameter(name = "CARD_BRAND") + MWFCF7 cardBrand(String cardBrand); + @Parameter(name = "CHANNEL_TYPE") + MWFCF7 channelType(String channelType); + @Parameter(name = "CLIENT_GROUP") + MWFCF7 clientGroup(String clientGroup); + @Parameter(name = "CONTRACT_NUMBER") + MWFCF7 contractNumber(String contractNumber); + @Parameter(name = "CPI") + MWFCF7 cpi(String cpi); + @Parameter(name = "DEFER_DAYS_COUNT") + MWFCF7 deferDaysCount(Long deferDaysCount); + @Parameter(name = "DEFER_MONTHS_COUNT") + MWFCF7 deferMonthsCount(Long deferMonthsCount); + @Parameter(name = "DISCOUNT_TYPE") + MWFCF7 discountType(String discountType); + @Parameter(name = "FEE_PLAN_TYPE") + MWFCF7 feePlanType(String feePlanType); + @Parameter(name = "FIRST_DRAW_AMT") + MWFCF7 firstDrawAmt(Double firstDrawAmt); + @Parameter(name = "GE_OBLGTN_SUM") + MWFCF7 geOblgtnSum(Double geOblgtnSum); + @Parameter(name = "ID_OM") + MWFCF7 idOm(String idOm); + @Parameter(name = "INT_RATE") + MWFCF7 intRate(Double intRate); + @Parameter(name = "LOAN_AMOUNT") + MWFCF7 loanAmount(Double loanAmount); + @Parameter(name = "OPERATION_TYPE") + MWFCF7 operationType(String operationType); + @Parameter(name = "RBP_CATEGORY") + MWFCF7 rbpCategory(String rbpCategory); + @Parameter(name = "SALES_PRODUCT_TYPE") + MWFCF7 salesProductType(String salesProductType); + @Parameter(name = "TERM") + MWFCF7 term(Long term); + @Parameter(name = "VARIANT_ID") + MWFCF7 variantId(String variantId); + @Parameter(name = "XSELL_CAMPAIGN") + MWFCF7 xsellCampaign(String xsellCampaign); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF7Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF7Data.java new file mode 100644 index 0000000..d1c6f4d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF7Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFCF7Data { + + private Map params; + + public MWFCF7Data(Map params) { + this.params = params; + } + + public String rsFeeType() { + return (String) params.get("RS_FEE_TYPE"); + } + + public Double rsFeeAmount() { + return (Double) params.get("RS_FEE_AMOUNT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF7Response.java new file mode 100644 index 0000000..9c722c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCF7Response.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCF7Response { + + @Parameter(name = "BONUS_AMOUNT") + Double bonusAmount(); + + @Parameter(name = "BONUS_PAY_PERIOD") + String bonusPayPeriod(); + + @Parameter(name = "BONUS_PAY_TYPE") + String bonusPayType(); + + @Parameter(name = "BONUS_TOTAL_AMOUNT") + Double bonusTotalAmount(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "ERR_MESSAGE") + String errMessage(); + + @Parameter(name = "FIRST_DRAW_AMT") + Double firstDrawAmt(); + + @Parameter(name = "INST_AMOUNT") + Double instAmount(); + + @Parameter(name = "INT_RATE") + Double intRate(); + + @Parameter(name = "LAST_INST_AMOUNT") + Double lastInstAmount(); + + @Parameter(name = "LOAN_AMOUNT") + Double loanAmount(); + + @Parameter(name = "PRODUCT_TYPE") + String productType(); + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "RPSN") + Double rpsn(); + + @Parameter(name = "SUPPL_SERVICES_AMOUNT") + Double supplServicesAmount(); + + @Parameter(name = "TERM") + Long term(); + + @Parameter(name = "TOTAL_AMOUNT") + Double totalAmount(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCH2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCH2.java new file mode 100644 index 0000000..0054ea8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCH2.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCH2 extends MwfRequest { + + @Parameter(name = "CIF") + MWFCH2 cif(String cif); + @Parameter(name = "Cache") + MWFCH2 cache(Long cache); + @Parameter(name = "GeminiUserID") + MWFCH2 geminiUserID(Long geminiUserID); + @Parameter(name = "ProductID") + MWFCH2 productID(String productID); + @Parameter(name = "Signature") + MWFCH2 signature(String signature); + @Parameter(name = "ZadostAP") + MWFCH2 zadostAP(String zadostAP); + @Parameter(name = "Zadost_KEY") + MWFCH2 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCH2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCH2Response.java new file mode 100644 index 0000000..f0083e9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCH2Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCH2Response { + + @Parameter(name = "RequestID") + Long requestID(); + + @Parameter(name = "SchvalenoFlag") + Boolean schvalenoFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ4.java new file mode 100644 index 0000000..9310f84 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ4.java @@ -0,0 +1,52 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCJ4 extends MwfRequest { + + @Parameter(name = "CAS_ROZMEZI_KONTAKTU") + MWFCJ4 casRozmeziKontaktu(String casRozmeziKontaktu); + @Parameter(name = "CISLO_SMLOUVY") + MWFCJ4 cisloSmlouvy(String cisloSmlouvy); + @Parameter(name = "CISLO_UCTU") + MWFCJ4 cisloUctu(String cisloUctu); + @Parameter(name = "DATUM_EXPIRACE") + MWFCJ4 datumExpirace(java.util.Date datumExpirace); + @Parameter(name = "DATUM_KONTAKTU") + MWFCJ4 datumKontaktu(java.util.Date datumKontaktu); + @Parameter(name = "EMAIL") + MWFCJ4 email(String email); + @Parameter(name = "HODNOTA_SUBJEKTU") + MWFCJ4 hodnotaSubjektu(String hodnotaSubjektu); + @Parameter(name = "JMENO") + MWFCJ4 jmeno(String jmeno); + @Parameter(name = "NAZEV_FIRMY") + MWFCJ4 nazevFirmy(String nazevFirmy); + @Parameter(name = "OBEC") + MWFCJ4 obec(String obec); + @Parameter(name = "OPERATOR_SSO") + MWFCJ4 operatorSso(String operatorSso); + @Parameter(name = "POZNAMKA") + MWFCJ4 poznamka(String poznamka); + @Parameter(name = "PREDNOSTNI_VYRIZENI") + MWFCJ4 prednostniVyrizeni(Long prednostniVyrizeni); + @Parameter(name = "PRIJMENI") + MWFCJ4 prijmeni(String prijmeni); + @Parameter(name = "PRIRAZENY_BANKER") + MWFCJ4 prirazenyBanker(String prirazenyBanker); + @Parameter(name = "SEGMENT") + MWFCJ4 segment(String segment); + @Parameter(name = "TELEFON") + MWFCJ4 telefon(String telefon); + @Parameter(name = "TELEFON2") + MWFCJ4 telefon2(String telefon2); + @Parameter(name = "TS_CIS_SUBJEKTU") + MWFCJ4 tsCisSubjektu(Long tsCisSubjektu); + @Parameter(name = "TYP_KONTAKTU") + MWFCJ4 typKontaktu(String typKontaktu); + @Parameter(name = "ZAJEM_O_PRODUKT") + MWFCJ4 zajemOProdukt(String zajemOProdukt); + @Parameter(name = "ZDROJ_KONTAKTU") + MWFCJ4 zdrojKontaktu(String zdrojKontaktu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ4Response.java new file mode 100644 index 0000000..d94ffa2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ4Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCJ4Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ9.java new file mode 100644 index 0000000..6147e73 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ9.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCJ9 extends MwfRequest { + + @Parameter(name = "CisloSmlouvy") + MWFCJ9 cisloSmlouvy(String cisloSmlouvy); + @Parameter(name = "UUCislo") + MWFCJ9 uUCislo(String uUCislo); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ9Response.java new file mode 100644 index 0000000..a34d133 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCJ9Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCJ9Response { + + @Parameter(name = "CisloSmlouvy") + String cisloSmlouvy(); + + @Parameter(name = "DatumPodpisuSmlouvy") + java.util.Date datumPodpisuSmlouvy(); + + @Parameter(name = "UUCislo") + String uUCislo(); + + @Parameter(name = "ZadostAP") + String zadostAP(); + + @Parameter(name = "Zadost_KEY") + Long zadostKEY(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1.java new file mode 100644 index 0000000..03ccd7e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCK1 extends MwfRequest { + + @Parameter(name = "INRS_DATA") + MWFCK1 inrsData(java.util.List inrsData); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1InrsData.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1InrsData.java new file mode 100644 index 0000000..32157a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1InrsData.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFCK1InrsData implements MwfData { + + private Map params = new HashMap<>(); + + private MWFCK1InrsData() {} + + public static MWFCK1InrsData builder() { + return new MWFCK1InrsData(); + } + + public MWFCK1InrsData rsTypuctu(Long rsTypuctu) { + params.put("RS_TYPUCTU", rsTypuctu); + return this; + } + + public MWFCK1InrsData rsCislouctu(String rsCislouctu) { + params.put("RS_CISLOUCTU", rsCislouctu); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1OutrsData.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1OutrsData.java new file mode 100644 index 0000000..c03eec6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1OutrsData.java @@ -0,0 +1,81 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFCK1OutrsData { + + private Map params; + + public MWFCK1OutrsData(Map params) { + this.params = params; + } + + public Long rsId() { + return (Long) params.get("RS_ID"); + } + + public String rsPerioda() { + return (String) params.get("RS_PERIODA"); + } + + public java.util.Date rsDatumplatnostiod() { + return (java.util.Date) params.get("RS_DATUMPLATNOSTIOD"); + } + + public Double rsCastakzbyvajicivperiode() { + return (Double) params.get("RS_CASTAKZBYVAJICIVPERIODE"); + } + + public java.util.Date rsDatumplatnostdo() { + return (java.util.Date) params.get("RS_DATUMPLATNOSTDO"); + } + + public Long rsPocettransakcivperiode() { + return (Long) params.get("RS_POCETTRANSAKCIVPERIODE"); + } + + public Long rsCislouctu() { + return (Long) params.get("RS_CISLOUCTU"); + } + + public String rsUzivatelzmeny() { + return (String) params.get("RS_UZIVATELZMENY"); + } + + public Double rsCastkalimitu() { + return (Double) params.get("RS_CASTKALIMITU"); + } + + public String rsKodbanky() { + return (String) params.get("RS_KODBANKY"); + } + + public String rsUcetprijemce() { + return (String) params.get("RS_UCETPRIJEMCE"); + } + + public String rsNazevuctuprijemce() { + return (String) params.get("RS_NAZEVUCTUPRIJEMCE"); + } + + public java.util.Date rsDatumposledniplatby() { + return (java.util.Date) params.get("RS_DATUMPOSLEDNIPLATBY"); + } + + public Double rsVyseposledniplatby() { + return (Double) params.get("RS_VYSEPOSLEDNIPLATBY"); + } + + public String rsStav() { + return (String) params.get("RS_STAV"); + } + + public String rsNazevuctu() { + return (String) params.get("RS_NAZEVUCTU"); + } + + public java.util.Date rsDatumposlednihopokusu() { + return (java.util.Date) params.get("RS_DATUMPOSLEDNIHOPOKUSU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1Response.java new file mode 100644 index 0000000..b3b781b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK1Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCK1Response { + + @Parameter(name = "OUTRS_DATA") + java.util.List outrsData(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK6.java new file mode 100644 index 0000000..684ab13 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK6.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCK6 extends MwfRequest { + + @Parameter(name = "CLIENT_TYPE") + MWFCK6 clientType(String clientType); + @Parameter(name = "CONTRACT_ID") + MWFCK6 contractId(String contractId); + @Parameter(name = "CONTRACT_SYSTEM") + MWFCK6 contractSystem(String contractSystem); + @Parameter(name = "DISTR_CHANNEL_ID") + MWFCK6 distrChannelId(String distrChannelId); + @Parameter(name = "ICO") + MWFCK6 ico(String ico); + @Parameter(name = "NAME") + MWFCK6 name(String name); + @Parameter(name = "ONLINE_CHECK") + MWFCK6 onlineCheck(Long onlineCheck); + @Parameter(name = "POS_ID") + MWFCK6 posId(String posId); + @Parameter(name = "SURNAME") + MWFCK6 surname(String surname); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK6Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK6Data.java new file mode 100644 index 0000000..65a313b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK6Data.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFCK6Data { + + private Map params; + + public MWFCK6Data(Map params) { + this.params = params; + } + + public String rsProductType() { + return (String) params.get("RS_PRODUCT_TYPE"); + } + + public Double rsInfolimit() { + return (Double) params.get("RS_INFOLIMIT"); + } + + public String rsAccId() { + return (String) params.get("RS_ACC_ID"); + } + + public String rsCurrency() { + return (String) params.get("RS_CURRENCY"); + } + + public String rsContractNr() { + return (String) params.get("RS_CONTRACT_NR"); + } + + public Double rsCashLimitPercent() { + return (Double) params.get("RS_CASH_LIMIT_PERCENT"); + } + + public Double rsInstalmentPercent() { + return (Double) params.get("RS_INSTALMENT_PERCENT"); + } + + public Double rsInfolimitGuaranted() { + return (Double) params.get("RS_INFOLIMIT_GUARANTED"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK6Response.java new file mode 100644 index 0000000..c78ae43 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCK6Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCK6Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Index") + Long index(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCS9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCS9.java new file mode 100644 index 0000000..19f6ff3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCS9.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCS9 extends MwfRequest { + + @Parameter(name = "CIF") + MWFCS9 cif(String cif); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCS9Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCS9Data.java new file mode 100644 index 0000000..914ce8f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCS9Data.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFCS9Data { + + private Map params; + + public MWFCS9Data(Map params) { + this.params = params; + } + + public Double rsVysenesplacenejistiny() { + return (Double) params.get("RS_VYSENESPLACENEJISTINY"); + } + + public Double rsVyseschvalenecastky() { + return (Double) params.get("RS_VYSESCHVALENECASTKY"); + } + + public String rsCislouctu() { + return (String) params.get("RS_CISLOUCTU"); + } + + public String rsVztahkhypotece() { + return (String) params.get("RS_VZTAHKHYPOTECE"); + } + + public Double rsMesicnisplatkacelkem() { + return (Double) params.get("RS_MESICNISPLATKACELKEM"); + } + + public java.util.Date rsDatumpristisplatky() { + return (java.util.Date) params.get("RS_DATUMPRISTISPLATKY"); + } + + public Double rsDluznacastkaposplatnosti() { + return (Double) params.get("RS_DLUZNACASTKAPOSPLATNOSTI"); + } + + public String rsStavhypoteky() { + return (String) params.get("RS_STAVHYPOTEKY"); + } + + public java.util.Date rsDatumdostupnostiinformaci() { + return (java.util.Date) params.get("RS_DATUMDOSTUPNOSTIINFORMACI"); + } + + public java.util.Date rsDatumprvninazaplacenesplatky() { + return (java.util.Date) params.get("RS_DATUMPRVNINAZAPLACENESPLATKY"); + } + + public String rsPriznakodepsanehouveru() { + return (String) params.get("RS_PRIZNAKODEPSANEHOUVERU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCS9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCS9Response.java new file mode 100644 index 0000000..d7de74e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCS9Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCS9Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT0.java new file mode 100644 index 0000000..967c029 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT0.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCT0 extends MwfRequest { + + @Parameter(name = "CIF") + MWFCT0 cif(String cif); + @Parameter(name = "Cache") + MWFCT0 cache(Long cache); + @Parameter(name = "CisloUctu") + MWFCT0 cisloUctu(String cisloUctu); + @Parameter(name = "ICO") + MWFCT0 ico(String ico); + @Parameter(name = "PoplatkovyPlan") + MWFCT0 poplatkovyPlan(String poplatkovyPlan); + @Parameter(name = "PoplatkovyPlanPuvodni") + MWFCT0 poplatkovyPlanPuvodni(String poplatkovyPlanPuvodni); + @Parameter(name = "RetezecDoCache") + MWFCT0 retezecDoCache(String retezecDoCache); + @Parameter(name = "TypAkce") + MWFCT0 typAkce(String typAkce); + @Parameter(name = "UzivatelID") + MWFCT0 uzivatelID(Long uzivatelID); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT0Response.java new file mode 100644 index 0000000..9e218b9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT0Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCT0Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT2.java new file mode 100644 index 0000000..fa2aaca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT2.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCT2 extends MwfRequest { + + @Parameter(name = "CisloUU") + MWFCT2 cisloUU(String cisloUU); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT2Response.java new file mode 100644 index 0000000..ed99c60 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCT2Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCT2Response { + + @Parameter(name = "SchvalenaVyseUveru") + Double schvalenaVyseUveru(); + + @Parameter(name = "StavHypoteky") + String stavHypoteky(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCV6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCV6.java new file mode 100644 index 0000000..eba7d34 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCV6.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCV6 extends MwfRequest { + + @Parameter(name = "MajitelRC") + MWFCV6 majitelRC(String majitelRC); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCV6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCV6Response.java new file mode 100644 index 0000000..e71990f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCV6Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCV6Response { + + @Parameter(name = "DuvodZamitnuti") + String duvodZamitnuti(); + + @Parameter(name = "PojisteniPovoleno") + String pojisteniPovoleno(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCW6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCW6.java new file mode 100644 index 0000000..6949c0b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCW6.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCW6 extends MwfRequest { + + @Parameter(name = "BIRTH_NUMBER") + MWFCW6 birthNumber(String birthNumber); + @Parameter(name = "BUILD_NAME") + MWFCW6 buildName(String buildName); + @Parameter(name = "CHANNEL") + MWFCW6 channel(String channel); + @Parameter(name = "CLIENT_GROUP") + MWFCW6 clientGroup(String clientGroup); + @Parameter(name = "CLIENT_SIGNED") + MWFCW6 clientSigned(String clientSigned); + @Parameter(name = "CLIENT_TYPE") + MWFCW6 clientType(String clientType); + @Parameter(name = "CM_ID_IN") + MWFCW6 cmIdIn(String cmIdIn); + @Parameter(name = "CONTEXT") + MWFCW6 context(Long context); + @Parameter(name = "DOCUMENT_GROUP") + MWFCW6 documentGroup(String documentGroup); + @Parameter(name = "DOCUMENT_TYPE") + MWFCW6 documentType(String documentType); + @Parameter(name = "ID_APPL") + MWFCW6 idAppl(String idAppl); + @Parameter(name = "PRODUCT_TYPE") + MWFCW6 productType(String productType); + @Parameter(name = "PrintType") + MWFCW6 printType(String printType); + @Parameter(name = "RTP_NAME") + MWFCW6 rtpName(String rtpName); + @Parameter(name = "TIMESTAMP_SIGN") + MWFCW6 timestampSign(java.util.Date timestampSign); + @Parameter(name = "TRANSACTION_ID") + MWFCW6 transactionId(String transactionId); + @Parameter(name = "VALIDITY_FROM") + MWFCW6 validityFrom(java.util.Date validityFrom); + @Parameter(name = "VIEW_CLIENT") + MWFCW6 viewClient(String viewClient); + @Parameter(name = "WIDTH") + MWFCW6 width(Long width); + @Parameter(name = "XML") + MWFCW6 xml(String xml); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCW6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCW6Response.java new file mode 100644 index 0000000..90064f2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCW6Response.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCW6Response { + + @Parameter(name = "BINARY_DATA_PDF") + String binaryDataPdf(); + + @Parameter(name = "BINARY_DATA_PNG") + String binaryDataPng(); + + @Parameter(name = "CM_ID_OUT") + String cmIdOut(); + + @Parameter(name = "CM_ID_PNG") + String cmIdPng(); + + @Parameter(name = "LOCATION_PDF") + String locationPdf(); + + @Parameter(name = "LOCATION_PNG") + String locationPng(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX4.java new file mode 100644 index 0000000..1377900 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX4.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCX4 extends MwfRequest { + + @Parameter(name = "PRODUKT_TYPE") + MWFCX4 produktType(String produktType); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX4Response.java new file mode 100644 index 0000000..d99310a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX4Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCX4Response { + + @Parameter(name = "PENALTY_INTERES") + Double penaltyInteres(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX9.java new file mode 100644 index 0000000..9f24ea9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX9.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFCX9 extends MwfRequest { + + @Parameter(name = "CisloUctuInterni") + MWFCX9 cisloUctuInterni(String cisloUctuInterni); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX9Response.java new file mode 100644 index 0000000..ca46512 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFCX9Response.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFCX9Response { + + @Parameter(name = "FrekvenceNulovaniLimitu") + String frekvenceNulovaniLimitu(); + + @Parameter(name = "LimitTransakci") + Long limitTransakci(); + + @Parameter(name = "PeriodaNulovaniLimitu") + String periodaNulovaniLimitu(); + + @Parameter(name = "PocetZauctovanychTran") + Long pocetZauctovanychTran(); + + @Parameter(name = "PristiDatumNulovaniLimitu") + java.util.Date pristiDatumNulovaniLimitu(); + + @Parameter(name = "SpecifickyDen") + Long specifickyDen(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD28.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD28.java new file mode 100644 index 0000000..ce747b2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD28.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFD28 extends MwfRequest { + + @Parameter(name = "IDBusiness") + MWFD28 iDBusiness(String iDBusiness); + @Parameter(name = "IDDruhSouhlasu") + MWFD28 iDDruhSouhlasu(String iDDruhSouhlasu); + @Parameter(name = "IDSystem") + MWFD28 iDSystem(Long iDSystem); + @Parameter(name = "IDZaznamuUziv") + MWFD28 iDZaznamuUziv(Long iDZaznamuUziv); + @Parameter(name = "Prijmeni") + MWFD28 prijmeni(String prijmeni); + @Parameter(name = "RC") + MWFD28 rc(String rc); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD28Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD28Response.java new file mode 100644 index 0000000..f52bd6e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD28Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFD28Response { + + @Parameter(name = "Stav") + String stav(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD29.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD29.java new file mode 100644 index 0000000..da289f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD29.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFD29 extends MwfRequest { + + @Parameter(name = "IDBusiness") + MWFD29 iDBusiness(String iDBusiness); + @Parameter(name = "IDDruhSouhlasu") + MWFD29 iDDruhSouhlasu(String iDDruhSouhlasu); + @Parameter(name = "IDSystem") + MWFD29 iDSystem(Long iDSystem); + @Parameter(name = "IDZaznamuUziv") + MWFD29 iDZaznamuUziv(Long iDZaznamuUziv); + @Parameter(name = "JednaciCislo") + MWFD29 jednaciCislo(String jednaciCislo); + @Parameter(name = "Jmeno") + MWFD29 jmeno(String jmeno); + @Parameter(name = "Prijmeni") + MWFD29 prijmeni(String prijmeni); + @Parameter(name = "Propsat") + MWFD29 propsat(Long propsat); + @Parameter(name = "RC") + MWFD29 rc(String rc); + @Parameter(name = "Stav") + MWFD29 stav(String stav); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD29Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD29Response.java new file mode 100644 index 0000000..eebed3c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD29Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFD29Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD43.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD43.java new file mode 100644 index 0000000..d76d3b6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD43.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFD43 extends MwfRequest { + + @Parameter(name = "CisloSmlouvy") + MWFD43 cisloSmlouvy(String cisloSmlouvy); + @Parameter(name = "FLIPKanal") + MWFD43 fLIPKanal(Long fLIPKanal); + @Parameter(name = "OMIT_OPTIONAL_CRITERIA") + MWFD43 omitOptionalCriteria(Long omitOptionalCriteria); + @Parameter(name = "Proces") + MWFD43 proces(String proces); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD43Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD43Response.java new file mode 100644 index 0000000..a3a2f36 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD43Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFD43Response { + + @Parameter(name = "FLIPVysledekAktivace") + String fLIPVysledekAktivace(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD54.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD54.java new file mode 100644 index 0000000..38fa8db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD54.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFD54 extends MwfRequest { + + @Parameter(name = "CM_ID") + MWFD54 cmId(String cmId); + @Parameter(name = "CM_VERSION") + MWFD54 cmVersion(String cmVersion); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD54Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD54Response.java new file mode 100644 index 0000000..02c9cba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD54Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFD54Response { + + @Parameter(name = "DokumentURL") + String dokumentURL(); + + @Parameter(name = "FILENAME") + String filename(); + + @Parameter(name = "MIMETYPE") + String mimetype(); + + @Parameter(name = "SIZE") + Long size(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD56.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD56.java new file mode 100644 index 0000000..14869b9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD56.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFD56 extends MwfRequest { + + @Parameter(name = "CSouhlasCUR") + MWFD56 cSouhlasCUR(String cSouhlasCUR); + @Parameter(name = "IDSystem") + MWFD56 iDSystem(Long iDSystem); + @Parameter(name = "IDZaznamuUziv") + MWFD56 iDZaznamuUziv(Long iDZaznamuUziv); + @Parameter(name = "JednaciCislo") + MWFD56 jednaciCislo(String jednaciCislo); + @Parameter(name = "Jmeno") + MWFD56 jmeno(String jmeno); + @Parameter(name = "Prijmeni") + MWFD56 prijmeni(String prijmeni); + @Parameter(name = "Propsat") + MWFD56 propsat(Long propsat); + @Parameter(name = "RC") + MWFD56 rc(String rc); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD56Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD56Response.java new file mode 100644 index 0000000..d739044 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD56Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFD56Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD58.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD58.java new file mode 100644 index 0000000..598726b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD58.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFD58 extends MwfRequest { + + @Parameter(name = "CM_ID") + MWFD58 cmId(String cmId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD58Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD58Response.java new file mode 100644 index 0000000..a58992e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD58Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFD58Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD70.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD70.java new file mode 100644 index 0000000..060a846 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD70.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFD70 extends MwfRequest { + + @Parameter(name = "Prijmeni") + MWFD70 prijmeni(String prijmeni); + @Parameter(name = "RodneCislo") + MWFD70 rodneCislo(String rodneCislo); + @Parameter(name = "Subjekt") + MWFD70 subjekt(String subjekt); + @Parameter(name = "ZahrnoutMKT") + MWFD70 zahrnoutMKT(Long zahrnoutMKT); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD70Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD70Response.java new file mode 100644 index 0000000..29f8140 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFD70Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFD70Response { + + @Parameter(name = "Stav101") + String stav101(); + + @Parameter(name = "Text101") + String text101(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB4.java new file mode 100644 index 0000000..6340687 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB4.java @@ -0,0 +1,194 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDB4 extends MwfRequest { + + @Parameter(name = "ATTR_1") + MWFDB4 attr1(String attr1); + @Parameter(name = "ATTR_10") + MWFDB4 attr10(String attr10); + @Parameter(name = "ATTR_11") + MWFDB4 attr11(String attr11); + @Parameter(name = "ATTR_2") + MWFDB4 attr2(String attr2); + @Parameter(name = "ATTR_3") + MWFDB4 attr3(String attr3); + @Parameter(name = "ATTR_4") + MWFDB4 attr4(String attr4); + @Parameter(name = "ATTR_5") + MWFDB4 attr5(String attr5); + @Parameter(name = "ATTR_6") + MWFDB4 attr6(String attr6); + @Parameter(name = "ATTR_7") + MWFDB4 attr7(String attr7); + @Parameter(name = "ATTR_8") + MWFDB4 attr8(String attr8); + @Parameter(name = "ATTR_9") + MWFDB4 attr9(String attr9); + @Parameter(name = "CHECKED_OUT") + MWFDB4 checkedOut(String checkedOut); + @Parameter(name = "CHECKED_USER") + MWFDB4 checkedUser(String checkedUser); + @Parameter(name = "FROM_POS") + MWFDB4 fromPos(String fromPos); + @Parameter(name = "ITEM_ID") + MWFDB4 itemId(String itemId); + @Parameter(name = "LOG_OP") + MWFDB4 logOp(String logOp); + @Parameter(name = "MAX_RES") + MWFDB4 maxRes(String maxRes); + @Parameter(name = "MULTI_1") + MWFDB4 multi1(String multi1); + @Parameter(name = "MULTI_10") + MWFDB4 multi10(String multi10); + @Parameter(name = "MULTI_11") + MWFDB4 multi11(String multi11); + @Parameter(name = "MULTI_2") + MWFDB4 multi2(String multi2); + @Parameter(name = "MULTI_3") + MWFDB4 multi3(String multi3); + @Parameter(name = "MULTI_4") + MWFDB4 multi4(String multi4); + @Parameter(name = "MULTI_5") + MWFDB4 multi5(String multi5); + @Parameter(name = "MULTI_6") + MWFDB4 multi6(String multi6); + @Parameter(name = "MULTI_7") + MWFDB4 multi7(String multi7); + @Parameter(name = "MULTI_8") + MWFDB4 multi8(String multi8); + @Parameter(name = "MULTI_9") + MWFDB4 multi9(String multi9); + @Parameter(name = "NOT_1") + MWFDB4 not1(String not1); + @Parameter(name = "NOT_10") + MWFDB4 not10(String not10); + @Parameter(name = "NOT_11") + MWFDB4 not11(String not11); + @Parameter(name = "NOT_2") + MWFDB4 not2(String not2); + @Parameter(name = "NOT_3") + MWFDB4 not3(String not3); + @Parameter(name = "NOT_4") + MWFDB4 not4(String not4); + @Parameter(name = "NOT_5") + MWFDB4 not5(String not5); + @Parameter(name = "NOT_6") + MWFDB4 not6(String not6); + @Parameter(name = "NOT_7") + MWFDB4 not7(String not7); + @Parameter(name = "NOT_8") + MWFDB4 not8(String not8); + @Parameter(name = "NOT_9") + MWFDB4 not9(String not9); + @Parameter(name = "OP_1") + MWFDB4 op1(String op1); + @Parameter(name = "OP_10") + MWFDB4 op10(String op10); + @Parameter(name = "OP_11") + MWFDB4 op11(String op11); + @Parameter(name = "OP_2") + MWFDB4 op2(String op2); + @Parameter(name = "OP_3") + MWFDB4 op3(String op3); + @Parameter(name = "OP_4") + MWFDB4 op4(String op4); + @Parameter(name = "OP_5") + MWFDB4 op5(String op5); + @Parameter(name = "OP_6") + MWFDB4 op6(String op6); + @Parameter(name = "OP_7") + MWFDB4 op7(String op7); + @Parameter(name = "OP_8") + MWFDB4 op8(String op8); + @Parameter(name = "OP_9") + MWFDB4 op9(String op9); + @Parameter(name = "SORT_BY") + MWFDB4 sortBy(String sortBy); + @Parameter(name = "SORT_ORDER") + MWFDB4 sortOrder(String sortOrder); + @Parameter(name = "VALUE_DATETIME_1") + MWFDB4 valueDatetime1(java.util.Date valueDatetime1); + @Parameter(name = "VALUE_DATETIME_10") + MWFDB4 valueDatetime10(java.util.Date valueDatetime10); + @Parameter(name = "VALUE_DATETIME_2") + MWFDB4 valueDatetime2(java.util.Date valueDatetime2); + @Parameter(name = "VALUE_DATETIME_3") + MWFDB4 valueDatetime3(java.util.Date valueDatetime3); + @Parameter(name = "VALUE_DATETIME_4") + MWFDB4 valueDatetime4(java.util.Date valueDatetime4); + @Parameter(name = "VALUE_DATETIME_5") + MWFDB4 valueDatetime5(java.util.Date valueDatetime5); + @Parameter(name = "VALUE_DATETIME_6") + MWFDB4 valueDatetime6(java.util.Date valueDatetime6); + @Parameter(name = "VALUE_DATETIME_7") + MWFDB4 valueDatetime7(java.util.Date valueDatetime7); + @Parameter(name = "VALUE_DATETIME_8") + MWFDB4 valueDatetime8(java.util.Date valueDatetime8); + @Parameter(name = "VALUE_DATETIME_9") + MWFDB4 valueDatetime9(java.util.Date valueDatetime9); + @Parameter(name = "VALUE_DATE_1") + MWFDB4 valueDate1(java.util.Date valueDate1); + @Parameter(name = "VALUE_DATE_10") + MWFDB4 valueDate10(java.util.Date valueDate10); + @Parameter(name = "VALUE_DATE_2") + MWFDB4 valueDate2(java.util.Date valueDate2); + @Parameter(name = "VALUE_DATE_3") + MWFDB4 valueDate3(java.util.Date valueDate3); + @Parameter(name = "VALUE_DATE_4") + MWFDB4 valueDate4(java.util.Date valueDate4); + @Parameter(name = "VALUE_DATE_5") + MWFDB4 valueDate5(java.util.Date valueDate5); + @Parameter(name = "VALUE_DATE_6") + MWFDB4 valueDate6(java.util.Date valueDate6); + @Parameter(name = "VALUE_DATE_7") + MWFDB4 valueDate7(java.util.Date valueDate7); + @Parameter(name = "VALUE_DATE_8") + MWFDB4 valueDate8(java.util.Date valueDate8); + @Parameter(name = "VALUE_DATE_9") + MWFDB4 valueDate9(java.util.Date valueDate9); + @Parameter(name = "VALUE_INTEGER_1") + MWFDB4 valueInteger1(Long valueInteger1); + @Parameter(name = "VALUE_INTEGER_10") + MWFDB4 valueInteger10(Long valueInteger10); + @Parameter(name = "VALUE_INTEGER_2") + MWFDB4 valueInteger2(Long valueInteger2); + @Parameter(name = "VALUE_INTEGER_3") + MWFDB4 valueInteger3(Long valueInteger3); + @Parameter(name = "VALUE_INTEGER_4") + MWFDB4 valueInteger4(Long valueInteger4); + @Parameter(name = "VALUE_INTEGER_5") + MWFDB4 valueInteger5(Long valueInteger5); + @Parameter(name = "VALUE_INTEGER_6") + MWFDB4 valueInteger6(Long valueInteger6); + @Parameter(name = "VALUE_INTEGER_7") + MWFDB4 valueInteger7(Long valueInteger7); + @Parameter(name = "VALUE_INTEGER_8") + MWFDB4 valueInteger8(Long valueInteger8); + @Parameter(name = "VALUE_INTEGER_9") + MWFDB4 valueInteger9(Long valueInteger9); + @Parameter(name = "VALUE_STRING_1") + MWFDB4 valueString1(String valueString1); + @Parameter(name = "VALUE_STRING_10") + MWFDB4 valueString10(String valueString10); + @Parameter(name = "VALUE_STRING_11_LIST") + MWFDB4 valueString11List(String valueString11List); + @Parameter(name = "VALUE_STRING_2") + MWFDB4 valueString2(String valueString2); + @Parameter(name = "VALUE_STRING_3") + MWFDB4 valueString3(String valueString3); + @Parameter(name = "VALUE_STRING_4") + MWFDB4 valueString4(String valueString4); + @Parameter(name = "VALUE_STRING_5") + MWFDB4 valueString5(String valueString5); + @Parameter(name = "VALUE_STRING_6") + MWFDB4 valueString6(String valueString6); + @Parameter(name = "VALUE_STRING_7") + MWFDB4 valueString7(String valueString7); + @Parameter(name = "VALUE_STRING_8") + MWFDB4 valueString8(String valueString8); + @Parameter(name = "VALUE_STRING_9") + MWFDB4 valueString9(String valueString9); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB4Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB4Data.java new file mode 100644 index 0000000..60d080e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB4Data.java @@ -0,0 +1,109 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFDB4Data { + + private Map params; + + public MWFDB4Data(Map params) { + this.params = params; + } + + public String rsCmId() { + return (String) params.get("RS_CM_ID"); + } + + public String rsUzivatel() { + return (String) params.get("RS_UZIVATEL"); + } + + public java.util.Date rsDatumcaszalozeni() { + return (java.util.Date) params.get("RS_DATUMCASZALOZENI"); + } + + public String rsUzivatelzmena() { + return (String) params.get("RS_UZIVATELZMENA"); + } + + public java.util.Date rsDatumcaszmena() { + return (java.util.Date) params.get("RS_DATUMCASZMENA"); + } + + public String rsSpravce() { + return (String) params.get("RS_SPRAVCE"); + } + + public String rsTypproduktu() { + return (String) params.get("RS_TYPPRODUKTU"); + } + + public String rsTypdokumentu() { + return (String) params.get("RS_TYPDOKUMENTU"); + } + + public String rsSegmentklientu() { + return (String) params.get("RS_SEGMENTKLIENTU"); + } + + public String rsSkupinadokumentu() { + return (String) params.get("RS_SKUPINADOKUMENTU"); + } + + public java.util.Date rsPlatnostod() { + return (java.util.Date) params.get("RS_PLATNOSTOD"); + } + + public java.util.Date rsPlatnostdo() { + return (java.util.Date) params.get("RS_PLATNOSTDO"); + } + + public String rsUcel() { + return (String) params.get("RS_UCEL"); + } + + public String rsPoznamka() { + return (String) params.get("RS_POZNAMKA"); + } + + public String rsJazyk() { + return (String) params.get("RS_JAZYK"); + } + + public String rsNazevDokumentu() { + return (String) params.get("RS_NAZEV_DOKUMENTU"); + } + + public String rsSkupinaklientu() { + return (String) params.get("RS_SKUPINAKLIENTU"); + } + + public String rsCharakter() { + return (String) params.get("RS_CHARAKTER"); + } + + public String rsDistribuce() { + return (String) params.get("RS_DISTRIBUCE"); + } + + public String rsCitlivost() { + return (String) params.get("RS_CITLIVOST"); + } + + public String rsPristup() { + return (String) params.get("RS_PRISTUP"); + } + + public String rsLhutaskartace() { + return (String) params.get("RS_LHUTASKARTACE"); + } + + public java.util.Date rsDatumskartace() { + return (java.util.Date) params.get("RS_DATUMSKARTACE"); + } + + public String rsSkupinaproduktu() { + return (String) params.get("RS_SKUPINAPRODUKTU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB4Response.java new file mode 100644 index 0000000..498629b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB4Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDB4Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "TOTAL_REC") + Long totalRec(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB8.java new file mode 100644 index 0000000..073d539 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB8.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDB8 extends MwfRequest { + + @Parameter(name = "AMOUNT") + MWFDB8 amount(Double amount); + @Parameter(name = "CARDEXPIRYDATE") + MWFDB8 cardexpirydate(String cardexpirydate); + @Parameter(name = "CARDNUMBER") + MWFDB8 cardnumber(String cardnumber); + @Parameter(name = "REFERENCENUMBER") + MWFDB8 referencenumber(String referencenumber); + @Parameter(name = "TERMID") + MWFDB8 termid(String termid); + @Parameter(name = "TRANSACTIONTYPE") + MWFDB8 transactiontype(Long transactiontype); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB8Response.java new file mode 100644 index 0000000..db27102 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDB8Response.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDB8Response { + + @Parameter(name = "AMOUNT") + Double amount(); + + @Parameter(name = "CARDEXPIRYDATE") + String cardexpirydate(); + + @Parameter(name = "CARDNUMBER") + String cardnumber(); + + @Parameter(name = "REFERENCENUMBER") + String referencenumber(); + + @Parameter(name = "RESPONSECODE") + String responsecode(); + + @Parameter(name = "RESULT") + String result(); + + @Parameter(name = "TRANSACTIONTYPE") + Long transactiontype(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDH2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDH2.java new file mode 100644 index 0000000..60fadf2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDH2.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDH2 extends MwfRequest { + + @Parameter(name = "BIRTH_NUMBER") + MWFDH2 birthNumber(String birthNumber); + @Parameter(name = "ID_APPL") + MWFDH2 idAppl(String idAppl); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDH2Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDH2Data.java new file mode 100644 index 0000000..13c830d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDH2Data.java @@ -0,0 +1,105 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFDH2Data { + + private Map params; + + public MWFDH2Data(Map params) { + this.params = params; + } + + public String rsCmId() { + return (String) params.get("RS_CM_ID"); + } + + public String rsItemtype() { + return (String) params.get("RS_ITEMTYPE"); + } + + public String rsSemanticType() { + return (String) params.get("RS_SEMANTIC_TYPE"); + } + + public String rsCrtUsr() { + return (String) params.get("RS_CRT_USR"); + } + + public java.util.Date rsCrtTime() { + return (java.util.Date) params.get("RS_CRT_TIME"); + } + + public String rsChgUsr() { + return (String) params.get("RS_CHG_USR"); + } + + public java.util.Date rsChgTime() { + return (java.util.Date) params.get("RS_CHG_TIME"); + } + + public String rsChckoutUsr() { + return (String) params.get("RS_CHCKOUT_USR"); + } + + public java.util.Date rsChckoutTime() { + return (java.util.Date) params.get("RS_CHCKOUT_TIME"); + } + + public String rsIbTypDokumentu() { + return (String) params.get("RS_IB_TYP_DOKUMENTU"); + } + + public String rsGeRodneCislo() { + return (String) params.get("RS_GE_RODNE_CISLO"); + } + + public String rsIbIdDokumentu() { + return (String) params.get("RS_IB_ID_DOKUMENTU"); + } + + public String rsIbZpusobpodpisu() { + return (String) params.get("RS_IB_ZPUSOBPODPISU"); + } + + public String rsIbIdpodpisu() { + return (String) params.get("RS_IB_IDPODPISU"); + } + + public String rsIbStavsluzby() { + return (String) params.get("RS_IB_STAVSLUZBY"); + } + + public String rsIbRegistautorita() { + return (String) params.get("RS_IB_REGISTAUTORITA"); + } + + public java.util.Date rsIbCasoverazitko() { + return (java.util.Date) params.get("RS_IB_CASOVERAZITKO"); + } + + public String rsGeDistribuce() { + return (String) params.get("RS_GE_DISTRIBUCE"); + } + + public String rsGePristup() { + return (String) params.get("RS_GE_PRISTUP"); + } + + public String rsDsCharakterDok() { + return (String) params.get("RS_DS_CHARAKTER_DOK"); + } + + public Long rsDsLhutaSkart() { + return (Long) params.get("RS_DS_LHUTA_SKART"); + } + + public java.util.Date rsDsDatumSkart() { + return (java.util.Date) params.get("RS_DS_DATUM_SKART"); + } + + public String rsDsCitlivostDoku() { + return (String) params.get("RS_DS_CITLIVOST_DOKU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDH2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDH2Response.java new file mode 100644 index 0000000..26627c9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDH2Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDH2Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDI0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDI0.java new file mode 100644 index 0000000..2833782 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDI0.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDI0 extends MwfRequest { + + @Parameter(name = "CISLOUCTU") + MWFDI0 cislouctu(String cislouctu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDI0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDI0Response.java new file mode 100644 index 0000000..3062d30 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDI0Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDI0Response { + + @Parameter(name = "ExistenceUctu") + String existenceUctu(); + + @Parameter(name = "OtevrenyProPlatby") + Boolean otevrenyProPlatby(); + + @Parameter(name = "TypChyby") + String typChyby(); + + @Parameter(name = "ZakazanyUcet") + String zakazanyUcet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDN8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDN8.java new file mode 100644 index 0000000..4ec6b77 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDN8.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDN8 extends MwfRequest { + + @Parameter(name = "CM_ID_IN") + MWFDN8 cmIdIn(String cmIdIn); + @Parameter(name = "DOC_FORMAT") + MWFDN8 docFormat(String docFormat); + @Parameter(name = "DOC_URL_IN") + MWFDN8 docUrlIn(String docUrlIn); + @Parameter(name = "OUTPUT_MODE") + MWFDN8 outputMode(String outputMode); + @Parameter(name = "UlozitPNG") + MWFDN8 ulozitPNG(String ulozitPNG); + @Parameter(name = "WIDTH") + MWFDN8 width(Long width); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDN8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDN8Response.java new file mode 100644 index 0000000..ec2fb07 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDN8Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDN8Response { + + @Parameter(name = "BINARY_DATA") + String binaryData(); + + @Parameter(name = "CM_ID_OUT") + String cmIdOut(); + + @Parameter(name = "DOC_URL_OUT") + String docUrlOut(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDO8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDO8.java new file mode 100644 index 0000000..9423735 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDO8.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDO8 extends MwfRequest { + + @Parameter(name = "CIF") + MWFDO8 cif(String cif); + @Parameter(name = "Cache_Pouzit") + MWFDO8 cachePouzit(Long cachePouzit); + @Parameter(name = "Cache_Signature") + MWFDO8 cacheSignature(String cacheSignature); + @Parameter(name = "Cache_SystemID") + MWFDO8 cacheSystemID(String cacheSystemID); + @Parameter(name = "CisloKarty") + MWFDO8 cisloKarty(Long cisloKarty); + @Parameter(name = "DatumOdblokovani") + MWFDO8 datumOdblokovani(java.util.Date datumOdblokovani); + @Parameter(name = "DruhBlokace") + MWFDO8 druhBlokace(String druhBlokace); + @Parameter(name = "DrzitelRC") + MWFDO8 drzitelRC(String drzitelRC); + @Parameter(name = "DuvodBlokace") + MWFDO8 duvodBlokace(String duvodBlokace); + @Parameter(name = "JazykSMS") + MWFDO8 jazykSMS(String jazykSMS); + @Parameter(name = "TelefonMobilni") + MWFDO8 telefonMobilni(String telefonMobilni); + @Parameter(name = "Urednik") + MWFDO8 urednik(String urednik); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDO8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDO8Response.java new file mode 100644 index 0000000..ba182a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDO8Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDO8Response { + + @Parameter(name = "Cache_RequestID") + String cacheRequestID(); + + @Parameter(name = "OnlineFlag") + String onlineFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDQ4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDQ4.java new file mode 100644 index 0000000..0773f0c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDQ4.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDQ4 extends MwfRequest { + + @Parameter(name = "Data") + MWFDQ4 data(java.util.List data); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDQ4Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDQ4Data.java new file mode 100644 index 0000000..8492088 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDQ4Data.java @@ -0,0 +1,137 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFDQ4Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFDQ4Data() {} + + public static MWFDQ4Data builder() { + return new MWFDQ4Data(); + } + + public MWFDQ4Data rsUcetKey(Long rsUcetKey) { + params.put("RS_UCET_KEY", rsUcetKey); + return this; + } + + public MWFDQ4Data rsZadostKey(Long rsZadostKey) { + params.put("RS_ZADOST_KEY", rsZadostKey); + return this; + } + + public MWFDQ4Data rsInstPtKey(Long rsInstPtKey) { + params.put("RS_INST_PT_KEY", rsInstPtKey); + return this; + } + + public MWFDQ4Data rsDelFlag(Long rsDelFlag) { + params.put("RS_DEL_FLAG", rsDelFlag); + return this; + } + + public MWFDQ4Data rsUceluctu(String rsUceluctu) { + params.put("RS_UCELUCTU", rsUceluctu); + return this; + } + + public MWFDQ4Data rsCislouctu(String rsCislouctu) { + params.put("RS_CISLOUCTU", rsCislouctu); + return this; + } + + public MWFDQ4Data rsIban(String rsIban) { + params.put("RS_IBAN", rsIban); + return this; + } + + public MWFDQ4Data rsKodbanky(String rsKodbanky) { + params.put("RS_KODBANKY", rsKodbanky); + return this; + } + + public MWFDQ4Data rsBic(String rsBic) { + params.put("RS_BIC", rsBic); + return this; + } + + public MWFDQ4Data rsMena(String rsMena) { + params.put("RS_MENA", rsMena); + return this; + } + + public MWFDQ4Data rsSpecifickysymbol(String rsSpecifickysymbol) { + params.put("RS_SPECIFICKYSYMBOL", rsSpecifickysymbol); + return this; + } + + public MWFDQ4Data rsVariabilnisymbol(String rsVariabilnisymbol) { + params.put("RS_VARIABILNISYMBOL", rsVariabilnisymbol); + return this; + } + + public MWFDQ4Data rsObchodnimisto(String rsObchodnimisto) { + params.put("RS_OBCHODNIMISTO", rsObchodnimisto); + return this; + } + + public MWFDQ4Data rsDatumotevreni(java.util.Date rsDatumotevreni) { + params.put("RS_DATUMOTEVRENI", rsDatumotevreni); + return this; + } + + public MWFDQ4Data rsObrat1Mesic(String rsObrat1Mesic) { + params.put("RS_OBRAT1_MESIC", rsObrat1Mesic); + return this; + } + + public MWFDQ4Data rsObrat1Rok(Long rsObrat1Rok) { + params.put("RS_OBRAT1_ROK", rsObrat1Rok); + return this; + } + + public MWFDQ4Data rsObrat1Vyse(Double rsObrat1Vyse) { + params.put("RS_OBRAT1_VYSE", rsObrat1Vyse); + return this; + } + + public MWFDQ4Data rsObrat2Mesic(String rsObrat2Mesic) { + params.put("RS_OBRAT2_MESIC", rsObrat2Mesic); + return this; + } + + public MWFDQ4Data rsObrat2Rok(Long rsObrat2Rok) { + params.put("RS_OBRAT2_ROK", rsObrat2Rok); + return this; + } + + public MWFDQ4Data rsObrat2Vyse(Double rsObrat2Vyse) { + params.put("RS_OBRAT2_VYSE", rsObrat2Vyse); + return this; + } + + public MWFDQ4Data rsObrat3Mesic(String rsObrat3Mesic) { + params.put("RS_OBRAT3_MESIC", rsObrat3Mesic); + return this; + } + + public MWFDQ4Data rsObrat3Rok(Long rsObrat3Rok) { + params.put("RS_OBRAT3_ROK", rsObrat3Rok); + return this; + } + + public MWFDQ4Data rsObrat3Vyse(Double rsObrat3Vyse) { + params.put("RS_OBRAT3_VYSE", rsObrat3Vyse); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDQ4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDQ4Response.java new file mode 100644 index 0000000..aaf8f7a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDQ4Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDQ4Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDT7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDT7.java new file mode 100644 index 0000000..a09a34a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDT7.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDT7 extends MwfRequest { + + @Parameter(name = "DuvodStorna") + MWFDT7 duvodStorna(String duvodStorna); + @Parameter(name = "FunkceOperatora") + MWFDT7 funkceOperatora(String funkceOperatora); + @Parameter(name = "OsobniBanker_ID") + MWFDT7 osobniBankerID(String osobniBankerID); + @Parameter(name = "OsobniBanker_Jmeno") + MWFDT7 osobniBankerJmeno(String osobniBankerJmeno); + @Parameter(name = "OsobniBanker_Prijmeni") + MWFDT7 osobniBankerPrijmeni(String osobniBankerPrijmeni); + @Parameter(name = "OsobniBanker_SSO") + MWFDT7 osobniBankerSSO(String osobniBankerSSO); + @Parameter(name = "WF_ID") + MWFDT7 wfId(String wfId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDT7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDT7Response.java new file mode 100644 index 0000000..5dd5460 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDT7Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDT7Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDU8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDU8.java new file mode 100644 index 0000000..62da6a2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDU8.java @@ -0,0 +1,286 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDU8 extends MwfRequest { + + @Parameter(name = "CIF") + MWFDU8 cif(String cif); + @Parameter(name = "DanovyPoradce") + MWFDU8 danovyPoradce(String danovyPoradce); + @Parameter(name = "DatumNarozeni") + MWFDU8 datumNarozeni(java.util.Date datumNarozeni); + @Parameter(name = "DatumPodpisu101") + MWFDU8 datumPodpisu101(java.util.Date datumPodpisu101); + @Parameter(name = "DatumZamOd") + MWFDU8 datumZamOd(java.util.Date datumZamOd); + @Parameter(name = "EvidencniCislo") + MWFDU8 evidencniCislo(String evidencniCislo); + @Parameter(name = "EvidencniCislo_Duvod") + MWFDU8 evidencniCisloDuvod(String evidencniCisloDuvod); + @Parameter(name = "EvidencniCislo_Komentar") + MWFDU8 evidencniCisloKomentar(String evidencniCisloKomentar); + @Parameter(name = "Form_Type_ID") + MWFDU8 formTypeID(String formTypeID); + @Parameter(name = "GEZamestnanecPriznak") + MWFDU8 gEZamestnanecPriznak(Long gEZamestnanecPriznak); + @Parameter(name = "ICO") + MWFDU8 ico(String ico); + @Parameter(name = "INST_PT_KEY") + MWFDU8 instPtKey(Long instPtKey); + @Parameter(name = "JmenoKrestni1") + MWFDU8 jmenoKrestni1(String jmenoKrestni1); + @Parameter(name = "JmenoKrestni2") + MWFDU8 jmenoKrestni2(String jmenoKrestni2); + @Parameter(name = "KONT_ADR_KEY") + MWFDU8 kontAdrKey(Long kontAdrKey); + @Parameter(name = "KONT_EMAIL_KEY") + MWFDU8 kontEmailKey(Long kontEmailKey); + @Parameter(name = "KONT_MOBIL_JINY_KEY") + MWFDU8 kontMobilJinyKey(Long kontMobilJinyKey); + @Parameter(name = "KONT_MOBIL_KEY") + MWFDU8 kontMobilKey(Long kontMobilKey); + @Parameter(name = "KONT_PEVNA_LINKA_KEY") + MWFDU8 kontPevnaLinkaKey(Long kontPevnaLinkaKey); + @Parameter(name = "KlientTypMKT") + MWFDU8 klientTypMKT(String klientTypMKT); + @Parameter(name = "Kont_AdrAdresat") + MWFDU8 kontAdrAdresat(String kontAdrAdresat); + @Parameter(name = "Kont_AdrCO") + MWFDU8 kontAdrCO(String kontAdrCO); + @Parameter(name = "Kont_AdrCP") + MWFDU8 kontAdrCP(String kontAdrCP); + @Parameter(name = "Kont_AdrObec") + MWFDU8 kontAdrObec(String kontAdrObec); + @Parameter(name = "Kont_AdrPSC") + MWFDU8 kontAdrPSC(String kontAdrPSC); + @Parameter(name = "Kont_AdrPobytOd") + MWFDU8 kontAdrPobytOd(java.util.Date kontAdrPobytOd); + @Parameter(name = "Kont_AdrPosta") + MWFDU8 kontAdrPosta(String kontAdrPosta); + @Parameter(name = "Kont_AdrUlice") + MWFDU8 kontAdrUlice(String kontAdrUlice); + @Parameter(name = "Kont_AdrZeme") + MWFDU8 kontAdrZeme(String kontAdrZeme); + @Parameter(name = "Kont_Email") + MWFDU8 kontEmail(String kontEmail); + @Parameter(name = "Kont_Mobil") + MWFDU8 kontMobil(String kontMobil); + @Parameter(name = "Kont_Mobil_Jiny") + MWFDU8 kontMobilJiny(String kontMobilJiny); + @Parameter(name = "Kont_PevnaLinka") + MWFDU8 kontPevnaLinka(String kontPevnaLinka); + @Parameter(name = "MistoNarozeni") + MWFDU8 mistoNarozeni(String mistoNarozeni); + @Parameter(name = "NFC_MSISDN") + MWFDU8 nfcMsisdn(String nfcMsisdn); + @Parameter(name = "NFC_MSISDN_KEY") + MWFDU8 nfcMsisdnKey(Long nfcMsisdnKey); + @Parameter(name = "OSOBNIDOKLAD1_KEY") + MWFDU8 osobnidoklad1Key(Long osobnidoklad1Key); + @Parameter(name = "OSOBNIDOKLAD2_KEY") + MWFDU8 osobnidoklad2Key(Long osobnidoklad2Key); + @Parameter(name = "ObchodniNazev") + MWFDU8 obchodniNazev(String obchodniNazev); + @Parameter(name = "OsobniDoklad1Cislo") + MWFDU8 osobniDoklad1Cislo(String osobniDoklad1Cislo); + @Parameter(name = "OsobniDoklad1PlatnostDo") + MWFDU8 osobniDoklad1PlatnostDo(java.util.Date osobniDoklad1PlatnostDo); + @Parameter(name = "OsobniDoklad1Typ") + MWFDU8 osobniDoklad1Typ(String osobniDoklad1Typ); + @Parameter(name = "OsobniDoklad1Zeme") + MWFDU8 osobniDoklad1Zeme(String osobniDoklad1Zeme); + @Parameter(name = "OsobniDoklad2Cislo") + MWFDU8 osobniDoklad2Cislo(String osobniDoklad2Cislo); + @Parameter(name = "OsobniDoklad2PlatnostDo") + MWFDU8 osobniDoklad2PlatnostDo(java.util.Date osobniDoklad2PlatnostDo); + @Parameter(name = "OsobniDoklad2Typ") + MWFDU8 osobniDoklad2Typ(String osobniDoklad2Typ); + @Parameter(name = "OsobniDoklad2Zeme") + MWFDU8 osobniDoklad2Zeme(String osobniDoklad2Zeme); + @Parameter(name = "OstatniZivotniNaklady") + MWFDU8 ostatniZivotniNaklady(Double ostatniZivotniNaklady); + @Parameter(name = "PODN_ADR_KEY") + MWFDU8 podnAdrKey(Long podnAdrKey); + @Parameter(name = "PODN_EMAIL_KEY") + MWFDU8 podnEmailKey(Long podnEmailKey); + @Parameter(name = "PODN_MOBIL_JINY_KEY") + MWFDU8 podnMobilJinyKey(Long podnMobilJinyKey); + @Parameter(name = "PODN_MOBIL_KEY") + MWFDU8 podnMobilKey(Long podnMobilKey); + @Parameter(name = "PODN_PEVNA_LINKA_KEY") + MWFDU8 podnPevnaLinkaKey(Long podnPevnaLinkaKey); + @Parameter(name = "PRIJEM_CistyMesicni_KEY") + MWFDU8 pRIJEMCistyMesicniKEY(Long pRIJEMCistyMesicniKEY); + @Parameter(name = "PRIJEM_DomacnostiMesicni_KEY") + MWFDU8 pRIJEMDomacnostiMesicniKEY(Long pRIJEMDomacnostiMesicniKEY); + @Parameter(name = "PRIJEM_HrubyRocni_KEY") + MWFDU8 pRIJEMHrubyRocniKEY(Long pRIJEMHrubyRocniKEY); + @Parameter(name = "PRIJEM_ZakladDane_KEY") + MWFDU8 pRIJEMZakladDaneKEY(Long pRIJEMZakladDaneKEY); + @Parameter(name = "PobytPovolenDo") + MWFDU8 pobytPovolenDo(java.util.Date pobytPovolenDo); + @Parameter(name = "PocetClenuSdruzeni") + MWFDU8 pocetClenuSdruzeni(Long pocetClenuSdruzeni); + @Parameter(name = "PocetVyzivovanychOsob") + MWFDU8 pocetVyzivovanychOsob(Long pocetVyzivovanychOsob); + @Parameter(name = "Podn_AdrCO") + MWFDU8 podnAdrCO(String podnAdrCO); + @Parameter(name = "Podn_AdrCP") + MWFDU8 podnAdrCP(String podnAdrCP); + @Parameter(name = "Podn_AdrObec") + MWFDU8 podnAdrObec(String podnAdrObec); + @Parameter(name = "Podn_AdrPSC") + MWFDU8 podnAdrPSC(String podnAdrPSC); + @Parameter(name = "Podn_AdrPosta") + MWFDU8 podnAdrPosta(String podnAdrPosta); + @Parameter(name = "Podn_AdrUlice") + MWFDU8 podnAdrUlice(String podnAdrUlice); + @Parameter(name = "Podn_AdrZeme") + MWFDU8 podnAdrZeme(String podnAdrZeme); + @Parameter(name = "Podn_Email") + MWFDU8 podnEmail(String podnEmail); + @Parameter(name = "Podn_Mobil") + MWFDU8 podnMobil(String podnMobil); + @Parameter(name = "Podn_Mobil_Jiny") + MWFDU8 podnMobilJiny(String podnMobilJiny); + @Parameter(name = "Podn_PevnaLinka") + MWFDU8 podnPevnaLinka(String podnPevnaLinka); + @Parameter(name = "Pohlavi") + MWFDU8 pohlavi(String pohlavi); + @Parameter(name = "Povolani") + MWFDU8 povolani(String povolani); + @Parameter(name = "PovolaniTyp") + MWFDU8 povolaniTyp(String povolaniTyp); + @Parameter(name = "PracovniPomer") + MWFDU8 pracovniPomer(String pracovniPomer); + @Parameter(name = "PreruseniCinnosti") + MWFDU8 preruseniCinnosti(String preruseniCinnosti); + @Parameter(name = "Prijem_CistyMesicni3M") + MWFDU8 prijemCistyMesicni3M(Double prijemCistyMesicni3M); + @Parameter(name = "Prijem_DomacnostMesicni") + MWFDU8 prijemDomacnostMesicni(Double prijemDomacnostMesicni); + @Parameter(name = "Prijem_HrubyRocni") + MWFDU8 prijemHrubyRocni(Double prijemHrubyRocni); + @Parameter(name = "Prijem_OstatniNonGESplatky") + MWFDU8 prijemOstatniNonGESplatky(Double prijemOstatniNonGESplatky); + @Parameter(name = "Prijem_PocetZdroju") + MWFDU8 prijemPocetZdroju(Long prijemPocetZdroju); + @Parameter(name = "Prijem_ZakladDane") + MWFDU8 prijemZakladDane(Double prijemZakladDane); + @Parameter(name = "Prijem_ZdanovaciObdobi") + MWFDU8 prijemZdanovaciObdobi(Long prijemZdanovaciObdobi); + @Parameter(name = "Prijmeni") + MWFDU8 prijmeni(String prijmeni); + @Parameter(name = "PrijmeniRodne") + MWFDU8 prijmeniRodne(String prijmeniRodne); + @Parameter(name = "PrimarniBankovnictvi_Flag") + MWFDU8 primarniBankovnictviFlag(String primarniBankovnictviFlag); + @Parameter(name = "RezidenceFlag") + MWFDU8 rezidenceFlag(String rezidenceFlag); + @Parameter(name = "RodinnyStav") + MWFDU8 rodinnyStav(String rodinnyStav); + @Parameter(name = "RodinnyStavOvereni") + MWFDU8 rodinnyStavOvereni(String rodinnyStavOvereni); + @Parameter(name = "RodneCislo") + MWFDU8 rodneCislo(String rodneCislo); + @Parameter(name = "SdruzeniFOP") + MWFDU8 sdruzeniFOP(String sdruzeniFOP); + @Parameter(name = "Souhlas101Flag") + MWFDU8 souhlas101Flag(Long souhlas101Flag); + @Parameter(name = "SouhlasECBStav") + MWFDU8 souhlasECBStav(String souhlasECBStav); + @Parameter(name = "SrazkyZeMzdy") + MWFDU8 srazkyZeMzdy(Double srazkyZeMzdy); + @Parameter(name = "StatniPrislusnost") + MWFDU8 statniPrislusnost(String statniPrislusnost); + @Parameter(name = "StatutarniOrgan") + MWFDU8 statutarniOrgan(String statutarniOrgan); + @Parameter(name = "TRV_ADR_KEY") + MWFDU8 trvAdrKey(Long trvAdrKey); + @Parameter(name = "TRV_EMAIL_KEY") + MWFDU8 trvEmailKey(Long trvEmailKey); + @Parameter(name = "TRV_MOBIL_JINY_KEY") + MWFDU8 trvMobilJinyKey(Long trvMobilJinyKey); + @Parameter(name = "TRV_MOBIL_KEY") + MWFDU8 trvMobilKey(Long trvMobilKey); + @Parameter(name = "TRV_PEVNA_LINKA_KEY") + MWFDU8 trvPevnaLinkaKey(Long trvPevnaLinkaKey); + @Parameter(name = "TitulPred") + MWFDU8 titulPred(String titulPred); + @Parameter(name = "TitulZa") + MWFDU8 titulZa(String titulZa); + @Parameter(name = "Trv_AdrAdresat") + MWFDU8 trvAdrAdresat(String trvAdrAdresat); + @Parameter(name = "Trv_AdrCO") + MWFDU8 trvAdrCO(String trvAdrCO); + @Parameter(name = "Trv_AdrCP") + MWFDU8 trvAdrCP(String trvAdrCP); + @Parameter(name = "Trv_AdrObec") + MWFDU8 trvAdrObec(String trvAdrObec); + @Parameter(name = "Trv_AdrPSC") + MWFDU8 trvAdrPSC(String trvAdrPSC); + @Parameter(name = "Trv_AdrPosta") + MWFDU8 trvAdrPosta(String trvAdrPosta); + @Parameter(name = "Trv_AdrUlice") + MWFDU8 trvAdrUlice(String trvAdrUlice); + @Parameter(name = "Trv_AdrZeme") + MWFDU8 trvAdrZeme(String trvAdrZeme); + @Parameter(name = "Trv_Email") + MWFDU8 trvEmail(String trvEmail); + @Parameter(name = "Trv_Mobil") + MWFDU8 trvMobil(String trvMobil); + @Parameter(name = "Trv_Mobil_Jiny") + MWFDU8 trvMobilJiny(String trvMobilJiny); + @Parameter(name = "Trv_PevnaLinka") + MWFDU8 trvPevnaLinka(String trvPevnaLinka); + @Parameter(name = "TypBydleni") + MWFDU8 typBydleni(String typBydleni); + @Parameter(name = "TypKlienta") + MWFDU8 typKlienta(String typKlienta); + @Parameter(name = "TypPobytu") + MWFDU8 typPobytu(String typPobytu); + @Parameter(name = "VPS_Flag") + MWFDU8 vPSFlag(Long vPSFlag); + @Parameter(name = "Vzdelani") + MWFDU8 vzdelani(String vzdelani); + @Parameter(name = "ZAM_ADR_KEY") + MWFDU8 zamAdrKey(Long zamAdrKey); + @Parameter(name = "ZAM_MOBIL_KEY") + MWFDU8 zamMobilKey(Long zamMobilKey); + @Parameter(name = "ZAM_PEVNALINKA_KEY") + MWFDU8 zamPevnalinkaKey(Long zamPevnalinkaKey); + @Parameter(name = "Zam_AdrAdresat") + MWFDU8 zamAdrAdresat(String zamAdrAdresat); + @Parameter(name = "Zam_AdrCO") + MWFDU8 zamAdrCO(String zamAdrCO); + @Parameter(name = "Zam_AdrCP") + MWFDU8 zamAdrCP(String zamAdrCP); + @Parameter(name = "Zam_AdrObec") + MWFDU8 zamAdrObec(String zamAdrObec); + @Parameter(name = "Zam_AdrPSC") + MWFDU8 zamAdrPSC(String zamAdrPSC); + @Parameter(name = "Zam_AdrPosta") + MWFDU8 zamAdrPosta(String zamAdrPosta); + @Parameter(name = "Zam_AdrUlice") + MWFDU8 zamAdrUlice(String zamAdrUlice); + @Parameter(name = "Zam_AdrZeme") + MWFDU8 zamAdrZeme(String zamAdrZeme); + @Parameter(name = "Zam_Mobil") + MWFDU8 zamMobil(String zamMobil); + @Parameter(name = "Zam_PevnaLinka") + MWFDU8 zamPevnaLinka(String zamPevnaLinka); + @Parameter(name = "ZamestnanDo") + MWFDU8 zamestnanDo(java.util.Date zamestnanDo); + @Parameter(name = "Zamestnavatel_ICO") + MWFDU8 zamestnavatelICO(String zamestnavatelICO); + @Parameter(name = "Zamestnavatel_Nazev") + MWFDU8 zamestnavatelNazev(String zamestnavatelNazev); + @Parameter(name = "Zamestnavatel_Zeme") + MWFDU8 zamestnavatelZeme(String zamestnavatelZeme); + @Parameter(name = "ZuzeneSJM") + MWFDU8 zuzeneSJM(String zuzeneSJM); + @Parameter(name = "ZvlastniVztahKBance") + MWFDU8 zvlastniVztahKBance(String zvlastniVztahKBance); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDU8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDU8Response.java new file mode 100644 index 0000000..a77c127 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDU8Response.java @@ -0,0 +1,87 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDU8Response { + + @Parameter(name = "INST_PT_KEY") + Long instPtKey(); + + @Parameter(name = "KONT_ADR_KEY") + Long kontAdrKey(); + + @Parameter(name = "KONT_EMAIL_KEY") + Long kontEmailKey(); + + @Parameter(name = "KONT_MOBIL_JINY_KEY") + Long kontMobilJinyKey(); + + @Parameter(name = "KONT_MOBIL_KEY") + Long kontMobilKey(); + + @Parameter(name = "KONT_PEVNA_LINKA_KEY") + Long kontPevnaLinkaKey(); + + @Parameter(name = "NFC_MSISDN_KEY") + Long nfcMsisdnKey(); + + @Parameter(name = "OSOBNIDOKLAD1_KEY") + Long osobnidoklad1Key(); + + @Parameter(name = "OSOBNIDOKLAD2_KEY") + Long osobnidoklad2Key(); + + @Parameter(name = "PODN_ADR_KEY") + Long podnAdrKey(); + + @Parameter(name = "PODN_EMAIL_KEY") + Long podnEmailKey(); + + @Parameter(name = "PODN_MOBIL_JINY_KEY") + Long podnMobilJinyKey(); + + @Parameter(name = "PODN_MOBIL_KEY") + Long podnMobilKey(); + + @Parameter(name = "PODN_PEVNA_LINKA_KEY") + Long podnPevnaLinkaKey(); + + @Parameter(name = "PRIJEM_CistyMesicni_KEY") + Long pRIJEMCistyMesicniKEY(); + + @Parameter(name = "PRIJEM_DomacnostiMesicni_KEY") + Long pRIJEMDomacnostiMesicniKEY(); + + @Parameter(name = "PRIJEM_HrubyRocni_KEY") + Long pRIJEMHrubyRocniKEY(); + + @Parameter(name = "PRIJEM_ZakladDane_KEY") + Long pRIJEMZakladDaneKEY(); + + @Parameter(name = "TRV_ADR_KEY") + Long trvAdrKey(); + + @Parameter(name = "TRV_EMAIL_KEY") + Long trvEmailKey(); + + @Parameter(name = "TRV_MOBIL_JINY_KEY") + Long trvMobilJinyKey(); + + @Parameter(name = "TRV_MOBIL_KEY") + Long trvMobilKey(); + + @Parameter(name = "TRV_PEVNA_LINKA_KEY") + Long trvPevnaLinkaKey(); + + @Parameter(name = "ZAM_ADR_KEY") + Long zamAdrKey(); + + @Parameter(name = "ZAM_MOBIL_KEY") + Long zamMobilKey(); + + @Parameter(name = "ZAM_PEVNALINKA_KEY") + Long zamPevnalinkaKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDW8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDW8.java new file mode 100644 index 0000000..21422d4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDW8.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDW8 extends MwfRequest { + + @Parameter(name = "BirthNumber") + MWFDW8 birthNumber(String birthNumber); + @Parameter(name = "CIF") + MWFDW8 cif(String cif); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDW8Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDW8Data.java new file mode 100644 index 0000000..d53bc07 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDW8Data.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFDW8Data { + + private Map params; + + public MWFDW8Data(Map params) { + this.params = params; + } + + public String rsMobilephonenumber() { + return (String) params.get("RS_MOBILEPHONENUMBER"); + } + + public String rsRelationshipnumber() { + return (String) params.get("RS_RELATIONSHIPNUMBER"); + } + + public String rsState() { + return (String) params.get("RS_STATE"); + } + + public String rsCardnumber() { + return (String) params.get("RS_CARDNUMBER"); + } + + public String rsHotlink() { + return (String) params.get("RS_HOTLINK"); + } + + public String rsRelationshipnumberprevious() { + return (String) params.get("RS_RELATIONSHIPNUMBERPREVIOUS"); + } + + public String rsEmail() { + return (String) params.get("RS_EMAIL"); + } + + public String rsAccountnumber() { + return (String) params.get("RS_ACCOUNTNUMBER"); + } + + public String rsFundinapproval() { + return (String) params.get("RS_FUNDINAPPROVAL"); + } + + public Double rsBalanceamount() { + return (Double) params.get("RS_BALANCEAMOUNT"); + } + + public String rsNickname() { + return (String) params.get("RS_NICKNAME"); + } + + public String rsCardnumbermask() { + return (String) params.get("RS_CARDNUMBERMASK"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDW8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDW8Response.java new file mode 100644 index 0000000..0010071 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDW8Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDW8Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDY2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDY2.java new file mode 100644 index 0000000..0566974 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDY2.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDY2 extends MwfRequest { + + @Parameter(name = "PRODUCT_ID") + MWFDY2 productId(Long productId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDY2Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDY2Data.java new file mode 100644 index 0000000..5af98ad --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDY2Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFDY2Data { + + private Map params; + + public MWFDY2Data(Map params) { + this.params = params; + } + + public Long rsProductId() { + return (Long) params.get("RS_PRODUCT_ID"); + } + + public Long rsFixation() { + return (Long) params.get("RS_FIXATION"); + } + + public String rsName() { + return (String) params.get("RS_NAME"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDY2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDY2Response.java new file mode 100644 index 0000000..a285155 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFDY2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDY2Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFE62.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFE62.java new file mode 100644 index 0000000..d8e05ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFE62.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFE62 extends MwfRequest { + + @Parameter(name = "NewVersion") + MWFE62 newVersion(Long newVersion); + @Parameter(name = "PidNew") + MWFE62 pidNew(String pidNew); + @Parameter(name = "PidOld") + MWFE62 pidOld(String pidOld); + @Parameter(name = "UrlNew") + MWFE62 urlNew(String urlNew); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFE62Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFE62Response.java new file mode 100644 index 0000000..a7af00f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFE62Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFE62Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4.java new file mode 100644 index 0000000..31893a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFED4 extends MwfRequest { + + @Parameter(name = "BIRTH_NUMBER") + MWFED4 birthNumber(String birthNumber); + @Parameter(name = "CERTIFICATION_TYPE") + MWFED4 certificationType(String certificationType); + @Parameter(name = "CLIENT_PARTY_TYPE") + MWFED4 clientPartyType(String clientPartyType); + @Parameter(name = "DATA_IN") + MWFED4 dataIn(java.util.List dataIn); + @Parameter(name = "ICO") + MWFED4 ico(String ico); + @Parameter(name = "LANG_VERSION") + MWFED4 langVersion(String langVersion); + @Parameter(name = "MASK_TYPE") + MWFED4 maskType(String maskType); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4Data.java new file mode 100644 index 0000000..17ca4ca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFED4Data { + + private Map params; + + public MWFED4Data(Map params) { + this.params = params; + } + + public String rsIbTab() { + return (String) params.get("RS_IB_TAB"); + } + + public String rsHtmlPage() { + return (String) params.get("RS_HTML_PAGE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4DataIn.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4DataIn.java new file mode 100644 index 0000000..f352db4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4DataIn.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFED4DataIn { + + private Map params; + + public MWFED4DataIn(Map params) { + this.params = params; + } + + public String rsBussinesProductType() { + return (String) params.get("RS_BUSSINES_PRODUCT_TYPE"); + } + + public String rsBptFlag() { + return (String) params.get("RS_BPT_FLAG"); + } + + public Double rsAccountBalance() { + return (Double) params.get("RS_ACCOUNT_BALANCE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4Response.java new file mode 100644 index 0000000..dcb99c9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFED4Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFED4Response { + + @Parameter(name = "DATA") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEJ1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEJ1.java new file mode 100644 index 0000000..1711b82 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEJ1.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFEJ1 extends MwfRequest { + + @Parameter(name = "SRC_ADDRESS_TYPE") + MWFEJ1 srcAddressType(String srcAddressType); + @Parameter(name = "SRC_ADR_INSTANCE_ID") + MWFEJ1 srcAdrInstanceId(String srcAdrInstanceId); + @Parameter(name = "SRC_CITY") + MWFEJ1 srcCity(String srcCity); + @Parameter(name = "SRC_COUNTRY_CODE") + MWFEJ1 srcCountryCode(String srcCountryCode); + @Parameter(name = "SRC_LRN") + MWFEJ1 srcLrn(String srcLrn); + @Parameter(name = "SRC_SN") + MWFEJ1 srcSn(String srcSn); + @Parameter(name = "SRC_STREET") + MWFEJ1 srcStreet(String srcStreet); + @Parameter(name = "SRC_SYSTEM") + MWFEJ1 srcSystem(String srcSystem); + @Parameter(name = "SRC_ZIP") + MWFEJ1 srcZip(String srcZip); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEJ1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEJ1Response.java new file mode 100644 index 0000000..70cddd1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEJ1Response.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFEJ1Response { + + @Parameter(name = "CLEARING_CODE") + String clearingCode(); + + @Parameter(name = "PAD_BOTTOMROW") + String padBottomrow(); + + @Parameter(name = "PAD_MIDDLEROW") + String padMiddlerow(); + + @Parameter(name = "PAD_TOPROW") + String padToprow(); + + @Parameter(name = "SCORE_INSTANCE") + Long scoreInstance(); + + @Parameter(name = "SRC_ADR_INSTANCE_ID") + String srcAdrInstanceId(); + + @Parameter(name = "STD_ADDRESS_ID") + String stdAddressId(); + + @Parameter(name = "STD_CITY") + String stdCity(); + + @Parameter(name = "STD_CITY_DISTRICT") + String stdCityDistrict(); + + @Parameter(name = "STD_COUNTRY_CODE") + String stdCountryCode(); + + @Parameter(name = "STD_LRN") + String stdLrn(); + + @Parameter(name = "STD_POST_OFFICE") + String stdPostOffice(); + + @Parameter(name = "STD_REGION") + String stdRegion(); + + @Parameter(name = "STD_SN") + String stdSn(); + + @Parameter(name = "STD_STREET") + String stdStreet(); + + @Parameter(name = "STD_ZIP") + String stdZip(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEL4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEL4.java new file mode 100644 index 0000000..133100c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEL4.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFEL4 extends MwfRequest { + + @Parameter(name = "CisloUverovehoUctu") + MWFEL4 cisloUverovehoUctu(String cisloUverovehoUctu); + @Parameter(name = "DistribuceVypisu") + MWFEL4 distribuceVypisu(String distribuceVypisu); + @Parameter(name = "PeriodaVypisu") + MWFEL4 periodaVypisu(String periodaVypisu); + @Parameter(name = "VypisUctovatPoplatek") + MWFEL4 vypisUctovatPoplatek(Long vypisUctovatPoplatek); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEL4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEL4Response.java new file mode 100644 index 0000000..bdc6067 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEL4Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFEL4Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP3.java new file mode 100644 index 0000000..70499b5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP3.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFEP3 extends MwfRequest { + + @Parameter(name = "KUL_KEY") + MWFEP3 kulKey(Long kulKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP3Response.java new file mode 100644 index 0000000..26e361e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP3Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFEP3Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP8.java new file mode 100644 index 0000000..6970c95 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP8.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFEP8 extends MwfRequest { + + @Parameter(name = "Produkt") + MWFEP8 produkt(String produkt); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP8Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP8Data.java new file mode 100644 index 0000000..aa4f347 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP8Data.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFEP8Data { + + private Map params; + + public MWFEP8Data(Map params) { + this.params = params; + } + + public Long rsDenzuctovacihoobdobi() { + return (Long) params.get("RS_DENZUCTOVACIHOOBDOBI"); + } + + public Long rsDensplatky() { + return (Long) params.get("RS_DENSPLATKY"); + } + + public String rsDefault() { + return (String) params.get("RS_DEFAULT"); + } + + public String rsPopisek() { + return (String) params.get("RS_POPISEK"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP8Response.java new file mode 100644 index 0000000..caa5d23 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEP8Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFEP8Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ6.java new file mode 100644 index 0000000..8698cb6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ6.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFEQ6 extends MwfRequest { + + @Parameter(name = "APPLICATIONKEY") + MWFEQ6 applicationkey(Long applicationkey); + @Parameter(name = "CYCLE_CONTEXT") + MWFEQ6 cycleContext(Long cycleContext); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ6Response.java new file mode 100644 index 0000000..625e945 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ6Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFEQ6Response { + + @Parameter(name = "BUSSTATE") + String busstate(); + + @Parameter(name = "WFID") + String wfid(); + + @Parameter(name = "WFPrechodStavu") + String wFPrechodStavu(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ7.java new file mode 100644 index 0000000..2bdd131 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ7.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFEQ7 extends MwfRequest { + + @Parameter(name = "ACCOUNTNUMBER") + MWFEQ7 accountnumber(String accountnumber); + @Parameter(name = "BANKERSPROFILE") + MWFEQ7 bankersprofile(String bankersprofile); + @Parameter(name = "CARDLOGO") + MWFEQ7 cardlogo(String cardlogo); + @Parameter(name = "CONTRACTNUMBER") + MWFEQ7 contractnumber(String contractnumber); + @Parameter(name = "CONTRACTSIGNED") + MWFEQ7 contractsigned(Boolean contractsigned); + @Parameter(name = "CREDITACCOUNTNUMBER") + MWFEQ7 creditaccountnumber(String creditaccountnumber); + @Parameter(name = "DISTRIBUTIONCHANNELL") + MWFEQ7 distributionchannell(String distributionchannell); + @Parameter(name = "DOCUMENTID") + MWFEQ7 documentid(String documentid); + @Parameter(name = "SETFEE") + MWFEQ7 setfee(Boolean setfee); + @Parameter(name = "WFID") + MWFEQ7 wfid(String wfid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ7Response.java new file mode 100644 index 0000000..e26fef8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEQ7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFEQ7Response { + + @Parameter(name = "CHECK_STATE") + Long checkState(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER5.java new file mode 100644 index 0000000..1edba63 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER5.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFER5 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFER5 appKey(Long appKey); + @Parameter(name = "CNL_ID") + MWFER5 cnlId(String cnlId); + @Parameter(name = "CONSULTANT_EMPR_ICO") + MWFER5 consultantEmprIco(String consultantEmprIco); + @Parameter(name = "CONSULTANT_EMPR_NAME") + MWFER5 consultantEmprName(String consultantEmprName); + @Parameter(name = "CONSULTANT_ID") + MWFER5 consultantId(String consultantId); + @Parameter(name = "CONSULTANT_MTS_ID") + MWFER5 consultantMtsId(String consultantMtsId); + @Parameter(name = "DOC_INST_KEY") + MWFER5 docInstKey(Long docInstKey); + @Parameter(name = "EMP_PROCESS_ROLE_ID") + MWFER5 empProcessRoleId(String empProcessRoleId); + @Parameter(name = "EMP_ROLE_ID") + MWFER5 empRoleId(String empRoleId); + @Parameter(name = "EMP_ROLE_KEY") + MWFER5 empRoleKey(Long empRoleKey); + @Parameter(name = "EMP_SSO") + MWFER5 empSso(String empSso); + @Parameter(name = "FAMILY_NAME") + MWFER5 familyName(String familyName); + @Parameter(name = "FIRST_NAME") + MWFER5 firstName(String firstName); + @Parameter(name = "POS_ID") + MWFER5 posId(String posId); + @Parameter(name = "PRIM_FLAG") + MWFER5 primFlag(Long primFlag); + @Parameter(name = "SALESMAN_STAMP_FLAG") + MWFER5 salesmanStampFlag(Long salesmanStampFlag); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER5Response.java new file mode 100644 index 0000000..eb7596d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER5Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFER5Response { + + @Parameter(name = "EMP_ROLE_KEY") + Long empRoleKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER6.java new file mode 100644 index 0000000..267daef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER6.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFER6 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFER6 appKey(Long appKey); + @Parameter(name = "DOC_INST_KEY") + MWFER6 docInstKey(Long docInstKey); + @Parameter(name = "EMP_PROCESS_ROLE_ID") + MWFER6 empProcessRoleId(String empProcessRoleId); + @Parameter(name = "EMP_ROLE_ID") + MWFER6 empRoleId(String empRoleId); + @Parameter(name = "EMP_SSO") + MWFER6 empSso(String empSso); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER6Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER6Data.java new file mode 100644 index 0000000..8d7fdfc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER6Data.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFER6Data { + + private Map params; + + public MWFER6Data(Map params) { + this.params = params; + } + + public String rsCnlId() { + return (String) params.get("RS_CNL_ID"); + } + + public String rsEmpProcessRoleId() { + return (String) params.get("RS_EMP_PROCESS_ROLE_ID"); + } + + public String rsEmpRoleIdOut() { + return (String) params.get("RS_EMP_ROLE_ID_OUT"); + } + + public String rsSsoId() { + return (String) params.get("RS_SSO_ID"); + } + + public String rsFirstName() { + return (String) params.get("RS_FIRST_NAME"); + } + + public String rsFamilyName() { + return (String) params.get("RS_FAMILY_NAME"); + } + + public String rsConsultantId() { + return (String) params.get("RS_CONSULTANT_ID"); + } + + public String rsConsultantEmprIco() { + return (String) params.get("RS_CONSULTANT_EMPR_ICO"); + } + + public String rsConsultantEmprName() { + return (String) params.get("RS_CONSULTANT_EMPR_NAME"); + } + + public Long rsPrimFlag() { + return (Long) params.get("RS_PRIM_FLAG"); + } + + public String rsConsultantMtsId() { + return (String) params.get("RS_CONSULTANT_MTS_ID"); + } + + public Long rsEmpRoleKey() { + return (Long) params.get("RS_EMP_ROLE_KEY"); + } + + public Long rsSalesmanStampFlag() { + return (Long) params.get("RS_SALESMAN_STAMP_FLAG"); + } + + public String rsPosId() { + return (String) params.get("RS_POS_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER6Response.java new file mode 100644 index 0000000..79724ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFER6Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFER6Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFET2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFET2.java new file mode 100644 index 0000000..9c7f07f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFET2.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFET2 extends MwfRequest { + + @Parameter(name = "APPLICATIONKEY") + MWFET2 applicationkey(Long applicationkey); + @Parameter(name = "DISTRIBUTIONCHANNELL") + MWFET2 distributionchannell(String distributionchannell); + @Parameter(name = "WFID") + MWFET2 wfid(String wfid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFET2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFET2Response.java new file mode 100644 index 0000000..7fd4f8a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFET2Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFET2Response { + + @Parameter(name = "KORESULT") + String koresult(); + + @Parameter(name = "PodpisPocetUredniku") + Long podpisPocetUredniku(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU5.java new file mode 100644 index 0000000..a9a2ca7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU5.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFEU5 extends MwfRequest { + + @Parameter(name = "CIF") + MWFEU5 cif(String cif); + @Parameter(name = "GetBlackLists") + MWFEU5 getBlackLists(String getBlackLists); + @Parameter(name = "GetUnverified") + MWFEU5 getUnverified(String getUnverified); + @Parameter(name = "ICO") + MWFEU5 ico(String ico); + @Parameter(name = "RodneCislo") + MWFEU5 rodneCislo(String rodneCislo); + @Parameter(name = "SegmentProFxTool") + MWFEU5 segmentProFxTool(String segmentProFxTool); + @Parameter(name = "TypOsoby") + MWFEU5 typOsoby(String typOsoby); + @Parameter(name = "UniPtKey") + MWFEU5 uniPtKey(Long uniPtKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU5Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU5Data.java new file mode 100644 index 0000000..2390120 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU5Data.java @@ -0,0 +1,93 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFEU5Data { + + private Map params; + + public MWFEU5Data(Map params) { + this.params = params; + } + + public Long rsUniPtSegKey() { + return (Long) params.get("RS_UNI_PT_SEG_KEY"); + } + + public String rsSrcId() { + return (String) params.get("RS_SRC_ID"); + } + + public String rsSrcSysId() { + return (String) params.get("RS_SRC_SYS_ID"); + } + + public Long rsUniPtKey() { + return (Long) params.get("RS_UNI_PT_KEY"); + } + + public String rsBusCode() { + return (String) params.get("RS_BUS_CODE"); + } + + public String rsSegmCode() { + return (String) params.get("RS_SEGM_CODE"); + } + + public String rsSegCode() { + return (String) params.get("RS_SEG_CODE"); + } + + public java.util.Date rsSegDt() { + return (java.util.Date) params.get("RS_SEG_DT"); + } + + public String rsNote() { + return (String) params.get("RS_NOTE"); + } + + public String rsInsSso() { + return (String) params.get("RS_INS_SSO"); + } + + public java.util.Date rsInsDt() { + return (java.util.Date) params.get("RS_INS_DT"); + } + + public String rsUpdSso() { + return (String) params.get("RS_UPD_SSO"); + } + + public java.util.Date rsUpdDt() { + return (java.util.Date) params.get("RS_UPD_DT"); + } + + public String rsRsnTpCode() { + return (String) params.get("RS_RSN_TP_CODE"); + } + + public java.util.Date rsExpireDate() { + return (java.util.Date) params.get("RS_EXPIRE_DATE"); + } + + public String rsSrcEntity() { + return (String) params.get("RS_SRC_ENTITY"); + } + + public String rsDelFlag() { + return (String) params.get("RS_DEL_FLAG"); + } + + public String rsSrcRole() { + return (String) params.get("RS_SRC_ROLE"); + } + + public String rsSrcRowId() { + return (String) params.get("RS_SRC_ROW_ID"); + } + + public String rsDescr() { + return (String) params.get("RS_DESCR"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU5Response.java new file mode 100644 index 0000000..adf60f2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU5Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFEU5Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU6.java new file mode 100644 index 0000000..714a5f0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU6.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFEU6 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFEU6 appKey(Long appKey); + @Parameter(name = "CHANNEL_TYPE") + MWFEU6 channelType(String channelType); + @Parameter(name = "CLIENT_TYPE") + MWFEU6 clientType(String clientType); + @Parameter(name = "EMPL_ICO") + MWFEU6 emplIco(String emplIco); + @Parameter(name = "ID_OM") + MWFEU6 idOm(String idOm); + @Parameter(name = "ID_WEB_PARTNER") + MWFEU6 idWebPartner(String idWebPartner); + @Parameter(name = "LOAN_AMOUNT") + MWFEU6 loanAmount(Double loanAmount); + @Parameter(name = "MASS_AFFLUENT_FLAG") + MWFEU6 massAffluentFlag(Long massAffluentFlag); + @Parameter(name = "PRDCT_CAND_KEY") + MWFEU6 prdctCandKey(Long prdctCandKey); + @Parameter(name = "PRODUCT_CLASS") + MWFEU6 productClass(String productClass); + @Parameter(name = "TERM") + MWFEU6 term(Long term); + @Parameter(name = "VALIDITY") + MWFEU6 validity(java.util.Date validity); + @Parameter(name = "XSELL_CAMPAIGN") + MWFEU6 xsellCampaign(String xsellCampaign); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU6Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU6Data.java new file mode 100644 index 0000000..7ff8291 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU6Data.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFEU6Data { + + private Map params; + + public MWFEU6Data(Map params) { + this.params = params; + } + + public String rsDiscountType() { + return (String) params.get("RS_DISCOUNT_TYPE"); + } + + public String rsDiscountTypePopis() { + return (String) params.get("RS_DISCOUNT_TYPE_POPIS"); + } + + public String rsRetentionFlag() { + return (String) params.get("RS_RETENTION_FLAG"); + } + + public String rsDiscountTypeDescAdc() { + return (String) params.get("RS_DISCOUNT_TYPE_DESC_ADC"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU6Response.java new file mode 100644 index 0000000..ca7f1e2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEU6Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFEU6Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "MIN_INT_RATE") + Double minIntRate(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEW4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEW4.java new file mode 100644 index 0000000..2a582dc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEW4.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFEW4 extends MwfRequest { + + @Parameter(name = "APPL_KEY") + MWFEW4 applKey(Long applKey); + @Parameter(name = "APPL_PRINTED_FLAG") + MWFEW4 applPrintedFlag(Long applPrintedFlag); + @Parameter(name = "APPL_READ_FLAG") + MWFEW4 applReadFlag(Long applReadFlag); + @Parameter(name = "APPL_SET_KEY") + MWFEW4 applSetKey(Long applSetKey); + @Parameter(name = "APPROVER_REQ_KEY") + MWFEW4 approverReqKey(Long approverReqKey); + @Parameter(name = "CONTEXT") + MWFEW4 context(String context); + @Parameter(name = "REQ_INFOLIMIT_TYPE") + MWFEW4 reqInfolimitType(String reqInfolimitType); + @Parameter(name = "WF_ID") + MWFEW4 wfId(String wfId); + @Parameter(name = "WF_STATE") + MWFEW4 wfState(String wfState); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEW4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEW4Response.java new file mode 100644 index 0000000..b6ccd6c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEW4Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFEW4Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEX8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEX8.java new file mode 100644 index 0000000..18d38f7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEX8.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFEX8 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFEX8 appKey(Long appKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEX8Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEX8Data.java new file mode 100644 index 0000000..dacea38 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEX8Data.java @@ -0,0 +1,141 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFEX8Data { + + private Map params; + + public MWFEX8Data(Map params) { + this.params = params; + } + + public String rsZadostsubtyp() { + return (String) params.get("RS_ZADOSTSUBTYP"); + } + + public java.util.Date rsDatumzadosti() { + return (java.util.Date) params.get("RS_DATUMZADOSTI"); + } + + public String rsIco() { + return (String) params.get("RS_ICO"); + } + + public String rsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public String rsKodakce() { + return (String) params.get("RS_KODAKCE"); + } + + public String rsNazev() { + return (String) params.get("RS_NAZEV"); + } + + public String rsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public String rsStav() { + return (String) params.get("RS_STAV"); + } + + public Double rsVyseuverupozadovana() { + return (Double) params.get("RS_VYSEUVERUPOZADOVANA"); + } + + public Double rsVyseuveruschvalena() { + return (Double) params.get("RS_VYSEUVERUSCHVALENA"); + } + + public String rsKodproduktpozadovany() { + return (String) params.get("RS_KODPRODUKTPOZADOVANY"); + } + + public String rsKodproduktschvaleny() { + return (String) params.get("RS_KODPRODUKTSCHVALENY"); + } + + public String rsRodnecislo() { + return (String) params.get("RS_RODNECISLO"); + } + + public Long rsMtsStav() { + return (Long) params.get("RS_MTS_STAV"); + } + + public String rsDuvodrozhodnuti() { + return (String) params.get("RS_DUVODROZHODNUTI"); + } + + public String rsPrescoring() { + return (String) params.get("RS_PRESCORING"); + } + + public String rsAppStateAdc() { + return (String) params.get("RS_APP_STATE_ADC"); + } + + public String rsCurrency() { + return (String) params.get("RS_CURRENCY"); + } + + public String rsApplicationType() { + return (String) params.get("RS_APPLICATION_TYPE"); + } + + public String rsExpresmanFlag() { + return (String) params.get("RS_EXPRESMAN_FLAG"); + } + + public String rsPos() { + return (String) params.get("RS_POS"); + } + + public String rsInstPtKey() { + return (String) params.get("RS_INST_PT_KEY"); + } + + public String rsChannel() { + return (String) params.get("RS_CHANNEL"); + } + + public Long rsAppKey() { + return (Long) params.get("RS_APP_KEY"); + } + + public String rsStavtxt() { + return (String) params.get("RS_STAVTXT"); + } + + public Double rsSplatkaSch() { + return (Double) params.get("RS_SPLATKA_SCH"); + } + + public Double rsSplatkaPozad() { + return (Double) params.get("RS_SPLATKA_POZAD"); + } + + public Double rsSplatka() { + return (Double) params.get("RS_SPLATKA"); + } + + public Long rsApplSetKey() { + return (Long) params.get("RS_APPL_SET_KEY"); + } + + public String rsRelationshiptypeId() { + return (String) params.get("RS_RELATIONSHIPTYPE_ID"); + } + + public String rsAp() { + return (String) params.get("RS_AP"); + } + + public String rsViceduvodurozhodnutiFlag() { + return (String) params.get("RS_VICEDUVODUROZHODNUTI_FLAG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEX8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEX8Response.java new file mode 100644 index 0000000..67ee570 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFEX8Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFEX8Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF11.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF11.java new file mode 100644 index 0000000..627fc00 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF11.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFF11 extends MwfRequest { + + @Parameter(name = "CHECK_IN") + MWFF11 checkIn(String checkIn); + @Parameter(name = "CHECK_OUT") + MWFF11 checkOut(String checkOut); + @Parameter(name = "CM_ID") + MWFF11 cmId(String cmId); + @Parameter(name = "FOLDER_ID") + MWFF11 folderId(String folderId); + @Parameter(name = "NEW_VERSION") + MWFF11 newVersion(String newVersion); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF11Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF11Response.java new file mode 100644 index 0000000..95b3268 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF11Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFF11Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF14.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF14.java new file mode 100644 index 0000000..39a783c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF14.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFF14 extends MwfRequest { + + @Parameter(name = "IDOM") + MWFF14 idom(String idom); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF14Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF14Response.java new file mode 100644 index 0000000..920dcc4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF14Response.java @@ -0,0 +1,111 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFF14Response { + + @Parameter(name = "Email") + String email(); + + @Parameter(name = "Fax") + String fax(); + + @Parameter(name = "FlagShip") + Long flagShip(); + + @Parameter(name = "FramingLevel") + String framingLevel(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "IDKanal") + Long iDKanal(); + + @Parameter(name = "IDOkresu") + String iDOkresu(); + + @Parameter(name = "IODEmail") + String iODEmail(); + + @Parameter(name = "KategorieOM") + String kategorieOM(); + + @Parameter(name = "KodBanky") + String kodBanky(); + + @Parameter(name = "KontOsobaOZJmeno") + String kontOsobaOZJmeno(); + + @Parameter(name = "KontOsobaOZPrijmeni") + String kontOsobaOZPrijmeni(); + + @Parameter(name = "Mesto") + String mesto(); + + @Parameter(name = "NazevOM") + String nazevOM(); + + @Parameter(name = "OBNazev") + String oBNazev(); + + @Parameter(name = "Okres") + String okres(); + + @Parameter(name = "OtevrenoCT") + String otevrenoCT(); + + @Parameter(name = "OtevrenoNE") + String otevrenoNE(); + + @Parameter(name = "OtevrenoPA") + String otevrenoPA(); + + @Parameter(name = "OtevrenoPO") + String otevrenoPO(); + + @Parameter(name = "OtevrenoSO") + String otevrenoSO(); + + @Parameter(name = "OtevrenoST") + String otevrenoST(); + + @Parameter(name = "OtevrenoUT") + String otevrenoUT(); + + @Parameter(name = "PSC") + String psc(); + + @Parameter(name = "PocetZamestnancu") + Long pocetZamestnancu(); + + @Parameter(name = "Retezec") + String retezec(); + + @Parameter(name = "Segment") + String segment(); + + @Parameter(name = "Stat") + String stat(); + + @Parameter(name = "Telefon") + String telefon(); + + @Parameter(name = "URLCANCEL") + String urlcancel(); + + @Parameter(name = "URLNO") + String urlno(); + + @Parameter(name = "URLYES") + String urlyes(); + + @Parameter(name = "Ucet") + String ucet(); + + @Parameter(name = "Ulice") + String ulice(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF50.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF50.java new file mode 100644 index 0000000..f11bf9a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF50.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFF50 extends MwfRequest { + + @Parameter(name = "CIF") + MWFF50 cif(String cif); + @Parameter(name = "DataZVSN") + MWFF50 dataZVSN(Long dataZVSN); + @Parameter(name = "ExpiraceFlag") + MWFF50 expiraceFlag(String expiraceFlag); + @Parameter(name = "ICO") + MWFF50 ico(String ico); + @Parameter(name = "RodneCislo") + MWFF50 rodneCislo(String rodneCislo); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF50Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF50Data.java new file mode 100644 index 0000000..a7e7ef3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF50Data.java @@ -0,0 +1,205 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFF50Data { + + private Map params; + + public MWFF50Data(Map params) { + this.params = params; + } + + public String rsPlatnostkarty() { + return (String) params.get("RS_PLATNOSTKARTY"); + } + + public String rsCislokarty() { + return (String) params.get("RS_CISLOKARTY"); + } + + public String rsJmenodrzitele() { + return (String) params.get("RS_JMENODRZITELE"); + } + + public String rsLogokarty() { + return (String) params.get("RS_LOGOKARTY"); + } + + public String rsStavsmlouvy() { + return (String) params.get("RS_STAVSMLOUVY"); + } + + public String rsOrganizace() { + return (String) params.get("RS_ORGANIZACE"); + } + + public String rsAktivitakarty() { + return (String) params.get("RS_AKTIVITAKARTY"); + } + + public String rsBlokacesmlouvy1() { + return (String) params.get("RS_BLOKACESMLOUVY1"); + } + + public String rsBlokacesmlouvy2() { + return (String) params.get("RS_BLOKACESMLOUVY2"); + } + + public String rsMinimalnisplatka() { + return (String) params.get("RS_MINIMALNISPLATKA"); + } + + public Double rsDisponibilnizustatek() { + return (Double) params.get("RS_DISPONIBILNIZUSTATEK"); + } + + public java.util.Date rsSplatkadatumsplatnosti() { + return (java.util.Date) params.get("RS_SPLATKADATUMSPLATNOSTI"); + } + + public Double rsSplatkakuhrade() { + return (Double) params.get("RS_SPLATKAKUHRADE"); + } + + public Long rsDennilimitobchodnik() { + return (Long) params.get("RS_DENNILIMITOBCHODNIK"); + } + + public Double rsCelkemdoplatit() { + return (Double) params.get("RS_CELKEMDOPLATIT"); + } + + public Double rsVyseposlednisplatky() { + return (Double) params.get("RS_VYSEPOSLEDNISPLATKY"); + } + + public java.util.Date rsDatumposlednisplatky() { + return (java.util.Date) params.get("RS_DATUMPOSLEDNISPLATKY"); + } + + public Double rsUverovyramec() { + return (Double) params.get("RS_UVEROVYRAMEC"); + } + + public java.util.Date rsDatumpodpisusmlouvy() { + return (java.util.Date) params.get("RS_DATUMPODPISUSMLOUVY"); + } + + public String rsCislosmlouvy() { + return (String) params.get("RS_CISLOSMLOUVY"); + } + + public Long rsDennilimithotovost() { + return (Long) params.get("RS_DENNILIMITHOTOVOST"); + } + + public Double rsUverovyramecvycerpany() { + return (Double) params.get("RS_UVEROVYRAMECVYCERPANY"); + } + + public Double rsUverovyramechotovost() { + return (Double) params.get("RS_UVEROVYRAMECHOTOVOST"); + } + + public Double rsDisponibilnizustatekhotovost() { + return (Double) params.get("RS_DISPONIBILNIZUSTATEKHOTOVOST"); + } + + public String rsLoyaltystatus() { + return (String) params.get("RS_LOYALTYSTATUS"); + } + + public String rsDesignid() { + return (String) params.get("RS_DESIGNID"); + } + + public String rsZpusobdistribucevypisu() { + return (String) params.get("RS_ZPUSOBDISTRIBUCEVYPISU"); + } + + public String rsCislokaretnihouctu() { + return (String) params.get("RS_CISLOKARETNIHOUCTU"); + } + + public String rsDodatkovakarta() { + return (String) params.get("RS_DODATKOVAKARTA"); + } + + public Long rsMaxpocettransakciden() { + return (Long) params.get("RS_MAXPOCETTRANSAKCIDEN"); + } + + public Long rsMaxpocettransakcidenatm() { + return (Long) params.get("RS_MAXPOCETTRANSAKCIDENATM"); + } + + public String rsInternet() { + return (String) params.get("RS_INTERNET"); + } + + public String rsDrzitelrc() { + return (String) params.get("RS_DRZITELRC"); + } + + public Double rsLimitinkasa() { + return (Double) params.get("RS_LIMITINKASA"); + } + + public String rsZpusobuhrady() { + return (String) params.get("RS_ZPUSOBUHRADY"); + } + + public String rsCislokartymask() { + return (String) params.get("RS_CISLOKARTYMASK"); + } + + public String rsCislokaretnihouctumask() { + return (String) params.get("RS_CISLOKARETNIHOUCTUMASK"); + } + + public String rsChip() { + return (String) params.get("RS_CHIP"); + } + + public String rsMsisdn() { + return (String) params.get("RS_MSISDN"); + } + + public Long rsDennilimitecommerce() { + return (Long) params.get("RS_DENNILIMITECOMMERCE"); + } + + public String rsVybermimoeu() { + return (String) params.get("RS_VYBERMIMOEU"); + } + + public java.util.Date rsDatumodblokovani() { + return (java.util.Date) params.get("RS_DATUMODBLOKOVANI"); + } + + public String rsDuvodblokace() { + return (String) params.get("RS_DUVODBLOKACE"); + } + + public String rsDrzitelheslo() { + return (String) params.get("RS_DRZITELHESLO"); + } + + public Long rsSmartpinpozadavek() { + return (Long) params.get("RS_SMARTPINPOZADAVEK"); + } + + public String rsSmartpinanone() { + return (String) params.get("RS_SMARTPINANONE"); + } + + public String rsZpusobdistribucepin() { + return (String) params.get("RS_ZPUSOBDISTRIBUCEPIN"); + } + + public String rsSmartpinnumber() { + return (String) params.get("RS_SMARTPINNUMBER"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF50Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF50Response.java new file mode 100644 index 0000000..303c47f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFF50Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFF50Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC0.java new file mode 100644 index 0000000..d9ee58f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC0.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFFC0 extends MwfRequest { + + @Parameter(name = "CIF") + MWFFC0 cif(String cif); + @Parameter(name = "DATUM_CAS") + MWFFC0 datumCas(java.util.Date datumCas); + @Parameter(name = "DELKA_SCHUZKY") + MWFFC0 delkaSchuzky(String delkaSchuzky); + @Parameter(name = "DOKUMENTY") + MWFFC0 dokumenty(String dokumenty); + @Parameter(name = "EMAIL") + MWFFC0 email(String email); + @Parameter(name = "ID_POZADAVEK") + MWFFC0 idPozadavek(Long idPozadavek); + @Parameter(name = "JMENO") + MWFFC0 jmeno(String jmeno); + @Parameter(name = "KANAL") + MWFFC0 kanal(String kanal); + @Parameter(name = "LANG") + MWFFC0 lang(String lang); + @Parameter(name = "NOTE") + MWFFC0 note(String note); + @Parameter(name = "OM_CISLO") + MWFFC0 omCislo(String omCislo); + @Parameter(name = "POSILAT_SMS_FLAG") + MWFFC0 posilatSmsFlag(String posilatSmsFlag); + @Parameter(name = "PRODUKT_TYP") + MWFFC0 produktTyp(String produktTyp); + @Parameter(name = "PRODUKT_TYP_ID") + MWFFC0 produktTypId(String produktTypId); + @Parameter(name = "RC") + MWFFC0 rc(String rc); + @Parameter(name = "ROK_NAROZENI") + MWFFC0 rokNarozeni(String rokNarozeni); + @Parameter(name = "SSO_BANKER") + MWFFC0 ssoBanker(String ssoBanker); + @Parameter(name = "TELEFON") + MWFFC0 telefon(String telefon); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC0Response.java new file mode 100644 index 0000000..5694f62 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC0Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFFC0Response { + + @Parameter(name = "ID_SCHUZKY") + Long idSchuzky(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC5.java new file mode 100644 index 0000000..659d982 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC5.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFFC5 extends MwfRequest { + + @Parameter(name = "ACCOUNT_NUM") + MWFFC5 accountNum(String accountNum); + @Parameter(name = "APP_ID") + MWFFC5 appId(String appId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC5Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC5Data.java new file mode 100644 index 0000000..3c42395 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC5Data.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFFC5Data { + + private Map params; + + public MWFFC5Data(Map params) { + this.params = params; + } + + public String rsAccountNum() { + return (String) params.get("RS_ACCOUNT_NUM"); + } + + public String rsAppId() { + return (String) params.get("RS_APP_ID"); + } + + public String rsLoanNum() { + return (String) params.get("RS_LOAN_NUM"); + } + + public Double rsMonthlyFeeAct() { + return (Double) params.get("RS_MONTHLY_FEE_ACT"); + } + + public Double rsMonthlyFeeNew() { + return (Double) params.get("RS_MONTHLY_FEE_NEW"); + } + + public String rsSalesProdType() { + return (String) params.get("RS_SALES_PROD_TYPE"); + } + + public String rsFeeTypeNew() { + return (String) params.get("RS_FEE_TYPE_NEW"); + } + + public String rsFeeTypeAct() { + return (String) params.get("RS_FEE_TYPE_ACT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC5Response.java new file mode 100644 index 0000000..a115d83 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFC5Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFFC5Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Index") + Long index(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFI3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFI3.java new file mode 100644 index 0000000..ffdd00f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFI3.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFFI3 extends MwfRequest { + + @Parameter(name = "WFID") + MWFFI3 wfid(String wfid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFI3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFI3Response.java new file mode 100644 index 0000000..11bc50f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFI3Response.java @@ -0,0 +1,96 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFFI3Response { + + @Parameter(name = "ACCOUNTNUMBER") + String accountnumber(); + + @Parameter(name = "APPLICATIONID") + String applicationid(); + + @Parameter(name = "APPLICATIONKEY") + Long applicationkey(); + + @Parameter(name = "APPLICATIONSETKEY") + Long applicationsetkey(); + + @Parameter(name = "AUTOSIGNATURE") + Boolean autosignature(); + + @Parameter(name = "BANKERSPROFILE") + String bankersprofile(); + + @Parameter(name = "BUSSTATE") + String busstate(); + + @Parameter(name = "CANCELLATIONTIME") + java.util.Date cancellationtime(); + + @Parameter(name = "CARDLOGO") + String cardlogo(); + + @Parameter(name = "CARDTYPE") + Long cardtype(); + + @Parameter(name = "CLIENTACTIONDATE") + java.util.Date clientactiondate(); + + @Parameter(name = "CLIENTID") + String clientid(); + + @Parameter(name = "CONTRACTNUMBER") + String contractnumber(); + + @Parameter(name = "CONTRACTSIGNED") + Boolean contractsigned(); + + @Parameter(name = "CONTRACTSIGNINGDATE") + java.util.Date contractsigningdate(); + + @Parameter(name = "CREDITACCOUNTNUMBER") + String creditaccountnumber(); + + @Parameter(name = "DOCUMENTID") + String documentid(); + + @Parameter(name = "FIRSTSIGNINGBANKER") + String firstsigningbanker(); + + @Parameter(name = "KOTIME") + java.util.Date kotime(); + + @Parameter(name = "PARENTWFID") + String parentwfid(); + + @Parameter(name = "PROCESSSTARTDATE") + java.util.Date processstartdate(); + + @Parameter(name = "PRODUCTTYPE") + String producttype(); + + @Parameter(name = "REQUESTTYPE") + String requesttype(); + + @Parameter(name = "SECONDSIGNINGBANKER") + String secondsigningbanker(); + + @Parameter(name = "SETFEE") + Boolean setfee(); + + @Parameter(name = "SIGNINGTIME") + java.util.Date signingtime(); + + @Parameter(name = "USERID") + String userid(); + + @Parameter(name = "VERIFYCONTRACT") + Boolean verifycontract(); + + @Parameter(name = "WAITINGFORCLIENTAPPROVAL") + Boolean waitingforclientapproval(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFM2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFM2.java new file mode 100644 index 0000000..01b1310 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFM2.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFFM2 extends MwfRequest { + + @Parameter(name = "ACTUAL_DATE") + MWFFM2 actualDate(java.util.Date actualDate); + @Parameter(name = "APP_ID") + MWFFM2 appId(String appId); + @Parameter(name = "APP_KEY") + MWFFM2 appKey(Long appKey); + @Parameter(name = "FEE_PLAN_TYPE") + MWFFM2 feePlanType(String feePlanType); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFM2Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFM2Data.java new file mode 100644 index 0000000..0f7986a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFM2Data.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFFM2Data { + + private Map params; + + public MWFFM2Data(Map params) { + this.params = params; + } + + public String rsFeeType() { + return (String) params.get("RS_FEE_TYPE"); + } + + public String rsFeeText() { + return (String) params.get("RS_FEE_TEXT"); + } + + public String rsFeeMode() { + return (String) params.get("RS_FEE_MODE"); + } + + public java.util.Date rsSazebnikDatum() { + return (java.util.Date) params.get("RS_SAZEBNIK_DATUM"); + } + + public String rsSazebnikText() { + return (String) params.get("RS_SAZEBNIK_TEXT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFM2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFM2Response.java new file mode 100644 index 0000000..805bcfd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFM2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFFM2Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFV3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFV3.java new file mode 100644 index 0000000..e0ab991 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFV3.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFFV3 extends MwfRequest { + + @Parameter(name = "APPLICATION_TYPE_IN") + MWFFV3 applicationTypeIn(String applicationTypeIn); + @Parameter(name = "CIF") + MWFFV3 cif(String cif); + @Parameter(name = "CisloDokladu") + MWFFV3 cisloDokladu(String cisloDokladu); + @Parameter(name = "CisloDruhehoDokladu") + MWFFV3 cisloDruhehoDokladu(String cisloDruhehoDokladu); + @Parameter(name = "CisloTelefonu") + MWFFV3 cisloTelefonu(String cisloTelefonu); + @Parameter(name = "DatumDo") + MWFFV3 datumDo(java.util.Date datumDo); + @Parameter(name = "DatumOd") + MWFFV3 datumOd(java.util.Date datumOd); + @Parameter(name = "FE_Channel_ID") + MWFFV3 fEChannelID(String fEChannelID); + @Parameter(name = "ICO") + MWFFV3 ico(String ico); + @Parameter(name = "IDZadosti") + MWFFV3 iDZadosti(String iDZadosti); + @Parameter(name = "OM") + MWFFV3 om(String om); + @Parameter(name = "Prijmeni") + MWFFV3 prijmeni(String prijmeni); + @Parameter(name = "Product_Requested_In") + MWFFV3 productRequestedIn(String productRequestedIn); + @Parameter(name = "RC") + MWFFV3 rc(String rc); + @Parameter(name = "StavZadostiJednoduchy") + MWFFV3 stavZadostiJednoduchy(String stavZadostiJednoduchy); + @Parameter(name = "TridaProduktu") + MWFFV3 tridaProduktu(String tridaProduktu); + @Parameter(name = "TypDokladu") + MWFFV3 typDokladu(String typDokladu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFV3Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFV3Data.java new file mode 100644 index 0000000..7942a3c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFV3Data.java @@ -0,0 +1,137 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFFV3Data { + + private Map params; + + public MWFFV3Data(Map params) { + this.params = params; + } + + public String rsZadostsubtyp() { + return (String) params.get("RS_ZADOSTSUBTYP"); + } + + public java.util.Date rsDatumzadosti() { + return (java.util.Date) params.get("RS_DATUMZADOSTI"); + } + + public String rsIco() { + return (String) params.get("RS_ICO"); + } + + public String rsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public String rsKodakce() { + return (String) params.get("RS_KODAKCE"); + } + + public String rsNazev() { + return (String) params.get("RS_NAZEV"); + } + + public String rsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public String rsStav() { + return (String) params.get("RS_STAV"); + } + + public Double rsVyseuverupozadovana() { + return (Double) params.get("RS_VYSEUVERUPOZADOVANA"); + } + + public Double rsVyseuveruschvalena() { + return (Double) params.get("RS_VYSEUVERUSCHVALENA"); + } + + public String rsKodproduktpozadovany() { + return (String) params.get("RS_KODPRODUKTPOZADOVANY"); + } + + public String rsKodproduktschvaleny() { + return (String) params.get("RS_KODPRODUKTSCHVALENY"); + } + + public String rsRodnecislo() { + return (String) params.get("RS_RODNECISLO"); + } + + public Long rsMtsStav() { + return (Long) params.get("RS_MTS_STAV"); + } + + public String rsDuvodrozhodnuti() { + return (String) params.get("RS_DUVODROZHODNUTI"); + } + + public String rsPrescoring() { + return (String) params.get("RS_PRESCORING"); + } + + public String rsAppStateAdc() { + return (String) params.get("RS_APP_STATE_ADC"); + } + + public String rsCurrency() { + return (String) params.get("RS_CURRENCY"); + } + + public String rsApplicationType() { + return (String) params.get("RS_APPLICATION_TYPE"); + } + + public String rsExpresmanFlag() { + return (String) params.get("RS_EXPRESMAN_FLAG"); + } + + public String rsPos() { + return (String) params.get("RS_POS"); + } + + public String rsInstPtKey() { + return (String) params.get("RS_INST_PT_KEY"); + } + + public String rsChannel() { + return (String) params.get("RS_CHANNEL"); + } + + public Long rsAppKey() { + return (Long) params.get("RS_APP_KEY"); + } + + public String rsStavtxt() { + return (String) params.get("RS_STAVTXT"); + } + + public Double rsSplatkaSch() { + return (Double) params.get("RS_SPLATKA_SCH"); + } + + public Double rsSplatkaPozad() { + return (Double) params.get("RS_SPLATKA_POZAD"); + } + + public Double rsSplatka() { + return (Double) params.get("RS_SPLATKA"); + } + + public Long rsApplSetKey() { + return (Long) params.get("RS_APPL_SET_KEY"); + } + + public String rsRelationshiptypeId() { + return (String) params.get("RS_RELATIONSHIPTYPE_ID"); + } + + public String rsAp() { + return (String) params.get("RS_AP"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFV3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFV3Response.java new file mode 100644 index 0000000..2b254d7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFV3Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFFV3Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFW0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFW0.java new file mode 100644 index 0000000..a466af6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFW0.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFFW0 extends MwfRequest { + + @Parameter(name = "APP_ID") + MWFFW0 appId(String appId); + @Parameter(name = "CIF") + MWFFW0 cif(String cif); + @Parameter(name = "Cache") + MWFFW0 cache(Long cache); + @Parameter(name = "GeminiUserID") + MWFFW0 geminiUserID(Long geminiUserID); + @Parameter(name = "ICO") + MWFFW0 ico(String ico); + @Parameter(name = "MobilniKlic") + MWFFW0 mobilniKlic(String mobilniKlic); + @Parameter(name = "ReguestType") + MWFFW0 reguestType(String reguestType); + @Parameter(name = "WF_ID") + MWFFW0 wfId(String wfId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFW0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFW0Response.java new file mode 100644 index 0000000..b2a1ae1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFFW0Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFFW0Response { + + @Parameter(name = "RequestID") + Long requestID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG32.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG32.java new file mode 100644 index 0000000..ae1231d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG32.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFG32 extends MwfRequest { + + @Parameter(name = "KANAL") + MWFG32 kanal(String kanal); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG32Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG32Data.java new file mode 100644 index 0000000..059486e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG32Data.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFG32Data { + + private Map params; + + public MWFG32Data(Map params) { + this.params = params; + } + + public Long rsId() { + return (Long) params.get("RS_ID"); + } + + public String rsName() { + return (String) params.get("RS_NAME"); + } + + public Double rsMaxAmount() { + return (Double) params.get("RS_MAX_AMOUNT"); + } + + public Double rsMinAmount() { + return (Double) params.get("RS_MIN_AMOUNT"); + } + + public Long rsMaxMaturity() { + return (Long) params.get("RS_MAX_MATURITY"); + } + + public Long rsMinMaturity() { + return (Long) params.get("RS_MIN_MATURITY"); + } + + public Long rsMaxLtv() { + return (Long) params.get("RS_MAX_LTV"); + } + + public Long rsMinLtv() { + return (Long) params.get("RS_MIN_LTV"); + } + + public Long rsMaxOffset() { + return (Long) params.get("RS_MAX_OFFSET"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG32Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG32Response.java new file mode 100644 index 0000000..20645bb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG32Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFG32Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG51.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG51.java new file mode 100644 index 0000000..46b76fc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG51.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFG51 extends MwfRequest { + + @Parameter(name = "CLIENT_ADDRESS_BCC") + MWFG51 clientAddressBcc(String clientAddressBcc); + @Parameter(name = "CLIENT_ADDRESS_CC") + MWFG51 clientAddressCc(String clientAddressCc); + @Parameter(name = "CLIENT_ADDRESS_TO") + MWFG51 clientAddressTo(String clientAddressTo); + @Parameter(name = "CLIENT_BIRTH_NUM") + MWFG51 clientBirthNum(String clientBirthNum); + @Parameter(name = "CLIENT_ID") + MWFG51 clientId(String clientId); + @Parameter(name = "COST_CENTER_ID") + MWFG51 costCenterId(Long costCenterId); + @Parameter(name = "FORMAT_ID") + MWFG51 formatId(Long formatId); + @Parameter(name = "GATEWAY_ADDRESS") + MWFG51 gatewayAddress(String gatewayAddress); + @Parameter(name = "GW_SYS_ID") + MWFG51 gwSysId(Long gwSysId); + @Parameter(name = "MESG_ALLOW_PAIRING") + MWFG51 mesgAllowPairing(Long mesgAllowPairing); + @Parameter(name = "MESG_ATTACHMENT_DMS_ID") + MWFG51 mesgAttachmentDmsId(String mesgAttachmentDmsId); + @Parameter(name = "MESG_ATTACHMENT_NAME") + MWFG51 mesgAttachmentName(String mesgAttachmentName); + @Parameter(name = "MESG_ATTACHMENT_URI") + MWFG51 mesgAttachmentUri(String mesgAttachmentUri); + @Parameter(name = "MESG_PARAMS") + MWFG51 mesgParams(String mesgParams); + @Parameter(name = "REF_ID") + MWFG51 refId(Long refId); + @Parameter(name = "REPLY_TO") + MWFG51 replyTo(String replyTo); + @Parameter(name = "SEND_TIME") + MWFG51 sendTime(String sendTime); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG51Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG51Response.java new file mode 100644 index 0000000..f24159a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG51Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFG51Response { + + @Parameter(name = "MESG_ID") + Long mesgId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG84.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG84.java new file mode 100644 index 0000000..d1fb168 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG84.java @@ -0,0 +1,78 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFG84 extends MwfRequest { + + @Parameter(name = "BankaPrijemceJmenoBanky") + MWFG84 bankaPrijemceJmenoBanky(String bankaPrijemceJmenoBanky); + @Parameter(name = "BankaPrijemceMesto") + MWFG84 bankaPrijemceMesto(String bankaPrijemceMesto); + @Parameter(name = "BankaPrijemceStat") + MWFG84 bankaPrijemceStat(String bankaPrijemceStat); + @Parameter(name = "BankaPrijemceUlice") + MWFG84 bankaPrijemceUlice(String bankaPrijemceUlice); + @Parameter(name = "CasPorizeni") + MWFG84 casPorizeni(java.util.Date casPorizeni); + @Parameter(name = "CastkaPlatby") + MWFG84 castkaPlatby(Double castkaPlatby); + @Parameter(name = "CisloUctu") + MWFG84 cisloUctu(String cisloUctu); + @Parameter(name = "DatumPorizeni") + MWFG84 datumPorizeni(java.util.Date datumPorizeni); + @Parameter(name = "DatumUcinnosti") + MWFG84 datumUcinnosti(java.util.Date datumUcinnosti); + @Parameter(name = "EkvivalentKUctu") + MWFG84 ekvivalentKUctu(Double ekvivalentKUctu); + @Parameter(name = "Gemini") + MWFG84 gemini(String gemini); + @Parameter(name = "IDBanky") + MWFG84 iDBanky(String iDBanky); + @Parameter(name = "IDTransakceIB") + MWFG84 iDTransakceIB(Long iDTransakceIB); + @Parameter(name = "InfoProPrijemce1") + MWFG84 infoProPrijemce1(String infoProPrijemce1); + @Parameter(name = "InfoProPrijemce2") + MWFG84 infoProPrijemce2(String infoProPrijemce2); + @Parameter(name = "InfoProPrijemce3") + MWFG84 infoProPrijemce3(String infoProPrijemce3); + @Parameter(name = "InfoProPrijemce4") + MWFG84 infoProPrijemce4(String infoProPrijemce4); + @Parameter(name = "KodPartnera") + MWFG84 kodPartnera(String kodPartnera); + @Parameter(name = "KodZeme") + MWFG84 kodZeme(String kodZeme); + @Parameter(name = "Konfirmace1") + MWFG84 konfirmace1(String konfirmace1); + @Parameter(name = "Konfirmace2") + MWFG84 konfirmace2(String konfirmace2); + @Parameter(name = "KontrolaNaSpiciUcet") + MWFG84 kontrolaNaSpiciUcet(String kontrolaNaSpiciUcet); + @Parameter(name = "MenaPlatby") + MWFG84 menaPlatby(String menaPlatby); + @Parameter(name = "OperacniKodBanky") + MWFG84 operacniKodBanky(String operacniKodBanky); + @Parameter(name = "PlatebniTitulKod") + MWFG84 platebniTitulKod(String platebniTitulKod); + @Parameter(name = "PrijemceCisloUctu") + MWFG84 prijemceCisloUctu(String prijemceCisloUctu); + @Parameter(name = "PrijemceJmeno") + MWFG84 prijemceJmeno(String prijemceJmeno); + @Parameter(name = "PrijemceStat") + MWFG84 prijemceStat(String prijemceStat); + @Parameter(name = "PrijemceUliceMesto") + MWFG84 prijemceUliceMesto(String prijemceUliceMesto); + @Parameter(name = "PriznakKurzu") + MWFG84 priznakKurzu(String priznakKurzu); + @Parameter(name = "PriznakPlatby") + MWFG84 priznakPlatby(String priznakPlatby); + @Parameter(name = "Residence") + MWFG84 residence(String residence); + @Parameter(name = "SmennyKurs") + MWFG84 smennyKurs(Double smennyKurs); + @Parameter(name = "ReferencePlatce") + MWFG84 referencePlatce(String referencePlatce); + @Parameter(name = "VylohyZpusobUhrady") + MWFG84 vylohyZpusobUhrady(String vylohyZpusobUhrady); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG84Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG84Response.java new file mode 100644 index 0000000..e9a77c8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFG84Response.java @@ -0,0 +1,87 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFG84Response { + + @Parameter(name = "BankaPrijemceJmenoBanky") + String bankaPrijemceJmenoBanky(); + + @Parameter(name = "BankaPrijemceMesto") + String bankaPrijemceMesto(); + + @Parameter(name = "BankaPrijemceStat") + String bankaPrijemceStat(); + + @Parameter(name = "BankaPrijemceUlice") + String bankaPrijemceUlice(); + + @Parameter(name = "EkvivalentKUctu") + Double ekvivalentKUctu(); + + @Parameter(name = "IDTransakce") + Long iDTransakce(); + + @Parameter(name = "InfoProPrijemce1") + String infoProPrijemce1(); + + @Parameter(name = "InfoProPrijemce2") + String infoProPrijemce2(); + + @Parameter(name = "InfoProPrijemce3") + String infoProPrijemce3(); + + @Parameter(name = "InfoProPrijemce4") + String infoProPrijemce4(); + + @Parameter(name = "OUTBankaPrijemceJmenoBanky") + String oUTBankaPrijemceJmenoBanky(); + + @Parameter(name = "OUTBankaPrijemceMesto") + String oUTBankaPrijemceMesto(); + + @Parameter(name = "OUTBankaPrijemceStat") + String oUTBankaPrijemceStat(); + + @Parameter(name = "OUTBankaPrijemceUlice") + String oUTBankaPrijemceUlice(); + + @Parameter(name = "OUTInformaceProPrijemce1") + String oUTInformaceProPrijemce1(); + + @Parameter(name = "OUTInformaceProPrijemce2") + String oUTInformaceProPrijemce2(); + + @Parameter(name = "OUTInformaceProPrijemce3") + String oUTInformaceProPrijemce3(); + + @Parameter(name = "OUTInformaceProPrijemce4") + String oUTInformaceProPrijemce4(); + + @Parameter(name = "OUTPrijemceCisloUctu") + String oUTPrijemceCisloUctu(); + + @Parameter(name = "OUTPrijemceJmeno") + String oUTPrijemceJmeno(); + + @Parameter(name = "OUTPrijemceStat") + String oUTPrijemceStat(); + + @Parameter(name = "OUTPrijemceUliceMesto") + String oUTPrijemceUliceMesto(); + + @Parameter(name = "PrijemceCisloUctu") + String prijemceCisloUctu(); + + @Parameter(name = "PrijemceJmeno") + String prijemceJmeno(); + + @Parameter(name = "PrijemceStat") + String prijemceStat(); + + @Parameter(name = "PrijemceUliceMesto") + String prijemceUliceMesto(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGJ2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGJ2.java new file mode 100644 index 0000000..4970602 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGJ2.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGJ2 extends MwfRequest { + + @Parameter(name = "DISTRIBUTIONCHANNELL") + MWFGJ2 distributionchannell(String distributionchannell); + @Parameter(name = "WFID") + MWFGJ2 wfid(String wfid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGJ2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGJ2Response.java new file mode 100644 index 0000000..e5d2883 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGJ2Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGJ2Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK0.java new file mode 100644 index 0000000..e2b61a2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK0.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGK0 extends MwfRequest { + + @Parameter(name = "CIF") + MWFGK0 cif(String cif); + @Parameter(name = "IdKlienta") + MWFGK0 idKlienta(String idKlienta); + @Parameter(name = "IdProduktu") + MWFGK0 idProduktu(String idProduktu); + @Parameter(name = "IdZadosti") + MWFGK0 idZadosti(String idZadosti); + @Parameter(name = "ItemTypeFolder") + MWFGK0 itemTypeFolder(String itemTypeFolder); + @Parameter(name = "NazevDokumentu") + MWFGK0 nazevDokumentu(String nazevDokumentu); + @Parameter(name = "NezakladatFolder") + MWFGK0 nezakladatFolder(String nezakladatFolder); + @Parameter(name = "Semantic_Type") + MWFGK0 semanticType(String semanticType); + @Parameter(name = "SkupinaProduktu") + MWFGK0 skupinaProduktu(String skupinaProduktu); + @Parameter(name = "TridaProduktu") + MWFGK0 tridaProduktu(String tridaProduktu); + @Parameter(name = "TypDokumentu") + MWFGK0 typDokumentu(Long typDokumentu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK0Response.java new file mode 100644 index 0000000..47371db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK0Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGK0Response { + + @Parameter(name = "CM_ID") + String cmId(); + + @Parameter(name = "NovyFolder") + Long novyFolder(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK1.java new file mode 100644 index 0000000..bd38ac4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK1.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGK1 extends MwfRequest { + + @Parameter(name = "CIF") + MWFGK1 cif(String cif); + @Parameter(name = "Jazyk") + MWFGK1 jazyk(String jazyk); + @Parameter(name = "NeaktivniUctyFlag") + MWFGK1 neaktivniUctyFlag(String neaktivniUctyFlag); + @Parameter(name = "SkupinaProduktu") + MWFGK1 skupinaProduktu(String skupinaProduktu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK1Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK1Data.java new file mode 100644 index 0000000..3eac3a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK1Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFGK1Data { + + private Map params; + + public MWFGK1Data(Map params) { + this.params = params; + } + + public String rsIdproduktu() { + return (String) params.get("RS_IDPRODUKTU"); + } + + public String rsCislouctu() { + return (String) params.get("RS_CISLOUCTU"); + } + + public String rsNazevproduktu() { + return (String) params.get("RS_NAZEVPRODUKTU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK1Response.java new file mode 100644 index 0000000..b0813c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK1Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGK1Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK3.java new file mode 100644 index 0000000..511a157 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK3.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGK3 extends MwfRequest { + + @Parameter(name = "CIF") + MWFGK3 cif(String cif); + @Parameter(name = "DatumDo") + MWFGK3 datumDo(java.util.Date datumDo); + @Parameter(name = "DatumOd") + MWFGK3 datumOd(java.util.Date datumOd); + @Parameter(name = "IdDokumentu") + MWFGK3 idDokumentu(String idDokumentu); + @Parameter(name = "IdKlienta") + MWFGK3 idKlienta(String idKlienta); + @Parameter(name = "IdNas") + MWFGK3 idNas(String idNas); + @Parameter(name = "IdProduktu") + MWFGK3 idProduktu(String idProduktu); + @Parameter(name = "IdTransakce") + MWFGK3 idTransakce(String idTransakce); + @Parameter(name = "IdZadosti") + MWFGK3 idZadosti(String idZadosti); + @Parameter(name = "ItemType") + MWFGK3 itemType(String itemType); + @Parameter(name = "MaxDoc") + MWFGK3 maxDoc(Long maxDoc); + @Parameter(name = "OdDoc") + MWFGK3 odDoc(Long odDoc); + @Parameter(name = "RazeniAtribut") + MWFGK3 razeniAtribut(String razeniAtribut); + @Parameter(name = "RazeniSmer") + MWFGK3 razeniSmer(String razeniSmer); + @Parameter(name = "SEMANTIC_TYPES") + MWFGK3 semanticTypes(String semanticTypes); + @Parameter(name = "SSO") + MWFGK3 sso(String sso); + @Parameter(name = "SkupinaProduktu") + MWFGK3 skupinaProduktu(String skupinaProduktu); + @Parameter(name = "TridaProduktu") + MWFGK3 tridaProduktu(Long tridaProduktu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK3Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK3Data.java new file mode 100644 index 0000000..b7b4941 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK3Data.java @@ -0,0 +1,309 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFGK3Data { + + private Map params; + + public MWFGK3Data(Map params) { + this.params = params; + } + + public String rsCmId() { + return (String) params.get("RS_CM_ID"); + } + + public String rsItemtype() { + return (String) params.get("RS_ITEMTYPE"); + } + + public String rsSemanticType() { + return (String) params.get("RS_SEMANTIC_TYPE"); + } + + public String rsCrtUsr() { + return (String) params.get("RS_CRT_USR"); + } + + public java.util.Date rsCrtTime() { + return (java.util.Date) params.get("RS_CRT_TIME"); + } + + public String rsChgUsr() { + return (String) params.get("RS_CHG_USR"); + } + + public java.util.Date rsChgTime() { + return (java.util.Date) params.get("RS_CHG_TIME"); + } + + public String rsChckoutUsr() { + return (String) params.get("RS_CHCKOUT_USR"); + } + + public java.util.Date rsChckoutTime() { + return (java.util.Date) params.get("RS_CHCKOUT_TIME"); + } + + public String rsIddokumentu() { + return (String) params.get("RS_IDDOKUMENTU"); + } + + public Long rsIdklienta() { + return (Long) params.get("RS_IDKLIENTA"); + } + + public String rsKlasifikace() { + return (String) params.get("RS_KLASIFIKACE"); + } + + public String rsSkartacniznacka() { + return (String) params.get("RS_SKARTACNIZNACKA"); + } + + public Long rsSkartacnilhuta() { + return (Long) params.get("RS_SKARTACNILHUTA"); + } + + public String rsDistribuce() { + return (String) params.get("RS_DISTRIBUCE"); + } + + public String rsPristup() { + return (String) params.get("RS_PRISTUP"); + } + + public java.util.Date rsDatumskartace() { + return (java.util.Date) params.get("RS_DATUMSKARTACE"); + } + + public String rsItemreference() { + return (String) params.get("RS_ITEMREFERENCE"); + } + + public String rsNazevdokumentu() { + return (String) params.get("RS_NAZEVDOKUMENTU"); + } + + public Long rsTypdokumentu() { + return (Long) params.get("RS_TYPDOKUMENTU"); + } + + public String rsIdproduktu() { + return (String) params.get("RS_IDPRODUKTU"); + } + + public String rsNazevproduktu() { + return (String) params.get("RS_NAZEVPRODUKTU"); + } + + public String rsIdzadosti() { + return (String) params.get("RS_IDZADOSTI"); + } + + public String rsSkupinaproduktu() { + return (String) params.get("RS_SKUPINAPRODUKTU"); + } + + public String rsTridaproduktu() { + return (String) params.get("RS_TRIDAPRODUKTU"); + } + + public String rsSso() { + return (String) params.get("RS_SSO"); + } + + public String rsStav() { + return (String) params.get("RS_STAV"); + } + + public String rsNazevdokumentuib() { + return (String) params.get("RS_NAZEVDOKUMENTUIB"); + } + + public String rsCmVersion() { + return (String) params.get("RS_CM_VERSION"); + } + + public String rsBinPartId() { + return (String) params.get("RS_BIN_PART_ID"); + } + + public String rsBinPartVersion() { + return (String) params.get("RS_BIN_PART_VERSION"); + } + + public String rsIdtransakce() { + return (String) params.get("RS_IDTRANSAKCE"); + } + + public Long rsPrectenydokument() { + return (Long) params.get("RS_PRECTENYDOKUMENT"); + } + + public java.util.Date rsDatumprecteni() { + return (java.util.Date) params.get("RS_DATUMPRECTENI"); + } + + public String rsPrectenosystemem() { + return (String) params.get("RS_PRECTENOSYSTEMEM"); + } + + public String rsPrecetluzivatel() { + return (String) params.get("RS_PRECETLUZIVATEL"); + } + + public Long rsEArchiveflag() { + return (Long) params.get("RS_E_ARCHIVEFLAG"); + } + + public String rsEItemreference() { + return (String) params.get("RS_E_ITEMREFERENCE"); + } + + public java.util.Date rsEElektronickypodpisDatumplatnostido() { + return (java.util.Date) params.get("RS_E_ELEKTRONICKYPODPIS__DATUMPLATNOSTIDO"); + } + + public String rsEElektronickypodpisCertifikacniautorita() { + return (String) params.get("RS_E_ELEKTRONICKYPODPIS__CERTIFIKACNIAUTORITA"); + } + + public String rsECasoverazitkoHash() { + return (String) params.get("RS_E_CASOVERAZITKO__HASH"); + } + + public java.util.Date rsECasoverazitkoDatumplatnostiod() { + return (java.util.Date) params.get("RS_E_CASOVERAZITKO__DATUMPLATNOSTIOD"); + } + + public java.util.Date rsECasoverazitkoDatumplatnostido() { + return (java.util.Date) params.get("RS_E_CASOVERAZITKO__DATUMPLATNOSTIDO"); + } + + public String rsECasoverazitkoCertifikacniautorita() { + return (String) params.get("RS_E_CASOVERAZITKO__CERTIFIKACNIAUTORITA"); + } + + public String rsKIddokumentu() { + return (String) params.get("RS_K_IDDOKUMENTU"); + } + + public String rsKKlasifikace() { + return (String) params.get("RS_K_KLASIFIKACE"); + } + + public String rsKSkartacniznacka() { + return (String) params.get("RS_K_SKARTACNIZNACKA"); + } + + public Long rsKSkartacnilhuta() { + return (Long) params.get("RS_K_SKARTACNILHUTA"); + } + + public String rsKDistribuce() { + return (String) params.get("RS_K_DISTRIBUCE"); + } + + public String rsKPristup() { + return (String) params.get("RS_K_PRISTUP"); + } + + public java.util.Date rsKDatumskartace() { + return (java.util.Date) params.get("RS_K_DATUMSKARTACE"); + } + + public Long rsKArchiveflag() { + return (Long) params.get("RS_K_ARCHIVEFLAG"); + } + + public String rsKItemreference() { + return (String) params.get("RS_K_ITEMREFERENCE"); + } + + public String rsUIddokumentu() { + return (String) params.get("RS_U_IDDOKUMENTU"); + } + + public String rsUKrabice() { + return (String) params.get("RS_U_KRABICE"); + } + + public String rsUDavka() { + return (String) params.get("RS_U_DAVKA"); + } + + public Long rsUPoradivboxu() { + return (Long) params.get("RS_U_PORADIVBOXU"); + } + + public String rsUVypujcil() { + return (String) params.get("RS_U_VYPUJCIL"); + } + + public String rsUUmisteni() { + return (String) params.get("RS_U_UMISTENI"); + } + + public Long rsUArchiveflag() { + return (Long) params.get("RS_U_ARCHIVEFLAG"); + } + + public String rsUItemreference() { + return (String) params.get("RS_U_ITEMREFERENCE"); + } + + public String rsUSlozka() { + return (String) params.get("RS_U_SLOZKA"); + } + + public String rsUAfbox() { + return (String) params.get("RS_U_AFBOX"); + } + + public String rsEPodpis() { + return (String) params.get("RS_E_PODPIS"); + } + + public String rsUCmid() { + return (String) params.get("RS_U_CMID"); + } + + public java.util.Date rsUChangeddate() { + return (java.util.Date) params.get("RS_U_CHANGEDDATE"); + } + + public String rsUChangedbyuser() { + return (String) params.get("RS_U_CHANGEDBYUSER"); + } + + public String rsUCmversion() { + return (String) params.get("RS_U_CMVERSION"); + } + + public java.util.Date rsUCreateddate() { + return (java.util.Date) params.get("RS_U_CREATEDDATE"); + } + + public String rsUSemantictype() { + return (String) params.get("RS_U_SEMANTICTYPE"); + } + + public String rsUItemtype() { + return (String) params.get("RS_U_ITEMTYPE"); + } + + public String rsUCreatedbyuser() { + return (String) params.get("RS_U_CREATEDBYUSER"); + } + + public String rsIdnas() { + return (String) params.get("RS_IDNAS"); + } + + public String rsRok() { + return (String) params.get("RS_ROK"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK3Response.java new file mode 100644 index 0000000..c83a747 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK3Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGK3Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "DatumDo") + java.util.Date datumDo(); + + @Parameter(name = "Index") + String index(); + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "TotalPocet") + Long totalPocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK8.java new file mode 100644 index 0000000..0ccd8da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK8.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGK8 extends MwfRequest { + + @Parameter(name = "Adresat") + MWFGK8 adresat(String adresat); + @Parameter(name = "CIF") + MWFGK8 cif(String cif); + @Parameter(name = "Cache_Flag") + MWFGK8 cacheFlag(Long cacheFlag); + @Parameter(name = "CisloOrientacni") + MWFGK8 cisloOrientacni(String cisloOrientacni); + @Parameter(name = "CisloPopisne") + MWFGK8 cisloPopisne(String cisloPopisne); + @Parameter(name = "Ctvrt") + MWFGK8 ctvrt(String ctvrt); + @Parameter(name = "Data") + MWFGK8 data(java.util.List data); + @Parameter(name = "DistribucniKanal") + MWFGK8 distribucniKanal(String distribucniKanal); + @Parameter(name = "GeminiUserID") + MWFGK8 geminiUserID(String geminiUserID); + @Parameter(name = "ICO") + MWFGK8 ico(String ico); + @Parameter(name = "Mesto") + MWFGK8 mesto(String mesto); + @Parameter(name = "Okres") + MWFGK8 okres(String okres); + @Parameter(name = "PSC") + MWFGK8 psc(String psc); + @Parameter(name = "Posta") + MWFGK8 posta(String posta); + @Parameter(name = "RC") + MWFGK8 rc(String rc); + @Parameter(name = "SSO") + MWFGK8 sso(String sso); + @Parameter(name = "SekundarniUrednik") + MWFGK8 sekundarniUrednik(String sekundarniUrednik); + @Parameter(name = "UID") + MWFGK8 uid(Long uid); + @Parameter(name = "Ulice") + MWFGK8 ulice(String ulice); + @Parameter(name = "Zeme") + MWFGK8 zeme(String zeme); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK8Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK8Data.java new file mode 100644 index 0000000..4a9914e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK8Data.java @@ -0,0 +1,127 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFGK8Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFGK8Data() {} + + public static MWFGK8Data builder() { + return new MWFGK8Data(); + } + + public MWFGK8Data rsRcdrzitelekarty(String rsRcdrzitelekarty) { + params.put("RS_RCDRZITELEKARTY", rsRcdrzitelekarty); + return this; + } + + public MWFGK8Data rsAdresaucel(String rsAdresaucel) { + params.put("RS_ADRESAUCEL", rsAdresaucel); + return this; + } + + public MWFGK8Data rsCisloorientacni(String rsCisloorientacni) { + params.put("RS_CISLOORIENTACNI", rsCisloorientacni); + return this; + } + + public MWFGK8Data rsCislopopisne(String rsCislopopisne) { + params.put("RS_CISLOPOPISNE", rsCislopopisne); + return this; + } + + public MWFGK8Data rsCisloproduktu(String rsCisloproduktu) { + params.put("RS_CISLOPRODUKTU", rsCisloproduktu); + return this; + } + + public MWFGK8Data rsMesto(String rsMesto) { + params.put("RS_MESTO", rsMesto); + return this; + } + + public MWFGK8Data rsPsc(String rsPsc) { + params.put("RS_PSC", rsPsc); + return this; + } + + public MWFGK8Data rsProdukttype(String rsProdukttype) { + params.put("RS_PRODUKTTYPE", rsProdukttype); + return this; + } + + public MWFGK8Data rsSystemid(String rsSystemid) { + params.put("RS_SYSTEMID", rsSystemid); + return this; + } + + public MWFGK8Data rsUlice(String rsUlice) { + params.put("RS_ULICE", rsUlice); + return this; + } + + public MWFGK8Data rsZeme(String rsZeme) { + params.put("RS_ZEME", rsZeme); + return this; + } + + public MWFGK8Data rsProdukttyperetezec(String rsProdukttyperetezec) { + params.put("RS_PRODUKTTYPERETEZEC", rsProdukttyperetezec); + return this; + } + + public MWFGK8Data rsPosta(String rsPosta) { + params.put("RS_POSTA", rsPosta); + return this; + } + + public MWFGK8Data rsCtvrt(String rsCtvrt) { + params.put("RS_CTVRT", rsCtvrt); + return this; + } + + public MWFGK8Data rsOkres(String rsOkres) { + params.put("RS_OKRES", rsOkres); + return this; + } + + public MWFGK8Data rsAdresat(String rsAdresat) { + params.put("RS_ADRESAT", rsAdresat); + return this; + } + + public MWFGK8Data rsCisloproduktumaster(String rsCisloproduktumaster) { + params.put("RS_CISLOPRODUKTUMASTER", rsCisloproduktumaster); + return this; + } + + public MWFGK8Data rsCisloproduktumask(String rsCisloproduktumask) { + params.put("RS_CISLOPRODUKTUMASK", rsCisloproduktumask); + return this; + } + + public MWFGK8Data rsIdentifikator(Long rsIdentifikator) { + params.put("RS_IDENTIFIKATOR", rsIdentifikator); + return this; + } + + public MWFGK8Data rsLzezmenit(String rsLzezmenit) { + params.put("RS_LZEZMENIT", rsLzezmenit); + return this; + } + + public MWFGK8Data rsNovaadresa(String rsNovaadresa) { + params.put("RS_NOVAADRESA", rsNovaadresa); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK8Response.java new file mode 100644 index 0000000..76cc664 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK8Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGK8Response { + + @Parameter(name = "Cache_RequestID") + Long cacheRequestID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK9.java new file mode 100644 index 0000000..7068ac9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK9.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGK9 extends MwfRequest { + + @Parameter(name = "CIF") + MWFGK9 cif(String cif); + @Parameter(name = "Cache_Flag") + MWFGK9 cacheFlag(Long cacheFlag); + @Parameter(name = "Data") + MWFGK9 data(java.util.List data); + @Parameter(name = "Email") + MWFGK9 email(String email); + @Parameter(name = "GeminiUserID") + MWFGK9 geminiUserID(String geminiUserID); + @Parameter(name = "ICO") + MWFGK9 ico(String ico); + @Parameter(name = "RC") + MWFGK9 rc(String rc); + @Parameter(name = "SSO") + MWFGK9 sso(String sso); + @Parameter(name = "Telefon") + MWFGK9 telefon(String telefon); + @Parameter(name = "TelefonPredvolba") + MWFGK9 telefonPredvolba(String telefonPredvolba); + @Parameter(name = "TelefonTyp") + MWFGK9 telefonTyp(String telefonTyp); + @Parameter(name = "UID") + MWFGK9 uid(Long uid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK9Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK9Data.java new file mode 100644 index 0000000..dcb627f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK9Data.java @@ -0,0 +1,77 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFGK9Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFGK9Data() {} + + public static MWFGK9Data builder() { + return new MWFGK9Data(); + } + + public MWFGK9Data rsEmail(String rsEmail) { + params.put("RS_EMAIL", rsEmail); + return this; + } + + public MWFGK9Data rsTelefon(String rsTelefon) { + params.put("RS_TELEFON", rsTelefon); + return this; + } + + public MWFGK9Data rsTelefonpredvolba(String rsTelefonpredvolba) { + params.put("RS_TELEFONPREDVOLBA", rsTelefonpredvolba); + return this; + } + + public MWFGK9Data rsTelefontyp(String rsTelefontyp) { + params.put("RS_TELEFONTYP", rsTelefontyp); + return this; + } + + public MWFGK9Data rsSystemid(String rsSystemid) { + params.put("RS_SYSTEMID", rsSystemid); + return this; + } + + public MWFGK9Data rsIdentifikator(Long rsIdentifikator) { + params.put("RS_IDENTIFIKATOR", rsIdentifikator); + return this; + } + + public MWFGK9Data rsProdukttyperetezec(String rsProdukttyperetezec) { + params.put("RS_PRODUKTTYPERETEZEC", rsProdukttyperetezec); + return this; + } + + public MWFGK9Data rsIdsdelenimobil(Long rsIdsdelenimobil) { + params.put("RS_IDSDELENIMOBIL", rsIdsdelenimobil); + return this; + } + + public MWFGK9Data rsIdsdeleniemail(Long rsIdsdeleniemail) { + params.put("RS_IDSDELENIEMAIL", rsIdsdeleniemail); + return this; + } + + public MWFGK9Data rsCislouctu(String rsCislouctu) { + params.put("RS_CISLOUCTU", rsCislouctu); + return this; + } + + public MWFGK9Data rsLzezmenit(String rsLzezmenit) { + params.put("RS_LZEZMENIT", rsLzezmenit); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK9Response.java new file mode 100644 index 0000000..9855901 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGK9Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGK9Response { + + @Parameter(name = "Cache_RequestID") + Long cacheRequestID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO1.java new file mode 100644 index 0000000..5997c14 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO1.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGO1 extends MwfRequest { + + @Parameter(name = "CIF") + MWFGO1 cif(String cif); + @Parameter(name = "Produkt") + MWFGO1 produkt(String produkt); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO1Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO1Data.java new file mode 100644 index 0000000..8fe580f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO1Data.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFGO1Data { + + private Map params; + + public MWFGO1Data(Map params) { + this.params = params; + } + + public String rsEmail() { + return (String) params.get("RS_EMAIL"); + } + + public String rsFax() { + return (String) params.get("RS_FAX"); + } + + public String rsMobil() { + return (String) params.get("RS_MOBIL"); + } + + public String rsPobocka() { + return (String) params.get("RS_POBOCKA"); + } + + public String rsProdukt() { + return (String) params.get("RS_PRODUKT"); + } + + public String rsTelefon() { + return (String) params.get("RS_TELEFON"); + } + + public String rsTelefon2() { + return (String) params.get("RS_TELEFON2"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO1Response.java new file mode 100644 index 0000000..75bae28 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO1Response.java @@ -0,0 +1,114 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGO1Response { + + @Parameter(name = "DIC") + String dic(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "DatumNarozeni") + java.util.Date datumNarozeni(); + + @Parameter(name = "Domicil") + String domicil(); + + @Parameter(name = "DruhDruhehoDokladu") + String druhDruhehoDokladu(); + + @Parameter(name = "DruhyDokladCislo") + String druhyDokladCislo(); + + @Parameter(name = "DruhyDokladPlatnost") + java.util.Date druhyDokladPlatnost(); + + @Parameter(name = "EkonomAktivCR") + String ekonomAktivCR(); + + @Parameter(name = "EkonomAktivSR") + String ekonomAktivSR(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "IDDotaznik") + Long iDDotaznik(); + + @Parameter(name = "Jmeno") + String jmeno(); + + @Parameter(name = "KategorieKlienta") + String kategorieKlienta(); + + @Parameter(name = "MistoNarozeni") + String mistoNarozeni(); + + @Parameter(name = "OPCislo") + String oPCislo(); + + @Parameter(name = "OPPlatnost") + java.util.Date oPPlatnost(); + + @Parameter(name = "PSC") + String psc(); + + @Parameter(name = "PasCislo") + String pasCislo(); + + @Parameter(name = "PasPlatnost") + java.util.Date pasPlatnost(); + + @Parameter(name = "PlatceDPH") + String platceDPH(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "ProfilKlienta") + String profilKlienta(); + + @Parameter(name = "RezidentCR") + String rezidentCR(); + + @Parameter(name = "RezidentSR") + String rezidentSR(); + + @Parameter(name = "RodneCislo") + String rodneCislo(); + + @Parameter(name = "Sidlo") + String sidlo(); + + @Parameter(name = "StatniPrislusnost") + String statniPrislusnost(); + + @Parameter(name = "TitulPred") + String titulPred(); + + @Parameter(name = "TitulZa") + String titulZa(); + + @Parameter(name = "TypKlient") + String typKlient(); + + @Parameter(name = "TypOdpoved") + String typOdpoved(); + + @Parameter(name = "Ulice") + String ulice(); + + @Parameter(name = "VerzeDotaznik") + Long verzeDotaznik(); + + @Parameter(name = "Zeme") + String zeme(); + + @Parameter(name = "ZvyhodnenyKlient") + String zvyhodnenyKlient(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO2.java new file mode 100644 index 0000000..64fbbef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO2.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGO2 extends MwfRequest { + + @Parameter(name = "CisloSmlouvy") + MWFGO2 cisloSmlouvy(String cisloSmlouvy); + @Parameter(name = "Produkt") + MWFGO2 produkt(String produkt); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO2Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO2Data.java new file mode 100644 index 0000000..6159422 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO2Data.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFGO2Data { + + private Map params; + + public MWFGO2Data(Map params) { + this.params = params; + } + + public String rsDistribucekv() { + return (String) params.get("RS_DISTRIBUCEKV"); + } + + public String rsKorespondencnijmeno() { + return (String) params.get("RS_KORESPONDENCNIJMENO"); + } + + public String rsKorespondencniprijmeni() { + return (String) params.get("RS_KORESPONDENCNIPRIJMENI"); + } + + public String rsKorespondencnipsc() { + return (String) params.get("RS_KORESPONDENCNIPSC"); + } + + public String rsKorespondencnisidlo() { + return (String) params.get("RS_KORESPONDENCNISIDLO"); + } + + public String rsKorespondnecnititulpred() { + return (String) params.get("RS_KORESPONDNECNITITULPRED"); + } + + public String rsKorespondencnititulza() { + return (String) params.get("RS_KORESPONDENCNITITULZA"); + } + + public String rsKorespondencniulice() { + return (String) params.get("RS_KORESPONDENCNIULICE"); + } + + public String rsKorespondnecnizeme() { + return (String) params.get("RS_KORESPONDNECNIZEME"); + } + + public String rsPobocka() { + return (String) params.get("RS_POBOCKA"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO2Response.java new file mode 100644 index 0000000..dd39355 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGO2Response.java @@ -0,0 +1,87 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGO2Response { + + @Parameter(name = "Atribut") + String atribut(); + + @Parameter(name = "CIF") + String cif(); + + @Parameter(name = "CelkovaHodnotaInvestice") + Double celkovaHodnotaInvestice(); + + @Parameter(name = "CisloSmlouvy") + String cisloSmlouvy(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "DatumDo") + java.util.Date datumDo(); + + @Parameter(name = "DatumOd") + java.util.Date datumOd(); + + @Parameter(name = "DatumVypoved") + java.util.Date datumVypoved(); + + @Parameter(name = "Hodnota") + Double hodnota(); + + @Parameter(name = "ISIN") + String isin(); + + @Parameter(name = "KlientskeVypisyObchodniFrekvence") + String klientskeVypisyObchodniFrekvence(); + + @Parameter(name = "KlientskeVypisyStavoveFrekvence") + String klientskeVypisyStavoveFrekvence(); + + @Parameter(name = "PobockaRestante") + String pobockaRestante(); + + @Parameter(name = "PocetISINu") + Long pocetISINu(); + + @Parameter(name = "PocetNedorucenychVypisu") + Long pocetNedorucenychVypisu(); + + @Parameter(name = "PremiovyVklad") + Boolean premiovyVklad(); + + @Parameter(name = "ProfilKlienta") + String profilKlienta(); + + @Parameter(name = "StavSmlouvy") + String stavSmlouvy(); + + @Parameter(name = "TerminCisloUctu") + String terminCisloUctu(); + + @Parameter(name = "TerminKodBanky") + String terminKodBanky(); + + @Parameter(name = "TerminMena") + String terminMena(); + + @Parameter(name = "TypSmlouvy") + String typSmlouvy(); + + @Parameter(name = "VyporadaniCisloUctu") + String vyporadaniCisloUctu(); + + @Parameter(name = "VyporadaniKodBanky") + String vyporadaniKodBanky(); + + @Parameter(name = "VyporadaniMena") + String vyporadaniMena(); + + @Parameter(name = "Zdroj") + Long zdroj(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGQ1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGQ1.java new file mode 100644 index 0000000..3907ce9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGQ1.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGQ1 extends MwfRequest { + + @Parameter(name = "pREGION_KOD") + MWFGQ1 pREGIONKOD(String pREGIONKOD); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGQ1Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGQ1Data.java new file mode 100644 index 0000000..9b2eb71 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGQ1Data.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFGQ1Data { + + private Map params; + + public MWFGQ1Data(Map params) { + this.params = params; + } + + public String rsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public String rsTelefon() { + return (String) params.get("RS_TELEFON"); + } + + public String rsEmail() { + return (String) params.get("RS_EMAIL"); + } + + public String rsRegion() { + return (String) params.get("RS_REGION"); + } + + public String rsRegionKod() { + return (String) params.get("RS_REGION_KOD"); + } + + public String rsLokalita() { + return (String) params.get("RS_LOKALITA"); + } + + public String rsAktivni() { + return (String) params.get("RS_AKTIVNI"); + } + + public String rsPopisZobrazeni() { + return (String) params.get("RS_POPIS_ZOBRAZENI"); + } + + public String rsFotka() { + return (String) params.get("RS_FOTKA"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGQ1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGQ1Response.java new file mode 100644 index 0000000..c90c47d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGQ1Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGQ1Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR7.java new file mode 100644 index 0000000..2e2ccb2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR7.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGR7 extends MwfRequest { + + @Parameter(name = "CARD_ACCOUNT_NUMBER") + MWFGR7 cardAccountNumber(Long cardAccountNumber); + @Parameter(name = "CARD_NUMBER") + MWFGR7 cardNumber(Long cardNumber); + @Parameter(name = "CHG_3DSEC_PHONE") + MWFGR7 chg3dsecPhone(String chg3dsecPhone); + @Parameter(name = "CHG_ACTIVATE_3DSEC") + MWFGR7 chgActivate3dsec(String chgActivate3dsec); + @Parameter(name = "CHG_REGISTER_CARD") + MWFGR7 chgRegisterCard(String chgRegisterCard); + @Parameter(name = "CHG_UNBLOCK_3DSEC_TRANS") + MWFGR7 chgUnblock3dsecTrans(String chgUnblock3dsecTrans); + @Parameter(name = "DEVICE_ID") + MWFGR7 deviceId(String deviceId); + @Parameter(name = "EXPIRATION") + MWFGR7 expiration(String expiration); + @Parameter(name = "LOGO") + MWFGR7 logo(String logo); + @Parameter(name = "MOBILE_PHONE") + MWFGR7 mobilePhone(String mobilePhone); + @Parameter(name = "OPERATOR") + MWFGR7 operator(String operator); + @Parameter(name = "ORGANIZATION") + MWFGR7 organization(String organization); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR7Response.java new file mode 100644 index 0000000..0296f8a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR7Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGR7Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR8.java new file mode 100644 index 0000000..1e9c213 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR8.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGR8 extends MwfRequest { + + @Parameter(name = "CARD_NUMBER") + MWFGR8 cardNumber(Long cardNumber); + @Parameter(name = "OPERATOR") + MWFGR8 operator(String operator); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR8Response.java new file mode 100644 index 0000000..b811b88 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGR8Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGR8Response { + + @Parameter(name = "DEVICE_ID") + String deviceId(); + + @Parameter(name = "MOBILE_PHONE") + String mobilePhone(); + + @Parameter(name = "STAT_3DSEC_ACTIVE") + String stat3dsecActive(); + + @Parameter(name = "STAT_3DSEC_TRANS_UNBLOCKED") + String stat3dsecTransUnblocked(); + + @Parameter(name = "STAT_CARD_REGISTERED") + String statCardRegistered(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGU5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGU5.java new file mode 100644 index 0000000..8edc56b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGU5.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFGU5 extends MwfRequest { + + @Parameter(name = "CIF") + MWFGU5 cif(String cif); + @Parameter(name = "CisloUctu") + MWFGU5 cisloUctu(String cisloUctu); + @Parameter(name = "DatumDo") + MWFGU5 datumDo(java.util.Date datumDo); + @Parameter(name = "DatumOd") + MWFGU5 datumOd(java.util.Date datumOd); + @Parameter(name = "IdProduktu") + MWFGU5 idProduktu(String idProduktu); + @Parameter(name = "MaxDoc") + MWFGU5 maxDoc(Long maxDoc); + @Parameter(name = "OdDoc") + MWFGU5 odDoc(Long odDoc); + @Parameter(name = "PouzeNeprecteneDokumenty") + MWFGU5 pouzeNeprecteneDokumenty(String pouzeNeprecteneDokumenty); + @Parameter(name = "RazeniAtribut") + MWFGU5 razeniAtribut(String razeniAtribut); + @Parameter(name = "RazeniSmer") + MWFGU5 razeniSmer(String razeniSmer); + @Parameter(name = "SkupinaProduktu") + MWFGU5 skupinaProduktu(String skupinaProduktu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGU5Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGU5Data.java new file mode 100644 index 0000000..9859326 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGU5Data.java @@ -0,0 +1,157 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFGU5Data { + + private Map params; + + public MWFGU5Data(Map params) { + this.params = params; + } + + public String rsCmId() { + return (String) params.get("RS_CM_ID"); + } + + public String rsItemtype() { + return (String) params.get("RS_ITEMTYPE"); + } + + public String rsSemanticType() { + return (String) params.get("RS_SEMANTIC_TYPE"); + } + + public String rsCrtUsr() { + return (String) params.get("RS_CRT_USR"); + } + + public java.util.Date rsCrtTime() { + return (java.util.Date) params.get("RS_CRT_TIME"); + } + + public String rsChgUsr() { + return (String) params.get("RS_CHG_USR"); + } + + public java.util.Date rsChgTime() { + return (java.util.Date) params.get("RS_CHG_TIME"); + } + + public String rsChckoutUsr() { + return (String) params.get("RS_CHCKOUT_USR"); + } + + public java.util.Date rsChckoutTime() { + return (java.util.Date) params.get("RS_CHCKOUT_TIME"); + } + + public String rsIddokumentu() { + return (String) params.get("RS_IDDOKUMENTU"); + } + + public Long rsIdklienta() { + return (Long) params.get("RS_IDKLIENTA"); + } + + public String rsKlasifikace() { + return (String) params.get("RS_KLASIFIKACE"); + } + + public String rsSkartacniznacka() { + return (String) params.get("RS_SKARTACNIZNACKA"); + } + + public Long rsSkartacnilhuta() { + return (Long) params.get("RS_SKARTACNILHUTA"); + } + + public String rsDistribuce() { + return (String) params.get("RS_DISTRIBUCE"); + } + + public String rsPristup() { + return (String) params.get("RS_PRISTUP"); + } + + public java.util.Date rsDatumskartace() { + return (java.util.Date) params.get("RS_DATUMSKARTACE"); + } + + public String rsItemreference() { + return (String) params.get("RS_ITEMREFERENCE"); + } + + public String rsNazevdokumentu() { + return (String) params.get("RS_NAZEVDOKUMENTU"); + } + + public Long rsTypdokumentu() { + return (Long) params.get("RS_TYPDOKUMENTU"); + } + + public String rsIdproduktu() { + return (String) params.get("RS_IDPRODUKTU"); + } + + public String rsNazevproduktu() { + return (String) params.get("RS_NAZEVPRODUKTU"); + } + + public String rsIdzadosti() { + return (String) params.get("RS_IDZADOSTI"); + } + + public String rsSkupinaproduktu() { + return (String) params.get("RS_SKUPINAPRODUKTU"); + } + + public String rsTridaproduktu() { + return (String) params.get("RS_TRIDAPRODUKTU"); + } + + public String rsSso() { + return (String) params.get("RS_SSO"); + } + + public String rsStav() { + return (String) params.get("RS_STAV"); + } + + public String rsNazevdokumentuib() { + return (String) params.get("RS_NAZEVDOKUMENTUIB"); + } + + public String rsCmVersion() { + return (String) params.get("RS_CM_VERSION"); + } + + public String rsBinPartId() { + return (String) params.get("RS_BIN_PART_ID"); + } + + public String rsBinPartVersion() { + return (String) params.get("RS_BIN_PART_VERSION"); + } + + public String rsIdtransakce() { + return (String) params.get("RS_IDTRANSAKCE"); + } + + public Long rsPrectenydokument() { + return (Long) params.get("RS_PRECTENYDOKUMENT"); + } + + public java.util.Date rsDatumprecteni() { + return (java.util.Date) params.get("RS_DATUMPRECTENI"); + } + + public String rsPrectenosystemem() { + return (String) params.get("RS_PRECTENOSYSTEMEM"); + } + + public String rsPrecetluzivatel() { + return (String) params.get("RS_PRECETLUZIVATEL"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGU5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGU5Response.java new file mode 100644 index 0000000..3bb59fe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFGU5Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFGU5Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "TotalPocet") + Long totalPocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH02.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH02.java new file mode 100644 index 0000000..575f9d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH02.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFH02 extends MwfRequest { + + @Parameter(name = "CisloBU") + MWFH02 cisloBU(String cisloBU); + @Parameter(name = "CisloKarty") + MWFH02 cisloKarty(Long cisloKarty); + @Parameter(name = "Internet") + MWFH02 internet(String internet); + @Parameter(name = "KodBanky") + MWFH02 kodBanky(String kodBanky); + @Parameter(name = "Kontext") + MWFH02 kontext(Long kontext); + @Parameter(name = "LimitBankomat") + MWFH02 limitBankomat(Double limitBankomat); + @Parameter(name = "LimitMOTOInternet") + MWFH02 limitMOTOInternet(Double limitMOTOInternet); + @Parameter(name = "LimitObchodnik") + MWFH02 limitObchodnik(Double limitObchodnik); + @Parameter(name = "MaxPocetTransakciDen") + MWFH02 maxPocetTransakciDen(Long maxPocetTransakciDen); + @Parameter(name = "MaxPocetTransakciDenATM") + MWFH02 maxPocetTransakciDenATM(Long maxPocetTransakciDenATM); + @Parameter(name = "MaxPocetTransakciDenIMT") + MWFH02 maxPocetTransakciDenIMT(Long maxPocetTransakciDenIMT); + @Parameter(name = "UverovyRamecNovy") + MWFH02 uverovyRamecNovy(Double uverovyRamecNovy); + @Parameter(name = "VyberMimoEU") + MWFH02 vyberMimoEU(String vyberMimoEU); + @Parameter(name = "ZpusobUhrady") + MWFH02 zpusobUhrady(String zpusobUhrady); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH02Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH02Response.java new file mode 100644 index 0000000..f61be5f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH02Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFH02Response { + + @Parameter(name = "LimitySnizeny") + String limitySnizeny(); + + @Parameter(name = "OnlineFlag") + String onlineFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH06.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH06.java new file mode 100644 index 0000000..3ef96a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH06.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFH06 extends MwfRequest { + + @Parameter(name = "IDTransakce") + MWFH06 iDTransakce(Long iDTransakce); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH06Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH06Response.java new file mode 100644 index 0000000..d74be85 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH06Response.java @@ -0,0 +1,111 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFH06Response { + + @Parameter(name = "BankaPrijemceJmenoBanky") + String bankaPrijemceJmenoBanky(); + + @Parameter(name = "BankaPrijemceMesto") + String bankaPrijemceMesto(); + + @Parameter(name = "BankaPrijemceStat") + String bankaPrijemceStat(); + + @Parameter(name = "BankaPrijemceUlice") + String bankaPrijemceUlice(); + + @Parameter(name = "CasPorizeni") + java.util.Date casPorizeni(); + + @Parameter(name = "CastkaPlatby") + Double castkaPlatby(); + + @Parameter(name = "CastkaVMeneUctu") + Double castkaVMeneUctu(); + + @Parameter(name = "CisloUctu") + String cisloUctu(); + + @Parameter(name = "DatumPorizeni") + java.util.Date datumPorizeni(); + + @Parameter(name = "DatumUcinnosti") + java.util.Date datumUcinnosti(); + + @Parameter(name = "IDBanky") + String iDBanky(); + + @Parameter(name = "InfoProPrijemce1") + String infoProPrijemce1(); + + @Parameter(name = "InfoProPrijemce2") + String infoProPrijemce2(); + + @Parameter(name = "InfoProPrijemce3") + String infoProPrijemce3(); + + @Parameter(name = "InfoProPrijemce4") + String infoProPrijemce4(); + + @Parameter(name = "KodPartnera") + String kodPartnera(); + + @Parameter(name = "KodZeme") + String kodZeme(); + + @Parameter(name = "Konfirmace1") + String konfirmace1(); + + @Parameter(name = "Konfirmace2") + String konfirmace2(); + + @Parameter(name = "MenaPlatby") + String menaPlatby(); + + @Parameter(name = "MenaUctu") + String menaUctu(); + + @Parameter(name = "OM") + String om(); + + @Parameter(name = "PlatebniTitulKod") + String platebniTitulKod(); + + @Parameter(name = "PrijemceCisloUctu") + String prijemceCisloUctu(); + + @Parameter(name = "PrijemceJmeno") + String prijemceJmeno(); + + @Parameter(name = "PrijemceStat") + String prijemceStat(); + + @Parameter(name = "PrijemceUliceMesto") + String prijemceUliceMesto(); + + @Parameter(name = "PriznakKurzu") + String priznakKurzu(); + + @Parameter(name = "ProfilLikvidatora") + String profilLikvidatora(); + + @Parameter(name = "Residence") + String residence(); + + @Parameter(name = "SmennyKurs") + Double smennyKurs(); + + @Parameter(name = "StavTransakce") + String stavTransakce(); + + @Parameter(name = "VylohyZpusobUhrady") + String vylohyZpusobUhrady(); + + @Parameter(name = "ZkraceneJmeno") + String zkraceneJmeno(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH09.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH09.java new file mode 100644 index 0000000..424dd75 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH09.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFH09 extends MwfRequest { + + @Parameter(name = "BezOhleduNaOM") + MWFH09 bezOhleduNaOM(String bezOhleduNaOM); + @Parameter(name = "CastkaPlatby") + MWFH09 castkaPlatby(Double castkaPlatby); + @Parameter(name = "CisloUctu") + MWFH09 cisloUctu(String cisloUctu); + @Parameter(name = "IDTransakce") + MWFH09 iDTransakce(Long iDTransakce); + @Parameter(name = "IDTransakceIB") + MWFH09 iDTransakceIB(Long iDTransakceIB); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH09Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH09Response.java new file mode 100644 index 0000000..dcb6db9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH09Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFH09Response { + + @Parameter(name = "TransakceZrusena") + String transakceZrusena(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH32.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH32.java new file mode 100644 index 0000000..b8158f7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH32.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFH32 extends MwfRequest { + + @Parameter(name = "Archiv") + MWFH32 archiv(String archiv); + @Parameter(name = "Autorizace") + MWFH32 autorizace(String autorizace); + @Parameter(name = "BezOhleduNaOM") + MWFH32 bezOhleduNaOM(String bezOhleduNaOM); + @Parameter(name = "CastkaPlatby") + MWFH32 castkaPlatby(Double castkaPlatby); + @Parameter(name = "CisloUctu") + MWFH32 cisloUctu(Long cisloUctu); + @Parameter(name = "CisloUctuPrijemce") + MWFH32 cisloUctuPrijemce(String cisloUctuPrijemce); + @Parameter(name = "DatumPorizeni") + MWFH32 datumPorizeni(java.util.Date datumPorizeni); + @Parameter(name = "IDTransakce") + MWFH32 iDTransakce(Long iDTransakce); + @Parameter(name = "MenaPlatby") + MWFH32 menaPlatby(String menaPlatby); + @Parameter(name = "ProfilLikvidatora") + MWFH32 profilLikvidatora(String profilLikvidatora); + @Parameter(name = "StavTransakce") + MWFH32 stavTransakce(String stavTransakce); + @Parameter(name = "StavTransakce2") + MWFH32 stavTransakce2(Long stavTransakce2); + @Parameter(name = "ValutaDo") + MWFH32 valutaDo(java.util.Date valutaDo); + @Parameter(name = "ValutaOd") + MWFH32 valutaOd(java.util.Date valutaOd); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH32Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH32Data.java new file mode 100644 index 0000000..32c52c1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH32Data.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFH32Data { + + private Map params; + + public MWFH32Data(Map params) { + this.params = params; + } + + public Long rsOuagbr() { + return (Long) params.get("RS_OUAGBR"); + } + + public java.util.Date rsOuinpd() { + return (java.util.Date) params.get("RS_OUINPD"); + } + + public java.util.Date rsOuvald() { + return (java.util.Date) params.get("RS_OUVALD"); + } + + public String rsOucurr() { + return (String) params.get("RS_OUCURR"); + } + + public Double rsOuamt() { + return (Double) params.get("RS_OUAMT"); + } + + public Long rsOuaccn() { + return (Long) params.get("RS_OUACCN"); + } + + public String rsOubnfc() { + return (String) params.get("RS_OUBNFC"); + } + + public String rsOuuser() { + return (String) params.get("RS_OUUSER"); + } + + public String rsOustst() { + return (String) params.get("RS_OUSTST"); + } + + public Long rsOuibid() { + return (Long) params.get("RS_OUIBID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH32Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH32Response.java new file mode 100644 index 0000000..a5a5277 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH32Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFH32Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH33.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH33.java new file mode 100644 index 0000000..4dba110 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH33.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFH33 extends MwfRequest { + + @Parameter(name = "BIC") + MWFH33 bic(String bic); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH33Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH33Data.java new file mode 100644 index 0000000..dd9c66f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH33Data.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFH33Data { + + private Map params; + + public MWFH33Data(Map params) { + this.params = params; + } + + public String rsBic() { + return (String) params.get("RS_BIC"); + } + + public String rsName() { + return (String) params.get("RS_NAME"); + } + + public String rsCountry() { + return (String) params.get("RS_COUNTRY"); + } + + public String rsCountrycode() { + return (String) params.get("RS_COUNTRYCODE"); + } + + public Boolean rsSeparouteflag() { + return (Boolean) params.get("RS_SEPAROUTEFLAG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH33Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH33Response.java new file mode 100644 index 0000000..be24ed5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH33Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFH33Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH37.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH37.java new file mode 100644 index 0000000..bd62a48 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH37.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFH37 extends MwfRequest { + + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH37Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH37Data.java new file mode 100644 index 0000000..c148da3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH37Data.java @@ -0,0 +1,81 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFH37Data { + + private Map params; + + public MWFH37Data(Map params) { + this.params = params; + } + + public Long rsOucurcode() { + return (Long) params.get("RS_OUCURCODE"); + } + + public String rsOucursymb() { + return (String) params.get("RS_OUCURSYMB"); + } + + public String rsOucurdesc() { + return (String) params.get("RS_OUCURDESC"); + } + + public String rsOucountry() { + return (String) params.get("RS_OUCOUNTRY"); + } + + public Long rsOudecpos() { + return (Long) params.get("RS_OUDECPOS"); + } + + public String rsOumultdiv() { + return (String) params.get("RS_OUMULTDIV"); + } + + public Double rsOubrate() { + return (Double) params.get("RS_OUBRATE"); + } + + public Double rsOuvrian() { + return (Double) params.get("RS_OUVRIAN"); + } + + public Double rsOutrans() { + return (Double) params.get("RS_OUTRANS"); + } + + public Double rsOutranb() { + return (Double) params.get("RS_OUTRANB"); + } + + public Double rsOunotes() { + return (Double) params.get("RS_OUNOTES"); + } + + public Double rsOunoteb() { + return (Double) params.get("RS_OUNOTEB"); + } + + public Double rsOuchkss() { + return (Double) params.get("RS_OUCHKSS"); + } + + public Double rsOuchksb() { + return (Double) params.get("RS_OUCHKSB"); + } + + public java.util.Date rsOuefdate() { + return (java.util.Date) params.get("RS_OUEFDATE"); + } + + public Double rsOuvips() { + return (Double) params.get("RS_OUVIPS"); + } + + public Double rsOuvipb() { + return (Double) params.get("RS_OUVIPB"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH37Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH37Response.java new file mode 100644 index 0000000..11be3dc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFH37Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFH37Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE2.java new file mode 100644 index 0000000..44da9e0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE2.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFHE2 extends MwfRequest { + + @Parameter(name = "Email") + MWFHE2 email(String email); + @Parameter(name = "Kanal") + MWFHE2 kanal(String kanal); + @Parameter(name = "RodneCislo") + MWFHE2 rodneCislo(String rodneCislo); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE2Response.java new file mode 100644 index 0000000..1d1d5d3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE2Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFHE2Response { + + @Parameter(name = "CaseID") + String caseID(); + + @Parameter(name = "INST_PT_KEY") + Long instPtKey(); + + @Parameter(name = "StavKlienta") + String stavKlienta(); + + @Parameter(name = "StavZadosti") + String stavZadosti(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE6.java new file mode 100644 index 0000000..8651574 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE6.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFHE6 extends MwfRequest { + + @Parameter(name = "CHANNEL") + MWFHE6 channel(String channel); + @Parameter(name = "PRODUCT_CLASS") + MWFHE6 productClass(String productClass); + @Parameter(name = "VALIDITY_DATE") + MWFHE6 validityDate(java.util.Date validityDate); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE6Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE6Data.java new file mode 100644 index 0000000..ae8fc15 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE6Data.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFHE6Data { + + private Map params; + + public MWFHE6Data(Map params) { + this.params = params; + } + + public String rsSalesProductType() { + return (String) params.get("RS_SALES_PRODUCT_TYPE"); + } + + public String rsDiscountType() { + return (String) params.get("RS_DISCOUNT_TYPE"); + } + + public String rsFormId() { + return (String) params.get("RS_FORM_ID"); + } + + public Double rsMinLoanAmount() { + return (Double) params.get("RS_MIN_LOAN_AMOUNT"); + } + + public Double rsMaxLoanAmount() { + return (Double) params.get("RS_MAX_LOAN_AMOUNT"); + } + + public Long rsMinTerm() { + return (Long) params.get("RS_MIN_TERM"); + } + + public Long rsMaxTerm() { + return (Long) params.get("RS_MAX_TERM"); + } + + public String rsProductName() { + return (String) params.get("RS_PRODUCT_NAME"); + } + + public Double rsMinFirstDrawRate() { + return (Double) params.get("RS_MIN_FIRST_DRAW_RATE"); + } + + public Double rsInstRate() { + return (Double) params.get("RS_INST_RATE"); + } + + public Long rsRevisionPeriod() { + return (Long) params.get("RS_REVISION_PERIOD"); + } + + public String rsRiskProdType() { + return (String) params.get("RS_RISK_PROD_TYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE6Response.java new file mode 100644 index 0000000..661a73f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE6Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFHE6Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE7.java new file mode 100644 index 0000000..74b56ca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE7.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFHE7 extends MwfRequest { + + @Parameter(name = "CIF") + MWFHE7 cif(String cif); + @Parameter(name = "Data") + MWFHE7 data(java.util.List data); + @Parameter(name = "ICO") + MWFHE7 ico(String ico); + @Parameter(name = "LOG_FLAG") + MWFHE7 logFlag(String logFlag); + @Parameter(name = "LOG_SSO") + MWFHE7 logSso(String logSso); + @Parameter(name = "RodneCislo") + MWFHE7 rodneCislo(String rodneCislo); + @Parameter(name = "TypOsoby") + MWFHE7 typOsoby(String typOsoby); + @Parameter(name = "UniPtKey") + MWFHE7 uniPtKey(Long uniPtKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE7Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE7Data.java new file mode 100644 index 0000000..e9256b2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE7Data.java @@ -0,0 +1,122 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFHE7Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFHE7Data() {} + + public static MWFHE7Data builder() { + return new MWFHE7Data(); + } + + public MWFHE7Data rsUniPtSegKey(Long rsUniPtSegKey) { + params.put("RS_UNI_PT_SEG_KEY", rsUniPtSegKey); + return this; + } + + public MWFHE7Data rsSrcId(String rsSrcId) { + params.put("RS_SRC_ID", rsSrcId); + return this; + } + + public MWFHE7Data rsSrcSysId(String rsSrcSysId) { + params.put("RS_SRC_SYS_ID", rsSrcSysId); + return this; + } + + public MWFHE7Data rsUniPtKey(Long rsUniPtKey) { + params.put("RS_UNI_PT_KEY", rsUniPtKey); + return this; + } + + public MWFHE7Data rsBusCode(String rsBusCode) { + params.put("RS_BUS_CODE", rsBusCode); + return this; + } + + public MWFHE7Data rsSegmCode(String rsSegmCode) { + params.put("RS_SEGM_CODE", rsSegmCode); + return this; + } + + public MWFHE7Data rsSegCode(String rsSegCode) { + params.put("RS_SEG_CODE", rsSegCode); + return this; + } + + public MWFHE7Data rsSegDt(java.util.Date rsSegDt) { + params.put("RS_SEG_DT", rsSegDt); + return this; + } + + public MWFHE7Data rsNote(String rsNote) { + params.put("RS_NOTE", rsNote); + return this; + } + + public MWFHE7Data rsInsSso(String rsInsSso) { + params.put("RS_INS_SSO", rsInsSso); + return this; + } + + public MWFHE7Data rsInsDt(java.util.Date rsInsDt) { + params.put("RS_INS_DT", rsInsDt); + return this; + } + + public MWFHE7Data rsUpdSso(String rsUpdSso) { + params.put("RS_UPD_SSO", rsUpdSso); + return this; + } + + public MWFHE7Data rsUpdDt(java.util.Date rsUpdDt) { + params.put("RS_UPD_DT", rsUpdDt); + return this; + } + + public MWFHE7Data rsRsnTpCode(String rsRsnTpCode) { + params.put("RS_RSN_TP_CODE", rsRsnTpCode); + return this; + } + + public MWFHE7Data rsExpireDate(java.util.Date rsExpireDate) { + params.put("RS_EXPIRE_DATE", rsExpireDate); + return this; + } + + public MWFHE7Data rsSrcEntity(String rsSrcEntity) { + params.put("RS_SRC_ENTITY", rsSrcEntity); + return this; + } + + public MWFHE7Data rsDelFlag(String rsDelFlag) { + params.put("RS_DEL_FLAG", rsDelFlag); + return this; + } + + public MWFHE7Data rsSrcRole(String rsSrcRole) { + params.put("RS_SRC_ROLE", rsSrcRole); + return this; + } + + public MWFHE7Data rsSrcRowId(String rsSrcRowId) { + params.put("RS_SRC_ROW_ID", rsSrcRowId); + return this; + } + + public MWFHE7Data rsDescr(String rsDescr) { + params.put("RS_DESCR", rsDescr); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE7Response.java new file mode 100644 index 0000000..8d93475 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHE7Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFHE7Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHG3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHG3.java new file mode 100644 index 0000000..2519141 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHG3.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFHG3 extends MwfRequest { + + @Parameter(name = "ACTIVE") + MWFHG3 active(Long active); + @Parameter(name = "ID_CATEGORY") + MWFHG3 idCategory(String idCategory); + @Parameter(name = "ID_SUBCATEGORY") + MWFHG3 idSubcategory(String idSubcategory); + @Parameter(name = "ID_TASK_TYPE") + MWFHG3 idTaskType(String idTaskType); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHG3Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHG3Data.java new file mode 100644 index 0000000..18db800 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHG3Data.java @@ -0,0 +1,73 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFHG3Data { + + private Map params; + + public MWFHG3Data(Map params) { + this.params = params; + } + + public String rsId() { + return (String) params.get("RS_ID"); + } + + public String rsName() { + return (String) params.get("RS_NAME"); + } + + public String rsType() { + return (String) params.get("RS_TYPE"); + } + + public Long rsNotifyEmail() { + return (Long) params.get("RS_NOTIFY_EMAIL"); + } + + public String rsNotificationEmail() { + return (String) params.get("RS_NOTIFICATION_EMAIL"); + } + + public Long rsActive() { + return (Long) params.get("RS_ACTIVE"); + } + + public Long rsNotifyAssignment() { + return (Long) params.get("RS_NOTIFY_ASSIGNMENT"); + } + + public Long rsNotifyAttachments() { + return (Long) params.get("RS_NOTIFY_ATTACHMENTS"); + } + + public Long rsNotifySolution() { + return (Long) params.get("RS_NOTIFY_SOLUTION"); + } + + public String rsHelp() { + return (String) params.get("RS_HELP"); + } + + public Long rsEscalation() { + return (Long) params.get("RS_ESCALATION"); + } + + public String rsEscalationEmail() { + return (String) params.get("RS_ESCALATION_EMAIL"); + } + + public String rsInvisibleSystems() { + return (String) params.get("RS_INVISIBLE_SYSTEMS"); + } + + public String rsObjectIdType() { + return (String) params.get("RS_OBJECT_ID_TYPE"); + } + + public String rsClientIdType() { + return (String) params.get("RS_CLIENT_ID_TYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHG3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHG3Response.java new file mode 100644 index 0000000..bde525c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHG3Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFHG3Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHH1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHH1.java new file mode 100644 index 0000000..2f5bcac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHH1.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFHH1 extends MwfRequest { + + @Parameter(name = "CastkaTransakceDo") + MWFHH1 castkaTransakceDo(Double castkaTransakceDo); + @Parameter(name = "CastkaTransakceOd") + MWFHH1 castkaTransakceOd(Double castkaTransakceOd); + @Parameter(name = "ChybovyStatusTransakce") + MWFHH1 chybovyStatusTransakce(String chybovyStatusTransakce); + @Parameter(name = "CisloUctu") + MWFHH1 cisloUctu(String cisloUctu); + @Parameter(name = "CisloUctuPredcisli") + MWFHH1 cisloUctuPredcisli(String cisloUctuPredcisli); + @Parameter(name = "DatumSplatnostiDo") + MWFHH1 datumSplatnostiDo(java.util.Date datumSplatnostiDo); + @Parameter(name = "DatumSplatnostiOd") + MWFHH1 datumSplatnostiOd(java.util.Date datumSplatnostiOd); + @Parameter(name = "ExtDuvodOdmitnuti") + MWFHH1 extDuvodOdmitnuti(String extDuvodOdmitnuti); + @Parameter(name = "IDTransakce") + MWFHH1 iDTransakce(String iDTransakce); + @Parameter(name = "INCURSOR") + MWFHH1 incursor(Long incursor); + @Parameter(name = "INROWS") + MWFHH1 inrows(Long inrows); + @Parameter(name = "ProtistranaBanka") + MWFHH1 protistranaBanka(String protistranaBanka); + @Parameter(name = "ProtistranaCisloUctu") + MWFHH1 protistranaCisloUctu(String protistranaCisloUctu); + @Parameter(name = "ProtistranaCisloUctuSpojene") + MWFHH1 protistranaCisloUctuSpojene(String protistranaCisloUctuSpojene); + @Parameter(name = "ProtistranaPredcisli") + MWFHH1 protistranaPredcisli(String protistranaPredcisli); + @Parameter(name = "SpecifickySymbol") + MWFHH1 specifickySymbol(Long specifickySymbol); + @Parameter(name = "TypTransakce") + MWFHH1 typTransakce(String typTransakce); + @Parameter(name = "VariabilniSymbol") + MWFHH1 variabilniSymbol(Long variabilniSymbol); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHH1Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHH1Data.java new file mode 100644 index 0000000..e233ef4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHH1Data.java @@ -0,0 +1,185 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFHH1Data { + + private Map params; + + public MWFHH1Data(Map params) { + this.params = params; + } + + public String rsTyptransakce() { + return (String) params.get("RS_TYPTRANSAKCE"); + } + + public String rsZdrojtransakce() { + return (String) params.get("RS_ZDROJTRANSAKCE"); + } + + public String rsStatusodmitnutetransakce() { + return (String) params.get("RS_STATUSODMITNUTETRANSAKCE"); + } + + public String rsPriznakpseudotransakce() { + return (String) params.get("RS_PRIZNAKPSEUDOTRANSAKCE"); + } + + public java.util.Date rsDatumodmitnutitransakce() { + return (java.util.Date) params.get("RS_DATUMODMITNUTITRANSAKCE"); + } + + public String rsExtduvododmitnuti() { + return (String) params.get("RS_EXTDUVODODMITNUTI"); + } + + public Long rsObchodnimisto() { + return (Long) params.get("RS_OBCHODNIMISTO"); + } + + public String rsClearingovykodtransakce() { + return (String) params.get("RS_CLEARINGOVYKODTRANSAKCE"); + } + + public String rsChybovystatustransakce() { + return (String) params.get("RS_CHYBOVYSTATUSTRANSAKCE"); + } + + public java.util.Date rsDatumsplatnostitransakce() { + return (java.util.Date) params.get("RS_DATUMSPLATNOSTITRANSAKCE"); + } + + public String rsPredcisliuctu() { + return (String) params.get("RS_PREDCISLIUCTU"); + } + + public String rsCislouctu() { + return (String) params.get("RS_CISLOUCTU"); + } + + public String rsPriznakdbcr() { + return (String) params.get("RS_PRIZNAKDBCR"); + } + + public String rsProtistranapredcisli() { + return (String) params.get("RS_PROTISTRANAPREDCISLI"); + } + + public String rsProtistranacislouctu() { + return (String) params.get("RS_PROTISTRANACISLOUCTU"); + } + + public String rsProtistranabanka() { + return (String) params.get("RS_PROTISTRANABANKA"); + } + + public Long rsProtistranaaplikace() { + return (Long) params.get("RS_PROTISTRANAAPLIKACE"); + } + + public String rsProtistrananazevuctu() { + return (String) params.get("RS_PROTISTRANANAZEVUCTU"); + } + + public Double rsCastkatransakce() { + return (Double) params.get("RS_CASTKATRANSAKCE"); + } + + public String rsKodmeny() { + return (String) params.get("RS_KODMENY"); + } + + public String rsUzivatelzadavajici() { + return (String) params.get("RS_UZIVATELZADAVAJICI"); + } + + public String rsUzivatelverifikujici() { + return (String) params.get("RS_UZIVATELVERIFIKUJICI"); + } + + public String rsIdtransakce() { + return (String) params.get("RS_IDTRANSAKCE"); + } + + public String rsKonstatnisymbol() { + return (String) params.get("RS_KONSTATNISYMBOL"); + } + + public String rsVariabilnisymbol() { + return (String) params.get("RS_VARIABILNISYMBOL"); + } + + public String rsSpecifickysymbol() { + return (String) params.get("RS_SPECIFICKYSYMBOL"); + } + + public String rsZpravadb1() { + return (String) params.get("RS_ZPRAVADB1"); + } + + public String rsZpravadb2() { + return (String) params.get("RS_ZPRAVADB2"); + } + + public String rsZpravadb3() { + return (String) params.get("RS_ZPRAVADB3"); + } + + public String rsZpravadb4() { + return (String) params.get("RS_ZPRAVADB4"); + } + + public String rsZpravacr1() { + return (String) params.get("RS_ZPRAVACR1"); + } + + public String rsZpravacr2() { + return (String) params.get("RS_ZPRAVACR2"); + } + + public String rsZpravacr3() { + return (String) params.get("RS_ZPRAVACR3"); + } + + public String rsZpravacr4() { + return (String) params.get("RS_ZPRAVACR4"); + } + + public String rsAvpole1() { + return (String) params.get("RS_AVPOLE1"); + } + + public String rsAvpole2() { + return (String) params.get("RS_AVPOLE2"); + } + + public String rsAvpole3() { + return (String) params.get("RS_AVPOLE3"); + } + + public String rsAvpole4() { + return (String) params.get("RS_AVPOLE4"); + } + + public String rsZpravacrspojena() { + return (String) params.get("RS_ZPRAVACRSPOJENA"); + } + + public String rsAvpolespojene() { + return (String) params.get("RS_AVPOLESPOJENE"); + } + + public String rsZpravadbspojena() { + return (String) params.get("RS_ZPRAVADBSPOJENA"); + } + + public String rsCislouctuispredcislim() { + return (String) params.get("RS_CISLOUCTUISPREDCISLIM"); + } + + public String rsIdentifikatortyptransakce() { + return (String) params.get("RS_IDENTIFIKATORTYPTRANSAKCE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHH1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHH1Response.java new file mode 100644 index 0000000..554acc8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHH1Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFHH1Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Index") + Long index(); + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "PocetOdmitnutychTransakci") + Long pocetOdmitnutychTransakci(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHI9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHI9.java new file mode 100644 index 0000000..9a97b7c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHI9.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFHI9 extends MwfRequest { + + @Parameter(name = "CIF") + MWFHI9 cif(String cif); + @Parameter(name = "CisloUU") + MWFHI9 cisloUU(String cisloUU); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHI9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHI9Response.java new file mode 100644 index 0000000..d5a780d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHI9Response.java @@ -0,0 +1,192 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFHI9Response { + + @Parameter(name = "AACisloOrientacni") + String aACisloOrientacni(); + + @Parameter(name = "AACisloPopisne") + String aACisloPopisne(); + + @Parameter(name = "AAJmeno") + String aAJmeno(); + + @Parameter(name = "AAMesto") + String aAMesto(); + + @Parameter(name = "AAPSC") + String aapsc(); + + @Parameter(name = "AAPrijmeni") + String aAPrijmeni(); + + @Parameter(name = "AAUlice") + String aAUlice(); + + @Parameter(name = "AktualniVyseUrokoveSazby") + Double aktualniVyseUrokoveSazby(); + + @Parameter(name = "CisloInkasnihoUctu") + String cisloInkasnihoUctu(); + + @Parameter(name = "CisloUU") + String cisloUU(); + + @Parameter(name = "DatumDostupnostiInformaci") + java.util.Date datumDostupnostiInformaci(); + + @Parameter(name = "DatumKonceFixace") + java.util.Date datumKonceFixace(); + + @Parameter(name = "DatumPoznamky") + java.util.Date datumPoznamky(); + + @Parameter(name = "DatumPristiSplatky") + java.util.Date datumPristiSplatky(); + + @Parameter(name = "DatumPrvniNazaplaceneSplatky") + java.util.Date datumPrvniNazaplaceneSplatky(); + + @Parameter(name = "DatumUkonceniCerpani") + java.util.Date datumUkonceniCerpani(); + + @Parameter(name = "DatumZahajeniCerpani") + java.util.Date datumZahajeniCerpani(); + + @Parameter(name = "DilciMimoradnaSplatka") + String dilciMimoradnaSplatka(); + + @Parameter(name = "DluznaSplatkaPoSplatnosti") + Double dluznaSplatkaPoSplatnosti(); + + @Parameter(name = "EmailZastupce") + String emailZastupce(); + + @Parameter(name = "FixaceUrokoveSazby") + String fixaceUrokoveSazby(); + + @Parameter(name = "JeGenius") + String jeGenius(); + + @Parameter(name = "Jistina") + Double jistina(); + + @Parameter(name = "KonecnaSplatnostUveru") + java.util.Date konecnaSplatnostUveru(); + + @Parameter(name = "MesicniSplatkaCelkem") + Double mesicniSplatkaCelkem(); + + @Parameter(name = "MobilniTelefon") + String mobilniTelefon(); + + @Parameter(name = "ObjektUveru") + Long objektUveru(); + + @Parameter(name = "PlatnostOffsetuOd") + java.util.Date platnostOffsetuOd(); + + @Parameter(name = "Pojisteni") + String pojisteni(); + + @Parameter(name = "PoplatekCerpani") + Double poplatekCerpani(); + + @Parameter(name = "PoplatekMimoradnaSplatka") + Double poplatekMimoradnaSplatka(); + + @Parameter(name = "PoplatekPotvrzeniUroku") + Double poplatekPotvrzeniUroku(); + + @Parameter(name = "PoplatekVedeniUctu") + Double poplatekVedeniUctu(); + + @Parameter(name = "PriznakOdepsanehoUveru") + String priznakOdepsanehoUveru(); + + @Parameter(name = "ProduktID") + Long produktID(); + + @Parameter(name = "PrumernyZustatek") + Double prumernyZustatek(); + + @Parameter(name = "RegCisloHypoteky") + String regCisloHypoteky(); + + @Parameter(name = "SankcniPoplatky") + Double sankcniPoplatky(); + + @Parameter(name = "SchvalenaVyseUveru") + Double schvalenaVyseUveru(); + + @Parameter(name = "SpecifickyDen") + Long specifickyDen(); + + @Parameter(name = "StavHypoteky") + String stavHypoteky(); + + @Parameter(name = "TACisloOrientacni") + String tACisloOrientacni(); + + @Parameter(name = "TACisloPopisne") + String tACisloPopisne(); + + @Parameter(name = "TAJmeno") + String tAJmeno(); + + @Parameter(name = "TAMesto") + String tAMesto(); + + @Parameter(name = "TAPSC") + String tapsc(); + + @Parameter(name = "TAPrijmeni") + String tAPrijmeni(); + + @Parameter(name = "TAUlice") + String tAUlice(); + + @Parameter(name = "Telefon") + String telefon(); + + @Parameter(name = "TypOffsetu") + String typOffsetu(); + + @Parameter(name = "TypOffsetuNext") + String typOffsetuNext(); + + @Parameter(name = "TypUroceni") + String typUroceni(); + + @Parameter(name = "UsporaCelkova") + Double usporaCelkova(); + + @Parameter(name = "UsporaPredchoziMesic") + Double usporaPredchoziMesic(); + + @Parameter(name = "VycerpanaVyseUveru") + Double vycerpanaVyseUveru(); + + @Parameter(name = "VyseNesplaceneJistiny") + Double vyseNesplaceneJistiny(); + + @Parameter(name = "VysePojisteniSchopnostiSplacet") + Double vysePojisteniSchopnostiSplacet(); + + @Parameter(name = "VyseUroku") + Double vyseUroku(); + + @Parameter(name = "VztahKHypotece") + String vztahKHypotece(); + + @Parameter(name = "ZbyvajiciCastkaKCerpani") + Double zbyvajiciCastkaKCerpani(); + + @Parameter(name = "ZkraceniSplatnosti") + String zkraceniSplatnosti(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHJ2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHJ2.java new file mode 100644 index 0000000..eed17f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHJ2.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFHJ2 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFHJ2 appKey(Long appKey); + @Parameter(name = "FIRST_DRAW_AMT") + MWFHJ2 firstDrawAmt(Double firstDrawAmt); + @Parameter(name = "LOAN_AMOUNT") + MWFHJ2 loanAmount(Double loanAmount); + @Parameter(name = "PRDCT_CAND_KEY") + MWFHJ2 prdctCandKey(Long prdctCandKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHJ2Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHJ2Data.java new file mode 100644 index 0000000..fd95715 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHJ2Data.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFHJ2Data { + + private Map params; + + public MWFHJ2Data(Map params) { + this.params = params; + } + + public Double rsLoanAmount() { + return (Double) params.get("RS_LOAN_AMOUNT"); + } + + public Long rsTerm() { + return (Long) params.get("RS_TERM"); + } + + public Double rsInstalment() { + return (Double) params.get("RS_INSTALMENT"); + } + + public Double rsInterestRate() { + return (Double) params.get("RS_INTEREST_RATE"); + } + + public Double rsRpsn() { + return (Double) params.get("RS_RPSN"); + } + + public Double rsFirstDrawAmt() { + return (Double) params.get("RS_FIRST_DRAW_AMT"); + } + + public Double rsTotalAmount() { + return (Double) params.get("RS_TOTAL_AMOUNT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHJ2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHJ2Response.java new file mode 100644 index 0000000..747c890 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHJ2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFHJ2Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHU7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHU7.java new file mode 100644 index 0000000..181c5d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHU7.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFHU7 extends MwfRequest { + + @Parameter(name = "KreditniObratUcel") + MWFHU7 kreditniObratUcel(String kreditniObratUcel); + @Parameter(name = "PocetSplatek") + MWFHU7 pocetSplatek(Long pocetSplatek); + @Parameter(name = "PojisteniDoKreditnihoObratu") + MWFHU7 pojisteniDoKreditnihoObratu(String pojisteniDoKreditnihoObratu); + @Parameter(name = "TypSplaceni") + MWFHU7 typSplaceni(String typSplaceni); + @Parameter(name = "VyseUveru") + MWFHU7 vyseUveru(Long vyseUveru); + @Parameter(name = "Zadost_KEY") + MWFHU7 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHU7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHU7Response.java new file mode 100644 index 0000000..99ecb6a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHU7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFHU7Response { + + @Parameter(name = "KreditniObrat") + Double kreditniObrat(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHV0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHV0.java new file mode 100644 index 0000000..db869d1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHV0.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFHV0 extends MwfRequest { + + @Parameter(name = "BIRTH_DATE1") + MWFHV0 birthDate1(java.util.Date birthDate1); + @Parameter(name = "BIRTH_DATE2") + MWFHV0 birthDate2(java.util.Date birthDate2); + @Parameter(name = "CHANNEL_ID") + MWFHV0 channelId(String channelId); + @Parameter(name = "EMPLOYMENT_TYPE1") + MWFHV0 employmentType1(String employmentType1); + @Parameter(name = "EMPLOYMENT_TYPE2") + MWFHV0 employmentType2(String employmentType2); + @Parameter(name = "ID_OM") + MWFHV0 idOm(String idOm); + @Parameter(name = "INSTALMENT") + MWFHV0 instalment(Double instalment); + @Parameter(name = "INSURANCE") + MWFHV0 insurance(String insurance); + @Parameter(name = "LOAN_ACCOUNT") + MWFHV0 loanAccount(String loanAccount); + @Parameter(name = "LOAN_AMOUNT") + MWFHV0 loanAmount(Double loanAmount); + @Parameter(name = "PRODUCT_CLASS") + MWFHV0 productClass(String productClass); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHV0Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHV0Data.java new file mode 100644 index 0000000..d2aa175 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHV0Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFHV0Data { + + private Map params; + + public MWFHV0Data(Map params) { + this.params = params; + } + + public String rsInsuranceVariants() { + return (String) params.get("RS_INSURANCE_VARIANTS"); + } + + public Double rsFeeAmount() { + return (Double) params.get("RS_FEE_AMOUNT"); + } + + public String rsFeeTypeId() { + return (String) params.get("RS_FEE_TYPE_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHV0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHV0Response.java new file mode 100644 index 0000000..0d50de3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFHV0Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFHV0Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI35.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI35.java new file mode 100644 index 0000000..1a7007c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI35.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFI35 extends MwfRequest { + + @Parameter(name = "UFO_guid") + MWFI35 uFOGuid(String uFOGuid); + @Parameter(name = "URL") + MWFI35 url(String url); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI35Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI35Response.java new file mode 100644 index 0000000..f7e122f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI35Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFI35Response { + + @Parameter(name = "CM_ID") + String cmId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI79.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI79.java new file mode 100644 index 0000000..7f3255d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI79.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFI79 extends MwfRequest { + + @Parameter(name = "ACCOUNT") + MWFI79 account(Long account); + @Parameter(name = "NOTE") + MWFI79 note(String note); + @Parameter(name = "TYPE") + MWFI79 type(String type); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI79Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI79Response.java new file mode 100644 index 0000000..0828980 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI79Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFI79Response { + + @Parameter(name = "OnlineFlag") + String onlineFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI82.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI82.java new file mode 100644 index 0000000..d9cf7c0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI82.java @@ -0,0 +1,82 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFI82 extends MwfRequest { + + @Parameter(name = "INAMOUNT") + MWFI82 inamount(Double inamount); + @Parameter(name = "INAMOUNT2") + MWFI82 inamount2(Double inamount2); + @Parameter(name = "INAUTH") + MWFI82 inauth(String inauth); + @Parameter(name = "INAUTHCODE") + MWFI82 inauthcode(Long inauthcode); + @Parameter(name = "INAUTHTIME") + MWFI82 inauthtime(Long inauthtime); + @Parameter(name = "INAV1") + MWFI82 inav1(String inav1); + @Parameter(name = "INAV2") + MWFI82 inav2(String inav2); + @Parameter(name = "INAV3") + MWFI82 inav3(String inav3); + @Parameter(name = "INAV4") + MWFI82 inav4(String inav4); + @Parameter(name = "INBANK") + MWFI82 inbank(Long inbank); + @Parameter(name = "INBATCHDT") + MWFI82 inbatchdt(java.util.Date inbatchdt); + @Parameter(name = "INCARDNAME") + MWFI82 incardname(String incardname); + @Parameter(name = "INCARDNUM") + MWFI82 incardnum(Long incardnum); + @Parameter(name = "INCONTRCTN") + MWFI82 incontrctn(Long incontrctn); + @Parameter(name = "INCRMS1") + MWFI82 incrms1(String incrms1); + @Parameter(name = "INCRMS2") + MWFI82 incrms2(String incrms2); + @Parameter(name = "INCRMS3") + MWFI82 incrms3(String incrms3); + @Parameter(name = "INCRMS4") + MWFI82 incrms4(String incrms4); + @Parameter(name = "INDBMS1") + MWFI82 indbms1(String indbms1); + @Parameter(name = "INDBMS2") + MWFI82 indbms2(String indbms2); + @Parameter(name = "INDBMS3") + MWFI82 indbms3(String indbms3); + @Parameter(name = "INDBMS4") + MWFI82 indbms4(String indbms4); + @Parameter(name = "INDESCR") + MWFI82 indescr(String indescr); + @Parameter(name = "INEXPDATE") + MWFI82 inexpdate(Long inexpdate); + @Parameter(name = "INMERCHNBR") + MWFI82 inmerchnbr(Long inmerchnbr); + @Parameter(name = "INPHONENUM") + MWFI82 inphonenum(Long inphonenum); + @Parameter(name = "INPOACCNT") + MWFI82 inpoaccnt(Long inpoaccnt); + @Parameter(name = "INPOBNKCDE") + MWFI82 inpobnkcde(Long inpobnkcde); + @Parameter(name = "INPOCSYM") + MWFI82 inpocsym(Long inpocsym); + @Parameter(name = "INPOSSYM") + MWFI82 inpossym(Long inpossym); + @Parameter(name = "INPOVSYM") + MWFI82 inpovsym(Long inpovsym); + @Parameter(name = "INRECTYPE") + MWFI82 inrectype(String inrectype); + @Parameter(name = "INREFNUM") + MWFI82 inrefnum(String inrefnum); + @Parameter(name = "INREFNUM2") + MWFI82 inrefnum2(String inrefnum2); + @Parameter(name = "INSLIPDATE") + MWFI82 inslipdate(java.util.Date inslipdate); + @Parameter(name = "INTRANCODE") + MWFI82 intrancode(Long intrancode); + @Parameter(name = "INVALIDAUTH") + MWFI82 invalidauth(String invalidauth); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI82Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI82Data.java new file mode 100644 index 0000000..d0bec90 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI82Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFI82Data { + + private Map params; + + public MWFI82Data(Map params) { + this.params = params; + } + + public String rsOudmsg() { + return (String) params.get("RS_OUDMSG"); + } + + public String rsOuwmsg() { + return (String) params.get("RS_OUWMSG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI82Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI82Response.java new file mode 100644 index 0000000..a5e6031 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFI82Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFI82Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIA8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIA8.java new file mode 100644 index 0000000..9e37194 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIA8.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIA8 extends MwfRequest { + + @Parameter(name = "AVPole2") + MWFIA8 aVPole2(String aVPole2); + @Parameter(name = "CACHE") + MWFIA8 cache(Long cache); + @Parameter(name = "CIF") + MWFIA8 cif(String cif); + @Parameter(name = "Castka") + MWFIA8 castka(Double castka); + @Parameter(name = "CisloUctuPrijemce_Externi") + MWFIA8 cisloUctuPrijemceExterni(String cisloUctuPrijemceExterni); + @Parameter(name = "CisloUctuPrijemce_Interni") + MWFIA8 cisloUctuPrijemceInterni(String cisloUctuPrijemceInterni); + @Parameter(name = "CisloUctuPrijemce_Kodbanky") + MWFIA8 cisloUctuPrijemceKodbanky(String cisloUctuPrijemceKodbanky); + @Parameter(name = "CisloUctuUver") + MWFIA8 cisloUctuUver(String cisloUctuUver); + @Parameter(name = "DatumCerpani") + MWFIA8 datumCerpani(java.util.Date datumCerpani); + @Parameter(name = "GEMINIUSERID") + MWFIA8 geminiuserid(String geminiuserid); + @Parameter(name = "Kanal") + MWFIA8 kanal(String kanal); + @Parameter(name = "KonstSymbol") + MWFIA8 konstSymbol(String konstSymbol); + @Parameter(name = "PodepsanoNaSingpadu") + MWFIA8 podepsanoNaSingpadu(String podepsanoNaSingpadu); + @Parameter(name = "RodneCislo") + MWFIA8 rodneCislo(String rodneCislo); + @Parameter(name = "SIGNATURE") + MWFIA8 signature(String signature); + @Parameter(name = "SYSTEMID") + MWFIA8 systemid(String systemid); + @Parameter(name = "SpecifickySymbol") + MWFIA8 specifickySymbol(Long specifickySymbol); + @Parameter(name = "Urednik") + MWFIA8 urednik(String urednik); + @Parameter(name = "VarSymbol") + MWFIA8 varSymbol(Long varSymbol); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIA8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIA8Response.java new file mode 100644 index 0000000..81c33b4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIA8Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIA8Response { + + @Parameter(name = "IDCerpani") + String iDCerpani(); + + @Parameter(name = "REQUEST_ID") + Long requestId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC7.java new file mode 100644 index 0000000..f915e6f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIC7 extends MwfRequest { + + @Parameter(name = "INST_PT_KEY") + MWFIC7 instPtKey(Long instPtKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC7Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC7Data.java new file mode 100644 index 0000000..9f1974d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC7Data.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFIC7Data { + + private Map params; + + public MWFIC7Data(Map params) { + this.params = params; + } + + public Long rsInstAddrKey() { + return (Long) params.get("RS_INST_ADDR_KEY"); + } + + public String rsStreetDescNo() { + return (String) params.get("RS_STREET_DESC_NO"); + } + + public String rsStreetOrientNo() { + return (String) params.get("RS_STREET_ORIENT_NO"); + } + + public String rsCity() { + return (String) params.get("RS_CITY"); + } + + public String rsStreet() { + return (String) params.get("RS_STREET"); + } + + public String rsZipcode() { + return (String) params.get("RS_ZIPCODE"); + } + + public String rsCntry() { + return (String) params.get("RS_CNTRY"); + } + + public String rsPurp() { + return (String) params.get("RS_PURP"); + } + + public String rsPostOffice() { + return (String) params.get("RS_POST_OFFICE"); + } + + public java.util.Date rsAddrSince() { + return (java.util.Date) params.get("RS_ADDR_SINCE"); + } + + public String rsAddressee() { + return (String) params.get("RS_ADDRESSEE"); + } + + public Long rsVerifiedByCourierFlag() { + return (Long) params.get("RS_VERIFIED_BY_COURIER_FLAG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC7Response.java new file mode 100644 index 0000000..7f876f9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC7Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIC7Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC8.java new file mode 100644 index 0000000..90f53c9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC8.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIC8 extends MwfRequest { + + @Parameter(name = "Data") + MWFIC8 data(java.util.List data); + @Parameter(name = "INST_PT_KEY") + MWFIC8 instPtKey(Long instPtKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC8Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC8Data.java new file mode 100644 index 0000000..8022c6a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC8Data.java @@ -0,0 +1,82 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFIC8Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFIC8Data() {} + + public static MWFIC8Data builder() { + return new MWFIC8Data(); + } + + public MWFIC8Data rsInstAddrKey(Long rsInstAddrKey) { + params.put("RS_INST_ADDR_KEY", rsInstAddrKey); + return this; + } + + public MWFIC8Data rsStreetDescNo(String rsStreetDescNo) { + params.put("RS_STREET_DESC_NO", rsStreetDescNo); + return this; + } + + public MWFIC8Data rsStreetOrientNo(String rsStreetOrientNo) { + params.put("RS_STREET_ORIENT_NO", rsStreetOrientNo); + return this; + } + + public MWFIC8Data rsCity(String rsCity) { + params.put("RS_CITY", rsCity); + return this; + } + + public MWFIC8Data rsStreet(String rsStreet) { + params.put("RS_STREET", rsStreet); + return this; + } + + public MWFIC8Data rsZipcode(String rsZipcode) { + params.put("RS_ZIPCODE", rsZipcode); + return this; + } + + public MWFIC8Data rsCntry(String rsCntry) { + params.put("RS_CNTRY", rsCntry); + return this; + } + + public MWFIC8Data rsPurp(String rsPurp) { + params.put("RS_PURP", rsPurp); + return this; + } + + public MWFIC8Data rsPostOffice(String rsPostOffice) { + params.put("RS_POST_OFFICE", rsPostOffice); + return this; + } + + public MWFIC8Data rsAddrSince(java.util.Date rsAddrSince) { + params.put("RS_ADDR_SINCE", rsAddrSince); + return this; + } + + public MWFIC8Data rsAddressee(String rsAddressee) { + params.put("RS_ADDRESSEE", rsAddressee); + return this; + } + + public MWFIC8Data rsVerifiedByCourierFlag(Long rsVerifiedByCourierFlag) { + params.put("RS_VERIFIED_BY_COURIER_FLAG", rsVerifiedByCourierFlag); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC8Response.java new file mode 100644 index 0000000..e17d81f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIC8Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIC8Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID1.java new file mode 100644 index 0000000..d5a2688 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID1.java @@ -0,0 +1,170 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFID1 extends MwfRequest { + + @Parameter(name = "AddressCity") + MWFID1 addressCity(String addressCity); + @Parameter(name = "AddressContCity") + MWFID1 addressContCity(String addressContCity); + @Parameter(name = "AddressContCountry") + MWFID1 addressContCountry(String addressContCountry); + @Parameter(name = "AddressContHouseNumber") + MWFID1 addressContHouseNumber(String addressContHouseNumber); + @Parameter(name = "AddressContLandRegistryNumber") + MWFID1 addressContLandRegistryNumber(String addressContLandRegistryNumber); + @Parameter(name = "AddressContStreet") + MWFID1 addressContStreet(String addressContStreet); + @Parameter(name = "AddressContZipCode") + MWFID1 addressContZipCode(String addressContZipCode); + @Parameter(name = "AddressCont_Flag") + MWFID1 addressContFlag(String addressContFlag); + @Parameter(name = "AddressCont_KEY") + MWFID1 addressContKEY(Long addressContKEY); + @Parameter(name = "AddressCountry") + MWFID1 addressCountry(String addressCountry); + @Parameter(name = "AddressHouseNumber") + MWFID1 addressHouseNumber(String addressHouseNumber); + @Parameter(name = "AddressLandRegistryNumber") + MWFID1 addressLandRegistryNumber(String addressLandRegistryNumber); + @Parameter(name = "AddressSince") + MWFID1 addressSince(java.util.Date addressSince); + @Parameter(name = "AddressStreet") + MWFID1 addressStreet(String addressStreet); + @Parameter(name = "AddressZipCode") + MWFID1 addressZipCode(String addressZipCode); + @Parameter(name = "Address_Flag") + MWFID1 addressFlag(String addressFlag); + @Parameter(name = "Address_KEY") + MWFID1 addressKEY(Long addressKEY); + @Parameter(name = "AdressSrcRole") + MWFID1 adressSrcRole(String adressSrcRole); + @Parameter(name = "BirthCountry") + MWFID1 birthCountry(String birthCountry); + @Parameter(name = "BirthDate") + MWFID1 birthDate(java.util.Date birthDate); + @Parameter(name = "BirthNumber") + MWFID1 birthNumber(String birthNumber); + @Parameter(name = "BirthSurname") + MWFID1 birthSurname(String birthSurname); + @Parameter(name = "CIF") + MWFID1 cif(String cif); + @Parameter(name = "ClientState") + MWFID1 clientState(String clientState); + @Parameter(name = "ClientType") + MWFID1 clientType(String clientType); + @Parameter(name = "CompanyIdentificationNumber") + MWFID1 companyIdentificationNumber(String companyIdentificationNumber); + @Parameter(name = "CompanyName") + MWFID1 companyName(String companyName); + @Parameter(name = "CurrentAddressFrom") + MWFID1 currentAddressFrom(java.util.Date currentAddressFrom); + @Parameter(name = "CustomerID") + MWFID1 customerID(String customerID); + @Parameter(name = "CustomerSRCSystem") + MWFID1 customerSRCSystem(String customerSRCSystem); + @Parameter(name = "Email") + MWFID1 email(String email); + @Parameter(name = "EmailStrRole") + MWFID1 emailStrRole(String emailStrRole); + @Parameter(name = "Email_FLAG") + MWFID1 emailFLAG(String emailFLAG); + @Parameter(name = "Email_KEY") + MWFID1 emailKEY(Long emailKEY); + @Parameter(name = "EmploymentType") + MWFID1 employmentType(String employmentType); + @Parameter(name = "FEID") + MWFID1 feid(String feid); + @Parameter(name = "IDCard2Number") + MWFID1 iDCard2Number(String iDCard2Number); + @Parameter(name = "IDCard2PublishingCountry") + MWFID1 iDCard2PublishingCountry(String iDCard2PublishingCountry); + @Parameter(name = "IDCard2PurpCode") + MWFID1 iDCard2PurpCode(String iDCard2PurpCode); + @Parameter(name = "IDCard2SrcRole") + MWFID1 iDCard2SrcRole(String iDCard2SrcRole); + @Parameter(name = "IDCard2Type") + MWFID1 iDCard2Type(String iDCard2Type); + @Parameter(name = "IDCard2ValidTo") + MWFID1 iDCard2ValidTo(java.util.Date iDCard2ValidTo); + @Parameter(name = "IDCard2_Flag") + MWFID1 iDCard2Flag(String iDCard2Flag); + @Parameter(name = "IDCard2_KEY") + MWFID1 iDCard2KEY(Long iDCard2KEY); + @Parameter(name = "IDCard3Number") + MWFID1 iDCard3Number(String iDCard3Number); + @Parameter(name = "IDCard3PublishingCountry") + MWFID1 iDCard3PublishingCountry(String iDCard3PublishingCountry); + @Parameter(name = "IDCard3PurpCode") + MWFID1 iDCard3PurpCode(String iDCard3PurpCode); + @Parameter(name = "IDCard3SrcRole") + MWFID1 iDCard3SrcRole(String iDCard3SrcRole); + @Parameter(name = "IDCard3Type") + MWFID1 iDCard3Type(String iDCard3Type); + @Parameter(name = "IDCard3ValidTo") + MWFID1 iDCard3ValidTo(java.util.Date iDCard3ValidTo); + @Parameter(name = "IDCard3_Flag") + MWFID1 iDCard3Flag(String iDCard3Flag); + @Parameter(name = "IDCard3_KEY") + MWFID1 iDCard3KEY(Long iDCard3KEY); + @Parameter(name = "IDCardNumber") + MWFID1 iDCardNumber(String iDCardNumber); + @Parameter(name = "IDCardPublishingCountry") + MWFID1 iDCardPublishingCountry(String iDCardPublishingCountry); + @Parameter(name = "IDCardPurpCode") + MWFID1 iDCardPurpCode(String iDCardPurpCode); + @Parameter(name = "IDCardSrcRole") + MWFID1 iDCardSrcRole(String iDCardSrcRole); + @Parameter(name = "IDCardType") + MWFID1 iDCardType(String iDCardType); + @Parameter(name = "IDCardValidTo") + MWFID1 iDCardValidTo(java.util.Date iDCardValidTo); + @Parameter(name = "IDCard_Flag") + MWFID1 iDCardFlag(String iDCardFlag); + @Parameter(name = "IDCard_KEY") + MWFID1 iDCardKEY(Long iDCardKEY); + @Parameter(name = "LegalForm") + MWFID1 legalForm(String legalForm); + @Parameter(name = "MaritialProperty") + MWFID1 maritialProperty(String maritialProperty); + @Parameter(name = "MaritialState") + MWFID1 maritialState(String maritialState); + @Parameter(name = "Name") + MWFID1 name(String name); + @Parameter(name = "Nationality") + MWFID1 nationality(String nationality); + @Parameter(name = "Note") + MWFID1 note(String note); + @Parameter(name = "PROCESSNAME") + MWFID1 processname(String processname); + @Parameter(name = "PlaceOfBirth") + MWFID1 placeOfBirth(String placeOfBirth); + @Parameter(name = "Salutation") + MWFID1 salutation(String salutation); + @Parameter(name = "Sex") + MWFID1 sex(String sex); + @Parameter(name = "Surname") + MWFID1 surname(String surname); + @Parameter(name = "Telefon") + MWFID1 telefon(String telefon); + @Parameter(name = "TelefonStrRole") + MWFID1 telefonStrRole(String telefonStrRole); + @Parameter(name = "Telefon_FLAG") + MWFID1 telefonFLAG(String telefonFLAG); + @Parameter(name = "Telefon_KEY") + MWFID1 telefonKEY(Long telefonKEY); + @Parameter(name = "TitleAfterName") + MWFID1 titleAfterName(String titleAfterName); + @Parameter(name = "TitleBeforeName") + MWFID1 titleBeforeName(String titleBeforeName); + @Parameter(name = "UNI_PT_KEY") + MWFID1 uniPtKey(Long uniPtKey); + @Parameter(name = "USERID") + MWFID1 userid(String userid); + @Parameter(name = "WFID") + MWFID1 wfid(String wfid); + @Parameter(name = "WORKCREATEDBY") + MWFID1 workcreatedby(String workcreatedby); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID1Response.java new file mode 100644 index 0000000..8b1f548 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID1Response.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFID1Response { + + @Parameter(name = "AddressCont_KEY") + Long addressContKEY(); + + @Parameter(name = "Address_KEY") + Long addressKEY(); + + @Parameter(name = "Email_KEY") + Long emailKEY(); + + @Parameter(name = "FEID") + String feid(); + + @Parameter(name = "IDCard2_KEY") + Long iDCard2KEY(); + + @Parameter(name = "IDCard3_KEY") + Long iDCard3KEY(); + + @Parameter(name = "IDCard_KEY") + Long iDCardKEY(); + + @Parameter(name = "INST_PT_KEY") + Long instPtKey(); + + @Parameter(name = "Telefon_KEY") + Long telefonKEY(); + + @Parameter(name = "UNI_PT_KEY") + Long uniPtKey(); + + @Parameter(name = "WFID") + String wfid(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID3.java new file mode 100644 index 0000000..7b61bb6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID3.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFID3 extends MwfRequest { + + @Parameter(name = "BUS_NAME_IN") + MWFID3 busNameIn(String busNameIn); + @Parameter(name = "LIMIT_REC_CNT") + MWFID3 limitRecCnt(Long limitRecCnt); + @Parameter(name = "SEARCH_FOP_FLAG") + MWFID3 searchFopFlag(Long searchFopFlag); + @Parameter(name = "SEARCH_PO_FLAG") + MWFID3 searchPoFlag(Long searchPoFlag); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID3Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID3Data.java new file mode 100644 index 0000000..97f13f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID3Data.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFID3Data { + + private Map params; + + public MWFID3Data(Map params) { + this.params = params; + } + + public String rsBusNameOut() { + return (String) params.get("RS_BUS_NAME_OUT"); + } + + public String rsIcoNum() { + return (String) params.get("RS_ICO_NUM"); + } + + public String rsStreet() { + return (String) params.get("RS_STREET"); + } + + public String rsStreetNum() { + return (String) params.get("RS_STREET_NUM"); + } + + public String rsStreetLandRegNum() { + return (String) params.get("RS_STREET_LAND_REG_NUM"); + } + + public String rsCity() { + return (String) params.get("RS_CITY"); + } + + public String rsZip() { + return (String) params.get("RS_ZIP"); + } + + public String rsCntryCode() { + return (String) params.get("RS_CNTRY_CODE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID3Response.java new file mode 100644 index 0000000..b165da6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID3Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFID3Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID8.java new file mode 100644 index 0000000..4192fc6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID8.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFID8 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFID8 appKey(Long appKey); + @Parameter(name = "CIF") + MWFID8 cif(String cif); + @Parameter(name = "ConsultantId") + MWFID8 consultantId(String consultantId); + @Parameter(name = "Context") + MWFID8 context(String context); + @Parameter(name = "Discount_TP") + MWFID8 discountTP(String discountTP); + @Parameter(name = "INST_PT_KEY") + MWFID8 instPtKey(Long instPtKey); + @Parameter(name = "SPECIAL_CODE_ID") + MWFID8 specialCodeId(String specialCodeId); + @Parameter(name = "UserRole") + MWFID8 userRole(String userRole); + @Parameter(name = "User_SSO") + MWFID8 userSSO(String userSSO); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID8Response.java new file mode 100644 index 0000000..747b7ce --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFID8Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFID8Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE6.java new file mode 100644 index 0000000..d54ec56 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE6.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIE6 extends MwfRequest { + + @Parameter(name = "CARD_CHIP") + MWFIE6 cardChip(Long cardChip); + @Parameter(name = "CARD_LOGO") + MWFIE6 cardLogo(Long cardLogo); + @Parameter(name = "TechnologieKarty") + MWFIE6 technologieKarty(String technologieKarty); + @Parameter(name = "TypKarty") + MWFIE6 typKarty(String typKarty); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE6Response.java new file mode 100644 index 0000000..768b1b9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE6Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIE6Response { + + @Parameter(name = "SMARTPIN_FLAG") + Long smartpinFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE9.java new file mode 100644 index 0000000..ca46a5f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE9.java @@ -0,0 +1,118 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIE9 extends MwfRequest { + + @Parameter(name = "Data") + MWFIE9 data(java.util.List data); + @Parameter(name = "KOMUNIKACE_ID") + MWFIE9 komunikaceId(Long komunikaceId); + @Parameter(name = "KOMUNIKACE_KANAL_ID") + MWFIE9 komunikaceKanalId(String komunikaceKanalId); + @Parameter(name = "KOMUNIKACE_KONEC") + MWFIE9 komunikaceKonec(java.util.Date komunikaceKonec); + @Parameter(name = "KOMUNIKACE_OPERATOR_VYTVORIL") + MWFIE9 komunikaceOperatorVytvoril(String komunikaceOperatorVytvoril); + @Parameter(name = "KOMUNIKACE_PARENT_ID") + MWFIE9 komunikaceParentId(Long komunikaceParentId); + @Parameter(name = "KOMUNIKACE_STAV") + MWFIE9 komunikaceStav(String komunikaceStav); + @Parameter(name = "KOMUNIKACE_SYSTEM_ID") + MWFIE9 komunikaceSystemId(String komunikaceSystemId); + @Parameter(name = "KOMUNIKACE_ZACATEK") + MWFIE9 komunikaceZacatek(java.util.Date komunikaceZacatek); + @Parameter(name = "KOMUNIKACE_ZDROJ_ID") + MWFIE9 komunikaceZdrojId(String komunikaceZdrojId); + @Parameter(name = "POZADAVEK_ID") + MWFIE9 pozadavekId(Long pozadavekId); + @Parameter(name = "POZADAVEK_KANAL_ID") + MWFIE9 pozadavekKanalId(String pozadavekKanalId); + @Parameter(name = "POZADAVEK_KLIENT_ID") + MWFIE9 pozadavekKlientId(String pozadavekKlientId); + @Parameter(name = "POZADAVEK_KLIENT_TYP") + MWFIE9 pozadavekKlientTyp(String pozadavekKlientTyp); + @Parameter(name = "POZADAVEK_OBJEKT_ID") + MWFIE9 pozadavekObjektId(String pozadavekObjektId); + @Parameter(name = "POZADAVEK_OBJEKT_TYP") + MWFIE9 pozadavekObjektTyp(String pozadavekObjektTyp); + @Parameter(name = "POZADAVEK_RESENI_POZNAMKA") + MWFIE9 pozadavekReseniPoznamka(String pozadavekReseniPoznamka); + @Parameter(name = "POZADAVEK_RESENI_TYP") + MWFIE9 pozadavekReseniTyp(String pozadavekReseniTyp); + @Parameter(name = "POZADAVEK_ZADANI_POZNAMKA") + MWFIE9 pozadavekZadaniPoznamka(String pozadavekZadaniPoznamka); + @Parameter(name = "POZADAVEK_ZADANI_TYP") + MWFIE9 pozadavekZadaniTyp(String pozadavekZadaniTyp); + @Parameter(name = "UKOL_ATTRIBUTE1") + MWFIE9 ukolAttribute1(String ukolAttribute1); + @Parameter(name = "UKOL_ATTRIBUTE10") + MWFIE9 ukolAttribute10(String ukolAttribute10); + @Parameter(name = "UKOL_ATTRIBUTE11") + MWFIE9 ukolAttribute11(String ukolAttribute11); + @Parameter(name = "UKOL_ATTRIBUTE12") + MWFIE9 ukolAttribute12(String ukolAttribute12); + @Parameter(name = "UKOL_ATTRIBUTE13") + MWFIE9 ukolAttribute13(String ukolAttribute13); + @Parameter(name = "UKOL_ATTRIBUTE14") + MWFIE9 ukolAttribute14(String ukolAttribute14); + @Parameter(name = "UKOL_ATTRIBUTE15") + MWFIE9 ukolAttribute15(String ukolAttribute15); + @Parameter(name = "UKOL_ATTRIBUTE16") + MWFIE9 ukolAttribute16(String ukolAttribute16); + @Parameter(name = "UKOL_ATTRIBUTE17") + MWFIE9 ukolAttribute17(String ukolAttribute17); + @Parameter(name = "UKOL_ATTRIBUTE18") + MWFIE9 ukolAttribute18(String ukolAttribute18); + @Parameter(name = "UKOL_ATTRIBUTE2") + MWFIE9 ukolAttribute2(String ukolAttribute2); + @Parameter(name = "UKOL_ATTRIBUTE3") + MWFIE9 ukolAttribute3(String ukolAttribute3); + @Parameter(name = "UKOL_ATTRIBUTE4") + MWFIE9 ukolAttribute4(String ukolAttribute4); + @Parameter(name = "UKOL_ATTRIBUTE5") + MWFIE9 ukolAttribute5(String ukolAttribute5); + @Parameter(name = "UKOL_ATTRIBUTE6") + MWFIE9 ukolAttribute6(String ukolAttribute6); + @Parameter(name = "UKOL_ATTRIBUTE7") + MWFIE9 ukolAttribute7(String ukolAttribute7); + @Parameter(name = "UKOL_ATTRIBUTE8") + MWFIE9 ukolAttribute8(String ukolAttribute8); + @Parameter(name = "UKOL_ATTRIBUTE9") + MWFIE9 ukolAttribute9(String ukolAttribute9); + @Parameter(name = "UKOL_ID") + MWFIE9 ukolId(String ukolId); + @Parameter(name = "UKOL_RESOLVERSGROUP") + MWFIE9 ukolResolversgroup(String ukolResolversgroup); + @Parameter(name = "UKOL_SOURCESYSTEM") + MWFIE9 ukolSourcesystem(String ukolSourcesystem); + @Parameter(name = "UKOL_TASKCATEGORY") + MWFIE9 ukolTaskcategory(String ukolTaskcategory); + @Parameter(name = "UKOL_TASKID") + MWFIE9 ukolTaskid(String ukolTaskid); + @Parameter(name = "UKOL_TASKNAME") + MWFIE9 ukolTaskname(String ukolTaskname); + @Parameter(name = "UKOL_TASKSUBCATEGORY") + MWFIE9 ukolTasksubcategory(String ukolTasksubcategory); + @Parameter(name = "ZPRAVA_DATUM_VYTVORENI") + MWFIE9 zpravaDatumVytvoreni(java.util.Date zpravaDatumVytvoreni); + @Parameter(name = "ZPRAVA_ID") + MWFIE9 zpravaId(Long zpravaId); + @Parameter(name = "ZPRAVA_LANGUAGE_ID") + MWFIE9 zpravaLanguageId(String zpravaLanguageId); + @Parameter(name = "ZPRAVA_ODESILATEL") + MWFIE9 zpravaOdesilatel(String zpravaOdesilatel); + @Parameter(name = "ZPRAVA_PARENT_ID") + MWFIE9 zpravaParentId(Long zpravaParentId); + @Parameter(name = "ZPRAVA_PREDMET") + MWFIE9 zpravaPredmet(String zpravaPredmet); + @Parameter(name = "ZPRAVA_PRIJEMCE") + MWFIE9 zpravaPrijemce(String zpravaPrijemce); + @Parameter(name = "ZPRAVA_SMER") + MWFIE9 zpravaSmer(String zpravaSmer); + @Parameter(name = "ZPRAVA_TEMPLATE_ID") + MWFIE9 zpravaTemplateId(String zpravaTemplateId); + @Parameter(name = "ZPRAVA_TEXT") + MWFIE9 zpravaText(String zpravaText); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE9Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE9Data.java new file mode 100644 index 0000000..75097f1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE9Data.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFIE9Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFIE9Data() {} + + public static MWFIE9Data builder() { + return new MWFIE9Data(); + } + + public MWFIE9Data rsCmId(String rsCmId) { + params.put("RS_CM_ID", rsCmId); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE9Response.java new file mode 100644 index 0000000..adc572a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIE9Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIE9Response { + + @Parameter(name = "CM_ID") + String cmId(); + + @Parameter(name = "KOMUNIKACE_ID") + Long komunikaceId(); + + @Parameter(name = "POZADAVEK_ID") + Long pozadavekId(); + + @Parameter(name = "UKOL_ID") + String ukolId(); + + @Parameter(name = "ZPRAVA_ID") + Long zpravaId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF6.java new file mode 100644 index 0000000..2bc8340 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF6.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIF6 extends MwfRequest { + + @Parameter(name = "AccountNumber") + MWFIF6 accountNumber(String accountNumber); + @Parameter(name = "AddressCity") + MWFIF6 addressCity(String addressCity); + @Parameter(name = "AddressCountry") + MWFIF6 addressCountry(String addressCountry); + @Parameter(name = "AddressHouseNumber") + MWFIF6 addressHouseNumber(String addressHouseNumber); + @Parameter(name = "AddressLandRegistryNumber") + MWFIF6 addressLandRegistryNumber(String addressLandRegistryNumber); + @Parameter(name = "AddressPurposeCode") + MWFIF6 addressPurposeCode(String addressPurposeCode); + @Parameter(name = "AddressStreet") + MWFIF6 addressStreet(String addressStreet); + @Parameter(name = "AddressZipCode") + MWFIF6 addressZipCode(String addressZipCode); + @Parameter(name = "BirthDate") + MWFIF6 birthDate(java.util.Date birthDate); + @Parameter(name = "BirthNumber") + MWFIF6 birthNumber(String birthNumber); + @Parameter(name = "BusCode") + MWFIF6 busCode(String busCode); + @Parameter(name = "ClientType") + MWFIF6 clientType(String clientType); + @Parameter(name = "CompanyIdentificationNumber") + MWFIF6 companyIdentificationNumber(String companyIdentificationNumber); + @Parameter(name = "CompanyName") + MWFIF6 companyName(String companyName); + @Parameter(name = "Country") + MWFIF6 country(String country); + @Parameter(name = "CustomerSRCSystem") + MWFIF6 customerSRCSystem(String customerSRCSystem); + @Parameter(name = "DelFlag") + MWFIF6 delFlag(String delFlag); + @Parameter(name = "Name") + MWFIF6 name(String name); + @Parameter(name = "SRCRole") + MWFIF6 sRCRole(String sRCRole); + @Parameter(name = "Surname") + MWFIF6 surname(String surname); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF6Response.java new file mode 100644 index 0000000..ca8fd01 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF6Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIF6Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF7.java new file mode 100644 index 0000000..d87c428 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIF7 extends MwfRequest { + + @Parameter(name = "AccountNumber") + MWFIF7 accountNumber(String accountNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF7Response.java new file mode 100644 index 0000000..79e05f9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIF7Response.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIF7Response { + + @Parameter(name = "AddressCity") + String addressCity(); + + @Parameter(name = "AddressCountry") + String addressCountry(); + + @Parameter(name = "AddressHouseNumber") + String addressHouseNumber(); + + @Parameter(name = "AddressLandRegistryNumber") + String addressLandRegistryNumber(); + + @Parameter(name = "AddressPurposeCode") + String addressPurposeCode(); + + @Parameter(name = "AddressStreet") + String addressStreet(); + + @Parameter(name = "AddressZipCode") + String addressZipCode(); + + @Parameter(name = "BirthDate") + java.util.Date birthDate(); + + @Parameter(name = "BirthNumber") + String birthNumber(); + + @Parameter(name = "ClientType") + String clientType(); + + @Parameter(name = "CompanyIdentificationNumber") + String companyIdentificationNumber(); + + @Parameter(name = "CompanyName") + String companyName(); + + @Parameter(name = "Country") + String country(); + + @Parameter(name = "Name") + String name(); + + @Parameter(name = "Surname") + String surname(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG3.java new file mode 100644 index 0000000..e50ea1a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG3.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIG3 extends MwfRequest { + + @Parameter(name = "CIF") + MWFIG3 cif(String cif); + @Parameter(name = "CastkaDo") + MWFIG3 castkaDo(Double castkaDo); + @Parameter(name = "CastkaOd") + MWFIG3 castkaOd(Double castkaOd); + @Parameter(name = "CisloBU") + MWFIG3 cisloBU(String cisloBU); + @Parameter(name = "DatumDo") + MWFIG3 datumDo(java.util.Date datumDo); + @Parameter(name = "DatumOd") + MWFIG3 datumOd(java.util.Date datumOd); + @Parameter(name = "Dealer") + MWFIG3 dealer(String dealer); + @Parameter(name = "IdSystemuFE") + MWFIG3 idSystemuFE(String idSystemuFE); + @Parameter(name = "IdTransakce") + MWFIG3 idTransakce(String idTransakce); + @Parameter(name = "StrankovaniOd") + MWFIG3 strankovaniOd(Long strankovaniOd); + @Parameter(name = "StrankovaniPocetRadku") + MWFIG3 strankovaniPocetRadku(Long strankovaniPocetRadku); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG3Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG3Data.java new file mode 100644 index 0000000..00606be --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG3Data.java @@ -0,0 +1,85 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFIG3Data { + + private Map params; + + public MWFIG3Data(Map params) { + this.params = params; + } + + public String rsStavtransakce() { + return (String) params.get("RS_STAVTRANSAKCE"); + } + + public String rsDebetcislouctu() { + return (String) params.get("RS_DEBETCISLOUCTU"); + } + + public String rsDebetmenauctu() { + return (String) params.get("RS_DEBETMENAUCTU"); + } + + public Double rsDebetcastkatransakce() { + return (Double) params.get("RS_DEBETCASTKATRANSAKCE"); + } + + public String rsDebetcif() { + return (String) params.get("RS_DEBETCIF"); + } + + public String rsDebetjmeno() { + return (String) params.get("RS_DEBETJMENO"); + } + + public String rsKreditcislouctu() { + return (String) params.get("RS_KREDITCISLOUCTU"); + } + + public String rsKreditjmeno() { + return (String) params.get("RS_KREDITJMENO"); + } + + public String rsKreditmenauctu() { + return (String) params.get("RS_KREDITMENAUCTU"); + } + + public Double rsKreditcastkatransakce() { + return (Double) params.get("RS_KREDITCASTKATRANSAKCE"); + } + + public Double rsCastkatransakce() { + return (Double) params.get("RS_CASTKATRANSAKCE"); + } + + public String rsMenatransakce() { + return (String) params.get("RS_MENATRANSAKCE"); + } + + public Double rsKurztransakce() { + return (Double) params.get("RS_KURZTRANSAKCE"); + } + + public String rsTypkurzu() { + return (String) params.get("RS_TYPKURZU"); + } + + public java.util.Date rsCasuzavreni() { + return (java.util.Date) params.get("RS_CASUZAVRENI"); + } + + public String rsMenovypar() { + return (String) params.get("RS_MENOVYPAR"); + } + + public String rsDealer() { + return (String) params.get("RS_DEALER"); + } + + public String rsIdobchodu() { + return (String) params.get("RS_IDOBCHODU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG3Response.java new file mode 100644 index 0000000..47bdc75 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG3Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIG3Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "PocetZaznamu") + Long pocetZaznamu(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG4.java new file mode 100644 index 0000000..d45a0d9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG4.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIG4 extends MwfRequest { + + @Parameter(name = "BankovniUcetDebet") + MWFIG4 bankovniUcetDebet(String bankovniUcetDebet); + @Parameter(name = "BankovniUcetKredit") + MWFIG4 bankovniUcetKredit(String bankovniUcetKredit); + @Parameter(name = "BlokovatProstredkyNaUctu") + MWFIG4 blokovatProstredkyNaUctu(String blokovatProstredkyNaUctu); + @Parameter(name = "CastkaTransakce") + MWFIG4 castkaTransakce(Double castkaTransakce); + @Parameter(name = "DatumUskutecneniTransakce") + MWFIG4 datumUskutecneniTransakce(java.util.Date datumUskutecneniTransakce); + @Parameter(name = "IDSystemFE") + MWFIG4 iDSystemFE(String iDSystemFE); + @Parameter(name = "IDTransakceGEN") + MWFIG4 iDTransakceGEN(String iDTransakceGEN); + @Parameter(name = "KonstaktniSymbol") + MWFIG4 konstaktniSymbol(String konstaktniSymbol); + @Parameter(name = "Kurz") + MWFIG4 kurz(Double kurz); + @Parameter(name = "MenaDebet") + MWFIG4 menaDebet(String menaDebet); + @Parameter(name = "MenaKredit") + MWFIG4 menaKredit(String menaKredit); + @Parameter(name = "MenaTransakce") + MWFIG4 menaTransakce(String menaTransakce); + @Parameter(name = "SpecifickySymbol") + MWFIG4 specifickySymbol(String specifickySymbol); + @Parameter(name = "SystemovyZnakProGeneratorID") + MWFIG4 systemovyZnakProGeneratorID(String systemovyZnakProGeneratorID); + @Parameter(name = "TypKurzu") + MWFIG4 typKurzu(String typKurzu); + @Parameter(name = "VariabilniSymbol") + MWFIG4 variabilniSymbol(String variabilniSymbol); + @Parameter(name = "VyzadovatAutorizaci") + MWFIG4 vyzadovatAutorizaci(String vyzadovatAutorizaci); + @Parameter(name = "ZpravaAV") + MWFIG4 zpravaAV(String zpravaAV); + @Parameter(name = "ZpravaDebet") + MWFIG4 zpravaDebet(String zpravaDebet); + @Parameter(name = "ZpravaKredit") + MWFIG4 zpravaKredit(String zpravaKredit); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG4Response.java new file mode 100644 index 0000000..bf0f170 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG4Response.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIG4Response { + + @Parameter(name = "CastkaUcetKredit") + Double castkaUcetKredit(); + + @Parameter(name = "CastkaUctuDebet") + Double castkaUctuDebet(); + + @Parameter(name = "DatumZadaniTransakce") + java.util.Date datumZadaniTransakce(); + + @Parameter(name = "DiagnosticMessage") + String diagnosticMessage(); + + @Parameter(name = "ErrCode") + String errCode(); + + @Parameter(name = "IDTransakce") + String iDTransakce(); + + @Parameter(name = "KanalTransakce") + String kanalTransakce(); + + @Parameter(name = "ResCode") + String resCode(); + + @Parameter(name = "WarningMessage") + String warningMessage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG5.java new file mode 100644 index 0000000..51bbae5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG5.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIG5 extends MwfRequest { + + @Parameter(name = "MenaDebet") + MWFIG5 menaDebet(String menaDebet); + @Parameter(name = "MenaKredit") + MWFIG5 menaKredit(String menaKredit); + @Parameter(name = "MenaTransakce") + MWFIG5 menaTransakce(String menaTransakce); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG5Response.java new file mode 100644 index 0000000..6aa26e8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG5Response.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIG5Response { + + @Parameter(name = "DominantniMena") + String dominantniMena(); + + @Parameter(name = "MenaDebetPocetDesetinnych") + Long menaDebetPocetDesetinnych(); + + @Parameter(name = "MenaKreditPocetDesetinnych") + Long menaKreditPocetDesetinnych(); + + @Parameter(name = "MenovaOperace") + Long menovaOperace(); + + @Parameter(name = "MenovaStrana") + Long menovaStrana(); + + @Parameter(name = "MenovyPar") + String menovyPar(); + + @Parameter(name = "NedominantniMena") + String nedominantniMena(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG6.java new file mode 100644 index 0000000..1546812 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG6.java @@ -0,0 +1,52 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIG6 extends MwfRequest { + + @Parameter(name = "BankovniUcetDebet") + MWFIG6 bankovniUcetDebet(String bankovniUcetDebet); + @Parameter(name = "BankovniUcetKredit") + MWFIG6 bankovniUcetKredit(String bankovniUcetKredit); + @Parameter(name = "CastkaTransakce") + MWFIG6 castkaTransakce(Double castkaTransakce); + @Parameter(name = "DatumSPOT") + MWFIG6 datumSPOT(java.util.Date datumSPOT); + @Parameter(name = "DatumUskutecneniTransakce") + MWFIG6 datumUskutecneniTransakce(java.util.Date datumUskutecneniTransakce); + @Parameter(name = "IDKurzZadost") + MWFIG6 iDKurzZadost(String iDKurzZadost); + @Parameter(name = "IDTransakceGEN") + MWFIG6 iDTransakceGEN(String iDTransakceGEN); + @Parameter(name = "KonstaktniSymbol") + MWFIG6 konstaktniSymbol(String konstaktniSymbol); + @Parameter(name = "KurzFixICBS") + MWFIG6 kurzFixICBS(Double kurzFixICBS); + @Parameter(name = "KurzLimitni") + MWFIG6 kurzLimitni(Double kurzLimitni); + @Parameter(name = "MenaDebet") + MWFIG6 menaDebet(String menaDebet); + @Parameter(name = "MenaKredit") + MWFIG6 menaKredit(String menaKredit); + @Parameter(name = "MenaTransakce") + MWFIG6 menaTransakce(String menaTransakce); + @Parameter(name = "MenovaStrana") + MWFIG6 menovaStrana(Long menovaStrana); + @Parameter(name = "MenovyPar") + MWFIG6 menovyPar(String menovyPar); + @Parameter(name = "Segment") + MWFIG6 segment(String segment); + @Parameter(name = "SpecifickySymbol") + MWFIG6 specifickySymbol(String specifickySymbol); + @Parameter(name = "SystemovyZnakProGeneratorID") + MWFIG6 systemovyZnakProGeneratorID(String systemovyZnakProGeneratorID); + @Parameter(name = "VariabilniSymbol") + MWFIG6 variabilniSymbol(String variabilniSymbol); + @Parameter(name = "ZpravaAV") + MWFIG6 zpravaAV(String zpravaAV); + @Parameter(name = "ZpravaDebet") + MWFIG6 zpravaDebet(String zpravaDebet); + @Parameter(name = "ZpravaKredit") + MWFIG6 zpravaKredit(String zpravaKredit); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG6Response.java new file mode 100644 index 0000000..f5e9d10 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG6Response.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIG6Response { + + @Parameter(name = "DiagnosticMessage") + String diagnosticMessage(); + + @Parameter(name = "ErrCode") + String errCode(); + + @Parameter(name = "IDTransakce") + String iDTransakce(); + + @Parameter(name = "KurzZobchodovany") + Double kurzZobchodovany(); + + @Parameter(name = "Status360T") + String status360T(); + + @Parameter(name = "StatusMessage360T") + String statusMessage360T(); + + @Parameter(name = "StavTransakce") + String stavTransakce(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG7.java new file mode 100644 index 0000000..a31e961 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG7.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIG7 extends MwfRequest { + + @Parameter(name = "DatumUskutecneniTransakce") + MWFIG7 datumUskutecneniTransakce(java.util.Date datumUskutecneniTransakce); + @Parameter(name = "MenaDebet") + MWFIG7 menaDebet(String menaDebet); + @Parameter(name = "MenaKredit") + MWFIG7 menaKredit(String menaKredit); + @Parameter(name = "MenovyPar") + MWFIG7 menovyPar(String menovyPar); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG7Response.java new file mode 100644 index 0000000..d5e6419 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIG7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIG7Response { + + @Parameter(name = "DatumSPOT") + java.util.Date datumSPOT(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFII7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFII7.java new file mode 100644 index 0000000..b8900f4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFII7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFII7 extends MwfRequest { + + @Parameter(name = "UdebsUserId") + MWFII7 udebsUserId(String udebsUserId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFII7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFII7Response.java new file mode 100644 index 0000000..ad57f24 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFII7Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFII7Response { + + @Parameter(name = "CelkovaVyseOdmen") + Double celkovaVyseOdmen(); + + @Parameter(name = "DataRelevantniKDatumu") + java.util.Date dataRelevantniKDatumu(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL2.java new file mode 100644 index 0000000..cdde0e2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL2.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIL2 extends MwfRequest { + + @Parameter(name = "IDTransakce") + MWFIL2 iDTransakce(String iDTransakce); + @Parameter(name = "KanalTransakce") + MWFIL2 kanalTransakce(String kanalTransakce); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL2Response.java new file mode 100644 index 0000000..75acbb5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIL2Response { + + @Parameter(name = "StavTransakceICBS") + String stavTransakceICBS(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL3.java new file mode 100644 index 0000000..f116f17 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL3.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIL3 extends MwfRequest { + + @Parameter(name = "CastkaPlatby") + MWFIL3 castkaPlatby(Double castkaPlatby); + @Parameter(name = "CisloUctu") + MWFIL3 cisloUctu(String cisloUctu); + @Parameter(name = "IDTransakceIB") + MWFIL3 iDTransakceIB(Long iDTransakceIB); + @Parameter(name = "IDTransakceICBS") + MWFIL3 iDTransakceICBS(String iDTransakceICBS); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL3Response.java new file mode 100644 index 0000000..4ea5351 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIL3Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIL3Response { + + @Parameter(name = "TransakceZrusena") + String transakceZrusena(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN7.java new file mode 100644 index 0000000..f9afe02 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIN7 extends MwfRequest { + + @Parameter(name = "Data") + MWFIN7 data(java.util.List data); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN7Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN7Data.java new file mode 100644 index 0000000..0ab1ab1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN7Data.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFIN7Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFIN7Data() {} + + public static MWFIN7Data builder() { + return new MWFIN7Data(); + } + + public MWFIN7Data rsCountryCodes(String rsCountryCodes) { + params.put("RS_COUNTRY_CODES", rsCountryCodes); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN7Response.java new file mode 100644 index 0000000..8965015 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN7Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIN7Response { + + @Parameter(name = "CRS_FLAG") + String crsFlag(); + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN9.java new file mode 100644 index 0000000..e698794 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN9.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIN9 extends MwfRequest { + + @Parameter(name = "IBAN") + MWFIN9 iban(String iban); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN9Response.java new file mode 100644 index 0000000..97a948d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIN9Response.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIN9Response { + + @Parameter(name = "Address1") + String address1(); + + @Parameter(name = "Address2") + String address2(); + + @Parameter(name = "Address3") + String address3(); + + @Parameter(name = "Address4") + String address4(); + + @Parameter(name = "BIC") + String bic(); + + @Parameter(name = "City") + String city(); + + @Parameter(name = "Country") + String country(); + + @Parameter(name = "CountryCode") + String countryCode(); + + @Parameter(name = "Name") + String name(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1.java new file mode 100644 index 0000000..b5940eb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIQ1 extends MwfRequest { + + @Parameter(name = "Data_OblastFormalnichKontrol") + MWFIQ1 dataOblastFormalnichKontrol(java.util.List dataOblastFormalnichKontrol); + @Parameter(name = "Kanal") + MWFIQ1 kanal(String kanal); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1DataOblastFormalnichKontrol.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1DataOblastFormalnichKontrol.java new file mode 100644 index 0000000..b937194 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1DataOblastFormalnichKontrol.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFIQ1DataOblastFormalnichKontrol implements MwfData { + + private Map params = new HashMap<>(); + + private MWFIQ1DataOblastFormalnichKontrol() {} + + public static MWFIQ1DataOblastFormalnichKontrol builder() { + return new MWFIQ1DataOblastFormalnichKontrol(); + } + + public MWFIQ1DataOblastFormalnichKontrol rsHodnotapoleformalnikontroly(String rsHodnotapoleformalnikontroly) { + params.put("RS_HODNOTAPOLEFORMALNIKONTROLY", rsHodnotapoleformalnikontroly); + return this; + } + + public MWFIQ1DataOblastFormalnichKontrol rsNazevpoleformalnikontroly(String rsNazevpoleformalnikontroly) { + params.put("RS_NAZEVPOLEFORMALNIKONTROLY", rsNazevpoleformalnikontroly); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1DataSeznamChyb.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1DataSeznamChyb.java new file mode 100644 index 0000000..b4e3e5d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1DataSeznamChyb.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFIQ1DataSeznamChyb { + + private Map params; + + public MWFIQ1DataSeznamChyb(Map params) { + this.params = params; + } + + public String rsPopischyby() { + return (String) params.get("RS_POPISCHYBY"); + } + + public String rsNazevpoleformalnikontroly() { + return (String) params.get("RS_NAZEVPOLEFORMALNIKONTROLY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1Response.java new file mode 100644 index 0000000..2939309 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ1Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIQ1Response { + + @Parameter(name = "Data_SeznamChyb") + java.util.List dataSeznamChyb(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2.java new file mode 100644 index 0000000..1aef16d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIQ2 extends MwfRequest { + + @Parameter(name = "AppKey") + MWFIQ2 appKey(Long appKey); + @Parameter(name = "INST_PT_KEY") + MWFIQ2 instPtKey(Long instPtKey); + @Parameter(name = "NacistPoplatky_Flag") + MWFIQ2 nacistPoplatkyFlag(String nacistPoplatkyFlag); + @Parameter(name = "ZadostOnlineUDC_Flag") + MWFIQ2 zadostOnlineUDCFlag(String zadostOnlineUDCFlag); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2DataDocs.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2DataDocs.java new file mode 100644 index 0000000..c19ba1b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2DataDocs.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFIQ2DataDocs { + + private Map params; + + public MWFIQ2DataDocs(Map params) { + this.params = params; + } + + public Long rsVariantaKey() { + return (Long) params.get("RS_VARIANTA_KEY"); + } + + public String rsReqdDocPurp() { + return (String) params.get("RS_REQD_DOC_PURP"); + } + + public String rsReqdDocCatg() { + return (String) params.get("RS_REQD_DOC_CATG"); + } + + public String rsReqdDocType() { + return (String) params.get("RS_REQD_DOC_TYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2DataProdCandDetails.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2DataProdCandDetails.java new file mode 100644 index 0000000..428301f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2DataProdCandDetails.java @@ -0,0 +1,325 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFIQ2DataProdCandDetails { + + private Map params; + + public MWFIQ2DataProdCandDetails(Map params) { + this.params = params; + } + + public java.util.Date rsDatumprvnisplatky() { + return (java.util.Date) params.get("RS_DATUMPRVNISPLATKY"); + } + + public String rsOdkladsplatek() { + return (String) params.get("RS_ODKLADSPLATEK"); + } + + public Double rsPojistenipoplatek() { + return (Double) params.get("RS_POJISTENIPOPLATEK"); + } + + public Long rsVyseuveru() { + return (Long) params.get("RS_VYSEUVERU"); + } + + public String rsVariantazvolenaflag() { + return (String) params.get("RS_VARIANTAZVOLENAFLAG"); + } + + public Double rsMesicnisplatka() { + return (Double) params.get("RS_MESICNISPLATKA"); + } + + public Double rsUrokovasazba() { + return (Double) params.get("RS_UROKOVASAZBA"); + } + + public String rsVariantadoporucenaflag() { + return (String) params.get("RS_VARIANTADOPORUCENAFLAG"); + } + + public String rsVariantatyp() { + return (String) params.get("RS_VARIANTATYP"); + } + + public String rsTerm() { + return (String) params.get("RS_TERM"); + } + + public Double rsRpsn() { + return (Double) params.get("RS_RPSN"); + } + + public Long rsVariantaKey() { + return (Long) params.get("RS_VARIANTA_KEY"); + } + + public String rsDeninkasnisplatky() { + return (String) params.get("RS_DENINKASNISPLATKY"); + } + + public String rsKodproduktu() { + return (String) params.get("RS_KODPRODUKTU"); + } + + public String rsPojisteni() { + return (String) params.get("RS_POJISTENI"); + } + + public String rsEmbosstyp() { + return (String) params.get("RS_EMBOSSTYP"); + } + + public String rsCobrandkarty() { + return (String) params.get("RS_COBRANDKARTY"); + } + + public String rsDesignkarty() { + return (String) params.get("RS_DESIGNKARTY"); + } + + public String rsKartaasociace() { + return (String) params.get("RS_KARTAASOCIACE"); + } + + public String rsKodproduktusales() { + return (String) params.get("RS_KODPRODUKTUSALES"); + } + + public String rsVernostniprogram() { + return (String) params.get("RS_VERNOSTNIPROGRAM"); + } + + public String rsPromoakce() { + return (String) params.get("RS_PROMOAKCE"); + } + + public String rsTypkarty() { + return (String) params.get("RS_TYPKARTY"); + } + + public String rsCislosmlouvyvarianty() { + return (String) params.get("RS_CISLOSMLOUVYVARIANTY"); + } + + public Double rsVelikostzalohy() { + return (Double) params.get("RS_VELIKOSTZALOHY"); + } + + public String rsBrandkarty() { + return (String) params.get("RS_BRANDKARTY"); + } + + public String rsPovoleniinettransakci() { + return (String) params.get("RS_POVOLENIINETTRANSAKCI"); + } + + public Double rsAutorizacnilimitBezhotovostni() { + return (Double) params.get("RS_AUTORIZACNILIMIT_BEZHOTOVOSTNI"); + } + + public Double rsAutorizacnilimitHotovost() { + return (Double) params.get("RS_AUTORIZACNILIMIT_HOTOVOST"); + } + + public String rsAutorizacnilimitTyp() { + return (String) params.get("RS_AUTORIZACNILIMIT_TYP"); + } + + public Double rsAutorizacnilimitProcento() { + return (Double) params.get("RS_AUTORIZACNILIMIT_PROCENTO"); + } + + public Double rsMinprocentosplatky() { + return (Double) params.get("RS_MINPROCENTOSPLATKY"); + } + + public Double rsUverovyramecod() { + return (Double) params.get("RS_UVEROVYRAMECOD"); + } + + public Double rsUverovyramecdo() { + return (Double) params.get("RS_UVEROVYRAMECDO"); + } + + public String rsTypasistencnisluzby() { + return (String) params.get("RS_TYPASISTENCNISLUZBY"); + } + + public String rsVariantadruh() { + return (String) params.get("RS_VARIANTADRUH"); + } + + public Double rsRocniurokovasazbacash() { + return (Double) params.get("RS_ROCNIUROKOVASAZBACASH"); + } + + public Double rsCelkovasplatnacastka() { + return (Double) params.get("RS_CELKOVASPLATNACASTKA"); + } + + public Double rsVyseupsellu() { + return (Double) params.get("RS_VYSEUPSELLU"); + } + + public Long rsPoradizavazku() { + return (Long) params.get("RS_PORADIZAVAZKU"); + } + + public Long rsDenzuctovacihoobdobi() { + return (Long) params.get("RS_DENZUCTOVACIHOOBDOBI"); + } + + public Double rsPoplatekotevreni() { + return (Double) params.get("RS_POPLATEKOTEVRENI"); + } + + public Double rsPoplatekbu() { + return (Double) params.get("RS_POPLATEKBU"); + } + + public Double rsPoplatekuu() { + return (Double) params.get("RS_POPLATEKUU"); + } + + public Double rsPoplatekprichozitranskace() { + return (Double) params.get("RS_POPLATEKPRICHOZITRANSKACE"); + } + + public String rsPoplatekmvk() { + return (String) params.get("RS_POPLATEKMVK"); + } + + public Double rsPoplatekrvk() { + return (Double) params.get("RS_POPLATEKRVK"); + } + + public String rsTypvypoctufina() { + return (String) params.get("RS_TYPVYPOCTUFINA"); + } + + public Double rsFlexilimit() { + return (Double) params.get("RS_FLEXILIMIT"); + } + + public String rsTypsplaceni() { + return (String) params.get("RS_TYPSPLACENI"); + } + + public String rsIndexlinearnihosplaceni() { + return (String) params.get("RS_INDEXLINEARNIHOSPLACENI"); + } + + public Long rsKombinaceKey() { + return (Long) params.get("RS_KOMBINACE_KEY"); + } + + public String rsRelAccNum() { + return (String) params.get("RS_REL_ACC_NUM"); + } + + public Double rsMinCrTurnPct() { + return (Double) params.get("RS_MIN_CR_TURN_PCT"); + } + + public String rsIncentiv() { + return (String) params.get("RS_INCENTIV"); + } + + public Double rsCastkaprvnihocerpani() { + return (Double) params.get("RS_CASTKAPRVNIHOCERPANI"); + } + + public String rsPoplatkovyplan() { + return (String) params.get("RS_POPLATKOVYPLAN"); + } + + public Double rsAutorizacnilimitInternet() { + return (Double) params.get("RS_AUTORIZACNILIMIT_INTERNET"); + } + + public Double rsVyseposlednisplatky() { + return (Double) params.get("RS_VYSEPOSLEDNISPLATKY"); + } + + public Double rsCerpVyseposlednisplatky() { + return (Double) params.get("RS_CERP_VYSEPOSLEDNISPLATKY"); + } + + public Double rsCerpUrokovasazba() { + return (Double) params.get("RS_CERP_UROKOVASAZBA"); + } + + public Double rsCerpRpsn() { + return (Double) params.get("RS_CERP_RPSN"); + } + + public Double rsCerpCelkovasplatnacastka() { + return (Double) params.get("RS_CERP_CELKOVASPLATNACASTKA"); + } + + public String rsBonusPeriodavyplacenibonusu() { + return (String) params.get("RS_BONUS_PERIODAVYPLACENIBONUSU"); + } + + public Double rsBonusCastka() { + return (Double) params.get("RS_BONUS_CASTKA"); + } + + public Long rsCerpPocetsplatek() { + return (Long) params.get("RS_CERP_POCETSPLATEK"); + } + + public Double rsCerpBonusCelkovacastka() { + return (Double) params.get("RS_CERP_BONUS_CELKOVACASTKA"); + } + + public Double rsCerpBonusRpsn() { + return (Double) params.get("RS_CERP_BONUS_RPSN"); + } + + public Double rsBonusCelkovavyse() { + return (Double) params.get("RS_BONUS_CELKOVAVYSE"); + } + + public Double rsCerpBonusUrokovasazba() { + return (Double) params.get("RS_CERP_BONUS_UROKOVASAZBA"); + } + + public Double rsCerpBonusVyseposlednisplatky() { + return (Double) params.get("RS_CERP_BONUS_VYSEPOSLEDNISPLATKY"); + } + + public String rsBonusTypvyplacenibonusu() { + return (String) params.get("RS_BONUS_TYPVYPLACENIBONUSU"); + } + + public Long rsCerpBonusPocetsplatek() { + return (Long) params.get("RS_CERP_BONUS_POCETSPLATEK"); + } + + public String rsVariantTpId() { + return (String) params.get("RS_VARIANT_TP_ID"); + } + + public java.util.Date rsDatumzalozeni() { + return (java.util.Date) params.get("RS_DATUMZALOZENI"); + } + + public java.util.Date rsDatumposlednizmeny() { + return (java.util.Date) params.get("RS_DATUMPOSLEDNIZMENY"); + } + + public Double rsPrimIntrsRx() { + return (Double) params.get("RS_PRIM_INTRS_RX"); + } + + public Double rsMinIntrsRx() { + return (Double) params.get("RS_MIN_INTRS_RX"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2Response.java new file mode 100644 index 0000000..1433abd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ2Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIQ2Response { + + @Parameter(name = "Data_Docs") + java.util.List dataDocs(); + + @Parameter(name = "Data_ProdCandDetails") + java.util.List dataProdCandDetails(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ6.java new file mode 100644 index 0000000..eae753b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ6.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIQ6 extends MwfRequest { + + @Parameter(name = "ACC_NUM_IN") + MWFIQ6 accNumIn(String accNumIn); + @Parameter(name = "BRANCH_ID") + MWFIQ6 branchId(String branchId); + @Parameter(name = "CHANNEL_ID") + MWFIQ6 channelId(String channelId); + @Parameter(name = "INSUR_END_DATE") + MWFIQ6 insurEndDate(java.util.Date insurEndDate); + @Parameter(name = "INSUR_ID") + MWFIQ6 insurId(String insurId); + @Parameter(name = "INSUR_START_DATE") + MWFIQ6 insurStartDate(java.util.Date insurStartDate); + @Parameter(name = "PRICE_TOTAL_AMOUNT") + MWFIQ6 priceTotalAmount(Double priceTotalAmount); + @Parameter(name = "USER_ID") + MWFIQ6 userId(String userId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ6Response.java new file mode 100644 index 0000000..f3e490e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ6Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIQ6Response { + + @Parameter(name = "INSUR_END_DATE") + java.util.Date insurEndDate(); + + @Parameter(name = "INSUR_SIGN_DATE") + java.util.Date insurSignDate(); + + @Parameter(name = "INSUR_START_DATE") + java.util.Date insurStartDate(); + + @Parameter(name = "PRICE_TOTAL_AMOUNT") + Double priceTotalAmount(); + + @Parameter(name = "PROD_INST_KEY") + Long prodInstKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ7.java new file mode 100644 index 0000000..a56ff31 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ7.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIQ7 extends MwfRequest { + + @Parameter(name = "ACC_NUM_IN") + MWFIQ7 accNumIn(String accNumIn); + @Parameter(name = "CIF_IN") + MWFIQ7 cifIn(String cifIn); + @Parameter(name = "INSUR_ID") + MWFIQ7 insurId(String insurId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ7Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ7Data.java new file mode 100644 index 0000000..fbb8bf9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ7Data.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFIQ7Data { + + private Map params; + + public MWFIQ7Data(Map params) { + this.params = params; + } + + public String rsProdInstKey() { + return (String) params.get("RS_PROD_INST_KEY"); + } + + public String rsAccNum() { + return (String) params.get("RS_ACC_NUM"); + } + + public String rsInsurId() { + return (String) params.get("RS_INSUR_ID"); + } + + public java.util.Date rsStartDate() { + return (java.util.Date) params.get("RS_START_DATE"); + } + + public java.util.Date rsEndDate() { + return (java.util.Date) params.get("RS_END_DATE"); + } + + public Double rsFeeAmt() { + return (Double) params.get("RS_FEE_AMT"); + } + + public java.util.Date rsCancelDate() { + return (java.util.Date) params.get("RS_CANCEL_DATE"); + } + + public String rsCancelRsnTpId() { + return (String) params.get("RS_CANCEL_RSN_TP_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ7Response.java new file mode 100644 index 0000000..e5d0325 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIQ7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIQ7Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1.java new file mode 100644 index 0000000..f9bbcbf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIR1 extends MwfRequest { + + @Parameter(name = "ExpiraceFlag") + MWFIR1 expiraceFlag(String expiraceFlag); + @Parameter(name = "RWS_VstupniKarty") + MWFIR1 rWSVstupniKarty(java.util.List rWSVstupniKarty); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1RWSDetailyKaret.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1RWSDetailyKaret.java new file mode 100644 index 0000000..20c198b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1RWSDetailyKaret.java @@ -0,0 +1,241 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFIR1RWSDetailyKaret { + + private Map params; + + public MWFIR1RWSDetailyKaret(Map params) { + this.params = params; + } + + public String rsPlatnostkarty() { + return (String) params.get("RS_PLATNOSTKARTY"); + } + + public String rsCislokarty() { + return (String) params.get("RS_CISLOKARTY"); + } + + public String rsJmenodrzitele() { + return (String) params.get("RS_JMENODRZITELE"); + } + + public String rsLogokarty() { + return (String) params.get("RS_LOGOKARTY"); + } + + public String rsStavsmlouvy() { + return (String) params.get("RS_STAVSMLOUVY"); + } + + public String rsOrganizace() { + return (String) params.get("RS_ORGANIZACE"); + } + + public String rsAktivitakarty() { + return (String) params.get("RS_AKTIVITAKARTY"); + } + + public String rsBlokacesmlouvy1() { + return (String) params.get("RS_BLOKACESMLOUVY1"); + } + + public String rsBlokacesmlouvy2() { + return (String) params.get("RS_BLOKACESMLOUVY2"); + } + + public String rsMinimalnisplatka() { + return (String) params.get("RS_MINIMALNISPLATKA"); + } + + public Double rsDisponibilnizustatek() { + return (Double) params.get("RS_DISPONIBILNIZUSTATEK"); + } + + public java.util.Date rsSplatkadatumsplatnosti() { + return (java.util.Date) params.get("RS_SPLATKADATUMSPLATNOSTI"); + } + + public Double rsSplatkakuhrade() { + return (Double) params.get("RS_SPLATKAKUHRADE"); + } + + public Long rsDennilimitobchodnik() { + return (Long) params.get("RS_DENNILIMITOBCHODNIK"); + } + + public Double rsCelkemdoplatit() { + return (Double) params.get("RS_CELKEMDOPLATIT"); + } + + public Double rsVyseposlednisplatky() { + return (Double) params.get("RS_VYSEPOSLEDNISPLATKY"); + } + + public java.util.Date rsDatumposlednisplatky() { + return (java.util.Date) params.get("RS_DATUMPOSLEDNISPLATKY"); + } + + public Double rsUverovyramec() { + return (Double) params.get("RS_UVEROVYRAMEC"); + } + + public java.util.Date rsDatumpodpisusmlouvy() { + return (java.util.Date) params.get("RS_DATUMPODPISUSMLOUVY"); + } + + public String rsCislosmlouvy() { + return (String) params.get("RS_CISLOSMLOUVY"); + } + + public Long rsDennilimithotovost() { + return (Long) params.get("RS_DENNILIMITHOTOVOST"); + } + + public Double rsUverovyramecvycerpany() { + return (Double) params.get("RS_UVEROVYRAMECVYCERPANY"); + } + + public Double rsUverovyramechotovost() { + return (Double) params.get("RS_UVEROVYRAMECHOTOVOST"); + } + + public Double rsDisponibilnizustatekhotovost() { + return (Double) params.get("RS_DISPONIBILNIZUSTATEKHOTOVOST"); + } + + public String rsLoyaltystatus() { + return (String) params.get("RS_LOYALTYSTATUS"); + } + + public String rsDesignid() { + return (String) params.get("RS_DESIGNID"); + } + + public String rsZpusobdistribucevypisu() { + return (String) params.get("RS_ZPUSOBDISTRIBUCEVYPISU"); + } + + public String rsCislokaretnihouctu() { + return (String) params.get("RS_CISLOKARETNIHOUCTU"); + } + + public String rsDodatkovakarta() { + return (String) params.get("RS_DODATKOVAKARTA"); + } + + public Long rsMaxpocettransakciden() { + return (Long) params.get("RS_MAXPOCETTRANSAKCIDEN"); + } + + public Long rsMaxpocettransakcidenatm() { + return (Long) params.get("RS_MAXPOCETTRANSAKCIDENATM"); + } + + public String rsInternet() { + return (String) params.get("RS_INTERNET"); + } + + public String rsDrzitelrc() { + return (String) params.get("RS_DRZITELRC"); + } + + public Double rsLimitinkasa() { + return (Double) params.get("RS_LIMITINKASA"); + } + + public String rsZpusobuhrady() { + return (String) params.get("RS_ZPUSOBUHRADY"); + } + + public String rsCislokartymask() { + return (String) params.get("RS_CISLOKARTYMASK"); + } + + public String rsCislokaretnihouctumask() { + return (String) params.get("RS_CISLOKARETNIHOUCTUMASK"); + } + + public String rsChip() { + return (String) params.get("RS_CHIP"); + } + + public String rsMsisdn() { + return (String) params.get("RS_MSISDN"); + } + + public Long rsDennilimitecommerce() { + return (Long) params.get("RS_DENNILIMITECOMMERCE"); + } + + public String rsVybermimoeu() { + return (String) params.get("RS_VYBERMIMOEU"); + } + + public java.util.Date rsDatumodblokovani() { + return (java.util.Date) params.get("RS_DATUMODBLOKOVANI"); + } + + public String rsDuvodblokace() { + return (String) params.get("RS_DUVODBLOKACE"); + } + + public String rsDrzitelheslo() { + return (String) params.get("RS_DRZITELHESLO"); + } + + public String rsSmartpinpozadavek() { + return (String) params.get("RS_SMARTPINPOZADAVEK"); + } + + public String rsSmartpinanone() { + return (String) params.get("RS_SMARTPINANONE"); + } + + public String rsZpusobdistribucepin() { + return (String) params.get("RS_ZPUSOBDISTRIBUCEPIN"); + } + + public String rsSmartpinnumber() { + return (String) params.get("RS_SMARTPINNUMBER"); + } + + public java.util.Date rsDatumexpminulekarty() { + return (java.util.Date) params.get("RS_DATUMEXPMINULEKARTY"); + } + + public String rsStateOfIssue() { + return (String) params.get("RS_STATE_OF_ISSUE"); + } + + public String rsAktivacepredchozikarty() { + return (String) params.get("RS_AKTIVACEPREDCHOZIKARTY"); + } + + public String rsStavkarty() { + return (String) params.get("RS_STAVKARTY"); + } + + public java.util.Date rsDatumexpiracekartyfull() { + return (java.util.Date) params.get("RS_DATUMEXPIRACEKARTYFULL"); + } + + public String rsVizualkarty() { + return (String) params.get("RS_VIZUALKARTY"); + } + + public String rsMena() { + return (String) params.get("RS_MENA"); + } + + public String rsMoznosttokenizacekarty() { + return (String) params.get("RS_MOZNOSTTOKENIZACEKARTY"); + } + + public String rsKartaasociace() { + return (String) params.get("RS_KARTAASOCIACE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1RWSVstupniKarty.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1RWSVstupniKarty.java new file mode 100644 index 0000000..f0a9cc7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1RWSVstupniKarty.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFIR1RWSVstupniKarty implements MwfData { + + private Map params = new HashMap<>(); + + private MWFIR1RWSVstupniKarty() {} + + public static MWFIR1RWSVstupniKarty builder() { + return new MWFIR1RWSVstupniKarty(); + } + + public MWFIR1RWSVstupniKarty rsAcct(String rsAcct) { + params.put("RS_ACCT", rsAcct); + return this; + } + + public MWFIR1RWSVstupniKarty rsCardNbr(String rsCardNbr) { + params.put("RS_CARD_NBR", rsCardNbr); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1Response.java new file mode 100644 index 0000000..3c0f12c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIR1Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIR1Response { + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "RWS_DetailyKaret") + java.util.List rWSDetailyKaret(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIS0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIS0.java new file mode 100644 index 0000000..07c58fc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIS0.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIS0 extends MwfRequest { + + @Parameter(name = "ProdPackageKey") + MWFIS0 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIS0Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIS0Data.java new file mode 100644 index 0000000..02e6bc4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIS0Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFIS0Data { + + private Map params; + + public MWFIS0Data(Map params) { + this.params = params; + } + + public Long rsAppkey() { + return (Long) params.get("RS_APPKEY"); + } + + public String rsProdclass() { + return (String) params.get("RS_PRODCLASS"); + } + + public Long rsInstptkey() { + return (Long) params.get("RS_INSTPTKEY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIS0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIS0Response.java new file mode 100644 index 0000000..86516b0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIS0Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIS0Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "ProdPackageType") + String prodPackageType(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT4.java new file mode 100644 index 0000000..8f96a18 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT4.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIT4 extends MwfRequest { + + @Parameter(name = "Data") + MWFIT4 data(java.util.List data); + @Parameter(name = "ProdPackageType") + MWFIT4 prodPackageType(String prodPackageType); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT4Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT4Data.java new file mode 100644 index 0000000..05cc835 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT4Data.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFIT4Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFIT4Data() {} + + public static MWFIT4Data builder() { + return new MWFIT4Data(); + } + + public MWFIT4Data rsAppkey(Long rsAppkey) { + params.put("RS_APPKEY", rsAppkey); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT4Response.java new file mode 100644 index 0000000..3a9b361 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT4Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIT4Response { + + @Parameter(name = "ProdPackageKey") + Long prodPackageKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT9.java new file mode 100644 index 0000000..4d3309c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT9.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIT9 extends MwfRequest { + + @Parameter(name = "ProdPackageKey") + MWFIT9 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT9Response.java new file mode 100644 index 0000000..d35aaa4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIT9Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIT9Response { + + @Parameter(name = "AutomaticStornoFlag") + String automaticStornoFlag(); + + @Parameter(name = "DocumentsRequiredOnlyPoiFlag") + Long documentsRequiredOnlyPoiFlag(); + + @Parameter(name = "PackageApplicationsAggregateState") + String packageApplicationsAggregateState(); + + @Parameter(name = "WorkflowStarted") + Boolean workflowStarted(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIU5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIU5.java new file mode 100644 index 0000000..d77edec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIU5.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIU5 extends MwfRequest { + + @Parameter(name = "BranchID") + MWFIU5 branchID(String branchID); + @Parameter(name = "CIF") + MWFIU5 cif(String cif); + @Parameter(name = "CompletationChannel") + MWFIU5 completationChannel(String completationChannel); + @Parameter(name = "ProdPackageKey") + MWFIU5 prodPackageKey(Long prodPackageKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIU5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIU5Response.java new file mode 100644 index 0000000..e59040d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIU5Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIU5Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIV1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIV1.java new file mode 100644 index 0000000..d7c17c9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIV1.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIV1 extends MwfRequest { + + @Parameter(name = "BankersProfile") + MWFIV1 bankersProfile(String bankersProfile); + @Parameter(name = "ProdPackageKey") + MWFIV1 prodPackageKey(Long prodPackageKey); + @Parameter(name = "StornoReason") + MWFIV1 stornoReason(String stornoReason); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIV1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIV1Response.java new file mode 100644 index 0000000..4d94aee --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIV1Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIV1Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW1.java new file mode 100644 index 0000000..116b633 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW1.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIW1 extends MwfRequest { + + @Parameter(name = "INSURED_BIRTH_NUMBER") + MWFIW1 insuredBirthNumber(String insuredBirthNumber); + @Parameter(name = "INSUR_ID") + MWFIW1 insurId(String insurId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW1Response.java new file mode 100644 index 0000000..c6b713a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW1Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIW1Response { + + @Parameter(name = "ACC_NUM_OUT") + String accNumOut(); + + @Parameter(name = "CIF_OUT") + String cifOut(); + + @Parameter(name = "OK_FLAG") + String okFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW2.java new file mode 100644 index 0000000..f07f8a6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW2.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIW2 extends MwfRequest { + + @Parameter(name = "CIF") + MWFIW2 cif(String cif); + @Parameter(name = "DOCUMENT_TYPE") + MWFIW2 documentType(String documentType); + @Parameter(name = "ICO") + MWFIW2 ico(String ico); + @Parameter(name = "IdDokumentu") + MWFIW2 idDokumentu(String idDokumentu); + @Parameter(name = "IdProduktu") + MWFIW2 idProduktu(String idProduktu); + @Parameter(name = "ItemTypeDokument") + MWFIW2 itemTypeDokument(String itemTypeDokument); + @Parameter(name = "NazevDokumentu") + MWFIW2 nazevDokumentu(String nazevDokumentu); + @Parameter(name = "NazevProduktu") + MWFIW2 nazevProduktu(String nazevProduktu); + @Parameter(name = "PRODUCT") + MWFIW2 product(String product); + @Parameter(name = "PRODUCT_TYPE") + MWFIW2 productType(String productType); + @Parameter(name = "RC") + MWFIW2 rc(String rc); + @Parameter(name = "TridaProduktu") + MWFIW2 tridaProduktu(String tridaProduktu); + @Parameter(name = "TypDokumentu") + MWFIW2 typDokumentu(String typDokumentu); + @Parameter(name = "VytvorElektronickyPodpis") + MWFIW2 vytvorElektronickyPodpis(Boolean vytvorElektronickyPodpis); + @Parameter(name = "VytvorUmisteni") + MWFIW2 vytvorUmisteni(Boolean vytvorUmisteni); + @Parameter(name = "ZDROJ_BIN") + MWFIW2 zdrojBin(String zdrojBin); + @Parameter(name = "ZDROJ_TYP") + MWFIW2 zdrojTyp(String zdrojTyp); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW2Response.java new file mode 100644 index 0000000..60fb215 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIW2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIW2Response { + + @Parameter(name = "CmId") + String cmId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ2.java new file mode 100644 index 0000000..589d60e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ2.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIZ2 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFIZ2 appKey(Long appKey); + @Parameter(name = "AccountNumber") + MWFIZ2 accountNumber(String accountNumber); + @Parameter(name = "INST_PT_KEY") + MWFIZ2 instPtKey(Long instPtKey); + @Parameter(name = "PPIType") + MWFIZ2 pPIType(String pPIType); + @Parameter(name = "RegularInstalmentDay") + MWFIZ2 regularInstalmentDay(Long regularInstalmentDay); + @Parameter(name = "UserRole") + MWFIZ2 userRole(String userRole); + @Parameter(name = "User_SSO") + MWFIZ2 userSSO(String userSSO); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ2Response.java new file mode 100644 index 0000000..2a0e913 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ2Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIZ2Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ3.java new file mode 100644 index 0000000..7790315 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ3.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIZ3 extends MwfRequest { + + @Parameter(name = "ApplicationKey") + MWFIZ3 applicationKey(Long applicationKey); + @Parameter(name = "BirthNumber") + MWFIZ3 birthNumber(String birthNumber); + @Parameter(name = "OperationType") + MWFIZ3 operationType(String operationType); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ3Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ3Data.java new file mode 100644 index 0000000..7aa2f3e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ3Data.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFIZ3Data { + + private Map params; + + public MWFIZ3Data(Map params) { + this.params = params; + } + + public String rsUnprefilledClientPart() { + return (String) params.get("RS_UNPREFILLED_CLIENT_PART"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ3Response.java new file mode 100644 index 0000000..ac457d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ3Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIZ3Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "LockedFormFlag") + String lockedFormFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4.java new file mode 100644 index 0000000..b8eb7fe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFIZ4 extends MwfRequest { + + @Parameter(name = "BirthNumber") + MWFIZ4 birthNumber(String birthNumber); + @Parameter(name = "BranchId") + MWFIZ4 branchId(String branchId); + @Parameter(name = "CacheMode") + MWFIZ4 cacheMode(Long cacheMode); + @Parameter(name = "ClientType") + MWFIZ4 clientType(String clientType); + @Parameter(name = "ContractId") + MWFIZ4 contractId(String contractId); + @Parameter(name = "ContractSourceSystem") + MWFIZ4 contractSourceSystem(String contractSourceSystem); + @Parameter(name = "DistributionChannel") + MWFIZ4 distributionChannel(String distributionChannel); + @Parameter(name = "ICO") + MWFIZ4 ico(String ico); + @Parameter(name = "InfolimitType") + MWFIZ4 infolimitType(String infolimitType); + @Parameter(name = "Name") + MWFIZ4 name(String name); + @Parameter(name = "OnlineCheck") + MWFIZ4 onlineCheck(Long onlineCheck); + @Parameter(name = "Surname") + MWFIZ4 surname(String surname); + @Parameter(name = "UnifiedPartyKey") + MWFIZ4 unifiedPartyKey(String unifiedPartyKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4Response.java new file mode 100644 index 0000000..7654ad2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIZ4Response { + + @Parameter(name = "RS1") + java.util.List rs1(); + + @Parameter(name = "RS2") + java.util.List rs2(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4Rs1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4Rs1.java new file mode 100644 index 0000000..71782c9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4Rs1.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFIZ4Rs1 { + + private Map params; + + public MWFIZ4Rs1(Map params) { + this.params = params; + } + + public String rsProductclass() { + return (String) params.get("RS_PRODUCTCLASS"); + } + + public Double rsInfolimitamount() { + return (Double) params.get("RS_INFOLIMITAMOUNT"); + } + + public String rsAccountnumber() { + return (String) params.get("RS_ACCOUNTNUMBER"); + } + + public String rsCurrency() { + return (String) params.get("RS_CURRENCY"); + } + + public String rsContractnumber() { + return (String) params.get("RS_CONTRACTNUMBER"); + } + + public Double rsCashlimitpercent() { + return (Double) params.get("RS_CASHLIMITPERCENT"); + } + + public Double rsInstalmentpercent() { + return (Double) params.get("RS_INSTALMENTPERCENT"); + } + + public String rsInfolimittype() { + return (String) params.get("RS_INFOLIMITTYPE"); + } + + public Double rsPrincipal() { + return (Double) params.get("RS_PRINCIPAL"); + } + + public String rsReasoncategory() { + return (String) params.get("RS_REASONCATEGORY"); + } + + public String rsSalesproducttype() { + return (String) params.get("RS_SALESPRODUCTTYPE"); + } + + public String rsApplicationtype() { + return (String) params.get("RS_APPLICATIONTYPE"); + } + + public Long rsUnifiedpartyinfolimitkey() { + return (Long) params.get("RS_UNIFIEDPARTYINFOLIMITKEY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4Rs2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4Rs2.java new file mode 100644 index 0000000..bdb700c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFIZ4Rs2.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFIZ4Rs2 { + + private Map params; + + public MWFIZ4Rs2(Map params) { + this.params = params; + } + + public String rsInfolimitvariantkey() { + return (String) params.get("RS_INFOLIMITVARIANTKEY"); + } + + public String rsSalesproducttype() { + return (String) params.get("RS_SALESPRODUCTTYPE"); + } + + public Double rsLoanamount() { + return (Double) params.get("RS_LOANAMOUNT"); + } + + public Long rsPaymentsnumber() { + return (Long) params.get("RS_PAYMENTSNUMBER"); + } + + public Double rsInstalmentamount() { + return (Double) params.get("RS_INSTALMENTAMOUNT"); + } + + public Double rsRpsn() { + return (Double) params.get("RS_RPSN"); + } + + public Double rsInterestrate() { + return (Double) params.get("RS_INTERESTRATE"); + } + + public Double rsTotalamount() { + return (Double) params.get("RS_TOTALAMOUNT"); + } + + public Long rsUnifiedpartyinfolimitkey() { + return (Long) params.get("RS_UNIFIEDPARTYINFOLIMITKEY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ16.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ16.java new file mode 100644 index 0000000..2caf002 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ16.java @@ -0,0 +1,74 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJ16 extends MwfRequest { + + @Parameter(name = "ContactKey") + MWFJ16 contactKey(String contactKey); + @Parameter(name = "ContactKeySnapDate") + MWFJ16 contactKeySnapDate(java.util.Date contactKeySnapDate); + @Parameter(name = "EDUID") + MWFJ16 eduid(String eduid); + @Parameter(name = "ID") + MWFJ16 id(Long id); + @Parameter(name = "INST_PT_KEY") + MWFJ16 instPtKey(Long instPtKey); + @Parameter(name = "KanalID") + MWFJ16 kanalID(String kanalID); + @Parameter(name = "KlientID") + MWFJ16 klientID(String klientID); + @Parameter(name = "KlientTyp") + MWFJ16 klientTyp(String klientTyp); + @Parameter(name = "KodOM") + MWFJ16 kodOM(String kodOM); + @Parameter(name = "KontaktSmer") + MWFJ16 kontaktSmer(Long kontaktSmer); + @Parameter(name = "OM") + MWFJ16 om(String om); + @Parameter(name = "OPRAVNENYKLIENT") + MWFJ16 opravnenyklient(Long opravnenyklient); + @Parameter(name = "OPRAVNENYZADALSSO") + MWFJ16 opravnenyzadalsso(String opravnenyzadalsso); + @Parameter(name = "OPRAVNENYZADALTEAM") + MWFJ16 opravnenyzadalteam(String opravnenyzadalteam); + @Parameter(name = "ObjektID") + MWFJ16 objektID(String objektID); + @Parameter(name = "ObjektTyp") + MWFJ16 objektTyp(String objektTyp); + @Parameter(name = "OfferKey") + MWFJ16 offerKey(String offerKey); + @Parameter(name = "Opravneny") + MWFJ16 opravneny(Long opravneny); + @Parameter(name = "PrioritaUkolu") + MWFJ16 prioritaUkolu(Long prioritaUkolu); + @Parameter(name = "ReseniPoznamka") + MWFJ16 reseniPoznamka(String reseniPoznamka); + @Parameter(name = "ReseniTyp") + MWFJ16 reseniTyp(String reseniTyp); + @Parameter(name = "SRC_SYS_ID") + MWFJ16 srcSysId(String srcSysId); + @Parameter(name = "SablonaHodnoty") + MWFJ16 sablonaHodnoty(String sablonaHodnoty); + @Parameter(name = "SablonaTyp") + MWFJ16 sablonaTyp(Long sablonaTyp); + @Parameter(name = "Segment") + MWFJ16 segment(String segment); + @Parameter(name = "TerminDoDatumACas") + MWFJ16 terminDoDatumACas(java.util.Date terminDoDatumACas); + @Parameter(name = "TerminOdDatumACas") + MWFJ16 terminOdDatumACas(java.util.Date terminOdDatumACas); + @Parameter(name = "UCID") + MWFJ16 ucid(String ucid); + @Parameter(name = "VlastnikID") + MWFJ16 vlastnikID(String vlastnikID); + @Parameter(name = "VlastnikTyp") + MWFJ16 vlastnikTyp(Long vlastnikTyp); + @Parameter(name = "ZadaniOperator") + MWFJ16 zadaniOperator(String zadaniOperator); + @Parameter(name = "ZadaniPoznamka") + MWFJ16 zadaniPoznamka(String zadaniPoznamka); + @Parameter(name = "ZadaniTyp") + MWFJ16 zadaniTyp(String zadaniTyp); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ16Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ16Response.java new file mode 100644 index 0000000..6495405 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ16Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJ16Response { + + @Parameter(name = "ID") + Long id(); + + @Parameter(name = "INST_PT_KEY") + Long instPtKey(); + + @Parameter(name = "SRC_SYS_ID") + String srcSysId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ41.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ41.java new file mode 100644 index 0000000..580f736 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ41.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJ41 extends MwfRequest { + + @Parameter(name = "INBANK") + MWFJ41 inbank(Long inbank); + @Parameter(name = "INCNBR") + MWFJ41 incnbr(String incnbr); + @Parameter(name = "INICO") + MWFJ41 inico(String inico); + @Parameter(name = "INRC") + MWFJ41 inrc(String inrc); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ41Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ41Response.java new file mode 100644 index 0000000..86b51d2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJ41Response.java @@ -0,0 +1,333 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJ41Response { + + @Parameter(name = "Email") + String email(); + + @Parameter(name = "IDSdeleniZuzeneSJM") + Long iDSdeleniZuzeneSJM(); + + @Parameter(name = "OUACOM") + String ouacom(); + + @Parameter(name = "OUADDI") + String ouaddi(); + + @Parameter(name = "OUATD1") + String ouatd1(); + + @Parameter(name = "OUATD2") + String ouatd2(); + + @Parameter(name = "OUBDTE") + java.util.Date oubdte(); + + @Parameter(name = "OUBINF") + String oubinf(); + + @Parameter(name = "OUBPNA") + String oubpna(); + + @Parameter(name = "OUBRCH") + String oubrch(); + + @Parameter(name = "OUBUPH") + Long oubuph(); + + @Parameter(name = "OUCBUS") + String oucbus(); + + @Parameter(name = "OUCCAD") + java.util.Date ouccad(); + + @Parameter(name = "OUCCCD") + String oucccd(); + + @Parameter(name = "OUCCMP") + String ouccmp(); + + @Parameter(name = "OUCCNR") + String ouccnr(); + + @Parameter(name = "OUCCTG") + String oucctg(); + + @Parameter(name = "OUCCTY") + String ouccty(); + + @Parameter(name = "OUCDCD") + java.util.Date oucdcd(); + + @Parameter(name = "OUCDCN") + String oucdcn(); + + @Parameter(name = "OUCDIS") + String oucdis(); + + @Parameter(name = "OUCFNM") + String oucfnm(); + + @Parameter(name = "OUCFNO") + String oucfno(); + + @Parameter(name = "OUCHNM") + String ouchnm(); + + @Parameter(name = "OUCHNO") + String ouchno(); + + @Parameter(name = "OUCLNM") + String ouclnm(); + + @Parameter(name = "OUCMCH") + String oucmch(); + + @Parameter(name = "OUCNTY") + String oucnty(); + + @Parameter(name = "OUCPNA") + String oucpna(); + + @Parameter(name = "OUCPRF") + Long oucprf(); + + @Parameter(name = "OUCPSP") + String oucpsp(); + + @Parameter(name = "OUCSNM") + String oucsnm(); + + @Parameter(name = "OUCSTA") + String oucsta(); + + @Parameter(name = "OUCSTR") + String oucstr(); + + @Parameter(name = "OUCTC") + String ouctc(); + + @Parameter(name = "OUCTCT") + String ouctct(); + + @Parameter(name = "OUCTIT") + String ouctit(); + + @Parameter(name = "OUCTWN") + String ouctwn(); + + @Parameter(name = "OUCTYP") + String ouctyp(); + + @Parameter(name = "OUCVCD") + java.util.Date oucvcd(); + + @Parameter(name = "OUCVCN") + String oucvcn(); + + @Parameter(name = "OUCVSH") + String oucvsh(); + + @Parameter(name = "OUDEP") + Long oudep(); + + @Parameter(name = "OUDEP3") + Double oudep3(); + + @Parameter(name = "OUDEPI") + String oudepi(); + + @Parameter(name = "OUDIC") + String oudic(); + + @Parameter(name = "OUDORM") + String oudorm(); + + @Parameter(name = "OUDRVL") + String oudrvl(); + + @Parameter(name = "OUDVTD") + java.util.Date oudvtd(); + + @Parameter(name = "OUEDUC") + String oueduc(); + + @Parameter(name = "OUEN") + String ouen(); + + @Parameter(name = "OUENA1") + String ouena1(); + + @Parameter(name = "OUENA2") + String ouena2(); + + @Parameter(name = "OUENA3") + String ouena3(); + + @Parameter(name = "OUENA4") + String ouena4(); + + @Parameter(name = "OUENA5") + String ouena5(); + + @Parameter(name = "OUENA6") + String ouena6(); + + @Parameter(name = "OUEPST") + String ouepst(); + + @Parameter(name = "OUESDT") + java.util.Date ouesdt(); + + @Parameter(name = "OUEXTF") + String ouextf(); + + @Parameter(name = "OUFAX") + Long oufax(); + + @Parameter(name = "OUHMPH") + Long ouhmph(); + + @Parameter(name = "OUHOCN") + Long ouhocn(); + + @Parameter(name = "OUHOUS") + String ouhous(); + + @Parameter(name = "OUICDT") + String ouicdt(); + + @Parameter(name = "OUICO") + String ouico(); + + @Parameter(name = "OUICOE") + String ouicoe(); + + @Parameter(name = "OUINC") + Double ouinc(); + + @Parameter(name = "OUINCG") + String ouincg(); + + @Parameter(name = "OUINCL") + String ouincl(); + + @Parameter(name = "OULEGS") + String oulegs(); + + @Parameter(name = "OULSDT") + String oulsdt(); + + @Parameter(name = "OUMCD1") + String oumcd1(); + + @Parameter(name = "OUMCD2") + String oumcd2(); + + @Parameter(name = "OUMIDT") + java.util.Date oumidt(); + + @Parameter(name = "OUMRTS") + String oumrts(); + + @Parameter(name = "OUMTND") + java.util.Date oumtnd(); + + @Parameter(name = "OUNA1") + String ouna1(); + + @Parameter(name = "OUNA2") + String ouna2(); + + @Parameter(name = "OUNA3") + String ouna3(); + + @Parameter(name = "OUNA4") + String ouna4(); + + @Parameter(name = "OUNA5") + String ouna5(); + + @Parameter(name = "OUNA6") + String ouna6(); + + @Parameter(name = "OUNRRS") + String ounrrs(); + + @Parameter(name = "OUOPDT") + java.util.Date ouopdt(); + + @Parameter(name = "OUOWCD") + String ouowcd(); + + @Parameter(name = "OUPERS") + String oupers(); + + @Parameter(name = "OUPOFF") + String oupoff(); + + @Parameter(name = "OUPSTL") + String oupstl(); + + @Parameter(name = "OUPVTD") + java.util.Date oupvtd(); + + @Parameter(name = "OURC") + String ourc(); + + @Parameter(name = "OUREGN") + String ouregn(); + + @Parameter(name = "OURISK") + String ourisk(); + + @Parameter(name = "OUSALU") + String ousalu(); + + @Parameter(name = "OUSECT") + String ousect(); + + @Parameter(name = "OUSEX") + String ousex(); + + @Parameter(name = "OUSHRT") + String oushrt(); + + @Parameter(name = "OUSOCG") + String ousocg(); + + @Parameter(name = "OUSOFF") + String ousoff(); + + @Parameter(name = "OUSOLI") + String ousoli(); + + @Parameter(name = "OUSRIN") + String ousrin(); + + @Parameter(name = "OUSTAT") + String oustat(); + + @Parameter(name = "OUSTUD") + String oustud(); + + @Parameter(name = "OUTREG") + String outreg(); + + @Parameter(name = "OUYREM") + Long ouyrem(); + + @Parameter(name = "OUYTVR") + Long ouytvr(); + + @Parameter(name = "TelefonMobilni") + String telefonMobilni(); + + @Parameter(name = "ZuzeneSJM") + String zuzeneSJM(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA5.java new file mode 100644 index 0000000..663a93d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA5.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJA5 extends MwfRequest { + + @Parameter(name = "CIF") + MWFJA5 cif(String cif); + @Parameter(name = "RC") + MWFJA5 rc(String rc); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA5Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA5Data.java new file mode 100644 index 0000000..18440d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA5Data.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFJA5Data { + + private Map params; + + public MWFJA5Data(Map params) { + this.params = params; + } + + public String rsTypproduktu() { + return (String) params.get("RS_TYPPRODUKTU"); + } + + public String rsCislosmlouvy() { + return (String) params.get("RS_CISLOSMLOUVY"); + } + + public java.util.Date rsDatumuzavenismlouvy() { + return (java.util.Date) params.get("RS_DATUMUZAVENISMLOUVY"); + } + + public String rsStavsmlouvy() { + return (String) params.get("RS_STAVSMLOUVY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA5Response.java new file mode 100644 index 0000000..7b9db34 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA5Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJA5Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA6.java new file mode 100644 index 0000000..91896b7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA6.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJA6 extends MwfRequest { + + @Parameter(name = "CastkaTransakce") + MWFJA6 castkaTransakce(Double castkaTransakce); + @Parameter(name = "CisloUctu") + MWFJA6 cisloUctu(String cisloUctu); + @Parameter(name = "CisloUctuPrijemce") + MWFJA6 cisloUctuPrijemce(String cisloUctuPrijemce); + @Parameter(name = "DatumSplatnosti") + MWFJA6 datumSplatnosti(java.util.Date datumSplatnosti); + @Parameter(name = "ID") + MWFJA6 id(String id); + @Parameter(name = "KodBanky") + MWFJA6 kodBanky(String kodBanky); + @Parameter(name = "Predcisli") + MWFJA6 predcisli(Long predcisli); + @Parameter(name = "PredcisliPrijemce") + MWFJA6 predcisliPrijemce(Long predcisliPrijemce); + @Parameter(name = "Profil") + MWFJA6 profil(String profil); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA6Response.java new file mode 100644 index 0000000..7cc779a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJA6Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJA6Response { + + @Parameter(name = "TransakceZrusena") + String transakceZrusena(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJB3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJB3.java new file mode 100644 index 0000000..7be603d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJB3.java @@ -0,0 +1,52 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJB3 extends MwfRequest { + + @Parameter(name = "AVPole") + MWFJB3 aVPole(String aVPole); + @Parameter(name = "CIF") + MWFJB3 cif(String cif); + @Parameter(name = "Cache") + MWFJB3 cache(Long cache); + @Parameter(name = "CastkaTransakce") + MWFJB3 castkaTransakce(Double castkaTransakce); + @Parameter(name = "CisloCostCentra") + MWFJB3 cisloCostCentra(String cisloCostCentra); + @Parameter(name = "CisloUctu") + MWFJB3 cisloUctu(String cisloUctu); + @Parameter(name = "CisloUctuPrijemce") + MWFJB3 cisloUctuPrijemce(String cisloUctuPrijemce); + @Parameter(name = "CisloUctuPrijemceKodBanky") + MWFJB3 cisloUctuPrijemceKodBanky(String cisloUctuPrijemceKodBanky); + @Parameter(name = "KonstantniSymbol") + MWFJB3 konstantniSymbol(String konstantniSymbol); + @Parameter(name = "Mena") + MWFJB3 mena(String mena); + @Parameter(name = "NacistVsechnyBlokace") + MWFJB3 nacistVsechnyBlokace(Long nacistVsechnyBlokace); + @Parameter(name = "Neverifikovat") + MWFJB3 neverifikovat(Long neverifikovat); + @Parameter(name = "PoplatekZaZruseni") + MWFJB3 poplatekZaZruseni(Double poplatekZaZruseni); + @Parameter(name = "ProduktKod") + MWFJB3 produktKod(String produktKod); + @Parameter(name = "RealizacniDoba") + MWFJB3 realizacniDoba(Long realizacniDoba); + @Parameter(name = "SFMaterBU") + MWFJB3 sFMaterBU(String sFMaterBU); + @Parameter(name = "SdeleniID") + MWFJB3 sdeleniID(Long sdeleniID); + @Parameter(name = "SdeleniText") + MWFJB3 sdeleniText(String sdeleniText); + @Parameter(name = "SpecifickySymbol") + MWFJB3 specifickySymbol(Long specifickySymbol); + @Parameter(name = "TypUctu") + MWFJB3 typUctu(Long typUctu); + @Parameter(name = "VariabilniSymbol") + MWFJB3 variabilniSymbol(Long variabilniSymbol); + @Parameter(name = "ZrusSUZVystrahou") + MWFJB3 zrusSUZVystrahou(Long zrusSUZVystrahou); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJB3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJB3Response.java new file mode 100644 index 0000000..8c44883 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJB3Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJB3Response { + + @Parameter(name = "RequestID") + Long requestID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJC9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJC9.java new file mode 100644 index 0000000..d65f3b6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJC9.java @@ -0,0 +1,178 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJC9 extends MwfRequest { + + @Parameter(name = "APPLICANT") + MWFJC9 applicant(String applicant); + @Parameter(name = "APPLICANTGROUP") + MWFJC9 applicantgroup(String applicantgroup); + @Parameter(name = "ATTRIBUTE1") + MWFJC9 attribute1(String attribute1); + @Parameter(name = "ATTRIBUTE10") + MWFJC9 attribute10(String attribute10); + @Parameter(name = "ATTRIBUTE11") + MWFJC9 attribute11(String attribute11); + @Parameter(name = "ATTRIBUTE12") + MWFJC9 attribute12(String attribute12); + @Parameter(name = "ATTRIBUTE13") + MWFJC9 attribute13(String attribute13); + @Parameter(name = "ATTRIBUTE14") + MWFJC9 attribute14(String attribute14); + @Parameter(name = "ATTRIBUTE15") + MWFJC9 attribute15(String attribute15); + @Parameter(name = "ATTRIBUTE16") + MWFJC9 attribute16(String attribute16); + @Parameter(name = "ATTRIBUTE17") + MWFJC9 attribute17(String attribute17); + @Parameter(name = "ATTRIBUTE18") + MWFJC9 attribute18(String attribute18); + @Parameter(name = "ATTRIBUTE19") + MWFJC9 attribute19(String attribute19); + @Parameter(name = "ATTRIBUTE2") + MWFJC9 attribute2(String attribute2); + @Parameter(name = "ATTRIBUTE20") + MWFJC9 attribute20(String attribute20); + @Parameter(name = "ATTRIBUTE3") + MWFJC9 attribute3(String attribute3); + @Parameter(name = "ATTRIBUTE4") + MWFJC9 attribute4(String attribute4); + @Parameter(name = "ATTRIBUTE5") + MWFJC9 attribute5(String attribute5); + @Parameter(name = "ATTRIBUTE6") + MWFJC9 attribute6(String attribute6); + @Parameter(name = "ATTRIBUTE7") + MWFJC9 attribute7(String attribute7); + @Parameter(name = "ATTRIBUTE8") + MWFJC9 attribute8(String attribute8); + @Parameter(name = "ATTRIBUTE9") + MWFJC9 attribute9(String attribute9); + @Parameter(name = "BIRTHNUMBER") + MWFJC9 birthnumber(String birthnumber); + @Parameter(name = "BRANCHID") + MWFJC9 branchid(String branchid); + @Parameter(name = "BUSSTATE") + MWFJC9 busstate(String busstate); + @Parameter(name = "CALENDARTYPE") + MWFJC9 calendartype(Long calendartype); + @Parameter(name = "CLIENTID") + MWFJC9 clientid(String clientid); + @Parameter(name = "CLIENTIDTYPE") + MWFJC9 clientidtype(String clientidtype); + @Parameter(name = "COMPANY") + MWFJC9 company(String company); + @Parameter(name = "COUNTOFOCCURENCES") + MWFJC9 countofoccurences(Long countofoccurences); + @Parameter(name = "COUNTOFSUBTASKS") + MWFJC9 countofsubtasks(Long countofsubtasks); + @Parameter(name = "CRC_POZADAVEKPOZNAMKA") + MWFJC9 crcPozadavekpoznamka(String crcPozadavekpoznamka); + @Parameter(name = "CRC_POZADAVEKTYP") + MWFJC9 crcPozadavektyp(String crcPozadavektyp); + @Parameter(name = "CRC_RESENIPOZNAMKA") + MWFJC9 crcResenipoznamka(String crcResenipoznamka); + @Parameter(name = "CRC_RESENITYP") + MWFJC9 crcResenityp(String crcResenityp); + @Parameter(name = "DATEFORMANUALNOTIFICATION") + MWFJC9 dateformanualnotification(java.util.Date dateformanualnotification); + @Parameter(name = "DAYOFWAKEUP") + MWFJC9 dayofwakeup(String dayofwakeup); + @Parameter(name = "EMAILOFRECEIVER") + MWFJC9 emailofreceiver(String emailofreceiver); + @Parameter(name = "EMAILOFSENDER") + MWFJC9 emailofsender(String emailofsender); + @Parameter(name = "EMAILSUBJECT") + MWFJC9 emailsubject(String emailsubject); + @Parameter(name = "ENDDATEOFRECURRENCE") + MWFJC9 enddateofrecurrence(java.util.Date enddateofrecurrence); + @Parameter(name = "HIDEFROMCLIENT") + MWFJC9 hidefromclient(Boolean hidefromclient); + @Parameter(name = "ICO") + MWFJC9 ico(String ico); + @Parameter(name = "KINDOFTASK") + MWFJC9 kindoftask(String kindoftask); + @Parameter(name = "OBJECTID") + MWFJC9 objectid(String objectid); + @Parameter(name = "OBJECTIDTYPE") + MWFJC9 objectidtype(String objectidtype); + @Parameter(name = "OUTERSOLVER") + MWFJC9 outersolver(String outersolver); + @Parameter(name = "PARENTID") + MWFJC9 parentid(String parentid); + @Parameter(name = "PRIORITY") + MWFJC9 priority(String priority); + @Parameter(name = "PROCESSINGDATE") + MWFJC9 processingdate(java.util.Date processingdate); + @Parameter(name = "PROCESSINGDAYSLIMIT") + MWFJC9 processingdayslimit(Long processingdayslimit); + @Parameter(name = "PROCESSINGTIMELIMIT") + MWFJC9 processingtimelimit(Long processingtimelimit); + @Parameter(name = "RECURRENCEPATTERN") + MWFJC9 recurrencepattern(String recurrencepattern); + @Parameter(name = "REPEATINGTASK") + MWFJC9 repeatingtask(Boolean repeatingtask); + @Parameter(name = "REPEATINGTASKID") + MWFJC9 repeatingtaskid(String repeatingtaskid); + @Parameter(name = "REQUESTEDDATE") + MWFJC9 requesteddate(java.util.Date requesteddate); + @Parameter(name = "REQUESTEDDAYSLIMIT") + MWFJC9 requesteddayslimit(Long requesteddayslimit); + @Parameter(name = "RESOLVER") + MWFJC9 resolver(String resolver); + @Parameter(name = "RESOLVERSGROUP") + MWFJC9 resolversgroup(String resolversgroup); + @Parameter(name = "RESULTINGDATE") + MWFJC9 resultingdate(java.util.Date resultingdate); + @Parameter(name = "SEGMENT") + MWFJC9 segment(String segment); + @Parameter(name = "SENDEMAIL") + MWFJC9 sendemail(Long sendemail); + @Parameter(name = "SEQUENTIALNUMBER") + MWFJC9 sequentialnumber(Long sequentialnumber); + @Parameter(name = "SETESCALATION") + MWFJC9 setescalation(Boolean setescalation); + @Parameter(name = "SETREQUESTEDDATEFORESCALATION") + MWFJC9 setrequesteddateforescalation(Boolean setrequesteddateforescalation); + @Parameter(name = "SOURCESYSTEM") + MWFJC9 sourcesystem(String sourcesystem); + @Parameter(name = "STARTDATEOFRECURRENCE") + MWFJC9 startdateofrecurrence(java.util.Date startdateofrecurrence); + @Parameter(name = "TASKCATEGORY") + MWFJC9 taskcategory(String taskcategory); + @Parameter(name = "TASKDESCRIPTION") + MWFJC9 taskdescription(String taskdescription); + @Parameter(name = "TASKENDDATE") + MWFJC9 taskenddate(java.util.Date taskenddate); + @Parameter(name = "TASKESCALATIONEMAIL") + MWFJC9 taskescalationemail(String taskescalationemail); + @Parameter(name = "TASKID") + MWFJC9 taskid(String taskid); + @Parameter(name = "TASKNAME") + MWFJC9 taskname(String taskname); + @Parameter(name = "TASKNOTIFICATIONEMAIL") + MWFJC9 tasknotificationemail(String tasknotificationemail); + @Parameter(name = "TASKSTARTDATE") + MWFJC9 taskstartdate(java.util.Date taskstartdate); + @Parameter(name = "TASKSUBCATEGORY") + MWFJC9 tasksubcategory(String tasksubcategory); + @Parameter(name = "TASKTYPE") + MWFJC9 tasktype(String tasktype); + @Parameter(name = "TMSGROUPID") + MWFJC9 tmsgroupid(String tmsgroupid); + @Parameter(name = "USERFLAG") + MWFJC9 userflag(Long userflag); + @Parameter(name = "USERSCHOICE") + MWFJC9 userschoice(String userschoice); + @Parameter(name = "VERIFYINGTIME") + MWFJC9 verifyingtime(Long verifyingtime); + @Parameter(name = "VERIFYINGUSER") + MWFJC9 verifyinguser(String verifyinguser); + @Parameter(name = "WAKEUPTIME") + MWFJC9 wakeuptime(java.util.Date wakeuptime); + @Parameter(name = "WORKINGTIMEFROM") + MWFJC9 workingtimefrom(Long workingtimefrom); + @Parameter(name = "WORKINGTIMETO") + MWFJC9 workingtimeto(Long workingtimeto); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJC9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJC9Response.java new file mode 100644 index 0000000..fbe9d51 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJC9Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJC9Response { + + @Parameter(name = "WFID") + String wfid(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD0.java new file mode 100644 index 0000000..e2b906c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD0.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJD0 extends MwfRequest { + + @Parameter(name = "LOCK") + MWFJD0 lock(Boolean lock); + @Parameter(name = "TKIID") + MWFJD0 tkiid(String tkiid); + @Parameter(name = "WFID") + MWFJD0 wfid(String wfid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD0Response.java new file mode 100644 index 0000000..a1f4370 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD0Response.java @@ -0,0 +1,309 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJD0Response { + + @Parameter(name = "APPLICANT") + String applicant(); + + @Parameter(name = "APPLICANTGROUP") + String applicantgroup(); + + @Parameter(name = "ATTRIBUTE1") + String attribute1(); + + @Parameter(name = "ATTRIBUTE10") + String attribute10(); + + @Parameter(name = "ATTRIBUTE11") + String attribute11(); + + @Parameter(name = "ATTRIBUTE12") + String attribute12(); + + @Parameter(name = "ATTRIBUTE13") + String attribute13(); + + @Parameter(name = "ATTRIBUTE14") + String attribute14(); + + @Parameter(name = "ATTRIBUTE15") + String attribute15(); + + @Parameter(name = "ATTRIBUTE16") + String attribute16(); + + @Parameter(name = "ATTRIBUTE17") + String attribute17(); + + @Parameter(name = "ATTRIBUTE18") + String attribute18(); + + @Parameter(name = "ATTRIBUTE19") + String attribute19(); + + @Parameter(name = "ATTRIBUTE2") + String attribute2(); + + @Parameter(name = "ATTRIBUTE20") + String attribute20(); + + @Parameter(name = "ATTRIBUTE3") + String attribute3(); + + @Parameter(name = "ATTRIBUTE4") + String attribute4(); + + @Parameter(name = "ATTRIBUTE5") + String attribute5(); + + @Parameter(name = "ATTRIBUTE6") + String attribute6(); + + @Parameter(name = "ATTRIBUTE7") + String attribute7(); + + @Parameter(name = "ATTRIBUTE8") + String attribute8(); + + @Parameter(name = "ATTRIBUTE9") + String attribute9(); + + @Parameter(name = "AUTOMATPROCESSINGTIME") + Long automatprocessingtime(); + + @Parameter(name = "BIRTHNUMBER") + String birthnumber(); + + @Parameter(name = "BRANCHID") + String branchid(); + + @Parameter(name = "BUSSTATE") + String busstate(); + + @Parameter(name = "CALCULATEDWAKEUPTIME") + java.util.Date calculatedwakeuptime(); + + @Parameter(name = "CLIENTID") + String clientid(); + + @Parameter(name = "CLIENTIDTYPE") + String clientidtype(); + + @Parameter(name = "COMPANY") + String company(); + + @Parameter(name = "CONTAINMENT_CTX_ID") + String containmentCtxId(); + + @Parameter(name = "COUNTOFOCCURENCES") + Long countofoccurences(); + + @Parameter(name = "COUNTOFSUBTASKS") + Long countofsubtasks(); + + @Parameter(name = "DATEFORMANUALNOTIFICATION") + java.util.Date dateformanualnotification(); + + @Parameter(name = "DAYOFWAKEUP") + String dayofwakeup(); + + @Parameter(name = "EMAILOFRECEIVER") + String emailofreceiver(); + + @Parameter(name = "EMAILOFSENDER") + String emailofsender(); + + @Parameter(name = "EMAILSUBJECT") + String emailsubject(); + + @Parameter(name = "ENDDATEOFRECURRENCE") + java.util.Date enddateofrecurrence(); + + @Parameter(name = "ERRORFLAG") + Boolean errorflag(); + + @Parameter(name = "ERRORMESSAGE") + String errormessage(); + + @Parameter(name = "ERRORMWFFLAG") + Boolean errormwfflag(); + + @Parameter(name = "EXPIRES") + java.util.Date expires(); + + @Parameter(name = "FIRST_ACTIVATED") + java.util.Date firstActivated(); + + @Parameter(name = "HIDEFROMCLIENT") + Boolean hidefromclient(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "IS_ESCALATED") + Boolean isEscalated(); + + @Parameter(name = "KINDOFTASK") + String kindoftask(); + + @Parameter(name = "LAST_MODIFIED") + java.util.Date lastModified(); + + @Parameter(name = "LAST_STATE_CHANGE") + java.util.Date lastStateChange(); + + @Parameter(name = "LEVEL") + Long level(); + + @Parameter(name = "MANUALPROCESSINGTIME") + Long manualprocessingtime(); + + @Parameter(name = "NAME") + String name(); + + @Parameter(name = "OBJECTID") + String objectid(); + + @Parameter(name = "OBJECTIDTYPE") + String objectidtype(); + + @Parameter(name = "OUTERSOLVER") + String outersolver(); + + @Parameter(name = "OWNER") + String owner(); + + @Parameter(name = "PARENTID") + String parentid(); + + @Parameter(name = "PRIORITY") + String priority(); + + @Parameter(name = "PROCESSINGDATE") + java.util.Date processingdate(); + + @Parameter(name = "PROCESSINGDAYSLIMIT") + Long processingdayslimit(); + + @Parameter(name = "PROCESSINGTIMELIMIT") + Long processingtimelimit(); + + @Parameter(name = "RECURRENCEPATTERN") + String recurrencepattern(); + + @Parameter(name = "REPEATCOUNTER") + Long repeatcounter(); + + @Parameter(name = "REPEATINGTASK") + Boolean repeatingtask(); + + @Parameter(name = "REPEATINGTASKID") + String repeatingtaskid(); + + @Parameter(name = "REQUESTEDDATE") + java.util.Date requesteddate(); + + @Parameter(name = "REQUESTEDDAYSLIMIT") + Long requesteddayslimit(); + + @Parameter(name = "RESOLVER") + String resolver(); + + @Parameter(name = "RESOLVERSGROUP") + String resolversgroup(); + + @Parameter(name = "RESULTINGDATE") + java.util.Date resultingdate(); + + @Parameter(name = "ROOTPARENTID") + String rootparentid(); + + @Parameter(name = "SEGMENT") + String segment(); + + @Parameter(name = "SENDEMAIL") + Long sendemail(); + + @Parameter(name = "SEQUENTIALNUMBER") + Long sequentialnumber(); + + @Parameter(name = "SETESCALATION") + Boolean setescalation(); + + @Parameter(name = "SETREQUESTEDDATEFORESCALATION") + Boolean setrequesteddateforescalation(); + + @Parameter(name = "SOURCESYSTEM") + String sourcesystem(); + + @Parameter(name = "STARTDATEOFRECURRENCE") + java.util.Date startdateofrecurrence(); + + @Parameter(name = "STATE") + String state(); + + @Parameter(name = "SUSPENDED") + Boolean suspended(); + + @Parameter(name = "TASKCATEGORY") + String taskcategory(); + + @Parameter(name = "TASKDESCRIPTION") + String taskdescription(); + + @Parameter(name = "TASKENDDATE") + java.util.Date taskenddate(); + + @Parameter(name = "TASKID") + String taskid(); + + @Parameter(name = "TASKNAME") + String taskname(); + + @Parameter(name = "TASKSOLUTION") + String tasksolution(); + + @Parameter(name = "TASKSTARTDATE") + java.util.Date taskstartdate(); + + @Parameter(name = "TASKSUBCATEGORY") + String tasksubcategory(); + + @Parameter(name = "TASKTYPE") + String tasktype(); + + @Parameter(name = "TKIID") + String tkiid(); + + @Parameter(name = "TMSGROUPID") + String tmsgroupid(); + + @Parameter(name = "USERFLAG") + Long userflag(); + + @Parameter(name = "USERSCHOICE") + String userschoice(); + + @Parameter(name = "VERIFYINGTIME") + Long verifyingtime(); + + @Parameter(name = "VERIFYINGUSER") + String verifyinguser(); + + @Parameter(name = "WAKEUPTIME") + java.util.Date wakeuptime(); + + @Parameter(name = "WFID") + String wfid(); + + @Parameter(name = "WORKINGTIMEFROM") + Long workingtimefrom(); + + @Parameter(name = "WORKINGTIMETO") + Long workingtimeto(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD2.java new file mode 100644 index 0000000..c5c07aa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD2.java @@ -0,0 +1,170 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJD2 extends MwfRequest { + + @Parameter(name = "APPLICANT") + MWFJD2 applicant(String applicant); + @Parameter(name = "APPLICANTGROUP") + MWFJD2 applicantgroup(String applicantgroup); + @Parameter(name = "ATTRIBUTE1") + MWFJD2 attribute1(String attribute1); + @Parameter(name = "ATTRIBUTE10") + MWFJD2 attribute10(String attribute10); + @Parameter(name = "ATTRIBUTE11") + MWFJD2 attribute11(String attribute11); + @Parameter(name = "ATTRIBUTE12") + MWFJD2 attribute12(String attribute12); + @Parameter(name = "ATTRIBUTE13") + MWFJD2 attribute13(String attribute13); + @Parameter(name = "ATTRIBUTE14") + MWFJD2 attribute14(String attribute14); + @Parameter(name = "ATTRIBUTE15") + MWFJD2 attribute15(String attribute15); + @Parameter(name = "ATTRIBUTE16") + MWFJD2 attribute16(String attribute16); + @Parameter(name = "ATTRIBUTE17") + MWFJD2 attribute17(String attribute17); + @Parameter(name = "ATTRIBUTE18") + MWFJD2 attribute18(String attribute18); + @Parameter(name = "ATTRIBUTE19") + MWFJD2 attribute19(String attribute19); + @Parameter(name = "ATTRIBUTE2") + MWFJD2 attribute2(String attribute2); + @Parameter(name = "ATTRIBUTE20") + MWFJD2 attribute20(String attribute20); + @Parameter(name = "ATTRIBUTE3") + MWFJD2 attribute3(String attribute3); + @Parameter(name = "ATTRIBUTE4") + MWFJD2 attribute4(String attribute4); + @Parameter(name = "ATTRIBUTE5") + MWFJD2 attribute5(String attribute5); + @Parameter(name = "ATTRIBUTE6") + MWFJD2 attribute6(String attribute6); + @Parameter(name = "ATTRIBUTE7") + MWFJD2 attribute7(String attribute7); + @Parameter(name = "ATTRIBUTE8") + MWFJD2 attribute8(String attribute8); + @Parameter(name = "ATTRIBUTE9") + MWFJD2 attribute9(String attribute9); + @Parameter(name = "BIRTHNUMBER") + MWFJD2 birthnumber(String birthnumber); + @Parameter(name = "BRANCHID") + MWFJD2 branchid(String branchid); + @Parameter(name = "CLIENTID") + MWFJD2 clientid(String clientid); + @Parameter(name = "CLIENTIDTYPE") + MWFJD2 clientidtype(String clientidtype); + @Parameter(name = "COMPANY") + MWFJD2 company(String company); + @Parameter(name = "COUNTOFOCCURENCES") + MWFJD2 countofoccurences(Long countofoccurences); + @Parameter(name = "COUNTOFSUBTASKS") + MWFJD2 countofsubtasks(Long countofsubtasks); + @Parameter(name = "DATEFORMANUALNOTIFICATION") + MWFJD2 dateformanualnotification(java.util.Date dateformanualnotification); + @Parameter(name = "DAYOFWAKEUP") + MWFJD2 dayofwakeup(String dayofwakeup); + @Parameter(name = "EMAILOFRECEIVER") + MWFJD2 emailofreceiver(String emailofreceiver); + @Parameter(name = "EMAILOFSENDER") + MWFJD2 emailofsender(String emailofsender); + @Parameter(name = "EMAILSUBJECT") + MWFJD2 emailsubject(String emailsubject); + @Parameter(name = "ENDDATEOFRECURRENCE") + MWFJD2 enddateofrecurrence(java.util.Date enddateofrecurrence); + @Parameter(name = "HIDEFROMCLIENT") + MWFJD2 hidefromclient(Boolean hidefromclient); + @Parameter(name = "ICO") + MWFJD2 ico(String ico); + @Parameter(name = "KINDOFTASK") + MWFJD2 kindoftask(String kindoftask); + @Parameter(name = "LEVEL") + MWFJD2 level(Long level); + @Parameter(name = "OBJECTID") + MWFJD2 objectid(String objectid); + @Parameter(name = "OBJECTIDTYPE") + MWFJD2 objectidtype(String objectidtype); + @Parameter(name = "OUTERSOLVER") + MWFJD2 outersolver(String outersolver); + @Parameter(name = "PARENTID") + MWFJD2 parentid(String parentid); + @Parameter(name = "PRIORITY") + MWFJD2 priority(String priority); + @Parameter(name = "PROCESSINGDATE") + MWFJD2 processingdate(java.util.Date processingdate); + @Parameter(name = "PROCESSINGDAYSLIMIT") + MWFJD2 processingdayslimit(Long processingdayslimit); + @Parameter(name = "PROCESSINGTIMELIMIT") + MWFJD2 processingtimelimit(Long processingtimelimit); + @Parameter(name = "RECURRENCEPATTERN") + MWFJD2 recurrencepattern(String recurrencepattern); + @Parameter(name = "REPEATCOUNTER") + MWFJD2 repeatcounter(Long repeatcounter); + @Parameter(name = "REPEATINGTASK") + MWFJD2 repeatingtask(Boolean repeatingtask); + @Parameter(name = "REPEATINGTASKID") + MWFJD2 repeatingtaskid(String repeatingtaskid); + @Parameter(name = "REQUESTEDDATE") + MWFJD2 requesteddate(java.util.Date requesteddate); + @Parameter(name = "REQUESTEDDAYSLIMIT") + MWFJD2 requesteddayslimit(Long requesteddayslimit); + @Parameter(name = "RESOLVER") + MWFJD2 resolver(String resolver); + @Parameter(name = "RESOLVERSGROUP") + MWFJD2 resolversgroup(String resolversgroup); + @Parameter(name = "RESULTINGDATE") + MWFJD2 resultingdate(java.util.Date resultingdate); + @Parameter(name = "ROOTPARENTID") + MWFJD2 rootparentid(String rootparentid); + @Parameter(name = "SEGMENT") + MWFJD2 segment(String segment); + @Parameter(name = "SENDEMAIL") + MWFJD2 sendemail(Long sendemail); + @Parameter(name = "SEQUENTIALNUMBER") + MWFJD2 sequentialnumber(Long sequentialnumber); + @Parameter(name = "SETESCALATION") + MWFJD2 setescalation(Boolean setescalation); + @Parameter(name = "SETREQUESTEDDATEFORESCALATION") + MWFJD2 setrequesteddateforescalation(Boolean setrequesteddateforescalation); + @Parameter(name = "SOURCESYSTEM") + MWFJD2 sourcesystem(String sourcesystem); + @Parameter(name = "STARTDATEOFRECURRENCE") + MWFJD2 startdateofrecurrence(java.util.Date startdateofrecurrence); + @Parameter(name = "TASKCATEGORY") + MWFJD2 taskcategory(String taskcategory); + @Parameter(name = "TASKDESCRIPTION") + MWFJD2 taskdescription(String taskdescription); + @Parameter(name = "TASKENDDATE") + MWFJD2 taskenddate(java.util.Date taskenddate); + @Parameter(name = "TASKID") + MWFJD2 taskid(String taskid); + @Parameter(name = "TASKNAME") + MWFJD2 taskname(String taskname); + @Parameter(name = "TASKSOLUTION") + MWFJD2 tasksolution(String tasksolution); + @Parameter(name = "TASKSTARTDATE") + MWFJD2 taskstartdate(java.util.Date taskstartdate); + @Parameter(name = "TASKSUBCATEGORY") + MWFJD2 tasksubcategory(String tasksubcategory); + @Parameter(name = "TASKTYPE") + MWFJD2 tasktype(String tasktype); + @Parameter(name = "TKIID") + MWFJD2 tkiid(String tkiid); + @Parameter(name = "TMSGROUPID") + MWFJD2 tmsgroupid(String tmsgroupid); + @Parameter(name = "USERFLAG") + MWFJD2 userflag(Long userflag); + @Parameter(name = "USERSCHOICE") + MWFJD2 userschoice(String userschoice); + @Parameter(name = "VERIFYINGTIME") + MWFJD2 verifyingtime(Long verifyingtime); + @Parameter(name = "VERIFYINGUSER") + MWFJD2 verifyinguser(String verifyinguser); + @Parameter(name = "WORKINGTIMEFROM") + MWFJD2 workingtimefrom(Long workingtimefrom); + @Parameter(name = "WORKINGTIMETO") + MWFJD2 workingtimeto(Long workingtimeto); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD2Response.java new file mode 100644 index 0000000..ce9966a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD2Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJD2Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD3.java new file mode 100644 index 0000000..ce03c77 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD3.java @@ -0,0 +1,138 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJD3 extends MwfRequest { + + @Parameter(name = "DATATYPE0") + MWFJD3 datatype0(String datatype0); + @Parameter(name = "DATATYPE1") + MWFJD3 datatype1(String datatype1); + @Parameter(name = "DATATYPE10") + MWFJD3 datatype10(String datatype10); + @Parameter(name = "DATATYPE11") + MWFJD3 datatype11(String datatype11); + @Parameter(name = "DATATYPE12") + MWFJD3 datatype12(String datatype12); + @Parameter(name = "DATATYPE13") + MWFJD3 datatype13(String datatype13); + @Parameter(name = "DATATYPE14") + MWFJD3 datatype14(String datatype14); + @Parameter(name = "DATATYPE2") + MWFJD3 datatype2(String datatype2); + @Parameter(name = "DATATYPE3") + MWFJD3 datatype3(String datatype3); + @Parameter(name = "DATATYPE4") + MWFJD3 datatype4(String datatype4); + @Parameter(name = "DATATYPE5") + MWFJD3 datatype5(String datatype5); + @Parameter(name = "DATATYPE6") + MWFJD3 datatype6(String datatype6); + @Parameter(name = "DATATYPE7") + MWFJD3 datatype7(String datatype7); + @Parameter(name = "DATATYPE8") + MWFJD3 datatype8(String datatype8); + @Parameter(name = "DATATYPE9") + MWFJD3 datatype9(String datatype9); + @Parameter(name = "GLOBAL_OPERATOR") + MWFJD3 globalOperator(String globalOperator); + @Parameter(name = "ITEM_FIRST") + MWFJD3 itemFirst(Long itemFirst); + @Parameter(name = "ITEM_LAST") + MWFJD3 itemLast(Long itemLast); + @Parameter(name = "OPERAND0") + MWFJD3 operand0(String operand0); + @Parameter(name = "OPERAND1") + MWFJD3 operand1(String operand1); + @Parameter(name = "OPERAND10") + MWFJD3 operand10(String operand10); + @Parameter(name = "OPERAND11") + MWFJD3 operand11(String operand11); + @Parameter(name = "OPERAND12") + MWFJD3 operand12(String operand12); + @Parameter(name = "OPERAND13") + MWFJD3 operand13(String operand13); + @Parameter(name = "OPERAND14") + MWFJD3 operand14(String operand14); + @Parameter(name = "OPERAND2") + MWFJD3 operand2(String operand2); + @Parameter(name = "OPERAND3") + MWFJD3 operand3(String operand3); + @Parameter(name = "OPERAND4") + MWFJD3 operand4(String operand4); + @Parameter(name = "OPERAND5") + MWFJD3 operand5(String operand5); + @Parameter(name = "OPERAND6") + MWFJD3 operand6(String operand6); + @Parameter(name = "OPERAND7") + MWFJD3 operand7(String operand7); + @Parameter(name = "OPERAND8") + MWFJD3 operand8(String operand8); + @Parameter(name = "OPERAND9") + MWFJD3 operand9(String operand9); + @Parameter(name = "OPERATOR0") + MWFJD3 operator0(String operator0); + @Parameter(name = "OPERATOR1") + MWFJD3 operator1(String operator1); + @Parameter(name = "OPERATOR10") + MWFJD3 operator10(String operator10); + @Parameter(name = "OPERATOR11") + MWFJD3 operator11(String operator11); + @Parameter(name = "OPERATOR12") + MWFJD3 operator12(String operator12); + @Parameter(name = "OPERATOR13") + MWFJD3 operator13(String operator13); + @Parameter(name = "OPERATOR14") + MWFJD3 operator14(String operator14); + @Parameter(name = "OPERATOR2") + MWFJD3 operator2(String operator2); + @Parameter(name = "OPERATOR3") + MWFJD3 operator3(String operator3); + @Parameter(name = "OPERATOR4") + MWFJD3 operator4(String operator4); + @Parameter(name = "OPERATOR5") + MWFJD3 operator5(String operator5); + @Parameter(name = "OPERATOR6") + MWFJD3 operator6(String operator6); + @Parameter(name = "OPERATOR7") + MWFJD3 operator7(String operator7); + @Parameter(name = "OPERATOR8") + MWFJD3 operator8(String operator8); + @Parameter(name = "OPERATOR9") + MWFJD3 operator9(String operator9); + @Parameter(name = "ORDERBY") + MWFJD3 orderby(String orderby); + @Parameter(name = "STATE") + MWFJD3 state(String state); + @Parameter(name = "VALUE0") + MWFJD3 value0(String value0); + @Parameter(name = "VALUE1") + MWFJD3 value1(String value1); + @Parameter(name = "VALUE10") + MWFJD3 value10(String value10); + @Parameter(name = "VALUE11") + MWFJD3 value11(String value11); + @Parameter(name = "VALUE12") + MWFJD3 value12(String value12); + @Parameter(name = "VALUE13") + MWFJD3 value13(String value13); + @Parameter(name = "VALUE14") + MWFJD3 value14(String value14); + @Parameter(name = "VALUE2") + MWFJD3 value2(String value2); + @Parameter(name = "VALUE3") + MWFJD3 value3(String value3); + @Parameter(name = "VALUE4") + MWFJD3 value4(String value4); + @Parameter(name = "VALUE5") + MWFJD3 value5(String value5); + @Parameter(name = "VALUE6") + MWFJD3 value6(String value6); + @Parameter(name = "VALUE7") + MWFJD3 value7(String value7); + @Parameter(name = "VALUE8") + MWFJD3 value8(String value8); + @Parameter(name = "VALUE9") + MWFJD3 value9(String value9); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD3Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD3Data.java new file mode 100644 index 0000000..c801e19 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD3Data.java @@ -0,0 +1,437 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFJD3Data { + + private Map params; + + public MWFJD3Data(Map params) { + this.params = params; + } + + public String rsWfid() { + return (String) params.get("RS_WFID"); + } + + public String rsParentid() { + return (String) params.get("RS_PARENTID"); + } + + public String rsRootparentid() { + return (String) params.get("RS_ROOTPARENTID"); + } + + public Long rsLvl() { + return (Long) params.get("RS_LVL"); + } + + public String rsRepeatingtaskid() { + return (String) params.get("RS_REPEATINGTASKID"); + } + + public Long rsSequentialnumber() { + return (Long) params.get("RS_SEQUENTIALNUMBER"); + } + + public String rsTaskname() { + return (String) params.get("RS_TASKNAME"); + } + + public String rsKindoftask() { + return (String) params.get("RS_KINDOFTASK"); + } + + public String rsTaskcategory() { + return (String) params.get("RS_TASKCATEGORY"); + } + + public String rsTasktype() { + return (String) params.get("RS_TASKTYPE"); + } + + public String rsBusstate() { + return (String) params.get("RS_BUSSTATE"); + } + + public String rsTprio() { + return (String) params.get("RS_TPRIO"); + } + + public String rsApplicant() { + return (String) params.get("RS_APPLICANT"); + } + + public String rsResolversgroup() { + return (String) params.get("RS_RESOLVERSGROUP"); + } + + public String rsResolver() { + return (String) params.get("RS_RESOLVER"); + } + + public java.util.Date rsTaskstartdate() { + return (java.util.Date) params.get("RS_TASKSTARTDATE"); + } + + public java.util.Date rsTaskenddate() { + return (java.util.Date) params.get("RS_TASKENDDATE"); + } + + public java.util.Date rsRequesteddate() { + return (java.util.Date) params.get("RS_REQUESTEDDATE"); + } + + public Long rsRequesteddayslimit() { + return (Long) params.get("RS_REQUESTEDDAYSLIMIT"); + } + + public java.util.Date rsProcessingdate() { + return (java.util.Date) params.get("RS_PROCESSINGDATE"); + } + + public Long rsProcessingdayslimit() { + return (Long) params.get("RS_PROCESSINGDAYSLIMIT"); + } + + public String rsSourcesystem() { + return (String) params.get("RS_SOURCESYSTEM"); + } + + public String rsCompany() { + return (String) params.get("RS_COMPANY"); + } + + public String rsProjectactivity() { + return (String) params.get("RS_PROJECTACTIVITY"); + } + + public String rsTaskdescription() { + return (String) params.get("RS_TASKDESCRIPTION"); + } + + public String rsClientid() { + return (String) params.get("RS_CLIENTID"); + } + + public String rsContractnumber() { + return (String) params.get("RS_CONTRACTNUMBER"); + } + + public String rsProduct() { + return (String) params.get("RS_PRODUCT"); + } + + public Boolean rsHidefromclient() { + return (Boolean) params.get("RS_HIDEFROMCLIENT"); + } + + public Long rsCountofsubtasks() { + return (Long) params.get("RS_COUNTOFSUBTASKS"); + } + + public Boolean rsRepeatingtask() { + return (Boolean) params.get("RS_REPEATINGTASK"); + } + + public Long rsCountofoccurences() { + return (Long) params.get("RS_COUNTOFOCCURENCES"); + } + + public String rsRecurrencepattern() { + return (String) params.get("RS_RECURRENCEPATTERN"); + } + + public Long rsSendemail() { + return (Long) params.get("RS_SENDEMAIL"); + } + + public java.util.Date rsStartdateofrecurrence() { + return (java.util.Date) params.get("RS_STARTDATEOFRECURRENCE"); + } + + public java.util.Date rsEnddateofrecurrence() { + return (java.util.Date) params.get("RS_ENDDATEOFRECURRENCE"); + } + + public String rsDayofwakeup() { + return (String) params.get("RS_DAYOFWAKEUP"); + } + + public Long rsRepeatcounter() { + return (Long) params.get("RS_REPEATCOUNTER"); + } + + public java.util.Date rsDateformanualnotification() { + return (java.util.Date) params.get("RS_DATEFORMANUALNOTIFICATION"); + } + + public String rsUserschoice() { + return (String) params.get("RS_USERSCHOICE"); + } + + public String rsVerifyinguser() { + return (String) params.get("RS_VERIFYINGUSER"); + } + + public Long rsManualprocessingtime() { + return (Long) params.get("RS_MANUALPROCESSINGTIME"); + } + + public java.util.Date rsCalculatedwakeuptime() { + return (java.util.Date) params.get("RS_CALCULATEDWAKEUPTIME"); + } + + public Long rsAutomatprocessingtime() { + return (Long) params.get("RS_AUTOMATPROCESSINGTIME"); + } + + public java.util.Date rsWakeuptime() { + return (java.util.Date) params.get("RS_WAKEUPTIME"); + } + + public String rsAttribute1() { + return (String) params.get("RS_ATTRIBUTE1"); + } + + public String rsAttribute2() { + return (String) params.get("RS_ATTRIBUTE2"); + } + + public String rsAttribute3() { + return (String) params.get("RS_ATTRIBUTE3"); + } + + public String rsAttribute4() { + return (String) params.get("RS_ATTRIBUTE4"); + } + + public String rsAttribute5() { + return (String) params.get("RS_ATTRIBUTE5"); + } + + public String rsAttribute6() { + return (String) params.get("RS_ATTRIBUTE6"); + } + + public String rsAttribute7() { + return (String) params.get("RS_ATTRIBUTE7"); + } + + public String rsAttribute8() { + return (String) params.get("RS_ATTRIBUTE8"); + } + + public String rsAttribute9() { + return (String) params.get("RS_ATTRIBUTE9"); + } + + public String rsAttribute10() { + return (String) params.get("RS_ATTRIBUTE10"); + } + + public String rsTaskid() { + return (String) params.get("RS_TASKID"); + } + + public String rsTkiid() { + return (String) params.get("RS_TKIID"); + } + + public java.util.Date rsLastModified() { + return (java.util.Date) params.get("RS_LAST_MODIFIED"); + } + + public java.util.Date rsExpires() { + return (java.util.Date) params.get("RS_EXPIRES"); + } + + public Boolean rsSuspended() { + return (Boolean) params.get("RS_SUSPENDED"); + } + + public Boolean rsIsEscalated() { + return (Boolean) params.get("RS_IS_ESCALATED"); + } + + public java.util.Date rsFirstActivated() { + return (java.util.Date) params.get("RS_FIRST_ACTIVATED"); + } + + public String rsEmailofsender() { + return (String) params.get("RS_EMAILOFSENDER"); + } + + public String rsState() { + return (String) params.get("RS_STATE"); + } + + public String rsEmailsubject() { + return (String) params.get("RS_EMAILSUBJECT"); + } + + public String rsEmailofreceiver() { + return (String) params.get("RS_EMAILOFRECEIVER"); + } + + public String rsContainmentCtxId() { + return (String) params.get("RS_CONTAINMENT_CTX_ID"); + } + + public java.util.Date rsResultingdate() { + return (java.util.Date) params.get("RS_RESULTINGDATE"); + } + + public String rsName() { + return (String) params.get("RS_NAME"); + } + + public Long rsCasescount() { + return (Long) params.get("RS_CASESCOUNT"); + } + + public String rsOwner() { + return (String) params.get("RS_OWNER"); + } + + public String rsOutersolver() { + return (String) params.get("RS_OUTERSOLVER"); + } + + public Long rsSetescalation() { + return (Long) params.get("RS_SETESCALATION"); + } + + public String rsClientidtype() { + return (String) params.get("RS_CLIENTIDTYPE"); + } + + public java.util.Date rsLastStateChange() { + return (java.util.Date) params.get("RS_LAST_STATE_CHANGE"); + } + + public String rsSegment() { + return (String) params.get("RS_SEGMENT"); + } + + public Long rsSetrequesteddateforescalation() { + return (Long) params.get("RS_SETREQUESTEDDATEFORESCALATION"); + } + + public String rsErrormessage() { + return (String) params.get("RS_ERRORMESSAGE"); + } + + public String rsErrorflag() { + return (String) params.get("RS_ERRORFLAG"); + } + + public String rsNextstage() { + return (String) params.get("RS_NEXTSTAGE"); + } + + public String rsErrormwfflag() { + return (String) params.get("RS_ERRORMWFFLAG"); + } + + public String rsRequestedaction() { + return (String) params.get("RS_REQUESTEDACTION"); + } + + public java.util.Date rsHistorydate() { + return (java.util.Date) params.get("RS_HISTORYDATE"); + } + + public String rsAttribute11() { + return (String) params.get("RS_ATTRIBUTE11"); + } + + public String rsAttribute12() { + return (String) params.get("RS_ATTRIBUTE12"); + } + + public String rsAttribute13() { + return (String) params.get("RS_ATTRIBUTE13"); + } + + public String rsAttribute14() { + return (String) params.get("RS_ATTRIBUTE14"); + } + + public String rsAttribute15() { + return (String) params.get("RS_ATTRIBUTE15"); + } + + public String rsAttribute16() { + return (String) params.get("RS_ATTRIBUTE16"); + } + + public String rsAttribute17() { + return (String) params.get("RS_ATTRIBUTE17"); + } + + public String rsAttribute18() { + return (String) params.get("RS_ATTRIBUTE18"); + } + + public String rsAttribute19() { + return (String) params.get("RS_ATTRIBUTE19"); + } + + public String rsAttribute20() { + return (String) params.get("RS_ATTRIBUTE20"); + } + + public String rsOverallstatus() { + return (String) params.get("RS_OVERALLSTATUS"); + } + + public String rsTasksolution() { + return (String) params.get("RS_TASKSOLUTION"); + } + + public String rsUserid() { + return (String) params.get("RS_USERID"); + } + + public String rsIco() { + return (String) params.get("RS_ICO"); + } + + public String rsBirthnumber() { + return (String) params.get("RS_BIRTHNUMBER"); + } + + public String rsTmsgroupid() { + return (String) params.get("RS_TMSGROUPID"); + } + + public String rsProductPopis() { + return (String) params.get("RS_PRODUCT_POPIS"); + } + + public String rsObjectid() { + return (String) params.get("RS_OBJECTID"); + } + + public String rsObjectidtype() { + return (String) params.get("RS_OBJECTIDTYPE"); + } + + public String rsTasksubcategory() { + return (String) params.get("RS_TASKSUBCATEGORY"); + } + + public String rsApplicantgroup() { + return (String) params.get("RS_APPLICANTGROUP"); + } + + public String rsBranchid() { + return (String) params.get("RS_BRANCHID"); + } + + public Long rsUserflag() { + return (Long) params.get("RS_USERFLAG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD3Response.java new file mode 100644 index 0000000..f4dc70d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD3Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJD3Response { + + @Parameter(name = "COUNT") + Long count(); + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD4.java new file mode 100644 index 0000000..7d8bc0d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD4.java @@ -0,0 +1,140 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJD4 extends MwfRequest { + + @Parameter(name = "DATATYPE0") + MWFJD4 datatype0(String datatype0); + @Parameter(name = "DATATYPE1") + MWFJD4 datatype1(String datatype1); + @Parameter(name = "DATATYPE10") + MWFJD4 datatype10(String datatype10); + @Parameter(name = "DATATYPE11") + MWFJD4 datatype11(String datatype11); + @Parameter(name = "DATATYPE12") + MWFJD4 datatype12(String datatype12); + @Parameter(name = "DATATYPE13") + MWFJD4 datatype13(String datatype13); + @Parameter(name = "DATATYPE14") + MWFJD4 datatype14(String datatype14); + @Parameter(name = "DATATYPE2") + MWFJD4 datatype2(String datatype2); + @Parameter(name = "DATATYPE3") + MWFJD4 datatype3(String datatype3); + @Parameter(name = "DATATYPE4") + MWFJD4 datatype4(String datatype4); + @Parameter(name = "DATATYPE5") + MWFJD4 datatype5(String datatype5); + @Parameter(name = "DATATYPE6") + MWFJD4 datatype6(String datatype6); + @Parameter(name = "DATATYPE7") + MWFJD4 datatype7(String datatype7); + @Parameter(name = "DATATYPE8") + MWFJD4 datatype8(String datatype8); + @Parameter(name = "DATATYPE9") + MWFJD4 datatype9(String datatype9); + @Parameter(name = "GLOBAL_OPERATOR") + MWFJD4 globalOperator(String globalOperator); + @Parameter(name = "ITEM_FIRST") + MWFJD4 itemFirst(Long itemFirst); + @Parameter(name = "ITEM_LAST") + MWFJD4 itemLast(Long itemLast); + @Parameter(name = "LOCKTASK") + MWFJD4 locktask(Long locktask); + @Parameter(name = "OPERAND0") + MWFJD4 operand0(String operand0); + @Parameter(name = "OPERAND1") + MWFJD4 operand1(String operand1); + @Parameter(name = "OPERAND10") + MWFJD4 operand10(String operand10); + @Parameter(name = "OPERAND11") + MWFJD4 operand11(String operand11); + @Parameter(name = "OPERAND12") + MWFJD4 operand12(String operand12); + @Parameter(name = "OPERAND13") + MWFJD4 operand13(String operand13); + @Parameter(name = "OPERAND14") + MWFJD4 operand14(String operand14); + @Parameter(name = "OPERAND2") + MWFJD4 operand2(String operand2); + @Parameter(name = "OPERAND3") + MWFJD4 operand3(String operand3); + @Parameter(name = "OPERAND4") + MWFJD4 operand4(String operand4); + @Parameter(name = "OPERAND5") + MWFJD4 operand5(String operand5); + @Parameter(name = "OPERAND6") + MWFJD4 operand6(String operand6); + @Parameter(name = "OPERAND7") + MWFJD4 operand7(String operand7); + @Parameter(name = "OPERAND8") + MWFJD4 operand8(String operand8); + @Parameter(name = "OPERAND9") + MWFJD4 operand9(String operand9); + @Parameter(name = "OPERATOR0") + MWFJD4 operator0(String operator0); + @Parameter(name = "OPERATOR1") + MWFJD4 operator1(String operator1); + @Parameter(name = "OPERATOR10") + MWFJD4 operator10(String operator10); + @Parameter(name = "OPERATOR11") + MWFJD4 operator11(String operator11); + @Parameter(name = "OPERATOR12") + MWFJD4 operator12(String operator12); + @Parameter(name = "OPERATOR13") + MWFJD4 operator13(String operator13); + @Parameter(name = "OPERATOR14") + MWFJD4 operator14(String operator14); + @Parameter(name = "OPERATOR2") + MWFJD4 operator2(String operator2); + @Parameter(name = "OPERATOR3") + MWFJD4 operator3(String operator3); + @Parameter(name = "OPERATOR4") + MWFJD4 operator4(String operator4); + @Parameter(name = "OPERATOR5") + MWFJD4 operator5(String operator5); + @Parameter(name = "OPERATOR6") + MWFJD4 operator6(String operator6); + @Parameter(name = "OPERATOR7") + MWFJD4 operator7(String operator7); + @Parameter(name = "OPERATOR8") + MWFJD4 operator8(String operator8); + @Parameter(name = "OPERATOR9") + MWFJD4 operator9(String operator9); + @Parameter(name = "ORDERBY") + MWFJD4 orderby(String orderby); + @Parameter(name = "STATE") + MWFJD4 state(String state); + @Parameter(name = "VALUE0") + MWFJD4 value0(String value0); + @Parameter(name = "VALUE1") + MWFJD4 value1(String value1); + @Parameter(name = "VALUE10") + MWFJD4 value10(String value10); + @Parameter(name = "VALUE11") + MWFJD4 value11(String value11); + @Parameter(name = "VALUE12") + MWFJD4 value12(String value12); + @Parameter(name = "VALUE13") + MWFJD4 value13(String value13); + @Parameter(name = "VALUE14") + MWFJD4 value14(String value14); + @Parameter(name = "VALUE2") + MWFJD4 value2(String value2); + @Parameter(name = "VALUE3") + MWFJD4 value3(String value3); + @Parameter(name = "VALUE4") + MWFJD4 value4(String value4); + @Parameter(name = "VALUE5") + MWFJD4 value5(String value5); + @Parameter(name = "VALUE6") + MWFJD4 value6(String value6); + @Parameter(name = "VALUE7") + MWFJD4 value7(String value7); + @Parameter(name = "VALUE8") + MWFJD4 value8(String value8); + @Parameter(name = "VALUE9") + MWFJD4 value9(String value9); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD4Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD4Data.java new file mode 100644 index 0000000..aa1a961 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD4Data.java @@ -0,0 +1,437 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFJD4Data { + + private Map params; + + public MWFJD4Data(Map params) { + this.params = params; + } + + public String rsWfid() { + return (String) params.get("RS_WFID"); + } + + public String rsParentid() { + return (String) params.get("RS_PARENTID"); + } + + public String rsRootparentid() { + return (String) params.get("RS_ROOTPARENTID"); + } + + public Long rsLvl() { + return (Long) params.get("RS_LVL"); + } + + public String rsRepeatingtaskid() { + return (String) params.get("RS_REPEATINGTASKID"); + } + + public Long rsSequentialnumber() { + return (Long) params.get("RS_SEQUENTIALNUMBER"); + } + + public String rsTaskname() { + return (String) params.get("RS_TASKNAME"); + } + + public String rsKindoftask() { + return (String) params.get("RS_KINDOFTASK"); + } + + public String rsTaskcategory() { + return (String) params.get("RS_TASKCATEGORY"); + } + + public String rsTasktype() { + return (String) params.get("RS_TASKTYPE"); + } + + public String rsBusstate() { + return (String) params.get("RS_BUSSTATE"); + } + + public String rsTprio() { + return (String) params.get("RS_TPRIO"); + } + + public String rsApplicant() { + return (String) params.get("RS_APPLICANT"); + } + + public String rsResolversgroup() { + return (String) params.get("RS_RESOLVERSGROUP"); + } + + public String rsResolver() { + return (String) params.get("RS_RESOLVER"); + } + + public java.util.Date rsTaskstartdate() { + return (java.util.Date) params.get("RS_TASKSTARTDATE"); + } + + public java.util.Date rsTaskenddate() { + return (java.util.Date) params.get("RS_TASKENDDATE"); + } + + public java.util.Date rsRequesteddate() { + return (java.util.Date) params.get("RS_REQUESTEDDATE"); + } + + public Long rsRequesteddayslimit() { + return (Long) params.get("RS_REQUESTEDDAYSLIMIT"); + } + + public java.util.Date rsProcessingdate() { + return (java.util.Date) params.get("RS_PROCESSINGDATE"); + } + + public Long rsProcessingdayslimit() { + return (Long) params.get("RS_PROCESSINGDAYSLIMIT"); + } + + public String rsSourcesystem() { + return (String) params.get("RS_SOURCESYSTEM"); + } + + public String rsCompany() { + return (String) params.get("RS_COMPANY"); + } + + public String rsProjectactivity() { + return (String) params.get("RS_PROJECTACTIVITY"); + } + + public String rsTaskdescription() { + return (String) params.get("RS_TASKDESCRIPTION"); + } + + public String rsClientid() { + return (String) params.get("RS_CLIENTID"); + } + + public String rsContractnumber() { + return (String) params.get("RS_CONTRACTNUMBER"); + } + + public String rsProduct() { + return (String) params.get("RS_PRODUCT"); + } + + public Boolean rsHidefromclient() { + return (Boolean) params.get("RS_HIDEFROMCLIENT"); + } + + public Long rsCountofsubtasks() { + return (Long) params.get("RS_COUNTOFSUBTASKS"); + } + + public Boolean rsRepeatingtask() { + return (Boolean) params.get("RS_REPEATINGTASK"); + } + + public Long rsCountofoccurences() { + return (Long) params.get("RS_COUNTOFOCCURENCES"); + } + + public String rsRecurrencepattern() { + return (String) params.get("RS_RECURRENCEPATTERN"); + } + + public Long rsSendemail() { + return (Long) params.get("RS_SENDEMAIL"); + } + + public java.util.Date rsStartdateofrecurrence() { + return (java.util.Date) params.get("RS_STARTDATEOFRECURRENCE"); + } + + public java.util.Date rsEnddateofrecurrence() { + return (java.util.Date) params.get("RS_ENDDATEOFRECURRENCE"); + } + + public String rsDayofwakeup() { + return (String) params.get("RS_DAYOFWAKEUP"); + } + + public Long rsRepeatcounter() { + return (Long) params.get("RS_REPEATCOUNTER"); + } + + public java.util.Date rsDateformanualnotification() { + return (java.util.Date) params.get("RS_DATEFORMANUALNOTIFICATION"); + } + + public String rsUserschoice() { + return (String) params.get("RS_USERSCHOICE"); + } + + public String rsVerifyinguser() { + return (String) params.get("RS_VERIFYINGUSER"); + } + + public Long rsManualprocessingtime() { + return (Long) params.get("RS_MANUALPROCESSINGTIME"); + } + + public java.util.Date rsCalculatedwakeuptime() { + return (java.util.Date) params.get("RS_CALCULATEDWAKEUPTIME"); + } + + public Long rsAutomatprocessingtime() { + return (Long) params.get("RS_AUTOMATPROCESSINGTIME"); + } + + public java.util.Date rsWakeuptime() { + return (java.util.Date) params.get("RS_WAKEUPTIME"); + } + + public String rsAttribute1() { + return (String) params.get("RS_ATTRIBUTE1"); + } + + public String rsAttribute2() { + return (String) params.get("RS_ATTRIBUTE2"); + } + + public String rsAttribute3() { + return (String) params.get("RS_ATTRIBUTE3"); + } + + public String rsAttribute4() { + return (String) params.get("RS_ATTRIBUTE4"); + } + + public String rsAttribute5() { + return (String) params.get("RS_ATTRIBUTE5"); + } + + public String rsAttribute6() { + return (String) params.get("RS_ATTRIBUTE6"); + } + + public String rsAttribute7() { + return (String) params.get("RS_ATTRIBUTE7"); + } + + public String rsAttribute8() { + return (String) params.get("RS_ATTRIBUTE8"); + } + + public String rsAttribute9() { + return (String) params.get("RS_ATTRIBUTE9"); + } + + public String rsAttribute10() { + return (String) params.get("RS_ATTRIBUTE10"); + } + + public String rsTaskid() { + return (String) params.get("RS_TASKID"); + } + + public String rsTkiid() { + return (String) params.get("RS_TKIID"); + } + + public java.util.Date rsLastModified() { + return (java.util.Date) params.get("RS_LAST_MODIFIED"); + } + + public java.util.Date rsExpires() { + return (java.util.Date) params.get("RS_EXPIRES"); + } + + public Boolean rsSuspended() { + return (Boolean) params.get("RS_SUSPENDED"); + } + + public Boolean rsIsEscalated() { + return (Boolean) params.get("RS_IS_ESCALATED"); + } + + public java.util.Date rsFirstActivated() { + return (java.util.Date) params.get("RS_FIRST_ACTIVATED"); + } + + public String rsEmailofsender() { + return (String) params.get("RS_EMAILOFSENDER"); + } + + public String rsState() { + return (String) params.get("RS_STATE"); + } + + public String rsEmailsubject() { + return (String) params.get("RS_EMAILSUBJECT"); + } + + public String rsEmailofreceiver() { + return (String) params.get("RS_EMAILOFRECEIVER"); + } + + public String rsContainmentCtxId() { + return (String) params.get("RS_CONTAINMENT_CTX_ID"); + } + + public java.util.Date rsResultingdate() { + return (java.util.Date) params.get("RS_RESULTINGDATE"); + } + + public String rsName() { + return (String) params.get("RS_NAME"); + } + + public Long rsCasescount() { + return (Long) params.get("RS_CASESCOUNT"); + } + + public String rsOwner() { + return (String) params.get("RS_OWNER"); + } + + public String rsOutersolver() { + return (String) params.get("RS_OUTERSOLVER"); + } + + public Long rsSetescalation() { + return (Long) params.get("RS_SETESCALATION"); + } + + public String rsClientidtype() { + return (String) params.get("RS_CLIENTIDTYPE"); + } + + public java.util.Date rsLastStateChange() { + return (java.util.Date) params.get("RS_LAST_STATE_CHANGE"); + } + + public String rsSegment() { + return (String) params.get("RS_SEGMENT"); + } + + public Long rsSetrequesteddateforescalation() { + return (Long) params.get("RS_SETREQUESTEDDATEFORESCALATION"); + } + + public String rsErrormessage() { + return (String) params.get("RS_ERRORMESSAGE"); + } + + public String rsErrorflag() { + return (String) params.get("RS_ERRORFLAG"); + } + + public String rsNextstage() { + return (String) params.get("RS_NEXTSTAGE"); + } + + public String rsErrormwfflag() { + return (String) params.get("RS_ERRORMWFFLAG"); + } + + public String rsRequestedaction() { + return (String) params.get("RS_REQUESTEDACTION"); + } + + public java.util.Date rsHistorydate() { + return (java.util.Date) params.get("RS_HISTORYDATE"); + } + + public String rsAttribute11() { + return (String) params.get("RS_ATTRIBUTE11"); + } + + public String rsAttribute12() { + return (String) params.get("RS_ATTRIBUTE12"); + } + + public String rsAttribute13() { + return (String) params.get("RS_ATTRIBUTE13"); + } + + public String rsAttribute14() { + return (String) params.get("RS_ATTRIBUTE14"); + } + + public String rsAttribute15() { + return (String) params.get("RS_ATTRIBUTE15"); + } + + public String rsAttribute16() { + return (String) params.get("RS_ATTRIBUTE16"); + } + + public String rsAttribute17() { + return (String) params.get("RS_ATTRIBUTE17"); + } + + public String rsAttribute18() { + return (String) params.get("RS_ATTRIBUTE18"); + } + + public String rsAttribute19() { + return (String) params.get("RS_ATTRIBUTE19"); + } + + public String rsAttribute20() { + return (String) params.get("RS_ATTRIBUTE20"); + } + + public String rsOverallstatus() { + return (String) params.get("RS_OVERALLSTATUS"); + } + + public String rsTasksolution() { + return (String) params.get("RS_TASKSOLUTION"); + } + + public String rsUserid() { + return (String) params.get("RS_USERID"); + } + + public String rsIco() { + return (String) params.get("RS_ICO"); + } + + public String rsBirthnumber() { + return (String) params.get("RS_BIRTHNUMBER"); + } + + public String rsTmsgroupid() { + return (String) params.get("RS_TMSGROUPID"); + } + + public String rsProductPopis() { + return (String) params.get("RS_PRODUCT_POPIS"); + } + + public String rsObjectid() { + return (String) params.get("RS_OBJECTID"); + } + + public String rsObjectidtype() { + return (String) params.get("RS_OBJECTIDTYPE"); + } + + public String rsTasksubcategory() { + return (String) params.get("RS_TASKSUBCATEGORY"); + } + + public String rsApplicantgroup() { + return (String) params.get("RS_APPLICANTGROUP"); + } + + public String rsBranchid() { + return (String) params.get("RS_BRANCHID"); + } + + public Long rsUserflag() { + return (Long) params.get("RS_USERFLAG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD4Response.java new file mode 100644 index 0000000..613cd16 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD4Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJD4Response { + + @Parameter(name = "COUNT") + Long count(); + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD5.java new file mode 100644 index 0000000..9bd03f8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD5.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJD5 extends MwfRequest { + + @Parameter(name = "ID_CATEGORY") + MWFJD5 idCategory(Long idCategory); + @Parameter(name = "ID_PRODUCT") + MWFJD5 idProduct(Long idProduct); + @Parameter(name = "ID_TASK_TYPE") + MWFJD5 idTaskType(Long idTaskType); + @Parameter(name = "ID_TEAM") + MWFJD5 idTeam(String idTeam); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD5Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD5Data.java new file mode 100644 index 0000000..5f519cd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD5Data.java @@ -0,0 +1,73 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFJD5Data { + + private Map params; + + public MWFJD5Data(Map params) { + this.params = params; + } + + public String rsId() { + return (String) params.get("RS_ID"); + } + + public String rsName() { + return (String) params.get("RS_NAME"); + } + + public String rsType() { + return (String) params.get("RS_TYPE"); + } + + public Long rsNotifyEmail() { + return (Long) params.get("RS_NOTIFY_EMAIL"); + } + + public String rsNotificationEmail() { + return (String) params.get("RS_NOTIFICATION_EMAIL"); + } + + public Long rsActive() { + return (Long) params.get("RS_ACTIVE"); + } + + public Long rsNotifyAssignment() { + return (Long) params.get("RS_NOTIFY_ASSIGNMENT"); + } + + public Long rsNotifyAttachments() { + return (Long) params.get("RS_NOTIFY_ATTACHMENTS"); + } + + public Long rsNotifySolution() { + return (Long) params.get("RS_NOTIFY_SOLUTION"); + } + + public String rsHelp() { + return (String) params.get("RS_HELP"); + } + + public Long rsEscalation() { + return (Long) params.get("RS_ESCALATION"); + } + + public String rsEscalationEmail() { + return (String) params.get("RS_ESCALATION_EMAIL"); + } + + public String rsInvisibleSystems() { + return (String) params.get("RS_INVISIBLE_SYSTEMS"); + } + + public String rsObjectIdType() { + return (String) params.get("RS_OBJECT_ID_TYPE"); + } + + public String rsClientIdType() { + return (String) params.get("RS_CLIENT_ID_TYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD5Response.java new file mode 100644 index 0000000..6ecc5d1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD5Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJD5Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD6.java new file mode 100644 index 0000000..04fa724 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD6.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJD6 extends MwfRequest { + + @Parameter(name = "TASKID") + MWFJD6 taskid(Long taskid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD6Response.java new file mode 100644 index 0000000..3c12966 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJD6Response.java @@ -0,0 +1,81 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJD6Response { + + @Parameter(name = "ACTION_LIST") + String actionList(); + + @Parameter(name = "ACTION_LIST_DEFAULT") + String actionListDefault(); + + @Parameter(name = "ACTIVE") + Long active(); + + @Parameter(name = "AUTOMATIC_CLOSE_TIME") + Long automaticCloseTime(); + + @Parameter(name = "DEFAULT_TAB") + String defaultTab(); + + @Parameter(name = "DOCUMENT_TYPE_ALLOWED") + String documentTypeAllowed(); + + @Parameter(name = "INVISIBLE_SYSTEMS") + String invisibleSystems(); + + @Parameter(name = "SET_REQUESTED_DATE_FOR_ESCALATION") + String setRequestedDateForEscalation(); + + @Parameter(name = "SLA_CALENDAR_TYPE") + String slaCalendarType(); + + @Parameter(name = "SLA_IN_DAYS") + Long slaInDays(); + + @Parameter(name = "SLA_IN_MINUTES") + Long slaInMinutes(); + + @Parameter(name = "SOURCE_EMAIL") + String sourceEmail(); + + @Parameter(name = "SPECIAL_ACTION_VISIBILITY") + String specialActionVisibility(); + + @Parameter(name = "STANDARD_ACTION_INVISIBILITY") + String standardActionInvisibility(); + + @Parameter(name = "TASKID") + Long taskid(); + + @Parameter(name = "TASKNAME") + String taskname(); + + @Parameter(name = "TASK_HELP") + String taskHelp(); + + @Parameter(name = "TASK_SOLUTION_TEMPLATE") + String taskSolutionTemplate(); + + @Parameter(name = "TASK_SPECIFICS") + String taskSpecifics(); + + @Parameter(name = "VERIFICATION") + Long verification(); + + @Parameter(name = "VERIFYINGTIME") + Long verifyingtime(); + + @Parameter(name = "VERYFYING_TEAMS") + String veryfyingTeams(); + + @Parameter(name = "WORKING_HOURS_FROM") + Long workingHoursFrom(); + + @Parameter(name = "WORKING_HOURS_TO") + Long workingHoursTo(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJF9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJF9.java new file mode 100644 index 0000000..6ce9362 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJF9.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJF9 extends MwfRequest { + + @Parameter(name = "CastAdresy") + MWFJF9 castAdresy(String castAdresy); + @Parameter(name = "MaxPocetZaznamu") + MWFJF9 maxPocetZaznamu(Long maxPocetZaznamu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJF9Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJF9Data.java new file mode 100644 index 0000000..e09ab8e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJF9Data.java @@ -0,0 +1,121 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFJF9Data { + + private Map params; + + public MWFJF9Data(Map params) { + this.params = params; + } + + public String rsAdresat() { + return (String) params.get("RS_ADRESAT"); + } + + public String rsCo() { + return (String) params.get("RS_CO"); + } + + public String rsCp() { + return (String) params.get("RS_CP"); + } + + public Long rsCisloproduktu() { + return (Long) params.get("RS_CISLOPRODUKTU"); + } + + public String rsNazevproduktu() { + return (String) params.get("RS_NAZEVPRODUKTU"); + } + + public String rsObec() { + return (String) params.get("RS_OBEC"); + } + + public String rsPsc() { + return (String) params.get("RS_PSC"); + } + + public String rsPosta() { + return (String) params.get("RS_POSTA"); + } + + public String rsTypproduktu() { + return (String) params.get("RS_TYPPRODUKTU"); + } + + public String rsUlice() { + return (String) params.get("RS_ULICE"); + } + + public String rsZeme() { + return (String) params.get("RS_ZEME"); + } + + public String rsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public Long rsPoradi() { + return (Long) params.get("RS_PORADI"); + } + + public Long rsIcbApp() { + return (Long) params.get("RS_ICB_APP"); + } + + public Long rsIcbTyp() { + return (Long) params.get("RS_ICB_TYP"); + } + + public String rsPktypadresy() { + return (String) params.get("RS_PKTYPADRESY"); + } + + public String rsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public String rsTitulza() { + return (String) params.get("RS_TITULZA"); + } + + public String rsTitulpred() { + return (String) params.get("RS_TITULPRED"); + } + + public String rsDruhejmeno() { + return (String) params.get("RS_DRUHEJMENO"); + } + + public String rsCtvrt() { + return (String) params.get("RS_CTVRT"); + } + + public String rsTypadresy() { + return (String) params.get("RS_TYPADRESY"); + } + + public String rsOkres() { + return (String) params.get("RS_OKRES"); + } + + public String rsEvn() { + return (String) params.get("RS_EVN"); + } + + public String rsCisloproduktumask() { + return (String) params.get("RS_CISLOPRODUKTUMASK"); + } + + public String rsDisplaytext() { + return (String) params.get("RS_DISPLAYTEXT"); + } + + public String rsIdadresy() { + return (String) params.get("RS_IDADRESY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJF9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJF9Response.java new file mode 100644 index 0000000..4b7c611 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJF9Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJF9Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "VracenyVsechnyZaznamy") + String vracenyVsechnyZaznamy(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJG0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJG0.java new file mode 100644 index 0000000..fdf6469 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJG0.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJG0 extends MwfRequest { + + @Parameter(name = "APP_ID") + MWFJG0 appId(String appId); + @Parameter(name = "CIF") + MWFJG0 cif(String cif); + @Parameter(name = "CM_ID") + MWFJG0 cmId(String cmId); + @Parameter(name = "CasoveRazitko") + MWFJG0 casoveRazitko(java.util.Date casoveRazitko); + @Parameter(name = "ICO") + MWFJG0 ico(String ico); + @Parameter(name = "Pristup") + MWFJG0 pristup(String pristup); + @Parameter(name = "Produkt") + MWFJG0 produkt(String produkt); + @Parameter(name = "ProduktKontext") + MWFJG0 produktKontext(String produktKontext); + @Parameter(name = "RC") + MWFJG0 rc(String rc); + @Parameter(name = "StavSluzby") + MWFJG0 stavSluzby(String stavSluzby); + @Parameter(name = "Transaction_ID") + MWFJG0 transactionID(String transactionID); + @Parameter(name = "TypDocumentu") + MWFJG0 typDocumentu(String typDocumentu); + @Parameter(name = "ZpusobPodepsani") + MWFJG0 zpusobPodepsani(String zpusobPodepsani); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJG0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJG0Response.java new file mode 100644 index 0000000..4a49297 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJG0Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJG0Response { + + @Parameter(name = "CM_ID") + String cmId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJM7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJM7.java new file mode 100644 index 0000000..0b80dd9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJM7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJM7 extends MwfRequest { + + @Parameter(name = "PracovniPomer") + MWFJM7 pracovniPomer(String pracovniPomer); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJM7Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJM7Data.java new file mode 100644 index 0000000..612f455 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJM7Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFJM7Data { + + private Map params; + + public MWFJM7Data(Map params) { + this.params = params; + } + + public String rsPovolani() { + return (String) params.get("RS_POVOLANI"); + } + + public Long rsIdPovolani() { + return (Long) params.get("RS_ID_POVOLANI"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJM7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJM7Response.java new file mode 100644 index 0000000..f16ccb4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJM7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJM7Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP0.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP0.java new file mode 100644 index 0000000..e19d2ab --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP0.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJP0 extends MwfRequest { + + @Parameter(name = "CIF") + MWFJP0 cif(String cif); + @Parameter(name = "MA_STAV") + MWFJP0 maStav(String maStav); + @Parameter(name = "RC") + MWFJP0 rc(String rc); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP0Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP0Data.java new file mode 100644 index 0000000..4c486c5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP0Data.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFJP0Data { + + private Map params; + + public MWFJP0Data(Map params) { + this.params = params; + } + + public String rsGoldAccount() { + return (String) params.get("RS_GOLD_ACCOUNT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP0Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP0Response.java new file mode 100644 index 0000000..437e90d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP0Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJP0Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "RESULT") + String result(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP8.java new file mode 100644 index 0000000..12e5871 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP8.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJP8 extends MwfRequest { + + @Parameter(name = "Logo") + MWFJP8 logo(String logo); + @Parameter(name = "MSISDN") + MWFJP8 msisdn(String msisdn); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP8Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP8Data.java new file mode 100644 index 0000000..366f5e1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP8Data.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFJP8Data { + + private Map params; + + public MWFJP8Data(Map params) { + this.params = params; + } + + public String rsDuvodnekompabilitynfctext() { + return (String) params.get("RS_DUVODNEKOMPABILITYNFCTEXT"); + } + + public String rsDuvodnekompabilitynfc() { + return (String) params.get("RS_DUVODNEKOMPABILITYNFC"); + } + + public Long rsBlokaceprodejnihoprocesuflag() { + return (Long) params.get("RS_BLOKACEPRODEJNIHOPROCESUFLAG"); + } + + public String rsLogo() { + return (String) params.get("RS_LOGO"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP8Response.java new file mode 100644 index 0000000..9e94d17 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJP8Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJP8Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "VysledekKontroly") + String vysledekKontroly(); + + @Parameter(name = "VysledekKontrolyText") + String vysledekKontrolyText(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS7.java new file mode 100644 index 0000000..7dcdbd9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS7.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJS7 extends MwfRequest { + + @Parameter(name = "WFID") + MWFJS7 wfid(String wfid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS7Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS7Data.java new file mode 100644 index 0000000..8b96e76 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS7Data.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFJS7Data { + + private Map params; + + public MWFJS7Data(Map params) { + this.params = params; + } + + public String rsAppkey() { + return (String) params.get("RS_APPKEY"); + } + + public String rsWfid() { + return (String) params.get("RS_WFID"); + } + + public String rsApprovalcaseid() { + return (String) params.get("RS_APPROVALCASEID"); + } + + public String rsAppstate() { + return (String) params.get("RS_APPSTATE"); + } + + public String rsApptype() { + return (String) params.get("RS_APPTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS7Response.java new file mode 100644 index 0000000..f3f01a2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS7Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJS7Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS9.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS9.java new file mode 100644 index 0000000..a3c6e57 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS9.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJS9 extends MwfRequest { + + @Parameter(name = "WFID") + MWFJS9 wfid(String wfid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS9Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS9Response.java new file mode 100644 index 0000000..0cbe014 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJS9Response.java @@ -0,0 +1,87 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJS9Response { + + @Parameter(name = "ACCOUNTNUMBER") + String accountnumber(); + + @Parameter(name = "ACCOUNTNUMBERTRANSFER") + String accountnumbertransfer(); + + @Parameter(name = "APPLKEY") + String applkey(); + + @Parameter(name = "BANKCODETRANSFER") + String bankcodetransfer(); + + @Parameter(name = "BUSSTATE") + String busstate(); + + @Parameter(name = "CARDTRANSFER") + Long cardtransfer(); + + @Parameter(name = "CARDTYPE") + String cardtype(); + + @Parameter(name = "CHECKBLCOUNTRY") + String checkblcountry(); + + @Parameter(name = "CHECKBRIDGER") + String checkbridger(); + + @Parameter(name = "CHECKDOCUMENTS") + String checkdocuments(); + + @Parameter(name = "CHECKFATCA") + String checkfatca(); + + @Parameter(name = "CHECKTRANSFER") + String checktransfer(); + + @Parameter(name = "CLIENTID") + String clientid(); + + @Parameter(name = "CREATEDATE") + java.util.Date createdate(); + + @Parameter(name = "DEBETCARDFLAG") + String debetcardflag(); + + @Parameter(name = "ERRORFLAG") + Boolean errorflag(); + + @Parameter(name = "ERRORMESSAGE") + String errormessage(); + + @Parameter(name = "ERRORMWFFLAG") + Boolean errormwfflag(); + + @Parameter(name = "INCOMPLETEREQUEST") + String incompleterequest(); + + @Parameter(name = "LASTSTATECHANGEDATE") + java.util.Date laststatechangedate(); + + @Parameter(name = "PREVIOUSSTATE") + String previousstate(); + + @Parameter(name = "PROCESSNAME") + String processname(); + + @Parameter(name = "TERMINATEDATE") + java.util.Date terminatedate(); + + @Parameter(name = "USERID") + String userid(); + + @Parameter(name = "WAKEUPTIME") + java.util.Date wakeuptime(); + + @Parameter(name = "WORKCREATEDBY") + String workcreatedby(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJT6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJT6.java new file mode 100644 index 0000000..93b4880 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJT6.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJT6 extends MwfRequest { + + @Parameter(name = "SRC_FIRST_NAME") + MWFJT6 srcFirstName(String srcFirstName); + @Parameter(name = "SRC_GENDER") + MWFJT6 srcGender(String srcGender); + @Parameter(name = "SRC_LAST_NAME") + MWFJT6 srcLastName(String srcLastName); + @Parameter(name = "SRC_REF_ID") + MWFJT6 srcRefId(String srcRefId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJT6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJT6Response.java new file mode 100644 index 0000000..4f490bc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJT6Response.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJT6Response { + + @Parameter(name = "EXPL_DCLN_FIRST_NAME") + String explDclnFirstName(); + + @Parameter(name = "EXPL_DCLN_LAST_NAME") + String explDclnLastName(); + + @Parameter(name = "OUT_FIRST_NAME_4") + String outFirstName4(); + + @Parameter(name = "OUT_FIRST_NAME_5") + String outFirstName5(); + + @Parameter(name = "OUT_LAST_NAME_4") + String outLastName4(); + + @Parameter(name = "OUT_LAST_NAME_5") + String outLastName5(); + + @Parameter(name = "SC_DCLN_FIRST_NAME") + Long scDclnFirstName(); + + @Parameter(name = "SC_DCLN_LAST_NAME") + Long scDclnLastName(); + + @Parameter(name = "SRC_FIRST_NAME") + String srcFirstName(); + + @Parameter(name = "SRC_GENDER") + String srcGender(); + + @Parameter(name = "SRC_LAST_NAME") + String srcLastName(); + + @Parameter(name = "SRC_REF_ID") + String srcRefId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW1.java new file mode 100644 index 0000000..eabbb1a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW1.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJW1 extends MwfRequest { + + @Parameter(name = "AVPole2") + MWFJW1 aVPole2(String aVPole2); + @Parameter(name = "Castka") + MWFJW1 castka(Double castka); + @Parameter(name = "CisloUctuPrijemce_Externi") + MWFJW1 cisloUctuPrijemceExterni(String cisloUctuPrijemceExterni); + @Parameter(name = "CisloUctuPrijemce_Interni") + MWFJW1 cisloUctuPrijemceInterni(String cisloUctuPrijemceInterni); + @Parameter(name = "CisloUctuPrijemce_Kodbanky") + MWFJW1 cisloUctuPrijemceKodbanky(String cisloUctuPrijemceKodbanky); + @Parameter(name = "CisloUctuUver") + MWFJW1 cisloUctuUver(String cisloUctuUver); + @Parameter(name = "DatumCerpani") + MWFJW1 datumCerpani(java.util.Date datumCerpani); + @Parameter(name = "Kanal") + MWFJW1 kanal(String kanal); + @Parameter(name = "KonstSymbol") + MWFJW1 konstSymbol(String konstSymbol); + @Parameter(name = "PodepsanoNaSingpadu") + MWFJW1 podepsanoNaSingpadu(String podepsanoNaSingpadu); + @Parameter(name = "SpecifickySymbol") + MWFJW1 specifickySymbol(Long specifickySymbol); + @Parameter(name = "Urednik") + MWFJW1 urednik(String urednik); + @Parameter(name = "VarSymbol") + MWFJW1 varSymbol(Long varSymbol); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW1Response.java new file mode 100644 index 0000000..3a1bfb0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW1Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJW1Response { + + @Parameter(name = "IDCerpani") + String iDCerpani(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW6.java new file mode 100644 index 0000000..164973a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW6.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJW6 extends MwfRequest { + + @Parameter(name = "CisloUctuUver") + MWFJW6 cisloUctuUver(String cisloUctuUver); + @Parameter(name = "DistribuceVypisu") + MWFJW6 distribuceVypisu(String distribuceVypisu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW6Response.java new file mode 100644 index 0000000..d08bf2a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJW6Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJW6Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ2.java new file mode 100644 index 0000000..c103f7c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ2.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJZ2 extends MwfRequest { + + @Parameter(name = "ACCOUNT") + MWFJZ2 account(String account); + @Parameter(name = "NEXT_REC_KEY") + MWFJZ2 nextRecKey(String nextRecKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ2Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ2Data.java new file mode 100644 index 0000000..370ed53 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ2Data.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFJZ2Data { + + private Map params; + + public MWFJZ2Data(Map params) { + this.params = params; + } + + public String rsIdBundle() { + return (String) params.get("RS_ID_BUNDLE"); + } + + public java.util.Date rsDateFrom() { + return (java.util.Date) params.get("RS_DATE_FROM"); + } + + public java.util.Date rsDateTo() { + return (java.util.Date) params.get("RS_DATE_TO"); + } + + public String rsChannel() { + return (String) params.get("RS_CHANNEL"); + } + + public String rsSso() { + return (String) params.get("RS_SSO"); + } + + public java.util.Date rsLogDate() { + return (java.util.Date) params.get("RS_LOG_DATE"); + } + + public java.util.Date rsLogTime() { + return (java.util.Date) params.get("RS_LOG_TIME"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ2Response.java new file mode 100644 index 0000000..f96125b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ2Response.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJZ2Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "MORE_REC_INDICATOR") + String moreRecIndicator(); + + @Parameter(name = "NBR_OF_REC") + Long nbrOfRec(); + + @Parameter(name = "NEXT_REC_KEY") + String nextRecKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ3.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ3.java new file mode 100644 index 0000000..1c62f18 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ3.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJZ3 extends MwfRequest { + + @Parameter(name = "ACCOUNT") + MWFJZ3 account(String account); + @Parameter(name = "BIRTH_NUMBER") + MWFJZ3 birthNumber(String birthNumber); + @Parameter(name = "CHANNEL") + MWFJZ3 channel(String channel); + @Parameter(name = "IC") + MWFJZ3 ic(String ic); + @Parameter(name = "ID_BUNDLE") + MWFJZ3 idBundle(String idBundle); + @Parameter(name = "ID_BUNDLE_ACT") + MWFJZ3 idBundleAct(String idBundleAct); + @Parameter(name = "SSO") + MWFJZ3 sso(String sso); + @Parameter(name = "UNI_PT_KEY") + MWFJZ3 uniPtKey(Long uniPtKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ3Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ3Response.java new file mode 100644 index 0000000..d0ebd4c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ3Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJZ3Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ4.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ4.java new file mode 100644 index 0000000..aeea15d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ4.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJZ4 extends MwfRequest { + + @Parameter(name = "ACT_BUNDLE_ACTIVE_FROM") + MWFJZ4 actBundleActiveFrom(java.util.Date actBundleActiveFrom); + @Parameter(name = "ContractId") + MWFJZ4 contractId(String contractId); + @Parameter(name = "ID_BUNDLE_ACT") + MWFJZ4 idBundleAct(String idBundleAct); + @Parameter(name = "ROLE") + MWFJZ4 role(String role); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ4Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ4Data.java new file mode 100644 index 0000000..a078229 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ4Data.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFJZ4Data { + + private Map params; + + public MWFJZ4Data(Map params) { + this.params = params; + } + + public String rsIdBundle() { + return (String) params.get("RS_ID_BUNDLE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ4Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ4Response.java new file mode 100644 index 0000000..dbd268b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ4Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJZ4Response { + + @Parameter(name = "DATE_OF_NEXT_CHANGE") + java.util.Date dateOfNextChange(); + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ5.java new file mode 100644 index 0000000..de62aa4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ5.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFJZ5 extends MwfRequest { + + @Parameter(name = "ACCOUNT") + MWFJZ5 account(String account); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ5Response.java new file mode 100644 index 0000000..5a6221b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFJZ5Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFJZ5Response { + + @Parameter(name = "ACT_BUNDLE_ACTIVE_FROM") + java.util.Date actBundleActiveFrom(); + + @Parameter(name = "ID_BUNDLE_ACT") + String idBundleAct(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK28.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK28.java new file mode 100644 index 0000000..18cef3c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK28.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFK28 extends MwfRequest { + + @Parameter(name = "CisloKarty") + MWFK28 cisloKarty(Long cisloKarty); + @Parameter(name = "ZpusobDistribuceVypisu") + MWFK28 zpusobDistribuceVypisu(String zpusobDistribuceVypisu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK28Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK28Response.java new file mode 100644 index 0000000..161d628 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK28Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFK28Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK32.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK32.java new file mode 100644 index 0000000..8f84025 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK32.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFK32 extends MwfRequest { + + @Parameter(name = "ICO") + MWFK32 ico(String ico); + @Parameter(name = "RodneCislo") + MWFK32 rodneCislo(String rodneCislo); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK32Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK32Data.java new file mode 100644 index 0000000..5bef4ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK32Data.java @@ -0,0 +1,177 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFK32Data { + + private Map params; + + public MWFK32Data(Map params) { + this.params = params; + } + + public String rsPlatnostkarty() { + return (String) params.get("RS_PLATNOSTKARTY"); + } + + public String rsCislokarty() { + return (String) params.get("RS_CISLOKARTY"); + } + + public String rsJmenodrzitele() { + return (String) params.get("RS_JMENODRZITELE"); + } + + public String rsLogokarty() { + return (String) params.get("RS_LOGOKARTY"); + } + + public String rsStavsmlouvy() { + return (String) params.get("RS_STAVSMLOUVY"); + } + + public String rsOrganizace() { + return (String) params.get("RS_ORGANIZACE"); + } + + public String rsAktivitakarty() { + return (String) params.get("RS_AKTIVITAKARTY"); + } + + public String rsBlokacesmlouvy1() { + return (String) params.get("RS_BLOKACESMLOUVY1"); + } + + public String rsBlokacesmlouvy2() { + return (String) params.get("RS_BLOKACESMLOUVY2"); + } + + public String rsMinimalnisplatka() { + return (String) params.get("RS_MINIMALNISPLATKA"); + } + + public Double rsDisponibilnizustatek() { + return (Double) params.get("RS_DISPONIBILNIZUSTATEK"); + } + + public java.util.Date rsSplatkadatumsplatnosti() { + return (java.util.Date) params.get("RS_SPLATKADATUMSPLATNOSTI"); + } + + public Double rsSplatkakuhrade() { + return (Double) params.get("RS_SPLATKAKUHRADE"); + } + + public Long rsDennilimitobchodnik() { + return (Long) params.get("RS_DENNILIMITOBCHODNIK"); + } + + public Double rsCelkemdoplatit() { + return (Double) params.get("RS_CELKEMDOPLATIT"); + } + + public Double rsVyseposlednisplatky() { + return (Double) params.get("RS_VYSEPOSLEDNISPLATKY"); + } + + public java.util.Date rsDatumposlednisplatky() { + return (java.util.Date) params.get("RS_DATUMPOSLEDNISPLATKY"); + } + + public Double rsUverovyramec() { + return (Double) params.get("RS_UVEROVYRAMEC"); + } + + public java.util.Date rsDatumpodpisusmlouvy() { + return (java.util.Date) params.get("RS_DATUMPODPISUSMLOUVY"); + } + + public String rsCislosmlouvy() { + return (String) params.get("RS_CISLOSMLOUVY"); + } + + public Long rsDennilimithotovost() { + return (Long) params.get("RS_DENNILIMITHOTOVOST"); + } + + public Double rsUverovyramecvycerpany() { + return (Double) params.get("RS_UVEROVYRAMECVYCERPANY"); + } + + public Double rsUverovyramechotovost() { + return (Double) params.get("RS_UVEROVYRAMECHOTOVOST"); + } + + public Double rsDisponibilnizustatekhotovost() { + return (Double) params.get("RS_DISPONIBILNIZUSTATEKHOTOVOST"); + } + + public String rsLoyaltystatus() { + return (String) params.get("RS_LOYALTYSTATUS"); + } + + public String rsDesignid() { + return (String) params.get("RS_DESIGNID"); + } + + public String rsZpusobdistribucevypisu() { + return (String) params.get("RS_ZPUSOBDISTRIBUCEVYPISU"); + } + + public String rsCislokaretnihouctu() { + return (String) params.get("RS_CISLOKARETNIHOUCTU"); + } + + public String rsDodatkovakarta() { + return (String) params.get("RS_DODATKOVAKARTA"); + } + + public Long rsMaxpocettransakciden() { + return (Long) params.get("RS_MAXPOCETTRANSAKCIDEN"); + } + + public Long rsMaxpocettransakcidenatm() { + return (Long) params.get("RS_MAXPOCETTRANSAKCIDENATM"); + } + + public String rsInternet() { + return (String) params.get("RS_INTERNET"); + } + + public String rsDrzitelrc() { + return (String) params.get("RS_DRZITELRC"); + } + + public Double rsLimitinkasa() { + return (Double) params.get("RS_LIMITINKASA"); + } + + public String rsZpusobuhrady() { + return (String) params.get("RS_ZPUSOBUHRADY"); + } + + public String rsCislokartymask() { + return (String) params.get("RS_CISLOKARTYMASK"); + } + + public String rsCislokaretnihouctumask() { + return (String) params.get("RS_CISLOKARETNIHOUCTUMASK"); + } + + public String rsChip() { + return (String) params.get("RS_CHIP"); + } + + public String rsMsisdn() { + return (String) params.get("RS_MSISDN"); + } + + public Long rsDennilimitecommerce() { + return (Long) params.get("RS_DENNILIMITECOMMERCE"); + } + + public String rsVybermimoeu() { + return (String) params.get("RS_VYBERMIMOEU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK32Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK32Response.java new file mode 100644 index 0000000..526de96 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFK32Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFK32Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDX.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDX.java new file mode 100644 index 0000000..905e899 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDX.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFKDX extends MwfRequest { + + @Parameter(name = "ChannelId") + MWFKDX channelId(String channelId); + @Parameter(name = "ClientCif") + MWFKDX clientCif(String clientCif); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDXInsuranceOffer.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDXInsuranceOffer.java new file mode 100644 index 0000000..6e97622 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDXInsuranceOffer.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFKDXInsuranceOffer { + + private Map params; + + public MWFKDXInsuranceOffer(Map params) { + this.params = params; + } + + public String rsInsuranceid() { + return (String) params.get("RS_INSURANCEID"); + } + + public Long rsInsurancelengthmaximum() { + return (Long) params.get("RS_INSURANCELENGTHMAXIMUM"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDXInsuranceView.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDXInsuranceView.java new file mode 100644 index 0000000..bf95bd5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDXInsuranceView.java @@ -0,0 +1,77 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFKDXInsuranceView { + + private Map params; + + public MWFKDXInsuranceView(Map params) { + this.params = params; + } + + public String rsInsuranceid() { + return (String) params.get("RS_INSURANCEID"); + } + + public Long rsInsuranceinstkey() { + return (Long) params.get("RS_INSURANCEINSTKEY"); + } + + public String rsInsuranceisactive() { + return (String) params.get("RS_INSURANCEISACTIVE"); + } + + public String rsInsurancecontractnumber() { + return (String) params.get("RS_INSURANCECONTRACTNUMBER"); + } + + public String rsAccountnumber() { + return (String) params.get("RS_ACCOUNTNUMBER"); + } + + public String rsInsurancecreatebranchid() { + return (String) params.get("RS_INSURANCECREATEBRANCHID"); + } + + public String rsInsurancecreatechannelid() { + return (String) params.get("RS_INSURANCECREATECHANNELID"); + } + + public java.util.Date rsInsurancesigndate() { + return (java.util.Date) params.get("RS_INSURANCESIGNDATE"); + } + + public java.util.Date rsInsurancestartdate() { + return (java.util.Date) params.get("RS_INSURANCESTARTDATE"); + } + + public Double rsInsurancefeeamount() { + return (Double) params.get("RS_INSURANCEFEEAMOUNT"); + } + + public String rsInsurancefeefrequency() { + return (String) params.get("RS_INSURANCEFEEFREQUENCY"); + } + + public Double rsInsurancepricetotalamount() { + return (Double) params.get("RS_INSURANCEPRICETOTALAMOUNT"); + } + + public java.util.Date rsInsuranceenddate() { + return (java.util.Date) params.get("RS_INSURANCEENDDATE"); + } + + public java.util.Date rsInsurancecanceldate() { + return (java.util.Date) params.get("RS_INSURANCECANCELDATE"); + } + + public String rsInsurancecancelchannelid() { + return (String) params.get("RS_INSURANCECANCELCHANNELID"); + } + + public String rsInsurancecancelreasontype() { + return (String) params.get("RS_INSURANCECANCELREASONTYPE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDXResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDXResponse.java new file mode 100644 index 0000000..355add7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDXResponse.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFKDXResponse { + + @Parameter(name = "InsuranceOffer") + java.util.List insuranceOffer(); + + @Parameter(name = "InsuranceView") + java.util.List insuranceView(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDY.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDY.java new file mode 100644 index 0000000..0ce311b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDY.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFKDY extends MwfRequest { + + @Parameter(name = "ChannelId") + MWFKDY channelId(String channelId); + @Parameter(name = "ClientCif") + MWFKDY clientCif(String clientCif); + @Parameter(name = "InsuranceId") + MWFKDY insuranceId(String insuranceId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDYData.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDYData.java new file mode 100644 index 0000000..46d3b02 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDYData.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFKDYData { + + private Map params; + + public MWFKDYData(Map params) { + this.params = params; + } + + public String rsAccountnumber() { + return (String) params.get("RS_ACCOUNTNUMBER"); + } + + public String rsAccountproductclass() { + return (String) params.get("RS_ACCOUNTPRODUCTCLASS"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDYResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDYResponse.java new file mode 100644 index 0000000..004cb2e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFKDYResponse.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFKDYResponse { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL29.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL29.java new file mode 100644 index 0000000..bbf222a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL29.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL29 extends MwfRequest { + + @Parameter(name = "CIF") + MWFL29 cif(String cif); + @Parameter(name = "Produkt") + MWFL29 produkt(String produkt); + @Parameter(name = "TypSmlouvy") + MWFL29 typSmlouvy(String typSmlouvy); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL29Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL29Data.java new file mode 100644 index 0000000..6ed1fb5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL29Data.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFL29Data { + + private Map params; + + public MWFL29Data(Map params) { + this.params = params; + } + + public String rsProdukt() { + return (String) params.get("RS_PRODUKT"); + } + + public String rsTypsmlouvy() { + return (String) params.get("RS_TYPSMLOUVY"); + } + + public String rsStavsmlouvy() { + return (String) params.get("RS_STAVSMLOUVY"); + } + + public String rsCislosmlouvy() { + return (String) params.get("RS_CISLOSMLOUVY"); + } + + public java.util.Date rsDatumod() { + return (java.util.Date) params.get("RS_DATUMOD"); + } + + public java.util.Date rsDatumdo() { + return (java.util.Date) params.get("RS_DATUMDO"); + } + + public String rsZkracenynazevproduktu() { + return (String) params.get("RS_ZKRACENYNAZEVPRODUKTU"); + } + + public Double rsObjem() { + return (Double) params.get("RS_OBJEM"); + } + + public String rsIsin() { + return (String) params.get("RS_ISIN"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL29Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL29Response.java new file mode 100644 index 0000000..ebfe58a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL29Response.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL29Response { + + @Parameter(name = "AktualniVerzeDotazniku") + Long aktualniVerzeDotazniku(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "ProfilKlienta") + String profilKlienta(); + + @Parameter(name = "RodneCislo") + String rodneCislo(); + + @Parameter(name = "StavKlienta") + String stavKlienta(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL31.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL31.java new file mode 100644 index 0000000..1f15baf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL31.java @@ -0,0 +1,82 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL31 extends MwfRequest { + + @Parameter(name = "CIF") + MWFL31 cif(String cif); + @Parameter(name = "DIC") + MWFL31 dic(String dic); + @Parameter(name = "DatumNarozeni") + MWFL31 datumNarozeni(java.util.Date datumNarozeni); + @Parameter(name = "Domicil") + MWFL31 domicil(String domicil); + @Parameter(name = "DruhDruhehoDokladu") + MWFL31 druhDruhehoDokladu(String druhDruhehoDokladu); + @Parameter(name = "DruhyDokladCislo") + MWFL31 druhyDokladCislo(String druhyDokladCislo); + @Parameter(name = "DruhyDokladPlatnost") + MWFL31 druhyDokladPlatnost(java.util.Date druhyDokladPlatnost); + @Parameter(name = "EkonomAktivCR") + MWFL31 ekonomAktivCR(String ekonomAktivCR); + @Parameter(name = "EkonomAktivSR") + MWFL31 ekonomAktivSR(String ekonomAktivSR); + @Parameter(name = "Email") + MWFL31 email(String email); + @Parameter(name = "Fax") + MWFL31 fax(String fax); + @Parameter(name = "ICO") + MWFL31 ico(String ico); + @Parameter(name = "Jmeno") + MWFL31 jmeno(String jmeno); + @Parameter(name = "MistoNarozeni") + MWFL31 mistoNarozeni(String mistoNarozeni); + @Parameter(name = "Mobil") + MWFL31 mobil(String mobil); + @Parameter(name = "OPCislo") + MWFL31 oPCislo(String oPCislo); + @Parameter(name = "OPPlatnost") + MWFL31 oPPlatnost(java.util.Date oPPlatnost); + @Parameter(name = "PSC") + MWFL31 psc(String psc); + @Parameter(name = "PasCislo") + MWFL31 pasCislo(String pasCislo); + @Parameter(name = "PasPlatnost") + MWFL31 pasPlatnost(java.util.Date pasPlatnost); + @Parameter(name = "PlatceDPH") + MWFL31 platceDPH(String platceDPH); + @Parameter(name = "Pobocka") + MWFL31 pobocka(String pobocka); + @Parameter(name = "Prijmeni") + MWFL31 prijmeni(String prijmeni); + @Parameter(name = "Produkt") + MWFL31 produkt(String produkt); + @Parameter(name = "RezidentCR") + MWFL31 rezidentCR(String rezidentCR); + @Parameter(name = "RezidentSR") + MWFL31 rezidentSR(String rezidentSR); + @Parameter(name = "RodneCislo") + MWFL31 rodneCislo(String rodneCislo); + @Parameter(name = "Sidlo") + MWFL31 sidlo(String sidlo); + @Parameter(name = "StatniPrislusnost") + MWFL31 statniPrislusnost(String statniPrislusnost); + @Parameter(name = "Telefon") + MWFL31 telefon(String telefon); + @Parameter(name = "Telefon2") + MWFL31 telefon2(String telefon2); + @Parameter(name = "TitulPred") + MWFL31 titulPred(String titulPred); + @Parameter(name = "TitulZa") + MWFL31 titulZa(String titulZa); + @Parameter(name = "TypKlient") + MWFL31 typKlient(String typKlient); + @Parameter(name = "Ulice") + MWFL31 ulice(String ulice); + @Parameter(name = "Zeme") + MWFL31 zeme(String zeme); + @Parameter(name = "ZvyhodnenyKlient") + MWFL31 zvyhodnenyKlient(String zvyhodnenyKlient); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL31Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL31Response.java new file mode 100644 index 0000000..712a902 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL31Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL31Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL33.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL33.java new file mode 100644 index 0000000..2423709 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL33.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL33 extends MwfRequest { + + @Parameter(name = "CisloSmlouvy") + MWFL33 cisloSmlouvy(String cisloSmlouvy); + @Parameter(name = "KlientIDDisponent") + MWFL33 klientIDDisponent(Long klientIDDisponent); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL33Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL33Data.java new file mode 100644 index 0000000..56d2c4f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL33Data.java @@ -0,0 +1,105 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFL33Data { + + private Map params; + + public MWFL33Data(Map params) { + this.params = params; + } + + public String rsRodnecislo() { + return (String) params.get("RS_RODNECISLO"); + } + + public String rsTypklient() { + return (String) params.get("RS_TYPKLIENT"); + } + + public String rsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public String rsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public String rsUlice() { + return (String) params.get("RS_ULICE"); + } + + public String rsSidlo() { + return (String) params.get("RS_SIDLO"); + } + + public String rsPsc() { + return (String) params.get("RS_PSC"); + } + + public String rsZeme() { + return (String) params.get("RS_ZEME"); + } + + public String rsTitulpred() { + return (String) params.get("RS_TITULPRED"); + } + + public String rsTitulza() { + return (String) params.get("RS_TITULZA"); + } + + public String rsPobocka() { + return (String) params.get("RS_POBOCKA"); + } + + public String rsStatniprislusnost() { + return (String) params.get("RS_STATNIPRISLUSNOST"); + } + + public String rsRezidentcr() { + return (String) params.get("RS_REZIDENTCR"); + } + + public String rsRezidentsr() { + return (String) params.get("RS_REZIDENTSR"); + } + + public Long rsKlientiddisponent() { + return (Long) params.get("RS_KLIENTIDDISPONENT"); + } + + public String rsOpcislo() { + return (String) params.get("RS_OPCISLO"); + } + + public java.util.Date rsOpplatnost() { + return (java.util.Date) params.get("RS_OPPLATNOST"); + } + + public String rsPascislo() { + return (String) params.get("RS_PASCISLO"); + } + + public java.util.Date rsPasplatnost() { + return (java.util.Date) params.get("RS_PASPLATNOST"); + } + + public String rsDruhdruhehodokladu() { + return (String) params.get("RS_DRUHDRUHEHODOKLADU"); + } + + public String rsDruhydokladcislo() { + return (String) params.get("RS_DRUHYDOKLADCISLO"); + } + + public java.util.Date rsDruhydokladplatnost() { + return (java.util.Date) params.get("RS_DRUHYDOKLADPLATNOST"); + } + + public String rsStavdisponenta() { + return (String) params.get("RS_STAVDISPONENTA"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL33Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL33Response.java new file mode 100644 index 0000000..6f59b12 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL33Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL33Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL34.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL34.java new file mode 100644 index 0000000..c400bf7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL34.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL34 extends MwfRequest { + + @Parameter(name = "CisloSmlouvy") + MWFL34 cisloSmlouvy(String cisloSmlouvy); + @Parameter(name = "Produkt") + MWFL34 produkt(String produkt); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL34Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL34Response.java new file mode 100644 index 0000000..ce62d15 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL34Response.java @@ -0,0 +1,108 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL34Response { + + @Parameter(name = "Atribut") + String atribut(); + + @Parameter(name = "CIF") + String cif(); + + @Parameter(name = "CelkovaHodnotaInvestice") + Double celkovaHodnotaInvestice(); + + @Parameter(name = "DatumDo") + java.util.Date datumDo(); + + @Parameter(name = "DatumOd") + java.util.Date datumOd(); + + @Parameter(name = "DatumVypoved") + java.util.Date datumVypoved(); + + @Parameter(name = "DistribuceKV") + String distribuceKV(); + + @Parameter(name = "Hodnota") + Double hodnota(); + + @Parameter(name = "ISIN") + String isin(); + + @Parameter(name = "KlientskeVypisyObchodniFrekvence") + String klientskeVypisyObchodniFrekvence(); + + @Parameter(name = "KlientskeVypisyStavoveFrekvence") + String klientskeVypisyStavoveFrekvence(); + + @Parameter(name = "KorespondencniJmeno") + String korespondencniJmeno(); + + @Parameter(name = "KorespondencniPSC") + String korespondencniPSC(); + + @Parameter(name = "KorespondencniPrijmeni") + String korespondencniPrijmeni(); + + @Parameter(name = "KorespondencniSidlo") + String korespondencniSidlo(); + + @Parameter(name = "KorespondencniTitulPred") + String korespondencniTitulPred(); + + @Parameter(name = "KorespondencniTitulZa") + String korespondencniTitulZa(); + + @Parameter(name = "KorespondencniUlice") + String korespondencniUlice(); + + @Parameter(name = "KorespondencniZeme") + String korespondencniZeme(); + + @Parameter(name = "Pobocka") + String pobocka(); + + @Parameter(name = "PobockaRestante") + String pobockaRestante(); + + @Parameter(name = "PocetISINu") + Long pocetISINu(); + + @Parameter(name = "PocetNedorucenychVypisu") + Long pocetNedorucenychVypisu(); + + @Parameter(name = "ProfilKlienta") + String profilKlienta(); + + @Parameter(name = "StavSmlouvy") + String stavSmlouvy(); + + @Parameter(name = "TerminCisloUctu") + String terminCisloUctu(); + + @Parameter(name = "TerminKodBanky") + String terminKodBanky(); + + @Parameter(name = "TerminMena") + String terminMena(); + + @Parameter(name = "TypSmlouvy") + String typSmlouvy(); + + @Parameter(name = "UserID") + String userID(); + + @Parameter(name = "VyporadaniCisloUctu") + String vyporadaniCisloUctu(); + + @Parameter(name = "VyporadaniKodBanky") + String vyporadaniKodBanky(); + + @Parameter(name = "VyporadaniMena") + String vyporadaniMena(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL35.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL35.java new file mode 100644 index 0000000..5edc82c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL35.java @@ -0,0 +1,68 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL35 extends MwfRequest { + + @Parameter(name = "CIF") + MWFL35 cif(String cif); + @Parameter(name = "CisloSmlouvy") + MWFL35 cisloSmlouvy(String cisloSmlouvy); + @Parameter(name = "DatumDo") + MWFL35 datumDo(java.util.Date datumDo); + @Parameter(name = "DatumOd") + MWFL35 datumOd(java.util.Date datumOd); + @Parameter(name = "DistribuceKV") + MWFL35 distribuceKV(String distribuceKV); + @Parameter(name = "Hodnota") + MWFL35 hodnota(Double hodnota); + @Parameter(name = "ISIN") + MWFL35 isin(String isin); + @Parameter(name = "KlientskeVypisyObchodniFrekvence") + MWFL35 klientskeVypisyObchodniFrekvence(String klientskeVypisyObchodniFrekvence); + @Parameter(name = "KlientskeVypisyStavoveFrekvence") + MWFL35 klientskeVypisyStavoveFrekvence(String klientskeVypisyStavoveFrekvence); + @Parameter(name = "KorespondencniJmeno") + MWFL35 korespondencniJmeno(String korespondencniJmeno); + @Parameter(name = "KorespondencniPSC") + MWFL35 korespondencniPSC(String korespondencniPSC); + @Parameter(name = "KorespondencniPrijmeni") + MWFL35 korespondencniPrijmeni(String korespondencniPrijmeni); + @Parameter(name = "KorespondencniSidlo") + MWFL35 korespondencniSidlo(String korespondencniSidlo); + @Parameter(name = "KorespondencniTitulPred") + MWFL35 korespondencniTitulPred(String korespondencniTitulPred); + @Parameter(name = "KorespondencniTitulZa") + MWFL35 korespondencniTitulZa(String korespondencniTitulZa); + @Parameter(name = "KorespondencniUlice") + MWFL35 korespondencniUlice(String korespondencniUlice); + @Parameter(name = "KorespondencniZeme") + MWFL35 korespondencniZeme(String korespondencniZeme); + @Parameter(name = "Pobocka") + MWFL35 pobocka(String pobocka); + @Parameter(name = "PobockaRestante") + MWFL35 pobockaRestante(String pobockaRestante); + @Parameter(name = "PremiovyVklad") + MWFL35 premiovyVklad(Boolean premiovyVklad); + @Parameter(name = "Produkt") + MWFL35 produkt(String produkt); + @Parameter(name = "StavSmlouvy") + MWFL35 stavSmlouvy(String stavSmlouvy); + @Parameter(name = "TerminCisloUctu") + MWFL35 terminCisloUctu(String terminCisloUctu); + @Parameter(name = "TerminKodBanky") + MWFL35 terminKodBanky(String terminKodBanky); + @Parameter(name = "TerminMena") + MWFL35 terminMena(String terminMena); + @Parameter(name = "TypSmlouvy") + MWFL35 typSmlouvy(String typSmlouvy); + @Parameter(name = "VyporadaniCisloUctu") + MWFL35 vyporadaniCisloUctu(String vyporadaniCisloUctu); + @Parameter(name = "VyporadaniKodBanky") + MWFL35 vyporadaniKodBanky(String vyporadaniKodBanky); + @Parameter(name = "VyporadaniMena") + MWFL35 vyporadaniMena(String vyporadaniMena); + @Parameter(name = "Zdroj") + MWFL35 zdroj(Long zdroj); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL35Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL35Response.java new file mode 100644 index 0000000..055fdc2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL35Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL35Response { + + @Parameter(name = "CisloSmlouvy") + String cisloSmlouvy(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL37.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL37.java new file mode 100644 index 0000000..09636b7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL37.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL37 extends MwfRequest { + + @Parameter(name = "Aktivni") + MWFL37 aktivni(String aktivni); + @Parameter(name = "CIF") + MWFL37 cif(String cif); + @Parameter(name = "ISIN") + MWFL37 isin(String isin); + @Parameter(name = "Produkt") + MWFL37 produkt(String produkt); + @Parameter(name = "TypPobocka") + MWFL37 typPobocka(String typPobocka); + @Parameter(name = "TypSmlouvy") + MWFL37 typSmlouvy(String typSmlouvy); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL37Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL37Data.java new file mode 100644 index 0000000..d3433c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL37Data.java @@ -0,0 +1,189 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFL37Data { + + private Map params; + + public MWFL37Data(Map params) { + this.params = params; + } + + public String rsTyppobocka() { + return (String) params.get("RS_TYPPOBOCKA"); + } + + public String rsIsin() { + return (String) params.get("RS_ISIN"); + } + + public String rsNazev() { + return (String) params.get("RS_NAZEV"); + } + + public String rsKategorie() { + return (String) params.get("RS_KATEGORIE"); + } + + public String rsMena() { + return (String) params.get("RS_MENA"); + } + + public String rsProfil() { + return (String) params.get("RS_PROFIL"); + } + + public String rsAktivni() { + return (String) params.get("RS_AKTIVNI"); + } + + public String rsEmitent() { + return (String) params.get("RS_EMITENT"); + } + + public String rsRodina() { + return (String) params.get("RS_RODINA"); + } + + public Double rsPoplatekvstup() { + return (Double) params.get("RS_POPLATEKVSTUP"); + } + + public Double rsPoplateksprava() { + return (Double) params.get("RS_POPLATEKSPRAVA"); + } + + public Double rsCojpl() { + return (Double) params.get("RS_COJPL"); + } + + public java.util.Date rsCojpldatum() { + return (java.util.Date) params.get("RS_COJPLDATUM"); + } + + public java.util.Date rsSplatnost() { + return (java.util.Date) params.get("RS_SPLATNOST"); + } + + public String rsNakup() { + return (String) params.get("RS_NAKUP"); + } + + public String rsProdej() { + return (String) params.get("RS_PRODEJ"); + } + + public String rsPrestup() { + return (String) params.get("RS_PRESTUP"); + } + + public java.util.Date rsObchoddennakup() { + return (java.util.Date) params.get("RS_OBCHODDENNAKUP"); + } + + public java.util.Date rsObchoddenprodej() { + return (java.util.Date) params.get("RS_OBCHODDENPRODEJ"); + } + + public java.util.Date rsObchoddenprestup() { + return (java.util.Date) params.get("RS_OBCHODDENPRESTUP"); + } + + public Double rsCojplczk() { + return (Double) params.get("RS_COJPLCZK"); + } + + public Double rsPocetksCelkem() { + return (Double) params.get("RS_POCETKS_CELKEM"); + } + + public Double rsPocetksDisponibilni() { + return (Double) params.get("RS_POCETKS_DISPONIBILNI"); + } + + public Double rsPocetksBlokace() { + return (Double) params.get("RS_POCETKS_BLOKACE"); + } + + public Double rsObjemCelkemCzk() { + return (Double) params.get("RS_OBJEM_CELKEM_CZK"); + } + + public Double rsMinimalniinvestice() { + return (Double) params.get("RS_MINIMALNIINVESTICE"); + } + + public String rsTechnickyucetcislo() { + return (String) params.get("RS_TECHNICKYUCETCISLO"); + } + + public java.util.Date rsDatpocpremobd() { + return (java.util.Date) params.get("RS_DATPOCPREMOBD"); + } + + public java.util.Date rsDatkonpremobd() { + return (java.util.Date) params.get("RS_DATKONPREMOBD"); + } + + public java.util.Date rsDatpocpripobd() { + return (java.util.Date) params.get("RS_DATPOCPRIPOBD"); + } + + public java.util.Date rsDatkonpripobd() { + return (java.util.Date) params.get("RS_DATKONPRIPOBD"); + } + + public java.util.Date rsDatsplat() { + return (java.util.Date) params.get("RS_DATSPLAT"); + } + + public Double rsSazbazakfix() { + return (Double) params.get("RS_SAZBAZAKFIX"); + } + + public String rsSazbazakfloat() { + return (String) params.get("RS_SAZBAZAKFLOAT"); + } + + public Double rsSazbapripfix() { + return (Double) params.get("RS_SAZBAPRIPFIX"); + } + + public String rsSazbapremfloat() { + return (String) params.get("RS_SAZBAPREMFLOAT"); + } + + public Double rsSazbapremfix() { + return (Double) params.get("RS_SAZBAPREMFIX"); + } + + public String rsProspekt() { + return (String) params.get("RS_PROSPEKT"); + } + + public String rsAtributobdobi() { + return (String) params.get("RS_ATRIBUTOBDOBI"); + } + + public String rsPremsazbasplneno() { + return (String) params.get("RS_PREMSAZBASPLNENO"); + } + + public String rsSpecifickysymbol() { + return (String) params.get("RS_SPECIFICKYSYMBOL"); + } + + public String rsTrhemise() { + return (String) params.get("RS_TRHEMISE"); + } + + public String rsSkupinaemise() { + return (String) params.get("RS_SKUPINAEMISE"); + } + + public String rsProdukt() { + return (String) params.get("RS_PRODUKT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL37Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL37Response.java new file mode 100644 index 0000000..0ac2c61 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL37Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL37Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL38.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL38.java new file mode 100644 index 0000000..1467418 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL38.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL38 extends MwfRequest { + + @Parameter(name = "CIF") + MWFL38 cif(String cif); + @Parameter(name = "DatumDo") + MWFL38 datumDo(java.util.Date datumDo); + @Parameter(name = "DatumOd") + MWFL38 datumOd(java.util.Date datumOd); + @Parameter(name = "Pobocka") + MWFL38 pobocka(String pobocka); + @Parameter(name = "PocetObchodu") + MWFL38 pocetObchodu(Long pocetObchodu); + @Parameter(name = "Produkt") + MWFL38 produkt(String produkt); + @Parameter(name = "PseudoTransakceID") + MWFL38 pseudoTransakceID(String pseudoTransakceID); + @Parameter(name = "StavObchodu") + MWFL38 stavObchodu(String stavObchodu); + @Parameter(name = "TypObchodu") + MWFL38 typObchodu(String typObchodu); + @Parameter(name = "TypSmlouvy") + MWFL38 typSmlouvy(String typSmlouvy); + @Parameter(name = "UserID") + MWFL38 userID(String userID); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL38Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL38Data.java new file mode 100644 index 0000000..78a63fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL38Data.java @@ -0,0 +1,125 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFL38Data { + + private Map params; + + public MWFL38Data(Map params) { + this.params = params; + } + + public Long rsIdobchodu() { + return (Long) params.get("RS_IDOBCHODU"); + } + + public String rsIsin() { + return (String) params.get("RS_ISIN"); + } + + public String rsNazev() { + return (String) params.get("RS_NAZEV"); + } + + public java.util.Date rsUzavrenidatum() { + return (java.util.Date) params.get("RS_UZAVRENIDATUM"); + } + + public java.util.Date rsObchodnidatum() { + return (java.util.Date) params.get("RS_OBCHODNIDATUM"); + } + + public java.util.Date rsVyporadanidatum() { + return (java.util.Date) params.get("RS_VYPORADANIDATUM"); + } + + public String rsObchodnicislo() { + return (String) params.get("RS_OBCHODNICISLO"); + } + + public String rsTypobchodu() { + return (String) params.get("RS_TYPOBCHODU"); + } + + public Double rsPocetks() { + return (Double) params.get("RS_POCETKS"); + } + + public Double rsObjem() { + return (Double) params.get("RS_OBJEM"); + } + + public Double rsCena() { + return (Double) params.get("RS_CENA"); + } + + public Double rsPoplatky() { + return (Double) params.get("RS_POPLATKY"); + } + + public Double rsProvize() { + return (Double) params.get("RS_PROVIZE"); + } + + public String rsMena() { + return (String) params.get("RS_MENA"); + } + + public String rsStavobchodu() { + return (String) params.get("RS_STAVOBCHODU"); + } + + public String rsVyplata() { + return (String) params.get("RS_VYPLATA"); + } + + public String rsPobockavyplaty() { + return (String) params.get("RS_POBOCKAVYPLATY"); + } + + public String rsVyplaceno() { + return (String) params.get("RS_VYPLACENO"); + } + + public java.util.Date rsVyplatadatum() { + return (java.util.Date) params.get("RS_VYPLATADATUM"); + } + + public String rsPobocka() { + return (String) params.get("RS_POBOCKA"); + } + + public Long rsKlientiddisponent() { + return (Long) params.get("RS_KLIENTIDDISPONENT"); + } + + public Long rsExtid() { + return (Long) params.get("RS_EXTID"); + } + + public String rsUserid() { + return (String) params.get("RS_USERID"); + } + + public Long rsPseudotransakceid() { + return (Long) params.get("RS_PSEUDOTRANSAKCEID"); + } + + public String rsCislouctu() { + return (String) params.get("RS_CISLOUCTU"); + } + + public String rsCislosmlouvy() { + return (String) params.get("RS_CISLOSMLOUVY"); + } + + public String rsBankakod() { + return (String) params.get("RS_BANKAKOD"); + } + + public String rsProdukt() { + return (String) params.get("RS_PRODUKT"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL38Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL38Response.java new file mode 100644 index 0000000..0fa42ab --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL38Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL38Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL39.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL39.java new file mode 100644 index 0000000..1c639d2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL39.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL39 extends MwfRequest { + + @Parameter(name = "BankaKod") + MWFL39 bankaKod(String bankaKod); + @Parameter(name = "CIF") + MWFL39 cif(String cif); + @Parameter(name = "CisloUctu") + MWFL39 cisloUctu(String cisloUctu); + @Parameter(name = "CostCentrum") + MWFL39 costCentrum(String costCentrum); + @Parameter(name = "DruhUctu") + MWFL39 druhUctu(String druhUctu); + @Parameter(name = "ISIN") + MWFL39 isin(String isin); + @Parameter(name = "ISIN2") + MWFL39 isin2(String isin2); + @Parameter(name = "KlientIDDisponent") + MWFL39 klientIDDisponent(Long klientIDDisponent); + @Parameter(name = "KonstantniSymbol") + MWFL39 konstantniSymbol(Long konstantniSymbol); + @Parameter(name = "MenaUctu") + MWFL39 menaUctu(String menaUctu); + @Parameter(name = "ObchodniDatum") + MWFL39 obchodniDatum(java.util.Date obchodniDatum); + @Parameter(name = "Objem") + MWFL39 objem(Double objem); + @Parameter(name = "Pobocka") + MWFL39 pobocka(String pobocka); + @Parameter(name = "PobockaVyplaty") + MWFL39 pobockaVyplaty(String pobockaVyplaty); + @Parameter(name = "PocetKS") + MWFL39 pocetKS(Double pocetKS); + @Parameter(name = "Produkt") + MWFL39 produkt(String produkt); + @Parameter(name = "SpecifickySymbol") + MWFL39 specifickySymbol(String specifickySymbol); + @Parameter(name = "StavObchodu") + MWFL39 stavObchodu(String stavObchodu); + @Parameter(name = "TypObchodu") + MWFL39 typObchodu(String typObchodu); + @Parameter(name = "TypSmlouvy") + MWFL39 typSmlouvy(String typSmlouvy); + @Parameter(name = "VariabilniSymbol") + MWFL39 variabilniSymbol(String variabilniSymbol); + @Parameter(name = "VlozeniDatum") + MWFL39 vlozeniDatum(java.util.Date vlozeniDatum); + @Parameter(name = "Vyplata") + MWFL39 vyplata(String vyplata); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL39Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL39Response.java new file mode 100644 index 0000000..6195a6e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL39Response.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL39Response { + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "ISIN") + String isin(); + + @Parameter(name = "ISIN2") + String isin2(); + + @Parameter(name = "ObchodniDatum") + java.util.Date obchodniDatum(); + + @Parameter(name = "Objem") + Double objem(); + + @Parameter(name = "PocetKS") + Double pocetKS(); + + @Parameter(name = "PseudoTransakceID") + String pseudoTransakceID(); + + @Parameter(name = "RodneCislo") + String rodneCislo(); + + @Parameter(name = "VyporadaniDatum") + java.util.Date vyporadaniDatum(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL40.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL40.java new file mode 100644 index 0000000..95d344c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL40.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL40 extends MwfRequest { + + @Parameter(name = "BankaKod") + MWFL40 bankaKod(String bankaKod); + @Parameter(name = "CIF") + MWFL40 cif(String cif); + @Parameter(name = "CisloUctu") + MWFL40 cisloUctu(String cisloUctu); + @Parameter(name = "CostCentrum") + MWFL40 costCentrum(String costCentrum); + @Parameter(name = "DatumDo") + MWFL40 datumDo(java.util.Date datumDo); + @Parameter(name = "DatumOd") + MWFL40 datumOd(java.util.Date datumOd); + @Parameter(name = "FrekvenceOpakovani") + MWFL40 frekvenceOpakovani(String frekvenceOpakovani); + @Parameter(name = "HodnotaOpakovani") + MWFL40 hodnotaOpakovani(Long hodnotaOpakovani); + @Parameter(name = "IDObjednavkyRPT") + MWFL40 iDObjednavkyRPT(Long iDObjednavkyRPT); + @Parameter(name = "ISIN") + MWFL40 isin(String isin); + @Parameter(name = "ISIN2") + MWFL40 isin2(String isin2); + @Parameter(name = "KlientIDDisponent") + MWFL40 klientIDDisponent(Long klientIDDisponent); + @Parameter(name = "KonstantniSymbol") + MWFL40 konstantniSymbol(String konstantniSymbol); + @Parameter(name = "Mena") + MWFL40 mena(String mena); + @Parameter(name = "MenaUctu") + MWFL40 menaUctu(String menaUctu); + @Parameter(name = "ObchodniDatum") + MWFL40 obchodniDatum(java.util.Date obchodniDatum); + @Parameter(name = "Objem") + MWFL40 objem(Double objem); + @Parameter(name = "Pobocka") + MWFL40 pobocka(String pobocka); + @Parameter(name = "PobockaVyplaty") + MWFL40 pobockaVyplaty(String pobockaVyplaty); + @Parameter(name = "PocetKS") + MWFL40 pocetKS(Double pocetKS); + @Parameter(name = "SpecifickySymbol") + MWFL40 specifickySymbol(String specifickySymbol); + @Parameter(name = "TypObchodu") + MWFL40 typObchodu(String typObchodu); + @Parameter(name = "TypSmlouvy") + MWFL40 typSmlouvy(String typSmlouvy); + @Parameter(name = "VariabilniSymbol") + MWFL40 variabilniSymbol(String variabilniSymbol); + @Parameter(name = "VlozeniDatum") + MWFL40 vlozeniDatum(java.util.Date vlozeniDatum); + @Parameter(name = "Vyplata") + MWFL40 vyplata(String vyplata); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL40Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL40Response.java new file mode 100644 index 0000000..9b083db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL40Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL40Response { + + @Parameter(name = "IDObjednavkyRPT") + Long iDObjednavkyRPT(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL41.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL41.java new file mode 100644 index 0000000..181efca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL41.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL41 extends MwfRequest { + + @Parameter(name = "CIF") + MWFL41 cif(String cif); + @Parameter(name = "TypSmlouvy") + MWFL41 typSmlouvy(String typSmlouvy); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL41Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL41Data.java new file mode 100644 index 0000000..352a649 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL41Data.java @@ -0,0 +1,125 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFL41Data { + + private Map params; + + public MWFL41Data(Map params) { + this.params = params; + } + + public String rsFrekvenceopakovani() { + return (String) params.get("RS_FREKVENCEOPAKOVANI"); + } + + public Long rsHodnotaopakovani() { + return (Long) params.get("RS_HODNOTAOPAKOVANI"); + } + + public java.util.Date rsDatumod() { + return (java.util.Date) params.get("RS_DATUMOD"); + } + + public java.util.Date rsDatumdo() { + return (java.util.Date) params.get("RS_DATUMDO"); + } + + public Long rsKlietniddisponent() { + return (Long) params.get("RS_KLIETNIDDISPONENT"); + } + + public String rsStavobchodu() { + return (String) params.get("RS_STAVOBCHODU"); + } + + public Long rsIdobjednavkyrpt() { + return (Long) params.get("RS_IDOBJEDNAVKYRPT"); + } + + public String rsIsin() { + return (String) params.get("RS_ISIN"); + } + + public String rsIsin2() { + return (String) params.get("RS_ISIN2"); + } + + public String rsNazev() { + return (String) params.get("RS_NAZEV"); + } + + public String rsNazev2() { + return (String) params.get("RS_NAZEV2"); + } + + public String rsTypobchodu() { + return (String) params.get("RS_TYPOBCHODU"); + } + + public Double rsPocetks() { + return (Double) params.get("RS_POCETKS"); + } + + public Double rsObjem() { + return (Double) params.get("RS_OBJEM"); + } + + public String rsMena() { + return (String) params.get("RS_MENA"); + } + + public String rsVyplata() { + return (String) params.get("RS_VYPLATA"); + } + + public String rsPobockavyplaty() { + return (String) params.get("RS_POBOCKAVYPLATY"); + } + + public String rsCostcentrum() { + return (String) params.get("RS_COSTCENTRUM"); + } + + public String rsDruhuctu() { + return (String) params.get("RS_DRUHUCTU"); + } + + public String rsMenauctu() { + return (String) params.get("RS_MENAUCTU"); + } + + public String rsVariabilnisymbol() { + return (String) params.get("RS_VARIABILNISYMBOL"); + } + + public String rsKonstantnisymbol() { + return (String) params.get("RS_KONSTANTNISYMBOL"); + } + + public String rsSpecifickysymbol() { + return (String) params.get("RS_SPECIFICKYSYMBOL"); + } + + public String rsBankakod() { + return (String) params.get("RS_BANKAKOD"); + } + + public String rsCislouctu() { + return (String) params.get("RS_CISLOUCTU"); + } + + public java.util.Date rsObchodnidatum() { + return (java.util.Date) params.get("RS_OBCHODNIDATUM"); + } + + public java.util.Date rsVlozenidatum() { + return (java.util.Date) params.get("RS_VLOZENIDATUM"); + } + + public String rsPobocka() { + return (String) params.get("RS_POBOCKA"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL41Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL41Response.java new file mode 100644 index 0000000..c2ae82f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL41Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL41Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL43.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL43.java new file mode 100644 index 0000000..2d53179 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL43.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL43 extends MwfRequest { + + @Parameter(name = "Autorizace") + MWFL43 autorizace(String autorizace); + @Parameter(name = "CIF") + MWFL43 cif(String cif); + @Parameter(name = "IDDotaznik") + MWFL43 iDDotaznik(Long iDDotaznik); + @Parameter(name = "Platnost") + MWFL43 platnost(String platnost); + @Parameter(name = "PocetZaznamu") + MWFL43 pocetZaznamu(Long pocetZaznamu); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL43Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL43Data.java new file mode 100644 index 0000000..a66c08b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL43Data.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFL43Data { + + private Map params; + + public MWFL43Data(Map params) { + this.params = params; + } + + public Long rsIddotaznik() { + return (Long) params.get("RS_IDDOTAZNIK"); + } + + public Long rsVerzedotaznik() { + return (Long) params.get("RS_VERZEDOTAZNIK"); + } + + public java.util.Date rsDatumvlozeni() { + return (java.util.Date) params.get("RS_DATUMVLOZENI"); + } + + public String rsTypodpoved() { + return (String) params.get("RS_TYPODPOVED"); + } + + public String rsKategorieklienta() { + return (String) params.get("RS_KATEGORIEKLIENTA"); + } + + public String rsProfilklienta() { + return (String) params.get("RS_PROFILKLIENTA"); + } + + public String rsOtazkaodpoved() { + return (String) params.get("RS_OTAZKAODPOVED"); + } + + public String rsPlatnost() { + return (String) params.get("RS_PLATNOST"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL43Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL43Response.java new file mode 100644 index 0000000..12e0456 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL43Response.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL43Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL44.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL44.java new file mode 100644 index 0000000..87d2f19 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL44.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL44 extends MwfRequest { + + @Parameter(name = "CIF") + MWFL44 cif(String cif); + @Parameter(name = "OtazkaOdpoved") + MWFL44 otazkaOdpoved(String otazkaOdpoved); + @Parameter(name = "TypOdpoved") + MWFL44 typOdpoved(String typOdpoved); + @Parameter(name = "VerzeDotaznik") + MWFL44 verzeDotaznik(Long verzeDotaznik); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL44Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL44Response.java new file mode 100644 index 0000000..20eca7d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL44Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL44Response { + + @Parameter(name = "IDDotaznik") + Long iDDotaznik(); + + @Parameter(name = "KategorieKlienta") + String kategorieKlienta(); + + @Parameter(name = "Platnost") + String platnost(); + + @Parameter(name = "PlatnostDo") + java.util.Date platnostDo(); + + @Parameter(name = "ProfilKlienta") + String profilKlienta(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL45.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL45.java new file mode 100644 index 0000000..b872fe2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL45.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL45 extends MwfRequest { + + @Parameter(name = "IDDotaznik") + MWFL45 iDDotaznik(Long iDDotaznik); + @Parameter(name = "TypOdpoved") + MWFL45 typOdpoved(String typOdpoved); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL45Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL45Response.java new file mode 100644 index 0000000..b59a36a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL45Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL45Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL51.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL51.java new file mode 100644 index 0000000..bf01793 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL51.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL51 extends MwfRequest { + + @Parameter(name = "CisloLeasingoveSmlouvy") + MWFL51 cisloLeasingoveSmlouvy(String cisloLeasingoveSmlouvy); + @Parameter(name = "SPZ") + MWFL51 spz(String spz); + @Parameter(name = "VIN") + MWFL51 vin(String vin); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL51Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL51Response.java new file mode 100644 index 0000000..0077ff6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL51Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL51Response { + + @Parameter(name = "ValidaceResult") + Long validaceResult(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL71.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL71.java new file mode 100644 index 0000000..c41e82d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL71.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL71 extends MwfRequest { + + @Parameter(name = "CIF") + MWFL71 cif(String cif); + @Parameter(name = "CisloBU") + MWFL71 cisloBU(Long cisloBU); + @Parameter(name = "CisloSU") + MWFL71 cisloSU(Long cisloSU); + @Parameter(name = "LANGUAGE") + MWFL71 language(String language); + @Parameter(name = "NeaktivniUctyFlag") + MWFL71 neaktivniUctyFlag(String neaktivniUctyFlag); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL71Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL71Data.java new file mode 100644 index 0000000..6a2d1bb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL71Data.java @@ -0,0 +1,89 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFL71Data { + + private Map params; + + public MWFL71Data(Map params) { + this.params = params; + } + + public Long rsCislosu() { + return (Long) params.get("RS_CISLOSU"); + } + + public Long rsCislobu() { + return (Long) params.get("RS_CISLOBU"); + } + + public String rsVipklient() { + return (String) params.get("RS_VIPKLIENT"); + } + + public Long rsTypuctu() { + return (Long) params.get("RS_TYPUCTU"); + } + + public Long rsRozhodneobdobi() { + return (Long) params.get("RS_ROZHODNEOBDOBI"); + } + + public Double rsBonusovaurokovasazba() { + return (Double) params.get("RS_BONUSOVAUROKOVASAZBA"); + } + + public Long rsPrechodneobdobi() { + return (Long) params.get("RS_PRECHODNEOBDOBI"); + } + + public Long rsCislotp() { + return (Long) params.get("RS_CISLOTP"); + } + + public Double rsMesicniplatba() { + return (Double) params.get("RS_MESICNIPLATBA"); + } + + public String rsStatussf() { + return (String) params.get("RS_STATUSSF"); + } + + public Double rsZustateksu() { + return (Double) params.get("RS_ZUSTATEKSU"); + } + + public Double rsBonusoveuroky() { + return (Double) params.get("RS_BONUSOVEUROKY"); + } + + public java.util.Date rsDatumposledniotocky() { + return (java.util.Date) params.get("RS_DATUMPOSLEDNIOTOCKY"); + } + + public java.util.Date rsDatumnasledujiciotocky() { + return (java.util.Date) params.get("RS_DATUMNASLEDUJICIOTOCKY"); + } + + public java.util.Date rsDatumnaslkonceobdobi() { + return (java.util.Date) params.get("RS_DATUMNASLKONCEOBDOBI"); + } + + public String rsNazevuctu() { + return (String) params.get("RS_NAZEVUCTU"); + } + + public String rsIdentifikatoructu() { + return (String) params.get("RS_IDENTIFIKATORUCTU"); + } + + public String rsNazevuctubu() { + return (String) params.get("RS_NAZEVUCTUBU"); + } + + public String rsIdentifikatoructubu() { + return (String) params.get("RS_IDENTIFIKATORUCTUBU"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL71Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL71Response.java new file mode 100644 index 0000000..cdbc733 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL71Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL71Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Index") + Long index(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL78.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL78.java new file mode 100644 index 0000000..c601487 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL78.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFL78 extends MwfRequest { + + @Parameter(name = "RodneCislo") + MWFL78 rodneCislo(String rodneCislo); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL78Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL78Response.java new file mode 100644 index 0000000..90c3d19 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFL78Response.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFL78Response { + + @Parameter(name = "HistorickaDelikvence") + String historickaDelikvence(); + + @Parameter(name = "InfoLimitExpres") + Double infoLimitExpres(); + + @Parameter(name = "InfoLimitExpresDoplneni") + Double infoLimitExpresDoplneni(); + + @Parameter(name = "InfoLimitFlexikredit") + Double infoLimitFlexikredit(); + + @Parameter(name = "InfoLimitKreditniKarta") + Double infoLimitKreditniKarta(); + + @Parameter(name = "InfoLimitOKKarta") + Double infoLimitOKKarta(); + + @Parameter(name = "UverovyUcet") + String uverovyUcet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLK6.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLK6.java new file mode 100644 index 0000000..a8d0ff6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLK6.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFLK6 extends MwfRequest { + + @Parameter(name = "AGENTID") + MWFLK6 agentid(String agentid); + @Parameter(name = "CASDO") + MWFLK6 casdo(String casdo); + @Parameter(name = "CASOD") + MWFLK6 casod(String casod); + @Parameter(name = "CHANNEL") + MWFLK6 channel(Long channel); + @Parameter(name = "DATUMGENEROVANI") + MWFLK6 datumgenerovani(java.util.Date datumgenerovani); + @Parameter(name = "GEMID3") + MWFLK6 gemid3(String gemid3); + @Parameter(name = "IDOM") + MWFLK6 idom(String idom); + @Parameter(name = "JMENO") + MWFLK6 jmeno(String jmeno); + @Parameter(name = "KLIENT") + MWFLK6 klient(Long klient); + @Parameter(name = "ORDERNOTE") + MWFLK6 ordernote(String ordernote); + @Parameter(name = "ORDERNUM") + MWFLK6 ordernum(String ordernum); + @Parameter(name = "ORDERPRICE") + MWFLK6 orderprice(Long orderprice); + @Parameter(name = "PRIJMENI") + MWFLK6 prijmeni(String prijmeni); + @Parameter(name = "PRODUKT") + MWFLK6 produkt(String produkt); + @Parameter(name = "PRODUKTTYPID") + MWFLK6 produkttypid(Long produkttypid); + @Parameter(name = "TELEFONNICISLO") + MWFLK6 telefonnicislo(String telefonnicislo); + @Parameter(name = "WEB2CALL_ID") + MWFLK6 web2callId(Long web2callId); + @Parameter(name = "ZDROJOVAADRESA") + MWFLK6 zdrojovaadresa(String zdrojovaadresa); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLK6Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLK6Response.java new file mode 100644 index 0000000..d4f9a6c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLK6Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFLK6Response { + + @Parameter(name = "WEB2CALL_ID_OUT") + Long web2callIdOut(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOL.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOL.java new file mode 100644 index 0000000..932225b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOL.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFLOL extends MwfRequest { + + @Parameter(name = "BusinessType") + MWFLOL businessType(String businessType); + @Parameter(name = "ClientAttornies") + MWFLOL clientAttornies(java.util.List clientAttornies); + @Parameter(name = "ClientConsents") + MWFLOL clientConsents(java.util.List clientConsents); + @Parameter(name = "ClientInstId") + MWFLOL clientInstId(String clientInstId); + @Parameter(name = "ClientInstKey") + MWFLOL clientInstKey(Long clientInstKey); + @Parameter(name = "ClientInstSysId") + MWFLOL clientInstSysId(String clientInstSysId); + @Parameter(name = "ClientType") + MWFLOL clientType(String clientType); + @Parameter(name = "ClientUniKey") + MWFLOL clientUniKey(Long clientUniKey); + @Parameter(name = "ConsentBranchId") + MWFLOL consentBranchId(String consentBranchId); + @Parameter(name = "ConsentChannelId") + MWFLOL consentChannelId(String consentChannelId); + @Parameter(name = "ConsentEmployeeId") + MWFLOL consentEmployeeId(String consentEmployeeId); + @Parameter(name = "ConsentMode") + MWFLOL consentMode(String consentMode); + @Parameter(name = "ConsentPromoterId") + MWFLOL consentPromoterId(String consentPromoterId); + @Parameter(name = "ConsentSellerId") + MWFLOL consentSellerId(Long consentSellerId); + @Parameter(name = "ConsentSetId") + MWFLOL consentSetId(String consentSetId); + @Parameter(name = "ConsentSignTime") + MWFLOL consentSignTime(java.util.Date consentSignTime); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOLClientAttornies.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOLClientAttornies.java new file mode 100644 index 0000000..5a25fa5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOLClientAttornies.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFLOLClientAttornies { + + private Map params; + + public MWFLOLClientAttornies(Map params) { + this.params = params; + } + + public String rsClientattorneyinstid() { + return (String) params.get("RS_CLIENTATTORNEYINSTID"); + } + + public Long rsClientattorneyinstkey() { + return (Long) params.get("RS_CLIENTATTORNEYINSTKEY"); + } + + public String rsClientattorneyinstsysid() { + return (String) params.get("RS_CLIENTATTORNEYINSTSYSID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOLClientConsents.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOLClientConsents.java new file mode 100644 index 0000000..f56795b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOLClientConsents.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFLOLClientConsents { + + private Map params; + + public MWFLOLClientConsents(Map params) { + this.params = params; + } + + public String rsConsenttype() { + return (String) params.get("RS_CONSENTTYPE"); + } + + public String rsConsentvalue() { + return (String) params.get("RS_CONSENTVALUE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOLResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOLResponse.java new file mode 100644 index 0000000..1c9ada7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFLOLResponse.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFLOLResponse { + + @Parameter(name = "ConsentGroupKey") + String consentGroupKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFP03.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFP03.java new file mode 100644 index 0000000..07d9956 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFP03.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFP03 extends MwfRequest { + + @Parameter(name = "AP") + MWFP03 ap(String ap); + @Parameter(name = "CisloUctu") + MWFP03 cisloUctu(String cisloUctu); + @Parameter(name = "Stav") + MWFP03 stav(String stav); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFP03Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFP03Response.java new file mode 100644 index 0000000..c883068 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFP03Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFP03Response { + + @Parameter(name = "MTS_ZadostNenalezena") + Boolean mTSZadostNenalezena(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR55.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR55.java new file mode 100644 index 0000000..9d1e617 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR55.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFR55 extends MwfRequest { + + @Parameter(name = "DatumPodpisuZadosti") + MWFR55 datumPodpisuZadosti(java.util.Date datumPodpisuZadosti); + @Parameter(name = "FunkceUrednika") + MWFR55 funkceUrednika(String funkceUrednika); + @Parameter(name = "ObchodniMistoKod") + MWFR55 obchodniMistoKod(String obchodniMistoKod); + @Parameter(name = "UrednikID") + MWFR55 urednikID(String urednikID); + @Parameter(name = "UrednikJmeno") + MWFR55 urednikJmeno(String urednikJmeno); + @Parameter(name = "UrednikPrijmeni") + MWFR55 urednikPrijmeni(String urednikPrijmeni); + @Parameter(name = "UrednikSSO") + MWFR55 urednikSSO(String urednikSSO); + @Parameter(name = "Zadost_KEY") + MWFR55 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR55Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR55Response.java new file mode 100644 index 0000000..0f6dd17 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR55Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFR55Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR59.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR59.java new file mode 100644 index 0000000..1b63429 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR59.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFR59 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFR59 appKey(Long appKey); + @Parameter(name = "APP_SET_KEY") + MWFR59 appSetKey(Long appSetKey); + @Parameter(name = "USER_FUNCTION") + MWFR59 userFunction(String userFunction); + @Parameter(name = "USER_ROLE") + MWFR59 userRole(String userRole); + @Parameter(name = "USER_SSO") + MWFR59 userSso(String userSso); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR59Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR59Response.java new file mode 100644 index 0000000..019133a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFR59Response.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFR59Response { + + @Parameter(name = "TEMP_HIGH_RISK_FLAG") + String tempHighRiskFlag(); + + @Parameter(name = "UMAN1_ALLOWED_FLAG") + String uman1AllowedFlag(); + + @Parameter(name = "UMAN1_USED_FLAG") + String uman1UsedFlag(); + + @Parameter(name = "UMAN2_ALLOWED_FLAG") + String uman2AllowedFlag(); + + @Parameter(name = "UMAN2_USED_FLAG") + String uman2UsedFlag(); + + @Parameter(name = "XMAN_ALLOWED_FLAG") + String xmanAllowedFlag(); + + @Parameter(name = "XMAN_USED_FLAG") + String xmanUsedFlag(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS60.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS60.java new file mode 100644 index 0000000..17cfe63 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS60.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFS60 extends MwfRequest { + + @Parameter(name = "Data") + MWFS60 data(java.util.List data); + @Parameter(name = "Storage_Type") + MWFS60 storageType(String storageType); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS60Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS60Data.java new file mode 100644 index 0000000..99b681a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS60Data.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFS60Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFS60Data() {} + + public static MWFS60Data builder() { + return new MWFS60Data(); + } + + public MWFS60Data rsDocFormat(String rsDocFormat) { + params.put("RS_DOC_FORMAT", rsDocFormat); + return this; + } + + public MWFS60Data rsLocation(String rsLocation) { + params.put("RS_LOCATION", rsLocation); + return this; + } + + public MWFS60Data rsOptions(String rsOptions) { + params.put("RS_OPTIONS", rsOptions); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS60Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS60Response.java new file mode 100644 index 0000000..7d22d7b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS60Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFS60Response { + + @Parameter(name = "Doc_Format") + String docFormat(); + + @Parameter(name = "Index") + Long index(); + + @Parameter(name = "Location") + String location(); + + @Parameter(name = "Page_Count") + Long pageCount(); + + @Parameter(name = "Pocet") + Long pocet(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS85.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS85.java new file mode 100644 index 0000000..472fb22 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS85.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFS85 extends MwfRequest { + + @Parameter(name = "PCOCID") + MWFS85 pcocid(Long pcocid); + @Parameter(name = "PFORID") + MWFS85 pforid(Long pforid); + @Parameter(name = "PMSGDATA") + MWFS85 pmsgdata(String pmsgdata); + @Parameter(name = "PPHONENUMBER") + MWFS85 pphonenumber(String pphonenumber); + @Parameter(name = "PREFID") + MWFS85 prefid(Long prefid); + @Parameter(name = "PSYSID") + MWFS85 psysid(Long psysid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS85Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS85Response.java new file mode 100644 index 0000000..afac2da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFS85Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFS85Response { + + @Parameter(name = "MESGID") + Long mesgid(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFSJ2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFSJ2.java new file mode 100644 index 0000000..1bcce04 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFSJ2.java @@ -0,0 +1,248 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFSJ2 extends MwfRequest { + + @Parameter(name = "IN1CCI") + MWFSJ2 in1cci(String in1cci); + @Parameter(name = "IN1ICL") + MWFSJ2 in1icl(String in1icl); + @Parameter(name = "IN1ICM") + MWFSJ2 in1icm(String in1icm); + @Parameter(name = "IN1ICO") + MWFSJ2 in1ico(Long in1ico); + @Parameter(name = "IN1ICP") + MWFSJ2 in1icp(Double in1icp); + @Parameter(name = "IN1ITP") + MWFSJ2 in1itp(String in1itp); + @Parameter(name = "IN1LOR") + MWFSJ2 in1lor(String in1lor); + @Parameter(name = "IN1OF1") + MWFSJ2 in1of1(Double in1of1); + @Parameter(name = "IN1OF2") + MWFSJ2 in1of2(Double in1of2); + @Parameter(name = "IN1OFC") + MWFSJ2 in1ofc(String in1ofc); + @Parameter(name = "IN1OFE") + MWFSJ2 in1ofe(Double in1ofe); + @Parameter(name = "IN1OFF") + MWFSJ2 in1off(Long in1off); + @Parameter(name = "IN1OFN") + MWFSJ2 in1ofn(java.util.Date in1ofn); + @Parameter(name = "IN1OFP") + MWFSJ2 in1ofp(String in1ofp); + @Parameter(name = "IN1OFS") + MWFSJ2 in1ofs(Long in1ofs); + @Parameter(name = "IN1PBL") + MWFSJ2 in1pbl(String in1pbl); + @Parameter(name = "IN1PCL") + MWFSJ2 in1pcl(String in1pcl); + @Parameter(name = "IN1PCT") + MWFSJ2 in1pct(Double in1pct); + @Parameter(name = "INABAD") + MWFSJ2 inabad(String inabad); + @Parameter(name = "INACC1") + MWFSJ2 inacc1(Long inacc1); + @Parameter(name = "INACCT") + MWFSJ2 inacct(String inacct); + @Parameter(name = "INACLS") + MWFSJ2 inacls(String inacls); + @Parameter(name = "INADEX") + MWFSJ2 inadex(String inadex); + @Parameter(name = "INAFID") + MWFSJ2 inafid(String inafid); + @Parameter(name = "INASTC") + MWFSJ2 inastc(Long inastc); + @Parameter(name = "INASTL") + MWFSJ2 inastl(String inastl); + @Parameter(name = "INBFFG") + MWFSJ2 inbffg(String inbffg); + @Parameter(name = "INBK") + MWFSJ2 inbk(Long inbk); + @Parameter(name = "INBRCH") + MWFSJ2 inbrch(String inbrch); + @Parameter(name = "INCARD") + MWFSJ2 incard(String incard); + @Parameter(name = "INCBOC") + MWFSJ2 incboc(Long incboc); + @Parameter(name = "INCBRL") + MWFSJ2 incbrl(Long incbrl); + @Parameter(name = "INCBST") + MWFSJ2 incbst(String incbst); + @Parameter(name = "INCCAC") + MWFSJ2 inccac(Long inccac); + @Parameter(name = "INCCFG") + MWFSJ2 inccfg(String inccfg); + @Parameter(name = "INCCIN") + MWFSJ2 inccin(Long inccin); + @Parameter(name = "INCDSP") + MWFSJ2 incdsp(Long incdsp); + @Parameter(name = "INCFFA") + MWFSJ2 incffa(String incffa); + @Parameter(name = "INCFFM") + MWFSJ2 incffm(String incffm); + @Parameter(name = "INCIFR") + MWFSJ2 incifr(Long incifr); + @Parameter(name = "INCINX") + MWFSJ2 incinx(java.util.Date incinx); + @Parameter(name = "INCIPR") + MWFSJ2 incipr(String incipr); + @Parameter(name = "INCISP") + MWFSJ2 incisp(Long incisp); + @Parameter(name = "INCLOV") + MWFSJ2 inclov(String inclov); + @Parameter(name = "INCLST") + MWFSJ2 inclst(String inclst); + @Parameter(name = "INCODT") + MWFSJ2 incodt(java.util.Date incodt); + @Parameter(name = "INCORR") + MWFSJ2 incorr(String incorr); + @Parameter(name = "INCPLN") + MWFSJ2 incpln(Long incpln); + @Parameter(name = "INCPRT") + MWFSJ2 incprt(Double incprt); + @Parameter(name = "INDACI") + MWFSJ2 indaci(String indaci); + @Parameter(name = "INDIFR") + MWFSJ2 indifr(Long indifr); + @Parameter(name = "INDINX") + MWFSJ2 indinx(java.util.Date indinx); + @Parameter(name = "INDIPR") + MWFSJ2 indipr(String indipr); + @Parameter(name = "INDISP") + MWFSJ2 indisp(Long indisp); + @Parameter(name = "INDOPN") + MWFSJ2 indopn(java.util.Date indopn); + @Parameter(name = "INEMP") + MWFSJ2 inemp(String inemp); + @Parameter(name = "INGOVT") + MWFSJ2 ingovt(String ingovt); + @Parameter(name = "INHIST") + MWFSJ2 inhist(String inhist); + @Parameter(name = "INIBKV") + MWFSJ2 inibkv(String inibkv); + @Parameter(name = "INIDSP") + MWFSJ2 inidsp(String inidsp); + @Parameter(name = "ININFR") + MWFSJ2 ininfr(Long ininfr); + @Parameter(name = "ININNX") + MWFSJ2 ininnx(java.util.Date ininnx); + @Parameter(name = "ININPR") + MWFSJ2 ininpr(Long ininpr); + @Parameter(name = "ININSP") + MWFSJ2 ininsp(Long ininsp); + @Parameter(name = "INIOVF") + MWFSJ2 iniovf(String iniovf); + @Parameter(name = "INIPSW") + MWFSJ2 inipsw(String inipsw); + @Parameter(name = "INLLF1") + MWFSJ2 inllf1(String inllf1); + @Parameter(name = "INLLF2") + MWFSJ2 inllf2(String inllf2); + @Parameter(name = "INLMAM") + MWFSJ2 inlmam(Double inlmam); + @Parameter(name = "INLP") + MWFSJ2 inlp(String inlp); + @Parameter(name = "INLVOP") + MWFSJ2 inlvop(String inlvop); + @Parameter(name = "INMAIL") + MWFSJ2 inmail(String inmail); + @Parameter(name = "INNAEX") + MWFSJ2 innaex(Long innaex); + @Parameter(name = "INNAFG") + MWFSJ2 innafg(Long innafg); + @Parameter(name = "INNOAC") + MWFSJ2 innoac(String innoac); + @Parameter(name = "INODL") + MWFSJ2 inodl(Long inodl); + @Parameter(name = "INOFF") + MWFSJ2 inoff(String inoff); + @Parameter(name = "INOPT") + MWFSJ2 inopt(Long inopt); + @Parameter(name = "INORDR") + MWFSJ2 inordr(Long inordr); + @Parameter(name = "INPBST") + MWFSJ2 inpbst(String inpbst); + @Parameter(name = "INPERS") + MWFSJ2 inpers(String inpers); + @Parameter(name = "INPNNR") + MWFSJ2 inpnnr(Long inpnnr); + @Parameter(name = "INPRVS") + MWFSJ2 inprvs(String inprvs); + @Parameter(name = "INPUB") + MWFSJ2 inpub(String inpub); + @Parameter(name = "INREGE") + MWFSJ2 inrege(String inrege); + @Parameter(name = "INRELA") + MWFSJ2 inrela(Long inrela); + @Parameter(name = "INREST") + MWFSJ2 inrest(String inrest); + @Parameter(name = "INSCCD") + MWFSJ2 insccd(Long insccd); + @Parameter(name = "INSCFR") + MWFSJ2 inscfr(Long inscfr); + @Parameter(name = "INSCNX") + MWFSJ2 inscnx(java.util.Date inscnx); + @Parameter(name = "INSCPN") + MWFSJ2 inscpn(Long inscpn); + @Parameter(name = "INSCPR") + MWFSJ2 inscpr(String inscpr); + @Parameter(name = "INSCSP") + MWFSJ2 inscsp(Long inscsp); + @Parameter(name = "INSCTL") + MWFSJ2 insctl(String insctl); + @Parameter(name = "INSCTY") + MWFSJ2 inscty(String inscty); + @Parameter(name = "INSEC") + MWFSJ2 insec(String insec); + @Parameter(name = "INSIG") + MWFSJ2 insig(Long insig); + @Parameter(name = "INSIGA") + MWFSJ2 insiga(Long insiga); + @Parameter(name = "INSPIN") + MWFSJ2 inspin(String inspin); + @Parameter(name = "INSTAT") + MWFSJ2 instat(String instat); + @Parameter(name = "INSTBR") + MWFSJ2 instbr(Long instbr); + @Parameter(name = "INSTCD") + MWFSJ2 instcd(String instcd); + @Parameter(name = "INSTCP") + MWFSJ2 instcp(Long instcp); + @Parameter(name = "INSTCT") + MWFSJ2 instct(String instct); + @Parameter(name = "INSTDT") + MWFSJ2 instdt(java.util.Date instdt); + @Parameter(name = "INSTFR") + MWFSJ2 instfr(Long instfr); + @Parameter(name = "INSTSH") + MWFSJ2 instsh(String instsh); + @Parameter(name = "INSTSP") + MWFSJ2 instsp(Long instsp); + @Parameter(name = "INTAFG") + MWFSJ2 intafg(String intafg); + @Parameter(name = "INTFAC") + MWFSJ2 intfac(Long intfac); + @Parameter(name = "INTFAP") + MWFSJ2 intfap(Long intfap); + @Parameter(name = "INTHWA") + MWFSJ2 inthwa(Double inthwa); + @Parameter(name = "INTHWO") + MWFSJ2 inthwo(String inthwo); + @Parameter(name = "INTITL") + MWFSJ2 intitl(String intitl); + @Parameter(name = "INTYP") + MWFSJ2 intyp(Long intyp); + @Parameter(name = "INUFLM") + MWFSJ2 inuflm(Double inuflm); + @Parameter(name = "INUSF1") + MWFSJ2 inusf1(String inusf1); + @Parameter(name = "INUSF2") + MWFSJ2 inusf2(String inusf2); + @Parameter(name = "INWHFG") + MWFSJ2 inwhfg(String inwhfg); + @Parameter(name = "INWHPC") + MWFSJ2 inwhpc(Double inwhpc); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFSJ2Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFSJ2Data.java new file mode 100644 index 0000000..b143337 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFSJ2Data.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFSJ2Data { + + private Map params; + + public MWFSJ2Data(Map params) { + this.params = params; + } + + public String rsOudmsg() { + return (String) params.get("RS_OUDMSG"); + } + + public String rsOuwmsg() { + return (String) params.get("RS_OUWMSG"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFSJ2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFSJ2Response.java new file mode 100644 index 0000000..ce4305c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFSJ2Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFSJ2Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFU20.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFU20.java new file mode 100644 index 0000000..eec8285 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFU20.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFU20 extends MwfRequest { + + @Parameter(name = "PCISLO_LS") + MWFU20 pcisloLs(String pcisloLs); + @Parameter(name = "PDATUM_PU") + MWFU20 pdatumPu(String pdatumPu); + @Parameter(name = "PDRUH_PU") + MWFU20 pdruhPu(Long pdruhPu); + @Parameter(name = "PDV_FAX") + MWFU20 pdvFax(String pdvFax); + @Parameter(name = "PDV_ODESLAT") + MWFU20 pdvOdeslat(String pdvOdeslat); + @Parameter(name = "PID_JAZYK") + MWFU20 pidJazyk(Long pidJazyk); + @Parameter(name = "PJMENO") + MWFU20 pjmeno(String pjmeno); + @Parameter(name = "PKOD_PU_POSK") + MWFU20 pkodPuPosk(String pkodPuPosk); + @Parameter(name = "PLIKVIDATOR_EMAIL") + MWFU20 plikvidatorEmail(String plikvidatorEmail); + @Parameter(name = "PLIKVIDATOR_JMENO") + MWFU20 plikvidatorJmeno(String plikvidatorJmeno); + @Parameter(name = "PLIKVIDATOR_KOD") + MWFU20 plikvidatorKod(String plikvidatorKod); + @Parameter(name = "PLIKVIDATOR_PRIJMENI") + MWFU20 plikvidatorPrijmeni(String plikvidatorPrijmeni); + @Parameter(name = "PLIKVIDATOR_TEL") + MWFU20 plikvidatorTel(String plikvidatorTel); + @Parameter(name = "PODHAD_PU") + MWFU20 podhadPu(Double podhadPu); + @Parameter(name = "PPLNENI_Z") + MWFU20 pplneniZ(Long pplneniZ); + @Parameter(name = "PPOLICIE") + MWFU20 ppolicie(String ppolicie); + @Parameter(name = "PPOLICIE_DATOP") + MWFU20 ppolicieDatop(String ppolicieDatop); + @Parameter(name = "PPOLICIE_MISTO") + MWFU20 ppolicieMisto(String ppolicieMisto); + @Parameter(name = "PPOSKYTOVATEL") + MWFU20 pposkytovatel(Long pposkytovatel); + @Parameter(name = "PPOZNAMKA") + MWFU20 ppoznamka(String ppoznamka); + @Parameter(name = "PPRODUKT") + MWFU20 pprodukt(String pprodukt); + @Parameter(name = "PSPZ") + MWFU20 pspz(String pspz); + @Parameter(name = "PVIN") + MWFU20 pvin(String pvin); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFU20Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFU20Response.java new file mode 100644 index 0000000..75ca799 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFU20Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFU20Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX01.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX01.java new file mode 100644 index 0000000..b38d2dd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX01.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFX01 extends MwfRequest { + + @Parameter(name = "CisloKarty") + MWFX01 cisloKarty(String cisloKarty); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX01Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX01Response.java new file mode 100644 index 0000000..afddd8d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX01Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFX01Response { + + @Parameter(name = "MultibrandDatumDalsihoVypisu") + String multibrandDatumDalsihoVypisu(); + + @Parameter(name = "MultibrandPocetBodu") + Long multibrandPocetBodu(); + + @Parameter(name = "MultibrandStav") + String multibrandStav(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX37.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX37.java new file mode 100644 index 0000000..a2b009c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX37.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFX37 extends MwfRequest { + + @Parameter(name = "RC") + MWFX37 rc(String rc); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX37Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX37Data.java new file mode 100644 index 0000000..471fa1b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX37Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFX37Data { + + private Map params; + + public MWFX37Data(Map params) { + this.params = params; + } + + public String rsProductType() { + return (String) params.get("RS_PRODUCT_TYPE"); + } + + public Double rsInfolimit() { + return (Double) params.get("RS_INFOLIMIT"); + } + + public String rsCurrency() { + return (String) params.get("RS_CURRENCY"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX37Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX37Response.java new file mode 100644 index 0000000..6fdc4bb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX37Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFX37Response { + + @Parameter(name = "Data") + java.util.List data(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX38.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX38.java new file mode 100644 index 0000000..49fc02d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX38.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFX38 extends MwfRequest { + + @Parameter(name = "CIF") + MWFX38 cif(String cif); + @Parameter(name = "RC") + MWFX38 rc(String rc); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX38Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX38Data.java new file mode 100644 index 0000000..1930a25 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX38Data.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFX38Data { + + private Map params; + + public MWFX38Data(Map params) { + this.params = params; + } + + public String rsProductAproved() { + return (String) params.get("RS_PRODUCT_APROVED"); + } + + public Long rsAppKey() { + return (Long) params.get("RS_APP_KEY"); + } + + public java.util.Date rsApplicationDate() { + return (java.util.Date) params.get("RS_APPLICATION_DATE"); + } + + public String rsApplicationState() { + return (String) params.get("RS_APPLICATION_STATE"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX38Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX38Response.java new file mode 100644 index 0000000..a9a6093 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX38Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFX38Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "PracovniPomer") + String pracovniPomer(); + + @Parameter(name = "RodinyStav") + String rodinyStav(); + + @Parameter(name = "Rovnost_RC") + String rovnostRC(); + + @Parameter(name = "StatniPrislusnost") + String statniPrislusnost(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX40.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX40.java new file mode 100644 index 0000000..68bf7cc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX40.java @@ -0,0 +1,76 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFX40 extends MwfRequest { + + @Parameter(name = "ACCOUNT_NUMBER") + MWFX40 accountNumber(String accountNumber); + @Parameter(name = "APP_KEY") + MWFX40 appKey(Long appKey); + @Parameter(name = "CIF") + MWFX40 cif(String cif); + @Parameter(name = "CastkaPrvnihoCerpani") + MWFX40 castkaPrvnihoCerpani(Double castkaPrvnihoCerpani); + @Parameter(name = "CelkovaSplatnaCastka") + MWFX40 celkovaSplatnaCastka(Double celkovaSplatnaCastka); + @Parameter(name = "DatumPravidelnePlatby") + MWFX40 datumPravidelnePlatby(Long datumPravidelnePlatby); + @Parameter(name = "DruhPojisteni") + MWFX40 druhPojisteni(String druhPojisteni); + @Parameter(name = "FILTER_VALID_ONLY_FLAG") + MWFX40 filterValidOnlyFlag(Long filterValidOnlyFlag); + @Parameter(name = "KodProduktu") + MWFX40 kodProduktu(String kodProduktu); + @Parameter(name = "KodProduktuSales") + MWFX40 kodProduktuSales(String kodProduktuSales); + @Parameter(name = "MesicniPlatbaPojisteni") + MWFX40 mesicniPlatbaPojisteni(Double mesicniPlatbaPojisteni); + @Parameter(name = "MesicniSplatka") + MWFX40 mesicniSplatka(Double mesicniSplatka); + @Parameter(name = "MistoNarozeni") + MWFX40 mistoNarozeni(String mistoNarozeni); + @Parameter(name = "OdkladSplatek") + MWFX40 odkladSplatek(Long odkladSplatek); + @Parameter(name = "PocetSplatek") + MWFX40 pocetSplatek(Long pocetSplatek); + @Parameter(name = "Poplatek_PoskytnutiUveru") + MWFX40 poplatekPoskytnutiUveru(Double poplatekPoskytnutiUveru); + @Parameter(name = "Poplatek_PrichoziTransakce") + MWFX40 poplatekPrichoziTransakce(Double poplatekPrichoziTransakce); + @Parameter(name = "Poplatek_VedeniBU") + MWFX40 poplatekVedeniBU(Double poplatekVedeniBU); + @Parameter(name = "Poplatek_VedeniUveru") + MWFX40 poplatekVedeniUveru(Double poplatekVedeniUveru); + @Parameter(name = "PracovniPomer") + MWFX40 pracovniPomer(String pracovniPomer); + @Parameter(name = "Prijmy_Radek101") + MWFX40 prijmyRadek101(Double prijmyRadek101); + @Parameter(name = "RPSN") + MWFX40 rpsn(Double rpsn); + @Parameter(name = "RodinnyZavod") + MWFX40 rodinnyZavod(String rodinnyZavod); + @Parameter(name = "RodinnyZavodPodil") + MWFX40 rodinnyZavodPodil(Double rodinnyZavodPodil); + @Parameter(name = "RodinyStav") + MWFX40 rodinyStav(String rodinyStav); + @Parameter(name = "StatniPrislusnost") + MWFX40 statniPrislusnost(String statniPrislusnost); + @Parameter(name = "TypSlevy") + MWFX40 typSlevy(String typSlevy); + @Parameter(name = "UrokovaSazba") + MWFX40 urokovaSazba(Double urokovaSazba); + @Parameter(name = "VydatKartuKUveru") + MWFX40 vydatKartuKUveru(String vydatKartuKUveru); + @Parameter(name = "VysePosledniSplatky") + MWFX40 vysePosledniSplatky(Double vysePosledniSplatky); + @Parameter(name = "VyseUveru") + MWFX40 vyseUveru(Double vyseUveru); + @Parameter(name = "WEB_Banner") + MWFX40 wEBBanner(String wEBBanner); + @Parameter(name = "WEB_Partner_ID") + MWFX40 wEBPartnerID(String wEBPartnerID); + @Parameter(name = "ZuzeneSJM") + MWFX40 zuzeneSJM(String zuzeneSJM); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX40Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX40Data.java new file mode 100644 index 0000000..8e2c081 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX40Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFX40Data { + + private Map params; + + public MWFX40Data(Map params) { + this.params = params; + } + + public String rsReasonCode() { + return (String) params.get("RS_REASON_CODE"); + } + + public String rsAdcReasonTextExternalCz() { + return (String) params.get("RS_ADC_REASON_TEXT_EXTERNAL_CZ"); + } + + public String rsFormItemAssignmentId() { + return (String) params.get("RS_FORM_ITEM_ASSIGNMENT_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX40Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX40Response.java new file mode 100644 index 0000000..f52ebe5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX40Response.java @@ -0,0 +1,171 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFX40Response { + + @Parameter(name = "ACCOUNT_KEY") + Long accountKey(); + + @Parameter(name = "APP_KEY") + Long appKey(); + + @Parameter(name = "CO") + String co(); + + @Parameter(name = "CONTACT_ADDRESA_DOC_KEY") + Long contactAddresaDocKey(); + + @Parameter(name = "CONTACT_ADDRESA_KEY") + Long contactAddresaKey(); + + @Parameter(name = "CONTACT_CO") + String contactCo(); + + @Parameter(name = "CONTACT_CP") + String contactCp(); + + @Parameter(name = "CONTACT_Obec") + String cONTACTObec(); + + @Parameter(name = "CONTACT_PHONE_KEY") + Long contactPhoneKey(); + + @Parameter(name = "CONTACT_PSC") + String contactPsc(); + + @Parameter(name = "CONTACT_Telefon") + String cONTACTTelefon(); + + @Parameter(name = "CONTACT_Ulice") + String cONTACTUlice(); + + @Parameter(name = "CONTACT_Zeme") + String cONTACTZeme(); + + @Parameter(name = "CO_Zamestnavatele") + String cOZamestnavatele(); + + @Parameter(name = "CP") + String cp(); + + @Parameter(name = "CP_Zamestnavatele") + String cPZamestnavatele(); + + @Parameter(name = "CisloDruhehoDokladu") + String cisloDruhehoDokladu(); + + @Parameter(name = "CisloOP") + String cisloOP(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "DatumNastehovaniOD") + java.util.Date datumNastehovaniOD(); + + @Parameter(name = "DruhBydleni") + String druhBydleni(); + + @Parameter(name = "EMAIL_KEY") + Long emailKey(); + + @Parameter(name = "FIRST_DOCUMENT_ID_KEY") + Long firstDocumentIdKey(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "INST_PT_KEY") + Long instPtKey(); + + @Parameter(name = "Jmeno") + String jmeno(); + + @Parameter(name = "MOBILE_PHONE_KEY") + Long mobilePhoneKey(); + + @Parameter(name = "Mesto") + String mesto(); + + @Parameter(name = "NazevZamestnavatele") + String nazevZamestnavatele(); + + @Parameter(name = "Obec_Zamestnavatele") + String obecZamestnavatele(); + + @Parameter(name = "PERMANENT_ADDR_KEY") + Long permanentAddrKey(); + + @Parameter(name = "PERMANENT_PHONE_KEY") + Long permanentPhoneKey(); + + @Parameter(name = "PRODUCT_CANDIDATE_KEY") + Long productCandidateKey(); + + @Parameter(name = "PRODUCT_CANDIDATE_TYPE") + String productCandidateType(); + + @Parameter(name = "PSC") + String psc(); + + @Parameter(name = "PSC_Zamestnavatele") + String pSCZamestnavatele(); + + @Parameter(name = "PlatnostDruhehoDokladu") + java.util.Date platnostDruhehoDokladu(); + + @Parameter(name = "PlatnostOP") + java.util.Date platnostOP(); + + @Parameter(name = "Povolani") + String povolani(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "PrijmeniRodne") + String prijmeniRodne(); + + @Parameter(name = "RC") + String rc(); + + @Parameter(name = "SECOND_DOCUMENT_ID_KEY") + Long secondDocumentIdKey(); + + @Parameter(name = "Telefon") + String telefon(); + + @Parameter(name = "Telefon_Zamestnavatel") + String telefonZamestnavatel(); + + @Parameter(name = "Ulice") + String ulice(); + + @Parameter(name = "UliceZamestnavatele") + String uliceZamestnavatele(); + + @Parameter(name = "Vzdelani") + String vzdelani(); + + @Parameter(name = "ZAMESTNAVATEL_ADDR_KEY") + Long zamestnavatelAddrKey(); + + @Parameter(name = "ZAMESTNAVATEL_MOBILE_PHONE_KEY") + Long zamestnavatelMobilePhoneKey(); + + @Parameter(name = "ZAMESTNAVATEL_PHONE_KEY") + Long zamestnavatelPhoneKey(); + + @Parameter(name = "ZamestnanDO") + java.util.Date zamestnanDO(); + + @Parameter(name = "ZamestnanOD") + java.util.Date zamestnanOD(); + + @Parameter(name = "Zeme") + String zeme(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX78.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX78.java new file mode 100644 index 0000000..7150893 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX78.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFX78 extends MwfRequest { + + @Parameter(name = "CisloUctu") + MWFX78 cisloUctu(String cisloUctu); + @Parameter(name = "FiltrCastkaDo") + MWFX78 filtrCastkaDo(Double filtrCastkaDo); + @Parameter(name = "FiltrCastkaOd") + MWFX78 filtrCastkaOd(Double filtrCastkaOd); + @Parameter(name = "FiltrDatumDo") + MWFX78 filtrDatumDo(java.util.Date filtrDatumDo); + @Parameter(name = "FiltrDatumOd") + MWFX78 filtrDatumOd(java.util.Date filtrDatumOd); + @Parameter(name = "FiltrKaretniTransakce") + MWFX78 filtrKaretniTransakce(String filtrKaretniTransakce); + @Parameter(name = "FiltrKodBankyPartnersky") + MWFX78 filtrKodBankyPartnersky(String filtrKodBankyPartnersky); + @Parameter(name = "FiltrUcetPartnersky") + MWFX78 filtrUcetPartnersky(String filtrUcetPartnersky); + @Parameter(name = "FiltrVariabilniSymbol") + MWFX78 filtrVariabilniSymbol(String filtrVariabilniSymbol); + @Parameter(name = "KodDC") + MWFX78 kodDC(String kodDC); + @Parameter(name = "RozsirenyFiltr") + MWFX78 rozsirenyFiltr(String rozsirenyFiltr); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX78Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX78Data.java new file mode 100644 index 0000000..b574189 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX78Data.java @@ -0,0 +1,201 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFX78Data { + + private Map params; + + public MWFX78Data(Map params) { + this.params = params; + } + + public Long rsCislotransakce() { + return (Long) params.get("RS_CISLOTRANSAKCE"); + } + + public java.util.Date rsDatumsplatnosti() { + return (java.util.Date) params.get("RS_DATUMSPLATNOSTI"); + } + + public java.util.Date rsDatumzuctovani() { + return (java.util.Date) params.get("RS_DATUMZUCTOVANI"); + } + + public String rsId() { + return (String) params.get("RS_ID"); + } + + public String rsKod() { + return (String) params.get("RS_KOD"); + } + + public String rsKodbanky() { + return (String) params.get("RS_KODBANKY"); + } + + public String rsKodtransakce() { + return (String) params.get("RS_KODTRANSAKCE"); + } + + public String rsOmcr() { + return (String) params.get("RS_OMCR"); + } + + public String rsPopis() { + return (String) params.get("RS_POPIS"); + } + + public String rsPorizujici() { + return (String) params.get("RS_PORIZUJICI"); + } + + public String rsRcode() { + return (String) params.get("RS_RCODE"); + } + + public String rsRseq() { + return (String) params.get("RS_RSEQ"); + } + + public Long rsTicislovety() { + return (Long) params.get("RS_TICISLOVETY"); + } + + public String rsTizdroj() { + return (String) params.get("RS_TIZDROJ"); + } + + public String rsTrtyp() { + return (String) params.get("RS_TRTYP"); + } + + public String rsTyptransakce() { + return (String) params.get("RS_TYPTRANSAKCE"); + } + + public String rsUcetplatce() { + return (String) params.get("RS_UCETPLATCE"); + } + + public String rsUcetprijemce() { + return (String) params.get("RS_UCETPRIJEMCE"); + } + + public java.util.Date rsValuta() { + return (java.util.Date) params.get("RS_VALUTA"); + } + + public Double rsZustatek() { + return (Double) params.get("RS_ZUSTATEK"); + } + + public java.util.Date rsDatumporizeni() { + return (java.util.Date) params.get("RS_DATUMPORIZENI"); + } + + public String rsStav() { + return (String) params.get("RS_STAV"); + } + + public String rsAvpole() { + return (String) params.get("RS_AVPOLE"); + } + + public Double rsDanuroku() { + return (Double) params.get("RS_DANUROKU"); + } + + public String rsKonstantnisymbol() { + return (String) params.get("RS_KONSTANTNISYMBOL"); + } + + public String rsMenatransakce() { + return (String) params.get("RS_MENATRANSAKCE"); + } + + public String rsNazevuctu() { + return (String) params.get("RS_NAZEVUCTU"); + } + + public String rsNazevuctuprijemce() { + return (String) params.get("RS_NAZEVUCTUPRIJEMCE"); + } + + public Long rsSpecifickysymbol() { + return (Long) params.get("RS_SPECIFICKYSYMBOL"); + } + + public String rsStavvk() { + return (String) params.get("RS_STAVVK"); + } + + public Long rsVariabilnisymbol() { + return (Long) params.get("RS_VARIABILNISYMBOL"); + } + + public String rsUcetpartnersky() { + return (String) params.get("RS_UCETPARTNERSKY"); + } + + public String rsNazevuctupartnersky() { + return (String) params.get("RS_NAZEVUCTUPARTNERSKY"); + } + + public String rsKodbankypartnersky() { + return (String) params.get("RS_KODBANKYPARTNERSKY"); + } + + public Double rsCastka() { + return (Double) params.get("RS_CASTKA"); + } + + public String rsKodkreditdebet() { + return (String) params.get("RS_KODKREDITDEBET"); + } + + public String rsKodtransakceexterni() { + return (String) params.get("RS_KODTRANSAKCEEXTERNI"); + } + + public Long rsPoraditransakce() { + return (Long) params.get("RS_PORADITRANSAKCE"); + } + + public String rsPopis2() { + return (String) params.get("RS_POPIS2"); + } + + public String rsPopis3() { + return (String) params.get("RS_POPIS3"); + } + + public String rsAvpole2() { + return (String) params.get("RS_AVPOLE2"); + } + + public String rsAvpole3() { + return (String) params.get("RS_AVPOLE3"); + } + + public String rsAvpole4() { + return (String) params.get("RS_AVPOLE4"); + } + + public String rsReferenceplatce() { + return (String) params.get("RS_REFERENCEPLATCE"); + } + + public Long rsVariabilnisendtosymbol() { + return (Long) params.get("RS_VARIABILNISENDTOSYMBOL"); + } + + public String rsKonstantnisendtosymbol() { + return (String) params.get("RS_KONSTANTNISENDTOSYMBOL"); + } + + public Long rsSpecifickysendtosymbol() { + return (Long) params.get("RS_SPECIFICKYSENDTOSYMBOL"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX78Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX78Response.java new file mode 100644 index 0000000..df0109e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX78Response.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFX78Response { + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "VysledekOK") + String vysledekOK(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX79.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX79.java new file mode 100644 index 0000000..414df4a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX79.java @@ -0,0 +1,210 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFX79 extends MwfRequest { + + @Parameter(name = "ACCOUNT_KEY") + MWFX79 accountKey(Long accountKey); + @Parameter(name = "ACCOUNT_NUMBER") + MWFX79 accountNumber(String accountNumber); + @Parameter(name = "APP_KEY") + MWFX79 appKey(Long appKey); + @Parameter(name = "CO") + MWFX79 co(String co); + @Parameter(name = "CONTACT_ADDRESA_DOC_KEY") + MWFX79 contactAddresaDocKey(Long contactAddresaDocKey); + @Parameter(name = "CONTACT_ADDRESA_KEY") + MWFX79 contactAddresaKey(Long contactAddresaKey); + @Parameter(name = "CONTACT_CO") + MWFX79 contactCo(String contactCo); + @Parameter(name = "CONTACT_CP") + MWFX79 contactCp(String contactCp); + @Parameter(name = "CONTACT_Obec") + MWFX79 cONTACTObec(String cONTACTObec); + @Parameter(name = "CONTACT_PHONE_KEY") + MWFX79 contactPhoneKey(Long contactPhoneKey); + @Parameter(name = "CONTACT_PSC") + MWFX79 contactPsc(String contactPsc); + @Parameter(name = "CONTACT_Telefon") + MWFX79 cONTACTTelefon(String cONTACTTelefon); + @Parameter(name = "CONTACT_Ulice") + MWFX79 cONTACTUlice(String cONTACTUlice); + @Parameter(name = "CONTACT_Zeme") + MWFX79 cONTACTZeme(String cONTACTZeme); + @Parameter(name = "CO_Zamestnavatele") + MWFX79 cOZamestnavatele(String cOZamestnavatele); + @Parameter(name = "CP") + MWFX79 cp(String cp); + @Parameter(name = "CP_Zamestnavatele") + MWFX79 cPZamestnavatele(String cPZamestnavatele); + @Parameter(name = "CastkaPrvnihoCerpani") + MWFX79 castkaPrvnihoCerpani(Double castkaPrvnihoCerpani); + @Parameter(name = "CelkovaSplatnaCastka") + MWFX79 celkovaSplatnaCastka(Double celkovaSplatnaCastka); + @Parameter(name = "CisloDruhehoDokladu") + MWFX79 cisloDruhehoDokladu(String cisloDruhehoDokladu); + @Parameter(name = "CisloOP") + MWFX79 cisloOP(String cisloOP); + @Parameter(name = "CistyMesicniPrijem") + MWFX79 cistyMesicniPrijem(Double cistyMesicniPrijem); + @Parameter(name = "DatumNastehovaniOD") + MWFX79 datumNastehovaniOD(java.util.Date datumNastehovaniOD); + @Parameter(name = "DatumPravidelnePlatby") + MWFX79 datumPravidelnePlatby(Long datumPravidelnePlatby); + @Parameter(name = "DruhBydleni") + MWFX79 druhBydleni(String druhBydleni); + @Parameter(name = "DruhPojisteni") + MWFX79 druhPojisteni(String druhPojisteni); + @Parameter(name = "DruhyDoklad_Zeme") + MWFX79 druhyDokladZeme(String druhyDokladZeme); + @Parameter(name = "EMAIL_KEY") + MWFX79 emailKey(Long emailKey); + @Parameter(name = "Email") + MWFX79 email(String email); + @Parameter(name = "FILTER_VALID_ONLY_FLAG") + MWFX79 filterValidOnlyFlag(Long filterValidOnlyFlag); + @Parameter(name = "FIRST_DOCUMENT_ID_KEY") + MWFX79 firstDocumentIdKey(Long firstDocumentIdKey); + @Parameter(name = "FormLockStatus") + MWFX79 formLockStatus(String formLockStatus); + @Parameter(name = "HrubyRocniPrijem") + MWFX79 hrubyRocniPrijem(Double hrubyRocniPrijem); + @Parameter(name = "ICO") + MWFX79 ico(String ico); + @Parameter(name = "INST_PT_KEY") + MWFX79 instPtKey(Long instPtKey); + @Parameter(name = "Jmeno") + MWFX79 jmeno(String jmeno); + @Parameter(name = "KONTEXT") + MWFX79 kontext(Long kontext); + @Parameter(name = "MOBILE_PHONE_KEY") + MWFX79 mobilePhoneKey(Long mobilePhoneKey); + @Parameter(name = "MesicniPlatbaPojisteni") + MWFX79 mesicniPlatbaPojisteni(Double mesicniPlatbaPojisteni); + @Parameter(name = "MesicniPrijemDomacnosti") + MWFX79 mesicniPrijemDomacnosti(Double mesicniPrijemDomacnosti); + @Parameter(name = "MesicniSplatka") + MWFX79 mesicniSplatka(Double mesicniSplatka); + @Parameter(name = "Mesto") + MWFX79 mesto(String mesto); + @Parameter(name = "MistoNarozeni") + MWFX79 mistoNarozeni(String mistoNarozeni); + @Parameter(name = "Mobile_Phone") + MWFX79 mobilePhone(String mobilePhone); + @Parameter(name = "NazevZamestnavatele") + MWFX79 nazevZamestnavatele(String nazevZamestnavatele); + @Parameter(name = "Obec_Zamestnavatele") + MWFX79 obecZamestnavatele(String obecZamestnavatele); + @Parameter(name = "OdkladSplatek") + MWFX79 odkladSplatek(Long odkladSplatek); + @Parameter(name = "OstatniMesicniSplatky") + MWFX79 ostatniMesicniSplatky(Double ostatniMesicniSplatky); + @Parameter(name = "OstatniZivotniNaklady") + MWFX79 ostatniZivotniNaklady(Double ostatniZivotniNaklady); + @Parameter(name = "PERMANENT_ADDR_KEY") + MWFX79 permanentAddrKey(Long permanentAddrKey); + @Parameter(name = "PERMANENT_PHONE_KEY") + MWFX79 permanentPhoneKey(Long permanentPhoneKey); + @Parameter(name = "PRODUCT_CANDIDATE_KEY") + MWFX79 productCandidateKey(Long productCandidateKey); + @Parameter(name = "PRODUCT_CANDIDATE_TYPE") + MWFX79 productCandidateType(String productCandidateType); + @Parameter(name = "PSC") + MWFX79 psc(String psc); + @Parameter(name = "PSC_Zamestnavatele") + MWFX79 pSCZamestnavatele(String pSCZamestnavatele); + @Parameter(name = "PlatnostDruhehoDokladu") + MWFX79 platnostDruhehoDokladu(java.util.Date platnostDruhehoDokladu); + @Parameter(name = "PlatnostOP") + MWFX79 platnostOP(java.util.Date platnostOP); + @Parameter(name = "PocetPrijmu") + MWFX79 pocetPrijmu(Long pocetPrijmu); + @Parameter(name = "PocetSplatek") + MWFX79 pocetSplatek(Long pocetSplatek); + @Parameter(name = "PocetVyzivovanychOsob") + MWFX79 pocetVyzivovanychOsob(Long pocetVyzivovanychOsob); + @Parameter(name = "Poplatek_PoskytnutiUveru") + MWFX79 poplatekPoskytnutiUveru(Double poplatekPoskytnutiUveru); + @Parameter(name = "Poplatek_PrichoziTransakce") + MWFX79 poplatekPrichoziTransakce(Double poplatekPrichoziTransakce); + @Parameter(name = "Poplatek_VedeniBU") + MWFX79 poplatekVedeniBU(Double poplatekVedeniBU); + @Parameter(name = "Poplatek_VedeniUveru") + MWFX79 poplatekVedeniUveru(Double poplatekVedeniUveru); + @Parameter(name = "Povolani") + MWFX79 povolani(String povolani); + @Parameter(name = "PracovniPomer") + MWFX79 pracovniPomer(String pracovniPomer); + @Parameter(name = "Prijmeni") + MWFX79 prijmeni(String prijmeni); + @Parameter(name = "PrijmeniRodne") + MWFX79 prijmeniRodne(String prijmeniRodne); + @Parameter(name = "Prijmy_Radek101") + MWFX79 prijmyRadek101(Double prijmyRadek101); + @Parameter(name = "PrvniDoklad_Zeme") + MWFX79 prvniDokladZeme(String prvniDokladZeme); + @Parameter(name = "RC") + MWFX79 rc(String rc); + @Parameter(name = "RPSN") + MWFX79 rpsn(Double rpsn); + @Parameter(name = "Rezidence") + MWFX79 rezidence(Long rezidence); + @Parameter(name = "RodinnyZavod") + MWFX79 rodinnyZavod(String rodinnyZavod); + @Parameter(name = "RodinnyZavodPodil") + MWFX79 rodinnyZavodPodil(Double rodinnyZavodPodil); + @Parameter(name = "RodinyStav") + MWFX79 rodinyStav(String rodinyStav); + @Parameter(name = "SECOND_DOCUMENT_ID_KEY") + MWFX79 secondDocumentIdKey(Long secondDocumentIdKey); + @Parameter(name = "SrazkyZeMzdy") + MWFX79 srazkyZeMzdy(Double srazkyZeMzdy); + @Parameter(name = "StatniPrislusnost") + MWFX79 statniPrislusnost(String statniPrislusnost); + @Parameter(name = "Telefon") + MWFX79 telefon(String telefon); + @Parameter(name = "Telefon_MOBILE_Zamestnavatele") + MWFX79 telefonMOBILEZamestnavatele(String telefonMOBILEZamestnavatele); + @Parameter(name = "Telefon_Zamestnavatele") + MWFX79 telefonZamestnavatele(String telefonZamestnavatele); + @Parameter(name = "TypDruhehoDokladu") + MWFX79 typDruhehoDokladu(String typDruhehoDokladu); + @Parameter(name = "TypSlevy") + MWFX79 typSlevy(String typSlevy); + @Parameter(name = "Ulice") + MWFX79 ulice(String ulice); + @Parameter(name = "Ulice_Zamestnavatele") + MWFX79 uliceZamestnavatele(String uliceZamestnavatele); + @Parameter(name = "UrokovaSazba") + MWFX79 urokovaSazba(Double urokovaSazba); + @Parameter(name = "VydatKartuKUveru") + MWFX79 vydatKartuKUveru(String vydatKartuKUveru); + @Parameter(name = "VysePosledniSplatky") + MWFX79 vysePosledniSplatky(Double vysePosledniSplatky); + @Parameter(name = "VyseUveru") + MWFX79 vyseUveru(Double vyseUveru); + @Parameter(name = "Vzdelani") + MWFX79 vzdelani(String vzdelani); + @Parameter(name = "ZAMESTNAVATEL_ADDR_KEY") + MWFX79 zamestnavatelAddrKey(Long zamestnavatelAddrKey); + @Parameter(name = "ZAMESTNAVATEL_MOBILE_PHONE_KEY") + MWFX79 zamestnavatelMobilePhoneKey(Long zamestnavatelMobilePhoneKey); + @Parameter(name = "ZAMESTNAVATEL_PHONE_KEY") + MWFX79 zamestnavatelPhoneKey(Long zamestnavatelPhoneKey); + @Parameter(name = "ZakladDaneZaMinulyRok") + MWFX79 zakladDaneZaMinulyRok(Double zakladDaneZaMinulyRok); + @Parameter(name = "ZamestnanDO") + MWFX79 zamestnanDO(java.util.Date zamestnanDO); + @Parameter(name = "ZamestnanOD") + MWFX79 zamestnanOD(java.util.Date zamestnanOD); + @Parameter(name = "ZdanovaciObdobi") + MWFX79 zdanovaciObdobi(Long zdanovaciObdobi); + @Parameter(name = "Zeme") + MWFX79 zeme(String zeme); + @Parameter(name = "Zeme_Zamestnavatele") + MWFX79 zemeZamestnavatele(String zemeZamestnavatele); + @Parameter(name = "ZuzeneSJM") + MWFX79 zuzeneSJM(String zuzeneSJM); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX79Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX79Data.java new file mode 100644 index 0000000..f0b7ac0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX79Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFX79Data { + + private Map params; + + public MWFX79Data(Map params) { + this.params = params; + } + + public String rsReasonCode() { + return (String) params.get("RS_REASON_CODE"); + } + + public String rsAdcReasonTextExternalCz() { + return (String) params.get("RS_ADC_REASON_TEXT_EXTERNAL_CZ"); + } + + public String rsFormItemAssignmentId() { + return (String) params.get("RS_FORM_ITEM_ASSIGNMENT_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX79Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX79Response.java new file mode 100644 index 0000000..c479371 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX79Response.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFX79Response { + + @Parameter(name = "APP_KEY") + Long appKey(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "INST_PT_KEY") + Long instPtKey(); + + @Parameter(name = "WEB_Banner") + String wEBBanner(); + + @Parameter(name = "WEB_Partner_ID") + String wEBPartnerID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX80.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX80.java new file mode 100644 index 0000000..4cf7c44 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX80.java @@ -0,0 +1,78 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFX80 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFX80 appKey(Long appKey); + @Parameter(name = "CIF") + MWFX80 cif(String cif); + @Parameter(name = "CO") + MWFX80 co(String co); + @Parameter(name = "CO_Zamestnavatele") + MWFX80 cOZamestnavatele(String cOZamestnavatele); + @Parameter(name = "CP") + MWFX80 cp(String cp); + @Parameter(name = "CP_Zamestnavatele") + MWFX80 cPZamestnavatele(String cPZamestnavatele); + @Parameter(name = "CisloOP") + MWFX80 cisloOP(String cisloOP); + @Parameter(name = "CistyMesicniPrijem") + MWFX80 cistyMesicniPrijem(Double cistyMesicniPrijem); + @Parameter(name = "DatumNastehovaniOD") + MWFX80 datumNastehovaniOD(java.util.Date datumNastehovaniOD); + @Parameter(name = "DokonceniOnlineZadosti_FLAG") + MWFX80 dokonceniOnlineZadostiFLAG(String dokonceniOnlineZadostiFLAG); + @Parameter(name = "DruhBydleni") + MWFX80 druhBydleni(String druhBydleni); + @Parameter(name = "Email") + MWFX80 email(String email); + @Parameter(name = "ICO") + MWFX80 ico(String ico); + @Parameter(name = "Jmeno") + MWFX80 jmeno(String jmeno); + @Parameter(name = "Mesto") + MWFX80 mesto(String mesto); + @Parameter(name = "Mobile_Phone") + MWFX80 mobilePhone(String mobilePhone); + @Parameter(name = "Nazev_Zamestnavatele") + MWFX80 nazevZamestnavatele(String nazevZamestnavatele); + @Parameter(name = "Obec_Zamestnavatele") + MWFX80 obecZamestnavatele(String obecZamestnavatele); + @Parameter(name = "PSC") + MWFX80 psc(String psc); + @Parameter(name = "PSC_Zamestnavatele") + MWFX80 pSCZamestnavatele(String pSCZamestnavatele); + @Parameter(name = "PlatnostDruhehoDokladu") + MWFX80 platnostDruhehoDokladu(java.util.Date platnostDruhehoDokladu); + @Parameter(name = "PlatnostOP") + MWFX80 platnostOP(java.util.Date platnostOP); + @Parameter(name = "PocetVyzivovanychOsob") + MWFX80 pocetVyzivovanychOsob(Long pocetVyzivovanychOsob); + @Parameter(name = "PracovniPomer") + MWFX80 pracovniPomer(String pracovniPomer); + @Parameter(name = "Prijmeni") + MWFX80 prijmeni(String prijmeni); + @Parameter(name = "RC") + MWFX80 rc(String rc); + @Parameter(name = "RodinyStav") + MWFX80 rodinyStav(String rodinyStav); + @Parameter(name = "StatniPrislusnost") + MWFX80 statniPrislusnost(String statniPrislusnost); + @Parameter(name = "Telefon") + MWFX80 telefon(String telefon); + @Parameter(name = "Telefon_Zamestnavatele") + MWFX80 telefonZamestnavatele(String telefonZamestnavatele); + @Parameter(name = "Ulice") + MWFX80 ulice(String ulice); + @Parameter(name = "Ulice_Zamestnavatele") + MWFX80 uliceZamestnavatele(String uliceZamestnavatele); + @Parameter(name = "Vzdelani") + MWFX80 vzdelani(String vzdelani); + @Parameter(name = "ZamestnanOD") + MWFX80 zamestnanOD(java.util.Date zamestnanOD); + @Parameter(name = "Zeme") + MWFX80 zeme(String zeme); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX80Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX80Response.java new file mode 100644 index 0000000..1d7aaac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX80Response.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFX80Response { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX81.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX81.java new file mode 100644 index 0000000..72cc1c9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX81.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFX81 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFX81 appKey(Long appKey); + @Parameter(name = "INST_PT_KEY") + MWFX81 instPtKey(Long instPtKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX81Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX81Data.java new file mode 100644 index 0000000..1861d9f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX81Data.java @@ -0,0 +1,169 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFX81Data { + + private Map params; + + public MWFX81Data(Map params) { + this.params = params; + } + + public Long rsVariantaKey() { + return (Long) params.get("RS_VARIANTA_KEY"); + } + + public String rsVariantatyp() { + return (String) params.get("RS_VARIANTATYP"); + } + + public String rsKodproduktu() { + return (String) params.get("RS_KODPRODUKTU"); + } + + public Double rsVyseuveru() { + return (Double) params.get("RS_VYSEUVERU"); + } + + public Double rsMesicnisplatka() { + return (Double) params.get("RS_MESICNISPLATKA"); + } + + public java.util.Date rsDatumprvnisplatky() { + return (java.util.Date) params.get("RS_DATUMPRVNISPLATKY"); + } + + public String rsDeninkasnisplatky() { + return (String) params.get("RS_DENINKASNISPLATKY"); + } + + public String rsOdkladsplatek() { + return (String) params.get("RS_ODKLADSPLATEK"); + } + + public Long rsTerm() { + return (Long) params.get("RS_TERM"); + } + + public Double rsUrokovasazba() { + return (Double) params.get("RS_UROKOVASAZBA"); + } + + public String rsPojisteni() { + return (String) params.get("RS_POJISTENI"); + } + + public Double rsPojistenipoplatek() { + return (Double) params.get("RS_POJISTENIPOPLATEK"); + } + + public Double rsRpsn() { + return (Double) params.get("RS_RPSN"); + } + + public Long rsVariantadoporucenaflag() { + return (Long) params.get("RS_VARIANTADOPORUCENAFLAG"); + } + + public Long rsVariantazvolenaflag() { + return (Long) params.get("RS_VARIANTAZVOLENAFLAG"); + } + + public String rsCurrency() { + return (String) params.get("RS_CURRENCY"); + } + + public Double rsCelkovasplatnacastka() { + return (Double) params.get("RS_CELKOVASPLATNACASTKA"); + } + + public Double rsPoplatekPbt() { + return (Double) params.get("RS_POPLATEK_PBT"); + } + + public Double rsPoplatekVedeniuu() { + return (Double) params.get("RS_POPLATEK_VEDENIUU"); + } + + public Double rsPoplatekPoskytnutiuveru() { + return (Double) params.get("RS_POPLATEK_POSKYTNUTIUVERU"); + } + + public Double rsPoplatekVedenibu() { + return (Double) params.get("RS_POPLATEK_VEDENIBU"); + } + + public Double rsCastkaprvnihocerpani() { + return (Double) params.get("RS_CASTKAPRVNIHOCERPANI"); + } + + public String rsKodproduktusales() { + return (String) params.get("RS_KODPRODUKTUSALES"); + } + + public Double rsVyseposlednisplatky() { + return (Double) params.get("RS_VYSEPOSLEDNISPLATKY"); + } + + public Double rsBonusCastka() { + return (Double) params.get("RS_BONUS_CASTKA"); + } + + public String rsBonusPeriodavyplacenibonusu() { + return (String) params.get("RS_BONUS_PERIODAVYPLACENIBONUSU"); + } + + public String rsBonusTypvyplacenibonusu() { + return (String) params.get("RS_BONUS_TYPVYPLACENIBONUSU"); + } + + public Double rsBonusCelkovavyse() { + return (Double) params.get("RS_BONUS_CELKOVAVYSE"); + } + + public Double rsCerpBonusUrokovasazba() { + return (Double) params.get("RS_CERP_BONUS_UROKOVASAZBA"); + } + + public Double rsCerpBonusRpsn() { + return (Double) params.get("RS_CERP_BONUS_RPSN"); + } + + public Double rsCerpBonusVyseposlednisplatky() { + return (Double) params.get("RS_CERP_BONUS_VYSEPOSLEDNISPLATKY"); + } + + public Double rsCerpUrokovasazba() { + return (Double) params.get("RS_CERP_UROKOVASAZBA"); + } + + public Double rsCerpVysleposlednisplatky() { + return (Double) params.get("RS_CERP_VYSLEPOSLEDNISPLATKY"); + } + + public Double rsCerpCelkovasplatnacastka() { + return (Double) params.get("RS_CERP_CELKOVASPLATNACASTKA"); + } + + public Long rsCerpBonusPocetsplatek() { + return (Long) params.get("RS_CERP_BONUS_POCETSPLATEK"); + } + + public Double rsCerpBonusCelkovacastka() { + return (Double) params.get("RS_CERP_BONUS_CELKOVACASTKA"); + } + + public Long rsCerpPocetsplatek() { + return (Long) params.get("RS_CERP_POCETSPLATEK"); + } + + public Double rsCerpRpsn() { + return (Double) params.get("RS_CERP_RPSN"); + } + + public String rsVarianttypeid() { + return (String) params.get("RS_VARIANTTYPEID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX81Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX81Response.java new file mode 100644 index 0000000..69d2a98 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX81Response.java @@ -0,0 +1,270 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFX81Response { + + @Parameter(name = "BONUS_Castka_OFFERED") + Double bONUSCastkaOFFERED(); + + @Parameter(name = "BONUS_CelkovaVyse_OFFERED") + Double bONUSCelkovaVyseOFFERED(); + + @Parameter(name = "BONUS_PeriodaVyplaceniBonusu_OFFERED") + String bONUSPeriodaVyplaceniBonusuOFFERED(); + + @Parameter(name = "BONUS_TypVyplaceniBonusu_OFFERED") + String bONUSTypVyplaceniBonusuOFFERED(); + + @Parameter(name = "CERP_BONUS_CelkovaCastka_OFFERED") + Double cERPBONUSCelkovaCastkaOFFERED(); + + @Parameter(name = "CERP_BONUS_PocetSplatek_OFFERED") + Long cERPBONUSPocetSplatekOFFERED(); + + @Parameter(name = "CERP_BONUS_RPSN_OFFERED") + Double cerpBonusRpsnOffered(); + + @Parameter(name = "CERP_BONUS_UrokovaSazba_OFFERED") + Double cERPBONUSUrokovaSazbaOFFERED(); + + @Parameter(name = "CERP_BONUS_VysePosledniSplatky_OFFERED") + Double cERPBONUSVysePosledniSplatkyOFFERED(); + + @Parameter(name = "CERP_CelkovaSplatnaCastka_OFFERED") + Double cERPCelkovaSplatnaCastkaOFFERED(); + + @Parameter(name = "CERP_PocetSplatek_OFFERED") + Long cERPPocetSplatekOFFERED(); + + @Parameter(name = "CERP_RPSN_OFFERED") + Double cerpRpsnOffered(); + + @Parameter(name = "CERP_UrokovaSazba_OFFERED") + Double cERPUrokovaSazbaOFFERED(); + + @Parameter(name = "CERP_VysePosledniSplatky_OFFERED") + Double cERPVysePosledniSplatkyOFFERED(); + + @Parameter(name = "CastkaPrvnihoCerpani_OFFERED") + Double castkaPrvnihoCerpaniOFFERED(); + + @Parameter(name = "CastkaPrvnihoCerpani_REQUESTED") + Double castkaPrvnihoCerpaniREQUESTED(); + + @Parameter(name = "CelkovaSplatnaCastka_OFFERED") + Double celkovaSplatnaCastkaOFFERED(); + + @Parameter(name = "CelkovaSplatnaCastka_REQUESTED") + Double celkovaSplatnaCastkaREQUESTED(); + + @Parameter(name = "DECIS_REASON_CODE_REQUESTED") + String decisReasonCodeRequested(); + + @Parameter(name = "DECIS_REASON_TEXT_REQUESTED") + String decisReasonTextRequested(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "Date_REQUESTED") + java.util.Date dateREQUESTED(); + + @Parameter(name = "DatumPravidelnePlatby_OFFERED") + Long datumPravidelnePlatbyOFFERED(); + + @Parameter(name = "DatumPravidelnePlatby_REQUESTED") + Long datumPravidelnePlatbyREQUESTED(); + + @Parameter(name = "DatumPrvniSplatky") + java.util.Date datumPrvniSplatky(); + + @Parameter(name = "DokladPredkladanyKategorie_1") + String dokladPredkladanyKategorie1(); + + @Parameter(name = "DokladPredkladanyKategorie_2") + String dokladPredkladanyKategorie2(); + + @Parameter(name = "DokladPredkladanyKategorie_3") + String dokladPredkladanyKategorie3(); + + @Parameter(name = "DokladPredkladanyKategorie_4") + String dokladPredkladanyKategorie4(); + + @Parameter(name = "DokladPredkladanyKategorie_5") + String dokladPredkladanyKategorie5(); + + @Parameter(name = "DokladPredkladanyUcel_1") + String dokladPredkladanyUcel1(); + + @Parameter(name = "DokladPredkladanyUcel_2") + String dokladPredkladanyUcel2(); + + @Parameter(name = "DokladPredkladanyUcel_3") + String dokladPredkladanyUcel3(); + + @Parameter(name = "DokladPredkladanyUcel_4") + String dokladPredkladanyUcel4(); + + @Parameter(name = "DokladPredkladanyUcel_5") + String dokladPredkladanyUcel5(); + + @Parameter(name = "DokladPredkladanyZdroj_1") + String dokladPredkladanyZdroj1(); + + @Parameter(name = "DokladPredkladanyZdroj_2") + String dokladPredkladanyZdroj2(); + + @Parameter(name = "DokladPredkladanyZdroj_3") + String dokladPredkladanyZdroj3(); + + @Parameter(name = "DokladPredkladanyZdroj_4") + String dokladPredkladanyZdroj4(); + + @Parameter(name = "DokladPredkladanyZdroj_5") + String dokladPredkladanyZdroj5(); + + @Parameter(name = "DokladPredkladany_INST_PT_KEY_1") + Long dokladPredkladanyINSTPTKEY1(); + + @Parameter(name = "DokladPredkladany_INST_PT_KEY_2") + Long dokladPredkladanyINSTPTKEY2(); + + @Parameter(name = "DokladPredkladany_INST_PT_KEY_3") + Long dokladPredkladanyINSTPTKEY3(); + + @Parameter(name = "DokladPredkladany_INST_PT_KEY_4") + Long dokladPredkladanyINSTPTKEY4(); + + @Parameter(name = "DokladPredkladany_INST_PT_KEY_5") + Long dokladPredkladanyINSTPTKEY5(); + + @Parameter(name = "DokladPredkladany_KEY_1") + Long dokladPredkladanyKEY1(); + + @Parameter(name = "DokladPredkladany_KEY_2") + Long dokladPredkladanyKEY2(); + + @Parameter(name = "DokladPredkladany_KEY_3") + Long dokladPredkladanyKEY3(); + + @Parameter(name = "DokladPredkladany_KEY_4") + Long dokladPredkladanyKEY4(); + + @Parameter(name = "DokladPredkladany_KEY_5") + Long dokladPredkladanyKEY5(); + + @Parameter(name = "DruhPojisteni_OFFERED") + String druhPojisteniOFFERED(); + + @Parameter(name = "DruhPojisteni_REQUESTED") + String druhPojisteniREQUESTED(); + + @Parameter(name = "KodProduktuSales_OFFERED") + String kodProduktuSalesOFFERED(); + + @Parameter(name = "KodProduktuSales_REQUESTED") + String kodProduktuSalesREQUESTED(); + + @Parameter(name = "KodProduktu_OFFERED") + String kodProduktuOFFERED(); + + @Parameter(name = "KodProduktu_REQUESTED") + String kodProduktuREQUESTED(); + + @Parameter(name = "MesicniPlatbaPojisteni_OFFERED") + Double mesicniPlatbaPojisteniOFFERED(); + + @Parameter(name = "MesicniPlatbaPojisteni_REQUESTED") + Double mesicniPlatbaPojisteniREQUESTED(); + + @Parameter(name = "MesicniSplatka_OFFERED") + Double mesicniSplatkaOFFERED(); + + @Parameter(name = "MesicniSplatka_REQUESTED") + Double mesicniSplatkaREQUESTED(); + + @Parameter(name = "OdkladSplatek_OFFERED") + Long odkladSplatekOFFERED(); + + @Parameter(name = "OdkladSplatek_REQUESTED") + Long odkladSplatekREQUESTED(); + + @Parameter(name = "Pocet") + Long pocet(); + + @Parameter(name = "PocetSplatek_OFFERED") + Long pocetSplatekOFFERED(); + + @Parameter(name = "PocetSplatek_REQUESTED") + Long pocetSplatekREQUESTED(); + + @Parameter(name = "Poplatek_PBT_OFFERED") + Double poplatekPBTOFFERED(); + + @Parameter(name = "Poplatek_PBT_REQUESTED") + Double poplatekPBTREQUESTED(); + + @Parameter(name = "Poplatek_PoskytnutiUveru_OFFERED") + Double poplatekPoskytnutiUveruOFFERED(); + + @Parameter(name = "Poplatek_PoskytnutiUveru_REQUESTED") + Double poplatekPoskytnutiUveruREQUESTED(); + + @Parameter(name = "Poplatek_VedeniBU_OFFERED") + Double poplatekVedeniBUOFFERED(); + + @Parameter(name = "Poplatek_VedeniBU_REQUESTED") + Double poplatekVedeniBUREQUESTED(); + + @Parameter(name = "Poplatek_VedeniUU_OFFERED") + Double poplatekVedeniUUOFFERED(); + + @Parameter(name = "Poplatek_VedeniUU_REQUESTED") + Double poplatekVedeniUUREQUESTED(); + + @Parameter(name = "RPSN_OFFERED") + Double rpsnOffered(); + + @Parameter(name = "RPSN_REQUESTED") + Double rpsnRequested(); + + @Parameter(name = "State_REQUESTED") + String stateREQUESTED(); + + @Parameter(name = "TypSlevy") + String typSlevy(); + + @Parameter(name = "UUObjektUveru") + String uUObjektUveru(); + + @Parameter(name = "UrokZProdleni") + Double urokZProdleni(); + + @Parameter(name = "UrokovaSazba_OFFERED") + Double urokovaSazbaOFFERED(); + + @Parameter(name = "UrokovaSazba_REQUESTED") + Double urokovaSazbaREQUESTED(); + + @Parameter(name = "VydatKartuKUveru") + String vydatKartuKUveru(); + + @Parameter(name = "VysePosledniSplatky_OFFERED") + Double vysePosledniSplatkyOFFERED(); + + @Parameter(name = "VyseUveru_OFFERED") + Double vyseUveruOFFERED(); + + @Parameter(name = "VyseUveru_REQUESTED") + Double vyseUveruREQUESTED(); + + @Parameter(name = "WEB_Banner") + String wEBBanner(); + + @Parameter(name = "WEB_Partner_ID") + String wEBPartnerID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX82.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX82.java new file mode 100644 index 0000000..604bccf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX82.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFX82 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFX82 appKey(Long appKey); + @Parameter(name = "FILTER_VALID_ONLY_FLAG") + MWFX82 filterValidOnlyFlag(Long filterValidOnlyFlag); + @Parameter(name = "INST_PT_KEY") + MWFX82 instPtKey(Long instPtKey); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX82Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX82Data.java new file mode 100644 index 0000000..fd1810a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX82Data.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.mwf; + +import java.util.Map; + +public class MWFX82Data { + + private Map params; + + public MWFX82Data(Map params) { + this.params = params; + } + + public String rsReasonCode() { + return (String) params.get("RS_REASON_CODE"); + } + + public String rsAdcReasonTextExternalCz() { + return (String) params.get("RS_ADC_REASON_TEXT_EXTERNAL_CZ"); + } + + public String rsFormItemAssignmentId() { + return (String) params.get("RS_FORM_ITEM_ASSIGNMENT_ID"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX82Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX82Response.java new file mode 100644 index 0000000..f930a18 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX82Response.java @@ -0,0 +1,321 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFX82Response { + + @Parameter(name = "ACCOUNT_NUMBER") + String accountNumber(); + + @Parameter(name = "CO") + String co(); + + @Parameter(name = "CONCACT_ADDRESA_DOC_KEY") + Long concactAddresaDocKey(); + + @Parameter(name = "CONCACT_ADDRESA_KEY") + Long concactAddresaKey(); + + @Parameter(name = "CONCACT_PHONE_KEY") + Long concactPhoneKey(); + + @Parameter(name = "CONTACT_ADDRESA_DOC_TYP") + String contactAddresaDocTyp(); + + @Parameter(name = "CONTACT_CO") + String contactCo(); + + @Parameter(name = "CONTACT_CP") + String contactCp(); + + @Parameter(name = "CONTACT_Obec") + String cONTACTObec(); + + @Parameter(name = "CONTACT_PSC") + String contactPsc(); + + @Parameter(name = "CONTACT_Telefon") + String cONTACTTelefon(); + + @Parameter(name = "CONTACT_Ulice") + String cONTACTUlice(); + + @Parameter(name = "CONTACT_Zeme") + String cONTACTZeme(); + + @Parameter(name = "CO_Zamestnavatele") + String cOZamestnavatele(); + + @Parameter(name = "CP") + String cp(); + + @Parameter(name = "CP_Zamestnavatele") + String cPZamestnavatele(); + + @Parameter(name = "CastkaPrvnihoCerpani") + Double castkaPrvnihoCerpani(); + + @Parameter(name = "CelkovaSplatnaCastka") + Double celkovaSplatnaCastka(); + + @Parameter(name = "CisloDruhehoDokladu") + String cisloDruhehoDokladu(); + + @Parameter(name = "CisloOP") + String cisloOP(); + + @Parameter(name = "CistyMesicniPrijem") + Double cistyMesicniPrijem(); + + @Parameter(name = "Data") + java.util.List data(); + + @Parameter(name = "DatumNastehovaniOD") + java.util.Date datumNastehovaniOD(); + + @Parameter(name = "DatumPravidelnePlatby") + Long datumPravidelnePlatby(); + + @Parameter(name = "DruhBydleni") + String druhBydleni(); + + @Parameter(name = "DruhPojisteni") + String druhPojisteni(); + + @Parameter(name = "DruhyDoklad_Zeme") + String druhyDokladZeme(); + + @Parameter(name = "EMAIL_KEY") + Long emailKey(); + + @Parameter(name = "Email") + String email(); + + @Parameter(name = "FIRST_DOCUMENT_ID_KEY") + Long firstDocumentIdKey(); + + @Parameter(name = "FormLockStatus") + String formLockStatus(); + + @Parameter(name = "HrubyRocniPrijem") + Double hrubyRocniPrijem(); + + @Parameter(name = "ICO") + String ico(); + + @Parameter(name = "INST_PT_KEY") + Long instPtKey(); + + @Parameter(name = "Jmeno") + String jmeno(); + + @Parameter(name = "KodProduktu") + String kodProduktu(); + + @Parameter(name = "KodProduktuSales") + String kodProduktuSales(); + + @Parameter(name = "MOBILE_PHONE_KEY") + Long mobilePhoneKey(); + + @Parameter(name = "MesicniPlatbaPojisteni") + Double mesicniPlatbaPojisteni(); + + @Parameter(name = "MesicniPrijemDomacnosti") + Double mesicniPrijemDomacnosti(); + + @Parameter(name = "MesicniSplatka") + Double mesicniSplatka(); + + @Parameter(name = "Mesto") + String mesto(); + + @Parameter(name = "MistoNarozeni") + String mistoNarozeni(); + + @Parameter(name = "Mobile_Phone") + String mobilePhone(); + + @Parameter(name = "Nazev_Zamestnavatele") + String nazevZamestnavatele(); + + @Parameter(name = "Obec_Zamestnavatele") + String obecZamestnavatele(); + + @Parameter(name = "OdkladSplatek") + Long odkladSplatek(); + + @Parameter(name = "OstatniMesicniSplatky") + Double ostatniMesicniSplatky(); + + @Parameter(name = "OstatniZivotniNaklady") + Double ostatniZivotniNaklady(); + + @Parameter(name = "PERMANENT_ADDR_KEY") + Long permanentAddrKey(); + + @Parameter(name = "PERMANENT_PHONE_KEY") + Long permanentPhoneKey(); + + @Parameter(name = "PRODUCT_CANDIDATE_KEY") + Long productCandidateKey(); + + @Parameter(name = "PRODUCT_CANDIDATE_TYPE") + String productCandidateType(); + + @Parameter(name = "PSC") + String psc(); + + @Parameter(name = "PSC_Zamestnavatele") + String pSCZamestnavatele(); + + @Parameter(name = "PlatnostDruhehoDokladu") + java.util.Date platnostDruhehoDokladu(); + + @Parameter(name = "PlatnostOP") + java.util.Date platnostOP(); + + @Parameter(name = "PocetPrijmu") + Long pocetPrijmu(); + + @Parameter(name = "PocetSplatek") + Long pocetSplatek(); + + @Parameter(name = "PocetVyzivovanychOsob") + Long pocetVyzivovanychOsob(); + + @Parameter(name = "Poplatek_PoskytnutiUveru") + Double poplatekPoskytnutiUveru(); + + @Parameter(name = "Poplatek_PrichoziTransakce") + Double poplatekPrichoziTransakce(); + + @Parameter(name = "Poplatek_VedeniBU") + Double poplatekVedeniBU(); + + @Parameter(name = "Poplatek_VedeniUveru") + Double poplatekVedeniUveru(); + + @Parameter(name = "Povolani") + String povolani(); + + @Parameter(name = "PracovniPomer") + String pracovniPomer(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "PrijmeniRodne") + String prijmeniRodne(); + + @Parameter(name = "Prijmy_Radek101") + Double prijmyRadek101(); + + @Parameter(name = "PrvniDoklad_Zeme") + String prvniDokladZeme(); + + @Parameter(name = "RC") + String rc(); + + @Parameter(name = "RPSN") + Double rpsn(); + + @Parameter(name = "Rezidence") + Long rezidence(); + + @Parameter(name = "RodinnyZavod") + String rodinnyZavod(); + + @Parameter(name = "RodinnyZavodPodil") + Double rodinnyZavodPodil(); + + @Parameter(name = "RodinyStav") + String rodinyStav(); + + @Parameter(name = "SECOND_DOCUMENT_ID_KEY") + Long secondDocumentIdKey(); + + @Parameter(name = "SrazkyZeMzdy") + Double srazkyZeMzdy(); + + @Parameter(name = "StatniPrislusnost") + String statniPrislusnost(); + + @Parameter(name = "Telefon") + String telefon(); + + @Parameter(name = "Telefon_MOBILE_Zamestnavatele") + String telefonMOBILEZamestnavatele(); + + @Parameter(name = "Telefon_Zamestnavatele") + String telefonZamestnavatele(); + + @Parameter(name = "TypDruhehoDokladu") + String typDruhehoDokladu(); + + @Parameter(name = "TypPrvnihoDokladu") + String typPrvnihoDokladu(); + + @Parameter(name = "TypSlevy") + String typSlevy(); + + @Parameter(name = "Ulice") + String ulice(); + + @Parameter(name = "Ulice_Zamestnavatele") + String uliceZamestnavatele(); + + @Parameter(name = "UrokovaSazba") + Double urokovaSazba(); + + @Parameter(name = "VydatKartuKUveru") + String vydatKartuKUveru(); + + @Parameter(name = "VysePosledniSplatky") + Double vysePosledniSplatky(); + + @Parameter(name = "VyseUveru") + Double vyseUveru(); + + @Parameter(name = "Vzdelani") + String vzdelani(); + + @Parameter(name = "WEB_Banner") + String wEBBanner(); + + @Parameter(name = "WEB_Partner_ID") + String wEBPartnerID(); + + @Parameter(name = "ZAMESTNAVATEL_ADDR_KEY") + Long zamestnavatelAddrKey(); + + @Parameter(name = "ZAMESTNAVATEL_MOBILE_PHONE_KEY") + Long zamestnavatelMobilePhoneKey(); + + @Parameter(name = "ZAMESTNAVATEL_PHONE_KEY") + Long zamestnavatelPhoneKey(); + + @Parameter(name = "ZakladDaneZaMinulyRok") + Double zakladDaneZaMinulyRok(); + + @Parameter(name = "ZamestnanDO") + java.util.Date zamestnanDO(); + + @Parameter(name = "ZamestnanOD") + java.util.Date zamestnanOD(); + + @Parameter(name = "ZdanovaciObdobi") + Long zdanovaciObdobi(); + + @Parameter(name = "Zeme") + String zeme(); + + @Parameter(name = "Zeme_Zamestnavatele") + String zemeZamestnavatele(); + + @Parameter(name = "ZuzeneSJM") + String zuzeneSJM(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX83.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX83.java new file mode 100644 index 0000000..cda32bb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX83.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFX83 extends MwfRequest { + + @Parameter(name = "APP_KEY") + MWFX83 appKey(Long appKey); + @Parameter(name = "BuildName") + MWFX83 buildName(String buildName); + @Parameter(name = "CM_ID") + MWFX83 cmId(String cmId); + @Parameter(name = "CasoveRazitko") + MWFX83 casoveRazitko(java.util.Date casoveRazitko); + @Parameter(name = "ID") + MWFX83 id(String id); + @Parameter(name = "ID_Dokumentu") + MWFX83 iDDokumentu(String iDDokumentu); + @Parameter(name = "KlientskaStruktura") + MWFX83 klientskaStruktura(Long klientskaStruktura); + @Parameter(name = "Kontext") + MWFX83 kontext(Long kontext); + @Parameter(name = "PodpisAP") + MWFX83 podpisAP(Long podpisAP); + @Parameter(name = "PrintType") + MWFX83 printType(String printType); + @Parameter(name = "Pristup") + MWFX83 pristup(String pristup); + @Parameter(name = "Produkt") + MWFX83 produkt(String produkt); + @Parameter(name = "RC") + MWFX83 rc(String rc); + @Parameter(name = "RtpName") + MWFX83 rtpName(String rtpName); + @Parameter(name = "StavSluzby") + MWFX83 stavSluzby(String stavSluzby); + @Parameter(name = "TypDocumentu") + MWFX83 typDocumentu(String typDocumentu); + @Parameter(name = "TypDokumentuDMS") + MWFX83 typDokumentuDMS(String typDokumentuDMS); + @Parameter(name = "XML") + MWFX83 xml(String xml); + @Parameter(name = "ZpusobPodepsani") + MWFX83 zpusobPodepsani(String zpusobPodepsani); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX83Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX83Response.java new file mode 100644 index 0000000..7cbdc47 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX83Response.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFX83Response { + + @Parameter(name = "BinaryData") + String binaryData(); + + @Parameter(name = "CM_ID") + String cmId(); + + @Parameter(name = "CasoveRazitko") + java.util.Date casoveRazitko(); + + @Parameter(name = "ID") + String id(); + + @Parameter(name = "Pristup") + String pristup(); + + @Parameter(name = "Result") + Long result(); + + @Parameter(name = "ServletPort") + String servletPort(); + + @Parameter(name = "ServletURL") + String servletURL(); + + @Parameter(name = "StavSluzby") + String stavSluzby(); + + @Parameter(name = "ZpusobPodepsani") + String zpusobPodepsani(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX85.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX85.java new file mode 100644 index 0000000..741ce0b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX85.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.ApiVersion; +import cz.moneta.test.harness.support.mwf.MwfRequest; +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWFX85 extends MwfRequest { + + @Parameter(name = "CIF") + MWFX85 cif(String cif); + @Parameter(name = "CIF2") + MWFX85 cif2(String cif2); + @Parameter(name = "Vztah1") + MWFX85 vztah1(String vztah1); + @Parameter(name = "Vztah2") + MWFX85 vztah2(String vztah2); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX85Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX85Response.java new file mode 100644 index 0000000..bd75e50 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFX85Response.java @@ -0,0 +1,4 @@ +package cz.moneta.test.dsl.mwf; + +public interface MWFX85Response { +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY11.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY11.java new file mode 100644 index 0000000..d2c8c02 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY11.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFY11 extends MwfRequest { + + @Parameter(name = "CIF") + MWFY11 cif(String cif); + @Parameter(name = "Channel_ID") + MWFY11 channelID(String channelID); + @Parameter(name = "ObchodniMistoKod") + MWFY11 obchodniMistoKod(String obchodniMistoKod); + @Parameter(name = "SCHV_Varianta_Key") + MWFY11 sCHVVariantaKey(Long sCHVVariantaKey); + @Parameter(name = "UrednikID") + MWFY11 urednikID(String urednikID); + @Parameter(name = "Zadost_KEY") + MWFY11 zadostKEY(Long zadostKEY); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY11Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY11Response.java new file mode 100644 index 0000000..dd834d8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY11Response.java @@ -0,0 +1,120 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFY11Response { + + @Parameter(name = "ACCOUNT_NUMBER") + String accountNumber(); + + @Parameter(name = "CONTACT_CO") + String contactCo(); + + @Parameter(name = "CONTACT_CP") + String contactCp(); + + @Parameter(name = "CONTACT_Obec") + String cONTACTObec(); + + @Parameter(name = "CONTACT_PSC") + String contactPsc(); + + @Parameter(name = "CONTACT_Ulice") + String cONTACTUlice(); + + @Parameter(name = "CONTACT_Zeme") + String cONTACTZeme(); + + @Parameter(name = "CastkaPrvnihoCerpani") + Double castkaPrvnihoCerpani(); + + @Parameter(name = "CelkovaSplatnaCastka") + Double celkovaSplatnaCastka(); + + @Parameter(name = "ChybaZalozeni") + Long chybaZalozeni(); + + @Parameter(name = "DatumPravidelnePlatby") + Long datumPravidelnePlatby(); + + @Parameter(name = "DatumPrvniSplatky") + java.util.Date datumPrvniSplatky(); + + @Parameter(name = "DruhPojisteni") + String druhPojisteni(); + + @Parameter(name = "Jmeno") + String jmeno(); + + @Parameter(name = "LOAN_ACCOUNT_NUMBER") + String loanAccountNumber(); + + @Parameter(name = "MARITAL_STATUS") + String maritalStatus(); + + @Parameter(name = "MesicniPlatbaPojisteni") + Double mesicniPlatbaPojisteni(); + + @Parameter(name = "MesicniPlatbaVedeniUctu") + Double mesicniPlatbaVedeniUctu(); + + @Parameter(name = "MesicniSplatka") + Double mesicniSplatka(); + + @Parameter(name = "MesicniSplatkaCelkem") + Double mesicniSplatkaCelkem(); + + @Parameter(name = "ObchodniMistoKod_OUT") + String obchodniMistoKodOUT(); + + @Parameter(name = "PERM_CO") + String permCo(); + + @Parameter(name = "PERM_CP") + String permCp(); + + @Parameter(name = "PERM_Obec") + String pERMObec(); + + @Parameter(name = "PERM_PSC") + String permPsc(); + + @Parameter(name = "PERM_Ulice") + String pERMUlice(); + + @Parameter(name = "PERM_Zeme") + String pERMZeme(); + + @Parameter(name = "PocetSplatek") + Long pocetSplatek(); + + @Parameter(name = "Poplatek_PoskytnutiUveru") + Double poplatekPoskytnutiUveru(); + + @Parameter(name = "Poplatek_PrichoziTransakce") + Double poplatekPrichoziTransakce(); + + @Parameter(name = "Poplatek_VedeniBU") + Double poplatekVedeniBU(); + + @Parameter(name = "Poplatek_VedeniUveru") + Double poplatekVedeniUveru(); + + @Parameter(name = "Prijmeni") + String prijmeni(); + + @Parameter(name = "RC") + String rc(); + + @Parameter(name = "RPSN") + Double rpsn(); + + @Parameter(name = "UrokovaSazba") + Double urokovaSazba(); + + @Parameter(name = "VyseUveru") + Double vyseUveru(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY14.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY14.java new file mode 100644 index 0000000..e56cada --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY14.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFY14 extends MwfRequest { + + @Parameter(name = "Data") + MWFY14 data(java.util.List data); + @Parameter(name = "Index") + MWFY14 index(Long index); + @Parameter(name = "Kontext") + MWFY14 kontext(Long kontext); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY14Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY14Data.java new file mode 100644 index 0000000..ba3a8ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY14Data.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.Map; +import java.util.HashMap; + +public class MWFY14Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFY14Data() {} + + public static MWFY14Data builder() { + return new MWFY14Data(); + } + + public MWFY14Data rsRc(String rsRc) { + params.put("RS_RC", rsRc); + return this; + } + + public Map getParams() { + return params; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY14Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY14Response.java new file mode 100644 index 0000000..192adcc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/MWFY14Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFY14Response { + + @Parameter(name = "Index") + Long index(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/Nas.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/Nas.java new file mode 100644 index 0000000..94c897b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/Nas.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.mwf; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.support.mwf.Builders; +import cz.moneta.test.harness.support.mwf.MwfRequest; +import cz.moneta.test.harness.support.mwf.TifClient; + +/** + * Calling NAS over TIF is in harness just prepared but never used or tested! + */ +public class Nas { + private final Harness harness; + + public Nas(Harness harness) { + this.harness = harness; + } + + public > R prepareRequestAsCbl(Class mwf) { + return Builders.newMwfBuilder(mwf, TifClient.NAS_CBL, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/calculatetotalexposure/MWFQ68.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/calculatetotalexposure/MWFQ68.java new file mode 100644 index 0000000..90b7336 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/calculatetotalexposure/MWFQ68.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf.calculatetotalexposure; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFQ68 extends MwfRequest { + + @Parameter(name = "IDOsoba") + MWFQ68 iDOsoba(Long iDOsoba); + @Parameter(name = "ID_Navrh") + MWFQ68 iDNavrh(Long iDNavrh); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/calculatetotalexposure/MWFQ68Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/calculatetotalexposure/MWFQ68Response.java new file mode 100644 index 0000000..a4cf5aa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/calculatetotalexposure/MWFQ68Response.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.mwf.calculatetotalexposure; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFQ68Response { + + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/createaccount/MWF172.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/createaccount/MWF172.java new file mode 100644 index 0000000..aaf0d1f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/createaccount/MWF172.java @@ -0,0 +1,96 @@ +package cz.moneta.test.dsl.mwf.createaccount; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF172 extends MwfRequest { + + @Parameter(name = "AAAdresat") + MWF172 aAAdresat(String aAAdresat); + @Parameter(name = "AACO") + MWF172 aaco(String aaco); + @Parameter(name = "AACP") + MWF172 aacp(String aacp); + @Parameter(name = "AACtvrt") + MWF172 aACtvrt(String aACtvrt); + @Parameter(name = "AAObec") + MWF172 aAObec(String aAObec); + @Parameter(name = "AAPSC") + MWF172 aapsc(String aapsc); + @Parameter(name = "AAPosta") + MWF172 aAPosta(String aAPosta); + @Parameter(name = "AAUlice") + MWF172 aAUlice(String aAUlice); + @Parameter(name = "AAZeme") + MWF172 aAZeme(String aAZeme); + @Parameter(name = "BankAtWork") + MWF172 bankAtWork(String bankAtWork); + @Parameter(name = "CIF") + MWF172 cif(String cif); + @Parameter(name = "CisloUctu") + MWF172 cisloUctu(String cisloUctu); + @Parameter(name = "CisloUctuPrijemceKodBanky") + MWF172 cisloUctuPrijemceKodBanky(String cisloUctuPrijemceKodBanky); + @Parameter(name = "DatumNarozeni") + MWF172 datumNarozeni(java.util.Date datumNarozeni); + @Parameter(name = "DatumOtevreni") + MWF172 datumOtevreni(java.util.Date datumOtevreni); + @Parameter(name = "DatumPrvnihoVypisu") + MWF172 datumPrvnihoVypisu(java.util.Date datumPrvnihoVypisu); + @Parameter(name = "DistribuceVypisu") + MWF172 distribuceVypisu(String distribuceVypisu); + @Parameter(name = "DruhKlienta") + MWF172 druhKlienta(String druhKlienta); + @Parameter(name = "DruheJmeno") + MWF172 druheJmeno(String druheJmeno); + @Parameter(name = "ICO_Zamestnavatel") + MWF172 iCOZamestnavatel(String iCOZamestnavatel); + @Parameter(name = "Jmeno") + MWF172 jmeno(String jmeno); + @Parameter(name = "NazevZamestnavatele") + MWF172 nazevZamestnavatele(String nazevZamestnavatele); + @Parameter(name = "NuloveUroceni") + MWF172 nuloveUroceni(String nuloveUroceni); + @Parameter(name = "ObchodniJmeno") + MWF172 obchodniJmeno(String obchodniJmeno); + @Parameter(name = "ObchodniMistoAlternativni") + MWF172 obchodniMistoAlternativni(String obchodniMistoAlternativni); + @Parameter(name = "ObchodniMistoKod") + MWF172 obchodniMistoKod(String obchodniMistoKod); + @Parameter(name = "PausalniPoplatekPocetMesicuZdarma") + MWF172 pausalniPoplatekPocetMesicuZdarma(Long pausalniPoplatekPocetMesicuZdarma); + @Parameter(name = "PeriodaVypisu") + MWF172 periodaVypisu(String periodaVypisu); + @Parameter(name = "PoplatkovyPlan") + MWF172 poplatkovyPlan(String poplatkovyPlan); + @Parameter(name = "PoplatkovyPlanMatersky") + MWF172 poplatkovyPlanMatersky(String poplatkovyPlanMatersky); + @Parameter(name = "PostovniPoukazka") + MWF172 postovniPoukazka(String postovniPoukazka); + @Parameter(name = "PouzitaAA") + MWF172 pouzitaAA(String pouzitaAA); + @Parameter(name = "Prijmeni") + MWF172 prijmeni(String prijmeni); + @Parameter(name = "PrimarniUrednik") + MWF172 primarniUrednik(String primarniUrednik); + @Parameter(name = "ProduktKod") + MWF172 produktKod(String produktKod); + @Parameter(name = "SekundarniUrednik") + MWF172 sekundarniUrednik(String sekundarniUrednik); + @Parameter(name = "TitulPred") + MWF172 titulPred(String titulPred); + @Parameter(name = "TitulZa") + MWF172 titulZa(String titulZa); + @Parameter(name = "TransakceNavic") + MWF172 transakceNavic(String transakceNavic); + @Parameter(name = "UlozPSCBezKontroly") + MWF172 ulozPSCBezKontroly(String ulozPSCBezKontroly); + @Parameter(name = "UrokovaSazba") + MWF172 urokovaSazba(Double urokovaSazba); + @Parameter(name = "UrokovyPlan") + MWF172 urokovyPlan(String urokovyPlan); + @Parameter(name = "VypisNaKonciMesice") + MWF172 vypisNaKonciMesice(Boolean vypisNaKonciMesice); + @Parameter(name = "ZpusobPripisu") + MWF172 zpusobPripisu(String zpusobPripisu); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/createaccount/MWF172Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/createaccount/MWF172Response.java new file mode 100644 index 0000000..7f187ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/createaccount/MWF172Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf.createaccount; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF172Response { + + @Parameter(name = "CisloUctu") + String cisloUctu(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientcomoda/MWFQ35.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientcomoda/MWFQ35.java new file mode 100644 index 0000000..eed5383 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientcomoda/MWFQ35.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.mwf.createclientcomoda; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFQ35 extends MwfRequest { + + @Parameter(name = "Business") + MWFQ35 business(String business); + @Parameter(name = "CIF") + MWFQ35 cif(String cif); + @Parameter(name = "DuvodDotazuDoODS") + MWFQ35 duvodDotazuDoODS(String duvodDotazuDoODS); + @Parameter(name = "IDOsoba") + MWFQ35 iDOsoba(Long iDOsoba); + @Parameter(name = "PriznakBankovnihoTajemstvi") + MWFQ35 priznakBankovnihoTajemstvi(String priznakBankovnihoTajemstvi); + @Parameter(name = "UNIPT_KEY") + MWFQ35 uniptKey(Long uniptKey); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientcomoda/MWFQ35Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientcomoda/MWFQ35Response.java new file mode 100644 index 0000000..847cfbf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientcomoda/MWFQ35Response.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf.createclientcomoda; + +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWFQ35Response { + + @Parameter(name = "CIF") + String cif(); + @Parameter(name = "IDOsoba") + Long iDOsoba(); + @Parameter(name = "UNIPT_KEY") + Long uniptKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientinudebs/MWFA02.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientinudebs/MWFA02.java new file mode 100644 index 0000000..0f7cbf1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientinudebs/MWFA02.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.mwf.createclientinudebs; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFA02 extends MwfRequest { + + @Parameter(name = "ADCKlient") + MWFA02 aDCKlient(String aDCKlient); + @Parameter(name = "Adresat") + MWFA02 adresat(String adresat); + @Parameter(name = "BITSFlag") + MWFA02 bITSFlag(Long bITSFlag); + @Parameter(name = "CIF") + MWFA02 cif(String cif); + @Parameter(name = "Email") + MWFA02 email(String email); + @Parameter(name = "Jmeno") + MWFA02 jmeno(String jmeno); + @Parameter(name = "Mobil") + MWFA02 mobil(String mobil); + @Parameter(name = "MobilPredvolba") + MWFA02 mobilPredvolba(String mobilPredvolba); + @Parameter(name = "ObchodniMistoKod") + MWFA02 obchodniMistoKod(String obchodniMistoKod); + @Parameter(name = "Obec") + MWFA02 obec(String obec); + @Parameter(name = "OsobniCislo") + MWFA02 osobniCislo(String osobniCislo); + @Parameter(name = "PSC") + MWFA02 psc(String psc); + @Parameter(name = "Posta") + MWFA02 posta(String posta); + @Parameter(name = "Prijmeni") + MWFA02 prijmeni(String prijmeni); + @Parameter(name = "TelPredvolba") + MWFA02 telPredvolba(String telPredvolba); + @Parameter(name = "Telefon") + MWFA02 telefon(String telefon); + @Parameter(name = "Titul") + MWFA02 titul(String titul); + @Parameter(name = "TypKlienta") + MWFA02 typKlienta(String typKlienta); + @Parameter(name = "TypUctu") + MWFA02 typUctu(String typUctu); + @Parameter(name = "UcetPoplatku") + MWFA02 ucetPoplatku(String ucetPoplatku); + @Parameter(name = "Ulice") + MWFA02 ulice(String ulice); + @Parameter(name = "Zeme") + MWFA02 zeme(String zeme); + @Parameter(name = "ZkraceneJmeno") + MWFA02 zkraceneJmeno(String zkraceneJmeno); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientinudebs/MWFA02Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientinudebs/MWFA02Response.java new file mode 100644 index 0000000..d068704 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/createclientinudebs/MWFA02Response.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.mwf.createclientinudebs; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFA02Response { + + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/createcustomer/MWF109.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/createcustomer/MWF109.java new file mode 100644 index 0000000..ccad64e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/createcustomer/MWF109.java @@ -0,0 +1,185 @@ +package cz.moneta.test.dsl.mwf.createcustomer; + +import cz.moneta.test.harness.support.mwf.ApiVersion; +import cz.moneta.test.harness.support.mwf.MwfRequest; +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWF109 extends MwfRequest { + + @Parameter(name = "Adresat") + MWF109 Adresat(String Adresat); + @Parameter(name = "CO") + MWF109 Co(String Co); + @Parameter(name = "CP") + MWF109 Cp(String Cp); + @Parameter(name = "CisloPasu") + MWF109 CisloPasu(String CisloPasu); + @Parameter(name = "CistyMesicniPrijem") + MWF109 CistyMesicniPrijem(Double CistyMesicniPrijem); + @Parameter(name = "Ctvrt") + MWF109 Ctvrt(String Ctvrt); + @Parameter(name = "DatumExpiraceKontaktnichUdaju") + MWF109 DatumExpiraceKontaktnichUdaju(java.util.Date DatumExpiraceKontaktnichUdaju); + @Parameter(name = "DatumExpiracePotvrzeniStudent") + MWF109 DatumExpiracePotvrzeniStudent(java.util.Date DatumExpiracePotvrzeniStudent); + @Parameter(name = "DatumNarozeni") + MWF109 DatumNarozeni(java.util.Date DatumNarozeni); + @Parameter(name = "DatumNastehovani") + MWF109 DatumNastehovani(java.util.Date DatumNastehovani); + @Parameter(name = "DatumPotvrzeniPrijmu") + MWF109 DatumPotvrzeniPrijmu(java.util.Date DatumPotvrzeniPrijmu); + @Parameter(name = "DatumZalozeniCIFu") + MWF109 DatumZalozeniCIFu(java.util.Date DatumZalozeniCIFu); + @Parameter(name = "DruhBydleni") + MWF109 DruhBydleni(String DruhBydleni); + @Parameter(name = "DruhKlienta") + MWF109 DruhKlienta(String DruhKlienta); + @Parameter(name = "DruhPrijmuKlienta") + MWF109 DruhPrijmuKlienta(String DruhPrijmuKlienta); + @Parameter(name = "DruhaStatniPrislusnost") + MWF109 DruhaStatniPrislusnost(String DruhaStatniPrislusnost); + @Parameter(name = "DruheJmeno") + MWF109 DruheJmeno(String DruheJmeno); + @Parameter(name = "EMail") + MWF109 EMail(String EMail); + @Parameter(name = "EkonomickySektor") + MWF109 EkonomickySektor(String EkonomickySektor); + @Parameter(name = "FATCA_Flag") + MWF109 FATCAFlag(String FATCAFlag); + @Parameter(name = "Funkce") + MWF109 Funkce(String Funkce); + @Parameter(name = "JinyOsobniDoklad1Cislo") + MWF109 JinyOsobniDoklad1Cislo(String JinyOsobniDoklad1Cislo); + @Parameter(name = "JinyOsobniDoklad1Platnost") + MWF109 JinyOsobniDoklad1Platnost(java.util.Date JinyOsobniDoklad1Platnost); + @Parameter(name = "JinyOsobniDoklad1StatVydal") + MWF109 JinyOsobniDoklad1StatVydal(String JinyOsobniDoklad1StatVydal); + @Parameter(name = "JinyOsobniDoklad1Typ") + MWF109 JinyOsobniDoklad1Typ(String JinyOsobniDoklad1Typ); + @Parameter(name = "JinyOsobniDoklad2Cislo") + MWF109 JinyOsobniDoklad2Cislo(String JinyOsobniDoklad2Cislo); + @Parameter(name = "JinyOsobniDoklad2Platnost") + MWF109 JinyOsobniDoklad2Platnost(java.util.Date JinyOsobniDoklad2Platnost); + @Parameter(name = "JinyOsobniDoklad2StatVydal") + MWF109 JinyOsobniDoklad2StatVydal(String JinyOsobniDoklad2StatVydal); + @Parameter(name = "JinyOsobniDoklad2Typ") + MWF109 JinyOsobniDoklad2Typ(String JinyOsobniDoklad2Typ); + @Parameter(name = "KlasifikaceKlienta") + MWF109 KlasifikaceKlienta(String KlasifikaceKlienta); + @Parameter(name = "KodObchodnihoMista") + MWF109 KodObchodnihoMista(String KodObchodnihoMista); + @Parameter(name = "MistoNarozeni") + MWF109 MistoNarozeni(String MistoNarozeni); + @Parameter(name = "NazevZamestnavatele") + MWF109 NazevZamestnavatele(String NazevZamestnavatele); + @Parameter(name = "NejvyssiDosazeneVzdelani") + MWF109 NejvyssiDosazeneVzdelani(String NejvyssiDosazeneVzdelani); + @Parameter(name = "NoEmailFlag") + MWF109 NoEmailFlag(Long NoEmailFlag); + @Parameter(name = "OPStatVydal") + MWF109 OPStatVydal(String OPStatVydal); + @Parameter(name = "Obec") + MWF109 Obec(String Obec); + @Parameter(name = "Osloveni") + MWF109 Osloveni(String Osloveni); + @Parameter(name = "OsobniBanker") + MWF109 OsobniBanker(String OsobniBanker); + @Parameter(name = "PSC") + MWF109 Psc(String Psc); + @Parameter(name = "PasStatVydal") + MWF109 PasStatVydal(String PasStatVydal); + @Parameter(name = "PlatnostKontaktnichUdaju") + MWF109 PlatnostKontaktnichUdaju(String PlatnostKontaktnichUdaju); + @Parameter(name = "PlatnostOPdo") + MWF109 PlatnostOPdo(java.util.Date PlatnostOPdo); + @Parameter(name = "PlatnostPasuDo") + MWF109 PlatnostPasuDo(java.util.Date PlatnostPasuDo); + @Parameter(name = "PocetVyzivovanychDeti") + MWF109 PocetVyzivovanychDeti(Long PocetVyzivovanychDeti); + @Parameter(name = "Pohlavi") + MWF109 Pohlavi(String Pohlavi); + @Parameter(name = "Posta") + MWF109 Posta(String Posta); + @Parameter(name = "PotvrzeniStudent") + MWF109 PotvrzeniStudent(String PotvrzeniStudent); + @Parameter(name = "Povolani") + MWF109 Povolani(String Povolani); + @Parameter(name = "Prijmeni") + MWF109 Prijmeni(String Prijmeni); + @Parameter(name = "PrijmovaSkupina") + MWF109 PrijmovaSkupina(String PrijmovaSkupina); + @Parameter(name = "PrvniJmeno") + MWF109 PrvniJmeno(String PrvniJmeno); + @Parameter(name = "Rezidence") + MWF109 Rezidence(String Rezidence); + @Parameter(name = "RodinnyStav") + MWF109 RodinnyStav(String RodinnyStav); + @Parameter(name = "RodneCislo") + MWF109 RodneCislo(String RodneCislo); + @Parameter(name = "SerieACisloOP") + MWF109 SerieACisloOP(String SerieACisloOP); + @Parameter(name = "SocialneEkonomickaSkupina") + MWF109 SocialneEkonomickaSkupina(String SocialneEkonomickaSkupina); + @Parameter(name = "SpravniCelek") + MWF109 SpravniCelek(String SpravniCelek); + @Parameter(name = "StatniPrislusnost") + MWF109 StatniPrislusnost(String StatniPrislusnost); + @Parameter(name = "TIN") + MWF109 Tin(String Tin); + @Parameter(name = "TelefonDalsi") + MWF109 TelefonDalsi(String TelefonDalsi); + @Parameter(name = "TelefonDalsiPredvolba") + MWF109 TelefonDalsiPredvolba(String TelefonDalsiPredvolba); + @Parameter(name = "TelefonDomu") + MWF109 TelefonDomu(String TelefonDomu); + @Parameter(name = "TelefonDomuPredvolba") + MWF109 TelefonDomuPredvolba(String TelefonDomuPredvolba); + @Parameter(name = "TelefonMobilni") + MWF109 TelefonMobilni(String TelefonMobilni); + @Parameter(name = "TelefonMobilniPredvolba") + MWF109 TelefonMobilniPredvolba(String TelefonMobilniPredvolba); + @Parameter(name = "TelefonZamestnani") + MWF109 TelefonZamestnani(String TelefonZamestnani); + @Parameter(name = "TelefonZamestnaniPredvolba") + MWF109 TelefonZamestnaniPredvolba(String TelefonZamestnaniPredvolba); + @Parameter(name = "Titul") + MWF109 Titul(String Titul); + @Parameter(name = "TitulZaJmenem") + MWF109 TitulZaJmenem(String TitulZaJmenem); + @Parameter(name = "TypDruhehoDokladu") + MWF109 TypDruhehoDokladu(String TypDruhehoDokladu); + @Parameter(name = "TypKlienta") + MWF109 TypKlienta(String TypKlienta); + @Parameter(name = "Ulice") + MWF109 Ulice(String Ulice); + @Parameter(name = "UlozPSCBezKontroly") + MWF109 UlozPSCBezKontroly(String UlozPSCBezKontroly); + @Parameter(name = "Urednik") + MWF109 Urednik(String Urednik); + @Parameter(name = "VztahKBance") + MWF109 VztahKBance(String VztahKBance); + @Parameter(name = "ZAMCO") + MWF109 Zamco(String Zamco); + @Parameter(name = "ZAMCP") + MWF109 Zamcp(String Zamcp); + @Parameter(name = "ZAMICO") + MWF109 Zamico(String Zamico); + @Parameter(name = "ZAMPSC") + MWF109 Zampsc(String Zampsc); + @Parameter(name = "ZAMPosta") + MWF109 ZAMPosta(String ZAMPosta); + @Parameter(name = "ZAMUlice") + MWF109 ZAMUlice(String ZAMUlice); + @Parameter(name = "ZamObec") + MWF109 ZamObec(String ZamObec); + @Parameter(name = "ZamestnanOd") + MWF109 ZamestnanOd(java.util.Date ZamestnanOd); + @Parameter(name = "Zeme") + MWF109 Zeme(String Zeme); + @Parameter(name = "ZemeNarozeni") + MWF109 ZemeNarozeni(String ZemeNarozeni); + @Parameter(name = "ZkraceneJmeno") + MWF109 ZkraceneJmeno(String ZkraceneJmeno); + @Parameter(name = "ZuzeneSJM") + MWF109 ZuzeneSJM(String ZuzeneSJM); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/createcustomer/MWF109Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/createcustomer/MWF109Response.java new file mode 100644 index 0000000..8bccbe7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/createcustomer/MWF109Response.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.mwf.createcustomer; + +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWF109Response { + + @Parameter(name = "CIF") + String Cif(); + + @Parameter(name = "EkonomickySektor") + String EkonomickySektor(); + + @Parameter(name = "IDSdeleniEmail") + Long IDSdeleniEmail(); + + @Parameter(name = "IDSdeleniExpiraceKU") + Long IDSdeleniExpiraceKU(); + + @Parameter(name = "IDSdeleniMobil") + Long IDSdeleniMobil(); + + @Parameter(name = "IDSdeleniZuzeneSJM") + Long IDSdeleniZuzeneSJM(); + + @Parameter(name = "IDUnifikovanehoKlienta") + Long IDUnifikovanehoKlienta(); + + @Parameter(name = "Rezidence") + String Rezidence(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/createinternetbanka/MWFA03.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/createinternetbanka/MWFA03.java new file mode 100644 index 0000000..cbeafbd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/createinternetbanka/MWFA03.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.mwf.createinternetbanka; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFA03 extends MwfRequest { + + @Parameter(name = "CIF") + MWFA03 cif(String cif); + @Parameter(name = "CisloObalky") + MWFA03 cisloObalky(String cisloObalky); + @Parameter(name = "DenniLimit") + MWFA03 denniLimit(Double denniLimit); + @Parameter(name = "DenniLimitAnoNe") + MWFA03 denniLimitAnoNe(String denniLimitAnoNe); + @Parameter(name = "FreeChannel") + MWFA03 freeChannel(String freeChannel); + @Parameter(name = "Kanal") + MWFA03 kanal(String kanal); + @Parameter(name = "MaIBsKreditkou") + MWFA03 maIBsKreditkou(String maIBsKreditkou); + @Parameter(name = "ObchodniMistoAlternativni") + MWFA03 obchodniMistoAlternativni(String obchodniMistoAlternativni); + @Parameter(name = "ObchodniMistoKod") + MWFA03 obchodniMistoKod(String obchodniMistoKod); + @Parameter(name = "PozadavekAktivace") + MWFA03 pozadavekAktivace(Long pozadavekAktivace); + @Parameter(name = "Prava") + MWFA03 prava(String prava); + @Parameter(name = "Predvolba") + MWFA03 predvolba(String predvolba); + @Parameter(name = "PredvolbaMobKey") + MWFA03 predvolbaMobKey(String predvolbaMobKey); + @Parameter(name = "SMSInfo") + MWFA03 sMSInfo(Boolean sMSInfo); + @Parameter(name = "SouhlasSMobilnimKlicem") + MWFA03 souhlasSMobilnimKlicem(String souhlasSMobilnimKlicem); + @Parameter(name = "TelefoniCislo") + MWFA03 telefoniCislo(String telefoniCislo); + @Parameter(name = "TelefoniCisloMobKey") + MWFA03 telefoniCisloMobKey(String telefoniCisloMobKey); + @Parameter(name = "TydenniLimit") + MWFA03 tydenniLimit(Double tydenniLimit); + @Parameter(name = "TydenniLimitAnoNe") + MWFA03 tydenniLimitAnoNe(String tydenniLimitAnoNe); + @Parameter(name = "UzivatelID") + MWFA03 uzivatelID(Long uzivatelID); + @Parameter(name = "ZacatekPoplatkovani") + MWFA03 zacatekPoplatkovani(java.util.Date zacatekPoplatkovani); + @Parameter(name = "ZpusobAutentizace") + MWFA03 zpusobAutentizace(String zpusobAutentizace); + @Parameter(name = "ZpusobCertifikace") + MWFA03 zpusobCertifikace(String zpusobCertifikace); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/createinternetbanka/MWFA03Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/createinternetbanka/MWFA03Response.java new file mode 100644 index 0000000..dce26ab --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/createinternetbanka/MWFA03Response.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.mwf.createinternetbanka; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFA03Response { + + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/editpage/MWFAJ2.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/editpage/MWFAJ2.java new file mode 100644 index 0000000..d360262 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/editpage/MWFAJ2.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf.editpage; + +import cz.moneta.test.harness.support.mwf.ApiVersion; +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +@ApiVersion(versionTST1 = "793", versionPPE = "502") +public interface MWFAJ2 extends MwfRequest { + + @Parameter(name = "ID_Navrh") + MWFAJ2 iDNavrh(Long iDNavrh); + @Parameter(name = "RS_Obrazovka") + MWFAJ2 rSObrazovka(String rSObrazovka); + @Parameter(name = "RS_Stav") + MWFAJ2 rSStav(String rSStav); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/editpage/MWFAJ2Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/editpage/MWFAJ2Response.java new file mode 100644 index 0000000..26fa622 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/editpage/MWFAJ2Response.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.mwf.editpage; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFAJ2Response { + + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/employeecount/MWFKE1.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/employeecount/MWFKE1.java new file mode 100644 index 0000000..bb1b86d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/employeecount/MWFKE1.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.mwf.employeecount; + +import cz.moneta.test.harness.support.mwf.ApiVersion; +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +@ApiVersion(versionTST1 = "792", versionPPE = "498") +public interface MWFKE1 extends MwfRequest { + + @Parameter(name = "EmployeeCount") + MWFKE1 employeeCount(Long employeeCount); + @Parameter(name = "EmployeeCountValidByUserId") + MWFKE1 employeeCountValidByUserId(String employeeCountValidByUserId); + @Parameter(name = "EmployeeCountValidDate") + MWFKE1 employeeCountValidDate(java.util.Date employeeCountValidDate); + @Parameter(name = "PersonId") + MWFKE1 personId(Long personId); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/employeecount/MWFKE1Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/employeecount/MWFKE1Response.java new file mode 100644 index 0000000..cdde023 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/employeecount/MWFKE1Response.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.mwf.employeecount; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFKE1Response { + + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/existingclientudebs/MWF391.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/existingclientudebs/MWF391.java new file mode 100644 index 0000000..b7412bf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/existingclientudebs/MWF391.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf.existingclientudebs; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF391 extends MwfRequest { + + @Parameter(name = "CIF") + MWF391 cif(String cif); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/existingclientudebs/MWF391Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/existingclientudebs/MWF391Response.java new file mode 100644 index 0000000..1b5e4db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/existingclientudebs/MWF391Response.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf.existingclientudebs; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF391Response { + + @Parameter(name = "ADCKlient") + String aDCKlient(); + @Parameter(name = "ExistujeKlient") + Long existujeKlient(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/findunifiedclient/MWFHK8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/findunifiedclient/MWFHK8.java new file mode 100644 index 0000000..e661d0a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/findunifiedclient/MWFHK8.java @@ -0,0 +1,70 @@ +package cz.moneta.test.dsl.mwf.findunifiedclient; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFHK8 extends MwfRequest { + + @Parameter(name = "Adresy_OutputAktualniFlag") + MWFHK8 adresyOutputAktualniFlag(String adresyOutputAktualniFlag); + @Parameter(name = "Adresy_OutputSysIDs") + MWFHK8 adresyOutputSysIDs(String adresyOutputSysIDs); + @Parameter(name = "BusinessRequestor") + MWFHK8 businessRequestor(String businessRequestor); + @Parameter(name = "BusinessTarget") + MWFHK8 businessTarget(String businessTarget); + @Parameter(name = "CisloDokladu") + MWFHK8 cisloDokladu(String cisloDokladu); + @Parameter(name = "CisloKarty") + MWFHK8 cisloKarty(String cisloKarty); + @Parameter(name = "CisloSmlouvy") + MWFHK8 cisloSmlouvy(String cisloSmlouvy); + @Parameter(name = "CisloUctu") + MWFHK8 cisloUctu(String cisloUctu); + @Parameter(name = "DatumNarozeni") + MWFHK8 datumNarozeni(java.util.Date datumNarozeni); + @Parameter(name = "DokladTyp") + MWFHK8 dokladTyp(String dokladTyp); + @Parameter(name = "ICO") + MWFHK8 ico(String ico); + @Parameter(name = "IDAdresy") + MWFHK8 iDAdresy(Long iDAdresy); + @Parameter(name = "IDAdresy_SRCSystem") + MWFHK8 iDAdresySRCSystem(String iDAdresySRCSystem); + @Parameter(name = "IDCustomer") + MWFHK8 iDCustomer(String iDCustomer); + @Parameter(name = "IDInstanceKlienta") + MWFHK8 iDInstanceKlienta(Long iDInstanceKlienta); + @Parameter(name = "IDKonsolidovanehoKlienta") + MWFHK8 iDKonsolidovanehoKlienta(Long iDKonsolidovanehoKlienta); + @Parameter(name = "IDUnifikovanehoKlienta") + MWFHK8 iDUnifikovanehoKlienta(Long iDUnifikovanehoKlienta); + @Parameter(name = "IDZadosti") + MWFHK8 iDZadosti(String iDZadosti); + @Parameter(name = "IDZdrojovehoSystemu") + MWFHK8 iDZdrojovehoSystemu(String iDZdrojovehoSystemu); + @Parameter(name = "IDZdrojovehoSystemu_OUTPUT") + MWFHK8 iDZdrojovehoSystemuOUTPUT(String iDZdrojovehoSystemuOUTPUT); + @Parameter(name = "Jmeno") + MWFHK8 jmeno(String jmeno); + @Parameter(name = "KartaRole") + MWFHK8 kartaRole(String kartaRole); + @Parameter(name = "MaximalniPocetZaznamu") + MWFHK8 maximalniPocetZaznamu(Long maximalniPocetZaznamu); + @Parameter(name = "NazevFirmy") + MWFHK8 nazevFirmy(String nazevFirmy); + @Parameter(name = "Prijmeni") + MWFHK8 prijmeni(String prijmeni); + @Parameter(name = "Priznak_BankovniTajemstvi") + MWFHK8 priznakBankovniTajemstvi(String priznakBankovniTajemstvi); + @Parameter(name = "Priznak_RozsirenyVystup") + MWFHK8 priznakRozsirenyVystup(String priznakRozsirenyVystup); + @Parameter(name = "RC") + MWFHK8 rc(String rc); + @Parameter(name = "TypyOsobyFiltr") + MWFHK8 typyOsobyFiltr(String typyOsobyFiltr); + @Parameter(name = "UcelDotazu") + MWFHK8 ucelDotazu(String ucelDotazu); + @Parameter(name = "ZECO") + MWFHK8 zeco(String zeco); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/findunifiedclient/MWFHK8Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/findunifiedclient/MWFHK8Data.java new file mode 100644 index 0000000..55a85c8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/findunifiedclient/MWFHK8Data.java @@ -0,0 +1,125 @@ +package cz.moneta.test.dsl.mwf.findunifiedclient; + +import java.util.Map; + +public class MWFHK8Data { + + private Map params; + + public MWFHK8Data(Map params) { + this.params = params; + } + + public Long rsIdunifikovanehoklienta() { + return (Long) params.get("RS_IDUNIFIKOVANEHOKLIENTA"); + } + + public String rsBusinesstarget() { + return (String) params.get("RS_BUSINESSTARGET"); + } + + public String rsRc() { + return (String) params.get("RS_RC"); + } + + public String rsIco() { + return (String) params.get("RS_ICO"); + } + + public String rsIdcustomer() { + return (String) params.get("RS_IDCUSTOMER"); + } + + public String rsTyposoby() { + return (String) params.get("RS_TYPOSOBY"); + } + + public java.util.Date rsDatumnarozeni() { + return (java.util.Date) params.get("RS_DATUMNAROZENI"); + } + + public String rsTitulpred() { + return (String) params.get("RS_TITULPRED"); + } + + public String rsTitulza() { + return (String) params.get("RS_TITULZA"); + } + + public String rsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public String rsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public String rsNazev() { + return (String) params.get("RS_NAZEV"); + } + + public String rsPsc() { + return (String) params.get("RS_PSC"); + } + + public String rsMesto() { + return (String) params.get("RS_MESTO"); + } + + public String rsPohlavi() { + return (String) params.get("RS_POHLAVI"); + } + + public String rsZeme() { + return (String) params.get("RS_ZEME"); + } + + public String rsPravniforma() { + return (String) params.get("RS_PRAVNIFORMA"); + } + + public String rsStatniprislusnost() { + return (String) params.get("RS_STATNIPRISLUSNOST"); + } + + public String rsCislopopisne() { + return (String) params.get("RS_CISLOPOPISNE"); + } + + public Long rsIdkonsolidovanehoklienta() { + return (Long) params.get("RS_IDKONSOLIDOVANEHOKLIENTA"); + } + + public Long rsId101instance() { + return (Long) params.get("RS_ID101INSTANCE"); + } + + public String rsUlice() { + return (String) params.get("RS_ULICE"); + } + + public String rsCisloorientacni() { + return (String) params.get("RS_CISLOORIENTACNI"); + } + + public String rsCif() { + return (String) params.get("RS_CIF"); + } + + public Long rsIdcustomercount() { + return (Long) params.get("RS_IDCUSTOMERCOUNT"); + } + + public String rsStavmanualunifikace() { + return (String) params.get("RS_STAVMANUALUNIFIKACE"); + } + + public java.util.Date rsUmrtidatum() { + return (java.util.Date) params.get("RS_UMRTIDATUM"); + } + + public Long rsUmrtipriznak() { + return (Long) params.get("RS_UMRTIPRIZNAK"); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/findunifiedclient/MWFHK8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/findunifiedclient/MWFHK8Response.java new file mode 100644 index 0000000..165073c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/findunifiedclient/MWFHK8Response.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.mwf.findunifiedclient; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFHK8Response { + + @Parameter(name = "Data") + java.util.List data(); + @Parameter(name = "Pocet") + Long pocet(); + @Parameter(name = "PocetNalezenychZaznamu") + Long pocetNalezenychZaznamu(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/gdprconsent/MWF6FA.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/gdprconsent/MWF6FA.java new file mode 100644 index 0000000..6ded5a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/gdprconsent/MWF6FA.java @@ -0,0 +1,72 @@ +package cz.moneta.test.dsl.mwf.gdprconsent; + +import cz.moneta.test.harness.support.mwf.MwfRequest; +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWF6FA extends MwfRequest { + + @Parameter(name = "BusinessType") + MWF6FA businessType(String businessType); + @Parameter(name = "ClientInstId") + MWF6FA clientInstId(String clientInstId); + @Parameter(name = "ClientInstKey") + MWF6FA clientInstKey(Long clientInstKey); + @Parameter(name = "ClientInstSysId") + MWF6FA clientInstSysId(String clientInstSysId); + @Parameter(name = "ClientRelationInstKey") + MWF6FA clientRelationInstKey(Long clientRelationInstKey); + @Parameter(name = "ClientRelationInstSysId") + MWF6FA clientRelationInstSysId(String clientRelationInstSysId); + @Parameter(name = "ClientRelationUniKey") + MWF6FA clientRelationUniKey(Long clientRelationUniKey); + @Parameter(name = "ClientType") + MWF6FA clientType(String clientType); + @Parameter(name = "ClientUniKey") + MWF6FA clientUniKey(Long clientUniKey); + @Parameter(name = "ConsType_CommBankSecretByUnsecured") + MWF6FA consTypeCommBankSecretByUnsecured(String consTypeCommBankSecretByUnsecured); + @Parameter(name = "ConsType_IdentityDataProcessing") + MWF6FA consTypeIdentityDataProcessing(String consTypeIdentityDataProcessing); + @Parameter(name = "ConsType_IdentityPapersCopy") + MWF6FA consTypeIdentityPapersCopy(String consTypeIdentityPapersCopy); + @Parameter(name = "ConsType_MarketingByAllChannels") + MWF6FA consTypeMarketingByAllChannels(String consTypeMarketingByAllChannels); + @Parameter(name = "ConsType_MarketingByEmail") + MWF6FA consTypeMarketingByEmail(String consTypeMarketingByEmail); + @Parameter(name = "ConsType_MarketingByOnline") + MWF6FA consTypeMarketingByOnline(String consTypeMarketingByOnline); + @Parameter(name = "ConsType_MarketingByPhone") + MWF6FA consTypeMarketingByPhone(String consTypeMarketingByPhone); + @Parameter(name = "ConsType_MarketingByPost") + MWF6FA consTypeMarketingByPost(String consTypeMarketingByPost); + @Parameter(name = "ConsType_MarketingBySurvey") + MWF6FA consTypeMarketingBySurvey(String consTypeMarketingBySurvey); + @Parameter(name = "ConsType_MarketingByTextMessage") + MWF6FA consTypeMarketingByTextMessage(String consTypeMarketingByTextMessage); + @Parameter(name = "ConsType_RegistryCBCB") + MWF6FA consTypeRegistryCBCB(String consTypeRegistryCBCB); + @Parameter(name = "ConsType_RegistryCNCB") + MWF6FA consTypeRegistryCNCB(String consTypeRegistryCNCB); + @Parameter(name = "ConsType_RegistrySolusNegative") + MWF6FA consTypeRegistrySolusNegative(String consTypeRegistrySolusNegative); + @Parameter(name = "ConsType_RegistryTelcoScore") + MWF6FA consTypeRegistryTelcoScore(String consTypeRegistryTelcoScore); + @Parameter(name = "ConsentBranchId") + MWF6FA consentBranchId(String consentBranchId); + @Parameter(name = "ConsentChannelId") + MWF6FA consentChannelId(String consentChannelId); + @Parameter(name = "ConsentEmployeeId") + MWF6FA consentEmployeeId(String consentEmployeeId); + @Parameter(name = "ConsentMode") + MWF6FA consentMode(String consentMode); + @Parameter(name = "ConsentPromoterId") + MWF6FA consentPromoterId(String consentPromoterId); + @Parameter(name = "ConsentSellerId") + MWF6FA consentSellerId(Long consentSellerId); + @Parameter(name = "ConsentSetId") + MWF6FA consentSetId(String consentSetId); + @Parameter(name = "ConsentSignTime") + MWF6FA consentSignTime(java.util.Date consentSignTime); + @Parameter(name = "Data") + MWF6FA data(java.util.List data); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/gdprconsent/MWF6FAData.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/gdprconsent/MWF6FAData.java new file mode 100644 index 0000000..fdb2e3f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/gdprconsent/MWF6FAData.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.mwf.gdprconsent; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.HashMap; +import java.util.Map; + +public class MWF6FAData implements MwfData { + + private Map params = new HashMap<>(); + + private MWF6FAData() {} + + public static MWF6FAData builder() { + return new MWF6FAData(); + } + + public MWF6FAData rsClientattorneyinstid(String rsClientattorneyinstid) { + params.put("RS_CLIENTATTORNEYINSTID", rsClientattorneyinstid); + return this; + } + + public MWF6FAData rsClientattorneyinstkey(Long rsClientattorneyinstkey) { + params.put("RS_CLIENTATTORNEYINSTKEY", rsClientattorneyinstkey); + return this; + } + + public MWF6FAData rsClientattorneyinstsysid(String rsClientattorneyinstsysid) { + params.put("RS_CLIENTATTORNEYINSTSYSID", rsClientattorneyinstsysid); + return this; + } + + public Map getParams() { + return params; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/gdprconsent/MWF6FAResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/gdprconsent/MWF6FAResponse.java new file mode 100644 index 0000000..d9a5c49 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/gdprconsent/MWF6FAResponse.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.mwf.gdprconsent; + +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWF6FAResponse { + + @Parameter(name = "ConsentGroupKey") + String consentGroupKey(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/generateloginpasswordib/MWFIZ8.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/generateloginpasswordib/MWFIZ8.java new file mode 100644 index 0000000..609ccf0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/generateloginpasswordib/MWFIZ8.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.mwf.generateloginpasswordib; + +import cz.moneta.test.harness.support.mwf.ApiVersion; +import cz.moneta.test.harness.support.mwf.MwfRequest; +import cz.moneta.test.harness.support.mwf.Parameter; + +@ApiVersion(versionTST1 = "803", versionPPE = "503", versionEDU = "503") +public interface MWFIZ8 extends MwfRequest { + + @Parameter(name = "CHANNEL") + MWFIZ8 channel(String channel); + @Parameter(name = "CIF") + MWFIZ8 cif(String cif); + @Parameter(name = "CisloObalky") + MWFIZ8 cisloObalky(String cisloObalky); + @Parameter(name = "SendType") + MWFIZ8 sendType(Long sendType); + @Parameter(name = "TIMESTAMP") + MWFIZ8 timestamp(String timestamp); + @Parameter(name = "UctovatPoplatek") + MWFIZ8 uctovatPoplatek(String uctovatPoplatek); + @Parameter(name = "UzivatelID") + MWFIZ8 uzivatelID(Long uzivatelID); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/generateloginpasswordib/MWFIZ8Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/generateloginpasswordib/MWFIZ8Response.java new file mode 100644 index 0000000..8ed8a9a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/generateloginpasswordib/MWFIZ8Response.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf.generateloginpasswordib; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFIZ8Response { + + @Parameter(name = "TIMESTAMP") + String timestamp(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/getstatus/GET_STATUS.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/getstatus/GET_STATUS.java new file mode 100644 index 0000000..8498cf8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/getstatus/GET_STATUS.java @@ -0,0 +1,8 @@ +package cz.moneta.test.dsl.mwf.getstatus; + +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface GET_STATUS extends MwfRequest { + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/getstatus/GET_STATUSResponse.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/getstatus/GET_STATUSResponse.java new file mode 100644 index 0000000..b7f59a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/getstatus/GET_STATUSResponse.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.mwf.getstatus; + +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface GET_STATUSResponse { + + @Parameter(name = "STATUS_CODE") + Long statusCode(); + @Parameter(name = "STATUS_DESC") + String statusDesc(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/relationclientbanker/MWFDL7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/relationclientbanker/MWFDL7.java new file mode 100644 index 0000000..c42be15 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/relationclientbanker/MWFDL7.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.mwf.relationclientbanker; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFDL7 extends MwfRequest { + + @Parameter(name = "DEL_FLAG") + MWFDL7 delFlag(String delFlag); + @Parameter(name = "ICO") + MWFDL7 ico(String ico); + @Parameter(name = "IDSegmentu") + MWFDL7 iDSegmentu(Long iDSegmentu); + @Parameter(name = "INST_PT_KEY") + MWFDL7 instPtKey(String instPtKey); + @Parameter(name = "Komentar") + MWFDL7 komentar(String komentar); + @Parameter(name = "PrivatniBankerSSO") + MWFDL7 privatniBankerSSO(String privatniBankerSSO); + @Parameter(name = "RC") + MWFDL7 rc(String rc); + @Parameter(name = "SRC_SYS_ID") + MWFDL7 srcSysId(String srcSysId); + @Parameter(name = "SSOUrednika") + MWFDL7 sSOUrednika(String sSOUrednika); + @Parameter(name = "TypVazby") + MWFDL7 typVazby(String typVazby); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/relationclientbanker/MWFDL7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/relationclientbanker/MWFDL7Response.java new file mode 100644 index 0000000..9048afd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/relationclientbanker/MWFDL7Response.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.mwf.relationclientbanker; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWFDL7Response { + + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/residencyaddress/MWFGA5.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/residencyaddress/MWFGA5.java new file mode 100644 index 0000000..b27592e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/residencyaddress/MWFGA5.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.mwf.residencyaddress; + +import cz.moneta.test.harness.support.mwf.MwfRequest; +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWFGA5 extends MwfRequest { + + @Parameter(name = "Adresat") + MWFGA5 adresat(String adresat); + @Parameter(name = "BusinessUpdateDate") + MWFGA5 businessUpdateDate(java.util.Date businessUpdateDate); + @Parameter(name = "CIF") + MWFGA5 cif(String cif); + @Parameter(name = "CisloOrientacni") + MWFGA5 cisloOrientacni(String cisloOrientacni); + @Parameter(name = "CisloPopisne") + MWFGA5 cisloPopisne(String cisloPopisne); + @Parameter(name = "Ctvrt") + MWFGA5 ctvrt(String ctvrt); + @Parameter(name = "Data") + MWFGA5 data(java.util.List data); + @Parameter(name = "DistribucniKanal") + MWFGA5 distribucniKanal(String distribucniKanal); + @Parameter(name = "ICO") + MWFGA5 ico(String ico); + @Parameter(name = "Mesto") + MWFGA5 mesto(String mesto); + @Parameter(name = "Okres") + MWFGA5 okres(String okres); + @Parameter(name = "PSC") + MWFGA5 psc(String psc); + @Parameter(name = "Posta") + MWFGA5 posta(String posta); + @Parameter(name = "RC") + MWFGA5 rc(String rc); + @Parameter(name = "SSO") + MWFGA5 sso(String sso); + @Parameter(name = "SekundarniUrednik") + MWFGA5 sekundarniUrednik(String sekundarniUrednik); + @Parameter(name = "SuperkontaktniAdresa_Flag") + MWFGA5 superkontaktniAdresaFlag(String superkontaktniAdresaFlag); + @Parameter(name = "UID") + MWFGA5 uid(Long uid); + @Parameter(name = "Ulice") + MWFGA5 ulice(String ulice); + @Parameter(name = "Zeme") + MWFGA5 zeme(String zeme); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/residencyaddress/MWFGA5Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/residencyaddress/MWFGA5Data.java new file mode 100644 index 0000000..8250993 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/residencyaddress/MWFGA5Data.java @@ -0,0 +1,127 @@ +package cz.moneta.test.dsl.mwf.residencyaddress; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.HashMap; +import java.util.Map; + +public class MWFGA5Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFGA5Data() {} + + public static MWFGA5Data builder() { + return new MWFGA5Data(); + } + + public MWFGA5Data rsRcdrzitelekarty(String rsRcdrzitelekarty) { + params.put("RS_RCDRZITELEKARTY", rsRcdrzitelekarty); + return this; + } + + public MWFGA5Data rsAdresaucel(String rsAdresaucel) { + params.put("RS_ADRESAUCEL", rsAdresaucel); + return this; + } + + public MWFGA5Data rsCisloorientacni(String rsCisloorientacni) { + params.put("RS_CISLOORIENTACNI", rsCisloorientacni); + return this; + } + + public MWFGA5Data rsCislopopisne(String rsCislopopisne) { + params.put("RS_CISLOPOPISNE", rsCislopopisne); + return this; + } + + public MWFGA5Data rsCisloproduktu(String rsCisloproduktu) { + params.put("RS_CISLOPRODUKTU", rsCisloproduktu); + return this; + } + + public MWFGA5Data rsMesto(String rsMesto) { + params.put("RS_MESTO", rsMesto); + return this; + } + + public MWFGA5Data rsPsc(String rsPsc) { + params.put("RS_PSC", rsPsc); + return this; + } + + public MWFGA5Data rsProdukttype(String rsProdukttype) { + params.put("RS_PRODUKTTYPE", rsProdukttype); + return this; + } + + public MWFGA5Data rsSystemid(String rsSystemid) { + params.put("RS_SYSTEMID", rsSystemid); + return this; + } + + public MWFGA5Data rsUlice(String rsUlice) { + params.put("RS_ULICE", rsUlice); + return this; + } + + public MWFGA5Data rsZeme(String rsZeme) { + params.put("RS_ZEME", rsZeme); + return this; + } + + public MWFGA5Data rsProdukttyperetezec(String rsProdukttyperetezec) { + params.put("RS_PRODUKTTYPERETEZEC", rsProdukttyperetezec); + return this; + } + + public MWFGA5Data rsPosta(String rsPosta) { + params.put("RS_POSTA", rsPosta); + return this; + } + + public MWFGA5Data rsCtvrt(String rsCtvrt) { + params.put("RS_CTVRT", rsCtvrt); + return this; + } + + public MWFGA5Data rsOkres(String rsOkres) { + params.put("RS_OKRES", rsOkres); + return this; + } + + public MWFGA5Data rsAdresat(String rsAdresat) { + params.put("RS_ADRESAT", rsAdresat); + return this; + } + + public MWFGA5Data rsCisloproduktumaster(String rsCisloproduktumaster) { + params.put("RS_CISLOPRODUKTUMASTER", rsCisloproduktumaster); + return this; + } + + public MWFGA5Data rsCisloproduktumask(String rsCisloproduktumask) { + params.put("RS_CISLOPRODUKTUMASK", rsCisloproduktumask); + return this; + } + + public MWFGA5Data rsIdentifikator(Long rsIdentifikator) { + params.put("RS_IDENTIFIKATOR", rsIdentifikator); + return this; + } + + public MWFGA5Data rsLzezmenit(String rsLzezmenit) { + params.put("RS_LZEZMENIT", rsLzezmenit); + return this; + } + + public MWFGA5Data rsNovaadresa(String rsNovaadresa) { + params.put("RS_NOVAADRESA", rsNovaadresa); + return this; + } + + public Map getParams() { + return params; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/residencyaddress/MWFGA5Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/residencyaddress/MWFGA5Response.java new file mode 100644 index 0000000..6635091 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/residencyaddress/MWFGA5Response.java @@ -0,0 +1,7 @@ +package cz.moneta.test.dsl.mwf.residencyaddress; + +public interface MWFGA5Response { + + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/subsidyaccount/MWF133.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/subsidyaccount/MWF133.java new file mode 100644 index 0000000..1e2a603 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/subsidyaccount/MWF133.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.mwf.subsidyaccount; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWF133 extends MwfRequest { + + @Parameter(name = "AVPole") + MWF133 aVPole(String aVPole); + @Parameter(name = "Cache") + MWF133 cache(String cache); + @Parameter(name = "CastkaTransakce") + MWF133 castkaTransakce(Double castkaTransakce); + @Parameter(name = "CisloCostCentra") + MWF133 cisloCostCentra(String cisloCostCentra); + @Parameter(name = "CisloUctuInterni") + MWF133 cisloUctuInterni(String cisloUctuInterni); + @Parameter(name = "CisloUctuPrijemceInterni") + MWF133 cisloUctuPrijemceInterni(String cisloUctuPrijemceInterni); + @Parameter(name = "DatumSplatnosti") + MWF133 datumSplatnosti(java.util.Date datumSplatnosti); + @Parameter(name = "KodBanky") + MWF133 kodBanky(String kodBanky); + @Parameter(name = "KodMenyTransakce") + MWF133 kodMenyTransakce(Long kodMenyTransakce); + @Parameter(name = "KonstantniSymbol") + MWF133 konstantniSymbol(String konstantniSymbol); + @Parameter(name = "SpecifickySymbol") + MWF133 specifickySymbol(Long specifickySymbol); + @Parameter(name = "VariabilniSymbol") + MWF133 variabilniSymbol(Long variabilniSymbol); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/subsidyaccount/MWF133Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/subsidyaccount/MWF133Response.java new file mode 100644 index 0000000..abba9be --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/subsidyaccount/MWF133Response.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.mwf.subsidyaccount; + +import cz.moneta.test.harness.support.mwf.Parameter; + +import java.util.Map; + +public interface MWF133Response { + + @Parameter(name = "ID") + String id(); + @Parameter(name = "RequestID") + String requestID(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/taxresidency/MWFIL7.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/taxresidency/MWFIL7.java new file mode 100644 index 0000000..8908051 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/taxresidency/MWFIL7.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.mwf.taxresidency; + +import cz.moneta.test.harness.support.mwf.MwfRequest; +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWFIL7 extends MwfRequest { + + @Parameter(name = "CIF") + MWFIL7 cif(String cif); + @Parameter(name = "CRSFlag") + MWFIL7 cRSFlag(String cRSFlag); + @Parameter(name = "Data") + MWFIL7 data(java.util.List data); + @Parameter(name = "DatumUkonceniDedickehoRizeni") + MWFIL7 datumUkonceniDedickehoRizeni(java.util.Date datumUkonceniDedickehoRizeni); + @Parameter(name = "InstPtKey") + MWFIL7 instPtKey(Long instPtKey); + @Parameter(name = "PoleKoduCRSZemi") + MWFIL7 poleKoduCRSZemi(String poleKoduCRSZemi); + @Parameter(name = "PoleKoduZemiPobocek") + MWFIL7 poleKoduZemiPobocek(String poleKoduZemiPobocek); + @Parameter(name = "PosledniZapisCRS") + MWFIL7 posledniZapisCRS(java.util.Date posledniZapisCRS); + @Parameter(name = "TypFinancniInstituce") + MWFIL7 typFinancniInstituce(String typFinancniInstituce); + @Parameter(name = "ZakladniAtributyFlag") + MWFIL7 zakladniAtributyFlag(String zakladniAtributyFlag); + @Parameter(name = "ZemeCRSFlag") + MWFIL7 zemeCRSFlag(String zemeCRSFlag); + @Parameter(name = "ZemeDanoveRegistraceFlag") + MWFIL7 zemeDanoveRegistraceFlag(String zemeDanoveRegistraceFlag); + @Parameter(name = "ZemePobocekFlag") + MWFIL7 zemePobocekFlag(String zemePobocekFlag); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/taxresidency/MWFIL7Data.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/taxresidency/MWFIL7Data.java new file mode 100644 index 0000000..fe11cbf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/taxresidency/MWFIL7Data.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.mwf.taxresidency; + +import cz.moneta.test.harness.support.mwf.MwfData; + +import java.util.HashMap; +import java.util.Map; + +public class MWFIL7Data implements MwfData { + + private Map params = new HashMap<>(); + + private MWFIL7Data() {} + + public static MWFIL7Data builder() { + return new MWFIL7Data(); + } + + public MWFIL7Data rsItaxRsdncDic(String rsItaxRsdncDic) { + params.put("RS_ITAX_RSDNC_DIC", rsItaxRsdncDic); + return this; + } + + public MWFIL7Data rsItaxRsdncCntryCode(String rsItaxRsdncCntryCode) { + params.put("RS_ITAX_RSDNC_CNTRY_CODE", rsItaxRsdncCntryCode); + return this; + } + + public MWFIL7Data rsItaxRsdncValidFlag(String rsItaxRsdncValidFlag) { + params.put("RS_ITAX_RSDNC_VALID_FLAG", rsItaxRsdncValidFlag); + return this; + } + + public MWFIL7Data rsItaxRsdncId(String rsItaxRsdncId) { + params.put("RS_ITAX_RSDNC_ID", rsItaxRsdncId); + return this; + } + + public Map getParams() { + return params; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/mwf/taxresidency/MWFIL7Response.java b/tests/src/main/java/cz/moneta/test/dsl/mwf/taxresidency/MWFIL7Response.java new file mode 100644 index 0000000..7fb90ee --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/mwf/taxresidency/MWFIL7Response.java @@ -0,0 +1,7 @@ +package cz.moneta.test.dsl.mwf.taxresidency; + +public interface MWFIL7Response { + + + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/NewIb.java b/tests/src/main/java/cz/moneta/test/dsl/newib/NewIb.java new file mode 100644 index 0000000..931e3ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/NewIb.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.newib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.authentification.LoginPage; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class NewIb { + + private final Harness harness; + private NewIbEndpoint newIbEndpoint; + + public NewIb(Harness harness) { + this.harness = harness; + } + + public LoginPage openLoginPage() { + newIbEndpoint = harness.getEndpoint(NewIbEndpoint.class); + newIbEndpoint.openApplication(); + return Builders.newWebFlowBuilder(LoginPage.class, newIbEndpoint, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/NewIbPageFlow.java b/tests/src/main/java/cz/moneta/test/dsl/newib/NewIbPageFlow.java new file mode 100644 index 0000000..833ca8f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/NewIbPageFlow.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.newib; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.WebFlow; + +import static org.junit.Assert.assertTrue; + +public interface NewIbPageFlow> extends WebFlow, StoreAccessor { + + default void beforePageLoad(WebEndpoint webEndpoint) { + //TO DO add page loader elements + } + + @CustomAction + default A checkUrl(String urlExpected) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + assertTrue(actualUrl.contains(urlExpected)); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/AccountsTabs.java b/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/AccountsTabs.java new file mode 100644 index 0000000..1ef32aa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/AccountsTabs.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.newib.accounts; + +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.accounts.AccountsTabs.*; + +@Wait(value = {HISTORY_TAB_XPATH, GRAPHS_TAB_XPATH, PLANNED_PAYMENTS_TAB_XPATH, STATEMENTS_TAB_XPATH}, waitSecondsForElement = 30) +public interface AccountsTabs extends Builder { + String HISTORY_TAB_XPATH = "//span[@data-testid='history-tab']//ancestor::button"; + String GRAPHS_TAB_XPATH = "//span[@data-testid='graphs-tab']//ancestor::button"; + String PLANNED_PAYMENTS_TAB_XPATH = "//span[@data-testid='planned-tab']//ancestor::button"; + String STATEMENTS_TAB_XPATH = "//span[@data-testid='statements-tab']//ancestor::button"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/CurrentAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/CurrentAccountPage.java new file mode 100644 index 0000000..5c47b9c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/CurrentAccountPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.newib.accounts; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.accounts.CurrentAccountPage.ACCOUNTS_TITLE_XPATH; +import static cz.moneta.test.dsl.newib.accounts.CurrentAccountPage.CURRENT_ACCOUNT_TITLE_XPATH; + +@Wait(value = {CURRENT_ACCOUNT_TITLE_XPATH, ACCOUNTS_TITLE_XPATH}, waitSecondsForElement = 30) +public interface CurrentAccountPage extends IbPageFlow, VerticalMainMenu, HorizontalMainMenu, AccountsTabs, StoreAccessor { + String ACCOUNTS_TITLE_XPATH = "//h1[text()='Účty']"; + String CURRENT_ACCOUNT_TITLE_XPATH = "//h2[text()='Běžný účet CZK']"; + String FUTURE_PAYMENT_XPATH = "//button[.//span[contains(text(), 'Budoucí platby')]]"; + String OVERVIEW_BUTTON_XPATH = "//li[@data-testid='dashboard-link']//button[.//span[text()='Přehled']]"; + + HistoryTab onHistoryTabs(); + + @Click(FUTURE_PAYMENT_XPATH) + FuturePaymentsPage clickOnFuturePayment(); + + @Click(OVERVIEW_BUTTON_XPATH) + DashboardPage clickOnOverviewButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/FuturePaymentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/FuturePaymentsPage.java new file mode 100644 index 0000000..0c909d0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/FuturePaymentsPage.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.newib.accounts; + +import cz.moneta.test.dsl.ib.IbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.*; + +public interface FuturePaymentsPage extends IbPageFlow, VerticalMainMenu, HorizontalMainMenu, AccountsTabs { + String FUTURE_ORDER_PAYMENT_XPATH = "//div[contains(@class, 't-amount') and contains(., '%s')]/ancestor::tr"; + String FUTURE_TRANSACTION_TO_ACCOUNT_XPATH = "//tr[th[contains(normalize-space(), 'Číslo účtu')]]/td//span[normalize-space()='%s']"; + String DATE_OF_PAYMENT = "//tr[th[contains(normalize-space(), 'Datum splatnosti')]]/td//span[normalize-space()='%s']"; + String VARIABLE_SYMBOL_XPATH = "//tr[th[contains(normalize-space(), 'Variabilní symbol')]]/td//span[normalize-space()='%s']"; + String CONSTANT_SYMBOL_XPATH = "//tr[th[contains(normalize-space(), 'Konstantní symbol')]]/td//span[normalize-space()='%s']"; + String SPECIFIC_SYMBOL_XPATH = "//tr[th[contains(normalize-space(), 'Specifický symbol')]]/td//span[normalize-space()='%s']"; + String MY_NOTE_XPATH = "//tr[th[contains(normalize-space(), 'Zpráva pro mě')]]/td//*[normalize-space()='%s']"; + String RECIPIENT_NOTE_XPATH = "//tr[th[contains(normalize-space(), 'Zpráva pro příjemce')]]/td//*[normalize-space()='%s']"; + String CANCEL_PAYMENT_BUTTON_XPATH = "//button[@data-testid='delete-payment-button' and text()='Zrušit platbu']"; + String CONFIRM_CANCEL_PAYMENT_BUTTON_XPATH = "//button[@data-testid='confirm-payment-delete' and text()='Zrušit']"; + String CANCEL_VICTORY_TEXT_XPATH = "//h2[contains(text(), 'Zrušení platby proběhlo v pořádku.')]"; + + @Click(value = FUTURE_ORDER_PAYMENT_XPATH, isStringDynamicXpath = true, andWait = @Wait(value = CANCEL_PAYMENT_BUTTON_XPATH, until = Until.VISIBLE)) + FuturePaymentsPage clickOnFutureOrderPayment(String amount); + + @CheckElementPresent(value = FUTURE_TRANSACTION_TO_ACCOUNT_XPATH, isStringDynamicXpath = true) + FuturePaymentsPage checkToAccount(String toAccount); + + @CheckElementPresent(value = DATE_OF_PAYMENT, isStringDynamicXpath = true) + FuturePaymentsPage checkDateOfPayment(String toAccount); + + @CheckElementPresent(value = VARIABLE_SYMBOL_XPATH, isStringDynamicXpath = true) + FuturePaymentsPage checkVariableSymbol(String toAccount); + + @CheckElementPresent(value = CONSTANT_SYMBOL_XPATH, isStringDynamicXpath = true) + FuturePaymentsPage checkConstantSymbol(String toAccount); + + @CheckElementPresent(value = SPECIFIC_SYMBOL_XPATH, isStringDynamicXpath = true) + FuturePaymentsPage checkSpecificSymbol(String toAccount); + + @CheckElementPresent(value = RECIPIENT_NOTE_XPATH, isStringDynamicXpath = true) + FuturePaymentsPage checkRecipientMessage(String toAccount); + + @CheckElementPresent(value = MY_NOTE_XPATH, isStringDynamicXpath = true) + FuturePaymentsPage checkMyNote(String toAccount); + + @CheckElementPresent(value = FUTURE_ORDER_PAYMENT_XPATH, isStringDynamicXpath = true) + FuturePaymentsPage checkFuturePaymentVisible(String amount); + + @Click(CANCEL_PAYMENT_BUTTON_XPATH) + FuturePaymentsPage clickOnCancelPaymentButton(); + + @Click(CONFIRM_CANCEL_PAYMENT_BUTTON_XPATH) + FuturePaymentsPage clickOnConfirmCancelPaymentButton(); + + @CheckElementPresent(CANCEL_VICTORY_TEXT_XPATH) + FuturePaymentsPage checkCancelVictoryText(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/HistoryTab.java b/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/HistoryTab.java new file mode 100644 index 0000000..65b3b84 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/HistoryTab.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.newib.accounts; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.accounts.HistoryTab.*; + +@Wait({ALL_TAB_XPATH, COMMING_TAB_XPATH, OUTGOING_TAB_XPATH, BLOCKING_TAB_XPATH, ENTERING_TAB_XPATH, STANDING_ORDER_TAB_XPATH, OUTSTANDING_TAB_XPATH}) +public interface HistoryTab extends NewIbPageFlow, AccountsTabs, HorizontalMainMenu, VerticalMainMenu, StoreAccessor { + + // History pills menu + String ALL_TAB_XPATH = "//button[text()='Vše']"; + String COMMING_TAB_XPATH = "//button[text()='Příchozí']"; + String OUTGOING_TAB_XPATH = "//button[text()='Odchozí']"; + String BLOCKING_TAB_XPATH = "//button[text()='Blokace']"; + String ENTERING_TAB_XPATH = "//button[text()='Zadané']"; + String STANDING_ORDER_TAB_XPATH = "//button[text()='Trvalé příkazy']"; + String OUTSTANDING_TAB_XPATH = "//button[text()='Neprovedené']"; + + // Items on history tab page + String SEARCH_FIELD_XPATH = "//input[@data-testid='history-fulltext']"; + String ADVANCE_SEARCH_BUTTON_XPATH = "//button[@data-testid='advanced-search']"; + String MORE_TRANSACTIONS_BUTTON_XPATH = "//button[@data-testid='show-more-transactions']"; + String TRANSACTION_XPATH = "//span[text()='%s']//following-sibling::div[text()='%s'][1]"; + String TRANSACTION_WITH_CONTAINS_XPATH = "//span[text()='%s']//following-sibling::div[contains(text(), '%s')][1]"; + + @CustomAction + default CurrentAccountPage checkTransaction(String toAccount, String amount) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.isElementPresent(String.format(TRANSACTION_XPATH, toAccount, amount), Lookup.XPATH); + return null; + } + + @CustomAction + default CurrentAccountPage checkCreditPaymentTransaction(String recipientPhoneNumber, String amount) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.isElementPresent(String.format(TRANSACTION_WITH_CONTAINS_XPATH, recipientPhoneNumber, amount), Lookup.XPATH); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/NewForeignAccountPromoPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/NewForeignAccountPromoPage.java new file mode 100644 index 0000000..3bb7304 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/accounts/NewForeignAccountPromoPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.newib.accounts; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.accounts.NewForeignAccountPromoPage.*; + +@Wait(value = {FOREIGN_ACCOUNT_HEADER_XPATH, FOREIGN_ACCOUNT_TITLE_XPATH, CREATE_FOREIGN_ACCOUNT_BUTTON_XPATH}, waitSecondsForElement = 30) +public interface NewForeignAccountPromoPage extends NewIbPageFlow, VerticalMainMenu { + String FOREIGN_ACCOUNT_HEADER_XPATH = "//h2[normalize-space(text())='Cizoměnový účet']"; + String FOREIGN_ACCOUNT_TITLE_XPATH = "//h3[normalize-space(text())='Vyberte si měnu Vašeho účtu']"; + String CREATE_FOREIGN_ACCOUNT_BUTTON_XPATH = "//button[@data-testid='createAccount']"; + String FOREIGN_ACCOUNT_CURRENCY_BUTTON = "//span[@class='f-control2__valueTitle']//div[@data-testid='currency-%s']"; + + @CheckElementPresent(value = FOREIGN_ACCOUNT_CURRENCY_BUTTON, isStringDynamicXpath = true) + NewForeignAccountPromoPage checkForeignCurrencyIsPresent(String currency); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/AuthMobileKey.java b/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/AuthMobileKey.java new file mode 100644 index 0000000..38c76cd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/AuthMobileKey.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.newib.authentification; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.authentification.AuthMobileKey.*; + +@Wait(value = {MOBILE_KEY_COMPONENT_HEAD, MOBILE_KEY_INPUT, SEND_BUTTON}, waitSecondsForElement = 60) +public interface AuthMobileKey extends NewIbPageFlow { + String MOBILE_KEY_COMPONENT_HEAD = "//div[(contains(text(),'Potvrďte opsáním mobilního klíče z SMS'))]"; + String MOBILE_KEY_INPUT = "//label[text()='Mobilní klíč']/following::input[@id='mobileKey']"; + String SEND_BUTTON = "//button[@data-testid='secondFactorSend' and (text()='Podepsat' or text()='Pokračovat')]"; + + @TypeInto(MOBILE_KEY_INPUT) + AuthMobileKey typeSmsKey(String smsKey); + + /* jsClick implemented because showing up banner with last users login + Will be change to scroll and click to future or just click. */ + @Click(value = SEND_BUTTON, jsClick = true) + AuthMobileKeyTransitions clickSend(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/AuthMobileKeyTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/AuthMobileKeyTransitions.java new file mode 100644 index 0000000..3619bcf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/AuthMobileKeyTransitions.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.newib.authentification; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.mainpage.CardsPage; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; + +public interface AuthMobileKeyTransitions extends NewIbPageFlow { + + DashboardPage onDashboardPage(); + + CardsPage onCardsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/AuthSmartBank.java b/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/AuthSmartBank.java new file mode 100644 index 0000000..7094c5c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/AuthSmartBank.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.newib.authentification; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = AuthSmartBank.SMART_BANK_CONFIRMATION_LABEL, waitSecondsForElement = 60) +public interface AuthSmartBank extends NewIbPageFlow { + + String SMART_BANK_CONFIRMATION_LABEL = "//div[(contains(text(),'Potvrďte oznámení v aplikaci Smart Banka'))]"; + String SEND_SMS_BUTTON = "//button[@class='c-link c-link--small u-mr--medium' and text()='Potvrdit přes mobilní klíč']"; + + @Wait(SEND_SMS_BUTTON) + @Click(value = SEND_SMS_BUTTON, jsClick = true) + AuthMobileKey clickSendSmsToAuthMobileKey(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/LoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/LoginPage.java new file mode 100644 index 0000000..7d0ac77 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/LoginPage.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.newib.authentification; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.authentification.LoginPage.LOGIN_WITH_ID_AND_PASSWORD_XPATH; +import static cz.moneta.test.dsl.newib.authentification.LoginPage.PAGE_TITLE; + +@Wait(value = {PAGE_TITLE, LOGIN_WITH_ID_AND_PASSWORD_XPATH}, waitSecondsForElement = 60) +public interface LoginPage extends NewIbPageFlow { + + String PAGE_TITLE = "//a[@class='c-logo__link']"; + String ID_INPUT = "//input[@id='ibId']"; + String PASSWORD_INPUT = "//input[@id='password']"; + String LOGIN_BUTTON = "//button[@data-testid='submit']"; + String CLOSE_COOKIES_PANEL = "//button[@id='onetrust-accept-btn-handler']"; + String LOGIN_WITH_ID_AND_PASSWORD_XPATH = "//ul[@class='c-tabs__list']/li[2]/button"; + + @Wait(CLOSE_COOKIES_PANEL) + @Click(CLOSE_COOKIES_PANEL) + LoginPage closeCookiesPanel(); + + @CustomAction + default LoginPage closeCookiesPanelIfVisible() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + if (newIbEndpoint.isElementVisible(5, CLOSE_COOKIES_PANEL, Lookup.XPATH)) { + newIbEndpoint.click(() -> CLOSE_COOKIES_PANEL); + } + return null; + } + + @TypeInto(ID_INPUT) + LoginPage typeUsername(String password); + + @TypeInto(PASSWORD_INPUT) + LoginPage typePassword(String password); + + /* jsClick implemented because showing up banner with last users login + Will be change to scroll and click to future or just click. */ + @Click(value = LOGIN_BUTTON, jsClick = true) + LoginPageTransitions clickToLogin(); + + @Click(LOGIN_WITH_ID_AND_PASSWORD_XPATH) + LoginPage clickLoginWithIdAndPassword(); + + @Click(LOGIN_BUTTON) + LoginPage clickContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/LoginPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/LoginPageTransitions.java new file mode 100644 index 0000000..9ce124c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/authentification/LoginPageTransitions.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.newib.authentification; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; + +public interface LoginPageTransitions extends NewIbPageFlow { + + AuthMobileKey onAuthMobileKeyPage(); + + AuthSmartBank onAuthSmartBankPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/components/HorizontalMainMenu.java b/tests/src/main/java/cz/moneta/test/dsl/newib/components/HorizontalMainMenu.java new file mode 100644 index 0000000..3ab50e6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/components/HorizontalMainMenu.java @@ -0,0 +1,93 @@ +package cz.moneta.test.dsl.newib.components; + +import cz.moneta.test.dsl.newib.documents.DocumentsModalPage; +import cz.moneta.test.dsl.newib.mainpage.ConfirmLogoutPage; +import cz.moneta.test.dsl.newib.mainpage.SuccessfullyLogoutPage; +import cz.moneta.test.dsl.newib.messages.MessagesModalPage; +import cz.moneta.test.dsl.newib.settings.SettingsModalPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.components.HorizontalMainMenu.CONTACTS_ITEM_XPATH; +import static cz.moneta.test.dsl.newib.components.HorizontalMainMenu.HORIZONTAL_MENU_XPATH; +import static cz.moneta.test.dsl.newib.components.HorizontalMainMenu.SETTINGS_ITEM_XPATH; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Wait(value = {HORIZONTAL_MENU_XPATH, CONTACTS_ITEM_XPATH, SETTINGS_ITEM_XPATH}, waitSecondsForElement = 30) +public interface HorizontalMainMenu extends Builder, StoreAccessor { + String HORIZONTAL_MENU_XPATH = "//header[@role='banner']//following::ul[@data-testid='MenuList']"; + + // Menu items + String LOGOUT_XPATH = HORIZONTAL_MENU_XPATH + "//span[text()='Odhlásit']"; + String CONTACTS_ITEM_XPATH = HORIZONTAL_MENU_XPATH + "//span[text()='Kontakty']"; + String MESSAGES_ITEM_XPATH = HORIZONTAL_MENU_XPATH + "//span[text()='Zprávy']"; + String MESSAGES_AND_NOTIFICATION_ITEM_XPATH = HORIZONTAL_MENU_XPATH + "//span[text()='Zprávy a oznámení']"; + String DOCUMENTS_ITEM_XPATH = HORIZONTAL_MENU_XPATH + "//span[text()='Dokumenty']"; + String SETTINGS_ITEM_XPATH = HORIZONTAL_MENU_XPATH + "//span[text()='Nastavení']"; + String BLOCK_BANKING_BUTTON_XPATH = HORIZONTAL_MENU_XPATH + "//span[text()='Zablokovat bankovnictví']"; + String BLOCK_BANKING_TITLE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Okamžitá nouzová blokace bankovnictví']"; + String CLOSE_MODAL_BTN_XPATH = "//button[@data-testid='settings_modal-close']"; + String CONTACTS_POPUP_TITLE_XPATH = "//h2[@class='t-title t-title--h3 c-modal__title'][text()='Jak Vám můžeme pomoci?']"; + String CONTINUE_BLOCK_BANKING_BUTTON_XPATH = "//button[@data-testid='continueBlockBanking']"; + String CONTACTS_POPUP_XPATH = "//a[@data-testid='redirectToContacts']"; + String CONTINUE_WORK_BUTTON = "//button[@data-testid='continue-work']"; + String STOP_WORKING_BUTTON = "//button[@data-testid='stop-work']"; + + @Click(LOGOUT_XPATH) + ConfirmLogoutPage clickLogout(); + + @Click(value = SETTINGS_ITEM_XPATH, andWait = @Wait(explicitWaitSeconds = 2)) + SettingsModalPage clickOnSettings(); + + @Click(value = MESSAGES_ITEM_XPATH, andWait = @Wait(explicitWaitSeconds = 1)) + MessagesModalPage goToMessages(); + + @Click(value = MESSAGES_AND_NOTIFICATION_ITEM_XPATH, andWait = @Wait(explicitWaitSeconds = 1)) + MessagesModalPage goToMessagesAndNotification(); + + @Click(DOCUMENTS_ITEM_XPATH) + DocumentsModalPage goToDocuments(); + + @CustomAction + default HorizontalMainMenu goToContactsAndCheckUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> CONTACTS_ITEM_XPATH); + newIbEndpoint.click(() -> CONTACTS_POPUP_XPATH); + newIbEndpoint.switchToOtherWindow(5, 2); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "/kontakt"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @Click(BLOCK_BANKING_BUTTON_XPATH) + HorizontalMainMenu clickOnBlockBanking(); + + @CheckElementPresent(BLOCK_BANKING_TITLE_XPATH) + HorizontalMainMenu checkBlockBankingTitleIsPresent(); + + @Click(CLOSE_MODAL_BTN_XPATH) + HorizontalMainMenu closeBlockBanking(); + + @Click(CONTACTS_ITEM_XPATH) + HorizontalMainMenu clickOnHorizontalContacts(); + + @CheckElementPresent(CONTACTS_POPUP_TITLE_XPATH) + HorizontalMainMenu checkContactsPopupTitle(); + + @Click(CONTINUE_BLOCK_BANKING_BUTTON_XPATH) + HorizontalMainMenu clickOnBlockingBanking(); + + @Wait(explicitWaitSeconds = 240) + HorizontalMainMenu waitFourMinutesToLogoutPopup(); + + @Wait(explicitWaitSeconds = 300) + SuccessfullyLogoutPage waitFiveMinutesToLogout(); + + @Click(CONTINUE_WORK_BUTTON) + HorizontalMainMenu clickOnContinueWorking(); + + @Click(STOP_WORKING_BUTTON) + SuccessfullyLogoutPage clickOnStopWorking(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/components/VerticalMainMenu.java b/tests/src/main/java/cz/moneta/test/dsl/newib/components/VerticalMainMenu.java new file mode 100644 index 0000000..3233ba7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/components/VerticalMainMenu.java @@ -0,0 +1,59 @@ +package cz.moneta.test.dsl.newib.components; + +import cz.moneta.test.dsl.newib.accounts.NewForeignAccountPromoPage; +import cz.moneta.test.dsl.newib.mainpage.*; +import cz.moneta.test.dsl.newib.payments.NewPaymentDomesticPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.components.VerticalMainMenu.*; + +@Wait(value = {VERTICAL_MENU_XPATH, OVERVIEW_ITEM_XPATH, ACCOUNTS_ITEM_XPATH, SAVINGS_ITEM_XPATH, CARDS_ITEM_XPATH, INVESTMENTS_ITEM_XPATH, EXCHANGE_ITEM_XPATH}, waitSecondsForElement = 30) +public interface VerticalMainMenu extends Builder, StoreAccessor { + String VERTICAL_MENU_XPATH = "//nav[@data-testid='Menu']/following::ul[@data-testid='MenuList']"; + String NEW_PAYMENT_BUTTON_XPATH = VERTICAL_MENU_XPATH + "//span[text()='Zaplatit']/parent::button"; + + // Menu button items + String OVERVIEW_ITEM_XPATH = VERTICAL_MENU_XPATH + "//span[text()='Přehled']/parent::button"; + String ACCOUNTS_ITEM_XPATH = VERTICAL_MENU_XPATH + "//span[text()='Účty']/parent::button"; + String SAVINGS_ITEM_XPATH = VERTICAL_MENU_XPATH + "//span[text()='Spoření']/parent::button"; + String LOANS_AND_MORTGAGES_ITEM_XPATH = VERTICAL_MENU_XPATH + "//span[text()='Půjčky a hypotéky']/parent::button"; + String CARDS_ITEM_XPATH = VERTICAL_MENU_XPATH + "//span[text()='Karty']/parent::button"; + String INSURANCE_ITEM_XPATH = VERTICAL_MENU_XPATH + "//span[text()='Pojištění']/parent::button"; + String INVESTMENTS_ITEM_XPATH = VERTICAL_MENU_XPATH + "//li[@data-testid='investments-link']/button[@aria-disabled='false' and not(@disabled)]"; + String EXCHANGE_ITEM_XPATH = VERTICAL_MENU_XPATH + "//span[text()='Směnárna']/parent::button"; + + @Click(NEW_PAYMENT_BUTTON_XPATH) + NewPaymentDomesticPage clickPayment(); + + @Click(OVERVIEW_ITEM_XPATH) + DashboardPage goToDashboard(); + + @Click(ACCOUNTS_ITEM_XPATH) + AccountsPage goToAccounts(); + + @Click(SAVINGS_ITEM_XPATH) + SavingsPage goToSavings(); + + @Click(LOANS_AND_MORTGAGES_ITEM_XPATH) + LoansAndMortgagesPage goToLoansAndMortgages(); + + @Click(CARDS_ITEM_XPATH) + CardsPage goToCards(); + + @Click(INSURANCE_ITEM_XPATH) + InsurancePage goToInsurance(); + + @Wait(value = INVESTMENTS_ITEM_XPATH, until = Until.CLICKABLE) + @Click(INVESTMENTS_ITEM_XPATH) + InvestmentsPage goToInvestments(); + + @Click(EXCHANGE_ITEM_XPATH) + ExchangePage goToExchange(); + + @Click(EXCHANGE_ITEM_XPATH) + NewForeignAccountPromoPage goToForeignCurrencyAccountFromExchange(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/documents/DocumentsModalPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/documents/DocumentsModalPage.java new file mode 100644 index 0000000..5eb1329 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/documents/DocumentsModalPage.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.newib.documents; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.documents.DocumentsModalPage.*; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Wait({DOCUMENTS_TITLE_XPATH, FILTER_BTN_XPATH}) +public interface DocumentsModalPage extends NewIbPageFlow, StoreAccessor { + + String DOCUMENTS_TITLE_XPATH = "//h1[@class='t-title t-title--h3 u-mb--0'][text()='Dokumenty']"; + String FILTER_BTN_XPATH = "//button[@data-testid='show-filter-button']"; + String CLOSE_BTN_XPATH = "//button[@data-testid='close-documents-button']"; + + @CheckElementPresent(DOCUMENTS_TITLE_XPATH) + DocumentsModalPage checkDocumentsTitleIsPresent(); + + @CheckElementPresent(FILTER_BTN_XPATH) + DocumentsModalPage checkFilterBtnIsPresent(); + + @CheckElementPresent(CLOSE_BTN_XPATH) + DocumentsModalPage checkCloseBtnIsPresent(); + + @CustomAction + default DocumentsModalPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "modal/documents"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @Click(CLOSE_BTN_XPATH) + DashboardPage closeDocumentsModal(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsFrameworkAgreement.java b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsFrameworkAgreement.java new file mode 100644 index 0000000..55711f6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsFrameworkAgreement.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.newib.investments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Key; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.investments.InvestmentsFrameworkAgreement.GO_SIGNE; + +@Wait(GO_SIGNE) +public interface InvestmentsFrameworkAgreement extends NewIbPageFlow { + + String GO_SIGNE = "//button[@data-testid='goNext']"; + String MOBILE_KEY_INPUT = "//input[@id='mobileKey']"; + String SUBMIT_BUTTON = "//button[@data-testid='secondFactorSend']"; + + @CustomAction + default InvestmentsFrameworkAgreement scrollDown() { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + ep.sendKeysOneAtATime(Key.DOWN); + ep.sendKeysOneAtATime(Key.END); + return null; + } + + @Click(GO_SIGNE) + InvestmentsFrameworkAgreement clickGoSigneDocument(); + + @Wait(MOBILE_KEY_INPUT) + @TypeInto(MOBILE_KEY_INPUT) + InvestmentsFrameworkAgreement fillMobileKey(String mobileKey); + + @Click(SUBMIT_BUTTON) + InvestmentsPurchaseVictory clickSubmitMobileKey(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsPurchaseDialog.java b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsPurchaseDialog.java new file mode 100644 index 0000000..6f8d72e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsPurchaseDialog.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.newib.investments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.GetElementContent; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface InvestmentsPurchaseDialog extends NewIbPageFlow { + String INDIVIDUAL_AMOUNT_INPUT = "//input[@data-testid='individualAmount']"; + String REGULAR_AMOUNT_INPUT = "//input[@data-testid='regularAmount']"; + String AGREEMENT_CHECK_BOX = "//label[@for='tocAgreement']"; + String SUBMIT_BUTTON = "//button[@data-testid='submitButton'][not (@aria-disabled)]"; + String MOBILE_KEY_INPUT = "//input[@id='mobileKey']"; + String SECOND_FACTOR_SUBMIT_BUTTON = "//button[@data-testid='secondFactorSend'][not (@aria-disabled) or @aria-disabled='false']"; + String FUND_ISIN = "//p[@data-testid='buyFundModalIsin']/small"; + + @TypeInto(INDIVIDUAL_AMOUNT_INPUT) + InvestmentsPurchaseDialog fillIndividualAmount(String individualAmount); + + @TypeInto(REGULAR_AMOUNT_INPUT) + InvestmentsPurchaseDialog fillRegularAmount(String regularAmount); + + @Click(AGREEMENT_CHECK_BOX) + InvestmentsPurchaseDialog clickAgreement(); + + @Click(SUBMIT_BUTTON) + InvestmentsFrameworkAgreement clickSubmitAndGoToFrameworkAgreement(); + + @Click(SUBMIT_BUTTON) + InvestmentsPurchaseDialog clickSubmit(); + + @TypeInto(MOBILE_KEY_INPUT) + InvestmentsPurchaseDialog fillMobileKey(String mobileKey); + + @Click(SECOND_FACTOR_SUBMIT_BUTTON) + InvestmentsPurchaseVictory clickSecondFactorSubmit(); + + @GetElementContent(FUND_ISIN) + String getIsin(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsPurchaseVictory.java b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsPurchaseVictory.java new file mode 100644 index 0000000..b38d39e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsPurchaseVictory.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.newib.investments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.mainpage.InvestmentsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.investments.InvestmentsPurchaseVictory.FINISH; + +@Wait(value = FINISH, waitSecondsForElement = 60) +public interface InvestmentsPurchaseVictory extends NewIbPageFlow { + String FINISH = "//h1[contains(text(),'A je to. Investujete')]"; + String BACK_TO_FUND_LIST_BUTTON = "//button[@data-testid='backToFundList']"; + + @Click(BACK_TO_FUND_LIST_BUTTON) + InvestmentsPage backToFundList(); + + @Wait(value = FINISH, waitSecondsForElement = 60) + InvestmentsPurchaseVictory waitForVictory(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsQuestionnaire.java b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsQuestionnaire.java new file mode 100644 index 0000000..ff04f35 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsQuestionnaire.java @@ -0,0 +1,82 @@ +package cz.moneta.test.dsl.newib.investments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import org.openqa.selenium.WebElement; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public interface InvestmentsQuestionnaire extends NewIbPageFlow { + String GO_FILL_QUESTIONNAIRE = "//button[@data-testid='start-questionnaire']"; + String ANSWERS = "//*[starts-with(@id, 'question-') and contains(@id, '_value-')]"; + String CONTINUE = "//button[@data-testid='questionnaire-v2-continue' and not(@disabled)]"; + String ERROR_MESSAGE = "//div[contains(@id, '_errorMessage') and string-length(text()) > 0]"; + List ANSWERS_LIST = Arrays.asList( + "question-1_value-1", + "question-2_value-2", + "question-3_value-3", + "question-4_value-2", + "question-5_value-1", + "question-6_value-1_label", + "question-6_value-2_label", + "question-6_value-3_label", + "question-7_value-1_label", + "question-7_value-2_label", + "question-7_value-3_label", + "question-8_value-2_label", + "question-8_value-3_label", + "question-9_value-2", + "question-10_value-1", + "question-11_value-3", + "question-12_value-4", + "question-13_value-5", + "question-14_value-2", + "question-15_value-1", + "question-16_value-1", + "question-17_value-1_label"); + + @Click(GO_FILL_QUESTIONNAIRE) + InvestmentsQuestionnaire clickGoFill(); + + @Click(CONTINUE) + InvestmentsQuestionnaire clickContinue(); + + @CustomAction + default InvestmentsQuestionnaireResult fillQuestionnaire() { + return fillQuestionnaire(new ArrayList<>()); + } + + private InvestmentsQuestionnaireResult fillQuestionnaire(List clickedAnswers) { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + List elements = ep.findAndGetListOfElements(ANSWERS, Lookup.XPATH); + if (elements.isEmpty()) { + throw new HarnessException("There are no questions on the page"); + } + for (WebElement element : elements) { + String elementId = element.getAttribute("id"); + if (ANSWERS_LIST.contains(elementId)) { + if (clickedAnswers.contains(elementId)) { + throw new HarnessException("Answer (id: " + elementId + ") was already clicked"); + } + ep.moveToElement("//*[@id='" + elementId + "']"); + element.click(); + clickedAnswers.add(elementId); + } + } + ep.click(() -> CONTINUE); + if (ep.isElementVisible(2,ERROR_MESSAGE,Lookup.XPATH)) { + throw new HarnessException("Error message displayed. There are probably more questions then expected"); + } + else if (clickedAnswers.size() < ANSWERS_LIST.size()) { + fillQuestionnaire(clickedAnswers); + } + + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsQuestionnaireResult.java b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsQuestionnaireResult.java new file mode 100644 index 0000000..bc988c0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsQuestionnaireResult.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.newib.investments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.mainpage.InvestmentsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.investments.InvestmentsQuestionnaireResult.SHOW_FUNDS_BUTTON; + +@Wait(SHOW_FUNDS_BUTTON) +public interface InvestmentsQuestionnaireResult extends NewIbPageFlow { + String SHOW_FUNDS_BUTTON = "//button[@data-testid='show-funds']"; + + @Click(SHOW_FUNDS_BUTTON) + InvestmentsPage clickShowFunds(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsSaleDialog.java b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsSaleDialog.java new file mode 100644 index 0000000..9c8ae63 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsSaleDialog.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.newib.investments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.Waits; +import cz.moneta.test.harness.support.web.Until; + +public interface InvestmentsSaleDialog extends NewIbPageFlow { + String AMOUNT = "//input[@id='amount']"; + + String SUBMIT_BUTTON = "//button[@data-testid='continueToSale'][not (@aria-disabled) or @aria-disabled='false']"; + String MOBILE_KEY_INPUT = "//input[@id='mobileKey']"; + String SALE_ANYWAY_BUTTON = "//button[@data-testid='sureToSale']"; + String EARLY_SALE_MODAL_HEADER = "//header[@data-testid='earlySaleModalHeader']"; + String EARLY_SALE_MODAL_CONTENT = "//div[@data-testid='earlySaleModalContent']"; + String SECOND_FACTOR_SUBMIT_BUTTON = "//button[@data-testid='secondFactorSend'][not (@aria-disabled) or @aria-disabled='false']"; + + @TypeInto(AMOUNT) + InvestmentsSaleDialog fillAmount(String individualAmount); + + @Click(SUBMIT_BUTTON) + InvestmentsSaleDialog clickSubmit(); + + @Waits({ + @Wait(value = SALE_ANYWAY_BUTTON, until = Until.VISIBLE), + @Wait(value = EARLY_SALE_MODAL_HEADER, until = Until.VISIBLE), + @Wait(value = EARLY_SALE_MODAL_CONTENT, until = Until.VISIBLE)}) + @Click(SALE_ANYWAY_BUTTON) + InvestmentsSaleDialog clickSaleAnyway(); + + @TypeInto(MOBILE_KEY_INPUT) + InvestmentsSaleDialog fillMobileKey(String mobileKey); + + @Click(SECOND_FACTOR_SUBMIT_BUTTON) + InvestmentsSaleVictory clickSecondFactorSubmit(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsSaleVictory.java b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsSaleVictory.java new file mode 100644 index 0000000..7fcd0d0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsSaleVictory.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.newib.investments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.investments.InvestmentsSaleVictory.FINISH; + +@Wait(value = FINISH, waitSecondsForElement = 60) +public interface InvestmentsSaleVictory extends NewIbPageFlow { + String FINISH = "//h2[contains(text(),'A je to. Podíly prodáme')]"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsTasks.java new file mode 100644 index 0000000..5fc3878 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/investments/InvestmentsTasks.java @@ -0,0 +1,145 @@ +package cz.moneta.test.dsl.newib.investments; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.dsl.newib.mainpage.InvestmentsPage; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.ib.IbLoginApiTasks; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.Lookup; +import org.openqa.selenium.WebElement; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.function.Function; + +import static cz.moneta.test.dsl.newib.mainpage.InvestmentsPage.FUND_RISK_PROFILE_NUMBER; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.dsl.util.task.retail.loans.constants.DefaultLoansConstants.*; +import static cz.moneta.test.harness.support.auth.AuthSupport.getCredentials; + +public class InvestmentsTasks { + private final Harness harness; + + public InvestmentsTasks(Harness harness) { + this.harness = harness; + } + + public NonClient createNonClient() { + return harness.data().newNonClient() + .withLastName("InvestNákup") + .withIdCard(DEFAULT_ID_CARD) + .withBirthNumber(harness.tasks().common().getRcMinMaxAge(20, 50)) + .withResidencyAddress(DEFAULT_CLIENT_ADDRESS) + .withEmail(DEFAULT_EMAIL) + .withFixPhoneNumberWork(DEFAULT_MOBILE_NUMBER) + .withFixPhoneNumberHome(DEFAULT_MOBILE_NUMBER) + .withMobileNumber(DEFAULT_MOBILE_NUMBER) + .withNetMonthlyIncome(DEFAULT_INCOME) + .withHomeIncome(DEFAULT_INCOME); + } + + public NewClientWithCurrentAccountInformation prepareClientViaWSO() { + NonClient nonClient = createNonClient(); + String ufoUserName = getCredentials(banker, harness).getUsername(); + NewClientWithCurrentAccountInformation info = harness.dataPrepare().createNewFoCustomerWithCurrentAccountAndIbViaWso2(nonClient, ufoUserName); + harness.tasks().wso2().payments().pennyPayment( + "1000000", + DateUtils.convertRawDateForWso2(new Date()), + info.getCurrentAccount(), + "1152131012", + "0300", + "Marcel Vaněček", + "Marcel Vaněček, dar" + ); + info.setCredentials(new IbLoginApiTasks(harness).loginAndConfirmAuthWithSms(info.getCredentials().getUsername())); + return info; + } + + public void logClientInfo(NewClientWithCurrentAccountInformation info) { + harness.log("Name: " + info.getClientData().firstName() + " " + info.getClientData().lastName()); + harness.log("BirthNumber: " + info.getClientData().birthNumber()); + harness.log("Cif: " + info.getCif()); + harness.log("IB username: " + info.getCredentials().getUsername()); + harness.log("IB password: " + info.getCredentials().getPassword()); + } + + public Function establishFirstInvestmentE2E() { + return page -> { + InvestmentsPurchaseDialog id = page + .goToInvestments() + .clickInvestmentsCard() + .confirmDisclaimer() + .clickShortTermCategory() + .clickInvestment() + .clickGoInvestAndFillQuestionnaire() + .clickGoFill() + .fillQuestionnaire() + .clickShowFunds() + .waitForMenu() + .clickRandomInvestment() + .clickGoInvest(); + + String isin = id.getIsin(); + + InvestmentsPurchaseVictory iv = id + .fillIndividualAmount("111111") + .fillRegularAmount("11111") + .clickAgreement() + .clickSubmitAndGoToFrameworkAgreement() + .scrollDown() + .clickGoSigneDocument() + .fillMobileKey("12341234") + .clickSubmitMobileKey(); + + harness.log("Successfully purchased fund: " + isin); + + return iv.waitForVictory(); + }; + } + + private void purchaseInvestmentByProfileNumber(InvestmentsPage page, String profileNumber, String individualAmount, String regularAmount) { + InvestmentsPurchaseDialog id = page + .waitForMenu() + .uncoverEntireFundList() + .clickInvestmentByProfile(profileNumber) + .clickGoInvest() + .fillIndividualAmount(individualAmount) + .fillRegularAmount(regularAmount) + .clickAgreement(); + + String isin = id.getIsin(); + + id.clickSubmit() + .fillMobileKey("12341234") + .clickSecondFactorSubmit() + .backToFundList(); + harness.log("Successfully purchased fund: " + isin); + + } + + public Function purchasedInvestmentFromEachRiskProfile(List riskProfileNumbers, String individualAmount, String regularAmount) { + return investmentsPage -> { + riskProfileNumbers.forEach(pn -> this.purchaseInvestmentByProfileNumber(investmentsPage, pn, individualAmount, regularAmount)); + return investmentsPage; + }; + } + + /** + * Find elements where is fund risk profile number + * then get text from each element and make a list of fund risk profile numbers + * then get rid of duplicity + */ + public List getRiskProfileNumbers() { + List riskProfileNumbers = new ArrayList<>(); + NewIbEndpoint ep = harness.getEndpoint(NewIbEndpoint.class); + ep.waitForElementsToLoad(5, FUND_RISK_PROFILE_NUMBER); + List elementsWithProfileNumber = ep.findAndGetListOfElements(FUND_RISK_PROFILE_NUMBER, Lookup.XPATH); + elementsWithProfileNumber.forEach(e -> riskProfileNumbers.add(e.getText())); + return new ArrayList<>(new HashSet<>(riskProfileNumbers)); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/AccountsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/AccountsPage.java new file mode 100644 index 0000000..035f11b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/AccountsPage.java @@ -0,0 +1,111 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.dsl.newib.payments.AdvicePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.mainpage.AccountsPage.*; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Wait({ACCOUNTS_TITLE_XPATH}) +public interface AccountsPage extends NewIbPageFlow, StoreAccessor, VerticalMainMenu { + + String ACCOUNTS_TITLE_XPATH = "//h1[@class='t-title t-title--h5 u-ml--small'][text()='Účty']"; + String EXCHANGE_PRODUCT_CARD = "//div[@data-testid='newProductCard-currentAccountForeign']"; + String AVAILABLE_BALANCE_XPATH = "//div[@class='t-amountWithUnit t-amountWithUnit--large t-amountWithUnit--bold']"; + String AVAILABLE_BALANCE_VALUE_KEY = "AVAILABLE_BALANCE_VALUE"; + String ADVANCED_SEARCH = "//button[@data-testid='advanced-search']"; + String DATE_FROM = "//input[@id='dateFrom']"; + String FILTER_TRANSACTIONS_BUTTON = "//button[@data-testid='advanced-filter-search']"; + String TRANSACTION_TYPE = "//button[text()='%s']"; + String PAYMENT_VALUE_XPATH = "//div[text()='%s']"; + String RESERVATION_DATA_XPATH = "//small[text()='%s']"; + String RESERVATION_AMOUNT_XPATH = "//div[@class='t-amountWithUnit t-amountWithUnit--medium t-amountWithUnit--bold'][text()='%s']"; + String RESERVATION_DESC_XPATH = "//span[text()='%s']"; + String ACCOUNT_NUMBERS_LIST = "//nav[@data-testid = 'Menu']/ul[@data-testid = 'MenuList']//p[@data-testid='TextComponent']/small[text()='%s']"; + String ACCOUNT_SETTINGS_XPATH = "//button[@aria-label='Nastavení']"; + String ACCOUNT_SET_AS_PREFFERED_XPATH = "//button[@data-testid='account-set-as-preffered-button']"; + String CONFIRM_BUTTON_XPATH = "//button[@data-testid='confirm-button']"; + String ACCOUNT_TITLE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Běžné účty']"; + String SEARCH_FIELD = "//*[@id=\"fulltext\"]"; + String TRANSACTION_DETAIL_XPATH = "(//h2[@class='t-title t-title--h6 c-contentTableRow__title' and normalize-space(text())='%s'])[1]"; + String DOWNLOAD_CASH_RECEIPT_XPATH = "//button[@data-testid='Button'][text()='Zobrazit potvrzení platby']"; + String DEBIT_CARD_ONBOARDING_XPATH = "//div[@data-testid='banner-second-debit-card']"; + String DEBIT_CARD_ONBOARDING_NOT_VISIBLE_XPATH = "//div[not(.//div[@data-testid='banner-second-debit-card'])]"; + String ADVICE_BUTTON_XPATH = "//span[@data-testid='advices-tab' and text()='Avíza']"; + + @CustomAction + default AccountsPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "accounts"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @CheckElementPresent(EXCHANGE_PRODUCT_CARD) + AccountsPage checkExchangeProductCardIsPresent(); + + @StoreElementContent(storeKey = AVAILABLE_BALANCE_VALUE_KEY, value = AVAILABLE_BALANCE_XPATH, by = Lookup.XPATH) + AccountsPage getAvailableBalance(); + + @Click(ADVANCED_SEARCH) + AccountsPage clickAdvancedSearch(); + + @TypeInto(value = DATE_FROM, clear = true) + AccountsPage fillDateFrom(String actualDate); + + @Click(FILTER_TRANSACTIONS_BUTTON) + AccountsPage clickFilterTransactions(); + + @Click(value = TRANSACTION_TYPE, isStringDynamicXpath = true, by = Lookup.XPATH) + AccountsPage selectTransactionType(String transactionTypes); + + @CheckElementPresent(value = PAYMENT_VALUE_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + AccountsPage checkPaymentValue(String paymentValue); + + @CheckElementPresent(value = RESERVATION_AMOUNT_XPATH, isStringDynamicXpath = true) + AccountsPage checkReservationAmount(String amount); + + @CheckElementPresent(value = RESERVATION_DATA_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + AccountsPage checkReservationDate(String date); + + @CheckElementPresent(value = RESERVATION_DESC_XPATH, isStringDynamicXpath = true) + AccountsPage checkReservationDescription(String description); + + @Click(value = ACCOUNT_NUMBERS_LIST, by = Lookup.XPATH, isStringDynamicXpath = true) + AccountsPage selectAccountNumber(String accountNumber); + + @Click(ACCOUNT_SETTINGS_XPATH) + AccountsPage clickOnAccountSettings(); + + @Click(ACCOUNT_SET_AS_PREFFERED_XPATH) + AccountsPage clickOnSetAsPreffered(); + + @Click(value = CONFIRM_BUTTON_XPATH, andWait = @Wait(explicitWaitSeconds = 1)) + AccountsPage clickOnConfirmButton(); + + @CheckElementPresent(ACCOUNT_TITLE_XPATH) + AccountsPage checkAccountsTitleIsPresent(); + + @TypeInto(value = SEARCH_FIELD, andWait = @Wait(explicitWaitSeconds = 3)) + AccountsPage searchAmount(String amount); + + @Click(value = TRANSACTION_DETAIL_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + AccountsPage openTransactionDetails(String transaction); + + @Click(DOWNLOAD_CASH_RECEIPT_XPATH) + AccountsPage clickOnDownloadCashReceipt(); + + @Click(DEBIT_CARD_ONBOARDING_XPATH) + CardsOnboardingWelcomingPage clickOnNewDebitCard(); + + @CheckElementPresent(DEBIT_CARD_ONBOARDING_NOT_VISIBLE_XPATH) + AccountsPage checkNewDebitCardNotVisible(); + + @Click(ADVICE_BUTTON_XPATH) + AdvicePage clickOnAdviceButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/ApplicationPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/ApplicationPage.java new file mode 100644 index 0000000..d4dc827 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/ApplicationPage.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.mainpage.ApplicationPage.PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.newib.mainpage.ApplicationPage.LOADER_DIV_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, waitSecondsForElement = 60, by = Lookup.XPATH) +@Wait(value = LOADER_DIV_XPATH, by = Lookup.XPATH, until = Until.GONE) +public interface ApplicationPage extends NewIbPageFlow, StoreAccessor { + String PAGE_LABEL_XPATH = "//h1[text()=\"Žádost o podnikatelský úvěr\"]"; + String LOADER_DIV_XPATH = "//div[@class='styles_ib-cardWithLoader__3_k-p']"; + String AGREE_AND_CONTINUE_TO_SIGN_BUTTON_XPATH = "//button[text()='Souhlasím, pokračovat k podpisu' and @class='c-btn']"; + String MOBILE_KEY_INPUT = "mobileKey"; + String SIGN_BUTTON_XPATH = "//button[@data-testid='secondFactorSend']"; + String SUCCESSFULLY_SEND_APPLICATION_H2_XPATH = "//h2[text()='Vaše žádost o úvěr byla odeslána']"; + String RETURN_TO_OVERVIEW_BUTTON_XPATH = "//button[@data-testid='backToDashboard' and text()='Zpět na přehled']"; + + @Click(value = AGREE_AND_CONTINUE_TO_SIGN_BUTTON_XPATH, by = Lookup.XPATH) + ApplicationPage clickAgreeAndContinueToSign(); + + @CustomAction + default ApplicationPage scrollToBottom() { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + ep.sendKeysOneAtATime(Key.DOWN); + ep.sendKeysOneAtATime(Key.END); + return null; + } + + @TypeInto(value = MOBILE_KEY_INPUT, by = Lookup.ID) + ApplicationPage fillMobKey(String mobKey); + + @Click(value = SIGN_BUTTON_XPATH, jsClick = true, andWait = @Wait(value = SIGN_BUTTON_XPATH, until = Until.GONE)) + ApplicationPage clickSign(); + + @CheckElementPresent(SUCCESSFULLY_SEND_APPLICATION_H2_XPATH) + ApplicationPage checkSuccessApplicationSent(); + + @Click(RETURN_TO_OVERVIEW_BUTTON_XPATH) + DashboardPage clickReturnToOverview(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/BuildingSavingsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/BuildingSavingsPage.java new file mode 100644 index 0000000..a81b86b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/BuildingSavingsPage.java @@ -0,0 +1,103 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.payments.*; +import cz.moneta.test.dsl.newib.savings.PersonalDetailPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.mainpage.BuildingSavingsPage.BUILDING_SAVINGS_TITLE_XPATH; + +@Wait(value = {BUILDING_SAVINGS_TITLE_XPATH}, waitSecondsForElement = 30) +public interface BuildingSavingsPage extends NewIbPageFlow { + + String BUILDING_SAVINGS_TITLE_XPATH = "//h1[text()='Stavební spoření']"; + String BUILDING_SAVINGS_BANNER_XPATH = "//div[contains(@class, 'styles_banner__text__17Nq2') and (.//h2/span)='Zdvojnásobení státní podpory a navíc bonus 500 Kč za sjednání online']"; + String BUILDING_SAVINGS_TEXT_XPATH = "//div[@class='c-card__header__text'][contains(., 'Nastavte si své stavební spoření') and contains(., 'Měsíční vklad') and contains(., 'Doba spoření') and contains(., 'Cílová částka') and contains(., 'Celkem naspoříte') and contains(., 'Vlastní vklad') and contains(., 'Státní podpora, v prvních 6 letech Vám ji zdvojnásobíme') and contains(., 'Poplatek za uzavření') and contains(., 'Měsíční vedení účtu stavebního spoření')]"; + String MONTHLY_PAYMENT_XPATH = "//input[@id='monthlyPayment']"; + String MONTHLY_PAYMENT_DEFAULT_XPATH = "//input[@id='monthlyPayment' and @value='1 700']"; + String MONTHLY_PAYMENT_ALERT_MAX_XPATH = "//div[@class='c-alert__text' and contains(., 'Skvělé, dosáhnete na maximální státní podporu') and contains(., '1') and contains(., '000') and contains(., 'Kč ročně. Tu Vám navíc za prvních 6 let zdvojnásobíme.')]"; + String MONTHLY_PAYMENT_ALERT_MIN_XPATH = "//div[@class='c-alert__text' and contains(., 'Vkládejte alespoň') and contains(., '1') and contains (., '700') and contains(., 'Kč měsíčně pro zisk maximální státní podpory') and contains(., '1') and contains(., '000') and contains(., 'Kč ročně, kterou Vám navíc za prvních 6 let zdvojnásobíme.')]"; + String TARGET_AMOUNT_OVERALL_XPATH = "//input[@id='targetAmount' and @value='5 178 000']"; + String TARGET_AMOUNT_XPATH = "//input[@id='targetAmount']"; + String CHECKBOX_STATE_CONTRIBUTION_XPATH = "//label[@for='stateContributionEnabled']//span[text()='Požaduji státní podporu']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='Button'][text()='Pokračovat']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String VICTORY_TEXT_XPATH = "//div[@class='c-card__header__text'][contains(., 'Hotovo! Můžete začít spořit') and contains(., 'Na aktivaci Vašeho stavebního spoření budeme ještě chvíli pracovat, ale už teď si můžete nastavit trvalý příkaz.') and contains(., 'Smlouvu a ostatní dokumenty najdete v sekci Dokumenty. Aktivaci stavebního spoření Vám následně potvrdíme dopisem.')]"; + String SET_STANDING_ORDER_BUTTON_XPATH = "//button[@data-testid='Button'][text()='Nastavit trvalý příkaz']"; + String STANDING_ORDER_DESTINATION_ACC_NUMBER_XPATH = "//input[@id='destinationAccountNumber' and string-length(@value) > 0]"; + String STANDING_ORDER_DESTINATION_ACC_BANK_XPATH = "//button[@id='destinationAccountBank_button']//span[text()='7970']"; + String STANDING_ORDER_AMOUNT_XPATH = "//input[@id='amount' and @value='1 700']"; + String STANDING_ORDER_FREQUENCY_XPATH = "//button[@id='frequency_button']//span[text()='Měsíčně']"; + String STANDING_ORDER_NOTE_FOR_RECIPIENT_XPATH = "//textarea[@id='noteForRecipient' and text()='Stavební spoření']"; + String STANDING_ORDER_CONTINUE_BUTTON_XPATH = "//button[@data-testid='submit' and text()='Pokračovat']"; + String STANDING_ORDER_CONFIRM_BUTTON_XPATH = "//button[@data-testid='submit' and text()='Potvrdit']"; + String STANDING_ORDER_VICTORY_TITLE_PAGE_XPATH = "//h1[contains(., 'Trvalý příkaz byl přijat ke zpracování')]"; + + @CheckElementPresent(BUILDING_SAVINGS_BANNER_XPATH) + BuildingSavingsPage checkBuildingSavingsBanner(); + + @CheckElementPresent(MONTHLY_PAYMENT_DEFAULT_XPATH) + BuildingSavingsPage checkMonthlyPaymentDefault(); + + @CheckElementPresent(BUILDING_SAVINGS_TEXT_XPATH) + BuildingSavingsPage checkBuildingSavingsText(); + + @CheckElementPresent(MONTHLY_PAYMENT_ALERT_MAX_XPATH) + BuildingSavingsPage checkMonthlyPaymentMaxAlert(); + + @TypeInto(value = MONTHLY_PAYMENT_XPATH, clear = true) + BuildingSavingsPage setMonthlyPayment(String monthlyPayment); + + @CheckElementPresent(MONTHLY_PAYMENT_ALERT_MIN_XPATH) + BuildingSavingsPage checkMonthlyPaymentMinAlert(); + + @CheckElementPresent(TARGET_AMOUNT_OVERALL_XPATH) + BuildingSavingsPage checkTargetAmountOverall(); + + @Click(TARGET_AMOUNT_XPATH) + BuildingSavingsPage clickOnTargetAmount(); + + @Click(CHECKBOX_STATE_CONTRIBUTION_XPATH) + BuildingSavingsPage clickOnCheckboxStateContribution(); + + @Click(CONTINUE_BUTTON_XPATH) + PersonalDetailPage clickOnContinue(); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + BuildingSavingsPage clickOnContinueMobileKey(); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + BuildingSavingsPage setMobileKey(String mobileKey); + + @Wait(value = VICTORY_TEXT_XPATH, until = Until.VISIBLE) + @CheckElementPresent(VICTORY_TEXT_XPATH) + BuildingSavingsPage checkVictoryText(); + + @Click(SET_STANDING_ORDER_BUTTON_XPATH) + BuildingSavingsPage clickSetStandingOrderButton(); + + @CheckElementPresent(STANDING_ORDER_DESTINATION_ACC_NUMBER_XPATH) + BuildingSavingsPage checkDestinationAccNumber(); + + @CheckElementPresent(STANDING_ORDER_DESTINATION_ACC_BANK_XPATH) + BuildingSavingsPage checkDestinationAccBank(); + + @CheckElementPresent(STANDING_ORDER_AMOUNT_XPATH) + BuildingSavingsPage checkAmount(); + + @CheckElementPresent(STANDING_ORDER_FREQUENCY_XPATH) + BuildingSavingsPage checkFrequency(); + + @CheckElementPresent(STANDING_ORDER_NOTE_FOR_RECIPIENT_XPATH) + BuildingSavingsPage checkOrderNoteForRecipient(); + + @Click(STANDING_ORDER_CONTINUE_BUTTON_XPATH) + BuildingSavingsPage clickOnContinueButtonStandingOrder(); + + @Click(STANDING_ORDER_CONFIRM_BUTTON_XPATH) + BuildingSavingsPage clickOnConfirmButtonStandingOrder(); + + @CheckElementPresent(STANDING_ORDER_VICTORY_TITLE_PAGE_XPATH) + StandingOrderVictoryPage checkStandingOrderVictoryText(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingChoseDesignPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingChoseDesignPage.java new file mode 100644 index 0000000..98ccc43 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingChoseDesignPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = CardsOnboardingChoseDesignPage.CARDS_ONBOARDING_CHOSE_DESIGN_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface CardsOnboardingChoseDesignPage extends NewIbPageFlow, VerticalMainMenu { + String CARDS_ONBOARDING_CHOSE_DESIGN_XPATH = "//h1[@class='t-title t-title--h4 u-mb--xxLarge'][text()='Vyberte vzhled své nové karty']"; + String CONTINUE_BUTTON_XPATH = "//button[text()='Pokračovat']"; + + @Click(CONTINUE_BUTTON_XPATH) + CardsOnboardingDocumentPage clickContinueButtonAndWaitForVisibleButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingContractPage.java new file mode 100644 index 0000000..4138dd4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingContractPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = CardsOnboardingContractPage.CARDS_ONBOARDING_CONTRACT_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface CardsOnboardingContractPage extends NewIbPageFlow, VerticalMainMenu { + + String CARDS_ONBOARDING_CONTRACT_XPATH = "//h1[@class='t-title t-title--h4 u-mb--xxLarge'][text()='Pro zaslání karty potřebujeme Váš souhlas']"; + String SIGN_BUTTON_XPATH = "//button[text()='Podepsat']"; + String MOBILE_KEY_INPUT = "//label[text()='Mobilní klíč']/following::input[@id='mobileKey']"; + String LOADER_IMG_XPATH = "//*[@class='c-loader__image']"; + + @Wait(value = LOADER_IMG_XPATH, waitSecondsForElement = 60, by = Lookup.XPATH, until = Until.GONE) + CardsOnboardingContractPage waitForLoader(); + + @Click(SIGN_BUTTON_XPATH) + CardsOnboardingContractPage clickSign(); + + @TypeInto(MOBILE_KEY_INPUT) + CardsOnboardingContractPage typeSmsKey(String smsKey); + + @Click(SIGN_BUTTON_XPATH) + CardsOnboardingFinalPage clickSignToFinalPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingDocumentPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingDocumentPage.java new file mode 100644 index 0000000..b0d1bba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingDocumentPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = CardsOnboardingDocumentPage.CARDS_ONBOARDING_DOCUMENTS_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface CardsOnboardingDocumentPage extends NewIbPageFlow, VerticalMainMenu { + String CARDS_ONBOARDING_DOCUMENTS_XPATH = "//h1[@class='t-title t-title--h4 u-mb--xxLarge'][text()='Před podpisem smlouvy si přečtěte tyto dokumenty']"; + String UNDERSTAND_AND_AGREE_BUTTON_XPATH = "//button[text()='Rozumím a souhlasím']"; + String SIGN_BUTTON_XPATH = "//button[text()='Podepsat']"; + String MOBILE_KEY_INPUT = "//label[text()='Mobilní klíč']/following::input[@id='mobileKey']"; + String LOADER_IMG_XPATH = "//*[@class='c-loader__image']"; + + @Wait(value = LOADER_IMG_XPATH, waitSecondsForElement = 60, by = Lookup.XPATH, until = Until.GONE) + CardsOnboardingDocumentPage waitForLoader(); + + @Click(value = UNDERSTAND_AND_AGREE_BUTTON_XPATH, andWait = @Wait(value = SIGN_BUTTON_XPATH, until = Until.VISIBLE, by = Lookup.XPATH)) + CardsOnboardingContractPage clickUnderstandAndAgreeButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingEditingPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingEditingPage.java new file mode 100644 index 0000000..5705fee --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingEditingPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = CardsOnboardingEditingPage.CARDS_ONBOARDING_EDITING_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface CardsOnboardingEditingPage extends NewIbPageFlow, VerticalMainMenu { + String CARDS_ONBOARDING_EDITING_XPATH = "//h1[@class='t-title t-title--h4 u-mb--xxLarge'][text()='Teď už jen drobnosti']"; + String CONTINUE_BUTTON_XPATH = "//button[text()='Pokračovat']"; + + @Click(CONTINUE_BUTTON_XPATH) + CardsOnboardingChoseDesignPage clickContinueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingFinalPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingFinalPage.java new file mode 100644 index 0000000..fb17578 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingFinalPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = CardsOnboardingFinalPage.CARDS_ONBOARDING_CONTRACT_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface CardsOnboardingFinalPage extends NewIbPageFlow, VerticalMainMenu { + String CARDS_ONBOARDING_CONTRACT_XPATH = "//h1[@class='t-title t-title--h4 u-mb--xxLarge'][text()='Debetní karta Standard']"; + String PLASTIC_CARD_ONBOARDED_TEXT_XPATH = "//span[text()='Hotovo! Plastová karta už je na cestě k Vám.']"; + String VIRTUAL_CARD_ONBOARDED_TEXT_XPATH = "//span[text()='Hotovo! S virtuální kartou můžete okamžitě platit']"; + + @Wait(value = PLASTIC_CARD_ONBOARDED_TEXT_XPATH, until = Until.VISIBLE, by = Lookup.XPATH, waitSecondsForElement = 50) + CardsOnboardingFinalPage waitForConfirmationOfPlasticOnboarding(); + + @Wait(value = VIRTUAL_CARD_ONBOARDED_TEXT_XPATH, until = Until.VISIBLE, by = Lookup.XPATH, waitSecondsForElement = 50) + CardsOnboardingFinalPage waitForConfirmationOfVirtualOnboarding(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingWelcomingPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingWelcomingPage.java new file mode 100644 index 0000000..e1f2332 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsOnboardingWelcomingPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +@Wait(value = CardsOnboardingWelcomingPage.CARDS_ONBOARDING_WELCOMING_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface CardsOnboardingWelcomingPage extends NewIbPageFlow, VerticalMainMenu { + + String CARDS_ONBOARDING_WELCOMING_XPATH = "//h1[@class='t-title t-title--h4 u-mb--xxLarge'][text()='Jaká by měla být Vaše debetní karta?']"; + String PLASTIC_CARD_FREE_XPATH = "//button[text()='Plastová – ZDARMA']"; + String VIRTUAL_CARD_FREE_XPATH = "//button[text()='Virtuální – ZDARMA']"; + String DONT_WANT_TO_PAY_FASTER_BUTTON_XPATH = "//button[text()='Nechci platit rychleji']"; + String CONTINUE_BUTTON_XPATH = "//button[text()='Pokračovat']"; + + + @Click(PLASTIC_CARD_FREE_XPATH) + CardsOnboardingWelcomingPage clickPlasticCardFreeButton(); + + @Click(VIRTUAL_CARD_FREE_XPATH) + CardsOnboardingWelcomingPage clickVirtualCardFreeButton(); + + @Click(DONT_WANT_TO_PAY_FASTER_BUTTON_XPATH) + CardsOnboardingEditingPage clickDontWantToPayFasterButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsPage.java new file mode 100644 index 0000000..70bfe4e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/CardsPage.java @@ -0,0 +1,127 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.authentification.AuthMobileKey; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.mainpage.CardsPage.CARDS_XPATH; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Wait(value = CARDS_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface CardsPage extends NewIbPageFlow, StoreAccessor, VerticalMainMenu { + String CARDS_XPATH = "//h1[@class='t-title t-title--h5 u-ml--small'][text()='Karty']"; + String SMART_CREDIT_CARD_BANNER_XPATH = "//div[@data-testid='banner-smart']"; + String CARD_NUMBER_XPATH = "//*[text()[contains(.,'%s')]]"; + String CARD_ACCOUNT_XPATH = "//*[text()[contains(.,'č.ú: %s/0600')]]"; + String DETAIL_AND_SETTINGS_BUTTON = "//span[@data-testid='detail-tab']"; + String SHOW_PIN_ON_CARD_BUTTON = "//button[text()='Zobrazit PIN na kartě']"; + String SHOW_PIN_BUTTON = "//button[@data-testid='show-pin']"; + String MOBILE_KEY_INPUT = "//label[text()='Mobilní klíč']/following::input[@id='mobileKey']"; + String CONTINUE = "//button[@data-testid='secondFactorSend']"; + String PIN_XPATH = "//img[@alt='PIN']"; + String SEND_SMS_BUTTON = "//button[@class='c-link c-link--small u-mr--medium' and text()='Potvrdit přes mobilní klíč']"; + String SELECT_CARD_XPATH = "//p[@data-testid='TextComponent']//*[text()[contains(., '%s')]]"; + String BLOCK_CANCEL_CARD_BTN_XPATH = "//button[text()='Zablokovat / zrušit kartu']"; + String BLOCK_CANCEL_DETAIL_XPATH = "//h1[text()='Blokace karty online']"; + String BLOCK_CARD_XPATH = "//li[@id='type_value-BLOCK']"; + String RENEWAL_CARD_XPATH = "//li[@id='type_value-RENEWAL']"; + String CANCEL_CARD_XPATH = "//li[@id='type_value-CANCEL']"; + String UNBLOCK_CARD_XPATH = "//li[@id='type_value-UNBLOCK']"; + String CONTINUE_BTN_XPATH = "//button[@data-testid='cardBlockSelectionNext']"; + String BLOCK_MESSAGE_XPATH = "//h2[text()[contains(.,'Kartu udržíme pod zámkem do')]]"; + String UNBLOCK_MESSAGE_XPATH = "//h2[text()[contains(., 'Karta je znovu aktivní')]]"; + String CANCEL_MESSAGE_XPATH = "//h2[text()[contains(., 'Kartu jsme zablokovali a zrušili')]]"; + String BACK_TO_CARD_BUTTON_XPATH = "//button[@data-testid='card-block-victoryNext']"; + String DETAIL_SETTINGS_BUTTON_XPATH = "//span[@data-testid='detail-tab']"; + String CARD_DETAIL_INFO_XPATH = "//small[text()[contains(., '%s')]]"; + String DEBIT_CARD_SELECT_XPATH = "//p[@data-testid='TextComponent']//small[text()[contains(.,'Debetní karty k účtu') or contains(., 'Business') or contains(., 'Standard')]]"; + String CARD_SUBMENU_XPATH = "//ul[@data-testid=\"SubMenu\"]"; + String LOADER_IMG_XPATH = "//*[@class='c-loader__image']"; + String DEBIT_CARD_ONBOARDING_NOT_VISIBLE_XPATH = "//div[not(.//div[@data-testid='banner-second-debit-card'])]"; + + @CustomAction + default CardsPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "cards"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @CheckElementPresent(SMART_CREDIT_CARD_BANNER_XPATH) + CardsPage checkSmartCreditCardBannerIsPresent(); + + @Wait(value = CARD_NUMBER_XPATH, isStringDynamicXpath = true) + @Click(value = CARD_NUMBER_XPATH, isStringDynamicXpath = true) + CardsPage clickCardNumber(String cardNumber); + + @Click(value = CARD_ACCOUNT_XPATH, isStringDynamicXpath = true) + CardsPage clickAccountNumber(String accountNumber); + + @Click(DETAIL_AND_SETTINGS_BUTTON) + CardsPage clickNextSettings(); + + @Click(SHOW_PIN_ON_CARD_BUTTON) + CardsPage clickShowPin(); + + @Click(SHOW_PIN_BUTTON) + CardsPage clickShowPinButton(); + + @Wait(SEND_SMS_BUTTON) + @Click(SEND_SMS_BUTTON) + CardsPage clickSendSmsToAuth(); + + @TypeInto(MOBILE_KEY_INPUT) + CardsPage typeMobileKey(String mobileCode); + + @Click(value = CONTINUE, andWait = @Wait(value = PIN_XPATH, waitSecondsForElement = 100)) + CardsPage clickToShowPinAndWait(); + + @Click(value = SELECT_CARD_XPATH, andWait = @Wait(value = BLOCK_CANCEL_CARD_BTN_XPATH, waitSecondsForElement = 100), isStringDynamicXpath = true) + CardsPage selectCard(String maskedCardNumber); + + @Click(value = BLOCK_CANCEL_CARD_BTN_XPATH, andWait = @Wait(value = BLOCK_CANCEL_DETAIL_XPATH, waitSecondsForElement = 100)) + CardsPage clickOnBlockCancelCard(); + + @Click(BLOCK_CARD_XPATH) + CardsPage clickBlockCardRadio(); + + @Click(RENEWAL_CARD_XPATH) + CardsPage clickRenewalCardRadio(); + + @Click(CANCEL_CARD_XPATH) + CardsPage clickCancelCardRadio(); + + @Click(UNBLOCK_CARD_XPATH) + CardsPage clickUnblockCardRadio(); + + @Click(CONTINUE_BTN_XPATH) + AuthMobileKey clickContinue(); + + @CheckElementPresent(value = BLOCK_MESSAGE_XPATH) + CardsPage blockMessageAppeared(); + + @CheckElementPresent(value = UNBLOCK_MESSAGE_XPATH) + CardsPage unblockMessageAppeared(); + + @CheckElementPresent(value = CANCEL_MESSAGE_XPATH) + CardsPage cancelMessageAppeared(); + + @Click(value = BACK_TO_CARD_BUTTON_XPATH, andWait = @Wait(value = LOADER_IMG_XPATH, until = Until.GONE, waitSecondsForElement = 50)) + CardsPage clickBackToCard(); + + @Click(value = DETAIL_SETTINGS_BUTTON_XPATH, andWait = @Wait(value = LOADER_IMG_XPATH, until = Until.GONE, waitSecondsForElement = 50)) + CardsPage clickDetailsAndSettings(); + + @CheckElementPresent(value = CARD_DETAIL_INFO_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + CardsPage checkCardDetailInfo(String cardDetailInfoMessage); + + @Click(value = DEBIT_CARD_SELECT_XPATH, andWait = @Wait(value = CARD_SUBMENU_XPATH, waitSecondsForElement = 50)) + CardsPage openCardsSubMenu(); + + @CheckElementPresent(DEBIT_CARD_ONBOARDING_NOT_VISIBLE_XPATH) + CardsPage checkNewDebitCardNotVisible(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/ConfirmLogoutPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/ConfirmLogoutPage.java new file mode 100644 index 0000000..8cef2aa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/ConfirmLogoutPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.mainpage.ConfirmLogoutPage.*; + +@Wait({LOGOUT_PAGE_TITLE, YES_LOGOUT_BUTTON, NO_LOGOUT_BUTTON}) +public interface ConfirmLogoutPage extends NewIbPageFlow, HorizontalMainMenu { + String LOGOUT_PAGE_TITLE = "//h2[text()='Opravdu se chcete odhlásit?']"; + String YES_LOGOUT_BUTTON = "//button[@data-testid='confirm-logout']"; + String NO_LOGOUT_BUTTON = "//button[text()='Ne, zůstat']"; + + @Click(YES_LOGOUT_BUTTON) + SuccessfullyLogoutPage clickYesLogout(); + + @Click(NO_LOGOUT_BUTTON) + HorizontalMainMenu denyLogout(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/DashboardPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/DashboardPage.java new file mode 100644 index 0000000..854cdcb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/DashboardPage.java @@ -0,0 +1,120 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.dsl.newib.payments.MobileOperatorsPaymentPage; +import cz.moneta.test.dsl.newib.payments.NewPaymentDomesticPage; +import cz.moneta.test.dsl.newib.settings.payments.standingorders.StandingOrdersPage; +import cz.moneta.test.dsl.newib.settings.payments.templates.TemplatesPage; +import cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.CalculatorPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.mainpage.DashboardPage.*; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Wait(value = {PAGE_TITLE, OVERVIEW_PAGE_TITLE, THEME_SWITCHER_XPATH}, waitSecondsForElement = 60) +public interface DashboardPage extends NewIbPageFlow, HorizontalMainMenu, VerticalMainMenu, StoreAccessor { + String PAGE_TITLE = "//title[contains(text(),'Internet Banka - MONETA Money Bank')]"; + String OVERVIEW_PAGE_TITLE = "//h1[contains(text(),'Přehled')]"; + String THEME_SWITCHER_XPATH = "//div[@data-testid='themeSwitcherNotification']"; + String STANDING_ORDERS_BTN_XPATH = "(//button[@class='c-btn c-btn--small c-btn--border c-btn--primary c-compact-buttons__button'][text()='Trvalé příkazy'])[1]"; + String NEW_PAYMENT_BTN_XPATH = "(//button[starts-with(@data-testid,'account-new-payment')][text()='Zaplatit'])[1]"; + String TEMPLATES_BTN_XPATH = "(//span[@class='c-icon c-icon--l c-icon--clipboardArrowOut'][text()='Šablony'])[1]"; + String CREDIT_TOP_UP_PAYMENT_BTN_XPATH = "(//button[@class='c-btn c-btn--small c-btn--border'][text()='Dobít kredit'])[1]"; + String INCOME_EXPENSES_OVERVIEW_XPATH = "//div[@class='c-card__header__text']//ancestor::h3[text()='Příjmy a výdaje']"; + String AVAILABLE_BALANCE_XPATH = "//div[@class='t-amountWithUnit t-amountWithUnit--xxLarge t-amountWithUnit--bold styles_productCard__ballance__2MYoY']"; + String AVAILABLE_BALANCE_VALUE_KEY = "AVAILABLE_BALANCE_VALUE"; + String HISTORY_BTN_XPATH = "(//button[@class='c-btn c-btn--small c-btn--border c-compact-buttons__button'][text()='Historie'])[1]"; + String APPLICATION_HEADER_TEXT_DIV_XPATH = "//div[@data-testid='commercial-loan-banner' and contains(normalize-space(),'podnikatelský úvěr')]"; + String CHECK_AND_SIGN_NEW_DOCUMENT_BUTTON_XPATH = "//button[@data-testid='documentForSign-notification-sign-btn']"; + String BANNER_TV_CZK = "//span[starts-with(text(), 'Termínovaný vklad s')]"; + String BANNER_TV_EUR = "//span[starts-with(text(), 'Termínovaný vklad v EUR')]"; + String BANNER_SU_EUR = "//span[starts-with(text(), 'EUR spořicí účet s úrokem')]"; + String CARDS_BTN_XPATH = "//li[@data-testid='cards-link']"; + String RTV_CARD = "//small[contains(., '%s')]"; + String PENSION_CARD_XPATH = "//div[contains(@class,'productCard__header')][.//span[contains(., 'Penze')] and .//small[contains(., 'Doplňkové penzijní spoření')]]"; + String PENSION_CARD_SAVED_TEXT_XPATH = "//div[contains(@class,'productCard__ballance__ledger')]//small[normalize-space(.)='Naspořeno']"; + + @Click(CHECK_AND_SIGN_NEW_DOCUMENT_BUTTON_XPATH) + SigningModalPage clickCheckAndSignNewDocument(); + + @Click(STANDING_ORDERS_BTN_XPATH) + StandingOrdersPage goToStandingOrders(); + + @Click(value = APPLICATION_HEADER_TEXT_DIV_XPATH, jsClick = true) + ApplicationPage clickApplicationHeaderText(); + + @CheckElementPresent(STANDING_ORDERS_BTN_XPATH) + DashboardPage checkStandingOrdersBtnIsPresent(); + + @CheckElementPresent(OVERVIEW_PAGE_TITLE) + DashboardPage checkLoadDashboard(); + + @CheckElementPresent(HISTORY_BTN_XPATH) + DashboardPage checkHistoryBtnIsPresent(); + + @Click(NEW_PAYMENT_BTN_XPATH) + NewPaymentDomesticPage goToNewPayment(); + + @CheckElementPresent(NEW_PAYMENT_BTN_XPATH) + DashboardPage checkNewPaymentBtnIsPresent(); + + @Click(TEMPLATES_BTN_XPATH) + TemplatesPage goToTemplates(); + + @CheckElementPresent(TEMPLATES_BTN_XPATH) + DashboardPage checkTemplatesBtnIsPresent(); + + @Click(CREDIT_TOP_UP_PAYMENT_BTN_XPATH) + MobileOperatorsPaymentPage goToCreditTopUpPayment(); + + @CheckElementPresent(CREDIT_TOP_UP_PAYMENT_BTN_XPATH) + DashboardPage checkCreditTopUpBtnIsPresent(); + + @CheckElementPresent(THEME_SWITCHER_XPATH) + DashboardPage checkThemeSwitcherIsPresent(); + + @CheckElementPresent(INCOME_EXPENSES_OVERVIEW_XPATH) + DashboardPage checkIncomeExpensesOverviewIsPresent(); + + @CustomAction + default DashboardPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "dashboard"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @StoreElementContent(storeKey = AVAILABLE_BALANCE_VALUE_KEY, value = AVAILABLE_BALANCE_XPATH) + DashboardPage getAvailableBalance(); + + @CustomAction + default CalculatorPage goToChildBuildingSavings(Harness harness) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.changeUrl(harness.getConfig("endpoints.new.ib.url") + "savings/buildingSavings/child/calculator"); + return null; + } + + @Wait(value = BANNER_TV_CZK, waitSecondsForElement = 5) + @CheckElementsPresent({ + @CheckElementPresent(value = BANNER_TV_CZK), + @CheckElementPresent(value = BANNER_TV_EUR)}) + DashboardPage checkBannersPresent(); + + @Click(CARDS_BTN_XPATH) + CardsPage clickCards(); + + @Click(value = RTV_CARD, isStringDynamicXpath = true) + SavingsPage clickOnRtvCard(String fromAccount); + + @CheckElementPresent(PENSION_CARD_XPATH) + DashboardPage checkPensionCardTitle(); + + @CheckElementPresent(PENSION_CARD_SAVED_TEXT_XPATH) + DashboardPage checkPensionCardSavedText(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/ExchangePage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/ExchangePage.java new file mode 100644 index 0000000..038e426 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/ExchangePage.java @@ -0,0 +1,119 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.accounts.NewForeignAccountPromoPage; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +public interface ExchangePage extends NewIbPageFlow, VerticalMainMenu { + + String EXCHANGE_TITLE_TEXT_XPATH = "//h1 [@class='t-title t-title--h3'] [text()='Směnárna']"; + String FIRST_AMOUNT_INPUT_XPATH = "//input[@id='debitAmount']"; + String REQUEST_EXCHANGE_RATE_XPATH = "//button[@data-testid='submit']"; + String CONCLUDE_SALE_XPATH = "//button[@data-testid='submitExchange']"; + String CURRENCY_EXCHANGE_VICTORY_TITLE_XPATH = "//h2 [@class='t-title t-title--h5'] [text()='Směnný obchod byl odeslán ke zpracování']"; + String NEW_SALE_XPATH = "//button [@data-testid='back']"; + String SWAMP_ACCOUNTS_XPATH = "//button [@data-testid='swapCurrencies']"; + String SECOND_AMOUNT_INPUT_XPATH = "//input[@id='creditAmount']"; + String BACK_TO_OVERVIEW_XPATH = "//button [@data-testid='submit']"; + String FOREIGN_BANNER_TITLE_TEXT_XPATH = "//h2[@class='t-title t-title--h5 u-mb--xSmall'] [text()='Výhodný kurz %s s našim cizoměnovým účtem']"; + String NEW_FOREIGN_ACCOUNT_CREATE_XPATH = "//button[@data-testid='Button'] [text()='Založit účet']"; + String BUY_FOREIGN_CURRENCY_XPATH = "//h2[@class='t-title t-title--h5' and normalize-space(.)='Nákup %s']"; + String EXPIRED_ALERT_PRESENT = "//div[@class='c-alert__text'] [text()='Platnost nabízeného kurzu vypršela. Zažádejte si o nový kurz.']"; + String MINIMUM_DEBIT_AMOUNT_ALERT_PRESENT = "//div[@id='debitAmount_errorMessage']"; + String MINIMUM_CREDIT_AMOUNT_ALERT_PRESENT = "//div[@id='creditAmount_errorMessage']"; + String SALE_AMOUNT_VICTORY_PRESENT = "//p[@data-testid='TextComponent' and contains(., 'Prodáváte') and contains(., '2') and contains(., '000') and contains(., 'CZK')]"; + String BUY_AMOUNT_VICTORY_PRESENT = "//p[@data-testid='TextComponent' and contains(., 'nakupujete za ně') and contains(., '2') and contains(., '000,00') and contains(., 'CZK')]"; + String SELL_FOREIGN_CURRENCY_XPATH = "//h2[@class='t-title t-title--h5' and normalize-space(.)='Prodej %s']"; + String BUY_CURRENCY_AMOUNT_VICTORY_PRESENT = "//p[@data-testid='TextComponent']//strong[contains(., '200,00') and contains(., '%s')]"; + String SELL_CURRENCY_AMOUNT_VICTORY_PRESENT = "//p[@data-testid='TextComponent' and contains(., 'Prodáváte') and contains(., '200,00') and contains(., '%s')]"; + String VALIDITY_OFFERED_RATE_TEXT_XPATH = "//p[@data-testid='TextComponent']//small[contains(., 'Platnost nabízeného') and contains(., 'kurzu')]"; + String TO_ACCOUNT_BUTTON_XPATH = "//button[@id='creditAccountId_button']"; + String SELECT_FROM_ACCOUNT_XPATH = "//li[@role='option' and .//div[@class='c-dropdown__itemContent' and contains(., 'Cizoměnový (EUR)')]]"; + + @CustomAction + default ExchangePage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.switchToOtherWindow(5, 2); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "ucty-a-karty/cizomenovy-ucet"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @CheckElementPresent(EXCHANGE_TITLE_TEXT_XPATH) + ExchangePage checkExchangeTitleIsPresent(); + + @TypeInto(value = FIRST_AMOUNT_INPUT_XPATH, clear = true) + ExchangePage setFirstExchangeAmount(String firstAmount); + + @Click(REQUEST_EXCHANGE_RATE_XPATH) + ExchangePage clickOnRequestExchangeRate(); + + @Click(CONCLUDE_SALE_XPATH) + ExchangePage clickOnConcludeSale(); + + @CheckElementPresent(CURRENCY_EXCHANGE_VICTORY_TITLE_XPATH) + ExchangePage checkVictoryScreenIsPresent(); + + @Click(NEW_SALE_XPATH) + ExchangePage clickOnNewSale(); + + @Click(SWAMP_ACCOUNTS_XPATH) + ExchangePage clickOnSwapAccounts(); + + @TypeInto(value = SECOND_AMOUNT_INPUT_XPATH, clear = true) + ExchangePage setSecondExchangeAmount(String secondAmount); + + @Click(BACK_TO_OVERVIEW_XPATH) + ExchangePage clickOnBackToOverview(); + + @CheckElementPresent(value = FOREIGN_BANNER_TITLE_TEXT_XPATH, isStringDynamicXpath = true) + ExchangePage checkForeignTitleIsPresent(String currency); + + @Click(NEW_FOREIGN_ACCOUNT_CREATE_XPATH) + NewForeignAccountPromoPage clickOnCreateAccount(); + + @CheckElementPresent(value = BUY_FOREIGN_CURRENCY_XPATH, isStringDynamicXpath = true) + ExchangePage checkBuyCurrency(String currency); + + @Wait(explicitWaitSeconds = 45) + @CheckElementPresent(EXPIRED_ALERT_PRESENT) + ExchangePage waitUntilTimerRunsOutCheckAlert(); + + @CheckElementPresent(MINIMUM_DEBIT_AMOUNT_ALERT_PRESENT) + ExchangePage checkMinimumDebitAmountAlert(); + + @CheckElementPresent(MINIMUM_CREDIT_AMOUNT_ALERT_PRESENT) + ExchangePage checkMinimumCreditAmountAlert(); + + @CheckElementPresent(SALE_AMOUNT_VICTORY_PRESENT) + ExchangePage checkSaleAmountIsPresent(); + + @CheckElementPresent(BUY_AMOUNT_VICTORY_PRESENT) + ExchangePage checkBuyAmountIsPresent(); + + @CheckElementPresent(value = SELL_FOREIGN_CURRENCY_XPATH, isStringDynamicXpath = true) + ExchangePage checkSellCurrency(String currency); + + @Click(value = REQUEST_EXCHANGE_RATE_XPATH) + ExchangePage clickOnContinue(); + + @CheckElementPresent(value = BUY_CURRENCY_AMOUNT_VICTORY_PRESENT, isStringDynamicXpath = true) + ExchangePage checkBuyCurrencyAmountIsPresent(String currency); + + @CheckElementPresent(value = SELL_CURRENCY_AMOUNT_VICTORY_PRESENT, isStringDynamicXpath = true) + ExchangePage checkSellCurrencyAmountIsPresent(String currency); + + @CheckElementPresent(VALIDITY_OFFERED_RATE_TEXT_XPATH) + ExchangePage checkValidityOfferedRateIsPresent(); + + @Click(TO_ACCOUNT_BUTTON_XPATH) + ExchangePage clickOnTomAccount(); + + @Click(SELECT_FROM_ACCOUNT_XPATH) + ExchangePage selectToAccount(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/InsurancePage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/InsurancePage.java new file mode 100644 index 0000000..2ee6a64 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/InsurancePage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.mainpage.InsurancePage.*; + +@Wait(value = {VERTICAL_MENU_XPATH, OVERVIEW_ITEM_XPATH, ACCOUNTS_ITEM_XPATH, SAVINGS_ITEM_XPATH, LOANS_AND_MORTGAGES_ITEM_XPATH, CARDS_ITEM_XPATH, INSURANCE_ITEM_XPATH, INVESTMENTS_ITEM_XPATH, EXCHANGE_ITEM_XPATH}, waitSecondsForElement = 30) +public interface InsurancePage extends NewIbPageFlow, VerticalMainMenu { + + String REDIRECTING_TO_OLD_IB_TITLE = "//h2[@class='t-title t-title--h3 c-modal__title'][text()='Přesměrujeme Vás do původní Internet Banky']"; + String INSURANCE_HEADLINE_XPATH = "//h1[@class='t-title t-title--h3 u-mb--0'][text()='Pojištění']"; + String DECLINE_REDIRECT_BTN_XPATH = "//button[@data-testid='decline-redirect-button']"; + + @CheckElementPresent(REDIRECTING_TO_OLD_IB_TITLE) + InsurancePage checkRedirectingToOldIbTitleIsPresent(); + + @CheckElementPresent(INSURANCE_HEADLINE_XPATH) + InsurancePage checkInsuranceHeadlineIsPresent(); + + @Click(DECLINE_REDIRECT_BTN_XPATH) + InsurancePage clickOnCancel(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/InvestmentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/InvestmentsPage.java new file mode 100644 index 0000000..cb62f2f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/InvestmentsPage.java @@ -0,0 +1,118 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.dsl.newib.investments.InvestmentsPurchaseDialog; +import cz.moneta.test.dsl.newib.investments.InvestmentsQuestionnaire; +import cz.moneta.test.dsl.newib.investments.InvestmentsSaleDialog; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.openqa.selenium.WebElement; +import java.util.List; +import java.util.Random; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +//@Wait({DISCLAIMER_CONFIRMATION_BTN_XPATH}) +public interface InvestmentsPage extends NewIbPageFlow, StoreAccessor, VerticalMainMenu { + + String DISCLAIMER_CONFIRMATION_BTN_XPATH = "//button[@data-testid='confirm'][text()='Rozumím']"; + String INVESTMENTS_TITLE_XPATH = "//h2[@class='t-title t-title--h5'][text()='Přehled našich produktů']"; + String INVESTMENTS_HEADER_XPATH = "//h1[@class='t-title t-title--h3 u-mb--xLarge u-ml--0'][text()='Jaký typ investice vás zajímá?']"; + String INVESTMENTS_PRODUCT_PROMO_XPATH = "//div[@data-testid='newProductCard-promo']"; + String MENU_SHORT_TERM_FUNDS = "//*[./*[text()='Krátkodobější investice, stabilnější fondy']]"; + String MENU_MEDIUM_TERM_FUNDS = "//*[./*[text()='Střednědobé investice, vyvážené fondy']]"; + String MENU_LONG_TERM_FUNDS = "//*[./*[text()='Dlouhodobé investice, kolísavé fondy']]"; + String MENU_INVESTMENT = "//div[contains(@data-testid, 'sidebar-fund-')]"; + String INVEST_BUTTON = "//button[@data-testid='investBtn']"; + String RECOMMENDATION_CATEGORIES = "//li[@data-testid='MenuItem' and contains(@class,'m-menu__item') and .//ul/li]/div"; + String RECOMMENDATION_CATEGORIES_NOT_OPEN = "//li[@data-testid='MenuItem' and @class = 'm-menu__item' and .//ul/li]/div"; + String INVESTMENT_BY_PROFILE = "//div[contains(@data-testid, 'sidebar-fund-') and .//span[@class='c-avatar__text' and text()='%s']]"; + String INVESTMENT_BY_ISIN = "//div[@data-testid='sidebarFund-%s']"; + String FUND_RISK_PROFILE_NUMBER = "//div[contains(@data-testid, 'sidebar-fund-')]//span[@class='c-avatar__text' and not(text()='')]"; + String YOUR_INVESTMENT_OPPORTUNITY_MENU_ITEM = "//div[@class = 'c-card__header c-card__collapseTrigger']"; + String MY_PORTFOLIO = "//div[@data-testid='sidebar-investments']"; + String SALE_BUTTON = "//button[@data-testid='saleInvestment']"; + String INVESTMENTS_CARD = "//div[@data-testid='investments-card']"; + + @Click(INVESTMENTS_CARD) + InvestmentsPage clickInvestmentsCard(); + + @Click(DISCLAIMER_CONFIRMATION_BTN_XPATH) + InvestmentsPage confirmDisclaimer(); + + @CustomAction + default InvestmentsPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "investments"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @CheckElementPresent(INVESTMENTS_TITLE_XPATH) + InvestmentsPage checkInvestmentsTitleIsVisible(); + + @CheckElementPresent(INVESTMENTS_HEADER_XPATH) + InvestmentsPage checkInvestmentsHeaderIsVisible(); + + @CheckElementPresent(INVESTMENTS_PRODUCT_PROMO_XPATH) + InvestmentsPage checkInvestmentsProductPromoIsVisible(); + + @Click(MENU_SHORT_TERM_FUNDS) + InvestmentsPage clickShortTermCategory(); + + @Click(MENU_MEDIUM_TERM_FUNDS) + InvestmentsPage clickMediumTermCategory(); + + @Click(MENU_LONG_TERM_FUNDS) + InvestmentsPage clickLongTermCategory(); + + @Click(MENU_INVESTMENT) + InvestmentsPage clickInvestment(); + + @Click(INVEST_BUTTON) + InvestmentsQuestionnaire clickGoInvestAndFillQuestionnaire(); + + @Click(INVEST_BUTTON) + InvestmentsPurchaseDialog clickGoInvest(); + + @CustomAction + default InvestmentsPage uncoverEntireFundList() { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + ep.waitForElementsToLoad(5, RECOMMENDATION_CATEGORIES); + List closedMenuCategories = ep.findAndGetListOfElements(RECOMMENDATION_CATEGORIES_NOT_OPEN, Lookup.XPATH); + closedMenuCategories.forEach(e -> { + waitForMenu(); //there are some animations so it has to wait + ep.moveToElement(RECOMMENDATION_CATEGORIES_NOT_OPEN); + e.click(); + }); + return null; + } + + @Click(value = INVESTMENT_BY_PROFILE, isStringDynamicXpath = true) + InvestmentsPage clickInvestmentByProfile(String profileNumber); + + @Click(value = INVESTMENT_BY_ISIN, isStringDynamicXpath = true) + InvestmentsPage clickInvestmentByIsin(String isin); + + @CustomAction + default InvestmentsPage clickRandomInvestment(){ + uncoverEntireFundList(); + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + int fundCount = ep.findAndGetListOfElements(MENU_INVESTMENT, Lookup.XPATH).size(); + int randomNumber = new Random().nextInt(fundCount) + 1; + ep.click(()->"(" + MENU_INVESTMENT + ")["+ randomNumber +"]"); + return null; + } + + @Wait(value = YOUR_INVESTMENT_OPPORTUNITY_MENU_ITEM, explicitWaitSeconds = 2) + InvestmentsPage waitForMenu(); + + @Click(MY_PORTFOLIO) + InvestmentsPage clickMyPortfolio(); + + @Click(SALE_BUTTON) + InvestmentsSaleDialog clickSale(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/LoansAndMortgagesPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/LoansAndMortgagesPage.java new file mode 100644 index 0000000..f0581eb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/LoansAndMortgagesPage.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.mainpage.LoansAndMortgagesPage.*; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Wait({YOU_MIGHT_BE_INTERESTED_XPATH}) +public interface LoansAndMortgagesPage extends NewIbPageFlow, StoreAccessor, VerticalMainMenu { + + String LOANS_AND_MORTGAGES_TITLE_XPATH = "//h1[@class='t-title t-title--h5 u-ml--small'][text()='Půjčky a hypotéky']"; + String YOU_MIGHT_BE_INTERESTED_XPATH = "//h1[@class='t-title t-title--h5 u-ml--small'][text()='Výhodné nabídky pro Vás']"; + String CONSOLIDATION_BANNER_XPATH = "//div[@data-testid='newProductCard-consolidation']"; + String MORTGAGE_BANNER_XPATH = "//div[@data-testid='newProductCard-mortgage']"; + String LEASING_BANNER_XPATH = "//div[@data-testid='newProductCard-leasing']"; + + + @CustomAction + default LoansAndMortgagesPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "loans-and-mortgages"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @CheckElementPresent(CONSOLIDATION_BANNER_XPATH) + LoansAndMortgagesPage checkConsolidationBannerIsPresent(); + + @CheckElementPresent(MORTGAGE_BANNER_XPATH) + LoansAndMortgagesPage checkMortgageBannerIsPresent(); + + @CheckElementPresent(LEASING_BANNER_XPATH) + LoansAndMortgagesPage checkLeasingBannerIsPresent(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/SavingsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/SavingsPage.java new file mode 100644 index 0000000..5f092e5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/SavingsPage.java @@ -0,0 +1,93 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.dsl.newib.savings.DpsPage; +import cz.moneta.test.dsl.newib.savings.RtvServicingPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.mainpage.SavingsPage.*; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Wait({SAVINGS_TITLE_XPATH}) +public interface SavingsPage extends NewIbPageFlow, StoreAccessor, VerticalMainMenu { + + String SAVINGS_TITLE_XPATH = "//h1[@class='t-title t-title--h5 u-ml--small'][text()='Spoření']"; + String YOU_MIGHT_BE_INTERESTED_XPATH = "//h1[@class='t-title t-title--h5 u-ml--small'][text()='Výhodné nabídky pro Vás']"; + String BUILDING_SAVINGS_PRODUCT_CARD_XPATH = "//div[@data-testid='newProductCard-buildingSavings']//small[text()='Stavební spoření']"; + String SAVING_ACCOUNT_PRODUCT_CARD_XPATH = "//div[@data-testid='newProductCard-savingAccount']"; + String TERM_DEPOSIT_CZK_BANNER = "//span[starts-with(text(), 'Termínovaný vklad s')]"; + String TERM_DEPOSIT_EUR_USD_BANNER = "//span[starts-with(text(), 'Termínovaný vklad v EUR i USD')]"; + String SAVING_ACCOUNT_CZK_BANNER = "//small[text()='Spořicí účet']"; + String RTV_DEPOSIT_BUTTON = "//button[@aria-label='Vložit peníze']"; + String RTV_DEPOSIT_YELLOW_ALERT_TEXT_XPATH = "//div[@class='c-alert__text' and text()='Aby vklad proběhl, mějte poslední pracovní den před dnem obnovy do 20:00 dostatečný zůstatek na účtu.']"; + String RTV_DEPOSIT_BLUE_ALERT_TEXT_XPATH = "//div[@class='c-alert__text'][contains(., 'Vklad na RTV,') and contains(., '10') and contains(., '000') and contains(., 'CZK') and contains(., 'Můžete to udělat nejpozději poslední pracovní den před dnem obnovy do 20:00.')]"; + String RTV_SERVICING_STORNO_BUTTON = "//button[@data-testid='rtv-waiting-action-link' and text()='Chcete žádost zrušit?']"; + String RTV_WITHDRAWAL_BUTTON = "//button[@aria-label='Vybrat peníze']"; + String RTV_WITHDRAWAL_BLUE_ALERT_TEXT_XPATH = "//div[@class='c-alert__text'][contains(., 'Výběr z RTV,') and contains(., '10') and contains(., '000') and contains(., 'CZK') and contains(., 'Můžete to udělat nejpozději poslední pracovní den před dnem obnovy do 20:00.')]"; + String RTV_CANCEL_BUTTON = "//button[@aria-label='Zrušit']"; + String PENSION_BUTTON_XPATH = "//div[@class='u-fontWeightBold' and text()='Penze']"; + + @CustomAction + default SavingsPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "savings"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @CheckElementPresent(SAVING_ACCOUNT_PRODUCT_CARD_XPATH) + SavingsPage checkSavingAccountProductCardIsPresent(); + + @CheckElementPresent(BUILDING_SAVINGS_PRODUCT_CARD_XPATH) + SavingsPage checkBuildingSavingsProductCardIsPresent(); + + @CustomAction + default TermDepositPage clickOnCreateTvForCurrency(String currency) { + if ("CZK".equals(currency)) { + return clickOnCreateTvCzk(); + } else if ("EUR".equals(currency) || "USD".equals(currency)) { + return clickOnCreateTvEurUsd(); + } + throw new IllegalArgumentException("Unsupported currency: " + currency); + } + + @Click(TERM_DEPOSIT_CZK_BANNER) + TermDepositPage clickOnCreateTvCzk(); + + @Click(TERM_DEPOSIT_EUR_USD_BANNER) + TermDepositPage clickOnCreateTvEurUsd(); + + @Click(BUILDING_SAVINGS_PRODUCT_CARD_XPATH) + BuildingSavingsPage clickOnBuildingSavingsButton(); + + @Click(RTV_DEPOSIT_BUTTON) + RtvServicingPage clickOnRtvDepositButton(); + + @CheckElementPresent(RTV_DEPOSIT_YELLOW_ALERT_TEXT_XPATH) + SavingsPage checkRtvDepositYellowAlertText(); + + @CheckElementPresent(RTV_DEPOSIT_BLUE_ALERT_TEXT_XPATH) + SavingsPage checkRtvDepositBlueAlertText(); + + @Click(value = RTV_SERVICING_STORNO_BUTTON) + RtvServicingPage clickOnStornoButton(); + + @Click(RTV_WITHDRAWAL_BUTTON) + RtvServicingPage clickOnRtvWithdrawalButton(); + + @CheckElementPresent(RTV_WITHDRAWAL_BLUE_ALERT_TEXT_XPATH) + SavingsPage checkRtvWithdrawalBlueAlertText(); + + @Click(RTV_CANCEL_BUTTON) + RtvServicingPage clickOnRtvCancelButton(); + + @Click(PENSION_BUTTON_XPATH) + DpsPage clickOnPensionButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/SigningModalPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/SigningModalPage.java new file mode 100644 index 0000000..0d3954a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/SigningModalPage.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.mainpage.SigningModalPage.PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.newib.mainpage.SigningModalPage.PAGE_MODAL_SECTION_XPATH; +import static cz.moneta.test.dsl.newib.mainpage.SigningModalPage.LOADER_IMAGE_DIV_XPATH; + +@Wait(value = {PAGE_LABEL_XPATH, PAGE_MODAL_SECTION_XPATH}) +@Wait(value = LOADER_IMAGE_DIV_XPATH, until = Until.GONE) +public interface SigningModalPage extends NewIbPageFlow { + + String PAGE_LABEL_XPATH = "//h1[text()=\"Smluvní dokumentace pro Vaše podnikání\"]"; + String PAGE_MODAL_SECTION_XPATH = "//section[@id='superModal']"; + String CONTINUE_TO_SIGN_BUTTON_XPATH = "//button[@data-testid='documentSignModal-sign-btn']"; + String LOADER_IMAGE_DIV_XPATH = "//svg[@class='c-loader__image']"; + String SIGN_BUTTON_XPATH = "//button[@data-testid='secondFactorSend']"; + String MOBILE_KEY_INPUT = "mobileKey"; + + @Click(value = CONTINUE_TO_SIGN_BUTTON_XPATH, andWait = @Wait(value = LOADER_IMAGE_DIV_XPATH, until = Until.GONE)) + SigningModalPage clickContinueToSign(); + + @TypeInto(value = MOBILE_KEY_INPUT, by = Lookup.ID) + SigningModalPage fillMobKey(String mobKey); + + @Click(value = SIGN_BUTTON_XPATH, andWait = @Wait(value = LOADER_IMAGE_DIV_XPATH, until = Until.GONE)) + DashboardPage clickSign(); + + @CustomAction + default SigningModalPage scrollToBottom() { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + ep.scrollIntoView(CONTINUE_TO_SIGN_BUTTON_XPATH); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/SuccessfullyLogoutPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/SuccessfullyLogoutPage.java new file mode 100644 index 0000000..74a2a0a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/SuccessfullyLogoutPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.authentification.LoginPage; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.mainpage.SuccessfullyLogoutPage.*; + +@Wait({MAIN_MENU_LIST, LOGIN_ALERT_BANNER}) +public interface SuccessfullyLogoutPage extends NewIbPageFlow { + String LOGIN_ALERT_BANNER = "//div[@data-testid='loginAlertBanner']"; + String MAIN_MENU_LIST = "//ul[@data-testid='MenuList']"; + String LOGOUT_PAGE_TEXT = "//h1[contains(text(),'Byli jste úspěšně odhlášeni.')]"; + String LOGOUT_PAGE_SESSION_TIMEOUT_TEXT = "//h1[contains(text(),'Dlouho se nic nedělo. Kvůli bezpečnosti jsme Vás odhlásili.')]"; + String CLOSE_COOKIES_PANEL = "//button[@id='onetrust-accept-btn-handler']"; + String BACK_TO_LOGIN_XPATH = "//button[@data-testid='backToLogin']"; + + @CheckElementPresent(LOGOUT_PAGE_TEXT) + SuccessfullyLogoutPage checkLogoutText(); + + @CheckElementPresent(LOGOUT_PAGE_SESSION_TIMEOUT_TEXT) + SuccessfullyLogoutPage checkLogoutSessionTimeoutText(); + + @CustomAction + default SuccessfullyLogoutPage closeCookiesPanelIfVisible() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + if (newIbEndpoint.isElementVisible(5, CLOSE_COOKIES_PANEL, Lookup.XPATH)) { + newIbEndpoint.click(() -> CLOSE_COOKIES_PANEL); + } + return null; + } + + @Click(BACK_TO_LOGIN_XPATH) + LoginPage clickOnBackToLogin(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/TermDepositPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/TermDepositPage.java new file mode 100644 index 0000000..fb19f30 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/mainpage/TermDepositPage.java @@ -0,0 +1,168 @@ +package cz.moneta.test.dsl.newib.mainpage; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.mainpage.TermDepositPage.TERM_DEPOSIT_TITLE_XPATH; + +@Wait(value = TERM_DEPOSIT_TITLE_XPATH, waitSecondsForElement = 30) +public interface TermDepositPage extends NewIbPageFlow { + + String TERM_DEPOSIT_TITLE_XPATH = "//h1/span[text()='Termínovaný vklad']"; + String TERM_DEPOSIT_DOCUMENT_COMFIRM = "//div/strong[text()='Prohlašuji, že jsem se seznámil s těmito dokumenty']"; + String TERM_DEPOSIT_ACCOUNT_COMBO_BOX = "//button[@name='sourceAccountId']"; + String TERM_DEPOSIT_SELECT_ACCOUNT = "//div[contains(text(), 'Běžný účet %s')][1]"; + String TERM_DEPOSIT_AMOUNT = "//input[@data-testid='deposit']"; + String MINIMUM_AMOUNT_TEXT = "//div[starts-with(text(), 'Zadaná hodnota je menší než')]"; + String MAXIMUM_AMOUNT_TEXT = "//small[text()='Na vybraném účtu nemáte dostatek finančních prostředků']"; + String CHECK_TV = "//label[@for='termDepositType-%s']"; + String PERIOD_COMBO_BOX = "//button[@name='selectedPeriod']"; + String PERIOD_XPATH = "//div[contains(text(), '%s')]"; + String TAX_RESIDENCE_COMBO_BOX = "//button[@id='countryId.0_button']"; + String TAX_RESIDENCE_XPATH_TEMPLATE = "//div[text()='%s']"; + String TAX_ID_INPUT_XPATH1 = "//input[@data-testid='customer-dic-0']"; + String TAX_ID_INPUT_XPATH2 = "//input[@data-testid='customer-dic-1']"; + String NEXT_TAX_RESIDENCE_XPATH = "//button[@data-testid='add-tax-residence']"; + String TAX_RESIDENCE_COMBO_BOX_1 = "//button[@id='countryId.1_button']"; + String TAX_RESIDENCE_COMBO_BOX_2 = "//button[@id='countryId.2_button']"; + String TAX_RESIDENCE_COMBO_BOX_3 = "//button[@id='countryId.3_button']"; + String TAX_RESIDENCE_COMBO_BOX_4 = "//button[@id='countryId.4_button']"; + String TERM_DEPOSIT_CONFIRM_BUTTON = "//button[@data-testid='create-savings-term-deposit']"; + String CHECK_BOX_PRE_CONTRACT = "//input[@id='agreement']"; + String AGREE_PRE_CONTRACT = "//button[@data-testid='goNext']"; + String MOBILE_KEY_INPUT = "//label[text()='Mobilní klíč']/following::input[@id='mobileKey']"; + String SUBMIT_TERM_DEPOSIT = "//button[@data-testid='secondFactorSend']"; + String SUCCESSFULLY_NEW_TER_DEPOSIT_H2_XPATH = "//h2[text()='Hotovo! Vaši žádost jsme odeslali ke zpracování']"; + String BACK_TO_DASHBOARD = "//button[@data-testid='back-to-dashboard']"; + String INVALID_DIC_BUTTON = "//button[@data-testid='continueWithInvalidDIC']"; + String DECLINE_BUTTON = "//button[@data-testid='decline']"; + String CONFIRMATION_DISAGREEMENT_BUTTON = "//button[@data-testid='confirmDisagreement']"; + + @Click(TERM_DEPOSIT_ACCOUNT_COMBO_BOX) + TermDepositPage clickOnAccount(); + + @Click(value = TERM_DEPOSIT_SELECT_ACCOUNT, by = Lookup.XPATH, isStringDynamicXpath = true) + TermDepositPage selectAccount(String account); + + @TypeInto(TERM_DEPOSIT_AMOUNT) + TermDepositPage setLimitAmountMin(String limitAmount); + + @CheckElementPresent(MINIMUM_AMOUNT_TEXT) + TermDepositPage checkMinimumLimit(); + + @TypeInto(value = TERM_DEPOSIT_AMOUNT, clear = true) + TermDepositPage setLimitAmountMax(String limitAmount); + + @CheckElementPresent(MAXIMUM_AMOUNT_TEXT) + TermDepositPage checkMaximumLimit(); + + @TypeInto(value = TERM_DEPOSIT_AMOUNT, clear = true, andWait = @Wait(value = PERIOD_COMBO_BOX, until = Until.CLICKABLE)) + TermDepositPage setAmount(String amount); + + @Click(value = CHECK_TV, by = Lookup.XPATH, isStringDynamicXpath = true) + TermDepositPage clickOnTV(String termDepositType); + + @Click(PERIOD_COMBO_BOX) + TermDepositPage clickOnPeriod(); + + @Click(value = PERIOD_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + TermDepositPage selectPeriod(String termDepositPeriod); + + @Click(TAX_RESIDENCE_COMBO_BOX) + TermDepositPage clickOnTaxResidence(); + + @Click(value = TAX_RESIDENCE_XPATH_TEMPLATE, by = Lookup.XPATH, isStringDynamicXpath = true) + TermDepositPage selectTaxResidence(String taxResidence); + + @TypeInto(value = TAX_ID_INPUT_XPATH1, clear = true) + TermDepositPage fillTaxId1(String taxId); + + @CustomAction + default TermDepositPage handleTaxIdIfPresent1(String taxId) { + if (getEndpoint(NewIbEndpoint.class).isElementPresent(TAX_ID_INPUT_XPATH1, Lookup.XPATH)) { + return fillTaxId1(taxId); + } + return this; + } + + @TypeInto(value = TAX_ID_INPUT_XPATH2, clear = true) + TermDepositPage fillTaxId2(String taxId); + + @CustomAction + default TermDepositPage handleTaxIdIfPresent2(String taxId) { + if (getEndpoint(NewIbEndpoint.class).isElementPresent(TAX_ID_INPUT_XPATH2, Lookup.XPATH)) { + return fillTaxId2(taxId); + } + return this; + } + + @Click(NEXT_TAX_RESIDENCE_XPATH) + TermDepositPage clickOnAddNextTaxResidence(); + + @Click(TAX_RESIDENCE_COMBO_BOX_1) + TermDepositPage clickOnNextTaxResidence1(); + + @Click(TAX_RESIDENCE_COMBO_BOX_2) + TermDepositPage clickOnNextTaxResidence2(); + + @Click(TAX_RESIDENCE_COMBO_BOX_3) + TermDepositPage clickOnNextTaxResidence3(); + + @Click(TAX_RESIDENCE_COMBO_BOX_4) + TermDepositPage clickOnNextTaxResidence4(); + + @CheckElementPresent(NEXT_TAX_RESIDENCE_XPATH) + TermDepositPage checkNextTaxResidenceButtonExist(); + + @Click(value = TERM_DEPOSIT_CONFIRM_BUTTON, andWait = @Wait(value = TERM_DEPOSIT_DOCUMENT_COMFIRM, waitSecondsForElement = 60)) + TermDepositPage clickOnConfirmTV(); + + @Click(TERM_DEPOSIT_CONFIRM_BUTTON) + TermDepositPage clickOnConfirmTV1(); + + @CustomAction + default TermDepositPage scrollToBottom() { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + ep.sendKeysOneAtATime(Key.DOWN); + ep.sendKeysOneAtATime(Key.END); + return null; + } + + @Click(value = CHECK_BOX_PRE_CONTRACT, jsClick = true, andWait = @Wait(value = AGREE_PRE_CONTRACT, until = Until.CLICKABLE)) + TermDepositPage clickOnCheckBox(); + + @Click(value = AGREE_PRE_CONTRACT, andWait = @Wait(value = MOBILE_KEY_INPUT, waitSecondsForElement = 10)) + TermDepositPage clickOnAgreePrecontract(); + + @TypeInto(value = MOBILE_KEY_INPUT, andWait = @Wait(value = SUBMIT_TERM_DEPOSIT, waitSecondsForElement = 10)) + TermDepositPage fillMobKey(String defaultMobileKey); + + @Click(value = SUBMIT_TERM_DEPOSIT, andWait = @Wait(value = SUCCESSFULLY_NEW_TER_DEPOSIT_H2_XPATH, waitSecondsForElement = 60)) + TermDepositPage clickOnSubmit(); + + @CheckElementPresent(SUCCESSFULLY_NEW_TER_DEPOSIT_H2_XPATH) + TermDepositPage checkSuccessApplicationSent(); + + @Click(BACK_TO_DASHBOARD) + DashboardPage clickOnBackToDashboard(); + + @Click(value = INVALID_DIC_BUTTON, andWait = @Wait(value = TERM_DEPOSIT_DOCUMENT_COMFIRM, waitSecondsForElement = 60)) + TermDepositPage confirmInvalidDic(); + + @Click(DECLINE_BUTTON) + TermDepositPage clickOnDecline(); + + @Click(CONFIRMATION_DISAGREEMENT_BUTTON) + DashboardPage clickOnConfirmDisagreement(); + + @CustomAction + default TermDepositPage checkNextTaxResidenceButtonDoesntExist() { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + boolean isElementPresent = ep.isElementPresent(NEXT_TAX_RESIDENCE_XPATH, Lookup.XPATH); + if (isElementPresent) { + throw new AssertionError("Element NEXT_TAX_RESIDENCE_XPATH should not be present, but it is."); + } + return this; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/messages/MessageDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/messages/MessageDetailPage.java new file mode 100644 index 0000000..274f356 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/messages/MessageDetailPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.newib.messages; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.messages.MessageDetailPage.BIN_BTN_XPATH; +import static cz.moneta.test.dsl.newib.messages.MessageDetailPage.PRINT_BTN_XPATH; + +@Wait(value = {BIN_BTN_XPATH, PRINT_BTN_XPATH}, waitSecondsForElement = 30) +public interface MessageDetailPage extends NewIbPageFlow { + + String BIN_BTN_XPATH = "//span[@class='c-icon c-icon--bin']"; + String PRINT_BTN_XPATH = "//span[@class='c-icon c-icon--print']"; + String CONFIRM_BTN_XPATH = "//button[@data-testid='confirm-button']"; + String CONFIRMATION_DELETE_TXT_XPATH = "//h2[@class='t-title t-title--h3 c-modal__title'][text()='Zpráva je smazaná']"; + + @Click(BIN_BTN_XPATH) + MessageDetailPage deleteMessage(); + + @Click(CONFIRM_BTN_XPATH) + MessageDetailPage confirm(); + + @CheckElementPresent(CONFIRMATION_DELETE_TXT_XPATH) + MessageDetailPage checkConfirmationDeleteTextPresent(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/messages/MessagesModalPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/messages/MessagesModalPage.java new file mode 100644 index 0000000..8f2c835 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/messages/MessagesModalPage.java @@ -0,0 +1,95 @@ +package cz.moneta.test.dsl.newib.messages; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.messages.MessagesModalPage.*; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Wait(value = {MESSAGES_TITLE_XPATH, NEW_MESSAGE_BTN_XPATH}, waitSecondsForElement = 30) +public interface MessagesModalPage extends NewIbPageFlow, StoreAccessor { + + String MESSAGES_TITLE_XPATH = "//h1[@class='t-title t-title--h3 u-mb--0'][text()='Zprávy']"; + String NEW_MESSAGE_BTN_XPATH = "//button[@data-testid='new-message-button'][text()='Napsat novou zprávu']"; + String SENT_MESSAGES_BTN_XPATH = "//button[@class='c-btn c-btn--transparent c-btn--primary c-pills__listButton'][text()='Odeslané zprávy']"; + String UNREAD_MESSAGES_BTN_XPATH = "//button[@class='c-btn c-btn--transparent c-btn--primary c-pills__listButton'][text()='Nepřečtené zprávy']"; + String INBOX_MESSAGES_BTN_XPATH = "//button[@class='c-btn c-btn--transparent c-btn--primary c-pills__listButton'][text()='Příchozí zprávy']"; + String MESSAGE_ITEM_XPATH = "//span[text()='%s']"; + String CLOSE_MODAL_BTN_XPATH = "//button[@data-testid='close-messages-button']"; + String TOOLTIP_XPATH = "//span[@class='c-avatar__icon']"; + String SUBJECT_OF_THE_RECEIVED_MESSAGE_XPATH = "//td[contains(., 'Test') and contains(., 'Hypotéky')]"; + String SUBJECT_OF_THE_SENT_MESSAGE_XPATH = "//td[contains(., 'Test') and contains(., 'Hypotéky')]"; + String TEXT_OF_THE_RECEIVED_MESSAGE_XPATH = "//div[@class='custom-container']/div[normalize-space()='Test OK.']"; + String ANSWER_BUTTON_XPATH = "//button[@class='c-btn c-btn--border c-btn--primary' and text()='Odpovědět']"; + String TITLE_NEW_MESSAGE_XPATH = "//h1[@class='t-title t-title--h1' and text()='Napsat novou zprávu']"; + String VIEW_PREVIOUS_COMMUNICATION = "//span[@class='u-fontWeightNormal styles_threadTitle__7F1cI' and contains(normalize-space(), 'Zobrazit předchozí komunikaci')]"; + + @CheckElementPresent(MESSAGES_TITLE_XPATH) + MessagesModalPage checkMessagesTitle(); + + @CheckElementPresent(CLOSE_MODAL_BTN_XPATH) + MessagesModalPage checkCloseBtnIsPresent(); + + @CheckElementPresent(NEW_MESSAGE_BTN_XPATH) + MessagesModalPage checkNewMessageBtnIsPresent(); + + @Click(NEW_MESSAGE_BTN_XPATH) + NewMessagePage clickOnNewMessage(); + + @Wait(value = MESSAGE_ITEM_XPATH, isStringDynamicXpath = true) + @CheckElementPresent(value = MESSAGE_ITEM_XPATH, isStringDynamicXpath = true) + MessagesModalPage checkSentMessagePresent(String sentMessage); + + @Click(value = MESSAGE_ITEM_XPATH, isStringDynamicXpath = true) + MessageDetailPage goToMessageDetail(String subject); + + @CustomAction + default MessagesModalPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "modal/messages"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @Click(CLOSE_MODAL_BTN_XPATH) + DashboardPage closeMessagesModal(); + + @CheckElementPresent(TOOLTIP_XPATH) + MessagesModalPage checkTooltip(); + + @Click(UNREAD_MESSAGES_BTN_XPATH) + MessagesModalPage clickOnUnreadMessages(); + + @Click(INBOX_MESSAGES_BTN_XPATH) + MessagesModalPage clickOnInboxMessages(); + + @Wait(value = SENT_MESSAGES_BTN_XPATH, explicitWaitSeconds = 1) + @Click(SENT_MESSAGES_BTN_XPATH) + MessagesModalPage clickOnSentMessages(); + + @CheckElementPresent(SUBJECT_OF_THE_RECEIVED_MESSAGE_XPATH) + MessagesModalPage checkSubjectOfTheReceivedMessage(); + + @Click(SUBJECT_OF_THE_RECEIVED_MESSAGE_XPATH) + MessagesModalPage clickOnReceivedMessage(); + + @Wait(value = SUBJECT_OF_THE_SENT_MESSAGE_XPATH, until = Until.VISIBLE) + @CheckElementPresent(SUBJECT_OF_THE_SENT_MESSAGE_XPATH) + MessagesModalPage checkSubjectOfTheSentMessage(); + + @CheckElementContent(TEXT_OF_THE_RECEIVED_MESSAGE_XPATH) + MessagesModalPage checkTextOfTheReceivedMessage(String text); + + @Click(ANSWER_BUTTON_XPATH) + MessagesModalPage clickOnAnswerButton(); + + @CheckElementPresent(VIEW_PREVIOUS_COMMUNICATION) + MessagesModalPage checkViewPreviousCommunication(); + + @CheckElementPresent(TITLE_NEW_MESSAGE_XPATH) + MessagesModalPage checkTitleNewMessage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/messages/NewMessagePage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/messages/NewMessagePage.java new file mode 100644 index 0000000..f043ec0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/messages/NewMessagePage.java @@ -0,0 +1,156 @@ +package cz.moneta.test.dsl.newib.messages; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.messages.NewMessagePage.*; + +@Wait(value = {SUBJECT_INPUT_XPATH, MESSAGE_INPUT_XPATH, TOPIC_BTN_XPATH}, waitSecondsForElement = 30) +public interface NewMessagePage extends NewIbPageFlow, StoreAccessor, Builder { + + String SUBJECT_INPUT_XPATH = "//input[@id='subject']"; + String TOPIC_BTN_XPATH = "//button[@class='c-btn c-btn--button f-control'][@name='type']"; + String TOPIC_OPTION_XPATH = "//div[@class='f-option__label'][text()='%s']"; + String MESSAGE_INPUT_XPATH = "//textarea[@class='f-control f-control--textarea']"; + String SEND_MESSAGE_BTN_XPATH = "//button[@data-testid='submit']"; + String AMOUNT_INPUT_XPATH = "//label[@for='amount']//following::input[@id='amount']"; + String WITHDRAWAL_DATE_INPUT_XPATH = "//input[@id='dateTime']"; + String CLIENT_PHONE_NUMBER_INPUT_XPATH = "//input[@id='clientPhoneNumber']"; + String BRANCH_INPUT_XPATH = "//input[@name='branchId']"; + String AGREEMENT_CHECKBOX_XPATH = "//label[@for='agreement']"; + String AGREEMENT_CHECKBOX_OVERLIMIT_WITHDRAW_XPATH = "//input[@id='agreement']//following::span[contains(text(), 'Potvrzuji')]"; + String IBAN_INPUT_XPATH = "//input[@id='destinationAccountIban']"; + String CURRENCY_BTN_XPATH = "//div[@data-testid='currency']"; + String CURRENCY_OPTION_XPATH = "//div[@class='f-option__label'][text()='%s']"; + String DUE_DATE_INPUT_XPATH = "//input[@id='dueDate']"; + String TRANSACTION_DATE_INPUT_XPATH = "//input[@id='dueDate']"; + String DESTINATION_ACC_NUMBER_INPUT_XPATH = "//input[@id='destinationAccountNumber']"; + String BANK_CODE_INPUT_XPATH = "//input[@id='destinationAccountBank_input']"; + String BANK_CODE_BUTTON_XPATH = "//div[@data-testid='destinationAccountBank-select']"; + String VARIABLE_SYMBOL_INPUT_XPATH = "//input[@id='variableSymbol']"; + String CONSTANT_SYMBOL_INPUT_XPATH = "//input[@id='constantSymbol']"; + String SPECIFIC_SYMBOL_INPUT_XPATH = "//input[@id='specificSymbol']"; + String ACC_NUMBER_FOR_REFUND_INPUT_XPATH = "//input[@id='refundedAccountNumber']"; + String BANK_CODE_FOR_REFUND_INPUT_XPATH = "//input[@id='refundedAccountBank_input']"; + String BANK_CODE_FOR_REFUND_BUTTON_XPATH = "//div[@data-testid='refundedAccountBank-select']"; + String PHONE_NUMBER_FOR_REFUND_INPUT_XPATH = "//input[@id='phoneNumber']"; + String RECIPIENT_MESSAGE_INPUT_XPATH = "//input[@id='text']"; + String REPEATED_REQUEST_CHECKBOX_XPATH = "//label[@for='urgentMessage']"; + String TYPE_OF_COMPLAINTS_AND_CLAIMS = "//button[@id='subtype']"; + String COMPLAINTS_CLAIMS_OPTION = "//div[@class='f-option__label'][text()='%s']"; + + @TypeInto(SUBJECT_INPUT_XPATH) + NewMessagePage setSubject(String subject); + + @TypeInto(MESSAGE_INPUT_XPATH) + NewMessagePage setMessage(String message); + + @CustomAction + default NewMessagePage setTopic(String topic) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> TOPIC_BTN_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(TOPIC_OPTION_XPATH, topic)); + newIbEndpoint.waitForElementsToLoad(5, String.format(TOPIC_OPTION_XPATH, topic)); + return null; + } + + @CustomAction + default NewMessagePage setTypeOfComplaintsAndClaims(String typeOfComplaintsAndClaims) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> TYPE_OF_COMPLAINTS_AND_CLAIMS); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(COMPLAINTS_CLAIMS_OPTION, typeOfComplaintsAndClaims)); + newIbEndpoint.waitForElementsToLoad(5, String.format(COMPLAINTS_CLAIMS_OPTION, typeOfComplaintsAndClaims)); + return null; + } + + @CustomAction + default NewMessagePage setCurrency(String currency) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> CURRENCY_BTN_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(CURRENCY_OPTION_XPATH, currency)); + newIbEndpoint.waitForElementsToLoad(5, String.format(CURRENCY_OPTION_XPATH, currency)); + return null; + } + + @Click(value = SEND_MESSAGE_BTN_XPATH, andWait = @Wait(explicitWaitSeconds = 1)) + NewMessageVictoryPage clickOnSendMessage(); + + @TypeInto(AMOUNT_INPUT_XPATH) + NewMessagePage setAmount(String amount); + + @TypeInto(WITHDRAWAL_DATE_INPUT_XPATH) + NewMessagePage setWithdrawalDate(String withdrawalDate); + + @TypeInto(CLIENT_PHONE_NUMBER_INPUT_XPATH) + NewMessagePage setClientPhoneNumber(String clientPhoneNumber); + + @Click(AGREEMENT_CHECKBOX_XPATH) + NewMessagePage clickOnAgreement(); + + @Click(AGREEMENT_CHECKBOX_OVERLIMIT_WITHDRAW_XPATH) + NewMessagePage clickOnAgreementW(); + + @Click(REPEATED_REQUEST_CHECKBOX_XPATH) + NewMessagePage clickOnUrgent(); + + @TypeInto(IBAN_INPUT_XPATH) + NewMessagePage setIban(String iban); + + @TypeInto(DUE_DATE_INPUT_XPATH) + NewMessagePage setDueDate(String dueDate); + + @TypeInto(TRANSACTION_DATE_INPUT_XPATH) + NewMessagePage setTransactionDate(String transactionDate); + + @CustomAction + default NewMessagePage setBankCode(String bankCode) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> BANK_CODE_BUTTON_XPATH); + newIbEndpoint.type(() -> BANK_CODE_INPUT_XPATH, bankCode, true); + newIbEndpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @CustomAction + default NewMessagePage setBranch(String branch) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.type(() -> BRANCH_INPUT_XPATH, branch, true); + newIbEndpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @CustomAction + default NewMessagePage setRefundedBankCode(String refundedBankCode) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> BANK_CODE_FOR_REFUND_BUTTON_XPATH); + newIbEndpoint.type(() -> BANK_CODE_FOR_REFUND_INPUT_XPATH, refundedBankCode, true); + newIbEndpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @TypeInto(CONSTANT_SYMBOL_INPUT_XPATH) + NewMessagePage setConstantSymbol(String constantSymbol); + + @TypeInto(SPECIFIC_SYMBOL_INPUT_XPATH) + NewMessagePage setSpecificSymbol(String specificSymbol); + + @TypeInto(VARIABLE_SYMBOL_INPUT_XPATH) + NewMessagePage setVariableSymbol(String variableSymbol); + + @TypeInto(DESTINATION_ACC_NUMBER_INPUT_XPATH) + NewMessagePage setDestinationAccNumber(String destinationAccNumber); + + @TypeInto(ACC_NUMBER_FOR_REFUND_INPUT_XPATH) + NewMessagePage setAccNumberForRefund(String accNumberForRefund); + + @TypeInto(PHONE_NUMBER_FOR_REFUND_INPUT_XPATH) + NewMessagePage setPhoneNumberForRefund(String phoneNumberForRefund); + + @TypeInto(RECIPIENT_MESSAGE_INPUT_XPATH) + NewMessagePage setRecipientMessage(String recipientMessage); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/messages/NewMessageVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/messages/NewMessageVictoryPage.java new file mode 100644 index 0000000..0a9f24f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/messages/NewMessageVictoryPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.newib.messages; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.messages.NewMessageVictoryPage.*; + +@Wait(value = {NEW_MESSAGE_BTN_XPATH, BACK_TO_MESSAGES_BTN_XPATH}, waitSecondsForElement = 30) +public interface NewMessageVictoryPage extends NewIbPageFlow { + + String NEW_MESSAGE_BTN_XPATH = "//button[@data-testid='submit']"; + String BACK_TO_MESSAGES_BTN_XPATH = "//button[@data-testid='back']"; + String MESSAGE_SENT_VICTORY_TITLE_XPATH = "//h4[text()='Děkujeme Vám za zprávu a potvrzujeme její přijetí']"; + String CLOSE_MODAL_BTN_XPATH = "//button[@data-testid='close-messages-button']"; + + @Wait(value = MESSAGE_SENT_VICTORY_TITLE_XPATH, waitSecondsForElement = 15) + @CheckElementPresent(MESSAGE_SENT_VICTORY_TITLE_XPATH) + NewMessageVictoryPage checkMessageSentVictoryTitle(); + + @Click(NEW_MESSAGE_BTN_XPATH) + NewMessagePage clickOnNewMessage(); + + @Click(BACK_TO_MESSAGES_BTN_XPATH) + MessagesModalPage clickOnBackToMessages(); + + @Click(CLOSE_MODAL_BTN_XPATH) + DashboardPage closeMessagesModal(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/AdvicePage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/AdvicePage.java new file mode 100644 index 0000000..576fbc6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/AdvicePage.java @@ -0,0 +1,89 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface AdvicePage extends NewIbPageFlow { + String PAYMENT_REFERENCE_XPATH = "//p[@class='u-colorSecondary' and text()='Reference platby, datum a typ platby']"; + String AMOUNT_XPATH = "//p[@class='u-colorSecondary' and text()=' Částka']"; + String PREVIEW_OF_ADVICE_XPATH = "//tr[@class='c-contentTableRow c-contentTableRow--clickable']"; + String TITLE_ADVICE_XPATH = "//h1[@class='t-title t-title--h3 u-mb--0' and text()='Avízo k zahraniční platbě']"; + String DOWNLOAD_BUTTON_XPATH = "//button[@aria-label='Stáhnout']"; + String PRINT_BUTTON_XPATH = "//button[@aria-label='Vytisknout']"; + String CLOSE_BUTTON_XPATH = "//button[@aria-label='Zavřít']"; + String FILTER_DATE_FROM_XPATH = "//input[@id='dateFrom']"; + String FILTER_DATE_TO_XPATH = "//input[@id='dateTo']"; + String SHOW_MORE_ADVICES_BUTTON_XPATH = "//button[@data-testid='show-more-advices-btn']"; + String GRAPHS_TAB_XPATH = "//span[@data-testid='graphs-tab' and text()='Grafy']"; + String PLANNED_TAB_XPATH = "//span[@data-testid='planned-tab' and text()='Budoucí platby']"; + String STATEMENTS_TAB_XPATH = "//span[@data-testid='statements-tab' and text()='Výpisy']"; + String HISTORY_TAB_XPATH = "//span[@data-testid='history-tab' and text()='Historie']"; + String ADVANCED_SEARCH_XPATH = "//button[@data-testid='advanced-search']"; + String PAYMENT_TYPE_XPATH = "//button[@id='paymentType_button']"; + String PAYMENT_TYPE_OPTION_XPATH = "//div[@class='c-dropdown__itemContent' and text()='%s']"; + String ADVANCED_FILTER_SEARCH_BUTTON_XPATH = "//button[@data-testid='advanced-filter-search' and text()='Hledat']"; + String TRANSACTION_XPATH = "//h2[@class='t-title t-title--h6 c-contentTableRow__title' and text()='%s']"; + String ADVICE_BUTTON_XPATH = "//button[@class='c-btn c-btn--small c-btn--border c-btn--primary' and normalize-space()='Avízo']"; + + @CheckElementPresent(PAYMENT_REFERENCE_XPATH) + AdvicePage checkPaymentReference(); + + @CheckElementPresent(AMOUNT_XPATH) + AdvicePage checkAmount(); + + @Click(PREVIEW_OF_ADVICE_XPATH) + AdvicePage clickOnPreviewOfAdvice(); + + @CheckElementPresent(TITLE_ADVICE_XPATH) + AdvicePage checkTitleAdvice(); + + @CheckElementPresent(DOWNLOAD_BUTTON_XPATH) + AdvicePage checkDownloadButton(); + + @CheckElementPresent(PRINT_BUTTON_XPATH) + AdvicePage checkPrintButton(); + + @Click(CLOSE_BUTTON_XPATH) + AdvicePage clickOnCloseButton(); + + @TypeInto(FILTER_DATE_FROM_XPATH) + AdvicePage fillInDate(String date); + + @TypeInto(FILTER_DATE_TO_XPATH) + AdvicePage fillToDate(String date); + + @Click(SHOW_MORE_ADVICES_BUTTON_XPATH) + AdvicePage clickOnShowMoreAdvices(); + + @Click(GRAPHS_TAB_XPATH) + AdvicePage clickOnGraphsTab(); + + @Click(PLANNED_TAB_XPATH) + AdvicePage clickOnPlannedTab(); + + @Click(STATEMENTS_TAB_XPATH) + AdvicePage clickOnStatementsTab(); + + @Click(HISTORY_TAB_XPATH) + AdvicePage clickOnHistoryTab(); + + @Click(ADVANCED_SEARCH_XPATH) + AdvicePage clickOnAdvancedSearch(); + + @Click(PAYMENT_TYPE_XPATH) + AdvicePage clickOnPaymentType(); + + @Click(value = PAYMENT_TYPE_OPTION_XPATH, isStringDynamicXpath = true) + AdvicePage clickPaymentTypeOption(String paymentType); + + @Click(ADVANCED_FILTER_SEARCH_BUTTON_XPATH) + AdvicePage clickOnAdvancedFilterSearchButton(); + + @Click(value = TRANSACTION_XPATH, isStringDynamicXpath = true) + AdvicePage clickOnTransaction(String transaction); + + @Click(ADVICE_BUTTON_XPATH) + AdvicePage clickOnAdviceButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/BulkPaymentPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/BulkPaymentPage.java new file mode 100644 index 0000000..1b69036 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/BulkPaymentPage.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.payments.BulkPaymentPage.*; + +@Wait(value = {DETAIL_INFORMATION_XPATH, FROM_ACCOUNT_TEXT_XPATH, CONTINUE_BTN_XPATH}, waitSecondsForElement = 30) +public interface BulkPaymentPage extends NewIbPageFlow, StoreAccessor { + + String DETAIL_INFORMATION_XPATH = "//span[contains(text(), 'Symboly, zpráva pro příjemce, poznámka a další')]"; + String FROM_ACCOUNT_TEXT_XPATH = "//label[@for='sourceAccountId_button'][text()='Z účtu']"; + String ACCOUNT_NUMBER_INPUT_XPATH = "//input[@id='destinationAccountNumber']"; + String BANK_CODE_INPUT_XPATH = "//input[@name='destinationAccountBank']"; + String AMOUNT_INPUT_XPATH = "//input[@name='amount']"; + String VARIABLE_SYMBOL_INPUT_XPATH = "//input[@name='variableSymbol']"; + String CONSTANT_SYMBOL_INPUT_XPATH = "//input[@name='constantSymbol']"; + String SPECIFIC_SYMBOL_INPUT_XPATH = "//input[@name='specificSymbol']"; + String MESSAGE_RECIPIENT_INPUT_XPATH = "//textarea[@name='noteForRecipient']"; + String PAYER_NOTE_INPUT_XPATH = "//textarea[@name='noteForPayer']"; + String ADD_ANOTHER_PAYMENT_BTN_XPATH = "//button[@data-testid='bulk-payment-add']"; + String CONTINUE_BTN_XPATH = "//button[@data-testid='bulk-payment-continue']"; + String BANK_CODE_SELECT_XPATH = "//div[@data-testid='destinationAccountBank-select']"; + + @TypeInto(ACCOUNT_NUMBER_INPUT_XPATH) + BulkPaymentPage setAccountNumber(String accountNumber); + + @CustomAction + default BulkPaymentPage setBankCode(String bankCode) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> BANK_CODE_SELECT_XPATH); + newIbEndpoint.type(() -> BANK_CODE_INPUT_XPATH, bankCode, true); + newIbEndpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @TypeInto(AMOUNT_INPUT_XPATH) + BulkPaymentPage setAmount(String amount); + + @TypeInto(VARIABLE_SYMBOL_INPUT_XPATH) + BulkPaymentPage setVariableSymbol(String variableSymbol); + + @TypeInto(CONSTANT_SYMBOL_INPUT_XPATH) + BulkPaymentPage setConstantSymbol(String constantSymbol); + + @TypeInto(SPECIFIC_SYMBOL_INPUT_XPATH) + BulkPaymentPage setSpecificSymbol(String specificSymbol); + + @TypeInto(MESSAGE_RECIPIENT_INPUT_XPATH) + BulkPaymentPage setRecipientMessage(String recipientMessage); + + @TypeInto(PAYER_NOTE_INPUT_XPATH) + BulkPaymentPage setPayerNote(String payerNote); + + @Click(value = ADD_ANOTHER_PAYMENT_BTN_XPATH, andWait = @Wait(value = CONTINUE_BTN_XPATH, waitSecondsForElement = 10, until = Until.CLICKABLE)) + BulkPaymentPage clickOnAddPayment(); + + @Click(CONTINUE_BTN_XPATH) + BulkPaymentSummaryPage clickOnContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/BulkPaymentSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/BulkPaymentSummaryPage.java new file mode 100644 index 0000000..692a6e4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/BulkPaymentSummaryPage.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.payments.BulkPaymentSummaryPage.*; + +@Wait(value = {TITLE_SUMMARY_PAGE_XPATH, ADD_PAYMENT_BTN_XPATH, CONTINUE_BTN_XPATH}, waitSecondsForElement = 30) +public interface BulkPaymentSummaryPage extends NewIbPageFlow { + + String TITLE_SUMMARY_PAGE_XPATH = "//h1[@class='t-title t-title--h3 u-mb--xLarge'][text()='Souhrn']"; + String ADD_PAYMENT_BTN_XPATH = "//button[@data-testid='bulk-payment-add']"; + String CONTINUE_BTN_XPATH = "//button[@data-testid='bulk-payment-continue']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String RECIPIENT_ACC_NUMBER_XPATH = "//p[@class='u-fontWeightBold u-m--0'][text()='%s']"; + String AMOUNT_XPATH = "//div[@class='t-amount t-amount--medium t-amount--bold'][starts-with(normalize-space(), '%s')]"; + String PAYMENTS_COUNT_AVATAR_XPATH = "//span[@class='c-avatar__text'][text()='%s']"; + String SUBMIT_XPATH = "//button[@data-testid='submit']"; + String OVER_LIMIT_PAYMENT_WARNING_TEXT_XPATH = "//p[@class='u-mb--0' and @data-testid='TextComponent']/small[normalize-space(text())='%s']"; + String BACK_XPATH = "//button[@data-testid='back']"; + String DELETE_PAYMENT_BTN_XPATH = "//button[@aria-label='Smazat' and @data-testid='delete-payment-3']"; + String CANCEL_MODAL_CLOSE_XPATH = "//button[@data-testid='cancel-modal-close']"; + String CANCEL_MODAL_CONFIRM_XPATH = "//button[@data-testid='cancel-modal-confirm']"; + String ACCOUNT_NUMBER_INPUT_XPATH = "//input[@id='destinationAccountNumber']"; + + @Click(CONTINUE_BTN_XPATH) + BulkPaymentSummaryPage clickOnContinue(); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + BulkPaymentSummaryPage setMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + BulkPaymentVictoryPage clickOnContinueMobileKey(); + + @CheckElementPresent(value = RECIPIENT_ACC_NUMBER_XPATH, isStringDynamicXpath = true) + BulkPaymentSummaryPage checkRecipientAccNumber(String recipientAccNumber); + + @CheckElementPresent(value = AMOUNT_XPATH, isStringDynamicXpath = true) + BulkPaymentSummaryPage checkAmount(String amount); + + @CheckElementPresent(value = PAYMENTS_COUNT_AVATAR_XPATH, isStringDynamicXpath = true) + BulkPaymentSummaryPage checkNumberOfPayments(String numberOfPayments); + + @Click(value = ADD_PAYMENT_BTN_XPATH, andWait = @Wait(value = ACCOUNT_NUMBER_INPUT_XPATH, waitSecondsForElement = 10, until = Until.CLICKABLE)) + BulkPaymentPage clickOnAddPayment(); + + @Click(SUBMIT_XPATH) + BulkPaymentSummaryPage clickOnSubmit(); + + @CheckElementPresent(value = OVER_LIMIT_PAYMENT_WARNING_TEXT_XPATH, isStringDynamicXpath = true) + BulkPaymentSummaryPage checkOverLimitPaymentWarningText(String overLimitPaymentWarningText); + + @Click(BACK_XPATH) + BulkPaymentSummaryPage clickOnBack(); + + @Click(DELETE_PAYMENT_BTN_XPATH) + BulkPaymentSummaryPage clickOnDeletePayment(); + + @Click(CANCEL_MODAL_CLOSE_XPATH) + BulkPaymentSummaryPage clickOnCancelModalClose(); + + @Click(CANCEL_MODAL_CONFIRM_XPATH) + BulkPaymentSummaryPage clickOnCancelModalConfirm(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/BulkPaymentVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/BulkPaymentVictoryPage.java new file mode 100644 index 0000000..c94a07e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/BulkPaymentVictoryPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.accounts.HistoryTab; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.newib.payments.BulkPaymentVictoryPage.TRANSACTIONS_OVERVIEW_BTN_XPATH; +import static cz.moneta.test.dsl.newib.payments.BulkPaymentVictoryPage.NEXT_PAYMENT_BTN_XPATH; + +@Wait({TRANSACTIONS_OVERVIEW_BTN_XPATH, NEXT_PAYMENT_BTN_XPATH}) +public interface BulkPaymentVictoryPage extends NewIbPageFlow { + String BULK_PAYMENT_VICTORY_TITLE_TEXT_XPATH = "//h1[@class='t-title t-title--h3 u-mb--large'][text()='Přijali jsme Vaše platby ke zpracování']"; + String TRANSACTIONS_OVERVIEW_BTN_XPATH = "//button[@data-testid='bulk-payment-continue']"; + String NEXT_PAYMENT_BTN_XPATH = "//button[@data-testid='bulk-payment-next-payment']"; + String INFO_TEXT_NUMBER_OF_PAYMENTS_XPATH = "//div[@class='u-mb--xxxLarge']//strong[text()='%s']"; + String INFO_TEXT_TOTAL_AMOUNT_XPATH = "//div[@class='u-mb--xxxLarge']//strong[starts-with(normalize-space(), '%s')]"; + String INFO_TEXT_TO_SIGNATURE_XPATH = "//h1[contains(normalize-space(), 'Založení hromadné platby je připraveno k podpisu')]"; + + @CustomAction + default HistoryTab checkBulkPaymentVictoryPage(String numberOfBulkPaymentVictoryText, String totalAmountBulkPayment) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + + if (newIbEndpoint.isElementPresent(INFO_TEXT_TO_SIGNATURE_XPATH, Lookup.XPATH)) { + newIbEndpoint.click(() -> TRANSACTIONS_OVERVIEW_BTN_XPATH); + } else { + Assertions.assertTrue(newIbEndpoint.isElementPresent(String.format(INFO_TEXT_NUMBER_OF_PAYMENTS_XPATH, numberOfBulkPaymentVictoryText), Lookup.XPATH), "Number of bulk payments not displayed as expected"); + Assertions.assertTrue(newIbEndpoint.isElementPresent(String.format(INFO_TEXT_TOTAL_AMOUNT_XPATH, totalAmountBulkPayment), Lookup.XPATH), "Total amount of bulk payments not displayed as expected"); + Assertions.assertTrue(newIbEndpoint.isElementPresent(BULK_PAYMENT_VICTORY_TITLE_TEXT_XPATH, Lookup.XPATH), "Bulk payment victory title not displayed"); + newIbEndpoint.click(() -> TRANSACTIONS_OVERVIEW_BTN_XPATH); + } + + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/DirectDebitPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/DirectDebitPage.java new file mode 100644 index 0000000..ae95fd3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/DirectDebitPage.java @@ -0,0 +1,59 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Key; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface DirectDebitPage extends NewIbPageFlow, NewPaymentMenuPage, StoreAccessor { + String PREFIX_ACCOUNT_NUMBER = "//input[@data-testid='destinationAccountPrefix']"; + String BASE_ACCOUNT_NUMBER = "//input[@data-testid='destinationAccountNumber']"; + String DIRECT_DEBIT_NAME = "//input[@name='description']"; + String DIRECT_DEBIT_LIMIT = "//input[@name='amountLimit']"; + String DATE_OF_LAST_PAYMENT = "//input[@name='endDate']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='submit']"; + String FREQUENCY_BTN_XPATH = "//button[@id='frequency_button']"; + String FREQUENCY_OPTION_XPATH = "//div[normalize-space()='%s']"; + String BANK_CODE_BUTTON_XPATH = "//button[@name='destinationAccountBank']"; + String BANK_CODE_INPUT_XPATH = "//input[@name='destinationAccountBank']"; + + + @TypeInto(PREFIX_ACCOUNT_NUMBER) + DirectDebitPage fillPrefixAccountNumber(String prefixNumberOfAccount); + + @TypeInto(BASE_ACCOUNT_NUMBER) + DirectDebitPage fillAccountNumber(String numberOfAccount); + + @TypeInto(DIRECT_DEBIT_NAME) + DirectDebitPage fillNameOfDirectDebit(String nameOfDirectDebit); + + @TypeInto(DIRECT_DEBIT_LIMIT) + DirectDebitPage fillDirectDebitLimit(String directDebitLimit); + + @TypeInto(DATE_OF_LAST_PAYMENT) + DirectDebitPage fillDateOfLastPayment(String dateoflastPayment); + + @Click(CONTINUE_BUTTON_XPATH) + DirectDebitSummaryPage clickOnContinue(); + + @CustomAction + default DirectDebitPage selectFrequencyOfDirectDebit(String frequencyOfPayments) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> FREQUENCY_BTN_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(FREQUENCY_OPTION_XPATH, frequencyOfPayments)); + return null; + } + + @CustomAction + default DirectDebitPage setBankCode(String bankCode) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> BANK_CODE_BUTTON_XPATH); + newIbEndpoint.type(() -> BANK_CODE_INPUT_XPATH, bankCode, true); + newIbEndpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/DirectDebitSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/DirectDebitSummaryPage.java new file mode 100644 index 0000000..55ed8a2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/DirectDebitSummaryPage.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.payments.DirectDebitSummaryPage.*; + +@Wait(value = {TITLE_SUMMARY_PAGE_XPATH, EDIT_BUTTON_XPATH, CONFIRM_BUTTON_XPATH}, waitSecondsForElement = 30) +public interface DirectDebitSummaryPage extends NewIbPageFlow, VerticalMainMenu, HorizontalMainMenu { + String TITLE_SUMMARY_PAGE_XPATH = "//h1[text()='Souhrn']"; + String EDIT_BUTTON_XPATH = "//button[@data-testid='back']"; + String CONFIRM_BUTTON_XPATH = "//button[@data-testid='submit']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String FROM_ACCOUNT_XPATH = "//tr[.//th[normalize-space()='Z účtu']]//td//span[contains(text(), '%s')]"; + String TO_ACCOUNT_XPATH = "//tr[.//th[normalize-space()='Ve prospěch účtu']]//td//span[contains(text(), '%s')]"; + String NAME_DEBIT_LIMIT_XPATH = "//tr[.//th[normalize-space()='Název inkasa']]//td//span[contains(text(), '%s')]"; + String DIRECT_DEBIT_LIMIT_XPATH = "//tr[.//th[normalize-space()='Limit inkasa']]//td//div[contains(text(), '%s')]"; + String END_DATE_XPATH = "//tr[.//th[normalize-space()='Datum poslední platby']]//td//span[contains(text(), '%s')]"; + String FREQUENCY_DIRECT_DEBIT_DATE_XPATH = "//tr[.//th[normalize-space()='Frekvence čerpání']]//td//span[contains(text(), '%s')]"; + String DATE_OF_FIRST_PAYMENT_XPATH = "//tr[.//th[normalize-space()='Datum začátku']]//td//span[contains(text(), '%s')]"; + String BACK_XPATH = "//button[@data-testid='back']"; + + @Click(CONFIRM_BUTTON_XPATH) + DirectDebitSummaryPage clickOnConfirm(); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + DirectDebitSummaryPage setMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + DirectDebitVictoryPage clickOnContinueMobileKey(); + + @CheckElementPresent(value = FROM_ACCOUNT_XPATH, isStringDynamicXpath = true) + DirectDebitSummaryPage checkPaymentFromAccount(String fromAccount); + + @CheckElementPresent(value = TO_ACCOUNT_XPATH, isStringDynamicXpath = true) + DirectDebitSummaryPage checkPaymentToAccount(String toAccount); + + @CheckElementPresent(value = NAME_DEBIT_LIMIT_XPATH, isStringDynamicXpath = true) + DirectDebitSummaryPage checkNameOfDirectDebit(String directDebitName); + + @CheckElementPresent(value = DIRECT_DEBIT_LIMIT_XPATH, isStringDynamicXpath = true) + DirectDebitSummaryPage checkLimitOfDirectDebit(String limitOfDirectDebit); + + @CheckElementPresent(value = END_DATE_XPATH, isStringDynamicXpath = true) + DirectDebitSummaryPage checkEndDateOfDirectDebit(String dateOfLastPayment); + + @CheckElementPresent(value = FREQUENCY_DIRECT_DEBIT_DATE_XPATH, isStringDynamicXpath = true) + DirectDebitSummaryPage checkFrequencyOfDirectDebit(String frequencyOfPayments); + + @CheckElementPresent(value = DATE_OF_FIRST_PAYMENT_XPATH, isStringDynamicXpath = true) + DirectDebitSummaryPage checkDateOfFirstPayment(String dateOfFirstPayment); + + @Click(BACK_XPATH) + DirectDebitPage clickBack(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/DirectDebitVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/DirectDebitVictoryPage.java new file mode 100644 index 0000000..ff829f0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/DirectDebitVictoryPage.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.payments.DirectDebitVictoryPage.*; + +@Wait(value = {CONFIRM_BUTTON_XPATH}, waitSecondsForElement = 30) +public interface DirectDebitVictoryPage extends NewIbPageFlow { + String CONFIRM_BUTTON_XPATH = "//button[@data-testid='submit']"; + String DATE_OF_FIRST_PAYMENT_XPATH = "//p[@data-testid='TextComponent']/strong[normalize-space()='%s']"; + String FROM_ACCOUNT_XPATH = "//p[@data-testid='TextComponent' and contains(., '%s')]"; + String DASHBOARD_BUTTON_XPATH = "//li[@data-testid='dashboard-link']//button[.//span[text()='Přehled']]"; + String PREPARED_TITLE_XPATH = "//h1[contains(., 'Založení inkasa je připraveno k podpisu')]"; + + @CheckElementsPresent({ + @CheckElementPresent(value = DATE_OF_FIRST_PAYMENT_XPATH, isStringDynamicXpath = true), + @CheckElementPresent(value = FROM_ACCOUNT_XPATH, isStringDynamicXpath = true)}) + SipoOrderVictoryPage checkDateAndFromAccount(String dateOfFirstPayment, String fromAccountNumber); + + @CustomAction + default DashboardPage handleDirectDebitVictoryOrPrepared(String dateOfFirstPayment, String fromAccountNumber) { + NewIbEndpoint endpoint = getEndpoint(NewIbEndpoint.class); + if (endpoint.isElementVisible(2, PREPARED_TITLE_XPATH, Lookup.XPATH)) { + endpoint.click(() -> DASHBOARD_BUTTON_XPATH); + } else { + checkDateAndFromAccount(dateOfFirstPayment, fromAccountNumber); + endpoint.click(() -> DASHBOARD_BUTTON_XPATH); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/MobileOperatorsPaymentPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/MobileOperatorsPaymentPage.java new file mode 100644 index 0000000..38bc3d8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/MobileOperatorsPaymentPage.java @@ -0,0 +1,75 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.payments.MobileOperatorsPaymentPage.*; + +@Wait(value = {PHONE_NUMBER_XPATH, AMOUNT_XPATH}, waitSecondsForElement = 30) +public interface MobileOperatorsPaymentPage extends NewIbPageFlow, VerticalMainMenu, StoreAccessor, Builder { + + String PHONE_NUMBER_XPATH = "//input[@id='phoneNumber']"; + String CHOOSE_OPERATOR_XPATH = "//button[@id='operator_button']"; + String OPERATOR_OPTION_XPATH = "//li[@role='option']//div[@class='c-dropdown__itemContent' and normalize-space(text())='%s']"; + String OPERATOR_OPTION_SELECTED_XPATH = "//span[@class='f-control2__valueTitle'][text()='%s']"; + String AMOUNT_XPATH = "//input[@id='amount']"; + String CHOOSE_CATEGORY_XPATH = "//div[@data-testid='categoryId']"; + String SEND_MESSAGE_FOR_RECIPIENT_XPATH = "//label[@for='sendMessage']"; + String NOTE_FOR_RECIPIENT_XPATH = "//textarea[@id='noteForRecipient']"; + String CONFIRMATION_PHONE_NUMBER_XPATH = "//input[@id='confirmationPhoneNumber']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='submit']"; + String VODAFONE_INVOICE_PAYMENT_BTN_XPATH = "//button[text()='Platba faktury Vodafone']"; + String CATEGORY_OPTION_XPATH = "//div[text()='%s']"; + String SELECTED_CATEGORY_OPTION_XPATH = "//button[@id='categoryId_button']//span[contains(normalize-space(text()), '%s')]"; + String NO_VODAFONE_EXIST_XPATH = "//h4[translate(text(), ' ', '')=concat('Telefonníčíslo+420', '%s', 'neexistuje')]"; + + @TypeInto(PHONE_NUMBER_XPATH) + MobileOperatorsPaymentPage setPhoneNumber(String phoneNumber); + + @TypeInto(AMOUNT_XPATH) + MobileOperatorsPaymentPage setAmount(String amount); + + @TypeInto(NOTE_FOR_RECIPIENT_XPATH) + MobileOperatorsPaymentPage setNoteForRecipient(String noteForRecipient); + + @TypeInto(CONFIRMATION_PHONE_NUMBER_XPATH) + MobileOperatorsPaymentPage setConfirmationPhoneNumber(String confirmationPhoneNumber); + + @Click(CONTINUE_BUTTON_XPATH) + MobileOperatorsPaymentSummaryPage clickOnContinue(); + + @Click(CONTINUE_BUTTON_XPATH) + MobileOperatorsPaymentPage clickOnContinueVodafone(); + + @CheckElementPresent(value = NO_VODAFONE_EXIST_XPATH, isStringDynamicXpath = true) + MobileOperatorsPaymentPage checkVictoryPageVodafoneOff(String phoneNumber); + + @Click(SEND_MESSAGE_FOR_RECIPIENT_XPATH) + MobileOperatorsPaymentPage clickOnSendMessageForRecipient(); + + @CustomAction + default MobileOperatorsPaymentPage setOperator(String operator) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> CHOOSE_OPERATOR_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(OPERATOR_OPTION_XPATH, operator)); + newIbEndpoint.waitForElementsToLoad(5, String.format(OPERATOR_OPTION_SELECTED_XPATH, operator)); + return null; + } + + @CustomAction + default MobileOperatorsPaymentPage setCategory(String category) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> CHOOSE_CATEGORY_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(CATEGORY_OPTION_XPATH, category)); + newIbEndpoint.waitForElementsToLoad(5, String.format(SELECTED_CATEGORY_OPTION_XPATH, category)); + return null; + } + + @Click(VODAFONE_INVOICE_PAYMENT_BTN_XPATH) + MobileOperatorsPaymentPage clickOnVodafoneInvoicePaymentBtn(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/MobileOperatorsPaymentSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/MobileOperatorsPaymentSummaryPage.java new file mode 100644 index 0000000..7410443 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/MobileOperatorsPaymentSummaryPage.java @@ -0,0 +1,59 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.payments.MobileOperatorsPaymentSummaryPage.*; + +@Wait(value = {EDIT_BUTTON_XPATH, CONTINUE_BUTTON_XPATH, TITLE_SUMMARY_PAGE_XPATH}, waitSecondsForElement = 30) +public interface MobileOperatorsPaymentSummaryPage extends NewIbPageFlow, StoreAccessor, Builder { + + String TITLE_SUMMARY_PAGE_XPATH = "//h3[text()='Souhrn']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='submit']"; + String EDIT_BUTTON_XPATH = "//button[@data-testid='back']"; + + // SUMMARY FORM DATA + String FROM_ACCOUNT_XPATH = "//div[text()='Platba z účtu']/following-sibling::div//span[text()='%s']"; + String RECIPIENT_PHONE_NUMBER_XPATH = "//tr[.//th//span[normalize-space(text())='Dobíjené číslo']]//td//span[contains(text(), '%s')]"; + String MOBILE_OPERATOR_XPATH = "//tr[.//th//span[normalize-space(text())='Mobilní operátor']]//td//span[contains(text(), '%s')]"; + String AMOUNT_XPATH = "//tr[.//th//span[normalize-space(text())='Částka']]//td//*[contains(text(), '%s')]"; + String CATEGORY_XPATH = "//tr[.//th//span[normalize-space(text())='Kategorie']]//td//span[contains(text(), '%s')]"; + String RECIPIENT_MESSAGE_XPATH = "//tr[.//th//span[normalize-space(text())='Zpráva, která přijde na dobíjené číslo']]//td//*[contains(text(), '%s')]"; + String CONFIRMATION_PHONE_NUMBER_XPATH = "//tr[.//th//span[normalize-space(text())='Číslo, na které přijde potvrzení']]//td//span[contains(text(), '%s')]"; + String MOBILE_KEY_INPUT_XPATH = "//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + + @Click(CONTINUE_BUTTON_XPATH) + MobileOperatorsPaymentSummaryPage clickOnContinue(); + + @Click(EDIT_BUTTON_XPATH) + MobileOperatorsPaymentSummaryPage clickOnEdit(); + + @CheckElementPresent(value = FROM_ACCOUNT_XPATH, isStringDynamicXpath = true) + MobileOperatorsPaymentSummaryPage checkFromAccount(String fromAccount); + + @CheckElementPresent(value = RECIPIENT_PHONE_NUMBER_XPATH, isStringDynamicXpath = true) + MobileOperatorsPaymentSummaryPage checkRecipientPhoneNumber(String recipientPhoneNumber); + + @CheckElementPresent(value = AMOUNT_XPATH, isStringDynamicXpath = true) + MobileOperatorsPaymentSummaryPage checkAmount(String amount); + + @CheckElementPresent(value = MOBILE_OPERATOR_XPATH, isStringDynamicXpath = true) + MobileOperatorsPaymentSummaryPage checkMobileOperator(String mobileOperator); + + @CheckElementPresent(value = CATEGORY_XPATH, isStringDynamicXpath = true) + MobileOperatorsPaymentSummaryPage checkCategory(String category); + + @CheckElementPresent(value = RECIPIENT_MESSAGE_XPATH, isStringDynamicXpath = true) + MobileOperatorsPaymentSummaryPage checkRecipientMessage(String recipientMessage); + + @CheckElementPresent(value = CONFIRMATION_PHONE_NUMBER_XPATH, isStringDynamicXpath = true) + MobileOperatorsPaymentSummaryPage checkConfirmationPhoneNumber(String confirmationPhoneNumber); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + MobileOperatorsPaymentSummaryPage fillMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + MobileOperatorsPaymentVictoryPage clickOnContinueMobileKey(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/MobileOperatorsPaymentVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/MobileOperatorsPaymentVictoryPage.java new file mode 100644 index 0000000..fd064b8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/MobileOperatorsPaymentVictoryPage.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.accounts.CurrentAccountPage; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.payments.MobileOperatorsPaymentVictoryPage.*; + +@Wait(value = {TRANSACTION_OVERVIEW_BUTTON_XPATH, NEXT_CREDIT_PAYMENT_BUTTON_XPATH}, waitSecondsForElement = 30) +public interface MobileOperatorsPaymentVictoryPage extends NewIbPageFlow, HorizontalMainMenu, VerticalMainMenu { + + String VICTORY_CREDIT_TITLE_SUMMARY_PAGE_XPATH = "//h1[text()='Kredit byl úspěšně dobit']"; + String VICTORY_INVOICE_TITLE_SUMMARY_PAGE_XPATH = "//h1[text()='Faktura byla zaplacena']"; + String TRANSACTION_OVERVIEW_BUTTON_XPATH = "//button[@data-testid='submit']"; + String NEXT_CREDIT_PAYMENT_BUTTON_XPATH = "//button[@data-testid='back']"; + + @Click(TRANSACTION_OVERVIEW_BUTTON_XPATH) + CurrentAccountPage clickOnTransactionOverview(); + + @CheckElementPresent(VICTORY_CREDIT_TITLE_SUMMARY_PAGE_XPATH) + MobileOperatorsPaymentVictoryPage checkCreditPaymentVictoryText(); + + @CheckElementPresent(VICTORY_INVOICE_TITLE_SUMMARY_PAGE_XPATH) + MobileOperatorsPaymentVictoryPage checkInvoicePaymentVictoryText(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewForeignPaymentPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewForeignPaymentPage.java new file mode 100644 index 0000000..4eb6789 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewForeignPaymentPage.java @@ -0,0 +1,297 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.payments.NewForeignPaymentPage.*; + +@Wait(value = {CURRENCY_BTN_XPATH, AMOUNT_INPUT_XPATH}, waitSecondsForElement = 30) +public interface NewForeignPaymentPage extends NewIbPageFlow, NewPaymentMenuPage, StoreAccessor { + String IBAN_INPUT_XPATH = "//input[@id='recipientAccountNumber']"; + String CURRENCY_BTN_XPATH = "//button[@name='currencyCode']"; + String CURRENCY_OPTION_XPATH = "//div[@class='c-dropdown__itemContent'][text()='%s']"; + String CURRENCY_OPTION_SELECTED_XPATH = "//button[@data-value='%s']"; + String AMOUNT_INPUT_XPATH = "//input[@id='amount']"; + String RECIPIENT_BANK_BIC_INPUT_XPATH = "//input[@id='recipientBankBic']"; + String RECIPIENT_BANK_NAME_INPUT_XPATH = "//input[@id='recipientBankName']"; + String RECIPIENT_BANK_ADDRESS_STREET_INPUT_XPATH = "//input[@id='recipientBankAddressStreet']"; + String RECIPIENT_BANK_COUNTRY_INPUT_XPATH = "//input[@name='recipientBankCountry']"; + String RECIPIENT_NAME_INPUT_XPATH = "//input[@id='recipientName'][not(@disabled)]"; + String RECIPIENT_ADDRESS_STREET_INPUT_XPATH = "//input[@id='recipientAddressStreet']"; + String RECIPIENT_ADDRESS_CITY_INPUT_XPATH = "//input[@id='recipientAddressCity']"; + String RECIPIENT_ADDRESS_COUNTRY_BUTTON_XPATH = "//button[@name='recipientAddressCountry']"; + String RECIPIENT_MESSAGE_INPUT_XPATH = "//input[@name='recipientNote']"; + String SEND_PAYMENT_CONFIRMATION_EMAIL_CHECKBOX_XPATH = "//label[@for='confirmationEmailCheckbox']"; + String CONFIRMATION_EMAIL_INPUT_XPATH = "//input[@id='confirmationEmail']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='submit']"; + String BIC_VALUE_XPATH = "//input[@id='recipientBankBic' and @value='%s']"; + String BANK_NAME_VALUE_XPATH = "//input[@id='recipientBankName' and @value='%s']"; + String BANK_STREET_VALUE_XPATH = "//input[@id='recipientBankAddressStreet' and @value='%s']"; + String BANK_CITY_VALUE_XPATH = "//input[@id='recipientBankAddressCity' and @value='%s']"; + String BANK_COUNTRY_VALUE_XPATH = "//button[@id='recipientBankCountry_button']/span[1]/span/span"; + String VALIDATION_CURRENCY_IS_NOT_ACCEPTED_XPATH = "//*[@id='currencyCode_errorMessage'][text()='%s']"; + String RECIPIENT_BANK_COUNTRY_BUTTON_DISABLED_XPATH = "//*[@id='recipientBankCountry_button'][@disabled]"; + String ALERT_CZ_IBAN_XPATH = "//strong[normalize-space(.)='%s']"; + String REDIRECT_TO_DOMESTIC_PAYMENT_BUTTON_XPATH = "//button[@data-testid='redirectToCzechPaymentFormBtn']"; + String RECEPIENT_BANKA_BIC_XPATH = "//input[@data-testid='Component' and @id='recipientBankBic' and normalize-space(@value) != '']"; + String ERROR_IBAN_XPATH = "//div[@id='recipientAccountNumber_errorMessage'][text()='%s']"; + String BIC_DISABLED_XPATH = "//*[@id='recipientBankBic'][@disabled]"; + String RECIPIENT_BANK_NAME_DISABLED_XPATH = "//*[@id='recipientBankName'][@disabled]"; + String RECIPIENT_BANK_ADDRESS_STREET_DISABLED_XPATH = "//*[@id='recipientBankAddressStreet'][@disabled]"; + String RECIPIENT_BANK_ADDRESS_CITY_DISABLED_XPATH = "//*[@id='recipientBankAddressCity'][@disabled]"; + String TYPE_OF_PAYMENT_XPATH = "//button[@id='paymentPriority_button']"; + String CHOOSE_TYPE_OF_PAYMENT_XPATH = "//button[@id='paymentPriority_button']//span[contains(@class, 'f-control2__valueTitle')]"; + String OPTION_TYPE_OF_PAYMENT_XPATH = "//li[@role='option' and not(@disabled) and .//div[text()='%s']]"; + String FEE_FOREIGN_PRIORITY_PAYMENT_XPATH = "//p[.//small[contains(text(), 'Odeslání prioritní platby')] and .//strong[text()='%s'] and contains(., 'CZK')]"; + String RECIPIENT_ADDRESS_COUNTRY_OPTION_XPATH = "//div[@class='c-dropdown__itemContent'][text()='%s']"; + String CHARGE_BEARER_VALUE_XPATH = "//*[@id='chargeBearer_button' and contains(., '%s')]"; + String CHARGE_BEARER_BUTTON_DISABLED_XPATH = "//*[@id='chargeBearer_button'][@disabled]"; + String ESTIMATED_AMOUNT_XPATH = "//div[@data-testid='TextComponent']/small[contains(., 'Orientační částka transakce je') and contains(., '%s') and contains(., 'CZK')]"; + String SUBMIT_XPATH = "//span[@data-testid='TextComponent']//small[contains(., 'Odešlete o') and contains(., '%s') and contains (., 'více oproti středovému kurzu ČNB')]"; + String CONVERSION_FEE_XPATH = "//div[@data-testid='TextComponent']/small[contains(., 'Poplatek za konverzi je') and contains(., '%s')]"; + String PAYMENT_FEE_XPATH = "//p[@data-testid='TextComponent']//small[contains(., 'Poplatek za platbu') and contains(., '%s')]"; + String SEPA_ALERT_XPATH = "//*[@data-testid='sepaAlert' and contains(., 'Platba bude odeslána v rámci SEPA')]"; + String CHANGED_IBAN_INPUT_XPATH = "//input[@id='recipientIban']"; + String CHARGE_BEARER_BUTTON_ENABLED_XPATH = "//*[@id='chargeBearer_button'][not(@disabled)]"; + String BIC_ENABLED_XPATH = "//*[@id='recipientBankBic'][not(@disabled)]"; + String RECIPIENT_BANK_NAME_ENABLED_XPATH = "//*[@id='recipientBankName'][not(@disabled)]"; + String RECIPIENT_BANK_ADDRESS_STREET_ENABLED_XPATH = "//*[@id='recipientBankAddressStreet'][not(@disabled)]"; + String RECIPIENT_BANK_ADDRESS_CITY_ENABLED_XPATH = "//*[@id='recipientBankAddressCity'][not(@disabled)]"; + String RECIPIENT_BANK_COUNTRY_BUTTON_ENABLED_XPATH = "//*[@id='recipientBankCountry_button'][not(@disabled)]"; + String RECIPIENT_IBAN_ERROR_MESSAGE_XPATH = "//*[@id='recipientAccountNumber_errorMessage'][text()='Neplatné číslo účtu ve formátu IBAN.']"; + String CHARGE_BEARER_BUTTON_XPATH = "//button[@id='chargeBearer_button']"; + String FEES_OPTION_XPATH = "//div[@class='c-dropdown__itemContent'][text()='%s']"; + String CHARGE_BEARER_ERROR_MESSAGE_XPATH = "//*[@id='chargeBearer_errorMessage'][text()='Pro platbu do této země lze použít pouze typ výloh SHA.']"; + String TOOLTIP_FEES_XPATH = "//label[@id='chargeBearer_label']//*[@role='tooltip']"; + String ALERT_OVERDRAFT_XPATH = "//div[@class='c-alert__text']//span[text()='Odesílaná částka je vyšší než zůstatek na účtu. Aby platba odešla, navyšte ho.']"; + String INVALID_IBAN_MODAL_XPATH = "//button[@data-testid='invalid-iban-modal__continue']"; + String MODAL_CZK_TO_CZK_XPATH = "//div[contains(@class, 'c-modal__content')][.//h1[contains(., 'Zadali jste platbu v korunách na účet v ČR')] and .//div[contains(@class, 'c-modal__body') and contains(., 'Takovou platbu je nejlepší poslat jako tuzemskou') and contains(., 'Pokud chcete odeslat platbu jako zahraniční, zvolte jinou měnu nebo IBAN / číslo účtu.')]]"; + String FOREIGN_TO_DOMESTIC_BUTTON_XPATH = "//button[@data-testid='foreign-to-domestic-modal__switch' and text()='Přejít na tuzemskou']"; + String ALERT_AMOUNT_MUST_BE_HIGHER = "//div[@class='c-alert__text']//span[text()='Odesílaná částka musí být vyšší než poplatek za platbu. Navyšte ji nebo změňte typ poplatku.']"; + + @TypeInto(IBAN_INPUT_XPATH) + NewForeignPaymentPage setRecipientAccountNumber(String recipientAccountNumber); + + @TypeInto(AMOUNT_INPUT_XPATH) + NewForeignPaymentPage setAmount(String amount); + + @TypeInto(RECIPIENT_BANK_BIC_INPUT_XPATH) + NewForeignPaymentPage setRecipientBankBic(String recipientBankBic); + + @TypeInto(RECIPIENT_BANK_NAME_INPUT_XPATH) + NewForeignPaymentPage setRecipientBankName(String recipientBankName); + + @TypeInto(RECIPIENT_BANK_ADDRESS_STREET_INPUT_XPATH) + NewForeignPaymentPage setRecipientBankAddressStreet(String recipientBankAddressStreet); + + @TypeInto(RECIPIENT_NAME_INPUT_XPATH) + NewForeignPaymentPage setRecipientName(String recipientName); + + @TypeInto(RECIPIENT_ADDRESS_STREET_INPUT_XPATH) + NewForeignPaymentPage setRecipientAddressStreet(String recipientAddressStreet); + + @TypeInto(RECIPIENT_ADDRESS_CITY_INPUT_XPATH) + NewForeignPaymentPage setRecipientAddressCity(String recipientAddressCity); + + @TypeInto(CONFIRMATION_EMAIL_INPUT_XPATH) + NewForeignPaymentPage setConfirmationEmail(String confirmationEmail); + + @Click(SEND_PAYMENT_CONFIRMATION_EMAIL_CHECKBOX_XPATH) + NewForeignPaymentPage clickOnPaymentConfirmationEmailCheckbox(); + + @CustomAction + default NewForeignPaymentPage setRecipientBankCountry(String recipientBankCountry) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.type(() -> RECIPIENT_BANK_COUNTRY_INPUT_XPATH, recipientBankCountry, true); + newIbEndpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @CustomAction + default NewForeignPaymentPage setRecipientAddressCountry(String recipientAddressCountry) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> RECIPIENT_ADDRESS_COUNTRY_BUTTON_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(RECIPIENT_ADDRESS_COUNTRY_OPTION_XPATH, recipientAddressCountry)); + return null; + } + + @CustomAction + default NewForeignPaymentPage setCurrency(String currency) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> CURRENCY_BTN_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(CURRENCY_OPTION_XPATH, currency)); + newIbEndpoint.waitForElementsToLoad(5, String.format(CURRENCY_OPTION_SELECTED_XPATH, currency)); + return null; + } + + @TypeInto(value = RECIPIENT_MESSAGE_INPUT_XPATH) + NewForeignPaymentPage setRecipientMessage(String recipientMessage); + + @Wait(value = RECEPIENT_BANKA_BIC_XPATH, by = Lookup.XPATH) + @Click(CONTINUE_BUTTON_XPATH) + NewForeignPaymentSummaryPage clickOnContinue(); + + @Click(CONTINUE_BUTTON_XPATH) + NewForeignPaymentPage clickContinueAndStayOnSamePage(); + + @CheckElementPresent(value = BIC_VALUE_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkBic(String bankCodeBic); + + @CheckElementPresent(value = BANK_NAME_VALUE_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkBankName(String bankNameAddress); + + @CheckElementPresent(value = BANK_STREET_VALUE_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkStreet(String recipientBankAddressStreet); + + @CheckElementPresent(value = BANK_CITY_VALUE_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkCity(String recipientBankCity); + + @CheckElementContent(BANK_COUNTRY_VALUE_XPATH) + NewForeignPaymentPage checkCountry(String country); + + @CheckElementPresent(value = VALIDATION_CURRENCY_IS_NOT_ACCEPTED_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkValidationCurrencyIsNotAccepted(String validation); + + @CheckElementPresent(RECIPIENT_BANK_COUNTRY_BUTTON_DISABLED_XPATH) + NewForeignPaymentPage checkDisabledRecipientBankCountryButton(); + + @CheckElementPresent(value = ALERT_CZ_IBAN_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkAlertCzIban(String alertCzIban); + + @Click(REDIRECT_TO_DOMESTIC_PAYMENT_BUTTON_XPATH) + NewPaymentDomesticPage clickRedirectToDomesticPayment(); + + @CheckElementPresent(value = ERROR_IBAN_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkErrorIban(String errorIban); + + @CheckElementPresent(BIC_DISABLED_XPATH) + NewForeignPaymentPage checkBicDisabled(); + + @Click(BANK_COUNTRY_VALUE_XPATH) + NewForeignPaymentPage clickBankCountryValue(); + + @CheckElementPresent(RECIPIENT_BANK_NAME_DISABLED_XPATH) + NewForeignPaymentPage checkRecipientBankNameDisabled(); + + @CheckElementPresent(RECIPIENT_BANK_ADDRESS_STREET_DISABLED_XPATH) + NewForeignPaymentPage checkRecipientBankAddressStreetDisabled(); + + @CheckElementPresent(RECIPIENT_BANK_ADDRESS_CITY_DISABLED_XPATH) + NewForeignPaymentPage checkRecipientBankAddressCityDisabled(); + + @CustomAction + default NewForeignPaymentPage setTypeOfPayment(String name) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> TYPE_OF_PAYMENT_XPATH); + newIbEndpoint.sleepSeconds(2); + newIbEndpoint.click(() -> String.format(OPTION_TYPE_OF_PAYMENT_XPATH, name)); + newIbEndpoint.waitForElementsToLoad(5, String.format(CHOOSE_TYPE_OF_PAYMENT_XPATH, name)); + return null; + } + + @CheckElementPresent(value = FEE_FOREIGN_PRIORITY_PAYMENT_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkFeeForeignPriorityPayment(String feeForeignPriorityPayment); + + @CheckElementPresent(value = CHARGE_BEARER_VALUE_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkChargeBearerValue(String chargeBearerValue); + + @CheckElementPresent(CHARGE_BEARER_BUTTON_DISABLED_XPATH) + NewForeignPaymentPage checkDisabledChargeBearerButton(); + + @CheckElementPresent(value = ESTIMATED_AMOUNT_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkEstimatedAmountCurrency(String estimatedAmountCurrency); + + @CheckElementPresent(value = SUBMIT_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkSubmitSourceCurrency(String submitSourceCurrency); + + @CheckElementPresent(value = CONVERSION_FEE_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkConversionFeeCurrency(String conversionFeeCurrency); + + @CheckElementPresent(value = PAYMENT_FEE_XPATH, isStringDynamicXpath = true) + NewForeignPaymentPage checkPaymentFeeCurrency(String paymentFeeCurrency); + + @CheckElementPresent(SEPA_ALERT_XPATH) + NewForeignPaymentPage checkSepaAlert(); + + @TypeInto(value = CHANGED_IBAN_INPUT_XPATH, clear = true) + NewForeignPaymentPage fillChangedRecipientAccountNumber(String changedRecipientAccountNumber); + + @CheckElementPresent(CHARGE_BEARER_BUTTON_ENABLED_XPATH) + NewForeignPaymentPage checkEnabledChargeBearerButton(); + + @CheckElementPresent(BIC_ENABLED_XPATH) + NewForeignPaymentPage checkBicEnabled(); + + @CheckElementPresent(RECIPIENT_BANK_NAME_ENABLED_XPATH) + NewForeignPaymentPage checkRecipientBankNameEnabled(); + + @CheckElementPresent(RECIPIENT_BANK_ADDRESS_STREET_ENABLED_XPATH) + NewForeignPaymentPage checkRecipientBankAddressStreetEnabled(); + + @CheckElementPresent(RECIPIENT_BANK_ADDRESS_CITY_ENABLED_XPATH) + NewForeignPaymentPage checkRecipientBankAddressCityEnabled(); + + @CheckElementPresent(RECIPIENT_BANK_COUNTRY_BUTTON_ENABLED_XPATH) + NewForeignPaymentPage checkEnabledRecipientBankCountryButton(); + + @CheckElementPresent(RECIPIENT_IBAN_ERROR_MESSAGE_XPATH) + NewForeignPaymentPage checkRecipientIbanErrorMessage(); + + @TypeInto(value = IBAN_INPUT_XPATH, clear = true) + NewForeignPaymentPage fillRecipientAccountNumber(String recipientAccountNumber); + + @CheckElementPresent(RECIPIENT_NAME_INPUT_XPATH) + NewForeignPaymentPage checkRecipientName(); + + @CustomAction + default NewForeignPaymentPage scrollToTop() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.scrollIntoView("//body"); + return null; + } + + @CustomAction + default NewForeignPaymentPage setFees(String fees) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> CHARGE_BEARER_BUTTON_XPATH); + newIbEndpoint.sleepSeconds(2); + newIbEndpoint.click(() -> String.format(FEES_OPTION_XPATH, fees)); + return null; + } + + @CheckElementPresent(CHARGE_BEARER_ERROR_MESSAGE_XPATH) + NewForeignPaymentPage checkChargeBearerErrorMessage(); + + @CheckElementPresent(TOOLTIP_FEES_XPATH) + NewForeignPaymentPage checkTooltipFees(); + + @CheckElementPresent(ALERT_OVERDRAFT_XPATH) + NewForeignPaymentPage checkAlertOverdraft(); + + @Click(INVALID_IBAN_MODAL_XPATH) + NewForeignPaymentPage clickOnInvalidIbanModal(); + + @Click(AMOUNT_INPUT_XPATH) + NewForeignPaymentPage clickOnAmount(); + + @CheckElementPresent(MODAL_CZK_TO_CZK_XPATH) + NewForeignPaymentPage checkModalCzkToCzk(); + + @Click(FOREIGN_TO_DOMESTIC_BUTTON_XPATH) + NewPaymentDomesticPage clickOnForeignToDomesticButton(); + + @CheckElementPresent(ALERT_AMOUNT_MUST_BE_HIGHER) + NewForeignPaymentPage checkAlertAmountMustBeHigher(); + + @CustomAction + default NewForeignPaymentPage scrollToBottom() { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + ep.sendKeysOneAtATime(Key.DOWN); + ep.sendKeysOneAtATime(Key.END); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewForeignPaymentSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewForeignPaymentSummaryPage.java new file mode 100644 index 0000000..4e37678 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewForeignPaymentSummaryPage.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.payments.NewForeignPaymentSummaryPage.*; + +@Wait(value = {TITLE_SUMMARY_PAGE_XPATH, EDIT_BUTTON_XPATH}, waitSecondsForElement = 60) +public interface NewForeignPaymentSummaryPage extends NewIbPageFlow, VerticalMainMenu, HorizontalMainMenu { + String TITLE_SUMMARY_PAGE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Souhrn']"; + String EDIT_BUTTON_XPATH = "//button[@data-testid='back']"; + String CONFIRM_BUTTON_XPATH = "//button[@data-testid='submit']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String TO_ACCOUNT_XPATH = "//tr[.//span[text()='Na účet']]//td//span[text()='%s']"; + String AMOUNT_XPATH = "//tr[.//span[text()='Částka']]//td//div[contains(text(),'%s')]"; + String CURRENCY_XPATH = "//tr[.//span[text()='Částka']]//td//span[contains(normalize-space(),'%s')]"; + String TYPE_OF_CHARGE_XPATH = "//tr[.//span[text()='Typ poplatku']]//td//span[contains(normalize-space(),'%s')]"; + String BANK_CODE_BIC_XPATH = "//tr[.//span[text()='Kód banky BIC (SWIFT)']]//td//span[text()='%s']"; + String BANK_COUNTRY_XPATH = "//tr[.//span[text()='Země banky']]//td//span[text()='%s']"; + String NAME_ADDRESS_OF_BANK_XPATH = "//tr[.//span[text()='Jméno a adresa banky']]//td//div[starts-with(normalize-space(), '%s')]"; + String RECIPIENT_NAME_XPATH = "//tr[.//span[text()='Jméno příjemce']]//td//div[starts-with(normalize-space(), '%s')]"; + String RECIPIENT_COUNTRY_XPATH = "//tr[.//span[text()='Země příjemce']]//td//span[@data-testid='TextComponent' and text()='%s']"; + String RECIPIENT_MESSAGE_XPATH = "//tr[.//span[text()='Zpráva pro příjemce']]//td//div[@data-testid='TextComponent' and text()='%s']"; + String PAYMENT_CONFIRMATION_EMAIL_XPATH = "//tr[.//span[text()='Poslat potvrzení o platbě na e-mail']]//td//span[@data-testid='TextComponent' and text()='%s']"; + String OVER_LIMIT_ALERT_XPATH = "//p[.//small[contains(text(), 'Zadaná částka překračuje Váš %s limit pro platby')]]"; + String FEE_FOREIGN_PRIORITY_PAYMENT_SUMMARY_XPATH = "//tr[.//th//span[text()='Poplatek za prioritní platbu'] and .//td//div[contains(., '%s')] and .//td//span[contains(., 'CZK')]]"; + String FEE_TYPE_XPATH = "//tr[.//th//span[text()='Typ poplatku'] and .//td//span[contains(., '%s')]]"; + + @Click(CONFIRM_BUTTON_XPATH) + NewForeignPaymentSummaryPage clickOnConfirm(); + + @CheckElementPresent(value = TO_ACCOUNT_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkToAccount(String toAccount); + + @CheckElementPresent(value = CURRENCY_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkCurrency(String currency); + + @CheckElementPresent(value = AMOUNT_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkAmount(String amount); + + @CheckElementPresent(value = TYPE_OF_CHARGE_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkTypeOfCharge(String typeOfCharge); + + @CheckElementPresent(value = BANK_CODE_BIC_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkBankCode(String bankCode); + + @CheckElementPresent(value = BANK_COUNTRY_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkBankCountry(String bankCountry); + + @CheckElementPresent(value = NAME_ADDRESS_OF_BANK_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkNameAddressOfBank(String nameAddressOfBank); + + @CheckElementPresent(value = RECIPIENT_NAME_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkRecipientName(String recipientName); + + @CheckElementPresent(value = RECIPIENT_COUNTRY_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkRecipientCountry(String recipientCountry); + + @CheckElementPresent(value = RECIPIENT_MESSAGE_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkRecipientMessage(String recipientMessage); + + @CheckElementPresent(value = PAYMENT_CONFIRMATION_EMAIL_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkConfirmationEmail(String confirmationEmail); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + NewForeignPaymentSummaryPage setMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + NewForeignPaymentVictoryPage clickOnContinueMobileKey(); + + @CheckElementPresent(value = OVER_LIMIT_ALERT_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkAlertOverLimit(String limit); + + @CheckElementPresent(value = FEE_FOREIGN_PRIORITY_PAYMENT_SUMMARY_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkFeeForeignPriorityPaymentSummary(String feeForeignPriorityPaymentSummary); + + @CheckElementPresent(value = FEE_TYPE_XPATH, isStringDynamicXpath = true) + NewForeignPaymentSummaryPage checkFeeType(String feeType); + + @Click(EDIT_BUTTON_XPATH) + NewForeignPaymentPage clickOnEdit(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewForeignPaymentVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewForeignPaymentVictoryPage.java new file mode 100644 index 0000000..de31ce0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewForeignPaymentVictoryPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.accounts.CurrentAccountPage; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.payments.NewForeignPaymentVictoryPage.TRANSACTION_OVERVIEW_BUTTON_XPATH; + +@Wait(value = {TRANSACTION_OVERVIEW_BUTTON_XPATH}, waitSecondsForElement = 30) +public interface NewForeignPaymentVictoryPage extends NewIbPageFlow, HorizontalMainMenu, VerticalMainMenu { + + String FOREIGN_PAYMENT_VICTORY_TITLE_PAGE_XPATH = "//h1[@class='t-title t-title--h3' and normalize-space(.)='Platba byla odeslána']"; + String TRANSACTION_OVERVIEW_BUTTON_XPATH = "//button[@data-testid='submit']"; + + @Click(TRANSACTION_OVERVIEW_BUTTON_XPATH) + CurrentAccountPage clickOnTransactionOverview(); + + @CheckElementPresent(FOREIGN_PAYMENT_VICTORY_TITLE_PAGE_XPATH) + NewForeignPaymentVictoryPage checkForeignPaymentVictoryText(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentDomesticPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentDomesticPage.java new file mode 100644 index 0000000..4116ad5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentDomesticPage.java @@ -0,0 +1,209 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.payments.NewPaymentDomesticPage.*; +@Wait(value = {DETAIL_INFORMATION_XPATH, FROM_ACCOUNT_TEXT_XPATH, NUMBER_ACCOUNT_XPATH, BANK_CODE_XPATH, AMOUNT_XPATH}, waitSecondsForElement = 30) +public interface NewPaymentDomesticPage extends NewIbPageFlow, NewPaymentMenuPage, StoreAccessor, VerticalMainMenu { + String DETAIL_INFORMATION_XPATH = "//span[contains(text(), 'Symboly, zpráva pro příjemce, poznámka a další')]"; + String FROM_ACCOUNT_TEXT_XPATH = "//label[@for='sourceAccountId_button'][text()='Z účtu']"; + String FROM_ACCOUNT_BUTTON_XPATH = "//button[@id='sourceAccountId_button']"; + String NUMBER_ACCOUNT_XPATH = "//label[@for='destinationAccountNumber']//following-sibling::div//input[@data-testid='destinationAccountNumber']"; + String BANK_CODE_XPATH = "//button[@id='destinationAccountBank_button']";//"//input[@id='destinationAccountBank_input']"; + String BANK_CODE_MENU_ITEM_XPATH = "//li[@class='c-dropdown__item']//div[text()='%s']"; + String AMOUNT_XPATH = "//label[@for='amount']//following-sibling::div//input[@id='amount']"; + String TYPE_OF_PAYMENT_XPATH = "//button[@id='paymentPriority_button']"; + String CHOOSE_TYPE_OF_PAYMENT_XPATH = "//button[@id='paymentPriority_button']//span[contains(@class, 'f-control2__valueTitle')]"; + String OPTION_TYPE_OF_PAYMENT_XPATH = "//li[@role='option' and not(@disabled) and .//div[text()='%s']]"; + String VARIABLE_SYMBOL_XPATH = "//label[@for='variableSymbol']//following-sibling::div//input[@id='variableSymbol']"; + String CONSTANT_SYMBOL_XPATH = "//label[@for='constantSymbol']//following-sibling::div//input[@id='constantSymbol']"; + String SPECIFIC_SYMBOL_XPATH = "//label[@for='specificSymbol']//following-sibling::div//input[@id='specificSymbol']"; + String MESSAGE_RECIPIENT_XPATH = "//div[@class='c-collapse__content']//following-sibling::div//textarea[@id='noteForRecipient']"; + String NOTE_FOR_ME_XPATH = "//div[@class='c-collapse__content']//following-sibling::div//textarea[@id='noteForPayer']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='domestic-payment-continue']"; + String CLIENT_ACCOUNT_NUMBER = "CLIENT_ACCOUNT_NUMBER"; + String CURRENCY_XPATH = "//button[@id='currencyCode_button']"; + String CURRENCY_MENU_ITEM_XPATH = "//li[@class='c-dropdown__item']//div[text()='%s']"; + String ESTIMATED_AMOUNT_XPATH = "//small[contains(., 'Orientační částka transakce je')]"; + String FEE_XPATH = "//small[contains(., 'Poplatek za konverzi je')]"; + String SUBMIT_XPATH = "//small[contains(., 'Odešlete o')]"; + String INDIVIDUAL_RATE_ON_XPATH = "//span[@class='f-checkbox__indicator']"; + String INDIVIDUAL_RATE_OFF_XPATH = "//span[@class='c-avatar c-avatar--tickFill c-avatar--transparent']"; + String POPUP_TITLE_XPATH = "//h2[text()='Individuální směnný kurz']"; + String INDVIDUAL_INFO_XPATH = "//small[text()='Dostatek prostředků pro umožnění platby je počítán podle platného kurzovního lístku banky. Skutečně odečtené prostředky se budou lišit dle smluveného individuálního kurzu.']"; + String DECLINE_XPATH = "//button[@data-testid='declineRate']"; + String CONFIRM_XPATH = "//button[@data-testid='confirmRate']"; + String DUE_DATE_XPATH = "//input[@data-testid='Component'][@name='dueDate']"; + String FIRST_ACCOUNT_XPATH = "//li[@role='option' and .//div[@class='c-dropdown__itemContent' and contains(., 'Běžný účet CZK')]]"; + String SECOND_ACCOUNT_XPATH = "//li[@role='option' and .//div[@class='c-dropdown__itemContent' and contains(., 'Spořicí účet CZK')]]"; + String MY_ACCOUNTS_XPATH = "//button[@id='template_button']"; + String FIRST_MY_ACCOUNT_XPATH = "//li[@role='option' and .//div[@class='c-dropdown__itemContent' and contains(., 'Spořicí účet CZK')]]"; + String PRIORITY_PAYMENT_TYPE_DISABLED_XPATH = "//div[@class='c-dropdown__itemContent' and contains(., 'Prioritní') and contains(., 'Mezi účty MONETA Money Bank prioritní platbu nelze poslat.')]"; + String CATEGORY_BUTTON_XPATH = "//div[@data-testid='categoryId']"; + String SELECT_CATEGORY_XPATH = "//div[@class='c-dropdown__itemContent' and text()='%s']"; + String SELECT_FROM_ACCOUNT_XPATH = "//li[@role='option' and .//div[@class='c-dropdown__itemContent' and contains(., 'Běžný účet CZK')]]"; + String TEMPLATE_CHECKBOX_XPATH = "//span[@class='f-checkbox__over']/span[@class='f-checkbox__indicator']"; + String TEMPLATE_NAME_XPATH = "//div[@class='f-controlWrap']//input[@id='createTemplateName']"; + String SELECT_TEMPLATE_XPATH = "//ul[@id='template_list-1']//div[@class='c-dropdown__itemContent' and contains(normalize-space(.), '%s')]"; + String FOREIGN_BTN_XPATH = "//span[@data-testid='foreign-tab']"; + String DESTINATION_ACCOUNT_NUMBER_XPATH = "//input[@id='destinationAccountNumber']"; + String DESTINATION_ACCOUNT_BANK_XPATH = "//button[@id='destinationAccountBank_button']"; + String SELECT_SAVINGS_ACCOUNT_XPATH = "//ul[@id='template_list-0']//div[@class='c-dropdown__itemContent' and contains(normalize-space(.), 'Spořicí účet CZK')]"; + String NEW_PAYMENT_TITLE_XPATH = "//h1[text()='Nová platba']"; + + @TypeInto(value = NUMBER_ACCOUNT_XPATH, clear = true) + NewPaymentDomesticPage fillNumberOfAccount(String numberOfAccount); + + @CustomAction + default NewPaymentDomesticPage fillBankCode(String bankCode) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> "//body"); + newIbEndpoint.click(() -> BANK_CODE_XPATH); + newIbEndpoint.click(() -> String.format(BANK_CODE_MENU_ITEM_XPATH, bankCode)); + return null; + } + + @CustomAction + default NewPaymentDomesticPage getAccountNumber(Harness harness) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String accountNumber = newIbEndpoint.getAttribute(FROM_ACCOUNT_BUTTON_XPATH, "data-value"); + harness.store(CLIENT_ACCOUNT_NUMBER, accountNumber); + return null; + } + + @TypeInto(AMOUNT_XPATH) + NewPaymentDomesticPage fillAmount(String amount); + + @CustomAction + default NewPaymentDomesticPage selectTypeOfPayment(String name) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> TYPE_OF_PAYMENT_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(OPTION_TYPE_OF_PAYMENT_XPATH, name)); + newIbEndpoint.waitForElementsToLoad(5, String.format(CHOOSE_TYPE_OF_PAYMENT_XPATH, name)); + return null; + } + + @TypeInto(value = VARIABLE_SYMBOL_XPATH) + NewPaymentDomesticPage fillVariableSymbol(String variableSymbol); + + @TypeInto(value = CONSTANT_SYMBOL_XPATH) + NewPaymentDomesticPage fillConstantSymbol(String constantSymbol); + + @TypeInto(value = SPECIFIC_SYMBOL_XPATH) + NewPaymentDomesticPage fillSpecificSymbol(String specificSymbol); + + @TypeInto(value = MESSAGE_RECIPIENT_XPATH) + NewPaymentDomesticPage fillRecipientMessage(String recipientMessage); + + @TypeInto(value = NOTE_FOR_ME_XPATH) + NewPaymentDomesticPage fillMyNote(String myNote); + + @Wait(value = CONTINUE_BUTTON_XPATH, until = Until.CLICKABLE) + @Click(CONTINUE_BUTTON_XPATH) + NewPaymentSummaryPage clickContinue(); + + @CustomAction + default NewPaymentDomesticPage fillCurrency(String currency) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> CURRENCY_XPATH); + newIbEndpoint.click(() -> String.format(CURRENCY_MENU_ITEM_XPATH, currency)); + return null; + } + + @Click(INDIVIDUAL_RATE_ON_XPATH) + NewPaymentDomesticPage clickOnIndividualRateOn(); + + @Click(INDIVIDUAL_RATE_OFF_XPATH) + NewPaymentDomesticPage clickOnIndividualRateOff(); + + @CheckElementPresent(INDVIDUAL_INFO_XPATH) + NewPaymentDomesticPage checkIndividualInfoExist(); + + @CheckElementPresent(POPUP_TITLE_XPATH) + NewPaymentDomesticPage checkIndividualPopupExist(); + + @Click(DECLINE_XPATH) + NewPaymentDomesticPage clickOnDecline(); + + @Click(CONFIRM_XPATH) + NewPaymentSummaryPage clickOnConfirm(); + + @Click(CONTINUE_BUTTON_XPATH) + NewPaymentDomesticPage clickContinueIndividual(); + + @CheckElementsPresent(value = { + @CheckElementPresent(ESTIMATED_AMOUNT_XPATH), + @CheckElementPresent(FEE_XPATH), + @CheckElementPresent(SUBMIT_XPATH)}) + NewPaymentDomesticPage checkAllInfoBlocksPresent(); + + @TypeInto(value = DUE_DATE_XPATH, clear = true) + NewPaymentDomesticPage fillDate (String dateOfPayment); + + @Click(FROM_ACCOUNT_BUTTON_XPATH) + NewPaymentDomesticPage clickOnFromAccount(); + + @CheckElementsPresent(value = { + @CheckElementPresent(FIRST_ACCOUNT_XPATH), + @CheckElementPresent(SECOND_ACCOUNT_XPATH)}) + NewPaymentDomesticPage checkFromAccount(); + + @Click(SELECT_FROM_ACCOUNT_XPATH) + NewPaymentDomesticPage selectFromAccount(); + + @Click(TYPE_OF_PAYMENT_XPATH) + NewPaymentDomesticPage clickOnTypeOfPayment(); + + @CheckElementPresent(PRIORITY_PAYMENT_TYPE_DISABLED_XPATH) + NewPaymentDomesticPage checkPriorityPaymentTypeDisabled(); + + @CustomAction + default NewPaymentDomesticPage selectCategory(String category) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> CATEGORY_BUTTON_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(SELECT_CATEGORY_XPATH, category)); + return null; + } + + @Click(TEMPLATE_CHECKBOX_XPATH) + NewPaymentDomesticPage selectSaveAsTemplateCheckbox(); + + @TypeInto(value = TEMPLATE_NAME_XPATH) + NewPaymentDomesticPage fillTemplateName(String templateName); + + @Click(MY_ACCOUNTS_XPATH) + NewPaymentDomesticPage clickOnMyAccounts(); + + @Click(value = SELECT_TEMPLATE_XPATH, isStringDynamicXpath = true) + NewPaymentDomesticPage selectTemplate(String templateName); + + @Click(FOREIGN_BTN_XPATH) + NewForeignPaymentPage clickOnForeignTab(); + + @CheckElementPresent(DESTINATION_ACCOUNT_NUMBER_XPATH) + NewPaymentDomesticPage checkDestinationAccountNumber(String number); + + @CheckElementPresent(DESTINATION_ACCOUNT_BANK_XPATH) + NewPaymentDomesticPage checkDestinationAccountBank(String number); + + @Click(value = SELECT_SAVINGS_ACCOUNT_XPATH) + NewPaymentDomesticPage selectSavingsAccount(); + + @CheckElementPresent(NEW_PAYMENT_TITLE_XPATH) + NewPaymentDomesticPage checkNewPaymentTitlePresent(); + + @CustomAction + default NewPaymentDomesticPage scrollToBottom() { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + ep.sendKeysOneAtATime(Key.DOWN); + ep.sendKeysOneAtATime(Key.END); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentMenuPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentMenuPage.java new file mode 100644 index 0000000..ee47a2d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentMenuPage.java @@ -0,0 +1,55 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.newib.payments.NewPaymentMenuPage.*; + +@Wait({NEW_PAYMENT_TITLE, PAYMENT_SECTION_XPATH, DOMESTIC_BUTTON_XPATH}) +public interface NewPaymentMenuPage extends Builder, StoreAccessor { + String NEW_PAYMENT_TITLE = "//h1[@class='t-title t-title--h3'][text()='Nová platba']"; + String PAYMENT_SECTION_XPATH = "//section[@data-testid='Tabs']"; + String MENU_LIST = "//ul[@role='tablist']"; + String DOMESTIC_BUTTON_XPATH = MENU_LIST + "//span[@data-testid='domestic-order-tab']/ancestor::button"; + String MOBILE_OPERATORS_BTN_XPATH = "//span[@data-testid='top-up-tab'][//span[contains(text(), 'Mobilní operátoři')]]"; + String FOREIGN_BTN_XPATH = "//span[@data-testid='foreign-tab']"; + String STANDING_ORDER_BTN_XPATH = "//span[@data-testid='standing-order-tab']"; + String DIRECT_DEBIT_BTN_XPATH = "//span[@data-testid='direct-debit-tab']"; + String SIPO_BTN_XPATH = "//span[@data-testid='sipo-tab']"; + String BULK_PAYMENT_BTN_XPATH = "//span[@data-testid='bulk-order-form']"; + String MORE_XPATH = "//div[@class='c-tabs__text'][text()='Další']"; + String MORE_DROPDOWN_XPATH = "//div[@class='c-tabs__text' and text()='Další']/../../../following-sibling::div"; + String MORE_DROPDOWN_NOT_EMPTY_XPATH = MORE_DROPDOWN_XPATH + "//span[not(text='')]"; + + + @Click(MOBILE_OPERATORS_BTN_XPATH) + MobileOperatorsPaymentPage clickOnMobileOperatorsTab(); + + @Click(FOREIGN_BTN_XPATH) + NewForeignPaymentPage clickOnForeignTab(); + + @Click(STANDING_ORDER_BTN_XPATH) + StandingOrderPage clickOnStandingOrderTab(); + + @Click(SIPO_BTN_XPATH) + SipoOrderPage clickOnSipoTab(); + + @Click(BULK_PAYMENT_BTN_XPATH) + BulkPaymentPage clickOnBulkPaymentTab(); + + @Click(value = DIRECT_DEBIT_BTN_XPATH) + DirectDebitPage clickOnDirectDebitTab(); + + @Click(value = MORE_XPATH , andWait = @Wait(MORE_DROPDOWN_NOT_EMPTY_XPATH)) + NewPaymentMenuPage clickMore(); + + @CustomAction + default NewPaymentMenuPage checkNoSipo() { + NewIbEndpoint endpoint = getEndpoint(NewIbEndpoint.class); + String dropDownText = endpoint.getText(MORE_DROPDOWN_XPATH); + Assertions.assertFalse(dropDownText.contains("SIPO")); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentSummaryPage.java new file mode 100644 index 0000000..196204d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentSummaryPage.java @@ -0,0 +1,87 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.payments.NewPaymentSummaryPage.TITLE_SUMMARY_PAGE_XPATH; + +@Wait(value = {TITLE_SUMMARY_PAGE_XPATH}, waitSecondsForElement = 30) +public interface NewPaymentSummaryPage extends NewIbPageFlow, VerticalMainMenu, HorizontalMainMenu { + String TITLE_SUMMARY_PAGE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Souhrn']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='submit']"; + String CONTINUE_MOBILE_KEY_BUTTON_XPATH = "//button[@data-testid='secondFactorSend']"; + String MOBILE_KEY_INTO_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + + // Summary dates of form + String FROM_ACCOUNT_XPATH = "//tr[.//span[text()='Z účtu']]//div[text()='%s']"; + String TO_ACCOUNT_XPATH = "//tr[.//span[text()='Na účet']]//span[text()='%s']"; + String AMOUNT_XPATH = "//tr[.//span[normalize-space(text())='Částka']]//div[contains(normalize-space(.), '%s')]"; + String TYPE_OF_PAYMENT_XPATH = "//th[.//span[text()='Typ platby']]/following-sibling::td//span[text()='%s']"; + String DATE_OF_PAYMENT_XPATH = "//th[.//span[text()='Datum splatnosti']]/following-sibling::td//span[normalize-space(text())='%s']"; + String VARIABLE_SYMBOL_XPATH = "//tr[.//span[text()='Variabilní symbol']]//span[text()='%s']"; + String CONSTANT_SYMBOL_XPATH = "//tr[.//span[text()='Konstantní symbol']]//span[text()='%s']"; + String SPECIFIC_SYMBOL_XPATH = "//tr[.//span[text()='Specifický symbol']]//span[text()='%s']"; + String MY_NOTE_XPATH = "//th[.//span[text()='Poznámka pro mě']]/following-sibling::td//div[normalize-space(text())='%s']"; + String RECIPIENT_MESSAGE_XPATH = "//tr[.//span[text()='Zpráva pro příjemce']]//div[text()='%s']"; + String BACK_XPATH = "//button[@data-testid='back']"; + String INDIVIDUAL_RATE_XPATH = "//span[@class='f-checkbox__over']"; + String CONTINUE_MOBILE_KEY_XPATH = "//button[@data-testid='secondFactorSend']"; + String OVER_LIMIT_ALERT_XPATH = "//p[.//small[contains(text(), 'Zadaná částka překračuje Váš %s limit pro platby')]]"; + String NO_MOBILE_KEY_NEEDED_INFORMATION_XPATH = "//div[@class='c-userAuth__title'][text()='Platbu mezi vlastními účty nemusíte potvrzovat.']"; + + @CheckElementPresent(value = FROM_ACCOUNT_XPATH, isStringDynamicXpath = true) + NewPaymentSummaryPage checkFromAccount(String fromAccount); + + @CheckElementPresent(value = TO_ACCOUNT_XPATH, isStringDynamicXpath = true) + NewPaymentSummaryPage checkToAccount(String toAccount); + + @CheckElementPresent(value = AMOUNT_XPATH, isStringDynamicXpath = true) + NewPaymentSummaryPage checkAmount(String amount); + + @CheckElementPresent(value = TYPE_OF_PAYMENT_XPATH, isStringDynamicXpath = true) + NewPaymentSummaryPage checkTypeOfPayment(String typePayment); + + @CheckElementPresent(value = DATE_OF_PAYMENT_XPATH, isStringDynamicXpath = true) + NewPaymentSummaryPage checkDateOfPayment(String date); + + @CheckElementPresent(value = VARIABLE_SYMBOL_XPATH, isStringDynamicXpath = true) + NewPaymentSummaryPage checkVariableSymbol(String variableSymbol); + + @CheckElementPresent(value = CONSTANT_SYMBOL_XPATH, isStringDynamicXpath = true) + NewPaymentSummaryPage checkConstantSymbol(String constantSymbol); + + @CheckElementPresent(value = SPECIFIC_SYMBOL_XPATH, isStringDynamicXpath = true) + NewPaymentSummaryPage checkSpecificSymbol(String specificSymbol); + + @CheckElementPresent(value = RECIPIENT_MESSAGE_XPATH, isStringDynamicXpath = true) + NewPaymentSummaryPage checkRecipientMessage(String recipientMessage); + + @CheckElementPresent(value = MY_NOTE_XPATH, isStringDynamicXpath = true) + NewPaymentSummaryPage checkMyNote(String myNote); + + @Click(CONTINUE_BUTTON_XPATH) + NewPaymentSummaryPage clickContinue(); + + @TypeInto(MOBILE_KEY_INTO_XPATH) + NewPaymentSummaryPage fillMobileKey(String mobileKey); + + @Click(CONTINUE_MOBILE_KEY_BUTTON_XPATH) + PaymentOrderSentPage clickContinueMobileKey(); + + @Click(value = BACK_XPATH, jsClick = true, andWait = @Wait(value = INDIVIDUAL_RATE_XPATH, until = Until.CLICKABLE)) + NewPaymentDomesticPage clickOnBack(); + + @Click(CONTINUE_MOBILE_KEY_XPATH) + NewForeignPaymentVictoryPage clickContinueButton(); + + @CheckElementPresent(value = OVER_LIMIT_ALERT_XPATH, isStringDynamicXpath = true) + NewPaymentSummaryPage checkAlertOverLimit(String category); + + @Click(CONTINUE_MOBILE_KEY_BUTTON_XPATH) + NewPaymentSummarySwitchToStandardPage clickMobileKey(); + + @CheckElementPresent(NO_MOBILE_KEY_NEEDED_INFORMATION_XPATH) + NewPaymentSummaryPage checkNoMobileKeyIsNeeded(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentSummarySwitchToStandardPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentSummarySwitchToStandardPage.java new file mode 100644 index 0000000..291a5d4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/NewPaymentSummarySwitchToStandardPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; + +public interface NewPaymentSummarySwitchToStandardPage extends NewIbPageFlow{ + String TITLE_XPATH = "//h1[contains(normalize-space(.), 'Platbu odešleme jako standardní')]"; + String INFO_XPATH = "//p[@data-testid='TextComponent' and contains(normalize-space(.), 'Z technických důvodů odešleme vaši platbu jako standardní')]"; + String DECLINE_BUTTON_XPATH = "//button[@data-testid='decline-btn']"; + String CONFIRM_BUTTON_XPATH = "//button[@data-testid='confirm-btn']"; + + @CheckElementPresent(TITLE_XPATH) + NewPaymentSummarySwitchToStandardPage checkPaymentSwithToStandardTitle(); + + @CheckElementPresent(INFO_XPATH) + NewPaymentSummarySwitchToStandardPage checkPaymentSwithToStandardText(); + + @Click(DECLINE_BUTTON_XPATH) + DashboardPage clickCancelPayment(); + + @Click(CONFIRM_BUTTON_XPATH) + DashboardPage confirmStandardPayment(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/PaymentOrderSentPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/PaymentOrderSentPage.java new file mode 100644 index 0000000..794c726 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/PaymentOrderSentPage.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.accounts.CurrentAccountPage; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.payments.PaymentOrderSentPage.*; + +@Wait(value = {PAYMENT_SENT_TITLE_XPATH, NEXT_PAYMENT_BUTTON_XPATH, OVERVIEW_TRANSACTIONS_BUTTON_XPATH, STANDING_ORDER_SAVE_BUTTON, CATEGORY_FIELD_XPATH}, waitSecondsForElement = 60) +public interface PaymentOrderSentPage extends NewIbPageFlow, HorizontalMainMenu, VerticalMainMenu { + String PAYMENT_SENT_TITLE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Platební příkaz byl odeslán']"; + String NEXT_PAYMENT_BUTTON_XPATH = "//button[@data-testid='back']"; + String OVERVIEW_TRANSACTIONS_BUTTON_XPATH = "//button[@data-testid='submit']"; + String STANDING_ORDER_SAVE_BUTTON = "//button[@data-testid='standingOrderSaveButton']"; + String CATEGORY_FIELD_XPATH = "//input[@data-testid='categoryId'] | //div[@data-testid='categoryId']"; + String CHECK_ENVELOPE_TEXT_XPATH = "//div[normalize-space(.)='Uložte si platbu jako šablonu pro rychlejší odesílání']"; + String CHECK_STANDING_ORDER_TEXT_XPATH = "//div[@class='col col-12 col-md-8' and normalize-space(text())='Platíte příjemci často? Vytvořte si trvalý příkaz']"; + String SELECTED_CATEGORY_XPATH = "//span[@class='f-control2__valueTitle' and normalize-space(text())='%s']"; + + @Click(OVERVIEW_TRANSACTIONS_BUTTON_XPATH) + CurrentAccountPage clickOverviewTransactions(); + + @CheckElementPresent(PAYMENT_SENT_TITLE_XPATH) + PaymentOrderSentPage checkPaymentOrderSentTitle(); + + @CheckElementPresent(CHECK_ENVELOPE_TEXT_XPATH) + PaymentOrderSentPage checkEnvelopeText(); + + @CheckElementPresent(CHECK_STANDING_ORDER_TEXT_XPATH) + PaymentOrderSentPage checkStandingOrderText(); + + @CheckElementPresent(value = SELECTED_CATEGORY_XPATH, isStringDynamicXpath = true) + PaymentOrderSentPage checkCategoryField(String category); + + @Click(NEXT_PAYMENT_BUTTON_XPATH) + NewPaymentDomesticPage clickNextPaymentButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/SipoOrderPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/SipoOrderPage.java new file mode 100644 index 0000000..d5f4b35 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/SipoOrderPage.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.payments.SipoOrderPage.*; + +@Wait(value = {SIPO_NUMBER_INPUT_XPATH, SIPO_LIMIT_INPUT_XPATH, END_DATE_INPUT_XPATH}, waitSecondsForElement = 30) +public interface SipoOrderPage extends NewIbPageFlow { + String SIPO_NUMBER_INPUT_XPATH = "//input[@id='sipoNumber']"; + String SIPO_LIMIT_INPUT_XPATH = "//input[@id='amountLimit']"; + String END_DATE_INPUT_XPATH = "//input[@id='endDate']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='submit']"; + String AMOUNT_NOT_DIVISIBLE_ERROR_XPATH = "//div[@id='amountLimit_errorMessage' and contains(@class, 'f-validationMsg--invalid') and normalize-space(text())='Zadaná hodnota není dělitelná 100.']"; + + @TypeInto(value = SIPO_NUMBER_INPUT_XPATH, clear = true) + SipoOrderPage setSipoNumber(String sipoNumber); + + @TypeInto(value = SIPO_LIMIT_INPUT_XPATH, clear = true) + SipoOrderPage setSipoLimit(String sipoLimit); + + @TypeInto(END_DATE_INPUT_XPATH) + SipoOrderPage setSipoEndDate(String sipoEndDate); + + @Click(value = CONTINUE_BUTTON_XPATH, jsClick = true, andWait = @Wait(explicitWaitSeconds = 1)) + SipoOrderSummaryPage clickOnContinue(); + + @TypeInto(SIPO_LIMIT_INPUT_XPATH) + SipoOrderPage setValueNotDivisible100(String number); + + @CheckElementPresent(AMOUNT_NOT_DIVISIBLE_ERROR_XPATH) + SipoOrderPage checkAmountNotDivisibleError(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/SipoOrderSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/SipoOrderSummaryPage.java new file mode 100644 index 0000000..5925575 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/SipoOrderSummaryPage.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.payments.SipoOrderSummaryPage.*; + +@Wait(value = {EDIT_BUTTON_XPATH, CONFIRM_BUTTON_XPATH}, waitSecondsForElement = 30) +public interface SipoOrderSummaryPage extends NewIbPageFlow { + String EDIT_BUTTON_XPATH = "//button[@data-testid='back']"; + String CONFIRM_BUTTON_XPATH = "//button[@data-testid='submit']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String FROM_ACCOUNT_XPATH = "//tr[.//span[@data-testid='TextComponent' and text()='Z účtu'] and .//span[@data-testid='TextComponent' and text()='%s']]"; + String SIPO_NUMBER_XPATH = "//tr[.//span[@data-testid='TextComponent' and text()='Spojovací číslo'] and .//span[@data-testid='TextComponent' and contains(text(), '%s')]]"; + String SIPO_LIMIT_XPATH = "//tr[.//span[@data-testid='TextComponent' and text()='Limit SIPO'] and .//div[contains(@class, 't-amount') and contains(text(), '%s')]]"; + String END_MONTH_XPATH = "//tr[.//span[@data-testid='TextComponent' and text()='Měsíc konce odesílání'] and .//span[@data-testid='TextComponent' and contains(text(), '%s')]]"; + + @Click(value = CONFIRM_BUTTON_XPATH, jsClick = true) + SipoOrderSummaryPage clickOnConfirm(); + + @Click(EDIT_BUTTON_XPATH) + SipoOrderPage clickOnEdit(); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + SipoOrderSummaryPage setMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + SipoOrderVictoryPage clickOnContinueMobileKey(); + + @CheckElementPresent(value = FROM_ACCOUNT_XPATH, isStringDynamicXpath = true) + SipoOrderSummaryPage checkPaymentAccount(String fromAccount); + + @CheckElementPresent(value = SIPO_NUMBER_XPATH, isStringDynamicXpath = true) + SipoOrderSummaryPage checkSipoNumber(String sipoNumber); + + @CheckElementPresent(value = SIPO_LIMIT_XPATH, isStringDynamicXpath = true) + SipoOrderSummaryPage checkSipoLimit(String sipoLimit); + + @CheckElementPresent(value = END_MONTH_XPATH, isStringDynamicXpath = true) + SipoOrderSummaryPage checkEndDate(String endDate); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/SipoOrderVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/SipoOrderVictoryPage.java new file mode 100644 index 0000000..88d9484 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/SipoOrderVictoryPage.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.dsl.newib.settings.payments.sipo.SipoOrdersPage; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +public interface SipoOrderVictoryPage extends NewIbPageFlow, HorizontalMainMenu, VerticalMainMenu { + String SIPO_ORDER_VICTORY_CHANGE_TITLE_PAGE_XPATH = "//h2[@class='t-title t-title--h3'][text()='SIPO bylo úspěšně upraveno']"; + String OVERVIEW_BUTTON_XPATH = "//button[text()='Přehled'][@data-testid='submit']"; + String SIPO_NUMBER_TEXT_XPATH = "//p[@data-testid='TextComponent' and contains(., 'Jeho spojovací číslo je')]//strong[1][contains(text(), '%s')]"; + String SIPO_LIMIT_TEXT_XPATH = "//p[@data-testid='TextComponent' and contains(., 'maximální výše')]//strong[2][contains(text(), '%s')]"; + String PREPARED_TITLE_XPATH = "//h1[@class='t-title t-title--h3' and normalize-space(text())='Založení SIPO bylo připraveno k podpisu']"; + String BACK_TO_SIPO_ORDERS_BUTTON_XPATH = "//button[@data-testid='Button' and normalize-space(text())='Zpět na SIPO']"; + String DASHBOARD_BUTTON_XPATH = "//li[@data-testid='dashboard-link']//button[.//span[text()='Přehled']]"; + + @CheckElementPresent(SIPO_ORDER_VICTORY_CHANGE_TITLE_PAGE_XPATH) + SipoOrderVictoryPage checkSipoOrderChangeVictoryText(); + + @Click(OVERVIEW_BUTTON_XPATH) + SipoOrdersPage goToSipoOverview(); + + @CheckElementsPresent({ + @CheckElementPresent(value = SIPO_NUMBER_TEXT_XPATH, isStringDynamicXpath = true), + @CheckElementPresent(value = SIPO_LIMIT_TEXT_XPATH, isStringDynamicXpath = true)}) + SipoOrderVictoryPage checkSipoNumberAndLimit(String sipoNumber, String sipoLimit); + + @CustomAction + default SipoOrdersPage handleSipoVictoryOrPrepared(String sipoNumber, String sipoLimit) { + NewIbEndpoint endpoint = getEndpoint(NewIbEndpoint.class); + + if (endpoint.isElementVisible(2, PREPARED_TITLE_XPATH, Lookup.XPATH)) { + endpoint.click(() -> OVERVIEW_BUTTON_XPATH); + } else { + checkSipoNumberAndLimit(sipoNumber, sipoLimit); + endpoint.click(() -> OVERVIEW_BUTTON_XPATH); + } + return null; + } + + @Click(BACK_TO_SIPO_ORDERS_BUTTON_XPATH) + SipoOrdersPage clickOnBackToSipoOrders(); + + @Click(DASHBOARD_BUTTON_XPATH) + DashboardPage goToDashboardFromSipoVictory(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderChangePage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderChangePage.java new file mode 100644 index 0000000..f7a17d0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderChangePage.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.settings.payments.standingorders.StandingOrdersPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.payments.StandingOrderChangePage.AMOUNT_INPUT_XPATH; +import static cz.moneta.test.dsl.newib.payments.StandingOrderChangePage.CONTINUE_BUTTON_XPATH; + +@Wait(value = {StandingOrderChangePage.STANDING_ORDERS_CHANGE_TITLE_XPATH, CONTINUE_BUTTON_XPATH, AMOUNT_INPUT_XPATH}, waitSecondsForElement = 30) +public interface StandingOrderChangePage extends NewIbPageFlow, HorizontalMainMenu, StoreAccessor { + String AMOUNT_INPUT_XPATH = "(//input[@name='amount' and not(@disabled) and not(contains(@class,'hidden'))])[last()]"; + String STANDING_ORDERS_CHANGE_TITLE_XPATH = "//h2[@class='t-title t-title--h3'][text()='Upravit trvalý příkaz']"; + String CONTINUE_BUTTON_XPATH = "(//button[@data-testid='submit' and not(@disabled) and not(contains(@class,'hidden'))])[last()]"; + String CONFIRM_BUTTON_XPATH = "//button[@data-testid='submit']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String STANDING_ORDER_CHANGE_VICTORY_TITLE_PAGE_XPATH = "//h1[contains(., 'Trvalý příkaz byl úspěšně upraven')]"; + String BACK_TO_STANDINGS_ORDERS_BUTTON_XPATH = "//button[@data-testid='standing-orders']"; + + @Wait(value = AMOUNT_INPUT_XPATH, until = Until.VISIBLE) + @TypeInto(value = AMOUNT_INPUT_XPATH, clear = true) + StandingOrderChangePage setAmount(String amount); + + @Wait(value = CONTINUE_BUTTON_XPATH, until = Until.VISIBLE) + @Click(CONTINUE_BUTTON_XPATH) + StandingOrderChangePage clickOnContinue(); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + StandingOrderChangePage setMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + StandingOrderChangePage clickOnContinueMobileKey(); + + @CheckElementPresent(STANDING_ORDER_CHANGE_VICTORY_TITLE_PAGE_XPATH) + StandingOrderChangePage checkStandingOrderChangeVictoryText(); + + @Click(BACK_TO_STANDINGS_ORDERS_BUTTON_XPATH) + StandingOrdersPage clickOnBackToStandingOrders(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderPage.java new file mode 100644 index 0000000..a4f1609 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderPage.java @@ -0,0 +1,77 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.payments.StandingOrderPage.*; + +@Wait(value = {DETAIL_INFORMATION_XPATH, FROM_ACCOUNT_TEXT_XPATH, ACCOUNT_NUMBER_INPUT_XPATH, BANK_CODE_INPUT_XPATH, AMOUNT_INPUT_XPATH}, waitSecondsForElement = 30) +public interface StandingOrderPage extends NewIbPageFlow, NewPaymentMenuPage, HorizontalMainMenu , StoreAccessor { + String DETAIL_INFORMATION_XPATH = "//span[contains(text(), 'Symboly, zpráva pro příjemce, poznámka a další')]"; + String FROM_ACCOUNT_TEXT_XPATH = "//label[@for='sourceAccountId_button'][text()='Z účtu']"; + String ACCOUNT_NUMBER_INPUT_XPATH = "//input[@id='destinationAccountNumber']"; + String ACCOUNT_NUMBER_PREFIX_INPUT_XPATH = "//input[@data-testid='destinationAccountPrefix']"; + String BANK_CODE_BUTTON_XPATH = "//button[@name='destinationAccountBank']"; + String BANK_CODE_INPUT_XPATH = "//input[@name='destinationAccountBank']"; + String NAME_OF_THE_STANDING_ORDER_INPUT_XPATH = "//input[@id='description']"; + String AMOUNT_INPUT_XPATH = "//input[@name='amount']"; + String DATE_OF_LAST_PAYMENT_INPUT_XPATH = "//input[@name='endDate']"; + String FREQUENCY_BTN_XPATH = "//button[@id='frequency_button']"; + String FREQUENCY_OPTION_XPATH = "//li[@role='option']//div[contains(@class, 'c-dropdown__itemContent') and normalize-space(text())='%s']"; + String VARIABLE_SYMBOL_INPUT_XPATH = "//input[@name='variableSymbol']"; + String CONSTANT_SYMBOL_INPUT_XPATH = "//input[@name='constantSymbol']"; + String SPECIFIC_SYMBOL_INPUT_XPATH = "//input[@name='specificSymbol']"; + String MESSAGE_RECIPIENT_INPUT_XPATH = "//textarea[@name='noteForRecipient']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='submit']"; + + @TypeInto(ACCOUNT_NUMBER_INPUT_XPATH) + StandingOrderPage setAccountNumber(String accountNumber); + + @TypeInto(ACCOUNT_NUMBER_PREFIX_INPUT_XPATH) + StandingOrderPage setAccountNumberPrefix(String accountNumberPrefix); + + @CustomAction + default StandingOrderPage setBankCode(String bankCode) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> BANK_CODE_BUTTON_XPATH); + newIbEndpoint.type(() -> BANK_CODE_INPUT_XPATH, bankCode, true); + newIbEndpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @TypeInto(NAME_OF_THE_STANDING_ORDER_INPUT_XPATH) + StandingOrderPage setNameOfTheStandingOrder(String nameOfTheStandingOrder); + + @TypeInto(AMOUNT_INPUT_XPATH) + StandingOrderPage setAmount(String amount); + + @TypeInto(DATE_OF_LAST_PAYMENT_INPUT_XPATH) + StandingOrderPage setDateOfLastPayment(String dateOfLastPayment); + + @CustomAction + default StandingOrderPage setFrequency(String frequency) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> FREQUENCY_BTN_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(FREQUENCY_OPTION_XPATH, frequency)); + return null; + } + + @TypeInto(VARIABLE_SYMBOL_INPUT_XPATH) + StandingOrderPage setVariableSymbol(String variableSymbol); + + @TypeInto(CONSTANT_SYMBOL_INPUT_XPATH) + StandingOrderPage setConstantSymbol(String constantSymbol); + + @TypeInto(SPECIFIC_SYMBOL_INPUT_XPATH) + StandingOrderPage setSpecificSymbol(String specificSymbol); + + @TypeInto(MESSAGE_RECIPIENT_INPUT_XPATH) + StandingOrderPage setRecipientMessage(String recipientMessage); + + @Click(CONTINUE_BUTTON_XPATH) + StandingOrderSummaryPage clickOnContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderSummaryPage.java new file mode 100644 index 0000000..b811b71 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderSummaryPage.java @@ -0,0 +1,73 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.payments.StandingOrderSummaryPage.*; + +@Wait(value = {TITLE_SUMMARY_PAGE_XPATH, EDIT_BUTTON_XPATH, CONFIRM_BUTTON_XPATH}, waitSecondsForElement = 30) +public interface StandingOrderSummaryPage extends NewIbPageFlow, VerticalMainMenu, HorizontalMainMenu { + String TITLE_SUMMARY_PAGE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Souhrn']"; + String EDIT_BUTTON_XPATH = "//button[@data-testid='back']"; + String CONFIRM_BUTTON_XPATH = "//button[@data-testid='submit']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String FROM_ACCOUNT_XPATH = "//tr[.//th[normalize-space()='Z účtu']]//td//span[contains(text(), '%s')]"; + String TO_ACCOUNT_XPATH = "//tr[.//th[normalize-space()='Na účet']]//td//span[contains(text(), '%s')]"; + String NAME_OF_THE_STANDING_ORDER_XPATH = "//tr[.//th[normalize-space()='Název trvalého příkazu']]//td//span[contains(text(), '%s')]"; + String AMOUNT_XPATH = "//tr[.//th[normalize-space()='Částka']]//td//span[contains(text(), '%s')]"; + String DATE_OF_FIRST_PAYMENT_XPATH = "//tr[.//th[normalize-space()='Datum první platby']]//td//span[contains(text(), '%s')]"; + String DATE_OF_LAST_PAYMENT_XPATH = "//tr[.//th[normalize-space()='Datum ukončení']]//td//span[contains(text(), '%s')]"; + String FREQUENCY_XPATH = "//tr[.//th[normalize-space()='Frekvence']]//td//span[contains(text(), '%s')]"; + String VARIABLE_SYMBOL_XPATH = "//tr[.//th[normalize-space()='Variabilní symbol']]//td//span[contains(text(), '%s')]"; + String CONSTANT_SYMBOL_XPATH = "//tr[.//th[normalize-space()='Konstantní symbol']]//td//span[contains(text(), '%s')]"; + String SPECIFIC_SYMBOL_XPATH = "//tr[.//th[normalize-space()='Specifický symbol']]//td//span[contains(text(), '%s')]"; + String RECIPIENT_MESSAGE_XPATH = "//tr[.//th[normalize-space()='Zpráva pro příjemce']]//td//span[contains(text(), '%s')]"; + + @Click(CONFIRM_BUTTON_XPATH) + StandingOrderSummaryPage clickOnConfirm(); + + @CheckElementPresent(value = FROM_ACCOUNT_XPATH, isStringDynamicXpath = true) + StandingOrderSummaryPage checkFromAccount(String fromAccount); + + @CheckElementPresent(value = TO_ACCOUNT_XPATH, isStringDynamicXpath = true) + StandingOrderSummaryPage checkToAccount(String toAccount); + + @CheckElementPresent(value = NAME_OF_THE_STANDING_ORDER_XPATH, isStringDynamicXpath = true) + StandingOrderSummaryPage checkNameOfTheStandingOrder(String nameOfTheStandingOrder); + + @CheckElementPresent(value = AMOUNT_XPATH, isStringDynamicXpath = true) + StandingOrderSummaryPage checkAmount(String amount); + + @CheckElementPresent(value = DATE_OF_FIRST_PAYMENT_XPATH, isStringDynamicXpath = true) + StandingOrderSummaryPage checkDateOfFirstPayment(String dateOfFirstPayment); + + @CheckElementPresent(value = DATE_OF_LAST_PAYMENT_XPATH, isStringDynamicXpath = true) + StandingOrderSummaryPage checkDateOfLastPayment(String dateOfLastPayment); + + @CheckElementPresent(value = FREQUENCY_XPATH, isStringDynamicXpath = true) + StandingOrderSummaryPage checkFrequency(String frequency); + + @CheckElementPresent(value = VARIABLE_SYMBOL_XPATH, isStringDynamicXpath = true) + StandingOrderSummaryPage checkVariableSymbol(String variableSymbol); + + @CheckElementPresent(value = CONSTANT_SYMBOL_XPATH, isStringDynamicXpath = true) + StandingOrderSummaryPage checkConstantSymbol(String constantSymbol); + + @CheckElementPresent(value = SPECIFIC_SYMBOL_XPATH, isStringDynamicXpath = true) + StandingOrderSummaryPage checkSpecificSymbol(String specificSymbol); + + @CheckElementPresent(value = RECIPIENT_MESSAGE_XPATH, isStringDynamicXpath = true) + StandingOrderSummaryPage checkRecipientMessage(String recipientMessage); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + StandingOrderSummaryPage setMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + StandingOrderVictoryPage clickOnContinueMobileKey(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderVictoryPage.java new file mode 100644 index 0000000..fcb4347 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/payments/StandingOrderVictoryPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.newib.payments; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.dsl.newib.settings.payments.standingorders.StandingOrdersPage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.payments.StandingOrderVictoryPage.*; + +@Wait(value = {OVERVIEW_BUTTON_XPATH, NEXT_PAYMENT_BUTTON_XPATH}, waitSecondsForElement = 30) +public interface StandingOrderVictoryPage extends NewIbPageFlow, HorizontalMainMenu, VerticalMainMenu { + + String STANDING_ORDER_VICTORY_TITLE_PAGE_XPATH = "//h1[contains(., 'Trvalý příkaz byl přijat ke zpracování')]"; + String OVERVIEW_BUTTON_XPATH = "//button[text()='Přehled trvalých příkazů'][@data-testid='submit']"; + String NEXT_PAYMENT_BUTTON_XPATH = "//button[text()='Zadat další příkaz']"; + + @CheckElementPresent(STANDING_ORDER_VICTORY_TITLE_PAGE_XPATH) + StandingOrderVictoryPage checkStandingOrderVictoryText(); + + @Click(OVERVIEW_BUTTON_XPATH) + StandingOrdersPage clickOnStandingOrders(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/savings/AmlQuestionnairePage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/AmlQuestionnairePage.java new file mode 100644 index 0000000..26daf42 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/AmlQuestionnairePage.java @@ -0,0 +1,80 @@ +package cz.moneta.test.dsl.newib.savings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.savings.AmlQuestionnairePage.TITLE_AML_QUESTIONNAIRE_XPATH; + +@Wait(value = {TITLE_AML_QUESTIONNAIRE_XPATH}, waitSecondsForElement = 30) +public interface AmlQuestionnairePage extends NewIbPageFlow { + + String TITLE_AML_QUESTIONNAIRE_XPATH = "//h2[@class='t-title t-title--h4'][text()='Údaje vyžadované zákonem']"; + String TITLE_BUILDING_SAVINGS_XPATH = "//h1[@class='t-title t-title--h3 u-mb--xLarge'][text()='Stavební spoření']"; + String AML_BUILDING_SAVINGS_TEXT_XPATH = "//div[@class='c-card__header__text'][contains(., 'Zeptat se na tyto informace musíme') and contains(., 'Jaký je hlavní zdroj prostředků') and contains(., 'Příjem ze zaměstnání') and contains(., 'Příjem z podnikání') and contains(., 'Důchod / Renta') and contains(., 'Sociální dávky') and contains(., 'Příjem od rodinných příslušníků') and contains(., 'Jakým způsobem budete spořit') and contains(., 'Budu vkládat hotovost') and contains(., 'Bezhotovostními převody ze svého bankovního účtu') and contains(., 'Budu vkládat hotovost') and contains(., 'Hotovost bude vkládat třetí osoba') and contains(., 'Bezhotovostní platby bude zasílat třetí osoba') and contains(., 'Jaká je přibližná výše Vašeho pravidelného měsíčního příjmu') and contains(., 'Do 50 000 Kč') and contains(., '50 000 - 100 000 Kč') and contains(., 'Nad 100 000 Kč') and contains(., 'Odvádíte daně pouze v ČR') and contains(., 'Ano') and contains(., 'Ne')]"; + String AML_DEPOSIT_ORIGIN_XPATH = "//li[@id='depositOrigin_value-1']//span[text()='Příjem ze zaměstnání']"; + String AML_WAY_OF_SAVING_XPATH = "//li[@id='wayOfSaving_value-2']//span[text()='Bezhotovostními převody ze svého bankovního účtu']"; + String AML_RANGE_OF_INCOME_VALUE_XPATH = "//li[@id='rangeOfIncome_value-AML2.2.DO_100']//span[text()='50 000 - 100 000 Kč']"; + String AML_CZ_ONLY_TAX_RESIDENCE_LABEL_XPATH = "//li[@id='czOnlyTaxResidence_value-1']//span[text()='Ano']"; + String BACK_BUTTON_XPATH = "//button[@data-testid='Button'][text()='Zpět']"; + String CONFIRM_BUTTON_XPATH = "//button[@data-testid='Button'][text()='Pokračovat']"; + String PRE_CONTRACTUAL_INFORMATION_TITLE_XPATH = "//h2[@class='t-title t-title--h4'][text()='Přečtěte si Předsmluvní informace']"; + String DPS_SOURCE_OF_INCOME_XPATH = "//button[@id='sourceOfIncome_button']"; + String SELECT_DPS_SOURCE_OF_INCOME_XPATH = "//div[@class='c-dropdown__itemContent' and text()='Příjem ze zaměstnání']"; + String DPS_INCOME_XPATH = "//button[@id='income_button']"; + String SELECT_DPS_INCOME_XPATH = "//div[@class='c-dropdown__itemContent' and contains(., '50') and contains(., '000')]"; + String PAY_TAXES_XPATH = "//span[@data-testid='TextComponent' and text()='Platím daně pouze v ČR']"; + String NOT_PEP_PERSON_XPATH = "//span[@data-testid='TextComponent' and text()='Nejsem politicky exponovaná osoba']"; + String NOT_GREEN_CARD_HOLDER_XPATH = "//span[@data-testid='TextComponent' and text()='Nejsem držitelem Zelené karty, mým investičním poradcem nebo zástupcem není americká osoba']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='dps-shared-datarequiredbylaw-btn-next' and text()='Pokračovat']"; + + @CheckElementPresent(TITLE_AML_QUESTIONNAIRE_XPATH) + AmlQuestionnairePage checkAmlQuestionnaire(); + + @CheckElementPresent(TITLE_BUILDING_SAVINGS_XPATH) + AmlQuestionnairePage checkTitleBuildingSavings(); + + @Click(AML_DEPOSIT_ORIGIN_XPATH) + AmlQuestionnairePage clickOnAmlDepositOrigin(); + + @Click(AML_WAY_OF_SAVING_XPATH) + AmlQuestionnairePage clickOnAmlWayOfSavings(); + + @Click(AML_RANGE_OF_INCOME_VALUE_XPATH) + AmlQuestionnairePage clickOnAmlRangeOfIncomeValue(); + + @Click(AML_CZ_ONLY_TAX_RESIDENCE_LABEL_XPATH) + AmlQuestionnairePage clickOnAmlCzOnlyTaxResidenceLabel(); + + @CheckElementPresent(BACK_BUTTON_XPATH) + AmlQuestionnairePage checkBackButton(); + + @Click(value = CONFIRM_BUTTON_XPATH, andWait = @Wait(value = PRE_CONTRACTUAL_INFORMATION_TITLE_XPATH, waitSecondsForElement = 100)) + PrecontractPage clickOnConfirmButton(); + + @CheckElementPresent(AML_BUILDING_SAVINGS_TEXT_XPATH) + AmlQuestionnairePage checkAmlBuildingSavingsText(); + + @Click(DPS_SOURCE_OF_INCOME_XPATH) + AmlQuestionnairePage clickOnDpsSourceOfIncome(); + + @Click(SELECT_DPS_SOURCE_OF_INCOME_XPATH) + AmlQuestionnairePage selectDpsSourceOfIncome(); + + @Click(DPS_INCOME_XPATH) + AmlQuestionnairePage clickOnDpsIncome(); + + @Click(SELECT_DPS_INCOME_XPATH) + AmlQuestionnairePage selectDpsIncome(); + + @CheckElementPresent(PAY_TAXES_XPATH) + AmlQuestionnairePage checkPayTaxes(); + + @CheckElementPresent(NOT_PEP_PERSON_XPATH) + AmlQuestionnairePage checkNotPepPerson(); + + @CheckElementPresent(NOT_GREEN_CARD_HOLDER_XPATH) + AmlQuestionnairePage checkNotGreenCardHolder(); + + @Click(CONTINUE_BUTTON_XPATH) + DpsStaticDocumentsAndContractPage clickOnContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/savings/ContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/ContractPage.java new file mode 100644 index 0000000..66d049d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/ContractPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.newib.savings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.mainpage.BuildingSavingsPage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.savings.ContractPage.CONTRACT_TITLE_XPATH; + +@Wait(value = {CONTRACT_TITLE_XPATH}, waitSecondsForElement = 30) +public interface ContractPage extends NewIbPageFlow { + + String CONTRACT_TITLE_XPATH = "//h2[@class='t-title t-title--h4'][text()='Přečtěte si smlouvu s parametry produktu']"; + String UNDERSTAND_AND_AGREE_BUTTON_XPATH = "//button[@data-testid='goNext'][text()='Rozumím a souhlasím, pokračovat k podpisu']"; + String DECLINE_BUTTON_XPATH = "//button[@data-testid='decline'][text()='Nesouhlasím']"; + + @Click(UNDERSTAND_AND_AGREE_BUTTON_XPATH) + BuildingSavingsPage clickOnUnderstandAndAgreeButton(); + + @CheckElementPresent(DECLINE_BUTTON_XPATH) + ContractPage checkDeclineButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsContributionsAndDepositsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsContributionsAndDepositsPage.java new file mode 100644 index 0000000..b85c701 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsContributionsAndDepositsPage.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.newib.savings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.savings.DpsContributionsAndDepositsPage.CONTRIBUTIONS_AND_DEPOSITS_HEADER_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsContributionsAndDepositsPage.CONTRIBUTIONS_AND_DEPOSITS_TITLE_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsContributionsAndDepositsPage.YOUR_MONTHLY_DEPOSIT_TEXT_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsContributionsAndDepositsPage.STATE_CONTRIBUTION_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsContributionsAndDepositsPage.HAS_EMPLOYER_CONTRIBUTION_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsContributionsAndDepositsPage.ALERT_DEPOSITS_XPATH; + +@Wait({CONTRIBUTIONS_AND_DEPOSITS_HEADER_XPATH, CONTRIBUTIONS_AND_DEPOSITS_TITLE_XPATH, YOUR_MONTHLY_DEPOSIT_TEXT_XPATH, STATE_CONTRIBUTION_XPATH, HAS_EMPLOYER_CONTRIBUTION_XPATH, ALERT_DEPOSITS_XPATH}) +public interface DpsContributionsAndDepositsPage extends NewIbPageFlow { + + String CONTRIBUTIONS_AND_DEPOSITS_HEADER_XPATH = "//h1[@data-testid='dps-contribution-header' and text()='Doplňkové penzijní spoření']"; + String CONTRIBUTIONS_AND_DEPOSITS_TITLE_XPATH = "//h2[@class='t-title t-title--h4' and normalize-space(.)='Příspěvky a vklady'][following-sibling::node()[contains(normalize-space(.), 'Změny budou platné od prvního dne následujícího měsíce.')]]"; + String YOUR_MONTHLY_DEPOSIT_TEXT_XPATH = "//div[@data-testid='monthlyDeposit-title' and text()='Váš měsíční vklad']"; + String STATE_CONTRIBUTION_XPATH = "//div[@class='c-card__header__text'][.//span[@data-testid='TextComponent' and normalize-space(.)='Státní příspěvek'] and .//div[@data-testid='TextComponent' and contains(normalize-space(.), 'Pro minimální státní příspěvek vkládejte alespoň 500 Kč měsíčně.')] and .//div[@data-testid='TextComponent' and contains(normalize-space(.), 'Pro maximální příspěvek vkládejte 1 700 Kč nebo více.')]]"; + String HAS_EMPLOYER_CONTRIBUTION_XPATH = "//span[@class='u-fontWeightMedium' and text()='Bude mi přispívat i zaměstnavatel']"; + String ALERT_DEPOSITS_XPATH = "//div[@class='c-alert__text' and text()='Aby vám mohl být připsán odpovídající státní příspěvek, je třeba upravit výši vkladu ve smlouvě.']"; + String YOUR_MONTHLY_DEPOSIT_XPATH = "//input[@data-testid='monthlyDeposit-value']"; + String HAS_EMPLOYER_CONTRIBUTION_CHECKBOX_XPATH = "//label[@for='hasEmployerContribution']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='dps-contribution-btn-next' and text()='Pokračovat']"; + + @TypeInto(value = YOUR_MONTHLY_DEPOSIT_XPATH, clear = true) + DpsContributionsAndDepositsPage fillDeposit(String deposit); + + @Click(HAS_EMPLOYER_CONTRIBUTION_CHECKBOX_XPATH) + DpsContributionsAndDepositsPage clickOnHasEmployerContributionCheckbox(); + + @Click(CONTINUE_BUTTON_XPATH) + DpsRecapitulationPage clickOnContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsPage.java new file mode 100644 index 0000000..1454321 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsPage.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.newib.savings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.savings.DpsPage.PENSION_TITLE_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsPage.QUICK_OVERVIEW_TITLE_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsPage.ALLOCATION_INTO_FUNDS_TITLE_XPATH; + +@Wait({PENSION_TITLE_XPATH, QUICK_OVERVIEW_TITLE_XPATH, ALLOCATION_INTO_FUNDS_TITLE_XPATH}) +public interface DpsPage extends NewIbPageFlow { + String PENSION_TITLE_XPATH = "//h2[@class='t-title t-title--h5 u-mb--0' and text()='Penze']"; + String QUICK_OVERVIEW_TITLE_XPATH = "//h3[@class='t-title t-title--h5 u-mb--medium' and text()='Rychlý přehled']"; + String ALLOCATION_INTO_FUNDS_TITLE_XPATH = "//h3[@class='t-title t-title--h5 u-mb--medium' and text()='Rozložení do fondů']"; + String CONTRIBUTIONS_AND_DEPOSITS_BUTTON_XPATH = "//button[@data-testid='dps-change-contribution' and text()='Příspěvky a vklady']"; + String CHANGE_STRATEGY_BUTTON_XPATH = "//button[@data-testid='dps-change-strategy' and text()='Změnit strategii']"; + String OVERVIEW_TEXT_XPATH = "//div[@class='c-chartLegend__row__label' and (contains(normalize-space(), 'Vaše příspěvky') or contains(normalize-space(), 'Od zaměstnavatele') or contains(normalize-space(), 'Zhodnocení') or contains(normalize-space(), 'Od státu'))]"; + String QUICK_OVERVIEW_TEXT_XPATH = "//table[contains(., 'Celkem naspořeno') and contains(., 'Doba spoření') and contains(., 'Číslo účtu') and contains(., 'Doba spoření') and contains(., 'Číslo smlouvy / v.s.') and contains(., 'Měsíční příspěvek') and contains(., 'Příspěvek zaměstnavatele')]"; + String ALLOCATION_INTO_FUNDS_TEXT_XPATH = "//table[contains(., 'Povinný konzervativní fond NN Penzijní společnosti, a.s.') and contains(., 'Vyvážený účastnický fond NN Penzijní společnosti, a.s.')]"; + String TAB_DOCUMENTS_XPATH = "//span[@data-testid='dps-tab-documents' and text()='Dokumenty']"; + String YOUR_DOCUMENTS_XPATH = "//p[@class='u-textLarge u-fontWeightSemiBold u-mb--small' and text()='Vaše dokumenty']"; + String FUND_INFORMATION_XPATH = "//p[@class='u-textLarge u-fontWeightSemiBold u-mb--small' and text()='Informace o fondech']"; + String TAB_FAQ_XPATH = "//span[@data-testid='dps-tab-FAQ' and text()='Často kladené otázky']"; + String FAQ_QUESTION_XPATH = "//span[@class='c-collapse__toggle__text' and text()='Kde najdu smlouvu o Doplňkovém penzijním spoření pro zaměstnavatele?']"; + String FAQ_ANSWER_XPATH = "//p[@data-testid='TextComponent']/small[contains(normalize-space(), 'Smlouvu o DPS najdete v sekci Dokumenty')]"; + String TAB_CONTACTS_XPATH = "//span[@data-testid='dps-tab-contacts' and text()='Kontakty']"; + String CONTACTS_TEXT_XPATH = "//div[@class='c-tabs__contentItem is-active' and .//p[@data-testid='TextComponent' and contains(., 'Máte k doplňkovému penzijnímu spoření nějaké otázky?')] and .//p[@data-testid='TextComponent' and contains(., 'Pokud chcete upravit výši příspěvků, strategii, či cokoliv jiného, kontaktujte prosím NN Penzijní společnost, nebo si sjednejte schůzku s jejich poradcem.')]]"; + String PHONE_NUMBER_XPATH = "//span[@class='u-colorBrand u-textLarge u-fontWeightSemiBold' and text()='244 090 800']"; + String EMAIL_XPATH = "//span[@class='u-colorBrand u-textLarge u-fontWeightSemiBold' and text()='dotazy@nn.cz']"; + String MEETING_XPATH = "//span[@class='u-colorBrand u-textLarge u-fontWeightSemiBold' and text()='Sjednat schůzku']"; + String CONTRIBUTIONS_AND_DEPOSITS_ALERT_XPATH = "//div[@class='c-alert__text' and contains(., 'Zpracováváme změnu nastavení příspěvků. Změna bude platná od')]"; + + @CheckElementPresent(CONTRIBUTIONS_AND_DEPOSITS_BUTTON_XPATH) + DpsPage checkChangeContributionButton(); + + @CheckElementPresent(CHANGE_STRATEGY_BUTTON_XPATH) + DpsPage checkChangeStrategyButton(); + + @CheckElementPresent(OVERVIEW_TEXT_XPATH) + DpsPage checkOverviewText(); + + @CheckElementPresent(QUICK_OVERVIEW_TEXT_XPATH) + DpsPage checkQuickOverviewText(); + + @CheckElementPresent(ALLOCATION_INTO_FUNDS_TEXT_XPATH) + DpsPage checkAllocationIntoFundsText(); + + @Click(TAB_DOCUMENTS_XPATH) + DpsPage clickOnTabDocuments(); + + @CheckElementPresent(YOUR_DOCUMENTS_XPATH) + DpsPage checkYourDocuments(); + + @CheckElementPresent(FUND_INFORMATION_XPATH) + DpsPage checkFundInformation(); + + @Click(TAB_FAQ_XPATH) + DpsPage clickOnTabFaq(); + + @Click(FAQ_QUESTION_XPATH) + DpsPage clickOnFaqQuestion(); + + @CheckElementPresent(FAQ_ANSWER_XPATH) + DpsPage checkFaqAnswer(); + + @Click(TAB_CONTACTS_XPATH) + DpsPage clickOnContacts(); + + @CheckElementPresent(CONTACTS_TEXT_XPATH) + DpsPage checkContactsText(); + + @CheckElementPresent(PHONE_NUMBER_XPATH) + DpsPage checkPhoneNumber(); + + @CheckElementPresent(EMAIL_XPATH) + DpsPage checkEmail(); + + @CheckElementPresent(MEETING_XPATH) + DpsPage checkMeeting(); + + @Click(CONTRIBUTIONS_AND_DEPOSITS_BUTTON_XPATH) + DpsContributionsAndDepositsPage clickOnContributionsAndDepositsButton(); + + @CheckElementPresent(CONTRIBUTIONS_AND_DEPOSITS_ALERT_XPATH) + DpsPage checkContributionsAndDepositsAlert(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsRecapitulationPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsRecapitulationPage.java new file mode 100644 index 0000000..10a53af --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsRecapitulationPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.newib.savings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.savings.DpsRecapitulationPage.RECAPITULATION_HEADER_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsRecapitulationPage.RECAPITULATION_TITLE_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsRecapitulationPage.RECAPITULATION_CLIENT_CONTRIBUTION_TITLE_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsRecapitulationPage.RECAPITULATION_EMPLOYER_CONTRIBUTION_TITLE_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsRecapitulationPage.CURRENT_CONTRIBUTION_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsRecapitulationPage.NEW_CONTRIBUTION_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsRecapitulationPage.CURRENT_EMPLOYER_CONTRIBUTION_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsRecapitulationPage.NEW_EMPLOYER_CONTRIBUTION_XPATH; + +@Wait({RECAPITULATION_HEADER_XPATH, RECAPITULATION_TITLE_XPATH, RECAPITULATION_CLIENT_CONTRIBUTION_TITLE_XPATH, RECAPITULATION_EMPLOYER_CONTRIBUTION_TITLE_XPATH, CURRENT_CONTRIBUTION_XPATH, NEW_CONTRIBUTION_XPATH, CURRENT_EMPLOYER_CONTRIBUTION_XPATH, NEW_EMPLOYER_CONTRIBUTION_XPATH}) +public interface DpsRecapitulationPage extends NewIbPageFlow { + + String RECAPITULATION_HEADER_XPATH = "//h1[@data-testid='dps-recapitulation-header' and text()='Doplňkové penzijní spoření']"; + String RECAPITULATION_TITLE_XPATH = "//h2[@data-testid='dps-recapitulation-title' and text()='Rekapitulace']"; + String RECAPITULATION_CLIENT_CONTRIBUTION_TITLE_XPATH = "//h3[@data-testid='dps-recapitulation-clienContributionTitle' and text()='Váš měsíční vklad']"; + String RECAPITULATION_EMPLOYER_CONTRIBUTION_TITLE_XPATH = "//h3[@data-testid='dps-recapitulation-employerContributionTitle' and text()='Příspěvek zaměstnavatele']"; + String CURRENT_CONTRIBUTION_XPATH = "//div[.//span[@data-testid='dps-recapitulation-currentContribution' and normalize-space(.)='Původní'] and .//span[@data-testid='dps-recapitulation-amountCurrencyPerYear']/strong[contains(., '1') and contains(., '000')] and contains(.//span[@data-testid='dps-recapitulation-amountCurrencyPerYear'], 'CZK')]"; + String NEW_CONTRIBUTION_XPATH = "//div[.//span[@data-testid='dps-recapitulation-newContribution' and normalize-space(.)='Nový'] and .//span[@data-testid='dps-recapitulation-amountCurrencyPerYear']/strong[contains(., '15') and contains(., '000')] and contains(.//span[@data-testid='dps-recapitulation-amountCurrencyPerYear'], 'CZK')]"; + String CURRENT_EMPLOYER_CONTRIBUTION_XPATH = "//div[.//span[@data-testid='dps-recapitulation-currentEmployerContribution' and normalize-space(string(.))='Původně'] and .//span[@data-testid='dps-recapitulation-hasEmployerContribution' and normalize-space(string(.))='Ano']]"; + String NEW_EMPLOYER_CONTRIBUTION_XPATH = "//div[.//span[@data-testid='dps-recapitulation-newEmployerContribution' and normalize-space(string(.))='Nově'] and .//span[@data-testid='dps-recapitulation-hasEmployerContribution2' and normalize-space(string(.))='Ne']]"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='dps-recapitulation-btn-next' and text()='Pokračovat']"; + + @Click(CONTINUE_BUTTON_XPATH) + AmlQuestionnairePage clickOnContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsStaticDocumentsAndContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsStaticDocumentsAndContractPage.java new file mode 100644 index 0000000..288414f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsStaticDocumentsAndContractPage.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.newib.savings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.savings.DpsStaticDocumentsAndContractPage.STATIC_DOCUMENTS_TITLE_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsStaticDocumentsAndContractPage.STATIC_DOCUMENTS_PAGE_HEADER_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsStaticDocumentsAndContractPage.PRECONTRACTUAL_INFORMATION_DOCUMENT_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsStaticDocumentsAndContractPage.PRECONTRACTUAL_INFORMATION_SFDR_DOCUMENT_XPATH; + +@Wait(value ={STATIC_DOCUMENTS_TITLE_XPATH, STATIC_DOCUMENTS_PAGE_HEADER_XPATH, PRECONTRACTUAL_INFORMATION_DOCUMENT_XPATH, PRECONTRACTUAL_INFORMATION_SFDR_DOCUMENT_XPATH}, waitSecondsForElement = 30) +public interface DpsStaticDocumentsAndContractPage extends NewIbPageFlow { + + String STATIC_DOCUMENTS_PAGE_HEADER_XPATH = "//h1[@data-testid='dps-shared-staticdocuments-header' and text()='Doplňkové penzijní spoření']"; + String STATIC_DOCUMENTS_TITLE_XPATH = "//h2[@data-testid='dps-shared-staticdocuments-title' and text()='Před pokračováním si prosím přečtěte následující dokumenty']"; + String PRECONTRACTUAL_INFORMATION_DOCUMENT_XPATH = "//button[@class='c-link' and text()='Předsmluvní informace k doplňkovému penzijnímu spoření']"; + String PRECONTRACTUAL_INFORMATION_SFDR_DOCUMENT_XPATH = "//button[@class='c-link' and text()='Předsmluvní informace k SFDR']"; + String CONTINUE_TO_SIGNATURE_BUTTON_XPATH = "//button[@data-testid='dps-shared-staticdocuments-btn-next' and text()='Pokračovat k podpisu']"; + String CONTRACT_TITLE_XPATH = "//h2[@data-testid='dps-shared-contract-title' and text()='Přečtěte si smlouvu o změně parametrů Doplňkového penzijního spoření']"; + String AGREE_CONTINUE_BUTTON_XPATH = "//button[@data-testid='dps-shared-contract-btn-next' and text()='Souhlasím, pokračovat k podpisu']"; + String MOBILE_KEY_INTO_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String CONTINUE_MOBILE_KEY_BUTTON_XPATH = "//button[@data-testid='secondFactorSend']"; + + @Wait(value = CONTRACT_TITLE_XPATH, until = Until.VISIBLE) + @CheckElementPresent(CONTRACT_TITLE_XPATH) + DpsStaticDocumentsAndContractPage checkContractTitle(); + + @Click(AGREE_CONTINUE_BUTTON_XPATH) + DpsStaticDocumentsAndContractPage clickOnAgreeContinuebutton(); + + @TypeInto(MOBILE_KEY_INTO_XPATH) + DpsStaticDocumentsAndContractPage fillMobileKey(String mobileKey); + + @Click(CONTINUE_MOBILE_KEY_BUTTON_XPATH) + DpsVictoryPage clickContinueMobileKey(); + + @Click(value = CONTINUE_TO_SIGNATURE_BUTTON_XPATH, andWait = @Wait(value = CONTRACT_TITLE_XPATH, waitSecondsForElement = 30)) + DpsStaticDocumentsAndContractPage clickOnContinueToSignatureButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsVictoryPage.java new file mode 100644 index 0000000..31a80ca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/DpsVictoryPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.newib.savings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.savings.DpsVictoryPage.VICTORY_HEADER_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsVictoryPage.VICTORY_TITLE_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsVictoryPage.VICTORY_TEXT_XPATH; +import static cz.moneta.test.dsl.newib.savings.DpsVictoryPage.VICTORY_ALERT_XPATH; + +@Wait(value ={VICTORY_HEADER_XPATH, VICTORY_TITLE_XPATH, VICTORY_TEXT_XPATH, VICTORY_ALERT_XPATH}, waitSecondsForElement = 30) +public interface DpsVictoryPage extends NewIbPageFlow { + + String VICTORY_HEADER_XPATH = "//h1[@data-testid='dps-contribution-victory-header' and text()='Doplňkové penzijní spoření']"; + String VICTORY_TITLE_XPATH = "//h2[@data-testid='dps-contribution-victory-title' and contains(., 'Hotovo! Změna Doplňkového penzijního spoření je platná od')]"; + String VICTORY_TEXT_XPATH = "//span[@data-testid='dps-contribution-victory-text' and text()='Pokud Vám bude na spoření přispívat zaměstnavatel, přepošlete mu prosím smlouvu od NN penzijní společnosti. Najdete ji ve svém e-mailu.']"; + String VICTORY_ALERT_XPATH = "//div[@class='c-alert__text' and contains(., 'Nezapomeňte si nastavit výši vašeho trvalého příkazu na 15') and contains(., '000 Kč.')]"; + String STANDING_ORDER_BUTTON_XPATH = "//button[@data-testid='dps-contribution-victory-btn-next' and text()='Nastavit trvalý příkaz']"; + String CLOSE_SETTINGS_BUTTON_XPATH = "//button[@data-testid='settings_modal-close']"; + String BACK_TO_DASHBOARD_BUTTON_XPATH = "//button[@data-testid='dps-contribution-victory-btn-back' and text()='Zpět na Přehled']"; + + @Click(STANDING_ORDER_BUTTON_XPATH) + DpsVictoryPage clickOnStandingOrderButton(); + + @Click(BACK_TO_DASHBOARD_BUTTON_XPATH) + DpsPage clickOnBackToDashboardButton(); + + @Wait(value = CLOSE_SETTINGS_BUTTON_XPATH, until = Until.VISIBLE, explicitWaitSeconds = 1) + @Click(CLOSE_SETTINGS_BUTTON_XPATH) + DpsVictoryPage clickOnCloseSettingsButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/savings/PersonalDetailAddressPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/PersonalDetailAddressPage.java new file mode 100644 index 0000000..da8a75f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/PersonalDetailAddressPage.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.newib.savings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.savings.PersonalDetailAddressPage.TITLE_PERSONAL_DETAIL_ADDRESS_XPATH; + +@Wait(value = {TITLE_PERSONAL_DETAIL_ADDRESS_XPATH}, waitSecondsForElement = 30) +public interface PersonalDetailAddressPage extends NewIbPageFlow { + + String TITLE_PERSONAL_DETAIL_ADDRESS_XPATH = "//h1[@class='t-title t-title--h4'][text()='Máme správně Váš trvalý pobyt?']"; + String TITLE_BUILDING_SAVINGS_XPATH = "//h1[@class='t-title t-title--h3 u-mb--xLarge'][text()='Stavební spoření']"; + String PERMANENT_ADDRESS_FORM_STREET_LABEL_XPATH = "//label[@id='permanentAddressForm.street_label'][text()='Ulice']"; + String PERMANENT_ADDRESS_FORM_DESCRIPTIVE_NUMBER_LABEL_XPATH = "//label[@id='permanentAddressForm.descriptiveNumber_label'][text()='Č. popisné']"; + String PERMANENT_ADDRESS_FORM_ORIENTATION_NUMBER_LABEL_XPATH = "//label[@id='permanentAddressForm.orientationNumber_label'][text()='Č. orientační']"; + String PERMANENT_ADDRESS_FORM_TOWN_LABEL_XPATH = "//label[@id='permanentAddressForm.town_label'][text()='Město']"; + String PERMANENT_ADDRESS_FORM_ZIP_LABEL_XPATH = "//label[@id='permanentAddressForm.zip_label'][text()='PSČ']"; + String PERMANENT_ADDRESS_FORM_COUNTRY_LABEL_XPATH = "//label[@id='permanentAddressForm.country_label'][text()='Země']"; + String CHECKBOX_CONTACT_AND_PERMANENT_ADDRESS_XPATH = "//span[@id='text-contactSameAsPermanent'][text()='Kontaktní adresa je stejná jako trvalá']"; + String CHECKBOX_CONTACT_SAME_AS_PERMANENT_XPATH = "//label[@for='contactSameAsPermanent']"; + String TITLE_CONTACT_ADDRESS_XPATH = "//h3[@class='t-title t-title--h5 u-mt--0'][text()='Kontaktní adresa']"; + String BACK_BUTTON_XPATH = "//button[@data-testid='Button'][text()='Zpět']"; + String SUBMIT_BUTTON_XPATH = "//button[@data-testid='submit'][text()='Pokračovat']"; + + @CheckElementPresent(TITLE_PERSONAL_DETAIL_ADDRESS_XPATH) + PersonalDetailAddressPage checkTitlePersonalDetailAddress(); + + @CheckElementPresent(TITLE_BUILDING_SAVINGS_XPATH) + PersonalDetailAddressPage checkTitleBuildingSavings(); + + @CheckElementPresent(PERMANENT_ADDRESS_FORM_STREET_LABEL_XPATH) + PersonalDetailAddressPage checkPermanentAddressFormStreetLabel(); + + @CheckElementPresent(PERMANENT_ADDRESS_FORM_DESCRIPTIVE_NUMBER_LABEL_XPATH) + PersonalDetailAddressPage checkPermanentAddressFormDescriptiveNumberLabel(); + + @CheckElementPresent(PERMANENT_ADDRESS_FORM_ORIENTATION_NUMBER_LABEL_XPATH) + PersonalDetailAddressPage checkPermanentAddressFormOrientationNumberLabel(); + + @CheckElementPresent(PERMANENT_ADDRESS_FORM_TOWN_LABEL_XPATH) + PersonalDetailAddressPage checkPermanentAddressFormTownLabel(); + + @CheckElementPresent(PERMANENT_ADDRESS_FORM_ZIP_LABEL_XPATH) + PersonalDetailAddressPage checkPermanentAddressFormZipLabel(); + + @CheckElementPresent(PERMANENT_ADDRESS_FORM_COUNTRY_LABEL_XPATH) + PersonalDetailAddressPage checkPermanentAddressFormCountryLabel(); + + @CheckElementPresent(CHECKBOX_CONTACT_AND_PERMANENT_ADDRESS_XPATH) + PersonalDetailAddressPage checkCheckboxContactAndPermanentAddress(); + + @Click(CHECKBOX_CONTACT_SAME_AS_PERMANENT_XPATH) + PersonalDetailAddressPage clickOnCheckboxContactSameAsPermanent(); + + @CheckElementPresent(TITLE_CONTACT_ADDRESS_XPATH) + PersonalDetailAddressPage checkTitleContactAddress(); + + @CheckElementPresent(BACK_BUTTON_XPATH) + PersonalDetailAddressPage checkBackButton(); + + @Click(SUBMIT_BUTTON_XPATH) + AmlQuestionnairePage clickOnSubmit(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/savings/PersonalDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/PersonalDetailPage.java new file mode 100644 index 0000000..e15827e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/PersonalDetailPage.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.newib.savings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.savings.PersonalDetailPage.TITLE_PERSONAL_DETAIL_XPATH; + +@Wait(value = {TITLE_PERSONAL_DETAIL_XPATH}, waitSecondsForElement = 30) +public interface PersonalDetailPage extends NewIbPageFlow { + + String TITLE_PERSONAL_DETAIL_XPATH = "//h2[@class='t-title t-title--h4'][text()='Máme správně Vaše údaje?']"; + String TITLE_BUILDING_SAVINGS_XPATH = "//h1[@class='t-title t-title--h3 u-mb--xLarge'][text()='Stavební spoření']"; + String FIRST_NAME_LABEL_XPATH = "//label[@id='firstName_label'][text()='Jméno']"; + String LAST_NAME_LABEL_XPATH = "//label[@id='lastName_label'][text()='Příjmení']"; + String PHONE_NUMBER_LABEL_XPATH = "//label[@id='phoneNumber_label'][text()='Telefon']"; + String EMAIL_LABEL_XPATH = "//label[@id='email_label'][text()='E-mail']"; + String NATIONALITY_LABEL_XPATH = "//label[@id='nationality_label'][text()='Státní občanství']"; + String BIRTH_STATE_LABEL_XPATH = "//label[@id='birthState_label'][text()='Stát narození']"; + String BACK_BUTTON_XPATH = "//button[@data-testid='Button'][text()='Zpět']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='Button'][text()='Pokračovat']"; + + @CheckElementPresent(TITLE_PERSONAL_DETAIL_XPATH) + PersonalDetailPage checkTitlePersonalDetail(); + + @CheckElementPresent(TITLE_BUILDING_SAVINGS_XPATH) + PersonalDetailPage checkTitleBuildingSavings(); + + @CheckElementPresent(FIRST_NAME_LABEL_XPATH) + PersonalDetailPage checkFirstNameLabel(); + + @CheckElementPresent(LAST_NAME_LABEL_XPATH) + PersonalDetailPage checkLastNameLabel(); + + @CheckElementPresent(PHONE_NUMBER_LABEL_XPATH) + PersonalDetailPage checkPhoneNumberLabel(); + + @CheckElementPresent(EMAIL_LABEL_XPATH) + PersonalDetailPage checkEmailLabel(); + + @CheckElementPresent(NATIONALITY_LABEL_XPATH) + PersonalDetailPage checkNationalityLabel(); + + @CheckElementPresent(BIRTH_STATE_LABEL_XPATH) + PersonalDetailPage checkBirthStateLabel(); + + @CheckElementPresent(BACK_BUTTON_XPATH) + PersonalDetailPage checkBackButton(); + + @Click(CONTINUE_BUTTON_XPATH) + PersonalDetailAddressPage clickOnContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/savings/PrecontractPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/PrecontractPage.java new file mode 100644 index 0000000..37b62a2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/PrecontractPage.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.newib.savings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.savings.PrecontractPage.PRE_CONTRACTUAL_INFORMATION_TITLE_XPATH; + +@Wait(value = {PRE_CONTRACTUAL_INFORMATION_TITLE_XPATH}, waitSecondsForElement = 30) +public interface PrecontractPage extends NewIbPageFlow { + + String PRE_CONTRACTUAL_INFORMATION_TITLE_XPATH = "//h2[@class='t-title t-title--h4'][text()='Přečtěte si Předsmluvní informace']"; + String TITLE_BUILDING_SAVINGS_XPATH = "//h1[@class='t-title t-title--h3 u-mb--xLarge'][text()='Stavební spoření']"; + String AGREEMENT_CHECKBOX_XPATH = "//span[@class='f-checkbox__over']"; + String DECLINE_BUTTON_XPATH = "//button[@data-testid='decline'][text()='Nesouhlasím']"; + String GO_NEXT_BUTTON_XPATH = "//button[@data-testid='goNext'][text()='Souhlasím, pokračovat']"; + String AGREEMENT_TEXT_XPATH = "//span[@id='text-agreementCheckbox']//b[contains(text(), 'Prohlašuji, že jsem se seznámil s těmito dokumenty')]"; + String CONTRACT_TITLE_XPATH = "//h2[@class='t-title t-title--h4'][text()='Přečtěte si smlouvu s parametry produktu']"; + + @CheckElementPresent(PRE_CONTRACTUAL_INFORMATION_TITLE_XPATH) + PrecontractPage checkPreContractualInformationTitle(); + + @CheckElementPresent(TITLE_BUILDING_SAVINGS_XPATH) + PrecontractPage checkTitleBuildingSavings(); + + @Click(AGREEMENT_CHECKBOX_XPATH) + PrecontractPage clickOnAgreementCheckbox(); + + @CheckElementPresent(DECLINE_BUTTON_XPATH) + PrecontractPage checkDeclineButton(); + + @CheckElementPresent(AGREEMENT_TEXT_XPATH) + PrecontractPage checkAgreementText(); + + @Click(value = GO_NEXT_BUTTON_XPATH, andWait = @Wait(value = CONTRACT_TITLE_XPATH, waitSecondsForElement = 30)) + ContractPage clickGoNextButton(); + + @CustomAction + default PrecontractPage scrollToBottom() { + NewIbEndpoint ep = getEndpoint(NewIbEndpoint.class); + ep.scrollIntoView(AGREEMENT_CHECKBOX_XPATH); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/savings/RtvServicingPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/RtvServicingPage.java new file mode 100644 index 0000000..7ba70a7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/savings/RtvServicingPage.java @@ -0,0 +1,149 @@ +package cz.moneta.test.dsl.newib.savings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.savings.RtvServicingPage.RTV_SERVICING_TITLE_XPATH; + +@Wait(value = {RTV_SERVICING_TITLE_XPATH}, waitSecondsForElement = 30) +public interface RtvServicingPage extends NewIbPageFlow { + + String RTV_SERVICING_TITLE_XPATH = "//h1[@class='t-title t-title--h3 u-mb--xxLarge' and contains(text(), 'termínovaný vklad')]"; + String RTV_DEPOSIT_TITLE_XPATH = "//h1[@class='t-title t-title--h3 u-mb--xxLarge' and text()='Vklad na revolvingový termínovaný vklad']"; + String RTV_DEPOSIT_SOURCE_ACCOUNT_LABEL_XPATH = "//label[@id='sourceAccountId_label' and text()='Vložit z účtu']"; + String RTV_DEPOSIT_SOURCE_ACCOUNT_NUMBER_XPATH = "//button[@id='sourceAccountId_button' and @data-value='%s'][not(@disabled)]"; + String RTV_DEPOSIT_TEMPLATE_LABEL_XPATH = "//label[@id='template_label' and text()='Na účet']"; + String RTV_DESTINATION_ACCOUNT_PREFIX_LABEL_XPATH = "//label[@id='destinationAccountPrefix_label' and text()='Předčíslí']"; + String RTV_DESTINATION_ACCOUNT_NUMBER_LABEL_XPATH = "//label[@id='destinationAccountNumber_label' and text()='Číslo účtu']"; + String RTV_DESTINATION_ACCOUNT_BANK_LABEL_XPATH = "//label[@id='destinationAccountBank_label' and text()='Kód banky']"; + String RTV_DEPOSIT_AMOUNT_LABEL_XPATH = "//label[@id='amount_label' and text()='Částka']"; + String RTV_DEPOSIT_TEXT_XPATH = "//p[@data-testid='TextComponent']//small[normalize-space(.)='Aby vklad proběhl, mějte poslední pracovní den před dnem obnovy do 20:00 dostatečný zůstatek na účtu.']"; + String RTV_DUE_DATE_LABEL_XPATH = "//label[@id='dueDate_label' and text()='Datum splatnosti']"; + String RTV_DUE_DATE_FIELD_DISABLED_XPATH = "//input[@aria-labelledby='dueDate_label'][@disabled]"; + String RTV_CHANGE_TO_OTHER_DATE_XPATH = "//p[@data-testid='TextComponent']//small[normalize-space(.)='Změna k jinému datu než ke dni obnovy je zpoplatněna. Požádat o ni můžete na našich pobočkách nebo písemně (žádost musí být doručena před dnem obnovy).']"; + String RTV_DEPOSIT_AMOUNT_FIELD_XPATH = "//input[@id='amount']"; + String RTV_DEPOSIT_DESTINATION_ACCOUNT_NUMBER_XPATH = "//input[@data-testid='destinationAccountNumber' and @value='%s'][@disabled]"; + String RTV_SERVICING_CONTINUE_BUTTON_XPATH = "//button[@data-testid='rtv-deposit--continue' and text()='Pokračovat']"; + String RTV_SERVICING_CONTRACT_TITLE_XPATH = "//h2[@class='t-title t-title--h4' and text()='Prosím zkontrolujte dokument se změnami podle vašich požadavků']"; + String RTV_SERVICING_SIGN_BUTTON_XPATH = "//button[@data-testid='btn-contract-confirm' and text()='Podepsat']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String RTV_SERVICING_VICTORY_TEXT_XPATH = "//div[@data-testid='rtv-servicing-victory'][contains(., 'Přijali jsme vaši žádost') and contains(., 'Uskutečníme ji v den obnovy') and contains(., 'a najdete ji už teď v sekci Dokumenty.') and contains(., 'Pokud chcete žádost zrušit') and contains(., ', můžete to udělat nejpozději poslední pracovní den před dnem obnovy do 20:00 v detailu produktu.')]"; + String BACK_TO_DASHBOARD_BUTTON_XPATH = "//button[@data-testid='btn-primary-button' and text()='Zpět na Přehled']"; + String RTV_STORNO_TITLE_XPATH = "//h2[@class='t-title t-title--h4' and text()='Prosím zkontrolujte žádost o zrušení změn']"; + String RTV_STORNO_VICTORY_TEXT_XPATH = "//h3[normalize-space()='Hotovo!']/following-sibling::p[contains(., 'Vše, co bylo třeba, jsme podle vašeho přání zrušili. Žádost o zrušení najdete v sekci Dokumenty.')]"; + String RTV_WITHDRAWAL_SOURCE_ACCOUNT_LABEL_XPATH = "//label[@id='sourceAccountId_label' and text()='Výběr z účtu']"; + String RTV_WITHDRAWAL_SOURCE_ACCOUNT_NUMBER_XPATH = "//button[@id='sourceAccountId_button' and @data-value='%s'][@disabled]"; + String RTV_WITHDRAWAL_TITLE_XPATH = "//h1[@class='t-title t-title--h3 u-mb--xxLarge' and text()='Vybrat z účtu revolvingový termínovaný vklad']"; + String RTV_WITHDRAWAL_TEMPLATE_LABEL_XPATH = "//label[@id='template_label' and text()='Připsat na účet']"; + String RTV_WITHDRAWAL_AMOUNT_LABEL_XPATH = "//label[@id='rawAmount_label' and text()='Částka']"; + String RTV_WITHDRAWAL_AMOUNT_FIELD_XPATH = "//input[@id='rawAmount']"; + String RTV_CANCEL_TITLE_XPATH = "//h1[@class='t-title t-title--h3 u-mb--xxLarge' and text()='Vybrat vše a zrušit revolvingový termínovaný vklad']"; + String RTV_CANCEL_AMOUNT_FIELD_XPATH = "//input[@data-testid='rtv-amount' and @value='1 000 000'][@disabled]"; + String RTV_SERVICING_CANCEL_CONTINUE_BUTTON_XPATH = "//button[@data-testid='rtv-deposit--continue' and text()='Vybrat vše a zrušit účet']"; + String RTV_SERVICING_STORNO_BUTTON_ON_VICTORY = "//button[@data-testid='rtv-cancel-action-link' and text()='zrušit']"; + + + @CheckElementPresent(RTV_DEPOSIT_TITLE_XPATH) + RtvServicingPage checkRtvDepositTitle(); + + @CheckElementPresent(RTV_DEPOSIT_SOURCE_ACCOUNT_LABEL_XPATH) + RtvServicingPage checkRtvDepositSourceAccountLabel(); + + @CheckElementPresent(RTV_DEPOSIT_TEMPLATE_LABEL_XPATH) + RtvServicingPage checkRtvDepositTemplateLabel(); + + @CheckElementPresent(RTV_DESTINATION_ACCOUNT_PREFIX_LABEL_XPATH) + RtvServicingPage checkRtvDestinationAccountPrefixLabel(); + + @CheckElementPresent(RTV_DESTINATION_ACCOUNT_NUMBER_LABEL_XPATH) + RtvServicingPage checkRtvDestinationAccountNumberLabel(); + + @CheckElementPresent(RTV_DESTINATION_ACCOUNT_BANK_LABEL_XPATH) + RtvServicingPage checkRtvDestinationAccountBankLabel(); + + @CheckElementPresent(RTV_DEPOSIT_AMOUNT_LABEL_XPATH) + RtvServicingPage checkRtvDepositAmountLabel(); + + @CheckElementPresent(RTV_DEPOSIT_TEXT_XPATH) + RtvServicingPage checkRtvDepositText(); + + @CheckElementPresent(RTV_DUE_DATE_LABEL_XPATH) + RtvServicingPage checkRtvDueDateLabel(); + + @CheckElementPresent(RTV_DUE_DATE_FIELD_DISABLED_XPATH) + RtvServicingPage checkRtvDueDateFieldDisabled(); + + @CheckElementPresent(RTV_CHANGE_TO_OTHER_DATE_XPATH) + RtvServicingPage checkRtvChangeToOtherDate(); + + @TypeInto(value = RTV_DEPOSIT_AMOUNT_FIELD_XPATH) + RtvServicingPage fillDepositAmount(String amount); + + @Click(RTV_SERVICING_CONTINUE_BUTTON_XPATH) + RtvServicingPage clickOnContinue(); + + @CheckElementPresent(RTV_SERVICING_CONTRACT_TITLE_XPATH) + RtvServicingPage checkRtvServicingContractTitle(); + + @Click(RTV_SERVICING_SIGN_BUTTON_XPATH) + RtvServicingPage clickOnSignButton(); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + RtvServicingPage fillMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + RtvServicingPage clickOnContinueMobileKey(); + + @CheckElementPresent(RTV_SERVICING_VICTORY_TEXT_XPATH) + RtvServicingPage checkRtvServicingVictoryText(); + + @Click(BACK_TO_DASHBOARD_BUTTON_XPATH) + DashboardPage clickBackToDashboard(); + + @CheckElementPresent(RTV_STORNO_TITLE_XPATH) + RtvServicingPage checkRtvStornoTitle(); + + @CheckElementPresent(RTV_STORNO_VICTORY_TEXT_XPATH) + RtvServicingPage checkRtvStornoVictoryText(); + + @CheckElementPresent(value = RTV_DEPOSIT_DESTINATION_ACCOUNT_NUMBER_XPATH, isStringDynamicXpath = true) + RtvServicingPage checkRtvDepositDestinationAccountNumber(String account); + + @CheckElementPresent(value = RTV_DEPOSIT_SOURCE_ACCOUNT_NUMBER_XPATH, isStringDynamicXpath = true) + RtvServicingPage checkRtvSourceAccountNumberDeposit(String account); + + @CheckElementPresent(RTV_WITHDRAWAL_SOURCE_ACCOUNT_LABEL_XPATH) + RtvServicingPage checkRtvWithdrawalSourceAccountLabel(); + + @CheckElementPresent(RTV_WITHDRAWAL_TITLE_XPATH) + RtvServicingPage checkRtvWithdrawalTitle(); + + @CheckElementPresent(value = RTV_WITHDRAWAL_SOURCE_ACCOUNT_NUMBER_XPATH, isStringDynamicXpath = true) + RtvServicingPage checkRtvSourceAccountNumberWithdrawal(String account); + + @CheckElementPresent(RTV_WITHDRAWAL_TEMPLATE_LABEL_XPATH) + RtvServicingPage checkRtvWithdrawalTemplateLabel(); + + @CheckElementPresent(RTV_WITHDRAWAL_AMOUNT_LABEL_XPATH) + RtvServicingPage checkRtvWithdrawalAmountLabel(); + + @TypeInto(value = RTV_WITHDRAWAL_AMOUNT_FIELD_XPATH) + RtvServicingPage fillWithdrawalAmount(String amount); + + @CheckElementPresent(RTV_CANCEL_TITLE_XPATH) + RtvServicingPage checkRtvCancelTitle(); + + @CheckElementPresent(RTV_CANCEL_AMOUNT_FIELD_XPATH) + RtvServicingPage checkRtvCancelAmount(); + + @Click(RTV_SERVICING_CANCEL_CONTINUE_BUTTON_XPATH) + RtvServicingPage clickOnContinueRtvServicingCancelButton(); + + @Click(RTV_SERVICING_STORNO_BUTTON_ON_VICTORY) + RtvServicingPage clickOnRtvServicingStornoButtonOnVictory(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/SettingsModalPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/SettingsModalPage.java new file mode 100644 index 0000000..05d96f7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/SettingsModalPage.java @@ -0,0 +1,118 @@ +package cz.moneta.test.dsl.newib.settings; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.dsl.newib.settings.accounts.AccountsSettingsPage; +import cz.moneta.test.dsl.newib.settings.cards.CardsSettingsPage; +import cz.moneta.test.dsl.newib.settings.communication.contacts.ChangePasswordPage; +import cz.moneta.test.dsl.newib.settings.disponents.DisponentsSettingsPage; +import cz.moneta.test.dsl.newib.settings.mobileapplication.AboutTheSmartBankaPage; +import cz.moneta.test.dsl.newib.settings.communication.contacts.ContactsPage; +import cz.moneta.test.dsl.newib.settings.envelopes.EnvelopesPage; +import cz.moneta.test.dsl.newib.settings.communication.contacts.PersonalAndContactDetailsPage; +import cz.moneta.test.dsl.newib.settings.payments.directdebit.DirectDebitsPage; +import cz.moneta.test.dsl.newib.settings.payments.sipo.SipoOrdersPage; +import cz.moneta.test.dsl.newib.settings.payments.standingorders.StandingOrdersPage; +import cz.moneta.test.dsl.newib.settings.payments.templates.TemplatesPage; +import cz.moneta.test.dsl.newib.settings.payments.trustedcontacts.TrustedContactsPage; +import cz.moneta.test.dsl.newib.settings.security.AuthorizationPage; +import cz.moneta.test.dsl.newib.settings.security.LimitsSettingsPage; +import cz.moneta.test.dsl.newib.settings.workingonproduct.WorkingModalPage; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.settings.SettingsModalPage.*; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Wait(value = {SETTINGS_MODAL_CLOSE_BTN_XPATH}, waitSecondsForElement = 30) +public interface SettingsModalPage extends NewIbPageFlow, HorizontalMainMenu { + + String SETTINGS_TITLE_XPATH = "//h2[@class='t-title t-title--h3 u-mb--0'][text()='Nastavení']"; + String STANDING_ORDERS_BTN_XPATH = "//button[@data-testid='settings_crossroad_payments-standingOrders']"; + String TEMPLATES_BTN_XPATH = "//button[@data-testid='settings_crossroad_payments-templates']"; + String DIRECT_DEBIT_BTN_XPATH = "//button[@data-testid='settings_crossroad_payments-directDebits']"; + String SIPO_BTN_XPATH = "//button[@data-testid='settings_crossroad_payments-sipos']"; + String THEME_SWITCHER_XPATH = "//div[@data-testid='themeSwitcher_toggle']"; + String SETTINGS_MODAL_CLOSE_BTN_XPATH = "//button[@data-testid='settings_modal-close']"; + String PERSONAL_AND_CONTACT_DETAILS_BTN_XPATH = "//button[@data-testid='settings_crossroad_personal-personalInformation']"; + String CONTACTS_BTN_XPATH = "//button[@data-testid='settings_crossroad_personal-contacts']"; + String AUTHORIZATION_BTN_XPATH = "//button[@data-testid='settings_crossroad_security-authorizations']"; + String ABOUT_SMART_BANKA_BTN_XPATH = "//button[@data-testid='settings_crossroad_mobileApp-aboutApp']"; + String SAVING_ACCOUNT_BTN_XPATH = "//button[@data-testid='settings_crossroad_products-savingsAccounts']"; + String CURRENT_ACCOUNT_BTN_XPATH = "//button[@data-testid='settings_crossroad_products-currentAccounts']"; + String LIMITS_BTN_XPATH = "//button[@data-testid='settings_crossroad_security-dispoLimits']"; + String TRUSTED_CONTACTS_BTN_XPATH = "//button[text()='Důvěryhodní příjemci']"; + String ENVELOPES_BTN_XPATH = "//button[@data-testid='settings_crossroad_products-envelopes']"; + String CHANGE_ID_BTN_XPATH = "//button[@data-testid='settings_crossroad_security-idChange']"; + String ACCOUNTS_BTN_XPATH = "//button[@data-testid='settings_crossroad_products-%s']"; + String CHANGE_PASSWORD_BUTTON_XPATH = "//button[@data-testid='settings_crossroad_personal-password' and text()='Změna hesla']"; + String CARDS_BUTTON_XPATH = "//button[@data-testid='settings_crossroad_products-cards' and text()='Karty']"; + String DISPONENTS_BUTTON_XPATH = "//button[@data-testid='settings_crossroad_profi-eDisponents' and text()='Správa eDisponentů']"; + + @Click(value = STANDING_ORDERS_BTN_XPATH, andWait = @Wait(explicitWaitSeconds = 1)) + StandingOrdersPage clickOnStandingOrders(); + + @Click(TEMPLATES_BTN_XPATH) + TemplatesPage clickOnTemplates(); + + @Click(DIRECT_DEBIT_BTN_XPATH) + DirectDebitsPage clickOnDirectDebit(); + + @Click(SIPO_BTN_XPATH) + SipoOrdersPage clickOnSipo(); + + @CheckElementPresent(THEME_SWITCHER_XPATH) + SettingsModalPage checkThemeSwitcherIsPresent(); + + @CheckElementPresent(SETTINGS_TITLE_XPATH) + SettingsModalPage checkSettingsTitleIsPresent(); + + @Click(SETTINGS_MODAL_CLOSE_BTN_XPATH) + DashboardPage closeSettingsModal(); + + @CustomAction + default SettingsModalPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "modal/settings"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @Click(CONTACTS_BTN_XPATH) + ContactsPage clickOnContacts(); + + @Click(AUTHORIZATION_BTN_XPATH) + AuthorizationPage clickOnAuthorizations(); + + @Click(ABOUT_SMART_BANKA_BTN_XPATH) + AboutTheSmartBankaPage clickOnAboutTheSmartBanka(); + + @Click(LIMITS_BTN_XPATH) + LimitsSettingsPage clickOnLimits(); + + @Click(value = TRUSTED_CONTACTS_BTN_XPATH, andWait = @Wait(explicitWaitSeconds = 1)) + TrustedContactsPage clickOnTrustedContacts(); + + @Click(PERSONAL_AND_CONTACT_DETAILS_BTN_XPATH) + PersonalAndContactDetailsPage clickOnPersonalAndContactDetailsSettings(); + + @Click(value = ENVELOPES_BTN_XPATH) + EnvelopesPage clickOnEnvelopes(); + + @Click(CHANGE_ID_BTN_XPATH) + WorkingModalPage clickOnChangeId(); + + @Click(value = ACCOUNTS_BTN_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + AccountsSettingsPage clickOnAccounts(String account); + + @Click(CHANGE_PASSWORD_BUTTON_XPATH) + ChangePasswordPage clickOnChangePasswordButton(); + + @Click(CARDS_BUTTON_XPATH) + CardsSettingsPage clickOnCards(); + + @Click(DISPONENTS_BUTTON_XPATH) + DisponentsSettingsPage clickOnDisponents(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/accounts/AccountsSettingsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/accounts/AccountsSettingsPage.java new file mode 100644 index 0000000..f561b57 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/accounts/AccountsSettingsPage.java @@ -0,0 +1,95 @@ +package cz.moneta.test.dsl.newib.settings.accounts; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = AccountsSettingsPage.BACK_TO_SETTINGS_XPATH, waitSecondsForElement = 30) +public interface AccountsSettingsPage extends NewIbPageFlow { + String BACK_TO_SETTINGS_XPATH = "//button[@data-testid='back-to-settings-crossroad']"; + String ACCOUNT_XPATH = "//tr[@role='button' and contains(@class,'c-contentTableRow')]"; + String ACCOUNT_NAME_XPATH = "//span[@data-testid='item-info-customNameForFrontend']"; + String ACCOUNT_NUMBER_XPATH = "//span[@data-testid='item-info-accountNumber']"; + String ACCOUNT_IBAN_XPATH = "//span[@data-testid='item-info-iban']"; + String ACCOUNT_BIC_XPATH = "//span[@data-testid='item-info-bic']"; + String ACCOUNT_TYPE_XPATH = "//span[@data-testid='item-info-feePlanName']"; + String ACCOUNT_STATEMENT_FREQUENCY_XPATH = "//span[@data-testid='item-info-statementPeriod']"; + String ACCOUNT_STATEMENT_DISTRIBUTION_XPATH = "//span[@data-testid='item-info-statementDistributionType']"; + String NAME_BUTTON_XPATH = "//button[@data-testid='name-btn']"; + String CHANGE_NAME_INPUT_XPATH = "//input[@id='customName']"; + String SAVE_ACCOUNT_NAME_XPATH = "//button[@data-testid='save-account-name']"; + String CHANGE_STATEMENT_FREQUENCY_XPATH = "//button[@data-testid='statementPeriod-btn']"; + String CHANGE_STATEMENT_TITLE_XPATH = "//h2[@class='t-title t-title--h3 c-modal__title']"; + String BACK_BUTTON_XPATH = "//button[@data-testid='back-button']"; + String CHANGE_STATEMENT_DISTRIBUTION_XPATH = "//button[@data-testid='statementDistributionType-btn']"; + String SET_AS_PREFERRED_BTN_XPATH = "//button[@data-testid='account-set-as-preffered-button']"; + String CONFIRM_BUTTON_XPATH = "//button[@data-testid='confirm-button']"; + String SET_AS_PREFERRED_TITLE_XPATH = "//h2[normalize-space(text()) = 'Nastavili jste preferovaný účet.']"; + String PREFERRED_ACCOUNT_XPATH = "//div[normalize-space(text())='Preferovaný účet']"; + String CLOSE_ACCOUNT_BUTTON_XPATH = "//button[@data-testid='account-close']"; + String CLOSE_ACCOUNT_TITLE_XPATH = "//h1[contains(normalize-space(text()), 'Zrušení účtu')]"; + + @Click(ACCOUNT_XPATH) + AccountsSettingsPage clickOnAccount(); + + @Wait(explicitWaitSeconds = 1) + @CheckElementContent(value = ACCOUNT_NAME_XPATH, by = Lookup.XPATH) + AccountsSettingsPage checkAccountName(String accountName); + + @CheckElementContent(value = ACCOUNT_NUMBER_XPATH, by = Lookup.XPATH) + AccountsSettingsPage checkAccountNumber(String accountNumber); + + @CheckElementContent(value = ACCOUNT_IBAN_XPATH, by = Lookup.XPATH) + AccountsSettingsPage checkIban(String accountIban); + + @CheckElementContent(value = ACCOUNT_BIC_XPATH, by = Lookup.XPATH) + AccountsSettingsPage checkBic(String accountBic); + + @CheckElementContent(value = ACCOUNT_TYPE_XPATH, by = Lookup.XPATH) + AccountsSettingsPage checkAccountType(String accountType); + + @CheckElementContent(value = ACCOUNT_STATEMENT_FREQUENCY_XPATH, by = Lookup.XPATH) + AccountsSettingsPage checkStatementFrequency(String statementFrequency); + + @CheckElementContent(value = ACCOUNT_STATEMENT_DISTRIBUTION_XPATH, by = Lookup.XPATH) + AccountsSettingsPage checkStatementDistribution(String statementDistribution); + + @Wait(explicitWaitSeconds = 1) + @Click(NAME_BUTTON_XPATH) + AccountsSettingsPage clickOnChangeName(); + + @TypeInto(CHANGE_NAME_INPUT_XPATH) + AccountsSettingsPage typeIntoName(String newName); + + @Click(SAVE_ACCOUNT_NAME_XPATH) + AccountsSettingsPage saveAccountName(); + + @Click(CHANGE_STATEMENT_FREQUENCY_XPATH) + AccountsSettingsPage clickOnChangeStatementFrequency(); + + @CheckElementContent(value = CHANGE_STATEMENT_TITLE_XPATH, by = Lookup.XPATH) + AccountsSettingsPage checkStatementTitle(String accountName); + + @Click(BACK_BUTTON_XPATH) + AccountsSettingsPage clickOnBack(); + + @Click(CHANGE_STATEMENT_DISTRIBUTION_XPATH) + AccountsSettingsPage clickOnChangeStatementDistribution(); + + @Click(SET_AS_PREFERRED_BTN_XPATH) + AccountsSettingsPage clickOnSetAsPreferred(); + + @Click(CONFIRM_BUTTON_XPATH) + AccountsSettingsPage clickOnConfirm(); + + @CheckElementPresent(SET_AS_PREFERRED_TITLE_XPATH) + AccountsSettingsPage checkSetAsPreferredTitle(); + + @CheckElementPresent(PREFERRED_ACCOUNT_XPATH) + AccountsSettingsPage checkPreferredAccount(); + + @Click(CLOSE_ACCOUNT_BUTTON_XPATH) + AccountsSettingsPage clickOnCloseAccount(); + + @CheckElementPresent(CLOSE_ACCOUNT_TITLE_XPATH) + AccountsSettingsPage checkCloseAccountTitle(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/cards/CardsSettingsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/cards/CardsSettingsPage.java new file mode 100644 index 0000000..24363a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/cards/CardsSettingsPage.java @@ -0,0 +1,284 @@ +package cz.moneta.test.dsl.newib.settings.cards; + +import cz.moneta.test.harness.support.web.*; +import cz.moneta.test.dsl.newib.NewIbPageFlow; + +import static cz.moneta.test.dsl.newib.settings.cards.CardsSettingsPage.TITLE_XPATH; + +@Wait(value = {TITLE_XPATH}, waitSecondsForElement = 30) +public interface CardsSettingsPage extends NewIbPageFlow { + String TITLE_XPATH = "//h2[@class='t-title t-title--h3' and text()='Karty']"; + String CREDIT_CARDS_TAB_XPATH = "//span[@data-testid='credit-cards-tab' and text()='Kreditní']"; + String NO_CREDIT_CARDS_XPATH = "//div[@class='u-colorSecondary u-m--medium' and text()='Momentálně nemáte žádné kreditní karty.']"; + String DEBIT_CARDS_TAB_XPATH = "//span[@data-testid='debit-cards-tab' and text()='Debetní']"; + String DEBIT_CARDS_TO_THE_ACCOUNT_XPATH = "//span[@data-testid='TextComponent']/small[normalize-space(.)='Debetní karty k účtu']"; + String CARDS_TO_THE_ACCOUNT_XPATH = "//h5[@class='t-title t-title--h5 u-mb--0 u-mr--0' and text()='Karty k účtu (2)']"; + String CARD_DETAIL_BUTTON_XPATH = "//div[@class='c-card u-p--xSmall u-pb--0 item-row']"; + String CARD_DETAIL_TITLE_XPATH = "//h3[@class='t-title t-title--h5 u-pl--large' and text()='Informace o kartě, nastavení']"; + String CARD_DETAIL_FULL_XPATH = "//table[contains (., 'Číslo účtu') and contains(., 'Stav') and contains(., 'Typ karty') and contains(., 'Platnost do') and contains(., 'Limit pro výběr z bankomatu (denní)') and contains(., 'Limit pro platby na internetu (denní)') and contains(., 'Limit pro platby v obchodech') and contains(., 'a MO/TO (denní)') and contains(., 'Povolení internetových a MO/TO plateb') and contains(., 'Platby s konverzí DCC') and contains(., '3D Secure') and contains(., 'Číslo pro 3D Secure SMS') and contains(., 'ePIN')]"; + String ADJUST_SETTINGS_BUTTON_XPATH = "//button[@data-testid='Button' and text()='Upravit nastavení']"; + String ONLINE_PAYMENT_TITLE_XPATH = "//h5[@class='t-title t-title--h5' and text()='Placení na internetu']"; + String INTERNET_AND_MOTO_PAYMENTS_LABEL_XPATH = "//label[@class='f-label2' and text()='Povolení internetových a MO/TO plateb']"; + String INTERNET_AND_MOTO_PAYMENTS_TURN_ON_XPATH = "//li[@id='allowInternetMOTOTransactions_value-true']"; + String INTERNET_AND_MOTO_PAYMENTS_TURN_OFF_XPATH = "//li[@id='allowInternetMOTOTransactions_value-false']"; + String DCC_TURN_OFF_XPATH = "//li[@id='allowDccTransactions_value-false']"; + String DCC_TURN_ON_XPATH = "//li[@id='allowDccTransactions_value-true']"; + String ATM_WITHDRAWAL_LIMIT_XPATH = "//input[@id='limitAtm']"; + String ONLINE_PAYMENTS_LIMIT_XPATH = "//input[@id='limitMoto']"; + String PAYMENTS_IN_STORES_LIMIT_XPATH = "//input[@id='limitCashlessTrans']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='submit']"; + String VALIDATION_MESSAGE_ATM_LIMIT_XPATH = "//div[@id='limitAtm_errorMessage' and text()='Částka přesahuje maximální povolený limit 150000 CZK.']"; + String VALIDATION_MESSAGE_ONLINE_PAYMENTS_LIMIT_XPATH = "//div[@id='limitMoto_errorMessage' and text()='Částka přesahuje maximální povolený limit 150000 CZK.']"; + String VALIDATION_PAYMENTS_IN_STORES_LIMIT_XPATH = "//div[@id='limitCashlessTrans_errorMessage' and text()='Částka přesahuje maximální povolený limit 150000 CZK.']"; + String SUMMARY_TITLE_XPATH = "//h2[@class='t-title t-title--h3' and text()='Nastavení karty']"; + String SUMMARY_INTERNET_AND_MOTO_PAYMENTS_XPATH = "//span[@data-testid='item-info-allowInternetMOTOTransactions']"; + String SUMMARY_DCC_XPATH = "//span[@data-testid='item-info-dcc']"; + String SUMMARY_ATM_WITHDRAWAL_LIMIT_XPATH = "//span[@data-testid='item-info-atmWithdrawalLimit' and contains(., '150') and contains(., '000')]"; + String SUMMARY_ONLINE_PAYMENTS_LIMIT_XPATH = "//span[@data-testid='item-info-internetPaymentsLimit' and contains(., '150') and contains(., '000')]"; + String SUMMARY_INTERNET_AND_MOTO_PAYMENTS_LIMIT_XPATH = "//span[@data-testid='item-info-paymentsInStoresAndMoToLimitDebit' and contains(., '150') and contains(., '000')]"; + String SUMMARY_ACCEPT_BUTTON_XPATH = "//button[@data-testid='submit' and text()='Potvrdit']"; + + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String VICTORY_TITLE_AND_TEXT_XPATH = "//h2[@class='t-title t-title--h4' and text()='Požadavek změny nastavení karty jsme přijali ke zpracování']"; + String BACK_TO_CARDS_BUTTON_XPATH = "//button[@data-testid='go-back-to-cards' and text()='Zpět na detail karet']"; + String DCC_ALERT_XPATH = "//div[@class='c-alert__text' and text()='Obvykle mají nevýhodný kurz při převodu měn. Doporučujeme je vypnout.']"; + String BLOCK_AND_CANCEL_CARD_BUTTON_XPATH = "//button[@class='c-btn c-btn--small c-btn--border c-btn--error' and text()='Zablokovat / Zrušit kartu']"; + String CARD_BLOCKING_TITLE_XPATH = "//h1[@class='t-title t-title--h3' and text()='Blokace karty online']"; + String CARD_BLOCKING_TYPE_TITLE_XPATH = "//h2[@class='t-title t-title--h5' and text()='Zvolte typ blokace karty']"; + String CARD_BLOCKING_TYPES_XPATH = "//span[@class='f-radio__text' and contains(., 'Dočasně zablokovat') or contains(., 'Zablokovat a vydat novou') or contains(., 'Zablokovat a zrušit')]"; + String CARD_BLOCKING_TYPES_DETAILS_XPATH = "//small[@class='u-textXSmall' and contains(., 'Pokud kartu teprve hledáte a chcete se k ní brzy vrátit, kartu zablokujeme na 30 dní. Během té doby budete mít možnost ji odblokovat nebo trvale zablokovat.') or contains(., 'Pokud je karta v nebezpečí, ihned ji zrušíme a odešleme novou.') or contains(., 'Pokud o kartu nemáte zájem, zrušíme ji a kdykoliv můžete požádat o novou.')]"; + String OTHER_SETTINGS_TITLE_XPATH = "//h2[@class='t-title t-title--h5' and text()='Další nastavení']"; + String SEND_SMS_TEXT_XPATH = "//label[@id='unblockNotificationEnabled-label' and text()='Zaslat SMS o odblokování']"; + String BLOCK_AND_NEW_ONE_RADIOBUTTON_XPATH = "//li[@id='type_value-RENEWAL']"; + String REASON_FOR_BLOCKING_TITLE_XPATH = "//h2[@class='t-title t-title--h5' and text()='Důvod blokace']"; + String THEFT_CARD_XPATH = "//span[@id='text-blockReasonCode-THEFT' and contains(., 'Krádež nebo zneužití')]"; + String LOSS_CARD_XPATH = "//span[@id='text-blockReasonCode-LOSS' and contains(., 'Ztráta')]"; + String BLOCK_AND_CANCEL_RADIOBUTTON_XPATH = "//li[@id='type_value-CANCEL']"; + String TEMPORARILY_BLOCK_RADIOBUTTON_XPATH = "//li[@id='type_value-BLOCK']"; + String SMS_TOGGLE_XPATH = "//button[@id='unblockNotificationEnabled']"; + String CONTINUE_BLOCKING_CARD_BUTTON_XPATH = "//button[@data-testid='cardBlockSelectionNext' and text()='Pokračovat']"; + String VALIDATION_MESSAGE_UNBLOCK_MOBILE_NUMBER_XPATH = "//div[@id='unblockMobileNumber_errorMessage']"; + String UNBLOCK_MOBILE_NUMBER_XPATH = "//input[@id='unblockMobileNumber']"; + String CARD_BLOCKING_VICTORY_TITLE_XPATH = "//h2[@class='t-title t-title--h4 styles_title__NAx0Q' and contains(., 'Kartu udržíme pod zámkem do')]"; + String CARD_BLOCKING_VICTORY_TEXT_XPATH = "//p[@data-testid='TextComponent' and contains(normalize-space(.), 'Po tomto datu ji opět odblokujeme a vás informujeme SMS na číslo +420 702 111 111.') and contains(normalize-space(.), 'Můžete ji do té doby kdykoli odblokovat nebo trvale zablokovat.')]"; + String BACK_BUTTON_ON_VICTORY_SCREEN_XPATH = "//button[@data-testid='card-block-victoryNext' and text()='Zpět na kartu']"; + String UNBLOCK_BUTTON_XPATH = "//button[@class='c-btn c-btn--small c-btn--border c-btn--primary c-compact-buttons__button' and text()='Odblokovat kartu']"; + String CARD_BLOCKING_TYPES_ON_UNBLOCK_SCREEN_XPATH = "//span[@class='f-radio__text' and contains(., 'Odblokovat') or contains(., 'Zablokovat a vydat novou') or contains(., 'Zablokovat a zrušit')]"; + String CARD_UNBLOCKING_VICTORY_TITLE_XPATH = "//h2[@class='t-title t-title--h4 styles_title__NAx0Q' and contains(., 'Karta je znovu aktivní')]"; + String CARD_UNBLOCKING_VICTORY_TEXT_XPATH = "//p[@data-testid='TextComponent' and contains(., 'Můžete s ní začít okamžitě platit.')]"; + String CREDIT_CARD_DETAIL_FULL_XPATH = "//table[contains (., 'Číslo účtu') and contains(., 'Číslo smlouvy') and contains(., 'Stav') and contains(., 'Typ karty') and contains(., 'Platnost do') and contains(., 'Limit pro výběr z bankomatu (denní)') and contains(., 'Limit pro platby na internetu (denní)') and contains(., 'Limit pro platby v obchodech') and contains(., 'MO/TO, příkazy k úhradě (denní)') and contains(., 'Povolení internetových a MO/TO plateb') and contains(., 'Platby s konverzí DCC') and contains(., '3D Secure') and contains(., 'Číslo pro 3D Secure SMS') and contains(., 'ePIN')]"; + String CREDIT_CARD_DETAIL_TITLE_XPATH = "//h5[@class='t-title t-title--h5' and text()='Zůstatky a úvěrový rámec']"; + String CREDIT_CARD_BALANCES_AND_LIMIT_DETAIL_XPATH = "//table[contains (., 'Zbývající částka k čerpání') and contains(., 'Pro výběr v hotovosti zbývá') and contains(., 'Aktuálně vyčerpáno') and contains(., 'Celkový úvěrový rámec') and contains(., 'Pro výběr v hotovosti') and contains(., 'Minimální měsíční splátka') and contains(., 'Nejbližší minimální splátka') and contains(., 'Poslední splátka')]"; + String CREDIT_CARD_BENEFIT_PACKAGES_TITLE_XPATH = "//h3[@class='t-title t-title--h5' and text()='Balíčky výhod']"; + String CREDIT_CARD_BENEFIT_PACKAGES_DETAIL_XPATH = "//table[contains (., 'Balíček výhod') and contains(., 'Platnost od')]"; + String CREDIT_LIMIT_INCREASE_BUTTON_XPATH = "//button[@class='c-btn c-btn--small c-btn--border c-btn--primary' and text()='Navýšení úvěrového rámce']"; + String CREDIT_LIMIT_INCREASE_MODAL_XPATH = "//h2[@class='t-title t-title--h3 c-modal__title' and text()='Na této funkci pracujeme']"; + String CREDIT_LIMIT_INCREASE_CLOSE_MODAL_BUTTON_XPATH = "//button[@class='c-btn c-btn--border c-btn--primary' and text()='Zavřít']"; + String CREDIT_CARD_XPATH = "//small[normalize-space(.)='MoneyCard Smart']"; + + @Click(CREDIT_CARDS_TAB_XPATH) + CardsSettingsPage clickOnCreditCardsTab(); + + @CheckElementPresent(NO_CREDIT_CARDS_XPATH) + CardsSettingsPage checkNoCreditCards(); + + @Click(DEBIT_CARDS_TAB_XPATH) + CardsSettingsPage clickOnDebitCardsTab(); + + @Wait(value = DEBIT_CARDS_TO_THE_ACCOUNT_XPATH, until = Until.VISIBLE) + @Click(DEBIT_CARDS_TO_THE_ACCOUNT_XPATH) + CardsSettingsPage clickOnDebitCardsToTheAccount(); + + @Wait(value = CARDS_TO_THE_ACCOUNT_XPATH, until = Until.VISIBLE) + @Click(CARDS_TO_THE_ACCOUNT_XPATH) + CardsSettingsPage clickOnCardsToTheAccount(); + + @Wait(value = CARD_DETAIL_BUTTON_XPATH, until = Until.VISIBLE) + @Click(CARD_DETAIL_BUTTON_XPATH) + CardsSettingsPage clickOnCardDetail(); + + @Wait(value = CARD_DETAIL_TITLE_XPATH, until = Until.VISIBLE) + @CheckElementPresent(CARD_DETAIL_TITLE_XPATH) + CardsSettingsPage checkCardDetailTitle(); + + @CheckElementPresent(CARD_DETAIL_FULL_XPATH) + CardsSettingsPage checkCardDetailFull(); + + @Click(ADJUST_SETTINGS_BUTTON_XPATH) + CardsSettingsPage clickOnAdjustSettings(); + + @CheckElementPresent(ONLINE_PAYMENT_TITLE_XPATH) + CardsSettingsPage checkOnlinePaymentTitle(); + + @CheckElementPresent(INTERNET_AND_MOTO_PAYMENTS_LABEL_XPATH) + CardsSettingsPage checkLabelInternetAndMotoPayments(); + + @Click(INTERNET_AND_MOTO_PAYMENTS_TURN_ON_XPATH) + CardsSettingsPage clickOnInternetAndMotoPaymentsTurnOn(); + + @Click(INTERNET_AND_MOTO_PAYMENTS_TURN_OFF_XPATH) + CardsSettingsPage clickOnInternetAndMotoPaymentsTurnOff(); + + @Click(DCC_TURN_OFF_XPATH) + CardsSettingsPage clickOnDccTurnOff(); + + @Click(DCC_TURN_ON_XPATH) + CardsSettingsPage clickOnDccTurnOn(); + + @TypeInto(value = ATM_WITHDRAWAL_LIMIT_XPATH, clear = true) + CardsSettingsPage fillAtmWithdrawalLimit(String limit); + + @TypeInto(value = ONLINE_PAYMENTS_LIMIT_XPATH, clear = true) + CardsSettingsPage fillOnlinePaymentsLimit(String limit); + + @TypeInto(value = PAYMENTS_IN_STORES_LIMIT_XPATH, clear = true) + CardsSettingsPage fillPaymentsInStoresLimit(String limit); + + @Click(CONTINUE_BUTTON_XPATH) + CardsSettingsPage clickOnContinue(); + + @CheckElementPresent(VALIDATION_MESSAGE_ATM_LIMIT_XPATH) + CardsSettingsPage checkValidationMessageAtmLimit(); + + @CheckElementPresent(VALIDATION_MESSAGE_ONLINE_PAYMENTS_LIMIT_XPATH) + CardsSettingsPage checkValidationMessageOnlinePaymentsLimit(); + + @CheckElementPresent(VALIDATION_PAYMENTS_IN_STORES_LIMIT_XPATH) + CardsSettingsPage checkValidationPaymentsInStoresLimit(); + + @CheckElementPresent(SUMMARY_TITLE_XPATH) + CardsSettingsPage checkSummaryTitle(); + + @CheckElementContent(value = SUMMARY_INTERNET_AND_MOTO_PAYMENTS_XPATH, by = Lookup.XPATH) + CardsSettingsPage checkSummaryInternetAndMotoPaymentsLabel(String choice); + + @CheckElementContent(value = SUMMARY_DCC_XPATH, by = Lookup.XPATH) + CardsSettingsPage checkSummaryDcc(String choice); + + @CheckElementPresent(SUMMARY_ATM_WITHDRAWAL_LIMIT_XPATH) + CardsSettingsPage checkSummaryAtmWithdrawalLimit(); + + @CheckElementPresent(SUMMARY_ONLINE_PAYMENTS_LIMIT_XPATH) + CardsSettingsPage checkSummaryOnlinePaymentsLimit(); + + @CheckElementPresent(SUMMARY_INTERNET_AND_MOTO_PAYMENTS_LIMIT_XPATH) + CardsSettingsPage checkSummaryInternetAndMotoPaymentsLimit(); + + @Click(SUMMARY_ACCEPT_BUTTON_XPATH) + CardsSettingsPage clickOnSummaryAcceptButton(); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + CardsSettingsPage fillMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + CardsSettingsPage clickOnContinueMobileKey(); + + @CheckElementPresent(VICTORY_TITLE_AND_TEXT_XPATH) + CardsSettingsPage checkVictoryTitle(); + + @Click(BACK_TO_CARDS_BUTTON_XPATH) + CardsSettingsPage clickBackToCardsButton(); + + @CheckElementPresent(DCC_ALERT_XPATH) + CardsSettingsPage checkDccAlert(); + + @Click(BLOCK_AND_CANCEL_CARD_BUTTON_XPATH) + CardsSettingsPage clickOnBlockAndCancelCardButton(); + + @CheckElementPresent(CARD_BLOCKING_TITLE_XPATH) + CardsSettingsPage checkBlockCardTitle(); + + @CheckElementPresent(CARD_BLOCKING_TYPE_TITLE_XPATH) + CardsSettingsPage checkCardBlockingTypeTitle(); + + @CheckElementPresent(CARD_BLOCKING_TYPES_XPATH) + CardsSettingsPage checkCardBlockingTypes(); + + @CheckElementPresent(CARD_BLOCKING_TYPES_DETAILS_XPATH) + CardsSettingsPage checkCardBlockingTypesDetails(); + + @CheckElementPresent(OTHER_SETTINGS_TITLE_XPATH) + CardsSettingsPage checkOtherSettingsTitle(); + + @CheckElementPresent(SEND_SMS_TEXT_XPATH) + CardsSettingsPage checkSendSmsText(); + + @Click(BLOCK_AND_NEW_ONE_RADIOBUTTON_XPATH) + CardsSettingsPage clickOnBlockAndNewOne(); + + @CheckElementPresent(REASON_FOR_BLOCKING_TITLE_XPATH) + CardsSettingsPage checkReasonForBlockingTitle(); + + @CheckElementPresent(THEFT_CARD_XPATH) + CardsSettingsPage checkTheftCard(); + + @CheckElementPresent(LOSS_CARD_XPATH) + CardsSettingsPage checkLossCard(); + + @Click(BLOCK_AND_CANCEL_RADIOBUTTON_XPATH) + CardsSettingsPage clickOnBlockAndCancel(); + + @Click(TEMPORARILY_BLOCK_RADIOBUTTON_XPATH) + CardsSettingsPage clickOnTemporarilyBlock(); + + @Click(SMS_TOGGLE_XPATH) + CardsSettingsPage clickOnSmsToggle(); + + @Click(CONTINUE_BLOCKING_CARD_BUTTON_XPATH) + CardsSettingsPage clickOnContinueBlockingCardButton(); + + @CheckElementContent(value = VALIDATION_MESSAGE_UNBLOCK_MOBILE_NUMBER_XPATH, by = Lookup.XPATH) + CardsSettingsPage checkValidationMessage(String message); + + @TypeInto(value = UNBLOCK_MOBILE_NUMBER_XPATH, clear = true) + CardsSettingsPage fillUnblockMobileNumber(String number); + + @CheckElementPresent(CARD_BLOCKING_VICTORY_TITLE_XPATH) + CardsSettingsPage checkCardBlockingVictoryTitle(); + + @CheckElementPresent(CARD_BLOCKING_VICTORY_TEXT_XPATH) + CardsSettingsPage checkCardBlockingVictoryText(); + + @Click(BACK_BUTTON_ON_VICTORY_SCREEN_XPATH) + CardsSettingsPage clickOnBackButtonOnVictoryScreen(); + + @Click(UNBLOCK_BUTTON_XPATH) + CardsSettingsPage clickOnUnblockButton(); + + @CheckElementPresent(CARD_BLOCKING_TYPES_ON_UNBLOCK_SCREEN_XPATH) + CardsSettingsPage checkCardBlockingTypesOnUnblockScreen(); + + @CheckElementPresent(CARD_UNBLOCKING_VICTORY_TITLE_XPATH) + CardsSettingsPage checkCardUnblockingVictoryTitle(); + + @CheckElementPresent(CARD_UNBLOCKING_VICTORY_TEXT_XPATH) + CardsSettingsPage checkCardUnblockingVictoryText(); + + @CheckElementPresent(CREDIT_CARD_DETAIL_FULL_XPATH) + CardsSettingsPage checkCreditCardDetailFull(); + + @CheckElementPresent(CREDIT_CARD_DETAIL_TITLE_XPATH) + CardsSettingsPage checkCreditCardDetailTitle(); + + @CheckElementPresent(CREDIT_CARD_BALANCES_AND_LIMIT_DETAIL_XPATH) + CardsSettingsPage checkCreditCardBalancesAndLimitDetail(); + + @CheckElementPresent(CREDIT_CARD_BENEFIT_PACKAGES_TITLE_XPATH) + CardsSettingsPage checkCreditCardBenefitPackagesTitle(); + + @CheckElementPresent(CREDIT_CARD_BENEFIT_PACKAGES_DETAIL_XPATH) + CardsSettingsPage checkCreditCardBenefitPackagesDetail(); + + @Click(CREDIT_LIMIT_INCREASE_BUTTON_XPATH) + CardsSettingsPage clickOnCreditLimitIncreaseButton(); + + @CheckElementPresent(CREDIT_LIMIT_INCREASE_MODAL_XPATH) + CardsSettingsPage checkCreditLimitIncreaseModal(); + + @Click(CREDIT_LIMIT_INCREASE_CLOSE_MODAL_BUTTON_XPATH) + CardsSettingsPage clickOnCreditLimitIncreaseCloseModalButton(); + + @Click(CREDIT_CARD_XPATH) + CardsSettingsPage clickOnCreditCard(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/ChangePasswordPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/ChangePasswordPage.java new file mode 100644 index 0000000..4ce6577 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/ChangePasswordPage.java @@ -0,0 +1,58 @@ +package cz.moneta.test.dsl.newib.settings.communication.contacts; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.settings.SettingsModalPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.settings.communication.contacts.ChangePasswordPage.*; + +@Wait(value = {TITLE_XPATH, TITLE_ALERT_XPATH}, waitSecondsForElement = 30) +public interface ChangePasswordPage extends NewIbPageFlow { + + + String TITLE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Internet Banka - Změna hesla']"; + String TITLE_ALERT_XPATH = "//div[@class='c-alert c-alert--info u-mt--large u-mb--medium']//small[text()='Své heslo nikdy nikomu nesdělujte. Není vhodné psát si heslo fyzicky na papírek. K zapamatování může pomoci správce hesel – přímo ve Vašem prohlížeči nebo v aplikaci. Pracovníci Moneta Money Bank nikdy nevyžadují sdělení hesla po telefonu.']"; + String PASSWORD_CONDITIONS_XPATH = "//div[@class='col col-5' and .//small[contains(., 'Heslo musí:')] and .//small[contains(., 'Mít minimálně 8 znaků')] and .//small[contains(., 'Obsahovat malé a velké písmeno')] and .//small[contains(., 'Obsahovat alespoň 1 číslici')]]"; + String NEW_PASSWORD_XPATH = "//input[@id='password']"; + String NEW_PASSWORD_AGAIN_XPATH = "//input[@id='passwordAgain']"; + String CONTINUE_BUTTON_XPATH = "//button[@data-testid='submit' and text()='Pokračovat']"; + String IDENTICAL_PASSWORD_VALIDATON_XPATH = "//div[@id='passwordAgain_errorMessage' and text()='Zadaná hesla musí být shodná']"; + String ALREADY_USED_PASSWORD_VALIDATION_XPATH = "//div[@id='password_errorMessage' and text()='Heslo již bylo dříve použité']"; + String MOBILE_KEY_INTO_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String VICTORY_TITLE_AND_TEXT_XPATH = "//div[@class='c-card__header__text' and .//h4[contains(., 'Hotovo! Vaše heslo do Internet Banky bylo změněno')] and .//p[contains(., 'Dobře si ho zapamatujte a nikomu jej nesdělujte.')]]"; + String BACK_TO_SETTINGS_BUTTON_XPATH = "//button[@data-testid='submit' and text()='Zpět na Nastavení']"; + + @CheckElementPresent(PASSWORD_CONDITIONS_XPATH) + ChangePasswordPage checkPasswordConditions(); + + @TypeInto(value = NEW_PASSWORD_XPATH, clear = true) + ChangePasswordPage fillNewPassword(String password); + + @TypeInto(value = NEW_PASSWORD_AGAIN_XPATH, clear = true) + ChangePasswordPage fillNewPasswordAgain(String password); + + @Click(CONTINUE_BUTTON_XPATH) + ChangePasswordPage clickOnContinue(); + + @Click(NEW_PASSWORD_XPATH) + ChangePasswordPage clickOnPasswordField(); + + @CheckElementPresent(IDENTICAL_PASSWORD_VALIDATON_XPATH) + ChangePasswordPage checkIdenticalPasswordValidation(); + + @CheckElementPresent(ALREADY_USED_PASSWORD_VALIDATION_XPATH) + ChangePasswordPage checkAlreadyUsedPasswordValidation(); + + @TypeInto(MOBILE_KEY_INTO_XPATH) + ChangePasswordPage fillMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + ChangePasswordPage clickOnContinueMobileKey(); + + @CheckElementPresent(VICTORY_TITLE_AND_TEXT_XPATH) + ChangePasswordPage checkVictoryTitleAndText(); + + @Click(BACK_TO_SETTINGS_BUTTON_XPATH) + SettingsModalPage clickOnBackToSettingsButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/ContactsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/ContactsPage.java new file mode 100644 index 0000000..1073434 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/ContactsPage.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.newib.settings.communication.contacts; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.settings.communication.contacts.ContactsPage.*; + +@Wait(value = {CONTACTS_TITLE_XPATH, NEW_CONTACT_BTN_XPATH}, waitSecondsForElement = 30) +public interface ContactsPage extends NewIbPageFlow { + String CONTACTS_TITLE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Kontakty']"; + String NEW_CONTACT_BTN_XPATH = "//button[@data-testid='create-contact-button']"; + String DELETE_CONTACT_BTN_XPATH = "//div[contains(@class,'row') and .//span[@class='u-fontWeightBold' and normalize-space(text())='%s']]//button[@aria-label='Smazat']"; + String EDIT_CONTACT_BTN_XPATH = "//div[contains(@class,'row') and .//span[@class='u-fontWeightBold' and normalize-space(text())='%s']]//button[@aria-label='Upravit']"; + String CREATED_CONTACT_NAME_XPATH = "//span[@class='u-fontWeightBold'][text()='%s']"; + String CONFIRM_DELETE_BTN_XPATH = "//button[@data-testid='button-confirm'][text()='Smazat']"; + String CONTACT_DELETED_CONFIRM_SCREEN_VICTORY_TEXT = "//h2[@class='t-title t-title--h3 c-modal__title'][text()='Kontakt je smazaný']"; + String CLOSE_DELETED_CONFIRM_MODAL_BTN_XPATH = "//button[@data-testid='confirm-close-and-reload'][text()='Zavřít']"; + String CONTACT_FOR_MOBILE_KEY_XPATH = "//span[@data-testid='TextComponent'][text()='Telefon pro mobilní klíč IB']"; + + @Click(NEW_CONTACT_BTN_XPATH) + CreateNewContactPage createNewContact(); + + @CheckElementPresent(value = CREATED_CONTACT_NAME_XPATH, isStringDynamicXpath = true) + ContactsPage checkCreatedContactName(String createdContactName); + + @Click(value = DELETE_CONTACT_BTN_XPATH, isStringDynamicXpath = true) + ContactsPage deleteContact(String createdContactName); + + @Click(CONFIRM_DELETE_BTN_XPATH) + ContactsPage confirmDeleteContact(); + + @CheckElementPresent(CONTACT_DELETED_CONFIRM_SCREEN_VICTORY_TEXT) + ContactsPage checkContactDeletedVictoryTextIsPresent(); + + @Click(CLOSE_DELETED_CONFIRM_MODAL_BTN_XPATH) + ContactsPage closeDeletedContactConfirmationModal(); + + @CheckElementPresent(CONTACT_FOR_MOBILE_KEY_XPATH) + ContactsPage checkContactForMobileKeyExist(); + + @Click(value = EDIT_CONTACT_BTN_XPATH, isStringDynamicXpath = true) + CreateNewContactPage editContact(String createdContactName); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/CreateContactVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/CreateContactVictoryPage.java new file mode 100644 index 0000000..94f7c29 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/CreateContactVictoryPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.newib.settings.communication.contacts; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.settings.communication.contacts.CreateContactVictoryPage.*; + +@Wait(value = {BACK_TO_CONTACTS_BTN_XPATH}, waitSecondsForElement = 30) +public interface CreateContactVictoryPage extends NewIbPageFlow { + + String NEW_CONTACT_VICTORY_TITLE_XPATH = "//h4[@class='t-title t-title--h4'][text()='Kontakt byl uložen']"; + String BACK_TO_CONTACTS_BTN_XPATH = "//button[@data-testid='submit'][text()='Zpět na kontakty']"; + String EDIT_CONTACT_VICTORY_TITLE_XPATH = "//h4[@class='t-title t-title--h4'][text()='Kontakt byl upraven']"; + + @CheckElementPresent(NEW_CONTACT_VICTORY_TITLE_XPATH) + CreateContactVictoryPage checkVictoryScreenIsPresent(); + + @Click(BACK_TO_CONTACTS_BTN_XPATH) + ContactsPage clickOnBackToContacts(); + + @CheckElementPresent(EDIT_CONTACT_VICTORY_TITLE_XPATH) + CreateContactVictoryPage checkEditVictoryScreenIsPresent(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/CreateNewContactPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/CreateNewContactPage.java new file mode 100644 index 0000000..d1edaa3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/CreateNewContactPage.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.newib.settings.communication.contacts; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.settings.communication.contacts.CreateNewContactPage.*; + +@Wait(value = {SUBMIT_BTN_XPATH, BACK_BTN_XPATH}, waitSecondsForElement = 30) +public interface CreateNewContactPage extends NewIbPageFlow, StoreAccessor { + + String NAME_INPUT_XPATH = "//input[@id='name']"; + String PHONE_NUMBER_INPUT_XPATH = "//input[@id='phoneNumber']"; + String MOBILE_OPERATOR_BTN_XPATH = "//button[@id='mobileOperator_button']"; + String MOBILE_OPERATION_OPTION_XPATH = "//li[@class='c-dropdown__item']//following::div[text()='%s']"; + String SUBMIT_BTN_XPATH = "//button[@data-testid='submit']"; + String BACK_BTN_XPATH = "//button[@data-testid='back']"; + String NAME_VALIDATION_TEXT_XPATH = "//div[@id='name_errorMessage' and normalize-space(text())='Toto pole je povinné.']"; + String NUMBER_VALIDATION_TEXT_XPATH = "//div[@id='phoneNumber_errorMessage' and normalize-space(text())='Toto pole je povinné.']"; + String OPERATOR_VALIDATION_TEXT_XPATH = "//div[@id='mobileOperator_errorMessage' and normalize-space(text())='Toto pole je povinné.']"; + + @TypeInto(value = NAME_INPUT_XPATH, clear = true) + CreateNewContactPage setName(String name); + + @TypeInto(PHONE_NUMBER_INPUT_XPATH) + CreateNewContactPage setPhoneNumber(String phoneNumber); + + @CustomAction + default CreateNewContactPage setOperator(String operator) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> MOBILE_OPERATOR_BTN_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(MOBILE_OPERATION_OPTION_XPATH, operator)); + return null; + } + + @Click(value = SUBMIT_BTN_XPATH, andWait = @Wait(explicitWaitSeconds = 2)) + CreateContactVictoryPage submitNewContact(); + + @Click(value = SUBMIT_BTN_XPATH, andWait = @Wait(explicitWaitSeconds = 2)) + CreateNewContactPage clickSubmitStayOnPage(); + + @CheckElementsPresent(value = { + @CheckElementPresent(NAME_VALIDATION_TEXT_XPATH), + @CheckElementPresent(NUMBER_VALIDATION_TEXT_XPATH), + @CheckElementPresent(OPERATOR_VALIDATION_TEXT_XPATH)}) + CreateNewContactPage checkValidationTextsArePresent(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/PersonalAndContactDetailsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/PersonalAndContactDetailsPage.java new file mode 100644 index 0000000..9070530 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/communication/contacts/PersonalAndContactDetailsPage.java @@ -0,0 +1,154 @@ +package cz.moneta.test.dsl.newib.settings.communication.contacts; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.settings.communication.contacts.PersonalAndContactDetailsPage.*; + +@Wait(value = {TITLE_XPATH, NAME_AND_SURNAME_XPATH, PERMANENT_ADDRESS_XPATH, CONTACT_ADDRESS_XPATH}, waitSecondsForElement = 30) +public interface PersonalAndContactDetailsPage extends NewIbPageFlow { + + String TITLE_XPATH = "//h4[@class='t-title t-title--h3'][text()='Osobní a kontaktní údaje']"; + String PERMANENT_FIRST_NAME_XPATH = "//p[@data-testid='firstName']"; + String PERMANENT_LAST_NAME_XPATH = "//p[@data-testid='lastName']"; + String PERMANENT_TITLE_XPATH = "//p[@data-testid='titleBefore']"; + String PERMANENT_STREET_XPATH = "//p[@data-testid='permanentAddress-street']"; + String PERMANENT_CITY_XPATH = "//p[@data-testid='permanentAddress-city']"; + String PERMANENT_ZIP_XPATH = "//p[@data-testid='permanentAddress-zip']"; + String PERMANENT_COUNTRY_XPATH = "//p[@data-testid='permanentAddress-country']"; + String CONTACT_STREET_XPATH = "//p[@data-testid='contact-street']"; + String CONTACT_CITY_XPATH = "//p[@data-testid='contact-city']"; + String CONTACT_ZIP_XPATH = "//p[@data-testid='contact-zip']"; + String CONTACT_COUNTRY_XPATH = "//p[@data-testid='contact-country']"; + String CONTACT_MOBILE_XPATH = "//p[@data-testid='contact-mobile']"; + String CONTACT_EMAIL_XPATH = "//p[@data-testid='contact-email']"; + String ALERT_TEXT_XPATH = "//p[@data-testid='TextComponent']//small[text()='Změna jména, trvalé adresy nebo dokladu totožnosti je momentálně možná pouze na pobočce nebo v mobilní aplikaci.']"; + String EDIT_BUTTON_XPATH = "//button[@data-testid='edit-button' and text()='Upravit']"; + String EDIT_TITLE_XPATH = "//h2[@class='t-title t-title--h3'][text()='Upravit kontaktní údaje']"; + String CHECKBOX_XPATH = "//input[@type='checkbox'][@value='true']"; + String CHECKBOX_BTN_XPATH = "//label[@for='contactSameAsPermanentAddress']//span[text()='Kontaktní adresa je stejná jako trvalá adresa']"; + String STREET_DISABLED_XPATH = "//input[@id='street'][@disabled]"; + String DESCRIPTIVE_NUMBER_DISABLED_XPATH = "//input[@id='descriptiveNumber'][@disabled]"; + String ORIENTATION_NUMBER_DISABLED_XPATH = "//input[@id='orientationNumber'][@disabled]"; + String TOWN_DISABLED_XPATH = "//input[@id='town'][@disabled]"; + String ZIP_DISABLED_XPATH = "//input[@id='zip'][@disabled]"; + String COUNTRY_DISABLED_XPATH = "//button[@name='country'][@disabled]"; + String CONFIRM_BTN_XPATH = "//button[@data-testid='submit-personal-info'][text()='Pokračovat']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String VICTORY_HEADER_XPATH = "//h4[@class='t-title t-title--h4'][text()='Vaše kontaktní údaje byly upraveny']"; + String VICTORY_SENTENCE_XPATH = "//p[@data-testid='TextComponent'][text()='Změna se projeví nejpozději následující pracovní den.']"; + String SUBMIT_BTN_XPATH = "//button[@data-testid='submit'][text()='Zpět na Kontaktní údaje']"; + String MOBILE_PHONE_DISABLED_XPATH= "//input[@id='mobilePhone'][@disabled]"; + String EMAIL_ENABLED_XPATH = "//input[@id='email'][not(@disabled)]"; + String NAME_AND_SURNAME_XPATH = "//div[@class='u-mb--large u-fontWeightBold'][text()='Jméno a příjmení']"; + String PERMANENT_ADDRESS_XPATH = "//div[@class='u-mb--large u-mt--large u-fontWeightBold'][text()='Trvalá adresa']"; + String CONTACT_ADDRESS_XPATH = "//div[@class='u-mb--large u-mt--large u-fontWeightBold'][text()='Kontaktní údaje']"; + String STREET_INPUT_XPATH = "//input[@id='street']"; + String STREET_ERROR_MESSAGE_XPATH = "//div[@id='street_errorMessage'][text()='Toto pole je povinné.']"; + + @CheckElementPresent(TITLE_XPATH) + PersonalAndContactDetailsPage checkTitleIsPresent(); + + @CheckElementContent(value = PERMANENT_FIRST_NAME_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkPermanentFirstNameIsPresent(String firstName); + + @CheckElementContent(value = PERMANENT_LAST_NAME_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkPermanentLastNameIstpresent(String lastName); + + @CheckElementContent(value = PERMANENT_TITLE_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkPermanentTitleIsPresent(String title); + + @CheckElementContent(value = PERMANENT_STREET_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkPermanentStreetIsPresent(String street); + + @CheckElementContent(value = PERMANENT_CITY_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkPermanentCityIsPresent(String city); + + @CheckElementContent(value = PERMANENT_ZIP_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkPermanentZipIsPresent(String zip); + + @CheckElementContent(value = PERMANENT_COUNTRY_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkPermanentCountryIsPresent(String country); + + @CheckElementContent(value = CONTACT_STREET_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkContactStreetIsPresent(String street); + + @CheckElementContent(value = CONTACT_CITY_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkContactCityIsPresent(String city); + + @CheckElementContent(value = CONTACT_ZIP_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkContactZipIsPresent(String zip); + + @CheckElementContent(value = CONTACT_COUNTRY_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkContactCountrytIsPresent(String country); + + @CheckElementContent(value = CONTACT_MOBILE_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkContactMobileIsPresent(String mobile); + + @CheckElementContent(value = CONTACT_EMAIL_XPATH, by = Lookup.XPATH) + PersonalAndContactDetailsPage checkContactEmailIsPresent(String email); + + @CheckElementPresent(ALERT_TEXT_XPATH) + PersonalAndContactDetailsPage checkAlertTextIsPresent(); + + @Click(EDIT_BUTTON_XPATH) + PersonalAndContactDetailsPage clickOnEdit(); + + @CheckElementPresent(EDIT_TITLE_XPATH) + PersonalAndContactDetailsPage checkEditTitleIsPresent(); + + @CheckElementPresent(CHECKBOX_XPATH) + PersonalAndContactDetailsPage checkCheckboxIsCheck(); + + @CheckElementPresent(STREET_DISABLED_XPATH) + PersonalAndContactDetailsPage checkStreetIsDisable(); + + @CheckElementPresent(DESCRIPTIVE_NUMBER_DISABLED_XPATH) + PersonalAndContactDetailsPage checkDescriptiveNumberIsDisable(); + + @CheckElementPresent(ORIENTATION_NUMBER_DISABLED_XPATH) + PersonalAndContactDetailsPage checkOrientationNumberIsDisable(); + + @CheckElementPresent(TOWN_DISABLED_XPATH) + PersonalAndContactDetailsPage checkTownIsDisable(); + + @CheckElementPresent(ZIP_DISABLED_XPATH) + PersonalAndContactDetailsPage checkZipIsDisable(); + + @CheckElementPresent(COUNTRY_DISABLED_XPATH) + PersonalAndContactDetailsPage checkCountryIsDisable(); + + @Click(CHECKBOX_BTN_XPATH) + PersonalAndContactDetailsPage clickOnCheckbox(); + + @Click(CONFIRM_BTN_XPATH) + PersonalAndContactDetailsPage clickOnConfirmButton(); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + PersonalAndContactDetailsPage fillMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + PersonalAndContactDetailsPage clickOnConfirm(); + + @CheckElementPresent(VICTORY_HEADER_XPATH) + PersonalAndContactDetailsPage checkVictoryHeaderIsPresent(); + + @CheckElementPresent(VICTORY_SENTENCE_XPATH) + PersonalAndContactDetailsPage checkVictorySentenceIsPresent(); + + @Click(SUBMIT_BTN_XPATH) + PersonalAndContactDetailsPage clickOnSubmitButton(); + + @CheckElementPresent(MOBILE_PHONE_DISABLED_XPATH) + PersonalAndContactDetailsPage checkMobilePhoneIsDisable(); + + @CheckElementPresent(EMAIL_ENABLED_XPATH) + PersonalAndContactDetailsPage checkEmailIsEnable(); + + @TypeInto(value = STREET_INPUT_XPATH, clear = true) + PersonalAndContactDetailsPage fillStreet(String street); + + @CheckElementPresent(STREET_ERROR_MESSAGE_XPATH) + PersonalAndContactDetailsPage checkStreetErrorMessage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/disponents/DisponentsSettingsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/disponents/DisponentsSettingsPage.java new file mode 100644 index 0000000..91d2538 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/disponents/DisponentsSettingsPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.newib.settings.disponents; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.settings.disponents.DisponentsSettingsPage.TITLE_XPATH; + +@Wait(value = {TITLE_XPATH}, waitSecondsForElement = 30) +public interface DisponentsSettingsPage extends NewIbPageFlow { + String TITLE_XPATH = "//h1[@class='t-title t-title--h3 u-mt--xxSmall' and text()='Správa eDisponentů']"; + String NAME_XPATH = "//p[@data-testid='TextComponent']"; + String ROLE_XPATH = "//p[@data-testid='TextComponent']//small[normalize-space()='eDisponent']"; + String STATUS_XPATH = "//div[@data-testid='status']//small[contains(normalize-space(),'Aktivní')]"; + + @CheckElementPresent(NAME_XPATH) + DisponentsSettingsPage checkName(); + + @CheckElementPresent(ROLE_XPATH) + DisponentsSettingsPage checkRole(); + + @CheckElementPresent(STATUS_XPATH) + DisponentsSettingsPage checkStatus(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/CreateEnvelopeVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/CreateEnvelopeVictoryPage.java new file mode 100644 index 0000000..c5fb06f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/CreateEnvelopeVictoryPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.newib.settings.envelopes; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.settings.envelopes.CreateEnvelopeVictoryPage.BACK_TO_ENVELOPES_BTN_XPATH; +import static cz.moneta.test.dsl.newib.settings.envelopes.CreateEnvelopeVictoryPage.NEW_ENVELOPE_VICTORY_TITLE_XPATH; + +@Wait(value = {NEW_ENVELOPE_VICTORY_TITLE_XPATH, BACK_TO_ENVELOPES_BTN_XPATH}, waitSecondsForElement = 10) +public interface CreateEnvelopeVictoryPage extends NewIbPageFlow { + + String NEW_ENVELOPE_VICTORY_TITLE_XPATH = "//h4[@class='t-title t-title--h4'][text()='Obálka byla vytvořena']"; + String BACK_TO_ENVELOPES_BTN_XPATH = "//button[@data-testid='submit'][text()='Zpět na seznam obálek']"; + + @CheckElementPresent(NEW_ENVELOPE_VICTORY_TITLE_XPATH) + CreateEnvelopeVictoryPage checkVictoryScreenIsPresent(); + + @Click(BACK_TO_ENVELOPES_BTN_XPATH) + EnvelopesPage clickOnBackToEnvelopes(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/CreateNewEnvelopePage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/CreateNewEnvelopePage.java new file mode 100644 index 0000000..54e6f3c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/CreateNewEnvelopePage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.newib.settings.envelopes; +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import static cz.moneta.test.dsl.newib.settings.envelopes.CreateNewEnvelopePage.*; + +@Wait(value = {NEW_ENVELOPE_TITLE_XPATH, SUBMIT_BTN_XPATH, BACK_BTN_XPATH}, waitSecondsForElement = 30) +public interface CreateNewEnvelopePage extends NewIbPageFlow, StoreAccessor { + String NEW_ENVELOPE_TITLE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Nová spořicí obálka']"; + String NAME_INPUT_XPATH = "//input[@id='name']"; + String AMOUNT_INPUT_XPATH = "//input[@id='amount']"; + String CAR_ICON_BTN_XPATH = "//button[contains(@class, 'c-btn--transparent')]//img[contains(@src, 'category-icons/%s.png')]"; + String SUBMIT_BTN_XPATH = "//button[@data-testid='submit']"; + String BACK_BTN_XPATH = "//button[@data-testid='back']"; + + @TypeInto(NAME_INPUT_XPATH) + CreateNewEnvelopePage setEnvelopeName(String name); + + @TypeInto(AMOUNT_INPUT_XPATH) + CreateNewEnvelopePage setAmount(String amount); + + @Click(value = CAR_ICON_BTN_XPATH, isStringDynamicXpath = true) + @Click(value = SUBMIT_BTN_XPATH, andWait = @Wait(explicitWaitSeconds = 1)) + CreateEnvelopeVictoryPage submitNewEnvelope(String category); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/EditEnvelopePage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/EditEnvelopePage.java new file mode 100644 index 0000000..270448c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/EditEnvelopePage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.newib.settings.envelopes; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.settings.envelopes.EditEnvelopePage.*; + +@Wait(value = {EDIT_ENVELOPE_TITLE_XPATH, SUBMIT_BTN_XPATH, BACK_BTN_XPATH}, waitSecondsForElement = 30) +public interface EditEnvelopePage extends NewIbPageFlow { + String EDIT_ENVELOPE_TITLE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Upravit obálku']"; + String NAME_INPUT_XPATH = "//input[@id='name']"; + String AMOUNT_INPUT_XPATH = "//input[@id='amount']"; + String SUBMIT_BTN_XPATH = "//button[@data-testid='submit']"; + String BACK_BTN_XPATH = "//button[@data-testid='back']"; + + @TypeInto(value = NAME_INPUT_XPATH, clear = true) + EditEnvelopePage changeEnvelopeName(String name); + + @TypeInto(value = AMOUNT_INPUT_XPATH, clear = true) + EditEnvelopePage changeAmount(String amount); + + @Click(value = SUBMIT_BTN_XPATH, andWait = @Wait(explicitWaitSeconds = 1)) + EditEnvelopeVictoryPage submitEditedEnvelope(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/EditEnvelopeVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/EditEnvelopeVictoryPage.java new file mode 100644 index 0000000..851f7db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/EditEnvelopeVictoryPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.newib.settings.envelopes; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.settings.envelopes.EditEnvelopeVictoryPage.BACK_TO_ENVELOPES_BTN_XPATH; +import static cz.moneta.test.dsl.newib.settings.envelopes.EditEnvelopeVictoryPage.NEW_ENVELOPE_VICTORY_TITLE_XPATH; + +@Wait(value = {NEW_ENVELOPE_VICTORY_TITLE_XPATH, BACK_TO_ENVELOPES_BTN_XPATH}, waitSecondsForElement = 10) +public interface EditEnvelopeVictoryPage extends NewIbPageFlow { + + String NEW_ENVELOPE_VICTORY_TITLE_XPATH = "//h4[@class='t-title t-title--h4'][text()='Obálka byla upravena']"; + String BACK_TO_ENVELOPES_BTN_XPATH = "//button[@class='c-btn'][text()='Zpět na seznam obálek']"; + + @CheckElementPresent(NEW_ENVELOPE_VICTORY_TITLE_XPATH) + EditEnvelopeVictoryPage checkEditVictoryScreenIsPresent(); + + @Click(BACK_TO_ENVELOPES_BTN_XPATH) + EnvelopesPage clickOnBackToEnvelopes(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/EnvelopesPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/EnvelopesPage.java new file mode 100644 index 0000000..7926918 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/envelopes/EnvelopesPage.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.newib.settings.envelopes; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.CheckElementsPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.settings.envelopes.EnvelopesPage.*; + +@Wait(value = {ENVELOPES_TITLE_XPATH, NEW_ENVELOPE_BTN_XPATH}, waitSecondsForElement = 30) +public interface EnvelopesPage extends NewIbPageFlow { + String ENVELOPES_TITLE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Obálky']"; + String NEW_ENVELOPE_BTN_XPATH = "//button[@data-testid='create-envelope-button']"; + String DELETE_ENVELOPE_BTN_XPATH = "//button[@aria-label='Smazat']"; + String CONFIRM_DELETE_BTN_XPATH = "//button[@data-testid='button-confirm'][text()='Smazat']"; + String ENVELOPE_DELETED_CONFIRM_SCREEN_VICTORY_TEXT = "//h2[@class='t-title t-title--h3 c-modal__title'][text()='Obálka byla smazána']"; + String CLOSE_DELETED_CONFIRM_MODAL_BTN_XPATH = "//button[@class='c-btn'][text()='Zavřít']"; + String NO_ENVELOPES_XPATH = "//small[normalize-space(.)='Momentálně nemáte žádnou obálku']"; + String ENVELOPE_NAME_XPATH = "//div[@data-testid='TextComponent' and normalize-space(.)='%s']"; + String ENVELOPE_AMOUNT_XPATH = "//div[@data-testid='TextComponent' and contains(normalize-space(.),'Chci si naspořit %s CZK')]"; + String EDIT_ENVELOPE_BTN_XPATH = "//div[@class='c-flex c-flex--align-items--center c-flex--wrap--nowrap']" + "[.//div[@data-testid='TextComponent' and normalize-space(text())='%s']]" + "/button[@aria-label='Upravit']"; + String DELETE_INFO_MODAL_XPATH = "//div[contains(@class, 'c-modal__body')][contains(normalize-space(.), concat('obálku ', '%s'))]"; + + @Click(NEW_ENVELOPE_BTN_XPATH) + CreateNewEnvelopePage createNewEnvelope(); + + @Click(DELETE_ENVELOPE_BTN_XPATH) + EnvelopesPage deleteEnvelope(); + + @CheckElementPresent(value = DELETE_INFO_MODAL_XPATH, isStringDynamicXpath = true) + EnvelopesPage checkDeleteEnvelopeModalIsPresent(String envelopeName); + + @Click(CONFIRM_DELETE_BTN_XPATH) + EnvelopesPage confirmDeleteEnvelope(); + + @CheckElementPresent(ENVELOPE_DELETED_CONFIRM_SCREEN_VICTORY_TEXT) + EnvelopesPage checkEnvelopeDeletedVictoryTextIsPresent(); + + @Click(CLOSE_DELETED_CONFIRM_MODAL_BTN_XPATH) + EnvelopesPage closeDeletedEnvelopeConfirmationModal(); + + @CheckElementPresent(NO_ENVELOPES_XPATH) + EnvelopesPage checkNoEnvelopesMessageIsPresent(); + + @CheckElementsPresent({ + @CheckElementPresent(value = ENVELOPE_NAME_XPATH, isStringDynamicXpath = true), + @CheckElementPresent(value = ENVELOPE_AMOUNT_XPATH, isStringDynamicXpath = true)}) + EnvelopesPage checkCreatedEnvelopeIsPresent(String envelopeName, String envelopeAmount); + + @Click(value = EDIT_ENVELOPE_BTN_XPATH, isStringDynamicXpath = true) + EditEnvelopePage editEnvelope(String envelopeName); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/mobileapplication/AboutTheSmartBankaPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/mobileapplication/AboutTheSmartBankaPage.java new file mode 100644 index 0000000..ef45f26 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/mobileapplication/AboutTheSmartBankaPage.java @@ -0,0 +1,81 @@ +package cz.moneta.test.dsl.newib.settings.mobileapplication; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.settings.SettingsModalPage; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +public interface AboutTheSmartBankaPage extends NewIbPageFlow, HorizontalMainMenu { + + String BACK_TO_SETTINGS_BTN_XPATH = "//button[@data-testid='back-to-settings-crossroad']"; + String ACTIVATE_UP_BTN_XPATH = "//button[@data-testid='activate-mobile-app-button'][@class='c-btn c-btn--small']"; + String ACTIVATE_DOWN_BTN_XPATH = "//button[@data-testid='activate-mobile-app-button'][@class='c-btn']"; + String MORE_INFORMATION_BTN_XPATH = "//a[@data-testid='more-info-button']"; + String REDIRECTING_TO_OLD_IB_TITLE = "//h2[@class='t-title t-title--h3 c-modal__title'][text()='Přesměrujeme Vás do původní Internet Banky']"; + String DECLINE_REDIRECT_BTN_XPATH = "//button[@data-testid='decline-redirect-button']"; + String MOBILE_APP_TITLE_XPATH = "//h2[@class='t-title t-title--h3'][text()='Mobilní aplikace']"; + String SETTINGS_TITLE_XPATH = "//h2[@class='t-title t-title--h3 u-mb--0'][text()='Nastavení']"; + String CLOSE_BTN_XPATH = "//button[@data-testid='settings_modal-close']"; + + + @CustomAction + default AboutTheSmartBankaPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "settings/mobile-app"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @CheckElementPresent(BACK_TO_SETTINGS_BTN_XPATH) + AboutTheSmartBankaPage checkBackToSettingsIsPresent(); + + @CheckElementPresent(ACTIVATE_UP_BTN_XPATH) + AboutTheSmartBankaPage checkActivateUpIsPresent(); + + @CheckElementPresent(ACTIVATE_DOWN_BTN_XPATH) + AboutTheSmartBankaPage checkActivateDownIsPresent(); + + @CheckElementPresent(MORE_INFORMATION_BTN_XPATH) + AboutTheSmartBankaPage checkMoreInformationIsPresent(); + + @Click(ACTIVATE_UP_BTN_XPATH) + AboutTheSmartBankaPage clickOnActivateUp(); + + @CheckElementPresent(REDIRECTING_TO_OLD_IB_TITLE) + AboutTheSmartBankaPage checkRedirectingToOldIbTitleIsPresent(); + + @Click(DECLINE_REDIRECT_BTN_XPATH) + AboutTheSmartBankaPage clickOnCancel(); + + @Click(ACTIVATE_DOWN_BTN_XPATH) + AboutTheSmartBankaPage clickOnActivateDown(); + + @CheckElementPresent(MOBILE_APP_TITLE_XPATH) + AboutTheSmartBankaPage checkTitleIsPresent(); + + @Click(BACK_TO_SETTINGS_BTN_XPATH) + AboutTheSmartBankaPage clickOnBackToSetting(); + + @CheckElementPresent(SETTINGS_TITLE_XPATH) + SettingsModalPage checkSettingsTitleIsPresent(); + + @Click(CLOSE_BTN_XPATH) + AboutTheSmartBankaPage clickOnClose(); + + @CustomAction + default HorizontalMainMenu goToMoreInformationsAndCheckUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> MORE_INFORMATION_BTN_XPATH); + newIbEndpoint.switchToOtherWindow(5,2); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "smartbanka.moneta"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/directdebit/DirectDebitsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/directdebit/DirectDebitsPage.java new file mode 100644 index 0000000..b1b8198 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/directdebit/DirectDebitsPage.java @@ -0,0 +1,98 @@ +package cz.moneta.test.dsl.newib.settings.payments.directdebit; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.settings.payments.directdebit.DirectDebitsPage.*; + +@Wait(value = {DIRECT_DEBIT_TITLE_XPATH, NEW_DIRECT_DEBIT_BTN_XPATH}, waitSecondsForElement = 30) +public interface DirectDebitsPage extends NewIbPageFlow { + + String DIRECT_DEBIT_TITLE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Inkasa']"; + String NEW_DIRECT_DEBIT_BTN_XPATH = "//button[@data-testid='create-direct-debit-button']"; + String DIRECT_DEBIT_REMOVE_BTN_XPATH = "//tr[.//h2[normalize-space(text())='%s']]//button[contains(@aria-label,'Odstranit')]"; + String DIRECT_DEBIT_CHANGE_BTN_XPATH = "//tr[.//h2[normalize-space(text())='%s']]//button[contains(@aria-label,'Upravit')]"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String SIGNATURE_RIGHT_XPATH = "//span[@data-testid='TextComponent'][text()='Právo podpisu']"; + String CONFIRMATION_BTN_XPATH = "//button[@data-testid='submit']"; + String BACK_TO_DIRECT_DEBITS_PAGE_BTN_XPATH = "//button[@data-testid='direct-debits']"; + String TITLE_VICTORY_PAGE_XPATH = "//h1[normalize-space(.)='Inkaso bylo úspěšně zrušeno']"; + String CLOSE_COOKIES_PANEL = "//button[@id='onetrust-accept-btn-handler']"; + String DIRECT_DEBIT_NUMBER_XPATH = "//tr[.//h2[normalize-space(text())='%s']]"; + String DIRECT_DEBIT_ROW_XPATH = "//tr[.//h2[normalize-space(text())='%s'] and .//div[contains(normalize-space(text()),'%s')] and .//div[contains(translate(normalize-space(.), ' ', ''),'%s')]]"; + String DIRECT_DEBIT_NAME_INPUT_XPATH = "//input[@id='description']"; + String DIRECT_DEBIT_LIMIT_INPUT_XPATH = "//input[@id='amountLimit']"; + String DIRECT_DEBIT_NAME_XPATH = "//tr[.//span[normalize-space(text())='Název inkasa'] and .//span[normalize-space(text())='%s']]"; + String DIRECT_DEBIT_LIMIT_XPATH = "//tr[.//span[normalize-space(text())='Limit inkasa'] and .//div[contains(translate(normalize-space(.), ' ', ''), '%s')]]"; + String CHANGE_TITLE_VICTORY_PAGE_XPATH = "//h1[normalize-space(.)='Inkaso bylo úspěšně upraveno']"; + + @Click(value = DIRECT_DEBIT_REMOVE_BTN_XPATH, isStringDynamicXpath = true) + DirectDebitsPage clickOnDeleteDirectDebit(String directDebitName); + + @Click(value = DIRECT_DEBIT_CHANGE_BTN_XPATH, isStringDynamicXpath = true) + DirectDebitsPage clickOnChangeDirectDebit(String directDebitName); + + @Wait(value = SIGNATURE_RIGHT_XPATH, until = Until.VISIBLE) + @Click(value = CONFIRMATION_BTN_XPATH, jsClick = true) + DirectDebitsPage confirmDeleteDirectDebit(); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + DirectDebitsPage setMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + DirectDebitsPage clickOnContinueMobileKey(); + + @Click(BACK_TO_DIRECT_DEBITS_PAGE_BTN_XPATH) + DirectDebitsPage clickOnBackToDirectDebitsPage(); + + @CheckElementPresent(value = TITLE_VICTORY_PAGE_XPATH) + DirectDebitsPage checkDeleteDirectDebitVictoryText(); + + @CustomAction + default DirectDebitsPage sleepRefreshAndCloseCookiesIfVisible(String directDebitName, String fromAccountNumber, String directDebitLimit) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String sipoXpath = String.format(DIRECT_DEBIT_ROW_XPATH, directDebitName, fromAccountNumber, directDebitLimit); + Runnable refreshFunction = () -> { + newIbEndpoint.refeshPage(); + if (newIbEndpoint.isElementVisible(1, CLOSE_COOKIES_PANEL, Lookup.XPATH)) { + newIbEndpoint.click(() -> CLOSE_COOKIES_PANEL); + } + }; + newIbEndpoint.waitForElementAndRefresh(sipoXpath, Lookup.XPATH, refreshFunction, 90, 8); + return this; + } + + @CustomAction + default DirectDebitsPage checkDirectDebitIsDeletedAndRefreshIfNeeded(String sipoNumber) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String sipoXpath = String.format(DIRECT_DEBIT_NUMBER_XPATH, sipoNumber); + Runnable refreshFunction = () -> { + newIbEndpoint.refeshPage(); + if (newIbEndpoint.isElementVisible(1, CLOSE_COOKIES_PANEL, Lookup.XPATH)) { + newIbEndpoint.click(() -> CLOSE_COOKIES_PANEL); + } + }; + newIbEndpoint.waitForElementDisappearOrRefresh(sipoXpath, Lookup.XPATH, refreshFunction, 30, 5); + return null; + } + + @TypeInto(value = DIRECT_DEBIT_NAME_INPUT_XPATH, clear = true) + DirectDebitsPage setDirectDebitName(String directDebitName); + + @TypeInto(value = DIRECT_DEBIT_LIMIT_INPUT_XPATH, clear = true) + DirectDebitsPage setAmountLimit(String directDebitLimit); + + @Click(value = CONFIRMATION_BTN_XPATH, jsClick = true) + DirectDebitsPage confirmChangeDirectDebit(); + + @CheckElementPresent(value = DIRECT_DEBIT_NAME_XPATH, isStringDynamicXpath = true) + DirectDebitsPage checkDirectDebitName(String directDebitName); + + @CheckElementPresent(value = DIRECT_DEBIT_LIMIT_XPATH, isStringDynamicXpath = true) + DirectDebitsPage checkDirectDebitLimit(String directDebitLimit); + + @CheckElementPresent(CHANGE_TITLE_VICTORY_PAGE_XPATH) + DirectDebitsPage checkChangeDirectDebitVictoryText(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/sipo/SipoOrdersPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/sipo/SipoOrdersPage.java new file mode 100644 index 0000000..bc7ff8a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/sipo/SipoOrdersPage.java @@ -0,0 +1,94 @@ +package cz.moneta.test.dsl.newib.settings.payments.sipo; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.dsl.newib.payments.SipoOrderPage; +import cz.moneta.test.dsl.newib.settings.payments.standingorders.StandingOrdersPage; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.settings.payments.sipo.SipoOrdersPage.NEW_SIPO_ORDER_BTN_XPATH; +import static cz.moneta.test.dsl.newib.settings.payments.sipo.SipoOrdersPage.SIPO_ORDERS_TITLE_XPATH; + +@Wait(value = {NEW_SIPO_ORDER_BTN_XPATH, SIPO_ORDERS_TITLE_XPATH}, waitSecondsForElement = 30) +public interface SipoOrdersPage extends NewIbPageFlow, HorizontalMainMenu, VerticalMainMenu { + String SIPO_ORDERS_TITLE_XPATH = "//h1[@class='t-title t-title--h3'][text()='SIPO']"; + String NEW_SIPO_ORDER_BTN_XPATH = "//button[@data-testid='create-sipo-button']"; + String SIPO_NUMBER_XPATH = "//td[contains(@class, 'c-contentTableRow__titleColumn')]//h2[contains(text(), '%s')]"; + String REMOVE_SIPO_ORDER_BTN_XPATH = "//tr[.//h2[normalize-space(text())='%s']]//button[starts-with(@data-testid,'remove-')]"; + String SIPO_REMOVE_ORDER_TITPLE_XPATH = "//h2[@class='t-title t-title--h3'][text()='Zrušení SIPA']"; + String CONFIRM_BUTTON_XPATH = "//section[contains(@class, 'c-superModal')]//div[contains(@class, 'styles_rightBtns')]//button[@data-testid='submit' and text()='Potvrdit']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String SIPO_REMOVE_ORDER_VICTORX_XPATH = "//div[contains(@class, 'c-flex') and contains(text(), 'SIPO bylo úspěšně zrušeno')]"; + String OVERVIEW_BUTTON_XPATH = "//button[@data-testid='direct-debits']"; + String CHANGE_ON_SIPO_ORDERS_TEXT_XPATH = "//div[@class='c-alert__text']//span[@data-testid='TextComponent']/span[contains(text(), '%s')]"; + String CLOSE_COOKIES_PANEL = "//button[@id='onetrust-accept-btn-handler']"; + String EDIT_SIPO_ORDER_BTN_XPATH = "//tr[.//h2[normalize-space(text())='%s']]//button[contains(@aria-label,'Upravit SIPO')]"; + String SIPO_ROW_XPATH = "//tr[.//h2[normalize-space(text())='%s'] and .//div[contains(normalize-space(text()),'%s')] and .//div[contains(translate(normalize-space(.), ' ', ''),'%s')]]"; + + @CustomAction + default SipoOrdersPage sleepRefreshAndCloseCookiesIfVisible(String sipoNumber, String fromAccount, String sipoLimit) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String sipoXpath = String.format(SIPO_ROW_XPATH, sipoNumber, fromAccount, sipoLimit); + Runnable refreshFunction = () -> { + newIbEndpoint.refeshPage(); + if (newIbEndpoint.isElementVisible(1, CLOSE_COOKIES_PANEL, Lookup.XPATH)) { + newIbEndpoint.click(() -> CLOSE_COOKIES_PANEL); + } + }; + newIbEndpoint.waitForElementAndRefresh(sipoXpath, Lookup.XPATH, refreshFunction, 90, 8); + return this; + } + + @CheckElementPresent(SIPO_ORDERS_TITLE_XPATH) + SipoOrdersPage checkSipoOrdersTitle(); + + @CheckElementPresent(NEW_SIPO_ORDER_BTN_XPATH) + SipoOrdersPage checkNewSipoOrderBtn(); + + @Click(NEW_SIPO_ORDER_BTN_XPATH) + SipoOrderPage clickOnNewSipo(); + + @Click(value = REMOVE_SIPO_ORDER_BTN_XPATH, isStringDynamicXpath = true) + SipoOrdersPage clickOnRemoveSipoOrder(String sipoNumber); + + @CheckElementPresent(SIPO_REMOVE_ORDER_TITPLE_XPATH) + SipoOrdersPage checkSipoOrderRemoveTitle(); + + @Click(CONFIRM_BUTTON_XPATH) + SipoOrdersPage clickOnConfirm(); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + SipoOrdersPage setMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + SipoOrdersPage clickOnContinueMobileKey(); + + @CheckElementPresent(SIPO_REMOVE_ORDER_VICTORX_XPATH) + SipoOrdersPage checkSipoOrderRemoveVictoryText(); + + @Click(OVERVIEW_BUTTON_XPATH) + SipoOrdersPage goBackToSipoOverview(); + + @CheckElementPresent(value = CHANGE_ON_SIPO_ORDERS_TEXT_XPATH, isStringDynamicXpath = true) + SipoOrdersPage checkChangeOnSipoOrdersText(String sipoNumber); + + @CustomAction + default SipoOrdersPage checkSipoIsDeletedAndRefreshIfNeeded(String sipoNumber) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String sipoXpath = String.format(SIPO_NUMBER_XPATH, sipoNumber); + Runnable refreshFunction = () -> { + newIbEndpoint.refeshPage(); + if (newIbEndpoint.isElementVisible(1, CLOSE_COOKIES_PANEL, Lookup.XPATH)) { + newIbEndpoint.click(() -> CLOSE_COOKIES_PANEL); + } + }; + newIbEndpoint.waitForElementDisappearOrRefresh(sipoXpath, Lookup.XPATH, refreshFunction, 60, 5); + return null; + } + + @Click(value = EDIT_SIPO_ORDER_BTN_XPATH, isStringDynamicXpath = true) + SipoOrderPage clickOnEdit(String sipoNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/standingorders/StandingOrdersPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/standingorders/StandingOrdersPage.java new file mode 100644 index 0000000..64e22ce --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/standingorders/StandingOrdersPage.java @@ -0,0 +1,114 @@ +package cz.moneta.test.dsl.newib.settings.payments.standingorders; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.dsl.newib.payments.StandingOrderChangePage; +import cz.moneta.test.dsl.newib.payments.StandingOrderPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.settings.payments.standingorders.StandingOrdersPage.*; + +@Wait(value = {STANDING_ORDERS_TITLE_XPATH, NEW_STANDING_ORDER_BTN_XPATH}, waitSecondsForElement = 30) +public interface StandingOrdersPage extends NewIbPageFlow, HorizontalMainMenu, VerticalMainMenu, StoreAccessor { + + String STANDING_ORDERS_TITLE_XPATH = "//h1[@class='t-title t-title--h3'][text()='Trvalé příkazy']"; + String NEW_STANDING_ORDER_BTN_XPATH = "//button[@data-testid='create-standing-order-button']"; + String DELETE_STANDING_ORDER_BTN_XPATH = "//tr[.//h2[text()='%s']]//button[contains(@aria-label, 'Odstranit trvalý příkaz')]"; + String DELETE_CONFIRMATION_BTN_XPATH = "//button[@data-testid='submit']"; + String CONFIRM_DELETE_BUTTON_XPATH = "(//button[@data-testid='submit' and not(@disabled) and not(contains(@class,'hidden'))])[last()]"; + String DELETE_CONFIRMATION_VICTORY_TXT_XPATH = "//h1[contains(., 'Trvalý příkaz byl úspěšně smazán')]"; + String CLOSE_BTN_XPATH = "//button[text()='Zpět na Trvalé příkazy']"; + String STANDING_ORDER_EDITED_CREATED_TXT_XPATH = "//h1[@class='t-title t-title--h3'][contains(text(), 'Trvalé příkazy')]"; + String NO_STANDING_ORDERS_INFO_TXT_XPATH = "//div[text()='Momentálně nemáte žádné trvalé příkazy.']"; + String CLOSE_MODAL_BTN_XPATH = "//button[@data-testid='settings_modal-close']"; + String CLOSE_COOKIES_PANEL = "//button[@id='onetrust-accept-btn-handler']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String SIGNATURE_RIGHT_XPATH = "//span[@data-testid='TextComponent'][text()='Právo podpisu']"; + String NEW_STANDING_ORDER_XPATH = "//tr[.//h2[normalize-space(text())='%s']]"; + String EDIT_STANDING_ORDER_XPATH = "//button[contains(@aria-label, concat('Upravit trvalý příkaz ', '%s'))]"; + String NEW_STANDING_ORDER_CHANGED_XPATH = "//tr[.//h2[text()='%s'] and .//div[contains(@class,'t-amount') and contains(text(),'%s')]]"; + String AMOUNT_ROW_XPATH = "//tr[@data-testid='item-info-amount']//div[contains(@class,'t-amount') and contains(normalize-space(text()),'%s')]"; + String FREQUENCY_ROW_XPATH = "//tr[@data-testid='item-info-frequency']//span[@data-testid='item-info-frequency' and normalize-space(text())='%s']"; + String END_DATE_ROW_XPATH = "//tr[@data-testid='item-info-endDate']//span[@data-testid='item-info-endDate' and contains(normalize-space(.), '%s')]"; + + @Click(NEW_STANDING_ORDER_BTN_XPATH) + StandingOrderPage clickOnNewStandingOrder(); + + @CustomAction + default StandingOrdersPage sleepRefreshAndCloseCookiesIfVisible(String standingOrderName) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String dynamicStandingOrderXpath = String.format(NEW_STANDING_ORDER_XPATH, standingOrderName); + Runnable refreshFunction = () -> { + newIbEndpoint.refeshPage(); + if (newIbEndpoint.isElementVisible(1, CLOSE_COOKIES_PANEL, Lookup.XPATH)) { + newIbEndpoint.click(() -> CLOSE_COOKIES_PANEL); + } + }; + newIbEndpoint.waitForElementAndRefresh(dynamicStandingOrderXpath, Lookup.XPATH, refreshFunction, 30, 5); + return null; + } + + @Click(value = DELETE_STANDING_ORDER_BTN_XPATH, isStringDynamicXpath = true) + StandingOrdersPage deleteStandingOrder(String standingOrderName); + + @Wait(value = SIGNATURE_RIGHT_XPATH, until = Until.VISIBLE) + @Click(DELETE_CONFIRMATION_BTN_XPATH) + StandingOrdersPage confirmDeleteStandingOrder(); + + @CustomAction + default StandingOrdersPage confirmDeleteChangedStandingOrder() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> CONFIRM_DELETE_BUTTON_XPATH); + return null; + } + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + StandingOrdersPage setMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + StandingOrdersPage clickOnContinueMobileKey(); + + @CheckElementPresent(DELETE_CONFIRMATION_VICTORY_TXT_XPATH) + StandingOrdersPage checkDeleteConfirmationVictoryTxt(); + + @Click(CLOSE_BTN_XPATH) + StandingOrdersPage clickOnClose(); + + @CheckElementPresent(STANDING_ORDER_EDITED_CREATED_TXT_XPATH) + StandingOrdersPage checkStandingOrderEditedCreatedInfo(); + + @Click(CLOSE_MODAL_BTN_XPATH) + DashboardPage closeModal(); + + @Click(value = NEW_STANDING_ORDER_XPATH, isStringDynamicXpath = true) + StandingOrdersPage clickOnStandingOrder(String standingOrderName); + + @CheckElementPresent(value = AMOUNT_ROW_XPATH, isStringDynamicXpath = true) + StandingOrdersPage checkAmount(String amount); + + @CheckElementPresent(value = FREQUENCY_ROW_XPATH, isStringDynamicXpath = true) + StandingOrdersPage checkFrequency(String paymentFrequency); + + @Click(value = EDIT_STANDING_ORDER_XPATH, isStringDynamicXpath = true) + StandingOrderChangePage clickOnEdit(String standingOrderName); + + @CustomAction + default StandingOrdersPage waitUntilStandingOrderDisappears(String standingOrderName, String amount) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String dynamicStandingOrderXpath = String.format(NEW_STANDING_ORDER_CHANGED_XPATH, standingOrderName, amount); + Runnable refreshFunction = () -> { + newIbEndpoint.refeshPage(); + if (newIbEndpoint.isElementVisible(1, CLOSE_COOKIES_PANEL, Lookup.XPATH)) { + newIbEndpoint.click(() -> CLOSE_COOKIES_PANEL); + } + }; + newIbEndpoint.waitForElementDisappearOrRefresh(dynamicStandingOrderXpath, Lookup.XPATH, refreshFunction, 30, 5); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/templates/CreateNewTemplatePage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/templates/CreateNewTemplatePage.java new file mode 100644 index 0000000..f671fa3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/templates/CreateNewTemplatePage.java @@ -0,0 +1,149 @@ +package cz.moneta.test.dsl.newib.settings.payments.templates; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.newib.settings.payments.templates.CreateNewTemplatePage.*; + +@Wait(value = {CREATE_NEW_TEMPLATE_TITLE_XPATH, DOMESTIC_TAB_XPATH, FOREIGN_TAB_XPATH}, waitSecondsForElement = 30) +public interface CreateNewTemplatePage extends NewIbPageFlow, StoreAccessor, Builder { + + String CREATE_NEW_TEMPLATE_TITLE_XPATH = "//h2[@class='t-title t-title--h3'][text()='Vytvořit novou šablonu']"; + String DOMESTIC_TAB_XPATH = "//div[@data-testid='create-domestic-template']"; + String FOREIGN_TAB_XPATH = "//div[@data-testid='create-foreign-template']"; + String TEMPLATE_NAME_INPUT_XPATH = "//input[@id='templateName']"; + String DESTINATION_ACC_PREFIX_INPUT_XPATH = "//input[@id='destinationAccountPrefix']"; + String DESTINATION_ACC_NUMBER_INPUT_XPATH = "//input[@id='destinationAccountNumber']"; + String DESTINATION_ACC_BANK_INPUT_XPATH = "//input[@id='destinationAccountBank']"; + String AMOUNT_INPUT_XPATH = "//input[@id='amount']"; + String VARIABLE_SYMBOL_INPUT_XPATH = "//input[@id='variableSymbol']"; + String CONSTANT_SYMBOL_INPUT_XPATH = "//input[@id='constantSymbol']"; + String SPECIFIC_SYMBOL_INPUT_XPATH = "//input[@id='specificSymbol']"; + String RECIPIENT_MESSAGE_INPUT_XPATH = "//textarea[@id='noteForRecipient']"; + String NOTE_FOR_PAYER_INPUT_XPATH = "//textarea[@id='noteForPayer']"; + String CATEGORY_INPUT_XPATH = "//input[@data-testid='categoryId']"; + String OPTION_XPATH = "//div[@class='f-option__label'][text()='%s']"; + String CREATE_BTN_XPATH = "//button[text()='Vytvořit']"; + String IBAN_INPUT_XPATH = "//input[@id='recipientAccountNumber']"; + String CURRENCY_INPUT_XPATH = "//button[@name='currencyCode']"; + String CHARGE_BTN_XPATH = "//button[@id='chargeBearer']"; + String RECIPIENT_BANK_COUNTRY_INPUT_XPATH = "//input[@name='recipientBankCountry']"; + String RECIPIENT_NAME_INPUT_XPATH = "//input[@id='recipientName']"; + String RECIPIENT_ADDRESS_STREET_INPUT_XPATH = "//input[@id='recipientAddressStreet']"; + String RECIPIENT_ADDRESS_CITY_INPUT_XPATH = "//input[@id='recipientAddressCity']"; + String RECIPIENT_ADDRESS_COUNTRY_INPUT_XPATH = "//input[@name='recipientAddressCountry']"; + String RECIPIENT_NOTE_INPUT_XPATH = "//input[@id='recipientNote']"; + String CONFIRMATION_EMAIL_CHECKBOX_XPATH = "//label[@for='confirmationEmailCheckbox']"; + String CONFIRMATION_EMAIL_INPUT_XPATH = "//input[@id='confirmationEmail']"; + + @CustomAction + default CreateNewTemplatePage setCategory(String category) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> CATEGORY_INPUT_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(OPTION_XPATH, category)); + newIbEndpoint.waitForElementsToLoad(5, String.format(OPTION_XPATH, category)); + return null; + } + + @CustomAction + default CreateNewTemplatePage setCurrency(String currency) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> CURRENCY_INPUT_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(OPTION_XPATH, currency)); + newIbEndpoint.waitForElementsToLoad(5, String.format(OPTION_XPATH, currency)); + return null; + } + + @CustomAction + default CreateNewTemplatePage setFees(String fees) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> CHARGE_BTN_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(OPTION_XPATH, fees)); + newIbEndpoint.waitForElementsToLoad(5, String.format(OPTION_XPATH, fees)); + return null; + } + + @CustomAction + default CreateNewTemplatePage setRecipientBankCountry(String recipientBankCountry) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> RECIPIENT_BANK_COUNTRY_INPUT_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(OPTION_XPATH, recipientBankCountry)); + newIbEndpoint.waitForElementsToLoad(5, String.format(OPTION_XPATH, recipientBankCountry)); + return null; + } + + @CustomAction + default CreateNewTemplatePage setRecipientAddressCountry(String recipientAddressCountry) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.click(() -> RECIPIENT_ADDRESS_COUNTRY_INPUT_XPATH); + newIbEndpoint.sleepSeconds(1); + newIbEndpoint.click(() -> String.format(OPTION_XPATH, recipientAddressCountry)); + newIbEndpoint.waitForElementsToLoad(5, String.format(OPTION_XPATH, recipientAddressCountry)); + return null; + } + + @TypeInto(TEMPLATE_NAME_INPUT_XPATH) + CreateNewTemplatePage setTemplateName(String templateName); + + @TypeInto(DESTINATION_ACC_PREFIX_INPUT_XPATH) + CreateNewTemplatePage setDestinationAccPrefix(String prefixAccountNumber); + + @TypeInto(DESTINATION_ACC_NUMBER_INPUT_XPATH) + CreateNewTemplatePage setDestinationAccNumber(String recipientAccountNumber); + + @CustomAction + default CreateNewTemplatePage setDestinationAccBank(String bankCode) { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + newIbEndpoint.type(() -> DESTINATION_ACC_BANK_INPUT_XPATH, bankCode, true); + newIbEndpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } + + @TypeInto(AMOUNT_INPUT_XPATH) + CreateNewTemplatePage setAmount(String amount); + + @TypeInto(VARIABLE_SYMBOL_INPUT_XPATH) + CreateNewTemplatePage setVariableSymbol(String variableSymbol); + + @TypeInto(CONSTANT_SYMBOL_INPUT_XPATH) + CreateNewTemplatePage setConstantSymbol(String constantSymbol); + + @TypeInto(SPECIFIC_SYMBOL_INPUT_XPATH) + CreateNewTemplatePage setSpecificSymbol(String specificSymbol); + + @TypeInto(RECIPIENT_MESSAGE_INPUT_XPATH) + CreateNewTemplatePage setRecipientMessage(String recipientMessage); + + @TypeInto(NOTE_FOR_PAYER_INPUT_XPATH) + CreateNewTemplatePage setNoteForPayer(String myNote); + + @Click(CREATE_BTN_XPATH) + TemplatesVictoryPage clickOnCreate(); + + @TypeInto(IBAN_INPUT_XPATH) + CreateNewTemplatePage setIban(String iban); + + @TypeInto(RECIPIENT_NAME_INPUT_XPATH) + CreateNewTemplatePage setRecipientName(String recipientName); + + @TypeInto(RECIPIENT_ADDRESS_STREET_INPUT_XPATH) + CreateNewTemplatePage setRecipientAddressStreet(String recipientAddressStreet); + + @TypeInto(RECIPIENT_ADDRESS_CITY_INPUT_XPATH) + CreateNewTemplatePage setRecipientAddressCity(String recipientAddressCity); + + @TypeInto(RECIPIENT_NOTE_INPUT_XPATH) + CreateNewTemplatePage setRecipientNote(String recipientMessage); + + @Click(CONFIRMATION_EMAIL_CHECKBOX_XPATH) + CreateNewTemplatePage clickOnConfirmationEmailCheckbox(); + + @TypeInto(value = CONFIRMATION_EMAIL_INPUT_XPATH, andWait = @Wait(explicitWaitSeconds = 10)) + CreateNewTemplatePage setConfirmationEmail(String confirmationEmail); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/templates/TemplatesPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/templates/TemplatesPage.java new file mode 100644 index 0000000..e7b8c9c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/templates/TemplatesPage.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.newib.settings.payments.templates; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.settings.payments.templates.TemplatesPage.*; + +@Wait(value = {TEMPLATES_TITLE_XPATH, CREATE_TEMPLATE_BTN_XPATH}, waitSecondsForElement = 30) +public interface TemplatesPage extends NewIbPageFlow, HorizontalMainMenu, VerticalMainMenu, StoreAccessor { + + String TEMPLATES_TITLE_XPATH = "//h2[@class='t-title t-title--h3'][text()='Šablony']"; + String CREATE_TEMPLATE_BTN_XPATH = "//button[@data-testid='create-template-button']"; + String FOREIGN_TAB_XPATH = "//div[@class='c-tabs__text']//div[text()='Zahraniční']"; + String DESTINATION_ACC_NUMBER = "//div[@data-testid='TextComponent']//small[text()='%s']"; + String TEMPLATE_NAME_XPATH = "//td[contains(@class, 'c-contentTableRow__titleColumn')]//h2[text()='%s']"; + String DELETE_BTN_XPATH = "//span[contains(@class, 'c-avatar') and contains(@class, 'c-avatar--bin') and contains(@class, 'c-avatar--transparent')]"; + String DELETE_CONFIRMATION_BTN_XPATH = "//button[@data-testid='button-confirm'][text()='Smazat']"; + String CONFIRMATION_TITLE_FOR_DELETE_XPATH = "//h2[@class='t-title t-title--h3 c-modal__title'][text()='Šablona je smazána.']"; + String CLOSE_BTN_XPATH = "//button[@data-testid='confirm-close-and-reload'][text()='Zavřít']"; + + @Click(CREATE_TEMPLATE_BTN_XPATH) + CreateNewTemplatePage createTemplate(); + + @Click(DELETE_BTN_XPATH) + TemplatesPage deleteTemplate(); + + @Click(DELETE_CONFIRMATION_BTN_XPATH) + TemplatesPage confirmDeleteTemplate(); + + @Click(CLOSE_BTN_XPATH) + TemplatesPage closeModal(); + + @CheckElementPresent(value = TEMPLATE_NAME_XPATH, isStringDynamicXpath = true) + TemplatesPage checkTemplateName(String templateName); + + @CheckElementPresent(value = DESTINATION_ACC_NUMBER, isStringDynamicXpath = true) + TemplatesPage checkDestinationAccNumber(String destinationAccNumber); + + @CheckElementPresent(CONFIRMATION_TITLE_FOR_DELETE_XPATH) + TemplatesPage checkDeleteConfirmationTitleIsPresent(); + + @Click(FOREIGN_TAB_XPATH) + TemplatesPage clickOnForeignTab(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/templates/TemplatesVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/templates/TemplatesVictoryPage.java new file mode 100644 index 0000000..31c0db5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/templates/TemplatesVictoryPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.newib.settings.payments.templates; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.settings.payments.templates.TemplatesVictoryPage.*; + +@Wait(value = {TEMPLATE_CREATED_TITLE_XPATH, BACK_TO_LIST_BTN_XPATH}, waitSecondsForElement = 30) +public interface TemplatesVictoryPage extends NewIbPageFlow { + + String TEMPLATE_CREATED_TITLE_XPATH = "//h2[@class='t-title t-title--h3'][text()='Šablona je vytvořená']"; + String BACK_TO_LIST_BTN_XPATH = "//button[@data-testid='back-to-list-button']"; + + @CheckElementPresent(TEMPLATE_CREATED_TITLE_XPATH) + TemplatesVictoryPage checkTemplateCreatedVictoryTitle(); + + @Click(BACK_TO_LIST_BTN_XPATH) + TemplatesPage clickOnBackToList(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/trustedcontacts/TrustedContactsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/trustedcontacts/TrustedContactsPage.java new file mode 100644 index 0000000..0e0da0b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/payments/trustedcontacts/TrustedContactsPage.java @@ -0,0 +1,130 @@ +package cz.moneta.test.dsl.newib.settings.payments.trustedcontacts; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.components.VerticalMainMenu; +import cz.moneta.test.dsl.newib.settings.SettingsModalPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@Wait(value = {TrustedContactsPage.TRUSTED_CONTACTS_TITLE_XPATH}, waitSecondsForElement = 30) +public interface TrustedContactsPage extends NewIbPageFlow, HorizontalMainMenu, VerticalMainMenu, StoreAccessor { + + String TRUSTED_CONTACTS_TITLE_XPATH = "//h2[@class='t-title t-title--h3'][text()='Důvěryhodní příjemci']"; + String SHOW_MORE_TRUSTED_CONTACTS_XPATH = "//button[@data-testid='show-more-accounts'][text()='Zobrazit další příjemce']"; + String BACK_TO_SETTINGS_BTN_XPATH = "//button[@data-testid='back-to-settings-crossroad']"; + String CLOSE_BTN_XPATH = "//button[@data-testid='settings_modal-close']"; + String INFO_TEXT_COMPONENT_XPATH = "//p[@data-testid='TextComponent'][text()='Účet příjemce si můžete uložit mezi důvěryhodné při zadávání platebního příkazu. K potvrzení transakcí pak nebudete potřebovat mobilní klíč. Účet můžete ze seznamu kdykoliv smazat.']"; + String ACCOUNT_COMPONENT_XPATH = "//p[@data-testid='TextComponent']/small[text()='Název a číslo účtu příjemce']"; + String USED_IN_TEMPLATE_TEXT_COMPONENT_XPATH = "//p[@data-testid='TextComponent']/small[text()='Použito v šabloně']"; + String CREATED_TEXT_COMPONENT_XPATH = "//p[@data-testid='TextComponent']/small[text()='Vytvořeno']"; + String FULL_TEXT_FILTER_XPATH = "//input[@data-testid='settings-fullText'][@placeholder='Hledejte v důvěryhodných příjemcích']"; + String DELETE_ICON_XPATH = "(//div[@class='col col-12 col-sm-1 styles_uSmTextRight__3nXBD'])[2]"; + String MODAL_TITLE_XPATH = "//h2[@class='t-title t-title--h3 c-modal__title'][contains(text(),'Chcete smazat důvěryhodného příjemce')]"; + String MODAL_INFO_XPATH = "//div[@class='c-modal__body'][text()='Nového si vždy můžete nastavit.']"; + String MODAL_DECLINE_XPATH = "//button[@data-testid='button-decline']"; + String TRUSTED_ACCOUNT_XPATH = "(//div[@data-testid='trusted-account'])[1]"; + String NAME_IS_NOT_EMPTY_XPATH = "//div[@data-testid='item-info-value-description']/strong[not(@value='')]"; + String ACCOUNT_NUMBER_IS_NOT_EMPTY_XPATH = "//div[@data-testid='item-info-value-accountNumber']/p[@data-testid='TextComponent'][not(@value='')]"; + String CREATED_DATE_IS_NOT_EMPTY_XPATH = "//div[@data-testid='item-info-value-createdDate']/p[@data-testid='TextComponent'][not(@value='')]"; + String USED_IN_TEMPLATE_IS_NOT_EMPTY_XPATH = "//div[@data-testid='item-info-value-inTemplate']/p[@data-testid='TextComponent'][not(@value='')]"; + String EDIT_BUTTON_XPATH = "//button[@data-testid='edit-name-btn']"; + String NAME_OF_TRUSTED_CONTACT_INPUT_XPATH = "//input[@data-testid='Component']"; + String SAVE_BUTTON_XPATH = "//button[@class='c-link c-link--small'][@data-testid='Link']"; + String NAME_OF_LONG_TRUSTED_CONTACT_INPUT_XPATH = "//div[@data-testid='item-info-value-description']/strong[text()='12345678912345678920']"; + String NAME_OF_SHORT_TRUSTED_CONTACT_INPUT_XPATH = "//div[@data-testid='item-info-value-description']/strong[text()='4545']"; + String CANCEL_BUTTON_XPATH = "//button[@class='c-link c-link--small c-link--red'][@data-testid='Link']"; + String TRUSTED_CONTACT_INFO_TEXT_XPATH = "//div[normalize-space(.)='S ohledem na možné zneužití důvěryhodných příjemců podvodníky, jsme pro Vaši bezpečnost tuto možnost vypnuli. Důvěryhodné příjemce už nebude možné využívat.']"; + + @CustomAction + default TrustedContactsPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "/settings/trusted-accounts"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @CheckElementPresent(BACK_TO_SETTINGS_BTN_XPATH) + TrustedContactsPage checkBackToSettingsIsPresent(); + + @CheckElementPresent(CLOSE_BTN_XPATH) + TrustedContactsPage checkCloseBtnIsPresent(); + + @Click(BACK_TO_SETTINGS_BTN_XPATH) + SettingsModalPage clickOnBackToSettings(); + + @CheckElementPresent(INFO_TEXT_COMPONENT_XPATH) + TrustedContactsPage checkInfoTextComponetIsPresent(); + + @CheckElementPresent(ACCOUNT_COMPONENT_XPATH) + TrustedContactsPage checkAccountTextComponetIsPresent(); + + @CheckElementPresent(USED_IN_TEMPLATE_TEXT_COMPONENT_XPATH) + TrustedContactsPage checkUsedInTemplateTextComponetIsPresent(); + + @CheckElementPresent(CREATED_TEXT_COMPONENT_XPATH) + TrustedContactsPage checkCreatedTextComponetIsPresent(); + + @CheckElementPresent(FULL_TEXT_FILTER_XPATH) + TrustedContactsPage checkFullTextFilterIsPresent(); + + @Click(SHOW_MORE_TRUSTED_CONTACTS_XPATH) + TrustedContactsPage clickOnShowMoreAccounts(); + + @Click(DELETE_ICON_XPATH) + TrustedContactsPage clickOnDelete(); + + @CheckElementPresent(MODAL_TITLE_XPATH) + TrustedContactsPage checkTitleIsPresent(); + + @CheckElementPresent(MODAL_INFO_XPATH) + TrustedContactsPage checkInfoTextIsPresent(); + + @Click(MODAL_DECLINE_XPATH) + TrustedContactsPage clickOnDecline(); + + @Click(TRUSTED_ACCOUNT_XPATH) + TrustedContactsPage clickOnTrustedAccount(); + + @CheckElementPresent(NAME_IS_NOT_EMPTY_XPATH) + TrustedContactsPage checkNameIsNotEmpty(); + + @CheckElementPresent(ACCOUNT_NUMBER_IS_NOT_EMPTY_XPATH) + TrustedContactsPage checkAccountNumberIsNotEmpty(); + + @CheckElementPresent(CREATED_DATE_IS_NOT_EMPTY_XPATH) + TrustedContactsPage checkCreateDateIsNotEmpty(); + + @CheckElementPresent(USED_IN_TEMPLATE_IS_NOT_EMPTY_XPATH) + TrustedContactsPage checkUsedInTemplateIsNotEmpty(); + + @Click(EDIT_BUTTON_XPATH) + TrustedContactsPage clickOnEdit(); + + @TypeInto(clear = true, value = NAME_OF_TRUSTED_CONTACT_INPUT_XPATH) + TrustedContactsPage setLongName(String setNameOfTrustedContactLong); + + @Click(SAVE_BUTTON_XPATH) + TrustedContactsPage clickOnSave(); + + @CheckElementPresent(NAME_OF_LONG_TRUSTED_CONTACT_INPUT_XPATH) + TrustedContactsPage checkLongName(); + + @TypeInto(clear = true, value = NAME_OF_TRUSTED_CONTACT_INPUT_XPATH) + TrustedContactsPage setShortName(String setNameOfTrustedContactShort); + + @CheckElementPresent(NAME_OF_SHORT_TRUSTED_CONTACT_INPUT_XPATH) + TrustedContactsPage checkShortName(); + + @Click(CANCEL_BUTTON_XPATH) + TrustedContactsPage clickOnCancel(); + + @Click(CLOSE_BTN_XPATH) + TrustedContactsPage clickOnCloseBtn(); + + @CheckElementPresent(TRUSTED_CONTACT_INFO_TEXT_XPATH) + TrustedContactsPage checkTrustedContactsInfoTextIsPresent(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/security/AuthorizationPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/security/AuthorizationPage.java new file mode 100644 index 0000000..16cd798 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/security/AuthorizationPage.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.newib.settings.security; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.settings.mobileapplication.AboutTheSmartBankaPage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.settings.security.AuthorizationPage.*; + +@Wait(value = {AUTHORIZATION_TITLE_XPATH, SMS_AUTHORIZATION_BTN_XPATH}, waitSecondsForElement = 30, explicitWaitSeconds = 1) +public interface AuthorizationPage extends NewIbPageFlow { + String AUTHORIZATION_TITLE_XPATH = "//h2[@class='t-title t-title--h2'][text()='Autorizace']"; + String PUSH_AUTHORIZATION_BTN_XPATH = "//div[@data-testid='pushBox']"; + String SMS_AUTHORIZATION_BTN_XPATH = "//div[@data-testid='smsBox']"; + String CLOSE_MODAL_BTN_XPATH = "//button[@data-testid='settings_modal-close']"; + String SMS_AUTHORIZATION_BTN_XPATH_ACTIVE = "//a[@class='c-tile styles_authorizationCard__3j9QA c-tile--selected']//ancestor::div[@data-testid='smsBox']"; + String PUSH_AUTHORIZATION_BTN_XPATH_ACTIVE = "//a[@class='c-tile styles_authorizationCard__3j9QA c-tile--selected']//ancestor::div[@data-testid='pushBox']"; + String MODAL_TITLE_XPATH = "//h2[@class='t-title t-title--h3 c-modal__title'][text()='Nemáte aktivovanou Smart Banku']"; + String DECLINE_MODAL_BTN_XPATH = "//button[@data-testid='decline-button']"; + String CONFIRM_MODAL_BTN_XPATH = "//button[@data-testid='confirm-button']"; + + @Wait(value = PUSH_AUTHORIZATION_BTN_XPATH_ACTIVE, until = Until.GONE) + @Click(PUSH_AUTHORIZATION_BTN_XPATH) + AuthorizationPage clickPush(); + + @Wait(value = SMS_AUTHORIZATION_BTN_XPATH_ACTIVE, until = Until.GONE) + @Click(SMS_AUTHORIZATION_BTN_XPATH) + AuthorizationPage clickSMS(); + + @Wait(value = CLOSE_MODAL_BTN_XPATH, until = Until.VISIBLE, explicitWaitSeconds = 1) + @Click(CLOSE_MODAL_BTN_XPATH) + AuthorizationPage closeAuthorizationModal(); + + @CheckElementPresent(AUTHORIZATION_TITLE_XPATH) + AuthorizationPage checkAuthorizationTitleIsPresent(); + + @CheckElementPresent(MODAL_TITLE_XPATH) + AuthorizationPage checkModalTitleIsPresent(); + + @Click(DECLINE_MODAL_BTN_XPATH) + AuthorizationPage clickOnDecline(); + + @Click(CONFIRM_MODAL_BTN_XPATH) + AboutTheSmartBankaPage clickOnConfirm(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/security/LimitsSettingsPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/security/LimitsSettingsPage.java new file mode 100644 index 0000000..2f51a6d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/security/LimitsSettingsPage.java @@ -0,0 +1,143 @@ +package cz.moneta.test.dsl.newib.settings.security; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.mainpage.AccountsPage; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.dsl.newib.settings.SettingsModalPage; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +public interface LimitsSettingsPage extends NewIbPageFlow, HorizontalMainMenu { + + String BACK_TO_SETTINGS_BTN_XPATH = "//button[@data-testid='back-to-settings-crossroad']"; + String CLOSE_BTN_XPATH = "//button[@data-testid='settings_modal-close']"; + String TEXT_COMPONENT_IB_XPATH = "//p[@data-testid='TextComponent'][text()='Internet Banka']"; + String TEXT_COMPONENT_SB_XPATH = "//p[@data-testid='TextComponent'][text()='Smart Banka']"; + String INTERNET_BANKA_DAY_LIMIT_ACTIVATE_XPATH = "//label[@id='channels.ib.day.active-label' and normalize-space(.)='Nastaven']"; + String INTERNET_BANKA_WEEK_LIMIT_UNACTIVATE_XPATH = "//label[@id='channels.ib.week.active-label' and normalize-space(.)='Nenastaven']"; + String INTERNET_BANKA_DAY_LIMIT_VALUE_PRESENT_XPATH = "//input[@data-testid='limits.ib.day.amount' and translate(@value, ' ', '')='%s']"; + String INTERNET_BANKA_DAY_LIMIT_VALUE_XPATH = "//input[@data-testid='limits.ib.day.amount']"; + String INTERNET_BANKA_WEEK_LIMIT_BUTTON_XPATH = "//button[@id='channels.ib.week.active']"; + String INTERNET_BANKA_WEEK_LIMIT_VALUE_XPATH = "//input[@data-testid='limits.ib.week.amount']"; + String SMART_BANKA_DAY_LIMIT_ACTIVATE_XPATH = "//label[@id='channels.sb.day.active-label' and normalize-space(.)='Nastaven']"; + String SMART_BANKA_WEEK_LIMIT_UNACTIVATE_XPATH = "//label[@id='channels.sb.week.active-label' and normalize-space(.)='Nenastaven']"; + String SMART_BANKA_DAY_LIMIT_VALUE_PRESENT_XPATH = "//input[@data-testid='limits.sb.day.amount' and translate(@value, ' ', '')='%s']"; + String SMART_BANKA_DAY_LIMIT_VALUE_XPATH = "//input[@data-testid='limits.sb.day.amount']"; + String SMART_BANKA_WEEK_LIMIT_BUTTON_XPATH = "//button[@id='channels.sb.week.active']"; + String SMART_BANKA_WEEK_LIMIT_VALUE_XPATH = "//input[@data-testid='limits.sb.week.amount']"; + String CONTINUE_BTN_XPATH = "//button[@data-testid='dispoLimit__button--submit']"; + String INTERNET_BANKA_DAY_LIMIT_VALUE_SUMMARY_PRESENT_XPATH = "//p[normalize-space(.)='Internet Banka']/ancestor::ul//p[starts-with(normalize-space(.), 'Denní limit')]/strong[text()='%s']"; + String INTERNET_BANKA_WEEK_LIMIT_VALUE_SUMMARY_PRESENT_XPATH = "//p[normalize-space(.)='Internet Banka']/ancestor::ul//p[starts-with(normalize-space(.), 'Týdenní limit')]/strong[text()='%s']"; + String SMART_BANKA_DAY_LIMIT_VALUE_SUMMARY_PRESENT_XPATH = "//p[normalize-space(.)='Smart Banka']/ancestor::ul//p[starts-with(normalize-space(.), 'Denní limit')]/strong[text()='%s']"; + String SMART_BANKA_WEEK_LIMIT_VALUE_SUMMARY_PRESENT_XPATH = "//p[normalize-space(.)='Smart Banka']/ancestor::ul//p[starts-with(normalize-space(.), 'Týdenní limit')]/strong[text()='%s']"; + String CONFIRM_BTN_XPATH = "//button[@data-testid='submit']"; + String MOBILE_KEY_INPUT_XPATH = "//label[@for='mobileKey']//following-sibling::div//input[@id='mobileKey']"; + String MOBILE_KEY_SEND_BTN_XPATH = "//button[@data-testid='secondFactorSend']"; + String VICTORY_TITLE_XPATH = "//h3[normalize-space(text())='Váš požadavek na změnu limitů a kanálů byl proveden']"; + String BACK_TO_LIMITS_BTN_XPATH = "//button[@data-testid='Button' and normalize-space(.)='Zobrazit přehled limitů']"; + String INTERNET_BANKA_WEEK_LIMIT_VALUE_PRESENT_XPATH = "//input[@data-testid='limits.ib.week.amount' and translate(@value, ' ', '')='%s']"; + String SMART_BANKA_WEEK_LIMIT_VALUE_PRESENT_XPATH = "//input[@data-testid='limits.sb.week.amount' and translate(@value, ' ', '')='%s']"; + + @CustomAction + default LimitsSettingsPage checkUrl() { + NewIbEndpoint newIbEndpoint = getEndpoint(NewIbEndpoint.class); + String actualUrl = newIbEndpoint.getCurrentUrl(); + String urlContains = "settings/limits"; + assertTrue(actualUrl.contains(urlContains)); + return null; + } + + @CheckElementPresent(BACK_TO_SETTINGS_BTN_XPATH) + LimitsSettingsPage checkBackToSettingsIsPresent(); + + @CheckElementPresent(CLOSE_BTN_XPATH) + LimitsSettingsPage checkCloseBtnIsPresent(); + + @CheckElementPresent(TEXT_COMPONENT_IB_XPATH) + LimitsSettingsPage checkTextComponentIBIsPresent(); + + @CheckElementPresent(TEXT_COMPONENT_SB_XPATH) + LimitsSettingsPage checkTextComponentSBIsPresent(); + + @Click(BACK_TO_SETTINGS_BTN_XPATH) + SettingsModalPage clickOnBackToSettings(); + + @CheckElementPresent(INTERNET_BANKA_DAY_LIMIT_ACTIVATE_XPATH) + LimitsSettingsPage checkInternetBankaDayLimitActive(); + + @CheckElementPresent(INTERNET_BANKA_WEEK_LIMIT_UNACTIVATE_XPATH) + LimitsSettingsPage checkInternetBankaWeekLimitUnactive(); + + @CheckElementPresent(value = INTERNET_BANKA_DAY_LIMIT_VALUE_PRESENT_XPATH, isStringDynamicXpath = true) + LimitsSettingsPage checkInternetBankaDayLimitValueIsPresent(String dayLimitValue); + + @Click(INTERNET_BANKA_WEEK_LIMIT_BUTTON_XPATH) + LimitsSettingsPage clickOnInternetBankyWeekLimitActivate(); + + @Wait(value = INTERNET_BANKA_DAY_LIMIT_VALUE_XPATH, until = Until.VISIBLE) + @TypeInto(value = INTERNET_BANKA_DAY_LIMIT_VALUE_XPATH, clear = true) + LimitsSettingsPage changeInternetBankaDayLimit(String dayLimitValue); + + @TypeInto(value = INTERNET_BANKA_WEEK_LIMIT_VALUE_XPATH, clear = true) + LimitsSettingsPage changeInternetBankaWeekLimit(String weekLimitValue); + + @CheckElementPresent(SMART_BANKA_DAY_LIMIT_ACTIVATE_XPATH) + LimitsSettingsPage checkSmartBankaDayLimitActive(); + + @CheckElementPresent(SMART_BANKA_WEEK_LIMIT_UNACTIVATE_XPATH) + LimitsSettingsPage checkSmartBankaWeekLimitUnactive(); + + @CheckElementPresent(value = SMART_BANKA_DAY_LIMIT_VALUE_PRESENT_XPATH, isStringDynamicXpath = true) + LimitsSettingsPage checkSmartBankaDayLimitValueIsPresent(String dayLimitValue); + + @Click(SMART_BANKA_WEEK_LIMIT_BUTTON_XPATH) + LimitsSettingsPage clickOnSmartBankyWeekLimitActivate(); + + @TypeInto(value = SMART_BANKA_DAY_LIMIT_VALUE_XPATH, clear = true) + LimitsSettingsPage changeSmartBankaDayLimit(String dayLimitValue); + + @TypeInto(value = SMART_BANKA_WEEK_LIMIT_VALUE_XPATH, clear = true) + LimitsSettingsPage changeSmartBankaWeekLimit(String weekLimitValue); + + @Click(CONTINUE_BTN_XPATH) + LimitsSettingsPage clickOnContinueBtn(); + + @CheckElementPresent(value = INTERNET_BANKA_DAY_LIMIT_VALUE_SUMMARY_PRESENT_XPATH, isStringDynamicXpath = true) + LimitsSettingsPage checkInternetBankaDayLimit(String dayLimitValue); + + @CheckElementPresent(value = INTERNET_BANKA_WEEK_LIMIT_VALUE_SUMMARY_PRESENT_XPATH, isStringDynamicXpath = true) + LimitsSettingsPage checkInternetBankaWeekLimit(String weekLimitValue); + + @CheckElementPresent(value = SMART_BANKA_DAY_LIMIT_VALUE_SUMMARY_PRESENT_XPATH, isStringDynamicXpath = true) + LimitsSettingsPage checkSmartBankaDayLimit(String dayLimitValue); + + @CheckElementPresent(value = SMART_BANKA_WEEK_LIMIT_VALUE_SUMMARY_PRESENT_XPATH, isStringDynamicXpath = true) + LimitsSettingsPage checkSmartBankaWeekLimit(String weekLimitValue); + + @Click(CONFIRM_BTN_XPATH) + LimitsSettingsPage clickOnConfirmBtn(); + + @TypeInto(MOBILE_KEY_INPUT_XPATH) + LimitsSettingsPage setMobileKey(String mobileKey); + + @Click(MOBILE_KEY_SEND_BTN_XPATH) + LimitsSettingsPage clickOnConfirm(); + + @CheckElementPresent(VICTORY_TITLE_XPATH) + LimitsSettingsPage checkVictoryTitleIsPresent(); + + @Click(BACK_TO_LIMITS_BTN_XPATH) + LimitsSettingsPage clickOnBackToLimits(); + + @CheckElementPresent(value = INTERNET_BANKA_WEEK_LIMIT_VALUE_PRESENT_XPATH, isStringDynamicXpath = true) + LimitsSettingsPage checkInternetBankaWeekLimitValueIsPresent(String weekLimitValue); + + @CheckElementPresent(value = SMART_BANKA_WEEK_LIMIT_VALUE_PRESENT_XPATH, isStringDynamicXpath = true) + LimitsSettingsPage checkSmartBankaWeekLimitValueIsPresent(String weekLimitValue); + + @Click(CLOSE_BTN_XPATH) + DashboardPage clickOnCloseBtn(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/settings/workingonproduct/WorkingModalPage.java b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/workingonproduct/WorkingModalPage.java new file mode 100644 index 0000000..f26566f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/settings/workingonproduct/WorkingModalPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.newib.settings.workingonproduct; + +import cz.moneta.test.dsl.newib.NewIbPageFlow; +import cz.moneta.test.dsl.newib.settings.SettingsModalPage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.newib.settings.workingonproduct.WorkingModalPage.CLOSE_MODAL_BTN_XPATH; +import static cz.moneta.test.dsl.newib.settings.workingonproduct.WorkingModalPage.MODAL_TITLE_XPATH; + +@Wait(value = {MODAL_TITLE_XPATH, CLOSE_MODAL_BTN_XPATH}, waitSecondsForElement = 30) +public interface WorkingModalPage extends NewIbPageFlow { + String MODAL_TITLE_XPATH = "//h2[@class='t-title t-title--h3 c-modal__title'][text()='Na této funkci pracujeme']"; + String MODAL_TEXT_XPATH = "//div[@class='c-modal__body'][text()='Až bude připravená, dáme Vám vědět.']"; + String CLOSE_MODAL_BTN_XPATH = "//button[@data-testid='decline-redirect-button']"; + + @CheckElementPresent(MODAL_TITLE_XPATH) + WorkingModalPage checkModalTitleIsPresent(); + + @CheckElementPresent(MODAL_TEXT_XPATH) + WorkingModalPage checkModalTextIsPresent(); + + @Click(CLOSE_MODAL_BTN_XPATH) + SettingsModalPage clickOnDecline(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/tasks/NewIbTasks.java b/tests/src/main/java/cz/moneta/test/dsl/newib/tasks/NewIbTasks.java new file mode 100644 index 0000000..fd24de6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/tasks/NewIbTasks.java @@ -0,0 +1,2288 @@ +package cz.moneta.test.dsl.newib.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.accounts.CurrentAccountPage; +import cz.moneta.test.dsl.newib.accounts.FuturePaymentsPage; +import cz.moneta.test.dsl.newib.accounts.HistoryTab; +import cz.moneta.test.dsl.newib.authentification.AuthMobileKey; +import cz.moneta.test.dsl.newib.authentification.LoginPage; +import cz.moneta.test.dsl.newib.components.HorizontalMainMenu; +import cz.moneta.test.dsl.newib.mainpage.*; +import cz.moneta.test.dsl.newib.messages.MessageDetailPage; +import cz.moneta.test.dsl.newib.messages.MessagesModalPage; +import cz.moneta.test.dsl.newib.payments.*; +import cz.moneta.test.dsl.newib.savings.*; +import cz.moneta.test.dsl.newib.settings.cards.CardsSettingsPage; +import cz.moneta.test.dsl.newib.settings.communication.contacts.ChangePasswordPage; +import cz.moneta.test.dsl.newib.settings.SettingsModalPage; +import cz.moneta.test.dsl.newib.settings.accounts.AccountsSettingsPage; +import cz.moneta.test.dsl.newib.settings.disponents.DisponentsSettingsPage; +import cz.moneta.test.dsl.newib.settings.mobileapplication.AboutTheSmartBankaPage; +import cz.moneta.test.dsl.newib.settings.communication.contacts.ContactsPage; +import cz.moneta.test.dsl.newib.settings.communication.contacts.PersonalAndContactDetailsPage; +import cz.moneta.test.dsl.newib.settings.envelopes.EnvelopesPage; +import cz.moneta.test.dsl.newib.settings.payments.directdebit.DirectDebitsPage; +import cz.moneta.test.dsl.newib.settings.payments.sipo.SipoOrdersPage; +import cz.moneta.test.dsl.newib.settings.payments.templates.TemplatesPage; +import cz.moneta.test.dsl.newib.settings.payments.trustedcontacts.TrustedContactsPage; +import cz.moneta.test.dsl.newib.util.*; + +import java.util.function.Function; + +public final class NewIbTasks { + + private final Harness harness; + + public static String DEFAULT_MOBILE_KEY = "12341234"; + + public NewIbTasks(Harness harness) { + this.harness = harness; + } + + public Function loginWithUsernamePasswordAndDefaultMobKey(String id, String password) { + return start -> start.closeCookiesPanelIfVisible() + .clickLoginWithIdAndPassword() + .typeUsername(id) + .clickContinue() + .typePassword(password) + .clickToLogin() + .onAuthMobileKeyPage() + .typeSmsKey(DEFAULT_MOBILE_KEY) + .clickSend() + .onDashboardPage(); + } + + public Function domesticPaymentFormForClientWithOneAccount(PaymentFormData formData) { + return start -> start.clickPayment() + .getAccountNumber(harness) + .fillNumberOfAccount(formData.getRecipientAccountNumber()) + .fillBankCode(formData.getBankCode()) + .fillAmount(formData.getAmount()) + .fillVariableSymbol(formData.getVariableSymbol()) + .fillConstantSymbol(formData.getConstantSymbol()) + .fillSpecificSymbol(formData.getSpecificSymbol()) + .selectTypeOfPayment(formData.getTypeOfPayment()) + .fillRecipientMessage(formData.getRecipientMessage()) + .fillMyNote(formData.getMyNote()) + .clickContinue(); + } + + public Function checkSummaryPaymentPageAndConfirmWithMobileKey(PaymentFormData formData) { + return start -> start.checkFromAccount(formData.getFromAccountType()) + .checkToAccount(formData.getRecipientAccountNumber() + "/" + formData.getBankCode()) + .checkAmount(formData.getAmount()) + .checkTypeOfPayment(formData.getTypeOfPayment()) + .checkDateOfPayment(formData.getDateOfPayment()) + .checkVariableSymbol(formData.getVariableSymbol()) + .checkConstantSymbol(formData.getConstantSymbol()) + .checkSpecificSymbol(formData.getSpecificSymbol()) + .checkRecipientMessage(formData.getRecipientMessage()) + .checkMyNote(formData.getMyNote()) + .clickContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickContinueMobileKey(); + } + + public Function setCreditPaymentForm(PaymentFormData formData) { + return start -> start.clickPayment() + .clickMore() + .clickOnMobileOperatorsTab() + .setPhoneNumber(formData.getPhoneNumber()) + .setOperator(formData.getMobileOperator()) + .setAmount(formData.getAmount()) + .setCategory(formData.getCategory()) + .clickOnSendMessageForRecipient() + .setNoteForRecipient(formData.getRecipientMessage()) + .setConfirmationPhoneNumber(formData.getConfirmationPhoneNumber()) + .clickOnContinue(); + } + + public Function setVodafoneInvoicePaymentForm(PaymentFormData formData) { + return start -> start.clickPayment() + .clickMore() + .clickOnMobileOperatorsTab() + .clickOnVodafoneInvoicePaymentBtn() + .setPhoneNumber(formData.getPhoneNumber()) + .setAmount(formData.getAmount()) + .setCategory(formData.getCategory()) + .clickOnContinueVodafone(); + } + + public Function checkSummaryCreditPaymentPageAndConfirmWithMobileKey(PaymentFormData formData) { + return start -> start.checkRecipientPhoneNumber(formData.getPhoneNumber()) + .checkAmount(formData.getAmount()) + .checkCategory(formData.getCategory()) + .checkMobileOperator((formData.getMobileOperator())) + .checkRecipientMessage(formData.getRecipientMessage()) + .checkConfirmationPhoneNumber(formData.getConfirmationPhoneNumber()) + .clickOnContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkCreditPaymentVictoryText(); + } + + public Function checkSummaryVodafoneInvoicePaymentPageAndConfirmWithMobileKey(PaymentFormData formData) { + return start -> start.checkAmount(formData.getAmount()) + .checkCategory(formData.getCategory()) + .clickOnContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkInvoicePaymentVictoryText(); + } + + public Function setForeignPaymentForm(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setRecipientName(formData.getRecipientName()) + .setRecipientAddressStreet(formData.getRecipientAddressStreet()) + .setRecipientAddressCity(formData.getRecipientAddressCity()) + .setRecipientAddressCountry(formData.getRecipientAddressCountry()) + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnPaymentConfirmationEmailCheckbox() + .setConfirmationEmail(formData.getConfirmationEmail()) + .clickOnContinue(); + } + + public Function checkSummaryForeignPaymentPageAndConfirmWithMobileKey(PaymentFormData formData) { + return start -> start.checkToAccount(formData.getRecipientAccountNumber()) + .checkAmount(formData.getAmount()) + .checkCurrency(formData.getCurrency()) + .checkTypeOfCharge(formData.getTypeOfCharge()) + .checkBankCode(formData.getBankCodeBic()) + .checkBankCountry(formData.getBankCountry()) + .checkNameAddressOfBank(formData.getBankNameAddress()) + .checkRecipientName((formData.getRecipientName())) + .checkRecipientCountry(formData.getRecipientAddressCountry()) + .checkRecipientMessage(formData.getRecipientMessage()) + .checkConfirmationEmail(formData.getConfirmationEmail()) + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkForeignPaymentVictoryText(); + } + + public Function setStandingOrderForm(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnStandingOrderTab() + .setAccountNumber(formData.getRecipientAccountNumber()) + .setBankCode(formData.getBankCode()) + .setNameOfTheStandingOrder(formData.getStandingOrderName()) + .setAmount(formData.getAmount()) + .setDateOfLastPayment(formData.getLastDateOfPayment()) + .setFrequency(formData.getPaymentFrequency()) + .setVariableSymbol(formData.getVariableSymbol()) + .setConstantSymbol(formData.getConstantSymbol()) + .setSpecificSymbol(formData.getSpecificSymbol()) + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnContinue(); + } + + public Function checkSummaryStandingOrderPageAndConfirmWithMobileKey(PaymentFormData formData) { + return start -> start.checkToAccount(formData.getRecipientAccountNumber() + "/" + formData.getBankCode()) + .checkFromAccount(formData.getFromAccountNumber()) + .checkNameOfTheStandingOrder(formData.getStandingOrderName()) + .checkAmount(formData.getAmount()) + .checkDateOfFirstPayment(formData.getDateOfFirstPayment()) + .checkDateOfLastPayment(formData.getLastDateOfPayment()) + .checkFrequency(formData.getPaymentFrequency()) + .checkVariableSymbol(formData.getVariableSymbol()) + .checkConstantSymbol(formData.getConstantSymbol()) + .checkSpecificSymbol(formData.getSpecificSymbol()) + .checkRecipientMessage(formData.getRecipientMessage()) + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkStandingOrderVictoryText() + .goToDashboard(); + } + + public Function goToStandingOrdersOverviewAndDeleteCreatedOne(PaymentFormData formData) { + return start -> start.goToStandingOrders() + .sleepRefreshAndCloseCookiesIfVisible(formData.getStandingOrderName()) + .deleteStandingOrder(formData.getStandingOrderName()) + .confirmDeleteStandingOrder() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkDeleteConfirmationVictoryTxt() + .clickOnClose() + .checkStandingOrderEditedCreatedInfo() + .waitUntilStandingOrderDisappears(formData.getStandingOrderName(), formData.getAmount()) + .clickOnNewStandingOrder(); + } + + public Function setSipoOrderForm(PaymentFormData formData) { + return start -> start.clickPayment() + .clickMore() + .clickOnSipoTab() + .setSipoNumber(formData.getSipoNumber()) + .setValueNotDivisible100("963") + .setSipoEndDate(formData.getLastDateOfPayment()) + .checkAmountNotDivisibleError() + .setSipoLimit(formData.getLimit()) + .clickOnContinue(); + } + + public Function checkSipoOrderSummaryPageAndConfirmWithMobileKey(PaymentFormData formData) { + return start -> start.clickOnEdit() + .clickOnContinue() + .checkPaymentAccount(formData.getFromAccountNumber() + "/0600") + .checkSipoNumber(formData.getSipoNumber()) + .checkSipoLimit(formData.getLimit()) + .checkEndDate(formData.getMonthOfEndSending()) + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .handleSipoVictoryOrPrepared(formData.getSipoNumber(), formData.getLimit()); + } + + public Function deleteSipoOrder(PaymentFormData formData) { + return start -> start.sleepRefreshAndCloseCookiesIfVisible(formData.getSipoNumber(), formData.getFromAccountNumber() + "/0600", formData.getLimit() + ",00") + .clickOnRemoveSipoOrder(formData.getSipoNumber()) + .checkSipoOrderRemoveTitle() + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkSipoOrderRemoveVictoryText() + .goBackToSipoOverview() + .checkSipoOrdersTitle() + .checkNewSipoOrderBtn() + .checkChangeOnSipoOrdersText(formData.getSipoNumber()) + .checkSipoIsDeletedAndRefreshIfNeeded(formData.getSipoNumber()); + } + + public Function sendMortgageMessage(MessagesFormData messagesFormData) { + return start -> start.goToMessages() + .clickOnNewMessage() + .setSubject(messagesFormData.getSubject()) + .setTopic(messagesFormData.getTopic()) + .setMessage(messagesFormData.getMessage()) + .clickOnSendMessage() + .checkMessageSentVictoryTitle() + .closeMessagesModal(); + } + + public Function checkSentMessageAndDeleteCreatedOne(MessagesFormData messagesFormData) { + return start -> start.goToMessages() + .clickOnSentMessages() + .checkSentMessagePresent(messagesFormData.getSubject()) + .goToMessageDetail(messagesFormData.getSubject()) + .deleteMessage() + .confirm() + .checkConfirmationDeleteTextPresent() + .confirm(); + } + + public Function sendOverlimitWithdrawalMessage(MessagesFormData messagesFormData) { + return start -> start.goToMessages() + .clickOnNewMessage() + .setTopic(messagesFormData.getTopic()) + .setAmount(messagesFormData.getAmount()) + .setWithdrawalDate(messagesFormData.getWithdrawalDate()) + .setClientPhoneNumber(messagesFormData.getClientPhoneNumber()) + .setBranch(messagesFormData.getBranch()) + .setMessage(messagesFormData.getMessage()) + .clickOnAgreementW() + .clickOnSendMessage() + .checkMessageSentVictoryTitle() + .closeMessagesModal(); + } + + public Function sendForeignPaymentMessage(MessagesFormData messagesFormData) { + return start -> start.goToMessages() + .clickOnNewMessage() + .setTopic(messagesFormData.getTopic()) + .setIban(messagesFormData.getIban()) + .setAmount(messagesFormData.getAmount()) + .setCurrency(messagesFormData.getCurrency()) + .setDueDate(messagesFormData.getDueDate()) + .setMessage(messagesFormData.getMessage()) + .clickOnAgreement() + .setSubject(messagesFormData.getSubject()) + .clickOnSendMessage() + .checkMessageSentVictoryTitle() + .closeMessagesModal(); + } + + public Function sendReqForRefundOfErroneousPaymentsMessage(MessagesFormData messagesFormData) { + return start -> start.goToMessages() + .clickOnNewMessage() + .setTopic(messagesFormData.getTopic()) + .clickOnUrgent() + .setTransactionDate(messagesFormData.getTransactionDate()) + .setDestinationAccNumber(messagesFormData.getDestinationAccNumber()) + .setBankCode(messagesFormData.getBankCode()) + .setAmount(messagesFormData.getAmount()) + .setVariableSymbol(messagesFormData.getVariableSymbol()) + .setConstantSymbol(messagesFormData.getConstantSymbol()) + .setSpecificSymbol(messagesFormData.getSpecificSymbol()) + .setAccNumberForRefund(messagesFormData.getAccNumberForRefund()) + .setRefundedBankCode(messagesFormData.getBankCodeForRefund()) + .setPhoneNumberForRefund(messagesFormData.getPhoneNumberForRefund()) + .setRecipientMessage(messagesFormData.getRecipientMessage()) + .clickOnAgreement() + .setSubject(messagesFormData.getSubject()) + .clickOnSendMessage() + .checkMessageSentVictoryTitle() + .closeMessagesModal(); + } + + public Function sendComplaintsAndClaimsMessage(MessagesFormData messagesFormData) { + return start -> start.goToMessages() + .clickOnNewMessage() + .setTopic(messagesFormData.getTopic()) + .setTypeOfComplaintsAndClaims(messagesFormData.getTypeOfComplaintsAndClaims()) + .setSubject(messagesFormData.getSubject()) + .setMessage(messagesFormData.getMessage()) + .clickOnSendMessage() + .checkMessageSentVictoryTitle() + .closeMessagesModal(); + } + + public Function setDomesticTemplateForm(PaymentFormData formData) { + return start -> start.clickOnSettings() + .clickOnTemplates() + .createTemplate() + .setTemplateName(formData.getTemplateName()) + .setDestinationAccPrefix(formData.getPrefixAccountNumber()) + .setDestinationAccNumber(formData.getRecipientAccountNumber()) + .setDestinationAccBank(formData.getBankCode()) + .setAmount(formData.getAmount()) + .setVariableSymbol(formData.getVariableSymbol()) + .setConstantSymbol(formData.getConstantSymbol()) + .setSpecificSymbol(formData.getSpecificSymbol()) + .setRecipientMessage(formData.getRecipientMessage()) + .setNoteForPayer(formData.getMyNote()) + .setCategory(formData.getCategory()) + .clickOnCreate() + .clickOnBackToList(); + } + + public Function checkTemplateAndDeleteCreatedOne(PaymentFormData formData) { + return start -> start.checkTemplateName(formData.getTemplateName()) + .checkDestinationAccNumber(formData.getPrefixAccountNumber() + '-' + formData.getRecipientAccountNumber() + '/' + formData.getBankCode()) + .deleteTemplate() + .confirmDeleteTemplate() + .checkDeleteConfirmationTitleIsPresent() + .closeModal(); + } + + public Function setForeignTemplateForm(PaymentFormData formData) { + return start -> start.clickOnSettings() + .clickOnTemplates() + .clickOnForeignTab() + .createTemplate() + .setTemplateName(formData.getTemplateName()) + .setIban(formData.getIban()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setFees(formData.getTypeOfCharge()) + .setRecipientName(formData.getRecipientName()) + .setRecipientAddressStreet(formData.getRecipientAddressStreet()) + .setRecipientAddressCity(formData.getRecipientAddressCity()) + .setRecipientAddressCountry(formData.getRecipientAddressCountry()) + .setRecipientNote(formData.getRecipientMessage()) + .clickOnConfirmationEmailCheckbox() + .setConfirmationEmail(formData.getConfirmationEmail()) + .clickOnCreate() + .clickOnBackToList(); + } + + public Function checkForeignTemplateAndDeleteCreatedOne(PaymentFormData formData) { + return start -> start.checkTemplateName(formData.getTemplateName()) + .checkDestinationAccNumber(formData.getIban()) + .deleteTemplate() + .confirmDeleteTemplate() + .checkDeleteConfirmationTitleIsPresent() + .closeModal(); + } + + public Function checkPaymentOptionsOnDashboard() { + return start -> start.checkNewPaymentBtnIsPresent() + .checkStandingOrdersBtnIsPresent() + .checkHistoryBtnIsPresent() + .goToNewPayment() + .goToDashboard() + .goToStandingOrders() + .closeModal() + .goToDashboard(); + } + + public Function createStandingOrderViaSettings(PaymentFormData formData) { + return start -> start.clickOnSettings() + .clickOnStandingOrders() + .clickOnNewStandingOrder() + .setAccountNumberPrefix(formData.getPrefixAccountNumber()) + .setAccountNumber(formData.getRecipientAccountNumber()) + .setBankCode(formData.getBankCode()) + .setNameOfTheStandingOrder(formData.getStandingOrderName()) + .setAmount(formData.getAmount()) + .setDateOfLastPayment(formData.getLastDateOfPayment()) + .setFrequency(formData.getPaymentFrequency()) + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnContinue() + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkStandingOrderVictoryText() + .clickOnStandingOrders() + .sleepRefreshAndCloseCookiesIfVisible(formData.getStandingOrderName()) + .clickOnStandingOrder(formData.getStandingOrderName()) + .checkAmount(formData.getAmount()) + .checkFrequency(formData.getPaymentFrequency()) + .clickOnEdit(formData.getStandingOrderName()) + .setAmount(formData.getAmount2()) + .clickOnContinue() + .clickOnContinue() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkStandingOrderChangeVictoryText() + .clickOnBackToStandingOrders() + .waitUntilStandingOrderDisappears(formData.getStandingOrderName(), formData.getAmount()) + .deleteStandingOrder(formData.getStandingOrderName()) + .confirmDeleteChangedStandingOrder() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkDeleteConfirmationVictoryTxt() + .clickOnClose() + .checkStandingOrderEditedCreatedInfo() + .waitUntilStandingOrderDisappears(formData.getStandingOrderName(), formData.getAmount2()) + .clickOnNewStandingOrder(); + } + + public Function createSipoOrderViaSettings(PaymentFormData formData) { + return start -> start.clickOnSettings() + .clickOnSipo() + .clickOnNewSipo() + .setSipoNumber(formData.getSipoNumber()) + .setSipoLimit(formData.getLimit()) + .setSipoEndDate(formData.getLastDateOfPayment()) + .clickOnContinue() + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .goToDashboardFromSipoVictory() + .clickOnSettings() + .clickOnSipo() + .sleepRefreshAndCloseCookiesIfVisible(formData.getSipoNumber(), formData.getFromAccountNumber() + "/0600", formData.getLimit() + ",00") + .clickOnEdit(formData.getSipoNumber()) + .setSipoLimit("200") + .clickOnContinue() + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkSipoOrderChangeVictoryText() + .clickOnBackToSipoOrders() + .sleepRefreshAndCloseCookiesIfVisible(formData.getSipoNumber(), formData.getFromAccountNumber() + "/0600", "200,00") + .clickOnRemoveSipoOrder(formData.getSipoNumber()) + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .goBackToSipoOverview() + .checkSipoOrdersTitle() + .checkNewSipoOrderBtn() + .checkChangeOnSipoOrdersText(formData.getSipoNumber()) + .checkSipoIsDeletedAndRefreshIfNeeded(formData.getSipoNumber()); + } + + public Function checkVerticalMenuItems() { + return start -> start.checkUrl() + .checkThemeSwitcherIsPresent() + .checkIncomeExpensesOverviewIsPresent() + .clickPayment() + .checkNewPaymentTitlePresent() + .goToAccounts() + .checkUrl() + .goToSavings() + .checkUrl() + .checkBuildingSavingsProductCardIsPresent() + .goToLoansAndMortgages() + .checkUrl() + .checkMortgageBannerIsPresent() + .checkLeasingBannerIsPresent() + .goToCards() + .checkUrl() + .checkSmartCreditCardBannerIsPresent() + .goToInsurance() + .checkInsuranceHeadlineIsPresent() + .goToInvestments() + .confirmDisclaimer() + .checkUrl() + .checkInvestmentsTitleIsVisible() + .checkInvestmentsHeaderIsVisible() + .goToExchange(); + } + + public Function checkHorizontalMenuItems() { + return start -> start.checkUrl() + .clickOnBlockBanking() + .checkBlockBankingTitleIsPresent() + .closeBlockBanking() + .goToMessagesAndNotification() + .checkUrl() + .checkMessagesTitle() + .checkNewMessageBtnIsPresent() + .checkCloseBtnIsPresent() + .closeMessagesModal() + .goToDocuments() + .checkUrl() + .checkDocumentsTitleIsPresent() + .checkFilterBtnIsPresent() + .checkCloseBtnIsPresent() + .closeDocumentsModal() + .clickOnSettings() + .checkUrl() + .checkSettingsTitleIsPresent() + .checkThemeSwitcherIsPresent() + .closeSettingsModal() + .clickLogout() + .denyLogout() + .clickOnHorizontalContacts() + .checkContactsPopupTitle() + .clickOnBlockingBanking() + .checkBlockBankingTitleIsPresent() + .closeBlockBanking() + .goToContactsAndCheckUrl(); + } + + public Function setBulkPaymentForm(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnBulkPaymentTab() + .setAccountNumber(formData.getRecipientAccountNumber()) + .setBankCode(formData.getBankCode()) + .setAmount(formData.getAmount()) + .clickOnContinue() + .clickOnAddPayment() + .setAccountNumber(formData.getRecipientAccountNumberOtherBank()) + .setBankCode(formData.getBankCodeOtherBank()) + .setAmount(formData.getAmountForBulkPayment()) + .setVariableSymbol(formData.getVariableSymbol()) + .setConstantSymbol(formData.getConstantSymbol()) + .setSpecificSymbol(formData.getSpecificSymbol()) + .setRecipientMessage(formData.getRecipientMessage()) + .setPayerNote(formData.getMyNote()) + .clickOnAddPayment() + .setAccountNumber(formData.getRecipientAccountNumber()) + .setBankCode(formData.getBankCode()) + .setAmount(formData.getAmountOverLimit()) + .clickOnContinue() + .clickOnContinue() + .checkOverLimitPaymentWarningText(formData.getOverLimitPaymentWarningText()) + .clickOnBack() + .clickOnDeletePayment() + .clickOnCancelModalClose() + .clickOnDeletePayment() + .clickOnCancelModalConfirm(); + } + + public Function checkSummaryBulkPaymentPageAndConfirmWithMobileKey(PaymentFormData formData) { + return start -> start.checkNumberOfPayments(formData.getNumberOfPayments()) + .checkRecipientAccNumber(formData.getRecipientAccountNumber() + "/" + formData.getBankCode()) + .checkAmount(formData.getAmount()) + .checkRecipientAccNumber(formData.getRecipientAccountNumberOtherBank() + "/" + formData.getBankCodeOtherBank()) + .checkAmount(formData.getAmountForBulkPayment()) + .clickOnContinue() + .clickOnSubmit() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkBulkPaymentVictoryPage(formData.getNumberOfBulkPaymentVictoryText(), formData.getTotalAmountBulkPayment()); + } + + public Function createNewContactAndDeleteCreatedOne(ContactsFormData formData) { + return start -> start.clickOnSettings() + .clickOnContacts() + .checkContactForMobileKeyExist() + .createNewContact() + .clickSubmitStayOnPage() + .checkValidationTextsArePresent() + .setName(formData.getName()) + .setPhoneNumber(formData.getPhoneNumber()) + .setOperator(formData.getOperator()) + .submitNewContact() + .checkVictoryScreenIsPresent() + .clickOnBackToContacts() + .checkCreatedContactName(formData.getName()) + .editContact(formData.getName()) + .setName(formData.getName() + "edited") + .submitNewContact() + .checkEditVictoryScreenIsPresent() + .clickOnBackToContacts() + .checkCreatedContactName(formData.getName() + "edited") + .deleteContact(formData.getName() + "edited") + .confirmDeleteContact() + .checkContactDeletedVictoryTextIsPresent() + .closeDeletedContactConfirmationModal(); + } + + public Function createNewEnvelopeEditAndDeleteCreatedOne(EnvelopesFormData formData) { + return start -> start.clickOnSettings() + .clickOnEnvelopes() + .checkNoEnvelopesMessageIsPresent() + .createNewEnvelope() + .setEnvelopeName(formData.getEnvelopeName()) + .setAmount(formData.getAmount()) + .submitNewEnvelope(formData.getCategory()) + .checkVictoryScreenIsPresent() + .clickOnBackToEnvelopes() + .checkCreatedEnvelopeIsPresent(formData.getEnvelopeName(), formData.getAmount()) + .editEnvelope(formData.getEnvelopeName()) + .changeEnvelopeName(formData.getEnvelopeName() + "edited") + .changeAmount("200") + .submitEditedEnvelope() + .checkEditVictoryScreenIsPresent() + .clickOnBackToEnvelopes() + .checkCreatedEnvelopeIsPresent(formData.getEnvelopeName() + "edited", "200,00") + .deleteEnvelope() + .checkDeleteEnvelopeModalIsPresent(formData.getEnvelopeName() + "edited") + .confirmDeleteEnvelope() + .checkEnvelopeDeletedVictoryTextIsPresent() + .closeDeletedEnvelopeConfirmationModal() + .checkNoEnvelopesMessageIsPresent() + ; + } + + public Function changeIdViaSettings() { + return start -> start.clickOnSettings() + .clickOnChangeId() + .checkModalTitleIsPresent() + .checkModalTextIsPresent() + .clickOnDecline(); + } + + public Function setDirectDebitForm(PaymentFormData formData) { + return start -> start.clickPayment() + .clickMore() + .clickOnDirectDebitTab() + .fillPrefixAccountNumber(formData.getRecipientAccountNumberPrefix()) + .fillAccountNumber(formData.getRecipientAccountNumber()) + .setBankCode(formData.getBankCode()) + .fillNameOfDirectDebit(formData.getDirectDebitName()) + .fillDirectDebitLimit(formData.getDirectDebitLimit()) + .fillDateOfLastPayment(formData.getDateOfLastPayment()) + .selectFrequencyOfDirectDebit(formData.getFrequencyOfPayments()) + .clickOnContinue() + .clickBack() + .clickOnContinue(); + } + + public Function checkSummaryDebitForm(PaymentFormData formData) { + return start -> start.checkPaymentFromAccount(formData.getFromAccountNumber() + "/0600") + .checkPaymentToAccount(formData.getRecipientAccountNumberPrefix() + "-" + formData.getRecipientAccountNumber() + "/" + formData.getBankCode()) + .checkNameOfDirectDebit(formData.getDirectDebitName()) + .checkLimitOfDirectDebit(formData.getDirectDebitLimit()) + .checkDateOfFirstPayment(formData.getDateOfFirstPayment()) + .checkEndDateOfDirectDebit(formData.getDateOfLastPayment()) + .checkFrequencyOfDirectDebit(formData.getFrequencyOfPayments()) + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey(); + } + + public Function checkVictoryPageOfDirectDebit(PaymentFormData formData) { + return start -> start.handleDirectDebitVictoryOrPrepared(formData.getDateOfFirstPayment(), formData.getFromAccountNumber() + "/0600") + .clickOnSettings() + .clickOnDirectDebit() + .sleepRefreshAndCloseCookiesIfVisible(formData.getDirectDebitName(), formData.getFromAccountNumber(), formData.getDirectDebitLimit()); + } + + public Function checkExchange(ExchangeFormData formData) { + return start -> start.goToExchange() + .checkBuyCurrency("USD") + .setFirstExchangeAmount("10") + .clickOnRequestExchangeRate() + .checkMinimumDebitAmountAlert() + .setFirstExchangeAmount(formData.getFirstAmount()) + .clickOnRequestExchangeRate() + .clickOnNewSale() + .clickOnRequestExchangeRate() + .checkValidityOfferedRateIsPresent() + .waitUntilTimerRunsOutCheckAlert() + .clickOnRequestExchangeRate() + .clickOnConcludeSale() + .checkVictoryScreenIsPresent() + .checkSaleAmountIsPresent() + .clickOnNewSale() + .clickOnSwapAccounts() + .checkSellCurrency("USD") + .setSecondExchangeAmount(formData.getFirstAmount()) + .clickOnRequestExchangeRate() + .clickOnConcludeSale() + .checkVictoryScreenIsPresent() + .checkBuyAmountIsPresent() + .clickOnNewSale() + .setSecondExchangeAmount("10") + .clickOnRequestExchangeRate() + .checkMinimumCreditAmountAlert() + .setSecondExchangeAmount(formData.getSecondAmount()) + .clickOnRequestExchangeRate() + .clickOnConcludeSale() + .checkVictoryScreenIsPresent() + .checkBuyCurrencyAmountIsPresent("USD") + .clickOnNewSale() + .clickOnSwapAccounts() + .setFirstExchangeAmount(formData.getSecondAmount()) + .clickOnRequestExchangeRate() + .clickOnConcludeSale() + .checkVictoryScreenIsPresent() + .checkSellCurrencyAmountIsPresent("USD") + .clickOnNewSale() + .clickOnTomAccount() + .selectToAccount() + .checkBuyCurrency("EUR") + .setSecondExchangeAmount(formData.getSecondAmount()) + .clickOnRequestExchangeRate() + .clickOnConcludeSale() + .checkVictoryScreenIsPresent() + .checkSellCurrencyAmountIsPresent("EUR") + .clickOnBackToOverview(); + } + + public Function checkAboutTheSmartBanka() { + return start -> (AboutTheSmartBankaPage) start.clickOnSettings() + .clickOnAboutTheSmartBanka() + .checkUrl() + .checkTitleIsPresent() + .checkBackToSettingsIsPresent() + .checkActivateUpIsPresent() + .checkActivateDownIsPresent() + .checkMoreInformationIsPresent() + .clickOnActivateUp() + .checkRedirectingToOldIbTitleIsPresent() + .clickOnCancel() + .clickOnActivateDown() + .checkRedirectingToOldIbTitleIsPresent() + .clickOnCancel() + .clickOnBackToSetting() + .checkSettingsTitleIsPresent() + .clickOnAboutTheSmartBanka() + .clickOnClose() + .clickOnSettings() + .clickOnAboutTheSmartBanka() + .goToMoreInformationsAndCheckUrl(); + } + + public Function checkAboutTheSmartBankaAuthorization() { + return start -> (AboutTheSmartBankaPage) start.clickOnSettings() + .clickOnAuthorizations() + .checkAuthorizationTitleIsPresent() + .clickPush() + .checkModalTitleIsPresent() + .clickOnDecline() + .clickPush() + .clickOnConfirm() + .checkUrl() + .checkTitleIsPresent() + .checkBackToSettingsIsPresent() + .checkActivateUpIsPresent() + .checkActivateDownIsPresent() + .checkMoreInformationIsPresent() + .clickOnActivateUp() + .checkRedirectingToOldIbTitleIsPresent() + .clickOnCancel() + .clickOnActivateDown() + .checkRedirectingToOldIbTitleIsPresent() + .clickOnCancel() + .clickOnBackToSetting() + .checkSettingsTitleIsPresent() + .clickOnAboutTheSmartBanka() + .clickOnClose() + .clickOnSettings() + .clickOnAboutTheSmartBanka() + .goToMoreInformationsAndCheckUrl(); + } + + public Function changeLimitsViaSettings(PaymentFormData formData) { + return start -> start.clickOnSettings() + .clickOnLimits() + .checkUrl() + .checkBackToSettingsIsPresent() + .checkCloseBtnIsPresent() + .clickOnBackToSettings() + .clickOnLimits() + .checkTextComponentIBIsPresent() + .checkTextComponentSBIsPresent() + .checkInternetBankaDayLimitActive() + .checkInternetBankaWeekLimitUnactive() + .checkInternetBankaDayLimitValueIsPresent(formData.getAmount()) + .clickOnInternetBankyWeekLimitActivate() + .changeInternetBankaDayLimit("100") + .changeInternetBankaWeekLimit("200") + .checkSmartBankaDayLimitActive() + .checkSmartBankaWeekLimitUnactive() + .checkSmartBankaDayLimitValueIsPresent(formData.getAmount()) + .clickOnSmartBankyWeekLimitActivate() + .changeSmartBankaDayLimit("300") + .changeSmartBankaWeekLimit("400") + .clickOnContinueBtn() + .checkInternetBankaDayLimit("100") + .checkInternetBankaWeekLimit("200") + .checkSmartBankaDayLimit("300") + .checkSmartBankaWeekLimit("400") + .clickOnConfirmBtn() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnConfirm() + .checkVictoryTitleIsPresent() + .clickOnBackToLimits() + .checkInternetBankaDayLimitValueIsPresent("100") + .checkInternetBankaWeekLimitValueIsPresent("200") + .checkSmartBankaDayLimitValueIsPresent("300") + .checkSmartBankaWeekLimitValueIsPresent("400") + .clickOnCloseBtn(); + } + + public Function resetLimitsViaSettings(PaymentFormData formData) { + return start -> start.clickOnSettings() + .clickOnLimits() + .clickOnInternetBankyWeekLimitActivate() + .changeInternetBankaDayLimit(formData.getAmount()) + .clickOnSmartBankyWeekLimitActivate() + .changeSmartBankaDayLimit(formData.getAmount()) + .clickOnContinueBtn() + .checkInternetBankaDayLimit(formData.getAmount()) + .checkSmartBankaDayLimit(formData.getAmount()) + .clickOnConfirmBtn() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnConfirm() + .checkVictoryTitleIsPresent() + .clickOnBackToLimits() + .checkInternetBankaDayLimitValueIsPresent(formData.getAmount()) + .checkSmartBankaDayLimitValueIsPresent(formData.getAmount()) + .clickOnCloseBtn(); + } + + public Function checkTrustedContacts(TrustedContactsFormData formData) { + return start -> start.clickOnSettings() + .clickOnTrustedContacts() + .checkUrl() + .checkCloseBtnIsPresent() + .checkBackToSettingsIsPresent() + .clickOnBackToSettings() + .clickOnTrustedContacts() + .checkTrustedContactsInfoTextIsPresent() + /*.checkInfoTextComponetIsPresent() + .checkAccountTextComponetIsPresent() + .checkUsedInTemplateTextComponetIsPresent() + .checkCreatedTextComponetIsPresent() + .checkFullTextFilterIsPresent() + .clickOnShowMoreAccounts() + .clickOnDelete() + .checkTitleIsPresent() + .checkInfoTextIsPresent() + .clickOnDecline() + .clickOnTrustedAccount() + .checkNameIsNotEmpty() + .checkAccountNumberIsNotEmpty() + .checkCreateDateIsNotEmpty() + .checkUsedInTemplateIsNotEmpty() + .clickOnEdit() + .setLongName(formData.getSetNameOfTrustedContactLong()) + .clickOnSave() + .checkLongName() + .clickOnEdit() + .clickOnCancel() + .checkLongName() + .clickOnEdit() + .setShortName(formData.getSetNameOfTrustedContactShort()) + .clickOnSave() + .checkShortName()*/ + .clickOnCloseBtn(); + } + + public Function personalAndContactDetailsSettings() { + return start -> start.clickOnSettings() + .clickOnPersonalAndContactDetailsSettings() + .checkPermanentFirstNameIsPresent("Automat") + .checkPermanentLastNameIstpresent("OsobníAkontaktníÚdaj") + .checkPermanentTitleIsPresent("Ing.") + .checkPermanentStreetIsPresent("Na Kleovce 2162/2") + .checkPermanentCityIsPresent("Praha 2") + .checkPermanentZipIsPresent("12000") + .checkPermanentCountryIsPresent("Česká republika") + .checkContactStreetIsPresent("Na Kleovce 2162/2") + .checkContactCityIsPresent("Praha 2") + .checkContactZipIsPresent("12000") + .checkContactCountrytIsPresent("Česká republika") + .checkContactMobileIsPresent("+420 606 072 184") + .checkContactEmailIsPresent("testbest@moneta.cz") + .checkAlertTextIsPresent() + .clickOnEdit() + .checkEditTitleIsPresent() + .checkCheckboxIsCheck() + .checkStreetIsDisable() + .checkDescriptiveNumberIsDisable() + .checkOrientationNumberIsDisable() + .checkTownIsDisable() + .checkZipIsDisable() + .checkCountryIsDisable() + .checkMobilePhoneIsDisable() + .checkEmailIsEnable() + .clickOnCheckbox() + .fillStreet("") + .clickOnConfirmButton() + .checkStreetErrorMessage() + .fillStreet("Na Kleovce") + .clickOnConfirmButton() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnConfirm() + .checkVictoryHeaderIsPresent() + .checkVictorySentenceIsPresent() + .clickOnSubmitButton() + .checkTitleIsPresent(); + } + + public Function onboardingOfPlasticDebitCard() { + return start -> start + .goToAccounts() + .clickOnNewDebitCard() + .clickPlasticCardFreeButton() + .clickDontWantToPayFasterButton() + .clickContinueButton() + .clickContinueButtonAndWaitForVisibleButton() + .waitForLoader() + .clickUnderstandAndAgreeButton() + .waitForLoader() + .clickSign() + .typeSmsKey("12341234") + .clickSignToFinalPage() + .waitForConfirmationOfPlasticOnboarding(); + } + + public Function onboardingOfVirtualDebitCard() { + return start -> start + .goToAccounts() + .clickOnNewDebitCard() + .clickVirtualCardFreeButton() + .clickDontWantToPayFasterButton() + .clickContinueButton() + .clickContinueButtonAndWaitForVisibleButton() + .waitForLoader() + .clickUnderstandAndAgreeButton() + .waitForLoader() + .clickSign() + .typeSmsKey("12341234") + .clickSignToFinalPage() + .waitForConfirmationOfVirtualOnboarding(); + } + + public Function checkMaxNumberOfCardsOnboarded() { + return start -> start + .goToAccounts() + .checkNewDebitCardNotVisible() + .goToCards() + .checkNewDebitCardNotVisible(); + } + + public Function cancelDebitCard() { + return start -> start + .clickCancelCardRadio() + .clickContinue() + .then(smsKeyAuthorizationPopup()) + .cancelMessageAppeared() + .clickBackToCard() + .clickDetailsAndSettings() + .checkCardDetailInfo("Zrušená"); + } + + public Function showPinOnDebitCard(String accountNumber, String cardNumber) { + return start -> start + .goToCards() + .clickAccountNumber(accountNumber) + .clickCardNumber(cardNumber) + .clickNextSettings() + .clickShowPin() + .clickShowPinButton() + .typeMobileKey(DEFAULT_MOBILE_KEY) + .clickToShowPinAndWait(); + } + + public Function showPinOnCreditCard(String cardNumber) { + return start -> start + .goToCards() + .clickCardNumber(cardNumber) + .clickNextSettings() + .clickShowPin() + .clickShowPinButton() + .typeMobileKey(DEFAULT_MOBILE_KEY) + .clickToShowPinAndWait(); + } + + public Function conditionallyApproveApplicationInProgress() { + return start -> start + .clickApplicationHeaderText() + .scrollToBottom() + .clickAgreeAndContinueToSign() + .fillMobKey(DEFAULT_MOBILE_KEY) + .clickSign() + .checkSuccessApplicationSent() + .clickReturnToOverview(); + } + + public Function checkAndSignNewDocument() { + return start -> start + .clickCheckAndSignNewDocument() + .scrollToBottom() + .clickContinueToSign() + .fillMobKey(DEFAULT_MOBILE_KEY) + .clickSign(); + } + + public Function createTermDeposit(SavingsFormData formData) { + return start -> start + .checkBannersPresent() + .goToSavings() + .clickOnCreateTvForCurrency(formData.getCurrency()) + .clickOnAccount() + .selectAccount(formData.getCurrency()) + .setLimitAmountMin(formData.getLimitAmountMin()) + .checkMinimumLimit() + .setLimitAmountMax(formData.getLimitAmountMax()) + .checkMaximumLimit() + .setAmount(formData.getAmount()) + .clickOnTV(formData.getTermDepositType()) + .clickOnPeriod() + .selectPeriod(formData.getTermDepositPeriod()) + .clickOnTaxResidence() + .selectTaxResidence(formData.getTaxResidence1()) + .handleTaxIdIfPresent1("987654321") + .clickOnAddNextTaxResidence() + .clickOnNextTaxResidence1() + .selectTaxResidence(formData.getTaxResidence2()) + .handleTaxIdIfPresent2("123456789") + .checkNextTaxResidenceButtonExist() + .clickOnConfirmTV() + .scrollToBottom() + .clickOnCheckBox() + .clickOnAgreePrecontract() + .fillMobKey(DEFAULT_MOBILE_KEY) + .clickOnSubmit() + .checkSuccessApplicationSent() + .clickOnBackToDashboard() + .checkLoadDashboard(); + } + + public Function createAndCancelTermDeposit(SavingsFormData formData) { + return start -> start + .goToSavings() + .clickOnCreateTvForCurrency(formData.getCurrency()) + .clickOnAccount() + .selectAccount(formData.getCurrency()) + .setAmount(formData.getAmount()) + .clickOnTV(formData.getTermDepositType()) + .clickOnPeriod() + .selectPeriod(formData.getTermDepositPeriod()) + .clickOnTaxResidence() + .selectTaxResidence(formData.getTaxResidence1()) + .handleTaxIdIfPresent1("987654321") + .clickOnAddNextTaxResidence() + .clickOnNextTaxResidence1() + .selectTaxResidence(formData.getTaxResidence2()) + .clickOnAddNextTaxResidence() + .clickOnNextTaxResidence2() + .selectTaxResidence(formData.getTaxResidence3()) + .clickOnAddNextTaxResidence() + .clickOnNextTaxResidence3() + .selectTaxResidence(formData.getTaxResidence4()) + .clickOnAddNextTaxResidence() + .clickOnNextTaxResidence4() + .selectTaxResidence(formData.getTaxResidence5()) + .checkNextTaxResidenceButtonDoesntExist() + .clickOnConfirmTV1() + .confirmInvalidDic() + .scrollToBottom() + .clickOnDecline() + .clickOnConfirmDisagreement() + .checkLoadDashboard(); + } + + public Function setDomesticForeignPaymentForm(PaymentFormData formData) { + return start -> start.clickPayment() + .fillNumberOfAccount(formData.getRecipientAccountNumberEur()) + .fillBankCode(formData.getBankCode()) + .fillAmount(formData.getAmount()) + .fillCurrency(formData.getCurrency()) + .checkAllInfoBlocksPresent() + .clickOnIndividualRateOn() + .checkIndividualInfoExist() + .clickContinueIndividual() + .checkIndividualPopupExist() + .clickOnDecline() + .clickContinueIndividual() + .clickOnConfirm() + .clickOnBack() + .clickOnIndividualRateOff() + .fillVariableSymbol(formData.getVariableSymbol()) + .fillConstantSymbol(formData.getConstantSymbol()) + .fillSpecificSymbol(formData.getSpecificSymbol()) + .fillRecipientMessage(formData.getRecipientMessage()) + .clickContinue() + .checkFromAccount(formData.getFromAccountType()) + .checkToAccount(formData.getRecipientAccountNumberEur() + "/" + formData.getBankCode()) + .checkAmount(formData.getAmount()) + .checkVariableSymbol(formData.getVariableSymbol()) + .checkConstantSymbol(formData.getConstantSymbol()) + .checkSpecificSymbol(formData.getSpecificSymbol()) + .checkRecipientMessage(formData.getRecipientMessage()) + .clickContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickContinueButton(); + } + + public Function checkFutureTransaction(PaymentFormData formData) { + return start -> start.checkToAccount(formData.getRecipientAccountNumber() + "/" + formData.getBankCode()) + .checkDateOfPayment(formData.getDateOfPayment()) + .checkVariableSymbol(formData.getVariableSymbol()) + .checkConstantSymbol(formData.getConstantSymbol()) + .checkSpecificSymbol(formData.getSpecificSymbol()) + .checkRecipientMessage(formData.getRecipientMessage()) + .checkMyNote(formData.getMyNote()); + } + + public Function setDomesticPriorityPaymentFirstStep(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnFromAccount() + .checkFromAccount() + .selectFromAccount() + .fillNumberOfAccount(formData.getRecipientAccountNumber()) + .fillBankCode(formData.getBankCode()) + .fillAmount(formData.getAmount()) + .clickOnTypeOfPayment() + .checkPriorityPaymentTypeDisabled() + .fillNumberOfAccount(formData.getRecipientAccountNumberOtherBank()) + .fillBankCode(formData.getBankCodeOtherBank()) + .selectTypeOfPayment(formData.getTypeOfPayment()) + .selectCategory(formData.getCategory()) + .fillVariableSymbol(formData.getVariableSymbol()) + .fillConstantSymbol(formData.getConstantSymbol()) + .fillSpecificSymbol(formData.getSpecificSymbol()) + .fillRecipientMessage(formData.getRecipientMessage()) + .fillMyNote(formData.getMyNote()) + .clickContinue(); + } + + public Function setDomesticPriorityPaymentSecondStep(PaymentFormData formData) { + return start -> start.checkFromAccount(formData.getFromAccountType()) + .checkToAccount(formData.getRecipientAccountNumberOtherBank() + "/" + formData.getBankCodeOtherBank()) + .checkAmount(formData.getAmount()) + .checkTypeOfPayment(formData.getTypeOfPayment()) + .checkDateOfPayment(formData.getDateOfPayment()) + .clickContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickContinueMobileKey(); + } + + public Function setDomesticPaymentThirdStep(PaymentFormData formData) { + return start -> start.checkPaymentOrderSentTitle() + .checkEnvelopeText() + .checkStandingOrderText() + .checkCategoryField(formData.getCategory()) + .clickOverviewTransactions(); + } + + public Function setDomesticPaymentSaveTemplate(PaymentFormData formData) { + return start -> start.clickPayment() + .fillNumberOfAccount(formData.getRecipientAccountNumber()) + .fillBankCode(formData.getBankCode()) + .fillAmount(formData.getAmount()) + .fillVariableSymbol(formData.getVariableSymbol()) + .fillConstantSymbol(formData.getConstantSymbol()) + .fillSpecificSymbol(formData.getSpecificSymbol()) + .fillRecipientMessage(formData.getRecipientMessage()) + .fillMyNote(formData.getMyNote()) + .selectSaveAsTemplateCheckbox() + .fillTemplateName(formData.getTemplateName()) + .clickContinue() + .clickContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickContinueMobileKey() + .clickNextPaymentButton(); + } + + public Function setDomesticPaymentFromTemplate(PaymentFormData formData) { + return start -> start.clickOnMyAccounts() + .selectTemplate(formData.getTemplateName()) + .clickContinue() + .checkFromAccount(formData.getFromAccountType()) + .checkToAccount(formData.getRecipientAccountNumber() + "/" + formData.getBankCode()) + .checkAmount(formData.getAmount()) + .checkVariableSymbol(formData.getVariableSymbol()) + .checkConstantSymbol(formData.getConstantSymbol()) + .checkSpecificSymbol(formData.getSpecificSymbol()) + .checkRecipientMessage(formData.getRecipientMessage()) + .checkMyNote(formData.getMyNote()) + .clickContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickContinueMobileKey(); + } + + public Function deleteTemplate(PaymentFormData formData) { + return start -> start.checkTemplateName(formData.getTemplateName()) + .checkDestinationAccNumber(formData.getRecipientAccountNumber() + '/' + formData.getBankCode()) + .deleteTemplate() + .confirmDeleteTemplate() + .checkDeleteConfirmationTitleIsPresent() + .closeModal(); + } + + public Function setDomesticPaymentFirstStep(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnFromAccount() + .checkFromAccount() + .selectFromAccount() + .fillNumberOfAccount(formData.getRecipientAccountNumber()) + .fillBankCode(formData.getBankCode()) + .fillAmount(formData.getAmount()) + .selectCategory(formData.getCategory()) + .fillVariableSymbol(formData.getVariableSymbol()) + .fillConstantSymbol(formData.getConstantSymbol()) + .fillSpecificSymbol(formData.getSpecificSymbol()) + .fillRecipientMessage(formData.getRecipientMessage()) + .fillMyNote(formData.getMyNote()) + .selectTypeOfPayment(formData.getTypeOfPayment()); + } + + public Function setDomesticPaymentToOwnAccount(PaymentFormData formData, String savingsAccount) { + return start -> start.clickPayment() + .clickOnFromAccount() + .checkFromAccount() + .selectFromAccount() + .clickOnMyAccounts() + .selectSavingsAccount() + .checkDestinationAccountNumber(savingsAccount) + .checkDestinationAccountBank("0600") + .fillAmount(formData.getAmount()) + .selectCategory(formData.getCategory()) + .fillVariableSymbol(formData.getVariableSymbol()) + .fillConstantSymbol(formData.getConstantSymbol()) + .fillSpecificSymbol(formData.getSpecificSymbol()) + .fillRecipientMessage(formData.getRecipientMessage()) + .fillMyNote(formData.getMyNote()); + } + + public Function checkSummaryPaymentToOwnAccountPageAndConfirm(PaymentFormData formData, String savingsAccount) { + return start -> start.checkFromAccount(formData.getFromAccountType()) + .checkToAccount(savingsAccount + "/" + "0600") + .checkAmount(formData.getAmount()) + .checkVariableSymbol(formData.getVariableSymbol()) + .checkConstantSymbol(formData.getConstantSymbol()) + .checkSpecificSymbol(formData.getSpecificSymbol()) + .checkRecipientMessage(formData.getRecipientMessage()) + .checkMyNote(formData.getMyNote()) + .checkNoMobileKeyIsNeeded() + .clickContinueMobileKey(); + } + + public Function foreignPaymentBankNotAcceptingTheGivenCurrency(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setRecipientName(formData.getRecipientName()) + .checkBic(formData.getBankCodeBic()) + .checkBankName(formData.getBankNameAddress()) + .checkStreet(formData.getRecipientBankAddressStreet()) + .checkCity(formData.getRecipientBankCity()) + .checkCountry(formData.getBankCountry()) + .clickContinueAndStayOnSamePage() + .checkValidationCurrencyIsNotAccepted(formData.getValidationCurrency()); + } + + public Function bicContainsTheCountryOfTheRecipientBank(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setRecipientBankBic(formData.getBankCodeBic()) + .setRecipientName(formData.getRecipientName()) + .setRecipientAddressCountry(formData.getRecipientAddressCountry()) + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnPaymentConfirmationEmailCheckbox() + .setConfirmationEmail(formData.getConfirmationEmail()) + .checkBankName(formData.getBankNameAddress()) + .checkCity(formData.getRecipientBankCity()) + .checkCountry(formData.getBankCountry()) + .checkDisabledRecipientBankCountryButton() + .clickOnContinue(); + } + + public Function foreignCzkPaymentFromCzkAccountToCzBank(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .checkModalCzkToCzk() + .clickOnForeignToDomesticButton() + .checkDestinationAccountNumber("1234567899") + .checkDestinationAccountBank("0800"); + } + + public Function setPaymentOverLimit(PaymentFormData formData) { + return start -> start.clickPayment() + .fillNumberOfAccount(formData.getRecipientAccountNumber()) + .fillBankCode(formData.getBankCode()) + .fillAmount(formData.getAmount()) + .fillVariableSymbol(formData.getVariableSymbol()) + .fillConstantSymbol(formData.getConstantSymbol()) + .fillSpecificSymbol(formData.getSpecificSymbol()) + .fillRecipientMessage(formData.getRecipientMessage()) + .scrollToBottom() + .clickContinue() + .checkAlertOverLimit(formData.getCategory()) + .clickOnBack() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumberEur()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setRecipientName(formData.getRecipientName()) + .scrollToBottom() + .clickOnContinue() + .checkAlertOverLimit(formData.getCategory()) + .goToDashboard(); + } + + public Function smsKeyAuthorizationPopup() { + return start -> start.typeSmsKey(DEFAULT_MOBILE_KEY) + .clickSend() + .onCardsPage(); + } + + public Function getIntoBlockingScreen(String maskedCardNumber, String cardDetailInfo) { + return start -> start.clickCards() + .openCardsSubMenu() + .selectCard(maskedCardNumber) + .clickDetailsAndSettings() + .checkCardDetailInfo(cardDetailInfo) + .clickOnBlockCancelCard(); + } + + public Function foreignPaymentMandatoryIban(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setRecipientBankBic(formData.getBankCodeBic()) + .checkBic(formData.getBankCodeBic()) + .checkBankName(formData.getBankNameAddress()) + .checkStreet(formData.getRecipientBankAddressStreet()) + .checkCity(formData.getRecipientBankCity()) + .checkCountry((formData.getBankCountry())) + .setRecipientName(formData.getRecipientName()) + .clickContinueAndStayOnSamePage() + .checkErrorIban(formData.getErrorIban()) + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .clickBankCountryValue() + .checkBicDisabled() + .checkRecipientBankNameDisabled() + .checkRecipientBankAddressStreetDisabled() + .checkRecipientBankAddressCityDisabled() + .checkDisabledRecipientBankCountryButton() + .setRecipientAddressCountry(formData.getRecipientAddressCountry()) + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnPaymentConfirmationEmailCheckbox() + .setConfirmationEmail(formData.getConfirmationEmail()) + .clickOnContinue(); + } + + public Function priorityForeignPayment(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setTypeOfPayment(formData.getTypeOfPayment()) + .setRecipientBankBic(formData.getBankCodeBic()) + .checkFeeForeignPriorityPayment(formData.getFeeForeignPriorityPayment()) + .setRecipientName(formData.getRecipientName()) + .setRecipientAddressCountry(formData.getRecipientAddressCountry()) + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnPaymentConfirmationEmailCheckbox() + .setConfirmationEmail(formData.getConfirmationEmail()) + .clickOnContinue() + .checkFeeForeignPriorityPaymentSummary(formData.getFeeForeignPriorityPaymentSummary()) + .checkFeeType(formData.getFeeType()); + } + + public Function sepaConfirmation(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setRecipientName(formData.getRecipientName()) + .setRecipientAddressCountry(formData.getRecipientAddressCountry()) + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnPaymentConfirmationEmailCheckbox() + .setConfirmationEmail(formData.getConfirmationEmail()) + .clickOnContinue(); + } + + public Function foreignOrderConfirmation(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setRecipientName(formData.getRecipientName()) + .setRecipientAddressCountry(formData.getRecipientAddressCountry()) + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnPaymentConfirmationEmailCheckbox() + .setConfirmationEmail(formData.getConfirmationEmail()) + .clickOnContinue(); + } + + public Function prioritySepaPayment(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .checkDisabledChargeBearerButton() + .setTypeOfPayment(formData.getTypeOfPayment()) + .checkFeeForeignPriorityPayment(formData.getFeeForeignPriorityPayment()) + .checkChargeBearerValue(formData.getChargeBearerValue()) + .checkBicDisabled() + .checkRecipientBankNameDisabled() + .checkRecipientBankAddressStreetDisabled() + .checkRecipientBankAddressCityDisabled() + .checkDisabledRecipientBankCountryButton() + .setRecipientName(formData.getRecipientName()) + .setRecipientAddressCountry(formData.getRecipientAddressCountry()) + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnPaymentConfirmationEmailCheckbox() + .setConfirmationEmail(formData.getConfirmationEmail()) + .clickOnContinue() + .checkFeeForeignPriorityPaymentSummary(formData.getFeeForeignPriorityPaymentSummary()) + .checkFeeType(formData.getFeeType()); + } + + public Function foreignPaymentFeeCalculatorAndExchangeRateDifference(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .checkEstimatedAmountCurrency(formData.getEstimatedAmountCurrency()) + .checkSubmitSourceCurrency(formData.getSubmitSourceCurrency()) + .checkConversionFeeCurrency(formData.getConversionFeeCurrency()) + .checkPaymentFeeCurrency(formData.getPaymentFeeCurrency()) + .checkChargeBearerValue(formData.getChargeBearerValue()) + .checkTooltipFees() + .setRecipientName(formData.getRecipientName()) + .setRecipientAddressCountry(formData.getRecipientAddressCountry()) + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnPaymentConfirmationEmailCheckbox() + .setConfirmationEmail(formData.getConfirmationEmail()) + .clickOnContinue() + .checkFeeType(formData.getFeeType()); + } + + public Function sepaPaymentFeeCalculatorAndExchangeRateDifference(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .checkEstimatedAmountCurrency(formData.getEstimatedAmountCurrency()) + .checkSubmitSourceCurrency(formData.getSubmitSourceCurrency()) + .checkConversionFeeCurrency(formData.getConversionFeeCurrency()) + .checkPaymentFeeCurrency(formData.getPaymentFeeCurrency()) + .checkDisabledChargeBearerButton() + .checkChargeBearerValue(formData.getChargeBearerValue()) + .setRecipientName(formData.getRecipientName()) + .setRecipientAddressCountry(formData.getRecipientAddressCountry()) + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnPaymentConfirmationEmailCheckbox() + .setConfirmationEmail(formData.getConfirmationEmail()) + .clickOnContinue() + .checkFeeType(formData.getFeeType()); + } + + public Function sepaPaymentMandatoryIbanToCountriesInTheIbanCodeList(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setRecipientBankBic(formData.getBankCodeBic()) + .checkBankName(formData.getBankNameAddress()) + .checkStreet(formData.getRecipientBankAddressStreet()) + .checkCity(formData.getRecipientBankCity()) + .checkCountry((formData.getBankCountry())) + .setRecipientName(formData.getRecipientName()) + .clickContinueAndStayOnSamePage() + .checkErrorIban(formData.getErrorIban()) + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setRecipientAddressCountry(formData.getRecipientAddressCountry()) + .checkChargeBearerValue(formData.getChargeBearerValue()) + .checkDisabledChargeBearerButton() + .checkSepaAlert() + .setRecipientMessage(formData.getRecipientMessage()) + .clickOnPaymentConfirmationEmailCheckbox() + .setConfirmationEmail(formData.getConfirmationEmail()) + .clickOnContinue() + .clickOnEdit() + .fillChangedRecipientAccountNumber(formData.getChangedRecipientAccountNumber()) + .clickOnAmount() + .checkEnabledChargeBearerButton() + .checkBicEnabled() + .checkRecipientBankNameEnabled() + .checkRecipientBankAddressStreetEnabled() + .checkRecipientBankAddressCityEnabled() + .checkEnabledRecipientBankCountryButton() + .clickContinueAndStayOnSamePage() + .checkRecipientIbanErrorMessage() + .fillRecipientAccountNumber(formData.getRecipientAccountNumber()) + .clickOnAmount() + .checkDisabledChargeBearerButton() + .checkBicDisabled() + .checkRecipientBankNameDisabled() + .checkRecipientBankAddressStreetDisabled() + .checkRecipientBankAddressCityDisabled() + .checkDisabledRecipientBankCountryButton() + .checkRecipientName() + .clickOnContinue(); + } + + public Function foreignPaymentAllCurrenciesWithinTheEeaWithShaFeeOnly(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setRecipientName(formData.getRecipientName()) + .checkChargeBearerValue(formData.getChargeBearerValue()) + .checkDisabledChargeBearerButton() + .scrollToTop() + .setCurrency("CAD") + .checkChargeBearerValue(formData.getChargeBearerValue()) + .checkEnabledChargeBearerButton() + .scrollToTop() + .setFees(formData.getFees()) + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees("OUR") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setCurrency("CHF") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees(formData.getFees()) + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setCurrency("CZK") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees("OUR") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setCurrency("DKK") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees(formData.getFees()) + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setCurrency("GBP") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees("OUR") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setCurrency("HUF") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees(formData.getFees()) + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setCurrency("JPY") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees("OUR") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setCurrency("NOK") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees(formData.getFees()) + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setCurrency("PLN") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees("OUR") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setCurrency("RON") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees(formData.getFees()) + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setCurrency("SEK") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees("OUR") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setCurrency("USD") + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage() + .scrollToTop() + .setFees(formData.getFees()) + .clickContinueAndStayOnSamePage() + .checkChargeBearerErrorMessage(); + } + + public Function foreignPaymentAllCurrenciesOutsideTheEeaWithAnyFee(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .setCurrency(formData.getCurrency()) + .setRecipientBankBic(formData.getBankCodeBic()) + .setRecipientName(formData.getRecipientName()) + .checkChargeBearerValue(formData.getChargeBearerValue()) + .checkEnabledChargeBearerButton() + .scrollToTop() + .setCurrency("CAD") + .checkChargeBearerValue(formData.getChargeBearerValue()) + .checkEnabledChargeBearerButton() + .setFees(formData.getFees()) + .checkAlertAmountMustBeHigher() + .setFees("OUR") + .clickOnContinue() + .clickOnEdit() + .setCurrency(formData.getCurrency()) + .clickOnContinue() + .clickOnEdit() + .setFees(formData.getFees()) + .checkAlertAmountMustBeHigher() + .setCurrency("PLN") + .checkAlertAmountMustBeHigher() + .setFees("OUR") + .clickOnContinue() + .clickOnEdit() + .setCurrency("USD") + .setFees(formData.getFees()) + .checkAlertAmountMustBeHigher() + .setFees("OUR") + .clickOnContinue() + .checkToAccount(formData.getRecipientAccountNumber()) + .checkAmount(formData.getAmount()) + .checkCurrency("USD") + .checkTypeOfCharge("OUR") + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkForeignPaymentVictoryText(); + } + + public Function foreignPaymentPaymentStatusInCaseOfNsfEur(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setCurrency(formData.getCurrency()) + .setRecipientAccountNumber(formData.getRecipientAccountNumber()) + .setAmount(formData.getAmount()) + .checkBic(formData.getBankCodeBic()) + .checkAlertOverdraft() + .checkBankName(formData.getBankNameAddress()) + .checkStreet(formData.getRecipientBankAddressStreet()) + .checkCity(formData.getRecipientBankCity()) + .checkCountry((formData.getBankCountry())) + .setRecipientName(formData.getRecipientName()) + .clickOnContinue() + .checkCurrency(formData.getCurrency()) + .checkTypeOfCharge(formData.getTypeOfCharge()) + .checkBankCode(formData.getBankCodeBic()) + .checkBankCountry(formData.getBankCountry()) + .checkNameAddressOfBank(formData.getBankNameAddress()) + .checkRecipientName((formData.getRecipientName())) + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkForeignPaymentVictoryText(); + } + + public Function foreignPaymentPaymentStatusInCaseOfNsfCad(PaymentFormData formData) { + return start -> start.clickPayment() + .clickOnForeignTab() + .setCurrency("CAD") + .setRecipientAccountNumber("123456789") + .setAmount(formData.getAmount()) + .clickOnInvalidIbanModal() + .setRecipientBankBic("IRVTUS3NXXX") + .checkAlertOverdraft() + .checkBankName("THE BANK OF NEW YORK MELLON") + .checkStreet("240 GREENWICH STREET") + .checkCity("NEW YORK") + .checkCountry("US - USA") + .setRecipientName(formData.getRecipientName()) + .clickOnContinue() + .checkCurrency("CAD") + .checkTypeOfCharge(formData.getTypeOfCharge()) + .checkBankCode("IRVTUS3NXXX") + .checkBankCountry("US - USA") + .checkNameAddressOfBank("THE BANK OF NEW YORK MELLON") + .checkRecipientName(formData.getRecipientName()) + .clickOnConfirm() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkForeignPaymentVictoryText(); + } + + public Function downloadCashReceipts(PaymentFormData formData) { + return start -> start.goToAccounts() + .selectAccountNumber(formData.getFromAccountNumber()) + .openTransactionDetails(formData.getRecipientAccountNumberCzk()) + .clickOnDownloadCashReceipt(); + } + + public Function establishmentBuildingSavings(SavingsFormData formData) { + return start -> start.goToSavings() + .clickOnBuildingSavingsButton() + .checkBuildingSavingsBanner() + .checkBuildingSavingsText() + .checkMonthlyPaymentDefault() + .checkMonthlyPaymentMaxAlert() + .setMonthlyPayment(formData.getMinMonthlyPayment()) + .checkMonthlyPaymentMinAlert() + .setMonthlyPayment(formData.getMaxMonthlyPayment()) + .checkMonthlyPaymentMaxAlert() + .clickOnTargetAmount() + .checkTargetAmountOverall() + .setMonthlyPayment(formData.getDefaultMonthlyPayment()) + .clickOnCheckboxStateContribution() + .clickOnCheckboxStateContribution() + .clickOnContinue() + .checkTitleBuildingSavings() + .checkTitlePersonalDetail() + .checkFirstNameLabel() + .checkLastNameLabel() + .checkPhoneNumberLabel() + .checkEmailLabel() + .checkNationalityLabel() + .checkBirthStateLabel() + .checkBackButton() + .clickOnContinue() + .checkTitleBuildingSavings() + .checkTitlePersonalDetailAddress() + .checkPermanentAddressFormStreetLabel() + .checkPermanentAddressFormDescriptiveNumberLabel() + .checkPermanentAddressFormOrientationNumberLabel() + .checkPermanentAddressFormTownLabel() + .checkPermanentAddressFormZipLabel() + .checkPermanentAddressFormCountryLabel() + .checkCheckboxContactAndPermanentAddress() + .clickOnCheckboxContactSameAsPermanent() + .checkTitleContactAddress() + .clickOnCheckboxContactSameAsPermanent() + .checkBackButton() + .clickOnSubmit() + .checkAmlQuestionnaire() + .checkTitleBuildingSavings() + .checkAmlBuildingSavingsText() + .clickOnAmlDepositOrigin() + .clickOnAmlWayOfSavings() + .clickOnAmlRangeOfIncomeValue() + .clickOnAmlCzOnlyTaxResidenceLabel() + .checkBackButton() + .clickOnConfirmButton() + .checkTitleBuildingSavings() + .checkPreContractualInformationTitle() + .scrollToBottom() + .checkAgreementText() + .clickOnAgreementCheckbox() + .checkDeclineButton() + .clickGoNextButton() + .checkDeclineButton() + .clickOnUnderstandAndAgreeButton() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkVictoryText() + .clickSetStandingOrderButton() + .checkDestinationAccNumber() + .checkDestinationAccBank() + .checkAmount() + .checkFrequency() + .checkOrderNoteForRecipient() + .clickOnContinueButtonStandingOrder() + .clickOnConfirmButtonStandingOrder() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkStandingOrderVictoryText(); + } + + public Function checkNoSipo() { + return start -> start.clickPayment() + .clickMore() + .checkNoSipo(); + } + + public Function rtvServicingDeposit(SavingsFormData formData) { + return start -> start.goToDashboard() + .clickOnRtvCard(formData.getAccountNumberRtvServicingDeposit() + "/0600") + .clickOnRtvDepositButton() + .checkRtvDepositTitle() + .checkRtvDepositSourceAccountLabel() + .checkRtvSourceAccountNumberDeposit(formData.getDestinationAccountNumberDeposit()) + .checkRtvDepositTemplateLabel() + .checkRtvDestinationAccountPrefixLabel() + .checkRtvDestinationAccountNumberLabel() + .checkRtvDepositDestinationAccountNumber(formData.getAccountNumberRtvServicingDeposit()) + .checkRtvDestinationAccountBankLabel() + .checkRtvDepositAmountLabel() + .checkRtvDepositText() + .checkRtvDueDateLabel() + .checkRtvDueDateFieldDisabled() + .checkRtvChangeToOtherDate() + .fillDepositAmount("10000") + .clickOnContinue() + .checkRtvServicingContractTitle() + .clickOnSignButton() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkRtvServicingVictoryText() + .clickBackToDashboard() + .clickOnRtvCard(formData.getAccountNumberRtvServicingDeposit() + "/0600") + .checkRtvDepositYellowAlertText() + .checkRtvDepositBlueAlertText() + .clickOnStornoButton() + .checkRtvStornoTitle() + .clickOnSignButton() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkRtvStornoVictoryText(); + } + + public Function rtvServicingWithdrawal(SavingsFormData formData) { + return start -> start.goToDashboard() + .clickOnRtvCard(formData.getAccountNumberRtvServicingWithdrawal() + "/0600") + .clickOnRtvWithdrawalButton() + .checkRtvWithdrawalTitle() + .checkRtvWithdrawalSourceAccountLabel() + .checkRtvSourceAccountNumberWithdrawal(formData.getSourceNumberRtvServicingWithdrawal()) + .checkRtvWithdrawalTemplateLabel() + .checkRtvDestinationAccountPrefixLabel() + .checkRtvDestinationAccountNumberLabel() + .checkRtvDepositDestinationAccountNumber(formData.getDestinationAccountRtvServicingWithdrawal()) + .checkRtvDestinationAccountBankLabel() + .checkRtvWithdrawalAmountLabel() + .checkRtvDueDateLabel() + .checkRtvDueDateFieldDisabled() + .checkRtvChangeToOtherDate() + .fillWithdrawalAmount("10000") + .clickOnContinue() + .checkRtvServicingContractTitle() + .clickOnSignButton() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkRtvServicingVictoryText() + .clickBackToDashboard() + .clickOnRtvCard(formData.getAccountNumberRtvServicingWithdrawal() + "/0600") + .checkRtvWithdrawalBlueAlertText() + .clickOnStornoButton() + .checkRtvStornoTitle() + .clickOnSignButton() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkRtvStornoVictoryText(); + } + + public Function rtvServicingCancel(SavingsFormData formData) { + return start -> start.goToDashboard() + .clickOnRtvCard(formData.getAccountNumberRtvServicingCancel() + "/0600") + .clickOnRtvCancelButton() + .checkRtvCancelTitle() + .checkRtvWithdrawalSourceAccountLabel() + .checkRtvSourceAccountNumberWithdrawal(formData.getSourceNumberRtvServicingCancel()) + .checkRtvWithdrawalTemplateLabel() + .checkRtvDestinationAccountPrefixLabel() + .checkRtvDestinationAccountNumberLabel() + .checkRtvDepositDestinationAccountNumber(formData.getDestinationAccountRtvServicingCancel()) + .checkRtvDestinationAccountBankLabel() + .checkRtvWithdrawalAmountLabel() + .checkRtvDueDateLabel() + .checkRtvDueDateFieldDisabled() + .checkRtvChangeToOtherDate() + .checkRtvCancelAmount() + .clickOnContinueRtvServicingCancelButton() + .checkRtvServicingContractTitle() + .clickOnSignButton() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkRtvServicingVictoryText() + .clickOnRtvServicingStornoButtonOnVictory() + .checkRtvStornoTitle() + .clickOnSignButton() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkRtvStornoVictoryText(); + } + + public Function deleteDirectDebitFromSettings(PaymentFormData formData) { + return start -> start.confirmDeleteDirectDebit() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkDeleteDirectDebitVictoryText() + .clickOnBackToDirectDebitsPage(); + } + + public Function changeDirectDebitFromSettings(PaymentFormData formData) { + return start -> start.clickOnChangeDirectDebit(formData.getDirectDebitName()) + .setDirectDebitName(formData.getDirectDebitName() + "Ch") + .setAmountLimit("200,00") + .confirmChangeDirectDebit() + .checkDirectDebitName(formData.getDirectDebitName() + "Ch") + .checkDirectDebitLimit("200,00") + .confirmChangeDirectDebit() + .setMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkChangeDirectDebitVictoryText() + .clickOnBackToDirectDebitsPage() + .sleepRefreshAndCloseCookiesIfVisible(formData.getDirectDebitName() + "Ch", formData.getFromAccountNumber(), "200,00"); + } + + public Function changePasswordSettings() { + return start -> start.clickOnSettings() + .clickOnChangePasswordButton() + .checkPasswordConditions() + .fillNewPassword("Bb123456") + .fillNewPasswordAgain("Cc123456") + .clickOnPasswordField() + .checkIdenticalPasswordValidation() + .fillNewPassword("Aa123456") + .fillNewPasswordAgain("Aa123456") + .clickOnContinue() + .checkAlreadyUsedPasswordValidation() + .fillNewPassword("Bb123456") + .fillNewPasswordAgain("Bb123456") + .clickOnContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkVictoryTitleAndText() + .clickOnBackToSettingsButton() + .clickOnChangePasswordButton() + .fillNewPassword("Cc123456") + .fillNewPasswordAgain("Cc123456") + .clickOnContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .clickOnBackToSettingsButton() + .clickOnChangePasswordButton() + .fillNewPassword("Dd123456") + .fillNewPasswordAgain("Dd123456") + .clickOnContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey(); + } + + public Function checkAccountsSettings(PaymentFormData formData, String accountType, String accountTestName) { + return start -> start.clickOnSettings() + .clickOnAccounts(accountType) + .clickOnAccount() + .checkAccountName(accountTestName) + .checkAccountNumber(formData.getFromAccountNumber() + "/0600") + .checkIban(formData.getIban()) + .checkBic("AGBACZPP") + .checkAccountType(formData.getFromAccountType()) + .checkStatementFrequency("Měsíční") + .checkStatementDistribution("Poštou") + .clickOnChangeName() + .typeIntoName("Changed") + .saveAccountName() + .checkAccountName("Changed") + .clickOnChangeStatementFrequency() + .checkStatementTitle("Changed - Nastavení výpisů") + .clickOnBack() + .clickOnAccount() + .clickOnChangeStatementDistribution() + .checkStatementTitle("Changed - Nastavení výpisů") + .clickOnBack() + .clickOnAccount() + .clickOnSetAsPreferred() + .clickOnConfirm() + .checkSetAsPreferredTitle() + .clickOnConfirm() + .checkPreferredAccount() + .clickOnChangeName() + .typeIntoName(accountTestName) + .saveAccountName() + .checkAccountName(accountTestName) + .clickOnCloseAccount() + .checkCloseAccountTitle(); + } + + public Function cardsSettingsTest() { + return start -> start.clickOnSettings() + .clickOnCards() + .clickOnCreditCardsTab() + .checkNoCreditCards() + .clickOnDebitCardsTab() + .clickOnDebitCardsToTheAccount() + .clickOnCardsToTheAccount() + .clickOnCardDetail() + .checkCardDetailTitle() + .checkCardDetailFull() + .checkDccAlert() + .clickOnAdjustSettings() + .checkOnlinePaymentTitle() + .checkLabelInternetAndMotoPayments() + .clickOnInternetAndMotoPaymentsTurnOn() + .clickOnDccTurnOff() + .fillAtmWithdrawalLimit("150001") + .fillOnlinePaymentsLimit("150001") + .fillPaymentsInStoresLimit("150001") + .clickOnContinue() + .checkValidationMessageAtmLimit() + .checkValidationMessageOnlinePaymentsLimit() + .checkValidationPaymentsInStoresLimit() + .fillAtmWithdrawalLimit("150000") + .fillOnlinePaymentsLimit("150000") + .fillPaymentsInStoresLimit("150000") + .clickOnContinue() + .checkSummaryTitle() + .checkSummaryInternetAndMotoPaymentsLabel("Ano") + .checkSummaryDcc("Ne") + .checkSummaryAtmWithdrawalLimit() + .checkSummaryOnlinePaymentsLimit() + .checkSummaryInternetAndMotoPaymentsLimit() + .clickOnSummaryAcceptButton() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkVictoryTitle() + .clickBackToCardsButton() + .clickOnDebitCardsToTheAccount() + .clickOnCardsToTheAccount() + .clickOnCardDetail() + .clickOnAdjustSettings() + .clickOnInternetAndMotoPaymentsTurnOff() + .clickOnDccTurnOn() + .clickOnContinue() + .checkSummaryInternetAndMotoPaymentsLabel("Ne") + .checkSummaryDcc("Ano") + .clickOnSummaryAcceptButton() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkVictoryTitle(); + } + + public Function cardsSettingsTemporaryBlockingTest() { + return start -> start.clickOnSettings() + .clickOnCards() + .clickOnDebitCardsToTheAccount() + .clickOnCardsToTheAccount() + .clickOnCardDetail() + .clickOnBlockAndCancelCardButton() + .checkBlockCardTitle() + .checkCardBlockingTypeTitle() + .checkCardBlockingTypes() + .checkCardBlockingTypesDetails() + .checkOtherSettingsTitle() + .checkSendSmsText() + .clickOnBlockAndNewOne() + .checkReasonForBlockingTitle() + .checkTheftCard() + .checkLossCard() + .clickOnBlockAndCancel() + .clickOnTemporarilyBlock() + .clickOnSmsToggle() + .clickOnContinueBlockingCardButton() + .checkValidationMessage("Neplatný formát telefonního čísla") + .fillUnblockMobileNumber("111111111") + .clickOnContinueBlockingCardButton() + .checkValidationMessage("Zkontrolujte zadaný formát telefonního čísla.") + .fillUnblockMobileNumber("702111111") + .clickOnContinueBlockingCardButton() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkBlockCardTitle() + .checkCardBlockingVictoryTitle() + .checkCardBlockingVictoryText() + .clickOnBackButtonOnVictoryScreen() + .clickOnUnblockButton() + .checkCardBlockingTypesOnUnblockScreen() + .clickOnContinueBlockingCardButton() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickOnContinueMobileKey() + .checkBlockCardTitle() + .checkCardUnblockingVictoryTitle() + .checkCardUnblockingVictoryText(); + } + + public Function checkDisponentsViaSettings() { + return start -> start.clickOnSettings() + .clickOnDisponents() + .checkName() + .checkRole() + .checkStatus(); + } + + public Function creditCardsSettingsTest() { + return start -> start.clickOnSettings() + .clickOnCards() + .clickOnCreditCardsTab() + .clickOnCreditCard() + .checkCreditCardDetailTitle() + .checkCreditCardDetailFull() + .checkDccAlert() + .checkCreditCardBalancesAndLimitDetail() + .checkCreditCardBenefitPackagesTitle() + .checkCreditCardBenefitPackagesDetail() + .clickOnCreditLimitIncreaseButton() + .checkCreditLimitIncreaseModal() + .clickOnCreditLimitIncreaseCloseModalButton(); + } + + public Function adviceFopTest() { + return start -> start.goToAccounts() + .clickOnAdviceButton() + .checkPaymentReference() + .checkAmount() + .clickOnPreviewOfAdvice() + .checkTitleAdvice() + .checkDownloadButton() + .checkPrintButton() + .clickOnCloseButton(); + } + + public Function adviceFonTest() { + return start -> start.goToAccounts() + .clickOnAdviceButton() + .checkPaymentReference() + .checkAmount() + .clickOnPreviewOfAdvice() + .checkTitleAdvice() + .checkDownloadButton() + .checkPrintButton() + .clickOnCloseButton() + .fillInDate("1.12.2025") + .fillToDate("15.1.2026") + .clickOnShowMoreAdvices(); + } + + public Function dpsDisplayedOntheDashboardAndInTheSavingsSection() { + return start -> start + .checkPensionCardTitle() + .checkPensionCardSavedText() + .goToSavings() + .clickOnPensionButton() + .checkChangeContributionButton() + .checkChangeStrategyButton() + .checkOverviewText() + .checkQuickOverviewText() + .checkAllocationIntoFundsText() + .clickOnTabDocuments() + .checkYourDocuments() + .checkFundInformation() + .clickOnTabFaq() + .clickOnFaqQuestion() + .checkFaqAnswer() + .clickOnContacts() + .checkContactsText() + .checkPhoneNumber() + .checkEmail() + .checkMeeting(); + } + + public Function loginLogoutNewIb() { + return start -> start + .clickLogout() + .denyLogout() + .clickLogout() + .clickYesLogout() + .checkLogoutText(); + } + + public Function loginLogoutAfterSessionTimeoutNewIb() { + return start -> start + .waitFourMinutesToLogoutPopup() + .clickOnContinueWorking() + .waitFourMinutesToLogoutPopup() + .clickOnStopWorking() + .checkLogoutText() + .closeCookiesPanelIfVisible() + .clickOnBackToLogin() + .clickLoginWithIdAndPassword(); + } + + public Function dpsChangeOfContributionAndDeposit() { + return start -> start.goToSavings() + .clickOnPensionButton() + .clickOnContributionsAndDepositsButton() + .fillDeposit("15000") + .clickOnHasEmployerContributionCheckbox() + .clickOnContinueButton() + .clickOnContinueButton() + .clickOnDpsSourceOfIncome() + .selectDpsSourceOfIncome() + .clickOnDpsIncome() + .selectDpsIncome() + .checkPayTaxes() + .checkNotPepPerson() + .checkNotGreenCardHolder() + .clickOnContinueButton() + .clickOnContinueToSignatureButton() + .checkContractTitle() + .clickOnAgreeContinuebutton() + .fillMobileKey("12341234") + .clickContinueMobileKey() + .clickOnStandingOrderButton() + .clickOnCloseSettingsButton() + .clickOnBackToDashboardButton() + .checkContributionsAndDepositsAlert(); + } + + public Function adviceOnTheTransactionDetailFonTest() { + return start -> start.goToAccounts() + .clickOnAdviceButton() + .clickOnGraphsTab() + .clickOnPlannedTab() + .clickOnStatementsTab() + .clickOnHistoryTab() + .clickOnAdvancedSearch() + .clickOnPaymentType() + .clickPaymentTypeOption("Zahraniční platba") + .clickOnAdvancedFilterSearchButton() + .clickOnTransaction("CZ62510007547061") + .clickOnAdviceButton(); + } + + public Function receivedMessagesTest() { + return start -> start.goToMessagesAndNotification() + .checkTooltip() + .clickOnUnreadMessages() + .clickOnSentMessages() + .checkSubjectOfTheSentMessage() + .clickOnInboxMessages() + .checkSubjectOfTheReceivedMessage() + .clickOnReceivedMessage() + .checkTextOfTheReceivedMessage("Test OK.") + .checkViewPreviousCommunication() + .clickOnAnswerButton() + .checkTitleNewMessage(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/util/ContactsFormData.java b/tests/src/main/java/cz/moneta/test/dsl/newib/util/ContactsFormData.java new file mode 100644 index 0000000..67b9a7d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/util/ContactsFormData.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.newib.util; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Builder +@Getter +@Setter +public class ContactsFormData { + private String name; + private String phoneNumber; + private String operator; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/util/EnvelopesFormData.java b/tests/src/main/java/cz/moneta/test/dsl/newib/util/EnvelopesFormData.java new file mode 100644 index 0000000..95b8c19 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/util/EnvelopesFormData.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.newib.util; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Builder +@Getter +@Setter +public class EnvelopesFormData { + private String envelopeName; + private String amount; + private String icon; + private String category; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/util/ExchangeFormData.java b/tests/src/main/java/cz/moneta/test/dsl/newib/util/ExchangeFormData.java new file mode 100644 index 0000000..e96375d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/util/ExchangeFormData.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.newib.util; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Builder +@Getter +@Setter +public class ExchangeFormData { + private String firstAmount; + private String secondAmount; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/util/MessagesFormData.java b/tests/src/main/java/cz/moneta/test/dsl/newib/util/MessagesFormData.java new file mode 100644 index 0000000..c6a94e6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/util/MessagesFormData.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.newib.util; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Builder +@Getter +@Setter + +public class MessagesFormData { + private String subject; + private String topic; + private String amount; + private String withdrawalDate; + private String clientPhoneNumber; + private String branch; + private String iban; + private String currency; + private String dueDate; + private String transactionDate; + private String destinationAccNumber; + private String bankCode; + private String variableSymbol; + private String specificSymbol; + private String constantSymbol; + private String accNumberForRefund; + private String bankCodeForRefund; + private String phoneNumberForRefund; + private String recipientMessage; + private String message; + private String typeOfComplaintsAndClaims; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/util/PaymentFormData.java b/tests/src/main/java/cz/moneta/test/dsl/newib/util/PaymentFormData.java new file mode 100644 index 0000000..4874537 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/util/PaymentFormData.java @@ -0,0 +1,81 @@ +package cz.moneta.test.dsl.newib.util; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Builder +@Getter +@Setter +public class PaymentFormData { + private String prefixAccountNumber; + private String fromAccountNumber; + private String fromAccountType; + private String recipientAccountNumberPrefix; + private String recipientAccountNumber; + private String recipientAccountNumberOtherBank; + private String bankCode; + private String bankCodeOtherBank; + private String bankCodeBic; + private String bankCountry; + private String bankNameAddress; + private String amount; + private String amountForBulkPayment; + private String typeOfPayment; + private String dateOfPayment; + private String variableSymbol; + private String constantSymbol; + private String specificSymbol; + private String recipientMessage; + private String myNote; + private String phoneNumber; + private String mobileOperator; + private String category; + private String confirmationPhoneNumber; + private String currency; + private String recipientName; + private String recipientAddressStreet; + private String recipientAddressCity; + private String recipientAddressCountry; + private String confirmationEmail; + private String typeOfCharge; + private String standingOrderName; + private String lastDateOfPayment; + private String monthOfEndSending; + private String paymentFrequency; + private String directDebitLimit; + private String directDebitName; + private String limit; + private String sipoNumber; + private String templateName; + private String iban; + private String recipientBankName; + private String recipientBankAddress; + private String recipientBankCity; + private String recipientBankCountry; + private String numberOfPayments; + private String numberOfBulkPaymentVictoryText; + private String totalAmountBulkPayment; + private String dateOfFirstPayment; + private String dateOfLastPayment; + private String frequencyOfPayments; + private String recipientAccountNumberEur; + private String recipientAccountNumberCzk; + private String amountOverLimit; + private String overLimitPaymentWarningText; + private String recipientBankAddressStreet; + private String validationCurrency; + private String alertCzIban; + private String errorIban; + private String feeForeignPriorityPayment; + private String feeForeignPriorityPaymentSummary; + private String chargeBearerValue; + private String feeType; + private String estimatedAmountCurrency; + private String submitSourceCurrency; + private String conversionFeeCurrency; + private String paymentFeeCurrency; + private String changedRecipientAccountNumber; + private String fees; + private String amount2; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/util/SavingsFormData.java b/tests/src/main/java/cz/moneta/test/dsl/newib/util/SavingsFormData.java new file mode 100644 index 0000000..aa3d9b3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/util/SavingsFormData.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.newib.util; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Builder +@Getter +@Setter +public class SavingsFormData { + private String termDepositUrl; + private String currency; + private String amount; + private String limitAmountMin; + private String limitAmountMax; + private String termDepositType; + private String termDepositPeriod; + private String taxResidence1; + private String taxResidence2; + private String taxResidence3; + private String taxResidence4; + private String taxResidence5; + private String minMonthlyPayment; + private String maxMonthlyPayment; + private String defaultMonthlyPayment; + private String destinationAccountNumberDeposit; + private String accountNumberRtvServicingDeposit; + private String accountNumberRtvServicingWithdrawal; + private String sourceNumberRtvServicingWithdrawal; + private String destinationAccountRtvServicingWithdrawal; + private String accountNumberRtvServicingCancel; + private String sourceNumberRtvServicingCancel; + private String destinationAccountRtvServicingCancel; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/newib/util/TrustedContactsFormData.java b/tests/src/main/java/cz/moneta/test/dsl/newib/util/TrustedContactsFormData.java new file mode 100644 index 0000000..e9fc568 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/newib/util/TrustedContactsFormData.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.newib.util; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Builder +@Getter +@Setter +public class TrustedContactsFormData { + private String setNameOfTrustedContactLong; + private String setNameOfTrustedContactShort; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/ApproveAccessToAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/ApproveAccessToAccountPage.java new file mode 100644 index 0000000..5708f4d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/ApproveAccessToAccountPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.oauth2.web; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.oauth2.web.ApproveAccessToAccountPage.MONETA_LOGO_IMG; + +@Wait(MONETA_LOGO_IMG) +public interface ApproveAccessToAccountPage extends WebFlow { + + String MONETA_LOGO_IMG = "//img[@alt='MONETA logo']"; + String YES_APPROVE_ACCESS_BUTTON = "//button[@testid='button']/span[contains(text(),'Chci pokračovat') or contains(text(), 'Continue')]"; + String ID_INPUT = "//input[@name='id']"; + String PASSWORD_INPUT = "//input[@name='password']"; + String SUBMIT_MOBIL_KEY_SEND_BUTTON = "//button[@type='submit']/span[contains(text(),'Odeslat mobilní klíč') or contains(text(), 'Send mobile key')]"; + String SUBMIT_APPROVE_ACCESS_BUTTON = "//button[@type='submit']/span[contains(text(),'Udělit přístup') or contains(text(), 'Grant access')]"; + String SMS_KEY_INPUT = "//input[@name='smsKey']"; + + @Click(value = YES_APPROVE_ACCESS_BUTTON, andWait = @Wait(ID_INPUT)) + ApproveAccessToAccountPage clickYesApproveButton(); + + @TypeInto(ID_INPUT) + ApproveAccessToAccountPage fillIdInput(String id); + + @TypeInto(PASSWORD_INPUT) + ApproveAccessToAccountPage fillPasswordInput(String password); + + @TypeInto(SMS_KEY_INPUT) + ApproveAccessToAccountPage fillSmsKey(String smsKey); + + @Click(value = SUBMIT_MOBIL_KEY_SEND_BUTTON, andWait = @Wait(SUBMIT_APPROVE_ACCESS_BUTTON)) + ApproveAccessToAccountPage clickSendMobileKey(); + + @Click(SUBMIT_APPROVE_ACCESS_BUTTON) + @Page(ThirdPartyApplicationPageWithToken.class) + ThirdPartyApplicationPageWithToken clickApproveAccessButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/ApproveAccessToAccountPageKyc.java b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/ApproveAccessToAccountPageKyc.java new file mode 100644 index 0000000..ae5ebdf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/ApproveAccessToAccountPageKyc.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.oauth2.web; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.oauth2.web.ApproveAccessToAccountPageKyc.MONETA_LOGO_IMG; + +@Wait(MONETA_LOGO_IMG) +public interface ApproveAccessToAccountPageKyc extends WebFlow { + + String MONETA_LOGO_IMG = "//img[@alt='MONETA logo']"; + String YES_CONFIRM_IDENTITY_BUTTON = "//button[@testid='button']/span[contains(text(),'Ano, chci ověřit svou identitu')" + + " or contains(text(), 'Yes, I want to confirm my identity')]"; + String ID_INPUT = "//input[@name='id']"; + String PASSWORD_INPUT = "//input[@name='password']"; + String SUBMIT_MOBIL_KEY_SEND_BUTTON = "//button[@type='submit']/span[contains(text(),'Odeslat mobilní klíč') or contains(text(), 'Send mobile key')]"; + String CONTINUE_BUTTON = "//button[@type='submit']/span[contains(text(),'Pokračovat') or contains(text(), 'Grant access')]"; + String SMS_KEY_INPUT = "//input[@name='smsKey']"; + + @Click(value = YES_CONFIRM_IDENTITY_BUTTON, andWait = @Wait(ID_INPUT)) + ApproveAccessToAccountPageKyc clickYesConfirmButton(); + + @TypeInto(ID_INPUT) + ApproveAccessToAccountPageKyc fillIdInput(String id); + + @TypeInto(PASSWORD_INPUT) + ApproveAccessToAccountPageKyc fillPasswordInput(String password); + + @TypeInto(SMS_KEY_INPUT) + ApproveAccessToAccountPageKyc fillSmsKey(String smsKey); + + @Click(value = SUBMIT_MOBIL_KEY_SEND_BUTTON, andWait = @Wait(CONTINUE_BUTTON)) + ApproveAccessToAccountPageKyc clickSendMobileKey(); + + @Click(CONTINUE_BUTTON) + ThirdPartyApplicationPageWithToken continueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/EchoPage.java b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/EchoPage.java new file mode 100644 index 0000000..d104ccb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/EchoPage.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.oauth2.web; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.oauth2.web.EchoPage.ECHO_TEXT; + +@Wait(value = ECHO_TEXT, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface EchoPage extends WebFlow { + + String ECHO_TEXT = "//pre[contains(text(),'Test echo service: OK')]"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/FederatedLoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/FederatedLoginPage.java new file mode 100644 index 0000000..5c53343 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/FederatedLoginPage.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.oauth2.web; + +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.oauth2.web.FederatedLoginPage.MONETA_LOGO_IMG; + +@Wait(value = MONETA_LOGO_IMG, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface FederatedLoginPage extends WebFlow { + + String MONETA_LOGO_IMG = "//img[@alt='MONETA logo']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2Web.java b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2Web.java new file mode 100644 index 0000000..558fb42 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2Web.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.oauth2.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.oauth2.web.Oauth2WebEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +@Deprecated() // Needs completely review - If you want to work with this, please contact Harness admin firstly. +public class Oauth2Web { + + private final Harness harness; + + public Oauth2Web(Harness harness) { + this.harness = harness; + } + + public Oauth2WebTransitions onOauth2WebTransitions() { + harness.getEndpoint(Oauth2WebEndpoint.class).openApplication(); + return Builders.newWebFlowBuilder(Oauth2WebTransitions.class, harness.getEndpoint(Oauth2WebEndpoint.class), harness); + } + + public Oauth2WebTransitionsKyc onOauth2WebTransitionsKyc() { + harness.getEndpoint(Oauth2WebEndpoint.class).openApplication(); + return Builders.newWebFlowBuilder(Oauth2WebTransitionsKyc.class, harness.getEndpoint(Oauth2WebEndpoint.class), harness); + } + + public Oauth2WebEcho onOauth2WebEcho() { + harness.getEndpoint(Oauth2WebEndpoint.class).openApplication(); + return Builders.newWebFlowBuilder(Oauth2WebEcho.class, harness.getEndpoint(Oauth2WebEndpoint.class), harness); + } + + public Oauth2WebFederatedLogin onOauth2WebFederatedLogin() { + harness.getEndpoint(Oauth2WebEndpoint.class).openApplication(); + return Builders.newWebFlowBuilder(Oauth2WebFederatedLogin.class, harness.getEndpoint(Oauth2WebEndpoint.class), harness); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebEcho.java b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebEcho.java new file mode 100644 index 0000000..40527f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebEcho.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.oauth2.web; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.oauth2.web.Oauth2WebEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface Oauth2WebEcho extends WebFlow, StoreAccessor { + String ECHO_PAGE_URL = "api/echo"; + + @CustomAction + default EchoPage callEcho() { + Oauth2WebEndpoint endpoint = getEndpoint(Oauth2WebEndpoint.class); + endpoint.changePath(ECHO_PAGE_URL); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebFederatedLogin.java b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebFederatedLogin.java new file mode 100644 index 0000000..826a1e6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebFederatedLogin.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.oauth2.web; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.oauth2.web.Oauth2WebEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface Oauth2WebFederatedLogin extends WebFlow, StoreAccessor { + String FEDERATED_LOGIN_PAGE_URL = "oauth2/react/#/login/?client_name=Test&state=1234&scope=ALL&return_url=https.seznam.cz"; + + @CustomAction + default FederatedLoginPage callFederatedLogin() { + Oauth2WebEndpoint endpoint = getEndpoint(Oauth2WebEndpoint.class); + endpoint.changePath(FEDERATED_LOGIN_PAGE_URL); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebTransitions.java new file mode 100644 index 0000000..6eb4db8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebTransitions.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.oauth2.web; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.oauth2.web.Oauth2WebEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Page; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface Oauth2WebTransitions extends WebFlow, StoreAccessor { + String APPROVE_ACCESS_TO_ACCOUNT_PAGE_GENERAL_URL = "oauth2/auth?response_type=code&scope=ALL&state=ABCD&client_id=%s"; + + @CustomAction + @Page(ApproveAccessToAccountPage.class) + default ApproveAccessToAccountPage openApproveAccessToAccountPage(String clientId) { + Oauth2WebEndpoint endpoint = getEndpoint(Oauth2WebEndpoint.class); + endpoint.changePath(String.format(APPROVE_ACCESS_TO_ACCOUNT_PAGE_GENERAL_URL, clientId)); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebTransitionsKyc.java b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebTransitionsKyc.java new file mode 100644 index 0000000..2e99000 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/Oauth2WebTransitionsKyc.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.oauth2.web; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.oauth2.web.Oauth2WebEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface Oauth2WebTransitionsKyc extends WebFlow, StoreAccessor { + String APPROVE_ACCESS_TO_ACCOUNT_PAGE_GENERAL_URL = "api/v4/auth?response_type=code&scope=KYC&state=%s&client_id=%s"; + + @CustomAction + default ApproveAccessToAccountPageKyc openApproveAccessToAccountPageKyc(String state, String clientId) { + Oauth2WebEndpoint endpoint = getEndpoint(Oauth2WebEndpoint.class); + endpoint.changePath(String.format(APPROVE_ACCESS_TO_ACCOUNT_PAGE_GENERAL_URL, state, clientId)); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/ThirdPartyApplicationPageWithToken.java b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/ThirdPartyApplicationPageWithToken.java new file mode 100644 index 0000000..2cef12d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/oauth2/web/ThirdPartyApplicationPageWithToken.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.oauth2.web; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.oauth2.web.Oauth2WebEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.oauth2.web.ThirdPartyApplicationPageWithToken.BODY_TAG; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +@Wait(value = BODY_TAG) +public interface ThirdPartyApplicationPageWithToken extends WebFlow, StoreAccessor { + String AUTH_CODE_STORE = "AUTH_CODE"; + String BODY_TAG = "//body[contains(.,'gemwebdevx')]"; + Pattern CODE_PATTERN_PSD2 = Pattern.compile(".*code=(.*)"); + Pattern CODE_PATTERN_KYC = Pattern.compile(".*code=(.*)&state.*"); + + @CustomAction + default ThirdPartyApplicationPageWithToken getAuthTokenAndStoreIt() { + Oauth2WebEndpoint endpoint = getEndpoint(Oauth2WebEndpoint.class); + Matcher m = CODE_PATTERN_PSD2.matcher(endpoint.getCurrentUrl()); + if (m.matches()) { + String token = m.group(1); + store(AUTH_CODE_STORE, token); + log("Auth code is: {}", token); + } else { + throw new HarnessException("Error getting parameter Auth code from URL"); + } + return null; + } + + @CustomAction + default ThirdPartyApplicationPageWithToken getAuthTokenAndStoreItKyc() { + Oauth2WebEndpoint endpoint = getEndpoint(Oauth2WebEndpoint.class); + Matcher m = CODE_PATTERN_KYC.matcher(endpoint.getCurrentUrl()); + if (m.matches()) { + String token = m.group(1); + store(AUTH_CODE_STORE, token); + log("Auth code is: {}", token); + } else { + throw new HarnessException("Error getting parameter Auth code from URL"); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/OpenApiBaseBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/OpenApiBaseBuilder.java new file mode 100644 index 0000000..61a9811 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/OpenApiBaseBuilder.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.openapi; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.openapi.OpenApiEndpoint; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RestRequest; + +public abstract class OpenApiBaseBuilder { + + protected final Harness harness; + + public OpenApiBaseBuilder(Harness harness) { + this.harness = harness; + } + + protected > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, OpenApiEndpoint.class, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/OpenApiBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/OpenApiBuilder.java new file mode 100644 index 0000000..9c24fdc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/OpenApiBuilder.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.openapi; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.openapi.OpenApiEndpoint; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +public class OpenApiBuilder extends OpenApiBaseBuilder { + + private static final String SECURED_URL_PART = "secured/"; + private static final String UNSECURED_URL_PART = "unsecured/"; + + public OpenApiBuilder(Harness harness) { + super(harness); + } + + public RawRestRequest.Path prepareRequest() { + return RawRestRequest.jsonBuilder(harness.getEndpoint(OpenApiEndpoint.class)); + } + + public RawRestRequest.Path prepareSecuredRequest() { + return prepareRequestPathPrefix(SECURED_URL_PART); + } + + public RawRestRequest.Path prepareUnsecuredRequest() { + return prepareRequestPathPrefix(UNSECURED_URL_PART); + } + + private RawRestRequest.Path prepareRequestPathPrefix(String pathPrefix) { + OpenApiEndpoint endpoint = harness.getEndpoint(OpenApiEndpoint.class); + return RawRestRequest.jsonBuilder(endpoint) + .setPathPrefix(pathPrefix); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/SmallBusinessOnboardingEndpointsConstants.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/SmallBusinessOnboardingEndpointsConstants.java new file mode 100644 index 0000000..0d10c8b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/SmallBusinessOnboardingEndpointsConstants.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.openapi.smeonboarding; + +public class SmallBusinessOnboardingEndpointsConstants { + + public static final String IDENTIFY_ENDPOINT = "smeonboarding/identify"; + public static final String APPLICATION_OPEN_ENDPOINT = "/smeonboarding/application-open"; + public static final String BUSINESS_DETAIL = "/smeonboarding/business/detail"; + public static final String DETAIL_COMMIT = "/smeonboarding/business/detail/commit"; + public static final String PROCESS_UTM = "/smeonboarding/process/utm"; + public static final String DIRECT_CHANNELS = "/smeonboarding/person/contact/direct-channels"; + public static final String SMS_SEND = "/smeonboarding/sms/send"; + public static final String PROCESS_START_ENDPOINT = "smeonboarding/process/start"; + + private SmallBusinessOnboardingEndpointsConstants() { + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/ContactDirectChannelsForm.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/ContactDirectChannelsForm.java new file mode 100644 index 0000000..21c2ac7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/ContactDirectChannelsForm.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.direct_channels; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class ContactDirectChannelsForm { + + private Email email; + private PhoneNumber phoneNumber; + private PhonePrefix phonePrefix; + private UnsecuredCommunicationConsent unsecuredCommunicationConsent; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/DirectChannelsRequestBody.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/DirectChannelsRequestBody.java new file mode 100644 index 0000000..5f86bba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/DirectChannelsRequestBody.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.direct_channels; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class DirectChannelsRequestBody { + + private ContactDirectChannelsForm contactDirectChannelsForm; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/Email.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/Email.java new file mode 100644 index 0000000..71f5651 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/Email.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.direct_channels; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class Email { + + private String value; + private String name; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/PhoneNumber.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/PhoneNumber.java new file mode 100644 index 0000000..c05dd40 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/PhoneNumber.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.direct_channels; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class PhoneNumber { + + private String value; + private String name; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/PhonePrefix.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/PhonePrefix.java new file mode 100644 index 0000000..d212fe5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/PhonePrefix.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.direct_channels; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class PhonePrefix { + + private String value; + private String name; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/UnsecuredCommunicationConsent.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/UnsecuredCommunicationConsent.java new file mode 100644 index 0000000..ba99e61 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/direct_channels/UnsecuredCommunicationConsent.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.direct_channels; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class UnsecuredCommunicationConsent { + + private String value; + private String name; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/CompanyIdentificationForm.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/CompanyIdentificationForm.java new file mode 100644 index 0000000..2100a1c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/CompanyIdentificationForm.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.identify; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class CompanyIdentificationForm { + + private CompanyIdentificationNumber companyIdentificationNumber; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/CompanyIdentificationNumber.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/CompanyIdentificationNumber.java new file mode 100644 index 0000000..56ec192 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/CompanyIdentificationNumber.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.identify; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class CompanyIdentificationNumber { + + private String value; + private String name; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/IdentifyRequestBody.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/IdentifyRequestBody.java new file mode 100644 index 0000000..bc927f5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/IdentifyRequestBody.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.identify; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class IdentifyRequestBody { + + private ProductInstance productInstance; + private CompanyIdentificationForm companyIdentificationForm; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/ProductInstance.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/ProductInstance.java new file mode 100644 index 0000000..7920ac3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/identify/ProductInstance.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.identify; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class ProductInstance { + + private int amount; + private int installment; + private int installmentCount; + private int interestRate; + private String productType; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/process/SmallBusinessOnboardingProcessUtils.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/process/SmallBusinessOnboardingProcessUtils.java new file mode 100644 index 0000000..d56eb6a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/process/SmallBusinessOnboardingProcessUtils.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.process; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.openapi.smeonboarding.process.start.SmallBusinessOnboardingProcessStartResponse; +import cz.moneta.test.dsl.openapi.smeonboarding.SmallBusinessOnboardingEndpointsConstants; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +public class SmallBusinessOnboardingProcessUtils { + + private static final String PROXY_AUTHORIZATION_START_TOKEN_CONFIG = "smeonboarding.start.token"; + + public static RawRestRequest.Post createStartProcessUnsecuredRequest(Harness harness) { + String startToken = harness.getConfig(PROXY_AUTHORIZATION_START_TOKEN_CONFIG); + + return harness.withOpenApi() + .prepareUnsecuredRequest() + .withPath(SmallBusinessOnboardingEndpointsConstants.PROCESS_START_ENDPOINT) + .withHeader("Proxy-Authorization", startToken) + .withHeader("Content-Type", "application/json") + .withPayload("{}"); + } + + public static String startProcessAndGetToken(Harness harness) { + return createStartProcessUnsecuredRequest(harness).post() + .mapResponseIntoObject(SmallBusinessOnboardingProcessStartResponse.class) + .getResponseObject() + .getToken(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/process/start/SmallBusinessOnboardingProcessStartResponse.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/process/start/SmallBusinessOnboardingProcessStartResponse.java new file mode 100644 index 0000000..21ecdf8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/process/start/SmallBusinessOnboardingProcessStartResponse.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.process.start; + +import lombok.Data; + +@Data +public class SmallBusinessOnboardingProcessStartResponse { + + private StartResponseObject responseObject; + private String status; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/process/start/StartResponseObject.java b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/process/start/StartResponseObject.java new file mode 100644 index 0000000..1f825c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/openapi/smeonboarding/process/start/StartResponseObject.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.openapi.smeonboarding.process.start; + +import lombok.Data; + +@Data +public class StartResponseObject { + + private String publicTokenId; + private String token; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngine.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngine.java new file mode 100644 index 0000000..59a844a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngine.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.payment_engine; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.login.PaymentEngineLoginPage; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class PaymentEngine { + private Harness harness; + + public PaymentEngine(Harness harness) { + this.harness = harness; + } + + public PaymentEngineLoginPage openLoginPage(){ + PaymentEngineEndpoint endpoint = harness.getEndpoint(PaymentEngineEndpoint.class); + endpoint.openApplication(); + return Builders.newWebFlowBuilder(PaymentEngineLoginPage.class, endpoint, harness); + } + + public void closePaymentEngine() { + harness.closeEndpoint(harness.getEndpoint(PaymentEngineEndpoint.class)); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineCreateReservationPage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineCreateReservationPage.java new file mode 100644 index 0000000..af0c46c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineCreateReservationPage.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.payment_engine; + +import cz.moneta.test.dsl.payment_engine.enums.PaymentDirection; +import cz.moneta.test.dsl.payment_engine.enums.PaymentType; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.PaymentEngineCreateReservationPage.SELECT_TYPE; + +@Wait(SELECT_TYPE) +public interface PaymentEngineCreateReservationPage extends WebFlow { + + String AMOUNT = "//tbody//input[@name = 'amt']"; + String DESCRIPTION_1 = "//tbody//input[@name = 'line1']"; + String DESCRIPTION_2 = "//tbody//input[@name = 'line2']"; + String DESCRIPTION_3 = "//tbody//input[@name = 'line3']"; + String SELECT_TYPE = "//div[label[text() = 'Typ blokace']]//input[@name = 'type']//following-sibling::img"; + String PAYMENT_TYPE = "//div[div[contains(@class, 'x-combo-selected') and text() = 'Karetní']]//div[text() = '%s']"; + String SELECT_DIRECTION = "//div[label[text() = 'Debet/Kredit']]//input[@name = 'direction']//following-sibling::img"; + String PAYMENT_DIRECTION = "//div[text() = '%s']"; + String SUBMIT_BUTTON = "//button[text()='OK']"; + String EXTERNAL_ID = "//tbody//input[@name='extId']"; + String CREATED_DATE = "//input[@name='created']//following-sibling::input"; + String ACCOUNT_DAY = "//input[@name='accDate']//following-sibling::input"; + String CARD_NUMBER = "//input[@name = 'cardNumber']"; + String AUTHOR_CODE = "//input[@name = 'authCode']"; + + @Click(SELECT_TYPE) + PaymentEngineCreateReservationPage clickOnSelectType(); + + @Wait(value = PAYMENT_TYPE) + @Click(value = PAYMENT_TYPE) + PaymentEngineCreateReservationPage selectType(PaymentType paymentType); + + @Click(SELECT_DIRECTION) + PaymentEngineCreateReservationPage clickOnDirection(); + + @Wait(value = PAYMENT_DIRECTION) + @Click(value = PAYMENT_DIRECTION) + PaymentEngineCreateReservationPage selectDirection(PaymentDirection paymentDirection); + + @TypeIntos({@TypeInto(AMOUNT), @TypeInto(DESCRIPTION_1), @TypeInto(value = DESCRIPTION_2, andWait = @Wait(explicitWaitSeconds = 1))}) + PaymentEngineCreateReservationPage fillManualData(String amount, String description_1, String description_2); + + @TypeIntos({@TypeInto(EXTERNAL_ID), @TypeInto(AMOUNT), @TypeInto(CREATED_DATE), @TypeInto(ACCOUNT_DAY), @TypeInto(DESCRIPTION_1), @TypeInto(DESCRIPTION_3), @TypeInto(CARD_NUMBER), @TypeInto(value = AUTHOR_CODE, andWait = @Wait(explicitWaitSeconds = 1))}) + PaymentEngineCreateReservationPage fillCardData(String externalID, String amount, String createdDate, String accountDay, String description_1, String description_3, String cardId, String authorizationCode); + + @Click(value = SUBMIT_BUTTON, andWait = @Wait(value = SUBMIT_BUTTON, until = Until.GONE)) + PaymentEngineReservationPage clickSubmit(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineDetailAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineDetailAccountPage.java new file mode 100644 index 0000000..433733d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineDetailAccountPage.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.payment_engine; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.PaymentEngineDetailAccountPage.*; + +@Wait({BUTTON_DETAIL_FOR_ACCOUNT_ID, ACCOUNT_ITEM_XPATH, HISTORY_OF_ACCOUNT_ITEM}) +public interface PaymentEngineDetailAccountPage extends WebFlow, StoreAccessor { + String BUTTON_DETAIL_FOR_ACCOUNT_ID = "//button[@class='x-btn-text' and contains(text(), 'Detail pro Účet ID')]"; + String ACCOUNT_ITEM_XPATH = "//span[text()='Účet']"; + String HISTORY_OF_ACCOUNT_ITEM = "//span[text()='Historie účtu']"; + String DISPO_BALANCE = "//input[@name='dispoBalance']"; + String DISPO_BALANCE_VALUE_KEY = "DISPO_BALANCE_VALUE"; + String ACC_BALANCE = "//input[@name='accBalance']"; + String ACC_BALANCE_VALUE_KEY = "ACC_BALANCE_VALUE"; + String ACCOUNT_STATE = "//input[@name='status']"; + String CLOSE_TAB = "//a[@class = 'x-tab-strip-close']"; + + @CustomAction + default PaymentEngineDetailAccountPage getDispoBalance() { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + String value = endpoint.getAttribute(DISPO_BALANCE, Lookup.XPATH, "value"); + storeGlobal(DISPO_BALANCE_VALUE_KEY, value); + return null; + } + + @CustomAction + default PaymentEngineDetailAccountPage getAccBalance() { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + String value = endpoint.getAttribute(ACC_BALANCE, Lookup.XPATH, "value"); + storeGlobal(ACC_BALANCE_VALUE_KEY, value); + return null; + } + + @CustomAction + default PaymentEngineDetailAccountPage getAccountState() { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + String value = endpoint.getAttribute(ACCOUNT_STATE, Lookup.XPATH, "value"); + storeGlobal(ACCOUNT_STATE, value); + return null; + } + + @Click(value = CLOSE_TAB, andWait = @Wait(explicitWaitSeconds = 1)) + PaymentEngineHomePage closeTab(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineEditReservationPage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineEditReservationPage.java new file mode 100644 index 0000000..b5b9afd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineEditReservationPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.payment_engine; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.PaymentEngineCreateReservationPage.SELECT_TYPE; + +@Wait(SELECT_TYPE) +public interface PaymentEngineEditReservationPage extends WebFlow { + + String AMOUNT = "//input[@name = 'amt']"; + String DESCRIPTION_1 = "//input[@name = 'line1']"; + String DESCRIPTION_2 = "//input[@name = 'line2']"; + String DESCRIPTION_3 = "//input[@name = 'line3']"; + String SUBMIT_BUTTON = "//button[text()='OK']"; + + String RESERVATION_ID_KEY = "RESERVATION_ID_KEY"; + String RESERVATION_ID_XPATH = "//input[@name = 'resId']"; + + @TypeIntos({@TypeInto(value = AMOUNT, clear = true), @TypeInto(value = DESCRIPTION_1, clear = true), + @TypeInto(value = DESCRIPTION_2, clear = true, andWait = @Wait(explicitWaitSeconds = 1))}) + PaymentEngineEditReservationPage fillManualData(String amount, String description_1, String description_2); + + @Click(value = SUBMIT_BUTTON, andWait = @Wait(value = SUBMIT_BUTTON, until = Until.GONE)) + PaymentEngineReservationPage clickSubmit(); + + @StoreElementContent(storeKey = RESERVATION_ID_KEY, value = RESERVATION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineEditReservationPage getReservationId(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineForeignPaymentDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineForeignPaymentDetailPage.java new file mode 100644 index 0000000..097217f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineForeignPaymentDetailPage.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.payment_engine; + +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.PaymentEngineDistributionToClearingArchiv; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.PaymentEngineManualForVerificationPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.PaymentEngineForeignPaymentDetailPage.SUBMIT_BUTTON; + +@Wait(SUBMIT_BUTTON) +public interface PaymentEngineForeignPaymentDetailPage extends WebFlow, StoreAccessor { + + String AJAX_LOADING = "//div[text()='Načítám...']"; + String SUBMIT_BUTTON = "//button[text() = 'OK']"; + + @Wait(value = SUBMIT_BUTTON, until = Until.CLICKABLE) + @Click(value = SUBMIT_BUTTON, jsClick = true) + PaymentEngineForeignPaymentDetailPage clickSubmit(); + + @Wait(value = AJAX_LOADING, until = Until.GONE) + PaymentEngineDistributionToClearingArchiv waitForAjax(); + + @CustomAction + default PaymentEngineManualForVerificationPage clickSubmitIfStillVisible() { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + if (!endpoint.isElementVisible(5, PaymentEngineManualForVerificationPage.SEARCH_ID_BUTTON, Lookup.XPATH)) { + clickSubmit().waitForAjax(); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineReservationPage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineReservationPage.java new file mode 100644 index 0000000..f911390 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/PaymentEngineReservationPage.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.payment_engine; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.PaymentEngineReservationPage.CREATE_BUTTON; +import static cz.moneta.test.dsl.payment_engine.PaymentEngineReservationPage.EDIT_BUTTON; + +@Wait({CREATE_BUTTON, EDIT_BUTTON}) +public interface PaymentEngineReservationPage extends WebFlow { + String CREATE_BUTTON = "//a[text()='Založit']"; + String EDIT_BUTTON = "//a[text()='Editovat']"; + String DELETE_BUTTON = "//a[text()='Vymazat']"; + String FIST_MANUAL_RESERVATION = "(//div[contains(@class,'x-grid3-row')]//div[@class='x-grid3-cell-inner x-grid3-col-3'][text() = 'M'])[1]"; + String LAST_RESERVATION_DATE_XPATH = "//div[contains(@class,'x-grid3-row')][position()=last()]//div[text() = \"PDNG\"]/../following-sibling::td[contains(@class, 'x-grid3-td-11')]/div"; + String LAST_RESERVATION_DATE_KEY = "LAST_RESERVATION_DATE_KEY"; + String SELECTED_RESERVATION_ID_XPATH = "//*[contains(@class,'x-grid3-row x-grid3-row-selected')]//div[@class='x-grid3-cell-inner x-grid3-col-1'][string-length(text()) > 10]"; + String SELECTED_RESERVATION_ID_KEY = "SELECTED_RESERVATION_ID_KEY"; + String CHECK_SELECTED_RESERVATION_DATA_PATH = "//*[contains(@class,'x-grid3-row-selected')]//*[contains(text(),'%s')]"; + + @Click(CREATE_BUTTON) + PaymentEngineCreateReservationPage clickCreateOnButton(); + + @StoreElementContent(storeKey = LAST_RESERVATION_DATE_KEY, value = LAST_RESERVATION_DATE_XPATH, by = Lookup.XPATH) + PaymentEngineReservationPage getLastReservationDate(); + + @Click(EDIT_BUTTON) + PaymentEngineEditReservationPage clickOnEditButton(); + + @Click(DELETE_BUTTON) + PaymentEngineEditReservationPage clickOnDeleteButton(); + + @CheckElementPresent(value = CHECK_SELECTED_RESERVATION_DATA_PATH, isStringDynamicXpath = true) + PaymentEngineReservationPage checkSelectedReservationAmount(String amount); + + @StoreElementContent(storeKey = SELECTED_RESERVATION_ID_KEY, value = SELECTED_RESERVATION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineReservationPage getSelectedReservationId(); + + @Click(FIST_MANUAL_RESERVATION) + PaymentEngineReservationPage clickOnFirstManualReservation(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/AccountStates.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/AccountStates.java new file mode 100644 index 0000000..abd7fab --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/AccountStates.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.payment_engine.enums; + +import lombok.Getter; + +@Getter +public enum AccountStates { + + ACTIVE("1"), + TODAY_CLOSED("2"), + BLOCKED("3"), + CLOSED("4"), + SLEEPING("5"), + TODAY_OPENED("6"), + CLOSED_FOR_ENROLLMENT("7"); + + private final String state; + + AccountStates(String state) { + this.state = state; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/CurrencyPAE.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/CurrencyPAE.java new file mode 100644 index 0000000..3363134 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/CurrencyPAE.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.payment_engine.enums; + +import lombok.Getter; + +@Getter +public enum CurrencyPAE { + CURRENCY_CZK_LONG("CZK - Czech Koruna"), + CURRENCY_EUR_LONG("EUR - Euro"), + CURRENCY_USD_LONG("USD - US Dollar"), + CURRENCY_CZK_SHORT("CZK"), + CURRENCY_EUR_SHORT("EUR"), + CURRENCY_USD_SHORT("USD"); + + private final String currency; + + CurrencyPAE(String currency) { + + this.currency = currency; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/ForeignChannelIdentities.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/ForeignChannelIdentities.java new file mode 100644 index 0000000..3e28051 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/ForeignChannelIdentities.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.payment_engine.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum ForeignChannelIdentities implements DynamicPathPart { + AD("AD - ATM"), + API("API - Bank API"), + BKL("BKL - BankKlient"), + IB("IB - Internet Banka"), + MC("MC - Multicash"), + PAE("PAE - Payment Engine"), + SB("SB - Smart Banka"), + SWG("SWG - SWIFT"), + UFO("UFO - UFO"); + + private final String foreignChannelId; + + ForeignChannelIdentities(String foreignChannelId) { + this.foreignChannelId = foreignChannelId; + } + + @Override + public String getValue() { + return foreignChannelId; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/ForeignPaymentType.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/ForeignPaymentType.java new file mode 100644 index 0000000..00b5065 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/ForeignPaymentType.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.payment_engine.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum ForeignPaymentType implements DynamicPathPart { + SEPA_CREDIT_TRANSFER("2x0000 - SEPA Credit transfer"); + + private final String foreignPaymentType; + + ForeignPaymentType(String foreignPaymentType) { + this.foreignPaymentType = foreignPaymentType; + } + + @Override + public String getValue() { + return foreignPaymentType; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/ParameterChannels.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/ParameterChannels.java new file mode 100644 index 0000000..e7bd7f7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/ParameterChannels.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.payment_engine.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum ParameterChannels implements DynamicPathPart { + MT("I_CCI_SAA_MT"); + private final String parameterChannels; + + ParameterChannels(String parameterChannels) { + this.parameterChannels = parameterChannels; + } + + @Override + public String getValue() { + return parameterChannels; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/PaymentDirection.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/PaymentDirection.java new file mode 100644 index 0000000..503a04c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/PaymentDirection.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.payment_engine.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum PaymentDirection implements DynamicPathPart { + DEBET("Debet"), + CREDIT("Credit"); + + private final String paymentDirection; + + PaymentDirection(String paymentDirection) { + this.paymentDirection = paymentDirection; + } + + @Override + public String getValue() { + return paymentDirection; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/PaymentType.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/PaymentType.java new file mode 100644 index 0000000..88c9f92 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/PaymentType.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.payment_engine.enums; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum PaymentType implements DynamicPathPart { + MANUAL("Manuální"), + CARD("Karetní"); + + private final String paymentType; + + PaymentType(String paymentType) { + this.paymentType = paymentType; + } + + @Override + public String getValue() { + return paymentType; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/TransactionOptionalData.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/TransactionOptionalData.java new file mode 100644 index 0000000..3f7cc1c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/TransactionOptionalData.java @@ -0,0 +1,43 @@ +package cz.moneta.test.dsl.payment_engine.enums; + +import lombok.Getter; + +@Getter +public enum TransactionOptionalData { + + IDENTIFICATION1("PŘÍKAZCE.....Harness Autotest.....1\n" + + "PŘÍKAZCE.....Harness Autotest.....2\n" + + "PŘÍKAZCE.....Harness Autotest.....3\n" + + "PŘÍKAZCE.....Harness Autotest.....4"), + + IDENTIFICATION2("PROTISTRANA....Harness Autotest...1\n" + + "PROTISTRANA....Harness Autotest...2\n" + + "PROTISTRANA....Harness Autotest...3\n" + + "PROTISTRANA....Harness Autotest...4"), + + MESSAGE_MAX1("ZP pole......Harness Autotest.....1\n" + + "ZP pole......Harness Autotest.....2\n" + + "ZP pole......Harness Autotest.....3\n" + + "ZP pole......Harness Autotest.....4"), + + MESSAGE_MAX2("AV pole......Harness Autotest.....1\n" + + "AV pole......Harness Autotest.....2\n" + + "AV pole......Harness Autotest.....3\n" + + "AV pole......Harness Autotest.....4"), + + MESSAGE_MIN1("ZP pole......Harness Autotest.....1"), + MESSAGE_MIN2("AV pole......Harness Autotest.....2"), + + NAME1("_Harness_Autotest_"), + NAME2("Nazev_Harness_Autotest_1_Nazev_Harness_Autotest_2_"), + + VARIABLE_SYMBOL("1234567890"), + SPECIFIC_SYMBOL("0987654321"), + CONSTANT_SYMBOL("3333333333"); + + private final String optionalData; + + TransactionOptionalData(String optionalData) { + this.optionalData = optionalData; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/TransactionReasonPAE.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/TransactionReasonPAE.java new file mode 100644 index 0000000..efde3d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/enums/TransactionReasonPAE.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.payment_engine.enums; + +import lombok.Getter; + +@Getter +public enum TransactionReasonPAE { + + ARCHIV("Archiv (ARC)"), + + DISTRIBUTION("K distribuci (DST)"), + + NOSTRO("Nostro účtování (WNB)"), + + BUSINESS_ERROR("Založení blokace - business chyba (DSE)"), + + REPEAT("Nedostatek prostředků (opakování) (NSF)"), + + FUTURE_MATURITY("Budoucí splatnost (WRH)"), + + COVER_WAIT("Čekající na krytí (COV)"), + + IRREDUCIBLE("Nesměrovatelné (UNR)"), + + BLOCKED_DEBTOR("Blokovaný účet plátce (BOA)"), + + CLOSED_DEBTOR("Zavřený účet plátce (COA)"), + + INVALID_DEBTOR("Neplatný typ účtu plátce (TOA)"), + + SLEEPING_DEBTOR("Spící účet odesílatele (DOA)"), + + REJECT("Reject (RJC)"), + + RELEASE("Uvolnit (RLS)"), + + SENT("Odpověď odeslána (RIS)"), + + SENT_WAIT("Odesláno, čeká na odpověď (ISD)"), + + RETURN_FOCR("Přijatý Return FOCR (FRR)"), + + RETURN("Return (RET)"), + + AUTHORIZATION("K autorizaci (ATH)"), + + REDIRECT_TO_STARBUILD("Přesměrování do StarBuild (SBD)"), + + INGOING_WAIT("Příchozí: čekající"), + + INGOING_ARCHIV("Příchozí: archiv"), + + WITHOUT_MANDATE("Bez mandátu (NDA)"), + + BLACKLIST("Blacklist účtů (BLA)"); + + private final String status; + + TransactionReasonPAE(String status) { + this.status = status; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/home/PaymentEngineHomePage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/home/PaymentEngineHomePage.java new file mode 100644 index 0000000..bce78ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/home/PaymentEngineHomePage.java @@ -0,0 +1,239 @@ +package cz.moneta.test.dsl.payment_engine.home; + +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_administration.PaymentEngineParametersChannelParameters; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_administration.PaymentEngineXctRoutingTable; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_cache24_7.PaymentsEngineCache24Menu; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients.*; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringChannelInstances; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringChannelList; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringProcessList; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage.*; + +@Wait({SUPERVIZOR, MONITORING, SEARCH, TRANSACTION, CLIENTS, ADMINISTRATION, CACHE24_7}) +public interface PaymentEngineHomePage extends WebFlow, StoreAccessor { + String SUPERVIZOR = "//button[text() = 'Supervizor']"; + String MONITORING = "//button[text() = 'Monitoring']"; + String SEARCH = "//button[text() = 'Vyhledávání']"; + String TRANSACTION = "//button[text() = 'Transakce']"; + String FEES = "//button[text() = 'Poplatky']"; + String CLIENTS = "//button[text() = 'Klienti']"; + String ADMINISTRATION = "//button[text() = 'Administrace']"; + String CACHE24_7 = "//button[text() = 'Cache 24/7']"; + String MANUAL_CREATE = "//a[text()='Manuální založení']"; + String OUTGOING_SCT = "//a[text()='Založit SCT platbu']"; + String OUTGOING_XCT_CLIENT_PAYMENT = "//a[text()='Založit odchozí XCT klientskou platbu']"; + String CHANNEL_MONITORING = "//a[text()='Monitor kanálů']"; + String CHANNEL_LIST = "//a[text()='Seznam kanálů']"; + String CHANNEL_INSTANCES = "//a[text()='Instance kanálů']"; + String PARAMETERS = "//a[text()='Parametry']"; + String CHANNEL_PARAMETERS = "//a[text()='Parametry kanálů']"; + String TRANSACTIONS_ROUTING = "//a[text()='Směrování transakcí']"; + String XCT_ROUTING_TABLE = "//a[text()='XCT Routing table']"; + String PROCESS_MONITORING = "//a[text()='Monitor procesů']"; + String PROCESS_LIST = "//a[text()='Seznam procesů']"; + String INGOING = "//a[text()='Příchozí']"; + String OUTGOING = "//a[text()='Odchozí']"; + String DOMESTIC = "//a[text()='Domácí']"; + String SEPA = "//a[text()='SEPA']"; + String XCT = "//a[text()='XCT']"; + String DISTRIBUTION_TO_CLEARING = "//a[text()='Distribuce do clearingu']"; + String WAITING = "//div[@class='x-layer x-menu'][contains(@style,'visible')]//a[text()='Čekající']"; + String MANUAL = "//div[@class='x-layer x-menu'][contains(@style,'visible')]//a[text()='Manuální']"; + String FOR_VERIFICATION = "//div[@class='x-layer x-menu'][contains(@style,'visible')]//a[text()='Ke schválení']"; + String ARCHIV = "//div[@class='x-layer x-menu'][contains(@style,'visible')]//a[text()='Archiv']"; + String CREATE_INSTANT_PAYMENT = "//a[text()='Založit okamžitou platbu']"; + String CREATE_DOMESTIC_PAYMENT = "//a[text()='Založit domácí platbu']"; + String CREATE_XCT_FI2FI_PAYMENT = "//a[text()='Založit odchozí XCT FI2FI platbu']"; + String CREATE_IFCY_PAYMENT = "//a[text()='Založit interní platbu IFCY']"; + String CREATE_SCT_CLAIM_NON_RECEIPT = "//a[text()='Založit SCT Claim Non-Receipt']"; + String STANDING_ORDER = "//a[text()='Trvalé příkazy']"; + String CREATE_STANDING_ORDER_CZ = "//a[text()='Nový trvalý příkaz CZ']"; + String LIST_OF_STANDING_ORDERS = "//a[text()='Seznam']"; + String LIST_OF_CLIENTS = "//a[text()='Klienti']"; + String LIST_OF_CLIENTS_ACCOUNTS = "//a[text()='Klientské účty']"; + + @Wait(explicitWaitSeconds = 3) + PaymentEngineHomePage wait3sec(); + + @Wait(value = SEARCH, until = Until.VISIBLE) + @Click(SEARCH) + PaymentEngineSearchPage search(); + + @Click(CACHE24_7) + PaymentsEngineCache24Menu clickOnCache24_7(); + + @Click(CLIENTS) + PaymentEngineClientsMenu clickOnClients(); + + @CustomAction + default void clickOnSubItem(String partOfMenuXpath, String itemXpath, String subItemXpath) { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + endpoint.click(() -> partOfMenuXpath); + endpoint.moveToElementAndClickToOtherElement(itemXpath, subItemXpath); + } + + @CustomAction + default void clickOnSubItem(String partOfMenuXpath, String itemXpath, String subItemXpath, String subSubItemXpath) { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + endpoint.click(() -> partOfMenuXpath); + endpoint.moveToElement(itemXpath); + endpoint.waitForElementsToLoad(3, Until.VISIBLE, subItemXpath); + endpoint.moveToElementAndClickToOtherElement(subItemXpath, subSubItemXpath); + } + + @CustomAction + default PaymentEngineManualCreateOutgoingSctPage clickTransactionAndChooseCreateSctFromCreateManualMenu() { + clickOnSubItem(TRANSACTION, MANUAL_CREATE, SEPA, OUTGOING_SCT); + return null; + } + + @CustomAction + default PaymentEngineManualCreateOutgoingXctClientPaymentPage clickTransactionAndChooseCreateXctClientPaymentFromCreateManualMenu() { + clickOnSubItem(TRANSACTION, MANUAL_CREATE, XCT, OUTGOING_XCT_CLIENT_PAYMENT); + return null; + } + + @CustomAction + default PaymentEngineManualForVerificationPage clickTransactionAndChooseForVerificationFromCreateManualMenu() { + clickOnSubItem(TRANSACTION, MANUAL_CREATE, FOR_VERIFICATION); + return null; + } + + @CustomAction + default PaymentEngineMonitoringChannelList clickMonitoringAndChooseChannelListFromChanelMonitoring() { + clickOnSubItem(MONITORING, CHANNEL_MONITORING, CHANNEL_LIST); + return null; + } + + @CustomAction + default PaymentEngineMonitoringChannelInstances clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() { + clickOnSubItem(MONITORING, CHANNEL_MONITORING, CHANNEL_INSTANCES); + return null; + } + + @CustomAction + default PaymentEngineMonitoringProcessList clickMonitoringAndChooseProcessListFromProcessMonitoring() { + clickOnSubItem(MONITORING, PROCESS_MONITORING, PROCESS_LIST); + return null; + } + + @CustomAction + default PaymentEngineParametersChannelParameters clickAdministrationAndChooseChannelParametersFromParameters() { + clickOnSubItem(ADMINISTRATION, PARAMETERS, CHANNEL_PARAMETERS); + return null; + } + + @CustomAction + default PaymentEngineXctRoutingTable clickAdministrationAndChooseXCTRoutingTableFromTransactionsRouting() { + clickOnSubItem(ADMINISTRATION, TRANSACTIONS_ROUTING, XCT_ROUTING_TABLE); + return null; + } + + @CustomAction + default PaymentEngineIngoingArchiv clickTransactionAndChooseArchivFromIngoing() { + clickOnSubItem(TRANSACTION, INGOING, ARCHIV); + return null; + } + + @CustomAction + default PaymentEngineIngoingWaiting clickTransactionAndChooseWaitingFromIngoing() { + clickOnSubItem(TRANSACTION, INGOING, WAITING); + return null; + } + + @CustomAction + default PaymentEngineIngoingForVerification clickTransactionAndChooseForVerificationFromIngoing() { + clickOnSubItem(TRANSACTION, INGOING, FOR_VERIFICATION); + return null; + } + + @CustomAction + default PaymentEngineOutgoingManual clickTransactionAndChooseManualFromOutgoing() { + clickOnSubItem(TRANSACTION, OUTGOING, MANUAL); + return null; + } + + @CustomAction + default PaymentEngineOutgoingForVerification clickTransactionAndChooseForVerificationFromOutgoing() { + clickOnSubItem(TRANSACTION, OUTGOING, FOR_VERIFICATION); + return null; + } + + @CustomAction + default PaymentEngineOutgoingArchiv clickTransactionAndChooseArchivFromOutgoing() { + clickOnSubItem(TRANSACTION, OUTGOING, ARCHIV); + return null; + } + + @CustomAction + default PaymentEngineDistributionToClearingArchiv clickTransactionAndChooseArchivFromDistributionToClearing() { + clickOnSubItem(TRANSACTION, DISTRIBUTION_TO_CLEARING, ARCHIV); + return null; + } + + @CustomAction + default PaymentEngineDistributionToClearingForVerification clickTransactionAndChooseForVerificationFromDistributionToClearing() { + clickOnSubItem(TRANSACTION, DISTRIBUTION_TO_CLEARING, FOR_VERIFICATION); + return null; + } + + @CustomAction + default PaymentEngineCreateInstantPayment clickTransactionAndChooseCreateInstantPaymentFromManualCreate() { + clickOnSubItem(TRANSACTION, MANUAL_CREATE, DOMESTIC, CREATE_INSTANT_PAYMENT); + return null; + } + + @CustomAction + default PaymentEngineCreateDomesticPayment clickTransactionAndChooseCreateDomesticPaymentFromManualCreate() { + clickOnSubItem(TRANSACTION, MANUAL_CREATE, DOMESTIC, CREATE_DOMESTIC_PAYMENT); + return null; + } + + @CustomAction + default PaymentEngineCreateXctFI2FIPayment clickTransactionAndChooseCreateXctFI2FIPaymentFromManualCreate() { + clickOnSubItem(TRANSACTION, MANUAL_CREATE, XCT, CREATE_XCT_FI2FI_PAYMENT); + return null; + } + + @CustomAction + default PaymentEngineCreateInhouseIfcyPayment clickTransactionAndChooseCreateInhouseIfcyPaymentFromManualCreate() { + clickOnSubItem(TRANSACTION, MANUAL_CREATE, DOMESTIC, CREATE_IFCY_PAYMENT); + return null; + } + + @CustomAction + default PaymentEngineManualCreateSCTClaimNonReciept clickTransactionAndChooseCreateCreateSCTClaimNonReceipt() { + clickOnSubItem(TRANSACTION, MANUAL_CREATE, SEPA, CREATE_SCT_CLAIM_NON_RECEIPT); + return null; + } + + @CustomAction + default PaymentEngineClientsStandingOrderCZ clickClientsAndChooseCreateCzStandingOrderFromStandingOrders() { + clickOnSubItem(CLIENTS, STANDING_ORDER, CREATE_STANDING_ORDER_CZ); + return null; + } + + @CustomAction + default PaymentEngineClientsListOfStandingOrders clickClientsAndChooseListOfStandingOrderFromStandingOrders() { + clickOnSubItem(CLIENTS, STANDING_ORDER, LIST_OF_STANDING_ORDERS); + return null; + } + + @CustomAction + default PaymentEngineClientsListOfClients clickClientsAndChooseListOfClients() { + clickOnSubItem(CLIENTS, CLIENTS, LIST_OF_CLIENTS); + return null; + } + + @CustomAction + default PaymentEngineClientsListOfClientsAccounts clickClientsAndChooseListOfClientsAccounts() { + clickOnSubItem(CLIENTS, CLIENTS, LIST_OF_CLIENTS_ACCOUNTS); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/login/InfoAboutFirstLoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/login/InfoAboutFirstLoginPage.java new file mode 100644 index 0000000..e53d74b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/login/InfoAboutFirstLoginPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.payment_engine.login; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface InfoAboutFirstLoginPage extends WebFlow { + String OK_BUTTON = "//div[@class='x-window']//button[text() = 'OK']"; + + @Wait(value = OK_BUTTON, waitSecondsForElement = 60) + InfoAboutFirstLoginPage waitForOk(); + + @Click(OK_BUTTON) + PaymentEngineHomePage clickOkButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/login/PaymentEngineLoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/login/PaymentEngineLoginPage.java new file mode 100644 index 0000000..199fa21 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/login/PaymentEngineLoginPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.payment_engine.login; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.payment_engine.login.PaymentEngineLoginPage.USER_NAME; + +@Wait(value = USER_NAME, by = Lookup.ID) +public interface PaymentEngineLoginPage extends WebFlow { + String USER_NAME = "username"; + String PASSWORD = "password"; + String LOGIN_BUTTON = "loginButton"; + + @TypeInto(value = USER_NAME, by = Lookup.ID) + @TypeInto(value = PASSWORD, by = Lookup.ID) + @Click(value = LOGIN_BUTTON, by = Lookup.ID) + InfoAboutFirstLoginPage login(String userName, String password); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/CustFeeCalculatorResponse.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/CustFeeCalculatorResponse.java new file mode 100644 index 0000000..71c1fe4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/CustFeeCalculatorResponse.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.payment_engine.model; + +import lombok.*; + +import java.math.BigDecimal; +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@EqualsAndHashCode(callSuper = false) +public class CustFeeCalculatorResponse { + public List fees; + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class FeeList { + private ForeignFeeTypes feeCode; + private CustFeeCalculatorResponse.FeeList.FeeAmount feeAmount = new CustFeeCalculatorResponse.FeeList.FeeAmount(); + private CustFeeCalculatorResponse.FeeList.FeeAmount feeAmountInAccountCurrency = new CustFeeCalculatorResponse.FeeList.FeeAmount(); + private CustFeeCalculatorResponse.FeeList.FeeAmount feeAmountInPaymentCurrency = new CustFeeCalculatorResponse.FeeList.FeeAmount(); + private String externalFeeDescription; + private String externalFeeCode; + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class FeeAmount { + private BigDecimal value; + private String currency; + } + + public enum ForeignFeeTypes { + BOF_STP, + BOF_URGP + } + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/FileForInputPreparation.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/FileForInputPreparation.java new file mode 100644 index 0000000..f30906d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/FileForInputPreparation.java @@ -0,0 +1,102 @@ +package cz.moneta.test.dsl.payment_engine.model; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.payment.PaymentData; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class FileForInputPreparation { + protected Integer lastField; + + public File createTemporaryFileForInput(String templateFile, String newFileName) throws IOException { + //create temporary file for uploading + Path originalPath = Path.of(templateFile); + Path copied = Paths.get(newFileName); + return Files.copy(originalPath, copied).toFile(); + } + + public File prepareFileForInput(Harness harness, String templateFile, String newFileName, PaymentData data) throws IOException { + + //get document sample from resource + BufferedReader reader = PaymentEngineUtils.getFileByFilePath(templateFile); + String line = reader.readLine(); + + //create temporary file for uploading + File file = PaymentEngineUtils.createFile(newFileName); + harness.log("File name: " + file.getName()); + harness.log("File path: " + file.getPath()); + + //delete file in case of exception + try { + BufferedWriter writer = new BufferedWriter(new FileWriter(file)); + while (line != null) { + if (line.contains("#LASTFIELD#")) { + line = line.replace("#LASTFIELD#", String.valueOf(lastField + 1)); + } + if (line.contains("#DATETIME#")) { + line = line.replace("#DATETIME#", DateUtils.getFormattedTodayDateTime("yyyy-MM-dd'T'hh:mm:ss")); + } + if (line.contains("#YYYYMMDD#")) { + line = line.replace("#YYYYMMDD#", DateUtils.getFormattedTodayDate("yyyyMMdd")); + } + if (line.contains("#YYMMDD#")) { + line = line.replace("#YYMMDD#", DateUtils.getFormattedTodayDate("yyMMdd")); + } + if (line.contains("#YYYY-MM-DD#")) { + line = line.replace("#YYYY-MM-DD#", DateUtils.getFormattedTodayDate("yyyy-MM-dd")); + } + if (line.contains("#REF#")) { + line = line.replace("#REF#", String.valueOf(data.getTrxReference())); + } + if (line.contains("#IBAN#")) { + line = line.replace("#IBAN#", String.valueOf(data.getIban())); + } + if (line.contains("#RANDOM#")) { + line = line.replace("#RANDOM#", String.valueOf(data.getRandom())); + } + if (line.contains("#AMOUNT#")) { + line = line.replace("#AMOUNT#", String.valueOf(data.getAmount())); + } + if (line.contains("#AMOUNT1#")) { + line = line.replace("#AMOUNT1#", String.valueOf(data.getAmount1())); + } + if (line.contains("#CREDITOR#")) { + line = line.replace("#CREDITOR#", String.valueOf(data.getCreditorAcc())); + } + if (line.contains("#DEBTOR#")) { + line = line.replace("#DEBTOR#", String.valueOf(data.getDebtorAcc())); + } + if (line.contains("#BANKCODE#")) { + line = line.replace("#BANKCODE#", String.valueOf(data.getBankCode())); + } + if (line.contains("#MESSAGEID#")) { + line = line.replace("#MESSAGEID#", String.valueOf(data.getMessageId())); + } + if (line.contains("#FEETYPE#")) { + line = line.replace("#FEETYPE#", String.valueOf(data.getFeeType())); + } + if (line.contains("#HDTYPE#")) { + line = line.replace("#HDTYPE#", String.valueOf(data.getHdType())); + } + + writer.write(line); + writer.newLine(); + line = reader.readLine(); + writer.flush(); + } + writer.close(); + + } catch (Exception e) { + file.delete(); + throw new RuntimeException(e); + } + return file; + } + + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/GetAcctsBalancesResponse.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/GetAcctsBalancesResponse.java new file mode 100644 index 0000000..1e0837c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/GetAcctsBalancesResponse.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.payment_engine.model; + +import lombok.*; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@EqualsAndHashCode(callSuper = false) +public class GetAcctsBalancesResponse { + public List balancesList; + public GetAcctsBalancesResponse.TifResponseStatus tifResponseStatus = new TifResponseStatus(); + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class BalancesList { + private String accountIdentification; + private String dispositionBalance; + private String accountingBalance; + private String maxAllowedOverdraftBalance; + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class TifResponseStatus { + private String resultCode; + private String errorCode; + private String errorDesc; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/IcbsReservationListSuccessResponse.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/IcbsReservationListSuccessResponse.java new file mode 100644 index 0000000..4f7d603 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/IcbsReservationListSuccessResponse.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.payment_engine.model; + +import lombok.*; +import java.util.ArrayList; +import java.util.List; + +/** + * List of reservations in ICBS. + * Class for API response /t/payments.cluster/GET_HOLDS/001. + */ + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@EqualsAndHashCode(callSuper = false) +@ToString +public class IcbsReservationListSuccessResponse { + + public Integer RT1CNT; + + @Builder.Default + public List RS_DATA = new ArrayList<>(); + + @AllArgsConstructor + @NoArgsConstructor + @Builder + @EqualsAndHashCode(callSuper = false) + public static class RS_DATA { + //Account Number + public Integer OUACCT; + //Record Number + public String OUHREC; + //Record Type + public String OUTYPE; + //Record Status + public String OUSTAT; + //Date Entered + public String OUEDT; + //Expiration Date + public String OUEXDT; + //Amount Of Stop-Hold + public Double OUAMT; + //Payable To + public String OUPAYE; + //Reason For Stop + public String OURESN; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/ReservationListSuccessResponse.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/ReservationListSuccessResponse.java new file mode 100644 index 0000000..feae6bf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/model/ReservationListSuccessResponse.java @@ -0,0 +1,100 @@ +package cz.moneta.test.dsl.payment_engine.model; + +import lombok.*; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * Načítání seznamu blokací. + * Toto je vygenerovana trida pro /t/payments.cluster/frontend-reservation-controller/v1. + * Byla vygenerovana ze souboru frontend-reservation-controller.json pomoci TransactionWso2ValidationAgainstSwaggerTestu. + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@EqualsAndHashCode(callSuper = false) +@ToString +public class ReservationListSuccessResponse { + /* + * CACHE Account id. Long as String. + */ + public String accIdent; + /* + * List of active reservations. + */ + @Builder.Default + public List reservations = new ArrayList<>(); + + @AllArgsConstructor + @NoArgsConstructor + @Builder + @EqualsAndHashCode(callSuper = false) + public static class FrontendReservation { + public String cacheId; + /* + * Reservation Id in originating system. + */ + public String extId; + public String direction; + /* + * Reservation type. + */ + public String type; + /* + * Reservation status reason. + */ + public String statusReason; + /* + * Reservation is informative. + */ + public Boolean infFlag; + /* + * Timestamp of reservation creation in originating system. + */ + public String created; + /* + * Reservation expiration date. + */ + public String expDate; + /* + * Channel ID. + */ + public String channel; + @Builder.Default + public ReservationDescription resDescription = new ReservationDescription(); + /* + * Encapsulates amount and currency. + */ + @Builder.Default + public BlockedAmount blockedAmount = new BlockedAmount(); + /* + * Version of reservation, starting from 1. + */ + public BigDecimal version; + /* + * Reservation status. + */ + public String status; + } + + @AllArgsConstructor + @NoArgsConstructor + @Builder + @EqualsAndHashCode(callSuper = false) + public static class ReservationDescription { + public String line1; + public String line2; + public String line3; + } + + @AllArgsConstructor + @NoArgsConstructor + @Builder + @EqualsAndHashCode(callSuper = false) + public static class BlockedAmount { + public String amt; + public String ccy; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_administration/PaymentEngineParametersChannelParameters.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_administration/PaymentEngineParametersChannelParameters.java new file mode 100644 index 0000000..2febb11 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_administration/PaymentEngineParametersChannelParameters.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_administration; + +import cz.moneta.test.dsl.payment_engine.enums.ParameterChannels; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_administration.PaymentEngineParametersChannelParameters.APPLY_BUTTON; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_administration.PaymentEngineParametersChannelParameters.PARAMETER_NAME; + +@Wait({PARAMETER_NAME, APPLY_BUTTON}) +public interface PaymentEngineParametersChannelParameters extends WebFlow { + String SELECT_CHANNEL = "//input[@name = 'channelId']//following-sibling::img"; + String CHANNEL_ID = "//div[text() = '%s']"; + String PARAMETER_NAME = "//input[@name = 'paramName']"; + String APPLY_BUTTON = "//button[text() = 'Aplikovat']"; + String PARAMETER_VALUE_ID_KEY = "PARAMETER_VALUE_ID_KEY"; + String PARAMETER_VALUE_ID_XPATH = "//div[@class = 'x-grid3-cell-inner x-grid3-col-5']"; + + @TypeInto(PARAMETER_NAME) + PaymentEngineParametersChannelParameters fillParameterName(String parameterName); + + @Wait(PARAMETER_VALUE_ID_XPATH) + @StoreElementContent(storeKey = PARAMETER_VALUE_ID_KEY, value = PARAMETER_VALUE_ID_XPATH, by = Lookup.XPATH) + PaymentEngineParametersChannelParameters getParameterValue(); + + @Click(SELECT_CHANNEL) + PaymentEngineParametersChannelParameters clickOnChannel(); + + @Wait(value = CHANNEL_ID) + @Click(value = CHANNEL_ID, andWait = @Wait(explicitWaitSeconds = 2)) + PaymentEngineParametersChannelParameters selectChannel(ParameterChannels channelId); + + @Wait(PARAMETER_VALUE_ID_XPATH) + @Click(value = APPLY_BUTTON, andWait = @Wait(explicitWaitSeconds = 2)) + PaymentEngineParametersChannelParameters clickApplyButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_administration/PaymentEngineXctRoutingTable.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_administration/PaymentEngineXctRoutingTable.java new file mode 100644 index 0000000..645b010 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_administration/PaymentEngineXctRoutingTable.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_administration; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_administration.PaymentEngineXctRoutingTable.FIRST_BIC_ROW; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_administration.PaymentEngineXctRoutingTable.FIST_ROW; + +@Wait({FIST_ROW, FIRST_BIC_ROW}) +public interface PaymentEngineXctRoutingTable extends WebFlow { + String BIC = "//input[@name='cpBankBicMask']"; + String APPLY_BUTTON = "//button[text() = 'Aplikovat']"; + String FIST_ROW = "//div[contains(@class,'x-grid3-row-selected')]"; + String FIRST_BIC_ROW = "//div[contains(@class,'x-grid3-row-selected')]//div[@class='x-grid3-cell-inner x-grid3-col-2']"; + String FIRST_BIC_ROW_VALUE = "FIRST_BIC_ROW_VALUE"; + + @Wait(explicitWaitSeconds = 2) + @TypeInto(BIC) + @Click(value = APPLY_BUTTON, andWait = @Wait(explicitWaitSeconds = 2)) + PaymentEngineXctRoutingTable choseBicAndApply(String bic); + + @StoreElementContent(value = FIRST_BIC_ROW, storeKey = FIRST_BIC_ROW_VALUE) + PaymentEngineXctRoutingTable saveFirsBic(); + + @CheckElementPresent(FIRST_BIC_ROW) + PaymentEngineXctRoutingTable checkBicExistence(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_cache24_7/PaymentsEngineCache24Menu.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_cache24_7/PaymentsEngineCache24Menu.java new file mode 100644 index 0000000..1bbb5d1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_cache24_7/PaymentsEngineCache24Menu.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_cache24_7; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_cache24_7.PaymentsEngineCache24Menu.ACCOUNT_AND_RESERVATION; + +@Wait(ACCOUNT_AND_RESERVATION) +public interface PaymentsEngineCache24Menu extends WebFlow { + String ACCOUNT_AND_RESERVATION = "//a[text() = 'Účty a jejich blokace']"; + + @Click(ACCOUNT_AND_RESERVATION) + PaymentsEngineCache24SearchAccountsNumber clickOnAccountAndReservation(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_cache24_7/PaymentsEngineCache24SearchAccountsNumber.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_cache24_7/PaymentsEngineCache24SearchAccountsNumber.java new file mode 100644 index 0000000..5f4ddd7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_cache24_7/PaymentsEngineCache24SearchAccountsNumber.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_cache24_7; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.PaymentEngineDetailAccountPage; +import cz.moneta.test.dsl.payment_engine.PaymentEngineReservationPage; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_cache24_7.PaymentsEngineCache24SearchAccountsNumber.INTERNAL_ACCOUNT_NUMBER; + +@Wait(INTERNAL_ACCOUNT_NUMBER) +public interface PaymentsEngineCache24SearchAccountsNumber extends WebFlow, StoreAccessor { + String INTERNAL_ACCOUNT_NUMBER = "//input[@name='accIdent']"; + String APPLY_BUTTON = "//button[text()='Aplikovat']"; + String RESERVATION_BUTTON = "//a[text()='Blokace']//text()/../.."; + String DETAIL_BUTTON = "//a[text()='Detail']"; + String ACCOUNT_DETAIL = "//a[text()='Detail účtu']"; + String REFRESH_BUTTON = "//button[@class='x-btn-text x-tbar-loading']"; + + @TypeInto(INTERNAL_ACCOUNT_NUMBER) + @Click(value = APPLY_BUTTON, andWait = @Wait(value = INTERNAL_ACCOUNT_NUMBER, until = Until.VISIBLE, explicitWaitSeconds = 5)) + PaymentsEngineCache24SearchAccountsNumber typeInternalAccountNumberAndClickApply(String accountNumber); + + @Click(value = RESERVATION_BUTTON, andWait = @Wait(explicitWaitSeconds = 2)) + PaymentEngineReservationPage clickOnReservationButton(); + + @Click(DETAIL_BUTTON) + PaymentEngineDetailAccountPage clickOnDetail(); + + @Click(ACCOUNT_DETAIL) + PaymentEngineDetailAccountPage clickOnAccountDetail(); + + @CustomAction + default PaymentsEngineCache24SearchAccountsNumber waitForAccountState(Harness harness, String state) { + PaymentEngineUtils.waitForElementPresence(harness, String.format("//*[contains(@class,'x-grid3-row-selected')]//div[contains(@class,'x-grid3-cell-inner x-grid3-col-9')][contains(text(),'%s')]", state), REFRESH_BUTTON); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsAuthorizationsForDirectDebits.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsAuthorizationsForDirectDebits.java new file mode 100644 index 0000000..a6b40d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsAuthorizationsForDirectDebits.java @@ -0,0 +1,112 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineClientsAuthorizationsForDirectDebits extends WebFlow, StoreAccessor { + String PREFIX = "//div[@id='Klienti / CZ Svolení k inkasu']"; + String CREATE_AUTHORIZATION_FOR_DIRECT_DEBITS = PREFIX + "//a[text()='Založit']"; + String APPROVE_AUTHORIZATION_FOR_DIRECT_DEBITS = PREFIX + "//a[text()='Schválit']"; + String EDIT_AUTHORIZATION_FOR_DIRECT_DEBITS = PREFIX + "//a[text()='Editovat']"; + String DELETE_AUTHORIZATION_FOR_DIRECT_DEBITS = "//a[text() = 'Vymazat']"; + String REJECT_AUTHORIZATION_FOR_DIRECT_DEBITS = "//a[text() = 'Zamítnout']"; + String DEBTOR_ACCOUNT = PREFIX + "//input[@type='text' and @name='dbtrAccIdent']"; + String CREDITOR_ACCOUNT = PREFIX + "//input[@type='text' and @name='cdtrAccIdent']"; + String STATUS = PREFIX + "//input[@type='hidden' and @name='status']/following-sibling::input"; + String ID = "//input[@name = 'id']"; + String APPLY = PREFIX + "//button[text() = 'Aplikovat']"; + String OK_BUTTON = PREFIX + "//button[text() = 'OK']"; + String SELECT_STATUS = "//input[@name = 'status']//following-sibling::img"; + String STATUS_NULL = "//div[text()='Archivovaný']/preceding-sibling::div"; + String STATUS_FOR_VERIFICATION = "//div[text()='Ke schválení']"; + String STATUS_VALID = "//div[text()='Platný']"; + String CHECK_STATUS = "//div[@class='x-grid3-cell-inner x-grid3-col-10']"; + String PERIOD_MAX_AMOUNT = "//input[@name = 'periodMaxAmount']"; + String CLOSE_TAB = "//a[@class = 'x-tab-strip-close']"; + String AUTH_ROOT_ID_XPATH = PREFIX + "//div[@class='x-grid3-cell-inner x-grid3-col-1']"; + String AUTH_ROOT_ID_KEY = "AUTH_ROOT_ID_KEY"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + String FIRST_ROW = "//div[contains(@class,'x-grid3-row-selected')]//div[@class='x-grid3-cell-inner x-grid3-col-2']"; + + @Click(CREATE_AUTHORIZATION_FOR_DIRECT_DEBITS) + PaymentEngineCreateAuthorizationForDirectDebit clickOnCreateAuthorizationForDirectDebit(); + + @Click(value = EDIT_AUTHORIZATION_FOR_DIRECT_DEBITS, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineClientsAuthorizationsForDirectDebits clickOnEditAuthorizationForDirectDebit(); + + @Click(value = DELETE_AUTHORIZATION_FOR_DIRECT_DEBITS, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineClientsAuthorizationsForDirectDebits clickOnDeleteAuthorizationForDirectDebit(); + + @Click(value = REJECT_AUTHORIZATION_FOR_DIRECT_DEBITS, andWait = @Wait(value = OK_BUTTON, until = Until.VISIBLE)) + PaymentEngineClientsAuthorizationsForDirectDebits clickOnRejectAuthorizationForDirectDebit(); + + @Click(value = APPLY, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineClientsAuthorizationsForDirectDebits clickOnApply(); + + @Click(value = APPROVE_AUTHORIZATION_FOR_DIRECT_DEBITS, andWait = @Wait(value = OK_BUTTON, until = Until.VISIBLE)) + PaymentEngineClientsAuthorizationsForDirectDebits clickOnApprove(); + + @TypeIntos({@TypeInto(CREDITOR_ACCOUNT), @TypeInto(DEBTOR_ACCOUNT)}) + PaymentEngineClientsAuthorizationsForDirectDebits fillManualDataForSearch(String creditorAcc, String debtorAcc); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineClientsAuthorizationsForDirectDebits clickOk(); + + @Wait(explicitWaitSeconds = 5) + PaymentEngineClientsAuthorizationsForDirectDebits wait5sec(); + + @StoreElementContent(storeKey = AUTH_ROOT_ID_KEY, value = AUTH_ROOT_ID_XPATH, by = Lookup.XPATH) + PaymentEngineClientsAuthorizationsForDirectDebits storeRootId(); + + @TypeInto(ID) + PaymentEngineClientsAuthorizationsForDirectDebits fillId(String rootId); + + @Click(SELECT_STATUS) + PaymentEngineClientsAuthorizationsForDirectDebits clickOnStatus(); + + @Wait(STATUS_NULL) + @Click(value = STATUS_NULL) + PaymentEngineClientsAuthorizationsForDirectDebits selectStatusNull(); + + @Wait(STATUS_FOR_VERIFICATION) + @Click(value = STATUS_FOR_VERIFICATION) + PaymentEngineClientsAuthorizationsForDirectDebits selectStatusForVerification(); + + @Wait(STATUS_VALID) + @Click(value = STATUS_VALID) + PaymentEngineClientsAuthorizationsForDirectDebits selectStatusValid(); + + @CheckElementPresent(value = CHECK_STATUS, isStringDynamicXpath = true) + @Wait(explicitWaitSeconds = 2) + PaymentEngineClientsAuthorizationsForDirectDebits checkStatus(String status); + + @Wait(value = AJAX_LOADING, until = Until.GONE) + @TypeInto(PERIOD_MAX_AMOUNT) + PaymentEngineClientsAuthorizationsForDirectDebits editAmount(String periodMaxAmount); + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); + + @CustomAction + default PaymentEngineClientsAuthorizationsForDirectDebits checkAuthorizationForDirectDebitNotPresent(Harness harness, PaymentData data, Credentials user1, Credentials user2) { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + if (endpoint.isElementPresent(FIRST_ROW, Lookup.XPATH)) { + harness.tasks().paymentEngineTasks().removeAuthorizationForDirectDebit(data, user1, user2); + } + return null; + } + + @CustomAction + default PaymentEngineClientsAuthorizationsForDirectDebits checkAuthorizationForDirectDebitForVerificationNotPresent() { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + if (endpoint.isElementPresent(FIRST_ROW, Lookup.XPATH)) { + clickOnRejectAuthorizationForDirectDebit().clickOk(); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfClients.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfClients.java new file mode 100644 index 0000000..1a5c437 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfClients.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineClientsListOfClients extends WebFlow { + + String CLIENT_ID = "//input[@name = 'ident']"; + String APPLY_BUTTON = "//button[text() = 'Aplikovat']"; + String REFRESH_BUTTON = "//button[@class = 'x-btn-text x-tbar-loading']"; + String CLIENT_NAME_KEY = "CLIENT_NAME_KEY"; + String CLIENT_NAME_XPATH = "//div[@class='x-grid3-cell-inner x-grid3-col-4']"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + + @Wait(value = CLIENT_ID, until = Until.VISIBLE) + @TypeInto(CLIENT_ID) + PaymentEngineClientsListOfClients fillClientId(String clientId); + + @Click(value = APPLY_BUTTON, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineClientsListOfClients clickOnApply(); + + @StoreElementContent(storeKey = CLIENT_NAME_KEY, value = CLIENT_NAME_XPATH, by = Lookup.XPATH) + PaymentEngineClientsListOfClients storeClientName(); + + @Wait(value = AJAX_LOADING, until = Until.GONE) + PaymentEngineClientsListOfClients waitForAjax(); + + @CustomAction + default PaymentEngineClientsListOfClients waitForClientNameChange(Harness harness, String newClientName) { + PaymentEngineUtils.waitForElementPresence(harness, String.format("//*[contains(@class,'x-grid3-row-selected')]//*[contains(text(),'%s')]", newClientName), REFRESH_BUTTON); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfClientsAccounts.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfClientsAccounts.java new file mode 100644 index 0000000..e19d80a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfClientsAccounts.java @@ -0,0 +1,89 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + + +public interface PaymentEngineClientsListOfClientsAccounts extends WebFlow, StoreAccessor { + + String CLIENTS_ACCOUNT_INPUT = "//input[@name='accIdent']"; + String CLIENTS_ACCOUNT_STATE_ACTIVE = "//input[@name='blockStatus' and @value='00']"; + String CLIENTS_ACCOUNT_STATE_BLOCKED = "//input[@name='blockStatus' and @value='03']"; + String APPLY_BUTTON = "//button[text()='Aplikovat']"; + String DETAIL_BUTTON = "//a[text()='Detail']"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + String BRANCH_CODE_XPATH = "//input[@name='branchCode']"; + String BRANCH_CODE_KEY = "BRANCH_CODE"; + String REFRESH_BUTTON = "//button[@class='x-btn-text x-tbar-loading']"; + String CLOSE_TAB = "//a[@class='x-tab-strip-close']"; + String CLOSE_DETAIL = "//button[text()='Zavřít']"; + + @TypeInto(CLIENTS_ACCOUNT_INPUT) + PaymentEngineClientsListOfClientsAccounts fillClientsAccount(String clientsAccount); + + @Click(value = APPLY_BUTTON, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineClientsListOfClientsAccounts clickOnApply(); + + @Click(DETAIL_BUTTON) + PaymentEngineClientsListOfClientsAccounts clickOnDetail(); + + @Click(value = CLOSE_DETAIL, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineClientsListOfClientsAccounts closeDetail(); + + @Wait(value = CLIENTS_ACCOUNT_STATE_ACTIVE, until = Until.PRESENT_IN_DOM) + @CheckElementPresent(CLIENTS_ACCOUNT_STATE_ACTIVE) + PaymentEngineClientsListOfClientsAccounts checkAccountStateActive(); + + @Wait(value = CLIENTS_ACCOUNT_STATE_BLOCKED, until = Until.PRESENT_IN_DOM) + @CheckElementPresent(CLIENTS_ACCOUNT_STATE_BLOCKED) + PaymentEngineClientsListOfClientsAccounts checkAccountStateBlocked(); + + @Wait(value = AJAX_LOADING, until = Until.GONE) + PaymentEngineClientsListOfClientsAccounts waitForAjax(); + + @Wait(explicitWaitSeconds = 5) + PaymentEngineClientsListOfClientsAccounts wait5sec(); + + @Wait(explicitWaitSeconds = 10) + PaymentEngineClientsListOfClientsAccounts wait10sec(); + + @CustomAction + default PaymentEngineClientsListOfClientsAccounts storeBranchCode(Harness harness) { + PaymentEngineUtils.storeElementAttribute(harness, BRANCH_CODE_XPATH, BRANCH_CODE_KEY); + return null; + } + + @CustomAction + default PaymentEngineClientsListOfClientsAccounts waitForValue(Harness harness, String value) { + PaymentEngineUtils.waitForElementPresence(harness, String.format("//*[contains(@class,'x-grid3-row-selected')]//*[contains(text(),'%s')]", value), REFRESH_BUTTON); + return null; + } + + @Click(REFRESH_BUTTON) + PaymentEngineClientsListOfClientsAccounts clickOnRefresh(); + + @Click(value = CLOSE_TAB, andWait = @Wait(explicitWaitSeconds = 1)) + PaymentEngineHomePage closeTab(); + + @CustomAction + default PaymentEngineClientsListOfClientsAccounts checkAndUpdateAccountStateIfNotActive() { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + if (endpoint.isElementPresent(CLIENTS_ACCOUNT_STATE_ACTIVE, Lookup.XPATH) == false) { + closeDetail().clickOnRefresh().clickOnDetail().checkAccountStateActive(); + } + return null; + } + + @CustomAction + default PaymentEngineClientsListOfClientsAccounts checkAndUpdateAccountStateIfNotBlocked() { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + if (endpoint.isElementPresent(CLIENTS_ACCOUNT_STATE_ACTIVE, Lookup.XPATH) == false) { + closeDetail().clickOnRefresh().clickOnDetail().checkAccountStateBlocked(); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfStandingOrders.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfStandingOrders.java new file mode 100644 index 0000000..5d15660 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfStandingOrders.java @@ -0,0 +1,76 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineClientsListOfStandingOrders extends WebFlow { + String DEBTOR_ACC = "//input[@name = 'orAcc']"; + String CREDITOR_ACC = "//input[@name = 'cpAcc']"; + String ID = "//input[@name = 'id']"; + String SELECT_STATUS = "//input[@name = 'status']//following-sibling::img"; + String STATUS_NULL = "//div[text()='Archivovaný']/preceding-sibling::div"; + String STATUS_FOR_VERIFICATION = "//div[text()='Ke schválení']"; + String APPLY_BUTTON = "//button[text() = 'Aplikovat']"; + String APPROVE_BUTTON = "//a[text() = 'Schválit']"; + String EDIT_BUTTON = "//a[text() = 'Editovat']"; + String DELETE_BUTTON = "//a[text() = 'Vymazat']"; + String TRANSACTIONS_BUTTON = "//a[text() = 'Transakce']"; + String STAND_ORDER_ROOT_ID_XPATH = "//div[@class='x-grid3-cell-inner x-grid3-col-1']"; + String STAND_ORDER_ROOT_ID_KEY = "STAND_ORDER_ROOT_ID_KEY"; + String CHECK_STATUS = "//div[@class='x-grid3-cell-inner x-grid3-col-16']"; + String OK_BUTTON = "//button[text() = 'OK']"; + String CLOSE_TAB = "//a[@class = 'x-tab-strip-close']"; + String AMOUNT = "//input[@type='text' and @name='amount']"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + String BANK_CODE_INPUT = "//input[@name = 'cpBankCode']//following-sibling::img"; + String INHOUSE_BANK_CODE = "//div[@class='x-combo-list-inner']/div[text()='0600 - MONETA Money Bank, a.s.']"; + + @TypeIntos({@TypeInto(DEBTOR_ACC), @TypeInto(CREDITOR_ACC)}) + PaymentEngineClientsListOfStandingOrders fillSearchData(String debtorAcc, String creditorAcc); + + @Click(value = APPLY_BUTTON, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineClientsListOfStandingOrders clickApply(); + + @Click(value = APPROVE_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.VISIBLE)) + PaymentEngineClientsListOfStandingOrders clickApprove(); + + @StoreElementContent(storeKey = STAND_ORDER_ROOT_ID_KEY, value = STAND_ORDER_ROOT_ID_XPATH, by = Lookup.XPATH) + PaymentEngineClientsListOfStandingOrders storeRootId(); + + @Wait(value = AJAX_LOADING, until = Until.GONE) + @Click(value = SELECT_STATUS) + PaymentEngineClientsListOfStandingOrders clickOnStatus(); + + @Wait(STATUS_FOR_VERIFICATION) + @Click(STATUS_FOR_VERIFICATION) + PaymentEngineClientsListOfStandingOrders selectStatusForVerification(); + + @Wait(STATUS_NULL) + @Click(STATUS_NULL) + PaymentEngineClientsListOfStandingOrders selectStatusNull(); + + @TypeInto(ID) + PaymentEngineClientsListOfStandingOrders fillId(String rootId); + + @CheckElementPresent(value = CHECK_STATUS, isStringDynamicXpath = true) + @Wait(explicitWaitSeconds = 2) + PaymentEngineClientsListOfStandingOrders checkStatus(String status); + + @Click(value = CLOSE_TAB, andWait = @Wait(explicitWaitSeconds = 1)) + PaymentEngineHomePage closeTab(); + + @Click(value = EDIT_BUTTON, andWait = @Wait(value = AMOUNT, until = Until.VISIBLE)) + PaymentEngineClientsListOfStandingOrders clickEdit(); + + @TypeInto(value = AMOUNT, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineClientsListOfStandingOrders editStandingOrder(String amount); + + @Click(value = OK_BUTTON, andWait = @Wait(value = EDIT_BUTTON, until = Until.VISIBLE)) + PaymentEngineClientsListOfStandingOrders clickOk(); + + @Click(value = DELETE_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.VISIBLE)) + PaymentEngineClientsListOfStandingOrders clickDelete(); + + @Click(value = TRANSACTIONS_BUTTON, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineClientsListOfStandingOrdersTransactions clickOnTransactions(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfStandingOrdersTransactions.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfStandingOrdersTransactions.java new file mode 100644 index 0000000..757c278 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsListOfStandingOrdersTransactions.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients.PaymentEngineClientsListOfStandingOrdersTransactions.AJAX_LOADING; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients.PaymentEngineClientsListOfStandingOrdersTransactions.PAGE_LABEL; + +@Wait(value = PAGE_LABEL, until = Until.VISIBLE) +@Wait(value = AJAX_LOADING, until = Until.GONE) +public interface PaymentEngineClientsListOfStandingOrdersTransactions extends WebFlow { + + String PAGE_LABEL = "//span[@class='x-tab-strip-inner']//span[text()='Trvalé příkazy / Seznam']"; + String TRANSACTION_BY_DATE_ID_KEY = "TRANSACTION_BY_TYPE_ID_KEY"; + String TRANSACTION_BY_DATE_ID = "(//div[text()='%s']/../preceding-sibling::td)[3]"; + String FILTERS_BUTTON = "//button[@class='x-btn-text grid-filter-collapse']"; + String SETTLEMENT_FROM_FILLED = "//input[@name='field1#settDate' and not(@value='undefined')]"; + String SETTLEMENT_FROM = "//input[@name='field1#settDate']//following-sibling::input"; + String SEARCH_BUTTON = "//div[@class='x-panel-footer x-panel-footer-noborder']//button[text()='Hledat']"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + + @CheckElementPresent(value = TRANSACTION_BY_DATE_ID, isStringDynamicXpath = true) + PaymentEngineClientsListOfStandingOrdersTransactions checkTransactionIdByDatePresent(String settlementDate); + + @StoreElementContent(storeKey = TRANSACTION_BY_DATE_ID_KEY, value = TRANSACTION_BY_DATE_ID, isStringDynamicXpath = true) + PaymentEngineClientsListOfStandingOrdersTransactions storeTransactionIdByDate(String settlementDate); + + @Click(value = FILTERS_BUTTON, andWait = @Wait(value = SETTLEMENT_FROM, until = Until.VISIBLE)) + PaymentEngineClientsListOfStandingOrdersTransactions clickFilters(); + + @TypeInto(value = SETTLEMENT_FROM, andWait = @Wait(value = SETTLEMENT_FROM_FILLED, isStringDynamicXpath = true)) + PaymentEngineClientsListOfStandingOrdersTransactions fillSettlementFrom(String settlementFrom); + + @Click(value = SEARCH_BUTTON, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineClientsListOfStandingOrdersTransactions clickSearch(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsMenu.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsMenu.java new file mode 100644 index 0000000..bda37bb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsMenu.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage.CLIENTS; + +@Wait(CLIENTS) +public interface PaymentEngineClientsMenu extends WebFlow { + String AUTHORIZATIONS_FOR_DIRECT_DEBIT = "//a[text() = 'CZ Svolení k inkasu']"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + + @Click(value = AUTHORIZATIONS_FOR_DIRECT_DEBIT, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineClientsAuthorizationsForDirectDebits clickOnAuthrizationsForDirectDebit(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsStandingOrderCZ.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsStandingOrderCZ.java new file mode 100644 index 0000000..3a6631f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineClientsStandingOrderCZ.java @@ -0,0 +1,63 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineClientsStandingOrderCZ extends WebFlow { + String PREFIX = "//div[@id='Trvalé příkazy / Nový trvalý příkaz CZ']"; + String NAME = PREFIX + "//input[@type='text' and @name='name']"; + String DESCRIPTION = PREFIX + "//input[@type='text' and @name='description']"; + String TRANSACTION_TYPE = PREFIX + "//input[@name='stordTrnTypeId']/following-sibling::input"; + String AMOUNT = PREFIX + "//input[@type='text' and @name='amount']"; + String BRANCH_CODE = PREFIX + "//input[@type='text' and @name='gembOrBranchCode']"; + String VARIABLE_SYMBOL = PREFIX + "//input[@name = 'ceeSymbolVs']"; + String SPECIFIC_SYMBOL = PREFIX + "//input[@name = 'ceeSymbolSs']"; + String CONSTANT_SYMBOL = PREFIX + "//input[@name = 'ceeSymbolKs']"; + String DEBTOR_ACC_PANEL = PREFIX + "//input[@name = 'orAccIdent']/following-sibling::img"; + String ACC_INPUT = "//input[@name = 'accIdent']"; + String SEARCH = "//button[text() = 'Hledat']"; + String SELECT = "//div[@class = 'x-grid3-row-checker']"; + String OK_BUTTON = "//div[@class='x-window-body x-border-layout-ct']//button[text() = 'OK']"; + String CREDITOR_ACC_PANEL = PREFIX + "//input[@name = 'cpAccIdent']/following-sibling::img"; + String IDENTIFICATION = PREFIX + "//textArea[@name = 'czCpIdent']"; + String MESSAGE1 = PREFIX + "//textArea[@name = 'cpAgentInstr']"; + String MESSAGE2 = PREFIX + "//textArea[@name = 'rmtInfUnstr']"; + String PERIOD = PREFIX + "//input[@name = 'period']/following-sibling::input"; + String DAY_MONTH = PREFIX + "//input[@name='dayMonth']"; + String ACCEPT_BUTTON = "//button[@type='submit']"; + String START_DATE_BUTTON = "//label[text() = 'Počáteční datum']//following-sibling::div[@class='x-form-element']//img"; + String START_DATE_VALUE = "//td[@title='Dnes']//following-sibling::td[1]/a"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + + @TypeIntos({@TypeInto(TRANSACTION_TYPE), @TypeInto(AMOUNT), @TypeInto(PERIOD), @TypeInto(DAY_MONTH)}) + PaymentEngineClientsStandingOrderCZ fillMandatoryData(String transactionType, String amount, String period, String dayMonth); + + @TypeIntos({@TypeInto(NAME), @TypeInto(DESCRIPTION), @TypeInto(BRANCH_CODE), @TypeInto(VARIABLE_SYMBOL), @TypeInto(SPECIFIC_SYMBOL), @TypeInto(CONSTANT_SYMBOL), @TypeInto(IDENTIFICATION), @TypeInto(MESSAGE1), @TypeInto(MESSAGE2)}) + PaymentEngineClientsStandingOrderCZ fillOptionalData(String name, String description, String branchCode, String variableSymbol, String specificSymbol, String constantSymbol, String identification, String message1, String message2); + + @Click(value = DEBTOR_ACC_PANEL, andWait = @Wait(value = ACC_INPUT, until = Until.VISIBLE)) + PaymentEngineClientsStandingOrderCZ clickOnDebtorPanel(); + + @Click(value = CREDITOR_ACC_PANEL, andWait = @Wait(value = ACC_INPUT, until = Until.VISIBLE)) + PaymentEngineClientsStandingOrderCZ clickOnCreditorPanel(); + + @TypeInto(ACC_INPUT) + @Click(value = SEARCH, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineClientsStandingOrderCZ searchAccount(String account); + + @Click(SELECT) + PaymentEngineClientsStandingOrderCZ clickOnSelectAccount(); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineClientsStandingOrderCZ selectAccount(); + + @Click(START_DATE_BUTTON) + PaymentEngineClientsStandingOrderCZ clickOnStartDate(); + + @Wait(value = START_DATE_VALUE, until = Until.VISIBLE) + @Click(START_DATE_VALUE) + PaymentEngineClientsStandingOrderCZ chooseStartDate(); + + @Click(value = ACCEPT_BUTTON, andWait = @Wait(value = ACCEPT_BUTTON, until = Until.GONE)) + PaymentEngineHomePage clickAccept(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineCreateAuthorizationForDirectDebit.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineCreateAuthorizationForDirectDebit.java new file mode 100644 index 0000000..8d9b6fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_clients/PaymentEngineCreateAuthorizationForDirectDebit.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients; + +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineCreateAuthorizationForDirectDebit extends WebFlow { + String PERIOD_TYPE = "//input[@name = 'periodType']//following-sibling::input"; + String PERIOD_TYPE_NOT_EMPTY = "//input[@name = 'periodType' and not(@value='')]"; + String REMARK = "//input[@name = 'remark']"; + String PERIOD_MAX_AMOUNT = "//input[@name = 'periodMaxAmount']"; + String ACCOUNT = "//input[@name = 'accIdent']"; + String DEBTOR_ACC_BUTTON = "//input[@name= 'dbtrAccIdent']//following-sibling::img"; + String CREDITOR_ACC_BUTTON = "//input[@name= 'cdtrAccIdent']//following-sibling::img"; + String SEARCH_BY_ACCOUNT = "//button[text() = 'Hledat']"; + String OK_BUTTON = "//button[text() = 'OK']"; + String OK_BUTTON_IN_THE_WINDOW = "//div[contains(@class, 'x-window-bwrap')]//button[text() = 'OK']"; + String SELECT_ACCOUNT = "//div[contains(@class,'x-grid3-row')]//div[@class='x-grid3-cell-inner x-grid3-col-5'][text() = '%s']"; + String VARIABLE_SYMBOL = "//input[@name='variableSymbol']"; + String SPECIFIC_SYMBOL = "//input[@name='specificSymbol']"; + String NAME = "//input[@name='name']"; + String BRANCH_CODE = "//input[@type='text' and @name='gembOrBranchCode']"; + + @Click(DEBTOR_ACC_BUTTON) + PaymentEngineCreateAuthorizationForDirectDebit clickOnDebtor(); + + @Click(CREDITOR_ACC_BUTTON) + PaymentEngineCreateAuthorizationForDirectDebit clickOnCreditor(); + + @Click(SEARCH_BY_ACCOUNT) + PaymentEngineCreateAuthorizationForDirectDebit clickSearchByAccount(); + + @Wait(explicitWaitSeconds = 1) + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineCreateAuthorizationForDirectDebit clickOk(); + + @Click(value = SELECT_ACCOUNT, isStringDynamicXpath = true, andWait = @Wait(explicitWaitSeconds = 1)) + PaymentEngineCreateAuthorizationForDirectDebit selectAccount(String account); + + @Click(OK_BUTTON_IN_THE_WINDOW) + PaymentEngineCreateAuthorizationForDirectDebit clickOkInTheWindow(); + + @TypeIntos({@TypeInto(NAME), @TypeInto(BRANCH_CODE), @TypeInto(REMARK), @TypeInto(VARIABLE_SYMBOL), @TypeInto(SPECIFIC_SYMBOL), @TypeInto(PERIOD_MAX_AMOUNT)}) + PaymentEngineCreateAuthorizationForDirectDebit fillManualDataForDirectDebitWithoutDebtor(String name, String branchCode, String remark, String variableSymbol, String specificSymbol, String periodMaxAmount); + + @TypeInto(PERIOD_TYPE) + @KeyPress(value = Key.TAB, andWait = @Wait(value = PERIOD_TYPE_NOT_EMPTY, until = Until.PRESENT_IN_DOM)) + PaymentEngineCreateAuthorizationForDirectDebit fillPeriodType(String periodType); + + @TypeInto(ACCOUNT) + PaymentEngineCreateAuthorizationForDirectDebit fillAccount(String account); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringChannelInstances.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringChannelInstances.java new file mode 100644 index 0000000..8252012 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringChannelInstances.java @@ -0,0 +1,112 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringChannelInstances.SELECT_STATUS; + +@Wait(SELECT_STATUS) +public interface PaymentEngineMonitoringChannelInstances extends WebFlow, StoreAccessor { + + String SUBMIT_BUTTON = "//button[text() = 'OK']"; + String SELECT_STATUS = "//div[label[text()='Status:']]//following-sibling::img"; + String STATUS_SUCCESS = "//div[text() = 'Úspěch']"; + String STATUS_FOR_VERIFICATION = "//div[@class='x-combo-list-inner']//div[text() = 'Ke schválení']"; + String SELECT_CHANNEL = "//div[label[text()='Kanál:']]//following-sibling::img"; + String CAP_PACS009_CHANNEL = "//div[@class='x-combo-list-inner']/div[text() = 'I_EBI_CAP_PACS009']"; + String CAP_PAIN001_CHANNEL = "//div[@class='x-combo-list-inner']/div[text() = 'I_EBI_CAP_PAIN001']"; + String MC_CFA_CHANNEL = "//div[@class='x-combo-list-inner']/div[text() = 'I_EBI_MC_CFA']"; + String MC_CFD_CHANNEL = "//div[@class='x-combo-list-inner']/div[text() = 'I_EBI_MC_CFD']"; + String MC_PAIN_CHANNEL = "//div[@class='x-combo-list-inner']/div[text() = 'I_EBI_MC_PAIN']"; + String MT_FROM_SAA_CHANNEL = "//div[@class='x-combo-list-inner']/div[text() = 'I_CCI_SAA_MT']"; + String CCI_FROM_CERTIS_CHANNEL = "//div[@class='x-combo-list-inner']/div[text() = 'I_CCI_CERTIS']"; + String TRX_FROM_STARBUILD_CHANNEL = "//div[@class='x-combo-list-inner']/div[text() = 'I_EBI_SB_PREBK']"; + String APPLY_BUTTON = "//button[text() = 'Aplikovat']"; + String REFRESH_BUTTON = "//div[@class= 'x-panel-tbar x-panel-tbar-noheader x-panel-tbar-noborder']//button[contains(@class,'loading')]"; + String DETAIL_BUTTON = "//a[text() = 'Detail']"; + String VERIFY_BUTTON = "//a[text() = 'Schválit']"; + String RECORDS_BUTTON = "//a[text() = 'Záznamy']"; + String CHECK_SELECTED_DATA_PATH = "//*[contains(@class,'x-grid3-body')]//*[contains(text(),'%s']"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + + @Wait(value = AJAX_LOADING, until = Until.GONE) + @Click(SELECT_STATUS) + PaymentEngineMonitoringChannelInstances clickOnSelectStatus(); + + @Wait(STATUS_SUCCESS) + @Click(STATUS_SUCCESS) + PaymentEngineMonitoringChannelInstances selectStatusSuccess(); + + @Wait(STATUS_FOR_VERIFICATION) + @Click(STATUS_FOR_VERIFICATION) + PaymentEngineMonitoringChannelInstances selectStatusForVerification(); + + @Click(SELECT_CHANNEL) + PaymentEngineMonitoringChannelInstances clickOnSelectChannel(); + + @Wait(CAP_PACS009_CHANNEL) + @Click(value = CAP_PACS009_CHANNEL, andWait = @Wait(value = CAP_PACS009_CHANNEL, until = Until.GONE)) + PaymentEngineMonitoringChannelInstances selectCapPacs009Channel(); + + @Wait(CAP_PAIN001_CHANNEL) + @Click(value = CAP_PAIN001_CHANNEL, andWait = @Wait(value = CAP_PAIN001_CHANNEL, until = Until.GONE)) + PaymentEngineMonitoringChannelInstances selectCapPain001Channel(); + + @Wait(MC_CFA_CHANNEL) + @Click(value = MC_CFA_CHANNEL, andWait = @Wait(value = MC_CFA_CHANNEL, until = Until.GONE)) + PaymentEngineMonitoringChannelInstances selectMcCfaChannel(); + + @Wait(MC_CFD_CHANNEL) + @Click(value = MC_CFD_CHANNEL, andWait = @Wait(value = MC_CFD_CHANNEL, until = Until.GONE)) + PaymentEngineMonitoringChannelInstances selectMcCfdChannel(); + + @Wait(MC_PAIN_CHANNEL) + @Click(value = MC_PAIN_CHANNEL, andWait = @Wait(value = MC_PAIN_CHANNEL, until = Until.GONE)) + PaymentEngineMonitoringChannelInstances selectMcPainChannel(); + + @Wait(MT_FROM_SAA_CHANNEL) + @Click(value = MT_FROM_SAA_CHANNEL, andWait = @Wait(value = MT_FROM_SAA_CHANNEL, until = Until.GONE)) + PaymentEngineMonitoringChannelInstances selectMtFromSaaChannel(); + + @Wait(CCI_FROM_CERTIS_CHANNEL) + @Click(value = CCI_FROM_CERTIS_CHANNEL, andWait = @Wait(value = CCI_FROM_CERTIS_CHANNEL, until = Until.GONE)) + PaymentEngineMonitoringChannelInstances selectCciFromCertisChannel(); + + @Wait(TRX_FROM_STARBUILD_CHANNEL) + @Click(value = TRX_FROM_STARBUILD_CHANNEL, andWait = @Wait(value = TRX_FROM_STARBUILD_CHANNEL, until = Until.GONE)) + PaymentEngineMonitoringChannelInstances selectTrxFromStarBuildChannel(); + + @Click(value = APPLY_BUTTON, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineMonitoringChannelInstances clickOnApplyButton(); + + @CheckElementPresent(value = CHECK_SELECTED_DATA_PATH, isStringDynamicXpath = true) + PaymentEngineMonitoringChannelInstances checkValuePresent(String value); + + @Click(value = VERIFY_BUTTON, andWait = @Wait(value = SUBMIT_BUTTON, until = Until.CLICKABLE)) + PaymentEngineMonitoringChannelInstances clickOnVerify(); + + @Click(value = SUBMIT_BUTTON, andWait = @Wait(value = SUBMIT_BUTTON, until = Until.GONE)) + PaymentEngineMonitoringChannelInstances clickOnOk(); + + @CustomAction + default PaymentEngineMonitoringInstanceFileRecords waitForChannelAndClickOnRecords(String value) { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + String ROW_FILE = String.format("//*[contains(@class,'x-grid3-body')]//div[text() = '%s']", value); + endpoint.waitForElementAndRefresh(ROW_FILE, REFRESH_BUTTON, 30, 5); + endpoint.click(() -> ROW_FILE); + endpoint.sleepSeconds(2); //PAE při kliku na záznamy občas nezobrazí hned transakci, proto wait před klikem. + endpoint.click(() -> RECORDS_BUTTON); + return null; + } + + @CustomAction + default PaymentEngineMonitoringChannelInstances waitForChannelAndVerify(String value) { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + String ROW_FILE = String.format("//*[contains(@class,'x-grid3-body')]//div[text() = '%s']", value); + endpoint.waitForElementAndRefresh(ROW_FILE, REFRESH_BUTTON, 30, 5); + clickOnVerify().clickOnOk(); + return null; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringChannelList.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringChannelList.java new file mode 100644 index 0000000..af753a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringChannelList.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringChannelList.INPUT_MT_FROM_SAA; + +@Wait(value = INPUT_MT_FROM_SAA, until = Until.VISIBLE) +public interface PaymentEngineMonitoringChannelList extends WebFlow { + String INPUT_MT_FROM_SAA = "//td[@class = 'x-grid3-col x-grid3-cell x-grid3-td-2 ']//div[text()='I_CCI_SAA_MT']"; + String INPUT_SCT_FROM_SIPS = "//td[@class = 'x-grid3-col x-grid3-cell x-grid3-td-2 ']//div[text()='I_CCI_SIPS_SCT']"; + String RUN_BUTTON = "//a[text() = 'Spustit']"; + String CLOSE_BUTTON = "//a[@class = 'x-tab-strip-close']"; + String INPUT_MT101_FROM_SAA = "//td[@class = 'x-grid3-col x-grid3-cell x-grid3-td-2 ']//div[text()='I_EBI_SAA_MT']"; + String INPUT_PACS009_FROM_CAPITOL = "//td[@class = 'x-grid3-col x-grid3-cell x-grid3-td-2 ']//div[text()='I_EBI_CAP_PACS009']"; + String INPUT_PAIN001_FROM_CAPITOL = "//td[@class = 'x-grid3-col x-grid3-cell x-grid3-td-2 ']//div[text()='I_EBI_CAP_PAIN001']"; + String INPUT_CFA_FROM_MC = "//td[@class = 'x-grid3-col x-grid3-cell x-grid3-td-2 ']//div[text()='I_EBI_MC_CFA']"; + String INPUT_CFD_FROM_MC = "//td[@class = 'x-grid3-col x-grid3-cell x-grid3-td-2 ']//div[text()='I_EBI_MC_CFD']"; + String INPUT_PAIN_FROM_MC = "//td[@class = 'x-grid3-col x-grid3-cell x-grid3-td-2 ']//div[text()='I_EBI_MC_PAIN']"; + String INPUT_CCI_FROM_CERTIS = "//td[@class = 'x-grid3-col x-grid3-cell x-grid3-td-2 ']//div[text()='I_CCI_CERTIS']"; + String INPUT_TRX_FROM_STARBUILD = "//td[@class = 'x-grid3-col x-grid3-cell x-grid3-td-2 ']//div[text()='I_EBI_SB_PREBK']"; + + @Click(INPUT_MT_FROM_SAA) + PaymentEngineMonitoringChannelList clickOnInputMT(); + + @Click(value = RUN_BUTTON, andWait = @Wait(explicitWaitSeconds = 3)) + PaymentEngineRunInstance clickOnRunButton(); + + @Click(CLOSE_BUTTON) + PaymentEngineHomePage closeTab(); + + @Click(INPUT_SCT_FROM_SIPS) + PaymentEngineMonitoringChannelList clickOnInputSepa(); + + @Click(INPUT_MT101_FROM_SAA) + PaymentEngineMonitoringChannelList clickOnInputMT101(); + + @Click(INPUT_PACS009_FROM_CAPITOL) + PaymentEngineMonitoringChannelList clickOnInputPacs009(); + + @Click(INPUT_PAIN001_FROM_CAPITOL) + PaymentEngineMonitoringChannelList clickOnInputPain001(); + + @Click(INPUT_CFA_FROM_MC) + PaymentEngineMonitoringChannelList clickOnInputCFA(); + + @Click(INPUT_CFD_FROM_MC) + PaymentEngineMonitoringChannelList clickOnInputCFD(); + + @Click(INPUT_PAIN_FROM_MC) + PaymentEngineMonitoringChannelList clickOnInputPAIN(); + + @Click(INPUT_CCI_FROM_CERTIS) + PaymentEngineMonitoringChannelList clickOnInputCERTIS(); + + @Click(INPUT_TRX_FROM_STARBUILD) + PaymentEngineMonitoringChannelList clickOnInputStarBuild(); + + @Wait(explicitWaitSeconds = 4) + PaymentEngineMonitoringChannelList wait4sec(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringInstanceDetail.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringInstanceDetail.java new file mode 100644 index 0000000..9e48687 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringInstanceDetail.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(explicitWaitSeconds = 2) +public interface PaymentEngineMonitoringInstanceDetail extends WebFlow { + String FILE_RECORDS_BUTTON = "//a[text()='Záznamy souboru']"; + + @Click(FILE_RECORDS_BUTTON) + PaymentEngineMonitoringInstanceFileRecords clickOnFileRecords(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringInstanceFileRecords.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringInstanceFileRecords.java new file mode 100644 index 0000000..2da46cb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringInstanceFileRecords.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords.FIRST_ROW; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords.REFRESH_BUTTON; + +@Wait({REFRESH_BUTTON, FIRST_ROW}) +public interface PaymentEngineMonitoringInstanceFileRecords extends WebFlow, StoreAccessor { + + String TRANSACTION_ID_KEY = "TRANSACTION_ID"; + String TRANSACTION_ID_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]//div[@class='x-grid3-cell-inner x-grid3-col-2']"; + String OUTGOING_TRANSACTION_ID_KEY = "OUTGOING_TRANSACTION_ID"; + String OUTGOING_TRANSACTION_ID_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]/following-sibling::div//div[@class='x-grid3-cell-inner x-grid3-col-2']"; + String FIRST_ROW = "//div[contains(@class,'x-grid3-row-selected')]"; + String CLOSE_TAB = "//a[@class='x-tab-strip-close']"; + String LIFECYCLE_BUTTON = "//a[text()='Životní cyklus']"; + String EQUIVALENT_AMOUNT_KEY = "EQUIVALENT_AMOUNT"; + String FIRST_ROW_AMOUNT_KEY = "FIRST_ROW_AMOUNT"; + String SECOND_ROW_AMOUNT_KEY = "SECOND_ROW_AMOUNT"; + String FIRST_ROW_AMOUNT_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]/following-sibling::div//div[@class='x-grid3-cell-inner x-grid3-col-8']"; + String SECOND_ROW_AMOUNT_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]//div[@class='x-grid3-cell-inner x-grid3-col-8']"; + String EQUIVALENT_AMOUNT_CZK_XPATH = "//div[@class='x-grid3-scroller']//div[text() = 'CZK']/../preceding-sibling::td[contains(@class, 'x-grid3-td-11')]/div"; + String EQUIVALENT_AMOUNT_EUR_XPATH = "//div[@class='x-grid3-scroller']//div[text() = 'EUR']/../following-sibling::td[contains(@class, 'x-grid3-td-10')]/div"; + String TRANSACTION_AMOUNT_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]//div[@class='x-grid3-cell-inner x-grid3-col-8']"; + String REFRESH_BUTTON = "//div[@class= 'x-panel-body x-panel-body-noheader x-border-layout-ct']//button[contains(@class,'loading')]"; + + @StoreElementContent(storeKey = TRANSACTION_ID_KEY, value = TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineMonitoringInstanceFileRecords storeTransactionId(); + + @StoreElementContent(storeKey = OUTGOING_TRANSACTION_ID_KEY, value = OUTGOING_TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineMonitoringInstanceFileRecords storeOutgoingTransactionId(); + + @CustomAction + default PaymentEngineMonitoringInstanceFileRecords waitForStatus(Harness harness, TransactionReasonPAE status) { + PaymentEngineUtils.waitForElementPresence(harness, String.format("//*[contains(@class,'x-grid3-body')]//div[text() = '%s']", status.getStatus()), REFRESH_BUTTON); + return null; + } + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); + + @Click(LIFECYCLE_BUTTON) + PaymentEngineMonitoringInstanceLifeCycle clickOnLifeCycleButton(); + + @StoreElementContent(storeKey = FIRST_ROW_AMOUNT_KEY, value = FIRST_ROW_AMOUNT_XPATH, by = Lookup.XPATH) + PaymentEngineMonitoringInstanceFileRecords storeFirstRowAmount(); + + @StoreElementContent(storeKey = SECOND_ROW_AMOUNT_KEY, value = SECOND_ROW_AMOUNT_XPATH, by = Lookup.XPATH) + PaymentEngineMonitoringInstanceFileRecords storeSecondRowAmount(); + + @StoreElementContent(storeKey = EQUIVALENT_AMOUNT_KEY, value = EQUIVALENT_AMOUNT_CZK_XPATH, by = Lookup.XPATH) + PaymentEngineMonitoringInstanceFileRecords storeEquivalentAmountCzk(); + + @StoreElementContent(storeKey = EQUIVALENT_AMOUNT_KEY, value = EQUIVALENT_AMOUNT_EUR_XPATH, by = Lookup.XPATH) + PaymentEngineMonitoringInstanceFileRecords storeEquivalentAmountEur(); + + @CheckElementContent(TRANSACTION_AMOUNT_XPATH) + PaymentEngineMonitoringInstanceFileRecords checkTransactionAmount(String amount); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringInstanceLifeCycle.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringInstanceLifeCycle.java new file mode 100644 index 0000000..5f08028 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringInstanceLifeCycle.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + + +public interface PaymentEngineMonitoringInstanceLifeCycle extends WebFlow, StoreAccessor { + String CHECK_XCT_STATUS = "//tr[td[div[text() = 'xCT prichozi']]]//*[contains(text(),'%s')]"; + String FEE_AMOUNT_KEY = "FEE_AMOUNT"; + String FEE_AMOUNT_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]/following-sibling::div/following-sibling::div//div[@class='x-grid3-cell-inner x-grid3-col-8']"; + String TRANSACTION_TYPE_FEE = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]/following-sibling::div/following-sibling::div//div[@class='x-grid3-cell-inner x-grid3-col-5']"; + String FEE_TRANSACTION_ID_KEY = "FEE_TRANSACTION_ID"; + String FEE_TRANSACTION_ID_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]/following-sibling::div/following-sibling::div//div[@class='x-grid3-cell-inner x-grid3-col-2']"; + String INGOING_TRANSACTION_ID_KEY = "INGOING_TRANSACTION_ID"; + String INGOING_TRANSACTION_ID_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]/following-sibling::div//div[@class='x-grid3-cell-inner x-grid3-col-2']"; + String INGOING_HD11_TRANSACTION_ID_KEY = "INGOING_HD11_TRANSACTION_ID"; + String INGOING_HD11_TRANSACTION_ID_XPATH = "//tr[td[div[text() = 'HD:11 Inicialni prichozi']]]/td[@class='x-grid3-col x-grid3-cell x-grid3-td-2 ']/div"; + String TRANSACTION_AMOUNT_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]/following-sibling::div//div[@class='x-grid3-cell-inner x-grid3-col-8']"; + String CLOSE_TAB = "//a[@class = 'x-tab-strip-close']"; + String REFRESH_BUTTON = "(//div[@class= 'x-panel-body x-panel-body-noheader x-border-layout-ct']//button[contains(@class,'loading')])[2]"; + + @CustomAction + default PaymentEngineMonitoringInstanceLifeCycle waitForHd11Status(Harness harness, String status) { + PaymentEngineUtils.waitForElementPresence(harness, String.format("//tr[td[div[text() = 'HD:11 Inicialni prichozi']]]/td[@class='x-grid3-col x-grid3-cell x-grid3-td-7 ']/div[contains(text(),'%s')]", status), REFRESH_BUTTON); + return null; + } + + @CustomAction + default PaymentEngineMonitoringInstanceLifeCycle waitForXctStatus(Harness harness, String status) { + PaymentEngineUtils.waitForElementPresence(harness, String.format("//tr[td[div[text() = 'xCT prichozi']]]//*[contains(text(),'%s')]", status), REFRESH_BUTTON); + return null; + } + + @StoreElementContent(storeKey = FEE_AMOUNT_KEY, value = FEE_AMOUNT_XPATH, by = Lookup.XPATH) + PaymentEngineMonitoringInstanceLifeCycle storeFeeAmount(); + + @CheckElementContent(TRANSACTION_TYPE_FEE) + PaymentEngineMonitoringInstanceLifeCycle checkTransactionTypeFee(String transactionTypeFee); + + @StoreElementContent(storeKey = FEE_TRANSACTION_ID_KEY, value = FEE_TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineMonitoringInstanceLifeCycle storeFeeTransactionId(); + + @StoreElementContent(storeKey = INGOING_TRANSACTION_ID_KEY, value = INGOING_TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineMonitoringInstanceLifeCycle storeIngoingTransactionId(); + + @StoreElementContent(storeKey = INGOING_HD11_TRANSACTION_ID_KEY, value = INGOING_HD11_TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineMonitoringInstanceLifeCycle storeIngoingHd11TransactionId(); + + @CheckElementContent(TRANSACTION_AMOUNT_XPATH) + PaymentEngineMonitoringInstanceLifeCycle checkTransactionAmount(String amount); + + @Click(value = CLOSE_TAB, andWait = @Wait(value = CLOSE_TAB, until = Until.GONE)) + PaymentEngineHomePage closeTab(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringProcessList.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringProcessList.java new file mode 100644 index 0000000..82c094c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringProcessList.java @@ -0,0 +1,97 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringProcessList.PNCCO_DISTRIBUTION_CZCT; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringProcessList.PNCCO_DISTRIBUTION_XCT; + +@Wait(value = {PNCCO_DISTRIBUTION_CZCT, PNCCO_DISTRIBUTION_XCT}, until = Until.VISIBLE) +public interface PaymentEngineMonitoringProcessList extends WebFlow, StoreAccessor { + String INVALID_ICON = "//ancestor::div[@class='x-form-field-wrap']//following-sibling::div"; + String PNCCO_DISTRIBUTION_XCT = "//div[text()='PNCCO_DISTRIBUTION_XCT']"; + String PNCCO_DISTRIBUTION_CZCT = "//div[text()='PNCCO_DISTRIBUTION_CZCT']"; + String PNCCO_DISTRIBUTION_SCT = "//div[text()='PNCCO_DISTRIBUTION_SCT']"; + String PNCCI_DISTRIBUTION_SB = "//div[text()='PNCCI_DISTRIBUTION_SB']"; + String RELEASE_AFTER_DISPO_CHECK = "//div[text()='ATC_RELEASE']"; + String INIT_BANK_CODE = "//label[text() = 'Kód banky iniciátora']/following-sibling::*/div/input[@type = 'text']"; + String INVALID_INIT_BANK_CODE = INIT_BANK_CODE + INVALID_ICON; + String PAY_SCHEME = "//label[text() = 'Platební schéma']/following-sibling::*/div/input[@type = 'text']"; + String INVALID_PAY_SCHEME = PAY_SCHEME + INVALID_ICON; + String NEXT_DAY_DIST = "//label[text() = 'Distr. na další den']/following-sibling::*/div/input[@type = 'text']"; + String INVALID_NEXT_DAY_DIST = NEXT_DAY_DIST + INVALID_ICON; + String RUN_BUTTON = "//a[text() = 'Spustit']"; + String OK_BUTTON = "//button[@type = 'submit']"; + String CLOSE_POP_UP = "//div[@class='x-tool x-tool-close ']"; + String CLOSE_TAB = "//a[@class = 'x-tab-strip-close']"; + String GENERATE_NOTIFICATION = "//div[label[text()='Generování notifikace']]//following-sibling::img"; + String GENERATE_NOTIFICATION_NO = "(//div[text() = 'Ne'])[2]"; + + @Click(PNCCO_DISTRIBUTION_XCT) + PaymentEngineMonitoringProcessList enterXCTDistribution(); + + @Click(value = RUN_BUTTON, andWait = @Wait(OK_BUTTON)) + PaymentEngineMonitoringProcessList clickOnRunButton(); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineMonitoringProcessList clickOnOk(); + + @Click(PNCCO_DISTRIBUTION_CZCT) + PaymentEngineMonitoringProcessList enterCZCTDistributionForm(); + + @Click(PNCCO_DISTRIBUTION_SCT) + PaymentEngineMonitoringProcessList clickOnSCTDistributionForm(); + + @Click(value = RUN_BUTTON, andWait = @Wait(value = RUN_BUTTON, until = Until.GONE)) + PaymentEngineMonitoringProcessListSCTDistributionForm enterSCTDistributionForm(); + + @Click(PNCCI_DISTRIBUTION_SB) + PaymentEngineMonitoringProcessList enterStarBuildDistributionForm(); + + @Wait(value = OK_BUTTON, until = Until.CLICKABLE) + @Click(value = GENERATE_NOTIFICATION, andWait = @Wait(GENERATE_NOTIFICATION_NO)) + PaymentEngineMonitoringProcessList selectGenerateNotification(); + + @Click(GENERATE_NOTIFICATION_NO) + PaymentEngineMonitoringProcessList selectGenerateNotificationNo(); + + @Click(RELEASE_AFTER_DISPO_CHECK) + PaymentEngineMonitoringProcessList clickOnReleaseAfterDispoCheckForm(); + + @Click(value = RUN_BUTTON, andWait = @Wait(OK_BUTTON)) + PaymentEngineMonitoringProcessReleaseAfterDispo enterReleaseAfterDispoCheckForm(); + + @TypeIntos({@TypeInto(value = INIT_BANK_CODE, andWait = @Wait(value = INVALID_INIT_BANK_CODE, until = Until.GONE), clear = true), + @TypeInto(value = PAY_SCHEME, andWait = @Wait(value = INVALID_PAY_SCHEME, until = Until.GONE), clear = true), + @TypeInto(value = NEXT_DAY_DIST, andWait = @Wait(value = INVALID_NEXT_DAY_DIST, until = Until.GONE), clear = true)}) + @Click(OK_BUTTON) + PaymentEngineMonitoringProcessList clickAndRunCZCTDistribution(String initBankCode, String payScheme, String nextDayDist); + + @Wait(value = OK_BUTTON, until = Until.GONE) + PaymentEngineMonitoringProcessList waitForOkGone(); + + @CustomAction + default PaymentEngineMonitoringProcessList closeErrorPopUpIfVisibleCZCT(String initBankCode, String payScheme, String nextDayDist) { + PaymentEngineEndpoint paymentEngineEndpoint = getEndpoint(PaymentEngineEndpoint.class); + if (paymentEngineEndpoint.isElementVisible(5, CLOSE_POP_UP, Lookup.XPATH)) { + paymentEngineEndpoint.click(() -> CLOSE_POP_UP); + clickAndRunCZCTDistribution(initBankCode, payScheme, nextDayDist).waitForOkGone(); + } + return null; + } + + @CustomAction + default PaymentEngineMonitoringProcessList closeErrorPopUpIfVisibleXCT() { + PaymentEngineEndpoint paymentEngineEndpoint = getEndpoint(PaymentEngineEndpoint.class); + if (paymentEngineEndpoint.isElementVisible(5, CLOSE_POP_UP, Lookup.XPATH)) { + paymentEngineEndpoint.click(() -> CLOSE_POP_UP); + enterXCTDistribution().clickOnRunButton().clickOnOk(); + } + return null; + } + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringProcessListSCTDistributionForm.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringProcessListSCTDistributionForm.java new file mode 100644 index 0000000..fc78b21 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringProcessListSCTDistributionForm.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringProcessListSCTDistributionForm.DISTRIBUTION_GROUP; + +@Wait(value = DISTRIBUTION_GROUP, waitSecondsForElement = 100) +public interface PaymentEngineMonitoringProcessListSCTDistributionForm extends WebFlow, StoreAccessor { + + String INVALID_ICON = "//ancestor::div[@class='x-form-field-wrap']//following-sibling::div"; + String PAY_SCHEME = "//label[text()='Platební schéma']/following-sibling::*/div/input[@type='text']"; + String INVALID_PAY_SCHEME = PAY_SCHEME + INVALID_ICON; + String DISTRIBUTION_GROUP = "//label[text()='Distribuční skupina']/following-sibling::*/div/input[@type='text']"; + String INVALID_DISTRIBUTION_GROUP = DISTRIBUTION_GROUP + INVALID_ICON; + String OK_BUTTON = "//button[@type='submit']"; + String CLOSE_POP_UP = "//div[@class='x-tool x-tool-close ']"; + + @TypeIntos({@TypeInto(value = DISTRIBUTION_GROUP, andWait = @Wait(value = INVALID_DISTRIBUTION_GROUP, until = Until.GONE), clear = true), + @TypeInto(value = PAY_SCHEME, andWait = @Wait(value = INVALID_PAY_SCHEME, until = Until.GONE), clear = true)}) + @Click(OK_BUTTON) + PaymentEngineMonitoringProcessListSCTDistributionForm clickAndRunSCTDistribution(String distributionGroup, String payScheme); + + @Wait(explicitWaitSeconds = 2) + PaymentEngineMonitoringProcessListSCTDistributionForm wait2sec(); + + @CustomAction + default PaymentEngineMonitoringProcessList closeErrorPopUpIfVisible(String distributionGroup, String payScheme) { + PaymentEngineEndpoint paymentEngineEndpoint = getEndpoint(PaymentEngineEndpoint.class); + if (paymentEngineEndpoint.isElementVisible(5, CLOSE_POP_UP, Lookup.XPATH)) { + paymentEngineEndpoint.click(() -> CLOSE_POP_UP); + clickAndRunSCTDistribution(distributionGroup, payScheme) + .wait2sec(); //process is locked for 2 seconds in PAE + } + return null; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringProcessReleaseAfterDispo.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringProcessReleaseAfterDispo.java new file mode 100644 index 0000000..8597e28 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineMonitoringProcessReleaseAfterDispo.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PaymentEngineMonitoringProcessReleaseAfterDispo extends WebFlow { + String OK_BUTTON = "//button[@type = 'submit']"; + String CLOSE_TAB = "//a[@class = 'x-tab-strip-close']"; + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineMonitoringProcessReleaseAfterDispo clickOk(); + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineRunInstance.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineRunInstance.java new file mode 100644 index 0000000..330c09c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_monitoring/PaymentEngineRunInstance.java @@ -0,0 +1,90 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineRunInstance.UPLOAD_FILE_BUTTON; + +@Wait(value = UPLOAD_FILE_BUTTON, until = Until.VISIBLE) +public interface PaymentEngineRunInstance extends WebFlow, StoreAccessor { + String LAST_SEQUENCE_NUMBER_KEY = "LAST_SEQUENCE_NUMBER_KEY"; + String LAST_SEQUENCE_NUMBER_XPATH = "//input[@name = 'LAST_FILE_NUMBER']"; + String LAST_NONPRIORITY_SEQUENCE_NUMBER_KEY = "LAST_NONPRIORITY_SEQUENCE_NUMBER_KEY"; + String LAST_NONPRIORITY_SEQUENCE_NUMBER_XPATH = "//input[@name = 'CZ_LAST_FILE_NUMBER_L']"; + String UPLOAD_FILE_BUTTON = "//a[text() = 'Vložit soubory']"; + String FILE_INPUT_XPATH = "//input[@type='file']"; + String SEND_BUTTON_POPUP = "//button[text() = 'Send']"; + String OK_BUTTON_POPUP = "//td[@class = 'x-panel-btn-td']//table[@class = 'x-btn-wrap x-btn ']//button[text() = 'OK']"; + String OK_BUTTON = "//div[@class = 'x-plain-body x-plain-body-noheader x-plain-body-noborder']//button[text() = 'OK']"; + String CANCEL_BUTTON = "//div[@class = 'x-plain-body x-plain-body-noheader x-plain-body-noborder']//button[text() = 'Storno']"; + String TAB = "//em//span[text() = '%s']"; + String REFRESH_BUTTON = "//div[@class = 'x-panel x-panel-noborder x-grid-panel ']//div[@class = 'x-panel-tbar x-panel-tbar-noborder']//button"; + String CLOSE_TAB = "//a[@class='x-tab-strip-close']"; + String FILE_NAME_XPATH = "//div[contains(text(),'.out')]"; + String CHECKER_FOR_QUE = "(//div[@class='x-grid3-hd-checker'])[2]"; + + @CustomAction + default PaymentEngineRunInstance storeLastNumberInSequence(Harness harness) { + PaymentEngineUtils.storeElementAttribute(harness, LAST_SEQUENCE_NUMBER_XPATH, LAST_SEQUENCE_NUMBER_KEY); + return null; + } + + @CustomAction + default PaymentEngineRunInstance storeLastNonpriorityNumberInSequence(Harness harness) { + PaymentEngineUtils.storeElementAttribute(harness, LAST_NONPRIORITY_SEQUENCE_NUMBER_XPATH, LAST_NONPRIORITY_SEQUENCE_NUMBER_KEY); + return null; + } + + @Click(UPLOAD_FILE_BUTTON) + PaymentEngineRunInstance clickOnUploadFileButton(); + + @FileUpload(value = FILE_INPUT_XPATH) + PaymentEngineRunInstance uploadFile(String filepath); + + @Click(value = SEND_BUTTON_POPUP, andWait = @Wait(value = OK_BUTTON_POPUP, until = Until.CLICKABLE)) + PaymentEngineRunInstance clickSendPopupButton(); + + @Click(value = OK_BUTTON_POPUP, andWait = @Wait(value = OK_BUTTON_POPUP, until = Until.GONE)) + PaymentEngineRunInstance clickOkPopupButton(); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineMonitoringChannelList clickOkButton(); + + @Click(value = CANCEL_BUTTON, andWait = @Wait(value = CANCEL_BUTTON, until = Until.GONE)) + PaymentEngineMonitoringChannelList clickCancelButton(); + + @Click(value = TAB, isStringDynamicXpath = true, by = Lookup.XPATH) + PaymentEngineRunInstance clickOnFileTab(String tabName); + + @Click(CHECKER_FOR_QUE) + PaymentEngineRunInstance chooseAll(); + + @CustomAction() + default PaymentEngineRunInstance waitForFileAndClickOnIt(String fileName) { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + String ROW_FILE = String.format("//div[text() = '%s']", fileName); + endpoint.waitForElementAndRefresh(ROW_FILE, REFRESH_BUTTON, 30, 3); + endpoint.click(() -> ROW_FILE); + return null; + } + + @CustomAction + default PaymentEngineMonitoringChannelList clearQueForMTIfExists() { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + if (endpoint.isElementPresent(FILE_NAME_XPATH, Lookup.XPATH)) { + chooseAll() + .clickOkButton() + .wait4sec(); //process is locked for 4 seconds in PAE + } else { + clickCancelButton(); + } + return null; + } + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchPage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchPage.java new file mode 100644 index 0000000..096407f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchPage.java @@ -0,0 +1,126 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage.ID; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage.SEARCH_BUTTON; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPageLifeCycle.REFRESH_BUTTON_LIFE_CYCLE; + +@Wait({ID, SEARCH_BUTTON}) +public interface PaymentEngineSearchPage extends WebFlow, StoreAccessor { + String ID = "//div[@id='Vyhledávání']//input[@name='field1#id']"; + String DEBTOR_ACC = "//div[@id='Vyhledávání']//input[@name='field1#orAccIdent']"; + String SETTLEMENT_FROM = "//input[@name='field1#settDate']//following-sibling::input"; + String SETTLEMENT_TO = "//input[@name='field2#settDate']//following-sibling::input"; + String PAY_SCHEME = "//input[@name='field1#productCode']//following-sibling::input[contains(@class, 'x-field-editable')]"; + String PAY_SCHEME_IMG = PAY_SCHEME + "/following-sibling::img"; + String PAY_SCHEME_FILLED = "//input[@name='field1#productCode' and not(@value='')]"; + String FRONT_INPUT = "//input[@name='field1#queueId']//following-sibling::input[contains(@class, 'x-field-editable')]"; + String FRONT_IMG = FRONT_INPUT + "/following-sibling::img"; + String FRONT_LABEL = "//div[text()='%s']/../..//div[@class='x-grid3-cell-inner x-grid3-col-6']"; + String FRONT_FILLED = "//input[@name='field1#queueId' and not(@value='')]"; + String REASON = "//input[@name='field1#queueReason']//following-sibling::input[contains(@class, 'x-field-editable')]"; + String REASON_IMG = REASON + "/following-sibling::img"; + String REASON_FILLED = "//input[@name='field1#queueReason' and not(@value='')]"; + String SELECTION_DIV = "//div[text()='%s']"; + String SEARCH_BUTTON = "//div[@id = 'Vyhledávání']//button[text() = 'Hledat']/../.."; + String SEARCH_FORM_BUTTON = "//button[@class='x-btn-text grid-filter-collapse']"; + String CHECK_SELECTED_TRANSACTION_DATA_PATH = "//*[contains(@class,'x-grid3-row-selected')]//*[contains(text(),'%s')]"; + String REFRESH_BUTTON = "//div[@id='Vyhledávání']//div[@class='x-toolbar x-small-editor']//button[@class='x-btn-text x-tbar-loading']"; + String TRANSACTION_DETAIL = "//a[text()='Detail']"; + String TRANSACTION_FILES = "//a[text()='Soubory']"; + String TRANSACTION_LIFE_CYCLE = "//a[text()='Životní cyklus']"; + String CLOSE_TAB_BUTTON = "//a[@class='x-tab-strip-close']"; + String TRANSACTION_ID_KEY = "TRANSACTION_ID_KEY"; + String TRANSACTION_ID_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]//div[@class='x-grid3-cell-inner x-grid3-col-2']"; + String EQUIVALENT_AMOUNT_KEY = "EQUIVALENT_AMOUNT_KEY"; + String EQUIVALENT_AMOUNT_EUR_XPATH = "//div[@class='x-grid3-scroller']//div[text()='EUR']/../following-sibling::td[contains(@class, 'x-grid3-td-11')]/div"; + String EQUIVALENT_AMOUNT_CZK_XPATH = "//div[@class='x-grid3-scroller']//div[text()='CZK']/../following-sibling::td[contains(@class, 'x-grid3-td-11')]/div"; + String EQUIVALENT_AMOUNT_USD_XPATH = "//div[@class='x-grid3-scroller']//div[text()='USD']/../following-sibling::td[contains(@class, 'x-grid3-td-11')]/div"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + + @Wait(value = ID, until = Until.VISIBLE) + @TypeInto(value = ID, clear = true) + PaymentEngineSearchPage typeId(String id); + + @Wait(value = DEBTOR_ACC, until = Until.VISIBLE) + @TypeInto(DEBTOR_ACC) + PaymentEngineSearchPage typeDebtorAcc(String debtorAcc); + + @Wait(value = SETTLEMENT_FROM, until = Until.VISIBLE) + PaymentEngineSearchPage waitForSettlementDateFrom(); + + @Wait(value = SETTLEMENT_TO, until = Until.VISIBLE) + @TypeIntos({@TypeInto(value = SETTLEMENT_FROM, clear = true), @TypeInto(value = SETTLEMENT_TO, clear = true)}) + PaymentEngineSearchPage typeSettlementDates(String settlementFrom, String settlementTo); + + @Wait(value = PAY_SCHEME, until = Until.VISIBLE) + @Click(value = PAY_SCHEME_IMG, andWait = @Wait(value = SELECTION_DIV, until = Until.CLICKABLE, isStringDynamicXpath = true)) + @Click(value = SELECTION_DIV, isStringDynamicXpath = true, andWait = @Wait(value = PAY_SCHEME_FILLED, until = Until.PRESENT_IN_DOM, explicitWaitSeconds = 1)) + PaymentEngineSearchPage selectPayScheme(String payScheme); + + @Wait(value = FRONT_INPUT, until = Until.VISIBLE) + @Click(value = FRONT_IMG, andWait = @Wait(value = SELECTION_DIV, until = Until.CLICKABLE, isStringDynamicXpath = true)) + @Click(value = SELECTION_DIV, isStringDynamicXpath = true, andWait = @Wait(value = FRONT_FILLED, until = Until.PRESENT_IN_DOM, explicitWaitSeconds = 1)) + PaymentEngineSearchPage selectFront(String front); + + @Wait(value = REASON, until = Until.VISIBLE) + @Click(value = REASON_IMG, andWait = @Wait(value = SELECTION_DIV, until = Until.CLICKABLE, isStringDynamicXpath = true)) + @Click(value = SELECTION_DIV, isStringDynamicXpath = true, andWait = @Wait(value = REASON_FILLED, until = Until.PRESENT_IN_DOM, explicitWaitSeconds = 1)) + PaymentEngineSearchPage selectReason(String reason); + + @Wait(value = SEARCH_BUTTON, until = Until.VISIBLE) + @Click(value = SEARCH_BUTTON, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineSearchPage clickSearch(); + + @Click(SEARCH_FORM_BUTTON) + PaymentEngineSearchPage clickSearchForm(); + + @CheckElementPresent(value = CHECK_SELECTED_TRANSACTION_DATA_PATH, isStringDynamicXpath = true) + PaymentEngineSearchPage checkSelectedTransactionData(String data); + + @Click(TRANSACTION_DETAIL) + PaymentEngineSearchTransactionDetail clickOnTransactionDetail(); + + @Click(TRANSACTION_FILES) + PaymentEngineSearchTransactionFiles clickOnTransactionFiles(); + + @Click(CLOSE_TAB_BUTTON) + PaymentEngineHomePage closeTab(); + + @CustomAction + default PaymentEngineSearchPage waitForStatus(Harness harness, TransactionReasonPAE status) { + PaymentEngineUtils.waitForElementPresence(harness, String.format("//*[contains(@class,'x-grid3-row-selected')]//*[contains(text(),'%s')]", status.getStatus()), REFRESH_BUTTON); + return null; + } + + @StoreElementContent(storeKey = TRANSACTION_ID_KEY, value = TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineSearchPage storeSelectedTransactionId(); + + @StoreElementContent(storeKey = EQUIVALENT_AMOUNT_KEY, value = EQUIVALENT_AMOUNT_EUR_XPATH, by = Lookup.XPATH) + PaymentEngineSearchPage storeEquivalentAmountEur(); + + @StoreElementContent(storeKey = EQUIVALENT_AMOUNT_KEY, value = EQUIVALENT_AMOUNT_CZK_XPATH, by = Lookup.XPATH) + PaymentEngineSearchPage storeEquivalentAmountCzk(); + + @StoreElementContent(storeKey = EQUIVALENT_AMOUNT_KEY, value = EQUIVALENT_AMOUNT_USD_XPATH, by = Lookup.XPATH) + PaymentEngineSearchPage storeEquivalentAmountUsd(); + + @Wait(explicitWaitSeconds = 3) + PaymentEngineSearchPage wait3sec(); + + @Wait(explicitWaitSeconds = 5) + PaymentEngineSearchPage wait5sec(); + + @Click(value = TRANSACTION_LIFE_CYCLE, andWait = @Wait(value = REFRESH_BUTTON_LIFE_CYCLE, until = Until.VISIBLE)) + PaymentEngineSearchPageLifeCycle clickLifeCycle(); + + @CheckElementContent(value = FRONT_LABEL, isStringDynamicXpath = true) + PaymentEngineSearchPage checkExpectedFrontValue(String transactionId, String expectedFrontValue); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchPageLifeCycle.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchPageLifeCycle.java new file mode 100644 index 0000000..ab94f46 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchPageLifeCycle.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineSearchPageLifeCycle extends WebFlow, StoreAccessor { + String EQUIVALENT_AMOUNT_KEY = "EQUIVALENT_AMOUNT_KEY"; + String EQUIVALENT_AMOUNT_CZK_XPATH = "(//div[text()='CZK']/../preceding-sibling::td[contains(@class, 'x-grid3-td-11')]/div)[%s]"; + String EQUIVALENT_AMOUNT_EUR_XPATH = "//div[text()='EUR']/../preceding-sibling::td[contains(@class, 'x-grid3-td-11')]/div"; + String REFRESH_BUTTON_LIFE_CYCLE = "//div[@id='Vyhledávání']//div[2]/div/div/div/div/div/div[2]//div[2]//div[@class='x-toolbar x-small-editor']//button[@class='x-btn-text x-tbar-loading']"; + String TRANSACTION_BY_TYPE_ID_KEY = "TRANSACTION_BY_TYPE_ID_KEY"; + String TRANSACTION_BY_TYPE_ID_XPATH = "(//div[text()='%s']/../preceding-sibling::td)[3]"; + String CLOSE_TAB = "//a[@class='x-tab-strip-close']"; + + @Click(value = REFRESH_BUTTON_LIFE_CYCLE) + PaymentEngineSearchPageLifeCycle refreshLifeCycle(); + + @Wait(explicitWaitSeconds = 3) + PaymentEngineSearchPageLifeCycle wait3sec(); + + @Wait(explicitWaitSeconds = 5) + PaymentEngineSearchPageLifeCycle wait5sec(); + + @StoreElementContent(storeKey = EQUIVALENT_AMOUNT_KEY, value = EQUIVALENT_AMOUNT_CZK_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH) + PaymentEngineSearchPageLifeCycle storeEquivalentAmountCzk(String row); + + @StoreElementContent(storeKey = EQUIVALENT_AMOUNT_KEY, value = EQUIVALENT_AMOUNT_EUR_XPATH, by = Lookup.XPATH) + PaymentEngineSearchPageLifeCycle storeEquivalentAmountEur(); + + @StoreElementContent(storeKey = TRANSACTION_BY_TYPE_ID_KEY, value = TRANSACTION_BY_TYPE_ID_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + PaymentEngineSearchPageLifeCycle storeTransactionIdByType(String transactionType); + + @CustomAction + default PaymentEngineSearchPageLifeCycle waitForStatus(Harness harness, TransactionReasonPAE status) { + PaymentEngineUtils.waitForElementPresence(harness, + String.format("//*[contains(@class,'x-grid3-row')]//*[contains(text(),'%s')]", + status.getStatus()), REFRESH_BUTTON_LIFE_CYCLE); + return null; + } + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionDetail.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionDetail.java new file mode 100644 index 0000000..1a006ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionDetail.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineSearchTransactionDetail extends WebFlow { + String RECORD_DETAIL = "//div[contains(@class,'x-hide-offsets')][last()]/following-sibling::div//a[text() = 'Detail záznamu']"; + String LIFE_CYCLE = "//div[contains(@class,'x-hide-offsets')][last()]/following-sibling::div//a[text() = 'Životní cyklus']"; + String REF_TRANSACTION_KEY = "REF_TRANSACTION_KEY"; + String REF_TRANSACTION_XPATH = "//div[contains(@class,'x-hide-offsets')][last()]/following-sibling::div//input[@name = 'txRef']"; + String CLOSE_TAB = "//a[@class='x-tab-strip-close']"; + + @Click(RECORD_DETAIL) + PaymentEngineSearchTransactionRecordDetail clickOnRecordDetail(); + + @Click(LIFE_CYCLE) + PaymentEngineSearchTransactionDetailLifeCycle clickOnLifeCycle(); + + @CustomAction + default PaymentEngineSearchTransactionDetail storeRefTransaction(Harness harness) { + PaymentEngineUtils.storeElementAttribute(harness, REF_TRANSACTION_XPATH, REF_TRANSACTION_KEY); + return null; + } + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionDetailLifeCycle.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionDetailLifeCycle.java new file mode 100644 index 0000000..68b4083 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionDetailLifeCycle.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + + +public interface PaymentEngineSearchTransactionDetailLifeCycle extends WebFlow, StoreAccessor { + String HD21 = "//div[contains(text(), 'HD:21 kryti odchozi')]"; + String SECOND_ROW_TRANSACTION_AMOUNT_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]/following-sibling::div//div[@class='x-grid3-cell-inner x-grid3-col-8']"; + String SECOND_ROW_TRANSACTION_AMOUNT_KEY = "SECOND_ROW_TRANSACTION_AMOUNT_KEY"; + String ROW_TRANSACTION_ID_XPATH = "//div[@class='x-panel-body x-panel-body-noheader x-border-layout-ct']//div[contains(@class,'x-grid3-row-selected')]/following-sibling::div//div[@class='x-grid3-cell-inner x-grid3-col-2']"; + String SECOND_ROW_TRANSACTION_ID_XPATH = "(" + ROW_TRANSACTION_ID_XPATH + ")[1]"; + String SECOND_ROW_TRANSACTION_ID_KEY = "SECOND_ROW_TRANSACTION_ID_KEY"; + String THIRD_ROW_TRANSACTION_ID_XPATH = "(" + ROW_TRANSACTION_ID_XPATH + ")[2]"; + String THIRD_ROW_TRANSACTION_ID_KEY = "THIRD_ROW_TRANSACTION_ID_KEY"; + String FORTH_ROW_TRANSACTION_ID_XPATH = "(" + ROW_TRANSACTION_ID_XPATH + ")[3]"; + String FORTH_ROW_TRANSACTION_ID_KEY = "FORTH_ROW_TRANSACTION_ID_KEY"; + String FIFTH_ROW_TRANSACTION_ID_XPATH = "(" + ROW_TRANSACTION_ID_XPATH + ")[4]"; + String FIFTH_ROW_TRANSACTION_ID_KEY = "FIFTH_ROW_TRANSACTION_ID_KEY"; + String SIXTH_ROW_TRANSACTION_ID_XPATH = "(" + ROW_TRANSACTION_ID_XPATH + ")[5]"; + String SIXTH_ROW_TRANSACTION_ID_KEY = "SIXTH_ROW_TRANSACTION_ID_KEY"; + String TRANSACTION_BY_TYPE_ID_KEY = "TRANSACTION_BY_TYPE_ID_KEY"; + String TRANSACTION_BY_TYPE_ID_XPATH = "(//div[text()='%s']/../preceding-sibling::td)[3]"; + String RECORD_DETAIL = "//div[contains(@class,'x-hide-offsets')][last()]/following-sibling::div//a[text() = 'Detail']"; + String REFRESH_BUTTON = "(//button[contains(@class,'loading')])[2]"; + String REFRESH_BUTTON_LIFE_CYCLE = "(//button[contains(@class,'loading')])[4]"; + String CLOSE_TAB = "//a[@class='x-tab-strip-close']"; + + @Click(HD21) + PaymentEngineSearchTransactionDetailLifeCycle clickOnHD21(); + + @Click(RECORD_DETAIL) + PaymentEngineSearchTransactionDetail clickOnHD21Detail(); + + @CustomAction + default PaymentEngineSearchTransactionDetailLifeCycle waitForStatus(Harness harness, TransactionReasonPAE status) { + PaymentEngineUtils.waitForElementPresence(harness, String.format("//*[contains(@class,'x-grid3-body')]//div[text() = '%s']", + status.getStatus()), REFRESH_BUTTON_LIFE_CYCLE); + return null; + } + + @CustomAction + default PaymentEngineSearchTransactionDetailLifeCycle waitForRowStatus(Harness harness, String transactionData, TransactionReasonPAE status) { + PaymentEngineUtils.waitForElementPresence(harness, String.format("//div[text()='" + transactionData + + "']/../following-sibling::td/div[text()='%s']", status.getStatus()), REFRESH_BUTTON_LIFE_CYCLE); + return null; + } + + @CustomAction + default PaymentEngineSearchTransactionDetailLifeCycle waitForFifthRow(Harness harness) { + PaymentEngineUtils.waitForElementPresence(harness, FIFTH_ROW_TRANSACTION_ID_XPATH, REFRESH_BUTTON_LIFE_CYCLE); + return null; + } + + @StoreElementContent(storeKey = SECOND_ROW_TRANSACTION_ID_KEY, value = SECOND_ROW_TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineSearchTransactionDetailLifeCycle storeSecondRowTransactionId(); + + @StoreElementContent(storeKey = SECOND_ROW_TRANSACTION_AMOUNT_KEY, value = SECOND_ROW_TRANSACTION_AMOUNT_XPATH, by = Lookup.XPATH) + PaymentEngineSearchTransactionDetailLifeCycle storeSecondRowTransactionAmount(); + + @StoreElementContent(storeKey = THIRD_ROW_TRANSACTION_ID_KEY, value = THIRD_ROW_TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineSearchTransactionDetailLifeCycle storeThirdRowTransactionId(); + + @StoreElementContent(storeKey = FORTH_ROW_TRANSACTION_ID_KEY, value = FORTH_ROW_TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineSearchTransactionDetailLifeCycle storeForthRowTransactionId(); + + @StoreElementContent(storeKey = FIFTH_ROW_TRANSACTION_ID_KEY, value = FIFTH_ROW_TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineSearchTransactionDetailLifeCycle storeFifthRowTransactionId(); + + @StoreElementContent(storeKey = SIXTH_ROW_TRANSACTION_ID_KEY, value = SIXTH_ROW_TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineSearchTransactionDetailLifeCycle storeSixthRowTransactionId(); + + @StoreElementContent(storeKey = TRANSACTION_BY_TYPE_ID_KEY, value = TRANSACTION_BY_TYPE_ID_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + PaymentEngineSearchTransactionDetailLifeCycle storeTransactionIdByType(String transactionType); + + @Click(SECOND_ROW_TRANSACTION_ID_XPATH) + PaymentEngineSearchTransactionDetailLifeCycle clickOnSecondRowTransaction(); + + @Click(RECORD_DETAIL) + PaymentEngineSearchTransactionDetail clickOnSecondRowTransactionDetail(); + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionFiles.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionFiles.java new file mode 100644 index 0000000..c3e7cbb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionFiles.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.StoreElementContent; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PaymentEngineSearchTransactionFiles extends WebFlow { + + String TRANSACTION_CHANNEL_NAME_XPATH = "//td[@class='x-grid3-col x-grid3-cell x-grid3-td-3 ']//*[contains(text(),'%s')]"; + String TRANSACTION_FILE_NAME_KEY = "TRANSACTION_FILE_NAME_KEY"; + String TRANSACTION_FILE_NAME_XPATH = TRANSACTION_CHANNEL_NAME_XPATH + "/../preceding-sibling::td[@class='x-grid3-col x-grid3-cell x-grid3-td-2 ']"; + + @StoreElementContent(storeKey = TRANSACTION_FILE_NAME_KEY, value = TRANSACTION_FILE_NAME_XPATH, isStringDynamicXpath = true) + PaymentEngineSearchTransactionFiles storeTransactionFileName(String channelName); + + @CheckElementPresent(value = TRANSACTION_CHANNEL_NAME_XPATH, isStringDynamicXpath = true) + PaymentEngineSearchTransactionFiles checkTransactionChannelName(String channelName); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionRecordDetail.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionRecordDetail.java new file mode 100644 index 0000000..0ddf602 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_search/PaymentEngineSearchTransactionRecordDetail.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search; + +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineSearchTransactionRecordDetail extends WebFlow { + + String REF_TRANSACTION_KEY = "REFERENCE_KEY"; + String REF_TRANSACTION_XPATH = "//tr[td/div[text()='Ref transakce']]//div[@class='x-grid3-cell-inner x-grid3-col-3']"; + String RECORD_DETAIL_EXIT_BUTTON = "//button[text()='Zavřít']"; + String RECORD_DETAIL_CREDITOR_BIC = "//tr[td/div[text()='CP_AGENT_BIC']]//div[text()='%s']"; + String RECORD_DETAIL_CLEARING_PARTNER = "//tr[td/div[text()='OR_AGENT_CORR_BIC']]//div[text()='%s']"; + String RECORD_DETAIL_CP_AGENT_CORR = "//tr[td/div[text()='CP_AGENT_CORR_1_BIC']]//div[text()='%s']"; + String RECORD_DETAIL_INTERMEDIARY_BIC = "//tr[td/div[text()='INTRMY_1_BIC']]//div[text()='%s']"; + String DISTRIBUTION_DATE = "//tr[td/div[text()='DIST_DATE']]//div[@class= 'x-grid3-cell-inner x-grid3-col-4'][text()='%s']"; + String DEBIT_POSTING = "//tr[td/div[text()='Účtování do debetu']]//div[@class='x-grid3-cell-inner x-grid3-col-4'][text()='%s']"; + String INITIATOR = "//tr[td/div[text()='Iniciátor']]//div[@class='x-grid3-cell-inner x-grid3-col-4'][text()='%s']"; + String ICBS_PROFILE = "//tr[td/div[text()='ICBS profil']]//div[@class='x-grid3-cell-inner x-grid3-col-4'][text()='%s']"; + String SETTLEMENT_DATE = "//tr[td/div[text()='SETT_DATE']]//div[@class='x-grid3-cell-inner x-grid3-col-4']"; + String SETTLEMENT_DATE_KEY = "SETTLEMENT_DATE_KEY"; + + @CheckElementsPresent({@CheckElementPresent(value = RECORD_DETAIL_CREDITOR_BIC, isStringDynamicXpath = true), + @CheckElementPresent(value = RECORD_DETAIL_CLEARING_PARTNER, isStringDynamicXpath = true), + @CheckElementPresent(value = RECORD_DETAIL_CP_AGENT_CORR, isStringDynamicXpath = true), + @CheckElementPresent(value = RECORD_DETAIL_INTERMEDIARY_BIC, isStringDynamicXpath = true)}) + PaymentEngineSearchTransactionRecordDetail checkXctRecordDetailElements(String creditorBic, String clearingPartner, + String corrCreditor, String intermediaryBic); + + @CheckElementPresent(value = DISTRIBUTION_DATE, isStringDynamicXpath = true) + PaymentEngineSearchTransactionRecordDetail checkDistributionDate(String distributionDate); + + @CheckElementPresent(value = DEBIT_POSTING, isStringDynamicXpath = true) + PaymentEngineSearchTransactionRecordDetail checkDebitPostingValue(String debitPostingValue); + + @CheckElementPresent(value = INITIATOR, isStringDynamicXpath = true) + PaymentEngineSearchTransactionRecordDetail checkInitiatorValue(String initiatorValue); + + @CheckElementPresent(value = ICBS_PROFILE, isStringDynamicXpath = true) + PaymentEngineSearchTransactionRecordDetail checkIcbsProfileValue(String icbsProfileValue); + + @StoreElementContent(storeKey = REF_TRANSACTION_KEY, value = REF_TRANSACTION_XPATH, by = Lookup.XPATH) + PaymentEngineSearchTransactionRecordDetail storeRefTransaction(); + + @StoreElementContent(storeKey = SETTLEMENT_DATE_KEY, value = SETTLEMENT_DATE, by = Lookup.XPATH) + PaymentEngineSearchTransactionRecordDetail storeSettlementDate(); + + @Click(RECORD_DETAIL_EXIT_BUTTON) + PaymentEngineSearchTransactionDetail clickExitFromRecordDetail(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateDomesticPayment.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateDomesticPayment.java new file mode 100644 index 0000000..d58cc9e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateDomesticPayment.java @@ -0,0 +1,102 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineCreateDomesticPayment extends WebFlow { + String INVALID_ICON = "//ancestor::div[@class='x-form-field-wrap']//following-sibling::div"; + String INVALID_ICON_PICKER = "//ancestor::div[@class='x-form-field-wrap x-form-picker']//following-sibling::div"; + String AMOUNT = "//input[@name = 'amount']"; + String TRANSACTION_TYPE = "//input[@name='mciTrnTypeId']//following-sibling::input"; + String INVALID_TRANSACTION_TYPE = TRANSACTION_TYPE + INVALID_ICON; + String CHANNEL_ID = "//input[@name = 'channelIdent']//following-sibling::input"; + String INVALID_CHANNEL_ID = CHANNEL_ID + INVALID_ICON; + String DEBTOR_ACC = "//input[@name = 'orAccIdent']"; + String INVALID_DEBTOR_ACC = DEBTOR_ACC + INVALID_ICON_PICKER; + String DEBTOR_NAME = "//input[@name = 'orName']"; + String CREDITOR_ACC = "//input[@name = 'cpAccIdent']"; + String INVALID_CREDITOR_ACC = CREDITOR_ACC + INVALID_ICON_PICKER; + String MESSAGE1 = "//textarea[@name = 'rmtInfUnstr']"; + String MESSAGE2 = "//textarea[@name = 'cpAgentInstr']"; + String BANK_CODE_CR = "//input[@name = 'cpBankCode']//following-sibling::input"; + String INVALID_BANK_CODE_CR = BANK_CODE_CR + INVALID_ICON; + String ICBS_PROFILE = "//input[@name = 'icbsProfile']//following-sibling::input"; + String OK_BUTTON = "//*[@type = 'submit']"; + String TRANSACTION_ID_KEY = "TRANSACTION_ID_KEY"; + String TRANSACTION_ID_XPATH = "//div[@class = 'ext-mb-content']/span[@class = 'ext-mb-text']"; + String NO_BUTTON = "//button[text() = 'Ne']"; + String VARIABLE_SYMBOL = "//input[@name = 'ceeSymbolVs']"; + String SPECIFIC_SYMBOL = "//input[@name = 'ceeSymbolSs']"; + String CONSTANT_SYMBOL = "//input[@name = 'ceeSymbolKs']"; + String SUBMISSION_DATE = "//input[@name = 'receiptDatetime']//following-sibling::input"; + String DOCUMENT_DATE = "//input[@name = 'documentDate']//following-sibling::input"; + String EXECUTION_DATE_BUTTON = "//label[text() = 'Datum vykonání']//following-sibling::div[@class=\"x-form-element\"]//img"; + String EXECUTION_DATE_VALUE = "//td[@title='Dnes']%s"; + String DOCUMENT_ID = "//label[text() = 'Identifikace dokladu']//following-sibling::div/input"; + String IDENTIFICATION1 = "//textArea[@name = 'czOrIdent']"; + String IDENTIFICATION2 = "//textArea[@name = 'czCpIdent']"; + String DEBTOR_ACCOUNT_PANEL = "//input[@name = 'orAccIdent']/following-sibling::img"; + String ACCOUNT_INPUT = "//input[@name = 'accIdent']"; + String SEARCH = "//div[@class = 'x-panel-footer']//button[text() = 'Hledat']"; + String SELECT = "//div[@class = 'x-grid3-row-checker']"; + String ACCEPT_BUTTON = "//div[@class='x-panel-bwrap ']//button[text() = 'OK']"; + + @TypeIntos({@TypeInto(value = TRANSACTION_TYPE, andWait = @Wait(value = INVALID_TRANSACTION_TYPE, until = Until.GONE)), @TypeInto(AMOUNT), + @TypeInto(CHANNEL_ID), @TypeInto(value = DEBTOR_ACC, andWait = @Wait(value = INVALID_DEBTOR_ACC, until = Until.GONE)), + @TypeInto(DEBTOR_NAME), @TypeInto(value = CREDITOR_ACC, andWait = @Wait(value = INVALID_CREDITOR_ACC, until = Until.GONE)), + @TypeInto(value = BANK_CODE_CR, andWait = @Wait(value = INVALID_BANK_CODE_CR, until = Until.GONE)), + @TypeInto(MESSAGE1), @TypeInto(MESSAGE2), @TypeInto(ICBS_PROFILE)}) + PaymentEngineCreateDomesticPayment fillManualData(String transactionType, String amount, String message1, String debtorAcc, + String creditorAcc, String bankCodeCr, String channelId, String message2, + String debtorName, String icbsProfile); + + @TypeIntos({@TypeInto(value = TRANSACTION_TYPE, andWait = @Wait(value = INVALID_TRANSACTION_TYPE, until = Until.GONE)), @TypeInto(AMOUNT), + @TypeInto(CHANNEL_ID), @TypeInto(VARIABLE_SYMBOL), @TypeInto(SPECIFIC_SYMBOL), @TypeInto(CONSTANT_SYMBOL), + @TypeInto(value = DEBTOR_ACC, andWait = @Wait(value = INVALID_DEBTOR_ACC, until = Until.GONE)), @TypeInto(DEBTOR_NAME), + @TypeInto(value = CREDITOR_ACC, andWait = @Wait(value = INVALID_CREDITOR_ACC, until = Until.GONE)), + @TypeInto(value = BANK_CODE_CR, andWait = @Wait(value = INVALID_BANK_CODE_CR, until = Until.GONE)), + @TypeInto(MESSAGE1), @TypeInto(MESSAGE2), @TypeInto(IDENTIFICATION1), @TypeInto(IDENTIFICATION2), @TypeInto(ICBS_PROFILE)}) + PaymentEngineCreateDomesticPayment fillManualMaxData(String transactionType, String amount, String channelId, String variableSymbol, + String specificSymbol, String constantSymbol, String debtorAcc, String debtorName, + String creditorAcc, String bankCodeCr, String message1, String message2, + String identification1, String identification2, String icbsProfile); + + @TypeIntos({@TypeInto(value = TRANSACTION_TYPE, andWait = @Wait(value = INVALID_TRANSACTION_TYPE, until = Until.GONE)), @TypeInto(AMOUNT), + @TypeInto(DEBTOR_NAME), @TypeInto(value = CREDITOR_ACC, andWait = @Wait(value = INVALID_CREDITOR_ACC, until = Until.GONE)), + @TypeInto(value = BANK_CODE_CR, andWait = @Wait(value = INVALID_BANK_CODE_CR, until = Until.GONE)), + @TypeInto(MESSAGE1), @TypeInto(MESSAGE2), @TypeInto(ICBS_PROFILE)}) + PaymentEngineCreateDomesticPayment fillManualDataWithoutDebtor(String transactionType, String amount, String message1, String creditorAcc, + String bankCodeCr, String message2, String debtorName, String icbsProfile); + + @Click(value = EXECUTION_DATE_BUTTON, andWait = @Wait(explicitWaitSeconds = 2)) + PaymentEngineCreateDomesticPayment clickOnExecutionDate(); + + @Click(value = EXECUTION_DATE_VALUE, isStringDynamicXpath = true) + PaymentEngineCreateDomesticPayment chooseExecutionDate(String dateXpath); + + @TypeIntos({@TypeInto(SUBMISSION_DATE), @TypeInto(DOCUMENT_DATE), @TypeInto(DOCUMENT_ID), + @TypeInto(value = CHANNEL_ID, andWait = @Wait(value = INVALID_CHANNEL_ID, until = Until.GONE))}) + PaymentEngineCreateDomesticPayment fillDates(String submissionDate, String documentDate, + String documentId, String channelId); + + @Click(value = OK_BUTTON, andWait = @Wait(value = TRANSACTION_ID_XPATH, until = Until.VISIBLE)) + PaymentEngineCreateDomesticPayment clickOk(); + + @StoreElementContent(storeKey = TRANSACTION_ID_KEY, value = TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineCreateDomesticPayment storeTransactionId(); + + @Click(value = NO_BUTTON, andWait = @Wait(value = NO_BUTTON, until = Until.GONE)) + PaymentEngineCreateDomesticPayment clickNo(); + + @Click(value = DEBTOR_ACCOUNT_PANEL, andWait = @Wait(value = ACCOUNT_INPUT, until = Until.VISIBLE)) + PaymentEngineCreateDomesticPayment clickOnDebtorPanel(); + + @TypeInto(ACCOUNT_INPUT) + @Click(value = SEARCH, andWait = @Wait(value = SELECT, until = Until.VISIBLE)) + PaymentEngineCreateDomesticPayment searchDebtorAccount(String debtorAcc); + + @Click(value = SELECT, andWait = @Wait(value = ACCEPT_BUTTON, until = Until.CLICKABLE)) + PaymentEngineCreateDomesticPayment selectDebtorAccount(); + + @Click(value = ACCEPT_BUTTON, andWait = @Wait(value = ACCEPT_BUTTON, until = Until.GONE)) + PaymentEngineCreateDomesticPayment acceptDebtorAccount(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateInhouseIfcyPayment.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateInhouseIfcyPayment.java new file mode 100644 index 0000000..b835aca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateInhouseIfcyPayment.java @@ -0,0 +1,70 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineCreateInhouseIfcyPayment extends WebFlow, StoreAccessor { + String INVALID_ICON = "//ancestor::div[@class='x-form-field-wrap']//following-sibling::div"; + String AMOUNT = "//input[@name = 'amount']"; + String CHANNEL_ID = "//input[@name = 'channelIdent']//following-sibling::input"; + String INVALID_CHANNEL_ID = CHANNEL_ID + INVALID_ICON; + String CURRENCY = "//input[@name = 'curr']/following-sibling::input"; + String INVALID_CURRENCY = CURRENCY + INVALID_ICON; + String DEBTOR_ACCOUNT_PANEL = "//input[@name = 'orAccIdent']/following-sibling::img"; + String ACCOUNT_INPUT = "//input[@name = 'accIdent']"; + String SEARCH = "//button[text() = 'Hledat']"; + String SELECT = "//div[@class = 'x-grid3-row-checker']"; + String OK_BUTTON = "//div[@class='x-window-body x-border-layout-ct']//button[text() = 'OK']"; + String CREDITOR_ACCOUNT_PANEL = "//input[@name = 'cpAccIdent']/following-sibling::img"; + String VARIABLE_SYMBOL = "//input[@name = 'ceeSymbolVs']"; + String SPECIFIC_SYMBOL = "//input[@name = 'ceeSymbolSs']"; + String CONSTANT_SYMBOL = "//input[@name = 'ceeSymbolKs']"; + String IDENTIFICATION1 = "//textArea[@name = 'czOrIdent']"; + String IDENTIFICATION2 = "//textArea[@name = 'czCpIdent']"; + String MESSAGE1 = "//textArea[@name = 'cpAgentInstr']"; + String MESSAGE2 = "//textArea[@name = 'rmtInfUnstr']"; + String ICBS_PROFILE = "//input[@name = 'icbsProfile']//following-sibling::input"; + String INVALID_ICBS_PROFILE = ICBS_PROFILE + INVALID_ICON; + String EXCHANGE_BUTTON = "//input[@name = 'virtXchgrate']/following-sibling::img"; + String ACCEPT_BUTTON = "//div[@class='x-plain-bwrap']//button[text() = 'OK']"; + String NO_BUTTON = "//button[text()='Ne']"; + String TRANSACTION_ID_KEY = "TRANSACTION_ID_KEY"; + String TRANSACTION_ID_XPATH = "//div[@class = 'ext-mb-content']/span[@class = 'ext-mb-text']"; + + @TypeIntos({@TypeInto(AMOUNT), @TypeInto(value = CURRENCY, andWait = @Wait(value = INVALID_CURRENCY, until = Until.GONE)), @TypeInto(value = ICBS_PROFILE, andWait = @Wait(value = INVALID_ICBS_PROFILE, until = Until.GONE))}) + PaymentEngineCreateInhouseIfcyPayment fillMandatoryData(String amount, String currency, String icbsProfile); + + @TypeInto(value = CHANNEL_ID, andWait = @Wait(value = INVALID_CHANNEL_ID, until = Until.GONE)) + PaymentEngineCreateInhouseIfcyPayment fillChannelId(String channelId); + + @TypeIntos({@TypeInto(VARIABLE_SYMBOL), @TypeInto(SPECIFIC_SYMBOL), @TypeInto(CONSTANT_SYMBOL), @TypeInto(IDENTIFICATION1), @TypeInto(IDENTIFICATION2), @TypeInto(MESSAGE1), @TypeInto(MESSAGE2)}) + PaymentEngineCreateInhouseIfcyPayment fillOptionalData(String variableSymbol, String specificSymbol, String constantSymbol, String identification1, String identification2, String message1, String message2); + + @Click(value = DEBTOR_ACCOUNT_PANEL, andWait = @Wait(value = ACCOUNT_INPUT, until = Until.VISIBLE)) + PaymentEngineCreateInhouseIfcyPayment clickOnDebtorAccountPanel(); + + @Click(value = CREDITOR_ACCOUNT_PANEL, andWait = @Wait(value = ACCOUNT_INPUT, until = Until.VISIBLE)) + PaymentEngineCreateInhouseIfcyPayment clickOnCreditorAccountPanel(); + + @TypeInto(ACCOUNT_INPUT) + @Click(value = SEARCH, andWait = @Wait(value = SELECT, until = Until.VISIBLE)) + PaymentEngineCreateInhouseIfcyPayment searchAccount(String account); + + @Click(value = SELECT, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineCreateInhouseIfcyPayment clickOnSelectAccount(); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineCreateInhouseIfcyPayment clickOnOk(); + + @Click(value = EXCHANGE_BUTTON) + PaymentEngineCreateInhouseIfcyPayment clickOnExchange(); + + @Click(value = ACCEPT_BUTTON, andWait = @Wait(value = NO_BUTTON, until = Until.VISIBLE)) + PaymentEngineCreateInhouseIfcyPayment clickAccept(); + + @StoreElementContent(storeKey = TRANSACTION_ID_KEY, value = TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineCreateInhouseIfcyPayment storeTransactionId(); + + @Click(value = NO_BUTTON, andWait = @Wait(value = NO_BUTTON, until = Until.GONE)) + PaymentEngineCreateInhouseIfcyPayment clickNo(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateInstantPayment.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateInstantPayment.java new file mode 100644 index 0000000..d3665ee --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateInstantPayment.java @@ -0,0 +1,68 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.PaymentEngineCreateInstantPayment.CURRENCY_IS_LOAD_XPATH; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.PaymentEngineCreateInstantPayment.OK_BUTTON; + +@Wait({OK_BUTTON, CURRENCY_IS_LOAD_XPATH}) +public interface PaymentEngineCreateInstantPayment extends WebFlow, StoreAccessor { + String INVALID_ICON = "//ancestor::div[@class='x-form-field-wrap']//following-sibling::div"; + String AMOUNT = "//input[@name = 'amount']"; + String DEBTOR_ACC = "//input[@name = 'orAccIdent']"; + String CREDITOR_ACC = "//input[@name = 'cpAccIdentNum']"; + String ACC_PREFIX = "//input[@name = 'cpAccIdentPrefix']"; + String MESSAGE = "//input[@name = 'rmtInfUnstr']"; + String BANK_CODE = "//input[@name = 'cpBankCode']//following-sibling::input"; + String INVALID_BANK_CODE = BANK_CODE + INVALID_ICON; + String OK_BUTTON = "//*[@type = 'submit']"; + String TRANSACTION_ID_KEY = "TRANSACTION_ID_KEY"; + String TRANSACTION_ID_XPATH = "//div[@class = 'ext-mb-content']/span[@class = 'ext-mb-text']"; + String NO_BUTTON = "//button[text() = 'Ne']"; + String VARIABLE_SYMBOL = "//input[@name = 'ceeSymbolVs']"; + String SPECIFIC_SYMBOL = "//input[@name = 'ceeSymbolSs']"; + String CONSTANT_SYMBOL = "//input[@name = 'ceeSymbolKs']"; + String CURRENCY_IS_LOAD_XPATH = "//input[@value='CZK']"; + + @TypeIntos({@TypeInto(AMOUNT), @TypeInto(MESSAGE), @TypeInto(DEBTOR_ACC), @TypeInto(CREDITOR_ACC), + @TypeInto(value = BANK_CODE, andWait = @Wait(value = INVALID_BANK_CODE, until = Until.GONE))}) + PaymentEngineCreateInstantPayment fillManualData(String amount, String message, String debtorAcc, + String creditorAcc, String bankCode); + + @TypeInto(AMOUNT) + PaymentEngineCreateInstantPayment fillAmount(String amount); + + @TypeInto(MESSAGE) + PaymentEngineCreateInstantPayment fillMessage(String message); + + @TypeInto(DEBTOR_ACC) + PaymentEngineCreateInstantPayment fillDebtorAcc(String debtorAcc); + + @TypeInto(CREDITOR_ACC) + PaymentEngineCreateInstantPayment fillCreditorAcc(String creditorAcc); + + @TypeInto(value = BANK_CODE, andWait = @Wait(value = INVALID_BANK_CODE, until = Until.GONE)) + PaymentEngineCreateInstantPayment fillBankCode(String bankCode); + + @TypeIntos({@TypeInto(AMOUNT), @TypeInto(MESSAGE), @TypeInto(VARIABLE_SYMBOL), @TypeInto(SPECIFIC_SYMBOL), @TypeInto(CONSTANT_SYMBOL), + @TypeInto(DEBTOR_ACC), @TypeInto(CREDITOR_ACC), @TypeInto(value = BANK_CODE, andWait = @Wait(value = INVALID_BANK_CODE, until = Until.GONE))}) + PaymentEngineCreateInstantPayment fillManualMaxData(String amount, String message, String variableSymbol, String specificSymbol, String constantSymbol, String debtorAcc, + String creditorAcc, String bankCode); + + @TypeInto(ACC_PREFIX) + PaymentEngineCreateInstantPayment fillPrefix(String accPrefix); + + @Click(value = OK_BUTTON, andWait = @Wait(value = TRANSACTION_ID_XPATH, until = Until.VISIBLE)) + PaymentEngineCreateInstantPayment clickOk(); + + @StoreElementContent(storeKey = TRANSACTION_ID_KEY, value = TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineCreateInstantPayment storeTransactionId(); + + @Click(value = NO_BUTTON, andWait = @Wait(value = NO_BUTTON, until = Until.GONE)) + PaymentEngineCreateInstantPayment clickNo(); + + @Wait(explicitWaitSeconds = 3) + PaymentEngineCreateInstantPayment wait3sec(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateXctFI2FIPayment.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateXctFI2FIPayment.java new file mode 100644 index 0000000..9c7cae2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineCreateXctFI2FIPayment.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineCreateXctFI2FIPayment extends WebFlow { + String INVALID_ICON = "//ancestor::div[@class='x-form-field-wrap']//following-sibling::div"; + String AMOUNT = "//input[@name = 'amount']"; + String CURRENCY = "//input[@name = 'curr']/following-sibling::input"; + String INVALID_CURRENCY = CURRENCY + INVALID_ICON; + String TRX_REFERENCE = "//input[@name = 'txRef']"; + String PREVIOUS_REFERENCE = "//input[@name = 'rTxRef']"; + String BICFI = "//input[@name = 'cpBicfi']"; + String BIC_BANK = "//input[@name = 'cpBankBic']"; + String BANK_CODE = "//input[@name = 'cpClrsysMmbid']"; + String CREDITOR_NAME = "//input[@name = 'cpName']"; + String CLEARING_PARTNER = "//input[@name = 'clpId']/following-sibling::input"; + String INVALID_CLEARING_PARTNER = CLEARING_PARTNER + INVALID_ICON; + String MESSAGE = "//textArea[@name = 'cpAgentInstr']"; + String DEBTOR_ACCOUNT_PANEL = "//input[@name = 'orAccIdent']/following-sibling::img"; + String ACCOUNT_INPUT = "//input[@name = 'accIdent']"; + String SEARCH = "//button[text() = 'Hledat']"; + String SELECT = "//div[@class = 'x-grid3-row-checker']"; + String OK_BUTTON = "//div[@class='x-window-body x-border-layout-ct']//button[text() = 'OK']"; + String ACCEPT_BUTTON = "//div[@class='x-plain-bwrap']//button[text() = 'OK']"; + String NO_BUTTON = "//button[text()='Ne']"; + String TRANSACTION_ID_KEY = "TRANSACTION_ID_KEY"; + String TRANSACTION_ID_XPATH = "//div[@class = 'ext-mb-content']/span[@class = 'ext-mb-text']"; + + @TypeIntos({@TypeInto(AMOUNT), @TypeInto(value = CURRENCY, andWait = @Wait(value = INVALID_CURRENCY, until = Until.GONE)), + @TypeInto(TRX_REFERENCE), @TypeInto(PREVIOUS_REFERENCE), @TypeInto(BICFI), @TypeInto(BIC_BANK), @TypeInto(CREDITOR_NAME), + @TypeInto(value = CLEARING_PARTNER, andWait = @Wait(value = INVALID_CLEARING_PARTNER, until = Until.GONE)), @TypeInto(MESSAGE)}) + PaymentEngineCreateXctFI2FIPayment fillMandatoryData(String amount, String currency, String trxReference, + String previousReference, String bicFi, String bicBank, + String creditorName, String clearingPartner, String message); + + @TypeInto(BANK_CODE) + PaymentEngineCreateXctFI2FIPayment fillBankCode(String bankCode); + + @Click(value = DEBTOR_ACCOUNT_PANEL, andWait = @Wait(value = ACCOUNT_INPUT, until = Until.VISIBLE)) + PaymentEngineCreateXctFI2FIPayment clickOnDebtorPanel(); + + @TypeInto(ACCOUNT_INPUT) + @Click(value = SEARCH, andWait = @Wait(value = SELECT, until = Until.VISIBLE)) + PaymentEngineCreateXctFI2FIPayment searchDebtorAccount(String debtorAcc); + + @Click(value = SELECT, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineCreateXctFI2FIPayment selectDebtorAccount(); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineCreateXctFI2FIPayment acceptDebtorAccount(); + + @Click(value = ACCEPT_BUTTON, andWait = @Wait(value = NO_BUTTON, until = Until.VISIBLE)) + PaymentEngineCreateXctFI2FIPayment clickAccept(); + + @StoreElementContent(storeKey = TRANSACTION_ID_KEY, value = TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineCreateXctFI2FIPayment storeTransactionId(); + + @Click(value = NO_BUTTON, andWait = @Wait(value = NO_BUTTON, until = Until.GONE)) + PaymentEngineCreateXctFI2FIPayment clickNo(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineDistributionToClearingArchiv.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineDistributionToClearingArchiv.java new file mode 100644 index 0000000..15836ec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineDistributionToClearingArchiv.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.PaymentEngineDistributionToClearingArchiv.SEARCH_FIELD; + + +@Wait(SEARCH_FIELD) +public interface PaymentEngineDistributionToClearingArchiv extends WebFlow, StoreAccessor { + + String AJAX_LOADING = "//div[text()='Načítám...']"; + String SEARCH_FIELD = "//input[@name='field1#id']"; + String SEARCH_BTN = "//button[@class='x-btn-text'][text() = 'Hledat']"; + String MANUAL_ACTIONS = "//a[text()= 'Manuální akce']"; + String CLOSE_TAB_BUTTON = "//a[@class='x-tab-strip-close']"; + String SEARCH_ID_BUTTON ="//em/button[@class='x-btn-text grid-filter-collapse']"; + + @Wait(value = SEARCH_FIELD, until = Until.VISIBLE) + @TypeInto(SEARCH_FIELD) + PaymentEngineDistributionToClearingArchiv fillId(String transactionId); + + @Click(value = SEARCH_BTN, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineDistributionToClearingArchiv searchTransaction(); + + @Wait(value = MANUAL_ACTIONS, until = Until.CLICKABLE) + @Click(value = MANUAL_ACTIONS, andWait = @Wait(value = MANUAL_ACTIONS, until = Until.GONE)) + PaymentEngineDistributionToClearingArchiv clickOnManualActions(); + + @Wait(value = MANUAL_ACTIONS, until = Until.GONE) + PaymentEngineDistributionToClearingArchiv waitForManualActionsGone(); + + + @CustomAction + default PaymentEngineDistributionToClearingArchivEdit clickManualActionsIfStillVisible() { + PaymentEngineEndpoint paymentEngineEndpoint = getEndpoint(PaymentEngineEndpoint.class); + if (paymentEngineEndpoint.isElementVisible(5, MANUAL_ACTIONS, Lookup.XPATH)) { + clickOnManualActions().waitForManualActionsGone(); + } + return null; + } + + @Click(CLOSE_TAB_BUTTON) + PaymentEngineHomePage closeTab(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineDistributionToClearingArchivEdit.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineDistributionToClearingArchivEdit.java new file mode 100644 index 0000000..1ac51d4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineDistributionToClearingArchivEdit.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.PaymentEngineForeignPaymentDetailPage.SUBMIT_BUTTON; + +@Wait(SUBMIT_BUTTON) +public interface PaymentEngineDistributionToClearingArchivEdit extends WebFlow, StoreAccessor { + + String AJAX_LOADING = "//div[text()='Načítám...']"; + String REQUEST_FOR_CANCELLATION_BANK = "//label[text()='Žádost o storno (banka)']/../input"; + String CODE_INPUT_DROPDOWN = "//input[@name='rReasonCode']//following-sibling::input//following-sibling::img"; + String CODE_INVALID_ICON = CODE_INPUT_DROPDOWN + "//following::div[@class='x-form-invalid-icon']"; + String CODE_ITEM = "//div[@class='x-combo-list-item'][contains(text(), '%s')]"; + String SUBMIT_BUTTON = "//button[text()='OK']"; + + @Wait(value = REQUEST_FOR_CANCELLATION_BANK, until = Until.VISIBLE) + @Click(value = REQUEST_FOR_CANCELLATION_BANK, andWait = @Wait(value = SUBMIT_BUTTON, until = Until.CLICKABLE)) + PaymentEngineDistributionToClearingArchivEdit clickOnRequestForCancellationBank(); + + @Wait(value = CODE_INPUT_DROPDOWN, until = Until.VISIBLE) + @Click(value = CODE_INPUT_DROPDOWN) + PaymentEngineDistributionToClearingArchivEdit clickOnCode(); + + @Wait(value = CODE_ITEM, isStringDynamicXpath = true, until = Until.VISIBLE) + @Click(value = CODE_ITEM, isStringDynamicXpath = true, andWait = @Wait(value = CODE_INVALID_ICON, until = Until.GONE)) + PaymentEngineDistributionToClearingArchivEdit chooseCode(String code); + + @Wait(value = SUBMIT_BUTTON, until = Until.CLICKABLE) + @Click(value = SUBMIT_BUTTON, jsClick = true) + PaymentEngineDistributionToClearingArchivEdit clickSubmit(); + + @Wait(value = AJAX_LOADING, until = Until.GONE) + PaymentEngineDistributionToClearingArchiv waitForAjax(); + + @CustomAction + default PaymentEngineDistributionToClearingArchiv clickSubmitIfStillVisible() { + PaymentEngineEndpoint paymentEngineEndpoint = getEndpoint(PaymentEngineEndpoint.class); + if (!paymentEngineEndpoint.isElementVisible(5, PaymentEngineDistributionToClearingArchiv.SEARCH_ID_BUTTON, Lookup.XPATH)) { + clickSubmit().waitForAjax(); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineDistributionToClearingForVerification.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineDistributionToClearingForVerification.java new file mode 100644 index 0000000..897f9e8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineDistributionToClearingForVerification.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.PaymentEngineDistributionToClearingForVerification.SEARCH_FIELD; + +@Wait(SEARCH_FIELD) +public interface PaymentEngineDistributionToClearingForVerification extends WebFlow { + + String ID = "//input[@name='field1#id']"; + String SEARCH_FIELD = "//button[@class='x-btn-text grid-filter-collapse']"; + String SEARCH_BTN = "//button[@class='x-btn-text'][text() = 'Hledat']"; + String VERIFY_REJECT_TRANSACTION_BUTTON = "//a[text()='Schválit/Zamítnout']"; + String ACCEPT_STORNO_BANKA_BUTTON = "//label[text()='Schválit žádost o storno (banka)']/../input"; + String OK_BUTTON = "//button[text()='OK']"; + String CLOSE_TAB = "//a[@class='x-tab-strip-close']"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + + @Wait(value = AJAX_LOADING, until = Until.GONE) + @Click(value = SEARCH_FIELD, andWait = @Wait(value = ID, until = Until.VISIBLE)) + PaymentEngineDistributionToClearingForVerification clickOnSearchField(); + + @TypeInto(ID) + @Click(value = SEARCH_BTN, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineDistributionToClearingForVerification searchTransaction(String transactionId); + + @Wait(value = VERIFY_REJECT_TRANSACTION_BUTTON, until = Until.CLICKABLE) + @Click(value = VERIFY_REJECT_TRANSACTION_BUTTON, andWait = @Wait(value = ACCEPT_STORNO_BANKA_BUTTON, until = Until.CLICKABLE)) + PaymentEngineDistributionToClearingForVerification clickOnVerifyOrReject(); + + @Click(value = ACCEPT_STORNO_BANKA_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineDistributionToClearingForVerification clickOnAcceptStornoBanka(); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineDistributionToClearingForVerification clickOnOk(); + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineIngoingArchiv.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineIngoingArchiv.java new file mode 100644 index 0000000..e15fbee --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineIngoingArchiv.java @@ -0,0 +1,58 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.PaymentEngineIngoingArchiv.ID_INPUT; + +@Wait(ID_INPUT) +public interface PaymentEngineIngoingArchiv extends WebFlow, StoreAccessor { + + String ID_INPUT = "//input[@name='field1#id']"; + String SEARCH_BTN = "//button[@class='x-btn-text'][text()='Hledat']"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + String MANUAL_ACTIONS = "//a[text()='Manuální akce']"; + String RETURN = "//input[following-sibling::label[text()='Return (banka)']]"; + String REASON_CODE = "//input[@name='rReasonCode']/following-sibling::img"; + String REASON_CODE_CUST = "//div[@class='x-combo-list-inner']/div[text()='CUST - Requested By Customer']"; + String OK_BUTTON = "//button[text()='OK']"; + String INVALID_ICON = "//div[@class='x-form-invalid-icon']"; + String CLOSE_TAB = "//a[@class='x-tab-strip-close']"; + + @TypeInto(ID_INPUT) + @Click(value = SEARCH_BTN, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + @Wait(value = MANUAL_ACTIONS, until = Until.CLICKABLE) + PaymentEngineIngoingArchiv searchTransaction(String transactionId); + + @Click(MANUAL_ACTIONS) + PaymentEngineIngoingArchiv clickOnManualActions(); + + @Wait(value = OK_BUTTON, until = Until.VISIBLE) + PaymentEngineIngoingArchiv waitForOkButton(); + + @CustomAction + default PaymentEngineIngoingArchiv clickManualActionsIfStillVisible() { + PaymentEngineEndpoint paymentEngineEndpoint = getEndpoint(PaymentEngineEndpoint.class); + if (paymentEngineEndpoint.isElementVisible(3, MANUAL_ACTIONS, Lookup.XPATH)) { + clickOnManualActions().waitForOkButton(); + } + return null; + } + @Click(value = RETURN, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineIngoingArchiv clickOnReturn(); + + @Click(value = REASON_CODE, andWait = @Wait(value = REASON_CODE_CUST, until = Until.VISIBLE)) + PaymentEngineIngoingArchiv clickOnReasonCode(); + + @Click(value = REASON_CODE_CUST, andWait = @Wait(value = INVALID_ICON, until = Until.GONE)) + PaymentEngineIngoingArchiv chooseReasonCodeCust(); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineIngoingArchiv clickOk(); + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineIngoingForVerification.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineIngoingForVerification.java new file mode 100644 index 0000000..ed40eac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineIngoingForVerification.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineIngoingForVerification extends WebFlow, StoreAccessor { + + String ID = "//input[@name='field1#id']"; + String SEARCH_FIELD = "//button[@class='x-btn-text grid-filter-collapse']"; + String SEARCH_BTN = "//button[@class='x-btn-text'][text() = 'Hledat']"; + String VERIFY_REJECT_TRANSACTION_BUTTON = "//a[text()='Schválit/Zamítnout']"; + String ACCEPT_CHANGES_BUTTON = "//input[@name='manActGroup']"; + String OK_BUTTON = "//button[text()='OK']"; + String CLOSE_TAB = "//a[@class='x-tab-strip-close']"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + + @Wait(value = AJAX_LOADING, until = Until.GONE) + @Click(value = SEARCH_FIELD, andWait = @Wait(value = ID, until = Until.VISIBLE)) + PaymentEngineIngoingForVerification clickOnSearchField(); + + @TypeInto(ID) + @Click(value = SEARCH_BTN, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineIngoingForVerification searchTransaction(String transactionId); + + @Click(VERIFY_REJECT_TRANSACTION_BUTTON) + PaymentEngineIngoingForVerification clickOnVerifyOrReject(); + + @Wait(value = ACCEPT_CHANGES_BUTTON, until = Until.VISIBLE) + PaymentEngineIngoingForVerification waitForAcceptChangesButton(); + + @CustomAction + default PaymentEngineIngoingForVerification clickOnVerifyOrRejectStillVisible() { + PaymentEngineEndpoint paymentEngineEndpoint = getEndpoint(PaymentEngineEndpoint.class); + if (paymentEngineEndpoint.isElementVisible(3, VERIFY_REJECT_TRANSACTION_BUTTON, Lookup.XPATH)) { + clickOnVerifyOrReject().waitForAcceptChangesButton(); + } + return null; + } + + @Click(value = ACCEPT_CHANGES_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineIngoingForVerification clickOnAccept(); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineIngoingForVerification clickOnOk(); + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineIngoingWaiting.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineIngoingWaiting.java new file mode 100644 index 0000000..a89eab6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineIngoingWaiting.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineIngoingWaiting extends WebFlow { + + String ID = "//input[@name='field1#id']"; + String SEARCH_FIELD = "//button[@class='x-btn-text grid-filter-collapse']"; + String SEARCH_BTN = "//button[@class='x-btn-text'][text() = 'Hledat']"; + String MANUAL_ACTIONS = "//a[text()= 'Manuální akce']"; + String EDIT_RELEASE = "//input[following-sibling::label[text() = 'Editovat a uvolnit']]"; + String OK_BUTTON = "//button[text() = 'OK']"; + String COVER_ACC_INGOING = "//input[@name = 'orAgentCorrAcc']"; + String CLOSE_TAB_BUTTON = "//a[@class='x-tab-strip-close']"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + String CLEARING_PARTNER = "//input[@name = 'clpIdOr']/following-sibling::img"; + String CLEARING_PARTNER_CERTIS = "//div[@class='x-combo-list-inner']/div[text()='CERTIS-CZK']"; + + @Wait(value = AJAX_LOADING, until = Until.GONE) + @Click(value = SEARCH_FIELD, andWait = @Wait(value = ID, until = Until.VISIBLE)) + PaymentEngineIngoingWaiting clickOnSearchField(); + + @TypeInto(ID) + @Click(value = SEARCH_BTN, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineIngoingWaiting searchTransaction(String transactionId); + + @Click(value = MANUAL_ACTIONS, andWait = @Wait(value = MANUAL_ACTIONS, until = Until.GONE)) + PaymentEngineIngoingWaiting clickOnManualActions(); + + @Click(value = EDIT_RELEASE, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineIngoingWaiting clickOnEditRelease(); + + @TypeInto(COVER_ACC_INGOING) + PaymentEngineIngoingWaiting fillCoverAccountIngoing(String coverAccIngoing); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineIngoingWaiting clickOk(); + + @Click(value = CLEARING_PARTNER, andWait = @Wait(value = CLEARING_PARTNER_CERTIS, until = Until.VISIBLE)) + PaymentEngineIngoingWaiting clickOnClearingPartner(); + + @Click(value = CLEARING_PARTNER_CERTIS, andWait = @Wait(value = CLEARING_PARTNER_CERTIS, until = Until.GONE)) + PaymentEngineIngoingWaiting chooseClearingPartnerCertis(); + + @Click(CLOSE_TAB_BUTTON) + PaymentEngineHomePage closeTab(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualCreateOutgoingSctPage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualCreateOutgoingSctPage.java new file mode 100644 index 0000000..7b88d8b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualCreateOutgoingSctPage.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.enums.ForeignChannelIdentities; +import cz.moneta.test.dsl.payment_engine.enums.ForeignPaymentType; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineManualCreateOutgoingSctPage extends WebFlow, StoreAccessor { + String AMOUNT = "//input[@name = 'amount']"; + String DEBETOR_IBAN = "//input[@name = 'orAccIban']"; + String CREDITOR_IBAN = "//input[@name = 'cpAccIban']"; + String MESSAGE = "//label[text() = 'Zpráva']//following-sibling::div/input"; + String SELECT_PAYMENT_TYPE = "//input[@name = 'trnType']//following-sibling::img"; + String SELECT_CHANNEL_ID = "//input[@name = 'channelIdent']//following-sibling::img"; + String CHOOSEN_VALUE = "//div[text() = '%s']"; + String SUBMIT_BUTTON = "//button[text() = 'OK']"; + String EXECUTION_DATE_CALENDAR = "//input[@name = 'execDateReq']//following-sibling::img"; + String CALENDAR_TODAY = "//button[text() = 'Dnes']"; + String NO_BUTTON = "//button[text() = 'Ne']"; + + String TRANSACTION_ID_KEY = "TRANSACTION_ID_KEY"; + String TRANSACTION_ID_XPATH = "//div[@class = 'ext-mb-content']/span[@class = 'ext-mb-text']"; + + @TypeIntos({@TypeInto(AMOUNT), @TypeInto(DEBETOR_IBAN), @TypeInto(CREDITOR_IBAN), @TypeInto(MESSAGE)}) + PaymentEngineManualCreateOutgoingSctPage fillManualData(String amount, String debtorIban, String creditorIban, String message); + + @Click(SELECT_PAYMENT_TYPE) + PaymentEngineManualCreateOutgoingSctPage clickOnPaymentScheme(); + + @Wait(value = CHOOSEN_VALUE) + @Click(value = CHOOSEN_VALUE) + PaymentEngineManualCreateOutgoingSctPage selectPaymentScheme(ForeignPaymentType foreignPaymentType); + + @Click(SELECT_CHANNEL_ID) + PaymentEngineManualCreateOutgoingSctPage clickOnChannelIdentity(); + + @Wait(value = CHOOSEN_VALUE) + @Click(value = CHOOSEN_VALUE) + PaymentEngineManualCreateOutgoingSctPage selectChannelIdentity(ForeignChannelIdentities foreignChannelIds); + + @Click(value = SUBMIT_BUTTON, andWait = @Wait(value = TRANSACTION_ID_XPATH, until = Until.VISIBLE)) + PaymentEngineManualCreateOutgoingSctPage clickSubmit(); + + @Click(value = EXECUTION_DATE_CALENDAR, andWait = @Wait(CALENDAR_TODAY)) + PaymentEngineManualCreateOutgoingSctPage clickOnExecutionDateCalendar(); + + @Click(CALENDAR_TODAY) + PaymentEngineManualCreateOutgoingSctPage chooseTodayExecution(); + + @StoreElementContent(storeKey = TRANSACTION_ID_KEY, value = TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineManualCreateOutgoingSctPage storeTransactionId(); + + @Wait(value = NO_BUTTON, until = Until.VISIBLE) + @Click(value = NO_BUTTON, andWait = @Wait(value = NO_BUTTON, until = Until.GONE)) + PaymentEngineManualCreateOutgoingSctPage clickNo(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualCreateOutgoingXctClientPaymentPage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualCreateOutgoingXctClientPaymentPage.java new file mode 100644 index 0000000..7662ee8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualCreateOutgoingXctClientPaymentPage.java @@ -0,0 +1,95 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.enums.ForeignChannelIdentities; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineManualCreateOutgoingXctClientPaymentPage extends WebFlow, StoreAccessor { + String INVALID_ICON = "//ancestor::div[@class='x-form-field-wrap']//following-sibling::div"; + String AMOUNT = "//input[@name = 'amount']"; + String DEBTOR_FORM = "//input[@name = 'orAccIdent']//following-sibling::img"; + String CREDITOR_ACCOUNT = "//input[@name = 'cpAccIdent']"; + String MESSAGE = "//textarea[@name = 'rmtInfUnstr']"; + String SELECT_CHANNEL_ID = "//input[@name = 'channelIdent']//following-sibling::img"; + String SELECT_PRIORITY_OF_TRX = "//input[@name = 'instrPriority']//following-sibling::img"; + String PRIORITY_HIGH = "//div[text()='Prioritní']"; + String CHOOSEN_VALUE = "//div[text() = '%s']"; + String SUBMIT_BUTTON = "//button[text() = 'OK']"; + String EXECUTION_DATE_CALENDAR = "//input[@name = 'receiptDatetime']//following-sibling::img"; + String CALENDAR_TODAY = "//button[text() = 'Dnes']"; + String NO_BUTTON = "//button[text() = 'Ne']"; + String CURRENCY = "//input[@name='curr']//following-sibling::input"; + String INVALID_CURRENCY = CURRENCY + INVALID_ICON; + String CREDITOR_NAME = "//input[@name='cpName']"; + String BIC = "//input[@name='cpBankBic']"; + String BANK_NAME = "//input[@name='cpBankName']"; + String DEBTOR_FORM_IBAN = "//input[@name='iban']"; + String DEBTOR_FORM_ACCOUNT = "//input[@name='accIdent']"; + String DEBTOR_FORM_SEARCH_BUTTON = "//button[text() = 'Hledat']"; + String DEBTOR_FORM_FIRST_ROW = "//div[@class='x-grid3-cell-inner x-grid3-col-checker']//div"; + String DEBTOR_FORM_OK_BUTTON = "//div[*//span[text()='Vybrat účet příkazce']]//button[text() = 'OK']"; + String CREDITOR_IBAN = "//input[@name='cpAccIban']"; + + String TRANSACTION_ID_KEY = "TRANSACTION_ID_KEY"; + String TRANSACTION_ID_XPATH = "//div[@class = 'ext-mb-content']/span[@class = 'ext-mb-text']"; + + @TypeIntos({@TypeInto(AMOUNT), @TypeInto(CREDITOR_ACCOUNT), @TypeInto(CREDITOR_IBAN), @TypeInto(MESSAGE), + @TypeInto(value = CURRENCY, andWait = @Wait(value = INVALID_CURRENCY, until = Until.GONE)), + @TypeInto(CREDITOR_NAME), @TypeInto(BIC), @TypeInto(BANK_NAME)}) + PaymentEngineManualCreateOutgoingXctClientPaymentPage fillManualData(String amount, String creditorAccount, String creditorIban, + String message, String currency, String creditorName, + String bic, String bankName); + + @Click(SELECT_CHANNEL_ID) + PaymentEngineManualCreateOutgoingXctClientPaymentPage clickOnChannelIdentity(); + + @Wait(value = CHOOSEN_VALUE) + @Click(value = CHOOSEN_VALUE) + PaymentEngineManualCreateOutgoingXctClientPaymentPage selectChannelIdentity(ForeignChannelIdentities foreignChannelIds); + + @Click(value = SELECT_PRIORITY_OF_TRX, andWait = @Wait(PRIORITY_HIGH)) + PaymentEngineManualCreateOutgoingXctClientPaymentPage selectPriorityOfTransaction(); + + @Click(PRIORITY_HIGH) + PaymentEngineManualCreateOutgoingXctClientPaymentPage selectPriorityHigh(); + + @Click(value = SUBMIT_BUTTON, andWait = @Wait(value = TRANSACTION_ID_XPATH, until = Until.VISIBLE)) + PaymentEngineManualCreateOutgoingXctClientPaymentPage clickSubmit(); + + @Click(value = EXECUTION_DATE_CALENDAR, andWait = @Wait(CALENDAR_TODAY)) + PaymentEngineManualCreateOutgoingXctClientPaymentPage clickToExecutionDateCalendar(); + + @Click(CALENDAR_TODAY) + PaymentEngineManualCreateOutgoingXctClientPaymentPage chooseTodayExecution(); + + @StoreElementContent(storeKey = TRANSACTION_ID_KEY, value = TRANSACTION_ID_XPATH, by = Lookup.XPATH) + PaymentEngineManualCreateOutgoingXctClientPaymentPage storeTransactionId(); + + @Wait(value = NO_BUTTON, until = Until.VISIBLE) + @Click(value = NO_BUTTON, andWait = @Wait(value = NO_BUTTON, until = Until.GONE)) + PaymentEngineHomePage clickNo(); + + @CustomAction() + default PaymentEngineManualCreateOutgoingXctClientPaymentPage selectDebtorByIban(String iban) { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + endpoint.click(() -> DEBTOR_FORM); + endpoint.type(() -> DEBTOR_FORM_IBAN, iban, false); + endpoint.click(() -> DEBTOR_FORM_SEARCH_BUTTON); + endpoint.click(() -> DEBTOR_FORM_FIRST_ROW); + endpoint.click(() -> DEBTOR_FORM_OK_BUTTON); + return null; + } + + @CustomAction() + default PaymentEngineManualCreateOutgoingXctClientPaymentPage selectDebtorByAccount(String account) { + PaymentEngineEndpoint endpoint = getEndpoint(PaymentEngineEndpoint.class); + endpoint.click(() -> DEBTOR_FORM); + endpoint.type(() -> DEBTOR_FORM_ACCOUNT, account, false); + endpoint.click(() -> DEBTOR_FORM_SEARCH_BUTTON); + endpoint.click(() -> DEBTOR_FORM_FIRST_ROW); + endpoint.click(() -> DEBTOR_FORM_OK_BUTTON); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualCreateSCTClaimNonReciept.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualCreateSCTClaimNonReciept.java new file mode 100644 index 0000000..8b585c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualCreateSCTClaimNonReciept.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.web.*; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.PaymentEngineManualCreateSCTClaimNonReciept.PAYMENT_ID_INPUT; + +@Wait(value = PAYMENT_ID_INPUT, waitSecondsForElement = 100) +public interface PaymentEngineManualCreateSCTClaimNonReciept extends WebFlow { + + String PAYMENT_ID_INPUT = "//input[@name='tranIdPredecessor']"; + String AGENT_INSTRUCTION_INPUT = "//input[@name='cpAgentInstr']"; + String OK_BUTTON = "//button[text()='OK']"; + String TRANSACTION_ID_KEY = "TRANSACTION_ID_KEY"; + String TRANSACTION_ID_XPATH = "//div[@class='ext-mb-content']/span[@class='ext-mb-text']"; + String NO_BUTTON = "//button[text()='Ne']"; + + @TypeIntos({@TypeInto(PAYMENT_ID_INPUT), @TypeInto(AGENT_INSTRUCTION_INPUT)}) + PaymentEngineManualCreateSCTClaimNonReciept fillSCTData(String transactionId, String instruction); + + @Click(value = OK_BUTTON, andWait = @Wait(value = TRANSACTION_ID_XPATH, until = Until.VISIBLE)) + PaymentEngineManualCreateSCTClaimNonReciept clickOk(); + + @StoreElementContent(storeKey = TRANSACTION_ID_KEY, value = TRANSACTION_ID_XPATH) + PaymentEngineManualCreateSCTClaimNonReciept storeRequestId(); + + @Click(value = NO_BUTTON, andWait = @Wait(value = NO_BUTTON, until = Until.GONE)) + PaymentEngineHomePage clickNo(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualForVerificationPage.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualForVerificationPage.java new file mode 100644 index 0000000..7043577 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineManualForVerificationPage.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.PaymentEngineForeignPaymentDetailPage; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.PaymentEngineManualForVerificationPage.SEARCH_ID_BUTTON; + +@Wait(value = SEARCH_ID_BUTTON, until = Until.VISIBLE) +public interface PaymentEngineManualForVerificationPage extends WebFlow, StoreAccessor { + String AJAX_LOADING = "//div[text()='Načítám...']"; + String SEARCH_ID_BUTTON ="//em/button[@class='x-btn-text grid-filter-collapse']"; + String SEARCH_FIELD = "//input[@name='field1#id']"; + String SEARCH_BTN = "//button[@class='x-btn-text'][text() = 'Hledat']"; + String SELECT_TRANSACTION = "//div[contains(@class,'x-grid3-row')]//div[@class='x-grid3-cell-inner x-grid3-col-2'][text() = '%s']"; + String VERIFY_BUTTON = "//a[text()='Schválit']"; + + String SUBMIT_BUTTON = "//button[text() = 'OK']"; + String SEARCH = "//button[text() = 'Vyhledávání']"; + String CLOSE_TAB_BUTTON = "//a[@class='x-tab-strip-close']"; + + @Click(SEARCH_ID_BUTTON) + PaymentEngineManualForVerificationPage pressSearch(); + + @TypeInto(SEARCH_FIELD) + PaymentEngineManualForVerificationPage fillId(String transactionId); + + @Click(value = SEARCH_BTN, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineManualForVerificationPage searchUnverified(); + + @Click(value = SELECT_TRANSACTION, isStringDynamicXpath = true, andWait = @Wait(explicitWaitSeconds = 1)) + PaymentEngineManualForVerificationPage selectTransaction(String transactionId); + + @Click(value = VERIFY_BUTTON, andWait = @Wait(SUBMIT_BUTTON)) + PaymentEngineForeignPaymentDetailPage clickVerifyTransaction(); + + @Wait(CLOSE_TAB_BUTTON) + @Click(CLOSE_TAB_BUTTON) + PaymentEngineHomePage closeTab(); + + @Click(value = SEARCH) + PaymentEngineSearchPage search(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingArchiv.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingArchiv.java new file mode 100644 index 0000000..90b3e7a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingArchiv.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineOutgoingArchiv extends WebFlow { + + String AJAX_LOADING = "//div[text()='Načítám...']"; + String SEARCH_FIELD = "//input[@name='field1#id']"; + String SEARCH_BTN = "//button[@class='x-btn-text'][text() = 'Hledat']"; + String SELECT_TRANSACTION = "//div[contains(@class,'x-grid3-row')]//div[@class='x-grid3-cell-inner x-grid3-col-2'][text() = '%s']"; + String MANUAL_ACTIONS = "//a[text()= 'Manuální akce']"; + String CLOSE_TAB_BUTTON = "//a[@class='x-tab-strip-close']"; + + @Wait(value = SEARCH_FIELD, until = Until.VISIBLE) + @TypeInto(SEARCH_FIELD) + PaymentEngineOutgoingArchiv fillId(String transactionId); + + @Click(value = SEARCH_BTN, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineOutgoingArchiv searchUnverified(); + + @Click(value = SELECT_TRANSACTION, isStringDynamicXpath = true, andWait = @Wait(explicitWaitSeconds = 1)) + PaymentEngineOutgoingArchiv selectTransaction(String transactionId); + + @Click(value = MANUAL_ACTIONS, andWait = @Wait(value = MANUAL_ACTIONS, until = Until.GONE)) + PaymentEngineOutgoingArchivEdit clickOnManualActions(); + + @Click(CLOSE_TAB_BUTTON) + PaymentEngineHomePage closeTab(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingArchivEdit.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingArchivEdit.java new file mode 100644 index 0000000..f3ec5e9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingArchivEdit.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PaymentEngineOutgoingArchivEdit extends WebFlow { + + String REQUEST_FOR_CANCELLATION = "//input[following-sibling::label[text() = 'Žádost o storno (banka)']]"; + String OK_BUTTON = "//button[text() = 'OK']"; + + @Wait(value = REQUEST_FOR_CANCELLATION, until = Until.VISIBLE) + @Click(value = REQUEST_FOR_CANCELLATION, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineOutgoingArchivEdit clickOnRequestForCancellation(); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineOutgoingArchivEdit clickOk(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingForVerification.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingForVerification.java new file mode 100644 index 0000000..2e07364 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingForVerification.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.web.*; + +public interface PaymentEngineOutgoingForVerification extends WebFlow { + String SELECT_TRANSACTION = "//div[contains(@class,'x-grid3-row')]//div[@class='x-grid3-cell-inner x-grid3-col-2'][text() = '%s']"; + String VERIFY_TRANSACTION_BUTTON = "//a[text()='Schválit/Zamítnout']"; + String ACCEPT_REQUEST_BUTTON = "//input[@name='manActGroup']"; + String ACCEPT_CHANGES_BUTTON = "//input[following-sibling::label[text()='Schválit editaci a uvolnění']]"; + String OK_BUTTON = "//button[text()='OK']"; + String CLOSE_TAB = "//a[@class='x-tab-strip-close']"; + String SEARCH_ID_BUTTON ="//em/button[@class='x-btn-text grid-filter-collapse']"; + String SEARCH_FIELD = "//input[@name='field1#id']"; + String SEARCH_BTN = "//button[@class='x-btn-text'][text() = 'Hledat']"; + String AJAX_LOADING = "//div[text()='Načítám...']"; + + @Click(SEARCH_ID_BUTTON) + PaymentEngineOutgoingForVerification pressSearch(); + + @TypeInto(SEARCH_FIELD) + PaymentEngineOutgoingForVerification fillId(String transactionId); + + @Click(value = SEARCH_BTN, andWait = @Wait(value = AJAX_LOADING, until = Until.GONE)) + PaymentEngineOutgoingForVerification searchUnverified(); + + @Click(value = SELECT_TRANSACTION, isStringDynamicXpath = true, andWait = @Wait(explicitWaitSeconds = 1)) + PaymentEngineOutgoingForVerification selectTransaction(String transactionId); + + @Click(VERIFY_TRANSACTION_BUTTON) + PaymentEngineOutgoingForVerification clickOnVerifyTransaction(); + + @Click(value = ACCEPT_CHANGES_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineOutgoingForVerification clickOnAccept(); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineOutgoingForVerification clickOnOk(); + + @Click(value = ACCEPT_REQUEST_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineOutgoingForVerification clickOnAcceptRequest(); + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingManual.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingManual.java new file mode 100644 index 0000000..8d041b2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingManual.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.PaymentEngineOutgoingManual.FIRST_ROW; + +@Wait(FIRST_ROW) +public interface PaymentEngineOutgoingManual extends WebFlow { + String PREFIX = "//div[@id='Odchozí / Manuální']"; + String FIRST_ROW = PREFIX + "//div[contains(@class, 'x-grid3-row-selected')]"; + String ID = PREFIX + "//input[@name = 'field1#id']"; + String SEARCH_BUTTON = PREFIX + "//button[text() = 'Hledat']"; + String FILTER_BUTTON = PREFIX + "//button[@class='x-btn-text grid-filter-collapse']"; + String MANUAL_ACTIONS = PREFIX + "//a[text()= 'Manuální akce']"; + String TRANSACTION_ROW = PREFIX + "//div[@class = 'x-grid3-cell-inner x-grid3-col-2'][text() = '%s']"; + + @Wait(explicitWaitSeconds = 2) + @Click(FILTER_BUTTON) + PaymentEngineOutgoingManual clickOnFilterButton(); + + @TypeInto(ID) + PaymentEngineOutgoingManual fillTransactionId(String transactionId); + + @Click(value = SEARCH_BUTTON, andWait = @Wait(value = TRANSACTION_ROW, isStringDynamicXpath = true)) + PaymentEngineOutgoingManual clickOnSearchButtonAndWaitForResult(String transactionId); + + @Wait(explicitWaitSeconds = 2) + @Click(value = MANUAL_ACTIONS, andWait = @Wait(value = MANUAL_ACTIONS, until = Until.GONE)) + PaymentEngineOutgoingManualEdit clickOnManualActions(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingManualEdit.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingManualEdit.java new file mode 100644 index 0000000..4e0e0f0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/parts_of_menu/menu_transaction/PaymentEngineOutgoingManualEdit.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction; + +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.PaymentEngineOutgoingManualEdit.OK_BUTTON; + +@Wait(OK_BUTTON) +public interface PaymentEngineOutgoingManualEdit extends WebFlow { + String EDIT_RELEASE = "//input[following-sibling::label[text()='Editovat a uvolnit']]"; + String CREDITOR_BIC = "//input[@name='cpAgentBic']"; + String CLEARING_PARTNER_LIST = "//input[@name='clpIdCp']//following-sibling::img"; + String CLEARING_PARTNER_SELECT = "//div[text()='%s']"; + String OUTGOING_COVERAGE_ACCOUNT = "//input[@name='cpAgentCorr1Acc']"; + String OK_BUTTON = "//button[text()='OK']"; + String CREDITOR_CORESPONDENT = "//input[@name='cpAgentCorr1Bic']"; + String RELEASE = "//input[following-sibling::label[text()='Uvolnit']]"; + String CLOSE_TAB = "//a[@class='x-tab-strip-close']"; + + @Click(value = EDIT_RELEASE, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineOutgoingManualEdit clickOnEditAndRelease(); + + @Click(value = RELEASE, andWait = @Wait(value = OK_BUTTON, until = Until.CLICKABLE)) + PaymentEngineOutgoingManualEdit clickOnRelease(); + + @TypeIntos({@TypeInto(value = CREDITOR_BIC), @TypeInto(value = OUTGOING_COVERAGE_ACCOUNT), @TypeInto(value = CREDITOR_CORESPONDENT)}) + PaymentEngineOutgoingManualEdit fillAdditionalData(String creditorBic, String coverageAccount, String creditorCorespondent); + + @Click(CLEARING_PARTNER_LIST) + PaymentEngineOutgoingManualEdit clickOnClearingPartnerList(); + + @Click(value = CLEARING_PARTNER_SELECT, isStringDynamicXpath = true, andWait = @Wait(explicitWaitSeconds = 2)) + PaymentEngineOutgoingManualEdit selectClearingPartner(String clearingPartner); + + @Click(value = OK_BUTTON, andWait = @Wait(value = OK_BUTTON, until = Until.GONE)) + PaymentEngineOutgoingManualEdit clickOnOKButton(); + + @Click(CLOSE_TAB) + PaymentEngineHomePage closeTab(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/tasks/LoginTasks.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/tasks/LoginTasks.java new file mode 100644 index 0000000..2a81077 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/tasks/LoginTasks.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.payment_engine.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.harness.support.auth.Credentials; + +public class LoginTasks { + private final Harness harness; + + public LoginTasks(Harness harness) { + this.harness = harness; + } + + public PaymentEngineHomePage logInPae(Harness harness, Credentials credentials) { + return harness.withPaymentEngine() + .openLoginPage() + .login(credentials.getUsername(), credentials.getPassword()) + .waitForOk() + .clickOkButton(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/tasks/PaymentEngineTasks.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/tasks/PaymentEngineTasks.java new file mode 100644 index 0000000..b40cb36 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/tasks/PaymentEngineTasks.java @@ -0,0 +1,1000 @@ +package cz.moneta.test.dsl.payment_engine.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.PaymentEngineDetailAccountPage; +import cz.moneta.test.dsl.payment_engine.enums.AccountStates; +import cz.moneta.test.dsl.payment_engine.enums.CurrencyPAE; +import cz.moneta.test.dsl.payment_engine.enums.ForeignChannelIdentities; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_cache24_7.PaymentsEngineCache24SearchAccountsNumber; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients.*; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.*; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionDetailLifeCycle; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionFiles; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_transaction.*; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.time.LocalDateTime; +import java.util.function.Function; + +public class PaymentEngineTasks { + + private final Harness harness; + + public PaymentEngineTasks(Harness harness) { + this.harness = harness; + } + + public LoginTasks loginTasks() { + return new LoginTasks(harness); + } + + public Function createInstantTransactionWithPrefix(PaymentData data) { + return start -> start.clickTransactionAndChooseCreateInstantPaymentFromManualCreate() + .fillManualData(data.getAmount(), data.getMessageMin1(), data.getDebtorAcc(), data.getCreditorAcc(), data.getBankCode()) + .fillPrefix(data.getAccPrefix()) + .wait3sec() + .clickOk() + .storeTransactionId() + .clickNo(); + } + + public Function createInstantTransactionWithoutPrefix(PaymentData data) { + return start -> start.clickTransactionAndChooseCreateInstantPaymentFromManualCreate() + .fillAmount(data.getAmount()) + .fillMessage(data.getMessageMin1()) + .fillDebtorAcc(data.getDebtorAcc()) + .fillCreditorAcc(data.getCreditorAcc()) + .fillBankCode(data.getBankCode()) + .wait3sec() + .clickOk() + .storeTransactionId() + .clickNo(); + } + + public Function verifyAndWaitForStatus(String transactionId, TransactionReasonPAE status) { + return start -> start.clickTransactionAndChooseForVerificationFromCreateManualMenu() + .pressSearch() + .fillId(transactionId) + .searchUnverified() + .selectTransaction(transactionId) + .clickVerifyTransaction() + .clickSubmit() + .clickSubmitIfStillVisible() + .closeTab() + .search() + .typeId(transactionId) + .clickSearch() + .waitForStatus(harness, status); + } + + public Function runCZCTDDistribution(PaymentData data) { + return start -> start.clickMonitoringAndChooseProcessListFromProcessMonitoring() + .enterCZCTDistributionForm() + .clickOnRunButton() + .clickAndRunCZCTDistribution(data.getBankName(), data.getPayScheme(), data.getNextDayDist()) + .closeErrorPopUpIfVisibleCZCT(data.getBankName(), data.getPayScheme(), data.getNextDayDist()) + .closeTab(); + } + + public Function searchTransactionAndWaitForStatus(TransactionReasonPAE status, String transactionId) { + return start -> start.search() + .typeId(transactionId) + .clickSearch() + .waitForStatus(harness, status); + } + + public Function checkTransactionChannelAndStoreFileName(PaymentData data) { + return start -> start.clickOnTransactionFiles() + .checkTransactionChannelName(data.getChannelName()) + .storeTransactionFileName(data.getChannelName()); + } + + public Function createDomesticPayment(PaymentData data) { + return start -> start.clickTransactionAndChooseCreateDomesticPaymentFromManualCreate() + .fillManualData(data.getTransactionType(), data.getAmount(), data.getChannelId(), + data.getDebtorAcc(), data.getDebtorName(), data.getCreditorAcc(), data.getBankCodeLong(), + data.getMessageMin1(), data.getMessageMin2(), data.getIcbsProfile()) + .clickOk() + .storeTransactionId() + .clickNo(); + } + + public Function createDomesticPaymentWithDates(PaymentData data) { + return start -> start.clickTransactionAndChooseCreateDomesticPaymentFromManualCreate() + .fillManualDataWithoutDebtor(data.getTransactionType(), data.getAmount(), data.getDebtorName(), + data.getCreditorAcc(), data.getBankCodeLong(), data.getMessageMin1(), + data.getMessageMin2(), data.getIcbsProfile()) + .clickOnExecutionDate() + .chooseExecutionDate(data.getDateXpath()) + .clickOnDebtorPanel() + .searchDebtorAccount(data.getDebtorAcc()) + .selectDebtorAccount() + .acceptDebtorAccount() + .fillDates(data.getSubmissionDate(), data.getDocumentDate(), data.getDocumentId(), data.getChannelId()) + .clickOk() + .storeTransactionId() + .clickNo(); + } + + public Function sendAndRunCZCTDDistribution(PaymentData data, TransactionReasonPAE status, String transactionId) { + String nextDayDist = (LocalDateTime.now().getHour() < 14) ? "Ne" : "Ano"; + return start -> start.clickMonitoringAndChooseProcessListFromProcessMonitoring() + .enterCZCTDistributionForm() + .clickOnRunButton() + .clickAndRunCZCTDistribution(data.getBankName(), data.getPayScheme(), nextDayDist) + .closeErrorPopUpIfVisibleCZCT(data.getBankName(), data.getPayScheme(), nextDayDist) + .closeTab() + .search() + .typeId(transactionId) + .clickSearch() + .waitForStatus(harness, status); + } + + public Function runReleaseAfterDispoCheck(TransactionReasonPAE status, String transactionId) { + return start -> start.clickMonitoringAndChooseProcessListFromProcessMonitoring() + .clickOnReleaseAfterDispoCheckForm() + .enterReleaseAfterDispoCheckForm() + .clickOk() + .closeTab() + .search() + .typeId(transactionId) + .clickSearch() + .waitForStatus(harness, status); + } + + public Function sendAndRunXCTDistribution() { + return start -> start.clickMonitoringAndChooseProcessListFromProcessMonitoring() + .enterXCTDistribution() + .clickOnRunButton() + .clickOnOk() + .closeErrorPopUpIfVisibleXCT() + .closeTab(); + } + + public Function sendAndRunStarBuildDistribution() { + return start -> start.clickMonitoringAndChooseProcessListFromProcessMonitoring() + .enterStarBuildDistributionForm() + .clickOnRunButton() + .selectGenerateNotification() + .selectGenerateNotificationNo() + .clickOnOk() + .closeTab(); + } + + public Function sendAndRunSCTDistribution(PaymentData data) { + return start -> start.clickMonitoringAndChooseProcessListFromProcessMonitoring() + .clickOnSCTDistributionForm() + .enterSCTDistributionForm() + .clickAndRunSCTDistribution(data.getDistributionGroup(), data.getPayScheme()) + .closeErrorPopUpIfVisible(data.getDistributionGroup(), data.getPayScheme()) + .closeTab(); + } + + public Function createInstantTransactionWithMaxData(PaymentData data) { + return start -> start.clickTransactionAndChooseCreateInstantPaymentFromManualCreate() + .fillManualMaxData(data.getAmount(), data.getMessageMax1(), data.getVariableSymbol(), + data.getSpecificSymbol(), data.getConstantSymbol(), data.getDebtorAcc(), + data.getCreditorAcc(), data.getBankCode()) + .clickOk() + .storeTransactionId() + .clickNo(); + } + + public Function createDomesticPaymentWithMaxData(PaymentData data) { + return start -> start.clickTransactionAndChooseCreateDomesticPaymentFromManualCreate() + .fillManualMaxData(data.getTransactionType(), data.getAmount(), data.getChannelId(), + data.getVariableSymbol(), data.getSpecificSymbol(), data.getConstantSymbol(), + data.getDebtorAcc(), data.getDebtorName(), data.getCreditorAcc(), data.getBankCodeLong(), + data.getMessageMax1(), data.getMessageMax2(), data.getIdentification1(), + data.getIdentification2(), data.getIcbsProfile()) + .clickOk() + .storeTransactionId() + .clickNo(); + } + + public Function createXctFI2FIPaymentWithoutBankCode(PaymentData data, CurrencyPAE currency) { + return start -> start.clickTransactionAndChooseCreateXctFI2FIPaymentFromManualCreate() + .fillMandatoryData(data.getAmount(), currency.getCurrency(), data.getTrxReference(), + data.getPreviousReference(), data.getBicFi(), data.getBicBank(), data.getCreditorName(), + data.getClearingPartner(), data.getMessageMax1()) + .clickOnDebtorPanel() + .searchDebtorAccount(data.getDebtorAcc()) + .selectDebtorAccount() + .acceptDebtorAccount() + .clickAccept() + .storeTransactionId() + .clickNo(); + } + + public Function createXctFI2FIPaymentWithBankCode(PaymentData data, CurrencyPAE currency) { + return start -> start.clickTransactionAndChooseCreateXctFI2FIPaymentFromManualCreate() + .fillMandatoryData(data.getAmount(), currency.getCurrency(), data.getTrxReference(), + data.getPreviousReference(), data.getBicFi(), data.getBicBank(), data.getCreditorName(), + data.getClearingPartner(), data.getMessageMax1()) + .fillBankCode(data.getBankCode()) + .clickOnDebtorPanel() + .searchDebtorAccount(data.getDebtorAcc()) + .selectDebtorAccount() + .acceptDebtorAccount() + .clickAccept() + .storeTransactionId() + .clickNo(); + } + + public Function checkAccountState(String account, AccountStates accountState) { + return start -> start.clickOnCache24_7() + .clickOnAccountAndReservation() + .typeInternalAccountNumberAndClickApply(account) + .waitForAccountState(harness, accountState.getState()); + } + + public Function createInhouseIfcyPaymentInCzk(PaymentData data, CurrencyPAE currency) { + return start -> start.clickTransactionAndChooseCreateInhouseIfcyPaymentFromManualCreate() + .fillMandatoryData(data.getAmount(), currency.getCurrency(), data.getIcbsProfile()) + .fillChannelId(data.getChannelId()) + .fillOptionalData(data.getVariableSymbol(), data.getSpecificSymbol(), data.getConstantSymbol(), + data.getIdentification1(), data.getIdentification2(), data.getMessageMax1(), data.getMessageMax2()) + .clickOnDebtorAccountPanel() + .searchAccount(data.getDebtorAcc()) + .clickOnSelectAccount() + .clickOnOk() + .clickOnCreditorAccountPanel() + .searchAccount(data.getCreditorAcc()) + .clickOnSelectAccount() + .clickOnOk() + .clickAccept() + .storeTransactionId() + .clickNo(); + } + + public Function createInhouseIfcyPaymentInEur(PaymentData data, CurrencyPAE currency) { + return start -> start.clickTransactionAndChooseCreateInhouseIfcyPaymentFromManualCreate() + .fillMandatoryData(data.getAmount(), currency.getCurrency(), data.getIcbsProfile()) + .fillChannelId(data.getChannelId()) + .fillOptionalData(data.getVariableSymbol(), data.getSpecificSymbol(), data.getConstantSymbol(), + data.getIdentification1(), data.getIdentification2(), data.getMessageMax1(), data.getMessageMax2()) + .clickOnDebtorAccountPanel() + .searchAccount(data.getDebtorAcc()) + .clickOnSelectAccount() + .clickOnOk() + .clickOnCreditorAccountPanel() + .searchAccount(data.getCreditorAcc()) + .clickOnSelectAccount() + .clickOnOk() + .clickOnExchange() + .clickAccept() + .storeTransactionId() + .clickNo(); + } + + public Function createForeignPriorityPayment(PaymentData data, CurrencyPAE currency) { + return start -> start.clickTransactionAndChooseCreateXctClientPaymentFromCreateManualMenu() + .clickOnChannelIdentity() + .selectChannelIdentity(ForeignChannelIdentities.PAE) + .fillManualData(data.getAmount(), data.getCreditorAcc(), data.getCreditorIban(), data.getMessageMin1(), + currency.getCurrency(), data.getCreditorName(), data.getCreditorBic(), data.getBankName()) + .clickToExecutionDateCalendar() + .chooseTodayExecution() + .selectPriorityOfTransaction() + .selectPriorityHigh() + .selectDebtorByIban(data.getDebtorIban()) + .clickSubmit() + .storeTransactionId() + .clickNo(); + } + + public Function inputPacs009FromCapitol(String filepath) { + return start -> start.clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputPacs009() + .clickOnRunButton() + .clickOnUploadFileButton() + .uploadFile(filepath) + .clickSendPopupButton() + .clickOkPopupButton() + .clickOkButton() + .closeTab(); + } + + public Function checkStatusOfPacs009FromCapitol(TransactionReasonPAE status, String fileName) { + return start -> start.clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnSelectChannel() + .selectCapPacs009Channel() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(fileName) + .waitForStatus(harness, status) + .storeTransactionId(); + } + + public Function inputPain001FromCapitol(String filepath) { + return start -> start.clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputPain001() + .clickOnRunButton() + .clickOnUploadFileButton() + .uploadFile(filepath) + .clickSendPopupButton() + .clickOkPopupButton() + .clickOkButton() + .closeTab(); + } + + public Function checkStatusOfPain001FromCapitol(TransactionReasonPAE status, String fileName) { + return start -> start.clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnSelectChannel() + .selectCapPain001Channel() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(fileName) + .waitForStatus(harness, status) + .storeTransactionId(); + } + + public Function inputCFAFromMC(String filepath) { + return start -> start.clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputCFA() + .clickOnRunButton() + .clickOnUploadFileButton() + .uploadFile(filepath) + .clickSendPopupButton() + .clickOkPopupButton() + .clickOkButton() + .closeTab(); + } + + public Function checkStatusOfCFAFromMC(TransactionReasonPAE status, String fileName) { + return start -> start.clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnSelectChannel() + .selectMcCfaChannel() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(fileName) + .waitForStatus(harness, status) + .storeTransactionId() + .storeEquivalentAmountCzk() + .closeTab(); + } + + public Function checkQueForMTExistence(String tabName) { + return start -> start.clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputMT() + .clickOnRunButton() + .clickOnFileTab(tabName) + .clearQueForMTIfExists(); + } + + public Function storeLastMTId(String tabName) { + return start -> start.then(checkQueForMTExistence(tabName)) + .clickOnInputMT() + .clickOnRunButton() + .storeLastNumberInSequence(harness) + .closeTab(); + } + + public Function storeLastNonpriorityFileId() { + return start -> start.clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputCERTIS() + .clickOnRunButton() + .storeLastNonpriorityNumberInSequence(harness); + } + + public Function inputMTFromSAA(String filepath) { + return start -> start.clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputMT() + .clickOnRunButton() + .clickOnUploadFileButton() + .uploadFile(filepath) + .clickSendPopupButton() + .clickOkPopupButton() + .clickOkButton() + .closeTab(); + } + + public Function checkStatusOfMTFromSAA(String fileName, TransactionReasonPAE status) { + return start -> start.clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnSelectChannel() + .selectMtFromSaaChannel() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(fileName) + .waitForStatus(harness, status) + .storeTransactionId(); + } + + public Function checkStatusOfTransactionsFromSAA(String fileName, TransactionReasonPAE status, String amount, String transactionType) { + return start -> start.clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnSelectChannel() + .selectMtFromSaaChannel() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(fileName) + .waitForStatus(harness, status) + .storeTransactionId() + .checkTransactionAmount(amount) + .clickOnLifeCycleButton() + .storeIngoingTransactionId() + .checkTransactionAmount(amount) + .checkTransactionTypeFee(transactionType) + .storeFeeTransactionId() + .storeFeeAmount(); + } + + public Function inputCCIFromCERTIS(String filepath) { + return start -> start.clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputCERTIS() + .clickOnRunButton() + .clickOnUploadFileButton() + .uploadFile(filepath) + .clickSendPopupButton() + .clickOkPopupButton() + .clickOkButton() + .closeTab(); + } + + public Function checkStatusOfCCIFromCERTIS(String fileName, TransactionReasonPAE status) { + return start -> start.clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnSelectChannel() + .selectCciFromCertisChannel() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(fileName) + .waitForStatus(harness, status) + .storeTransactionId() + .storeSecondRowAmount() + .closeTab(); + } + + public Function inputTrxFromStarBuild(String filepath) { + return start -> start.clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputStarBuild() + .clickOnRunButton() + .clickOnUploadFileButton() + .uploadFile(filepath) + .clickSendPopupButton() + .clickOkPopupButton() + .clickOkButton() + .closeTab(); + } + + public Function verifyAndWaitForStatusOfInputFromStarBuild(String fileName, TransactionReasonPAE status) { + return start -> start.clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusForVerification() + .clickOnSelectChannel() + .selectTrxFromStarBuildChannel() + .clickOnApplyButton() + .waitForChannelAndVerify(fileName) + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(fileName) + .waitForStatus(harness, status) + .storeTransactionId(); + } + + public Function inputPAINFromMC(String filepath) { + return start -> start.clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputPAIN() + .clickOnRunButton() + .clickOnUploadFileButton() + .uploadFile(filepath) + .clickSendPopupButton() + .clickOkPopupButton() + .clickOkButton() + .closeTab(); + } + + public Function checkStatusOfPAINFromMC(String fileName, TransactionReasonPAE status) { + return start -> start.clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnSelectChannel() + .selectMcPainChannel() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(fileName) + .waitForStatus(harness, status) + .storeTransactionId() + .storeEquivalentAmountCzk() + .closeTab(); + } + + public Function inputCFDFromMC(String filepath) { + return start -> start.clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputCFD() + .clickOnRunButton() + .clickOnUploadFileButton() + .uploadFile(filepath) + .clickSendPopupButton() + .clickOkPopupButton() + .clickOkButton() + .closeTab(); + } + + public Function checkStatusOfCFDFromMC(String fileName, TransactionReasonPAE status) { + return start -> start.clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnSelectChannel() + .selectMcCfdChannel() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(fileName) + .waitForStatus(harness, status) + .storeTransactionId() + .storeOutgoingTransactionId() + .storeFirstRowAmount() + .storeSecondRowAmount() + .clickOnLifeCycleButton() + .storeIngoingHd11TransactionId() + .waitForHd11Status(harness, status.getStatus()) + .closeTab(); + } + + public Function createStandingOrderCZ(PaymentData data) { + return start -> start.clickClientsAndChooseCreateCzStandingOrderFromStandingOrders() + .fillMandatoryData(data.getTransactionType(), data.getAmount(), data.getPeriod(), data.getDayMonth()) + .fillOptionalData(data.getTransactionName(), data.getDescription(), data.getBranchCode(), + data.getVariableSymbol(), data.getSpecificSymbol(), data.getConstantSymbol(), + data.getIdentification1(), data.getMessageMax1(), data.getMessageMax2()) + .clickOnDebtorPanel() + .searchAccount(data.getDebtorAcc()) + .clickOnSelectAccount() + .selectAccount() + .clickOnCreditorPanel() + .searchAccount(data.getCreditorAcc()) + .clickOnSelectAccount() + .selectAccount() + .clickOnStartDate() + .chooseStartDate() + .clickAccept(); + } + + public Function verifyStandingOrder(PaymentData data) { + return start -> start.clickClientsAndChooseListOfStandingOrderFromStandingOrders() + .fillSearchData(data.getDebtorAcc(), data.getCreditorAcc()) + .clickOnStatus() + .selectStatusForVerification() + .clickApply() + .storeRootId() + .clickApprove() + .clickOk() + .closeTab(); + } + + public Function checkStandingOrderStatus(String status, String rootId) { + return start -> start.clickClientsAndChooseListOfStandingOrderFromStandingOrders() + .clickOnStatus() + .selectStatusNull() + .fillId(rootId) + .clickApply() + .checkStatus(status); + } + + public Function checkStandingOrderTransactionsPresence(PaymentData data) { + return start -> start + .clickOnTransactions() + .clickFilters() + .fillSettlementFrom(data.getSettlementDate()) + .clickSearch() + .checkTransactionIdByDatePresent(data.getSettlementDate()) + .storeTransactionIdByDate(data.getSettlementDate()); + } + + public Function editStandingOrder(PaymentData data) { + return start -> start.clickEdit() + .editStandingOrder(data.getAmount()) + .clickOk() + .closeTab() + .clickClientsAndChooseListOfStandingOrderFromStandingOrders() + .fillSearchData(data.getDebtorAcc(), data.getCreditorAcc()) + .clickOnStatus() + .selectStatusForVerification() + .clickApply() + .storeRootId(); + } + + public Function verifyEditingOfStandingOrder(String rootId) { + return start -> start.clickClientsAndChooseListOfStandingOrderFromStandingOrders() + .clickOnStatus() + .selectStatusForVerification() + .fillId(rootId) + .clickApply() + .clickApprove() + .clickOk() + .closeTab(); + } + + public Function deleteStandingOrder(PaymentData data) { + return start -> start.clickDelete() + .clickOk() + .closeTab() + .clickClientsAndChooseListOfStandingOrderFromStandingOrders() + .fillSearchData(data.getDebtorAcc(), data.getCreditorAcc()) + .clickOnStatus() + .selectStatusForVerification() + .clickApply() + .storeRootId(); + } + + public Function createAuthorizationForDirectDebit(PaymentData data) { + return start -> start.clickOnClients() + .clickOnAuthrizationsForDirectDebit() + .clickOnCreateAuthorizationForDirectDebit() + .clickOnCreditor() + .fillAccount(data.getCreditorAcc()) + .clickSearchByAccount() + .selectAccount(data.getCreditorAcc()) + .clickOkInTheWindow() + .clickOnDebtor() + .fillAccount(data.getDebtorAcc()) + .clickSearchByAccount() + .selectAccount(data.getDebtorAcc()) + .clickOkInTheWindow() + .fillManualDataForDirectDebitWithoutDebtor(data.getTransactionName(), data.getBranchCode(), + data.getDescription(), data.getVariableSymbol(), data.getSpecificSymbol(), + data.getAmount()) + .fillPeriodType(data.getPeriod()) + .clickOk(); + } + + public Function verifyAuthorizationForDirectDebit(PaymentData data) { + return start -> start.clickOnClients() + .clickOnAuthrizationsForDirectDebit() + .clickOnStatus() + .selectStatusForVerification() + .fillManualDataForSearch(data.getCreditorAcc(), data.getDebtorAcc()) + .clickOnApply() + .storeRootId() + .clickOnApprove() + .clickOk(); + } + + public Function checkAuthorizationForDirectDebitStatus(String status, String rootId) { + return start -> start.clickOnClients() + .clickOnAuthrizationsForDirectDebit() + .clickOnStatus() + .selectStatusNull() + .fillId(rootId) + .clickOnApply() + .checkStatus(status); + } + + public Function checkAuthorizationForDirectDebitExistence(PaymentData data, Credentials user1, Credentials user2) { + return start -> start.clickOnClients() + .clickOnAuthrizationsForDirectDebit() + .fillManualDataForSearch(data.getCreditorAcc(), data.getDebtorAcc()) + .clickOnStatus() + .selectStatusForVerification() + .clickOnApply() + .checkAuthorizationForDirectDebitForVerificationNotPresent() + .clickOnStatus() + .selectStatusValid() + .clickOnApply() + .checkAuthorizationForDirectDebitNotPresent(harness, data, user1, user2); + } + + public Function createInternalRequestForCancellation(String transactionId) { + return start -> start.clickTransactionAndChooseArchivFromOutgoing() + .fillId(transactionId) + .searchUnverified() + .selectTransaction(transactionId) + .clickOnManualActions() + .clickOnRequestForCancellation() + .clickOk(); + } + + public Function verifyRequestAndWaitForStatus(String transactionId, TransactionReasonPAE status) { + return start -> start.clickTransactionAndChooseForVerificationFromOutgoing() + .pressSearch() + .fillId(transactionId) + .searchUnverified() + .selectTransaction(transactionId) + .clickOnVerifyTransaction() + .clickOnAcceptRequest() + .clickOnOk() + .closeTab() + .search() + .typeId(transactionId) + .clickSearch() + .waitForStatus(harness, status); + } + + public Function editAuthorizationForDirectDebit(PaymentData data) { + return start -> start.clickOnEditAuthorizationForDirectDebit() + .editAmount(data.getAmount()) + .clickOk() + .closeTab() + .clickOnClients() + .clickOnAuthrizationsForDirectDebit() + .fillManualDataForSearch(data.getCreditorAcc(), data.getDebtorAcc()) + .clickOnStatus() + .selectStatusForVerification() + .clickOnApply() + .storeRootId(); + } + + public Function verifyEditingOfAuthorizationsForDirectDebits(String rootId) { + return start -> start.clickOnClients() + .clickOnAuthrizationsForDirectDebit() + .clickOnStatus() + .selectStatusForVerification() + .fillId(rootId) + .clickOnApply() + .clickOnApprove() + .clickOk(); + } + + public Function verifyDeleteOfAuthorizationsForDirectDebits(PaymentData data) { + return start -> start.clickOnClients() + .clickOnAuthrizationsForDirectDebit() + .clickOnStatus() + .selectStatusForVerification() + .fillManualDataForSearch(data.getCreditorAcc(), data.getDebtorAcc()) + .clickOnApply() + .clickOnApprove() + .clickOk(); + } + + public Function deleteAuthorizationForDirectDebitAndStoreRootId(PaymentData data) { + return start -> start.clickOnDeleteAuthorizationForDirectDebit() + .clickOk() + .closeTab() + .clickOnClients() + .clickOnAuthrizationsForDirectDebit() + .fillManualDataForSearch(data.getCreditorAcc(), data.getDebtorAcc()) + .clickOnStatus() + .selectStatusForVerification() + .clickOnApply() + .storeRootId(); + } + + public Function deleteAuthorizationForDirectDebit(PaymentData data) { + return start -> start.clickOnClients() + .clickOnAuthrizationsForDirectDebit() + .fillManualDataForSearch(data.getCreditorAcc(), data.getDebtorAcc()) + .clickOnApply() + .clickOnDeleteAuthorizationForDirectDebit() + .clickOk(); + } + + public Function searchClientAndStoreClientName(String clientId) { + return start -> start.clickClientsAndChooseListOfClients() + .waitForAjax() + .fillClientId(clientId) + .clickOnApply() + .waitForAjax() + .storeClientName(); + } + + public Function checkAndStoreNewClientName(String clientId, NonClient nonClient) { + return start -> start.clickClientsAndChooseListOfClients() + .waitForAjax() + .fillClientId(clientId) + .clickOnApply() + .waitForAjax() + .waitForClientNameChange(harness, nonClient.firstName()) + .storeClientName(); + } + + public Function searchClientAccount(String clientsAccount) { + return start -> start.clickClientsAndChooseListOfClientsAccounts() + .waitForAjax() + .fillClientsAccount(clientsAccount) + .clickOnApply(); + } + + public Function checkClientAccountStateBlocked() { + return start -> start.clickOnDetail() + .checkAndUpdateAccountStateIfNotBlocked(); + } + + public Function checkClientAccountStateActive() { + return start -> start.clickOnDetail() + .checkAndUpdateAccountStateIfNotActive(); + } + + public Function storeClientAccountBranchCode() { + return start -> start.clickOnDetail() + .storeBranchCode(harness); + } + + public Function editAndReleaseIngoingWaiting(String transactionId, String coverAccIngoing) { + return start -> start.clickTransactionAndChooseWaitingFromIngoing() + .clickOnSearchField() + .searchTransaction(transactionId) + .clickOnManualActions() + .clickOnEditRelease() + .clickOnClearingPartner() + .chooseClearingPartnerCertis() + .fillCoverAccountIngoing(coverAccIngoing) + .clickOk() + .closeTab(); + } + + public Function verifyIngoing(String transactionId) { + return start -> start.clickTransactionAndChooseForVerificationFromIngoing() + .clickOnSearchField() + .searchTransaction(transactionId) + .clickOnVerifyOrReject() + .clickOnVerifyOrRejectStillVisible() + .clickOnAccept() + .clickOnOk() + .closeTab(); + } + + public Function checkTransactionDetailAndStoreRefTransactionId() { + return start -> start.clickOnTransactionDetail() + .storeRefTransaction(harness) + .closeTab(); + } + + public Function checkLifeCycleAndStoreRowTransactionId(TransactionReasonPAE status) { + return start -> start.clickOnTransactionDetail() + .clickOnLifeCycle() + .waitForStatus(harness, status) + .storeSecondRowTransactionId() + .storeSecondRowTransactionAmount() + .clickOnSecondRowTransaction() + .clickOnSecondRowTransactionDetail() + .storeRefTransaction(harness) + .closeTab(); + } + + public Function checkLifeCycleAndStoreThirdRowTransactionId(TransactionReasonPAE status) { + return start -> start.clickOnTransactionDetail() + .clickOnLifeCycle() + .waitForStatus(harness, status) + .storeThirdRowTransactionId() + .closeTab(); + } + + public Function checkLifeCycleAndStoreRowTransactionIds() { + return start -> start.clickOnTransactionDetail() + .clickOnLifeCycle() + .waitForFifthRow(harness) + .storeSecondRowTransactionId() + .storeThirdRowTransactionId() + .storeForthRowTransactionId() + .storeFifthRowTransactionId(); + } + + public Function storeBalancesFromCache24(PaymentData data) { + return start -> start.clickOnCache24_7() + .clickOnAccountAndReservation() + .typeInternalAccountNumberAndClickApply(data.getDebtorAcc()) + .clickOnAccountDetail() + .getDispoBalance() + .getAccBalance(); + } + + public Function checkPriorityMT103AndHD21RecordDetail(String distributionDate) { + return start -> start.clickOnTransactionDetail() + .clickOnRecordDetail() + .storeRefTransaction() + .clickExitFromRecordDetail() + .clickOnLifeCycle() + .clickOnHD21() + .clickOnHD21Detail() + .clickOnRecordDetail() + .checkDistributionDate(distributionDate) + .clickExitFromRecordDetail() + .closeTab(); + } + + public Function checkDebitInitiatorAndIcbsProfilData(PaymentData data) { + return start -> start.clickOnTransactionDetail() + .clickOnRecordDetail() + .checkDebitPostingValue(data.getPostingValue()) + .checkInitiatorValue(data.getInitiatorValue()) + .checkIcbsProfileValue(data.getIcbsProfile()) + .clickExitFromRecordDetail() + .closeTab(); + } + + public Function createRequestForSCTOutgoingPaymentStatusInquiry(String transactionId, PaymentData data) { + return start -> start.clickTransactionAndChooseCreateCreateSCTClaimNonReceipt() + .fillSCTData(transactionId, data.getInstruction()) + .clickOk() + .storeRequestId() + .clickNo(); + } + + public Function createRequestForSCTIngoingPaymentReturn(String transactionId) { + return start -> start.clickTransactionAndChooseArchivFromIngoing() + .searchTransaction(transactionId) + .clickOnManualActions() + .clickManualActionsIfStillVisible() + .clickOnReturn() + .clickOnReasonCode() + .chooseReasonCodeCust() + .clickOk() + .closeTab(); + } + + public Function searchTransactionBySettlement(PaymentData data, TransactionReasonPAE status) { + return start -> start.search() + .typeDebtorAcc(data.getDebtorAcc()) + .waitForSettlementDateFrom() + .typeSettlementDates(data.getSettlementDateFrom(), data.getSettlementDateTo()) + .selectPayScheme(data.getPayScheme()) + .selectFront(data.getFront()) + .selectReason(status.getStatus()) + .clickSearch() + .storeSelectedTransactionId() + .closeTab(); + } + + public Function searchTransactionAndRequestForCancellation(String transactionId, PaymentData data) { + return start -> start.clickTransactionAndChooseArchivFromDistributionToClearing() + .fillId(transactionId) + .searchTransaction() + .clickOnManualActions() + .clickManualActionsIfStillVisible() + .clickOnRequestForCancellationBank() + .clickOnCode() + .chooseCode(data.getTransactionCode()) + .clickSubmit() + .clickSubmitIfStillVisible() + .closeTab(); + } + + public Function verifyDistributionToClearingAndWaitForStatus(String transactionId, TransactionReasonPAE status) { + return start -> start.clickTransactionAndChooseForVerificationFromDistributionToClearing() + .clickOnSearchField() + .searchTransaction(transactionId) + .clickOnVerifyOrReject() + .clickOnAcceptStornoBanka() + .clickOnOk() + .closeTab() + .search() + .typeId(transactionId) + .clickSearch() + .waitForStatus(harness, status); + } + + public Function checkLifeCycleAndWaitForStatus(PaymentData data, TransactionReasonPAE status) { + return start -> start.clickOnTransactionDetail() + .clickOnLifeCycle() + .waitForRowStatus(harness, data.getTransactionType(), status); + } + + public Function releaseManualOutgoing(String transactionId) { + return start -> start.clickTransactionAndChooseManualFromOutgoing() + .clickOnFilterButton() + .fillTransactionId(transactionId) + .clickOnSearchButtonAndWaitForResult(transactionId) + .clickOnManualActions() + .clickOnRelease() + .clickOnOKButton(); + } + + public void removeAuthorizationForDirectDebit(PaymentData data, Credentials user1, Credentials user2) { + harness.withPaymentEngine().closePaymentEngine(); + + loginTasks().logInPae(harness, user2) + .then(deleteAuthorizationForDirectDebit(data)); + harness.withPaymentEngine().closePaymentEngine(); + + loginTasks().logInPae(harness, user1) + .then(verifyDeleteOfAuthorizationsForDirectDebits(data)); + + harness.log("Previous Authorization For Direct Debit was successfully deleted."); + } + + public void assumptionAuthorizationForDirectDebitExistence(PaymentData data, Credentials user1, Credentials user2) { + + loginTasks().logInPae(harness, user1) + .then(checkAuthorizationForDirectDebitExistence(data, user1, user2)); + harness.withPaymentEngine().closePaymentEngine(); + harness.log("Previous Authorization For Direct Debit was not found."); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/payment_engine/utils/PaymentEngineUtils.java b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/utils/PaymentEngineUtils.java new file mode 100644 index 0000000..9dbe9c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/payment_engine/utils/PaymentEngineUtils.java @@ -0,0 +1,404 @@ +package cz.moneta.test.dsl.payment_engine.utils; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.AccountStates; +import cz.moneta.test.dsl.payment_engine.enums.CurrencyPAE; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.web.Lookup; +import org.apache.commons.lang.StringUtils; + +import java.io.BufferedReader; +import java.io.File; +import java.io.InputStream; +import java.io.InputStreamReader; + +public class PaymentEngineUtils { + + public static final int STATUS_WAIT_TIMEOUT_SEC = 300; + public static final int STATUS_WAIT_LONG_TIMEOUT_SEC = 900; + + public static void waitForElementPresence(Harness harness, String elementXpath, String refreshButtonXpath) { + PaymentEngineEndpoint endpoint = harness.getEndpoint(PaymentEngineEndpoint.class); + endpoint.waitForElementAndRefresh(elementXpath, refreshButtonXpath, STATUS_WAIT_TIMEOUT_SEC, 10); + } + + public static void storeElementAttribute(Harness harness, String xpath, String key) { + PaymentEngineEndpoint endpoint = harness.getEndpoint(PaymentEngineEndpoint.class); + String value = endpoint.getAttribute(xpath, Lookup.XPATH, "value"); + harness.store(key, value); + } + + public static BufferedReader getFileByFilePath(String filePath) { + return new BufferedReader(new InputStreamReader(getFileFromResourceAsStream(filePath))); + } + + public static String getTransactionalId(Harness harness) { + return StringUtils.substringBetween(harness.get("TRANSACTION_ID_KEY"), "ID ", "."); + } + + public static File createFile(String fileName) { + return new File(fileName); + } + + private static InputStream getFileFromResourceAsStream(String fileName) { + ClassLoader classLoader = PaymentEngineUtils.class.getClassLoader(); + InputStream inputStream = classLoader.getResourceAsStream(fileName); + if (inputStream == null) { + throw new IllegalArgumentException("file not found! " + fileName); + } else { + return inputStream; + } + } + + public static void logResultShort(Harness harness, String transactionId, PaymentData data) { + harness.log("Transaction " + transactionId + " was successfully verified"); + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully verified" + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + "/" + data.getBankCode() + + "\n" + + "Amount: " + data.getAmount() + " CZK"); + } + + public static void logHD32Result(Harness harness, String transactionId1, String transactionId2, PaymentData data, TransactionReasonPAE status1,TransactionReasonPAE status2) { + harness.log("HD:32 transaction " + transactionId1 + " reason: " + status1.getStatus()); + harness.store("reports.tmfj.execution.comment", "HD:32 transaction " + transactionId1 + " reason: " + status1.getStatus() + + "\n" + + "HD:12 transaction " + transactionId2 + " reason: " + status2.getStatus() + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + "/" + data.getBankCode() + + "\n" + + "Amount: " + data.getAmount() + " CZK"); + } + + public static void logResultShortWithICBS(Harness harness, String transactionId, PaymentData data) { + harness.log("Transaction " + transactionId + " was successfully verified"); + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully verified." + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + "/" + data.getBankCode() + + "\n" + + "Amount: " + data.getAmount() + " CZK" + + "\n" + + "Transaction " + transactionId + " was successfully booked in ICBS."); + } + public static void logResultUfoWithPaeAndICBS(Harness harness, String transactionId, PaymentData data) { + harness.log("Transaction " + transactionId + " was successfully verified"); + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully created in UFO Banka." + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + "/" + data.getBankCode() + + "\n" + + "Amount: " + data.getAmount() + " CZK" + + "\n" + + "Transaction " + transactionId + " was successfully booked in PAE and ICBS."); + } + + public static void logResultShortWithFileName(Harness harness, String transactionId, String fileName, PaymentData data) { + harness.log("Transaction " + transactionId + " was successfully verified"); + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully verified." + + "\n" + + "File name: " + fileName + + "\n" + + "Channel name: " + data.getCreditorName() + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + "/" + data.getBankCode() + + "\n" + + "Amount: " + data.getAmount() + " CZK"); + } + + public static void logResultShortWithAccountStateChange(Harness harness, AccountStates accountState, AccountStates accountStateNew, + String transactionId, PaymentData data) { + harness.log("Transaction " + transactionId + " was successfully verified"); + harness.store("reports.tmfj.execution.comment", "Account status has been changed from " + accountState.getState() + " to " + accountStateNew.getState() + " ." + + "\n" + + "Transaction " + transactionId + " was successfully verified." + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + "/" + data.getBankCode() + + "\n" + + "Amount: " + data.getAmount() + " CZK" + + "\n" + + "Account status has been changed from " + accountStateNew.getState() + " back to " + accountState.getState() + " ."); + } + + public static void logResultShortWithPrefix(Harness harness, String transactionId, PaymentData data) { + harness.log("Transaction " + transactionId + " was successfully verified"); + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully verified" + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getAccPrefix() + "-" + data.getCreditorAcc() + + "\n" + + "Amount: " + data.getAmount() + " CZK"); + } + + public static void logResultLong(Harness harness, String transactionId, + String transactionId2, PaymentData data) { + harness.log("Transaction " + transactionId + " was successfully verified"); + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully verified" + + "\n" + + "Debtor account: " + data.getCreditorAcc() + + "\n" + + "Creditor account: " + data.getDebtorAcc() + + "\n" + + "Amount: " + data.getAmount() + " CZK" + + "\n" + + "Transaction " + transactionId2 + " was successfully verified" + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + + "\n" + + "Amount: " + data.getAmount() + " CZK"); + } + + public static void logResultLongWithICBS(Harness harness, String transactionId, String transactionId2, PaymentData data) { + harness.log("Transaction " + transactionId + " was successfully verified"); + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully verified" + "\n" + + "\n" + + "Debtor account: " + data.getCreditorAcc() + + "\n" + + "Creditor account: " + data.getDebtorAcc() + + "\n" + + "Amount: " + data.getAmount() + " CZK" + + "\n" + + "Transaction " + transactionId2 + " was successfully verified" + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + + "\n" + + "Amount: " + data.getAmount() + " CZK" + + "\n" + + "Transaction " + transactionId + " was successfully booked in ICBS." + + "\n" + + "Transaction " + transactionId2 + " was successfully booked in ICBS."); + } + + public static void logStandingOrderStatus(Harness harness, String rootId1, String rootId2, String rootId3, PaymentData data) { + harness.log("Standing Order " + rootId1 + " was successfully verified, archived and deleted."); + harness.store("reports.tmfj.execution.comment", "Standing Order " + rootId3 + " was successfully deleted" + + "\n" + + "Standing Order " + rootId1 + " was successfully archived" + + "\n" + + "Standing Order " + rootId2 + " was successfully archived" + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + + "\n" + + "Amount: " + data.getAmount() + " CZK" + + "\n" + + "Changed amount: " + data.getAmount() + ",01 CZK"); + } + + public static void logStandingOrderTransactionStatus(Harness harness, String rootId1, String transactionId, PaymentData data) { + harness.log("Standing Order " + rootId1 + " status is valid."); + harness.store("reports.tmfj.execution.comment", "Standing Order " + rootId1 + " status is valid." + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + + "\n" + + "Amount: " + data.getAmount() + " CZK" + + "\n" + + "Transaction " + transactionId + " was successfully archived"); + } + + public static void logAuthorizationForDirectDebitStatus(Harness harness, String rootId1, String rootId2, String rootId3, PaymentData data) { + harness.log("Authorization For Direct Debit " + rootId1 + " was successfully verified, archived and deleted."); + harness.store("reports.tmfj.execution.comment", "Authorization For Direct Debit " + rootId3 + " was successfully deleted" + + "\n" + + "Authorization For Direct Debit " + rootId1 + " was successfully archived" + + "\n" + + "Authorization For Direct Debit " + rootId2 + " was successfully archived" + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + + "\n" + + "Period max amount: " + data.getAmount() + " CZK" + + "\n" + + "Changed period max amount: " + data.getAmount() + ",01 CZK"); + } + + public static void logChangeOfClientName(Harness harness, String clientName1, String clientName2, String clientId) { + harness.log("Client name " + clientName1 + " was successfully changed to " + clientName2 + ". "); + harness.store("reports.tmfj.execution.comment", + "Client name " + clientName1 + " was successfully changed to " + clientName2 + ". " + + "\n" + + "Client ID: " + clientId + + "\n"); + } + + public static void logChangeOfClientAccountState(Harness harness, String clientsAccount, AccountStates accountState1, AccountStates accountState2) { + harness.log("State of client account " + clientsAccount + " was successfully changed. "); + harness.store("reports.tmfj.execution.comment", + "State of client account " + clientsAccount + " was successfully changed. " + + "\n" + + "Client account state " + accountState1.getState() + " was successfully changed to " + accountState2.getState() + " and back. " + + "\n"); + } + + public static void logChangeOfClientAccountBranchCode(Harness harness, String clientsAccount, String branchCode1, String branchCode2) { + harness.log("State of client account " + clientsAccount + " was successfully changed. "); + harness.store("reports.tmfj.execution.comment", + "Branch code of client account " + clientsAccount + " was successfully changed. " + + "\n" + + "Client account branch code " + branchCode1 + " was successfully changed to " + branchCode2 + " and back. " + + "\n"); + } + + public static void logResultOfInput(Harness harness, String fileName, String transactionId, String amount, String currency) { + harness.log("The file " + fileName + " was successfully processed. "); + harness.store("reports.tmfj.execution.comment", "The file " + fileName + " was successfully processed. " + + "\n" + + "Transaction ID: " + transactionId + + "\n" + + "Amount: " + amount + " " + currency + + "\n"); + } + + public static void logResultOfInputWithEquivalentAmount(Harness harness, String fileName, String transactionId, String amount, + CurrencyPAE currency, String equivalentAmount, CurrencyPAE equivalentCurrency) { + harness.log("The file " + fileName + " was successfully processed. "); + harness.store("reports.tmfj.execution.comment", "The file " + fileName + " was successfully processed. " + + "\n" + + "Transaction ID: " + transactionId + + "\n" + + "Amount: " + amount + " " + currency.getCurrency() + + "\n" + + "Equivalent amount: " + equivalentAmount + " " + equivalentCurrency.getCurrency() + + "\n" + + "Transaction " + transactionId + " was successfully booked in ICBS."); + } + + public static void logResultOfInputLong(Harness harness, String fileName, String transactionId1, String amount1, + String transactionId2, String transactionId3, String amount2, CurrencyPAE currency) { + harness.log("The file " + fileName + " was successfully processed. "); + harness.store("reports.tmfj.execution.comment", "The file " + fileName + " was successfully processed. " + + "\n" + + "Outgoing HD:11 transaction ID: " + transactionId1 + + "\n" + + "Amount: " + amount1 + " " + currency.getCurrency() + + "\n" + + "Ingoing HD:11 transaction ID: " + transactionId3 + + "\n" + + "Amount: " + amount1 + " " + currency.getCurrency() + + "\n" + + "Outgoing from MC transaction ID: " + transactionId2 + + "\n" + + "Amount: " + amount2 + " " + currency.getCurrency() + + "\n" + + "Transaction " + transactionId1 + " was successfully booked in ICBS." + + "\n" + + "Transaction " + transactionId2 + " was successfully booked in ICBS." + + "\n" + + "Transaction " + transactionId3 + " was successfully booked in ICBS."); + } + + public static void logResultWithEquivalentAmount(Harness harness, String transactionId, String debtorAcc, String creditorAcc, + String amount, String equivalentAmount) { + harness.log("Transaction " + transactionId + " was successfully verified"); + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully verified" + + "\n" + + "Debtor account: " + debtorAcc + + "\n" + + "Creditor account: " + creditorAcc + + "\n" + + "Amount: " + amount + + "\n" + + "Equivalent amount: " + equivalentAmount + + "\n" + + "Transaction " + transactionId + " was successfully booked in ICBS."); + } + + public static void logResultWithFeeAmount(Harness harness, String transactionId, String transactionId2, String transactionId3, String debtorAcc, + String amount, String feeAmount) { + harness.log("Transaction (xCT MT103 prichozi) " + transactionId + " was successfully archived."); + harness.store("reports.tmfj.execution.comment", "Transaction (xCT MT103 prichozi) " + transactionId + " was successfully archived." + + "\n" + + "Transaction (CZ Kryti prichozi) " + transactionId2 + " was successfully archived." + + "\n" + + "Client's fee transaction " + transactionId3 + " was successfully archived." + + "\n" + + "Debtor account: " + debtorAcc + + "\n" + + "Amount: " + amount + + "\n" + + "Client's fee amount: " + feeAmount + + "\n" + + "Transaction (xCT MT103 prichozi) " + transactionId + " was succesfully booked in ICBS." + + "\n" + + "Client's fee transaction " + transactionId3 + " was succesfully booked in ICBS."); + } + + public static void logResultOfMt103WithCreditStatementHd21(Harness harness, String transactionId, String transactionId2, String transactionId3, String debtorAcc, + String amount, String mt191Amount) { + harness.log("Transaction (xCT MT103 prichozi) " + transactionId + " was successfully archived."); + harness.store("reports.tmfj.execution.comment", "Transaction (xCT MT103 prichozi) " + transactionId + " was successfully archived." + + "\n" + + "Transaction (xCT MTx91 odchozi) " + transactionId2 + " was successfully archived." + + "\n" + + "Transaction (CZ Kreditni vyloha prichozi) " + transactionId3 + " was successfully archived." + + "\n" + + "Debtor account: " + debtorAcc + + "\n" + + "Amount: " + amount + + "\n" + + "MTx91 amount: " + mt191Amount + + "\n" + + "Transaction (xCT MT103 prichozi) " + transactionId + " was succesfully booked in ICBS."); + } + + public static void logResultOfRequestForDirectDebitReturn(Harness harness, String transactionId1, String transactionId2, String transactionId3, + String transactionId4, String transactionId5, String transactionId6, PaymentData data) { + harness.log("Transaction (HD:11 odchozi) " + transactionId1 + " was successfully archived."); + harness.store("reports.tmfj.execution.comment", "Transaction (HD:11 odchozi) " + transactionId1 + " was successfully archived." + + "\n" + + "Transaction (HD:11 Inicialni prichozi) " + transactionId2 + " was successfully archived." + + "\n" + + "Transaction (HD:33 odchozi) " + transactionId3 + " was successfully accepted Return FOCR." + + "\n" + + "Transaction (HD:33 prichozi) " + transactionId4 + " successfully sent a response (RIS)." + + "\n" + + "Transaction (HD:13 odchozi) " + transactionId5 + " was successfully archived." + + "\n" + + "Transaction (HD:13 Storno prichozi) " + transactionId6 + " was successfully archived." + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + + "\n" + + "Amount: " + data.getAmount() + + "\n" + + "Transaction (HD:11 odchozi) " + transactionId1 + " was succesfully booked in ICBS." + + "\n" + + "Transaction (HD:13 Storno prichozi) " + transactionId6 + " was succesfully booked in ICBS."); + } + + public static void logResultOfReturn(Harness harness, String transactionId, String returnedTransactionId, + String debtorAcc, String returnedAmount, String equivalentAmount) { + harness.log("Transaction " + transactionId + " was successfully verified"); + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully returned." + + "\n" + + "Debtor account: " + debtorAcc + + "\n" + + "Returned amount: " + returnedAmount + " USD." + + "\n" + + "Equivalent amount: " + equivalentAmount + " CZK." + + "\n" + + "Transaction " + returnedTransactionId + " was successfully booked in ICBS."); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/refinanso/Refinanso.java b/tests/src/main/java/cz/moneta/test/dsl/refinanso/Refinanso.java new file mode 100644 index 0000000..50ea038 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/refinanso/Refinanso.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.refinanso; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.refinanso.RefinansoEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class Refinanso { + private Harness harness; + + public Refinanso(Harness harness) { + this.harness = harness; + } + + public RefinansoHomePage openHomePage() { + RefinansoEndpoint endpoint = harness.getEndpoint(RefinansoEndpoint.class); + endpoint.openApplication(); + return Builders.newWebFlowBuilder(RefinansoHomePage.class, endpoint, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/refinanso/RefinansoHomePage.java b/tests/src/main/java/cz/moneta/test/dsl/refinanso/RefinansoHomePage.java new file mode 100644 index 0000000..5c25669 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/refinanso/RefinansoHomePage.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.refinanso; + +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.refinanso.RefinansoHomePage.MORTGAGE_CALCULATOR_FORM; + +@Wait(value = MORTGAGE_CALCULATOR_FORM, by = Lookup.XPATH) +public interface RefinansoHomePage extends WebFlow { + + String MORTGAGE_CALCULATOR_FORM = "//button[@data-testid='continue']"; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/Calculation.java b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/Calculation.java new file mode 100644 index 0000000..cc8e181 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/Calculation.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.refinanso.util.data; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class Calculation { + private Client mainClient; + private String callContext; + private String creditWorthinessVariant; + private String channel; + private int fixation; + private String bankName; + private String lifeInsuranceVariant; + private String offsetType; + private int product; + private int purposesID; + private String refinancingDate; + private int installmentAmount; + private int loanAmount; + private int maturity; + private boolean isCollApplicabilityClient; + private boolean isCollApplicabilityProcess; + private String pledgeReferenceNumber; + private int personsWithIncome; + private int personsWithoutIncome; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/Client.java b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/Client.java new file mode 100644 index 0000000..c5fdf82 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/Client.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.refinanso.util.data; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class Client { + private String firstName; + private String lastName; + private String pin; + private int nationality; + private String maritalStatus; + private int instalmentAmountOther; + private int income ; + private boolean isStable; + private boolean noCollDependent; + private boolean noForeignCurrencyntIsStable; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/NasApprovalResponse.java b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/NasApprovalResponse.java new file mode 100644 index 0000000..16a21b9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/NasApprovalResponse.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.refinanso.util.data.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class NasApprovalResponse { + @JsonProperty("RS_RSN") + private List rsRsnList; + @JsonProperty("RS_EMP_INC") + private List rsEmpIncList; + @JsonProperty("REFI_PRINC_BAL") + private int refiPrincBal; + @JsonProperty("RS_POI") + private List rsPoiList; + @JsonProperty("HYPOS_FE_STAT") + private String hyposFeStat; + @JsonProperty("RS_EXP") + private List rsExpList; + @JsonProperty("RS_CORP_INC") + private List rsCorpIncList; + @JsonProperty("AUTOMAT_VERIF_RSLT") + private String automatVerifRslt; + @JsonProperty("APPL_STATUS") + private String applStatus; + @JsonProperty("AUTOMAT_BONITA_KO_FLAG") + private String automatBonitaKoFlag; + private TifResponseStatus tifResponseStatus; + @JsonProperty("MAX_TERM") + private int maxTerm; + @JsonProperty("AUTOMAT_RSLT") + private String automatRslt; + @JsonProperty("FINA_MAX_MAN") + private double finaMaxMan; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsCorpInc.java b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsCorpInc.java new file mode 100644 index 0000000..ae28e6e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsCorpInc.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.refinanso.util.data.model; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class RsCorpInc { +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsEmpInc.java b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsEmpInc.java new file mode 100644 index 0000000..2b3c3ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsEmpInc.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.refinanso.util.data.model; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class RsEmpInc { +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsExp.java b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsExp.java new file mode 100644 index 0000000..343a39f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsExp.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.refinanso.util.data.model; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class RsExp { +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsPoi.java b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsPoi.java new file mode 100644 index 0000000..ce038a7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsPoi.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.refinanso.util.data.model; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class RsPoi { +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsRsn.java b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsRsn.java new file mode 100644 index 0000000..1e38b4e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/RsRsn.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.refinanso.util.data.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +public class RsRsn { + @JsonProperty("DET_REASON") + private String detReason; + @JsonProperty("DET_TEXT") + private String detText; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/TifResponseStatus.java b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/TifResponseStatus.java new file mode 100644 index 0000000..4f56748 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/refinanso/util/data/model/TifResponseStatus.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.refinanso.util.data.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Data +class TifResponseStatus { + private String errorDesc; + private String resultCode; + private String errorCode; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/SalesForce.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/SalesForce.java new file mode 100644 index 0000000..657e7fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/SalesForce.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.salesforce; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.pages.LoginPage; +import cz.moneta.test.harness.endpoints.sales_force.SalesForceEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class SalesForce { + private final Harness harness; + + public SalesForce(Harness harness) { + this.harness = harness; + } + + public LoginPage openLoginPage() { + SalesForceEndpoint salesForceEndpoint = harness.getEndpoint(SalesForceEndpoint.class); + salesForceEndpoint.openApplication(); + return Builders.newWebFlowBuilder(LoginPage.class, salesForceEndpoint, harness); + } + + public void closeSalesForce() { + harness.closeEndpoint(harness.getEndpoint(SalesForceEndpoint.class)); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/components/ListViewHeader.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/components/ListViewHeader.java new file mode 100644 index 0000000..2620c22 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/components/ListViewHeader.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.salesforce.components; + +import cz.moneta.test.harness.support.web.Builder; + +public interface ListViewHeader extends Builder { + String ACCOUNT_SEARCH_INPUT = "//input[@name='Account-search-input']"; + String OPPORTUNITY_SEARCH_INPUT = "//input[@name='Opportunity-search-input']"; + String REFRESH_VIEW_BUTTON = "//button[@name='refreshButton']"; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/components/PageHeader.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/components/PageHeader.java new file mode 100644 index 0000000..b3e9c6d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/components/PageHeader.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.salesforce.components; + +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; + +public interface PageHeader extends Builder { + //Search section + String SEARCH_INPUT_DIV = "//div[@data-aura-class='forceSearchInputDesktop']"; + String SEARCH_INPUT = "(//div[@class='forceSearchAssistantDialog']//input)[2]"; + String SEARCH_BUTTON = "//div[contains(@class,'global-header__item_search')]//button"; + String SEARCH_AUTOCOMPLETE = SEARCH_INPUT_DIV + "//div[@data-aura-class='uiAbstractList uiAutocompleteList']"; + String SEARCH_AUTOCOMPLETE_ITEM = SEARCH_AUTOCOMPLETE + "//li[contains(.,'\"%s\"')]"; + String USER_PROFILE_LINK = "//span[contains(@class,'UserProfile')]//button"; + String USER_PROFILE = "//h1[contains(@class,'profile-card-name')]/a"; + String USER_LOGOUT = "//a[text()='Log Out']"; + + //Navigation section + String HOME_LINK = "//one-app-nav-bar-item-root[@data-id='home']"; + String ACCOUNTS_LINK = "//one-app-nav-bar-item-root[@data-id='Account']"; + String ACOUNTS_CHEVRONDOWN = ACCOUNTS_LINK + "//one-app-nav-bar-menu-button"; + String ACCOUNT_ALL_ACCOUNTS_LINK = ACCOUNTS_LINK + "//one-app-nav-bar-menu-item[contains(.,'Všechny subjekty')]"; + + @Click(value = USER_PROFILE_LINK, andWait = @Wait(value = USER_LOGOUT, explicitWaitSeconds = 1, until = Until.VISIBLE)) + @Click(value = USER_LOGOUT, andWait = @Wait(explicitWaitSeconds = 1)) + void logoutUser(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/EventData.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/EventData.java new file mode 100644 index 0000000..6c17186 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/EventData.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.salesforce.data; + +import lombok.Builder; +import lombok.Data; +@Data +@Builder +public class EventData { + protected String type; + protected String status; + protected String businessStatus; + + public EventData getMeetingActiveBusiness(){ + return EventData.builder() + .type("Schůzka") + .status("Kontaktováno") + .businessStatus("Aktivní - podniká") + .build(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/OpportunityData.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/OpportunityData.java new file mode 100644 index 0000000..94304dd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/OpportunityData.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.salesforce.data; + +import cz.moneta.test.dsl.salesforce.data.enums.ProductPotential; +import lombok.Builder; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; +import java.util.Arrays; + + +@Data +@Builder +public class OpportunityData { + protected String account; + protected String initiator; + protected String category; + protected String source; + protected String branch; + protected int amount; + protected String currency; + protected String signatureDate; + protected String pipeline; + protected int probability; + protected List productPotential; + protected String description; + + public OpportunityData getInvestmentOpportunity() { + return OpportunityData.builder() + .initiator("Klient") + .category("Komerční úvěr") + .branch("MONETA Money Bank - České Budějovice - Jírovcova") + .amount(300000) + .currency("CZK") + .probability(100) + .productPotential(new ArrayList<>(Arrays.asList(ProductPotential.INVESTMENT))) + .build(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/SaleData.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/SaleData.java new file mode 100644 index 0000000..e58f76d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/SaleData.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.salesforce.data; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class SaleData { + protected String productType; + protected String loanType; + protected int amount; + + public SaleData getInvestmentSale(){ + return SaleData.builder() + .productType("Splátkový") + .loanType("Investiční (Splátkový)") + .amount(300000) + .build(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/enums/ProductPotential.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/enums/ProductPotential.java new file mode 100644 index 0000000..1de35b4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/data/enums/ProductPotential.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.salesforce.data.enums; + +public enum ProductPotential { + INVESTMENT("Investice", "Investice"), + BUSINESS("Provoz (+ limit na kr. karty)", "ProductPotentialChoice.Provoz (+ limit na kr%2E karty)"), + BANK_ASSURANCE("Bankovní záruka/Akreditiv", "ProductPotentialChoice.Bankovní záruka/Akreditiv"), + FX_LINE("FX line", "ProductPotentialChoice.FX line"), + CASH_POOLING("Platební styk/Cash pooling", "ProductPotentialChoice.Platební styk/Cash pooling"), + CARD_TERMINAL("Karetní terminál", "ProductPotentialChoice.Karetní terminál"), + LEASING("Leasing/Auto", "ProductPotentialChoice.Leasing/Auto"), + CURRENT_ACCOUNT("Běžný účet", "ProductPotentialChoice.Běžný účet"), + SAVING_ACCOUNT("Spořicí účet", "ProductPotentialChoice.Spořicí účet"), + TERM_DEPOSIT("Termínovaný vklad", "ProductPotentialChoice.Termínovaný vklad"); + + private final String label; + private final String xpathValue; + + ProductPotential(String label, String xpathValue) { + this.label = label; + this.xpathValue = xpathValue; + } + + public String getLabel() { + return label; + } + + public String getXpathValue() { + return xpathValue; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/LoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/LoginPage.java new file mode 100644 index 0000000..1eba802 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/LoginPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.salesforce.pages; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.salesforce.pages.LoginPage.*; + +@Wait(value = {USERNAME_INPUT, PASSWORD_INPUT, LOGIN_INPUT}, until = Until.VISIBLE) +public interface LoginPage extends WebFlow { + String USERNAME_INPUT = "//input[@id='username']"; + String PASSWORD_INPUT = "//input[@id='password']"; + String LOGIN_INPUT = "//input[@id='Login']"; + + @TypeInto(value = USERNAME_INPUT, clear = true) + @TypeInto(value = PASSWORD_INPUT, clear = true) + @Click(LOGIN_INPUT) + MainPage loginWithUsernameAndPassword(String username, String password); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/MainPage.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/MainPage.java new file mode 100644 index 0000000..0dd6b30 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/MainPage.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.salesforce.pages; + +import cz.moneta.test.dsl.salesforce.components.PageHeader; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.sales_force.SalesForceEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.salesforce.components.PageHeader.HOME_LINK; +import static cz.moneta.test.dsl.salesforce.pages.MainPage.SPINNER_LOGO; + +@Waits(value = { + @Wait(value = SPINNER_LOGO, until = Until.GONE, waitSecondsForElement = 60), + @Wait(value = HOME_LINK, until = Until.VISIBLE, explicitWaitSeconds = 1) +}) +public interface MainPage extends WebFlow, PageHeader, StoreAccessor { + String SPINNER_LOGO = "//div[contains(@class,'auraLoadingBox')]"; + + MainPage onSalesForceMainPage(); + + @TypeInto(value = SEARCH_INPUT, andWait = @Wait(value = SEARCH_AUTOCOMPLETE, until = Until.VISIBLE, explicitWaitSeconds = 1)) + MainPage typeIntoSearchBox(String searchByText); + + @Click(value = SEARCH_AUTOCOMPLETE_ITEM, isStringDynamicXpath = true) + SearchPage selectSearchItem(String itemText); + + @Click(value = USER_PROFILE_LINK, andWait = @Wait(value = USER_PROFILE, until = Until.VISIBLE)) + MainPage clickUserProfile(); + + @GetElementContent(USER_PROFILE) + String getUsername(); + + @CustomAction + default SearchPage searchItem(String item) { + SalesForceEndpoint endpoint = getEndpoint(SalesForceEndpoint.class); + endpoint.click(() -> SEARCH_BUTTON); + endpoint.type(() -> SEARCH_INPUT, item, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/SearchPage.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/SearchPage.java new file mode 100644 index 0000000..5d9710e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/SearchPage.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.salesforce.pages; + +import cz.moneta.test.dsl.salesforce.pages.accounts.AccountDetailPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.sales_force.SalesForceEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.salesforce.pages.SearchPage.SEARCH_RESULTS_HEADER; +import static cz.moneta.test.dsl.salesforce.pages.SearchPage.SEARCH_RESULTS_WINDOW; + +@Wait(value = {SEARCH_RESULTS_HEADER, SEARCH_RESULTS_WINDOW}, until = Until.VISIBLE) +public interface SearchPage extends WebFlow, StoreAccessor { + String SEARCH_RESULTS_HEADER = "//h1[text()='Výsledky hledání']"; + String SEARCH_RESULTS_WINDOW = "//div[contains(@class,'predictedResultsScrollWrapper')]"; + + String ACCOUNTS_DIV = "//div[@class='slds-grid slds-grid_vertical']"; + String ACCOUNT_DETAIL_LINK = ACCOUNTS_DIV + "//td[contains(.,'%s')]/../th/span/a"; + String SEARCH_INPUT = "(//div[@class='forceSearchAssistantDialog']//input)[2]"; + String SEARCH_BUTTON = "//div[contains(@class,'global-header__item_search')]//button"; + + @Click(value = ACCOUNT_DETAIL_LINK, isStringDynamicXpath = true) + AccountDetailPage clickAccountDetail(String account); + + @CustomAction + default AccountDetailPage clickAccountDetailOrTrySearchAgain(String account, Integer timeout) { + SalesForceEndpoint endpoint = getEndpoint(SalesForceEndpoint.class); + endpoint.waitForElementAndRefresh( + String.format(ACCOUNT_DETAIL_LINK, account), + Lookup.XPATH, + () -> { + endpoint.click(() -> SEARCH_BUTTON); + endpoint.type(() -> SEARCH_INPUT, account, true); + endpoint.sendKeysOneAtATime(Key.ENTER); + }, + timeout, + 5 + ); + endpoint.click(() -> String.format(ACCOUNT_DETAIL_LINK, account), Lookup.XPATH); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/accounts/AccountDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/accounts/AccountDetailPage.java new file mode 100644 index 0000000..e330f61 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/accounts/AccountDetailPage.java @@ -0,0 +1,117 @@ +package cz.moneta.test.dsl.salesforce.pages.accounts; + +import cz.moneta.test.dsl.salesforce.components.PageHeader; +import cz.moneta.test.dsl.salesforce.pages.MainPage; +import cz.moneta.test.dsl.salesforce.pages.opportunities.CreateNewOpportunityPage; +import cz.moneta.test.dsl.salesforce.pages.opportunities.OpportunitiesListPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.sales_force.SalesForceEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.salesforce.pages.accounts.AccountDetailPage.ACCOUNT_LOCK_BUTTON; +import static cz.moneta.test.dsl.salesforce.pages.accounts.AccountDetailPage.ACCOUNT_UNLOCK_BUTTON; + +@Wait(value = {ACCOUNT_LOCK_BUTTON, ACCOUNT_UNLOCK_BUTTON}, until = Until.VISIBLE) +public interface AccountDetailPage extends WebFlow, StoreAccessor, PageHeader { + String ACCOUNT_LOCK_BUTTON = "//button[@name='Account.Zamknout_odemcene']"; + String ACCOUNT_UNLOCK_BUTTON = "//button[@name='Account.Unlock']"; + String NEW_OPPORTUNITY_BUTTON = "//button[text()='Nová SME přiležitost']"; + String OPPORTUNITIES_BUTTON = "//div[contains(@class,'active')]//button[contains(@title,'Příležitosti')]/../../a"; + String PRICING_REVIEW_BUTTON = "//runtime_platform_actions-action-renderer[@apiname='pricing_review_button']//button"; + String PRICING_ESS_REVIEW_BUTTON = "//runtime_platform_actions-action-renderer[@apiname='Karta_ESS']//button"; + String MENU_EXPAND_BUTTON = "//runtime_platform_actions-actions-ribbon//button[@class='slds-button slds-button_icon-border-filled']"; + String NOTES_SUMMARY = "//a[text()='Souhrn poznámek']"; + String NOTES_SUMMARY_FRAME = "//*[@id='tab-5']/slot/flexipage-component2/slot/flexipage-aura-wrapper/div/article/div[2]/div/force-aloha-page/div/iframe"; // TODO: change + String NOTES_SUMMARY_ACCOUNT_NAME = "//span[text()='%s']"; + + String ACCOUNT_ID = "//flexipage-tab2//div[./span[text()='IČ']]//following::lightning-formatted-text[text()='%s']"; + String ACCOUNT_LOCKED = "//flexipage-tab2//div[./span[text()='Zamknuto']]//following::lightning-formatted-text[1]"; + String ACCOUNT_OWNER = "//flexipage-tab2//div[./span[text()='Vlastník']]//following::lightning-formatted-text[1]"; + String SELECTION_DIALOG_DIV = "//div[@data-aura-class='forceChatterPublisherPresentationPanel']"; + String OWNER_SELECT = SELECTION_DIALOG_DIV + "//select"; + String OWNER_SELECT_SAVE_BUTTON = SELECTION_DIALOG_DIV + "//button[text()='Save']"; + String OWNER_SELECT_CANCEL_BUTTON = SELECTION_DIALOG_DIV + "//button[text()='Cancel']"; + String CONFIRMATION_DIALOG_TEXT = "//div[@data-aura-class='forceVisualMessageQueue']//span[text()='Úspěšně dokončeno']"; + String ACCOUNT_NAME = "//flexipage-tab2//div[./span[text()='Account Name']]/following-sibling::div//lightning-formatted-text"; + String REMEDIAL = "//div[@data-aura-class='cLockSubjekt' and contains(text(),'remedial')]"; + + AccountDetailPage onAccountDetailPage(); + + @Click(ACCOUNT_LOCK_BUTTON) + AccountDetailPage clickLockAccount(); + + @Select(OWNER_SELECT) + @Click(value = OWNER_SELECT_SAVE_BUTTON, andWait = @Wait(value = CONFIRMATION_DIALOG_TEXT, until = Until.GONE)) + AccountDetailPage selectAndSaveAccountOwner(String owner); + + @Click(value = ACCOUNT_UNLOCK_BUTTON, andWait = @Wait(value = CONFIRMATION_DIALOG_TEXT, until = Until.GONE)) + AccountDetailPage clickUnlockAccount(); + + @Click(NEW_OPPORTUNITY_BUTTON) + CreateNewOpportunityPage clickNewOpportunityButton(); + + @Click(OPPORTUNITIES_BUTTON) + OpportunitiesListPage clickOpportunities(); + + @Click(OWNER_SELECT_CANCEL_BUTTON) + AccountDetailPage cancelDialogWindow(); + + @Click(value = NOTES_SUMMARY, andWait = @Wait(value = NOTES_SUMMARY_FRAME, by = Lookup.XPATH)) + AccountDetailPage clickNotesSummary(); + + @SwitchToFrame(value = NOTES_SUMMARY_FRAME, by = Lookup.XPATH) + AccountDetailPage switchToNoteSummaryFrame(); + + @CheckElementPresent(value = NOTES_SUMMARY_ACCOUNT_NAME, isStringDynamicXpath = true) + AccountDetailPage checkNotesSummaryAccountName(String account); + + @CheckElementPresent(value = REMEDIAL) + AccountDetailPage checkIfSubjectInRemedial(); + + @SwitchToDefaultContent() + AccountDetailPage switchToMainFrame(); + + @CheckElementPresent(value = ACCOUNT_ID, isStringDynamicXpath = true) + AccountDetailPage checkAccountId(String account); + + @Wait(value = ACCOUNT_LOCKED, until = Until.PRESENT_IN_DOM) + @GetElementContent(ACCOUNT_LOCKED) + String getAccountLock(); + + @Wait(value = ACCOUNT_OWNER, until = Until.PRESENT_IN_DOM) + @GetElementContent(ACCOUNT_OWNER) + String getAccountOwner(); + + @Wait(value = ACCOUNT_NAME, until = Until.PRESENT_IN_DOM) + @GetElementContent(ACCOUNT_NAME) + String getAccountName(); + + @CustomAction + default AccountDetailPage refreshPage() { + SalesForceEndpoint endpoint = getEndpoint(SalesForceEndpoint.class); + endpoint.refeshPage(); + return null; + } + + @CustomAction + default MainPage clickPricingReviewAndWaitForDownload() { + SalesForceEndpoint endpoint = getEndpoint(SalesForceEndpoint.class); + String expectedFileName = "KartaKlienta_" + getAccountName().replace(" ", "+") + ".xls"; + log("Starting download of file: {}", expectedFileName); + endpoint.click(() -> PRICING_REVIEW_BUTTON, Lookup.XPATH); + endpoint.checkIfFileExists(expectedFileName, 60); + return null; + } + + @CustomAction + default MainPage clickPricingEssReviewAndWaitForDownload() { + SalesForceEndpoint endpoint = getEndpoint(SalesForceEndpoint.class); +// TODO: check what is the expected filename + String expectedFileName = "KartaKlienta_" + getAccountName().replace(" ", "+") + ".xls"; + log("Starting download of file: {}", expectedFileName); + endpoint.click(() -> PRICING_ESS_REVIEW_BUTTON, Lookup.XPATH); + endpoint.checkIfFileExists(expectedFileName, 60); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/accounts/AccountsListPage.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/accounts/AccountsListPage.java new file mode 100644 index 0000000..389cd05 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/accounts/AccountsListPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.salesforce.pages.accounts; + +import cz.moneta.test.dsl.salesforce.components.ListViewHeader; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.sales_force.SalesForceEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Key; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface AccountsListPage extends WebFlow, ListViewHeader, StoreAccessor { + + @CustomAction + default AccountsListPage searchAccount(String account) { + SalesForceEndpoint endpoint = getEndpoint(SalesForceEndpoint.class); + endpoint.type(() -> ACCOUNT_SEARCH_INPUT, account, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/CreateNewOpportunityPage.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/CreateNewOpportunityPage.java new file mode 100644 index 0000000..edac42a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/CreateNewOpportunityPage.java @@ -0,0 +1,84 @@ +package cz.moneta.test.dsl.salesforce.pages.opportunities; + +import cz.moneta.test.dsl.salesforce.components.PageHeader; +import cz.moneta.test.dsl.salesforce.data.enums.ProductPotential; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.sales_force.SalesForceEndpoint; +import cz.moneta.test.harness.support.web.*; + +import java.util.List; + +@Wait(value = {CreateNewOpportunityPage.CREATE_BUTTON}, until = Until.VISIBLE) +public interface CreateNewOpportunityPage extends WebFlow, PageHeader, StoreAccessor { + String CREATE_BUTTON = "//button[text()='Vytvořit']"; + String NEXT_BUTTON = "//input[@value='Následující']"; + String OPPORTUNITY_INITIATOR_SELECT = "//select[@name='initiated_by']"; + String OPPORTUNITY_CATEGORY_SELECT = "//span[text()='Kategorie příležitosti']/../following-sibling::div/div/select"; + String OPPORTUNITY_SOURCE_SELECT = "//select[contains(@name,'Zdroj_prilezitosti')]"; + String OPPORTUNITY_BRANCH_INPUT = "//label[text()='Obchodní místo']/following-sibling::div/input"; + String OPPORTUNITY_BRANCH_SELECT = "//label[text()='Obchodní místo']/../../../..//lightning-formatted-text"; + String OPPORTUNITY_AMOUNT_INPUT = "//label[text()='Částka']/following-sibling::div/input"; + String OPPORTUNITY_CURRENCY_SELECT = "//span[text()='Měna']/../following-sibling::div/div/select"; + String OPPORTUNITY_SIGNATURE_DATE_INPUT = "//input[contains(@name,'Close_date_input')]"; + String OPPORTUNITY_SIGNATURE_DATE_TODAY_LINK = OPPORTUNITY_SIGNATURE_DATE_INPUT + "//following-sibling::span/a"; + String OPPORTUNITY_PIPELINE_SELECT = "//select[contains(@name,'Stav_v_pipeline_input')]"; + String OPPORTUNITY_PROBABILITY_INPUT = "//label[text()='Pravděpodobnost (%)']/following-sibling::div/input"; + String OPPORTUNITY_DESCRIPTION_TEXTAREA = "//textarea[contains(@name,'Description_input')]"; + String OPPORTUNITY_PRODUCT_POTENTIAL_CHOICE = "//div[@data-value='%s']"; + + CreateNewOpportunityPage onNewOpportunityPage(); + + @Select(OPPORTUNITY_INITIATOR_SELECT) + CreateNewOpportunityPage selectOpportunityInitiator(String initiator); + + @Select(OPPORTUNITY_CATEGORY_SELECT) + CreateNewOpportunityPage selectOpportunityCategory(String category); + + @Select(OPPORTUNITY_SOURCE_SELECT) + CreateNewOpportunityPage selectOpportunitySource(String source); + + @TypeInto(OPPORTUNITY_BRANCH_INPUT) + CreateNewOpportunityPage inputOpportunityBranch(String branch); + + @Click(value = OPPORTUNITY_BRANCH_SELECT) + CreateNewOpportunityPage selectOpportunityBranch(); + + @Select(OPPORTUNITY_PIPELINE_SELECT) + CreateNewOpportunityPage selectOpportunityPipeline(String pipeline); + + @Click(OPPORTUNITY_SIGNATURE_DATE_TODAY_LINK) + CreateNewOpportunityPage clickOportunityTodaysDate(); + + @TypeInto(OPPORTUNITY_SIGNATURE_DATE_INPUT) + CreateNewOpportunityPage fillOpportunitySignatureDate(String date); + + @TypeInto(OPPORTUNITY_AMOUNT_INPUT) + CreateNewOpportunityPage fillOpportunityAmount(int amount); + + @Select(OPPORTUNITY_CURRENCY_SELECT) + CreateNewOpportunityPage selectOpportunityCurrency(String currency); + + @TypeInto(OPPORTUNITY_PROBABILITY_INPUT) + CreateNewOpportunityPage fillOpportunityProbability(int probability); + + @Click(OPPORTUNITY_DESCRIPTION_TEXTAREA) + @TypeInto(OPPORTUNITY_DESCRIPTION_TEXTAREA) + CreateNewOpportunityPage fillOpportunityDescription(String description); + + @CustomAction + default CreateNewOpportunityPage selectProductPotentials(List productPotentialsList) { + SalesForceEndpoint endpoint = getEndpoint(SalesForceEndpoint.class); + productPotentialsList.forEach(productPotential -> { + endpoint.scrollIntoView(String.format(OPPORTUNITY_PRODUCT_POTENTIAL_CHOICE, productPotential.getXpathValue())); + endpoint.click(() -> String.format(OPPORTUNITY_PRODUCT_POTENTIAL_CHOICE, productPotential.getXpathValue())); + }); + return null; + } + + @Click(NEXT_BUTTON) + NewOpportunityConfirmationPage clickNext(); + + @Click(CREATE_BUTTON) + OpportunityDetailPage clickCreate(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/NewOpportunityConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/NewOpportunityConfirmationPage.java new file mode 100644 index 0000000..42636a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/NewOpportunityConfirmationPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.salesforce.pages.opportunities; + +import cz.moneta.test.dsl.salesforce.components.PageHeader; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.salesforce.pages.opportunities.NewOpportunityConfirmationPage.CONFIRMATION_PAGE_TITLE; +import static cz.moneta.test.dsl.salesforce.pages.opportunities.NewOpportunityConfirmationPage.FINISH_BUTTON; + +@Wait(value = {CONFIRMATION_PAGE_TITLE, FINISH_BUTTON}, until = Until.VISIBLE) +public interface NewOpportunityConfirmationPage extends WebFlow, PageHeader, StoreAccessor { + String CONFIRMATION_PAGE_TITLE = "//div/font[contains(text(),'Založili jsme pro Vás příležitost.')]"; + String FINISH_BUTTON = "//td[contains(@class,'pbButtonb')]/input[@value='Dokončit']"; //Tlacitko v zapati + + NewOpportunityConfirmationPage onOpportunityConfirmationPage(); + + @Click(FINISH_BUTTON) + OpportunityDetailPage clickFinishButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/OpportunitiesListPage.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/OpportunitiesListPage.java new file mode 100644 index 0000000..c413718 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/OpportunitiesListPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.salesforce.pages.opportunities; + +import cz.moneta.test.dsl.salesforce.components.ListViewHeader; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.sales_force.SalesForceEndpoint; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {OpportunitiesListPage.NEW_OPPORTUNITY_BUTTON},until = Until.VISIBLE) +public interface OpportunitiesListPage extends WebFlow, ListViewHeader, StoreAccessor { + String NEW_OPPORTUNITY_BUTTON = "//runtime_platform_actions-action-renderer[@title='Nový']//button"; + + @Click(NEW_OPPORTUNITY_BUTTON) + CreateNewOpportunityPage newOpportunity(); + + @CustomAction + default OpportunitiesListPage searchOpportunity(String opportunity) { + SalesForceEndpoint endpoint = getEndpoint(SalesForceEndpoint.class); + endpoint.type(() -> OPPORTUNITY_SEARCH_INPUT, opportunity, false); + endpoint.sendKeysOneAtATime(Key.ENTER); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/OpportunityDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/OpportunityDetailPage.java new file mode 100644 index 0000000..c2482b7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/OpportunityDetailPage.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.salesforce.pages.opportunities; + +import cz.moneta.test.dsl.salesforce.components.PageHeader; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.salesforce.pages.opportunities.OpportunityDetailPage.NEW_EVENT_BUTTON; +import static cz.moneta.test.dsl.salesforce.pages.opportunities.OpportunityDetailPage.PAGE_TITLE; + +@Wait(value = {NEW_EVENT_BUTTON, PAGE_TITLE}, until = Until.VISIBLE) +public interface OpportunityDetailPage extends WebFlow, PageHeader { + String PAGE_TITLE = "//records-entity-label[text()='Příležitost']"; + String NEW_EVENT_BUTTON = "//button[text()='Nová událost']"; + String SALES_BUTTON = "//div[contains(@class,'active')]//button[contains(@title,'Obchody')]/../../a"; + String ACCOUNT_ID = "//p[@title='IČ']//following-sibling::p/slot/lightning-formatted-text[text()='%s']"; + String EVENT_TYPE_SELECT = "//span[text()='Typ']/../following-sibling::div/div/select"; + String EVENT_STATUS_SELECT = "//span[text()='Stav']/../following-sibling::div/div/select"; + String EVENT_BUSINESS_STATUS_SELECT = "//span[text()='Stav podnikání']/../following-sibling::div/div/select"; + String EVENT_DATE = "(//lightning-formatted-date-time)[1]"; + String EVENT_SAVE_BUTTON = "//button[text()='Save']"; + String MODAL_WINDOW = "//div[contains(@class,'uiModal')]"; + + + OpportunityDetailPage onOpportunityDetailPage(); + + @CheckElementPresent(value = ACCOUNT_ID, isStringDynamicXpath = true) + OpportunityDetailPage checkAccountId(String account); + + @Click(NEW_EVENT_BUTTON) + OpportunityDetailPage newEvent(); + + @Click(value = EVENT_SAVE_BUTTON, andWait = @Wait(value = MODAL_WINDOW, until = Until.GONE)) + OpportunityDetailPage saveEvent(); + + @Click(SALES_BUTTON) + SalesListPage clickSales(); + + @Select(EVENT_TYPE_SELECT) + OpportunityDetailPage selectEventType(String eventType); + + @Select(EVENT_STATUS_SELECT) + OpportunityDetailPage selectEventStatus(String eventStatus); + + @Select(EVENT_BUSINESS_STATUS_SELECT) + OpportunityDetailPage selectEventBusinessStatus(String eventBusinessStatus); + + @Click(EVENT_DATE) + OpportunityDetailPage clickEventDate(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/SalesListPage.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/SalesListPage.java new file mode 100644 index 0000000..b0db832 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/pages/opportunities/SalesListPage.java @@ -0,0 +1,51 @@ +package cz.moneta.test.dsl.salesforce.pages.opportunities; + +import cz.moneta.test.dsl.salesforce.components.PageHeader; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.sales_force.SalesForceEndpoint; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = SalesListPage.NEW_SALE_BUTTON, until = Until.VISIBLE) +public interface SalesListPage extends WebFlow, PageHeader, StoreAccessor { + String NEW_SALE_BUTTON = "//button[@name='New']"; + String SALE_NEXT_BUTTON = "//div[@aria-label='Vytvořit Obchod']//span[text()='Další']"; + String SALE_PRODUCT_TYPE_SELECT = "//button[@aria-label='Charakter produktu']"; + String SALE_PRODUCT_TYPE_ITEM = SALE_PRODUCT_TYPE_SELECT + "/../..//span[text()='%s']"; + String SALE_LOAN_TYPE_SELECT = "//button[@aria-label='Typ úvěru']"; + String SALE_LOAN_TYPE_ITEM = SALE_LOAN_TYPE_SELECT + "/../..//span[text()='%s']"; + String SALE_AMOUNT_FIELD = "//input[@name='requested_amount__c']"; + String SALE_SAVE_BUTTON = "//button[@name='SaveEdit']"; + String MODAL_WINDOW = "//div[contains(@class,'uiModal')]"; + + @Click(NEW_SALE_BUTTON) + SalesListPage newSale(); + + @Click(SALE_NEXT_BUTTON) + SalesListPage saleNext(); + + @CustomAction + default SalesListPage selectCharacterProduct(String characterProduct) { + SalesForceEndpoint endpoint = getEndpoint(SalesForceEndpoint.class); + endpoint.click(() -> SALE_PRODUCT_TYPE_SELECT); + endpoint.waitForElementsToLoad(4, Lookup.XPATH, Until.VISIBLE, String.format(SALE_PRODUCT_TYPE_ITEM, characterProduct)); + endpoint.click(() -> String.format(SALE_PRODUCT_TYPE_ITEM, characterProduct)); + return null; + } + + @CustomAction + default SalesListPage selectLoanType(String loanType) { + SalesForceEndpoint endpoint = getEndpoint(SalesForceEndpoint.class); + endpoint.scrollIntoView(SALE_LOAN_TYPE_SELECT, Lookup.XPATH); + endpoint.click(() -> SALE_LOAN_TYPE_SELECT); + endpoint.waitForElementsToLoad(4, Lookup.XPATH, Until.VISIBLE, String.format(SALE_LOAN_TYPE_ITEM, loanType)); + endpoint.click(() -> String.format(SALE_LOAN_TYPE_ITEM, loanType)); + return null; + } + + @TypeInto(SALE_AMOUNT_FIELD) + SalesListPage typeAmount(int amount); + + @Click(value = SALE_SAVE_BUTTON, andWait = @Wait(value = MODAL_WINDOW, until = Until.GONE)) + SalesListPage saveSale(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/tasks/NewOpportunityTasks.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/tasks/NewOpportunityTasks.java new file mode 100644 index 0000000..c5b37ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/tasks/NewOpportunityTasks.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.salesforce.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.data.EventData; +import cz.moneta.test.dsl.salesforce.data.OpportunityData; +import cz.moneta.test.dsl.salesforce.data.SaleData; +import cz.moneta.test.dsl.salesforce.pages.MainPage; +import cz.moneta.test.dsl.salesforce.pages.opportunities.SalesListPage; + +import java.util.function.Function; + +public class NewOpportunityTasks { + private final Harness harness; + + public NewOpportunityTasks(Harness harness) { + this.harness = harness; + } + + public Function newOpportunity(OpportunityData opportunityData, EventData eventData, SaleData saleData) { + return start -> start + .searchItem(opportunityData.getAccount()) + .clickAccountDetailOrTrySearchAgain(opportunityData.getAccount(), 30) + .clickOpportunities() + .newOpportunity() + .selectOpportunityInitiator(opportunityData.getInitiator()) + .selectOpportunityCategory(opportunityData.getCategory()) + .inputOpportunityBranch(opportunityData.getBranch()) + .selectOpportunityBranch() + .fillOpportunityAmount(opportunityData.getAmount()) + .selectOpportunityCurrency(opportunityData.getCurrency()) + .fillOpportunityProbability(opportunityData.getProbability()) + .selectProductPotentials(opportunityData.getProductPotential()) + .clickCreate() + .newEvent() + .selectEventType(eventData.getType()) + .selectEventStatus(eventData.getStatus()) + .selectEventBusinessStatus(eventData.getBusinessStatus()) + .clickEventDate() + .saveEvent() + .clickSales() + .newSale() + .saleNext() + .selectCharacterProduct(saleData.getProductType()) + .selectLoanType(saleData.getLoanType()) + .typeAmount(saleData.getAmount()) + .saveSale(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforce/tasks/SalesForceTasks.java b/tests/src/main/java/cz/moneta/test/dsl/salesforce/tasks/SalesForceTasks.java new file mode 100644 index 0000000..0f44ce4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforce/tasks/SalesForceTasks.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.salesforce.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.pages.LoginPage; +import cz.moneta.test.dsl.salesforce.pages.MainPage; +import cz.moneta.test.dsl.salesforce.pages.accounts.AccountDetailPage; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +public class SalesForceTasks { + private final Harness harness; + + public SalesForceTasks(Harness harness) { + this.harness = harness; + } + + public NewOpportunityTasks newOpportunityTasks() { + return new NewOpportunityTasks(harness); + } + + public Function loginAsBanker() { + Credentials credentials = AuthSupport.getCredentials(Keys.salesForce.banker, harness); + return start -> start.loginWithUsernameAndPassword(credentials.getUsername(), credentials.getPassword()) + .onSalesForceMainPage(); + } + + public Function openAccountDetail(String account) { + return start -> start.searchItem(account) + .clickAccountDetail(account) + .onAccountDetailPage() + .checkAccountId(account); + } + + public Function openNoteSummaryDetail(String account) { + return start -> start.clickNotesSummary() + .switchToNoteSummaryFrame() + .checkNotesSummaryAccountName(account) + .switchToMainFrame(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforceapi/SalesForceApiBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/salesforceapi/SalesForceApiBuilder.java new file mode 100644 index 0000000..e911fe5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforceapi/SalesForceApiBuilder.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.salesforceapi; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.sales_force.SalesForceApiEndpoint; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import jakarta.ws.rs.core.MediaType; + +public class SalesForceApiBuilder { + private final Harness harness; + + public SalesForceApiBuilder(Harness harness) { + this.harness = harness; + } + + public RawRestRequest.Path prepareRequest() { + return RawRestRequest.jsonBuilder(harness.getEndpoint(SalesForceApiEndpoint.class)); + } + + public RawRestRequest.Path prepareRequestUrlEncoded() { + return RawRestRequest.customJsonBuilder(harness.getEndpoint(SalesForceApiEndpoint.class), MediaType.APPLICATION_FORM_URLENCODED); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/salesforceapi/tasks/SalesForceApiTasks.java b/tests/src/main/java/cz/moneta/test/dsl/salesforceapi/tasks/SalesForceApiTasks.java new file mode 100644 index 0000000..2b00bc4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/salesforceapi/tasks/SalesForceApiTasks.java @@ -0,0 +1,78 @@ +package cz.moneta.test.dsl.salesforceapi.tasks; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Assertions; + +public class SalesForceApiTasks { + private final Harness harness; + + public SalesForceApiTasks(Harness harness) { + this.harness = harness; + } + + public String getAuthorizationToken() { + Credentials credsUser = AuthSupport.getCredentials(Keys.salesForce.banker, harness); + Credentials credsId = AuthSupport.getCredentials(Keys.salesForce.clientId, harness); + Credentials credsSecret = AuthSupport.getCredentials(Keys.salesForce.clientSecret, harness); + String requestBody = "grant_type=password" + + "&client_id=" + credsId.getPassword() + + "&client_secret=" + credsSecret.getPassword() + + "&username=" + credsUser.getUsername().replace("@", "%40") + + "&password=" + credsUser.getPassword(); + + RawRestRequest.Response response = harness.withSalesForceApi() + .prepareRequestUrlEncoded() + .withPath("/oauth2/token") + .withHeader("cache-control", "no-cache") + .withHeader("content-type", "application/x-www-form-urlencoded") + .withPayload(requestBody) + .post() + .andAssertStatus(200) + .andAssertPresent("access_token"); + return response.extract("access_token").asText(); + } + + public String getLatestApiVersion() { + RawRestRequest.Response response = harness.withSalesForceApi() + .prepareRequest() + .withPath("/data") + .get() + .andAssertStatus(200); + ArrayNode nodeList = (ArrayNode) response.extract(""); + Assertions.assertNotEquals(nodeList.size(), 0); + JsonNode lastNode = nodeList.get(nodeList.size() - 1); + return lastNode.findValue("version").asText(); + } + + public void lockAccount(String account) { + String token = harness.tasks().salesForceApiTasks().getAuthorizationToken(); + String ownerId = harness.getConfig("salesforce.test.testAutomationUserId"); + + harness.withSalesForceApi() + .prepareRequest() + .withPath(String.format("/data/v51.0/sobjects/Account/%s", account)) + .withHeader("Authorization", "Bearer " + token) + .withPayloadPatch(String.format("{\"locked__c\": \"Ano\", \"OwnerId\": \"%s\"}", ownerId)) + .patch() + .andAssertStatus(204); + } + + public void unlockAccount(String account) { + String token = harness.tasks().salesForceApiTasks().getAuthorizationToken(); + String ownerId = harness.getConfig("salesforce.test.systemUserId"); + + harness.withSalesForceApi() + .prepareRequest() + .withPath(String.format("/data/v51.0/sobjects/Account/%s", account)) + .withHeader("Authorization", "Bearer " + token) + .withPayloadPatch(String.format("{\"locked__c\": \"Ne\", \"OwnerId\": \"%s\"}", ownerId)) + .patch() + .andAssertStatus(204); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/szrmock/SzrMockBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/szrmock/SzrMockBuilder.java new file mode 100644 index 0000000..cd94ed8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/szrmock/SzrMockBuilder.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.szrmock; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.szrmockapi.SzrMockApiEndpoint; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +public class SzrMockBuilder { + + private final Harness harness; + + public SzrMockBuilder(Harness harness) { + this.harness = harness; + } + + public RawRestRequest.Path prepareRequest() { + SzrMockApiEndpoint endpoint = harness.getEndpoint(SzrMockApiEndpoint.class); + return RawRestRequest.jsonBuilder(endpoint); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/szrmock/SzrMockData.java b/tests/src/main/java/cz/moneta/test/dsl/szrmock/SzrMockData.java new file mode 100644 index 0000000..809fa76 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/szrmock/SzrMockData.java @@ -0,0 +1,103 @@ +package cz.moneta.test.dsl.szrmock; +import cz.moneta.test.dsl.util.data.client.NonClient; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Builder +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class SzrMockData { + NonClient client; + @Setter + private String cif; + @Setter + private String szrId; + @Builder.Default + private String busCode = "GEMCB"; + @Builder.Default + private String firstName = "harness testing"; + @Builder.Default + private String lastName = ""; + @Builder.Default + private String birthNumber = ""; + @Builder.Default + private String birthDate = ""; + @Builder.Default + private String notes = ""; + @Builder.Default + private String birthplace = "533718"; + @Builder.Default + private String nationality = "203"; + @Builder.Default + private String idType1 = "ID"; + @Builder.Default + private String idNumber1 = "209373723"; + @Builder.Default + private String idType2 = "P"; + @Builder.Default + private String idNumber2 = "40199969"; + @Builder.Default + private String livingPlaceTf = "true"; + @Builder.Default + private String livingPlaceNumber = "21288534"; + @Builder.Default + private String deathDateTf = ""; + @Builder.Default + private String deathDate = ""; + @Builder.Default + private String dataBoxTf = "true"; + @Builder.Default + private String dataBox = ""; + @Builder.Default + private String citizenShips = "203"; + @Builder.Default + private String gender = "M"; + @Builder.Default + private String givenName = "SUDRA"; + @Builder.Default + private String birthDistrictCode = "3209"; + @Builder.Default + private String birthDistrictName = "Praha-východ"; + @Builder.Default + private String birthDistrictCodeCsu = "CZ0209"; + @Builder.Default + private String birthCityCode = "2614"; + @Builder.Default + private String birthCityName = "Brázdim"; + @Builder.Default + private String birthCityCodeCsu = "538108"; + @Builder.Default + private String birthState = "201"; + @Builder.Default + private String birthStateName = "Česká republika"; + @Builder.Default + private String legalCapacity = "0"; + @Builder.Default + private String issueDate = "2019-04-06"; + @Builder.Default + private String issuer = "Brno"; + @Builder.Default + private String expiryDate1 = ""; + @Builder.Default + private String expirationDate1 = "2025-04-06"; + @Builder.Default + private String expiryDate2 = ""; + @Builder.Default + private String expirationDate2 = "2020-04-06"; + @Builder.Default + private String expirationDateP1 = "2030-04-06"; + @Builder.Default + private String expirationDateP2 = "2021-04-06"; + @Builder.Default + private String expirationDateP3 = "2022-04-06"; + @Builder.Default + private String residenceType = "L"; + @Builder.Default + private String authorizationValidityFrom = "07.11.2022"; + @Builder.Default + private String authorizationValidityTo = "06.11.2024"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/szrmock/SzrMockPayload.java b/tests/src/main/java/cz/moneta/test/dsl/szrmock/SzrMockPayload.java new file mode 100644 index 0000000..0f87bd8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/szrmock/SzrMockPayload.java @@ -0,0 +1,353 @@ +package cz.moneta.test.dsl.szrmock; + +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; + +public class SzrMockPayload { + public String getPayloadE278Slash5(SzrMockData data) { + String birthDate = DateUtils.convertRawDateForWso2(TestUtils.dateFromString(data.getClient().birthDate(), "d.M.yyyy")); + return + "{\n" + + " \"apiName\": \"/api/v1/external/szr/278/robctipodleudaju2\",\n" + + " \"notes\": \"E278/5\",\n" + + " \"request\": {\n" + + " \"birthDate\": \"" + birthDate + "\",\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"firstName\": \"" + data.getClient().firstName() + "\",\n" + + " \"idNumber\": \"" + data.getClient().idCardNumber() + "\",\n" + + " \"idType\": \"" + data.getIdType1() + "\",\n" + + " \"lastName\": \"" + data.getClient().lastName() + "\",\n" + + " \"nationality\": \"" + data.getNationality() + "\"\n" + + " },\n" + + " \"response\": {\n" + + " \"szrId\": \"" + data.getSzrId() + "\",\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"firstName\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getClient().firstName() + "\"\n" + + " },\n" + + " \"lastName\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getClient().lastName() + "\"\n" + + " },\n" + + " \"birthDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + birthDate + "\"\n" + + " },\n" + + " \"ids\": [\n" + + " {\n" + + " \"type\": {\n" + + " \"correct\": true,\n" + + " \"value\": \"" + data.getIdType1() + "\"\n" + + " },\n" + + " \"number\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getClient().idCardNumber() + "\"\n" + + " }\n" + + " },\n" + + " {\n" + + " \"type\": {\n" + + " \"correct\": true,\n" + + " \"value\": \"" + data.getIdType2() + "\"\n" + + " },\n" + + " \"number\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getClient().passportId() + "\"\n" + + " }\n" + + " }\n" + + " ],\n" + + " \"livingPlace\": {\n" + + " \"correct\": \"" + data.getLivingPlaceTf() + "\",\n" + + " \"value\": \"" + data.getLivingPlaceNumber() + "\"\n" + + " },\n" + + " \"birthPlace\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getBirthplace() + "\"\n" + + " },\n" + + " \"citizenships\": [\n" + + " {\n" + + " \"correct\": true,\n" + + " \"value\": \"" + data.getCitizenShips() + "\"\n" + + " }\n" + + " ],\n" + + " \"dataBox\": {\n" + + " \"correct\": \"" + data.getDataBoxTf() + "\",\n" + + " \"value\": \"" + data.getDataBox() + "\"\n" + + " },\n" + + " \"deathDate\": {\n" + + " \"correct\": \"" + data.getDeathDateTf() + "\",\n" + + " \"value\": \"" + data.getDeathDate() + "\"\n" + + " },\n" + + " \"subscriptionState\": {\n" + + " \"correct\": \"\",\n" + + " \"value\": \"\"\n" + + " },\n" + + " \"alreadyExists\": \"true\"\n" + + " }\n" + + "}"; + } + + public String getPayloadE171(SzrMockData data) { + return + "{\n" + + " \"apiName\": \"/api/v1/external/szr/171/aiseoctiaifo2\",\n" + + " \"notes\": \"Chovy E171\",\n" + + " \"request\": {\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"szrId\": \"" + data.getSzrId() + "\"\n" + + " },\n" + + " \"response\": {\n" + + " \"szrId\": \"" + data.getSzrId() + "\",\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"givenName\": \"" + data.getGivenName() + "\",\n" + + " \"gender\": \"" + data.getGender() + "\",\n" + + " \"birthDistrict\": {\n" + + " \"birthDistrictCode\": \"" + data.getBirthDistrictCode() + "\",\n" + + " \"birthDistrictName\": \"" + data.getBirthDistrictName() + "\",\n" + + " \"birthDistrictCodeCsu\": \"" + data.getBirthDistrictCodeCsu() + "\"\n" + + " },\n" + + " \"birthCity\": {\n" + + " \"birthCityCode\": \"" + data.getBirthCityCode() + "\",\n" + + " \"birthCityName\": \"" + data.getBirthCityName() + "\",\n" + + " \"birthCityCodeCsu\": \"" + data.getBirthCityCodeCsu() + "\"\n" + + " },\n" + + " \"birthState\": {\n" + + " \"birthStateCode\": \"" + data.getBirthState() + "\",\n" + + " \"birthStateName\": \"" + data.getBirthStateName() + "\",\n" + + " \"birthStateCodeCsu\": \"" + data.getNationality() + "\"\n" + + " },\n" + + " \"birthNumber\": \"" + data.getClient().birthNumber() + "\",\n" + + " \"legalCapacity\": \"" + data.getLegalCapacity() + "\",\n" + + " \"deathDateOfficial\": \"\"\n" + + " }\n" + + "}"; + } + + public String getPayloadE173(SzrMockData data) { + return + "{\n" + + " \"apiName\": \"/api/v1/external/szr/173/aiscctiaifo2\",\n" + + " \"notes\": \"" + data.getNotes() + "\",\n" + + " \"request\": {\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"szrId\": \"" + data.getSzrId() + "\"\n" + + " },\n" + + " \"response\": {\n" + + " \"authorizationValidityFrom\": \"" + data.getAuthorizationValidityFrom() + "\",\n" + + " \"authorizationValidityNumber\": \"" + data.getClient().idCardNumber() + "\",\n" + + " \"authorizationValidityTo\": \"" + data.getAuthorizationValidityTo() + "\",\n" + + " \"birthCity\": {\n" + + " \"birthCityCode\": \"\",\n" + + " \"birthCityCodeCsu\": \"\",\n" + + " \"birthCityName\": \"" + data.getBirthplace() + "\"\n" + + " },\n" + + " \"birthDate\": \"\",\n" + + " \"birthNumber\": \"" + data.getClient().birthNumber() + "\",\n" + + " \"birthState\": {\n" + + " \"birthStateCode\": \"" + data.getCitizenShips() + "\",\n" + + " \"birthStateCodeCsu\": \"" + data.getCitizenShips() + "\",\n" + + " \"birthStateName\": \"" + data.getBirthStateName() + "\"\n" + + " },\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"deathDate\": \"\",\n" + + " \"firstName\": \"" + data.getClient().firstName() + "\",\n" + + " \"gender\": \"" + data.getGender() + "\",\n" + + " \"lastName\": \"" + data.getClient().lastName() + "\",\n" + + " \"legalCapacity\": \"" + data.getLegalCapacity() + "\",\n" + + " \"otherNames\": \"\",\n" + + " \"residenceType\": \"" + data.getResidenceType() + "\",\n" + + " \"szrId\": \"" + data.getSzrId() + "\"\n" + + " }\n" + + "}"; + } + + public String getPayloadE188(SzrMockData data) { + return + "{\n" + + " \"apiName\": \"/api/v1/external/szr/188/eopctiaifo\",\n" + + " \"notes\": \"Poznamka\",\n" + + " \"request\": {\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"szrId\": \"" + data.getSzrId() + "\"\n" + + " },\n" + + " \"response\": {\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"szrId\": \"" + data.getSzrId() + "\",\n" + + " \"ids\": [\n" + + " {\n" + + " \"type\": {\n" + + " \"correct\": true,\n" + + " \"value\": \"" + data.getIdType1() + "\"\n" + + " },\n" + + " \"status\": \"\",\n" + + " \"expiryDate\": \"" + data.getExpiryDate1() + "\",\n" + + " \"number\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getClient().idCardNumber() + "\"\n" + + " },\n" + + " \"issuer\": \"" + data.getIssuer() + "\",\n" + + " \"issueDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getIssueDate() + "\"\n" + + " },\n" + + " \"expirationDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + DateUtils.convertRawDateForWso2(data.getClient().idCardExpiredRaw()) + "\"\n" + + " }\n" + + " },\n" + + " {\n" + + " \"type\": {\n" + + " \"correct\": true,\n" + + " \"value\": \"" + data.getIdType2() + "\"\n" + + " },\n" + + " \"status\": \"\",\n" + + " \"expiryDate\": \"" + data.getExpiryDate2() + "\",\n" + + " \"number\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"222000000\"\n" + + " },\n" + + " \"issuer\": \"" + data.getIssuer() + "\",\n" + + " \"issueDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getIssueDate() + "\"\n" + + " },\n" + + " \"expirationDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + DateUtils.convertRawDateForWso2(data.getClient().passportExpiryDateRaw()) + "\"\n" + + " }\n" + + " }\n" + + " ]\n" + + " }\n" + + "}"; + } + + public String getPayloadE189(SzrMockData data) { + return + "{\n" + + " \"apiName\": \"/api/v1/external/szr/189/ecdctiaifo\",\n" + + " \"notes\": \"Poznamka\",\n" + + " \"request\": {\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"szrId\": \"" + data.getSzrId() + "\"\n" + + " },\n" + + " \"response\": {\n" + + " \"szrId\": \"" + data.getSzrId() + "\",\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"fds\": [\n" + + " {\n" + + " \"type\": {\n" + + " \"correct\": true,\n" + + " \"value\": \"Cestovní pas\"\n" + + " },\n" + + " \"number\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getClient().passportId() + "\"\n" + + " },\n" + + " \"issuer\": \"" + data.getIssuer() + "\",\n" + + " \"issueDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getIssueDate() + "\"\n" + + " },\n" + + " \"expirationDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getExpirationDateP1() + "\"\n" + + " }\n" + + " },\n" + + " {\n" + + " \"type\": {\n" + + " \"correct\": true,\n" + + " \"value\": \"Cestovní průkaz\"\n" + + " },\n" + + " \"number\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"1241000\"\n" + + " },\n" + + " \"issuer\": \"\",\n" + + " \"issueDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"2019-03-01\"\n" + + " },\n" + + " \"expirationDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getExpirationDateP2() + "\"\n" + + " }\n" + + " },\n" + + " {\n" + + " \"type\": {\n" + + " \"correct\": true,\n" + + " \"value\": \"Cestovní pas\"\n" + + " },\n" + + " \"number\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getClient().passportId() + "\"\n" + + " },\n" + + " \"issuer\": \"Říčany\",\n" + + " \"issueDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"2016-04-04\"\n" + + " },\n" + + " \"expirationDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"" + data.getExpirationDateP3() + "\"\n" + + " }\n" + + " },\n" + + " {\n" + + " \"type\": {\n" + + " \"correct\": true,\n" + + " \"value\": \"Cestovní pas\"\n" + + " },\n" + + " \"number\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"34545454\"\n" + + " },\n" + + " \"issuer\": \"Blovice\",\n" + + " \"issueDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"2015-01-01\"\n" + + " },\n" + + " \"expirationDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"2021-01-01\"\n" + + " }\n" + + " },\n" + + " {\n" + + " \"type\": {\n" + + " \"correct\": true,\n" + + " \"value\": \"Cestovní pas\"\n" + + " },\n" + + " \"number\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"8898989\"\n" + + " },\n" + + " \"issuer\": \"Česká Třebová\",\n" + + " \"issueDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"2002-01-01\"\n" + + " },\n" + + " \"expirationDate\": {\n" + + " \"correct\": \"true\",\n" + + " \"value\": \"2020-01-01\"\n" + + " }\n" + + " }\n" + + " ]\n" + + " }\n" + + "}"; + } + + public String getPayloadE45(SzrMockData data) { + return + "{\n" + + " \"apiName\": \"/api/v1/external/szr/45/orgprihlasaifo\",\n" + + " \"notes\": \"Chovy E45\",\n" + + " \"request\": {\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"szrId\": \"" + data.getSzrId() + "\"\n" + + " },\n" + + " \"response\": {\n" + + " \"szrId\": \"" + data.getSzrId() + "\",\n" + + " \"busCode\": \"" + data.getBusCode() + "\",\n" + + " \"status\": \"OK\"\n" + + " }\n" + + "}"; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/testautomationpage/TestAutomationPage.java b/tests/src/main/java/cz/moneta/test/dsl/testautomationpage/TestAutomationPage.java new file mode 100644 index 0000000..68619c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/testautomationpage/TestAutomationPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.testautomationpage; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.testautomationpage.TestAutomationPageEndpoint; +import cz.moneta.test.harness.support.web.Builders; + +public class TestAutomationPage { + private Harness harness; + + public TestAutomationPage(Harness harness) { + this.harness = harness; + } + + public TestAutomationPageHome openHomePage() { + TestAutomationPageEndpoint endpoint = harness.getEndpoint(TestAutomationPageEndpoint.class); + endpoint.openApplication(); + return Builders.newWebFlowBuilder(TestAutomationPageHome.class, endpoint, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/testautomationpage/TestAutomationPageHome.java b/tests/src/main/java/cz/moneta/test/dsl/testautomationpage/TestAutomationPageHome.java new file mode 100644 index 0000000..c98e9fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/testautomationpage/TestAutomationPageHome.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.testautomationpage; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.testautomationpage.TestAutomationPageEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.testautomationpage.TestAutomationPageHome.MAIN_TITLE; + +@Wait(MAIN_TITLE) +public interface TestAutomationPageHome extends WebFlow, StoreAccessor { + String MAIN_TITLE = "//h1[@id='mainTitle']"; + String COMBOBOX = "//select[@id='combobox']"; + String TEXTFIELD = "//input[@id='textfield']"; + String CHECKBOX = "//input[@id='checkbox']"; + String SUBMIT_BUTTON = "//input[@value='Test button']"; + String STORE_KEY = "TEST_AUTOMATION_PAGE_KEY"; + + @AcceptAlert(waitSecondsForAlert = 10, expectedAlertText = "Test alert") + TestAutomationPageHome acceptAlert(); + + @Click(CHECKBOX) + TestAutomationPageHome checkCheckbox(); + + @Click(SUBMIT_BUTTON) + TestAutomationPageHome clickSubmitButton(); + + @CustomAction + default TestAutomationPageHome customAction() { + TestAutomationPageEndpoint endpoint = getEndpoint(TestAutomationPageEndpoint.class); + endpoint.sleepSeconds(1); + endpoint.scrollIntoView(SUBMIT_BUTTON); + return null; + } + + @DismissAlert(waitSecondsForAlert = 10, expectedAlertText = "Test alert") + TestAutomationPageHome dismissAlert(); + + @ExecuteJavaScript("alert('Test alert');") + TestAutomationPageHome executeJavaScript(); + + @CheckElementContent(MAIN_TITLE) + TestAutomationPageHome checkElementContent(String content); + + @CheckElementPresent(COMBOBOX) + TestAutomationPageHome checkElementPresent(); + + @KeyPress(Key.TAB) + TestAutomationPageHome keyPressTab(); + + @Log(value = MAIN_TITLE, template = "Header of page is: {}") + TestAutomationPageHome log(); + + @Select(COMBOBOX) + TestAutomationPageHome selectCombobox(String input); + + @StoreElementContent(storeKey = STORE_KEY, value = MAIN_TITLE) + TestAutomationPageHome storeElementContent(); + + @TypeInto(TEXTFIELD) + TestAutomationPageHome typeIntoTextfield(String input); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/AccountMovements.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/AccountMovements.java new file mode 100644 index 0000000..9d613b2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/AccountMovements.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.dsl.util.PollingUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import org.jooq.Record; +import org.jooq.Result; + +public class AccountMovements { + private final StoreAccessor harness; + + private final String ACCOUNT_MOVEMENTS = "SELECT * FROM ACCOUNTMOVEMENTS \n" + + "WHERE ACCOUNTID " + + "LIKE '%%%s' " + + "AND PARTNERACCNUM " + + "LIKE '%%%s' " + + " AND TRANSACTIONID IS NOT NULL " + + "ORDER BY TRANSACTIONID DESC " + + "FETCH FIRST ROW ONLY"; + + public AccountMovements(StoreAccessor harness) { + this.harness = harness; + } + + private Result executeSqlAccountMovements(String... args) { + return harness.getEndpoint(UdebsEndpoint.class) + .executeSql(String.format(ACCOUNT_MOVEMENTS, args)); + } + + public double getAmountLastAccountMovement(long waitForResponseInSeconds, String fromAccount, String toAccount, String expectedAmount) { + String amount = PollingUtils.waitForExpectedResultForSeconds(expectedAmount, waitForResponseInSeconds, + () -> executeSqlAccountMovements(fromAccount, toAccount) + .getValues("AMOUNT") + .get(0) + .toString()); + + return Double.valueOf(amount); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/ClientPaymentsLimitsBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/ClientPaymentsLimitsBuilder.java new file mode 100644 index 0000000..ec2d071 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/ClientPaymentsLimitsBuilder.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import org.jooq.Record; +import org.jooq.Result; + +public class ClientPaymentsLimitsBuilder { + + private final StoreAccessor harness; + private String LIMITS_SQL = "SELECT B.LIMITAMOUNT LIMIT FROM \n" + + "CLIENTRIGHTPROFILES C, \n" + + "CLIENTPROFILEPAYMENTLIMITS B, \n" + + "PAYMENTLIMITCHANNEL A, \n" + + "CLIENTCHANNELPROFILES D \n" + + "WHERE C.RIGHTPROFILEID = B.RIGHTPROFILEID \n" + + "AND B.PAYMENTLIMITID = A.PAYMENTLIMITID \n" + + "AND D.CLIENTID = C.CLIENTID \n" + + "AND C.CLIENTID IN (SELECT CLI.CLIENTID FROM CLIENTHOSTALLOCATION CLI \n" + + "WHERE SUBSTR(CLI.HOSTCLIENTID,4,10) = '%s') \n" + + "AND D.CHANNELID = 23 \n" + + "AND A.CHANNELID = 23"; + + public ClientPaymentsLimitsBuilder(StoreAccessor harness) { + this.harness = harness; + } + + public Result getLimitsAmount(String cif) { + return harness.getEndpoint(UdebsEndpoint.class).executeSql(String.format(LIMITS_SQL, cif)); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/CustomerRef.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/CustomerRef.java new file mode 100644 index 0000000..b85beb4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/CustomerRef.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.udebs; + +public class CustomerRef { + + private String login; + + private String password; + + public CustomerRef(String login) { + this.login = login; + } + + public String getLogin() { + return login; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/FromWPsd2TokensBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/FromWPsd2TokensBuilder.java new file mode 100644 index 0000000..323b44b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/FromWPsd2TokensBuilder.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import org.jooq.Record; +import org.jooq.Result; + +public class FromWPsd2TokensBuilder { + private final StoreAccessor harness; + + public FromWPsd2TokensBuilder(StoreAccessor harness) { + this.harness = harness; + } + + public Result selectFromW_psd2_tokens(String token) { + return harness.getEndpoint(UdebsEndpoint.class) + .executeSql("SELECT PACKAGEID FROM W_PSD2_TOKENS WHERE " + + "TOKEN = '" + token + "' " ); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/PaymentOrder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/PaymentOrder.java new file mode 100644 index 0000000..b4c3a37 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/PaymentOrder.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import org.jooq.Record; +import org.jooq.Result; + +import java.util.concurrent.TimeUnit; + +public class PaymentOrder { + private final StoreAccessor harness; + + private String PAYMENT_ORDERS_DOMESTIC = "SELECT * FROM PAYMENTORDERSDOMESTIC \n" + + "WHERE DEBITACCOUNTID LIKE '%%%s' " + + "ORDER BY PACKAGEID DESC"; + + private String FOREIGN_PAYMENT_ORDERS = "SELECT * FROM PAYMENTORDERSFOREIGN \n" + + "WHERE DEBITACCOUNTID='%s' " + + "ORDER BY PACKAGEID DESC"; + + public PaymentOrder(StoreAccessor harness) { + this.harness = harness; + } + + private Result executeSqlPaymentOrdersDomestic(String sqlQuery, String... args) { + return harness.getEndpoint(UdebsEndpoint.class) + .executeSql(String.format(sqlQuery, args)); + } + + private Result executeSqlPaymentOrdersForeign(String sqlQuery, String... args) { + return harness.getEndpoint(UdebsEndpoint.class) + .executeSql(String.format(sqlQuery, args)); + } + + public String getAmountOfLastPaymentOrderDomestic(long waitForResponseInSeconds, String accountId) { + try { + TimeUnit.SECONDS.sleep(waitForResponseInSeconds); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + } + return executeSqlPaymentOrdersDomestic(PAYMENT_ORDERS_DOMESTIC, accountId) + .getValues("AMOUNT") + .get(0) + .toString() + .replace(".", ","); + } + + public double getAmountOfLastForeignPaymentOrder(long waitForResponseInSeconds, String accountId) { + try { + TimeUnit.SECONDS.sleep(waitForResponseInSeconds); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + } + String amount = executeSqlPaymentOrdersForeign(FOREIGN_PAYMENT_ORDERS, accountId) + .getValues("AMOUNT") + .get(0) + .toString(); + + return Double.valueOf(amount); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/PhoneBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/PhoneBuilder.java new file mode 100644 index 0000000..9ad1610 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/PhoneBuilder.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; + +import java.util.Optional; + +public class PhoneBuilder { + private final StoreAccessor harness; + + private static final String IS_CONTACT_PHONE_EXISTS = " SELECT" + + " CONTACTGSM, CONTACTPHONE, CONTACTFAX" + + " FROM" + + " users" + + " WHERE" + + " '420%s'" + + " IN(CONTACTGSM, CONTACTPHONE, CONTACTFAX)"; + + public PhoneBuilder(StoreAccessor harness) { + this.harness = harness; + } + + public boolean existPhone(String phoneNumber) { + String sqlQuery = String.format(IS_CONTACT_PHONE_EXISTS, phoneNumber); + + return Optional.of(harness.getEndpoint(UdebsEndpoint.class)) + .map(e -> e.executeSql(sqlQuery)) + .filter(rs -> rs.isNotEmpty()) + .isPresent(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/ThirdPartyBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/ThirdPartyBuilder.java new file mode 100644 index 0000000..831b403 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/ThirdPartyBuilder.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import org.jooq.Record; +import org.jooq.Result; + +public class ThirdPartyBuilder { + + private final StoreAccessor harness; + + private String THIRD_PARTY_RIGHTS = "SELECT \n" + + "TPR.THIRD_PARTY_CODE THIRD_PARTY_CODE,\n" + + "TPR.ACTIVE_FROM ACTIVE_FROM,\n" + + "TPR.ACTIVE_TO ACTIVE_TO,\n" + + "SUBSTR(CLI.HOSTCLIENTID,4,10)CIF \n" + + "FROM UDEBSGE.THIRD_PARTY_RIGHTS TPR, CLIENTHOSTALLOCATION CLI\n" + + "WHERE TPR.CLIENTID = CLI.CLIENTID\n" + + "AND TPR.ACCOUNTID = '%s'" + + "ORDER BY TPR.RELATIONID DESC"; + + public ThirdPartyBuilder(StoreAccessor harness) { + this.harness = harness; + } + + public Result getThirdPartyRights(String accountNumber) { + return harness.getEndpoint(UdebsEndpoint.class).executeSql(String.format(THIRD_PARTY_RIGHTS, accountNumber)); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/TransactionForKycBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/TransactionForKycBuilder.java new file mode 100644 index 0000000..5ff2d94 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/TransactionForKycBuilder.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import org.jooq.Record; +import org.jooq.Result; + +public class TransactionForKycBuilder { + private final StoreAccessor harness; + + public TransactionForKycBuilder(StoreAccessor harness) { + this.harness = harness; + } + + public Result getTransaction(String dateFrom, String dateTo, String clientId, String state) { + return harness.getEndpoint(UdebsEndpoint.class).executeSql( + "SELECT \n" + + "P.OPERID,P.CHANNELID,P.STATUSID,UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(T.RAWDATA,3200,1)) AS DATA \n" + + "FROM \n" + + "W_CLIENTTRANSACTIONPACKAGES P, UDEBSGE.W_TRANSACTIONS T \n" + + "WHERE P.PACKAGEID BETWEEN GE_SEQ.GET_PACKAGEID('" + dateFrom + "') \n" + + "AND GE_SEQ.GET_PACKAGEID('" + dateTo + "') \n" + + "AND P.PACKAGEID = T.PACKAGEID(+) \n" + + "AND P.CLIENTID = " + clientId + "\n" + + "AND UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(T.RAWDATA,3200,1)) LIKE '%" + state + "%'"); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/TransactionStatusBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/TransactionStatusBuilder.java new file mode 100644 index 0000000..1503107 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/TransactionStatusBuilder.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import cz.moneta.test.harness.exception.HarnessException; + +import java.util.Optional; + +public class TransactionStatusBuilder { + + private static final String SET_STATUS_TO_51 = + "BEGIN " + + " geutils.API_GECON.SetStatusTo51( " + + " inList => '%s', " + + " inGecUser => '%s' ); " + + "END;"; + + private final StoreAccessor harness; + + public TransactionStatusBuilder(StoreAccessor harness) { + this.harness = harness; + } + + public void setStatusTo51(String packageIdList, String userId) { + Optional.of(harness.getEndpoint(UdebsEndpoint.class)) + .map(e -> e.executeSql(String.format(SET_STATUS_TO_51, packageIdList, userId))) + .orElseThrow(() -> new HarnessException("Error: I couldn't set transaction status to 51")); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/TransactionsClient.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/TransactionsClient.java new file mode 100644 index 0000000..9ac9aad --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/TransactionsClient.java @@ -0,0 +1,119 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.dsl.util.PollingUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import org.jooq.Record; +import org.jooq.Result; + +import java.util.concurrent.TimeUnit; + +public class TransactionsClient { + private final StoreAccessor harness; + + public TransactionsClient(StoreAccessor harness) { + this.harness = harness; + } + + private static final String FIRST_TRANSACTION_IN_CLIENTTRANSACTIONPACKAGES = "SELECT * FROM CLIENTTRANSACTIONPACKAGES " + + "WHERE CLIENTID='%s' " + + "AND OPERID='%s' " + + "AND CHANNELID='%s' " + + "ORDER BY BORNDATE DESC, PACKAGEID DESC " + + "FETCH FIRST ROW ONLY"; + + private static final String FIRST_TRANSACTION_BETWEEN_TIME = "SELECT * FROM CLIENTTRANSACTIONPACKAGES " + + "WHERE CLIENTID='%s' " + + "AND OPERID='%s' " + + "AND CHANNELID='%s' " + + "AND BORNDATE BETWEEN TO_DATE('%s', 'dd.MM.rrrr hh24:mi:ss') AND TO_DATE('%s', 'dd.MM.rrrr hh24:mi:ss') " + + "ORDER BY BORNDATE DESC, PACKAGEID DESC " + + "FETCH FIRST ROW ONLY"; + + private static final String TRANSACTIONS_FROM_TIME = "SELECT * FROM CLIENTTRANSACTIONPACKAGES " + + "WHERE CLIENTID='%s' " + + "AND OPERID='%s' " + + "AND CHANNELID='%s' " + + "AND BORNDATE >= TO_DATE('%s', 'dd.MM.rrrr hh24:mi:ss') " + + "ORDER BY BORNDATE DESC, PACKAGEID DESC"; + + private static final String NUMBER_OF_TRANSACTIONS_CREATED_DOCUMENTS = "SELECT * FROM CLIENTTRANSACTIONPACKAGES " + + "WHERE CLIENTID='%s' " + + "AND OPERID='%s' " + + "AND CHANNELID='%s' " + + "AND STATUSID='60' " + + "AND BORNDATE >= TO_DATE('%s', 'dd.MM.rrrr hh24:mi:ss') " + + "ORDER BY BORNDATE DESC, PACKAGEID DESC"; + + private static final String ACCOUNT_BALANCE = "SELECT BALANCE FROM accountbalances where BALTYPEID=50 and ACCOUNTID=%s"; + + private Result executeSql(String sqlQuery, String... args) { + return harness.getEndpoint(UdebsEndpoint.class) + .executeSql(String.format(sqlQuery, args)); + } + + private String delayToGetStatusId(String sqlQuery, long waitForResponseInSeconds, String... args) { + try { + TimeUnit.SECONDS.sleep(waitForResponseInSeconds); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + } + return executeSql(sqlQuery, args) + .getValues("STATUSID") + .get(0) + .toString(); + } + + private int getNumberOfDocumentsTransactions(String sqlQuery, long waitForResponseInSeconds, String clientId, String operId, String channelId, String fromDateTime) { + try { + TimeUnit.SECONDS.sleep(waitForResponseInSeconds); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + } + return executeSql(sqlQuery, clientId, operId, channelId, fromDateTime) + .size(); + } + + public String getLastTransactionStatus(String clientId, String operId, String channelId, + long waitForResponseInSeconds, String expectedStatus) { + return PollingUtils.waitForExpectedResultForSeconds(expectedStatus, waitForResponseInSeconds, + () -> delayToGetStatusId(FIRST_TRANSACTION_IN_CLIENTTRANSACTIONPACKAGES, waitForResponseInSeconds, + clientId, operId, channelId)); + } + + //fromDateTime and toDateTime must have format - dd.MM.rrrr hh24:mi:ss + public String getLastTransactionStatus(String clientId, String operId, String channelId, String fromDateTime, + String toDateTime, long waitForResponseInSeconds, String expectedStatus) { + return PollingUtils.waitForExpectedResultForSeconds(expectedStatus, waitForResponseInSeconds, + () -> delayToGetStatusId(FIRST_TRANSACTION_BETWEEN_TIME, waitForResponseInSeconds, + clientId, operId, channelId, fromDateTime, toDateTime)); + } + + //fromDateTime must have format - dd.MM.rrrr hh24:mi:ss + public String getLastTransactionStatus(String clientId, String operId, String channelId, + long waitForResponseInSeconds, String fromDateTime, String expectedStatus) { + return PollingUtils.waitForExpectedResultForSeconds(expectedStatus, waitForResponseInSeconds, + () -> delayToGetStatusId(FIRST_TRANSACTION_IN_CLIENTTRANSACTIONPACKAGES, waitForResponseInSeconds, + clientId, operId, channelId, fromDateTime)); + } + + //fromDateTime must have format - dd.MM.rrrr hh24:mi:ss + public int delayAndGetNumberOfTransactionsCreatedDocuments(String clientId, String operId, String channelId, String fromDateTime, long waitForResponseInSeconds) { + return getNumberOfDocumentsTransactions(NUMBER_OF_TRANSACTIONS_CREATED_DOCUMENTS, waitForResponseInSeconds, clientId, operId, channelId, fromDateTime); + } + + public Result getAccountBalance(String account) { + String sqlQuery = String.format(ACCOUNT_BALANCE, account); + return harness.getEndpoint(UdebsEndpoint.class).executeSql(sqlQuery); + } + + public String getLastTransactionPackageId(String clientId, String operId, String channelId, + long waitForResponseInSeconds) { + return harness.getEndpoint(UdebsEndpoint.class) + .executeSql(String.format(FIRST_TRANSACTION_IN_CLIENTTRANSACTIONPACKAGES, + clientId, operId, channelId, waitForResponseInSeconds)) + .getValues("PACKAGEID") + .get(0) + .toString(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/Udebs.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/Udebs.java new file mode 100644 index 0000000..225e6fb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/Udebs.java @@ -0,0 +1,71 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.dsl.udebs.ib.AccountNumbers; +import cz.moneta.test.dsl.udebs.ib.IbBuilder; +import cz.moneta.test.dsl.udebs.smeonboarding.SmsKeyBuilder; +import cz.moneta.test.harness.context.StoreAccessor; + +public class Udebs { + + private final StoreAccessor harness; + + public Udebs(StoreAccessor harness) { + this.harness = harness; + } + + public FromWPsd2TokensBuilder fromWPsd2Tokens() { + return new FromWPsd2TokensBuilder(harness); + } + + public ClientPaymentsLimitsBuilder clientPaymentsLimits() { + return new ClientPaymentsLimitsBuilder(harness); + } + + public ThirdPartyBuilder thirdParty() { + return new ThirdPartyBuilder(harness); + } + + public IbBuilder ib() { + return new IbBuilder(harness); + } + + public TransactionForKycBuilder transactionForKyc() { + return new TransactionForKycBuilder(harness); + } + + public PhoneBuilder phone() { + return new PhoneBuilder(harness); + } + + public UserStatusToIdentityBuilder userStatusToIdentity() { + return new UserStatusToIdentityBuilder(harness); + } + + public SmsKeyBuilder smsKeyBuilder() { + return new SmsKeyBuilder(harness); + } + + public AccountNumbers accountNumbers() { + return new AccountNumbers(harness); + } + + public TransactionsClient transactionsClient() { + return new TransactionsClient(harness); + } + + public PaymentOrder paymentOrder() { + return new PaymentOrder(harness); + } + + public UsersTable usersTable() { + return new UsersTable(harness); + } + + public AccountMovements accountMovements() { + return new AccountMovements(harness); + } + + public TransactionStatusBuilder setTransactionStatus() { + return new TransactionStatusBuilder(harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/UserStatusToIdentityBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/UserStatusToIdentityBuilder.java new file mode 100644 index 0000000..beca0d0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/UserStatusToIdentityBuilder.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import cz.moneta.test.harness.exception.HarnessException; + +import java.util.Optional; + +public class UserStatusToIdentityBuilder { + + private static final String SET_USER_TO_IDENTITY = + "DECLARE" + + " on_UserLoginId number;" + + " on_DigitalContextId number;" + + " BEGIN" + + " on_UserLoginId := 0;" + + " on_DigitalContextId := 0;" + + " UDEBSGE.EM_ADMIN_CONTEXTS.Set_UserLoginsToContext(" + + " in_userloginid => %s, " + + " in_digitalcontextid => %s, " + + " in_entitystatusid => 345 , " + + " id_validityfrom => sysdate, " + + " id_closedate => null, " + + " on_UserLoginId => on_UserLoginId," + + " on_DigitalContextId => on_DigitalContextId);" + + " dbms_output.put_line('on_DigitalContextId: ' || on_DigitalContextId);" + + " END; "; + + private final StoreAccessor harness; + + public UserStatusToIdentityBuilder(StoreAccessor harness) { + this.harness = harness; + } + + public void setStatus(String userLoginId, String digitalContextId) { + Optional.of(harness.getEndpoint(UdebsEndpoint.class)) + .map(e -> e.executeSql(String.format(SET_USER_TO_IDENTITY, userLoginId, digitalContextId))) + .orElseThrow(() -> new HarnessException("Error I couldn't set user status to identity")); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/UsersTable.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/UsersTable.java new file mode 100644 index 0000000..8a52033 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/UsersTable.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.udebs; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; + +public class UsersTable { + private final StoreAccessor harness; + + private final String CLIENTID_USERS = "SELECT CLIENTID FROM USERS WHERE RC_NUMBER='%s'"; + + private final String USERID_USERS = "SELECT USERID FROM USERS WHERE RC_NUMBER='%s'"; + + public UsersTable(StoreAccessor harness) { + this.harness = harness; + } + + public String getClientId(String birthNumber) { + return harness.getEndpoint(UdebsEndpoint.class) + .executeSql(String.format(CLIENTID_USERS, birthNumber)) + .getValues("CLIENTID") + .get(0) + .toString(); + } + + public String getUserId(String birthNumber) { + return harness.getEndpoint(UdebsEndpoint.class) + .executeSql(String.format(USERID_USERS, birthNumber)) + .getValues("USERID") + .get(0) + .toString(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/AccountNumbers.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/AccountNumbers.java new file mode 100644 index 0000000..b1cb2fb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/AccountNumbers.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.udebs.ib; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import org.jooq.Record; +import org.jooq.Result; + +public class AccountNumbers { + + private final StoreAccessor harness; + + private String CURRENT_ACCOOUNTS_QUERY = "select CLIENTACCOUNTS.ACCOUNTID, ACCOUNTS.ACCTYPEID, gettext(ACCOUNTTYPES.TEXTID,'cs'), users.rc_number from users\n" + + "join CLIENTACCOUNTS on users.clientid = CLIENTACCOUNTS.CLIENTID\n" + + "join ACCOUNTS on CLIENTACCOUNTS.ACCOUNTID = ACCOUNTS.ACCOUNTID\n" + + "join ACCOUNTTYPES on ACCOUNTS.ACCTYPEID = ACCOUNTTYPES.ACCTYPEID\n" + + "where RC_NUMBER='%s' and gettext(ACCOUNTTYPES.TEXTID,'cs') in ('Běžný účet')"; + + public AccountNumbers(StoreAccessor harness) { + this.harness = harness; + } + + public Result getCurrentAccounts(String birthNumber) { + return harness.getEndpoint(UdebsEndpoint.class) + .executeSql(String.format(CURRENT_ACCOOUNTS_QUERY, birthNumber)); + } + + public String getTopCurrentAccount(String birthNumber) { + return getCurrentAccounts(birthNumber).get(0) + .getValue("ACCOUNTID") + .toString(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/ClientWithToIdentityBannerBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/ClientWithToIdentityBannerBuilder.java new file mode 100644 index 0000000..b3546df --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/ClientWithToIdentityBannerBuilder.java @@ -0,0 +1,86 @@ +package cz.moneta.test.dsl.udebs.ib; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import cz.moneta.test.harness.exception.HarnessException; + +import java.util.Date; +import java.util.Optional; + +public class ClientWithToIdentityBannerBuilder { + + private final StoreAccessor harness; + + private static final String GET_CLIENT_WITH_TO_IDENTITY_BANNER = + "select distinct cdet.iconumber, enstat.userloginid, contex.digitalcontextid, detuser.idcardvalidity_prim, cdet.companyname, enstat.entitystatusid " + + " from udebsge.em_userloginstocontexts enstat" + + " join udebsge.em_digitalcontexts contex" + + " on enstat.digitalcontextid = contex.digitalcontextid" + + " join udebsge.em_digitaluserdetails detuser" + + " on contex.digitaluserid = detuser.digitaluserid" + + " join udebsge.em_digitalclientdetails cdet" + + " on contex.digitalclientid = cdet.digitalclientid" + + " join udebsge.em_entitystatuses statpop" + + " on enstat.entitystatusid = statpop.entitystatusid" + + " join em_usercontextcontacts contacts" + + " on contex.digitalcontextid = contacts.digitalcontextid" + + " where rownum = 1 and ((enstat.entitystatusid = '346' and enstat.identfirstaccessdate > sysdate - interval '5' day or enstat.entitystatusid = '345')" + + " and enstat.closedate = TO_DATE('31.12.2999','DD.MM.YYYY') " + + " and cdet.closedate = TO_DATE('31.12.2999','DD.MM.YYYY') " + + " and contacts.closedate = TO_DATE('31.12.2999','DD.MM.YYYY'))"; + + private static final String GET_CLIENT_WITH_TO_POPUP_IDENTITY_BANNER = + "select distinct cdet.iconumber, enstat.userloginid, contex.digitalcontextid, detuser.idcardvalidity_prim, cdet.companyname, enstat.entitystatusid " + + " from udebsge.em_userloginstocontexts enstat" + + " join udebsge.em_digitalcontexts contex" + + " on enstat.digitalcontextid = contex.digitalcontextid" + + " join udebsge.em_digitaluserdetails detuser" + + " on contex.digitaluserid = detuser.digitaluserid" + + " join udebsge.em_digitalclientdetails cdet" + + " on contex.digitalclientid = cdet.digitalclientid" + + " join udebsge.em_entitystatuses statpop" + + " on enstat.entitystatusid = statpop.entitystatusid" + + " join em_usercontextcontacts contacts" + + " on contex.digitalcontextid = contacts.digitalcontextid" + + " where rownum = 1 and ((enstat.entitystatusid = '346' or enstat.entitystatusid = '345')" + + " and enstat.identfirstaccessdate < sysdate - interval '5' day" + + " and enstat.closedate = TO_DATE('31.12.2999','DD.MM.YYYY') " + + " and cdet.closedate = TO_DATE('31.12.2999','DD.MM.YYYY') " + + " and contacts.closedate = TO_DATE('31.12.2999','DD.MM.YYYY'))"; + + public ClientWithToIdentityBannerBuilder(StoreAccessor harness) { + this.harness = harness; + } + + public IbCredentials getClientWithToIdentityBanner() { + return Optional.of(getEndpoint()) + .map(e -> e.executeSql(GET_CLIENT_WITH_TO_IDENTITY_BANNER)) + .flatMap(rs -> rs.stream().findFirst()) + .map(r -> new IbCredentials( + r.getValue(0, String.class), + r.getValue(1, String.class), + r.getValue(2, String.class), + r.getValue(3, Date.class) + ) + ) + .orElseThrow(() -> new HarnessException(" Error getting GET_CLIENT_WITH_TO_IDENTITY_BANNER from UDEBS.")); + } + + public IbCredentials getClientWithPopupToIdentityBanner() { + return Optional.of(getEndpoint()) + .map(e -> e.executeSql(GET_CLIENT_WITH_TO_POPUP_IDENTITY_BANNER)) + .flatMap(rs -> rs.stream().findFirst()) + .map(r -> new IbCredentials( + r.getValue(0, String.class), + r.getValue(1, String.class), + r.getValue(2, String.class), + r.getValue(3, Date.class) + ) + ) + .orElseThrow(() -> new HarnessException(" Error getting GET_CLIENT_WITH_POPUP_TO_IDENTITY_BANNER from UDEBS.")); + } + + private UdebsEndpoint getEndpoint() { + return harness.getEndpoint(UdebsEndpoint.class); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/IbBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/IbBuilder.java new file mode 100644 index 0000000..cc06667 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/IbBuilder.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.udebs.ib; + +import cz.moneta.test.harness.context.StoreAccessor; + +public class IbBuilder { + + private final StoreAccessor harness; + + public IbBuilder(StoreAccessor harness) { + this.harness = harness; + } + + @Deprecated + public UsernameAndPasswordBuilder usernameAndPassword() { + return new UsernameAndPasswordBuilder(harness); + } + + public ClientWithToIdentityBannerBuilder clientWithToIdentityBanner() { + return new ClientWithToIdentityBannerBuilder(harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/IbCredentials.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/IbCredentials.java new file mode 100644 index 0000000..fba324b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/IbCredentials.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.udebs.ib; + +import java.util.Date; + +public class IbCredentials { + private String ico; + private String userLoginId; + private String digitalContextId; + private Date idCardValidity; + + public IbCredentials(String ico, String userLoginId, String digitalContextId, Date idCardValidity) { + this.ico = ico; + this.userLoginId = userLoginId; + this.digitalContextId = digitalContextId; + this.idCardValidity = idCardValidity; + } + + public String getIco() { + return ico; + } + + public IbCredentials setIco(String ico) { + this.ico = ico; + return this; + } + + public String getUserLoginId() { + return userLoginId; + } + + public IbCredentials setUserLoginId(String userLoginId) { + this.userLoginId = userLoginId; + return this; + } + + public String getDigitalContextId() { + return digitalContextId; + } + + public IbCredentials setDigitalContextId(String digitalContextId) { + this.digitalContextId = digitalContextId; + return this; + } + + public Date getIdCardValidity() { + return idCardValidity; + } + + public IbCredentials setIdCardValidity(Date idCardValidity) { + this.idCardValidity = idCardValidity; + return this; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/UsernameAndPasswordBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/UsernameAndPasswordBuilder.java new file mode 100644 index 0000000..ffd7cba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/ib/UsernameAndPasswordBuilder.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.udebs.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.wso2.digitalchannels.IdmTasks; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.Optional; + +@Deprecated +public class UsernameAndPasswordBuilder { + + private final StoreAccessor harness; + + @Deprecated + public UsernameAndPasswordBuilder(StoreAccessor harness) { + this.harness = harness; + } + + /** + * Method has been replaced by harness.tasks().wso2().idm().getIbCredentialsByRC(rc); + */ + @Deprecated + public Credentials getUsernameAndPasswordByRc(String rc) { + return new IdmTasks((Harness) harness).getIbCredentialsByRC(rc); + } + + /** + * Method has been replaced by harness.tasks().wso2().idm().getIbCredentialsByIco(rc); + */ + @Deprecated + public Credentials getUsernameAndPasswordByIco(String ico) { + return new IdmTasks((Harness) harness).getIbCredentialsByIco(ico); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/udebs/smeonboarding/SmsKeyBuilder.java b/tests/src/main/java/cz/moneta/test/dsl/udebs/smeonboarding/SmsKeyBuilder.java new file mode 100644 index 0000000..cfff902 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/udebs/smeonboarding/SmsKeyBuilder.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.udebs.smeonboarding; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import cz.moneta.test.harness.exception.HarnessException; + +import java.util.Optional; + +public class SmsKeyBuilder { + + private final StoreAccessor harness; + + private static final String GET_VERIFICATION_SMS_SMEONBOARDING = "select no.otp_code\n" + + "from udebsge.ntb_otp no\n" + + "left join udebsge.ntb_transaction nt on no.ntb_transaction_id = no.ntb_transaction_id\n" + + "left join udebsge.ntb_personal_data pd on pd.ntb_transaction_id = no.ntb_transaction_id\n" + + "where pd.phone = '%s'\n" + + "order by no.created desc\n" + + "fetch first row only"; + + public SmsKeyBuilder(StoreAccessor harness) { + this.harness = harness; + } + + public String getSmsKeyVerification(String phoneNumber) { + //FIXME remove after SQL polling is done: TA-872 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + //FIXME: add polling until: TA-872 + return Optional.of(harness.getEndpoint(UdebsEndpoint.class)) + .map(e -> e.executeSql(String.format(GET_VERIFICATION_SMS_SMEONBOARDING, phoneNumber))) + .flatMap(rs -> rs.stream().findFirst()) + .map(r -> r.getValue(0, String.class)) + .orElseThrow(() -> new HarnessException("Error getting GET_VERIFICATION_SMS_SMEONBOARDING from UDEBS.")); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/Ufo.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/Ufo.java new file mode 100644 index 0000000..fc1e443 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/Ufo.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.ufo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.common.authentication.UfoLoginPage; +import cz.moneta.test.dsl.ufo.common.landing.ADM162_S001_selectPageTomcatSso; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Builders; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; + +public class Ufo { + + private final Harness harness; + private Object[] args; + + public Ufo(Harness harness, Object... args) { + this.harness = harness; + this.args = args; + } + + public UfoLoginPage openLoginPage() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class, args); + endpoint.openApplication(); + checkServerError500(endpoint); + logSessionId(endpoint); + return Builders.newWebFlowBuilder(UfoLoginPage.class, endpoint, harness); + } + + /** + * FOR LOCAL USE ONLY!!! DON'T USE IT ON JENKINS!!! + * For correct work, parameter endpoints.ufo.banka.url in resources/envs/ must be changed + * + * TODO: make it work on Jenkins + */ + public ADM162_S001_selectPageTomcatSso openLoginPageTomcat() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class, args); + endpoint.openApplication(); + checkServerError500(endpoint); + logSessionId(endpoint); + return Builders.newWebFlowBuilder(ADM162_S001_selectPageTomcatSso.class, endpoint, harness); + } + + private void logSessionId(UfoEndpoint endpoint) { + String ufoSessionId = endpoint.getAttribute("//input[@name = 'sessionId']", Lookup.XPATH, "value"); + harness.log("UFO Session ID: " + ufoSessionId); + harness.store("reports.tmfj.execution.commentufosessionid", ufoSessionId); + } + + private void checkServerError500(UfoEndpoint endpoint) { + endpoint.waitOrFailOnErrorXpath(1, Lookup.XPATH, Until.PRESENT_IN_DOM, "//*[@id='http500']"); + } + + public void closeApplication() { + harness.closeEndpoint(harness.getEndpoint(UfoEndpoint.class, args)); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/UfoBankaPageFlow.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/UfoBankaPageFlow.java new file mode 100644 index 0000000..f9fc6df --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/UfoBankaPageFlow.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface UfoBankaPageFlow> extends WebFlow, StoreAccessor { + + String SPINNER = "//div[@class='gwt-PopupPanel']//div[@class='popupContent']"; //TODO use SharedElements.LOAD_IMG_DIV_CLASS + + default void beforePageLoad(WebEndpoint endpoint) { + endpoint.waitForElementsToLoad(100, Lookup.XPATH, Until.GONE, SPINNER); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/loans/flexikredit/OBR001_SpecialConditionsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/loans/flexikredit/OBR001_SpecialConditionsPage.java new file mode 100644 index 0000000..f2371fc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/loans/flexikredit/OBR001_SpecialConditionsPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.loans.flexikredit; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.PRP002_OBR001_PrintSpecialConditionsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.loans.flexikredit.OBR001_SpecialConditionsPage.PAGE_ID; + +@Wait(value = PAGE_ID, by = Lookup.XPATH) +public interface OBR001_SpecialConditionsPage extends WebFlow { + + String PAGE_ID = "//div[text()='TIS006_OBR002_001']"; + String CONTINUE_BUTTON = "OBR001_S001_B003"; + + @Click(CONTINUE_BUTTON) + PRP002_OBR001_PrintSpecialConditionsPage clickContinueButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CardBrand.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CardBrand.java new file mode 100644 index 0000000..ee5a396 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CardBrand.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.SelectByValue; + +public enum CardBrand implements SelectByValue { + NONE("(není)"), + MC_STANDARD("MC Standard"), + MC_GOLD("MC Gold"), + VISA("VISA"), + VISA_CLASSIC("VISA Classic"); + + private final String type; + + CardBrand(String brand) { + this.type = brand; + } + + public String getType() { + return type; + } + + @Override + public String getValue() { + return this.type; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CardType.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CardType.java new file mode 100644 index 0000000..22a451c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CardType.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.SelectByValue; + +public enum CardType implements SelectByValue { + NONE("(není)"), + KARTA_KARTA("KARTA - KARTA"); + + private final String type; + + CardType(String type) { + this.type = type; + } + + public String getType() { + return type; + } + + @Override + public String getValue() { + return this.type; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CardTypeAndDesign.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CardTypeAndDesign.java new file mode 100644 index 0000000..2447c39 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CardTypeAndDesign.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.SelectByValue; + +public enum CardTypeAndDesign implements SelectByValue { + GOLD("Gold"), + PRIDE("Pride"), + STANDARD("Standard"), + SWIMMING("Plavání"), + CYCLING("Cyklistika"), + TENNIS("Tenis"), + BEACH("Beach volejbal"), + PRAGUE("Praha"), + CENTRAL_BOHEMIAN_REGION("Středočeský kraj"), + SOUTH_BOHEMIAN_REGION("Jihočeský kraj"), + PLZEN("Plzeňský kraj"), + KARLOVY_VARY("Karlovarský kraj"), + USTI("Ústecký kraj"), + LIBEREC("Liberecký kraj"), + HRADEC("Královéhradecký kraj"), + PARDUBICE("Pardubický kraj"), + VYSOCINA("Kraj Vysočina"), + SOUTH_MORAVIA_REGION("Jihomoravský kraj"), + ZLIN("Zlínský kraj"), + OLOMOUC("Olomoucký kraj"), + MORAVIAN_SILESIAN_REGION("Moravskoslezský kraj"), + STANDARD_EUR("Standard EUR"), + STANDARD_USD("Standard USD"), + BUSINESS("Business|"), + BUSINESS_PREMIUM("Business Premium|"), + BUSINESS_EUR("Business EUR|"), + BUSINESS_USD("Business USD|"); + + private final String designOfCard; + + CardTypeAndDesign(String designOfCard) { + this.designOfCard = designOfCard; + } + + @Override + public String getValue() { + return designOfCard; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CreditCardsAdvantages.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CreditCardsAdvantages.java new file mode 100644 index 0000000..03f3794 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CreditCardsAdvantages.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.SelectByValue; + +public enum CreditCardsAdvantages implements SelectByValue { + ELECTRONICS("5% Elektronika"), + TRAVEL_AND_SPORT("1% Cestování a sport"); + + private final String advantage; + + CreditCardsAdvantages(String advantage) { + this.advantage = advantage; + } + + public String getAdvantage() { + return advantage; + } + + @Override + public String getValue() { + return this.advantage; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CreditCardsPromo.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CreditCardsPromo.java new file mode 100644 index 0000000..32cd2bf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/CreditCardsPromo.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.SelectByValue; + +public enum CreditCardsPromo implements SelectByValue { + NONE("(není)"), + Zamestanec_MMB("Zaměstnanec MMB"), + NO_PROMO("Bez akce"); + + private final String promo; + + CreditCardsPromo(String promo) { + this.promo = promo; + } + + public String getPromo() { + return promo; + } + + @Override + public String getValue() { + return this.promo; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/DUP004_S004_CreditCardRepaymentMethodConfirmation.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/DUP004_S004_CreditCardRepaymentMethodConfirmation.java new file mode 100644 index 0000000..92a1e6d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/DUP004_S004_CreditCardRepaymentMethodConfirmation.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.DUP004_S004_CreditCardRepaymentMethodConfirmation.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +public interface DUP004_S004_CreditCardRepaymentMethodConfirmation extends WebFlow { + + String PAGE_ID_XPATH = "//div[contains(text(),'DUP004_S004')]"; + String OK_BUTTON = "DUP004_S004_B001"; + + @Click(OK_BUTTON) + DUP004_S004_CreditCardRepaymentMethodConfirmationTransitions clickOk(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/DUP004_S004_CreditCardRepaymentMethodConfirmationTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/DUP004_S004_CreditCardRepaymentMethodConfirmationTransitions.java new file mode 100644 index 0000000..264e6ce --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/DUP004_S004_CreditCardRepaymentMethodConfirmationTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_ConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface DUP004_S004_CreditCardRepaymentMethodConfirmationTransitions extends WebFlow { + + BUF001_S001_CurrentAccountPage onCurrentAccountPage(); + + INK001_OBR001_004_ConfirmationPage onConfirmationPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/DebitAccountType.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/DebitAccountType.java new file mode 100644 index 0000000..1b1b5ba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/DebitAccountType.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum DebitAccountType implements DynamicPathPart { + DEBIT_ACCOUNT_MMB("Běžný účet u MMB", "0"); + + private final String method; + private final String methodId; + + DebitAccountType(String method, String id) { + this.method = method; + this.methodId = id; + } + + public String getMethod() { + return method; + } + + @Override + public String getValue() { + return methodId; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO019_CreditCardDetailPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO019_CreditCardDetailPageTransitions.java new file mode 100644 index 0000000..7e28fde --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO019_CreditCardDetailPageTransitions.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.PLK014_S002_CardActivationPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.PLK014_S003_CreditCardActivationPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface HPO019_CreditCardDetailPageTransitions extends WebFlow { + + DOK001_S001_SelectionOfSubmittedDocumentsPage onIdSelectionPage(); + + NEP002_S001_ApplicantPage onApplicantPage(); + + PLK014_S003_CreditCardActivationPage onCreditCardActivation(); + + PLK014_S002_CardActivationPage onDebitCardActivation(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO019_S001_CreditCardDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO019_S001_CreditCardDetailPage.java new file mode 100644 index 0000000..3f80e91 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO019_S001_CreditCardDetailPage.java @@ -0,0 +1,98 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.PLK033_S001_ChangeMotoIntTransactions; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = HPO019_S001_CreditCardDetailPage.HPO019_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 40) +public interface HPO019_S001_CreditCardDetailPage extends WebFlow, StoreAccessor { + String HPO019_S001_PAGE_LABEL_XPATH = "//div[text()='HPO019_S001']"; + String METHOD_OF_PAYMENT_STORE_KEY = "METHOD_OF_PAYMENT_STORE_KEY"; + String CREDIT_FOR_CASH_WITHDRAV_STORE = "CREDIT_FOR_CASH_WITHDRAV_STORE"; + String TOTAL_CREDIT_STORE = "TOTAL_CREDIT_STORE"; + String METHOD_OF_PAYMENT_DIV = "HPO019_S001_L006"; + String TOTAL_CREDIT_DIV = "HPO019_S001_L003"; + String CREDIT_FOR_CASH_WITHDRAV_DIV = "HPO019_S001_L005"; + String BACK_TO_CLIENT_BUTTON = "HPO019_S001_S014"; + String CONTRACT_NUMBER_KEY = "CONTRACT_NUMBER"; + String ACTIVATE_CARD_BUTTON = "HPO019_S001_B002"; + String CARD_STAT_DIV_LABEL = "HPO019_S001_L020"; + String PROD_STAT_STORE = "PROD_STAT_STORE"; + String PRODUCT_TRANSFER_BUTTON = "HPO019_S001_B005"; + String CARD_CHANGE_MOTO_INTERNET = "HPO019_S001_I006"; + String EXPIRATION_LABEL = "HPO019_S001_L011"; + String DAILY_WITHDRAW_LIMIT_LABEL = "HPO019_S001_L009"; + String DAILY_PURCHASE_LIMIT_LABEL = "HPO019_S001_L007"; + String CONTRACT_NUMBER_LABEL = "HPO019_S001_L001"; + String SERVICE_OPERATIONS_BUTTON = "HPO019_S001_B012"; + String DAILY_INTERNET_LIMIT_LABEL = "HPO019_S001_L051"; + String CLIP_CARD_BUTTON = "HPO019_S001_B007"; + String DECLIP_CARD_BUTTON = "HPO019_S001_B017"; + + @StoreElementContent(value = METHOD_OF_PAYMENT_DIV, storeKey = METHOD_OF_PAYMENT_STORE_KEY) + @StoreElementContent(value = CREDIT_FOR_CASH_WITHDRAV_DIV, storeKey = CREDIT_FOR_CASH_WITHDRAV_STORE) + @StoreElementContent(value = TOTAL_CREDIT_DIV, storeKey = TOTAL_CREDIT_STORE) + HPO019_S001_CreditCardDetailPage storeCreditCardValues(); + + @StoreElementContent(value = TOTAL_CREDIT_DIV, storeKey = TOTAL_CREDIT_STORE) + HPO019_S001_CreditCardDetailPage storeCreditCardTotalCredit(); + + @Click(BACK_TO_CLIENT_BUTTON) + HKO101_S001_MainClientPage clickBackToClient(); + + @CheckElementContent(METHOD_OF_PAYMENT_DIV) + HPO019_S001_CreditCardDetailPage assertPaymentMethod(String method); + + @CheckElementContent(DAILY_WITHDRAW_LIMIT_LABEL) + HPO019_S001_CreditCardDetailPage assertDailyWithdrawLimit(String method); + + @CheckElementContent(DAILY_PURCHASE_LIMIT_LABEL) + HPO019_S001_CreditCardDetailPage assertDailyPurchaseLimit(String method); + + @StoreElementContent(storeKey = CONTRACT_NUMBER_KEY, value = CONTRACT_NUMBER_LABEL) + HPO019_S001_CreditCardDetailPage storeContractNumber(); + + @Click(ACTIVATE_CARD_BUTTON) + HPO019_CreditCardDetailPageTransitions clickActivateCard(); + + @StoreElementContent(storeKey = PROD_STAT_STORE, value = CARD_STAT_DIV_LABEL) + HPO019_S001_CreditCardDetailPage storeProductStat(); + + @Click(PRODUCT_TRANSFER_BUTTON) + HPO019_CreditCardDetailPageTransitions clickProductTransferButton(); + + @Click(CARD_CHANGE_MOTO_INTERNET) + PLK033_S001_ChangeMotoIntTransactions clickMotoInt(); + + @Click(SERVICE_OPERATIONS_BUTTON) + POZ001_S007_CreditCardServiceOperationsPage clickCardService(); + + @CustomAction + default POZ001_S007_CreditCardServiceOperationsPage clickCardServiceWithPossibleAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> SERVICE_OPERATIONS_BUTTON); + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(1); + } + return null; + } + + @Click(CLIP_CARD_BUTTON) + DOK001_S001_SelectionOfSubmittedDocumentsPage clickClipCard(); + + @Click(DECLIP_CARD_BUTTON) + NKK019_S001_DeclipRequestPage clickDeclipCard(); + + @CustomAction + default HPO019_S001_CreditCardDetailPage storeLimits(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + harness.store("LIM_INT_PAYMENT_CURRENT", endpoint.getText(DAILY_INTERNET_LIMIT_LABEL).replace(" ", "").replace(",00", "")); + harness.store("LIM_MOTO_PAYMENT_CURRENT", endpoint.getText(DAILY_PURCHASE_LIMIT_LABEL).replace(" ", "").replace(",00", "")); + harness.store("LIM_BANK_PAYMENT_CURRENT", endpoint.getText(DAILY_WITHDRAW_LIMIT_LABEL).replace(" ", "").replace(",00", "")); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO039_S001_MbcDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO039_S001_MbcDetailPage.java new file mode 100644 index 0000000..f87d1c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO039_S001_MbcDetailPage.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.PLK033_S001_ChangeMotoIntTransactions; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO039_S001_MbcDetailPage.HPO039_S001_PAGE_LABEL_XPATH; + +@Wait(value = HPO039_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface HPO039_S001_MbcDetailPage extends WebFlow, StoreAccessor { + String HPO039_S001_PAGE_LABEL_XPATH = "//div[text()='HPO039_S001']"; + String DAILY_WITHDRAW_LIMIT_LABEL = "HPO039_S001_L075"; + String DAILY_PURCHASE_LIMIT_LABEL = "HPO039_S001_L074"; + String DAILY_INTERNET_LIMIT_LABEL = "HPO039_S001_L077"; + + String CHANGE_FRAME_BUTTON = "HPO039_S001_I010"; + String SERVICE_OPERATIONS_BUTTON = "HPO039_S001_I028"; + String INTERNET_AND_MOTO_TRANS_BUTTON = "HPO039_S001_I032"; + String INCREASE_FRAME_BUTTON = "HPO039_S001_I045"; + String DECREASE_FRAME_BUTTON = "HPO039_S001_I046"; + String CHANGE_LIMITS_BUTTON = "HPO039_S001_I048"; + String CARD_STATUS_LABEL = "HPO039_S001_L059"; + String BACK_TO_CLIENT_BUTTON = "HPO039_S001_I044"; + + @CustomAction + default HPO039_S001_MbcDetailPage storeLimits(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + harness.store("LIM_INT_PAYMENT_CURRENT", endpoint.getText(DAILY_INTERNET_LIMIT_LABEL).replace(" ", "").replace(",00", "")); + harness.store("LIM_MOTO_PAYMENT_CURRENT", endpoint.getText(DAILY_PURCHASE_LIMIT_LABEL).replace(" ", "").replace(",00", "")); + harness.store("LIM_BANK_PAYMENT_CURRENT", endpoint.getText(DAILY_WITHDRAW_LIMIT_LABEL).replace(" ", "").replace(",00", "")); + return null; + } + + @Click(CHANGE_LIMITS_BUTTON) + POZ015_S001_ChangeLimitsOnMbcPage clickChangeLimits(); + + @Click(INTERNET_AND_MOTO_TRANS_BUTTON) + PLK033_S001_ChangeMotoIntTransactions clickChangeMotoInt(); + + @Click(SERVICE_OPERATIONS_BUTTON) + POZ001_S007_CreditCardServiceOperationsPage clickServiceOperations(); + + @CustomAction + default HPO039_S001_MbcDetailPageTransitions mouseOverFrameChangeAndDecrease() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.moveToElement(CHANGE_FRAME_BUTTON); + endpoint.click(() -> DECREASE_FRAME_BUTTON); + return null; + } + + @CustomAction + default HPO039_S001_MbcDetailPageTransitions mouseOverFrameChangeAndIncrease() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.moveToElement(CHANGE_FRAME_BUTTON); + endpoint.click(() -> INCREASE_FRAME_BUTTON); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO039_S001_MbcDetailPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO039_S001_MbcDetailPageTransitions.java new file mode 100644 index 0000000..059e198 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/HPO039_S001_MbcDetailPageTransitions.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL001_S001_SelectProductsPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL003_S001_FlexiBusinessProductDetail; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL066_S001_ProcessedRequestsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface HPO039_S001_MbcDetailPageTransitions extends WebFlow { + + KUL058_S002_ChangeCardFramePage onChangeCardFramePage(); + + KUL001_S001_SelectProductsPage onSelectProductsPage(); + + KUL066_S001_ProcessedRequestsPage onProcessedRequestsPage(); + + KUL003_S001_FlexiBusinessProductDetail onFlexiBusinessProductDetail(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/KUL058_S002_ChangeCardFramePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/KUL058_S002_ChangeCardFramePage.java new file mode 100644 index 0000000..5ea911d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/KUL058_S002_ChangeCardFramePage.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.KUL058_S002_ChangeCardFramePage.*; + +@Wait(value = KUL058_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface KUL058_S002_ChangeCardFramePage extends WebFlow, StoreAccessor { + String KUL058_S002_PAGE_LABEL_XPATH = "//div[text()='KUL058_S002']"; + + String CONTINUE_BUTTON = "KUL058_S002_B002"; + + String REQUESTED_FRAME_INPUT = "KUL058_S002_E004"; + + String ACTUAL_FRAME_LABEL = "KUL058_S002_L017"; + + @TypeInto(REQUESTED_FRAME_INPUT) + KUL058_S002_ChangeCardFramePage fillRequestedFrame(String requestedFrame); + + /** + * For increase put positive number as parameter + * For decrease put negative number as parameter + */ + @CustomAction + default KUL058_S002_ChangeCardFramePage changeActualFrameBy(int changeCardFrameBy) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String actualCardFrame = endpoint.getText(ACTUAL_FRAME_LABEL).replaceAll(" ", ""); + int cardFrameChange = Integer.parseInt(actualCardFrame) + changeCardFrameBy; + + endpoint.type(() -> REQUESTED_FRAME_INPUT, String.valueOf(cardFrameChange), false); + endpoint.moveToElementAndClickToOtherElement(ACTUAL_FRAME_LABEL, ACTUAL_FRAME_LABEL); + return null; + } + + @Click(CONTINUE_BUTTON) + KUL058_S002_ChangeCardFramePageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/KUL058_S002_ChangeCardFramePageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/KUL058_S002_ChangeCardFramePageTransitions.java new file mode 100644 index 0000000..91fc11e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/KUL058_S002_ChangeCardFramePageTransitions.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.SIF004_S001_ContactSettingsForSendingEmailsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL058_S002_ChangeCardFramePageTransitions extends WebFlow { + + SIF004_S001_ContactSettingsForSendingEmailsPage onContactSettingsForSendingEmailsPage(); + + ODS003_S001_AddCodeOfRecommendedPersonPage onAddCodeOfRecommendedPersonPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NEP002_CreditCardApplicantInformationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NEP002_CreditCardApplicantInformationPage.java new file mode 100644 index 0000000..e042ced --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NEP002_CreditCardApplicantInformationPage.java @@ -0,0 +1,59 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP028_S001_SignaturePage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NEP002_CreditCardApplicantInformationPage.VALIDATION_STATUS_SELECT; + +@Wait(VALIDATION_STATUS_SELECT) +public interface NEP002_CreditCardApplicantInformationPage extends WebFlow { + + String VALIDATION_STATUS_SELECT = "NEP002_S001_C011"; + String NOTICE_PERIOD_SELECT = "NEP002_S001_C015"; + String PROBATION_SELECT = "NEP002_S001_C016"; + String OCCUPATION_SELECT = "NEP002_S001_C013"; + String INCOME_SOURCES_INPUT = "NEP002_S001_E401"; + String SUBMITTED_INCOME_TYPE_SELECT = "NEP002_S001_C005"; + String OTHER_EXPENSES_INPUT = "NEP002_S001_E035"; + String OTHER_LOAN_PAYMENTS_INPUT = "NEP002_S001_E451"; + String WAGE_DEDUCTIONS_INPUT = "NEP002_S001_E461"; + String CONTINUE_BUTTON = "NEP002_S001_B004"; + String HOME_INCOME_INPUT = "NEP002_S001_E441"; + String NET_INCOME_INPUT = "NEP002_S001_E411"; + + @Select(VALIDATION_STATUS_SELECT) + NEP002_CreditCardApplicantInformationPage selectValidationStatus(String status); + + @Select(NOTICE_PERIOD_SELECT) + NEP002_CreditCardApplicantInformationPage selectNoticePeriod(String noticePeriod); + + @Select(PROBATION_SELECT) + NEP002_CreditCardApplicantInformationPage selectProbation(String probation); + + @Select(OCCUPATION_SELECT) + NEP002_CreditCardApplicantInformationPage selectOccupation(String occupation); + + @TypeInto(INCOME_SOURCES_INPUT) + NEP002_CreditCardApplicantInformationPage fillIncomeSources(String incomeSources); + + @Select(SUBMITTED_INCOME_TYPE_SELECT) + NEP002_ProofOfIncomeModal selectSubmittedIncomeType(String submittedIncomeType); + + @TypeInto(OTHER_EXPENSES_INPUT) + NEP002_CreditCardApplicantInformationPage fillOtherExpenses(int otherExpenses); + + @TypeInto(OTHER_LOAN_PAYMENTS_INPUT) + NEP002_CreditCardApplicantInformationPage fillOtherLoanPayments(int otherLoanPayments); + + @TypeInto(WAGE_DEDUCTIONS_INPUT) + NEP002_CreditCardApplicantInformationPage fillWageDeductions(int wageDeductions); + + @TypeInto(HOME_INCOME_INPUT) + NEP002_CreditCardApplicantInformationPage fillHomeIncome(int homeIncome); + + @TypeInto(NET_INCOME_INPUT) + NEP002_CreditCardApplicantInformationPage fillNetIncome(int netIncome); + + @Click(CONTINUE_BUTTON) + NEP028_S001_SignaturePage clickContinueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NEP002_ProofOfIncomeModal.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NEP002_ProofOfIncomeModal.java new file mode 100644 index 0000000..54cfcb0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NEP002_ProofOfIncomeModal.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NEP002_ProofOfIncomeModal.MODAL_DIV; + +@Wait(MODAL_DIV) +public interface NEP002_ProofOfIncomeModal extends WebFlow, StoreAccessor { + String MODAL_DIV = "NEP002_S001_FB001"; + String FIRST_CHECKBOX_INPUT = "NEP002_S001_G001-0"; + String SECOND_CHECKBOX_INPUT = "NEP002_S001_G001-1"; + String THIRD_CHECKBOX_INPUT = "NEP002_S001_G001-2"; + String FOURTH_CHECKBOX_INPUT = "NEP002_S001_G001-3"; + String FIFTH_CHEXBOX_INPUT = "NEP002_S001_G001-4"; + String SIXTH_CHEXBOX_INPUT = "NEP002_S001_G001-5"; + String SUSPICIOUS_CHECKBOX_XPATH = "//td[contains(text(), 'Potvrzení o příjmu je vyplněno podezřele.')]"; + String CONTINUE_BUTTON = "NEP002_S001_B010"; + + @Click(FIRST_CHECKBOX_INPUT) + @Click(SECOND_CHECKBOX_INPUT) + @Click(THIRD_CHECKBOX_INPUT) + @Click(FOURTH_CHECKBOX_INPUT) + @Click(FIFTH_CHEXBOX_INPUT) + @Click(SIXTH_CHEXBOX_INPUT) + @Click(value = SUSPICIOUS_CHECKBOX_XPATH, by = Lookup.XPATH) + @Click(value = CONTINUE_BUTTON, andWait = @Wait(value = MODAL_DIV, until = Until.GONE)) + NEP002_CreditCardApplicantInformationPage checkValidCheckboxesAndContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK001_S007_QuickCreditCardApplicantDetailsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK001_S007_QuickCreditCardApplicantDetailsPage.java new file mode 100644 index 0000000..8abee96 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK001_S007_QuickCreditCardApplicantDetailsPage.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK001_S007_QuickCreditCardApplicantDetailsPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK001_S007_QuickCreditCardApplicantDetailsPage.PAGE_ID_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK001_S007_QuickCreditCardApplicantDetailsPage.PRODUCT_TYPE_SELECT; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH, waitSecondsForElement = 40) +@Wait({PRODUCT_TYPE_SELECT, CONTINUE_BUTTON}) +public interface NKK001_S007_QuickCreditCardApplicantDetailsPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[text()='NKK001_S007']"; + String CONTINUE_BUTTON = "NKK001_S007_B008"; + String PRODUCT_TYPE_SELECT = "NKK001_S007_C004"; + String CARD_BRAND_SELECT = "NKK001_S007_C011"; + String PROMO_SELECT = "NKK001_S007_C012"; + String CARD_TYPE_SELECT = "NKK001_S007_C005"; + + @Select(value = PRODUCT_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + NKK001_S007_QuickCreditCardApplicantDetailsPage selectProductType(ProductType productType); + + @Select(CARD_TYPE_SELECT) + NKK001_S007_QuickCreditCardApplicantDetailsPage selectCardType(CardType cardType); + + @Select(CARD_BRAND_SELECT) + NKK001_S007_QuickCreditCardApplicantDetailsPage selectCardBrand(CardBrand cardBrand); + + @Select(value = PROMO_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + NKK001_S007_QuickCreditCardApplicantDetailsPage selectPromo(CreditCardsPromo promo); + + @TypeInto(value = "NKK001_S007_E024", clear = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + NKK001_S007_QuickCreditCardApplicantDetailsPage setRequestedLimit(String limit); + + @CheckElementContent(PROMO_SELECT) + NKK001_S007_QuickCreditCardApplicantDetailsPage assertPromo(CreditCardsPromo promo); + + @CheckElementContent(value = "//input[@name='NKK001_S007_E024']", by = Lookup.XPATH) + NKK001_S007_QuickCreditCardApplicantDetailsPage assertRequestedLimit(String limit); + + @Wait(CONTINUE_BUTTON) + @Click(CONTINUE_BUTTON) + NKK001_S007_QuickCreditCardApplicantInfoPage clickContinueButton(); + + @Select(value = CARD_BRAND_SELECT, selectByOrder = true) + NKK001_S007_QuickCreditCardApplicantDetailsPage selectCardBrandByIndex(int index); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK001_S007_QuickCreditCardApplicantInfoPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK001_S007_QuickCreditCardApplicantInfoPage.java new file mode 100644 index 0000000..092912c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK001_S007_QuickCreditCardApplicantInfoPage.java @@ -0,0 +1,73 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK001_S007_QuickCreditCardApplicantInfoPage.SAVE_BUTTON; + +@Wait(SAVE_BUTTON) +@Wait(value = "//input[@name='NKK001_S007_E001' and not(ancestor::div[contains(@style, 'display: none;')])]", by = Lookup.XPATH) +public interface NKK001_S007_QuickCreditCardApplicantInfoPage extends WebFlow, StoreAccessor { + + String PAGE_ID_XPATH = "//div[text()='NKK001_S007']"; + String NOT_CONDUCTED_BY_EXTERNAL_ADVISOR = "NKK001_S007_H001_1"; + String STATEMENT_DISTRIBUTION_BY_POST = "NKK001_S007_R009_1"; + String SAVE_BUTTON = "NKK001_S007_B002"; + + @TypeInto(value = "NKK001_S007_E001", clear = true) + NKK001_S007_QuickCreditCardApplicantInfoPage setDailyLimitForWithdraw(String limit); + + @TypeInto(value = "NKK001_S007_E003", clear = true) + NKK001_S007_QuickCreditCardApplicantInfoPage setDailyLimitForPurchases(String limit); + + @TypeInto(value = "NKK001_S007_E033", clear = true) + NKK001_S007_QuickCreditCardApplicantInfoPage setDailyLimitForOnlinePurchases(String limit); + + @TypeInto(value = "NKK001_S007_E009", clear = true) + NKK001_S007_QuickCreditCardApplicantInfoPage setActivationPassword(String password); + + @Click("NKK001_S007_R005_%s") + NKK001_S007_QuickCreditCardApplicantInfoPage selectRepaymentMethod(RepaymentMethod repaymentMethod); + + @Click("NKK001_S007_R009_%s") + NKK001_S007_QuickCreditCardApplicantInfoPage selectStatementDistributionMethod(StatementDistributionMethod statementDistributionMethod); + + @Click("NKK001_S007_R001_%s") + NKK001_S007_QuickCreditCardApplicantInfoPage selectPinDistributionMethod(PinDistributionMethod pinDistributionMethod); + + @CustomAction + default NKK001_S007_QuickCreditCardApplicantInfoPage dismissPinChargeAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.dismissAlert(10); + return null; + } + + @Click("NKK001_S007_R007_%s") + NKK001_S007_QuickCreditCardApplicantInfoPage selectDebitAccountType(DebitAccountType debitAccountType); + + @Click("NKK001_S007_R003_%s") + NKK001_S007_QuickCreditCardApplicantInfoPage selectCreateAccountForCard(NeedAccount needAccount); + + @Click("NKK001_S007_R010_%s") + NKK001_S007_QuickCreditCardApplicantInfoPage selectGetInsurance(NeedInsurance needInsurance); + + @CustomAction + default NKK001_S007_QuickCreditCardApplicantInfoPageTransitions dismissClientNotificationAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> SAVE_BUTTON, Lookup.ID); + endpoint.dismissAlert(10); + return null; + } + + @Click(value = STATEMENT_DISTRIBUTION_BY_POST, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NKK001_S007_QuickCreditCardApplicantInfoPage clickDistributionByPost(); + + @Click(NOT_CONDUCTED_BY_EXTERNAL_ADVISOR) + NKK001_S007_QuickCreditCardApplicantInfoPage clickNotByExternalAdvisor(); + + @Click(SAVE_BUTTON) + NKK001_S007_QuickCreditCardApplicantInfoPageTransitions clickSaveButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK001_S007_QuickCreditCardApplicantInfoPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK001_S007_QuickCreditCardApplicantInfoPageTransitions.java new file mode 100644 index 0000000..539ee77 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK001_S007_QuickCreditCardApplicantInfoPageTransitions.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NKK001_S007_QuickCreditCardApplicantInfoPageTransitions extends WebFlow { + + DOK001_S001_SelectionOfSubmittedDocumentsPage onSelectionOfSubmittedDocumentsPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK002_OBR001_ConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK002_OBR001_ConfirmationPage.java new file mode 100644 index 0000000..d1e3277 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK002_OBR001_ConfirmationPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK002_OBR001_ConfirmationPage.PAGE_ID; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK002_OBR001_ConfirmationPage.PAGE_NAME; + +@Wait(PAGE_ID) +@Wait(value = PAGE_NAME, by = Lookup.XPATH) +public interface NKK002_OBR001_ConfirmationPage extends WebFlow { + + String PAGE_ID = "OBR001_S001_X002"; + String PAGE_NAME = "//div[text()='NKK002_OBR001_002']"; + String DO_NOT_CREATE_BUTTON = "OBR001_S001_B003"; + + @Click(DO_NOT_CREATE_BUTTON) + NKK002_OBR001_ConfirmationPageTransitions clickDoNotCreateButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK002_OBR001_ConfirmationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK002_OBR001_ConfirmationPageTransitions.java new file mode 100644 index 0000000..b0bb568 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK002_OBR001_ConfirmationPageTransitions.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NKK002_OBR001_ConfirmationPageTransitions extends WebFlow { + + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + TIS050_S001_SignerSelectionPage onAdvancedSignerSelectionPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK007_S001_ClipRequestPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK007_S001_ClipRequestPage.java new file mode 100644 index 0000000..081fd61 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK007_S001_ClipRequestPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK007_S001_ClipRequestPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +public interface NKK007_S001_ClipRequestPage extends WebFlow, StoreAccessor { + + String PAGE_ID_XPATH = "//div[text()='NKK007_S001']"; + String CONTINUE_BUTTON = "NKK007_S001_B001"; + String NEW_AMOUNT_INPUT = "NKK007_S001_E006"; + String CURRENT_AMOUNT_LABEL = "NKK007_S001_L008"; + + @Click(CONTINUE_BUTTON) + NKK007_S001_ClipRequestPageTransitionPage clickContinueToTransitionPage(); + + @CustomAction + default NKK007_S001_ClipRequestPage getAndFillEditedHigherAmount() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String currentAmount = endpoint.getText(CURRENT_AMOUNT_LABEL); + String editedAmount = currentAmount.replace(" ", "").replace(",00", ""); + Long higherEditedAmount = Long.parseLong(editedAmount) + 5000; + endpoint.type(() -> NEW_AMOUNT_INPUT, higherEditedAmount.toString(), true); + return null; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK007_S001_ClipRequestPageTransitionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK007_S001_ClipRequestPageTransitionPage.java new file mode 100644 index 0000000..4b36f21 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK007_S001_ClipRequestPageTransitionPage.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NKK007_S001_ClipRequestPageTransitionPage extends WebFlow { + + OBR001_S001_PrintInstructionPage onPrintInstructions(); + + NKK007_S005_FormalCheckPage onFormalCheckPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK007_S005_FormalCheckPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK007_S005_FormalCheckPage.java new file mode 100644 index 0000000..b99af4e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK007_S005_FormalCheckPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK007_S005_FormalCheckPage.FORMAL_CHECK_PAGE_ID_XPATH; + +@Wait(value = FORMAL_CHECK_PAGE_ID_XPATH, by = Lookup.XPATH) +public interface NKK007_S005_FormalCheckPage extends WebFlow { + + String FORMAL_CHECK_PAGE_ID_XPATH = "//div[text()='NKK007_S005']"; + String CONTINUE_BUTTON = "NKK007_S005_B001"; + + @Click(CONTINUE_BUTTON) + NEP002_S001_ApplicantPage clickFix(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK019_S001_DeclipRequestPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK019_S001_DeclipRequestPage.java new file mode 100644 index 0000000..6d5aeab --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NKK019_S001_DeclipRequestPage.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK019_S001_DeclipRequestPage.NKK019_S001_PAGE_ID_XPATH; + +@Wait(value = NKK019_S001_PAGE_ID_XPATH, by = Lookup.XPATH) +public interface NKK019_S001_DeclipRequestPage extends WebFlow, StoreAccessor { + + String NKK019_S001_PAGE_ID_XPATH = "//div[text()='NKK019_S001']"; + String CONTINUE_BUTTON = "NKK019_S001_B002"; + String NEW_CREDIT_AMOUNT_INPUT = "NKK019_S001_E005"; + String NEW_LIMIT_BANK_INPUT = "NKK019_S001_E006"; + String NEW_LIMIT_MOTO_INPUT = "NKK019_S001_E007"; + String NEW_LIMIT_INT_INPUT = "NKK019_S001_E010"; + String FIRST_CARD_RADIO = "NKK019_S001_G001-0"; + String CHANGE_LIMITS_BUTTON = "NKK019_S001_B001"; + + @Click(CONTINUE_BUTTON) + CAS001_S001_ScoringPage clickContinueToScoringPage(); + + @TypeInto(clear = true, value = NEW_CREDIT_AMOUNT_INPUT) + NKK019_S001_DeclipRequestPage fillNewCreditAmount(String newCreditAmount); + + @TypeInto(clear = true, value = NEW_LIMIT_BANK_INPUT) + @TypeInto(clear = true, value = NEW_LIMIT_MOTO_INPUT) + @TypeInto(clear = true, value = NEW_LIMIT_INT_INPUT) + NKK019_S001_DeclipRequestPage fillNewLimits(String newLimitBank, String newLimitMoto, String newLimitInt); + + @Click(FIRST_CARD_RADIO) + NKK019_S001_DeclipRequestPage clickSelectFirstCard(); + + @Click(value = CHANGE_LIMITS_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NKK019_S001_DeclipRequestPage clickChangeLimits(); + + @CustomAction + default NKK019_S001_DeclipRequestPage getAndFillEditedLowerAmount(Harness harenss) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String currentAmount = harenss.get("TOTAL_CREDIT_STORE"); + String editedAmount = currentAmount.replace(" ", "").replace(",00", ""); + Long higherEditedAmount = Long.parseLong(editedAmount) - 5000; + endpoint.type(() -> NEW_CREDIT_AMOUNT_INPUT, higherEditedAmount.toString(), true); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NeedAccount.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NeedAccount.java new file mode 100644 index 0000000..983b1db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NeedAccount.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum NeedAccount implements DynamicPathPart { + YES("Ano", "1"), + NO("Ne", "0"); + + private final String method; + + private final String methodId; + + NeedAccount(String method, String id) { + this.method = method; + this.methodId = id; + } + + public String getMethod() { + return method; + } + + @Override + public String getValue() { + return methodId; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NeedInsurance.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NeedInsurance.java new file mode 100644 index 0000000..908701f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/NeedInsurance.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum NeedInsurance implements DynamicPathPart { + YES("Ano", "1"), + NO("Ne", "0"); + + private final String method; + + private final String methodId; + + NeedInsurance(String method, String id) { + this.method = method; + this.methodId = id; + } + + public String getMethod() { + return method; + } + + @Override + public String getValue() { + return methodId; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/ONC001_QuickCreditCardRequestTransitionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/ONC001_QuickCreditCardRequestTransitionPage.java new file mode 100644 index 0000000..a644533 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/ONC001_QuickCreditCardRequestTransitionPage.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ONC001_QuickCreditCardRequestTransitionPage extends WebFlow { + + DOK001_S001_SelectionOfSubmittedDocumentsPage onSelectionOfSubmittedDocumentsPage(); + + NKK001_S007_QuickCreditCardApplicantDetailsPage onQuickCreditCardApplicationDetailsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/ONC001_S001_QuickCreditCardRequestPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/ONC001_S001_QuickCreditCardRequestPage.java new file mode 100644 index 0000000..8fa476d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/ONC001_S001_QuickCreditCardRequestPage.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ONC001_S001_QuickCreditCardRequestPage.CREDIT_AMOUNT_INPUT; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ONC001_S001_QuickCreditCardRequestPage.ONC001_S001_PAGE_LABEL_XPATH; + +@Wait(value = ONC001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CREDIT_AMOUNT_INPUT) +public interface ONC001_S001_QuickCreditCardRequestPage extends WebFlow, StoreAccessor { + String ONC001_S001_PAGE_LABEL_XPATH = "//div[text()='ONC001_S001']"; + String CREDIT_AMOUNT_INPUT = "ONC001_S001_E004"; + String ADVANTAGE_SELECT = "ONC001_S001_C005"; + String PROMO_EVENT_SELECT = "ONC001_S001_C001"; + String WITHOUT_RECOMMENDATION_CHECKBOX = "ONC001_S001_H003_1"; + String SEND_BUTTON = "ONC001_S001_B001"; + + @TypeInto(CREDIT_AMOUNT_INPUT) + ONC001_S001_QuickCreditCardRequestPage fillCreditAmountInput(String creditAmount); + + @Select(ADVANTAGE_SELECT) + ONC001_S001_QuickCreditCardRequestPage selectAdvantage(String advantage); + + @Select(PROMO_EVENT_SELECT) + ONC001_S001_QuickCreditCardRequestPage selectPromoEvent(String promoEventName); + + @Click(WITHOUT_RECOMMENDATION_CHECKBOX) + ONC001_S001_QuickCreditCardRequestPage clickWithoutRecommendationCheckbox(); + + @Click("ONC001_S001_H001_1") + ONC001_S001_QuickCreditCardRequestPage clickChangeApplicationParameters(); + + @CustomAction + default ONC001_S001_QuickCreditCardRequestPage dismissCardApplicationAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.dismissAlert(10); + return null; + } + + @Click("ONC001_S001_R001_%s") + ONC001_S001_QuickCreditCardRequestPage selectOverdraftInsurance(NeedInsurance insurance); + + @Click(value = SEND_BUTTON) + ONC001_QuickCreditCardRequestTransitionPage clickSendButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/OPN002_OBR001_DoClientSignApproveOfCcActivationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/OPN002_OBR001_DoClientSignApproveOfCcActivationPage.java new file mode 100644 index 0000000..ca2b05b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/OPN002_OBR001_DoClientSignApproveOfCcActivationPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN002_OBR001_DoClientSignApproveOfCcActivationPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +public interface OPN002_OBR001_DoClientSignApproveOfCcActivationPage extends WebFlow { + String PAGE_ID_XPATH = "//div[text()='OPN002_OBR001_001']"; + String YES_BUTTON = "OBR001_S001_B003"; + + @Click(YES_BUTTON) + OPN008_S001_SignContractPage clickYesToSignContractPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/OPN004_S001_ConfirmationOfDocumentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/OPN004_S001_ConfirmationOfDocumentsPage.java new file mode 100644 index 0000000..326b8d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/OPN004_S001_ConfirmationOfDocumentsPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.VDB001_S001_SecondBankerJoiningPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN004_S001_ConfirmationOfDocumentsPage.OPN004_S001_PAGE_ID_XPATH; + +@Wait(value = OPN004_S001_PAGE_ID_XPATH, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface OPN004_S001_ConfirmationOfDocumentsPage extends WebFlow { + String OPN004_S001_PAGE_ID_XPATH = "//div[contains(text(),'OPN004_S001')]"; + String CONFIRM_BUTTON = "OPN004_S001_B001"; + + @Click(CONFIRM_BUTTON) + VDB001_S001_SecondBankerJoiningPage confirmDocuments(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/OPN008_S001_SignContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/OPN008_S001_SignContractPage.java new file mode 100644 index 0000000..b5c2319 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/OPN008_S001_SignContractPage.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.VER012_OBR001_008_ContractSignedPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.openqa.selenium.WebElement; + +import java.util.List; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.FIRST_SIGNER_CHECKBOX; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.OPN008_S001_PAGE_LABEL_XPATH; + +@Wait(value = OPN008_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = FIRST_SIGNER_CHECKBOX, waitSecondsForElement = 60) +public interface OPN008_S001_SignContractPage extends WebFlow, StoreAccessor { + + String OPN008_S001_PAGE_LABEL_XPATH = "//div[text()='OPN008_S001']"; + String ALL_APPLICANT_CHECK_BOXES = "//input[contains(@id,'OPN008_S001_G001')]"; + String FIRST_SIGNER_CHECKBOX = "OPN008_S001_G001-0"; + String YES_BUTTON = "OPN008_S001_B009"; + String YES_CLIENT_BANKER_BUTTON = "OPN008_S001_B001"; + String CONTROL_BUTTON = "OPN008_S001_B005"; + String CONFIRM_BUTTON = "OPN008_S001_B006"; + String CONFIRM_BUTTON_XPATH = "//button[@id='" + CONFIRM_BUTTON + "' and not(@disabled)]"; + String APPLICATION_ID_LABEL = "OPN008_S001_L013"; + String APPLICATION_ID_KEY = "APPLICATION_ID"; + + @Click(FIRST_SIGNER_CHECKBOX) + OPN008_S001_SignContractPage clickFirstSignerCheckbox(); + + @Click(YES_BUTTON) + VER012_OBR001_008_ContractSignedPage clickYesButton(); + + @Click(YES_BUTTON) + OBR003_S001_ClientContractSignPage clickYesButtonToClientContractSignPage(); + + @CustomAction + default OPN008_S001_SignContractPage dismissPopupWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> YES_CLIENT_BANKER_BUTTON); + endpoint.acceptAlert(25); + return null; + } + + @Click(value = CONTROL_BUTTON, + andWait = @Wait(value = {CONFIRM_BUTTON}, until = Until.VISIBLE)) + OPN008_S001_SignContractPage clickControlButton(); + + @Click(value = CONFIRM_BUTTON_XPATH, by = Lookup.XPATH) + VER012_OBR001_008_ContractSignedPage clickConfirmButton(); + + @StoreElementContent(storeKey = APPLICATION_ID_KEY, value = APPLICATION_ID_LABEL) + OPN008_S001_SignContractPage storeApplicationID(); + + @Click(value = CONFIRM_BUTTON_XPATH, by = Lookup.XPATH) + OBR003_S001_ClientContractSignPage clickConfirmButtonToSignConfirmation(); + + @CustomAction + default OPN008_S001_SignContractPage clickAllSignatureCheckboxes() { + UfoEndpoint e = getEndpoint(UfoEndpoint.class); + List applicantCheckboxes = e.findAndGetListOfElements(ALL_APPLICANT_CHECK_BOXES, Lookup.XPATH); + for (WebElement applicantCheckbox : applicantCheckboxes){ + applicantCheckbox.click(); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ001_S007_CreditCardServiceOperationsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ001_S007_CreditCardServiceOperationsPage.java new file mode 100644 index 0000000..6ac0f72 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ001_S007_CreditCardServiceOperationsPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.service.POZ001_S008_BlockingPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.service.POZ001_S012_GeneratePinForCreditCardPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.ADC018_S001_EditOfMobileNumForAdcAndCreditCardPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.POZ001_S007_CreditCardServiceOperationsPage.POZ001_S007_PAGE_LABEL_XPATH; + +@Wait(value = POZ001_S007_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface POZ001_S007_CreditCardServiceOperationsPage extends WebFlow { + + String POZ001_S007_PAGE_LABEL_XPATH = "//div[text()='POZ001_S007']"; + String CONTACT_MOBILE_NUMBER_BUTTON = "POZ001_S007_B011"; + String DAILY_LIMITS_BUTTON = "POZ001_S007_B008"; + String BLOCK_CARD_BUTTON = "POZ001_S007_B004"; + String GENERATE_PIN_COPY_BUTTON = "POZ001_S007_B003"; + + @Click(CONTACT_MOBILE_NUMBER_BUTTON) + ADC018_S001_EditOfMobileNumForAdcAndCreditCardPage clickContactMobileNumber(); + + @Click(CONTACT_MOBILE_NUMBER_BUTTON) + POZ016_S001_Change3dSecureNumberOnMbcPage clickContactMobileNumberForMbc(); + + @Click(DAILY_LIMITS_BUTTON) + POZ001_S008_BlockingPage clickDailyLimits(); + + @Click(BLOCK_CARD_BUTTON) + POZ001_S008_BlockingPage clickBlockMenu(); + + @Click(GENERATE_PIN_COPY_BUTTON) + POZ001_S012_GeneratePinForCreditCardPage clickGeneratePin(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ001_S009_ServiceOperationsCreditCardSignConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ001_S009_ServiceOperationsCreditCardSignConfirmationPage.java new file mode 100644 index 0000000..7c78072 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ001_S009_ServiceOperationsCreditCardSignConfirmationPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.POZ001_S009_ServiceOperationsCreditCardSignConfirmationPage.POZ001_S009_PAGE_LABEL_XPATH; + +@Wait(value = POZ001_S009_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface POZ001_S009_ServiceOperationsCreditCardSignConfirmationPage extends WebFlow { + + String POZ001_S009_PAGE_LABEL_XPATH = "//div[text()='POZ001_S009']"; + String SIGN_CONFIRMATION_BUTTON = "POZ001_S009_B001"; + + @Click(SIGN_CONFIRMATION_BUTTON) + POZ001_S009_ServiceOperationsCreditCardSignConfirmationTransitions clickSignConfirmed(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ001_S009_ServiceOperationsCreditCardSignConfirmationTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ001_S009_ServiceOperationsCreditCardSignConfirmationTransitions.java new file mode 100644 index 0000000..107cfad --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ001_S009_ServiceOperationsCreditCardSignConfirmationTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface POZ001_S009_ServiceOperationsCreditCardSignConfirmationTransitions extends WebFlow { + + HPO019_S001_CreditCardDetailPage onCreditCardDetailPage(); + + POZ001_S007_CreditCardServiceOperationsPage onCreditCardServiceOperationsPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + HPO039_S001_MbcDetailPage onMbcDetailPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ015_S001_ChangeLimitsOnMbcPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ015_S001_ChangeLimitsOnMbcPage.java new file mode 100644 index 0000000..b58066a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ015_S001_ChangeLimitsOnMbcPage.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S002_SignerSelectionPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.POZ015_S001_ChangeLimitsOnMbcPage.POZ015_S001_PAGE_LABEL_XPATH; + +@Wait(value = POZ015_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface POZ015_S001_ChangeLimitsOnMbcPage extends WebFlow, StoreAccessor { + + String POZ015_S001_PAGE_LABEL_XPATH = "//div[text()='POZ015_S001']"; + String ATM_LIMIT_INPUT = "POZ015_S001_E004"; + String INT_LIMIT_INPUT = "POZ015_S001_E007"; + String MOTO_LIMIT_INPUT = "POZ015_S001_E006"; + String CHANGE_LIMIT_BUTTON = "POZ015_S001_B002"; + + @TypeInto(clear = true, value = ATM_LIMIT_INPUT) + POZ015_S001_ChangeLimitsOnMbcPage changeAtmLimit(String atmLimit); + + @TypeInto(clear = true, value = INT_LIMIT_INPUT) + POZ015_S001_ChangeLimitsOnMbcPage changeIntLimit(String intLimit); + + @TypeInto(clear = true, value = MOTO_LIMIT_INPUT) + POZ015_S001_ChangeLimitsOnMbcPage changeMotoLimit(String motoLimit); + + @Click(value = CHANGE_LIMIT_BUTTON, jsClick = true) + @DismissAlert(waitSecondsForAlert = 5) + POZ015_S001_ChangeLimitsOnMbcPage changeLimitsWithAlert(); + + @Click(value = CHANGE_LIMIT_BUTTON, jsClick = true) + TIS050_S002_SignerSelectionPage changeLimits(); + + @CustomAction + default POZ015_S001_ChangeLimitsOnMbcPage checkAndChangeLimits(String atmLimitExpected, String intLimitExpected, String motoLimitExpected, Harness harness) { + String atmLimitActual = harness.get("LIM_BANK_PAYMENT_CURRENT"); + String intLimitActual = harness.get("LIM_INT_PAYMENT_CURRENT"); + String posLimitActual = harness.get("LIM_MOTO_PAYMENT_CURRENT"); + + if (atmLimitActual.equals(atmLimitExpected)) { + atmLimitExpected = "4310"; + } + changeAtmLimit(atmLimitExpected); + harness.store("LIM_BANK_PAYMENT_CHANGED", atmLimitExpected); + + if (intLimitActual.equals(intLimitExpected)) { + intLimitExpected = "4310"; + } + changeIntLimit(intLimitExpected); + harness.store("LIM_INT_PAYMENT_CHANGED", intLimitExpected); + + if (posLimitActual.equals(motoLimitExpected)) { + motoLimitExpected = "4310"; + } + changeMotoLimit(motoLimitExpected); + harness.store("LIM_MOTO_PAYMENT_CHANGED", motoLimitExpected); + + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ016_S001_Change3dSecureNumberOnMbcPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ016_S001_Change3dSecureNumberOnMbcPage.java new file mode 100644 index 0000000..7765a77 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/POZ016_S001_Change3dSecureNumberOnMbcPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S002_SignerSelectionPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.POZ016_S001_Change3dSecureNumberOnMbcPage.POZ016_S001_PAGE_LABEL_XPATH; + +@Wait(value = POZ016_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 40) +public interface POZ016_S001_Change3dSecureNumberOnMbcPage extends WebFlow, StoreAccessor { + String POZ016_S001_PAGE_LABEL_XPATH = "//div[text()='POZ016_S001']"; + String EXISTING_NUMBER_LABEL = "POZ016_S001_L009"; + String NEW_NUMBER_INPUT = "POZ016_S001_E001"; + String NEW_NUMBER_BUTTON = "POZ016_S001_B001"; + + @CustomAction + default POZ016_S001_Change3dSecureNumberOnMbcPage fillNew3dSecureNumber() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (!endpoint.getText(EXISTING_NUMBER_LABEL).equals("720961931")) { + endpoint.type(() -> NEW_NUMBER_INPUT, "720961931", false); + } else { + endpoint.type(() -> NEW_NUMBER_INPUT, "702227334", false); + } + return null; + } + + @Click(value = NEW_NUMBER_BUTTON) + TIS050_S002_SignerSelectionPage clickToChange3dSecureNumberToSignerPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/PinDistributionMethod.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/PinDistributionMethod.java new file mode 100644 index 0000000..02e29ba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/PinDistributionMethod.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum PinDistributionMethod implements DynamicPathPart { + POST("poštou", "1"); + + private final String method; + + private final String methodId; + + PinDistributionMethod(String method, String id) { + this.method = method; + this.methodId = id; + } + + public String getMethod() { + return method; + } + + @Override + public String getValue() { + return methodId; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/ProductType.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/ProductType.java new file mode 100644 index 0000000..a364769 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/ProductType.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.SelectByValue; + +public enum ProductType implements SelectByValue { + NONE("(není)"), + MONEYCARD_GOLD("MoneyCard Gold"), + MONEYCARD_FIX("MoneyCard Fix"), + MONEYCARD_SMART("MONEYCARD SMART"), + CREDIT_ACCOUNT("Kreditní účet"); + + private final String type; + + ProductType(String type) { + this.type = type; + } + + public String getType() { + return type; + } + + @Override + public String getValue() { + return this.type; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/RepaymentMethod.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/RepaymentMethod.java new file mode 100644 index 0000000..3a0413f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/RepaymentMethod.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum RepaymentMethod implements DynamicPathPart { + INKASO("Inkasem z účtu", "2"), + FULL_AMOUNT_INKASO("100% inkaso", "9"); + + private final String method; + + private final String methodId; + + RepaymentMethod(String method, String id) { + this.method = method; + this.methodId = id; + } + + public String getMethod() { + return method; + } + + @Override + public String getValue() { + return methodId; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/StatementDistributionMethod.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/StatementDistributionMethod.java new file mode 100644 index 0000000..17b0059 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/StatementDistributionMethod.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum StatementDistributionMethod implements DynamicPathPart { + ELECTRONICALLY_IB("Elektronicky IB", "3"); + + private final String method; + private final String methodId; + + StatementDistributionMethod(String method, String id) { + this.method = method; + this.methodId = id; + } + + public String getMethod() { + return method; + } + + @Override + public String getValue() { + return methodId; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/service/POZ001_S008_BlockingPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/service/POZ001_S008_BlockingPage.java new file mode 100644 index 0000000..4470de0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/service/POZ001_S008_BlockingPage.java @@ -0,0 +1,96 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit.service; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.UfoBankaPageFlow; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S002_SignerSelectionPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.service.POZ001_S008_BlockingPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface POZ001_S008_BlockingPage extends UfoBankaPageFlow, StoreAccessor { + + String PAGE_ID_XPATH = "//div[text()='POZ001_S008']"; + String ATM_LIMIT_INPUT = "POZ001_S008_E003"; + String INT_LIMIT_INPUT = "POZ001_S008_E017"; + String MOTO_LIMIT_INPUT = "POZ001_S008_E012"; + String CHANGE_LIMIT_BUTTON = "POZ001_S008_B007"; + String BLOCK_CARD_BUTTON = "POZ001_S008_B003"; + String REASON_OF_BLOCK_SELECT = "POZ001_S008_C002"; + String BLOCK_DATE_INPUT = "POZ001_S008_E019"; + String CURRENT_DATE_LABEL = "XXX001_T001_L002"; + String BLOCK_TIME_INPUT = "POZ001_S008_E020"; + String TELL_NUM_INPUT = "POZ001_S008_E021"; + + @Select(REASON_OF_BLOCK_SELECT) + POZ001_S008_BlockingPage selectBlockingReason(String reason); + + @Click(BLOCK_CARD_BUTTON) + TIS004_S002_SignerSelectionPage clickBlockCard(); + + @Click(BLOCK_CARD_BUTTON) + TIS050_S002_SignerSelectionPage clickBlockCardToSignerPage(); + + @Click(BLOCK_CARD_BUTTON) + TIS050_S001_SignerSelectionPage clickBlockCreditCardToSignerPage(); + + @TypeInto(clear = true, value = ATM_LIMIT_INPUT) + POZ001_S008_BlockingPage changeAtmLimit(String atmLimit); + + @TypeInto(clear = true, value = INT_LIMIT_INPUT) + POZ001_S008_BlockingPage changeIntLimit(String intLimit); + + @TypeInto(clear = true, value = MOTO_LIMIT_INPUT) + POZ001_S008_BlockingPage changeMotoLimit(String motoLimit); + + @Click(value = CHANGE_LIMIT_BUTTON, jsClick = true) + @DismissAlert(waitSecondsForAlert = 5) + POZ001_S008_BlockingPage changeLimitsWithAlert(); + + @Click(value = CHANGE_LIMIT_BUTTON, jsClick = true) + TIS050_S001_SignerSelectionPage changeLimits(); + + @CustomAction + default POZ001_S008_BlockingPage checkAndChangeLimits(String atmLimitExpected, String intLimitExpected, String motoLimitExpected, Harness harness) { + String atmLimitActual = harness.get("LIM_BANK_PAYMENT_CURRENT"); + String intLimitActual = harness.get("LIM_INT_PAYMENT_CURRENT"); + String posLimitActual = harness.get("LIM_MOTO_PAYMENT_CURRENT"); + + if (atmLimitActual.equals(atmLimitExpected)) { + atmLimitExpected = atmLimitActual.replace("0","1"); + } + changeAtmLimit(atmLimitExpected); + harness.store("LIM_BANK_PAYMENT_CHANGED", atmLimitExpected); + + if (intLimitActual.equals(intLimitExpected)) { + intLimitExpected = intLimitActual.replace("0","1"); + } + changeIntLimit(intLimitExpected); + harness.store("LIM_INT_PAYMENT_CHANGED", intLimitExpected); + + if (posLimitActual.equals(motoLimitExpected)) { + motoLimitExpected = posLimitActual.replace("0","1"); + } + changeMotoLimit(motoLimitExpected); + harness.store("LIM_MOTO_PAYMENT_CHANGED", motoLimitExpected); + + return null; + } + + @CustomAction + default POZ001_S008_BlockingPage fillDate() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.type(() -> BLOCK_DATE_INPUT, endpoint.getText(CURRENT_DATE_LABEL), true); + return null; + } + + @TypeInto(value = BLOCK_TIME_INPUT, clear = true) + POZ001_S008_BlockingPage fillTime(String time); + + @TypeInto(TELL_NUM_INPUT) + POZ001_S008_BlockingPage fillTellNum(String tellNum); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/service/POZ001_S012_GeneratePinForCreditCardPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/service/POZ001_S012_GeneratePinForCreditCardPage.java new file mode 100644 index 0000000..78e1185 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/credit/service/POZ001_S012_GeneratePinForCreditCardPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.credit.service; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S002_SignerSelectionPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = POZ001_S012_GeneratePinForCreditCardPage.POZ001_S012_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface POZ001_S012_GeneratePinForCreditCardPage extends WebFlow { + + String POZ001_S012_PAGE_LABEL_XPATH = "//div[text()='POZ001_S012']"; + String CONTINUE_BUTTON = "POZ001_S012_B001"; + + @Click(CONTINUE_BUTTON) + TIS050_S001_SignerSelectionPage clickContinue(); + + @Click(CONTINUE_BUTTON) + TIS050_S002_SignerSelectionPage clickContinueToFopSingerSelectionPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/HPO009_S001_DebitCardDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/HPO009_S001_DebitCardDetailPage.java new file mode 100644 index 0000000..65f41f5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/HPO009_S001_DebitCardDetailPage.java @@ -0,0 +1,118 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.PLK014_S002_CardActivationPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.HPO009_S001_DebitCardDetailPage.HPO009_S001_PAGE_LABEL_XPATH; +import static org.junit.Assert.assertEquals; + +@Wait(value = HPO009_S001_PAGE_LABEL_XPATH, waitSecondsForElement = 60, by = Lookup.XPATH) + +public interface HPO009_S001_DebitCardDetailPage extends WebFlow, StoreAccessor { + String HPO009_S001_PAGE_LABEL_XPATH = "//div[text()='HPO009_S001']"; + String BACK_TO_CLIENT_BUTTON = "HPO009_S001_S014"; + String CARD_CANCELLATION = "HPO009_S001_B020"; + String CARD_ACTIVATION = "HPO009_S001_B021"; + String CARD_CHANGE_MOTO_INTERNET = "HPO009_S001_I009"; + String OP_NUMBER = "XXX001_T002_L112"; + String CARD_STATUS = "HPO009_S001_L003"; + String ACCOUNT_NUM = "HPO009_S001_L201"; + String CARD_PRESENCE = "HPO009_S001_L055"; + String CARD_NUM = "HPO009_S001_L038"; + String CARD_DESIGN = "HPO009_S001_L056"; + String CARD_TYPE = "HPO009_S001_L002"; + String MOTO_AND_INT = "HPO009_S001_L028"; + String LIM_INT = "HPO009_S001_L017"; + String LIM_MOTO = "HPO009_S001_L009"; + String LIM_BANK = "HPO009_S001_L008"; + String CHANGE_OF_DATA = "HPO009_S001_B022"; + String CARD_CHANGE_3DSECURE = "HPO009_S001_B002"; + String BLOCK_MENU = "HPO009_S001_I006"; + String BLOCKATION_BUTTON = "HPO009_S001_B018"; + String CARD_TYPE_LABEL = "HPO009_S001_L002"; + String CARD_FEE_TYPE_LABEL = "HPO009_S001_L022"; + String CARDHOLDER_NAME_LABEL = "HPO009_S001_L011"; + String ADDRESS_FOR_CARD_LABEL = "HPO009_S001_L020"; + String ADDRESS_FOR_PIN_LABEL = "HPO009_S001_L031"; + String ACTIVATION_PASSWORD_LABEL = "HPO009_S001_L007"; + String CARD_STATUS_LABEL = "HPO009_S001_L003"; + String GENERATE_PIN_BUTTON = "HPO009_S001_B027"; + + + @Click(value = BACK_TO_CLIENT_BUTTON, jsClick = true) + HKO101_S001_MainClientPage clickBackToClient(); + + @Click(value = CARD_CANCELLATION) + PLK007_S002_DebitCardCancellationPage clickCardCancellation(); + + @Click(value = CARD_ACTIVATION) + PLK014_S002_CardActivationPage clickCardActivation(); + + @Click(value = CARD_CHANGE_MOTO_INTERNET) + PLK033_S001_ChangeMotoIntTransactions clickMotoInt(); + + @Click(value = CARD_CHANGE_3DSECURE) + POZ002_S002_Change3dSecureRetailDebitCard click3dSecureChange(); + + @Click(value = BLOCK_MENU) + @Click(value = BLOCKATION_BUTTON) + PLK003_S002_BlockMenu clickBlockMenu(); + + @Click(CHANGE_OF_DATA) + PLK008_S001_ChangeInfoOfDebitCard clickChangeOfData(); + + @Click(GENERATE_PIN_BUTTON) + PLK013_S001_GeneratePinPage clickGeneratePinButton(); + + @CheckElementContent(CARD_TYPE_LABEL) + HPO009_S001_DebitCardDetailPage assertCardType(String type); + + @CheckElementContent(CARD_FEE_TYPE_LABEL) + HPO009_S001_DebitCardDetailPage assertCardFeeType(String type); + + @CheckElementContent(CARDHOLDER_NAME_LABEL) + HPO009_S001_DebitCardDetailPage assertCardholderName(String type); + + @CheckElementContent(ADDRESS_FOR_CARD_LABEL) + HPO009_S001_DebitCardDetailPage assertAddressForCard(String type); + + @CheckElementContent(ADDRESS_FOR_PIN_LABEL) + HPO009_S001_DebitCardDetailPage assertAddressForPin(String type); + + @CheckElementContent(LIM_BANK) + HPO009_S001_DebitCardDetailPage assertATMLimit(String limit); + + @CheckElementContent(LIM_MOTO) + HPO009_S001_DebitCardDetailPage assertPOSLimit(String limit); + + @CheckElementContent(LIM_INT) + HPO009_S001_DebitCardDetailPage assertInternetAMOTOLimit(String limit); + + @CheckElementContent(ACTIVATION_PASSWORD_LABEL) + HPO009_S001_DebitCardDetailPage assertActivationPassword(String limit); + + @CheckElementContent(CARD_STATUS_LABEL) + HPO009_S001_DebitCardDetailPage assertCardStatus(String limit); + + @CustomAction + default HPO009_S001_DebitCardDetailPage storeLimits(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + harness.store("LIM_INT_PAYMENT_CURRENT", endpoint.getText(LIM_INT).replace(" ", "")); + harness.store("LIM_MOTO_PAYMENT_CURRENT", endpoint.getText(LIM_MOTO).replace(" ", "")); + harness.store("LIM_BANK_PAYMENT_CURRENT", endpoint.getText(LIM_BANK).replace(" ", "")); + return null; + } + + @CustomAction + default HPO009_S001_DebitCardDetailPage checkLastName(String lastName) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String str = endpoint.getText("HPO009_S001_L011"); + String[] splitStr = str.split("\\s+"); + assertEquals(lastName, splitStr[1]); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC002_S001_SettingMbcPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC002_S001_SettingMbcPage.java new file mode 100644 index 0000000..1925e91 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC002_S001_SettingMbcPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.MBC002_S001_SettingMbcPage.*; + +@Wait(value = MBC002_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +public interface MBC002_S001_SettingMbcPage extends WebFlow { + String MBC002_S001_PAGE_LABEL_XPATH = "//div[text()='MBC002_S001']"; + + String CONTINUE_BUTTON = "MBC002_S001_B001"; + String REPAYMENT_TYPE_SELECT = "MBC002_S001_C001"; + String CREDIT_LIMIT_AMOUNT_INPUT = "MBC002_S001_E001"; + String ACCOUNT_PRO_BUSINESS_CHECK = "MBC002_S001_H002_1"; + + @TypeInto(CREDIT_LIMIT_AMOUNT_INPUT) + MBC002_S001_SettingMbcPage fillCreditLimitAmount(String creditLimitAmount); + + @Select(REPAYMENT_TYPE_SELECT) + MBC002_S001_SettingMbcPage selectRepaymentType(String repaymentType); + + @Click(value = ACCOUNT_PRO_BUSINESS_CHECK, jsClick = true) + MBC002_S001_SettingMbcPage checkAccountProBusiness(); + + @Click(CONTINUE_BUTTON) + MBC003_S001_BasicBusinessDataPage clickContinueToBasicBusinessDataPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC003_S001_BasicBusinessDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC003_S001_BasicBusinessDataPage.java new file mode 100644 index 0000000..59a07c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC003_S001_BasicBusinessDataPage.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.MBC003_S001_BasicBusinessDataPage.*; + +@Wait(value = MBC003_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +@Wait(CONTINUE_BUTTON) +public interface MBC003_S001_BasicBusinessDataPage extends WebFlow { + String MBC003_S001_PAGE_LABEL_XPATH = "//div[text()='MBC003_S001']"; + + String CONTINUE_BUTTON = "MBC003_S001_B001"; + String CONSENTS_CHECK = "MBC003_S001_H001_1"; + + String BUSINESS_NAME_INPUT = "MBC003_S001_E001"; + String DIC_INPUT = "MBC003_S001_E004"; + String STREET_INPUT = "MBC003_S001_E005"; + + String CITY_INPUT_XPATH = "//*[@id='MBC003_S001_X029']/div[2]/input[2]"; + String STREET_INPUT_XPATH = "//*[@id='MBC003_S001_X020']/div[2]/input[2]"; + + @Click(value = CONSENTS_CHECK, jsClick = true) + MBC003_S001_BasicBusinessDataPage checkConsents(); + + @TypeInto(value = BUSINESS_NAME_INPUT, clear = true) + MBC003_S001_BasicBusinessDataPage fillBusinessName(String businessName); + + @TypeInto(value = DIC_INPUT, clear = true) + MBC003_S001_BasicBusinessDataPage fillDic(String dic); + + @TypeInto(value = STREET_INPUT) + @Click(BUSINESS_NAME_INPUT) + MBC003_S001_BasicBusinessDataPage fillBusinessStreet(String street); + + @Click(value = CONTINUE_BUTTON, jsClick = true) + MBC004_S001_ComplementaryBusinessDataPage clickContinueToComplementaryBusinessDataPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC004_S001_ComplementaryBusinessDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC004_S001_ComplementaryBusinessDataPage.java new file mode 100644 index 0000000..c42cf99 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC004_S001_ComplementaryBusinessDataPage.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS070_S001_ScanDocumentsPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.MBC004_S001_ComplementaryBusinessDataPage.*; + +@Wait(value = MBC004_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +public interface MBC004_S001_ComplementaryBusinessDataPage extends WebFlow { + String MBC004_S001_PAGE_LABEL_XPATH = "//div[text()='MBC004_S001']"; + + String CONTINUE_BUTTON = "MBC004_S001_B001"; + + String APPROXIMATE_TURNOVER_INPUT = "MBC004_S001_E001"; + String NETTO_INCOME_INPUT = "MBC004_S001_E002"; + String HOUSEHOLD_NETTO_INCOME_INPUT = "MBC004_S001_E003"; + String NUMBER_OF_EMPLOYEES_INPUT = "MBC004_S001_E004"; + + String PEP_NO_RADIO = "MBC004_S001_R001_0"; + String CASHLESS_DOMESTIC_RADIO = "MBC004_S001_R004_2"; + String CZECH_TAX_RESIDENCY_YES_RADIO = "MBC004_S001_R005_1"; + String ESTABLISHMENT_ABROAD_NO_RADIO = "MBC004_S001_R006_0"; + String SILENT_COMPANION_NO_RADIO = "MBC004_S001_R007_0"; + + @Click(value = CZECH_TAX_RESIDENCY_YES_RADIO, jsClick = true) + MBC004_S001_ComplementaryBusinessDataPage clickCzechTaxResidencyOnly(); + + @Click(value = ESTABLISHMENT_ABROAD_NO_RADIO, jsClick = true) + MBC004_S001_ComplementaryBusinessDataPage clickNoEstablishmentAbroad(); + + @Click(value = SILENT_COMPANION_NO_RADIO, jsClick = true) + MBC004_S001_ComplementaryBusinessDataPage clickNoSilentCompanion(); + + @TypeInto(APPROXIMATE_TURNOVER_INPUT) + MBC004_S001_ComplementaryBusinessDataPage fillApproximateTurnover(String approxTurnover); + + @TypeInto(NETTO_INCOME_INPUT) + MBC004_S001_ComplementaryBusinessDataPage fillNettoIncome(String nettoIncome); + + @TypeInto(HOUSEHOLD_NETTO_INCOME_INPUT) + MBC004_S001_ComplementaryBusinessDataPage fillHouseholdNettoIncome(String householdNetto); + + @TypeInto(NUMBER_OF_EMPLOYEES_INPUT) + MBC004_S001_ComplementaryBusinessDataPage fillNumberOfEmployees(String numOfEmployees); + + @Click(value = CASHLESS_DOMESTIC_RADIO, jsClick = true) + MBC004_S001_ComplementaryBusinessDataPage clickCashlessDomesticTransactions(); + + @Click(value = PEP_NO_RADIO, jsClick = true) + MBC004_S001_ComplementaryBusinessDataPage clickNoPep(); + + @Click(CONTINUE_BUTTON) + DMS070_S001_ScanDocumentsPage clickContinueToScanDocumentsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC005_S001_IdCardDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC005_S001_IdCardDataPage.java new file mode 100644 index 0000000..e50bc7b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC005_S001_IdCardDataPage.java @@ -0,0 +1,84 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.MBC005_S001_IdCardDataPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = MBC005_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +public interface MBC005_S001_IdCardDataPage extends WebFlow { + String MBC005_S001_PAGE_LABEL_XPATH = "//div[text()='MBC005_S001']"; + + String CONTINUE_BUTTON = "MBC005_S001_B001"; + String CZECH_BIRTH_COUNTRY_BUTTON = "MBC005_S001_B006"; + String UNIFIED_ADDRESS_LOOKUP_BUTTON = "MBC005_S001_B007"; + String CZECH_PERMANENT_RESIDENCY_BUTTON = "MBC005_S001_B008"; + String ADDRESS_LOOKUP_FLOAT_BUTTON = "MBC005_S001_B011"; + String FOUND_ADDRESS_SELECT_BUTTON = "MBC005_S001_B012"; + + String SECOND_OTHER_ID_SELECT = "MBC005_S001_C003"; + + String FIRST_NAME_INPUT = "MBC005_S001_E001"; + String BIRTH_DATE_INPUT = "MBC005_S001_E002"; + String BIRTH_PLACE_INPUT = "MBC005_S001_E003"; + String ID_VALID_TILL_INPUT = "MBC005_S001_E007"; + String ID_CONTROL_NUMBER_INPUT = "MBC005_S001_E009"; + String ID_NUMBER_INPUT = "MBC005_S001_E011"; + String LAST_NAME_INPUT = "MBC005_S001_E012"; + String BIRTH_NUMBER_INPUT = "MBC005_S001_E015"; + String SEARCH_ADDRESS_INPUT = "MBC005_S001_E018"; + + String FIRST_FOUND_ADDRESS_RADIO = "MBC005_S001_G001-0"; + + String MALE_GENDER_RADIO = "MBC005_S001_R001_1"; + + @TypeInto(value = FIRST_NAME_INPUT, clear = true) + MBC005_S001_IdCardDataPage fillFirstName(String firstName); + + @TypeInto(value = LAST_NAME_INPUT, clear = true) + MBC005_S001_IdCardDataPage fillLastName(String lastName); + + @TypeInto(BIRTH_DATE_INPUT) + MBC005_S001_IdCardDataPage fillBirthDate(String birthDate); + + @TypeInto(BIRTH_PLACE_INPUT) + MBC005_S001_IdCardDataPage fillBirthPlace(String birthPlace); + + @TypeInto(ID_VALID_TILL_INPUT) + MBC005_S001_IdCardDataPage fillIdValidTill(String idValidTill); + + @TypeInto(ID_NUMBER_INPUT) + MBC005_S001_IdCardDataPage fillIdNumber(String idNumber); + + @TypeInto(BIRTH_NUMBER_INPUT) + MBC005_S001_IdCardDataPage fillBirthNumber(String birthNumber); + + @TypeInto(ID_CONTROL_NUMBER_INPUT) + MBC005_S001_IdCardDataPage fillIdControlNumber(String idControlNumber); + + @Click(UNIFIED_ADDRESS_LOOKUP_BUTTON) + MBC005_S001_IdCardDataPage clickMagnifyingGlass(); + + @Wait(explicitWaitSeconds = 2) + @TypeInto(value = SEARCH_ADDRESS_INPUT, clear = true) + MBC005_S001_IdCardDataPage typeAddress(String searchAddress); + + @Click(value = ADDRESS_LOOKUP_FLOAT_BUTTON, andWait = @Wait(value = FIRST_FOUND_ADDRESS_RADIO, until = Until.VISIBLE)) + MBC005_S001_IdCardDataPage clickSearchForAddress(); + + @Click(FIRST_FOUND_ADDRESS_RADIO) + @Click(value = FOUND_ADDRESS_SELECT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + MBC005_S001_IdCardDataPage clickFirstFoundAddressAndConfirm(); + + @Click(CZECH_PERMANENT_RESIDENCY_BUTTON) + MBC005_S001_IdCardDataPage clickCzechFlagPermanentResidency(); + + @Click(value = MALE_GENDER_RADIO, jsClick = true) + MBC005_S001_IdCardDataPage clickMaleGender(); + + @Click(CZECH_BIRTH_COUNTRY_BUTTON) + MBC005_S001_IdCardDataPage clickCzechBirthCountry(); + + @Click(CONTINUE_BUTTON) + MBC006_S001_PersonalContactDataPage continueToPersonalAndContactDataPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC006_S001_PersonalContactDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC006_S001_PersonalContactDataPage.java new file mode 100644 index 0000000..5bfbb2a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC006_S001_PersonalContactDataPage.java @@ -0,0 +1,64 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.MBC006_S001_PersonalContactDataPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = MBC006_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +public interface MBC006_S001_PersonalContactDataPage extends WebFlow { + String MBC006_S001_PAGE_LABEL_XPATH = "//div[text()='MBC006_S001']"; + + String CONTINUE_BUTTON = "MBC006_S001_B001"; + String UNIFIED_ADDRESS_LOOKUP_BUTTON = "MBC006_S001_B006"; + String CZECH_FLAG_BUTTON = "MBC006_S001_B007"; + String FOUND_ADDRESS_SELECT_BUTTON = "MBC006_S001_B012"; + String ADDRESS_LOOKUP_FLOAT_BUTTON = "MBC006_S001_B013"; + + String EDUCATION_LEVEL_SELECT = "MBC006_S001_C002"; + String MARITAL_STATUS_SELECT = "MBC006_S001_C003"; + + String EMAIL_INPUT = "MBC006_S001_E001"; + String PHONE_INPUT = "MBC006_S001_E002"; + String SEARCH_ADDRESS_INPUT = "MBC006_S001_E010"; + + String FIRST_FOUND_ADDRESS_RADIO = "MBC006_S001_G001-0"; + String CONSENTS_PHONE_EMAIL_CHECK = "MBC006_S001_H001_1"; + String CONSENTS_WHATSAPP_CHECK = "MBC006_S001_H002_1"; + + @Click(UNIFIED_ADDRESS_LOOKUP_BUTTON) + MBC006_S001_PersonalContactDataPage clickMagnifyingGlass(); + + @Wait(explicitWaitSeconds = 2) + @TypeInto(value = SEARCH_ADDRESS_INPUT, clear = true) + MBC006_S001_PersonalContactDataPage typeAddress(String searchAddress); + + @Click(value = ADDRESS_LOOKUP_FLOAT_BUTTON, andWait = @Wait(value = FIRST_FOUND_ADDRESS_RADIO, until = Until.VISIBLE)) + MBC006_S001_PersonalContactDataPage clickSearchForAddress(); + + @Click(FIRST_FOUND_ADDRESS_RADIO) + @Click(value = FOUND_ADDRESS_SELECT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + MBC006_S001_PersonalContactDataPage clickFirstFoundAddressAndConfirm(); + + @Click(value = CZECH_FLAG_BUTTON, jsClick = true) + MBC006_S001_PersonalContactDataPage clickCzechResidency(); + + @TypeInto(EMAIL_INPUT) + MBC006_S001_PersonalContactDataPage fillEmail(String email); + + @TypeInto(PHONE_INPUT) + MBC006_S001_PersonalContactDataPage fillPhone(String phone); + + @Select(EDUCATION_LEVEL_SELECT) + MBC006_S001_PersonalContactDataPage selectEducationLevel(String educationLevel); + + @Select(MARITAL_STATUS_SELECT) + MBC006_S001_PersonalContactDataPage selectMaritalStatus(String maritalStatus); + + @Click(value = CONSENTS_PHONE_EMAIL_CHECK, jsClick = true) + @Click(value = CONSENTS_WHATSAPP_CHECK, jsClick = true) + MBC006_S001_PersonalContactDataPage checkConsents(); + + @Click(CONTINUE_BUTTON) + MBC007_S001_PersonalDataSummaryPage clickContinueToMbcSummaryPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC007_S001_PersonalDataSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC007_S001_PersonalDataSummaryPage.java new file mode 100644 index 0000000..b6c6a71 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC007_S001_PersonalDataSummaryPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.MBC007_S001_PersonalDataSummaryPage.*; + +@Wait(value = MBC007_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +public interface MBC007_S001_PersonalDataSummaryPage extends WebFlow { + String MBC007_S001_PAGE_LABEL_XPATH = "//div[text()='MBC007_S001']"; + + String REQUEST_PRINT_BUTTON = "MBC007_S001_B001"; + + @Click(REQUEST_PRINT_BUTTON) + PSP004_S001_PrintPage clickPrintRequest(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC010_S001_MbcSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC010_S001_MbcSummaryPage.java new file mode 100644 index 0000000..5c33844 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/MBC010_S001_MbcSummaryPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.MBC010_S001_MbcSummaryPage.*; + +@Wait(value = MBC010_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 180) +public interface MBC010_S001_MbcSummaryPage extends WebFlow { + String MBC010_S001_PAGE_LABEL_XPATH = "//div[text()='MBC010_S001']"; + + String CONTINUE_BUTTON = "MBC010_S001_B001"; + + @Click(CONTINUE_BUTTON) + CHK001_S001_WaitingForModulationPage clickContinueToModulation(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/OBR003_S001_ClientContractSignPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/OBR003_S001_ClientContractSignPage.java new file mode 100644 index 0000000..9270948 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/OBR003_S001_ClientContractSignPage.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.APPLICATION_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 150) +public interface OBR003_S001_ClientContractSignPage extends WebFlow, StoreAccessor { + + String PAGE_LABEL_XPATH = "//div[text()='OBR003_S001']"; + String LEFT_BUTTON = "OBR003_S001_B001"; + String CENTER_BUTTON = "OBR003_S001_B002"; + String RIGHT_BUTTON = "OBR003_S001_B003"; + String ICO_INPUT = "OBR003_S001_E001"; + String PAGE_VERIFICATION_SUCCESSFUL_LABEL_XPATH = "//div[text()='Verifikace proběhla úspěšně']"; + String PRODUCTS_SUCCESSFULY_ESTABLISHED_LABEL_XPATH = "//div[text()='Produkty byly úspěšně založeny']"; + String APPLICATION_ID_DIV = "OBR003_S001_L002"; + + @Click(CENTER_BUTTON) + OBR003_S001_ClientContractSignPageTransitions clickCenterButton(); + + @Click(LEFT_BUTTON) + OBR003_S001_ClientContractSignPageTransitions clickLeftButton(); + + @Click(RIGHT_BUTTON) + OBR003_S001_ClientContractSignPageTransitions clickRightButton(); + + @TypeInto(value = ICO_INPUT) + OBR003_S001_ClientContractSignPage fillIco(String ico); + + @CheckElementPresent(value = PAGE_VERIFICATION_SUCCESSFUL_LABEL_XPATH, by = Lookup.XPATH) + OBR003_S001_ClientContractSignPage checkSuccessfulVerification(); + + @CheckElementPresent(value = PRODUCTS_SUCCESSFULY_ESTABLISHED_LABEL_XPATH, by = Lookup.XPATH) + OBR003_S001_ClientContractSignPage checkSuccessfulyEstablishedProducts(); + + @CustomAction + default OBR003_S001_ClientContractSignPage storeApplicationId(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String applicationID = endpoint.getText(APPLICATION_ID_DIV); + harness.store(APPLICATION_ID_KEY, applicationID.split(" ")[2]); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/OBR003_S001_ClientContractSignPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/OBR003_S001_ClientContractSignPageTransitions.java new file mode 100644 index 0000000..dcd8e67 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/OBR003_S001_ClientContractSignPageTransitions.java @@ -0,0 +1,130 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO019_S001_CreditCardDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO039_S001_MbcDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_001_CreditCardStartCreateInkasoPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.POD032_OBR001_001_SelectedInkasoTypeAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.*; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL004_S001_EditBusinessInfoPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL077_S001_ClientsBusinessAndPersonalData; +import cz.moneta.test.dsl.ufo.banka.pages.insurance.OBR001_S001_AppendixSignedPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP028_S001_SignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.VER017_S001_SecondBankerVerificationStatusPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL021_S002_SummaryOfProductFoundationPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL035_S002_SummaryOfProductFoundationRetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ADR004_S001_EnterContactAddressPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.components.BUF051_S001_CreateCurrentAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.po.ZAS001_S001_StatutoryAuthorityPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL024_S001_OneClickPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.saving.accounts.SPU001_S001_SavingAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.BPP006_S001_CheckSigningPersonsEmailPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL012_S001_RequestedDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface OBR003_S001_ClientContractSignPageTransitions extends WebFlow, StoreAccessor { + + BAL021_S002_SummaryOfProductFoundationPage onSummaryOfProductFoundationPage(); + + HPO009_S001_DebitCardDetailPage onDebitCardDetailPage(); + + OBR001_S001_AppendixSignedPage onAppendixSignedPage(); + + HPO019_S001_CreditCardDetailPage onCreditCardDetailPage(); + + POD032_OBR001_001_SelectedInkasoTypeAccountPage onSelectedInkasoTypeAccountPage(); + + HPO039_S001_MbcDetailPage onMbcDetailPage(); + + BUF051_S001_CreateCurrentAccountPage onCurrentAccountPage(); + + INK001_OBR001_001_CreditCardStartCreateInkasoPage onCreditCardStartCreateInkasoPage(); + + OBR003_S001_ClientContractSignPage onClientContractSignPage(); + + PSP004_S001_PrintPage onPrintPage(); + + BAL006_S002_ClientRequestPage onClientRequestPage(); + + KUL004_S001_EditBusinessInfoPage onEditBusinessInfoPage(); + + KUL077_S001_ClientsBusinessAndPersonalData onBusinessInfoPage(); + + CHK001_S001_WaitingForModulationPage onWaitingForModulationPage(); + + HKO101_S001_MainClientPage onMainClientPage(); + + ODS003_S001_AddCodeOfRecommendedPersonPage onAddCodeOfRecommendedPersonPage(); + + PVX002_S002_AccountDispositionOwnerPage onAccountDispositionOwnerPage(); + + BAL024_S001_OneClickPage onOneClickPage(); + + NPK001_S001_DebitCardRequestPage onDebitCardRequestPage(); + + ICO001_S001_BusinessControlPage onBusinessControlPage(); + + CIF111_S016_CreateNewCifPage onCreateNewCifPage(); + + NKK006_S001_CreditCardScoringResultPage onCreditCardScoringResultPage(); + + BPP001_S001_DocumentationSendPage onDocumentationSendPage(); + + TIS050_S002_SignerSelectionPage onSignerSelection(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPage(); + + KUL012_S001_RequestedDocumentsPage onRequestedDocumentsPage(); + + CIF009_S002_PersonalDataFON onPersonalDataFON(); + + NEP006_S001_ExpressScoringResultPage onMegaExpressRequestPage(); + + DMS001_S001_ScanDocumentsPage onScanDocumentsPage(); + + BPP006_S001_CheckSigningPersonsEmailPage onCheckSigningPersonsEmail(); + + SPU001_S001_SavingAccountPage onSavingsAccountPage(); + + SCN001_S001_IdDocumentsCopy onIdDocumentsCopy(); + + NFL006_S001_FlexikreditScoringResultPage onFlexikreditScoringPage(); + + BAL035_S002_SummaryOfProductFoundationRetailPage onSummaryOfProductFoundationRetailPage(); + + NEP028_S001_SignaturePage onSignaturePage(); + + NEP006_S001_ExpressScoringResultPage onExpressScoringResultPage(); + + AML002_S001_AmlSurveyPage onAmlSurveyPage(); + + VER017_S001_SecondBankerVerificationStatusPage onSecondBankerVerificationStatusPage(); + + ZAS001_S001_StatutoryAuthorityPage onStatutoryAuthorityPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + @CustomAction + default ADR004_S001_EnterContactAddressPage onEnterContactAddressPageWithPossibleAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isAlertPresent(3)) { + endpoint.acceptAlert(3); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK003_S002_BlockMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK003_S002_BlockMenu.java new file mode 100644 index 0000000..0e6baf4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK003_S002_BlockMenu.java @@ -0,0 +1,70 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.LOADER_DIV; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.PLK003_S002_BlockMenu.BLOCK_MENU_PAGE_LABEL_XPATH; + +@Wait(value = BLOCK_MENU_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface PLK003_S002_BlockMenu extends WebFlow, StoreAccessor { + + String BLOCK_MENU_PAGE_LABEL_XPATH = "//div[text()='PLK003_S002']"; + String TEMPORARILY_BLOCK_RADIO = "PLK003_S002_R001_25"; + String OWNER_OF_CARD_RADIO = "PLK003_S002_R002_1"; + String BLOCK_DATE_INPUT = "PLK003_S002_E002"; + String BLOCK_TIME_INPUT = "PLK003_S002_E004"; + String TELL_NUM_INPUT = "PLK003_S002_E006"; + String PRINT_BUTTON = "PLK003_S002_B002"; + String SAVE_BUTTON = "PLK003_S002_B003"; + String REAL_DATE = "XXX001_T001_L002"; + String LOST_REPORT = "PLK003_S002_R001_13"; + String DESCRIPTION = "PLK003_S002_V004"; + String CITY = "PLK003_S002_E005"; + + @Click(TEMPORARILY_BLOCK_RADIO) + PLK003_S002_BlockMenu clickTemporarilyBLock(); + + @Click(LOST_REPORT) + PLK003_S002_BlockMenu clickLostReport(); + + @Click(OWNER_OF_CARD_RADIO) + PLK003_S002_BlockMenu clickOwner(); + + @CustomAction + default PLK003_S002_BlockMenu fillDate() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.type(() -> BLOCK_DATE_INPUT, endpoint.getText(REAL_DATE), false); + return null; + } + + @TypeInto(BLOCK_TIME_INPUT) + PLK003_S002_BlockMenu fillTime(String time); + + @TypeInto(CITY) + PLK003_S002_BlockMenu fillCity(String city); + + @TypeInto(DESCRIPTION) + PLK003_S002_BlockMenu fillDescription(String description); + + @TypeInto(value = TELL_NUM_INPUT, andWait = @Wait(value = LOADER_DIV, by = Lookup.XPATH, until = Until.GONE)) + PLK003_S002_BlockMenu fillTellNum(String tellNum); + + @CustomAction + default PLK003_S002_BlockMenuTransitions clickPrintToSignerPageWithPossibleAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> PRINT_BUTTON); + if (endpoint.isAlertPresent(3)) { + endpoint.acceptAlert(3); + endpoint.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, SharedElements.LOAD_IMG_DIV_CLASS); + endpoint.click(() -> PRINT_BUTTON); + } + return null; + } + + @Click(SAVE_BUTTON) + @DismissAlert(waitSecondsForAlert = 3) + HPO009_S001_DebitCardDetailPage clickSave(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK003_S002_BlockMenuTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK003_S002_BlockMenuTransitions.java new file mode 100644 index 0000000..3869723 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK003_S002_BlockMenuTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S002_SignerSelectionPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PLK003_S002_BlockMenuTransitions extends WebFlow { + + TIS050_S001_SignerSelectionPage onSignerSelectionPageForRetail(); + + TIS050_S002_SignerSelectionPage onSignerSelectionPageForCommercial(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK007_S002_DebitCardCancellationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK007_S002_DebitCardCancellationPage.java new file mode 100644 index 0000000..629fe9a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK007_S002_DebitCardCancellationPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.TIS051_S001_DispositionGeneratePage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.PLK007_S002_DebitCardCancellationPage.PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface PLK007_S002_DebitCardCancellationPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='PLK007_S002']"; + String CANCEL_BUTTON = "PLK007_S002_B003"; + String REASON_TO_CANCELLATION = "PLK007_S002_C002"; + String CARD_RETURNED_RADIO = "PLK007_S002_R001_1"; + + @Select(value = REASON_TO_CANCELLATION, selectByOrder = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + PLK007_S002_DebitCardCancellationPage selectReasonToCancel(int indexOfReasonToCancel); + + @Click(CARD_RETURNED_RADIO) + PLK007_S002_DebitCardCancellationPage clickCardReturned(); + + @Click(value = CANCEL_BUTTON, by = Lookup.XPATH) + TIS051_S001_DispositionGeneratePage clickCancelPK(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK008_S001_ChangeInfoOfDebitCard.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK008_S001_ChangeInfoOfDebitCard.java new file mode 100644 index 0000000..9ecf8c9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK008_S001_ChangeInfoOfDebitCard.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = PLK008_S001_ChangeInfoOfDebitCard.PLK008_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 40) +public interface PLK008_S001_ChangeInfoOfDebitCard extends WebFlow, StoreAccessor { + + String PLK008_S001_PAGE_LABEL_XPATH = "//div[text()='PLK008_S001']"; + String POS_LIMIT_INPUT = "PLK008_S001_U006"; + String SAVE_BUTTON = "PLK008_S001_B003"; + String ATM_LIMIT_INPUT = "PLK008_S001_U005"; + String INT_LIMIT_INPUT = "PLK008_S001_E014"; + + @Click(value = SAVE_BUTTON, jsClick = true) + PLK008_S001_ChangeInfoOfDebitCard clickSaveFalse(); + + @Click(value = SAVE_BUTTON, jsClick = true) + OBR001_S001_PrintInstructionPage clickSaveTrue(); + + @DismissAlert(waitSecondsForAlert = 2) + PLK008_S001_ChangeInfoOfDebitCard dismissAlert(); + + @TypeInto(clear = true, value = ATM_LIMIT_INPUT) + PLK008_S001_ChangeInfoOfDebitCard changeAtmLimit(String atmLimit); + + @TypeInto(clear = true, value = INT_LIMIT_INPUT) + PLK008_S001_ChangeInfoOfDebitCard changeIntLimit(String intLimit); + + @TypeInto(clear = true, value = POS_LIMIT_INPUT) + PLK008_S001_ChangeInfoOfDebitCard changePosLimit(String posLimit); + + @CustomAction + default PLK008_S001_ChangeInfoOfDebitCard checkAndChangeLimits(String atmLimitExpected, String intLimitExpected, String posLimitExpected, Harness harness) { + String atmLimitActual = harness.get("LIM_BANK_PAYMENT_CURRENT"); + String intLimitActual = harness.get("LIM_INT_PAYMENT_CURRENT"); + String posLimitActual = harness.get("LIM_MOTO_PAYMENT_CURRENT"); + + if (atmLimitActual.equals(atmLimitExpected)) { + atmLimitExpected = atmLimitActual.replace("0", "1"); + } + changeAtmLimit(atmLimitExpected); + harness.store("LIM_BANK_PAYMENT_CHANGED", atmLimitExpected); + + if (intLimitActual.equals(intLimitExpected)) { + intLimitExpected = intLimitActual.replace("0", "1"); + } + changeIntLimit(intLimitExpected); + harness.store("LIM_INT_PAYMENT_CHANGED", intLimitExpected); + + if (posLimitActual.equals(posLimitExpected)) { + posLimitExpected = posLimitActual.replace("0", "1"); + } + changePosLimit(posLimitExpected); + harness.store("LIM_MOTO_PAYMENT_CHANGED", posLimitExpected); + + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK013_S001_GeneratePinPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK013_S001_GeneratePinPage.java new file mode 100644 index 0000000..8e08749 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK013_S001_GeneratePinPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.PLK013_S001_GeneratePinPage.PLK013_S001_PAGE_LABEL_XPATH; + +@Wait(value = PLK013_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 40) +public interface PLK013_S001_GeneratePinPage extends WebFlow { + String PLK013_S001_PAGE_LABEL_XPATH = "//div[text()='PLK013_S001']"; + String PIN_ON_MOBILE_NUMBER_RADIO = "PLK013_S001_R002"; + String GET_MOBILE_NUMBER_FROM_CIF_RADIO = "PLK013_S001_H001_1"; + String SAVE_BUTTON = "PLK013_S001_B003"; + + @Click(PIN_ON_MOBILE_NUMBER_RADIO) + PLK013_S001_GeneratePinPage clickPinOnMobileNumber(); + + @Click(GET_MOBILE_NUMBER_FROM_CIF_RADIO) + PLK013_S001_GeneratePinPage clickMobileNumberFromCif(); + + @Click(value = SAVE_BUTTON) + TIS050_S001_SignerSelectionPage clickSaveOnSignerSelectionPage(); + + @Click(value = SAVE_BUTTON) + OBR001_S001_PrintInstructionPage clickSaveOnPrintInstructionPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK033_S001_ChangeMotoIntTransactions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK033_S001_ChangeMotoIntTransactions.java new file mode 100644 index 0000000..56e5bf4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/PLK033_S001_ChangeMotoIntTransactions.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.PLK033_S001_ChangeMotoIntTransactions.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface PLK033_S001_ChangeMotoIntTransactions extends WebFlow, StoreAccessor { + + String PAGE_LABEL_XPATH = "//div[text()='PLK033_S001']"; + String INTERNET_ON_RADIO = "PLK033_S001_R002_1"; + String INTERNET_OFF_RADIO = "PLK033_S001_R002_0"; + String MOTO_ON_RADIO = "PLK033_S001_R001_1"; + String MOTO_OFF_RADIO = "PLK033_S001_R001_0"; + String DCC_ON_RADIO = "PLK033_S001_R003_1"; + String DCC_OFF_RADIO = "PLK033_S001_R003_0"; + String CHECKED_XPATH = "//input[@id='%s' and not(@checked)]"; + String CONTINUE_BUTTON = "PLK033_S001_B002"; + + @CustomAction + default PLK033_S001_ChangeMotoIntTransactions clickInternetAndMotoChange(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isElementPresent(String.format(CHECKED_XPATH, MOTO_ON_RADIO), Lookup.XPATH)) { + endpoint.jsClick((() -> MOTO_ON_RADIO)); + endpoint.dismissAlert(1); + endpoint.isElementPresent(String.format(CHECKED_XPATH, INTERNET_ON_RADIO), Lookup.XPATH); + harness.store("MOTO_INFO", "MOTO/INT ON"); + } else { + endpoint.jsClick((() -> MOTO_OFF_RADIO)); + endpoint.dismissAlert(1); + endpoint.isElementPresent(String.format(CHECKED_XPATH, INTERNET_OFF_RADIO), Lookup.XPATH); + harness.store("MOTO_INFO", "MOTO/INT OFF"); + } + return null; + } + + @CustomAction + default PLK033_S001_ChangeMotoIntTransactions clickDccChange(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isElementPresent(String.format(CHECKED_XPATH, DCC_ON_RADIO), Lookup.XPATH)) { + endpoint.jsClick((() -> DCC_ON_RADIO)); + harness.store("DCC_INFO", "DCC ON"); + } else { + endpoint.jsClick((() -> DCC_OFF_RADIO)); + harness.store("DCC_INFO", "DCC OFF"); + } + return null; + } + + @Click(value = CONTINUE_BUTTON) + PSP004_S001_PrintPage clickToPrint(); + + @Click(value = CONTINUE_BUTTON) + TIS050_S001_SignerSelectionPage clickToSignerSelectionPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/POD038_S001_InsuracesSignedPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/POD038_S001_InsuracesSignedPage.java new file mode 100644 index 0000000..ecd147e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/POD038_S001_InsuracesSignedPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = POD038_S001_InsuracesSignedPage.POD038_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +public interface POD038_S001_InsuracesSignedPage extends WebFlow { + + String POD038_S001_PAGE_LABEL_XPATH = "//div[text()='POD038_S001']"; + String SIGNED_BUTTON = "POD038_S001_B001"; + + @Click(value = SIGNED_BUTTON) + OBR001_S001_PrintInstructionPage clickSignedButtonAndContinue(); + + @Click(value = SIGNED_BUTTON) + PSP004_S001_PrintPage clickSignedAndContinueToPrint(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/POZ002_OBR001_002_ChildCardConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/POZ002_OBR001_002_ChildCardConfirmationPage.java new file mode 100644 index 0000000..ec0cfac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/POZ002_OBR001_002_ChildCardConfirmationPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = POZ002_OBR001_002_ChildCardConfirmationPage.POZ002_OBR001_002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface POZ002_OBR001_002_ChildCardConfirmationPage extends WebFlow { + + String POZ002_OBR001_002_PAGE_LABEL_XPATH = "//div[text()='POZ002_OBR001_002']"; + String SIGN_CONFIRMATION_BUTTON = "OBR001_S001_B003"; + + @Click(SIGN_CONFIRMATION_BUTTON) + HPO009_S001_DebitCardDetailPage clickSignConfirmed(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/POZ002_S002_Change3dSecureRetailDebitCard.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/POZ002_S002_Change3dSecureRetailDebitCard.java new file mode 100644 index 0000000..6792a29 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/cards/debit/POZ002_S002_Change3dSecureRetailDebitCard.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.ufo.banka.pages.cards.debit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.POZ002_S002_Change3dSecureRetailDebitCard.PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_ID_KEY; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface POZ002_S002_Change3dSecureRetailDebitCard extends WebFlow, StoreAccessor { + + String PAGE_LABEL_XPATH = "//div[text()='POZ002_S002']"; + String DOCUMENT_TYPE_COMBO = "POZ002_S002_C001"; + String DOCUMENT_NUMBER_INPUT = "POZ002_S002_E002"; + String EXISTING_NUMBER_LABEL = "POZ002_S002_L009"; + String NEW_NUMBER_INPUT = "POZ002_S002_E001"; + String NEW_NUMBER_BUTTON = "POZ002_S002_B001"; + + + @Select(value = DOCUMENT_TYPE_COMBO, selectByOrder = true) + POZ002_S002_Change3dSecureRetailDebitCard selectDocumentType(int indexNumOfDocumentType); + + @TypeInto(DOCUMENT_NUMBER_INPUT) + POZ002_S002_Change3dSecureRetailDebitCard fillDocumentNumber(String idCardNumber); + + @CustomAction + default POZ002_S002_Change3dSecureRetailDebitCard fillDocumentNumberFromHko(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.type(() -> DOCUMENT_NUMBER_INPUT, harness.get(CLIENT_ID_KEY), false); + return null; + } + + @CustomAction + default POZ002_S002_Change3dSecureRetailDebitCard fillNew3dSecureNumber() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (!endpoint.getText(EXISTING_NUMBER_LABEL).equals("720961931")) { + endpoint.type(() -> NEW_NUMBER_INPUT, "720961931", false); + } else { + endpoint.type(() -> NEW_NUMBER_INPUT, "702227334", false); + } + return null; + } + + @Click(value = NEW_NUMBER_BUTTON) + TIS050_S001_SignerSelectionPage clickToChange3dSecureNumber(); + + @Click(value = NEW_NUMBER_BUTTON) + PSP004_S001_PrintPage clickToChange3dSecureNumberToPrint(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/AML002_S001_AmlSurveyPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/AML002_S001_AmlSurveyPage.java new file mode 100644 index 0000000..4857701 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/AML002_S001_AmlSurveyPage.java @@ -0,0 +1,132 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface AML002_S001_AmlSurveyPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='AML002_S001']"; + String INCOME_FROM_BUSINESS_CHECKBOX = "AML002_S001_H001_2"; + String CONTINUE_BUTTON = "AML002_S001_B003"; + String END_BUTTON = "AML002_S001_B001"; + String NOT_POLITICALLY_EXPOSED_PERSON_RADIO = "AML002_S001_R001_34"; + String CZECH_REPUBLIC_TAXES_RESIDENCY_RADIO = "AML002_S001_R001_51"; + String NOT_ANOTHER_TAXES_RESIDENCY_RADIO = "AML002_S001_R001_34"; + String NOT_POLITICALLY_EXPOSED_RADIO = "AML002_S001_R001_780"; + String PROPERTY_VALUE_THIRD_OPTION_RADIO = "AML002_S001_R001_662"; + String PROPERTY_ORIGIN_HERITAGE_RADIO = "AML002_S001_H001_678"; + String POTENTIAL_CLIENT_NOT_WITH_THIRD_PERSON_RADIO = "AML002_S001_R001_581"; + String OTHER_INFORMATION_INPUT = "AML002_S001_M001"; + String REFUSED_IDENTIFY_NO_RADIO = "AML002_S001_R001_585"; + String CASH_PAYMENT_PREFERENCE_RADIO = "AML002_S001_R001_13"; + String NOT_CASH_PAYMENT_RADIO = "AML002_S001_R001_13"; + String CASH_MORE_THAN_25_PERCENT_NO_RADIO = "AML002_S001_R001_29"; + String RESIDENCY_PLACE_OF_BUSINESS_YES_RADIO = "AML002_S001_R001_685"; + String PASSIVE_NOT_FINANCIAL_ENTITY_TYPE_RADIO = "AML002_S001_R001_708"; + String PRIMARY_MMB_ACCOUNT_YES = "AML002_S001_R001_567"; + String FINANCIAL_INSTITUTION_RADIO = "AML002_S001_R001_705"; + String NOT_IN_SUSPICIOUS_MARKETS_RADIO = "AML002_S001_H001_764"; + String ACCOUNT_IN_DIFFERENT_BANK_NO_RADIO = "AML002_S001_R001_561"; + String DOMESTIC_PAYMENTS_PRESUMPTION_RADIO = "AML002_S001_H001_785"; + String POTENTIAL_RISK_NO_RADIO = "AML002_S001_R001_581"; + String MAX_EXPECTED_REVENUE_200K_RADIO = "AML002_S001_R001_825"; + String MAX_EXPECTED_REVENUE_500K_RADIO = "AML002_S001_R001_790"; + String REASON_FOR_STAY_IN_CZECHIA_RADIO = "AML002_S001_R001_550"; + String ACCOUNT_CURRENCY_INTEREST_RADIO = "AML002_S001_H001_569"; + String AVERAGE_NET_MONTHLY_INCOME_RADIO = "AML002_S001_R001_AML5.1.DO_500"; + String DOMINANT_PAYMENT_TYPE_RADIO = "AML002_S001_R001_17"; + String CRYPTO_TRANSACTIONS_NO_RADIO = "AML002_S001_R001_576"; + + + @Click(value = CRYPTO_TRANSACTIONS_NO_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickCryptoTransactionsNo(); + + @Click(value = DOMINANT_PAYMENT_TYPE_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickDominantPaymentType(); + + @Click(value = AVERAGE_NET_MONTHLY_INCOME_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickAverageNetMonthlyIncome(); + + @Click(value = ACCOUNT_CURRENCY_INTEREST_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickAccountCurrencyInterest(); + + @Click(value = REASON_FOR_STAY_IN_CZECHIA_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickReasonForStay(); + + @Click(value = INCOME_FROM_BUSINESS_CHECKBOX, jsClick = true) + AML002_S001_AmlSurveyPage clickIncomeFromBusiness(); + + @Click(value = NOT_POLITICALLY_EXPOSED_PERSON_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickNotPoliticallyExposedPerson(); + + @Click(value = CZECH_REPUBLIC_TAXES_RESIDENCY_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickCzechRepublicTaxesResidency(); + + @Click(value = NOT_ANOTHER_TAXES_RESIDENCY_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickNotAnotherTaxesResidency(); + + @Click(value = NOT_POLITICALLY_EXPOSED_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickNotPoliticallyExposed(); + + @Click(value = PROPERTY_VALUE_THIRD_OPTION_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickPropertyValueThirdOption(); + + @Click(value = PROPERTY_ORIGIN_HERITAGE_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickPropertyOriginHeritage(); + + @Click(value = POTENTIAL_CLIENT_NOT_WITH_THIRD_PERSON_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickPotentialClientNotWithThirdPerson(); + + @TypeInto(OTHER_INFORMATION_INPUT) + AML002_S001_AmlSurveyPage fillOtherInformation(String otherInformation); + + @Click(value = REFUSED_IDENTIFY_NO_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickRefusedIdentifyNo(); + + @Click(value = CASH_PAYMENT_PREFERENCE_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickCashPaymentPreference(); + + @Click(value = NOT_CASH_PAYMENT_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickNotCashPayment(); + + @Click(value = CASH_MORE_THAN_25_PERCENT_NO_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickCashMoreThan25PercentNo(); + + @Click(value = RESIDENCY_PLACE_OF_BUSINESS_YES_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickResidencyPlaceOfBusiness(); + + @Click(value = PASSIVE_NOT_FINANCIAL_ENTITY_TYPE_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickPassiveNotFinancialEntity(); + + @Click(value = PRIMARY_MMB_ACCOUNT_YES, jsClick = true) + AML002_S001_AmlSurveyPage clickPrimaryMmbAccountYes(); + + @Click(value = FINANCIAL_INSTITUTION_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickFinancialInstitution(); + + @Click(value = NOT_IN_SUSPICIOUS_MARKETS_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickNotInSuspiciousMarkets(); + + @Click(value = ACCOUNT_IN_DIFFERENT_BANK_NO_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickAccountInDifferentBankNo(); + + @Click(value = DOMESTIC_PAYMENTS_PRESUMPTION_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickDomesticPaymentsPresumption(); + + @Click(value = POTENTIAL_RISK_NO_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickPotentialRiskNo(); + + @Click(value = MAX_EXPECTED_REVENUE_200K_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickMaxExpectedRevenue200K(); + + @Click(value = MAX_EXPECTED_REVENUE_500K_RADIO, jsClick = true) + AML002_S001_AmlSurveyPage clickMaxExpectedRevenue500K(); + + @Click(CONTINUE_BUTTON) + AML002_S001_AmlSurveyPageTransitions clickContinue(); + + @Click(END_BUTTON) + AML002_S001_AmlSurveyPageTransitions clickEnd(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/AML002_S001_AmlSurveyPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/AML002_S001_AmlSurveyPageTransitions.java new file mode 100644 index 0000000..65725f9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/AML002_S001_AmlSurveyPageTransitions.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.GDP001_S001_ClientConsentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface AML002_S001_AmlSurveyPageTransitions extends WebFlow { + + AML002_S001_AmlSurveyPage onAmlSurveyPage(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPage(); + + PSP004_S001_PrintPage onPrintPage(); + + OBR003_S001_ClientContractSignPage onSignedByClient(); + + GDP001_S001_ClientConsentsPage onClientConsentPage(); + + DMS001_S001_ScanDocumentsPage onScanDocumentsPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/BAL020_OBR002_GeneralContractAndDispositionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/BAL020_OBR002_GeneralContractAndDispositionPage.java new file mode 100644 index 0000000..3fdbe47 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/BAL020_OBR002_GeneralContractAndDispositionPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL021_S002_SummaryOfProductFoundationPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.BAL020_OBR002_GeneralContractAndDispositionPage.BAL020_OBR002_001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.BAL020_OBR002_GeneralContractAndDispositionPage.OBR001_S001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, BAL020_OBR002_001_PAGE_LABEL_XPATH}, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface BAL020_OBR002_GeneralContractAndDispositionPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String BAL020_OBR002_001_PAGE_LABEL_XPATH = "//div[text()='BAL020_OBR002_001']"; + String SIGNED_BUTTON = "OBR001_S001_B003"; + + @Click(SIGNED_BUTTON) + BAL021_S002_SummaryOfProductFoundationPage continueToSummaryPage(); + + @Click(SIGNED_BUTTON) + OBR001_S001_PrintInstructionPage continueToPrintInstruction(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/DMS004_OBR001_ConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/DMS004_OBR001_ConfirmationPage.java new file mode 100644 index 0000000..c6e1c57 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/DMS004_OBR001_ConfirmationPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.DMS004_OBR001_ConfirmationPage.PAGE_ID; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.DMS004_OBR001_ConfirmationPage.PAGE_NAME; + +@Wait(PAGE_ID) +@Wait(value = PAGE_NAME, by = Lookup.XPATH, waitSecondsForElement = 40) +public interface DMS004_OBR001_ConfirmationPage extends WebFlow { + + String PAGE_ID = "OBR001_S001_X002"; + String PAGE_NAME = "//div[text()='DMS004_OBR001_001']"; + String OK_BUTTON = "OBR001_S001_B002"; + + @Click(OK_BUTTON) + TIS051_OBR001_ClientFinalSignatureConfirmationPage clickOK(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/DMS004_OBR001_CouldNotPrintFeeCatalogPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/DMS004_OBR001_CouldNotPrintFeeCatalogPage.java new file mode 100644 index 0000000..08abd07 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/DMS004_OBR001_CouldNotPrintFeeCatalogPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.TIS051_OBR001_ContractDocumentationPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.DMS004_OBR001_CouldNotPrintFeeCatalogPage.PAGE_ID; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.DMS004_OBR001_CouldNotPrintFeeCatalogPage.PAGE_NAME; + +@Wait(PAGE_ID) +@Wait(value = PAGE_NAME, by = Lookup.XPATH) +public interface DMS004_OBR001_CouldNotPrintFeeCatalogPage extends WebFlow { + + String PAGE_ID = "OBR001_S001_X002"; + String PAGE_NAME = "//div[text()='DMS004_OBR001_001']"; + String OK_BUTTON = "OBR001_S001_B002"; + + @Click(OK_BUTTON) + TIS051_OBR001_ContractDocumentationPage clickOK(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_001_CreditCardStartCreateInkasoPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_001_CreditCardStartCreateInkasoPage.java new file mode 100644 index 0000000..1405357 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_001_CreditCardStartCreateInkasoPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.inkaso.INK001_S004_InkasoAgreedAssignmentPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_001_CreditCardStartCreateInkasoPage.INK001_OBR001_001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_001_CreditCardStartCreateInkasoPage.OBR001_S001_PAGE_LABEL_XPATH; + +@Wait(value = {INK001_OBR001_001_PAGE_LABEL_XPATH, OBR001_S001_PAGE_LABEL_XPATH}, waitSecondsForElement = 80, by = Lookup.XPATH) +public interface INK001_OBR001_001_CreditCardStartCreateInkasoPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String OK_BUTTON = "OBR001_S001_B002"; + String INK001_OBR001_001_PAGE_LABEL_XPATH = "//div[text()='INK001_OBR001_001_(INK001_S001)']"; + + @Click(OK_BUTTON) + INK001_S004_InkasoAgreedAssignmentPage clickContinue(); + + @Click(OK_BUTTON) + PSP004_S001_PrintPage clickOkToPrint(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_004_ConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_004_ConfirmationPage.java new file mode 100644 index 0000000..c46de0f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_004_ConfirmationPage.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_ConfirmationPage.INK001_OBR001_004_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_ConfirmationPage.OBR001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_ConfirmationPage.PAGE_ID; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_ConfirmationPage.RIGHT_BUTTON; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, INK001_OBR001_004_PAGE_LABEL_XPATH}, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = {PAGE_ID, RIGHT_BUTTON}, waitSecondsForElement = 60) +public interface INK001_OBR001_004_ConfirmationPage extends WebFlow, StoreAccessor { + + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String INK001_OBR001_004_PAGE_LABEL_XPATH = "//div[text()='INK001_OBR001_004']"; + String PAGE_ID = "OBR001_S001_X002"; + String LEFT_BUTTON = "OBR001_S001_B001"; + String CENTER_BUTTON = "OBR001_S001_B002"; + String RIGHT_BUTTON = "OBR001_S001_B003"; + + @Click(LEFT_BUTTON) + INK001_OBR001_004_ConfirmationPageTransitions clickLeftButton(); + + @Click(CENTER_BUTTON) + INK001_OBR001_004_ConfirmationPageTransitions clickCenterButton(); + + @Click(RIGHT_BUTTON) + INK001_OBR001_004_ConfirmationPageTransitions clickRightButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_004_ConfirmationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_004_ConfirmationPageTransitions.java new file mode 100644 index 0000000..cd0603f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_004_ConfirmationPageTransitions.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.SIP001_S002_ListOfSIPOPayments; +import cz.moneta.test.dsl.ufo.banka.pages.main.adc.ADC026_S001_BankApiDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.components.INK001_OBR001_007_ContinueFromHandoverPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.DUP004_S002_AccountSelectionPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface INK001_OBR001_004_ConfirmationPageTransitions extends WebFlow { + + ADC026_S001_BankApiDetailPage onBankApiDetailPage(); + + INK001_OBR001_007_ContinueFromHandoverPage onContinueFromHandoverPage(); + + DUP004_S002_AccountSelectionPage onAccountSelectionPage(); + + SIP001_S002_ListOfSIPOPayments onListOfSIPOPaymentsPage(); + + INK001_OBR001_007_InkasoNonVerifiedIcbsPage onInkasoNonVerifiedIcbsPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_004_IsDocumentedSignedCorrectlyPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_004_IsDocumentedSignedCorrectlyPage.java new file mode 100644 index 0000000..cfc4283 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_004_IsDocumentedSignedCorrectlyPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_IsDocumentedSignedCorrectlyPage.INK001_OBR001_004_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_IsDocumentedSignedCorrectlyPage.OBR001_S001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, INK001_OBR001_004_PAGE_LABEL_XPATH}, waitSecondsForElement = 80, by = Lookup.XPATH) +public interface INK001_OBR001_004_IsDocumentedSignedCorrectlyPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_001']"; + String SIGNED_BUTTON = "OBR001_S001_B003"; + String INK001_OBR001_004_PAGE_LABEL_XPATH = "//div[text()='INK001_OBR001_004']"; + + @Click(SIGNED_BUTTON) + INK001_OBR001_007_InkasoNonVerifiedIcbsPage clickSigned(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_007_InkasoNonVerifiedIcbsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_007_InkasoNonVerifiedIcbsPage.java new file mode 100644 index 0000000..5b64d50 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_007_InkasoNonVerifiedIcbsPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_007_InkasoNonVerifiedIcbsPage.INK001_OBR001_007_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_007_InkasoNonVerifiedIcbsPage.OBR001_S001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, INK001_OBR001_007_PAGE_LABEL_XPATH}, waitSecondsForElement = 80, by = Lookup.XPATH) +public interface INK001_OBR001_007_InkasoNonVerifiedIcbsPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String CONTINUE_BUTTON = "OBR001_S001_B002"; + String INK001_OBR001_007_PAGE_LABEL_XPATH = "//div[text()='INK001_OBR001_007']"; + + @Click(CONTINUE_BUTTON) + INK001_OBR001_InkasoNonVerifiedIcbsPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_InkasoNonVerifiedIcbsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_InkasoNonVerifiedIcbsPageTransitions.java new file mode 100644 index 0000000..4425ef5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/INK001_OBR001_InkasoNonVerifiedIcbsPageTransitions.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface INK001_OBR001_InkasoNonVerifiedIcbsPageTransitions extends WebFlow { + + NKK006_OBR001_RequestForTransferOrder onRequestForTransferOrder(); + + BAL006_S002_ClientRequestPage onClientRequestPage(); + + HKO101_S001_MainClientPage onMainClientPage(); + + OPN008_S001_SignContractPage onSignConfirmationPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/KUL045_OBR001_WantToStartExpresBusinessPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/KUL045_OBR001_WantToStartExpresBusinessPage.java new file mode 100644 index 0000000..5a8ee4f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/KUL045_OBR001_WantToStartExpresBusinessPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.KUL045_OBR001_WantToStartExpresBusinessPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface KUL045_OBR001_WantToStartExpresBusinessPage extends WebFlow { + + String CONTINUE_BUTTON = "OBR001_S001_B002"; + String SKIP_BUTTON = "OBR001_S001_B003"; + String PAGE_ID_XPATH = "//div[text()='KUL045_OBR001_001']"; + + @Click(CONTINUE_BUTTON) + HKO101_S001_MainClientPage clickNoExpresBusiness(); + + @Click(CONTINUE_BUTTON) + HKO101_S001_MainClientPage clickSkip(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/NKK006_OBR001_RequestForTransferOrder.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/NKK006_OBR001_RequestForTransferOrder.java new file mode 100644 index 0000000..c9d7208 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/NKK006_OBR001_RequestForTransferOrder.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.NKK006_OBR001_RequestForTransferOrder.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, waitSecondsForElement = 80, by = Lookup.XPATH) +public interface NKK006_OBR001_RequestForTransferOrder extends WebFlow { + + String NO_BUTTON = "OBR001_S001_B003"; + String PAGE_ID_XPATH = "//div[text()='NKK006_OBR001_005']"; + + @Click(NO_BUTTON) + NKK006_OBR001_RequestForTransferOrderTransitions clickNo(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/NKK006_OBR001_RequestForTransferOrderTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/NKK006_OBR001_RequestForTransferOrderTransitions.java new file mode 100644 index 0000000..1886a6e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/NKK006_OBR001_RequestForTransferOrderTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NKK006_OBR001_RequestForTransferOrderTransitions extends WebFlow { + + HKO101_S001_MainClientPage onMainClientPage(); + + BAL006_S002_ClientRequestPage onClientRequestsPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/OBR001_S001_PrintInstructionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/OBR001_S001_PrintInstructionPage.java new file mode 100644 index 0000000..747fe1b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/OBR001_S001_PrintInstructionPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage.OBR001_S001_PAGE_LABEL_XPATH; + +@Wait(value = OBR001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 180) +public interface OBR001_S001_PrintInstructionPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String LEFT_BUTTON = "OBR001_S001_B001"; + String CENTER_BUTTON = "OBR001_S001_B002"; + String RIGHT_BUTTON = "OBR001_S001_B003"; + String ROOT_ID_KEY = "ROOT_ID_KEY"; + String ROOT_ID_XPATH = "OBR001_S001_L004"; + + @Click(RIGHT_BUTTON) + OBR001_S001_PrintInstructionPageTransitions clickRightButton(); + + @Click(CENTER_BUTTON) + OBR001_S001_PrintInstructionPageTransitions clickCenterButton(); + + @Click(LEFT_BUTTON) + OBR001_S001_PrintInstructionPageTransitions clickLeftButton(); + + @StoreElementContent(storeKey = ROOT_ID_KEY, value = ROOT_ID_XPATH) + OBR001_S001_PrintInstructionPage storeRootId(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/OBR001_S001_PrintInstructionPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/OBR001_S001_PrintInstructionPageTransitions.java new file mode 100644 index 0000000..3a4276d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/OBR001_S001_PrintInstructionPageTransitions.java @@ -0,0 +1,166 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO019_S001_CreditCardDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO039_S001_MbcDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.POZ001_S007_CreditCardServiceOperationsPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.HPO009_S001_DebitCardDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.*; +import cz.moneta.test.dsl.ufo.banka.pages.ib.ADC001_S001_IbPasswordKeyPage; +import cz.moneta.test.dsl.ufo.banka.pages.ib.ADC047_S001_IbSettingsPage; +import cz.moneta.test.dsl.ufo.banka.pages.insurance.IDD001_S001_IndividualInsuranceFormPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.ONC001_S001_NewCreditCardPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP001_S001_NewExpressPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP009_S001_Existing_ApplicationsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.*; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.*; +import cz.moneta.test.dsl.ufo.banka.pages.main.components.ADC001_OBR001_002_IbTypeSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.components.BUF051_S001_CreateCurrentAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV010_S001_PrintSignPadPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV019_OBR001_ConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.PVX043_S002_SignaturePatternsPage; +import cz.moneta.test.dsl.ufo.banka.pages.po.ZAS001_S001_StatutoryAuthorityPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL_OBR001_SmoothPaymentInfo; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK012_S001_DebitCardHolderSelectPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL021_S002_RecapitulationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL024_S001_OneClickPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.saving.accounts.SPU001_S001_SavingAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.*; +import cz.moneta.test.dsl.ufo.banka.pages.term.deposit.RTV001_S001_TermDepositPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface OBR001_S001_PrintInstructionPageTransitions extends WebFlow { + + KUL001_S001_SelectProductsPage onSelectProductsPage(); + + KUL066_S001_ProcessedRequestsPage onProcessedRequestsPage(); + + BPP001_S001_DocumentationSendPage onDocumentationSendPage(); + + BAL024_S001_OneClickPage onOneClickPage(); + + KUL051_S001_PreliminaryEvaluationPage onPreliminaryEvaluationPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + BUF051_S001_CreateCurrentAccountPage onCreateCurrentAccountPage(); + + ADR004_S001_EnterContactAddressPage onEnterContactAddressPage(); + + NPK001_S001_DebitCardRequestPage onDebitCardRequestPage(); + + GDP001_S003_ClientConsentsPoPage onClientConsentsPoPage(); + + PVX002_S002_AccountDispositionOwnerPage onAccountDispositionOwnerPage(); + + ODS003_S001_AddCodeOfRecommendedPersonPage onAddCodeOfRecommendedPersonPage(); + + EVY001_S003_ProductSummaryChangeAdcPage onProductSummaryChangeAdcPage(); + + TIS051_S001_DispositionGeneratePage onDispositionGeneratePage(); + + BAL021_S002_SummaryOfProductFoundationPage onSummaryOfProductFoundationPage(); + + BAL021_S002_RecapitulationPage onRecapitulationPage(); + + SPU031_S001_SavingsAccountConfirmationPage onSavingsAccountConfirmationPage(); + + OBR003_S001_ClientContractSignPage onClientContractSignPage(); + + HPO009_S001_DebitCardDetailPage onDebitCardDetailPage(); + + PSP004_S001_PrintPage onPrintPage(); + + HPO039_S001_MbcDetailPage onMbcDetailPage(); + + ADC001_S001_IbPasswordKeyPage onIbPasswordKeyPage(); + + HKO101_S001_MainClientPage onMainClientPage(); + + BAL001_S008_SummaryStartDocumentsPage onSummaryStartDocumentsPage(); + + OBR001_S001_PrintInstructionPageTransitions clickNo(); + + RTV001_S001_TermDepositPage onTermDepositPage(); + + ZAS001_S001_StatutoryAuthorityPage onStatutoryAuthorityPage(); + + KUL004_S008_ClientRequestDetailPage onClientRequestDetailPage(); + + SPU001_S001_SavingAccountPage onSavingsAccountPage(); + + CAS001_S001_ScoringPage onScoringPage(); + + TIS046_S001_DocumentsProvidedToClientPage onDocumentsProvidedToClientPage(); + + POZ001_S007_CreditCardServiceOperationsPage onCreditCardServiceOperationsPage(); + + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + ONC001_S001_NewCreditCardPage onNewCreditCardPage(); + + HPO019_S001_CreditCardDetailPage onCreditCardDetailPage(); + + CIF111_S016_CreateNewCifPage onCreateNewCif(); + + TIS050_S001_SignerSelectionPage onSignerPage(); + + TRP001_S002_ListOfStandingOrdersPage onListOfStandingOrdersPage(); + + INK001_S002_ListOfAuthorizationForDirectDebitsPage onListOfDirectDebitsPage(); + + IDD001_S001_IndividualInsuranceFormPage onInsurancePage(); + + KUL024_S001_ListOfPersons onListOfPersons(); + + DMS070_S001_ScanDocumentsPage onScanDocumentsPage(); + + DMS001_S001_ScanDocumentsPage onScanDocumentsPageDMS001(); + + PKU001_S002_CreatePaymentOrderPage onCreatePaymentOrderPage(); + + ADC019_OBR001_AdcCreationPage onAdcCreationPage(); + + POD003_S004_ClientCharged onClientChargedPage(); + + SIP001_S002_ListOfSIPOPayments onListOfSIPOPaymentsPage(); + + PVX043_S002_SignaturePatternsPage onSignaturePatternsPage(); + + BAL035_S002_SummaryOfProductFoundationRetailPage onSummaryOfProductFoundationRetailPage(); + + ADC012_S001_SettingADC onSettingADCPage(); + + ADC001_OBR001_002_IbTypeSelectionPage onIbTypeSelectionPage(); + + ADC047_S001_IbSettingsPage onIbSettingsPage(); + + OPN008_S001_SignContractPage onSignContractor(); + + NEP009_S001_Existing_ApplicationsPage onExistingApplicationsPage(); + + NEP001_S001_NewExpressPage onExpressPage(); + + NPV010_S001_PrintSignPadPage onPrintSignPadPage(); + + ZPL_OBR001_SmoothPaymentInfo onSmoothPaymentInfo(); + + NPK012_S001_DebitCardHolderSelectPage onDebitCardHolderSelectPage(); + + NKK006_S001_CreditCardScoringResultPage onCreditCardScoringResultPage(); + + TIS050_S002_SignerSelectionPage onSignerSelectionsPage(); + + DMS001_S001_ScanDocumentsPage onDocumentScanPage(); + + CIF113_S001_ChangeDataFO onChangeDataFO(); + + NPV019_OBR001_ConfirmationPage onConfirmationPage(); + + OBR003_S001_ClientContractSignPage onClientContractPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PKU001_OBR001_SignatureApprovalPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PKU001_OBR001_SignatureApprovalPage.java new file mode 100644 index 0000000..d9a7143 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PKU001_OBR001_SignatureApprovalPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.PKU001_S002_CreatePaymentOrderPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.PKU001_OBR001_SignatureApprovalPage.OBR001_S001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, PKU001_OBR001_SignatureApprovalPage.PKU001_OBR001_002_PAGE_LABEL_XPATH}, waitSecondsForElement = 90, by = Lookup.XPATH) +public interface PKU001_OBR001_SignatureApprovalPage extends WebFlow { + + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String YES_BUTTON = "OBR001_S001_B001"; + String PKU001_OBR001_002_PAGE_LABEL_XPATH = "//div[text()='PKU001_OBR001_002']"; + + @Click(YES_BUTTON) + PKU001_OBR001_TransactionVerifiedPage clickYesButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PKU001_OBR001_TransactionVerifiedPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PKU001_OBR001_TransactionVerifiedPage.java new file mode 100644 index 0000000..5bdb539 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PKU001_OBR001_TransactionVerifiedPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.PKU001_S002_CreatePaymentOrderPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = PKU001_OBR001_TransactionVerifiedPage.PAGE_ID_XPATH, waitSecondsForElement = 90, by = Lookup.XPATH) +public interface PKU001_OBR001_TransactionVerifiedPage extends WebFlow { + + String OK_BUTTON = "OBR001_S001_B002"; + String PAGE_ID_XPATH = "//div[text()='PKU001_OBR001_004_(S001)']"; + + @Click(OK_BUTTON) + PKU001_S002_CreatePaymentOrderPage clickOkButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/POD003_S004_ClientCharged.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/POD003_S004_ClientCharged.java new file mode 100644 index 0000000..1487014 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/POD003_S004_ClientCharged.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.INK001_S002_ListOfAuthorizationForDirectDebitsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.SIP001_S002_ListOfSIPOPayments; +import cz.moneta.test.dsl.ufo.banka.pages.main.TRP001_S002_ListOfStandingOrdersPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.POD003_S004_ClientCharged.POD003_S004_PAGE_LABEL_XPATH; + +@Wait(value = POD003_S004_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90) +@Wait(value = POD003_S004_ClientCharged.OK_BUTTON, waitSecondsForElement = 90) +public interface POD003_S004_ClientCharged extends WebFlow, StoreAccessor { + + String POD003_S004_PAGE_LABEL_XPATH = "//div[text()='POD003_S004']"; + String OK_BUTTON = "POD003_S004_B001"; + + @Click(OK_BUTTON) + SIP001_S002_ListOfSIPOPayments clickOk(); + + @Click(OK_BUTTON) + INK001_S002_ListOfAuthorizationForDirectDebitsPage clickOkToListOfAuthorizationForDirectDebitsPage(); + + @Click(OK_BUTTON) + TRP001_S002_ListOfStandingOrdersPage clickOkToListTp(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/POD032_OBR001_001_SelectedInkasoTypeAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/POD032_OBR001_001_SelectedInkasoTypeAccountPage.java new file mode 100644 index 0000000..c64a230 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/POD032_OBR001_001_SelectedInkasoTypeAccountPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.POD032_OBR001_001_SelectedInkasoTypeAccountPage.OBR001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.POD032_OBR001_001_SelectedInkasoTypeAccountPage.POD032_OBR001_001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, POD032_OBR001_001_PAGE_LABEL_XPATH}, waitSecondsForElement = 200, by = Lookup.XPATH) +public interface POD032_OBR001_001_SelectedInkasoTypeAccountPage extends WebFlow { + String CONTINUE_BUTTON = "OBR001_S001_B002"; + String POD032_OBR001_001_PAGE_LABEL_XPATH = "//div[text()='POD032_OBR001_001']"; + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + + @Click(CONTINUE_BUTTON) + INK001_OBR001_001_CreditCardStartCreateInkasoPage clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/POD045_OBR001_NeedToUpdateCifPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/POD045_OBR001_NeedToUpdateCifPage.java new file mode 100644 index 0000000..5949dbb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/POD045_OBR001_NeedToUpdateCifPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.components.BUF051_S001_CreateCurrentAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL001_S001_SelectProductsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.POD045_OBR001_NeedToUpdateCifPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface POD045_OBR001_NeedToUpdateCifPage extends WebFlow { + + String NO_UPDATE_NEEDED_BUTTON = "OBR001_S001_B003"; + String PAGE_ID_XPATH = "//div[text()='POD045_OBR001_001']"; + + @Click(NO_UPDATE_NEEDED_BUTTON) + BUF051_S001_CreateCurrentAccountPage clickNoUpdateNeededToCreateAccountPage(); + + @Click(NO_UPDATE_NEEDED_BUTTON) + KUL001_S001_SelectProductsPage clickNoUpdateNeededToSelectProduct(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PRP002_OBR001_PrintSpecialConditionsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PRP002_OBR001_PrintSpecialConditionsPage.java new file mode 100644 index 0000000..9ab85d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PRP002_OBR001_PrintSpecialConditionsPage.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.TIS051_OBR001_ContractDocumentationPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.PRP002_OBR001_PrintSpecialConditionsPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, waitSecondsForElement = 200, by = Lookup.XPATH) +public interface PRP002_OBR001_PrintSpecialConditionsPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[text()='TIS051_OBR001_003_(S005)']"; + String CONTINUE_BUTTON = "OBR001_S001_B003"; + + @Click(CONTINUE_BUTTON) + PVX002_S002_AccountDispositionOwnerPage continueToDispositionOwnerPage(); + + @Click(CONTINUE_BUTTON) + TIS051_OBR001_ContractDocumentationPage continueToContractDocumentationPage(); + + @Click(CONTINUE_BUTTON) + BAL020_OBR002_GeneralContractAndDispositionPage continueToGeneralContractAndDispositionPage(); + + @Click(CONTINUE_BUTTON) + TIS051_OBR001_ContractDocumentationPage clickSignedSpecialConditions(); + + @Click(CONTINUE_BUTTON) + PRP002_OBR001_PrintSpecialConditionsPageTransitions clickContinue(); + + @Click(CONTINUE_BUTTON) + OPN008_S001_SignContractPage onSignContractPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PRP002_OBR001_PrintSpecialConditionsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PRP002_OBR001_PrintSpecialConditionsPageTransitions.java new file mode 100644 index 0000000..ac67d12 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PRP002_OBR001_PrintSpecialConditionsPageTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage; +import cz.moneta.test.harness.support.web.Builder; + +public interface PRP002_OBR001_PrintSpecialConditionsPageTransitions extends Builder { + + BAL001_S008_SummaryStartDocumentsPage onSummaryStartDocumentsPage(); + + OPN008_S001_SignContractPage onSignContractPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S050_PreContractualInfromationPrintedPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S050_PreContractualInfromationPrintedPage.java new file mode 100644 index 0000000..03bce6f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S050_PreContractualInfromationPrintedPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.PSI001_S050_PreContractualInfromationPrintedPage.PSI001_S050_PAGE_LABEL_XPATH; + +@Wait(value = PSI001_S050_PAGE_LABEL_XPATH, waitSecondsForElement = 60, by = Lookup.XPATH) +public interface PSI001_S050_PreContractualInfromationPrintedPage extends WebFlow { + + String PSI001_S050_PAGE_LABEL_XPATH = "//div[text()='PSI001_S050']"; + String CONTINUE_BUTTON = "PSI001_S050_B002"; + String PAGE_ID = "PSI001_S050_X001"; + + @Click(CONTINUE_BUTTON) + PSI001_S051_DraftContractCopyPage clickContinueButtonToDraftContractCopyPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S051_DraftContractCopyPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S051_DraftContractCopyPage.java new file mode 100644 index 0000000..6f3c124 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S051_DraftContractCopyPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.PSI001_S051_DraftContractCopyPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.PSI001_S051_DraftContractCopyPage.PSI001_S051_PAGE_LABEL_XPATH; + +@Wait(value = PSI001_S051_PAGE_LABEL_XPATH, waitSecondsForElement = 60, by = Lookup.XPATH) +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 40) +public interface PSI001_S051_DraftContractCopyPage extends WebFlow { + + String PSI001_S051_PAGE_LABEL_XPATH = "//div[contains(text(),'PSI001_S051')]"; + String CONTINUE_BUTTON = "PSI001_S051_B002"; + String PRINT_BUTTON = "PSI001_S051_B001"; + + @Click(PRINT_BUTTON) + PSI001_S051_DraftContractCopyPageTransitions clickPrint(); + + @Click(CONTINUE_BUTTON) + PSI001_S051_DraftContractCopyPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S051_DraftContractCopyPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S051_DraftContractCopyPageTransitions.java new file mode 100644 index 0000000..5c6787e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S051_DraftContractCopyPageTransitions.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.DUP004_S004_CreditCardRepaymentMethodConfirmation; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.VER017_S001_SecondBankerVerificationStatusPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.VDB001_S001_SecondBankerJoiningPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PSI001_S051_DraftContractCopyPageTransitions extends WebFlow { + + BUF001_S001_CurrentAccountPage onCurrentAccountPage(); + + CHK001_S001_WaitingForModulationPage onWaitingForModulationPage(); + + DUP004_S004_CreditCardRepaymentMethodConfirmation onCreditCardRepaymentMethodConfirmation(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + OPN008_S001_SignContractPage onSignContractPage(); + + PSP004_S001_PrintPage onPrintPage(); + + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + VDB001_S001_SecondBankerJoiningPage onSecondBankerJoiningPage(); + + VER017_S001_SecondBankerVerificationStatusPage onSecondBankerVerificationPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S052_PreContractualInformationPrintPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S052_PreContractualInformationPrintPage.java new file mode 100644 index 0000000..dcded10 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PSI001_S052_PreContractualInformationPrintPage.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = PSI001_S052_PreContractualInformationPrintPage.PSI001_S052_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 40) +public interface PSI001_S052_PreContractualInformationPrintPage extends WebFlow { + String PSI001_S052_PAGE_LABEL_XPATH = "//div[text()='PSI001_S052']"; + String SKIP_PRINT_BUTTON = "PSI001_S052_B002"; + + @Click(SKIP_PRINT_BUTTON) + PSI001_S051_DraftContractCopyPage clickSkipPrint(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PVX011_OBR001_ConfirmationOfSignatureOwnerEmpowermentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PVX011_OBR001_ConfirmationOfSignatureOwnerEmpowermentPage.java new file mode 100644 index 0000000..c907897 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/PVX011_OBR001_ConfirmationOfSignatureOwnerEmpowermentPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.PVX011_OBR001_ConfirmationOfSignatureOwnerEmpowermentPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface PVX011_OBR001_ConfirmationOfSignatureOwnerEmpowermentPage extends WebFlow { + + String CONTINUE_BUTTON = "OBR001_S001_B003"; + String PAGE_ID_XPATH = "//div[text()='PVX011_OBR001_001_(PVX011_S001)' or text()='NPV016_OBR001_008']"; + + @Click(CONTINUE_BUTTON) + ODS003_S001_AddCodeOfRecommendedPersonPage clickClientAgreedAndSignedEmpowerment(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/SIP001_OBR001_007_DocumentConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/SIP001_OBR001_007_DocumentConfirmationPage.java new file mode 100644 index 0000000..11aada2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/SIP001_OBR001_007_DocumentConfirmationPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.SIP001_OBR001_007_DocumentConfirmationPage.*; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, SIP001_OBR001_007_PAGE_LABEL_XPATH}, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = {NO_SIGN_BUTTON, SHOW_PV_BUTTON, SIGNED_BUTTON}, waitSecondsForElement = 60) +public interface SIP001_OBR001_007_DocumentConfirmationPage extends WebFlow, StoreAccessor { + + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String SIP001_OBR001_007_PAGE_LABEL_XPATH = "//div[text()='SIP001_OBR001_007']"; + String SIGNED_BUTTON = "OBR001_S001_B003"; + String NO_SIGN_BUTTON = "OBR001_S001_B001"; + String SHOW_PV_BUTTON = "OBR001_S001_B002"; + + @Click(SIGNED_BUTTON) + POD003_S004_ClientCharged clickSigned(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/SPU031_S001_SavingsAccountConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/SPU031_S001_SavingsAccountConfirmationPage.java new file mode 100644 index 0000000..1f82359 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/SPU031_S001_SavingsAccountConfirmationPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.SPU031_S001_SavingsAccountConfirmationPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.SPU031_S001_SavingsAccountConfirmationPage.PAGE_ID; + +@Wait({PAGE_ID, CONTINUE_BUTTON}) +public interface SPU031_S001_SavingsAccountConfirmationPage extends WebFlow { + + String PAGE_ID = "SPU031_S001_X004"; + String CONTINUE_BUTTON = "SPU031_S001_B003"; + + @Click(CONTINUE_BUTTON) + PVX002_S002_AccountDispositionOwnerPage clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS004_S002_SignerSelectionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS004_S002_SignerSelectionPage.java new file mode 100644 index 0000000..f9e6204 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS004_S002_SignerSelectionPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage.TIS004_S002_PAGE_LABEL_XPATH; + +@Wait(value = TIS004_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90) +@Wait(value = CONTINUE_BUTTON) +public interface TIS004_S002_SignerSelectionPage extends WebFlow { + String TIS004_S002_PAGE_LABEL_XPATH = "//div[text()='TIS004_S002']"; + String PAGE_ID = "TIS004_S002_X004"; + String CONTINUE_BUTTON = "TIS004_S002_B001"; + String SIGN_CITIZEN_RADIO = "TIS004_S002_R001_0"; + + @Click(CONTINUE_BUTTON) + TIS004_S002_SignerSelectionPageTransitions clickContinue(); + + @Click(SIGN_CITIZEN_RADIO) + TIS004_S002_SignerSelectionPage chooseCitizen(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS004_S002_SignerSelectionPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS004_S002_SignerSelectionPageTransitions.java new file mode 100644 index 0000000..3627f51 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS004_S002_SignerSelectionPageTransitions.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.loans.flexikredit.OBR001_SpecialConditionsPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF001_S017_ClientSignatureConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.insurance.OBR001_S001_AppendixSignedPage; +import cz.moneta.test.dsl.ufo.banka.pages.insurance.POD038_OBR001_001_VerificationOfSignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF002_OBR002_001_InvestmentFormSigningPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface TIS004_S002_SignerSelectionPageTransitions extends WebFlow { + + INK001_OBR001_004_ConfirmationPage onConfirmationPage(); + + OPN008_S001_SignContractPage onSignContractPage(); + + TIS027_OBR001_PreContractualInformationPage onPreContractualInformationPage(); + + POD038_OBR001_001_VerificationOfSignaturePage onVerificationOfSignaturePage(); + + INF002_OBR002_001_InvestmentFormSigningPage onInvestmentFormSigningPage(); + + DMS004_OBR001_CouldNotPrintFeeCatalogPage onColdNotPrintFeeCatalogPage(); + + CIF001_S017_ClientSignatureConfirmationPage onSignConfirmationPage(); + + TIS051_OBR001_ContractDocumentationPage onPrintDocumentationPage(); + + OBR001_SpecialConditionsPage onSpecialConditionsPage(); + + OBR001_S001_AppendixSignedPage onAppendixSignedPage(); + + OBR001_S001_PrintInstructionPage onConfirmSignaturePage(); + + PSP004_S001_PrintPage onPrintPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS011_OBR001_SuspendDispositionPrintPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS011_OBR001_SuspendDispositionPrintPage.java new file mode 100644 index 0000000..80e4954 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS011_OBR001_SuspendDispositionPrintPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS011_OBR001_SuspendDispositionPrintPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface TIS011_OBR001_SuspendDispositionPrintPage extends WebFlow { + + String CONTINUE_BUTTON = "OBR001_S001_B003"; + String POSTPONED_PRINTING_BUTTON = "OBR001_S001_B001"; + String PAGE_ID_XPATH = "//div[text()='TIS011_OBR001_002']"; + + @Click(CONTINUE_BUTTON) + TIS011_OBR001_SuspendDispositionPrintPageTransitions clickPrintEmpowermentNow(); + + @Click(POSTPONED_PRINTING_BUTTON) + TIS051_OBR001_ClientFinalSignatureConfirmationPage clickDoNotPrintEmpowermentNow(); + + @Click(POSTPONED_PRINTING_BUTTON) + BAL001_S008_SummaryStartDocumentsPage clickPostponedPrintingButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS011_OBR001_SuspendDispositionPrintPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS011_OBR001_SuspendDispositionPrintPageTransitions.java new file mode 100644 index 0000000..5700c66 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS011_OBR001_SuspendDispositionPrintPageTransitions.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.WebFlow; + +public interface TIS011_OBR001_SuspendDispositionPrintPageTransitions extends WebFlow { + + TIS051_OBR001_ClientFinalSignatureConfirmationPage onClientFinalSignatureConfirmationPage(); + + DMS004_OBR001_ConfirmationPage onConfirmationPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS027_OBR001_PreContractualInformationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS027_OBR001_PreContractualInformationPage.java new file mode 100644 index 0000000..c356fe1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS027_OBR001_PreContractualInformationPage.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL021_S002_SummaryOfProductFoundationPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS027_OBR001_PreContractualInformationPage.OBR001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS027_OBR001_PreContractualInformationPage.TIS027_OBR002_001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, TIS027_OBR002_001_PAGE_LABEL_XPATH}, waitSecondsForElement = 200, by = Lookup.XPATH) +public interface TIS027_OBR001_PreContractualInformationPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String TIS027_OBR002_001_PAGE_LABEL_XPATH = "//div[contains(text(), 'TIS027_OBR002_001')]"; + String SIGNED_BUTTON = "OBR001_S001_B003"; + + @Click(SIGNED_BUTTON) + PRP002_OBR001_PrintSpecialConditionsPage clickOnSigned(); + + @Click(SIGNED_BUTTON) + TIS046_S001_DocumentsProvidedToClientPage clickOnSignedAndContinueDocumentsProvidedToClientPage(); + + @Click(SIGNED_BUTTON) + BAL021_S002_SummaryOfProductFoundationPage clickSignedGeneralAgreementAndGeneralDisposition(); + + @Click(SIGNED_BUTTON) + SPU031_S001_SavingsAccountConfirmationPage clickOnSignedAndContinueSavingsAccountConfirmationPage(); + + @Click(SIGNED_BUTTON) + TIS051_OBR001_ContractDocumentationPage clickOnSignedAndContinueToContractDocsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS046_S001_DocumentsProvidedToClientPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS046_S001_DocumentsProvidedToClientPage.java new file mode 100644 index 0000000..123eb0b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS046_S001_DocumentsProvidedToClientPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage.TIS046_S001_PAGE_LABEL_XPATH; + +@Wait(value = TIS046_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 60) +public interface TIS046_S001_DocumentsProvidedToClientPage extends WebFlow { + String TIS046_S001_PAGE_LABEL_XPATH = "//div[text()='TIS046_S001']"; + String CONTINUE_BUTTON = "TIS046_S001_B001"; + + @Click(CONTINUE_BUTTON) + TIS046_S001_DocumentsProvidedToClientPageTransitions clickContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS046_S001_DocumentsProvidedToClientPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS046_S001_DocumentsProvidedToClientPageTransitions.java new file mode 100644 index 0000000..46a6934 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS046_S001_DocumentsProvidedToClientPageTransitions.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.ib.ADC047_S001_IbSettingsPage; +import cz.moneta.test.dsl.ufo.banka.pages.insurance.PIP001_EnterIntoOtherInsurancePage; +import cz.moneta.test.dsl.ufo.banka.pages.insurance.POD038_OBR001_001_VerificationOfSignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.ADC012_S001_SettingADC; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.KAK001_OBR001_ClientCardSentByEmailPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF002_OBR002_001_InvestmentFormSigningPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF013_OBR002_001_ContractInvestmentFormSigningPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface TIS046_S001_DocumentsProvidedToClientPageTransitions extends WebFlow { + + PVX002_S002_AccountDispositionOwnerPage onAccountDispositionOwnerPage(); + + TIS051_OBR001_ContractDocumentationPage onContractDocumentationPage(); + + TIS046_S001_DocumentsProvidedToClientPage onDocumentsProvidedToClientPage(); + + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + INF002_OBR002_001_InvestmentFormSigningPage onInvestmentFormSigningPage(); + + INF013_OBR002_001_ContractInvestmentFormSigningPage onContractInvestmentFormSigningPage(); + + BAL001_S008_SummaryStartDocumentsPage onSummaryStartDocumentsPage(); + + POD038_OBR001_001_VerificationOfSignaturePage onVerificationOfSignaturePage(); + + PIP001_EnterIntoOtherInsurancePage onEnterIntoOtherInsurancePage(); + + ADC012_S001_SettingADC onSettingAdcPage(); + + KAK001_OBR001_ClientCardSentByEmailPage onClientCardSentByEmailPage(); + + PSP004_S001_PrintPage onPrintPage(); + + SPU031_S001_SavingsAccountConfirmationPage onSavingAccountConfirmation(); + + TIS050_S001_SignerSelectionPage onSingerSelectPage(); + + ADC047_S001_IbSettingsPage onIbSettingsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS051_OBR001_ClientFinalSignatureConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS051_OBR001_ClientFinalSignatureConfirmationPage.java new file mode 100644 index 0000000..e4b5e52 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS051_OBR001_ClientFinalSignatureConfirmationPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.adc.HPO008_OBR001_001_InfoPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.VDB001_S001_SecondBankerJoiningPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS051_OBR001_ClientFinalSignatureConfirmationPage.OBR001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS051_OBR001_ClientFinalSignatureConfirmationPage.TIS051_OBR001_003_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, TIS051_OBR001_003_PAGE_LABEL_XPATH}, waitSecondsForElement = 200, by = Lookup.XPATH) +public interface TIS051_OBR001_ClientFinalSignatureConfirmationPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String CONTINUE_BUTTON = "OBR001_S001_B003"; + String TIS051_OBR001_003_PAGE_LABEL_XPATH = "//div[text()='TIS051_OBR001_003_(S005)']"; + + @Click(CONTINUE_BUTTON) + BAL001_S008_SummaryStartDocumentsPage clickClientAgreedAndSignedAll(); + + @Click(CONTINUE_BUTTON) + VDB001_S001_SecondBankerJoiningPage continueToSecondBankerJoiningPage(); + + @Click(CONTINUE_BUTTON) + HPO008_OBR001_001_InfoPage clickClientAgreedAndSignedAllInfo(); + + @Click(CONTINUE_BUTTON) + BAL020_OBR002_GeneralContractAndDispositionPage continueToGeneralContractAndDispositionPage(); + + @Click(CONTINUE_BUTTON) + OPN008_S001_SignContractPage continueToSignContractPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS051_OBR001_ContractDocumentationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS051_OBR001_ContractDocumentationPage.java new file mode 100644 index 0000000..12a52bd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS051_OBR001_ContractDocumentationPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL020_OBR002_PrintGeneralContractPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS051_OBR001_ContractDocumentationPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS051_OBR001_ContractDocumentationPage.PAGE_ID_XPATH; + +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 80) +@Wait(value = PAGE_ID_XPATH, waitSecondsForElement = 80, by = Lookup.XPATH) +public interface TIS051_OBR001_ContractDocumentationPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[text()='TIS051_OBR001_003_(S005)']"; + String CONTINUE_BUTTON = "OBR001_S001_B003"; + + @Click(CONTINUE_BUTTON) + BAL020_OBR002_GeneralContractAndDispositionPage continueToGeneralContractAndDispositionPage(); + + @Click(CONTINUE_BUTTON) + BAL020_OBR002_PrintGeneralContractPage continueToPrintGeneralContractPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS701_S004_ConfirmationOfAccountHolding.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS701_S004_ConfirmationOfAccountHolding.java new file mode 100644 index 0000000..9767480 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TIS701_S004_ConfirmationOfAccountHolding.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.operations.ufoOperations.PSP701_S004_PrintTemplatePage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS701_S004_ConfirmationOfAccountHolding.TITLE; + +@Wait(value = TITLE, until = Until.VISIBLE) +public interface TIS701_S004_ConfirmationOfAccountHolding extends WebFlow { + + String TITLE = "TIS701_S004_L001"; + + String SEND_BUTTON = "TIS701_S004_B001"; + String LANGUAGE_COMBOBOX = "TIS701_S004_C001"; + String FEE_COMBOBOX = "TIS701_S004_C003"; + String REASON_TEXTDIV = "TIS701_S004_M001"; + + @Click(SEND_BUTTON) + PSP701_S004_PrintTemplatePage clickSend(); + + @Wait(value = LANGUAGE_COMBOBOX, until = Until.VISIBLE) + @Select(LANGUAGE_COMBOBOX) + TIS701_S004_ConfirmationOfAccountHolding selectLanguage(int value); + + @Wait(value = FEE_COMBOBOX, until = Until.VISIBLE) + @Select(FEE_COMBOBOX) + TIS701_S004_ConfirmationOfAccountHolding selectFee(int value); + + @Wait(value = REASON_TEXTDIV, until = Until.VISIBLE) + @TypeInto(REASON_TEXTDIV) + TIS701_S004_ConfirmationOfAccountHolding fillReason(String reason); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TRP001_OBR001_002_StandingOrderConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TRP001_OBR001_002_StandingOrderConfirmationPage.java new file mode 100644 index 0000000..f22e13e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TRP001_OBR001_002_StandingOrderConfirmationPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.TRP001_OBR001_002_StandingOrderConfirmationPage.*; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, TRP001_OBR001_002_PAGE_LABEL_XPATH}, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = {CENTER_BUTTON}, waitSecondsForElement = 60) +public interface TRP001_OBR001_002_StandingOrderConfirmationPage extends WebFlow, StoreAccessor { + + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String TRP001_OBR001_002_PAGE_LABEL_XPATH = "//div[text()='TRP001_OBR001_002_(S017)']"; + String RIGHT_BUTTON = "OBR001_S001_B003"; + String LEFT_BUTTON = "OBR001_S001_B001"; + String CENTER_BUTTON = "OBR001_S001_B002"; + String STANDING_ORDER_ID_KEY = "STANDING_ORDER_ID_KEY"; + String STANDING_ORDER_ID_XPATH = "OBR001_S001_L004"; + + @Click(RIGHT_BUTTON) + TRP001_OBR001_002_StandingOrderConfirmationPage clickSigned(); + + @StoreElementContent(storeKey = STANDING_ORDER_ID_KEY, value = STANDING_ORDER_ID_XPATH) + TRP001_OBR001_002_StandingOrderConfirmationPage storeStandingOrderId(); + + @Click(CENTER_BUTTON) + TRP001_OBR001_002_StandingOrderConfirmationPageTransition clickContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TRP001_OBR001_002_StandingOrderConfirmationPageTransition.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TRP001_OBR001_002_StandingOrderConfirmationPageTransition.java new file mode 100644 index 0000000..508c454 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/TRP001_OBR001_002_StandingOrderConfirmationPageTransition.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.TRP001_S002_ListOfStandingOrdersPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.HPO001_S001_CurrentAccountDetailsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface TRP001_OBR001_002_StandingOrderConfirmationPageTransition extends WebFlow { + + POD003_S004_ClientCharged onClientChargedPage(); + + TRP001_S002_ListOfStandingOrdersPage onListOfStandingOrderPage(); + + HPO001_S001_CurrentAccountDetailsPage onCurrentAccountDetailsPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/VER012_OBR001_008_ContractSignedPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/VER012_OBR001_008_ContractSignedPage.java new file mode 100644 index 0000000..b9fd096 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/VER012_OBR001_008_ContractSignedPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.VER012_OBR001_008_ContractSignedPage.VER012_OBR001_008_PAGE_LABEL_XPATH; + +@Wait(value = VER012_OBR001_008_PAGE_LABEL_XPATH, waitSecondsForElement = 80, by = Lookup.XPATH) +public interface VER012_OBR001_008_ContractSignedPage extends WebFlow { + + String OK_BUTTON = "OBR001_S001_B002"; + String VER012_OBR001_008_PAGE_LABEL_XPATH = "//div[text()='VER012_OBR001_008_(VER012_S006)']"; + + @Click(OK_BUTTON) + POD032_OBR001_001_SelectedInkasoTypeAccountPage clickOk(); + + @Click(OK_BUTTON) + VER012_OBR001_008_ContractSignedPageTransitions clickContinueButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/VER012_OBR001_008_ContractSignedPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/VER012_OBR001_008_ContractSignedPageTransitions.java new file mode 100644 index 0000000..40dfa37 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/VER012_OBR001_008_ContractSignedPageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC006_S001_ConsolidationScoringPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface VER012_OBR001_008_ContractSignedPageTransitions extends WebFlow { + + NFL006_S001_FlexikreditScoringResultPage onFlexikreditScoringResultPage(); + + NEP006_S001_ExpressScoringResultPage onExpressScoringResultPage(); + + UDC006_S001_ConsolidationScoringPage onConsolidationScoringPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/ZZJ001_S001_MeetingRecordPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/ZZJ001_S001_MeetingRecordPage.java new file mode 100644 index 0000000..30f9682 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/ZZJ001_S001_MeetingRecordPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = ZZJ001_S001_MeetingRecordPage.ZZJ001_S001_PAGE_LABEL_XPATH, waitSecondsForElement = 60, by = Lookup.XPATH) +public interface ZZJ001_S001_MeetingRecordPage extends WebFlow { + + String ZZJ001_S001_PAGE_LABEL_XPATH = "//div[text()='ZZJ001_S001']"; + String NO_INFO_ADDED_RADIO = "ZZJ001_S001_R001_0"; + String NO_COMMENT_RADIO = "ZZJ001_S001_R002_0"; + String CONTINUE_BUTTON = "ZZJ001_S001_B002"; + String PAPER_FORM_RADIO = "ZZJ001_S001_R003_1"; + + @Click(value = NO_INFO_ADDED_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + ZZJ001_S001_MeetingRecordPage clickNoInfoAdded(); + + @Click(value = NO_COMMENT_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + ZZJ001_S001_MeetingRecordPage clickNoComment(); + + @Click(value = PAPER_FORM_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + ZZJ001_S001_MeetingRecordPage clickPaperForm(); + + @Click(CONTINUE_BUTTON) + ZZJ001_S001_MeetingRecordPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/ZZJ001_S001_MeetingRecordPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/ZZJ001_S001_MeetingRecordPageTransitions.java new file mode 100644 index 0000000..8afa13c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/common/pages/ZZJ001_S001_MeetingRecordPageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.common.pages; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ZZJ001_S001_MeetingRecordPageTransitions extends WebFlow { + + PSP004_S001_PrintPage onPrintPage(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPage(); + + TIS050_S002_SignerSelectionPage onCommercialSignerSelectionPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ADC018_S001_EditOfMobileNumForAdcAndCreditCardPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ADC018_S001_EditOfMobileNumForAdcAndCreditCardPage.java new file mode 100644 index 0000000..a34633e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ADC018_S001_EditOfMobileNumForAdcAndCreditCardPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.POZ002_S002_Change3dSecureRetailDebitCard; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = ADC018_S001_EditOfMobileNumForAdcAndCreditCardPage.ADC018_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface ADC018_S001_EditOfMobileNumForAdcAndCreditCardPage extends WebFlow, StoreAccessor { + + String ADC018_S001_PAGE_LABEL_XPATH = "//div[text()='ADC018_S001']"; + String O2_OPERATOR_RADIO = "ADC018_S001_R001_1"; + String PRODUCT_TO_CHANGE_3D_SECURE_NUMBER_XPATH = "//table[@id='ADC018_S001_G003_UfoTable']//td[contains(text(), '%s')]"; + String SEND_BUTTON = "ADC018_S001_B001"; + + @Click(O2_OPERATOR_RADIO) + ADC018_S001_EditOfMobileNumForAdcAndCreditCardPage clickO2Operator(); + + @Click(value = PRODUCT_TO_CHANGE_3D_SECURE_NUMBER_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH) + ADC018_S001_EditOfMobileNumForAdcAndCreditCardPage clickProductToChange3dSecureNum(String cardNumber); + + @Click(SEND_BUTTON) + @AcceptAlert(waitSecondsForAlert = 5) + POZ002_S002_Change3dSecureRetailDebitCard clickSend(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ADC019_OBR001_AdcCreationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ADC019_OBR001_AdcCreationPage.java new file mode 100644 index 0000000..02447d1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ADC019_OBR001_AdcCreationPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.PVX043_S002_SignaturePatternsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.ADC019_OBR001_AdcCreationPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +public interface ADC019_OBR001_AdcCreationPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[contains(text(), 'ADC019_OBR001_001')]"; + String NO_ADC_BUTTON = "OBR001_S001_B002"; + + @Click(NO_ADC_BUTTON) + PVX043_S002_SignaturePatternsPage clickNoAdcButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF001_S017_ClientSignatureConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF001_S017_ClientSignatureConfirmationPage.java new file mode 100644 index 0000000..e4db77a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF001_S017_ClientSignatureConfirmationPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CIF001_S017_ClientSignatureConfirmationPage.CIF001_S017_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CIF001_S017_ClientSignatureConfirmationPage.CONTINUE_BUTTON; + +@Wait(value = CIF001_S017_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 80) +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 80) +public interface CIF001_S017_ClientSignatureConfirmationPage extends WebFlow { + String CIF001_S017_PAGE_LABEL_XPATH = "//div[text()='CIF001_S017']"; + String CONTINUE_BUTTON = "CIF001_S017_B001"; + String COPY_ID_NO_CHECKBOX = "CIF001_S017_R001_0"; + + @Click(CONTINUE_BUTTON) + CIF001_S017_ClientSignatureConfirmationPageTransitions clickContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF001_S017_ClientSignatureConfirmationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF001_S017_ClientSignatureConfirmationPageTransitions.java new file mode 100644 index 0000000..09cfae7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF001_S017_ClientSignatureConfirmationPageTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface CIF001_S017_ClientSignatureConfirmationPageTransitions extends WebFlow { + HKO101_S001_MainClientPage onMainClientPage(); + + DMS001_S001_ScanDocumentsPage onScanDocumentsPage(); + + OBR003_S001_ClientContractSignPage onClientContractSignPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF003_OBR001_NoCopyConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF003_OBR001_NoCopyConfirmationPage.java new file mode 100644 index 0000000..4b8d130 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF003_OBR001_NoCopyConfirmationPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CIF003_OBR001_NoCopyConfirmationPage.CIF003_OBR001_004_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CIF003_OBR001_NoCopyConfirmationPage.OBR001_S001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, CIF003_OBR001_004_PAGE_LABEL_XPATH}, by = Lookup.XPATH, waitSecondsForElement = 80) +public interface CIF003_OBR001_NoCopyConfirmationPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String CIF003_OBR001_004_PAGE_LABEL_XPATH = "//div[contains(text(), 'CIF003_OBR001_004')]"; + String DO_NOT_PRINT_BUTTON = "OBR001_S001_B001"; + + @Click(DO_NOT_PRINT_BUTTON) + HKO101_S001_MainClientPage clickDoNotPrint(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF003_S003_ContinueAfterSigningChange.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF003_S003_ContinueAfterSigningChange.java new file mode 100644 index 0000000..fadcd87 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF003_S003_ContinueAfterSigningChange.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.main.ADC012_S001_SettingADC; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CIF003_S003_ContinueAfterSigningChange.CIF003_S003_PAGE_LABEL_XPATH; + +@Wait(value = CIF003_S003_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface CIF003_S003_ContinueAfterSigningChange extends WebFlow { + String CIF003_S003_PAGE_LABEL_XPATH = "//div[text()='CIF003_S003']"; + String CONTINUE_BUTTON = "CIF003_S003_B001"; + + @Click(CONTINUE_BUTTON) + ADC012_S001_SettingADC clickContinueToSettingADC(); +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF009_S002_PersonalDataFON.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF009_S002_PersonalDataFON.java new file mode 100644 index 0000000..3d325f7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF009_S002_PersonalDataFON.java @@ -0,0 +1,122 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CIF009_S002_PersonalDataFON.PAGE_LABEL_DIV; + +@Wait(value = PAGE_LABEL_DIV, by = Lookup.XPATH) +public interface CIF009_S002_PersonalDataFON extends WebFlow { + + String PAGE_LABEL_DIV = "//div[text()='CIF009_S002']"; + String BIRHT_PLACE_INPUT = "CIF009_S002_E006"; + String CZECH_BIRTH_COUNTRY_BUTTON = "CIF009_S002_B004"; + String CZECH_NATIONALITY_BUTTON = "CIF009_S002_B005"; + String ADDRESS_MAGNIFYING_GLASS_BUTTON = "CIF009_S002_B017"; + String ADDRESS_SEARCH_FIELD_INPUT = "CIF009_S002_E021"; + String ADDRESS_SEARCH_BUTTON = "CIF009_S002_B006"; + String FIRST_FOUND_ADDRESS_RADIO = "CIF009_S002_G001-0"; + String SELECT_ADDRESS_BUTTON = "CIF009_S002_B007"; + String CZECH_COUNTRY_BUTTON = "CIF009_S002_B018"; + String ID_NUMBER_INPUT = "CIF009_S002_E008"; + String VALID_UNTIL_INPUT = "CIF009_S002_E009"; + String OTHER_IDENTIFICATION_DOCUMENT_DIV = "CIF009_S002_L048"; + String OTHER_IDENTIFICATION_DOCUMENT_TYPE_SELECT = "CIF009_S002_C002"; + String OTHER_IDENTIFICATION_DOCUMENT_NUMBER_INPUT = "CIF009_S002_E010"; + String OTHER_IDENTIFICATION_DOCUMENT_VALID_UNTIL_INPUT = "CIF009_S002_E011"; + String OTHER_IDENTIFICATION_DOCUMENT_CZECH_COUNTRY_BUTTON = "CIF009_S002_B002"; + String EMAIl_INPUT = "CIF009_S002_E018"; + String MOBILE_PHONE_INPUT = "CIF009_S002_E033"; + String HOME_NUMBER_INPUT = "CIF009_S002_E036"; + String CONTINUE_BUTTON = "CIF009_S002_B008"; + String NOT_POLITICALLY_EXPOSED_PERSON_RADIO = "CIF009_S002_R002_0"; + String EDUCATION_SELECT = "CIF009_S002_C013"; + String DEPENDENT_PERSON_COUNT_INPUT = "CIF009_S002_E017"; + String MARRIAGE_STATUS_SELECT = "CIF009_S002_C014"; + String HOUSING_TYPE_SELECT = "CIF009_S002_C016"; + String LIVING_ON_ADDRESS_FROM_INPUT = "CIF009_S002_E024"; + String RELATIONSHIP_WITH_BANK_SELECT = "CIF009_S002_C017"; + + @TypeInto(BIRHT_PLACE_INPUT) + CIF009_S002_PersonalDataFON fillBirthPlace(String birthPlace); + + @Click(CZECH_BIRTH_COUNTRY_BUTTON) + CIF009_S002_PersonalDataFON clickCzechBirthCountry(); + + @Click(CZECH_NATIONALITY_BUTTON) + CIF009_S002_PersonalDataFON clickCzechNationality(); + + @Click(value = ADDRESS_MAGNIFYING_GLASS_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF009_S002_PersonalDataFON clickAddressMagnifyingGlass(); + + @TypeInto(ADDRESS_SEARCH_FIELD_INPUT) + CIF009_S002_PersonalDataFON fillAddressSearchField(String address); + + @Click(value = ADDRESS_SEARCH_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF009_S002_PersonalDataFON clickAddressSearch(); + + @Click(value = FIRST_FOUND_ADDRESS_RADIO, jsClick = true, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF009_S002_PersonalDataFON clickFirstFoundAddress(); + + @Click(value = SELECT_ADDRESS_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF009_S002_PersonalDataFON clickSelectAddress(); + + @Click(CZECH_COUNTRY_BUTTON) + CIF009_S002_PersonalDataFON clickCzechCountry(); + + @TypeInto(ID_NUMBER_INPUT) + CIF009_S002_PersonalDataFON fillIdNumber(String idNumber); + + @Click(value = OTHER_IDENTIFICATION_DOCUMENT_DIV, andWait = @Wait(value = OTHER_IDENTIFICATION_DOCUMENT_TYPE_SELECT, until = Until.VISIBLE)) + CIF009_S002_PersonalDataFON clickOtherIdentificationDocument(); + + @Select(OTHER_IDENTIFICATION_DOCUMENT_TYPE_SELECT) + CIF009_S002_PersonalDataFON selectOtherIdentificationDocumentType(String otherIdentificationDocumentType); + + @TypeInto(OTHER_IDENTIFICATION_DOCUMENT_NUMBER_INPUT) + CIF009_S002_PersonalDataFON fillOtherIdentificationDocumentNumber(String otherIdentificationDocumentNumber); + + @TypeInto(OTHER_IDENTIFICATION_DOCUMENT_VALID_UNTIL_INPUT) + CIF009_S002_PersonalDataFON fillOtherIdentificationDocumentValidUntil(String otherIdentificationDocumentValidUntil); + + @Click(OTHER_IDENTIFICATION_DOCUMENT_CZECH_COUNTRY_BUTTON) + CIF009_S002_PersonalDataFON clickOtherIdentificationDocumentCzechCountry(); + + @TypeInto(EMAIl_INPUT) + CIF009_S002_PersonalDataFON fillEmail(String email); + + @TypeInto(MOBILE_PHONE_INPUT) + CIF009_S002_PersonalDataFON fillMobilePhone(String mobilePhone); + + @TypeInto(HOME_NUMBER_INPUT) + CIF009_S002_PersonalDataFON fillHomeNumber(String homeNumber); + + @TypeInto(VALID_UNTIL_INPUT) + CIF009_S002_PersonalDataFON fillValidUntil(String validUntil); + + @Click(value = NOT_POLITICALLY_EXPOSED_PERSON_RADIO, jsClick = true, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF009_S002_PersonalDataFON clickNotPoliticallyExposedPerson(); + + @Select(EDUCATION_SELECT) + CIF009_S002_PersonalDataFON selectEducation(String education); + + @TypeInto(DEPENDENT_PERSON_COUNT_INPUT) + CIF009_S002_PersonalDataFON fillDependentPersonCount(String dependentPersonCount); + + @Select(MARRIAGE_STATUS_SELECT) + CIF009_S002_PersonalDataFON selectMarriageStatus(String marriage); + + @Select(HOUSING_TYPE_SELECT) + CIF009_S002_PersonalDataFON selectHousingType(String housingType); + + @TypeInto(LIVING_ON_ADDRESS_FROM_INPUT) + CIF009_S002_PersonalDataFON fillLivingOnAddressFrom(String livingOnAddressFrom); + + @Select(RELATIONSHIP_WITH_BANK_SELECT) + CIF009_S002_PersonalDataFON selectRelationshipWithBank(String RelationshipWithBank); + + @Click(CONTINUE_BUTTON) + AML002_S001_AmlSurveyPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF049_OBR001_001_ClientFilledOnlineRequestPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF049_OBR001_001_ClientFilledOnlineRequestPage.java new file mode 100644 index 0000000..24834f1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF049_OBR001_001_ClientFilledOnlineRequestPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Page; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CIF049_OBR001_001_ClientFilledOnlineRequestPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +public interface CIF049_OBR001_001_ClientFilledOnlineRequestPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[contains(text(), 'CIF049_OBR001_001')]"; + String CHECK_AND_CREATE_CLIENT_BUTTON = "OBR001_S001_B002"; + + @Click(CHECK_AND_CREATE_CLIENT_BUTTON) + @Page(CIF111_S016_CreateNewCifPage.class) + CIF111_S016_CreateNewCifPage clickCheckAndCreateNewCustomer(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF111_S016_CreateNewCifPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF111_S016_CreateNewCifPage.java new file mode 100644 index 0000000..119cba1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF111_S016_CreateNewCifPage.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CIF111_S016_CreateNewCifPage.*; + +@Wait(value = CIF111_S016_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = {FIRST_NAME_INPUT, LAST_NAME_INPUT, CZECH_CITIZENSHIP_RADIO, CONTINUE_BUTTON}, waitSecondsForElement = 60) +public interface CIF111_S016_CreateNewCifPage extends WebFlow { + String CIF111_S016_PAGE_LABEL_XPATH = "//div[text()='CIF111_S016']"; + + String CONTINUE_BUTTON = "CIF111_S016_B002"; + + String ID_TYPE_SELECTOR = "CIF111_S016_C002"; + + String LAST_NAME_INPUT = "CIF111_S016_E002"; + String FIRST_NAME_INPUT = "CIF111_S016_E003"; + String ID_NUMBER_INPUT = "CIF111_S016_E007"; + String SKIP_NAME_CHECK = "CIF111_S016_H001_1"; + + String CZECH_CITIZENSHIP_RADIO = "CIF111_S016_R001_1"; + + @TypeInto(FIRST_NAME_INPUT) + @TypeInto(LAST_NAME_INPUT) + CIF111_S016_CreateNewCifPage fillFirstAndLastNames(String firstName, String lastName); + + @Click(value = CZECH_CITIZENSHIP_RADIO, jsClick = true) + CIF111_S016_CreateNewCifPage clickCzechCitizenshipRadio(); + + @Select(ID_TYPE_SELECTOR) + CIF111_S016_CreateNewCifPage selectIdType(String type); + + @TypeInto(ID_NUMBER_INPUT) + CIF111_S016_CreateNewCifPage fillIdCardNumber(String number); + + @Click(value = SKIP_NAME_CHECK, jsClick = true) + CIF111_S016_CreateNewCifPage skipNameCheck(); + + @Click(CONTINUE_BUTTON) + CIF111_S016_CreateNewCifPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF111_S016_CreateNewCifPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF111_S016_CreateNewCifPageTransitions.java new file mode 100644 index 0000000..30329a2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF111_S016_CreateNewCifPageTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.newCif.CIF111_S001_NewCifDataNavigation; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface CIF111_S016_CreateNewCifPageTransitions extends WebFlow { + + OBR003_S001_ClientContractSignPage onNotREgisteredWarning(); + + CIF111_S001_NewCifDataNavigation onNewCifDataNavigation(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF113_S001_ChangeDataFO.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF113_S001_ChangeDataFO.java new file mode 100644 index 0000000..3092389 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF113_S001_ChangeDataFO.java @@ -0,0 +1,223 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.income.PIM001_S001_IncomeEditPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = CIF113_S001_ChangeDataFO.CIF_CHANGE_DATA_FO_PAGE_LABEL, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface CIF113_S001_ChangeDataFO extends WebFlow, StoreAccessor { + + String BIRTH_NUMBER_KEY = "BIRTH_NUMBER"; + String LAST_NAME_KEY = "LAST_NAME"; + String FIRST_NAME_KEY = "FIRST_NAME"; + String MARITAL_STATUS_KEY = "MARITAL_STATUS"; + String HOUSING_TYPE_KEY = "HOUSING_TYPE"; + String EDUCATION_KEY = "EDUCATION"; + String NATIONALITY_KEY = "NATIONALITY"; + String FIRST_ID_CARD_TYPE_KEY = "FIRST_ID_CARD_TYPE"; + String FIRST_ID_CARD_NUMBER_KEY = "FIRST_ID_CARD_NUMBER"; + String FIRST_ID_CARD_EXPIRATION_DATE_KEY = "FIRST_ID_CARD_EXPIRATION_DATE"; + String SECOND_ID_CARD_TYPE_KEY = "SECOND_ID_CARD_TYPE"; + String SECOND_ID_CARD_NUMBER_KEY = "SECOND_ID_CARD_NUMBER"; + String SECOND_ID_CARD_EXPIRATION_DATE_KEY = "SECOND_ID_CARD_EXPIRATION_DATE"; + String ADDRESS_KEY = "ADDRESS"; + String MOBILE_PHONE_KEY = "MOBILE_PHONE"; + String LANDLINE_KEY = "LANDLINE"; + String EMAIL_KEY = "EMAIL"; + String DEPENDANTS_NUMBER_KEY = "DEPENDANTS_NUMBER"; + String CIF_CHANGE_DATA_FO_PAGE_LABEL = "//div[text()='CIF113_S001']"; + String FIRST_NAME_INPUT = "CIF113_S001_U003"; + String LAST_NAME_INPUT = "CIF113_S001_U005"; + String EDUCATION_SELECT = "CIF113_S001_C008"; + String BIRTH_NUMBER_INPUT = "CIF113_S001_U001"; + String NATIONALITY_SELECT = "CIF113_S001_C019"; + String ADDRESS_STREET_INPUT = "CIF113_S001_E012"; + String ADDRESS_DESCRIPTIVE_NUMBER_INPUT = "CIF113_S001_E025"; + String ADDRESS_ORIENTATION_NUMBER_INPUT = "CIF113_S001_E026"; + String ADDRESS_CITY_INPUT = "CIF113_S001_E027"; + String ADDRESS_ZIP_CODE_INPUT = "CIF113_S001_E029"; + String ADDRESS_POST_INPUT = "CIF113_S001_E030"; + String ADDRESS_COUNTRY_SELECT = "CIF113_S001_C004"; + String EMAIL_INPUT = "CIF113_S001_U017"; + String MOBILE_PHONE_CODE_INPUT = "CIF113_S001_U020"; + String MOBILE_NUM_INPUT = "CIF113_S001_U021"; + String LANDLINE_CODE_INPUT = "CIF113_S001_E060"; + String LANDLINE_INPUT = "CIF113_S001_E061"; + String FIRST_ID_CARD_TYPE_SELECT = "CIF113_S001_C020"; + String FIRST_ID_CARD_NUMBER_INPUT = "CIF113_S001_E007"; + String FIRST_ID_CARD_VALID_TO_INPUT = "CIF113_S001_E011"; + String SECOND_ID_CARD_TYPE_SELECT = "CIF113_S001_C022"; + String SECOND_ID_CARD_NUMBER_INPUT = "CIF113_S001_E048"; + String MARITAL_STATUS_SELECT = "CIF113_S001_C006"; + String HOUSING_TYPE_SELECT = "CIF113_S001_C007"; + String SECOND_ID_CARD_VALID_TO_INPUT = "CIF113_S001_E049"; + String SEND_BUTTON = "CIF113_S001_B002"; + String BACK_BUTTON = "CIF113_S001_B003"; + String EDIT_INCOME_BUTTON = "CIF113_S001_B032"; + String DEPENDANTS_NUMBER_INPUT = "CIF113_S001_U037"; + + @Click(SEND_BUTTON) + CIF113_S001_ChangeDataFOTransitions clickSend(); + + @Click(BACK_BUTTON) + CIF113_S001_ChangeDataFOTransitions clickBack(); + + @TypeInto(value = LAST_NAME_INPUT, clear = true) + CIF113_S001_ChangeDataFO changeLastName(String newLastName); + + @TypeInto(value = EMAIL_INPUT, clear = true) + CIF113_S001_ChangeDataFO changeEmail(String newEmail); + + @TypeInto(value = MOBILE_NUM_INPUT, clear = true) + CIF113_S001_ChangeDataFO changeMobileNum(String newMobileNum); + + @TypeInto(value = FIRST_ID_CARD_VALID_TO_INPUT, clear = true) + @TypeInto(value = SECOND_ID_CARD_VALID_TO_INPUT, clear = true) + CIF113_S001_ChangeDataFO updateIDValidation(String endOfValidation, String endOfValidation2); + + @Click(EDIT_INCOME_BUTTON) + PIM001_S001_IncomeEditPage clickEditIncome(); + + @CustomAction + default CIF113_S001_ChangeDataFO storeBirthNumber() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(BIRTH_NUMBER_KEY, endpoint.getAttribute(BIRTH_NUMBER_INPUT, "value")); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeEducation() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(EDUCATION_KEY, endpoint.getSelectedFirstItemText(EDUCATION_SELECT)); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeLastName() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(LAST_NAME_KEY, endpoint.getAttribute(LAST_NAME_INPUT, "value")); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeFirstName() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(FIRST_NAME_KEY, endpoint.getAttribute(FIRST_NAME_INPUT, "value")); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeNationality() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(NATIONALITY_KEY, endpoint.getSelectedFirstItemText(NATIONALITY_SELECT)); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeAddress() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + String addressOrientationNumber = endpoint.getAttribute(ADDRESS_ORIENTATION_NUMBER_INPUT, "value"); + String orientationNumber = (!addressOrientationNumber.isEmpty()) ? "/" + addressOrientationNumber + "\n" : "\n"; + String address = endpoint.getAttribute(ADDRESS_STREET_INPUT, "value") + " " + + endpoint.getAttribute(ADDRESS_DESCRIPTIVE_NUMBER_INPUT, "value") + + orientationNumber + + endpoint.getAttribute(ADDRESS_CITY_INPUT, "value") + "\n" + + endpoint.getAttribute(ADDRESS_ZIP_CODE_INPUT, "value") + " " + + endpoint.getAttribute(ADDRESS_POST_INPUT, "value") + "\n" + + endpoint.getSelectedFirstItemText(ADDRESS_COUNTRY_SELECT); + this.store(ADDRESS_KEY, address); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeEmail() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(EMAIL_KEY, endpoint.getAttribute(EMAIL_INPUT, "value")); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeMobilePhoneIncludedCode() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + String mobilePhone = endpoint.getAttribute(MOBILE_PHONE_CODE_INPUT, "value") + + endpoint.getAttribute(MOBILE_NUM_INPUT, "value"); + this.store(MOBILE_PHONE_KEY, mobilePhone); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeLandlineIncludedCode() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + String landline = endpoint.getAttribute(LANDLINE_CODE_INPUT, "value") + + endpoint.getAttribute(LANDLINE_INPUT, "value"); + this.store(LANDLINE_KEY, landline); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeFirstIdCardType() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + String firstIdCardType = endpoint.getSelectedFirstItemText(FIRST_ID_CARD_TYPE_SELECT); + this.store(FIRST_ID_CARD_TYPE_KEY, firstIdCardType); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeFirstIdCardNumber() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(FIRST_ID_CARD_NUMBER_KEY, endpoint.getAttribute(FIRST_ID_CARD_NUMBER_INPUT, "value")); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeFirstIdCardExpirationDate() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(FIRST_ID_CARD_EXPIRATION_DATE_KEY, endpoint.getAttribute(FIRST_ID_CARD_VALID_TO_INPUT, "value")); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeSecondIdCardType() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + String secondIdCardType = endpoint.getSelectedFirstItemText(SECOND_ID_CARD_TYPE_SELECT); + this.store(SECOND_ID_CARD_TYPE_KEY, secondIdCardType); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeSecondIdCardNumber() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(SECOND_ID_CARD_NUMBER_KEY, endpoint.getAttribute(SECOND_ID_CARD_NUMBER_INPUT, "value")); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeSecondIdCardExpirationDate() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(SECOND_ID_CARD_EXPIRATION_DATE_KEY, endpoint.getAttribute(SECOND_ID_CARD_VALID_TO_INPUT, "value")); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeMaritalStatus() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(MARITAL_STATUS_KEY, endpoint.getSelectedFirstItemText(MARITAL_STATUS_SELECT)); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeHousingType() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(HOUSING_TYPE_KEY, endpoint.getSelectedFirstItemText(HOUSING_TYPE_SELECT)); + return null; + } + + @CustomAction + default CIF113_S001_ChangeDataFO storeDependantsNumber() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + store(DEPENDANTS_NUMBER_KEY, endpoint.getAttribute(DEPENDANTS_NUMBER_INPUT, "value")); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF113_S001_ChangeDataFOTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF113_S001_ChangeDataFOTransitions.java new file mode 100644 index 0000000..f121c0b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CIF113_S001_ChangeDataFOTransitions.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF010_S002_AssociatedFopDataPage; +import cz.moneta.test.dsl.ufo.banka.pages.income.PIM001_S001_IncomeEditPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface CIF113_S001_ChangeDataFOTransitions extends WebFlow { + + GDP007_S001_ChangeOfIdentificationDocuments onChangeOfIdentificationDocuments(); + + CIF010_S002_AssociatedFopDataPage onAssociatedFopDataPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + PIM001_S001_IncomeEditPage onIncomeEditPage(); + + HKO101_S001_MainClientPage onMainClientPage(); + + OBR003_S001_ClientContractSignPage onOpFoundPage(); + + TIS050_S001_SignerSelectionPage onSignerPage(); + + CRS001_S001_CommonReportingStatusPage onCommonReportingStatusPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CRS001_S001_CommonReportingStatusPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CRS001_S001_CommonReportingStatusPage.java new file mode 100644 index 0000000..44a3a28 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/CRS001_S001_CommonReportingStatusPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.income.PIM001_S001_IncomeEditPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CRS001_S001_CommonReportingStatusPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CRS001_S001_CommonReportingStatusPage.CRS001_S001_PAGE_ID_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CRS001_S001_CommonReportingStatusPage.CRS_CZECH_TAX_DOMICIL_BUTTON; + +@Wait(value = CRS001_S001_PAGE_ID_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = {CRS_CZECH_TAX_DOMICIL_BUTTON, CONTINUE_BUTTON}, waitSecondsForElement = 60) +public interface CRS001_S001_CommonReportingStatusPage extends WebFlow, StoreAccessor { + String CRS001_S001_PAGE_ID_LABEL_XPATH = "//div[text()='CRS001_S001']"; + + String CONTINUE_BUTTON = "CRS001_S001_B002"; + String CZECH_TAX_RESIDENCY_CELL = "//table[@id='CRS001_S001_G001_UfoTable']//td[text()='Česká republika']"; + String CRS_CZECH_TAX_DOMICIL_BUTTON = "CRS001_S001_B006"; + + @Click( + value = CRS_CZECH_TAX_DOMICIL_BUTTON, + andWait = @Wait(value = CZECH_TAX_RESIDENCY_CELL, by = Lookup.XPATH, waitSecondsForElement = 80) + ) + CRS001_S001_CommonReportingStatusPage confirmCzech(); + + @CustomAction + default PIM001_S001_IncomeEditPage clickContinueAndAcceptAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> CONTINUE_BUTTON); + if (endpoint.isAlertPresent(3)) { + endpoint.acceptAlert(3); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS001_S001_ScanDocumentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS001_S001_ScanDocumentsPage.java new file mode 100644 index 0000000..404c7d2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS001_S001_ScanDocumentsPage.java @@ -0,0 +1,185 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewSmeAutomatSubTasks; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage.DMS001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage.SKIP_SCAN_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = DMS001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 80) +@Wait(value = SKIP_SCAN_BUTTON, waitSecondsForElement = 80) +public interface DMS001_S001_ScanDocumentsPage extends StoreAccessor, WebFlow { + String DMS001_S001_PAGE_LABEL_XPATH = "//div[text()='DMS001_S001']"; + + String FAKE_ID_PATH = "regression/ufo/ID-card_CZ_2012.jpg"; + String FAKE_ZL = "regression/ufo/ZL.jpg"; + String FAKE_REGISTER_ENTRY = "regression/ufo/vypis_RES.pdf"; + String FAKE_DP = "regression/ufo/DP.pdf"; + String FIRST_UPLOADED_DOCUMENT_RADIO = "DMS001_S001_G001-0"; + String FIRST_CLIENTS_DOCUMENT_TO_ASSIGN_RADIO = "DMS001_S001_G002-0"; + String DOCUMENTS_TO_ASSIGN_TABLE_XPATH = "//table[@id='DMS001_S001_G004_UfoTable']//td[text()='%s']"; + String FIRST_DOCUMENT_TO_ASSIGN_RADIO = "DMS001_S001_G004-0"; + String SECOND_DOCUMENT_TO_ASSIGN_RADIO = "DMS001_S001_G004-1"; + String THIRD_DOCUMENT_TO_ASSIGN_RADIO = "DMS001_S001_G004-2"; + String DOCUMENT_TO_ASSIGN_RADIO = "DMS001_S001_G004-%s"; + String DOCUMETNS_TO_ASSIGN_TABLE_XPATH = "//table[@id='DMS001_S001_G004_UfoTable']//tbody/tr//input[contains(@id, 'DMS001_S001_G004')]"; + String FILE_UPLOAD_INPUT = "gwt-FileUpload"; + String ASSIGN_DOCUMENT_BUTTON = "DMS001_S001_B001"; + String CONTINUE_BUTTON = "DMS001_S001_B002"; + String ASSIGN_LOADED_DOCUMENT_BUTTON = "DMS001_S001_B003"; + String SKIP_SCAN_BUTTON = "DMS001_S001_B007"; + String SCANNED_DOCUMENTS_BUTTON = "DMS001_S001_B008"; + String ASSIGN_CLIENTS_LOADED_DOCUMENT_BUTTON = "DMS001_S001_B009"; + String POPUP_BUTTON = "DMS001_S001_B010"; + String FIRST_ASSIGNED_DOCUMENT_CELL = "//table[@id='DMS001_S001_G003_UfoTable']/tbody/tr"; + String ASSIGNED_DOCUMENT_CELL = "//table[@id='DMS001_S001_G003_UfoTable']/tbody/tr/td[text()='%s']"; + String DOCUMENT_TYPE = "DMS001_S001_C001"; + String DOCUMENT_TYPE_2 = "DMS001_S001_C002"; + String POPUP_DESCRIPTION_LABEL_XPATH = "//*[@id='DMS001_S001_L017' and contains(text(),'Naskenujte dokumenty')]"; + String DOCUMENT_TYPE_OP = "Občanský průkaz"; + String DOCUMENT_TYPE_ZL = "Dokument prokazující oprávnění k podnikání"; + String DOCUMENT_TYPE_REGISTRY_ENTRY = "Elektronický výpis z ŽR"; + String DOCUMENT_TYPE_EXTRACT_ZL = "Živnostenský list / výpis z ŽR"; + String DOCUMENT_TYPE_INCOME_CONFIRMATION = "Potvrzení o příjmu"; + String DOCUMENT_TYPE_DP = "Daňové přiznání"; + String DOCUMENT_TYPE_FU = "Potvrzení o bezdlužnosti od FÚ"; + String DOCUMENT_TYPE_CSSZ = "Potvrzení bezdlužnosti ČSSZ"; + + default void loadPage(WebEndpoint endpoint) { + if (endpoint.isElementVisible(2, POPUP_BUTTON, Lookup.ID)) { + endpoint.click(() -> POPUP_BUTTON); + } + } + + @CustomAction + default DMS001_S001_ScanDocumentsPage reloadPage() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + endpoint.refeshPage(); + return null; + } + + @CustomAction + default DMS001_S001_ScanDocumentsPage uploadAndAssignFakeId() { + UploadUtil.uploadAndAssignDocument(FAKE_ID_PATH, DOCUMENT_TYPE_OP, this); + return null; + } + + @CustomAction + default DMS001_S001_ScanDocumentsPage uploadAndAssignFakeIdAndContinueToMainPage() { + UploadUtil.uploadAndAssignDocument(FAKE_ID_PATH, DOCUMENT_TYPE_OP, this); + return null; + } + + @CustomAction + default DMS001_S001_ScanDocumentsPage uploadAndAssignFakeZL() { + UploadUtil.uploadAndAssignDocument(FAKE_ZL, DOCUMENT_TYPE_ZL, this); + return null; + } + + @CustomAction + default DMS001_S001_ScanDocumentsPage uploadAndAssignFakeRegisterRecord() { + UploadUtil.uploadAndAssignDocument(FAKE_REGISTER_ENTRY, DOCUMENT_TYPE_REGISTRY_ENTRY, this); + return null; + } + + @CustomAction + default DMS001_S001_ScanDocumentsPage uploadAndAssignFakeDebtFreeConfirmationFU() { + UploadUtil.uploadAndAssignDocument(FAKE_REGISTER_ENTRY, DOCUMENT_TYPE_FU, this); + return null; + } + + @CustomAction + default DMS001_S001_ScanDocumentsPage uploadAndAssignFakeDebtFreeConfirmationCSSZ() { + UploadUtil.uploadAndAssignDocument(FAKE_REGISTER_ENTRY, DOCUMENT_TYPE_CSSZ, this); + return null; + } + + @CustomAction + default DMS001_S001_ScanDocumentsPage uploadAndAssignFakeIncomeConfirmation() { + UploadUtil.uploadAndAssignDocument(FAKE_REGISTER_ENTRY, DOCUMENT_TYPE_INCOME_CONFIRMATION, this); + return null; + } + + @CustomAction + default DMS001_S001_ScanDocumentsPage uploadAndAssignFakeDP() { + UploadUtil.uploadDocument(FAKE_DP, this); + return null; + } + + @CustomAction + default DMS001_S001_ScanDocumentsPage uploadBusinessRegister() { + UploadUtil.uploadDocument(FAKE_REGISTER_ENTRY, this); + return null; + } + + @CustomAction + default DMS001_S001_ScanDocumentsPage uploadFakeExtractZL() { + UploadUtil.uploadDocument(FAKE_ZL, this); + return null; + } + + @Select(DOCUMENT_TYPE_2) + DMS001_S001_ScanDocumentsPage selectDocumentType(String documentType); + + @Click(FIRST_UPLOADED_DOCUMENT_RADIO) + DMS001_S001_ScanDocumentsPage selectFirstUploadedDocument(); + + @Click(value = FIRST_DOCUMENT_TO_ASSIGN_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + DMS001_S001_ScanDocumentsPage selectFirstDocumentToAssign(); + + @Click(value = FIRST_CLIENTS_DOCUMENT_TO_ASSIGN_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + DMS001_S001_ScanDocumentsPage selectFirstClientsDocumentToAssign(); + + @Click(value = SECOND_DOCUMENT_TO_ASSIGN_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + DMS001_S001_ScanDocumentsPage selectSecondDocumentToAssign(); + + @Click(value = THIRD_DOCUMENT_TO_ASSIGN_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + DMS001_S001_ScanDocumentsPage selectThirdDocumentToAssign(); + + @Click(value = DOCUMENT_TO_ASSIGN_RADIO, jsClick = true, isStringDynamicXpath = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + DMS001_S001_ScanDocumentsPage selectDocumentToAssign(String index); + + @Click(SCANNED_DOCUMENTS_BUTTON) + DMS001_S001_ScanDocumentsPageTransitions clickScannedDocuments(); + + @Click(value = ASSIGN_DOCUMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + DMS001_S001_ScanDocumentsPage assignTaxReturn(); + + @Click(value = ASSIGN_LOADED_DOCUMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + DMS001_S001_ScanDocumentsPage assignLoadedDocument(); + + @Click(value = ASSIGN_CLIENTS_LOADED_DOCUMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + DMS001_S001_ScanDocumentsPage assignClientsLoadedDocument(); + + @Click(CONTINUE_BUTTON) + DMS001_S001_ScanDocumentsPageTransitions clickContinue(); + + @Click(value = SKIP_SCAN_BUTTON, jsClick = true) + DMS001_S001_ScanDocumentsPageTransitions clickSkipButton(); + + @Click(value = SKIP_SCAN_BUTTON, andWait = @Wait(value = POPUP_DESCRIPTION_LABEL_XPATH, until = Until.VISIBLE, waitSecondsForElement = 30, by = Lookup.XPATH)) + DMS001_S001_ScanDocumentsPage clickSkipButtonAndStayOnPage(); + + @CustomAction + default DMS001_S001_ScanDocumentsPage assignAllDocuments(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + int documentsToAssignCount = endpoint.findAndGetListOfElements(DOCUMETNS_TO_ASSIGN_TABLE_XPATH, Lookup.XPATH).size(); + + NewSmeAutomatSubTasks tasks = harness.tasks().ufo().banka().newSmeAutomatSubTasks(); + + then(tasks.assignFirstDocument()); + + for (int i = 1; i < documentsToAssignCount; ++i) { + String index = String.valueOf(i); + if (endpoint.isElementVisible(2, String.format(DOCUMENT_TO_ASSIGN_RADIO, index), Lookup.ID)) { + then(tasks.assignDocumentByIndex(index)); + } + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS001_S001_ScanDocumentsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS001_S001_ScanDocumentsPageTransitions.java new file mode 100644 index 0000000..39fe995 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS001_S001_ScanDocumentsPageTransitions.java @@ -0,0 +1,68 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF009_S001_CreateNewFoCifAsFopPartPage; +import cz.moneta.test.dsl.ufo.banka.pages.income.FIN001_S001_FinancialIncomeSummaryPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.DMS002_S001_ClientDocumentation; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC003_S001_CommitmentsToConsolidationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC006_S001_ConsolidationScoringPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC007_S005_ApprovedConsolidationPrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL024_S001_ListOfPersons; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.NEP016_S023_ClientRequiredDocumentsListPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface DMS001_S001_ScanDocumentsPageTransitions extends WebFlow { + + CAS001_S001_ScoringPage onScoringPage(); + + CRS001_S001_CommonReportingStatusPage onCommonReportingStatusPage(); + + NKK006_S001_CreditCardScoringResultPage onCreditCardScoringResultPage(); + + DMS002_S001_ClientDocumentation onClientDocumentationPage(); + + HKO101_S001_MainClientPage onMainClientPage(); + + UDC007_S005_ApprovedConsolidationPrintPage onApprovedConsolidationPrintPage(); + + NFL006_S001_FlexikreditScoringResultPage onFlexiScoringPage(); + + UDC006_S001_ConsolidationScoringPage onConsolidationScoringPage(); + + UDC003_S001_CommitmentsToConsolidationPage onCommitmentsToConsolidationPage(); + + NEP006_S001_ExpressScoringResultPage onMegaExpressScoringPage(); + + CIF009_S001_CreateNewFoCifAsFopPartPage onCreateNewFoCifAsFopPartPage(); + + DMS001_S001_ScanDocumentsPage onScanDocumentsPage(); + + GDP001_S003_ClientConsentsPoPage onClientConsentsPoPage(); + + DMS001_S002_DocumentsSummaryPage onDocumentsSummaryPage(); + + BPP001_S001_DocumentationSendPage onDocumentationSendPage(); + + OBR003_S001_ClientContractSignPage onClientContractSignPage(); + + BAL006_S002_ClientRequestPage onClientRequestPage(); + + KUL024_S001_ListOfPersons onListOfPersonsPage(); + + FIN001_S001_FinancialIncomeSummaryPage onFinancialIncomeSummartPage(); + + NEP016_S023_ClientRequiredDocumentsListPage onClientRequiredDocumentsList(); + + TIS046_S001_DocumentsProvidedToClientPage onDocumentsProvidedToClientPage(); + + GDP001_S001_ClientConsentsPage onClientConsentPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS001_S002_DocumentsSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS001_S002_DocumentsSummaryPage.java new file mode 100644 index 0000000..db62323 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS001_S002_DocumentsSummaryPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S002_DocumentsSummaryPage.*; + +@Wait(value = DMS001_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = BACK_BUTTON) +public interface DMS001_S002_DocumentsSummaryPage extends WebFlow { + String DMS001_S002_PAGE_LABEL_XPATH = "//div[text()='DMS001_S002']"; + String BACK_BUTTON = "DMS001_S002_B001"; + + @Click(BACK_BUTTON) + DMS001_S001_ScanDocumentsPage clickBack(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS070_S001_ScanDocumentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS070_S001_ScanDocumentsPage.java new file mode 100644 index 0000000..da08a86 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS070_S001_ScanDocumentsPage.java @@ -0,0 +1,87 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.DMS070_S001_ScanDocumentsPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = DMS070_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = DISABLED_CONTINUE_BUTTON, by = Lookup.ID, until = Until.VISIBLE) +public interface DMS070_S001_ScanDocumentsPage extends WebFlow, StoreAccessor { + String DMS070_S001_PAGE_LABEL_XPATH = "//div[text()='DMS070_S001']"; + String DISABLED_CONTINUE_BUTTON = "DMS070_S001_X140"; + String FAKE_ID_PATH = "regression/ufo/ID-card_CZ_2012.jpg"; + String FAKE_ZL = "regression/ufo/ZL.jpg"; + String FAKE_REGISTER_ENTRY = "regression/ufo/vypis_RES.pdf"; + String DOCUMENT_TYPE_OP = "Občanský průkaz"; + String DOCUMENT_TYPE_ZL = "Dokument prokazující oprávnění k podnikání"; + String DOCUMENT_TYPE_DP = "Daňové přiznání"; + String DOCUMENT_TYPE_REGISTRY_ENTRY = "Elektronický výpis z ŽR"; + String FILE_UPLOAD_INPUT = "gwt-FileUpload"; + + String CONTINUE_BUTTON = "DMS070_S001_B002"; + String SAVE_DOCUMENT_BUTTON = "DMS070_S001_B009"; + String ASSIGN_DOCUMENT_BUTTON = "DMS070_S001_B003"; + String UPLOAD_DOCUMENT_BUTTON = "DMS070_S001_B010"; + String DOCUMENT_TYPE_XPATH = "//table[@id='DMS070_S001_G003_UfoTable']//td[text()='%s']"; + String DOCUMENT_TYPE = "DMS070_S001_C002"; + String FIRST_UPLOADED_DOCUMENT_RADIO = "DMS070_S001_G001-0"; + String TEST = "//*[@id=\"DMS070_S001_G001_UfoTable\"]/tbody/tr[2]/td[text()=\"Elektronický výpis z ŽR\"]"; + + private UfoEndpoint uploadDocument(String documentPath) { + String path = UploadUtil.getResourcePath(documentPath); + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + log("Path to fake ID: {}", path); + endpoint.click(() -> UPLOAD_DOCUMENT_BUTTON); + endpoint.type(() -> FILE_UPLOAD_INPUT, path, false, Lookup.CLASSNAME); + endpoint.waitForElementsToLoad(80, FIRST_UPLOADED_DOCUMENT_RADIO); + return endpoint; + } + + private void uploadAndAssignDocumentWithSelect(String documentPath, String documentType) { + UfoEndpoint endpoint = uploadDocument(documentPath); + endpoint.waitForElementsToLoad(80, FIRST_UPLOADED_DOCUMENT_RADIO); + endpoint.selectByVisibleText(DOCUMENT_TYPE, documentType); + endpoint.sendKeysAsChord(Key.TAB); + } + + private void uploadAndAssignDocumentWithRadioButton(String documentPath, String documentType) { + UfoEndpoint endpoint = uploadDocument(documentPath); + endpoint.click(() -> String.format(DOCUMENT_TYPE_XPATH, documentType), Lookup.XPATH); + endpoint.click(() -> ASSIGN_DOCUMENT_BUTTON); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + } + + @CustomAction + default DMS070_S001_ScanDocumentsPage uploadAndAssignFakeId() { + uploadAndAssignDocumentWithSelect(FAKE_ID_PATH, DOCUMENT_TYPE_OP); + return null; + } + + @CustomAction + default DMS070_S001_ScanDocumentsPage uploadAndAssignFakeDP() { + uploadAndAssignDocumentWithRadioButton(FAKE_ID_PATH, DOCUMENT_TYPE_DP); + return null; + } + + @CustomAction + default DMS070_S001_ScanDocumentsPage uploadAndAssignFakeZL() { + uploadAndAssignDocumentWithSelect(FAKE_ZL, DOCUMENT_TYPE_ZL); + return null; + } + + @CustomAction + default DMS070_S001_ScanDocumentsPage uploadAndAssignFakeRegisterRecord() { + uploadAndAssignDocumentWithSelect(FAKE_REGISTER_ENTRY, DOCUMENT_TYPE_REGISTRY_ENTRY); + return null; + } + + @Click(value = SAVE_DOCUMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + DMS070_S001_ScanDocumentsPage saveUploadedDocument(); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60) + @Click(CONTINUE_BUTTON) + DMS070_S001_ScanDocumentsPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS070_S001_ScanDocumentsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS070_S001_ScanDocumentsPageTransitions.java new file mode 100644 index 0000000..bd6de82 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/DMS070_S001_ScanDocumentsPageTransitions.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.MBC005_S001_IdCardDataPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF070_S001_IdentificationDataPage; +import cz.moneta.test.dsl.ufo.banka.pages.income.FIN001_S001_FinancialIncomeSummaryPage; +import cz.moneta.test.dsl.ufo.banka.pages.po.ZAS001_S001_StatutoryAuthorityPage; +import cz.moneta.test.harness.support.web.*; + +public interface DMS070_S001_ScanDocumentsPageTransitions extends WebFlow { + + CIF070_S001_IdentificationDataPage onIdentificationDataPage(); + + MBC005_S001_IdCardDataPage onIdCardDataPage(); + + SZR004_S001_PersonIdentificationInFundamentalRegisters onPersonIdentificationInFundamentaRegisters(); + + ZAS001_S001_StatutoryAuthorityPage onStatutoryAuthorityPage(); + + FIN001_S001_FinancialIncomeSummaryPage onFinancialIncomeSummaryPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP001_S001_ClientConsentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP001_S001_ClientConsentsPage.java new file mode 100644 index 0000000..99d673c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP001_S001_ClientConsentsPage.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.TIS005_S002_SignerSelectionPoPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.po.TIS005_S001_SignerSelectionPoPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.GDP001_S001_ClientConsentsPage.*; + +@Wait(value = GDP001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 80) +@Wait(value = {CONSENT1_RADIO, CONSENT2_RADIO, CONSENT3_RADIO, CONTINUE_BUTTON}, waitSecondsForElement = 80) +public interface GDP001_S001_ClientConsentsPage extends WebFlow { + String GDP001_S001_PAGE_LABEL_XPATH = "//div[text()='GDP001_S001']"; + String CONSENT1_RADIO = "GDP001_S001_R001_1"; + String CONSENT2_RADIO = "GDP001_S001_R002_1"; + String CONSENT3_RADIO = "GDP001_S001_R003_1"; + String CONSENT4_RADIO = "GDP001_S001_R004_1"; + String CONTINUE_BUTTON = "GDP001_S001_B003"; + + @Click(CONSENT1_RADIO) + @Click(CONSENT2_RADIO) + @Click(CONSENT3_RADIO) + @Click(CONSENT4_RADIO) + @Wait(CONTINUE_BUTTON) + @Click(CONTINUE_BUTTON) + TIS050_S001_SignerSelectionPage clickOnConsentsAndContinue(); + + @Click(CONSENT1_RADIO) + @Click(CONSENT2_RADIO) + @Click(CONSENT3_RADIO) + @Click(CONSENT4_RADIO) + @Click(CONTINUE_BUTTON) + TIS005_S002_SignerSelectionPoPage clickOnFopConsentsAndContinue(); + + @Click(CONSENT1_RADIO) + @Click(CONSENT2_RADIO) + @Click(CONSENT3_RADIO) + @Click(CONSENT4_RADIO) + @Wait(CONTINUE_BUTTON) + @Click(CONTINUE_BUTTON) + TIS004_S002_SignerSelectionPage clickOnConsents2AndContinue(); + + @Click(CONSENT1_RADIO) + @Click(CONSENT2_RADIO) + @Click(CONSENT4_RADIO) + @Click(CONTINUE_BUTTON) + PSP004_S001_PrintPage clickOnFop2ConsentsAndContinue(); + + @Click(CONSENT1_RADIO) + @Click(CONSENT2_RADIO) + @Click(CONTINUE_BUTTON) + TIS005_S001_SignerSelectionPoPage clickOnPoConsentsAndContinueToSignerSelectionPoPage(); + + @Click(CONSENT1_RADIO) + @Click(CONSENT2_RADIO) + @Click(CONSENT4_RADIO) + @Click(CONTINUE_BUTTON) + TIS004_S002_SignerSelectionPage clickOnFonConsentsAndContinue(); + + @Click(CONSENT1_RADIO) + @Click(CONSENT2_RADIO) + @Click(CONSENT4_RADIO) + @Click(CONTINUE_BUTTON) + TIS050_S002_SignerSelectionPage clickContinueToSignerSelectionPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP001_S003_ClientConsentsPoPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP001_S003_ClientConsentsPoPage.java new file mode 100644 index 0000000..f81c245 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP001_S003_ClientConsentsPoPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.GDP001_S003_ClientConsentsPoPage.*; + +@Wait(value = GDP001_S003_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 80) +public interface GDP001_S003_ClientConsentsPoPage extends WebFlow { + String GDP001_S003_PAGE_LABEL_XPATH = "//div[text()='GDP001_S003']"; + + String CONTINUE_BUTTON = "GDP001_S003_B002"; + String YES_CONSENT_RADIO = "GDP001_S003_R004_1"; + + @Click(YES_CONSENT_RADIO) + GDP001_S003_ClientConsentsPoPage clickYes(); + + @Click(CONTINUE_BUTTON) + PSP004_S001_PrintPage continueToPrintPage(); + + @Click(CONTINUE_BUTTON) + TIS050_S001_SignerSelectionPage continueToSignerSelectionPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP007_S001_ChangeOfIdentificationDocuments.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP007_S001_ChangeOfIdentificationDocuments.java new file mode 100644 index 0000000..38122ff --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP007_S001_ChangeOfIdentificationDocuments.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = GDP007_S001_ChangeOfIdentificationDocuments.CHANGE_OF_ID_PAGE_LABEL, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface GDP007_S001_ChangeOfIdentificationDocuments extends WebFlow { + String CHANGE_OF_ID_PAGE_LABEL = "//div[text()='GDP007_S001']"; + String NO_CHANGE_BUTTON = "GDP007_S001_B002"; + + @Click(NO_CHANGE_BUTTON) + GDP007_S001_ChangeOfIdentificationDocumentsTransitions clickNo(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP007_S001_ChangeOfIdentificationDocumentsTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP007_S001_ChangeOfIdentificationDocumentsTransitions.java new file mode 100644 index 0000000..8f2ab2d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/GDP007_S001_ChangeOfIdentificationDocumentsTransitions.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF003_S016_AppendixConfirmationPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface GDP007_S001_ChangeOfIdentificationDocumentsTransitions extends WebFlow { + + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + CIF003_S016_AppendixConfirmationPage onAppendixConfirmationPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ICO001_S001_BusinessControlPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ICO001_S001_BusinessControlPage.java new file mode 100644 index 0000000..e03d768 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ICO001_S001_BusinessControlPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.MBC002_S001_SettingMbcPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.ICO001_S001_BusinessControlPage.*; + +@Wait(value = ICO001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +public interface ICO001_S001_BusinessControlPage extends WebFlow { + String ICO001_S001_PAGE_LABEL_XPATH = "//div[text()='ICO001_S001']"; + + String DATA_AGREE_BUTTON = "ICO001_S001_B001"; + + @Click(DATA_AGREE_BUTTON) + MBC002_S001_SettingMbcPage clickAgreeToSettingMbcPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/KUL040_S008_ClientsDataOnRequestPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/KUL040_S008_ClientsDataOnRequestPage.java new file mode 100644 index 0000000..0e763ba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/KUL040_S008_ClientsDataOnRequestPage.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL004_S004_AddressesAndContactsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.KUL040_S008_ClientsDataOnRequestPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface KUL040_S008_ClientsDataOnRequestPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='KUL004_S008']"; + + String CONTACT_PERSON_CHECKBOX = "KUL004_S008_H003_CONTACT PERSON"; + String SIGNS_AGREEMENT_CHECKBOX = "KUL004_S008_H003_SIGN"; + String CONTINUE_BUTTON = "KUL004_S008_B001"; + + @Click(CONTACT_PERSON_CHECKBOX) + KUL040_S008_ClientsDataOnRequestPage clickContactPerson(); + + @Click(SIGNS_AGREEMENT_CHECKBOX) + KUL040_S008_ClientsDataOnRequestPage clickSignsAgreement(); + + @Click(CONTINUE_BUTTON) + KUL004_S004_AddressesAndContactsPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SCN001_S001_IdDocumentsCopy.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SCN001_S001_IdDocumentsCopy.java new file mode 100644 index 0000000..709bb65 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SCN001_S001_IdDocumentsCopy.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.SCN001_S001_IdDocumentsCopy.SCN001_S001_PAGE_LABEL_XPATH; + +@Wait(value = SCN001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 80) +public interface SCN001_S001_IdDocumentsCopy extends WebFlow { + String SCN001_S001_PAGE_LABEL_XPATH = "//div[text()='SCN001_S001']"; + + String ID_CARD_RADIO = "SCN001_S001_R001_98"; + String ID_CARD_TYPE_COMBO = "SCN001_S001_C001"; + String CONTINUE_BUTTON = "SCN001_S001_B001"; + String CIF_RATIO_BUTTON = "SCN001_S001_R001"; + String CZECH_NATIONALITY_BUTTON = "SCN001_S001_B005"; + + @Click(value = ID_CARD_RADIO, jsClick = true) + SCN001_S001_IdDocumentsCopy clickIdCard(); + + @Select(ID_CARD_TYPE_COMBO) + SCN001_S001_IdDocumentsCopy selectIdCardType(String type); + + @Click(CONTINUE_BUTTON) + SCN001_S001_IdDocumentsCopyTransitions clickContinue(); + + @Click(CIF_RATIO_BUTTON) + SCN001_S001_IdDocumentsCopy clickCif(); + + @Click(CZECH_NATIONALITY_BUTTON) + SCN001_S001_IdDocumentsCopy clickCzechNationality(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SCN001_S001_IdDocumentsCopyTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SCN001_S001_IdDocumentsCopyTransitions.java new file mode 100644 index 0000000..c799308 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SCN001_S001_IdDocumentsCopyTransitions.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.main.components.WUE001_S006_BuildingSavingsConsentPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface SCN001_S001_IdDocumentsCopyTransitions extends WebFlow { + + CIF111_S016_CreateNewCifPage onCreateNewCifpage(); + + SCN002_S001_TabletCommunicationError onTabletCommunicationErrorPage(); + + DMS070_S001_ScanDocumentsPage onScanDocumentsPage(); + + DMS001_S001_ScanDocumentsPage onScanDocumentsPageOld(); + + WUE001_S006_BuildingSavingsConsentPage onBuildingSavingsConsentPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SCN002_S001_TabletCommunicationError.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SCN002_S001_TabletCommunicationError.java new file mode 100644 index 0000000..34372e0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SCN002_S001_TabletCommunicationError.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.SCN002_S001_TabletCommunicationError.SCN002_S001_PAGE_LABEL_XPATH; + +@Wait(value = SCN002_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 80) +public interface SCN002_S001_TabletCommunicationError extends WebFlow { + + String SCN002_S001_PAGE_LABEL_XPATH = "//div[text()='SCN002_S001']"; + + String CONTINUE_BUTTON = "SCN002_S001_B003"; + + @Click(CONTINUE_BUTTON) + OBR001_S001_PrintInstructionPage continueToSignError(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SZR004_S001_PersonIdentificationInFundamentalRegisters.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SZR004_S001_PersonIdentificationInFundamentalRegisters.java new file mode 100644 index 0000000..43a9ab9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/SZR004_S001_PersonIdentificationInFundamentalRegisters.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.SZR004_S001_PersonIdentificationInFundamentalRegisters.SZR004_S001_PAGE_LABEL_XPATH; + +@Wait(value = SZR004_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface SZR004_S001_PersonIdentificationInFundamentalRegisters extends WebFlow, StoreAccessor { + + String SZR004_S001_PAGE_LABEL_XPATH = "//div[text()='SZR004_S001']"; + String FIRST_NAME_INPUT = "SZR004_S001_E001"; + String LAST_NAME_INPUT = "SZR004_S001_E002"; + String BIRTH_NUMBER_INPUT = "SZR004_S001_E003"; + String BIRTH_DATE_INPUT = "SZR004_S001_E004"; + String DOCUMENT_NUMBER_INPUT = "SZR004_S001_E005"; + String NATIONALITY_SELECT = "SZR004_S001_C001"; + String CZECH_NATIONALITY_BUTTON = "SZR004_S001_B009"; + String CONTINUE_BUTTON = "SZR004_S001_B006"; + + @TypeInto(FIRST_NAME_INPUT) + SZR004_S001_PersonIdentificationInFundamentalRegisters fillFirstName(String firstName); + + @TypeInto(LAST_NAME_INPUT) + SZR004_S001_PersonIdentificationInFundamentalRegisters fillLastName(String lastName); + + @TypeInto(BIRTH_NUMBER_INPUT) + SZR004_S001_PersonIdentificationInFundamentalRegisters fillBirthNumber(String birthNumber); + + @TypeInto(BIRTH_DATE_INPUT) + SZR004_S001_PersonIdentificationInFundamentalRegisters fillBirthDate(String birthDate); + + @TypeInto(DOCUMENT_NUMBER_INPUT) + SZR004_S001_PersonIdentificationInFundamentalRegisters fillDocumentNumber(String documentNumber); + + @Select(NATIONALITY_SELECT) + SZR004_S001_PersonIdentificationInFundamentalRegisters selectNationality(String nationality); + + @Click(value = CZECH_NATIONALITY_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + SZR004_S001_PersonIdentificationInFundamentalRegisters clickCzechNationality(); + + /** + * Na klientech v UFO Bance neprochází ztotožnění v základních registrech ČR, proto je potřeba se pro správné + * testování proklikat errorovými hláškami tímto způsobem. + */ + @CustomAction + default OBR003_S001_ClientContractSignPage clickContinue() { + + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + for (int i = 0; i < 3; i++) { + endpoint.click(() -> CZECH_NATIONALITY_BUTTON); + endpoint.click(() -> CONTINUE_BUTTON); + } + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/TIS050_S001_SignerSelectionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/TIS050_S001_SignerSelectionPage.java new file mode 100644 index 0000000..e4e99b1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/TIS050_S001_SignerSelectionPage.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage.CONTINUE_BUTTON; + +@Wait(value = {CONTINUE_BUTTON}, waitSecondsForElement = 60) +public interface TIS050_S001_SignerSelectionPage extends WebFlow, StoreAccessor { + + String CONTINUE_BUTTON = "TIS050_S001_B001"; + String SIGNED_PERSONALLY_RADIO = "TIS050_S001_R003_0"; + String PHYSICAL_SIGNATURE_RADIO = "TIS050_S001_R001_3"; + String PHYSICAL_SIGNATURE_LABEL = "TIS050_S001_L011"; + + @Click(value = SIGNED_PERSONALLY_RADIO, jsClick = true) + @Click(value = PHYSICAL_SIGNATURE_RADIO, jsClick = true) + @Click(CONTINUE_BUTTON) + TIS050_S001_SignerSelectionPageTransitions clickSignedPersonallyPhysicallyAndContinue(); + + @Click(value = SIGNED_PERSONALLY_RADIO, jsClick = true) + @Click(CONTINUE_BUTTON) + PSP004_S001_PrintPage clickSignedPersonallyAndContinue(); + + @Click(value = SIGNED_PERSONALLY_RADIO, jsClick = true) + @Click(value = PHYSICAL_SIGNATURE_RADIO, jsClick = true) + @Click(CONTINUE_BUTTON) + PSP004_S001_PrintPage clickSignedAndContinueToPrintPage(); + + @CustomAction + default TIS050_S001_SignerSelectionPageTransitions clickSignedPersonallyWithPossiblePhysicalSignature(){ + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.jsClick(() -> SIGNED_PERSONALLY_RADIO); + if (endpoint.isElementVisible(2, PHYSICAL_SIGNATURE_LABEL, Lookup.ID)) { + endpoint.jsClick(() -> PHYSICAL_SIGNATURE_RADIO); + } + endpoint.click(() -> CONTINUE_BUTTON); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/TIS050_S001_SignerSelectionPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/TIS050_S001_SignerSelectionPageTransitions.java new file mode 100644 index 0000000..e3231d8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/TIS050_S001_SignerSelectionPageTransitions.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.HPO009_S001_DebitCardDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP028_S001_SignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface TIS050_S001_SignerSelectionPageTransitions extends WebFlow { + + CIF001_S017_ClientSignatureConfirmationPage onClientSignatureConfirmationPage(); + + PSP004_S001_PrintPage onPrintPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + NEP028_S001_SignaturePage onSignaturePage(); + + HPO009_S001_DebitCardDetailPage onDebitCardDetailPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/TIS050_S002_SignerSelectionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/TIS050_S002_SignerSelectionPage.java new file mode 100644 index 0000000..eda9d81 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/TIS050_S002_SignerSelectionPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.HPO009_S001_DebitCardDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S002_SignerSelectionPage.*; + +@Wait(value = {CONTINUE_BUTTON}, waitSecondsForElement = 30) +public interface TIS050_S002_SignerSelectionPage extends WebFlow { + + String CONTINUE_BUTTON = "TIS050_S002_B001"; + String FOP_SIGNED_PERSONALLY_RADIO = "TIS050_S002_R004_0"; + String PHYSICAL_SIGNATURE_RADIO2 = "TIS050_S002_R002_3"; + + @Click(value = FOP_SIGNED_PERSONALLY_RADIO, jsClick = true) + @Click(value = PHYSICAL_SIGNATURE_RADIO2, jsClick = true) + @Click(CONTINUE_BUTTON) + OBR001_S001_PrintInstructionPage clickSignedPersonallyAndContinue(); + + @Click(value = FOP_SIGNED_PERSONALLY_RADIO, jsClick = true) + @Click(value = PHYSICAL_SIGNATURE_RADIO2, jsClick = true) + @Click(CONTINUE_BUTTON) + PSP004_S001_PrintPage clickSignedPersonallyAndContinueToPrint(); + + @Click(value = FOP_SIGNED_PERSONALLY_RADIO, jsClick = true) + @Click(CONTINUE_BUTTON) + PSP004_S001_PrintPage clickSignedAndContinueToPrintPage(); + + @Click(value = FOP_SIGNED_PERSONALLY_RADIO, jsClick = true) + @Click(CONTINUE_BUTTON) + HPO009_S001_DebitCardDetailPage clickSignedAndContinueToCardDetailPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/UploadUtil.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/UploadUtil.java new file mode 100644 index 0000000..df7fe21 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/UploadUtil.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; + +import java.io.File; +import java.net.URISyntaxException; +import java.nio.file.Paths; +import java.util.Objects; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage.*; + +public final class UploadUtil { + + private UploadUtil() { + //hide constructor + } + + public static void uploadAndAssignDocument(String documentPath, String documentType, StoreAccessor harness) { + + String path = getResourcePath(documentPath); + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + harness.log("Path to fake ID: {}", path); + endpoint.type(() -> FILE_UPLOAD_INPUT, path, false, Lookup.CLASSNAME); + endpoint.waitForElementsToLoad(80, FIRST_UPLOADED_DOCUMENT_RADIO); + endpoint.selectByVisibleText(DOCUMENT_TYPE, documentType); + endpoint.click(() -> ASSIGN_DOCUMENT_BUTTON); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, SharedElements.LOAD_IMG_DIV_CLASS); + } + + public static void uploadDocument(String documentPath, StoreAccessor harness) { + String path = getResourcePath(documentPath); + + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + endpoint.type(() -> FILE_UPLOAD_INPUT, path, false, Lookup.CLASSNAME); + endpoint.waitForElementsToLoad(80, FIRST_UPLOADED_DOCUMENT_RADIO); + } + + public static String getResourcePath(String documentPath) { + String path; + try { + File currentJar = new File(UploadUtil.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); + if (currentJar.isFile()) { + path = new File(documentPath).getAbsolutePath(); + } else { + path = Paths.get(Objects.requireNonNull(UploadUtil.class.getClassLoader().getResource(documentPath)).toURI()).toFile().getAbsolutePath(); + } + } catch (URISyntaxException | NullPointerException e) { + throw new IllegalStateException("Could not correctly load file " + documentPath); + } + return path; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ZAS003_S001_ChooseLegalRepresentativePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ZAS003_S001_ChooseLegalRepresentativePage.java new file mode 100644 index 0000000..7f449f8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ZAS003_S001_ChooseLegalRepresentativePage.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.ZAS003_S001_ChooseLegalRepresentativePage.CHILD_LEGAL_REPRESENTATIVE_PAGE_LABEL_XPATH; + +@Wait(value = CHILD_LEGAL_REPRESENTATIVE_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 30) +public interface ZAS003_S001_ChooseLegalRepresentativePage extends WebFlow, StoreAccessor { + + String CHILD_LEGAL_REPRESENTATIVE_PAGE_LABEL_XPATH = "//div[text()='ZAS003_S001']"; + String FIRST_REPRESENTATIVE_CHECKBOX = "ZAS003_S001_G001-0"; + String SECOND_REPRESENTATIVE_CHECKBOX = "ZAS003_S001_G001-1"; + String CONTINUE_BUTTON = "ZAS003_S001_B002"; + + @Click(FIRST_REPRESENTATIVE_CHECKBOX) + ZAS003_S001_ChooseLegalRepresentativePage clickFirstRepresentative(); + + @Click(SECOND_REPRESENTATIVE_CHECKBOX) + ZAS003_S001_ChooseLegalRepresentativePage clickSecondRepresentative(); + + @CustomAction + default ZAS003_S001_ChooseLegalRepresentativePageTransitions clickContinueToMainClientPageAndCloseAlertIfVisible() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> CONTINUE_BUTTON); + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(1); + } + return null; + } + + @Click(CONTINUE_BUTTON) + ZAS003_S001_ChooseLegalRepresentativePageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ZAS003_S001_ChooseLegalRepresentativePageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ZAS003_S001_ChooseLegalRepresentativePageTransitions.java new file mode 100644 index 0000000..714a319 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/ZAS003_S001_ChooseLegalRepresentativePageTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ZAS003_S001_ChooseLegalRepresentativePageTransitions extends WebFlow { + + GDP001_S003_ClientConsentsPoPage onClientConsensPage(); + + HKO101_S001_MainClientPage onMainClientPage(); + + KUL040_S008_ClientsDataOnRequestPage onClientsDataORequestPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/CIF111_S001_NewCifDataNavigation.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/CIF111_S001_NewCifDataNavigation.java new file mode 100644 index 0000000..a3abeb3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/CIF111_S001_NewCifDataNavigation.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon.newCif; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.newCif.CIF111_S001_NewCifDataNavigation.CIF111_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.fon.newCif.CIF111_S001_NewCifDataNavigation.CONTINUE_BUTTON; + +@Wait(value = CIF111_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait({CONTINUE_BUTTON}) +public interface CIF111_S001_NewCifDataNavigation extends WebFlow, Builder, StoreAccessor { + String CIF111_S001_PAGE_LABEL_XPATH = "//div[text()='CIF111_S001']"; + + String CONTINUE_BUTTON = "CIF111_S001_B015"; + String CLOSE_IDENTIFICATION_POPUP_BUTTON = "CIF111_S001_X383"; + + String CONSENTS_PRODUCTS_AND_SERVICES = "//label[@for='CIF111_S001_H006_1']"; //CIF111_S001_H006_1 + String CONSENTS_ELECTRONIC_AND_SMS_NOTIFICATIONS = "//label[@for='CIF111_S001_H005_1']"; //"CIF111_S001_H005_1"; + String CONSENTS_WHATSAPP = "//label[@for='CIF111_S001_H008_1']"; //"CIF111_S001_H008_1"; + + NewCifPersonalData fillPersonalIdentificationData(); + + NewCifResidency fillResidency(); + + NewCifContacts fillContacts(); + + NewCifIdentificationDocuments fillIdentificationDocuments(); + + NewCifEmployment fillEmployment(); + + NewCifAdditionalInformation fillAdditionalInformation(); + + NewCifRegistryChecks checkRegistryLoad(); + + + @Click(value = CONSENTS_PRODUCTS_AND_SERVICES, by = Lookup.XPATH) + @Click(value = CONSENTS_ELECTRONIC_AND_SMS_NOTIFICATIONS, by = Lookup.XPATH) + @Click(value = CONSENTS_WHATSAPP, by = Lookup.XPATH) + CIF111_S001_NewCifDataNavigation clickConsents(); + + @Click(CONTINUE_BUTTON) + CIF111_S001_NewCifDataTransitions clickContinue(); + + //PPE only + @CustomAction + default CIF111_S001_NewCifDataNavigation tryCloseIdentificationPopup() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(2, CLOSE_IDENTIFICATION_POPUP_BUTTON, Lookup.ID)) { + endpoint.click(() -> CLOSE_IDENTIFICATION_POPUP_BUTTON, Lookup.ID); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/CIF111_S001_NewCifDataTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/CIF111_S001_NewCifDataTransitions.java new file mode 100644 index 0000000..fbe317f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/CIF111_S001_NewCifDataTransitions.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon.newCif; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CRS001_S001_CommonReportingStatusPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.GDP001_S001_ClientConsentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface CIF111_S001_NewCifDataTransitions extends WebFlow { + + GDP001_S001_ClientConsentsPage onClientConsentsPage(); + + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPage_TIS050(); + + CRS001_S001_CommonReportingStatusPage onCRS(); + + AML002_S001_AmlSurveyPage onAmlSurveyPage(); + + OBR003_S001_ClientContractSignPage onClientContractSignPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifAdditionalInformation.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifAdditionalInformation.java new file mode 100644 index 0000000..b9f0209 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifAdditionalInformation.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon.newCif; + +import cz.moneta.test.harness.support.web.*; + +public interface NewCifAdditionalInformation extends CIF111_S001_NewCifDataNavigation { + String MARITAL_STATUS_SELECT = "CIF111_S001_C004"; + String HOUSING_TYPE_SELECT = "CIF111_S001_C005"; + String RELATIONSHIP_TO_THE_BANK_SELECT = "CIF111_S001_C009"; + + String DEPENDANTS_INPUT = "CIF111_S001_E033"; + String RESIDENCY_SINCE_INPUT = "CIF111_S001_E034"; + + String NO_PEP_RADIO = "CIF111_S001_R004_0"; + String SJM_NO_RADIO = "CIF111_S001_R006_11"; + + @Select(MARITAL_STATUS_SELECT) + NewCifAdditionalInformation selectMaritalOfStatus(String maritalStatus); + + @Click(value = SJM_NO_RADIO, jsClick = true) + NewCifAdditionalInformation clickSjmNo(); + + @Select(HOUSING_TYPE_SELECT) + NewCifAdditionalInformation selectAccommodationType(String accommodationType); + + @TypeInto(RESIDENCY_SINCE_INPUT) + NewCifAdditionalInformation fillResidencySince(String residencySince); + + @Click(value = NO_PEP_RADIO, jsClick = true) + NewCifAdditionalInformation clickNoPep(); + + @TypeInto(DEPENDANTS_INPUT) + NewCifAdditionalInformation fillDependants(String dependants); + + @Select(RELATIONSHIP_TO_THE_BANK_SELECT) + NewCifAdditionalInformation selectRelationshipToTheBank(String relationship); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifContacts.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifContacts.java new file mode 100644 index 0000000..439565a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifContacts.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon.newCif; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface NewCifContacts extends CIF111_S001_NewCifDataNavigation { + String EMAIL_INPUT = "CIF111_S001_E018"; + String HOME_PHONE_INPUT = "CIF111_S001_E019"; + String HOME_PHONE_PREFIX_INPUT = "CIF111_S001_E016"; + String MOBILE_PHONE_INPUT = "CIF111_S001_E020"; + String MOBILE_PHONE_PREFIX_INPUT = "CIF111_S001_E008"; + String EMAIL_REFUSED_CHECKBOX = "//label[@for='CIF111_S001_H002_1']"; + + @TypeInto(EMAIL_INPUT) + NewCifContacts fillEmail(String email); + + @TypeInto(HOME_PHONE_INPUT) + NewCifContacts fillHomePhone(String number); + + @TypeInto(value = HOME_PHONE_PREFIX_INPUT, clear = true) + NewCifContacts fillHomePhonePrefix(String number); + + @TypeInto(MOBILE_PHONE_INPUT) + NewCifContacts fillMobilePhone(String number); + + @TypeInto(value = MOBILE_PHONE_PREFIX_INPUT, clear = true) + NewCifContacts fillMobilePhonePrefix(String number); + + @Click(value = EMAIL_REFUSED_CHECKBOX, by = Lookup.XPATH) + NewCifContacts checkRefuseEmail(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifEmployment.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifEmployment.java new file mode 100644 index 0000000..679fa65 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifEmployment.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon.newCif; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface NewCifEmployment extends CIF111_S001_NewCifDataNavigation { + String INCOME_TYPE_SELECT = "CIF111_S001_C002"; + String INCOME_SUBTYPE_SELECT = "CIF111_S001_C003"; + String EMPLOYMENT_SELECT = "CIF111_S001_C010"; + + @Select(value = INCOME_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NewCifEmployment selectIncomeType(String incomeType); + + @Select(value = INCOME_SUBTYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NewCifEmployment selectIncomeSubtype(String incomeSubtype); + + @Wait(explicitWaitSeconds = 1) + @Select(EMPLOYMENT_SELECT) + NewCifEmployment selectEmployment(String employment); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifIdentificationDocuments.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifIdentificationDocuments.java new file mode 100644 index 0000000..3935242 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifIdentificationDocuments.java @@ -0,0 +1,70 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon.newCif; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface NewCifIdentificationDocuments extends CIF111_S001_NewCifDataNavigation { + String FIRST_ID_SELECT = "CIF111_S001_C001"; + String FIRST_ID_NUMBER_INPUT = "CIF111_S001_E009"; + String FIRST_ID_VALID_TO_INPUT = "CIF111_S001_E017"; + String CONTROL_NUMBER_INPUT = "CIF111_S001_E061"; + String FIRST_AUTHORITIES_SELECT = "CIF111_S001_C008"; + + String SECONDARY_TYPE_OF_ID_SELECT = "CIF111_S001_C019"; + String SECOND_DOCUMENT_NUMBER_INPUT = "CIF111_S001_E063"; + String SECOND_DOCUMENT_VALID_TO_INPUT = "CIF111_S001_E064"; + String SECOND_AUTHORITIES_SELECT = "CIF111_S001_C020"; + String ADD_SECOND_DOCUMENT = "CIF111_S001_L073"; + + String THIRD_ID_SELECT = "CIF111_S001_C021"; + String THIRD_ID_CARD_NUMBER_INPUT = "CIF111_S001_E066"; + String THIRD_ID_CARD_VALID_TO_INPUT = "CIF111_S001_E067"; + String THIRD_AUTHORITIES_SELECT = "CIF111_S001_C022"; + String ADD_THIRD_DOCUMENT = "CIF111_S001_L066"; + + @TypeInto(FIRST_ID_NUMBER_INPUT) + NewCifIdentificationDocuments fillFirstIdNumber(String number); + + @Select(FIRST_ID_SELECT) + NewCifIdentificationDocuments selectFirstId(String text); + + @Select(FIRST_AUTHORITIES_SELECT) + NewCifIdentificationDocuments selectFirstIdAuthorities(String state); + + @Click(value = ADD_SECOND_DOCUMENT) + NewCifIdentificationDocuments clickAddSecondId(); + + @Click(value = ADD_THIRD_DOCUMENT) + NewCifIdentificationDocuments clickAddThirdId(); + + @Select(SECONDARY_TYPE_OF_ID_SELECT) + NewCifIdentificationDocuments selectSecondId(String text); + + @TypeInto(FIRST_ID_VALID_TO_INPUT) + NewCifIdentificationDocuments fillFirstIdValidity(String date); + + @TypeInto(SECOND_DOCUMENT_NUMBER_INPUT) + NewCifIdentificationDocuments fillSecondIdNumber(String number); + + @TypeInto(SECOND_DOCUMENT_VALID_TO_INPUT) + NewCifIdentificationDocuments fillSecondIdValidity(String date); + + @Select(SECOND_AUTHORITIES_SELECT) + NewCifIdentificationDocuments selectSecondIdAuthorities(String state); + + @Select(THIRD_ID_SELECT) + NewCifIdentificationDocuments selectThirdId(String text); + + @TypeInto(THIRD_ID_CARD_NUMBER_INPUT) + NewCifIdentificationDocuments fillThirdIdNumber(String number); + + @TypeInto(THIRD_ID_CARD_VALID_TO_INPUT) + NewCifIdentificationDocuments fillThirdIdValidity(String date); + + @Select(THIRD_AUTHORITIES_SELECT) + NewCifIdentificationDocuments selectThirdIdAuthorities(String state); + + @TypeInto(CONTROL_NUMBER_INPUT) + NewCifIdentificationDocuments fillControlNumber(String controlNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifPersonalData.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifPersonalData.java new file mode 100644 index 0000000..c798fc2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifPersonalData.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon.newCif; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface NewCifPersonalData extends CIF111_S001_NewCifDataNavigation { + String BORN_IN_CZECH_REPUBLIC_BUTTON = "CIF111_S001_B001"; + String BORN_COUNTRY_SELECT = "CIF111_S001_C013"; + String NATIONALITY_CZECH_REPUBLIC_BUTTON = "CIF111_S001_B006"; + String NATIONALITY_SELECT = "CIF111_S001_C018"; + String EDUCATION_TYPE_SELECT = "CIF111_S001_C006"; + String CLIENT_TITLE_INPUT = "CIF111_S001_E001"; + String FIRST_NAME_INPUT = "CIF111_S001_E002"; + String LAST_NAME_INPUT = "CIF111_S001_E004"; + String BIRTH_NUMBER_INPUT = "CIF111_S001_N001"; + String DATE_OF_BIRTH_INPUT = "CIF111_S001_E006"; + String PLACE_OF_BIRTH_INPUT = "CIF111_S001_E040"; + String SEX_MAN_RADIO = "CIF111_S001_R001_1"; + + @TypeInto(CLIENT_TITLE_INPUT) + NewCifPersonalData fillClientTitle(String title); + + @TypeInto(FIRST_NAME_INPUT) + NewCifPersonalData fillFirstName(String firstName); + + @TypeInto(LAST_NAME_INPUT) + NewCifPersonalData fillLastName(String lastName); + + @Click(value = NATIONALITY_CZECH_REPUBLIC_BUTTON) + NewCifPersonalData clickToCzechRepublicNationality(); + + @Select(value = EDUCATION_TYPE_SELECT) + NewCifPersonalData selectToEducationLevel(String education); + + @TypeInto(PLACE_OF_BIRTH_INPUT) + NewCifPersonalData fillPlaceOfBirth(String birthPlace); + + @Click(BORN_IN_CZECH_REPUBLIC_BUTTON) + NewCifPersonalData clickBornInCzechButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifRegistryChecks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifRegistryChecks.java new file mode 100644 index 0000000..c3cbbce --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifRegistryChecks.java @@ -0,0 +1,170 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon.newCif; + +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.newCif.NewCifIdentificationDocuments.*; +import static cz.moneta.test.dsl.ufo.banka.pages.fon.newCif.NewCifPersonalData.*; +import static cz.moneta.test.dsl.ufo.banka.pages.fon.newCif.NewCifResidency.*; + +public interface NewCifRegistryChecks extends CIF111_S001_NewCifDataNavigation { + + @CustomAction + default NewCifRegistryChecks checkHiddenInputElementValue(String elementName, String expectedValue) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String text = endpoint.getAttribute(elementName, Lookup.NAME, "value"); + if (!text.contains(expectedValue)) { + throw new AssertionError(String.format("Element \"%1s\" doesn't contains text \"%2s\"", elementName, expectedValue)); + } + return null; + } + + @CustomAction + default NewCifRegistryChecks checkHiddenInputElementValueIgnoreCase(String elementName, String expectedValue) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String text = endpoint.getAttribute(elementName, Lookup.NAME, "value"); + if (!text.equalsIgnoreCase(expectedValue)) { + throw new AssertionError(String.format("Element \"%1s\" doesn't contains text \"%2s\"", elementName, expectedValue)); + } + return null; + } + + @CustomAction + default NewCifRegistryChecks checkSelectedComboElementValue(String elementName, String expectedValue) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String text = endpoint.getSelectedFirstItemText(elementName); + if (!text.contains(expectedValue)) { + throw new AssertionError(String.format("Selected value in \"%1s\" doesn't contains text \"%2s\"", elementName, expectedValue)); + } + return null; + } + + @CustomAction + default NewCifRegistryChecks checkFirstName(String name) { + checkHiddenInputElementValueIgnoreCase(FIRST_NAME_INPUT, name); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkLastName(String name) { + checkHiddenInputElementValueIgnoreCase(LAST_NAME_INPUT, name); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkSexMan() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String checked = endpoint.getAttribute(SEX_MAN_RADIO, "checked"); + if(!checked.equalsIgnoreCase("true")) { + throw new AssertionError(String.format("Radiobutton \"%s\" isn't checked", SEX_MAN_RADIO)); + } + return null; + } + + @CustomAction + default NewCifRegistryChecks checkBirthNumber(String birthNumber) { + checkHiddenInputElementValue(BIRTH_NUMBER_INPUT, birthNumber); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkDateOfBirth(String dateOfBirth) { + checkHiddenInputElementValue(DATE_OF_BIRTH_INPUT, dateOfBirth); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkStreet(String name) { + checkHiddenInputElementValue(RESIDENCY_STREET_INPUT, name); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkStreetDescriptiveNumber(String number) { + checkHiddenInputElementValue(RESIDENCY_STREET_DESCRIPTIVE_NUMBER_INPUT, number); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkStreetOrientationNumber(String number) { + checkHiddenInputElementValue(RESIDENCY_STREET_ORIENTATION_NUMBER_INPUT, number); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkCity(String city) { + checkHiddenInputElementValue(RESIDENCY_CITY_INPUT, city); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkCityPart(String cityPart) { + checkHiddenInputElementValue(RESIDENCY_CITY_PART_INPUT, cityPart); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkZip(String zip) { + checkHiddenInputElementValue(RESIDENCY_ZIP_INPUT, zip); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkPostOffice(String postOffice) { + checkHiddenInputElementValue(RESIDENCY_POST_OFFICE_INPUT, postOffice); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkPlaceOfBirth(String placeOfBirth) { + checkHiddenInputElementValue(PLACE_OF_BIRTH_INPUT, placeOfBirth); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkBornCountry(String country) { + checkSelectedComboElementValue(BORN_COUNTRY_SELECT, country); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkNationality(String country) { + checkSelectedComboElementValue(NATIONALITY_SELECT, country); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkResidencyCountry(String country) { + checkSelectedComboElementValue(PERMANENT_RESIDENCY_COUNTRY_SELECT, country); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkFirstIdType(String expectedType) { + checkSelectedComboElementValue(FIRST_ID_SELECT, expectedType); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkFirstIdNumber(String number) { + checkHiddenInputElementValue(FIRST_ID_NUMBER_INPUT, number); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkFirstIdValidity(String date) { + checkHiddenInputElementValue(FIRST_ID_VALID_TO_INPUT, date); + return null; + } + + @CustomAction + default NewCifRegistryChecks checkControlNumberAndDisabled(String controlNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isElementEnabled(CONTROL_NUMBER_INPUT, Lookup.NAME)){ + throw new AssertionError(String.format("Element \"%1s\" is enabled", CONTROL_NUMBER_INPUT)); + } + checkHiddenInputElementValue(CONTROL_NUMBER_INPUT, controlNumber); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifResidency.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifResidency.java new file mode 100644 index 0000000..15a1598 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fon/newCif/NewCifResidency.java @@ -0,0 +1,59 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fon.newCif; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface NewCifResidency extends CIF111_S001_NewCifDataNavigation { + String MAGNIFYING_GLASS_BUTTON = "CIF111_S001_B003"; + String CZECH_RESIDENCY_BUTTON = "CIF111_S001_B016"; + String ACCEPT_ADDRESS_BUTTON = "CIF111_S001_B026"; + String PERMANENT_RESIDENCY_COUNTRY_SELECT = "CIF111_S001_C011"; + String RESIDENCY_STREET_INPUT = "CIF111_S001_E010"; + String RESIDENCY_STREET_DESCRIPTIVE_NUMBER_INPUT = "CIF111_S001_E011"; + String RESIDENCY_STREET_ORIENTATION_NUMBER_INPUT = "CIF111_S001_E012"; + String RESIDENCY_CITY_INPUT = "CIF111_S001_E013"; + String RESIDENCY_ZIP_INPUT = "CIF111_S001_E015"; + String RESIDENCY_CITY_PART_INPUT = "CIF111_S001_E042"; + String RESIDENCY_POST_OFFICE_INPUT = "CIF111_S001_E014"; + String FIRST_FOUND_ADDRESS_RADIO = "CIF111_S001_G004-0"; + String CONTACT_ADDRESS_SAME_AS_PERMANENT_CHECKBOX = "CIF111_S001_H004_1"; + + @TypeInto(RESIDENCY_STREET_INPUT) + NewCifResidency fillStreet(String name); + + @TypeInto(RESIDENCY_STREET_DESCRIPTIVE_NUMBER_INPUT) + NewCifResidency fillStreetNumber(String number); + + @TypeInto(RESIDENCY_STREET_ORIENTATION_NUMBER_INPUT) + NewCifResidency fillStreetOrientationNumber(String number); + + @TypeInto(value = RESIDENCY_CITY_INPUT, clear = true) + NewCifResidency fillCity(String city); + + @TypeInto(RESIDENCY_CITY_PART_INPUT) + NewCifResidency fillCityPart(String cityPart); + + @TypeInto(RESIDENCY_ZIP_INPUT) + NewCifResidency fillZip(String zip); + + @TypeInto(value = RESIDENCY_POST_OFFICE_INPUT, clear = true) + NewCifResidency fillPostOffice(String postOffice); + + @Click(CZECH_RESIDENCY_BUTTON) + NewCifResidency clickResidencyInCzechRepublic(); + + @Select(PERMANENT_RESIDENCY_COUNTRY_SELECT) + NewCifResidency selectPermanentResidencyCountry(String permanentResidencyCountry); + + @Click(value = CONTACT_ADDRESS_SAME_AS_PERMANENT_CHECKBOX, jsClick = true) + NewCifResidency clickContactAddressSameAsPermanentCheckbox(); + + @Click(MAGNIFYING_GLASS_BUTTON) + NewCifResidency clickMagnifyGlassButton(); + + @Click(value = FIRST_FOUND_ADDRESS_RADIO, jsClick = true) + @Click(value = ACCEPT_ADDRESS_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + NewCifResidency clickFirstFoundAddress(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF001_S003_CreateNewCompanyCifPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF001_S003_CreateNewCompanyCifPage.java new file mode 100644 index 0000000..cff8f20 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF001_S003_CreateNewCompanyCifPage.java @@ -0,0 +1,147 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF001_S003_CreateNewCompanyCifPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.*; + +@Wait(value = CIF001_S003_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = {BUSINESS_NAME_INPUT, SUBMIT_BUTTON}, until = Until.VISIBLE, waitSecondsForElement = 60) +public interface CIF001_S003_CreateNewCompanyCifPage extends WebFlow { + + String CIF001_S003_PAGE_LABEL_XPATH = "//div[text()='CIF001_S003']"; + + String BUSINESS_NAME_INPUT = "CIF001_S003_E018"; + String FIRST_NAME_INPUT = "CIF001_S003_E019"; + String TIN_INPUT = "CIF001_S003_E003"; + String STREET_NAME_INPUT = "CIF001_S003_E004"; + String LAND_REGISTRATION_INPUT = "CIF001_S003_E006"; + String STREET_NUM_INPUT = "CIF001_S003_E022"; + String CITY_NAME_INPUT = "CIF001_S003_E023"; + String ZIP_CODE_INPUT = "CIF001_S003_E024"; + String EMAIL_INPUT = "CIF001_S003_E014"; + String MOBILE_PHONE_INPUT = "CIF001_S003_E015"; + String ABBREVIATED_NAME_INPUT = "CIF001_S003_E019"; + String OKEC_CODE_INPUT = "CIF001_S003_E021"; + String CITY_DISTRICT_INPUT = "CIF001_S003_E026"; + String LEGAL_FORM_INPUT = "CIF001_S003_E020"; + String COURT_DEPARTMENT_INPUT = "CIF001_S003_E010"; + String COURT_INSERT_INPUT = "CIF001_S003_E011"; + String START_DATE_INPUT = "CIF001_S003_E027"; + String ADDRESS_LOOKUP_INPUT = "CIF001_S003_E005"; + String ECONOMY_SECTOR_SELECT = "CIF001_S003_C006"; + String OKEC_TITLE_SELECT = "CIF001_S003_C005"; + String COURT_SEAT_SELECT = "CIF001_S003_C001"; + String ECONOMY_SECTOR_SELECT_COMPANY = "CIF001_S003_C003"; + String EMPLOYEE_COUNT_SELECT = "CIF001_S003_C007"; + String LEGAL_FORM_SELECT = "CIF001_S003_C004"; + String CZECH_CITIZENSHIP_BUTTON = "CIF001_S003_B003"; + String SUBMIT_BUTTON = "CIF001_S003_B009"; + String ADDRESS_LOOKUP_FLOAT_BUTTON = "CIF001_S003_B002"; + String CZECH_COUNTRY_OF_ESTABLISHMENT_BUTTON = "CIF001_S003_B018"; + String CZECH_COUNTRY_OF_FOUNDATION_BUTTON = "CIF001_S003_B006"; + String UNIFIED_ADDRESS_LOOKUP_BUTTON = "CIF001_S003_B004"; + String FIRST_FOUND_ADDRESS_INPUT = "CIF001_S003_G001-0"; + String CHOOSE_ADRESS_BUTTON = "CIF001_S003_B005"; + + @TypeInto(value = BUSINESS_NAME_INPUT, clear = true) + CIF001_S003_CreateNewCompanyCifPage fillCompanyName(String companyName); + + @TypeInto(FIRST_NAME_INPUT) + CIF001_S003_CreateNewCompanyCifPage fillFirstName(String firstName); + + @TypeInto(value = ABBREVIATED_NAME_INPUT, clear = true) + CIF001_S003_CreateNewCompanyCifPage fillAbbreviatedName(String abbreviatedName); + + @TypeInto(TIN_INPUT) + CIF001_S003_CreateNewCompanyCifPage fillDic(String dicCode); + + @TypeInto(STREET_NAME_INPUT) + CIF001_S003_CreateNewCompanyCifPage fillStreet(String addressStreet); + + @TypeInto(LAND_REGISTRATION_INPUT) + CIF001_S003_CreateNewCompanyCifPage fillLandRegistration(String addressCp); + + @TypeInto(STREET_NUM_INPUT) + CIF001_S003_CreateNewCompanyCifPage fillStreetNumber(String addressCo); + + @TypeInto(value = CITY_NAME_INPUT, clear = true) + CIF001_S003_CreateNewCompanyCifPage fillCityName(String addressCity); + + @TypeInto(ZIP_CODE_INPUT) + CIF001_S003_CreateNewCompanyCifPage fillZipCode(String addressPsc); + + @TypeInto(EMAIL_INPUT) + CIF001_S003_CreateNewCompanyCifPage fillEmail(String email); + + @TypeInto(MOBILE_PHONE_INPUT) + CIF001_S003_CreateNewCompanyCifPage fillMobilePhone(String mobilePhone); + + @TypeInto(OKEC_CODE_INPUT) + @Click(BUSINESS_NAME_INPUT) + // to lookup value + CIF001_S003_CreateNewCompanyCifPage fillOkecCode(String naceNumber); + + @TypeInto(CITY_DISTRICT_INPUT) + CIF001_S003_CreateNewCompanyCifPage fillCityDistrict(String addressCityDistrict); + + @TypeInto(value = LEGAL_FORM_INPUT, clear = true) + @Click(BUSINESS_NAME_INPUT) + // to lookup value + CIF001_S003_CreateNewCompanyCifPage fillLegalFormCode(String legalFormCode); + + @TypeInto(value = START_DATE_INPUT, clear = true) + CIF001_S003_CreateNewCompanyCifPage fillStartDate(String busStartDate); + + @Wait(explicitWaitSeconds = 2) + @TypeInto(value = ADDRESS_LOOKUP_INPUT, clear = true) + CIF001_S003_CreateNewCompanyCifPage fillAddressLookup(String partialAddress); + + @TypeInto(COURT_DEPARTMENT_INPUT) + CIF001_S003_CreateNewCompanyCifPage fillCourtDepartment(String courtDepartment); + + @TypeInto(COURT_INSERT_INPUT) + CIF001_S003_CreateNewCompanyCifPage fillCourtInsert(String courtInsert); + + @Click(CZECH_CITIZENSHIP_BUTTON) + CIF001_S003_CreateNewCompanyCifPage clickCzechCitizenship(); + + @TypeInto(LEGAL_FORM_SELECT) + CIF001_S003_CreateNewCompanyCifPage selectLegalForm(String legalForm); + + @TypeInto(OKEC_TITLE_SELECT) + CIF001_S003_CreateNewCompanyCifPage selectOkecTitle(String okecTitle); + + @Select(ECONOMY_SECTOR_SELECT) + CIF001_S003_CreateNewCompanyCifPage selectEconomySectorFop(int sectorId); + + @Select(COURT_SEAT_SELECT) + CIF001_S003_CreateNewCompanyCifPage selectCourtSeat(String courtSeat); + + @TypeInto(ECONOMY_SECTOR_SELECT_COMPANY) + CIF001_S003_CreateNewCompanyCifPage selectEconomySectorPo(String economySector); + + @Select(EMPLOYEE_COUNT_SELECT) + CIF001_S003_CreateNewCompanyCifPage selectEmployeeCount(String employeeCount); + + @Click(ADDRESS_LOOKUP_FLOAT_BUTTON) + CIF001_S003_CreateNewCompanyCifPage clickAddressLookupMagnifyGlass(); + + @Click(value = UNIFIED_ADDRESS_LOOKUP_BUTTON, andWait = @Wait(value = FIRST_FOUND_ADDRESS_INPUT, by = Lookup.ID, until = Until.VISIBLE, waitSecondsForElement = 60)) + CIF001_S003_CreateNewCompanyCifPage clickDoAddressSearch(); + + @Click(value = FIRST_FOUND_ADDRESS_INPUT, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + CIF001_S003_CreateNewCompanyCifPage clickFirstFoundAddress(); + + @Click(value = CHOOSE_ADRESS_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 10)) + CIF001_S003_CreateNewCompanyCifPage clickChooseAdress(); + + @Click(CZECH_COUNTRY_OF_ESTABLISHMENT_BUTTON) + CIF001_S003_CreateNewCompanyCifPage clickCzechCountryOfEstablishment(); + + @Click(CZECH_COUNTRY_OF_FOUNDATION_BUTTON) + CIF001_S003_CreateNewCompanyCifPage clickCzechCountryOfFoundation(); + + @Click(SUBMIT_BUTTON) + CIF001_S003_CreateNewCompanyCifPageTransitions clickSubmit(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF001_S003_CreateNewCompanyCifPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF001_S003_CreateNewCompanyCifPageTransitions.java new file mode 100644 index 0000000..47f7c82 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF001_S003_CreateNewCompanyCifPageTransitions.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.SCN001_S001_IdDocumentsCopy; +import cz.moneta.test.dsl.ufo.banka.pages.po.CIF040_S001_StatutoryAuthorityPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface CIF001_S003_CreateNewCompanyCifPageTransitions extends WebFlow { + + CIF009_S001_CreateNewFoCifAsFopPartPage onCreateNewFoCifAsFopPartPage(); + + DMS001_S001_ScanDocumentsPage onScanDocumentsPage(); + + CIF040_S001_StatutoryAuthorityPage onStatutoryAuthorityPage(); + + SCN001_S001_IdDocumentsCopy onIDDocumentsCopy(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF001_S018_CompanySignatureCifConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF001_S018_CompanySignatureCifConfirmationPage.java new file mode 100644 index 0000000..8d1cec5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF001_S018_CompanySignatureCifConfirmationPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF001_S018_CompanySignatureCifConfirmationPage.CIF001_S018_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF001_S018_CompanySignatureCifConfirmationPage.CONTINUE_BUTTON; + +@Wait(value = CIF001_S018_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 40) +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 40) +public interface CIF001_S018_CompanySignatureCifConfirmationPage extends WebFlow { + + String CIF001_S018_PAGE_LABEL_XPATH = "//div[text()='CIF001_S018']"; + String CONTINUE_BUTTON = "CIF001_S018_B001"; + + @Click(CONTINUE_BUTTON) + DMS001_S001_ScanDocumentsPage clickConfirmSignatureAndStartScanning(); + + @Click(CONTINUE_BUTTON) + HKO101_S001_MainClientPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF009_S001_CreateNewFoCifAsFopPartPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF009_S001_CreateNewFoCifAsFopPartPage.java new file mode 100644 index 0000000..97a3d1a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF009_S001_CreateNewFoCifAsFopPartPage.java @@ -0,0 +1,212 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF009_S001_CreateNewFoCifAsFopPartPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +/** + * Page visually nearly identical to CIF001_S001 and CIF011_S001 + * Page creates FO part of FOP pair + */ + +@Wait(value = CIF009_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(SUBMIT_BUTTON) +public interface CIF009_S001_CreateNewFoCifAsFopPartPage extends WebFlow { + String CIF009_S001_PAGE_LABEL_XPATH = "//div[text()='CIF009_S001']"; + + String SUBMIT_BUTTON = "CIF009_S001_B002"; + + String FIRST_OTHER_ID_SELECT = "CIF009_S001_C001"; + String MARITAL_STATUS_SELECT = "CIF009_S001_C004"; + String MATRIMONIAL_PROPERTY_LIMITED_SELECT = "CIF009_S001_C014"; + String RESIDENCY_TYPE_SELECT = "CIF009_S001_C005"; + String EDUCATION_TYPE_SELECT = "CIF009_S001_C006"; + String INCOME_TYPE_SELECT = "CIF009_S001_C007"; + String OCCUPATION_SELECT = "CIF009_S001_C016"; + + String CLIENT_TITLE_INPUT = "CIF009_S001_E001"; + String FIRST_NAME_INPUT = "CIF009_S001_E002"; + String LAST_NAME_INPUT = "CIF009_S001_E004"; + String NATIONAL_ID_CARD_NUMBER_INPUT = "CIF009_S001_E007"; + String NATIONAL_ID_CARD_VALID_TO_INPUT = "CIF009_S001_E008"; + String FIRST_OTHER_ID_NUMBER_INPUT = "CIF009_S001_E009"; + String RESIDENCY_STREET_INPUT = "CIF009_S001_E010"; + String RESIDENCY_STREET_NUMBER_INPUT = "CIF009_S001_E011"; + String RESIDENCY_STREET_ORIENTATION_NUMBER_INPUT = "CIF009_S001_E012"; + String RESIDENCY_CITY_INPUT = "CIF009_S001_E013"; + String RESIDENCY_ZIP_INPUT = "CIF009_S001_E015"; + String PASSPORT_VALID_TO_INPUT = "CIF009_S001_E016"; + String FIRST_OTHER_ID_VALID_TO_INPUT = "CIF009_S001_E017"; + String EMAIL_INPUT = "CIF009_S001_E018"; + String HOME_PHONE_INPUT = "CIF009_S001_E019"; + String MOBILE_PHONE_INPUT = "CIF009_S001_E020"; + String WORK_PHONE_INPUT = "CIF009_S001_E021"; + String EMPLOYER_NAME_INPUT = "CIF009_S001_E023"; + String EMPLOYER_IC_INPUT = "CIF009_S001_E024"; + String EMPLOYER_STREET_INPUT = "CIF009_S001_E025"; + String EMPLOYER_STREET_NUMBER_INPUT = "CIF009_S001_E026"; + String EMPLOYER_STREET_ORIENTATION_NUMBER_INPUT = "CIF009_S001_E027"; + String EMPLOYER_CITY_INPUT = "CIF009_S001_E028"; + String EMPLOYER_ZIP_INPUT = "CIF009_S001_E029"; + String NET_INCOME_INPUT = "CIF009_S001_E031"; + String INCOME_CONFIRMATION_DATE = "CIF009_S001_E032"; + String EMPLOYED_SINCE_INPUT = "CIF009_S001_E030"; + String RESIDENCY_DURATION_SINCE_INPUT = "CIF009_S001_E034"; + String PASSPORT_NUMBER_INPUT = "CIF009_S001_E037"; + String RESIDENCY_CITY_DISTRICT_INPUT = "CIF009_S001_E042"; + String PLACE_OF_BIRTH_INPUT = "CIF009_S001_E059"; + + String RESIDENCY_FROM_FOP_CIF_ADDRESS_CHECKBOX = "CIF009_S001_H002_1"; + + String ADDRESS_LOOKUP_FLOAT_BUTTON = "CIF009_S001_P005"; + String FIRST_OTHER_ID_ISSUED_BY_CZECH_AUTHORITIES_BUTTON = "CIF009_S001_P007"; + String PASSPORT_ISSUED_BY_CZECH_AUTHORITIES_BUTTON = "CIF009_S001_P008"; + String CZECH_RESIDENCY_BUTTON = "CIF009_S001_P009"; + String BORN_IN_CZECH_REPUBLIC_BUTTON = "CIF009_S001_P010"; + + String UNIFIED_ADDRESS_LOOKUP_BUTTON = "XXX000_T001_B100"; + String FIRST_FOUND_ADDRESS_BUTTON = "XXX000_T001_G100-0"; + + @TypeInto(EMAIL_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillEmail(String email); + + @TypeInto(HOME_PHONE_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillHomePhone(String number); + + @TypeInto(MOBILE_PHONE_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillMobilePhone(String number); + + @TypeInto(WORK_PHONE_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillWorkPhone(String number); + + @TypeInto(EMPLOYER_NAME_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillName(String name); + + @TypeInto(EMPLOYER_IC_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillIc(String name); + + @TypeInto(EMPLOYER_STREET_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillEmployerStreet(String name); + + @TypeInto(EMPLOYER_STREET_NUMBER_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillEmployerStreetNumber(String number); + + @TypeInto(EMPLOYER_STREET_ORIENTATION_NUMBER_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillEmployerStreetOrientationNumber(String number); + + @TypeInto(EMPLOYER_CITY_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillEmployerCity(String city); + + @TypeInto(EMPLOYER_ZIP_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillEmployerZip(String zip); + + @TypeInto(NET_INCOME_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillMonthlyNetIncomeInThousands(int income); + + @TypeInto(INCOME_CONFIRMATION_DATE) + CIF009_S001_CreateNewFoCifAsFopPartPage fillIncomeConfirmedOn(String confirmedDate); + + @TypeInto(EMPLOYED_SINCE_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillEmployedFrom(String date); + + @TypeInto(RESIDENCY_DURATION_SINCE_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillCurrentResidencySince(String date); + + @Select(MARITAL_STATUS_SELECT) + CIF009_S001_CreateNewFoCifAsFopPartPage selectMaritalStatus(String status); + + @Select(MATRIMONIAL_PROPERTY_LIMITED_SELECT) + CIF009_S001_CreateNewFoCifAsFopPartPage selectLimitedMatrimonialProperty(String sjmValue); + + @Select(RESIDENCY_TYPE_SELECT) + CIF009_S001_CreateNewFoCifAsFopPartPage selectResidencyType(String residencyType); + + @Select(EDUCATION_TYPE_SELECT) + CIF009_S001_CreateNewFoCifAsFopPartPage selectEducationLevel(String education); + + @Select(INCOME_TYPE_SELECT) + CIF009_S001_CreateNewFoCifAsFopPartPage selectIncomeType(String incomeType); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60) + @Select(OCCUPATION_SELECT) + CIF009_S001_CreateNewFoCifAsFopPartPage selectOccupation(String occupation); + + @TypeInto(CLIENT_TITLE_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillClientTitle(String title); + + @TypeInto(FIRST_NAME_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillFirstName(String firstName); + + @TypeInto(LAST_NAME_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillLastName(String lastName); + + @TypeInto(PLACE_OF_BIRTH_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillPlaceOfBirth(String placeOfBirth); + + @Click(BORN_IN_CZECH_REPUBLIC_BUTTON) + CIF009_S001_CreateNewFoCifAsFopPartPage clickBornInCzechRepublic(); + + @TypeInto(NATIONAL_ID_CARD_NUMBER_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillNationalIdNumber(String number); + + @TypeInto(NATIONAL_ID_CARD_VALID_TO_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillNationalIdValidity(String date); + + @TypeInto(PASSPORT_NUMBER_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillPassportNumber(String number); + + @TypeInto(PASSPORT_VALID_TO_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillPassportValidity(String date); + + @Click(PASSPORT_ISSUED_BY_CZECH_AUTHORITIES_BUTTON) + CIF009_S001_CreateNewFoCifAsFopPartPage clickPassportIssuedByCzechAuthorities(); + + @Select(FIRST_OTHER_ID_SELECT) + CIF009_S001_CreateNewFoCifAsFopPartPage selectFirstOtherId(String text); + + @TypeInto(FIRST_OTHER_ID_NUMBER_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillFirstOtherIdNumber(String name); + + @TypeInto(FIRST_OTHER_ID_VALID_TO_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillFirstOtherIdValidity(String date); + + @Click(FIRST_OTHER_ID_ISSUED_BY_CZECH_AUTHORITIES_BUTTON) + CIF009_S001_CreateNewFoCifAsFopPartPage clickFirstOtherIdIssuedByCzechAuthorities(); + + @TypeInto(RESIDENCY_STREET_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillStreet(String name); + + @TypeInto(RESIDENCY_STREET_NUMBER_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillStreetNumber(String number); + + @TypeInto(RESIDENCY_STREET_ORIENTATION_NUMBER_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillStreetOrientationNumber(String number); + + @TypeInto(RESIDENCY_CITY_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillCity(String city); + + @TypeInto(RESIDENCY_CITY_DISTRICT_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillCityDistrict(String cityPart); + + @TypeInto(RESIDENCY_ZIP_INPUT) + CIF009_S001_CreateNewFoCifAsFopPartPage fillZip(String zip); + + @Click(CZECH_RESIDENCY_BUTTON) + CIF009_S001_CreateNewFoCifAsFopPartPage clickResidencyInCzechRepublic(); + + @Click(RESIDENCY_FROM_FOP_CIF_ADDRESS_CHECKBOX) + CIF009_S001_CreateNewFoCifAsFopPartPage clickCompanySeatSameAsResidency(); + + @Click(ADDRESS_LOOKUP_FLOAT_BUTTON) + CIF009_S001_CreateNewFoCifAsFopPartPage clickAddressLookupMagnifyGlass(); + + @Click(UNIFIED_ADDRESS_LOOKUP_BUTTON) + CIF009_S001_CreateNewFoCifAsFopPartPage clickDoAddressSearch(); + + @Click(FIRST_FOUND_ADDRESS_BUTTON) + CIF009_S001_CreateNewFoCifAsFopPartPage clickFirstFoundAddress(); + + @Click(SUBMIT_BUTTON) + CIF034_S001_CompanyAntiLaunderingStatement submitCif(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF010_S002_AssociatedFopDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF010_S002_AssociatedFopDataPage.java new file mode 100644 index 0000000..ae54d5f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF010_S002_AssociatedFopDataPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF010_S002_AssociatedFopDataPage.*; + +@Wait(value = CIF010_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(SEND_BUTTON) +public interface CIF010_S002_AssociatedFopDataPage extends WebFlow { + String CIF010_S002_PAGE_LABEL_XPATH = "//div[text()='CIF010_S002']"; + + String SEND_BUTTON = "CIF010_S002_B002"; + + @Click(SEND_BUTTON) + OBR001_S001_PrintInstructionPage clickSendToPrintInstructionsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF034_S001_CompanyAntiLaunderingStatement.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF034_S001_CompanyAntiLaunderingStatement.java new file mode 100644 index 0000000..bb6d149 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF034_S001_CompanyAntiLaunderingStatement.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.CRS001_S001_CommonReportingStatusPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF034_S001_CompanyAntiLaunderingStatement.*; + +@Wait(value = CIF034_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(SUBMIT_BUTTON) +public interface CIF034_S001_CompanyAntiLaunderingStatement extends WebFlow { + + String CIF034_S001_PAGE_LABEL_XPATH = "//div[text()='CIF034_S001']"; + + String SUBMIT_BUTTON = "CIF034_S001_B001"; + + String CURRENCY_MAJORITY_SELECT = "CIF034_S001_C001"; + String LAST_TURNOVER_SELECT = "CIF034_S001_C006"; + String MMB_TURNOVER_SELECT = "CIF034_S001_C007"; + + String NO_MORE_THAN_HALF_RADIO = "CIF034_S001_R001_0"; + String MORE_THAN_HALF_RADIO = "CIF034_S001_R001_1"; + String EXPECTED_TRANSACTIONS_RADIO = "CIF034_S001_R002_2"; + String FOREIGN_TRANSACTIONS_SEND_RADIO = "CIF034_S001_R003_0"; + String FOREIGN_TRANSACTIONS_RECEIVE_RADIO = "CIF034_S001_R005_0"; + String NO_LOANS_EXPECTED_RADIO = "CIF034_S001_R007_0"; + String LOANS_EXPECTED_RADIO = "CIF034_S001_R007_1"; + + @Click(SUBMIT_BUTTON) + CRS001_S001_CommonReportingStatusPage submitStatement(); + + @Click(EXPECTED_TRANSACTIONS_RADIO) + CIF034_S001_CompanyAntiLaunderingStatement chooseExpectedCashless(); + + @Click(FOREIGN_TRANSACTIONS_SEND_RADIO) + CIF034_S001_CompanyAntiLaunderingStatement chooseNoSendingAbroad(); + + @Click(FOREIGN_TRANSACTIONS_RECEIVE_RADIO) + CIF034_S001_CompanyAntiLaunderingStatement chooseNoForeignReceive(); + + @Click(NO_LOANS_EXPECTED_RADIO) + CIF034_S001_CompanyAntiLaunderingStatement chooseLoansNotExpected(); + + @Click(LOANS_EXPECTED_RADIO) + CIF034_S001_CompanyAntiLaunderingStatement chooseLoansExpected(); + + @Click(NO_MORE_THAN_HALF_RADIO) + CIF034_S001_CompanyAntiLaunderingStatement chooseMmbMinority(); + + @Click(MORE_THAN_HALF_RADIO) + CIF034_S001_CompanyAntiLaunderingStatement chooseMmbMajority(); + + @Select(CURRENCY_MAJORITY_SELECT) + CIF034_S001_CompanyAntiLaunderingStatement selectMajorityCurrency(String currencyCode); + + @Select(LAST_TURNOVER_SELECT) + CIF034_S001_CompanyAntiLaunderingStatement selectLastTurnover(String moneyInterval); + + @Select(MMB_TURNOVER_SELECT) + CIF034_S001_CompanyAntiLaunderingStatement selectMmbTurnover(String moneyInterval); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF069_S001_CreateNewAcceleratedCifPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF069_S001_CreateNewAcceleratedCifPage.java new file mode 100644 index 0000000..f95b3d5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF069_S001_CreateNewAcceleratedCifPage.java @@ -0,0 +1,86 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS070_S001_ScanDocumentsPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF069_S001_CreateNewAcceleratedCifPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.*; + +@Wait(value = CIF069_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(DISABLED_CONTINUE_BUTTON) +public interface CIF069_S001_CreateNewAcceleratedCifPage extends WebFlow { + String CIF069_S001_PAGE_LABEL_XPATH = "//div[text()='CIF069_S001']"; + String DISABLED_CONTINUE_BUTTON = "CIF069_S001_X051"; + + String CZECH_FLAG_ADDRESS_BUTTON = "CIF069_S001_B001"; + String CONTINUE_BUTTON = "CIF069_S001_B003"; + String CZECH_FLAG_ESTABLISHMENT_BUTTON = "CIF069_S001_B004"; + String CZECH_FLAG_TAX_RESIDENCY_BUTTON = "CIF069_S001_B005"; + String ADDRESS_LOOKUP_FLOAT_BUTTON = "CIF069_S001_B006"; + String UNIFIED_ADDRESS_LOOKUP_BUTTON = "CIF069_S001_B008"; + String FOUND_ADDRESS_SELECT_BUTTON = "CIF069_S001_B012"; + + String RESIDENCY_COUNTRY_SELECT = "CIF069_S001_C001"; + String ECONOMICAL_SECTOR_SELECT = "CIF069_S001_C009"; + String NUMBER_OF_EMPLOYEES_SELECT = "CIF069_S001_C010"; + + String SEARCH_ADDRESS_INPUT = "CIF069_S001_E001"; + String COMPANY_NAME_INPUT = "CIF069_S001_E005"; + String STREET_INPUT = "CIF069_S001_E010"; + String DESCRIPTIVE_NUMBER_INPUT = "CIF069_S001_E013"; + String BUSINESS_FOUNDED_DATE_INPUT = "CIF069_S001_E017"; + String LEGAL_FORM_INPUT = "CIF069_S001_E018"; + String OKEC_CODE_INPUT = "CIF069_S001_E020"; + + String FIRST_FOUND_ADDRESS_RADIO = "CIF069_S001_G001-0"; + + @TypeInto(COMPANY_NAME_INPUT) + CIF069_S001_CreateNewAcceleratedCifPage fillCompanyName(String companyName); + + @TypeInto(STREET_INPUT) + CIF069_S001_CreateNewAcceleratedCifPage fillStreet(String street); + + @TypeInto(DESCRIPTIVE_NUMBER_INPUT) + CIF069_S001_CreateNewAcceleratedCifPage fillDescriptiveNumber(String descriptiveNumber); + + @Click(ADDRESS_LOOKUP_FLOAT_BUTTON) + CIF069_S001_CreateNewAcceleratedCifPage clickMagnifyingGlass(); + + @Wait(explicitWaitSeconds = 2) + @TypeInto(value = SEARCH_ADDRESS_INPUT, clear = true) + CIF069_S001_CreateNewAcceleratedCifPage typeAddress(String searchAddress); + + @Click(value = UNIFIED_ADDRESS_LOOKUP_BUTTON, andWait = @Wait(value = FIRST_FOUND_ADDRESS_RADIO, until = Until.VISIBLE)) + CIF069_S001_CreateNewAcceleratedCifPage clickSearchForAddress(); + + @Click(FIRST_FOUND_ADDRESS_RADIO) + @Click(value = FOUND_ADDRESS_SELECT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF069_S001_CreateNewAcceleratedCifPage clickFirstFoundAddressAndConfirm(); + + @Click(value = CZECH_FLAG_ADDRESS_BUTTON, jsClick = true) + CIF069_S001_CreateNewAcceleratedCifPage clickCzechFlagForBusinessAddress(); + + @TypeInto(BUSINESS_FOUNDED_DATE_INPUT) + CIF069_S001_CreateNewAcceleratedCifPage fillBusinessFoundedDate(String businessFoundedDate); + + @TypeInto(LEGAL_FORM_INPUT) + CIF069_S001_CreateNewAcceleratedCifPage fillLegalForm(String legalForm); + + @TypeInto(OKEC_CODE_INPUT) + CIF069_S001_CreateNewAcceleratedCifPage fillOkecCode(String okecCode); + + @Select(ECONOMICAL_SECTOR_SELECT) + CIF069_S001_CreateNewAcceleratedCifPage selectEconomicalSector(String economicalSector); + + @Click(value = CZECH_FLAG_TAX_RESIDENCY_BUTTON, jsClick = true) + CIF069_S001_CreateNewAcceleratedCifPage clickCzechFlagTaxResidency(); + + @Click(value = CZECH_FLAG_ESTABLISHMENT_BUTTON, jsClick = true) + CIF069_S001_CreateNewAcceleratedCifPage clickCzechFlagEstablishment(); + + @Select(NUMBER_OF_EMPLOYEES_SELECT) + CIF069_S001_CreateNewAcceleratedCifPage selectNumberOfEmployees(String numberOfEmployees); + + @Click(CONTINUE_BUTTON) + DMS070_S001_ScanDocumentsPage continueToScanDocumentsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF070_S001_IdentificationDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF070_S001_IdentificationDataPage.java new file mode 100644 index 0000000..cc76789 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF070_S001_IdentificationDataPage.java @@ -0,0 +1,113 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF070_S001_IdentificationDataPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.*; + +@Wait(value = CIF070_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = DISABLED_CONTINUE_BUTTON) +public interface CIF070_S001_IdentificationDataPage extends WebFlow { + String CIF070_S001_PAGE_LABEL_XPATH = "//div[text()='CIF070_S001']"; + String DISABLED_CONTINUE_BUTTON = "CIF070_S001_X059"; + + String CONTINUE_BUTTON = "CIF070_S001_B002"; + String CZECH_FLAG_COUNTRY_OF_BIRTH_BUTTON = "CIF070_S001_B004"; + String UNIFIED_ADDRESS_LOOKUP_BUTTON = "CIF070_S001_B005"; + String CZECH_PERMANENT_RESIDENCY_BUTTON = "CIF070_S001_B006"; + String CZECH_FLAG_SECOND_ID_COUNTRY_ISSUE_BUTTON = "CIF070_S001_B008"; + String ADDRESS_LOOKUP_FLOAT_BUTTON = "CIF070_S001_B011"; + String FOUND_ADDRESS_SELECT_BUTTON = "CIF070_S001_B012"; + + String SECOND_OTHER_ID_SELECT = "CIF070_S001_C003"; + + String FIRST_NAME_INPUT = "CIF070_S001_E001"; + String LAST_NAME_INPUT = "CIF070_S001_E002"; + String BIRTH_DATE_INPUT = "CIF070_S001_E003"; + String BIRTH_PLACE_INPUT = "CIF070_S001_E004"; + String ID_VALID_TILL_INPUT = "CIF070_S001_E005"; + String ID_NUMBER_INPUT = "CIF070_S001_E006"; + String BIRTH_NUMBER_INPUT = "CIF070_S001_E007"; + String ID_CONTROL_NUMBER_INPUT = "CIF070_S001_E008"; + String SECOND_OTHER_ID_NUMBER_INPUT = "CIF070_S001_E015"; + String SECOND_OTHER_ID_VALID_TILL_INPUT = "CIF070_S001_E016"; + String SEARCH_ADDRESS_INPUT = "CIF070_S001_E017"; + String ACTUAL_RESIDENCY_SINCE_INPUT = "CIF070_S001_E018"; + + String FIRST_FOUND_ADDRESS_RADIO = "CIF070_S001_G001-0"; + String GDPR_CHECKBOX = "CIF070_S001_H001_1"; + + String MALE_GENDER_RADIO = "CIF070_S001_R001_1"; + String FEMALE_GENDER_RADIO = "CIF070_S001_R001_2"; + + @TypeInto(value = FIRST_NAME_INPUT, clear = true) + CIF070_S001_IdentificationDataPage fillFirstName(String firstName); + + @TypeInto(value = LAST_NAME_INPUT, clear = true) + CIF070_S001_IdentificationDataPage fillLastName(String lastName); + + @TypeInto(BIRTH_DATE_INPUT) + CIF070_S001_IdentificationDataPage fillBirthDate(String birthDate); + + @TypeInto(BIRTH_PLACE_INPUT) + CIF070_S001_IdentificationDataPage fillBirthPlace(String birthPlace); + + @Click(CZECH_FLAG_COUNTRY_OF_BIRTH_BUTTON) + CIF070_S001_IdentificationDataPage clickCzechCountryOfBirth(); + + @TypeInto(ID_VALID_TILL_INPUT) + CIF070_S001_IdentificationDataPage fillIdValidTill(String idValidTill); + + @TypeInto(ID_NUMBER_INPUT) + CIF070_S001_IdentificationDataPage fillIdNumber(String idNumber); + + @TypeInto(BIRTH_NUMBER_INPUT) + CIF070_S001_IdentificationDataPage fillBirthNumber(String birthNumber); + + @TypeInto(ID_CONTROL_NUMBER_INPUT) + CIF070_S001_IdentificationDataPage fillIdControlNumber(String idControlNumber); + + @Click(UNIFIED_ADDRESS_LOOKUP_BUTTON) + CIF070_S001_IdentificationDataPage clickMagnifyingGlass(); + + @Wait(explicitWaitSeconds = 2) + @TypeInto(value = SEARCH_ADDRESS_INPUT, clear = true) + CIF070_S001_IdentificationDataPage typeAddress(String searchAddress); + + @Click(value = ADDRESS_LOOKUP_FLOAT_BUTTON, andWait = @Wait(value = FIRST_FOUND_ADDRESS_RADIO, until = Until.VISIBLE)) + CIF070_S001_IdentificationDataPage clickSearchForAddress(); + + @Click(FIRST_FOUND_ADDRESS_RADIO) + @Click(value = FOUND_ADDRESS_SELECT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF070_S001_IdentificationDataPage clickFirstFoundAddressAndConfirm(); + + @Click(CZECH_PERMANENT_RESIDENCY_BUTTON) + CIF070_S001_IdentificationDataPage clickCzechFlagPermanentResidency(); + + @TypeInto(ACTUAL_RESIDENCY_SINCE_INPUT) + CIF070_S001_IdentificationDataPage fillActualResidencySince(String actualResidencySince); + + @Click(value = MALE_GENDER_RADIO, jsClick = true) + CIF070_S001_IdentificationDataPage clickMaleGender(); + + @Click(value = FEMALE_GENDER_RADIO, jsClick = true) + CIF070_S001_IdentificationDataPage clickFemaleGender(); + + @Select(SECOND_OTHER_ID_SELECT) + CIF070_S001_IdentificationDataPage selectSecondId(String secondId); + + @TypeInto(SECOND_OTHER_ID_NUMBER_INPUT) + CIF070_S001_IdentificationDataPage fillSecondIdNumber(String secondIdNumber); + + @TypeInto(SECOND_OTHER_ID_VALID_TILL_INPUT) + CIF070_S001_IdentificationDataPage fillSecondIdValidTill(String secondIdValidTill); + + @Click(CZECH_FLAG_SECOND_ID_COUNTRY_ISSUE_BUTTON) + CIF070_S001_IdentificationDataPage clickCzechFlagSecondId(); + + @Click(value = GDPR_CHECKBOX, jsClick = true) + CIF070_S001_IdentificationDataPage clickGdprCheckbox(); + + @Click(CONTINUE_BUTTON) + CIF071_S001_PersonalAndContactDataPage continueToPersonalAndContactDataPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF071_S001_PersonalAndContactDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF071_S001_PersonalAndContactDataPage.java new file mode 100644 index 0000000..95da9c4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF071_S001_PersonalAndContactDataPage.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF071_S001_PersonalAndContactDataPage.*; + +@Wait(value = CIF071_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = DISABLED_CONTINUE_BUTTON) +public interface CIF071_S001_PersonalAndContactDataPage extends WebFlow { + String CIF071_S001_PAGE_LABEL_XPATH = "//div[text()='CIF071_S001']"; + String DISABLED_CONTINUE_BUTTON = "CIF071_S001_X054"; + + String CONTINUE_BUTTON = "CIF071_S001_B002"; + + String MARITAL_STATUS_SELECT = "CIF071_S001_C001"; + String EDUCATION_LEVEL_SELECT = "CIF071_S001_C006"; + String ACCOMMODATION_TYPE_SELECT = "CIF071_S001_C007"; + + String NUMBER_OF_DEPENDENTS_INPUT = "CIF071_S001_E001"; + String COMPANY_EMAIL_INPUT = "CIF071_S001_E002"; + String COMPANY_MOBILE_INPUT = "CIF071_S001_E006"; + String PERSONAL_EMAIL_INPUT = "CIF071_S001_E018"; + String PERSONAL_MOBILE_INPUT = "CIF071_S001_E019"; + + String CONSENT_EMAIL_PHONE_CHECKBOX = "CIF071_S001_H001_1"; + String CONSENT_WHATSAPP_CHECKBOX = "CIF071_S001_H002_1"; + + @Select(MARITAL_STATUS_SELECT) + CIF071_S001_PersonalAndContactDataPage selectMaritalStatus(String maritalStatus); + + @Select(EDUCATION_LEVEL_SELECT) + CIF071_S001_PersonalAndContactDataPage selectEducationLevel(String educationLevel); + + @Select(ACCOMMODATION_TYPE_SELECT) + CIF071_S001_PersonalAndContactDataPage selectAccommodationType(String accommodationType); + + @TypeInto(NUMBER_OF_DEPENDENTS_INPUT) + @KeyPress(Key.TAB) + CIF071_S001_PersonalAndContactDataPage fillNumberOfDependents(String numberOfDependents); + + @TypeInto(COMPANY_EMAIL_INPUT) + CIF071_S001_PersonalAndContactDataPage fillCompanyEmail(String companyEmail); + + @TypeInto(COMPANY_MOBILE_INPUT) + CIF071_S001_PersonalAndContactDataPage fillCompanyMobile(String companyMobile); + + @TypeInto(PERSONAL_EMAIL_INPUT) + CIF071_S001_PersonalAndContactDataPage fillPersonalEmail(String companyEmail); + + @TypeInto(PERSONAL_MOBILE_INPUT) + CIF071_S001_PersonalAndContactDataPage fillPersonalMobile(String companyMobile); + + @Click(value = CONSENT_EMAIL_PHONE_CHECKBOX, jsClick = true) + @Click(value = CONSENT_WHATSAPP_CHECKBOX, jsClick = true) + CIF071_S001_PersonalAndContactDataPage clickAcceptConsents(); + + @Wait(value = CONTINUE_BUTTON, until = Until.VISIBLE) + @Click(value = CONTINUE_BUTTON) + CIF072_S001_AntiLaunderingStatementPage continueToAntiLaunderingStatementPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF072_S001_AntiLaunderingStatementPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF072_S001_AntiLaunderingStatementPage.java new file mode 100644 index 0000000..4f75b45 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF072_S001_AntiLaunderingStatementPage.java @@ -0,0 +1,55 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF072_S001_AntiLaunderingStatementPage.*; + +@Wait(value = CIF072_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = DISABLED_CONTINUE_BUTTON) +public interface CIF072_S001_AntiLaunderingStatementPage extends WebFlow{ + String CIF072_S001_PAGE_LABEL_XPATH = "//div[text()='CIF072_S001']"; + String DISABLED_CONTINUE_BUTTON = "CIF072_S001_X060"; + + String CONTINUE_BUTTON = "CIF072_S001_B001"; + + String CURRENCY_MAJORITY_SELECT = "CIF072_S001_C001"; + String LAST_TURNOVER_SELECT = "CIF072_S001_C006"; + String MMB_TURNOVER_SELECT = "CIF072_S001_C007"; + + String CASHLESS_TRANSACTION_RADIO = "CIF072_S001_R001_2"; + String NO_FOREIGN_TRANSACTIONS_SEND_RADIO = "CIF072_S001_R002_0"; + String NO_FOREIGN_TRANSACTIONS_RECEIVE_RADIO = "CIF072_S001_R004_0"; + String NO_LOANS_EXPECTED_RADIO = "CIF072_S001_R006_0"; + String NO_MORE_THAN_HALF_RADIO = "CIF072_S001_R007_0"; + String NO_POLITICALLY_EXPOSED_PERSON_RADIO = "CIF072_S001_R008_0"; + + @Click(value = CASHLESS_TRANSACTION_RADIO, jsClick = true) + CIF072_S001_AntiLaunderingStatementPage clickCashlessTransaction(); + + @Select(CURRENCY_MAJORITY_SELECT) + CIF072_S001_AntiLaunderingStatementPage selectCurrencyMajority(String currencyMajority); + + @Click(value = NO_FOREIGN_TRANSACTIONS_SEND_RADIO, jsClick = true) + CIF072_S001_AntiLaunderingStatementPage clickNoForeignTransactionsSend(); + + @Click(value = NO_FOREIGN_TRANSACTIONS_RECEIVE_RADIO, jsClick = true) + CIF072_S001_AntiLaunderingStatementPage clickNoForeignTransactionsReceive(); + + @Click(value = NO_LOANS_EXPECTED_RADIO, jsClick = true) + CIF072_S001_AntiLaunderingStatementPage clickNoLoansExpected(); + + @Click(value = NO_MORE_THAN_HALF_RADIO, jsClick = true) + CIF072_S001_AntiLaunderingStatementPage clickNoMoreThanHalf(); + + @Select(LAST_TURNOVER_SELECT) + CIF072_S001_AntiLaunderingStatementPage selectLastTurnover(String lastTurnover); + + @Select(MMB_TURNOVER_SELECT) + CIF072_S001_AntiLaunderingStatementPage selectMmbTurnover(String mmbTurnover); + + @Click(value = NO_POLITICALLY_EXPOSED_PERSON_RADIO, jsClick = true) + CIF072_S001_AntiLaunderingStatementPage clickNoPoliticallyExposedPerson(); + + @Click(CONTINUE_BUTTON) + CIF074_S001_AcceleratedFopCifSummary continueToAcceleratedFopCifSummary(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF074_S001_AcceleratedFopCifSummary.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF074_S001_AcceleratedFopCifSummary.java new file mode 100644 index 0000000..84314f0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/CIF074_S001_AcceleratedFopCifSummary.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationTransitionsPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.CIF074_S001_AcceleratedFopCifSummary.*; + +@Wait(value = CIF074_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +@Wait(value = CONTINUE_BUTTON) +public interface CIF074_S001_AcceleratedFopCifSummary extends WebFlow{ + String CIF074_S001_PAGE_LABEL_XPATH = "//div[text()='CIF074_S001']"; + String CONTINUE_BUTTON = "CIF074_S001_B008"; + + @Click(value = CONTINUE_BUTTON) + CHK001_S001_WaitingForModulationTransitionsPage continueToModulationPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL004_S001_EditBusinessInfoPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL004_S001_EditBusinessInfoPage.java new file mode 100644 index 0000000..a9be76f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL004_S001_EditBusinessInfoPage.java @@ -0,0 +1,81 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.KUL004_S001_EditBusinessInfoPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL004_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL004_S001_EditBusinessInfoPage extends WebFlow { + String KUL004_S001_PAGE_LABEL_XPATH = "//div[text()='KUL004_S001']"; + + String CONTINUE_BUTTON = "KUL004_S001_B001"; + String EDIT_PERSON_BUTTON = "KUL004_S001_B002"; + String BACK_BUTTON = "KUL004_S001_B003"; + String LOAD_BUSINESS_NAME = "KUL004_S001_B011"; + String SAVE_CHANGE_REVENUE_SHARE_BUTTON = "KUL004_S001_B005"; + + String STATUTORY_AUTHORITY_SELECT = "KUL004_S001_C006"; + String BUSINESS_FOR_CERTAIN_TIME_SELECT = "KUL004_S001_C008"; + + String FIRST_ECONOMIC_ACTIVITY_RADIO = "KUL004_S001_G001-0"; + + String BASE_BUSINESS_CAPITAL_INPUT = "KUL004_S001_E008"; + String REVENUE_SHARE_INPUT = "KUL004_S001_E011"; + String NUMBER_OF_PERSONS_ACT_COMPANY_INPUT = "KUL004_S001_E013"; + String ECONOMICAL_SECTOR_INPUT_XPATH = "//*[@id='KUL004_S001_Y004_innerPanel']/div[28]/input[2]"; + String NUMBER_OF_EMPLOYEES_INPUT = "KUL004_S001_E021"; + + String NO_ACTIVITY_INTERRUPTED_RADIO = "KUL004_S001_R001_0"; + String NO_FOP_UNION_RADIO = "KUL004_S001_R002_0"; + String NO_TRANSFORMATION_RADIO = "KUL004_S001_R003_0"; + String NO_TELCO_SCORING_RADIO = "KUL004_S001_R004_DISAGR"; + String YES_TELCO_SCORING_RADIO = "KUL004_S001_R004_CNST"; + + @Select(BUSINESS_FOR_CERTAIN_TIME_SELECT) + KUL004_S001_EditBusinessInfoPage selectBusinessForCertainTime(String businessForCertainTime); + + @TypeInto(NUMBER_OF_EMPLOYEES_INPUT) + KUL004_S001_EditBusinessInfoPage fillNumberOfEmployees(String numberOfEmployees); + + @Click(value = FIRST_ECONOMIC_ACTIVITY_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL004_S001_EditBusinessInfoPage clickFirstEconomicActivityRadio(); + + @TypeInto(REVENUE_SHARE_INPUT) + @Click(value = SAVE_CHANGE_REVENUE_SHARE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL004_S001_EditBusinessInfoPage fillRevenueShare(String revenueShare); + + @TypeInto(BASE_BUSINESS_CAPITAL_INPUT) + KUL004_S001_EditBusinessInfoPage fillBaseBusinessCapital(String baseBusinessCapital); + + @TypeInto(NUMBER_OF_PERSONS_ACT_COMPANY_INPUT) + KUL004_S001_EditBusinessInfoPage fillNumberOfPersonsActCompany(String numberOfPersons); + + @Select(STATUTORY_AUTHORITY_SELECT) + KUL004_S001_EditBusinessInfoPage selectStatutoryAuthority(String statutoryAuthority); + + @Click(NO_TELCO_SCORING_RADIO) + KUL004_S001_EditBusinessInfoPage clickNoTelcoScoring(); + + @Click(YES_TELCO_SCORING_RADIO) + KUL004_S001_EditBusinessInfoPage clickYesTelcoScoring(); + + @Click(NO_FOP_UNION_RADIO) + KUL004_S001_EditBusinessInfoPage clickNoFopUnion(); + + @Click(NO_ACTIVITY_INTERRUPTED_RADIO) + KUL004_S001_EditBusinessInfoPage clickNoActivityInterrupted(); + + @Click(NO_TRANSFORMATION_RADIO) + KUL004_S001_EditBusinessInfoPage clickNoTransformation(); + + @Click(CONTINUE_BUTTON) + KUL004_S001_EditBusinessInfoPageTransitions clickContinue(); + + @Click(EDIT_PERSON_BUTTON) + KUL004_S001_EditBusinessInfoPageTransitions clickEdit(); + + @Click(value = LOAD_BUSINESS_NAME, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL004_S001_EditBusinessInfoPage clickLoadBusinessName(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL004_S001_EditBusinessInfoPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL004_S001_EditBusinessInfoPageTransitions.java new file mode 100644 index 0000000..ccdb5f6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL004_S001_EditBusinessInfoPageTransitions.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF003_S002_EditPoFopPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL004_S004_AddressesAndContactsPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL004_S008_ClientRequestDetailPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL004_S001_EditBusinessInfoPageTransitions extends WebFlow { + + KUL004_S008_ClientRequestDetailPage onClientRequestDetailPage(); + + KUL004_S004_AddressesAndContactsPage onAddressesAndContactsPage(); + + CIF003_S002_EditPoFopPage onEditPoFopPage(); + + KUL004_S001_EditBusinessInfoPage onEditBusinessInfoPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL077_S001_ClientBusinessAndPersonnalDataTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL077_S001_ClientBusinessAndPersonnalDataTransitions.java new file mode 100644 index 0000000..be533f2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL077_S001_ClientBusinessAndPersonnalDataTransitions.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF003_S002_EditPoFopPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL077_S001_ClientBusinessAndPersonnalDataTransitions extends WebFlow { + + HKO101_S001_MainClientPage onMainClientPage(); + + CIF003_S002_EditPoFopPage onEditPoFopPage(); + + KUL078_S001_AdditionalBusinessData onAdditionalBusinessData(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL077_S001_ClientsBusinessAndPersonalData.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL077_S001_ClientsBusinessAndPersonalData.java new file mode 100644 index 0000000..79771a7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL077_S001_ClientsBusinessAndPersonalData.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.KUL077_S001_ClientsBusinessAndPersonalData.*; + +@Wait(value = KUL077_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL077_S001_ClientsBusinessAndPersonalData extends WebFlow { + + String KUL077_S001_PAGE_LABEL_XPATH = "//div[text()='KUL077_S001']"; + String RETURN_BUTTON = "KUL077_S001_B002"; + String EDIT_CIF_BUTTON = "KUL077_S001_B003"; + String CONTINUE_BUTTON = "KUL077_S001_B004"; + + @Click(RETURN_BUTTON) + KUL077_S001_ClientBusinessAndPersonnalDataTransitions clickReturn(); + + @Click(EDIT_CIF_BUTTON) + KUL077_S001_ClientBusinessAndPersonnalDataTransitions clickEdit(); + + @Click(CONTINUE_BUTTON) + KUL077_S001_ClientBusinessAndPersonnalDataTransitions clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL078_S001_AdditionalBusinessData.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL078_S001_AdditionalBusinessData.java new file mode 100644 index 0000000..faffe5c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL078_S001_AdditionalBusinessData.java @@ -0,0 +1,146 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.KUL078_S001_AdditionalBusinessData.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + + +@Wait(value = KUL078_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL078_S001_AdditionalBusinessData extends WebFlow { + + String KUL078_S001_PAGE_LABEL_XPATH = "//div[text()='KUL078_S001']"; + String RETURN_BUTTON = "KUL078_S001_B002"; + String EDIT_CIF_BUTTON = "KUL078_S001_B003"; + String CONTINUE_BUTTON = "KUL078_S001_B004"; + String BUSINESS_FOR_CERTAIN_TIME_RADIO_YES = "KUL078_S001_R002_1"; + String BUSINESS_FOR_CERTAIN_TIME_RADIO_NO = "KUL078_S001_R002_0"; + String ASSOCIATION_FOP_RADIO_YES = "KUL078_S001_R003_1"; + String ASSOCIATION_FOP_RADIO_NO = "KUL078_S001_R003_0"; + String ASSOCIATION_FOP_MEMBERS_COUNT_INPUT = "KUL078_S001_E001"; + String BUSINESS_INTERRUPTED_RADIO = "KUL078_S001_R001_1"; + String BUSINESS_NOT_INTERRUPTED_RADIO = "KUL078_S001_R001_0"; + String NUMBER_OF_EMPLOYEES_INPUT = "KUL078_S001_E002"; + String TRANSFORMATION_RADIO_YES = "KUL078_S001_R004_1"; + String TRANSFORMATION_RADIO_NO = "KUL078_S001_R004_0"; + String OWN_PROFIT_INPUT = "KUL078_S001_E004"; + String FAMILY_BUSINESS_RADIO_YES = "KUL078_S001_R005_1"; + String FAMILY_BUSINESS_RADIO_NO = "KUL078_S001_R005_0"; + String FIRST_ECONOMIC_ACTIVITY_RADIO = "KUL078_S001_G001-0"; + String REVENUE_SHARE_INPUT = "KUL078_S001_E006"; + String SAVE_CHANGE_REVENUE_SHARE_BUTTON = "KUL078_S001_B007"; + String ADDRESS_SAME_AS_RESIDENCY_CHECKBOX = "KUL078_S001_H001_1"; + String ADDRESS_SAME_AS_PERMANENT_RESIDENCE_CHECKBOX = "KUL078_S001_H001_2"; + String ADDRESS_STREET_INPUT = "KUL078_S001_E009"; + String ADDRESS_BUILDING_NUMBER_INPUT = "KUL078_S001_E007"; + String ADDRESS_APARTMENT_NUMBER_INPUT = "KUL078_S001_E016"; + String ADDRESS_SEARCH_BUTTON = "KUL078_S001_B011"; + String ADDRESS_POST_INPUT = "KUL078_S001_E010"; + String ADDRESS_STATE_SELECT = "KUL078_S001_C002"; + String ADDRESS_CZ_BUTTON = "KUL078_S001_B009"; + String ADDRESS_CITY_INPUT = "KUL078_S001_E014"; + String ADDRESS_ZIP_CODE_INPUT = "KUL078_S001_E015"; + String EMAIL_INPUT = "KUL078_S001_E011"; + String MOBIL_PHONE_NUMBER_INPUT = "KUL078_S001_E012"; + String TELEPHONE_NUMBER_INPUT = "KUL078_S001_E013"; + + @Click(value = BUSINESS_INTERRUPTED_RADIO, jsClick = true) + KUL078_S001_AdditionalBusinessData clickBusinessInterrupted(); + + @Click(value = BUSINESS_NOT_INTERRUPTED_RADIO, jsClick = true) + KUL078_S001_AdditionalBusinessData clickBusinessNotInterrupted(); + + @Click(value = BUSINESS_FOR_CERTAIN_TIME_RADIO_YES, jsClick = true) + KUL078_S001_AdditionalBusinessData clickBusinessForCertainTime(); + + @Click(value = BUSINESS_FOR_CERTAIN_TIME_RADIO_NO, jsClick = true) + KUL078_S001_AdditionalBusinessData clickBusinessNotForCertainTime(); + + @Click(value = ASSOCIATION_FOP_RADIO_YES, jsClick = true) + KUL078_S001_AdditionalBusinessData clickAssociationFopYes(); + + @Click(value = ASSOCIATION_FOP_RADIO_NO, jsClick = true) + KUL078_S001_AdditionalBusinessData clickAssociationFopNo(); + + @TypeInto(ASSOCIATION_FOP_MEMBERS_COUNT_INPUT) + KUL078_S001_AdditionalBusinessData fillAssociationFopMembersCount(String associationFopMembersCount); + + @Click(value = TRANSFORMATION_RADIO_YES, jsClick = true) + KUL078_S001_AdditionalBusinessData clickTransformation(); + + @Click(value = TRANSFORMATION_RADIO_NO, jsClick = true) + KUL078_S001_AdditionalBusinessData clickNotTransformation(); + + @Click(value = FAMILY_BUSINESS_RADIO_YES, jsClick = true) + KUL078_S001_AdditionalBusinessData clickFamilyBusiness(); + + @Click(value = FAMILY_BUSINESS_RADIO_NO, jsClick = true) + KUL078_S001_AdditionalBusinessData clickNotFamilyBusiness(); + + @TypeInto(OWN_PROFIT_INPUT) + @KeyPress(Key.TAB) + KUL078_S001_AdditionalBusinessData fillOwnProfit(String profit); + + @TypeInto(NUMBER_OF_EMPLOYEES_INPUT) + KUL078_S001_AdditionalBusinessData fillNumberOfEmployees(String numberOfEmployees); + + @Click(value = FIRST_ECONOMIC_ACTIVITY_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL078_S001_AdditionalBusinessData clickFirstEconomicActivity(); + + @TypeInto(REVENUE_SHARE_INPUT) + @Click(value = SAVE_CHANGE_REVENUE_SHARE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL078_S001_AdditionalBusinessData fillRevenueShare(String revenueShare); + + @Click(value = ADDRESS_SAME_AS_RESIDENCY_CHECKBOX, jsClick = true) + KUL078_S001_AdditionalBusinessData clickAddressSameAsResidency(); + + @Click(value = ADDRESS_SAME_AS_PERMANENT_RESIDENCE_CHECKBOX, jsClick = true) + KUL078_S001_AdditionalBusinessData clickAddressSameAsPermanentResidence(); + + @TypeInto(ADDRESS_STREET_INPUT) + KUL078_S001_AdditionalBusinessData fillAddressStreet(String street); + + @TypeInto(ADDRESS_BUILDING_NUMBER_INPUT) + KUL078_S001_AdditionalBusinessData fillAddressBuilding(String buildingNumber); + + @TypeInto(ADDRESS_APARTMENT_NUMBER_INPUT) + KUL078_S001_AdditionalBusinessData fillAddressApartment(String apartmentNumber); + + @Click(ADDRESS_SEARCH_BUTTON) + KUL078_S001_AdditionalBusinessData clickAddressSearch(); + + @TypeInto(ADDRESS_POST_INPUT) + KUL078_S001_AdditionalBusinessData fillAddressPost(String post); + + @Select(ADDRESS_STATE_SELECT) + KUL078_S001_AdditionalBusinessData fillAddressState(String state); + + @Click(ADDRESS_CZ_BUTTON) + KUL078_S001_AdditionalBusinessData fillAddressCZ(); + + @TypeInto(ADDRESS_CITY_INPUT) + KUL078_S001_AdditionalBusinessData fillAddressCity(String city); + + @TypeInto(ADDRESS_ZIP_CODE_INPUT) + KUL078_S001_AdditionalBusinessData fillAddressZipCode(String zipcode); + + @TypeInto(EMAIL_INPUT) + KUL078_S001_AdditionalBusinessData fillEmail(String email); + + @TypeInto(MOBIL_PHONE_NUMBER_INPUT) + KUL078_S001_AdditionalBusinessData fillAddressPhoneNumber(String phoneNumber); + + @TypeInto(TELEPHONE_NUMBER_INPUT) + KUL078_S001_AdditionalBusinessData fillAddressTelephoneNumber(String telephoneNumber); + + @Click(RETURN_BUTTON) + KUL078_S001_AdditionalBusinessDataTransitions clickBackToHKO(); + + @Click(EDIT_CIF_BUTTON) + KUL078_S001_AdditionalBusinessDataTransitions clickEdit(); + + @Click(CONTINUE_BUTTON) + KUL078_S001_AdditionalBusinessDataTransitions clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL078_S001_AdditionalBusinessDataTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL078_S001_AdditionalBusinessDataTransitions.java new file mode 100644 index 0000000..529f20d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/KUL078_S001_AdditionalBusinessDataTransitions.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF003_S002_EditPoFopPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL006_S001_ListOfPersonsOnRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL012_S001_RequestedDocumentsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL078_S001_AdditionalBusinessDataTransitions extends WebFlow { + + HKO101_S001_MainClientPage onMainClientPage(); + + CIF003_S002_EditPoFopPage onEditPoFopPage(); + + KUL012_S001_RequestedDocumentsPage onRequestedDocumentPage(); + + KUL006_S001_ListOfPersonsOnRequestPage onListOfPersonsOnRequestPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/TIS005_S002_SignerSelectionPoPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/TIS005_S002_SignerSelectionPoPage.java new file mode 100644 index 0000000..e64848b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/fop/TIS005_S002_SignerSelectionPoPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.fop; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.PVX011_OBR001_ConfirmationOfSignatureOwnerEmpowermentPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.fop.TIS005_S002_SignerSelectionPoPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.fop.TIS005_S002_SignerSelectionPoPage.TIS005_S002_PAGE_LABEL_XPATH; + +@Wait(value = TIS005_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(CONTINUE_BUTTON) +public interface TIS005_S002_SignerSelectionPoPage extends WebFlow { + + String TIS005_S002_PAGE_LABEL_XPATH = "//div[text()='TIS005_S002']"; + String CONTINUE_BUTTON = "TIS005_S002_B001"; + + @Click(CONTINUE_BUTTON) + CIF001_S018_CompanySignatureCifConfirmationPage clickFopIsSigningAndContinueCifCreation(); + + @Click(CONTINUE_BUTTON) + PVX011_OBR001_ConfirmationOfSignatureOwnerEmpowermentPage clickOkOnDispositionSignaturePage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC001_S001_IbPasswordKeyPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC001_S001_IbPasswordKeyPage.java new file mode 100644 index 0000000..76991ff --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC001_S001_IbPasswordKeyPage.java @@ -0,0 +1,63 @@ +package cz.moneta.test.dsl.ufo.banka.pages.ib; + +import cz.moneta.test.dsl.ufo.banka.pages.main.ADC012_S001_SettingADC; +import cz.moneta.test.dsl.util.task.udebs.UdebsTasks; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.ib.ADC001_S001_IbPasswordKeyPage.ADC001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.ib.ADC001_S001_IbPasswordKeyPage.GSM_NUMBER_MK_IB; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = ADC001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 80) +@Wait(value = GSM_NUMBER_MK_IB, waitSecondsForElement = 80) +public interface ADC001_S001_IbPasswordKeyPage extends StoreAccessor, WebFlow { + String ADC001_S001_PAGE_LABEL_XPATH = "//div[text()='ADC001_S001']"; + String PASSWORD_PLUS_MK = "Heslo + mobilní klíč"; + + String NEW_ENVELOPE_NUMBER_INPUT = "ADC001_S001_U004"; + String SEND_BUTTON = "ADC001_S001_B001"; + String LOGIN_METHOD_SELECT = "ADC001_S001_C003"; + String DAILY_lIMIT = "ADC001_S001_U003"; + String GSM_NUMBER_MK_IB = "ADC001_S001_E002"; + + String FILL_FROM_CIF_CHECKBOX = "ADC001_S001_H004_1"; + + @CustomAction + default ADC001_S001_IbPasswordKeyPage insertEnvelopeNumber() { + String envelopeNumber = new UdebsTasks(this).getEnvelopeNumberWithoutPrefixZero(); + getEndpoint(UfoEndpoint.class) + .type(() -> NEW_ENVELOPE_NUMBER_INPUT, envelopeNumber, false); + return null; + } + + @TypeInto(NEW_ENVELOPE_NUMBER_INPUT) + ADC001_S001_IbPasswordKeyPage fillEnvelopeNumber(int envelopeNumber); + + @Select(LOGIN_METHOD_SELECT) + ADC001_S001_IbPasswordKeyPage selectLoginMethod(String method); + + @TypeInto(GSM_NUMBER_MK_IB) + ADC001_S001_IbPasswordKeyPage enterMobilePhoneNumber(String phoneNumber); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @Click(SEND_BUTTON) + ADC012_S001_SettingADC clickContinueToSettingADCPage(); + + @Click(value = FILL_FROM_CIF_CHECKBOX, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ADC001_S001_IbPasswordKeyPage clickFillFromCifCheckbox(); + + @CustomAction + default ADC001_S001_IbPasswordKeyPage scrollIntoSendButton() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.scrollIntoView(LOGIN_METHOD_SELECT); + return null; + } + + @Click(SEND_BUTTON) + ADC001_S001_IbPasswordKeyPageTransitions clickContinue(); + + @TypeInto(value = DAILY_lIMIT, clear = true) + ADC001_S001_IbPasswordKeyPage typeDailyLimit(String limit); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC001_S001_IbPasswordKeyPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC001_S001_IbPasswordKeyPageTransitions.java new file mode 100644 index 0000000..f279d72 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC001_S001_IbPasswordKeyPageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.ib; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.TIS051_S001_DispositionGeneratePage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ADC001_S001_IbPasswordKeyPageTransitions extends WebFlow { + + TIS051_S001_DispositionGeneratePage onDispositionGeneratePage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + TIS046_S001_DocumentsProvidedToClientPage onDocumentsProvidedToClientPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC045_S001_DetailSettingsIBPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC045_S001_DetailSettingsIBPage.java new file mode 100644 index 0000000..d69ad41 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC045_S001_DetailSettingsIBPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.ib; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.ib.ADC045_S001_DetailSettingsIBPage.PAGE_DIV_XPATH; + +@Wait(value = PAGE_DIV_XPATH, by = Lookup.XPATH, until = Until.VISIBLE) +public interface ADC045_S001_DetailSettingsIBPage extends WebFlow { + + String PAGE_DIV_XPATH = "//div[text()='ADC045_S001']"; + String INTERNET_BANKING_ID_DIV = "ADC045_S001_L005"; + String INTERNET_BANKING_ID_KEY = "INTERNET_BANKING_ID"; + String RETURN_BUTTON = "ADC045_S001_B013"; + + @StoreElementContent(storeKey = INTERNET_BANKING_ID_KEY, value = INTERNET_BANKING_ID_DIV) + ADC045_S001_DetailSettingsIBPage storeInternetBanking_ID(); + + @Click(RETURN_BUTTON) + HPO040_S001_DirectBankingServicesPage clickReturn(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC047_S001_IbSettingsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC047_S001_IbSettingsPage.java new file mode 100644 index 0000000..8f71cd1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC047_S001_IbSettingsPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.ib; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.ib.ADC047_S001_IbSettingsPage.PAGE_LABEL; + +@Wait(value = PAGE_LABEL, until = Until.VISIBLE) +public interface ADC047_S001_IbSettingsPage extends WebFlow { + + String PAGE_LABEL = "ADC047_S001_L001"; + String ACTIVE_OPERATION_RADIO = "ADC047_S001_R001_13"; + String PASSIVE_OPERATION_RADIO = "ADC047_S001_R001_4"; + String DAILY_LIMIT_INPUT = "ADC047_S001_E002"; + String WEEKLY_LIMIT_INPUT = "ADC047_S001_E005"; + String CONTINUE_BUTTON = "ADC047_S001_X031"; + String MODAL_WARNING_CONTINUE_BUTTON = "ADC047_S001_B005"; + + @Click(value = ACTIVE_OPERATION_RADIO, jsClick = true) + ADC047_S001_IbSettingsPage clickActiveOperation(); + + @Click(value = PASSIVE_OPERATION_RADIO, jsClick = true) + ADC047_S001_IbSettingsPage clickPassiveOperation(); + + @TypeInto(DAILY_LIMIT_INPUT) + ADC047_S001_IbSettingsPage fillDailyLimit(String dailyLimit); + + @TypeInto(WEEKLY_LIMIT_INPUT) + ADC047_S001_IbSettingsPage fillWeeklyLimit(String weeklyLimit); + + @Click(CONTINUE_BUTTON) + ADC047_S001_IbSettingsPage clickContinue(); + + @Click(MODAL_WARNING_CONTINUE_BUTTON) + ADC047_S001_IbSettingsPageTransitions clickModalWarningContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC047_S001_IbSettingsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC047_S001_IbSettingsPageTransitions.java new file mode 100644 index 0000000..e4d6879 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/ADC047_S001_IbSettingsPageTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.banka.pages.ib; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.ADC012_S001_SettingADC; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ADC047_S001_IbSettingsPageTransitions extends WebFlow { + + ADC012_S001_SettingADC onSettingsADCPage(); + + TIS046_S001_DocumentsProvidedToClientPage onDocumentsProvidedToClientPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/HPO008_IbDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/HPO008_IbDetailPage.java new file mode 100644 index 0000000..df5ae59 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/HPO008_IbDetailPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.ib; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.StoreElementContent; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.ib.HPO008_IbDetailPage.BACK_BUTTON; + +@Wait(BACK_BUTTON) +public interface HPO008_IbDetailPage extends WebFlow { + + String BACK_BUTTON = "HPO008_S001_S014"; + String IB_LOGIN_DIV = "HPO008_S001_L013"; + String IB_LOGIN_STORE = "IB_LOGIN_STORE"; + + @StoreElementContent(storeKey = IB_LOGIN_STORE, value = IB_LOGIN_DIV) + HPO008_IbDetailPage storeIbLogin(); + + @Click(BACK_BUTTON) + HKO101_S001_MainClientPage clickBackButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/HPO040_S001_DirectBankingServicesPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/HPO040_S001_DirectBankingServicesPage.java new file mode 100644 index 0000000..21edeef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/ib/HPO040_S001_DirectBankingServicesPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.ib; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.ib.HPO040_S001_DirectBankingServicesPage.PAGE_DIV_XPATH; + +@Wait(value = PAGE_DIV_XPATH, by = Lookup.XPATH, until = Until.VISIBLE) +public interface HPO040_S001_DirectBankingServicesPage extends WebFlow { + + String PAGE_DIV_XPATH = "//div[text()='HPO040_S001']"; + String FIRST_IB_CHECKBOX = "HPO040_S001_H001_1"; + String SETTINGS_IB_BUTTON = "HPO040_S001_B009"; + String RETURN_TO_HKO_BUTTON = "HPO040_S001_B006"; + + @Click(FIRST_IB_CHECKBOX) + HPO040_S001_DirectBankingServicesPage clickFirstIB(); + + @Click(SETTINGS_IB_BUTTON) + ADC045_S001_DetailSettingsIBPage clickSettingsIB(); + + @Click(RETURN_TO_HKO_BUTTON) + HKO101_S001_MainClientPage clickReturnTOHKO(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/Extend_FinancialIncomePageForFop.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/Extend_FinancialIncomePageForFop.java new file mode 100644 index 0000000..37c2979 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/Extend_FinancialIncomePageForFop.java @@ -0,0 +1,71 @@ +package cz.moneta.test.dsl.ufo.banka.pages.income; + +import cz.moneta.test.harness.support.web.TypeInto; + +public interface Extend_FinancialIncomePageForFop extends FIN002_S002_FinancialIncomePage{ + String INCOME_INPUT = "FIN002_S002_E003"; + String DIFFERENCE_INCOME_EXPENDITURE_INPUT = "FIN002_S002_E004"; + String TAX_PAYED_ABROAD_INPUT = "FIN002_S002_E005"; + String ALL_EMPLOYERS_INCOME_SUMMARY_INPUT = "FIN002_S002_E006"; + String MANDATORY_INSURANCE_SUMMARY_INPUT = "FIN002_S002_E007"; + String TOTAL_DEPRECIATION_APPLIED_INPUT = "FIN002_S002_E008"; + String INCOME_FROM_RENT_INPUT = "FIN002_S002_E009"; + String TANGIBLE_PROPERTY_INPUT = "FIN002_S002_E010"; + String FUNDS_IN_CASH_INPUT = "FIN002_S002_E011"; + String COSTS_INPUT = "FIN002_S002_E012"; + String INCOME_COSTS_DIFFERENCE_BEFORE_TAX_INPUT = "FIN002_S002_E013"; + String FUNDS_IN_BANK_ACCOUNTS_INPUT = "FIN002_S002_E016"; + String RESOURCES_INPUT = "FIN002_S002_E017"; + String CREDITS_AND_LOANS_PROVIDED_INPUT = "FIN002_S002_E018"; + String DEBTS_LOANS_ADVANCES_INPUT = "FIN002_S002_E019"; + String OTHER_PROPERTY_INPUT = "FIN002_S002_E020"; + String RESERVES_INPUT = "FIN002_S002_E021"; + String TAX_TO_PAY_INPUT = "FIN002_S002_E022"; + String PARTIAL_TAX_BASE_INPUT = "FIN002_S002_E038"; + String EXPENSES_RELATED_TO_INCOME_INPUT = "FIN002_S002_E039"; + String PARTIAL_TAX_BASE_OR_LOSS_INPUT = "FIN002_S002_E059"; + String TAX_AFTER_DISCOUNT_INPUT = "FIN002_S002_E060"; + String PARTIAL_TAX_BASE_LOSS_INPUT = "FIN002_S002_E068"; + + @TypeInto(ALL_EMPLOYERS_INCOME_SUMMARY_INPUT) + Extend_FinancialIncomePageForFop fillAllEmployersIncomeSummary(String allEmployersIncomeSummary); + + @TypeInto(MANDATORY_INSURANCE_SUMMARY_INPUT) + Extend_FinancialIncomePageForFop fillMandatoryInsuranceSummary(String mandatoryInsuranceSummary); + + @TypeInto(TAX_PAYED_ABROAD_INPUT) + Extend_FinancialIncomePageForFop fillTaxPayedAbroad(String taxPayedAbroad); + + @TypeInto(PARTIAL_TAX_BASE_INPUT) + Extend_FinancialIncomePageForFop fillPartialTaxBase(String partialTaxBase); + + @TypeInto(PARTIAL_TAX_BASE_OR_LOSS_INPUT) + Extend_FinancialIncomePageForFop fillPartialTaxBaseOrLoss(String partialTaxBaseOrLoss); + + @TypeInto(TAX_AFTER_DISCOUNT_INPUT) + Extend_FinancialIncomePageForFop fillTaxAfterDiscount(String taxAfterDiscount); + + @TypeInto(TAX_TO_PAY_INPUT) + Extend_FinancialIncomePageForFop fillTaxToPay(String taxToPay); + + @TypeInto(INCOME_INPUT) + Extend_FinancialIncomePageForFop fillIncome(String income); + + @TypeInto(EXPENSES_RELATED_TO_INCOME_INPUT) + Extend_FinancialIncomePageForFop fillExpensesRelatedToIncome(String expensesRelatedToIncome); + + @TypeInto(DIFFERENCE_INCOME_EXPENDITURE_INPUT) + Extend_FinancialIncomePageForFop fillDifferenceIncomeExpenditure(String diffIncomeExpenditure); + + @TypeInto(PARTIAL_TAX_BASE_LOSS_INPUT) + Extend_FinancialIncomePageForFop fillPartialTaxBaseLoss(String partialTaxBaseLoss); + + @TypeInto(INCOME_FROM_RENT_INPUT) + Extend_FinancialIncomePageForFop fillIncomeFromRent(String incomeFromRent); + + @TypeInto(COSTS_INPUT) + Extend_FinancialIncomePageForFop fillCosts(String costs); + + @TypeInto(INCOME_COSTS_DIFFERENCE_BEFORE_TAX_INPUT) + Extend_FinancialIncomePageForFop fillIncomeCostsDifferenceBeforeTax(String incomeCostsDiffBeforeTax); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/Extend_FinancialIncomePageForPo.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/Extend_FinancialIncomePageForPo.java new file mode 100644 index 0000000..b145f91 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/Extend_FinancialIncomePageForPo.java @@ -0,0 +1,111 @@ +package cz.moneta.test.dsl.ufo.banka.pages.income; + +import cz.moneta.test.harness.support.web.Key; +import cz.moneta.test.harness.support.web.KeyPress; +import cz.moneta.test.harness.support.web.TypeInto; + +public interface Extend_FinancialIncomePageForPo extends FIN002_S002_FinancialIncomePage { + //Aktiva + String SUBSCRIBED_CAPITAL_INPUT = "FIN002_S002_E028"; + String CURRENT_ASSETS_INPUT = "FIN002_S002_E029"; + String LONGTERM_PROPERTY_INPUT = "FIN002_S002_E030"; + String ASSET_ACCRUALS_INPUT = "FIN002_S002_E031"; + + //Pasiva + String RESERVES_INPUT = "FIN002_S002_E032"; + String OWN_CAPITAL_INPUT = "FIN002_S002_E033"; + String LONGTERM_OBLIGATIONS_INPUT = "FIN002_S002_E034"; + String SHORTTERM_OBLIGATIONS_INPUT = "FIN002_S002_E035"; + String ACCRUED_LIABILITIES_CIII_INPUT = "FIN002_S002_E036"; + String ACCRUED_LIABILITIES_INPUT = "FIN002_S002_E037"; + + //Vykaz zisku a ztraty + String PRODUCTS_SERVICES_REVENUE_INPUT = "FIN002_S002_E040"; + String GOODS_REVENUE_INPUT = "FIN002_S002_E041"; + String PERFORMANCE_CONSUMPTION_INPUT = "FIN002_S002_E042"; + String STORAGE_CHANGE_INPUT = "FIN002_S002_E043"; + String ACTIVATION_INPUT = "FIN002_S002_E044"; + String PERSONAL_COSTS_INPUT = "FIN002_S002_E045"; + String OPERATING_AREA_EDITING_VALUES_INPUT = "FIN002_S002_E046"; + String OTHER_OPERATING_INCOME_INPUT = "FIN002_S002_E047"; + String OPERATING_PROFIT_INPUT = "FIN002_S002_E048"; + String ECONOMY_RESULT_AFTER_TAX_PAYMENT_INPUT = "FIN002_S002_E049"; + String SHARES_TRANSFER_TO_PARTNERS_INPUT = "FIN002_S002_E050"; + String ACCOUNTING_PERIOD_ECONOMY_RESULT_INPUT = "FIN002_S002_E051"; + String OTHER_OPERATING_COSTS_INPUT = "FIN002_S002_E053"; + + String UNDER_OR_OVERPAYMENT_INPUT = "FIN002_S002_E052"; + + @TypeInto(UNDER_OR_OVERPAYMENT_INPUT) + Extend_FinancialIncomePageForPo fillUnderOrOverpayment(String underOrOverpayment); + + @TypeInto(SUBSCRIBED_CAPITAL_INPUT) + Extend_FinancialIncomePageForPo fillSubscribedCapital(String subscribedCapital); + + @TypeInto(CURRENT_ASSETS_INPUT) + Extend_FinancialIncomePageForPo fillCurrentAssets(String currentAssets); + + @TypeInto(LONGTERM_PROPERTY_INPUT) + Extend_FinancialIncomePageForPo fillLongtermProperty(String longtermProperty); + + @TypeInto(ASSET_ACCRUALS_INPUT) + Extend_FinancialIncomePageForPo fillAssetAccruals(String assetAccruals); + + @TypeInto(RESERVES_INPUT) + Extend_FinancialIncomePageForPo fillReserves(String reserves); + + @TypeInto(OWN_CAPITAL_INPUT) + Extend_FinancialIncomePageForPo fillOwnCapital(String ownCapital); + + @TypeInto(LONGTERM_OBLIGATIONS_INPUT) + Extend_FinancialIncomePageForPo fillLongtermObligations(String longtermObligations); + + @TypeInto(SHORTTERM_OBLIGATIONS_INPUT) + Extend_FinancialIncomePageForPo fillShorttermObligations(String shorttermObligations); + + @TypeInto(ACCRUED_LIABILITIES_CIII_INPUT) + Extend_FinancialIncomePageForPo fillAccruedLiabilitiesCiii(String accruedLiabilitiesCiii); + + @TypeInto(ACCRUED_LIABILITIES_INPUT) + Extend_FinancialIncomePageForPo fillAccruedLiabilities(String accruedLiabilities); + + @TypeInto(PRODUCTS_SERVICES_REVENUE_INPUT) + Extend_FinancialIncomePageForPo fillProductsServicesRevenue(String productServicesRevenue); + + @TypeInto(GOODS_REVENUE_INPUT) + Extend_FinancialIncomePageForPo fillGoodsRevenue(String goodsRevenue); + + @TypeInto(PERFORMANCE_CONSUMPTION_INPUT) + Extend_FinancialIncomePageForPo fillPerformanceConsumption(String performanceConsumption); + + @TypeInto(STORAGE_CHANGE_INPUT) + Extend_FinancialIncomePageForPo fillStorageChange(String storageChange); + + @TypeInto(ACTIVATION_INPUT) + Extend_FinancialIncomePageForPo fillActivationInput(String activationInput); + + @TypeInto(PERSONAL_COSTS_INPUT) + Extend_FinancialIncomePageForPo fillPersonalCosts(String personalCosts); + + @TypeInto(OPERATING_AREA_EDITING_VALUES_INPUT) + Extend_FinancialIncomePageForPo fillOperatingAreaEditingValues(String operatingAreaEditingValues); + + @TypeInto(OTHER_OPERATING_INCOME_INPUT) + Extend_FinancialIncomePageForPo fillOtherOperatingIncome(String otherOperatingIncome); + + @TypeInto(OPERATING_PROFIT_INPUT) + Extend_FinancialIncomePageForPo fillOperatingProfit(String operatingProfit); + + @TypeInto(ECONOMY_RESULT_AFTER_TAX_PAYMENT_INPUT) + Extend_FinancialIncomePageForPo fillEconomyResultAfterTax(String economyResultAfterTax); + + @TypeInto(SHARES_TRANSFER_TO_PARTNERS_INPUT) + Extend_FinancialIncomePageForPo fillSharesTransferToPartners(String shareTransferToPartners); + + @TypeInto(ACCOUNTING_PERIOD_ECONOMY_RESULT_INPUT) + @KeyPress(Key.TAB) + Extend_FinancialIncomePageForPo fillAccountingPeriodEconomyResult(String accountingPeriodEconomyResult); + + @TypeInto(OTHER_OPERATING_COSTS_INPUT) + Extend_FinancialIncomePageForPo fillOtherOperatingCosts(String otherEconomyCosts); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/FIN001_S001_FinancialIncomeSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/FIN001_S001_FinancialIncomeSummaryPage.java new file mode 100644 index 0000000..b255571 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/FIN001_S001_FinancialIncomeSummaryPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.income; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.income.FIN001_S001_FinancialIncomeSummaryPage.ADD_FINANCIAL_INCOME_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.income.FIN001_S001_FinancialIncomeSummaryPage.FIN001_S001_PAGE_LABEL_XPATH; + +@Wait(value = FIN001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(ADD_FINANCIAL_INCOME_BUTTON) +public interface FIN001_S001_FinancialIncomeSummaryPage extends WebFlow { + String FIN001_S001_PAGE_LABEL_XPATH = "//div[text()='FIN001_S001']"; + + String BACK_BUTTON = "FIN001_S001_B001"; + String ADD_FINANCIAL_INCOME_BUTTON = "FIN001_S001_B002"; + + @Click(ADD_FINANCIAL_INCOME_BUTTON) + FIN002_S002_FinancialIncomePage clickAddFinancialStatement(); + + @Click(BACK_BUTTON) + HKO101_S001_MainClientPage backToMainClientPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/FIN002_S002_FinancialIncomePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/FIN002_S002_FinancialIncomePage.java new file mode 100644 index 0000000..45ffe5c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/FIN002_S002_FinancialIncomePage.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.ufo.banka.pages.income; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.income.FIN002_S002_FinancialIncomePage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = FIN002_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface FIN002_S002_FinancialIncomePage extends WebFlow { + String FIN002_S002_PAGE_LABEL_XPATH = "//div[text()='FIN002_S002']"; + + String CONTINUE_BUTTON = "FIN002_S002_B003"; + + String NUMBER_OF_MONTHS_SELECT = "FIN002_S002_C002"; + String TYPE_OF_INCOME_SELECT = "FIN002_S002_C003"; + + String INCOME_DATE_INPUT = "FIN002_S002_E001"; + + String VERIFIED_RADIO = "FIN002_S002_R001_289"; + String TAX_ADVISOR_NO_RADIO = "FIN002_S002_R006_0"; + String NOT_VERIFIED_RADIO = "FIN002_S002_R001_290"; + String ELECTRONIC_FORM_RADIO = "FIN002_S002_R002_1"; + String SPOKEN_FORM_RADIO = "FIN002_S002_R002_2"; + String FOP_PAPER_FORM_RADIO = "FIN002_S002_R002_3"; + String TAX_EVIDENCE_RADIO = "FIN002_S002_R003_1"; + String ACCOUNTANCY_RADIO = "FIN002_S002_R003_2"; + String PERCENTAGE_INCOME_SPENDS_RADIO = "FIN002_S002_R003_6"; + String PO_PAPER_FORM_RADIO = "FIN002_S002_R004_3"; + String DATA_BALANCE_SHEET_RADIO = "FIN002_S002_R007_0"; + + Extend_FinancialIncomePageForFop onNewFinancialIncomeFop(); + + Extend_FinancialIncomePageForPo onNewFinancialIncomePo(); + + @Select(value = TYPE_OF_INCOME_SELECT, andWait = @Wait(value = FOP_PAPER_FORM_RADIO)) + FIN002_S002_FinancialIncomePage selectTypeOfIncome(String Type); + + @Click(value = PERCENTAGE_INCOME_SPENDS_RADIO, jsClick = true) + FIN002_S002_FinancialIncomePage clickPercentageIncomeSpends(); + + @Click(value = FOP_PAPER_FORM_RADIO, jsClick = true) + FIN002_S002_FinancialIncomePage clickPaperFormForFop(); + + @Click(value = PO_PAPER_FORM_RADIO, jsClick = true) + FIN002_S002_FinancialIncomePage clickPaperFormForPo(); + + @Click(value = VERIFIED_RADIO, jsClick = true) + FIN002_S002_FinancialIncomePage clickVerified(); + + @Click(value = TAX_ADVISOR_NO_RADIO, jsClick = true) + FIN002_S002_FinancialIncomePage clickTaxAdvisorNo(); + + @TypeInto(value = INCOME_DATE_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + FIN002_S002_FinancialIncomePage fillIncomeDate(String incomeDate); + + @Select(value = NUMBER_OF_MONTHS_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + FIN002_S002_FinancialIncomePage selectNumberOfMonths(String numberOfMonths); + + @Click(CONTINUE_BUTTON) + FIN002_S003_TaxAndDiscountsPage clickContinue(); + + @Click(value = DATA_BALANCE_SHEET_RADIO, jsClick = true) + FIN002_S002_FinancialIncomePage clickDataBalanceSheetRadio(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/FIN002_S003_TaxAndDiscountsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/FIN002_S003_TaxAndDiscountsPage.java new file mode 100644 index 0000000..5b0e24b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/FIN002_S003_TaxAndDiscountsPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ufo.banka.pages.income; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS070_S001_ScanDocumentsPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.income.FIN002_S003_TaxAndDiscountsPage.*; + +@Wait(value = FIN002_S003_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface FIN002_S003_TaxAndDiscountsPage extends WebFlow { + String FIN002_S003_PAGE_LABEL_XPATH = "//div[text()='FIN002_S003']"; + + String CONTINUE_BUTTON = "FIN002_S003_B001"; + + String TAX_TO_PAY_INPUT = "FIN002_S003_E001"; + String TAX_AFTER_DISCOUNT_INPUT = "FIN002_S003_E011"; + String INCOME_MODULE_LABEL = "FIN002_S003_L023"; + + @TypeInto(TAX_AFTER_DISCOUNT_INPUT) + FIN002_S003_TaxAndDiscountsPage fillTaxAfterDiscount(String taxAfterDiscount); + + @TypeInto(TAX_TO_PAY_INPUT) + FIN002_S003_TaxAndDiscountsPage fillTaxToPay(String taxToPay); + + @Click(CONTINUE_BUTTON) + DMS070_S001_ScanDocumentsPage continueToScanDocumentsPage(); + + @Click(INCOME_MODULE_LABEL) + FIN002_S003_TaxAndDiscountsPage clickOnIncomeModuleLabel(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/PIM001_S001_IncomeEditPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/PIM001_S001_IncomeEditPage.java new file mode 100644 index 0000000..05f0db2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/PIM001_S001_IncomeEditPage.java @@ -0,0 +1,135 @@ +package cz.moneta.test.dsl.ufo.banka.pages.income; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.income.PIM001_S001_IncomeEditPage.PIM001_S001_PAGE_LABEL_XPATH; + +@Wait(value = PIM001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface PIM001_S001_IncomeEditPage extends WebFlow, StoreAccessor { + + String PIM001_S001_PAGE_LABEL_XPATH = "//div[text()='PIM001_S001']"; + String SEARCH_EMPLOYER_BUTTON = "PIM001_S001_B002"; + String COMPANY_NAME_ICO_SEARCH_INPUT = "PIM001_S001_E005"; + String SEARCH_COMPANY_BUTTON = "PIM001_S001_B018"; + String FIRST_COMPANY_XPATH = "//table[@id='PIM001_S001_G001_UfoTable']//input[1]"; + String COMPANY_NAME_ROW_XPATH = "//td[text()='%s']"; + String COMPANY_NAME_FIRST_ROW_CHECKBOX = "PIM001_S001_G001-0"; + String SELECT_EMPLOYER_BUTTON = "PIM001_S001_B019"; + String INCOME_CASH_NO_RADIO = "PIM001_S001_R006_0"; + String EMPLOYMENT_START_DATE_INPUT = "PIM001_S001_E008"; + String EMPLOYMENT_END_DATE_INPUT = "PIM001_S001_E003"; + String PHONE_COUNTRY_CODE_INPUT = "PIM001_S001_E001"; + String PHONE_NUMBER_INPUT = "PIM001_S001_E002"; + String NET_INCOME_INPUT = "PIM001_S001_E009"; + String SAVE_INCOME_BUTTON = "PIM001_S001_B015"; + String BACK_BUTTON = "PIM001_S001_B014"; + String NOTICE_PERIOD_NO_RADIO = "PIM001_S001_R001_0"; + String TRIAL_PERIOD_NO_RADIO = "PIM001_S001_R002_0"; + String TRIAL_PERIOD_YES_RADIO ="PIM001_S001_R002_1"; + String CONTINUE_BUTTON = "PIM001_S001_B025"; + String ADD_INCOME_BUTTON = "PIM001_S001_B022"; + String INCOME_TYPE_SELECT = "PIM001_S001_C003"; + String INCOME_SUBTYPE_SELECT = "PIM001_S001_C013"; + String OCCUPATION_SELECT = "PIM001_S001_C002"; + String ACCEPT_INCOME = "PIM001_S001_H002"; + + @Click(ACCEPT_INCOME) + PIM001_S001_IncomeEditPage clickAcceptIncome(); + + @Click(SEARCH_EMPLOYER_BUTTON) + PIM001_S001_IncomeEditPage openSearchEmployerWindow(); + + @TypeInto(COMPANY_NAME_ICO_SEARCH_INPUT) + PIM001_S001_IncomeEditPage fillCompanyNameOrIco(String companyName); + + @Click(value = SEARCH_COMPANY_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PIM001_S001_IncomeEditPage clickSearchCompanyButton(); + + @Click(value = FIRST_COMPANY_XPATH, by = Lookup.XPATH) + PIM001_S001_IncomeEditPage clickFirstCompany(); + + @CustomAction + default PIM001_S001_IncomeEditPage selectCompanyNameRow(String companyName) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String rowXpath = String.format(COMPANY_NAME_ROW_XPATH, companyName); + endpoint.scrollIntoView(rowXpath, Lookup.XPATH); + endpoint.click(() -> rowXpath, Lookup.XPATH); + return null; + } + + @Click(COMPANY_NAME_FIRST_ROW_CHECKBOX) + PIM001_S001_IncomeEditPage clickFirstResult(); + + @Click(value = SELECT_EMPLOYER_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PIM001_S001_IncomeEditPage clickSelectEmployerButton(); + + @Click(value = INCOME_CASH_NO_RADIO, jsClick = true) + PIM001_S001_IncomeEditPage clickIncomeCashNoRadio(); + + @Click(value = NOTICE_PERIOD_NO_RADIO, jsClick = true) + PIM001_S001_IncomeEditPage clickNoticePeriodNoRadio(); + + @Click(value = TRIAL_PERIOD_NO_RADIO, jsClick = true) + PIM001_S001_IncomeEditPage clickTrialPeriodNoRadio(); + + @Click(value = TRIAL_PERIOD_YES_RADIO, jsClick = true) + PIM001_S001_IncomeEditPage clickTrialPeriodYesRadio(); + + @CustomAction + default PIM001_S001_IncomeEditPage clickTrialPeriod(NonClient nonClient){ + if (nonClient.occupationTrialPeriod()) clickTrialPeriodYesRadio(); else clickTrialPeriodNoRadio(); + return null; + } + + @TypeInto(value = EMPLOYMENT_START_DATE_INPUT, clear = true) + PIM001_S001_IncomeEditPage fillEmploymentStartDate(String date); + + @TypeInto(value = EMPLOYMENT_END_DATE_INPUT, clear = true) + PIM001_S001_IncomeEditPage fillEmploymentEndDate(String date); + + @TypeInto(value = PHONE_COUNTRY_CODE_INPUT, clear = true) + PIM001_S001_IncomeEditPage fillPhoneCountryCode(String countryCode); + + @TypeInto(value = PHONE_NUMBER_INPUT, clear = true) + PIM001_S001_IncomeEditPage fillPhoneNumber(String phoneNumber); + + @TypeInto(value = NET_INCOME_INPUT, clear = true) + PIM001_S001_IncomeEditPage fillNetIncome(int netIncome); + + @Click(value = SAVE_INCOME_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 40)) + PIM001_S001_IncomeEditPage clickAcceptIncomeButton(); + + @Click(value = ADD_INCOME_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PIM001_S001_IncomeEditPage clickAddIncomeButton(); + + @Select(value = INCOME_TYPE_SELECT, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PIM001_S001_IncomeEditPage selectIncomeType(String incomeType); + + @Select(value = INCOME_SUBTYPE_SELECT, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PIM001_S001_IncomeEditPage selectIncomeSubtype(String incomeSubtype); + + @Select(value = OCCUPATION_SELECT, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PIM001_S001_IncomeEditPage selectOccupation(String occupation); + + @Click(BACK_BUTTON) + PIM001_S001_IncomeEditPageTransitions clickBackButton(); + + @CustomAction + default PIM001_S001_IncomeEditPage clickAcceptIncomeButtonAndDisableAlertIfVisible() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + this.clickAcceptIncomeButton(); + if ((endpoint.isAlertPresent(3)) && + (endpoint.getAlertText(1).contains("Příjem není možné uložit"))) { + endpoint.dismissAlert(1); + this.selectIncomeType("Příjem ze závislé činnosti") + .selectIncomeSubtype("Příjem ze závislé činnosti na dobu neurčitou") + .selectOccupation("it programátor/software developer") + .clickAcceptIncomeButton(); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/PIM001_S001_IncomeEditPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/PIM001_S001_IncomeEditPageTransitions.java new file mode 100644 index 0000000..68208d3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/income/PIM001_S001_IncomeEditPageTransitions.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.income; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF113_S001_ChangeDataFO; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PIM001_S001_IncomeEditPageTransitions extends WebFlow { + + NEP002_S001_ApplicantPage onApplicantPage(); + + CIF113_S001_ChangeDataFO onChangeDataFO(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + DOK001_S001_SelectionOfSubmittedDocumentsPage onSelectionOfSubmittedDocumentsPage(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/inkaso/INK001_S004_InkasoAgreedAssignmentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/inkaso/INK001_S004_InkasoAgreedAssignmentPage.java new file mode 100644 index 0000000..a29aac0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/inkaso/INK001_S004_InkasoAgreedAssignmentPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ufo.banka.pages.inkaso; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_IsDocumentedSignedCorrectlyPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.INK001_CreditCardCollectionListPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.inkaso.INK001_S004_InkasoAgreedAssignmentPage.INK001_S004_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.inkaso.INK001_S004_InkasoAgreedAssignmentPage.PRICE_LIMIT; + +@Wait(value = INK001_S004_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = PRICE_LIMIT, waitSecondsForElement = 40) +public interface INK001_S004_InkasoAgreedAssignmentPage extends WebFlow { + String INK001_S004_PAGE_LABEL_XPATH = "//div[text()='INK001_S004']"; + String PRICE_LIMIT = "INK001_S004_E007"; + String SAVE_BUTTON = "INK001_S004_B003"; + String BACK_BUTTON = "INK001_S004_B001"; + + @TypeInto(PRICE_LIMIT) + INK001_S004_InkasoAgreedAssignmentPage fillPriceLimitInput(String priceLimit); + + @Click(SAVE_BUTTON) + INK001_OBR001_004_IsDocumentedSignedCorrectlyPage clickSaveButton(); + + @Click(BACK_BUTTON) + INK001_CreditCardCollectionListPage clickBack(); + + @Click(SAVE_BUTTON) + TIS013_SelectDispositions clickSaveContinueToSelectDisposition(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/inkaso/TIS013_SelectDispositions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/inkaso/TIS013_SelectDispositions.java new file mode 100644 index 0000000..47eacd8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/inkaso/TIS013_SelectDispositions.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka.pages.inkaso; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_IsDocumentedSignedCorrectlyPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.inkaso.TIS013_SelectDispositions.BACK_BUTTON; + +@Wait(BACK_BUTTON) +public interface TIS013_SelectDispositions extends WebFlow { + String BACK_BUTTON = "TIS013_S001_B002"; + + @Click(BACK_BUTTON) + INK001_OBR001_004_IsDocumentedSignedCorrectlyPage selectNothingAndGoBack(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/BAL001_S008_ProductsListPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/BAL001_S008_ProductsListPage.java new file mode 100644 index 0000000..af894c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/BAL001_S008_ProductsListPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.BAL001_S008_ProductsListPage.BAL001_S008_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.BAL001_S008_ProductsListPage.CONTINUE_BUTTON; + +@Wait(value = BAL001_S008_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = {CONTINUE_BUTTON}, waitSecondsForElement = 60) +public interface BAL001_S008_ProductsListPage extends WebFlow { + + String BAL001_S008_PAGE_LABEL_XPATH = "//div[text()='BAL001_S008']"; + String CONTINUE_BUTTON = "BAL001_S008_B004"; + + @Click(CONTINUE_BUTTON) + HKO101_S001_MainClientPage clickContinueButtonAndContinueToMainClientPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/FLO011_S001_EditExpresInsurancePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/FLO011_S001_EditExpresInsurancePage.java new file mode 100644 index 0000000..8a25f47 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/FLO011_S001_EditExpresInsurancePage.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.FLO011_S001_EditExpresInsurancePage.INSURANCE_EXPRES_EDIT_CHECK_ELEMENT; + +@Wait(value = INSURANCE_EXPRES_EDIT_CHECK_ELEMENT, waitSecondsForElement = 40) +public interface FLO011_S001_EditExpresInsurancePage extends WebFlow { + + String INSURANCE_EXPRES_EDIT_CHECK_ELEMENT = "XXX001_T001_L005"; + String CHANGE_INSURANCE_BUTTON = "FLO011_S001_C001"; + String CONFIRM_BUTTON = "FLO011_S001_B002"; + + @CheckElementPresent(INSURANCE_EXPRES_EDIT_CHECK_ELEMENT) + FLO011_S001_EditExpresInsurancePage checkElementModel(); + + @Select(CHANGE_INSURANCE_BUTTON) + FLO011_S001_X004_InvalidControlPage clickChangeExpresInsurance(String insuranceType); + + @Select(CHANGE_INSURANCE_BUTTON) + FLO011_S001_EditExpresInsurancePage clickChangeCancelExpresInsurance(String insuranceType); + + @Click(CONFIRM_BUTTON) + TIS004_S002_SignerSelectionPage clickConfirmInsuranceChange(); + + @Click(CONFIRM_BUTTON) + OBR001_S001_AppendixSignedPage clickConfirmInsuranceCancel(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/FLO011_S001_X004_InvalidControlPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/FLO011_S001_X004_InvalidControlPage.java new file mode 100644 index 0000000..4c8f2d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/FLO011_S001_X004_InvalidControlPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.FLO011_S001_X004_InvalidControlPage.INVALID_CHECK_ELEMENT; + +@Wait(INVALID_CHECK_ELEMENT) +public interface FLO011_S001_X004_InvalidControlPage extends WebFlow { + + String INVALID_CHECK_ELEMENT = "FLO011_S001_X004"; + String NO_INVALID_BUTTON = "FLO011_S001_R001_0"; + String CONFIRM_NO_INVALID = "FLO011_S001_B003"; + + @CheckElementPresent(INVALID_CHECK_ELEMENT) + FLO011_S001_X004_InvalidControlPage checkElementModel(); + + @Click(NO_INVALID_BUTTON) + FLO011_S001_X004_InvalidControlPage clickNoInvalidButton(); + + @Click(CONFIRM_NO_INVALID) + FLO011_S001_EditExpresInsurancePage clickConfirmInvalid(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/IDD001_S001_IndividualInsuranceFormPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/IDD001_S001_IndividualInsuranceFormPage.java new file mode 100644 index 0000000..bfc8080 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/IDD001_S001_IndividualInsuranceFormPage.java @@ -0,0 +1,104 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.IDD001_S001_IndividualInsuranceFormPage.IDD001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = IDD001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface IDD001_S001_IndividualInsuranceFormPage extends WebFlow, StoreAccessor { + String IDD001_S001_PAGE_LABEL_XPATH = "//div[text()='IDD001_S001']"; + String NEW_CONTRACT_BUTTON = "IDD001_S001_B003"; + String INSURANCE_TYPE_RADIO_BUTTON_LIFE = "IDD001_S001_R003_LIFE"; + String INSURED_RADIO_ME = "IDD001_S001_R004_1"; + String BENEFICIARY_RADIO_ME = "IDD001_S001_R015_1"; + String MARITAL_STATUS_RADIO_SINGLE = "IDD001_S001_R009_1"; + String OCCUPATION_SELECT = "IDD001_S001_C002"; + String ACTIVITY_SELECT = "IDD001_S001_C003"; + String INCOME_INPUT = "IDD001_S001_E008"; + String EXPENSES_INPUT = "IDD001_S001_E011"; + String SECURING_LOANS_NO = "IDD001_S001_R016_0"; + String FINANCIAL_RESERVE_RADIO_SIX_MONTHS = "IDD001_S001_R011_3"; + String FINANCIAL_RESOURCES_FOR_BETTER_TREATMENT_RADIO_YES = "IDD001_S001_R017_1"; + String MONTHLY_ANNUITY_RADIO_NO = "IDD001_S001_R018_0"; + String DAILY_ANNUITY_RADIO_NO = "IDD001_S001_R008_0"; + String PERSONAL_DATA_AGREEMENT = "IDD001_S001_R010_1"; + String REMOTE_BANKER_RADIO_NO = "IDD001_S001_R002_0"; + String ELECTRONIC_FORM_RADIO_YES = "IDD001_S001_R006_0"; + String CALCULATE_INSURANCE_RISK_BUTTON = "IDD001_S001_B008"; + String SAVE_INSURANCE_RISK_BUTTON = "IDD001_S001_B009"; + String CONTINUE_TO_SIGN_BUTTON = "IDD001_S001_B005"; + String OPEN_NN = "IDD001_S001_B001"; + + @Click(NEW_CONTRACT_BUTTON) + IDD001_S001_IndividualInsuranceFormPage clickNewContract(); + + @Click(value = INSURANCE_TYPE_RADIO_BUTTON_LIFE, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + IDD001_S001_IndividualInsuranceFormPage clickLifeInsurance(); + + @Click(value = INSURED_RADIO_ME, jsClick = true) + IDD001_S001_IndividualInsuranceFormPage clickMeAsInsured(); + + @Click(value = BENEFICIARY_RADIO_ME, jsClick = true) + IDD001_S001_IndividualInsuranceFormPage clickMeAsBeneficiary(); + + @Click(value = MARITAL_STATUS_RADIO_SINGLE, jsClick = true) + IDD001_S001_IndividualInsuranceFormPage clickMaritalStatusSingle(); + + @Select(OCCUPATION_SELECT) + IDD001_S001_IndividualInsuranceFormPage selectOccupation(String value); + + @Select(ACTIVITY_SELECT) + IDD001_S001_IndividualInsuranceFormPage selectActivity(String value); + + @TypeInto(INCOME_INPUT) + IDD001_S001_IndividualInsuranceFormPage fillIncome(String income); + + @TypeInto(EXPENSES_INPUT) + IDD001_S001_IndividualInsuranceFormPage fillExpenses(String expenses); + + @Click(value = SECURING_LOANS_NO, jsClick = true) + IDD001_S001_IndividualInsuranceFormPage clickSecuringLoansNo(); + + @Click(value = FINANCIAL_RESERVE_RADIO_SIX_MONTHS, jsClick = true) + IDD001_S001_IndividualInsuranceFormPage clickFinancialReserveSixMonths(); + + @Click(value = FINANCIAL_RESOURCES_FOR_BETTER_TREATMENT_RADIO_YES, jsClick = true) + IDD001_S001_IndividualInsuranceFormPage clickBetterTreatment(); + + @Click(value = MONTHLY_ANNUITY_RADIO_NO, jsClick = true) + IDD001_S001_IndividualInsuranceFormPage clickNotMonthlyAnnuity(); + + @Click(value = DAILY_ANNUITY_RADIO_NO, jsClick = true) + IDD001_S001_IndividualInsuranceFormPage clickDailyAnnuityNo(); + + @Click(value = PERSONAL_DATA_AGREEMENT, jsClick = true) + IDD001_S001_IndividualInsuranceFormPage clickPersonalDataAgreementYes(); + + @Click(value = REMOTE_BANKER_RADIO_NO, jsClick = true) + IDD001_S001_IndividualInsuranceFormPage clickNoRemoteBanker(); + + @Click(value = ELECTRONIC_FORM_RADIO_YES, jsClick = true) + IDD001_S001_IndividualInsuranceFormPage clickElectronicForm(); + + @Click(value = CALCULATE_INSURANCE_RISK_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + IDD001_S001_IndividualInsuranceFormPage clickCalculateInsuranceRisk(); + + @Click(SAVE_INSURANCE_RISK_BUTTON) + IDD001_S001_IndividualInsuranceFormPage clickSaveInsuranceRisk(); + + @Click(CONTINUE_TO_SIGN_BUTTON) + TIS050_S001_SignerSelectionPage clickContinueToSign(); + + @CustomAction + default StelaNnLifeInsurancePage clickOpenNNAndSwitchTab() { + UfoEndpoint e = getEndpoint(UfoEndpoint.class); + e.waitForElementsToLoad(30, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + e.click(() -> OPEN_NN); + e.switchToOtherWindow(1, 2); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/KUL040_S001_EditExpresBusinesInsurancePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/KUL040_S001_EditExpresBusinesInsurancePage.java new file mode 100644 index 0000000..9f99f9a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/KUL040_S001_EditExpresBusinesInsurancePage.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.KUL040_S001_EditExpresBusinesInsurancePage.KOMEX_EDIT_CHECK_ELEMENT; + +@Wait(value = KOMEX_EDIT_CHECK_ELEMENT, waitSecondsForElement = 40) +public interface KUL040_S001_EditExpresBusinesInsurancePage extends WebFlow{ + + String KOMEX_EDIT_CHECK_ELEMENT = "XXX001_T001_L005"; + String ADD_COMEX_BUTTON = "KUL040_S001_R001_0"; + String INVALID_CHECK_BUTTON = "KUL040_S001_R002_0"; + String CONFIRM_CHANGE_KOMEX ="KUL040_S001_B003"; + String KOMEX_TERMINATION_BUTTON ="KUL040_S001_R001_1"; + + @CheckElementPresent(KOMEX_EDIT_CHECK_ELEMENT) + KUL040_S001_EditExpresBusinesInsurancePage checkElementModel(); + + @Click(ADD_COMEX_BUTTON) + KUL040_S001_EditExpresBusinesInsurancePage clickAddKomexButton(); + + @Click(INVALID_CHECK_BUTTON) + KUL040_S001_EditExpresBusinesInsurancePage clickInvalidCheckButton(); + + @Click(CONFIRM_CHANGE_KOMEX) + XXX001_T001_SelectDocumentSignedPage clickConfirmChangeKomex(); + + @Click(CONFIRM_CHANGE_KOMEX) + XXX001_T001_L005_KomexChangeVictoryPage clickConfirmChangeCancelKomex(); + + @Click(KOMEX_TERMINATION_BUTTON) + KUL040_S001_EditExpresBusinesInsurancePage clickKomexTerminationButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_InsuranceSelectPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_InsuranceSelectPage.java new file mode 100644 index 0000000..342834b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_InsuranceSelectPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.OBR001_InsuranceSelectPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +public interface OBR001_InsuranceSelectPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[contains(text(), 'BAL001_OBR001_008')]"; + String GROUP_INSURANCE_BUTTON = "OBR001_S001_B003"; + String INDIVIDUAL_INSURANCE_BUTTON = "OBR001_S001_B002"; + + @Click(GROUP_INSURANCE_BUTTON) + PIP001_S001_ChooseInsurancePage clickGroupInsuranceButtonAndContinueToChooseInsurancePage(); + + @Click(INDIVIDUAL_INSURANCE_BUTTON) + IDD001_S001_IndividualInsuranceFormPage clickIndividualInsuranceButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_PrintDispositionsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_PrintDispositionsPage.java new file mode 100644 index 0000000..ad8feea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_PrintDispositionsPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS051_OBR001_ClientFinalSignatureConfirmationPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.OBR001_PrintDispositionsPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +public interface OBR001_PrintDispositionsPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[contains(text(), 'TIS011_OBR001_002')]"; + String POSTPONE_PRINT_BUTTON = "OBR001_S001_B003"; + + @Click(POSTPONE_PRINT_BUTTON) + TIS051_OBR001_ClientFinalSignatureConfirmationPage clickPostponePrintButtonAndContinueToProductsListPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_S001_AppendixSignedPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_S001_AppendixSignedPage.java new file mode 100644 index 0000000..999d182 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_S001_AppendixSignedPage.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL035_S002_SummaryOfProductFoundationRetailPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.OBR001_S001_AppendixSignedPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +public interface OBR001_S001_AppendixSignedPage extends WebFlow { + String PAGE_ID_XPATH = "//div[contains(text(), 'OBR001_S001')]"; + + String APPENDIX_SIGNATURE_CONFIG_CHECK_ELEMENT = "OBR001_S001_L002"; + String APPENDIX_CONFIG_BUTTON = "OBR001_S001_B001"; + String CONTINUE_BUTTON = "OBR001_S001_B002"; + String NO_BUTTON = "OBR001_S001_B003"; + + @CheckElementPresent(APPENDIX_SIGNATURE_CONFIG_CHECK_ELEMENT) + OBR001_S001_AppendixSignedPage checkElementModel(); + + @Click(APPENDIX_CONFIG_BUTTON) + OBR001_S001_L002_InsuranceChangeVictoryPage clickAppendixConfigButton(); + + @Click(NO_BUTTON) + OBR001_S001_PrintInstructionPage clickNoButton(); + + @Click(CONTINUE_BUTTON) + BAL035_S002_SummaryOfProductFoundationRetailPage clickContinueToSummaryOfProduct(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_S001_L002_InsuranceChangeVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_S001_L002_InsuranceChangeVictoryPage.java new file mode 100644 index 0000000..2902809 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/OBR001_S001_L002_InsuranceChangeVictoryPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HPO011_S001_ExpresDetailInsurancePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HPO011_S001_ExpresDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HPO014_S001_ExpresPlusDetailInsurancePage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = OBR001_S001_L002_InsuranceChangeVictoryPage.PAGE_ID_XPATH, by = Lookup.XPATH) +public interface OBR001_S001_L002_InsuranceChangeVictoryPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[contains(text(), 'FLO011_OBR001_003')]"; + String INSURANCE_VICTORY_CHECK_ELEMENT = "XXX001_T001_L005"; + String VICTORY_CONFIG_BUTTON = "OBR001_S001_B002"; + + @CheckElementPresent(INSURANCE_VICTORY_CHECK_ELEMENT) + OBR001_S001_L002_InsuranceChangeVictoryPage checkElementModel(); + + @Click(VICTORY_CONFIG_BUTTON) + HPO011_S001_ExpresDetailInsurancePage clickInsuranceChangeVictoryButton(); + + @Click(VICTORY_CONFIG_BUTTON) + HPO011_S001_ExpresDetailPage clickInsuranceCancelVictoryButton(); + + @Click(VICTORY_CONFIG_BUTTON) + HPO014_S001_ExpresPlusDetailInsurancePage clickInsChangeVictoryButtonPlus(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/PIP001_EnterIntoOtherInsurancePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/PIP001_EnterIntoOtherInsurancePage.java new file mode 100644 index 0000000..20e3657 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/PIP001_EnterIntoOtherInsurancePage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.TIS051_S001_DispositionGeneratePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.PIP001_EnterIntoOtherInsurancePage.OBR001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.PIP001_EnterIntoOtherInsurancePage.PIP001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, PIP001_PAGE_LABEL_XPATH}, by = Lookup.XPATH) +public interface PIP001_EnterIntoOtherInsurancePage extends WebFlow { + + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String PIP001_PAGE_LABEL_XPATH = "//div[contains(text(), 'PIP001_')]"; + String DO_NOT_CREATE_BUTTON = "OBR001_S001_B001"; + + @Click(DO_NOT_CREATE_BUTTON) + OBR001_PrintDispositionsPage clickFinishButtonAndContinueToPrintDispositionsPage(); + + @Click(DO_NOT_CREATE_BUTTON) + TIS051_S001_DispositionGeneratePage clickFinishButtonAndContinueToDispositionsPage(); + + @Click(DO_NOT_CREATE_BUTTON) + BAL001_S008_SummaryStartDocumentsPage clickFinishToSummaryDocumentsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/PIP001_S001_ChooseInsurancePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/PIP001_S001_ChooseInsurancePage.java new file mode 100644 index 0000000..f03c334 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/PIP001_S001_ChooseInsurancePage.java @@ -0,0 +1,110 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.PIP001_S001_ChooseInsurancePage.CHOOSE_INSURANCE; +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.PIP001_S001_ChooseInsurancePage.PIP001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = PIP001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(value = CHOOSE_INSURANCE, waitSecondsForElement = 30) +public interface PIP001_S001_ChooseInsurancePage extends WebFlow, StoreAccessor { + + String PIP001_S001_PAGE_LABEL_XPATH = "//div[text()='PIP001_S001']"; + String CHOOSE_INSURANCE = "PIP001_S001_C002"; + String CHOOSE_ACCOUNT = "PIP001_S001_C001"; + String CONTINUE_BUTTON = "PIP001_S001_B002"; + String FIRST_NAME_INPUT = "PIP001_S001_E007"; + String LAST_NAME_INPUT = "PIP001_S001_E009"; + String RC_INPUT = "PIP001_S001_E004"; + String DAY_OF_BIRTH_INPUT = "PIP001_S001_E010"; + String CHECKBOX_PARENT = "PIP001_S001_H001_ROD"; + String DATE_FROM_INPUT = "PIP001_S001_E001"; + String DATE_UNTIL_INPUT = "PIP001_S001_E002"; + String CALENDAR_FROM_DIV = "PIP001_S001_L005"; + String CALENDAR_UNTIL_DIV = "PIP001_S001_L007"; + String CALENDAR_DAY_GENERAL_XPATH = "//div[@id='%s']//ancestor::tbody//td[contains(@class,'ufo-static-calendar') and contains(text(), '%s')]"; + String CALENDAR_NEXT_MONTH_GENERAL_XPATH = "//div[@id='%s']//ancestor::tbody//button[contains(@class,'ufo-static-calendar-month-next')]"; + String INSURANCE_PRICE_DIV = "PIP001_S001_L009"; + String INSURANCE_FOR_INDIVIDUALS_RADIO = "PIP001_S001_R001_7735003"; + + @CustomAction + default PIP001_S001_ChooseInsurancePage fillDateFrom(LocalDate dateFrom) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String dayInCalendar = String.format(CALENDAR_DAY_GENERAL_XPATH, CALENDAR_FROM_DIV, dateFrom.getDayOfMonth()); + String nextMonthPath = String.format(CALENDAR_NEXT_MONTH_GENERAL_XPATH, CALENDAR_FROM_DIV); + + endpoint.type(() -> DATE_FROM_INPUT, "", false); + endpoint.waitForElementsToLoad(10, Lookup.XPATH, dayInCalendar); + if (LocalDate.now().getMonthValue() != dateFrom.getMonthValue()) { + endpoint.click(() -> nextMonthPath, Lookup.XPATH); + } + endpoint.click(() -> dayInCalendar, Lookup.XPATH); + endpoint.sleepSeconds(1); //Javascript error exception fix + endpoint.waitForElementsToLoad(10, Lookup.XPATH, Until.GONE, dayInCalendar); + return null; + } + + @CustomAction + default PIP001_S001_ChooseInsurancePage fillDateUntil(LocalDate dateUntil) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String dayInCalendar = String.format(CALENDAR_DAY_GENERAL_XPATH, CALENDAR_UNTIL_DIV, dateUntil.getDayOfMonth()); + String nextMonthPath = String.format(CALENDAR_NEXT_MONTH_GENERAL_XPATH, CALENDAR_UNTIL_DIV); + + endpoint.type(() -> DATE_UNTIL_INPUT, "", false); + endpoint.waitForElementsToLoad(10, Lookup.XPATH, dayInCalendar); + if (LocalDate.now().getMonthValue() != dateUntil.getMonthValue()) { + endpoint.click(() -> nextMonthPath, Lookup.XPATH); + } + endpoint.click(() -> dayInCalendar, Lookup.XPATH); + endpoint.sleepSeconds(1); //Javascript error exception fix + endpoint.waitForElementsToLoad(10, Lookup.XPATH, Until.GONE, dayInCalendar); + return null; + } + + @Wait(INSURANCE_PRICE_DIV) + PIP001_S001_ChooseInsurancePage waitUntilPriceIsCalculated(); + + @TypeInto(FIRST_NAME_INPUT) + PIP001_S001_ChooseInsurancePage fillGivenName(String givenName); + + @TypeInto(LAST_NAME_INPUT) + PIP001_S001_ChooseInsurancePage fillFamilyName(String familyName); + + @TypeInto(RC_INPUT) + PIP001_S001_ChooseInsurancePage fillRc(String rc); + + @TypeInto(DAY_OF_BIRTH_INPUT) + PIP001_S001_ChooseInsurancePage fillDayOfBirth(String dayOfBirth); + + @Click(CHECKBOX_PARENT) + PIP001_S001_ChooseInsurancePage clickCheckBox(); + + @Select(value = CHOOSE_INSURANCE, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PIP001_S001_ChooseInsurancePage selectInsurance(String product); + + @Click(value = INSURANCE_FOR_INDIVIDUALS_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PIP001_S001_ChooseInsurancePage clickInsuranceForIndividuals(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Select(CHOOSE_ACCOUNT) + PIP001_S001_ChooseInsurancePage selectAccount(String account); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + PIP001_S001_ChooseInsurancePage waitUntilLoaderIsGone(); + + @Click(CONTINUE_BUTTON) + PIP001_S001_ChooseInsurancePageTransitions clickContinue(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/PIP001_S001_ChooseInsurancePageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/PIP001_S001_ChooseInsurancePageTransitions.java new file mode 100644 index 0000000..080f888 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/PIP001_S001_ChooseInsurancePageTransitions.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PIP001_S001_ChooseInsurancePageTransitions extends WebFlow { + + PSP004_S001_PrintPage onPrintPage(); + + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + OBR001_S001_PrintInstructionPage onOtherInsurancePage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/POD038_OBR001_001_VerificationOfSignaturePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/POD038_OBR001_001_VerificationOfSignaturePage.java new file mode 100644 index 0000000..da0690e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/POD038_OBR001_001_VerificationOfSignaturePage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.POD038_OBR001_001_VerificationOfSignaturePage.OBR001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.POD038_OBR001_001_VerificationOfSignaturePage.POD038_OBR001_001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, POD038_OBR001_001_PAGE_LABEL_XPATH}, by = Lookup.XPATH, waitSecondsForElement = 40) +public interface POD038_OBR001_001_VerificationOfSignaturePage extends WebFlow { + + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String POD038_OBR001_001_PAGE_LABEL_XPATH = "//div[contains(text(), 'POD038_OBR001_001')]"; + String SIGNED_BUTTON = "OBR001_S001_B003"; + + @Click(SIGNED_BUTTON) + PIP001_EnterIntoOtherInsurancePage clickSignedButtonAndContinueToEnterIntoOtherInsurancePage(); + + @Click(SIGNED_BUTTON) + TIS046_S001_DocumentsProvidedToClientPage clickSignedButtonAndGoToDocumentsProvidedToClientPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/StelaNnLifeInsurancePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/StelaNnLifeInsurancePage.java new file mode 100644 index 0000000..b9dcada --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/StelaNnLifeInsurancePage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.StelaNnLifeInsurancePage.FIRSTNAME_INPUT; + +@Wait(value = FIRSTNAME_INPUT, by = Lookup.XPATH, waitSecondsForElement = 50) +public interface StelaNnLifeInsurancePage extends WebFlow, StoreAccessor { + String FIRSTNAME_INPUT = "//input[@id='first-name']"; + String LASTNAME_INPUT = "//input[@id='last-name']"; + String BIRTHDATE_INPUT = "//span[@id='birthdate']/input"; + String SEX_INPUT = "//div[contains(@class,'PersonalData-module_sex__')]//select"; + + @CustomAction + default StelaNnLifeInsurancePage storeNnInputValues() { + UfoEndpoint e = getEndpoint(UfoEndpoint.class); + store("NN_FIRSTNAME", e.getAttribute(FIRSTNAME_INPUT, Lookup.XPATH, "value")); + store("NN_LASTNAME", e.getAttribute(LASTNAME_INPUT, Lookup.XPATH, "value")); + store("NN_BIRTHDATE", e.getAttribute(BIRTHDATE_INPUT, Lookup.XPATH, "value")); + store("NN_SEX", e.getAttribute(SEX_INPUT, Lookup.XPATH, "value")); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/XXX001_T001_L005_KomexChangeVictoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/XXX001_T001_L005_KomexChangeVictoryPage.java new file mode 100644 index 0000000..f61d25b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/XXX001_T001_L005_KomexChangeVictoryPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HPO021_S001_ExpresBusinessDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HPO021_S001_ExpresBusinessDetailPageWithKomexPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = XXX001_T001_L005_KomexChangeVictoryPage.PAGE_ID_XPATH, by = Lookup.XPATH, waitSecondsForElement = 80) +public interface XXX001_T001_L005_KomexChangeVictoryPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[contains(text(), 'KUL040_OBR001_003_(S007)')]"; + String VICTORY_KOMEX_CONFIG_BUTTON = "OBR001_S001_B003"; + + @Click(VICTORY_KOMEX_CONFIG_BUTTON) + HPO021_S001_ExpresBusinessDetailPageWithKomexPage clickInsChangeVictoryButton(); + + @Click(VICTORY_KOMEX_CONFIG_BUTTON) + HPO021_S001_ExpresBusinessDetailPage clickInsChangeVictoryCancelButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/XXX001_T001_SelectDocumentSignedPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/XXX001_T001_SelectDocumentSignedPage.java new file mode 100644 index 0000000..0d3e7a3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/insurance/XXX001_T001_SelectDocumentSignedPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.insurance; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.insurance.XXX001_T001_SelectDocumentSignedPage.SELECT_DOCUMENT_SIGNED_CHECK_ELEMENT; + +@Wait(value = SELECT_DOCUMENT_SIGNED_CHECK_ELEMENT, waitSecondsForElement = 80) +public interface XXX001_T001_SelectDocumentSignedPage extends WebFlow { + + String SELECT_DOCUMENT_SIGNED_CHECK_ELEMENT = "XXX001_T001_L005"; + String CONFIRM_SIGNED_BUTTON = "TIS005_S002_B001"; + + @CheckElementPresent(SELECT_DOCUMENT_SIGNED_CHECK_ELEMENT) + XXX001_T001_SelectDocumentSignedPage checkElementModel(); + + @Click(CONFIRM_SIGNED_BUTTON) + XXX001_T001_L005_KomexChangeVictoryPage clickConfirmSignedButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/CAS001_S001_ScoringPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/CAS001_S001_ScoringPage.java new file mode 100644 index 0000000..cdaa9cf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/CAS001_S001_ScoringPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC006_S001_ConsolidationScoringPage; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPage.LOADER_IMG; + +@Wait(value = LOADER_IMG, until = Until.VISIBLE) +public interface CAS001_S001_ScoringPage extends WebFlow, CAS001_S001_ScoringPageTransitions { + String LOADER_IMG = "CAS001_S001_L002"; + + @Wait(value = LOADER_IMG, until = Until.GONE, waitSecondsForElement = 300) + CAS001_S001_ScoringPageTransitions waitForLoader(); + + UDC006_S001_ConsolidationScoringPage continueToLoanConsolidationScoringPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/CAS001_S001_ScoringPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/CAS001_S001_ScoringPageTransitions.java new file mode 100644 index 0000000..5b07cf3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/CAS001_S001_ScoringPageTransitions.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS027_OBR001_PreContractualInformationPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS051_OBR001_ContractDocumentationPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.VER012_OBR001_008_ContractSignedPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF034_S001_CompanyAntiLaunderingStatement; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC006_S001_ConsolidationScoringPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.flexi.credit.NKK003_S001_SelectingApprovedVariantsPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.saving.accounts.SPU001_S001_SavingAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO006_S001_UniverzalRequestModeling; +import cz.moneta.test.dsl.ufo.banka.pages.requests.PSI001_S050_PreContractualInformationPrintedPage; +import cz.moneta.test.harness.support.web.Builder; + +public interface CAS001_S001_ScoringPageTransitions extends Builder { + + NEP006_S001_ExpressScoringResultPage onExpressScoringResultPage(); + + NFL006_S001_FlexikreditScoringResultPage onFlexikreditScoringResultPage(); + + NKK006_S001_CreditCardScoringResultPage onCreditCardScoringResultPage(); + + UZO006_S001_UniverzalRequestModeling onUniversalApplicationScoringResultPage(); + + PSI001_S050_PreContractualInformationPrintedPage OnPreContractualInformationPrintedPage(); + + VER012_OBR001_008_ContractSignedPage onContractSignedPage(); + + TIS027_OBR001_PreContractualInformationPage continueToPrecontractualInfoPage(); + + TIS051_OBR001_ContractDocumentationPage continueToContractDocsPage(); + + CIF034_S001_CompanyAntiLaunderingStatement onAntiLaunderingStatementPage(); + + CHK001_S001_WaitingForModulationPage onModulationPage(); + + BPP001_S001_DocumentationSendPage onDocumentationPage(); + + SPU001_S001_SavingAccountPage onSavingAccountPage(); + + NKK003_S001_SelectingApprovedVariantsPage onApprovedVariantsPage(); + + PSP004_S001_PrintPage onPrintPage(); + + NEP002_S001_ApplicantPage onApplicantPage(); + + UDC006_S001_ConsolidationScoringPage onConsolidationScoringPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP001_S004_ApplicationDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP001_S004_ApplicationDataPage.java new file mode 100644 index 0000000..0393df0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP001_S004_ApplicationDataPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.NEP001_S004_ApplicationDataPage.SAVE_BUTTON; + +@Wait(value = NEP001_S004_ApplicationDataPage.NEP001_S004_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(value = SAVE_BUTTON, waitSecondsForElement = 60) +public interface NEP001_S004_ApplicationDataPage extends WebFlow, SharedElements { + + String NEP001_S004_PAGE_LABEL_XPATH = "//div[text()='NEP001_S004']"; + String SAVE_BUTTON = "NEP001_S004_B001"; + String INSTALMENT_DAY_SELECT = "NEP001_S004_C004"; + String INSURANCE_SELECT = "NEP001_S004_C003"; + String NO_DISABILITY_PENSION = "//label[@for='NEP001_S004_H001_1']"; + + @Select(value = INSURANCE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP001_S004_ApplicationDataPage selectInsurance(String value); + + @Click(value = NO_DISABILITY_PENSION, by = Lookup.XPATH) + NEP001_S004_ApplicationDataPage clickNoDisabilityPension(); + + @Wait(explicitWaitSeconds = 2) + @Click(SAVE_BUTTON) + NEP001_S004_ApplicationDataPageTransitions clickSaveButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP001_S004_ApplicationDataPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP001_S004_ApplicationDataPageTransitions.java new file mode 100644 index 0000000..1438cde --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP001_S004_ApplicationDataPageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.ZZJ001_S001_MeetingRecordPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NEP001_S004_ApplicationDataPageTransitions extends WebFlow { + + ODS003_S001_AddCodeOfRecommendedPersonPage onAddCodeOfRecommendedPersonPage(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPage(); + + ZZJ001_S001_MeetingRecordPage onMeetingRecordPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP002_S001_ApplicantPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP002_S001_ApplicantPage.java new file mode 100644 index 0000000..ca961ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP002_S001_ApplicantPage.java @@ -0,0 +1,250 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK007_S001_ClipRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.income.PIM001_S001_IncomeEditPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.openqa.selenium.WebElement; + +import java.util.List; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage.NEP002_S001_PAGE_LABEL_XPATH; + +@Wait(value = NEP002_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(CONTINUE_BUTTON) +public interface NEP002_S001_ApplicantPage extends WebFlow, NEP002_S001_ApplicantPageTransitions, SharedElements, StoreAccessor { + + String NEP002_S001_PAGE_LABEL_XPATH = "//div[text()='NEP002_S001']"; + String CONTINUE_BUTTON = "NEP002_S001_B004"; + String NOTICE_PERIOD_SELECT = "NEP002_S001_C015"; + String TRIAL_PERIOR_SELECT = "NEP002_S001_C016"; + String NET_MONTHLY_INCOME_3M_INPUT = "NEP002_S001_E411"; + String TOTAL_HOUSEHOLD_INCOME_INPUT = "NEP002_S001_E441"; + String PAYMENTS_OUTSIDE_MMB_INPUT = "NEP002_S001_E045"; + String HOUSEHOLD_EXPENSES_INPUT = "NEP002_S001_E041"; + String OCCUPATION_SELECT = "NEP002_S001_C013"; + String ALLOWANCES_INPUT = "NEP002_S001_E461"; + String MONTHLY_PAYMENTS_INPUT = "NEP002_S001_E043"; + String OTHER_LIVING_EXPENSES_INPUT = "NEP002_S001_E044"; + String NECESSARY_MONTHLY_EXPENSES_INPUT = "NEP002_S001_E046"; + String INCOME_SOURCE_COUNT_INPUT = "NEP002_S001_E401"; + String POP_SELECT = "NEP002_S001_C005"; + String POP_CONTINUE_BUTTON = "NEP002_S001_B010"; + String POP_CHECKBOX_GENERAL_XPATH = "//div[@id='NEP002_S001_FB001']//input [@value='%s']"; + String HOUSEHOLD_INCOME_INPUT = "NEP002_S001_E055"; + String TELCO_YES_RADIO = "NEP002_S001_R001_1"; + String MARITAL_STATUS_VERIFICATION_SOURCE_SELECT = "NEP002_S001_C011"; + String MOBILE_NUMBER_EMPLOYMENT = "NEP002_S001_E371"; + String REGISTRATION_NUMBER_SELECT = "NEP002_S001_C481"; + String REGISTRATION_NUMBER_REASON_SELECT = "NEP002_S001_C008"; + String REGISTRATION_NUMBER_CONFIRM_BUTTON = "NEP002_S001_B007"; + String REGISTRATION_NUMBER_COMMENT_INPUT = "NEP002_S001_M001"; + String EMPLOYMENT_END_DATE = "NEP002_S001_E385"; + String HOUSING_EXPENSES_INPUT = "NEP002_S001_E029"; + String FIRST_INCOME_CHECKBOX = "NEP002_S001_G003-0"; + String INCOME_CHECKBOX = "//input[contains(@id, 'NEP002_S001_G003-')]"; + String EDIT_INCOME_BUTTON = "NEP002_S001_B014"; + String SPECIAL_RELATIONS_WITH_BANK_SELECT = "NEP002_S001_C491"; + String COMMENTARY_INPUT = "NEP002_S001_M002"; + String BIRTH_NUMBER_DIV = "NEP002_S001_L011"; + String LAST_NAME_DIV = "NEP002_S001_L021"; + String FIRST_NAME_DIV = "NEP002_S001_L031"; + String MARITAL_STATUS_DIV = "NEP002_S001_L121"; + String HOUSING_TYPE_DIV = "NEP002_S001_L091"; + String EDUCATION_DIV = "NEP002_S001_L101"; + String NATIONALITY_DIV = "NEP002_S001_L071"; + String FIRST_ID_CARD_TYPE_DIV = "NEP002_S001_L261"; + String FIRST_ID_CARD_NUMBER_DIV = "NEP002_S001_L051"; + String FIRST_ID_CARD_EXPIRATION_DATE_DIV = "NEP002_S001_L061"; + String SECOND_ID_CARD_TYPE_DIV = "NEP002_S001_L027"; + String SECOND_ID_CARD_NUMBER_DIV = "NEP002_S001_L028"; + String SECOND_ID_CARD_EXPIRATION_DATE_DIV = "NEP002_S001_L032"; + String ADDRESS_DIV = "NEP002_S001_L130"; + String CORRESPONDENCE_ADDRESS_DIV = "NEP002_S001_L068"; + String LANDLINE_DIV = "NEP002_S001_L191"; + String MOBILE_PHONE_DIV = "NEP002_S001_L201"; + String EMAIL_DIV = "NEP002_S001_L301"; + String DEPENDANTS_NUMBER_DIV = "NEP002_S001_L077"; + String SAME_HOUSEHOLD_SELECT = "NEP002_S001_C640"; + + @CustomAction + default NEP002_S001_ApplicantPage clickPopCheckbox(PopCheckboxes checkboxType) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String path = String.format(POP_CHECKBOX_GENERAL_XPATH, checkboxType.getValue()); + endpoint.click(() -> path, Lookup.XPATH); + return null; + } + + @Select(NOTICE_PERIOD_SELECT) + NEP002_S001_ApplicantPage selectNoticePeriod(String noticePeriod); + + @Select(TRIAL_PERIOR_SELECT) + NEP002_S001_ApplicantPage selectTrialPeriod(String trialPeriod); + + @TypeInto(value = NET_MONTHLY_INCOME_3M_INPUT, clear = true) + NEP002_S001_ApplicantPage fillNetMonthlyIncome(int netMonthlyIncome); + + @TypeInto(value = MOBILE_NUMBER_EMPLOYMENT, clear = true) + NEP002_S001_ApplicantPage fillMobileNumberEmployment(String mobileNumberEmployment); + + @Select(OCCUPATION_SELECT) + NEP002_S001_ApplicantPage selectOccupation(String occupation); + + @TypeInto(value = ALLOWANCES_INPUT, clear = true) + NEP002_S001_ApplicantPage fillAllowances(int allowances); + + @TypeInto(value = MONTHLY_PAYMENTS_INPUT, clear = true) + NEP002_S001_ApplicantPage fillMonthlyPayments(int monthlyPayments); + + @TypeInto(value = PAYMENTS_OUTSIDE_MMB_INPUT, clear = true) + NEP002_S001_ApplicantPage fillPaymentsOutsideMMB(int paymentsOutsideMMB); + + @TypeInto(value = HOUSEHOLD_INCOME_INPUT, clear = true) + NEP002_S001_ApplicantPage fillHouseholdIncome(int householdIncome); + + @TypeInto(value = TOTAL_HOUSEHOLD_INCOME_INPUT, clear = true) + NEP002_S001_ApplicantPage fillTotalHouseholdIncome(int totalHouseholdIncome); + + @TypeInto(value = OTHER_LIVING_EXPENSES_INPUT, clear = true) + NEP002_S001_ApplicantPage fillOtherExpenses(int otherExpenses); + + @TypeInto(value = NECESSARY_MONTHLY_EXPENSES_INPUT, clear = true) + NEP002_S001_ApplicantPage fillOtherMonthlyExpenses(int necessaryMonthlyExpenses); + + @TypeInto(value = INCOME_SOURCE_COUNT_INPUT, clear = true) + NEP002_S001_ApplicantPage fillIncomeSourceCount(int incomeSourceCount); + + @Select(MARITAL_STATUS_VERIFICATION_SOURCE_SELECT) + NEP002_S001_ApplicantPage selectMaritalStatusVerificationSource(String maritalStatusVerificationSource); + + @Click(TELCO_YES_RADIO) + NEP002_S001_ApplicantPage clickTelcoYes(); + + @Select(value = POP_SELECT, + andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP002_S001_ApplicantPage selectPOP(String pop); + + @Click(POP_CONTINUE_BUTTON) + NEP002_S001_ApplicantPage clickPoPContinue(); + + @Click(CONTINUE_BUTTON) + NEP002_S001_ApplicantPageTransitions clickContinue(); + + @Click(CONTINUE_BUTTON) + ODS003_S001_AddCodeOfRecommendedPersonPage clickContinueToSigningActionPage(); + + @Select(REGISTRATION_NUMBER_SELECT) + NEP002_S001_ApplicantPage selectRegistrationNumber(String registrationNumber); + + @Select(REGISTRATION_NUMBER_REASON_SELECT) + NEP002_S001_ApplicantPage selectRegistrationNumberReason(String registrationNumberReason); + + @Select(SPECIAL_RELATIONS_WITH_BANK_SELECT) + NEP002_S001_ApplicantPage selectSpecialRelationsWithBank(String relationshipWithBank); + + @TypeInto(REGISTRATION_NUMBER_COMMENT_INPUT) + NEP002_S001_ApplicantPage fillRegistrationNumberComment(String comment); + + @Click(REGISTRATION_NUMBER_CONFIRM_BUTTON) + NEP002_S001_ApplicantPage clickRegistrationNumberOkButton(); + + @TypeInto(EMPLOYMENT_END_DATE) + NEP002_S001_ApplicantPage fillEmploymentEndDate(String date); + + @TypeInto(value = HOUSING_EXPENSES_INPUT, clear = true) + NEP002_S001_ApplicantPage fillHousingExpenses(int housingExp); + + @TypeInto(value = HOUSEHOLD_EXPENSES_INPUT, clear = true) + NEP002_S001_ApplicantPage fillHouseholdExpenses(int householdExp); + + @Click(FIRST_INCOME_CHECKBOX) + NEP002_S001_ApplicantPage selectFirstIncome(); + + @Click(EDIT_INCOME_BUTTON) + PIM001_S001_IncomeEditPage clickEditIncomeButton(); + + @Wait(explicitWaitSeconds = 3) + @Click(CONTINUE_BUTTON) + NEP001_S004_ApplicationDataPage continueToExpressLoanDateApplication(); + + @Click(CONTINUE_BUTTON) + NKK007_S001_ClipRequestPage clickContinueToClipRequest(); + + @TypeInto(COMMENTARY_INPUT) + NEP002_S001_ApplicantPage fillCommentary(String commentary); + + @CheckElementContent(BIRTH_NUMBER_DIV) + NEP002_S001_ApplicantPage checkBirthNumber(String birthNumber); + + @CheckElementContent(LAST_NAME_DIV) + NEP002_S001_ApplicantPage checkLastName(String lastName); + + @CheckElementContent(FIRST_NAME_DIV) + NEP002_S001_ApplicantPage checkFirstName(String firstName); + + @CheckElementContent(MARITAL_STATUS_DIV) + NEP002_S001_ApplicantPage checkMaritalStatus(String maritalStatus); + + @CheckElementContent(HOUSING_TYPE_DIV) + NEP002_S001_ApplicantPage checkHousingType(String housingType); + + @CheckElementContent(EDUCATION_DIV) + NEP002_S001_ApplicantPage checkEducation(String education); + + @CheckElementContent(NATIONALITY_DIV) + NEP002_S001_ApplicantPage checkNationality(String nationality); + + @CheckElementContent(FIRST_ID_CARD_TYPE_DIV) + NEP002_S001_ApplicantPage checkFirstIdCardType(String firstIdCardType); + + @CheckElementContent(FIRST_ID_CARD_NUMBER_DIV) + NEP002_S001_ApplicantPage checkFirstIdCardNumber(String firstIdCardNumber); + + @CheckElementContent(FIRST_ID_CARD_EXPIRATION_DATE_DIV) + NEP002_S001_ApplicantPage checkFirstIdCardExpirationDate(String firstIdCardExpirationDate); + + @CheckElementContent(SECOND_ID_CARD_TYPE_DIV) + NEP002_S001_ApplicantPage checkSecondIdCardType(String secondIdCardType); + + @CheckElementContent(SECOND_ID_CARD_NUMBER_DIV) + NEP002_S001_ApplicantPage checkSecondIdCardNumber(String secondIdCardNumber); + + @CheckElementContent(SECOND_ID_CARD_EXPIRATION_DATE_DIV) + NEP002_S001_ApplicantPage checkSecondIdCardExpirationDate(String secondIdCardExpirationDate); + + @CheckElementContent(ADDRESS_DIV) + NEP002_S001_ApplicantPage checkAddress(String address); + + @CheckElementContent(CORRESPONDENCE_ADDRESS_DIV) + NEP002_S001_ApplicantPage checkCorrespondenceAddress(String correspondenceAddress); + + @CheckElementContent(LANDLINE_DIV) + NEP002_S001_ApplicantPage checkLandline(String landline); + + @CheckElementContent(MOBILE_PHONE_DIV) + NEP002_S001_ApplicantPage checkMobilePhone(String mobilePhone); + + @CheckElementContent(EMAIL_DIV) + NEP002_S001_ApplicantPage checkEmail(String email); + + @CheckElementContent(DEPENDANTS_NUMBER_DIV) + NEP002_S001_ApplicantPage checkDependantsNumber(String dependantsNumber); + + @Select(SAME_HOUSEHOLD_SELECT) + NEP002_S001_ApplicantPage isSameHouseHold(String sameHouseHold); + + @CustomAction + default NEP002_S001_ApplicantPage selectEachIncome() { + UfoEndpoint ep = getEndpoint(UfoEndpoint.class); + List incomeCheckboxes = ep.findAndGetListOfElements(INCOME_CHECKBOX, Lookup.XPATH); + for (WebElement incomeCheckbox : + incomeCheckboxes) { + incomeCheckbox.click(); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP002_S001_ApplicantPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP002_S001_ApplicantPageTransitions.java new file mode 100644 index 0000000..0cf6aaf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP002_S001_ApplicantPageTransitions.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK004_S001_ProductTransferPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC005_S001_LoanConsolidationScoringCommitmentsPage; +import cz.moneta.test.harness.support.web.Builder; + +public interface NEP002_S001_ApplicantPageTransitions extends Builder { + + NEP001_S004_ApplicationDataPage onApplicationDataPage(); + + NEP028_S001_SignaturePage onSignaturePage(); + + ODS003_S001_AddCodeOfRecommendedPersonPage onPromoCodePage(); + + UDC005_S001_LoanConsolidationScoringCommitmentsPage onLoanConsolidationCommitmentsPage(); + + DOK001_S001_SelectionOfSubmittedDocumentsPage onIdSelectionPage(); + + NKK004_S001_ProductTransferPage onProductTransferPage(); + + NEP001_S004_ApplicationDataPage onApplicationDataPageTwo(); + + PSP004_S001_PrintPage onPrintPage(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP017_S014_SelectApprovedVariantsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP017_S014_SelectApprovedVariantsPage.java new file mode 100644 index 0000000..1981e8a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP017_S014_SelectApprovedVariantsPage.java @@ -0,0 +1,96 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.openqa.selenium.WebElement; + +import java.util.List; +import java.util.Objects; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.NEP017_S014_SelectApprovedVariantsPage.PAGE_ID; + +@Wait(PAGE_ID) +public interface NEP017_S014_SelectApprovedVariantsPage extends WebFlow, SharedElements, StoreAccessor { + + String PAGE_ID = "NEP017_S014_X001"; + String FIRST_VARIANT_RADIO = "NEP017_S014_G001-0"; + String SECOND_VARIANT_RADIO = "NEP017_S014_G001-1"; + String SELECT_BUTTON = "NEP017_S014_B001"; + String AMOUNT_INPUT = "NEP017_S014_E002"; + String CALCULATE_INSTALMENTS_BUTON = "NEP017_S014_B005"; + String TERM_RADIO_XPATH = "//table[@id='NEP017_S014_G002_UfoTable']//td[contains(@class, 'ufo-Table-BodyCell') and text() = '%s']"; + String FIXED_VARIANT_RADIO_XPATH = "//table[@id='NEP017_S014_G001_UfoTable']//td[2][not(text()=' ')]"; + String CONTINUE_BUTTON = "NEP017_S014_B001"; + String CREDIT_TR = "//table[@id='NEP017_S014_G001_UfoTable']/tbody//tr"; + String CHOSEN_LOAN_OPTION_STORE_KEY = "CHOSEN_LOAN_OPTION"; + + @Click(SELECT_BUTTON) + NEP017_S014_SelectApprovedVariantsPageTransitions clickSelect(); + + @Click(value = FIRST_VARIANT_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP017_S014_SelectApprovedVariantsPage clickFirstVariant(); + + @Click(value = SECOND_VARIANT_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP017_S014_SelectApprovedVariantsPage clickSecondVariant(); + + @TypeInto(AMOUNT_INPUT) + NEP017_S014_SelectApprovedVariantsPage fillAmount(int amount); + + @CustomAction + default NEP017_S014_SelectApprovedVariantsPage fillAmountIfVisibleAndChooseInstallments(int amount) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(AMOUNT_INPUT)) { + endpoint.type(() -> AMOUNT_INPUT, String.valueOf(amount), true); + endpoint.click(() -> CALCULATE_INSTALMENTS_BUTON); + endpoint.waitForElementsToLoad(20, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + } + return null; + } + + @Click(value = CALCULATE_INSTALMENTS_BUTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP017_S014_SelectApprovedVariantsPage clickCalculateInstalments(); + + @CustomAction + default NEP017_S014_SelectApprovedVariantsPage clickTermRadio(int term) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String xpath = String.format(TERM_RADIO_XPATH, term); + endpoint.click(() -> xpath, Lookup.XPATH); + endpoint.waitForElementsToLoad(150, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CustomAction + default NEP017_S014_SelectApprovedVariantsPage clickFixedVariant() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.jsClick(() -> String.format(FIXED_VARIANT_RADIO_XPATH), Lookup.XPATH); + endpoint.waitForElementsToLoad(150, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @Click(CONTINUE_BUTTON) + PSP004_S001_PrintPage clickContinue(); + + @CustomAction + default NEP017_S014_SelectApprovedVariantsPage selectRequiredOrFirstVariation(int clientRequiredAmount, int clientRequiredTerm) { + UfoEndpoint e = getEndpoint(UfoEndpoint.class); + List credits = e.findAndGetListOfElements(CREDIT_TR, Lookup.XPATH); + for (int i = credits.size(); i > 0; i--) { + String CREDIT_TR = "//table[@id='NEP017_S014_G001_UfoTable']/tbody//tr[%s]/td[%s]"; + + String amount = e.getText(String.format(CREDIT_TR, i, 2), Lookup.XPATH).replaceAll("[\\s\\u00A0]+", ""); + String term = e.getText(String.format(CREDIT_TR, i, 5), Lookup.XPATH); + + boolean sameAsRequiredVariation = Objects.equals(amount, String.valueOf(clientRequiredAmount)) && Objects.equals(term, String.valueOf(clientRequiredTerm)); + if (sameAsRequiredVariation || i == 1) { + credits.get(i - 1).click(); + e.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + store(CHOSEN_LOAN_OPTION_STORE_KEY, String.format("Chosen option: amount: %s, term: %s", amount, term)); + break; + } + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP017_S014_SelectApprovedVariantsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP017_S014_SelectApprovedVariantsPageTransitions.java new file mode 100644 index 0000000..161b395 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP017_S014_SelectApprovedVariantsPageTransitions.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.PSI001_S050_PreContractualInfromationPrintedPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.VDB001_S001_SecondBankerJoiningPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NEP017_S014_SelectApprovedVariantsPageTransitions extends WebFlow { + + CAS001_S001_ScoringPage onScoringPage(); + + PSI001_S050_PreContractualInfromationPrintedPage onPreContractualInfromationPrintedPag(); + + PSP004_S001_PrintPage onPrintPage(); + + NEP006_S001_ExpressScoringResultPage onMegaExpressRequestPage(); + + VDB001_S001_SecondBankerJoiningPage onSecondBankerJoiningPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP028_S001_SignaturePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP028_S001_SignaturePage.java new file mode 100644 index 0000000..bee9e1f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP028_S001_SignaturePage.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.openqa.selenium.WebElement; + +import java.util.List; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.NEP028_S001_SignaturePage.PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.NEP028_S001_SignaturePage.YES_BUTTON; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 40) +@Wait(value = YES_BUTTON, waitSecondsForElement = 40) +public interface NEP028_S001_SignaturePage extends WebFlow, StoreAccessor { + + String PAGE_LABEL_XPATH = "//div[text()='NEP028_S001']"; + String YES_BUTTON = "NEP028_S001_B001"; + String ALL_APPLICANT_CHECK_BOXES = "//input[contains(@id,'NEP028_S001_G001')]"; + String APPLICANT_CHECKBOX = "NEP028_S001_G001-0"; + String COAPPLICANT_CHECKBOX = "NEP028_S001_G001-1"; + + @Click(APPLICANT_CHECKBOX) + NEP028_S001_SignaturePage clickApplicantSignatureCheckbox(); + + @Click(COAPPLICANT_CHECKBOX) + NEP028_S001_SignaturePage clickCoApplicantSignatureCheckbox(); + + @CustomAction + default NEP028_S001_SignaturePage clickAllSignatureCheckboxes() { + UfoEndpoint e = getEndpoint(UfoEndpoint.class); + List applicantCheckboxes = e.findAndGetListOfElements(ALL_APPLICANT_CHECK_BOXES, Lookup.XPATH); + for (WebElement applicantCheckbox : applicantCheckboxes){ + applicantCheckbox.click(); + } + return null; + } + + @Click(YES_BUTTON) + NEP028_S001_SignaturePageTransitions clickYes(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP028_S001_SignaturePageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP028_S001_SignaturePageTransitions.java new file mode 100644 index 0000000..a48ea84 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/NEP028_S001_SignaturePageTransitions.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NEP028_S001_SignaturePageTransitions extends WebFlow { + + DMS001_S001_ScanDocumentsPage onScanDocumentsPage(); + + CAS001_S001_ScoringPage onScoringPage(); + + OBR001_S001_PrintInstructionPage onInstructionPage(); + + NEP006_S001_ExpressScoringResultPage onExpressScoringResultPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/PopCheckboxes.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/PopCheckboxes.java new file mode 100644 index 0000000..0e83d24 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/PopCheckboxes.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum PopCheckboxes implements DynamicPathPart { + + SIGNED("17"), + BIRTHNUMBER("85"), + NO_DEPENDANTS("20"), + AGE("55"), + EMPLOYER_STAMP("18"); + + private final String value; + + PopCheckboxes(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER013_S001_SecondSignatureSearchPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER013_S001_SecondSignatureSearchPage.java new file mode 100644 index 0000000..4919541 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER013_S001_SecondSignatureSearchPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.VER013_S001_SecondSignatureSearchPage.APPLICATION_ID_INPUT; + +@Wait(value = APPLICATION_ID_INPUT, waitSecondsForElement = 40) +public interface VER013_S001_SecondSignatureSearchPage extends WebFlow { + + String APPLICATION_ID_INPUT = "VER013_S001_E001"; + String SECOND_SIGNATURE_BUTTON = "VER013_S001_B002"; + + @TypeInto(APPLICATION_ID_INPUT) + VER013_S001_SecondSignatureSearchPage fillApplicationId(String applicationId); + + @Click(SECOND_SIGNATURE_BUTTON) + VER014_S003_SecondSignatureVerificationPage clickSecondSignatureButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER014_S003_SecondSignatureVerificationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER014_S003_SecondSignatureVerificationPage.java new file mode 100644 index 0000000..0415a6c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER014_S003_SecondSignatureVerificationPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.VER014_S003_SecondSignatureVerificationPage.VERIFY_BUTTON; + +@Wait(VERIFY_BUTTON) +public interface VER014_S003_SecondSignatureVerificationPage extends WebFlow { + + String VERIFY_BUTTON = "VER014_S003_B001"; + String ALTERNATIVE_VERIFY_BUTTON = "VER014_S003_B003"; + String ID_NUMBER_INPUT = "VER014_S003_E001"; + + @Click(VERIFY_BUTTON) + VER014_S004_VerificationSuccessfulPage clickVerify(); + + @Click(ALTERNATIVE_VERIFY_BUTTON) + VER014_S004_VerificationSuccessfulPage clickVerifyAlternative(); + + @TypeInto(ID_NUMBER_INPUT) + VER014_S003_SecondSignatureVerificationPage fillIdNumber(String idNumber); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER014_S004_VerificationSuccessfulPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER014_S004_VerificationSuccessfulPage.java new file mode 100644 index 0000000..f77ec2c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER014_S004_VerificationSuccessfulPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.VER014_S004_VerificationSuccessfulPage.OK_BUTTON; + +@Wait(OK_BUTTON) +public interface VER014_S004_VerificationSuccessfulPage extends WebFlow, StoreAccessor { + + String OK_BUTTON = "VER014_S004_B001"; + + @CustomAction + default HLO001_S001_ClientSearchPage clickOkAndCloseWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class, Harness.getSecondBankerToken()); + endpoint.click(() -> OK_BUTTON); + endpoint.closePopup(20); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER017_S001_SecondBankerVerificationStatusPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER017_S001_SecondBankerVerificationStatusPage.java new file mode 100644 index 0000000..e485600 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER017_S001_SecondBankerVerificationStatusPage.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {VER017_S001_SecondBankerVerificationStatusPage.VER017_S001_PAGE_LABEL_XPATH}, waitSecondsForElement = 30, by = Lookup.XPATH) +public interface VER017_S001_SecondBankerVerificationStatusPage extends WebFlow, StoreAccessor { + String VER017_S001_PAGE_LABEL_XPATH = "//div[text()='VER017_S001']"; + String APPLICATION_ID_KEY = "APPLICATION_ID"; + String APPLICATION_STATUS_LABEL = "VER017_S001_L041"; + String APPLICATION_STATUS_XPATH = "//div[@id='VER017_S001_L041' and text()='%s']"; + String RELOAD_BUTTON = "VER017_S001_B007"; + String CONTINUE_BUTTON = "VER017_S001_B005"; + String APPLICATION_ID_DIV = "VER017_S001_L003"; + + @CheckElementContent(APPLICATION_STATUS_LABEL) + VER017_S001_SecondBankerVerificationStatusPage checkVerificationStatus(String expectedStatus); + + @Click(value = RELOAD_BUTTON, andWait = @Wait(value = CONTINUE_BUTTON, until = Until.CLICKABLE)) + VER017_S001_SecondBankerVerificationStatusPage clickReload(); + + @StoreElementContent(storeKey = APPLICATION_ID_KEY, value = APPLICATION_ID_DIV) + VER017_S001_SecondBankerVerificationStatusPage storeApplicationId(); + + @CustomAction + default VER017_S001_SecondBankerVerificationStatusPage waitForStatus(String status) { + + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String xpath = String.format(APPLICATION_STATUS_XPATH, status); + endpoint.waitForElementAndRefresh(xpath, RELOAD_BUTTON, Lookup.XPATH, Lookup.ID, 30, 5); + return null; + } + + @Click(CONTINUE_BUTTON) + VER017_S001_SecondBankerVerificationStatusPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER017_S001_SecondBankerVerificationStatusPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER017_S001_SecondBankerVerificationStatusPageTransitions.java new file mode 100644 index 0000000..54c2b40 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER017_S001_SecondBankerVerificationStatusPageTransitions.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK002_OBR001_ConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface VER017_S001_SecondBankerVerificationStatusPageTransitions extends WebFlow { + PSP004_S001_PrintPage onPrintPage(); + + NKK002_OBR001_ConfirmationPage onConfirmationPage(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER018_S001_SecondBankerVerificationConfirmPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER018_S001_SecondBankerVerificationConfirmPage.java new file mode 100644 index 0000000..c9651b2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER018_S001_SecondBankerVerificationConfirmPage.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {VER018_S001_SecondBankerVerificationConfirmPage.VER018_S001_PAGE_LABEL_XPATH}, waitSecondsForElement = 30, by = Lookup.XPATH) +public interface VER018_S001_SecondBankerVerificationConfirmPage extends WebFlow { + String VER018_S001_PAGE_LABEL_XPATH = "//div[text()='VER018_S001']"; + String FIRST_APPLICATION_RADIO = "VER018_S001_G001-0"; + + @Click(FIRST_APPLICATION_RADIO) + VER018_S002_SecondBankerApplicationVerificationPage clickFirstApplication(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER018_S002_SecondBankerApplicationVerificationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER018_S002_SecondBankerApplicationVerificationPage.java new file mode 100644 index 0000000..37d0ee4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/VER018_S002_SecondBankerApplicationVerificationPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {VER018_S002_SecondBankerApplicationVerificationPage.VER018_S002_PAGE_LABEL_XPATH}, waitSecondsForElement = 30, by = Lookup.XPATH) +public interface VER018_S002_SecondBankerApplicationVerificationPage extends WebFlow { + String VER018_S002_PAGE_LABEL_XPATH = "//div[text()='VER018_S002']"; + String CONFIRM_DOCUMENTS_RADIO = "VER018_S002_R001_OK_DOC"; + String SAVE_DECISION_BUTTON = "VER018_S002_B003"; + + @Click(value = CONFIRM_DOCUMENTS_RADIO, jsClick = true) + @Click(SAVE_DECISION_BUTTON) + OBR003_S001_ClientContractSignPage confirmDocumentsAndSaveDecision(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/INK001_CreditCardCollectionListPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/INK001_CreditCardCollectionListPage.java new file mode 100644 index 0000000..289a335 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/INK001_CreditCardCollectionListPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.INK001_CreditCardCollectionListPage.END_BUTTON; + +@Wait(END_BUTTON) +public interface INK001_CreditCardCollectionListPage extends WebFlow { + + String END_BUTTON = "INK001_S002_B001"; + + @Click(END_BUTTON) + INK001_CreditCardCollectionListPageTransitions clickEnd(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/INK001_CreditCardCollectionListPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/INK001_CreditCardCollectionListPageTransitions.java new file mode 100644 index 0000000..114e431 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/INK001_CreditCardCollectionListPageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.NKK006_OBR001_RequestForTransferOrder; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface INK001_CreditCardCollectionListPageTransitions extends WebFlow { + + NKK006_OBR001_RequestForTransferOrder onRequestForTransferOrderPage(); + + BAL006_S002_ClientRequestPage onClientRequestsPage(); + + HKO101_S001_MainClientPage onMainClientPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/NKK004_S001_ProductTransferPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/NKK004_S001_ProductTransferPage.java new file mode 100644 index 0000000..c141431 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/NKK004_S001_ProductTransferPage.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK004_S001_ProductTransferPage.SEND_BUTTON; + +@Wait(SEND_BUTTON) +public interface NKK004_S001_ProductTransferPage extends WebFlow, StoreAccessor { + String SEND_BUTTON = "NKK004_S001_B001"; + String CREDIT_ACCOUNT_BUTTON_XPATH = "//td[text()='Kreditní účet']"; + + @Click(value = CREDIT_ACCOUNT_BUTTON_XPATH, by = Lookup.XPATH) + NKK004_S001_ProductTransferPage clickCreditAccount(); + + @CustomAction + default NKK004_S001_ProductTransferPage clickSendButton() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> SEND_BUTTON); + endpoint.dismissAlert(20); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/NKK006_S001_CreditCardScoringResultPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/NKK006_S001_CreditCardScoringResultPage.java new file mode 100644 index 0000000..75e5233 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/NKK006_S001_CreditCardScoringResultPage.java @@ -0,0 +1,67 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage.APP_ID_DIV; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage.APP_KEY_DIV; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage.NKK006_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.harness.support.web.Lookup.DEFAULT; +import static cz.moneta.test.harness.support.web.Lookup.XPATH; + +@Wait(value = NKK006_S001_PAGE_LABEL_XPATH, by = XPATH, waitSecondsForElement = 80) +@Wait(value = {APP_KEY_DIV, APP_ID_DIV}, waitSecondsForElement = 40) +public interface NKK006_S001_CreditCardScoringResultPage extends WebFlow, StoreAccessor { + + String NKK006_S001_PAGE_LABEL_XPATH = "//div[text()='NKK006_S001']"; + String APP_ID_DIV = "NKK006_S001_L027"; + String APP_ID_STORE = "APP_ID_STORE"; + String APP_KEY_DIV = "NKK006_S001_L030"; + String APP_KEY_STORE = "APP_KEY_STORE"; + String APP_STAT_DIV = "NKK006_S001_L015"; + String APP_STAT_STORE = "APP_STAT_STORE"; + String END_BUTTON = "NKK006_S001_B002"; + String REFRESH_BUTTON = "NKK006_S001_S001"; + String STATUS_GENERAL_XPATH = "//div[@id='NKK006_S001_L015' and contains(text(), '%s')]"; + String FOUNDATION_PRINT_CONTRACT_BUTTON = "NKK006_S001_B005"; + + String CANCEL_BUTTON = "NKK006_S001_B006"; + + @StoreElementContent(storeKey = APP_KEY_STORE, value = APP_KEY_DIV) + NKK006_S001_CreditCardScoringResultPage storeAppKey(); + + @GetElementContent(APP_KEY_DIV) + String getAppKey(); + + @Log(value = APP_ID_DIV, template = "Client Credit Card Application ID is {}") + @StoreElementContent(storeKey = APP_ID_STORE, value = APP_ID_DIV) + NKK006_S001_CreditCardScoringResultPage storeAppId(); + + @GetElementContent(APP_ID_DIV) + String getAppId(); + + @StoreElementContent(storeKey = APP_STAT_STORE, value = APP_STAT_DIV) + NKK006_S001_CreditCardScoringResultPage storeAppStat(); + + @Click(END_BUTTON) + HKO101_S001_MainClientPage clickEnd(); + + @CustomAction + default NKK006_S001_CreditCardScoringResultPage waitForStatusAndRefresh(String status) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementAndRefresh(String.format(STATUS_GENERAL_XPATH, status), + REFRESH_BUTTON, XPATH, DEFAULT, 50, 15); + return null; + } + + @Click(FOUNDATION_PRINT_CONTRACT_BUTTON) + NKK006_S001_CreditCardScoringResultPageTransitions clickCreateProductAndPrintContract(); + + @Click(CANCEL_BUTTON) + NKK006_S001_CreditCardScoringResultPageTransitions clickCancel(); + + @Click(END_BUTTON) + NKK006_S001_CreditCardScoringResultPageTransitions clickEndToClientRequestPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/NKK006_S001_CreditCardScoringResultPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/NKK006_S001_CreditCardScoringResultPageTransitions.java new file mode 100644 index 0000000..4340ec3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/NKK006_S001_CreditCardScoringResultPageTransitions.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.PSI001_S052_PreContractualInformationPrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.VER017_S001_SecondBankerVerificationStatusPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.VDB001_S001_SecondBankerJoiningPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.flexi.credit.NKK003_S001_SelectingApprovedVariantsPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.NEP013_S001_RequestCancellationPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.PSI001_S050_PreContractualInformationPrintedPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NKK006_S001_CreditCardScoringResultPageTransitions extends WebFlow { + + PSI001_S050_PreContractualInformationPrintedPage onPreContractualInformationPrintedPage(); + + NKK003_S001_SelectingApprovedVariantsPage onSelectingApprovedVariantsPage(); + + PSP004_S001_PrintPage onPrintPage(); + + PSI001_S052_PreContractualInformationPrintPage onPreContractualInformationPrintPage(); + + VDB001_S001_SecondBankerJoiningPage onSecondBankerSearch(); + + TIS046_S001_DocumentsProvidedToClientPage onDocumentsProvided(); + + TIS050_S001_SignerSelectionPage onSingerPage(); + + NEP013_S001_RequestCancellationPage onRequestCancellationPage(); + + VER017_S001_SecondBankerVerificationStatusPage onSecondBankerVerificationStatusPage(); + + BAL006_S002_ClientRequestPage onClientRequestPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/ONC001_S001_NewCreditCardPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/ONC001_S001_NewCreditCardPage.java new file mode 100644 index 0000000..6ea9c22 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/ONC001_S001_NewCreditCardPage.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.ONC001_S001_NewCreditCardPage.*; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH, waitSecondsForElement = 80) +public interface ONC001_S001_NewCreditCardPage extends WebFlow, StoreAccessor { + + String PAGE_ID_XPATH = "//div[text()='ONC001_S001']"; + String AMOUNT_INPUT = "ONC001_S001_E004"; + String NO_RECOMMENDATION_CHECKBOX = "ONC001_S001_H003_1"; + String PROMO_SELECT = "ONC001_S001_C001"; + String SEND_BUTTON = "ONC001_S001_B001"; + String ACCOUNT_SELECT = "ONC001_S001_C004"; + String CHANGE_REQUEST_PARAMETERS_CHECKBOX = "ONC001_S001_H001_1"; + + @TypeInto(AMOUNT_INPUT) + ONC001_S001_NewCreditCardPage fillAmount(int value); + + @Select(PROMO_SELECT) + ONC001_S001_NewCreditCardPage selectPromo(String text); + + @Click(NO_RECOMMENDATION_CHECKBOX) + ONC001_S001_NewCreditCardPage clickNoRecommendation(); + + @Click(value = CHANGE_REQUEST_PARAMETERS_CHECKBOX, jsClick = true) + ONC001_S001_NewCreditCardPage clickCheckRequestParametersCheckbox(); + + @CustomAction + default ONC001_S001_NewCreditCardPage selectAccountIfPossible(){ + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if(endpoint.isElementVisible(3,ACCOUNT_SELECT,Lookup.ID)){ + endpoint.selectByOptionOrder(ACCOUNT_SELECT,2,Lookup.ID); + } + return null; + } + + @CustomAction + default ONC001_S001_NewCreditCardPage dismissCardApplicationAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.dismissAlert(20); + return null; + } + + @Click(SEND_BUTTON) + ONC001_S001_NewCreditCardPageTransitions clickSend(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/ONC001_S001_NewCreditCardPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/ONC001_S001_NewCreditCardPageTransitions.java new file mode 100644 index 0000000..dbe5960 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/ONC001_S001_NewCreditCardPageTransitions.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK001_S007_QuickCreditCardApplicantDetailsPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ONC001_S001_NewCreditCardPageTransitions extends WebFlow { + + NEP002_S001_ApplicantPage onApplicantPage(); + + DOK001_S001_SelectionOfSubmittedDocumentsPage onSelectionOfSubmittedDocumentsPage(); + + NKK001_S007_QuickCreditCardApplicantDetailsPage onCreditCardApplicationDetailsPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/PLK014_S002_CardActivationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/PLK014_S002_CardActivationPage.java new file mode 100644 index 0000000..627b0fa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/PLK014_S002_CardActivationPage.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.auto.smartauto.shared.CommonElements.LOADER_DIV; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.PLK014_S002_CardActivationPage.ACTIVATE_BUTTON; + +@Wait(ACTIVATE_BUTTON) +public interface PLK014_S002_CardActivationPage extends WebFlow, StoreAccessor { + + String ACTIVATE_BUTTON = "PLK014_S002_B005"; + String ID_CARD_NUMBER_INPUT = "PLK014_S002_E002"; + String ID_CARD_TYPE_SELECT = "PLK014_S002_C001"; + + @Select(value = ID_CARD_TYPE_SELECT, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + PLK014_S002_CardActivationPage selectIdCardType(String idCardType); + + @TypeInto(value = ID_CARD_NUMBER_INPUT, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + PLK014_S002_CardActivationPage fillIdCardNumber(String idCardNumber); + + @Click(value = ACTIVATE_BUTTON, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + PLK014_S003_CardActivationPageTransitions clickActivateCard(); + + @Select(value = ID_CARD_TYPE_SELECT, selectByOrder = true) + PLK014_S002_CardActivationPage selectOP(int indexOfOP); + + @CustomAction + default PLK014_S002_CardActivationPage fillIdCardNumberWithPossibleAlert(String idCardNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + this.fillIdCardNumber(idCardNumber); + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(1); + this.fillIdCardNumber(idCardNumber); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/PLK014_S003_CardActivationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/PLK014_S003_CardActivationPageTransitions.java new file mode 100644 index 0000000..c7586fb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/PLK014_S003_CardActivationPageTransitions.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PLK014_S003_CardActivationPageTransitions extends WebFlow { + + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + OBR001_S001_PrintInstructionPage onConfirmSignaturePage(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPageForDebitCards(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/PLK014_S003_CreditCardActivationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/PLK014_S003_CreditCardActivationPage.java new file mode 100644 index 0000000..178e1cb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/creditCard/PLK014_S003_CreditCardActivationPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = PLK014_S003_CreditCardActivationPage.PLK014_S003_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface PLK014_S003_CreditCardActivationPage extends WebFlow, StoreAccessor { + + String PLK014_S003_PAGE_LABEL_XPATH = "//div[text()='PLK014_S003']"; + String ACTIVATE_BUTTON = "PLK014_S003_B001"; + String ID_CARD_NUMBER_INPUT = "PLK014_S003_E002"; + String ID_CARD_TYPE_SELECT = "PLK014_S003_C001"; + + @Select(ID_CARD_TYPE_SELECT) + PLK014_S003_CreditCardActivationPage selectIdCardType(String idCardType); + + @TypeInto(clear = true, value = ID_CARD_NUMBER_INPUT) + PLK014_S003_CreditCardActivationPage fillIdCardNumberFromStored(String idCardNumber); + + @Click(ACTIVATE_BUTTON) + PLK014_S003_CardActivationPageTransitions clickActivateCard(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/HLE001_S001_CoApplicantSearchPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/HLE001_S001_CoApplicantSearchPage.java new file mode 100644 index 0000000..1ae81c4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/HLE001_S001_CoApplicantSearchPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.expres; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.expres.HLE001_S001_CoApplicantSearchPage.HLE001_S001_PAGE_LABEL_XPATH; + +@Wait(value = HLE001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface HLE001_S001_CoApplicantSearchPage extends WebFlow { + String HLE001_S001_PAGE_LABEL_XPATH = "//div[text()='HLE001_S001']"; + String SEARCH_INPUT = "HLE001_S001_E001"; + String RC_SEARCH_RADIO = "HLE001_S001_G001-1"; + String CIF_SEARCH_RADIO = "HLE001_S001_G001-2"; + String RC_SEARCH_BUTTON = "HLE001_S001_B005"; + String SEARCH_BUTTON = "HLE001_S001_B001"; + + @TypeInto(SEARCH_INPUT) + HLE001_S001_CoApplicantSearchPage fillSearchTerm(String term); + + @Click(RC_SEARCH_RADIO) + HLE001_S001_CoApplicantSearchPage clickSearchByRc(); + + @Click(CIF_SEARCH_RADIO) + HLE001_S001_CoApplicantSearchPage clickSearchByCif(); + + @Click(SEARCH_BUTTON) + HLE001_S001_CoApplicantSearchPageTransitions clickSearch(); + + @Click(RC_SEARCH_BUTTON) + HLE001_S001_CoApplicantSearchPageTransitions clickSearchByRcButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/HLE001_S001_CoApplicantSearchPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/HLE001_S001_CoApplicantSearchPageTransitions.java new file mode 100644 index 0000000..d73bd0b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/HLE001_S001_CoApplicantSearchPageTransitions.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.expres; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF113_S001_ChangeDataFO; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO001_S001_UniverzalRequestIdentificationPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface HLE001_S001_CoApplicantSearchPageTransitions extends WebFlow { + + NEP001_S001_NewExpressPage onExpressPage(); + + NPK001_S001_DebitCardRequestPage onDebitCardRequestPage(); + + CIF113_S001_ChangeDataFO onChangeDataFO(); + + UZO001_S001_UniverzalRequestIdentificationPage onUniversalRequestIdentificationPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/HousingLoanData.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/HousingLoanData.java new file mode 100644 index 0000000..3b91dae --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/HousingLoanData.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.expres; + +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisAllLoanObject; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisBLRateFixation; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisPropertyOwnershipType; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisUcelUveruExpres; +import cz.moneta.test.dsl.util.data.client.Address; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Builder +@Getter +@Setter +public class HousingLoanData{ + private boolean isRealityCustomAddress; + private Address realityCustomAddress; + private String landRegistryArea; + private String plotNumber; + private String apartmentNumber; + private HCisAllLoanObject realityType; + private HCisPropertyOwnershipType ownershipType; + private HCisUcelUveruExpres purposeType; + private HCisBLRateFixation fixation; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/LoanData.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/LoanData.java new file mode 100644 index 0000000..fa74348 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/LoanData.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.expres; + +import cz.moneta.test.dsl.util.data.client.NonClient; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Builder +@Getter +@Setter +public class LoanData { + private NonClient client; + private List coApplicants; + private int amount; + private int term; + private int paymentsOutsideMMB; + private int otherMonthlyExpenses; + private HousingLoanData housingLoanData; + private boolean isInsurance; + private String insuranceName; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP001_S001_NewExpressPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP001_S001_NewExpressPage.java new file mode 100644 index 0000000..1861670 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP001_S001_NewExpressPage.java @@ -0,0 +1,113 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.expres; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP001_S001_NewExpressPage.CONFIRM_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP001_S001_NewExpressPage.NEP001_S001_PAGE_LABEL_XPATH; + +@Wait(value = NEP001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(CONFIRM_BUTTON) +@Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) +public interface NEP001_S001_NewExpressPage extends WebFlow, SharedElements, StoreAccessor { + + String NEP001_S001_PAGE_LABEL_XPATH = "//div[text()='NEP001_S001']"; + String CONFIRM_BUTTON = "NEP001_S001_B002"; + String AMOUNT_INPUT = "NEP001_S001_E006"; + String AMOUNT_DIV = "NEP001_S001_L009"; + String NUMBER_OF_INSTALLMENTS_SELECT = "NEP001_S001_C003"; + String TERM_OPTION_XPATH = "//select[@id='NEP001_S001_C003']/option[@value='%s']"; + String CUSTOM_TERM_INPUT = "NEP001_S001_E019"; + String CALCULATE_INSTALLMENT_BUTTON = "NEP001_S001_B004"; + String CONTINUE_BUTTON = "NEP001_S001_B002"; + String FIRST_COAPPLICANT_RELATIONSHIP_SELECT = "NEP001_S001_C005"; + String SECOND_COAPPLICANT_RELATIONSHIP_SELECT = "NEP001_S001_C009"; + String NO_EXTERNAL_PARTNER_CHECKBOX_XPATH = "NEP001_S001_H002_1"; + String HOUSING_LOAN_CHECKBOX = "NEP001_S001_H005"; + String REALTY_TYPE_INPUT = "NEP001_S001_C002"; + String OWNERSHIP_TYPE_INPUT = "NEP001_S001_C004"; + String LOAN_PURPOSE_INPUT = "NEP001_S001_C001"; + String FIXATION_INPUT = "NEP001_S001_C006"; + String FIRST_COAPPLICANT_LABEL = "//label[@for='NEP001_S001_H003_1']"; + String SECOND_COAPPLICANT_LABEL = "//label[@for='NEP001_S001_H004_1']"; + String FILL_FIRST_COAPPLICANT_BUTTON = "NEP001_S001_B005"; + String FILL_SECOND_COAPPLICANT_BUTTON = "NEP001_S001_B006"; + String EXPEL_FIRST_CO_APPLICANT_BUTTON = "NEP001_S001_B007"; + + @Select(FIRST_COAPPLICANT_RELATIONSHIP_SELECT) + NEP001_S001_NewExpressPage selectFirstCoApplicantRelationshipToMainApplicant(String relationship); + + @Select(SECOND_COAPPLICANT_RELATIONSHIP_SELECT) + NEP001_S001_NewExpressPage selectSecondCoApplicantRelationshipToMainApplicant(String relationship); + + @TypeInto(value = AMOUNT_INPUT, clear = true) //TODO remove clear after fix + @Click(value = AMOUNT_DIV, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP001_S001_NewExpressPage fillAmount(int amount); + + @CustomAction + default NEP001_S001_NewExpressPage selectTerm(int term) { + UfoEndpoint e = getEndpoint(UfoEndpoint.class); + e.click(() -> NUMBER_OF_INSTALLMENTS_SELECT); + if (e.isElementVisible(0, String.format(TERM_OPTION_XPATH, term), Lookup.XPATH)) { + e.click(() -> String.format(TERM_OPTION_XPATH, term), Lookup.XPATH); + e.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + } else { + e.click(() -> String.format(TERM_OPTION_XPATH, 0), Lookup.XPATH); + e.type(() -> CUSTOM_TERM_INPUT, String.valueOf(term), false); + e.click(() -> AMOUNT_INPUT); + e.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + } + return null; + } + + @Click(NUMBER_OF_INSTALLMENTS_SELECT) + NEP001_S001_NewExpressPage clickNumberOfInstallments(); + + @Select(NUMBER_OF_INSTALLMENTS_SELECT) + @Click(value = NUMBER_OF_INSTALLMENTS_SELECT, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP001_S001_NewExpressPage selectNumberOfInstallments(int number); + + @Click(value = CALCULATE_INSTALLMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP001_S001_NewExpressPage clickCalculateInstallment(); + + @Click(value = CONTINUE_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP001_S001_NewExpressPageTransitions clickContinue(); + + @Click(value = NO_EXTERNAL_PARTNER_CHECKBOX_XPATH, jsClick = true) + NEP001_S001_NewExpressPage clickNoExternalPartnerCheckbox(); + + @Click(value = HOUSING_LOAN_CHECKBOX, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP001_S001_NewExpressPage clickHousingLoanCheckbox(); + + @Select(value = REALTY_TYPE_INPUT, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP001_S001_NewExpressPage selectRealityType(String realityType); + + @Select(value = OWNERSHIP_TYPE_INPUT, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP001_S001_NewExpressPage selectOwnershipType(String ownershipType); + + @Select(value = FIXATION_INPUT, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP001_S001_NewExpressPage selectFixation(String fixation); + + @Select(LOAN_PURPOSE_INPUT) + NEP001_S001_NewExpressPage selectLoanPurposeType(String loanPurpose); + + //label because checkbox input has height and width 0px + @Click(value = FIRST_COAPPLICANT_LABEL, by = Lookup.XPATH) + NEP001_S001_NewExpressPage clickFirstCoApplicant(); + + //label because checkbox input has height and width 0px + @Click(value = SECOND_COAPPLICANT_LABEL, by = Lookup.XPATH) + NEP001_S001_NewExpressPage clickSecondCoApplicant(); + + @Click(FILL_FIRST_COAPPLICANT_BUTTON) + HLE001_S001_CoApplicantSearchPage clickFillFirstCoApplicant(); + + @Click(FILL_SECOND_COAPPLICANT_BUTTON) + HLE001_S001_CoApplicantSearchPage clickFillSecondCoApplicant(); + + @Click(value = EXPEL_FIRST_CO_APPLICANT_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP001_S001_NewExpressPage clickExpelCoApplicant(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP001_S001_NewExpressPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP001_S001_NewExpressPageTransitions.java new file mode 100644 index 0000000..879949a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP001_S001_NewExpressPageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.expres; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NEP001_S001_NewExpressPageTransitions extends WebFlow { + + DOK001_S001_SelectionOfSubmittedDocumentsPage onIdSelectionPage(); + + NEP002_S001_ApplicantPage onApplicantPage(); + + NEP063_S001_RealityPage onRealityPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP006_S001_ExpressScoringResultPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP006_S001_ExpressScoringResultPage.java new file mode 100644 index 0000000..af07ce2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP006_S001_ExpressScoringResultPage.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.expres; + +import cz.moneta.test.dsl.ufo.banka.pages.requests.*; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage.*; +import static cz.moneta.test.dsl.ufo.banka.tasks.expres.ExpressTasks.APPL_KEY_STORE_KEY; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +@Wait({APP_KEY_DIV, APP_ID_DIV, APP_STAT_DIV}) +@Log(value = APP_ID_DIV, template = "APP ID is {}") +@Log(value = APP_STAT_DIV, template = "APP State is {}") +public interface NEP006_S001_ExpressScoringResultPage extends WebFlow, StoreAccessor, SharedElements { + + String PAGE_ID_XPATH = "//div[text()='NEP006_S001']"; + String APP_ID_DIV = "NEP006_S001_L030"; + String APP_ID_STORE = "APP_ID_STORE"; + String APP_KEY_DIV = "NEP006_S001_L007"; + String APP_KEY_STORE = "APP_KEY_STORE"; + String APP_STAT_DIV = "NEP006_S001_L015"; + String STATUS_GENERAL_XPATH = "//div[@id='NEP006_S001_L015' and contains(text(), '%s')]"; + String APP_STAT_STORE = "APP_STAT_STORE"; + String END_BUTTON = "NEP006_S001_B002"; + String CREATE_ACCOUNTS_BUTTON = "NEP006_S001_B005"; + String CREATE_ACCOUNT_BUTTON_XPATH = "//button[@id='" + CREATE_ACCOUNTS_BUTTON + "' and not(@disabled)]"; + String RELOAD_PAGE_BUTTON = "NEP006_S001_S001"; + String CANCEL_BUTTON = "NEP006_S001_B006"; + String UPLOAD_DOCUMENTS_BUTTON = "NEP006_S001_B011"; + String FINISH_REQUEST_BUTTON = "NEP006_S001_B008"; + + @StoreElementContent(storeKey = APP_KEY_STORE, value = APP_KEY_DIV) + NEP006_S001_ExpressScoringResultPage storeAppKey(); + + @Log(value = APP_ID_DIV, template = "Client Express Application ID is {}") + @StoreElementContent(storeKey = APP_ID_STORE, value = APP_ID_DIV) + NEP006_S001_ExpressScoringResultPage storeAppId(); + + @StoreElementContent(storeKey = APP_STAT_STORE, value = APP_STAT_DIV) + NEP006_S001_ExpressScoringResultPage storeAppStat(); + + @Wait(APP_STAT_DIV) + @Log(value = APP_STAT_DIV, template = "APP State is {}") + NEP006_S001_ExpressScoringResultPage logAppState(); + + @GetElementContent(APP_KEY_DIV) + String getAppKey(); + + @GetElementContent(APP_ID_DIV) + String getAppId(); + + @GetElementContent(APP_STAT_DIV) + String getAppStat(); + + @Click(END_BUTTON) + NEP006_S001_ExpressScoringResultPageTransitions clickEnd(); + + @Click(CREATE_ACCOUNTS_BUTTON) + NEP006_S001_ExpressScoringResultPageTransitions clickCreateAccounts(); + + @CustomAction + default NEP006_S001_ExpressScoringResultPage waitForStatusAndRefresh(String status) {//TODO JBR - use enum + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + store(APPL_KEY_STORE_KEY, endpoint.getText(APP_KEY_DIV)); + endpoint.waitForElementAndRefresh(String.format(STATUS_GENERAL_XPATH, status), RELOAD_PAGE_BUTTON, Lookup.XPATH, Lookup.DEFAULT, 240, 15); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CustomAction + default NEP006_S001_ExpressScoringResultPage waitForActiveCreateAccountButton() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementAndRefresh(CREATE_ACCOUNT_BUTTON_XPATH, RELOAD_PAGE_BUTTON, Lookup.XPATH, Lookup.DEFAULT,300, 10); + return null; + } + + @Click(CANCEL_BUTTON) + NEP013_S001_RequestCancellationPage clickCancelButton(); + + @Click(UPLOAD_DOCUMENTS_BUTTON) + NEP016_S021_DocumentedEvidenceListPage clickFillInDocuments(); + + @Click(FINISH_REQUEST_BUTTON) + NEP044_S001_FinishRequestCreatedByClientInInternetPage clickFinishRequestButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP006_S001_ExpressScoringResultPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP006_S001_ExpressScoringResultPageTransitions.java new file mode 100644 index 0000000..5f6a412 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP006_S001_ExpressScoringResultPageTransitions.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.expres; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP017_S014_SelectApprovedVariantsPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.PSI001_S050_PreContractualInformationPrintedPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NEP006_S001_ExpressScoringResultPageTransitions extends WebFlow { + + HKO101_S001_MainClientPage onMainClientPage(); + + BAL006_S002_ClientRequestPage onListOfRequestsPage(); + + NEP017_S014_SelectApprovedVariantsPage onSelectApprovedVariantPage(); + + PSI001_S050_PreContractualInformationPrintedPage onPreContractualInformationPrintedPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP009_S001_Existing_ApplicationsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP009_S001_Existing_ApplicationsPage.java new file mode 100644 index 0000000..cf5b3d1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP009_S001_Existing_ApplicationsPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.expres; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP009_S001_Existing_ApplicationsPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP009_S001_Existing_ApplicationsPage.PAGE_ID; + +@Wait({PAGE_ID, CONTINUE_BUTTON}) +public interface NEP009_S001_Existing_ApplicationsPage extends WebFlow { + + String PAGE_ID = "XXX001_T001_L005"; + String CONTINUE_BUTTON = "NEP009_S001_B002"; + + @Click(CONTINUE_BUTTON) + NEP001_S001_NewExpressPage clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP063_S001_RealityPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP063_S001_RealityPage.java new file mode 100644 index 0000000..3862060 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/NEP063_S001_RealityPage.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.expres; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +public interface NEP063_S001_RealityPage extends WebFlow, NEP002_S001_ApplicantPageTransitions, SharedElements { + String SAME_ADDRESS_AS_PERMANENT_CHECKBOX = "NEP063_S001_H001"; + String REALITY_ADDRESS_STREET_INPUT = "NEP063_S001_E002"; + String REALITY_ADDRESS_DESCRIPTIVE_NUMBER_INPUT = "NEP063_S001_E003"; + String REALITY_ADDRESS_ORIENTATION_NUMBER_INPUT = "NEP063_S001_E009"; + String REALITY_ADDRESS_CITY_INPUT = "NEP063_S001_E010"; + String REALITY_ADDRESS_ZIP_INPUT = "NEP063_S001_E011"; + String REALITY_ADDRESS_APARTMENT_NUMBER_INPUT = "NEP063_S001_E012"; + String REALTY_LAND_REGISTRY_AREA_INPUT = "NEP063_S001_E005"; + String REALITY_REALTY_PLOT_NUMBER_INPUT = "NEP063_S001_E006"; + String FIND_REALTY_LAND_REGISTRY_AREA_BUTTON = "NEP063_S001_B005"; + String CONFIRM_REALITY_OWNERSHIP_CHECKBOX = "NEP063_S001_H005"; + + String CONTINUE_BUTTON = "NEP063_S001_B001"; + + @Click(value = SAME_ADDRESS_AS_PERMANENT_CHECKBOX, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP063_S001_RealityPage clickSameAddress(); + + @TypeInto(REALITY_ADDRESS_STREET_INPUT) + NEP063_S001_RealityPage fillRealityAddressStreet(String realityAddressStreet); + + @TypeInto(REALITY_ADDRESS_DESCRIPTIVE_NUMBER_INPUT) + NEP063_S001_RealityPage fillRealityAddressDescriptiveNumber(String realityAddressDescriptiveNumber); + + @TypeInto(REALITY_ADDRESS_ORIENTATION_NUMBER_INPUT) + NEP063_S001_RealityPage fillRealityAddressOrientationNumber(String realityAddressOrientationNumber); + + @TypeInto(REALITY_ADDRESS_CITY_INPUT) + NEP063_S001_RealityPage fillRealityAddressCity(String realityAddressCity); + + @TypeInto(REALITY_ADDRESS_ZIP_INPUT) + NEP063_S001_RealityPage fillRealityAddressZip(String realityAddressZip); + + @TypeInto(REALITY_ADDRESS_APARTMENT_NUMBER_INPUT) + NEP063_S001_RealityPage fillRealityAddressApartmentNumber(String realityAddressApartmentNumber); + + @TypeInto(REALTY_LAND_REGISTRY_AREA_INPUT) + NEP063_S001_RealityPage fillRealityLandRegistryArea(String realityLandRegistryArea); + + @TypeInto(REALITY_REALTY_PLOT_NUMBER_INPUT) + NEP063_S001_RealityPage fillRealityPlotNumber(String realityPlotNumber); + + @Click(value = FIND_REALTY_LAND_REGISTRY_AREA_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NEP063_S001_RealityPage clickFindRealityLandRegistryArea(); + + @Click(CONFIRM_REALITY_OWNERSHIP_CHECKBOX) + NEP063_S001_RealityPage clickConfirmRealityCheck(); + + @Click(CONTINUE_BUTTON) + DOK001_S001_SelectionOfSubmittedDocumentsPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/OPN008_S001_ExpressSignaturePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/OPN008_S001_ExpressSignaturePage.java new file mode 100644 index 0000000..7bd94f5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/expres/OPN008_S001_ExpressSignaturePage.java @@ -0,0 +1,43 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.expres; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.expres.OPN008_S001_ExpressSignaturePage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH, waitSecondsForElement = 40) +public interface OPN008_S001_ExpressSignaturePage extends WebFlow, StoreAccessor, SharedElements { + + String PAGE_ID_XPATH = "//div[text()='OPN008_S001']"; + String APPLICANT_SIGNATURE_CHECKBOX = "OPN008_S001_G001-0"; + String YES_BUTTON = "OPN008_S001_B001"; + String CHECK_BUTTON = "OPN008_S001_B005"; + String CONFIRM_BUTTON = "OPN008_S001_B006"; + + @Click(APPLICANT_SIGNATURE_CHECKBOX) + OPN008_S001_ExpressSignaturePage clickApplicantCheckbox(); + + @Click(value = YES_BUTTON, + andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + OPN008_S001_ExpressSignaturePage clickYes(); + + @CustomAction + default OPN008_S001_ExpressSignaturePage clickYesAndDismissAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> YES_BUTTON); + endpoint.dismissAlert(40); + endpoint.waitForElementsToLoad(40, Until.VISIBLE, CHECK_BUTTON); + return null; + } + + @Click(value = CHECK_BUTTON, + andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + OPN008_S001_ExpressSignaturePage clickCheck(); + + @Click(CONFIRM_BUTTON) + CAS001_S001_ScoringPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/HPO003_FlexikreditDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/HPO003_FlexikreditDetailPage.java new file mode 100644 index 0000000..3eac0ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/HPO003_FlexikreditDetailPage.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.HPO003_FlexikreditDetailPage.BACK_BUTTON; + +@Wait(BACK_BUTTON) +public interface HPO003_FlexikreditDetailPage extends WebFlow, StoreAccessor { + + String BACK_BUTTON = "HPO003_S001_S014"; + String DECLIP_BUTTON = "HPO003_S001_B006"; + String AMOUNT_DIV = "HPO003_S001_L004"; + String INTEREST_DIV = "HPO003_S001_L010"; + String PENALTY_RATE_DIV = "HPO003_S001_L011"; + String ACCOUNTING_CHARGE_DIV = "HPO003_S001_L012"; + + @Click(BACK_BUTTON) + HKO101_S001_MainClientPage clickBackButton(); + + @Click(DECLIP_BUTTON) + NFL008_FlexiCreditDeclipPage clickDeclipButton(); + + @CheckElementContent(AMOUNT_DIV) + HPO003_FlexikreditDetailPage checkAmount(String amount); + + @CheckElementContent(INTEREST_DIV) + HPO003_FlexikreditDetailPage checkInterest(String interest); + + @CustomAction + default HPO003_FlexikreditDetailPage checkPenaltyRateNotEmpty() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNotEquals("", endpoint.getText(PENALTY_RATE_DIV)); + return null; + } + + @CustomAction + default HPO003_FlexikreditDetailPage checkAccountingChargeNotEmpty() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNotEquals("", endpoint.getText(ACCOUNTING_CHARGE_DIV)); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL001_S004_FlexikreditScoringApplicationjIdentificationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL001_S004_FlexikreditScoringApplicationjIdentificationPage.java new file mode 100644 index 0000000..613d782 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL001_S004_FlexikreditScoringApplicationjIdentificationPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit; + +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL001_S004_FlexikreditScoringApplicationjIdentificationPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface NFL001_S004_FlexikreditScoringApplicationjIdentificationPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='NFL001_S004']"; + String CONTINUE_BUTTON = "NFL001_S004_B002"; + + @Click(CONTINUE_BUTTON) + DOK001_S001_SelectionOfSubmittedDocumentsPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL006_S001_FlexikreditScoringResultPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL006_S001_FlexikreditScoringResultPage.java new file mode 100644 index 0000000..7234af0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL006_S001_FlexikreditScoringResultPage.java @@ -0,0 +1,81 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage.APP_ID_DIV; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage.APP_KEY_DIV; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage.NFL006_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.harness.support.web.Lookup.DEFAULT; +import static cz.moneta.test.harness.support.web.Lookup.XPATH; + +@Wait(value = NFL006_S001_PAGE_LABEL_XPATH, waitSecondsForElement = 60, by = XPATH) +@Wait(value = {APP_KEY_DIV, APP_ID_DIV}, waitSecondsForElement = 60) +public interface NFL006_S001_FlexikreditScoringResultPage extends WebFlow, StoreAccessor, SharedElements, NFL006_S001_FlexikreditScoringResultPageTransitions { + + String NFL006_S001_PAGE_LABEL_XPATH = "//div[text()='NFL006_S001']"; + String APPROVED_TABLE_AMOUNT_KEY = "APPROVED_TABLE_AMOUNT"; + String APPROVED_TABLE_INTEREST_KEY = "APPROVED_TABLE_INTEREST"; + String APP_ID_DIV = "NFL006_S001_L030"; + String APP_ID_STORE = "APP_ID_STORE"; + String APP_KEY_DIV = "NFL006_S001_L018"; + String APP_KEY_STORE = "APP_KEY_STORE"; + String APP_STAT_DIV = "NFL006_S001_L015"; + String STATUS_GENERAL_XPATH = "//div[@id='NFL006_S001_L015' and contains(text(), '%s')]"; + String APP_STAT_STORE = "APP_STAT_STORE"; + String END_BUTTON = "NFL006_S001_B002"; + String RELOAD_BUTTON = "NFL006_S001_S001"; + String FOUNDATION_PRINT_CONTRACT_BUTTON = "NFL006_S001_B005"; + String APPROVED_TABLE_AMOUNT_XPATH = "//table[@id='NFL006_S001_G002_UfoTable']//tbody//td[1]"; + String APPROVED_TABLE_INTEREST_XPATH = "//table[@id='NFL006_S001_G002_UfoTable']//tbody//td[5]"; + + @StoreElementContent(storeKey = APP_KEY_STORE, value = APP_KEY_DIV) + NFL006_S001_FlexikreditScoringResultPage storeAppKey(); + + @GetElementContent(APP_KEY_DIV) + String getAppKey(); + + @Log(value = APP_ID_DIV, template = "Client Flexikredit application ID is {}") + @StoreElementContent(storeKey = APP_ID_STORE, value = APP_ID_DIV) + NFL006_S001_FlexikreditScoringResultPage storeAppId(); + + @GetElementContent(APP_ID_DIV) + String getAppId(); + + @StoreElementContent(storeKey = APP_STAT_STORE, value = APP_STAT_DIV) + NFL006_S001_FlexikreditScoringResultPage storeAppStat(); + + @CheckElementContent(APP_STAT_DIV) + NFL006_S001_FlexikreditScoringResultPage checkApplicationState(String expectedState); + + @GetElementContent(APP_STAT_DIV) + String getAppStat(); + + @Click(END_BUTTON) + NFL006_S001_FlexikreditScoringResultPageTransitions clickEnd(); + + @Click(value = RELOAD_BUTTON, + andWait = @Wait(value = {FOUNDATION_PRINT_CONTRACT_BUTTON}, until = Until.VISIBLE)) + NFL006_S001_FlexikreditScoringResultPage clickReloadButton(); + + @Click(FOUNDATION_PRINT_CONTRACT_BUTTON) + NFL006_S001_FlexikreditScoringResultPageTransitions clickFoundationPrintContractButton(); + + @CustomAction + default NFL006_S001_FlexikreditScoringResultPage waitForStatusAndRefresh(String status) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementAndRefresh(String.format(STATUS_GENERAL_XPATH, status), + RELOAD_BUTTON, XPATH, DEFAULT, 80, 15); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @StoreElementContent(storeKey = APPROVED_TABLE_AMOUNT_KEY, value = APPROVED_TABLE_AMOUNT_XPATH, by = XPATH) + NFL006_S001_FlexikreditScoringResultPage storeApprovedTableAmount(); + + @StoreElementContent(storeKey = APPROVED_TABLE_INTEREST_KEY, value = APPROVED_TABLE_INTEREST_XPATH, by = XPATH) + NFL006_S001_FlexikreditScoringResultPage storeApprovedTableInterest(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL006_S001_FlexikreditScoringResultPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL006_S001_FlexikreditScoringResultPageTransitions.java new file mode 100644 index 0000000..0df91e1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL006_S001_FlexikreditScoringResultPageTransitions.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.flexi.credit.NKK003_S001_SelectingApprovedVariantsPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.PSI001_S050_PreContractualInformationPrintedPage; +import cz.moneta.test.harness.support.web.Builder; + +public interface NFL006_S001_FlexikreditScoringResultPageTransitions extends Builder { + + HKO101_S001_MainClientPage onMainClientPage(); + + BAL006_S002_ClientRequestPage onListOfRequestsPage(); + + NKK003_S001_SelectingApprovedVariantsPage onSelectingApprovedVariantsPage(); + + PSI001_S050_PreContractualInformationPrintedPage onPreContractualInformationPrintedPage(); + + HPO003_FlexikreditDetailPage onFlexiCreditDetailPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL008_FlexiCreditDeclipPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL008_FlexiCreditDeclipPage.java new file mode 100644 index 0000000..cbdeeb6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/NFL008_FlexiCreditDeclipPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL008_FlexiCreditDeclipPage.LOAN_AMOUNT_INPUT; + +@Wait(LOAN_AMOUNT_INPUT) +public interface NFL008_FlexiCreditDeclipPage extends WebFlow { + + String LOAN_AMOUNT_INPUT = "NFL008_S001_E001"; + String SEND_BUTTON = "NFL008_S001_B002"; + + @TypeInto(LOAN_AMOUNT_INPUT) + NFL008_FlexiCreditDeclipPage fillLoanAmount(int amount); + + @Click(SEND_BUTTON) + NFL006_S001_FlexikreditScoringResultPage clickSendButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/ONC001_S001_NewFlexikreditPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/ONC001_S001_NewFlexikreditPage.java new file mode 100644 index 0000000..5a37725 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/ONC001_S001_NewFlexikreditPage.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.ONC001_S001_NewFlexikreditPage.*; + +@Wait(value = ONC001_S001_PAGE_LABEL_XPATH, waitSecondsForElement = 40, by = Lookup.XPATH) +@Wait(value = {AMOUNT_INPUT, SEND_BUTTON}, waitSecondsForElement = 40) +public interface ONC001_S001_NewFlexikreditPage extends WebFlow, ONC001_S001_NewFlexikreditPageTransitions, StoreAccessor { + + String ONC001_S001_PAGE_LABEL_XPATH = "//div[text()='ONC001_S001']"; + String SEND_BUTTON = "ONC001_S001_B001"; + String AMOUNT_INPUT = "ONC001_S001_E003"; + String NO_PROMO_CHECKBOX = "ONC001_S001_H004_1"; + String CHANGE_PARAMETERS_CHECKBOX = "ONC001_S001_H002_1"; + + @TypeInto(value = AMOUNT_INPUT, clear = true) + ONC001_S001_NewFlexikreditPage fillAmount(int amount); + + @TypeInto(value = AMOUNT_INPUT, clear = true) + @Click(SEND_BUTTON) + @AcceptAlert(waitSecondsForAlert = 2, expectedAlertText = "Výše rámce pro Flexikredit musí být v rozmezí 2 000 Kč až 100 000 Kč") + ONC001_S001_NewFlexikreditPage checkAlertMessageAfterFillingAmountOutsideOfRange(int amount); + + @CustomAction + default ONC001_S001_NewFlexikreditPage clickNoPromoIfVisible() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(1, NO_PROMO_CHECKBOX, Lookup.ID)) { + endpoint.jsClick(() -> NO_PROMO_CHECKBOX, Lookup.ID); + } + return null; + } + + @Click(value = CHANGE_PARAMETERS_CHECKBOX, jsClick = true) + @AcceptAlert(waitSecondsForAlert = 2, expectedAlertText = "Žádost bude pořízena standardním způsobem, některé hodnoty budou předvyplněny") + ONC001_S001_NewFlexikreditPage clickChangeParameters(); + + @Click(SEND_BUTTON) + ONC001_S001_NewFlexikreditPageTransitions clickSend(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/ONC001_S001_NewFlexikreditPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/ONC001_S001_NewFlexikreditPageTransitions.java new file mode 100644 index 0000000..bf7a6a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/loans/flexikredit/ONC001_S001_NewFlexikreditPageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.harness.support.web.Builder; + +public interface ONC001_S001_NewFlexikreditPageTransitions extends Builder { + + DOK001_S001_SelectionOfSubmittedDocumentsPage onIdSelectionPage(); + + NEP002_S001_ApplicantPage onApplicantPage(); + + NFL001_S004_FlexikreditScoringApplicationjIdentificationPage onFlexikreditScoringApplicationIdentificationPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/ADC012_S001_SettingADC.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/ADC012_S001_SettingADC.java new file mode 100644 index 0000000..5f31080 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/ADC012_S001_SettingADC.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.ADC012_S001_SettingADC.SETTING_ADC_PAGE_LABEL; + +@Wait(value= SETTING_ADC_PAGE_LABEL, by= Lookup.XPATH, waitSecondsForElement = 60) +public interface ADC012_S001_SettingADC extends WebFlow { + + String SETTING_ADC_PAGE_LABEL = "//div[text()='ADC012_S001']"; + String SAVE_BUTTON = "ADC012_S001_B003"; + + @Click(SAVE_BUTTON) + ADC012_S001_SettingADCTransitions clickSave(); + + @Click(SAVE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 5) + ADC012_S001_SettingADCTransitions clickSaveAndAcceptAlert(); + + @Click(SAVE_BUTTON) + OBR001_S001_PrintInstructionPage clickSaveAndGoToDispositionGeneratePage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/ADC012_S001_SettingADCTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/ADC012_S001_SettingADCTransitions.java new file mode 100644 index 0000000..6d10b39 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/ADC012_S001_SettingADCTransitions.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS011_OBR001_SuspendDispositionPrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.KAK001_OBR001_ClientCardSentByEmailPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.TIS051_S001_DispositionGeneratePage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ADC012_S001_SettingADCTransitions extends WebFlow { + + TIS011_OBR001_PrintOptionsPage onPrintOptionsPage(); + + TIS011_OBR001_SuspendDispositionPrintPage onDispositionPrintPage(); + + TIS051_S001_DispositionGeneratePage onDispositionGeneratePage(); + + HKO101_S001_MainClientPage onMainClientPage(); + + KAK001_OBR001_ClientCardSentByEmailPage onClientCardSentByEmailPage(); + + TIS046_S001_DocumentsProvidedToClientPage onDocumentsProvidedToClientPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL001_S008_SummaryStartDocumentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL001_S008_SummaryStartDocumentsPage.java new file mode 100644 index 0000000..6fbab42 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL001_S008_SummaryStartDocumentsPage.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage.*; + +@Wait(value = BAL001_S008_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 100) +@Wait(value = {CONTINUE_BUTTON, PRODUCTS_TABLE}, waitSecondsForElement = 100) +public interface BAL001_S008_SummaryStartDocumentsPage extends WebFlow { + String BAL001_S008_PAGE_LABEL_XPATH = "//div[text()='BAL001_S008']"; + String CONTINUE_BUTTON = "BAL001_S008_B004"; + String NEW_CURRENT_ACCOUNT_NUMBER_XPATH = "//table[@id='BAL001_S008_G002_UfoTable']//td[text()='BÚ']/parent::tr/td[4]"; + String NEW_SAVING_ACCOUNT_NUMBER_XPATH = "//table[@id='BAL001_S008_G002_UfoTable']//td[text()='SÚ Genius']/parent::tr/td[4]"; + String FIRST_NEW_PRODUCT_TITLE_XPATH = "//table[@id='BAL001_S008_G002_UfoTable']//td[1]"; + String NEW_SAVING_ACCOUNT_GOLD_NUMBER_XPATH = "//table[@id='BAL001_S008_G002_UfoTable']//td[text()='SÚ']/parent::tr/td[4]"; + String NEW_MUTUAL_FUNDS_NUMBER_XPATH = "//table[@id='BAL001_S008_G002_UfoTable']//td[text()='Podílové fondy']/parent::tr/td[4]"; + String NEW_MUTUAL_FUNDS_NUMBER = "BAL001_S008_B004"; + String NEW_ONE_TIME_TERM_DEPOSIT_NUMBER_XPATH = "//table[@id='BAL001_S008_G002_UfoTable']//td[text()='JTV']/parent::tr/td[4]"; + String NEW_ONE_TIME_TERM_DEPOSIT_NUMBER = ""; + String NEW_BANKKLIENT_NUMBER_XPATH = "//table[@id='BAL001_S008_G002_UfoTable']//td[text()='BKK']/parent::tr/td[4]"; + String NEW_BANKKLIENT_NUMBER = "BAL001_S008_B004"; + String PRODUCTS_TABLE = "BAL001_S008_G002_UfoTable"; + + String ACCOUNT_NUMBER_KEY = "ACCOUNT_NUMBER"; + + @GetElementContent(NEW_CURRENT_ACCOUNT_NUMBER_XPATH) + String getBu(); + + @StoreElementContent(storeKey = ACCOUNT_NUMBER_KEY, value = NEW_CURRENT_ACCOUNT_NUMBER_XPATH, by = Lookup.XPATH) + @Log(value = NEW_CURRENT_ACCOUNT_NUMBER_XPATH, template = "Client current account number is {}", by = Lookup.XPATH) + BAL001_S008_SummaryStartDocumentsPage storeCurrentAccountNumber(); + + @Click(CONTINUE_BUTTON) + BAL001_S008_SummaryStartDocumentsPageTransitions clickContinue(); + + @Log(value = NEW_CURRENT_ACCOUNT_NUMBER_XPATH, by = Lookup.XPATH, template = "New current account number is {}") + @StoreElementContent(storeKey = ACCOUNT_NUMBER_KEY, value = NEW_CURRENT_ACCOUNT_NUMBER_XPATH, by = Lookup.XPATH) + BAL001_S008_SummaryStartDocumentsPage logAccountNumber(); + + @Log(value = NEW_SAVING_ACCOUNT_NUMBER_XPATH, by = Lookup.XPATH, template = "New saving account number is {}") + BAL001_S008_SummaryStartDocumentsPage logSavingAccountNumber(); + + @CheckElementContent(value = FIRST_NEW_PRODUCT_TITLE_XPATH, by = Lookup.XPATH) + BAL001_S008_SummaryStartDocumentsPage checkFirstNewProdcutTitle(String expectedTitle); + + @Log(value = NEW_SAVING_ACCOUNT_GOLD_NUMBER_XPATH, by = Lookup.XPATH, template = "New saving account number is {}") + BAL001_S008_SummaryStartDocumentsPage logSavingAccountGoldNumber(); + + @StoreElementContent(storeKey = NEW_MUTUAL_FUNDS_NUMBER, value = NEW_MUTUAL_FUNDS_NUMBER_XPATH, by = Lookup.XPATH) + @Log(value = NEW_MUTUAL_FUNDS_NUMBER_XPATH, template = "Client mutual funds number is {}", by = Lookup.XPATH) + BAL001_S008_SummaryStartDocumentsPage storeMutualFundsNumber(); + + @StoreElementContent(storeKey = NEW_ONE_TIME_TERM_DEPOSIT_NUMBER, value = NEW_ONE_TIME_TERM_DEPOSIT_NUMBER_XPATH, by = Lookup.XPATH) + @Log(value = NEW_ONE_TIME_TERM_DEPOSIT_NUMBER_XPATH, template = "Client one time term deposit number is {}", by = Lookup.XPATH) + BAL001_S008_SummaryStartDocumentsPage storeOneTimeTermDepositNumber(); + + @StoreElementContent(storeKey = NEW_BANKKLIENT_NUMBER, value = NEW_BANKKLIENT_NUMBER_XPATH, by = Lookup.XPATH) + @Log(value = NEW_BANKKLIENT_NUMBER_XPATH, template = "Client bankklient number is {}", by = Lookup.XPATH) + BAL001_S008_SummaryStartDocumentsPage storeBankklientNumber(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL001_S008_SummaryStartDocumentsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL001_S008_SummaryStartDocumentsPageTransitions.java new file mode 100644 index 0000000..2b8bb60 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL001_S008_SummaryStartDocumentsPageTransitions.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.KUL045_OBR001_WantToStartExpresBusinessPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface BAL001_S008_SummaryStartDocumentsPageTransitions extends WebFlow { + + HKO101_S001_MainClientPage onMainClientPage(); + + KUL045_OBR001_WantToStartExpresBusinessPage onWantToStartExpresBusinessPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + OBR003_S001_ClientContractSignPage onOpFoundPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL021_S002_SummaryOfProductFoundationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL021_S002_SummaryOfProductFoundationPage.java new file mode 100644 index 0000000..568f5f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL021_S002_SummaryOfProductFoundationPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.BAL021_S002_SummaryOfProductFoundationPage.BAL021_S002_PAGE_LABEL_XPATH; + +@Wait(value = BAL021_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface BAL021_S002_SummaryOfProductFoundationPage extends WebFlow { + String BAL021_S002_PAGE_LABEL_XPATH = "//div[text()='BAL021_S002']"; + String ONE_CLICK_LABEL = "BAL021_S002_L004"; + String OK_BUTTON = "BAL021_S002_B001"; + + @CheckElementContent(value = ONE_CLICK_LABEL) + BAL021_S002_SummaryOfProductFoundationPage checkTextLabelContent(String productName); + + @Click(OK_BUTTON) + BAL021_S002_SummaryOfProductFoundationPageTransitions clickOk(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL021_S002_SummaryOfProductFoundationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL021_S002_SummaryOfProductFoundationPageTransitions.java new file mode 100644 index 0000000..67f5d50 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL021_S002_SummaryOfProductFoundationPageTransitions.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL015_S001_PackageDetail; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface BAL021_S002_SummaryOfProductFoundationPageTransitions extends WebFlow { + + HKO101_S001_MainClientPage onMainClientPage(); + + BAL015_S001_PackageDetail onPackageDetailPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL035_S002_SummaryOfProductFoundationRetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL035_S002_SummaryOfProductFoundationRetailPage.java new file mode 100644 index 0000000..95dc8ba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL035_S002_SummaryOfProductFoundationRetailPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.BAL035_S002_SummaryOfProductFoundationRetailPage.BAL035_S002_PAGE_LABEL_XPATH; + +@Wait(value = BAL035_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface BAL035_S002_SummaryOfProductFoundationRetailPage extends WebFlow, StoreAccessor { + String BAL035_S002_PAGE_LABEL_XPATH = "//div[text()='BAL035_S002']"; + + String REQUEST_SWITCHING_CHECKBOX = "BAL035_S002_H005_1"; + String ARRANGE_APPOINTMENT_CHECKBOX = "BAL035_S002_H006_1"; + String ARRANGE_APPOINTMENT_XPATH = "//input[@name='BAL035_S002_H006']"; + String OK_BUTTON = "BAL035_S002_B001"; + + @Click(value = ARRANGE_APPOINTMENT_CHECKBOX, jsClick = true) + BAL035_S002_SummaryOfProductFoundationRetailPage clickArrangeAppointmentCheckbox(); + + @CustomAction + default BAL035_S002_SummaryOfProductFoundationRetailPage clickArrangeAppointmentIfChecked() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.getAttribute(ARRANGE_APPOINTMENT_XPATH, Lookup.XPATH, "value").equals("1")) { + endpoint.jsClick(() -> ARRANGE_APPOINTMENT_CHECKBOX); + } + return null; + } + + @Click(REQUEST_SWITCHING_CHECKBOX) + BAL035_S002_SummaryOfProductFoundationRetailPage clickRequestSwitchingCheckbox(); + + @Click(OK_BUTTON) + BAL035_S002_SummaryOfProductFoundationRetailTransitionPage clickContinueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL035_S002_SummaryOfProductFoundationRetailTransitionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL035_S002_SummaryOfProductFoundationRetailTransitionPage.java new file mode 100644 index 0000000..83d81a1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/BAL035_S002_SummaryOfProductFoundationRetailTransitionPage.java @@ -0,0 +1,8 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.support.web.WebFlow; + +public interface BAL035_S002_SummaryOfProductFoundationRetailTransitionPage extends WebFlow { + + HKO101_S001_MainClientPage onMainClientPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/DMS002_S001_ClientDocumentation.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/DMS002_S001_ClientDocumentation.java new file mode 100644 index 0000000..f259f46 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/DMS002_S001_ClientDocumentation.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.DMS002_S001_ClientDocumentation.NEW_SCAN; + +@Wait(value = NEW_SCAN, waitSecondsForElement = 40) +public interface DMS002_S001_ClientDocumentation extends WebFlow { + + String NEW_SCAN = "DMS002_S001_B007"; + String END = "DMS002_S001_B001"; + + @Click(NEW_SCAN) + DMS001_S001_ScanDocumentsPage clickScanDocuments(); + + @Click(END) + HKO101_S001_MainClientPage clickEnd(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/DOK001_S001_SelectionOfSubmittedDocumentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/DOK001_S001_SelectionOfSubmittedDocumentsPage.java new file mode 100644 index 0000000..fd2b71e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/DOK001_S001_SelectionOfSubmittedDocumentsPage.java @@ -0,0 +1,52 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage.DOCUMENTS_CHECK_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage.DOK001_S001_PAGE_LABEL_XPATH; + +@Wait(value = DOK001_S001_PAGE_LABEL_XPATH, waitSecondsForElement = 60, by = Lookup.XPATH) +@Wait(DOCUMENTS_CHECK_BUTTON) +public interface DOK001_S001_SelectionOfSubmittedDocumentsPage extends WebFlow, DOK001_S001_SelectionOfSubmittedDocumentsTransitions, StoreAccessor { + + String DOK001_S001_PAGE_LABEL_XPATH = "//div[text()='DOK001_S001']"; + String ID_CARD_RADIO = "DOK001_S001_G001-0"; + String PASSPORT_RADIO = "DOK001_S001_G002-0"; + String DRIVER_LICENSE_RADIO = "DOK001_S001_G002-1"; + String DOCUMENTS_CHECK_BUTTON = "DOK001_S001_B004"; + String ENABLED_CONTINUE_BUTTON_XPATH = "//button[@id='DOK001_S001_B001' and not(@disabled)]"; + String CONTINUE_BUTTON = "DOK001_S001_B001"; + String EDIT_CIF_BUTTON = "DOK001_S001_B002"; + + @Click(ID_CARD_RADIO) + DOK001_S001_SelectionOfSubmittedDocumentsPage selectIdCardRadio(); + + @Click(value = PASSPORT_RADIO, andWait = @Wait(value = DOCUMENTS_CHECK_BUTTON, until = Until.CLICKABLE)) + DOK001_S001_SelectionOfSubmittedDocumentsPage selectPassportRadio(); + + @Click(value = DRIVER_LICENSE_RADIO, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + DOK001_S001_SelectionOfSubmittedDocumentsPage selectDriverLicenceRadio(); + + @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @Click(value = DOCUMENTS_CHECK_BUTTON, jsClick = true, andWait = @Wait(value = ENABLED_CONTINUE_BUTTON_XPATH, by = Lookup.XPATH)) + DOK001_S001_SelectionOfSubmittedDocumentsPage clickDocumentsCheckButton(); + + @Wait(CONTINUE_BUTTON) + @Click(value = CONTINUE_BUTTON, jsClick = true) + DOK001_S001_SelectionOfSubmittedDocumentsTransitions clickContinue(); + + @CustomAction + default DOK001_S001_SelectionOfSubmittedDocumentsTransitions clickDocumentsCheckAndContinue() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(30, Lookup.CLASSNAME, Until.GONE, SharedElements.LOAD_IMG_DIV_CLASS); + endpoint.click(() -> DOCUMENTS_CHECK_BUTTON); + endpoint.waitForElementsToLoad(30, Lookup.CLASSNAME, Until.GONE, SharedElements.LOAD_IMG_DIV_CLASS); + endpoint.waitForElementsToLoad(45, Until.VISIBLE, CONTINUE_BUTTON); + endpoint.checkElementContent(DOCUMENTS_CHECK_BUTTON, "Kontrola OK"); + endpoint.click(() -> CONTINUE_BUTTON); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/DOK001_S001_SelectionOfSubmittedDocumentsTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/DOK001_S001_SelectionOfSubmittedDocumentsTransitions.java new file mode 100644 index 0000000..f644a42 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/DOK001_S001_SelectionOfSubmittedDocumentsTransitions.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NEP002_CreditCardApplicantInformationPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK001_S007_QuickCreditCardApplicantDetailsPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPage; +import cz.moneta.test.harness.support.web.Builder; + +public interface DOK001_S001_SelectionOfSubmittedDocumentsTransitions extends Builder { + + NEP002_CreditCardApplicantInformationPage onCreditCardApplicantInformationPage(); + + NKK001_S007_QuickCreditCardApplicantDetailsPage onQuickCreditCardApplicationDetailsPage(); + + NPK001_S001_DebitCardRequestPage onDebitCardRequestPage(); + + NEP002_S001_ApplicantPage onCreditCardApplicantPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HKO101_S001_MainClientPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HKO101_S001_MainClientPage.java new file mode 100644 index 0000000..2a64382 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HKO101_S001_MainClientPage.java @@ -0,0 +1,338 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO039_S001_MbcDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.income.FIN001_S001_FinancialIncomeSummaryPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.HPO003_FlexikreditDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.adc.HPO008_S001_OnlineChannelsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ADR004_S001_EnterContactAddressPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.PVX043_S002_SignaturePatternsPage; +import cz.moneta.test.dsl.ufo.banka.pages.po.HPO018_S001_AdcPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.HPO001_S001_CurrentAccountDetailsPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.apache.commons.lang3.StringUtils; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.DMS002_S001_ClientDocumentation.NEW_SCAN; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, waitSecondsForElement = 120, by = Lookup.CLASSNAME) +@Wait(value = TABLE_NEW_PRODUCT, waitSecondsForElement = 120, by = Lookup.XPATH) +@Wait(value = {HKO101_S001_PAGE_LABEL_XPATH, NON_EMPTY_CIF_LABEL_XPATH}, waitSecondsForElement = 120, by = Lookup.XPATH) +@Wait(value = SERVICE_OPERATIONS_DIV, waitSecondsForElement = 120) +@StoreElementContent(storeKey = CLIENT_CIF_STORE_KEY, value = NON_EMPTY_CIF_LABEL_XPATH, by = Lookup.XPATH) +@Log(value = CIF_LABEL, template = "Client CIF is {}") +public interface HKO101_S001_MainClientPage extends WebFlow, StoreAccessor { + + String HKO101_S001_PAGE_LABEL_XPATH = "//div[text()='HKO101_S001']"; + String CLIENT_CIF_STORE_KEY = "CLIENT_CIF"; + String BIRTH_NUMBER_STORE_KEY = "BIRTH_NUMBER"; + String UFO_CLIENT_AVAILABLE_BALANCE_KEY = "UFO_CLIENT_AVAILABLE_BALANCE"; + String FULL_NAME_KEY = "FULL_NAME"; + String ICO_KEY = "ICO"; + String CLIENT_ID_KEY = "CLIENT_ID"; + String CURRENT_ACCOUNT_NUMBER = "CURRENT_ACCOUNT_NUMBER"; + String LOG_BUTTON = "XXX100_T001_X011"; + String COPY_LOG_BUTTON = "XXX100_T001_B003"; + String LOG_DATA_TEXTAREA = "//textarea[@id='XXX100_T001_M001']//following-sibling::input"; + String CIF_LABEL = "XXX001_T002_L101"; + String NON_EMPTY_CIF_LABEL_XPATH = "//div[@id='" + CIF_LABEL + "' and not(text()='')]"; + String BIRTHNUMBER_LABEL = "XXX001_T002_L110"; + String IDCARD_LABEL = "XXX001_T002_L112"; + String SEARCH_BUTTON = "HKO101_S001_S001"; + String EDIT_CIF = "HKO101_S001_S008"; + String ADDRESS_AND_STATEMENTS_DISTRIBUTION_DIV = "HKO101_S001_S009"; + String MENU_GROUP_SIGNATURE_PATTERNS = "HKO101_S001_I008"; + String SIGNATURE_PATTERNS = "HKO101_S001_S005"; + String SERVICE_OPERATIONS_DIV = "HKO101_S001_I005"; + String CLIENT_REQUESTS = "HKO101_S001_S003"; + String FINANCE_INFORMATION = "HKO101_S001_B037"; + String INCOME_MODULE = "HKO101_S001_I007"; + String ELECTRONIC_DOCUMENTATION = "HKO101_S001_S021"; + String FULL_NAME_LABEL = "XXX001_T002_L102"; + String ICO_LABEL = "XXX001_T002_L111"; + String ACTIVE_PRODUCTS_SPAN_XPATH = "//span[contains(@class, 'ufo-Tree-Item')]/span"; + String PRODUCT_GENERAL_INPUT_XPATH = "//table[@id='HKO101_S001_G001_UfoTable']//button[contains(@onclick, \"HKO101_S001_G001_onButtonClick('%s')\")]"; + String EMPOWERMENT_MODEL_ADC = "//span[contains(text(), 'Empowerment Model; Aktivní')]"; + String EXPRES_DETAIL = "//span[contains(text(), 'Expres')]//ancestor::div[@class='gwt-Tree']//span[contains(text(), '%s')]"; + String IB_MK_ADC = "//span[contains(text(), 'Internet Banka heslo/MK; Aktivní')]"; + String BANK_API_ADC = "//span[contains(text(), 'Bank API; Aktivní')]"; + String CURRENT_ACCOUNT_XPATH = "//span[contains(@class, 'ufo-Tree-Item')]/span[contains(text(), 'BÚ')]"; + String CURRENT_ACCOUNT_GENERAL_XPATH = "//span[contains(@class, 'ufo-Tree-Item')]/span[contains(text(), '%s')]"; + String NEW_ACCOUNT_NUMBER = "NEW_ACCOUNT_NUMBER"; + String CURRENT_ACCOUNT_ACTIVE_PRODUCT_XPATH = "//span[contains(text(), 'BÚ-FO- KONTO GENIUS')]"; + String ACTIVE_PRODUCT_GENERAL_XPATH = "//span[contains(text(), '%s')]"; + String ALL_ACTIVE_PRODUCTS = "//div[@class = 'gwt-Tree']/div[@class = 'gwt-TreeItemChildSpan' or @class = 'gwt-TreeItemChildSpanLast']"; + String PAGE_ID_DIV = "//div[@id='XXX100_T001_L008' and contains(text(), 'HKO101_S001')]"; + String ACTIVE_PRODUCT_XPATH = "//div[@id = 'HKO101_S001_T001']//span[contains(text(), '%s')]"; + String TABLE_NEW_PRODUCT = "//table[@id='HKO101_S001_G001_UfoTable']"; + String MBC_XPATH_LABEL = "//span[@class = 'ufo-Tree-Item gwt-TreeItem']/span[contains(text(),'Moneta Business Card')]"; + String KONTOKORENT_XPATH_LABEL = "//span[contains( text(), 'Kontokorent; GB nekom KTK')]"; + String FLEXI_KREDIT_XPATH_SPAN = "//span[contains( text(), 'FLEXIKREDIT')]"; + String FIRST_ACCOUNT_NUMBER_SPAN_XPATH = "//span[text()='Expres Business']/../../following-sibling::div//span/span"; + String ACCOUNT_NUMBER_SPAN_XPATH = "//span[text()='Expres Business']/../../following-sibling::div//span[contains(text(),'%s')]"; + String INSURANCE_PRODUCT_XPATH = "//div[@id='HKO101_S001_T001']//span[contains(text(), 'Pojištění')]/../../following-sibling::div"; + String SAVING_ACCOUNT_LABEL_XPATH = "//span[contains(text(),'SÚ_PRO_podnikání_6_PO')]"; + String DEBIT_CARD_XPATH = "//div[@id='HKO101_S001_T001']//span[text()[contains(.,'PK')]]"; + + @Click(value = ELECTRONIC_DOCUMENTATION, andWait = @Wait(NEW_SCAN)) + DMS002_S001_ClientDocumentation clickElectronicDocumentation(); + + @GetElementContent(CIF_LABEL) + String getCif(); + + @StoreElementContent(storeKey = CLIENT_ID_KEY, value = IDCARD_LABEL) + HKO101_S001_MainClientPage storeClientIdNumber(); + + @StoreElementContent(storeKey = BIRTH_NUMBER_STORE_KEY, value = BIRTHNUMBER_LABEL) + HKO101_S001_MainClientPage getBirthNumber(); + + @CheckElementContent(value = ACTIVE_PRODUCTS_SPAN_XPATH, by = Lookup.XPATH) + HKO101_S001_MainClientPage checkProductActive(String productName); + + @CheckElementPresent(value = ALL_ACTIVE_PRODUCTS, by = Lookup.XPATH) + HKO101_S001_MainClientPage verifyThatClientHasSomeActiveProducts(); + + @CustomAction + default HKO101_S001_MainClientPage verifyClientsProductsNotEmpty() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + Assertions.assertNotEquals("", endpoint.getText(ALL_ACTIVE_PRODUCTS, Lookup.XPATH)); + return null; + } + + @CheckElementPresent(value = SAVING_ACCOUNT_LABEL_XPATH, by = Lookup.XPATH) + HKO101_S001_MainClientPage verifySavingAccountEstablishedSuccessfully(); + + @StoreElementContent(storeKey = FULL_NAME_KEY, value = FULL_NAME_LABEL) + HKO101_S001_MainClientPage storeClientFullName(); + + @StoreElementContent(storeKey = ICO_KEY, value = ICO_LABEL) + HKO101_S001_MainClientPage storeIco(); + + @Click(EDIT_CIF) + HKO101_S001_MainClientPageTransitions clickEdit(); + + @Wait(value = TABLE_NEW_PRODUCT, waitSecondsForElement = 60, by = Lookup.XPATH) + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @Click(value = PRODUCT_GENERAL_INPUT_XPATH, by = Lookup.XPATH) + HKO101_S001_MainClientPageTransitions createNewProduct(HCisProductClass appType); + + @Wait(value = TABLE_NEW_PRODUCT, waitSecondsForElement = 60, by = Lookup.XPATH) + @CustomAction + default void createNewProductWithPossibleConsentPage(HCisProductClass appType) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.jsClick(() -> String.format(PRODUCT_GENERAL_INPUT_XPATH, appType.getValue()), Lookup.XPATH); + } + + @CustomAction + default HKO101_S001_MainClientPage clickSignaturePatterns() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> MENU_GROUP_SIGNATURE_PATTERNS); + endpoint.click(() -> SIGNATURE_PATTERNS); + return null; + } + + PVX043_S002_SignaturePatternsPage clickSignaturePatternsPage(); + + @CustomAction + default HKO101_S001_MainClientPage verifyThatCifIsValid() { + Assertions.assertTrue(StringUtils.isNotBlank(this.getCif())); + return null; + } + + @CustomAction + default void verifyThatCifIs(String expectedCif) { + Assertions.assertEquals(expectedCif, this.getCif(), "We got wrong CIF"); + } + + @CheckElementContent(BIRTHNUMBER_LABEL) + HKO101_S001_MainClientPage checkBirthNumberLabel(String expectedBirthNumber); + + @CheckElementContent(IDCARD_LABEL) + HKO101_S001_MainClientPage checkIdCardLabel(String expectedIdCard); + + @CustomAction + default HPO018_S001_AdcPage clickEmpowermentModel() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.jsClick(() -> EMPOWERMENT_MODEL_ADC, Lookup.XPATH); + endpoint.jsDoubleClick(() -> EMPOWERMENT_MODEL_ADC, Lookup.XPATH); + return null; + } + + @CustomAction + default HPO011_S001_ExpresDetailPage clickExpresDetail(String currentAccountNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String xpath = String.format(EXPRES_DETAIL, currentAccountNumber); + endpoint.jsClick(() -> xpath, Lookup.XPATH); + endpoint.jsDoubleClick(() -> xpath, Lookup.XPATH); + return null; + } + + @CustomAction + default HPO001_S001_CurrentAccountDetailsPage openCurrentAccountDetailPage() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.jsClick(() -> CURRENT_ACCOUNT_ACTIVE_PRODUCT_XPATH, Lookup.XPATH); + endpoint.jsDoubleClick(() -> CURRENT_ACCOUNT_ACTIVE_PRODUCT_XPATH, Lookup.XPATH); + return null; + } + + @CustomAction + default HKO101_S001_MainClientPageTransitions openProductDetail(String productName) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String productXpath = String.format(ACTIVE_PRODUCT_GENERAL_XPATH, productName); + endpoint.jsClick(() -> productXpath, Lookup.XPATH); + endpoint.jsDoubleClick(() -> productXpath, Lookup.XPATH); + return null; + } + + @CustomAction + default ADR004_S001_EnterContactAddressPage clickAddContactAddressAndStatementsDistribution() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> SERVICE_OPERATIONS_DIV); + endpoint.click(() -> ADDRESS_AND_STATEMENTS_DISTRIBUTION_DIV); + return null; + } + + @CustomAction + default HPO008_S001_OnlineChannelsPage clickInternetBankWithMobileKey() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.jsClick(() -> IB_MK_ADC, Lookup.XPATH); + endpoint.jsDoubleClick(() -> IB_MK_ADC, Lookup.XPATH); + return null; + } + + @CustomAction + default HPO008_S001_OnlineChannelsPage clickBankApi() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.jsClick(() -> BANK_API_ADC, Lookup.XPATH); + endpoint.jsDoubleClick(() -> BANK_API_ADC, Lookup.XPATH); + return null; + } + + @CustomAction + default HKO101_S001_MainClientPage getCurrentAccountNumberAndStore() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + store(CURRENT_ACCOUNT_NUMBER, endpoint.getText(CURRENT_ACCOUNT_XPATH, Lookup.XPATH).split(";")[1].trim()); + return null; + } + + @CustomAction + default HKO101_S001_MainClientPage getNewAccountNumberByNameAndStore(String accountName) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String xpath = String.format(CURRENT_ACCOUNT_GENERAL_XPATH, accountName); + store(NEW_ACCOUNT_NUMBER, endpoint.getText(xpath, Lookup.XPATH).split(";")[1].trim()); + return null; + } + + @StoreElementContent(storeKey = UFO_CLIENT_AVAILABLE_BALANCE_KEY, value = CURRENT_ACCOUNT_XPATH, by = Lookup.XPATH) + HKO101_S001_MainClientPage getCurrentAccountAvailableBalance(); + + @CheckElementPresent(value = PAGE_ID_DIV, by = Lookup.XPATH) + HKO101_S001_MainClientPage checkPageId(); + + @CustomAction + default HPO021_S001_ExpresBusinessDetailPage clickExpresKomexDetail(String currentAccountNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String xpath = String.format(EXPRES_DETAIL, currentAccountNumber); + endpoint.jsClick(() -> xpath, Lookup.XPATH); + endpoint.jsDoubleClick(() -> xpath, Lookup.XPATH); + return null; + } + + @CustomAction + default HKO101_S001_MainClientPageTransitions clickActiveProduct(String productText) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String xpath = String.format(ACTIVE_PRODUCT_XPATH, productText); + endpoint.jsClick(() -> xpath, Lookup.XPATH); + endpoint.jsDoubleClick(() -> xpath, Lookup.XPATH); + return null; + } + + @Click(SEARCH_BUTTON) + HLO001_S001_ClientSearchPage clickSearch(); + + @Click(CLIENT_REQUESTS) + BAL006_S002_ClientRequestPage selectFromListOfRequests(); + + @CustomAction + default FIN001_S001_FinancialIncomeSummaryPage openIncomeModule() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> FINANCE_INFORMATION); + endpoint.click(() -> INCOME_MODULE); + return null; + } + + @CustomAction + default HPO039_S001_MbcDetailPage clickMbcDetail() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> MBC_XPATH_LABEL, Lookup.XPATH); + endpoint.jsDoubleClick(() -> MBC_XPATH_LABEL, Lookup.XPATH); + return null; + } + + @CustomAction + default HPO022_S001_BusinessKontokorentPage clickKontokorentDetail() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> KONTOKORENT_XPATH_LABEL, Lookup.XPATH); + endpoint.jsDoubleClick(() -> KONTOKORENT_XPATH_LABEL, Lookup.XPATH); + return null; + } + + @CustomAction + default HPO003_FlexikreditDetailPage clickFlexikredit() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> FLEXI_KREDIT_XPATH_SPAN, Lookup.XPATH); + endpoint.jsDoubleClick(() -> FLEXI_KREDIT_XPATH_SPAN, Lookup.XPATH); + return null; + } + + @CustomAction + default HPO021_S001_ExpresBusinessDetailPage clickExpressBusinessDetail() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> FIRST_ACCOUNT_NUMBER_SPAN_XPATH, Lookup.XPATH); + endpoint.jsDoubleClick(() -> FIRST_ACCOUNT_NUMBER_SPAN_XPATH, Lookup.XPATH); + return null; + } + + @CustomAction + default HPO021_S001_ExpresBusinessDetailPage clickExpressBusinessDetail(String accountNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String xpath = String.format(ACCOUNT_NUMBER_SPAN_XPATH, accountNumber); + endpoint.click(() -> xpath, Lookup.XPATH); + endpoint.jsDoubleClick(() -> xpath, Lookup.XPATH); + return null; + } + + @CheckElementContent(value = INSURANCE_PRODUCT_XPATH, by = Lookup.XPATH) + HKO101_S001_MainClientPage checkInsuranceProduct(String insuranceProduct); + + @Click(LOG_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3) + HKO101_S001_MainClientPage clickLog(); + + @CustomAction + default HKO101_S001_MainClientPage verifyLogDataNotEmpty() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, Lookup.ID, Until.VISIBLE, COPY_LOG_BUTTON); + Assertions.assertNotEquals("", endpoint.getAttribute(LOG_DATA_TEXTAREA, Lookup.XPATH, "value")); + return null; + } + + @Click(COPY_LOG_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "Chyba zkopírována do schránky. Pro vložení použijte Ctrl+V.") + HKO101_S001_MainClientPage clickCopyLog(); + + @CustomAction + default HKO101_S001_MainClientPage storeCardLastFourDigits() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String maskedCardNumber = endpoint.getText(DEBIT_CARD_XPATH, Lookup.XPATH); + String lastFourDigits = StringUtils.right(maskedCardNumber, 4); + storeGlobal("LAST_FOUR_DIGITS", lastFourDigits); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HKO101_S001_MainClientPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HKO101_S001_MainClientPageTransitions.java new file mode 100644 index 0000000..ae8e893 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HKO101_S001_MainClientPageTransitions.java @@ -0,0 +1,134 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO019_S001_CreditCardDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO039_S001_MbcDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ONC001_S001_QuickCreditCardRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.HPO009_S001_DebitCardDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.POD045_OBR001_NeedToUpdateCifPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF113_S001_ChangeDataFO; +import cz.moneta.test.dsl.ufo.banka.pages.fon.GDP001_S001_ClientConsentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.ib.ADC001_S001_IbPasswordKeyPage; +import cz.moneta.test.dsl.ufo.banka.pages.ib.HPO008_IbDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.ib.HPO040_S001_DirectBankingServicesPage; +import cz.moneta.test.dsl.ufo.banka.pages.insurance.OBR001_InsuranceSelectPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.ONC001_S001_NewCreditCardPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP001_S001_NewExpressPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP009_S001_Existing_ApplicationsPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.HPO003_FlexikreditDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.ONC001_S001_NewFlexikreditPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ADR004_S001_EnterContactAddressPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.TIS051_S001_DispositionGeneratePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.components.*; +import cz.moneta.test.dsl.ufo.banka.pages.main.savings.account.SPU021_S001_SavingsAccountCreatePage; +import cz.moneta.test.dsl.ufo.banka.pages.po.HPO018_S001_AdcPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC001_S001_ConsolidationPartOnePage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.HPO001_S001_CurrentAccountDetailsPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.insurance.BAL001_OBR001_008_InsuranceTypeSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF001_S001_MutualFundsCIFdataPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL024_S001_OneClickPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL031_S001_OneClickRetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO001_S001_UniverzalRequestIdentificationPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface HKO101_S001_MainClientPageTransitions extends WebFlow, StoreAccessor { + + ADR004_S001_EnterContactAddressPage onEnterContactAddressPageAndDismissAlertIfVisible(); + + POD045_OBR001_NeedToUpdateCifPage onToNeedToUpdateCif(); + + OBR001_InsuranceSelectPage onInsuranceSelectPage(); + + BAL024_S001_OneClickPage onOneClickPage(); + + DOK001_S001_SelectionOfSubmittedDocumentsPage onSelectionOfSubmittedDocumentsPage(); + + BUF001_S001_CurrentAccountPage onCurrentAccountPage(); + + NEP001_S001_NewExpressPage onExpressPage(); + + ONC001_S001_NewFlexikreditPage onFlexikreditPage(); + + UDC001_S001_ConsolidationPartOnePage onConsolidationPage(); + + ONC001_S001_NewCreditCardPage onCreditCardPage(); + + NEP009_S001_Existing_ApplicationsPage onExistingApplicationsPage(); + + ONC001_S001_QuickCreditCardRequestPage onQuickCreditCardRequestPage(); + + SPU021_S001_SavingsAccountCreatePage onSavingsAccountPage(); + + ADC001_S001_IbPasswordKeyPage onIbPasswordKeyPage(); + + ADC001_OBR001_002_IbTypeSelectionPage onIbTypeSelectionPage(); + + UZO001_S001_UniverzalRequestIdentificationPage onUniversalRequestPage(); + + INF001_S001_MutualFundsCIFdataPage onMutualFundsCIFdataPage(); + + BAL001_OBR001_008_InsuranceTypeSelectionPage onInsuranceTypeSelectionPage(); + + TIS011_OBR001_PrintOptionsPage onPrintOptionsPage(); + + WUE001_S001_BuildingSavingsPage onBuildingSavingsPage(); + + TIS051_S001_DispositionGeneratePage onDispositionGeneratePage(); + + HPO019_S001_CreditCardDetailPage onCreditCardDetailPage(); + + HPO039_S001_MbcDetailPage onMBCDetailPage(); + + HPO009_S001_DebitCardDetailPage onDebitCardDetailPage(); + + HPO001_S001_CurrentAccountDetailsPage onCurrentAccountDetailsPage(); + + @CustomAction + default HPO009_S001_DebitCardDetailPage onDebitCardDetailPageAndCloseAlertIfPresent() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isAlertPresent(1)) { + endpoint.dismissAlert(1); + } + return null; + } + + HPO003_FlexikreditDetailPage onFlexiCreditDetailPage(); + + HPO008_IbDetailPage onIbDetailPage(); + + OBR001_S001_PrintInstructionPage onRegistrationCertificatePage(); + + BPP001_S001_DocumentationSendPage onDocumentationSendPage(); + + BUF051_S001_CreateCurrentAccountPage onCreateSMECurrentAccountPage(); + + OBR001_S001_PrintInstructionPage onSmeAutomatsPage(); + + POD045_OBR001_NeedToUpdateCifPage onNeedCifUpdate(); + + CIF003_S002_EditPoFopPage onEditFopPage(); + + OBR003_S001_ClientContractSignPage onClientContractSignPage(); + + GDP001_S001_ClientConsentsPage onClientConsentPage(); + + CIF003_S001_EditCifPage onEditCifPage(); + + CIF113_S001_ChangeDataFO onChangeDataFO(); + + CIF003_S002_EditPoFopPage onEditPoFopPage(); + + HPO018_S001_AdcPage onAdcPage(); + + BAL031_S001_OneClickRetailPage onOneClickRetailPage(); + + HPO040_S001_DirectBankingServicesPage onDirectBankingServices(); + + DOK001_S001_SelectionOfSubmittedDocumentsPage onSelectionOfSubmittedDocuments(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HLE001_S009_CardSearchedPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HLE001_S009_CardSearchedPage.java new file mode 100644 index 0000000..c025f58 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HLE001_S009_CardSearchedPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.HPO009_S001_DebitCardDetailPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HLE001_S009_CardSearchedPage.HLE001_S009_PAGE_LABEL_XPATH; + +@Wait(value = HLE001_S009_PAGE_LABEL_XPATH, waitSecondsForElement = 120, by = Lookup.XPATH) +public interface HLE001_S009_CardSearchedPage extends WebFlow, StoreAccessor { + String HLE001_S009_PAGE_LABEL_XPATH = "//div[text()='HLE001_S009']"; + String OK_BUTTON = "HLE001_S009_B002"; + + @CustomAction + default HPO009_S001_DebitCardDetailPage clickOkButtonAndCloseAlertIfVisible() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> OK_BUTTON); + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(1); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO011_S001_ExpresDetailInsurancePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO011_S001_ExpresDetailInsurancePage.java new file mode 100644 index 0000000..6509649 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO011_S001_ExpresDetailInsurancePage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.insurance.FLO011_S001_EditExpresInsurancePage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HPO011_S001_ExpresDetailInsurancePage.INSURANCE_DETAIL_CHECK_ELEMENT; + + +@Wait(value = INSURANCE_DETAIL_CHECK_ELEMENT, waitSecondsForElement = 40) +public interface HPO011_S001_ExpresDetailInsurancePage extends WebFlow { + + String INSURANCE_DETAIL_CHECK_ELEMENT = "HPO011_S001_L002"; + String CANCEL_BUTTON_INSURANCE = "HPO011_S001_B001"; + + @CheckElementPresent(INSURANCE_DETAIL_CHECK_ELEMENT) + HPO011_S001_ExpresDetailInsurancePage checkElementModel(); + + @Click(CANCEL_BUTTON_INSURANCE) + FLO011_S001_EditExpresInsurancePage clickCancelInsurance(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO011_S001_ExpresDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO011_S001_ExpresDetailPage.java new file mode 100644 index 0000000..3973286 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO011_S001_ExpresDetailPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.insurance.FLO011_S001_EditExpresInsurancePage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HPO011_S001_ExpresDetailPage.INSURANCE_DETAIL_CHECK_ELEMENT; + +@Wait(value = INSURANCE_DETAIL_CHECK_ELEMENT, waitSecondsForElement = 40) + +public interface HPO011_S001_ExpresDetailPage extends WebFlow { + + String INSURANCE_DETAIL_CHECK_ELEMENT = "XXX001_T001_L005"; + String DETAIL_BUTTON_EXPRES = "HPO011_S001"; + String EDIT_BUTTON_INSURANCE = "HPO011_S001_B001"; + String SERVICE_CREDIT_BUTTON = "HPO014_S001_I004"; + String EDIT_BUTTON_INSURANCE_PLUS = "HPO014_S001_B001"; + + @CheckElementPresent(INSURANCE_DETAIL_CHECK_ELEMENT) + HPO011_S001_ExpresDetailPage checkElementModel(); + + @Click(DETAIL_BUTTON_EXPRES) + HPO011_S001_ExpresDetailPage clickExpresDetail(); + + @Click(EDIT_BUTTON_INSURANCE) + FLO011_S001_EditExpresInsurancePage clickEditIns(); + + @Click(SERVICE_CREDIT_BUTTON) + HPO011_S001_ExpresDetailPage clickServiceCredit(); + + @Click(EDIT_BUTTON_INSURANCE_PLUS) + FLO011_S001_EditExpresInsurancePage clickEditInsurancePlus(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO014_S001_ExpresPlusDetailInsurancePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO014_S001_ExpresPlusDetailInsurancePage.java new file mode 100644 index 0000000..e74dc18 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO014_S001_ExpresPlusDetailInsurancePage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.insurance.FLO011_S001_EditExpresInsurancePage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = HPO014_S001_ExpresPlusDetailInsurancePage.INSURANCE_DETAIL_CHECK_ELEMENT, waitSecondsForElement = 40) +public interface HPO014_S001_ExpresPlusDetailInsurancePage extends WebFlow { + + String INSURANCE_DETAIL_CHECK_ELEMENT = "HPO014_S001_L002"; + String CANCEL_SERVICE_CREDIT_BUTON = "HPO014_S001_I004"; + String CANCEL_EDIT_BUTTON_INS_PLUS = "HPO014_S001_B001"; + + @CheckElementPresent(INSURANCE_DETAIL_CHECK_ELEMENT) + HPO014_S001_ExpresPlusDetailInsurancePage checkElementModel(); + + @Click (CANCEL_SERVICE_CREDIT_BUTON) + HPO014_S001_ExpresPlusDetailInsurancePage clickCancelServiceCredit(); + + @Click(CANCEL_EDIT_BUTTON_INS_PLUS) + FLO011_S001_EditExpresInsurancePage clickCancelEditInsurancePlus(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO021_S001_ExpresBusinessDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO021_S001_ExpresBusinessDetailPage.java new file mode 100644 index 0000000..46f96fb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO021_S001_ExpresBusinessDetailPage.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.insurance.KUL040_S001_EditExpresBusinesInsurancePage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HPO021_S001_ExpresBusinessDetailPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface HPO021_S001_ExpresBusinessDetailPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='HPO021_S001']"; + String RETURN_TO_HKO = "HPO021_S001_B012"; + String INSURANCE_KOMEX_DETAIL_CHECK_ELEMENT = "HPO021_S001_L010"; + String EDIT_BUTTON_KOMEX = "HPO021_S001_B017"; + String ACCOUNT_STATE_DIV = "HPO021_S001_L001"; + String LIMITS_CREDIT_DIV = "HPO021_S001_L021"; + String INTEREST_RATE_DIV = "HPO021_S001_L004"; + String ANNUITY_PAYMENTS_DIV = "HPO021_S001_L041"; + String SUMMARY_MONTHLY_PAYMENT_DIV = "HPO021_S001_L012"; + String PAYMENTS_COUNT_DIV = "HPO021_S001_L024"; + + @Click(RETURN_TO_HKO) + HKO101_S001_MainClientPage clickBackToHKO(); + + @CheckElementContent(ACCOUNT_STATE_DIV) + HPO021_S001_ExpresBusinessDetailPage checkAccountState(String accountState); + + @CheckElementContent(LIMITS_CREDIT_DIV) + HPO021_S001_ExpresBusinessDetailPage checkLimitsCredit(String limitsCredit); + + @CheckElementContent(INTEREST_RATE_DIV) + HPO021_S001_ExpresBusinessDetailPage checkInterestRate(String interestRate); + + @CheckElementContent(ANNUITY_PAYMENTS_DIV) + HPO021_S001_ExpresBusinessDetailPage checkAnnuityPayments(String annuityPayments); + + @CheckElementContent(SUMMARY_MONTHLY_PAYMENT_DIV) + HPO021_S001_ExpresBusinessDetailPage checkMonthlyPayment(String monthlyPayment); + + @CheckElementContent(PAYMENTS_COUNT_DIV) + HPO021_S001_ExpresBusinessDetailPage checkPaymentsCount(String paymentsCount); + + @CheckElementPresent(INSURANCE_KOMEX_DETAIL_CHECK_ELEMENT) + HPO021_S001_ExpresBusinessDetailPage checkElementModel(); + + @Click(EDIT_BUTTON_KOMEX) + KUL040_S001_EditExpresBusinesInsurancePage clickEditInsuranceKomex(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO021_S001_ExpresBusinessDetailPageWithKomexPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO021_S001_ExpresBusinessDetailPageWithKomexPage.java new file mode 100644 index 0000000..a30f8d9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO021_S001_ExpresBusinessDetailPageWithKomexPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.insurance.KUL040_S001_EditExpresBusinesInsurancePage; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HPO021_S001_ExpresBusinessDetailPage.INSURANCE_KOMEX_DETAIL_CHECK_ELEMENT; + +@Wait(value = INSURANCE_KOMEX_DETAIL_CHECK_ELEMENT, waitSecondsForElement = 40) +public interface HPO021_S001_ExpresBusinessDetailPageWithKomexPage extends WebFlow { + + String INSURANCE_KOMEX_DETAIL_CHECK_ELEMENT = "HPO021_S001_L010"; + String EDIT_BUTTON_KOMEX = "HPO021_S001_B017"; + + @CheckElementPresent(INSURANCE_KOMEX_DETAIL_CHECK_ELEMENT) + HPO021_S001_ExpresBusinessDetailPageWithKomexPage checkElementModel(); + + @Click(EDIT_BUTTON_KOMEX) + KUL040_S001_EditExpresBusinesInsurancePage clickEditInsuranceKomex(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO022_S001_BusinessKontokorentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO022_S001_BusinessKontokorentPage.java new file mode 100644 index 0000000..9551afa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/HPO022_S001_BusinessKontokorentPage.java @@ -0,0 +1,43 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO039_S001_MbcDetailPageTransitions; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HPO022_S001_BusinessKontokorentPage.*; + +@Wait(value = HPO022_S001_PAGE_LABEL_XPATH, waitSecondsForElement = 60, by = Lookup.XPATH) +public interface HPO022_S001_BusinessKontokorentPage extends WebFlow, StoreAccessor { + String HPO022_S001_PAGE_LABEL_XPATH = "//div[text()='HPO022_S001']"; + + String CHANGE_FRAME_BUTTON = "HPO022_S001_I008"; + + String DECREASE_FRAME_BUTTON = "HPO022_S001_B001"; + String INCREASE_FRAME_BUTTON = "HPO022_S001_B002"; + + String RETURN_TO_CLIENT_DIV = "HPO022_S001_S014"; + String ACOUNT_NUMBER_INTERNAL_DIV = "HPO022_S001_L001"; + + @CustomAction + default HPO039_S001_MbcDetailPageTransitions mouseOverFrameChangeAndDecrease() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.moveToElement(CHANGE_FRAME_BUTTON); + endpoint.click(() -> DECREASE_FRAME_BUTTON); + return null; + } + + @CustomAction + default HPO039_S001_MbcDetailPageTransitions mouseOverFrameChangeAndIncrease() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.moveToElement(CHANGE_FRAME_BUTTON); + endpoint.click(() -> INCREASE_FRAME_BUTTON); + return null; + } + + @Click(value = RETURN_TO_CLIENT_DIV, jsClick = true) + HKO101_S001_MainClientPage returnToMainClient(); + + @CheckElementContent(ACOUNT_NUMBER_INTERNAL_DIV) + HPO022_S001_BusinessKontokorentPage checkAccountNumberInternal(String accountNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S002_ListOfAuthorizationForDirectDebitsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S002_ListOfAuthorizationForDirectDebitsPage.java new file mode 100644 index 0000000..f786dc0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S002_ListOfAuthorizationForDirectDebitsPage.java @@ -0,0 +1,52 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.INK001_S002_ListOfAuthorizationForDirectDebitsPage.INK001_S002_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = INK001_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(value = INK001_S002_ListOfAuthorizationForDirectDebitsPage.CREATE_BUTTON, waitSecondsForElement = 90) +public interface INK001_S002_ListOfAuthorizationForDirectDebitsPage extends WebFlow { + + String INK001_S002_PAGE_LABEL_XPATH = "//div[text()='INK001_S002']"; + String CREATE_BUTTON = "INK001_S002_B003"; + String CHANGE_BUTTON = "INK001_S002_B004"; + String DELETE_BUTTON = "INK001_S002_B005"; + String AUTHORIZATION_FOR_DIRECT_DEBIT_ID_XPATH = "//td[text()='%s']"; + String AUTHORIZATION_FOR_DIRECT_DEBIT_STATUS_VALID_XPATH = "//td[text()='%s']//following-sibling::td[text()='Platné']"; + String AUTHORIZATION_FOR_DIRECT_DEBIT_STATUS_DELETED_XPATH = "//td[text()='%s']//following-sibling::td[text()='Zrušené']"; + String FIRST_DIRECT_DEBIT_RADIO = "INK001_S002_G001-0"; + String DIRECT_DEBIT_TITLE_XPATH = "//table[@id='INK001_S002_G001_UfoTable']//td[3]"; + String DIRECT_DEBIT_AMOUNT_XPATH = "//table[@id='INK001_S002_G001_UfoTable']//td[6]"; + + @Click(CREATE_BUTTON) + INK001_S004_CreateNewDirectDebitPage clickCreateButton(); + + @Click(CHANGE_BUTTON) + INK001_S009_ChangeAuthorizationForDirectDebitPage clickChange(); + + @Click(DELETE_BUTTON) + INK001_S014_DeleteAuthorizationForDirectDebitPage clickDelete(); + + @CheckElementPresent(value = AUTHORIZATION_FOR_DIRECT_DEBIT_STATUS_VALID_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH) + INK001_S002_ListOfAuthorizationForDirectDebitsPage checkAuthorizationForDirectDebitValid(String authorizationForDirectDebitId); + + @CheckElementPresent(value = AUTHORIZATION_FOR_DIRECT_DEBIT_STATUS_DELETED_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH) + INK001_S002_ListOfAuthorizationForDirectDebitsPage checkAuthorizationForDirectDebitDeletd(String authorizationForDirectDebitId); + + @Click(value = AUTHORIZATION_FOR_DIRECT_DEBIT_ID_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH, + andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + INK001_S002_ListOfAuthorizationForDirectDebitsPage clickOnAuthorizationForDirectDebit(String authorizationForDirectDebitId); + + @Click(FIRST_DIRECT_DEBIT_RADIO) + INK001_S002_ListOfAuthorizationForDirectDebitsPage clickFirstDirectDebit(); + + @CheckElementContent(value = DIRECT_DEBIT_TITLE_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + INK001_S002_ListOfAuthorizationForDirectDebitsPage checkDirectDebitTitle(String directDebitId, String directDebitTitle); + + @CheckElementContent(value = DIRECT_DEBIT_AMOUNT_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + INK001_S002_ListOfAuthorizationForDirectDebitsPage checkDirectDebitAmount(String directDebitId, String directDebitAmount); + + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S004_CreateNewDirectDebitPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S004_CreateNewDirectDebitPage.java new file mode 100644 index 0000000..90eba8e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S004_CreateNewDirectDebitPage.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_ConfirmationPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.INK001_S004_CreateNewDirectDebitPage.INK001_S004_PAGE_LABEL_XPATH; + +@Wait(value = INK001_S004_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(value = INK001_S004_CreateNewDirectDebitPage.SAVE_BUTTON, waitSecondsForElement = 120) +public interface INK001_S004_CreateNewDirectDebitPage extends WebFlow, StoreAccessor { + + String INK001_S004_PAGE_LABEL_XPATH = "//div[text()='INK001_S004']"; + String SAVE_BUTTON = "INK001_S004_B003"; + String RECEIVER_ACCOUNT_NUMBER_INPUT = "INK001_S004_E005"; + String RECEIVER_ACCOUNT_BANK_CODE_INPUT = "INK001_S004_E006"; + String AMOUNT_INPUT = "INK001_S004_E007"; + String RECEIVER_ACCOUNT_NAME_INPUT = "INK001_S004_E009"; + String PERIOD_COMBOBOX = "INK001_S004_C001"; + + @TypeInto(RECEIVER_ACCOUNT_NUMBER_INPUT) + INK001_S004_CreateNewDirectDebitPage fillReceiverAccountNumber(String receiverAccountNumber); + + @TypeInto(RECEIVER_ACCOUNT_BANK_CODE_INPUT) + INK001_S004_CreateNewDirectDebitPage fillReceiverAccountBankCode(String receiverAccountBankCode); + + @TypeInto(AMOUNT_INPUT) + INK001_S004_CreateNewDirectDebitPage fillAmount(String amount); + + @TypeInto(RECEIVER_ACCOUNT_NAME_INPUT) + INK001_S004_CreateNewDirectDebitPage fillReceiverAccountName(String ReceiverAccountNameInput); + + @Select(PERIOD_COMBOBOX) + INK001_S004_CreateNewDirectDebitPage selectPeriod(String period); + + @Click(SAVE_BUTTON) + INK001_OBR001_004_ConfirmationPage clickSave(); + + @Click(SAVE_BUTTON) + PSP004_S001_PrintPage clickSaveToPrint(); + + @CustomAction + default INK001_S004_CreateNewDirectDebitPage checkNotSavingNotFilledForm() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> SAVE_BUTTON); + Assertions.assertEquals("Limit musí být zadán a musí být větší než 0.", endpoint.getAlertText(1)); + endpoint.acceptAlert(1); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S009_ChangeAuthorizationForDirectDebitPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S009_ChangeAuthorizationForDirectDebitPage.java new file mode 100644 index 0000000..94c588a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S009_ChangeAuthorizationForDirectDebitPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.INK001_S009_ChangeAuthorizationForDirectDebitPage.INK001_S009_PAGE_LABEL_XPATH; + +@Wait(value = INK001_S009_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface INK001_S009_ChangeAuthorizationForDirectDebitPage extends WebFlow { + + String INK001_S009_PAGE_LABEL_XPATH = "//div[text()='INK001_S009']"; + String SAVE_BUTTON = "INK001_S009_B003"; + String AMOUNT_INPUT = "INK001_S009_U004"; + String TITLE_INPUT = "INK001_S009_E004"; + + @TypeInto(value = AMOUNT_INPUT, clear = true) + INK001_S009_ChangeAuthorizationForDirectDebitPage fillAmount(String amount); + + @TypeInto(value = TITLE_INPUT, clear = true) + INK001_S009_ChangeAuthorizationForDirectDebitPage fillTitle(String title); + + @Click(SAVE_BUTTON) + PSP004_S001_PrintPage clickSave(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S014_DeleteAuthorizationForDirectDebitPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S014_DeleteAuthorizationForDirectDebitPage.java new file mode 100644 index 0000000..4cda29b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/INK001_S014_DeleteAuthorizationForDirectDebitPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.INK001_S014_DeleteAuthorizationForDirectDebitPage.INK001_S014_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.main.INK001_S014_DeleteAuthorizationForDirectDebitPage.PRINT_DELETE_BUTTON; + +@Wait(value = INK001_S014_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(value = PRINT_DELETE_BUTTON, waitSecondsForElement = 90) +public interface INK001_S014_DeleteAuthorizationForDirectDebitPage extends WebFlow { + + String INK001_S014_PAGE_LABEL_XPATH = "//div[text()='INK001_S014']"; + String PRINT_DELETE_BUTTON = "INK001_S014_B002"; + + @Click(PRINT_DELETE_BUTTON) + PSP004_S001_PrintPage clickOnPrintDelete(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/OBR001_FlexiCreditRecommendationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/OBR001_FlexiCreditRecommendationPage.java new file mode 100644 index 0000000..5379dd7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/OBR001_FlexiCreditRecommendationPage.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS011_OBR001_SuspendDispositionPrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.ib.ADC001_S001_IbPasswordKeyPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.OBR001_FlexiCreditRecommendationPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.main.OBR001_FlexiCreditRecommendationPage.PAGE_ID_XPATH; + +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 80) +@Wait(value = PAGE_ID_XPATH, waitSecondsForElement = 80, by = Lookup.XPATH) +public interface OBR001_FlexiCreditRecommendationPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[text()='BAL001_OBR001_005_(S016)']"; + String CONTINUE_BUTTON = "OBR001_S001_B003"; + + @Click(CONTINUE_BUTTON) + ADC001_S001_IbPasswordKeyPage clickContinueToIbPasswordKeyPage(); + + @Click(CONTINUE_BUTTON) + TIS011_OBR001_SuspendDispositionPrintPage clickContinueToSuspendDispositionPrintPage(); + + @Click(CONTINUE_BUTTON) + TIS011_OBR001_PrintOptionsPage clickContinueToPrintOptionsPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PKU001_S002_CreatePaymentOrderPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PKU001_S002_CreatePaymentOrderPage.java new file mode 100644 index 0000000..bbe14b5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PKU001_S002_CreatePaymentOrderPage.java @@ -0,0 +1,73 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.PKU001_S002_CreatePaymentOrderPage.PKU001_S002_PAGE_LABEL_XPATH; + +@Wait(value = PKU001_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90) +@Wait(value = PKU001_S002_CreatePaymentOrderPage.CREDITOR_ACC_NUMBER_INPUT, waitSecondsForElement = 90) +public interface PKU001_S002_CreatePaymentOrderPage extends WebFlow, StoreAccessor { + + String PKU001_S002_PAGE_LABEL_XPATH = "//div[text()='PKU001_S002']"; + String DEBTOR_ACC_NUMBER_INPUT = "PKU001_S002_E003"; + String CREDITOR_ACC_NUMBER_INPUT = "PKU001_S002_E005"; + String CREDITOR_ACC_BANK_CODE_INPUT = "PKU001_S002_E006"; + String AMOUNT_INPUT = "PKU001_S002_E007"; + String VARIABLE_SYMBOL_INPUT = "PKU001_S002_E008"; + String CONSTANT_SYMBOL_INPUT = "PKU001_S002_E009"; + String SPECIFIC_SYMBOL_INPUT = "PKU001_S002_E010"; + String MESSAGE_INPUT = "PKU001_S002_E011"; + String TODAY_BUTTON = "PKU001_S002_B005"; + String PRIORITY_PAYMENT_CHECKBOX = "PKU001_S002_H002_1"; + String SAVE_BUTTON = "PKU001_S002_B002"; + String CREATED_TRANSACTIONS_TABLE_CELLS_XPATH = "//table[@id='PKU001_S002_G001_UfoTable']//td[contains(@class, 'ufo-Table-BodyCell')]"; + String FIRST_PAYMENT_ORDER_ID_XPATH = "//table[@id='PKU001_S002_G001_UfoTable']//td[4]"; + + @TypeInto(DEBTOR_ACC_NUMBER_INPUT) + PKU001_S002_CreatePaymentOrderPage fillDebtorAccNumber(String debtorAccountNumber); + + @TypeInto(CREDITOR_ACC_NUMBER_INPUT) + PKU001_S002_CreatePaymentOrderPage fillCreditorAccNumber(String creditorAccountNumber); + + @TypeInto(CREDITOR_ACC_BANK_CODE_INPUT) + PKU001_S002_CreatePaymentOrderPage fillCreditorAccBankCode(String creditorAccountBankCode); + + @TypeInto(value = AMOUNT_INPUT, andWait = @Wait(explicitWaitSeconds = 1)) + PKU001_S002_CreatePaymentOrderPage fillAmountInput(String amount); + + @TypeIntos({@TypeInto(VARIABLE_SYMBOL_INPUT), @TypeInto(CONSTANT_SYMBOL_INPUT), + @TypeInto(SPECIFIC_SYMBOL_INPUT), @TypeInto(MESSAGE_INPUT)}) + PKU001_S002_CreatePaymentOrderPage fillOptionalData(String variableSymbol, String constantSymbol, + String specificSymbol, String message); + + @Click(TODAY_BUTTON) + PKU001_S002_CreatePaymentOrderPage clickTodayButton(); + + @Click(PRIORITY_PAYMENT_CHECKBOX) + PKU001_S002_CreatePaymentOrderPage clickPriorityPaymentCheckbox(); + + @Click(SAVE_BUTTON) + PSP004_S001_PrintPage clickSaveButton(); + + @CheckElementPresent(value = CREATED_TRANSACTIONS_TABLE_CELLS_XPATH, by = Lookup.XPATH) + PKU001_S002_CreatePaymentOrderPage checkPresentCreatedTransactions(); + + + @CustomAction + default PKU001_S002_CreatePaymentOrderPage checkNotSavingNotFilledForm() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String alertMessage = "Pole Datum splatnosti musí být vyplněno.\nNení vyplněno datum splatnosti."; + endpoint.click(() -> SAVE_BUTTON); + Assertions.assertEquals(alertMessage, endpoint.getAlertText(1)); + endpoint.acceptAlert(1); + return null; + } + + @CheckElementContent(value = FIRST_PAYMENT_ORDER_ID_XPATH, by = Lookup.XPATH) + PKU001_S002_CreatePaymentOrderPage checkFirstOrderPaymentId(String paymentOrderId); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP004_S001_PrintPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP004_S001_PrintPage.java new file mode 100644 index 0000000..e8d5ad8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP004_S001_PrintPage.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import java.util.LinkedHashMap; + +@Wait(value = PSP004_S001_PrintPage.PAGE_LABEL_XPATH, waitSecondsForElement = 120) +@Wait(explicitWaitSeconds = 5) //Error message: javascript error: window.parent.document.PSP004_S001_D002.done is not a function +public interface PSP004_S001_PrintPage extends WebFlow, StoreAccessor { + String PAGE_LABEL_XPATH = "PSP004_S001_D002"; + String DOCUMENT_URL_XPATH = "//*[@name='document_url']"; + String PRINT_DIV_FORM = "//div[@id='PSP004_S001']//parent::form"; + String MAIN_FORM = "//form[@action='%s']"; + String DOCUMENT_URLS_STORE_KEY = "PSP004_DOCUMENT_URLS"; + + @CustomAction + default PSP004_S001_PrintPageTransitions closePrintWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String actionId = endpoint.getAttribute(PRINT_DIV_FORM, Lookup.XPATH, "action"); + if (endpoint.isHeadlessModeOn()) { + endpoint.executeScript("window.parent.document.PSP004_S001_D002.done()"); + } else { + endpoint.executeScript("window.parent.dispatchEvent(new Event('focus'));"); + } + endpoint.waitForElementsToLoad(30, Lookup.XPATH, Until.GONE, String.format(MAIN_FORM, actionId)); + return null; + } + + @CustomAction + default PSP004_S001_PrintPage saveDocumentUrl() { + saveDocumentUrl(String.valueOf(System.currentTimeMillis())); + return null; + } + + @CustomAction + default PSP004_S001_PrintPage saveDocumentUrl(String documentName) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String url = endpoint.getAttribute(DOCUMENT_URL_XPATH, Lookup.XPATH, "value"); + + LinkedHashMap docUrlsMap = get(DOCUMENT_URLS_STORE_KEY, true); + if (docUrlsMap == null) docUrlsMap = new LinkedHashMap<>(); + + docUrlsMap.put(documentName, url); + store(DOCUMENT_URLS_STORE_KEY, docUrlsMap); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP004_S001_PrintPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP004_S001_PrintPageTransitions.java new file mode 100644 index 0000000..3133c50 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP004_S001_PrintPageTransitions.java @@ -0,0 +1,113 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO039_S001_MbcDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.POZ001_S009_ServiceOperationsCreditCardSignConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.*; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.*; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF001_S017_ClientSignatureConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF003_S003_ContinueAfterSigningChange; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF001_S018_CompanySignatureCifConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.insurance.OBR001_S001_AppendixSignedPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP028_S001_SignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.ONC001_S001_NewCreditCardPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF003_S005_ContinueAfterSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV019_OBR001_ConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL030_S001_SignSmeApplicationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL071_S001_RequestForSMEPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.SMA010_S001_SignedContractDocumentationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO001_S003_SigningByTheApplicant; +import cz.moneta.test.dsl.ufo.banka.pages.requests.PSI001_S050_PreContractualInformationPrintedPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.PSI001_S053_PrintCopyOfSuccessfulContractProposalPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PSP004_S001_PrintPageTransitions extends WebFlow { + + POD038_S001_InsuracesSignedPage onInsurancePage(); + + PSP004_S001_PrintPage onPrintPage(); + + PSP012_S001_PrintPage onAnotherPrintPage(); + + OBR001_S001_PrintInstructionPage onSignerPage(); + + PLK003_S002_BlockMenu onBlockMenu(); + + OBR003_S001_ClientContractSignPage onContractSignPage(); + + CIF003_S003_ContinueAfterSigningChange onContinueAfterSigning(); + + CIF001_S018_CompanySignatureCifConfirmationPage onCompanySignatureCifConfirmationPage(); + + POZ001_S009_ServiceOperationsCreditCardSignConfirmationPage onCreditCardSignConfirmation(); + + POZ002_OBR001_002_ChildCardConfirmationPage onChildCardConfirmationPage(); + + BPP001_S001_DocumentationSendPage onSendDocumentationPage(); + + OBR003_S001_ClientContractSignPage onInkaso(); + + INK001_OBR001_004_ConfirmationPage onInkasoAgreement(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + KUL030_S001_SignSmeApplicationPage onSmeApplicationSignPage(); + + HKO101_S001_MainClientPage onMainClientPage(); + + OBR001_S001_AppendixSignedPage onAppendixSignedPage(); + + BAL001_S008_SummaryStartDocumentsPage onSummaryStartDocumentsPage(); + + KUL071_S001_RequestForSMEPage onRequestForSMEPage(); + + OBR003_S001_ClientContractSignPage onClientContractSignPage(); + + CIF001_S017_ClientSignatureConfirmationPage onClientSignatureConfirmationPage(); + + TIS027_OBR001_PreContractualInformationPage onPreContractualInformationPage(); + + NPV019_OBR001_ConfirmationPage onConfirmationPage(); + + TIS051_OBR001_ContractDocumentationPage onContractDocumentationPage(); + + HPO039_S001_MbcDetailPage onMbcDetailPage(); + + NEP028_S001_SignaturePage onSignaturePage(); + + CIF003_S005_ContinueAfterSignPage onContinueAfterSignPage(); + + PSI001_S050_PreContractualInformationPrintedPage onInformationPrintedPage(); + + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + NPK001_S001_DebitCardRequestPage onDebitCardRequestPage(); + + ONC001_S001_NewCreditCardPage onCreditCardPage(); + + OPN008_S001_SignContractPage onSignContractPage(); + + TRP001_OBR001_002_StandingOrderConfirmationPage onStandingOrderConfirmationPage(); + + SMA010_S001_SignedContractDocumentationPage onSMESignedContractDocumentation(); + + TIS050_S002_SignerSelectionPage onSignerSelection(); + + PKU001_OBR001_SignatureApprovalPage onSignatureApprovalPage(); + + SIP001_OBR001_007_DocumentConfirmationPage onDocumentConfirmationPage(); + + PSI001_S053_PrintCopyOfSuccessfulContractProposalPage onPrintCopyOfContractProposalSuccessfullPage(); + + UZO001_S003_SigningByTheApplicant onUniversalApplicationSignaturePage(); + + TIS046_S001_DocumentsProvidedToClientPage onDocumentsProvidedToClientPage(); + + CHK001_S001_WaitingForModulationPage onWaitForModulationPage(); + + HPO009_S001_DebitCardDetailPage onDebitCardDetailPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP012_S001_PrintPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP012_S001_PrintPage.java new file mode 100644 index 0000000..1040fbd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP012_S001_PrintPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = PSP012_S001_PrintPage.PAGE_LABEL_XPATH, waitSecondsForElement = 60) +@Wait(explicitWaitSeconds = 5) //Error message: javascript error: window.parent.document.PSP004_S001_D002.done is not a function +public interface PSP012_S001_PrintPage extends WebFlow, StoreAccessor { + String PAGE_LABEL_XPATH = "PSP012_S001_D002"; + + @CustomAction + default PSP012_S001_PrintTransitionPage closePrintWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.executeScript("window.parent.document.PSP012_S001_D002.done()"); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP012_S001_PrintTransitionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP012_S001_PrintTransitionPage.java new file mode 100644 index 0000000..d3c1e38 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/PSP012_S001_PrintTransitionPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PSP012_S001_PrintTransitionPage extends WebFlow { + + PSP004_S001_PrintPage onPrintPage(); + + OBR001_S001_PrintInstructionPage onSingerPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/SIP001_S002_ListOfSIPOPayments.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/SIP001_S002_ListOfSIPOPayments.java new file mode 100644 index 0000000..a9b711c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/SIP001_S002_ListOfSIPOPayments.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.SIP001_S002_ListOfSIPOPayments.SIP001_S002_PAGE_LABEL_XPATH; + +@Wait(value = SIP001_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90) +@Wait(value = SIP001_S002_ListOfSIPOPayments.CREATE_BUTTON, waitSecondsForElement = 90) +public interface SIP001_S002_ListOfSIPOPayments extends WebFlow, StoreAccessor { + + String SIP001_S002_PAGE_LABEL_XPATH = "//div[text()='SIP001_S002']"; + String CREATE_BUTTON = "SIP001_S002_B003"; + String CHOOSE_BUTTON = "SIP001_S002_G001-0"; + String DEACTIVATE_BUTTON = "SIP001_S002_B005"; + + @Click(CREATE_BUTTON) + SIP001_S004_CreateNewSIPOPaymentPage clickCreate(); + + @Click(CHOOSE_BUTTON) + SIP001_S002_ListOfSIPOPayments chooseSipoPayment(); + + @Wait(value = DEACTIVATE_BUTTON, until = Until.VISIBLE) + @Click(DEACTIVATE_BUTTON) + SIP001_S014_DeleteSIPOPayment clickDeactivate(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/SIP001_S004_CreateNewSIPOPaymentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/SIP001_S004_CreateNewSIPOPaymentPage.java new file mode 100644 index 0000000..51fe12d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/SIP001_S004_CreateNewSIPOPaymentPage.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.SIP001_OBR001_007_DocumentConfirmationPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.SIP001_S004_CreateNewSIPOPaymentPage.SIP001_S004_PAGE_LABEL_XPATH; + +@Wait(value = SIP001_S004_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90) +@Wait(value = SIP001_S004_CreateNewSIPOPaymentPage.SIPO_NUMBER, waitSecondsForElement = 90) +public interface SIP001_S004_CreateNewSIPOPaymentPage extends WebFlow, StoreAccessor { + + String SIP001_S004_PAGE_LABEL_XPATH = "//div[text()='SIP001_S004']"; + String SIPO_NUMBER = "SIP001_S004_E002"; + String LIMIT_AMOUNT = "SIP001_S004_E004"; + String SAVE_BUTTON = "SIP001_S004_B002"; + + @TypeInto(SIPO_NUMBER) + SIP001_S004_CreateNewSIPOPaymentPage fillSIPONumber(String sipoNumber); + + @TypeInto(LIMIT_AMOUNT) + SIP001_S004_CreateNewSIPOPaymentPage fillLimitAmount(String limitAmount); + + @Click(SAVE_BUTTON) + SIP001_OBR001_007_DocumentConfirmationPage clickSave(); + + @Click(SAVE_BUTTON) + PSP004_S001_PrintPage clickSaveToPrintPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/SIP001_S014_DeleteSIPOPayment.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/SIP001_S014_DeleteSIPOPayment.java new file mode 100644 index 0000000..3b94463 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/SIP001_S014_DeleteSIPOPayment.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = SIP001_S014_DeleteSIPOPayment.PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(value = SIP001_S014_DeleteSIPOPayment.SAVE_BUTTON, waitSecondsForElement = 90) +public interface SIP001_S014_DeleteSIPOPayment extends WebFlow, StoreAccessor { + + String SAVE_BUTTON = "SIP001_S014_B002"; + String PAGE_LABEL_XPATH = "//div[text()='SIP001_S014']"; + + @Click(SAVE_BUTTON) + PSP004_S001_PrintPage clickSaveAndPrint(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS011_OBR001_PrintOptionsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS011_OBR001_PrintOptionsPage.java new file mode 100644 index 0000000..9ae0d34 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS011_OBR001_PrintOptionsPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.TIS011_OBR001_PrintOptionsPage.PAGE_ID_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.main.TIS011_OBR001_PrintOptionsPage.POSTPONE_PRINT_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.main.TIS011_OBR001_PrintOptionsPage.PRINT_NOW_BUTTON; + +@Wait(value = {POSTPONE_PRINT_BUTTON, PRINT_NOW_BUTTON}, waitSecondsForElement = 80) +@Wait(value = PAGE_ID_XPATH, waitSecondsForElement = 80, by = Lookup.XPATH) +public interface TIS011_OBR001_PrintOptionsPage extends WebFlow { + + String POSTPONE_PRINT_BUTTON = "OBR001_S001_B001"; + String PRINT_NOW_BUTTON = "OBR001_S001_B003"; + String PAGE_ID_XPATH = "//div[text()='TIS011_OBR001_002']"; + + @Click(POSTPONE_PRINT_BUTTON) + TIS011_OBR001_PrintOptionsPageTransitions clickPostponePrint(); + + @Click(PRINT_NOW_BUTTON) + TIS011_OBR001_PrintOptionsPageTransitions clickPrintNow(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS011_OBR001_PrintOptionsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS011_OBR001_PrintOptionsPageTransitions.java new file mode 100644 index 0000000..2e691e2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS011_OBR001_PrintOptionsPageTransitions.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.support.web.WebFlow; + +public interface TIS011_OBR001_PrintOptionsPageTransitions extends WebFlow { + + TIS051_OBR001_ContractDocumentationPage onContractDocumentationPage(); + + BAL001_S008_SummaryStartDocumentsPage onSummaryStartDocumentsPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS051_OBR001_ContractDocumentationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS051_OBR001_ContractDocumentationPage.java new file mode 100644 index 0000000..77653f1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS051_OBR001_ContractDocumentationPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.BAL020_OBR002_GeneralContractAndDispositionPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL020_OBR002_PrintGeneralContractPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.TIS051_OBR001_ContractDocumentationPage.*; + +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 200) +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, PAGE_ID_XPATH}, waitSecondsForElement = 200, by = Lookup.XPATH) +public interface TIS051_OBR001_ContractDocumentationPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String PAGE_ID_XPATH = "//div[text()='TIS051_OBR001_003_(S005)' or text()='PRP002_OBR001_001']"; + String CONTINUE_BUTTON = "OBR001_S001_B003"; + + @Click(CONTINUE_BUTTON) + BAL020_OBR002_GeneralContractAndDispositionPage continueToGeneralContractAndDispositionPage(); + + @Click(CONTINUE_BUTTON) + BAL001_S008_SummaryStartDocumentsPage clickContinueSummaryStartDocumentsPage(); + + @Click(CONTINUE_BUTTON) + BAL020_OBR002_PrintGeneralContractPage continueToPrintGeneralContractPage(); + + @Click(CONTINUE_BUTTON) + TIS051_OBR001_ContractDocumentationPageTransitions clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS051_OBR001_ContractDocumentationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS051_OBR001_ContractDocumentationPageTransitions.java new file mode 100644 index 0000000..bd31a64 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TIS051_OBR001_ContractDocumentationPageTransitions.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.PRP002_OBR001_PrintSpecialConditionsPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN002_OBR001_DoClientSignApproveOfCcActivationPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.OPN008_S001_ExpressSignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.VDB001_S001_SecondBankerJoiningPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface TIS051_OBR001_ContractDocumentationPageTransitions extends WebFlow { + + PVX002_S002_AccountDispositionOwnerPage onAccountDispositionPage(); + + VDB001_S001_SecondBankerJoiningPage onSecondBankerJoiningPage(); + + OPN008_S001_ExpressSignaturePage onExpressSignaturePage(); + + OPN002_OBR001_DoClientSignApproveOfCcActivationPage onCreditCardActivationSignaturePage(); + + BAL001_S008_SummaryStartDocumentsPage onSummaryStartDocumentsPage(); + + PRP002_OBR001_PrintSpecialConditionsPage onPrintSpecialConditionsPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S002_ListOfStandingOrdersPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S002_ListOfStandingOrdersPage.java new file mode 100644 index 0000000..54033e5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S002_ListOfStandingOrdersPage.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.TRP001_S002_ListOfStandingOrdersPage.TRP001_S002_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = TRP001_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90) +@Wait(value = TRP001_S002_ListOfStandingOrdersPage.CREATE_BUTTON, waitSecondsForElement = 90) +public interface TRP001_S002_ListOfStandingOrdersPage extends WebFlow, StoreAccessor { + + String TRP001_S002_PAGE_LABEL_XPATH = "//div[text()='TRP001_S002']"; + String CREATE_BUTTON = "TRP001_S002_B003"; + String CHANGE_BUTTON = "TRP001_S002_B004"; + String DELETE_BUTTON = "TRP001_S002_B005"; + String STANDING_ORDER_ID_XPATH = "//td[text()='%s']"; + String STANDING_ORDER_STATUS_VALID_XPATH = "//td[text()='%s']//following-sibling::td[text()='Platný']"; + String STANDING_ORDER_STATUS_DELETED_XPATH = "//td[text()='%s']//following-sibling::td[text()='Zrušený']"; + String STANDING_ORDER_AMOUNT_XPATH = "//td[text()='%s']//following-sibling::td[4]"; + + @Click(CREATE_BUTTON) + TRP001_S004_CreateNewStandingOrderPage clickCreate(); + + @Click(CHANGE_BUTTON) + TRP001_S009_ChangeStandingOrderPage clickChange(); + + @Click(DELETE_BUTTON) + TRP001_S014_DeleteStandingOrderPage clickDelete(); + + @Click(value = STANDING_ORDER_ID_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRP001_S002_ListOfStandingOrdersPage clickOnStandingOrder(String standingOrderId); + + @CheckElementPresent(value = STANDING_ORDER_STATUS_VALID_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH) + TRP001_S002_ListOfStandingOrdersPage checkStandingOrderStatusValid(String standingOrderId); + + @CheckElementPresent(value = STANDING_ORDER_STATUS_DELETED_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH) + TRP001_S002_ListOfStandingOrdersPage checkStandingOrderStatusDeleted(String standingOrderId); + + @CheckElementPresent(value = STANDING_ORDER_ID_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH) + TRP001_S002_ListOfStandingOrdersPage checkStandingOrderId(String standingOrderId); + + @CheckElementContent(value = STANDING_ORDER_AMOUNT_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH) + TRP001_S002_ListOfStandingOrdersPage checkStandingOrderAmount(String standingOrderId, String expectedAmount); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S004_CreateNewStandingOrderPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S004_CreateNewStandingOrderPage.java new file mode 100644 index 0000000..0e5b248 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S004_CreateNewStandingOrderPage.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.TRP001_S004_CreateNewStandingOrderPage.TRP001_S004_PAGE_LABEL_XPATH; + +@Wait(value = TRP001_S004_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +@Wait(value = TRP001_S004_CreateNewStandingOrderPage.SAVE_BUTTON, waitSecondsForElement = 120) +public interface TRP001_S004_CreateNewStandingOrderPage extends WebFlow, StoreAccessor { + + String TRP001_S004_PAGE_LABEL_XPATH = "//div[text()='TRP001_S004']"; + String SAVE_BUTTON = "TRP001_S004_B003"; + String RECEIVER_ACCOUNT_NUMBER_INPUT = "TRP001_S004_E015"; + String RECEIVER_ACCOUNT_BANK_CODE_INPUT = "TRP001_S004_E007"; + String FIRST_AMOUNT_INPUT = "TRP001_S004_E008"; + String RECEIVER_ACCOUNT_NAME_INPUT = "TRP001_S004_E016"; + String FIRST_PAYMENT_DATE_INPUT = "TRP001_S004_E004"; + String NEXT_PAYMENT_DATE_INPUT = "TRP001_S004_U001"; + String LAST_PAYMENT_DATE_INPUT = "TRP001_S004_E010"; + String NEXT_AMOUNT_INPUT = "TRP001_S004_E009"; + String VARIABLE_SYMBOL_INPUT = "TRP001_S004_E011"; + String CONSTANT_SYMBOL_INPUT = "TRP001_S004_E012"; + String SPECIFIC_SYMBOL_INPUT = "TRP001_S004_E013"; + String STANDING_ORDER_NAME_INPUT = "TRP001_S004_E002"; + String MESSAGE_INPUT = "TRP001_S004_E017"; + + @TypeInto(RECEIVER_ACCOUNT_NUMBER_INPUT) + TRP001_S004_CreateNewStandingOrderPage fillReceiverAccountNumber(String receiverAccountNumber); + + @TypeInto(RECEIVER_ACCOUNT_BANK_CODE_INPUT) + TRP001_S004_CreateNewStandingOrderPage fillReceiverAccountBankCode(String receiverAccountBankCode); + + @TypeInto(FIRST_AMOUNT_INPUT) + TRP001_S004_CreateNewStandingOrderPage fillFirstAmount(String firstAmount); + + @TypeInto(RECEIVER_ACCOUNT_NAME_INPUT) + TRP001_S004_CreateNewStandingOrderPage fillReceiverAccountName(String receiverAccountName); + + @TypeInto(FIRST_PAYMENT_DATE_INPUT) + TRP001_S004_CreateNewStandingOrderPage fillFirstPaymentDate(String firstPaymentDate); + + @TypeInto(LAST_PAYMENT_DATE_INPUT) + TRP001_S004_CreateNewStandingOrderPage fillLastPaymentDate(String lastPaymentDate); + + @TypeIntos({@TypeInto(VARIABLE_SYMBOL_INPUT), @TypeInto(CONSTANT_SYMBOL_INPUT), @TypeInto(SPECIFIC_SYMBOL_INPUT), + @TypeInto(STANDING_ORDER_NAME_INPUT), @TypeInto(MESSAGE_INPUT)}) + TRP001_S004_CreateNewStandingOrderPage fillOptionalData(String variableSymbol, String constantSymbol, String specificSymbol, + String message1, String message2); + + @Click(SAVE_BUTTON) + TRP001_S004_CreateNewStandingOrderPageTransitions clickSave(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S004_CreateNewStandingOrderPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S004_CreateNewStandingOrderPageTransitions.java new file mode 100644 index 0000000..6fdbe49 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S004_CreateNewStandingOrderPageTransitions.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TRP001_OBR001_002_StandingOrderConfirmationPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface TRP001_S004_CreateNewStandingOrderPageTransitions extends WebFlow { + + TRP001_OBR001_002_StandingOrderConfirmationPage onConfirmationPage(); + + PSP004_S001_PrintPage onPrintPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S009_ChangeStandingOrderPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S009_ChangeStandingOrderPage.java new file mode 100644 index 0000000..162a6e3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S009_ChangeStandingOrderPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.support.web.*; + + +@Wait(value = TRP001_S009_ChangeStandingOrderPage.TRP001_S009_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +@Wait(value = TRP001_S009_ChangeStandingOrderPage.SAVE_BUTTON, waitSecondsForElement = 120) +public interface TRP001_S009_ChangeStandingOrderPage extends WebFlow { + + String TRP001_S009_PAGE_LABEL_XPATH = "//div[text()='TRP001_S009']"; + String SAVE_BUTTON = "TRP001_S009_B003"; + String AMOUNT_INPUT = "TRP001_S009_F002"; + + @TypeInto(value = AMOUNT_INPUT, clear = true) + TRP001_S009_ChangeStandingOrderPage fillAmount(String amount); + + @Click(SAVE_BUTTON) + TRP001_S009_ChangeStandingOrderPageTransitions clickSave(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S009_ChangeStandingOrderPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S009_ChangeStandingOrderPageTransitions.java new file mode 100644 index 0000000..78bb2f8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S009_ChangeStandingOrderPageTransitions.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.support.web.WebFlow; + +public interface TRP001_S009_ChangeStandingOrderPageTransitions extends WebFlow { + + PSP004_S001_PrintPage onPrintPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S014_DeleteStandingOrderPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S014_DeleteStandingOrderPage.java new file mode 100644 index 0000000..93648da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S014_DeleteStandingOrderPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = TRP001_S014_DeleteStandingOrderPage.TRP001_S014_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +@Wait(value = TRP001_S014_DeleteStandingOrderPage.PRINT_DELETE_BUTTON, waitSecondsForElement = 120) +public interface TRP001_S014_DeleteStandingOrderPage extends WebFlow { + + String TRP001_S014_PAGE_LABEL_XPATH = "//div[text()='TRP001_S014']"; + String PRINT_DELETE_BUTTON = "TRP001_S014_B002"; + + @Click(value = PRINT_DELETE_BUTTON) + TRP001_S014_DeleteStandingOrderPageTransitions clickOnPrintDelete(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S014_DeleteStandingOrderPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S014_DeleteStandingOrderPageTransitions.java new file mode 100644 index 0000000..076623e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/TRP001_S014_DeleteStandingOrderPageTransitions.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.harness.support.web.WebFlow; + +public interface TRP001_S014_DeleteStandingOrderPageTransitions extends WebFlow { + + PSP004_S001_PrintPage onPrintPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/UHK002_S001_CreateBankBookPayment.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/UHK002_S001_CreateBankBookPayment.java new file mode 100644 index 0000000..2376c85 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/UHK002_S001_CreateBankBookPayment.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = UHK002_S001_CreateBankBookPayment.UHK002_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90) +public interface UHK002_S001_CreateBankBookPayment extends WebFlow { + String UHK002_S001_PAGE_LABEL_XPATH = "//div[text()='UHK002_S001']"; + String CREDITOR_ACC_SELECT = "UHK002_S001_C001"; + String DEBTOR_ACC_INPUT = "UHK002_S001_E001"; + String AMOUNT_INPUT = "UHK002_S001_E004"; + String MESSAGE_INPUT = "UHK002_S001_E005"; + String VARIABLE_SYMBOL_INPUT = "UHK002_S001_E006"; + String CONSTANT_SYMBOL_INPUT = "UHK002_S001_E007"; + String SPECIFIC_SYMBOL_INPUT = "UHK002_S001_E008"; + String SAVE_BUTTON = "UHK002_S001_B002"; + + @Wait(value = CREDITOR_ACC_SELECT, until = Until.VISIBLE) + @Select(CREDITOR_ACC_SELECT) + UHK002_S001_CreateBankBookPayment selectCreditorAcc(String creditorAcc); + + @TypeInto(DEBTOR_ACC_INPUT) + UHK002_S001_CreateBankBookPayment fillDebtorAcc(String debtorAcc); + + @TypeInto(AMOUNT_INPUT) + UHK002_S001_CreateBankBookPayment fillAmount(String amount); + + @TypeIntos({@TypeInto(MESSAGE_INPUT), @TypeInto(VARIABLE_SYMBOL_INPUT), + @TypeInto(CONSTANT_SYMBOL_INPUT), @TypeInto(SPECIFIC_SYMBOL_INPUT)}) + UHK002_S001_CreateBankBookPayment fillMaxData(String message, String variableSymbol, + String specificSymbol, String constantSymbol); + + @Click(SAVE_BUTTON) + OBR001_S001_PrintInstructionPage clickOnSave(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/ADC006_S001_InternetBankPasswordMobileKeyPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/ADC006_S001_InternetBankPasswordMobileKeyPage.java new file mode 100644 index 0000000..1220fb7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/ADC006_S001_InternetBankPasswordMobileKeyPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.adc; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.adc.ADC006_S001_InternetBankPasswordMobileKeyPage.SAVE_BUTTON; + +@Wait(SAVE_BUTTON) +public interface ADC006_S001_InternetBankPasswordMobileKeyPage extends WebFlow, StoreAccessor { + + String SAVE_BUTTON = "ADC006_S001_B004"; + String CANCEL_BUTTON = "ADC006_S001_B003"; + + @Click(CANCEL_BUTTON) + ADC006_S001_InternetBankPasswordMobileKeyPage cancelInternetBankChannel(); + + @CustomAction + default EVY002_S001_CancelAdcChannelInfoPage acceptAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.acceptAlert(20); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/ADC026_S001_BankApiDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/ADC026_S001_BankApiDetailPage.java new file mode 100644 index 0000000..d2d8b44 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/ADC026_S001_BankApiDetailPage.java @@ -0,0 +1,131 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.adc; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_ConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.TIS051_S001_DispositionGeneratePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.adc.ADC026_S001_BankApiDetailPage.SAVE_BUTTON; + +@Wait(SAVE_BUTTON) +public interface ADC026_S001_BankApiDetailPage extends WebFlow, StoreAccessor { + + String SAVE_BUTTON = "ADC026_S001_B001"; + String DAILY_LIMIT_INPUT = "ADC026_S001_E023"; + String THIRD_PARTY_SELECT = "ADC026_S001_C001"; + String ACCOUNT_SELECT = "ADC026_S001_C002"; + String ADD_BUTTON = "ADC026_S001_B003"; + String DEACTIVATE_BUTTON = "ADC026_S001_B004"; + String HISTORY_BUTTON = "ADC026_S001_B005"; + String HISTORY_CALL_BUTTON = "ADC026_S001_B006"; + String THIRD_PARTY_TABLE_NAME_PATH = "//*[@id='ADC026_S001_G001_UfoTable']/tbody/tr/td[2]"; + String THIRD_PARTY_TABLE_NUMBER_PATH = "//*[@id='ADC026_S001_G001_UfoTable']/tbody/tr/td[3]"; + String THIRD_PARTY_TABLE_ACCOUNT_PATH = "//*[@id='ADC026_S001_G001_UfoTable']/tbody/tr/td[4]"; + String THIRD_PARTY_TABLE_ACTIVE_FROM_PATH = "//*[@id='ADC026_S001_G001_UfoTable']/tbody/tr/td[5]"; + String THIRD_PARTY_TABLE_HISTORY_NAME_PATH = "//*[@id='ADC026_S001_G002_UfoTable']/tbody/tr/td[1]"; + String THIRD_PARTY_TABLE_HISTORY_NUMBER_PATH = "//*[@id='ADC026_S001_G002_UfoTable']/tbody/tr/td[2]"; + String THIRD_PARTY_TABLE_HISTORY_ACCOUNT_PATH = "//*[@id='ADC026_S001_G002_UfoTable']/tbody/tr/td[3]"; + String THIRD_PARTY_TABLE_HISTORY_ACTIVE_FROM_PATH = "//*[@id='ADC026_S001_G002_UfoTable']/tbody/tr/td[4]"; + String THIRD_PARTY_TABLE_HISTORY_ACTIVE_TO_PATH = "//*[@id='ADC026_S001_G002_UfoTable']/tbody/tr/td[5]"; + String THIRD_PARTY_TABLE_FIRST_ROW_RADIO = "ADC026_S001_G001-0"; + String THIRD_PARTY_TABLE_HISTORY_CLOSE = "ADC026_S001_P001"; + String THIRD_PARTY_ACTIVE_DATE_FROM = "THIRD_PARTY_ACTIVE_DATE_FROM"; + String THIRD_PARTY_HISTORY_DATE_FROM = "THIRD_PARTY_HISTORY_DATE_FROM"; + String THIRD_PARTY_HISTORY_DATE_TO = "THIRD_PARTY_HISTORY_DATE_TO"; + + @Click(SAVE_BUTTON) + TIS051_S001_DispositionGeneratePage saveLimitBanApi(); + + @TypeInto(value = DAILY_LIMIT_INPUT, clear = true) + ADC026_S001_BankApiDetailPage fillDailyLimit(String dailyLimit); + + @Select(THIRD_PARTY_SELECT) + ADC026_S001_BankApiDetailPage selectThirdParty(String thirdParty); + + @Select(ACCOUNT_SELECT) + ADC026_S001_BankApiDetailPage selectAccount(String account); + + @Click(ADD_BUTTON) + INK001_OBR001_004_ConfirmationPage activateCisp(); + + @Click(ADD_BUTTON) + ADC026_S001_BankApiDetailPage activateCispValidationMessage(); + + @Click(DEACTIVATE_BUTTON) + INK001_OBR001_004_ConfirmationPage deactivateCisp(); + + @Click(DEACTIVATE_BUTTON) + ADC026_S001_BankApiDetailPage deactivateCispValidationMessage(); + + @Click(HISTORY_BUTTON) + ADC026_S001_BankApiDetailPage historyCispSettings(); + + @Click(HISTORY_CALL_BUTTON) + ADC026_S001_BankApiDetailPage historyCallCisp(); + + @CheckElementContent(value = THIRD_PARTY_TABLE_HISTORY_NAME_PATH, by = Lookup.XPATH) + ADC026_S001_BankApiDetailPage checkHistoryTableName(String thirdPartyName); + + @CheckElementContent(value = THIRD_PARTY_TABLE_HISTORY_NUMBER_PATH, by = Lookup.XPATH) + ADC026_S001_BankApiDetailPage checkHistoryTableNumber(String thirdPartyNumber); + + @CheckElementContent(value = THIRD_PARTY_TABLE_HISTORY_ACCOUNT_PATH, by = Lookup.XPATH) + ADC026_S001_BankApiDetailPage checkHistoryTableAccount(String account); + + @CustomAction + default ADC026_S001_BankApiDetailPage checkAlertAndAcceptActivation() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String alertText = endpoint.getAlertText(60); + endpoint.acceptAlert(20); + Assertions.assertEquals("Vazba třetí strany a účtu již existuje, nelze přidat.", alertText); + return null; + } + + @CustomAction + default ADC026_S001_BankApiDetailPage checkAlertAndAcceptDeactivate() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String alertText = endpoint.getAlertText(60); + endpoint.acceptAlert(20); + Assertions.assertEquals("Není vybrána žádná vazba. Vyberte požadovanou položku.", alertText); + return null; + } + + @CustomAction + default ADC026_S001_BankApiDetailPage storeThirdPartyDateFrom() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + store(THIRD_PARTY_ACTIVE_DATE_FROM, endpoint.getText(THIRD_PARTY_TABLE_ACTIVE_FROM_PATH, Lookup.XPATH)); + return null; + } + + @CustomAction + default ADC026_S001_BankApiDetailPage storeThirdPartyHistoryDates() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + store(THIRD_PARTY_HISTORY_DATE_FROM, endpoint.getText(THIRD_PARTY_TABLE_HISTORY_ACTIVE_FROM_PATH, Lookup.XPATH)); + store(THIRD_PARTY_HISTORY_DATE_TO, endpoint.getText(THIRD_PARTY_TABLE_HISTORY_ACTIVE_TO_PATH, Lookup.XPATH)); + return null; + } + + @Click(THIRD_PARTY_TABLE_FIRST_ROW_RADIO) + ADC026_S001_BankApiDetailPage selectFirstRow(); + + @CheckElementContent(value = THIRD_PARTY_TABLE_NAME_PATH, by = Lookup.XPATH) + ADC026_S001_BankApiDetailPage checkThirdPartyTableName(String thirdPartyName); + + @CheckElementContent(value = THIRD_PARTY_TABLE_NUMBER_PATH, by = Lookup.XPATH) + ADC026_S001_BankApiDetailPage checkThirdPartyTableNumber(String thirdPartyNumber); + + @CheckElementContent(value = THIRD_PARTY_TABLE_ACCOUNT_PATH, by = Lookup.XPATH) + ADC026_S001_BankApiDetailPage checkThirdPartyTableAccount(String account); + + @Click(THIRD_PARTY_TABLE_HISTORY_CLOSE) + ADC026_S001_BankApiDetailPage closeThirdPartyHistory(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/EVY002_S001_CancelAdcChannelInfoPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/EVY002_S001_CancelAdcChannelInfoPage.java new file mode 100644 index 0000000..901360a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/EVY002_S001_CancelAdcChannelInfoPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.adc; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS011_OBR001_SuspendDispositionPrintPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.adc.EVY002_S001_CancelAdcChannelInfoPage.CONTINUE_BUTTON; + +@Wait(CONTINUE_BUTTON) +public interface EVY002_S001_CancelAdcChannelInfoPage extends WebFlow { + + String CONTINUE_BUTTON = "EVY002_S001_B001"; + + @Click(CONTINUE_BUTTON) + TIS011_OBR001_SuspendDispositionPrintPage continueToPrint(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/HPO008_OBR001_001_InfoPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/HPO008_OBR001_001_InfoPage.java new file mode 100644 index 0000000..d0c6c01 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/HPO008_OBR001_001_InfoPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.adc; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.adc.HPO008_OBR001_001_InfoPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface HPO008_OBR001_001_InfoPage extends WebFlow { + + String OK_BUTTON = "OBR001_S001_B002"; + String PAGE_ID_XPATH = "//div[text()='HPO008_OBR001_001_(HPO008_S003)']"; + + @Click(OK_BUTTON) + HKO101_S001_MainClientPage returnHKO(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/HPO008_S001_OnlineChannelsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/HPO008_S001_OnlineChannelsPage.java new file mode 100644 index 0000000..b3b0225 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/adc/HPO008_S001_OnlineChannelsPage.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.adc; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.TIS051_S001_DispositionGeneratePage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.GetElementContent; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.adc.HPO008_S001_OnlineChannelsPage.ADC_SETTING_BUTTON; + +@Wait(ADC_SETTING_BUTTON) +public interface HPO008_S001_OnlineChannelsPage extends WebFlow, StoreAccessor { + + String ADC_SETTING_BUTTON = "HPO008_S001_B022"; + String BANKAPI_ACTIVATION_BUTTON = "HPO008_S001_I005"; + String EDIT_BANKAPI_BUTTON = "HPO008_S001_B001"; + String LIMIT_BANKAPI_LABEL = "HPO008_S001_L056"; + String EDIT_IB_PASSWORD_MK = "HPO008_S001_B018"; + + @Click(BANKAPI_ACTIVATION_BUTTON) + HPO008_S001_OnlineChannelsPage activationBankApiChannel(); + + @Click(EDIT_BANKAPI_BUTTON) + ADC026_S001_BankApiDetailPage editBankApiChannel(); + + @CustomAction + default TIS051_S001_DispositionGeneratePage acceptAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.acceptAlert(20); + return null; + } + + @GetElementContent(LIMIT_BANKAPI_LABEL) + String getLimit(); + + @Click(EDIT_IB_PASSWORD_MK) + ADC006_S001_InternetBankPasswordMobileKeyPage editIbPasswordMkChannel(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ADR004_S001_EnterContactAddressPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ADR004_S001_EnterContactAddressPage.java new file mode 100644 index 0000000..e857abf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ADR004_S001_EnterContactAddressPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ADR004_S001_EnterContactAddressPage.ADR004_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ADR004_S001_EnterContactAddressPage.USE_RESIDENCY_ADDRESS_AS_CONTACT_CHECKBOX; + +@Wait(value = ADR004_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 80) +@Wait(value = USE_RESIDENCY_ADDRESS_AS_CONTACT_CHECKBOX, waitSecondsForElement = 80) +public interface ADR004_S001_EnterContactAddressPage extends WebFlow { + String ADR004_S001_PAGE_LABEL_XPATH = "//div[text()='ADR004_S001']"; + String USE_RESIDENCY_ADDRESS_AS_CONTACT_CHECKBOX = "ADR004_S001_H001_1"; + String CONTACT_ADDRESS_CONFIRM_BUTTON = "ADR004_S001_B006"; + String SAVE_BUTTON = "ADR004_S001_B003"; + String MODAL_CONTACT_ADDRESS_WINDOW_ID = "ADR004_S001_FB002"; + + default void loadPage(WebEndpoint endpoint) { + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(80); + } + } + + @Click( + value = USE_RESIDENCY_ADDRESS_AS_CONTACT_CHECKBOX, + andWait = @Wait(value = MODAL_CONTACT_ADDRESS_WINDOW_ID, until = Until.VISIBLE, waitSecondsForElement = 60) + ) + @Click( + value = CONTACT_ADDRESS_CONFIRM_BUTTON, + andWait = @Wait(value = MODAL_CONTACT_ADDRESS_WINDOW_ID, until = Until.GONE, waitSecondsForElement = 60) + ) + ADR004_S001_EnterContactAddressPage clickUseResidencyAsContactAndConfirm(); + + @Click(SAVE_BUTTON) + ADR004_S001_EnterContactAddressPageTransitions clickSave(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ADR004_S001_EnterContactAddressPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ADR004_S001_EnterContactAddressPageTransitions.java new file mode 100644 index 0000000..1315553 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ADR004_S001_EnterContactAddressPageTransitions.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL032_S001_OneClickTomJuniorPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ADR004_S001_EnterContactAddressPageTransitions extends WebFlow { + + EVY701_S001_StatementsDistributionPage onStatementsDistributionPage(); + + BUF001_S001_CurrentAccountPage onCurrentAccountPage(); + + OBR003_S001_ClientContractSignPage onClientContractSignPage(); + + EVY003_S001_DistributionStatementsPage onDistributionStatementsPage(); + + BAL032_S001_OneClickTomJuniorPage onOneClickTomJunior(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/EVY001_S003_ProductSummaryChangeAdcPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/EVY001_S003_ProductSummaryChangeAdcPage.java new file mode 100644 index 0000000..36efccd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/EVY001_S003_ProductSummaryChangeAdcPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.EVY001_S003_ProductSummaryChangeAdcPage.*; + +@Wait(value = EVY001_S003_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 40) +@Wait(NO_BUTTON) +public interface EVY001_S003_ProductSummaryChangeAdcPage extends WebFlow { + String EVY001_S003_PAGE_LABEL_XPATH = "//div[text()='EVY001_S003']"; + String NO_BUTTON = "EVY001_S003_B002"; + + @Click(NO_BUTTON) + TIS051_S001_DispositionGeneratePage clickNoToDispositionGeneratePage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/EVY003_S001_DistributionStatementsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/EVY003_S001_DistributionStatementsPage.java new file mode 100644 index 0000000..2dbcfd0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/EVY003_S001_DistributionStatementsPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.EVY003_S001_DistributionStatementsPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface EVY003_S001_DistributionStatementsPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='EVY003_S001']"; + String CONTINUE_BUTTON = "EVY003_S001_B001"; + + @Click(CONTINUE_BUTTON) + HKO101_S001_MainClientPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/EVY701_S001_StatementsDistributionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/EVY701_S001_StatementsDistributionPage.java new file mode 100644 index 0000000..2797c56 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/EVY701_S001_StatementsDistributionPage.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.PSP701_S001_AmortizationPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.EVY701_S001_StatementsDistributionPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.EVY701_S001_StatementsDistributionPage.EVY701_S001_PAGE_LABEL; + +@Wait(value = EVY701_S001_PAGE_LABEL, waitSecondsForElement = 40) +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 40) +public interface EVY701_S001_StatementsDistributionPage extends WebFlow, StoreAccessor { + String EVY701_S001_PAGE_LABEL = "EVY701_S001_L001"; + + String CONTINUE_BUTTON = "EVY701_S001_B001"; + String SELECT_DISTRIBUTION_OF_STATEMENT = "EVY701_S001_C001"; + String SAVINGS_ACCOUNT_RADIO = "ufo-et-EVY701_S001_F001_row_2_sel"; + String CLICK_BACK_BUTTON = "EVY701_S001_B002"; + + @Wait(CONTINUE_BUTTON) + @Click(value = CONTINUE_BUTTON) + HKO101_S001_MainClientPage continueToClientDetailPage(); + + @Click(SAVINGS_ACCOUNT_RADIO) + EVY701_S001_StatementsDistributionPage clickSavingsAccountRadio(); + + @AcceptAlert(waitSecondsForAlert = 5, expectedAlertText = "Změnu distribuce výpisu je možné provést pouze na vybraném produktu.") + EVY701_S001_StatementsDistributionPage acceptAlertChangeDistribution(); + + @Wait(value = SELECT_DISTRIBUTION_OF_STATEMENT, explicitWaitSeconds = 5) + @CustomAction + default EVY701_S001_StatementsDistributionPage selectAnotherDistributionOfStatement() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String currentValue = endpoint.getSelectedFirstItemText(SELECT_DISTRIBUTION_OF_STATEMENT); + if (currentValue.contains("Poštou")) { + endpoint.selectByVisibleText(SELECT_DISTRIBUTION_OF_STATEMENT, "Osobně"); + } else if (currentValue.contains("Elektronicky IB")) { + endpoint.selectByVisibleText(SELECT_DISTRIBUTION_OF_STATEMENT, "Poštou"); + } else if (currentValue.contains("Osobně")) + endpoint.selectByVisibleText(SELECT_DISTRIBUTION_OF_STATEMENT, "Elektronicky IB"); + return null; + } + + @Wait(CONTINUE_BUTTON) + @Click(CONTINUE_BUTTON) + PSP701_S001_AmortizationPage clickChangeDistribution(); + + @Wait(value = CLICK_BACK_BUTTON, until = Until.VISIBLE) + @Click(CLICK_BACK_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/KAK001_OBR001_ClientCardSentByEmailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/KAK001_OBR001_ClientCardSentByEmailPage.java new file mode 100644 index 0000000..e8b8d0f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/KAK001_OBR001_ClientCardSentByEmailPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.KAK001_OBR001_ClientCardSentByEmailPage.PAGE_ID; + +@Wait(value = PAGE_ID, by = Lookup.XPATH) +public interface KAK001_OBR001_ClientCardSentByEmailPage extends WebFlow { + + String PAGE_ID = "//div[text()='KAK001_OBR001_001']"; + String CONTINUE_BUTTON = "OBR001_S001_B002"; + + @Click(CONTINUE_BUTTON) + TIS051_S001_DispositionGeneratePage clickContineButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS003_S001_AddCodeOfRecommendedPersonPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS003_S001_AddCodeOfRecommendedPersonPage.java new file mode 100644 index 0000000..28f24d8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS003_S001_AddCodeOfRecommendedPersonPage.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage.*; + +@Wait(value = ODS003_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 80) +@Wait(value = {PAGE_ID, PRODUCT_NOT_RECOMMENDED_CHECKBOX}, waitSecondsForElement = 80) +public interface ODS003_S001_AddCodeOfRecommendedPersonPage extends WebFlow, StoreAccessor { + String ODS003_S001_PAGE_LABEL_XPATH = "//div[text()='ODS003_S001']"; + String PAGE_ID = "ODS003_S001_Z001"; + String SAVE_PROMOTER_CODE_BUTTON = "ODS003_S001_B001"; + String WITHOUT_RECOMMEND_BUTTON = "ODS003_S001_B003"; + String RECOMMENDED_BY_INPUT = "ODS003_S001_E001"; + String PRODUCT_NOT_RECOMMENDED_CHECKBOX = "ODS003_S001_H003_1"; + + @TypeInto(RECOMMENDED_BY_INPUT) + ODS003_S001_AddCodeOfRecommendedPersonPage fillPromoterCode(String operatorinstCode); + + @Click(PRODUCT_NOT_RECOMMENDED_CHECKBOX) + ODS003_S001_AddCodeOfRecommendedPersonPage checkProductNotRecommended(); + + @Click(SAVE_PROMOTER_CODE_BUTTON) + ODS003_S001_AddCodeOfRecommendedPersonPageTransitions clickSavePromoter(); + + @Click(WITHOUT_RECOMMEND_BUTTON) + ODS003_S001_AddCodeOfRecommendedPersonPageTransitions clickWithoutRecommendation(); + + @CustomAction + default ODS003_S001_AddCodeOfRecommendedPersonPageTransitions clickWithoutRecommendationAndDismissAlertIfvisible() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> WITHOUT_RECOMMEND_BUTTON); + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(1); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS003_S001_AddCodeOfRecommendedPersonPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS003_S001_AddCodeOfRecommendedPersonPageTransitions.java new file mode 100644 index 0000000..72b45a1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS003_S001_AddCodeOfRecommendedPersonPageTransitions.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS011_OBR001_SuspendDispositionPrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL077_S001_ClientsBusinessAndPersonalData; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL004_S001_EditBusinessInfoPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP028_S001_SignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.OBR001_FlexiCreditRecommendationPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.components.ADC001_OBR001_002_IbTypeSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL001_S001_SelectProductsPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.DUP004_S002_AccountSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.term.deposit.RTV003_S001_DepositOfPrincipalTypePage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ODS003_S001_AddCodeOfRecommendedPersonPageTransitions extends WebFlow { + + DUP004_S002_AccountSelectionPage onAccountSelectionPage(); + + OBR001_FlexiCreditRecommendationPage onFlexiCreditRecommendationPage(); + + TIS011_OBR001_SuspendDispositionPrintPage onSuspendDispositionPrintPage(); + + NEP028_S001_SignaturePage onSignatureConfirmationPage(); + + TIS051_S001_DispositionGeneratePage onDispositionPage(); + + ADC001_OBR001_002_IbTypeSelectionPage onIbTypeSelectionPage(); + + KUL004_S001_EditBusinessInfoPage onEditBusinessInfoPage(); + + KUL077_S001_ClientsBusinessAndPersonalData onBusinessInfoPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + KUL001_S001_SelectProductsPage onSelectProductSmeCommercial(); + + RTV003_S001_DepositOfPrincipalTypePage onDepositOfPrincipalTypePage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS005_S001_FoEditingPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS005_S001_FoEditingPage.java new file mode 100644 index 0000000..6aa277b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS005_S001_FoEditingPage.java @@ -0,0 +1,114 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.SCN001_S001_IdDocumentsCopy; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS005_S001_FoEditingPage.*; + +@Wait(value = ODS005_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait({PAGE_TITLE_LABEL, CONTINUE_BUTTON}) +public interface ODS005_S001_FoEditingPage extends WebFlow { + + String ODS005_S001_PAGE_LABEL_XPATH = "//div[text()='ODS005_S001']"; + + String PAGE_TITLE_LABEL = "ODS005_S001_L024"; + + String PLACE_OF_BIRTH_INPUT = "ODS005_S001_E005"; + String BIRTH_NUMBER_INPUT = "ODS005_S001_E007"; + String ID_NUMBER_INPUT = "ODS005_S001_E008"; + String ID_VALIDITY_INPUT = "ODS005_S001_E009"; + String STREET_INPUT = "ODS005_S001_E010"; + String DESCRIPTIVE_NUMBER_INPUT = "ODS005_S001_E011"; + String CITY_NAME_INPUT = "ODS005_S001_E013"; + String ZIP_CODE_INPUT = "ODS005_S001_E014"; + String MOBILE_PHONE_INPUT = "ODS005_S001_E022"; + String MOBILE_PHONE_CODE_INPUT = "ODS005_S001_E023"; + + String UNIFIED_ADDRESS_LOOKUP_BUTTON = "XXX000_T001_B100"; + String FIRST_FOUND_ADDRESS_BUTTON = "XXX000_T001_G100-0"; + + String ID_TYPE_SELECT = "ODS005_S001_C002"; + String PERSON_PHYSICALLY_ONSITE_SELECT = "ODS005_S001_C005"; + + String GENDER_MALE_RADIO = "ODS005_S001_R001_1"; + String GENDER_FEMALE_RADIO = "ODS005_S001_R001_2"; + String POLITICALLY_EXPOSED_PERSON = "ODS005_S001_R002_0"; + + String ADDRESS_LOOKUP_FLOAT_BUTTON = "ODS005_S001_P001"; + String ID_COUNTRY_RELEASE_BUTTON = "ODS005_S001_P002"; + String COUNTRY_IN_ADDRESS_BUTTON = "ODS005_S001_P003"; + String CZECH_RESIDENCY_BUTTON = "ODS005_S001_P004"; + String CZECH_COUNTRY_OF_BIRTH_BUTTON = "ODS005_S001_P005"; + + String CONTINUE_BUTTON = "ODS005_S001_B001"; + + @TypeInto(BIRTH_NUMBER_INPUT) + ODS005_S001_FoEditingPage fillBirthNumber(String birthNumber); + + @TypeInto(STREET_INPUT) + ODS005_S001_FoEditingPage fillStreet(String street); + + @TypeInto(DESCRIPTIVE_NUMBER_INPUT) + ODS005_S001_FoEditingPage fillDescriptiveNumber(String descriptiveNumber); + + @TypeInto(CITY_NAME_INPUT) + ODS005_S001_FoEditingPage fillCityName(String cityName); + + @TypeInto(ZIP_CODE_INPUT) + ODS005_S001_FoEditingPage fillZipCode(String zipCode); + + @TypeInto(ID_NUMBER_INPUT) + ODS005_S001_FoEditingPage fillIdNumber(String idNumber); + + @TypeInto(ID_VALIDITY_INPUT) + ODS005_S001_FoEditingPage fillIdValidTill(String idValidTill); + + @TypeInto(PLACE_OF_BIRTH_INPUT) + ODS005_S001_FoEditingPage fillPlaceOfBirth(String placeOfBirth); + + @TypeInto(MOBILE_PHONE_INPUT) + ODS005_S001_FoEditingPage fillMobilePhone(String mobilePhone); + + @TypeInto(MOBILE_PHONE_CODE_INPUT) + ODS005_S001_FoEditingPage fillMobilePhoneCode(String mobilePhoneCode); + + @Select(PERSON_PHYSICALLY_ONSITE_SELECT) + ODS005_S001_FoEditingPage clickPersonPhysicallyOnsite(String personPhysicallyOnsite); + + @Click(ID_COUNTRY_RELEASE_BUTTON) + ODS005_S001_FoEditingPage clickCzechCountryIdReleaseButton(); + + @Select(ID_TYPE_SELECT) + ODS005_S001_FoEditingPage selectIdType(String idType); + + @Click(COUNTRY_IN_ADDRESS_BUTTON) + ODS005_S001_FoEditingPage clickCzechCountryAddress(); + + @Click(GENDER_MALE_RADIO) + ODS005_S001_FoEditingPage clickGenderMaleRadio(); + + @Click(GENDER_FEMALE_RADIO) + ODS005_S001_FoEditingPage clickGenderFemaleRadio(); + + @Click(CZECH_RESIDENCY_BUTTON) + ODS005_S001_FoEditingPage clickCzechResidencyButton(); + + @Click(CZECH_COUNTRY_OF_BIRTH_BUTTON) + ODS005_S001_FoEditingPage clickCzechCountryOfBirthButton(); + + @Click(ADDRESS_LOOKUP_FLOAT_BUTTON) + ODS005_S001_FoEditingPage clickAddressLookupMagnifyGlass(); + + @Click(value = UNIFIED_ADDRESS_LOOKUP_BUTTON, andWait = @Wait(value = FIRST_FOUND_ADDRESS_BUTTON, by = Lookup.ID, until = Until.VISIBLE)) + ODS005_S001_FoEditingPage clickDoAddressSearch(); + + @Click(FIRST_FOUND_ADDRESS_BUTTON) + ODS005_S001_FoEditingPage clickFirstFoundAddress(); + + @Click(POLITICALLY_EXPOSED_PERSON) + ODS005_S001_FoEditingPage chooseNotPoliticallyExposedPerson(); + + @Click(CONTINUE_BUTTON) + SCN001_S001_IdDocumentsCopy clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS005_S002_IdentificationOfPerson.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS005_S002_IdentificationOfPerson.java new file mode 100644 index 0000000..d1b3ed8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/ODS005_S002_IdentificationOfPerson.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = ODS005_S002_IdentificationOfPerson.ODS005_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface ODS005_S002_IdentificationOfPerson extends WebFlow { + String ODS005_S002_PAGE_LABEL_XPATH = "//div[text()='ODS005_S002']"; + String FIRST_NAME_INPUT = "ODS005_S002_E002"; + String LAST_NAME_INPUT = "ODS005_S002_E003"; + String DATE_OF_BIRTH_INPUT = "ODS005_S002_E004"; + String BIRTH_NUMBER_INPUT = "ODS005_S002_E005"; + String CZECH_NATIONALITY_BUTTON = "ODS005_S002_P001"; + String CONTINUE_BUTTON = "ODS005_S002_B001"; + + @TypeInto(FIRST_NAME_INPUT) + ODS005_S002_IdentificationOfPerson typeFirstName(String firstName); + + @TypeInto(LAST_NAME_INPUT) + ODS005_S002_IdentificationOfPerson typeLastName(String lastName); + + @TypeInto(DATE_OF_BIRTH_INPUT) + ODS005_S002_IdentificationOfPerson typeDateOfBirthNumber(String idNumber); + + @TypeInto(BIRTH_NUMBER_INPUT) + ODS005_S002_IdentificationOfPerson typeBirthNumber(String birthNumber); + + @Click(CZECH_NATIONALITY_BUTTON) + ODS005_S002_IdentificationOfPerson clickCzechNationalityButton(); + + @Click(CONTINUE_BUTTON) + OBR001_S001_PrintInstructionPage clickContinue(); + +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/PVX002_S002_AccountDispositionOwnerPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/PVX002_S002_AccountDispositionOwnerPage.java new file mode 100644 index 0000000..1a30bbb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/PVX002_S002_AccountDispositionOwnerPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage.*; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, PAGE_ID_XPATH}, waitSecondsForElement = 60, by = Lookup.XPATH) +@Wait(NOT_CREATE_NOW_CHECKBOX) +public interface PVX002_S002_AccountDispositionOwnerPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='PVX002_S002']"; + String PAGE_ID_XPATH = "//div[text()='PVX002_S002_X002' or text()='PVX002_S002_X001' or text()='PVX002_S002']"; + String NOT_CREATE_NOW_CHECKBOX = "PVX002_S002_H003_1"; + String SKIP_CREATE = "PVX002_S002_B003"; + String OWNER_ONLY = "PVX002_S002_B002"; + + @Click(NOT_CREATE_NOW_CHECKBOX) + PVX002_S002_AccountDispositionOwnerPage clickNotCreateNow(); + + @Click(OWNER_ONLY) + PVX002_S002_AccountDispositionOwnerPageTransitions clickOwnerOnly(); + + @Click(SKIP_CREATE) + PVX002_S002_AccountDispositionOwnerPageTransitions clickSkipCreate(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/PVX002_S002_AccountDispositionOwnerPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/PVX002_S002_AccountDispositionOwnerPageTransitions.java new file mode 100644 index 0000000..0d2ef29 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/PVX002_S002_AccountDispositionOwnerPageTransitions.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.INK001_OBR001_004_ConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.PVX011_OBR001_ConfirmationOfSignatureOwnerEmpowermentPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS027_OBR001_PreContractualInformationPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.ib.ADC047_S001_IbSettingsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV010_S001_PrintSignPadPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV019_S001_SignaturePatternsEditPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF016_S001_MeetingRecordSigning; +import cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF016_S002_RecordOfClientMeeting; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PVX002_S002_AccountDispositionOwnerPageTransitions extends WebFlow { + + NPV019_S001_SignaturePatternsEditPage onSignaturePatternsEditPage(); + + PVX011_OBR001_ConfirmationOfSignatureOwnerEmpowermentPage onConfirmationsOfSignatureOwnerEmpowermentPage(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPage(); + + PSP004_S001_PrintPage onPrintPage(); + + INK001_OBR001_004_ConfirmationPage onConfirmationPage(); + + ODS003_S001_AddCodeOfRecommendedPersonPage onAddCodeOfRecommendedPersonPage(); + + INF016_S002_RecordOfClientMeeting onRecordOfClientMeetingPage(); + + TIS027_OBR001_PreContractualInformationPage onPreContractualInformationPage(); + + INF016_S001_MeetingRecordSigning onMeetingRecordSigningPage(); + + NPV010_S001_PrintSignPadPage onPrintSignPadPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + ADC047_S001_IbSettingsPage onIbSettingsPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/TIS051_S001_DispositionGeneratePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/TIS051_S001_DispositionGeneratePage.java new file mode 100644 index 0000000..37b373c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/TIS051_S001_DispositionGeneratePage.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.TIS051_S001_DispositionGeneratePage.GENERATE_LATER_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.TIS051_S001_DispositionGeneratePage.GENERATE_NOW_BUTTON; + +@Wait(value = {GENERATE_LATER_BUTTON, GENERATE_NOW_BUTTON}, waitSecondsForElement = 80, until = Until.CLICKABLE) +public interface TIS051_S001_DispositionGeneratePage extends WebFlow, StoreAccessor { + + String GENERATE_LATER_BUTTON = "TIS051_S001_B001"; + String GENERATE_NOW_BUTTON = "TIS051_S001_B003"; + + @CustomAction + default TIS051_S001_DispositionGeneratePageTransitions clickGenerateLater() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.moveToElement(GENERATE_LATER_BUTTON); + endpoint.click(() -> GENERATE_LATER_BUTTON); + return null; + } + + @CustomAction + default TIS051_S001_DispositionGeneratePageTransitions clickGenerateNow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.moveToElement(GENERATE_NOW_BUTTON); + endpoint.click(() -> GENERATE_NOW_BUTTON); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/TIS051_S001_DispositionGeneratePageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/TIS051_S001_DispositionGeneratePageTransitions.java new file mode 100644 index 0000000..1f315b7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/TIS051_S001_DispositionGeneratePageTransitions.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.HPO009_S001_DebitCardDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.insurance.BAL001_S008_ProductsListPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.TIS051_OBR001_ContractDocumentationPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.adc.HPO008_S001_OnlineChannelsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface TIS051_S001_DispositionGeneratePageTransitions extends WebFlow { + TIS051_OBR001_ContractDocumentationPage onContractDocumentationPage(); + + BAL001_S008_SummaryStartDocumentsPage onSummaryStartDocumentsPage(); + + BAL001_S008_ProductsListPage onProductsListPage(); + + HKO101_S001_MainClientPage onMainClientPage(); + + HPO009_S001_DebitCardDetailPage onDebitCardDetailPage(); + + HPO008_S001_OnlineChannelsPage onOnlineChannelsPage(); + + PSP004_S001_PrintPage onPrintPage(); + + TIS050_S002_SignerSelectionPage onSignerSelectionPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + TIS050_S001_SignerSelectionPage onRetailSignerSelectionPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/VDB001_S001_SecondBankerJoiningPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/VDB001_S001_SecondBankerJoiningPage.java new file mode 100644 index 0000000..15e129b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/VDB001_S001_SecondBankerJoiningPage.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.VDB001_S001_SecondBankerJoiningPage.PAGE_LAYOUT_DIV; +import static cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.VDB001_S001_SecondBankerJoiningPage.VDB001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.harness.support.web.Lookup.XPATH; + +@Wait(value = VDB001_S001_PAGE_LABEL_XPATH, by = XPATH, waitSecondsForElement = 60) +@Wait(value = PAGE_LAYOUT_DIV, waitSecondsForElement = 60) +public interface VDB001_S001_SecondBankerJoiningPage extends WebFlow, StoreAccessor { + String VDB001_S001_PAGE_LABEL_XPATH = "//div[text()='VDB001_S001']"; + String PAGE_LAYOUT_DIV = "VDB001_S001_X003"; + String SURNAME_INPUT = "VDB001_S001_E002"; + String SEARCH_BANKER_BUTTON = "VDB001_S001_P002"; + String BANKER_LIST_LAYOUT_DIV = "VDB001_S001_X001"; + String BANKER_GENERAL_RADIO_BY_USERNAME_XPATH = "//table[@id='VDB001_S001_G001_UfoTable']//td[contains(text(), '%s')]//ancestor::tr//input[@name='VDB001_S001_G001']"; + String CONTINUE_BUTTON = "VDB001_S001_B001"; + String FIRST_NAME_RADIO = "VDB001_S001_G001-0"; + + @TypeInto(SURNAME_INPUT) + VDB001_S001_SecondBankerJoiningPage fillSurnameInput(String surname); + + @Click(value = SEARCH_BANKER_BUTTON, andWait = @Wait(BANKER_LIST_LAYOUT_DIV)) + VDB001_S001_SecondBankerJoiningPage clickSearchButton(); + + @CustomAction + default VDB001_S001_SecondBankerJoiningPage selectBankerByLogin(String bankerUsername) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> String.format(BANKER_GENERAL_RADIO_BY_USERNAME_XPATH, bankerUsername), XPATH); + return null; + } + + @Click(value = SEARCH_BANKER_BUTTON, + andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + VDB001_S001_SecondBankerJoiningPage clickSearch(); + + @Click(value = FIRST_NAME_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + VDB001_S001_SecondBankerJoiningPage selectFirstName(); + + @Click(CONTINUE_BUTTON) + VDB001_S001_SecondBankerJoiningPageTransitions clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/VDB001_S001_SecondBankerJoiningPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/VDB001_S001_SecondBankerJoiningPageTransitions.java new file mode 100644 index 0000000..bda7231 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/client/settings/VDB001_S001_SecondBankerJoiningPageTransitions.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.client.settings; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK002_OBR001_ConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.VER017_S001_SecondBankerVerificationStatusPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.OPN008_S001_ExpressSignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.TIS051_OBR001_ContractDocumentationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC007_S002_LetterPrintPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface VDB001_S001_SecondBankerJoiningPageTransitions extends WebFlow { + + TIS051_OBR001_ContractDocumentationPage onContractDocumentationPage(); + + OPN008_S001_ExpressSignaturePage onExpressSignaturePage(); + + OPN008_S001_SignContractPage onSignContractPage(); + + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + UDC007_S002_LetterPrintPage onLetterPrintPage(); + + PSP004_S001_PrintPage onPrintPage(); + + VER017_S001_SecondBankerVerificationStatusPage onSecondBankerVerificationPage(); + + NKK002_OBR001_ConfirmationPage onConfirmationPage(); + + TIS046_S001_DocumentsProvidedToClientPage onDocumentProvided(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisAllEvidencniCisloNEP.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisAllEvidencniCisloNEP.java new file mode 100644 index 0000000..7a8b49a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisAllEvidencniCisloNEP.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.codelists; + +public enum HCisAllEvidencniCisloNEP { + + BLOCK_CLIENT_100("100 ZABLOKUJ KLIENTA"), + SEND_TO_VERIFICATION_250("250 DO OVĚŘOVÁNÍ"); + + private final String value; + + HCisAllEvidencniCisloNEP(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisAllLoanObject.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisAllLoanObject.java new file mode 100644 index 0000000..d386ab3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisAllLoanObject.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.codelists; + +public enum HCisAllLoanObject { + + FAMILY_HOUSE("Rodinný dům"), + APARTMENT("Byt"), + LAND("Pozemek"); + + private final String value; + + HCisAllLoanObject(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisAllObrazovkySME.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisAllObrazovkySME.java new file mode 100644 index 0000000..9056bc6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisAllObrazovkySME.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.codelists; + +public enum HCisAllObrazovkySME { + + CLIENT("32"), + RATING("25"), + CRU("28"), + RESOURCES_MONETA("12"), + RESOURCES("13"), + SALES_EMPLOYEE("16"), + RISK("20"), + CLIENT_ACCOUNTS("17"), + COVENANTS("33"), + CONDITIONS_FULFILMENT("6"); + + private final String value; + + HCisAllObrazovkySME(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisBLRateFixation.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisBLRateFixation.java new file mode 100644 index 0000000..aa58838 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisBLRateFixation.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.codelists; + +public enum HCisBLRateFixation { + + _3Y("3 roky"), + _5Y("5 let"), + _10Y("10 let"), + FIX("Maximální"); + + private final String value; + + HCisBLRateFixation(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + } diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisProductClass.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisProductClass.java new file mode 100644 index 0000000..a03007c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisProductClass.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.codelists; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum HCisProductClass implements DynamicPathPart { + CURRENT_ACCOUNT("12"), + SAVINGS_ACCOUNT("13"), + ONETIME_TERM_DEPOSIT("14"), + FLEXIKREDIT("15"), + EXPRESS("16"), + MONETA_BUSINESS_CARD("25"), + DEBIT_CARD("27"), + CREDIT_CARD("29"), + MUTUAL_FUNDS("30"), + ADC_IB_MK("34"), + BANKKLIENT("35"), + BUILDING_SAVINGS("43"), + CONSOLIDATION("58"), + ONE_CLICK("61"), + SME_AUTOMATS("68"), + INSURANCE("77"), + ADC_SBA("70"), + UNIVERSAL_REQUEST("86"), + EXPRESS_PLUS("92"), + TOM_JUNIOR_ACCOUNT("61"); + + private final String value; + + HCisProductClass(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisPropertyOwnershipType.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisPropertyOwnershipType.java new file mode 100644 index 0000000..373f79c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisPropertyOwnershipType.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.codelists; + +public enum HCisPropertyOwnershipType { + + PERSONAL("Osobní vlastnictví"), + COOPERATIVE("Družstevní vlastnictví"), + RENTAL("Nájemní"), + MUNICIPAL_RENTAL("Nájemní (ve vlastnictví obce, města, státu nebo PO)"); + + private final String value; + + HCisPropertyOwnershipType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisTermDepositPeriod.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisTermDepositPeriod.java new file mode 100644 index 0000000..189547b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisTermDepositPeriod.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.codelists; + +public enum HCisTermDepositPeriod { + M1("1 měsíc"), + M2("2 měsíce"), + M3("3 měsíce"), + M4("4 měsíce"), + M5("5 měsíců"), + M6("6 měsíců"), + M9("9 měsíců"), + M12("12 měsíců"), + M24("2 roky"), + M36("3 roky"), + M48("4 roky"), + M60("5 let"); + + private final String value; + + HCisTermDepositPeriod(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisTermDepositProducts.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisTermDepositProducts.java new file mode 100644 index 0000000..9d22271 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisTermDepositProducts.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.codelists; + +public enum HCisTermDepositProducts { + CZK_12MONTH_FOP("JTV KČ 12M FOP /R/"), + CZK_FOP("JTV_KČ_FOP/R/"), + USD_FOP("JTV_USD_FOP/R/"), + EUR_FOP("JTV_EUR_FOP/R/"); + + private final String value; + + HCisTermDepositProducts(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisUcelUveruExpres.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisUcelUveruExpres.java new file mode 100644 index 0000000..b55837c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/HCisUcelUveruExpres.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.codelists; + +public enum HCisUcelUveruExpres { + + RECONSTRUCTION("Rekonstrukce"), + CONSTRUCTION("Výstavba"), + TRANSFER_OF_COOPERATIVE_SHARE("Úhrada za převod družstevního podílu"), + RECONSTRUCTION_WITH_ENERGY_SAVINGS("Rekonstrukce s energ. úsporami"), + CONSTRUCTION_WITH_ENERGY_SAVINGS("Výstavba s energ. úsporami"); + + private final String value; + + HCisUcelUveruExpres(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/Product.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/Product.java new file mode 100644 index 0000000..6eb5ac1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/codelists/Product.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.codelists; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum Product implements DynamicPathPart { + ADC_IB_MK_ACTIVE("Internet Banka heslo/MK; Aktivní"); + + private final String value; + + Product(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/ADC001_OBR001_002_IbTypeSelectionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/ADC001_OBR001_002_IbTypeSelectionPage.java new file mode 100644 index 0000000..874bb3b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/ADC001_OBR001_002_IbTypeSelectionPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.dsl.ufo.banka.pages.ib.ADC001_S001_IbPasswordKeyPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.ADC001_OBR001_002_IbTypeSelectionPage.ADC001_OBR001_002_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.ADC001_OBR001_002_IbTypeSelectionPage.OBR001_S001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, ADC001_OBR001_002_PAGE_LABEL_XPATH}, by = Lookup.XPATH) +public interface ADC001_OBR001_002_IbTypeSelectionPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String ADC001_OBR001_002_PAGE_LABEL_XPATH = "//div[text()='ADC001_OBR001_002']"; + String ACTIVE_BUTTON = "OBR001_S001_B003"; + + @Click(ACTIVE_BUTTON) + ADC001_S001_IbPasswordKeyPage clickActiveToIbPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/BUF051_S001_CreateCurrentAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/BUF051_S001_CreateCurrentAccountPage.java new file mode 100644 index 0000000..1f22525 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/BUF051_S001_CreateCurrentAccountPage.java @@ -0,0 +1,76 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.dsl.ufo.banka.pages.fop.TIS005_S002_SignerSelectionPoPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.KUL032_S001_MiniFlexiBusinessLimitPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.SIF004_S001_ContactSettingsForSendingEmailsPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.DUP009_S001_CreateElectronicDistributionChannel; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.BUF051_S001_CreateCurrentAccountPage.BUF051_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.BUF051_S001_CreateCurrentAccountPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = BUF051_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 60) +public interface BUF051_S001_CreateCurrentAccountPage extends WebFlow, StoreAccessor { + String BUF051_S001_PAGE_LABEL_XPATH = "//div[text()='BUF051_S001']"; + + String PRODUCT_TYPE_SELECT = "BUF051_S001_C001"; + String DISTRIBUTION_TYPE_SELECT = "BUF051_S001_C003"; + String ACCOUNT_FLAG_SELECT = "BUF051_S001_C010"; + String ACCOUNT_TYPE_SELECT = "BUF051_S001_C007"; + String CURRENCY_SELECT = "BUF051_S001_C006"; + String STANDARD_CURRENCY_ACCOUNT_BUTTON = "BUF051_S001_B013"; + String CREATE_MFB_CHECKBOX = "BUF051_S001_H004_1"; + String CONTINUE_BUTTON = "BUF051_S001_B001"; + + @Select(value = ACCOUNT_FLAG_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BUF051_S001_CreateCurrentAccountPage selectAccountFlag(String accountFlag); + + @Select(value = ACCOUNT_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BUF051_S001_CreateCurrentAccountPage selectAccountType(String accountType); + + @Select(value = PRODUCT_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BUF051_S001_CreateCurrentAccountPage selectProductType(String productType); + + @Select(value = DISTRIBUTION_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BUF051_S001_CreateCurrentAccountPage selectDistributionType(String distributionType); + + @Select(value = CURRENCY_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BUF051_S001_CreateCurrentAccountPage selectCurrency(String accountFlag); + + @Select(value = PRODUCT_TYPE_SELECT, selectByOrder = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BUF051_S001_CreateCurrentAccountPage selectProductTypeByOrder(int orderOfProductType); + + @Click(value = CREATE_MFB_CHECKBOX, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BUF051_S001_CreateCurrentAccountPage changeMfbSetting(); + + @Click(CONTINUE_BUTTON) + TIS005_S002_SignerSelectionPoPage confirmAccountCreation(); + + @Click(CONTINUE_BUTTON) + SIF004_S001_ContactSettingsForSendingEmailsPage confirmCreationOnContactSettingPage(); + + @Click(CONTINUE_BUTTON) + PVX002_S002_AccountDispositionOwnerPage confirmCreationDispositionOwnerPage(); + + @Click(CONTINUE_BUTTON) + DUP009_S001_CreateElectronicDistributionChannel continueToCreateElectronicDistributionChannel(); + + @Click(value = STANDARD_CURRENCY_ACCOUNT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BUF051_S001_CreateCurrentAccountPage clickStandardCurrencyAccount(); + + @CustomAction + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60) + default KUL032_S001_MiniFlexiBusinessLimitPage clickContinueButtonToMainClientPageAndCloseAlertIfVisible() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> CONTINUE_BUTTON); + if (endpoint.isAlertPresent(0)) { + endpoint.acceptAlert(0); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S001_EditCifPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S001_EditCifPage.java new file mode 100644 index 0000000..a742acf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S001_EditCifPage.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF003_OBR001_NoCopyConfirmationPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF003_S001_EditCifPage.CIF003_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF003_S001_EditCifPage.CONTINUE_BUTTON; + +@Wait(value = CIF003_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(CONTINUE_BUTTON) +public interface CIF003_S001_EditCifPage extends WebFlow, StoreAccessor { + String CIF003_S001_PAGE_LABEL_XPATH = "//div[text()='CIF003_S001']"; + String CONTINUE_BUTTON = "CIF003_S001_B002"; + String PHONE_NUMBER_INPUT = "CIF003_S002_U016"; + String ID_CARD_INPUT = "CIF003_S002_U021"; + String ID_VALID_INPUT = "CIF003_S002_E005"; + + @CustomAction + default CIF003_S001_EditCifPage dismissVerifyIdCardAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.dismissAlert(20); + return null; + } + + @Click(CONTINUE_BUTTON) + CIF003_OBR001_NoCopyConfirmationPage clickConfirmationPage(); + + @TypeInto(value = PHONE_NUMBER_INPUT, clear = true) + CIF003_S001_EditCifPage fillPhoneNumber(String phoneNumber); + + @TypeInto(value = ID_CARD_INPUT, clear = true) + CIF003_S001_EditCifPage fillIdCard(String idCard); + + @TypeInto(value = ID_VALID_INPUT, clear = true) + CIF003_S001_EditCifPage fillIdValid(String idValid); + + @Click(CONTINUE_BUTTON) + CIF011_S001_EditFoWhenEditingFopPage continueToEditFoWhenEditingFopPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S002_EditPoFopPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S002_EditPoFopPage.java new file mode 100644 index 0000000..5b7b71e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S002_EditPoFopPage.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF003_S002_EditPoFopPage.*; + +@Wait(value = CIF003_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(SEND_BUTTON) +public interface CIF003_S002_EditPoFopPage extends WebFlow, StoreAccessor { + String CIF003_S002_PAGE_LABEL_XPATH = "//div[text()='CIF003_S002']"; + String SEND_BUTTON = "CIF003_S002_B002"; + String ID_VALID_INPUT = "CIF003_S002_E005"; + String EMAIL_INPUT = "CIF003_S002_E037"; + String PHONE_NUMBER_INPUT = "CIF003_S002_U016"; + String ID_CARD_INPUT = "CIF003_S002_U021"; + + @TypeInto(value = EMAIL_INPUT, clear = true, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF003_S002_EditPoFopPage fillEmail(String email); + + @Click(value = SEND_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF003_S002_EditPoFopPageTransitions clickSend(); + + @TypeInto(value = PHONE_NUMBER_INPUT, clear = true) + CIF003_S002_EditPoFopPage fillPhoneNumber(String phoneNumber); + + @TypeInto(value = ID_CARD_INPUT, clear = true) + CIF003_S002_EditPoFopPage fillIdCard(String idCard); + + @TypeInto(value = ID_VALID_INPUT, clear = true) + CIF003_S002_EditPoFopPage fillIdValid(String idValid); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S002_EditPoFopPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S002_EditPoFopPageTransitions.java new file mode 100644 index 0000000..0547d4f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S002_EditPoFopPageTransitions.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.harness.support.web.WebFlow; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL078_S001_AdditionalBusinessData; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL077_S001_ClientsBusinessAndPersonalData; + +public interface CIF003_S002_EditPoFopPageTransitions extends WebFlow { + CIF011_S001_EditFoWhenEditingFopPage onEditFoWhenEditingFopPage(); + + CIF003_S016_AppendixConfirmationPage onAppendixConfirmationPage(); + + KUL078_S001_AdditionalBusinessData onAdditionalBusinessData(); + + KUL077_S001_ClientsBusinessAndPersonalData onClientsBusinessAndPersonalData(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S005_ContinueAfterSignPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S005_ContinueAfterSignPage.java new file mode 100644 index 0000000..6c87f34 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S005_ContinueAfterSignPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF003_S005_ContinueAfterSignPage.CIF003_S005_PAGE_LABEL_XPATH; + +@Wait(value = CIF003_S005_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface CIF003_S005_ContinueAfterSignPage extends WebFlow { + String CIF003_S005_PAGE_LABEL_XPATH = "//div[text()='CIF003_S005']"; + + String CONTINUE_BUTTON = "CIF003_S005_B001"; + + @Click(CONTINUE_BUTTON) + HKO101_S001_MainClientPage continueMainClientPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S016_AppendixConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S016_AppendixConfirmationPage.java new file mode 100644 index 0000000..11e234a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S016_AppendixConfirmationPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF003_S016_AppendixConfirmationPage.CIF003_S016_PAGE_LABEL_XPATH; + +@Wait(value = CIF003_S016_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +public interface CIF003_S016_AppendixConfirmationPage extends WebFlow { + String CIF003_S016_PAGE_LABEL_XPATH = "//div[text()='CIF003_S016']"; + + String WITH_PRINT_BUTTON = "CIF003_S016_B001"; + String WITHOUT_PRINT_BUTTON = "CIF003_S016_B002"; + + @Click(WITHOUT_PRINT_BUTTON) + CIF003_S016_AppendixConfirmationPageTransitions continueWithoutPrint(); + + @Click(WITH_PRINT_BUTTON) + CIF003_S016_AppendixConfirmationPageTransitions continueWithPrint(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S016_AppendixConfirmationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S016_AppendixConfirmationPageTransitions.java new file mode 100644 index 0000000..1e172bd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF003_S016_AppendixConfirmationPageTransitions.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL077_S001_ClientsBusinessAndPersonalData; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL078_S001_AdditionalBusinessData; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL004_S001_EditBusinessInfoPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface CIF003_S016_AppendixConfirmationPageTransitions extends WebFlow { + KUL077_S001_ClientsBusinessAndPersonalData onClientsBusinessAndPersonalData(); + + KUL004_S001_EditBusinessInfoPage onEditBusinessInfoPage(); + + KUL078_S001_AdditionalBusinessData onAdditionalBusinessData(); + + PSP004_S001_PrintPage onPrintPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF011_S001_EditFoWhenEditingFopPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF011_S001_EditFoWhenEditingFopPage.java new file mode 100644 index 0000000..784d0cf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF011_S001_EditFoWhenEditingFopPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF011_S001_EditFoWhenEditingFopPage.*; + +@Wait(value = CIF011_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(SEND_BUTTON) +public interface CIF011_S001_EditFoWhenEditingFopPage extends WebFlow { + String CIF011_S001_PAGE_LABEL_XPATH = "//div[text()='CIF011_S001']"; + String SEND_BUTTON = "CIF011_S001_B002"; + String MARITAL_STATUS_SELECT = "CIF011_S001_C006"; + String SJM_SELECT = "CIF011_S001_C017"; + String EMAIL_INPUT = "CIF011_S001_U017"; + String POLITICALLY_NOT_EXPOSED_PERSON_RADIO = "CIF011_S001_R003_0"; + String POLITICALLY_EXPOSED_PERSON_RADIO = "CIF011_S001_R003_1"; + + @TypeInto(value = EMAIL_INPUT, clear = true) + CIF011_S001_EditFoWhenEditingFopPage fillEmail(String email); + + @Click(SEND_BUTTON) + CIF011_S001_EditFoWhenEditingFopPageTransitions clickSend(); + + @Select(MARITAL_STATUS_SELECT) + CIF011_S001_EditFoWhenEditingFopPage selectMaritalStatus(String marital); + + @Select(SJM_SELECT) + CIF011_S001_EditFoWhenEditingFopPage selectSJM(String SJM); + + @Click(value = POLITICALLY_NOT_EXPOSED_PERSON_RADIO, jsClick = true) + CIF011_S001_EditFoWhenEditingFopPage clickNotPoliticallyExposedPerson(); + + @Click(value = POLITICALLY_EXPOSED_PERSON_RADIO, jsClick = true) + CIF011_S001_EditFoWhenEditingFopPage clickPoliticallyExposedPerson(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF011_S001_EditFoWhenEditingFopPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF011_S001_EditFoWhenEditingFopPageTransitions.java new file mode 100644 index 0000000..a4a5a0d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/CIF011_S001_EditFoWhenEditingFopPageTransitions.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.GDP007_S001_ChangeOfIdentificationDocuments; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface CIF011_S001_EditFoWhenEditingFopPageTransitions extends WebFlow { + + CIF003_S016_AppendixConfirmationPage onAppendixConfirmationPage(); + + GDP007_S001_ChangeOfIdentificationDocuments onChangeOfIdentificationDocuments(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/INK001_OBR001_007_ContinueFromHandoverPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/INK001_OBR001_007_ContinueFromHandoverPage.java new file mode 100644 index 0000000..bd7d323 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/INK001_OBR001_007_ContinueFromHandoverPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.INK001_OBR001_007_ContinueFromHandoverPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.INK001_OBR001_007_ContinueFromHandoverPage.INK001_OBR001_007_PAGE_LABEL_XPATH; + +@Wait(value = {INK001_OBR001_007_PAGE_LABEL_XPATH, INK001_OBR001_007_PAGE_LABEL_XPATH}, by = Lookup.XPATH) +@Wait(CONTINUE_BUTTON) +public interface INK001_OBR001_007_ContinueFromHandoverPage extends WebFlow { + + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String INK001_OBR001_007_PAGE_LABEL_XPATH = "//div[text()='INK001_OBR001_007']"; + String CONTINUE_BUTTON = "OBR001_S001_B002"; + + @Click(CONTINUE_BUTTON) + HLO001_S001_ClientSearchPage clickContinueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S001_BuildingSavingsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S001_BuildingSavingsPage.java new file mode 100644 index 0000000..d398e90 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S001_BuildingSavingsPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.WUE001_S001_BuildingSavingsPage.CONTINUE_BUTTON; + + +@Wait(CONTINUE_BUTTON) +public interface WUE001_S001_BuildingSavingsPage extends WebFlow { + + String CONTINUE_BUTTON = "WUE001_S001_B001"; + String ISSUER_INPUT = "WUE001_S001_E017"; + String STATE_OF_BIRTH_BUTTON = "WUE001_S001_P001"; + String CZECH_STATE_OF_TAX_RESIDENCY_IMG = "WUE001_S001_P003"; + + @Click(STATE_OF_BIRTH_BUTTON) + WUE001_S001_BuildingSavingsPage clickStateOfBirthButton(); + + @TypeInto(ISSUER_INPUT) + WUE001_S001_BuildingSavingsPage fillIssuer(String issuer); + + @Click(CONTINUE_BUTTON) + WUE001_S004_BuildingSavingsParametersPage continueToParametersPage(); + + @Click(CZECH_STATE_OF_TAX_RESIDENCY_IMG) + WUE001_S001_BuildingSavingsPage clickCzechStateTaxResidency(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S004_BuildingSavingsParametersPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S004_BuildingSavingsParametersPage.java new file mode 100644 index 0000000..7c675ee --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S004_BuildingSavingsParametersPage.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.SCN001_S001_IdDocumentsCopy; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.WUE001_S004_BuildingSavingsParametersPage.CONTINUE_BUTTON; + +@Wait(CONTINUE_BUTTON) +public interface WUE001_S004_BuildingSavingsParametersPage extends WebFlow { + + String CONTINUE_BUTTON = "WUE001_S004_B001"; + String SYMBOL_SELECT = "WUE001_S004_C001"; + String ACTION_CODE_SELECT = "WUE001_S004_C002"; + String SAVINGS_SELECT = "WUE001_S004_C003"; + String CREDIT_SELECT = "WUE001_S004_C004"; + String AMOUNT_INPUT = "WUE001_S004_E006"; + String STATE_SUPPORT_RADIO = "WUE001_S004_R010_1"; + String ANNUAL_REPORT_RADIO = "WUE001_S004_R011_post"; + String PHYSICAL_CONSENT_RADIO = "WUE001_S004_R001_P"; + + + @Select(SYMBOL_SELECT) + WUE001_S004_BuildingSavingsParametersPage selectSymbol(String symbol); + + @Select(ACTION_CODE_SELECT) + WUE001_S004_BuildingSavingsParametersPage selectActionCode(String actionCode); + + @TypeInto(AMOUNT_INPUT) + WUE001_S004_BuildingSavingsParametersPage fillAmount(String amount); + + @Click(STATE_SUPPORT_RADIO) + WUE001_S004_BuildingSavingsParametersPage clickStateSupportYes(); + + @Click(ANNUAL_REPORT_RADIO) + WUE001_S004_BuildingSavingsParametersPage clickAnnualReportByPost(); + + @Click(PHYSICAL_CONSENT_RADIO) + WUE001_S004_BuildingSavingsParametersPage clickPhysicalConsentYes(); + + @Click(CONTINUE_BUTTON) + SCN001_S001_IdDocumentsCopy continueToConfirmationPage(); + + @Select(SAVINGS_SELECT) + WUE001_S004_BuildingSavingsParametersPage selectSavings(String savings); + + @Select(CREDIT_SELECT) + WUE001_S004_BuildingSavingsParametersPage selectCredit(String credit); + + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S005_BuildingSavingsConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S005_BuildingSavingsConfirmationPage.java new file mode 100644 index 0000000..f8c5501 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S005_BuildingSavingsConfirmationPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.WUE001_S005_BuildingSavingsConfirmationPage.CONTINUE_BUTTON; + +@Wait(value = {CONTINUE_BUTTON}, waitSecondsForElement = 80) +public interface WUE001_S005_BuildingSavingsConfirmationPage extends WebFlow { + + String CONTINUE_BUTTON = "WUE001_S005_B001"; + + @Click(CONTINUE_BUTTON) + WUE001_S006_BuildingSavingsConsentPage continueToConsentPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S006_BuildingSavingsConsentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S006_BuildingSavingsConsentPage.java new file mode 100644 index 0000000..a4202da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/components/WUE001_S006_BuildingSavingsConsentPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.components; + +import cz.moneta.test.dsl.ufo.banka.pages.insurance.BAL001_S008_ProductsListPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.components.WUE001_S006_BuildingSavingsConsentPage.CONTINUE_BUTTON; + +@Wait(CONTINUE_BUTTON) +public interface WUE001_S006_BuildingSavingsConsentPage extends WebFlow { + + String CONTINUE_BUTTON = "WUE001_S006_B001"; + + @Click(CONTINUE_BUTTON) + BAL001_S008_ProductsListPage continueToProductsListPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/savings/account/SPU021_S001_SavingsAccountCreatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/savings/account/SPU021_S001_SavingsAccountCreatePage.java new file mode 100644 index 0000000..03eece7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/savings/account/SPU021_S001_SavingsAccountCreatePage.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.savings.account; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import java.util.Arrays; +import java.util.List; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.savings.account.SPU021_S001_SavingsAccountCreatePage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(CONTINUE_BUTTON) +public interface SPU021_S001_SavingsAccountCreatePage extends WebFlow, StoreAccessor { + + String SU_SPORENI = "Spoření H"; + String SU_GENIUS_CAPS = "SÚ GENIUS"; + String SU_GENIUS = "SÚ Genius"; + + String CONTINUE_BUTTON = "SPU021_S001_B001"; + String FEE_PLAN_COMBO = "SPU021_S001_C001"; + String ACCOUNT_TITLE_INPUT = "SPU021_S001_E001"; + String DISPOSITION_RIGHTS_YES_RADIO = "SPU021_S001_R002_1"; + String DISPOSITION_RIGHTS_NO_RADIO = "SPU021_S001_R002_0"; + List FEE_PLAN_SELECT_VALUE_PARTS = Arrays.asList(SU_SPORENI, SU_GENIUS_CAPS); + String INTEREST_PLAN_XPATH = "//*[@id='SPU021_S001_L006' and (contains(text(),'" + SU_SPORENI + "') or contains(text(),'" + SU_GENIUS + "'))]"; + + @Wait(value = INTEREST_PLAN_XPATH, by = Lookup.XPATH) + @Wait(CONTINUE_BUTTON) + @Click(CONTINUE_BUTTON) + TIS050_S001_SignerSelectionPage submitPage(); + + @CustomAction + default SPU021_S001_SavingsAccountCreatePage selectFeePlan(String feePlan) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.selectByVisibleText(FEE_PLAN_COMBO, feePlan); + endpoint.waitForElementsToLoad(2, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @TypeInto(ACCOUNT_TITLE_INPUT) + SPU021_S001_SavingsAccountCreatePage fillAccountTitle(String accountTitle); + + @Click(value = DISPOSITION_RIGHTS_YES_RADIO, jsClick = true) + SPU021_S001_SavingsAccountCreatePage selectDispositionRadioYes(); + + @Click(DISPOSITION_RIGHTS_NO_RADIO) + SPU021_S001_SavingsAccountCreatePage clickDispositionRadioNo(); + + @CustomAction + default SPU021_S001_SavingsAccountCreatePage selectFeePlanCombo() { + UfoEndpoint ufoEndpoint = getEndpoint(UfoEndpoint.class); + ufoEndpoint.selectByContainingTexts(FEE_PLAN_COMBO, FEE_PLAN_SELECT_VALUE_PARTS); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV010_S001_PrintSignPadPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV010_S001_PrintSignPadPage.java new file mode 100644 index 0000000..fc457a0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV010_S001_PrintSignPadPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV010_S001_PrintSignPadPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH, until = Until.CLICKABLE, waitSecondsForElement = 60) +public interface NPV010_S001_PrintSignPadPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='NPV010_S001']"; + String CONTINUE_BUTTON = "NPV010_S001_B001"; + String BACK_BUTTON = "NPV010_S001_B002"; + + @Click(CONTINUE_BUTTON) + OBR001_S001_PrintInstructionPage clickContinue(); + + @Click(BACK_BUTTON) + OBR001_S001_PrintInstructionPage clickBack(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV019_OBR001_ConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV019_OBR001_ConfirmationPage.java new file mode 100644 index 0000000..bdac8e0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV019_OBR001_ConfirmationPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV019_OBR001_ConfirmationPage.CLIENT_HAS_CONFIRMED_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV019_OBR001_ConfirmationPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +@Wait(CLIENT_HAS_CONFIRMED_BUTTON) +public interface NPV019_OBR001_ConfirmationPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[contains(text(), 'NPV016_OBR001_008') or contains(text(), 'NPV019_OBR001_001')]"; + String CLIENT_HAS_CONFIRMED_BUTTON = "OBR001_S001_B001"; + + @Click(CLIENT_HAS_CONFIRMED_BUTTON) + NPV019_OBR001_ConfirmationPageTransitions clickConfirmed(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV019_OBR001_ConfirmationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV019_OBR001_ConfirmationPageTransitions.java new file mode 100644 index 0000000..2de4a41 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV019_OBR001_ConfirmationPageTransitions.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.PVX011_OBR001_ConfirmationOfSignatureOwnerEmpowermentPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.TIS005_S002_SignerSelectionPoPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NPV019_OBR001_ConfirmationPageTransitions extends WebFlow { + + PVX011_OBR001_ConfirmationOfSignatureOwnerEmpowermentPage onConfirmationOfSignaturePage(); + + OBR001_S001_PrintInstructionPage onConfirmSignaturePage(); + + TIS005_S002_SignerSelectionPoPage onSignerSelectionPoPage(); + + ODS003_S001_AddCodeOfRecommendedPersonPage onAddCodeOfRecommendedPersonPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV019_S001_SignaturePatternsEditPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV019_S001_SignaturePatternsEditPage.java new file mode 100644 index 0000000..1e39ae0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/NPV019_S001_SignaturePatternsEditPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPageTransitions; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV019_S001_SignaturePatternsEditPage.CONTINUE_BUTTON; + +@Wait(CONTINUE_BUTTON) +public interface NPV019_S001_SignaturePatternsEditPage extends WebFlow { + + String SIGNATURE_TYPE_STATIC = "NPV019_S001_R001_2"; + String SIGNATURE_TYPE_PHYSICAL = "NPV019_S001_R001_3"; + String CONTINUE_BUTTON = "NPV019_S001_B001"; + + @Click(SIGNATURE_TYPE_STATIC) + @Click(CONTINUE_BUTTON) + OBR001_S001_PrintInstructionPageTransitions clickSignatureStatic(); + + @Click(SIGNATURE_TYPE_PHYSICAL) + @Click(CONTINUE_BUTTON) + NPV019_OBR001_ConfirmationPageTransitions clickSignaturePhysical(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/PVX043_S002_SignaturePatternsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/PVX043_S002_SignaturePatternsPage.java new file mode 100644 index 0000000..820569b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/main/signature/patterns/PVX043_S002_SignaturePatternsPage.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.PVX043_S002_SignaturePatternsPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.PVX043_S002_SignaturePatternsPage.PVX043_S002_PAGE_LABEL_XPATH; + +@Wait(value = PVX043_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(CONTINUE_BUTTON) +public interface PVX043_S002_SignaturePatternsPage extends WebFlow { + + String PVX043_S002_PAGE_LABEL_XPATH = "//div[text()='PVX043_S002']"; + String CONTINUE_BUTTON = "PVX043_S002_B009"; + String STATUS_ICON_PHYSIC = "PVX043_S002_P001"; + String STATUS_ICON_STATIC = "PVX043_S002_P003"; + String STATUS_ICON_STATIC_IS_VISIBLE_XPATH = "//img[@id = '" + STATUS_ICON_STATIC + "' and not(contains(@style, 'display: none;'))]"; + String STATUS_ICON_PHYSIC_IS_VISIBLE_XPATH = "//img[@id = '" + STATUS_ICON_PHYSIC + "' and not(contains(@style, 'display: none;'))]"; + + @Click(value = CONTINUE_BUTTON, jsClick = true) + NPV019_S001_SignaturePatternsEditPage clickSignaturePatternsEdit(); + + @CheckElementPresent(value = STATUS_ICON_PHYSIC_IS_VISIBLE_XPATH, by = Lookup.XPATH) + PVX043_S002_SignaturePatternsPage isSignaturePhysic(); + + @CheckElementPresent(value = STATUS_ICON_STATIC_IS_VISIBLE_XPATH, by = Lookup.XPATH) + PVX043_S002_SignaturePatternsPage isSignatureStatic(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/menu/vertical/PVX043_S001_SignatureTemplatesPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/menu/vertical/PVX043_S001_SignatureTemplatesPage.java new file mode 100644 index 0000000..2876346 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/menu/vertical/PVX043_S001_SignatureTemplatesPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ufo.banka.pages.menu.vertical; + +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.menu.vertical.PVX043_S001_SignatureTemplatesPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = PVX043_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait({TURN_SIGNPAD_OFF_REASON_TEXT_AREA, TURN_SIGNPAD_OFF_REASON_BUTTON, RETURN_BUTTON}) +public interface PVX043_S001_SignatureTemplatesPage extends WebFlow { + String PVX043_S001_PAGE_LABEL_XPATH = "//div[text()='PVX043_S001']"; + String TURN_SIGNPAD_OFF_REASON_TEXT_AREA = "PVX043_S001_M001"; + String TURN_SIGNPAD_OFF_REASON_BUTTON = "PVX043_S001_B007"; + String TURN_SIGNPAD_ON_REASON_BUTTON = "PVX043_S001_B007"; + String TURN_SIGNPAD_ON_REASON_XPATH = "//*[@id='PVX043_S001_B007' and contains(text(),'Zapnout')]"; + String RETURN_BUTTON = "PVX043_S001_B006"; + + @TypeInto(TURN_SIGNPAD_OFF_REASON_TEXT_AREA) + @Click(value = TURN_SIGNPAD_OFF_REASON_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, explicitWaitSeconds = 1)) + @Click(value = RETURN_BUTTON, andWait = @Wait(HLO001_S001_ClientSearchPage.SEARCH_TERM_INPUT)) + HLO001_S001_ClientSearchPage turnSignpadOffWithReason(String reason); + + @Click(value = TURN_SIGNPAD_ON_REASON_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + @Click(value = RETURN_BUTTON, andWait = @Wait(HLO001_S001_ClientSearchPage.SEARCH_TERM_INPUT)) + HLO001_S001_ClientSearchPage turnSignpadOn(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/menu/vertical/VerticalMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/menu/vertical/VerticalMenu.java new file mode 100644 index 0000000..bdadd20 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/menu/vertical/VerticalMenu.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ufo.banka.pages.menu.vertical; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; + +public interface VerticalMenu extends Builder, StoreAccessor { + + String SIGNATURE_TEMPLATES_BUTTON = "HLO001_S001_S002"; + String WALKIN_BUTTON = "HLO001_S001_I005"; + String EVO_BUTTON = "HLO001_S001_I030"; + String DISPOSITIONS_CLOSE_BUTTON = "HLO001_S001_X043"; + + /* + * On smaller screens disposition window hide elements in vertical menu + */ + @CustomAction + default VerticalMenu closeDispositionWindowIfVisible() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(2, DISPOSITIONS_CLOSE_BUTTON, Lookup.ID)) { + endpoint.jsClick(() -> DISPOSITIONS_CLOSE_BUTTON); + } + return null; + } + + @Click(value = SIGNATURE_TEMPLATES_BUTTON, jsClick = true) + PVX043_S001_SignatureTemplatesPage clickSignatureTemplates(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF040_S001_StatutoryAuthorityPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF040_S001_StatutoryAuthorityPage.java new file mode 100644 index 0000000..93adb2b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF040_S001_StatutoryAuthorityPage.java @@ -0,0 +1,67 @@ +package cz.moneta.test.dsl.ufo.banka.pages.po; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.po.CIF040_S001_StatutoryAuthorityPage.*; + +@Wait(value = CIF040_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait({PAGE_TITLE_LABEL, CONTINUE_BUTTON}) +public interface CIF040_S001_StatutoryAuthorityPage extends WebFlow { + + String CIF040_S001_PAGE_LABEL_XPATH = "//div[text()='CIF040_S001']"; + + String PAGE_TITLE_LABEL = "CIF040_S001_L002"; + + String FIRST_NAME_AUTHORITY_INPUT = "CIF040_S001_E001"; + String LAST_NAME_AUTHORITY_INPUT = "CIF040_S001_E002"; + String BIRTH_DATE_INPUT = "CIF040_S001_E004"; + + String SELECT_BUTTON = "CIF040_S001_B001"; + String ADD_STATUTORY_AUTHORITY_BUTTON = "CIF040_S001_B002"; + String ADD_NEW_STATUTORY_AUTHORITY_BUTTON = "CIF040_S001_B003"; + String CONTINUE_BUTTON = "CIF040_S001_B004"; + + String STATUTORY_AUTHORITY_FIRST_SELECT = "CIF040_S001_G001-0"; + String ADDED_STATUTORY_AUTHORITY_SELECT = "CIF040_S001_G002-0"; + + String ADD_TYPE_OF_NEW_AUTHORITY_SELECT = "CIF040_S001_C001"; + String TYPE_OF_AUTHORITY_SELECT = "CIF040_S001_C002"; + + String CZECH_RESIDENCY_SELECT = "CIF040_S001_P003"; + String CZECH_RESIDENCY_NEW_AUTHORITY_SELECT = "CIF040_S001_P004"; + + @Click(STATUTORY_AUTHORITY_FIRST_SELECT) + CIF040_S001_StatutoryAuthorityPage selectFirstStatutoryAuthority(); + + @Click(TYPE_OF_AUTHORITY_SELECT) + CIF040_S001_StatutoryAuthorityPage selectTypeOfAuthority(String typeOfAuthority); + + @Click(CZECH_RESIDENCY_SELECT) + @Click(SELECT_BUTTON) + CIF040_S001_StatutoryAuthorityPage selectCzechResidency(); + + @Click(CONTINUE_BUTTON) + @Wait(value = ADDED_STATUTORY_AUTHORITY_SELECT, by = Lookup.ID, waitSecondsForElement = 60) + ZAS001_S001_StatutoryAuthorityPage continueToSelectStatutoryAuthority(); + + @Click(ADD_STATUTORY_AUTHORITY_BUTTON) + CIF040_S001_StatutoryAuthorityPage addStatutoryAuthority(); + + @Select(ADD_TYPE_OF_NEW_AUTHORITY_SELECT) + CIF040_S001_StatutoryAuthorityPage selectTypeOfNewAuthority(String typeOfNewAuthority); + + @TypeInto(FIRST_NAME_AUTHORITY_INPUT) + CIF040_S001_StatutoryAuthorityPage fillFirstName(String firstName); + + @TypeInto(LAST_NAME_AUTHORITY_INPUT) + CIF040_S001_StatutoryAuthorityPage fillLastName(String lastName); + + @TypeInto(BIRTH_DATE_INPUT) + CIF040_S001_StatutoryAuthorityPage fillBirthDate(String birthDate); + + @Click(CZECH_RESIDENCY_NEW_AUTHORITY_SELECT) + CIF040_S001_StatutoryAuthorityPage selectCzechResidencyOfNewAuthority(); + + @Click(ADD_NEW_STATUTORY_AUTHORITY_BUTTON) + CIF040_S001_StatutoryAuthorityPage clickSaveNewAuthority(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF043_S001_ActualOwnerPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF043_S001_ActualOwnerPage.java new file mode 100644 index 0000000..7a9bbfd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF043_S001_ActualOwnerPage.java @@ -0,0 +1,80 @@ +package cz.moneta.test.dsl.ufo.banka.pages.po; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.po.CIF043_S001_ActualOwnerPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = CIF043_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(SAVE_BUTTON) +public interface CIF043_S001_ActualOwnerPage extends WebFlow, StoreAccessor { + String CIF043_S001_PAGE_LABEL_XPATH = "//div[text()='CIF043_S001']"; + + String CONTINUE_BUTTON = "CIF043_S001_B002"; + String ADD_NEW_ACTUAL_OWNER_BUTTON = "CIF043_S001_B003"; + String SAVE_BUTTON = "CIF043_S001_B005"; + + String FIRST_NAME_INPUT = "CIF043_S001_E003"; + String LAST_NAME_INPUT = "CIF043_S001_E002"; + String BIRTH_NUMBER_INPUT = "CIF043_S001_E004"; + String CONCURRENT_SHARE_INPUT = "CIF043_S001_E005"; + String STREET_INPUT = "CIF043_S001_E009"; + String DESCRIPTIVE_NUMBER_INPUT = "CIF043_S001_E010"; + String CITY_INPUT = "CIF043_S001_E012"; + String ZIP_CODE_INPUT = "CIF043_S001_E013"; + + String CZECH_RESIDENCY_FLAG_BUTTON = "CIF043_S001_P001"; + String CZECH_PERMANENT_RESIDENCY_FLAG_BUTTON = "CIF043_S001_P002"; + + @Click(ADD_NEW_ACTUAL_OWNER_BUTTON) + CIF043_S001_ActualOwnerPage clickToAddNewActualOwner(); + + @TypeInto(FIRST_NAME_INPUT) + CIF043_S001_ActualOwnerPage fillFirstName(String firstName); + + @TypeInto(LAST_NAME_INPUT) + CIF043_S001_ActualOwnerPage fillLastName(String lastName); + + @TypeInto(BIRTH_NUMBER_INPUT) + CIF043_S001_ActualOwnerPage fillBirthNumber(String birthNumber); + + @Click(CZECH_RESIDENCY_FLAG_BUTTON) + CIF043_S001_ActualOwnerPage selectCzechResidency(); + + @Click(CZECH_PERMANENT_RESIDENCY_FLAG_BUTTON) + CIF043_S001_ActualOwnerPage selectCzechPermanentResidency(); + + @TypeInto(CONCURRENT_SHARE_INPUT) + CIF043_S001_ActualOwnerPage fillConcurrentShare(String concurrentShare); + + @TypeInto(STREET_INPUT) + CIF043_S001_ActualOwnerPage fillStreet(String street); + + @TypeInto(DESCRIPTIVE_NUMBER_INPUT) + CIF043_S001_ActualOwnerPage fillDescriptiveNumber(String descriptiveNumber); + + @TypeInto(CITY_INPUT) + CIF043_S001_ActualOwnerPage fillCity(String city); + + @TypeInto(ZIP_CODE_INPUT) + CIF043_S001_ActualOwnerPage fillZipCode(String zipCode); + + @Click(value = SAVE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF043_S001_ActualOwnerPage saveNewActualOwner(); + + @Click(value = CONTINUE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF043_S001_ActualOwnerPage continueToRealOwners(); + + @CustomAction + default CIF043_S001_ActualOwnerPage scrollIntoContinueButton() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.scrollIntoView(CONTINUE_BUTTON); + return null; + } + + @Click(CONTINUE_BUTTON) + CAS001_S001_ScoringPage continueToScoringPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF080_S001_OwnershipStructurePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF080_S001_OwnershipStructurePage.java new file mode 100644 index 0000000..1c5564c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF080_S001_OwnershipStructurePage.java @@ -0,0 +1,58 @@ +package cz.moneta.test.dsl.ufo.banka.pages.po; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.po.CIF080_S001_OwnershipStructurePage.PAGE_LABEL; + +@Wait(value = PAGE_LABEL, by = Lookup.XPATH) +public interface CIF080_S001_OwnershipStructurePage extends WebFlow { + + String PAGE_LABEL = "//div[text()='CIF080_S001']"; + String ADD_OWNER_BUTTON = "CIF080_S001_B004"; + String OWNER_FIRST_NAME_INPUT = "CIF080_S001_E001"; + String OWNER_LAST_NAME_INPUT = "CIF080_S001_E002"; + String OWNER_DATE_OF_BIRTH_INPUT = "CIF080_S001_E004"; + String OWNER_NATIONALITY_CZ_BUTTON = "CIF080_S001_B016"; + String OWNER_PERMANENT_CZ_BUTTON = "CIF080_S001_B030"; + String OWNER_TYPE_SELECT = "CIF080_S001_C004"; + String OWNER_SAVE_BUTTON = "CIF080_S001_B027"; + String OWNER_SHARE_INPUT = "CIF080_S001_E003"; + String DATA_SAME_AS_ESM_YES_RADIO = "CIF080_S001_R001_1"; + String CONTINUE_BUTTON = "CIF080_S001_B009"; + + @Click(ADD_OWNER_BUTTON) + CIF080_S001_OwnershipStructurePage clickAddOwner(); + + @TypeInto(OWNER_FIRST_NAME_INPUT) + CIF080_S001_OwnershipStructurePage fillFirstName(String firstName); + + @TypeInto(OWNER_LAST_NAME_INPUT) + CIF080_S001_OwnershipStructurePage fillLastName(String lastName); + + @TypeInto(OWNER_DATE_OF_BIRTH_INPUT) + CIF080_S001_OwnershipStructurePage fillOwnerDateOfBirth(String ownerDateOfBirth); + + @Click(OWNER_NATIONALITY_CZ_BUTTON) + CIF080_S001_OwnershipStructurePage clickOwnerNationalityCz(); + + @Click(OWNER_PERMANENT_CZ_BUTTON) + CIF080_S001_OwnershipStructurePage clickOwnerPermanentCz(); + + @Select(value = OWNER_TYPE_SELECT, andWait = @Wait(OWNER_SHARE_INPUT)) + CIF080_S001_OwnershipStructurePage selectOwnerType(String ownerType); + + @TypeInto(OWNER_SHARE_INPUT) + @KeyPress(Key.TAB) + CIF080_S001_OwnershipStructurePage fillOwnerShare(String ownerShare); + + @Click(value = OWNER_SAVE_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF080_S001_OwnershipStructurePage clickOwnerSave(); + + @Click(value = DATA_SAME_AS_ESM_YES_RADIO, jsClick = true) + CIF080_S001_OwnershipStructurePage clickDataSameAsEsmYes(); + + @Click(CONTINUE_BUTTON) + CIF081_S001_OtherPersonInOwnershipPage clickContinue(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF081_S001_CompaniesOwnedByClientPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF081_S001_CompaniesOwnedByClientPage.java new file mode 100644 index 0000000..1918e5a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF081_S001_CompaniesOwnedByClientPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.ufo.banka.pages.po; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.po.CIF081_S001_CompaniesOwnedByClientPage.PAGE_LABEL; + +@Wait(value = PAGE_LABEL, by = Lookup.XPATH) +public interface CIF081_S001_CompaniesOwnedByClientPage extends WebFlow { + + String PAGE_LABEL = "//div[text()='CIF081_S001']"; + String PAGE_TITLE_XPATH = "//div[@id='CIF081_S001_L001' and text()='Společnosti vlastněné klientem']"; + String ADD_PO_BUTTON = "CIF081_S001_B009"; + String PO_TITLE_INPUT = "CIF081_S001_E005"; + String PO_ICO_INPUT = "CIF081_S001_E006"; + String PO_COUNTRY_CZ_BUTTON = "CIF081_S001_B017"; + String PO_SAVE_BUTTON = "CIF081_S001_B023"; + String CONTINUE_BUTTON = "CIF081_S001_B002"; + + @Click(ADD_PO_BUTTON) + CIF081_S001_CompaniesOwnedByClientPage clickAddPo(); + + @TypeInto(PO_TITLE_INPUT) + CIF081_S001_CompaniesOwnedByClientPage fillPoTitle(String poTitle); + + @TypeInto(PO_ICO_INPUT) + CIF081_S001_CompaniesOwnedByClientPage fillPoIco(String poIco); + + @Click(PO_COUNTRY_CZ_BUTTON) + CIF081_S001_CompaniesOwnedByClientPage clickPoCountryCz(); + + @Click(value = PO_SAVE_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + CIF081_S001_CompaniesOwnedByClientPage clickPoSave(); + + @Click(CONTINUE_BUTTON) + CIF080_S001_OwnershipStructurePage clickContinue(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF081_S001_OtherPersonInOwnershipPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF081_S001_OtherPersonInOwnershipPage.java new file mode 100644 index 0000000..065e66f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/CIF081_S001_OtherPersonInOwnershipPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.po; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.po.CIF081_S001_OtherPersonInOwnershipPage.PAGE_LABEL; +import static cz.moneta.test.dsl.ufo.banka.pages.po.CIF081_S001_OtherPersonInOwnershipPage.PAGE_TITLE_XPATH; + +@Wait(value = {PAGE_LABEL, PAGE_TITLE_XPATH}, by = Lookup.XPATH) +public interface CIF081_S001_OtherPersonInOwnershipPage extends WebFlow { + String PAGE_LABEL = "//div[text()='CIF081_S001']"; + String PAGE_TITLE_XPATH = "//div[@id='CIF081_S001_L001' and text()='Jiná osoba ve vlastnické struktuře']"; + String CONTINUE_BUTTON = "CIF081_S001_B002"; + + @Click(CONTINUE_BUTTON) + AML002_S001_AmlSurveyPage clickContinue(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/HPO018_S001_AdcPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/HPO018_S001_AdcPage.java new file mode 100644 index 0000000..f39487b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/HPO018_S001_AdcPage.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.banka.pages.po; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.po.HPO018_S001_AdcPage.ADC_PAGE; + +@Wait(value = ADC_PAGE) +public interface HPO018_S001_AdcPage extends WebFlow { + String ADC_PAGE = "UfoLabel48"; + String ADC_PAGE_CHECK_ELEMENT = "HPO018_S001_L075"; + String EDIT_BUTTON_EM_MODEL = "HPO018_S001_B013"; + String EDIT_PAGE_EM_MODEL = "EMM002_S001_X002"; + String INTERNET_BANKING_ID_DIV = "HPO018_S001_L042"; + String RETURN_TO_CLIENT_BUTTON = "HPO018_S001_I024"; + String INTERNET_BANKING_ID_KEY = "INTERNET_BANKING_ID"; + + @CheckElementPresent(ADC_PAGE_CHECK_ELEMENT) + HPO018_S001_AdcPage checkElementEmModel(); + + @StoreElementContent(storeKey = INTERNET_BANKING_ID_KEY, value = INTERNET_BANKING_ID_DIV) + HPO018_S001_AdcPage storeInternetBanking_ID(); + + @Click(EDIT_BUTTON_EM_MODEL) + HPO018_S001_AdcPage clickEditButtonEmModel(); + + @CheckElementPresent(EDIT_PAGE_EM_MODEL) + HPO018_S001_AdcPage checkEditPageEmModel(); + + @Click(RETURN_TO_CLIENT_BUTTON) + HKO101_S001_MainClientPage clickReturnToClient(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/TIS005_S001_SignerSelectionPoPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/TIS005_S001_SignerSelectionPoPage.java new file mode 100644 index 0000000..d77a1dd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/TIS005_S001_SignerSelectionPoPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.po; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.po.TIS005_S001_SignerSelectionPoPage.*; + +@Wait(value = TIS005_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(CONTINUE_BUTTON) +public interface TIS005_S001_SignerSelectionPoPage extends WebFlow { + + String TIS005_S001_PAGE_LABEL_XPATH = "//div[text()='TIS005_S001']"; + String CONTINUE_BUTTON = "TIS005_S001_B001"; + + String DOCUMENT_SIGNED_BY_PO_RADIO = "TIS005_S001_R002_0"; + + @Click(DOCUMENT_SIGNED_BY_PO_RADIO) + @Click(CONTINUE_BUTTON) + ZAS003_S001_StatutoryAuthorityEvidencePage clickSignedByPoAndClickOk(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS001_S001_StatutoryAuthorityPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS001_S001_StatutoryAuthorityPage.java new file mode 100644 index 0000000..ab79d5d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS001_S001_StatutoryAuthorityPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.ufo.banka.pages.po; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS005_S001_FoEditingPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.po.ZAS001_S001_StatutoryAuthorityPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.po.ZAS001_S001_StatutoryAuthorityPage.PAGE_TITLE_LABEL; +import static cz.moneta.test.dsl.ufo.banka.pages.po.ZAS001_S001_StatutoryAuthorityPage.ZAS001_S001_PAGE_LABEL_XPATH; + +@Wait(value = ZAS001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait({PAGE_TITLE_LABEL, CONTINUE_BUTTON}) +public interface ZAS001_S001_StatutoryAuthorityPage extends WebFlow { + + String ZAS001_S001_PAGE_LABEL_XPATH = "//div[text()='ZAS001_S001']"; + + String PAGE_TITLE_LABEL = "ZAS001_S001_L003"; + + String EDIT_SELECTED_STATUTORY_AUTHORITY_BUTTON = "ZAS001_S001_B003"; + String CONTINUE_BUTTON = "ZAS001_S001_B004"; + String ADD_BUTTON = "ZAS001_S001_B001"; + + String STATUTORY_AUTHORITY_FIRST_SELECT = "ZAS001_S001_G001-0"; + + @Click(STATUTORY_AUTHORITY_FIRST_SELECT) + ZAS001_S001_StatutoryAuthorityPage selectFirstStatutoryAuthority(); + + @Click(EDIT_SELECTED_STATUTORY_AUTHORITY_BUTTON) + ODS005_S001_FoEditingPage continueToFoEditingPage(); + + @Click(CONTINUE_BUTTON) + ZAS001_S001_StatutoryAuthorityPageTransitions clickContinue(); + + @Click(ADD_BUTTON) + ZAS001_S001_StatutoryAuthorityPageTransitions clickAdd(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS001_S001_StatutoryAuthorityPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS001_S001_StatutoryAuthorityPageTransitions.java new file mode 100644 index 0000000..d195101 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS001_S001_StatutoryAuthorityPageTransitions.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.po; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.fon.newCif.CIF111_S001_NewCifDataNavigation; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF034_S001_CompanyAntiLaunderingStatement; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ZAS001_S001_StatutoryAuthorityPageTransitions extends WebFlow { + + CIF034_S001_CompanyAntiLaunderingStatement onAntiLaunderingStatementPage(); + + CIF043_S001_ActualOwnerPage onActualOwnerPage(); + + OBR001_S001_PrintInstructionPageTransitions onPrintInstructionsTransitionsPage(); + + CIF081_S001_CompaniesOwnedByClientPage onCompaniesOwnedByClientPage(); + + ZAS002_S001_LegalRepesenatitveAddPage onLegalRepesenatitveAddPage(); + + CIF111_S001_NewCifDataNavigation onNewCifPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS002_S001_LegalRepesenatitveAddPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS002_S001_LegalRepesenatitveAddPage.java new file mode 100644 index 0000000..74237fb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS002_S001_LegalRepesenatitveAddPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.po; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS005_S002_IdentificationOfPerson; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = ZAS002_S001_LegalRepesenatitveAddPage.ZAS002_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface ZAS002_S001_LegalRepesenatitveAddPage extends WebFlow { + + String ZAS002_S001_PAGE_LABEL_XPATH = "//div[text()='ZAS002_S001']"; + String TYPE_OF_LEGAL_REPRESENTATIVE = "ZAS002_S001_C003"; + String CONTINUE_BUTTON = "ZAS002_S001_B003"; + + @Select(TYPE_OF_LEGAL_REPRESENTATIVE) + ZAS002_S001_LegalRepesenatitveAddPage selectLegalRepresentative(String NameOfLegal); + + @Click(CONTINUE_BUTTON) + ODS005_S002_IdentificationOfPerson clickContinue(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS003_S001_StatutoryAuthorityEvidencePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS003_S001_StatutoryAuthorityEvidencePage.java new file mode 100644 index 0000000..15a25f9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/po/ZAS003_S001_StatutoryAuthorityEvidencePage.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.ufo.banka.pages.po; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.po.ZAS003_S001_StatutoryAuthorityEvidencePage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.po.ZAS003_S001_StatutoryAuthorityEvidencePage.TIS005_S001_PAGE_LABEL_XPATH; + +@Wait(value = TIS005_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(CONTINUE_BUTTON) +public interface ZAS003_S001_StatutoryAuthorityEvidencePage extends WebFlow { + + String TIS005_S001_PAGE_LABEL_XPATH = "//div[text()='ZAS003_S001']"; + String BIRTH_NUMBER_KEY = "BIRTH_NUMBER"; + String CONTINUE_BUTTON = "ZAS003_S001_B002"; + String END_BUTTON = "ZAS003_S001_B003"; + String FIRST_STATUTORY_REPRESENTATIVE_BUTTON = "ZAS003_S001_G001-0"; + String BIRTH_NUMBER_XPATH = "//table[@id='ZAS003_S001_G001_UfoTable']//td[4]"; + String SECOND_STATUTORY_REPRESENTATIVE_BUTTON = "ZAS003_S001_G001-1"; + + @Click(FIRST_STATUTORY_REPRESENTATIVE_BUTTON) + @Click(CONTINUE_BUTTON) + PSP004_S001_PrintPage clickFirstStatutoryRepresentativeAndContinue(); + + @Click(SECOND_STATUTORY_REPRESENTATIVE_BUTTON) + ZAS003_S001_StatutoryAuthorityEvidencePage clickSecondStatutoryRepresentative(); + + @Click(FIRST_STATUTORY_REPRESENTATIVE_BUTTON) + @Click(CONTINUE_BUTTON) + HKO101_S001_MainClientPage clickFirstStatutoryRepresentativeAndContinueToMainPage(); + + @StoreElementContent(storeKey = BIRTH_NUMBER_KEY, value = BIRTH_NUMBER_XPATH, by = Lookup.XPATH) + ZAS003_S001_StatutoryAuthorityEvidencePage storeBirthNumber(); + + @Click(END_BUTTON) + HLO001_S001_ClientSearchPage clickEnd(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/bankklient/BKK005_S009_ConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/bankklient/BKK005_S009_ConfirmationPage.java new file mode 100644 index 0000000..cc640d2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/bankklient/BKK005_S009_ConfirmationPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.bankklient; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS051_OBR001_ContractDocumentationPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.TIS011_OBR001_PrintOptionsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.bankklient.BKK005_S009_ConfirmationPage.OK_BUTTON; + + +@Wait(OK_BUTTON) +public interface BKK005_S009_ConfirmationPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[text()='BKK005_S009']"; + String OK_BUTTON = "BKK005_S009_B001"; + + + @Click(OK_BUTTON) + TIS051_OBR001_ContractDocumentationPage clickOkButton(); + + @Click(OK_BUTTON) + TIS011_OBR001_PrintOptionsPage clickOkButtonToPrintOptionsPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC001_S001_ConsolidationPartOnePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC001_S001_ConsolidationPartOnePage.java new file mode 100644 index 0000000..3257d55 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC001_S001_ConsolidationPartOnePage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC001_S001_ConsolidationPartOnePage.PAGE_ID; +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC001_S001_ConsolidationPartOnePage.TOTAL_LOAN_AMOUNT; + +@Wait(value = {PAGE_ID, TOTAL_LOAN_AMOUNT}, waitSecondsForElement = 30) +public interface UDC001_S001_ConsolidationPartOnePage extends WebFlow { + + String PAGE_ID = "UDC001_S001_X001"; + String TOTAL_LOAN_AMOUNT = "UDC001_S001_E006"; + String REQUIRED_INCREASE = "UDC001_S001_E018"; + String NUMBER_OF_INSTALLMENTS = "UDC001_S001_C003"; + String CALCULATION_OF_PAYMENT_BUTTON = "UDC001_S001_B004"; + String BUSY_LOADER_XPATH = "//img[@class=\"gtw-Image\"]/@src"; + String CONTINUE_BUTTON = "UDC001_S001_B002"; + + + @TypeInto(TOTAL_LOAN_AMOUNT) + UDC001_S001_ConsolidationPartOnePage typeIntoTotalLoanAmount(String totalLoanAmount); + + @TypeInto(REQUIRED_INCREASE) + UDC001_S001_ConsolidationPartOnePage typeIntoRequiredIncrease(String requiredIncrease); + + @Select(NUMBER_OF_INSTALLMENTS) + UDC001_S001_ConsolidationPartOnePage selectNumberOfInstallments(String numberOfInstallments); + + @Click(value = CALCULATION_OF_PAYMENT_BUTTON, andWait = @Wait(value = BUSY_LOADER_XPATH, until = Until.GONE)) + UDC001_S001_ConsolidationPartOnePage clickCalculationOfPaymentButton(); + + @Click(CONTINUE_BUTTON) + DOK001_S001_SelectionOfSubmittedDocumentsPage clickContinueButtonToDocumentPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC002_S001_ConsolidationBindingApplicationPartOne.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC002_S001_ConsolidationBindingApplicationPartOne.java new file mode 100644 index 0000000..938fe0b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC002_S001_ConsolidationBindingApplicationPartOne.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC002_S001_ConsolidationBindingApplicationPartOne.PAGE_ID; + +@Wait(value = {PAGE_ID}, waitSecondsForElement = 30) +public interface UDC002_S001_ConsolidationBindingApplicationPartOne extends WebFlow { + String PAGE_ID = "UDC002_S001_X001"; + String TOTAL_LOAN_AMOUNT = "UDC002_S001_E006"; + String PAYMENT_CALCULATION_BUTTON = "UDC002_S001_B004"; + String LOADER_XPATH = "/html/body/div[@class='gwt-PopupPanel']/div[@class='popupContent']/img[@class='gwt-Image']/@src"; + String CONTINUE_BUTTON = "UDC002_S001_B002"; + String MONTHLY_PAYMENT_INPUT_XPATH = "//input[@name='UDC002_S001_E007' and not(@value = '')]"; + + @TypeInto(TOTAL_LOAN_AMOUNT) + UDC002_S001_ConsolidationBindingApplicationPartOne typeIntoTotalLoanAmount(int totalLoanAmount); + + @Click(value = PAYMENT_CALCULATION_BUTTON, andWait = @Wait(value = MONTHLY_PAYMENT_INPUT_XPATH, waitSecondsForElement = 15, by = Lookup.XPATH)) + UDC002_S001_ConsolidationBindingApplicationPartOne clickPaymentCalculationButton(); + + @Click(CONTINUE_BUTTON) + DOK001_S001_SelectionOfSubmittedDocumentsPage clickContinueButtonToIdSelectionPage(); + + @Click(CONTINUE_BUTTON) + NEP002_S001_ApplicantPage clickContinueButtonToApplicantPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC003_S001_CommitmentsToConsolidationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC003_S001_CommitmentsToConsolidationPage.java new file mode 100644 index 0000000..ab6541d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC003_S001_CommitmentsToConsolidationPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC003_S001_CommitmentsToConsolidationPage.PAGE_ID; + +@Wait(value = {PAGE_ID}, waitSecondsForElement = 30) +public interface UDC003_S001_CommitmentsToConsolidationPage extends WebFlow { + String PAGE_ID = "UDC003_S001_X001"; + String ADD_SF_COMMITMENT = "UDC003_S001_B001"; + String CONTINUE_BUTTON = "UDC003_S001_B007"; + + @Click(ADD_SF_COMMITMENT) + UDC003_S002_CommitmentsInstallmentCompaniesPage clickAddSfCommitmentButton(); + + @Click(CONTINUE_BUTTON) + UDC003_S003_SigningConfirmationPage clickContinueButtonToSigningConfirmationPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC003_S002_CommitmentsInstallmentCompaniesPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC003_S002_CommitmentsInstallmentCompaniesPage.java new file mode 100644 index 0000000..7f4f395 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC003_S002_CommitmentsInstallmentCompaniesPage.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC003_S002_CommitmentsInstallmentCompaniesPage.PAGE_ID; + +@Wait(value = {PAGE_ID}, waitSecondsForElement = 30) +public interface UDC003_S002_CommitmentsInstallmentCompaniesPage extends WebFlow, StoreAccessor { + + String PAGE_ID = "UDC003_S002_X001"; + String INSTALLMENT_COMPANY_NAME = "UDC003_S002_C001"; + String COMMITMENT_TYPE = "UDC003_S002_C002"; + String END_COMMITMENT = "UDC003_S002_C003"; + String CREDIT_LINE_AMOUNT = "UDC003_S002_E001"; + String AMOUNT_TO_BE_PAID = "UDC003_S002_E002"; + String MONTHLY_INSTALLMENT_AMOUNT = "UDC003_S002_E003"; + String ADD_BUTTON = "UDC003_S002_B001"; + String SF_COMMITMENTS_TABLE = "UDC003_S002_G002_UfoTable"; + String CONTINUE_BUTTON = "UDC003_S002_B005"; + + @Select(INSTALLMENT_COMPANY_NAME) + UDC003_S002_CommitmentsInstallmentCompaniesPage selectInstallmentCompanyName(String installmentCompanyName); + + @Select(COMMITMENT_TYPE) + UDC003_S002_CommitmentsInstallmentCompaniesPage selectCommitmentType(String commitmentType); + + @Select(END_COMMITMENT) + UDC003_S002_CommitmentsInstallmentCompaniesPage selectEndCommitment(String endCommitment); + + @TypeInto(CREDIT_LINE_AMOUNT) + UDC003_S002_CommitmentsInstallmentCompaniesPage typeIntoCreditLineAmount(int creditLineAmount); + + @TypeInto(AMOUNT_TO_BE_PAID) + UDC003_S002_CommitmentsInstallmentCompaniesPage typeIntoAmountToBePaid(int amountToBePaid); + + @TypeInto(MONTHLY_INSTALLMENT_AMOUNT) + UDC003_S002_CommitmentsInstallmentCompaniesPage typeIntoMonthlyInstallmentAmount(int monthlyInstallmentAmount); + + @Click(value = ADD_BUTTON, andWait = @Wait(value = SF_COMMITMENTS_TABLE, until = Until.VISIBLE)) + UDC003_S002_CommitmentsInstallmentCompaniesPage clickAddButton(); + + @CustomAction + default UDC003_S002_CommitmentsInstallmentCompaniesPage clickAddButtonAndDismissPopupWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> ADD_BUTTON); + endpoint.acceptAlert(25); + return null; + } + + @Click(CONTINUE_BUTTON) + UDC003_S001_CommitmentsToConsolidationPage clickContinueButtonToConsolidationCommitmentsPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC003_S003_SigningConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC003_S003_SigningConfirmationPage.java new file mode 100644 index 0000000..b788451 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC003_S003_SigningConfirmationPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC003_S003_SigningConfirmationPage.PAGE_ID; + +@Wait(value = {PAGE_ID}, waitSecondsForElement = 30) +public interface UDC003_S003_SigningConfirmationPage extends WebFlow { + + String PAGE_ID = "UDC003_S003_X002"; + String CONFIRM_CHECKBOX = "UDC003_S003_G001-0"; + String YES_BUTTON = "UDC003_S003_B001"; + + @Click(CONFIRM_CHECKBOX) + UDC003_S003_SigningConfirmationPage clickConfirmCheckBox(); + + @Click(YES_BUTTON) + UDC006_S001_ConsolidationScoringPage clickYesButtonAndSendToApproval(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC004_S001_LoanConsolidationPreApprovedOptions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC004_S001_LoanConsolidationPreApprovedOptions.java new file mode 100644 index 0000000..e60c169 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC004_S001_LoanConsolidationPreApprovedOptions.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC004_S001_LoanConsolidationPreApprovedOptions.PAGE_ID; + +@Wait(value = PAGE_ID) +public interface UDC004_S001_LoanConsolidationPreApprovedOptions extends WebFlow, StoreAccessor { + + String PAGE_ID = "UDC004_S001_X001"; + String PRE_APPROVED_COMBINATIONS_RADIOBUTTON = "UDC004_S001_G001-0"; + String VARIANTS_PROPOSED_BUTTON = "UDC004_S001_B001"; + + @Click(value = PRE_APPROVED_COMBINATIONS_RADIOBUTTON, andWait = @Wait(value = VARIANTS_PROPOSED_BUTTON, until = Until.VISIBLE)) + UDC004_S001_LoanConsolidationPreApprovedOptions clickPreApprovedCombinationsRadioButton(); + + @Click(VARIANTS_PROPOSED_BUTTON) + UDC004_S002_LoanConsolidationNonBindingOffer clickVariantsProposedButton(); + + @CustomAction + default UDC004_S002_LoanConsolidationNonBindingOffer clickPreApprovedCombinationAndVariantsProposedButton() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> PRE_APPROVED_COMBINATIONS_RADIOBUTTON); + endpoint.waitForElementsToLoad(45, VARIANTS_PROPOSED_BUTTON); + endpoint.click(() -> VARIANTS_PROPOSED_BUTTON); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC004_S002_LoanConsolidationNonBindingOffer.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC004_S002_LoanConsolidationNonBindingOffer.java new file mode 100644 index 0000000..ab4a0ee --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC004_S002_LoanConsolidationNonBindingOffer.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC004_S002_LoanConsolidationNonBindingOffer.PAGE_ID; + +@Wait(value = PAGE_ID) +public interface UDC004_S002_LoanConsolidationNonBindingOffer extends WebFlow { + + String PAGE_ID = "UDC004_S002_X001"; + String ESTABLISH_SCORING_BUTTON = "UDC004_S002_B004"; + + @Click(ESTABLISH_SCORING_BUTTON) + UDC002_S001_ConsolidationBindingApplicationPartOne clickEstablishScoringButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC005_S001_LoanConsolidationScoringCommitmentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC005_S001_LoanConsolidationScoringCommitmentsPage.java new file mode 100644 index 0000000..6f0e327 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC005_S001_LoanConsolidationScoringCommitmentsPage.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP028_S001_SignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV010_S001_PrintSignPadPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC005_S001_LoanConsolidationScoringCommitmentsPage.PAGE_ID; + +@Wait(value = {PAGE_ID}, waitSecondsForElement = 30) +public interface UDC005_S001_LoanConsolidationScoringCommitmentsPage extends WebFlow, StoreAccessor { + String PAGE_ID = "UDC005_S001_X001"; + String COMMITMENTS_TO_CONSOLIDATION_RADIOBUTTON = "UDC005_S001_G001-0"; + String EDIT_BUTTON = "UDC005_S001_B001"; + String CONTINUE_BUTTON = "UDC005_S001_B002"; + + @Click(value = COMMITMENTS_TO_CONSOLIDATION_RADIOBUTTON, andWait = @Wait(value = EDIT_BUTTON, until = Until.VISIBLE)) + UDC005_S001_LoanConsolidationScoringCommitmentsPage clickCommitmentsToConsolidationRadioBtn(); + + @Click(EDIT_BUTTON) + UDC005_S002_CommitmentEditingPage clickEditButton(); + + @Click(CONTINUE_BUTTON) + NPV010_S001_PrintSignPadPage clickContinueToSignActionPage(); + + @Click(CONTINUE_BUTTON) + NEP028_S001_SignaturePage clickContinueToSignaturePage(); + + @CustomAction + default UDC005_S002_CommitmentEditingPage clickRadioButtonAndEditButton() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> COMMITMENTS_TO_CONSOLIDATION_RADIOBUTTON); + endpoint.waitForElementsToLoad(45, EDIT_BUTTON); + endpoint.click(() -> EDIT_BUTTON); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC005_S002_CommitmentEditingPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC005_S002_CommitmentEditingPage.java new file mode 100644 index 0000000..daa7ed8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC005_S002_CommitmentEditingPage.java @@ -0,0 +1,52 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC005_S002_CommitmentEditingPage.EVIDENCE_OF_COMMITMENT_EXISTENCE; +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC005_S002_CommitmentEditingPage.PAGE_ID; + +@Wait(value = {PAGE_ID, EVIDENCE_OF_COMMITMENT_EXISTENCE}, waitSecondsForElement = 30) +public interface UDC005_S002_CommitmentEditingPage extends WebFlow { + + String PAGE_ID = "UDC005_S002_X001"; + String INSTALLMENT_COMPANY_NAME = "UDC005_S002_C001"; + String EVIDENCE_OF_COMMITMENT_EXISTENCE = "UDC005_S002_C005"; + String LOAN_AGREEMENT_NUMBER = "UDC005_S002_E001"; + String LOAN_ACCOUNT_FOR_PAYMENT = "UDC005_S002_E002"; + String BANK_CODE = "UDC005_S002_E003"; + String PROOF_OF_REPAYMENT = "UDC005_S002_C006"; + String ANNUAL_INTEREST_RATE = "UDC005_S002_E011"; + String AMOUNT_TO_PAY = "UDC005_S002_E013"; + String SAVE_BUTTON = "UDC005_S002_B001"; + + @Select(INSTALLMENT_COMPANY_NAME) + UDC005_S002_CommitmentEditingPage selectInstallmentCompanyName(String installmentCompanyName); + + @Select(EVIDENCE_OF_COMMITMENT_EXISTENCE) + UDC005_S002_CommitmentEditingPage selectEvidenceOfCommitmentExistence(String evidenceType); + + @TypeInto(LOAN_AGREEMENT_NUMBER) + UDC005_S002_CommitmentEditingPage typeIntoLoanAgreementNumber(int loanAgreementNumber); + + @TypeInto(LOAN_ACCOUNT_FOR_PAYMENT) + UDC005_S002_CommitmentEditingPage typeIntoLoanAccountForPayment(int loanAccountForPayment); + + @TypeInto(BANK_CODE) + UDC005_S002_CommitmentEditingPage typeIntoBankCode(String bankCode); + + @Select(PROOF_OF_REPAYMENT) + UDC005_S002_CommitmentEditingPage selectProofOfRepayment(String proofOfRepayment); + + @TypeInto(ANNUAL_INTEREST_RATE) + UDC005_S002_CommitmentEditingPage typeIntoAnnualInterestRate(int annualInterestRate); + + @TypeInto(AMOUNT_TO_PAY) + UDC005_S002_CommitmentEditingPage typeIntoAmountToPay(int amountToPay); + + @Click(SAVE_BUTTON) + UDC005_S001_LoanConsolidationScoringCommitmentsPage clickSaveButtonToConsolidationScoringPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC006_S001_ConsolidationScoringPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC006_S001_ConsolidationScoringPage.java new file mode 100644 index 0000000..55963ad --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC006_S001_ConsolidationScoringPage.java @@ -0,0 +1,98 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP017_S014_SelectApprovedVariantsPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.NEP013_S001_RequestCancellationPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC006_S001_ConsolidationScoringPage.APP_KEY_DIV; +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC006_S001_ConsolidationScoringPage.PAGE_ID; +import static cz.moneta.test.harness.support.web.Lookup.DEFAULT; +import static cz.moneta.test.harness.support.web.Lookup.XPATH; + +@Wait(value = {PAGE_ID, APP_KEY_DIV}, waitSecondsForElement = 80) +public interface UDC006_S001_ConsolidationScoringPage extends WebFlow, StoreAccessor, SharedElements { + + String PAGE_ID = "UDC006_S001_X001"; + String APP_ID_DIV = "UDC006_S001_L030"; + String APP_ID_STORE = "APP_ID_STORE"; + String APP_KEY_DIV = "UDC006_S001_L018"; + String APP_KEY_STORE = "APP_KEY_STORE"; + String APP_STAT_DIV = "UDC006_S001_L015"; + String APP_STAT_STORE = "APP_STAT_STORE"; + String PROCESS_REQUEST_BUTTON = "UDC006_S001_B008"; + String DETAILS_ON_REQUEST = "DETAILS_ON_REQUEST_STORE"; + String DETAILS_ON_REQUEST_DIV = "UDC006_S001_L003"; + String CONDITIONAL_AGREEMENT_BUTTON = "UDC006_S001_B012"; + String ACCOUNT_FOUNDATION_BUTTON = "UDC006_S001_B005"; + String STATUS_GENERAL_XPATH = "//div[@id='UDC006_S001_L015' and contains(text(), '%s')]"; + String RELOAD_BUTTON = "UDC006_S001_B015"; + String PROCESS_REQUEST_BUTTON_XPATH = "//button[@id='" + PROCESS_REQUEST_BUTTON + "' and not(@disabled)]"; + String STORNO_BUTTON = "UDC006_S001_B006"; + String END_BUTTON = "UDC006_S001_B002"; + + @StoreElementContent(storeKey = APP_KEY_STORE, value = APP_KEY_DIV) + UDC006_S001_ConsolidationScoringPage storeAppKey(); + + @GetElementContent(APP_KEY_DIV) + String getAppKey(); + + @StoreElementContent(storeKey = APP_ID_STORE, value = APP_ID_DIV) + UDC006_S001_ConsolidationScoringPage storeAppId(); + + @GetElementContent(APP_ID_DIV) + String getAppId(); + + @StoreElementContent(storeKey = APP_STAT_STORE, value = APP_STAT_DIV) + UDC006_S001_ConsolidationScoringPage storeAppStat(); + + @GetElementContent(APP_STAT_DIV) + String getAppStat(); + + @StoreElementContent(storeKey = DETAILS_ON_REQUEST, value = DETAILS_ON_REQUEST_DIV) + UDC006_S001_ConsolidationScoringPage storeDetailsOnRequest(); + + @GetElementContent(DETAILS_ON_REQUEST_DIV) + String getDetailsOnRequestDiv(); + + @Click(PROCESS_REQUEST_BUTTON) + UDC003_S001_CommitmentsToConsolidationPage clickProcessRequestButton(); + + @Click(CONDITIONAL_AGREEMENT_BUTTON) + UDC004_S001_LoanConsolidationPreApprovedOptions clickConditionalAgreementButton(); + + @Click(ACCOUNT_FOUNDATION_BUTTON) + NEP017_S014_SelectApprovedVariantsPage clickAccountFoundationButton(); + + @CustomAction + default UDC006_S001_ConsolidationScoringPage waitForStatusAndRefresh(String status) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementAndRefresh(String.format(STATUS_GENERAL_XPATH, status), + RELOAD_BUTTON, XPATH, DEFAULT, 40, 15); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CustomAction + default UDC006_S001_ConsolidationScoringPage waitForButtonAndRefresh() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> RELOAD_BUTTON); + endpoint.waitForElementAndRefresh(PROCESS_REQUEST_BUTTON_XPATH, + RELOAD_BUTTON, XPATH, DEFAULT, 40, 15); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CheckElementPresent(APP_STAT_DIV) + UDC006_S001_ConsolidationScoringPage checkStatus(String status); + + @Click(STORNO_BUTTON) + NEP013_S001_RequestCancellationPage clickStorno(); + + @Click(END_BUTTON) + BAL006_S002_ClientRequestPage clickEnd(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S002_LetterPrintPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S002_LetterPrintPage.java new file mode 100644 index 0000000..5579a3b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S002_LetterPrintPage.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC007_S002_LetterPrintPage.SEND_BUTTON; + +@Wait(SEND_BUTTON) +public interface UDC007_S002_LetterPrintPage extends WebFlow { + String SEND_BUTTON = "UDC007_S002_B001"; + + @Click(SEND_BUTTON) + UDC007_S003_PrintedLettersPage clickSendButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S003_PrintedLettersPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S003_PrintedLettersPage.java new file mode 100644 index 0000000..7e26735 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S003_PrintedLettersPage.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC007_S003_PrintedLettersPage.OK_BUTTON; + +@Wait(OK_BUTTON) +public interface UDC007_S003_PrintedLettersPage extends WebFlow { + String OK_BUTTON = "UDC007_S003_B001"; + + @Click(OK_BUTTON) + UDC007_S004_PrintLettersConfirmationPage clickOkButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S004_PrintLettersConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S004_PrintLettersConfirmationPage.java new file mode 100644 index 0000000..24b0904 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S004_PrintLettersConfirmationPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC007_S004_PrintLettersConfirmationPage.OK_BUTTON; + +@Wait(OK_BUTTON) +public interface UDC007_S004_PrintLettersConfirmationPage extends WebFlow { + + String OK_BUTTON = "UDC007_S004_B001"; + + @Click(OK_BUTTON) + DMS001_S001_ScanDocumentsPage clickOkAndContinueToDocumentsScanPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S005_ApprovedConsolidationPrintPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S005_ApprovedConsolidationPrintPage.java new file mode 100644 index 0000000..a75670f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/consolidation/UDC007_S005_ApprovedConsolidationPrintPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.consolidation; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC007_S005_ApprovedConsolidationPrintPage.CONTINUE_BUTTON; + +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 30) +public interface UDC007_S005_ApprovedConsolidationPrintPage extends WebFlow, StoreAccessor { + String CONTINUE_BUTTON = "UDC007_S005_B003"; + + @CustomAction + default UDC007_S005_ApprovedConsolidationPrintPage dismissPopupWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.acceptAlert(15); + return null; + } + + @Click(CONTINUE_BUTTON) + OPN008_S001_SignContractPage clickContinueButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/BPP001_S001_DocumentationSendPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/BPP001_S001_DocumentationSendPage.java new file mode 100644 index 0000000..6959bb5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/BPP001_S001_DocumentationSendPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage.*; + +@Wait(value = BPP001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 180) +@Wait({PRINT_DOCUMENTS_BUTTON, SEND_DOCUMENTS_BUTTON}) +public interface BPP001_S001_DocumentationSendPage extends WebFlow { + String BPP001_S001_PAGE_LABEL_XPATH = "//div[text()='BPP001_S001']"; + String PRINT_DOCUMENTS_BUTTON = "BPP001_S001_B002"; + String SEND_DOCUMENTS_BUTTON = "BPP001_S001_B003"; + + String EMAIL_INPUT = "BPP001_S001_E001"; + + @TypeInto(value = EMAIL_INPUT, clear = true) + @KeyPress(Key.TAB) + BPP001_S001_DocumentationSendPage fillEmail(String email); + + @Click(SEND_DOCUMENTS_BUTTON) + OBR003_S001_ClientContractSignPage sendDocumentsToClient(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/BUF001_S001_CurrentAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/BUF001_S001_CurrentAccountPage.java new file mode 100644 index 0000000..b1993d9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/BUF001_S001_CurrentAccountPage.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage.BUF001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage.CONFIRM_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage.FEE_PLAN_SELECT; +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage.PAGE_ID; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = BUF001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = FEE_PLAN_SELECT, until = Until.CLICKABLE) +@Wait({PAGE_ID, CONFIRM_BUTTON}) +public interface BUF001_S001_CurrentAccountPage extends WebFlow { + String BUF001_S001_PAGE_LABEL_XPATH = "//div[text()='BUF001_S001']"; + String PAGE_ID = "XXX001_T001_W001"; + String CONFIRM_BUTTON = "BUF001_S001_B001"; + String FEE_PLAN_SELECT = "BUF001_S001_C006"; + String DISTRIBUTION_TYPE_SELECT = "BUF001_S001_C003"; + String PRODUCT_SELECT = "BUF001_S001_C001"; + String DISPOSITION_RADIO_YES = "BUF001_S001_R003_1"; + String DISPOSITION_RADIO_NO = "BUF001_S001_R003_0"; + + @Select(FEE_PLAN_SELECT) + BUF001_S001_CurrentAccountPage selectFeePlan(String text); + + @Select(value = FEE_PLAN_SELECT, selectByOrder = true) + BUF001_S001_CurrentAccountPage selectFeePlanByOrder(int accountOrder); + + @Select(value = PRODUCT_SELECT, andWait = @Wait(explicitWaitSeconds = 2)) + BUF001_S001_CurrentAccountPage selectProduct(String text); + + @Select(value = DISTRIBUTION_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + BUF001_S001_CurrentAccountPage selectDistributionType(String distribution); + + @Click(DISPOSITION_RADIO_YES) + BUF001_S001_CurrentAccountPage clickDispositionRadioYes(); + + @Click(DISPOSITION_RADIO_NO) + BUF001_S001_CurrentAccountPage clickDispositionRadioNo(); + + @Click(CONFIRM_BUTTON) + BUF001_S001_CurrentAccountPageTransitions clickConfirm(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/BUF001_S001_CurrentAccountPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/BUF001_S001_CurrentAccountPageTransitions.java new file mode 100644 index 0000000..8082eec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/BUF001_S001_CurrentAccountPageTransitions.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.PRP002_OBR001_PrintSpecialConditionsPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS027_OBR001_PreContractualInformationPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.DUP009_S001_CreateElectronicDistributionChannel; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface BUF001_S001_CurrentAccountPageTransitions extends WebFlow { + + PSP004_S001_PrintPage onPrintPage(); + + TIS004_S002_SignerSelectionPage onCitizenSignatureInformation(); + + TIS050_S002_SignerSelectionPage OnSignerSelectionPage(); + + TIS027_OBR001_PreContractualInformationPage onPreContractInformationPage(); + + PRP002_OBR001_PrintSpecialConditionsPage onPrintSpecialConditionsPage(); + + DUP009_S001_CreateElectronicDistributionChannel onElectronicDistributionChannelCreationPage(); + + TIS050_S001_SignerSelectionPage onSignerPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/FXM002_S002_SetFxMoneyPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/FXM002_S002_SetFxMoneyPage.java new file mode 100644 index 0000000..c7659c0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/FXM002_S002_SetFxMoneyPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.FXM002_S002_SetFxMoneyPage.*; + +@Wait(value = FXM002_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface FXM002_S002_SetFxMoneyPage extends WebFlow { + String FXM002_S002_PAGE_LABEL_XPATH = "//div[text()='FXM002_S002']"; + + String CONTINUE_BUTTON = "FXM002_S002_B010"; + + String NO_FX_MONEY_RADIO = "FXM002_S002_R001_0"; + + @Click(value = NO_FX_MONEY_RADIO, andWait = @Wait(value = CONTINUE_BUTTON, by = Lookup.ID, until = Until.VISIBLE)) + FXM002_S002_SetFxMoneyPage clickNoToSetFxMoneyRadio(); + + @Click(CONTINUE_BUTTON) + FXM002_S002_SetFxMoneyPageTransition clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/FXM002_S002_SetFxMoneyPageTransition.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/FXM002_S002_SetFxMoneyPageTransition.java new file mode 100644 index 0000000..d151ab9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/FXM002_S002_SetFxMoneyPageTransition.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface FXM002_S002_SetFxMoneyPageTransition extends WebFlow { + + PVX002_S002_AccountDispositionOwnerPage clickContinueToAccountDispositionOwnerPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/HPO001_S001_CurrentAccountDetailsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/HPO001_S001_CurrentAccountDetailsPage.java new file mode 100644 index 0000000..e4c9a4e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/HPO001_S001_CurrentAccountDetailsPage.java @@ -0,0 +1,89 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.dsl.ufo.banka.pages.main.*; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.transasctional.PKU005_S010_PostedTransactionsPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.HPO001_S001_CurrentAccountDetailsPage.HPO001_S001_PAGE_LABEL_XPATH; + +@Wait(value = HPO001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(value = HPO001_S001_CurrentAccountDetailsPage.TRANSACTION_MENU_DIV, waitSecondsForElement = 90) +public interface HPO001_S001_CurrentAccountDetailsPage extends WebFlow, StoreAccessor { + + String BACK_TO_CLIENT_BUTTON = "HPO001_S001_S014"; + String HPO001_S001_PAGE_LABEL_XPATH = "//div[text()='HPO001_S001']"; + String TRANSACTION_MENU_DIV = "HPO001_S001_I001"; + String CREATE_PAYMENT_ORDER_DIV = "HPO001_S001_B027"; + String CREATE_DIRECT_DEBIT_DIV = "HPO001_S001_B016"; + String CREATE_STANDING_ORDER_DIV = "HPO001_S001_B010"; + String LIST_OF_STANDING_ORDERS_DIV = "HPO001_S001_B015"; + String CREATE_SIPO_PAYMENT_DIV = "HPO001_S001_B018"; + String CREATE_FOREIGN_PAYMENT = "HPO001_S001_B020"; + String TRANSACTIONS = "HPO001_S001_I012"; + String POSTED = "HPO001_S001_B013"; + String DISPO_BALANCE = "HPO001_S001_L001"; + String DISPO_BALANCE_KEY = "DISPO_BALANCE_KEY"; + String ACC_BALANCE = "HPO001_S001_L002"; + String ACC_BALANCE_KEY = "ACC_BALANCE_KEY"; + String ACC_CURRENCY = "HPO001_S001_L015"; + String PRODUCT_LABEL = "HPO001_S001_L017"; + String OPENING_DATE_LABEL = "HPO001_S001_L019"; + String PAYMENT_METHOD_LABEL = "HPO001_S001_L013"; + + @Click(TRANSACTION_MENU_DIV) + @Click(CREATE_PAYMENT_ORDER_DIV) + PKU001_S002_CreatePaymentOrderPage openCreatePaymentOrderPage(); + + @Click(TRANSACTION_MENU_DIV) + @Click(CREATE_DIRECT_DEBIT_DIV) + INK001_S002_ListOfAuthorizationForDirectDebitsPage openListOfDirectDebitsPage(); + + @Click(TRANSACTION_MENU_DIV) + @Click(CREATE_STANDING_ORDER_DIV) + TRP001_S004_CreateNewStandingOrderPage openCreateStandingOrderPage(); + + @Click(TRANSACTION_MENU_DIV) + @Click(LIST_OF_STANDING_ORDERS_DIV) + TRP001_S002_ListOfStandingOrdersPage openListOfStandingOrdersPage(); + + @Click(TRANSACTION_MENU_DIV) + @Click(CREATE_FOREIGN_PAYMENT) + ZPL006_S002_ListOfForeignPaymentsPage openListOfForeignPaymentsPage(); + + @Click(TRANSACTION_MENU_DIV) + @Click(CREATE_SIPO_PAYMENT_DIV) + SIP001_S002_ListOfSIPOPayments openListOfSIPOPayments(); + + @CustomAction + default PKU005_S010_PostedTransactionsPage openPostedTransactions() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.moveToElementAndClickToOtherElement(TRANSACTIONS, POSTED); + return null; + } + + @Click(BACK_TO_CLIENT_BUTTON) + HKO101_S001_MainClientPage clickBackToClient(); + + @Click(DISPO_BALANCE) + HPO001_S001_CurrentAccountDetailsPage assertAccountBalance(String balance); + + @Click(ACC_CURRENCY) + HPO001_S001_CurrentAccountDetailsPage assertAccountCurrency(String currency); + + @Click(PRODUCT_LABEL) + HPO001_S001_CurrentAccountDetailsPage assertProduct(String product); + + @Click(OPENING_DATE_LABEL) + HPO001_S001_CurrentAccountDetailsPage assertAccountOpeningDate(String date); + + @Click(PAYMENT_METHOD_LABEL) + HPO001_S001_CurrentAccountDetailsPage assertPaymentMethod(String feePlan); + + @StoreElementContent(value = DISPO_BALANCE, storeKey = DISPO_BALANCE_KEY) + HPO001_S001_CurrentAccountDetailsPage storeDispoBalance(); + + @StoreElementContent(value = ACC_BALANCE, storeKey = ACC_BALANCE_KEY) + HPO001_S001_CurrentAccountDetailsPage storeAccBalance(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/KUL032_S001_MiniFlexiBusinessLimitPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/KUL032_S001_MiniFlexiBusinessLimitPage.java new file mode 100644 index 0000000..6188d80 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/KUL032_S001_MiniFlexiBusinessLimitPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.KUL032_S001_MiniFlexiBusinessLimitPage.*; + +@Wait(value = KUL032_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface KUL032_S001_MiniFlexiBusinessLimitPage extends WebFlow, StoreAccessor { + String KUL032_S001_PAGE_LABEL_XPATH = "//div[text()='KUL032_S001']"; + + String LIMIT_INPUT = "KUL032_S001_E001"; + + String BACK_BUTTON = "KUL032_S001_B001"; + String CONTINUE_BUTTON = "KUL032_S001_B002"; + + @TypeInto(LIMIT_INPUT) + @KeyPress(Key.TAB) + KUL032_S001_MiniFlexiBusinessLimitPage setMiniFlexiLimit(String miniFlexiLimit); + + @Click(CONTINUE_BUTTON) + ODS003_S001_AddCodeOfRecommendedPersonPage clickContinueToAddCodeOfRecommendedPersonPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL002_S001_SmoothPaymentVerificationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL002_S001_SmoothPaymentVerificationPage.java new file mode 100644 index 0000000..3ba442f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL002_S001_SmoothPaymentVerificationPage.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL002_S001_SmoothPaymentVerificationPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface ZPL002_S001_SmoothPaymentVerificationPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='ZPL002_S001']"; + String CURRENCY_SELECT = "ZPL002_S001_C001"; + String AMOUNT_INPUT = "ZPL002_S001_E001"; + String ACCOUNT_NUMBER_SENDER_INPUT = "ZPL002_S001_E004"; + String ACCOUNT_NUMBER_RECEIVER_INPUT = "ZPL002_S001_E013"; + String COUNTRY_CODE_INPUT = "ZPL002_S001_E021"; + String IDENTIFICATION_BANK_CODE_INPUT = "ZPL002_S001_E018"; + String EXPENSES_SHA_RADIO = "ZPL002_S001_R001_SHA"; + String VERIFICATION_BUTTON = "ZPL002_S001_B002"; + + @Select(CURRENCY_SELECT) + ZPL002_S001_SmoothPaymentVerificationPage selectCurrency(String currency); + + @TypeInto(AMOUNT_INPUT) + ZPL002_S001_SmoothPaymentVerificationPage fillAmount(String amount); + + @TypeInto(ACCOUNT_NUMBER_SENDER_INPUT) + ZPL002_S001_SmoothPaymentVerificationPage fillAccountNumberSender(String accountNumberSender); + + @TypeInto(ACCOUNT_NUMBER_RECEIVER_INPUT) + ZPL002_S001_SmoothPaymentVerificationPage fillAccountNumberReceiver(String accountNumberReceiver); + + @TypeInto(COUNTRY_CODE_INPUT) + ZPL002_S001_SmoothPaymentVerificationPage fillCountryCode(String countryCode); + + @TypeInto(IDENTIFICATION_BANK_CODE_INPUT) + ZPL002_S001_SmoothPaymentVerificationPage fillIdentificationBankCode(String identificationBankCode); + + @Click(value = EXPENSES_SHA_RADIO, jsClick = true) + ZPL002_S001_SmoothPaymentVerificationPage clickExpensesSha(); + + @Click(VERIFICATION_BUTTON) + ZPL_OBR001_SmoothPaymentInfo clickVerification(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL002_S003_ListOfSmoothPaymentsForVerificationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL002_S003_ListOfSmoothPaymentsForVerificationPage.java new file mode 100644 index 0000000..cbf1172 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL002_S003_ListOfSmoothPaymentsForVerificationPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL002_S003_ListOfSmoothPaymentsForVerificationPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface ZPL002_S003_ListOfSmoothPaymentsForVerificationPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='ZPL002_S003']"; + String PAYMENT_XPATH = "//table[@id='ZPL002_S003_G001_UfoTable']//td[text()='%s']"; + String VERIFICATION_BUTTON = "ZPL002_S003_B001"; + + @Click(value = PAYMENT_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + ZPL002_S003_ListOfSmoothPaymentsForVerificationPage clickPayment(String paymentId); + + @Click(VERIFICATION_BUTTON) + ZPL002_S001_SmoothPaymentVerificationPage clickVerification(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S001_ForeignPaymentInputPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S001_ForeignPaymentInputPage.java new file mode 100644 index 0000000..32be84a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S001_ForeignPaymentInputPage.java @@ -0,0 +1,94 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL006_S001_ForeignPaymentInputPage.SAVE_PAYMENT_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL006_S001_ForeignPaymentInputPage.ZPL006_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = ZPL006_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90) +@Wait(value = SAVE_PAYMENT_BUTTON, waitSecondsForElement = 90) +public interface ZPL006_S001_ForeignPaymentInputPage extends WebFlow, StoreAccessor { + + String ZPL006_S001_PAGE_LABEL_XPATH = "//div[text()='ZPL006_S001']"; + String IDENTIFICATION_BANK_CODE_KEY = "IDENTIFICATION_BANK_CODE"; + String CURRENCY_SELECT = "ZPL006_S001_C002"; + String AMOUNT_INPUT = "ZPL006_S001_E014"; + String NO_INDIVIDUAL_EXCHANGE_RATE_RADIO = "ZPL006_S001_R004_0"; + String RECEIVER_ACC_INPUT = "ZPL006_S001_E018"; + String RECEIVER_NAME_INPUT = "ZPL006_S001_E003"; + String RECEIVER_ADRESS_STREET_INPUT = "ZPL006_S001_E001"; + String RECEIVER_ADRESS_CITY_INPUT = "ZPL006_S001_E002"; + String RECEIVER_ADRESS_COUNTRY_CODE_INPUT = "ZPL006_S001_E047"; + String IDENTIFICATION_BANK_CODE_INPUT = "ZPL006_S001_E013"; + String SAVE_PAYMENT_BUTTON = "ZPL006_S001_B007"; + + @CustomAction + default ZPL006_S001_ForeignPaymentInputPage dismissInformationAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.dismissAlert(20); + return null; + } + + @Select(value = CURRENCY_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZPL006_S001_ForeignPaymentInputPage selectCurrency(String currency); + + @TypeInto(value = AMOUNT_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZPL006_S001_ForeignPaymentInputPage fillAmount(String amount); + + @Click(value =NO_INDIVIDUAL_EXCHANGE_RATE_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZPL006_S001_ForeignPaymentInputPage clickNo(); + + @TypeInto(RECEIVER_ACC_INPUT) + ZPL006_S001_ForeignPaymentInputPage fillAccount(String accountNumber); + + @CustomAction + default ZPL006_S001_ForeignPaymentInputPage fillAccountAndWaitUntilLoaded(String accountNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.type(() -> RECEIVER_ACC_INPUT, accountNumber, true); + endpoint.click(() -> RECEIVER_NAME_INPUT, Lookup.ID); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @TypeInto(value = RECEIVER_NAME_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZPL006_S001_ForeignPaymentInputPage fillReceiverName(String receiverName); + + @TypeInto(value = RECEIVER_ADRESS_STREET_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZPL006_S001_ForeignPaymentInputPage fillReceiverAdressStreet(String receiverAdressStreet); + + @TypeInto(value = RECEIVER_ADRESS_CITY_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZPL006_S001_ForeignPaymentInputPage fillReceiverAdressCity(String receiverAdressCity); + + @TypeInto(value = RECEIVER_ADRESS_COUNTRY_CODE_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZPL006_S001_ForeignPaymentInputPage fillReceiverAdressCountryCode(String receiverAdressCountryCode); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, waitSecondsForElement = 60, by = Lookup.CLASSNAME) + @Click(SAVE_PAYMENT_BUTTON) + ZPL_OBR001_SmoothPaymentInfo saveCreatedForeignPayment(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, waitSecondsForElement = 60, by = Lookup.CLASSNAME) + @CustomAction + default PSP004_S001_PrintPage saveCreatedForeignPaymentAndDismissAllAlertsIfPresent() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> SAVE_PAYMENT_BUTTON); + for (int i = 0; i < 3; i++) { + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(1); + } else break; + } + return null; + } + + @CustomAction + default ZPL006_S001_ForeignPaymentInputPage storeIdentificationBankCode() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + store(IDENTIFICATION_BANK_CODE_KEY, endpoint.getAttribute(IDENTIFICATION_BANK_CODE_INPUT, "value")); + return null; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S002_ListOfForeignPaymentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S002_ListOfForeignPaymentsPage.java new file mode 100644 index 0000000..c6287b3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S002_ListOfForeignPaymentsPage.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL006_S002_ListOfForeignPaymentsPage.NEW_PAYMENT_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL006_S002_ListOfForeignPaymentsPage.ZPL006_S002_PAGE_LABEL_XPATH; + +@Wait(value = ZPL006_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90) +@Wait(value = {NEW_PAYMENT_BUTTON}, waitSecondsForElement = 90) +public interface ZPL006_S002_ListOfForeignPaymentsPage extends WebFlow, StoreAccessor { + + String ZPL006_S002_PAGE_LABEL_XPATH = "//div[text()='ZPL006_S002']"; + String NEW_PAYMENT_BUTTON = "ZPL006_S002_B001"; + String PAYMENT_XPATH = "//table[@id='ZPL006_S002_G001_UfoTable']//td[text()='%s']"; + String EDIT_BUTTON = "ZPL006_S002_B005"; + String PAYMENT_AMOUNT_XPATH = PAYMENT_XPATH + "/following-sibling::td[3]"; + String CANCEL_PAYMENT_BUTTON = "ZPL006_S002_B006"; + + @Click(NEW_PAYMENT_BUTTON) + ZPL006_S001_ForeignPaymentInputPage clickNewPayment(); + + @CustomAction + default ZPL006_S001_ForeignPaymentInputPage clickNewPaymentAndDismissAlertIfPresent() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> NEW_PAYMENT_BUTTON); + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(1); + } + return null; + } + + @CheckElementPresent(value = PAYMENT_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + ZPL006_S002_ListOfForeignPaymentsPage checkPresentCreatedTransaction(String paymentId); + + @Click(value = PAYMENT_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + ZPL006_S002_ListOfForeignPaymentsPage clickPayment(String paymentId); + + @Click(EDIT_BUTTON) + @AcceptAlert(waitSecondsForAlert = 5, expectedAlertText = "Jedná se o editaci platby. " + + "Kurzovní lístek se mohl od doby zadání změnit. " + + "Ekvivalent platby je tedy pouze orientační - podle aktuálního kurzovního lístku.") + ZPL006_S004_EditSmoothPaymentPage clickEditAndAcceptAlert(); + + @CheckElementContent(value = PAYMENT_AMOUNT_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + ZPL006_S002_ListOfForeignPaymentsPage checkPaymentAmount(String paymentId, String expectedAmount); + + @Click(CANCEL_PAYMENT_BUTTON) + ZPL006_S005_CancelSmoothPaymentPage clickCancelPayment(); + + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S004_EditSmoothPaymentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S004_EditSmoothPaymentPage.java new file mode 100644 index 0000000..6ec6736 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S004_EditSmoothPaymentPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL006_S004_EditSmoothPaymentPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface ZPL006_S004_EditSmoothPaymentPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='ZPL006_S004']"; + String AMOUNT_INPUT = "ZPL006_S004_E014"; + String SAVE_BUTTON = "ZPL006_S004_B001"; + + @TypeInto(value = AMOUNT_INPUT, clear = true) + @KeyPress(value = Key.TAB, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZPL006_S004_EditSmoothPaymentPage fillAmount(String amount); + + @Click(value = SAVE_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZPL_OBR001_SmoothPaymentInfo clickSave(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S005_CancelSmoothPaymentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S005_CancelSmoothPaymentPage.java new file mode 100644 index 0000000..06b86c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL006_S005_CancelSmoothPaymentPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL006_S005_CancelSmoothPaymentPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface ZPL006_S005_CancelSmoothPaymentPage extends WebFlow { + String PAGE_LABEL_XPATH = "//div[text()='ZPL006_S005']"; + String CANCEL_BUTTON = "ZPL006_S005_B001"; + + @Click(CANCEL_BUTTON) + ZPL_OBR001_SmoothPaymentInfo clickCancel(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL_OBR001_SmoothPaymentInfo.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL_OBR001_SmoothPaymentInfo.java new file mode 100644 index 0000000..3c9e254 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/ZPL_OBR001_SmoothPaymentInfo.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL_OBR001_SmoothPaymentInfo.*; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, ZPL_PAGE_LABEL_XPATH}, by = Lookup.XPATH, waitSecondsForElement = 90) +@Wait(value = OK_BUTTON, waitSecondsForElement = 90) +public interface ZPL_OBR001_SmoothPaymentInfo extends WebFlow, StoreAccessor { + + String SMOOTH_PAYMENT_ID_KEY = "SMOOTH_PAYMENT_ID"; + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String ZPL_PAGE_LABEL_XPATH = "//div[contains(text(), 'ZPL00')]"; + String PAGE_LABEL_DIV = "OBR001_S001_L002"; + String NAME_PAGE = "//div[text()='Instrukce k tisku']"; + String OK_BUTTON = "OBR001_S001_B002"; + String INFO_LABEL = "OBR001_S001_L004"; + + @StoreElementContent(storeKey = SMOOTH_PAYMENT_ID_KEY, value = INFO_LABEL) + ZPL_OBR001_SmoothPaymentInfo storeSmoothPaymentId(); + + @Click(OK_BUTTON) + ZPL006_S002_ListOfForeignPaymentsPage clickOkButton(); + + @CheckElementContent(PAGE_LABEL_DIV) + ZPL_OBR001_SmoothPaymentInfo checkPageLabelContent(String expectedContent); + + @CheckElementContent(INFO_LABEL) + ZPL_OBR001_SmoothPaymentInfo checkInfoLabelContent(String expectedContent); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/transasctional/PKU005_S003_DetailPostedTransactionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/transasctional/PKU005_S003_DetailPostedTransactionPage.java new file mode 100644 index 0000000..b2e98e6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/transasctional/PKU005_S003_DetailPostedTransactionPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account.transasctional; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.transasctional.PKU005_S003_DetailPostedTransactionPage.DETAIL_POSTED_PAGE_ID; + +@Wait(value = {DETAIL_POSTED_PAGE_ID}, waitSecondsForElement = 30) +public interface PKU005_S003_DetailPostedTransactionPage extends WebFlow { + String TRANSACTION_VALUE = "//div[@id='PKU005_S003_L015' and text()='%s']"; + String DETAIL_POSTED_PAGE_ID = "XXX001_T001_L005"; + + @CheckElementPresent(value = TRANSACTION_VALUE, by = Lookup.XPATH, isStringDynamicXpath = true) + PKU005_S003_DetailPostedTransactionPage checkTransactionValue(String transactionValue); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/transasctional/PKU005_S010_PostedTransactionsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/transasctional/PKU005_S010_PostedTransactionsPage.java new file mode 100644 index 0000000..a787e40 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/current/account/transasctional/PKU005_S010_PostedTransactionsPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.current.account.transasctional; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.transasctional.PKU005_S010_PostedTransactionsPage.POSTED_TRANSACTIONS_PAGE_ID; +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.transasctional.PKU005_S010_PostedTransactionsPage.TYPE_OF_TRANSACTIONS; + +@Wait(value = {POSTED_TRANSACTIONS_PAGE_ID, TYPE_OF_TRANSACTIONS}, waitSecondsForElement = 30) +public interface PKU005_S010_PostedTransactionsPage extends WebFlow { + String POSTED_TRANSACTIONS_PAGE_ID = "XXX001_T001_L005"; + String TYPE_OF_TRANSACTIONS = "PKU005_S010_C001"; + String LOAD_FILTER_BUTTON = "PKU005_S010_B001"; + String FIRST_DETAIL_BUTTON = "PKU005_S010_G001-0"; + String INPUT_VALUE_FROM = "PKU005_S010_E003"; + String INPUT_VALUE_TO = "PKU005_S010_E004"; + String DATE_OF_ACCOUNTED = "//th[contains(text(),'Datum zúčtování')]"; + + @Select(TYPE_OF_TRANSACTIONS) + PKU005_S010_PostedTransactionsPage selectTypeOfTransactions(String typeOfTransactions); + + @TypeInto(INPUT_VALUE_FROM) + PKU005_S010_PostedTransactionsPage setValueFrom(String transactionFrom); + + @TypeInto(INPUT_VALUE_TO) + PKU005_S010_PostedTransactionsPage setValueTo(String transactionTo); + + @Click(value = LOAD_FILTER_BUTTON, andWait = @Wait(value = FIRST_DETAIL_BUTTON, until = Until.VISIBLE)) + PKU005_S010_PostedTransactionsPage clickToLoadFilter(); + + @Click(value = FIRST_DETAIL_BUTTON) + PKU005_S003_DetailPostedTransactionPage clickDetailToFirstTransaction(); + + @Clicks({ + @Click(value = DATE_OF_ACCOUNTED, by = Lookup.XPATH), + @Click(value = DATE_OF_ACCOUNTED, by = Lookup.XPATH)}) + PKU005_S010_PostedTransactionsPage sortFromLastTransaction(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK001_S001_DebitCardRequestPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK001_S001_DebitCardRequestPage.java new file mode 100644 index 0000000..5baf4dd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK001_S001_DebitCardRequestPage.java @@ -0,0 +1,189 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.debit.card; + +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPage.NPK001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPage.SEND_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = NPK001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(SEND_BUTTON) +@Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) +public interface NPK001_S001_DebitCardRequestPage extends WebFlow, SharedElements, StoreAccessor { + String NPK001_S001_PAGE_LABEL_XPATH = "//div[text()='NPK001_S001']"; + + String SEND_BUTTON = "NPK001_S001_B002"; + String ENTER_BUTTON = "NPK001_S001_B006"; + String CARD_DESIGN_BUTTON = "NPK001_S001_B008"; + + String CURRENT_ACCOUNT_SELECT = "NPK001_S001_C001"; + String CARD_TYPE_SELECT = "NPK001_S001_C002"; + String CARD_FEE_PLAN_SELECT = "NPK001_S001_C003"; + String CARD_VARIANT_SELECT = "NPK001_S001_C004"; + + String ACTIVATE_PASSWORD = "NPK001_S001_E004"; + + String PERMANENT_ADDRESS_RADIO_BUTTON = "NPK001_S001_R001_1"; + String BRANCH_ADDRESS_RADIO_BUTTON = "NPK001_S001_R001_3"; + String PERMANENT_ADDRESS_FOR_PIN_RADIO_BUTTON = "NPK001_S001_R002_1"; + String PLASTIC = "NPK001_S001_R003_1"; + String VIRTUAL = "NPK001_S001_R003_5"; + String CLIENT_DATA_HOLDER_BUTTON = "NPK001_S001_B011"; + String CARD_DELIVERY_BUTTON = "NPK001_S001_B012"; + String PIN_DELIVERY_BUTTON = "NPK001_S001_B013"; + String DESIGN_BUTTON = "NPK001_S001_X026"; + String POTENTIAL_FORMAL_ERROR_BUTTON = "NPK001_S001_B005"; + String CLOSE_POTENTIAL_FORMAL_ERROR_POP_UP_BUTTON = "NPK001_S001_X103"; + String LOG_BUTTON = "XXX001_T001_P102"; + String LOADER_IMG = "CAS001_S001_P001"; + + String PRESENCE_OF_CARD_DISABLED_XPATH = "//input[@id='PRESENCE_OF_CARD' and @disabled and not(@checked)]"; + String IS_CARD_TYPE_VISIBLE_XPATH = "//select[@id='NPK001_S001_C002']/option[contains(text(),'CARD_TYPE')]"; + + @Select(value = CURRENT_ACCOUNT_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME, waitSecondsForElement = 60)) + NPK001_S001_DebitCardRequestPage selectCurrentAccount(long currentAccountNumber); + + @Select(value = CURRENT_ACCOUNT_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + NPK001_S001_DebitCardRequestPage selectCurrentAccountByName(String currentAccountName); + + @Select(value = CURRENT_ACCOUNT_SELECT, selectByOrder = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME, waitSecondsForElement = 80)) + NPK001_S001_DebitCardRequestPage selectCurrentAccountByIndex(int index); + + @Select(value = CARD_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME, waitSecondsForElement = 60)) + NPK001_S001_DebitCardRequestPage selectDebitCardType(String debitCardType); + + @Select(value = CARD_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE), selectByOrder = true) + NPK001_S001_DebitCardRequestPage selectDebitCardTypeByIndex(int index); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @CustomAction + default NPK001_S001_DebitCardRequestPage clickPresenceOfCardAndPinCardDelivery(String presenceOfCard) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (presenceOfCard.equals("Virtual")) { + endpoint.jsClick((() -> VIRTUAL)); + endpoint.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + } else { + endpoint.jsClick((() -> PLASTIC)); + endpoint.click(() -> PIN_DELIVERY_BUTTON, Lookup.ID); + endpoint.jsClick(() -> PERMANENT_ADDRESS_FOR_PIN_RADIO_BUTTON, Lookup.ID); + endpoint.acceptAlert(5); + endpoint.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + endpoint.click(() -> CARD_DELIVERY_BUTTON, Lookup.ID); + endpoint.isElementVisible(CARD_DELIVERY_BUTTON, Lookup.ID); + endpoint.jsClick(() -> BRANCH_ADDRESS_RADIO_BUTTON, Lookup.ID); + endpoint.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + } + return null; + } + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @CustomAction + default NPK001_S001_DebitCardRequestPage checkThatCardCantBeOnboarded(String presenceOfCard, String cardType) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, IS_CARD_TYPE_VISIBLE_XPATH.replace("CARD_TYPE", cardType), Lookup.XPATH)) { + endpoint.selectByVisibleText(CARD_TYPE_SELECT, cardType); + if (presenceOfCard.equals("Virtual")) { + endpoint.isElementPresent(PRESENCE_OF_CARD_DISABLED_XPATH.replace("PRESENCE_OF_CARD", VIRTUAL), Lookup.XPATH); + } else { + endpoint.isElementPresent(PRESENCE_OF_CARD_DISABLED_XPATH.replace("PRESENCE_OF_CARD", PLASTIC), Lookup.XPATH); + } + } + return null; + } + + @Select(value = CARD_FEE_PLAN_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME, waitSecondsForElement = 60)) + NPK001_S001_DebitCardRequestPage selectDebitCardFeePlan(DebitCardFeePlan debitCardFeePlan); + + @Click(value = DESIGN_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + NPK001_S001_DebitCardRequestPage clickDesign(); + + @Select(value = CARD_FEE_PLAN_SELECT, selectByOrder = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + NPK001_S001_DebitCardRequestPage selectDebitCardFeePlanByIndex(int feePlanInt); + + @Select(value = CARD_VARIANT_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + NPK001_S001_DebitCardRequestPage selectCardVariant(String debitCardVariant); + + @TypeInto(value = ACTIVATE_PASSWORD, clear = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + NPK001_S001_DebitCardRequestPage typeActivatePassword(String activationPassword); + + @Click(value = PERMANENT_ADDRESS_FOR_PIN_RADIO_BUTTON, jsClick = true) + NPK001_S001_DebitCardRequestPage clickPermanentAddressForPinRadio(); + + @Click(value = CLIENT_DATA_HOLDER_BUTTON, by = Lookup.ID, andWait = @Wait(ENTER_BUTTON)) + NPK001_S001_DebitCardRequestPage clickClientDataHolderButton(); + + @Click(ENTER_BUTTON) + NPK001_S001_DebitCardRequestPageTransitions clickEnterButton(); + + @Click(value = PIN_DELIVERY_BUTTON, by = Lookup.ID) + @Click(value = PERMANENT_ADDRESS_FOR_PIN_RADIO_BUTTON, jsClick = true) + NPK001_S001_DebitCardRequestPage clickPinDeliveryToPermanentAddress(); + + @CustomAction + default NPK001_S001_DebitCardRequestPage dismissPinChargeAlert() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.dismissAlert(10); + return null; + } + + @Click(value = CARD_DELIVERY_BUTTON, by = Lookup.ID) + @Click(value = PERMANENT_ADDRESS_RADIO_BUTTON, jsClick = true) + NPK001_S001_DebitCardRequestPage clickCardDeliveryToPermanentAddress(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE) + @Click(SEND_BUTTON) + NPK001_S001_DebitCardRequestPageTransitions waitForLoadAndClickSend(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE) + @CustomAction + default NPK001_S001_DebitCardRequestPageTransitions clickSendAndDismissPossibleAlerts() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> SEND_BUTTON); + //Alert který vzniká při špatném zakliknutí doručení plastu + if (endpoint.isAlertPresent(3) && endpoint.getAlertText(3).equals("Vyberte adresu pro doručení plastu.")) { + endpoint.acceptAlert(3); + endpoint.jsClick(() -> PERMANENT_ADDRESS_RADIO_BUTTON, Lookup.ID); + if (endpoint.isAlertPresent(3)) { + endpoint.acceptAlert(3); + } + endpoint.click(() -> SEND_BUTTON); + } + //Obecný alert, který vyzívá pouze ke kontrole správnosti uvedených informací + if (endpoint.isAlertPresent(3)) { + endpoint.acceptAlert(3); + if (endpoint.isElementVisible(POTENTIAL_FORMAL_ERROR_BUTTON)) { + endpoint.click(() -> POTENTIAL_FORMAL_ERROR_BUTTON); + endpoint.click(() -> CLOSE_POTENTIAL_FORMAL_ERROR_POP_UP_BUTTON); + } + endpoint.click(() -> SEND_BUTTON); + } + return null; + } + + @CustomAction + default NPK001_S001_DebitCardRequestPage clickDesignButtonIfSelectIsNotEnabled() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (!endpoint.isElementEnabled(CARD_VARIANT_SELECT, Lookup.ID)) { + endpoint.click(() -> CARD_DESIGN_BUTTON); + endpoint.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + } + return null; + } + + @CustomAction + default NPK001_S001_DebitCardRequestPageTransitions clickContinueAndWaitUntilLoaded() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(25, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + endpoint.click(() -> SEND_BUTTON); + endpoint.waitForElementsToLoad(20, Until.VISIBLE, LOADER_IMG); + endpoint.waitForElementsToLoad(150, Until.VISIBLE, LOG_BUTTON); + return null; + } + + @Click(SEND_BUTTON) + NPK001_S001_DebitCardRequestPageTransitions clickSend(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK001_S001_DebitCardRequestPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK001_S001_DebitCardRequestPageTransitions.java new file mode 100644 index 0000000..768b0d4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK001_S001_DebitCardRequestPageTransitions.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.debit.card; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.*; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface NPK001_S001_DebitCardRequestPageTransitions extends WebFlow { + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + TIS046_S001_DocumentsProvidedToClientPage onDocumentsProvided(); + + TIS050_S001_SignerSelectionPage onSignerPage(); + + TIS051_OBR001_ClientFinalSignatureConfirmationPage onFinalSignature(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + CAS001_S001_ScoringPage onScoringPage(); + + NPK011_OBR001_001_CardHolderAdditionPage onAddHolderPage(); + + PSP004_S001_PrintPage onPrintPage(); + + ZZJ001_S001_MeetingRecordPage onMeetingRecordPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK011_OBR001_001_CardHolderAdditionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK011_OBR001_001_CardHolderAdditionPage.java new file mode 100644 index 0000000..43b27a9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK011_OBR001_001_CardHolderAdditionPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.debit.card; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK011_OBR001_001_CardHolderAdditionPage.NPK011_OBR001_001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK011_OBR001_001_CardHolderAdditionPage.OBR001_S001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, NPK011_OBR001_001_PAGE_LABEL_XPATH}, by = Lookup.XPATH) +public interface NPK011_OBR001_001_CardHolderAdditionPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String NPK011_OBR001_001_PAGE_LABEL_XPATH = "//div[text()='NPK011_OBR001_001']"; + String HOLDER_OWNER_BUTTON = "OBR001_S001_B001"; + String DIFFERENT_HOLDER_BUTTON = "OBR001_S001_B003"; + + @Click(HOLDER_OWNER_BUTTON) + NPK001_S001_DebitCardRequestPage clickOnHolderOwnerButton(); + + @Click(DIFFERENT_HOLDER_BUTTON) + NPK011_OBR001_002_CardHolderAndOwnerPresentPage clickOnDifferentHolderButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK011_OBR001_002_CardHolderAndOwnerPresentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK011_OBR001_002_CardHolderAndOwnerPresentPage.java new file mode 100644 index 0000000..dc2cfb5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK011_OBR001_002_CardHolderAndOwnerPresentPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.debit.card; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.HLE001_S001_CoApplicantSearchPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = NPK011_OBR001_002_CardHolderAndOwnerPresentPage.NPK011_OBR001_002_PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface NPK011_OBR001_002_CardHolderAndOwnerPresentPage extends WebFlow { + String NPK011_OBR001_002_PAGE_LABEL_XPATH = "//div[text()='NPK011_OBR001_002']"; + String CONTINUE_BUTTON = "OBR001_S001_B003"; + + @Click(CONTINUE_BUTTON) + HLE001_S001_CoApplicantSearchPage clickContinue(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK012_S001_DebitCardHolderSelectPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK012_S001_DebitCardHolderSelectPage.java new file mode 100644 index 0000000..bcbb8d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/NPK012_S001_DebitCardHolderSelectPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.debit.card; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF113_S001_ChangeDataFO; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK012_S001_DebitCardHolderSelectPage.NPK012_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK012_S001_DebitCardHolderSelectPage.BACK_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = NPK012_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(BACK_BUTTON) +@Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) +public interface NPK012_S001_DebitCardHolderSelectPage extends WebFlow, SharedElements { + String NPK012_S001_PAGE_LABEL_XPATH = "//div[text()='NPK012_S001']"; + String PREFIX = "NPK012_S001_"; + + String BACK_BUTTON = PREFIX + "B005"; + String STATUTORY_AUTHORITY_BIRTH_NUMBER_XPATH = "//table[@id='NPK012_S001_G001_UfoTable']//tr[1]//td[3]"; + String SELECT_BUTTON = PREFIX + "G001-0"; + + @StoreElementContent(storeKey = "STAT_AUTH_BIRTH_NUM", value = STATUTORY_AUTHORITY_BIRTH_NUMBER_XPATH) + NPK012_S001_DebitCardHolderSelectPage storeBirthNumber(); + + @Click(SELECT_BUTTON) + CIF113_S001_ChangeDataFO clickSelect(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/SIF004_S001_ContactSettingsForSendingEmailsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/SIF004_S001_ContactSettingsForSendingEmailsPage.java new file mode 100644 index 0000000..2d5667f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/SIF004_S001_ContactSettingsForSendingEmailsPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.debit.card; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.SIF004_S001_ContactSettingsForSendingEmailsPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = SIF004_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface SIF004_S001_ContactSettingsForSendingEmailsPage extends WebFlow { + String SIF004_S001_PAGE_LABEL_XPATH = "//div[text()='SIF004_S001']"; + + String EMAIL_FROM_CIF_BUTTON = "SIF004_S001_B002"; + String PHONE_FROM_CIF_BUTTON = "SIF004_S001_B003"; + String CONTINUE_BUTTON = "SIF004_S001_B006"; + + @Click(value = EMAIL_FROM_CIF_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + SIF004_S001_ContactSettingsForSendingEmailsPage clickFillEmailFromCif(); + + @Click(value = PHONE_FROM_CIF_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + SIF004_S001_ContactSettingsForSendingEmailsPage clickFillPhoneFromCif(); + + @Click(CONTINUE_BUTTON) + SIF004_S001_ContactSettingsForSendingEmailsPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/SIF004_S001_ContactSettingsForSendingEmailsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/SIF004_S001_ContactSettingsForSendingEmailsPageTransitions.java new file mode 100644 index 0000000..c050257 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/debit/card/SIF004_S001_ContactSettingsForSendingEmailsPageTransitions.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.debit.card; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL001_S001_SelectProductsPage; +import cz.moneta.test.dsl.ufo.banka.pages.term.deposit.RTV001_S004_FoundingDepositInformationPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface SIF004_S001_ContactSettingsForSendingEmailsPageTransitions extends WebFlow { + + ODS003_S001_AddCodeOfRecommendedPersonPage onAddCodeOfRecommendedPersonPage(); + + RTV001_S004_FoundingDepositInformationPage onFoundingDepositInformationPage(); + + PVX002_S002_AccountDispositionOwnerPage onAccountDispositionPage(); + + KUL001_S001_SelectProductsPage onSelectProductsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/flexi/credit/NKK003_S001_SelectingApprovedVariantsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/flexi/credit/NKK003_S001_SelectingApprovedVariantsPage.java new file mode 100644 index 0000000..de53a83 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/flexi/credit/NKK003_S001_SelectingApprovedVariantsPage.java @@ -0,0 +1,55 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.flexi.credit; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.PSI001_S050_PreContractualInfromationPrintedPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV010_S001_PrintSignPadPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.PSI001_S050_PreContractualInformationPrintedPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.flexi.credit.NKK003_S001_SelectingApprovedVariantsPage.*; + +@Wait(value = NKK003_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = {PAGE_ID, LOAN_AMOUNT_RADIO}, waitSecondsForElement = 60) +public interface NKK003_S001_SelectingApprovedVariantsPage extends WebFlow, StoreAccessor { + + String NKK003_S001_PAGE_LABEL_XPATH = "//div[text()='NKK003_S001']"; + String PAGE_ID = "XXX001_T001_C001"; + String LOAN_AMOUNT_RADIO = "NKK003_S001_G001-0"; + String SECOND_VARIANT_RADIO = "NKK003_S001_G001-1"; + String LOAN_AMOUNT_ARRAY = "NKK003_S001_E001"; + String SELECT_BUTTON = "NKK003_S001_B001"; + + @Click(value = LOAN_AMOUNT_RADIO, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NKK003_S001_SelectingApprovedVariantsPage clickToLoanAmountRadioButton(); + + @Click(value = SECOND_VARIANT_RADIO, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + NKK003_S001_SelectingApprovedVariantsPage clickSecondVariant(); + + @Wait(LOAN_AMOUNT_ARRAY) + @TypeInto(LOAN_AMOUNT_ARRAY) + NKK003_S001_SelectingApprovedVariantsPage typeIntoLoanAmount(String loanAmount); + + @CustomAction + default NKK003_S001_SelectingApprovedVariantsPage fillIntoLoanAmountIfVisible(String loanAmount) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(LOAN_AMOUNT_ARRAY)) { + endpoint.type(() -> LOAN_AMOUNT_ARRAY, loanAmount, true); + } + return null; + } + + @Click(SELECT_BUTTON) + PSI001_S050_PreContractualInfromationPrintedPage clickSelectButtonToPreContractualPage(); + + @Click(SELECT_BUTTON) + NPV010_S001_PrintSignPadPage clickSelectButtonToPrintSingPadPage(); + + @Click(SELECT_BUTTON) + PSI001_S050_PreContractualInformationPrintedPage clickSelect(); + + @Click(SELECT_BUTTON) + PSP004_S001_PrintPage clickSelectToPrint(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/insurance/BAL001_OBR001_008_InsuranceTypeSelectionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/insurance/BAL001_OBR001_008_InsuranceTypeSelectionPage.java new file mode 100644 index 0000000..9da4b82 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/insurance/BAL001_OBR001_008_InsuranceTypeSelectionPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.insurance.PIP001_S001_ChooseInsurancePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.insurance.BAL001_OBR001_008_InsuranceTypeSelectionPage.BAL001_OBR001_008_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.products.insurance.BAL001_OBR001_008_InsuranceTypeSelectionPage.OBR001_S001_PAGE_LABEL_XPATH; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, BAL001_OBR001_008_PAGE_LABEL_XPATH}, by = Lookup.XPATH) +public interface BAL001_OBR001_008_InsuranceTypeSelectionPage extends WebFlow { + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String BAL001_OBR001_008_PAGE_LABEL_XPATH = "//div[text()='BAL001_OBR001_008']"; + String GROUP_BUTTON = "OBR001_S001_B003"; + + @Click(GROUP_BUTTON) + PIP001_S001_ChooseInsurancePage clickGroupButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF001_S001_MutualFundsCIFdataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF001_S001_MutualFundsCIFdataPage.java new file mode 100644 index 0000000..effaa57 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF001_S001_MutualFundsCIFdataPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF001_S001_MutualFundsCIFdataPage.INF001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF001_S001_MutualFundsCIFdataPage.NEXT_BUTTON; + +@Wait(value = INF001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(NEXT_BUTTON) +public interface INF001_S001_MutualFundsCIFdataPage extends WebFlow { + + String INF001_S001_PAGE_LABEL_XPATH = "//div[text()='INF001_S001']"; + String TAX_DOMICIL = "INF001_S001_C001"; + String NEXT_BUTTON = "INF001_S001_B003"; + + @Select(TAX_DOMICIL) + INF001_S001_MutualFundsCIFdataPage selectCzechRepublicTaxDomicil(String taxDomicil); + + @Click(NEXT_BUTTON) + INF002_S001_InvestmentForm clickNextButtonToInvestmentForm(); + + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF001_S002_ContractData.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF001_S002_ContractData.java new file mode 100644 index 0000000..5a3464e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF001_S002_ContractData.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF001_S002_ContractData.CLIENT_STATEMENT_DISTRIBUTION; +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF001_S002_ContractData.INF001_S002_PAGE_LABEL_XPATH; + +@Wait(value = INF001_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(CLIENT_STATEMENT_DISTRIBUTION) +public interface INF001_S002_ContractData extends WebFlow { + + String INF001_S002_PAGE_LABEL_XPATH = "//div[text()='INF001_S002']"; + String CLIENT_STATEMENT_DISTRIBUTION = "INF001_S002_C007"; + String BU_RADIO_BTN = "INF001_S002_R002_1"; + String ACCOUNT_NUMBER_FOR_SETTLEMENT = "INF001_S002_C008"; + String SEND_AND_PRINT_BUTTON = "INF001_S002_B001"; + + @Select(CLIENT_STATEMENT_DISTRIBUTION) + INF001_S002_ContractData selectClientStatementDistribution(String clientStatementDistribution); + + @Click(BU_RADIO_BTN) + INF001_S002_ContractData selectBuRadioBtn(); + + @Wait(ACCOUNT_NUMBER_FOR_SETTLEMENT) + @Select(ACCOUNT_NUMBER_FOR_SETTLEMENT) + INF001_S002_ContractData selectAccountNumberForSettlement(String accountNumber); + + @Click(SEND_AND_PRINT_BUTTON) + INF001_S002_ContractData clickSendAndPrintButton(); + + @DismissAlert(waitSecondsForAlert = 3, expectedAlertText = "Klientovi je možné založit InternetBanku pro výpisy. Založte prosím InternetBanku a pak zvolte způsob distribuce výpisů *Elektronicky*.") + TIS046_S001_DocumentsProvidedToClientPage dismissAlert(); + + default void confirmAlertModalWindow(WebEndpoint endpoint) { + endpoint.dismissAlert(80); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF002_OBR002_001_InvestmentFormSigningPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF002_OBR002_001_InvestmentFormSigningPage.java new file mode 100644 index 0000000..fe621ed --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF002_OBR002_001_InvestmentFormSigningPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF002_OBR002_001_InvestmentFormSigningPage.*; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, INF002_OBR002_001_PAGE_LABEL_XPATH}, by = Lookup.XPATH, waitSecondsForElement = 100) +@Wait(value = {SIGNED_BUTTON}, waitSecondsForElement = 100) +public interface INF002_OBR002_001_InvestmentFormSigningPage extends WebFlow { + + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String INF002_OBR002_001_PAGE_LABEL_XPATH = "//div[text()='INF002_OBR002_001']"; + String SIGNED_BUTTON = "OBR001_S001_B003"; + + @Click(SIGNED_BUTTON) + INF002_S002_InvestmentFormEvaluation clickSignedButton(); + + @Click(SIGNED_BUTTON) + TIS046_S001_DocumentsProvidedToClientPage clickSignedButtonToDocumentsProvidedPage(); + + @Click(SIGNED_BUTTON) + BAL001_S008_SummaryStartDocumentsPage clickSignedButtonToSummaryFoundationPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF002_S001_InvestmentForm.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF002_S001_InvestmentForm.java new file mode 100644 index 0000000..d42b142 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF002_S001_InvestmentForm.java @@ -0,0 +1,77 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF002_S001_InvestmentForm.DEPOSIT_ACCOUNT_RADIO_BTN; +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF002_S001_InvestmentForm.INF002_S001_PAGE_LABEL_XPATH; + +@Wait(value = INF002_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(DEPOSIT_ACCOUNT_RADIO_BTN) +public interface INF002_S001_InvestmentForm extends WebFlow { + + String INF002_S001_PAGE_LABEL_XPATH = "//div[text()='INF002_S001']"; + String EDUCATION_COMBOBOX = "INF002_S001_C002"; + String DEPOSIT_ACCOUNT_RADIO_BTN = "INF002_S001_R001_1"; + String PENSION_OR_LIFE_INSURANCE_RADIO_BTN = "INF002_S001_R002_3"; + String MONETARY_OR_BOND_FUNDS_RADIO_BTN = "INF002_S001_R003_4"; + String EQUITY_FUNDS_RADIO_BTN = "INF002_S001_R004_5"; + String INDIVIDUAL_INVESTMENT_PRODUCTS_RADIO_BTN = "INF002_S001_R005_6"; + + String LOWEST_RISK_SAVINGS_ACC_RADIO_BTN = "INF002_S001_R008_3"; + String HIGHEST_RISK_EQUITIES_RADIO_BTN = "INF002_S001_R009_3"; + String SAVINGS_RADIO_BTN = "INF002_S001_R010_2"; + String LESS_THAN_TWO_YEARS_AGO_RADIO_BTN = "INF002_S001_R011_3"; + String MAX_TWICE_PER_YEAR_RADIO_BTN = "INF002_S001_R012_3"; + String RAISE_VALUE_RADIO_BTN = "INF002_S001_R013_3"; + String NO_INFLUENCE_RADIO_BTN = "INF002_S001_R014_1"; + String INVESTMENT_HORIZON_COMBOBOX = "INF002_S001_C001"; + + String SEND_BUTTON = "INF002_S001_B001"; + + @Select(EDUCATION_COMBOBOX) + INF002_S001_InvestmentForm selectEducationCombo(String education); + + @Click(DEPOSIT_ACCOUNT_RADIO_BTN) + INF002_S001_InvestmentForm clickDepositAccountRadioBtn(); + + @Click(PENSION_OR_LIFE_INSURANCE_RADIO_BTN) + INF002_S001_InvestmentForm clickPensionOrLifeInsuranceRadioBtn(); + + @Click(MONETARY_OR_BOND_FUNDS_RADIO_BTN) + INF002_S001_InvestmentForm clickMonetaryOrBondFundsRadioBtn(); + + @Click(EQUITY_FUNDS_RADIO_BTN) + INF002_S001_InvestmentForm clickEquityFundsRadioBtn(); + + @Click(INDIVIDUAL_INVESTMENT_PRODUCTS_RADIO_BTN) + INF002_S001_InvestmentForm clickIndividualInvestmentProductsRadioBtn(); + + @Click(LOWEST_RISK_SAVINGS_ACC_RADIO_BTN) + INF002_S001_InvestmentForm clickLowestRiskSavingsRadioBtn(); + + @Click(HIGHEST_RISK_EQUITIES_RADIO_BTN) + INF002_S001_InvestmentForm clickHighestRiskEquitiesRadioBtn(); + + @Click(SAVINGS_RADIO_BTN) + INF002_S001_InvestmentForm clickSavingsRadioBtn(); + + @Click(LESS_THAN_TWO_YEARS_AGO_RADIO_BTN) + INF002_S001_InvestmentForm clickLessThanTwoYearsAgoRadioBtn(); + + @Click(MAX_TWICE_PER_YEAR_RADIO_BTN) + INF002_S001_InvestmentForm clickMaxTwicePerYearRadioBtn(); + + @Click(RAISE_VALUE_RADIO_BTN) + INF002_S001_InvestmentForm clickRaiseValueRadioBtn(); + + @Click(value = NO_INFLUENCE_RADIO_BTN, jsClick = true) + INF002_S001_InvestmentForm clickNoInfluenceRadioBtn(); + + @Select(INVESTMENT_HORIZON_COMBOBOX) + INF002_S001_InvestmentForm selectInvestmentHorizonCombo(String investmentHorizon); + + @Click(SEND_BUTTON) + TIS046_S001_DocumentsProvidedToClientPage clickSendButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF002_S002_InvestmentFormEvaluation.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF002_S002_InvestmentFormEvaluation.java new file mode 100644 index 0000000..110b75e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF002_S002_InvestmentFormEvaluation.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF002_S002_InvestmentFormEvaluation.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF002_S002_InvestmentFormEvaluation.INF002_S002_PAGE_LABEL_XPATH; + +@Wait(value = INF002_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 30) +@Wait(value = {CONTINUE_BUTTON}, waitSecondsForElement = 30) +public interface INF002_S002_InvestmentFormEvaluation extends WebFlow { + + String INF002_S002_PAGE_LABEL_XPATH = "//div[text()='INF002_S002']"; + String CONTINUE_BUTTON = "INF002_S002_B002"; + + @Wait(CONTINUE_BUTTON) + @Click(CONTINUE_BUTTON) + INF001_S002_ContractData clickContinueButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF013_OBR002_001_ContractInvestmentFormSigningPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF013_OBR002_001_ContractInvestmentFormSigningPage.java new file mode 100644 index 0000000..872b62a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF013_OBR002_001_ContractInvestmentFormSigningPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF013_OBR002_001_ContractInvestmentFormSigningPage.*; + +@Wait(value = {OBR001_S001_PAGE_LABEL_XPATH, INF013_OBR002_001_PAGE_LABEL_XPATH}, by = Lookup.XPATH, waitSecondsForElement = 100) +@Wait(value = {SIGNED_BUTTON}, waitSecondsForElement = 100) +public interface INF013_OBR002_001_ContractInvestmentFormSigningPage extends WebFlow { + + String OBR001_S001_PAGE_LABEL_XPATH = "//div[text()='OBR001_S001']"; + String INF013_OBR002_001_PAGE_LABEL_XPATH = "//div[text()='INF013_OBR002_001']"; + String SIGNED_BUTTON = "OBR001_S001_B003"; + + @Click(SIGNED_BUTTON) + TIS046_S001_DocumentsProvidedToClientPage clickSignedButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF016_S001_MeetingRecordSigning.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF016_S001_MeetingRecordSigning.java new file mode 100644 index 0000000..5847956 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF016_S001_MeetingRecordSigning.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF016_S001_MeetingRecordSigning.INF016_S001_PAGE_LABEL_XPATH; + +@Wait(value = {INF016_S001_PAGE_LABEL_XPATH}, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface INF016_S001_MeetingRecordSigning extends WebFlow { + + String INF016_S001_PAGE_LABEL_XPATH = "//div[text()='INF016_S001']"; + String CONTINUE_BUTTON = "INF016_S001_B002"; + + @Click(CONTINUE_BUTTON) + INF016_S002_RecordOfClientMeeting clickContinueButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF016_S002_RecordOfClientMeeting.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF016_S002_RecordOfClientMeeting.java new file mode 100644 index 0000000..2972cff --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/mutual/funds/INF016_S002_RecordOfClientMeeting.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.mutual.funds.INF016_S002_RecordOfClientMeeting.INF016_S002_PAGE_LABEL_XPATH; + +@Wait(value = {INF016_S002_PAGE_LABEL_XPATH}, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface INF016_S002_RecordOfClientMeeting extends WebFlow { + + String INF016_S002_PAGE_LABEL_XPATH = "//div[text()='INF016_S002']"; + String CONTINUE_BUTTON = "INF016_S002_B002"; + + @Click(CONTINUE_BUTTON) + INF013_OBR002_001_ContractInvestmentFormSigningPage clickContinueButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL015_S001_PackageDetail.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL015_S001_PackageDetail.java new file mode 100644 index 0000000..6ebfd58 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL015_S001_PackageDetail.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.one.click; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL015_S001_PackageDetail.END_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = END_BUTTON, waitSecondsForElement = 120) +public interface BAL015_S001_PackageDetail extends WebFlow { + + String END_BUTTON = "BAL015_S001_B001"; + String PACKAGE_FOUNDATION_BUTTON = "BAL015_S001_B003"; + + @Click(END_BUTTON) + HKO101_S001_MainClientPage clickEndButtonToMainPage(); + + @Click(END_BUTTON) + BAL006_S002_ClientRequestPage clickEndButtonToListOfRequestsPage(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE) + @Click(PACKAGE_FOUNDATION_BUTTON) + CAS001_S001_ScoringPage clickPackageFoundationButtonAndSendToApproval(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL020_OBR002_PrintGeneralContractPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL020_OBR002_PrintGeneralContractPage.java new file mode 100644 index 0000000..ffb584c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL020_OBR002_PrintGeneralContractPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.one.click; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS027_OBR001_PreContractualInformationPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL021_S002_SummaryOfProductFoundationPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL020_OBR002_PrintGeneralContractPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +public interface BAL020_OBR002_PrintGeneralContractPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[text()='BAL020_OBR002_001']"; + String CONTINUE_BUTTON = "OBR001_S001_B003"; + + @Click(CONTINUE_BUTTON) + BAL021_S002_RecapitulationPage clickSignedGeneralAgreementAndDisposition(); + + @Click(CONTINUE_BUTTON) + BAL021_S002_SummaryOfProductFoundationPage clickSignedGeneralAgreementAndGeneralDisposition(); + + @Click(CONTINUE_BUTTON) + @Wait(explicitWaitSeconds = 5) + TIS027_OBR001_PreContractualInformationPage clickSignedPrecontractualInformation(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL021_S002_RecapitulationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL021_S002_RecapitulationPage.java new file mode 100644 index 0000000..e87d64b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL021_S002_RecapitulationPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.one.click; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL021_S002_RecapitulationPage.OK_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL021_S002_RecapitulationPage.PAGE_ID; + +@Wait(value = {PAGE_ID, OK_BUTTON}, waitSecondsForElement = 200) +public interface BAL021_S002_RecapitulationPage extends WebFlow { + String PAGE_ID = "XXX001_T001_L005"; + String OK_BUTTON = "BAL021_S002_B001"; + + @Click(OK_BUTTON) + HKO101_S001_MainClientPage continueToMainClientPage(); + + @Click(OK_BUTTON) + OBR001_S001_PrintInstructionPage continueToSmeAutomatsScoringPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL023_S001_RecapitulationOfClientDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL023_S001_RecapitulationOfClientDataPage.java new file mode 100644 index 0000000..9262d90 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL023_S001_RecapitulationOfClientDataPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.one.click; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL023_S001_RecapitulationOfClientDataPage.*; + +@Wait(value = BAL023_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface BAL023_S001_RecapitulationOfClientDataPage extends WebFlow { + String BAL023_S001_PAGE_LABEL_XPATH = "//div[text()='BAL023_S001']"; + + String CONTINUE_BUTTON = "BAL023_S001_B004"; + + @Click(CONTINUE_BUTTON) + CAS001_S001_ScoringPage clickContinueToScoringPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL023_S002_RecapitulationOfClientDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL023_S002_RecapitulationOfClientDataPage.java new file mode 100644 index 0000000..087115b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL023_S002_RecapitulationOfClientDataPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.one.click; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS027_OBR001_PreContractualInformationPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL023_S002_RecapitulationOfClientDataPage.CONTINUE_BUTTON; + +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 30) +public interface BAL023_S002_RecapitulationOfClientDataPage extends WebFlow, StoreAccessor { + + String CONTINUE_BUTTON = "BAL023_S002_B003"; + String LOG_BUTTON = "XXX001_T001_P102"; + String LOADER_IMG = "CAS001_S001_P001"; + + @Click(CONTINUE_BUTTON) + TIS027_OBR001_PreContractualInformationPage clickContinue(); + + @CustomAction + default void clickContinueAndWaitUntilLoaded() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> CONTINUE_BUTTON); + endpoint.waitForElementsToLoad(15, Until.VISIBLE, LOADER_IMG); + endpoint.waitForElementsToLoad(150, Until.VISIBLE, LOG_BUTTON); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL024_S001_OneClickPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL024_S001_OneClickPage.java new file mode 100644 index 0000000..6e0937e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL024_S001_OneClickPage.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.one.click; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL024_S001_OneClickPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = BAL024_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface BAL024_S001_OneClickPage extends WebFlow { + String BAL024_S001_PAGE_LABEL_XPATH = "//div[text()='BAL024_S001']"; + + String CONTINUE_BUTTON = "BAL024_S001_B002"; + String PRODUCT_TYPE_SELECT = "BAL024_S001_C001"; + String CARD_TYPE_SELECT = "BAL024_S001_C004"; + String AGREE_BUTTON = "BAL024_S001_B003"; + + @Select(value = PRODUCT_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BAL024_S001_OneClickPage selectProductType(String productType); + + @Select(value = CARD_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BAL024_S001_OneClickPage selectCardType(String productType); + + @Click(AGREE_BUTTON) + BAL024_S001_OneClickPage clickAgree(); + + @Click(CONTINUE_BUTTON) + BAL024_S001_OneClickPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL024_S001_OneClickPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL024_S001_OneClickPageTransitions.java new file mode 100644 index 0000000..6654558 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL024_S001_OneClickPageTransitions.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.one.click; + +import cz.moneta.test.harness.support.web.WebFlow; + +public interface BAL024_S001_OneClickPageTransitions extends WebFlow { + BAL023_S002_RecapitulationOfClientDataPage onRecapitulationOfClientDataPageS002(); + + BAL023_S001_RecapitulationOfClientDataPage onRecapitulationOfClientDataPage(); + + BAL024_S001_OneClickPage onOneClickPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL031_S001_OneClickPageRetailTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL031_S001_OneClickPageRetailTransitions.java new file mode 100644 index 0000000..09d9dcb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL031_S001_OneClickPageRetailTransitions.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.one.click; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface BAL031_S001_OneClickPageRetailTransitions extends WebFlow { + PSP004_S001_PrintPage onPrintPage(); + + CHK001_S001_WaitingForModulationPage onModulationPage(); + + TIS050_S001_SignerSelectionPage onSignerPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL031_S001_OneClickRetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL031_S001_OneClickRetailPage.java new file mode 100644 index 0000000..29215ff --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL031_S001_OneClickRetailPage.java @@ -0,0 +1,73 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.one.click; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL031_S001_OneClickRetailPage.PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface BAL031_S001_OneClickRetailPage extends WebFlow { + String PAGE_LABEL_XPATH = "//div[text()='BAL031_S001']"; + + String CONTINUE_BUTTON = "BAL031_S001_B003"; + String PRODUCT_TYPE_SELECT = "BAL031_S001_C001"; + String CARD_TYPE_SELECT = "BAL031_S001_C007"; + String CARD_PLASTIC_RADIO = "BAL031_S001_R009_1"; + String CARD_DESIGN_SELECT = "BAL031_S001_C005"; + String PRODUCT_MEDIATED_BY_ADVISOR_NO_RADIO = "BAL031_S001_R001_0"; + String DISPOSITION_RIGHTS_YES_RADIO = "BAL031_S001_R005_1"; + String DISPOSITION_RIGHTS_SA_YES_RADIO = "BAL031_S001_R006_1"; + String SA_STATEMENTS_END_OF_MONTH_NO_RADIO = "BAL031_S001_R004_0"; + String SA_NAME_INPUT = "BAL031_S001_E013"; + String DISPONENTS_ONLY_OWNER_RADIO = "BAL031_S001_R003_0"; + String DISPOSITION_RIGHTS_NO_RADIO = "BAL031_S001_R005_0"; + String NO_INTERNET_BANK_CHECKBOX = "BAL031_S001_H005_1"; + String DISTRIBUTION_FOR_ACCOUNT_SELECT = "BAL031_S001_C002"; + String DISTRIBUTION_FOR_SAVING_ACCOUNT_SELECT = "BAL031_S001_C004"; + + @Select(value = PRODUCT_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BAL031_S001_OneClickRetailPage selectProductType(String productType); + + @Select(value = CARD_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BAL031_S001_OneClickRetailPage selectCardType(String productType); + + @Click(value = CARD_PLASTIC_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BAL031_S001_OneClickRetailPage clickPlasticCard(); + + @Wait(value = CARD_DESIGN_SELECT, until = Until.CLICKABLE, waitSecondsForElement = 60) + @Select(value = CARD_DESIGN_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BAL031_S001_OneClickRetailPage selectCardDesign(String cardDesign); + + @Click(CONTINUE_BUTTON) + BAL031_S001_OneClickPageRetailTransitions clickContinue(); + + @Click(value = PRODUCT_MEDIATED_BY_ADVISOR_NO_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + BAL031_S001_OneClickRetailPage clickNoProductMediatedByAdvisor(); + + @Click(value = DISPOSITION_RIGHTS_NO_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + BAL031_S001_OneClickRetailPage clickNoDispositionRights(); + + @Click(value = DISPOSITION_RIGHTS_YES_RADIO, jsClick = true) + BAL031_S001_OneClickRetailPage clickYesDispositionRights(); + + @Click(value = DISPONENTS_ONLY_OWNER_RADIO, jsClick = true) + BAL031_S001_OneClickRetailPage clickYesDisponentsOnlyOwner(); + + @Click(value = DISPOSITION_RIGHTS_SA_YES_RADIO, jsClick = true) + BAL031_S001_OneClickRetailPage clickYesDispositionRightsForSA(); + + @Click(value = SA_STATEMENTS_END_OF_MONTH_NO_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + BAL031_S001_OneClickRetailPage clickNoSaStatementsEndOfMonth(); + + @TypeInto(value = SA_NAME_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + BAL031_S001_OneClickRetailPage typeSaName(String saName); + + @Click(value = NO_INTERNET_BANK_CHECKBOX, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BAL031_S001_OneClickRetailPage clickNoIB(); + + @Select(value = DISTRIBUTION_FOR_ACCOUNT_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BAL031_S001_OneClickRetailPage selectDistributionAccount(String distribution); + + @Select(value = DISTRIBUTION_FOR_SAVING_ACCOUNT_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + BAL031_S001_OneClickRetailPage selectDistributionForSavingAccount(String distribution); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL032_S001_OneClickTomJuniorPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL032_S001_OneClickTomJuniorPage.java new file mode 100644 index 0000000..1ecf8f6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/one/click/BAL032_S001_OneClickTomJuniorPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.one.click; + +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = BAL032_S001_OneClickTomJuniorPage.BAL032_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface BAL032_S001_OneClickTomJuniorPage extends WebFlow { + String BAL032_S001_PAGE_LABEL_XPATH = "//div[text()='BAL032_S001']"; + String ACCOUNT_NAME_INPUT = "BAL032_S001_E002"; + String LIMIT_INPUT = "BAL032_S001_E014"; + String CARD_DESIGN_SELECT = "BAL032_S001_C006"; + String CREATE_PRODUCTS_BUTTON = "BAL032_S001_B006"; + + @TypeInto(ACCOUNT_NAME_INPUT) + BAL032_S001_OneClickTomJuniorPage fillAccountName(String AccountName); + + @Select(value = CARD_DESIGN_SELECT, selectByOrder = true) + BAL032_S001_OneClickTomJuniorPage selectCardDesignByIndex(int index); + + @TypeInto(LIMIT_INPUT) + BAL032_S001_OneClickTomJuniorPage fillLimit(int limit); + + @Click(CREATE_PRODUCTS_BUTTON) + PSP004_S001_PrintPage clickCreateProducts(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/saving/accounts/SPU001_S001_SavingAccountPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/saving/accounts/SPU001_S001_SavingAccountPage.java new file mode 100644 index 0000000..ad05d58 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/saving/accounts/SPU001_S001_SavingAccountPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.saving.accounts; + +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.DUP009_S001_CreateElectronicDistributionChannel; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.banka.pages.products.saving.accounts.SPU001_S001_SavingAccountPage.*; + +@Wait(value = SPU001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface SPU001_S001_SavingAccountPage extends WebFlow { + String SPU001_S001_PAGE_LABEL_XPATH = "//div[text()='SPU001_S001']"; + + String PRODUCT_SELECT = "SPU001_S001_C001"; + String CURRENT_ACCOUNT_SELECT = "SPU001_S001_C002"; + String FIRST_ACCOUNT_NUMBER_XPATH_SELECT = "//*[@id='SPU001_S001_C002']/option[2]"; + String STATEMENT_DISTRIBUTION_SELECT = "SPU001_S001_C005"; + String STATEMENT_PERIODICITY = "SPU001_S001_C006"; + String SEND_BUTTON = "SPU001_S001_B001"; + + @Select(value = PRODUCT_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + SPU001_S001_SavingAccountPage selectProduct(String product); + + @Click(value = FIRST_ACCOUNT_NUMBER_XPATH_SELECT, by = Lookup.XPATH) + SPU001_S001_SavingAccountPage selectFirstAccountNumber(); + + @Select(value = STATEMENT_DISTRIBUTION_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + SPU001_S001_SavingAccountPage selectDistribution(String distribution); + + @Select(value = STATEMENT_PERIODICITY, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + SPU001_S001_SavingAccountPage selectPeriodicity(String periodicity); + + @Click(SEND_BUTTON) + SPU001_S001_SavingAccountPageTransitions clickSend(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/saving/accounts/SPU001_S001_SavingAccountPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/saving/accounts/SPU001_S001_SavingAccountPageTransitions.java new file mode 100644 index 0000000..6d0296c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/saving/accounts/SPU001_S001_SavingAccountPageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.saving.accounts; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.DUP009_S001_CreateElectronicDistributionChannel; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface SPU001_S001_SavingAccountPageTransitions extends WebFlow { + + BPP001_S001_DocumentationSendPage onDocumentationSendPage(); + + DUP009_S001_CreateElectronicDistributionChannel onCreateElectronicDistributionChannel(); + + PVX002_S002_AccountDispositionOwnerPage onAccountDispositionOwnerPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/BPP003_S001_SendingDocumentsToIBSB.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/BPP003_S001_SendingDocumentsToIBSB.java new file mode 100644 index 0000000..2331ea1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/BPP003_S001_SendingDocumentsToIBSB.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.BPP003_S001_SendingDocumentsToIBSB.LABEL_PAGE_XPATH; + +@Wait(value = LABEL_PAGE_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface BPP003_S001_SendingDocumentsToIBSB extends WebFlow { + + String LABEL_PAGE_XPATH = "//div[text()='BPP003_S001']"; + String SEND_TO_IB_SB_BUTTON = "BPP003_S001_B002"; + + @Click(SEND_TO_IB_SB_BUTTON) + OBR003_S001_ClientContractSignPage clickSendToIBSB(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/BPP006_S001_CheckSigningPersonsEmailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/BPP006_S001_CheckSigningPersonsEmailPage.java new file mode 100644 index 0000000..b0d3860 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/BPP006_S001_CheckSigningPersonsEmailPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.BPP006_S001_CheckSigningPersonsEmailPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH, until = Until.VISIBLE) +public interface BPP006_S001_CheckSigningPersonsEmailPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='BPP006_S001']"; + String CONTINUE_BUTTON = "BPP006_S001_B004"; + + @Click(CONTINUE_BUTTON) + CHK001_S001_WaitingForModulationPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/CHK001_S001_WaitingForModulationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/CHK001_S001_WaitingForModulationPage.java new file mode 100644 index 0000000..c86b2f6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/CHK001_S001_WaitingForModulationPage.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationPage.*; + +@Wait(value = CHK001_S001_PAGE_LABEL_XPATH, waitSecondsForElement = 180, by = Lookup.XPATH) +public interface CHK001_S001_WaitingForModulationPage extends WebFlow, StoreAccessor { + String CHK001_S001_PAGE_LABEL_XPATH = "//div[text()='CHK001_S001']"; + + @CustomAction() + default CHK001_S001_WaitingForModulationTransitionsPage waitForModulation(int timeout) { + processWait(timeout, 3); + return null; + } + + @CustomAction() + default CHK001_S001_WaitingForModulationTransitionsPage waitForModulation(int timeout, int allowedReturnsFromOBR003) { + processWait(timeout, allowedReturnsFromOBR003); + return null; + } + + private void processWait(int timeout, int allowedReturnsFromOBR003) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + for (int i = 0; i < allowedReturnsFromOBR003; i++) { + endpoint.waitForElementsToLoad(timeout, Lookup.CLASSNAME, Until.GONE, SharedElements.LOAD_IMG_DIV_CLASS); + if (endpoint.isElementVisible(2, OBR003_S001_ClientContractSignPage.CENTER_BUTTON, Lookup.ID)) { + endpoint.click(() -> OBR003_S001_ClientContractSignPage.CENTER_BUTTON); + } else { + break; + } + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/CHK001_S001_WaitingForModulationTransitionsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/CHK001_S001_WaitingForModulationTransitionsPage.java new file mode 100644 index 0000000..0005a93 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/CHK001_S001_WaitingForModulationTransitionsPage.java @@ -0,0 +1,51 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.MBC010_S001_MbcSummaryPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL021_S002_SummaryOfProductFoundationPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL035_S002_SummaryOfProductFoundationRetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.VDB001_S001_SecondBankerJoiningPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface CHK001_S001_WaitingForModulationTransitionsPage extends WebFlow { + + KUL008_S001_ModulationPage onModulationPage(); + + OBR003_S001_ClientContractSignPage onClientContractSignPage(); + + PSP004_S001_PrintPage onPrintPage(); + + MBC010_S001_MbcSummaryPage onMbcSummaryPage(); + + OBR001_S001_PrintInstructionPage onEmailSentToClientPage(); + + TIS004_S002_SignerSelectionPage onSignerSelectionPage(); + + TIS050_S002_SignerSelectionPage onSignerSelectionPageTIS050(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPageTIS050_S001(); + + SMA009_S001_BankerRepresentationForVerification onBankerRepresentaionForVerification(); + + BPP003_S001_SendingDocumentsToIBSB onSendingDocumentsToIBSB(); + + SMA002_S001_SMEAutomatsApplicationOverview onSMEAutomatsApplicationOverviewPage(); + + BAL021_S002_SummaryOfProductFoundationPage onSummaryOfProductFoundationPage(); + + VDB001_S001_SecondBankerJoiningPage onSecondBankerJoiningPage(); + + BAL035_S002_SummaryOfProductFoundationRetailPage onSummaryOfProductFoundationRetailPage(); + + TIS046_S001_DocumentsProvidedToClientPage onDocumentsProvidedPage(); + + BPP001_S001_DocumentationSendPage onDocumentationPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL001_S001_SelectProductsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL001_S001_SelectProductsPage.java new file mode 100644 index 0000000..7368613 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL001_S001_SelectProductsPage.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL001_S001_SelectProductsPage.KUL001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL001_S001_SelectProductsPage.TABLE_NEW_PRODUCT; + +@Wait(value = KUL001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = TABLE_NEW_PRODUCT, by = Lookup.XPATH) +public interface KUL001_S001_SelectProductsPage extends WebFlow { + String KUL001_S001_PAGE_LABEL_XPATH = "//div[text()='KUL001_S001']"; + + String CONTINUE_BUTTON = "KUL001_S001_B001"; + String ADD_NEW_PRODUCT_BUTTON = "KUL001_S001_B004"; + String PRODUCT_TO_ONBOARD_XPATH = "//td[@class='ufo-Table-BodyCell' and contains(text(),'%s')]"; + + String TABLE_NEW_PRODUCT = "//table[@id='KUL001_S001_G001_UfoTable']//th[text()='Produkt']"; + String PRODUCT_GENERAL_INPUT_XPATH = "//*[text()='%s']"; + String LOADER_XPATH = "//div[@class=\"gwt-PopupPanel\"]"; + + @Click(value = PRODUCT_GENERAL_INPUT_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH, andWait = @Wait(value = LOADER_XPATH, by = Lookup.XPATH, until = Until.GONE)) + @Click(ADD_NEW_PRODUCT_BUTTON) + KUL002_S001_ProductDetailPage selectExpresBusiness(String expresBusiness); + + @Click(value = PRODUCT_GENERAL_INPUT_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH, andWait = @Wait(value = LOADER_XPATH, by = Lookup.XPATH, until = Until.GONE)) + @Click(ADD_NEW_PRODUCT_BUTTON) + KUL003_S001_FlexiBusinessProductDetail selectFlexiBusiness(String flexiBusiness); + + @Click(value = PRODUCT_TO_ONBOARD_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH, andWait = @Wait(value = LOADER_XPATH, by = Lookup.XPATH, until = Until.GONE)) + KUL001_S001_SelectProductsPage selectProductToOnboard(String productToOnboard); + + @Click(ADD_NEW_PRODUCT_BUTTON) + KUL001_S001_SelectProductsPageTransitions clickAddProduct(); + + @Click(CONTINUE_BUTTON) + KUL001_S001_SelectProductsPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL001_S001_SelectProductsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL001_S001_SelectProductsPageTransitions.java new file mode 100644 index 0000000..ce6857f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL001_S001_SelectProductsPageTransitions.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.KUL058_S002_ChangeCardFramePage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL004_S001_EditBusinessInfoPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL077_S001_ClientsBusinessAndPersonalData; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL001_S001_SelectProductsPageTransitions extends WebFlow { + + BPP001_S001_DocumentationSendPage onDocumentationSendPage(); + + KUL004_S001_EditBusinessInfoPage onEditBusinessInfoPage(); + + KUL077_S001_ClientsBusinessAndPersonalData onBusinessInfoPage(); + + KUL058_S001_CommercialCreditCardDetailPage onCommercialCreditCardDetail(); + + KUL058_S002_ChangeCardFramePage onChangeCardFramePage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL002_S001_ProductDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL002_S001_ProductDetailPage.java new file mode 100644 index 0000000..bdb3106 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL002_S001_ProductDetailPage.java @@ -0,0 +1,80 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL002_S001_ProductDetailPage.*; + +@Wait(value = KUL002_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL002_S001_ProductDetailPage extends WebFlow { + String KUL002_S001_PAGE_LABEL_XPATH = "//div[text()='KUL002_S001']"; + + String CONTINUE_BUTTON = "KUL002_S001_B001"; + String CURRENT_ACCOUNT_SELECT = "KUL002_S001_C001"; + String FIRST_CURRENT_ACCOUNT = " //*[@id='KUL002_S001_C001']/option[2]"; + String FINANCING_REASON_SELECT = "KUL002_S001_C004"; + String PAYMENT_DAY_SELECT = "KUL002_S001_C008"; + String REQUIRED_LOAN_AMOUNT_INPUT = "KUL002_S001_E001"; + String NUMBER_OF_PAYMENTS_INPUT = "KUL002_S001_E002"; + String INTEREST_RATE_APPROVED_BY_RECORD_INPUT = "KUL002_S001_E013"; + String RESIDENTIAL_UNITS_COUNT_INPUT = "KUL002_S001_E003"; + String NON_RESIDENTAL_UNITS_COUNT_INPUT = "KUL002_S001_E011"; + String MONHTLY_CONTRIBUTION_TO_FOND_AMOUNT_INPUT = "KUL002_S001_E012"; + String FINANCED_OBJECT_STREET_INPUT = "KUL002_S001_E025"; + String FINANCED_OBJECT_DESCRIPTIVE_NUMBER_INPUT = "KUL002_S001_E026"; + String FINANCED_OBJECT_CITY_INPUT = "KUL002_S001_E028"; + String FINANCED_OBJECT_ZIP_CODE_INPUT = "KUL002_S001_E029"; + String FINANCED_OBJECT_CZECH_COUNTRY_BUTTON = "KUL002_S001_B010"; + String LOAD_FINANCED_ADDRESS_FROM_CIF = "KUL002_S001_B008"; + + @TypeInto(REQUIRED_LOAN_AMOUNT_INPUT) + KUL002_S001_ProductDetailPage fillRequiredLoanAmount(String requiredLoanAmount); + + @TypeInto(value = NUMBER_OF_PAYMENTS_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL002_S001_ProductDetailPage fillNumberOfPayments(String numberOfPayments); + + @Select(value = PAYMENT_DAY_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL002_S001_ProductDetailPage selectPaymentDay(String paymentDay); + + @Click(CURRENT_ACCOUNT_SELECT) + @Click(value = FIRST_CURRENT_ACCOUNT, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL002_S001_ProductDetailPage selectFirstCurrentAccount(); + + @Select(value = FINANCING_REASON_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL002_S001_ProductDetailPage selectFinancingReason(String financingReason); + + @TypeInto(INTEREST_RATE_APPROVED_BY_RECORD_INPUT) + KUL002_S001_ProductDetailPage fillInterestRateApprovedByRecord(String interestRateApprovedByRecord); + + @TypeInto(RESIDENTIAL_UNITS_COUNT_INPUT) + KUL002_S001_ProductDetailPage fillResidentalUnitsCount(String residentalUnitsCount); + + @TypeInto(NON_RESIDENTAL_UNITS_COUNT_INPUT) + KUL002_S001_ProductDetailPage fillNonResidentalUnitsCount(String nonResidentalUnitsCount); + + @TypeInto(MONHTLY_CONTRIBUTION_TO_FOND_AMOUNT_INPUT) + KUL002_S001_ProductDetailPage fillMonthlyContributionToFondAmount(String monthlyContributionToFondAmount); + + @TypeInto(FINANCED_OBJECT_STREET_INPUT) + KUL002_S001_ProductDetailPage fillFinancedObjectStreet(String financedObjectStreet); + + @TypeInto(FINANCED_OBJECT_DESCRIPTIVE_NUMBER_INPUT) + KUL002_S001_ProductDetailPage fillFinancedObjectDescriptiveNumber(String financedObjectDescriptiveNumber); + + @TypeInto(FINANCED_OBJECT_CITY_INPUT) + KUL002_S001_ProductDetailPage fillFinancedObjectCity(String financedObjectCity); + + @TypeInto(FINANCED_OBJECT_ZIP_CODE_INPUT) + KUL002_S001_ProductDetailPage fillFinancedObjectZipCode(String financedObjectZipCode); + + @Click(value = FINANCED_OBJECT_CZECH_COUNTRY_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL002_S001_ProductDetailPage clickFinancedObjectCzechCountry(); + + @Click(value = LOAD_FINANCED_ADDRESS_FROM_CIF, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL002_S001_ProductDetailPage clickLoadFinancedAddressFromCif(); + + @Click(CONTINUE_BUTTON) + KUL001_S001_SelectProductsPage clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL003_S001_FlexiBusinessProductDetail.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL003_S001_FlexiBusinessProductDetail.java new file mode 100644 index 0000000..f59effa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL003_S001_FlexiBusinessProductDetail.java @@ -0,0 +1,78 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL003_S001_FlexiBusinessProductDetail.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL003_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL003_S001_FlexiBusinessProductDetail extends WebFlow { + String KUL003_S001_PAGE_LABEL_XPATH = "//div[text()='KUL003_S001']"; + + String CONTINUE_BUTTON = "KUL003_S001_B001"; + String LOAD_TURNOVERS_BUTTON = "KUL003_S001_B004"; + + String CURRENT_ACCOUNT_SELECT = "KUL003_S001_C001"; + String FIRST_CURRENT_ACCOUNT = " //*[@id='KUL003_S001_C001']/option[2]"; + String OTHER_BANK_STATEMENTS_SELECT = "KUL003_S001_C002"; + String NEAREST_MONTH_XPATH_SELECT = "//*[@id=\"KUL003_S001_C003\"]/option[3]"; + + String REQUIRED_LOAN_AMOUNT_INPUT = "KUL003_S001_E001"; + String NUMBER_OF_ASSOCIATION_MEMBERS_INPUT = "KUL003_S001_E007"; + String YEAR_INPUT = "KUL003_S001_E025"; + String ACCOUNT_NUMBER_INPUT = "KUL003_S001_E026"; + String BANK_CODE_INPUT = "KUL003_S001_E027"; + String FIRST_TURNOVER_INPUT = "KUL003_S001_E028"; + String SECOND_TURNOVER_INPUT = "KUL003_S001_E029"; + String THIRD_TURNOVER_INPUT = "KUL003_S001_E030"; + + String NO_FOP_ASSOCIATION_RADIO = "KUL003_S001_R002_0"; + String YES_FOP_ASSOCIATION_RADIO = "KUL003_S001_R002_1"; + + @TypeInto(value = REQUIRED_LOAN_AMOUNT_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL003_S001_FlexiBusinessProductDetail fillRequiredLoanAmount(String requiredLoanAmount); + + @Click(value = NO_FOP_ASSOCIATION_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL003_S001_FlexiBusinessProductDetail clickNoFopAssociation(); + + @Click(value = YES_FOP_ASSOCIATION_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL003_S001_FlexiBusinessProductDetail clickYesFopAssociation(); + + @TypeInto(NUMBER_OF_ASSOCIATION_MEMBERS_INPUT) + KUL003_S001_FlexiBusinessProductDetail fillNumberOfAssociationMembers(String numberOfAssociationMembers); + + @Click(value = CURRENT_ACCOUNT_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + @Click(value = FIRST_CURRENT_ACCOUNT, by = Lookup.XPATH) + KUL003_S001_FlexiBusinessProductDetail selectFirstCurrentAccount(); + + @Select(value = OTHER_BANK_STATEMENTS_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL003_S001_FlexiBusinessProductDetail selectOtherBankStatements(String otherBankStatements); + + @Click(value = NEAREST_MONTH_XPATH_SELECT, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL003_S001_FlexiBusinessProductDetail selectMonth(); + + @TypeInto(YEAR_INPUT) + KUL003_S001_FlexiBusinessProductDetail fillTurnoverYear(); + + @TypeInto(FIRST_TURNOVER_INPUT) + KUL003_S001_FlexiBusinessProductDetail fillFirstTurnover(String firstTurnover); + + @TypeInto(SECOND_TURNOVER_INPUT) + KUL003_S001_FlexiBusinessProductDetail fillSecondTurnover(String secondTurnover); + + @TypeInto(THIRD_TURNOVER_INPUT) + KUL003_S001_FlexiBusinessProductDetail fillThirdTurnover(String thirdTurnover); + + @TypeInto(ACCOUNT_NUMBER_INPUT) + KUL003_S001_FlexiBusinessProductDetail fillAccountNumber(String accountNumber); + + @TypeInto(BANK_CODE_INPUT) + KUL003_S001_FlexiBusinessProductDetail fillBankCode(String bankCode); + + @Click(value = LOAD_TURNOVERS_BUTTON, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL003_S001_FlexiBusinessProductDetail clickLoadTurnovers(); + + @Click(value = CONTINUE_BUTTON, jsClick = true) + KUL003_S001_FlexiBusinessProductDetailTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL003_S001_FlexiBusinessProductDetailTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL003_S001_FlexiBusinessProductDetailTransitions.java new file mode 100644 index 0000000..3f304eb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL003_S001_FlexiBusinessProductDetailTransitions.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL004_S001_EditBusinessInfoPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL003_S001_FlexiBusinessProductDetailTransitions extends WebFlow { + + KUL001_S001_SelectProductsPage onSelectProductsPage(); + + KUL004_S001_EditBusinessInfoPage onEditBusinessInfoPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL004_S004_AddressesAndContactsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL004_S004_AddressesAndContactsPage.java new file mode 100644 index 0000000..da62b01 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL004_S004_AddressesAndContactsPage.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.main.components.CIF003_S002_EditPoFopPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL004_S004_AddressesAndContactsPage.*; + +@Wait(value = KUL004_S004_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL004_S004_AddressesAndContactsPage extends WebFlow { + String KUL004_S004_PAGE_LABEL_XPATH = "//div[text()='KUL004_S004']"; + + String CONTINUE_BUTTON = "KUL004_S004_B001"; + String EDIT_CLIENT_BUTTON = "KUL004_S004_B004"; + + String PERMANENT_RESIDENCY_RADIO = "KUL004_S004_R001_2"; + String COMPANY_HEADQUARTER_RADIO = "KUL004_S004_R002_1"; + String PERMANENT_RESIDENCY_FOP_RADIO = "KUL004_S004_R003_1"; + + @Click(EDIT_CLIENT_BUTTON) + CIF003_S002_EditPoFopPage clickEditToEditPoFopPage(); + + @Click(PERMANENT_RESIDENCY_RADIO) + KUL004_S004_AddressesAndContactsPage clickPermanentResidencyRadio(); + + @Click(COMPANY_HEADQUARTER_RADIO) + KUL004_S004_AddressesAndContactsPage clickCompanyHeadquarterRadio(); + + @Click(CONTINUE_BUTTON) + KUL004_S004_AddressesAndContactsPageTransitions clickContinue(); + + @Click(PERMANENT_RESIDENCY_FOP_RADIO) + KUL004_S004_AddressesAndContactsPage clickPermanentResidencyFopRadio(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL004_S004_AddressesAndContactsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL004_S004_AddressesAndContactsPageTransitions.java new file mode 100644 index 0000000..1c3f28b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL004_S004_AddressesAndContactsPageTransitions.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL004_S004_AddressesAndContactsPageTransitions extends WebFlow { + + KUL012_S001_RequestedDocumentsPage onRequestedDocumentsPage(); + + KUL006_S001_ListOfPersonsOnRequestPage onListOfPersonsOnRequestPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL004_S008_ClientRequestDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL004_S008_ClientRequestDetailPage.java new file mode 100644 index 0000000..e6ae862 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL004_S008_ClientRequestDetailPage.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL004_S008_ClientRequestDetailPage.*; + +@Wait(value = KUL004_S008_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL004_S008_ClientRequestDetailPage extends WebFlow { + String KUL004_S008_PAGE_LABEL_XPATH = "//div[text()='KUL004_S008']"; + + String CONTINUE_BUTTON = "KUL004_S008_B001"; + + String FAMILY_COMPANY_SELECT = "KUL004_S008_C013"; + + String DEPOSIT_INPUT = "KUL004_S008_E017"; + String OWN_PROFIT_INPUT = "KUL004_S008_E036"; + + String COMPANION_CHECK = "KUL004_S008_H002_SPL"; + String CONTACT_PERSON_CHECK = "KUL004_S008_H003_CONTACT PERSON"; + String SIGNER_CHECK = "KUL004_S008_H003_SIGN"; + + String FOP_ASSOCIATION_MEMBER_RADIO = "KUL004_S008_R003_CSFOP"; + String MARITAL_STATUS_SELECT = "KUL004_S008_C011"; + + @Select(FAMILY_COMPANY_SELECT) + KUL004_S008_ClientRequestDetailPage selectFamilyCompany(String familyCompany); + + @Click(CONTINUE_BUTTON) + KUL004_S004_AddressesAndContactsPage clickContinue(); + + @Click(COMPANION_CHECK) + KUL004_S008_ClientRequestDetailPage checkCompanion(); + + @Click(CONTACT_PERSON_CHECK) + KUL004_S008_ClientRequestDetailPage checkContactPerson(); + + @Click(SIGNER_CHECK) + KUL004_S008_ClientRequestDetailPage checkSigner(); + + @TypeInto(value = DEPOSIT_INPUT, andWait = @Wait(explicitWaitSeconds = 2)) + KUL004_S008_ClientRequestDetailPage fillDeposit(String deposit); + + @TypeInto(OWN_PROFIT_INPUT) + KUL004_S008_ClientRequestDetailPage fillOwnProfit(String ownProfit); + + @Click(FOP_ASSOCIATION_MEMBER_RADIO) + KUL004_S008_ClientRequestDetailPage clickFopAssociationMemberRadio(); + + @Select(MARITAL_STATUS_SELECT) + KUL004_S008_ClientRequestDetailPage selectMaritalStatus(String maritalStatus); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL006_S001_ListOfPersonsOnRequestPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL006_S001_ListOfPersonsOnRequestPage.java new file mode 100644 index 0000000..dd07a98 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL006_S001_ListOfPersonsOnRequestPage.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.ZAS003_S001_ChooseLegalRepresentativePage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL006_S001_ListOfPersonsOnRequestPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL006_S001_ListOfPersonsOnRequestPage.KUL006_S001_PAGE_LABEL_XPATH; + +@Wait(value = KUL006_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL006_S001_ListOfPersonsOnRequestPage extends WebFlow { + String KUL006_S001_PAGE_LABEL_XPATH = "//div[text()='KUL006_S001']"; + + String CONTINUE_BUTTON = "KUL006_S001_B004"; + String ADD_PERSON_BUTTON = "KUL006_S001_B003"; + String ADD_STATUTORY_AUTHORITY_BUTTON = "KUL006_S001_B010"; + String ADD_HUSBAND_WIFE_BUTTON = "KUL006_S001_B012"; + String PERSON_TO_ADD_RADIO = "KUL006_S001_G001-0"; + + @Click(CONTINUE_BUTTON) + KUL006_S001_ListOfPersonsOnRequestPageTransitions clickContinue(); + + @Click(value = PERSON_TO_ADD_RADIO, jsClick = true) + KUL006_S001_ListOfPersonsOnRequestPage selectPersonToAdd(); + + @Click(ADD_PERSON_BUTTON) + KUL016_S001_FirstDataAboutClientPage addPersonToRequest(); + + @Click(ADD_STATUTORY_AUTHORITY_BUTTON) + ZAS003_S001_ChooseLegalRepresentativePage addStatutoryAuthority(); + + @Click(ADD_HUSBAND_WIFE_BUTTON) + KUL064_S001_AddingEditingPersonPage addHusbandOrWife(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL006_S001_ListOfPersonsOnRequestPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL006_S001_ListOfPersonsOnRequestPageTransitions.java new file mode 100644 index 0000000..e3b4a53 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL006_S001_ListOfPersonsOnRequestPageTransitions.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL077_S001_ClientsBusinessAndPersonalData; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL006_S001_ListOfPersonsOnRequestPageTransitions extends WebFlow { + + KUL007_S001_RequestSummaryPage onRequestSummaryPage(); + + KUL077_S001_ClientsBusinessAndPersonalData onClientsBusinessAndPersonalData(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL007_S001_RequestSummaryPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL007_S001_RequestSummaryPage.java new file mode 100644 index 0000000..e40d5ae --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL007_S001_RequestSummaryPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL007_S001_RequestSummaryPage.*; + +@Wait(value = KUL007_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL007_S001_RequestSummaryPage extends WebFlow { + String KUL007_S001_PAGE_LABEL_XPATH = "//div[text()='KUL007_S001']"; + + String CONTINUE_BUTTON = "KUL007_S001_B004"; + + @Click(CONTINUE_BUTTON) + KUL007_S001_RequestSummaryPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL007_S001_RequestSummaryPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL007_S001_RequestSummaryPageTransitions.java new file mode 100644 index 0000000..1157647 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL007_S001_RequestSummaryPageTransitions.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP012_S001_PrintPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL007_S001_RequestSummaryPageTransitions extends WebFlow { + + KUL071_S001_RequestForSMEPage onRequestForSMEPage(); + + PSP004_S001_PrintPage onPrintPage(); + + HKO101_S001_MainClientPage onMainClientPage(); + + PSP012_S001_PrintPage onPrintPagePSP012(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL008_S001_ModulationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL008_S001_ModulationPage.java new file mode 100644 index 0000000..a547ac8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL008_S001_ModulationPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL008_S001_ModulationPage.KUL008_S001_PAGE_LABEL_XPATH; + +@Wait(value = KUL008_S001_PAGE_LABEL_XPATH, waitSecondsForElement = 120, by = Lookup.XPATH) +public interface KUL008_S001_ModulationPage extends WebFlow { + String KUL008_S001_PAGE_LABEL_XPATH = "//div[text()='KUL008_S001']"; + + String DOCUMENT_SCANNING_BUTTON = "KUL008_S001_B001"; + String COMPLETE_COMMITMENT_INFO_BUTTON = "KUL008_S001_B017"; + + @Wait(value = DOCUMENT_SCANNING_BUTTON, until = Until.VISIBLE, waitSecondsForElement = 60) + @Click(DOCUMENT_SCANNING_BUTTON) + KUL008_S001_ModulationPageTransitions clickDocumentScanning(); + + @Click(COMPLETE_COMMITMENT_INFO_BUTTON) + KUL008_S001_ModulationPageTransitions clickCompleteCommitmentInfoButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL008_S001_ModulationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL008_S001_ModulationPageTransitions.java new file mode 100644 index 0000000..6d8e8fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL008_S001_ModulationPageTransitions.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL008_S001_ModulationPageTransitions extends WebFlow { + DMS001_S001_ScanDocumentsPage onScanDocumentsPage(); + + KUL053_S001_CompleteCommitmentsPage onCompleteCommitmentsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL010_S001_FinancialSignpostPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL010_S001_FinancialSignpostPage.java new file mode 100644 index 0000000..7465297 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL010_S001_FinancialSignpostPage.java @@ -0,0 +1,120 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL010_S001_FinancialSignpostPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL010_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL010_S001_FinancialSignpostPage extends WebFlow { + String KUL010_S001_PAGE_LABEL_XPATH = "//div[text()='KUL010_S001']"; + String DP_LAST_YEAR_CONTINUE_BUTTON = "KUL010_S001_B005"; + String DP_YEAR_BEFORE_LAST_CONTINUE_BUTTON = "KUL010_S001_B006"; + String CONTINUE_BUTTON = "KUL010_S001_B019"; + String YEAR_BEFORE_LAST_INCOME_SELECT = "KUL010_S001_C001"; + String LAST_YEAR_INCOME_SELECT = "KUL010_S001_C002"; + String NUMBER_OF_MAIN_CUSTOMERS_INPUT = "KUL010_S001_E002"; + String BUSINESS_LOAN_OUTSIDE_MMB_INPUT = "KUL010_S001_E003"; + String MONTHLY_PAYMENTS_OUTSIDE_MMB_INPUT = "KUL010_S001_E020"; + String NETTO_INCOME_HOUSEHOLD_INPUT = "KUL010_S001_E004"; + String LAST_YEAR_INPUT = "KUL010_S001_E005"; + String INCOME_FROM_BUSINESS_INPUT = "KUL010_S001_E006"; + String GROSS_INCOME_INPUT = "KUL010_S001_E007"; + String TOTAL_ASSETS_INPUT = "KUL010_S001_E008"; + String PROFIT_INPUT = "KUL010_S001_E009"; + String YEAR_BEFORE_LAST_INPUT = "KUL010_S001_E010"; + String DEBTORS_COUNT_INPUT = "KUL010_S001_E018"; + String AMOUNT_OWED_SUMMARY_INPUT = "KUL010_S001_E001"; + String APPROXIMATE_BALANCES_ON_ALL_BANK_ACCOUNTS_INPUT = "KUL010_S001_E019"; + String OTHER_LIVING_COSTS_INPUT = "KUL010_S001_E015"; + String OTHER_MONTHLY_PAYMENTS_INPUT = "KUL010_S001_E016"; + String NO_PSD2_DATA_RADIO_XPATH = "//*[@id=\"KUL010_S001_R001\"]/tbody/tr/td[2]"; + String MAIN_CUSTOMER_NO_MORE_THAN_HALF_RADIO_XPATH = "//*[@id=\"KUL010_S001_R002\"]/tbody/tr/td[2]/span"; + String MAIN_CONTRACTOR_NO_MORE_THAT_HALF_RADIO_XPATH = "//*[@id=\"KUL010_S001_R003\"]/tbody/tr/td[2]/span"; + String YES_CLIENT_PROPERTY_RADIO_XPATH = "//*[@id=\"KUL010_S001_R004\"]/tbody/tr/td[1]/span"; + String YES_TAX_ADVISOR_RADIO_XPATH = "//*[@id=\"KUL010_S001_R005\"]/tbody/tr/td[1]/span"; + String YES_PSD2_DATA_RADIO = "KUL010_S001_R001_1"; + String YEAR_BEFORE_LAST_DP_XPATH = "//*[@id=\"KUL010_S001_G004_UfoTable\"]/tbody/tr/td[contains(text(),'%s')]"; + String LAST_YEAR_DP_XPATH = "//*[@id=\"KUL010_S001_G001_UfoTable\"]/tbody/tr/td[contains(text(),'%s')]"; + + @Click(value = NO_PSD2_DATA_RADIO_XPATH, by = Lookup.XPATH) + KUL010_S001_FinancialSignpostPage clickNoPsd2Data(); + + @Click(YES_PSD2_DATA_RADIO) + KUL010_S001_FinancialSignpostPage clickYesPsd2Data(); + + @TypeInto(LAST_YEAR_INPUT) + KUL010_S001_FinancialSignpostPage fillLastYear(String lastYear); + + @Select(LAST_YEAR_INCOME_SELECT) + KUL010_S001_FinancialSignpostPage selectLastYearIncome(String lastYearIncome); + + @TypeInto(INCOME_FROM_BUSINESS_INPUT) + KUL010_S001_FinancialSignpostPage fillIncomeFromBusiness(String incomeFromBusiness); + + @TypeInto(GROSS_INCOME_INPUT) + KUL010_S001_FinancialSignpostPage fillGrossIncome(String grossIncome); + + @TypeInto(TOTAL_ASSETS_INPUT) + KUL010_S001_FinancialSignpostPage fillTotalAssets(String totalAssets); + + @TypeInto(PROFIT_INPUT) + KUL010_S001_FinancialSignpostPage fillProfit(String profit); + + @TypeInto(YEAR_BEFORE_LAST_INPUT) + KUL010_S001_FinancialSignpostPage fillYearBeforeLast(String yearBeforeLast); + + @TypeInto(DEBTORS_COUNT_INPUT) + KUL010_S001_FinancialSignpostPage fillDebtorsCount(String debtorsCount); + + @TypeInto(AMOUNT_OWED_SUMMARY_INPUT) + KUL010_S001_FinancialSignpostPage fillAmountOwedSummary(String amountOwedSummary); + + @TypeInto(APPROXIMATE_BALANCES_ON_ALL_BANK_ACCOUNTS_INPUT) + KUL010_S001_FinancialSignpostPage fillApproximateBalancesOnAllBankAccounts(String approximateBalancesOnAllBankAccounts); + + @Select(YEAR_BEFORE_LAST_INCOME_SELECT) + KUL010_S001_FinancialSignpostPage selectYearBeforeLastIncome(String yearBeforeLastIncome); + + @TypeInto(value = NUMBER_OF_MAIN_CUSTOMERS_INPUT, clear = true) + KUL010_S001_FinancialSignpostPage fillNumberOfMainCustomers(String numberOfMainCustomers); + + @Click(value = MAIN_CUSTOMER_NO_MORE_THAN_HALF_RADIO_XPATH, by = Lookup.XPATH) + KUL010_S001_FinancialSignpostPage clickNoMoreThanHalfMainCustomer(); + + @Click(value = MAIN_CONTRACTOR_NO_MORE_THAT_HALF_RADIO_XPATH, by = Lookup.XPATH) + KUL010_S001_FinancialSignpostPage clickNoMoreThanHalfMainContractor(); + + @TypeInto(BUSINESS_LOAN_OUTSIDE_MMB_INPUT) + KUL010_S001_FinancialSignpostPage fillBusinessLoanOutsideMmb(String businessLoanOutsideMmb); + + @TypeInto(MONTHLY_PAYMENTS_OUTSIDE_MMB_INPUT) + KUL010_S001_FinancialSignpostPage fillMonthlyPaymentsOutsideMMB(String monthlyPaymentsOutsideMMB); + + @Click(value = YES_CLIENT_PROPERTY_RADIO_XPATH, by = Lookup.XPATH) + KUL010_S001_FinancialSignpostPage clickYesClientProperty(); + + @Click(value = YES_TAX_ADVISOR_RADIO_XPATH, by = Lookup.XPATH) + KUL010_S001_FinancialSignpostPage clickYesTaxAdvisor(); + + @TypeInto(NETTO_INCOME_HOUSEHOLD_INPUT) + KUL010_S001_FinancialSignpostPage fillNettoIncomeOfHousehold(String nettoIncomeOfHousehold); + + @TypeInto(OTHER_LIVING_COSTS_INPUT) + KUL010_S001_FinancialSignpostPage fillOtherLivingCosts(String otherLivingCosts); + + @TypeInto(OTHER_MONTHLY_PAYMENTS_INPUT) + KUL010_S001_FinancialSignpostPage fillOtherMonthlyPayments(String otherMonthlyPayments); + + @Click(value = LAST_YEAR_DP_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + @Click(value = DP_LAST_YEAR_CONTINUE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 80)) + KUL010_S001_FinancialSignpostPage clickLastYearDp(String lastYear); + + @Click(value = YEAR_BEFORE_LAST_DP_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + @Click(value = DP_YEAR_BEFORE_LAST_CONTINUE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 80)) + KUL010_S001_FinancialSignpostPage clickYearBeforeLastDp(String yearBeforeLast); + + @Click(CONTINUE_BUTTON) + KUL006_S001_ListOfPersonsOnRequestPage continueToListOfPersonsOnRequestPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL012_S001_RequestedDocumentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL012_S001_RequestedDocumentsPage.java new file mode 100644 index 0000000..da42df1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL012_S001_RequestedDocumentsPage.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL012_S001_RequestedDocumentsPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL012_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL012_S001_RequestedDocumentsPage extends WebFlow, StoreAccessor { + String KUL012_S001_PAGE_LABEL_XPATH = "//div[text()='KUL012_S001']"; + + String CONTINUE_BUTTON = "KUL012_S001_B001"; + String ADD_DOCUMENT_BUTTON = "KUL012_S001_B003"; + + String DOCUMENT_CATEGORY_INPUT_XPATH = "//*[@id=\"KUL012_S001_G001_UfoTable\"]//*[text()='%s']"; + String DOCUMENT_INPUT_XPATH = "//*[@id=\"KUL012_S001_G002_UfoTable\"]//*[text()='%s']"; + + String DOCUMENTS_FOP_RADIO = "KUL012_S001_G001-0"; + String DOCUMENT_SELECTION_RADIO = "KUL012_S001_G002-0"; + + @Click(value = DOCUMENT_CATEGORY_INPUT_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL012_S001_RequestedDocumentsPage clickDocumentCategory(String documentCategory); + + @Click(value = DOCUMENT_INPUT_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL012_S001_RequestedDocumentsPage clickSelectDocument(String selectDocument); + + @Click(value = ADD_DOCUMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL012_S001_RequestedDocumentsPage clickAddDocument(); + + @Click(CONTINUE_BUTTON) + KUL012_S001_RequestedDocumentsPageTransitions clickContinue(); + + @Click(value = DOCUMENTS_FOP_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + @Click(value = DOCUMENT_SELECTION_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + @Click(value = ADD_DOCUMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL012_S001_RequestedDocumentsPage selectAndAddDocument(); + + @CustomAction + default KUL012_S001_RequestedDocumentsPage assignDocuments(int documentsCount) { + + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + for (int i = 0; i < documentsCount; ++i) { + if (endpoint.isElementVisible(2, DOCUMENTS_FOP_RADIO, Lookup.ID)) { + selectAndAddDocument(); + } + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL012_S001_RequestedDocumentsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL012_S001_RequestedDocumentsPageTransitions.java new file mode 100644 index 0000000..2c3f3b2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL012_S001_RequestedDocumentsPageTransitions.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN004_S001_ConfirmationOfDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL012_S001_RequestedDocumentsPageTransitions extends WebFlow { + + KUL010_S001_FinancialSignpostPage onFinancialSignpostPage(); + + OPN004_S001_ConfirmationOfDocumentsPage onConfirmationOfDocumentsPage(); + + DMS001_S001_ScanDocumentsPage onScanDocumentsPage(); + + OBR003_S001_ClientContractSignPage onClientContractSignPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL016_S001_FirstDataAboutClientPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL016_S001_FirstDataAboutClientPage.java new file mode 100644 index 0000000..8d27f01 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL016_S001_FirstDataAboutClientPage.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL016_S001_FirstDataAboutClientPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL016_S001_FirstDataAboutClientPage.KUL016_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL016_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL016_S001_FirstDataAboutClientPage extends WebFlow, StoreAccessor { + String KUL016_S001_PAGE_LABEL_XPATH = "//div[text()='KUL016_S001']"; + + String CONTINUE_BUTTON = "KUL016_S001_B001"; + + String BIRTH_NUMBER_INPUT = "KUL016_S001_E001"; + String BIRTH_DATE_INPUT = "KUL016_S001_E003"; + String FIRST_NAME_INPUT = "KUL016_S001_E004"; + String LAST_NAME_INPUT = "KUL016_S001_E005"; + + @TypeInto(FIRST_NAME_INPUT) + KUL016_S001_FirstDataAboutClientPage fillFirstName(String firstName); + + @TypeInto(LAST_NAME_INPUT) + KUL016_S001_FirstDataAboutClientPage fillLastName(String lastName); + + @TypeInto(value = BIRTH_NUMBER_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL016_S001_FirstDataAboutClientPage fillBirthNumber(String birthNumber); + + @CustomAction + default OBR003_S001_ClientContractSignPage dismissAlertIfVisibleAndContinue() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> CONTINUE_BUTTON); + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(1); + endpoint.waitForElementsToLoad(2, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + endpoint.click(() -> CONTINUE_BUTTON); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL018_S001_SmeAutomatesRequests.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL018_S001_SmeAutomatesRequests.java new file mode 100644 index 0000000..808f1af --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL018_S001_SmeAutomatesRequests.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL018_S001_SmeAutomatesRequests.KUL018_S001_PAGE_ID_XPATH; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL018_S001_PAGE_ID_XPATH, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface KUL018_S001_SmeAutomatesRequests extends WebFlow { + String KUL018_S001_PAGE_ID_XPATH = "//div[contains(text(),'KUL018_S001')]"; + String SME_CONFIRMATION_BUTTON = "KUL018_S001_B011"; + String FIRST_APPLICATION_RADIO = "KUL018_S001_G002-0"; + String CONTRACT_PRINT = "KUL018_S001_B013"; + String SIGN_CONTRACT = "KUL018_S001_B015"; + + @Click(SME_CONFIRMATION_BUTTON) + KUL018_S001_SmeAutomatesRequests confirmSME(); + + @Click(value = FIRST_APPLICATION_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL018_S001_SmeAutomatesRequests selectFirstApplication(); + + @Click(CONTRACT_PRINT) + KUL012_S001_RequestedDocumentsPage clickPrintContract(); + + @Click(SIGN_CONTRACT) + OPN008_S001_SignContractPage clickSignContract(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL024_S001_ListOfPersons.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL024_S001_ListOfPersons.java new file mode 100644 index 0000000..bd7b28c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL024_S001_ListOfPersons.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF113_S001_ChangeDataFO; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL024_S001_ListOfPersons.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface KUL024_S001_ListOfPersons extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='KUL024_S001']"; + String FIRST_PERSON_RADIO = "KUL024_S001_G001-0"; + String ESTABLISH_EDIT_CIF_BUTTON = "KUL024_S001_B001"; + String CONTINUE_BUTTON = "KUL024_S001_B002"; + + @Click(value = FIRST_PERSON_RADIO, jsClick = true) + KUL024_S001_ListOfPersons clickFirstPerson(); + + @Click(value = ESTABLISH_EDIT_CIF_BUTTON, jsClick = true) + CIF113_S001_ChangeDataFO clickEstablishEditCif(); + + @Click(CONTINUE_BUTTON) + OBR003_S001_ClientContractSignPage clickContinue(); + +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL030_S001_SignSmeApplicationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL030_S001_SignSmeApplicationPage.java new file mode 100644 index 0000000..87d1dbf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL030_S001_SignSmeApplicationPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = KUL030_S001_SignSmeApplicationPage.KUL030_S001_PAGE_ID_XPATH, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface KUL030_S001_SignSmeApplicationPage extends WebFlow { + String KUL030_S001_PAGE_ID_XPATH = "//div[contains(text(),'KUL030_S001')]"; + String CONTINUE_BUTTON = "KUL030_S001_B001"; + + @Click(CONTINUE_BUTTON) + KUL030_S001_SignSmeApplicationPageTransitions clickContinue(); +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL030_S001_SignSmeApplicationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL030_S001_SignSmeApplicationPageTransitions.java new file mode 100644 index 0000000..27639a6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL030_S001_SignSmeApplicationPageTransitions.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPageTransitions; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL030_S001_SignSmeApplicationPageTransitions extends WebFlow { + CHK001_S001_WaitingForModulationPage onWaitingForModulationPage(); + + OBR001_S001_PrintInstructionPageTransitions onPrintInstructionPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL043_S001_ChangeSelectedParametersPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL043_S001_ChangeSelectedParametersPage.java new file mode 100644 index 0000000..2faa66b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL043_S001_ChangeSelectedParametersPage.java @@ -0,0 +1,110 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import java.util.Random; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL043_S001_ChangeSelectedParametersPage.KUL043_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface KUL043_S001_ChangeSelectedParametersPage extends WebFlow, StoreAccessor { + + String KUL043_S001_PAGE_LABEL_XPATH = "//div[text()='KUL043_S001']"; + String INTEREST_RATE_KEY = "INTEREST_RATE"; + String PAYMENTS_COUNT_KEY = "PAYMENTS_COUNT"; + String LIMITS_CREDIT_KEY = "LIMITS_CREDIT"; + String ANNUITY_PAYMENT_KEY = "ANNUITY_PAYMENT"; + String PAYMENT_TYPE_ANUITY_RADIO = "KUL043_S001_R001_2"; + String PAYMENT_TYPE_LINEAR_RADIO = "KUL043_S001_R001_1"; + String INTEREST_RATE_TYPE_SELECT = "KUL043_S001_C001"; + String MONTHLY_CHARGES_SELECT = "KUL043_S001_C003"; + String INSURANCE_YES_RADIO = "KUL043_S001_R002_1"; + String INSURANCE_NO_RADIO = "KUL043_S001_R002_0"; + String MAXIMAL_INTEREST_RATE_INPUT = "KUL043_S001_E004"; + String MINIMAL_INTEREST_RATE_INPUT = "KUL043_S001_E002"; + String SUGGESTED_SUMMARY_INTEREST_RATE_INPUT = "KUL043_S001_E001"; + String BENEFIT_FROM_CAMPAIGN_SELECT = "KUL043_S001_C002"; + String EARLY_REPAYMENT_CHARGE_SELECT = "KUL043_S001_C006"; + String EARLY_REPAYMENT_CHARGE_FIRST_VALID_OPTION_XPATH = "//select[@id='KUL043_S001_C006']/option[not(text()='(není)')][1]"; + String REPAY_INSURANCE_CHARGE_NO_RADIO = "KUL043_S001_R002_0"; + String RECALCULATE_BUTTON = "KUL043_S001_B001"; + String PAYMENTS_CALCULATOR_BUTTON = "KUL043_S001_B005"; + String PRINT_OFFER_BUTTON = "KUL043_S001_B006"; + String CONTINUE_BUTTON = "KUL043_S001_B003"; + String LOADER_DIV_XPATH = "//div[@class=\"gwt-PopupPanel\"]"; + String LIMITS_CREDIT_XPATH = "//table[@id='KUL043_S001_G002_UfoTable']//td[1]"; + String PAYMENT_COUNT_XPATH = "//table[@id='KUL043_S001_G002_UfoTable']//td[2]"; + String ANNUITY_PAYMENT_XPATH = "//table[@id='KUL043_S001_G002_UfoTable']//td[7]"; + + @StoreElementContent(storeKey = LIMITS_CREDIT_KEY, value = LIMITS_CREDIT_XPATH, by = Lookup.XPATH) + KUL043_S001_ChangeSelectedParametersPage storeLimitsCredit(); + + @StoreElementContent(storeKey = PAYMENTS_COUNT_KEY, value = PAYMENT_COUNT_XPATH, by = Lookup.XPATH) + KUL043_S001_ChangeSelectedParametersPage storePaymentsCount(); + + @StoreElementContent(storeKey = ANNUITY_PAYMENT_KEY, value = ANNUITY_PAYMENT_XPATH, by = Lookup.XPATH) + KUL043_S001_ChangeSelectedParametersPage storeAnnuityPayment(); + + @Click(value = PAYMENT_TYPE_ANUITY_RADIO, jsClick = true) + KUL043_S001_ChangeSelectedParametersPage clickPaymentTypeAnuity(); + + @Click(value = PAYMENT_TYPE_LINEAR_RADIO, jsClick = true) + KUL043_S001_ChangeSelectedParametersPage clickPaymentTypeLinear(); + + @Select(INTEREST_RATE_TYPE_SELECT) + KUL043_S001_ChangeSelectedParametersPage selectInterestRateType(String interestRateType); + + @Select(MONTHLY_CHARGES_SELECT) + KUL043_S001_ChangeSelectedParametersPage selectMonthlyCharges(String monthlyCharges); + + @Click(INSURANCE_YES_RADIO) + KUL043_S001_ChangeSelectedParametersPage clickInsuranceYes(); + + @Click(INSURANCE_NO_RADIO) + KUL043_S001_ChangeSelectedParametersPage clickInsuranceNo(); + + @CustomAction + default KUL043_S001_ChangeSelectedParametersPage fillSuggestedSummaryInterestRate(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + float maxInterestRateF = Float.parseFloat(endpoint.getAttribute(MAXIMAL_INTEREST_RATE_INPUT, Lookup.DEFAULT, "value").replace(',', '.')); + float minInterestRateF = Float.parseFloat(endpoint.getAttribute(MINIMAL_INTEREST_RATE_INPUT, Lookup.DEFAULT, "value").replace(',', '.')); + Random r = new Random(); + float randomInterestRateF = minInterestRateF + r.nextFloat() * (maxInterestRateF - minInterestRateF); + String randomInterestRate = String.format("%.2f", randomInterestRateF).replace('.', ','); + harness.store(INTEREST_RATE_KEY, randomInterestRate); + endpoint.type(() -> SUGGESTED_SUMMARY_INTEREST_RATE_INPUT, randomInterestRate, true); + return null; + } + + @Select(BENEFIT_FROM_CAMPAIGN_SELECT) + KUL043_S001_ChangeSelectedParametersPage selectBenefitFromCampaign(String benefitFromCampaign); + + @Select(EARLY_REPAYMENT_CHARGE_SELECT) + KUL043_S001_ChangeSelectedParametersPage selectEarlyRepaymentCharge(String earlyRepaymentCharge); + + @CustomAction + default KUL043_S001_ChangeSelectedParametersPage selectFirstValidRepaymentCharge() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String firstValidValue = endpoint.getText(EARLY_REPAYMENT_CHARGE_FIRST_VALID_OPTION_XPATH, Lookup.XPATH); + endpoint.selectByVisibleText(EARLY_REPAYMENT_CHARGE_SELECT, firstValidValue); + return null; + } + + @Click(value = REPAY_INSURANCE_CHARGE_NO_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL043_S001_ChangeSelectedParametersPage clickRepayInsuranceChargeNo(); + + @Click(value = RECALCULATE_BUTTON, andWait = @Wait(value = LOADER_DIV_XPATH, by = Lookup.XPATH, until = Until.GONE)) + KUL043_S001_ChangeSelectedParametersPage clickRecalculate(); + + @Click(PAYMENTS_CALCULATOR_BUTTON) + KUL043_S001_ChangeSelectedParametersPage clickPaymentsCalculator(); + + @Click(PRINT_OFFER_BUTTON) + KUL043_S001_ChangeSelectedParametersPage clickPrintOffer(); + + @Click(CONTINUE_BUTTON) + SMA002_S001_SMEAutomatsApplicationOverview clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL043_S002_ChangeSelectedParametersPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL043_S002_ChangeSelectedParametersPage.java new file mode 100644 index 0000000..097bcb9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL043_S002_ChangeSelectedParametersPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = KUL043_S002_ChangeSelectedParametersPage.KUL043_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface KUL043_S002_ChangeSelectedParametersPage extends WebFlow { + + String KUL043_S002_PAGE_LABEL_XPATH = "//div[text()='KUL043_S002']"; + String INTEREST_RATE_CHARGE_SELECT = "KUL043_S002_C001"; + String RECALCULATE_AND_SAVE_BUTTON = "KUL043_S002_B002"; + String CONTINUE_BUTTON = "KUL043_S002_B003"; + + @Select(INTEREST_RATE_CHARGE_SELECT) + KUL043_S002_ChangeSelectedParametersPage selectInterestRateCharge(String interestRateCharge); + + @Click(RECALCULATE_AND_SAVE_BUTTON) + KUL043_S002_ChangeSelectedParametersPage clickRecalculateAndSave(); + + @Click(CONTINUE_BUTTON) + SMA002_S001_SMEAutomatsApplicationOverview clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL051_S001_PreliminaryEvaluationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL051_S001_PreliminaryEvaluationPage.java new file mode 100644 index 0000000..09c60a8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL051_S001_PreliminaryEvaluationPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL051_S001_PreliminaryEvaluationPage.*; + +@Wait(value = KUL051_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface KUL051_S001_PreliminaryEvaluationPage extends WebFlow { + String KUL051_S001_PAGE_LABEL_XPATH = "//div[text()='KUL051_S001']"; + + String CONTINUE_BUTTON = "KUL051_S001_B001"; + + @Click(CONTINUE_BUTTON) + KUL052_S001_ConsolidationCommitmentsPage clickContinueToConsolidationCommitmentsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL052_S001_ConsolidationCommitmentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL052_S001_ConsolidationCommitmentsPage.java new file mode 100644 index 0000000..ba7a88c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL052_S001_ConsolidationCommitmentsPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL052_S001_ConsolidationCommitmentsPage.*; + +@Wait(value = KUL052_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface KUL052_S001_ConsolidationCommitmentsPage extends WebFlow { + String KUL052_S001_PAGE_LABEL_XPATH = "//div[text()='KUL052_S001']"; + + String MANUALLY_ADD_COMMITMENT_BUTTON = "KUL052_S001_B001"; + String CONTINUE_BUTTON = "KUL052_S001_B007"; + + @Click(MANUALLY_ADD_COMMITMENT_BUTTON) + KUL052_S002_ManuallyAddedCommitmentsPage addCommitmentManually(); + + @Click(CONTINUE_BUTTON) + CHK001_S001_WaitingForModulationPage clickContinueToModulationPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL052_S002_ManuallyAddedCommitmentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL052_S002_ManuallyAddedCommitmentsPage.java new file mode 100644 index 0000000..0e74b93 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL052_S002_ManuallyAddedCommitmentsPage.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL052_S002_ManuallyAddedCommitmentsPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL052_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface KUL052_S002_ManuallyAddedCommitmentsPage extends WebFlow { + String KUL052_S002_PAGE_LABEL_XPATH = "//div[text()='KUL052_S002']"; + + String ADD_BUTTON = "KUL052_S002_B001"; + String CONTINUE_BUTTON = "KUL052_S002_B005"; + + String COMPANY_NAME_SELECT = "KUL052_S002_C001"; + String COMMITMENT_TYPE_SELECT = "KUL052_S002_C002"; + + String CURRENT_PRINCIPAL_AMOUNT_INPUT = "KUL052_S002_E002"; + + @Select(value = COMMITMENT_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL052_S002_ManuallyAddedCommitmentsPage selectCommitmentType(String commitmentType); + + @Select(COMPANY_NAME_SELECT) + KUL052_S002_ManuallyAddedCommitmentsPage selectCompany(String company); + + @TypeInto(CURRENT_PRINCIPAL_AMOUNT_INPUT) + KUL052_S002_ManuallyAddedCommitmentsPage fillCurrentPrincipalAmount(String currentPrincipalAmount); + + @Click(value = ADD_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL052_S002_ManuallyAddedCommitmentsPage addCommitment(); + + @Click(CONTINUE_BUTTON) + KUL052_S001_ConsolidationCommitmentsPage clickContinueToPreliminaryEvaluationPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL053_S001_CompleteCommitmentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL053_S001_CompleteCommitmentsPage.java new file mode 100644 index 0000000..19b5339 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL053_S001_CompleteCommitmentsPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL053_S001_CompleteCommitmentsPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL053_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60) +public interface KUL053_S001_CompleteCommitmentsPage extends WebFlow { + String KUL053_S001_PAGE_LABEL_XPATH = "//div[text()='KUL053_S001']"; + + String EDIT_COMMITMENT_BUTTON = "KUL053_S001_B001"; + String CONTINUE_BUTTON = "KUL053_S001_B002"; + + String FIRST_COMMITMENT_RADIO = "KUL053_S001_G001-0"; + + @Click(FIRST_COMMITMENT_RADIO) + KUL053_S001_CompleteCommitmentsPage clickFirstCommitment(); + + @Click(EDIT_COMMITMENT_BUTTON) + KUL053_S002_EditCommitmentPage clickEditCommitment(); + + @Click(CONTINUE_BUTTON) + CHK001_S001_WaitingForModulationPage clickContinueToModulationPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL053_S002_EditCommitmentPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL053_S002_EditCommitmentPage.java new file mode 100644 index 0000000..c11d7ec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL053_S002_EditCommitmentPage.java @@ -0,0 +1,83 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL053_S002_EditCommitmentPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL053_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60) +public interface KUL053_S002_EditCommitmentPage extends WebFlow { + String KUL053_S002_PAGE_LABEL_XPATH = "//div[text()='KUL053_S002']"; + + String SAVE_IN_CONTROL_WINDOW_BUTTON = "KUL053_S002_B001"; + String SAVE_BUTTON = "KUL053_S002_B004"; + + String PAYMENT_PERIOD_SELECT = "KUL053_S002_C003"; + String COMMIT_EXISTING_DOC_SELECT = "KUL053_S002_C005"; + String COMMIT_PAYMENT_DOC_SELECT = "KUL053_S002_C006"; + + String CREDIT_CONTRACT_NUMBER_INPUT = "KUL053_S002_E001"; + String PAYMENT_ACCOUNT_INPUT = "KUL053_S002_E002"; + String BANK_CODE_INPUT = "KUL053_S002_E003"; + String VARIABLE_SYMBOL_INPUT = "KUL053_S002_E005"; + String SPECIFIC_SYMBOL_INPUT = "KUL053_S002_E006"; + String ORIGINAL_LOAN_AMOUNT_INPUT = "KUL053_S002_E007"; + String PAYMENTS_NUMBER_INPUT = "KUL053_S002_E008"; + String INSTALLMENT_AMOUNT_INPUT = "KUL053_S002_E009"; + String ESTABLISH_DATE_INPUT = "KUL053_S002_E010"; + String ANNUAL_INTEREST_RATE_INPUT = "KUL053_S002_E011"; + String FIRST_PAYMENT_DATE_INPUT = "KUL053_S002_E012"; + String CREDIT_CONTRACT_NUMBER_CONTROL_INPUT = "KUL053_S002_E022"; + + @Select(value = COMMIT_EXISTING_DOC_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL053_S002_EditCommitmentPage selectCommitmentExistingDocument(String commitExistingDocument); + + @Select(value = COMMIT_PAYMENT_DOC_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL053_S002_EditCommitmentPage selectCommitmentPaymentDocument(String commitPaymentDocument); + + @TypeInto(BANK_CODE_INPUT) + KUL053_S002_EditCommitmentPage fillBankCode(String bankCode); + + @TypeInto(CREDIT_CONTRACT_NUMBER_INPUT) + KUL053_S002_EditCommitmentPage fillCreditContractNumber(String creditContractNumber); + + @TypeInto(PAYMENT_ACCOUNT_INPUT) + KUL053_S002_EditCommitmentPage fillPaymentAccountNumber(String paymentAccountNumber); + + @TypeInto(ORIGINAL_LOAN_AMOUNT_INPUT) + KUL053_S002_EditCommitmentPage fillOriginalLoanAmount(String originalLoanAmount); + + @TypeInto(PAYMENTS_NUMBER_INPUT) + KUL053_S002_EditCommitmentPage fillPaymentsNumber(String paymentsNumber); + + @TypeInto(INSTALLMENT_AMOUNT_INPUT) + KUL053_S002_EditCommitmentPage fillInstallmentAmount(String installmentAmount); + + @TypeInto(ESTABLISH_DATE_INPUT) + KUL053_S002_EditCommitmentPage fillEstablishDate(String establishDate); + + @Select(PAYMENT_PERIOD_SELECT) + KUL053_S002_EditCommitmentPage selectPaymentPeriod(String paymentPeriod); + + @TypeInto(ANNUAL_INTEREST_RATE_INPUT) + KUL053_S002_EditCommitmentPage fillAnnualInterestRate(String annualInterestRate); + + @TypeInto(FIRST_PAYMENT_DATE_INPUT) + KUL053_S002_EditCommitmentPage fillFirstPaymentDate(String firstPaymentDate); + + @Click(SAVE_BUTTON) + KUL053_S002_EditCommitmentPage clickSaveCommitment(); + + @TypeInto(CREDIT_CONTRACT_NUMBER_CONTROL_INPUT) + KUL053_S002_EditCommitmentPage fillCreditContractNumberInControl(String creditContractNumber); + + @Click(SAVE_IN_CONTROL_WINDOW_BUTTON) + KUL053_S001_CompleteCommitmentsPage clickSave(); + + @TypeInto(VARIABLE_SYMBOL_INPUT) + KUL053_S002_EditCommitmentPage fillVariableSymbol(String variableSymbol); + + @TypeInto(value = SPECIFIC_SYMBOL_INPUT, clear = true) + KUL053_S002_EditCommitmentPage fillSpecificSymbol(String specificSymbol); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL058_S001_CommercialCreditCardDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL058_S001_CommercialCreditCardDetailPage.java new file mode 100644 index 0000000..cb1ffd3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL058_S001_CommercialCreditCardDetailPage.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL058_S001_CommercialCreditCardDetailPage.KUL058_S001_ID_XPATH, waitSecondsForElement = 40, by = Lookup.XPATH) +public interface KUL058_S001_CommercialCreditCardDetailPage extends WebFlow { + String KUL058_S001_ID_XPATH = "//div[contains(text(),'KUL058_S001')]"; + + String ACCOUNT_AT_MMB_SELECT = "KUL058_S001_C001"; + String DISTRIBUTION_SELECT = "KUL058_S001_C007"; + + String AMOUNT_OF_CREDIT_INPUT = "KUL058_S001_E001"; + + String ACCOUNT_AT_MMB_RADIO = "KUL058_S001_R002_3"; + String CONTINUE_BUTTON = "KUL058_S001_X092"; + + @TypeInto(AMOUNT_OF_CREDIT_INPUT) + KUL058_S001_CommercialCreditCardDetailPage fillAmount(String amountOfCreditCard); + + @Select(value = DISTRIBUTION_SELECT) + KUL058_S001_CommercialCreditCardDetailPage selectDistribution(String distributionType); + + @Click(value = ACCOUNT_AT_MMB_RADIO, jsClick = true) + KUL058_S001_CommercialCreditCardDetailPage clickAccountAtMMB(); + + @Select(value = ACCOUNT_AT_MMB_SELECT, selectByOrder = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KUL058_S001_CommercialCreditCardDetailPage selectFirstAccount(int indexOfFirstAccount); + + @Click(CONTINUE_BUTTON) + KUL058_S001_CommercialCreditCardDetailPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL058_S001_CommercialCreditCardDetailPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL058_S001_CommercialCreditCardDetailPageTransitions.java new file mode 100644 index 0000000..f48dc09 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL058_S001_CommercialCreditCardDetailPageTransitions.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.SIF004_S001_ContactSettingsForSendingEmailsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL058_S001_CommercialCreditCardDetailPageTransitions extends WebFlow { + ODS003_S001_AddCodeOfRecommendedPersonPage onAddCodeOfRecommendedPersonPage(); + + SIF004_S001_ContactSettingsForSendingEmailsPage onContactSettingsForSendingEmailsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL064_S001_AddingEditingPersonPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL064_S001_AddingEditingPersonPage.java new file mode 100644 index 0000000..0fb8c43 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL064_S001_AddingEditingPersonPage.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL064_S001_AddingEditingPersonPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KUL006_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(NEXT_BUTTON) +public interface KUL064_S001_AddingEditingPersonPage extends WebFlow { + String KUL006_S001_PAGE_LABEL_XPATH = "//div[text()='KUL064_S001']"; + + String NEXT_BUTTON = "KUL064_S001_B003"; + + String ORIENTATION_NUMBER_INPUT = "KUL064_S001_E002"; + String FIRST_NAME_INPUT = "KUL064_S001_E013"; + String LAST_NAME_INPUT = "KUL064_S001_E015"; + String BIRTH_NUMBER_INPUT = "KUL064_S001_E017"; + + String CZECH_FLAG_RESIDENCY_BUTTON = "KUL064_S001_P001"; + String MAGNIFYING_GLASS_BUTTON = "KUL064_S001_P003"; + String ADDRESS_LOOKUP_TABLE = "XXX001_T001_X007"; + + String CONSENT_PERSONALLY_SIGNED_RADIO = "KUL064_S001_R001_SIGN"; + + String ADDRESS_SEARCH_INPUT = "XXX000_T001_E110"; + String SEARCH_ADDRESS_BUTTON = "XXX000_T001_B100"; + String FIRST_FOUND_ADDRESS_RADIO = "XXX000_T001_G100-0"; + + @TypeInto(FIRST_NAME_INPUT) + KUL064_S001_AddingEditingPersonPage fillFirstName(String firstName); + + @TypeInto(LAST_NAME_INPUT) + KUL064_S001_AddingEditingPersonPage fillLastName(String lastName); + + @TypeInto(value = BIRTH_NUMBER_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL064_S001_AddingEditingPersonPage fillBirthNumber(String birthNumber); + + @Click(CZECH_FLAG_RESIDENCY_BUTTON) + KUL064_S001_AddingEditingPersonPage clickCzechResidency(); + + @Click(value = MAGNIFYING_GLASS_BUTTON, andWait = @Wait(value = ADDRESS_LOOKUP_TABLE, until = Until.VISIBLE)) + KUL064_S001_AddingEditingPersonPage clickAddressLookupMagnifyGlass(); + + @TypeInto(ADDRESS_SEARCH_INPUT) + KUL064_S001_AddingEditingPersonPage fillSearchedAddress(String searchedAddress); + + @Click(value = SEARCH_ADDRESS_BUTTON, andWait = @Wait(value = FIRST_FOUND_ADDRESS_RADIO, until = Until.VISIBLE, waitSecondsForElement = 60)) + @Click(value = FIRST_FOUND_ADDRESS_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + KUL064_S001_AddingEditingPersonPage searchAddressAndSelectFirst(); + + @Click(CONSENT_PERSONALLY_SIGNED_RADIO) + KUL064_S001_AddingEditingPersonPage clickConsentPersonallySigned(); + + @Click(NEXT_BUTTON) + KUL006_S001_ListOfPersonsOnRequestPage clickNextToListOfPersonsOnRequestPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL066_S001_ProcessedRequestsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL066_S001_ProcessedRequestsPage.java new file mode 100644 index 0000000..ccf4670 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL066_S001_ProcessedRequestsPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL066_S001_ProcessedRequestsPage.*; + +@Wait(value = KUL066_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(CONTINUE_BUTTON) +public interface KUL066_S001_ProcessedRequestsPage extends WebFlow { + String KUL066_S001_PAGE_LABEL_XPATH = "//div[text()='KUL066_S001']"; + + String CONTINUE_BUTTON = "KUL066_S001_B002"; + + @Click(CONTINUE_BUTTON) + KUL066_S001_ProcessedRequestsPageTransitions clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL066_S001_ProcessedRequestsPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL066_S001_ProcessedRequestsPageTransitions.java new file mode 100644 index 0000000..9397511 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL066_S001_ProcessedRequestsPageTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.KUL058_S002_ChangeCardFramePage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL066_S001_ProcessedRequestsPageTransitions extends WebFlow { + + KUL001_S001_SelectProductsPage onSelectProductsPage(); + + KUL058_S002_ChangeCardFramePage onChangeCardFramePage(); + + KUL003_S001_FlexiBusinessProductDetail onFlexiBusinessProductDetail(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL071_S001_RequestForSMEPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL071_S001_RequestForSMEPage.java new file mode 100644 index 0000000..e8342d8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL071_S001_RequestForSMEPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL071_S001_RequestForSMEPage.KUL071_S001_PAGE_LABEL_XPATH; + +@Wait(value = KUL071_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface KUL071_S001_RequestForSMEPage extends WebFlow { + String KUL071_S001_PAGE_LABEL_XPATH = "//div[text()='KUL071_S001']"; + + String YES_BUTTON = "KUL071_S001_B001"; + String PRINT_REQUEST_BUTTON = "KUL071_S001_B002"; + String RETURN_TO_HKO_BUTTON = "KUL071_S001_B005"; + + @Click(PRINT_REQUEST_BUTTON) + KUL071_S001_RequestForSMEPageTransitions clickPrintRequest(); + + @Click(YES_BUTTON) + KUL071_S001_RequestForSMEPageTransitions clickYes(); + + @Click(RETURN_TO_HKO_BUTTON) + HKO101_S001_MainClientPage clickReturnToHKO(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL071_S001_RequestForSMEPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL071_S001_RequestForSMEPageTransitions.java new file mode 100644 index 0000000..2e5512c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/KUL071_S001_RequestForSMEPageTransitions.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP012_S001_PrintPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface KUL071_S001_RequestForSMEPageTransitions extends WebFlow { + PSP004_S001_PrintPage onPrintPagePSP004(); + + PSP012_S001_PrintPage onPrintPagePSP012(); + + CHK001_S001_WaitingForModulationPage onWaitingForModulationPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA002_S001_SMEAutomatsApplicationOverview.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA002_S001_SMEAutomatsApplicationOverview.java new file mode 100644 index 0000000..9bd82ba --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA002_S001_SMEAutomatsApplicationOverview.java @@ -0,0 +1,153 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.SMA002_S001_SMEAutomatsApplicationOverview.SMA002_S001_PAGE_LABEL_XPATH; + +@Wait(value = SMA002_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface SMA002_S001_SMEAutomatsApplicationOverview extends WebFlow, StoreAccessor { + + String SMA002_S001_PAGE_LABEL_XPATH = "//div[text()='SMA002_S001']"; + String ACCOUNT_NUMBER_KEY = "ACCOUNT_NUMBER"; + + String LOADER_DIV = "SMA002_S001_X080"; + String BACK_TO_APPLICATIONS_LIST_BUTTON = "SMA002_S001_B006"; + String LOADER_AFTER_MODULATION_DIV = "SMA002_S001_X013"; + String PERSON_DETAIL_BUTTON = "SMA002_S001_B019"; + String WIFE_HUSBAND_AGREEMENT_BUTTON = "SMA002_S001_B020"; + String DOCUMENTS_PERSONS_TO_SIGN_BUTTON = "SMA002_S001_B009"; + String APPLICATION_RADIO = "//td[text()=\"%s\"]/..//input"; + String EXCEPTION_BUTTON = "SMA002_S001_B003"; + String EXPRESMAN_DECISION_BUTTON = "SMA002_S001_B001"; + String FILL_DOCUMENTS_BUTTON = "SMA002_S001_B004"; + String REQUIRED_PRODUCT_BUTTON = "SMA002_S001_B002"; + String PARAMETERS_VARIANTS_BUTTON = "SMA002_S001_B007"; + String PRINT_OFFER_BUTTON = "SMA002_S001_B016"; + String PRINT_SIGN_DEAL_BUTTON = "SMA002_S001_B017"; + String STORNO_SELECTED_APPLICATION_BUTTON = "SMA002_S001_B024"; + String APPLICATION_DUPLICATE_BUTTON = "SMA002_S001_B005"; + String CONSOLIDATED_COMMITMENTS_BUTTTON = "SMA002_S001_B010"; + String EXPRESS_BUSINESS_SECURED_BUTTON = "SMA002_S001_B012"; + String STORNO_ALL_APPLICATIONS_BUTTON = "SMA002_S001_B013"; + String ACCEPTATION_BUTTON = "SMA002_S001_B014"; + String ACCEPTATION_MODAL_BUTTON = "SMA002_S001_B015"; + String ACCOUNT_NUMBER_XPATH = "//table[@id='SMA002_S001_G002_UfoTable']//td[text()='%s']/following-sibling::td[2]"; + + @Click(BACK_TO_APPLICATIONS_LIST_BUTTON) + BAL006_S002_ClientRequestPage clickBackToApplicationsList(); + + @Click(PERSON_DETAIL_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickPersonDetail(); + + @Click(WIFE_HUSBAND_AGREEMENT_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickwifeHusbandAgreement(); + + @Click(DOCUMENTS_PERSONS_TO_SIGN_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickDocumentsPersonsToSign(); + + @StoreElementContent(storeKey = ACCOUNT_NUMBER_KEY, value = ACCOUNT_NUMBER_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + SMA002_S001_SMEAutomatsApplicationOverview storeAccountNumber(String application); + + @Wait(value = LOADER_DIV, until = Until.GONE) + @Wait(value = LOADER_AFTER_MODULATION_DIV, until = Until.GONE) + @Click(value = APPLICATION_RADIO, by = Lookup.XPATH, isStringDynamicXpath = true, andWait = @Wait(value = LOADER_DIV, until = Until.GONE)) + SMA002_S001_SMEAutomatsApplicationOverview clickApplication(String application); + + @Click(EXCEPTION_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickException(); + + @Click(EXPRESMAN_DECISION_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickExpresmanDecision(); + + @Click(FILL_DOCUMENTS_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickFillDocuments(); + + @Click(REQUIRED_PRODUCT_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickRequiredProduct(); + + @Wait(value = LOADER_DIV, until = Until.GONE) + @CustomAction + default SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickParametersVariants(String application) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> PARAMETERS_VARIANTS_BUTTON); + if ((endpoint.isAlertPresent(5)) && + (endpoint.getAlertText(1).equals("Čekejte, prosím - probíhá zpracování předchozího požadavku."))) { + endpoint.acceptAlert(3); + endpoint.sleepSeconds(5); + clickApplication(application); + endpoint.click(() -> PARAMETERS_VARIANTS_BUTTON); + } + return null; + } + + @Click(PRINT_OFFER_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickPrintOffer(); + + @Wait(value = LOADER_DIV, until = Until.GONE) + @CustomAction + default SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickPrintSignDeal() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> PRINT_SIGN_DEAL_BUTTON); + if ((endpoint.isAlertPresent(5)) && + (endpoint.getAlertText(1).equals("Čekejte, prosím - probíhá zpracování předchozího požadavku."))) { + endpoint.acceptAlert(3); + endpoint.sleepSeconds(5); + endpoint.click(() -> PRINT_SIGN_DEAL_BUTTON); + } + return null; + } + + @Click(STORNO_SELECTED_APPLICATION_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickStornoSelectedApplication(); + + @Click(APPLICATION_DUPLICATE_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickApplicationDuplicate(); + + @Click(CONSOLIDATED_COMMITMENTS_BUTTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickConsolidatedCommitments(); + + @Click(EXPRESS_BUSINESS_SECURED_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickExpressBusinessSecured(); + + @Click(STORNO_ALL_APPLICATIONS_BUTTON) + SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickStornoAllApplications(); + + @Wait(value = LOADER_DIV, until = Until.GONE) + @CustomAction + default SMA002_S001_SMEAutomatsApplicationOverview clickAcceptation() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> ACCEPTATION_BUTTON); + if ((endpoint.isAlertPresent(5)) && + (endpoint.getAlertText(1).equals("Čekejte, prosím - probíhá zpracování předchozího požadavku."))) { + endpoint.acceptAlert(3); + endpoint.waitForElementsToLoad(10, Lookup.DEFAULT, Until.GONE, LOADER_DIV); + endpoint.sleepSeconds(5); + endpoint.click(() -> ACCEPTATION_BUTTON); + } + return null; + } + + @Wait(value = LOADER_DIV, until = Until.GONE) + @CustomAction + default SMA002_S001_SMEAutomatsApplicationsOverviewTransitions clickAcceptationModalIfPresent() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(ACCEPTATION_MODAL_BUTTON, Lookup.DEFAULT)) { + endpoint.click(() -> ACCEPTATION_MODAL_BUTTON); + } + if ((endpoint.isAlertPresent(5)) && + (endpoint.getAlertText(1).equals("Čekejte, prosím - probíhá zpracování předchozího požadavku."))) { + endpoint.acceptAlert(3); + endpoint.waitForElementsToLoad(10, Lookup.DEFAULT, Until.GONE, LOADER_DIV); + endpoint.sleepSeconds(5); + endpoint.click(() -> ACCEPTATION_MODAL_BUTTON); + } + endpoint.waitForElementsToLoad(120, Lookup.DEFAULT, Until.GONE, LOADER_AFTER_MODULATION_DIV); + + return null; + } + +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA002_S001_SMEAutomatsApplicationsOverviewTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA002_S001_SMEAutomatsApplicationsOverviewTransitions.java new file mode 100644 index 0000000..23bd115 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA002_S001_SMEAutomatsApplicationsOverviewTransitions.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.WebFlow; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; + + +public interface SMA002_S001_SMEAutomatsApplicationsOverviewTransitions extends WebFlow, StoreAccessor { + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + KUL012_S001_RequestedDocumentsPage onRequestedDocumentsPage(); + + SMA017_S001_DrawDownFeePage onDrawDownFee(); + + KUL043_S001_ChangeSelectedParametersPage onChangeSelectedParametersExpresBusinessPage(); + + @CustomAction + default KUL043_S001_ChangeSelectedParametersPage onChangeSelectedParametersExpresBusinessPageAndAcceptAlertIfPresent() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if ((endpoint.isAlertPresent(3)) && + (endpoint.getAlertText(1).equals("Bankéř nemá příslušnou certifikaci pro sjednání pojištění!"))) { + endpoint.acceptAlert(1); + } + return null; + } + + @CustomAction + default KUL043_S002_ChangeSelectedParametersPage onChangeSelectedParametersFlexiBusinessPageAndAcceptAlertIfPresent() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isAlertPresent(3)) { + endpoint.acceptAlert(1); + } + return null; + } + + CHK001_S001_WaitingForModulationPage onWaitingForModulationPage(); + + SMA002_S001_SMEAutomatsApplicationOverview onSMEAutomatsApplicationOverview(); + + OBR003_S001_ClientContractSignPage onClientWarning(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA009_S001_BankerRepresentationForVerification.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA009_S001_BankerRepresentationForVerification.java new file mode 100644 index 0000000..28ab997 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA009_S001_BankerRepresentationForVerification.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.SMA009_S001_BankerRepresentationForVerification.SMA009_S001_PAGE_LABEL_XPATH; + +@Wait(value = SMA009_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 360) +public interface SMA009_S001_BankerRepresentationForVerification extends WebFlow { + String SMA009_S001_PAGE_LABEL_XPATH = "//div[text()='SMA009_S001']"; + String STATE_BANKER_NAME_INPUT = "SMA009_S001_E001"; + String FIRST_SSO_BANKER_RADIO = "SMA009_S001_G001-0"; + String SEARCH_BANKER_BUTTON = "SMA009_S001_B002"; + String RETURN_TO_APPLICATIONS_LIST_BUTTON = "SMA009_S001_B003"; + String CONTINUE_BUTTON = "SMA009_S001_B004"; + + @TypeInto(STATE_BANKER_NAME_INPUT) + SMA009_S001_BankerRepresentationForVerification fillBankerName(String bankerName); + + @Click(SEARCH_BANKER_BUTTON) + SMA009_S001_BankerRepresentationForVerification clickSearchBanker(); + + @Click(FIRST_SSO_BANKER_RADIO) + SMA009_S001_BankerRepresentationForVerification clickFirstBanker(); + + @Click(RETURN_TO_APPLICATIONS_LIST_BUTTON) + SMA009_S001_BankerRepresentationForVerification clickReturnToApplicationsList(); + + @Click(CONTINUE_BUTTON) + OBR003_S001_ClientContractSignPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA010_S001_SignedContractDocumentationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA010_S001_SignedContractDocumentationPage.java new file mode 100644 index 0000000..1e26a88 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA010_S001_SignedContractDocumentationPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = SMA010_S001_SignedContractDocumentationPage.PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 30) +public interface SMA010_S001_SignedContractDocumentationPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='SMA010_S001']"; + String NOT_SIGNED_STORNO_BUTTON = "SMA010_S001_B001"; + String PRINT_DEAL_DOCUMENTATION_BUTTON = "SMA010_S001_B002"; + String SIGNED_BUTTON = "SMA010_S001_B003"; + + @Click(SIGNED_BUTTON) + CHK001_S001_WaitingForModulationPage clickSigned(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA017_S001_DrawDownFeePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA017_S001_DrawDownFeePage.java new file mode 100644 index 0000000..0d3e8c9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/sme/SMA017_S001_DrawDownFeePage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.sme; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.SMA017_S001_DrawDownFeePage.SMA017_S001_PAGE_LABEL_XPATH; + +@Wait(value = SMA017_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface SMA017_S001_DrawDownFeePage extends WebFlow { + String SMA017_S001_PAGE_LABEL_XPATH = "//div[text()='SMA017_S001']"; + String DRAW_DOWN_FOR_CREDIT_YES_RADIO = "SMA017_S001_R001_1"; + String DRAW_DOWN_FOR_CREDIT_NO_RADIO = "SMA017_S001_R001_0"; + String CONTINUE_BUTTON = "SMA017_S001_B001"; + + @Click(value = DRAW_DOWN_FOR_CREDIT_YES_RADIO, jsClick = true) + SMA017_S001_DrawDownFeePage clickDrawDownForCreditYes(); + + @Click(value = DRAW_DOWN_FOR_CREDIT_NO_RADIO, jsClick = true) + SMA017_S001_DrawDownFeePage clickDrawDownForCreditNo(); + + @Click(CONTINUE_BUTTON) + KUL012_S001_RequestedDocumentsPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO001_S001_UniverzalRequestIdentificationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO001_S001_UniverzalRequestIdentificationPage.java new file mode 100644 index 0000000..ba69630 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO001_S001_UniverzalRequestIdentificationPage.java @@ -0,0 +1,70 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.universal.request; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.HLE001_S001_CoApplicantSearchPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO001_S001_UniverzalRequestIdentificationPage.LOAN_AMOUNT; + +@Wait(value = LOAN_AMOUNT, waitSecondsForElement = 30) +public interface UZO001_S001_UniverzalRequestIdentificationPage extends WebFlow, SharedElements, StoreAccessor { + + String PAGE_ID_XPATH = "//div[text()=' UZO001_S001' or text()='lala']"; + String CONTINUE_BUTTON = "UZO001_S001_B002"; + String LOAN_AMOUNT = "UZO001_S001_E006"; + String NUMBER_OF_INSTALLMENTS = "UZO001_S001_C003"; + String PRIMARY_REQUIRED_PRODUCT_SELECT = "UZO001_S001_C001"; + String MONTHLY_INSTALLMENT_INPUT = "UZO001_S001_E007"; + String NOT_INCLUDE_EXTERN_COMMITMENTS_RADIO = "UZO001_S001_R002_0"; + String REQUIRED_INCREASE_INPUT = "UZO001_S001_E022"; + String CALCULATION_OF_INSTALLMENTS = "UZO001_S001_B004"; + String LOADER_XPATH = "/html/body/div[@class='gwt-PopupPanel']/div[@class='popupContent']/img[@class='gwt-Image']/@src"; + String OTHER_APPLICANT_INPUT = "UZO001_S001_H003_1"; + String FILL_IN_APPLICANT_BUTTON = "UZO001_S001_B005"; + String RELATIONSHIP_WITH_MAIN_APPLICANT_SELECT = "UZO001_S001_C005"; + + @TypeInto(LOAN_AMOUNT) + UZO001_S001_UniverzalRequestIdentificationPage typeIntoLoanAmount(int loanAmount); + + @Select(value = NUMBER_OF_INSTALLMENTS, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UZO001_S001_UniverzalRequestIdentificationPage selectNumberOfInstallments(int numberOfInstallments); + + @Click(CALCULATION_OF_INSTALLMENTS) + UZO001_S001_UniverzalRequestIdentificationPage clickCalculationOfInstallmentsButtonUniversalRequestPage(); + + @Select(value = PRIMARY_REQUIRED_PRODUCT_SELECT, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UZO001_S001_UniverzalRequestIdentificationPage selectPrimaryRequiredProduct(String primaryRequiredProduct); + + @CustomAction + default UZO001_S001_UniverzalRequestIdentificationPage checkMonthlyInstallmentNotEmpty() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNotEquals("", endpoint.getAttribute(MONTHLY_INSTALLMENT_INPUT, "value")); + return null; + } + + @Click(value = NOT_INCLUDE_EXTERN_COMMITMENTS_RADIO, jsClick = true) + UZO001_S001_UniverzalRequestIdentificationPage clickNotIncludeExternCommitments(); + + @Click(value = CALCULATION_OF_INSTALLMENTS, + andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UZO001_S001_UniverzalRequestIdentificationPage clickCalculateInstallment(); + + @Click(value = CONTINUE_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UZO001_S001_UniverzalRequestIdentificationPageTransitions clickContinue(); + + @TypeInto(REQUIRED_INCREASE_INPUT) + UZO001_S001_UniverzalRequestIdentificationPage fillRequiredIncrease(String requiredIncrease); + + @Click(value = OTHER_APPLICANT_INPUT, jsClick = true) + UZO001_S001_UniverzalRequestIdentificationPage clickOtherApplicant(); + + @Click(FILL_IN_APPLICANT_BUTTON) + HLE001_S001_CoApplicantSearchPage clickFillInApplicant(); + + @Select(RELATIONSHIP_WITH_MAIN_APPLICANT_SELECT) + UZO001_S001_UniverzalRequestIdentificationPage selectRelationshipWithMainApplicant(String relationshipWithMainApplicant); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO001_S001_UniverzalRequestIdentificationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO001_S001_UniverzalRequestIdentificationPageTransitions.java new file mode 100644 index 0000000..d4fb731 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO001_S001_UniverzalRequestIdentificationPageTransitions.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.universal.request; + +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface UZO001_S001_UniverzalRequestIdentificationPageTransitions extends WebFlow { + + DOK001_S001_SelectionOfSubmittedDocumentsPage onSelectionOfSubmittedDocumentsPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO001_S003_SigningByTheApplicant.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO001_S003_SigningByTheApplicant.java new file mode 100644 index 0000000..5bd5ce3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO001_S003_SigningByTheApplicant.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.universal.request; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO001_S003_SigningByTheApplicant.APPLICANT_CHECKBOX; + +@Wait(value = APPLICANT_CHECKBOX, waitSecondsForElement = 60) +public interface UZO001_S003_SigningByTheApplicant extends WebFlow { + + String PAGE_ID_XPATH = "//div[text()=' UZO001_S003']"; + String APPLICANT_CHECKBOX = "UZO001_S003_G001-0"; + String SECOND_APPLICANT_CHECKBOX = "UZO001_S003_G001-1"; + String YES_BUTTON = "UZO001_S003_B001"; + + @Click(APPLICANT_CHECKBOX) + UZO001_S003_SigningByTheApplicant clickApplicantCheckbox(); + + @Click(SECOND_APPLICANT_CHECKBOX) + UZO001_S003_SigningByTheApplicant clickSecondApplicantCheckbox(); + + @Click(YES_BUTTON) + CAS001_S001_ScoringPage clickYesButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S001_UniverzalRequestModeling.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S001_UniverzalRequestModeling.java new file mode 100644 index 0000000..d730909 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S001_UniverzalRequestModeling.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.universal.request; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO006_S001_UniverzalRequestModeling.PAGE_ID; + +@Wait(value = PAGE_ID, waitSecondsForElement = 60) +public interface UZO006_S001_UniverzalRequestModeling extends WebFlow, StoreAccessor, SharedElements { + + String PAGE_ID = "UZO006_S001_X001"; + String STORNO_BUTTON = "UZO006_S001_B006"; + String STATUS_GENERAL_XPATH = "//div[@id='UZO006_S001_L007' and contains(text(), '%s')]"; + String RELOAD_BUTTON = "UZO006_S001_S001"; + String END_BUTTON = "UZO006_S001_B002"; + String APPROVED_OFFERS_LIST_LABEL = "UZO006_S001_L008"; + String CALCULATOR_BUTTON = "UZO006_S001_B004"; + String APP_KEY_DIV = "UZO006_S001_L018"; + String APP_KEY_STORE = "APP_KEY_STORE"; + + @CustomAction + default UZO006_S001_UniverzalRequestModeling waitForStatusAndRefresh(String status) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementAndRefresh(String.format(STATUS_GENERAL_XPATH, status), RELOAD_BUTTON, Lookup.XPATH, Lookup.DEFAULT, 300, 10); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @Click(END_BUTTON) + UZO006_S001_UniverzalRequestModelingTransitions clickEndButton(); + + @CheckElementPresent(APPROVED_OFFERS_LIST_LABEL) + UZO006_S001_UniverzalRequestModeling checkApprovedOffersVisible(); + + @Click(CALCULATOR_BUTTON) + UZO006_S004_UniverzalRequestCombinationsCalculatorPage clickCalculator(); + + @Click(STORNO_BUTTON) + UZO006_S002_UniverzalStornoPage clickStorno(); + + @StoreElementContent(storeKey = APP_KEY_STORE, value = APP_KEY_DIV) + UZO006_S001_UniverzalRequestModeling storeAppKey(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S001_UniverzalRequestModelingTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S001_UniverzalRequestModelingTransitions.java new file mode 100644 index 0000000..dc2a0b7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S001_UniverzalRequestModelingTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.universal.request; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface UZO006_S001_UniverzalRequestModelingTransitions extends WebFlow { + + HKO101_S001_MainClientPage onMainClientPage(); + + BAL006_S002_ClientRequestPage onListOfRequests(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S002_UniverzalStornoPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S002_UniverzalStornoPage.java new file mode 100644 index 0000000..e8300ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S002_UniverzalStornoPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.universal.request; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO006_S002_UniverzalStornoPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +public interface UZO006_S002_UniverzalStornoPage extends WebFlow { + String PAGE_ID_XPATH = "//div[text()='UZO006_S002']"; + String REASON_SELECT = "UZO006_S002_C001"; + String SEND_BUTTON = "UZO006_S002_B001"; + + @Select(REASON_SELECT) + UZO006_S002_UniverzalStornoPage selectReason(String reason); + + @Click(SEND_BUTTON) + UZO006_S001_UniverzalRequestModeling clickSend(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S004_UniverzalRequestCombinationsCalculatorPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S004_UniverzalRequestCombinationsCalculatorPage.java new file mode 100644 index 0000000..7023102 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/products/universal/request/UZO006_S004_UniverzalRequestCombinationsCalculatorPage.java @@ -0,0 +1,84 @@ +package cz.moneta.test.dsl.ufo.banka.pages.products.universal.request; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO006_S004_UniverzalRequestCombinationsCalculatorPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +public interface UZO006_S004_UniverzalRequestCombinationsCalculatorPage extends WebFlow, StoreAccessor { + + String PAGE_ID_XPATH = "//div[text()='UZO006_S004']"; + String CREDIT_SELECT = "UZO006_S004_C001"; + String CALCULATION_BUTTON = "UZO006_S004_B002"; + String INSURANCE_SELECT = "UZO006_S004_C004"; + String PAYMENT_INPUT = "UZO006_S004_E003"; + String CREDIT_RATE_INPUT = "UZO006_S004_E004"; + String RPSN_INPUT = "UZO006_S004_E005"; + String INSURANCE_CHARGE_INPUT = "UZO006_S004_E006"; + String RECALCULATION_SELECT = "UZO006_S004_C002"; + String RECALCULATE_BUTTON = "UZO006_S004_B003"; + String DO_NOT_ACCEPT_THIRD_PRODUCT_CHECKBOX = "UZO006_S004_H001_1"; + String CREDIT_AMOUNT_INPUT = "UZO006_S004_E001"; + String BACK_BUTTON = "UZO006_S004_B001"; + + @Select(value = CREDIT_SELECT, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UZO006_S004_UniverzalRequestCombinationsCalculatorPage selectCredit(String credit); + + @TypeInto(value = CREDIT_AMOUNT_INPUT, clear = true) + UZO006_S004_UniverzalRequestCombinationsCalculatorPage fillCreditAmount(String creditAmount); + + @Click(value = CALCULATION_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UZO006_S004_UniverzalRequestCombinationsCalculatorPage clickCalculation(); + + @Select(INSURANCE_SELECT) + UZO006_S004_UniverzalRequestCombinationsCalculatorPage selectInsurance(String insurance); + + @CustomAction + default UZO006_S004_UniverzalRequestCombinationsCalculatorPage checkPaymentNotEmpty() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNotEquals("", endpoint.getAttribute(PAYMENT_INPUT, "value")); + return null; + } + + @CustomAction + default UZO006_S004_UniverzalRequestCombinationsCalculatorPage checkCreditRateNotEmpty() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNotEquals("", endpoint.getAttribute(CREDIT_RATE_INPUT, "value")); + return null; + } + + @CustomAction + default UZO006_S004_UniverzalRequestCombinationsCalculatorPage checkRpsnNotEmpty() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNotEquals("", endpoint.getAttribute(RPSN_INPUT, "value")); + return null; + } + + @CustomAction + default UZO006_S004_UniverzalRequestCombinationsCalculatorPage checkInsuranceChargeNotEmpty() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNotEquals("", endpoint.getAttribute(INSURANCE_CHARGE_INPUT, "value")); + return null; + } + + @Select(value = RECALCULATION_SELECT, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UZO006_S004_UniverzalRequestCombinationsCalculatorPage selectRecalculation(String recalculation); + + @Click(value = RECALCULATE_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UZO006_S004_UniverzalRequestCombinationsCalculatorPage clickRecalculate(); + + @CustomAction + default UZO006_S004_UniverzalRequestCombinationsCalculatorPage checkDoNotAcceptThirdProductIsVisible() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(10, Until.VISIBLE, DO_NOT_ACCEPT_THIRD_PRODUCT_CHECKBOX); + return null; + } + + @Click(BACK_BUTTON) + UZO006_S001_UniverzalRequestModeling clickBack(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/BAL006_S002_ClientRequestPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/BAL006_S002_ClientRequestPage.java new file mode 100644 index 0000000..11a3bb3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/BAL006_S002_ClientRequestPage.java @@ -0,0 +1,145 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC006_S001_ConsolidationScoringPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL015_S001_PackageDetail; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.apache.commons.lang3.StringUtils; + +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.APPLICATION_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage.FILTER_LAYOUT; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.harness.support.web.Lookup.DEFAULT; +import static cz.moneta.test.harness.support.web.Lookup.XPATH; + +@Wait(FILTER_LAYOUT) +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) +public interface BAL006_S002_ClientRequestPage extends WebFlow, StoreAccessor { + + String POPUP = "//div[@class='popupContent']"; + String FILTER_LAYOUT = "BAL006_S002_X001"; + String REQUEST_DETAIL_BUTTON = "BAL006_S002_B005"; + String APPLICATION_ON_REQUEST_DETAIL_XPATH = "//div[@id='BAL006_S002_L011']//b[text()='%s']"; + String SEARCH_BUTTON = "BAL006_S002_B010"; + String SELECTED_LINE_XPATH = "//tr[contains(@class, 'ufo-Table-Row-Selected-even')]"; + String GENERAL_TEXT_CELLS_IN_SELECTED_LINE_XPATH = SELECTED_LINE_XPATH + "//td[contains(@class, 'ufo-Table-BodyCell') and contains(text(),'%s')]"; + String BACK_BUTTON = "BAL006_S002_B001"; + String ID_FIRST_REQUEST_RADIO = "BAL006_S002_G001-0"; + String APPLICATION_ID_XPATH = "//table[@id = 'BAL006_S002_G001_UfoTable']//td[@class = 'ufo-Table-BodyCell' and contains(text(), '%s')]/..//input"; + String APPLICATION_TYPE_XPATH ="//table[@id = 'BAL006_S002_G001_UfoTable']//td[@class = 'ufo-Table-BodyCell' and contains(text(), '%s')]/following-sibling::td[8]"; + String STATE_CHECK_TD_XPATH = "//td[text()='%s']/following-sibling::td[text()='%s']"; + String STATE_STORNO_TD_XPATH = "//td[text()='%s']/following-sibling::td[text()='STORNO' or text()='Storno probíhá']"; + String PRODUCT_FILTER_SELECT = "BAL006_S002_C001"; + String STATE_FILTER_SELECT = "BAL006_S002_C003"; + String CANCEL_FILTER_BUTTON = "BAL006_S002_B007"; + + default void loadPage(WebEndpoint endpoint) { + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(10); + endpoint.waitForElementsToLoad(30, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + } + } + + @CustomAction + default BAL006_S002_ClientRequestPage checkSelectedLinesTextContent(String... textToCheck) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Arrays.stream(textToCheck) + .filter(StringUtils::isNotEmpty) + .forEach(t -> endpoint.isAtLeastOneElementPresent(String.format(GENERAL_TEXT_CELLS_IN_SELECTED_LINE_XPATH, t), XPATH)); + return null; + } + + @Click(REQUEST_DETAIL_BUTTON) + BAL006_S002_ClientRequestPageTransitions clickOpenRequestDetail(); + + @Click(value = ID_FIRST_REQUEST_RADIO, andWait = @Wait(value = POPUP, until = Until.GONE)) + BAL006_S002_ClientRequestPage selectFirstApplication(); + + @Click(BACK_BUTTON) + HKO101_S001_MainClientPage clickBackToMainPage(); + + @CustomAction + default BAL006_S002_ClientRequestPage clickRequest(String applicationId) { + String xPath = String.format(APPLICATION_ID_XPATH, applicationId); + String applicationIdOnRequestDetailXPath = String.format(APPLICATION_ON_REQUEST_DETAIL_XPATH, applicationId); + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (!endpoint.isElementVisible(applicationIdOnRequestDetailXPath, XPATH)) { + endpoint.click(() -> xPath, Lookup.XPATH); + } + endpoint.waitForElementsToLoad(10, Until.VISIBLE, REQUEST_DETAIL_BUTTON); + return null; + } + + @CustomAction + default BAL006_S002_ClientRequestPage waitForStatusAndRefresh(String status) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementAndRefresh(String.format(APPLICATION_ID_XPATH, status), + SEARCH_BUTTON, XPATH, DEFAULT, 200, 5); + return null; + } + + @Wait(value = REQUEST_DETAIL_BUTTON, waitSecondsForElement = 15) + BAL006_S002_ClientRequestPage waitForRequestDetailButton(); + + @Click(REQUEST_DETAIL_BUTTON) + BAL015_S001_PackageDetail clickToRequestDetailButton(); + + @Click(REQUEST_DETAIL_BUTTON) + NFL006_S001_FlexikreditScoringResultPage clickToRequestDetailButtonToFlexiScoringPage(); + + @Click(REQUEST_DETAIL_BUTTON) + NEP006_S001_ExpressScoringResultPage clickToRequestDetailButtonToExpresScoringPage(); + + @Click(REQUEST_DETAIL_BUTTON) + UDC006_S001_ConsolidationScoringPage clickToRequestDetailButtonToConsolidationScoringPage(); + + @Click(REQUEST_DETAIL_BUTTON) + NKK006_S001_CreditCardScoringResultPage clickRequestDetailButtonToCreditCardPage(); + + @CustomAction + default HKO101_S001_MainClientPage clickBackToMainClientPage() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(45, BACK_BUTTON); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + endpoint.sleep(TimeUnit.MILLISECONDS, 500); + endpoint.click(() -> BACK_BUTTON); + return null; + } + + @Select(value = PRODUCT_FILTER_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + BAL006_S002_ClientRequestPage selectProductFilter(String product); + + @Select(value = STATE_FILTER_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + BAL006_S002_ClientRequestPage selectStateFilter(String state); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @Click(value = CANCEL_FILTER_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + BAL006_S002_ClientRequestPage clickCancelFilter(); + + @CustomAction + default BAL006_S002_ClientRequestPage storeFirstApplicationId(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(10, Until.PRESENT_IN_DOM, ID_FIRST_REQUEST_RADIO); + String applicationID = endpoint.getAttribute(ID_FIRST_REQUEST_RADIO, "value"); + harness.store(APPLICATION_ID_KEY, applicationID); + return null; + } + + @CustomAction + default BAL006_S002_ClientRequestPage checkApplicationState(String applicationId, String expectedState) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String xpath = String.format(STATE_CHECK_TD_XPATH, applicationId, expectedState); + endpoint.waitForElementAndRefresh(xpath, SEARCH_BUTTON, Lookup.XPATH, Lookup.ID, 120, 10); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/BAL006_S002_ClientRequestPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/BAL006_S002_ClientRequestPageTransitions.java new file mode 100644 index 0000000..b0cd613 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/BAL006_S002_ClientRequestPageTransitions.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC006_S001_ConsolidationScoringPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL018_S001_SmeAutomatesRequests; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.SMA002_S001_SMEAutomatsApplicationOverview; +import cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO006_S001_UniverzalRequestModeling; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface BAL006_S002_ClientRequestPageTransitions extends WebFlow { + + NKK006_S001_CreditCardScoringResultPage onCreditCardRequestPage(); + + NEP006_S001_ExpressScoringResultPage onExpressScoringResultPage(); + + NKK006_S001_CreditCardScoringResultPage onCreditCardScoringResultPage(); + + NFL006_S001_FlexikreditScoringResultPage onFlexiCreditScoringResultPage(); + + KUL018_S001_SmeAutomatesRequests onSmeAutomatesRequests(); + + SMA002_S001_SMEAutomatsApplicationOverview onSMEAutomatsApplicationsOverview(); + + CHK001_S001_WaitingForModulationPage onWaitForModulationPage(); + + UZO006_S001_UniverzalRequestModeling onUniverzalRequestModelingPage(); + + UDC006_S001_ConsolidationScoringPage onConsolidationScoringPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP004_S002_AccountSelectionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP004_S002_AccountSelectionPage.java new file mode 100644 index 0000000..d1e2f0c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP004_S002_AccountSelectionPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.requests.DUP004_S002_AccountSelectionPage.LAYOUT_DIV; + +@Wait(LAYOUT_DIV) +public interface DUP004_S002_AccountSelectionPage extends WebFlow { + + String LAYOUT_DIV = "DUP004_S002_X002"; + String SAVE_BUTTON = "DUP004_S002_B001"; + String ACCOUNT_SELECT = "DUP004_S002_C001"; + + @Select(value = ACCOUNT_SELECT, selectByOrder = true) + DUP004_S002_AccountSelectionPage selectAccount(int index); + + @Click(SAVE_BUTTON) + DUP004_S002_AccountSelectionPageTransitions clickSave(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP004_S002_AccountSelectionPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP004_S002_AccountSelectionPageTransitions.java new file mode 100644 index 0000000..75230e6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP004_S002_AccountSelectionPageTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NKK002_OBR001_ConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.ib.ADC001_S001_IbPasswordKeyPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface DUP004_S002_AccountSelectionPageTransitions extends WebFlow { + + NKK002_OBR001_ConfirmationPage onConfirmationPage(); + + ADC001_S001_IbPasswordKeyPage onIbPasswordKeyPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP009_S001_CreateElectronicDistributionChannel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP009_S001_CreateElectronicDistributionChannel.java new file mode 100644 index 0000000..e72674c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP009_S001_CreateElectronicDistributionChannel.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.requests.DUP009_S001_CreateElectronicDistributionChannel.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.requests.DUP009_S001_CreateElectronicDistributionChannel.DUP009_S001_PAGE_LABEL_XPATH; + +@Wait(value = DUP009_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(CONTINUE_BUTTON) +public interface DUP009_S001_CreateElectronicDistributionChannel extends WebFlow, StoreAccessor { + String DUP009_S001_PAGE_LABEL_XPATH = "//div[text()='DUP009_S001']"; + String CONTINUE_BUTTON = "DUP009_S001_B001"; + String DISTRIBUTION_TYPE_SELECT = "DUP009_S001_C001"; + + @Select(DISTRIBUTION_TYPE_SELECT) + DUP009_S001_CreateElectronicDistributionChannel selectDistributionChannel(String channel); + + @CustomAction + default DUP009_S001_CreateElectronicDistributionChannelTransitions clickContinueDismissAlertIfPresent() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> CONTINUE_BUTTON); + if(endpoint.isAlertPresent(2)){ + endpoint.dismissAlert(1); + } + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP009_S001_CreateElectronicDistributionChannelTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP009_S001_CreateElectronicDistributionChannelTransitions.java new file mode 100644 index 0000000..ab48a26 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/DUP009_S001_CreateElectronicDistributionChannelTransitions.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS027_OBR001_PreContractualInformationPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.FXM002_S002_SetFxMoneyPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface DUP009_S001_CreateElectronicDistributionChannelTransitions extends WebFlow { + + TIS027_OBR001_PreContractualInformationPage onPreContractualInformationPage(); + + TIS050_S001_SignerSelectionPage onSignerSelectionPage(); + + TIS004_S002_SignerSelectionPage onSignerPage(); + + PVX002_S002_AccountDispositionOwnerPage onAccountDispositionOwnerPage(); + + FXM002_S002_SetFxMoneyPage onSetFxMoneyPage(); + + OBR001_S001_PrintInstructionPage onPrintInstructionPage(); + + BPP001_S001_DocumentationSendPage onDocumentationSendPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP013_S001_RequestCancellationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP013_S001_RequestCancellationPage.java new file mode 100644 index 0000000..1bf3685 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP013_S001_RequestCancellationPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.requests.NEP013_S001_RequestCancellationPage.CONFIRM_BUTTON; + +@Wait(CONFIRM_BUTTON) +public interface NEP013_S001_RequestCancellationPage extends WebFlow { + + String CONFIRM_BUTTON = "NEP013_S001_B001"; + String CANCELLATION_REASON_SELECT = "NEP013_S001_C001"; + + @Select(CANCELLATION_REASON_SELECT) + NEP013_S001_RequestCancellationPage selectCancellationReason(String reason); + + @Click(CONFIRM_BUTTON) + CAS001_S001_ScoringPage clickConfirmButton(); + + @Click(CONFIRM_BUTTON) + TIS050_S001_SignerSelectionPage clickConfirmButtonToSignerSelectionPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP016_S002_DocumentTypeSelectPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP016_S002_DocumentTypeSelectPage.java new file mode 100644 index 0000000..80840fc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP016_S002_DocumentTypeSelectPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.requests.NEP016_S002_DocumentTypeSelectPage.SUBMITTED_DOCUMENT_LABEL_DIV; + +@Wait(SUBMITTED_DOCUMENT_LABEL_DIV) +public interface NEP016_S002_DocumentTypeSelectPage extends WebFlow { + + String SUBMITTED_DOCUMENT_LABEL_DIV = "NEP016_S002_X006"; + String FIRST_RADIO_BUTTON = "NEP016_S002_G001-0"; + String CONTINUE_BUTTON = "NEP016_S002_B001"; + + @Click(FIRST_RADIO_BUTTON) + @Click(CONTINUE_BUTTON) + NEP024_S005_ConfirmationOfReceiptAddPage continueToConfirmationOfReceiptAddPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP016_S021_DocumentedEvidenceListPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP016_S021_DocumentedEvidenceListPage.java new file mode 100644 index 0000000..b2070e9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP016_S021_DocumentedEvidenceListPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.requests.NEP016_S021_DocumentedEvidenceListPage.PAGE_HEADER_DIV; + +@Wait(PAGE_HEADER_DIV) +public interface NEP016_S021_DocumentedEvidenceListPage extends WebFlow { + + String PAGE_HEADER_DIV = "NEP016_S021_L001"; + String DETAIL_ENTER_INPUTS_BUTTON = "NEP016_S021_B001"; + String REQUIRED_RADIO_BUTTON = "NEP016_S021_G001-0"; + + @Click(REQUIRED_RADIO_BUTTON) + @Click(DETAIL_ENTER_INPUTS_BUTTON) + NEP016_S023_ClientRequiredDocumentsListPage continueToClientRequiredDocumentsListPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP016_S023_ClientRequiredDocumentsListPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP016_S023_ClientRequiredDocumentsListPage.java new file mode 100644 index 0000000..424b2da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP016_S023_ClientRequiredDocumentsListPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.requests.NEP016_S023_ClientRequiredDocumentsListPage.PAGE_HEADER_DIV; + +@Wait(PAGE_HEADER_DIV) +public interface NEP016_S023_ClientRequiredDocumentsListPage extends WebFlow, StoreAccessor { + + String PAGE_HEADER_DIV = "NEP016_S023_L001"; + String ADD_DOCUMENT_BUTTON = "NEP016_S023_B001"; + String SEND_BUTTON = "NEP016_S023_B003"; + + @Click(ADD_DOCUMENT_BUTTON) + NEP016_S002_DocumentTypeSelectPage clickAddDocument(); + + @Click(SEND_BUTTON) + NEP006_S001_ExpressScoringResultPage clickContinue(); + +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP024_S005_ConfirmationOfReceiptAddPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP024_S005_ConfirmationOfReceiptAddPage.java new file mode 100644 index 0000000..7f12cfe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP024_S005_ConfirmationOfReceiptAddPage.java @@ -0,0 +1,96 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.requests.NEP024_S005_ConfirmationOfReceiptAddPage.PAGE_HEADER_DIV; + +@Wait(PAGE_HEADER_DIV) +public interface NEP024_S005_ConfirmationOfReceiptAddPage extends WebFlow { + + String PAGE_HEADER_DIV = "NEP024_S005_L009"; + String EMPLOYMENT_FROM_INPUT = "NEP024_S005_E016"; + String NET_INCOME_INPUT = "NEP024_S005_E015"; + String OTHER_LOAN_PAYMENTS_INPUT = "NEP024_S005_E017"; + String WAGE_DEDUCTIONS_INPUT = "NEP024_S005_E010"; + String DEPENDENT_PERSON_INPUT = "NEP024_S005_E018"; + String OCCUPATION_INSTITUTION_NAME_INPUT = "NEP024_S005_E005"; + String OCCUPATION_INSTITUTION_ICO_INPUT = "NEP024_S005_E021"; + String OCCUPATION_INSTITUTION_STREET_INPUT = "NEP024_S005_E006"; + String OCCUPATION_INSTITUTION_DESCRIPTIVE_NUMBER_INPUT = "NEP024_S005_E007"; + String OCCUPATION_INSTITUTION_ORIENTATION_NUMBER_INPUT = "NEP024_S005_E019"; + String OCCUPATION_INSTITUTION_TOWN_INPUT = "NEP024_S005_E008"; + String OCCUPATION_INSTITUTION_ZIP_INPUT = "NEP024_S005_E022"; + String OCCUPATION_STATUS_SELECT = "NEP024_S005_C005"; + String DATE_OF_ISSUE_INPUT = "NEP024_S005_E012"; + String STAMP_CHECKBOX = "NEP024_S005_H002_1"; + String SIGNATURE_CHECKBOX = "NEP024_S005_H001_1"; + String GENERATE_PDF_BUTTON = "NEP024_S005_B003"; + String SENT_BUTTON = "NEP024_S005_B001"; + String SENT_BUTTON_ACTIVE_XPATH = "//button[@id='" + SENT_BUTTON + "' and not(@disabled)]"; + String SALARY_IN_CASH_SELECT = "NEP024_S005_C006"; + + @TypeInto(EMPLOYMENT_FROM_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillEmploymentFrom(String employmentFrom); + + @TypeInto(NET_INCOME_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillNetIncome(String netIncome); + + @TypeInto(OTHER_LOAN_PAYMENTS_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillOtherLoanPayments(String otherLoanPayments); + + @TypeInto(WAGE_DEDUCTIONS_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillWageDeductions(String wageDeductions); + + @TypeInto(DEPENDENT_PERSON_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillDependendPerson(String dependentPerson); + + @TypeInto(OCCUPATION_INSTITUTION_NAME_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillOccupationInstitutionName(String name); + + @TypeInto(OCCUPATION_INSTITUTION_ICO_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillOccupationInstitutionIco(String ico); + + @TypeInto(OCCUPATION_INSTITUTION_STREET_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillOccupationInstitutionStreet(String street); + + @TypeInto(OCCUPATION_INSTITUTION_DESCRIPTIVE_NUMBER_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillOccupationInstitutionDescriptiveNumber(String descriptiveNumber); + + @TypeInto(OCCUPATION_INSTITUTION_ORIENTATION_NUMBER_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillOccupationOrientationNumber(String orientationNumber); + + @TypeInto(OCCUPATION_INSTITUTION_TOWN_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillOccupationInstitutionTown(String town); + + @TypeInto(OCCUPATION_INSTITUTION_ZIP_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillOccupationInstitutionZip(String zip); + + @Select(OCCUPATION_STATUS_SELECT) + NEP024_S005_ConfirmationOfReceiptAddPage selectOccupationStatus(String status); + + @TypeInto(DATE_OF_ISSUE_INPUT) + NEP024_S005_ConfirmationOfReceiptAddPage fillDateOfIssue(String dateOfIssue); + + @Click(STAMP_CHECKBOX) + @Click(SIGNATURE_CHECKBOX) + NEP024_S005_ConfirmationOfReceiptAddPage checkSignatureAndStampCheckboxes(); + + @Click(value = GENERATE_PDF_BUTTON, andWait = @Wait(value = SENT_BUTTON_ACTIVE_XPATH, by = Lookup.XPATH)) + NEP024_S005_ConfirmationOfReceiptAddPage generatePdf(); + + @Click(SENT_BUTTON) + NEP016_S023_ClientRequiredDocumentsListPage continueToClientRequiredDocumentsListPage(); + + @Click(SENT_BUTTON) + DMS001_S001_ScanDocumentsPage continueToScanDocumentsPage(); + + @Select(SALARY_IN_CASH_SELECT) + NEP024_S005_ConfirmationOfReceiptAddPage selectSalaryInCash(String isSalaryInCash); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP044_S001_FinishRequestCreatedByClientInInternetPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP044_S001_FinishRequestCreatedByClientInInternetPage.java new file mode 100644 index 0000000..5ae3f45 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/NEP044_S001_FinishRequestCreatedByClientInInternetPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.requests.NEP044_S001_FinishRequestCreatedByClientInInternetPage.PAGE_HEADER_DIV; + +@Wait(PAGE_HEADER_DIV) +public interface NEP044_S001_FinishRequestCreatedByClientInInternetPage extends WebFlow { + + String PAGE_HEADER_DIV = "NEP044_S001_L002"; + String CONTINUE_BUTTON = "NEP044_S001_B004"; + + @Click(CONTINUE_BUTTON) + NEP006_S001_ExpressScoringResultPage clickContinueButtonToMegaExpressRequestPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/PSI001_S050_PreContractualInformationPrintedPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/PSI001_S050_PreContractualInformationPrintedPage.java new file mode 100644 index 0000000..0ab0358 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/PSI001_S050_PreContractualInformationPrintedPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.PSI001_S051_DraftContractCopyPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.requests.PSI001_S050_PreContractualInformationPrintedPage.CONTINUE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.requests.PSI001_S050_PreContractualInformationPrintedPage.PSI001_S050_PAGE_LABEL_XPATH; + +@Wait(value = PSI001_S050_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 40) +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 40) +public interface PSI001_S050_PreContractualInformationPrintedPage extends WebFlow { + String PSI001_S050_PAGE_LABEL_XPATH = "//div[text()='PSI001_S050']"; + String CONTINUE_BUTTON = "PSI001_S050_B002"; + + @Click(CONTINUE_BUTTON) + PSI001_S051_DraftContractCopyPage continueToPrintCopyOfContractProposalPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/PSI001_S053_PrintCopyOfSuccessfulContractProposalPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/PSI001_S053_PrintCopyOfSuccessfulContractProposalPage.java new file mode 100644 index 0000000..9bf2613 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/requests/PSI001_S053_PrintCopyOfSuccessfulContractProposalPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.pages.requests; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.VDB001_S001_SecondBankerJoiningPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.requests.PSI001_S053_PrintCopyOfSuccessfulContractProposalPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface PSI001_S053_PrintCopyOfSuccessfulContractProposalPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[text()='PSI001_S053']"; + String CONTINUE_BUTTON = "PSI001_S053_B002"; + + @Click(CONTINUE_BUTTON) + VDB001_S001_SecondBankerJoiningPage clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/CIF013_OBR001_EmployeeClientPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/CIF013_OBR001_EmployeeClientPage.java new file mode 100644 index 0000000..3719109 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/CIF013_OBR001_EmployeeClientPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.search; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.search.CIF013_OBR001_EmployeeClientPage.PAGE_ID_XPATH; + +@Wait(value = PAGE_ID_XPATH, by = Lookup.XPATH) +public interface CIF013_OBR001_EmployeeClientPage extends WebFlow { + + String PAGE_ID_XPATH = "//div[text()='CIF013_OBR001_004_(S010)']"; + String CONTINUE_BUTTON = "OBR001_S001_B003"; + + @Click(value = CONTINUE_BUTTON) + HKO101_S001_MainClientPage clickContinueToCifMainPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/CIF013_S002_ClientNotFoundPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/CIF013_S002_ClientNotFoundPage.java new file mode 100644 index 0000000..8b6d99f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/CIF013_S002_ClientNotFoundPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.banka.pages.search; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF049_OBR001_001_ClientFilledOnlineRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.SCN001_S001_IdDocumentsCopy; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF001_S003_CreateNewCompanyCifPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF069_S001_CreateNewAcceleratedCifPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.search.CIF013_S002_ClientNotFoundPage.CIF013_S002_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.search.CIF013_S002_ClientNotFoundPage.CREATE_NEW_CLIENT_BUTTON; + +@Wait(value = CIF013_S002_PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(CREATE_NEW_CLIENT_BUTTON) +public interface CIF013_S002_ClientNotFoundPage extends WebFlow { + String CIF013_S002_PAGE_LABEL_XPATH = "//div[text()='CIF013_S002']"; + String CREATE_NEW_CLIENT_BUTTON = "CIF013_S002_B001"; + String CREATE_ACCELERATED_CLIENT_BUTTON = "CIF013_S002_B006"; + + @Click(CREATE_NEW_CLIENT_BUTTON) + SCN001_S001_IdDocumentsCopy clickCreateNewCustomer(); + + @Click(CREATE_NEW_CLIENT_BUTTON) + SCN001_S001_IdDocumentsCopy clickCreateNewCustomerOnIdDocumentsCopy(); + + @Click(CREATE_NEW_CLIENT_BUTTON) + CIF049_OBR001_001_ClientFilledOnlineRequestPage clickCreateNewCustomerOnlineRequest(); + + @Click(CREATE_NEW_CLIENT_BUTTON) + CIF001_S003_CreateNewCompanyCifPage clickCreateNewCompany(); + + @Click(CREATE_ACCELERATED_CLIENT_BUTTON) + CIF069_S001_CreateNewAcceleratedCifPage clickCreateAcceleratedFop(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/HLO001_S001_ClientSearchPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/HLO001_S001_ClientSearchPage.java new file mode 100644 index 0000000..b236036 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/HLO001_S001_ClientSearchPage.java @@ -0,0 +1,145 @@ +package cz.moneta.test.dsl.ufo.banka.pages.search; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.UfoBankaPageFlow; +import cz.moneta.test.dsl.ufo.banka.pages.loans.VER013_S001_SecondSignatureSearchPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.VER018_S001_SecondBankerVerificationConfirmPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PKU001_S002_CreatePaymentOrderPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.UHK002_S001_CreateBankBookPayment; +import cz.moneta.test.dsl.ufo.banka.pages.menu.vertical.VerticalMenu; +import cz.moneta.test.dsl.ufo.banka.pages.po.ZAS003_S001_StatutoryAuthorityEvidencePage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL002_S003_ListOfSmoothPaymentsForVerificationPage; +import cz.moneta.test.dsl.ufo.common.landing.ApplicationSelectPage; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage.HLO001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage.SEARCH_BY_RC_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage.SEARCH_TERM_INPUT; + +@Wait(value = HLO001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 120) +@Wait(value = {SEARCH_TERM_INPUT, SEARCH_BY_RC_BUTTON}, waitSecondsForElement = 120) +@Wait(explicitWaitSeconds = 1) +public interface HLO001_S001_ClientSearchPage extends UfoBankaPageFlow, VerticalMenu, StoreAccessor { + String HLO001_S001_PAGE_LABEL_XPATH = "//div[text()='HLO001_S001']"; + String SEARCH_TERM_INPUT = "HLO001_S001_E001"; + String SEARCH_BY_PRODUCT_BUTTON = "HLO001_S001_B002"; + String SEARCH_BY_CIF_BUTTON = "HLO001_S001_B005"; + String SEARCH_BY_RC_BUTTON = "HLO001_S001_B006"; + String SEARCH_BY_RC_RADIO_XPATH = "//td[text()='Rodné číslo']"; + String SEARCH_BY_ICO_RADIO = "HLO001_S001_G001-3"; + String SEARCH_BY_CARD_RADIO = "HLO001_S001_G001-6"; + String CLIENT_BUTTON = "HLO001_S001_N010"; + String PRODUCT_BUTTON = "HLO001_S001_N011"; + String SKIP_PAGE_BUTTON = "ZAS003_S001_B004"; + String CREATE_PAYMENT_ORDER = "HLO001_S001_S008"; + String CALCULATORS_BUTTON = "HLO001_S001_S016"; + String LOGIN_MENU_BUTTON = "HLO001_S001_N024"; + String SECOND_SIGNATURE_BUTTON = "XXX100_T001_B012"; + String BANKER_NAME_LABEL_XPATH = "//div[@id='XXX100_T001_L001']/b"; + String BANKER_NAME = "BANKER_NAME"; + String BANK_BOOK_BUTTON = "HLO001_S001_I043"; + String BILLING_ON_BANK_BOOK_BUTTON = "HLO001_S001_I041"; + String HISTORY_SEARCHED_CLIENTS_TABLE = "HLO001_S001_FB001"; + String CLOSE_HISTORY_BUTTON = "HLO001_S001_X043"; + String VERIFICATION_BUTTON = "HLO001_S001_N055"; + String VERIFICATION_OF_LOAN_BUTTON = "HLO001_S001_I059"; + String SMOOTH_PAYMENTS_BUTTON = "HLO001_S001_S018"; + + @TypeInto(SEARCH_TERM_INPUT) + HLO001_S001_ClientSearchPage fillSearchTerm(String term); + + @Click(value = SEARCH_BY_PRODUCT_BUTTON, jsClick = true) + HLO001_S001_ClientSearchPageTransition clickSearchByProduct(); + + @Click(SEARCH_BY_RC_BUTTON) + HLO001_S001_ClientSearchPageTransition clickSearchByRc(); + + @Click(SEARCH_BY_CIF_BUTTON) + HLO001_S001_ClientSearchPageTransition clickSearchByCif(); + + @CustomAction + default HKO101_S001_MainClientPage clickIcoRadioAndContinueToMainClientPageAndCloseAlertIfVisible() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> SEARCH_BY_ICO_RADIO); + endpoint.click(() -> CLIENT_BUTTON); + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(1); + } + return null; + } + + @Click(SEARCH_BY_ICO_RADIO) + @Click(CLIENT_BUTTON) + HLO001_S001_ClientSearchPageTransition searchByIco(); + + @Click(SEARCH_BY_CARD_RADIO) + @Click(PRODUCT_BUTTON) + HLO001_S001_ClientSearchPageTransition searchByCard(); + + @Click(SEARCH_BY_ICO_RADIO) + @Click(CLIENT_BUTTON) + @Click(SKIP_PAGE_BUTTON) + HLO001_S001_ClientSearchPageTransition searchByLegalEntityIco(); + + @Click(CALCULATORS_BUTTON) + KAL001_S001_CalculatorsPage clickCalculators(); + + @Click(LOGIN_MENU_BUTTON) + ApplicationSelectPage clickLoginMenu(); + + @Click(CLIENT_BUTTON) + HLO001_S001_ClientSearchPageTransition clickSearchClient(); + + @CustomAction + default VER013_S001_SecondSignatureSearchPage clickSecondSignature() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class, Harness.getSecondBankerToken()); + endpoint.click(() -> SECOND_SIGNATURE_BUTTON); + endpoint.focusToNewPopup(20); + return null; + } + + @Click(value = VERIFICATION_BUTTON, andWait = @Wait(value = VERIFICATION_OF_LOAN_BUTTON, until = Until.VISIBLE)) + @Click(VERIFICATION_OF_LOAN_BUTTON) + VER018_S001_SecondBankerVerificationConfirmPage clickVerificationLoan(); + + @Click(value = VERIFICATION_BUTTON, andWait = @Wait(value = SMOOTH_PAYMENTS_BUTTON, until = Until.VISIBLE)) + @Click(SMOOTH_PAYMENTS_BUTTON) + ZPL002_S003_ListOfSmoothPaymentsForVerificationPage clickVerificationSmoothPayments(); + + @StoreElementContent(storeKey = BANKER_NAME, value = BANKER_NAME_LABEL_XPATH, by = Lookup.XPATH) + HLO001_S001_ClientSearchPage storeBankerName(); + + @CustomAction + default HLO001_S001_ClientSearchPage globalStoreBankerName(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + harness.storeGlobal(BANKER_NAME, BankaUtils.formatSecondBankerName(endpoint.getText(BANKER_NAME_LABEL_XPATH, Lookup.XPATH))); + return null; + } + + @CheckElementPresent(HLO001_S001_PAGE_LABEL_XPATH) + HLO001_S001_ClientSearchPage assertPageId(); + + @Click(SEARCH_BY_ICO_RADIO) + @Click(CLIENT_BUTTON) + ZAS003_S001_StatutoryAuthorityEvidencePage clickIcoRadioAndContinueToStatutoryAuthorityEvidencePage(); + + @Click(CREATE_PAYMENT_ORDER) + PKU001_S002_CreatePaymentOrderPage clickOnCreatePaymentOrder(); + + @Click(value = BANK_BOOK_BUTTON, andWait = @Wait(value = BILLING_ON_BANK_BOOK_BUTTON, until = Until.VISIBLE)) + @Click(BILLING_ON_BANK_BOOK_BUTTON) + UHK002_S001_CreateBankBookPayment clickOnBillingOnBankBook(); + + @CustomAction + default HLO001_S001_ClientSearchPage closeSearchedHistoryIfVisible() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(3, HISTORY_SEARCHED_CLIENTS_TABLE, Lookup.ID)) { + endpoint.click(() -> CLOSE_HISTORY_BUTTON); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/HLO001_S001_ClientSearchPageTransition.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/HLO001_S001_ClientSearchPageTransition.java new file mode 100644 index 0000000..f804e2e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/HLO001_S001_ClientSearchPageTransition.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.ufo.banka.pages.search; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.ZAS003_S001_ChooseLegalRepresentativePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.HPO001_S001_CurrentAccountDetailsPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface HLO001_S001_ClientSearchPageTransition extends WebFlow, StoreAccessor { + + CIF013_S002_ClientNotFoundPage onClientNotFound(); + + HKO101_S001_MainClientPage onClientDetailPage(); + + CIF013_OBR001_EmployeeClientPage onEmployeeClientPage(); + + ZAS003_S001_ChooseLegalRepresentativePage onChooseLegalRepresentative(); + + HPO001_S001_CurrentAccountDetailsPage onCurrentAccountDetailsPage(); + + @CustomAction + default HKO101_S001_MainClientPage onClientDetailPageCloseAlertIfVisible() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(1); + } + return null; + } + + OBR003_S001_ClientContractSignPage onOpFoundPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/KAL001_S001_CalculatorsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/KAL001_S001_CalculatorsPage.java new file mode 100644 index 0000000..c769966 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/KAL001_S001_CalculatorsPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.banka.pages.search; + +import cz.moneta.test.dsl.ufo.banka.UfoBankaPageFlow; +import cz.moneta.test.dsl.ufo.banka.pages.menu.vertical.VerticalMenu; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ufo.banka.pages.search.KAL001_S001_CalculatorsPage.EXPRES_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.search.KAL001_S001_CalculatorsPage.KAL001_S001_PAGE_LABEL_XPATH; + +@Wait(value = KAL001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90) +@Wait(value = {EXPRES_BUTTON}, waitSecondsForElement = 90) +public interface KAL001_S001_CalculatorsPage extends UfoBankaPageFlow, VerticalMenu { + String KAL001_S001_PAGE_LABEL_XPATH = "//div[text()='KAL001_S001']"; + String EXPRES_BUTTON = "KAL001_S001_B024"; + + @Click(EXPRES_BUTTON) + KAL003_S006_ExpresCalculator chooseExpresCalculator(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/KAL003_S006_ExpresCalculator.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/KAL003_S006_ExpresCalculator.java new file mode 100644 index 0000000..cd705f0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/search/KAL003_S006_ExpresCalculator.java @@ -0,0 +1,52 @@ +package cz.moneta.test.dsl.ufo.banka.pages.search; + +import cz.moneta.test.dsl.ufo.banka.UfoBankaPageFlow; +import cz.moneta.test.dsl.ufo.banka.pages.menu.vertical.VerticalMenu; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ufo.banka.pages.search.KAL003_S006_ExpresCalculator.CALCULATE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.search.KAL003_S006_ExpresCalculator.KAL003_S006_PAGE_LABEL_XPATH; + +@Wait(value = KAL003_S006_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 90) +@Wait(value = CALCULATE_BUTTON, waitSecondsForElement = 90) +public interface KAL003_S006_ExpresCalculator extends UfoBankaPageFlow, VerticalMenu { + String KAL003_S006_PAGE_LABEL_XPATH = "//div[text()='KAL003_S006']"; + String CALCULATE_BUTTON = "KAL003_S006_B002"; + String NAME_INPUT = "KAL003_S006_E006"; + String CLIENT_TYPE_SELECT = "KAL003_S006_C003"; + String PRODUCT_RADIO = "KAL003_S006_R001_5099003"; + String AMOUNT_INPUT = "KAL003_S006_E001"; + String NUMBER_OF_PAYMENTS_SELECT = "KAL003_S006_C002"; + String INSURANCE_SELECT = "KAL003_S006_C001"; + String LOAN_FEE_CALCULATION_XPATH = "//table[@id='KAL003_S006_G001_UfoTable']//td[text()='Poplatek za poskytnutí půjčky']"; + + @Click(CALCULATE_BUTTON) + KAL003_S006_ExpresCalculator clickCalculate(); + + @TypeInto(NAME_INPUT) + KAL003_S006_ExpresCalculator fillName(String name); + + @Select(CLIENT_TYPE_SELECT) + KAL003_S006_ExpresCalculator selectClientType(String clientType); + + @Click(value = PRODUCT_RADIO, jsClick = true) + KAL003_S006_ExpresCalculator clickProduct(); + + @TypeInto(AMOUNT_INPUT) + KAL003_S006_ExpresCalculator fillAmount(String amount); + + @Select(NUMBER_OF_PAYMENTS_SELECT) + KAL003_S006_ExpresCalculator selectNumberOfPayments(String numberOfPayments); + + @Select(INSURANCE_SELECT) + KAL003_S006_ExpresCalculator selectInsurance(String insurance); + + @CheckElementPresent(value = LOAN_FEE_CALCULATION_XPATH, by = Lookup.XPATH) + KAL003_S006_ExpresCalculator checkLoanFeeCalculated(); +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/term/deposit/RTV001_S001_TermDepositPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/term/deposit/RTV001_S001_TermDepositPage.java new file mode 100644 index 0000000..d300409 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/term/deposit/RTV001_S001_TermDepositPage.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.ufo.banka.pages.term.deposit; + +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.SIF004_S001_ContactSettingsForSendingEmailsPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.term.deposit.RTV001_S001_TermDepositPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = RTV001_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +@Wait(SEND_BUTTON) +public interface RTV001_S001_TermDepositPage extends WebFlow { + String RTV001_S001_PAGE_LABEL_XPATH = "//div[text()='RTV001_S001']"; + + String SEND_BUTTON = "RTV001_S001_B001"; + + String PRODUCT_SELECT = "RTV001_S001_C001"; + String DEPOSIT_ACCOUNT_SELECT = "RTV001_S001_C002"; + String FIRST_DEPOSIT_ACCOUNT_XPATH_SELECT = "//*[@id='RTV001_S001_C002']/option[2]"; + String INTEREST_ACCOUNT_SELECT = "RTV001_S001_C003"; + String FIRST_INTEREST_ACCOUNT_XPATH_SELECT = "//*[@id='RTV001_S001_C003']/option[2]"; + String STATEMENT_PERIODICITY_SELECT = "RTV001_S001_C006"; + String STATEMENT_DISTRIBUTION_SELECT = "RTV001_S001_C007"; + String CORRESPONDENCE_ADDRESS_SELECT = "RTV001_S001_C008"; + String ACCOUNT_WHEN_FOUNDED_SELECT = "RTV001_S001_C009"; + String FIRST_ACCOUNT_WHEN_FOUNDED_XPATH_SELECT = "//*[@id='RTV001_S001_C009']/option[2]"; + String PERIOD_SELECT = "RTV001_S001_C020"; + + String INITIAL_AMOUNT_INPUT = "RTV001_S001_E001"; + + @Select(value = PRODUCT_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 80)) + RTV001_S001_TermDepositPage selectProduct(String termDepositProduct); + + @TypeInto(INITIAL_AMOUNT_INPUT) + RTV001_S001_TermDepositPage fillInitialAmount(String initialAmount); + + @Select(value = PERIOD_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 80)) + RTV001_S001_TermDepositPage selectPeriod(String termDepositPeriod); + + @Click(ACCOUNT_WHEN_FOUNDED_SELECT) + @Click(value = FIRST_ACCOUNT_WHEN_FOUNDED_XPATH_SELECT, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 80)) + RTV001_S001_TermDepositPage selectFirstAccountWhenFounded(); + + @Click(DEPOSIT_ACCOUNT_SELECT) + @Click(value = FIRST_DEPOSIT_ACCOUNT_XPATH_SELECT, by = Lookup.XPATH) + RTV001_S001_TermDepositPage selectFirstDepositAccount(); + + @Click(INTEREST_ACCOUNT_SELECT) + @Click(value = FIRST_INTEREST_ACCOUNT_XPATH_SELECT, by = Lookup.XPATH) + RTV001_S001_TermDepositPage selectFirstInterestAccount(); + + @Select(value = STATEMENT_DISTRIBUTION_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 60)) + RTV001_S001_TermDepositPage selectStatementDistribution(String statementDistribution); + + @Select(STATEMENT_PERIODICITY_SELECT) + RTV001_S001_TermDepositPage selectStatementPeriodicity(String statementPeriodicity); + + @Select(CORRESPONDENCE_ADDRESS_SELECT) + RTV001_S001_TermDepositPage selectCorrespondenceAddress(String correspondenceAddress); + + @Click(SEND_BUTTON) + SIF004_S001_ContactSettingsForSendingEmailsPage clickSendToContactSettingsForSendingEmailsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/term/deposit/RTV001_S004_FoundingDepositInformationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/term/deposit/RTV001_S004_FoundingDepositInformationPage.java new file mode 100644 index 0000000..de350bb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/term/deposit/RTV001_S004_FoundingDepositInformationPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.banka.pages.term.deposit; + +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.banka.pages.term.deposit.RTV001_S004_FoundingDepositInformationPage.*; + +@Wait(value = RTV001_S004_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface RTV001_S004_FoundingDepositInformationPage extends WebFlow { + String RTV001_S004_PAGE_LABEL_XPATH = "//div[text()='RTV001_S004']"; + String SAVE_BUTTON = "RTV001_S004_B002"; + + @Click(SAVE_BUTTON) + BPP001_S001_DocumentationSendPage clickSaveToDocumentationSendPage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/term/deposit/RTV003_S001_DepositOfPrincipalTypePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/term/deposit/RTV003_S001_DepositOfPrincipalTypePage.java new file mode 100644 index 0000000..b21e038 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/pages/term/deposit/RTV003_S001_DepositOfPrincipalTypePage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.banka.pages.term.deposit; + +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.term.deposit.RTV003_S001_DepositOfPrincipalTypePage.*; + +@Wait(value = RTV003_S001_PAGE_LABEL_XPATH, by = Lookup.XPATH, waitSecondsForElement = 60) +public interface RTV003_S001_DepositOfPrincipalTypePage extends WebFlow, StoreAccessor { + String RTV003_S001_PAGE_LABEL_XPATH = "//div[text()='RTV003_S001']"; + + String PARENT_ACCOUNT_BUTTON = "RTV003_S001_B001"; + String IN_CASH_BUTTON = "RTV003_S001_B002"; + String FROM_DIFFERENT_BANK_BUTTON = "RTV003_S001_B003"; + + @CustomAction + default PSP004_S001_PrintPage clickParentAccountAndDismissAlertIfPresent() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> PARENT_ACCOUNT_BUTTON); + if (endpoint.isAlertPresent(3)) { + endpoint.dismissAlert(1); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/BankaTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/BankaTasks.java new file mode 100644 index 0000000..0e8fe9d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/BankaTasks.java @@ -0,0 +1,163 @@ +package cz.moneta.test.dsl.ufo.banka.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.cards.CardsOnboardingTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.cards.CardsServicingTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.clients.*; +import cz.moneta.test.dsl.ufo.banka.tasks.expres.ExpressTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.insurance.InsuranceGroupTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.insurance.InsurancePpiPlusTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.insurance.InsurancePpiTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.insurance.InsuranceIndividualTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.payment.PaymentTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.products.*; + +public class BankaTasks { + + private final Harness harness; + + public BankaTasks(Harness harness) { + this.harness = harness; + } + + public LoginTasks login() { + return new LoginTasks(harness); + } + + public NewClientTasks newClient() { + return new NewClientTasks(harness); + } + + public NewFopClientTasks newFopClient() { + return new NewFopClientTasks(harness); + } + + public NewAcceleratedFopClientTasks newAcceleratedFopClientTasks() { + return new NewAcceleratedFopClientTasks(); + } + + public NewPoClientTasks newPoClient() { + return new NewPoClientTasks(harness); + } + + public NewProductTasks newProduct() { + return new NewProductTasks(harness); + } + + public NewPackagedProductTasks newPackagedProductTasks() { + return new NewPackagedProductTasks(harness); + } + + public ContactAddressTasks contactAddress() { + return new ContactAddressTasks(harness); + } + + public NewLoanApplicationTasks newLoanApplication() { + return new NewLoanApplicationTasks(harness); + } + + public MainApplicantInformationTasks mainApplicantInformation() { + return new MainApplicantInformationTasks(harness); + } + + public ExpressTasks expresTasks() { + return new ExpressTasks(harness); + } + + public SearchTasks search() { + return new SearchTasks(harness); + } + + public NewCurrentAccountTasks newCurrentAccountTasks() { + return new NewCurrentAccountTasks(); + } + + public NewSmeProductTasks newSmeProducts() { + return new NewSmeProductTasks(harness); + } + + public InsurancePpiTasks newInsurancePpiTasks() { + return new InsurancePpiTasks(); + } + + public InsurancePpiPlusTasks newInsurancePpiPlusTasks() { + return new InsurancePpiPlusTasks(); + } + + public InsuranceGroupTasks newInsuranceGroupTasks() { + return new InsuranceGroupTasks(); + } + + public InsuranceIndividualTasks newInsuranceIndividualTasks() { + return new InsuranceIndividualTasks(harness); + } + + public CardsServicingTasks cardsServicing() { + return new CardsServicingTasks(harness); + } + + public CardsOnboardingTasks cardsOnboarding() { + return new CardsOnboardingTasks(harness); + } + + public FlexiCreditTasks flexiCreditTasks() { + return new FlexiCreditTasks(harness); + } + + public NewConsolidationTasks newConsolidation() { + return new NewConsolidationTasks(harness); + } + + public NewSmeAutomatFopTasks newSmeAutomatFopTasks() { + return new NewSmeAutomatFopTasks(harness); + } + + public NewSmeAutomatPoTasks newSmeAutomatPoTasks() { + return new NewSmeAutomatPoTasks(harness); + } + + public NewSmeAutomatSubTasks newSmeAutomatSubTasks() { + return new NewSmeAutomatSubTasks(harness); + } + + public IncomeModuleTasks newIncomeModuleTasks() { + return new IncomeModuleTasks(); + } + + public DebitCardTasks newDebitCard() { + return new DebitCardTasks(harness); + } + + public TermDepositTasks newTermDeposit() { + return new TermDepositTasks(); + } + + public CreateStatutoryAuthority newStatutoryAuthority() { + return new CreateStatutoryAuthority(harness); + } + + public OneClickTasks oneClick() { + return new OneClickTasks(harness); + } + + public RetailHunterTasks retailHunter() { + return new RetailHunterTasks(harness); + } + + public SharedTasks sharedTasks() { + return new SharedTasks(); + } + + public ClipDeclipFopTasks clipDeclipFop() { + return new ClipDeclipFopTasks(harness); + } + + public ClipDeclipPoTasks clipDeclipPo() { + return new ClipDeclipPoTasks(harness); + } + + public PaymentTasks payment() { + return new PaymentTasks(harness); + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/ContactAddressTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/ContactAddressTasks.java new file mode 100644 index 0000000..ad61458 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/ContactAddressTasks.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; + +import java.util.function.Function; + +public class ContactAddressTasks { + + private final Harness harness; + + public ContactAddressTasks(Harness harness) { + this.harness = harness; + } + + public Function createContactAddress() { + return start -> start.clickAddContactAddressAndStatementsDistribution() + .clickUseResidencyAsContactAndConfirm() + .clickSave() + .onDistributionStatementsPage() + .clickContinue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/FlexiCreditTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/FlexiCreditTasks.java new file mode 100644 index 0000000..8dd7774 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/FlexiCreditTasks.java @@ -0,0 +1,177 @@ +package cz.moneta.test.dsl.ufo.banka.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.OPN008_S001_ExpressSignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.ONC001_S001_NewFlexikreditPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.ONC001_S001_NewFlexikreditPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.requests.PSI001_S050_PreContractualInformationPrintedPage; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewProductTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.FLEXIKREDIT; + +public class FlexiCreditTasks { + + private final Harness harness; + private NewProductTasks productTasks; + + public FlexiCreditTasks(Harness harness) { + this.harness = harness; + this.productTasks = harness.tasks().ufo().banka().newProduct(); + } + + public Function createNewFlexiCreditApplication(NonClient applicant, int loanAmount, HCisAllStavZadosti expectedAppStat) { + return start -> start + .then(createApplicationToApplicantPage(applicant, loanAmount)) + .clickContinue() + .onPrintPage() + .closePrintWindow() + .onSignaturePage() + .then(productTasks.finishLoanApplication()) + .onFlexikreditScoringResultPage() + .then(waitForStatusAndLogData(expectedAppStat.getValue())) + .clickEnd() + .onMainClientPage(); + } + + public Function createNewFlexiCreditApplicationFixedTerm(NonClient applicant, int loanAmount, HCisAllStavZadosti expectedAppStat) { + return start -> start + .then(createApplicationToApplicantPage(applicant, loanAmount)) + .fillEmploymentEndDate(DateUtils.getDateWithFormat(applicant.occupationEmploymentTillRaw(), "d.M.yyyy")) + .clickContinue() + .onSignaturePage() + .then(productTasks.finishLoanApplication()) + .onFlexikreditScoringResultPage() + .then(waitForStatusAndLogData(expectedAppStat.getValue())) + .clickEnd() + .onMainClientPage(); + } + + public Function createNewFlexiCreditApplicationWithPrefilledData(int amount, HCisAllStavZadosti expectedAppStat) { + return start -> start.createNewProduct(FLEXIKREDIT) + .onFlexikreditPage() + .then(fillFlexikreditPage(amount)) + .onApplicantPage() + .clickContinue() + .onSignaturePage() + .then(productTasks.finishLoanApplication()) + .onFlexikreditScoringResultPage() + .then(waitForStatusAndLogData(expectedAppStat.getValue())) + .clickEnd() + .onMainClientPage(); + } + + private Function waitForStatusAndLogData(String expectedAppStat) { + return start -> start.waitForStatusAndRefresh(expectedAppStat) + .storeAppId() + .storeAppKey() + .storeAppStat(); + } + + private Function fillFlexikreditPage(int amount) { + return start -> start.fillAmount(amount) + .clickNoPromoIfVisible() + .clickSend(); + } + + public Function createAccountsForNewFlexiCreditWithExistingBuAndIbUntilSignature(int amount, String secondBankerLastName) {//uses application created in the same test + return createAccountsForNewFlexiCreditWithExistingBuAndIbUntilSignature(harness.get(NFL006_S001_FlexikreditScoringResultPage.APP_ID_STORE), amount, secondBankerLastName); + } + + public Function createAccountsForNewFlexiCreditWithExistingBuAndIbUntilSignature(String applicationId, int amount, String secondBankerLastName) { + return start -> start.then(harness.tasks().ufo().banka().newProduct().showApplicationDetails(applicationId)) + .then(createAccountsWithExistingBUandIBUntilSignature(amount, secondBankerLastName)); + } + + public Function createAccountsForNewFlexiCreditWithExistingBuAndIbUntilSignatureWithoutAmountSelect(String secondBankerLastName) {//uses application created in the same test + return createAccountsForNewFlexiCreditWithExistingBuAndIbUntilSignatureWithoutAmountSelect(harness.get(NFL006_S001_FlexikreditScoringResultPage.APP_ID_STORE), secondBankerLastName); + } + + public Function createAccountsForNewFlexiCreditWithExistingBuAndIbUntilSignatureWithoutAmountSelect(String applicationId, String secondBankerLastName) { + return start -> start.then(harness.tasks().ufo().banka().newProduct().showApplicationDetails(applicationId)) + .then(createAccountsUntilSignatureWithoutAmountSelect(secondBankerLastName)); + } + + private Function createAccountsWithExistingBUandIBUntilSignature(int amount, String secondBankerLastName) { + return start -> start + .onFlexiCreditScoringResultPage() + .clickFoundationPrintContractButton() + .onSelectingApprovedVariantsPage() + .clickToLoanAmountRadioButton() + .typeIntoLoanAmount(String.valueOf(amount)) + .clickSelect() + .then(finishAccountCreationUntilSignature(secondBankerLastName)); + } + + private Function finishAccountCreationUntilSignature(String secondBankerLastName) { + return start -> start + .continueToPrintCopyOfContractProposalPage() + .clickContinue() + .onSecondBankerJoiningPage() + .fillSurnameInput(secondBankerLastName) + .clickSearch() + .selectFirstName() + .clickContinue() + .onSignerSelectionPage() + .clickContinue() + .onSpecialConditionsPage() + .clickContinueButton() + .continueToContractDocumentationPage() + .clickContinue() + .onExpressSignaturePage() + .clickApplicantCheckbox() + .clickYesAndDismissAlert(); + } + + private Function createAccountsUntilSignatureWithoutAmountSelect(String secondBankerLastName) { + return start -> start + .onFlexiCreditScoringResultPage() + .clickFoundationPrintContractButton() + .onPreContractualInformationPrintedPage() + .then(finishAccountCreationUntilSignature(secondBankerLastName)); + } + + public Function finishAccountCreation(HCisAllStavZadosti expectedAppStat) { + return start -> start.clickCheck() + .clickContinue() + .waitForLoader() + .onContractSignedPage() + .clickContinueButton() + .onFlexikreditScoringResultPage() + .waitForStatusAndRefresh(expectedAppStat.getValue()) + .clickEnd() + .onListOfRequestsPage() + .clickBackToMainClientPage(); + } + + public Function createDeclipApplication(int newLoanAmount) { + return start -> start + .clickActiveProduct("FLEXIKREDIT") + .onFlexiCreditDetailPage() + .clickDeclipButton() + .fillLoanAmount(newLoanAmount) + .clickSendButton() + .clickEnd() + .onFlexiCreditDetailPage() + .clickBackButton(); + } + + private Function createApplicationToApplicantPage(NonClient applicant, int loanAmount) { + return start -> start + .createNewProduct(FLEXIKREDIT) + .onFlexikreditPage() + .then(fillFlexikreditPage(loanAmount)) + .onIdSelectionPage() + .then(productTasks.selectIDs()) + .then(productTasks.fillApplicantPage(applicant, false)); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/IncomeModuleTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/IncomeModuleTasks.java new file mode 100644 index 0000000..b4e65fa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/IncomeModuleTasks.java @@ -0,0 +1,124 @@ +package cz.moneta.test.dsl.ufo.banka.tasks; + +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS070_S001_ScanDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.income.Extend_FinancialIncomePageForPo; +import cz.moneta.test.dsl.ufo.banka.pages.income.FIN001_S001_FinancialIncomeSummaryPage; +import cz.moneta.test.dsl.ufo.banka.pages.income.FIN002_S002_FinancialIncomePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; + +import java.util.function.Function; + +public class IncomeModuleTasks { + public Function fillIncomeModuleFop(String lastYear, String yearBeforeLast) { + return start -> start + .openIncomeModule() + .clickAddFinancialStatement() + .then(fillTaxReturnDataFop(lastYear)) + .then(scanDocuments()) + .clickAddFinancialStatement() + .then(fillTaxReturnDataFop(yearBeforeLast)) + .then(scanDocuments()) + .backToMainClientPage(); + } + + public Function fillIncomeModulePo(String lastYear, String yearBeforeLast) { + return start -> start + .openIncomeModule() + .then(fillTaxReturnDataPo(lastYear)) + .then(scanDocuments()) + .then(fillTaxReturnDataPo(yearBeforeLast)) + .then(scanDocuments()) + .backToMainClientPage(); + } + + public Function fillTaxReturnDataPo(String incomeDate) { + return start -> start + .clickAddFinancialStatement() + .clickPaperFormForPo() + .clickDataBalanceSheetRadio() + .clickVerified() + .fillIncomeDate(incomeDate) + .onNewFinancialIncomePo() + .then(fillAssets()) + .then(fillLiabilities()) + .then(fillProfitLossStatements()) + .clickContinue() + .fillTaxToPay("0") + .clickOnIncomeModuleLabel() + .continueToScanDocumentsPage(); + } + + public Function fillAssets() { + return start -> start + .fillUnderOrOverpayment("0") + .fillSubscribedCapital("2000000") + .fillCurrentAssets("2000000") + .fillLongtermProperty("1000000") + .fillAssetAccruals("1000000"); + } + + public Function fillLiabilities() { + return start -> start + .fillOwnCapital("1000000") + .fillReserves("1000000") + .fillLongtermObligations("1000000") + .fillShorttermObligations("1000000") + .fillAccruedLiabilitiesCiii("1000000") + .fillAccruedLiabilities("1000000"); + } + + public Function fillProfitLossStatements() { + return start -> start + .fillProductsServicesRevenue("1000000") + .fillGoodsRevenue("0") + .fillPerformanceConsumption("0") + .fillStorageChange("0") + .fillActivationInput("0") + .fillPersonalCosts("0") + .fillOperatingAreaEditingValues("0") + .fillOtherOperatingIncome("1000000") + .fillOtherOperatingCosts("0") + .fillOperatingProfit("2000000") + .fillEconomyResultAfterTax("500000") + .fillSharesTransferToPartners("0") + .fillAccountingPeriodEconomyResult("500000"); + } + + public Function fillTaxReturnDataFop(String incomeDate) { + return start -> start + .selectTypeOfIncome("Výdaje % z příjmů") + .clickPaperFormForFop() + .fillIncomeDate(incomeDate) + .selectNumberOfMonths("12") + .clickTaxAdvisorNo() + .onNewFinancialIncomeFop() + .fillAllEmployersIncomeSummary("0") + .fillMandatoryInsuranceSummary("0") + .fillTaxPayedAbroad("0") + .fillPartialTaxBase("0") + .fillPartialTaxBaseOrLoss("0") + .fillTaxAfterDiscount("0") + .fillTaxToPay("0") + .fillIncome("2000000") + .fillExpensesRelatedToIncome("500000") + .fillDifferenceIncomeExpenditure("1500000") + .fillPartialTaxBaseLoss("0") + .fillIncomeFromRent("0") + .fillCosts("0") + .fillIncomeCostsDifferenceBeforeTax("0") + .clickVerified() + .clickContinue() + .fillTaxAfterDiscount("0") + .fillTaxToPay("0") + .clickOnIncomeModuleLabel() + .continueToScanDocumentsPage(); + } + + public Function scanDocuments() { + return start -> start + .uploadAndAssignFakeDP() + .clickContinue() + .onFinancialIncomeSummaryPage(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/LoginTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/LoginTasks.java new file mode 100644 index 0000000..b4d361f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/LoginTasks.java @@ -0,0 +1,80 @@ +package cz.moneta.test.dsl.ufo.banka.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.common.authentication.UfoLoginPage; +import cz.moneta.test.dsl.ufo.common.landing.ApplicationSelectPage; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +public final class LoginTasks { + + private final Harness harness; + + public LoginTasks(Harness harness) { + this.harness = harness; + } + + public Function asBanker() { + Credentials credentials = AuthSupport.getCredentials(banker, harness); + return this.withCredentials(credentials); + } + + public Function withCredentialsAndTurnOffSignpad(Credentials credentials) { + return start -> start + .then(withCredentials(credentials)) + .then(turnSignpadOff()); + } + + public Function withCredentials(Credentials credentials) { + return start -> start.then(loginWithCredentials(credentials)) + .selectUfoBankaAndContinue(); + } + + public Function withCredentialsAndSelectFirstOM(Credentials credentials) { + return start -> start.then(loginWithCredentials(credentials)) + .clickFirstOM() + .selectUfoBankaAndContinue(); + } + + public Function withCredentialsSecondBanker(Credentials credentials) { + return start -> start.then(loginWithCredentials(credentials)) + .clickContinue(); + } + + public Function withCredentialsSecondBankerAndSelectFirstOM(Credentials credentials) { + return start -> start.then(loginWithCredentials(credentials)) + .clickFirstOM() + .selectUfoBankaAndContinue(); + } + + public Function turnSignpadOff() { + return start -> start.closeDispositionWindowIfVisible() + .clickSignatureTemplates() + .turnSignpadOffWithReason("Turning signpad off from automated test"); + } + + public Function withCredentialsAndSelectOmByOrderAndTurnOffSignpad(Credentials credentials, int omOrder) { + return start -> start.then(loginWithCredentials(credentials)) + .selectOm(omOrder) + .selectUfoBankaAndContinue() + .then(turnSignpadOff()); + } + + public Function withCredentialsAndSelectFirstOmAndTurnOffSignpad(Credentials credentials) { + return start -> start.then(loginWithCredentials(credentials)) + .selectFirstOmIfPresent() + .selectUfoBankaAndContinue() + .then(turnSignpadOff()); + } + + private Function loginWithCredentials(Credentials credentials) { + return start -> start + .typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/MainApplicantInformationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/MainApplicantInformationTasks.java new file mode 100644 index 0000000..c73427a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/MainApplicantInformationTasks.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.ufo.banka.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.PopCheckboxes.AGE; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.PopCheckboxes.BIRTHNUMBER; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.PopCheckboxes.EMPLOYER_STAMP; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.PopCheckboxes.NO_DEPENDANTS; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.PopCheckboxes.SIGNED; + +public final class MainApplicantInformationTasks { + + private final Harness harness; + + public MainApplicantInformationTasks(Harness harness) { + this.harness = harness; + } + + public Function fillMainApplicantInformation(NonClient nonClient) { + return start -> (NEP002_S001_ApplicantPage) start + .fillOtherExpenses(nonClient.otherExpenses()) + .fillMonthlyPayments(nonClient.otherLoanPayments()) + .fillNetMonthlyIncome(nonClient.netMonthlyIncome()) + .fillHouseholdIncome(nonClient.homeIncome()) + .fillAllowances(nonClient.wageDeductions()) + .selectOccupation("manager/ředitel") + .clickTelcoYes() + .selectPOP("Potvrzení o příjmu") + .clickPopCheckbox(SIGNED) + .clickPopCheckbox(BIRTHNUMBER) + .clickPopCheckbox(NO_DEPENDANTS) + .clickPopCheckbox(AGE) + .clickPopCheckbox(EMPLOYER_STAMP) + .clickPoPContinue() + .clickContinue(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/NewConsolidationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/NewConsolidationTasks.java new file mode 100644 index 0000000..617fd20 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/NewConsolidationTasks.java @@ -0,0 +1,156 @@ +package cz.moneta.test.dsl.ufo.banka.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC003_S001_CommitmentsToConsolidationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.consolidation.UDC006_S001_ConsolidationScoringPage; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.PopCheckboxes.*; +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.CONSOLIDATION; +import static cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage.BANKER_NAME; + +public class NewConsolidationTasks { + + private final Harness harness; + + public NewConsolidationTasks(Harness harness) { + this.harness = harness; + } + + public Function createNewConsolidationRequestToScoring() { + return start -> start.createNewProduct(CONSOLIDATION) + .onConsolidationPage() + .typeIntoTotalLoanAmount("80000") + .typeIntoRequiredIncrease("20000") + .selectNumberOfInstallments("60") + .clickCalculationOfPaymentButton() + .clickContinueButtonToDocumentPage() + .selectIdCardRadio() + .selectDriverLicenceRadio() + .clickDocumentsCheckAndContinue() + .onCreditCardApplicantPage() + .selectMaritalStatusVerificationSource("údaj z OP") + .fillMobileNumberEmployment("420724282023") + .selectNoticePeriod("Ne") + .selectTrialPeriod("Ne") + .fillIncomeSourceCount(1) + .fillNetMonthlyIncome(60000) + .fillHouseholdIncome(60000) + .fillMonthlyPayments(0) + .fillAllowances(0) + .fillOtherExpenses(0) + .clickTelcoYes() + .selectOccupation("manager/ředitel") + .selectPOP("Potvrzení o příjmu") + .clickPopCheckbox(SIGNED) + .clickPopCheckbox(BIRTHNUMBER) + .clickPopCheckbox(NO_DEPENDANTS) + .clickPopCheckbox(AGE) + .clickPopCheckbox(EMPLOYER_STAMP) + .clickPoPContinue() + .clickContinue() + .onPromoCodePage() + .checkProductNotRecommended() + .clickWithoutRecommendation() + .onSignatureConfirmationPage() + .clickApplicantSignatureCheckbox() + .clickYes() + .onScanDocumentsPage() + .clickSkipButton() + .onCommitmentsToConsolidationPage(); + } + + public Function createNewConsolidationRequestAfterScoring(HCisAllStavZadosti expectedAppStat) { + return start -> start.clickAddSfCommitmentButton() + .selectInstallmentCompanyName("COFIDIS s.r.o.") + .selectCommitmentType("Úvěr") + .typeIntoAmountToBePaid(25000) + .typeIntoMonthlyInstallmentAmount(3000) + .clickAddButtonAndDismissPopupWindow() + .clickContinueButtonToConsolidationCommitmentsPage() + .clickContinueButtonToSigningConfirmationPage() + .clickConfirmCheckBox() + .clickYesButtonAndSendToApproval() + .waitForStatusAndRefresh(expectedAppStat.getValue()); + } + + public Function createNewConsolidationRequestConditionalAgreement(HCisAllStavZadosti expectedAppStat) { + return start -> start.clickConditionalAgreementButton() + .clickPreApprovedCombinationAndVariantsProposedButton() + .clickEstablishScoringButton() + .typeIntoTotalLoanAmount(80000) + .clickPaymentCalculationButton() + .clickContinueButtonToApplicantPage() + .fillIncomeSourceCount(1) + .fillNetMonthlyIncome(60000) + .fillHouseholdIncome(60000) + .fillMonthlyPayments(0) + .fillAllowances(0) + .fillOtherExpenses(0) + .clickTelcoYes() + .selectPOP("Potvrzení o příjmu") + .clickPopCheckbox(SIGNED) + .clickPopCheckbox(BIRTHNUMBER) + .clickPopCheckbox(NO_DEPENDANTS) + .clickPopCheckbox(AGE) + .clickPopCheckbox(EMPLOYER_STAMP) + .clickPoPContinue() + .clickContinue() + .onLoanConsolidationCommitmentsPage() + .clickRadioButtonAndEditButton() + .selectInstallmentCompanyName("COFIDIS s.r.o.") + .selectEvidenceOfCommitmentExistence("Smlouva o úvěru") + .typeIntoLoanAgreementNumber(123456) + .typeIntoLoanAccountForPayment(17225118) + .typeIntoBankCode("0100") + .selectProofOfRepayment("Výpis z běžného účtu") + .typeIntoAnnualInterestRate(8) + .typeIntoAmountToPay(4500) + .clickSaveButtonToConsolidationScoringPage() + .clickContinueToSignaturePage() + .clickApplicantSignatureCheckbox() + .clickYes() + .onScanDocumentsPage() + .clickSkipButtonAndStayOnPage() + .clickSkipButton() + .onScoringPage() + .continueToLoanConsolidationScoringPage() + .storeAppId() + .waitForStatusAndRefresh(expectedAppStat.getValue()); + } + + public Function createNewConsolidationAccountsFoundation() { + return start -> start.clickAccountFoundationButton() + .clickFirstVariant() + .clickSelect() + .onPreContractualInfromationPrintedPag() + .clickContinueButtonToDraftContractCopyPage() + .clickContinue() + .onSecondBankerJoiningPage() + .fillSurnameInput(harness.get(BANKER_NAME)) + .clickContinue() + .onLetterPrintPage() + .clickSendButton() + .clickOkButton() + .clickOkAndContinueToDocumentsScanPage() + .clickSkipButton() + .onApprovedConsolidationPrintPage() + .dismissPopupWindow() + .clickContinueButton() + .clickFirstSignerCheckbox() + .dismissPopupWindow(); + //pokračovat podpisem druhého bankéře + } + + public Function createNewConsolidationAccountsFoundationFinish(String status) { + return start -> start.clickControlButton() + .clickConfirmButton() + .clickContinueButton() + .onConsolidationScoringPage() + .checkStatus(status); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/NewLoanApplicationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/NewLoanApplicationTasks.java new file mode 100644 index 0000000..fe10292 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/NewLoanApplicationTasks.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.ufo.banka.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.VER017_S001_SecondBankerVerificationStatusPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.EXPRESS; + +public final class NewLoanApplicationTasks { + + private final Harness harness; + + public NewLoanApplicationTasks(Harness harness) { + this.harness = harness; + } + + public Function createNewLoanApplication(NonClient nonClient, int loanAmount, int numberOfInstallments) { + return start -> start.createNewProduct(EXPRESS) + .onExpressPage() + .fillAmount(loanAmount) + .selectNumberOfInstallments(numberOfInstallments) + .clickCalculateInstallment() + .clickContinue() + .onIdSelectionPage() + .selectIdCardRadio() + .selectPassportRadio() + .clickDocumentsCheckAndContinue() + .onCreditCardApplicantPage() + .then(harness.tasks().ufo().banka().mainApplicantInformation().fillMainApplicantInformation(nonClient)) + .onApplicationDataPageTwo() + .selectInsurance("Bez pojištění") + .clickSaveButton() + .onAddCodeOfRecommendedPersonPage() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onSignatureConfirmationPage() + .clickApplicantSignatureCheckbox() + .clickYes() + .onScanDocumentsPage() + .clickSkipButton() + .onMegaExpressScoringPage() + .waitForActiveCreateAccountButton() + .storeAppId() + .logAppState(); + } + + public Function finishExpressLoan() { + return start -> start + .clickReload() + .clickContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onSignContractPage() + .clickFirstSignerCheckbox() + .clickYesButtonToClientContractSignPage() + .clickLeftButton() + .onExpressScoringResultPage() + .waitForStatusAndRefresh("Úvěr načerpán"); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/SearchTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/SearchTasks.java new file mode 100644 index 0000000..3edfaa7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/SearchTasks.java @@ -0,0 +1,163 @@ +package cz.moneta.test.dsl.ufo.banka.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.CIF013_OBR001_EmployeeClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.CIF013_S002_ClientNotFoundPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPageTransition; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +public class SearchTasks { + + private final Harness harness; + + public SearchTasks(Harness harness) { + this.harness = harness; + } + + public Function findByIco(String ico) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(ico) + .searchByIco() + .onClientDetailPage(); + } + + public Function searchByRc(String rc) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(rc) + .clickSearchByRc() + .onClientDetailPage(); + } + + public Function findByStoredCif() { + return start -> start.fillSearchTerm(harness.get(HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage(); + } + + public Function findByCif(String cif) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(cif) + .clickSearchByCif() + .then(skipCifEditationIfVisible()); + } + + public Function skipCifEditationIfVisible() { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(OBR003_S001_ClientContractSignPage.PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onOpFoundPage() + .clickLeftButton() + .onMainClientPage(); + } else { + return start -> start.onClientDetailPage(); + } + } + + public Function searchByCif(String cif) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(cif) + .clickSearchByCif() + .onClientDetailPage(); + } + + public Function findEmployeeByRC(String rc) { + return start -> start.fillSearchTerm(rc) + .clickSearchByRc() + .onEmployeeClientPage(); + } + + public Function findByRC(String rc) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(rc) + .clickSearchByRc() + .onClientDetailPage(); + } + + public Function findChildByRC(String rc) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(rc) + .clickSearchByRc() + .onChooseLegalRepresentative() + .clickFirstRepresentative() + .clickContinueToMainClientPageAndCloseAlertIfVisible() + .onMainClientPage(); + } + + public Function findByIcoWithAlert(String ico) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(ico) + .searchByIco() + .onClientDetailPageCloseAlertIfVisible(); + } + + public Function findByRcWithAlert(String rc) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(rc) + .clickSearchByRc() + .onClientDetailPageCloseAlertIfVisible(); + } + + public Function findByIcoPo(String ico) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(ico) + .searchByIco() + .onChooseLegalRepresentative() + .clickFirstRepresentative() + .clickContinueToMainClientPageAndCloseAlertIfVisible() + .onMainClientPage(); + } + + public Function findLegalRepresentativeByIco(String ico) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(ico) + .clickIcoRadioAndContinueToStatutoryAuthorityEvidencePage() + .clickFirstStatutoryRepresentativeAndContinueToMainPage(); + } + + public Function findTwoLegalRepresentativesByIco(String ico) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(ico) + .clickIcoRadioAndContinueToStatutoryAuthorityEvidencePage() + .clickSecondStatutoryRepresentative() + .clickFirstStatutoryRepresentativeAndContinueToMainPage(); + } + + public Function findByNewIco(String ico) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(ico) + .searchByIco() + .onClientNotFound(); + } + + public Function findByNewRc(String rc) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(rc) + .clickSearchByRc() + .onClientNotFound(); + } + + public Function findByCardNumber(String cardNumber) { + return start -> start + .closeSearchedHistoryIfVisible() + .fillSearchTerm(cardNumber) + .searchByCard(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/SharedTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/SharedTasks.java new file mode 100644 index 0000000..3a92933 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/SharedTasks.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.ufo.banka.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF113_S001_ChangeDataFOTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.HPO003_FlexikreditDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage.APPROVED_TABLE_AMOUNT_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage.APPROVED_TABLE_INTEREST_KEY; + +public class SharedTasks { + + public Function storeFullNameAndIco() { + return start -> start + .storeClientFullName() + .storeIco(); + } + + public Function storeFullNameAndBirthNumber() { + return start -> start + .storeClientFullName() + .getBirthNumber(); + } + + public Function storeInternetBankingID() { + return start -> start + .clickActiveProduct("Internet Banka heslo/MK; Aktivní") + .onDirectBankingServices() + .clickFirstIB() + .clickSettingsIB() + .storeInternetBanking_ID() + .clickReturn() + .clickReturnTOHKO(); + } + + public Function storeClientDetailInfo(Harness harness) { + return start -> start + .clickEdit() + .onChangeDataFO() + .storeFirstName() + .storeLastName() + .storeEducation() + .storeBirthNumber() + .storeNationality() + .storeAddress() + .storeEmail() + .storeMobilePhoneIncludedCode() + .storeLandlineIncludedCode() + .storeFirstIdCardType() + .storeFirstIdCardNumber() + .storeFirstIdCardExpirationDate() + .storeSecondIdCardType() + .storeSecondIdCardNumber() + .storeSecondIdCardExpirationDate() + .storeMaritalStatus() + .storeHousingType() + .storeDependantsNumber() + .clickBack() + .then(clickContinueOpFoundPageIfVisible(harness)); + } + + public Function clickContinueOpFoundPageIfVisible(Harness harness){ + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible("//*[text()='OP nalezen']", Lookup.XPATH)) { + return start->start + .onOpFoundPage() + .clickLeftButton() + .onMainClientPage(); + } + else { + return start-> start + .onMainClientPage(); + } + } + + public Function checkFlexikreditDetail(Harness harness) { + return start -> start + .clickFlexikredit() + .checkAmount(harness.get(APPROVED_TABLE_AMOUNT_KEY)) + .checkInterest(harness.get(APPROVED_TABLE_INTEREST_KEY)) + .checkAccountingChargeNotEmpty() + .checkPenaltyRateNotEmpty(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/accountenums/CurrentAccountsEnum.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/accountenums/CurrentAccountsEnum.java new file mode 100644 index 0000000..a38ed51 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/accountenums/CurrentAccountsEnum.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.accountenums; + +public enum CurrentAccountsEnum { + GENIUS_FREE_FLEXI("Genius Free & Flexi"), + GENIUS_GOLD("Genius Gold"), + TOM("Tom účet"), + TOM_PLUS("Tom Plus"), + AKONTO_PRODUCT("BÚ-FO-Akonto /R/"); + + private final String accountName; + + CurrentAccountsEnum(String accountName) { + this.accountName = accountName; + } + + public String getAccountName() { + return accountName; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/accountenums/DebitCardFeePlan.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/accountenums/DebitCardFeePlan.java new file mode 100644 index 0000000..dc73068 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/accountenums/DebitCardFeePlan.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.accountenums; + +import cz.moneta.test.harness.support.web.SelectByValue; + +public enum DebitCardFeePlan implements SelectByValue { + NONE("(není)"), + TOM_ACCOUNT("Tom účet"), + TOM_ACCOUNT_WITH_FEE("Tom účet (zpoplatněný)"), + GENIUS_WITH_FEE("Genius Free & Flexi (zpoplatněný)"), + FREE("Zdarma"), + CHARGED("Zpoplatněná"); + + private final String feePlan; + + DebitCardFeePlan(String feePlan) { + this.feePlan = feePlan; + } + + @Override + public String getValue() { + return feePlan; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/accountenums/SavingsAccountsEnum.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/accountenums/SavingsAccountsEnum.java new file mode 100644 index 0000000..ead9633 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/accountenums/SavingsAccountsEnum.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.accountenums; + +public enum SavingsAccountsEnum { + GENIUS_FREE_FLEXI("Genius Free & Flexi"), + GOLD("SÚ Gold"); + + private final String accountName; + + SavingsAccountsEnum(String accountName) { + this.accountName = accountName; + } + + public String getAccountName() { + return accountName; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/cards/CardsOnboardingTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/cards/CardsOnboardingTasks.java new file mode 100644 index 0000000..fe9a8ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/cards/CardsOnboardingTasks.java @@ -0,0 +1,834 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.cards; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ProductType; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.GDP001_S001_ClientConsentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.VER017_S001_SecondBankerVerificationStatusPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.ONC001_S001_NewCreditCardPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.BAL035_S002_SummaryOfProductFoundationRetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.products.flexi.credit.NKK003_S001_SelectingApprovedVariantsPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.BAL035_S002_SummaryOfProductFoundationRetailPage.BAL035_S002_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.NEW_ACCOUNT_NUMBER; +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.*; +import static cz.moneta.test.dsl.ufo.banka.tasks.cards.CardsServicingTasks.*; + +public class CardsOnboardingTasks { + + private final Harness harness; + + public CardsOnboardingTasks(Harness harness) { + this.harness = harness; + } + + public CreditCardsTasks creditCards() { + return new CreditCardsTasks(harness); + } + + public Function createNewRetailDebitCardBasePart() { + return start -> start + .createNewProduct(DEBIT_CARD) + .onSelectionOfSubmittedDocumentsPage() + .selectIdCardRadio() + .clickDocumentsCheckButton() + .clickContinue() + .onDebitCardRequestPage(); + } + + public Function selectDebitCardPresenceDesignAndType(String cardType, String designOfCard, String presenceOfCard) { + return start -> start + .selectDebitCardType(cardType) + .clickPresenceOfCardAndPinCardDelivery(presenceOfCard) + .typeActivatePassword("000000") + .selectDebitCardFeePlanByIndex(2) + .clickDesignButtonIfSelectIsNotEnabled() + .selectCardVariant(designOfCard) + .clickPresenceOfCardAndPinCardDelivery(presenceOfCard) + .clickSendAndDismissPossibleAlerts(); + } + + public Function createNewRetailDebitCardFinalPart() { + return start -> start + .clickRightButton() + .onClientContractSignPage() + .clickCenterButton() + .then(waitForModulationIfPresent()) + .clickContinueButton() + .onMainClientPage(); + } + + public Function waitForModulationIfPresent() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(10, BAL035_S002_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start.onSummaryOfProductFoundationRetailPage(); + } else { + return start -> start.onWaitingForModulationPage() + .waitForModulation(120) + .onSummaryOfProductFoundationRetailPage(); + } + } + + public Function createNewGoldDebitCardForExistingCurrentAccount(String presenceOfCard, Long accountNum) { + return start -> start + .then(createNewRetailDebitCardBasePart()) + .selectCurrentAccount(accountNum) + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .checkThatCardCantBeOnboarded(presenceOfCard, CardTypeAndDesign.GOLD.getValue() + "|"); + } + + public Function createNewGoldDebitCardForNewCurrentAccount(String presenceOfCard) { + return start -> start + .then(createNewRetailDebitCardBasePart()) + .selectCurrentAccountByName(harness.get(NEW_ACCOUNT_NUMBER) + "|CZK|Gold") + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .selectDebitCardType(CardTypeAndDesign.GOLD.getValue() + "|") + .selectDebitCardFeePlanByIndex(2) + .clickDesignButtonIfSelectIsNotEnabled() + .typeActivatePassword("000000") + .clickPresenceOfCardAndPinCardDelivery(presenceOfCard) + .clickSendAndDismissPossibleAlerts() + .onMeetingRecordPage() + .clickNoInfoAdded() + .clickNoComment() + .clickContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onWaitForModulationPage() + .waitForModulation(120) + .onDocumentsProvidedPage() + .clickContinue() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintPage() + .saveDocumentUrl(CONTRACT_DOCUMENT_NAME) + .closePrintWindow() + .onPrintPage() + .saveDocumentUrl(RECORD_FROM_MEETING_DOCUMENT_NAME) + .closePrintWindow() + .onInsurancePage() + .clickSignedAndContinueToPrint() + .saveDocumentUrl(AGREEMENT_WITH_TRAVEL_INSURANCE_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .then(createNewRetailDebitCardFinalPart()); + } + + public Function createNewStandardDebitCardForNewCif(String designOfCard, String presenceOfCard, Long accountNum) { + return start -> start + .then(createNewRetailDebitCardBasePart()) + .selectCurrentAccount(accountNum) + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .then(selectDebitCardPresenceDesignAndType(CardTypeAndDesign.STANDARD.getValue() + "|", designOfCard, presenceOfCard)) + .onSignerPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintPage() //smlouva o bankovních produktech + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onPrintPage()//dispozice ke smlouvě + .saveDocumentUrl(CONTRACT_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .then(createNewRetailDebitCardFinalPart()); + } + + public Function createNewStandardDebitCardForExistingCurrentAccount(String designOfCard, String presenceOfCard, Long accountNum) { + return start -> start + .then(createNewRetailDebitCardBasePart()) + .selectCurrentAccount(accountNum) + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .then(selectDebitCardPresenceDesignAndType(CardTypeAndDesign.STANDARD.getValue() + "|", designOfCard, presenceOfCard)) + .onSignerPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow()//dispozice ke smlouvě + .onPrintInstructionPage() + .then(createNewRetailDebitCardFinalPart()); + } + + public Function createNewStandardDebitCardAfterNewAccount(String designOfCard, String presenceOfCard, Long accountNum) { + return start -> start + .then(createNewRetailDebitCardBasePart()) + .selectCurrentAccount(accountNum) + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .then(selectDebitCardPresenceDesignAndType(CardTypeAndDesign.STANDARD.getValue() + "|", designOfCard, presenceOfCard)) + .onScoringPage() + .waitForLoader() + .onPrintPage() + .saveDocumentUrl(CONTRACT_DOCUMENT_NAME) + .closePrintWindow()//dispozice ke smlouvě + .onPrintInstructionPage() + .then(createNewRetailDebitCardFinalPart()); + } + + public Function createNewStandardDebitCardForDifferentHolder(String designOfCard, String presenceOfCard, Long accountNum, String holderBirthNumber) { + return start -> start + .then(createNewRetailDebitCardBasePart()) + .selectCurrentAccount(accountNum) + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnDifferentHolderButton() + .clickContinue() + .fillSearchTerm(holderBirthNumber) + .clickSearchByRcButton() + .onChangeDataFO() + .clickSend() + .onPrintInstructionPage() + .clickLeftButton() + .onDebitCardRequestPage() + .then(selectDebitCardPresenceDesignAndType(CardTypeAndDesign.STANDARD.getValue() + "|", designOfCard, presenceOfCard)) + .onSignerPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(CONTRACT_DOCUMENT_NAME) + .closePrintWindow() + .onPrintInstructionPage() + .then(createNewRetailDebitCardFinalPart()); + } + + public Function createNewStandardDebitCardForExistingCurrentAccountFail(String presenceOfCard, Long accountNum) { + return start -> start + .then(createNewRetailDebitCardBasePart()) + .selectCurrentAccount(accountNum) + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .checkThatCardCantBeOnboarded(presenceOfCard, CardTypeAndDesign.STANDARD.getValue() + "|"); + } + + public Function createNextRetailCreditCardConsentPart() { + return start -> start + .clickOnFonConsentsAndContinue() + .clickContinue() + .onPrintPage() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onNewCreditCardPage(); + } + + public Function createRetailCreditCard(int amount, ProductType productType) { + return start -> start + .fillAmount(amount) + .selectPromo("Bez akce") + .clickCheckRequestParametersCheckbox() + .dismissCardApplicationAlert() + .selectAccountIfPossible() + .clickSend() + .onCreditCardApplicationDetailsPage() + .selectProductType(productType) + .selectCardBrandByIndex(2) + .clickContinueButton() + .clickDistributionByPost() + .clickSaveButton() + .onSelectionOfSubmittedDocumentsPage() + .selectIdCardRadio() + .selectPassportRadio() + .clickDocumentsCheckAndContinue() + .onCreditCardApplicantPage() + .fillHouseholdIncome(150000) + .clickEditIncomeButton() + .clickNoticePeriodNoRadio() + .clickTrialPeriodNoRadio() + .clickAcceptIncomeButton() + .clickBackButton() + .onApplicantPage() + .selectFirstIncome() + .fillPaymentsOutsideMMB(0) + .fillOtherMonthlyExpenses(1) + .clickContinue() + .onSignerSelectionPage()//TODO může se objevit zkontrolujte doklady, potřeba dodělat Custom Action + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onPrintPage() + .saveDocumentUrl(PRECONTRACT_DOCUMENT_NAME) + .closePrintWindow() + .onSignaturePage() + .clickApplicantSignatureCheckbox() + .clickYes() + .onScoringPage() + .waitForLoader() + .onCreditCardScoringResultPage() + .waitForStatusAndRefresh("SOUHLAS") + .clickCreateProductAndPrintContract(); + } + + public Function createNextRetailCreditCardPart() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, NKK003_S001_SelectingApprovedVariantsPage.NKK003_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start.onSelectingApprovedVariantsPage() + .clickSecondVariant() + .clickSelectToPrint(); + } else { + return start -> start.onPrintPage(); + } + } + + public Function createRetailCreditCardBeforeVerification() { + return start -> start + .onSecondBankerSearch() + .fillSurnameInput(harness.getGlobal("BANKER_NAME")) + .clickSearch() + .selectFirstName() + .clickContinue() + .onDocumentProvided()//zaslání změnového listu + .clickContinue() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onInformationPrintedPage() + .continueToPrintCopyOfContractProposalPage() + .clickContinue() + .onSecondBankerVerificationPage(); + } + + public Function createRetailCreditCardAfterVerification() { + return start -> start + .selectFromListOfRequests() + .selectFirstApplication() + .clickOpenRequestDetail() + .onCreditCardScoringResultPage() + .clickCreateProductAndPrintContract() + .onPreContractualInformationPrintPage() + .clickSkipPrint() + .clickContinue() + .onSecondBankerVerificationPage() + .clickContinue() + .onConfirmationPage() + .clickDoNotCreateButton() + .onAdvancedSignerSelectionPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(CONTRACT_DOCUMENT_NAME) + .closePrintWindow() + .onSignContractPage() + .clickFirstSignerCheckbox() + .clickYesButtonToClientContractSignPage() + .clickLeftButton(); + } + + public Function onboardingMBCForFopFirstBanker(String amountOfMoneyForMBC) { + return start -> start + .storeClientIdNumber() + .createNewProduct(SME_AUTOMATS) + .onNeedCifUpdate() + .clickNoUpdateNeededToSelectProduct() + .selectProductToOnboard("Moneta Business Card") + .clickAddProduct() + .onCommercialCreditCardDetail() + .fillAmount(amountOfMoneyForMBC) + .selectDistribution("Poštou") + .clickAccountAtMMB() + .selectFirstAccount(2) + .clickContinue() + .onAddCodeOfRecommendedPersonPage() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onSelectProductSmeCommercial() + .clickContinue() + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onEditBusinessInfoPage() + .clickFirstEconomicActivityRadio() + .clickNoFopUnion() + .clickNoActivityInterrupted() + .clickNoTransformation() + .clickYesTelcoScoring() + .selectBusinessForCertainTime("Ne") + .fillNumberOfEmployees("3") + .fillRevenueShare("100") + .clickContinue() + .onClientRequestDetailPage() + .selectFamilyCompany("Ne") + .clickContinue() + .clickPermanentResidencyRadio() + .clickContinue() + .onRequestedDocumentsPage() + .selectAndAddDocument() + .clickContinue() + .onFinancialSignpostPage() + .clickNoPsd2Data() + .clickYesPsd2Data() + .fillLastYear("2022") + .fillYearBeforeLast("2021") + .fillIncomeFromBusiness("1000000") + .fillGrossIncome("1200000") + .fillTotalAssets("10000000") + .fillProfit("1000000") + .fillNumberOfMainCustomers("1") + .clickNoMoreThanHalfMainCustomer() + .clickNoMoreThanHalfMainContractor() + .fillBusinessLoanOutsideMmb("0") + .clickYesClientProperty() + .clickYesTaxAdvisor() + .continueToListOfPersonsOnRequestPage() + .selectPersonToAdd() + .clickContinue() + .onRequestSummaryPage() + .clickContinue() + .onRequestForSMEPage() + .clickPrintRequest() + .onPrintPagePSP004() + .closePrintWindow() + .onRequestForSMEPage() + .clickYes() + .onWaitingForModulationPage() + .waitForModulation(120) + .onModulationPage() + .clickDocumentScanning() + .onScanDocumentsPage() + .uploadBusinessRegister() + .selectFirstDocumentToAssign() + .assignLoadedDocument() + .clickSkipButton() + .onMainClientPage(); + } + + public Function onboardingMBCForFopRequestConfirmation(String secondBanker) { + return start -> start + .selectFromListOfRequests() + .waitForStatusAndRefresh("PODMÍNĚNÝ SOUHLAS") + .selectFirstApplication() + .clickOpenRequestDetail() + .onSmeAutomatesRequests() + .confirmSME() + .selectFirstApplication() + .clickPrintContract() + .clickContinue() + .onConfirmationOfDocumentsPage() + .confirmDocuments() + .fillSurnameInput(secondBanker) + .clickSearch() + .clickContinue() + .onPrintPage() + .closePrintWindow() + .onSendDocumentationPage() + .sendDocumentsToClient() + .clickLeftButton() + .onCreditCardStartCreateInkasoPage() + .clickOkToPrint() + .closePrintWindow() + .onInkasoAgreement() + .clickRightButton() + .onInkasoNonVerifiedIcbsPage() + .clickContinue() + .onSignConfirmationPage() + .clickFirstSignerCheckbox() + .dismissPopupWindow() + .storeApplicationID(); + } + + public Function onboardingMbcAfterSecondBankerSigned() { + return start -> start + .clickControlButton() + .clickConfirmButtonToSignConfirmation() + .clickLeftButton() + .onClientContractSignPage() + .clickLeftButton() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onClientContractSignPage() + .clickLeftButton() + .onClientRequestPage(); + } + + public Function createAccountForGoldCard() { + return start -> start + .createNewProduct(CURRENT_ACCOUNT) + .onCurrentAccountPage() + .selectFeePlanByOrder(2) + .clickDispositionRadioYes() + .clickConfirm() + .onSignerPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() //sdělení o poplatcích + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onAccountDispositionOwnerPage() + .clickOwnerOnly() + .onPrintSignPadPage() + .clickBack() + .clickCenterButton() + .onPrintPage() + .saveDocumentUrl(RECORD_FROM_MEETING_DOCUMENT_NAME) + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onSavingAccountConfirmation() + .clickContinue() + .clickNotCreateNow() + .clickSkipCreate() + .onPrintInstructionPage() + .clickCenterButton() + .onPrintInstructionPage() + .clickRightButton() + .onPrintPage() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .getNewAccountNumberByNameAndStore("; Gold"); + } + + public Function createAccountForFop() { + return start -> start + .createNewProduct(CURRENT_ACCOUNT) + .onRegistrationCertificatePage() + .clickRightButton() + .onCreateCurrentAccountPage() + .selectAccountFlag("Standard") + .selectProductTypeByOrder(2) + .selectDistributionType("Elektronicky a e-mailem") + .confirmCreationOnContactSettingPage() + .clickFillEmailFromCif() + .clickFillPhoneFromCif() + .clickContinue() + .onAccountDispositionPage() + .clickNotCreateNow() + .clickSkipCreate() + .onAddCodeOfRecommendedPersonPage() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onPrintInstructionPage() + .clickCenterButton() + .onDispositionGeneratePage() + .clickGenerateNow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onSummaryStartDocumentsPage() + .clickContinue() + .onPrintInstructionPage() + .clickRightButton() + .onMainClientPage() + .getNewAccountNumberByNameAndStore("BÚ-FOP"); + } + + public Function createBusinessCardForFop(String presenceOfCard, int accountIndex) { + return start -> start + .createNewProduct(DEBIT_CARD) + .onRegistrationCertificatePage() + .clickRightButton() + .onDebitCardRequestPage() + .selectCurrentAccountByIndex(accountIndex) + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .selectDebitCardTypeByIndex(2) + .selectDebitCardFeePlanByIndex(2) + .clickDesignButtonIfSelectIsNotEnabled() + .typeActivatePassword("000000") + .clickPresenceOfCardAndPinCardDelivery(presenceOfCard) + .selectDebitCardFeePlanByIndex(2) + .clickDesign() + .clickSendAndDismissPossibleAlerts() + .onScoringPage() + .waitForLoader() + .onModulationPage() + .waitForModulation(30) + .onSignerSelectionPageTIS050() + .clickSignedAndContinueToPrintPage() + .saveDocumentUrl() + .closePrintWindow()//dispozice ke smlouvě + .onPrintInstructionPage() + .clickRightButton() + .onClientContractSignPage() + .clickCenterButton() + .onMainClientPage(); + } + + public Function createBusinessPremiumCardForFop(String presenceOfCard) { + return start -> start + .createNewProduct(DEBIT_CARD) + .onRegistrationCertificatePage() + .clickRightButton() + .onDebitCardRequestPage() + .selectCurrentAccountByIndex(2) + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .selectDebitCardTypeByIndex(2) + .clickPresenceOfCardAndPinCardDelivery(presenceOfCard) + .typeActivatePassword("000000") + .selectDebitCardFeePlanByIndex(2) + .clickDesign() + .clickSendAndDismissPossibleAlerts() + .onMeetingRecordPage() + .clickNoComment() + .clickNoInfoAdded() + .clickPaperForm() + .clickContinue() + .onCommercialSignerSelectionPage() + .clickSignedAndContinueToPrintPage() + .saveDocumentUrl() + .closePrintWindow()//ZZJ + .onWaitForModulationPage() + .waitForModulation(60) + .onDocumentationPage() + .sendDocumentsToClient() + .clickLeftButton() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow()//souhlas s cestovním pojištěním + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow()//souhlas s pojištěním karet + .onInsurancePage() + .clickSignedAndContinueToPrint() + .saveDocumentUrl() + .closePrintWindow()//dispozice + .onPrintInstructionPage() + .clickRightButton() + .onClientContractSignPage() + .clickCenterButton(); + } + + public Function createFopAccountWithDifferentCurrency(String currency) { + return start -> start + .createNewProduct(CURRENT_ACCOUNT) + .onRegistrationCertificatePage() + .clickRightButton() + .onDocumentationSendPage() + //.onCreateCurrentAccountPage() + .sendDocumentsToClient() + .clickCenterButton() + .onCurrentAccountPage() + .selectCurrency(currency) + .clickStandardCurrencyAccount() + .selectProductTypeByOrder(2) + .selectDistributionType("Elektronicky a e-mailem") + .confirmCreationOnContactSettingPage() + .clickFillEmailFromCif() + .clickFillPhoneFromCif() + .clickContinue() + .onAccountDispositionPage() + .clickNotCreateNow() + .clickSkipCreate() + //.onAddCodeOfRecommendedPersonPage() + //.checkProductNotRecommended() + //.clickWithoutRecommendationAndDismissAlertIfvisible() + .onPrintInstructionPage() + .clickCenterButton() + .onDispositionGeneratePage() + .clickGenerateLater() + //.onSignerSelectionPage() + //.clickSignedAndContinueToPrintPage() + //.saveDocumentUrl() + //.closePrintWindow() + //.onPrintInstructionPage() + //.clickRightButton() + .onSummaryStartDocumentsPage() + .clickContinue() + .onPrintInstructionPage() + .clickRightButton() + .onMainClientPage() + .getNewAccountNumberByNameAndStore(currency); + } + + public Function createFonAccountWithDifferentCurrency(String currency) { + return start -> start + .createNewProduct(CURRENT_ACCOUNT) + .onCurrentAccountPage() + .selectProduct(currency) + .clickDispositionRadioYes() + .clickConfirm() + .onSignerPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() //sdělení o poplatcích + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onAccountDispositionOwnerPage() + .clickOwnerOnly() + .onPrintSignPadPage() + .clickBack() + .clickCenterButton() + .onClientContractPage() + .clickLeftButton() + .onPrintInstructionPage() + .clickCenterButton() + .onPrintInstructionPage() + .clickLeftButton() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .getNewAccountNumberByNameAndStore(currency); + } + + public Function createNewDifferentCurrencyCard(String typeOfCard, String presenceOfCard, String accountAppendix) { + return start -> start + .then(createNewRetailDebitCardBasePart()) + .selectCurrentAccountByName(harness.get(NEW_ACCOUNT_NUMBER) + accountAppendix) + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .selectDebitCardType(typeOfCard + "|") + .clickPresenceOfCardAndPinCardDelivery(presenceOfCard) + .typeActivatePassword("000000") + .selectDebitCardFeePlanByIndex(2) + .clickDesignButtonIfSelectIsNotEnabled() + .clickSendAndDismissPossibleAlerts() + .onPrintPage() + .saveDocumentUrl(CONTRACT_DOCUMENT_NAME) + .closePrintWindow()//dispozice ke smlouvě + .onPrintInstructionPage() + .then(createNewRetailDebitCardFinalPart()); + } + + public Function createOneClickRetailForCards() { + return start -> start.createNewProduct(ONE_CLICK) + .onOneClickRetailPage() + .clickNoProductMediatedByAdvisor() + .clickNoDispositionRights() + .clickNoSaStatementsEndOfMonth() + .typeSaName("test") + .selectDistributionAccount("Elektronicky a e-mailem") + .selectDistributionForSavingAccount("Elektronicky a e-mailem") + .clickNoIB() + .clickPlasticCard() + .selectCardDesign("Standard") + .clickContinue() + .onModulationPage() + .waitForModulation(120) + .onSignerSelectionPageTIS050_S001() + .clickSignedAndContinueToPrintPage() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintPage() + .saveDocumentUrl(PRECONTRACT_DOCUMENT_NAME) + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintPage() + .saveDocumentUrl(CONTRACT_DOCUMENT_NAME) + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onClientContractSignPage() + .clickCenterButton() + .onAppendixSignedPage() + .clickContinueToSummaryOfProduct() + .clickArrangeAppointmentCheckbox() + .clickContinueButton() + .onMainClientPage(); + } + + public Function createTomJuniorAccountForNewChildCif() { + return start -> start + .createNewProduct(TOM_JUNIOR_ACCOUNT) + .onChangeDataFO() + .clickSend() + .onCommonReportingStatusPage() + .confirmCzech() + .clickContinueAndAcceptAlert() + .clickBackButton() + .onSignerSelectionPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .closePrintWindow() + .onClientContractSignPage() + .clickCenterButton() + .onEnterContactAddressPageWithPossibleAlert() + .clickUseResidencyAsContactAndConfirm() + .clickSave() + .onOneClickTomJunior() + .fillAccountName("test") + .selectCardDesignByIndex(2) + .fillLimit(500) + .clickCreateProducts() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onClientContractSignPage() + .clickCenterButton() + .onAppendixSignedPage() + .clickContinueToSummaryOfProduct() + .clickContinueButton() + .onMainClientPage(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/cards/CardsServicingTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/cards/CardsServicingTasks.java new file mode 100644 index 0000000..22fe690 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/cards/CardsServicingTasks.java @@ -0,0 +1,937 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.cards; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.*; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.HPO009_S001_DebitCardDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF113_S001_ChangeDataFO; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.VER017_S001_SecondBankerVerificationStatusPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.CIF013_S002_ClientNotFoundPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.dsl.util.data.client.AccommodationType; +import cz.moneta.test.dsl.util.data.client.EducationLevel; +import cz.moneta.test.dsl.util.data.client.MaritalStatus; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage.DOCUMENT_URLS_STORE_KEY; + +public class CardsServicingTasks { + + private final Harness harness; + + public CardsServicingTasks(Harness harness) { + this.harness = harness; + } + + public CreditCardsTasks creditCards() { + return new CreditCardsTasks(harness); + } + + public static final String DISPOSITION_DOCUMENT_NAME = "Dispozice"; + + public static final String CONTRACT_DOCUMENT_NAME = "Smlouva"; + + public static final String RECORD_FROM_MEETING_DOCUMENT_NAME = "ZZJ"; + + public static final String AGREEMENT_WITH_TRAVEL_INSURANCE_DOCUMENT_NAME = "Souhlas s cestovním pojištěním"; + + public static final String PRECONTRACT_DOCUMENT_NAME = "Předběžná smlouva"; + + public static final String SERVICE_INFORMATION_DOCUMENT_NAME = "Servisní infromace"; + + + public String getPrintedPages() { + return "Url dokumentů: \n" + BankaUtils.formatDocumentUrlsWithNames(harness.get(DOCUMENT_URLS_STORE_KEY, true)); + } + + public Function cancelDebitCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPageAndCloseAlertIfPresent() + .clickCardCancellation() + .selectReasonToCancel(2) + .clickCardReturned() + .clickCancelPK() + .clickGenerateLater() + .onDebitCardDetailPage() + .clickBackToClient(); + } + + public Function activateDebitCard(String cardNumber) { + return start -> start + .storeClientIdNumber() + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .assertCardStatus("Neaktivní") + .clickCardActivation() + .selectIdCardType("OP") + .fillIdCardNumberWithPossibleAlert(harness.get(CLIENT_ID_KEY)) + .clickActivateCard() + .onSignerSelectionPageForDebitCards() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onDebitCardDetailPage() + .clickBackToClient(); + } + + public Function activateCreditCard(String cardNumber) { + return start -> start + .storeClientIdNumber() + .clickActiveProduct(cardNumber) + .onCreditCardDetailPage() + .clickActivateCard() + .onCreditCardActivation() + .selectIdCardType("OP") + .fillIdCardNumberFromStored(harness.get(CLIENT_ID_KEY)) + .clickActivateCard() + .onSignerSelectionPageForDebitCards() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onCreditCardDetailPage() + .clickBackToClient(); + } + + public Function checkDebitCardIsActive(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .assertCardStatus("Aktivní"); + } + + public Function changeLimitOnDebitCardMainPart(String cardNumber, String intLimitExpected, String atmLimitExpected, String posLimitExpected) { + + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .storeLimits(harness) + .clickChangeOfData() + .changePosLimit("100000000") + .clickSaveFalse() + .dismissAlert() + .changeAtmLimit("100000000") + .clickSaveFalse() + .dismissAlert() + .changeIntLimit("100000000") + .clickSaveFalse() + .dismissAlert() + .checkAndChangeLimits(atmLimitExpected, intLimitExpected, posLimitExpected, harness) + .clickSaveTrue() + .clickLeftButton(); + } + + public Function changeLimitOnDebitCardLastPart(Harness harness) { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, TIS050_S001_SignerSelectionPage.CONTINUE_BUTTON, Lookup.ID)) { + return start -> start + .onSignerPage() + .clickSignedPersonallyPhysicallyAndContinue() + .onDebitCardDetailPage(); + } else { + return start -> start.onDebitCardDetailPage(); + } + } + + public Function changeLimitRetailSmartCreditCard(String cardNumber, String intLimitExpected, String atmLimitExpected, String motoLimitExpected) { + + return start -> start + .clickActiveProduct(cardNumber) + .onCreditCardDetailPage() + .storeLimits(harness) + .clickCardService() + .clickDailyLimits() + .changeMotoLimit("100000000") + .changeLimitsWithAlert() + .changeAtmLimit("100000000") + .changeLimitsWithAlert() + .changeIntLimit("100000000") + .changeLimitsWithAlert() + .checkAndChangeLimits(atmLimitExpected, intLimitExpected, motoLimitExpected, harness) + .changeLimits() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onCreditCardSignConfirmation() + .clickSignConfirmed() + .onCreditCardDetailPage(); + } + + public Function changeLimitMBC(String cardNumber, String intLimitExpected, String atmLimitExpected, String motoLimitExpected) { + + return start -> start + .clickActiveProduct(cardNumber) + .onMBCDetailPage() + .storeLimits(harness) + .clickChangeLimits() + .changeMotoLimit("100000000") + .changeLimitsWithAlert() + .changeAtmLimit("100000000") + .changeLimitsWithAlert() + .changeIntLimit("100000000") + .changeLimitsWithAlert() + .checkAndChangeLimits(atmLimitExpected, intLimitExpected, motoLimitExpected, harness) + .changeLimits() + .clickSignedAndContinueToPrintPage() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onMbcDetailPage(); + } + + public Function changeIntMotoTransactionsRetailDebitCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .clickMotoInt() + .clickInternetAndMotoChange(harness) + .clickToSignerSelectionPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onContractSignPage() + .clickLeftButton() + .onDebitCardDetailPage(); + } + + public Function changeDccSettingOnRetailDebitCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .clickMotoInt() + .clickDccChange(harness) + .clickToSignerSelectionPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onContractSignPage() + .clickLeftButton() + .onDebitCardDetailPage(); + } + + public Function changeIntMotoTransactionsCommercialDebitCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .clickMotoInt() + .clickInternetAndMotoChange(harness) + .clickToPrint() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onContractSignPage() + .clickLeftButton() + .onDebitCardDetailPage(); + } + + public Function changeDccSettingOnCommercialDebitCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .clickMotoInt() + .clickDccChange(harness) + .clickToPrint() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onContractSignPage() + .clickLeftButton() + .onDebitCardDetailPage(); + } + + public Function changeDccSettingOnRetailCreditCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onCreditCardDetailPage() + .clickMotoInt() + .clickDccChange(harness) + .clickToSignerSelectionPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onContractSignPage() + .clickLeftButton() + .onCreditCardDetailPage(); + } + + public Function changeDccSettingOnMBC(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onMBCDetailPage() + .clickChangeMotoInt() + .clickDccChange(harness) + .clickToPrint() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onContractSignPage() + .clickLeftButton() + .onMbcDetailPage(); + } + + public Function changeIntMotoTransactionsRetailCreditCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onCreditCardDetailPage() + .clickMotoInt() + .clickInternetAndMotoChange(harness) + .clickToSignerSelectionPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onContractSignPage() + .clickLeftButton() + .onCreditCardDetailPage(); + } + + public Function changeIntMotoTransactionsMBC(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onMBCDetailPage() + .clickChangeMotoInt() + .clickInternetAndMotoChange(harness) + .clickToPrint() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onContractSignPage() + .clickLeftButton() + .onMbcDetailPage(); + } + + public Function change3dSecureNumberRetailDebitCard(String cardNumber) { + return start -> start + .storeClientIdNumber() + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .click3dSecureChange() + .selectDocumentType(2) + .fillDocumentNumberFromHko(harness) + .fillNew3dSecureNumber() + .clickToChange3dSecureNumber() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onDebitCardDetailPage(); + } + + public Function change3dSecureNumberCommercialDebitCard(String cardNumber) { + return start -> start + .storeClientIdNumber() + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .click3dSecureChange() + .selectDocumentType(2) + .fillDocumentNumberFromHko(harness) + .fillNew3dSecureNumber() + .clickToChange3dSecureNumberToPrint() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onDebitCardDetailPage(); + } + + public Function change3dSecureNumberRetailCreditCard(String cardNumber) { + return start -> start + .storeClientIdNumber() + .clickActiveProduct(cardNumber) + .onCreditCardDetailPage() + .clickCardService() + .clickContactMobileNumber() + .clickO2Operator() + .clickProductToChange3dSecureNum(cardNumber) + .clickSend() + .selectDocumentType(2) + .fillDocumentNumberFromHko(harness) + .fillNew3dSecureNumber() + .clickToChange3dSecureNumber() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onCreditCardSignConfirmation() + .clickSignConfirmed() + .onCreditCardDetailPage(); + } + + public Function change3dSecureNumberMbc(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onMBCDetailPage() + .clickServiceOperations() + .clickContactMobileNumberForMbc() + .fillNew3dSecureNumber() + .clickToChange3dSecureNumberToSignerPage() + .clickSignedAndContinueToPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onMbcDetailPage(); + } + + public Function change3dSecureNumberChildCard(String cardNumber, String childIdCardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .click3dSecureChange() + .selectDocumentType(2) + .fillDocumentNumber(childIdCardNumber) + .fillNew3dSecureNumber() + .clickToChange3dSecureNumber() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onChildCardConfirmationPage() + .clickSignConfirmed(); + } + + public Function temporarilyBlockRetailDebitCard(String cardNumber, String time) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .clickBlockMenu() + .clickTemporarilyBLock() + .clickOwner() + .fillDate() + .fillTime(time) + .fillTellNum("720961931") + .clickPrintToSignerPageWithPossibleAlert() + .onSignerSelectionPageForRetail() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onContractSignPage() + .clickCenterButton() + .onDebitCardDetailPage(); + } + + public Function temporarilyBlockRetailCreditCard(String cardNumber, String time) { + return start -> start + .clickActiveProduct(cardNumber) + .onCreditCardDetailPage() + .clickCardServiceWithPossibleAlert() + .clickBlockMenu() + .selectBlockingReason("Dočasná blokace") + .fillDate() + .fillTime(time) + .fillTellNum("720961931") + .clickBlockCreditCardToSignerPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onCreditCardSignConfirmation() + .clickSignConfirmed() + .onCreditCardServiceOperationsPage(); + } + + public Function temporarilyBlockMBC(String cardNumber, String time) { + return start -> start + .clickActiveProduct(cardNumber) + .onMBCDetailPage() + .clickServiceOperations() + .clickBlockMenu() + .selectBlockingReason("Dočasná blokace") + .fillDate() + .fillTime(time) + .fillTellNum("720961931") + .clickBlockCardToSignerPage() + .clickSignedAndContinueToPrintPage() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onCreditCardSignConfirmation() + .clickSignConfirmed() + .onPrintInstructionPage() + .clickRightButton() + .onCreditCardServiceOperationsPage(); + } + + public Function temporarilyBlockCommercialDebitCard(String cardNumber, String time) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .clickBlockMenu() + .clickTemporarilyBLock() + .clickOwner() + .fillDate() + .fillTime(time) + .fillTellNum("720961931") + .clickPrintToSignerPageWithPossibleAlert() + .onSignerSelectionPageForCommercial() + .clickSignedAndContinueToPrintPage() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onContractSignPage() + .clickCenterButton() + .onDebitCardDetailPage(); + } + + public Function permaBlockCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .clickBlockMenu() + .clickLostReport() + .clickOwner() + .fillDescription("AUTOMAT TEST") + .fillCity("Praha") + .clickPrintToSignerPageWithPossibleAlert() + .onSignerSelectionPageForRetail() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onBlockMenu() + .clickSave(); + } + + public Function changeName(String lastName) { + return start -> start + .clickEdit() + .onChangeDataFO() + .changeLastName(lastName) + .updateIDValidation("1.1.2028", "1.1.2028") + .clickSend() + .onChangeOfIdentificationDocuments() + .clickNo() + .onSignerSelectionPage() + .clickContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onContinueAfterSigning() + .clickContinueToSettingADC() + .clickSaveAndAcceptAlert() + .onMainClientPage() + .clickActiveProduct("PK") + .onDebitCardDetailPage() + .checkLastName(lastName); + } + + public Function setUpPIM() { + return start -> start + .clickEdit() + .onChangeDataFO() + .clickEditIncome() + .clickAddIncomeButton() + .selectIncomeType("Příjem ze závislé činnosti") + .selectIncomeSubtype("Příjem ze závislé činnosti na dobu neurčitou") + .selectOccupation("it programátor/software developer") + .openSearchEmployerWindow() + .fillCompanyNameOrIco("76235700") + .clickSearchCompanyButton() + .clickFirstResult() + .clickSelectEmployerButton() + .clickNoticePeriodNoRadio() + .clickTrialPeriodNoRadio() + .clickIncomeCashNoRadio() + .fillEmploymentStartDate("1.1.2000") + .fillPhoneCountryCode("420") + .fillPhoneNumber("737111000") + .fillNetIncome(100000) + .clickAcceptIncomeButtonAndDisableAlertIfVisible() + .clickBackButton() + .onChangeDataFO() + .clickBack() + .onMainClientPage(); + } + + public Function confirmPIM() { + return start -> start + .clickEdit() + .onChangeDataFO() + .clickEditIncome() + .clickNoticePeriodNoRadio() + .clickTrialPeriodNoRadio() + .clickIncomeCashNoRadio() + .clickAcceptIncomeButton() + .clickBackButton() + .onChangeDataFO(); + } + + public Function secondBankerApplicationSign(String applicationID, String clientID) { + return start -> start + .clickSecondSignature() + .fillApplicationId(applicationID) + .clickSecondSignatureButton() + .fillIdNumber(clientID) + .clickVerify() + .clickOkAndCloseWindow(); + } + + public Function secondBankerApplicationRetailSign() { + return start -> start + .clickVerificationLoan() + .clickFirstApplication() + .confirmDocumentsAndSaveDecision() + .clickLeftButton(); + } + + public Function generatePinDCLastPart(Harness harness) { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, OBR001_S001_PrintInstructionPage.CENTER_BUTTON, Lookup.ID)) { + return start -> start + .onPrintInstructionPage() + .clickCenterButton() + .onDebitCardDetailPage(); + } else { + return start -> start.onDebitCardDetailPage(); + } + } + + public Function generatePinForRetailDebitCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .clickGeneratePinButton() + .clickPinOnMobileNumber() + .clickMobileNumberFromCif() + .clickSaveOnSignerSelectionPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .then(generatePinDCLastPart(harness)); + } + + public Function generatePinCCLastPart(Harness harness) { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, OBR001_S001_PrintInstructionPage.CENTER_BUTTON, Lookup.ID)) { + return start -> start + .onPrintInstructionPage() + .clickCenterButton() + .onCreditCardDetailPage(); + } else { + return start -> start.onCreditCardDetailPage(); + } + } + + public Function generatePinForRetailCreditCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onCreditCardDetailPage() + .clickCardService() + .clickGeneratePin() + .clickContinue() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onCreditCardSignConfirmation() + .clickSignConfirmed() + .then(generatePinCCLastPart(harness)); + } + + public Function generatePinForCommercialDebitCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onDebitCardDetailPage() + .clickGeneratePinButton() + .clickPinOnMobileNumber() + .clickMobileNumberFromCif() + .clickSaveOnPrintInstructionPage() + .clickRightButton() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .then(generatePinDCLastPart(harness)); + } + + public Function generatePinForMBC(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onMBCDetailPage() + .clickServiceOperations() + .clickGeneratePin() + .clickContinueToFopSingerSelectionPage() + .clickSignedAndContinueToPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onCreditCardSignConfirmation() + .clickSignConfirmed() + .onPrintInstructionPage() + .clickCenterButton() + .onMbcDetailPage(); + } + + public Function cancelOldRequestIfPossible() { + return start -> start + .selectFromListOfRequests() + .selectFirstApplication() + .clickOpenRequestDetail() + .onCreditCardScoringResultPage() + .then(cancelRequestIfPossible()) + .clickEndToClientRequestPage() + .onClientRequestPage() + .clickBackToMainClientPage(); + } + + public Function cancelRequestIfPossible() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementEnabled(NKK006_S001_CreditCardScoringResultPage.CANCEL_BUTTON)) { + return start -> start.clickCancel() + .onRequestCancellationPage() + .selectCancellationReason("Stornováno ze strany klienta") + .clickConfirmButtonToSignerSelectionPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickLeftButton() + .onCreditCardScoringResultPage(); + } else { + return null; + } + } + + + public Function clipRetailCreditCardBeforeSecondBankerPartOne(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onCreditCardDetailPage() + .clickClipCard() + .selectIdCardRadio() + .selectPassportRadio() + .clickDocumentsCheckButton() + .clickContinue() + .onCreditCardApplicantPage() + .fillHouseholdIncome(150000) + .fillPaymentsOutsideMMB(0) + .fillOtherMonthlyExpenses(1) + .selectFirstIncome() + .clickContinueToClipRequest() + .getAndFillEditedHigherAmount() + .clickContinueToTransitionPage(); + } + + public Function clipRetailCreditCardBeforeSecondBankerFinalPart(Harness harness) { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, NKK007_S005_FormalCheckPage.FORMAL_CHECK_PAGE_ID_XPATH, Lookup.XPATH)) { + return start -> start.onFormalCheckPage() + .then(this.clipRetailCreditCardPotentialFormalError()) + .then(this.clipRetailCreditCardBeforeSecondBankerPartTwo()); + } else { + return start -> start.onPrintInstructions() + .then(this.clipRetailCreditCardBeforeSecondBankerPartTwo()); + } + } + + public Function clipRetailCreditCardPotentialFormalError() { + return start -> start.clickFix() + .fillHouseholdIncome(150000) + .fillPaymentsOutsideMMB(0) + .fillOtherMonthlyExpenses(1) + .selectFirstIncome() + .clickContinueToClipRequest() + .getAndFillEditedHigherAmount() + .clickContinueToTransitionPage() + .onPrintInstructions() + .clickRightButton(); + } + + public Function clipRetailCreditCardBeforeSecondBankerPartTwo() { + return start -> start.clickRightButton() + .onSignerPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(SERVICE_INFORMATION_DOCUMENT_NAME) + .closePrintWindow() + .onSignaturePage() + .clickApplicantSignatureCheckbox() + .clickYes() + .onInstructionPage() + .clickCenterButton() + .onScoringPage() + .waitForLoader() + .onCreditCardScoringResultPage() + .waitForStatusAndRefresh("SOUHLAS") + .clickCreateProductAndPrintContract() + .onSecondBankerSearch() + .fillSurnameInput(harness.getGlobal("BANKER_NAME")) + .clickSearch() + .selectFirstName() + .clickContinue() + .onSecondBankerVerificationPage(); + } + + public Function clipRetailCreditCardAfterSecondBanker() { + return start -> start + .selectFromListOfRequests() + .selectFirstApplication() + .clickOpenRequestDetail() + .onCreditCardScoringResultPage() + .clickCreateProductAndPrintContract() + .onSecondBankerVerificationStatusPage() + .clickContinue() + .onSignerSelectionPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(CONTRACT_DOCUMENT_NAME) + .closePrintWindow() + .onSignContractPage() + .clickFirstSignerCheckbox() + .clickYesButtonToClientContractSignPage() + .clickLeftButton() + .onCreditCardScoringResultPage(); + } + + public Function declipRetailCreditCard(String cardNumber) { + return start -> start + .clickActiveProduct(cardNumber) + .onCreditCardDetailPage() + .storeCreditCardTotalCredit() + .clickDeclipCard() + .getAndFillEditedLowerAmount(harness) + .clickSelectFirstCard() + .fillNewLimits("1000", "1000", "1000") + .clickChangeLimits() + .clickContinueToScoringPage() + .waitForLoader() + .onCreditCardScoringResultPage() + .waitForStatusAndRefresh("SOUHLAS") + .clickCreateProductAndPrintContract() + .onSingerPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .saveDocumentUrl(DISPOSITION_DOCUMENT_NAME) + .closePrintWindow() + .onSignContractPage() + .clickFirstSignerCheckbox() + .clickYesButtonToClientContractSignPage() + .clickLeftButton() + .onCreditCardScoringResultPage() + .clickEnd(); + } + + public static NonClient setUpChild(Harness harness, String childBirthNumber) { + return harness.data().newNonClient() + .withBirthNumber(childBirthNumber) + .withEmail("dummy.A4@moneta.cz") + .withMobileNumber("737111000") + .withIdNumber("44672289") + .withIdNumberExpiration("13.9.2028") + .withMaritalStatus(MaritalStatus.SINGLE) + .withAccommodationType(AccommodationType.PARENTS) + .withDependants(0) + .withEducationLevel(EducationLevel.BASIC); + } + + public Function createNewChildCif(NonClient nonClient, String firstParentName, String lastParentName, String parentBirthNumber, String dateOfParentBirth) { + return start -> start + .clickCreateNewCustomer() + .clickCif() + .clickCzechNationality() + .clickContinue() + .onTabletCommunicationErrorPage() + .continueToSignError() + .clickCenterButton() + .onCreateNewCif() + .fillFirstAndLastNames(nonClient.firstName(), nonClient.lastName()) + .fillIdCardNumber(nonClient.idCardNumber()) + .clickContinue() + .onNotREgisteredWarning() + .clickCenterButton() + .onStatutoryAuthorityPage() + .clickAdd() + .onLegalRepesenatitveAddPage() + .selectLegalRepresentative("RODIČE") + .clickContinue() + .typeLastName(lastParentName) + .typeFirstName(firstParentName) + .typeBirthNumber(parentBirthNumber) + .typeDateOfBirthNumber(dateOfParentBirth) + .clickCzechNationalityButton() + .clickContinue() + .clickCenterButton() + .onChangeDataFO() + .clickSend() + .onIncomeEditPage() + .clickAcceptIncomeButtonAndDisableAlertIfVisible() + .clickBackButton() + .onPrintInstructionPage() + .clickLeftButton() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickLeftButton() + .onStatutoryAuthorityPage() + .clickContinue() + .onNewCifPage() + .tryCloseIdentificationPopup() + .fillPersonalIdentificationData() + .clickBornInCzechButton() + .fillPlaceOfBirth(nonClient.placeOfBirth()) + .clickToCzechRepublicNationality() + .fillResidency() + .fillStreet(nonClient.residencyAddress().getStreet()) + .fillStreetNumber(nonClient.residencyAddress().getDescriptiveNumber()) + .fillStreetOrientationNumber(nonClient.residencyAddress().getOrientationNumber()) + .fillCity(nonClient.residencyAddress().getCity()) + .fillZip(nonClient.residencyAddress().getZip()) + .clickResidencyInCzechRepublic() + .fillPersonalIdentificationData() + .selectToEducationLevel(nonClient.educationLevel().getUfoValue()) + .fillContacts() + .fillEmail(nonClient.email()) + .fillHomePhone(nonClient.fixPhoneNumberHome()) + .fillMobilePhonePrefix("420") + .fillMobilePhone(nonClient.mobileNumber()) + .fillIdentificationDocuments() + .fillFirstIdNumber(nonClient.idCardNumber()) + .clickAddSecondId() + .selectSecondId("Rodný list") + .fillSecondIdNumber("12345678") + .fillSecondIdValidity("31.12.2049") + .selectSecondIdAuthorities("Česká republika") + .clickConsents() + .clickContinue() + .onClientContractSignPage() + .clickLeftButton() + .onAmlSurveyPage() + .clickEnd() + .onSignerSelectionPage() + .clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentScanPage() + .clickSkipButton() + .onClientContractSignPage() + .clickCenterButton() + .onMainClientPage(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/cards/CreditCardsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/cards/CreditCardsTasks.java new file mode 100644 index 0000000..6b37823 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/cards/CreditCardsTasks.java @@ -0,0 +1,263 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.cards; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.*; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP002_S001_ApplicantPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP028_S001_SignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.*; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPageTransitions; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewProductTasks; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.PopCheckboxes.*; +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.CREDIT_CARD; + +public class CreditCardsTasks { + + private final Harness harness; + private NewProductTasks productTasks; + + public CreditCardsTasks(Harness harness) { + this.harness = harness; + this.productTasks = harness.tasks().ufo().banka().newProduct(); + } + + public Function createAndActivateCreditCard(NonClient applicant, int loanAmount, ProductType productType, CardBrand cardBrand) { + return start -> start + .then(createNewCreditCardApplicationDetailed(applicant, loanAmount, productType, cardBrand, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(createAccountsForNewCreditCardWithExistingIbAndBu(loanAmount)) + .then(activateCreditCardWithoutSignatureSelect(productType.getValue(), "OP", applicant.idCardNumber())); + } + + public Function fillCreditCardApplicantInformation(NonClient nonClient) { + return start -> start.selectMaritalStatusVerificationSource("údaj z OP") + .selectNoticePeriod("Ne") + .selectTrialPeriod("Ne") + .fillIncomeSourceCount(1) + .fillOtherExpenses(nonClient.otherExpenses()) + .fillMonthlyPayments(nonClient.otherLoanPayments()) + .fillNetMonthlyIncome(nonClient.netMonthlyIncome()) + .fillHouseholdIncome(nonClient.homeIncome()) + .fillAllowances(nonClient.wageDeductions()) + .selectOccupation("manager/ředitel") + .selectPOP("Potvrzení o příjmu") + .clickPopCheckbox(SIGNED) + .clickPopCheckbox(BIRTHNUMBER) + .clickPopCheckbox(NO_DEPENDANTS) + .clickPopCheckbox(AGE) + .clickPopCheckbox(EMPLOYER_STAMP) + .clickPoPContinue() + .clickContinue() + .onSignaturePage(); + } + + public Function fillQuickCreditCardRequest(CreditCardsAdvantages advantage, CreditCardsPromo promo, String creditAmount) { + return start -> start.fillCreditAmountInput(creditAmount) + .selectAdvantage(advantage.getAdvantage()) + .selectPromoEvent(promo.getPromo()) + .clickWithoutRecommendationCheckbox() + .clickSendButton() + .onSelectionOfSubmittedDocumentsPage(); + } + + public Function fillCreditCardRequestForUpdate( + CreditCardsAdvantages advantage, CreditCardsPromo promo, String creditAmount, NeedInsurance needInsurance, ProductType productType, + CardBrand cardBrand) { + return start -> start.fillCreditAmountInput(creditAmount) + .selectAdvantage(advantage.getAdvantage()) + .selectPromoEvent(promo.getPromo()) + .clickWithoutRecommendationCheckbox() + .selectOverdraftInsurance(needInsurance) + .clickChangeApplicationParameters() + .dismissCardApplicationAlert() + .clickSendButton() + .onQuickCreditCardApplicationDetailsPage() + .selectProductType(productType) + .selectCardType(CardType.KARTA_KARTA) + .selectCardBrand(cardBrand) + .selectPromo(promo) + .setRequestedLimit(creditAmount) + .clickContinueButton(); + } + + public Function createNewCreditCardApplication(NonClient applicant, int amount) { + return start -> start + .then(createNewCreditCardApplication(applicant, amount, HCisAllStavZadosti.NONE)); + } + + public Function createNewCreditCardApplication(NonClient applicant, int amount, HCisAllStavZadosti expectedAppState) { + return start -> start.createNewProduct(CREDIT_CARD) + .onCreditCardPage() + .then(fillCreditCardPage(amount)) + .onSelectionOfSubmittedDocumentsPage() + .then(productTasks.selectIDs()) + .then(productTasks.fillApplicantPage(applicant, false)) + .then(finishApplication(expectedAppState.getValue())); + } + + public Function createNewCreditCardApplicationDetailed(NonClient applicant, int loanAmount, ProductType productType, CardBrand brand, HCisAllStavZadosti expectedAppState) { + return start -> start + .createNewProduct(CREDIT_CARD) + .onCreditCardPage() + .clickCheckRequestParametersCheckbox() + .dismissCardApplicationAlert() + .then(fillCreditCardPage(loanAmount)) + .onCreditCardApplicationDetailsPage() + .selectProductType(productType) + .selectCardBrand(brand) + .clickContinueButton() + .selectPinDistributionMethod(PinDistributionMethod.POST) + .dismissPinChargeAlert() + .dismissClientNotificationAlert() + .onSelectionOfSubmittedDocumentsPage() + .then(productTasks.selectIDs()) + .then(productTasks.fillApplicantPage(applicant, false)) + .then(finishApplication(expectedAppState.getValue())); + } + + public Function createNewCreditCardApplicationWithPrefilledData(int amount) { + return start -> start + .then(createNewCreditCardApplicationWithPrefilledData(amount, HCisAllStavZadosti.NONE)); + } + + public Function createNewCreditCardApplicationWithPrefilledData(int amount, HCisAllStavZadosti expectedAppStatus) { + return start -> start.createNewProduct(CREDIT_CARD) + .onCreditCardPage() + .then(fillCreditCardPage(amount)) + .onApplicantPage() + .then(finishApplication(expectedAppStatus.getValue())); + } + + public Function createAccountsForNewCreditCardWithExistingIbAndBu(int amount) { //uses application created in the same test + return createAccountsForNewCreditCardWithExistingIbAndBu(harness.get(NKK006_S001_CreditCardScoringResultPage.APP_ID_STORE), amount); + } + + public Function createAccountsForNewCreditCardWithExistingIbAndBu(String applicationId, int amount) { + return start -> start + .then(productTasks.showApplicationDetails(applicationId)) + .then(createAccountsWithExistingIbAndBu(amount)); + } + + private Function createAccountsWithExistingIbAndBu(int amount) { + return start -> start.then(selectLoanAmountAndContinueUntilSignerSelectionPage(amount)) + .onSignContractPage() + .then(signApplicationAndContinueUntilCollectionSettings()) + .onClientRequestsPage() + .clickBackToMainClientPage(); + } + + private Function selectLoanAmountAndContinueUntilSignerSelectionPage(int loanAmount) { + return start -> start + .onCreditCardScoringResultPage() + .clickCreateProductAndPrintContract() + .onSelectingApprovedVariantsPage() + .clickToLoanAmountRadioButton() + .typeIntoLoanAmount(String.valueOf(loanAmount)) + .clickSelect() + .continueToPrintCopyOfContractProposalPage() + .clickContinue() + .onSignerSelectionPage() + .clickContinue(); + } + + public Function activateCreditCardWithSignatureSelect(String cardType, String idCardType, String idCardNumber) { + return start -> start.clickActiveProduct(cardType) + .onCreditCardDetailPage() + .clickActivateCard() + .onDebitCardActivation() + .selectIdCardType(idCardType) + .fillIdCardNumber(idCardNumber) + .clickActivateCard() + .onSignerSelectionPage() + .clickContinue() + .onConfirmSignaturePage() + .clickRightButton() + .onCreditCardDetailPage() + .storeProductStat() + .clickBackToClient(); + } + + public Function activateCreditCardWithoutSignatureSelect(String cardType, String idCardType, String idCardNumber) { + return start -> start.clickActiveProduct(cardType) + .onCreditCardDetailPage() + .clickActivateCard() + .onDebitCardActivation() + .selectIdCardType(idCardType) + .fillIdCardNumber(idCardNumber) + .clickActivateCard() + .onConfirmSignaturePage() + .clickRightButton() + .onCreditCardDetailPage() + .storeProductStat() + .clickBackToClient(); + } + + private Function fillCreditCardPage(int amount) { + return start -> start.fillAmount(amount) + .clickNoRecommendation() + .selectPromo("Bez akce") + .clickSend(); + } + + private Function waitForStatusAndLogData(String expectedAppStatus) { + return start -> start.waitForStatusAndRefresh(expectedAppStatus) + .storeAppKey() + .storeAppId() + .storeAppStat(); + } + + public Function createProductTransferApplicationWithIdSelection(String currentProduct, NonClient applicant) { + return start -> start + .clickActiveProduct(currentProduct) + .onCreditCardDetailPage() + .clickProductTransferButton() + .onIdSelectionPage() + .then(productTasks.selectIDs()) + .then(productTasks.fillApplicantPage(applicant, false)) + .clickContinue() + .onProductTransferPage() + .clickCreditAccount() + .clickSendButton(); + } + + public Function createProductTransferApplication(String currentProduct, NonClient applicant) { + return start -> start + .clickActiveProduct(currentProduct) + .onCreditCardDetailPage() + .clickProductTransferButton() + .then(productTasks.fillApplicantPage(applicant, false)) + .clickContinue() + .onProductTransferPage() + .clickCreditAccount() + .clickSendButton(); + } + + private Function finishApplication(String expectedAppState) { + return start -> start + .clickContinue() + .onSignaturePage() + .then(productTasks.finishLoanApplication()) + .onCreditCardScoringResultPage() + .then(waitForStatusAndLogData(expectedAppState)) + .clickEnd(); + + } + + private Function signApplicationAndContinueUntilCollectionSettings() { + return start -> start + .clickFirstSignerCheckbox() + .clickYesButton() + .clickOk() + .clickContinue() + .clickContinue() + .clickBack() + .clickEnd(); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/CreateStatutoryAuthority.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/CreateStatutoryAuthority.java new file mode 100644 index 0000000..97377ab --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/CreateStatutoryAuthority.java @@ -0,0 +1,141 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.clients; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF111_S016_CreateNewCifPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.newCif.CIF111_S001_NewCifDataNavigation; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.CIF013_S002_ClientNotFoundPage; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.function.Function; + +public class CreateStatutoryAuthority { + + private final Harness harness; + + public CreateStatutoryAuthority(Harness harness) { + this.harness = harness; + } + + public Function createStatutoryAuthority(NonClient nonPoClient) { + return start -> start + .clickCreateNewCustomer() + .then(harness.tasks().ufo().banka().newClient().selectDocumentIdCard("OP se strojově čitelnými údaji")) + .onCreateNewCifpage() + .then(fillFonBasicData(nonPoClient)) + .then(fillStatutoryAuthority(nonPoClient)) + .clickSignedAndContinueToPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentScanPage() + .clickSkipButton() + .onClientContractSignPage() + .clickLeftButton() + .onClientContractSignPage() + .clickCenterButton() + .onMainClientPage(); + } + + public Function fillFonBasicData(NonClient nonPoClient) { + return start -> start + .fillFirstAndLastNames(nonPoClient.firstName(), nonPoClient.lastName()) + .selectIdType("Občanský průkaz") + .fillIdCardNumber(nonPoClient.idNumber()) + .clickContinue() + .then(harness.tasks().ufo().banka().newClient().skipNotRegisteredWarningIfVisible()) + .tryCloseIdentificationPopup(); + } + + public Function fillStatutoryAuthorityData(NonClient nonPoClient) { + return start -> start + .then(fillPersonalData(nonPoClient)) + .then(fillResidencyInfo(nonPoClient)) + .then(fillClientContacts(nonPoClient)) + .then(fillIdentificationDocuments(nonPoClient)) + .then(fillEmployerDataWithClientData(nonPoClient)) + .then(fillAdditionalInformation(nonPoClient)) + .clickConsents() + .clickContinue() + .onAmlSurveyPage() + .then(harness.tasks().ufo().banka().newClient().fillAmlSurveyFon()) + .then(harness.tasks().ufo().banka().newClient().finishAmlSurveyFon()) + .onAmlSurveyPage() + .then(harness.tasks().ufo().banka().newClient().fillBankersAmlSurveyFon()) + .onSignerSelectionPage(); + } + + public Function fillStatutoryAuthority(NonClient nonPoClient) { + return start -> start + .then(fillPersonalData(nonPoClient)) + .then(fillResidencyInfo(nonPoClient)) + .then(fillClientContacts(nonPoClient)) + .then(fillIdentificationDocuments(nonPoClient)) + .then(fillAdditionalInformation(nonPoClient)) + .clickConsents() + .clickContinue() + .onAmlSurveyPage() + .then(harness.tasks().ufo().banka().newClient().fillAmlSurveyFon()) + .then(harness.tasks().ufo().banka().newClient().finishAmlSurveyFon()) + .onAmlSurveyPage() + .then(harness.tasks().ufo().banka().newClient().fillBankersAmlSurveyFon()) + .onSignerSelectionPage(); + } + + public Function fillPersonalData(NonClient nonPoClient) { + return start -> start + .tryCloseIdentificationPopup() + .fillPersonalIdentificationData() + .fillPlaceOfBirth(nonPoClient.residencyAddress().getCity()) + .clickBornInCzechButton() + .selectToEducationLevel(nonPoClient.educationLevel().getUfoValue()); + } + + public Function fillResidencyInfo(NonClient nonPoClient) { + return start -> start + .fillResidency() + .fillStreet(nonPoClient.residencyAddress().getStreet()) + .fillStreetNumber(nonPoClient.residencyAddress().getDescriptiveNumber()) + .clickMagnifyGlassButton() + .clickFirstFoundAddress() + .clickResidencyInCzechRepublic(); + } + + public Function fillClientContacts(NonClient nonPoClient) { + return start -> start + .fillContacts() + .fillEmail(nonPoClient.email()) + .fillMobilePhone(nonPoClient.mobileNumber()) + .fillMobilePhonePrefix("420"); + } + + public Function fillIdentificationDocuments(NonClient nonPoClient) { + return start -> start + .fillIdentificationDocuments() + .fillFirstIdValidity(nonPoClient.idNumberExpiration()) + .fillControlNumber(nonPoClient.idNumberCheckDigit()) + .clickAddSecondId() + .selectSecondId("Řidičský průkaz") + .fillSecondIdNumber(nonPoClient.driverLicenceId()) + .fillSecondIdValidity(nonPoClient.drivingLicenceExpiration()); + } + + public Function fillEmployerDataWithClientData(NonClient nonClient) { + return start -> start + .fillEmployment() + .selectIncomeType(nonClient.incomeType().getUfoValue()) + .selectIncomeSubtype(nonClient.incomeSubtype().getUfoValue()) + .selectEmployment(nonClient.occupationType().getUfoValue()); + } + + public Function fillAdditionalInformation(NonClient nonPoClient) { + return start -> start + .fillAdditionalInformation() + .selectMaritalOfStatus(nonPoClient.maritalStatus().getUfoValue()) + .selectAccommodationType(nonPoClient.accommodationType().getUfoValue()) + .fillResidencySince(nonPoClient.currentAddressSinceYear().toString()) + .fillDependants(String.valueOf(nonPoClient.dependants())); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewAcceleratedFopClientTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewAcceleratedFopClientTasks.java new file mode 100644 index 0000000..47b5505 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewAcceleratedFopClientTasks.java @@ -0,0 +1,119 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.clients; + +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS070_S001_ScanDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.*; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.CIF013_S002_ClientNotFoundPage; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.function.Function; + +public class NewAcceleratedFopClientTasks { + + public Function createAcceleratedFopCif(NonClient nonClient) { + return start -> start + .clickCreateAcceleratedFop() + .then(fillBasicBusinessData(nonClient)) + .then(uploadScannedDocuments()) + .then(fillIdentificationFopData(nonClient)) + .then(fillPersonalAndContactData(nonClient)) + .then(checkAntiLaunderingStatements()) + .then(printRequest()) + .clickRightButton() + .onWaitingForModulationPage() + .waitForModulation(30) + .onClientContractSignPage() + .clickLeftButton() + .onMainClientPage(); + } + + public Function fillBasicBusinessData(NonClient nonClient) { + return start -> start + .fillCompanyName(nonClient.fullName()) + .clickMagnifyingGlass() + .typeAddress("Vyskočilova 1b") + .clickSearchForAddress() + .clickFirstFoundAddressAndConfirm() + .clickCzechFlagForBusinessAddress() + .fillBusinessFoundedDate("2.2.2013") + .fillLegalForm("101") + .fillOkecCode("239100") + .selectEconomicalSector("Osoby samostatně výdělečně činné") + .clickCzechFlagEstablishment() + .clickCzechFlagTaxResidency() + .selectNumberOfEmployees("žádný") + .continueToScanDocumentsPage(); + } + + public Function uploadScannedDocuments() { + return start -> start + .uploadAndAssignFakeRegisterRecord() + .saveUploadedDocument() + .clickContinue() + .onIdentificationDataPage(); + } + + public Function fillIdentificationFopData(NonClient nonClient) { + return start -> start + .fillFirstName(nonClient.firstName()) + .fillLastName(nonClient.lastName()) + .fillBirthDate(nonClient.birthDate()) + .fillBirthPlace(nonClient.placeOfBirth()) + .clickCzechCountryOfBirth() + .fillIdValidTill(nonClient.idNumberExpiration()) + .fillIdNumber(nonClient.idNumber()) + .fillBirthNumber(nonClient.birthNumber()) + .fillIdControlNumber("0") + .clickMagnifyingGlass() + .typeAddress("Vyskočilova 1b") + .clickSearchForAddress() + .clickFirstFoundAddressAndConfirm() + .clickCzechFlagPermanentResidency() + .fillActualResidencySince("2.3.2015") + .clickMaleGender() + .selectSecondId("ŘP") + .fillSecondIdNumber(nonClient.driverLicenceId()) + .fillSecondIdValidTill(nonClient.drivingLicenceExpiration()) + .clickCzechFlagSecondId() + .clickGdprCheckbox() + .continueToPersonalAndContactDataPage(); + } + + public Function fillPersonalAndContactData(NonClient nonClient) { + return start -> start + .selectMaritalStatus(nonClient.maritalStatus().getUfoValue()) + .selectEducationLevel(nonClient.educationLevel().getUfoValue()) + .selectAccommodationType(nonClient.accommodationType().getUfoValue()) + .fillNumberOfDependents(String.valueOf(nonClient.dependants())) + .fillCompanyEmail(nonClient.email()) + .fillCompanyMobile("420" + nonClient.mobileNumber()) + .fillPersonalEmail(nonClient.email()) + .fillPersonalMobile("420" + nonClient.mobileNumber()) + .clickAcceptConsents() + .continueToAntiLaunderingStatementPage(); + } + + public Function checkAntiLaunderingStatements() { + return start -> start + .clickCashlessTransaction() + .selectCurrencyMajority("CZK") + .clickNoForeignTransactionsSend() + .clickNoForeignTransactionsReceive() + .clickNoLoansExpected() + .clickNoMoreThanHalf() + .selectLastTurnover("1 000 000 - 2 999 999 Kč") + .selectMmbTurnover("1 000 000 - 2 999 999 Kč") + .clickNoPoliticallyExposedPerson() + .continueToAcceleratedFopCifSummary(); + } + + public Function printRequest() { + return start -> start + .continueToModulationPage() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onClientContractSignPage(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewClientTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewClientTasks.java new file mode 100644 index 0000000..9692465 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewClientTasks.java @@ -0,0 +1,418 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.clients; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.fon.*; +import cz.moneta.test.dsl.ufo.banka.pages.fon.newCif.CIF111_S001_NewCifDataNavigation; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.CIF013_S002_ClientNotFoundPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.endpoints.testautomationdb.TestAutomationDbEndpoint; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.web.Lookup; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage.PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; + +public final class NewClientTasks { + + private final Harness harness; + private static final String dateFormat = "dd.MM.yyyy"; + + public NewClientTasks(Harness harness) { + this.harness = harness; + } + + public HKO101_S001_MainClientPage openUfoAndCreateClient(Harness harness, Credentials credentials, NonClient applicant) { + return harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().banka().login().withCredentialsAndSelectFirstOmAndTurnOffSignpad(credentials)) + .closeSearchedHistoryIfVisible() + .then(createWithIdCard(applicant, credentials.getUsername())); + } + + /** + * FOR LOCAL USE ONLY!!! DON'T USE IT ON JENKINS!!! + * For correct work, parameter endpoints.ufo.banka.url in resources/envs/ must be changed + * TODO: make it work on Jenkins + */ + public HKO101_S001_MainClientPage openUfoTomcatAndCreateClient(Harness harness, Credentials credentials, NonClient applicant) { + return harness.withUfo() + .openLoginPageTomcat() + .selectFirstOm() + .clickContinueButton() + .onClientSearchPageUfoBanka() + .then(harness.tasks().ufo().banka().login().turnSignpadOff()) + .then(createWithIdCard(applicant, credentials.getUsername())); + } + + public HKO101_S001_MainClientPage openUfoAndFindClient(Harness harness, Credentials credentials, String birthNumber) { + return harness + .withUfo() + .openLoginPage() + .then(harness.tasks().ufo().banka().login().withCredentialsAndSelectFirstOmAndTurnOffSignpad(credentials)) + .closeSearchedHistoryIfVisible() + .fillSearchTerm(birthNumber) + .clickSearchByRc() + .onClientDetailPage() + .storeClientIdNumber() + .storeClientFullName() + .getBirthNumber(); + } + + /** + * FOR LOCAL USE ONLY!!! DON'T USE IT ON JENKINS!!! + * For correct work, parameter endpoints.ufo.banka.url in resources/envs/ must be changed + * TODO: make it work on Jenkins + */ + public HKO101_S001_MainClientPage openUfoTomcatAndFindClient(Harness harness, Credentials credentials, String birthNumber) { + return harness + .withUfo() + .openLoginPageTomcat() + .selectFirstOm() + .clickContinueButton() + .onClientSearchPageUfoBanka() + .then(harness.tasks().ufo().banka().login().turnSignpadOff()) + .fillSearchTerm(birthNumber) + .clickSearchByRc() + .onClientDetailPage(); + } + + public Function create(String bankerUsername) { + return create(harness.data().newNonClient(), bankerUsername); + } + + public Function create(NonClient nonClient, String bankerUsername) { + return start -> start.then(searchNotExistingClient(nonClient)) + .clickCreateNewCustomer() + .then(selectDocumentIdCard("OP se strojově čitelnými údaji")) + .onCreateNewCifpage() + .then(createCustomerWith(nonClient)) + .then(fillPersonalIdentificationData(nonClient)) + .then(fillPersonClientContacts(nonClient)) + .then(fillIdentificationDocuments(nonClient)) + .fillAdditionalInformation() + .selectRelationshipToTheBank(nonClient.relationshipToTheBank().getName()) + .then(fillAdditionalData(nonClient)) + .clickConsents() + .clickContinue() + .onAmlSurveyPage() + .then(fillAmlSurvey()) + .then(harness.tasks().ufo().banka().newFopClient().finishAmlSurvey()) + .onAmlSurveyPage() + .then(harness.tasks().ufo().banka().newFopClient().fillBankersAmlSurvey()) + .onSignerSelectionPage() + .clickSignedPersonallyPhysicallyAndContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onClientContractSignPage() + .clickLeftButton() + .onScanDocumentsPage() + .clickSkipButton() + .onMainClientPage() + .then(logCreatedFoClientDataIntoDatabase(nonClient, bankerUsername)) + .then(harness.tasks().ufo().banka().contactAddress().createContactAddress()); + } + + public Function fillAmlSurveyFon() { + return start -> start + .clickIncomeFromBusiness() + .clickContinue() + .onAmlSurveyPage() + .clickNotPoliticallyExposedPerson() + .clickContinue() + .onAmlSurveyPage() + .clickCzechRepublicTaxesResidency() + .clickContinue() + .onAmlSurveyPage() + .clickNotAnotherTaxesResidency() + .clickContinue() + .onAmlSurveyPage() + .clickPrimaryMmbAccountYes() + .clickContinue() + .onAmlSurveyPage() + .clickAccountInDifferentBankNo() + .clickContinue(); + } + + public Function fillBankersAmlSurveyFon() { + return start -> start + .clickPotentialClientNotWithThirdPerson() + .clickContinue(); + } + + public Function finishAmlSurveyFon() { + return start -> start + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onClientContractSignPage() + .clickCenterButton() + .onClientContractSignPage() + .clickLeftButton(); + } + + public Function selectDocumentIdCard(String idCardType) { + return start -> start + .clickIdCard() + .selectIdCardType(idCardType) + .clickContinue(); + } + + private Function fillIdentificationDocuments(NonClient nonClient) { + return start -> start.fillIdentificationDocuments() + //.selectFirstId("ID card") + //.fillFirstIdNumber(nonClient.idCardNumber()) + .fillFirstIdValidity(nonClient.idNumberExpiration()) + //.selectFirstIdAuthorities("Česká republika") + .clickAddSecondId() + .selectSecondId("Řidičský průkaz") + .fillSecondIdNumber(nonClient.driverLicenceId()) + .fillSecondIdValidity(nonClient.drivingLicenceExpiration()) + .selectSecondIdAuthorities("Česká republika"); + } + + private Function fillIdentificationDocumentsWithExpiration(NonClient nonClient) { + return start -> start.fillIdentificationDocuments() + .fillFirstIdValidity(DateUtils.getDateWithFormat(nonClient.idCard().getValidTo(), dateFormat)) + .clickAddSecondId() + .selectSecondId("Řidičský průkaz") + .fillSecondIdNumber(nonClient.driverLicenceId()) + .fillSecondIdValidity(DateUtils.getDateWithFormat(nonClient.driveLicenceExpiryDateRaw(), dateFormat)); + } + + @Deprecated + private Function fillEmployedData(NonClient nonClient) { + return start -> start.fillEmployment() + .selectIncomeType(nonClient.incomeType().getUfoValue()) + .selectIncomeSubtype(nonClient.incomeSubtype().getUfoValue()) + .selectEmployment(nonClient.occupationType().getUfoValue()); + } + + public Function fillFundamentalRegistersInfo(NonClient nonClient) { + return start -> start + .fillFirstName(nonClient.firstName()) + .fillLastName(nonClient.lastName()) + .fillBirthNumber(nonClient.birthNumber()) + .fillBirthDate(nonClient.birthDate()) + .fillDocumentNumber(nonClient.idNumber()) + .clickCzechNationality(); + } + + public Function fillPersonalDataFON(NonClient nonClient) { + return start -> start + .fillBirthPlace(nonClient.placeOfBirth()) + .clickCzechBirthCountry() + .clickCzechNationality() + .clickAddressMagnifyingGlass() + .fillAddressSearchField("vyskocilova 1b, praha") + .clickAddressSearch() + .clickFirstFoundAddress() + .clickSelectAddress() + .clickCzechCountry() + .fillValidUntil(nonClient.idNumberExpiration()) + .clickNotPoliticallyExposedPerson(); + } + + public Function fillAdditionalIdentificationDocument(NonClient nonClient) { + return start -> start + .clickOtherIdentificationDocument() + .selectOtherIdentificationDocumentType("Řidičský průkaz") + .fillOtherIdentificationDocumentNumber(nonClient.driverLicenceId()) + .fillOtherIdentificationDocumentValidUntil(nonClient.drivingLicenceExpiration()) + .clickOtherIdentificationDocumentCzechCountry(); + } + + public Function fillAdditionalInformationForScoring(NonClient nonClient) { + return start -> start + .selectEducation(nonClient.educationLevel().getUfoValue()) + .fillDependentPersonCount("2") + .selectMarriageStatus(nonClient.maritalStatus().getUfoValue()) + .selectHousingType("Vlastní dům / byt") + .fillLivingOnAddressFrom("1.1.2020") + .selectRelationshipWithBank(nonClient.relationshipToTheBank().getName()); + } + + private Function fillPersonalIdentificationData(NonClient nonClient) { + return start -> start.fillPersonalIdentificationData() + .clickBornInCzechButton() + .fillPlaceOfBirth(nonClient.placeOfBirth()) + .clickToCzechRepublicNationality() + .fillResidency() + .fillStreet(nonClient.residencyAddress().getStreet()) + .fillStreetNumber(nonClient.residencyAddress().getDescriptiveNumber()) + .fillStreetOrientationNumber(nonClient.residencyAddress().getOrientationNumber()) + .fillCity(nonClient.residencyAddress().getCity()) + .fillZip(nonClient.residencyAddress().getZip()) + .clickResidencyInCzechRepublic() + .fillPersonalIdentificationData() + .selectToEducationLevel(nonClient.educationLevel().getUfoValue()); + } + + private Function fillPersonClientContacts(NonClient nonClient) { + return start -> start.fillContacts() + .fillEmail(nonClient.email()) + .fillHomePhone(nonClient.fixPhoneNumberHome()) + .fillMobilePhonePrefix("420") + .fillMobilePhone(nonClient.mobileNumber()); + } + + public Function fillContactInformation(NonClient nonClient) { + return start -> start + .fillEmail(nonClient.email()) + .fillMobilePhone(nonClient.mobileNumber()); + } + + private Function fillAdditionalData(NonClient nonClient) { + DateFormat dateFormat = new SimpleDateFormat("yyyy"); + String residencySince = dateFormat.format(nonClient.currentAddressSinceRaw()); + + return start -> start.fillAdditionalInformation() + .selectMaritalOfStatus(nonClient.maritalStatus().getUfoValue()) + .clickSjmNo() + .selectAccommodationType(nonClient.accommodationType().getUfoValue()) + .fillResidencySince(residencySince); + } + + private Function searchNotExistingClient(NonClient nonClient) { + return start -> start.fillSearchTerm(nonClient.birthNumber()) + .closeSearchedHistoryIfVisible() + .clickSearchByRc() + .onClientNotFound(); + } + + public Function createCustomerWith(NonClient nonClient) { + return start -> start.fillFirstAndLastNames(nonClient.firstName(), nonClient.lastName()) + .clickCzechCitizenshipRadio() + .selectIdType("Občanský průkaz") + .fillIdCardNumber(nonClient.idCardNumber()) + .skipNameCheck() + .clickContinue() + .then(harness.tasks().ufo().banka().newClient().skipNotRegisteredWarningIfVisible()) + .tryCloseIdentificationPopup(); + } + + public Function skipNotRegisteredWarningIfVisible() { + + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(2, PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onNotREgisteredWarning() + .clickLeftButton() + .onCreateNewCifPage() + .clickContinue() + .onNewCifDataNavigation(); + } else { + return start -> start + .onNewCifDataNavigation(); + } + } + + public Function createWithIdCard(NonClient nonClient, String bankerUsername) { + return start -> start.then(searchNotExistingClient(nonClient)) + .clickCreateNewCustomer() + .then(harness.tasks().ufo().banka().newClient().selectDocumentIdCard("OP se strojově čitelnými údaji")) + .onCreateNewCifpage() + .then(createCustomerWith(nonClient)) + .tryCloseIdentificationPopup() + .then(fillPersonalIdentificationData(nonClient)) + .then(fillPersonClientContacts(nonClient)) + .fillResidency() + .clickContactAddressSameAsPermanentCheckbox() + .then(fillIdentificationDocumentsWithExpiration(nonClient)) + .fillAdditionalInformation() + .then(fillAdditionalData(nonClient)) + .clickConsents() + .clickContinue() + .onAmlSurveyPage() + .then(fillAmlSurvey()) + .then(harness.tasks().ufo().banka().newFopClient().finishAmlSurvey()) + .onAmlSurveyPage() + .then(harness.tasks().ufo().banka().newFopClient().fillBankersAmlSurvey()) + .onSignerSelectionPage() + .clickSignedPersonallyPhysicallyAndContinue() + .onPrintPage() + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onScanDocumentsPageDMS001() + .clickSkipButton() + .onClientContractSignPage() + .clickLeftButton() + .onClientContractSignPage() + .clickLeftButton() + .onScanDocumentsPage() + .clickSkipButton() + .onMainClientPage() + .then(logCreatedFoClientDataIntoDatabase(nonClient, bankerUsername)); + } + + public Function checkRegistryLoad(NonClient nonClient) { + return start -> start.checkRegistryLoad() + .checkFirstName(nonClient.firstName()) + .checkLastName(nonClient.lastName()) + .checkSexMan() + .checkBirthNumber(nonClient.birthNumber()) + .checkDateOfBirth(TestUtils.parseBirthDateAsString(nonClient.birthNumber())) + .checkStreet(nonClient.residencyAddress().getStreet()) + .checkStreetDescriptiveNumber(nonClient.residencyAddress().getDescriptiveNumber()) + .checkStreetOrientationNumber(nonClient.residencyAddress().getOrientationNumber()) + .checkCity(nonClient.residencyAddress().getCity()) + .checkCityPart(nonClient.residencyAddress().getCityPart()) + .checkZip(nonClient.residencyAddress().getZip()) + .checkPostOffice(nonClient.residencyAddress().getCity()) + .checkPlaceOfBirth(nonClient.placeOfBirth()) + .checkBornCountry("Česká republika") + .checkNationality(nonClient.nationality()) + .checkResidencyCountry("Česká republika") + .checkFirstIdType("Občanský průkaz") + .checkFirstIdNumber(nonClient.idCard().getNumber()) + .checkFirstIdValidity(DateUtils.getDateWithFormat(nonClient.idCard().getValidTo(), "d.M.yyyy")) + .checkControlNumberAndDisabled(""); + } + + public Function fillAmlSurvey() { + return start -> start + .clickIncomeFromBusiness() + .clickContinue() + .onAmlSurveyPage() + .clickNotPoliticallyExposedPerson() + .clickContinue() + .onAmlSurveyPage() + .clickCzechRepublicTaxesResidency() + .clickContinue() + .onAmlSurveyPage() + .clickNotAnotherTaxesResidency() + .clickContinue() + .onAmlSurveyPage() + .clickPrimaryMmbAccountYes() + .clickContinue() + .onAmlSurveyPage() + .clickAccountInDifferentBankNo() + .clickContinue(); + } + + private Function logCreatedFoClientDataIntoDatabase(NonClient nonClient, String bankerUsername) { + String createdCustomerCif = harness.get(CLIENT_CIF_STORE_KEY); + String createdDateTime = harness.tasks().dataPrepareTasks().getStartDateTime(); + + UfoEndpoint ufoEndpoint = harness.getEndpoint(UfoEndpoint.class); + + harness.getEndpoint(TestAutomationDbEndpoint.class) + .insertCreatedClientInfo(createdCustomerCif, nonClient.birthNumber(), null, createdDateTime, bankerUsername, "UFO", ufoEndpoint.getNodeHost()); + return start -> start; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewFopClientTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewFopClientTasks.java new file mode 100644 index 0000000..d5352f1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewFopClientTasks.java @@ -0,0 +1,191 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.clients; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS070_S001_ScanDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.GDP001_S001_ClientConsentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF001_S003_CreateNewCompanyCifPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF009_S001_CreateNewFoCifAsFopPartPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF034_S001_CompanyAntiLaunderingStatement; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.CIF013_S002_ClientNotFoundPage; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.text.SimpleDateFormat; +import java.util.function.Function; + +public final class NewFopClientTasks { + + private static final String dateFormat = "dd.MM.yyyy"; + private final Harness harness; + + public NewFopClientTasks(Harness harness) { + this.harness = harness; + } + + public Function createFopCif(NonClient nonClient) { + return start -> start + .clickCreateNewCompany() + .then(fillNewFop(nonClient)) + .uploadAndAssignFakeId() + .saveUploadedDocument() + .clickContinue() + .onPersonIdentificationInFundamentaRegisters() + .then(harness.tasks().ufo().banka().newClient().fillFundamentalRegistersInfo(nonClient)) + .clickContinue() + .clickLeftButton() + .onPersonalDataFON() + .then(harness.tasks().ufo().banka().newClient().fillPersonalDataFON(nonClient)) + .then(harness.tasks().ufo().banka().newClient().fillAdditionalIdentificationDocument(nonClient)) + .then(harness.tasks().ufo().banka().newClient().fillContactInformation(nonClient)) + .then(harness.tasks().ufo().banka().newClient().fillAdditionalInformationForScoring(nonClient)) + .clickContinue() + .then(fillAmlSurvey()) + .then(finishAmlSurvey()) + .onAmlSurveyPage() + .then(fillBankersAmlSurvey()) + .onScanDocumentsPage() + .uploadAndAssignFakeZL() + .clickContinue() + .onClientConsentPage() + .then(finishRestOfCif()); + } + + /** + * BEWARE: next page could be either CIF011 (FO CIF exists) or CIF009 (otherwise) + */ + public Function fillNewFop(NonClient nonClient) { + return start -> start + //TODO keep prefilled data + .fillLegalFormCode("101") + .selectLegalForm("FOP_Živnostník - fyzická osoba - tuzemec - nezapsaná v OR") + //TODO keep prefilled data + .fillOkecCode("239100") + .selectOkecTitle("Výroba chladící vody") + //TODO keep prefilled data + .then(fillPersonalInformation(nonClient)) + .fillStartDate(DateUtils.getDateWithFormat(nonClient.occupationEmploymentFromRaw(), dateFormat)) + .fillEmail(nonClient.email()) + .fillMobilePhone(nonClient.mobileNumber()) + .selectEmployeeCount("žádný") + .selectEconomySectorFop(25) + .clickSubmit() + .onIDDocumentsCopy() + .then(harness.tasks().ufo().banka().newClient().selectDocumentIdCard("OP se strojově čitelnými údaji")) + .onScanDocumentsPage(); + } + + public Function fillPersonalInformation(NonClient nonClient) { + return start -> start + .fillCompanyName(nonClient.fullName()) + .fillAbbreviatedName(nonClient.fullName()) + .clickAddressLookupMagnifyGlass().fillAddressLookup("vyskocilova 1b, praha").clickDoAddressSearch() + .clickFirstFoundAddress() + .clickChooseAdress() + .clickCzechCountryOfFoundation() + .clickCzechCitizenship(); + } + + public Function fillNewFo(NonClient nonClient) { + return start -> start + .fillPlaceOfBirth(nonClient.placeOfBirth()) + .clickBornInCzechRepublic() + .clickCompanySeatSameAsResidency() + .fillEmail(nonClient.email()) + .selectOccupation(nonClient.occupationType().getUfoValue()) + .then(fillFirstOtherId(nonClient)) + .then(fillPrivateInformation(nonClient)) + .submitCif(); + } + + public Function fillFirstOtherId(NonClient nonClient) { + return start -> start + .selectFirstOtherId("ŘP") + .fillFirstOtherIdNumber(nonClient.driverLicenceId()) + .fillFirstOtherIdValidity(new SimpleDateFormat(dateFormat).format(nonClient.driveLicenceExpiryDateRaw())) + .clickFirstOtherIdIssuedByCzechAuthorities(); + } + + public Function fillPrivateInformation(NonClient nonClient) { + return start -> start + .selectEducationLevel(nonClient.educationLevel().getUfoValue()) + .selectMaritalStatus(nonClient.maritalStatus().getUfoValue()) + .selectResidencyType(nonClient.accommodationType().getUfoValue()) + .fillCurrentResidencySince("1.1.2005"); + } + + public Function finishRestOfCif() { + return start -> start + .clickContinueToSignerSelectionPage() + .clickSignedPersonallyAndContinueToPrint() + .saveDocumentUrl() + .closePrintWindow() + .onCompanySignatureCifConfirmationPage() + .clickContinue(); + } + + public Function fillAntiLaunderingStatements() { + return start -> start + .chooseExpectedCashless() + .selectMajorityCurrency("CZK") + .chooseNoSendingAbroad() + .chooseNoForeignReceive() + .chooseLoansNotExpected() + .chooseMmbMinority() + .selectLastTurnover("1 - 199 999 Kč") + .selectMmbTurnover("1 - 199 999 Kč"); + } + + public Function fillAmlSurvey() { + return start -> start + .clickCzechRepublicTaxesResidency() + .clickContinue() + .onAmlSurveyPage() + .clickNotAnotherTaxesResidency() + .clickContinue() + .onAmlSurveyPage() + .clickIncomeFromBusiness() + .clickContinue() + .onAmlSurveyPage() + .clickNotInSuspiciousMarkets() + .clickContinue() + .onAmlSurveyPage() + .clickResidencyPlaceOfBusiness() + .clickContinue() + .onAmlSurveyPage() + .clickNotPoliticallyExposedPerson() + .clickContinue() + .onAmlSurveyPage() + .clickAccountInDifferentBankNo() + .clickContinue() + .onAmlSurveyPage() + .clickCashPaymentPreference() + .clickContinue() + .onAmlSurveyPage() + .clickMaxExpectedRevenue200K() + .clickContinue() + .onAmlSurveyPage() + .clickDomesticPaymentsPresumption() + .clickContinue(); + } + + public Function fillBankersAmlSurvey() { + return start -> start + .clickPotentialClientNotWithThirdPerson() + .clickContinue(); + } + + public Function finishAmlSurvey() { + return start -> start + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onClientContractSignPage() + .clickCenterButton() + .onClientContractSignPage() + .clickLeftButton(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewPoClientTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewPoClientTasks.java new file mode 100644 index 0000000..7719ce9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/clients/NewPoClientTasks.java @@ -0,0 +1,265 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.clients; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.AML002_S001_AmlSurveyPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CRS001_S001_CommonReportingStatusPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.GDP001_S001_ClientConsentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF001_S003_CreateNewCompanyCifPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.CIF034_S001_CompanyAntiLaunderingStatement; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS005_S001_FoEditingPage; +import cz.moneta.test.dsl.ufo.banka.pages.po.*; +import cz.moneta.test.dsl.ufo.banka.pages.search.CIF013_S002_ClientNotFoundPage; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +public final class NewPoClientTasks { + + private final Harness harness; + + public NewPoClientTasks(Harness harness) { + this.harness = harness; + } + + public Function createPoCif(NonClient nonPoClient) { + return start -> start + .clickCreateNewCompany() + .then(fillNewPoFop(nonPoClient)) + .then(createNewStatutoryAuthority(nonPoClient)) + .then(editFoForPo(nonPoClient)) + .clickContinue() + .onCompaniesOwnedByClientPage() + .then(addCompanyOwnedByClient(nonPoClient)) + .clickContinue() + .then(addOwner(nonPoClient)) + .clickDataSameAsEsmYes() + .clickContinue() + .clickContinue() + .then(fillAmlSurvey()) + .then(finishAmlSurvey()) + .onScanDocumentsPage() + .clickSkipButton() + .onClientConsentPage() + .then(selectGdpConsentsAndPrint()); + } + + /*** + * Pri tvorbe PO sa test dostane na výpis skutečných majitelů CIF043_S001 na prostredí PPE. + * Na prostredí TST1 sa táto stránka nezobrazuje. + */ + public Function fillActualOwnerIfPageShown(NonClient nonPoClient) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(3, CIF034_S001_CompanyAntiLaunderingStatement.CIF034_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onAntiLaunderingStatementPage(); + } else { + return start -> start + .onActualOwnerPage() + .then(fillActualOwnerInfo(nonPoClient)); + } + } + + public Function fillNewPoFop(NonClient nonPoClient) { + return start -> start + .fillCompanyName(nonPoClient.employer().getName()) + .fillAbbreviatedName("Ministerstvo autom") + .fillStartDate("12.10.2015") + .clickAddressLookupMagnifyGlass() + .fillAddressLookup(nonPoClient.residencyAddress().getStreet() + " " + nonPoClient.residencyAddress().getDescriptiveNumber()) + .clickDoAddressSearch() + .clickFirstFoundAddress() + .clickChooseAdress() + .selectCourtSeat("MS v Praze") + .fillCourtDepartment("C") + .fillCourtInsert("19010") + .clickCzechCountryOfEstablishment() + .clickCzechCountryOfFoundation() + .fillEmail(nonPoClient.email()) + .fillMobilePhone(nonPoClient.mobileNumber()) + .selectLegalForm("PO_Společnost s ručením omezeným") + .selectOkecTitle("Maloobchod v nespecializovaných prodejnách") + .selectEconomySectorPo("Nefinanční podniky soukromé národní ") + .selectEmployeeCount("1 až 10") + .clickSubmit() + .onStatutoryAuthorityPage(); + } + + public Function createNewStatutoryAuthority(NonClient nonPoClient) { + return start -> start + .addStatutoryAuthority() + .selectTypeOfNewAuthority("je jednatelem") + .fillFirstName(nonPoClient.firstName()) + .fillLastName(nonPoClient.lastName()) + .fillBirthDate(nonPoClient.birthDate()) + .selectCzechResidencyOfNewAuthority() + .clickSaveNewAuthority() + .continueToSelectStatutoryAuthority() + .selectFirstStatutoryAuthority() + .continueToFoEditingPage(); + } + + public Function editFoForPo(NonClient nonPoClient) { + return start -> start + .fillBirthNumber(nonPoClient.birthNumber()) + .clickGenderMaleRadio() + .fillPlaceOfBirth(nonPoClient.placeOfBirth()) + .clickCzechCountryOfBirthButton() + .clickCzechResidencyButton() + .fillStreet(nonPoClient.residencyAddress().getStreet()) + .fillDescriptiveNumber(nonPoClient.residencyAddress().getDescriptiveNumber()) + .clickCzechCountryAddress() + .clickAddressLookupMagnifyGlass() + .clickDoAddressSearch() + .clickFirstFoundAddress() + .fillMobilePhoneCode("420") + .fillMobilePhone(nonPoClient.mobileNumber()) + .selectIdType("Občanský průkaz") + .fillIdNumber(nonPoClient.idNumber()) + .fillIdValidTill(nonPoClient.idNumberExpiration()) + .clickCzechCountryIdReleaseButton() + .clickPersonPhysicallyOnsite("Ano") + .chooseNotPoliticallyExposedPerson() + .clickContinue() + .then(harness.tasks().ufo().banka().newClient().selectDocumentIdCard("OP se strojově čitelnými údaji")) + .onScanDocumentsPage() + .uploadAndAssignFakeId() + .saveUploadedDocument() + .clickContinue() + .onStatutoryAuthorityPage(); + } + + public Function fillActualOwnerInfo(NonClient nonPoClient) { + return start -> start + .clickToAddNewActualOwner() + .fillFirstName(nonPoClient.firstName()) + .fillLastName(nonPoClient.lastName()) + .selectCzechResidency() + .selectCzechPermanentResidency() + .fillBirthNumber(nonPoClient.birthDate()) + .fillConcurrentShare("100") + .fillStreet(nonPoClient.residencyAddress().getStreet()) + .fillDescriptiveNumber(nonPoClient.residencyAddress().getDescriptiveNumber()) + .fillCity(nonPoClient.residencyAddress().getCity()) + .fillZipCode(nonPoClient.residencyAddress().getZip()) + .saveNewActualOwner() + .scrollIntoContinueButton() + .continueToRealOwners() + .clickToAddNewActualOwner() + .fillFirstName(nonPoClient.firstName()) + .fillLastName(nonPoClient.lastName()) + .selectCzechResidency() + .selectCzechPermanentResidency() + .fillBirthNumber(nonPoClient.birthDate()) + .fillConcurrentShare("100") + .saveNewActualOwner() + .scrollIntoContinueButton() + .continueToScoringPage() + .waitForLoader() + .onAntiLaunderingStatementPage(); + } + + public Function selectAntiLaunderingStatements() { + return start -> start + .chooseExpectedCashless() + .selectMajorityCurrency("CZK") + .chooseNoSendingAbroad() + .chooseNoForeignReceive() + .chooseLoansExpected() + .chooseMmbMajority() + .selectLastTurnover("1 000 000 - 2 999 999 Kč") + .selectMmbTurnover("1 000 000 - 2 999 999 Kč") + .submitStatement(); + } + + public Function selectGdpConsentsAndPrint() { + return start -> start + .clickOnPoConsentsAndContinueToSignerSelectionPoPage() + .clickSignedByPoAndClickOk() + .clickFirstStatutoryRepresentativeAndContinue() + .saveDocumentUrl() + .closePrintWindow() + .onCompanySignatureCifConfirmationPage() + .clickContinue(); + } + + public Function addCompanyOwnedByClient(NonClient nonPoClient) { + return start -> start + .clickAddPo() + .fillPoTitle(nonPoClient.employer().getName()) + .fillPoIco(nonPoClient.ico()) + .clickPoCountryCz() + .clickPoSave(); + } + + public Function addOwner(NonClient nonPoClient) { + return start -> start + .clickAddOwner() + .fillFirstName(nonPoClient.firstName()) + .fillLastName(nonPoClient.lastName()) + .fillOwnerDateOfBirth(nonPoClient.birthDate()) + .clickOwnerNationalityCz() + .clickOwnerPermanentCz() + .selectOwnerType("SM dle § 4 ZESM (materiální)") + .fillOwnerShare("100") + .clickOwnerSave(); + } + + public Function fillAmlSurvey() { + return start -> start + .clickFinancialInstitution() + .clickContinue() + .onAmlSurveyPage() + .clickCzechRepublicTaxesResidency() + .clickContinue() + .onAmlSurveyPage() + .clickNotAnotherTaxesResidency() + .clickContinue() + .onAmlSurveyPage() + .clickIncomeFromBusiness() + .clickContinue() + .onAmlSurveyPage() + .clickNotInSuspiciousMarkets() + .clickContinue() + .onAmlSurveyPage() + .clickResidencyPlaceOfBusiness() + .clickContinue() + .onAmlSurveyPage() + .clickNotPoliticallyExposed() + .clickContinue() + .onAmlSurveyPage() + .clickAccountInDifferentBankNo() + .clickContinue() + .onAmlSurveyPage() + .clickCashPaymentPreference() + .clickContinue() + .onAmlSurveyPage() + .clickMaxExpectedRevenue500K() + .clickContinue() + .onAmlSurveyPage() + .clickDomesticPaymentsPresumption() + .clickContinue(); + } + + public Function fillBankersAmlSurvey() { + return start -> start + .clickPotentialClientNotWithThirdPerson() + .clickContinue(); + } + + public Function finishAmlSurvey() { + return start -> start + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onClientContractSignPage() + .clickCenterButton() + .onClientContractSignPage() + .clickLeftButton() + .onAmlSurveyPage() + .clickPotentialRiskNo() + .clickContinue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/ExpresLoanDataPreparationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/ExpresLoanDataPreparationTasks.java new file mode 100644 index 0000000..cbafc54 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/ExpresLoanDataPreparationTasks.java @@ -0,0 +1,228 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.expres; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ilods.Ilods; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.HousingLoanData; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.LoanData; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisAllLoanObject; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisBLRateFixation; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisPropertyOwnershipType; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisUcelUveruExpres; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.data.GeneratorType; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.Date; +import java.util.List; + +import static cz.moneta.test.dsl.util.DateUtils.convertRawDateForWso2; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.dsl.util.task.retail.loans.constants.DefaultLoansConstants.*; +import static cz.moneta.test.harness.support.auth.AuthSupport.getCredentials; +import static cz.moneta.test.harness.support.data.GeneratorType.*; + +public class ExpresLoanDataPreparationTasks { + private final Harness harness; + + public ExpresLoanDataPreparationTasks(Harness harness) { + this.harness = harness; + } + + public static final String CLIENT_CIF_STORE_KEY = "CLIENT_CIF"; + + public NonClient createClientData() { + return harness.data().newNonClient() + .withBirthNumber(harness.tasks().common().getRcMinMaxAge(18, 64)) + .withEmail(DEFAULT_EMAIL) + .withMobileNumber(DEFAULT_MOBILE_NUMBER) + .withDriverLicenceId(DEFAULT_DRIVING_LICENSE_ID) + .withDriveLicenceExpiryDateRaw(DEFAULT_DRIVING_LICENSE_EXPIRATION_DATE) + .withResidencyAddress(DEFAULT_CLIENT_ADDRESS) + .withIdCard(DEFAULT_ID_CARD) + .withOtherExpenses(1000) + .withOtherLoanPayments(0) + .withNetMonthlyIncome(200000) + .withHomeIncome(200000) + .withOccupationEmploymentFromRaw(Date.from(LocalDate.now().minusYears(3).atStartOfDay(ZoneId.systemDefault()).toInstant())) + .withCurrentAddressSinceRaw(Date.from(LocalDate.now().minusYears(3).atStartOfDay(ZoneId.systemDefault()).toInstant())) + .withEmployer(DEFAULT_EMPLOYER); + } + + public NonClient createCoApplicantData() { + return harness.data().newNonClient() + .withIdCard(new IdCard("212756197", LocalDate.of(2018, 8, 12), LocalDate.of(2031, 3, 15))) + .withEmail("test@test.cz") + .withMobileNumber(harness.generate(GeneratorType.MOBILE_PHONE_NUMBER)) + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(1000) + .withOtherLoanPayments(0) + .withOccupationEmploymentFromRaw(Date.from(LocalDate.now().minusYears(3).atStartOfDay(ZoneId.systemDefault()).toInstant())) + .withCurrentAddressSinceRaw(Date.from(LocalDate.now().minusYears(3).atStartOfDay(ZoneId.systemDefault()).toInstant())) + .withEmployer(DEFAULT_EMPLOYER); + } + + public NonClient createSecondCoApplicantData() { + return harness.data().newNonClient() + .withIdCard(new IdCard("212756197", LocalDate.of(2018, 8, 12), LocalDate.of(2031, 3, 15))) + .withEmail("test2@test2.cz") + .withMobileNumber(harness.generate(GeneratorType.MOBILE_PHONE_NUMBER)) + .withNetMonthlyIncome(90000) + .withHomeIncome(90000) + .withOtherExpenses(1000) + .withOtherLoanPayments(0) + .withOccupationEmploymentFromRaw(Date.from(LocalDate.now().minusYears(3).atStartOfDay(ZoneId.systemDefault()).toInstant())) + .withCurrentAddressSinceRaw(Date.from(LocalDate.now().minusYears(3).atStartOfDay(ZoneId.systemDefault()).toInstant())) + .withEmployer(DEFAULT_EMPLOYER); + } + + public NonClient createWifeData() { + return createCoApplicantData() + .withMaritalStatus(MaritalStatus.MARRIED) + .withBirthNumber(harness.generate(RC, Gender.WOMAN)) + .withFirstName(harness.generate(FIRST_NAME, Gender.WOMAN)) + .withLastName(harness.generate(LAST_NAME, Gender.WOMAN)) + .withGender(Gender.WOMAN) + .withEmployer(DEFAULT_EMPLOYER); + } + + public LoanData preBuildLoanData() { + NonClient client = createClientData(); + return LoanData.builder() + .client(client) + .housingLoanData(HousingLoanData.builder() + .isRealityCustomAddress(false) + .realityCustomAddress(Address.builder() + .street("Ořechová") + .descriptiveNumber("652") + .orientationNumber("") + .city("Benátky nad Jizerou") + .zip("29471") + .country("CZ") + .build()) + .landRegistryArea("730122") + .plotNumber("2125/5") + .apartmentNumber("2") + .realityType(HCisAllLoanObject.APARTMENT) + .ownershipType(HCisPropertyOwnershipType.COOPERATIVE) + .purposeType(HCisUcelUveruExpres.TRANSFER_OF_COOPERATIVE_SHARE) + .fixation(HCisBLRateFixation._5Y).build()) + .amount(50000) + .term(72) + .paymentsOutsideMMB(0) + .otherMonthlyExpenses(1000) + .isInsurance(false) + .insuranceName("Bez pojištění") + .build(); + } + + public String prepareClient(NonClient client) { + Credentials cr = getCredentials(banker, harness); + NewClientWithCurrentAccountInformation info = harness.dataPrepare().createNewFoCustomerWithCurrentAccountAndIbViaWso2(client, cr.getUsername()); + harness.dataPrepare().setClientIncome(info.getCif(), client); + addIncomeDocumentsByApi(client); + + Ilods i = harness.withIlods(); + i.setScore("EXBEH02", client.birthNumber(), ""); + i.setScore("EXECB02", client.birthNumber(), ""); + i.setScore("EXON04S3", client.birthNumber(), ""); + return info.getCif(); + } + + public String prepareClientForLoans(NonClient client) { + Credentials cr = getCredentials(banker, harness); + NewClientWithCurrentAccountInformation info = harness.dataPrepare().createNewFoCustomerWithCurrentAccountAndIbViaWso2(client, cr.getUsername()); + harness.dataPrepare().createSmartBankFo(info.getCif()); + harness.dataPrepare().setClientIncome(info.getCif(), client); + addIncomeDocumentsByApi(client); + + Ilods i = harness.withIlods(); + i.setScore("BFX08", client.birthNumber(), ""); + i.setScore("EXON04S2", client.birthNumber(), ""); + i.setScore("FXON04S2", client.birthNumber(), ""); + i.setScore("CCON04S2", client.birthNumber(), ""); + i.setScore("UDCON04S2", client.birthNumber(), ""); + i.setSegment("AS_FAM", "EXIST", client.birthNumber(), ""); + i.setSegment("RSK_INFOLIMIT", "INFOLIMIT_CALC", client.birthNumber(), ""); + i.setSegment("CUST_INC_VER", "POI_VALID_STRICTLY", client.birthNumber(), ""); + return info.getCif(); + } + + public String prepareFopClientForLoans(NonClient client) { + Credentials cr = getCredentials(banker, harness); + String fopCif = harness.dataPrepare().createNewFopCustomerViaWso2AndGetCif(client, cr.getUsername()); + + Ilods i = harness.withIlods(); + i.setScore("ABC01", client.birthNumber(), ""); + i.setSegment("BANKID_CLIENT", "BANKID_VERIFIED", client.birthNumber(), ""); + i.setSegment("RSK_INFOLIMIT_EBR", "INFOLIMIT_EBR_CALC", client.birthNumber(), ""); + i.setSegment("NTC", "NTC", client.birthNumber(), ""); + return fopCif; + } + + private void addIncomeDocumentsByApi(NonClient client) { + RawRestRequest.Response resp = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/backoffice.cluster/application/documents/create-document/001") + .addField("POS_ID", "86001340") + .addField("ISSUER_ICO_NUM", client.employer().getIco()) + .addField("CHANNEL", "UFO BANKA") + .addField("CLIENT_RC_NUM", client.birthNumber()) + .addField("OTHER_INSTALMENT_PAYMENTS", client.otherLoanPayments()) + .addField("EMPLOYMENT_TYPE", "1") + .addField("CLIENT_FAMILY_NAME", client.lastName()) + .addField("CLIENT_FIRST_NAME", client.firstName()) + .addField("MONTHLY_DEDUCTION", 0) + .addField("ISSUER_SIGN_FLAG", 1) + .addField("ISSUER_COMP_NAME", client.employer().getName()) + .addField("USER_SSO", "212431936") + .addField("DOC_COUNTRY_SOURCE", "52") + .addField("ADVICE_OF_RECEIPT_COUNT", 1) + .addField("INCOME_CASH_FLAG", 0) + .addField("ISSUE_DATE", convertRawDateForWso2(new Date())) + .addField("CLIENT_NET_INC", client.netMonthlyIncome()) + .addField("DOCUMENT_TYPE", "1") + .addField("CURRENCY", "0") + .addField("ISSUER_STAMP_FLAG", 1) + .addField("STANDALONE_FLAG", 1) + .addField("EMPLOYMENT_START_DATE", convertRawDateForWso2(client.occupationEmploymentFromRaw())) + .addField("MAINTAINED_PERSON_COUNT", 0) + .post() + .andAssertStatus(200) + .andAssertPresent("DOC_INST_KEY"); + int DOC_INST_KEY = resp.extract("DOC_INST_KEY").intValue(); + + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/risk.cluster/NAS/DO_FORMAL_DOCS_002/001") + .addField("DOC_INST_KEY", DOC_INST_KEY) + .post() + .andAssertStatus(200) + .andAssertFieldValue("FORMAL_OK_FLAG", "1"); + + harness.withWso2().prepareRequest().withPath("/t/mwf.legacy/HUB/MWF736/001") + .withHeader("Authorization", harness.tasks().wso2().authorization().getToken("UFO")) + .withHeader("Content-Type", "application/json") + .withHeader("USERID_L2", "212431936") + .withPayload( + "{\n" + + " \"PROCESS_CONTEXT\": \"null\",\n" + + " \"DocsToCheck\": null,\n" + + " \"Data\": [\n" + + " {\n" + + " \"RS_RC_NUMBER\": \"" + client.birthNumber() + "\",\n" + + " \"RS_PAIRING_COMPLETE\": null\n" + + " }\n" + + " ]\n" + + "}") + .post() + .andAssertStatus(200); + } + + public void prepareCoApplicants(List coApplicants) { + for (NonClient coApplicant : coApplicants) { + prepareClient(coApplicant); + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/ExpresLoanLoggingTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/ExpresLoanLoggingTasks.java new file mode 100644 index 0000000..7404032 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/ExpresLoanLoggingTasks.java @@ -0,0 +1,85 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.expres; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.LoanData; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.List; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage.DOCUMENT_URLS_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.NEP017_S014_SelectApprovedVariantsPage.CHOSEN_LOAN_OPTION_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.tasks.expres.ExpresLoanDataPreparationTasks.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.tasks.expres.ExpressTasks.*; +import static cz.moneta.test.dsl.ufo.banka.tasks.expres.HousingLoanTasks.*; +import static cz.moneta.test.dsl.util.AddressUtils.buildStreetWithNumbers; + +public class ExpresLoanLoggingTasks { + private final Harness harness; + + public ExpresLoanLoggingTasks(Harness harness) { + this.harness = harness; + } + public static final String UFO_SESSION_ID_STORE_KEY = "reports.tmfj.execution.commentufosessionid"; + + + public String getLogExpresDataString(LoanData data) { + return "\n" + + (harness.get(APPL_KEY_STORE_KEY, true) != null ? "appl_key: " + harness.get(APPL_KEY_STORE_KEY).toString() + "\n" : "") + + (harness.get(UFO_SESSION_ID_STORE_KEY, true) != null ? "sessionId: " + harness.get(UFO_SESSION_ID_STORE_KEY) + "\n" : "") + + harness.tasks().ufo().banka().expresTasks().housingLoanLoggingTasks().logExpressTestData(data) + "\n" + + (harness.get(CHOSEN_LOAN_OPTION_STORE_KEY, true) != null ? " " + harness.get(CHOSEN_LOAN_OPTION_STORE_KEY) + "\n" : "") + + BankaUtils.formatDocumentUrlsWithNames(harness.get(DOCUMENT_URLS_STORE_KEY, true)); + } + + public String getLogExpresHomeDataString(LoanData data) { + return "\n" + + (harness.get(APPL_KEY_STORE_KEY, true) != null ? "appl_key: " + harness.get(APPL_KEY_STORE_KEY).toString() + "\n" : "") + + (harness.get(UFO_SESSION_ID_STORE_KEY, true) != null ? "sessionId: " + harness.get(UFO_SESSION_ID_STORE_KEY) + "\n" : "") + + harness.tasks().ufo().banka().expresTasks().housingLoanLoggingTasks().logHousingLoanTestData(data) + "\n" + + (harness.get(HOUSING_LOAN_REALITY_STORE_KEY, true) != null ? " reality: " + harness.get(HOUSING_LOAN_REALITY_STORE_KEY, true) + "\n" : "") + + (harness.get(CHOSEN_LOAN_OPTION_STORE_KEY, true) != null ? " " + harness.get(CHOSEN_LOAN_OPTION_STORE_KEY) + "\n" : "") + + BankaUtils.formatDocumentUrlsWithNames(harness.get(DOCUMENT_URLS_STORE_KEY, true)); + } + + private String logExpressTestData(LoanData data) { + return loanDataString(harness.get(CLIENT_CIF_STORE_KEY, true), data); + } + + private String logHousingLoanTestData(LoanData data) { + return logExpressTestData(data) + housingLoanDataString(data); + } + + private String loanDataString(String cif, LoanData data) { + return "CIF: " + cif + "\n" + + "Applicant:\n" + + " Name and Surname: " + data.getClient().firstName() + " " + data.getClient().lastName() + "\n" + + " Birth Number: " + data.getClient().birthNumber() + "\n" + + " Address: " + buildStreetWithNumbers(data.getClient().residencyAddress()) + + getCoApplicantDataString(data.getCoApplicants()) + + "\nLoan data:\n" + + " amount: " + data.getAmount() + "\n" + + " term: " + data.getTerm(); + } + + private String housingLoanDataString(LoanData data) { + return + "\n realityType: " + data.getHousingLoanData().getRealityType().getValue() + "\n" + + " ownershipType: " + data.getHousingLoanData().getOwnershipType().getValue() + "\n" + + " loanPurpose: " + data.getHousingLoanData().getPurposeType().getValue(); + } + + private String getCoApplicantDataString(List coApplicants) { + String text = ""; + if (coApplicants != null && !coApplicants.isEmpty()) { + for (NonClient coApplicant : coApplicants) { + text += "\nCoApplicant:\n" + + " Name and Surname: " + coApplicant.firstName() + " " + coApplicant.lastName() + "\n" + + " Birth Number: " + coApplicant.birthNumber() + "\n" + + " Address: " + buildStreetWithNumbers(coApplicant.residencyAddress()); + + } + } + return text; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/ExpressTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/ExpressTasks.java new file mode 100644 index 0000000..75f70cd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/ExpressTasks.java @@ -0,0 +1,624 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.expres; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.ZZJ001_S001_MeetingRecordPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.*; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.*; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.VDB001_S001_SecondBankerJoiningPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisAllEvidencniCisloNEP; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.requests.NEP024_S005_ConfirmationOfReceiptAddPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewProductTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.code.lists.HCisDoklady; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.List; +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CIF113_S001_ChangeDataFO.CIF_CHANGE_DATA_FO_PAGE_LABEL; +import static cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP009_S001_Existing_ApplicationsPage.PAGE_ID; +import static cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage.APPLICATION_TYPE_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage.STATE_STORNO_TD_XPATH; + +public class ExpressTasks { + + public static final String APPL_KEY_STORE_KEY = "APPL_KEY"; + public static final String SIGNATURE_DOCUMENT_NAME = "Způsob podpisu"; + public static final String REQUEST_DOCUMENT_NAME = "Žádost"; + public static final String CONTRACT_DOCUMENT_NAME = "Smlouva"; + public static final String ZZJ_DOCUMENT_NAME = "ZZJ"; + private final Harness harness; + private final NewProductTasks productTasks; + + public ExpressTasks(Harness harness) { + this.harness = harness; + this.productTasks = harness.tasks().ufo().banka().newProduct(); + } + + public HousingLoanTasks housingLoanTasks() { + return new HousingLoanTasks(harness); + } + + public ExpresLoanDataPreparationTasks expressLoanDataPreparationTasks() { + return new ExpresLoanDataPreparationTasks(harness); + } + + public ExpresLoanLoggingTasks housingLoanLoggingTasks() { + return new ExpresLoanLoggingTasks(harness); + } + + public Function fillConfirmationOfReceipt(NonClient nonClient) { + String dateFormat = "dd.MM.yyyy"; + return start -> start + .fillEmploymentFrom(DateUtils.getDateWithFormat(nonClient.occupationEmploymentFromRaw(), dateFormat)) + .fillNetIncome(String.valueOf(nonClient.netMonthlyIncome())) + .fillOtherLoanPayments(String.valueOf(nonClient.otherLoanPayments())) + .fillWageDeductions(String.valueOf(nonClient.wageDeductions())) + .fillDependendPerson(String.valueOf(nonClient.dependants())) + .selectSalaryInCash("Ne") + .fillOccupationInstitutionName(nonClient.employer().getName()) + .fillOccupationInstitutionIco(nonClient.employer().getIco()) + //.fillOccupationInstitutionStreet(nonClient.employer().getAddress().getStreet()) + //.fillOccupationInstitutionDescriptiveNumber(nonClient.employer().getAddress().getDescriptiveNumber()) + //.fillOccupationOrientationNumber(nonClient.employer().getAddress().getOrientationNumber()) + //.fillOccupationInstitutionTown(nonClient.employer().getAddress().getCity()) + //.fillOccupationInstitutionZip(nonClient.employer().getAddress().getZip()) + .selectOccupationStatus(nonClient.occupationStatus().getUfoConfirmationOfReceiptValue()) + .fillDateOfIssue(DateUtils.getDateWithFormat(nonClient.dateOfIssueConfirmationOfReceipt(), dateFormat)) + .checkSignatureAndStampCheckboxes() + .generatePdf(); + } + + public Function createNewExpressApplication(NonClient applicant, int loanAmount, int term, HCisAllStavZadosti expectedAppStat) { + return start -> start.createNewProduct(HCisProductClass.EXPRESS) + .onExpressPage() + .then(fillAmountAndTermAndContinue(loanAmount, term)) + .onIdSelectionPage() + .then(productTasks.selectIDs()) + .then(productTasks.fillApplicantPage(applicant, true)) + .then(finishApplication(expectedAppStat.getValue())); + } + + public Function createNewExpressApplicationWithExistingAndPrefilledData(int loanAmount, int term, HCisAllStavZadosti expectedAppStat) { + return start -> start.createNewProduct(HCisProductClass.EXPRESS) + .onExistingApplicationsPage() + .clickContinue() + .then(fillAmountAndTermAndContinue(loanAmount, term)) + .onApplicantPage() + .then(finishApplication(expectedAppStat.getValue())); + } + + public Function startNewExpressApplicationWithExisting(NonClient applicant, int loanAmount, int term, HCisDoklady idType) { + return start -> start + .createNewProduct(HCisProductClass.EXPRESS) + .then(continueToExpressPage()) + .then(fillAmountAndTermAndContinue(loanAmount, term)) + .onIdSelectionPage() + .then(productTasks.selectSecondIdDocuments(idType)) + .then(productTasks.fillApplicantPage(applicant, false)); + } + + + public Function createNewExpressApplicationWithExisting(NonClient applicant, int loanAmount, int term, HCisAllStavZadosti expectedAppStat, HCisDoklady idType) { + + return startNewExpressApplicationWithExisting(applicant, loanAmount, term, idType) + .andThen(applicantPage -> applicantPage + .then(finishApplication(expectedAppStat.getValue()))); + } + + + public Function createNewExpressApplicationWithCoApplicant(NonClient applicant, List coApplicants, int loanAmount, int term, HCisAllStavZadosti expectedAppStat, HCisDoklady idType) { + return startNewExpressApplicationWithExisting(applicant, loanAmount, term, idType) + .andThen(applicantPage -> applicantPage + .then(fillCoApplicants(coApplicants)) + .then(finishApplication(expectedAppStat.getValue()))); + } + + + public Function continueToExpressPage() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(3, PAGE_ID, Lookup.ID)) { + return start -> start + .onExistingApplicationsPage() + .clickContinue(); + } else if (endpoint.isElementVisible(5, CIF_CHANGE_DATA_FO_PAGE_LABEL, Lookup.XPATH)) { + return start -> start + .onChangeDataFO() + .clickSend() + .onPrintInstructionPage() + .clickLeftButton() + .then(continueToExpressPageFromEditCif()); + } else { + return start -> start + .onExpressPage(); + } + } + + public Function continueToExpressPageFromEditCif() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(3, PAGE_ID, Lookup.ID)) { + return start -> start + .onExistingApplicationsPage() + .clickContinue(); + } else { + return start -> start + .onExpressPage(); + } + } + + public Function continueIfExistingApplicationsVisible() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(3, NEP009_S001_Existing_ApplicationsPage.PAGE_ID, Lookup.ID)) { + return start -> start.onExistingApplicationsPage().clickContinue(); + } else { + return start -> start + .onExpressPage(); + } + } + + public Function createNewExpressApplicationWithCoApplicant(NonClient applicant, NonClient coApplicant, int amount, int term, HCisAllStavZadosti expectedAppStat) { + return start -> start.createNewProduct(HCisProductClass.EXPRESS) + .then(continueIfExistingApplicationsVisible()) + .clickFirstCoApplicant() + .selectFirstCoApplicantRelationshipToMainApplicant("OSTATNÍ") + .clickFillFirstCoApplicant() + .fillSearchTerm(coApplicant.birthNumber()) + .clickSearchByRc() + .clickSearch() + .onExpressPage() + .then(fillAmountAndTermAndContinue(amount, term)) + .onIdSelectionPage() + .then(productTasks.selectIDs()) + .then(productTasks.fillApplicantPage(applicant, false)) + .selectFirstIncome() + .clickContinue() + .onIdSelectionPage() + .then(productTasks.selectIDs()) + .then(productTasks.fillApplicantPage(coApplicant, false)) + .selectFirstIncome() + .clickContinue() + .onApplicationDataPage() + .then(productTasks.fillApplicationDataPage("Bez pojištění")) + .clickApplicantSignatureCheckbox() + .clickCoApplicantSignatureCheckbox() + .clickYes() + .onScoringPage() + .waitForLoader() + .onExpressScoringResultPage() + .then(waitForStatusAndLogData(expectedAppStat.getValue())) + .clickEnd() + .onMainClientPage(); + } + + public Function createNewExpressApplicationWithRegistrationNumber(NonClient nonClient, int amount, int term, HCisAllEvidencniCisloNEP registrationNumber, HCisAllStavZadosti expectedAppStat) { + return start -> start + .createNewProduct(HCisProductClass.EXPRESS) + .onExpressPage() + .then(fillAmountAndTermAndContinue(amount, term)) + .onIdSelectionPage() + .then(productTasks.selectIDs()) + .then(productTasks.fillApplicantPage(nonClient, false)) + .selectRegistrationNumber(registrationNumber.getValue()) + .selectRegistrationNumberReason("falešné doklady/PoP") + .fillRegistrationNumberComment("Test") + .clickRegistrationNumberOkButton() + .then(finishApplication(expectedAppStat.getValue())); + } + + // client must have IB and Current Account + public Function createAccountsForNewExpressUntilSignature(String secondBankerLastName) {//uses application created in the same test + return createAccountsForNewExpressUntilSignature(harness.get(NEP006_S001_ExpressScoringResultPage.APP_ID_STORE), secondBankerLastName); + } + + // client must have IB and Current Account + public Function createAccountsForNewExpressUntilSignature(String applicationId, String secondBankerLastName) { + return start -> start + .then(productTasks.showApplicationDetails(applicationId)) + .then(createAccountsWithExistingIbAndBuUntilSignature(secondBankerLastName)); + } + + private Function createAccountsWithExistingIbAndBuUntilSignature(String secondBankerLastName) { // client must have IB and Current Account + return start -> start + .onExpressScoringResultPage() + .clickCreateAccounts() + .onSelectApprovedVariantPage() + .clickFirstVariant() + .clickSecondVariant() + .clickSelect() + .onScoringPage() + .waitForLoader() + .OnPreContractualInformationPrintedPage() + .continueToPrintCopyOfContractProposalPage() + .clickContinue() + .onSecondBankerJoiningPage() + .fillSurnameInput(secondBankerLastName) + .clickSearch() + .selectFirstName() + .clickContinue() + .onExpressSignaturePage() + .clickApplicantCheckbox() + .clickYesAndDismissAlert(); + } + + public Function fillAmountAndTermAndContinue(int amount, int term) { + return start -> start + .fillAmount(amount) + .selectTerm(term) + .clickContinue(); + } + + private Function waitForStatusAndLogData(String expectedAppStat) { + return start -> start + .waitForStatusAndRefresh(expectedAppStat) + .storeAppId() + .storeAppKey() + .storeAppStat(); + } + + public Function finishAccountCreationAfterSecondBankerSignature(HCisAllStavZadosti expectedAppStat) { + return start -> start.clickCheck() + .clickContinue() + .waitForLoader() + .onContractSignedPage() + .clickContinueButton() + .onExpressScoringResultPage() + .waitForStatusAndRefresh(expectedAppStat.getValue()) + .clickEnd() + .onListOfRequestsPage() + .clickBackToMainClientPage(); + } + + public Function finishApplication(String expectedAppStat) { + return start -> start + .selectFirstIncome() + .clickContinue() + .onApplicationDataPage() + .then(productTasks.fillApplicationDataPage("Bez pojištění")) + .then(productTasks.finishLoanApplication()) + .onExpressScoringResultPage() + .storeAppKey() + .then(waitForStatusAndLogData(expectedAppStat)) + .clickEnd() + .onMainClientPage(); + } + + public Function createExpressLoan(String coApplicantBirthNumber, int loanAmount, int numberOfInstallments, NonClient nonClient, String bankerName) { + return start -> start + .createNewProduct(HCisProductClass.EXPRESS) + .onExpressPage() + .then(addCoApplicantAndExpelCoApplicant(coApplicantBirthNumber)) + .fillAmount(loanAmount) + .clickNumberOfInstallments() + .selectNumberOfInstallments(numberOfInstallments) + .clickContinue() + .onIdSelectionPage() + .selectIdCardRadio() + .selectPassportRadio() + .clickDocumentsCheckAndContinue() + .onCreditCardApplicantPage() + .then(productTasks.fillApplicantPage(nonClient, true)) + .selectFirstIncome() + .clickContinue() + .onApplicationDataPage() + .selectInsurance("Bez pojištění") + .clickSaveButton() + .onSignerSelectionPage() + .clickSignedPersonallyPhysicallyAndContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .then(productTasks.skipOpFoundPageIfVisible()) + .clickApplicantSignatureCheckbox() + .clickYes() + .onExpressScoringResultPage() + .waitForStatusAndRefresh("Doplň doklady") + .clickFillInDocuments() + .continueToClientRequiredDocumentsListPage() + .clickAddDocument() + .continueToConfirmationOfReceiptAddPage() + .then(fillConfirmationOfReceipt(nonClient)) + .continueToScanDocumentsPage() + .uploadAndAssignFakeIncomeConfirmation() + .clickContinue() + .onClientRequiredDocumentsList() + .clickContinue() + .waitForStatusAndRefresh("PODMÍNĚNÝ SOUHLAS") + .clickCreateAccounts() + .onSelectApprovedVariantPage() + .clickFirstVariant() + .fillAmountIfVisibleAndChooseInstallments(loanAmount) + .clickContinue() + .saveDocumentUrl() + .closePrintWindow() + .onInformationPrintedPage() + .continueToPrintCopyOfContractProposalPage() + .clickContinue() + .onWaitingForModulationPage() + .waitForModulation(120) + .onSecondBankerJoiningPage() + .fillSurnameInput(bankerName) + .clickSearch() + .clickContinue() + .onSecondBankerVerificationPage() + .storeApplicationId(); + } + + public Function addCoApplicantAndExpelCoApplicant(String coApplicantBirthNumber) { + return start -> start + .clickFirstCoApplicant() + .clickFillFirstCoApplicant() + .fillSearchTerm(coApplicantBirthNumber) + .clickSearchByRc() + .clickSearch() + .onExpressPage() + .selectFirstCoApplicantRelationshipToMainApplicant("Manžel/manželka") + .clickExpelCoApplicant(); + } + + public Function fillAddCoApplicants(List coApplicants, String relationshipToMainApplicant) { + return start -> { + if (coApplicants != null && !coApplicants.isEmpty()) { + start + .clickFirstCoApplicant() + .clickFillFirstCoApplicant() + .fillSearchTerm(coApplicants.get(0).birthNumber()) + .clickSearchByRc() + .clickSearch() + .onExpressPage() + .selectFirstCoApplicantRelationshipToMainApplicant(relationshipToMainApplicant); + if (coApplicants.size() > 1) { + start + .clickSecondCoApplicant() + .clickFillSecondCoApplicant() + .fillSearchTerm(coApplicants.get(1).birthNumber()) + .clickSearchByRc() + .clickSearch() + .onExpressPage() + .selectSecondCoApplicantRelationshipToMainApplicant(relationshipToMainApplicant); + } + } + return start; + }; + } + + public Function fillIdPage() { + return start -> start + .selectIdCardRadio() + .selectPassportRadio() + .clickDocumentsCheckAndContinue() + .onCreditCardApplicantPage(); + } + + public Function fillApplicantPage(NonClient applicant) { + return start -> start + .fillPaymentsOutsideMMB(applicant.otherLoanPayments()) + .fillOtherMonthlyExpenses(applicant.otherExpenses()) + .fillHouseholdIncome(applicant.homeIncome()) + .selectEachIncome() + .clickContinue(); + } + + public Function fillCoApplicantPage(NonClient applicant) { + return start -> start + .isSameHouseHold("Ne") + .then(fillApplicantPage(applicant)); + } + + public Function fillCoApplicants(List coApplicants) { + return start -> { + if (coApplicants != null && !coApplicants.isEmpty()) { + for (NonClient coApplicant : coApplicants) { + start.onIdSelectionPage() + .then(fillIdPage()) + .then(fillCoApplicantPage(coApplicant)); + } + } + return start; + }; + } + + public Function fillApplicationDataPage(boolean isInsurance, String insurance) { + return start -> { + start.selectInsurance(insurance); + if (isInsurance) start.clickNoDisabilityPension(); + return start.clickSaveButton(); + }; + } + + public Function fillMeetingRecordPage() { + return start -> start + .clickNoInfoAdded() + .clickNoComment() + .clickPaperForm() + .clickContinue() + .onSignerSelectionPage(); + } + + public Function signDocuments(boolean isInsurance) { + return start -> { + PSP004_S001_PrintPage printPage = start + .clickSignedPersonallyPhysicallyAndContinue() + .onPrintPage() + .saveDocumentUrl(SIGNATURE_DOCUMENT_NAME) + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onPrintPage(); + if (isInsurance) { + printPage + .saveDocumentUrl(ZZJ_DOCUMENT_NAME) + .closePrintWindow() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintPage(); + } + return printPage + .saveDocumentUrl(REQUEST_DOCUMENT_NAME) + .closePrintWindow() + .onSignaturePage() + .clickAllSignatureCheckboxes() + .clickYes() + .onScoringPage() + .onExpressScoringResultPage(); + }; + } + + public Function createAccountRequiredOrFirstFirstOption(int clientRequiredAmount, int clientRequiredTerm) { + return page -> page + .clickCreateAccounts() + .onSelectApprovedVariantPage() + .selectRequiredOrFirstVariation(clientRequiredAmount, clientRequiredTerm) + .clickSelect() + .onSecondBankerJoiningPage(); + } + + public Function printPreContractExpres() { + return page -> page + .saveDocumentUrl("Vysvetlivky") + .closePrintWindow() + .onInformationPrintedPage() + .continueToPrintCopyOfContractProposalPage() + .clickContinue() + .onSecondBankerVerificationPage() + .checkVerificationStatus("Zavstupované dokumenty / doklady byly v pořádku.") + .clickContinue() + .onPrintPage(); + } + + public Function verification(String secondBanker) { + return page -> page + .fillSurnameInput(secondBanker) + .clickSearch() + .selectFirstName() + .clickContinue() + .onPrintPage() + .then(verifyBySecondBanker()); + } + + private Function verifyBySecondBanker() { + harness.tasks().wso2().client().setSecondBankerVerificationStateOk(harness.get(APPL_KEY_STORE_KEY)); + return page -> page; + } + + public Function printContract() { + return page -> page + .saveDocumentUrl(CONTRACT_DOCUMENT_NAME) + .closePrintWindow() + .onSignContractPage() + .clickAllSignatureCheckboxes() + .clickYesButtonToClientContractSignPage() + .clickLeftButton() + .onMegaExpressRequestPage(); + } + + public Function expresLoanE2ETask(LoanData data) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + return page -> { + NEP001_S004_ApplicationDataPageTransitions applicationDataPageTransitions = page + .then(bankaTasks.search().findByRC(data.getClient().birthNumber())) + .createNewProduct(HCisProductClass.EXPRESS) + .onExpressPage() + .then(fillAddCoApplicants(data.getCoApplicants(), "Bratr/Sestra")) + .fillAmount(data.getAmount()) + .selectTerm(data.getTerm()) + .clickContinue() + .onIdSelectionPage() + .then(fillIdPage()) + .then(fillApplicantPage(data.getClient())) + .then(fillCoApplicants(data.getCoApplicants())) + .onApplicationDataPage() + .then(fillApplicationDataPage(data.isInsurance(), data.getInsuranceName())); + + TIS050_S001_SignerSelectionPage signerSelectionPage = data.isInsurance() + ? applicationDataPageTransitions.onMeetingRecordPage() + .then(fillMeetingRecordPage()) + : applicationDataPageTransitions.onSignerSelectionPage(); + + return signerSelectionPage + .then(signDocuments(data.isInsurance())) + .waitForStatusAndRefresh("PODMÍNĚNÝ SOUHLAS") + .then(createAccountRequiredOrFirstFirstOption(data.getAmount(), data.getTerm())) + .then(verification("Sudra")) + .then(printPreContractExpres()) + .then(printContract()); + }; + } + + public HKO101_S001_MainClientPage cancelAllPendingApplications(List applList, HKO101_S001_MainClientPage ufoWindow) { + BAL006_S002_ClientRequestPage ufoWindow2 = ufoWindow.selectFromListOfRequests(); + UfoEndpoint endpoint = this.harness.getEndpoint(UfoEndpoint.class); + if (!applList.isEmpty()) { + applList.forEach(applicationId -> { + if (endpoint.isElementPresent(String.format(STATE_STORNO_TD_XPATH, applicationId), Lookup.XPATH)) + return; + + String xpath = String.format(APPLICATION_TYPE_XPATH, applicationId); + if (endpoint.getText(xpath, Lookup.XPATH).equals("SmSc")) { + ufoWindow2 + .then(cancelUzofkaPendingApplication(applicationId)); + } else if (endpoint.getText(xpath, Lookup.XPATH).equals("Nobl")) { + ufoWindow2 + .then(cancelNoblPendingApplication(applicationId)); + } else { + ufoWindow2 + .then(cancelPendingApplication(applicationId)); + } + }); + } + return ufoWindow2.clickBackToMainPage(); + } + + public Function cancelPendingApplication(String applicationId) { + return start -> start + .clickRequest(applicationId) + .clickOpenRequestDetail() + .onExpressScoringResultPage() + .clickCancelButton() + .selectCancellationReason("Stornováno z důvodu nové žádosti") + .clickConfirmButton() + .waitForLoader() + .onExpressScoringResultPage() + .clickEnd() + .onListOfRequestsPage(); + } + + public Function cancelUzofkaPendingApplication(String applicationId) { + return start -> start + .clickRequest(applicationId) + .clickOpenRequestDetail() + .onUniverzalRequestModelingPage() + .clickStorno() + .selectReason("Stornováno z důvodu nové žádosti") + .clickSend() + .clickEndButton() + .onListOfRequests(); + + } + + public Function cancelNoblPendingApplication(String applicationId) { + return start -> start + .clickRequest(applicationId) + .clickOpenRequestDetail() + .onConsolidationScoringPage() + .clickStorno() + .selectCancellationReason("Stornováno z důvodu nové žádosti") + .clickConfirmButton() + .waitForLoader() + .onConsolidationScoringPage() + .clickEnd(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/HousingLoanTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/HousingLoanTasks.java new file mode 100644 index 0000000..1c0a2f7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/expres/HousingLoanTasks.java @@ -0,0 +1,124 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.expres; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.NEP001_S004_ApplicationDataPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.LoanData; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP001_S001_NewExpressPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP063_S001_RealityPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.DOK001_S001_SelectionOfSubmittedDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisAllLoanObject; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisUcelUveruExpres; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.util.AddressUtils.buildStreetWithNumbers; + +public class HousingLoanTasks { + + private final Harness harness; + public static final String HOUSING_LOAN_REALITY_STORE_KEY = "HOUSING_LOAN_REALITY"; + public static final String CONTRACT_DRAFT_DOCUMENT_NAME = "Návrh smlouvy"; + public static final String ESIP_DOCUMENT_NAME = "ESIP"; + + public HousingLoanTasks(Harness harness) { + this.harness = harness; + } + + public Function fillHousingLoanData(LoanData loanData) { + return start -> start + .clickHousingLoanCheckbox() + .selectRealityType(loanData.getHousingLoanData().getRealityType().getValue()) + .selectOwnershipType(loanData.getHousingLoanData().getOwnershipType().getValue()) + .selectLoanPurposeType(loanData.getHousingLoanData().getPurposeType().getValue()) + .selectFixation(loanData.getHousingLoanData().getFixation().getValue()) + .fillAmount(loanData.getAmount()) + .selectTerm(loanData.getTerm()) + .clickContinue() + .onRealityPage(); + } + + public Function fillRealityData(LoanData data) { + return start -> { + String reality; + if (data.getHousingLoanData().getPurposeType() == HCisUcelUveruExpres.CONSTRUCTION || + data.getHousingLoanData().getPurposeType() == HCisUcelUveruExpres.CONSTRUCTION_WITH_ENERGY_SAVINGS) { + start.fillRealityLandRegistryArea(data.getHousingLoanData().getLandRegistryArea()) + .fillRealityPlotNumber(data.getHousingLoanData().getPlotNumber()) + .clickFindRealityLandRegistryArea(); + reality = data.getHousingLoanData().getLandRegistryArea() + ", " + data.getHousingLoanData().getPlotNumber(); + } else { + if (data.getHousingLoanData().isRealityCustomAddress()) { + start.fillRealityAddressStreet(data.getHousingLoanData().getRealityCustomAddress().getStreet()) + .fillRealityAddressDescriptiveNumber(data.getHousingLoanData().getRealityCustomAddress().getDescriptiveNumber()) + .fillRealityAddressOrientationNumber(data.getHousingLoanData().getRealityCustomAddress().getOrientationNumber()) + .fillRealityAddressCity(data.getHousingLoanData().getRealityCustomAddress().getCity()) + .fillRealityAddressZip(data.getHousingLoanData().getRealityCustomAddress().getZip()); + reality = buildStreetWithNumbers(data.getHousingLoanData().getRealityCustomAddress()); + } else { + start.clickSameAddress(); + reality = buildStreetWithNumbers(data.getClient().residencyAddress()); + } + + if (data.getHousingLoanData().getRealityType() == HCisAllLoanObject.APARTMENT) { + start.fillRealityAddressApartmentNumber(data.getHousingLoanData().getApartmentNumber()); + reality += ", byt č.: " + data.getHousingLoanData().getApartmentNumber(); + } + } + harness.store(HOUSING_LOAN_REALITY_STORE_KEY, reality); + return start.clickConfirmRealityCheck().clickContinue(); + }; + } + + public Function printPreContract() { + return page -> page + .saveDocumentUrl(CONTRACT_DRAFT_DOCUMENT_NAME) + .closePrintWindow() + .onPrintPage() + .saveDocumentUrl(ESIP_DOCUMENT_NAME) + .closePrintWindow() + .onContractSignPage() + .clickCenterButton() + .onSecondBankerVerificationStatusPage() + .checkVerificationStatus("Zavstupované dokumenty / doklady byly v pořádku.") + .clickContinue() + .onPrintPage(); + } + + public Function housingLoanE2ETask(LoanData data) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + ExpressTasks expressTasks = bankaTasks.expresTasks(); + return page -> { + NEP001_S004_ApplicationDataPageTransitions applicationDataPageTransitions = page + .then(bankaTasks.search().findByRC(data.getClient().birthNumber())) + .createNewProduct(HCisProductClass.EXPRESS) + .onExpressPage() + .then(expressTasks.fillAddCoApplicants(data.getCoApplicants(), "Bratr/Sestra")) + .then(fillHousingLoanData(data)) + .then(fillRealityData(data)) + .then(expressTasks.fillIdPage()) + .then(expressTasks.fillApplicantPage(data.getClient())) + .then(expressTasks.fillCoApplicants(data.getCoApplicants())) + .onApplicationDataPage() + .then(expressTasks.fillApplicationDataPage(data.isInsurance(), data.getInsuranceName())); + + TIS050_S001_SignerSelectionPage signerSelectionPage = data.isInsurance() + ? applicationDataPageTransitions.onMeetingRecordPage() + .then(expressTasks.fillMeetingRecordPage()) + : applicationDataPageTransitions.onSignerSelectionPage(); + + return signerSelectionPage + .then(expressTasks.signDocuments(data.isInsurance())) + .waitForStatusAndRefresh("PODMÍNĚNÝ SOUHLAS") + .then(expressTasks.createAccountRequiredOrFirstFirstOption(data.getAmount(), data.getTerm())) + .then(expressTasks.verification("Sudra")) + .then(printPreContract()) + .then(expressTasks.printContract()); + }; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsuranceGroupTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsuranceGroupTasks.java new file mode 100644 index 0000000..bf1a337 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsuranceGroupTasks.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.insurance.PIP001_S001_ChooseInsurancePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.INSURANCE; + +public class InsuranceGroupTasks { + + public Function findCifAndCreateGroupInsuranceProduct(String cifNumber, String productName, String accountNumber) { + return start -> start.fillSearchTerm(cifNumber) + .clickSearchByCif() + .onClientDetailPage() + .createNewProduct(INSURANCE) + .onInsuranceSelectPage() + .clickGroupInsuranceButtonAndContinueToChooseInsurancePage() + .selectInsurance(productName) + .selectAccount(accountNumber); + } + + public Function completeAndCheckActiveInsurance(String productNameToCheck) { + return start -> start.clickContinue() + .onSignerSelectionPage() + .clickContinue() + .onVerificationOfSignaturePage() + .clickSignedButtonAndContinueToEnterIntoOtherInsurancePage() + .clickFinishButtonAndContinueToDispositionsPage() + .clickGenerateNow() + .onContractDocumentationPage() + .clickContinue() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .checkProductActive(productNameToCheck); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsuranceIndividualTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsuranceIndividualTasks.java new file mode 100644 index 0000000..3577c83 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsuranceIndividualTasks.java @@ -0,0 +1,96 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.insurance.IDD001_S001_IndividualInsuranceFormPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.dsl.util.task.retail.loans.constants.DefaultLoansConstants.*; +import static cz.moneta.test.harness.support.auth.AuthSupport.getCredentials; + +public class InsuranceIndividualTasks { + private final Harness harness; + + public InsuranceIndividualTasks(Harness harness) { + this.harness = harness; + } + + public NonClient createNonClient() { + return harness.data().newNonClient() + .withIdCard(DEFAULT_ID_CARD) + .withBirthNumber(harness.tasks().common().getRcMinMaxAge(20, 50)) + .withResidencyAddress(DEFAULT_CLIENT_ADDRESS) + .withEmail(DEFAULT_EMAIL) + .withFixPhoneNumberWork(DEFAULT_MOBILE_NUMBER) + .withFixPhoneNumberHome(DEFAULT_MOBILE_NUMBER) + .withMobileNumber(DEFAULT_MOBILE_NUMBER) + .withNetMonthlyIncome(DEFAULT_INCOME) + .withHomeIncome(DEFAULT_INCOME); + } + + public NonClient prepareClientViaWSO() { + NonClient nonClient = createNonClient(); + String ufoUserName = getCredentials(banker, harness).getUsername(); + NewClientWithCurrentAccountInformation info = harness.dataPrepare().createNewFoCustomerWithCurrentAccountAndIbViaWso2(nonClient, ufoUserName); + return info.getClientData(); + } + + public Function searchClientAndOpenIndividualInsuranceForm(NonClient client) { + return page -> page + .fillSearchTerm(client.birthNumber()) + .clickSearchByRc() + .onClientDetailPage() + .createNewProduct(HCisProductClass.INSURANCE) + .onInsuranceSelectPage() + .clickIndividualInsuranceButton(); + } + + public Function fillInsuranceForm() { + return page -> page + .clickNewContract() + .clickLifeInsurance() + .clickMeAsInsured() + .clickMeAsBeneficiary() + .clickMaritalStatusSingle() + .selectOccupation("programátor/-ka | Informační technologie") + .selectActivity("Běh, překážky a nestandardní přírodní podmínky | registrovaný nebo neregistrovaný sportovec") + .fillIncome("200000") + .fillExpenses("2000") + .clickSecuringLoansNo() + .clickFinancialReserveSixMonths() + .clickBetterTreatment() + .clickNotMonthlyAnnuity() + .clickDailyAnnuityNo() + .clickPersonalDataAgreementYes() + .clickNoRemoteBanker() + .clickElectronicForm() + .clickCalculateInsuranceRisk() + .clickSaveInsuranceRisk() + .clickContinueToSign(); + } + + public Function signDocuments() { + return page -> page.clickSignedPersonallyWithPossiblePhysicalSignature() + .onPrintPage() + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onPrintPage() + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onInsurancePage(); + } + + public String formatBirthDate(String date) { + return DateUtils.getDateWithFormat(TestUtils.dateFromString(date, "d.M.yyyy"), "dd.MM.yyyy"); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsurancePpiPlusTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsurancePpiPlusTasks.java new file mode 100644 index 0000000..ffcce3d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsurancePpiPlusTasks.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.insurance.FLO011_S001_EditExpresInsurancePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HPO011_S001_ExpresDetailPage; + +import java.util.function.Function; + +public class InsurancePpiPlusTasks { + + public Function createAndCancelInsurancePlus() { + return start -> start.clickChangeExpresInsurance("Pojištění schopnosti splácet") + .clickNoInvalidButton() + .clickConfirmInvalid() + .clickConfirmInsuranceChange() + .clickContinue() + .onAppendixSignedPage() + .clickAppendixConfigButton() + .clickInsChangeVictoryButtonPlus() + .clickCancelServiceCredit() + .clickCancelEditInsurancePlus() + .clickChangeCancelExpresInsurance("Bez pojištění") + .clickConfirmInsuranceCancel() + .clickAppendixConfigButton() + .clickInsuranceCancelVictoryButton(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsurancePpiTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsurancePpiTasks.java new file mode 100644 index 0000000..372d8c5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/insurance/InsurancePpiTasks.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.insurance; + +import cz.moneta.test.dsl.ufo.banka.pages.insurance.FLO011_S001_EditExpresInsurancePage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HPO011_S001_ExpresDetailPage; + +import java.util.function.Function; + +public class InsurancePpiTasks { + + public Function createAndCancelInsurance() { + return start -> start.clickChangeExpresInsurance("Pojištění schopnosti splácet") + .clickNoInvalidButton() + .clickConfirmInvalid() + .clickConfirmInsuranceChange() + .clickContinue() + .onAppendixSignedPage() + .clickAppendixConfigButton() + .clickInsuranceChangeVictoryButton() + .clickCancelInsurance() + .clickChangeCancelExpresInsurance("Bez pojištění") + .clickConfirmInsuranceCancel() + .clickAppendixConfigButton() + .clickInsuranceCancelVictoryButton(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/payment/PaymentTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/payment/PaymentTasks.java new file mode 100644 index 0000000..11607df --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/payment/PaymentTasks.java @@ -0,0 +1,282 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.payment; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.*; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.HPO001_S001_CurrentAccountDetailsPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL002_S003_ListOfSmoothPaymentsForVerificationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL_OBR001_SmoothPaymentInfo; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL006_S002_ListOfForeignPaymentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPageTransition; +import cz.moneta.test.dsl.util.data.payment.PaymentData; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CURRENT_ACCOUNT_NUMBER; +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL_OBR001_SmoothPaymentInfo.SMOOTH_PAYMENT_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL006_S001_ForeignPaymentInputPage.IDENTIFICATION_BANK_CODE_KEY; + +public class PaymentTasks { + private final Harness harness; + + public PaymentTasks(Harness harness) { + this.harness = harness; + } + + public Function searchAccountByProduct(String accountNumber) { + return start -> start.closeSearchedHistoryIfVisible() + .fillSearchTerm(accountNumber) + .clickSearchByProduct(); + } + + public Function storeBalancesFromUfoBanka() { + return start -> start.onCurrentAccountDetailsPage() + .storeDispoBalance() + .storeAccBalance(); + } + + public Function createStandingOrder(PaymentData data) { + return start -> start.onCurrentAccountDetailsPage() + .openCreateStandingOrderPage() + .fillFirstPaymentDate(data.getFirstPaymentDate()) + .fillLastPaymentDate(data.getLastPaymentDate()) + .fillReceiverAccountNumber(data.getCreditorAcc()) + .fillReceiverAccountBankCode(data.getBankCode()) + .fillReceiverAccountName(data.getName1()) + .fillFirstAmount(data.getAmount()) + .fillOptionalData(data.getVariableSymbol(), data.getConstantSymbol(), + data.getSpecificSymbol(), data.getName2(), data.getMessageMax2()) + .clickSave() + .onPrintPage(); + } + + public Function chooseStandingOrderFromList(String rootId) { + return start -> start.onCurrentAccountDetailsPage() + .openListOfStandingOrdersPage() + .checkStandingOrderStatusValid(rootId) + .clickOnStandingOrder(rootId); + } + + public Function changeStandingOrderFromList(String amount) { + return start -> start.clickChange() + .fillAmount(amount) + .clickSave(); + } + + public Function clickSignedAndStoreRootId() { + return start -> start.closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintInstructionPage() + .storeRootId() + .clickCenterButton(); + } + + public Function clickSignedAndStoreEditedRootId() { + return start -> start.onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintInstructionPage() + .storeRootId() + .clickCenterButton() + .onClientChargedPage() + .clickOkToListTp(); + } + + public Function deleteStandingOrderAndCheckStatusDeleted(String rootId) { + return start -> start.clickDelete() + .clickOnPrintDelete() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onListOfStandingOrdersPage() + .checkStandingOrderId(rootId) + .checkStandingOrderStatusDeleted(rootId); + } + + public Function createAuthorizationForDirectDebit(PaymentData data) { + return start -> start.onCurrentAccountDetailsPage() + .openListOfDirectDebitsPage() + .clickCreateButton() + .fillReceiverAccountNumber(data.getCreditorAcc()) + .fillReceiverAccountBankCode(data.getBankCode()) + .fillAmount(data.getAmount()) + .fillReceiverAccountName(data.getName1()) + .selectPeriod(data.getPeriod()) + .clickSaveToPrint(); + } + + public Function chooseAuthorizationForDirectDebitList(String rootId) { + return start -> start.onCurrentAccountDetailsPage() + .openListOfDirectDebitsPage() + .checkAuthorizationForDirectDebitValid(rootId) + .clickOnAuthorizationForDirectDebit(rootId); + } + + public Function changeAuthorizationForDirectDebitFromList(String amount) { + return start -> start.clickChange() + .fillAmount(amount) + .clickSave(); + } + + + public Function deleteAuthorizationForDirectDebitAndCheckStatus(String rootId) { + return start -> start.clickDelete() + .clickOnPrintDelete() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintInstructionPage() + .clickCenterButton() + .onListOfDirectDebitsPage() + .checkAuthorizationForDirectDebitDeletd(rootId); + } + + public Function checkDirectDebitChange(String changeTitle, String changeAmount, String rootId) { + return start -> start + .clickChange() + .fillTitle(changeTitle) + .fillAmount(changeAmount) + .clickSave() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintInstructionPage() + .clickCenterButton() + .onClientChargedPage() + .clickOkToListOfAuthorizationForDirectDebitsPage() + .checkDirectDebitTitle(rootId, changeTitle) + .checkDirectDebitAmount(rootId, changeAmount); + } + + public Function createStandardPaymentMaxData(PaymentData data) { + return start -> start.closeSearchedHistoryIfVisible() + .clickOnCreatePaymentOrder() + .fillDebtorAccNumber(data.getDebtorAcc()) + .fillAmountInput(data.getAmount()) + .fillOptionalData(data.getVariableSymbol(), data.getConstantSymbol(), + data.getVariableSymbol(), data.getMessageMax2()) + .clickTodayButton() + .fillCreditorAccNumber(data.getCreditorAcc()) + .fillCreditorAccBankCode(data.getBankCode()); + } + + public Function createStandardPayment(PaymentData data) { + return start -> start.closeSearchedHistoryIfVisible() + .clickOnCreatePaymentOrder() + .fillDebtorAccNumber(data.getDebtorAcc()) + .fillAmountInput(data.getAmount()) + .clickTodayButton() + .fillCreditorAccNumber(data.getCreditorAcc()) + .fillCreditorAccBankCode(data.getBankCode()); + } + + public Function createPriorityPaymentMaxData(PaymentData data) { + return start -> start.closeSearchedHistoryIfVisible() + .clickOnCreatePaymentOrder() + .fillDebtorAccNumber(data.getDebtorAcc()) + .fillAmountInput(data.getAmount()) + .fillOptionalData(data.getVariableSymbol(), data.getConstantSymbol(), + data.getVariableSymbol(), data.getMessageMax2()) + .clickTodayButton() + .fillCreditorAccNumber(data.getCreditorAcc()) + .fillCreditorAccBankCode(data.getBankCode()) + .clickPriorityPaymentCheckbox(); + } + + public Function createBankBookPaymentMaxData(PaymentData data) { + return start -> start.closeSearchedHistoryIfVisible() + .clickOnBillingOnBankBook() + .selectCreditorAcc(data.getCreditorAcc()) + .fillDebtorAcc(data.getDebtorAcc()) + .fillAmount(data.getAmount()) + .fillMaxData(data.getMessageMax2(), data.getVariableSymbol(), data.getSpecificSymbol(), data.getConstantSymbol()) + .clickOnSave() + .storeRootId(); + } + + public Function createBankBookPayment(PaymentData data) { + return start -> start.closeSearchedHistoryIfVisible() + .clickOnBillingOnBankBook() + .selectCreditorAcc(data.getCreditorAcc()) + .fillDebtorAcc(data.getDebtorAcc()) + .fillAmount(data.getAmount()) + .clickOnSave() + .storeRootId(); + } + + public Function savePaymentOrder() { + return start -> start.clickSaveButton() + .closePrintWindow() + .onPrintInstructionPage() + .clickLeftButton() + .onPrintInstructionPage() + .storeRootId() + .clickCenterButton() + .onCreatePaymentOrderPage(); + } + + public Function + createNewSmoothPayment(String currency, String accountNumberReceiver, String receiverName, String receiverAddressStreet, String receiverAddressCity, String receiverAddressCountryCode) { + return start -> start + .clickNewPaymentAndDismissAlertIfPresent() + .selectCurrency(currency) + .clickNo() + .fillAmount("101") + .fillAccountAndWaitUntilLoaded(accountNumberReceiver) + .fillReceiverName(receiverName) + .fillReceiverAdressStreet(receiverAddressStreet) + .fillReceiverAdressCity(receiverAddressCity) + .fillReceiverAdressCountryCode(receiverAddressCountryCode) + .storeIdentificationBankCode() + .saveCreatedForeignPaymentAndDismissAllAlertsIfPresent() + .saveDocumentUrl() + .closePrintWindow() + .onSignerPage() + .clickLeftButton() + .onSmoothPaymentInfo() + .storeSmoothPaymentId() + .clickOkButton() + .checkPresentCreatedTransaction(harness.get(SMOOTH_PAYMENT_ID_KEY)); + } + + public Function editSmoothPaymentAmount(String paymentId, String finalAmount) { + return start -> start + .clickPayment(paymentId) + .clickEditAndAcceptAlert() + .fillAmount(finalAmount) + .clickSave() + .storeSmoothPaymentId() + .clickOkButton() + .checkPaymentAmount(harness.get(SMOOTH_PAYMENT_ID_KEY), finalAmount); + } + + public Function + verifySmoothPayment(String paymentId, String currency, String finalAmount, String accountNumberReceiver, String receiverAddressCountryCode) { + return start -> start + .clickPayment(paymentId) + .clickVerification() + .selectCurrency(currency) + .fillAmount(finalAmount) + .fillAccountNumberSender(harness.get(CURRENT_ACCOUNT_NUMBER)) + .fillAccountNumberReceiver(accountNumberReceiver) + .fillCountryCode(receiverAddressCountryCode) + .fillIdentificationBankCode(harness.get(IDENTIFICATION_BANK_CODE_KEY)) + .clickExpensesSha() + .clickVerification() + .checkPageLabelContent("Platba byla zverifikována"); + } + + public Function cancelSmoothPayment(String paymentId) { + return start -> start + .clickPayment(paymentId) + .clickCancelPayment() + .clickCancel() + .checkInfoLabelContent("Hladká platba byla zrušena."); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/ClipDeclipFopTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/ClipDeclipFopTasks.java new file mode 100644 index 0000000..a5e2bd6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/ClipDeclipFopTasks.java @@ -0,0 +1,154 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO039_S001_MbcDetailPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.KUL058_S002_ChangeCardFramePage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.KUL058_S002_ChangeCardFramePageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL004_S001_EditBusinessInfoPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL001_S001_SelectProductsPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL004_S004_AddressesAndContactsPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL066_S001_ProcessedRequestsPage; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +public class ClipDeclipFopTasks { + + private final NewSmeAutomatSubTasks smeAutomatSubTasks; + + public ClipDeclipFopTasks(Harness harness) { + this.smeAutomatSubTasks = harness.tasks().ufo().banka().newSmeAutomatSubTasks(); + } + + public Function declipMbc(Harness harness) { + return start -> start + .clickMbcDetail() + .mouseOverFrameChangeAndDecrease() + .then(skipProcessedRequestsIfOpenedDeclip(harness)) + .changeActualFrameBy(-10000) + .clickContinue() + .then(setContactsIfShownOtherwiseSkipOnRecommendation(harness)) + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onBusinessInfoPage() + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.setExpresBusinessData()) + .clickContinue() + .onListOfPersonsOnRequestPage() + .clickContinue() + .onRequestSummaryPage() + .clickContinue() + .onMainClientPage(); + } + + public Function clipMbc(Harness harness, String lastYear, String yearBeforeLast) { + return start -> start + .clickMbcDetail() + .mouseOverFrameChangeAndIncrease() + .then(skipProcessedRequestsIfOpenedClip(harness)) + .selectProductToOnboard("Moneta Business Card") + .clickAddProduct() + .onChangeCardFramePage() + .changeActualFrameBy(10000) + .clickContinue() + .then(setContactsIfShownOtherwiseSkipOnRecommendation(harness)) + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onSelectProductSmeCommercial() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.setExpresBusinessData()) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .clickContinue() + .onRequestedDocumentPage() + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .clickContinue() + .onFinancialSignpostPage() + .clickNoPsd2Data() + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .clickContinue() + .onRequestSummaryPage() + .clickContinue() + .onRequestForSMEPage() + .clickPrintRequest() + .onPrintPagePSP004() + .saveDocumentUrl() + .closePrintWindow() + .onRequestForSMEPage() + .clickYes() + .onWaitingForModulationPage() + .waitForModulation(120) + .onModulationPage() + .clickDocumentScanning() + .onScanDocumentsPage() + .then(smeAutomatSubTasks.assignScannedDocuments(harness)) + .clickContinue() + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onMainClientPage(); + } + + /*** + * Stranka so zadanim kontaktnych informacii sa preskakuje v pripade, ze uz boli zadane a pokracuje na doporucenie. + */ + public Function setContactsIfShownOtherwiseSkipOnRecommendation(Harness harness) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(2, KUL058_S002_ChangeCardFramePage.KUL058_S002_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onContactSettingsForSendingEmailsPage() + .clickFillPhoneFromCif() + .clickFillEmailFromCif() + .clickContinue() + .onAddCodeOfRecommendedPersonPage(); + } else { + return start -> start + .onAddCodeOfRecommendedPersonPage(); + } + } + + public Function setBusinessDetail() { + return start -> start + .clickContinue() + .onClientRequestDetailPage() + .selectFamilyCompany("Ne") + .clickContinue() + .clickPermanentResidencyRadio() + .clickContinue(); + } + + /*** + * Stranka s rozpracovanymi ziadostami sa preskakuje v pripade, ze klient nejake rozpracovane ziadosti uz ma. + */ + public Function skipProcessedRequestsIfOpenedDeclip(Harness harness) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(2, KUL066_S001_ProcessedRequestsPage.KUL066_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onProcessedRequestsPage() + .clickContinue() + .onChangeCardFramePage(); + } else { + return start -> start.onChangeCardFramePage(); + } + } + + /*** + * Stranka s rozpracovanymi ziadostami sa preskakuje v pripade, ze klient nejake rozpracovane ziadosti uz ma. + */ + public Function skipProcessedRequestsIfOpenedClip(Harness harness) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(2, KUL066_S001_ProcessedRequestsPage.KUL066_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onProcessedRequestsPage() + .clickContinue() + .onSelectProductsPage(); + } else { + return start -> start.onSelectProductsPage(); + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/ClipDeclipPoTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/ClipDeclipPoTasks.java new file mode 100644 index 0000000..aa485ff --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/ClipDeclipPoTasks.java @@ -0,0 +1,98 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO039_S001_MbcDetailPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL001_S001_SelectProductsPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL003_S001_FlexiBusinessProductDetail; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL066_S001_ProcessedRequestsPage; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +public class ClipDeclipPoTasks { + + private final NewSmeAutomatSubTasks smeAutomatSubTasks; + + public ClipDeclipPoTasks(Harness harness) { + this.smeAutomatSubTasks = harness.tasks().ufo().banka().newSmeAutomatSubTasks(); + } + + public Function declipFlexi(Harness harness, String decreaseAmount) { + return start -> start + .clickKontokorentDetail() + .mouseOverFrameChangeAndDecrease() + .then(skipProcessedRequestsIfOpenedDeclipFlexi(harness)) + .fillRequiredLoanAmount(decreaseAmount) + .clickLoadTurnovers() + .clickContinue() + .onEditBusinessInfoPage() + .then(smeAutomatSubTasks.fillBusinessInformation("1")) + .clickCompanyHeadquarterRadio() + .clickContinue() + .onListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthority("200000,00")) + .clickPermanentResidencyFopRadio() + .clickContinue() + .onListOfPersonsOnRequestPage() + .clickContinue() + .onRequestSummaryPage() + .clickContinue() + .onMainClientPage(); + } + + public Function clipFlexi(Harness harness, String increaseAmount, String lastYear, String yearBeforeLast) { + return start -> start + .clickKontokorentDetail() + .mouseOverFrameChangeAndIncrease() + .then(skipProcessedRequestsIfOpenedClipFlexi(harness)) + .selectFlexiBusiness("Flexi Business") + .fillRequiredLoanAmount(increaseAmount) + .clickLoadTurnovers() + .clickContinue() + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipPo(harness)) + .then(smeAutomatSubTasks.fillBusinessInformation("1")) + .then(smeAutomatSubTasks.selectCompanyHeadquarter()) + .then(smeAutomatSubTasks.assignDocuments("Doklady PO", "Výpis z OR")) + .clickContinue() + .onFinancialSignpostPage() + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthority("200000,00")) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .then(smeAutomatSubTasks.finalizeSmeForPo(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + /*** + * Stranka s rozpracovanymi ziadostami sa preskakuje v pripade, ze klient nejake rozpracovane ziadosti uz ma. + */ + public Function skipProcessedRequestsIfOpenedDeclipFlexi(Harness harness) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(2, KUL066_S001_ProcessedRequestsPage.KUL066_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onProcessedRequestsPage() + .clickContinue() + .onFlexiBusinessProductDetail(); + } else { + return start -> start.onFlexiBusinessProductDetail(); + } + } + + /*** + * Stranka s rozpracovanymi ziadostami sa preskakuje v pripade, ze klient nejake rozpracovane ziadosti uz ma. + */ + public Function skipProcessedRequestsIfOpenedClipFlexi(Harness harness) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(2, KUL066_S001_ProcessedRequestsPage.KUL066_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onProcessedRequestsPage() + .clickContinue() + .onSelectProductsPage(); + } else { + return start -> start.onSelectProductsPage(); + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/DebitCardTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/DebitCardTasks.java new file mode 100644 index 0000000..3fcbf0e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/DebitCardTasks.java @@ -0,0 +1,86 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.loans.CAS001_S001_ScoringPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPage; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.DEBIT_CARD; + +public class DebitCardTasks { + + private final Harness harness; + + public DebitCardTasks(Harness harness) { + this.harness = harness; + } + + public Function createDebitCard(String debitCardType, DebitCardFeePlan debitCardFeePlan) { + return start -> start + .createNewProduct(DEBIT_CARD) + .onRegistrationCertificatePage() + .clickRightButton() + .then(sendDocumentationIfPageShownOtherwiseSkip()) + .then(fillDebitCardInformation(debitCardType, debitCardFeePlan)) + .then(finalizeDebitCard()); + } + + public Function fillDebitCardInformation(String debitCard, DebitCardFeePlan debitCardFeePlan) { + return start -> start + .selectCurrentAccountByIndex(2) + .selectDebitCardType(debitCard) + .typeActivatePassword("111111") + .clickClientDataHolderButton() + .clickEnterButton() + .onPrintInstructionPage() + .clickLeftButton() + .onDebitCardRequestPage() + .clickPermanentAddressForPinRadio() + .dismissPinChargeAlert() + .clickCardDeliveryToPermanentAddress() + .selectDebitCardFeePlan(debitCardFeePlan) + .clickDesign() + .clickSend() + .onScoringPage() + .waitForLoader(); + } + + public Function finalizeDebitCard() { + return start -> start + .onModulationPage() + .waitForModulation(120) + .onSignerSelectionPageTIS050() + .clickSignedAndContinueToPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onClientContractSignPage() + .clickCenterButton() + .onWaitingForModulationPage() + .waitForModulation(120) + .onSummaryOfProductFoundationPage() + .clickOk() + .onMainClientPage(); + } + + public Function sendDocumentationIfPageShownOtherwiseSkip() { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(3, BPP001_S001_DocumentationSendPage.SEND_DOCUMENTS_BUTTON, Lookup.ID)) { + return start -> start + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onDebitCardRequestPage(); + } else { + return start -> start + .onDebitCardRequestPage(); + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewCurrentAccountTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewCurrentAccountTasks.java new file mode 100644 index 0000000..f7ab2d1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewCurrentAccountTasks.java @@ -0,0 +1,234 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS004_S002_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.ib.ADC047_S001_IbSettingsPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.ADC012_S001_SettingADC; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.pages.main.components.BUF051_S001_CreateCurrentAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BUF001_S001_CurrentAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.DUP009_S001_CreateElectronicDistributionChannel; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +public class NewCurrentAccountTasks { + + public Function createCurrentAccountFop(Harness harness, NonClient nonClient) { + return start -> start + .then(selectCurrentAccountProduct()) + .then(sendDocumentationIfPageShownOtherwiseSkip(harness, nonClient)) + .then(fillCurrentAccountFormFop()) + .then(setDisposition()) + .then(setAdcChannelsAndPrint()) + .then(summaryOfFoundedProducts()); + } + + public Function createCurrentAccountPo(Harness harness, NonClient nonClient) { + return start -> start + .then(selectCurrentAccountProduct()) + .then(sendDocumentationIfPageShownOtherwiseSkip(harness, nonClient)) + .then(fillCurrentAccountFormPo()) + .clickRightButton() + .onSettingADCPage() + .then(setAdcChannelsAndPrintPo()) + .then(summaryOfFoundedProducts()); + } + + public Function createCurrentAccountFon() { + return start -> start + .then(fillContactAddress()) + .then(fillCurrentAccountDetails()) + .clickContinue() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onAccountDispositionOwnerPage() + .clickOwnerOnly() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .then(fillAdcDetails()) + .clickContinue() + .onPrintInstructionPage() + .clickCenterButton() + .onAddCodeOfRecommendedPersonPage() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onPrintInstructionPage() + .clickCenterButton() + .onDispositionGeneratePage() + .clickGenerateNow() + .onPrintPage() + .closePrintWindow() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage(); + } + + private Function fillContactAddress() { + return start -> start + .createNewProduct(HCisProductClass.CURRENT_ACCOUNT) + .onRegistrationCertificatePage() + .clickRightButton() + .onEnterContactAddressPage() + .clickUseResidencyAsContactAndConfirm() + .clickSave() + .onCurrentAccountPage(); + } + + private Function fillCurrentAccountDetails() { + return start -> start + .selectFeePlan("Tom Plus") + .clickDispositionRadioYes() + .clickConfirm() + .onCitizenSignatureInformation(); + } + + private Function fillAdcDetails() { + return start -> start + .clickRightButton() + .onPrintInstructionPage() + .clickRightButton() + .onPrintInstructionPage() + .clickRightButton() + .onIbPasswordKeyPage() + .clickFillFromCifCheckbox() + .scrollIntoSendButton() + .clickContinue() + .onDocumentsProvidedToClientPage(); + } + + private Function selectCurrentAccountProduct() { + return start -> start + .createNewProduct(HCisProductClass.CURRENT_ACCOUNT) + .onRegistrationCertificatePage() + .clickRightButton(); + } + + public Function sendDocumentationIfPageShownOtherwiseSkip(Harness harness, NonClient nonClient) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(3, BPP001_S001_DocumentationSendPage.SEND_DOCUMENTS_BUTTON, Lookup.ID)) { + return start -> start + .onDocumentationSendPage() + .fillEmail(nonClient.email()) + .sendDocumentsToClient() + .clickLeftButton() + .onCurrentAccountPage(); + } else { + return start -> start + .onCreateCurrentAccountPage(); + } + } + + private Function fillCurrentAccountFormFop() { + return start -> start + .selectAccountFlag("Konto") + .selectProductType("BU-Genius Business FOP/R/") + .selectAccountType("Konto PRO podnikání") + .changeMfbSetting() + .selectDistributionType("Elektronicky IB") + .continueToCreateElectronicDistributionChannel() + .then(selectDistributionChannelFop()); + } + + private Function fillCurrentAccountFormPo() { + return start -> start + .selectAccountFlag("Konto") + .selectProductType("BU-Genius Business PO/R/") + .selectAccountType("Konto PRO podnikání") + .selectDistributionType("Elektronicky IB") + .continueToCreateElectronicDistributionChannel() + .then(selectDistributionChannelPo()); + } + + private Function selectDistributionChannelFop() { + return start -> start + .selectDistributionChannel("IB Heslo/MK") + .clickContinueDismissAlertIfPresent() + .onAccountDispositionOwnerPage(); + } + + private Function selectDistributionChannelPo() { + return start -> start + .selectDistributionChannel("IB Heslo/MK") + .clickContinueDismissAlertIfPresent() + .onPrintInstructionPage(); + } + + private Function setDisposition() { + return start -> start + .then(setWithoutDisposition()) + .onIbSettingsPage(); + } + + private Function setWithoutDisposition() { + return start -> start + .clickNotCreateNow() + .clickSkipCreate(); + } + + private Function setAdcChannelsAndPrint() { + return start -> start + .clickActiveOperation() + .fillDailyLimit("200000") + .fillWeeklyLimit("0") + .clickContinue() + .clickModalWarningContinue() + .onSettingsADCPage() + .clickSaveAndAcceptAlert() + .onPrintInstructionPage() + .clickCenterButton() + .onPrintInstructionPage() + .clickRightButton() + .onSignerSelectionsPage() + .clickSignedAndContinueToPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage(); + } + + private Function setAdcChannelsAndPrintPo() { + return start -> start + .clickSaveAndAcceptAlert() + .onPrintInstructionPage() + .clickCenterButton() + .onDispositionGeneratePage() + .clickGenerateNow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage(); + } + + private Function summaryOfFoundedProducts() { + return start -> start + .clickRightButton() + .onSummaryStartDocumentsPage() + .clickContinue() + .onPrintInstructionPage() + .clickRightButton() + .onMainClientPage(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewPackagedProductTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewPackagedProductTasks.java new file mode 100644 index 0000000..72a216c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewPackagedProductTasks.java @@ -0,0 +1,174 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS046_S001_DocumentsProvidedToClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.TIS050_S001_SignerSelectionPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.Product; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.SavingsAccountsEnum; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.function.Function; + +public class NewPackagedProductTasks { + + private final Harness harness; + + public NewPackagedProductTasks(Harness harness) { + this.harness = harness; + } + + public Function ibWithMobileKeyAndCurrentAccount(NonClient nonClient, CurrentAccountsEnum feePlan) { + return start -> start.createNewProduct(HCisProductClass.CURRENT_ACCOUNT) + .onCurrentAccountPage() + .selectFeePlan(feePlan.getAccountName()) + .selectDistributionType("Elektronicky IB") + .clickDispositionRadioYes() + .clickConfirm() + .onElectronicDistributionChannelCreationPage() + .selectDistributionChannel("IB Heslo/MK") + .clickContinueDismissAlertIfPresent() + .onSignerSelectionPage() + .clickSignedPersonallyPhysicallyAndContinue() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintInstructionPage() + .clickRightButton() + .onAccountDispositionOwnerPage() + .clickNotCreateNow() + .clickSkipCreate() + .onAddCodeOfRecommendedPersonPage() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onIbTypeSelectionPage() + .clickActiveToIbPage() + //.insertEnvelopeNumber() + .enterMobilePhoneNumber(nonClient.mobileNumber()) + .clickContinueToSettingADCPage() + .clickSave() + .onDispositionGeneratePage() + .clickGenerateLater() + .onContractDocumentationPage() + .clickContinueSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .checkProductActive(Product.ADC_IB_MK_ACTIVE.getValue()); + } + + public Function ibWithMobileKeyAndCurrentAccountAfterSearchCif(String mobileNumber, CurrentAccountsEnum feePlan) { + return start -> start.then(selectsAndFillsPageToCreateIbWithMobileKeyAndCurrentAccount(feePlan)) + .clickSignedPersonallyPhysicallyAndContinue() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .then(finishCreateIbWithMobileKeyAndCurrentAccount(mobileNumber)); + } + + private Function selectsAndFillsPageToCreateIbWithMobileKeyAndCurrentAccount(CurrentAccountsEnum feePlan) { + return start -> start.createNewProduct(HCisProductClass.CURRENT_ACCOUNT) + .onCurrentAccountPage() + .selectFeePlan(feePlan.getAccountName()) + .selectDistributionType("Elektronicky IB") + .clickDispositionRadioNo() + .clickConfirm() + .onElectronicDistributionChannelCreationPage() + .selectDistributionChannel("IB Heslo/MK") + .clickContinueDismissAlertIfPresent() + .onSignerSelectionPage(); + } + + private Function finishCreateIbWithMobileKeyAndCurrentAccount(String mobileNumber) { + return start -> start.clickContinue() + .onIbSettingsPage() + .clickActiveOperation() + .fillDailyLimit("50000") + .fillWeeklyLimit("0") + .clickContinue() + .clickModalWarningContinue() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onSettingAdcPage() + .clickSaveAndAcceptAlert() + .onPrintInstructionPage() + .clickCenterButton() + .onDispositionGeneratePage() + .clickGenerateNow() + .onPrintPage() + .closePrintWindow() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .checkProductActive(Product.ADC_IB_MK_ACTIVE.getValue()); + } + + public Function createNewCurrentAccountGeniusGoldWithSavingsAccountGold() { + String feePlanCurrentAccount = CurrentAccountsEnum.GENIUS_GOLD.getAccountName(); + String feePlanSavingAccount = SavingsAccountsEnum.GOLD.getAccountName(); + return start -> start.createNewProduct(HCisProductClass.CURRENT_ACCOUNT) + .onCurrentAccountPage() + .selectFeePlan(feePlanCurrentAccount) + .clickDispositionRadioYes() + .clickConfirm() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onAccountDispositionOwnerPage() + .clickOwnerOnly() + .onPrintSignPadPage() + .clickBack() + .clickCenterButton() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onSavingAccountConfirmation() + .clickContinue() + .clickNotCreateNow() + .clickSkipCreate() + .onAddCodeOfRecommendedPersonPage() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onPrintInstructionPage() + .clickCenterButton() + .onDispositionGeneratePage() + .clickGenerateNow() + .onPrintPage() + .closePrintWindow() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onSummaryStartDocumentsPage() + .storeCurrentAccountNumber() + .logSavingAccountGoldNumber() + .clickContinue() + .onMainClientPage() + .checkProductActive(feePlanCurrentAccount) + .checkProductActive(feePlanSavingAccount); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewProductTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewProductTasks.java new file mode 100644 index 0000000..0be8c89 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewProductTasks.java @@ -0,0 +1,1125 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.*; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.income.PIM001_S001_IncomeEditPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.*; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.*; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ODS003_S001_AddCodeOfRecommendedPersonPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.PVX002_S002_AccountDispositionOwnerPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.Product; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.NPK001_S001_DebitCardRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.saving.accounts.SPU001_S001_SavingAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.saving.accounts.SPU001_S001_SavingAccountPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO001_S001_UniverzalRequestIdentificationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.universal.request.UZO006_S001_UniverzalRequestModeling; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.ufo.banka.tasks.cards.CreditCardsTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.code.lists.HCisDoklady; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.web.Lookup; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.CIF113_S001_ChangeDataFO.*; +import static cz.moneta.test.dsl.ufo.banka.pages.ib.ADC001_S001_IbPasswordKeyPage.PASSWORD_PLUS_MK; +import static cz.moneta.test.dsl.ufo.banka.pages.income.PIM001_S001_IncomeEditPage.INCOME_SUBTYPE_SELECT; +import static cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage.ACCOUNT_NUMBER_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.*; +import static cz.moneta.test.dsl.ufo.banka.pages.main.signature.patterns.NPV010_S001_PrintSignPadPage.PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage.BPP001_S001_PAGE_LABEL_XPATH; + +public class NewProductTasks { + + private final Harness harness; + + public NewProductTasks(Harness harness) { + this.harness = harness; + } + + public Function ibWithMobileKey(NonClient nonClient) { + return start -> start.createNewProduct(ADC_IB_MK) + .onIbPasswordKeyPage() + .insertEnvelopeNumber() + .selectLoginMethod(PASSWORD_PLUS_MK) + .enterMobilePhoneNumber(nonClient.mobileNumber()) + .clickContinueToSettingADCPage() + .clickSave() + .onPrintOptionsPage() + .clickPostponePrint() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .checkProductActive(Product.ADC_IB_MK_ACTIVE.getValue()); + } + + public Function createNewCurrentAccount(CurrentAccountsEnum feePlan) { + if (feePlan == CurrentAccountsEnum.TOM) { + return start -> start.then(useFlow(feePlan)) + .clickContinueToSuspendDispositionPrintPage() + .clickDoNotPrintEmpowermentNow() + .clickClientAgreedAndSignedAll() + .storeCurrentAccountNumber() + .clickContinue() + .onMainClientPage() + .checkProductActive(feePlan.getAccountName()); + } else { + return start -> start.then(useFlow(feePlan)) + .clickContinueToPrintOptionsPage() + .clickPostponePrint() + .onContractDocumentationPage() + .clickContinueSummaryStartDocumentsPage() + .storeCurrentAccountNumber() + .clickContinue() + .onMainClientPage() + .checkProductActive(feePlan.getAccountName()); + } + } + + private Function useFlow(CurrentAccountsEnum feePlan) { + return start -> start.createNewProduct(HCisProductClass.CURRENT_ACCOUNT) + .onCurrentAccountPage() + .selectFeePlan(feePlan.getAccountName()) + .clickConfirm() + .onPreContractInformationPage() + .clickOnSignedAndContinueDocumentsProvidedToClientPage() + .clickContinue() + .onAccountDispositionOwnerPage() + .clickNotCreateNow() + .clickSkipCreate() + .onAddCodeOfRecommendedPersonPage() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onFlexiCreditRecommendationPage(); + } + + public Function createNewCurrentAccount(String feePlan) { + return start -> start.createNewProduct(HCisProductClass.CURRENT_ACCOUNT) + .onCurrentAccountPage() + .selectFeePlan(feePlan) + .clickDispositionRadioNo() + .clickConfirm() + .onSignerPage() + .clickSignedAndContinueToPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintInstructionPage() + .clickCenterButton() + .onDispositionGeneratePage() + .clickGenerateNow() + .onPrintPage() + .closePrintWindow() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onSummaryStartDocumentsPage() + .logAccountNumber() + .clickContinue() + .then(continueIfOnOpFoundPage()) + .checkProductActive(feePlan); + } + + public Function continueIfOnOpFoundPage() { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible("//*[text()='OP nalezen']", Lookup.XPATH)) { + return start -> start + .onOpFoundPage() + .clickLeftButton() + .onMainClientPage(); + } else { + return start -> start.onMainClientPage(); + } + } + + public Function skipOpFoundPageIfVisible() { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible("//*[text()='OP nalezen']", Lookup.XPATH)) { + return start -> start + .onContractSignPage() + .clickLeftButton() + .onSignaturePage(); + } else return start -> start + .onSignaturePage(); + } + + public Function createCurrentAccountNew(String feePlan) { + return start -> start.createNewProduct(HCisProductClass.CURRENT_ACCOUNT) + .onCurrentAccountPage() + .selectFeePlan(feePlan) + .clickConfirm() + .onCitizenSignatureInformation() + .clickContinue() + .onPreContractualInformationPage() + .clickOnSignedAndContinueDocumentsProvidedToClientPage() + .clickContinue() + .onPrintInstructionPage() + .clickRightButton() + .onAccountDispositionOwnerPage() + .clickNotCreateNow() + .clickSkipCreate() + .onAddCodeOfRecommendedPersonPage() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onDispositionPage() + .clickGenerateLater() + .onSummaryStartDocumentsPage() + .logAccountNumber() + .clickContinue() + .onMainClientPage() + .checkProductActive(feePlan); + } + + public Function createNewDebitCardForExistingCurrentAccount(String cardName, DebitCardFeePlan feePlan) { + return start -> start.createNewProduct(DEBIT_CARD) + .onSelectionOfSubmittedDocumentsPage() + .selectIdCardRadio() + .clickDocumentsCheckButton() + .clickContinue() + .onDebitCardRequestPage() + .selectCurrentAccountByIndex(2) + .selectDebitCardType(cardName + "|Nabízet") + .selectDebitCardFeePlan(feePlan) + .typeActivatePassword("000000") + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .clickCardDeliveryToPermanentAddress() + .clickPinDeliveryToPermanentAddress() + .dismissPinChargeAlert() + .waitForLoadAndClickSend() + .onSignerSelectionPage() + .chooseCitizen() + .clickContinue() + .onColdNotPrintFeeCatalogPage() + .clickOK() + .continueToGeneralContractAndDispositionPage() + .continueToSummaryPage() + .checkTextLabelContent("Debetní karta byla úspěšně založena") + .clickOk() + .onMainClientPage(); + } + + public Function debitCardCommonPart(long accountNumber, String cardName, DebitCardFeePlan feePlan) { + return start -> start.createNewProduct(DEBIT_CARD) + .onSelectionOfSubmittedDocumentsPage() + .selectIdCardRadio() + .clickDocumentsCheckButton() + .clickContinue() + .onDebitCardRequestPage() + .selectCurrentAccount(accountNumber) + .selectDebitCardType(cardName + "|") + .selectDebitCardFeePlan(feePlan) + .typeActivatePassword("000000") + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .clickDesignButtonIfSelectIsNotEnabled() + .selectCardVariant("Standard") + .clickCardDeliveryToPermanentAddress() + .clickPinDeliveryToPermanentAddress() + .dismissPinChargeAlert(); + } + + public Function createNewDebitCardForExistingCurrentAccount(long accountNumber, String cardName, DebitCardFeePlan feePlan) { + return start -> start + .then(debitCardCommonPart(accountNumber, cardName, feePlan)) + .waitForLoadAndClickSend() + .onFinalSignature() + .continueToGeneralContractAndDispositionPage() + .continueToSummaryPage() + .checkTextLabelContent("Debetní karta byla úspěšně založena") + .clickOk() + .onMainClientPage(); + } + + public Function verifyDebitCardDetails( + NonClient nonClient, String cardName, String feeType, String cardStatus, String atmLimit, String posLimit, String onlineLimit, String activationPassword) { + return start -> start.openProductDetail(cardName) + .onDebitCardDetailPage() + .assertCardType(cardName) + .assertCardFeeType(feeType) + .assertCardStatus(cardStatus) + .assertCardholderName(nonClient.firstName().toUpperCase() + " " + nonClient.lastName().toUpperCase()) + .assertATMLimit(atmLimit) + .assertPOSLimit(posLimit) + .assertInternetAMOTOLimit(onlineLimit) + .assertActivationPassword(activationPassword) + .clickBackToClient(); + } + + public Function verifyCreditCardDetails(String cardName) { + return start -> start.openProductDetail(cardName) + .onCreditCardDetailPage() + .storeContractNumber() + .assertPaymentMethod("Inkasem z účtu") + .clickBackToClient(); + } + + public Function verifyCurrentAccountDetails( + String accountName, String balance, String currency, String product, String openedDate, String paymentMethod) { + return start -> start.openProductDetail(accountName) + .onCurrentAccountDetailsPage() + .assertAccountBalance(balance) + .assertAccountCurrency(currency) + .assertProduct(product) + .assertAccountOpeningDate(openedDate) + .assertPaymentMethod(paymentMethod) + .clickBackToClient(); + } + + public Function createIBAndCurrentAccount(CurrentAccountsEnum feePlan, String mobilePhoneNumber) { + return start -> start.createNewProduct(CURRENT_ACCOUNT) + .onCurrentAccountPage() + .selectFeePlan(feePlan.getAccountName()) + .clickDispositionRadioYes() + .clickConfirm() + .onPrintPage() + .closePrintWindow() + .onPreContractualInformationPage() + .clickOnSignedAndContinueDocumentsProvidedToClientPage() + .clickContinue() + .onAccountDispositionOwnerPage() + .clickOwnerOnly() + .onPrintPage() + .closePrintWindow() + .onConfirmationPage() + .clickConfirmed() + .onAddCodeOfRecommendedPersonPage() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onPrintInstructionPage() + .clickCenterButton() //TODO: fixit + .onMainClientPage() + .createNewProduct(ADC_IB_MK) + .onIbTypeSelectionPage() + .clickActiveToIbPage() + .enterMobilePhoneNumber(mobilePhoneNumber) + .clickContinue() + .onDocumentsProvidedToClientPage() + .clickContinue() +// .onSettingAdcPage()//PPE +// .clickSave()//ppe + .onClientCardSentByEmailPage() + .clickContineButton() + .clickGenerateLater() + .onPrintPage() + .closePrintWindow() + .onContractDocumentationPage() + .clickContinue() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage(); + } + + public Function addOtherApplicant(String birthNumber) { + return start -> start + .clickOtherApplicant() + .clickFillInApplicant() + .fillSearchTerm(birthNumber) + .clickSearchByRc() + .clickSearch() + .onUniversalRequestIdentificationPage() + .selectRelationshipWithMainApplicant("Manžel/manželka"); + } + + public Function selectPersonalIds() { + return start -> start + .selectIdCardRadio() + .selectPassportRadio() + .clickDocumentsCheckAndContinue() + .onCreditCardApplicantPage(); + } + + public Function createUzofkaWithOtherApplicant(NonClient clientData, int loanAmount, int term, String otherApplicantBirthNumber) { + return start -> start.createNewProduct(UNIVERSAL_REQUEST) + .onUniversalRequestPage() + .typeIntoLoanAmount(loanAmount) + .selectNumberOfInstallments(term) + .selectPrimaryRequiredProduct("Expres půjčka") + .checkMonthlyInstallmentNotEmpty() + .clickNotIncludeExternCommitments() + .fillRequiredIncrease("100") + .then(addOtherApplicant(otherApplicantBirthNumber)) + .clickOtherApplicant() + .clickContinue() + .onSelectionOfSubmittedDocumentsPage() + .then(selectPersonalIds()) + .checkCorrespondenceAddress(harness.get(ADDRESS_KEY)) + .checkDependantsNumber(harness.get(DEPENDANTS_NUMBER_KEY)) + .then(fillApplicantPage(clientData, true)) + .selectFirstIncome() + .clickContinue() + .onIdSelectionPage() + .then(selectPersonalIds()) + .then(fillApplicantPage(clientData, true)) + .isSameHouseHold("Ano") + .selectFirstIncome() + .clickContinue() + .onSignerSelectionPage() + .clickSignedPersonallyPhysicallyAndContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onUniversalApplicationSignaturePage() + .clickApplicantCheckbox() + .clickSecondApplicantCheckbox() + .clickYesButton() + .waitForLoader() + .onUniversalApplicationScoringResultPage() + .waitForStatusAndRefresh("varianty navrženy") + .checkApprovedOffersVisible() + .then(calculateProductsCombinations()) + .clickEndButton() + .onMainClientPage(); + } + + + public Function createUzofka(NonClient clientData, int loanAmount, int term) { + return start -> start.createNewProduct(UNIVERSAL_REQUEST) + .onUniversalRequestPage() + .typeIntoLoanAmount(loanAmount) + .selectNumberOfInstallments(term) + .selectPrimaryRequiredProduct("Expres půjčka") + .checkMonthlyInstallmentNotEmpty() + .clickNotIncludeExternCommitments() + .fillRequiredIncrease("100") + .clickContinue() + .onSelectionOfSubmittedDocumentsPage() + .then(selectPersonalIds()) + .then(fillApplicantPage(clientData, true)) + .selectFirstIncome() + .clickContinue() + .onSignerSelectionPage() + .clickSignedPersonallyPhysicallyAndContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onUniversalApplicationSignaturePage() + .clickApplicantCheckbox() + .clickYesButton() + .waitForLoader() + .onUniversalApplicationScoringResultPage() + .storeAppKey() + .clickEndButton() + .onMainClientPage() + .selectFromListOfRequests() + .selectProductFilter("Expres půjčka") + .selectFirstApplication() + .clickOpenRequestDetail() + .onUniverzalRequestModelingPage() + .waitForStatusAndRefresh("varianty navrženy") + .checkApprovedOffersVisible() + .clickEndButton() + .onListOfRequests() + .clickBackToMainPage(); + } + + public Function calculateProductsCombinations() { + return start -> start + .clickCalculator() + .selectCredit("Core Expres|50000|24|") + .fillCreditAmount("50000") + .selectInsurance("Bez pojištění") + .clickCalculation() + .checkPaymentNotEmpty() + .checkCreditRateNotEmpty() + .checkRpsnNotEmpty() + .checkInsuranceChargeNotEmpty() + .selectRecalculation("Flexikredit|50000|") + .clickRecalculate() + .checkDoNotAcceptThirdProductIsVisible() + .clickBack(); + } + + public Function finishLoanApplication() { + return start -> start + .clickApplicantSignatureCheckbox() + .clickYes() + .onScoringPage() + .waitForLoader(); + } + + public Function fillApplicationDataPage(String insurance) { + return start -> start + .selectInsurance(insurance) + .clickSaveButton() + .onSignerSelectionPage() + .clickSignedPersonallyAndContinue() + .closePrintWindow() + .onSignaturePage(); + } + + public Function fillPromoCodePage() { + return start -> start.checkProductNotRecommended() + .clickWithoutRecommendation(); + } + + public Function selectIDs() { + return start -> start.selectIdCardRadio() + .selectDriverLicenceRadio() + .clickDocumentsCheckButton() + .clickContinue() + .onCreditCardApplicantPage(); + } + + public Function fillApplicantPage(NonClient nonClient, boolean createNewIncome) { + return start -> { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + NEP002_S001_ApplicantPage page = start + .then(fillIncomePage(nonClient, createNewIncome)) + .fillPaymentsOutsideMMB(nonClient.otherLoanPayments()) + .fillOtherMonthlyExpenses(nonClient.otherExpenses() + nonClient.housingExpenses()) + .fillHouseholdIncome(nonClient.homeIncome()); + if (endpoint.isElementVisible(3, NEP002_S001_ApplicantPage.SAME_HOUSEHOLD_SELECT, Lookup.ID)) { + page = page.isSameHouseHold("Ne"); + } + return page; + }; + } + + private Function fillIncomePage(NonClient nonClient, boolean createNewIncome) { + if (createNewIncome) { + return start -> start + .clickEditIncomeButton() + .clickAddIncomeButton() + .selectIncomeType(nonClient.incomeType().getUfoValue()) + .selectIncomeSubtype(nonClient.incomeSubtype().getUfoValue()) + .selectOccupation(nonClient.occupationType().getUfoValue()) + .then(finishSettingIncome(nonClient)); + } else { + return start -> start + .clickEditIncomeButton() + .then(finishSettingIncome(nonClient)); + } + } + + private Function fillIncomePageRetirement(NonClient nonClient, boolean createNewIncome) { + if (createNewIncome) { + return start -> start + .clickEditIncomeButton() + .clickAddIncomeButton() + .selectIncomeType(nonClient.incomeType().getUfoValue()) + .selectIncomeSubtype(nonClient.incomeSubtype().getUfoValue()) + .selectOccupation(nonClient.occupationType().getUfoValue()) + .then(finishSettingIncome(nonClient)); + } else { + return start -> start + .clickEditIncomeButton() + .then(finishSettingIncome(nonClient)); + } + } + + private Function finishSettingIncome(NonClient nonClient) { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, INCOME_SUBTYPE_SELECT); + if (endpoint.getSelectedFirstItemText(INCOME_SUBTYPE_SELECT, Lookup.ID).equals("Invalidní důchod")) { + return start -> start + .then(finishSettingIncomeRetirement(nonClient)); + } else { + return start -> start + .then(finishSettingIncomeOther(nonClient)); + } + + } + + private Function finishSettingIncomeOther(NonClient nonClient) { + return start -> start + .openSearchEmployerWindow() + .fillCompanyNameOrIco(nonClient.employer().getName()) + .clickSearchCompanyButton() + .selectCompanyNameRow(nonClient.employer().getName()) + .clickSelectEmployerButton() + .selectIncomeSubtype(nonClient.incomeSubtype().getUfoValue()) + .selectOccupation(nonClient.occupationType().getUfoValue()) + .clickIncomeCashNoRadio() + .clickNoticePeriodNoRadio() + .clickTrialPeriod(nonClient) + .fillEmploymentStartDate(DateUtils.getDateWithFormat(nonClient.occupationEmploymentFromRaw(), "d.M.yyyy")) + .then(fillEmploymentEndDateIfVisible(DateUtils.getDateWithFormat(nonClient.occupationEmploymentTillRaw(), "d.M.yyyy"))) + .fillPhoneCountryCode("420") + .fillPhoneNumber(nonClient.employer().getPhoneNumber()) + .fillNetIncome(nonClient.netMonthlyIncome()) + .clickAcceptIncomeButton() + .clickBackButton() + .onApplicantPage(); + + } + + private Function + fillEmploymentEndDateIfVisible(String date) { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(3, PIM001_S001_IncomeEditPage.EMPLOYMENT_END_DATE_INPUT, Lookup.ID)) { + return start -> start.fillEmploymentEndDate(date); + } else { + return start -> start; + } + } + + private Function finishSettingIncomeTrialTrue(NonClient nonClient) { + return start -> start + .openSearchEmployerWindow() + .fillCompanyNameOrIco(nonClient.employer().getName()) + .clickSearchCompanyButton() + .selectCompanyNameRow(nonClient.employer().getName()) + .clickSelectEmployerButton() + .clickIncomeCashNoRadio() + .clickNoticePeriodNoRadio() + .clickTrialPeriodNoRadio() + .fillEmploymentStartDate(DateUtils.getDateWithFormat(nonClient.occupationEmploymentFromRaw(), "d.M.yyyy")) + .fillPhoneCountryCode("420") + .fillPhoneNumber(nonClient.employer().getPhoneNumber()) + .fillNetIncome(nonClient.netMonthlyIncome()) + .clickAcceptIncomeButton() + .clickBackButton() + .onApplicantPage(); + } + + private Function finishSettingIncomeRetirement(NonClient nonClient) { + return start -> { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + boolean canAccept = endpoint.isElementVisible(3, PIM001_S001_IncomeEditPage.ACCEPT_INCOME, Lookup.ID); + boolean canSave = endpoint.isElementVisible(3, PIM001_S001_IncomeEditPage.SAVE_INCOME_BUTTON, Lookup.ID); + if (!canAccept || !canSave) { + return start + .clickBackButton() + .onApplicantPage(); + } + return start + .clickAcceptIncome() + .clickAcceptIncomeButton() + .clickBackButton() + .onApplicantPage(); + }; + } + + public Function createNewSavingsAccount(String product) { + return start -> start + .createNewProduct(HCisProductClass.SAVINGS_ACCOUNT) + .onRegistrationCertificatePage() + .clickRightButton() + .then(sendDocumentIfVisible()) + .selectProduct("SÚ_PRO_podnikání_6_FOP") + .selectFirstAccountNumber() + .selectDistribution("Elektronicky IB") + .selectPeriodicity("Měsíční") + .clickSend() + .then(sendDocumentationIfVisible()) + .clickNotCreateNow() + .clickSkipCreate() + .onPrintInstructionPage() + .clickCenterButton() + .onPrintInstructionPage() + .clickRightButton() + .onSignerSelectionsPage() + .clickSignedPersonallyAndContinueToPrint() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .checkProductActive(product); + } + + public Function createSavingAccountWithInternetBanking() { + return start -> start + .createNewProduct(HCisProductClass.SAVINGS_ACCOUNT) + .onRegistrationCertificatePage() + .clickRightButton() + .onSavingsAccountPage() + .selectProduct("SÚ_PRO_podnikání_6_PO") + .selectFirstAccountNumber() + .selectDistribution("Elektronicky IB") + .selectPeriodicity("Měsíční") + .clickSend() + .onCreateElectronicDistributionChannel() + .selectDistributionChannel("IB Heslo/MK") + .clickContinueDismissAlertIfPresent() + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onAppendixSignedPage() + .clickNoButton() + .clickCenterButton() + .onPrintInstructionPage() + .clickLeftButton() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .verifySavingAccountEstablishedSuccessfully(); + } + + public Function createNewMutualFunds() { + String accountNumber = harness.get(BAL001_S008_SummaryStartDocumentsPage.ACCOUNT_NUMBER_KEY); + + return start -> start.createNewProduct(HCisProductClass.MUTUAL_FUNDS) + .onMutualFundsCIFdataPage() + .selectCzechRepublicTaxDomicil("Česká republika") + .clickNextButtonToInvestmentForm() + .selectEducationCombo("Vysokoškolské ekonomické") + .clickDepositAccountRadioBtn() + .clickPensionOrLifeInsuranceRadioBtn() + .clickMonetaryOrBondFundsRadioBtn() + .clickEquityFundsRadioBtn() + .clickIndividualInvestmentProductsRadioBtn() + .clickLowestRiskSavingsRadioBtn() + .clickHighestRiskEquitiesRadioBtn() + .clickSavingsRadioBtn() + .clickLessThanTwoYearsAgoRadioBtn() + .clickMaxTwicePerYearRadioBtn() + .clickRaiseValueRadioBtn() + .clickNoInfluenceRadioBtn() + .selectInvestmentHorizonCombo("3 roky a více") + .clickSendButton() + .clickContinue() + .onInvestmentFormSigningPage() + .clickSignedButton() + .clickContinueButton() + .selectClientStatementDistribution("Poštou") + .selectBuRadioBtn() + .selectAccountNumberForSettlement(accountNumber) + .clickSendAndPrintButton() + .dismissAlert() + .clickContinue() + .onContractInvestmentFormSigningPage() + .clickSignedButton() + .clickContinue() + .onAccountDispositionOwnerPage() + .clickNotCreateNow() + .clickSkipCreate() + .onMeetingRecordSigningPage() + .clickContinueButton() + .clickContinueButton() + .clickSignedButton() + .clickContinue() + .onSummaryStartDocumentsPage() + .storeMutualFundsNumber() + .clickContinue() + .onMainClientPage() + .checkProductActive("Podílové fondy"); + } + + public Function createNewCreditCardByQuickRequest(NonClient nonClient, CreditCardsAdvantages advantage, CreditCardsPromo promo, String creditAmount) { + CreditCardsTasks creditCardTasks = harness.tasks().ufo().banka().cardsServicing().creditCards(); + + return start -> start.createNewProduct(ONE_CLICK) + .onQuickCreditCardRequestPage() + .then(creditCardTasks.fillQuickCreditCardRequest(advantage, promo, creditAmount)) + .selectIdCardRadio() + .selectPassportRadio() + .clickDocumentsCheckAndContinue() + .onCreditCardApplicantPage() + .then(creditCardTasks.fillCreditCardApplicantInformation(nonClient)) + .clickApplicantSignatureCheckbox() + .clickYes() + .onScanDocumentsPage() + .clickSkipButton() + .onCreditCardScoringResultPage() + .waitForStatusAndRefresh("SOUHLAS") + .clickCreateProductAndPrintContract() + .onPreContractualInformationPrintedPage() + .continueToPrintCopyOfContractProposalPage() + .clickContinue() + .onSignerSelectionPage() + .chooseCitizen() + .clickContinue() + .onSignContractPage() + .clickFirstSignerCheckbox() + .clickYesButton() + .clickOk() + .clickContinue() + .clickContinue() + .fillPriceLimitInput(creditAmount) + .clickSaveButton() + .clickSigned() + .clickContinue() + .onMainClientPage(); + } + + public Function createNewCreditCard( + NonClient nonClient, ProductType productType, NeedInsurance needInsurance, CardBrand cardBrand, + CreditCardsAdvantages advantage, CreditCardsPromo promo, String creditAmount, + String cashDailyLimit, String purchaseDailyLimit, String onlineDailyLimit) { + CreditCardsTasks creditCardTasks = harness.tasks().ufo().banka().cardsServicing().creditCards(); + + return start -> start.createNewProduct(CREDIT_CARD) + .onQuickCreditCardRequestPage() + .then(creditCardTasks.fillCreditCardRequestForUpdate(advantage, promo, creditAmount, needInsurance, productType, cardBrand)) + .setDailyLimitForWithdraw(cashDailyLimit) + .setDailyLimitForPurchases(purchaseDailyLimit) + .setDailyLimitForOnlinePurchases(onlineDailyLimit) + .setActivationPassword("111111") + .selectRepaymentMethod(RepaymentMethod.INKASO) + .selectStatementDistributionMethod(StatementDistributionMethod.ELECTRONICALLY_IB) + .selectPinDistributionMethod(PinDistributionMethod.POST) + .dismissPinChargeAlert() + .selectDebitAccountType(DebitAccountType.DEBIT_ACCOUNT_MMB) + .selectCreateAccountForCard(NeedAccount.YES) + .selectGetInsurance(NeedInsurance.NO); + } + + public Function showApplicationDetails(String applicationID) { + return start -> start.selectFromListOfRequests() + .clickRequest(applicationID) + .clickOpenRequestDetail(); + } + + //application is already selected, when client has only one + public Function showApplicationDetailsSingleApplication() {//application is already selected, when client has only one + return start -> start.selectFromListOfRequests() + .clickOpenRequestDetail(); + } + + public Function createNewBuildingSavings(String contract) { + return start -> start.createNewProduct(HCisProductClass.BUILDING_SAVINGS) + .onBuildingSavingsPage() + .clickStateOfBirthButton() + .fillIssuer("Praha") + .continueToParametersPage() + .selectSymbol("Nespecifikováno") + .selectActionCode("Bez zvýhodnění") + .fillAmount("500000") + .clickStateSupportYes() + .clickAnnualReportByPost() + .clickPhysicalConsentYes() + .continueToConfirmationPage() + .clickContinue() + .onBuildingSavingsConsentPage() + .continueToProductsListPage() + .clickContinueButtonAndContinueToMainClientPage() + .checkProductActive(contract); + } + + public Function createNewGroupInsurance(String insurance) { + return start -> start.createNewProduct(HCisProductClass.INSURANCE) + .onInsuranceTypeSelectionPage() + .clickGroupButton() + .selectInsurance(insurance) + .clickInsuranceForIndividuals() + .selectAccount(harness.get(ACCOUNT_NUMBER_KEY)) + .clickContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onSignerPage() + .clickLeftButton() + .onDispositionGeneratePage() + .clickGenerateNow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .checkInsuranceProduct(insurance); + } + + //client must have IB + public Function createSBA() { + return start -> start.createNewProduct(ADC_SBA) + .onDispositionGeneratePage() + .clickGenerateLater() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage(); + } + + public Function verifyApplicationSignature(String applicationId) { + return start -> start + .clickSecondSignature() + .fillApplicationId(applicationId) + .clickSecondSignatureButton() + .clickVerifyAlternative() + .clickOkAndCloseWindow(); + } + + public Function verifyApplicationSignatureThirdWindow(String applicationId) { + return start -> start + .clickSecondSignature() + .fillApplicationId(applicationId) + .clickSecondSignatureButton() + .clickVerifyAlternative() + .clickOkAndCloseWindow(); + } + + public HKO101_S001_MainClientPage createClientWithIb(Harness harness, Credentials credentials, NonClient applicant) { + return harness.tasks().ufo().banka().newClient() + .openUfoAndCreateClient(harness, credentials, applicant) + .then(createIBAndCurrentAccount(CurrentAccountsEnum.TOM_PLUS, applicant.mobileNumber())); + } + + public HLO001_S001_ClientSearchPage openUfoAndVerifyApplicationAsSecondBanker(Credentials credentials, String applicationId) { + return harness.withUfoSecondInstance() + .openLoginPage() + .then(harness.tasks().ufo().banka().login().withCredentialsAndSelectFirstOmAndTurnOffSignpad(credentials)) + .then(verifyApplicationSignature(applicationId)); + } + + public Function createNewFlexikreditPart1(NonClient nonClient) { + return start -> (NFL006_S001_FlexikreditScoringResultPage) start.createNewProduct(FLEXIKREDIT) + .onFlexikreditPage() + .checkAlertMessageAfterFillingAmountOutsideOfRange(1000) + .checkAlertMessageAfterFillingAmountOutsideOfRange(105000) + .fillAmount(3000) + .clickNoPromoIfVisible() + .clickChangeParameters() + .clickSend() + .onFlexikreditScoringApplicationIdentificationPage() + .clickContinue() + .selectIdCardRadio() + .selectPassportRadio() + .clickDocumentsCheckAndContinue() + .onCreditCardApplicantPage() + .then(checkClientDetailInfo()) + .clickEditIncomeButton() + .clickAddIncomeButton() + .selectIncomeType("Příjem ze závislé činnosti") + .selectIncomeSubtype("Příjem ze závislé činnosti na dobu neurčitou") + .selectOccupation("it programátor/software developer") + .openSearchEmployerWindow() + .fillCompanyNameOrIco(harness.getConfig("branch.ico")) + .clickSearchCompanyButton() + .clickFirstCompany() + .clickSelectEmployerButton() + .clickTrialPeriodNoRadio() + .clickNoticePeriodNoRadio() + .clickIncomeCashNoRadio() + .fillEmploymentStartDate(LocalDate.now().minusYears(2).format(DateTimeFormatter.ofPattern("dd.MM.yyyy"))) + .fillPhoneNumber("420" + nonClient.mobileNumber()) + .fillNetIncome(50000) + .clickAcceptIncomeButtonAndDisableAlertIfVisible() + .clickBackButton() + .onApplicantPage() + .fillPaymentsOutsideMMB(0) + .fillOtherMonthlyExpenses(1000) + .fillHouseholdIncome(80000) + .selectFirstIncome() + .clickContinue() + .onSignerSelectionPage() + .clickSignedPersonallyPhysicallyAndContinue() + .onPrintPage().saveDocumentUrl() + .closePrintWindow() + .onSignaturePage() + .clickApplicantSignatureCheckbox() + .clickYes() + .onScoringPage() + .waitForLoader() + .onFlexikreditScoringResultPage() + .storeAppKey() + .storeAppId() + .storeAppStat(); + } + + public Function checkClientDetailInfo() { + return start -> start + .checkBirthNumber(harness.get(BIRTH_NUMBER_KEY)) + .checkLastName(harness.get(LAST_NAME_KEY)) + .checkFirstName(harness.get(FIRST_NAME_KEY)) + .checkMaritalStatus(harness.get(MARITAL_STATUS_KEY)) + .checkHousingType(harness.get(HOUSING_TYPE_KEY)) + .checkEducation(harness.get(EDUCATION_KEY)) + .checkNationality(harness.get(NATIONALITY_KEY)) + .checkFirstIdCardType(harness.get(FIRST_ID_CARD_TYPE_KEY)) + .checkFirstIdCardNumber(harness.get(FIRST_ID_CARD_NUMBER_KEY)) + .checkFirstIdCardExpirationDate(harness.get(FIRST_ID_CARD_EXPIRATION_DATE_KEY)) + .checkSecondIdCardType(harness.get(SECOND_ID_CARD_TYPE_KEY)) + .checkSecondIdCardNumber(harness.get(SECOND_ID_CARD_NUMBER_KEY)) + .checkSecondIdCardExpirationDate(harness.get(SECOND_ID_CARD_EXPIRATION_DATE_KEY)) + .checkAddress(harness.get(ADDRESS_KEY)) + .checkLandline(harness.get(LANDLINE_KEY)) + .checkMobilePhone(harness.get(MOBILE_PHONE_KEY)) + .checkEmail(harness.get(EMAIL_KEY)) + .checkDependantsNumber(harness.get(DEPENDANTS_NUMBER_KEY)); + } + + public Function createNewFlexikreditPart2(HCisAllStavZadosti expectedAppStat, String bankerName) { + return start -> start + .waitForStatusAndRefresh(expectedAppStat.getValue()) + .clickFoundationPrintContractButton() + .onSelectingApprovedVariantsPage() + .clickToLoanAmountRadioButton() + .fillIntoLoanAmountIfVisible("4000") + .clickSelectToPrint() + .saveDocumentUrl() + .closePrintWindow() + .onInformationPrintedPage() + .continueToPrintCopyOfContractProposalPage() + .clickPrint() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintCopyOfContractProposalSuccessfullPage() + .clickContinue() + .fillSurnameInput(bankerName) + .clickSearch() + .clickContinue() + .onSecondBankerVerificationPage() + .storeApplicationId(); + //pokračovat podpisem druhého bankéře + } + + public Function createNewFlexikreditPart3(String newProduct) { + return start -> start + .waitForStatus("Verifikace vyřízena") + .clickContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onPrintInstructionPage() + .clickRightButton() + .onSignContractor() + .clickFirstSignerCheckbox() + .clickYesButtonToClientContractSignPage() + .clickLeftButton() + .onFlexikreditScoringPage() + .storeApprovedTableAmount() + .storeApprovedTableInterest() + .checkApplicationState("Rámec otevřen") + .clickEnd() + .onMainClientPage(); + } + + public Function createNewCurrentAccountWithSelectProduct(CurrentAccountsEnum product) { + return start -> start.createNewProduct(HCisProductClass.CURRENT_ACCOUNT) + .onCurrentAccountPage() + .selectProduct(product.getAccountName()) + .clickDispositionRadioYes() + .clickConfirm() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onAccountDispositionOwnerPage() + .clickOwnerOnly() + .onPrintInstructionPage() + .clickCenterButton() + .onPrintInstructionPage() + .clickCenterButton() + .onDispositionGeneratePage() + .clickGenerateNow() + .onPrintPage() + .closePrintWindow() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onSummaryStartDocumentsPage() + .logAccountNumber() + .clickContinue() + .onMainClientPage() + .checkProductActive(product.getAccountName()); + } + + public Function skipSignPadIfVisibleAfterPrintInstruction() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onPrintSignPadPage() + .clickContinue(); + } else { + return start -> start + .onPrintInstructionPage(); + } + } + + public Function skipSignPadIfVisibleAfterAccountDisposition() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onPrintSignPadPage() + .clickContinue(); + } else { + return start -> start + .onPrintInstructionPage(); + } + } + + public Function selectSecondIdDocuments(HCisDoklady idType) { + if (idType.equals(HCisDoklady.RP)) { + return selectIDs(); + } else if (idType.equals(HCisDoklady.CP)) { + return selectPersonalIds(); + } else { + return null; + } + } + + public Function sendDocumentIfVisible() { + UfoEndpoint endpoint = this.harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, BPP001_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onSavingsAccountPage(); + } else { + return start -> start.onSavingsAccountPage(); + } + } + + public Function sendDocumentationIfVisible() { + UfoEndpoint endpoint = this.harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, BPP001_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onAccountDispositionOwnerPage(); + } else { + return start -> start.onAccountDispositionOwnerPage(); + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeAutomatFopTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeAutomatFopTasks.java new file mode 100644 index 0000000..03ee2ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeAutomatFopTasks.java @@ -0,0 +1,785 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.SMA002_S001_SMEAutomatsApplicationOverview; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.SIF004_S001_ContactSettingsForSendingEmailsPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL001_S001_SelectProductsPage; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.APPLICATION_ID_KEY; + +public class NewSmeAutomatFopTasks { + + private final NewSmeAutomatSubTasks smeAutomatSubTasks; + + public NewSmeAutomatFopTasks(Harness harness) { + this.smeAutomatSubTasks = harness.tasks().ufo().banka().newSmeAutomatSubTasks(); + } + + public Function withExpresBusiness(Harness harness, String dummyEmail, String loanExpresAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectExpresBusiness("Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness("nákup strojů, výrobních zařízení", loanExpresAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationExpresBusiness()) + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostNettoIncome()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .then(smeAutomatSubTasks.printRequest()) + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withExpresBusinessSendToNIB(Harness harness, String dummyEmail, String loanExpresAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectExpresBusiness("Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness("nákup strojů, výrobních zařízení", loanExpresAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationExpresBusiness()) + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.fillFinancialSignpostNettoIncome()) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .clickReturnToHKO(); + } + + public Function finishExpressApplicationAFterNIBSign(Harness harness, String expectedState) { + return start -> start + .selectFromListOfRequests() + .selectStateFilter("ROZPRACOVANÁ") + .storeFirstApplicationId(harness) + .selectFirstApplication() + .clickOpenRequestDetail() + .onWaitForModulationPage() + .waitForModulation(180) + .onModulationPage() + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onClientRequestPage() + .clickCancelFilter() + .checkApplicationState(harness.get(APPLICATION_ID_KEY), expectedState); + } + + public Function withBusinessCreditConsolidation(Harness harness, String consolidationType, String dummyEmail, String loanConsolidationAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectExpresBusiness(consolidationType) + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness("nákup strojů, výrobních zařízení", loanConsolidationAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .clickAssociationFopNo() + .clickNotTransformation() + .then(smeAutomatSubTasks.editBusinessInformationGreenExpressBusiness()) + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.fillFinancialSignpostNettoIncome()) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .then(smeAutomatSubTasks.printRequest()) + .clickYes() + .onPrintInstructionPage() + .clickRightButton() + .then(smeAutomatSubTasks.waitForPreliminaryEvaluation(harness)) + .clickContinueToConsolidationCommitmentsPage() + .addCommitmentManually() + .then(smeAutomatSubTasks.setCommitment()) + .clickContinueToModulationPage() + .waitForModulation(120) + .onModulationPage() + .clickCompleteCommitmentInfoButton() + .onCompleteCommitmentsPage() + .clickFirstCommitment() + .clickEditCommitment() + .then(smeAutomatSubTasks.fillCommitmentData()) + .clickContinueToModulationPage() + .waitForModulation(120) + .onModulationPage() + .then(smeAutomatSubTasks.uploadScannedDocumentsConsolidation(harness)); + } + + public Function withExpresBusinessRetail(Harness harness, String dummyEmail, String loanExpresAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectExpresBusiness("Expres Business Retail") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness("nákup strojů, výrobních zařízení", loanExpresAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationExpresBusiness()) + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.fillFinancialSignpostNettoIncome()) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .then(smeAutomatSubTasks.printRequest()) + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withGreenExpresBusiness(Harness harness, String dummyEmail, String loanGreenAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectExpresBusiness("Zelený Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness("Zelené střechy", loanGreenAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickAddressSameAsPermanentResidence() + .clickNotFamilyBusiness() + .clickAssociationFopNo() + .clickNotTransformation() + .then(smeAutomatSubTasks.editBusinessInformationGreenExpressBusiness()) + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.assignDocuments("Čestné prohlášení Zelený EB", "Čestné prohlášení Zelený EB")) + .then(smeAutomatSubTasks.assignDocuments("Projekt / Záměr / Smlouva", "Projekt / Záměr / Smlouva")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .then(smeAutomatSubTasks.zebAndEasiPrintRequest()) + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withExpresBusinessEasi(Harness harness, String dummyEmail, String loanEasiAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectExpresBusiness("Expres Business EIF EaSI") + .then(smeAutomatSubTasks.fillRequiredLoanEb(loanEasiAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationExpresBusiness()) + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.assignDocuments("Čestné prohlášení EaSI", "Čestné prohlášení EaSI")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .then(smeAutomatSubTasks.zebAndEasiPrintRequest()) + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocumentsEaSI(harness)); + } + + public Function withFlexiBusiness(Harness harness, String dummyEmail, String loanFlexiAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectFlexiBusiness("Flexi Business") + .then(smeAutomatSubTasks.fillProductDetailsFlexiBusinessNoFopAssociation(loanFlexiAmount)) + .clickContinue() + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationFlexiBusiness()) + .clickContinue() + .onRequestedDocumentPage() + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .then(smeAutomatSubTasks.printRequest()) + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withExpresBusinessAndFlexiBusiness(Harness harness, String dummyEmail, String loanExpresAmount, String loanFlexiAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectExpresBusiness("Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness("nákup strojů, výrobních zařízení", loanExpresAmount)) + .clickContinue() + .selectFlexiBusiness("Flexi Business") + .then(smeAutomatSubTasks.fillProductDetailsFlexiBusinessNoFopAssociation(loanFlexiAmount)) + .clickContinue() + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationFlexiBusiness()) + .clickContinue() + .onRequestedDocumentPage() + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostNettoIncome()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .then(smeAutomatSubTasks.printRequest()) + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withReserveProBusiness(Harness harness, String dummyEmail, String loanReserveAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectFlexiBusiness("Rezerva PRO podnikání") + .fillRequiredLoanAmount(loanReserveAmount) + .clickNoFopAssociation() + .clickContinue() + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationFlexiBusiness()) + .clickContinue() + .onRequestedDocumentPage() + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .then(smeAutomatSubTasks.printRequest()) + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withMonetaBusinessCard(Harness harness, String dummyEmail, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .then(addMonetaBusinessCard()) + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotTransformation() + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .clickAssociationFopNo() + .then(smeAutomatSubTasks.editBusinessInformationExpresBusiness()) + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .then(smeAutomatSubTasks.printRequest()) + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .then(smeAutomatSubTasks.sendDocumentsForMonetaBusinessCardIfPageShownOtherwiseSkip(harness)); + } + + + public Function withMonetaBusinessCardAssociationFop(Harness harness, String dummyEmail, String lastYear, String yearBeforeLast, NonClient associatedMember) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .then(addMonetaBusinessCard()) + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotTransformation() + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.setExpresBusinessDataWithAssociationFop()) + .clickContinue() + .onRequestedDocumentPage() + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.addAssociatedMember(associatedMember)) + .then(smeAutomatSubTasks.summarizeRequestAndPrintAssociation()) + .onSmeApplicationSignPage() + .clickContinue() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .then(smeAutomatSubTasks.sendDocumentsForMonetaBusinessCardIfPageShownOtherwiseSkip(harness)); + } + + + public Function withMonetaBusinessCardFamilyBusiness(Harness harness, String dummyEmail, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .then(addMonetaBusinessCard()) + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotTransformation() + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.setExpresBusinessData()) + .clickFamilyBusiness() + .fillOwnProfit("100") + .clickContinue() + .onRequestedDocumentPage() + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.fillPersonalFinancialData()) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .then(smeAutomatSubTasks.printRequest()) + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .then(smeAutomatSubTasks.sendDocumentsForMonetaBusinessCardIfPageShownOtherwiseSkip(harness)); + } + + public Function withMonetaBusinessCardWithWife(Harness harness, String dummyEmail, String lastYear, String yearBeforeLast, NonClient wifeData) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .then(addMonetaBusinessCard()) + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailAndMaritalStatus(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationExpresBusiness()) + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.addHusbandOrWife(wifeData)) + .then(smeAutomatSubTasks.summarizeRequestAndPrint()) + .onRequestForSMEPage() + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .then(smeAutomatSubTasks.sendDocumentsForMonetaBusinessCardIfPageShownOtherwiseSkip(harness)); + } + + public Function withFlexiBusinessWithWife(Harness harness, String dummyEmail, String loanFlexiAmount, NonClient wifeData, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectFlexiBusiness("Flexi Business") + .then(smeAutomatSubTasks.fillProductDetailsFlexiBusinessNoFopAssociation(loanFlexiAmount)) + .clickContinue() + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailAndMaritalStatus(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationExpresBusiness()) + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.addHusbandOrWife(wifeData)) + .then(smeAutomatSubTasks.summarizeRequestAndPrint()) + .onRequestForSMEPage() + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withExpresBusinessWithWife(Harness harness, String dummyEmail, String loanExpresAmount, String lastYear, String yearBeforeLast, NonClient wifeData) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectExpresBusiness("Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness("nákup strojů, výrobních zařízení", loanExpresAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailAndMaritalStatus(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationExpresBusiness()) + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.fillPersonalFinancialData()) + .then(smeAutomatSubTasks.fillFinancialSignpostNettoIncome()) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.addHusbandOrWife(wifeData)) + .then(smeAutomatSubTasks.summarizeRequestAndPrint()) + .onRequestForSMEPage() + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withFlexiBusinessAssociationFop(Harness harness, String dummyEmail, String loanFlexiAmount, String lastYear, String yearBeforeLast, NonClient associatedMember) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectFlexiBusiness("Flexi Business") + .then(smeAutomatSubTasks.fillProductDetailsFlexiBusinessYesFopAssociation(loanFlexiAmount)) + .clickContinue() + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailAndMaritalStatus(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationFlexiBusiness()) + .clickContinue() + .onRequestedDocumentPage() + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.addAssociatedMember(associatedMember)) + .then(smeAutomatSubTasks.summarizeRequestAndPrintAssociation()) + .onSmeApplicationSignPage() + .clickContinue() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withExpressBusinessAssociationFop(Harness harness, String dummyEmail, String loanExpresAmount, String lastYear, String yearBeforeLast, NonClient associatedMember) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectExpresBusiness("Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness("nákup strojů, výrobních zařízení", loanExpresAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailAndMaritalStatus(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationExpresBusinessWithFopAssociation()) + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .fillNettoIncomeOfHousehold("70000") + .fillOtherLivingCosts("1000") + .fillOtherMonthlyPayments("10000") + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.addAssociatedMember(associatedMember)) + .then(smeAutomatSubTasks.summarizeRequestAndPrintAssociation()) + .onSmeApplicationSignPage() + .clickContinue() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withFlexiBusinessFamilyBusiness(Harness harness, String dummyEmail, String loanFlexiAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectFlexiBusiness("Flexi Business") + .then(smeAutomatSubTasks.fillProductDetailsFlexiBusinessNoFopAssociation(loanFlexiAmount)) + .clickContinue() + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationFlexiBusiness()) + .clickFamilyBusiness() + .fillOwnProfit("75") + .clickFamilyBusiness() //has to be here, because the fillOwnProfit has to be confirmed by clicking anywhere :D + .clickContinue() + .onRequestedDocumentPage() + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.fillPersonalFinancialData()) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.summarizeRequestAndPrint()) + .onRequestForSMEPage() + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withExpresBusinessFamilyBusiness(Harness harness, String dummyEmail, String loanExpresAmount, String lastYear, String yearBeforeLast, String financingReason) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectExpresBusiness("Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness(financingReason, loanExpresAmount)) + .clickContinue() + .clickContinue() + .onBusinessInfoPage() + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.setExpresBusinessData()) + .clickFamilyBusiness() //has to be here, because the fillOwnProfit has to be confirmed by clicking anywhere :D + .fillOwnProfit("100") + .clickContinue() + .onRequestedDocumentPage() + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.fillPersonalFinancialData()) + .fillOtherLivingCosts("1000") + .fillOtherMonthlyPayments("10000") + .fillNettoIncomeOfHousehold("70000") + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.summarizeRequestAndPrint()) + .onRequestForSMEPage() + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withExpresBusinessAndFlexiBusinessAndMonetaBusinessCard(Harness harness, String dummyEmail, String loanExpresAmount, String loanFlexiAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatFop(harness)) + .selectExpresBusiness("Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness("nákup strojů, výrobních zařízení", loanExpresAmount)) + .clickContinue() + .selectFlexiBusiness("Flexi Business") + .then(smeAutomatSubTasks.fillProductDetailsFlexiBusinessNoFopAssociation(loanFlexiAmount)) + .clickContinue() + .onSelectProductsPage() + .then(addMonetaBusinessCard()) + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipFop(harness)) + .clickContinue() + .onAdditionalBusinessData() + .then(smeAutomatSubTasks.editEmailsToDummy(dummyEmail)) + .clickNotFamilyBusiness() + .clickAddressSameAsPermanentResidence() + .then(smeAutomatSubTasks.editBusinessInformationFlexiBusiness()) + .clickContinue() + .onRequestedDocumentPage() + .then(smeAutomatSubTasks.assignDocuments("Doklady FOP", "Živnostenský list / výpis z ŽR")) + .then(smeAutomatSubTasks.selectNoPsdData()) + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .then(smeAutomatSubTasks.fillFinancialSignpostNettoIncome()) + .then(smeAutomatSubTasks.continueToRequestPrint()) + .then(smeAutomatSubTasks.printRequest()) + .clickYes() + .onWaitingForModulationPage() + .then(smeAutomatSubTasks.waitForModulation(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .then(smeAutomatSubTasks.sendDocumentsForMonetaBusinessCardIfPageShownOtherwiseSkip(harness)); + } + + public Function addMonetaBusinessCard() { + return start -> start + .selectProductToOnboard("Moneta Business Card") + .clickAddProduct() + .onCommercialCreditCardDetail() + .then(smeAutomatSubTasks.fillCreditCardDetails()) + .then(smeAutomatSubTasks.fillContactSettings()) + .clickContinue(); + } + + + public Function drawDownFeeExpresAndFlexiBusiness(Harness harness, String bankerName) { + return start -> start + .selectStateFilter("PODMÍNĚNÝ SOUHLAS") + .selectProductFilter("Expres Business") + .selectFirstApplication() + .clickOpenRequestDetail() + .onSMEAutomatsApplicationsOverview() + .then(smeAutomatSubTasks.setParametersForExpresAndFlexiBusinessApplications(harness)) + .clickAcceptation() + .clickAcceptationModalIfPresent() + .then(smeAutomatSubTasks.waitForModulationIfPresent(120)); + } + + public Function printAndSignExpresBusiness(Harness harness, String bankerName) { + return start -> start + .clickApplication("Expres Business") + .clickPrintSignDeal() + .onRequestedDocumentsPage() + .clickContinue() + .onClientContractSignPage() + .clickRightButton() + .onWaitingForModulationPage() + .waitForModulation(180) + .onBankerRepresentaionForVerification() + .fillBankerName(bankerName) + .clickSearchBanker() + .clickContinue() + .storeApplicationId(harness); + } + + public Function printAndSignFlexiBusiness(Harness harness, String bankerName) { + return start -> start + .clickApplication("Flexi Business") + .clickPrintSignDeal() + .onClientWarning() + .clickCenterButton() + .onRequestedDocumentsPage() + .clickContinue() + .onClientContractSignPage() + .clickRightButton() + .onWaitingForModulationPage() + .waitForModulation(180) + .onBankerRepresentaionForVerification() + .fillBankerName(bankerName) + .clickSearchBanker() + .clickContinue() + .storeApplicationId(harness); + } + + public Function drawDownFeeWithSignNIBExpresBusiness(Harness harness) { + return start -> start + .selectFromListOfRequests() + .selectStateFilter("PODMÍNĚNÝ SOUHLAS") + .selectProductFilter("Expres Business") + .storeFirstApplicationId(harness) + .selectFirstApplication() + .clickOpenRequestDetail() + .onSMEAutomatsApplicationsOverview() + .then(smeAutomatSubTasks.setParametersForExpresBusinessApplication(harness)) + .clickApplication("Expres Business") + .clickAcceptation() + .clickAcceptationModalIfPresent() + .then(smeAutomatSubTasks.waitForModulationIfPresent(120)) + .clickApplication("Expres Business") + .clickPrintSignDeal() + .onRequestedDocumentsPage() + .selectAndAddDocument() + .clickContinue() + .onScanDocumentsPage() + .uploadBusinessRegister() + .selectFirstDocumentToAssign() + .assignLoadedDocument() + .clickContinue() + .onClientContractSignPage() + .clickCenterButton() + .onCheckSigningPersonsEmail() + .clickContinue() + .waitForModulation(180) + .onSendingDocumentsToIBSB() + .clickSendToIBSB() + .clickCenterButton() + .onClientRequestPage(); + } + + public Function finishDrawingDown(Harness harness, String expectedState) { + return start -> start + .clickRightButton() + .onClientContractSignPage() + .checkSuccessfulVerification() + .clickLeftButton() + .onSignerSelection() + .clickSignedAndContinueToPrintPage() + .closePrintWindow() + .onPrintPage() + .closePrintWindow() + .onSMESignedContractDocumentation() + .clickSigned() + .waitForModulation(120) + .onClientContractSignPage() + .checkSuccessfulyEstablishedProducts() + .clickLeftButton() + .onClientRequestPage() + .clickCancelFilter() + .checkApplicationState(harness.get(APPLICATION_ID_KEY), expectedState); + + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeAutomatPoTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeAutomatPoTasks.java new file mode 100644 index 0000000..a7bfaf5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeAutomatPoTasks.java @@ -0,0 +1,428 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.SIF004_S001_ContactSettingsForSendingEmailsPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL001_S001_SelectProductsPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL002_S001_ProductDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL010_S001_FinancialSignpostPage; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.APPLICATION_ID_KEY; + +public class NewSmeAutomatPoTasks { + + private final NewSmeAutomatSubTasks smeAutomatSubTasks; + + public NewSmeAutomatPoTasks(Harness harness) { + this.smeAutomatSubTasks = harness.tasks().ufo().banka().newSmeAutomatSubTasks(); + } + + public Function withExpresBusiness(Harness harness, String loanExpresAmount, String lastYear, String yearBeforeLast, String financingReason) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatPo(harness)) + .selectExpresBusiness("Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness(financingReason, loanExpresAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipPo(harness)) + .then(smeAutomatSubTasks.fillBusinessInformation("1")) + .then(smeAutomatSubTasks.selectCompanyHeadquarter()) + .then(smeAutomatSubTasks.assignDocuments("Doklady PO", "Výpis z OR")) + .clickContinue() + .onFinancialSignpostPage() + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthority("200000,00")) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .then(smeAutomatSubTasks.finalizeSmeForPo(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withFlexiBusiness(Harness harness, String loanFlexiAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatPo(harness)) + .selectFlexiBusiness("Flexi Business") + .then(smeAutomatSubTasks.fillProductDetailsFlexiBusinessPo(loanFlexiAmount)) + .clickContinue() + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipPo(harness)) + .then(smeAutomatSubTasks.fillBusinessInformation("1")) + .then(smeAutomatSubTasks.selectCompanyHeadquarter()) + .then(smeAutomatSubTasks.assignDocuments("Doklady PO", "Výpis z OR")) + .clickContinue() + .onFinancialSignpostPage() + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthority("200000,00")) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .then(smeAutomatSubTasks.finalizeSmeForPo(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withMonetaBusinessCard(Harness harness, String dummyEmail, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatPo(harness)) + .then(addMonetaBusinessCard()) + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipPo(harness)) + .then(smeAutomatSubTasks.editEmailsToDummyPo(dummyEmail)) + .then(smeAutomatSubTasks.fillBusinessInformation("1")) + .then(smeAutomatSubTasks.selectCompanyHeadquarter()) + .then(smeAutomatSubTasks.assignDocuments("Doklady PO", "Výpis z OR")) + .clickContinue() + .onFinancialSignpostPage() + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthority("200000,00")) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .then(smeAutomatSubTasks.finalizeSmeForPo(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withReserveProBusiness(Harness harness, String dummyEmail, String loanReserveAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatPo(harness)) + .selectFlexiBusiness("Rezerva PRO podnikání") + .fillRequiredLoanAmount(loanReserveAmount) + .clickContinue() + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipPo(harness)) + .then(smeAutomatSubTasks.editEmailsToDummyPo(dummyEmail)) + .then(smeAutomatSubTasks.fillBusinessInformation("1")) + .then(smeAutomatSubTasks.selectCompanyHeadquarter()) + .then(smeAutomatSubTasks.assignDocuments("Doklady PO", "Výpis z OR")) + .clickContinue() + .onFinancialSignpostPage() + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthority("200000,00")) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .then(smeAutomatSubTasks.finalizeSmeForPo(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withGreenExpresBusiness(Harness harness, String dummyEmail, String loanGreenAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatPo(harness)) + .selectExpresBusiness("Zelený Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness("Zelené střechy", loanGreenAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipPo(harness)) + .then(smeAutomatSubTasks.editEmailsToDummyPo(dummyEmail)) + .then(smeAutomatSubTasks.fillBusinessInfoGreenAndConsolidation()) + .then(smeAutomatSubTasks.selectCompanyHeadquarter()) + .then(smeAutomatSubTasks.assignDocuments("Doklady PO", "Výpis z OR")) + .then(smeAutomatSubTasks.assignDocuments("Čestné prohlášení Zelený EB", "Čestné prohlášení Zelený EB")) + .then(smeAutomatSubTasks.assignDocuments("Projekt / Záměr / Smlouva", "Projekt / Záměr / Smlouva")) + .clickContinue() + .onFinancialSignpostPage() + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthority("200000,00")) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .then(smeAutomatSubTasks.zebAndEasiPrintRequestPo(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function withExpresBusinessEasi(Harness harness, String dummyEmail, String loanEasiAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatPo(harness)) + .selectExpresBusiness("Expres Business EIF EaSI") + .then(smeAutomatSubTasks.fillRequiredLoanEb(loanEasiAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipPo(harness)) + .then(smeAutomatSubTasks.editEmailsToDummyPo(dummyEmail)) + .then(smeAutomatSubTasks.fillBusinessInformation("1")) + .then(smeAutomatSubTasks.selectCompanyHeadquarter()) + .then(smeAutomatSubTasks.assignDocuments("Doklady PO", "Výpis z OR")) + .then(smeAutomatSubTasks.assignDocuments("Čestné prohlášení EaSI", "Čestné prohlášení EaSI")) + .clickContinue() + .onFinancialSignpostPage() + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthority("200000,00")) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .then(smeAutomatSubTasks.zebAndEasiPrintRequestPo(harness)) + .then(smeAutomatSubTasks.uploadScannedDocumentsEaSI(harness)); + } + + public Function withBusinessCreditConsolidation(Harness harness, String dummyEmail, String loanConsolidationAmount, String lastYear, String yearBeforeLast) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatPo(harness)) + .selectExpresBusiness("Konsolidace podnikatelských úvěrů") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness("nákup strojů, výrobních zařízení", loanConsolidationAmount)) + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipPo(harness)) + .then(smeAutomatSubTasks.editEmailsToDummyPo(dummyEmail)) + .then(smeAutomatSubTasks.fillBusinessInfoGreenAndConsolidation()) + .then(smeAutomatSubTasks.selectCompanyHeadquarter()) + .then(smeAutomatSubTasks.assignDocuments("Doklady PO", "Výpis z OR")) + .clickContinue() + .onFinancialSignpostPage() + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthority("200000,00")) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .clickContinue() + .onRequestSummaryPage() + .clickContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onSmeApplicationSignPage() + .clickContinue() + .onPrintInstructionPage() + .then(smeAutomatSubTasks.waitForPreliminaryEvaluation(harness)) + .clickContinueToConsolidationCommitmentsPage() + .addCommitmentManually() + .then(smeAutomatSubTasks.setCommitment()) + .clickContinueToModulationPage() + .waitForModulation(120, 7) + .onModulationPage() + .clickCompleteCommitmentInfoButton() + .onCompleteCommitmentsPage() + .clickFirstCommitment() + .clickEditCommitment() + .then(smeAutomatSubTasks.fillCommitmentData()) + .clickContinueToModulationPage() + .waitForModulation(120, 7) + .onModulationPage() + .then(smeAutomatSubTasks.uploadScannedDocumentsConsolidation(harness)); + } + + public Function withExpresBusinessAndFlexiBusinessAndMonetaBusinessCard(Harness harness, String loanExpresAmount, String loanFlexiAmount, String lastYear, String yearBeforeLast, String financingReason) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatPo(harness)) + .selectExpresBusiness("Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness(financingReason, loanExpresAmount)) + .clickContinue() + .selectFlexiBusiness("Flexi Business") + .then(smeAutomatSubTasks.fillProductDetailsFlexiBusinessPo(loanFlexiAmount)) + .clickContinue() + .onSelectProductsPage() + .then(addMonetaBusinessCard()) + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipPo(harness)) + .then(smeAutomatSubTasks.fillBusinessInformation("1")) + .then(smeAutomatSubTasks.selectCompanyHeadquarter()) + .then(smeAutomatSubTasks.assignDocuments("Doklady PO", "Výpis z OR")) + .clickContinue() + .onFinancialSignpostPage() + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthority("200000,00")) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .then(smeAutomatSubTasks.finalizeSmeForPo(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .then(smeAutomatSubTasks.sendDocumentsForMonetaBusinessCardIfPageShownOtherwiseSkip(harness)); + } + + public Function withExpresBusinessAndFlexiBusinessAndMonetaBusinessCardWithTwoRepresentatives(Harness harness, String loanExpresAmount, String loanFlexiAmount, String lastYear, String yearBeforeLast, String financingReason) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatPo(harness)) + .selectExpresBusiness("Expres Business") + .then(smeAutomatSubTasks.fillProductDetailsExpresBusiness(financingReason, loanExpresAmount)) + .clickContinue() + .selectFlexiBusiness("Flexi Business") + .then(smeAutomatSubTasks.fillProductDetailsFlexiBusinessPo(loanFlexiAmount)) + .clickContinue() + .onSelectProductsPage() + .then(addMonetaBusinessCard()) + .onSelectProductsPage() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipPo(harness)) + .then(smeAutomatSubTasks.fillBusinessInformation("2")) + .then(smeAutomatSubTasks.selectCompanyHeadquarter()) + .then(smeAutomatSubTasks.assignDocuments("Doklady PO", "Výpis z OR")) + .clickContinue() + .onFinancialSignpostPage() + .then(smeAutomatSubTasks.fillFinancialSignpostDp(lastYear, yearBeforeLast)) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthority("100000,00")) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .then(smeAutomatSubTasks.selectSecondStatutoryAuthority("100000,00")) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .then(smeAutomatSubTasks.finalizeSmeForPo(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .then(smeAutomatSubTasks.sendDocumentsForMonetaBusinessCardIfPageShownOtherwiseSkip(harness)); + } + + public Function addMonetaBusinessCard() { + return start -> start + .selectProductToOnboard("Moneta Business Card") + .clickAddProduct() + .onCommercialCreditCardDetail() + .then(smeAutomatSubTasks.fillCreditCardDetails()) + .then(smeAutomatSubTasks.fillContactSettings()) + .clickContinue(); + } + + public Function finishDrawingDownPo(Harness harness, String expectedState) { + return start -> start + .clickRightButton() + .onClientContractSignPage() + .checkSuccessfulVerification() + .clickLeftButton() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintPage() + .closePrintWindow() + .onPrintPage() + .closePrintWindow() + .onSMESignedContractDocumentation() + .clickSigned() + .waitForModulation(120) + .onClientContractSignPage() + .checkSuccessfulyEstablishedProducts() + .clickLeftButton() + .onClientRequestPage() + .clickCancelFilter() + .checkApplicationState(harness.get(APPLICATION_ID_KEY), expectedState) + .clickBackToMainPage(); + } + + public Function drawDownFeeExpresBusiness(Harness harness, String bankerName) { + return start -> start + .selectStateFilter("PODMÍNĚNÝ SOUHLAS") + .selectFirstApplication() + .clickOpenRequestDetail() + .onSMEAutomatsApplicationsOverview() + .then(smeAutomatSubTasks.setParametersForExpresBusinessApplication(harness)) + .clickAcceptation() + .clickAcceptationModalIfPresent() + .then(smeAutomatSubTasks.waitForModulationIfPresent(120)) + .clickApplication("Expres Business") + .clickPrintSignDeal() + .onRequestedDocumentsPage() + .selectAndAddDocument() + .selectAndAddDocument() + .clickContinue() + .onScanDocumentsPage() + .uploadAndAssignFakeDebtFreeConfirmationFU() + .reloadPage() + .uploadAndAssignFakeDebtFreeConfirmationCSSZ() + .clickContinue() + .onListOfPersonsPage() + .clickFirstPerson() + .clickEstablishEditCif() + .clickSend() + .onIncomeEditPage() + .clickBackButton() + .onPrintInstructionPage() + .clickLeftButton() + .onListOfPersons() + .clickContinue() + .clickCenterButton() + .onWaitingForModulationPage() + .waitForModulation(180) + .onBankerRepresentaionForVerification() + .fillBankerName(bankerName) + .clickSearchBanker() + .clickContinue() + .storeApplicationId(harness); + } + + public Function withExpresBusinessCooperativeOwnership(Harness harness, String loanExpresAmount, String numberOfPayments, String lastYear, String yearBeforeLast, String financingReason) { + return start -> start + .createNewProduct(HCisProductClass.SME_AUTOMATS) + .then(smeAutomatSubTasks.selectSmeAutomatPo(harness)) + .selectExpresBusiness("Expres Business pro SVJ a BD") + .then(fillRequiredLoanEbCooperativeOwnership(loanExpresAmount, numberOfPayments)) + .selectFinancingReason(financingReason) + .then(fillCooperativeOwnershipInfo()) + .clickLoadFinancedAddressFromCif() + .clickContinue() + .clickContinue() + .then(smeAutomatSubTasks.sendDocumentationIfPageShownOtherwiseSkipPo(harness)) + .then(smeAutomatSubTasks.editBusinessInfoCooperativeOwnership()) + .clickContinue() + .then(smeAutomatSubTasks.loadBusinessNameIfNecessaryAndContinue()) + .onAddressesAndContactsPage() + .then(smeAutomatSubTasks.selectCompanyHeadquarter()) + .assignDocuments(6) + .clickContinue() + .onFinancialSignpostPage() + .then(fillFinancialSignpostDpCooperativeOwnership(lastYear, yearBeforeLast)) + .then(fillOtherDataAboutEnterprise()) + .continueToListOfPersonsOnRequestPage() + .then(smeAutomatSubTasks.selectStatutoryAuthorityCooperativeOwnership()) + .then(smeAutomatSubTasks.selectPermanentResidencyForFop()) + .then(smeAutomatSubTasks.finalizeSmeForPo(harness)) + .then(smeAutomatSubTasks.uploadScannedDocuments(harness)) + .onMainClientPage(); + } + + public Function fillRequiredLoanEbCooperativeOwnership(String loanExpresAmount, String numberOfPayments) { + return start -> start + .fillRequiredLoanAmount(loanExpresAmount) + .fillNumberOfPayments(numberOfPayments) + .fillInterestRateApprovedByRecord("4") + .selectPaymentDay("26") + .selectFirstCurrentAccount(); + } + + public Function fillCooperativeOwnershipInfo() { + return start -> start.fillResidentalUnitsCount("20") + .fillNonResidentalUnitsCount("2") + .fillMonthlyContributionToFondAmount("200000"); + } + + public Function fillFinancedObjectAddress() { + return start -> start + .fillFinancedObjectStreet("Dr. Milady Horákové") + .fillFinancedObjectDescriptiveNumber("786") + .fillFinancedObjectCity("Rožnov pod Roadhoštěm") + .fillFinancedObjectZipCode("75661") + .clickFinancedObjectCzechCountry(); + } + + public Function fillFinancialSignpostDpCooperativeOwnership(String lastYear, String yearBeforeLast) { + return start -> start + .selectLastYearIncome("Daňové přiznání") + .clickLastYearDp(lastYear) + .selectYearBeforeLastIncome("Daňové přiznání") + .clickYearBeforeLastDp(yearBeforeLast) + .then(fillCooperativeOwnershipDetails()); + } + + public Function fillCooperativeOwnershipDetails() { + return start -> start + .fillDebtorsCount("0") + .fillAmountOwedSummary("0") + .fillApproximateBalancesOnAllBankAccounts("1000000"); + } + + public Function fillOtherDataAboutEnterprise() { + return start -> start + .fillBusinessLoanOutsideMmb("0") + .fillMonthlyPaymentsOutsideMMB("0") + .clickYesTaxAdvisor(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeAutomatSubTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeAutomatSubTasks.java new file mode 100644 index 0000000..b2d3429 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeAutomatSubTasks.java @@ -0,0 +1,866 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.fon.CIF111_S016_CreateNewCifPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.fon.newCif.CIF111_S001_NewCifDataNavigation; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL004_S001_EditBusinessInfoPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL004_S001_EditBusinessInfoPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL077_S001_ClientsBusinessAndPersonalData; +import cz.moneta.test.dsl.ufo.banka.pages.fop.KUL078_S001_AdditionalBusinessData; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.SIF004_S001_ContactSettingsForSendingEmailsPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.saving.accounts.SPU001_S001_SavingAccountPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.sme.*; +import cz.moneta.test.dsl.ufo.banka.tasks.clients.CreateStatutoryAuthority; +import cz.moneta.test.dsl.ufo.banka.tasks.clients.NewClientTasks; +import cz.moneta.test.dsl.util.data.client.MaritalStatus; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationPage.CHK001_S001_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL004_S004_AddressesAndContactsPage.KUL004_S004_PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL043_S001_ChangeSelectedParametersPage.INTEREST_RATE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL043_S001_ChangeSelectedParametersPage.LIMITS_CREDIT_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.KUL043_S001_ChangeSelectedParametersPage.PAYMENTS_COUNT_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.SMA002_S001_SMEAutomatsApplicationOverview.ACCOUNT_NUMBER_KEY; + +public class NewSmeAutomatSubTasks { + + private final CreateStatutoryAuthority newStatutoryAuthority; + private final NewClientTasks newClientTasks; + private final Harness harness; + + public NewSmeAutomatSubTasks(Harness harness) { + this.newStatutoryAuthority = harness.tasks().ufo().banka().newStatutoryAuthority(); + this.newClientTasks = harness.tasks().ufo().banka().newClient(); + this.harness = harness; + } + + /*** + * Stranka s rozpracovanymi ziadostami sa preskakuje v pripade, ze klient nejake rozpracovane ziadosti uz ma. + */ + public Function skipProcessedRequestsIfOpened(Harness harness) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(2, KUL066_S001_ProcessedRequestsPage.KUL066_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onProcessedRequestsPage() + .clickContinue() + .onSelectProductsPage(); + } else { + return start -> start.onSelectProductsPage(); + } + } + + public Function selectSmeAutomatFop(Harness harness) { + return start -> start + .onRegistrationCertificatePage() + .clickRightButton() + .then(skipProcessedRequestsIfOpened(harness)); + } + + public Function selectSmeAutomatPo(Harness harness) { + return start -> start + .onRegistrationCertificatePage() + .clickRightButton() + .onStatutoryAuthorityPage() + .clickContinue() + .onPrintInstructionsTransitionsPage() + .then(skipProcessedRequestsIfOpened(harness)); + } + + public Function fillProductDetailsExpresBusiness(String financingReason, String loanExpresAmount) { + return start -> start + .then(fillRequiredLoanEb(loanExpresAmount)) + .selectFinancingReason(financingReason); + } + + public Function fillRequiredLoanEb(String loanExpresAmount) { + return start -> start + .fillRequiredLoanAmount(loanExpresAmount) + .fillNumberOfPayments("120") + .selectPaymentDay("01") + .selectFirstCurrentAccount(); + } + + public Function fillProductDetailsFlexiBusinessNoFopAssociation(String loanFlexiAmount) { + return start -> start + .fillRequiredLoanAmount(loanFlexiAmount) + .clickNoFopAssociation() + .then(fillRequiredLoanDetails()); + } + + public Function fillProductDetailsFlexiBusinessYesFopAssociation(String loanFlexiAmount) { + return start -> start + .fillRequiredLoanAmount(loanFlexiAmount) + .clickYesFopAssociation() + .fillNumberOfAssociationMembers("2") + .then(fillRequiredLoanDetails()); + } + + public Function fillProductDetailsFlexiBusinessPo(String loanFlexiAmount) { + return start -> start + .fillRequiredLoanAmount(loanFlexiAmount) + .then(fillRequiredLoanDetails()); + } + + public Function fillRequiredLoanDetails() { + return start -> start + .selectFirstCurrentAccount() + .selectOtherBankStatements("za 3 měsíce") + .selectMonth() + .fillAccountNumber("301030") + .fillBankCode("0100") + .fillFirstTurnover("200000") + .fillSecondTurnover("200000") + .fillThirdTurnover("200000"); + } + + /*** + * V pripade klienta, ktoremu bola dokumentacia uz raz zaslana, sa neodosiela znova. Noemu klientovi sa dokumentacia odosiela. + */ + public Function sendDocumentationIfPageShownOtherwiseSkipPo(Harness harness) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(2, BPP001_S001_DocumentationSendPage.SEND_DOCUMENTS_BUTTON, Lookup.ID)) { + return start -> start + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onEditBusinessInfoPage(); + } else { + return start -> start + .onEditBusinessInfoPage(); + } + } + + public Function sendDocumentationIfPageShownOtherwiseSkipFop(Harness harness) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(2, BPP001_S001_DocumentationSendPage.SEND_DOCUMENTS_BUTTON, Lookup.ID)) { + return start -> start + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onBusinessInfoPage(); + } else { + return start -> start + .onBusinessInfoPage(); + } + } + + public Function sendDocumentationIfPageShownOtherwiseSkip(Harness harness) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(2, BPP001_S001_DocumentationSendPage.SEND_DOCUMENTS_BUTTON, Lookup.ID)) { + return start -> start + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onSavingsAccountPage(); + } else { + return start -> start + .onSavingsAccountPage(); + } + } + + public Function editBusinessInformationExpresBusiness() { + return start -> start + .then(setExpresBusinessData()) + .clickContinue() + .onRequestedDocumentPage(); + } + + public Function editBusinessInformationExpresBusinessWithFopAssociation() { + return start -> start + .then(setExpresBusinessDataWithAssociationFop()) + .clickContinue() + .onRequestedDocumentPage(); + } + + public Function editBusinessInformationGreenExpressBusiness() { + return start -> start + .then(setGreenExpresBusinessData()) + .clickContinue() + .onRequestedDocumentPage(); + } + + public Function setExpresBusinessData() { + return start -> start + .clickBusinessNotForCertainTime() + .fillNumberOfEmployees("0") + .clickFirstEconomicActivity() + .fillRevenueShare("100") + .clickBusinessNotInterrupted() + .clickNotTransformation() + .clickAssociationFopNo(); + } + + public Function setExpresBusinessDataWithAssociationFop() { + return start -> start + .clickBusinessNotForCertainTime() + .fillNumberOfEmployees("0") + .clickFirstEconomicActivity() + .clickBusinessNotInterrupted() + .clickNotTransformation() + .clickAssociationFopYes() + .fillAssociationFopMembersCount("2") + .fillRevenueShare("100"); + } + + public Function setGreenExpresBusinessData() { + return start -> start + .clickBusinessNotForCertainTime() + .fillNumberOfEmployees("0") + .clickFirstEconomicActivity() + .fillRevenueShare("100") + .clickBusinessNotInterrupted(); + } + + public Function editBusinessInformationFlexiBusiness() { + return start -> start + .clickBusinessNotForCertainTime() + .fillNumberOfEmployees("0") + .clickFirstEconomicActivity() + .fillRevenueShare("100") + .clickBusinessNotInterrupted() + .clickNotTransformation(); + } + + public Function editEmailsToDummy(String dummyEmail) { + return start -> start + .clickEdit() + .onEditPoFopPage() + .fillEmail(dummyEmail) + .clickSend() + .onEditFoWhenEditingFopPage() + .clickSend() + .onAppendixConfirmationPage() + .continueWithoutPrint() + .onAdditionalBusinessData(); + } + + public Function editEmailAndMaritalStatus(String dummyEmail) { + return start -> start + .clickEdit() + .onEditPoFopPage() + .fillEmail(dummyEmail) + .clickSend() + .onEditFoWhenEditingFopPage() + .selectMaritalStatus(MaritalStatus.MARRIED.getUfoValue()) + .selectSJM("Ne") + .fillEmail(dummyEmail) + .clickNotPoliticallyExposedPerson() + .clickSend() + .onAppendixConfirmationPage() + .continueWithoutPrint() + .onAdditionalBusinessData(); + } + + public Function editEmailsToDummyPo(String dummyEmail) { + return start -> start + .clickEdit() + .onEditPoFopPage() + .fillEmail(dummyEmail) + .clickSend() + .onAppendixConfirmationPage() + .continueWithoutPrint() + .onEditBusinessInfoPage(); + } + + public Function assignDocuments(String assignedDocument, String selectDocument) { + return start -> start + .clickDocumentCategory(assignedDocument) + .clickSelectDocument(selectDocument) + .clickAddDocument(); + } + + public Function fillFinancialSignpostDeclaration() { + return start -> start + .fillLastYear("2022") + .selectLastYearIncome("Prohlášení o příjmech") + .then(fillFinancialData()); + } + + public Function fillFinancialSignpostDp(String lastYear, String yearBeforeLast) { + return start -> start + .selectLastYearIncome("Daňové přiznání") + .clickLastYearDp(lastYear) + .selectYearBeforeLastIncome("Daňové přiznání") + .clickYearBeforeLastDp(yearBeforeLast) + .then(fillPersonalFinancialData()); + } + + public Function selectNoPsdData() { + return start -> start + .clickContinue() + .onFinancialSignpostPage() + .clickNoPsd2Data(); + } + + public Function fillFinancialData() { + return start -> start + .fillIncomeFromBusiness("2000000") + .fillGrossIncome("0") + .fillTotalAssets("2000000") + .fillProfit("1500000") + .fillYearBeforeLast("2021") + .selectYearBeforeLastIncome("Nezadává"); + } + + public Function fillPersonalFinancialData() { + return start -> start + .fillNumberOfMainCustomers("2") + .clickNoMoreThanHalfMainCustomer() + .clickNoMoreThanHalfMainContractor() + .fillBusinessLoanOutsideMmb("0") + .clickYesClientProperty() + .clickYesTaxAdvisor(); + } + + public Function fillFinancialSignpostNettoIncome() { + return start -> start + .fillNettoIncomeOfHousehold("200000") + .fillOtherLivingCosts("0") + .fillOtherMonthlyPayments("0"); + } + + public Function summarizeRequestAndPrint() { + return start -> start + .clickContinue() + .onRequestSummaryPage() + .clickContinue() + .onRequestForSMEPage() + .clickPrintRequest() + .onPrintPagePSP004() + .saveDocumentUrl() + .closePrintWindow(); + } + + public Function summarizeRequestAndPrintAssociation() { + return start -> start + .clickContinue() + .onRequestSummaryPage() + .clickContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow(); + } + + public Function addHusbandOrWife(NonClient wifeData) { + return start -> start + .addHusbandOrWife() + .fillFirstName(wifeData.firstName()) + .fillLastName(wifeData.lastName()) + .fillBirthNumber(wifeData.birthNumber()) + .clickCzechResidency() + .clickAddressLookupMagnifyGlass() + .fillSearchedAddress("Horni lan 445") + .searchAddressAndSelectFirst() + .clickConsentPersonallySigned() + .clickNextToListOfPersonsOnRequestPage(); + } + + public Function waitForModulation(Harness harness) { + return start -> start + .waitForModulation(120) + .onModulationPage(); + } + + public Function uploadScannedDocuments(Harness harness) { + return start -> start + .clickDocumentScanning() + .onScanDocumentsPage() + .then(assignScannedDocuments(harness)) + .clickContinue(); + } + + /** + * Special method for EaSI, because there is different page path + * + * @param harness + * @return + */ + public Function uploadScannedDocumentsEaSI(Harness harness) { + return start -> start + .clickDocumentScanning() + .onScanDocumentsPage() + .then(assignScannedDocuments(harness)) + .clickContinue() + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onMainClientPage(); + } + + /*** + * Na prostredi PPE niektore automaty vyzaduju upload viacerych dokumentov, v porovnani s TST1, kde tieto dokumenty potrebne nie su. + */ + public Function assignScannedDocuments(Harness harness) { + return start -> start.assignAllDocuments(harness); + } + + public Function assignDocumentByIndex(String index) { + return start -> start + .clickScannedDocuments() + .onDocumentsSummaryPage() + .clickBack() + .uploadFakeExtractZL() + .selectFirstUploadedDocument() + .selectDocumentToAssign(index) + .assignLoadedDocument(); + } + + public Function assignFirstDocument() { + return start -> start + .uploadFakeExtractZL() + .selectFirstUploadedDocument() + .selectFirstDocumentToAssign() + .assignLoadedDocument(); + } + + public Function assignSecondDocument() { + return start -> start + .clickScannedDocuments() + .onDocumentsSummaryPage() + .clickBack() + .uploadFakeExtractZL() + .selectFirstUploadedDocument() + .selectSecondDocumentToAssign() + .assignLoadedDocument(); + } + + public Function assignThirdDocument() { + return start -> start + .clickScannedDocuments() + .onDocumentsSummaryPage() + .clickBack() + .uploadFakeExtractZL() + .selectFirstUploadedDocument() + .selectThirdDocumentToAssign() + .assignLoadedDocument(); + } + + public Function selectMonetaBusinessCard(Harness harness, String mbcProduct) { + return start -> start + .onRegistrationCertificatePage() + .clickRightButton() + .then(skipProcessedRequestsIfOpened(harness)) + .selectExpresBusiness(mbcProduct); + } + + public Function fillCreditCardDetails() { + return start -> start + .fillAmount("60000") + .selectDistribution("Elektronicky a e-mailem") + .clickAccountAtMMB() + .selectFirstAccount(2) + .clickContinue() + .onContactSettingsForSendingEmailsPage(); + } + + public Function fillContactSettings() { + return start -> start + .clickFillEmailFromCif() + .clickFillPhoneFromCif(); + } + + public Function fillBusinessInformation(String employeesCount) { + return start -> start + .fillBaseBusinessCapital("200000,00") + .selectBusinessForCertainTime("Ne") + .fillNumberOfPersonsActCompany("1") + .fillNumberOfEmployees(employeesCount) + .selectStatutoryAuthority("Jednatel") + .clickFirstEconomicActivityRadio() + .clickNoActivityInterrupted() + .clickNoTransformation() + .fillRevenueShare("100") + .clickContinue() + .onAddressesAndContactsPage(); + } + + public Function selectStatutoryAuthority(String deposit) { + return start -> start + .addStatutoryAuthority() + .clickFirstRepresentative() + .clickContinue() + .onClientConsensPage() + .clickYes() + .continueToSignerSelectionPage() + .clickSignedPersonallyAndContinue() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onClientRequestDetailPage() + .checkContactPerson() + .then(fillStatutoryAuthorityDetailAndContinue(deposit)); + } + + public Function selectStatutoryAuthorityCooperativeOwnership() { + return start -> start + .addStatutoryAuthority() + .clickFirstRepresentative() + .clickContinue() + .onClientsDataORequestPage() + .clickContactPerson() + .clickSignsAgreement() + .clickContinue(); + } + + public Function selectSecondStatutoryAuthority(String deposit) { + return start -> start + .addStatutoryAuthority() + .clickSecondRepresentative() + .clickContinue() + .onClientConsensPage() + .clickYes() + .continueToSignerSelectionPage() + .clickSignedPersonallyAndContinue() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onClientRequestDetailPage() + .then(fillStatutoryAuthorityDetailAndContinue(deposit)); + } + + public Function fillStatutoryAuthorityDetailAndContinue(String deposit) { + return start -> start + .checkCompanion() + .fillDeposit(deposit) + .checkSigner() + .clickContinue(); + } + + public Function finalizeSmeForPo(Harness harness) { + return start -> start + .clickContinue() + .onRequestSummaryPage() + .clickContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onSmeApplicationSignPage() + .clickContinue() + .onWaitingForModulationPage() + .waitForModulation(120, 7) + .onModulationPage(); + } + + public Function setCommitment() { + return start -> start + .selectCommitmentType("Úvěr") + .selectCompany("ESSOX s. r. o. (nebo Finance Consumer Credit)") + .fillCurrentPrincipalAmount("80000") + .addCommitment() + .clickContinueToPreliminaryEvaluationPage(); + } + + public Function fillCommitmentData() { + return start -> start + .selectCommitmentExistingDocument("Smlouva o úvěru") + .selectCommitmentPaymentDocument("Výpis z běžného účtu") + .fillBankCode("0100") + .fillPaymentAccountNumber("301030") + .fillCreditContractNumber("11111111") + .fillVariableSymbol("11111111") + .fillSpecificSymbol("1111") + .fillOriginalLoanAmount("100000") + .fillPaymentsNumber("24") + .fillInstallmentAmount("50000") + .fillEstablishDate("1.1.2024") + .selectPaymentPeriod("Měsíční") + .fillAnnualInterestRate("5,2") + .fillFirstPaymentDate("1.2.2024") + .clickSaveCommitment() + .fillCreditContractNumberInControl("11111111") + .clickSave(); + } + + public Function uploadScannedDocumentsConsolidation(Harness harness) { + return start -> start + .clickDocumentScanning() + .onScanDocumentsPage() + .assignAllDocuments(harness) + .clickContinue() + .onScanDocumentsPage() + .uploadFakeExtractZL() + .selectFirstUploadedDocument() + .selectFirstClientsDocumentToAssign() + .assignClientsLoadedDocument() + .clickContinue() + .onMainClientPage(); + } + + /*** + * Vypocet modelace niekedy trva dlhsie, preto je nutne kliknut na tlacidlo Znova. + */ + public Function waitForPreliminaryEvaluation(Harness harness) { + for (int i = 0; i < 8; i++) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(2, OBR001_S001_PrintInstructionPage.OBR001_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + harness.getEndpoint(UfoEndpoint.class).click(() -> OBR001_S001_PrintInstructionPage.RIGHT_BUTTON); + } else { + break; + } + } + return start -> start + .onPreliminaryEvaluationPage(); + } + + public Function addAssociatedMember(NonClient associatedMember) { + return start -> start + .addPersonToRequest() + .then(fillDataAboutAssociatedMember(associatedMember)) + .then(fillAssociatedFonCif(associatedMember)) + .then(newStatutoryAuthority.fillStatutoryAuthorityData(associatedMember)) + .clickSignedPersonallyPhysicallyAndContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onClientContractSignPage() + .clickLeftButton() + .onScanDocumentsPage() + .clickSkipButton() + .onClientConsentsPoPage() + .clickYes() + .continueToSignerSelectionPage() + .clickSignedPersonallyPhysicallyAndContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onClientRequestDetailPage() + .clickFopAssociationMemberRadio() + .clickContinue() + .clickPermanentResidencyFopRadio() + .clickContinue() + .onListOfPersonsOnRequestPage(); + } + + public Function fillDataAboutAssociatedMember(NonClient associatedMember) { + return start -> start + .fillFirstName(associatedMember.firstName()) + .fillLastName(associatedMember.lastName()) + .fillBirthNumber(associatedMember.birthNumber()) + .dismissAlertIfVisibleAndContinue() + .clickCenterButton() + .onIdDocumentsCopy() + .then(newClientTasks.selectDocumentIdCard("OP se strojově čitelnými údaji")) + .onCreateNewCifpage(); + } + + public Function fillAssociatedFonCif(NonClient associatedMember) { + return start -> start + .selectIdType("Občanský průkaz") + .fillIdCardNumber(associatedMember.idNumber()) + .clickContinue() + .then(harness.tasks().ufo().banka().newClient().skipNotRegisteredWarningIfVisible()) + .tryCloseIdentificationPopup(); + } + + public Function chooseNoFamilyCompany() { + return start -> start + .selectFamilyCompany("Ne") + .clickContinue(); + } + + public Function selectPermanentResidency() { + return start -> start + .clickPermanentResidencyRadio() + .clickContinue() + .onRequestedDocumentsPage(); + } + + public Function continueToRequestPrint() { + return start -> start + .continueToListOfPersonsOnRequestPage() + .clickContinue() + .onRequestSummaryPage() + .clickContinue() + .onRequestForSMEPage(); + } + + public Function printRequest() { + return start -> start + .clickPrintRequest() + .onPrintPagePSP004() + .saveDocumentUrl() + .closePrintWindow() + .onRequestForSMEPage(); + } + + public Function zebAndEasiPrintRequest() { + return start -> start + .clickPrintRequest() + .onPrintPagePSP012() + .closePrintWindow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onRequestForSMEPage(); + } + + public Function selectPermanentResidencyForFop() { + return start -> start + .clickPermanentResidencyFopRadio() + .clickContinue() + .onListOfPersonsOnRequestPage(); + } + + public Function selectCompanyHeadquarter() { + return start -> start + .clickCompanyHeadquarterRadio() + .clickContinue() + .onRequestedDocumentsPage(); + } + + public Function fillBusinessInfoGreenAndConsolidation() { + return start -> start + .fillBaseBusinessCapital("200000") + .selectBusinessForCertainTime("Ne") + .fillNumberOfPersonsActCompany("1") + .fillNumberOfEmployees("1") + .selectStatutoryAuthority("Jednatel") + .clickFirstEconomicActivityRadio() + .fillRevenueShare("100") + .clickNoActivityInterrupted() + .clickContinue() + .onAddressesAndContactsPage(); + } + + public Function zebAndEasiPrintRequestPo(Harness harness) { + return start -> start + .clickContinue() + .onRequestSummaryPage() + .clickContinue() + .onPrintPagePSP012() + .closePrintWindow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onSmeApplicationSignPage() + .clickContinue() + .onWaitingForModulationPage() + .waitForModulation(120, 7) + .onModulationPage(); + } + + public Function sendDocumentsForMonetaBusinessCardIfPageShownOtherwiseSkip(Harness harness) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(2, BPP001_S001_DocumentationSendPage.SEND_DOCUMENTS_BUTTON, Lookup.ID)) { + return start -> start + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onMainClientPage(); + } else { + return start -> start + .onMainClientPage(); + } + } + + public Function storeAccountNumber(String applicationId, String application) { + return start -> start + .selectFromListOfRequests() + .clickRequest(applicationId) + .clickOpenRequestDetail() + .onSMEAutomatsApplicationsOverview() + .storeAccountNumber(application) + .clickBackToApplicationsList() + .clickBackToMainPage(); + } + + public Function checkEstablishedExpresBusinessAccountDetail(Harness harness) { + return start -> start + .clickExpressBusinessDetail(harness.get(ACCOUNT_NUMBER_KEY)) + .checkAccountState("Otevřený") + .checkLimitsCredit(harness.get(LIMITS_CREDIT_KEY)) + .checkInterestRate(harness.get(INTEREST_RATE_KEY)) + .checkAnnuityPayments("Ano") + .checkPaymentsCount(harness.get(PAYMENTS_COUNT_KEY)) + .clickBackToHKO(); + } + + public Function checkEstablishedKontokorentDetail(String accountNumber) { + return start -> start + .clickKontokorentDetail() + .checkAccountNumberInternal(accountNumber) + .returnToMainClient(); + } + + public Function setParametersForExpresAndFlexiBusinessApplications(Harness harness) { + return start -> start + .then(setParametersForExpresBusinessApplication(harness)) + .then(setParametersForFlexiBusinessApplication(harness)); + } + + public Function setParametersForExpresBusinessApplication(Harness harness) { + return start -> start + .clickApplication("Expres Business") + .clickParametersVariants("Expres Business") + .onChangeSelectedParametersExpresBusinessPageAndAcceptAlertIfPresent() + .fillSuggestedSummaryInterestRate(harness) + .selectInterestRateType("Pevná po celou dobu splácení") + .selectBenefitFromCampaign("Benefit nezvolen") + .selectFirstValidRepaymentCharge() + .clickRepayInsuranceChargeNo() + .clickRecalculate() + .then(storeApplicationDetails()) + .clickContinue(); + } + + public Function setParametersForFlexiBusinessApplication(Harness harness) { + return start -> start + .clickApplication("Flexi Business") + .clickParametersVariants("Flexi Business") + .onChangeSelectedParametersFlexiBusinessPageAndAcceptAlertIfPresent() + .clickRecalculateAndSave() + .clickContinue(); + } + + public Function storeApplicationDetails() { + return start -> start + .storeLimitsCredit() + .storeAnnuityPayment() + .storePaymentsCount(); + } + + public Function waitForModulationIfPresent(int timeout) { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(10, CHK001_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start.onWaitingForModulationPage() + .waitForModulation(timeout) + .onSMEAutomatsApplicationOverviewPage(); + } else { + return start -> start + .onSMEAutomatsApplicationOverview(); + } + } + + public Function editBusinessInfoCooperativeOwnership() { + return start -> start + .fillNumberOfPersonsActCompany("1") + .fillNumberOfEmployees("0") + .clickFirstEconomicActivityRadio() + .fillRevenueShare("100"); + } + + public Function loadBusinessNameIfNecessaryAndContinue() { + UfoEndpoint endpoint = this.harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, KUL004_S004_PAGE_LABEL_XPATH, Lookup.XPATH)) + return start -> start; + else { + return start -> start + .onEditBusinessInfoPage() + .clickLoadBusinessName() + .clickContinue(); + } + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeProductTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeProductTasks.java new file mode 100644 index 0000000..efac2bf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/NewSmeProductTasks.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; + +import java.util.function.Function; + +public class NewSmeProductTasks { + + private final Harness harness; + + public NewSmeProductTasks(Harness harness) { + this.harness = harness; + } + + public Function createNewSmeCurrentAccountDC() { + return start -> start.createNewProduct(HCisProductClass.CURRENT_ACCOUNT) + .onToNeedToUpdateCif() + .clickNoUpdateNeededToCreateAccountPage() + .selectAccountFlag("Konto") + .selectAccountType("GB EXIM 100") + .changeMfbSetting() + .confirmCreationDispositionOwnerPage() + .clickOwnerOnly() + .onSignaturePatternsEditPage() + .clickSignaturePhysical() + .onConfirmSignaturePage() + .clickRightButton() + .onConfirmationPage() + .clickConfirmed() + .onSignerSelectionPoPage() + .clickOkOnDispositionSignaturePage() + .clickClientAgreedAndSignedEmpowerment() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onSuspendDispositionPrintPage() + .clickPrintEmpowermentNow() + .onClientFinalSignatureConfirmationPage() + .clickClientAgreedAndSignedAll() + .clickContinue() + .onWantToStartExpresBusinessPage() + .clickSkip(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/OneClickTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/OneClickTasks.java new file mode 100644 index 0000000..e78a340 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/OneClickTasks.java @@ -0,0 +1,176 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.pages.products.current.account.BPP001_S001_DocumentationSendPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL023_S001_RecapitulationOfClientDataPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL024_S001_OneClickPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL024_S001_OneClickPageTransitions; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.ONE_CLICK; +import static cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL024_S001_OneClickPage.AGREE_BUTTON; +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.CHK001_S001_WaitingForModulationPage.CHK001_S001_PAGE_LABEL_XPATH; + +public class OneClickTasks { + + private final Harness harness; + + public OneClickTasks(Harness harness) { + this.harness = harness; + } + + public Function createOneClickFop(Harness harness) { + return start -> start + .createNewProduct(HCisProductClass.ONE_CLICK) + .onRegistrationCertificatePage() + .clickRightButton() + .then(sendDocumentationIfPageShownOtherwiseSkip(harness)) + .selectProductType("GB Complete") + .selectCardType("Business") + .clickContinue() + .onRecapitulationOfClientDataPage() + .clickContinueToScoringPage() + .waitForLoader() + .onModulationPage() + .waitForModulation(60) + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onSignerPage() + .clickRightButton() + .onClientContractSignPage() + .clickCenterButton() + .onWaitingForModulationPage() + .waitForModulation(100) + .onEmailSentToClientPage() + .clickCenterButton() + .onSummaryOfProductFoundationPage() + .clickOk() + .onMainClientPage(); + } + + /*** + * Novemu klientovi sa odosiela dokumentacia. V pripade existujuce klienta sa tento krok preskakuje. + */ + public Function sendDocumentationIfPageShownOtherwiseSkip(Harness harness) { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(3, BPP001_S001_DocumentationSendPage.SEND_DOCUMENTS_BUTTON, Lookup.ID)) { + return start -> start + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onOneClickPage(); + } else { + return start -> start + .onOneClickPage(); + } + } + + public Function createOneClickPo(Harness harness) { + return start -> start + .createNewProduct(HCisProductClass.ONE_CLICK) + .onRegistrationCertificatePage() + .clickRightButton() + .then(sendDocumentationIfPageShownOtherwiseSkip(harness)) + .selectProductType("Konto PRO podnikání") + .selectCardType("Business") + .clickContinue() + .then(clickAgreeIfVisible()) + .clickContinueToScoringPage() + .waitForLoader() + .onModulationPage() + .waitForModulation(60) + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onClientContractSignPage() + .clickCenterButton() + .then(waitForModulationIfVisible()) + .clickCenterButton() + .onSummaryOfProductFoundationPage() + .clickOk() + .onMainClientPage(); + } + + public Function waitForModulationIfVisible() { + UfoEndpoint endpoint = this.harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, CHK001_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onWaitingForModulationPage() + .waitForModulation(100) + .onEmailSentToClientPage(); + } else { + return start -> start + .onPrintInstructionPage(); + } + } + + public Function clickAgreeIfVisible() { + UfoEndpoint endpoint = this.harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, AGREE_BUTTON, Lookup.ID)) { + return start -> start + .onOneClickPage() + .clickAgree() + .clickContinue() + .onRecapitulationOfClientDataPage(); + } else { + return start -> start.onRecapitulationOfClientDataPage(); + } + } + + + public Function createOneClickFon() { + return start -> start.createNewProduct(ONE_CLICK) + .onOneClickRetailPage() + .clickNoProductMediatedByAdvisor() + .clickNoDispositionRights() + .clickNoSaStatementsEndOfMonth() + .typeSaName("spořící účet") + .clickPlasticCard() + .selectCardDesign("Standard") + .clickContinue() + .onModulationPage() + .waitForModulation(120) + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onDocumentsProvidedToClientPage() + .clickContinue() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onClientContractSignPage() + .clickCenterButton() + .onWaitingForModulationPage() + .waitForModulation(120) + .onEmailSentToClientPage() + .clickCenterButton() + .onSummaryOfProductFoundationRetailPage() + .clickArrangeAppointmentIfChecked() + .clickContinueButton() + .onMainClientPage(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/RetailHunterTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/RetailHunterTasks.java new file mode 100644 index 0000000..0734b3b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/RetailHunterTasks.java @@ -0,0 +1,179 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.*; +import cz.moneta.test.dsl.ufo.banka.pages.fon.DMS070_S001_ScanDocumentsPage; +import cz.moneta.test.dsl.ufo.banka.pages.fon.ICO001_S001_BusinessControlPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPageTransitions; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.ADR004_S001_EnterContactAddressPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.util.data.client.EducationLevel; +import cz.moneta.test.dsl.util.data.client.MaritalStatus; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +public class RetailHunterTasks { + + private Harness harness; + + public RetailHunterTasks(Harness harness) { + this.harness = harness; + } + + public Function createRetailHunter(NonClient nonClient, String businessIco) { + return start -> start + .createNewProduct(HCisProductClass.MONETA_BUSINESS_CARD) + .then(fillContactAddressOtherwiseSkip()) + .then(fillBusinessInformation(businessIco)) + .clickAgreeToSettingMbcPage() + .then(setMbc(nonClient)) + .then(fillComplementaryBusinessData()) + .then(scanDocuments()) + .then(fillDataFromIdCard(nonClient)) + .then(fillPersonalContactData(nonClient)) + .clickPrintRequest() + .saveDocumentUrl() + .closePrintWindow() + .onContractSignPage() + .clickRightButton() + .onWaitingForModulationPage() + .waitForModulation(180) + .onMbcSummaryPage() + .clickContinueToModulation() + .waitForModulation(260) + .onSignerSelectionPage() + .chooseCitizen() + .clickContinue() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .then(printDocumentation()) + .onContractSignPage() + .clickRightButton() + .onWaitingForModulationPage() + .waitForModulation(100) + .onClientContractSignPage() + .clickLeftButton() + .onMainClientPage(); + } + + public Function fillContactAddressOtherwiseSkip() { + if (harness.getEndpoint(UfoEndpoint.class).isElementVisible(3, ADR004_S001_EnterContactAddressPage.ADR004_S001_PAGE_LABEL_XPATH, Lookup.XPATH)) { + return start -> start + .onEnterContactAddressPageAndDismissAlertIfVisible() + .clickUseResidencyAsContactAndConfirm() + .clickSave() + .onClientContractSignPage(); + } else { + return start -> start + .onClientContractSignPage(); + } + } + + public Function printDocumentation() { + return start -> start + .then(printing()) + .then(printing()) + .then(printing()) + .then(printing()); + } + + public Function printing() { + return start -> start + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow(); + } + + public Function fillBusinessInformation(String businessIco) { + return start -> start + .fillIco(businessIco) + .clickCenterButton() + .onBusinessControlPage(); + } + + public Function setMbc(NonClient nonClient) { + return start -> start + .fillCreditLimitAmount("50000") + .selectRepaymentType("Inkasem z účtu") + .checkAccountProBusiness() + .clickContinueToBasicBusinessDataPage() + .fillBusinessName(nonClient.fullName()) + .fillDic("") + .then(fillCityIntoStreetIfInputIsEmpty()) + .checkConsents() + .clickContinueToComplementaryBusinessDataPage(); + } + + public Function fillCityIntoStreetIfInputIsEmpty() { + if (harness.getEndpoint(UfoEndpoint.class).getAttribute(MBC003_S001_BasicBusinessDataPage.STREET_INPUT_XPATH, Lookup.XPATH, "value").equals("")) { + String businessCity = harness.getEndpoint(UfoEndpoint.class).getAttribute(MBC003_S001_BasicBusinessDataPage.CITY_INPUT_XPATH, Lookup.XPATH, "value"); + return start -> start + .fillBusinessStreet(businessCity); + } else { + return null; + } + } + + public Function fillComplementaryBusinessData() { + return start -> start + .clickCzechTaxResidencyOnly() + .clickNoEstablishmentAbroad() + .clickNoSilentCompanion() + .fillApproximateTurnover("500000") + .fillNettoIncome("400000") + .fillHouseholdNettoIncome("50000") + .fillNumberOfEmployees("0") + .clickCashlessDomesticTransactions() + .clickNoPep() + .clickContinueToScanDocumentsPage(); + } + + public Function scanDocuments() { + return start -> start + .uploadAndAssignFakeId() + .saveUploadedDocument() + .clickContinue() + .onIdCardDataPage(); + } + + public Function fillDataFromIdCard(NonClient nonClient) { + return start -> start + .fillFirstName(nonClient.firstName()) + .fillLastName(nonClient.lastName()) + .fillBirthDate(nonClient.birthDate()) + .fillBirthPlace(nonClient.placeOfBirth()) + .clickCzechBirthCountry() + .fillIdValidTill(nonClient.idNumberExpiration()) + .fillIdNumber(nonClient.idNumber()) + .fillBirthNumber(nonClient.birthNumber()) + .fillIdControlNumber(nonClient.idNumberCheckDigit()) + .clickMagnifyingGlass() + .typeAddress(nonClient.residencyAddress().getStreet() + " " + nonClient.residencyAddress().getDescriptiveNumber()) + .clickSearchForAddress() + .clickFirstFoundAddressAndConfirm() + .clickCzechFlagPermanentResidency() + .clickMaleGender() + .continueToPersonalAndContactDataPage(); + } + + public Function fillPersonalContactData(NonClient nonClient) { + return start -> start + .clickMagnifyingGlass() + .typeAddress(nonClient.residencyAddress().getStreet() + " " + nonClient.residencyAddress().getDescriptiveNumber()) + .clickSearchForAddress() + .clickFirstFoundAddressAndConfirm() + .clickCzechResidency() + .fillEmail(nonClient.email()) + .fillPhone("420" + nonClient.mobileNumber()) + .selectEducationLevel(EducationLevel.HIGHER.getUfoValue()) + .selectMaritalStatus(MaritalStatus.SINGLE.getUfoValue()) + .checkConsents() + .clickContinueToMbcSummaryPage(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/TermDepositTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/TermDepositTasks.java new file mode 100644 index 0000000..92190aa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/banka/tasks/products/TermDepositTasks.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dsl.ufo.banka.tasks.products; + +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.pages.products.debit.card.SIF004_S001_ContactSettingsForSendingEmailsPage; +import cz.moneta.test.dsl.ufo.banka.pages.term.deposit.RTV001_S001_TermDepositPage; +import cz.moneta.test.dsl.ufo.banka.pages.term.deposit.RTV001_S004_FoundingDepositInformationPage; + +import java.util.function.Function; + +public class TermDepositTasks { + + public Function createTermDeposit(String termDepositProducts, String depositAmount, String termDepositPeriod) { + return start -> start + .createNewProduct(HCisProductClass.ONETIME_TERM_DEPOSIT) + .onRegistrationCertificatePage() + .clickRightButton() + .onTermDepositPage() + .then(fillTermDepositInformation(termDepositProducts, depositAmount, termDepositPeriod)) + .then(fillContacts()) + .clickSaveToDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onAddCodeOfRecommendedPersonPage() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onDepositOfPrincipalTypePage() + .clickParentAccountAndDismissAlertIfPresent() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintInstructionPage() + .clickCenterButton() + .onProductSummaryChangeAdcPage() + .clickNoToDispositionGeneratePage() + .clickGenerateNow() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage(); + } + + public Function fillTermDepositInformation(String termDepositProducts, String depositAmount, String termDepositPeriod) { + return start -> start + .selectProduct(termDepositProducts) + .fillInitialAmount(depositAmount) + .selectPeriod(termDepositPeriod) + .selectFirstAccountWhenFounded() + .selectStatementDistribution("Elektronicky a e-mailem") + .selectStatementPeriodicity("Po pohybu") + .selectFirstDepositAccount() + .selectFirstInterestAccount() + .selectCorrespondenceAddress("Adresa trvalá") + .clickSendToContactSettingsForSendingEmailsPage(); + } + + public Function fillContacts() { + return start -> start + .clickFillEmailFromCif() + .clickFillPhoneFromCif() + .clickContinue() + .onFoundingDepositInformationPage(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/AKV401_S001_Opportunities.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/AKV401_S001_Opportunities.java new file mode 100644 index 0000000..38bc862 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/AKV401_S001_Opportunities.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = AKV401_S001_Opportunities.RELOAD_BUTTON, until = Until.VISIBLE) +public interface AKV401_S001_Opportunities extends WebFlow { + String RELOAD_BUTTON = "AKV401_S001_B001"; + String FIRST_OPPORTUNITY = "//*[@id='AKV401_S001_G001_UfoTable']//tr[1]//td[1]"; + String CONTINUE_BUTTON = "AKV401_S001_B007"; + + @Click(value = FIRST_OPPORTUNITY, by = Lookup.XPATH) + AKV401_S001_Opportunities clickOpportunity(); + + @Click(CONTINUE_BUTTON) + KOM401_S001_ProposalParameters clickContinue(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/AUT402_S001_KOCriteriaListPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/AUT402_S001_KOCriteriaListPage.java new file mode 100644 index 0000000..6f6598d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/AUT402_S001_KOCriteriaListPage.java @@ -0,0 +1,68 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.DEL401_S001_Cru; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.cb.landing.AUT402_S001_KOCriteriaListPage.PAGE_LABEL_DIV; +import static cz.moneta.test.dsl.ufo.cb.landing.AUT402_S001_KOCriteriaListPage.LOADER_DIV; +import static cz.moneta.test.dsl.ufo.cb.landing.AUT402_S001_KOCriteriaListPage.NEXT_PAGE_BUTTON; + +@Wait(value = {PAGE_LABEL_DIV, NEXT_PAGE_BUTTON}, waitSecondsForElement = 120, until = Until.VISIBLE) +@Wait(value = LOADER_DIV, until = Until.GONE) +public interface AUT402_S001_KOCriteriaListPage extends WebFlow, StoreAccessor { + + String UFO_SECOND_WINDOW_SESSION_ID_KEY = "UFO_SECOND_WINDOW_SESSION_ID"; + String UFO_SECOND_WINDOW_SESSION_ID_XPATH = "//input[@name = 'sessionId']"; + String KO_CRITERIA_CALCULATION_TIME_KEY = "KO_CRITERIA_CALCULATION_TIME"; + String PAGE_LABEL_DIV = "AUT402_S001_X007"; + String LOADER_DIV = "AUT402_S001_X002"; + String RUN_KO_CALCULATION_BUTTON = "AUT402_S001_B011"; + String CALCULATION_TIME_DIV = "AUT402_S001_L002"; + String FIRST_KO_CRITERIUM_RADIO = "ufo-et-AUT402_S001_F001_row_1_sel"; + String NEXT_PAGE_BUTTON = "AUT402_S001_S001"; + + @Click(value = RUN_KO_CALCULATION_BUTTON, andWait = @Wait(value = LOADER_DIV, until = Until.GONE, waitSecondsForElement = 60)) + AUT402_S001_KOCriteriaListPage clickRunKOCalculation(); + + @StoreElementContent(storeKey = KO_CRITERIA_CALCULATION_TIME_KEY, value = CALCULATION_TIME_DIV) + AUT402_S001_KOCriteriaListPage storeLastKOCriteriaCalculationTime(); + + @CheckElementPresent(FIRST_KO_CRITERIUM_RADIO) + AUT402_S001_KOCriteriaListPage checkFirstKOCriteriumIsPresent(); + + @CustomAction + default AUT402_S001_KOCriteriaListPage checkChangeOfCalculatedTime(String previousCalculatedTime) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String calculatedTime = endpoint.getText(CALCULATION_TIME_DIV, Lookup.ID); + if (calculatedTime.equals(previousCalculatedTime)) { + throw new HarnessException("Calculated time did not change"); + } + return null; + } + + @CustomAction + default AUT402_S001_KOCriteriaListPage logSecondWindowSessionId() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String ufoSecondWindowSessionId = endpoint.getAttribute(UFO_SECOND_WINDOW_SESSION_ID_XPATH, Lookup.XPATH, "value"); + log("UFO second window session ID: " + ufoSecondWindowSessionId); + store(UFO_SECOND_WINDOW_SESSION_ID_KEY, ufoSecondWindowSessionId); + return null; + } + + @CustomAction + default AUT402_S001_KOCriteriaListPage checkCalculatedTimeNotEmpty() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String calculatedTime = endpoint.getText(CALCULATION_TIME_DIV, Lookup.ID); + Assertions.assertNotEquals("", calculatedTime); + return null; + } + + @Click(NEXT_PAGE_BUTTON) + DEL401_S001_Cru clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CHL405_S001_Checklists.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CHL405_S001_Checklists.java new file mode 100644 index 0000000..f8c7851 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CHL405_S001_Checklists.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.cb.landing.CHL405_S001_Checklists.END_BUTTON; + +@Wait(value = END_BUTTON, until = Until.VISIBLE) +public interface CHL405_S001_Checklists extends WebFlow { + String END_BUTTON = "CHL405_S001_B014"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CHT401_S001_ChatPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CHT401_S001_ChatPage.java new file mode 100644 index 0000000..a721f81 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CHT401_S001_ChatPage.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.cb.landing.CHT401_S001_ChatPage.LOAD_DISCUSSION_IMG; + +@Wait(value = LOAD_DISCUSSION_IMG) +public interface CHT401_S001_ChatPage extends WebFlow { + + String LOAD_DISCUSSION_IMG = "CHT401_S001_P002-1"; + String POST_DETAIL_IMG = "CHT401_S001_P003-1"; + String CLOSE_DETAIL_BUTTON = "CHT401_S001_B007"; + String END_CHAT_BUTTON = "CHT401_S001_B002"; + + @Click(value = LOAD_DISCUSSION_IMG, andWait = @Wait(POST_DETAIL_IMG) ) + CHT401_S001_ChatPage clickLoadDiscussion(); + + @Click(value = POST_DETAIL_IMG, andWait = @Wait(CLOSE_DETAIL_BUTTON) ) + CHT401_S001_ChatPage clickPostDetail(); + + @Click(value = CLOSE_DETAIL_BUTTON) + CHT401_S001_ChatPage clickCloseDetail(); + + @Click(value = END_CHAT_BUTTON) + IKL402_S001_ClientPage clickEndChat(); + + @CheckElementPresent(LOAD_DISCUSSION_IMG) + CHT401_S001_ChatPage checkElementLoadDiscussion(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CHY401_S001_ClientCreatedToSalesForce.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CHY401_S001_ClientCreatedToSalesForce.java new file mode 100644 index 0000000..7853ef2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CHY401_S001_ClientCreatedToSalesForce.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = CHY401_S001_ClientCreatedToSalesForce.CONTINUE_BUTTON, until = Until.VISIBLE) +public interface CHY401_S001_ClientCreatedToSalesForce extends WebFlow { + + String CONTINUE_BUTTON = "CHY401_S001_B001"; + + @Click(CONTINUE_BUTTON) + SME451_S001_UfoCbLandingPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CPL401_S001_CashPoolingPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CPL401_S001_CashPoolingPage.java new file mode 100644 index 0000000..c33bf28 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/CPL401_S001_CashPoolingPage.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = CPL401_S001_CashPoolingPage.PROCESS_BUTTON, until = Until.VISIBLE) +public interface CPL401_S001_CashPoolingPage extends WebFlow { + String PROCESS_BUTTON = "CPL401_S001_B004"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS401_S002_DocumentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS401_S002_DocumentsPage.java new file mode 100644 index 0000000..265cf99 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS401_S002_DocumentsPage.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.cb.landing.DMS401_S002_DocumentsPage.PAGE_LABEL; +import static cz.moneta.test.dsl.ufo.cb.landing.DMS401_S002_DocumentsPage.PAGE_LOADER_END; + +@Wait(value = PAGE_LABEL, until = Until.VISIBLE) +@Wait(PAGE_LOADER_END) +public interface DMS401_S002_DocumentsPage extends StoreAccessor, WebFlow { + + String PAGE_LABEL = "DMS401_S002_L005"; + String SEARCH_INPUT_BUTTON = "DMS401_S002_B011"; + String OTHER_DOCUMENT_INPUT = "DMS401_S002_G001-0"; + String DETAIL_BUTTON = "DMS401_S002_B001"; + String NEW_DOCUMENT_BUTTON = "DMS401_S002_B005"; + String DOCUMENT_NAME = "//table[@id='DMS401_S002_G001_UfoTable']//td[3]"; + String FIRST_DOCUMENT_TITLE_XPATH = "//table[@id='DMS401_S002_G008_UfoTable']/tbody/tr[1]/td[3]"; + String PAGE_LOADER_END = "ufo-ts-pageLoadEnd"; + + @Click(DETAIL_BUTTON) + DMS401_S004_DocumentDetailPage clickDocumentDetail(); + + @Click(NEW_DOCUMENT_BUTTON) + DMS401_S003_SaveDocument clickNewDocumentButton(); + + @CheckElementContent(value = DOCUMENT_NAME, by = Lookup.XPATH) + void checkDocumentName(String documentName); + + @CustomAction + default DMS401_S002_DocumentsPage checkDocument() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String value = endpoint.getAttribute(OTHER_DOCUMENT_INPUT, "value"); + String xpath = "//input[@name='DMS401_S002_G001' and @value='" + value + "']"; + endpoint.click(() -> OTHER_DOCUMENT_INPUT); + endpoint.waitForElementsToLoad(5, Lookup.XPATH, xpath); + return null; + } + + @CheckElementContent(value = FIRST_DOCUMENT_TITLE_XPATH, by = Lookup.XPATH) + DMS401_S002_DocumentsPage checkFirstDocumentName(String documentName); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS401_S003_SaveDocument.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS401_S003_SaveDocument.java new file mode 100644 index 0000000..e7d3757 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS401_S003_SaveDocument.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = DMS401_S003_SaveDocument.SAVE_BUTTON, until = Until.VISIBLE) +public interface DMS401_S003_SaveDocument extends WebFlow { + String DOCUMENT_TYPE = "DMS401_S003_C005"; + String SAVE_BUTTON = "DMS401_S003_B001"; + String DOCUMENT_SENT_AS_NORMAL_LETTER_INPUT = "DMS401_S003_H001_1"; + String REGISTRATION_NUMBER_XPATH = "//table[@id='DMS401_S003_G001_UfoTable']//td[text()='%s']"; + + @Select(DOCUMENT_TYPE) + DMS401_S003_SaveDocument selectDocumentType(String docType); + + @Click(SAVE_BUTTON) + DMS424_S001_UploadFile saveDocument(); + + @Click(DOCUMENT_SENT_AS_NORMAL_LETTER_INPUT) + DMS401_S003_SaveDocument clickDocumentSentAsNormalLetter(); + + @Click(value = REGISTRATION_NUMBER_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH) + DMS401_S003_SaveDocument selectAccountNumberByRegistrationNumber(String registrationNumber); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS401_S004_DocumentDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS401_S004_DocumentDetailPage.java new file mode 100644 index 0000000..7de0151 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS401_S004_DocumentDetailPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.cb.landing.DMS401_S004_DocumentDetailPage.NOTES_TEXT_AREA; + +@Wait(value = NOTES_TEXT_AREA, until = Until.VISIBLE) +public interface DMS401_S004_DocumentDetailPage extends WebFlow { + + String NOTES_TEXT_AREA = "DMS401_S004_M001"; + String SAVE_BUTTON = "DMS401_S004_B007"; + + @TypeInto(value = NOTES_TEXT_AREA) + DMS401_S004_DocumentDetailPage typeDocumentNotes(String notes); + + @Click(value = SAVE_BUTTON, andWait = @Wait(NOTES_TEXT_AREA)) + DMS401_S004_DocumentDetailPage clickSaveNotes(); + + @CheckElementPresent(NOTES_TEXT_AREA) + DMS401_S004_DocumentDetailPage checkElementNotes(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS402_S001_DocumentsSearchPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS402_S001_DocumentsSearchPage.java new file mode 100644 index 0000000..b02f1f9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS402_S001_DocumentsSearchPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.cb.landing.DMS402_S001_DocumentsSearchPage.SEARCH_INPUT; + +@Wait(value = SEARCH_INPUT, until = Until.VISIBLE) +public interface DMS402_S001_DocumentsSearchPage extends WebFlow { + + String SEARCH_INPUT = "DMS402_S001_E006"; + String OTHER_DOCUMENTS_RADIO_BUTTON_INPUT = "DMS402_S001_R010_5"; + String IC_RADIO_INPUT = "DMS402_S001_R005_3"; + String FIND_DOCUMENTS_BUTTON = "DMS402_S001_B001"; + + @Click(value = OTHER_DOCUMENTS_RADIO_BUTTON_INPUT) + DMS402_S001_DocumentsSearchPage checkOtherDocuments(); + + @Click(value = IC_RADIO_INPUT) + DMS402_S001_DocumentsSearchPage checkIC(); + + @TypeInto(SEARCH_INPUT) + DMS402_S001_DocumentsSearchPage typeDetailForDocument(String documentDetail); + + @Click(FIND_DOCUMENTS_BUTTON) + DMS401_S002_DocumentsPage clickSearchDocuments(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS403_S001_DocumentSaveErrorPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS403_S001_DocumentSaveErrorPage.java new file mode 100644 index 0000000..9246848 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS403_S001_DocumentSaveErrorPage.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.cb.landing.DMS403_S001_DocumentSaveErrorPage.ERROR_TEXT; + +@Wait(value = ERROR_TEXT) +public interface DMS403_S001_DocumentSaveErrorPage extends WebFlow { + String ERROR_TEXT = "DMS403_S001_L001"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS421_S001_DocumentScanPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS421_S001_DocumentScanPage.java new file mode 100644 index 0000000..05cb572 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS421_S001_DocumentScanPage.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = DMS421_S001_DocumentScanPage.DOCUMENT_TABLE, until = Until.VISIBLE) +public interface DMS421_S001_DocumentScanPage extends WebFlow { + String DOCUMENT_TABLE = "DMS421_S001_G001"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS424_S001_UploadFile.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS424_S001_UploadFile.java new file mode 100644 index 0000000..506f74b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DMS424_S001_UploadFile.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = DMS424_S001_UploadFile.SAVE_BUTTON, until = Until.VISIBLE) +public interface DMS424_S001_UploadFile extends WebFlow { + + String SAVE_BUTTON = "DMS424_S001_B009"; + String BACK_BUTTON = "//tr//button[@title='Zpět bez uložení']"; + String FILE_UPLOAD = "//input[contains(@class,'FileUpload')]"; + String NAME_INPUT = "DMS424_S001_E002"; + + @Click(value = SAVE_BUTTON) + DMS401_S002_DocumentsPage clickSaveButton(); + + @FileUpload(value = FILE_UPLOAD, by = Lookup.XPATH) + DMS424_S001_UploadFile uploadDocument(String docPath); + + @TypeInto(value = NAME_INPUT) + DMS424_S001_UploadFile typeDocumentName(String name); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DSB451_S001_SummaryOfTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DSB451_S001_SummaryOfTasks.java new file mode 100644 index 0000000..1ba7288 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/DSB451_S001_SummaryOfTasks.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = DSB451_S001_SummaryOfTasks.MAIN_LABEL) +public interface DSB451_S001_SummaryOfTasks extends WebFlow { + String MAIN_LABEL = "DSB451_S001_X001"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/EVD401_S001_SearchClientRecords.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/EVD401_S001_SearchClientRecords.java new file mode 100644 index 0000000..d625961 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/EVD401_S001_SearchClientRecords.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.cb.landing.EVD401_S001_SearchClientRecords.SEARCH_BUTTON; + +@Wait(value = SEARCH_BUTTON, until = Until.VISIBLE) +public interface EVD401_S001_SearchClientRecords extends WebFlow { + String SEARCH_BUTTON = "EVD401_S001_B001"; + String REGISTRATION_NUMBER_COMBO_BOX = "EVD401_S001_C001"; + + @Select(value = REGISTRATION_NUMBER_COMBO_BOX) + @Click(SEARCH_BUTTON) + EVD402_S001_DocumentRecordKeeping selectRegistrationNumberAndClick(String value); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/EVD402_S001_DocumentRecordKeeping.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/EVD402_S001_DocumentRecordKeeping.java new file mode 100644 index 0000000..81309ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/EVD402_S001_DocumentRecordKeeping.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.cb.landing.EVD402_S001_DocumentRecordKeeping.RETURN_BUTTON; + +@Wait(value = RETURN_BUTTON, until = Until.VISIBLE) +public interface EVD402_S001_DocumentRecordKeeping extends WebFlow { + String RETURN_BUTTON = "EVD402_S001_B012"; + String FIRST_RECORD_REGISTRATION_NUMBER = "//*[@id='EVD402_S001_G002_UfoTable']//td[text() = '%s']"; + + @Wait(value = FIRST_RECORD_REGISTRATION_NUMBER, isStringDynamicXpath = true, by = Lookup.XPATH) + void checkFirstRecordRegistrationNumber(String expectedRegistrationNumber); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/EVD420_S001_RecordsOfBillGuarantors.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/EVD420_S001_RecordsOfBillGuarantors.java new file mode 100644 index 0000000..8b0a1b5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/EVD420_S001_RecordsOfBillGuarantors.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = EVD420_S001_RecordsOfBillGuarantors.SEARCH_BUTTON, until = Until.VISIBLE) +public interface EVD420_S001_RecordsOfBillGuarantors extends WebFlow { + String SEARCH_BUTTON = "EVD420_S001_B001"; + String RESULT_TABLE = "EVD420_S001_Y004_innerPanel"; + + @Click(SEARCH_BUTTON) + EVD420_S001_RecordsOfBillGuarantors clickSearchButton(); + + @CheckElementPresent(RESULT_TABLE) + EVD420_S001_RecordsOfBillGuarantors checkResultTablePresent(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/IKL402_S001_ClientPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/IKL402_S001_ClientPage.java new file mode 100644 index 0000000..4d35f62 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/IKL402_S001_ClientPage.java @@ -0,0 +1,193 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.JAN451_S001_FinancialSheetsSignPost; +import cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.KOM461_S001_Rating; +import cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.PRC401_S002_Pricing; +import cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.VST403_S001_Relations; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.cb.landing.IKL402_S001_ClientPage.RELATIONS_BUTTON; + +@Wait(value = RELATIONS_BUTTON, until = Until.VISIBLE) +public interface IKL402_S001_ClientPage extends WebFlow, StoreAccessor { + + String INVOLVEMENT_CALCULATION_TIME_KEY = "INVOLVEMENT_CALCULATION_TIME"; + String FULL_NAME_KEY = "FULL_NAME"; + String FULL_NAME_DIV = "XXX408_T001_L052"; + String RETURN_TO_SEARCH_BUTTON = "XXX408_T001_B040"; + String TASKS_BUTTON = "IKL402_S001_S001"; + String CLIENT_CARD_BUTTON = "IKL402_S001_I001"; + String RELATIONS_BUTTON = "IKL402_S001_I031"; + String FINANCIAL_SHEETS_BUTTON = "IKL402_S001_I002"; + String DOCUMENTS_BUTTON = "IKL402_S001_I005"; + String PRICING_BUTTON = "IKL402_S001_S006"; + String COLLATERAL_BUTTON = "IKL402_S001_S008"; + String CHECKLISTS_BUTTON = "IKL402_S001_B018"; + String CLIENT_RECORD_BUTTON = "IKL402_S001_B019"; + String RATING_LGD_BUTTON = "IKL402_S001_B046"; + String ALL_TRADES_BUTTON = "IKL402_S001_B029"; + String IN_PROGRESS_TRADES_INPUT = "IKL402_S001_G001-0"; + String BLACK_LISTS_RELEVANT_PERSONS_BUTTON = "IKL402_S001_B030"; + String CHAT_BUTTON = "IKL402_S001_B035"; + String LIST_PROPOSALS_INPUT = "IKL402_S001_G001"; + String ICO_LABEL = "XXX408_T001_L091"; + String CIF_LABEL = "XXX408_T001_L020"; + String DETAIL_CLIENT_INFO_BUTTON = "XXX408_T001_B018"; + String CLOSE_DETAIL_CLIENT_INFO_BUTTON = "XXX408_T001_B021"; + String OM_DIV = "XXX408_T001_L102"; + String CLIENTS_BANKER_DIV = "XXX408_T001_L032"; + String ADMINISTRATOR_DIV = "XXX408_T001_L099"; + String CLIENT_ID_LABEL = "XXX408_T001_L075"; + String RC_LABEL = "XXX408_T001_L089"; + String NEW_PROPOSAL = "IKL402_S001_B023"; + String CALCULATE_BUTTON = "IKL402_S001_B006"; + String PROPOSE_ELEMENT = "//table[@id='IKL402_S001_G001_UfoTable']//td[3]"; + String REG_NUM_ELEMENT = "//table[@id='IKL402_S001_G001_UfoTable']//td[2]"; + String ACCOUNT_NUM_ELEMENT = "//table[@id='IKL402_S001_G004_UfoTable']//td[4]"; + String CALCULATION_TIME_DIV = "IKL402_S001_L023"; + String KO_CRITERIA = "IKL402_S001_I024"; + + @Click(RETURN_TO_SEARCH_BUTTON) + SME401_S001_SearchPage returnToSearchPage(); + + @CheckElementContent(RC_LABEL) + IKL402_S001_ClientPage checkRc(String rc); + + @CheckElementContent(CLIENT_ID_LABEL) + IKL402_S001_ClientPage checkClientId(String clientId); + + @CheckElementContent(ICO_LABEL) + IKL402_S001_ClientPage checkIco(String ico); + + @CheckElementContent(CIF_LABEL) + IKL402_S001_ClientPage checkCif(String cif); + + @CheckElementContent(value = ACCOUNT_NUM_ELEMENT, by = Lookup.XPATH) + IKL402_S001_ClientPage checkAccNum(String accNum); + + @CheckElementContent(value = REG_NUM_ELEMENT, by = Lookup.XPATH) + IKL402_S001_ClientPage checkRegNum(String regNum); + + @CheckElementContent(value = PROPOSE_ELEMENT, by = Lookup.XPATH) + IKL402_S001_ClientPage checkProposalId(String proposalId); + + @Click(IN_PROGRESS_TRADES_INPUT) + IKL402_S001_ClientPage checkProduct(); + + @Click(CLIENT_CARD_BUTTON) + ZKL421_S001_ClientCardPage clickClientCard(); + + @Click(ALL_TRADES_BUTTON) + IKL406_S001_AllTradesPage clickAllTrades(); + + @Click(BLACK_LISTS_RELEVANT_PERSONS_BUTTON) + SOU401_S001_RelevantPersonsBlackListsPage clickRelevantPersonsBlackLists(); + + @Click(CHAT_BUTTON) + CHT401_S001_ChatPage clickChat(); + + @Click(value = DETAIL_CLIENT_INFO_BUTTON, andWait = @Wait(value = OM_DIV, until = Until.VISIBLE)) + IKL402_S001_ClientPage clickDetailedClientInfo(); + + @Click(CLOSE_DETAIL_CLIENT_INFO_BUTTON) + IKL402_S001_ClientPage clickCloseDetailedClientInfo(); + + @CustomAction + default IKL402_S001_ClientPage checkOMIsNotEmpty() { + UfoEndpoint ufoEndpoint = getEndpoint(UfoEndpoint.class); + String omText = ufoEndpoint.getText(OM_DIV); + Assertions.assertNotEquals("", omText); + return null; + } + + @CustomAction + default IKL402_S001_ClientPage checkClientsBankerIsNotEmpty() { + UfoEndpoint ufoEndpoint = getEndpoint(UfoEndpoint.class); + String clientsBanker = ufoEndpoint.getText(CLIENTS_BANKER_DIV); + Assertions.assertNotEquals("", clientsBanker); + return null; + } + + @CustomAction + default IKL402_S001_ClientPage checkAdministratorIsNotEmpty() { + UfoEndpoint ufoEndpoint = getEndpoint(UfoEndpoint.class); + String administratorText = ufoEndpoint.getText(ADMINISTRATOR_DIV); + Assertions.assertNotEquals("", administratorText); + return null; + } + + @Click(DOCUMENTS_BUTTON) + DMS401_S002_DocumentsPage clickDocuments(); + + @CheckElementPresent(LIST_PROPOSALS_INPUT) + IKL402_S001_ClientPage checkElementListProposals(); + + @Click(NEW_PROPOSAL) + AKV401_S001_Opportunities clickNewProposal(); + + @Click(CALCULATE_BUTTON) + IKL402_S010_WaitingForCalculationPage calculateInvolvement(); + + @Click(RELATIONS_BUTTON) + VST403_S001_Relations clickRelationsButton(); + + @Click(FINANCIAL_SHEETS_BUTTON) + JAN451_S001_FinancialSheetsSignPost clickFinancialSheets(); + + @Click(TASKS_BUTTON) + DSB451_S001_SummaryOfTasks clickTasks(); + + @Click(PRICING_BUTTON) + PRC401_S002_Pricing clickPricing(); + + @Click(COLLATERAL_BUTTON) + ZST419_S001_Collateral clickCollateral(); + + @Click(CLIENT_RECORD_BUTTON) + EVD401_S001_SearchClientRecords clickClientRecord(); + + @Click(CHECKLISTS_BUTTON) + CHL405_S001_Checklists clickChecklists(); + + @Click(RATING_LGD_BUTTON) + KOM461_S001_Rating clickRatingLgd(); + + @StoreElementContent(storeKey = INVOLVEMENT_CALCULATION_TIME_KEY, value = CALCULATION_TIME_DIV) + IKL402_S001_ClientPage storeLastInvolvementCalculationTime(); + + @StoreElementContent(storeKey = FULL_NAME_KEY, value = FULL_NAME_DIV) + IKL402_S001_ClientPage storeClientFullName(); + + @CustomAction + default IKL402_S001_ClientPage checkChangeOfCalculatedTime(String previousCalculatedTime) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String calculatedTime = endpoint.getText(CALCULATION_TIME_DIV); + if (calculatedTime.equals(previousCalculatedTime)) { + throw new HarnessException("Calculated time did not change"); + } + return null; + } + + @CustomAction + default IKL402_S001_ClientPage checkCalculatedTimeNotEmpty() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String calculatedTime = endpoint.getText(CALCULATION_TIME_DIV); + Assertions.assertNotEquals("", calculatedTime); + return null; + } + + @Click(KO_CRITERIA) + IKL402_S001_ClientPage clickKOCriteria(); + + @CustomAction + default AUT402_S001_KOCriteriaListPage switchToOtherWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.switchToOtherWindow(15, 2); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/IKL402_S010_WaitingForCalculationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/IKL402_S010_WaitingForCalculationPage.java new file mode 100644 index 0000000..5a729ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/IKL402_S010_WaitingForCalculationPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.cb.landing.IKL402_S010_WaitingForCalculationPage.WARNING_LABEL; + +@Wait(value = WARNING_LABEL) +public interface IKL402_S010_WaitingForCalculationPage extends WebFlow { + String WARNING_LABEL = "IKL402_S010_L001"; + String CALCULATING_LOADER_DIV = "IKL402_S010_X002"; + + @Wait(value = CALCULATING_LOADER_DIV, waitSecondsForElement = 180, by = Lookup.ID, until = Until.GONE) + IKL402_S001_ClientPage waitForCalculation(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/IKL406_S001_AllTradesPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/IKL406_S001_AllTradesPage.java new file mode 100644 index 0000000..805a9c2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/IKL406_S001_AllTradesPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.cb.landing.IKL406_S001_AllTradesPage.BACK_BUTTON; + +@Wait(value = BACK_BUTTON, until = Until.VISIBLE) +public interface IKL406_S001_AllTradesPage extends WebFlow { + + String BACK_BUTTON = "IKL406_S001_B001"; + String TRADES_LIST_INPUT = "IKL406_S001_G001"; + + @Click(BACK_BUTTON) + IKL402_S001_ClientPage clickBack(); + + @CheckElementPresent(TRADES_LIST_INPUT) + IKL406_S001_AllTradesPage checkElementListOfTrades(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KAC402_S001_EventCalendarPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KAC402_S001_EventCalendarPage.java new file mode 100644 index 0000000..c482380 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KAC402_S001_EventCalendarPage.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = KAC402_S001_EventCalendarPage.EDIT_BUTTON, until = Until.VISIBLE) +public interface KAC402_S001_EventCalendarPage extends WebFlow { + String EDIT_BUTTON = "KAC402_S001_B001"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM401_S001_ProposalParameters.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM401_S001_ProposalParameters.java new file mode 100644 index 0000000..40cbe41 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM401_S001_ProposalParameters.java @@ -0,0 +1,182 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = KOM401_S001_ProposalParameters.AMOUNT_FIELD, until = Until.VISIBLE) +public interface KOM401_S001_ProposalParameters extends WebFlow, StoreAccessor { + String SIGNPOST = "KOM401_S001_S002"; + String AMOUNT_FIELD = "KOM401_S001_E005"; + String CHARACTER_TYPE = "KOM401_S001_C005"; + String PROPOSAL_TYPE = "KOM401_S001_C001"; + String LOAN_TYPE = "KOM401_S001_C003"; + String PRODUCT_TYPE = "KOM401_S001_C011"; + String LOAN_PURPOSE = "KOM401_S001_C007"; + String SIGN_DATE = "KOM401_S001_E004"; + String LAST_DRAWING_DATE = "KOM401_S001_E008"; + String SUPPORT = "KOM401_S001_C006"; + String INSURANCE = "KOM401_S001_C009"; + String RWA_FLAG = "KOM401_S001_C017"; + String COMMITTED = "KOM401_S001_C010"; + String MATURITY = "KOM401_S001_C012"; + + String SAVE_BUTTON = "KOM401_S001_B001"; + + String SELECT_OPTION = "//select/option[text()='%s']"; + String SELECT_OPTION_PRODUCT_TYPE = "//select[@id='" + PRODUCT_TYPE + "']/option[text()='%s']"; + String RELATIONS = "//td[contains(text(),'Vazby')]"; + String CLIENT = "//td[contains(text(),'Klient žadatel')]"; + String FV = "//td[contains(text(),'FV a přiřazení souborů výkazů')]"; + String RATING = "//td[contains(text(),'Rating a LGD')]"; + String KO = "//td[contains(text(),'KO kritéria')]"; + String CRU = "//td[contains(text(),'CRÚ')]"; + String MODELATION = "//td[contains(text(),'Zajištění - navrhované/schválené')]"; + String PLEDGE_BONDS = "//td[contains(text(),'Navrhovaní avalisté a zástavové vazby')]"; + String BLACK_LISTS = "//td[contains(text(),'Black listy a souhlasy GDPR')]"; + String PRICING = "//td[contains(text(),'Pricing a splátkový kalendář')]"; + String NRKI_BRKI = "//td[contains(text(),'NRKI/BRKI')]"; + String DESCRIPTION = "//td[contains(text(),'Popis transakce')]"; + String BASIC_INFORMATION = "//td[contains(text(),'Základní info o firmě/Zemědělec')]"; + String RESOURCES_MONETA = "//td[contains(text(),'Zdroje MONETA')]"; + String RESOURCES = "//td[contains(text(),'Cizí zdroje')]"; + String SALES_EMPLOYEE = "//td[contains(text(),'Struktura tržeb a zaměstnanci')]"; + String RISK = "//td[contains(text(),'Rizika')]"; + String CLIENT_ACCOUNTS = "//td[contains(text(),'Účty klienta')]"; + String COVENANTS = "//td[contains(text(),'Kovenanty')]"; + String CONDITIONS_FULFILMENT = "//td[contains(text(),'Plnění podmínek')]"; + String DEAL_CONDITIONS = "//td[contains(text(),'Podmínky obchodu')]"; + String CHECKLISTS = "//td[contains(text(),'Checklist Sales/Risk')]"; + String SEND_PROPOSAL = "//td[contains(text(),'Odeslání návrhu')]"; + String NAVIGATION_PANEL = "KOM401_S001_J001"; + + @Click(SAVE_BUTTON) + KOM481_S001_ProposalList clickSave(); + + @Click(SAVE_BUTTON) + KOM402_S001_ProposalSignpost clickSaveSignPost(); + + @Click(value = SIGNPOST, andWait = @Wait(value = NAVIGATION_PANEL, until = Until.VISIBLE)) + KOM401_S001_ProposalParameters clickSignPost(); + + @Click(value = RELATIONS, by = Lookup.XPATH) + VST403_S001_Relations clickRelations(); + + @Click(value = CLIENT, by = Lookup.XPATH) + ZKL421_S001_ClientCard clickClient(); + + @Click(value = FV, by = Lookup.XPATH) + JAN451_S001_FinancialSheetsSignPost clickFv(); + + @Click(value = RATING, by = Lookup.XPATH) + KOM461_S001_Rating clickRating(); + + @Click(value = CRU, by = Lookup.XPATH) + DEL401_S001_Cru clickCru(); + + @Click(value = MODELATION, by = Lookup.XPATH) + MOD402_S001_Modelation clickModelation(); + + @Click(value = PLEDGE_BONDS, by = Lookup.XPATH) + VST407_S001_PledgeBonds clickPledgeBonds(); + + @Click(value = BLACK_LISTS, by = Lookup.XPATH) + SOU401_S001_BlackLists clickBlackLists(); + + @Click(value = PRICING, by = Lookup.XPATH) + PRC401_S002_Pricing clickPricing(); + + @Click(value = NRKI_BRKI, by = Lookup.XPATH) + ECB401_S001_Registers clickNrkiBrki(); + + @Click(value = DESCRIPTION, by = Lookup.XPATH) + KOM424_S001_TransactionDescriptionPage clickDescription(); + + @Click(value = BASIC_INFORMATION, by = Lookup.XPATH) + KOM425_S001_BasicCompanyInformation clickBasicInformation(); + + @Click(value = RESOURCES_MONETA, by = Lookup.XPATH) + KOM446_S001_ResourcesMoneta clickResourcesMoneta(); + + @Click(value = RESOURCES, by = Lookup.XPATH) + KOM444_S002_ForeignResources clickResources(); + + @Click(value = SALES_EMPLOYEE, by = Lookup.XPATH) + KOM443_S004_SalesEmployee clickSalesEmployee(); + + @Click(value = RISK, by = Lookup.XPATH) + KOM414_S017_Risk clickRisk(); + + @Click(value = CLIENT_ACCOUNTS, by = Lookup.XPATH) + KOM462_S001_ClientAccounts clickClientAccounts(); + + @Click(value = COVENANTS, by = Lookup.XPATH) + KOV401_S001_Kovenanty clickCovenants(); + + @Click(value = CONDITIONS_FULFILMENT, by = Lookup.XPATH) + POD405_S001_ConditionsFulfilment clickConditionsFulfilment(); + + @Click(value = DEAL_CONDITIONS, by = Lookup.XPATH) + POD406_S001_DealConditions clickDealConditions(); + + @Click(value = CHECKLISTS, by = Lookup.XPATH) + KOM490_S001_Checklists clickChecklists(); + + @Click(value = SEND_PROPOSAL, by = Lookup.XPATH) + KOM419_S001_SendProposal clickSendProposal(); + + @TypeInto(value = AMOUNT_FIELD, clear = true) + KOM401_S001_ProposalParameters typeAmount(String amount); + + @Wait(value = SELECT_OPTION, by = Lookup.XPATH, isStringDynamicXpath = true) + @Select(CHARACTER_TYPE) + KOM401_S001_ProposalParameters selectCharacterType(String type); + + @Wait(value = SELECT_OPTION, by = Lookup.XPATH, isStringDynamicXpath = true) + @Select(PROPOSAL_TYPE) + KOM401_S001_ProposalParameters selectProposalType(String type); + + @Wait(value = SELECT_OPTION, by = Lookup.XPATH, isStringDynamicXpath = true) + @Select(LOAN_TYPE) + KOM401_S001_ProposalParameters selectLoanType(String type); + + @Wait(value = SELECT_OPTION_PRODUCT_TYPE, by = Lookup.XPATH, isStringDynamicXpath = true) + @Select(PRODUCT_TYPE) + KOM401_S001_ProposalParameters selectProductType(String type); + + @Wait(value = SELECT_OPTION, by = Lookup.XPATH, isStringDynamicXpath = true) + @Select(LOAN_PURPOSE) + KOM401_S001_ProposalParameters selectLoanPurpose(String type); + + @TypeInto(SIGN_DATE) + KOM401_S001_ProposalParameters typeSignDate(String date); + + @TypeInto(LAST_DRAWING_DATE) + KOM401_S001_ProposalParameters typeLastDrawingDate(String date); + + @Wait(value = SELECT_OPTION, by = Lookup.XPATH, isStringDynamicXpath = true) + @Select(SUPPORT) + KOM401_S001_ProposalParameters selectSupport(String type); + + @Wait(value = SELECT_OPTION, by = Lookup.XPATH, isStringDynamicXpath = true) + @Select(INSURANCE) + KOM401_S001_ProposalParameters selectInsurance(String type); + + @Wait(value = SELECT_OPTION, by = Lookup.XPATH, isStringDynamicXpath = true) + @Select(RWA_FLAG) + KOM401_S001_ProposalParameters selectRwaFlag(String type); + + @CustomAction + default KOM401_S001_ProposalParameters selectCommitted(String type) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, Lookup.XPATH, Until.VISIBLE, String.format(SELECT_OPTION, type)); + endpoint.scrollIntoView(COMMITTED); + endpoint.selectByVisibleText(COMMITTED, type); + return null; + } + + @Wait(value = SELECT_OPTION, by = Lookup.XPATH, isStringDynamicXpath = true) + @Select(MATURITY) + KOM401_S001_ProposalParameters selectMaturity(String type); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM402_S001_ProposalSignpost.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM402_S001_ProposalSignpost.java new file mode 100644 index 0000000..c9c89dc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM402_S001_ProposalSignpost.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = KOM402_S001_ProposalSignpost.DELETE_PROPOSAL, until = Until.VISIBLE) +public interface KOM402_S001_ProposalSignpost extends WebFlow, StoreAccessor { + String DELETE_PROPOSAL = "KOM402_S001_B031"; + String ALERT_TEXT = "Chystáte se nenávratně zrušit rozpracovaný návrh! Opravdu chcete pokračovat? (OK - Ano, Cancel - Ne)"; + String PROPOSAL_PART_XPATH = "//table[@id='KOM402_S001_G001_UfoTable']//td[text()='%s']"; + + @Click(value = PROPOSAL_PART_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KOM401_S001_ProposalParameters clickProposalPart(String proposalPart); + + @Click(DELETE_PROPOSAL) + @AcceptAlert(waitSecondsForAlert = 2, expectedAlertText = ALERT_TEXT) + UKO401_S004_DeleteWarning clickDeleteAndConfirm(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM480_S001_DealProposal.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM480_S001_DealProposal.java new file mode 100644 index 0000000..0d3b4df --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM480_S001_DealProposal.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.dsl.ufo.cb.landing.proposals.Proposal; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = KOM480_S001_DealProposal.OK_BUTTON, until = Until.VISIBLE) +public interface KOM480_S001_DealProposal extends WebFlow, StoreAccessor { + String PROPOSAL_ID = "KOM480_S001_L001"; + String OK_BUTTON = "KOM480_S001_B001"; + + @Click(OK_BUTTON) + KOM402_S001_ProposalSignpost clickOkButton(); + + @CustomAction + default KOM480_S001_DealProposal saveProposalId(Proposal proposal) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + proposal.setProposalId(endpoint.getText(PROPOSAL_ID)); + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM481_S001_ProposalList.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM481_S001_ProposalList.java new file mode 100644 index 0000000..4154b24 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/KOM481_S001_ProposalList.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = KOM481_S001_ProposalList.CONTINUE_BUTTON, until = Until.VISIBLE) +public interface KOM481_S001_ProposalList extends WebFlow, StoreAccessor { + String CONTINUE_BUTTON = "KOM481_S001_B002"; + + @Click(CONTINUE_BUTTON) + KOM480_S001_DealProposal clickContinueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/NAP401_S001_UserHelp.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/NAP401_S001_UserHelp.java new file mode 100644 index 0000000..c6a81ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/NAP401_S001_UserHelp.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = NAP401_S001_UserHelp.SEND_BUTTON, until = Until.VISIBLE) +public interface NAP401_S001_UserHelp extends WebFlow { + String SEND_BUTTON = "NAP401_S001_B001"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/PRC402_S001_PricingApproval.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/PRC402_S001_PricingApproval.java new file mode 100644 index 0000000..e64e269 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/PRC402_S001_PricingApproval.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = PRC402_S001_PricingApproval.MAIN_LABEL) +public interface PRC402_S001_PricingApproval extends WebFlow { + String MAIN_LABEL = "PRC402_S001_X002"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SFC401_S001_CreateClientToSalesForce.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SFC401_S001_CreateClientToSalesForce.java new file mode 100644 index 0000000..082444a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SFC401_S001_CreateClientToSalesForce.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = SFC401_S001_CreateClientToSalesForce.CREATE_BUTTON, until = Until.VISIBLE) +public interface SFC401_S001_CreateClientToSalesForce extends WebFlow { + String CREATE_BUTTON = "SFC401_S001_B007"; + String CLIENT_TYPE = "SFC401_S001_C001"; + String SELECT_OPTION = "//select/option[text()='%s']"; + String ICO_INPUT = "SFC401_S001_E001"; + String SUBJECT_NAME_INPUT = "SFC401_S001_E003"; + String STREET_INPUT = "SFC401_S001_E004"; + String STREET_NUMBER_INPUT = "SFC401_S001_E011"; + String CITY_NAME_INPUT = "SFC401_S001_E002"; + String DISTRICT_INPUT = "SFC401_S001_E005"; + String CITY_PART_INPUT = "SFC401_S001_E006"; + String ZIP_CODE_INPUT = "SFC401_S001_E007"; + String REGION_INPUT = "SFC401_S001_E008"; + + + @Wait(value = SELECT_OPTION, by = Lookup.XPATH, isStringDynamicXpath = true) + @Select(CLIENT_TYPE) + SFC401_S001_CreateClientToSalesForce selectClientType(String type); + + @TypeInto(ICO_INPUT) + SFC401_S001_CreateClientToSalesForce fillIco(String ico); + + @TypeInto(SUBJECT_NAME_INPUT) + SFC401_S001_CreateClientToSalesForce fillSubjectName(String name); + + @TypeInto(STREET_INPUT) + SFC401_S001_CreateClientToSalesForce fillStreetName(String streetName); + + @TypeInto(STREET_NUMBER_INPUT) + SFC401_S001_CreateClientToSalesForce fillStreetNumber(String streetNumber); + + @TypeInto(CITY_NAME_INPUT) + SFC401_S001_CreateClientToSalesForce fillCityName(String cityName); + + @TypeInto(DISTRICT_INPUT) + SFC401_S001_CreateClientToSalesForce fillDistrict(String district); + + @TypeInto(CITY_PART_INPUT) + SFC401_S001_CreateClientToSalesForce fillCityPart(String cityPart); + + @TypeInto(ZIP_CODE_INPUT) + SFC401_S001_CreateClientToSalesForce fillZipCode(String zipCode); + + @TypeInto(REGION_INPUT) + SFC401_S001_CreateClientToSalesForce fillRegion(String region); + + @Click(CREATE_BUTTON) + CHY401_S001_ClientCreatedToSalesForce clickCreate(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SME401_S001_SearchPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SME401_S001_SearchPage.java new file mode 100644 index 0000000..f66c065 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SME401_S001_SearchPage.java @@ -0,0 +1,67 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.cb.landing.SME401_S001_SearchPage.TYPE_CLIENT_INPUT; + +@Wait(value = TYPE_CLIENT_INPUT, until = Until.VISIBLE) +public interface SME401_S001_SearchPage extends WebFlow { + + String SEARCH_HISTORY_FIRST_CLIENT_ICO_KEY = "SEARCH_HISTORY_FIRST_CLIENT_ICO"; + String SEARCH_HISTORY_CLIENT_ICO_KEY = "SEARCH_HISTORY_CLIENT_ICO"; + String TYPE_CLIENT_INPUT = "SME401_S001_E001"; + String SEARCH_BUTTON = "SME401_S001_B001"; + String GO_TO_DEAL_CHOICE = "SME401_S001_R001_2"; + String ICO_CHOICE = "SME401_S001_R002_1"; + String NAME_CHOICE = "SME401_S001_R002_2"; + String ACCOUNT_NUMBER_CHOICE = "SME401_S001_R002_3"; + String REG_NUM_CHOICE = "SME401_S001_R002_4"; + String CIF_CHOICE = "SME401_S001_R002_6"; + String ID_CLIENT_CHOICE = "SME401_S001_R002_7"; + String ID_PROPOSAL_CHOICE = "SME401_S001_R002_8"; + String RC_CHOICE = "SME401_S001_R002_5"; + String SEARCH_HISTORY_FIRST_CLIENT_BUTTON = "SME401_S001_G002-0"; + String FIRST_SEARCH_HiSTORY_CLIENT_BY_LEGAL_TYPE_XPATH = "(//td[text()='%s'])[1]/..//button"; + String FIRST_SEARCH_HISTORY_CLIENT_BY_LEGAL_TYPE_ICO_XPATH = "(//td[text()='%s'])[1]/../td[1]"; + String SEARCH_HISTORY_FIRST_CLIENT_ICO_XPATH = "//table[@id='SME401_S001_G002_UfoTable']//tr[1]/td[1]"; + + @TypeInto(TYPE_CLIENT_INPUT) + SME401_S001_SearchPage typeDetailForSearch(String detail); + + @Click(SEARCH_BUTTON) + IKL402_S001_ClientPage clickSearch(); + + @Click(RC_CHOICE) + SME401_S001_SearchPage pickRc(); + + @Click(ICO_CHOICE) + SME401_S001_SearchPage pickIco(); + + @Click(CIF_CHOICE) + SME401_S001_SearchPage pickCif(); + + @Click(ID_PROPOSAL_CHOICE) + SME401_S001_SearchPage pickProposalId(); + + @Click(ACCOUNT_NUMBER_CHOICE) + SME401_S001_SearchPage pickAccountNumber(); + + @Click(ID_CLIENT_CHOICE) + SME401_S001_SearchPage pickClientId(); + + @Click(REG_NUM_CHOICE) + SME401_S001_SearchPage pickRegNum(); + + @Click(SEARCH_HISTORY_FIRST_CLIENT_BUTTON) + IKL402_S001_ClientPage clickFirstClientInSearchHistory(); + + @Click(value = FIRST_SEARCH_HiSTORY_CLIENT_BY_LEGAL_TYPE_XPATH, isStringDynamicXpath = true, by = Lookup.XPATH) + IKL402_S001_ClientPage clickFirstClientInSearchHistoryByLegalType(String legalType); + + @StoreElementContent(storeKey = SEARCH_HISTORY_FIRST_CLIENT_ICO_KEY, value = SEARCH_HISTORY_FIRST_CLIENT_ICO_XPATH, by = Lookup.XPATH) + SME401_S001_SearchPage storeSearchHistoryFirstClientIco(); + + @StoreElementContent(storeKey = SEARCH_HISTORY_CLIENT_ICO_KEY, value = FIRST_SEARCH_HISTORY_CLIENT_BY_LEGAL_TYPE_ICO_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + SME401_S001_SearchPage storeIcoOfFirstClientInSearchHistoryByLegalType(String legalType); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SME410_S001_TemplatesPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SME410_S001_TemplatesPage.java new file mode 100644 index 0000000..8a918df --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SME410_S001_TemplatesPage.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {SME410_S001_TemplatesPage.FIRST_LINK, SME410_S001_TemplatesPage.SECOND_LINK}) +public interface SME410_S001_TemplatesPage extends WebFlow { + String FIRST_LINK = "SME410_S001_B001"; + String SECOND_LINK = "SME410_S001_B006"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SME451_S001_UfoCbLandingPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SME451_S001_UfoCbLandingPage.java new file mode 100644 index 0000000..08b1cad --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SME451_S001_UfoCbLandingPage.java @@ -0,0 +1,90 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +@Wait(value = {SME451_S001_UfoCbLandingPage.SEARCH_LINK, SME451_S001_UfoCbLandingPage.DOCUMENTS_SEARCH_PAGE}, until = Until.VISIBLE) +public interface SME451_S001_UfoCbLandingPage extends WebFlow, StoreAccessor { + + String BILL_GUARANTOR_LINK = "SME451_S001_I037"; + String COLLATERAL_LINK = "SME451_S001_I011"; + String TASKS_LINK = "SME451_S001_I010"; + String SEARCH_LINK = "SME451_S001_I041"; + String DOCUMENTS_SEARCH_PAGE = "SME451_S001_I009"; + String PRICING_APPROVAL_LINK = "SME451_S001_I020"; + String PROCESS_BUTTON = "SME451_S001_B003"; + String ROLE = "SME451_S001_C001"; + String USER_HELP_LINK = "SME451_S001_I018"; + String CREATE_CLIENT_TO_SALESFORCE_LINK = "SME451_S001_I019"; + String SUPERVISION_LINK = "SME451_S001_I025"; + String DOCUMENT_SCAN_LINK = "SME451_S001_I028"; + String CASH_POOLING_LINK = "SME451_S001_I031"; + String TEMPLATES_LINK = "SME451_S001_I038"; + String EVENT_CALENDAR_LINK = "SME451_S001_I034"; + String SIGNPOST_LINK = "SME451_S001_I032"; + String PROPOSAL_XPATH = "//*[@id='SME451_S001_G001_UfoTable']/tbody//td[text()='%s']"; + + @Click(BILL_GUARANTOR_LINK) + EVD420_S001_RecordsOfBillGuarantors clickBillGuarantorLink(); + + @Click(SEARCH_LINK) + SME401_S001_SearchPage clickSearchLink(); + + @Click(DOCUMENTS_SEARCH_PAGE) + DMS402_S001_DocumentsSearchPage clickDocumentsLink(); + + @Click(COLLATERAL_LINK) + ZST425_S001_SearchCollateral clickCollateralLink(); + + @Click(TASKS_LINK) + DSB451_S001_SummaryOfTasks clickTasksLink(); + + @Click(PRICING_APPROVAL_LINK) + PRC402_S001_PricingApproval clickPricingApprovalLink(); + + @Click(PROCESS_BUTTON) + KOM401_S001_ProposalParameters clickProcessButton(); + + @Click(USER_HELP_LINK) + NAP401_S001_UserHelp clickUserHelpLink(); + + @Click(SUPERVISION_LINK) + SPV405_S002_SupervisionPage clickSupervisionLink(); + + @Click(DOCUMENT_SCAN_LINK) + DMS421_S001_DocumentScanPage clickDocumentScanLink(); + + @Click(CASH_POOLING_LINK) + CPL401_S001_CashPoolingPage clickCashPoolingLink(); + + @Click(TEMPLATES_LINK) + SME410_S001_TemplatesPage clickTemplatesLink(); + + @Click(EVENT_CALENDAR_LINK) + KAC402_S001_EventCalendarPage clickEventCalendarLink(); + + @Click(SIGNPOST_LINK) + SME451_S001_UfoCbLandingPage clickSignPostLink(); + + @Click(CREATE_CLIENT_TO_SALESFORCE_LINK) + SFC401_S001_CreateClientToSalesForce clickCreateToSalesForceLink(); + + @Click(value = PROPOSAL_XPATH, by = Lookup.XPATH, isStringDynamicXpath = true) + SME451_S001_UfoCbLandingPage selectProposal(String proposalId); + + @CustomAction + default SME451_S001_UfoCbLandingPage switchToSignPostReportsWindowAndCheckUrl(String expectedUrl) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.switchToWindowByTitle("Sales Report | MONETA Money Bank"); + String urlFromPage = endpoint.getCurrentUrl(); + log("Url from report page is " + urlFromPage); + Assertions.assertEquals(expectedUrl, urlFromPage, "You expected URL is " + expectedUrl + " active page URL is " + urlFromPage); + return null; + } + + @Click(value = PROPOSAL_XPATH + "[1]", by = Lookup.XPATH, isStringDynamicXpath = true) + SME451_S001_UfoCbLandingPage clickFirstProposalByState(String state); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SOU401_S001_RelevantPersonsBlackListsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SOU401_S001_RelevantPersonsBlackListsPage.java new file mode 100644 index 0000000..4a0ea98 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SOU401_S001_RelevantPersonsBlackListsPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.cb.landing.SOU401_S001_RelevantPersonsBlackListsPage.BACK_BUTTON; +import static cz.moneta.test.dsl.ufo.cb.landing.SOU401_S001_RelevantPersonsBlackListsPage.SEARCH_INPUT; + +@Wait(value = {SEARCH_INPUT, BACK_BUTTON}, until = Until.VISIBLE) +public interface SOU401_S001_RelevantPersonsBlackListsPage extends WebFlow { + + String SEARCH_INPUT = "SOU401_S001_G001"; + String BACK_BUTTON = "SOU401_S001_B001"; + + @Click(BACK_BUTTON) + IKL402_S001_ClientPage clickBackToClientCard(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SPV405_S002_SupervisionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SPV405_S002_SupervisionPage.java new file mode 100644 index 0000000..8ac09fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/SPV405_S002_SupervisionPage.java @@ -0,0 +1,10 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = SPV405_S002_SupervisionPage.NOTE_BUTTON, until = Until.VISIBLE) +public interface SPV405_S002_SupervisionPage extends WebFlow { + String NOTE_BUTTON = "SPV405_S002_B009"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/UKO401_S003_Delete.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/UKO401_S003_Delete.java new file mode 100644 index 0000000..7708b9b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/UKO401_S003_Delete.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = UKO401_S003_Delete.WHO, until = Until.VISIBLE) +public interface UKO401_S003_Delete extends WebFlow { + String WHO = "UKO401_S003_C003"; + String REASON = "UKO401_S003_C002"; + String DELETE_BUTTON = "UKO401_S003_B001"; + + @Select(WHO) + UKO401_S003_Delete selectWho(String data); + + @Select(REASON) + UKO401_S003_Delete selectReason(String data); + + @Click(DELETE_BUTTON) + SME451_S001_UfoCbLandingPage clickDelete(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/UKO401_S004_DeleteWarning.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/UKO401_S004_DeleteWarning.java new file mode 100644 index 0000000..fe45fc5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/UKO401_S004_DeleteWarning.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = UKO401_S004_DeleteWarning.YES_BUTTON, until = Until.VISIBLE) +public interface UKO401_S004_DeleteWarning extends WebFlow { + String YES_BUTTON = "UKO401_S004_B016"; + + @Click(YES_BUTTON) + UKO401_S003_Delete clickYes(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/ZKL421_S001_ClientCardPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/ZKL421_S001_ClientCardPage.java new file mode 100644 index 0000000..2a00385 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/ZKL421_S001_ClientCardPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.cb.landing.ZKL421_S001_ClientCardPage.CLIENT_CARD_BUTTON; + +@Wait(value = CLIENT_CARD_BUTTON, until = Until.VISIBLE) +public interface ZKL421_S001_ClientCardPage extends WebFlow { + + String CLIENT_CARD_BUTTON = "ZKL421_S001_B001"; + String CLIENT_CARD_FIELD_SET = "ZKL421_S001_Y004"; + + @Click(CLIENT_CARD_BUTTON) + ZKL421_S001_ClientCardPage clickCardIsChecked(); + + @CheckElementPresent(CLIENT_CARD_FIELD_SET) + ZKL421_S001_ClientCardPage checkElementClientCard(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/ZST419_S001_Collateral.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/ZST419_S001_Collateral.java new file mode 100644 index 0000000..9454198 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/ZST419_S001_Collateral.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.cb.landing.ZST419_S001_Collateral.SHOW_CHANGE_BUTTON; + +@Wait(value = SHOW_CHANGE_BUTTON, until = Until.VISIBLE) +public interface ZST419_S001_Collateral extends WebFlow { + String SHOW_CHANGE_BUTTON = "ZST419_S001_B001"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/ZST425_S001_SearchCollateral.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/ZST425_S001_SearchCollateral.java new file mode 100644 index 0000000..6192085 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/ZST425_S001_SearchCollateral.java @@ -0,0 +1,9 @@ +package cz.moneta.test.dsl.ufo.cb.landing; + +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = ZST425_S001_SearchCollateral.MAIN_LABEL) +public interface ZST425_S001_SearchCollateral extends WebFlow { + String MAIN_LABEL = "ZST425_S001_X002"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/DEL401_S001_Cru.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/DEL401_S001_Cru.java new file mode 100644 index 0000000..9663a56 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/DEL401_S001_Cru.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {DEL401_S001_Cru.PAGE_LABEL, DEL401_S001_Cru.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface DEL401_S001_Cru extends WebFlow { + + String PAGE_LABEL = "DEL405_S001_L005"; + String CLIENT_DETAIL = "DEL401_S001_B004"; + String DONE_BUTTON = "DEL401_S001_H001_1"; + String CHECKED_DONE_BUTTON = "//input[@name='DEL401_S001_H001' and @value='1']"; + String NEXT_PAGE_BUTTON = "DEL405_S001_S001"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH)) + DEL401_S001_Cru clickDoneButton(); + + @Click(NEXT_PAGE_BUTTON) + MOD402_S001_Modelation clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/ECB401_S001_Registers.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/ECB401_S001_Registers.java new file mode 100644 index 0000000..c8c0741 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/ECB401_S001_Registers.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {ECB401_S001_Registers.GDPR_BUTTON, ECB401_S001_Registers.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface ECB401_S001_Registers extends WebFlow { + String GDPR_BUTTON = "ECB401_S001_B007"; + String NEXT_PAGE_BUTTON = "ECB401_S001_B001"; + + @Click(NEXT_PAGE_BUTTON) + KOM424_S001_TransactionDescriptionPage clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN436_S001_AlertPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN436_S001_AlertPage.java new file mode 100644 index 0000000..d94edd3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN436_S001_AlertPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.JAN436_S001_AlertPage.PAGE_DIV; + +@Wait(value = PAGE_DIV, until = Until.VISIBLE) +public interface JAN436_S001_AlertPage extends WebFlow { + + String PAGE_DIV = "JAN436_S001_L001"; + String CONTINUE_BUTTON = "JAN436_S001_B001"; + + @Click(CONTINUE_BUTTON) + JAN475_S001_FinancialSheetsPage clickContinue(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN451_S001_FinancialSheetsSignPost.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN451_S001_FinancialSheetsSignPost.java new file mode 100644 index 0000000..3ba25a1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN451_S001_FinancialSheetsSignPost.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {JAN451_S001_FinancialSheetsSignPost.LOAD_BUTTON, JAN451_S001_FinancialSheetsSignPost.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +@Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) +public interface JAN451_S001_FinancialSheetsSignPost extends WebFlow { + + String LOAD_BUTTON = "JAN451_S001_B003"; + String INDIVIDUAL_FINANCIAL_SHEETS_BUTTON = "JAN451_S001_B007"; + String NEXT_PAGE_BUTTON = "JAN451_S001_S002"; + + @Click(INDIVIDUAL_FINANCIAL_SHEETS_BUTTON) + JAN452_S001_IndividualFinancialSheetsPage clickIndividualFinancialSheets(); + + @Click(NEXT_PAGE_BUTTON) + KOM461_S001_Rating clickNextPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN452_S001_IndividualFinancialSheetsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN452_S001_IndividualFinancialSheetsPage.java new file mode 100644 index 0000000..cdcd29f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN452_S001_IndividualFinancialSheetsPage.java @@ -0,0 +1,51 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.JAN452_S001_IndividualFinancialSheetsPage.FINANCIAL_SHEETS_TABLE; + +@Wait(value = FINANCIAL_SHEETS_TABLE, until = Until.VISIBLE, waitSecondsForElement = 120) +public interface JAN452_S001_IndividualFinancialSheetsPage extends WebFlow, StoreAccessor { + + String FINANCIAL_SHEETS_COUNT_KEY = "FINANCIAL_SHEETS_COUNT"; + String FINANCIAL_SHEETS_TABLE = "JAN452_S001_G001_UfoTable"; + String FINANCIAL_SHEETS_TABLE_ROWS_XPATH = "//table[@id='JAN452_S001_G001_UfoTable']//tbody//tr"; + String OLDER_VERSIONS_RADIO = "JAN452_S001_H001_1"; + String FILTER_BUTTON = "JAN452_S001_B005"; + String LOADER_NOT_VISIBLE_IMG_XPATH = "//img[@id='XXX408_T001_X006' and not(contains(@style, 'display: none;'))]"; + String CREATE_FINANCIAL_SHEET_BUTTON = "JAN452_S001_B001"; + + /** + * Storing Financial Sheets count INCLUDING older versions, because when not included, new version overrides the old ones, + * so the count does not change. + */ + @CustomAction + default JAN452_S001_IndividualFinancialSheetsPage storeFinancialSheetsCountOlderVersionsIncluded() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + int financialSheetsCount = endpoint.findAndGetListOfElements(FINANCIAL_SHEETS_TABLE_ROWS_XPATH, Lookup.XPATH).size(); + store(FINANCIAL_SHEETS_COUNT_KEY, String.valueOf(financialSheetsCount)); + return null; + } + + @CustomAction + default JAN452_S001_IndividualFinancialSheetsPage checkFinancialSheetCreatedSuccessfully() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + int financialSheetsCount = endpoint.findAndGetListOfElements(FINANCIAL_SHEETS_TABLE_ROWS_XPATH, Lookup.XPATH).size(); + Assertions.assertEquals(String.valueOf(financialSheetsCount - 1), get(FINANCIAL_SHEETS_COUNT_KEY)); + return null; + } + + @Click(OLDER_VERSIONS_RADIO) + JAN452_S001_IndividualFinancialSheetsPage clickOlderVersions(); + + @Click(value = FILTER_BUTTON, andWait = @Wait(value = LOADER_NOT_VISIBLE_IMG_XPATH, by = Lookup.XPATH, until = Until.GONE)) + JAN452_S001_IndividualFinancialSheetsPage clickFilter(); + + @Click(CREATE_FINANCIAL_SHEET_BUTTON) + JAN459_S001_CreateFinancialSheetPage clickCreateFinancialSheet(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN459_S001_CreateFinancialSheetPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN459_S001_CreateFinancialSheetPage.java new file mode 100644 index 0000000..0ce17a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN459_S001_CreateFinancialSheetPage.java @@ -0,0 +1,164 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.JAN459_S001_CreateFinancialSheetPage.PAGE_DIV; + +@Wait(value = PAGE_DIV, until = Until.VISIBLE) +public interface JAN459_S001_CreateFinancialSheetPage extends WebFlow, StoreAccessor { + + String PAGE_DIV = "JAN459_S001_L025"; + String CLIENT_INPUT = "JAN459_S001_E001"; + String CLIENT_XPATH = "//input[@id='JAN459_S001_E001']/following-sibling::input"; + String CLIENT_DIV = "XXX408_T001_L052"; + String ICO_INPUT = "JAN459_S001_E002"; + String ICO_XPATH = "//input[@id='JAN459_S001_E002']/following-sibling::input"; + String ICO_DIV = "XXX408_T001_L091"; + String ESTABLISHMENT_DATE_INPUT = "JAN459_S001_E005"; + String ESTABLISHMENT_DATE_XPATH = "//input[@id='JAN459_S001_E005']/following-sibling::input"; + String CZ_NACE_1_SELECT = "JAN459_S001_C006"; + String MARKET_SHARE_SELECT = "JAN459_S001_C002"; + String CZ_NACE_PERCENTAGE_INPUT = "JAN459_S001_E023"; + String ACCOUNTING_PU_DOUBLY_RADIO = "JAN459_S001_R003_2"; + String UNITS_SELECT = "JAN459_S001_C001"; + String CURRENCY_SELECT = "JAN459_S001_C003"; + String NOT_SEASONAL_RADIO = "JAN459_S001_R002_2"; + String SHEETS_TO_DATE_INPUT = "JAN459_S001_E014"; + String MONTHS_IN_WATCHED_PERIOD_COUNT_INPUT = "JAN459_S001_E015"; + String SHEET_TYPE_SELECT = "JAN459_S001_C005"; + String AUDITOR_INPUT = "JAN459_S001_E016"; + String CERTIFICATE_NUMBER_INPUT = "JAN459_S001_E011"; + String AUDITORS_STATEMENT_SELECT = "JAN459_S001_C004"; + String SHEETS_IMAGE_SELECT = "JAN459_S001_C007"; + String SHEET_FORM_SELECT = "JAN459_S001_C008"; + String FILL_SHEET_BUTTON = "JAN459_S001_B001"; + String EXISTING_FINANCIAL_SHEET_CONTINUE_BUTTON = "JAN459_S001_B005"; + + /** + * Data iconsistency can cause problem during loading client, so then it is neccessary to fill it. + * + * @return + */ + @CustomAction + default JAN459_S001_CreateFinancialSheetPage fillClientIfEmpty() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + if (endpoint.getAttribute(CLIENT_XPATH, Lookup.XPATH, "value").isEmpty()) { + String client = endpoint.getText(CLIENT_DIV).split(",")[0]; + endpoint.type(() -> CLIENT_INPUT, client, false); + } + return null; + } + + /** + * Data iconsistency can cause problem during loading ico, so then it is neccessary to fill it. + * + * @return + */ + @CustomAction + default JAN459_S001_CreateFinancialSheetPage fillICOIfEmpty() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + if (endpoint.getAttribute(ICO_XPATH, Lookup.XPATH, "value").isEmpty()) { + String ico = endpoint.getText(ICO_DIV); + endpoint.type(() -> ICO_INPUT, ico, false); + } + return null; + } + + /** + * Data iconsistency can cause problem during loading establishment date, so then it is neccessary to fill it. + * + * @return + */ + @CustomAction + default JAN459_S001_CreateFinancialSheetPage fillEstablishmentDateIfEmpty(String establishmentDate) { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + if (endpoint.getAttribute(ESTABLISHMENT_DATE_XPATH, Lookup.XPATH, "value").isEmpty()) { + endpoint.type(() -> ESTABLISHMENT_DATE_INPUT, establishmentDate, false); + } + return null; + } + + /** + * Data iconsistency can cause problem during loading Cz Nace, so then it is neccessary to fill it. + * + * @return + */ + @CustomAction + default JAN459_S001_CreateFinancialSheetPage selectCzNace1IfEmpty(String czNace1) { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + if (endpoint.getSelectedFirstItemText(CZ_NACE_1_SELECT).equals("(není)")) { + endpoint.selectByValue(CZ_NACE_1_SELECT, czNace1); + endpoint.waitForElementsToLoad(2, Lookup.CLASSNAME, Until.GONE, SharedElements.LOAD_IMG_DIV_CLASS); + } + return null; + } + + @TypeInto(value = CZ_NACE_PERCENTAGE_INPUT, clear = true) + JAN459_S001_CreateFinancialSheetPage fillCzNacePercentage(String czNacePercentage); + + /** + * Data iconsistency can cause problem during loading market share, so then it is neccessary to fill it. + * + * @return + */ + @CustomAction + default JAN459_S001_CreateFinancialSheetPage selectMarketShareIfEmpty(String marketShare) { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + if (endpoint.getSelectedFirstItemText(MARKET_SHARE_SELECT).equals("(není)")) { + endpoint.selectByVisibleText(MARKET_SHARE_SELECT, marketShare); + } + return null; + } + + @Click(ACCOUNTING_PU_DOUBLY_RADIO) + JAN459_S001_CreateFinancialSheetPage clickAccountingPUDoubly(); + + @Select(UNITS_SELECT) + JAN459_S001_CreateFinancialSheetPage selectUnits(String units); + + @Select(CURRENCY_SELECT) + JAN459_S001_CreateFinancialSheetPage selectCurrency(String currency); + + @Click(NOT_SEASONAL_RADIO) + JAN459_S001_CreateFinancialSheetPage clickNotSeasonal(); + + @TypeInto(SHEETS_TO_DATE_INPUT) + JAN459_S001_CreateFinancialSheetPage fillSheetsToDate(String sheetsToDate); + + @TypeInto(MONTHS_IN_WATCHED_PERIOD_COUNT_INPUT) + JAN459_S001_CreateFinancialSheetPage fillMonthsInWatchedPeriodCount(String monthsInWatchedPeriodCount); + + @Select(SHEET_TYPE_SELECT) + JAN459_S001_CreateFinancialSheetPage selectSheetType(String sheetType); + + @TypeInto(AUDITOR_INPUT) + JAN459_S001_CreateFinancialSheetPage fillAuditor(String auditor); + + @TypeInto(CERTIFICATE_NUMBER_INPUT) + JAN459_S001_CreateFinancialSheetPage fillCertificateNuber(String certificateNumber); + + @Select(AUDITORS_STATEMENT_SELECT) + JAN459_S001_CreateFinancialSheetPage selectAuditorsStatement(String auditorsStatement); + + @Select(value = SHEETS_IMAGE_SELECT, andWait = @Wait(SHEET_FORM_SELECT)) + JAN459_S001_CreateFinancialSheetPage selectSheetImage(String sheetImage); + + @Select(SHEET_FORM_SELECT) + JAN459_S001_CreateFinancialSheetPage selectSheetForm(String sheetForm); + + @Click(FILL_SHEET_BUTTON) + JAN459_S001_CreateFinancialSheetPage clickFillSheet(); + + @CustomAction + default JAN459_S001_CreateFinancialSheetPageTransitions clickExisitingFinancialSheetContinueIfVisible() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(3, EXISTING_FINANCIAL_SHEET_CONTINUE_BUTTON, Lookup.ID)) { + endpoint.click(() -> EXISTING_FINANCIAL_SHEET_CONTINUE_BUTTON); + } + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN459_S001_CreateFinancialSheetPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN459_S001_CreateFinancialSheetPageTransitions.java new file mode 100644 index 0000000..3e996da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN459_S001_CreateFinancialSheetPageTransitions.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.WebFlow; + +public interface JAN459_S001_CreateFinancialSheetPageTransitions extends WebFlow { + + JAN475_S001_FinancialSheetsPage onFinancialSheets(); + + JAN436_S001_AlertPage onAlertPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN460_S003_AnalysisNotYetCountedPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN460_S003_AnalysisNotYetCountedPage.java new file mode 100644 index 0000000..8436aa4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN460_S003_AnalysisNotYetCountedPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.JAN460_S003_AnalysisNotYetCountedPage.PAGE_DIV; +import static cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.JAN460_S003_AnalysisNotYetCountedPage.BACK_BUTTON; + +@Wait(value = {PAGE_DIV, BACK_BUTTON}, until = Until.VISIBLE) +public interface JAN460_S003_AnalysisNotYetCountedPage extends WebFlow { + + String PAGE_DIV = "JAN460_S003"; + String WAIT_BUTTON = "JAN460_S003_B002"; + String BACK_BUTTON = "JAN460_S003_B004"; + + @Click(WAIT_BUTTON) + JAN452_S001_IndividualFinancialSheetsPage clickWait(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN475_S001_FinancialSheetsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN475_S001_FinancialSheetsPage.java new file mode 100644 index 0000000..ce9b43f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/JAN475_S001_FinancialSheetsPage.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.JAN475_S001_FinancialSheetsPage.PAGE_DIV; + +@Wait(value = PAGE_DIV, until = Until.VISIBLE, waitSecondsForElement = 60) +public interface JAN475_S001_FinancialSheetsPage extends WebFlow { + + String PAGE_DIV = "JAN475_S001_L001"; + String CLAIMS_FOR_SHARE_CAPITAL_INPUT = "JAN475_S001_E001"; + String ASSETS_DO_COUNT_BUTTON = "JAN475_S001_B007"; + String ASSETS_NEXT_BUTTON = "JAN475_S001_B016"; + String RUNNING_ASSETS_DO_COUNT_BUTTON = "JAN475_S001_B008"; + String RUNNING_ASSETS_NEXT_BUTTON = "JAN475_S001_B017"; + String PASSIVES_DO_COUNT_BUTTON = "JAN475_S001_B009"; + String PASSIVES_NEXT_BUTTON = "JAN475_S001_B018"; + String SHORT_TERM_COMMITMENTS_DO_COUNT_BUTTON = "JAN475_S001_B010"; + String SHORT_TERM_COMMITMENTS_NEXT_BUTTON = "JAN475_S001_B019"; + String INCOME_STATEMENT_DO_COUNT_BUTTON = "JAN475_S001_B011"; + String INCOME_STATEMENT_NEXT_BUTTON = "JAN475_S001_B020"; + String INCOME_STATEMENT_2_DO_COUNT_BUTTON = "JAN475_S001_B012"; + String ANALYSIS_BUTTON = "JAN475_S001_B004"; + + @TypeInto(CLAIMS_FOR_SHARE_CAPITAL_INPUT) + JAN475_S001_FinancialSheetsPage fillClaimsForShareCapital(String claimsForShareCapital); + + @Click(value = ASSETS_DO_COUNT_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + JAN475_S001_FinancialSheetsPage clickAssetsDoCount(); + + @Click(ASSETS_NEXT_BUTTON) + JAN475_S001_FinancialSheetsPage clickAssetsNext(); + + @Click(value = RUNNING_ASSETS_DO_COUNT_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + JAN475_S001_FinancialSheetsPage clickRunningAssetsDoCount(); + + @Click(RUNNING_ASSETS_NEXT_BUTTON) + JAN475_S001_FinancialSheetsPage clickRunningAssetsNext(); + + @Click(value = PASSIVES_DO_COUNT_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + JAN475_S001_FinancialSheetsPage clickPassivesDoCount(); + + @Click(PASSIVES_NEXT_BUTTON) + JAN475_S001_FinancialSheetsPage clickPassivesNext(); + + @Click(value = SHORT_TERM_COMMITMENTS_DO_COUNT_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + JAN475_S001_FinancialSheetsPage clickShortTermCommitmentsDoCount(); + + @Click(SHORT_TERM_COMMITMENTS_NEXT_BUTTON) + JAN475_S001_FinancialSheetsPage clickShortTermCommitmentsNext(); + + @Click(value = INCOME_STATEMENT_DO_COUNT_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + JAN475_S001_FinancialSheetsPage clickIncomeStatementDoCount(); + + @Click(INCOME_STATEMENT_NEXT_BUTTON) + JAN475_S001_FinancialSheetsPage clickIncomeStatementNext(); + + @Click(value = INCOME_STATEMENT_2_DO_COUNT_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + JAN475_S001_FinancialSheetsPage clickIncomeStatement2DoCount(); + + @Click(ANALYSIS_BUTTON) + JAN460_S003_AnalysisNotYetCountedPage clickAnalysis(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM410_S001_FxInfoPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM410_S001_FxInfoPage.java new file mode 100644 index 0000000..7bd6529 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM410_S001_FxInfoPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {KOM410_S001_FxInfoPage.TRANSACTIONS_TABLE, KOM410_S001_FxInfoPage.NEXT_PAGE_BUTTON}, until = Until.VISIBLE, waitSecondsForElement = 40) +public interface KOM410_S001_FxInfoPage extends WebFlow { + + String PAGE_LABEL = "KOM410_S001_L002"; + String TRANSACTIONS_TABLE = "KOM410_S001_G001"; + String NEXT_PAGE_BUTTON = "KOM410_S001_B003"; + + @Click(NEXT_PAGE_BUTTON) + KOM443_S004_SalesEmployee clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM414_S017_Risk.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM414_S017_Risk.java new file mode 100644 index 0000000..5916a28 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM414_S017_Risk.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {KOM414_S017_Risk.SAVE_BUTTON, KOM414_S017_Risk.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface KOM414_S017_Risk extends WebFlow { + String SAVE_BUTTON = "KOM414_S017_B003"; + String DONE_BUTTON = "KOM414_S017_H001_1"; + String CHECKED_DONE_BUTTON = "//input[@name='KOM414_S017_H001' and @value='1']"; + String NEXT_PAGE_BUTTON = "KOM414_S017_S001"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH)) + KOM414_S017_Risk clickDoneButton(); + + @Click(NEXT_PAGE_BUTTON) + KOM462_S001_ClientAccounts clickNextPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM419_S001_SendProposal.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM419_S001_SendProposal.java new file mode 100644 index 0000000..f276a26 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM419_S001_SendProposal.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = KOM419_S001_SendProposal.SEND_BUTTON, until = Until.VISIBLE) +public interface KOM419_S001_SendProposal extends WebFlow { + String SEND_BUTTON = "KOM419_S001_B006"; + String PREVIOUS_PAGE_BUTTON = "KOM419_S001_B012"; + + @Click(PREVIOUS_PAGE_BUTTON) + KOM490_S001_Checklists clickPreviousPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM424_S001_TransactionDescriptionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM424_S001_TransactionDescriptionPage.java new file mode 100644 index 0000000..9e4f2a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM424_S001_TransactionDescriptionPage.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {KOM424_S001_TransactionDescriptionPage.DESCRIPTION_AREA, KOM424_S001_TransactionDescriptionPage.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface KOM424_S001_TransactionDescriptionPage extends WebFlow { + String DESCRIPTION_AREA = "KOM424_S001_M009"; + String FINANCIAL_RESOURCES_AREA = "KOM424_S001_M003"; + String DONE_BUTTON = "KOM424_S001_H002_1"; + String SAVE_BUTTON = "KOM424_S001_B001"; + String LOAN_PURPOSE = "KOM424_S001_C003"; + String CHECKED_DONE_BUTTON = "//input[@name='KOM424_S001_H002' and @value='1']"; + String NEXT_PAGE_BUTTON = "KOM424_S001_S001"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH)) + KOM424_S001_TransactionDescriptionPage clickDoneButton(); + + @Click(value = SAVE_BUTTON, andWait = @Wait(explicitWaitSeconds = 1)) + KOM424_S001_TransactionDescriptionPage clickSaveButton(); + + @TypeInto(value = DESCRIPTION_AREA, clear = true) + KOM424_S001_TransactionDescriptionPage fillDescription(String description); + + @TypeInto(value = FINANCIAL_RESOURCES_AREA, clear = true) + KOM424_S001_TransactionDescriptionPage fillFinancialResources(String description); + + @Select(value = LOAN_PURPOSE) + KOM424_S001_TransactionDescriptionPage selectLoanPurpose(String purpose); + + @Click(NEXT_PAGE_BUTTON) + KOM425_S001_BasicCompanyInformation clickNextPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM425_S001_BasicCompanyInformation.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM425_S001_BasicCompanyInformation.java new file mode 100644 index 0000000..649ce8e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM425_S001_BasicCompanyInformation.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {KOM425_S001_BasicCompanyInformation.HISTORY_AREA, KOM425_S001_BasicCompanyInformation.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface KOM425_S001_BasicCompanyInformation extends WebFlow { + String HISTORY_AREA = "KOM425_S001_M006"; + String DONE_BUTTON = "KOM425_S001_H002_1"; + String CHECKED_DONE_BUTTON = "//input[@name='KOM425_S001_H002' and @value='1']"; + String COMPANY_HISTORY = "KOM425_S001_M006"; + String CURRENT_STATE = "KOM425_S001_M005"; + String SAVE_BUTTON = "KOM425_S001_B001"; + String NEXT_PAGE_BUTTON = "KOM425_S001_S001"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH)) + KOM425_S001_BasicCompanyInformation clickDoneButton(); + + @TypeInto(value = COMPANY_HISTORY, clear = true) + KOM425_S001_BasicCompanyInformation fillCompanyHistory(String description); + + @TypeInto(value = CURRENT_STATE, clear = true) + KOM425_S001_BasicCompanyInformation fillCurrentState(String description); + + @Click(value = SAVE_BUTTON) + KOM425_S001_BasicCompanyInformation clickSaveButton(); + + @Click(NEXT_PAGE_BUTTON) + KOM446_S001_ResourcesMoneta clickNextPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM443_S004_SalesEmployee.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM443_S004_SalesEmployee.java new file mode 100644 index 0000000..c39528d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM443_S004_SalesEmployee.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {KOM443_S004_SalesEmployee.SAVE_BUTTON, KOM443_S004_SalesEmployee.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface KOM443_S004_SalesEmployee extends WebFlow { + String SAVE_BUTTON = "KOM443_S004_B001"; + String DONE_BUTTON = "KOM443_S004_H001_1"; + String CHECKED_DONE_BUTTON = "//input[@name='KOM443_S004_H001' and @value='1']"; + String NEXT_PAGE_BUTTON = "KOM443_S004_S001"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH)) + KOM443_S004_SalesEmployee clickDoneButton(); + + @Click(NEXT_PAGE_BUTTON) + KOM414_S017_Risk clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM444_S002_ForeignResources.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM444_S002_ForeignResources.java new file mode 100644 index 0000000..2aa0ab5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM444_S002_ForeignResources.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {KOM444_S002_ForeignResources.SAVE_BUTTON, KOM444_S002_ForeignResources.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface KOM444_S002_ForeignResources extends WebFlow { + String SAVE_BUTTON = "KOM444_S002_B003"; + String DONE_BUTTON = "KOM444_S002_H001_1"; + String CHECKED_DONE_BUTTON = "//input[@name='KOM444_S002_H001' and @value='1']"; + String NEXT_PAGE_BUTTON = "KOM444_S002_S001"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH)) + KOM444_S002_ForeignResources clickDoneButton(); + + @Click(NEXT_PAGE_BUTTON) + KOM410_S001_FxInfoPage clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM446_S001_ResourcesMoneta.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM446_S001_ResourcesMoneta.java new file mode 100644 index 0000000..9e92623 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM446_S001_ResourcesMoneta.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {KOM446_S001_ResourcesMoneta.EXPOSURE_BUTTON, KOM446_S001_ResourcesMoneta.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface KOM446_S001_ResourcesMoneta extends WebFlow { + String EXPOSURE_BUTTON = "KOM446_S001_B005"; + String DONE_BUTTON = "KOM446_S001_H001_1"; + String CHECKED_DONE_BUTTON = "//input[@name='KOM446_S001_H001' and @value='1']"; + String NEXT_PAGE_BUTTON = "KOM446_S001_S001"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH)) + KOM446_S001_ResourcesMoneta clickDoneButton(); + + @Click(NEXT_PAGE_BUTTON) + KOM444_S002_ForeignResources clickNextPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM461_S001_Rating.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM461_S001_Rating.java new file mode 100644 index 0000000..e49b83a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM461_S001_Rating.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.dsl.ufo.cb.landing.AUT402_S001_KOCriteriaListPage; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {KOM461_S001_Rating.CLASSIFICATION, KOM461_S001_Rating.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface KOM461_S001_Rating extends WebFlow { + String CLASSIFICATION = "KOM461_S001_B005"; + String DONE_BUTTON = "KOM461_S001_H001_1"; + String CHECKED_DONE_BUTTON = "//input[@name='KOM461_S001_H001' and @value='1']"; + String NEXT_PAGE_BUTTON = "KOM461_S001_S001"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH)) + KOM461_S001_Rating clickDoneButton(); + + @Click(NEXT_PAGE_BUTTON) + AUT402_S001_KOCriteriaListPage clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM462_S001_ClientAccounts.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM462_S001_ClientAccounts.java new file mode 100644 index 0000000..b4fdf33 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM462_S001_ClientAccounts.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {KOM462_S001_ClientAccounts.DETAIL_BUTTON, KOM462_S001_ClientAccounts.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface KOM462_S001_ClientAccounts extends WebFlow { + String DETAIL_BUTTON = "KOM462_S001_B005"; + String DONE_BUTTON = "KOM462_S001_H001_1"; + String CHECKED_DONE_BUTTON = "//input[@name='KOM462_S001_H001' and @value='1']"; + String NEXT_PAGE_BUTTON = "KOM462_S001_S001"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH)) + KOM462_S001_ClientAccounts clickDoneButton(); + + @Click(NEXT_PAGE_BUTTON) + KOV401_S001_Kovenanty clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM475_S001_EssRevisionProposalPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM475_S001_EssRevisionProposalPage.java new file mode 100644 index 0000000..ca79592 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM475_S001_EssRevisionProposalPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {KOM475_S001_EssRevisionProposalPage.PAGE_LABEL, KOM475_S001_EssRevisionProposalPage.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface KOM475_S001_EssRevisionProposalPage extends WebFlow { + + String PAGE_LABEL = "KOM475_S001_L001"; + String NEXT_PAGE_BUTTON = "KOM475_S001_B009"; + + @Click(NEXT_PAGE_BUTTON) + JAN451_S001_FinancialSheetsSignPost clickNextPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM490_S001_Checklists.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM490_S001_Checklists.java new file mode 100644 index 0000000..6a68ddb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOM490_S001_Checklists.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {KOM490_S001_Checklists.SEARCH_BUTTON, KOM490_S001_Checklists.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface KOM490_S001_Checklists extends WebFlow { + String SEARCH_BUTTON = "KOM490_S001_B009"; + String NEXT_PAGE_BUTTON = "KOM490_S001_S001"; + + @Click(NEXT_PAGE_BUTTON) + KOM419_S001_SendProposal clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOV401_S001_Kovenanty.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOV401_S001_Kovenanty.java new file mode 100644 index 0000000..d5b1aca --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/KOV401_S001_Kovenanty.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {KOV401_S001_Kovenanty.EDIT_BUTTON, KOV401_S001_Kovenanty.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface KOV401_S001_Kovenanty extends WebFlow { + String EDIT_BUTTON = "KOV401_S001_B009"; + String DONE_BUTTON = "KOV401_S001_H001_1"; + String CHECKED_DONE_BUTTON = "//input[@name='KOV401_S001_H001' and @value='1']"; + String NEXT_PAGE_BUTTON = "KOV401_S001_S001"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH)) + KOV401_S001_Kovenanty clickDoneButton(); + + @Click(NEXT_PAGE_BUTTON) + POD405_S001_ConditionsFulfilment clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/MOD402_S001_Modelation.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/MOD402_S001_Modelation.java new file mode 100644 index 0000000..f9b8246 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/MOD402_S001_Modelation.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {MOD402_S001_Modelation.CREATE_BUTTON, MOD402_S001_Modelation.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface MOD402_S001_Modelation extends WebFlow { + String CREATE_BUTTON = "MOD402_S001_B005"; + String NEXT_PAGE_BUTTON = "MOD402_S001_S001"; + + @Click(NEXT_PAGE_BUTTON) + VST407_S001_PledgeBonds clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/POD405_S001_ConditionsFulfilment.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/POD405_S001_ConditionsFulfilment.java new file mode 100644 index 0000000..b5325ec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/POD405_S001_ConditionsFulfilment.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {POD405_S001_ConditionsFulfilment.PRINT_BUTTON, POD405_S001_ConditionsFulfilment.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface POD405_S001_ConditionsFulfilment extends WebFlow { + String PRINT_BUTTON = "POD405_S001_B008"; + String DONE_BUTTON = "POD405_S001_H001_1"; + String CHECKED_DONE_BUTTON = "//input[@name='POD405_S001_H001' and @value='1']"; + String NEXT_PAGE_BUTTON = "POD405_S001_S001"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH)) + POD405_S001_ConditionsFulfilment clickDoneButton(); + + @Click(NEXT_PAGE_BUTTON) + POD406_S001_DealConditions clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/POD406_S001_DealConditions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/POD406_S001_DealConditions.java new file mode 100644 index 0000000..ecf0b1a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/POD406_S001_DealConditions.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {POD406_S001_DealConditions.CONDITIONS_BUTTON, POD406_S001_DealConditions.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface POD406_S001_DealConditions extends WebFlow { + String CONDITIONS_BUTTON = "POD406_S001_B002"; + String NEXT_PAGE_BUTTON = "POD406_S001_S001"; + + @Click(NEXT_PAGE_BUTTON) + KOM490_S001_Checklists clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/PRC401_S002_Pricing.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/PRC401_S002_Pricing.java new file mode 100644 index 0000000..7a7ba13 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/PRC401_S002_Pricing.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {PRC401_S002_Pricing.NEW_SF, PRC401_S002_Pricing.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface PRC401_S002_Pricing extends WebFlow { + String NEW_SF = "PRC401_S002_B002"; + String NEXT_PAGE_BUTTON = "PRC401_S002_S001"; + + @Click(NEXT_PAGE_BUTTON) + ECB401_S001_Registers clickNextPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/SOU401_S001_BlackLists.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/SOU401_S001_BlackLists.java new file mode 100644 index 0000000..100f578 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/SOU401_S001_BlackLists.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {SOU401_S001_BlackLists.OVERVIEW_BUTTON, SOU401_S001_BlackLists.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface SOU401_S001_BlackLists extends WebFlow { + String OVERVIEW_BUTTON = "SOU401_S001_B016"; + String NEXT_PAGE_BUTTON = "SOU401_S001_S001"; + + @Click(NEXT_PAGE_BUTTON) + PRC401_S002_Pricing clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/VST403_S001_Relations.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/VST403_S001_Relations.java new file mode 100644 index 0000000..5375e0f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/VST403_S001_Relations.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {VST403_S001_Relations.PAGE_LABEL, VST403_S001_Relations.NEXT_PAGE_BUTTON}, until = Until.VISIBLE, waitSecondsForElement = 60) +public interface VST403_S001_Relations extends WebFlow { + String NEXT_PAGE_BUTTON = "VST403_S001_S001"; + String PAGE_LABEL = "VST403_S001_X003"; + + @Click(NEXT_PAGE_BUTTON) + ZKL421_S001_ClientCard clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/VST407_S001_PledgeBonds.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/VST407_S001_PledgeBonds.java new file mode 100644 index 0000000..85270b9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/VST407_S001_PledgeBonds.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(value = {VST407_S001_PledgeBonds.BILL_GUARANTOR_BUTTON, VST407_S001_PledgeBonds.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface VST407_S001_PledgeBonds extends WebFlow { + String BILL_GUARANTOR_BUTTON = "VST407_S001_B005"; + String NEXT_PAGE_BUTTON = "VST407_S001_B002"; + + @Click(NEXT_PAGE_BUTTON) + SOU401_S001_BlackLists clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/ZKL421_S001_ClientCard.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/ZKL421_S001_ClientCard.java new file mode 100644 index 0000000..7f08b46 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposal/pages/ZKL421_S001_ClientCard.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposal.pages; + +import cz.moneta.test.harness.support.web.*; + +@Wait(value = {ZKL421_S001_ClientCard.SAVE_BUTTON, ZKL421_S001_ClientCard.NEXT_PAGE_BUTTON}, until = Until.VISIBLE) +public interface ZKL421_S001_ClientCard extends WebFlow { + String SAVE_BUTTON = "ZKL421_S001_B011"; + String DONE_BUTTON = "ZKL421_S001_H002_1"; + String CHECKED_DONE_BUTTON = "//input[@name='ZKL421_S001_H002' and @value='1']"; + String NEXT_PAGE_BUTTON = "ZKL421_S001_B021"; + + @Click(value = DONE_BUTTON, andWait = @Wait(value = CHECKED_DONE_BUTTON, by = Lookup.XPATH, until = Until.VISIBLE)) + ZKL421_S001_ClientCard clickDoneButton(); + + @Click(NEXT_PAGE_BUTTON) + KOM475_S001_EssRevisionProposalPage clickNextPage(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/CreditLine.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/CreditLine.java new file mode 100644 index 0000000..611acfe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/CreditLine.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals; + +import cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks.*; + +public class CreditLine extends Proposal { + public CreditLine() { + amount = "8000000"; + characterType = CharacterType.CREDIT_LINE.getValue(); + productType = ProductType.CREDIT_LINE.getValue(); + loanType = LoanType.FRAMEWORK.getValue(); + loanPurpose = "Jiný"; + proposalType = ProposalType.FRAMEWORK.getValue(); + committed = "Ano"; + support = Support.NO_SUPPORT.getValue(); + rwaFlag = RwaFlag.YES.getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/EuInvestment.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/EuInvestment.java new file mode 100644 index 0000000..3e9ba63 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/EuInvestment.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals; + +import cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks.*; + +public class EuInvestment extends Proposal { + + public EuInvestment() { + amount = "300000"; + loanPurpose = "Dopravní prostředky - koupě"; + characterType = CharacterType.INSTALLMENT.getValue(); + loanType = LoanType.INVESTMENT.getValue(); + proposalType = ProposalType.FULL.getValue(); + productType = ProductType.INVESTMENT.getValue(); + support = Support.NO_SUPPORT.getValue(); + rwaFlag = RwaFlag.YES.getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/EuWorkingCapital.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/EuWorkingCapital.java new file mode 100644 index 0000000..1e95d55 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/EuWorkingCapital.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals; + +import cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks.*; + +public class EuWorkingCapital extends Proposal { + public EuWorkingCapital() { + amount = "9000000"; + productType = ProductType.EU_WORKING_CAPITAL.getValue(); + characterType = CharacterType.REVOLVING.getValue(); + proposalType = ProposalType.FULL.getValue(); + loanType = LoanType.OPERATING.getValue(); + loanPurpose = "Provozní financování - kombinace"; + committed = "Ano"; + support = Support.NO_SUPPORT.getValue(); + rwaFlag = RwaFlag.YES.getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/FlexiWorkingCapital.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/FlexiWorkingCapital.java new file mode 100644 index 0000000..25ab02b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/FlexiWorkingCapital.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals; + +import cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks.*; + +public class FlexiWorkingCapital extends Proposal { + public FlexiWorkingCapital() { + amount = "9000000"; + characterType = CharacterType.OVERDRAFT.getValue(); + proposalType = ProposalType.FULL.getValue(); + loanType = LoanType.OPERATING.getValue(); + productType = ProductType.FLEXI_OPERATING.getValue(); + loanPurpose = "Jiný"; + committed = "Ano"; + support = Support.NO_SUPPORT.getValue(); + rwaFlag = RwaFlag.YES.getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/GeneralWarranty.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/GeneralWarranty.java new file mode 100644 index 0000000..64a68ed --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/GeneralWarranty.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals; + +import cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks.*; + +public class GeneralWarranty extends Proposal { + public GeneralWarranty() { + amount = "10000000"; + characterType = CharacterType.GENERAL_WARRANTY.getValue(); + proposalType = ProposalType.FRAMEWORK.getValue(); + productType = ProductType.FRAMEWORK_GUARANTEE.getValue(); + committed = "Ano"; + loanType = LoanType.BANK_GUARANTEE.getValue(); + loanPurpose = "Jiný"; + support = Support.NO_SUPPORT.getValue(); + rwaFlag = RwaFlag.YES.getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/Proposal.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/Proposal.java new file mode 100644 index 0000000..0ce691b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/Proposal.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals; + +import cz.moneta.test.dsl.util.TestUtils; +import lombok.Data; + +@Data +public class Proposal { + protected String currency; + protected String amount; + protected String characterType; + protected String proposalType; + protected String loanType; + protected String productType; + protected String loanPurpose; + protected String signDate = TestUtils.getTodayDate(); + protected String lastDrawingDate; + protected String support; + protected String insurance; + protected String proposalId; + protected String regNumber; + protected String committed; + protected String maturity; + protected String rwaFlag; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/Treasury.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/Treasury.java new file mode 100644 index 0000000..d5698d3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/Treasury.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals; + +import cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks.*; + +public class Treasury extends Proposal{ + + public Treasury() { + amount = "300000"; + loanPurpose = "Dopravní prostředky - koupě"; + characterType = CharacterType.GENERAL_WARRANTY.getValue(); + loanType = LoanType.BANK_GUARANTEE.getValue(); + proposalType = ProposalType.FULL.getValue(); + productType = ProductType.TREASURY_SALES.getValue(); + support = Support.NO_SUPPORT.getValue(); + rwaFlag = RwaFlag.YES.getValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/CharacterType.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/CharacterType.java new file mode 100644 index 0000000..d99e318 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/CharacterType.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks; + +public enum CharacterType { + INSTALLMENT ("Splátkový"), + REVOLVING ("REV"), + OVERDRAFT ("KTK"), + GENERAL_WARRANTY ("BZ/TF/FX"), + CREDIT_LINE ("Kreditní linka"); + + private final String value; + + CharacterType(String value){ + this.value = value; + } + + public String getValue(){ + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/Insurance.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/Insurance.java new file mode 100644 index 0000000..b0ae283 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/Insurance.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks; + +public enum Insurance { + NO("Ne"), + YES("Ano"); + + private final String value; + + Insurance(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/LoanType.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/LoanType.java new file mode 100644 index 0000000..4ad866e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/LoanType.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks; + +public enum LoanType { + INVESTMENT ("Investiční (Splátkový)"), + OPERATING ("Provozní"), + FRAMEWORK ("Rámec"), + BANK_GUARANTEE ("Bankovní záruka / Trade Finance / FX"); + + private final String value; + + LoanType(String value){ + this.value = value; + } + + public String getValue(){ + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/ProductType.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/ProductType.java new file mode 100644 index 0000000..68deacc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/ProductType.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks; + +public enum ProductType { + CREDIT_LINE("93000 - KREDITNÍ LINKA"), + FLEXI_OPERATING("37800 - FLEXI PROVOZ"), + FRAMEWORK_GUARANTEE("99000 - RÁMCOVÁ ZÁRUKA"), + INVESTMENT("34990 - INVESTIČNÍ ÚVĚR"), + EU_WORKING_CAPITAL("68000 - EU PROVOZ"), + TREASURY_SALES("92000 - TREASURY SALES PRODUKT"); + + private final String value; + + ProductType(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/ProposalType.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/ProposalType.java new file mode 100644 index 0000000..80afd3a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/ProposalType.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks; + +public enum ProposalType { + FULL ("Plný"), + FRAMEWORK ("Rámec"); + + private final String value; + + ProposalType(String value){ + this.value = value; + } + + public String getValue(){ + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/RwaFlag.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/RwaFlag.java new file mode 100644 index 0000000..2129aa1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/RwaFlag.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks; + +public enum RwaFlag { + NO("Ne"), + YES("Ano"); + + private final String value; + + RwaFlag(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/Support.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/Support.java new file mode 100644 index 0000000..1e6f57f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/cb/landing/proposals/codebooks/Support.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.cb.landing.proposals.codebooks; + +public enum Support { + EIF("EIF"), + NO_SUPPORT("Bez podpory"); + + private final String value; + + Support(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/common/authentication/UfoLoginPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/authentication/UfoLoginPage.java new file mode 100644 index 0000000..73071da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/authentication/UfoLoginPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.common.authentication; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.common.authentication.UfoLoginPage.CONFIRM_BUTTON; +import static cz.moneta.test.dsl.ufo.common.authentication.UfoLoginPage.PASSWORD_INPUT; +import static cz.moneta.test.dsl.ufo.common.authentication.UfoLoginPage.USERNAME_INPUT; + +@Wait({USERNAME_INPUT, PASSWORD_INPUT, CONFIRM_BUTTON}) +@Wait(explicitWaitSeconds = 3) +public interface UfoLoginPage extends WebFlow { + + String USERNAME_INPUT = "LOG001_S001_E001"; + String PASSWORD_INPUT = "LOG001_S001_E002"; + String CONFIRM_BUTTON = "LOG001_S001_B003"; + + @TypeInto(value = USERNAME_INPUT, andWait = @Wait(explicitWaitSeconds = 1)) + @TypeInto(PASSWORD_INPUT) + @Click(CONFIRM_BUTTON) + UfoLoginPageTransitions typeUserNameAndPasswordAndClickLogin(String username, String password); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/common/authentication/UfoLoginPageTomcatSso.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/authentication/UfoLoginPageTomcatSso.java new file mode 100644 index 0000000..074d7ef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/authentication/UfoLoginPageTomcatSso.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.common.authentication; + +import cz.moneta.test.dsl.ufo.common.landing.ADM162_S001_selectPageTomcatSso; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.common.authentication.UfoLoginPageTomcatSso.*; + +@Wait(value = {LOGIN_PAGE_TITLE_XPATH, USERNAME_INPUT_XPATH, PASSWORD_INPUT_XPATH, SIGN_IN_BUTTON_XPATH}, waitSecondsForElement = 30, by = Lookup.XPATH) +public interface UfoLoginPageTomcatSso extends WebFlow { + String LOGIN_PAGE_TITLE_XPATH = "//title[contains(text(), 'Please sign in')]"; + String USERNAME_INPUT_XPATH = "//input[@id='username']"; + String PASSWORD_INPUT_XPATH = "//input[@id='password']"; + String SIGN_IN_BUTTON_XPATH = "//button[@type='submit']"; + + @TypeInto(value = USERNAME_INPUT_XPATH, by = Lookup.XPATH) + @TypeInto(value = PASSWORD_INPUT_XPATH, by = Lookup.XPATH) + @Click(value = SIGN_IN_BUTTON_XPATH, by = Lookup.XPATH) + ADM162_S001_selectPageTomcatSso typeUsernameAndPasswordClickToSignIn(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/common/authentication/UfoLoginPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/authentication/UfoLoginPageTransitions.java new file mode 100644 index 0000000..c7e23d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/authentication/UfoLoginPageTransitions.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.common.authentication; + +import cz.moneta.test.dsl.ufo.cb.landing.SME451_S001_UfoCbLandingPage; +import cz.moneta.test.dsl.ufo.common.landing.ADM162_S001_selectPageTomcatSso; +import cz.moneta.test.dsl.ufo.common.landing.ApplicationSelectPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.EXT701_S001_ExternalPartnersMainPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface UfoLoginPageTransitions extends WebFlow { + + ApplicationSelectPage onApplicationSelectPage(); + + SME451_S001_UfoCbLandingPage onUfoCbPage(); + + EXT701_S001_ExternalPartnersMainPage onUfoExternalPartnersPage(); + + ADM162_S001_selectPageTomcatSso onApplicationSelectPageSso(); + + OPS001_S001_ClientSearchPageUfoOperations onClientSearchPageUfoOperations(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/common/landing/ADM162_S001_selectPageTomcatSso.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/landing/ADM162_S001_selectPageTomcatSso.java new file mode 100644 index 0000000..a9ae1dc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/landing/ADM162_S001_selectPageTomcatSso.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.ufo.common.landing; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.common.landing.ADM162_S001_selectPageTomcatSso.*; + +@Waits({ + @Wait(value = {PAGE_ID_SELECT_PAGE, LOGIN_PANEL_ID, SELECT_APPLICATION_TABLE_ID, SELECT_OM_TABLE_ID, LIST_OM_ID, CONTINUE_BUTTON_ID}, waitSecondsForElement = 40), + @Wait(value = CHANGE_USER_XPATH, by = Lookup.XPATH)}) +public interface ADM162_S001_selectPageTomcatSso extends WebFlow { + String PAGE_ID_SELECT_PAGE = "ADM162_S001"; + String LOGIN_PANEL_ID = "XXX009_T001_X001"; + String SELECT_APPLICATION_TABLE_ID = "ADM162_S001_G001"; + String SELECT_OM_TABLE_ID = "ADM162_S001_G002"; + String LIST_OM_ID = "ADM162_S001_B003"; + String CONTINUE_BUTTON_ID = "ADM162_S001_B004"; + String CHANGE_USER_XPATH = "//a[text()='Změna uživatele']"; + String OM_FLORA_ID = "ADM162_S001_G002-1"; + String FIRST_OM_RADIO = "ADM162_S001_G002-0"; + String OPERATIONS_RADIO = "ADM162_S001_G001-1"; + + @Click(OM_FLORA_ID) + @Click(CONTINUE_BUTTON_ID) + void selectOmFloraAndContinue(); + + @Click(FIRST_OM_RADIO) + ADM162_S001_selectPageTomcatSso selectFirstOm(); + + @Click(OPERATIONS_RADIO) + ADM162_S001_selectPageTomcatSso selectUfoOperations(); + + @Click(CONTINUE_BUTTON_ID) + ADM162_S001_selectPageTomcatSsoTransitions clickContinueButton(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/common/landing/ADM162_S001_selectPageTomcatSsoTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/landing/ADM162_S001_selectPageTomcatSsoTransitions.java new file mode 100644 index 0000000..a33b724 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/landing/ADM162_S001_selectPageTomcatSsoTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.common.landing; + +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ADM162_S001_selectPageTomcatSsoTransitions extends WebFlow { + + OPS001_S001_ClientSearchPageUfoOperations onClientSearchPageUfoOperations(); + + HLO001_S001_ClientSearchPage onClientSearchPageUfoBanka(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/common/landing/ApplicationSelectPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/landing/ApplicationSelectPage.java new file mode 100644 index 0000000..bc82ad5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/common/landing/ApplicationSelectPage.java @@ -0,0 +1,108 @@ +package cz.moneta.test.dsl.ufo.common.landing; + +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.cb.landing.SME451_S001_UfoCbLandingPage; +import cz.moneta.test.dsl.ufo.operations.error.ERR701_S001_LDAPErrorPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.BOX701_DataBoxes; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.EXT701_S001_ExternalPartnersMainPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.businessSupport.ROZ702_S001_BusinessSupportMainPage; +import cz.moneta.test.dsl.ufo.ufoframework.pages.HLP901_S001_MainMenuPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.common.landing.ApplicationSelectPage.CONTINUE_BUTTON; + +@Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, waitSecondsForElement = 80, until = Until.GONE) +@Wait(value = CONTINUE_BUTTON, waitSecondsForElement = 80) +public interface ApplicationSelectPage extends WebFlow, StoreAccessor { + + String UFO_COMMERCIAL_BANKING_XPATH = "//input[@value='UFO_Commercial_Banking']"; + String UFO_BANKA_RADIO_XPATH = "//input[@value='UFO_Banka']"; + String UFO_OPERATIONS_RADIO_XPATH = "//input[@value='UFO_Operations']"; + String UFO_EXTERNAL_PARTNERS_RADIO_XPATH = "//input[@value='UFO_Externi_Partneri']"; + String UFO_COMMERCIAL_RADIO_XPATH = "//input[@value='UFO_Commercial_Banking']"; + String UFO_G3_FUNCTIONAL_TESTS_RADIO_XPATH = "//input[@value='UFO_G3_Test_Application_I___Funcional__tests']"; + String BUSINESS_SUPPORT_RADIO_XPATH = "//input[@value='BusinessSupport']"; + String DATABOXES_RADIO_XPATH = "//input[@value='DataBoxes']"; + String BRANCH_UFOHQ_RADIO_XPATH = "//input[@value='86001340']"; + String CONTINUE_BUTTON = "ADM062_S001_B001"; + String FIRST_OM_RADIO = "ADM062_S001_G001-0"; + + /* + According to business rules it is impossible to create customer from HQ. Source: + + 02122120 je nepovolené obchodní místo pro založení a správu produktů klienta, + přenastavte si obchodní místo na standarní pobočku a nikoliv na centrálu HQ. + */ + String BRANCH_RADIO_XPATH = "//table[@id='ADM062_S001_G001_UfoTable']//tr[%s]//input[@type='radio']"; + + @Wait(value = UFO_BANKA_RADIO_XPATH, by = Lookup.XPATH, until = Until.CLICKABLE) + @Click(value = UFO_BANKA_RADIO_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, explicitWaitSeconds = 1)) + @Click(CONTINUE_BUTTON) + HLO001_S001_ClientSearchPage selectUfoBankaAndContinue(); + + @Click(CONTINUE_BUTTON) + HLO001_S001_ClientSearchPage clickContinue(); + + @Wait(value = UFO_OPERATIONS_RADIO_XPATH, by = Lookup.XPATH, until = Until.CLICKABLE) + @Click(value = UFO_OPERATIONS_RADIO_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, explicitWaitSeconds = 1)) + @Click(CONTINUE_BUTTON) + OPS001_S001_ClientSearchPageUfoOperations selectUfoOperationsAndContinueWithoutOmSelect(); + + @Click(value = BUSINESS_SUPPORT_RADIO_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + @Click(CONTINUE_BUTTON) + ROZ702_S001_BusinessSupportMainPage selectBusinessSupportAndContinueWithoutOmSelect(); + + @Click(value = DATABOXES_RADIO_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + @Click(CONTINUE_BUTTON) + BOX701_DataBoxes selectDataboxesAndContinueWithoutOmSelect(); + + @Click(value = UFO_OPERATIONS_RADIO_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + @Click(value = BRANCH_UFOHQ_RADIO_XPATH, by = Lookup.XPATH) + @Click(CONTINUE_BUTTON) + OPS001_S001_ClientSearchPageUfoOperations selectUfoOperationsAndHQContinue(); + + @Click(value = UFO_COMMERCIAL_RADIO_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + @Click(CONTINUE_BUTTON) + SME451_S001_UfoCbLandingPage selectUfoCommercialAndContinue(); + + @Click(value = UFO_G3_FUNCTIONAL_TESTS_RADIO_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + @Click(CONTINUE_BUTTON) + HLP901_S001_MainMenuPage selectUfoFunctionalTestsAndContinue(); + + @Click(value = UFO_EXTERNAL_PARTNERS_RADIO_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + @Click(CONTINUE_BUTTON) + EXT701_S001_ExternalPartnersMainPage selectExternalPartnersAndContinueWithoutOMSelect(); + + @Click(value = UFO_OPERATIONS_RADIO_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + @Click(CONTINUE_BUTTON) + ERR701_S001_LDAPErrorPage selectUfoOperationsAndContinueToLDAPErrorPage(); + + @Click(value = UFO_COMMERCIAL_BANKING_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + @Click(CONTINUE_BUTTON) + SME451_S001_UfoCbLandingPage selectUfoCommercialBankingAndContinue(); + + @Click(FIRST_OM_RADIO) + ApplicationSelectPage clickFirstOM(); + + @CustomAction + default ApplicationSelectPage selectOm(int order) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String xpath = String.format(BRANCH_RADIO_XPATH, order); + endpoint.jsClick(() -> xpath, Lookup.XPATH); + return null; + } + + @CustomAction + default ApplicationSelectPage selectFirstOmIfPresent() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String xpath = String.format(BRANCH_RADIO_XPATH, "1"); + if (endpoint.isElementVisible(2, xpath, Lookup.XPATH)) { + endpoint.click(() -> xpath, Lookup.XPATH); + } + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFHK8.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFHK8.java new file mode 100644 index 0000000..91871bd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFHK8.java @@ -0,0 +1,70 @@ +package cz.moneta.test.dsl.ufo.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +public interface MWFHK8 extends MwfRequest { + + @Parameter(name = "Adresy_OutputAktualniFlag") + MWFHK8 AdresyOutputAktualniFlag(String AdresyOutputAktualniFlag); + @Parameter(name = "Adresy_OutputSysIDs") + MWFHK8 AdresyOutputSysIDs(String AdresyOutputSysIDs); + @Parameter(name = "BusinessRequestor") + MWFHK8 BusinessRequestor(String BusinessRequestor); + @Parameter(name = "BusinessTarget") + MWFHK8 BusinessTarget(String BusinessTarget); + @Parameter(name = "CisloDokladu") + MWFHK8 CisloDokladu(String CisloDokladu); + @Parameter(name = "CisloKarty") + MWFHK8 CisloKarty(String CisloKarty); + @Parameter(name = "CisloSmlouvy") + MWFHK8 CisloSmlouvy(String CisloSmlouvy); + @Parameter(name = "CisloUctu") + MWFHK8 CisloUctu(String CisloUctu); + @Parameter(name = "DatumNarozeni") + MWFHK8 DatumNarozeni(java.util.Date DatumNarozeni); + @Parameter(name = "DokladTyp") + MWFHK8 DokladTyp(String DokladTyp); + @Parameter(name = "ICO") + MWFHK8 Ico(String Ico); + @Parameter(name = "IDAdresy") + MWFHK8 IDAdresy(Long IDAdresy); + @Parameter(name = "IDAdresy_SRCSystem") + MWFHK8 IDAdresySRCSystem(String IDAdresySRCSystem); + @Parameter(name = "IDCustomer") + MWFHK8 IDCustomer(String IDCustomer); + @Parameter(name = "IDInstanceKlienta") + MWFHK8 IDInstanceKlienta(Long IDInstanceKlienta); + @Parameter(name = "IDKonsolidovanehoKlienta") + MWFHK8 IDKonsolidovanehoKlienta(Long IDKonsolidovanehoKlienta); + @Parameter(name = "IDUnifikovanehoKlienta") + MWFHK8 IDUnifikovanehoKlienta(Long IDUnifikovanehoKlienta); + @Parameter(name = "IDZadosti") + MWFHK8 IDZadosti(String IDZadosti); + @Parameter(name = "IDZdrojovehoSystemu") + MWFHK8 IDZdrojovehoSystemu(String IDZdrojovehoSystemu); + @Parameter(name = "IDZdrojovehoSystemu_OUTPUT") + MWFHK8 IDZdrojovehoSystemuOUTPUT(String IDZdrojovehoSystemuOUTPUT); + @Parameter(name = "Jmeno") + MWFHK8 Jmeno(String Jmeno); + @Parameter(name = "KartaRole") + MWFHK8 KartaRole(String KartaRole); + @Parameter(name = "MaximalniPocetZaznamu") + MWFHK8 MaximalniPocetZaznamu(Long MaximalniPocetZaznamu); + @Parameter(name = "NazevFirmy") + MWFHK8 NazevFirmy(String NazevFirmy); + @Parameter(name = "Prijmeni") + MWFHK8 Prijmeni(String Prijmeni); + @Parameter(name = "Priznak_BankovniTajemstvi") + MWFHK8 PriznakBankovniTajemstvi(String PriznakBankovniTajemstvi); + @Parameter(name = "Priznak_RozsirenyVystup") + MWFHK8 PriznakRozsirenyVystup(String PriznakRozsirenyVystup); + @Parameter(name = "RC") + MWFHK8 Rc(String Rc); + @Parameter(name = "TypyOsobyFiltr") + MWFHK8 TypyOsobyFiltr(String TypyOsobyFiltr); + @Parameter(name = "UcelDotazu") + MWFHK8 UcelDotazu(String UcelDotazu); + @Parameter(name = "ZECO") + MWFHK8 Zeco(String Zeco); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFHK8Data.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFHK8Data.java new file mode 100644 index 0000000..96079a9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFHK8Data.java @@ -0,0 +1,125 @@ +package cz.moneta.test.dsl.ufo.mwf; + +import java.util.Map; + +public class MWFHK8Data { + + private Map params; + + public MWFHK8Data(Map params) { + this.params = params; + } + + public Long RsIdunifikovanehoklienta() { + return (Long) params.get("RS_IDUNIFIKOVANEHOKLIENTA"); + } + + public String RsBusinesstarget() { + return (String) params.get("RS_BUSINESSTARGET"); + } + + public String RsRc() { + return (String) params.get("RS_RC"); + } + + public String RsIco() { + return (String) params.get("RS_ICO"); + } + + public String RsIdcustomer() { + return (String) params.get("RS_IDCUSTOMER"); + } + + public String RsTyposoby() { + return (String) params.get("RS_TYPOSOBY"); + } + + public java.util.Date RsDatumnarozeni() { + return (java.util.Date) params.get("RS_DATUMNAROZENI"); + } + + public String RsTitulpred() { + return (String) params.get("RS_TITULPRED"); + } + + public String RsTitulza() { + return (String) params.get("RS_TITULZA"); + } + + public String RsJmeno() { + return (String) params.get("RS_JMENO"); + } + + public String RsPrijmeni() { + return (String) params.get("RS_PRIJMENI"); + } + + public String RsNazev() { + return (String) params.get("RS_NAZEV"); + } + + public String RsPsc() { + return (String) params.get("RS_PSC"); + } + + public String RsMesto() { + return (String) params.get("RS_MESTO"); + } + + public String RsPohlavi() { + return (String) params.get("RS_POHLAVI"); + } + + public String RsZeme() { + return (String) params.get("RS_ZEME"); + } + + public String RsPravniforma() { + return (String) params.get("RS_PRAVNIFORMA"); + } + + public String RsStatniprislusnost() { + return (String) params.get("RS_STATNIPRISLUSNOST"); + } + + public String RsCislopopisne() { + return (String) params.get("RS_CISLOPOPISNE"); + } + + public Long RsIdkonsolidovanehoklienta() { + return (Long) params.get("RS_IDKONSOLIDOVANEHOKLIENTA"); + } + + public Long RsId101instance() { + return (Long) params.get("RS_ID101INSTANCE"); + } + + public String RsUlice() { + return (String) params.get("RS_ULICE"); + } + + public String RsCisloorientacni() { + return (String) params.get("RS_CISLOORIENTACNI"); + } + + public String RsCif() { + return (String) params.get("RS_CIF"); + } + + public Long RsIdcustomercount() { + return (Long) params.get("RS_IDCUSTOMERCOUNT"); + } + + public String RsStavmanualunifikace() { + return (String) params.get("RS_STAVMANUALUNIFIKACE"); + } + + public java.util.Date RsUmrtidatum() { + return (java.util.Date) params.get("RS_UMRTIDATUM"); + } + + public Long RsUmrtipriznak() { + return (Long) params.get("RS_UMRTIPRIZNAK"); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFHK8Response.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFHK8Response.java new file mode 100644 index 0000000..4c509fa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFHK8Response.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWFHK8Response { + + @Parameter(name = "Data") + java.util.List Data(); + + @Parameter(name = "Pocet") + Long Pocet(); + + @Parameter(name = "PocetNalezenychZaznamu") + Long PocetNalezenychZaznamu(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFJM1.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFJM1.java new file mode 100644 index 0000000..4eee289 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFJM1.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.mwf; + +import cz.moneta.test.harness.support.mwf.ApiVersion; +import cz.moneta.test.harness.support.mwf.Parameter; +import cz.moneta.test.harness.support.mwf.MwfRequest; + +@ApiVersion(versionPPE = "472") +public interface MWFJM1 extends MwfRequest { + + @Parameter(name = "BANK_SECRET") + MWFJM1 bankSecret(String bankSecret); + @Parameter(name = "BUSINESS") + MWFJM1 business(String business); + @Parameter(name = "ICO") + MWFJM1 ico(String ico); + @Parameter(name = "PURPOSE") + MWFJM1 purpose(String purpose); + @Parameter(name = "SRC_SYS_ID") + MWFJM1 srcSysId(String srcSysId); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFJM1Response.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFJM1Response.java new file mode 100644 index 0000000..50eb262 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/mwf/MWFJM1Response.java @@ -0,0 +1,58 @@ +package cz.moneta.test.dsl.ufo.mwf; + +import cz.moneta.test.harness.support.mwf.Parameter; + +public interface MWFJM1Response { + + @Parameter(name = "ADDR_CITY") + String addrCity(); + + @Parameter(name = "ADDR_HOUSE_NUM") + String addrHouseNum(); + + @Parameter(name = "ADDR_STATE") + String addrState(); + + @Parameter(name = "ADDR_STREET") + String addrStreet(); + + @Parameter(name = "ADDR_ZIP") + String addrZip(); + + @Parameter(name = "BEARER_SHARE_FLAG") + Long bearerShareFlag(); + + @Parameter(name = "END_DATE") + java.util.Date endDate(); + + @Parameter(name = "LEGAL_FORM") + String legalForm(); + + @Parameter(name = "MAR_ASSETS_ID") + String marAssetsId(); + + @Parameter(name = "NACEkod") + String nACEkod(); + + @Parameter(name = "PROMISED_MADE_DT") + java.util.Date promisedMadeDt(); + + @Parameter(name = "PROMISED_TURNOVER") + String promisedTurnover(); + + @Parameter(name = "PRSN_FULL_NAME") + String prsnFullName(); + + @Parameter(name = "RISK_NACE_FLAG") + Long riskNaceFlag(); + + @Parameter(name = "START_DATE") + java.util.Date startDate(); + + @Parameter(name = "STATE_REGISTRATION") + String stateRegistration(); + + @Parameter(name = "SektorEkonomiky") + String sektorEkonomiky(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ApplicationEvaluationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ApplicationEvaluationPage.java new file mode 100644 index 0000000..8fbb67a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ApplicationEvaluationPage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.client.ApplicationEvaluationPage.PAGE_TITLE; + +@Wait(value = PAGE_TITLE, by = Lookup.XPATH) +public interface ApplicationEvaluationPage extends WebFlow, ScoringDataVerticalMenu { + String PAGE_TITLE = "//div[text()='Vyhodnocení Žádost']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ApplicationListPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ApplicationListPage.java new file mode 100644 index 0000000..15c55b4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ApplicationListPage.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX702_SharedTopMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.client.ApplicationListPage.LOAD_ALL_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(LOAD_ALL_BUTTON) +public interface ApplicationListPage extends WebFlow, XXX702_SharedTopMenu { + String LOAD_ALL_BUTTON = "XXX702_T001_B027"; + String DETAIL_BUTTON = "XXX702_T001_P045-1"; + String LOAD_BUTTON = "XXX702_T001_B026"; + String COPY_BUTTON = "XXX702_T001_B034"; + String FINISH_BUTTON = "XXX702_T001_B029"; + String DECISION_BUTTON = "XXX702_T001_B030"; + String STORNO_BUTTON = "XXX702_T001_B028"; + String CLIENT_DETAIL = "//button [contains(@title, '[XXX702_T001_I006]')]"; + + @CheckElementContent("XXX702_T001_L303-1") + ApplicationListPage assertFirstApplicationProductType(String firstApplicationProductType); + + @CheckElementContent("XXX702_T001_L305-1") + ApplicationListPage assertFirstApplicationRequestedAmount(String firstApplicationRequestedAmount); + + @CheckElementContent("XXX702_T001_L306-1") + ApplicationListPage assertFirstApplicationApprovedAmount(String firstApplicationApprovedAmount); + + @Wait(explicitWaitSeconds = 1) // There is a moment when list is full of some random items, can't think of better way to track it + @CheckElementContent("XXX702_T001_L285-1") + ApplicationListPage assertFirstApplicationState(String firstApplicationState); + + @CheckElementContent("XXX702_T001_L310-1") + ApplicationListPage assertFirstApplicationChannel(String channel); + + @CheckElementPresent(DETAIL_BUTTON) + ApplicationListPage assertApplicationDetailButton(); + + @CheckElementPresent(LOAD_BUTTON) + ApplicationListPage assertApplicationLoadButton(); + + @CheckElementPresent(LOAD_ALL_BUTTON) + ApplicationListPage assertApplicationLoadAllButton(); + + @CheckElementPresent(COPY_BUTTON) + ApplicationListPage assertApplicationCopyButton(); + + @CheckElementPresent(FINISH_BUTTON) + ApplicationListPage assertApplicationFinishButton(); + + @CheckElementPresent(DECISION_BUTTON) + ApplicationListPage assertApplicationDecisionButton(); + + @CheckElementPresent(STORNO_BUTTON) + ApplicationListPage assertApplicationStornoButton(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(value = CLIENT_DETAIL, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickClientDetail(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ClientEvaluationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ClientEvaluationPage.java new file mode 100644 index 0000000..cbf64e3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ClientEvaluationPage.java @@ -0,0 +1,78 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.dsl.ufo.operations.shared.UfoOpsUtils; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.util.Level; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.client.ClientEvaluationPage.PAGE_TITLE; + +@Wait(value = PAGE_TITLE, by = Lookup.XPATH) +public interface ClientEvaluationPage extends WebFlow, StoreAccessor, ScoringDataVerticalMenu { + String PAGE_TITLE = "//div[text()='Vyhodnocení Klient']"; + String DSTI_CELL_TEXT = "ČNB DSTI"; + String GRADE_STORE = "GRADE_STORE"; + + int INCOME_SIBLING_INDEX = 1; + int INTERNAL_PAYMENTS_SIBLING_INDEX = 3; + int EXTERNAL_PAYMENTS_SIBLING_INDEX = 4; + int MAX_INSTALMENT_SIBLING_INDEX = 6; + int INDICATOR_SIBLING_INDEX = 7; + + int SCORE_SIBLING_INDEX = 1; + int SCORECARD_SIBLING_INDEX = 2; + int CUTOFF_SIBLING_INDEX = 3; + int GRADE_SIBLING_INDEX = 6; + + @CustomAction + default ClientEvaluationPage checkDstiValues(float dstiCoef) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + + float income = UfoOpsUtils.getTableValueFloat(DSTI_CELL_TEXT, INCOME_SIBLING_INDEX, endpoint); + float internalPayments = UfoOpsUtils.getTableValueFloat(DSTI_CELL_TEXT, INTERNAL_PAYMENTS_SIBLING_INDEX, endpoint); + float externalPayments = UfoOpsUtils.getTableValueFloat(DSTI_CELL_TEXT, EXTERNAL_PAYMENTS_SIBLING_INDEX, endpoint); + float maxInstalment = UfoOpsUtils.getTableValueFloat(DSTI_CELL_TEXT, MAX_INSTALMENT_SIBLING_INDEX, endpoint); + + float maxInstalmentCalc = income * dstiCoef - internalPayments - externalPayments; + + try { + Assertions.assertEquals(maxInstalmentCalc, maxInstalment); + } catch (AssertionError e) { + log(Level.ERROR, "Max installment: " + e.getMessage()); + } + return null; + } + + @CustomAction + default ClientEvaluationPage checkScorecardValues(boolean useApplicationScore, String expectedScorecard, int expectedCutoff) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String usedScorecard = UfoOpsUtils.getScoreTableValueString(useApplicationScore, SCORECARD_SIBLING_INDEX, endpoint); + float actualCutoff = UfoOpsUtils.getScoreTableValueFloat(useApplicationScore, CUTOFF_SIBLING_INDEX, endpoint); + + try { + Assertions.assertEquals(expectedScorecard, usedScorecard); + } catch (AssertionError e) { + log(Level.ERROR, "Scorecard: " + e.getMessage()); + } + try { + Assertions.assertEquals(expectedCutoff, actualCutoff); + } catch (AssertionError e) { + log(Level.ERROR, "Cutoff: " + e.getMessage()); + } + return null; + } + + @CustomAction + default ClientEvaluationPage logClientGrade(boolean useApplicationScore) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String grade = UfoOpsUtils.getScoreTableValueString(useApplicationScore, GRADE_SIBLING_INDEX, endpoint); + log("Client grade is {}", grade); + store(GRADE_STORE, grade); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ClientRiskDetails.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ClientRiskDetails.java new file mode 100644 index 0000000..b5cb379 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ClientRiskDetails.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.client.ClientRiskDetails.AP_LIST_TABLE; + +@Wait({AP_LIST_TABLE}) +public interface ClientRiskDetails extends StoreAccessor, WebFlow { + + String AP_LIST_TABLE = "SCH707_S001_G001_UfoTable"; + String AP_LIST_TABLE_XPATH = "//table [@id='" + AP_LIST_TABLE + "']"; + String ERROR_BUTTON = "SCH707_S001_B009"; + String APPROVAL_DATA_BUTTON = "SCH707_S001_B013"; + String AP_REQUIREMENT_NUMBER_INPUT = AP_LIST_TABLE_XPATH + "//input[@value='%s']"; + + @CustomAction + default ClientRiskDetails clickAP(String AP) { + String xpath = String.format(AP_REQUIREMENT_NUMBER_INPUT, AP); + getEndpoint(UfoEndpoint.class).click(() -> xpath, Lookup.XPATH); + return null; + } + + @Click(ERROR_BUTTON) + ClientRiskDetails clickErrorButton(); + + @Click(APPROVAL_DATA_BUTTON) + ScoringDataPage clickApprovalDataButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/EssDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/EssDetailPage.java new file mode 100644 index 0000000..1d2219f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/EssDetailPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.client.EssDetailPage.PAGE_TITLE; + +@Wait(value = PAGE_TITLE, by = Lookup.XPATH) +public interface EssDetailPage extends WebFlow { + String PAGE_TITLE = "//div[text()='Členové ESS']"; + String ESS_MEMBER_EXPOSURE_DETAIL_LINK = "ESS702_S001_B002"; + + @Click(ESS_MEMBER_EXPOSURE_DETAIL_LINK) + EssMemberExposurePage clickEssMemberExposureDetailLink(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/EssMemberExposurePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/EssMemberExposurePage.java new file mode 100644 index 0000000..275823c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/EssMemberExposurePage.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.client.EssMemberExposurePage.PAGE_TITLE; + +@Wait(value = PAGE_TITLE, by = Lookup.XPATH) +public interface EssMemberExposurePage extends WebFlow { + String PAGE_TITLE = "//div[text()='UVA člena ESS']"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/HLA701_S001_EmployeeDetailsConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/HLA701_S001_EmployeeDetailsConfirmationPage.java new file mode 100644 index 0000000..140d45e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/HLA701_S001_EmployeeDetailsConfirmationPage.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.Assert; +import org.openqa.selenium.WebElement; + +import java.util.List; + +import static cz.moneta.test.dsl.ufo.operations.client.HLA701_S001_EmployeeDetailsConfirmationPage.NO_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.client.HLA701_S001_EmployeeDetailsConfirmationPage.YES_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait({YES_BUTTON, NO_BUTTON}) +public interface HLA701_S001_EmployeeDetailsConfirmationPage extends WebFlow, StoreAccessor { + String YES_BUTTON = "HLA701_S001_B002"; + String NO_BUTTON = "HLA701_S001_B003"; + String CONFIRMATION_BUTTONS_XPATH = "//button[(@id='HLA701_S001_B002' or @id='HLA701_S001_B003') and not(contains(@style,'display: none'))]"; + + @Click(YES_BUTTON) + STS701_S002_ClientDetailPage clickYes(); + + @Click(value = NO_BUTTON) + OPS001_S001_ClientSearchPageUfoOperations clickNo(); + + @CustomAction + default HLA701_S001_EmployeeDetailsConfirmationPage checkConfirmationButtonsOfEmployeePrivilege(int buttonsCount) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, Lookup.XPATH, Until.VISIBLE, CONFIRMATION_BUTTONS_XPATH); + List buttons = endpoint.findAndGetListOfElements(CONFIRMATION_BUTTONS_XPATH, Lookup.XPATH); + Assert.assertEquals(buttonsCount, buttons.size()); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/NewProductsByNameUfoOps.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/NewProductsByNameUfoOps.java new file mode 100644 index 0000000..47e720a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/NewProductsByNameUfoOps.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum NewProductsByNameUfoOps implements DynamicPathPart { + CREDIT_CARD("Kreditní karta"); + + private final String value; + + NewProductsByNameUfoOps(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/NewProductsUfoOps.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/NewProductsUfoOps.java new file mode 100644 index 0000000..4c8255c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/NewProductsUfoOps.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum NewProductsUfoOps implements DynamicPathPart { + UNIVERSAL_REQUEST("86"), + ADC_INFO_SERVIS("95"), + ADC_SMART_BANKA("70"), + COMMON_ACCOUNT("12"), + EXPRES("16"), + EXPRES_PLUS("92"), + FLEXIKREDIT("15"), + CONSOLIDATION("58"), + CONSOLIDATION_PLUS("93"), + CREDIT_CARD("29"), + DEBIT_CARD("27"), + INSURANCE("77"); + + private final String value; + + NewProductsUfoOps(String value) { + this.value = value; + } + + @Override + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/STO702_S002_ApproveAlreadyReadPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/STO702_S002_ApproveAlreadyReadPage.java new file mode 100644 index 0000000..23c0f5b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/STO702_S002_ApproveAlreadyReadPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.client.STO702_S002_ApproveAlreadyReadPage.APPROVE_ALREADY_READ_TO_CLIENT_DIV; +import static cz.moneta.test.dsl.ufo.operations.client.STO702_S002_ApproveAlreadyReadPage.CONTINUE_BUTTON; + +@Wait({CONTINUE_BUTTON, APPROVE_ALREADY_READ_TO_CLIENT_DIV}) +public interface STO702_S002_ApproveAlreadyReadPage extends WebFlow { + String CONTINUE_BUTTON = "STO702_S002_B001"; + String APPROVE_ALREADY_READ_TO_CLIENT_DIV = "STO702_S002_L002"; + String CONSENT_SIGNED_AT_OM_DIV = "STO702_S002_L005"; + String DATE_OF_SIGNING_CONSENT_DIV = "STO702_S002_L006"; + + @Click(CONTINUE_BUTTON) + STO702_S002_ApproveAlreadyReadPageTransitions clickContinue(); + + @CheckElementPresent(CONSENT_SIGNED_AT_OM_DIV) + STO702_S002_ApproveAlreadyReadPage checkOmOfConsentSigning(); + + @CheckElementPresent(DATE_OF_SIGNING_CONSENT_DIV) + STO702_S002_ApproveAlreadyReadPage checkDateOfSigningConsent(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/STO702_S002_ApproveAlreadyReadPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/STO702_S002_ApproveAlreadyReadPageTransitions.java new file mode 100644 index 0000000..055deee --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/STO702_S002_ApproveAlreadyReadPageTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_AdcProductsPanel; +import cz.moneta.test.dsl.ufo.operations.client.creditcard.OPK705_S102_ScoringResultPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface STO702_S002_ApproveAlreadyReadPageTransitions extends WebFlow { + + OPK705_S102_ScoringResultPage onCreditCardScoring(); + + STS701_S002_AdcProductsPanel onAdcProductsPanel(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ScoringDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ScoringDataPage.java new file mode 100644 index 0000000..108d3ed --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ScoringDataPage.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.client.ScoringDataPage.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ScoringDataPage extends WebFlow, ScoringDataVerticalMenu { + String PAGE_TITLE = "EMA703_S001_L001"; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ScoringDataVerticalMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ScoringDataVerticalMenu.java new file mode 100644 index 0000000..0252587 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/ScoringDataVerticalMenu.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.operations.client; + +import cz.moneta.test.harness.support.web.Builder; +import cz.moneta.test.harness.support.web.Click; + +public interface ScoringDataVerticalMenu extends Builder { + String CLIENT_EVALUATION_LINK = "EMA799_S001_I006"; + String APPLICATION_EVALUATION_LINK = "EMA799_S001_I008"; + String ESS_EXPOSURE_DETAIL_LINK = "EMA799_S001_I022"; + + @Click(CLIENT_EVALUATION_LINK) + ClientEvaluationPage clickClientEvaluationLink(); + + @Click(APPLICATION_EVALUATION_LINK) + ApplicationEvaluationPage clickApplicationEvaluationLink(); + + @Click(ESS_EXPOSURE_DETAIL_LINK) + EssDetailPage clickEssExposureDetailLink(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_AdcProductsPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_AdcProductsPanel.java new file mode 100644 index 0000000..3278cb7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_AdcProductsPanel.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.ufo.operations.client.clientDetail; + +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_AdcProductsPanel.ADC_PRODUCT; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = ADC_PRODUCT) +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) +public interface STS701_S002_AdcProductsPanel extends STS701_S002_ClientDetailPage, STS701_S002_InfoServiceExpressSettings, STS701_S002_InfoServiceOrderDetail, STS701_S002_InfoServiceOrdersList { + String ADC_PRODUCT = "STS701_S002_C018"; + String CANCEL_INTERNET_BANK_BUTTON = "STS701_S002_B048"; + String CANCEL_BANK_CLIENT_BUTTON = "STS701_S002_B060"; + String FIRST_CANCEL_SMART_BANK_XPATH = "(//img[contains(@id, 'STS701_S002_P005') and not(contains(@style,'display: none;'))])[1]"; + String FIRST_SMART_BANK_CHECKBOX = FIRST_CANCEL_SMART_BANK_XPATH + "/../../..//input"; + String STATUS_MESSAGE_DIV = "XXX702_T001_L107"; + + @Click(CANCEL_INTERNET_BANK_BUTTON) + @AcceptAlert(waitSecondsForAlert = 5) + STS701_S002_ClientDetailPage clickCancelInternetBank(); + + @Click(CANCEL_BANK_CLIENT_BUTTON) + @AcceptAlert(waitSecondsForAlert = 5) + STS701_S002_ClientDetailPage clickCancelBankClient(); + + @AcceptAlert(waitSecondsForAlert = 10) + STS701_S002_ClientDetailPage acceptAlert(); + + @Click(value = FIRST_CANCEL_SMART_BANK_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_AdcProductsPanel clickFirstCancelSmartBank(); + + @Click(value = FIRST_SMART_BANK_CHECKBOX, by = Lookup.XPATH) + STS701_S002_AdcProductsPanel clickFirstSmartBank(); + + @CustomAction + default STS701_S002_AdcProductsPanel checkStatusMessage(String expectedStatusMessage) { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, Until.VISIBLE, STATUS_MESSAGE_DIV); + String fullText = endpoint.getText(STATUS_MESSAGE_DIV); + String textWithoutTime = fullText.replaceFirst("^\\d{2}:\\d{2}:\\d{2}", ""); + Assertions.assertTrue(textWithoutTime.contains(expectedStatusMessage)); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_ClientDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_ClientDetailPage.java new file mode 100644 index 0000000..ad7e118 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_ClientDetailPage.java @@ -0,0 +1,726 @@ +package cz.moneta.test.dsl.ufo.operations.client.clientDetail; + +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS701_S004_ConfirmationOfAccountHolding; +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.EVY701_S001_StatementsDistributionPage; +import cz.moneta.test.dsl.ufo.operations.client.ApplicationListPage; +import cz.moneta.test.dsl.ufo.operations.client.NewProductsByNameUfoOps; +import cz.moneta.test.dsl.ufo.operations.client.NewProductsUfoOps; +import cz.moneta.test.dsl.ufo.operations.client.STO702_S002_ApproveAlreadyReadPage; +import cz.moneta.test.dsl.ufo.operations.client.product.ADC739_S001_IBSBPage; +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX702_SharedTopMenu; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import java.time.Duration; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage.*; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(LIST_OF_OFFERS) +@Wait(value = LIST_OF_PRODUCTS, by = Lookup.XPATH) +@Wait(value = {CIF_DIV, RC_DIV}) +@Wait(value = APPLICATIONS_BUTTON, by = Lookup.XPATH) +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 80) +public interface STS701_S002_ClientDetailPage extends StoreAccessor, WebFlow, XXX702_SharedTopMenu { + + String CURRENT_ACCOUNT_NUMBER_KEY = "CURRENT_ACCOUNT_NUMBER"; + String CIF_STORE_KEY = "CIF"; + String ACTUAL_ADDRESS_KEY = "ACTUAL_ADDRESS"; + String CIF_DIV = "XXX702_T002_L101"; + String RC_DIV = "XXX702_T001_L009"; + String CREATE_NEW_BUTTON = "STS701_S002_B001"; + String APPLICATIONS_BUTTON = "//button[text()='Žádosti']"; + String NEW_PRODUCT_GENERAL_XPATH = "//input[@value='%1$s']"; + String NEW_PRODUCT_BY_NAME_GENERAL_XPATH = "//table[@id='STS701_S002_G002_UfoTable']//td[text()='%1$s']"; + String LIST_OF_OFFERS = "STS701_S002_V002"; + String LIST_OF_PRODUCTS = "//fieldset[@id='STS701_S002_Y002']/legend[text()='Produkty']"; + String BACK_OFFER_MANUAL_BUTTON = "ZAS701_S002_P007"; + String LIST_CARDS_BUTTON = "STS701_S002_I021"; + String BACK_LIST_CARDS_BUTTON = "OPK730_S001_B001"; + String CHANGE_DISTRIBUTION_BUTTON = "STS701_S002_I058"; + String BACK_CHANGE_DISTRIBUTION_BUTTON = "EVY701_S001_B002"; + String ACCOUNT_LIST_XPATH = "//button[contains(@title, 'STS701_S002_I029')]"; + String CREDIT_CARD_LIST_XPATH = "//button[contains(@title, 'STS701_S002_I030')]"; + String CREDIT_CARD_CONTRACT_STATE_LABEL = "STS701_S002_L422"; + String ADC_PANEL_XPATH = "//button[contains(@title, 'STS701_S002_I187')]"; + String CLIENT_DETAIL_XPATH = "//button[contains(@title, 'STS701_S002_I009')]"; + String TREE_CREDIT_CARD_XPATH = "//span[contains(text(), 'Kredit')]"; + String CLIENT_CONSENTS_BUTTON = "XXX702_T001_P046"; + String SALE_BUTTON = "//button[contains(@title, '[XXX702_T001_I010]')]"; + String SALE_TAB = "XXX702_T001_L337"; + String CONTACT_INFORMATION = "//button [contains(@title, '[XXX702_T001_I011]')]"; + String ADDRESS_TABLE = "XXX702_T001_G003_UfoTable"; + String OFFERS_TABLE = "//button[contains(@title, '[XXX702_T001_I014]')]"; + String OFFERS_CHECK_BOX = "XXX702_T001_H001_AKT"; + String DEMAND_TABLE = "//button[contains(@title, '[XXX702_T001_I015]')]"; + String DEMAND_DESCRIPTION = "XXX702_T001_L269-1"; + String DEMAND_DESCRIPTION_SECOND_ROW = "XXX702_T001_L269-2"; + String TASKS_TABLE = "//button[contains(@title, '[XXX702_T001_I016]')]"; + String TASKS_LABLE = "XXX702_T001_G009_UfoTable_clone"; + String REQUEST_TABLE = "//button[contains(@title, '[XXX702_T001_I018')]"; + String REQUEST_RADIO = "XXX702_T001_R008_1"; + String NOTIFICATION_TABLE = "//button[contains(@title, '[XXX702_T001_I019]')]"; + String NOTIFICATION_LABEL = "XXX702_T001_L226"; + String FUTURE_OPPORTUNITY = "//button[contains(@title, '[STS701_S002_I003]')]"; + String OPPORTUNITY_TABLE = "STS701_S002_G011_clone"; + String RETENTION = "//button[contains(@title, '[STS701_S002_I004]')]"; + String RETENTION_TABLE = "STS701_S002_L019"; + String FRAUD_SUSPECTED = "//button[contains(@title, '[STS701_S002_I028]')]"; + String FRAUD_TABLE = "STS701_S002_G009_UfoTable"; + String COMMUNICATIONS_AND_REMINDERS = "//button[contains(@title, '[STS701_S002_I005]')]"; + String COMMUNICATIONS_AND_REMINDERS_TABLE = "STS701_S002_L544"; + String PRODUCT_LABEL = "STS701_S002_L089"; + String POST_SALES_CALLS_BUTTON = "STS701_S002_I123"; + String BLOCK_MK_BUTTON = "STS701_S002_B049"; + String STATUS_MK_LABEL = "STS701_S002_L847"; + String STATUS_IB_LABEL = "STS701_S002_L845"; + String IB_BLOCATION_COMBOBOX = "STS701_S002_C025"; + String BLOCK_IB_BUTTON = "STS701_S002_B047"; + String UNBLOCK_IB_BUTTON = "STS701_S002_P020-1"; + String PRINT_LETTERS_CIF_BUTTON = "STS701_S002_I034"; + String PRINT_LETTERS_ACCOUNT_BUTTON = "STS701_S002_I164"; + String TREE_ACCOUNT_XPATH = "//span[contains(text(), 'Běžný')]"; + String INSURANCE = "STS701_S002_I078"; + String TRANSACTIONS = "STS701_S002_I012"; + String CHANGE_BUTTON = "EVY701_S001_B001"; + String DEBIT_CARD_LIST = "//button[contains(@title, '[STS701_S002_I032]')]"; + String BLOCATION_DEBIT_BUTTON = "STS701_S002_I142"; + String CARD_ACTIVITIES_BUTTON = "STS701_S002_I150"; + String CARD_RENEVAL_BUTTON = "STS701_S002_I148"; + String PIN_ACTIVATION_BUTTON = "STS701_S002_I060"; + String STATEMENTS_BUTTON = "STS701_S002_I073"; + String DATA_CHANGES_BUTTON = "STS701_S002_I144"; + String PACKAGES_BUTTON = "STS701_S002_I069"; + String BLOCATION_CREDIT_BUTTON = "STS701_S002_I018"; + String CONTRACT_ACTIVITIES = "STS701_S002_I102"; + String BLOCATION_MENU_BUTTON = "STS701_S002_I145"; + String GENERATING_MENU = "STS701_S002_I138"; + String GENERATING_CREDIT_CARD_BUTTON = "STS701_S002_I015"; + String TRANSACTION_AND_STATEMENTS_BUTTON = "STS701_S002_I010"; + String ADVANTAGE_ON_CARD_BUTTON = "STS701_S002_I143"; + String TREE_LOAN_XPATH = "//span[contains(text(), 'Expres')]"; + String LOANS_BLOCKATION_TRANSACTION_MENU = "STS701_S002_I076"; + String LOANS_BLOCKATION_BUTTON = "STS701_S002_I077"; + String LETTERS_PRINTING_BUTTON = "STS701_S002_I089"; + String AMORTIZATION_TABLE_BUTTON = "STS701_S002_I089"; + String TREE_SAVING_ACCOUNT_XPATH = "//span[contains(text(), 'Spořící')]"; + String SAVING_ACCOUNT_TRANSACTIONS = "STS701_S002_I012"; + String CIF_MENU_BUTTON = "STS701_S002_I006"; + String CIF_DETAI_BUTTON = "STS701_S002_I013"; + String HISTORY_SMS_EMAILS = "STS701_S002_I183"; + String CARDS_LIST = "STS701_S002_I021"; + String CANCELED_ACCOUNTS = "STS701_S002_I019"; + String SENDING_OFFERS_MANUALS = "STS701_S002_I043"; + String CURRENT_ACCOUNT_NUMBER_DIV = "STS701_S002_L817"; + String CONTRACT_ID_DIV = "STS701_S002_L182"; + String PICK_NEW_DEBIT_CARD_COMBOBOX = "STS701_S002_C005"; + String NUMBER_OF_CARD_DIV = "STS701_S002_L110"; + String FIRST_CURRENT_ACCOUNT_COMBOBOX = "STS701_S002_C004"; + String CHECK_ACCOUNT_STATE = "STS701_S002_L174"; + String REFRESH_REQUIREMENT_BUTTON = "XXX702_T001_B001"; + String BANK_BACK_OFFICE_BUTTON = "STS701_S002_I017"; + String TRANSFER_TO_530 = "STS701_S002_I106"; + String TRANSFER_TO_535 = "STS701_S002_I108"; + String TRANSFER_TO_536 = "STS701_S002_I056"; + String TRANSFER_TO_730 = "STS701_S002_I193"; + String ACCOUNT_BENEFITS = "STS701_S002_I053"; + String INTERNET_BANK_SPAN = "//span[contains(text(), 'Internet')]"; + String INFO_SERVICE_SPAN = "//span[contains(text(), 'InfoServis')]"; + String BANK_CLIENT_SPAN = "//span[contains(text(), 'BankKlient')]"; + String SMART_BANK_SPAN = "//span[contains(text(), 'Smart Banka')]"; + String CANCEL_ADC_PRODUCT_DIV = "XXX702_T001_L107"; + String INTERNET_BANK_DISPO_XPATH_CLIENT_SPAN = "//span[contains(text(), 'Internet Banka heslo/MK - Dispomodel (Aktivní)')]"; + String INTERNET_BANK_DISPO_XPATH = "//*[@id=\"STS701_S002_T001\"]/div/div[3]/div[2]/div[1]/div/span/span"; + String SMART_BANK_DISPO_XPATH = "//*[@id=\"STS701_S002_T001\"]/div/div[3]/div[2]/div[2]/div/span/span"; + String DETAIL_OF_ADC_PRODUCT = "STS701_S002_B007"; + String PLACE_OF_BUSINESS = "STS701_S002_L093"; + + String BACK_BUTTON = "HPO703_S001_S014"; + String LOANS_BUTTON_XPATH = "//button[contains(@title, '[STS701_S002_I064]')]"; + String RC_OF_HOLDER_LABEL = "STS701_S002_L157"; + String NUMBER_OF_LOANS_ACCOUNT = "STS701_S002_L269"; + String REQUEST_LIST = "//button[contains(@title, '[XXX702_T001_I015]')]"; + String FIRST_REQUEST_DONE_DIV = "XXX702_T001_L312-1"; + String COMPLAINT_BUTTON = "STS701_S002_I158"; + String PRINT_OF_LETTER = "STS701_S002_I049"; + String CONFIRMATION_ABOUT_ACCOUNT = "STS701_S002_I137"; + String DATE_IN_REQUIREMENT_DIV = "XXX702_T001_L312-1"; + String RELATIONSHIP_LABEL = "XXX702_T001_L230"; + String ACCOUNT_BLOCKING_DIV = "STS701_S002_I156"; + String TRANSACTIONS_SETTINGS = "STS701_S002_I093"; + String PAYMENTS_THROUGH_MOTO_INTERNET_DIV = "STS701_S002_L145"; + String DEBIT_CARD_SENDING_ADDRESS_STREET_LABEL = "STS701_S002_L160"; + + + + @Click(SENDING_OFFERS_MANUALS) + ZAS701_S002_SendingOffersAndManualsPage clickSendingOffers(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(CANCELED_ACCOUNTS) + EXE706_S001_CanceledAccountsPage clickCanceledAccounts(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(CARDS_LIST) + OPK730_S001_CardsListPage clickCardsList(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(HISTORY_SMS_EMAILS) + SMS702_S002_SmsEmailHistoryPage clickSmsEmailHistory(); + + @Wait(value = CIF_DETAI_BUTTON, until = Until.VISIBLE) + @Click(CIF_DETAI_BUTTON) + CIF731_S001_CifDetailPage clickCifDetailButton(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(CIF_MENU_BUTTON) + STS701_S002_ClientDetailPage clickCifMenu(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(SAVING_ACCOUNT_TRANSACTIONS) + TRA701_S001_Transactions clickSavingAccountTransactions(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @CustomAction + default STS701_S002_ClientDetailPage clickSavingAccountTree() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> TREE_SAVING_ACCOUNT_XPATH, Lookup.XPATH); + endpoint.doubleClick(() -> TREE_SAVING_ACCOUNT_XPATH, Lookup.XPATH); + return null; + } + + @Click(AMORTIZATION_TABLE_BUTTON) + PSP701_S001_AmortizationPage clickAmortization(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(LOANS_BLOCKATION_BUTTON) + TRA701_S001_Transactions clickLoansBlockation(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(LOANS_BLOCKATION_TRANSACTION_MENU) + STS701_S002_ClientDetailPage clickLoansBlockMenu(); + + @CustomAction + default STS701_S002_ClientDetailPage clickLoanTree() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> TREE_LOAN_XPATH, Lookup.XPATH); + endpoint.doubleClick(() -> TREE_LOAN_XPATH, Lookup.XPATH); + return null; + } + + @Click(ADVANTAGE_ON_CARD_BUTTON) + RET705_S001_CardAdvatagePage clickAdvatageOnCardButton(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(TRANSACTION_AND_STATEMENTS_BUTTON) + OPK710_S001_TransactionAndStatementPage clickTransactStatementionsButton(); + + @Wait(value = GENERATING_CREDIT_CARD_BUTTON, until = Until.VISIBLE) + @Click(GENERATING_CREDIT_CARD_BUTTON) + OPK712_S001_CreditCardGenerating clickCardGenerating(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(GENERATING_MENU) + STS701_S002_ClientDetailPage clickGeneratingMenu(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(BLOCATION_MENU_BUTTON) + STS701_S002_ClientDetailPage clickBlocationMenu(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(CONTRACT_ACTIVITIES) + OPK716_S001_ContractActivitiesPage clickContractActivitiesButton(); + + @Wait(value = BLOCATION_CREDIT_BUTTON, until = Until.VISIBLE) + @Click(BLOCATION_CREDIT_BUTTON) + OPK713_S001_BlockationPage clickBlockationCreditCard(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(PACKAGES_BUTTON) + OPK746_S001_AddonPackagePage clickPackages(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(DATA_CHANGES_BUTTON) + PLK708_S001_DataChangesPage clickDataChangesButton(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(STATEMENTS_BUTTON) + TRA701_S001_Transactions clickStatementsButton(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(PIN_ACTIVATION_BUTTON) + PLK713_S001_PinAndActivationCodePage clickPinActivation(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(CARD_RENEVAL_BUTTON) + PLK709_S004_CardRenevalPage clickCardReneval(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(CARD_ACTIVITIES_BUTTON) + PLK716_S001_CardActivitiesPage clickCardActivities(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(BLOCATION_DEBIT_BUTTON) + PLK703_S002_DebitCardBlocationPage clickBlocation(); + + @Click(value = DEBIT_CARD_LIST, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + STS701_S002_ClientDetailPage clickDebitCard(); + + @Wait(value = CHANGE_BUTTON, until = Until.VISIBLE) + @CheckElementPresent(CHANGE_BUTTON) + STS701_S002_ClientDetailPage assertChangeDistribution(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(TRANSACTIONS) + TRA701_S001_Transactions clickTransactions(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(INSURANCE) + HPO740_S001_Insurance clickInsurance(); + + @CustomAction + default STS701_S002_ClientDetailPage storeAccountNumber() { + + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String accountNumber = endpoint.getText(TREE_ACCOUNT_XPATH, Lookup.XPATH).replaceAll(".*\\((\\d+);.*", "$1"); + this.store(CURRENT_ACCOUNT_NUMBER_KEY, accountNumber); + return null; + } + + @CustomAction + default STS701_S002_ClientDetailPage clickAccountTree() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> TREE_ACCOUNT_XPATH, Lookup.XPATH); + endpoint.jsDoubleClick(() -> TREE_ACCOUNT_XPATH, Lookup.XPATH); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CheckElementContent(CURRENT_ACCOUNT_NUMBER_DIV) + STS701_S002_ClientDetailPage checkCurrentAccountNumber(String accountNumber); + + @Click(BLOCK_MK_BUTTON) + STS701_S002_ClientDetailPage clickBlockMobileKey(); + + @Click(BLOCK_IB_BUTTON) + STS701_S002_ClientDetailPage clickBlockInternetBanka(); + + @Click(UNBLOCK_IB_BUTTON) + STS701_S002_ClientDetailPage clickUnblockInternetBanka(); + + @CheckElementPresent(COMMUNICATIONS_AND_REMINDERS_TABLE) + STS701_S002_ClientDetailPage assertCommunicationsRemindersTable(); + + @CheckElementPresent(value = CREDIT_CARD_LIST_XPATH, by = Lookup.XPATH) + STS701_S002_ClientDetailPage assertCreditCardsTab(); + + @CheckElementPresent(FRAUD_TABLE) + STS701_S002_ClientDetailPage assertFraudTable(); + + @CheckElementPresent(NOTIFICATION_LABEL) + STS701_S002_ClientDetailPage assertNotice(); + + @CheckElementPresent(CREDIT_CARD_CONTRACT_STATE_LABEL) + STS701_S002_ClientDetailPage assertCreditCardContractState(); + + @CheckElementPresent(RETENTION_TABLE) + STS701_S002_ClientDetailPage assertRetentionTable(); + + @CheckElementPresent(REQUEST_RADIO) + STS701_S002_ClientDetailPage assertRequestRadio(); + + @CheckElementPresent(TASKS_LABLE) + STS701_S002_ClientDetailPage assetTasksTable(); + + @CheckElementPresent(DEMAND_DESCRIPTION) + STS701_S002_ClientDetailPage assertDemandDescription(); + + @CheckElementPresent(OFFERS_CHECK_BOX) + STS701_S002_ClientDetailPage assertOffers(); + + @CheckElementPresent(ADDRESS_TABLE) + STS701_S002_ClientDetailPage assertAddress(); + + @CheckElementPresent(OPPORTUNITY_TABLE) + STS701_S002_ClientDetailPage assertOpportunityTable(); + + @Wait(explicitWaitSeconds = 30) + @CheckElementContent(STATUS_MK_LABEL) + STS701_S002_ClientDetailPage assertMobileKeyStatus(String mobileKeyStatus); + + @Wait(explicitWaitSeconds = 30) + @CheckElementContent(STATUS_IB_LABEL) + STS701_S002_ClientDetailPage assertInternetBankaStatus(String internetBankaStatus); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @CheckElementContent("STS701_S002_L421") + STS701_S002_ClientDetailPage assertContractState(String contract); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @CheckElementContent(PRODUCT_LABEL) + STS701_S002_ClientDetailPage assertAccountProduct(String accountProduct); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @CheckElementContent("STS701_S002_L833") + STS701_S002_ClientDetailPage assertAdcProductList(String adcProductList); + + @Wait(value = SALE_TAB, until = Until.VISIBLE) + @CheckElementContent("XXX702_T001_L337") + STS701_S002_ClientDetailPage assertTabPanelSale(String saleTabPanel); + + @CheckElementContent(RC_DIV) + STS701_S002_ClientDetailPage checkClientRc(String rc); + + @CustomAction + default STS701_S002_ClientDetailPage clickTreeCreditCard() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> TREE_CREDIT_CARD_XPATH, Lookup.XPATH); + endpoint.doubleClick(() -> TREE_CREDIT_CARD_XPATH, Lookup.XPATH); + return null; + } + + @Click(PRINT_LETTERS_CIF_BUTTON) + OTP701_S001_UniversalPrintProcessPage clickPrintLettersWithCif(); + + @Click(PRINT_LETTERS_ACCOUNT_BUTTON) + OTP701_S001_UniversalPrintProcessPage clickPrintLettersWithAccount(); + + @Click(POST_SALES_CALLS_BUTTON) + PSC701_S001_PostSalesCallsPage clickPostSalesCalls(); + + @Click(value = COMMUNICATIONS_AND_REMINDERS, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickCommunicationsReminders(); + + @Click(value = FRAUD_SUSPECTED, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickFraudSuspectedTable(); + + @Click(value = RETENTION, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickRetention(); + + @Click(value = FUTURE_OPPORTUNITY, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickFutureOpportunity(); + + @Click(value = NOTIFICATION_TABLE, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickNotification(); + + @Click(value = REQUEST_TABLE, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickRequests(); + + @Click(value = TASKS_TABLE, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickTasks(); + + @Click(value = DEMAND_TABLE, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + STS701_S002_ClientDetailPage clickDemand(); + + @Click(value = OFFERS_TABLE, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickOffers(); + + @Click(value = CONTACT_INFORMATION, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickContactInformation(); + + @Click(value = SALE_BUTTON, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickSaleButton(); + + @Wait(value = CLIENT_CONSENTS_BUTTON, until = Until.CLICKABLE) + @Click(CLIENT_CONSENTS_BUTTON) + STO704_S001_ClientConsentsPage clickClientConsents(); + + @Click(value = CLIENT_DETAIL_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickClientDetailList(); + + @Click(value = ADC_PANEL_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickAdcList(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(value = CREDIT_CARD_LIST_XPATH, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickCreditCardList(); + + @Click(value = ACCOUNT_LIST_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickAccountList(); + + @Click(value = NEW_PRODUCT_GENERAL_XPATH, by = Lookup.XPATH) + STS701_S002_ClientDetailPage selectNewProductForActivation(NewProductsUfoOps newProduct); + + @Click(value = NEW_PRODUCT_BY_NAME_GENERAL_XPATH, by = Lookup.XPATH) + STS701_S002_ClientDetailPage selectNewProductByNameForActivation(NewProductsByNameUfoOps newProduct); + + @Click(CREATE_NEW_BUTTON) + STO702_S002_ApproveAlreadyReadPage confirmAddProduct(); + + @Click(value = APPLICATIONS_BUTTON, by = Lookup.XPATH) + ApplicationListPage openApplicationList(); + + @Click(value = BACK_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickBack(); + + @Click(LIST_CARDS_BUTTON) + STS701_S002_ClientDetailPage clickCards(); + + @Click(BACK_LIST_CARDS_BUTTON) + STS701_S002_ClientDetailPage clickBackListCards(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(CHANGE_DISTRIBUTION_BUTTON) + STS701_S002_ClientDetailPage clickDistribution(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(BACK_CHANGE_DISTRIBUTION_BUTTON) + STS701_S002_ClientDetailPage clickBackDistribution(); + + @Select(value = IB_BLOCATION_COMBOBOX, andWait = @Wait(explicitWaitSeconds = 10)) + STS701_S002_ClientDetailPage selectIBBlocationReason(String reason); + + @CustomAction + default UKO720_S001_TaskPage closeSecondWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.closeCurrentWindow(); + endpoint.switchToOtherWindow(1, 1); + return null; + } + + @CheckElementContent(CONTRACT_ID_DIV) + STS701_S002_ClientDetailPage checkContractID(String contractId); + + @Wait(value = PICK_NEW_DEBIT_CARD_COMBOBOX, until = Until.VISIBLE) + @Select(value = PICK_NEW_DEBIT_CARD_COMBOBOX, selectByOrder = true) + STS701_S002_ClientDetailPage selectPickNewDebitCardCombobox(int order); + + @CheckElementPresent(NUMBER_OF_CARD_DIV) + STS701_S002_ClientDetailPage checkNumberOfCard(); + + @Wait(value = FIRST_CURRENT_ACCOUNT_COMBOBOX, until = Until.CLICKABLE) + @Select(value = FIRST_CURRENT_ACCOUNT_COMBOBOX, selectByOrder = true) + STS701_S002_ClientDetailPage selectFirstCurrentAccCombobox(int acc); + + @Wait(value = CHECK_ACCOUNT_STATE, until = Until.VISIBLE) + @CheckElementContent(CHECK_ACCOUNT_STATE) + STS701_S002_ClientDetailPage checkAccountState(String state); + + @CheckElementContent(DEMAND_DESCRIPTION) + STS701_S002_ClientDetailPage checkDemandDescriptionFirstRow(String description); + + @CheckElementContent(DEMAND_DESCRIPTION_SECOND_ROW) + STS701_S002_ClientDetailPage checkDemandDescriptionSecondRow(String description); + + + + @Click(value = REFRESH_REQUIREMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + STS701_S002_ClientDetailPage clickRefreshRequirementButton(); + + @Wait(value = INTERNET_BANK_DISPO_XPATH, by = Lookup.XPATH, until = Until.CLICKABLE) + @Click(value = INTERNET_BANK_DISPO_XPATH, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickIB(); + + @Click(DETAIL_OF_ADC_PRODUCT) + ADC739_S001_IBSBPage clickDetailAdcProduct(); + + @CheckElementContent(value = INTERNET_BANK_DISPO_XPATH, by = Lookup.XPATH) + STS701_S002_ClientDetailPage checkInternetBankDispo(String name); + + @CheckElementContent(value = SMART_BANK_DISPO_XPATH, by = Lookup.XPATH) + STS701_S002_ClientDetailPage checkSmartBankDispo(String name); + + @Click(value = BANK_BACK_OFFICE_BUTTON) + @Click(value = TRANSFER_TO_530) + BUF709_S002_TransferPage transferTo530(); + + @Click(value = BANK_BACK_OFFICE_BUTTON) + @Click(value = TRANSFER_TO_535) + STS701_S002_ClientDetailPageTransitions transferTo535(); + + @Click(value = BANK_BACK_OFFICE_BUTTON) + @Click(value = TRANSFER_TO_536) + BUF709_S002_TransferPage transferTo536(); + + @Click(value = BANK_BACK_OFFICE_BUTTON) + @Click(value = TRANSFER_TO_730) + BUF709_S002_TransferPage transferTo730(); + + @Click(value = BANK_BACK_OFFICE_BUTTON) + @Click(value = ACCOUNT_BENEFITS) + RET701_S003_AccountBenefits clickAccountBenefits(); + + @CustomAction + default STS701_S002_ClientDetailPage acceptAlertIsVisible() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + if (endpoint.isAlertPresent(10)) { + endpoint.acceptAlert(5); + } + return null; + } + + @AcceptAlert(waitSecondsForAlert = 10, expectedAlertText = "Uzavřený účet s debetním zůstatkem") + STS701_S002_ClientDetailPage acceptAlert(); + + @Click(CHANGE_DISTRIBUTION_BUTTON) + EVY701_S001_StatementsDistributionPage clickDistributionButton(); + + @CustomAction + default UKO735_S001_ClaimsAndComplaints clickComplaint() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> COMPLAINT_BUTTON); + endpoint.focusToNewPopup(10); + return null; + } + + @CustomAction + default STS701_S002_AdcProductsPanel clickInternetBank() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> INTERNET_BANK_SPAN, Lookup.XPATH); + endpoint.jsDoubleClick(() -> INTERNET_BANK_SPAN, Lookup.XPATH); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CustomAction + default STS701_S002_AdcProductsPanel clickInfoService() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> INFO_SERVICE_SPAN, Lookup.XPATH); + endpoint.jsDoubleClick(() -> INFO_SERVICE_SPAN, Lookup.XPATH); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CustomAction + default STS701_S002_AdcProductsPanel clickBankClient() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> BANK_CLIENT_SPAN, Lookup.XPATH); + endpoint.jsDoubleClick(() -> BANK_CLIENT_SPAN, Lookup.XPATH); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @Click(value = LOANS_BUTTON_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickLoans(); + + @Wait(value = NUMBER_OF_LOANS_ACCOUNT, until = Until.VISIBLE) + @ExecuteJavaScript("navigator.clipboard.writeText(document.getElementById('" + NUMBER_OF_LOANS_ACCOUNT + "').textContent)") + STS701_S002_ClientDetailPage copyLoansNumberToClipboard(); + + @Wait(value = CIF_DIV, until = Until.VISIBLE) + @ExecuteJavaScript("navigator.clipboard.writeText(document.getElementById('" + CIF_DIV + "').textContent)") + STS701_S002_ClientDetailPage copyCifNumberToClipboard(); + + @CustomAction + default STS701_S002_AdcProductsPanel clickSmartBank() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> SMART_BANK_SPAN, Lookup.XPATH); + endpoint.jsDoubleClick(() -> SMART_BANK_SPAN, Lookup.XPATH); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CheckElementContent(CANCEL_ADC_PRODUCT_DIV) + STS701_S002_ClientDetailPage checkCancelAdcProduct(String content); + + @CheckElementContent(PLACE_OF_BUSINESS) + STS701_S002_ClientDetailPage checkPlaceOfBusiness(String place); + + @Click(value = INTERNET_BANK_DISPO_XPATH_CLIENT_SPAN, by = Lookup.XPATH) + STS701_S002_ClientDetailPage clickInternetBankPasswordDispomodelInProductsTree(); + + @Click(value = ADC_PANEL_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ADC739_S001_IBSBPage clickAdcProducts(); + + @Wait(value = RC_OF_HOLDER_LABEL, until = Until.VISIBLE) + @CheckElementContent(RC_OF_HOLDER_LABEL) + STS701_S002_ClientDetailPage checkRcOfHolder(String rc); + + @CheckElementPresent(value = LIST_OF_PRODUCTS, by = Lookup.XPATH) + STS701_S002_ClientDetailPage checkListOfProducts(); + + @CustomAction + default TIS701_S004_ConfirmationOfAccountHolding clickConfirmationAboutAccount() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> BANK_BACK_OFFICE_BUTTON); + endpoint.moveToElementAndClickToOtherElement(PRINT_OF_LETTER, CONFIRMATION_ABOUT_ACCOUNT); + return null; + } + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @CustomAction + default STS701_S002_ClientDetailPage checkIfStatusBarIsOverwritten(String textInStatusBar) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String fullText = endpoint.getText(CANCEL_ADC_PRODUCT_DIV); + String textWithoutTime = fullText.replaceFirst("^\\d{2}:\\d{2}:\\d{2}", "").replaceFirst("(ID:).*$", ""); + Assertions.assertTrue(textWithoutTime.contains(textInStatusBar)); + return null; + } + + @CustomAction + default STS701_S002_ClientDetailPage checkDateInRequirement() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String dateInReq = endpoint.getText(DATE_IN_REQUIREMENT_DIV); + String dateInReqNoTime = dateInReq.replaceFirst("\\s\\d{1,2}:\\d{2}:\\d{2}", ""); + Assertions.assertTrue(dateInReqNoTime.contains(endpoint.getText(ACTUAL_DATE_DIV))); + return null; + } + + @CustomAction + default STS701_S002_ClientDetailPage checkStatusMessageSendingManuals(String expectedStatusMessage) { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(10, Until.VISIBLE, CANCEL_ADC_PRODUCT_DIV); + String fullText = endpoint.getText(CANCEL_ADC_PRODUCT_DIV); + String textWithoutTime = fullText.replaceFirst("^\\d{2}:\\d{2}:\\d{2}", ""); + Assertions.assertTrue(textWithoutTime.contains(expectedStatusMessage)); + return null; + } + + @Click(value = REQUEST_LIST, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + STS701_S002_ClientDetailPage clickRequestsList(); + + @CustomAction + default STS701_S002_ClientDetailPage checkPerformedRequest(String expectedDescription) { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("H:mm:ss"); + LocalTime fistTime = LocalTime.parse(endpoint.getText(CANCEL_ADC_PRODUCT_DIV).split(" ")[0], formatter); + LocalTime secondTime = LocalTime.parse(endpoint.getText(FIRST_REQUEST_DONE_DIV).split(" ")[1], formatter); + long diffInSeconds = Duration.between(fistTime, secondTime).getSeconds(); + Assertions.assertTrue(diffInSeconds <= 1); + Assertions.assertEquals(endpoint.getText(DEMAND_DESCRIPTION), expectedDescription); + return null; + } + + @CustomAction + default STS701_S002_ClientDetailPage scrollToSendingOffersManuals() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + endpoint.scrollIntoView(SENDING_OFFERS_MANUALS); + return null; + } + + @CheckElementContent(RELATIONSHIP_LABEL) + STS701_S002_ClientDetailPage assertRelationship(String relationship); + + @Wait(value = CIF_DIV, until = Until.VISIBLE) + @StoreElementContent(storeKey = CIF_STORE_KEY, value = CIF_DIV) + STS701_S002_ClientDetailPage storeCifNumber(); + + @CustomAction + default STS701_S002_ClientDetailPage checkInfoServiceProductIsNotPresent() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertFalse(endpoint.isElementPresent(INFO_SERVICE_SPAN, Lookup.XPATH), "Info Service product is present on page"); + return null; + } + + @Click(value = ACCOUNT_BLOCKING_DIV, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRA701_S001_Transactions clickAccountBlocking(); + + @Wait(TRANSACTIONS_SETTINGS) + @Click(TRANSACTIONS_SETTINGS) + OPK745_S001_TransactionSettings clickTransactionsSettings(); + + @Wait(PAYMENTS_THROUGH_MOTO_INTERNET_DIV) + @CheckElementContent(PAYMENTS_THROUGH_MOTO_INTERNET_DIV) + STS701_S002_ClientDetailPage checkPaymentsThroughMotoInternet(String text); + + @StoreElementContent(storeKey = ACTUAL_ADDRESS_KEY, value = DEBIT_CARD_SENDING_ADDRESS_STREET_LABEL) + STS701_S002_ClientDetailPage storeDebitCardSendingAddressStreetLabel(); + + @CheckElementContent(DEBIT_CARD_SENDING_ADDRESS_STREET_LABEL) + STS701_S002_ClientDetailPage checkDebitCardSendingAddressStreetLabel(String expectedAddress); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_ClientDetailPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_ClientDetailPageTransitions.java new file mode 100644 index 0000000..77b10e1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_ClientDetailPageTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.operations.client.clientDetail; + +import cz.moneta.test.dsl.ufo.operations.ufoOperations.BUF707_S002_AccountCannotBeTransferredTo535; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.HLA701_S001_AccountCanBeTransferredTo535; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface STS701_S002_ClientDetailPageTransitions extends WebFlow { + + BUF707_S002_AccountCannotBeTransferredTo535 onAccountCannotBeTransferredTo535(); + + HLA701_S001_AccountCanBeTransferredTo535 onAccountCanBeTransferredTo535(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_InfoServiceExpressSettings.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_InfoServiceExpressSettings.java new file mode 100644 index 0000000..0bcd42a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_InfoServiceExpressSettings.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.ufo.operations.client.clientDetail; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface STS701_S002_InfoServiceExpressSettings { + + String INTERNET_PRO_RADIO = "STS701_S002_R002_1"; + String COMMON_USER_RADIO = "STS701_S002_R002_2"; + String CAUTIOUS_USER_RADIO = "STS701_S002_R002_3"; + String SET_BUTTON = "STS701_S002_B076"; + String EMAIL_INPUT_EXPRESS_SETTINGS = "STS701_S002_E022"; + String TELEPHONE_INPUT = "STS701_S002_E019"; + String START_TIME_IN_EXPRESS_SETTINGS_COMBOBOX = "STS701_S002_C022"; + String END_TIME_IN_EXPRESS_SETTINGS_COMBOBOX = "STS701_S002_C023"; + String TEL_OR_EMAIL_DIV_IN_OTHERS_FIRST_ROW = "STS701_S002_L639-1"; + + @Click(INTERNET_PRO_RADIO) + STS701_S002_AdcProductsPanel clickInternetPro(); + + @Click(COMMON_USER_RADIO) + STS701_S002_AdcProductsPanel clickCommonUser(); + + @Click(CAUTIOUS_USER_RADIO) + STS701_S002_AdcProductsPanel clickCautiousUser(); + + @Click(SET_BUTTON) + @AcceptAlert(waitSecondsForAlert = 10) + STS701_S002_AdcProductsPanel clickSetWithoutTelephoneOrEmailAndCheckAlert(); + + @Click(value = SET_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + STS701_S002_AdcProductsPanel clickSet(); + + @TypeInto(value = EMAIL_INPUT_EXPRESS_SETTINGS, clear = true) + STS701_S002_AdcProductsPanel fillEmailInputInExpressSettings(String email); + + @TypeInto(TELEPHONE_INPUT) + STS701_S002_AdcProductsPanel fillTelephoneInputInExpressSettings(String telephone); + + @Select(START_TIME_IN_EXPRESS_SETTINGS_COMBOBOX) + STS701_S002_AdcProductsPanel selectStartTimeInExpressSettings(String startTime); + + @Select(END_TIME_IN_EXPRESS_SETTINGS_COMBOBOX) + STS701_S002_AdcProductsPanel selectEndTimeInExpressSettings(String endTime); + + @CheckElementContent(TEL_OR_EMAIL_DIV_IN_OTHERS_FIRST_ROW) + STS701_S002_AdcProductsPanel checkTelephoneOrEmailDivInCardsFirstRow(String emailOrTelephone); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_InfoServiceOrderDetail.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_InfoServiceOrderDetail.java new file mode 100644 index 0000000..3d04a3b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_InfoServiceOrderDetail.java @@ -0,0 +1,76 @@ +package cz.moneta.test.dsl.ufo.operations.client.clientDetail; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface STS701_S002_InfoServiceOrderDetail extends StoreAccessor { + + String SAVE_BUTTON = "STS701_S002_B078"; + String SMS_IN_DETAIL_OF_ORDER_RADIO = "STS701_S002_R003_SMS"; + String TELEPHONE_IN_DETAIL_OF_ORDER_INPUT = "STS701_S002_E017"; + String EMAIL_DETAIL_OF_ORDER_RADIO = "STS701_S002_R003_Email"; + String EMAIL_INPUT_DETAIL_OF_ORDER_INPUT = "STS701_S002_E021"; + String FROM_BALANCE_INPUT = "STS701_S002_E020"; + String START_TIME_IN_DETAIL_OF_ORDER_COMBOBOX = "STS701_S002_C020"; + String END_TIME_IN_DETAIL_OF_ORDER_COMBOBOX = "STS701_S002_C021"; + + @Click(value = SAVE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_AdcProductsPanel clickSave(); + + @Click(SMS_IN_DETAIL_OF_ORDER_RADIO) + STS701_S002_AdcProductsPanel clickSmsInDetailOfOrder(); + + @Wait(value = TELEPHONE_IN_DETAIL_OF_ORDER_INPUT, until = Until.VISIBLE) + @TypeInto(TELEPHONE_IN_DETAIL_OF_ORDER_INPUT) + STS701_S002_AdcProductsPanel fillTelephoneInputInDetailOfOrder(String telephone); + + @Click(EMAIL_DETAIL_OF_ORDER_RADIO) + STS701_S002_AdcProductsPanel clickEmailInDetailOfOrder(); + + @TypeInto(value = EMAIL_INPUT_DETAIL_OF_ORDER_INPUT, clear = true) + STS701_S002_AdcProductsPanel fillEmailInputDetailOfOrder(String email); + + @TypeInto(value = FROM_BALANCE_INPUT, clear = true) + STS701_S002_AdcProductsPanel fillBalanceFrom(String fromBalance); + + @Wait(value = START_TIME_IN_DETAIL_OF_ORDER_COMBOBOX, until = Until.VISIBLE) + @Select(START_TIME_IN_DETAIL_OF_ORDER_COMBOBOX) + STS701_S002_AdcProductsPanel selectStartTimeInDetailOfOrder(String startTime); + + @Wait(value = START_TIME_IN_DETAIL_OF_ORDER_COMBOBOX, until = Until.VISIBLE) + @Select(END_TIME_IN_DETAIL_OF_ORDER_COMBOBOX) + STS701_S002_AdcProductsPanel selectEndTimeInDetailOfOrder(String endTime); + + @Wait(value = START_TIME_IN_DETAIL_OF_ORDER_COMBOBOX, until = Until.VISIBLE) + @CheckElementContent(START_TIME_IN_DETAIL_OF_ORDER_COMBOBOX) + STS701_S002_AdcProductsPanel checkStartTimeDetailOfOrder(String startTime); + + @Wait(value = END_TIME_IN_DETAIL_OF_ORDER_COMBOBOX, until = Until.VISIBLE) + @CheckElementContent(END_TIME_IN_DETAIL_OF_ORDER_COMBOBOX) + STS701_S002_AdcProductsPanel checkEndTimeDetailOfOrder(String endTime); + + @CustomAction + default STS701_S002_AdcProductsPanel checkTelephoneInDetailOfOrderInput(String telephone) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(telephone, endpoint.getAttribute(TELEPHONE_IN_DETAIL_OF_ORDER_INPUT, "value")); + return null; + } + + @CustomAction + default STS701_S002_AdcProductsPanel checkEmailInDetailOfOrderInput(String email) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(email, endpoint.getAttribute(EMAIL_INPUT_DETAIL_OF_ORDER_INPUT, "value")); + return null; + } + + @CustomAction + default STS701_S002_AdcProductsPanel checkBalance(String balance) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(balance, endpoint.getAttribute(FROM_BALANCE_INPUT, "value")); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_InfoServiceOrdersList.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_InfoServiceOrdersList.java new file mode 100644 index 0000000..d9c0677 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/clientDetail/STS701_S002_InfoServiceOrdersList.java @@ -0,0 +1,55 @@ +package cz.moneta.test.dsl.ufo.operations.client.clientDetail; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface STS701_S002_InfoServiceOrdersList extends StoreAccessor { + + String CANCEL_INFO_SERVICE_BUTTON = "STS701_S002_B081"; + String CANCEL_INFO_SERVICE_DIV = "XXX702_T001_L107"; + String ORDER_DETAIL_ACCOUNTS_BUTTON = "STS701_S002_P012-%s"; + String ORDER_DETAIL_CARDS_BUTTON = "STS701_S002_P014-%s"; + String ORDER_DETAIL_OTHERS_BUTTON = "STS701_S002_P016-%s"; + String DELETE_FIRST_ORDER_ACCOUNTS_BUTTON = "STS701_S002_P011-1"; + String DELETE_BUTTONS_IN_ACCOUNTS = "//img[starts-with(@id, 'STS701_S002_P011-')]"; + String EXPRESS_SETTINGS_TAB_XPATH = "//button[@title='STS701_S002_I201 [STS701_S002_I201]']"; + + @Click(value = EXPRESS_SETTINGS_TAB_XPATH, by = Lookup.XPATH) + STS701_S002_AdcProductsPanel clickExpressSettings(); + + @CustomAction + default STS701_S002_AdcProductsPanel cancelInfoService() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + endpoint.click(() -> CANCEL_INFO_SERVICE_BUTTON); + endpoint.acceptAlert(5); + endpoint.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + endpoint.sendKeysOneAtATime(Key.PAGE_UP); + endpoint.checkElementContent(CANCEL_INFO_SERVICE_DIV, "Zrušení objednávek proběhlo v pořádku."); + return null; + } + + @Click(value = ORDER_DETAIL_ACCOUNTS_BUTTON, isStringDynamicXpath = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_AdcProductsPanel clickOrderInAccountsDetail(String index); + + @Click(value = ORDER_DETAIL_CARDS_BUTTON, isStringDynamicXpath = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + STS701_S002_AdcProductsPanel clickOrderInCardsDetail(String index); + + @Click(value = ORDER_DETAIL_OTHERS_BUTTON, isStringDynamicXpath = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_AdcProductsPanel clickOrderInOthersDetail(String index); + + @Click(value = DELETE_FIRST_ORDER_ACCOUNTS_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_AdcProductsPanel clickDeleteFirstOrderInAccounts(); + + @CustomAction + default STS701_S002_AdcProductsPanel deleteFirstAccountOrderAndCheckDeletion() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + int accountOrdersCount = endpoint.findAndGetListOfElements(DELETE_BUTTONS_IN_ACCOUNTS, Lookup.XPATH).size(); + clickDeleteFirstOrderInAccounts(); + Assertions.assertTrue(accountOrdersCount > endpoint.findAndGetListOfElements(DELETE_BUTTONS_IN_ACCOUNTS, Lookup.XPATH).size(), "The count of rows is wrong. Delete action does not work right"); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/FeePaymentsMethod.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/FeePaymentsMethod.java new file mode 100644 index 0000000..83eaa19 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/FeePaymentsMethod.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.client.creditcard; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum FeePaymentsMethod implements DynamicPathPart { + BANK_ORDER("1"), + INKASO("2"); + + private final String value; + + FeePaymentsMethod(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S001_ClientDetailsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S001_ClientDetailsPage.java new file mode 100644 index 0000000..1e9aec3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S001_ClientDetailsPage.java @@ -0,0 +1,103 @@ +package cz.moneta.test.dsl.ufo.operations.client.creditcard; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.client.creditcard.OPK705_S001_ClientDetailsPage.SEND_BUTTON; + +@Wait({SEND_BUTTON}) +public interface OPK705_S001_ClientDetailsPage extends WebFlow { + String SEND_BUTTON = "OPK705_S001_B001"; + + @Select("OPK705_S001_C020") + OPK705_S001_ClientDetailsPage selectJob(String jobType); + + @Select("OPK705_S001_C029") + OPK705_S001_ClientDetailsPage selectContractType(String contractType); + + @Select("OPK705_S001_C006") + OPK705_S001_ClientDetailsPage selectSecondId(String idCard); + + @Click(SEND_BUTTON) + OPK705_S002_AskClientToConfirmPage continueToUserConfirmation(); + + @TypeInto("OPK705_S001_E044") + OPK705_S001_ClientDetailsPage setNumberOfIncomeSources(String numberOfIncomeSources); + + @TypeInto("OPK705_S001_N045") + OPK705_S001_ClientDetailsPage setNetIncomeThreeMonthsAvg(int netIncomeThreeMonthsAvg); + + @TypeInto("OPK705_S001_E042") + OPK705_S001_ClientDetailsPage setOtherMonthlyExpenses(int otherMonthlyExpenses); + + @TypeInto("OPK705_S001_E014") + OPK705_S001_ClientDetailsPage setTotalHouseholdIncome(int totalHouseholdIncome); + + @Click("OPK705_S001_H005_1") + OPK705_S001_ClientDetailsPage checkEmploymentDataVerifiedWithClient(); + + @Click("OPK705_S001_H008_1") + OPK705_S001_ClientDetailsPage checkIncomeDataVerifiedWithClient(); + + @Click("OPK705_S001_R002_0") + OPK705_S001_ClientDetailsPage selectDoNotCreateNewCheckingAccount(); + + @TypeInto("OPK705_S001_N050") + OPK705_S001_ClientDetailsPage setActivationPassword(String activationPassword); + + @TypeInto("OPK705_S001_E017") + OPK705_S001_ClientDetailsPage setDailyPurchaseLimit(String dailyPurchasingLimit); + + @TypeInto("OPK705_S001_E018") + OPK705_S001_ClientDetailsPage setDailyWithdrawLimit(String dailyWithdrawLimit); + + @TypeInto("OPK705_S001_E053") + OPK705_S001_ClientDetailsPage setDailyOnlinePaymentsLimit(String dailyOnlinePaymentsLimit); + + @Select("OPK705_S001_C019") + OPK705_S001_ClientDetailsPage setLoyaltyProgram(String loyaltyProgram); + + @Select(value = "OPK705_S001_C002", selectByOrder = true) + OPK705_S001_ClientDetailsPage selectAccountForIncaso(int order); + + @Select("OPK705_S001_C028") + OPK705_S001_ClientDetailsPage selectBankCode(String code); + + @Select("OPK705_S001_C039") + OPK705_S001_ClientDetailsPage setDiscountPackage(String discountPackage); + + @Click("OPK705_S001_R004_4") + OPK705_S001_ClientDetailsPage setSendPinViaSMS(); + + @Click(value = "//table[@id='OPK705_S001_R006']//input[@name='OPK705_S001_R006' and @value='%1$s']", by = Lookup.XPATH) + OPK705_S001_ClientDetailsPage setFeePaymentMethod(FeePaymentsMethod feePaymentMethod); + + @Select("OPK705_S001_C021") + OPK705_S001_ClientDetailsPage setAccountType(String accountType); + + @Click("OPK705_S001_B002") + OPK705_S001_ClientDetailsPage requestFormalControl(); + + @Wait(value = "//button[@id='" + SEND_BUTTON + "' and not(@disabled)]", by = Lookup.XPATH, waitSecondsForElement = 40) + OPK705_S001_ClientDetailsPage assertFormalControlWasSuccessful(); + + @TypeInto("OPK705_S001_E013") + OPK705_S001_ClientDetailsPage setOtherNonMMBMonthlyPayments(int otherNonMMBMonthlyPayments); + + @TypeInto("OPK705_S001_E043") + OPK705_S001_ClientDetailsPage setWageDeductions(int salaryDiscounts); + + @TypeInto(value = "OPK705_S001_N046", clear = true) + OPK705_S001_ClientDetailsPage setNumberOfDependentPersons(String numberOfDependentPersons); + + @TypeInto(value = "OPK705_S001_E036", clear = true) + OPK705_S001_ClientDetailsPage setDriveLicenceId(String driveLicenceId); + + @TypeInto(value = "OPK705_S001_E037", clear = true) + OPK705_S001_ClientDetailsPage setDriveLicenceExpire(String expirationDate); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S002_AskClientToConfirmPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S002_AskClientToConfirmPage.java new file mode 100644 index 0000000..7dbbe38 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S002_AskClientToConfirmPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.operations.client.creditcard; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.client.creditcard.OPK705_S002_AskClientToConfirmPage.OK_BUTTON; + +@Wait({OK_BUTTON}) +public interface OPK705_S002_AskClientToConfirmPage extends WebFlow { + String OK_BUTTON = "OPK705_S002_B002"; + + @Click(OK_BUTTON) + SCO702_S006_ApplicationConfirmationPage userConfirmed(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S101_ProductSelectionPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S101_ProductSelectionPage.java new file mode 100644 index 0000000..4248f49 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S101_ProductSelectionPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.ufo.operations.client.creditcard; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.client.creditcard.OPK705_S101_ProductSelectionPage.OK_BUTTON; + +@Wait({OK_BUTTON}) +public interface OPK705_S101_ProductSelectionPage extends WebFlow { + String OK_BUTTON = "OPK705_S101_B002"; + String POPUP = "//div[@class='popupContent']"; + + @Select(value = "OPK705_S101_C001", andWait = @Wait(value = POPUP, until = Until.GONE)) + OPK705_S101_ProductSelectionPage selectProductType(String productType); + + @Select(value = "OPK705_S101_C002", andWait = @Wait(value = POPUP, until = Until.GONE)) + OPK705_S101_ProductSelectionPage selectCardVariant(String cardVariant); + + @Select(value = "OPK705_S101_C003", andWait = @Wait(value = POPUP, until = Until.GONE)) + OPK705_S101_ProductSelectionPage selectCardBrand(String cardBrand); + + @Select(value = "OPK705_S101_C004", andWait = @Wait(value = POPUP, until = Until.GONE)) + OPK705_S101_ProductSelectionPage selectPromo(String promo); + + @Select("OPK705_S101_C006") + OPK705_S101_ProductSelectionPage selectEmploymentType(String employmentType); + + @TypeInto(value = "OPK705_S101_E001", andWait = @Wait(value = POPUP, until = Until.GONE)) + OPK705_S101_ProductSelectionPage requestedAmount(String requestedRange); + + @Click(OK_BUTTON) + OPK705_S001_ClientDetailsPage continueToClientDetails(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S102_ScoringResultPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S102_ScoringResultPage.java new file mode 100644 index 0000000..ec83411 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/OPK705_S102_ScoringResultPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.operations.client.creditcard; + +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.client.creditcard.OPK705_S102_ScoringResultPage.OK_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.client.creditcard.OPK705_S102_ScoringResultPage.SCORING_RESULT; + +@Wait({OK_BUTTON, SCORING_RESULT}) +public interface OPK705_S102_ScoringResultPage extends WebFlow { + String OK_BUTTON = "OPK705_S102_B002"; + String SCORING_RESULT = "OPK705_S102_L013"; + + @CheckElementContent(value = SCORING_RESULT) + OPK705_S102_ScoringResultPage assertScoringResultIs(String result); + + @Click(OK_BUTTON) + OPK705_S101_ProductSelectionPage continueToProductSelection(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/SCO702_S006_ApplicationConfirmationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/SCO702_S006_ApplicationConfirmationPage.java new file mode 100644 index 0000000..dbf96e0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/creditcard/SCO702_S006_ApplicationConfirmationPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.operations.client.creditcard; + +import cz.moneta.test.dsl.ufo.operations.client.product.ProductActivationResultPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.client.creditcard.SCO702_S006_ApplicationConfirmationPage.OK_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.client.creditcard.SCO702_S006_ApplicationConfirmationPage.PAGE_NAME; + +@Wait(value = {OK_BUTTON, PAGE_NAME}, waitSecondsForElement = 160) +public interface SCO702_S006_ApplicationConfirmationPage extends WebFlow { + String PAGE_NAME = "SCO702_S006_L252"; + String OK_BUTTON = "SCO702_S006_B002"; + + @Click(OK_BUTTON) + ProductActivationResultPage continueToProductActivationResult(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/product/ADC739_S001_IBSBPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/product/ADC739_S001_IBSBPage.java new file mode 100644 index 0000000..542cdbf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/product/ADC739_S001_IBSBPage.java @@ -0,0 +1,134 @@ +package cz.moneta.test.dsl.ufo.operations.client.product; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_AdcProductsPanel; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.Assert; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = ADC739_S001_IBSBPage.CLIENTS_NAME, until = Until.VISIBLE) +public interface ADC739_S001_IBSBPage extends WebFlow, StoreAccessor { + + String DETAIL_EDISPONENT = "ADC739_S001_P001-1"; + String CLIENTS_NAME = "ADC739_S001_L004-1"; + String SEND_LOGIN_PASSWORD_SMS = "ADC739_S001_B003"; + String STATUS_BAR = "XXX702_T001_L107"; + String REQUIREMENT_BUTTON_XPATH = "//*[@id=\"XXX702_T001_V002\"]/div[2]/div/div[5]/div/button"; + String REFRESH_REQUIREMENT_BUTTON = "XXX702_T001_B001"; + String REQUIREMENT_DESCRIPTION = "XXX702_T001_L269-1"; + String SEND_ID_FOR_IB_SMS = "ADC739_S001_B005"; + String PHISING_SMS_BUTTON = "ADC739_S001_B008"; + String BLOCATION_ALL_PROFILES_BUTTON = "ADC739_S001_B001"; + String UNBLOCATION_ALL_PROFILES_BUTTON = "ADC739_S001_B019"; + String DETAIL_OF_CLIENT_BUTTON = "XXX702_T001_B016"; + String BLOCATION_OF_IB_CANAL_BUTTON = "ADC739_S001_B012"; + String STATE_OF_IB_CANAL = "ADC739_S001_L104"; + String CANAL_IN_ROW_DIV = "ADC739_S001_L077-1"; + String CANCEL_BLOCATION_OF_IB_CANAL_BUTTON = "ADC739_S001_P006-1"; + + String BACK_BUTTON = "ADC739_S001_P002"; + String RC_IN_LIST_OF_PROFILES_WITH_PRIVILAGES_TO_IB_LABEL = "ADC739_S001_L010-1"; + String ADC_PRODUCTS_COMBOBOX = "ADC739_S001_C003"; + + @Wait(DETAIL_EDISPONENT) + @Click(value = DETAIL_EDISPONENT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ADC739_S001_IBSBPage clickDetailEdisponent(); + + @Wait(SEND_LOGIN_PASSWORD_SMS) + @Click(value = SEND_LOGIN_PASSWORD_SMS, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ADC739_S001_IBSBPage clickSendLoginPasswordSms(); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @CustomAction + default ADC739_S001_IBSBPage checkIfStatusBarIsOverwritten(String textInStatusBar) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String fullText = endpoint.getText(STATUS_BAR); + String textWithoutTime = fullText.replaceFirst("^\\d{2}:\\d{2}:\\d{2}", ""); + Assert.assertTrue(textWithoutTime.contains(textInStatusBar)); + return null; + } + + @Wait(value = REQUIREMENT_BUTTON_XPATH, by = Lookup.XPATH, until = Until.CLICKABLE) + @Click(value = REQUIREMENT_BUTTON_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ADC739_S001_IBSBPage clickRequirement(); + + @Wait(value = REFRESH_REQUIREMENT_BUTTON, until = Until.CLICKABLE) + @Click(value = REFRESH_REQUIREMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ADC739_S001_IBSBPage clickRefreshRequirement(); + + @CheckElementContent(REQUIREMENT_DESCRIPTION) + ADC739_S001_IBSBPage checkRequirementDescription(String description); + + @Wait(value = SEND_ID_FOR_IB_SMS, until = Until.CLICKABLE) + @Click(SEND_ID_FOR_IB_SMS) + @AcceptAlert(waitSecondsForAlert = 15, expectedAlertText = "Souhlasíte, aby Vám společnost koncernu MONETA Money Bank, a. s. jednorázově zaslala ID k Internet Bance na telefonní číslo mobilního klíče") + ADC739_S001_IBSBPage clickSendIdForIbSms(); + + @Wait(value = PHISING_SMS_BUTTON, until = Until.CLICKABLE) + @Click(PHISING_SMS_BUTTON) + @AcceptAlert(waitSecondsForAlert = 5, expectedAlertText = "Opravdu chcete klientovi odeslat SMS zprávu o blokaci Internet Banky z důvodu phishingu?") + ADC739_S001_IBSBPage clickPhisingSms(); + + @Wait(value = BLOCATION_ALL_PROFILES_BUTTON, until = Until.CLICKABLE) + @Click(value = BLOCATION_ALL_PROFILES_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ADC739_S001_IBSBPage clickBlockationAllProfilesButton(); + + @Wait(value = DETAIL_OF_CLIENT_BUTTON, until = Until.CLICKABLE) + @Click(value = DETAIL_OF_CLIENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickDetailOfClientButton(); + + @Wait(value = UNBLOCATION_ALL_PROFILES_BUTTON, until = Until.CLICKABLE) + @Click(UNBLOCATION_ALL_PROFILES_BUTTON) + @AcceptAlert(waitSecondsForAlert = 15, expectedAlertText = "ADC kanál blokován na žádost banky = podezření na podvod!        Ověřil si, že nemůže dojít k zneužití údajů klienta (IB a SB)?        Opravdu chcete kanál odblokovat?") + ADC739_S001_IBSBPage clickUnblocationAllProfiles(); + + @Wait(value = BLOCATION_OF_IB_CANAL_BUTTON, until = Until.CLICKABLE) + @Click(value = BLOCATION_OF_IB_CANAL_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ADC739_S001_IBSBPage clickBloationOfIbCanal(); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @Wait(value = STATE_OF_IB_CANAL, until = Until.VISIBLE) + @CheckElementContent(STATE_OF_IB_CANAL) + ADC739_S001_IBSBPage checkStateOfIbCanal(String state); + + @Wait(value = CANAL_IN_ROW_DIV, until = Until.VISIBLE) + @CheckElementContent(CANAL_IN_ROW_DIV) + ADC739_S001_IBSBPage checkCanalInRow(String canal); + + @CustomAction + default ADC739_S001_IBSBPage clickCancelBlocationOfIBCanal() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(20, Until.CLICKABLE, CANCEL_BLOCATION_OF_IB_CANAL_BUTTON); + endpoint.click(() -> CANCEL_BLOCATION_OF_IB_CANAL_BUTTON); + endpoint.acceptAlert(15); + endpoint.waitForElementsToLoad(20, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CustomAction + default ADC739_S001_IBSBPage scrollOnAllBlocationButton() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.scrollIntoView(BLOCATION_ALL_PROFILES_BUTTON); + return null; + } + + @CustomAction + default ADC739_S001_IBSBPage scrollOnSmsPhishingButton() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.scrollIntoView(PHISING_SMS_BUTTON); + return null; + } + + @Click(value = BACK_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickBackButton(); + + @Wait(value = RC_IN_LIST_OF_PROFILES_WITH_PRIVILAGES_TO_IB_LABEL, until = Until.VISIBLE) + @CheckElementContent(RC_IN_LIST_OF_PROFILES_WITH_PRIVILAGES_TO_IB_LABEL) + ADC739_S001_IBSBPage checkRcInListOfProfilesWithAccessToIb(String rc); + + @Select(value = ADC_PRODUCTS_COMBOBOX, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_AdcProductsPanel selectAdcProduct(String product); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/product/KOK701_S001_MeetingSchedulingPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/product/KOK701_S001_MeetingSchedulingPage.java new file mode 100644 index 0000000..a980e36 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/product/KOK701_S001_MeetingSchedulingPage.java @@ -0,0 +1,238 @@ +package cz.moneta.test.dsl.ufo.operations.client.product; + +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import java.util.Arrays; +import java.util.List; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = KOK701_S001_MeetingSchedulingPage.KOK701_S001_PAGE_TITLE, waitSecondsForElement = 60) +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 80) +public interface KOK701_S001_MeetingSchedulingPage extends StoreAccessor, WebFlow { + + String KOK701_S001_PAGE_TITLE = "KOK701_S001_L999"; + String CALENDAR = "//*[@id='KOK701_S001_K001']/div/table/tbody/tr[2]/td[2]/div/table/tbody/"; + String CALENDAR_NEXT_MONTH = CALENDAR + "tr[1]/td/table/tbody/tr/td[4]/div"; + String CALENDAR_WORK_DAY_1 = CALENDAR + "tr[2]/td/div/table/tbody/tr[3]/td[1]"; + String CALENDAR_WORK_DAY_2 = CALENDAR + "tr[2]/td/div/table/tbody/tr[3]/td[2]"; + String CALENDAR_WORK_DAY_3 = CALENDAR + "tr[2]/td/div/table/tbody/tr[3]/td[3]"; + String CALENDAR_WORK_DAY_4 = CALENDAR + "tr[2]/td/div/table/tbody/tr[3]/td[4]"; + String CLIENT_NAME_FIELD = "KOK701_S001_E006"; + + String BACK_DART_BUTTON = "KOK701_S001_P002"; + String MEETING_PLACE = "KOK701_S001_C004"; + String PRODUCT_FIELD = "KOK701_S001_C002"; + String NAME_OF_CLIENT = "KOK701_S001_E006"; + String CLIENT_TELEPHONE_NUMBER = "KOK701_S001_E002"; + String EMAIL_CHECKBOX = "KOK701_S001_H004_2"; + String EMAIL_FIELD = "KOK701_S001_E003"; + String CALENDAR_BUTTON = "KOK701_S001_P001"; + String VALUE_FIELD = "KOK701_S001_E019"; + String TIME_COMBOBOX = "KOK701_S001_C003"; + String NOTE_FOR_MEETING = "KOK701_S001_M001"; + String INTEREST_RATE_FIELD = "KOK701_S001_E027"; + String DOCUMENT_CREDIT_CARD = "KOK701_S001_H001_Kreditní karta"; + String DOCUMENT_ID_CARD = "KOK701_S001_H001_Občanský průkaz"; + String DOCUMENT_PASSPORT = "KOK701_S001_H001_Pas"; + String DOCUMENT_LAST_3_CONFIRM = "KOK701_S001_H001_Poslední 3 potvrzení o zaplacení úvěr. produktů"; + String DOCUMENT_INCOME_STATEMENT = "KOK701_S001_H001_Potvrzení o příjmu"; + String DOCUMENT_BIRTH_CERTIFICATION = "KOK701_S001_H001_Rodný list"; + String DOCUMENT_DRIVING_LICENSE = "KOK701_S001_H001_Řidičský průkaz"; + String DOCUMENT_LOAN_AGREEMENTS = "KOK701_S001_H001_Úvěrové smlouvy"; + String EXTRACT_FROM_OR_DOCUMENT = "KOK701_S001_H001_Výpis z OR"; + String DOCUMENT_TELEPHONE_BILL = "KOK701_S001_H001_Vyúčtování za telefon"; + String DOCUMENT_TRADE_CERTIFICATE = "KOK701_S001_H001_Živnostenský list"; + String DOCUMENT_FIRST_TAX_RETURN = "KOK701_S001_H001_1 daňové přiznání"; + String DOCUMENT_SECOND_TAX_RETURN = "KOK701_S001_H001_2 daňová přiznání"; + String DOCUMENT_THIRD_RETURN_FROM_BU_FROM_LAST_3_MONTHS = "KOK701_S001_H001_3 výpisy z BÚ za poslední 3 m"; + String SEND_MEETING = "KOK701_S001_B001"; + String NEXT_MONTH_ON_CALENDAR_BUTTON = "//div[text()='>' and @class='ufo-calendar-mnext']"; + String REGULAR_DAY_8_IN_CALENDAR = "//*[@id='KOK701_S001_K001']//td[@class='ufo-calendar-regularday'][8]"; + String DATE_FIELD = "KOK701_S001_E016"; + String MEETING_TYPE_COMBOBOX = "KOK701_S001_C018"; + String SENDING_SMS_TAB = "//button[contains(@title, 'KOK701_S001_I003')]"; + String TYPE_SMS_COMBOBOX = "KOK701_S001_C007"; + String TELEPHONE_CLIENT_TEXTBOX = "KOK701_S001_E009"; + String CENTRAL_MMB_CHECKBOX = "KOK701_S001_H014_1"; + + String SEND_BUTTON = "KOK701_S001_B005"; + String SELECTED_OM_COMBOBOX = "KOK701_S001_C008"; + String MONDAY_CHECKBOX = "KOK701_S001_H006_1"; + String WEDNESDAY_CHECKBOX = "KOK701_S001_H006_3"; + String TELEPHONE_OM_TEXTBOX = "KOK701_S001_E021"; + String DONT_SENT_NOTIFICATIONS = "KOK701_S001_H007_1"; + + + @CheckElementPresent(CLIENT_NAME_FIELD) + KOK701_S001_MeetingSchedulingPage assertClientNameField(); + + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + + @Select(value = MEETING_PLACE, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KOK701_S001_MeetingSchedulingPage selectOM(String omName); + + @Select(value = MEETING_TYPE_COMBOBOX, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KOK701_S001_MeetingSchedulingPage setMeetingType(String meetingType); + + @Select(PRODUCT_FIELD) + KOK701_S001_MeetingSchedulingPage setProduct(String product); + + @Click(CALENDAR_BUTTON) + @Click(NEXT_MONTH_ON_CALENDAR_BUTTON) + @Click(value = REGULAR_DAY_8_IN_CALENDAR, by = Lookup.XPATH) + KOK701_S001_MeetingSchedulingPage setMeetingToFirstWorkingDayOfNextMonth(); + + @TypeInto(DATE_FIELD) + KOK701_S001_MeetingSchedulingPage setMeetingToFirstWorkingDayOfNextMonth(String workingDayOfNextMonth); + + @Select(value = TIME_COMBOBOX, selectByOrder = true) + KOK701_S001_MeetingSchedulingPage setMeetingTimeSlot(int slot); + + @Click(DONT_SENT_NOTIFICATIONS) + KOK701_S001_MeetingSchedulingPage setNotificationsToDoNotSend(); + + @Click(SEND_MEETING) + STS701_S002_ClientDetailPage confirmMeeting(); + + @TypeInto(value = NAME_OF_CLIENT, clear = true) + KOK701_S001_MeetingSchedulingPage typeName(String name); + + @TypeInto(value = CLIENT_TELEPHONE_NUMBER, clear = true) + KOK701_S001_MeetingSchedulingPage typePhoneNumber(String phoneNumber); + + @Click(EMAIL_CHECKBOX) + KOK701_S001_MeetingSchedulingPage clickSendEmailCheckbox(); + + @TypeInto(value = EMAIL_FIELD, clear = true) + KOK701_S001_MeetingSchedulingPage typeEmail(String email); + + @Click(CALENDAR_BUTTON) + KOK701_S001_MeetingSchedulingPage clickCalendar(); + + @Click(value = CALENDAR_NEXT_MONTH, by = Lookup.XPATH) + KOK701_S001_MeetingSchedulingPage clickNextMonth(); + + @CustomAction + default KOK701_S001_MeetingSchedulingPage clickAvailableDayInCalendar() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + List calendarDays = Arrays.asList( + CALENDAR_WORK_DAY_1, + CALENDAR_WORK_DAY_2, + CALENDAR_WORK_DAY_3, + CALENDAR_WORK_DAY_4 + ); + + for (String workDay : calendarDays) { + endpoint.waitForElementsToLoad(2, Lookup.XPATH, Until.CLICKABLE, workDay); + endpoint.click(() -> workDay, Lookup.XPATH); + endpoint.waitForElementsToLoad(2, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + + if (endpoint.isElementVisible(TIME_COMBOBOX)) { + return this; + } else { + log("Day is full: " + workDay); + endpoint.click(() -> CALENDAR_BUTTON); + } + } + throw new RuntimeException("No available dates were found on the selected days."); + } + + @TypeInto(VALUE_FIELD) + KOK701_S001_MeetingSchedulingPage typeValue(String value); + + @Wait(value = TIME_COMBOBOX, until = Until.VISIBLE) + @Select(value = TIME_COMBOBOX, selectByOrder = true) + KOK701_S001_MeetingSchedulingPage selectTime(int order); + + @Click(NOTE_FOR_MEETING) + KOK701_S001_MeetingSchedulingPage clickNotes(); + + @TypeInto(value = NOTE_FOR_MEETING, clear = true) + KOK701_S001_MeetingSchedulingPage typeIntoNotes(String notes); + + @TypeInto(INTEREST_RATE_FIELD) + KOK701_S001_MeetingSchedulingPage typeInterestRate(String interestRate); + + @Click(DOCUMENT_CREDIT_CARD) + KOK701_S001_MeetingSchedulingPage clickCreditCardDocument(); + + @Click(DOCUMENT_ID_CARD) + KOK701_S001_MeetingSchedulingPage clickIDCardDocument(); + + @Click(DOCUMENT_PASSPORT) + KOK701_S001_MeetingSchedulingPage clickPasportDocument(); + + @Click(DOCUMENT_LAST_3_CONFIRM) + KOK701_S001_MeetingSchedulingPage click3PaymentConfirmationDocument(); + + @Click(DOCUMENT_INCOME_STATEMENT) + KOK701_S001_MeetingSchedulingPage clickConfirmationOfIncomeDocument(); + + @Click(DOCUMENT_BIRTH_CERTIFICATION) + KOK701_S001_MeetingSchedulingPage clickBirthCertificateDocument(); + + @Click(DOCUMENT_DRIVING_LICENSE) + KOK701_S001_MeetingSchedulingPage clickDrivingLicenseDocument(); + + @Click(DOCUMENT_LOAN_AGREEMENTS) + KOK701_S001_MeetingSchedulingPage clickLoanAgreementsDocument(); + + @Click(EXTRACT_FROM_OR_DOCUMENT) + KOK701_S001_MeetingSchedulingPage clickExtractFromORDocument(); + + @Click(DOCUMENT_TELEPHONE_BILL) + KOK701_S001_MeetingSchedulingPage clickTelephoneBillingDocument(); + + @Click(DOCUMENT_TRADE_CERTIFICATE) + KOK701_S001_MeetingSchedulingPage clickTradeCertificateDocument(); + + @Click(DOCUMENT_FIRST_TAX_RETURN) + KOK701_S001_MeetingSchedulingPage clickFirstTaxReturnDocument(); + + @Click(DOCUMENT_SECOND_TAX_RETURN) + KOK701_S001_MeetingSchedulingPage clickSecondTaxReturnDocument(); + + @Click(DOCUMENT_THIRD_RETURN_FROM_BU_FROM_LAST_3_MONTHS) + KOK701_S001_MeetingSchedulingPage clickThirdReturnFromBUFromLast3MonthsDocument(); + + @Click(SEND_MEETING) + @AcceptAlert(waitSecondsForAlert = 1, expectedAlertText = "Není vyplněno RČ. Pokud je to správně, klikněte na OK, pokud to správně není, klikněte na Cancel.") + OPS001_S001_ClientSearchPageUfoOperations clickSendWithoutRCCheck(); + + @Click(SEND_MEETING) + STS701_S002_ClientDetailPage clickSend(); + + @Click(value = SENDING_SMS_TAB, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + KOK701_S001_MeetingSchedulingPage clickSendingSms(); + + @Select(TYPE_SMS_COMBOBOX) + KOK701_S001_MeetingSchedulingPage selectTypeSms(int value); + + @TypeInto(TELEPHONE_CLIENT_TEXTBOX) + KOK701_S001_MeetingSchedulingPage typeIntoTelephoneClientTextBox(String telephoneNumber); + + @Wait(value = CENTRAL_MMB_CHECKBOX, until = Until.CLICKABLE) + @Click(CENTRAL_MMB_CHECKBOX) + KOK701_S001_MeetingSchedulingPage clickCentralMmbCheckBox(); + + @Click(SEND_BUTTON) + OPS001_S001_ClientSearchPageUfoOperations clickSendButton(); + + @Select(SELECTED_OM_COMBOBOX) + KOK701_S001_MeetingSchedulingPage selectOmFromComboBox(int value); + + @Click(MONDAY_CHECKBOX) + KOK701_S001_MeetingSchedulingPage clickMondayCheckBox(); + + @Click(WEDNESDAY_CHECKBOX) + KOK701_S001_MeetingSchedulingPage clickWednesdayCheckBox(); + + @TypeInto(TELEPHONE_OM_TEXTBOX) + KOK701_S001_MeetingSchedulingPage typeIntoTelephoneOmTextBox(String telephoneNumber); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/product/ProductActivationResultPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/product/ProductActivationResultPage.java new file mode 100644 index 0000000..f41fa6d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/client/product/ProductActivationResultPage.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.ufo.operations.client.product; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.client.product.ProductActivationResultPage.OK_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.client.product.ProductActivationResultPage.PAGE_NAME_XPATH; + +@Wait(OK_BUTTON) +@Wait(value = PAGE_NAME_XPATH, by = Lookup.XPATH) +public interface ProductActivationResultPage extends StoreAccessor, WebFlow { + String PAGE_NAME_XPATH = "//div[@id='BAL701_S002_L005' and text()='Výsledek zakládaného produktu']"; + String OK_BUTTON = "BAL701_S002_B001"; + + @CheckElementContent("BAL701_S002_L003") + ProductActivationResultPage checkProduct(String product); + + @Click(OK_BUTTON) + KOK701_S001_MeetingSchedulingPage scheduleMeetingAtABranch(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/error/ERR701_S001_LDAPErrorPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/error/ERR701_S001_LDAPErrorPage.java new file mode 100644 index 0000000..8e68b6d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/error/ERR701_S001_LDAPErrorPage.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.operations.error; + +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.error.ERR701_S001_LDAPErrorPage.ERROR_MESSAGE; + +@Wait(value = ERROR_MESSAGE) +public interface ERR701_S001_LDAPErrorPage extends WebFlow { + + String ERROR_MESSAGE = "ERR701_S001_L013"; + String CONTINUE_BUTTON = "ERR701_S001_B002"; + + @Click(CONTINUE_BUTTON) + OPS001_S001_ClientSearchPageUfoOperations dismissErrorPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/main/codelists/HCisBLDuvodVlozeni.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/main/codelists/HCisBLDuvodVlozeni.java new file mode 100644 index 0000000..2cc9e53 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/main/codelists/HCisBLDuvodVlozeni.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.operations.main.codelists; + +public enum HCisBLDuvodVlozeni { + + BILY_KUN("bílý kůň"); + + private final String value; + + HCisBLDuvodVlozeni(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/main/codelists/HCisBLTypAkce.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/main/codelists/HCisBLTypAkce.java new file mode 100644 index 0000000..5255794 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/main/codelists/HCisBLTypAkce.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.operations.main.codelists; + +public enum HCisBLTypAkce { + + OVEROVAT("Ověřovat"), + ZAMITAT("Zamítat"), + NEOVEROVAT("Neověřovat"); + + private final String value; + + HCisBLTypAkce(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/CRC710_S001_RecorderMainPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/CRC710_S001_RecorderMainPage.java new file mode 100644 index 0000000..93a3dc3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/CRC710_S001_RecorderMainPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.operations.recorder; + +import cz.moneta.test.dsl.ufo.operations.recorder.panels.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +public interface CRC710_S001_RecorderMainPage extends WebFlow, StoreAccessor, CRC710_S001_SubjectRecorderPanel, + CRC710_S001_SelectedWritingsRecorderPanel, CRC710_S001_SolutionRecorderPanel, CRC710_S001_RequirementsRecorderPanel, CRC710_S001_WritingsToCrcPanel, CRC710_S001_DetailOfRequestRecorderPanel { + + String LOAD_IMG_XPATH = "//div[@class='popupContent']"; + String GENERAL_TREE_ITEM_XPATH = "//span[contains(text(),'%s')]"; + + @CustomAction + default CRC710_S001_RecorderMainPageTransitions closeRecorderWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.closePopup(5); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/CRC710_S001_RecorderMainPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/CRC710_S001_RecorderMainPageTransitions.java new file mode 100644 index 0000000..e50bec7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/CRC710_S001_RecorderMainPageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.operations.recorder; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.STO704_S001_ClientConsentsPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface CRC710_S001_RecorderMainPageTransitions extends WebFlow { + + STS701_S002_ClientDetailPage onClientDetailPage(); + + OPS001_S001_ClientSearchPageUfoOperations onClientSearchPage(); + + STO704_S001_ClientConsentsPage onClientConsentsPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/RecorderNameOfGroup.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/RecorderNameOfGroup.java new file mode 100644 index 0000000..372a3fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/RecorderNameOfGroup.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.operations.recorder; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum RecorderNameOfGroup implements DynamicPathPart { + OM_RETAIL("OM Retail"), + CC_INCOMING_CALL("CC příchozí hovor"), + CC_OUTCOMING_CALL("CC odchozí hovor"), + CC_SUGGESTIONS_TO_IMPROVE_AND_PRAISES("CC náměty na zlepšení a pochvaly"), + CC_CENTER_AUTO("Call centrum Auto"), + GECL("GECL"), + MMB("MMB"), + CARDS_CREDIT("Karty,Úvěr"), + TELEMARKETING("Telemarketing"), + SALES("Prodej"), + RETENTION("Retence"), + CLIENT_SERVICE_ABROAD("Servis klientů v zahraničí"); + private final String value; + + RecorderNameOfGroup(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_DetailOfRequestRecorderPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_DetailOfRequestRecorderPanel.java new file mode 100644 index 0000000..ff893ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_DetailOfRequestRecorderPanel.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.operations.recorder.panels; + +import cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) +public interface CRC710_S001_DetailOfRequestRecorderPanel { + + String CLOSE_DETAIL_OF_CRC_REQUIREMENT = "CRC710_S001_P002"; + String DESCRIPTION_OF_REQUIREMENT_DETAIL = "CRC710_S001_L017"; + String SOLUTION_DESCRIPTION = "CRC710_S001_L025"; + + @Click(CLOSE_DETAIL_OF_CRC_REQUIREMENT) + CRC710_S001_RecorderMainPage clickCloseDetailCrcRequirement(); + + @CheckElementContent(SOLUTION_DESCRIPTION) + CRC710_S001_RecorderMainPage checkSolutionDescription(String solution); + + @CheckElementPresent(DESCRIPTION_OF_REQUIREMENT_DETAIL) + CRC710_S001_RecorderMainPage checkDescriptionOfRequirementDetail(); + + @CheckElementContent(DESCRIPTION_OF_REQUIREMENT_DETAIL) + CRC710_S001_RecorderMainPage checkNoteDescription(String note); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_RequirementsRecorderPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_RequirementsRecorderPanel.java new file mode 100644 index 0000000..6061cf1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_RequirementsRecorderPanel.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.ufo.operations.recorder.panels; + +import cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage; +import cz.moneta.test.dsl.ufo.operations.recorder.RecorderNameOfGroup; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage.GENERAL_TREE_ITEM_XPATH; +import static cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage.LOAD_IMG_XPATH; +import static cz.moneta.test.dsl.ufo.operations.recorder.panels.CRC710_S001_RequirementsRecorderPanel.REQUESTS_PANEL_XPATH; +import static cz.moneta.test.harness.support.web.Lookup.XPATH; +import static cz.moneta.test.harness.support.web.Until.GONE; + +@Wait(value = REQUESTS_PANEL_XPATH, by = Lookup.XPATH) +public interface CRC710_S001_RequirementsRecorderPanel extends StoreAccessor { + + String REQUESTS_PANEL_XPATH = "//fieldset[@id='CRC710_S001_Y002']"; + + String GENERAL_TREE_ICON_XPATH = GENERAL_TREE_ITEM_XPATH + "//ancestor::div[contains(@style, 'treeClosedLinedSimple.gif')]"; + + @Wait(value = GENERAL_TREE_ITEM_XPATH, by = XPATH) + @Click(value = GENERAL_TREE_ICON_XPATH, by = XPATH, jsClick = true, andWait = @Wait(value = LOAD_IMG_XPATH, until = GONE, by = XPATH)) + CRC710_S001_RecorderMainPage openGroupInTreeMenu(RecorderNameOfGroup nameOfGroup); + + @CustomAction + default CRC710_S001_RecorderMainPage openItemInTreeMenu(String itemName) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String treeItemXpath = String.format(GENERAL_TREE_ITEM_XPATH, itemName); + endpoint.jsClick(() -> REQUESTS_PANEL_XPATH + treeItemXpath, XPATH); + endpoint.jsDoubleClick(() -> REQUESTS_PANEL_XPATH + treeItemXpath, XPATH); + return null; + } + + @CheckElementPresent(value = REQUESTS_PANEL_XPATH + GENERAL_TREE_ITEM_XPATH, by = XPATH, isStringDynamicXpath = true) + CRC710_S001_RecorderMainPage checkRequirementIsVisible(String requirement); + + @CustomAction + default CRC710_S001_RecorderMainPage checkRequirementsAreVisible(RecorderNameOfGroup... requirements) { + for (RecorderNameOfGroup requirement : requirements) { + checkRequirementIsVisible(requirement.getValue()); + } + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_SelectedWritingsRecorderPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_SelectedWritingsRecorderPanel.java new file mode 100644 index 0000000..51e55fb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_SelectedWritingsRecorderPanel.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.ufo.operations.recorder.panels; + +import cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ufo.operations.recorder.panels.CRC710_S001_SelectedWritingsRecorderPanel.WRITTEN_LINE_INNER_TAB_DIV; +import static cz.moneta.test.harness.support.web.Lookup.XPATH; +import static cz.moneta.test.harness.support.web.Until.VISIBLE; + +@Wait(WRITTEN_LINE_INNER_TAB_DIV) +public interface CRC710_S001_SelectedWritingsRecorderPanel extends StoreAccessor { + + String WRITTEN_LINE_INNER_TAB_DIV = "CRC710_S001_I004_innerTab"; + String WRITTEN_LINE_GENERAL_XPATH = "//tr[@id='ufo-et-CRC710_S001_F001_row_%s']"; + String WRITTEN_LINE_FILLED_CONTENT_GENERAL_XPATH = "//div[contains(@id,'CRC710_S001_L07%s') and text()]"; + + @CustomAction + default CRC710_S001_RecorderMainPage waitForReasonInsertion(int reasonNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String xpath = String.format(WRITTEN_LINE_GENERAL_XPATH, reasonNumber) + String.format(WRITTEN_LINE_FILLED_CONTENT_GENERAL_XPATH, "2"); + endpoint.waitForElementsToLoad(20, XPATH, VISIBLE, xpath); + return null; + } + + @CustomAction + default CRC710_S001_RecorderMainPage waitForNextRecordInsertion(int currentRecordNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(20, XPATH, String.format(WRITTEN_LINE_GENERAL_XPATH, currentRecordNumber)); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_SolutionRecorderPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_SolutionRecorderPanel.java new file mode 100644 index 0000000..fbd93a8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_SolutionRecorderPanel.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.ufo.operations.recorder.panels; + +import cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage.GENERAL_TREE_ITEM_XPATH; +import static cz.moneta.test.dsl.ufo.operations.recorder.panels.CRC710_S001_SolutionRecorderPanel.SOLUTION_RECORDER_PANEL_DIV; +import static cz.moneta.test.harness.support.web.Lookup.XPATH; + +@Wait(value = SOLUTION_RECORDER_PANEL_DIV, by = Lookup.XPATH) +public interface CRC710_S001_SolutionRecorderPanel extends StoreAccessor { + + String SOLUTION_RECORDER_PANEL_DIV = "//div[@id='CRC710_S001_Y001_innerPanel']"; + String SOLUTIONS_DIV_XPATH = "//div[@id='CRC710_S001_T001']//div[@class='gwt-TreeItemChildSpanLast']"; + + @CustomAction + default CRC710_S001_RecorderMainPage addSolution(String reasonName) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String treeItemXpath = String.format(GENERAL_TREE_ITEM_XPATH, reasonName); + endpoint.waitForElementsToLoad(20, XPATH, treeItemXpath); + endpoint.jsClick(() -> SOLUTION_RECORDER_PANEL_DIV + treeItemXpath, XPATH); + endpoint.jsDoubleClick(() -> SOLUTION_RECORDER_PANEL_DIV + treeItemXpath, XPATH); + return null; + } + + @CheckElementPresent(value = SOLUTIONS_DIV_XPATH, by = Lookup.XPATH) + CRC710_S001_RecorderMainPage checkSolutionsDiv(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_SubjectRecorderPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_SubjectRecorderPanel.java new file mode 100644 index 0000000..7e35628 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_SubjectRecorderPanel.java @@ -0,0 +1,63 @@ +package cz.moneta.test.dsl.ufo.operations.recorder.panels; + +import cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.recorder.panels.CRC710_S001_SubjectRecorderPanel.INSERT_SUBJECT_FROM_CLIPBOARD; +import static cz.moneta.test.dsl.ufo.operations.recorder.panels.CRC710_S001_SubjectRecorderPanel.SUBJECT_INNER_PANEL_DIV; +import static cz.moneta.test.harness.support.web.Lookup.XPATH; +import static cz.moneta.test.harness.support.web.Until.CLICKABLE; +import static cz.moneta.test.harness.support.web.Until.GONE; + +@Wait(SUBJECT_INNER_PANEL_DIV) +public interface CRC710_S001_SubjectRecorderPanel extends WebFlow, StoreAccessor { + + String SUBJECT_INNER_PANEL_DIV = "CRC710_S001_Y007_innerPanel"; + String INSERT_SUBJECT_FROM_CLIPBOARD = "CRC710_S001_B002"; + String SUBJECT_BIRTH_NUMBER_RADIO = "CRC710_S001_R001_1"; + String SUBJECT_CIF_RADIO = "CRC710_S001_R001_12"; + String SUBJECT_INPUT = "CRC710_S001_E001"; + String SUBJECT_LOAD_BUTTON = "CRC710_S001_P012"; + String NUMBER_OF_CONTRACT = "CRC710_S001_E002"; + String NAME_OF_CLIENT = "CRC710_S001_L061"; + String SUBJECT_NAME_FILLED_DIV_XPATH = "//div[@id='" + NAME_OF_CLIENT + "' and text()]"; + String SUBJECT_WRITE_TO_CRS_BUTTON_ID = "CRC710_S001_B003"; + + @Wait(value = INSERT_SUBJECT_FROM_CLIPBOARD, until = CLICKABLE) + @Click(INSERT_SUBJECT_FROM_CLIPBOARD) + CRC710_S001_RecorderMainPage clickInsertSubjectFromClipboard(); + + @Wait(value = SUBJECT_BIRTH_NUMBER_RADIO, until = Until.CLICKABLE) + @Click(value = SUBJECT_BIRTH_NUMBER_RADIO, andWait = @Wait(explicitWaitSeconds = 1)) + CRC710_S001_RecorderMainPage clickBirthNumberInSubject(); + + @Wait(value = SUBJECT_CIF_RADIO, until = Until.CLICKABLE) + @Click(value = SUBJECT_CIF_RADIO, andWait = @Wait(explicitWaitSeconds = 1)) + CRC710_S001_RecorderMainPage clickCifInSubject(); + + @TypeInto(value = SUBJECT_INPUT, clear = true) + CRC710_S001_RecorderMainPage fillSearchSubjectInput(String value); + + @Wait(SUBJECT_LOAD_BUTTON) + @Click(value = SUBJECT_LOAD_BUTTON, andWait = @Wait(value = SUBJECT_NAME_FILLED_DIV_XPATH, by = XPATH, waitSecondsForElement = 30)) + CRC710_S001_RecorderMainPage clickLoadSubjectArrow(); + + @Wait(value = NAME_OF_CLIENT, until = Until.VISIBLE) + @CheckElementContent(NAME_OF_CLIENT) + CRC710_S001_RecorderMainPage checkNameOfClient(String name); + + @Wait(value = SUBJECT_NAME_FILLED_DIV_XPATH, by = XPATH, until = GONE, waitSecondsForElement = 30) + CRC710_S001_RecorderMainPage waitForSubjectNameVanish(); + + @Click(SUBJECT_WRITE_TO_CRS_BUTTON_ID) + CRC710_S001_RecorderMainPage submitRequest(); + + @CustomAction + default CRC710_S001_RecorderMainPage insertNumberOfContract() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.typeWithControlDown(NUMBER_OF_CONTRACT, "v"); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_WritingsToCrcPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_WritingsToCrcPanel.java new file mode 100644 index 0000000..91fa084 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/recorder/panels/CRC710_S001_WritingsToCrcPanel.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.ufo.operations.recorder.panels; + +import cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage.LOAD_IMG_XPATH; +import static cz.moneta.test.dsl.ufo.operations.recorder.panels.CRC710_S001_SubjectRecorderPanel.NUMBER_OF_CONTRACT; +import static cz.moneta.test.dsl.ufo.operations.recorder.panels.CRC710_S001_WritingsToCrcPanel.WRITINGS_TO_CRC_INNER_PANEL; +import static cz.moneta.test.harness.support.web.Lookup.XPATH; + +@Wait(WRITINGS_TO_CRC_INNER_PANEL) +public interface CRC710_S001_WritingsToCrcPanel extends WebFlow, StoreAccessor { + + String WRITINGS_TO_CRC_INNER_PANEL = "CRC710_S001_Y005_innerPanel"; + String FIRST_WRITING_ADDED_DATE_DIV = "CRC710_S001_L122-1"; + String ADDED_DATE_STORE = "ADDED_DATE"; + String FIRST_WRITING_DESCRIPTION = "CRC710_S001_L120-1"; + String FIRST_WRITING_CONTRACT_NUMBER = "CRC710_S001_L126-1"; + String FIRST_WRITING_DETAIL = "CRC710_S001_P015-1"; + + @Wait(value = FIRST_WRITING_DESCRIPTION, until = Until.VISIBLE) + @CheckElementPresent(FIRST_WRITING_DESCRIPTION) + CRC710_S001_RecorderMainPage checkPresentOfRequirement(); + + @CustomAction + default CRC710_S001_RecorderMainPage checkNumberOfContractInRequirement() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, FIRST_WRITING_CONTRACT_NUMBER); + Assertions.assertEquals(endpoint.getAttribute(NUMBER_OF_CONTRACT, "value"), endpoint.getText(FIRST_WRITING_CONTRACT_NUMBER)); + return null; + } + + @StoreElementContent(value = FIRST_WRITING_ADDED_DATE_DIV, storeKey = ADDED_DATE_STORE) + CRC710_S001_RecorderMainPage storeFirstLineAddedDate(); + + @Wait(value = FIRST_WRITING_DETAIL, until = Until.VISIBLE) + @Click(value = FIRST_WRITING_DETAIL, andWait = @Wait(value = LOAD_IMG_XPATH, by = XPATH, until = Until.GONE)) + CRC710_S001_RecorderMainPage clickDetailOfCrcRequirement(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/BLK701_S001_BlacklistWhitelist.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/BLK701_S001_BlacklistWhitelist.java new file mode 100644 index 0000000..6094ee1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/BLK701_S001_BlacklistWhitelist.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.ufo.operations.search; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX701_SharedTopMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.search.BLK701_S001_BlacklistWhitelist.RECORDER_APP_BUTTON; + +@Wait(RECORDER_APP_BUTTON) +public interface BLK701_S001_BlacklistWhitelist extends WebFlow, SharedElements, XXX701_SharedTopMenu { + + String BLACKLIST_TYPE_SELECT = "BLK701_S001_C001"; + String RC_SEARCH_INPUT = "BLK701_S001_E027"; + String CHECK_BUTTON = "BLK701_S001_B007"; + String NOTE_INPUT = "BLK701_S001_M001"; + String REASON_SELECT = "BLK701_S001_C002"; + String ACTION_TYPE = "BLK701_S001_C006"; + String INSERT_BUTTON = "BLK701_S001_B011"; + + @Select(value = BLACKLIST_TYPE_SELECT, + andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + BLK701_S001_BlacklistWhitelist selectBlacklistType(String blackListType); + + @TypeInto(RC_SEARCH_INPUT) + BLK701_S001_BlacklistWhitelist fillRCSearchInput(String birthNumber); + + @Click(value = CHECK_BUTTON, + andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + BLK701_S001_BlacklistWhitelist clickCheck(); + + @TypeInto(NOTE_INPUT) + BLK701_S001_BlacklistWhitelist fillNote(String note); + + @Select(REASON_SELECT) + BLK701_S001_BlacklistWhitelist selectReason(String reason); + + @Select(ACTION_TYPE) + BLK701_S001_BlacklistWhitelist selectActionType(String actionType); + + @Click(value = INSERT_BUTTON, + andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + BLK701_S001_BlacklistWhitelist clickInsert(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/CIF708_S001_ListOfClientRepresentativesPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/CIF708_S001_ListOfClientRepresentativesPage.java new file mode 100644 index 0000000..242fd05 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/CIF708_S001_ListOfClientRepresentativesPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.operations.search; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +@Wait(CIF708_S001_ListOfClientRepresentativesPage.CONTINUE_ON_FIST_CLIENT_BUTTON) +public interface CIF708_S001_ListOfClientRepresentativesPage extends WebFlow { + + String CONTINUE_ON_FIST_CLIENT_BUTTON = "CIF708_S001_P003-1"; + + @Click(CONTINUE_ON_FIST_CLIENT_BUTTON) + STS701_S002_ClientDetailPage clickContinueOnFirstClient(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/ClientType.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/ClientType.java new file mode 100644 index 0000000..cdd9124 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/ClientType.java @@ -0,0 +1,8 @@ +package cz.moneta.test.dsl.ufo.operations.search; + +public enum ClientType { + FON, + FOP, + PO; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_CardsSearch.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_CardsSearch.java new file mode 100644 index 0000000..dcc99ad --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_CardsSearch.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.operations.search; + +import cz.moneta.test.harness.support.web.*; + +public interface OPS001_S001_CardsSearch extends WebFlow, OPS001_S001_SharedSearchElements { + + String BIRTH_NUMBER_RADIO = "OPS001_S001_R003_1"; + String SEARCH_BUTTON_CARDS = "OPS001_S001_B008"; + + @Click(value = BIRTH_NUMBER_RADIO) + OPS001_S001_CardsSearch clickRcRadio(); + + @Wait(value = SEARCH_BUTTON_CARDS, until = Until.PRESENT_IN_DOM) + @Click(SEARCH_BUTTON_CARDS) + OPS001_S001_ClientSearchPageTransitions clickSearch(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_ClientSearchPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_ClientSearchPageTransitions.java new file mode 100644 index 0000000..193eddd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_ClientSearchPageTransitions.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.operations.search; + +import cz.moneta.test.dsl.ufo.operations.client.HLA701_S001_EmployeeDetailsConfirmationPage; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface OPS001_S001_ClientSearchPageTransitions extends WebFlow { + + STS701_S002_ClientDetailPage onClientDetailsPage(); + + HLA701_S001_EmployeeDetailsConfirmationPage onEmployeeDetailsConfirmationPage(); + + CIF708_S001_ListOfClientRepresentativesPage onListOfClientRepresentativesPage(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_ClientSearchPageUfoOperations.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_ClientSearchPageUfoOperations.java new file mode 100644 index 0000000..19567c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_ClientSearchPageUfoOperations.java @@ -0,0 +1,63 @@ +package cz.moneta.test.dsl.ufo.operations.search; + +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX701_SharedTopMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations.MEETINGS_AND_SMS_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations.RECORDER_APP_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations.SEARCH_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations.TASKS_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_SharedSearchElements.SEARCH_INPUT; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = {RECORDER_APP_BUTTON, SEARCH_INPUT, SEARCH_BUTTON, TASKS_BUTTON, MEETINGS_AND_SMS_BUTTON}, waitSecondsForElement = 60) +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) +@Wait(explicitWaitSeconds = 1) // Workaround for page loading +public interface OPS001_S001_ClientSearchPageUfoOperations extends WebFlow, StoreAccessor, OPS001_S001_SharedSearchElements, OPS001_S001_LeftMenu, XXX701_SharedTopMenu { + + String SEARCH_BUTTON = "OPS001_S001_B006"; + String SEARCH_BY_RADIOS = "OPS001_S001_R003_%s"; + String BIRTH_NUMBER_RADIO = "OPS001_S001_R003_2"; + String CARDS_RADIO = "OPS001_S001_R001_2"; + + @Click(BIRTH_NUMBER_RADIO) + OPS001_S001_ClientSearchPageUfoOperations clickRcRadio(); + + @Click(value = CARDS_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + OPS001_S001_CardsSearch clickCardsRadio(); + + @Click(SEARCH_BY_RADIOS) + @Click(SEARCH_BUTTON) + OPS001_S001_ClientSearchPageTransitions searchBy(SearchBy searchBy); + + @CustomAction + default OPS001_S001_ClientSearchPageTransitions searchByAndAcceptAlertIfVisible(SearchBy searchBy) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + searchBy(searchBy); + if (endpoint.isAlertPresent(10)) { + endpoint.acceptAlert(3); + } + return null; + } + + @Wait(value = SEARCH_BUTTON, until = Until.PRESENT_IN_DOM) + @Click(SEARCH_BUTTON) + OPS001_S001_ClientSearchPageTransitions clickSearchClient(); + + @CheckElementPresent(SEARCH_BUTTON) + OPS001_S001_ClientSearchPageUfoOperations checkSearchInputInMainPage(); + + /** + * Workaround + * Nepravidelně se stává, že se tlačítko Vyhledat v OPS pouze označí, ale na click nezareaguje + */ + @CustomAction + default OPS001_S001_ClientSearchPageTransitions clickSearchClientWithHover() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.moveToElement(SEARCH_BUTTON); + endpoint.click(() -> SEARCH_BUTTON); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_LeftMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_LeftMenu.java new file mode 100644 index 0000000..3815fa3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_LeftMenu.java @@ -0,0 +1,55 @@ +package cz.moneta.test.dsl.ufo.operations.search; + +import cz.moneta.test.dsl.earchiv.StatementsPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.EMA701_S001_ManualApprovingQueue; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.EXE704_S001_CancelPaymentOrderPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.EXE705_S001_PaymentRecordsToApprovePage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.TRA740_S001_CreateNewTransferPaymentOrderPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface OPS001_S001_LeftMenu extends Builder, StoreAccessor { + + String BLACKLIST_WHITELIST_BUTTON = "OPS001_S001_I004"; + String SEARCH_AP_RISK_BUTTON = "OPS001_S001_I043"; + String MANUAL_APPROVING_BUTTON = "OPS001_S001_I054"; + String TRANSFER_PAYMENTS_ORDER_DIV = "OPS001_S001_I032"; + String CREATE_NEW_TRANSFER_PAYMENT_ORDER_DIV = "OPS001_S001_I034"; + String CANCEL_PAYMENT_ORDER_DIV = "OPS001_S001_I142"; + String TRANSFER_PAYMENT_VERIFICATION_DIV = "OPS001_S001_I078"; + String EARCHIV_BUTTON = "//div[@id='OPS001_S001_I121' and @class='ufo-MenuItem ufo-MenuItem-vertical']"; + String EARCHIV_BUTTON_FOCUSED = "//div[@id='OPS001_S001_I121' and @class='ufo-MenuItem ufo-MenuItem-vertical ufo-MenuItem-selected']"; + + @Click(BLACKLIST_WHITELIST_BUTTON) + BLK701_S001_BlacklistWhitelist clickBlacklistWhitelist(); + + @Click(SEARCH_AP_RISK_BUTTON) + SCH704_S001_ClientSearchApRisk clickSearchApRisk(); + + @Click(MANUAL_APPROVING_BUTTON) + EMA701_S001_ManualApprovingQueue clickRiskManualApprovingQueue(); + + @Click(TRANSFER_PAYMENTS_ORDER_DIV) + @Click(value = CREATE_NEW_TRANSFER_PAYMENT_ORDER_DIV, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRA740_S001_CreateNewTransferPaymentOrderPage clickCreateNewTransferPaymentOrder(); + + @Click(TRANSFER_PAYMENTS_ORDER_DIV) + @Click(value = CANCEL_PAYMENT_ORDER_DIV, jsClick = true) + EXE704_S001_CancelPaymentOrderPage clickCancelPaymentOrder(); + + @Click(TRANSFER_PAYMENTS_ORDER_DIV) + @Click(value = TRANSFER_PAYMENT_VERIFICATION_DIV, jsClick = true) + EXE705_S001_PaymentRecordsToApprovePage clickTransferPaymentOrderVerification(); + + @CustomAction + default StatementsPage clickEarchiv() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.moveToElementAndClickToOtherElement(EARCHIV_BUTTON, EARCHIV_BUTTON_FOCUSED, Lookup.XPATH); + endpoint.switchToOtherWindow(5, 2); + return null; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_SharedSearchElements.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_SharedSearchElements.java new file mode 100644 index 0000000..132eb4c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/OPS001_S001_SharedSearchElements.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.operations.search; + +import cz.moneta.test.harness.support.web.*; + +public interface OPS001_S001_SharedSearchElements { + + String SEARCH_INPUT = "OPS001_S001_E008"; + + @Wait(value = SEARCH_INPUT, until = Until.VISIBLE) + @TypeInto(value = SEARCH_INPUT, clear = true) + T fillSearchInput(String searchValue); + + @ExecuteJavaScript("navigator.clipboard.writeText(document.getElementById('" + SEARCH_INPUT + "').value)") + T copyRcOfClientToClipboard(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/SCH704_S001_ClientSearchApRisk.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/SCH704_S001_ClientSearchApRisk.java new file mode 100644 index 0000000..0904415 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/SCH704_S001_ClientSearchApRisk.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.ufo.operations.search; + +import cz.moneta.test.dsl.ufo.operations.client.ClientRiskDetails; +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX701_SharedTopMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.search.SCH704_S001_ClientSearchApRisk.RECORDER_APP_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.search.SCH704_S001_ClientSearchApRisk.SEARCH_BUTTON; + +@Wait(value = {RECORDER_APP_BUTTON, SEARCH_BUTTON}) +public interface SCH704_S001_ClientSearchApRisk extends StoreAccessor, WebFlow, XXX701_SharedTopMenu { + + String AP_INPUT = "SCH704_S001_E002"; + String BIRTHNUMBER_INPUT = "SCH704_S001_E001"; + String SEARCH_BUTTON = "SCH704_S001_B001"; + + @TypeInto(AP_INPUT) + SCH704_S001_ClientSearchApRisk fillAP(String ap); + + @TypeInto(BIRTHNUMBER_INPUT) + SCH704_S001_ClientSearchApRisk fillBirthNumber(String birthNumber); + + @Click(SEARCH_BUTTON) + ClientRiskDetails clickSearch(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/SearchBy.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/SearchBy.java new file mode 100644 index 0000000..34d759f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/search/SearchBy.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.operations.search; + +import cz.moneta.test.harness.support.web.DynamicPathPart; + +public enum SearchBy implements DynamicPathPart { + BIRTH_NUMBER("2"), + CIF("3"), + ACCOUNT_NUMBER("1"), + ICO("4"), + UID("27"); + + private final String id; + + SearchBy(String id) { + this.id = id; + } + + @Override + public String getValue() { + return id; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/LogOutPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/LogOutPage.java new file mode 100644 index 0000000..ac3a864 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/LogOutPage.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.operations.shared; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.shared.LogOutPage.RELOGIN_BUTTON; + +@Wait({RELOGIN_BUTTON}) +public interface LogOutPage extends WebFlow { + String RELOGIN_BUTTON = "XXX7_LOGOUT_B001"; + + @Click(RELOGIN_BUTTON) + void clickRelogin(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/PrintAppPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/PrintAppPage.java new file mode 100644 index 0000000..5b83d3a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/PrintAppPage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.ufo.operations.shared; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.PrintAppPage.APPLICATION_LOADER; +import static cz.moneta.test.dsl.ufo.operations.shared.PrintAppPage.EDITOR_PAGE_DIV; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(EDITOR_PAGE_DIV) +@Wait(value = APPLICATION_LOADER, until = Until.GONE) +public interface PrintAppPage extends WebFlow, StoreAccessor { + + String EDITOR_PAGE_DIV = "editor-page"; + String OK_BUTTON = "approveButton"; + String APPLICATION_LOADER = "application_loader"; + String COMPLETED_DIV_XPATH = "//div[@class='bb-app-header-btn-title bb-titleForActionButtonLeftPaddingStyle bb-titleForActionButtonRightPaddingStyle bb-titleSmallFontStyle bb-titleStyleSemiBold' and text()='Dokončeno']"; + String HISTORY_DIV = "approval-history"; + + @Click(value = OK_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PrintAppPage clickOk(); + + @Click(value = COMPLETED_DIV_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PrintAppPage clickComplete(); + + @CheckElementContent(HISTORY_DIV) + PrintAppPage assertHistory(String history); + + @CustomAction + default STS701_S002_ClientDetailPage switchToModalWindowByTitle(String title) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.closeCurrentWindow(); + endpoint.switchToWindowByTitle(title); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/SharedElements.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/SharedElements.java new file mode 100644 index 0000000..1c2121f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/SharedElements.java @@ -0,0 +1,5 @@ +package cz.moneta.test.dsl.ufo.operations.shared; + +public interface SharedElements { + String LOAD_IMG_DIV_CLASS = "gwt-Image"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/UfoOpsUtils.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/UfoOpsUtils.java new file mode 100644 index 0000000..76613eb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/UfoOpsUtils.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.ufo.operations.shared; + +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Lookup; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class UfoOpsUtils { + + private static final String TABLE_CELL_XPATH = "//td[@class='ufo-Table-BodyCell' and text()='%s']"; + + public static float getScoreTableValueFloat(boolean useApplicationScore, int siblingIndex, UfoEndpoint endpoint) { + return Float.parseFloat(removeSpaces(getScoreTableValueString(useApplicationScore, siblingIndex, endpoint))); + } + + public static String getScoreTableValueString(boolean useApplicationScore, int siblingIndex, UfoEndpoint endpoint) { + String rowFirstCellText = getScoreRowFirstCellText(useApplicationScore); + return getTableValueString(rowFirstCellText, siblingIndex, endpoint); + } + + public static float getTableValueFloat(String rowFirstCellXpath, int siblingIndex, UfoEndpoint endpoint) { + return Float.parseFloat(removeSpaces(getTableValueString(rowFirstCellXpath, siblingIndex, endpoint))); + } + + public static String getTableValueString(String rowFirstCellText, int siblingIndex, UfoEndpoint endpoint) { + return getCellValue(getTableCellXpath(rowFirstCellText), siblingIndex, endpoint); + } + + private static String getScoreRowFirstCellText(boolean useApplicationScore) { + return useApplicationScore ? "Application Score Total" : "Behavioral Score"; + } + + public static String getTableCellXpath(String cellText) { + return String.format(TABLE_CELL_XPATH, cellText); + } + + private static String getCellValue(String rowFirstCellXpath, int siblingIndex, UfoEndpoint endpoint) { + return endpoint.getText(rowFirstCellXpath + String.format("//following-sibling::td[%s]", siblingIndex), Lookup.XPATH); + } + + private static String removeSpaces(String input) { + return input.replace(" ", ""); + } + + public static List loadClientsIcoFromTextFile(String textFilePath) { + List lines = new ArrayList<>(); + try (BufferedReader br = new BufferedReader(new FileReader(textFilePath))) { + String line; + while ((line = br.readLine()) != null) { + lines.add(line); + } + } catch (IOException e) { + e.printStackTrace(); + } + return lines; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX701_SharedTopMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX701_SharedTopMenu.java new file mode 100644 index 0000000..99a66ad --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX701_SharedTopMenu.java @@ -0,0 +1,87 @@ +package cz.moneta.test.dsl.ufo.operations.shared.topmenu; + +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.operations.client.product.KOK701_S001_MeetingSchedulingPage; +import cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.shared.LogOutPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.ETS701_S001_ClientDocuments; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.KAL730_S001_CalculatorPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.SET701_S001_AuthorizationOverview; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface XXX701_SharedTopMenu extends StoreAccessor { + + String SSO_OF_LOGGED_USER = "//div[@id='XXX701_T001']/input[@name='SSO']"; + + String HOMEPAGE_BUTTON = "XXX701_T001_P007"; + String CORRESPONDENCE_BUTTON = "XXX701_T001_P027"; + String MEETINGS_AND_SMS_BUTTON = "XXX701_T001_P028"; + String CONTACT_FORWARDING_BUTTON = "XXX701_T001_P018"; + String RECORDER_APP_BUTTON = "XXX701_T001_P024"; + String CALCULATOR_BUTTON = "XXX701_T001_P010"; + String TASKS_BUTTON = "XXX701_T001_P025"; + + String APPLICATION_SELECT_BUTTON = "XXX701_T001_P003"; + String APPLICATION_SELECT_UFO_BANKA_BUTTON = "XXX701_T001_P005-1"; + + + String STATUS_LABEL = "XXX701_T001_L030"; + String SETTINGS_BUTTON = "XXX701_T001_P001"; + String LOGOUT_BUTTON = "XXX701_T001_B008"; + + + + @Click(value = HOMEPAGE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + OPS001_S001_ClientSearchPageUfoOperations clickHomePage(); + + @CustomAction + default ETS701_S001_ClientDocuments clickCorrespondence() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> CORRESPONDENCE_BUTTON); + endpoint.focusToNewPopup(10); + return null; + } + + @Click(MEETINGS_AND_SMS_BUTTON) + KOK701_S001_MeetingSchedulingPage clickMeetingsAndSms(); + + @Click(CONTACT_FORWARDING_BUTTON) + XCM701_S001_ContactForwardingPage clickContactForwarding(); + + @CustomAction + default CRC710_S001_RecorderMainPage clickRecorder() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> RECORDER_APP_BUTTON); + endpoint.focusToNewPopup(10); + return null; + } + + @Click(CALCULATOR_BUTTON) + KAL730_S001_CalculatorPage clickCalculator(); + + @Click(value = TASKS_BUTTON, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, waitSecondsForElement = 30, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskList clickTasks(); + + @Click(APPLICATION_SELECT_BUTTON) + OPS001_S001_ClientSearchPageUfoOperations clickChangeApplication(); + + @Click(APPLICATION_SELECT_UFO_BANKA_BUTTON) + HLO001_S001_ClientSearchPage clickUfoBanka(); + + @CheckElementContent(STATUS_LABEL) + T assertStatusLabel(String expectedStatus); + + @Click(value = SETTINGS_BUTTON) + SET701_S001_AuthorizationOverview clickSettings(); + + @Click(LOGOUT_BUTTON) + LogOutPage clickLogout(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_Requirements.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_Requirements.java new file mode 100644 index 0000000..2de64d4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_Requirements.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.operations.shared.topmenu; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface XXX702_Requirements> extends WebFlow, StoreAccessor { + + String REQUIREMENT_DATE = "XXX702_T001_L286-1"; + + String REFRESH_REQ_BUTTON = "XXX702_T001_B001"; + + @Wait(value = REQUIREMENT_DATE, until = Until.VISIBLE) + @GetElementContent(REQUIREMENT_DATE) + String getRequirementDate(); + + @Wait(value = REFRESH_REQ_BUTTON, until = Until.VISIBLE) + @Click(value = REFRESH_REQ_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XXX702_Requirements clickRefreshRequirement(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_SharedClientMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_SharedClientMenu.java new file mode 100644 index 0000000..fc57a62 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_SharedClientMenu.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.operations.shared.topmenu; + +import cz.moneta.test.dsl.ufo.operations.ufoOperations.ZKU704_S001_ChangeContactData; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface XXX702_SharedClientMenu> extends XXX702_Requirements { + + String REQUIREMENT_BUTTON_XPATH = "//button[contains(@title, '[XXX702_T001_I015]')]"; + + String CHANGE_CONTACT_DATA_BUTTON = "XXX702_T001_P047"; + + @Wait(value = REQUIREMENT_BUTTON_XPATH, by = Lookup.XPATH, until = Until.CLICKABLE) + @Click(value = REQUIREMENT_BUTTON_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XXX702_Requirements menuClickRequirements(); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @Click(CHANGE_CONTACT_DATA_BUTTON) + ZKU704_S001_ChangeContactData menuClickChangeContactData(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_SharedSearchMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_SharedSearchMenu.java new file mode 100644 index 0000000..16e0af6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_SharedSearchMenu.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.operations.shared.topmenu; + +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageTransitions; +import cz.moneta.test.harness.support.web.*; + +public interface XXX702_SharedSearchMenu> { + + String SEARCH_PARAMETER_INPUT = "XXX702_T001_E005"; + String SEARCH_ARROW_BUTTON = "XXX702_T001_B009"; + + @TypeInto(SEARCH_PARAMETER_INPUT) + T fillMenuSearchParameter(String searchParameter); + + @Click(value = SEARCH_ARROW_BUTTON) + OPS001_S001_ClientSearchPageTransitions clickSearchArrowButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_SharedTopMenu.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_SharedTopMenu.java new file mode 100644 index 0000000..046cd40 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/shared/topmenu/XXX702_SharedTopMenu.java @@ -0,0 +1,80 @@ +package cz.moneta.test.dsl.ufo.operations.shared.topmenu; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.client.product.KOK701_S001_MeetingSchedulingPage; +import cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.shared.LogOutPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.ETS701_S001_ClientDocuments; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.KAL730_S001_CalculatorPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface XXX702_SharedTopMenu> extends XXX702_SharedClientMenu, XXX702_SharedSearchMenu, StoreAccessor { + + String LOGOUT_BUTTON = "XXX702_T001_B008"; + + String ACTUAL_DATE_DIV = "XXX702_T001_L172"; + + String HOMEPAGE_BUTTON = "XXX702_T001_P007"; + String REFRESH_CLIENT_BUTTON = "XXX702_T001_P016"; + + String CORRESPONDENCE_BUTTON = "XXX702_T001_P027"; + String MEETINGS_AND_SMS_BUTTON = "XXX702_T001_P028"; + String CONTACT_FORWARDING_BUTTON = "XXX702_T001_P018"; + String RECORDER_APP_BUTTON = "XXX702_T001_P024"; + String CALCULATOR_BUTTON = "XXX702_T001_P010"; + String TASK_MANAGEMENT_BUTTON = "XXX702_T001_P053"; + + @Click(LOGOUT_BUTTON) + LogOutPage clickLogout(); + + @Click(value = HOMEPAGE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + OPS001_S001_ClientSearchPageUfoOperations clickHomePage(); + + @Click(REFRESH_CLIENT_BUTTON) + T clickRefreshClientButton(); + + @CustomAction + default ETS701_S001_ClientDocuments clickCorrespondence() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> CORRESPONDENCE_BUTTON); + endpoint.focusToNewPopup(10); + return null; + } + + @Click(MEETINGS_AND_SMS_BUTTON) + KOK701_S001_MeetingSchedulingPage clickMeetingsAndSms(); + + @Click(CONTACT_FORWARDING_BUTTON) + XCM701_S001_ContactForwardingPage clickContactForwarding(); + + @CustomAction + default CRC710_S001_RecorderMainPage clickRecorder() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> RECORDER_APP_BUTTON); + endpoint.focusToNewPopup(10); + return null; + } + + @Click(CALCULATOR_BUTTON) + KAL730_S001_CalculatorPage clickCalculator(); + + @CustomAction + default STS701_S002_ClientDetailPage checkPageNotContainsMenuElements() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + List elementsList = List.of(CORRESPONDENCE_BUTTON, MEETINGS_AND_SMS_BUTTON, CONTACT_FORWARDING_BUTTON, RECORDER_APP_BUTTON, CALCULATOR_BUTTON, TASK_MANAGEMENT_BUTTON); + for (String element : elementsList) { + Assertions.assertFalse(endpoint.isElementVisible(1, element, Lookup.ID)); + } + return null; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ACQ702_S005_ConfirmationOfIncome.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ACQ702_S005_ConfirmationOfIncome.java new file mode 100644 index 0000000..997fdfa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ACQ702_S005_ConfirmationOfIncome.java @@ -0,0 +1,126 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.data.client.OccupationStatus; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.ACQ702_S005_ConfirmationOfIncome.SEND; +import static cz.moneta.test.dsl.util.DateFormatPatterns.CZ_DATE_FORMAT; +import static cz.moneta.test.dsl.util.DateUtils.getDateWithFormat; + +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 50) +@Wait(value = SEND, waitSecondsForElement = 50) +public interface ACQ702_S005_ConfirmationOfIncome extends WebFlow, StoreAccessor { + + String LAST_NAME = "//input[@id='ACQ702_S005_E002' and @type='text']"; + String SURNAME = "ACQ702_S005_E004"; + String EMPLOYED_SINCE = "ACQ702_S005_E016"; + String EMPLOYED_TILL = "ACQ702_S005_E014"; + String EMPLOYMENT_TYPE = "ACQ702_S005_C005"; + String NET_EARNINGS = "ACQ702_S005_E015"; + String INSTALMENT = "ACQ702_S005_E017"; + String WAGE_DEDUCTIONS = "ACQ702_S005_E010"; + String DEPENDING_PEOPLE = "ACQ702_S005_E018"; + String EMPLOYER_NAME = "ACQ702_S005_E005"; + String EMPLOYER_STREET = "ACQ702_S005_E006"; + String EMPLOYER_DESCRIPTION_NUMBER = "ACQ702_S005_E007"; + String EMPLOYER_ORIENTATION_NUMBER = "ACQ702_S005_E019"; + String EMPLOYER_CITY = "ACQ702_S005_E008"; + String EMPLOYER_POST_CODE = "ACQ702_S005_E009"; + String EMPLOYER_ICO = "ACQ702_S005_E011"; + String ISSUE_DATE = "ACQ702_S005_E012"; + String STAMP = "ACQ702_S005_H002_1"; + String SIGNATURE = "ACQ702_S005_H001_1"; + + String SEND = "ACQ702_S005_B001"; + String SEND_AGREE = "SCH708_S001_B001"; + String FINAL_AGREE = "SCH711_S002_B002"; + + @Wait(value = LAST_NAME, by = Lookup.XPATH) + @TypeInto(value = LAST_NAME, by = Lookup.XPATH) + ACQ702_S005_ConfirmationOfIncome fillLastName(String lastName); + + @TypeInto(value = SURNAME) + ACQ702_S005_ConfirmationOfIncome fillSurname(String firstName); + + @TypeInto(value = EMPLOYED_SINCE) + ACQ702_S005_ConfirmationOfIncome fillEmployedSince(String employedSince); + + /** + * @param type (doba určitá,doba neurčitá) + */ + @Select(value = EMPLOYMENT_TYPE) + ACQ702_S005_ConfirmationOfIncome selectEmployemntType(String type); + + @TypeInto(value = NET_EARNINGS) + ACQ702_S005_ConfirmationOfIncome fillNetEarnings(String netEarnings); + + @TypeInto(value = INSTALMENT) + ACQ702_S005_ConfirmationOfIncome fillInstalment(String instalment); + + @TypeInto(value = WAGE_DEDUCTIONS) + ACQ702_S005_ConfirmationOfIncome fillWageDeductions(String wageDeductions); + + @TypeInto(value = DEPENDING_PEOPLE) + ACQ702_S005_ConfirmationOfIncome fillDependingPeople(String dependingPeople); + + @TypeInto(value = EMPLOYER_NAME) + ACQ702_S005_ConfirmationOfIncome fillEmployerName(String employerName); + + @TypeInto(value = EMPLOYER_STREET) + ACQ702_S005_ConfirmationOfIncome fillEmployerStreet(String employerStreet); + + @TypeInto(value = EMPLOYER_DESCRIPTION_NUMBER) + ACQ702_S005_ConfirmationOfIncome fillDescriptionNumber(String descriptionNumber); + + @TypeInto(value = EMPLOYER_ORIENTATION_NUMBER) + ACQ702_S005_ConfirmationOfIncome fillOrientationNumber(String orientationNumber); + + @TypeInto(value = EMPLOYER_CITY) + ACQ702_S005_ConfirmationOfIncome fillEmployerCity(String employerCity); + + @TypeInto(value = EMPLOYER_POST_CODE) + ACQ702_S005_ConfirmationOfIncome fillEmployerPostCode(String postCode); + + @TypeInto(value = EMPLOYER_ICO) + ACQ702_S005_ConfirmationOfIncome fillEmployerIco(String ico); + + @TypeInto(value = ISSUE_DATE) + ACQ702_S005_ConfirmationOfIncome fillIssueDate(String issueDate); + + @Click(value = STAMP) + ACQ702_S005_ConfirmationOfIncome clickStamp(); + + @Click(value = SIGNATURE) + ACQ702_S005_ConfirmationOfIncome clickSignature(); + + @Click(value = SEND, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 30)) + ACQ702_S005_ConfirmationOfIncome clickSend(); + + @Wait(value = SEND_AGREE) + @Click(value = SEND_AGREE, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 30)) + ACQ702_S005_ConfirmationOfIncome clickSendAgree(); + + @Wait(value = FINAL_AGREE) + @Click(value = FINAL_AGREE, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 30)) + ACQ702_S005_ConfirmationOfIncome clickFinalAgree(); + + @CustomAction + default ACQ702_S005_ConfirmationOfIncome fillEmploymentTillIfPresent(NonClient client) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + if (client.occupationStatus() == OccupationStatus.FULL_TIME_EMPLOYEE_FINITE) { + endpoint.type(() -> EMPLOYED_TILL, getDateWithFormat(client.occupationEmploymentTillRaw(), CZ_DATE_FORMAT), true); + } + return null; + } + + @CustomAction + default UKO720_S001_TaskDetail closeWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.closePopup(20); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ACQ702_S008_AccountStatement.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ACQ702_S008_AccountStatement.java new file mode 100644 index 0000000..6dc7437 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ACQ702_S008_AccountStatement.java @@ -0,0 +1,114 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Select; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.ACQ702_S008_AccountStatement.SEND_BUTTON_XPATH; + +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 50) +@Wait(value = SEND_BUTTON_XPATH, waitSecondsForElement = 50) +public interface ACQ702_S008_AccountStatement extends WebFlow, StoreAccessor { + + String SEND_BUTTON_XPATH = "ACQ702_S008_B001"; + String LASTNAME_INPUT_XPATH = "ACQ702_S008_E002"; + String SURNAME_INPUT_XPATH = "ACQ702_S008_E004"; + String ICO_INPUT_XPATH = "ACQ702_S008_E013"; + String ACCOUNT_NUMBER_INPUT_XPATH = "ACQ702_S008_E016"; + String STREET_INPUT_XPATH = "ACQ702_S008_E006"; + String CISLO_POPISNY_INPUT_XPATH = "ACQ702_S008_E007"; + String CISLO_DOMU_INPUT_XPATH = "ACQ702_S008_E015"; + String TOWN_INPUT_XPATH = "ACQ702_S008_E008"; + String ZIP_CODE_INPUT_XPATH = "ACQ702_S008_E009"; + String SENDER_INTAKE_INPUT_XPATH = "ACQ702_S008_E012"; + String INCOME_1_INPUT_XPATH = "ACQ702_S008_E010"; + String INCOME_2_INPUT_XPATH = "ACQ702_S008_E021"; + String INCOME_3_INPUT_XPATH = "ACQ702_S008_E020"; + String CONFIRMATION_DATE_INPUT_XPATH = "ACQ702_S008_E014"; + + String STAMP_CHBOX_XPATH = "ACQ702_S008_H002_1"; + + String SELECT_OWNER_BU_XPATH = "ACQ702_S008_C003"; + String SELECT_COUNTRY_XPATH = "ACQ702_S008_C001"; + + String SEND_BUTTON_2_XPATH = "SCH708_S001_B001"; + String SEND_BUTTON_3_XPATH = "SCH711_S002_B002"; + + @Click(value = SEND_BUTTON_XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 30)) + ACQ702_S008_AccountStatement clickSend(); + + @Click(value = STAMP_CHBOX_XPATH) + ACQ702_S008_AccountStatement clickStamp(); + + @TypeInto(value = LASTNAME_INPUT_XPATH) + ACQ702_S008_AccountStatement fillLastName(String input); + + @TypeInto(value = SURNAME_INPUT_XPATH) + ACQ702_S008_AccountStatement fillSurname(String input); + + @TypeInto(value = ICO_INPUT_XPATH) + ACQ702_S008_AccountStatement fillICO(String input); + + @TypeInto(value = ACCOUNT_NUMBER_INPUT_XPATH) + ACQ702_S008_AccountStatement fillAccountNumber(String input); + + @TypeInto(value = STREET_INPUT_XPATH) + ACQ702_S008_AccountStatement fillStreet(String input); + + @TypeInto(value = CISLO_POPISNY_INPUT_XPATH) + ACQ702_S008_AccountStatement fillNumberP(String input); + + @TypeInto(value = CISLO_DOMU_INPUT_XPATH) + ACQ702_S008_AccountStatement fillNumberO(String input); + + @TypeInto(value = TOWN_INPUT_XPATH) + ACQ702_S008_AccountStatement fillTown(String input); + + @TypeInto(value = ZIP_CODE_INPUT_XPATH) + ACQ702_S008_AccountStatement fillZIPCode(String input); + + @TypeInto(value = SENDER_INTAKE_INPUT_XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ACQ702_S008_AccountStatement fillSenderIntake(String input); + + @TypeInto(value = INCOME_1_INPUT_XPATH) + ACQ702_S008_AccountStatement fillFirstIncome(String input); + + @TypeInto(value = INCOME_2_INPUT_XPATH) + ACQ702_S008_AccountStatement fillSecondIncome(String input); + + @TypeInto(value = INCOME_3_INPUT_XPATH) + ACQ702_S008_AccountStatement fillThirdIncome(String input); + + @TypeInto(value = CONFIRMATION_DATE_INPUT_XPATH) + ACQ702_S008_AccountStatement fillConfirmationDate(String input); + + @Select(value = SELECT_OWNER_BU_XPATH) + ACQ702_S008_AccountStatement selectOwnerBU(String selectValue); + + @Select(value = SELECT_COUNTRY_XPATH) + ACQ702_S008_AccountStatement selectCountry(String selectValue); + + @Wait(value = SEND_BUTTON_2_XPATH, waitSecondsForElement = 10) + @Click(value = SEND_BUTTON_2_XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 40)) + ACQ702_S008_AccountStatement clickNextSend(); + + @Wait(value = SEND_BUTTON_3_XPATH, waitSecondsForElement = 10) + @Click(value = SEND_BUTTON_3_XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 40)) + ACQ702_S008_AccountStatement clickLastSend(); + + @CustomAction + default UKO720_S001_TaskDetail closeWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.closePopup(20); + return null; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ACQ702_S010_Fraud.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ACQ702_S010_Fraud.java new file mode 100644 index 0000000..e40e428 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ACQ702_S010_Fraud.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.ACQ702_S010_Fraud.CHECK_NUMBER_INPUT; + +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 50) +@Wait(value = CHECK_NUMBER_INPUT) +public interface ACQ702_S010_Fraud extends WebFlow, StoreAccessor { + + String CHECK_NUMBER_INPUT = "ACQ702_S010_E008"; + String FRAUD_CONTROL_RADIO = "ACQ702_S010_R001_2"; + String SET_ALL_OK_BUTTON = "ACQ702_S010_B007"; + String SEND_BUTTON = "ACQ702_S010_B014"; + String AGREE_SEND_BUTTON = "SCH708_S001_B001"; + String FINISH_BUTTON = "SCH706_S007_B001"; + + @TypeInto(value = CHECK_NUMBER_INPUT, clear = true) + ACQ702_S010_Fraud fillCheckingNumber(String number); + + @Wait(value = FRAUD_CONTROL_RADIO) + @Click(value = FRAUD_CONTROL_RADIO, jsClick = true) + ACQ702_S010_Fraud clickFraudControl(); + + @Wait(value = SET_ALL_OK_BUTTON) + @Click(value = SET_ALL_OK_BUTTON, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 50)) + ACQ702_S010_Fraud clickSetAll(); + + @Wait(value = SEND_BUTTON) + @Click(value = SEND_BUTTON, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 50)) + ACQ702_S010_Fraud clickSend(); + + @Wait(value = AGREE_SEND_BUTTON) + @Click(value = AGREE_SEND_BUTTON, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 50)) + ACQ702_S010_Fraud clickAgreeSend(); + + @Wait(value = FINISH_BUTTON) + @Click(value = FINISH_BUTTON, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 50)) + ACQ702_S010_Fraud clickFinish(); + + @CustomAction + default UKO720_S001_TaskDetail closeWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.closePopup(20); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/BOX701_DataBoxes.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/BOX701_DataBoxes.java new file mode 100644 index 0000000..45db8c0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/BOX701_DataBoxes.java @@ -0,0 +1,51 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.support.web.*; + +public interface BOX701_DataBoxes extends WebFlow { + String WELCOME_LABEL = "BOX701_S001_L001"; + String CASES_BUTTON = "XXX799_T001_I001"; + String CASES_SEARCH_BUTTON = "BOX702_S002_B012"; + String REQUESTED_DOCUMENTS_BUTTON = "XXX799_T001_I002"; + String REQUESTED_DOCUMENTS_SEARCH_BUTTON = "BOX703_S001_B003"; + String NEW_MESSAGE_BUTTON = "XXX799_T001_I005"; + String NEW_MESSAGE_CONTINUE_BUTTON = "BOX708_S001_B003"; + String NEW_MESSAGE_CANCEL_BUTTON = "BOX708_S001_B005"; + String SENT_MESSAGES_BUTTON = "XXX799_T001_I010"; + String SENT_MESSAGES_SEARCH_BUTTON = "BOX709_S001_B004"; + + @Wait(value = WELCOME_LABEL, explicitWaitSeconds = 30, until = Until.VISIBLE) + @CheckElementContent(WELCOME_LABEL) + BOX701_DataBoxes assertWelcomeLabel(String welcomeLabel); + + @Click(CASES_BUTTON) + BOX701_DataBoxes clickCasesButton(); + + @Wait(value = CASES_SEARCH_BUTTON, explicitWaitSeconds = 30, until = Until.VISIBLE) + @CheckElementContent(CASES_SEARCH_BUTTON) + BOX701_DataBoxes assertCasesSearchButton(String casesSearchButton); + + @Click(REQUESTED_DOCUMENTS_BUTTON) + BOX701_DataBoxes clickRequestedDocuments(); + + @Wait(value = REQUESTED_DOCUMENTS_SEARCH_BUTTON, explicitWaitSeconds = 30, until = Until.VISIBLE) + @CheckElementContent(REQUESTED_DOCUMENTS_SEARCH_BUTTON) + BOX701_DataBoxes assertRequestedDocumentsSearchButton(String requestedDocumentsSearchButton); + + @Click(NEW_MESSAGE_BUTTON) + BOX701_DataBoxes clickNewMessageButton(); + + @Wait(value = NEW_MESSAGE_CONTINUE_BUTTON, explicitWaitSeconds = 30, until = Until.VISIBLE) + @CheckElementContent(NEW_MESSAGE_CONTINUE_BUTTON) + BOX701_DataBoxes assertNewMessageContinueButton(String newMessageContinueButton); + + @Click(NEW_MESSAGE_CANCEL_BUTTON) + BOX701_DataBoxes clickNewMessageCancelButton(); + + @Click(SENT_MESSAGES_BUTTON) + BOX701_DataBoxes clickSentMessagesButton(); + + @Wait(value = SENT_MESSAGES_SEARCH_BUTTON, explicitWaitSeconds = 5, until = Until.VISIBLE) + @CheckElementContent(SENT_MESSAGES_SEARCH_BUTTON) + BOX701_DataBoxes assertSentMessagesSearchButton(String sentMessagesSearchButton); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/BUF707_S002_AccountCannotBeTransferredTo535.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/BUF707_S002_AccountCannotBeTransferredTo535.java new file mode 100644 index 0000000..334c2f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/BUF707_S002_AccountCannotBeTransferredTo535.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.CheckElementContent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface BUF707_S002_AccountCannotBeTransferredTo535 extends WebFlow { + String LABEL_WARNING = "BUF707_S002_L001"; + + String OK_BUTTON = "BUF707_S002_B002"; + + @CheckElementContent(LABEL_WARNING) + BUF707_S002_AccountCannotBeTransferredTo535 assertLabel(String accountProduct); + + @Click(OK_BUTTON) + STS701_S002_ClientDetailPage clickOk(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/BUF709_S002_TransferPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/BUF709_S002_TransferPage.java new file mode 100644 index 0000000..72e822e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/BUF709_S002_TransferPage.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.BUF709_S002_TransferPage.OK_BUTTON; + +@Wait(value = OK_BUTTON, until = Until.VISIBLE) +public interface BUF709_S002_TransferPage extends WebFlow { + String CANCEL_DATE_INPUT = "BUF709_S002_E005"; + String CASHLESS_RADIO = "BUF709_S002_R001_2"; + + String OK_BUTTON = "BUF709_S002_B001"; + String ACCOUNT_NUMBER_INPUT = "BUF709_S002_E006"; + String BANK_CODE_INPUT = "BUF709_S002_E007"; + String PRINT_BUTTON = "HLA701_S001_B004"; + + @TypeInto(CANCEL_DATE_INPUT) + BUF709_S002_TransferPage fillDate(String date); + + @Click(value = CASHLESS_RADIO, jsClick = true) + BUF709_S002_TransferPage clickOnCashless(); + + @Click(OK_BUTTON) + STS701_S002_ClientDetailPage clickOk(); + + @TypeInto(ACCOUNT_NUMBER_INPUT) + BUF709_S002_TransferPage fillAccountNumber(String date); + + @TypeInto(BANK_CODE_INPUT) + BUF709_S002_TransferPage fillBankCode(String date); + + @Click(PRINT_BUTTON) + PSP701_S004_PrintTemplatePage printDocument(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/CIF731_S001_CifDetailPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/CIF731_S001_CifDetailPage.java new file mode 100644 index 0000000..3bc6d68 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/CIF731_S001_CifDetailPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.*; + +public interface CIF731_S001_CifDetailPage extends WebFlow { + + String BACK_DART_BUTTON = "CIF731_S001_B003"; + String INNER_PANEL_BUTTON = "CIF731_S0011_innerPanel"; + + @Wait(value = INNER_PANEL_BUTTON, until = Until.VISIBLE) + @CheckElementPresent(INNER_PANEL_BUTTON) + CIF731_S001_CifDetailPage assertInnerPanel(); + + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EMA701_S001_ManualApprovingQueue.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EMA701_S001_ManualApprovingQueue.java new file mode 100644 index 0000000..2c4eee6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EMA701_S001_ManualApprovingQueue.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.support.web.*; + +public interface EMA701_S001_ManualApprovingQueue extends WebFlow { + String QUEUE_BUTTON = "EMA701_S001_C004"; + String SUBMIT = "EMA701_S001_B009"; + String LOADER = "gwt-Image"; + String EDIT_MANUAL_APPROVING_BY_BIRTHNUMBER = "//div[text()='%s']/../..//img[@id='EMA701_S001_P002-69']"; + + @Select(value = QUEUE_BUTTON) + @Click(value = SUBMIT, andWait = @Wait(value = LOADER, by = Lookup.CLASSNAME, until = Until.GONE)) + EMA701_S001_ManualApprovingQueue selectQueueAndSubmit(String type); + + @Click(value = EDIT_MANUAL_APPROVING_BY_BIRTHNUMBER, isStringDynamicXpath = true) + EMA799_S001_Detail clickEditManualApproving(String birthNumber); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EMA799_S001_Detail.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EMA799_S001_Detail.java new file mode 100644 index 0000000..bd19dcf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EMA799_S001_Detail.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface EMA799_S001_Detail extends WebFlow { + + String DECISION_BUTTON = "EMA799_S001_I012"; + + @Wait(value = DECISION_BUTTON, waitSecondsForElement = 120) + @Click(value = DECISION_BUTTON) + EMA799_S001_Detail clickDecide(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ETS701_S001_ClientDocuments.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ETS701_S001_ClientDocuments.java new file mode 100644 index 0000000..22a3128 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ETS701_S001_ClientDocuments.java @@ -0,0 +1,136 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX702_SharedTopMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = ETS701_S001_ClientDocuments.OUTGOING_CORRESPONDENCE_BUTTON_XPATH, by = Lookup.XPATH) +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) +public interface ETS701_S001_ClientDocuments extends WebFlow, XXX702_SharedTopMenu, StoreAccessor { + + String PRINT_NAME_LABEL = "ETS701_S001_L033-1"; + String SECOND_PRINT_NAME_LABEL = "ETS701_S001_L033-2"; + String DATE_TIME_LABEL = "ETS701_S001_L014-1"; + String SECOND_DATE_TIME_LABEL = "ETS701_S001_L014-2"; + String CLIENT_DOCUMENTS_BUTTON_XPATH = "//button[contains(@title, '[ETS701_S001_I002]')]"; + String CHATS_BUTTON_XPATH = "//button[contains(@title, '[ETS701_S001_I005]')]"; + String MANUAL_SEND_BUTTON_XPATH = "//button[contains(@title, '[ETS701_S001_I004]')]"; + String OUTGOING_CORRESPONDENCE_BUTTON_XPATH = "//button[contains(@title, '[ETS701_S001_I001]')]"; + String CORRESPONDENCE_DETAIL_BUTTON = "ETS701_S001_P001-1"; + + String SEARCH_BUTTON = "ETS701_S001_B006"; + String DOCUMENT_DETAIL_BUTTON = "ETS701_S001_P002-1"; + String CORRESPONDENCE_DATE = "ETS701_S001_L014-1"; + String RC_INPUT_IN_OUTGOING_CORRESPONDENCES_TAB = "ETS701_S001_E001"; + String FIRST_DOCUMENT_RADIO = "ufo-et-ETS701_S001_F001_row_1_sel"; + String COMPANY_COMBOBOX = "ETS701_S001_C004"; + + String CONTINUE_BUTTON = "ETS701_S001_B013"; + String CITY_LABEL = "//input[@name ='ETS701_S001_E040' and @value='Praha']"; + String SENDING_CHANNEL_DIV = "ETS701_S001_L042-1"; + String SEARCH_DOCUMENTS = "ETS701_S001_B002"; + + @Click(value = CLIENT_DOCUMENTS_BUTTON_XPATH, by = Lookup.XPATH) + ETS701_S001_ClientDocuments clickClientDocument(); + + @Wait(value = DOCUMENT_DETAIL_BUTTON, until = Until.VISIBLE) + @Click(value = CHATS_BUTTON_XPATH, by = Lookup.XPATH) + ETS701_S001_ClientDocuments clickChats(); + + @Click(value = OUTGOING_CORRESPONDENCE_BUTTON_XPATH, by = Lookup.XPATH) + ETS701_S001_ClientDocuments clickOutgoingCorrespondence(); + + @Click(value = MANUAL_SEND_BUTTON_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ETS701_S001_ClientDocuments clickManualSend(); + + @Click(CORRESPONDENCE_DETAIL_BUTTON) + ETS701_S001_ClientDocuments clickCorrespondenceDetail(); + + @Wait(explicitWaitSeconds = 10) + @Click(value = SEARCH_BUTTON, andWait = @Wait(explicitWaitSeconds = 5)) + ETS701_S001_ClientDocuments clickSearch(); + + @Wait(value = DOCUMENT_DETAIL_BUTTON, until = Until.VISIBLE) + @Click(DOCUMENT_DETAIL_BUTTON) + ETS701_S001_ClientDocuments clickDocumentDetail(); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @Wait(value = FIRST_DOCUMENT_RADIO, until = Until.VISIBLE) + @CheckElementContent(PRINT_NAME_LABEL) + ETS701_S001_ClientDocuments assertPrintName(String printName); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @Wait(value = FIRST_DOCUMENT_RADIO, until = Until.VISIBLE) + @CheckElementContent(SECOND_PRINT_NAME_LABEL) + ETS701_S001_ClientDocuments assertSecondPrintName(String printName); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @CheckElementContent(DATE_TIME_LABEL) + ETS701_S001_ClientDocuments assertDate(String date); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @CheckElementContent(SECOND_DATE_TIME_LABEL) + ETS701_S001_ClientDocuments assertSecondDate(String date); + + @CustomAction + default ETS701_S001_ClientDocuments checkDistributionAndGetTime() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d.M.yyyy H:mm:ss"); + String requirementDate = menuClickRequirements().clickRefreshRequirement().getRequirementDate(); + endpoint.waitForElementsToLoad(10, CORRESPONDENCE_DATE); + String correspondenceDate = endpoint.getText(CORRESPONDENCE_DATE); + LocalDateTime reqDate = LocalDateTime.parse(requirementDate, formatter).withMinute(0).withSecond(0).withNano(0); + LocalDateTime corDate = LocalDateTime.parse(correspondenceDate, formatter).withMinute(0).withSecond(0).withNano(0); + Assertions.assertEquals(reqDate, corDate, "Distribution times are not the same"); + return null; + } + + @Select(COMPANY_COMBOBOX) + ETS701_S001_ClientDocuments selectCompany(String company); + + @Wait(value = CITY_LABEL, by = Lookup.XPATH) + @Click(CONTINUE_BUTTON) + PSP701_S004_PrintTemplatePage clickContinue(); + + @CustomAction + default ETS701_S001_ClientDocuments checkRcInOutgoingCorrespondency(String rcOfExistingClient) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String value = endpoint.getAttribute(RC_INPUT_IN_OUTGOING_CORRESPONDENCES_TAB, "value"); + Assertions.assertEquals(rcOfExistingClient, value); + return null; + } + + @TypeInto(value = RC_INPUT_IN_OUTGOING_CORRESPONDENCES_TAB, clear = true) + ETS701_S001_ClientDocuments fillRc(String rcOfExistingClient); + + @CustomAction + default ETS701_S001_ClientDocuments clickDocumentDetailAndCheckOpening() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(20, Until.CLICKABLE, DOCUMENT_DETAIL_BUTTON); + endpoint.click(() -> DOCUMENT_DETAIL_BUTTON); + endpoint.switchToOtherWindow(10, 3); + return null; + } + + @CheckElementContent(SENDING_CHANNEL_DIV) + ETS701_S001_ClientDocuments checkSendingChannel(String channel); + + @CustomAction + default STS701_S002_ClientDetailPage closeCorrespondency() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.closeCurrentWindow(); + endpoint.switchToOtherWindow(3, 1); + return null; + } + + @Click(value = SEARCH_DOCUMENTS) + ETS701_S001_ClientDocuments clickSearchDocuments(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE704_S001_CancelPaymentOrderPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE704_S001_CancelPaymentOrderPage.java new file mode 100644 index 0000000..392923d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE704_S001_CancelPaymentOrderPage.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +public interface EXE704_S001_CancelPaymentOrderPage extends WebFlow { + + String OK_BUTTON = "EXE704_S001_B002"; + String FIRST_TRANSACTION_CANCEL_BUTTON = "EXE704_S001_P003-1"; + String ID_TRANSACTION = "EXE704_S001_U003"; + + @Click(value = OK_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + EXE704_S001_CancelPaymentOrderPage clickOkButton(); + + @Click(value = FIRST_TRANSACTION_CANCEL_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + EXE704_S001_CancelationPaymentOrder clickCancelButton(); + + @TypeInto(ID_TRANSACTION) + EXE704_S001_CancelPaymentOrderPage fillIdTransaction(String idTransaction); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE704_S001_CancelationPaymentOrder.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE704_S001_CancelationPaymentOrder.java new file mode 100644 index 0000000..a513cef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE704_S001_CancelationPaymentOrder.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +public interface EXE704_S001_CancelationPaymentOrder extends WebFlow { + + String SAVE_BUTTON = "EXE704_S005_B002"; + + @Click(value = SAVE_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + EXE704_S001_CancelationPaymentOrder clickSaveButton(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE705_S001_PaymentRecordsToApprovePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE705_S001_PaymentRecordsToApprovePage.java new file mode 100644 index 0000000..aafeed5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE705_S001_PaymentRecordsToApprovePage.java @@ -0,0 +1,63 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.EXE705_S001_PaymentRecordsToApprovePage.PAGE_LABEL_DIV; + +@Wait(PAGE_LABEL_DIV) +public interface EXE705_S001_PaymentRecordsToApprovePage extends WebFlow, StoreAccessor { + + String PAGE_LABEL_DIV = "EXE705el15"; + String TRANSACTION_ID_INPUT = "EXE705_S001_U003"; + String OK_BUTTON = "EXE705_S001_B002"; + String FIRST_TRANSACTION_VERIFICATION_IMG = "EXE705_S001_P002-1"; + String FIRST_TRANSACTION_DETAIL_IMG = "EXE705_S001_P001-1"; + String PAYER_ACCOUNT_NUMBER_DIV = "EXE705_S001_L038"; + String PAYER_ACCOUNT_NUMBER_KEY = "ACCOUNT_NUMBER_OF_THE_PAYER"; + String RECIPIENT_ACCOUNT_NUMBER_DIV = "EXE705_S001_L042"; + String RECIPIENT_ACCOUNT_NUMBER_KEY = "ACCOUNT_NUMBER_OF_THE_RECIPIENT"; + String DUE_DATE_DIV = "EXE705_S001_L039"; + String DUE_DATE_KEY = "DUE_DATE"; + String VARIABLE_SYMBOL_DIV = "EXE705_S001_L046"; + String VARIABLE_SYMBOL_KEY = "VARIABLE_SYMBOL"; + String CONSTANT_SYMBOL_DIV = "EXE705_S001_L047"; + String CONSTANT_SYMBOL_KEY = "CONSTANT_SYMBOL"; + String SPECIFIC_SYMBOL_DIV = "EXE705_S001_L048"; + String SPECIFIC_SYMBOL_KEY = "SPECIFIC SYMBOL"; + String CLOSE_DETAIL = "EXE705_S001_P004"; + + @TypeInto(TRANSACTION_ID_INPUT) + EXE705_S001_PaymentRecordsToApprovePage fillTransactionId(String transactionId); + + @Click(value = OK_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + EXE705_S001_PaymentRecordsToApprovePage clickOk(); + + @Click(FIRST_TRANSACTION_VERIFICATION_IMG) + EXE705_S002_VerificationDataPage clickFirstTransactionVerification(); + + @Click(value = FIRST_TRANSACTION_DETAIL_IMG, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + EXE705_S001_PaymentRecordsToApprovePage clickFirstTransactionDetail(); + + @StoreElementContent(storeKey = PAYER_ACCOUNT_NUMBER_KEY, value = PAYER_ACCOUNT_NUMBER_DIV) + EXE705_S001_PaymentRecordsToApprovePage savePayerAccount(); + + @StoreElementContent(storeKey = RECIPIENT_ACCOUNT_NUMBER_KEY, value = RECIPIENT_ACCOUNT_NUMBER_DIV) + EXE705_S001_PaymentRecordsToApprovePage saveRecipientAccount(); + + @StoreElementContent(storeKey = DUE_DATE_KEY, value = DUE_DATE_DIV) + EXE705_S001_PaymentRecordsToApprovePage saveDueDate(); + + @StoreElementContent(storeKey = VARIABLE_SYMBOL_KEY, value = VARIABLE_SYMBOL_DIV) + EXE705_S001_PaymentRecordsToApprovePage saveVariableSymbol(); + + @StoreElementContent(storeKey = CONSTANT_SYMBOL_KEY, value = CONSTANT_SYMBOL_DIV) + EXE705_S001_PaymentRecordsToApprovePage saveConstantSymbol(); + + @StoreElementContent(storeKey = SPECIFIC_SYMBOL_KEY, value = SPECIFIC_SYMBOL_DIV) + EXE705_S001_PaymentRecordsToApprovePage saveSpecificSymbol(); + + @Click(CLOSE_DETAIL) + EXE705_S001_PaymentRecordsToApprovePage clickCloseDetail(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE705_S002_VerificationDataPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE705_S002_VerificationDataPage.java new file mode 100644 index 0000000..7ddaa0a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE705_S002_VerificationDataPage.java @@ -0,0 +1,51 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.EXE705_S002_VerificationDataPage.PAGE_LABEL_DIV; + +@Wait(PAGE_LABEL_DIV) +public interface EXE705_S002_VerificationDataPage extends WebFlow { + + String PAGE_LABEL_DIV = "EXE705el3"; + String ACCOUNT_NUMBER_PAYER_INPUT = "EXE705_S002_E003"; + String ACCOUNT_NUMBER_RECIPIENT_INPUT = "EXE705_S002_E005"; + String ACCOUNT_NUMBER_RECIPIENT_BANK_CODE_INPUT = "EXE705_S002_E006"; + String AMOUNT_INPUT = "EXE705_S002_E007"; + String SAVE_WITH_OPTIONAL_SYMBOLS_BUTTON = "EXE705_S002_B003"; + String SAVE_WITH_CONSTANT_SYMBOL_BUTTON = "EXE705_S002_B002"; + String DUE_DATE_INPUT = "EXE705_S002_U001"; + String VARIABLE_SYMBOL_INPUT = "EXE705_S002_E008"; + String CONSTANT_SYMBOL_INPUT = "EXE705_S002_E009"; + String SPECIFIC_SYMBOL_INPUT = "EXE705_S002_E010"; + + @TypeInto(value = ACCOUNT_NUMBER_PAYER_INPUT, clear = true) + EXE705_S002_VerificationDataPage fillAccountNumberPayer(String numberAccountPayer); + + @TypeInto(value = ACCOUNT_NUMBER_RECIPIENT_INPUT, clear = true) + EXE705_S002_VerificationDataPage fillAccountNumberRecipient(String accountNumberRecipient); + + @TypeInto(value = ACCOUNT_NUMBER_RECIPIENT_BANK_CODE_INPUT, clear = true) + EXE705_S002_VerificationDataPage fillAccountNumberRecipientBankCode(String accountNumberRecipientBankCode); + + @TypeInto(AMOUNT_INPUT) + EXE705_S002_VerificationDataPage fillAmount(String amount); + + @TypeInto(DUE_DATE_INPUT) + EXE705_S002_VerificationDataPage fillDueDate(String date); + + @TypeInto(VARIABLE_SYMBOL_INPUT) + EXE705_S002_VerificationDataPage fillVariableSymbol(String variableSymbol); + + @TypeInto(CONSTANT_SYMBOL_INPUT) + EXE705_S002_VerificationDataPage fillConstantSymbol(String constantSymbol); + + @TypeInto(SPECIFIC_SYMBOL_INPUT) + EXE705_S002_VerificationDataPage fillSpecificSymbol(String specificSymbol); + + @Click(SAVE_WITH_OPTIONAL_SYMBOLS_BUTTON) + EXE705_S001_PaymentRecordsToApprovePage clickSaveWithOptionalSymbols(); + + @Click(SAVE_WITH_CONSTANT_SYMBOL_BUTTON) + EXE705_S001_PaymentRecordsToApprovePage clickSaveWithConstantSymbol(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE706_S001_CanceledAccountsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE706_S001_CanceledAccountsPage.java new file mode 100644 index 0000000..a8c5beb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXE706_S001_CanceledAccountsPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.*; + +public interface EXE706_S001_CanceledAccountsPage extends WebFlow { + + String BACK_DART_BUTTON = "EXE706_S001_B001"; + String LIST_OF_CANCELED_ACCOUNTS_LABEL = "EXE706_S00"; + + @Wait(value = LIST_OF_CANCELED_ACCOUNTS_LABEL, until = Until.VISIBLE) + @CheckElementPresent(LIST_OF_CANCELED_ACCOUNTS_LABEL) + EXE706_S001_CanceledAccountsPage assertAccountsList(); + + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXT701_S001_ExternalPartnersMainPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXT701_S001_ExternalPartnersMainPage.java new file mode 100644 index 0000000..9ec53b6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/EXT701_S001_ExternalPartnersMainPage.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.TypeInto; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface EXT701_S001_ExternalPartnersMainPage extends WebFlow { + + String SEARCH_INPUT = "EXT701_S001_E001"; + String SEARCH_BUTTON = "EXT701_S001_P001"; + String CLIENT_NAME_LABEL = "EXT701_S001_L020"; + + @TypeInto(SEARCH_INPUT) + EXT701_S001_ExternalPartnersMainPage fillSearchInput(String searchValue); + + @Click(SEARCH_BUTTON) + EXT701_S001_ExternalPartnersMainPage clickSearchClient(); + + @CheckElementPresent(CLIENT_NAME_LABEL) + EXT701_S001_ExternalPartnersMainPage assertClientName(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/FKD701_S001_FraudRisk.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/FKD701_S001_FraudRisk.java new file mode 100644 index 0000000..a95340e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/FKD701_S001_FraudRisk.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.FKD701_S001_FraudRisk.CLOSE_BUTTON; + +@Wait(value = CLOSE_BUTTON) +public interface FKD701_S001_FraudRisk extends WebFlow { + + String CLOSE_BUTTON = "FKD701_S001_B001"; + + @Click(value = CLOSE_BUTTON) + ACQ702_S010_Fraud clickCloseRisks(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/HLA701_S001_AccountCanBeTransferredTo535.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/HLA701_S001_AccountCanBeTransferredTo535.java new file mode 100644 index 0000000..49b6086 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/HLA701_S001_AccountCanBeTransferredTo535.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.HLA701_S001_AccountCanBeTransferredTo535.PRODUCT_535_OK_BUTTON; + + +@Wait(value = PRODUCT_535_OK_BUTTON, until = Until.VISIBLE) +public interface HLA701_S001_AccountCanBeTransferredTo535 extends WebFlow { + + String PRODUCT_535_OK_BUTTON = "HLA701_S001_B001"; + + @Click(PRODUCT_535_OK_BUTTON) + STS701_S002_ClientDetailPage clickOkProduct535(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/HPO740_S001_Insurance.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/HPO740_S001_Insurance.java new file mode 100644 index 0000000..e0c27cc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/HPO740_S001_Insurance.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface HPO740_S001_Insurance extends WebFlow { + + String CREATE_BUTTON = "HPO740_S001_B001"; + String BACK_DART = "HPO740_S001_P001"; + + @Click(BACK_DART) + STS701_S002_ClientDetailPage clickBack(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @CheckElementPresent(CREATE_BUTTON) + HPO740_S001_Insurance assertCreateButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/HUS701_S001_WarningPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/HUS701_S001_WarningPage.java new file mode 100644 index 0000000..3f5b5b6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/HUS701_S001_WarningPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +@Wait(value = HUS701_S001_WarningPage.WARNING_SENTENCE, until = Until.VISIBLE) +public interface HUS701_S001_WarningPage extends WebFlow, StoreAccessor { + + String WARNING_SENTENCE = "HUS701_S001_L002"; + + @CheckElementContent(WARNING_SENTENCE) + HUS701_S001_WarningPage checkWarningSentence(String sentence); + + @CustomAction + default UKO720_S001_TaskPage closeWarningPageWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.closeCurrentWindow(); + endpoint.switchToOtherWindow(3,1); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/KAL730_S001_CalculatorPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/KAL730_S001_CalculatorPage.java new file mode 100644 index 0000000..f0e01f8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/KAL730_S001_CalculatorPage.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.CheckElementPresent; +import cz.moneta.test.harness.support.web.CustomAction; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + + +public interface KAL730_S001_CalculatorPage extends WebFlow, StoreAccessor { + + String SEND_EMAIL_BUTTON = "KAL730_S001_B006"; + + @Wait(value = SEND_EMAIL_BUTTON, until = Until.VISIBLE) + @CheckElementPresent(SEND_EMAIL_BUTTON) + KAL730_S001_CalculatorPage assertSendEmailButton(); + + @CustomAction + default KAL730_S001_CalculatorPage switchToModalWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.focusToNewPopup(10); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK710_S001_TransactionAndStatementPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK710_S001_TransactionAndStatementPage.java new file mode 100644 index 0000000..587dfb1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK710_S001_TransactionAndStatementPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface OPK710_S001_TransactionAndStatementPage extends WebFlow { + + String DETAIL_BUTTON = "OPK710_S001_B012"; + String BACK_DART_BUTTON = "OPK710_S001_P004"; + + @Wait(value = DETAIL_BUTTON, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK712_S001_CreditCardGenerating.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK712_S001_CreditCardGenerating.java new file mode 100644 index 0000000..1bc84f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK712_S001_CreditCardGenerating.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface OPK712_S001_CreditCardGenerating extends WebFlow { + + String GENERATE_BUTTON = "OPK712_S001_B003"; + String BACK_DART_BUTTON = "OPK712_S001_P001"; + + @Wait(value = GENERATE_BUTTON, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK713_S001_BlockationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK713_S001_BlockationPage.java new file mode 100644 index 0000000..1347c85 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK713_S001_BlockationPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface OPK713_S001_BlockationPage extends WebFlow { + + String SAVE_BUTTON = "OPK713_S001_B003"; + String BACK_DART_BUTTON = "OPK713_S001_P002"; + + @Wait(value = SAVE_BUTTON, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK716_S001_ContractActivitiesPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK716_S001_ContractActivitiesPage.java new file mode 100644 index 0000000..6e66ff0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK716_S001_ContractActivitiesPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface OPK716_S001_ContractActivitiesPage extends WebFlow { + + String CARD_HOLDER_LABEL = "OPK716_S001_L001"; + String BACK_DART_BUTTON = "OPK716_S001_P001"; + + @Wait(value = CARD_HOLDER_LABEL, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK730_S001_CardsListPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK730_S001_CardsListPage.java new file mode 100644 index 0000000..e94080d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK730_S001_CardsListPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.*; + +public interface OPK730_S001_CardsListPage extends WebFlow { + + String BACK_DART_BUTTON = "OPK730_S001_B001"; + String DEBIT_CARD_RADIO = "OPK730_S001_G001-0"; + + @Wait(value = DEBIT_CARD_RADIO, until = Until.VISIBLE) + @CheckElementPresent(DEBIT_CARD_RADIO) + OPK730_S001_CardsListPage assertDebitCard(); + + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK745_S001_TransactionSettings.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK745_S001_TransactionSettings.java new file mode 100644 index 0000000..531836d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK745_S001_TransactionSettings.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX702_SharedTopMenu; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.OPK745_S001_TransactionSettings.PAGE_TOPIC; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(PAGE_TOPIC) +public interface OPK745_S001_TransactionSettings extends WebFlow, XXX702_SharedTopMenu { + + String PAGE_TOPIC = "OPK745_S001_L001"; + String INTERNET_TRANSACTIONS_OFF_RADIOBOX = "OPK745_S001_R002_0"; + String INTERNET_TRANSACTIONS_ON_RADIOBOX = "OPK745_S001_R002_1"; + String SAVE_SETTINGS_BUTTON = "OPK745_S001_B003"; + + @Click(INTERNET_TRANSACTIONS_OFF_RADIOBOX) + @AcceptAlert(waitSecondsForAlert = 5, expectedAlertText = "Informujte klienta, že změna automaticky ovlivní internetové i MO/TO platby") + OPK745_S001_TransactionSettings clickInternetTransactionsOff(); + + @Click(INTERNET_TRANSACTIONS_ON_RADIOBOX) + @AcceptAlert(waitSecondsForAlert = 5, expectedAlertText = "Informujte klienta, že změna automaticky ovlivní internetové i MO/TO platby") + OPK745_S001_TransactionSettings clickInternetTransactionsOn(); + + @Click(value = SAVE_SETTINGS_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickSaveSettings(); + + @Click(value = SAVE_SETTINGS_BUTTON) + @AcceptAlert(waitSecondsForAlert = 1, expectedAlertText = "U této aktivní operace je nutné klienta ověřit přes SB. Klienta ověřte.") + OPK745_S001_TransactionSettings clickSaveWithExpectedInfoError(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK746_S001_AddonPackagePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK746_S001_AddonPackagePage.java new file mode 100644 index 0000000..c137daf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OPK746_S001_AddonPackagePage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface OPK746_S001_AddonPackagePage extends WebFlow { + + String SAVE_BUTTON = "OPK746_S001_B001"; + String BACK_DART_BUTTON = "OPK746_S001_B002"; + + @Wait(value = SAVE_BUTTON, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OTP701_S001_UniversalPrintProcessPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OTP701_S001_UniversalPrintProcessPage.java new file mode 100644 index 0000000..28396a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/OTP701_S001_UniversalPrintProcessPage.java @@ -0,0 +1,84 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.shared.PrintAppPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.OTP701_S001_UniversalPrintProcessPage.PAGE_DIV; + +@Wait(PAGE_DIV) +public interface OTP701_S001_UniversalPrintProcessPage extends StoreAccessor, WebFlow { + String PAGE_DIV = "OTP701_S001_X001"; + String DEPARTMENT_COMBOBOX = "OTP701_S001_C001"; + String CATEGORY_COMBOBOX = "OTP701_S001_C004"; + String TEMPLATE_COMBOBOX = "OTP701_S001_C002"; + String PRINT_BUTTON = "OTP701_S001_B001"; + String GENDER_RADIO = "OTP701_S001_R001_3"; + String ANOTHER_ADDRESS_RADIO = "OTP701_S001_H001_1"; + String NAME_INPUT = "OTP701_S001_E015"; + String STREET_INPUT = "OTP701_S001_E016"; + String BUILDING_NUMBER_INPUT = "OTP701_S001_E017"; + String STREET_NUMBER_INPUT = "OTP701_S001_E018"; + String CITY_INPUT = "OTP701_S001_E019"; + String POSTAL_CODE_INPUT = "OTP701_S001_E020"; + String ADDRESS_BUTTON = "IPP702_S001_G001-0"; + + + @Select(value = DEPARTMENT_COMBOBOX, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + OTP701_S001_UniversalPrintProcessPage selectDepartment(String department); + + @Select(value = CATEGORY_COMBOBOX, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + OTP701_S001_UniversalPrintProcessPage selectCategory(String category); + + @Select(value = TEMPLATE_COMBOBOX, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + OTP701_S001_UniversalPrintProcessPage selectTemplate(String template); + + @Click(value = PRINT_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PSP701_S004_PrintTemplatePage clickPrint(); + + @CustomAction + default PrintAppPage clickPrintInteractive() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + endpoint.click(() -> PRINT_BUTTON); + endpoint.focusToNewPopup(10); + return null; + } + + @Click(value = PRINT_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + OTP701_S001_UniversalPrintProcessPage clickPrintWithAnotherAddress(); + + @CustomAction + default OTP701_S001_UniversalPrintProcessPage selectGenderIfVisible() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(5, GENDER_RADIO, Lookup.ID)) { + endpoint.click(() -> GENDER_RADIO); + } + return null; + } + + @Click(value = ANOTHER_ADDRESS_RADIO, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + OTP701_S001_UniversalPrintProcessPage clickAnotherAddress(); + + @TypeInto(NAME_INPUT) + OTP701_S001_UniversalPrintProcessPage fillNameInput(String name); + + @TypeInto(STREET_INPUT) + OTP701_S001_UniversalPrintProcessPage fillStreetInput(String street); + + @TypeInto(BUILDING_NUMBER_INPUT) + OTP701_S001_UniversalPrintProcessPage fillBuildingNumberInput(String buildingNumber); + + @TypeInto(STREET_NUMBER_INPUT) + OTP701_S001_UniversalPrintProcessPage fillStreetNumberInput(String streetNumber); + + @TypeInto(CITY_INPUT) + OTP701_S001_UniversalPrintProcessPage fillCityInput(String city); + + @TypeInto(POSTAL_CODE_INPUT) + OTP701_S001_UniversalPrintProcessPage fillPostalCodeInput(String postalCode); + + @Click(value = ADDRESS_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + OTP701_S001_UniversalPrintProcessPage clickAddress(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK703_S002_DebitCardBlocationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK703_S002_DebitCardBlocationPage.java new file mode 100644 index 0000000..ef18526 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK703_S002_DebitCardBlocationPage.java @@ -0,0 +1,82 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface PLK703_S002_DebitCardBlocationPage extends WebFlow { + + String SAVE_BUTTON = "PLK703_S002_B003"; + String BACK_DART_BUTTON = "PLK703_S002_B001"; + String REASON_COMBOBOX_BLOCK = "PLK703_S002_C002"; + String REASON_COMBOBOX_UNBLOCK = "PLK703_S002_C003"; + String CALENDAR_IMAGE = "PLK703_S002_P001"; + String CALENDAR_NEXT_MONTH = "//div[@class='ufo-calendar-mnext']"; + String CALENDAR_REGULAR_DAY = "//div[@id='PLK703_S002_K001']//tr[2]/td[7]"; + String HOLDER_CELL_RADIO = "PLK703_S002_R001_Držitel"; + String SUBMIT_SAVE_BUTTON = "PLK703_S002_B003"; + String UNBLOCK_DEBIT_CARD_BUTTON = "PLK703_S002_B004"; + String CONFIRM_BLOCK_BUTTON = "HLA701_S001_B002"; + String REQUIREMENT_BUTTON_XPATH = "//button[contains(@title, '[XXX702_T001_I015]')]"; + + String REFRESH_BUTTON = "XXX702_T001_B001"; + String REQ_TO_CONTROL = "XXX702_T001_L269-1"; + String CONFIRM_ALERT_BUTTON = "HLA701_S001_B001"; + String TELEPHONE_NUMBER_TEXTBOX = "PLK703_S002_E007"; + + @Wait(value = SAVE_BUTTON, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + + @Wait(value = REASON_COMBOBOX_BLOCK, until = Until.VISIBLE) + @Select(value = REASON_COMBOBOX_BLOCK) + PLK703_S002_DebitCardBlocationPage selectReason(String reason); + + @Select(REASON_COMBOBOX_UNBLOCK) + PLK703_S002_DebitCardBlocationPage selectReasonUnblock(String reason); + + @Click(CALENDAR_IMAGE) + PLK703_S002_DebitCardBlocationPage clickCalendar(); + + @Click(value = CALENDAR_NEXT_MONTH, by = Lookup.XPATH) + PLK703_S002_DebitCardBlocationPage clickNextMonth(); + + @Click(value = CALENDAR_REGULAR_DAY, by = Lookup.XPATH) + PLK703_S002_DebitCardBlocationPage clickRegularDay(); + + @Click(HOLDER_CELL_RADIO) + PLK703_S002_DebitCardBlocationPage clickHolder(); + + @Click(SUBMIT_SAVE_BUTTON) + PLK703_S002_DebitCardBlocationPage clickSubmitSaveButton(); + + @Wait(value = UNBLOCK_DEBIT_CARD_BUTTON, until = Until.CLICKABLE) + @Click(value = UNBLOCK_DEBIT_CARD_BUTTON) + PLK703_S002_DebitCardBlocationPage clickUnblockDebitCardButton(); + + @Click(value = CONFIRM_BLOCK_BUTTON) + PLK703_S002_DebitCardBlocationPage clickConfirmBlockButton(); + + @Wait(value = REQUIREMENT_BUTTON_XPATH,by = Lookup.XPATH, until = Until.CLICKABLE) + @Click(value = REQUIREMENT_BUTTON_XPATH,by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + PLK703_S002_DebitCardBlocationPage clickRequirementButton(); + + @Wait(value = REFRESH_BUTTON, until = Until.CLICKABLE) + @Click(value = REFRESH_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + PLK703_S002_DebitCardBlocationPage clickRefreshButton(); + + @Wait(value = REQ_TO_CONTROL, waitSecondsForElement = 30) + @CheckElementContent(value = REQ_TO_CONTROL) + PLK703_S002_DebitCardBlocationPage assertReqTempBlock(String text); + + @CheckElementContent(value = REQ_TO_CONTROL) + PLK703_S002_DebitCardBlocationPage assertReqTempUnblock(String text); + + @Click(CONFIRM_ALERT_BUTTON) + PLK703_S002_DebitCardBlocationPage clickConfirmAlertButton(); + + @TypeInto(value = TELEPHONE_NUMBER_TEXTBOX, clear = true) + PLK703_S002_DebitCardBlocationPage fillIntoTelephoneNumberBox(String telnumber); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK708_S001_DataChangesPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK708_S001_DataChangesPage.java new file mode 100644 index 0000000..599468b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK708_S001_DataChangesPage.java @@ -0,0 +1,73 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.PLK708_S001_DataChangesPage.PAGE_TITLE; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = PAGE_TITLE, until = Until.VISIBLE) +public interface PLK708_S001_DataChangesPage extends WebFlow, StoreAccessor { + + String PAGE_TITLE = "PLK708el11"; + String ADDRESS_FOR_SENDING_SELECT = "PLK708_S001_C001"; + String OM_ADDRESS_FOR_SENDING_SELECT = "PLK708_S001_C003"; + String STREET_INPUT = "PLK708_S001_U002"; + String VILLAGE_INPUT = "PLK708_S001_U008"; + String POST_OFFICE_INPUT = "PLK708_S001_U003"; + String POSTAL_CODE_INPUT = "PLK708_S001_U010"; + String DESCRIPTIVE_NUMBER_INPUT = "PLK708_S001_U017"; + String SAVE_BUTTON = "PLK708_S001_B003"; + String BACK_DART_BUTTON = "PLK708_S001_B001"; + + @Select(value = ADDRESS_FOR_SENDING_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PLK708_S001_DataChangesPage selectAddressForSending(String address); + + @Select(value = OM_ADDRESS_FOR_SENDING_SELECT, andWait = @Wait(explicitWaitSeconds = 1)) + PLK708_S001_DataChangesPage selectOMAddressForSending(String omAddress); + + @CustomAction + default PLK708_S001_DataChangesPage checkStreetInput(String expectedStreet) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(expectedStreet, endpoint.getAttribute(STREET_INPUT, "value"), "The street doesn't match"); + return null; + } + + @CustomAction + default PLK708_S001_DataChangesPage checkVillageInput(String expectedVillage) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(expectedVillage, endpoint.getAttribute(VILLAGE_INPUT, "value"), "The village doesn't match"); + return null; + } + + @CustomAction + default PLK708_S001_DataChangesPage checkPostOfficeInput(String expectedPostOffice) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(expectedPostOffice, endpoint.getAttribute(POST_OFFICE_INPUT, "value"), "The post office doesn't match"); + return null; + } + + @CustomAction + default PLK708_S001_DataChangesPage checkPostalCodeInput(String expectedPostalCode) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(expectedPostalCode, endpoint.getAttribute(POSTAL_CODE_INPUT, "value"), "The postal code doesn't match"); + return null; + } + + @CustomAction + default PLK708_S001_DataChangesPage checkDescriptiveNumberInput(String expectedDescriptiveNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(expectedDescriptiveNumber, endpoint.getAttribute(DESCRIPTIVE_NUMBER_INPUT, "value"), "The house number doesn't match"); + return null; + } + + @Click(value = SAVE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickSaveButton(); + + @Wait(value = SAVE_BUTTON, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK709_S004_CardRenevalPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK709_S004_CardRenevalPage.java new file mode 100644 index 0000000..34ae599 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK709_S004_CardRenevalPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PLK709_S004_CardRenevalPage extends WebFlow { + + String SAVE_BUTTON = "PLK709_S004_B003"; + String BACK_DART_BUTTON = "PLK709_S004_B001"; + + @Wait(value = SAVE_BUTTON, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK713_S001_PinAndActivationCodePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK713_S001_PinAndActivationCodePage.java new file mode 100644 index 0000000..559097d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK713_S001_PinAndActivationCodePage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PLK713_S001_PinAndActivationCodePage extends WebFlow { + + String SEND_BUTTON = "PLK713_S001_B002"; + String BACK_DART_BUTTON = "PLK713_S001_B001"; + + @Wait(value = SEND_BUTTON, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK716_S001_CardActivitiesPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK716_S001_CardActivitiesPage.java new file mode 100644 index 0000000..011b421 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PLK716_S001_CardActivitiesPage.java @@ -0,0 +1,43 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.PLK716_S001_CardActivitiesPage.LIST_OF_ACTIVITIES_LABEL; + +@Wait(LIST_OF_ACTIVITIES_LABEL) +public interface PLK716_S001_CardActivitiesPage extends WebFlow, StoreAccessor { + + String CARD_HOLDER_PANEL = "PLK716_S001_L001"; + String BACK_DART_BUTTON = "PLK716_S001_B001"; + String LIST_OF_ACTIVITIES_LABEL = "PLK716_S001_L101"; + String INFORMATION_ABOUT_CARD_HOLDER_LEGEND_XPATH = "//fieldset[@id='PLK716_S001_Y001']/legend"; + String PK_HOLDER_LABEL = "PLK716_S001_L004"; + String CARD_NUMBER_LABEL = "PLK716_S001_L006"; + String GO_BACK_BUTTON = "PLK716_S001_B001"; + String ROW_IN_TABLE_XPATH = "//*[@id='PLK716_S001_G001_UfoTable']/tbody/tr[1]"; + + @Wait(value = CARD_HOLDER_PANEL, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + + @Wait(value = INFORMATION_ABOUT_CARD_HOLDER_LEGEND_XPATH, by = Lookup.XPATH, until = Until.VISIBLE) + @CheckElementContent(value = INFORMATION_ABOUT_CARD_HOLDER_LEGEND_XPATH, by = Lookup.XPATH) + PLK716_S001_CardActivitiesPage checkInformationAboutCardHolder(String expectedText); + + @Click(value = GO_BACK_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickBack(); + + @Wait(value = ROW_IN_TABLE_XPATH, by = Lookup.XPATH, until = Until.VISIBLE) + @CheckElementPresent(value = ROW_IN_TABLE_XPATH, by = Lookup.XPATH) + PLK716_S001_CardActivitiesPage checkListRowInTable(); + + @CheckElementContent(CARD_NUMBER_LABEL) + PLK716_S001_CardActivitiesPage checkCardNumberLabel(String number); + + @Wait(PK_HOLDER_LABEL) + @CheckElementContent(PK_HOLDER_LABEL) + PLK716_S001_CardActivitiesPage checkPKHolderLabel(String name); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSC701_S001_PostSalesCallsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSC701_S001_PostSalesCallsPage.java new file mode 100644 index 0000000..00d7704 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSC701_S001_PostSalesCallsPage.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.support.web.*; + +public interface PSC701_S001_PostSalesCallsPage extends WebFlow { + + String PRODUCT_COMBOBOX = "PSC701_S001_C001"; + String FORM_COMBOBOX = "PSC701_S001_C002"; + String QUESTION_LABEL = "PSC701_S001_L005"; + + @Select(PRODUCT_COMBOBOX) + PSC701_S001_PostSalesCallsPage selectProduct(String product); + + @Select(FORM_COMBOBOX) + PSC701_S001_PostSalesCallsPage selectForm(String form); + + @CheckElementPresent(QUESTION_LABEL) + PSC701_S001_PostSalesCallsPage assertQuestion(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S001_AmortizationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S001_AmortizationPage.java new file mode 100644 index 0000000..9bf43e9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S001_AmortizationPage.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX702_SharedTopMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.PSP701_S001_AmortizationPage.INNER_TAB_PSP701; + +@Wait(value = INNER_TAB_PSP701, waitSecondsForElement = 30) +public interface PSP701_S001_AmortizationPage extends WebFlow, XXX702_SharedTopMenu, StoreAccessor { + String INNER_TAB_PSP701 = "PSP701_S004_I001_innerTab"; + String AMORTIZATION_DETAIL_LABEL = "PSP701_S004_L002"; + + String BACK_DART_BUTTON = "PSP701_S004_P006"; + String IB_SB_CHECKBOX = "PSP701_S004_H001_IBSB"; + + String SEND_BUTTON = "PSP701_S004_B003"; + String EMAIL_CHECKBOX = "PSP701_S004_H001_EMAIL"; + String SAVE_TO_ETS_BUTTON = "PSP701_S004_H001_ETS"; + + @CheckElementPresent(AMORTIZATION_DETAIL_LABEL) + PSP701_S001_AmortizationPage assertAmortizationLabel(); + + @CheckElementContent(AMORTIZATION_DETAIL_LABEL) + PSP701_S001_AmortizationPage checkAmortizationLabel(String text); + + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + + @Wait(value = SEND_BUTTON, until = Until.CLICKABLE) + @Click(value = SEND_BUTTON) + PSP701_S001_AmortizationPageTransitions clickSendButton(); + + @Wait(value = IB_SB_CHECKBOX, until = Until.VISIBLE) + @CustomAction + default PSP701_S001_AmortizationPage checkIfIBSBIsChecked() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals("true", endpoint.getAttribute(IB_SB_CHECKBOX, "checked"), "The IB/SB isn't checked."); + return null; + } + + @CustomAction + default PSP701_S001_AmortizationPage checkIfEmailCheckboxIsDisabled() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertFalse(endpoint.isElementEnabled(EMAIL_CHECKBOX), "Email checkbox is not disabled"); + return null; + } + + @Click(value = SAVE_TO_ETS_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PSP701_S001_AmortizationPage clickSaveToEts(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S001_AmortizationPageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S001_AmortizationPageTransitions.java new file mode 100644 index 0000000..3cb108f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S001_AmortizationPageTransitions.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.banka.pages.main.client.settings.EVY701_S001_StatementsDistributionPage; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PSP701_S001_AmortizationPageTransitions extends WebFlow { + + STS701_S002_ClientDetailPage onClientDetailPage(); + + TRA701_S001_Transactions onTransactionsPage(); + + PSP701_S001_AmortizationPage onAmortizationPage(); + + STO704_S001_ClientConsentsPage onClientConsentsPage(); + + EVY701_S001_StatementsDistributionPage onStatementsDistributionPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S004_PrintTemplatePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S004_PrintTemplatePage.java new file mode 100644 index 0000000..354eb9b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S004_PrintTemplatePage.java @@ -0,0 +1,120 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.fon.UploadUtil; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface PSP701_S004_PrintTemplatePage extends StoreAccessor, WebFlow { + + String SAVE_TO_DMS_BUTTON = "PSP701_S004_H001_DMS"; + String SAVE_TO_ETS_BUTTON = "PSP701_S004_H001_ETS"; + String SAVE_TO_LOCAL_BUTTON = "PSP701_S004_H001_LOCAL"; + String SAVE_TO_IB_BUTTON = "PSP701_S004_H001_IBSB"; + String CHECKED_SAVE_TO_IB_RADIO = "//input[@type='checkbox' and @id='PSP701_S004_H001_IBSB' and @checked]"; + String SAVE_TO_EMAIL_BUTTON = "PSP701_S004_H001_EMAIL"; + String SEND_BUTTON = "PSP701_S004_B003"; + String CHECKED_SAVE_TO_DMS_RADIO = "//input[@type='checkbox' and @id='PSP701_S004_H001_DMS' and @checked]"; + String CHECKED_SAVE_TO_EMAIL_RADIO = "//input[@type='checkbox' and @id='PSP701_S004_H001_EMAIL' and @checked]"; + String LETTER_COMBOBOX = "PSP701_S004_C003"; + String ATTACHMENT_PATH = "regression/ufo/DP.pdf"; + String FILE_UPLOAD_XPATH = "//input[@type='file' and contains(@class, 'gwt-FileUpload')]"; + String FILE_UPLOAD_BUTTON = "//div[contains(@class, 'ufo-file-upload-button')]"; + String SAVE_BUTTON = "IPP701_S001_B001"; + String FILE_UPLOAD_LABEL = "//div[@class='ufo-file-upload-label ufo-file-upload-label-success']"; + + @Wait(value = SAVE_TO_DMS_BUTTON, until = Until.VISIBLE) + @Click(SAVE_TO_DMS_BUTTON) + PSP701_S004_PrintTemplatePage clickSaveToDMS(); + + @Click(value = SEND_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PSP701_S004_PrintTemplatePageTransitions clickSend(); + + @CustomAction + default STS701_S002_ClientDetailPage clickSendAndClosePrintWindow() { + + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> SEND_BUTTON); + endpoint.waitForElementsToLoad(30, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + endpoint.sleepSeconds(5); + if (endpoint.isHeadlessModeOn()) { + endpoint.executeScript("window.parent.document.PSP701_S004_D002.done()"); + } else { + endpoint.executeScript("window.parent.dispatchEvent(new Event('focus'));"); + } + return null; + } + + @CustomAction + default PSP701_S004_PrintTemplatePage clickSaveToEmailIfChecked() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + + if (endpoint.isElementPresent(CHECKED_SAVE_TO_EMAIL_RADIO, Lookup.XPATH)) { + endpoint.click(() -> SAVE_TO_EMAIL_BUTTON); + endpoint.waitForElementsToLoad(30, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + } + + return null; + } + + @CustomAction + default PSP701_S004_PrintTemplatePage clickSaveToDmsIfNotChecked() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + + if (!endpoint.isElementPresent(CHECKED_SAVE_TO_DMS_RADIO, Lookup.XPATH)) { + endpoint.click(() -> SAVE_TO_DMS_BUTTON); + endpoint.waitForElementsToLoad(30, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + } + + return null; + } + + @CustomAction + default PSP701_S004_PrintTemplatePage clickSaveToIbIfNotChecked() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + + if (!endpoint.isElementPresent(CHECKED_SAVE_TO_IB_RADIO, Lookup.XPATH)) { + endpoint.click(() -> SAVE_TO_IB_BUTTON); + endpoint.waitForElementsToLoad(30, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + } + + return null; + } + + @Click(value = SAVE_TO_ETS_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PSP701_S004_PrintTemplatePage clickSaveToEts(); + + @Click(value = SAVE_TO_LOCAL_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PSP701_S004_PrintTemplatePage clickSaveToLocal(); + + @Select(value = LETTER_COMBOBOX, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PSP701_S004_PrintTemplatePage selectLetter(String letter); + + @CustomAction + default PSP701_S004_PrintTemplatePage uploadAttachment(String documentPath) { + + String path = UploadUtil.getResourcePath(documentPath); + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + + endpoint.type(() -> FILE_UPLOAD_XPATH, path, false, Lookup.XPATH); + endpoint.waitForElementsToLoad(20, Lookup.XPATH, Until.PRESENT_IN_DOM, FILE_UPLOAD_LABEL); + return null; + } + + @Click(value = SAVE_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + PSP701_S004_PrintTemplatePage clickSave(); + + @Wait(value = SAVE_TO_IB_BUTTON, until = Until.VISIBLE) + @CustomAction + default PSP701_S004_PrintTemplatePage checkIfIBSBIsChecked() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals("true", endpoint.getAttribute(SAVE_TO_IB_BUTTON, "checked"), "The IB/SB isn't checked."); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S004_PrintTemplatePageTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S004_PrintTemplatePageTransitions.java new file mode 100644 index 0000000..529007d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/PSP701_S004_PrintTemplatePageTransitions.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface PSP701_S004_PrintTemplatePageTransitions extends WebFlow { + + ETS701_S001_ClientDocuments onClientDocuments(); + + STS701_S002_ClientDetailPage onClientDetailPage(); + +} + + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/RET701_S003_AccountBenefits.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/RET701_S003_AccountBenefits.java new file mode 100644 index 0000000..d9369f1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/RET701_S003_AccountBenefits.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.RET701_S003_AccountBenefits.VIP_EXCHANGE_RETE_LIST_XPATH; + +@Wait(value = VIP_EXCHANGE_RETE_LIST_XPATH, by = Lookup.XPATH, until = Until.VISIBLE) +public interface RET701_S003_AccountBenefits extends WebFlow { + + String VIP_EXCHANGE_RETE_LIST_XPATH = "//button[contains(@title, 'RET701_S003_I005')]"; + String VIP_EXCHANGE_RETE_LIST_CHECKBOX = "RET701_S003_H001_24"; + String SET_VIP_EXCHANGE_RETE_LIST = "RET701_S003_B003"; + + @Click(value = VIP_EXCHANGE_RETE_LIST_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + RET701_S003_AccountBenefits clickVipExchangeRateList(); + + @Click(VIP_EXCHANGE_RETE_LIST_CHECKBOX) + RET701_S003_AccountBenefits clickVipExchangeRateListCheckbox(); + + @Click(SET_VIP_EXCHANGE_RETE_LIST) + RET701_S003_AccountBenefitsTransitions setVipExchangeRateList(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/RET701_S003_AccountBenefitsTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/RET701_S003_AccountBenefitsTransitions.java new file mode 100644 index 0000000..e32d2db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/RET701_S003_AccountBenefitsTransitions.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface RET701_S003_AccountBenefitsTransitions extends WebFlow { + + STS701_S002_ClientDetailPage onClientDetailPage(); + + PSP701_S004_PrintTemplatePage onPrintTemplatePage(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/RET705_S001_CardAdvatagePage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/RET705_S001_CardAdvatagePage.java new file mode 100644 index 0000000..c047e71 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/RET705_S001_CardAdvatagePage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface RET705_S001_CardAdvatagePage extends WebFlow { + + String CLIENT_PANEL = "RET705_S001_Y003_innerPanel"; + String BACK_DART_BUTTON = "RET705_S001_B001"; + + @Wait(value = CLIENT_PANEL, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/SCH706_S001_FormSelect.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/SCH706_S001_FormSelect.java new file mode 100644 index 0000000..f1acd50 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/SCH706_S001_FormSelect.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.SCH706_S001_FormSelect.SELECT_FORM_BUTTON; + +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 50) +@Wait(value = SELECT_FORM_BUTTON, waitSecondsForElement = 50) +public interface SCH706_S001_FormSelect extends WebFlow, StoreAccessor { + + String SELECT_FORM_BUTTON = "SCH706_S001_B002"; + String ACCOUNT_STATEMENT_BUTTON_XPATH = "//label[contains(text(),'Potvrzení o příjmu')]/../input"; + String CONFIRMATION_OF_INTAKE_BUTTON_XPATH = "//label[contains(text(),'Výpis z BU')]/../input"; + + @Click(value = ACCOUNT_STATEMENT_BUTTON_XPATH, by = Lookup.XPATH) + @Click(value = SELECT_FORM_BUTTON) + ACQ702_S005_ConfirmationOfIncome clickConfirmationOfIncome(); + + @Click(value = CONFIRMATION_OF_INTAKE_BUTTON_XPATH, by = Lookup.XPATH) + @Click(value = SELECT_FORM_BUTTON) + ACQ702_S008_AccountStatement clickAccountStatement(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/SET701_S001_AuthorizationOverview.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/SET701_S001_AuthorizationOverview.java new file mode 100644 index 0000000..06e4171 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/SET701_S001_AuthorizationOverview.java @@ -0,0 +1,51 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.SET701_S001_AuthorizationOverview.SETTINGS_HEADING_LABEL; + +@Wait(value = SETTINGS_HEADING_LABEL, until = Until.VISIBLE) +public interface SET701_S001_AuthorizationOverview extends WebFlow, StoreAccessor { + String SETTINGS_HEADING_LABEL = "SET701_S001_L001"; + String EMPLOYEE_ACCESS_XPATH = "//span[contains(text(), 'OPS eArch Zam')]"; + String OPS_CALLCENTRUM_BASIS_XPATH = "//span[contains(text(), 'Operations CallCentrum Zaklad')]"; + String OPS_CALLCENTRUM_FRAUD_ACCESS_XPATH = "//span[contains(text(), 'Operations CallCentrum Fraud')]"; + String SAVE_CHANGES_PRIVILAGES_BUTTON = "SET701_S001_B001"; + + @CustomAction + default SET701_S001_AuthorizationOverview doubleClickEmployeeAccess() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, Lookup.XPATH, Until.VISIBLE, EMPLOYEE_ACCESS_XPATH); + endpoint.click(() -> EMPLOYEE_ACCESS_XPATH, Lookup.XPATH); + endpoint.jsDoubleClick(() -> EMPLOYEE_ACCESS_XPATH, Lookup.XPATH); + endpoint.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CustomAction + default SET701_S001_AuthorizationOverview doubleClickOpsCallcentrumBasisAccess() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, Lookup.XPATH, Until.VISIBLE, OPS_CALLCENTRUM_BASIS_XPATH); + endpoint.click(() -> OPS_CALLCENTRUM_BASIS_XPATH, Lookup.XPATH); + endpoint.jsDoubleClick(() -> OPS_CALLCENTRUM_BASIS_XPATH, Lookup.XPATH); + endpoint.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CustomAction + default SET701_S001_AuthorizationOverview doubleClickOpsCallcentrumFraudAccess() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, Lookup.XPATH, Until.VISIBLE, OPS_CALLCENTRUM_FRAUD_ACCESS_XPATH); + endpoint.click(() -> OPS_CALLCENTRUM_FRAUD_ACCESS_XPATH, Lookup.XPATH); + endpoint.jsDoubleClick(() -> OPS_CALLCENTRUM_FRAUD_ACCESS_XPATH, Lookup.XPATH); + endpoint.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @Click(SAVE_CHANGES_PRIVILAGES_BUTTON) + OPS001_S001_ClientSearchPageUfoOperations clickSaveChangeOfPrivilages(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/SMS702_S002_SmsEmailHistoryPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/SMS702_S002_SmsEmailHistoryPage.java new file mode 100644 index 0000000..8eab85f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/SMS702_S002_SmsEmailHistoryPage.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.*; + +public interface SMS702_S002_SmsEmailHistoryPage extends WebFlow { + + String BACK_DART_BUTTON = "SMS702_S002_P001"; + String EMAIL_LABEL = "SMS702_S002_R001_2"; + + @Wait(value = EMAIL_LABEL, until = Until.VISIBLE) + @CheckElementPresent(EMAIL_LABEL) + SMS702_S002_SmsEmailHistoryPage assertEmailLabel(); + + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/STO704_S001_ClientConsentsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/STO704_S001_ClientConsentsPage.java new file mode 100644 index 0000000..bfe5448 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/STO704_S001_ClientConsentsPage.java @@ -0,0 +1,292 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + + +import cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage; +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX702_SharedTopMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.STO704_S001_ClientConsentsPage.GENERATE_PRINT; + +@Wait(GENERATE_PRINT) +public interface STO704_S001_ClientConsentsPage extends WebFlow, XXX702_SharedTopMenu, StoreAccessor { + + String REVOKE_SMS_BUTTON = "STO704_S001_B022"; + String REVOKE_TELEPHONE_BUTTON = "STO704_S001_B023"; + String REVOKE_IB_SB_BUTTON = "STO704_S001_B024"; + String REVOKE_SURVEYS_BUTTON = "STO704_S001_B025"; + String GIVE_ALL_BUTTON = "STO704_S001_B019"; + String REVOKE_POST_BUTTON = "STO704_S001_B021"; + String SMS_LABEL = "STO704_S001_L011"; + String REVOKE_EMAIL_BUTTON = "STO704_S001_B020"; + String REVOKE_WHATSAPP_BUTTON = "STO704_S001_B018"; + String REVOKE_OTHER_CHANNELS_BUTTON = "STO704_S001_B029"; + String GIVE_INSTANT_MESSAGING_BUTTON = "STO704_S001_B001"; + String REVOKE_UNENCRYPTED_COMMUNICATION_BUTTON = "STO704_S001_B026"; + String GIVE_UNENCRYPTED_COMMUNICATION_BUTTON = "STO704_S001_B028"; + String EMAIL_MMB_CONSENTS = "STO704_S001_L009"; + String EMAIL_MA_CONSENTS = "STO704_S001_L016"; + String EMAIL_ML_CONSENTS = "STO704_S001_L023"; + String EMAIL_WHB_CONSENTS = "STO704_S001_L151"; + String EMAIL_MSS_CONSENTS = "STO704_S001_L162"; + String POST_MMB_CONSENTS = "STO704_S001_L010"; + String POST_MA_CONSENTS = "STO704_S001_L017"; + String POST_ML_CONSENTS = "STO704_S001_L024"; + String POST_WHB_CONSENTS = "STO704_S001_L152"; + String POST_MSS_CONSENTS = "STO704_S001_L163"; + String SMS_MMB_CONSENTS = "STO704_S001_L011"; + String TELEPHONE_MMB_CONSENTS = "STO704_S001_L012"; + String IB_SB_MMB_CONSENTS = "STO704_S001_L013"; + String SURVEYS_MMB_CONSENTS = "STO704_S001_L014"; + String UNENCRYPTED_COMMUNICATION_MMB_CONSENT = "STO704_S001_L060"; + String WHATSAPP_MMB_CONSENTS = "STO704_S001_L193"; + String OTHER_CHANNELS_MMB_CONSENTS = "STO704_S001_L194"; + String HISTORY_CONSENTS_BUTTON_XPATH = "//*[@id=\"STO704_S001_V001\"]/div[2]/div/div[2]/div/button"; + String SEARCH_HISTORY_BUTTON = "STO704_S001_B006"; + String DETAIL_OF_LIST_CHANGE = "STO704_S001_P002-1"; + String CONSENT_STATUS_SET = "STO704_S001_L088-1"; + String REQUIREMENT_BUTTON_XPATH = "//*[@id=\"XXX702_T001_V002\"]/div[2]/div/div[5]/div/button"; + String REFRESH_REQUIREMENT = "XXX702_T001_B001"; + String CLIENT_CONSENTS = "XXX702_T001_P046"; + String PRINT_COMBOBOX = "STO704_S001_C010"; + String GENERATE_PRINT = "STO704_S001_B008"; + String TYPE_OF_CONSENT = "STO704_S001_L077-3"; + String DETAIL_OF_REQUIREMENT = "XXX702_T001_P035-1"; + String MMB_LABEL = "XXX702_T001_L261"; + String TODAY_DATE_IN_CHANGES = "STO704_S001_E002"; + String TODAY_DATE = "XXX702_T001_L172"; + String POST_CONSENT = "STO704_S001_L077-4"; + String IBSB_CONSENT = "STO704_S001_L077-6"; + String SURVEY_CONSENT = "STO704_S001_L077-5"; + String SMS_CONSENT = "STO704_S001_L077-2"; + String EMAIL_CONSENT = "STO704_S001_L077-1"; + + @Click(value = REVOKE_POST_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickRevokePostConsent(); + + @Wait(GIVE_ALL_BUTTON) + @Click(value = GIVE_ALL_BUTTON) + STO704_S001_ClientConsentsPage clickGiveAllConsents(); + + @Click(value = REVOKE_SMS_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickRevokeSmsConsent(); + + @Click(value = REVOKE_TELEPHONE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickRevokeTelephoneConsent(); + + @Click(value = REVOKE_IB_SB_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickRevokeIbSbConsent(); + + @Click(value = REVOKE_SURVEYS_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickRevokeSurveysConsent(); + + @CheckElementContent("STO704_S001_L011") + STO704_S001_ClientConsentsPage assertSmsConsentRevoked(String smsConsent); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @CheckElementContent("STO704_S001_L013") + STO704_S001_ClientConsentsPage assertIbSBConsentRevoked(String ibSbConsent); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @CheckElementContent("STO704_S001_L011") + STO704_S001_ClientConsentsPage assertAllConsentsValid(String allConsents); + + @CheckElementContent("STO704_S001_L010") + STO704_S001_ClientConsentsPage assertPostConsentRevoked(String postConsent); + + @CustomAction + default STO704_S001_ClientConsentsPage clickOkButton() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.acceptAlert(3); + return null; + } + + @Wait(value = REVOKE_EMAIL_BUTTON, until = Until.CLICKABLE) + @Click(value = REVOKE_EMAIL_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickRevokeEmail(); + + @Wait(value = REVOKE_WHATSAPP_BUTTON, until = Until.CLICKABLE) + @Click(value = REVOKE_WHATSAPP_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickRevokeWhatsapp(); + + @Wait(value = REVOKE_OTHER_CHANNELS_BUTTON, until = Until.CLICKABLE) + @Click(value = REVOKE_OTHER_CHANNELS_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickRevokeOtherChannels(); + + @Click(value = GIVE_INSTANT_MESSAGING_BUTTON) + @AcceptAlert(waitSecondsForAlert = 10) + STO704_S001_ClientConsentsPage clickGiveInstantMessagingConsents(); + + @Wait(value = REVOKE_UNENCRYPTED_COMMUNICATION_BUTTON, until = Until.CLICKABLE) + @Click(value = REVOKE_UNENCRYPTED_COMMUNICATION_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickRevokeUnencryptedCommunication(); + + @Click(value = GIVE_UNENCRYPTED_COMMUNICATION_BUTTON) + @AcceptAlert(waitSecondsForAlert = 10) + STO704_S001_ClientConsentsPage clickGiveUnencryptedCommunicationConsents(); + + @Wait(value = EMAIL_MMB_CONSENTS, until = Until.VISIBLE) + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @CheckElementContent(EMAIL_MMB_CONSENTS) + STO704_S001_ClientConsentsPage checkEmailMMBConsents(String text); + + @Wait(value = EMAIL_MA_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(EMAIL_MA_CONSENTS) + STO704_S001_ClientConsentsPage checkEmailMAConsents(String text); + + @Wait(value = EMAIL_ML_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(EMAIL_ML_CONSENTS) + STO704_S001_ClientConsentsPage checkEmailMLConsents(String text); + + @Wait(value = EMAIL_WHB_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(EMAIL_WHB_CONSENTS) + STO704_S001_ClientConsentsPage checkEmailWHBConsents(String text); + + @Wait(value = EMAIL_MSS_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(EMAIL_MSS_CONSENTS) + STO704_S001_ClientConsentsPage checkEmailMSSConsents(String text); + + @Wait(value = HISTORY_CONSENTS_BUTTON_XPATH, by = Lookup.XPATH) + @Click(value = HISTORY_CONSENTS_BUTTON_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickHistoryConsents(); + + @Click(value = SEARCH_HISTORY_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickSearchHistory(); + + @Wait(value = DETAIL_OF_LIST_CHANGE, until = Until.VISIBLE) + @Click(value = DETAIL_OF_LIST_CHANGE, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickdetailOfListChange(); + + @Wait(value = CONSENT_STATUS_SET, until = Until.VISIBLE) + @CheckElementContent(CONSENT_STATUS_SET) + STO704_S001_ClientConsentsPage checkConsentsStatusSet(String consent); + + @Wait(value = REQUIREMENT_BUTTON_XPATH, by = Lookup.XPATH, until = Until.VISIBLE) + @Click(value = REQUIREMENT_BUTTON_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickRequirement(); + + @Wait(REFRESH_REQUIREMENT) + @Click(value = REFRESH_REQUIREMENT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STO704_S001_ClientConsentsPage clickRefreshRequirement(); + + @Click(CLIENT_CONSENTS) + STO704_S001_ClientConsentsPage clickClientConsents(); + + @Select(value = PRINT_COMBOBOX, selectByOrder = true) + STO704_S001_ClientConsentsPage selectTypeOfPrint(int order); + + @Click(GENERATE_PRINT) + PSP701_S001_AmortizationPage clickGeneratePrint(); + + @Wait(value = TYPE_OF_CONSENT, until = Until.VISIBLE) + @CheckElementContent(TYPE_OF_CONSENT) + STO704_S001_ClientConsentsPage checkTypeOfConsent(String consent); + + @Wait(value = EMAIL_CONSENT, until = Until.VISIBLE) + @CheckElementContent(EMAIL_CONSENT) + STO704_S001_ClientConsentsPage checkTypeOfConsentEmail(String consent); + + @CustomAction + default CRC710_S001_RecorderMainPage clickDetailOfRequirement() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(15, DETAIL_OF_REQUIREMENT); + endpoint.click(() -> DETAIL_OF_REQUIREMENT); + endpoint.focusToNewPopup(5); + return null; + } + + @AcceptAlert(waitSecondsForAlert = 10, expectedAlertText = "Souhlasím se zpracováním svých osobních údajů, zejména, informací o bankovních obchodech a údajů vzniklých v průběhu využívání produktů a služeb které sdělím, nebo které oprávněným způsobem získají společnosti koncernu MONETA (MONETA Money Bank, a. s., MONETA Auto, s.r.o., MONETA Leasing, s.r.o. a MONETA Stavební Spořitelna a.s.) pro přípravu nabídky na míru a oslovení s nabídkou produktů nebo služeb. Více na www.moneta.cz v sekci Ochrana osobních údajů.") + STO704_S001_ClientConsentsPage acceptAlert(); + + @Wait(value = POST_CONSENT, until = Until.VISIBLE) + @CheckElementContent(POST_CONSENT) + STO704_S001_ClientConsentsPage checkPostConsent(String post); + + @Wait(value = IBSB_CONSENT, until = Until.VISIBLE) + @CheckElementContent(IBSB_CONSENT) + STO704_S001_ClientConsentsPage checkIBSBConsent(String IBSB); + + @Wait(value = SURVEY_CONSENT, until = Until.VISIBLE) + @CheckElementContent(SURVEY_CONSENT) + STO704_S001_ClientConsentsPage checkSurveyConsent(String survey); + + @Wait(value = SMS_CONSENT, until = Until.VISIBLE) + @CheckElementContent(SMS_CONSENT) + STO704_S001_ClientConsentsPage checkSMSConsent(String sms); + + @Wait(value = EMAIL_CONSENT, until = Until.VISIBLE) + @CheckElementContent(EMAIL_CONSENT) + STO704_S001_ClientConsentsPage checkEmailConsent(String email); + + @Wait(value = POST_MMB_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(POST_MMB_CONSENTS) + STO704_S001_ClientConsentsPage checkPostMMBConsents(String text); + + @Wait(value = POST_MA_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(POST_MA_CONSENTS) + STO704_S001_ClientConsentsPage checkPostMAConsents(String text); + + @Wait(value = POST_ML_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(POST_ML_CONSENTS) + STO704_S001_ClientConsentsPage checkPostMLConsents(String text); + + @Wait(value = POST_WHB_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(POST_WHB_CONSENTS) + STO704_S001_ClientConsentsPage checkPostWHBConsents(String text); + + @Wait(value = POST_MSS_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(POST_MSS_CONSENTS) + STO704_S001_ClientConsentsPage checkPostMSSConsents(String text); + + @Wait(value = SMS_MMB_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(SMS_MMB_CONSENTS) + STO704_S001_ClientConsentsPage checkSmsMMBConsents(String text); + + @Wait(value = TELEPHONE_MMB_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(TELEPHONE_MMB_CONSENTS) + STO704_S001_ClientConsentsPage checkTelephoneMMBConsents(String text); + + @Wait(value = IB_SB_MMB_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(IB_SB_MMB_CONSENTS) + STO704_S001_ClientConsentsPage checkIbSbMMBConsents(String text); + + @Wait(value = SURVEYS_MMB_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(SURVEYS_MMB_CONSENTS) + STO704_S001_ClientConsentsPage checkSurveysMMBConsents(String text); + + @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) + @CheckElementContent(UNENCRYPTED_COMMUNICATION_MMB_CONSENT) + STO704_S001_ClientConsentsPage checkUnencryptedCommunicationMMBConsents(String text); + + @Wait(value = WHATSAPP_MMB_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(WHATSAPP_MMB_CONSENTS) + STO704_S001_ClientConsentsPage checkWhatsappMMBConsents(String text); + + @Wait(value = OTHER_CHANNELS_MMB_CONSENTS, until = Until.VISIBLE) + @CheckElementContent(OTHER_CHANNELS_MMB_CONSENTS) + STO704_S001_ClientConsentsPage checkOtherChannelsMMBConsents(String text); + + @Wait(value = MMB_LABEL) + @CustomAction + default STO704_S001_ClientConsentsPage checkIfMMBTitleIsShowingExpectedText() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String MMB_title = endpoint.getAttribute(MMB_LABEL, "title"); + String MMB_expected_title = "Telefon - PLATNÝ [XXX702_T001_L261]"; + Assertions.assertEquals(MMB_expected_title, MMB_title, "The title isn't visible"); + return null; + } + + @Wait(value = TODAY_DATE, until = Until.VISIBLE) + @Wait(value = TODAY_DATE_IN_CHANGES, until = Until.VISIBLE) + @CustomAction + default STO704_S001_ClientConsentsPage checkIfIsSelectedTodayDate() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String todayDateInChanges = endpoint.getAttribute(TODAY_DATE_IN_CHANGES, "value"); + String todayDate = endpoint.getText(TODAY_DATE); + Assertions.assertEquals(todayDateInChanges, todayDate, "Dates aren't same."); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/TRA701_S001_Transactions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/TRA701_S001_Transactions.java new file mode 100644 index 0000000..f35841a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/TRA701_S001_Transactions.java @@ -0,0 +1,111 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.TRA701_S001_Transactions.TITLE_OF_PAGE; + +@Wait(value = TITLE_OF_PAGE, until = Until.VISIBLE) +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE) +public interface TRA701_S001_Transactions extends WebFlow, StoreAccessor { + + String TITLE_OF_PAGE = "TRA701_S001_L001"; + String STATEMENT_ARCHIVE = "TRA701_S001_R001_1"; + String BACK_DART = "TRA701_S001_P025"; + String ACCOUNT_NUMBER_LABEL = "TRA701_S001_L013"; + String TRANSFER_ORDER = "//button[(@title='TRA701_S001_I009 [TRA701_S001_I009]')]"; + String FIRST_ACCOUNT_STATEMENT_CHECKBOX = "ufo-et-TRA701_S001_F001_row_1_sel"; + String STATEMENT_WITHOUT_FEE_BUTTON = "TRA701_S001_B033"; + String STATEMENT_WITH_FEE_BUTTON = "TRA701_S001_B032"; + String FIRST_STATEMENT_VALUE = "TRA701_S001_L036-1"; + String DETAIL_OF_TRANSACTION_IN_THE_LIST_BUTTON = "TRA701_S001_P001-1"; + String ID_OF_USER_LABEL = "TRA701_S001_L379"; + String EXIT_DETAIL_OF_TRANSACTION_BUTTON = "TRA701_S001_P002"; + String VIEW_TRANSACTIONS_BUTTON = "TRA701_S001_B003"; + String CURRENCY_LABEL = "TRA701_S001_L011"; + String LAST_ROW_DETAIL_IN_TRANSACTION_TABLE = "//tr[starts-with(@id, 'ufo-et-TRA701_S001_F002_row_')][last()]//img[starts-with(@id, 'TRA701_S001_P001-')]"; + String LAST_ROW_VALUE_IN_TRANSACTION_TABLE = "//tr[starts-with(@id, 'ufo-et-TRA701_S001_F002_row_')][last()]//div[starts-with(@id, 'TRA701_S001_L036-')]"; + String AV_FIELD = "TRA701_S001_L384"; + String POSTING_DATE_IN_DETAIL = "TRA701_S001_L362"; + String DATE_DIV = "XXX702_T001_L172"; + String LIST_OF_BLOCKED_FINANCIAL_RESOURCES_DIV = "TRA701_S001_X032"; + + @CheckElementPresent(ACCOUNT_NUMBER_LABEL) + TRA701_S001_Transactions assertAccountNumber(); + + @Wait(value = STATEMENT_ARCHIVE, until = Until.VISIBLE) + @Click(BACK_DART) + STS701_S002_ClientDetailPage clickBack(); + + @Wait(value = STATEMENT_ARCHIVE, until = Until.VISIBLE) + @CheckElementPresent(STATEMENT_ARCHIVE) + TRA701_S001_Transactions assertStatementArchive(); + + @Click(value = TRANSFER_ORDER, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRA740_S001_CreateNewTransferPaymentOrderPage clickTransactionOrder(); + + @Wait(value = FIRST_ACCOUNT_STATEMENT_CHECKBOX, until = Until.CLICKABLE) + @Click(value = FIRST_ACCOUNT_STATEMENT_CHECKBOX) + TRA701_S001_Transactions clickFirstAccountStatementCheckbox(); + + @Wait(value = STATEMENT_WITHOUT_FEE_BUTTON, until = Until.CLICKABLE) + @Click(value = STATEMENT_WITHOUT_FEE_BUTTON) + PSP701_S001_AmortizationPage clickStatementWithoutFeeButton(); + + @Wait(value = STATEMENT_WITH_FEE_BUTTON, until = Until.CLICKABLE) + @Click(STATEMENT_WITH_FEE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 15, expectedAlertText = "Bude naúčtován 1x poplatek.") + PSP701_S001_AmortizationPage clickStatementWithFeeButton(); + + @Wait(value = FIRST_STATEMENT_VALUE, until = Until.VISIBLE) + @CheckElementContent(FIRST_STATEMENT_VALUE) + TRA701_S001_Transactions checkFirstStatementValue(String value); + + @Wait(value = DETAIL_OF_TRANSACTION_IN_THE_LIST_BUTTON, until = Until.VISIBLE) + @Click(value = DETAIL_OF_TRANSACTION_IN_THE_LIST_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRA701_S001_Transactions clickDetailOfTransaction(); + + @Wait(value = ID_OF_USER_LABEL, until = Until.VISIBLE) + @CheckElementPresent(ID_OF_USER_LABEL) + TRA701_S001_Transactions checkIdOfUser(); + + @Click(EXIT_DETAIL_OF_TRANSACTION_BUTTON) + TRA701_S001_Transactions clickExitInWindowWithDetailOfTransaction(); + + @Click(VIEW_TRANSACTIONS_BUTTON) + TRA701_S001_Transactions clickViewTransactions(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @CheckElementPresent(CURRENCY_LABEL) + TRA701_S001_Transactions assertCurrency(); + + @Click(value = LAST_ROW_DETAIL_IN_TRANSACTION_TABLE, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRA701_S001_Transactions clickDetailLastRowInTransactionTable(); + + @Wait(value = LAST_ROW_VALUE_IN_TRANSACTION_TABLE, until = Until.VISIBLE, by = Lookup.XPATH) + @CheckElementContent(value = LAST_ROW_VALUE_IN_TRANSACTION_TABLE, by = Lookup.XPATH) + TRA701_S001_Transactions checkValueInTransactionTable(String value); + + @Wait(value = AV_FIELD, until = Until.VISIBLE) + @CheckElementContent(AV_FIELD) + TRA701_S001_Transactions checkAvField(String text); + + @CustomAction + default TRA701_S001_Transactions dateCompare() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, POSTING_DATE_IN_DETAIL, DATE_DIV); + Assertions.assertTrue(endpoint.getText(POSTING_DATE_IN_DETAIL).contains(endpoint.getText(DATE_DIV))); + return null; + } + + @Wait(value = LIST_OF_BLOCKED_FINANCIAL_RESOURCES_DIV, until = Until.VISIBLE) + @CheckElementPresent(LIST_OF_BLOCKED_FINANCIAL_RESOURCES_DIV) + TRA701_S001_Transactions checkListOfBlockedFinancialResources(); + + @Click(value = BACK_DART, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickBackWhenOnBlocations(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/TRA740_S001_CreateNewTransferPaymentOrderPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/TRA740_S001_CreateNewTransferPaymentOrderPage.java new file mode 100644 index 0000000..7d96c77 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/TRA740_S001_CreateNewTransferPaymentOrderPage.java @@ -0,0 +1,84 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX702_SharedTopMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.TRA740_S001_CreateNewTransferPaymentOrderPage.PAGE_FIELDSET; + +@Wait(PAGE_FIELDSET) +@Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) +public interface TRA740_S001_CreateNewTransferPaymentOrderPage extends WebFlow, XXX702_SharedTopMenu, StoreAccessor { + + String ID_PAYMENT_ORDER_KEY = "ID_PAYMENT_ORDER"; + String PAGE_FIELDSET = "TRA740_S001_Y001"; + String BACK_OFFICE_ZAKLAD_RADIO = "TRA740_S001_R001_BackOfficeZaklad"; + String PAYMENTS_ZAKLAD_RADIO = "TRA740_S001_R001_PaymentsZaklad"; + String ATM_RADIO = "TRA740_S001_R002_ATM"; + String ORDER_TYPE_SELECT = "TRA740_S001_C001"; + String PAYER_ACCOUNT_NUMBER_INPUT = "TRA740_S001_E001"; + String RECIPIENT_ACCOUNT_NUMBER_INPUT = "TRA740_S001_E003"; + + String AMOUNT_INPUT = "TRA740_S001_E005"; + + String SEND_BUTTON = "TRA740_S001_B001"; + String TRANSACTION_SUCCESSFULLY_ESTABLISHED_DIV = "XXX702_T001_L107"; + String ID_PAYMENT_ORDER_DIV = "XXX702_T001_L107"; + String VARIABLE_SYMBOL = "TRA740_S001_E007"; + String SPECIFICALLY_SYMBOL = "TRA740_S001_E009"; + String MESSAGE = "TRA740_S001_M001"; + + @Click(value = BACK_OFFICE_ZAKLAD_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRA740_S001_CreateNewTransferPaymentOrderPage clickBackOfficeZaklad(); + + @Click(value = PAYMENTS_ZAKLAD_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRA740_S001_CreateNewTransferPaymentOrderPage clickPaymentsZaklad(); + + @Click(value = ATM_RADIO, jsClick = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRA740_S001_CreateNewTransferPaymentOrderPage clickATM(); + + @Select(value = ORDER_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRA740_S001_CreateNewTransferPaymentOrderPage selectOrderType(String orderType); + + @TypeInto(value = PAYER_ACCOUNT_NUMBER_INPUT, clear = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRA740_S001_CreateNewTransferPaymentOrderPage fillPayerAccountNumber(String accountNumber); + + @TypeInto(value = RECIPIENT_ACCOUNT_NUMBER_INPUT, clear = true) + @Click(value = AMOUNT_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, explicitWaitSeconds = 1)) + TRA740_S001_CreateNewTransferPaymentOrderPage fillRecipientAccountNumber(String accountNumber); + + @TypeInto(value = AMOUNT_INPUT, clear = true) + TRA740_S001_CreateNewTransferPaymentOrderPage fillAmount(String amount); + + @TypeInto(value = VARIABLE_SYMBOL, clear = true) + TRA740_S001_CreateNewTransferPaymentOrderPage fillVariableSymbol(String variableSymbol); + + @TypeInto(value = SPECIFICALLY_SYMBOL, clear = true) + TRA740_S001_CreateNewTransferPaymentOrderPage fillSpecificallySymbol(String specificallySymbol); + + @TypeInto(value = MESSAGE, clear = true) + TRA740_S001_CreateNewTransferPaymentOrderPage fillMessage(String message); + + @Click(value = SEND_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + TRA740_S001_CreateNewTransferPaymentOrderPage clickSend(); + + @CheckElementContent(TRANSACTION_SUCCESSFULLY_ESTABLISHED_DIV) + TRA740_S001_CreateNewTransferPaymentOrderPage checkTransactionSuccessfullyEstablished(String content); + + @CustomAction + default TRA740_S001_CreateNewTransferPaymentOrderPage saveTaskIDPaymentOrder() { + + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + String establishedTaskText = endpoint.getText(ID_PAYMENT_ORDER_DIV).replaceAll(".*ID: (\\d+)$", "$1"); + this.store(ID_PAYMENT_ORDER_KEY, establishedTaskText); + return null; + } + + @Click(value = SEND_BUTTON) + @AcceptAlert(waitSecondsForAlert = 10, expectedAlertText = "Údaj TRA740_S001_E005 je zadán chybně - zadejte znovu. [TRA740_S001_E005]") + TRA740_S001_CreateNewTransferPaymentOrderPage clickSendAndAcceptAlert(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskDetail.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskDetail.java new file mode 100644 index 0000000..797c57f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskDetail.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskDetail.PROCESS_DOCUMENTS_BUTTON; + +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 30) +@Wait(value = PROCESS_DOCUMENTS_BUTTON) +public interface UKO720_S001_TaskDetail extends StoreAccessor, WebFlow { + + String PROCESS_DOCUMENTS_BUTTON = "UKO720_S001_P017"; + String PROCESS_FIRST_ATTACHMENT_BUTTON = "UKO720_S001_P019-1"; + String FINISH_PROCESS_BUTTON = "UKO720_S001_B016"; + String FINISH_PROCESS_COMMENT_BUTTON = "UKO720_S001_B007"; + String EDIT_COMMENT = "UKO720_S001_M006"; + String SOLVER_SELECT = "UKO720_S001_C009"; + String NOTE_WINDOW = "UKO720_S001_M006"; + String TASK_ID = "UKO720_S001_L085"; + + @CheckElementPresent(TASK_ID) + UKO720_S001_TaskDetail checkTaskIdPresence(); + + @TypeInto(value = EDIT_COMMENT) + @Click(value = FINISH_PROCESS_COMMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskList fillCommentAndClickAgreeFinish(String comment); + + @Click(value = FINISH_PROCESS_BUTTON) + UKO720_S001_TaskDetail clickFinishProcess(); + + @Click(value = FINISH_PROCESS_BUTTON) + @AcceptAlert(waitSecondsForAlert = 5, expectedAlertText = "Není vytvořena odpověď pro klienta, opravdu chcete dokončit úkol?") + UKO720_S001_TaskDetail clickFinishProcessAndAcceptFinishAlert(); + + @Select(value = SOLVER_SELECT, selectByOrder = true) + UKO720_S001_TaskDetail selectSolver(int num); + + @Select(value = SOLVER_SELECT) + UKO720_S001_TaskDetail selectSolver(String selectValue); + + @Wait(value = NOTE_WINDOW, until = Until.VISIBLE) + @TypeInto(NOTE_WINDOW) + UKO720_S001_TaskDetail fillNote(String note); + + @CustomAction + default UKO720_S001_TaskPage_Transitions clickProcessDocuments() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> PROCESS_DOCUMENTS_BUTTON); + endpoint.focusToNewPopup(20); + return null; + } + + @CustomAction + default SCH706_S001_FormSelect clickProcessFirstAttachment() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> PROCESS_FIRST_ATTACHMENT_BUTTON); + endpoint.focusToNewPopup(40); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskList.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskList.java new file mode 100644 index 0000000..1f173cc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskList.java @@ -0,0 +1,256 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX701_SharedTopMenu; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.StateOfTaskFilter; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.TypesOfViewFilter; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.Assert; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.CLIENT_SEARCH_BY_RC_FIELD; + +@Wait(value = CLIENT_SEARCH_BY_RC_FIELD, until = Until.VISIBLE) +@Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, waitSecondsForElement = 80) +public interface UKO720_S001_TaskList extends WebFlow, XXX701_SharedTopMenu, StoreAccessor { + + String TASK_ID_KEY = "TASK_ID"; + String SECOND_TASK_ID_KEY = "SECOND_TASK_ID"; + String CLIENT_SEARCH_BY_RC_FIELD = "UKO720_S001_E023"; + String FIRST_TASK_CLIENT_RC = "UKO720_S001_L131-1"; + String OBJECT_SEARCH_BY_ID_FIELD = "UKO720_S001_E010"; + String FIRST_TASK_OBJECT_ID = "UKO720_S001_L171-1"; + String DEPARTMENTS_CHECKBOX = "UKO720_S001_H008_1"; + String FIND_BUTTON = "UKO720_S001_B001"; + String RESET_BUTTON = "UKO720_S001_B002"; + String TYPE_OF_VIEW_MENU = "UKO720_S001_C006"; + String TASK_ID_INPUT = "UKO720_S001_E007"; + String NEW_MAIN_TASK = "//button[contains(@title, 'UKO720_S001_I002')]"; + String ADMINISTRATIONS_XPATH = "//button[contains(@title, 'UKO720_S001_I004')]"; + String DOUBLE_DART_BUTTON = "UKO720_S001_I001_innerTab"; + String FIRST_TASK_DETAIL = "UKO720_S001_P001-1"; + String REVITALIZATION_BUTTON = "UKO720_S001_P049-1"; + String MFCH_DETAIL = "//tr[.//*[contains(text(),'Kontrola totožnosti')]]/preceding-sibling::tr//img[contains(@id,'UKO720_S001_P001')]"; + String FIRST_RECORD_TASK_ID_LABEL = "UKO720_S001_L005-1"; + String FIRST_TASK_STATUS = "UKO720_S001_L019-1"; + String FIRST_TASK_TASKMASTER = "UKO720_S001_L032-1"; + String THIRD_PAGE_LABEL = "PAG501_S001_L003"; + String LOADER_POPUP = "gwt-PopupPanel"; + String FIRST_RECORD_TASK_ID_XPATH = "//div[@id='UKO720_S001_L005-1' and text()='%s']"; + String FIRST_NAME_OF_TASK = "UKO720_S001_L014-1"; + String INCLUDING_LOCKED_CHECKBOX = "UKO720_S001_H004_1"; + String FIRST_STATE_OF_TASK = "UKO720_S001_G002-0"; + String DEPARTMENT_FILTER_FIRST_NAME = "UKO720_S001_G001-0"; + String FIRST_TYPE_OF_TASK = "UKO720_S001_G004-0"; + String FILTER_BUTTON = "UKO720_S001_B011"; + String SSO_SOLVER_SEARCH = "UKO720_S001_E005"; + String SSO_SUBMITTER_SEARCH = "UKO720_S001_E006"; + String PRIORITY_SEARCH_COMBOBOX = "UKO720_S001_C002"; + String BUSSINES_SEARCH_COMBOBOX = "UKO720_S001_C003"; + String CLIENT_SEARCH_BY_ICO_NUMBER = "UKO720_S001_E022"; + String ID_OF_CLIENT_SEARCH = "UKO720_S001_E009"; + String EXPAND_FILTER_ARROW = "UKO720_S001_P004"; + String COLLAPSE_FILTER_ARROW = "UKO720_S001_P003"; + + @CustomAction + default UKO720_S001_TaskList saveTaskID() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + String establishedTaskText = endpoint.getText(STATUS_LABEL).replaceAll(".*(T_\\d+) .*", "$1"); + this.store(TASK_ID_KEY, establishedTaskText); + return null; + } + + @CustomAction + default UKO720_S001_TaskList saveSecondTaskID() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + String establishedTaskText = endpoint.getText(STATUS_LABEL).replaceAll(".*(T_\\d+) .*", "$1"); + this.store(SECOND_TASK_ID_KEY, establishedTaskText); + return null; + } + + @Wait(value = FIRST_TASK_DETAIL, until = Until.CLICKABLE) + @Click(value = FIRST_TASK_DETAIL, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskPage clickOpenTaskDetail(); + + @CustomAction + default UKO720_S001_TaskList clickRevitalization() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> REVITALIZATION_BUTTON); + if (endpoint.getAlertText(10).equals("Důvod oživení")) { + endpoint.acceptAlert(1); + } + endpoint.waitForElementsToLoad(5, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + return null; + } + + @CheckElementPresent(REVITALIZATION_BUTTON) + UKO720_S001_TaskList checkRevitalizationButtonPresent(); + + @Click(value = MFCH_DETAIL, by = Lookup.XPATH) + UKO720_S001_TaskDetail clickMFCHDetail(); + + @Click(DOUBLE_DART_BUTTON) + UKO720_S001_TaskList clickDoubleDartButton(); + + @Click(value = NEW_MAIN_TASK, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskPage clickNewMainTask(); + + @Click(value = ADMINISTRATIONS_XPATH, by = Lookup.XPATH) + UKO729_S001_AdministrationPage clickAdministration(); + + @Wait(value = CLIENT_SEARCH_BY_RC_FIELD, until = Until.VISIBLE) + @TypeInto(CLIENT_SEARCH_BY_RC_FIELD) + UKO720_S001_TaskList fillBirthNumber(String birthNumber); + + @Wait(value = OBJECT_SEARCH_BY_ID_FIELD, until = Until.VISIBLE) + @TypeInto(OBJECT_SEARCH_BY_ID_FIELD) + UKO720_S001_TaskList fillIdObject(String idObject); + + @CheckElementContent(FIRST_TASK_CLIENT_RC) + UKO720_S001_TaskList assertTaskClientRc(String birthNumber); + + @CheckElementContent(FIRST_TASK_OBJECT_ID) + UKO720_S001_TaskList assertTaskObjectId(String objectId); + + @Click(DEPARTMENTS_CHECKBOX) + UKO720_S001_TaskList clickDepartments(); + + @Wait(value = FIND_BUTTON, until = Until.VISIBLE) + @Click(value = FIND_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskList clickFind(); + + @Wait(value = RESET_BUTTON, until = Until.VISIBLE) + @Click(value = RESET_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskList clickReset(); + + @Click(value = FIND_BUTTON, andWait = @Wait(FIRST_TASK_DETAIL)) + @Click(FIRST_TASK_DETAIL) + UKO720_S001_TaskList clickFindAndSelectFirst(); + + @Select(value = TYPE_OF_VIEW_MENU, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskList selectTypeOfView(TypesOfViewFilter typeOfView); + + @TypeInto(TASK_ID_INPUT) + UKO720_S001_TaskList fillTaskID(String taskID); + + @Click(FIRST_TASK_DETAIL) + UKO720_S001_TaskDetail clickToFirstTask(); + + @CustomAction + default UKO720_S001_TaskList waitUntilFoundMFCHTask() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + for (int i = 20; i >= 0; i--) { // max 2 minuty + endpoint.click(() -> FIND_BUTTON); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + if (endpoint.isElementPresent(MFCH_DETAIL, Lookup.XPATH)) { + break; + } + if (i == 0) { + Assert.fail("Timeout occurred while finding a Manual Fraud Check Task"); + } + endpoint.sleepSeconds(6); + } + return null; + } + + @StoreElementContent(storeKey = TASK_ID_KEY, value = FIRST_RECORD_TASK_ID_LABEL, by = Lookup.ID) + UKO720_S001_TaskList storeFirstRecordTaskId(); + + @Wait(value = FIRST_TASK_STATUS, until = Until.VISIBLE) + @CheckElementContent(FIRST_TASK_STATUS) + UKO720_S001_TaskList assertTaskStatus(String status); + + @CheckElementContent(FIRST_TASK_TASKMASTER) + UKO720_S001_TaskList assertTaskTaskmaster(String researcher); + + @Click(value = THIRD_PAGE_LABEL, andWait = @Wait(value = LOADER_POPUP, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskList clickThirdPage(); + + @CustomAction + default UKO720_S001_TaskList checkFirstRecordTaskIdChanged() { + UfoEndpoint endpoint = this.getEndpoint(UfoEndpoint.class); + String firstRecordTaskIdElement = String.format(FIRST_RECORD_TASK_ID_XPATH, this.get(TASK_ID_KEY).toString()); + endpoint.waitForElementsToLoad(3, Lookup.XPATH, Until.GONE, firstRecordTaskIdElement); + Assertions.assertNotEquals(this.get(TASK_ID_KEY), endpoint.getText(FIRST_RECORD_TASK_ID_LABEL)); + Assertions.assertNotEquals("", endpoint.getText(FIRST_RECORD_TASK_ID_LABEL)); + return null; + } + + @CheckElementPresent(FIRST_NAME_OF_TASK) + UKO720_S001_TaskList checkPresentOfFirstTask(); + + @CustomAction + default UKO720_S001_TaskList checkStatesOfTaskFilterValues(boolean checkIfChecked, List statesShouldPresent) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + for (StateOfTaskFilter state : statesShouldPresent) { + if (checkIfChecked) + Assertions.assertEquals("true", endpoint.getAttribute(state.getElementXpath(), Lookup.XPATH, "checked"), String.format("The filter of task state %s isn't checked.", state.name())); + else + Assertions.assertTrue(endpoint.isElementVisible(state.getElementXpath(), Lookup.XPATH), String.format("The filter of task state %s isn't visible.", state.name())); + } + return null; + } + + @CheckElementPresent(INCLUDING_LOCKED_CHECKBOX) + UKO720_S001_TaskList checkIncludingLockedCheckbox(); + + @CustomAction + default UKO720_S001_TaskList checkDataFiltering() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> DEPARTMENT_FILTER_FIRST_NAME); + endpoint.waitForElementsToLoad(5, Until.CLICKABLE, FILTER_BUTTON); + endpoint.click(() -> FILTER_BUTTON); + endpoint.click(() -> FIRST_TYPE_OF_TASK); + Assertions.assertEquals("true", endpoint.getAttribute(FIRST_TYPE_OF_TASK, "checked"), "The checkbox of first type of task isn't checked."); + return null; + } + + @CustomAction + default UKO720_S001_TaskList checkSearchOptionsEnabled() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + List elementsForCheck = List.of(SSO_SOLVER_SEARCH, SSO_SUBMITTER_SEARCH, PRIORITY_SEARCH_COMBOBOX, BUSSINES_SEARCH_COMBOBOX, TASK_ID_INPUT, CLIENT_SEARCH_BY_RC_FIELD, CLIENT_SEARCH_BY_ICO_NUMBER, ID_OF_CLIENT_SEARCH, OBJECT_SEARCH_BY_ID_FIELD); + for (String element : elementsForCheck) { + Assertions.assertTrue(endpoint.isElementEnabled(element), "Element " + element + " isn't enabled"); + } + return null; + } + + @CustomAction + default UKO720_S001_TaskList typeIntoSsoSolver(String sso) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNull(endpoint.getAttribute(SSO_SOLVER_SEARCH, "readonly"), "Element " + SSO_SOLVER_SEARCH + " is read only."); + endpoint.type(() -> SSO_SOLVER_SEARCH, sso, false); + return null; + } + + @CustomAction + default UKO720_S001_TaskList typeIntoSsoSubmitter(String sso) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNull(endpoint.getAttribute(SSO_SUBMITTER_SEARCH, "readonly"), "Element " + SSO_SUBMITTER_SEARCH + " is read only."); + endpoint.type(() -> SSO_SUBMITTER_SEARCH, sso, false); + return null; + } + + @Wait(value = EXPAND_FILTER_ARROW, until = Until.CLICKABLE) + @Click(EXPAND_FILTER_ARROW) + UKO720_S001_TaskList clickExpandFilterArrow(); + + @Wait(value = COLLAPSE_FILTER_ARROW, until = Until.CLICKABLE) + @Click(COLLAPSE_FILTER_ARROW) + UKO720_S001_TaskList clickCollapseFilterArrow(); + + @CustomAction + default UKO720_S001_TaskList checkFirstStateOfTasksByViewType(TypesOfViewFilter viewType, StateOfTaskFilter stateOfTask) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.selectByVisibleText(TYPE_OF_VIEW_MENU, viewType.getUfoValue()); + endpoint.waitForElementsToLoad(10, Lookup.CLASSNAME, Until.GONE, LOAD_IMG_DIV_CLASS); + Assertions.assertEquals(stateOfTask.getValue(), endpoint.getAttribute(FIRST_STATE_OF_TASK, "value"), "The first state of task in the filter doesn't match the selected view type."); + return null; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskPage.java new file mode 100644 index 0000000..da4569c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskPage.java @@ -0,0 +1,434 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.dsl.ufo.operations.shared.topmenu.XXX701_SharedTopMenu; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskPage.CATEGORY_COMBOBOX; + +@Wait(CATEGORY_COMBOBOX) +@Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) +public interface UKO720_S001_TaskPage extends WebFlow, XXX701_SharedTopMenu, StoreAccessor { + + String ID_OBJECT_IN_TASK_KEY = "ID_OBJECT_IN_TASK"; + + String TASK_ID_KEY = "TASKID"; + String TASK_LIST_XPATH = "//button[contains(@title, 'UKO701_S001_I001 [UKO720_S001_I001]')]"; + String CATEGORY_COMBOBOX = "UKO720_S001_C008"; + String SUBCATEGORIES_COMBOBOX = "UKO720_S001_C022"; + String BIRTH_NUMBER_IN_TASK = "UKO720_S001_E013"; + String CLIENT_DETAIL_INFO_IMG = "UKO720_S001_P002"; + String ID_OBJECT_IN_TASK_BUTTON = "UKO720_S001_E012"; + String ID_OM_IN_TASK_BUTTON = "UKO720_S001_E049"; + String ID_OBJECT_IN_TASK_XPATH = "//input[@id='UKO720_S001_E012']/following-sibling::input"; + String ID_OBJECT_DETAIL_INFO_IMG = "UKO720_S001_P021"; + String TASK_TYPE_COMBOBOX = "UKO720_S001_C007"; + String REQUEST_REASON_FIELD = "UKO720_S001_M002"; + String ASSIGN_BUTTON = "UKO720_S001_B010"; + String DESCRIPTION_FIELD = "UKO720_S001_M001"; + String ADD_NOTE_BUTTON = "UKO720_S001_B008"; + String FIRST_NOTE_TEXT_XPATH = "//table[@id='UKO720_S001_G008_UfoTable']/tbody//td[2]"; + String NOTE_WINDOW = "UKO720_S001_M006"; + String TASK_TREE_BUTTON_XPATH = "//button[(@title='UKO720_S001_I007 [UKO720_S001_I007]')]"; + String CANCELLATION_BUTTON = "UKO720_S001_B019"; + String CANCELLATION_REASON = "UKO720_S001_M006"; + + String OK_BUTTON = "UKO720_S001_B007"; + String SPECIFIC_ATTRIBUTES = "UKO720_S001_H007_1"; + String CREATE_SUBTASK_BUTTON = "UKO720_S001_B020"; + String SOLUTION_BUTTON = "//button[@title='UKO720_S001_I008 [UKO720_S001_I008]']"; + String TASK_TYPE_SUBTASK_RADIO = "UKO720_S001_R005_subTask"; + String TREE_TABLE = "UKO720_S001_T001"; + String SOLVE_BUTTON = "UKO720_S001_B035"; + String FINISH_BUTTON = "UKO720_S001_B016"; + String SOLVE_TEXT_INPUT_XPATH = "//div[@id='UKO720_S001_X070']//textarea"; + String SAVE_BUTTON = "UKO720_S001_B014"; + String DELEGATE_BUTTON = "UKO720_S001_B024"; + String RETURN_BUTTON = "UKO720_S001_B021"; + String PDF_IMG = "UKO720_S001_P014"; + String ADD_ATTACHMENT_BUTTON = "UKO720_S001_B017"; + String FILE_UPLOAD_INPUT = "gwt-FileUpload"; + String FILE_TITLE_INPUT = "IPP701_S001_E001"; + String DOCUMENT_TYPE_SELECT = "IPP701_S001_C001"; + String SAVE_ATTACHMENT_BUTTON = "IPP701_S001_B001"; + String FIRST_ATTACHMENT_TITLE_DIV = "UKO720_S001_L123-1"; + String ID_TASK_INPUT = "UKO720_S001_E014"; + String CONNECT_TASKS_BUTTON = "UKO720_S001_B031"; + String SELECTION_ATTACHMENT = "ufo-et-UKO720_S001_F006_row_1_sel"; + String HISTORY_BUTTON = "//button[@title='UKO720_S001_I006 [UKO720_S001_I006]']"; + String TASK_CHANGE_CHECKBOX = "UKO720_S001_H003_1"; + String REASON_CHANGE = "UKO720_S001_M006"; + String FIRST_ATTACHMENT_DOWNLOAD_IMG = "UKO720_S001_P028-1"; + String FIRST_ATTACHMENT_DETAIL_IMG = "UKO720_S001_P018-1"; + String SOLVE_TAB_XPATH = "//button[text()='Řešení']"; + String ATTACHMENT_DETAIL_IMG = "UKO720_S001_O001"; + String LIST_OF_TASKS_XPATH = "//button[contains(@title, 'UKO720_S001_I001')]"; + String PREFERRED_CANAL_COMBOBOX = "UKO720_S001_C027"; + String SOLVING_GROUP_COMBOBOX = "UKO720_S001_C013"; + String SOLVER_COMBOBOX = "UKO720_S001_C009"; + String BUSINESS_COMBOBOX = "UKO720_S001_C012"; + String ID_TYPE_COMBOBOX = "UKO720_S001_C010"; + String NAME_OF_TASK_TEXTBOX = "UKO720_S001_E008"; + String CANAL_OF_TASK_COMBOBOX = "UKO720_S001_C023"; + String CLIENTS_EMAIL_TEXTBOX = "UKO720_S001_E029"; + String ID_OF_TASK = "UKO720_S001_L085"; + String TASK_PDF = "regression/ufo/task_document.pdf"; + String FIRST_DATE_IN_LIST_OF_NOTES_XPATH = "//table[@id='UKO720_S001_G008_UfoTable']/tbody/tr[1]/td[1]"; + String FIRST_DATE_IN_LIST_OF_ATTACHMENTS = "UKO720_S001_L122-1"; + String FIRST_DATE_IN_HISTORY = "UKO720_S001_L105-1"; + String FIRST_STATE_IN_HISTORY = "UKO720_S001_L106-1"; + String FIRST_SOLVER_IN_HISTORY = "UKO720_S001_L108-1"; + String FIRST_SOLVING_GROUP_IN_HISTORY = "UKO720_S001_L109-1"; + String FIRST_USER_IN_HISTORY = "UKO720_S001_L110-1"; + String NUMBER_OF_CARD_ACCOUNT_CREDIT_TEXTDIV = "UKO720_S001_E031"; + String ID_OF_CLIENT = "UKO720_S001_E011"; + String CLIENT_COMBOBOX = "UKO720_S001_C025"; + String NAME_OF_CLIENT_OR_BUSINESS = "UKO720_S001_E026"; + String UPDATE_BUTTON = "UKO720_S001_B030"; + String CHOOSE_ACTION_COMBOBOX = "UKO720_S001_C011"; + + @Click(value = TASK_LIST_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskList clickTaskList(); + + @Wait(value = OK_BUTTON, until = Until.CLICKABLE) + @Click(value = OK_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskPage clickOkButton(); + + @Click(OK_BUTTON) + UKO720_S001_TaskList clickOkCancellation(); + + @Wait(value = ASSIGN_BUTTON, until = Until.VISIBLE, explicitWaitSeconds = 3) + @Click(value = ASSIGN_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskPage_Transitions clickAssign(); + + @Wait(DESCRIPTION_FIELD) + @TypeInto(value = DESCRIPTION_FIELD, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskPage fillDescription(String description); + + @Wait(value = OK_BUTTON, until = Until.VISIBLE) + @TypeInto(CANCELLATION_REASON) + UKO720_S001_TaskPage fillCancellationReason(String reason); + + @Wait(value = NOTE_WINDOW, until = Until.GONE) + @Click(value = CANCELLATION_BUTTON, andWait = @Wait(explicitWaitSeconds = 5)) + UKO720_S001_TaskPage clickCancellation(); + + @Click(value = TASK_TREE_BUTTON_XPATH, by = Lookup.XPATH) + UKO720_S001_TaskPage clickTaskTree(); + + @Click(value = SPECIFIC_ATTRIBUTES) + UKO720_S001_TaskPage clickSpecificAttributes(); + + @Click(value = CREATE_SUBTASK_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskPage createSubtask(); + + @Click(value = SOLUTION_BUTTON, by = Lookup.XPATH) + UKO720_S001_TaskPage clickSolution(); + + @Click(value = TASK_TYPE_SUBTASK_RADIO) + UKO720_S001_TaskPage clickTaskTypeSubtask(); + + @Wait(value = NOTE_WINDOW, until = Until.VISIBLE) + @TypeInto(NOTE_WINDOW) + UKO720_S001_TaskPage fillNote(String note); + + @Wait(value = REQUEST_REASON_FIELD, until = Until.VISIBLE) + @TypeInto(value = REQUEST_REASON_FIELD, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskPage fillRequestReason(String reason); + + @Select(value = TASK_TYPE_COMBOBOX, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskPage selectTaskType(String taskType); + + @Wait(value = BIRTH_NUMBER_IN_TASK, until = Until.VISIBLE) + @TypeInto(value = BIRTH_NUMBER_IN_TASK, clear = true, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskPage fillBirthNumberInTask(String birthNumber); + + @CustomAction + default STS701_S002_ClientDetailPage clickClientDetailInfo() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> CLIENT_DETAIL_INFO_IMG, Lookup.ID); + endpoint.switchToOtherWindow(21, 2); + return null; + } + + @Wait(value = ID_OBJECT_IN_TASK_BUTTON, until = Until.VISIBLE) + @TypeInto(value = ID_OBJECT_IN_TASK_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskPage fillIdObjectInTask(String id); + + @Wait(value = ID_OM_IN_TASK_BUTTON, until = Until.VISIBLE) + @TypeInto(value = ID_OM_IN_TASK_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskPage fillIdOmInTask(String id); + + @CustomAction + default UKO720_S001_TaskPage storeIdObject() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String objectId = endpoint.getAttribute(ID_OBJECT_IN_TASK_XPATH, Lookup.XPATH, "value"); + store(ID_OBJECT_IN_TASK_KEY, objectId); + return null; + } + + @CustomAction + default STS701_S002_ClientDetailPage clickIdObjectDetailInfo() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.click(() -> ID_OBJECT_DETAIL_INFO_IMG, Lookup.ID); + endpoint.switchToOtherWindow(2, 2); + return null; + } + + @Wait(value = CATEGORY_COMBOBOX, until = Until.VISIBLE) + @Select(value = CATEGORY_COMBOBOX, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskPage selectTaskCategory(String category); + + @Wait(value = SUBCATEGORIES_COMBOBOX, until = Until.VISIBLE) + @Select(value = SUBCATEGORIES_COMBOBOX, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + UKO720_S001_TaskPage selectSubcategories(String subcategories); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Wait(value = ADD_NOTE_BUTTON, until = Until.CLICKABLE) + @Click(ADD_NOTE_BUTTON) + UKO720_S001_TaskPage clickAddNote(); + + @CheckElementContent(value = FIRST_NOTE_TEXT_XPATH, by = Lookup.XPATH) + UKO720_S001_TaskPage checkFirstNoteText(String expectedText); + + @Wait(value = SOLVE_BUTTON, until = Until.CLICKABLE) + @Click(value = SOLVE_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskPage clickSolve(); + + @CustomAction + default UKO720_S001_TaskPage scrollToPageTop() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.scrollToPageTop(); + return null; + } + + @CheckElementPresent(SOLVE_BUTTON) + UKO720_S001_TaskPage checkSolveButtonPresent(); + + @Click(value = FINISH_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskPage clickFinishTask(); + + @TypeInto(value = SOLVE_TEXT_INPUT_XPATH, by = Lookup.XPATH) + UKO720_S001_TaskPage fillSolveText(String solveText); + + @TypeInto(value = ID_TASK_INPUT) + UKO720_S001_TaskPage fillIdTaskConnect(String id); + + @Click(value = CONNECT_TASKS_BUTTON) + UKO720_S001_TaskPage clickConnectTasks(); + + @Click(value = OK_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskList clickFinishOK(); + + @Wait(value = SAVE_BUTTON, until = Until.CLICKABLE) + @Click(value = SAVE_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskPage clickSaveTask(); + + @Wait(DELEGATE_BUTTON) + @Click(value = DELEGATE_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskList clickDelegateTask(); + + @Click(value = RETURN_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskPage clickReturnTask(); + + @CustomAction + default UKO720_S001_TaskPage clickFileDownload(String downloadButton) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, Until.CLICKABLE, downloadButton); + endpoint.click(() -> downloadButton); + if (endpoint.isAlertPresent(1)) + endpoint.acceptAlert(1); + endpoint.waitForElementsToLoad(30, Lookup.CLASSNAME, Until.GONE, SharedElements.LOAD_IMG_DIV_CLASS); + return null; + } + + @Click(ADD_ATTACHMENT_BUTTON) + UKO720_S001_TaskPage clickAddAttachment(); + + @TypeInto(value = FILE_UPLOAD_INPUT, by = Lookup.CLASSNAME, andWait = @Wait(value = FILE_TITLE_INPUT, until = Until.VISIBLE)) + UKO720_S001_TaskPage fillFileUpload(String file); + + @TypeInto(value = FILE_TITLE_INPUT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE, explicitWaitSeconds = 3)) + UKO720_S001_TaskPage fillFileTitle(String fileTitle); + + @Select(value = DOCUMENT_TYPE_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskPage selectDocumentType(String documentType); + + @Click(value = SAVE_ATTACHMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskPage clickSaveAttachment(); + + @Wait(value = FIRST_ATTACHMENT_TITLE_DIV, until = Until.VISIBLE) + @CheckElementContent(FIRST_ATTACHMENT_TITLE_DIV) + UKO720_S001_TaskPage checkTitleOfFirstAttachment(String expectedTitle); + + @Click(value = SELECTION_ATTACHMENT) + UKO720_S001_TaskPage clickFirstAttachment(); + + @Click(value = HISTORY_BUTTON, by = Lookup.XPATH) + UKO720_S001_TaskPage clickHistory(); + + @Wait(value = TASK_CHANGE_CHECKBOX, until = Until.CLICKABLE) + @Click(value = TASK_CHANGE_CHECKBOX) + UKO720_S001_TaskPage clickTaskChangeCheckbox(); + + @Wait(value = TASK_CHANGE_CHECKBOX, until = Until.CLICKABLE) + @Click(value = TASK_CHANGE_CHECKBOX) + @AcceptAlert(waitSecondsForAlert = 5) + UKO720_S001_TaskPage clickTaskChangeCheckboxAndAcceptAlert(); + + @TypeInto(value = REASON_CHANGE) + UKO720_S001_TaskPage fillReason(String reasonText); + + @Click(value = FIRST_ATTACHMENT_DETAIL_IMG, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskPage clickFirstAttachmentDetail(); + + @Wait(ATTACHMENT_DETAIL_IMG) + UKO720_S001_TaskPage waitForAttachmentDetail(); + + @Click(value = SOLVE_TAB_XPATH, by = Lookup.XPATH, andWait = @Wait(value = ADD_ATTACHMENT_BUTTON, until = Until.VISIBLE)) + UKO720_S001_TaskPage clickSolveTab(); + + @Wait(value = LIST_OF_TASKS_XPATH, until = Until.VISIBLE, by = Lookup.XPATH) + @Click(value = LIST_OF_TASKS_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskList clickListOfTasks(); + + @Wait(value = ID_OF_TASK, until = Until.VISIBLE) + @CheckElementPresent(ID_OF_TASK) + UKO720_S001_TaskPage checkPresenceOfTaskId(); + + @CheckElementPresent(DELEGATE_BUTTON) + UKO720_S001_TaskPage checkDelegateTaskBtn(); + + @CheckElementPresent(UPDATE_BUTTON) + UKO720_S001_TaskPage checkUpdateBtn(); + + @CustomAction + default UKO720_S001_TaskPage checkDelegateTaskBtnNotEnabled() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertFalse(endpoint.isElementEnabled(DELEGATE_BUTTON), "The delegate task button " + DELEGATE_BUTTON + " is enabled"); + return null; + } + + @Wait(value = PREFERRED_CANAL_COMBOBOX, until = Until.VISIBLE) + @Select(PREFERRED_CANAL_COMBOBOX) + UKO720_S001_TaskPage selectPreferredCanal(String preferredCanal); + + @CustomAction + default UKO720_S001_TaskPage checkComboboxValue(String comboboxName, String expectedValue) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String actualValue = endpoint.getAttribute(comboboxName, "value"); + Assertions.assertEquals(expectedValue, actualValue, "Expected value for " + comboboxName + ": " + expectedValue + ", but found: " + actualValue); + return null; + } + + @CustomAction + default UKO720_S001_TaskPage findUserAndSelectSolver() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, SOLVER_COMBOBOX); + String userSSO = endpoint.getAttribute(SSO_OF_LOGGED_USER, Lookup.XPATH, "value"); + endpoint.selectByValue(SOLVER_COMBOBOX, userSSO); + return null; + } + + @CheckElementContent(BUSINESS_COMBOBOX) + UKO720_S001_TaskPage checkBusiness(String business); + + @CheckElementContent(CANAL_OF_TASK_COMBOBOX) + UKO720_S001_TaskPage checkCanalOfTask(String canalOfTask); + + @CustomAction + default UKO720_S001_TaskPage checkRcClientAndType(String expectedBirthNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, BIRTH_NUMBER_IN_TASK, ID_TYPE_COMBOBOX); + Assertions.assertEquals(expectedBirthNumber, endpoint.getAttribute(BIRTH_NUMBER_IN_TASK, "value")); + Assertions.assertEquals("1", endpoint.getAttribute(ID_TYPE_COMBOBOX, "value")); + return null; + } + + @CustomAction + default UKO720_S001_TaskPage checkNameOfTask(String expectedName) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(expectedName, endpoint.getAttribute(NAME_OF_TASK_TEXTBOX, "value")); + return null; + } + + @TypeInto(value = NAME_OF_TASK_TEXTBOX, clear = true) + UKO720_S001_TaskPage fillNameOfTask(String name); + + @CustomAction + default UKO720_S001_TaskPage checkDescriptionSolverEmailAndSolver(String expectedBirthNumber, String expectedEmail) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, BIRTH_NUMBER_IN_TASK, SOLVER_COMBOBOX, CLIENTS_EMAIL_TEXTBOX, PREFERRED_CANAL_COMBOBOX); + String ssoOfUser = endpoint.getAttribute(SSO_OF_LOGGED_USER, Lookup.XPATH, "value"); + Assertions.assertEquals(expectedBirthNumber, endpoint.getAttribute(BIRTH_NUMBER_IN_TASK, "value")); + Assertions.assertEquals(ssoOfUser, endpoint.getAttribute(SOLVER_COMBOBOX, "value")); + Assertions.assertEquals(expectedEmail, endpoint.getAttribute(CLIENTS_EMAIL_TEXTBOX, "value")); + Assertions.assertEquals("email", endpoint.getAttribute(PREFERRED_CANAL_COMBOBOX, "value")); + return null; + } + + @Click(FINISH_BUTTON) + @AcceptAlert(waitSecondsForAlert = 10, expectedAlertText = "Není vytvořena odpověď pro klienta, opravdu chcete dokončit úkol?") + UKO720_S001_TaskPage clickFinishAndAcceptAnswerAlert(); + + @CustomAction + default UKO720_S001_TaskPage checkStatusLabelContent(String expectedStatusText) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + String idOfTask = endpoint.getText(ID_OF_TASK); + String fullText = endpoint.getText(STATUS_LABEL); + String textWithoutTime = fullText.replaceFirst("^\\d{2}:\\d{2}:\\d{2}", ""); + Assertions.assertTrue(textWithoutTime.contains(idOfTask + expectedStatusText)); + return null; + } + + @Wait(value = ID_OF_TASK, until = Until.VISIBLE) + @StoreElementContent(storeKey = TASK_ID_KEY, value = ID_OF_TASK) + UKO720_S001_TaskPage storeIdOfTask(); + + // explicitWait waits for the JavaScript (onexit) function of UFO OPS, which blocks saving the email. + @Wait(CLIENTS_EMAIL_TEXTBOX) + @TypeInto(value = CLIENTS_EMAIL_TEXTBOX, clear = true, andWait = @Wait(explicitWaitSeconds = 1)) + UKO720_S001_TaskPage typeIntoClientsEmail(String email); + + @CustomAction + default UKO720_S001_TaskPage checkDateInLabel(String elementWithDate, Lookup lookup) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + LocalDate date = LocalDate.parse(endpoint.getText(elementWithDate, lookup), DateTimeFormatter.ofPattern("d.M.yyyy H:mm:ss")); + Assertions.assertEquals(date, LocalDate.now(), "Times are not the same"); + return null; + } + + @Wait(FIRST_DATE_IN_HISTORY) + @CheckElementsPresent(value = { + @CheckElementPresent(FIRST_DATE_IN_HISTORY), + @CheckElementPresent(FIRST_STATE_IN_HISTORY), + @CheckElementPresent(FIRST_SOLVER_IN_HISTORY), + @CheckElementPresent(FIRST_SOLVING_GROUP_IN_HISTORY), + @CheckElementPresent(FIRST_USER_IN_HISTORY)}) + UKO720_S001_TaskPage checkHistoryOfTask(); + + @TypeInto(ID_OF_CLIENT) + UKO720_S001_TaskPage fillIdOfClient(String cif); + + @Wait(NUMBER_OF_CARD_ACCOUNT_CREDIT_TEXTDIV) + @TypeInto(value = NUMBER_OF_CARD_ACCOUNT_CREDIT_TEXTDIV, clear = true, andWait = @Wait(explicitWaitSeconds = 1)) + UKO720_S001_TaskPage fillNumberOfCard(String number); + + @Select(CLIENT_COMBOBOX) + UKO720_S001_TaskPage selectClient(String client); + + @TypeInto(value = NAME_OF_CLIENT_OR_BUSINESS, andWait = @Wait(explicitWaitSeconds = 1)) + UKO720_S001_TaskPage fillClientOrBusinessName(String name); + + @Wait(value = CHOOSE_ACTION_COMBOBOX, until = Until.VISIBLE) + @Select(CHOOSE_ACTION_COMBOBOX) + UKO720_S001_TaskDetail selectChooseAction(String action); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskPage_Transitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskPage_Transitions.java new file mode 100644 index 0000000..97f8baa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO720_S001_TaskPage_Transitions.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.ufoOperations.sendingInformationsToClient.STI701_S002_SendingInformationsToClient; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface UKO720_S001_TaskPage_Transitions extends WebFlow { + + UKO720_S001_TaskList onTaskList(); + + UKO720_S001_TaskDetail onTaskDetail(); + + UKO720_S001_TaskPage onTaskPage(); + + FKD701_S001_FraudRisk onFraudRisk(); + + STI701_S002_SendingInformationsToClient onSendingInformationsToClient(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO729_S001_AdministrationPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO729_S001_AdministrationPage.java new file mode 100644 index 0000000..939a8fa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO729_S001_AdministrationPage.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO729_S001_AdministrationPage.ALL_GROUPS_RADIO; + +@Wait(value = ALL_GROUPS_RADIO, until = Until.VISIBLE) +@Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) +public interface UKO729_S001_AdministrationPage extends WebFlow { + + String ALL_GROUPS_RADIO = "UKO729_S001_R003"; + String USER_BUTTON = "//button[@title='UKO729_S001_I002 [UKO729_S001_I002]']"; + String DETAIL_GROUPS_BUTTON = "//td[text()='Admin úkolovníku']/..//img"; + String USER_AGATA_BUTTON_XPATH = "//div[text()='212627342']/../..//img"; + String SSO_INPUT = "UKO729_S001_E003"; + String SEARCH_SSO_BUTTON = "UKO729_S001_P007"; + String GROUPS_MANAGER_TABLE_XPATH = "//table[@id='UKO729_S001_G002_UfoTable']//td"; + String GROUPS_INCLUDED_TABLE_XPATH = "//table[@id='UKO729_S001_G004_UfoTable']//td"; + + @Click(value = ALL_GROUPS_RADIO, jsClick = true) + UKO729_S001_AdministrationPage clickAllGroups(); + + @Click(value = USER_BUTTON, by = Lookup.XPATH) + UKO729_S001_AdministrationPage clickUser(); + + @Click(value = DETAIL_GROUPS_BUTTON, by = Lookup.XPATH) + UKO729_S001_AdministrationPage clickDetailGroups(); + + @Click(value = USER_AGATA_BUTTON_XPATH, by = Lookup.XPATH, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO729_S001_AdministrationPage clickUserAgata(); + + @TypeInto(value = SSO_INPUT, clear = true) + UKO729_S001_AdministrationPage fillSso(String sso); + + @Click(value = SEARCH_SSO_BUTTON, andWait = @Wait(value = SharedElements.LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO729_S001_AdministrationPage clickSearchSso(); + + @CheckElementPresent(value = GROUPS_MANAGER_TABLE_XPATH, by = Lookup.XPATH) + UKO729_S001_AdministrationPage checkGroupsManagerTableNotEmpty(); + + @CheckElementPresent(value = GROUPS_INCLUDED_TABLE_XPATH, by = Lookup.XPATH) + UKO729_S001_AdministrationPage checkGroupsIncludedTableNotEmpty(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO735_S001_ClaimsAndComplaints.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO735_S001_ClaimsAndComplaints.java new file mode 100644 index 0000000..91175bf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/UKO735_S001_ClaimsAndComplaints.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.support.web.*; +import cz.moneta.test.harness.context.StoreAccessor; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO735_S001_ClaimsAndComplaints.TITLE_OF_PAGE; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = TITLE_OF_PAGE, until = Until.VISIBLE) +public interface UKO735_S001_ClaimsAndComplaints extends StoreAccessor, WebFlow { + + String TITLE_OF_PAGE = "UKO735_S001_L001"; + String CATEGORY_COMBOBOX = "UKO735_S001_C001"; + String SUBCATEGORY_COMBOBOX = "UKO735_S001_C002"; + String TYPE_OF_TASK = "UKO735_S001_C003"; + String ASSIGN_BUTTON = "UKO735_S001_B001"; + String DONT_WANNA_RUSH_IT_CHECKBOX = "UKO735_S001_H001_1"; + + @Select(value = CATEGORY_COMBOBOX, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO735_S001_ClaimsAndComplaints selectCategory(int category); + + @Wait(SUBCATEGORY_COMBOBOX) + @Select(value = SUBCATEGORY_COMBOBOX, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO735_S001_ClaimsAndComplaints selectSubcategory(int subcategory); + + @Select(value = TYPE_OF_TASK, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO735_S001_ClaimsAndComplaints selectTypeOfTask(int typeOfTask); + + @Click(value = ASSIGN_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO735_S001_ClaimsAndComplaints clickAssignCategoryAndFastSolve(); + + @Click(value = ASSIGN_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + UKO720_S001_TaskPage clickAssignCategory(); + + @Click(DONT_WANNA_RUSH_IT_CHECKBOX) + @AcceptAlert(waitSecondsForAlert = 15, expectedAlertText = "Opravdu si přejete zadat tuto reklamaci/stížnost standardní cestou (prověření provede centrální tým)?") + UKO720_S001_TaskPage clickDontWannaRushIt(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ZAS701_S002_SendingOffersAndManualsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ZAS701_S002_SendingOffersAndManualsPage.java new file mode 100644 index 0000000..de0544c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ZAS701_S002_SendingOffersAndManualsPage.java @@ -0,0 +1,84 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface ZAS701_S002_SendingOffersAndManualsPage extends WebFlow, StoreAccessor { + + String BACK_DART_BUTTON = "ZAS701_S002_P007"; + String SEARCH_BUTTON = "ZAS701_S002_B002"; + String SECOND_ROW_SELECTED_DOCUMENTS_FOR_SENDING_ID = "ufo-et-ZAS701_S002_F001_row_2"; + String SELECTED_DOCUMENTS_FOR_SENDING_LABEL = "ZAS701_S002_L025"; + String SEND_BUTTON = "ZAS701_S002_B001"; + String CLIENT_SEGMENT_COMBOBOX = "ZAS701_S002_C001"; + String PRODUCT_GROUP_COMBOBOX = "ZAS701_S002_C003"; + String DOCUMENT_DETAIL_BUTTON = "ZAS701_S002_P001-1"; + String ADD_FIRST_DOCUMENT_BUTTON = "ZAS701_S002_P003-1"; + String ADD_SECOND_DOCUMENT_BUTTON = "ZAS701_S002_P003-2"; + String EMAIL_INPUT = "ZAS701_S002_E001"; + String CONTACT_FOR_CLIENT_COMBOBOX = "ZAS701_S002_C004"; + + @Wait(value = SEARCH_BUTTON, until = Until.VISIBLE) + @CheckElementPresent(SEARCH_BUTTON) + ZAS701_S002_SendingOffersAndManualsPage assertOffers(); + + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + + @Wait(value = SECOND_ROW_SELECTED_DOCUMENTS_FOR_SENDING_ID, until = Until.VISIBLE) + @CheckElementPresent(SECOND_ROW_SELECTED_DOCUMENTS_FOR_SENDING_ID) + ZAS701_S002_SendingOffersAndManualsPage checkRecordsOfDocumentsForSending(); + + @Wait(value = SELECTED_DOCUMENTS_FOR_SENDING_LABEL, until = Until.VISIBLE) + @CheckElementContent(SELECTED_DOCUMENTS_FOR_SENDING_LABEL) + ZAS701_S002_SendingOffersAndManualsPage checkSelectedDocumentsForSending(String label); + + @Wait(value = SEND_BUTTON, until = Until.VISIBLE) + @CheckElementPresent(SEND_BUTTON) + ZAS701_S002_SendingOffersAndManualsPage checkSendButton(); + + @Select(value = CLIENT_SEGMENT_COMBOBOX, selectByOrder = true) + ZAS701_S002_SendingOffersAndManualsPage selectSegmentOfClient(int orderValue); + + @Select(PRODUCT_GROUP_COMBOBOX) + ZAS701_S002_SendingOffersAndManualsPage selectProductGroup(String productGroup); + + @Click(value = SEARCH_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZAS701_S002_SendingOffersAndManualsPage clickSearch(); + + @CustomAction + default ZAS701_S002_SendingOffersAndManualsPage clickDocumentDetailAndCheck() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(20, Until.CLICKABLE, DOCUMENT_DETAIL_BUTTON); + endpoint.click(() -> DOCUMENT_DETAIL_BUTTON); + endpoint.switchToOtherWindow(10, 2); + return null; + } + + @CustomAction + default ZAS701_S002_SendingOffersAndManualsPage closeDocumentWindowAndSwitchToCurrentWindow() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.closeCurrentWindow(); + endpoint.switchToOtherWindow(10, 1); + return null; + } + + @Click(value = ADD_FIRST_DOCUMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + ZAS701_S002_SendingOffersAndManualsPage clickAddFirstDocument(); + + @Click(value = ADD_SECOND_DOCUMENT_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME)) + ZAS701_S002_SendingOffersAndManualsPage clickAddSecondDocument(); + + @TypeInto(value = EMAIL_INPUT, clear = true) + ZAS701_S002_SendingOffersAndManualsPage typeIntoEmailInput(String email); + + @Select(CONTACT_FOR_CLIENT_COMBOBOX) + ZAS701_S002_SendingOffersAndManualsPage selectContactForClient(String name); + + @Click(value = SEND_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickSend(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ZKU704_S001_ChangeContactData.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ZKU704_S001_ChangeContactData.java new file mode 100644 index 0000000..8528b4d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ZKU704_S001_ChangeContactData.java @@ -0,0 +1,179 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.ZKU704_S001_ChangeContactData.PAGE_TITLE; + +@Wait(PAGE_TITLE) +public interface ZKU704_S001_ChangeContactData extends WebFlow { + + String PAGE_TITLE = "ZKU704_S001_L013"; + String ADDRESS = "ZKU704_S001_L011-1"; + String USE_ADDRESS_BUTTON = "ZKU704_S001_P002-1"; + String SAVE_ADDRESS_BUTTON = "ZKU704_S001_B001"; + String PART_ADDRESS_EDIT = "IPP702_S001_E001"; + String SEARCH_ADDRESS_BUTTON = "IPP702_S001_P002"; + String CHOOSE_ADDRESS_BUTTON = "IPP702_S001_G001-0"; + String WARNING_LABEL = "IPP702_S001_L005"; + String CLOSE_SEARCH_ADDRESS = "IPP702_S001_P001"; + String CHECK_DATA_BUTTON = "ZKU704_S001_B004"; + String USE_PRODUCT_SECOND_PLACE = "ZKU704_S001_P002-2"; + String STREET_TEXTBOX = "ZKU704_S001_E001"; + String DESCRIPTION_NUMBER_TEXTBOX = "ZKU704_S001_E002"; + String ORIENTATION_NUMBER_TEXTBOX = "ZKU704_S001_E003"; + String POSTAL_CODE_TEXTBOX = "ZKU704_S001_E004"; + String DISTRICT_NUMBER_TEXTBOX = "ZKU704_S001_E010"; + String CITY_TEXTBOX = "ZKU704_S001_E005"; + String COUNTRY_COMBOBOX = "ZKU704_S001_C001"; + String EMAIL_TEXTBOX = "ZKU704_S001_E008"; + String SAVE_EMAIL_BUTTON = "ZKU704_S001_B003"; + String CHANGE_ON_ALL_PRODUCTS_EMAIL = "ZKU704_S001_R003_1"; + String CHANGE_ON_SELECTED_PRODUCTS_EMAIL = "ZKU704_S001_R003_2"; + String EMAIL_PRODUCTS_FIRST_ROW = "ufo-et-ZKU704_S001_F003_row_1_sel"; + String EMAIL_DIV_1 = "ZKU704_S001_L046-1"; + String EMAIL_DIV_2 = "ZKU704_S001_L046-2"; + String ADDRESS_DIV_2 = "ZKU704_S001_X001-2"; + String CHANGE_ON_ALL_PRODUCTS_TELEPHONE = "ZKU704_S001_R002_1"; + String CHANGE_ON_SELECTED_PRODUCTS_TELEPHONE = "ZKU704_S001_R002_2"; + String SAVE_TELEPHONE_BUTTON = "ZKU704_S001_B002"; + String TEL_PREFIX_TEXTBOX = "ZKU704_S001_E006"; + String TELEPHONE_NUMBER_TEXTBOX = "ZKU704_S001_E007"; + String TELEPHONE_PRODUCTS_SECOND_ROW_CHECKBOX = "ufo-et-ZKU704_S001_F002_row_2_sel"; + String TELEPHONE_PRODUCTS_THIRD_ROW_CHECKBOX = "ufo-et-ZKU704_S001_F002_row_3_sel"; + String TELEPHONE_PRODUCTS_FIRST_ROW_DIV = "ZKU704_S001_L035-1"; + String TELEPHONE_PRODUCTS_SECOND_ROW_DIV = "ZKU704_S001_L035-2"; + String TELEPHONE_PRODUCTS_THIRD_ROW_DIV = "ZKU704_S001_L035-3"; + String TELEPHONE_PRODUCTS_FOURTH_ROW_DIV = "ZKU704_S001_L035-4"; + + @Wait(value = USE_ADDRESS_BUTTON, until = Until.VISIBLE) + @Click(USE_ADDRESS_BUTTON) + ZKU704_S001_ChangeContactData clickUseAddressButton(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(value = SAVE_ADDRESS_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZKU704_S001_ChangeContactData clickSaveAddress(); + + @Wait(value = CHOOSE_ADDRESS_BUTTON, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(SAVE_ADDRESS_BUTTON) + @AcceptAlert(waitSecondsForAlert = 10) + ZKU704_S001_ChangeContactData clickSaveCheckAddress(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(SEARCH_ADDRESS_BUTTON) + ZKU704_S001_ChangeContactData clickSearchAddress(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(CHOOSE_ADDRESS_BUTTON) + ZKU704_S001_ChangeContactData clickChooseAddress(); + + @CheckElementContent(WARNING_LABEL) + ZKU704_S001_ChangeContactData assertWarning(String warning); + + @Click(CLOSE_SEARCH_ADDRESS) + ZKU704_S001_ChangeContactData closeSearchAddress(); + + @Wait(value = LOAD_IMG_DIV_CLASS, until = Until.GONE, by = Lookup.CLASSNAME) + @Click(CHECK_DATA_BUTTON) + ZKU704_S001_ChangeContactDataTransitions clickCheckData(); + + @Wait(value = PART_ADDRESS_EDIT, until = Until.VISIBLE) + @TypeInto(value = PART_ADDRESS_EDIT, clear = true) + ZKU704_S001_ChangeContactData typePartAddress(String partAddress); + + @Wait(value = USE_PRODUCT_SECOND_PLACE, until = Until.VISIBLE) + @Click(value = USE_PRODUCT_SECOND_PLACE, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZKU704_S001_ChangeContactData clickUseProductOnSecondPlace(); + + @Wait(STREET_TEXTBOX) + @TypeInto(value = STREET_TEXTBOX, clear = true) + ZKU704_S001_ChangeContactData fillStreet(String street); + + @Wait(DESCRIPTION_NUMBER_TEXTBOX) + @TypeInto(value = DESCRIPTION_NUMBER_TEXTBOX, clear = true) + ZKU704_S001_ChangeContactData fillDescriptionNumber(String descriptionNumber); + + @Wait(ORIENTATION_NUMBER_TEXTBOX) + @TypeInto(value = ORIENTATION_NUMBER_TEXTBOX, clear = true) + ZKU704_S001_ChangeContactData fillOrientationNumber(String orientationNumber); + + @Wait(POSTAL_CODE_TEXTBOX) + @TypeInto(value = POSTAL_CODE_TEXTBOX, clear = true) + ZKU704_S001_ChangeContactData fillPostalCode(String postalCode); + + @Wait(DISTRICT_NUMBER_TEXTBOX) + @TypeInto(value = DISTRICT_NUMBER_TEXTBOX, clear = true) + ZKU704_S001_ChangeContactData fillDistrictNumber(String districtNumber); + + @Wait(CITY_TEXTBOX) + @TypeInto(value = CITY_TEXTBOX, clear = true) + ZKU704_S001_ChangeContactData fillCity(String city); + + @Select(COUNTRY_COMBOBOX) + ZKU704_S001_ChangeContactData selectCountry(int value); + + @TypeInto(EMAIL_TEXTBOX) + ZKU704_S001_ChangeContactData fillEmail(String email); + + @Click(value = SAVE_EMAIL_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZKU704_S001_ChangeContactData clickSaveEmail(); + + @Wait(value = CHANGE_ON_ALL_PRODUCTS_EMAIL, until = Until.VISIBLE) + @Click(value = CHANGE_ON_ALL_PRODUCTS_EMAIL, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZKU704_S001_ChangeContactData clickChangeOnAllProductsEmail(); + + @Click(value = CHANGE_ON_SELECTED_PRODUCTS_EMAIL, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZKU704_S001_ChangeContactData clickChangeOnSelectedProductsEmail(); + + @Click(value = CHANGE_ON_ALL_PRODUCTS_TELEPHONE, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZKU704_S001_ChangeContactData clickChangeOnAllProductsTelephone(); + + @Click(value = CHANGE_ON_SELECTED_PRODUCTS_TELEPHONE, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZKU704_S001_ChangeContactData clickChangeOnSelectedProductsTelephone(); + + @Click(EMAIL_PRODUCTS_FIRST_ROW) + ZKU704_S001_ChangeContactData clickEmailProductsFirstRow(); + + @CheckElementContent(EMAIL_DIV_1) + ZKU704_S001_ChangeContactData checkEmailDiv1(String email); + + @CheckElementContent(EMAIL_DIV_2) + ZKU704_S001_ChangeContactData checkEmailDiv2(String email); + + @Wait(value = ADDRESS_DIV_2, until = Until.VISIBLE) + @CheckElementContent(ADDRESS_DIV_2) + ZKU704_S001_ChangeContactData checkAddressDiv2(String address); + + @Click(value = SAVE_TELEPHONE_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + ZKU704_S001_ChangeContactData clickSaveTelephone(); + + @TypeInto(TELEPHONE_NUMBER_TEXTBOX) + ZKU704_S001_ChangeContactData fillTelephone(String email); + + @TypeInto(TEL_PREFIX_TEXTBOX) + ZKU704_S001_ChangeContactData fillTelPrefix(String email); + + @Wait(TELEPHONE_PRODUCTS_SECOND_ROW_CHECKBOX) + @Click(TELEPHONE_PRODUCTS_SECOND_ROW_CHECKBOX) + ZKU704_S001_ChangeContactData clickTelephoneSecondRowCheckbox(); + + @Wait(TELEPHONE_PRODUCTS_THIRD_ROW_CHECKBOX) + @Click(TELEPHONE_PRODUCTS_THIRD_ROW_CHECKBOX) + ZKU704_S001_ChangeContactData clickTelephoneThirdRowCheckbox(); + + @Wait(value = TELEPHONE_PRODUCTS_FIRST_ROW_DIV, until = Until.VISIBLE) + @CheckElementContent(TELEPHONE_PRODUCTS_FIRST_ROW_DIV) + ZKU704_S001_ChangeContactData checkTelephoneProductsFirstRowDiv(String number); + + @Wait(value = TELEPHONE_PRODUCTS_SECOND_ROW_DIV, until = Until.VISIBLE) + @CheckElementContent(TELEPHONE_PRODUCTS_SECOND_ROW_DIV) + ZKU704_S001_ChangeContactData checkTelephoneProductsSecondRowDiv(String number); + + @Wait(value = TELEPHONE_PRODUCTS_THIRD_ROW_DIV, until = Until.VISIBLE) + @CheckElementContent(TELEPHONE_PRODUCTS_THIRD_ROW_DIV) + ZKU704_S001_ChangeContactData checkTelephoneProductsThirdRowDiv(String number); + + @Wait(value = TELEPHONE_PRODUCTS_FOURTH_ROW_DIV, until = Until.VISIBLE) + @CheckElementContent(TELEPHONE_PRODUCTS_FOURTH_ROW_DIV) + ZKU704_S001_ChangeContactData checkTelephoneProductsFourthRowDiv(String number); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ZKU704_S001_ChangeContactDataTransitions.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ZKU704_S001_ChangeContactDataTransitions.java new file mode 100644 index 0000000..ff72163 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/ZKU704_S001_ChangeContactDataTransitions.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ZKU704_S001_ChangeContactDataTransitions extends WebFlow { + + PSP701_S004_PrintTemplatePage onPrintTemplatePage(); + + PSP701_S001_AmortizationPage onAmortizationPage(); + + STS701_S002_ClientDetailPage onClientDetailPage(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/DOK702_S001_ItemTypeSelect.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/DOK702_S001_ItemTypeSelect.java new file mode 100644 index 0000000..66b3e07 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/DOK702_S001_ItemTypeSelect.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.businessSupport; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface DOK702_S001_ItemTypeSelect extends WebFlow { + + String SEARCH_DOCUMENT_BUTTON = "DOK701_S001_P003-1"; + String SEARCH_BUTTON = "DOK702_S001_B006"; + + @Wait(value = SEARCH_DOCUMENT_BUTTON, waitSecondsForElement = 25, until = Until.VISIBLE) + @Click(SEARCH_DOCUMENT_BUTTON) + DOK702_S001_ItemTypeSelect clickSearchDocumentButton(); + + @Wait(value = SEARCH_BUTTON, waitSecondsForElement = 25, until = Until.VISIBLE) + @Click(SEARCH_BUTTON) + DOK704_S001_SearchingItems clickSearchButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/DOK704_S001_SearchingItems.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/DOK704_S001_SearchingItems.java new file mode 100644 index 0000000..472f250 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/DOK704_S001_SearchingItems.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.businessSupport; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface DOK704_S001_SearchingItems extends WebFlow { + + String DOCUMENT_DETAIL_CHECKBOX = "DOK704_S001_G001-0"; + String DETAIL_ITEM_BUTTON = "DOK704_S001_P003"; + + @Wait(value = DOCUMENT_DETAIL_CHECKBOX, explicitWaitSeconds = 5, until = Until.VISIBLE) + @Click(DOCUMENT_DETAIL_CHECKBOX) + DOK704_S001_SearchingItems clickDocumentDetailCheckBox(); + + @Wait(value = DETAIL_ITEM_BUTTON, until = Until.VISIBLE) + @Click(DETAIL_ITEM_BUTTON) + DOK705_S001_ItemDetail clickDetailItem(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/DOK705_S001_ItemDetail.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/DOK705_S001_ItemDetail.java new file mode 100644 index 0000000..6e311a7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/DOK705_S001_ItemDetail.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.businessSupport; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface DOK705_S001_ItemDetail extends WebFlow { + String DOCUMENT_DETAIL_BUTTON = "DOK705_S001_P002"; + + @Wait(value = DOCUMENT_DETAIL_BUTTON, waitSecondsForElement = 25, until = Until.VISIBLE) + @Click(DOCUMENT_DETAIL_BUTTON) + DOK705_S001_ItemDetail clickDocumentDetail(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/ROZ702_S001_BusinessSupportMainPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/ROZ702_S001_BusinessSupportMainPage.java new file mode 100644 index 0000000..a178ecc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/businessSupport/ROZ702_S001_BusinessSupportMainPage.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.businessSupport; + +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +public interface ROZ702_S001_BusinessSupportMainPage extends WebFlow { + + String E_CLIENT_BUTTON = "ROZ702_S001_I004"; + + @Wait(value = E_CLIENT_BUTTON, waitSecondsForElement = 25, until = Until.VISIBLE) + @Click(E_CLIENT_BUTTON) + DOK702_S001_ItemTypeSelect clickEClient(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/XCM701_S001_ContactForwardingPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/XCM701_S001_ContactForwardingPage.java new file mode 100644 index 0000000..633b87a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/XCM701_S001_ContactForwardingPage.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.shared.SharedElements; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels.*; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage.PAGE_LABEL; + +@Wait(PAGE_LABEL) +public interface XCM701_S001_ContactForwardingPage extends WebFlow, StoreAccessor { + + String PAGE_LABEL = "XCM701_S001_L001"; + + String BACK_DART_BUTTON = "XCM701_S001_P003"; + String CAR_BUTTON_XPATH = "//button[contains(@title, 'XCM701_S001_I004')]"; + String FUTURE_OPPORTUNITIES_XPATH = "//button[contains(@title, 'XCM701_S001_I007')]"; + String MORTGAGES_XPATH = "//button[contains(@title, 'XCM701_S001_I002')]"; + String RETENTION_BUTTON_XPATH = "//button[contains(@title, 'XCM701_S001_I005')]"; + String SME_BUTTON_XPATH = "//button[contains(@title, 'XCM701_S001_I003')]"; + String E_COMM_XPATH = "//button[contains(@title, 'XCM701_S001_I001')]"; + String SELL_XPATH = "//button[contains(@title, 'XCM701_S001_I008')]"; + String ACQUISITION_XPATH = "//button[contains(@title, 'XCM701_S001_I009')]"; + String OTHER_XPATH = "//button[contains(@title, 'XCM701_S001_I011')]"; + String CONSENT_101_ALERT_TEXT = "Přečtěte klientovi souhlas se 101: Souhlasíte s předáním Vašich údajů kolegům, aby Vás mohli kontaktovat?"; + + @Click(value = CAR_BUTTON_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XCM701_S001_CarPanel clickCar(); + + @Click(value = FUTURE_OPPORTUNITIES_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XCM701_S001_FutureOpportunitiesPanel clickFutureOpportunities(); + + @Click(value = MORTGAGES_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XCM701_S001_MortgagesPanel clickMortgages(); + + @Click(value = RETENTION_BUTTON_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XCM701_S001_RetentionPanel clickRetention(); + + @Click(value = SME_BUTTON_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XCM701_S001_SMEPanel clickSME(); + + @Click(value = E_COMM_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XCM701_S001_EcommPanel clickEcomm(); + + @Click(value = SELL_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XCM701_S001_SellPanel clickSell(); + + @Click(value = ACQUISITION_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XCM701_S001_AcquisitionPanel clickAcquisition(); + + @Click(value = OTHER_XPATH, by = Lookup.XPATH, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XCM701_S001_OtherPanel clickOther(); + + @Wait(value = BACK_DART_BUTTON, until = Until.VISIBLE) + @Click(BACK_DART_BUTTON) + STS701_S002_ClientDetailPage clickBackButton(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_AcquisitionPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_AcquisitionPanel.java new file mode 100644 index 0000000..a08ff3f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_AcquisitionPanel.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels.XCM701_S001_AcquisitionPanel.SEND_BUTTON; + +@Wait(value = SEND_BUTTON, until = Until.VISIBLE) +public interface XCM701_S001_AcquisitionPanel extends XCM701_S001_ContactForwardingPage { + + String NAME_INPUT = "XCM701_S001_E053"; + String SURNAME_INPUT = "XCM701_S001_E048"; + String CALENDAR_INPUT = "XCM701_S001_E052"; + String AVAILABILITY_TIME_HOUR_INPUT = "XCM701_S001_E046"; + String AVAILABILITY_TIME_MINUTE_INPUT = "XCM701_S001_E045"; + String TELEPHONE_INPUT = "XCM701_S001_E051"; + String NOTE_INPUT = "XCM701_S001_M009"; + String SEND_BUTTON = "XCM701_S001_B006"; + + @TypeInto(NAME_INPUT) + XCM701_S001_AcquisitionPanel fillName(String name); + + @TypeInto(SURNAME_INPUT) + XCM701_S001_AcquisitionPanel fillSurname(String surname); + + @TypeInto(CALENDAR_INPUT) + XCM701_S001_AcquisitionPanel fillDate(String date); + + @TypeInto(AVAILABILITY_TIME_HOUR_INPUT) + XCM701_S001_AcquisitionPanel fillAvailabilityTimeHour(String hour); + + @TypeInto(AVAILABILITY_TIME_MINUTE_INPUT) + XCM701_S001_AcquisitionPanel fillAvailabilityTimeMinute(String minute); + + @TypeInto(TELEPHONE_INPUT) + XCM701_S001_AcquisitionPanel fillTelephone(String telephone); + + @TypeInto(NOTE_INPUT) + XCM701_S001_AcquisitionPanel fillNote(String note); + + @Click(SEND_BUTTON) + STS701_S002_ClientDetailPage clickSend(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_CarPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_CarPanel.java new file mode 100644 index 0000000..fe0e52b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_CarPanel.java @@ -0,0 +1,80 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels.XCM701_S001_CarPanel.SEND_BUTTON; + +@Wait(value = SEND_BUTTON, until = Until.VISIBLE) +public interface XCM701_S001_CarPanel extends XCM701_S001_ContactForwardingPage { + + String NAME_INPUT = "XCM701_S001_E019"; + String SURNAME_INPUT = "XCM701_S001_E020"; + String TELEPHONE_INPUT = "XCM701_S001_E022"; + String EMAIL_INPUT = "XCM701_S001_E023"; + String NOTE_INPUT = "XCM701_S001_M002"; + String VILLAGE_INPUT = "XCM701_S001_E025"; + String CALENDAR_INPUT = "XCM701_S001_E026"; + String AVAILABILITY_TIME_INPUT = "XCM701_S001_E050"; + String CONSENT_101_CHECKBOX = "XCM701_S001_H004_1"; + String SEND_BUTTON = "XCM701_S001_B007"; + + @TypeInto(value = NOTE_INPUT, clear = true) + XCM701_S001_CarPanel fillNote(String note); + + @TypeInto(CALENDAR_INPUT) + XCM701_S001_CarPanel fillDate(String date); + + @TypeInto(TELEPHONE_INPUT) + XCM701_S001_CarPanel fillTelephone(String telephone); + + @Click(CONSENT_101_CHECKBOX) + @AcceptAlert(waitSecondsForAlert = 5, expectedAlertText = CONSENT_101_ALERT_TEXT) + XCM701_S001_CarPanel clickConsent101(); + + @Click(value = SEND_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickSend(); + + @CustomAction + default XCM701_S001_CarPanel checkName(String name) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(name, endpoint.getAttribute(NAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_CarPanel checkSurname(String surname) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(surname, endpoint.getAttribute(SURNAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_CarPanel checkEmail(String email) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(email, endpoint.getAttribute(EMAIL_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_CarPanel checkVillage(String village) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(village, endpoint.getAttribute(VILLAGE_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_CarPanel checkInactiveAvailabilityHours() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNotNull(endpoint.getAttribute(AVAILABILITY_TIME_INPUT, "readonly"), "Element" + AVAILABILITY_TIME_INPUT + "isn't readonly"); + return null; + } + + @Click(SEND_BUTTON) + @AcceptAlert(waitSecondsForAlert = 1, expectedAlertText = "Potvrďte prosím souhlas klienta se 101.") + XCM701_S001_CarPanel clickSendAndCheckExpectedErrorAlert(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_EcommPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_EcommPanel.java new file mode 100644 index 0000000..15a102d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_EcommPanel.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels.XCM701_S001_EcommPanel.SEND_BUTTON; + +@Wait(value = SEND_BUTTON, until = Until.VISIBLE) +public interface XCM701_S001_EcommPanel extends XCM701_S001_ContactForwardingPage { + + String NAME_INPUT = "XCM701_S001_E037"; + String SURNAME_INPUT = "XCM701_S001_E039"; + String REASON_OF_HANDOVER = "XCM701_S001_C001"; + String CALENDAR_INPUT = "XCM701_S001_E032"; + String AVAILABILITY_TIME_INPUT = "XCM701_S001_E041"; + String TELEPHONE_INPUT = "XCM701_S001_E033"; + String NOTE_INPUT = "XCM701_S001_M007"; + String PRIORITY_CALL_CHECKBOX = "XCM701_S001_H005_1"; + String SEND_BUTTON = "XCM701_S001_B002"; + + @Select(REASON_OF_HANDOVER) + XCM701_S001_EcommPanel selectReasonOfHandover(String reason); + + @TypeInto(CALENDAR_INPUT) + XCM701_S001_EcommPanel fillDate(String date); + + @TypeInto(value = TELEPHONE_INPUT, clear = true) + XCM701_S001_EcommPanel fillTelephone(String telephone); + + @TypeInto(NOTE_INPUT) + XCM701_S001_EcommPanel fillNote(String note); + + @Click(PRIORITY_CALL_CHECKBOX) + XCM701_S001_EcommPanel clickPriorityCall(); + + @Click(SEND_BUTTON) + STS701_S002_ClientDetailPage clickSend(); + + @CustomAction + default XCM701_S001_EcommPanel checkName(String name) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(name, endpoint.getAttribute(NAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_EcommPanel checkSurname(String surname) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(surname, endpoint.getAttribute(SURNAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_EcommPanel checkInactiveAvailabilityHours() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNotNull(endpoint.getAttribute(AVAILABILITY_TIME_INPUT,"readonly"), "Element" + AVAILABILITY_TIME_INPUT + "isn't readonly"); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_FutureOpportunitiesPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_FutureOpportunitiesPanel.java new file mode 100644 index 0000000..65140a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_FutureOpportunitiesPanel.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels.XCM701_S001_FutureOpportunitiesPanel.SEND_BUTTON; + +@Wait(value = SEND_BUTTON, until = Until.VISIBLE) +public interface XCM701_S001_FutureOpportunitiesPanel extends XCM701_S001_ContactForwardingPage { + + String INTEREST_IN_SELECT = "XCM701_S001_C009"; + String CALENDAR_INPUT = "XCM701_S001_E024"; + String NOTE_INPUT = "XCM701_S001_M006"; + String SEND_BUTTON = "XCM701_S001_B004"; + + @Select(INTEREST_IN_SELECT) + XCM701_S001_FutureOpportunitiesPanel selectInterestIn(String interestIn); + + @TypeInto(CALENDAR_INPUT) + XCM701_S001_FutureOpportunitiesPanel fillDate(String date); + + @TypeInto(NOTE_INPUT) + XCM701_S001_FutureOpportunitiesPanel fillNote(String note); + + @Click(SEND_BUTTON) + STS701_S002_ClientDetailPage clickSend(); + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_MortgagesPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_MortgagesPanel.java new file mode 100644 index 0000000..e071f1c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_MortgagesPanel.java @@ -0,0 +1,96 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels.XCM701_S001_MortgagesPanel.SEND_BUTTON; +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +@Wait(value = SEND_BUTTON, until = Until.VISIBLE) +public interface XCM701_S001_MortgagesPanel extends XCM701_S001_ContactForwardingPage { + + String NAME_INPUT = "XCM701_S001_E001"; + String SURNAME_INPUT = "XCM701_S001_E002"; + String BIRTH_NUMBER_INPUT = "XCM701_S001_E029"; + String PHONE_INPUT = "XCM701_S001_E004"; + String EMAIL_INPUT = "XCM701_S001_E005"; + String NOTE_INPUT = "XCM701_S001_M003"; + String VILLAGE_INPUT = "XCM701_S001_E007"; + String CALENDAR_INPUT = "XCM701_S001_E008"; + String AVAILABILITY_TIME_HOUR_INPUT = "XCM701_S001_E069"; + String AVAILABILITY_TIME_MINUTE_INPUT = "XCM701_S001_E072"; + String CONTACT_SOURCE_SELECT = "XCM701_S001_C003"; + String AMOUNT_INPUT = "XCM701_S001_E006"; + String CONSENT_101_CHECKBOX = "XCM701_S001_H001_1"; + String SEND_BUTTON = "XCM701_S001_B001"; + + @TypeInto(NOTE_INPUT) + XCM701_S001_MortgagesPanel fillNote(String note); + + @TypeInto(CALENDAR_INPUT) + XCM701_S001_MortgagesPanel fillDate(String date); + + @TypeInto(AVAILABILITY_TIME_HOUR_INPUT) + XCM701_S001_MortgagesPanel fillAvailabilityTimeHour(String hour); + + @TypeInto(AVAILABILITY_TIME_MINUTE_INPUT) + XCM701_S001_MortgagesPanel fillAvailabilityTimeMinute(String minute); + + @Select(CONTACT_SOURCE_SELECT) + XCM701_S001_MortgagesPanel selectContactSource(String source); + + @TypeInto(AMOUNT_INPUT) + XCM701_S001_MortgagesPanel fillAmount(String amount); + + @Click(CONSENT_101_CHECKBOX) + @AcceptAlert(waitSecondsForAlert = 5, expectedAlertText = CONSENT_101_ALERT_TEXT) + XCM701_S001_MortgagesPanel clickConsent101(); + + @Click(value = SEND_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickSend(); + + @CustomAction + default XCM701_S001_MortgagesPanel checkName(String name) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(name, endpoint.getAttribute(NAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_MortgagesPanel checkSurname(String surname) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(surname, endpoint.getAttribute(SURNAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_MortgagesPanel checkBirthNumber(String birthNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(birthNumber, endpoint.getAttribute(BIRTH_NUMBER_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_MortgagesPanel checkPhone(String phone) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(phone, endpoint.getAttribute(PHONE_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_MortgagesPanel checkEmail(String email) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(email, endpoint.getAttribute(EMAIL_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_MortgagesPanel checkVillage(String village) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(village, endpoint.getAttribute(VILLAGE_INPUT, "value")); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_OtherPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_OtherPanel.java new file mode 100644 index 0000000..306b102 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_OtherPanel.java @@ -0,0 +1,113 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels.XCM701_S001_OtherPanel.SEND_BUTTON; + +@Wait(value = SEND_BUTTON, until = Until.VISIBLE) +public interface XCM701_S001_OtherPanel extends XCM701_S001_ContactForwardingPage { + + String CAMPAIGN_NAME_SELECT = "XCM701_S001_C015"; + String BIRTH_NUMBER_INPUT = "XCM701_S001_E058"; + String NAME_INPUT = "XCM701_S001_E060"; + String SURNAME_INPUT = "XCM701_S001_E061"; + String MOBILE_INPUT = "XCM701_S001_E063"; + String EMAIL_INPUT = "XCM701_S001_E065"; + String VILLAGE_INPUT = "XCM701_S001_E068"; + String NOTE_INPUT = "XCM701_S001_M010"; + String AVAILABILITY_TIME_HOUR_INPUT = "XCM701_S001_E049"; + String AVAILABILITY_TIME_MINUTE_INPUT = "XCM701_S001_E047"; + String SOURCE_OF_CONTACT_SELECT = "XCM701_S001_C020"; + String PRODUCT_TO_CANCEL_SELECT = "XCM701_S001_C021"; + String TYPE_OF_WRITTEN_REQUEST_SELECT = "XCM701_S001_C019"; + String REASON_OF_HANDOVER_SELECT = "XCM701_S001_C022"; + String INTEREST_OF_SELECT = "XCM701_S001_C023"; + String CONSENT_101_CHECKBOX = "XCM701_S001_H011_1"; + String SEND_SMS_AND_DOCUMENTS_CHECKBOX = "XCM701_S001_H009_1"; + String SEND_BUTTON = "XCM701_S001_B010"; + + @Select(value = CAMPAIGN_NAME_SELECT, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + XCM701_S001_OtherPanel selectNameOfCampaign(String name); + + @TypeInto(NOTE_INPUT) + XCM701_S001_OtherPanel fillNote(String note); + + @TypeInto(AVAILABILITY_TIME_HOUR_INPUT) + XCM701_S001_OtherPanel fillAvailabilityTimeHour(String hour); + + @TypeInto(AVAILABILITY_TIME_MINUTE_INPUT) + XCM701_S001_OtherPanel fillAvailabilityTimeMinute(String minute); + + @Select(SOURCE_OF_CONTACT_SELECT) + XCM701_S001_OtherPanel selectSourceOfContact(String source); + + @Select(PRODUCT_TO_CANCEL_SELECT) + XCM701_S001_OtherPanel selectProductToCancel(String product); + + @Select(TYPE_OF_WRITTEN_REQUEST_SELECT) + XCM701_S001_OtherPanel selectTypeOfWrittenRequest(String type); + + @Select(REASON_OF_HANDOVER_SELECT) + XCM701_S001_OtherPanel selectReasonOfHandover(String reason); + + @Select(INTEREST_OF_SELECT) + XCM701_S001_OtherPanel selectInterestOf(String interest); + + @Click(CONSENT_101_CHECKBOX) + @AcceptAlert(waitSecondsForAlert = 5, expectedAlertText = CONSENT_101_ALERT_TEXT) + XCM701_S001_OtherPanel clickConsent101(); + + @Click(SEND_SMS_AND_DOCUMENTS_CHECKBOX) + XCM701_S001_OtherPanel clickSendSmsAndDocumentations(); + + @Click(value = SEND_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickSend(); + + @CustomAction + default XCM701_S001_OtherPanel checkBirthNumber(String number) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + endpoint.waitForElementsToLoad(5, Until.VISIBLE, BIRTH_NUMBER_INPUT); + Assertions.assertEquals(number, endpoint.getAttribute(BIRTH_NUMBER_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_OtherPanel checkName(String name) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(name, endpoint.getAttribute(NAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_OtherPanel checkSurname(String surname) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(surname, endpoint.getAttribute(SURNAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_OtherPanel checkMobile(String mobile) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(mobile, endpoint.getAttribute(MOBILE_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_OtherPanel checkEmail(String email) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(email, endpoint.getAttribute(EMAIL_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_OtherPanel checkVillage(String village) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(village, endpoint.getAttribute(VILLAGE_INPUT, "value")); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_RetentionPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_RetentionPanel.java new file mode 100644 index 0000000..80b46fd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_RetentionPanel.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels.XCM701_S001_RetentionPanel.SEND_BUTTON; + +@Wait(value = SEND_BUTTON, until = Until.VISIBLE) +public interface XCM701_S001_RetentionPanel extends XCM701_S001_ContactForwardingPage { + + String PRODUCT_SELECT = "XCM701_S001_C002"; + String CALENDAR_INPUT = "XCM701_S001_E038"; + String AVAILABILITY_TIME_HOUR_INPUT = "XCM701_S001_E042"; + String AVAILABILITY_TIME_MINUTE_INPUT = "XCM701_S001_E071"; + String TELEPHONE_INPUT = "XCM701_S001_E035"; + String NOTE_INPUT = "XCM701_S001_M005"; + String CALL_AS_PRIORITY_CHECKBOX = "XCM701_S001_H006_1"; + String SEND_BUTTON = "XCM701_S001_B009"; + + @Select(PRODUCT_SELECT) + XCM701_S001_RetentionPanel selectProduct(String product); + + @TypeInto(CALENDAR_INPUT) + XCM701_S001_RetentionPanel fillDate(String date); + + @TypeInto(AVAILABILITY_TIME_HOUR_INPUT) + XCM701_S001_RetentionPanel fillAvailabilityTimeHour(String hour); + + @TypeInto(AVAILABILITY_TIME_MINUTE_INPUT) + XCM701_S001_RetentionPanel fillAvailabilityTimeMinute(String minute); + + @TypeInto(value = TELEPHONE_INPUT, clear = true) + XCM701_S001_RetentionPanel fillTelephone(String telephone); + + @TypeInto(NOTE_INPUT) + XCM701_S001_RetentionPanel fillNote(String note); + + @Click(CALL_AS_PRIORITY_CHECKBOX) + XCM701_S001_RetentionPanel clickCallAsPriority(); + + @Click(value = SEND_BUTTON, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STS701_S002_ClientDetailPage clickSend(); + + @CheckElementPresent(SEND_BUTTON) + XCM701_S001_RetentionPanel checkSendButton(); +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_SMEPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_SMEPanel.java new file mode 100644 index 0000000..00cd9be --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_SMEPanel.java @@ -0,0 +1,107 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels.XCM701_S001_SMEPanel.SEND_BUTTON; + +@Wait(value = SEND_BUTTON, until = Until.VISIBLE) +public interface XCM701_S001_SMEPanel extends XCM701_S001_ContactForwardingPage { + + String ICO_INPUT = "XCM701_S001_E009"; + String NAME_INPUT = "XCM701_S001_E011"; + String SURNAME_INPUT = "XCM701_S001_E012"; + String NAME_OF_COMPANY_INPUT = "XCM701_S001_E010"; + String MOBILE_INPUT = "XCM701_S001_E015"; + String EMAIL_INPUT = "XCM701_S001_E013"; + String INTEREST_IN_SELECT = "XCM701_S001_C008"; + String NOTE_INPUT = "XCM701_S001_M004"; + String VILLAGE_INPUT = "XCM701_S001_E016"; + String CALENDAR_INPUT = "XCM701_S001_E017"; + String AVAILABILITY_TIME_INPUT = "XCM701_S001_E070"; + String CONTACT_SOURCE_SELECT = "XCM701_S001_C007"; + String SEND_SMS_AND_DOCUMENTS_CHECKBOX = "XCM701_S001_H003_1"; + String CONSENT_101_CHECKBOX = "XCM701_S001_H002_1"; + String SEND_BUTTON = "XCM701_S001_B005"; + + @Select(INTEREST_IN_SELECT) + XCM701_S001_SMEPanel selectInterestIn(String interestIn); + + @Select(CONTACT_SOURCE_SELECT) + XCM701_S001_SMEPanel selectContactSource(String contactSource); + + @TypeInto(NOTE_INPUT) + XCM701_S001_SMEPanel fillNote(String note); + + @TypeInto(CALENDAR_INPUT) + XCM701_S001_SMEPanel fillDate(String date); + + @Click(SEND_SMS_AND_DOCUMENTS_CHECKBOX) + XCM701_S001_SMEPanel clickSendSMSAndDocuments(); + + @Click(CONSENT_101_CHECKBOX) + @AcceptAlert(waitSecondsForAlert = 5, expectedAlertText = "Přečtěte klientovi souhlas se 101: Souhlasíte s předáním Vašich údajů kolegům, aby Vás mohli kontaktovat?") + XCM701_S001_SMEPanel clickConsent101(); + + @Click(SEND_BUTTON) + STS701_S002_ClientDetailPage clickSend(); + + @CustomAction + default XCM701_S001_SMEPanel checkActiveIco() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertTrue(endpoint.isElementEnabled(ICO_INPUT)); + return null; + } + + @CustomAction + default XCM701_S001_SMEPanel checkName(String name) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(name, endpoint.getAttribute(NAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_SMEPanel checkSurname(String surname) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(surname, endpoint.getAttribute(SURNAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_SMEPanel checkNameOfCompany(String nameOfCompany) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(nameOfCompany, endpoint.getAttribute(NAME_OF_COMPANY_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_SMEPanel checkMobile(String mobile) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(mobile, endpoint.getAttribute(MOBILE_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_SMEPanel checkEmail(String email) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(email, endpoint.getAttribute(EMAIL_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_SMEPanel checkVillage(String village) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(village, endpoint.getAttribute(VILLAGE_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_SMEPanel checkInactiveAvailabilityHours() { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertNotNull(endpoint.getAttribute(AVAILABILITY_TIME_INPUT,"readonly"), "Element" + AVAILABILITY_TIME_INPUT + "isn't readonly"); + return null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_SellPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_SellPanel.java new file mode 100644 index 0000000..48f562a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/contactForwarding/panels/XCM701_S001_SellPanel.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels; + +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.panels.XCM701_S001_SellPanel.SEND_BUTTON; + +@Wait(value = SEND_BUTTON, until = Until.VISIBLE) +public interface XCM701_S001_SellPanel extends XCM701_S001_ContactForwardingPage { + + String NAME_INPUT = "XCM701_S001_E054"; + String SURNAME_INPUT = "XCM701_S001_E055"; + String BIRTH_NUMBER_INPUT = "XCM701_S001_E079"; + String CALENDAR_INPUT = "XCM701_S001_E034"; + String AVAILABILITY_TIME_HOUR_INPUT = "XCM701_S001_E044"; + String AVAILABILITY_TIME_MINUTE_INPUT = "XCM701_S001_E043"; + String TELEPHONE_INPUT = "XCM701_S001_E036"; + String NOTE_INPUT = "XCM701_S001_M008"; + String SEND_BUTTON = "XCM701_S001_B003"; + + @TypeInto(CALENDAR_INPUT) + XCM701_S001_SellPanel fillDate(String date); + + @TypeInto(AVAILABILITY_TIME_HOUR_INPUT) + XCM701_S001_SellPanel fillAvailabilityTimeHour(String hour); + + @TypeInto(AVAILABILITY_TIME_MINUTE_INPUT) + XCM701_S001_SellPanel fillAvailabilityTimeMinute(String minute); + + @TypeInto(value = TELEPHONE_INPUT, clear = true) + XCM701_S001_SellPanel fillTelephone(String telephone); + + @TypeInto(NOTE_INPUT) + XCM701_S001_SellPanel fillNote(String note); + + @Click(SEND_BUTTON) + STS701_S002_ClientDetailPage clickSend(); + + @CustomAction + default XCM701_S001_SellPanel checkName(String name) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(name, endpoint.getAttribute(NAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_SellPanel checkSurname(String surname) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(surname, endpoint.getAttribute(SURNAME_INPUT, "value")); + return null; + } + + @CustomAction + default XCM701_S001_SellPanel checkBirthNumber(String birthNumber) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(birthNumber, endpoint.getAttribute(BIRTH_NUMBER_INPUT, "value")); + return null; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/sendingInformationsToClient/STI701_S002_EmailPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/sendingInformationsToClient/STI701_S002_EmailPanel.java new file mode 100644 index 0000000..bbde015 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/sendingInformationsToClient/STI701_S002_EmailPanel.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.sendingInformationsToClient; + +import cz.moneta.test.dsl.ufo.operations.ufoOperations.HUS701_S001_WarningPage; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; + +public interface STI701_S002_EmailPanel extends StoreAccessor, WebFlow { + + String SENDING_FINAL_STATEMENT_RADIO = "ufo-et-STI701_S002_F002_row_5_sel"; + String NAME_OF_CLIENT_INPUT = "STI701_S002_E042"; + String SALUTATION_COMBOBOX = "STI701_S002_C003"; + String INFLECT_CLIENT_NAME_INPUT = "STI701_S002_E001"; + String TASK_ID_INPUT = "STI701_S002_E002"; + String EMAIL_ADDRESS_INPUT = "STI701_S002_E004"; + String MONETA_MONEY_BANK_RADIO = "STI701_S002_R002_1"; + String FIST_TASK_FILE_CHECKBOX = "STI701_S002_G003-0"; + String SEND_EMAIL_BUTTON = "STI701_S002_B002"; + + @Click(value = SENDING_FINAL_STATEMENT_RADIO, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STI701_S002_EmailPanel clickSendingFinalStatement(); + + @CustomAction + default STI701_S002_EmailPanel checkClientName(String name) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(name, endpoint.getAttribute(NAME_OF_CLIENT_INPUT, "value")); + return null; + } + + @Select(SALUTATION_COMBOBOX) + STI701_S002_EmailPanel selectSalutation(String salutation); + + @TypeInto(INFLECT_CLIENT_NAME_INPUT) + STI701_S002_EmailPanel fillInflectClientName(String inflection); + + @CustomAction + default STI701_S002_EmailPanel checkOverwrittenTaskId(String task_id) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(task_id, endpoint.getAttribute(TASK_ID_INPUT, "value")); + return null; + } + + @CustomAction + default STI701_S002_EmailPanel checkEmailAddress(String email) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(email, endpoint.getAttribute(EMAIL_ADDRESS_INPUT, "value")); + return null; + } + + @Click(MONETA_MONEY_BANK_RADIO) + STI701_S002_EmailPanel clickMMB(); + + @Click(FIST_TASK_FILE_CHECKBOX) + STI701_S002_EmailPanel clickTaskFile(); + + @Click(SEND_EMAIL_BUTTON) + HUS701_S001_WarningPage clickSendEmail(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/sendingInformationsToClient/STI701_S002_PostPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/sendingInformationsToClient/STI701_S002_PostPanel.java new file mode 100644 index 0000000..e59c12f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/sendingInformationsToClient/STI701_S002_PostPanel.java @@ -0,0 +1,74 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.sendingInformationsToClient; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.*; +import org.junit.jupiter.api.Assertions; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.dsl.ufo.operations.shared.SharedElements.LOAD_IMG_DIV_CLASS; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskPage.TASK_ID_KEY; + +public interface STI701_S002_PostPanel extends StoreAccessor, WebFlow { + + String STATEMENT_TO_REQUIREMENT_COMPOSING_ANSWER = "ufo-et-STI701_S002_F003_row_8_sel"; + String SALUTATION_COMBOBOX_RIGHT = "STI701_S002_C006"; + String SALUTATION_COMBOBOX_LEFT = "STI701_S002_C005"; + String CLIENT_NAME_INPUT = "STI701_S002_E014"; + String STREET_DESC_NO_INPUT = "STI701_S002_E015"; + String CITY_INPUT = "STI701_S002_E017"; + String POSTAL_CODE_INPUT = "STI701_S002_E016"; + String INFLECT_CLIENT_NAME_INPUT = "STI701_S002_E009"; + String TASK_ID_INPUT = "STI701_S002_E010"; + String DATE_OF_ACCEPTANCE_REQUIREMENT_INPUT = "STI701_S002_E011"; + String MM_BANK_RADIO = "STI701_S002_R003_1"; + + @Click(value = STATEMENT_TO_REQUIREMENT_COMPOSING_ANSWER, andWait = @Wait(value = LOAD_IMG_DIV_CLASS, by = Lookup.CLASSNAME, until = Until.GONE)) + STI701_S002_PostPanel clickStatementToRequirement(); + + @Select(SALUTATION_COMBOBOX_RIGHT) + STI701_S002_PostPanel selectSalutationRight(String salutation); + + @Select(SALUTATION_COMBOBOX_LEFT) + STI701_S002_PostPanel selectSalutationLeft(String salutation); + + @CustomAction + default STI701_S002_PostPanel checkClientName(String name) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(endpoint.getAttribute(CLIENT_NAME_INPUT, "value"), name); + return null; + } + + @TypeInto(STREET_DESC_NO_INPUT) + STI701_S002_PostPanel fillStreetWithDescNo(String street); + + @TypeInto(CITY_INPUT) + STI701_S002_PostPanel fillCity(String city); + + @TypeInto(POSTAL_CODE_INPUT) + STI701_S002_PostPanel fillPostalCode(String postalCode); + + @TypeInto(INFLECT_CLIENT_NAME_INPUT) + STI701_S002_PostPanel fillInflectClientName(String inflection); + + @CustomAction + default STI701_S002_PostPanel checkOverwrittenTaskId(Harness harness) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + Assertions.assertEquals(harness.get(TASK_ID_KEY), endpoint.getAttribute(TASK_ID_INPUT, "value")); + return null; + } + + @CustomAction + default STI701_S002_PostPanel checkDateOfAcceptanceRequirement(String elementWithDate) { + UfoEndpoint endpoint = getEndpoint(UfoEndpoint.class); + LocalDate date = LocalDate.parse(endpoint.getAttribute(elementWithDate, "value"), DateTimeFormatter.ofPattern("d.M.yyyy")); + Assertions.assertEquals(date, LocalDate.now(), "Times are not the same"); + return null; + } + + @Click(MM_BANK_RADIO) + STI701_S002_EmailPanel clickMMB(); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/sendingInformationsToClient/STI701_S002_SendingInformationsToClient.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/sendingInformationsToClient/STI701_S002_SendingInformationsToClient.java new file mode 100644 index 0000000..59d1cc5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/sendingInformationsToClient/STI701_S002_SendingInformationsToClient.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.sendingInformationsToClient; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.sendingInformationsToClient.STI701_S002_SendingInformationsToClient.TITLE_OF_PAGE; + +@Wait(value = TITLE_OF_PAGE, until = Until.VISIBLE) +public interface STI701_S002_SendingInformationsToClient extends StoreAccessor, WebFlow { + + String TITLE_OF_PAGE = "STI701_S002_L001"; + String EMAIL_BUTON_XPATH = "//button[contains(@title, 'STI701_S002_I002')]"; + String POST_BUTTON_XPATH = "//button[contains(@title, 'STI701_S002_I003')]"; + + @Click(value = EMAIL_BUTON_XPATH, by = Lookup.XPATH) + STI701_S002_EmailPanel clickEmailPanel(); + + @Click(value = POST_BUTTON_XPATH, by = Lookup.XPATH) + STI701_S002_PostPanel clickPostPanel(); +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/taskslist/StateOfTaskFilter.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/taskslist/StateOfTaskFilter.java new file mode 100644 index 0000000..2eaba6a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/taskslist/StateOfTaskFilter.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist; + +public enum StateOfTaskFilter { + NEW("new"), + ASSIGNED("assigned"), + ASSIGNING("assigning"), + RETURNED("returned"), + IN_SOLVING("solvingTask"), + TASK_IN_ACCEPTATION_WORKFLOW("Approving"), + ERROR_CORRECTING_DATA("correcting data"), + PROCESSED_UNAUTHORIZED("processedWithVerification"), + PROCESSED("processedWithoutVerification"), + PROCESSED_AUTHORIZED("solvedWithVerification"), + CANCELED("calledOff"), + WAITING("waiting"); + + private final String checkboxIdXpath = "//input[starts-with(@id, 'UKO720_S001_G002') and @value='%s']"; + private final String value; + + StateOfTaskFilter(String value) { + this.value = value; + } + + public String getElementXpath() { + return String.format(checkboxIdXpath, value); + } + + public String getValue() { + return value; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/taskslist/TypesOfViewFilter.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/taskslist/TypesOfViewFilter.java new file mode 100644 index 0000000..40ee761 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/operations/ufoOperations/taskslist/TypesOfViewFilter.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist; + +import cz.moneta.test.harness.support.web.SelectByValue; + +public enum TypesOfViewFilter implements SelectByValue { + + TEAM_TASKS("Úkoly na tým"), + ASSIGNED_BY_TEAM("Týmem zadané"), + TEAM_FOR_REVIEW("Týmové k ověření"), + MY_FOR_PROCESSING("Moje ke zpracování"), + MY_FOR_VERIFICATION("Moje k ověření"), + PROCESSED_BY_ME("Mnou zpracované"), + ASSIGNED_BY_ME("Mnou zadané"), + MY_FOR_APPROVAL("Moje ke schválení"), + THIRD_PARTY_TASKS("Na 3. stranách"), + TASK_SEARCH("Vyhledání úkolů"); + + private final String ufoValue; + + TypesOfViewFilter(String ufoValue) { + this.ufoValue = ufoValue; + } + + public String getUfoValue() { + return this.ufoValue; + } + + @Override + public String getValue() { + return this.ufoValue; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/HLP901_S001_MainMenuPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/HLP901_S001_MainMenuPage.java new file mode 100644 index 0000000..8bffbbc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/HLP901_S001_MainMenuPage.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.ufo.ufoframework.pages; + +import cz.moneta.test.dsl.ufo.ufoframework.pages.othererika.REL001_S001_ErikaMainPage; +import cz.moneta.test.dsl.ufo.ufoframework.pages.otherjarda.REL909_S001_OtherJardaPage; +import cz.moneta.test.harness.support.web.Click; +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.ufoframework.pages.HLP901_S001_MainMenuPage.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface HLP901_S001_MainMenuPage extends WebFlow { + + String PAGE_LABEL_XPATH = "//div[@id='XXX999_T001_L007' and text()='HLP901_S001']"; + String OTHER_JARDA_BUTTON = "HLP901_S001_B007"; + String OTHER_ERIKA_BUTTON = "HLP901_S001_B008"; + + @Click(OTHER_ERIKA_BUTTON) + REL001_S001_ErikaMainPage clickOtherErika(); + + @Click(OTHER_JARDA_BUTTON) + REL909_S001_OtherJardaPage clickOtherJarda(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/othererika/REL001_S001_ErikaMainPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/othererika/REL001_S001_ErikaMainPage.java new file mode 100644 index 0000000..354a093 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/othererika/REL001_S001_ErikaMainPage.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.ufo.ufoframework.pages.othererika; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.cb.landing.DMS401_S002_DocumentsPage.PAGE_LOADER_END; +import static cz.moneta.test.dsl.ufo.ufoframework.pages.othererika.REL001_S001_ErikaMainPage.PAGE_LABEL; + +@Wait(PAGE_LABEL) +@Wait(PAGE_LOADER_END) +public interface REL001_S001_ErikaMainPage extends WebFlow { + + String PAGE_LABEL = "REL001_S001_L001"; + String STEP_COUNT_INPUT = "REL001_S001_E014"; + String GENERATE_SESSION_BUTTON = "REL001_S001_B016"; + + @Click(GENERATE_SESSION_BUTTON) + REL001_S002_WaitingForSessionsPage clickGenerateSession(); + + @TypeInto(STEP_COUNT_INPUT) + REL001_S001_ErikaMainPage fillStepCount(String stepCount); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/othererika/REL001_S002_WaitingForSessionsPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/othererika/REL001_S002_WaitingForSessionsPage.java new file mode 100644 index 0000000..f961e57 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/othererika/REL001_S002_WaitingForSessionsPage.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.ufo.ufoframework.pages.othererika; + +import cz.moneta.test.harness.support.web.Until; +import cz.moneta.test.harness.support.web.Wait; +import cz.moneta.test.harness.support.web.WebFlow; + +import static cz.moneta.test.dsl.ufo.ufoframework.pages.othererika.REL001_S002_WaitingForSessionsPage.GENERATING_SESSIONS_DIV; + +@Wait(GENERATING_SESSIONS_DIV) +public interface REL001_S002_WaitingForSessionsPage extends WebFlow { + + String GENERATING_SESSIONS_DIV = "REL001_S002"; + + @Wait(value = GENERATING_SESSIONS_DIV, until = Until.GONE, waitSecondsForElement = 180) + REL001_S001_ErikaMainPage waitForGeneratingSessions(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/otherjarda/REL909_S001_OtherJardaPage.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/otherjarda/REL909_S001_OtherJardaPage.java new file mode 100644 index 0000000..f54d7b7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/otherjarda/REL909_S001_OtherJardaPage.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.ufo.ufoframework.pages.otherjarda; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.ufoframework.pages.otherjarda.REL909_S001_OtherJardaPage.PAGE_LABEL_XPATH; +import static cz.moneta.test.dsl.ufo.ufoframework.pages.otherjarda.REL909_S001_OtherJardaPage.TOP_MENU_CLASS; + +/** + * Contains all shared elements and methods over REL909_S001 pages. + */ +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +@Wait(value = TOP_MENU_CLASS, by = Lookup.CLASSNAME) +public interface REL909_S001_OtherJardaPage extends WebFlow, StoreAccessor { + + String PAGE_LABEL_XPATH = "//div[@id='XXX999_T001_L007' and text()='REL909_S001']"; + String TOP_MENU_CLASS = "gwt-TabLayoutPanelTabs"; + String TEST1_XPATH = "//button[text()='Test1']"; + String VALIDATION_VALUE_TYPES_XPATH = "//button[text()='Validace ValueTypes']"; + + @Click(value = TEST1_XPATH, by = Lookup.XPATH) + Test1Panel clickTest1(); + + @Click(value = VALIDATION_VALUE_TYPES_XPATH, by = Lookup.XPATH) + ValidationValueTypesPanel clickValidationValueTypes(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/otherjarda/Test1Panel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/otherjarda/Test1Panel.java new file mode 100644 index 0000000..9cc529c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/otherjarda/Test1Panel.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.ufo.ufoframework.pages.otherjarda; + + +import cz.moneta.test.harness.support.web.Lookup; +import cz.moneta.test.harness.support.web.Wait; + +import static cz.moneta.test.dsl.ufo.ufoframework.pages.otherjarda.Test1Panel.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface Test1Panel extends REL909_S001_OtherJardaPage { + + String PAGE_LABEL_XPATH = "//div[@id='REL909_S001_L038' and text()='Testování oprávnění na procesy']"; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/otherjarda/ValidationValueTypesPanel.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/otherjarda/ValidationValueTypesPanel.java new file mode 100644 index 0000000..08194d2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/pages/otherjarda/ValidationValueTypesPanel.java @@ -0,0 +1,94 @@ +package cz.moneta.test.dsl.ufo.ufoframework.pages.otherjarda; + +import cz.moneta.test.harness.support.web.*; + +import static cz.moneta.test.dsl.ufo.ufoframework.pages.otherjarda.ValidationValueTypesPanel.PAGE_LABEL_XPATH; + +@Wait(value = PAGE_LABEL_XPATH, by = Lookup.XPATH) +public interface ValidationValueTypesPanel extends REL909_S001_OtherJardaPage { + + String PAGE_LABEL_XPATH = "//div[@id='REL909_S001_L015' and text()='HCisloUctu']"; + String H_ACCOUNT_NUMBER_INPUT = "REL909_S001_E009"; + String H_ACCOUNT_NUMBER_VALIDATE_BUTTON = "REL909_S001_B015"; + String H_EMAIL_INPUT = "REL909_S001_E010"; + String H_EMAIL_VALIDATION_BUTTON = "REL909_S001_B016"; + String H_DATE_INPUT = "REL909_S001_E011"; + String H_DATE_VALIDATE_BUTTON = "REL909_S001_B017"; + String H_BIRTH_NUMBER_INPUT = "REL909_S001_E012"; + String H_BIRTH_NUMBER_VALIDATE_BUTTON = "REL909_S001_B018"; + String H_ICO_INPUT = "REL909_S001_E013"; + String H_ICO_VALIDATE_BUTTON = "REL909_S001_B019"; + String H_FULL_NAME_INPUT = "REL909_S001_E015"; + String H_FULL_NAME_VALIDATE_BUTTON = "REL909_S001_B020"; + String VALIDATION_LABEL = "REL909_S001_L025"; + + @CheckElementContent(VALIDATION_LABEL) + ValidationValueTypesPanel checkValidationIsSuccessful(String expectedValidationValue); + + @TypeInto(value = H_ACCOUNT_NUMBER_INPUT, clear = true) + ValidationValueTypesPanel fillHAccountNumber(String hAccountNumber); + + @Click(H_ACCOUNT_NUMBER_VALIDATE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "Přichod validace HCisloUctu ") + ValidationValueTypesPanel clickHAccountNumberValidateAndAcceptValidAlert(); + + @Click(H_ACCOUNT_NUMBER_VALIDATE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "Číslo účtu není ve správném formátu ! [REL909_S001_E009]") + ValidationValueTypesPanel clickHAccountNumberValidateAndAcceptNotValidAlert(); + + @TypeInto(value = H_EMAIL_INPUT, clear = true) + ValidationValueTypesPanel fillHEmail(String hEmail); + + @Click(H_EMAIL_VALIDATION_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "Přichod validace HEmail ") + ValidationValueTypesPanel clickHEmailValidateAndAcceptValidAlert(); + + @Click(H_EMAIL_VALIDATION_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "E-mail není ve správném formátu ! [REL909_S001_E010]") + ValidationValueTypesPanel clickHEmailValidateAndAcceptNotValidAlert(); + + @TypeInto(value = H_DATE_INPUT, clear = true) + ValidationValueTypesPanel fillHDate(String hDate); + + @Click(H_DATE_VALIDATE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "Přichod validace HDatum") + ValidationValueTypesPanel clickHDateValidateAndAcceptValidAlert(); + + @Click(H_DATE_VALIDATE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "Je nutné zadat datum ve formátu dd.mm.yyyy ! [REL909_S001_E011]") + ValidationValueTypesPanel clickHDateValidateAndAcceptNotValidAlert(); + + @TypeInto(value = H_BIRTH_NUMBER_INPUT, clear = true) + ValidationValueTypesPanel fillHBirthNumber(String hBirthNumber); + + @Click(H_BIRTH_NUMBER_VALIDATE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "Přichod validace HRodneCislo") + ValidationValueTypesPanel clickHBirthNumberValidateAndAcceptValidAlert(); + + @Click(H_BIRTH_NUMBER_VALIDATE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "Rodné číslo není ve správném formátu ! [REL909_S001_E012]") + ValidationValueTypesPanel clickHBirthNumberValidateAndAcceptNotValidAlert(); + + @TypeInto(value = H_ICO_INPUT, clear = true) + ValidationValueTypesPanel fillHIco(String hIco); + + @Click(H_ICO_VALIDATE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "Přichod validace HICO ") + ValidationValueTypesPanel clickHIcoValidateAndAcceptValidAlert(); + + @Click(H_ICO_VALIDATE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "IČO není ve správném formátu ! [REL909_S001_E013]") + ValidationValueTypesPanel clickHIcoValidateAndAcceptNotValidAlert(); + + @TypeInto(value = H_FULL_NAME_INPUT, clear = true) + ValidationValueTypesPanel fillHFullName(String hFullName); + + @Click(H_FULL_NAME_VALIDATE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "Přichod validace HJmenoPrijmeni ") + ValidationValueTypesPanel clickHFullNameValidateAndAcceptValidAlert(); + + @Click(H_FULL_NAME_VALIDATE_BUTTON) + @AcceptAlert(waitSecondsForAlert = 3, expectedAlertText = "V textovém poli se nesmí vyskytovat číslice a mezery na začátku i konci textu. [REL909_S001_E015]") + ValidationValueTypesPanel clickHFullNameValidateAndAcceptNotValidAlert(); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/tasks/FunctionalTestsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/tasks/FunctionalTestsTasks.java new file mode 100644 index 0000000..c9a0e37 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/tasks/FunctionalTestsTasks.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.ufo.ufoframework.tasks; + +import cz.moneta.test.dsl.Harness; + +public class FunctionalTestsTasks { + + private final Harness harness; + + public FunctionalTestsTasks(Harness harness) { + this.harness = harness; + } + + public LoginTasks login() { + return new LoginTasks(harness); + } + + public VerificationsTasks verificationsTasks() { + return new VerificationsTasks(harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/tasks/LoginTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/tasks/LoginTasks.java new file mode 100644 index 0000000..696e694 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/tasks/LoginTasks.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.ufo.ufoframework.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.common.authentication.UfoLoginPage; +import cz.moneta.test.dsl.ufo.ufoframework.pages.HLP901_S001_MainMenuPage; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +public class LoginTasks { + + private final Harness harness; + + public LoginTasks(Harness harness) { + this.harness = harness; + } + + public Function withCredentials(Credentials credentials) { + return start -> start + .typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectUfoFunctionalTestsAndContinue(); + } + + public Function withCredentialsAndSelectFirstOM(Credentials credentials) { + return start -> start + .typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectFirstOmIfPresent() + .selectUfoFunctionalTestsAndContinue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/tasks/VerificationsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/tasks/VerificationsTasks.java new file mode 100644 index 0000000..e56b8cd --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/ufo/ufoframework/tasks/VerificationsTasks.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dsl.ufo.ufoframework.tasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.ufoframework.pages.otherjarda.ValidationValueTypesPanel; + +import java.util.function.Function; + +public class VerificationsTasks { + + private final Harness harness; + + public VerificationsTasks(Harness harness) { + this.harness = harness; + } + + public Function verifyHAccountNumber(String validHAccountNumber, String notValidHAccountNumber) { + return start -> start + .fillHAccountNumber(validHAccountNumber) + .clickHAccountNumberValidateAndAcceptValidAlert() + .checkValidationIsSuccessful(validHAccountNumber) + .fillHAccountNumber(notValidHAccountNumber) + .clickHAccountNumberValidateAndAcceptNotValidAlert(); + } + + public Function verifyHEmail(String validHEmail, String notValidHEmail) { + return start -> start + .fillHEmail(validHEmail) + .clickHEmailValidateAndAcceptValidAlert() + .checkValidationIsSuccessful(validHEmail) + .fillHEmail(notValidHEmail) + .clickHEmailValidateAndAcceptNotValidAlert(); + } + + public Function verifyHDate(String validHDate, String notValidHDate) { + return start -> start + .fillHDate(validHDate) + .clickHDateValidateAndAcceptValidAlert() + .checkValidationIsSuccessful(validHDate) + .fillHDate(notValidHDate) + .clickHDateValidateAndAcceptNotValidAlert(); + } + + public Function verifyHBirthNumber(String validHBirthNumber, String notValidHBirthNumber) { + return start -> start + .fillHBirthNumber(validHBirthNumber) + .clickHBirthNumberValidateAndAcceptValidAlert() + .checkValidationIsSuccessful(validHBirthNumber) + .fillHBirthNumber(notValidHBirthNumber) + .clickHBirthNumberValidateAndAcceptNotValidAlert(); + } + + public Function verifyHIco(String validHIco, String notValidHIco) { + return start -> start + .fillHIco(validHIco) + .clickHIcoValidateAndAcceptValidAlert() + .checkValidationIsSuccessful(validHIco) + .fillHIco(notValidHIco) + .clickHIcoValidateAndAcceptNotValidAlert(); + } + + public Function verifyHFullName(String validHFullName, String notValidHFullName) { + return start -> start + .fillHFullName(validHFullName) + .clickHFullNameValidateAndAcceptValidAlert() + .checkValidationIsSuccessful(validHFullName) + .fillHFullName(notValidHFullName) + .clickHFullNameValidateAndAcceptNotValidAlert(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/AddressUtils.java b/tests/src/main/java/cz/moneta/test/dsl/util/AddressUtils.java new file mode 100644 index 0000000..05f0a9b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/AddressUtils.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.util; + +import cz.moneta.test.dsl.util.data.client.Address; + +public class AddressUtils { + + private AddressUtils() { + } + + public static String buildStreetWithNumbers(Address address) { + String finalAdress = String.join(" ", address.getStreet(), address.getDescriptiveNumber()); + if (address.getOrientationNumber() == null || address.getOrientationNumber().isEmpty()) return finalAdress; + return String.join("/", finalAdress, address.getOrientationNumber()); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/BankaUtils.java b/tests/src/main/java/cz/moneta/test/dsl/util/BankaUtils.java new file mode 100644 index 0000000..c4f5ac6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/BankaUtils.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.util; + +import org.apache.commons.text.WordUtils; + +import java.util.LinkedHashMap; +import java.util.stream.Collectors; + +public class BankaUtils { + + private BankaUtils() { + } + + public static String formatBankerName(String bankerName) { + return bankerName.contains("HARNESS TEST") ? "GEBTHA" + bankerName.charAt(bankerName.length() - 1) : WordUtils.capitalizeFully(bankerName); + } + + public static String formatUserNameForVerification(String userName) { + return userName.contains("HARNESS TEST") ? "GEBTHA" + userName.charAt(userName.length() - 1) + " / HARNESS TEST" : WordUtils.capitalize(userName.toLowerCase()); + } + + public static String formatSecondBankerName(String bankerName) { + if (!bankerName.contains("GEBTHA")) { + return formatBankerName(bankerName); + } else return bankerName; + } + + public static String formatDocumentUrls(LinkedHashMap docUrls) { + return docUrls == null ? "null" : docUrls.values().stream() + .collect(Collectors.joining("\n")); + } + + public static String formatDocumentUrlsWithNames(LinkedHashMap docUrls) { + return docUrls == null ? "null" : docUrls.keySet().stream() + .map(key -> key + ": " + docUrls.get(key)) + .collect(Collectors.joining("\n")); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/DateFormatPatterns.java b/tests/src/main/java/cz/moneta/test/dsl/util/DateFormatPatterns.java new file mode 100644 index 0000000..1e6f3d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/DateFormatPatterns.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.util; + +public final class DateFormatPatterns { + + public static final String FIRST_VISION_DATE_FORMAT_WITH_SEPARATOR = "yyyy-MM-dd"; + public static final String FIRST_VISION_DATE_FORMAT_WITHOUT_SEPARATOR = "yyyyMMdd"; + public static final String FIRST_VISION_CARD_EXPIRATION_DATE = "MMYYYY"; + public static final String FIRST_VISION_DATE_MODERN_JULIAN_FORMAT = "YYYYDDD"; + + public static final String IB_DATE_FORMAT = "dd.MM.yyyy"; + public static final String CZ_DATE_FORMAT = "dd.MM.yyyy"; + + private DateFormatPatterns() { + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/DateUtils.java b/tests/src/main/java/cz/moneta/test/dsl/util/DateUtils.java new file mode 100644 index 0000000..a81556b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/DateUtils.java @@ -0,0 +1,175 @@ +package cz.moneta.test.dsl.util; + +import org.apache.commons.lang3.tuple.Pair; + +import java.text.SimpleDateFormat; +import java.time.DayOfWeek; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.Month; +import java.time.format.DateTimeFormatter; +import java.time.temporal.TemporalAdjusters; +import java.util.Calendar; +import java.util.Date; +import java.util.HashSet; +import java.util.Optional; +import java.util.Random; +import java.util.Set; + +public final class DateUtils { + + private static final Set> STATE_HOLIDAYS = new HashSet>() {{ + add(Pair.of(Month.JANUARY, 1)); + add(Pair.of(Month.MAY, 1)); + add(Pair.of(Month.MAY, 8)); + add(Pair.of(Month.JULY, 5)); + add(Pair.of(Month.JULY, 6)); + add(Pair.of(Month.SEPTEMBER, 28)); + add(Pair.of(Month.OCTOBER, 28)); + add(Pair.of(Month.NOVEMBER, 17)); + add(Pair.of(Month.DECEMBER, 24)); + add(Pair.of(Month.DECEMBER, 25)); + add(Pair.of(Month.DECEMBER, 26)); + }}; + + private DateUtils() { + } + + public static boolean isWorkingDay(LocalDate date) { + return !isWeekend(date) && !isStateHoliday(date) && !isEaster(date); + } + + private static boolean isWeekend(LocalDate date) { + return date.getDayOfWeek() == DayOfWeek.SATURDAY || date.getDayOfWeek() == DayOfWeek.SUNDAY; + } + + public static boolean isStateHoliday(LocalDate date) { + return Optional.ofNullable(date) + .map(d -> Pair.of(d.getMonth(), d.getDayOfMonth())) + .filter(STATE_HOLIDAYS::contains) + .isPresent(); + } + + private static boolean isEaster(LocalDate date) { + // https://dzone.com/articles/algorithm-calculating-date + int Y = date.getYear(); + int a = Y % 19; + int b = Y / 100; + int c = Y % 100; + int d = b / 4; + int e = b % 4; + int f = (b + 8) / 25; + int g = (b - f + 1) / 3; + int h = (19 * a + b - d - g + 15) % 30; + int i = c / 4; + int k = c % 4; + int L = (32 + 2 * e + 2 * i - h - k) % 7; + int m = (a + 11 * h + 22 * L) / 451; + int month = (h + L - 7 * m + 114) / 31; + int day = ((h + L - 7 * m + 114) % 31) + 1; + + Set easterDates = new HashSet(); + easterDates.add(LocalDate.of(Y, month, day).plusDays(1)); + if (Y > 2015) easterDates.add(LocalDate.of(Y, month, day).minusDays(2)); + + return easterDates.contains(date); + } + + public static String getFormattedTodayDate(String dateFormat) { + LocalDate localDate = LocalDate.now(); + return DateTimeFormatter.ofPattern(dateFormat).format(localDate); + } + + public static String getFormattedTodayDateTime(String dateTimeFormat) { + LocalDateTime localDateTime = LocalDateTime.now(); + return DateTimeFormatter.ofPattern(dateTimeFormat).format(localDateTime); + } + + public static Date getTodayRawDate() { + return new Date(); + } + + public static String getTodayRawDateForWso2() { + return convertRawDateForWso2(getTodayRawDate()); + } + + public static String getDateWithFormat(Date date, String dateFormat) { + return new SimpleDateFormat(dateFormat).format(date); + } + + public static String getDateWithFormat(LocalDate date, String dateFormat) { + return date.format(DateTimeFormatter.ofPattern(dateFormat)); + } + + public static String convertRawDateForWso2(Date date) { + return getDateWithFormat(date, "yyyy-MM-dd"); + } + + public static String convertRawDateTimeForWso2(LocalDateTime date) { + return date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")); + } + + public static String convertShortDateTimeForWso2(LocalDateTime date) { + return date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'")); + } + + public static String getFormattedTodayDateTimeForWso2() { + return convertRawDateTimeForWso2(LocalDateTime.now()); + } + + public static LocalDate getNextWorkday() { + return getNextWorkdayAfterDate(LocalDate.now()); + } + + public static LocalDate getNextWorkdayAfterDate(LocalDate startDate) { + LocalDate futureWorkDay = startDate; + do { + futureWorkDay = futureWorkDay.plusDays(1); + } while (!isWorkingDay(futureWorkDay)); + return futureWorkDay; + } + + public static String getFormattedPreviousWorkday(String dateFormat) { + LocalDate previousWorkday = LocalDate.now(); + do { + previousWorkday = previousWorkday.minusDays(1); + } while (!isWorkingDay(previousWorkday)); + + return getDateWithFormat(previousWorkday, dateFormat); + } + + public static String getTodayDateIncrementedByDays(int days, String dateFormat) { + return getDateWithFormat(performDayIncrement(days, new Date()).getTime(), dateFormat); + } + + public static Date getSpecificDayRaw(int day, int month, int year) { + Calendar date = Calendar.getInstance(); + date.set(year, --month, day); + return date.getTime(); + } + + public static Date getRawTodayDateIncrementedByDays(int days) { + return performDayIncrement(days, new Date()).getTime(); + } + + private static Calendar performDayIncrement(int days, Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.add(Calendar.DATE, days); + return calendar; + } + + public static String getRandomDate(int yearFrom, int yearTo, String dateFormat) { + Random random = new Random(); + int minDay = (int) LocalDate.of(yearFrom, 1, 1).toEpochDay(); + int maxDay = (int) LocalDate.of(yearTo, 12, 31).toEpochDay(); + long randomDay = minDay + random.nextInt(maxDay - minDay); + LocalDate randomDate = LocalDate.ofEpochDay(randomDay); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateFormat); + return randomDate.format(formatter); + } + + public static String getLastDayOfYear(int year, String dateFormat) { + return getDateWithFormat(LocalDate.of(year, 1, 1).with(TemporalAdjusters.lastDayOfYear()), dateFormat); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/EmployerUtils.java b/tests/src/main/java/cz/moneta/test/dsl/util/EmployerUtils.java new file mode 100644 index 0000000..3dd395f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/EmployerUtils.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.util; + +import cz.moneta.test.dsl.util.data.client.Employer; + +import static cz.moneta.test.dsl.util.AddressUtils.buildStreetWithNumbers; + +public class EmployerUtils { + + public static String buildEmployer(Employer employer) { + return String.format("%s, ICO: %s, %s", employer.getName(), employer.getIco(), buildStreetWithNumbers(employer.getAddress())); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/PollingUtils.java b/tests/src/main/java/cz/moneta/test/dsl/util/PollingUtils.java new file mode 100644 index 0000000..f37d311 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/PollingUtils.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.util; + +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.Objects; +import java.util.concurrent.TimeUnit; +import java.util.function.Supplier; + +public class PollingUtils { + private static final int POLLING_SECONDS = 5; + + private PollingUtils() { + } + + public static TResult waitForExpectedResultForSeconds(TResult expectedResult, long waitForSeconds, + Supplier supplier) { + LocalDateTime start = LocalDateTime.now(); + + while (secondsWaitedSince(start) < waitForSeconds) { + try { + TimeUnit.SECONDS.sleep(POLLING_SECONDS); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + } + TResult result = supplier.get(); + if (Objects.equals(expectedResult, result)) { + return result; + } + } + return supplier.get(); + } + + private static long secondsWaitedSince(LocalDateTime start) { + return ChronoUnit.SECONDS.between(start, LocalDateTime.now()); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/TestUtils.java b/tests/src/main/java/cz/moneta/test/dsl/util/TestUtils.java new file mode 100644 index 0000000..489f4e2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/TestUtils.java @@ -0,0 +1,163 @@ +package cz.moneta.test.dsl.util; + +import org.apache.commons.io.IOUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.nio.charset.StandardCharsets; +import java.text.*; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Base64; +import java.util.Date; +import java.util.Random; + +public final class TestUtils { + + private TestUtils() { + } + + public static String getEmailBasedOnRc(String rc) { + return rc + "@moneta.cz"; + } + + public static Date getTodayAsDate() { + return new Date(LocalDate.now().toEpochDay()); + } + + /** + * Get today date in dd.MM.yyyy format. If you want to get today date in different format, use {@link #getTodayDate(String)} + * + * @return today date in format dd.MM.yyyy + */ + public static String getTodayDate() { + return TestUtils.getTodayDate("dd.MM.yyyy"); + } + + /** + * @param pattern {@link java.time.format.DateTimeFormatter} + * @return today date in specified format + */ + public static String getTodayDate(String pattern) { + return LocalDate.now().format(DateTimeFormatter.ofPattern(pattern)); + } + + public static Date dateFromString(String date, String format) { + try { + return new SimpleDateFormat(format).parse(date); + } catch (ParseException e) { + throw new IllegalStateException("Error during date parsing: " + e.getMessage()); + } + } + + public static String parseBirthDateAsString(String birthNumber) { + LocalDate dateOfBirth = parseBirthDate(birthNumber); + if (dateOfBirth == null) return null; + return dateOfBirth.format(DateTimeFormatter.ofPattern("d.M.yyyy")); + } + + public static LocalDate parseBirthDate(String birthNumber) { + if (birthNumber == null || birthNumber.length() < 6) { + return null; + } + + int year = Integer.parseInt(birthNumber.substring(0, 2)); + int month = Integer.parseInt(birthNumber.substring(2, 4)); + int day = Integer.parseInt(birthNumber.substring(4, 6)); + + boolean isWoman = month > 50; + if (isWoman) { + month -= 50; + } + + boolean isModifiedMonth = month > 20; + if (isModifiedMonth) { + month -= 20; + } + + boolean isECP = day > 40; + if (isECP) { + day -= 40; + } + + year = correctYear(birthNumber, year); + + return LocalDate.of(year, month, day); + } + + + static int correctYear(String birthNumber, int year) { + if (birthNumber.length() == 9) { + if (year > 53) { + year += 1800; + } else { + year += 1900; + } + } else { + if (year > 53) { + year += 1900; + } else { + year += 2000; + } + } + return year; + } + + public static BigDecimal toNumber(String number) { + return new BigDecimal(number.replace("Kč", "") + .replace(",-", "") + .replace(",", ".") + .replaceAll("\\s", "")); + } + + public static BigDecimal toPercentWithTwoDecimals(BigDecimal value) { + value = value.multiply(new BigDecimal(100)); + return value.setScale(2, RoundingMode.HALF_EVEN); + } + + public static String encodeBase64(String textToEncode) { + return Base64.getUrlEncoder() + .encodeToString(textToEncode.getBytes()); + } + + public static String toStringWithTwoDecimals(int value) { + DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(); + DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols(); + symbols.setGroupingSeparator(' '); + formatter.setDecimalFormatSymbols(symbols); + return formatter.format(value) + ",00"; + } + + public static String toString(int value) { + return String.valueOf(value); + } + + public static String getContentFromResource(String relativePath) { + String result = ""; + try (InputStream inputStream = TestUtils.class.getClassLoader().getResourceAsStream(relativePath)) { + result = IOUtils.toString(inputStream, StandardCharsets.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + return result; + } + + public static String getB64FromResource(String relativePath) { + String result = "data:image/jpeg;base64,"; + try (InputStream inputStream = TestUtils.class.getClassLoader().getResourceAsStream(relativePath)) { + result += IOUtils.toString(inputStream, StandardCharsets.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + return result; + } + + public static > T getRandomValueFromEnum(Class aClass) { + Random random = new Random(); + int x = random.nextInt(aClass.getEnumConstants().length); + return aClass.getEnumConstants()[x]; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/code/lists/HCisAllStavZadosti.java b/tests/src/main/java/cz/moneta/test/dsl/util/code/lists/HCisAllStavZadosti.java new file mode 100644 index 0000000..a5df62d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/code/lists/HCisAllStavZadosti.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.util.code.lists; + +public enum HCisAllStavZadosti { + APPLICATION_CONDITIONALLY_APROVED("PODMÍNĚNÝ SOUHLAS"), + APPLICATION_DENIED("ZAMÍTNUTÍ"), + LOAN_DRAWN("Úvěr načerpán"), + LOAN_ACCOUNT_OPEN("Rámec otevřen"), + VERIFICATION("Externí ověřování - odklad rozhodnutí"), + APPROVED("SOUHLAS"), + NONE(""), + DOCUMENTS_REQUIRED("Doplň doklady"), + MANUAL_PROCESSING("Manuální schvalování"); + + private final String value; + + HCisAllStavZadosti(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/code/lists/HCisDoklady.java b/tests/src/main/java/cz/moneta/test/dsl/util/code/lists/HCisDoklady.java new file mode 100644 index 0000000..56e977e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/code/lists/HCisDoklady.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.util.code.lists; + +public enum HCisDoklady { + CP("Cestovní pas"), + OP("Občanský průkaz"), + RP("Řidičský průkaz"); + + private final String value; + + HCisDoklady(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/code/lists/HCisVztahKBanceCIF.java b/tests/src/main/java/cz/moneta/test/dsl/util/code/lists/HCisVztahKBanceCIF.java new file mode 100644 index 0000000..23047bc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/code/lists/HCisVztahKBanceCIF.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.util.code.lists; + +public enum HCisVztahKBanceCIF { + ABION("ABION, s.r.o.", "10"), + ADP("ADP CZ, a. s.", "11"), + AGRO_CONSULT("AgroConsult Bohemia s.r.o.", "19"), + PENSIONERS_MONETA("Důchodci MONETA Money Bank", "08"), + GE_AVIATION("GE AVIATION CZECH S.R.O.", "22"), + GE_POWER("GE POWER S. R. O.", "21"), + GLOBAL_FIN("GLOBAL FIN.RESTRUCTURING CZECH", "23"), + CONTRACTORS("Kontraktoři", "09"), + LEO_BURNETT("LEO BURNETT Advertising, s.r.o.", "13"), + LOGOS("LOGOS, a.s.", "18"), + MARK_BBDO("MARK/BBDO, A.S.", "20"), + OM_FOCUS("O&M FOCUS, s.r.o.", "14"), + T_SYSTEMS("T-Systems Czech, s.r.o", "12"), + VIP_FO("VIP - FO", "15"), + VIP_CLIENT_PO("VIP Klient PO", "24"), + EMPLOYEE_GE_INDUSTRIAL("Zaměstnanec GE Industrial, s.r.o.", "16"), + EMPLOYEE_GE_INTERNATIONAL("Zaměstnanec GE International, Inc. - obchodní zastoupení", "07"), + EMPLOYEE_GE_MEDICAL_SA("Zaměstnanec GE Medical System SA - organizační složka", "05"), + EMPLOYEE_GE_MEDICAL_SYSTEMS("Zaměstnanec GE Medical Systems Česká republika, s.r.o", "04"), + EMPLOYEE_MONETA_AUTO("Zaměstnanec MONETA Auto", "02"), + EMPLOYEE_MONETA_MONEY_BANK("Zaměstnanec MONETA Money Bank", "01"), + EMPLOYEE_GE_MULTISERVIS("Zaměstnanec GE Multiservis", "03"), + EMPLOYEE_MONEY_HOLDINGS("Zaměstnanec Money (Czech) Holdings, s.r.o", "06"), + EMPLOYEE_MONETA_LEASING("Zaměstnanec MONETA Leasing", "25"), + BW_MANAGERS("B@W manažeři bez hypoték", "26"), + OGILVY("Ogilvy Public Relations, s.r.o.", "17"), + NONE("(není)", ""); + + private final String name; + private final String metaCodeValue; + + HCisVztahKBanceCIF(String name, String metaCodeValue) { + this.name = name; + this.metaCodeValue = metaCodeValue; + } + + public String getName() { + return name; + } + + public String getMetaCodeValue() { + return metaCodeValue; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/credentials/Keys.java b/tests/src/main/java/cz/moneta/test/dsl/util/credentials/Keys.java new file mode 100644 index 0000000..ccb66bb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/credentials/Keys.java @@ -0,0 +1,186 @@ +package cz.moneta.test.dsl.util.credentials; + +public class Keys { + + /** + * Ufo Applications family + */ + public static class ufo { + + /** + * Ufo Banka application + */ + public static class banka { + + /** + * User with role Banker + */ + public static final String banker = "ufo-banka-banker"; + + /** + * Second user UFO Banka with role Banker + */ + public static final String secondBanker = "ufo-banka-second-banker"; + + /** + * Third user UFO Banka with role Banker on another OM + */ + public static final String anotherOmBanker = "ufo-banka-banker-with-another-om"; + } + + /** + * UFO CB application + */ + public static class cb { + + /** + * User UFO CB with role Banker Firemni Klientela + */ + public static final String bankerFiremniKlientela = "ufo-cb-banker"; + + /** + * User UFO CB with role ctenar + */ + public static final String ctenar = "ufocb-ctenar"; + + /** + * User UFO CB with role SME SalesSupport + */ + public static final String salesSupport = "ufo-cb-sales-support"; + } + + /** + * Databoxes application + */ + public static class databoxes { + + /** + * User with role Databoxes User, DataBoxes OdeslaniDZ, WPS - senior administrátor / koordinátor podatelny + */ + public static final String user = "ufo-databoxes-user"; + } + + public static class externiPartneri { + + /** + * User to UFO_externi_partneri with OM 63000090 a roles Operations Zaklad, OperationsPaymentsZaklad, Operations ECC Zaklad + */ + public static final String user = "ufo-externi-partneri-user"; + } + } + + public static class smart { + public static class auto { + public static final String general = "smart-auto-general"; + public static final String setman = "smart-auto-setman"; + } + } + + /** + * Retail Applications family + */ + public static class retail { + + /** + * Broker for CA and Express + */ + public static final String broker = "broker-retail"; + } + + /** + * Kasanova Application + */ + public static class kasanova { + + /** + * User with role Banker + */ + public static final String banker = "kasanova.banker"; + + /** + * User for verifying transactions + */ + public static final String verifyBanker = "kasanova.verify-banker"; + } + + /** + * Users for Payment Engine application + */ + public static class paymentEngine { + + /** + * User with same role on TST1 and PPE - SeniorSpecialist, Specialist-DPS + */ + public static final String firstUser = "payment.engine"; + + /** + * User with same role on TST1 and PPE - SeniorSpecialist, Specialist-DPS + */ + public static final String secondUser = "payment.engine.second"; + } + + /** + * Users for Broker Portal + */ + public static class brokerPortal { + + /** + * User with role broker on TST1 and PPE + */ + public static final String broker = "hypos-broker"; + } + + /** + * Users for Sales Force + */ + public static class salesForce { + + /** + * User with role banker on TST1 and PPE + */ + public static final String banker = "sales.force"; + + /** + * Sales Force API client_id parameter + */ + public static final String clientId = "sales.force.clientID"; + + /** + * Sales Force API client_secret parameter + */ + public static final String clientSecret = "sales.force.clientSecret"; + } + + /** + * Users for Elastic Search + */ + public static class elastic { + + /** + * User with access to Sales Force index in Elastic Search + */ + public static final String sfindexuser = "elastic.sales.force.index"; + + /** + * Token with access to read last broadcom log in Elastic Search + */ + public static final String broadcom = "elastic.broadcom"; + } + + /** + * Applications Exevido + */ + public static class exevido { + + /** + * User with role exevido.mailroom + */ + public static final String mailroom = "exevido-mailroom"; + + /** + * User with role exevido.inheritance + */ + public static final String inheritance = "exevido-inheritance"; + + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/ClientUtils.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/ClientUtils.java new file mode 100644 index 0000000..a6450c5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/ClientUtils.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.util.data; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.Employer; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.Date; + +public final class ClientUtils { + + public static NonClient getRiskDefaultClient(Harness harness) { + Date driverLicenceExpiryDate = DateUtils.getSpecificDayRaw(29, 12, 2026); + + Date currentAddressSinceRaw = DateUtils.getRawTodayDateIncrementedByDays(-5 * 365); + Date employmentFromRaw = DateUtils.getRawTodayDateIncrementedByDays(-5 * 365); + String birthNumber = harness.tasks().common().getRcMinMaxAge(20, 35); + + return harness.data() + .newNonClient() + .withEmployer(new Employer("Raiffeisenbank a.s.", "49240901", Address.builder().street("Hvězdova").descriptiveNumber("1716").orientationNumber("2b").city("Praha").zip("14000").country("CZ").build(), "222123456")) + .withBirthNumber(birthNumber) + .withDriverLicenceId("EP033460") + .withDriveLicenceExpiryDateRaw(driverLicenceExpiryDate) + .withEmail(birthNumber + "@moneta.cz") + .withOccupationEmploymentFromRaw(employmentFromRaw) + .withCurrentAddressSinceRaw(currentAddressSinceRaw) + .withPassportExpiryDateRaw(driverLicenceExpiryDate); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/Data.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/Data.java new file mode 100644 index 0000000..c5b644f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/Data.java @@ -0,0 +1,82 @@ +package cz.moneta.test.dsl.util.data; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.Gender; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.data.sb.FourPartToken; +import cz.moneta.test.harness.support.data.Builders; + +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.Date; + +import static cz.moneta.test.dsl.util.code.lists.HCisVztahKBanceCIF.EMPLOYEE_MONETA_MONEY_BANK; +import static cz.moneta.test.harness.support.data.GeneratorType.*; + +public class Data { + + private final Harness harness; + + public Data(Harness harness) { + this.harness = harness; + } + + public NonClient newNonClient() { + return Builders.newDataBuilder(NonClient.class, harness); + } + + public NonClient newWomanNonClient() { + return this.newNonClient() + .withBirthNumber(harness.generate(RC, Gender.WOMAN)) + .withFirstName(harness.generate(FIRST_NAME, Gender.WOMAN)) + .withLastName(harness.generate(LAST_NAME, Gender.WOMAN)); + } + + public NonClient newFVNonClient() { + return this.newNonClient() + // Important - NTB EB -> WEB -> MÍSTO NAROZENÍ 6. Olomouc -> obě hodnoty rámce totožné + .withPlaceOfBirth("Olomouc") + // Important - POS (pobočkový proces) -> na CIFu FOP je třeba zadat e-mail schváleno -> dummy.a1a2a3a4a5a6@post.cz + .withEmail("dummy.a1a2a3a4a5a6@moneta.cz") + .withWageDeductions(0) + .withIncomeSources("1") + .withPassportId("39729636") + .withPassportExpiryDateRaw(Date.from(LocalDate + .of(2022, 7, 14) + .atStartOfDay() + .atZone(ZoneId.systemDefault()) + .toInstant())) + .withDriverLicenceId("EK 608907") + .withOccupationAdditionalInformation("manager/ředitel") + .withDriveLicenceExpiryDateRaw(Date.from(LocalDate + .of(2026, 8, 31) + .atStartOfDay() + .atZone(ZoneId.systemDefault()) + .toInstant())) + // Important - IB -> v Ufo bance na CIFu FOP je potřeba nastavit v adrese číslo orientační - Schváleno -> 1111 + .withResidencyAddress(Address.builder() + .street("Za poštou") + .descriptiveNumber("405") + .orientationNumber("1111") + .city("Olomouc") + .zip("77900") + .build()); + } + + public NonClient newFVNonClientEmployee() { + return this.newFVNonClient() + // Important - Client is MMB Employee + .withRelationshipToTheBank(EMPLOYEE_MONETA_MONEY_BANK); + } + + public FourPartToken fourPartToken(String token) { + return Builders.newDataBuilder(FourPartToken.class, harness).withToken(token); + } + + public Payment defaultPayment() { + return Builders.newDataBuilder(Payment.class, harness); + } + + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/Payment.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/Payment.java new file mode 100644 index 0000000..6857642 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/Payment.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.util.data; + +import cz.moneta.test.harness.support.data.DataProvider; +import cz.moneta.test.harness.support.data.Value; + +public interface Payment extends DataProvider { + + @Value("0") + String accountPrefix(); + + @Value("123") + String accountNumber(); + + @Value("0100") + String bankCode(); + + @Value("1") + String amount(); + + @Value("123") + String variableSymbol(); + + @Value("456") + String specificSymbol(); + + @Value("789") + String constantSymbol(); + + @Value("hello test") + String myNote(); + + Payment withAccountPrefix(String accountPrefix); + + Payment withAccountNumber(String accountNumber); + + Payment withBankCode(String bankCode); + + Payment withAmount(String amount); + + Payment withVariableSymbol(String variableSymbol); + + Payment withSpecificSymbol(String specificSymbol); + + Payment withConstantSymbol(String constantSymbol); + + Payment withMyNote(String myNote); +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/YamlLoader.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/YamlLoader.java new file mode 100644 index 0000000..40a3ea3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/YamlLoader.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.util.data; + +import org.yaml.snakeyaml.TypeDescription; +import org.yaml.snakeyaml.Yaml; +import org.yaml.snakeyaml.constructor.Constructor; + +import java.io.InputStream; + +public class YamlLoader { + private String filePath; + private static Class cls; + public YamlLoader(String filePath, Class cls) { + this.filePath = filePath; + this.cls = cls; + } + + /** + * This class representing an input stream of bytes. + * Applications that need to define a subclass of InputStream must always provide a method that returns the next byte of input. + * @return the next byte of data, or -1 if the end of the stream is reached. + */ + private InputStream createInputStream() { + return this.getClass() + .getClassLoader() + .getResourceAsStream(filePath); + } + + /** + * Parse the YAML document in a stream and produce the corresponding Java object. + * @return parsed object. + */ + public T parseObject() { + Constructor constructor = new Constructor(cls); + TypeDescription itemDescription = new TypeDescription(cls); + itemDescription.addPropertyParameters("items", cls); + constructor.addTypeDescription(itemDescription); + Yaml yaml = new Yaml(constructor); + return yaml.load(createInputStream()); + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/account/AccountDetail.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/account/AccountDetail.java new file mode 100644 index 0000000..9110539 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/account/AccountDetail.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.util.data.account; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public class AccountDetail { + private String productCode; + private String feePlan; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/AccommodationType.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/AccommodationType.java new file mode 100644 index 0000000..505a6ad --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/AccommodationType.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.util.data.client; + +public enum AccommodationType { + OWN("OWN", "1", "Vlastní dům / byt"), + RENT("RENT", "2", "Pronajatý dům / byt"), + COLLECTIVE("COLLECTIVE", "3", "Družstevní byt"), + PARENTS("PARENTS", "4", "U rodičů"), + OTHER("OTHER", "5", "Jiné"), + OWN_HOUSE("OWN_HOUSE", "10002", "Vlastní dům"), + OWN_APARTMENT("OWN_APARTMENT", "10003", "Vlastní byt"), + RENT_HOUSE("RENT_HOUSE", "10004", "Pronajatý dům"), + RENT_APARTMENT("RENT_APARTMENT", "10006", "Pronajatý byt"); + + private final String apiValue; + private final String hcisValue; + private final String ufoValue; + + AccommodationType(String apiValue, String hcisValue, String ufoValue) { + this.apiValue = apiValue; + this.hcisValue = hcisValue; + this.ufoValue = ufoValue; + } + + public String getApiValue() { + return apiValue; + } + + public String getHCisValue() { return hcisValue;} + + public String getUfoValue() { + return ufoValue; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/Address.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/Address.java new file mode 100644 index 0000000..a6e4074 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/Address.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.util.data.client; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class Address { + private final String street; + private final String descriptiveNumber; + private final String orientationNumber; + private final String city; + private final String cityPart; + private final String zip; + private final String country; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/EducationLevel.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/EducationLevel.java new file mode 100644 index 0000000..ef0e582 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/EducationLevel.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.util.data.client; + +import java.util.EnumSet; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +public enum EducationLevel { + HIGHER("HIGHER", "4", "Vysokoškolské"), + MIDDLE("MIDDLE", "3", "Střední"), + BASIC("BASIC", "1", "Základní"), + TECHNICAL("TECHNICAL", "2", "Odborné/učňovské"), + OTHER("OTHER", "5", "Jiné"); + + private final String apiValue; + private final String hcisValue; + private final String ufoValue; + + private static final Map UFO_VALUES_LOOKUP = EnumSet.allOf(EducationLevel.class).stream() + .collect(Collectors.toMap(el -> el.ufoValue, Function.identity())); + + EducationLevel(String apiValue, String hcisValue, String ufoValue) { + this.apiValue = apiValue; + this.hcisValue = hcisValue; + this.ufoValue = ufoValue; + } + + public String getApiValue() { + return apiValue; + } + + public String getHCisValue() { return hcisValue;} + + public String getUfoValue() { + return ufoValue; + } + + public static EducationLevel getByUfoValue(String ufoValue) { + return UFO_VALUES_LOOKUP.get(ufoValue); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/Employer.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/Employer.java new file mode 100644 index 0000000..2965f6a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/Employer.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.util.data.client; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class Employer { + private String name; + private String ico; + private Address address; + private String phoneNumber; + + public Employer(String name, String ico, Address address, String phoneNumber) { + this.name = name; + this.ico = ico; + this.address = address; + this.phoneNumber = phoneNumber; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/Gender.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/Gender.java new file mode 100644 index 0000000..cf7eeb6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/Gender.java @@ -0,0 +1,6 @@ +package cz.moneta.test.dsl.util.data.client; + +public enum Gender { + MAN, + WOMAN; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/HyposClient.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/HyposClient.java new file mode 100644 index 0000000..8abc80c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/HyposClient.java @@ -0,0 +1,191 @@ +package cz.moneta.test.dsl.util.data.client; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.contractPrepare.data.*; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.hypos.*; +import lombok.Builder; +import lombok.Getter; + +import java.time.LocalDate; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +@Builder +@Getter +public class HyposClient { + private NonClient nonClient; + private String stayType; + private String livingType; + private String clientRelation; + private BusinessIncome businessIncome; + private List employeeIncomes; + private List otherIncomes; + private List expenditures; + private String household; + private String firstIdentityType; + private String secondIdentityType; + private String cardifType; + private Boolean employee; + private String pep; + + /** + * Creating new address used for prepare contract data. + * + * @return Address with yaml data. + */ + private Address createAddress(HyposAddressYamlData hyposAddressYamlData) { + return Address.builder() + .street(hyposAddressYamlData.getStreet()) + .descriptiveNumber(hyposAddressYamlData.getDescriptiveNumber()) + .orientationNumber(hyposAddressYamlData.getOrientationNumber()) + .city(hyposAddressYamlData.getCity()) + .zip(hyposAddressYamlData.getZip()) + .country(hyposAddressYamlData.getCountry()) + .build(); + } + + /** + * Creating new NonClient object used for prepare contract data with generated person. + * + * @return NonClient with yaml/default data. + */ + private NonClient createNonClient(HyposClientYamlData hyposClientYamlData, Harness harness) { + String birthNumber = harness.tasks().common().getRcMinMaxAge(20, 30); + return harness.data().newNonClient() + .withBirthNumber(birthNumber) + .withEmail(TestUtils.getEmailBasedOnRc(birthNumber)) + .withPlaceOfBirth(hyposClientYamlData.getPlaceOfBirth()) + .withNationality(hyposClientYamlData.getNationality()) + .withMaritalStatus(MaritalStatus.SINGLE) + .withEducationLevel(EducationLevel.HIGHER) + .withOccupationStatus(OccupationStatus.FULL_TIME_EMPLOYEE) + .withOccupationType(OccupationType.IT_GUYS) + .withAccommodationType(AccommodationType.PARENTS) + .withResidencyAddress(this.createAddress(hyposClientYamlData.getResidencyAddress())) + .withIdCard(new IdCard("207373011", LocalDate.now(), LocalDate.now().plusYears(5))); + } + + /** + * Creating new NonClient object used for prepare contract data with specific person. + * + * @return NonClient with yaml/default data. + */ + private NonClient createNonClient(HyposClientYamlData hyposClientYamlData, Person person, Harness harness) { + return harness.data().newNonClient() + .withBirthNumber(person.getBirthNumber()) + .withEmail(TestUtils.getEmailBasedOnRc(person.getBirthNumber())) + .withFirstName(person.getFirstName()) + .withLastName(person.getLastName()) + .withPlaceOfBirth(hyposClientYamlData.getPlaceOfBirth()) + .withNationality(hyposClientYamlData.getNationality()) + .withMaritalStatus(MaritalStatus.SINGLE) + .withEducationLevel(EducationLevel.HIGHER) + .withOccupationStatus(OccupationStatus.FULL_TIME_EMPLOYEE) + .withOccupationType(OccupationType.IT_GUYS) + .withAccommodationType(AccommodationType.PARENTS) + .withResidencyAddress(this.createAddress(hyposClientYamlData.getResidencyAddress())) + .withIdCard(new IdCard("207373011", LocalDate.now(), LocalDate.now().plusYears(5))); + } + + /** + * Creating new expenditures used for prepare contract data. + * + * @return List with yaml data. + */ + private List createExpenditures(List expenditureYamlData) { + return expenditureYamlData.stream() + .map(m -> Expenditure.builder() + .type(m.getType()) + .amount(m.getAmount()) + .correction(m.getCorrection()) + .build()) + .collect(Collectors.toList()); + } + + /** + * Creating new other incomes used for prepare contract data. + * + * @return List with yaml data. + */ + private List createOtherIncomes(List otherIncomeYamlData) { + if (otherIncomeYamlData == null) return Collections.emptyList(); + return otherIncomeYamlData.stream() + .map(m -> OtherIncome.builder() + .type(m.getType()) + .amount(m.getAmount()) + .currency(m.getCurrency()) + .paidToMmb(m.getPaidToMmb()) + .build()) + .collect(Collectors.toList()); + } + + /** + * Creating new other incomes used for prepare contract data. + * + * @return List with yaml data. + */ + private BusinessIncome createBusinessIncomes(BusinessIncomeYamlData businessIncomeYamlData) { + if (businessIncomeYamlData == null) return null; + return BusinessIncome.builder() + .turnoverLatest(businessIncomeYamlData.getTurnoverLatest()) + .taxBaseLatest(businessIncomeYamlData.getTaxBaseLatest()) + .paidTax(businessIncomeYamlData.getPaidTax()) + .costAccounting(businessIncomeYamlData.getCostAccounting()) + .naceCode(businessIncomeYamlData.getNaceCode()) + .turnoverPenultimate(businessIncomeYamlData.getTurnoverPenultimate()) + .taxBasePenultimate(businessIncomeYamlData.getTaxBasePenultimate()) + .ico(businessIncomeYamlData.getIco()) + .currency(businessIncomeYamlData.getCurrency()) + .startDate(businessIncomeYamlData.getStartDate()) + .build(); + } + + /** + * Creating new employee incomes used for prepare contract data. + * + * @return List with yaml data. + */ + private List createEmployeeIncomes(List employeeIncomeYamlData) { + if (employeeIncomeYamlData == null) return Collections.emptyList(); + return employeeIncomeYamlData.stream() + .map(m -> EmployeeIncome.builder() + .grossSalary(m.getGrossSalary()) + .netSalary(m.getNetSalary()) + .ico(m.getIco()) + .startDate(m.getStartDate()) + .type(m.getType()) + .profession(m.getProfession()) + .phone(m.getPhone()) + .currency(m.getCurrency()) + .build()) + .collect(Collectors.toList()); + } + + /** + * Creating new clients used for prepare contract data. + * + * @return List with yaml data. + */ + public List createHyposClients(HyposContractYamlData hyposContractYamlData, Person person, Harness harness) { + return hyposContractYamlData.getClients().stream() + .map(m -> HyposClient.builder() + .nonClient(person == null ? this.createNonClient(m, harness) : this.createNonClient(m, person, harness)) + .stayType(m.getStayType()) + .livingType(m.getLivingType()) + .otherIncomes(this.createOtherIncomes(m.getOtherIncomes())) + .businessIncome(this.createBusinessIncomes(m.getBusinessIncomes())) + .employeeIncomes(this.createEmployeeIncomes(m.getEmployeeIncomes())) + .expenditures(this.createExpenditures(m.getExpenditures())) + .firstIdentityType(m.getFirstIdentityType()) + .secondIdentityType(m.getSecondIdentityType()) + .cardifType(m.getCardifType()) + .clientRelation(m.getClientRelation()) + .household(m.getHousehold()) + .employee(m.getEmployee()) + .pep(m.getPep()) + .build()) + .collect(Collectors.toList()); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/IdCard.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/IdCard.java new file mode 100644 index 0000000..68ebc3e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/IdCard.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.util.data.client; + +import java.time.LocalDate; + +public class IdCard { + private String number; + private LocalDate validFrom; + private LocalDate validTo; + + public IdCard(String number, LocalDate validFrom, LocalDate validTo) { + this.number = number; + this.validFrom = validFrom; + this.validTo = validTo; + } + + public String getNumber() { + return number; + } + + public LocalDate getValidFrom() { + return validFrom; + } + + public LocalDate getValidTo() { + return validTo; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/IncomeSubtype.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/IncomeSubtype.java new file mode 100644 index 0000000..70d663d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/IncomeSubtype.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.util.data.client; + +import java.util.EnumSet; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +public enum IncomeSubtype { + UNEMPLOYMENT_SUPPORT("Podpora v nezaměstnanosti"), + EMPLOYMENT_PER_FIXED("Příjem ze závislé činnosti na dobu určitou"), + EMPLOYMENT_PER_INDEFINITE("Příjem ze závislé činnosti na dobu neurčitou"), + SALARY_ON_AGRMNT_TO_JOB_COMPLETE("Příjem na základě dohody o provedení práce"), + SALARY_ON_AGRMNT_TO_JOB_PERFORM("Příjem na základě dohody o pracovní činnosti"), + BUSINESS("Příjem z podnikání"), + RENT("Renta"), + OTHER("Jiný"), + SCHOLARSHIP("Stipendium"), + OLDAGE_PENSION("Starobní důchod"), + DISABILITY_PENSION("Invalidní důchod"), + WIDOW_PENSION("Vdovský důchod"), + OTHER_PENSION("Ostatní důchodové dávky a podpory"), + MATERNITY_ALLOWANCE("Peněžitá pomoc v mateřství"), + PARENTAL_ALLOWANCE("Rodičovský příspěvek"), + FOSTER_ALLOWANCE("Pěstounství"), + MAINTENANCE_ALLOWANCE("Výživné"), + SUBSISTENCE_ALLOWANCE("Diety"), + PROFIT_SHARE("(Spolu)Podíl na zisku subjektu"), + CAPITAL_ASSETS("Příjem z kapitálového majetku"), + RENTAL_IN_TAX_RETURN("Pronájem v DAP (Daňové přiznání)"), + RENTAL_OFF_TAX_RETURN("Pronájem mimo DAP (Daňové přiznání)"), + FUTURE_RENTAL("Budoucí příjem z pronájmu"); + + private final String ufoValue; + + private static final Map UFO_VALUES_LOOKUP = EnumSet.allOf(IncomeSubtype.class).stream() + .collect(Collectors.toMap(is -> is.ufoValue, Function.identity())); + + IncomeSubtype(String ufoValue) { + this.ufoValue = ufoValue; + } + + public String getUfoValue() { + return this.ufoValue; + } + + public static IncomeSubtype getByUfoValue(String ufoValue) { + return UFO_VALUES_LOOKUP.get(ufoValue); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/IncomeType.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/IncomeType.java new file mode 100644 index 0000000..7be46f4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/IncomeType.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.util.data.client; + +import java.util.EnumSet; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +public enum IncomeType { + EMPLOYMENT_INCOME("Příjem ze závislé činnosti"), + BUSINESS_INCOME("Příjem z podnikání"), + OTHER_INCOME("Ostatní příjmy"), + BENEFITS("Dávky a sociální podpory"); + + private final String ufoValue; + + private static final Map UFO_VALUES_LOOKUP = EnumSet.allOf(IncomeType.class).stream() + .collect(Collectors.toMap(it -> it.ufoValue, Function.identity())); + + IncomeType(String ufoValue) { + this.ufoValue = ufoValue; + } + + public String getUfoValue() { + return this.ufoValue; + } + + public static IncomeType getByUfoValue(String ufoValue) { + return UFO_VALUES_LOOKUP.get(ufoValue); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/MaritalStatus.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/MaritalStatus.java new file mode 100644 index 0000000..63fdca4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/MaritalStatus.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.util.data.client; + +import java.util.EnumSet; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +public enum MaritalStatus { + SINGLE("SINGLE", "1", "svobodný/svobodná", "Svobodný(á)"), + MARRIED("MARRIED", "2", "ženatý/vdaná", "Ženatý/vdaná"), + PARTNER("PARTNER", "3", "druh/družka", "Registrované partnerství"), + WIDOWED("WIDOWED", "4", "vdovec/vdova", "Vdovec/vdova"), + DIVORCED("DIVORCED", "5", "rozvedený/rozvedená", "Rozvedený(á)"); + + private final String apiValue; + private final String hcisValue; + private final String ufoValue; + private final String hyposValue; + + private static final Map UFO_VALUES_LOOKUP = EnumSet.allOf(MaritalStatus.class).stream() + .collect(Collectors.toMap(ms -> ms.ufoValue, Function.identity())); + + MaritalStatus(String apiValue, String hcisValue, String ufoValue, String hyposValue) { + this.apiValue = apiValue; + this.hcisValue = hcisValue; + this.ufoValue = ufoValue; + this.hyposValue = hyposValue; + } + + public String getApiValue() { + return apiValue; + } + + public String getHCisValue() { + return hcisValue; + } + + public String getUfoValue() { + return ufoValue; + } + + public String getHyposValue() { + return hyposValue; + } + + public static MaritalStatus getByUfoValue(String ufoValue) { + return UFO_VALUES_LOOKUP.get(ufoValue); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NewClient.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NewClient.java new file mode 100644 index 0000000..6e88219 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NewClient.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.util.data.client; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public class NewClient { + private NonClient clientData; + private String cif; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NewClientCommercial.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NewClientCommercial.java new file mode 100644 index 0000000..3babf02 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NewClientCommercial.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.util.data.client; + +import lombok.Getter; + +@Getter +public class NewClientCommercial extends NewClient { + private Long personId; + + public NewClientCommercial(NonClient clientData, String cif, Long personId) { + super(clientData, cif); + this.personId = personId; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NewClientWithCurrentAccountInformation.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NewClientWithCurrentAccountInformation.java new file mode 100644 index 0000000..6b73e1c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NewClientWithCurrentAccountInformation.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.util.data.client; +import cz.moneta.test.harness.support.auth.Credentials; +import lombok.Getter; +import lombok.Setter; + +@Getter +public class NewClientWithCurrentAccountInformation extends NewClient { + private String currentAccount; + @Setter + private Credentials credentials; + + public NewClientWithCurrentAccountInformation(NonClient clientData, String cif, String currentAccount) { + super(clientData, cif); + this.currentAccount = currentAccount; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NonClient.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NonClient.java new file mode 100644 index 0000000..def895c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/NonClient.java @@ -0,0 +1,380 @@ +package cz.moneta.test.dsl.util.data.client; + +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.code.lists.HCisVztahKBanceCIF; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.data.DataProvider; +import cz.moneta.test.harness.support.data.Date; +import cz.moneta.test.harness.support.data.Generate; +import cz.moneta.test.harness.support.data.Value; + +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.harness.support.data.GeneratorType.*; + +public interface NonClient extends DataProvider, StoreAccessor { + + @Generate(FIRST_NAME) + String firstName(); + + @Generate(LAST_NAME) + String lastName(); + + default String fullName() { + return String.format("%s %s", firstName(), lastName()); + } + + @Generate(RC) + String birthNumber(); + + @Generate(RC) + String birthNumber(LocalDate from, LocalDate to); + + @Value("Praha") + String placeOfBirth(); + + @Value("Česká republika") + String nationality(); + + @Value("208243633") + String idNumber(); + + @Value("09.06.2027") + String idNumberExpiration(); + + /** + * Check digit for default id number or set by method withIdNumber(). Not for generated ID. + */ + default String idNumberCheckDigit() { + return generate(ID_CARD_CHECK_DIGIT, idNumber(), birthNumber(), LocalDate.parse(idNumberExpiration(), DateTimeFormatter.ofPattern("d.M.yyyy"))); + } + + @Value("31.08.2026") + String drivingLicenceExpiration(); + + /** + * Generated ID Card. + * It can be hard setted by "withIdCard(new IdCard(String number, LocalDate validFrom, LocalDate validTo)" + */ + default IdCard idCard() { + LocalDate startDate = LocalDate.now().minusYears(50); + if (birthNumber() == null) { + this.birthNumber(startDate, startDate.plusYears(23)); + } + return generate(ID_CARD, birthNumber()); + } + + default IdCard idCard(LocalDate dateOfBirth) { + String rc = birthNumber(dateOfBirth, dateOfBirth); + return generate(ID_CARD, rc); + } + + /** + * Generated ID Card, if it hasn't been changed by "withIdCard()" + */ + default String idCardNumber() { + return idCard().getNumber(); + } + + /** + * Generated ID Card expiration, if it hasn't been changed by "withIdCard()" + */ + default java.util.Date idCardExpiredRaw() { + return java.util.Date.from(idCard().getValidTo().atStartOfDay(ZoneId.systemDefault()).toInstant()); + } + + /** + * Check digit for generated ID card. + */ + default String idCardCheckDigit() { + return generate(ID_CARD_CHECK_DIGIT, idCard().getNumber(), birthNumber(), idCard().getValidTo()); + } + + //FIXME after generator repaired in TA-398 + //@Generate(PASSPORT_NUMBER) + @Value("40199969") + String passportId(); + + //FIXME after generator repaired in TA-398 + //@Date(plusDays = 720) + @Date(dayOfMonth = 28, month = 7, year = 2026) + java.util.Date passportExpiryDateRaw(); + + @Value("EK608907") + String driverLicenceId(); + + @Date(plusDays = 720) + java.util.Date driveLicenceExpiryDateRaw(); + + @Generate(ICO) + String ico(); + + @Generate(RESIDENCY_ADDRESS) + Address residencyAddress(); + + default Address businessAddress() { + return Address.builder() + .street("Vinohradská") + .descriptiveNumber("168") + .orientationNumber("2356") + .city("Praha") + .zip("10000") + .country("CZ") + .build(); + } + + @Value("2000") + Integer residencyAddressSinceYear(); + + @Date(dayOfMonth = 28, month = 1, year = 2000) + java.util.Date currentAddressSinceRaw(); + + @Generate(MOBILE_PHONE_NUMBER) + String mobileNumber(); + + @Generate(FIX_LINE_PHONE_NUMBER) + String fixPhoneNumberWork(); + + @Generate(FIX_LINE_PHONE_NUMBER) + String fixPhoneNumberHome(); + + @Value("dummy.A1A2A3A4A5A6A7A8@moneta.cz") + String email(); + + default MaritalStatus maritalStatus() { + return MaritalStatus.SINGLE; + } + + @Value("") + String restrictedJoinedAssets(); + + @Value("2000") + Integer currentAddressSinceYear(); + + default AccommodationType accommodationType() { + return AccommodationType.OWN; + } + + default EducationLevel educationLevel() { + return EducationLevel.HIGHER; + } + + default OccupationStatus occupationStatus() { + return OccupationStatus.FULL_TIME_EMPLOYEE; + } + + default OccupationType occupationType() { + return OccupationType.MANAZER_REDITEL; + } + + default IncomeType incomeType() { + return IncomeType.EMPLOYMENT_INCOME; + } + + default IncomeSubtype incomeSubtype() { + return IncomeSubtype.EMPLOYMENT_PER_INDEFINITE; + } + + @Generate(EMPLOYER) + Employer employer(); + + @Date(dayOfMonth = 1, month = 1, year = 2000) + java.util.Date occupationEmploymentFromRaw(); + + @Date(dayOfMonth = 1, month = 1, year = 2025) + java.util.Date occupationEmploymentTillRaw(); + + @Date(minusDays = 1) + java.util.Date dateOfIssueConfirmationOfReceipt(); + + @Value("it programátor/software developer") + String occupationAdditionalInformation(); + + @Value("false") + boolean occupationTrialPeriod(); + + @Value("false") + boolean occupationOnNotice(); + + @Value("true") + boolean consentsDataProcessing(); + + @Value("true") + boolean consentsDebtRegisterCheck(); + + @Value("") + String familyBusiness(); + + @Value("") + String familyBusinessPercentage(); + + @Value("60000") + int netMonthlyIncome(); + + default int netMonthlyIncomeInThousands() { + return Math.round(netMonthlyIncome() / 1000); + } + + @Value("70000") + int homeIncome(); + + @Value("1") + String incomeSources(); + + @Value("") + String incomeTaxBase(); + + @Value("0") + Integer grossIncome(); + + @Value("") + String tax(); + + @Value("") + String taxableYear(); + + @Value("0") + int dependants(); + + @Value("0") + int otherLoanPayments(); + + @Value("0") + int wageDeductions(); + + @Value("0") + int otherExpenses(); + + @Value("1000") + int housingExpenses(); + + @Value("1500000") + int turnover(); + + @Value("1200000") + int netAnnuallyBusinessProfit(); + + @Value("120000") + int netMonthlyHouseholdIncome(); + + default Gender gender() { return Gender.MAN; } + + default HCisVztahKBanceCIF relationshipToTheBank() { + return HCisVztahKBanceCIF.NONE; + } + + default String birthDate() { + return TestUtils.parseBirthDateAsString(birthNumber()); + } + + NonClient withFirstName(String firstName); + + NonClient withLastName(String lastName); + + NonClient withBirthNumber(String birthNumber); + + NonClient withPlaceOfBirth(String placeOfBirth); + + NonClient withNationality(String nationality); + + NonClient withIdNumber(String idNumber); + + NonClient withIdNumberExpiration(String idNumberExpiration); + + NonClient withIdCard(IdCard idCard); + + NonClient withPassportId(String passportId); + + NonClient withPassportExpiryDateRaw(java.util.Date passportExpiryDateRaw); + + NonClient withDriverLicenceId(String driverLicenceId); + + NonClient withDriveLicenceExpiryDateRaw(java.util.Date driveLicenceExpiryDateRaw); + + NonClient withResidencyAddress(Address residencyAddress); + + NonClient withResidencyAddressSinceYear(Integer residencyAddressSinceYear); + + NonClient withCurrentAddressSinceRaw(java.util.Date currentAddressSinceRaw); + + NonClient withBusinessAddress(Address businessAddress); + + NonClient withMobileNumber(String mobileNumber); + + NonClient withFixPhoneNumberWork(String fixPhoneNumberWork); + + NonClient withFixPhoneNumberHome(String fixPhoneNumberHome); + + NonClient withEmail(String email); + + NonClient withMaritalStatus(MaritalStatus maritalStatus); + + NonClient withAccommodationType(AccommodationType accommodationType); + + NonClient withEducationLevel(EducationLevel educationLevel); + + NonClient withOccupationStatus(OccupationStatus occupationStatus); + + NonClient withOccupationType(OccupationType occupationType); + + NonClient withOccupationEmploymentFromRaw(java.util.Date occupationEmploymentFromRaw); + + NonClient withOccupationEmploymentTillRaw(java.util.Date occupationEmploymentTillRaw); + + NonClient withEmployer(Employer employer); + + NonClient withDateOfIssueConfirmationOfReceipt(java.util.Date dateOfIssueConfirmationOfReceipt); + + NonClient withOccupationAdditionalInformation(String occupationAdditionalInformation); + + NonClient withOccupationTrialPeriod(boolean occupationTrialPeriod); + + NonClient withOccupationOnNotice(boolean occupationOnNotice); + + NonClient withConsentsDataProcessing(boolean consentsDataProcessing); + + NonClient withConsentsDebtRegisterCheck(boolean consentsDebtRegisterCheck); + + NonClient withFamilyBusiness(String familyBusiness); + + NonClient withFamilyBusinessPercentage(String familyBusinessPercentage); + + NonClient withNetMonthlyIncome(int netMonthlyIncome); + + NonClient withNetMonthlyIncomeInThousands(int netMonthlyIncomeInThousands); + + NonClient withHomeIncome(int homeIncome); + + NonClient withIncomeTaxBase(String incomeTaxBase); + + NonClient withGrossIncome(Integer grossIncome); + + NonClient withTax(String tax); + + NonClient withTaxableYear(String taxableYear); + + NonClient withDependants(int dependants); + + NonClient withOtherLoanPayments(int otherLoanPayments); + + NonClient withWageDeductions(int wageDeductions); + + NonClient withOtherExpenses(int otherExpenses); + + NonClient withHousingExpenses(int housingExpenses); + + NonClient withIco(String ico); + + NonClient withIncomeSources(String incomeSources); + + NonClient withRelationshipToTheBank(HCisVztahKBanceCIF relationshipToTheBank); + + NonClient withIncomeType(IncomeType incomeType); + + NonClient withIncomeSubtype(IncomeSubtype incomeSubtype); + + NonClient withGender(Gender gender); + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/OccupationStatus.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/OccupationStatus.java new file mode 100644 index 0000000..136e5cc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/OccupationStatus.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.util.data.client; + +import java.util.EnumSet; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +public enum OccupationStatus { + FULL_TIME_EMPLOYEE("FULL_TIME_EMPLOYEE", "1", "Na dobu neurčitou", "doba neurčitá"), + FULL_TIME_EMPLOYEE_FINITE("FULL_TIME_EMPLOYEE_FINITE", "2", "Na dobu určitou", "doba určitá"), + ENTREPRENEUR("ENTREPRENEUR", "3", "Podnikatel", "TBD"), + RENTIER("RENTIER", "TBD", "Rentier", "TBD"), + RETIREE_DISABLED("RETIREE_DISABLED", "TBD","Důchodce - invalidní", "TBD"), + RETIREE_OLD_AGE("RETIREE_OLD_AGE", "TBD", "Důchodce - starobní", "TBD"); + + private final String apiValue; + private final String hcisValue; + private final String ufoValue; + private final String ufoConfirmationOfReceiptValue; + + private static final Map UFO_VALUES_LOOKUP = EnumSet.allOf(OccupationStatus.class).stream() + .collect(Collectors.toMap(os -> os.ufoValue, Function.identity())); + + OccupationStatus(String apiValue, String hcisValue, String ufoValue, String ufoConfirmationOfReceiptValue) { + this.apiValue = apiValue; + this.hcisValue = hcisValue; + this.ufoValue = ufoValue; + this.ufoConfirmationOfReceiptValue = ufoConfirmationOfReceiptValue; + } + + public String getApiValue() { + return apiValue; + } + + public String getHCisValue() { return hcisValue;} + + public String getUfoValue() { + return ufoValue; + } + + public String getUfoConfirmationOfReceiptValue() { + return ufoConfirmationOfReceiptValue; + } + + public static OccupationStatus getByUfoValue(String ufoValue) { + return UFO_VALUES_LOOKUP.get(ufoValue); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/client/OccupationType.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/OccupationType.java new file mode 100644 index 0000000..14cbe32 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/client/OccupationType.java @@ -0,0 +1,63 @@ +package cz.moneta.test.dsl.util.data.client; + +import java.util.EnumSet; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +public enum OccupationType { + //TODO - feel free to translate + UKLIZECKA("1", "uklízečka"), + DELNIK_REMESLNIK("2", "dělník/řemeslník"), + TECHNIK_RIDIC("3", "technik/řidič"), + PRODAVAC_PRODEJCE("4", "prodavač/prodejce"), + UCITEL("5", "učitel"), + ZDRAVOTNI_SESTRA_ZDRAVOTNI_PERSONAL("6", "zdravotní sestra/zdravotní personál"), + NIZSI_VEDOUCI_POZICE("7", "nižší vedoucí pozice"), + MANAZER_REDITEL("8", "manager/ředitel"), + OZBROJENE_STATNI_SLOZKY("9", "ozbrojené státní složky"), + PRAVNIK_ADVOKAT("10", "právník/advokát"), + ADMINISTRATIVNI_BANKOVNI_PRACOVNIK_UCETNI("11", "admin/bankovní pracovník/účetní"), + ODBORNY_PRACOVNIK_EXPERT_PILOT("12", "odborný pracovník/expert/pilot"), + LEKAR_ZUBAR("13", "lékař/zubař"), + VETERINAR("14", "veterinář"), + UMELECKA_PROFESE("15", "umělecká profese"), + SPORTOVEC_SPORTOVNI_TRENER("16", "sportovec/sportovní trenér"), + STATNI_SPRAVA("17", "státní správa"), + STAROSTA_POSLANEC_HEJTMAN_POLITIK("18", "starosta/poslanec/hejtman/politik"), + SOUDCE_STATNI_ZASTUPCE("19", "soudce/státní zástupce"), + PRACOVNIK_V_GASTRONOMII("20", "pracovník v gastronomii"), + STAVEBNI_PROJEKTANT_STATIK_ARCHITEKT("21", "staveb. projektant/statik/architekt"), + IT_GUYS("22", "it programátor/software developer"), + MASER_FYZIOTERAPEUT("23", "masér/fyzioterapeut"), + KADERNICE_KOSMETICKA_MANIKERKA("24", "kadeřnice/kosmetička/manikérka"), + TLUMOCNIK_PREKLADATEL("25", "tlumočník/překladatel"), + PORADCE_HR_KONZULTANT_REALITNI_MAKLER("26", "poradce/hr konzultant/real. makléř"), + PSYCHOLOG_PSYCHIATR_TERAPEUT("27", "psycholog/psychiatr/terapeut"), + PRUVODCI_REVIZOR_OBSLUZNY_PERSONAL("28", "průvodčí/revizor/obslužný personál"), + OPERATOR_CALL_CENTRA("29", "operátor call centra"), + SVOBODNE_POVOLANI("30", "svobodné povolání- zaměstnanec"), + PODNIKATEL("67", "podnikatel"); + + private static final Map UFO_VALUES_LOOKUP = EnumSet.allOf(OccupationType.class).stream() + .collect(Collectors.toMap(os -> os.ufoValue, Function.identity())); + private final String hcisValue; + private final String ufoValue; + + OccupationType(String hcisValue, String ufoValue) { + this.hcisValue = hcisValue; + this.ufoValue = ufoValue; + } + + public static OccupationType getByUfoValue(String ufoValue) { + return UFO_VALUES_LOOKUP.get(ufoValue); + } + + public String getHCisValue() { + return hcisValue; + } + + public String getUfoValue() { + return ufoValue; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/AccountNumberGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/AccountNumberGenerator.java new file mode 100644 index 0000000..3d3bc18 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/AccountNumberGenerator.java @@ -0,0 +1,72 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.dsl.util.task.udebs.UdebsTasks; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.data.Generator; +import org.apache.commons.lang3.StringUtils; + +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Stream; + +/** + * Generator of bank account number + * + * Usage: + * if you want random account number, just call harness.generate(GeneratorType.ACCOUNT_NUMBER); + * if you want unique partner account number for inkaso, you must specific client account number in parameter + * - for example harness.generate(GeneratorType.ACCOUNT_NUMBER, "215620573"); + * + * Sources: + * https://testy/generatory.html + * https://k3a.me/mod11.php + * https://www.radyzezivota.cz/jak-na-vlastni-cislo-bankovniho-uctu/ + */ +public class AccountNumberGenerator implements Generator { + + public String generate(StoreAccessor harness, Object... params) { + if (params.length == 0) { + return getRandomAccNum(); + } + + if (!(params[0] instanceof String)) { + throw new HarnessException("Unrecognized parameter"); + } + + String clientAccNum = (String) params[0]; + + return Stream.generate(this::getRandomAccNum) + .limit(10) + .filter(partnerAccNum -> !new UdebsTasks(harness).isExistInkasoCombination(clientAccNum, partnerAccNum)) + .findFirst() + .orElseThrow(() -> new HarnessException("Generated existing combination 10 times")); + } + + private String getRandomAccNum() { + return Stream.generate(() -> ThreadLocalRandom.current().nextInt(1, 2147483647)) + .filter(r -> checkMod11(String.valueOf(r))) + .findFirst() + .get() + .toString(); + } + + private boolean checkMod11(String base) { + int length = base.length(); + if (length > 10) { + return false; + } else if (length < 10) { + // pad with zeros + base = StringUtils.leftPad(base, 10, '0'); + } + + int[] weights = new int[]{1, 2, 4, 8, 5, 10, 9, 7, 3, 6}; + + int sum = 0; + String reversed = StringUtils.reverse(base); + for (int i = 0; i < reversed.length(); i++) { + sum += Integer.valueOf(reversed.substring(i, i + 1)) * weights[i]; + } + + return sum % 11 == 0; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/BasePhoneNumberGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/BasePhoneNumberGenerator.java new file mode 100644 index 0000000..7d401b0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/BasePhoneNumberGenerator.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.dsl.udebs.Udebs; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.Endpoint; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import cz.moneta.test.harness.support.data.Generator; + +import java.util.Optional; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Stream; + +@SuppressWarnings("all") +public abstract class BasePhoneNumberGenerator implements Generator { + + public String getPhoneNumber(int[] prefices, StoreAccessor harness) { + return Optional.of(harness.getEndpoint(UdebsEndpoint.class)) + .filter(Endpoint::canAccess) + .map(e -> getPhoneNumberAndCheckAgainstUdebs(prefices, harness)) + .orElseGet(() -> getRandomPhoneNumber(prefices)); + } + + protected String getPhoneNumberAndCheckAgainstUdebs(int[] prefixArray, StoreAccessor harness) { + return Stream.generate(() -> getRandomPhoneNumber(prefixArray)) + .filter(gn -> !new Udebs(harness) + .phone() + .existPhone(gn) + ) + .findFirst() + .get(); + } + + private String getRandomPhoneNumber(int[] prefixArray) { + long prefix = prefixArray[ThreadLocalRandom.current().nextInt(prefixArray.length)]; + long tail = ThreadLocalRandom.current().nextLong(1000000); + return String.format("%d%06d", prefix, tail); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/EmployerGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/EmployerGenerator.java new file mode 100644 index 0000000..fb677dc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/EmployerGenerator.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.Employer; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.data.Generator; + +import java.util.concurrent.ThreadLocalRandom; + +public class EmployerGenerator implements Generator { + + private static final Employer[] EMPLOYERS = new Employer[]{ + new Employer("Ministerstvo spravedlnosti", "00025429", Address.builder().street("Vyšehradská").descriptiveNumber("427").orientationNumber("16").city("Praha").zip("12000").country("CZ").build(), "221997111"), + // new Employer("Ministerstvo dopravy", "66003008", Address.builder().street("nábřeží Ludvíka Svobody").descriptiveNumber("1222").orientationNumber("12").city("Praha").zip("11000").country("CZ").build(), "225131111"), // TODO: DFM-23097 + new Employer("Ministerstvo zdravotnictví", "00024341", Address.builder().street("Palackého náměstí").descriptiveNumber("375").orientationNumber("4").city("Praha").zip("12000").country("CZ").build(), "224971111"), + new Employer("Ministerstvo zemědělství", "00020478", Address.builder().street("Těšnov").descriptiveNumber("65").orientationNumber("17").city("Praha").zip("11000").country("CZ").build(), "221811111"), + new Employer("Ministerstvo financí", "00006947", Address.builder().street("Letenská").descriptiveNumber("525").orientationNumber("15").city("Praha").zip("11000").country("CZ").build(), "225092392"), + new Employer("Ministerstvo obrany", "60162694", Address.builder().street("Tychonova").descriptiveNumber("221").orientationNumber("1").city("Praha").zip("16000").country("CZ").build(), "224252524"), + new Employer("Ministerstvo vnitra", "00007064", Address.builder().street("Nad štolou").descriptiveNumber("936").orientationNumber("3").city("Praha").zip("17000").country("CZ").build(), "224252524"), + new Employer("Ministerstvo kultury", "00023671", Address.builder().street("Maltézské náměstí").descriptiveNumber("471").orientationNumber("1").city("Praha").zip("11000").country("CZ").build(), "257085111"), + new Employer("Ministerstvo zahraničních věcí", "45769851", Address.builder().street("Loretánské náměstí").descriptiveNumber("101").orientationNumber("5").city("Praha").zip("11000").country("CZ").build(), "224181111"), + new Employer("Ministerstvo životního prostředí", "00164801", Address.builder().street("Vršovická").descriptiveNumber("1442").orientationNumber("65").city("Praha").zip("10000").country("CZ").build(), "267121111"), + new Employer("Ministerstvo průmyslu a obchodu", "47609109", Address.builder().street("Na Františku").descriptiveNumber("1039").orientationNumber("32").city("Praha").zip("11000").country("CZ").build(), "224851111"), + // new Employer("Ministerstvo pro místní rozvoj", "66002222", Address.builder().street("Staroměstské náměstí").descriptiveNumber("932").orientationNumber("6").city("Praha").zip("11000").country("CZ").build(), "224861138"), // TODO: DFM-23097 + new Employer("Ministerstvo školství", "00022985", Address.builder().street("Karmelitská").descriptiveNumber("427").orientationNumber("5").city("Praha").zip("11000").country("CZ").build(), "234811111"), + new Employer("Ministerstvo práce a sociálních věcí", "00551023", Address.builder().street("Na Poříčním právu").descriptiveNumber("376").orientationNumber("1").city("Praha").zip("12000").country("CZ").build(), "221921111"), + new Employer("Zařízení služeb pro Ministerstvo vnitra", "67779999", Address.builder().street("Přípotoční").descriptiveNumber("300").orientationNumber("12").city("Praha").zip("10000").country("CZ").build(), "224252524") + }; + + @Override + public Employer generate(StoreAccessor harness, Object... params) { + return EMPLOYERS[ThreadLocalRandom.current().nextInt(EMPLOYERS.length)]; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/FirstNameGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/FirstNameGenerator.java new file mode 100644 index 0000000..1ee9cc9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/FirstNameGenerator.java @@ -0,0 +1,52 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.dsl.util.data.client.Gender; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.data.Generator; + +import java.util.concurrent.ThreadLocalRandom; + +public class FirstNameGenerator implements Generator { + + private static final String[] FIRST_NAMES = new String[]{ + "Adam", "Adolf", "Adrian", "Alan", "Albert", "Aleš", "Alex", "Alexander", "Alexandr", "Alexej", "Alfred", "Alois", "Andrej", "Anton", "Antonín", + "Arnošt", "Artur", "Augustin", "Bartoloměj", "Bedřich", "Benedikt", "Benjamin", "Blahoslav", "Bohdan", "Bohumil", "Bohumír", "Bohuslav", "Boleslav", + "Boris", "Bořek", "Bořivoj", "Bronislav", "Bruno", "Břetislav", "Ctibor", "Ctirad", "Cyril", "Čeněk", "Čestmír", "Dalibor", "Damián", "Dan", + "Daniel", "David", "Denis", "Dominik", "Drahomír", "Drahoslav", "Dušan", "Eduard", "Edvard", "Eliáš", "Emanuel", "Emil", "Erik", "Ervín", "Evžen", + "Felix", "Ferdinand", "Filip", "František", "Gabriel", "Gustav", "Herbert", "Hubert", "Hugo", "Hynek", "Christian", "Igor", "Imrich", "Ivan", "Ivo", + "Jáchym", "Jakub", "Jan", "Jarmil", "Jaromír", "Jaroslav", "Jindřich", "Jiří", "Jonáš", "Josef", "Jozef", "Julius", "Július", "Juraj", "Kamil", + "Karel", "Kevin", "Kristian", "Kristián", "Kryštof", "Květoslav", "Ladislav", "Leo", "Leopold", "Leoš", "Libor", "Lubomír", "Lubor", "Luboš", + "Luděk", "Ludvík", "Lukáš", "Lumír", "Marcel", "Marek", "Marián", "Mario", "Martin", "Matěj", "Matouš", "Matyáš", "Max", "Maxmilián", "Metoděj", + "Michael", "Michal", "Mikuláš", "Milan", "Miloslav", "Miloš", "Miroslav", "Mojmír", "Nicolas", "Nikolas", "Norbert", "Oldřich", "Oliver", "Ondřej", + "Oskar", "Ota", "Otakar", "Oto", "Otto", "Patrik", "Pavel", "Pavol", "Peter", "Petr", "Prokop", "Přemysl", "Radek", "Radim", "Radislav", "Radko", + "Radomil", "Radomír", "Radoslav", "Radovan", "René", "Richard", "Robert", "Robin", "Roland", "Roman", "Rostislav", "Rudolf", "Samuel", "Sebastián", + "Slavomír", "Stanislav", "Svatopluk", "Svatoslav", "Šimon", "Štefan", "Štěpán", "Tadeáš", "Teodor", "Theodor", "Tibor", "Tobiáš", "Tomáš", "Václav", + "Vasil", "Vavřinec", "Vendelín", "Věroslav", "Viktor", "Vilém", "Viliam", "Vincent", "Vít", "Vítek", "Vítězslav", "Vladimír", "Vladislav", + "Vlastimil", "Vlastimír", "Vlastislav", "Vojtěch", "Vratislav", "Zbyněk", "Zbyšek", "Zdeněk" + }; + + private static final String[] WOMAN_FIRST_NAMES = new String[]{ + "Adéla", "Adriana", "Agáta", "Alena", "Alenka", "Alex", "Alexandra", "Alice", "Alžběta", "Amálie", "Anděla", "Andrea", "Aneta", "Anežka", "Anita", + "Anna", "Antonie", "Bára", "Barbara", "Barbora", "Beáta", "Blanka", "Blažena", "Bohdana", "Bohumila", "Božena", "Bronislava", "Dagmar", "Dana", + "Daniela", "Danuše", "Danuška", "Darina", "Dáša", "Denisa", "Diana", "Dita", "Dominika", "Dorota", "Drahomíra", "Drahoslava", "Edita", "Elen", "Elena", + "Eliška", "Ella", "Ema", "Emilie", "Emma", "Erika", "Ester", "Eva", "Františka", "Gabriela", "Hana", "Hedvika", "Helena", "Ilona", "Ingrid", "Irena", + "Iva", "Ivana", "Ivanka", "Iveta", "Ivona", "Jana", "Jarmila", "Jaromíra", "Jaroslava", "Jindra", "Jindřiška", "Jiřina", "Jitka", "Johana", "Jolana", + "Josefa", "Julie", "Kamila", "Karin", "Karla", "Karolina", "Karolína", "Kateřina", "Klára", "Klaudie", "Kristina", "Kristýna", "Květa", "Květoslava", + "Květuše", "Lada", "Ladislava", "Laura", "Lea", "Lenka", "Leona", "Libuše", "Lidmila", "Liliana", "Linda", "Lucie", "Ludmila", "Lydie", "Magda", + "Magdalena", "Magdaléna", "Marcela", "Margita", "Maria", "Mariana", "Marie", "Marika", "Markéta", "Marta", "Martina", "Michaela", "Michala", "Milada", + "Milena", "Miloslava", "Miluše", "Miluška", "Miriam", "Miroslava", "Monika", "Naďa", "Naděžda", "Natalie", "Nataša", "Nela", "Nella", "Nicol", "Nicole", + "Nikol", "Nikola", "Nina", "Oldřiška", "Olga", "Ota", "Patricie", "Pavla", "Pavlína", "Petra", "Radana", "Radka", "Radmila", "Radomíra", "Regina", + "Renata", "Renáta", "René", "Romana", "Rozálie", "Růžena", "Sabina", "Sandra", "Sára", "Silvie", "Simona", "Sofie", "Soňa", "Stanislava", "Svatava", + "Světlana", "Sylva", "Sylvie", "Šárka", "Štěpánka", "Tamara", "Táňa", "Taťána", "Tereza", "Terezie", "Václava", "Valentýna", "Valerie", "Vanda", "Vanesa", + "Vanessa", "Vendula", "Věra", "Veronika", "Viera", "Viktorie", "Vilma", "Vladimíra", "Vladislava", "Vlasta", "Vlastimila", "Yveta", "Yvona", "Zdena", + "Zdenka", "Zdeňka", "Zlata", "Zlatuše", "Zora", "Zuzana", "Žaneta", "Žofie" + }; + + @Override + public String generate(StoreAccessor harness, Object... params) { + if (params != null && params.length != 0 && params[0] instanceof Gender && params[0] == Gender.WOMAN) { + return WOMAN_FIRST_NAMES[ThreadLocalRandom.current().nextInt(WOMAN_FIRST_NAMES.length)]; + } + return FIRST_NAMES[ThreadLocalRandom.current().nextInt(FIRST_NAMES.length)]; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/FixLinePhoneNumberGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/FixLinePhoneNumberGenerator.java new file mode 100644 index 0000000..69ef9df --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/FixLinePhoneNumberGenerator.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.harness.context.StoreAccessor; + +public class FixLinePhoneNumberGenerator extends BasePhoneNumberGenerator { + + private static final int[] FIX_PREFICES = new int[]{ + 222, 540, 599, 377, 378, 485, 585, 326, 475, 495, 385, 466, 570 + }; + + @Override + public String generate(StoreAccessor harness, Object... params) { + return getPhoneNumber(FIX_PREFICES, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/IcoGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/IcoGenerator.java new file mode 100644 index 0000000..eb544af --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/IcoGenerator.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.dsl.util.task.ods.OdsTasks; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.support.data.Generator; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.List; +import java.util.Optional; +import java.util.concurrent.ThreadLocalRandom; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * Formula https://cs.wikipedia.org/wiki/Identifika%C4%8Dn%C3%AD_%C4%8D%C3%ADslo_osoby + */ +public class IcoGenerator implements Generator { + + public String generate(StoreAccessor harness, Object... params) { + return Stream.>>of( + () -> Optional.ofNullable(harness) + .filter(h -> h.getEndpoint(OdsEndpoint.class).canAccess()) + .map(IcoGenerator::getUniqueIco), + () -> Optional.of(generate())) + .map(Supplier::get) + .filter(Optional::isPresent) + .map(Optional::get) + .findFirst() + .orElse(null); + } + + private static String getUniqueIco(StoreAccessor harness) { + OdsTasks ods = new OdsTasks(harness); + return Stream.generate(IcoGenerator::generate) + .limit(20) + .filter(ico -> ods.findIco(ico).isEmpty()) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Failed to generate unique ICO after 20 trials")); + } + + public static String generate() { + return Stream.iterate(8, n -> n - 1) + .limit(7) + .map(i -> { + Integer rnd = ThreadLocalRandom.current().nextInt(9) + 1; + return Pair.of(rnd, (i * rnd)); + }) + .collect(Collectors.collectingAndThen(Collectors.toList(), IcoGenerator::composeIco)); + } + + private static String composeIco(List> pairIcoList) { + int sum = pairIcoList.stream().mapToInt(Pair::getRight).sum(); + int lastNumber = (11 - sum % 11) % 10; + return pairIcoList.stream().map(Pair::getLeft) + .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append) + .append(lastNumber) + .toString(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/IdCardCheckDigitGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/IdCardCheckDigitGenerator.java new file mode 100644 index 0000000..dd6da3c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/IdCardCheckDigitGenerator.java @@ -0,0 +1,251 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.data.Generator; +import lombok.Getter; + +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Class for calculate czech personal ID check digit. + * Class imported from APM and modified for Harness usage + * + * Vypocita posledni kontrolni cislici na druhem radku strojove citelnych udaju na OP. + *

+ * Vstupy: + * DOC_NUMBER - cislo OP + * PERSONAL_NUMBER - rodne cislo ve formatu RRMMDD1234 + * DATE_OF_EXPIRY - datum expirace OP ve formatu dd.MM.yyyy + *

+ * Vystupy: + * CHECK_SUM - kontrolni cislice + * + * @author Josef Mezera (123023137) + * @since 14.10.2011 + * + */ +public class IdCardCheckDigitGenerator implements Generator { + + private final int[] SCALES = {7, 3, 1}; + private final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyMMdd"); + + @Override + public String generate(StoreAccessor harness, Object... params) { + LocalDate dateOfExpiry = Optional.ofNullable(params) + .filter(p -> p.length == 3) + .map(p -> p[2]) + .filter(LocalDate.class::isInstance) + .map(LocalDate.class::cast) + .orElseThrow(() -> new HarnessException("IdCardCheckDigitGenerator expect exactly 3 parameters")); + + return String.valueOf(calculateCheckDigit(String.valueOf(params[0]), String.valueOf(params[1]), dateOfExpiry)); + } + + public int calculateCheckDigit(String idNumber, String rc, LocalDate dateOfExpiry) { + // validate inputs + if (idNumber == null || idNumber.isEmpty() || rc == null || rc.isEmpty() || dateOfExpiry == null) { + throw new HarnessException("Error during calculate IdCard check digit"); + } + + // parse data from inputs + PersonalID pid = new PersonalID().parse(rc); + String personalDate = DATE_FORMAT.format(pid.getBirthDate()); + String personalID = pid.getSecondPart(); + String expiryDate = dateOfExpiry.format(DateTimeFormatter.ofPattern("yyMMdd")); + + // RQ249072: uprava vypoctu kontrolni cislice u OP vydavanych od 1.1.2012 + if (idNumber.startsWith("2")) { + personalID = ""; + } + + // calculate check numbers + int idCheckNumber = calcCheckNumber(idNumber); + int personalDateCheckNumber = calcCheckNumber(personalDate); + int expiryCheckNumber = calcCheckNumber(expiryDate); + + // result + return calcCheckNumber( + createCompleteNumberLine(idNumber, personalDate, personalID, expiryDate, idCheckNumber, personalDateCheckNumber, expiryCheckNumber)); + } + + private int calcCheckNumber(String number) { + int counter = 0; + int result = 0; + for (int i = 0; i < number.length(); i++) { + int num = Integer.parseInt(Character.toString(number.charAt(i))); + result = result + (num * SCALES[counter]); + counter++; + if (counter > 2) { + counter = 0; + } + } + result = result % 10; + + return result; + } + + private String createCompleteNumberLine(String idNumber, String personalDate, String personalID, String expiryDate, int docCheckNumber, int personalDateCheckNumber, int expiryCheckNumber) { + return idNumber + docCheckNumber + personalDate + personalDateCheckNumber + expiryDate + expiryCheckNumber + personalID; + } + + /** + * Auxiliary class for parsing czech birth number. + * + * @author 123030245 + * @see #parse(String) + *

+ * Class imported from APM + * Removed unused methods + */ + @Getter + public class PersonalID { + + /** + * Regex parsing failed + */ + private boolean failed; + + /** + * Gender of PIN + */ + private int gender = -1; + + /** + * Date of birth + */ + private Date birthDate; + + /** + * Part of PIN after date + */ + private String secondPart; + + /** + * internal PIN + */ + private String internalPIN; + + private static final Pattern PID_PATTERN = Pattern.compile("^(\\d{2})(\\d{2})(\\d{2})/??(\\d{3,4})?$"); + + /** + * Code for male + */ + private static final int MALE = 0; + + /** + * Code for female + */ + private static final int FEMALE = 1; + + private PersonalID() { + } + + /** + * Parse personal id string + * + * @param personalId + * @return instance of {@link PersonalID} + */ + public PersonalID parse(String personalId) { + + // Creates result object + PersonalID result = new PersonalID(); + + // Setup internal PID + result.internalPIN = personalId; + + Matcher matcher = null; + // Check if parsing failed + result.failed = personalId == null || (matcher = PID_PATTERN.matcher(personalId)) == null || matcher.matches() == false; + + // Parse PID + if (result.failed == false) { + + int year = Integer.parseInt(matcher.group(1)); + int month = Integer.parseInt(matcher.group(2)); + int day = Integer.parseInt(matcher.group(3)); + + result.secondPart = matcher.group(4); + + // check if second part isn't empty + if ("".equals(result.secondPart)) { + result.failed = true; + } + int length = result.getLength(); + + // Correct month and year and set up gender + if (month > 70 && length == 10) { + + month -= 70; + result.gender = FEMALE; + + } else if (month > 50) { + + month -= 50; + result.gender = FEMALE; + + } else if (month > 20 && length == 10) { + + month -= 20; + result.gender = MALE; + + } else { + + result.gender = MALE; + } + + if (year < 54 && length == 10) { + year += 2000; + } else { + year += 1900; + } + + // Create date of birth + result.birthDate = createDate(year, month, day); + } + + return result; + } + + /** + * Check input parameters and creates specified date + * + * @param year + * @param month + * @param date + * @return specified date or null if any parameter is invalid + */ + private static Date createDate(int year, int month, int date) { + + // init calendar + Calendar calendar = Calendar.getInstance(new Locale("cs", "CZ")); + + // set calendar to specified date + calendar.clear(); + calendar.set(year, month - 1, date); + + // Check if specified parameters are corresponding to created date + if (calendar.get(Calendar.YEAR) != year || calendar.get(Calendar.DATE) != date || calendar.get(Calendar.MONTH) != month - 1) { + return null; + } + + return calendar.getTime(); + } + + + /** + * Detects the length of the underlying PID + * + * @return length of the PID (treated as a String) + */ + public int getLength() { + return internalPIN != null ? internalPIN.replaceAll("/", "").length() : 0; + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/IdCardGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/IdCardGenerator.java new file mode 100644 index 0000000..5b6cc8c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/IdCardGenerator.java @@ -0,0 +1,151 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.IdCard; +import cz.moneta.test.dsl.util.task.mvcr.MvcrTasks; +import cz.moneta.test.dsl.util.task.nasdb.NasDbTasks; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.data.Generator; +import org.apache.commons.lang3.Range; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.*; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Stream; + +import static java.time.temporal.ChronoUnit.YEARS; + +/** + * Generate random ID issued through the year 2018 with default validity set to 10 years (person 15 - 69 years old when issued). + */ +public class IdCardGenerator implements Generator { + private static final Logger logger = LogManager.getLogger(IdCardGenerator.class); + + private static final LocalDate INITIAL_DATE = LocalDate.of(2000, 1, 3); + private static final int IDCARD_DEFAULT_VALIDITY_YEARS = 10; + + private static final Map, Coefficients> COEFFICIENTS = new HashMap, Coefficients>() {{ + put(Range.between(209127454, 209417120), Coefficients.of(3.2752797189192423E-19, 0, -0.04272685301755383, 5946347.60536327)); + put(Range.between(209417121, 209746461), Coefficients.of(0, -2.822014571389389E-11, 0.012099543121958684, -1289576.6013491666)); + put(Range.between(209746462, 210131118), Coefficients.of(0, 0, 2.3645814848137332E-4, -42841.37467391353)); + put(Range.between(210131119, 210462589), Coefficients.of(7.57301930917743E-19, -2.38294971484551E-10, 0, 3502262.90406278)); + }}; + + private static final Integer MIN_NUMBER = COEFFICIENTS.keySet().stream() + .map(Range::getMinimum) + .min(Comparator.naturalOrder()) + .orElseThrow(() -> new IllegalStateException("Could not determine minimum ID Card number")); + + private static final Integer MAX_NUMBER = COEFFICIENTS.keySet().stream() + .map(Range::getMaximum) + .max(Comparator.naturalOrder()) + .orElseThrow(() -> new IllegalStateException("Could not determine maximum ID Card number")); + + @Override + public IdCard generate(StoreAccessor harness, Object... params) { + Optional birthDate = getBirthDate(params); + MvcrTasks mvcrTasks = new MvcrTasks((Harness) harness); + NasDbTasks nasDbTasks = new NasDbTasks(harness); + Pair id = Stream.generate(this::getIdNumberAndIssueDate) + .filter(p -> DateUtils.isWorkingDay(p.getRight())) + .filter(p -> birthDate.map(p.getRight()::isAfter).orElse(true)) + .limit(10) + .filter(p -> mvcrTasks.checkIdCardValidityWso2(p.getLeft().toString())) + .filter(p -> !nasDbTasks.checkPresentIdOnBlacklist(p.getLeft().toString())) + .findFirst() + .orElseThrow(() -> new HarnessException("Failed to generate appropriate ID card after 10 attempts")); + int validityYears = resolveValidity(birthDate); + logger.log(Level.INFO, "Generated ID card number {} with expiration {}.", id.getLeft(), id.getRight().plusYears(validityYears)); + return new IdCard(String.valueOf(id.getLeft()), id.getRight(), id.getRight().plusYears(validityYears)); + } + + private int resolveValidity(Optional birthDate) { + return Optional.ofNullable(birthDate) + .map(d -> YEARS.between(d.get(), LocalDate.now())) // Count age + .map(age -> { + if (age < 15) { + return 5; + } else if (age >= 70) { + return 35; + } else { + return IDCARD_DEFAULT_VALIDITY_YEARS; + } + }) + .orElse(IDCARD_DEFAULT_VALIDITY_YEARS); + } + + private Optional getBirthDate(Object[] params) { + return Optional.ofNullable(params) + .filter(p -> p.length == 1) + .map(p -> p[0]) + .map(String::valueOf) + .map(TestUtils::parseBirthDate) + .map(LocalDate.class::cast); + } + + private Pair getIdNumberAndIssueDate() { + int cardNumber = ThreadLocalRandom.current().nextInt(MIN_NUMBER, MAX_NUMBER + 1); + LocalDate date = COEFFICIENTS.entrySet().stream() + .filter(e -> e.getKey().contains(cardNumber)) + .map(Map.Entry::getValue) + .map(cs -> getNumberOfDays(cardNumber, cs)) + .map(INITIAL_DATE::plusDays) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Failed to generate ID card issue date")); + return Pair.of(cardNumber, date); + } + + private int getNumberOfDays(int cardNumber, Coefficients coefs) { + BigDecimal number = BigDecimal.valueOf(cardNumber); + return coefs.getC4() + .add(coefs.getC3().multiply(number)) + .add(coefs.getC2().multiply(number.pow(2))) + .add(coefs.getC1().multiply(number.pow(3))) + .intValue(); + } + + private static class Coefficients { + + private final BigDecimal c1; + private final BigDecimal c2; + private final BigDecimal c3; + private final BigDecimal c4; + + private Coefficients(double c1, double c2, double c3, double c4) { + this.c1 = BigDecimal.valueOf(c1); + this.c2 = BigDecimal.valueOf(c2); + this.c3 = BigDecimal.valueOf(c3); + this.c4 = BigDecimal.valueOf(c4); + } + + private static Coefficients of(double c1, double c2, double c3, double c4) { + return new Coefficients(c1, c2, c3, c4); + } + + private BigDecimal getC1() { + return c1; + } + + private BigDecimal getC2() { + return c2; + } + + private BigDecimal getC3() { + return c3; + } + + private BigDecimal getC4() { + return c4; + } + + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/LastNameGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/LastNameGenerator.java new file mode 100644 index 0000000..5b68db6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/LastNameGenerator.java @@ -0,0 +1,130 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.dsl.util.data.client.Gender; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.data.Generator; + +import java.util.concurrent.ThreadLocalRandom; + +public class LastNameGenerator implements Generator { + + private static final String[] LAST_NAMES = new String[]{ + "Adamec", "Adámek", "Ambrož", "Anděl", "Bajer", "Balog", "Baloun", "Bareš", "Bárta", "Barták", "Bartoš", "Bartošek", "Bartůněk", "Bašta", "Bauer", + "Bayer", "Bečvář", "Bednář", "Bednařík", "Bělohlávek", "Benda", "Beneš", "Beran", "Beránek", "Berka", "Bezděk", "Bílek", "Bílý", "Bittner", "Bláha", + "Blažek", "Blecha", "Boček", "Boháč", "Boháček", "Borovička", "Bouček", "Brabec", "Brabenec", "Bradáč", "Brázda", "Brázdil", "Brejcha", "Brož", + "Brožek", "Brychta", "Březina", "Buchta", "Burda", "Bureš", "Burian", "Buriánek", "Cibulka", "Cihlář", "Císař", "Coufal", "Čáp", "Čapek", "Čech", + "Čejka", "Čermák", "Černík", "Černohorský", "Černoch", "Černý", "Červeňák", "Červenka", "Červený", "Červinka", "Čihák", "Čížek", "Daněk", "Diviš", + "Dlouhý", "Dobeš", "Dobrovolný", "Dočekal", "Dočkal", "Dohnal", "Dokoupil", "Doleček", "Dolejš", "Dolejší", "Doležal", "Doležel", "Dostál", + "Doubek", "Doubrava", "Drábek", "Drozd", "Dubský", "Duda", "Dudek", "Dušek", "Dvorský", "Dvořáček", "Dvořák", "Erben", "Fiala", "Fischer", "Fišer", + "Fojtík", "Forman", "Formánek", "Fousek", "Franc", "Franěk", "Fučík", "Fuchs", "Fuksa", "Hájek", "Hajný", "Hampl", "Hanáček", "Hanák", "Hanousek", + "Hanus", "Hanuš", "Hanzal", "Hanzlík", "Hašek", "Havel", "Havelka", "Havlíček", "Havlík", "Havránek", "Hejda", "Hejl", "Hejna", "Herman", "Heřman", + "Heřmánek", "Hladík", "Hladký", "Hlaváč", "Hlaváček", "Hlavatý", "Hlávka", "Hloušek", "Hoffmann", "Hofman", "Holan", "Holeček", "Holík", "Holoubek", + "Holub", "Holý", "Homola", "Homolka", "Hora", "Horáček", "Horák", "Horký", "Horňák", "Horníček", "Horník", "Horský", "Horvát", "Horváth", "Hořejší", + "Hošek", "Houdek", "Houška", "Hovorka", "Hrabal", "Hrabovský", "Hradecký", "Hradil", "Hrbáček", "Hrbek", "Hrdina", "Hrdlička", "Hrdý", "Hrnčíř", + "Hromádka", "Hron", "Hrubeš", "Hrubý", "Hruška", "Hubáček", "Hudec", "Hudeček", "Huml", "Husák", "Chaloupka", "Chalupa", "Charvát", "Chládek", + "Chmelař", "Chmelík", "Chovanec", "Chromý", "Chudoba", "Chvátal", "Chytil", "Jahoda", "Jakoubek", "Jakubec", "Janáček", "Janák", "Janata", "Jančík", + "Janda", "Janeček", "Janečka", "Janíček", "Janík", "Janota", "Janoušek", "Janovský", "Jánský", "Jaroš", "Javůrek", "Jedlička", "Jelínek", "Jeřábek", + "Ježek", "Jílek", "Jindra", "Jirák", "Jiránek", "Jirásek", "Jiroušek", "Kabát", "Kadlec", "Kafka", "Kaiser", "Kalina", "Kalivoda", "Kalousek", + "Kameník", "Kaňka", "Kantor", "Karas", "Karásek", "Kasal", "Kašpar", "Kašpárek", "Kazda", "Klečka", "Klement", "Klíma", "Klimeš", "Klouda", + "Knotek", "Kocián", "Kocourek", "Kočí", "Kohout", "Kohoutek", "Koláček", "Kolář", "Kolařík", "Komárek", "Komínek", "Konečný", "Koníček", "Kopal", + "Kopecký", "Kopeček", "Kopřiva", "Kořínek", "Kos", "Kosina", "Kostka", "Košťál", "Kotek", "Kouba", "Koubek", "Koudela", "Koudelka", "Koukal", + "Kouřil", "Koutný", "Kováč", "Kovář", "Kovařík", "Kovářík", "Kozák", "Kozel", "Krajíček", "Král", "Králíček", "Králík", "Krátký", "Kratochvíl", + "Kraus", "Krčmář", "Krejčí", "Krejčík", "Krejčíř", "Kropáček", "Kroupa", "Krupička", "Krupka", "Křeček", "Křenek", "Křivánek", "Kříž", "Křížek", + "Kubát", "Kubec", "Kubelka", "Kubeš", "Kubica", "Kubíček", "Kubík", "Kubín", "Kubiš", "Kučera", "Kudláček", "Kuchař", "Kulhánek", "Kulhavý", "Kunc", + "Kuneš", "Kupka", "Kvapil", "Kvasnička", "Kysela", "Landa", "Lang", "Langer", "Lavička", "Levý", "Linhart", "Liška", "Lorenc", "Louda", "Lukeš", + "Macek", "Macura", "Mach", "Mácha", "Macháček", "Machala", "Machálek", "Machek", "Majer", "Málek", "Malík", "Malina", "Malý", "Maňák", "Mareček", + "Marek", "Mareš", "Maršálek", "Maršík", "Martinec", "Martinek", "Martínek", "Mařík", "Mašek", "Matějíček", "Matějka", "Matoušek", "Matula", + "Matuška", "Mayer", "Medek", "Melichar", "Mencl", "Menšík", "Merta", "Michalec", "Michálek", "Michalík", "Mikeš", "Mikula", "Minařík", "Mládek", + "Mlejnek", "Mokrý", "Moravec", "Morávek", "Motyčka", "Moučka", "Moudrý", "Mráček", "Mráz", "Mrázek", "Mrkvička", "Mucha", "Musil", "Mužík", + "Navrátil", "Nečas", "Nedbal", "Nedoma", "Nedvěd", "Nejedlý", "Němec", "Němeček", "Nesvadba", "Neumann", "Nosek", "Nováček", "Novák", "Novosad", + "Novotný", "Nový", "Odehnal", "Oliva", "Ondráček", "Paleček", "Pánek", "Pašek", "Patočka", "Pavelka", "Pavlas", "Pavlica", "Pavlíček", "Pavlík", + "Pazdera", "Pecka", "Pech", "Pecha", "Pecháček", "Pekárek", "Pekař", "Pelc", "Pelikán", "Peroutka", "Peřina", "Pešek", "Peterka", "Petr", "Petrák", + "Petříček", "Petřík", "Pilař", "Pilát", "Plaček", "Plachý", "Podzimek", "Pohl", "Pokorný", "Poláček", "Polách", "Polák", "Polášek", "Polívka", + "Popelka", "Pospíchal", "Pospíšil", "Potůček", "Prachař", "Prášek", "Pražák", "Prchal", "Procházka", "Prokeš", "Prokop", "Prošek", "Provazník", + "Průcha", "Průša", "Přibyl", "Příhoda", "Přikryl", "Pšenička", "Ptáček", "Rada", "Rambousek", "Rezek", "Richter", "Roubal", "Rozsypal", "Růžek", + "Růžička", "Ryšavá", "Ryšavý", "Řeháček", "Řehák", "Řezáč", "Řezníček", "Říha", "Sedláček", "Sedlák", "Sedlář", "Sehnal", "Seidl", "Sekanina", + "Severa", "Schejbal", "Schneider", "Schwarz", "Sikora", "Sivák", "Skácel", "Skála", "Skalický", "Sklenář", "Skopal", "Skřivánek", "Slabý", "Sládek", + "Sladký", "Sláma", "Slanina", "Slavíček", "Slavík", "Slezák", "Slováček", "Slovák", "Sluka", "Smejkal", "Smékal", "Smetana", "Smolík", "Smolka", + "Smrčka", "Smutný", "Sobotka", "Sochor", "Sojka", "Sokol", "Souček", "Soukup", "Spáčil", "Staněk", "Stárek", "Starý", "Stehlík", "Steiner", + "Stejskal", "Straka", "Stránský", "Strejček", "Strnad", "Strouhal", "Studený", "Studnička", "Stuchlík", "Stupka", "Suchánek", "Suchomel", "Suchý", + "Svatoš", "Svoboda", "Sýkora", "Synek", "Syrový", "Šafařík", "Šafránek", "Šašek", "Šebek", "Šebesta", "Šedivý", "Šesták", "Ševčík", "Šíma", + "Šimáček", "Šimánek", "Šimeček", "Šimek", "Šimůnek", "Šindelář", "Šípek", "Široký", "Šiška", "Škoda", "Šlechta", "Šmejkal", "Šmíd", "Šnajdr", + "Šolc", "Špaček", "Šrámek", "Šťastný", "Štefan", "Štefek", "Štěpán", "Štěpánek", "Šubrt", "Šulc", "Šustr", "Švanda", "Švarc", "Švec", "Švehla", + "Švejda", "Švestka", "Táborský", "Teplý", "Tesař", "Tichý", "Toman", "Tománek", "Tomášek", "Tomeček", "Tomek", "Tomeš", "Trávníček", "Trnka", + "Trojan", "Truhlář", "Tuček", "Tůma", "Tureček", "Turek", "Uhlíř", "Ulrich", "Urban", "Urbanec", "Urbánek", "Vacek", "Václavek", "Václavík", + "Vaculík", "Vágner", "Vácha", "Valášek", "Válek", "Valenta", "Váňa", "Vančura", "Vaněček", "Vaněk", "Vaníček", "Vašíček", "Vávra", "Večeřa", + "Vejvoda", "Verner", "Veselý", "Veverka", "Vitásek", "Vítek", "Vlach", "Vlasák", "Vlček", "Vlk", "Vobořil", "Vodička", "Vojáček", "Vokoun", + "Vondra", "Vondrák", "Voráček", "Vorel", "Vorlíček", "Voříšek", "Votava", "Votruba", "Vrabec", "Vrána", "Vrba", "Vrzal", "Vybíral", "Vydra", + "Vysloužil", "Zábranský", "Zahradník", "Zach", "Zajíc", "Zajíček", "Zámečník", "Zapletal", "Záruba", "Zatloukal", "Zavadil", "Zavřel", "Zbořil", + "Zdražil", "Zedník", "Zelenka", "Zelený", "Zemánek", "Zima", "Zlámal", "Zoubek", "Zouhar", "Zvěřina", "Žáček", "Žák", "Žďárský", "Žemlička", "Žižka" + }; + + private static final String[] WOMAN_LAST_NAMES = new String[]{ + "Adamcová", "Adámková", "Adamová", "Albrechtová", "Ambrožová", "Andělová", "Andrlová", "Antošová", "Bajerová", "Balážová", "Balcarová", "Balogová", + "Barešová", "Bartáková", "Bartoňová", "Bartošková", "Bartošová", "Bártová", "Bauerová", "Bečvářová", "Bednaříková", "Bednářová", "Bendová", "Benešová", + "Beránková", "Beranová", "Bergerová", "Berková", "Bezděková", "Bílá", "Bílková", "Blahová", "Bláhová", "Blažková", "Blechová", "Bobková", "Bočková", + "Boháčová", "Böhmová", "Boučková", "Boudová", "Boušková", "Brabcová", "Bradáčová", "Brázdová", "Brejchová", "Brožková", "Brožová", "Brychtová", + "Březinová", "Bučková", "Buchtová", "Burdová", "Burešová", "Burianová", "Cibulková", "Cihlářová", "Císařová", "Coufalová", "Čadová", "Čapková", + "Čápová", "Čechová", "Čejková", "Čermáková", "Černá", "Černíková", "Černohorská", "Černochová", "Červená", "Červeňáková", "Červenková", "Červinková", + "Čiháková", "Čížková", "Čonková", "Danielová", "Daňková", "Davidová", "Demeterová", "Divišová", "Dlouhá", "Dobešová", "Dobiášová", "Dobrovolná", + "Dočekalová", "Dočkalová", "Dohnalová", "Dokoupilová", "Dolejšová", "Doležalová", "Doleželová", "Dostálová", "Doubková", "Doubravová", "Drábková", + "Drozdová", "Dubová", "Dubská", "Dudková", "Dudová", "Dufková", "Dušková", "Dvorská", "Dvořáčková", "Dvořáková", "Eliášová", "Fantová", "Fenclová", + "Ferencová", "Fialová", "Fiedlerová", "Filipová", "Fischerová", "Fišerová", "Fojtíková", "Foltýnová", "Formánková", "Formanová", "Fořtová", "Francová", + "Franková", "Fraňková", "Fridrichová", "Fučíková", "Fuchsová", "Gáborová", "Gabrielová", "Gajdošová", "Gregorová", "Hájková", "Hajná", "Hálová", + "Hamplová", "Hanáková", "Hanusová", "Hanušová", "Hanzlíková", "Hanzlová", "Hartmanová", "Hašková", "Havelková", "Havlíčková", "Havlíková", "Havlová", + "Havránková", "Hejdová", "Hejduková", "Hejlová", "Hendrychová", "Hermanová", "Heřmanová", "Hladíková", "Hladká", "Hlaváčková", "Hlaváčová", "Hlavatá", + "Hloušková", "Hoffmannová", "Hofmanová", "Holá", "Holcová", "Holečková", "Holíková", "Holubová", "Homolková", "Homolová", "Horáčková", "Horáková", + "Horká", "Horová", "Horská", "Horváthová", "Horvátová", "Hošková", "Houdková", "Houšková", "Hovorková", "Hrabalová", "Hradecká", "Hradilová", "Hrbková", + "Hrdinová", "Hrdličková", "Hrnčířová", "Hromádková", "Hronová", "Hrubá", "Hrušková", "Hrůzová", "Hubáčková", "Hudcová", "Hudečková", "Humlová", + "Hurtová", "Husáková", "Hušková", "Hynková", "Chaloupková", "Chalupová", "Charvátová", "Chládková", "Chmelařová", "Chmelíková", "Chmelová", "Chovancová", + "Chvátalová", "Chvojková", "Chytilová", "Jahodová", "Jakešová", "Jakubcová", "Janáčková", "Janáková", "Jančíková", "Jančová", "Jandová", "Janečková", + "Janíčková", "Janíková", "Janková", "Janoušková", "Janovská", "Jansová", "Jarošová", "Jašková", "Javůrková", "Jedličková", "Jelínková", "Jeřábková", + "Ježková", "Jílková", "Jindrová", "Jiráková", "Jirásková", "Jiroušková", "Jonášová", "Junková", "Jurečková", "Jurková", "Kadeřábková", "Kadlecová", + "Kafková", "Kalinová", "Kalousová", "Kaňková", "Kantorová", "Kaplanová", "Karásková", "Karasová", "Karlíková", "Karlová", "Kasalová", "Kašpárková", + "Kašparová", "Kazdová", "Kindlová", "Klečková", "Kleinová", "Klementová", "Klimešová", "Klímová", "Kloudová", "Knotková", "Kociánová", "Kocourková", + "Kočová", "Kohoutková", "Kohoutová", "Koláčková", "Kolaříková", "Kolářová", "Komárková", "Konečná", "Kopecká", "Kopečková", "Kopečná", "Kopřivová", + "Korbelová", "Kořínková", "Kosová", "Kostková", "Košťálová", "Kotková", "Koubková", "Koubová", "Koudelková", "Koudelová", "Koukalová", "Kouřilová", + "Koutná", "Kováčová", "Kovaříková", "Kováříková", "Kovářová", "Kozáková", "Kozlová", "Králíková", "Králová", "Krátká", "Kratochvílová", "Krausová", + "Krčmářová", "Krejčíková", "Krejčová", "Kroupová", "Krupičková", "Křenková", "Křivánková", "Křížková", "Křížová", "Kubátová", "Kubešová", "Kubíčková", + "Kubíková", "Kubínová", "Kubová", "Kučerová", "Kudláčková", "Kudrnová", "Kuchařová", "Kuklová", "Kulhánková", "Kuncová", "Kupková", "Kurková", "Kuželová", + "Kvapilová", "Kvasničková", "Kyselová", "Lacinová", "Lacková", "Landová", "Langerová", "Langová", "Langrová", "Lebedová", "Linhartová", "Lišková", + "Lorencová", "Loudová", "Ludvíková", "Lukášová", "Lukešová", "Macková", "Macháčková", "Machačová", "Machálková", "Machalová", "Machová", "Máchová", + "Majerová", "Malá", "Malíková", "Malinová", "Málková", "Marečková", "Marešová", "Marková", "Maršálková", "Maršíková", "Martincová", "Martinková", + "Martínková", "Maříková", "Mašková", "Matějková", "Matoušková", "Matoušová", "Matulová", "Matušková", "Matyášová", "Medková", "Melicharová", "Menšíková", + "Mertová", "Mičková", "Michálková", "Michalová", "Mikešová", "Miková", "Míková", "Mikulová", "Minaříková", "Mlčochová", "Moravcová", "Morávková", + "Motyčková", "Mrázková", "Mrázová", "Muchová", "Müllerová", "Műllerová", "Musilová", "Mužíková", "Myšková", "Nagyová", "Najmanová", "Navrátilová", + "Nečasová", "Nedvědová", "Nejedlá", "Němcová", "Němečková", "Neubauerová", "Neumannová", "Nguyenová", "Nosková", "Nová", "Nováčková", "Nováková", + "Novotná", "Odehnalová", "Oláhová", "Ondráčková", "Ondrová", "Ottová", "Palečková", "Pánková", "Pařízková", "Pašková", "Pátková", "Pavelková", + "Pavlíčková", "Pavlíková", "Pavlová", "Pazderová", "Pecková", "Pecháčková", "Pechová", "Pekárková", "Pekařová", "Pelcová", "Pelikánová", "Peřinová", + "Pešková", "Peštová", "Peterková", "Peterová", "Petráková", "Petrášová", "Petrová", "Petříková", "Picková", "Pilařová", "Plačková", "Plachá", + "Pohlová", "Pokorná", "Poláčková", "Poláchová", "Poláková", "Polanská", "Polášková", "Polívková", "Popelková", "Pospíchalová", "Pospíšilová", + "Pražáková", "Prchalová", "Procházková", "Prokešová", "Prokopová", "Prošková", "Provazníková", "Průchová", "Průšová", "Přibylová", "Příhodová", + "Přikrylová", "Ptáčková", "Radová", "Raková", "Rašková", "Rezková", "Richterová", "Richtrová", "Rudolfová", "Růžičková", "Rybářová", "Rybová", + "Ryšavá", "Řeháková", "Řehořová", "Řezáčová", "Řezníčková", "Říhová", "Sadílková", "Samková", "Sedláčková", "Sedláková", "Sedlářová", "Seidlová", + "Schejbalová", "Schmidtová", "Schneiderová", "Schwarzová", "Sikorová", "Siváková", "Skácelová", "Skalická", "Skalová", "Skálová", "Sklenářová", + "Skopalová", "Skřivánková", "Slabá", "Sládková", "Slámová", "Slaninová", "Slavíčková", "Slavíková", "Slezáková", "Slováčková", "Slováková", "Smejkalová", + "Smékalová", "Smetanová", "Smolíková", "Smolková", "Smolová", "Smrčková", "Smutná", "Sobotková", "Sochorová", "Sojková", "Sokolová", "Součková", + "Soukupová", "Sovová", "Spáčilová", "Spurná", "Srbová", "Staňková", "Stará", "Stárková", "Stehlíková", "Stejskalová", "Stoklasová", "Straková", "Stránská", + "Strnadová", "Strouhalová", "Studená", "Stuchlíková", "Suchá", "Suchánková", "Suchomelová", "Suková", "Svatošová", "Svobodová", "Sýkorová", "Synková", + "Šafaříková", "Šafářová", "Šafránková", "Šandová", "Šebestová", "Šebková", "Šedivá", "Šedová", "Šestáková", "Ševčíková", "Šimečková", "Šimková", "Šimonová", + "Šímová", "Šimůnková", "Šindelářová", "Šindlerová", "Šípková", "Široká", "Šišková", "Škodová", "Šlechtová", "Šmejkalová", "Šmídová", "Šnajdrová", "Šolcová", + "Špačková", "Šrámková", "Šťastná", "Štefanová", "Štefková", "Štěpánková", "Štěpánová", "Štěrbová", "Šubrtová", "Šulcová", "Šustrová", "Švábová", "Švarcová", + "Švecová", "Švehlová", "Švejdová", "Táborská", "Teplá", "Tesařová", "Tichá", "Tománková", "Tomanová", "Tomášková", "Tomášová", "Tomečková", "Tomková", + "Tóthová", "Trávníčková", "Trčková", "Trnková", "Trojanová", "Třísková", "Tučková", "Tůmová", "Turková", "Uhlířová", "Uhrová", "Ulrichová", "Urbánková", + "Urbanová", "Vacková", "Václavíková", "Václavková", "Vaculíková", "Vágnerová", "Váchová", "Valášková", "Valentová", "Valešová", "Válková", "Valová", + "Vančurová", "Vaněčková", "Vaníčková", "Vaňková", "Váňová", "Vargová", "Vašíčková", "Vašková", "Vávrová", "Večeřová", "Vejvodová", "Vernerová", "Veselá", + "Veverková", "Víchová", "Vítková", "Vítová", "Vlachová", "Vlasáková", "Vlčková", "Vlková", "Vodičková", "Vojáčková", "Vojtěchová", "Vojtíšková", "Vojtová", + "Volfová", "Volková", "Volná", "Vondráčková", "Vondráková", "Vondrová", "Vorlová", "Voříšková", "Votavová", "Vrabcová", "Vránová", "Vrbová", "Vybíralová", + "Vyskočilová", "Wagnerová", "Weissová", "Wolfová", "Zahradníková", "Zachová", "Zajícová", "Zajíčková", "Zámečníková", "Zapletalová", "Zárubová", + "Zatloukalová", "Zavadilová", "Zavřelová", "Zbořilová", "Zelená", "Zelenková", "Zelinková", "Zemánková", "Zemanová", "Zikmundová", "Zíková", "Zimová", + "Zítková", "Zlámalová", "Zoubková", "Zouharová", "Žáčková", "Žáková", "Žigová", "Žižková" + }; + + @Override + public String generate(StoreAccessor harness, Object... params) { + if (params != null && params.length != 0 && params[0] instanceof Gender && params[0] == Gender.WOMAN) { + return WOMAN_LAST_NAMES[ThreadLocalRandom.current().nextInt(WOMAN_LAST_NAMES.length)]; + } + return LAST_NAMES[ThreadLocalRandom.current().nextInt(LAST_NAMES.length)]; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/MobilePhoneNumberGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/MobilePhoneNumberGenerator.java new file mode 100644 index 0000000..a275846 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/MobilePhoneNumberGenerator.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.harness.context.StoreAccessor; + +public class MobilePhoneNumberGenerator extends BasePhoneNumberGenerator { + + private static final int[] MOBILE_PREFICES = new int[]{ + 601, 602, 603, 604, 605, 606, 607, 608, 702, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 738, 739, 770, 771, 772, 773, 774, 775, 776, 777, 777 + }; + + @Override + public String generate(StoreAccessor harness, Object... params) { + return getPhoneNumber(MOBILE_PREFICES, harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/PassportGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/PassportGenerator.java new file mode 100644 index 0000000..fc40fbb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/PassportGenerator.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.data.Generator; + +import java.util.concurrent.ThreadLocalRandom; + +public class PassportGenerator implements Generator { + + @Override + public String generate(StoreAccessor harness, Object... params) { + return String.valueOf(ThreadLocalRandom.current().nextLong(10_000_000, 100_000_000)); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/RcGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/RcGenerator.java new file mode 100644 index 0000000..3d7167f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/RcGenerator.java @@ -0,0 +1,117 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.dsl.util.data.client.Gender; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.data.Generator; +import org.apache.commons.lang3.tuple.Pair; +import org.jooq.Record; +import org.jooq.Result; + +import java.time.LocalDate; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@SuppressWarnings("all") +public class RcGenerator implements Generator { + + public static final LocalDate RC_DEFAULT_START_YEAR = LocalDate.of(1954, 1, 1); + public static final Gender DEFAULT_GENDER = Gender.MAN; + + @Override + public String generate(StoreAccessor harness, Object... params) { + Pair dateOfBirthRange = getDateRange(params); + Gender gender = getGender(params); + + return getRandomRcUniqueInOds(harness, dateOfBirthRange, gender); + } + + private Pair getDateRange(Object[] params) { + Optional pa = Optional.ofNullable(params); + if (pa.isPresent()) { + List dates = Arrays.stream(params).filter(LocalDate.class::isInstance).limit(2).map(LocalDate.class::cast).collect(Collectors.toList()); + if (dates.size() == 2) + return Pair.of(dates.get(0), dates.get(1)); + } + + return Pair.of(RC_DEFAULT_START_YEAR, LocalDate.now().minusYears(27)); + } + + private Gender getGender(Object[] params) { + Optional p = Optional.ofNullable(params); + if (p.isPresent()) { + return Arrays.stream(params).filter(Gender.class::isInstance).findFirst().map(Gender.class::cast).orElse(Gender.MAN); + } + return DEFAULT_GENDER; + } + + private String getRandomRcUniqueInOds(StoreAccessor harness, Pair dateOfBirthRange, Gender gender) { + String dbName = "ods"; + + if (AuthSupport.hasCredentials(dbName, harness) == false) { + throw new HarnessException("You using RcGenerator and need to add ODS DB credentials 'credentials." + dbName + ".username', 'credentials." + dbName + ".password' to your config"); + } + + return Stream.generate(() -> getRandomRc(dateOfBirthRange, gender)) + .limit(10) + .peek(birthNumber -> harness.log("Generate birth number with params (from:{}, to:{}, {}): {}", + dateOfBirthRange.getLeft(), dateOfBirthRange.getRight(), gender.toString().toLowerCase(), birthNumber)) + .filter(birthNumber -> isBirthNumberUnique(harness, birthNumber)) //TODO temporary solution - find better way + .findFirst() + .orElseThrow(() -> new HarnessException("The existing RC was generated 10 times.")); + } + + private boolean isBirthNumberUnique(StoreAccessor harness, String birthNumber) { + Result records = harness.getEndpoint(OdsEndpoint.class) + .executeSql(getBirtNumberSql(birthNumber)); + return records.get(0) + .getValue("RECORDCOUNT", Integer.class) == 0; + } + + private String getBirtNumberSql(String birthNumer) { + return "select sum(rcCount) as recordCount\n" + + " from (select count(*) as rcCount\n" + + " from ODS_L1_OWNER.INST_PT\n" + + "where SRC_SYS_ID = 'ICB0'\n" + + " and DEL_FLAG = '0'\n" + + " and RC_NUM = '" + birthNumer + "'\n" + + "union\n" + + "select count(*) as rcCount\n" + + " from ODS_L1_OWNER.uni_pt\n" + + " where DEL_FLAG = '0'\n" + + " and rc_num = '" + birthNumer + "')"; + } + + private String getRandomRc(Pair dateOfBirthRange, Gender gender) { + return getRandomRc(dateOfBirthRange.getLeft(), dateOfBirthRange.getRight(), gender); + } + + private String getRandomRc(LocalDate defaultFrom, LocalDate defaultTo, Gender gender) { + long from = defaultFrom.toEpochDay(); + long to = defaultTo.toEpochDay(); + LocalDate dateOfBirth = LocalDate.ofEpochDay(ThreadLocalRandom.current().nextLong(from, to + 1)); + int womanIncrease = (gender == Gender.WOMAN) ? 5000 : 0; + long rcDatePart = 10000 * (dateOfBirth.getYear() % 100) + 100 * dateOfBirth.getMonthValue() + womanIncrease + dateOfBirth.getDayOfMonth(); + + if (dateOfBirth.getYear() < 1954) { + Long rc = Stream.generate(() -> ThreadLocalRandom.current().nextLong(1000)) + .findFirst() + .map(r -> rcDatePart * 1000 + r) + .get(); + return String.format("%09d", rc); + } else { + Long rc = Stream.generate(() -> ThreadLocalRandom.current().nextLong(10000)) + .filter(r -> (rcDatePart * 10000 + r) % 11 == 0) + .findFirst() + .map(r -> rcDatePart * 10000 + r) + .get(); + return String.format("%010d", rc); + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/ResidencyAddressGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/ResidencyAddressGenerator.java new file mode 100644 index 0000000..e25fe72 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/ResidencyAddressGenerator.java @@ -0,0 +1,226 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.data.Generator; + +import java.util.concurrent.ThreadLocalRandom; + +public class ResidencyAddressGenerator implements Generator

{ + + private static final String[][] ADDRESSES = new String[][]{ + new String[]{"Vinohradská", "2190", "170", "Praha 3", "13000"}, + new String[]{"Estonská", "548", "6", "Praha 10", "10100"}, + new String[]{"Malá Štěpánská", "556", "13", "Praha 2", "12000"}, + new String[]{"Černého", "515", "9", "Praha 8", "18200"}, + new String[]{"Na rovinách", "20", "10", "Praha 4", "14200"}, + new String[]{"Chelčického", "1130", "12", "Praha 3", "13000"}, + new String[]{"Evropská", "214", "203", "Praha 6", "16100"}, + new String[]{"Vlastina", "534", "17", "Praha 6", "16100"}, + new String[]{"Mendíků", "803", "13", "Praha 4", "14000"}, + new String[]{"Novodvorská", "1097", "126", "Praha 4", "14200"}, + new String[]{"Belgická", "632", "19", "Praha 2", "12000"}, + new String[]{"Průběžná", "1801", "49", "Praha 10", "10000"}, + new String[]{"Na Marně", "607", "3a", "Praha 6", "16000"}, + new String[]{"Líbeznická", "395", "4", "Praha 8", "18200"}, + new String[]{"Kloboučnická", "1628", "9", "Praha 4", "14000"}, + new String[]{"Malobřevnovská", "2481", "8", "Praha 6", "16900"}, + new String[]{"Březová", "1457", "42", "Praha 8", "18200"}, + new String[]{"Libocká", "36", "56", "Praha 6", "16200"}, + new String[]{"Jaromírova", "92", "63", "Praha 2", "12800"}, + new String[]{"U družstva Život", "834", "30", "Praha 4", "14000"}, + new String[]{"Polygrafická", "716", "22", "Praha 10", "10800"}, + new String[]{"Přívorská", "510", "12", "Praha 8", "18100"}, + new String[]{"Heldova", "534", "4", "Praha 10", "10800"}, + new String[]{"Puchmajerova", "604", "9", "Praha 5", "15800"}, + new String[]{"Maltézské náměstí", "293", "9", "Praha 1", "11800"}, + new String[]{"Na průhonu", "652", "17", "Praha 8", "18100"}, + new String[]{"Korandova", "373", "14", "Praha 4", "14700"}, + new String[]{"Na Homolce", "76", "16", "Praha 5", "15000"}, + new String[]{"Kladenská", "41", "17", "Praha 6", "16000"}, + new String[]{"U letenského sadu", "375", "11", "Praha 7", "17000"}, + new String[]{"Jižní II", "792", "31", "Praha 4", "14100"}, + new String[]{"Husitská", "73", "37", "Praha 3", "13000"}, + new String[]{"Březová", "1473", "41", "Praha 8", "18200"}, + new String[]{"Za humny", "1160", "3", "Praha 6", "16100"}, + new String[]{"Mratínská", "437", "26", "Praha 9", "19000"}, + new String[]{"Klikatá", "166", "19", "Praha 5", "15800"}, + new String[]{"U Drahaně", "144", "15", "Praha 8", "18100"}, + new String[]{"Mezivrší", "1788", "7", "Praha 4", "14700"}, + new String[]{"Okořská", "300", "14", "Praha 8", "18100"}, + new String[]{"Odlehlá", "618", "25", "Praha 9", "19000"}, + new String[]{"Na břevnovské pláni", "1369", "2", "Praha 6", "16900"}, + new String[]{"Kubánské náměstí", "1391", "11", "Praha 10", "10000"}, + new String[]{"Zdíkovská", "3044", "94", "Praha 5", "15000"}, + new String[]{"Na Provaznici", "1872", "13", "Praha 5", "15000"}, + new String[]{"Tismická", "592", "11", "Praha 10", "10000"}, + new String[]{"Pod vodárenskou věží", "2305", "20", "Praha 8", "18200"}, + new String[]{"Ke Klíčovu", "346", "13", "Praha 9", "19000"}, + new String[]{"Rozkošného", "896", "1", "Praha 5", "15000"}, + new String[]{"Budějovická", "778", "3a", "Praha 4", "14000"}, + new String[]{"V Podbabě", "2525", "24", "Praha 6", "16000"}, + new String[]{"Prachnerova", "642", "10", "Praha 5", "15000"}, + new String[]{"Truhlářská", "1114", "10", "Praha 1", "11000"}, + new String[]{"U průhonu", "1588", "11a", "Praha 7", "17000"}, + new String[]{"Jaselská", "599", "30", "Praha 6", "16000"}, + new String[]{"Pod Žvahovem", "168", "16", "Praha 5", "15200"}, + new String[]{"Ovenecká", "871", "13", "Praha 7", "17000"}, + new String[]{"Václavské náměstí", "820", "41", "Praha 1", "11000"}, + new String[]{"Na hřebenech II", "1132", "4", "Praha 4", "14700"}, + new String[]{"Na okraji", "327", "49", "Praha 6", "16200"}, + new String[]{"Mánesova", "1067", "35", "Praha 2", "12000"}, + new String[]{"Za mosty", "395", "29", "Praha 9", "19000"}, + new String[]{"K rotundě", "100", "10", "Praha 2", "12800"}, + new String[]{"K Ryšánce", "1591", "20", "Praha 4", "14700"}, + new String[]{"Plzeňská", "951", "125", "Praha 5", "15000"}, + new String[]{"Na Míčánce", "1857", "17", "Praha 6", "16000"}, + new String[]{"Zdíkovská", "3002", "5", "Praha 5", "15000"}, + new String[]{"Habartická", "183", "16", "Praha 9", "19000"}, + new String[]{"Pod Krčským lesem", "764", "17", "Praha 4", "14200"}, + new String[]{"Výchozí", "375", "1", "Praha 4", "14700"}, + new String[]{"Na okraji", "322", "59", "Praha 6", "16200"}, + new String[]{"Hradební", "759", "5", "Praha 1", "11000"}, + new String[]{"U kněžské louky", "2127", "47", "Praha 3", "13000"}, + new String[]{"Dvouletky", "2718", "205", "Praha 10", "10000"}, + new String[]{"Korunní", "820", "1", "Praha 2", "12000"}, + new String[]{"Šmolíkova", "1006", "28", "Praha 6", "16100"}, + new String[]{"Na bateriích", "910", "1", "Praha 6", "16200"}, + new String[]{"Botičská", "424", "1", "Praha 2", "12800"}, + new String[]{"U družstva Práce", "937", "8", "Praha 4", "14000"}, + new String[]{"Karafiátová", "1240", "38", "Praha 10", "10600"}, + new String[]{"Lyčkovo náměstí", "472", "8", "Praha 8", "18600"}, + new String[]{"Nad višňovkou", "882", "33", "Praha 6", "16100"}, + new String[]{"Trojanova", "1696", "2", "Praha 2", "12000"}, + new String[]{"Jihovýchodní V", "914", "5", "Praha 4", "14100"}, + new String[]{"Nad Šárkou", "1215", "88", "Praha 6", "16000"}, + new String[]{"Hoškova", "1110", "6", "Praha 5", "15800"}, + new String[]{"Nad Tejnkou", "2479", "1", "Praha 6", "16900"}, + new String[]{"Pod Sychrovem I", "1444", "8", "Praha 10", "10100"}, + new String[]{"Ke Klínku", "920", "20", "Praha 4", "14000"}, + new String[]{"Partyzánská", "1575", "30", "Praha 7", "17000"}, + new String[]{"Na Petřinách", "1719", "57", "Praha 6", "16200"}, + new String[]{"Zálesí", "356", "34", "Praha 4", "14200"}, + new String[]{"Podskalská", "1290", "17", "Praha 2", "12800"}, + new String[]{"Saveljevova", "1633", "26", "Praha 4", "14700"}, + new String[]{"Na Dyrince", "1416", "30", "Praha 6", "16000"}, + new String[]{"Nad Strakovkou", "2282", "20", "Praha 6", "16000"}, + new String[]{"Nad Smetankou", "221", "3", "Praha 9", "19000"}, + new String[]{"Prokopova", "164", "12", "Praha 3", "13000"}, + new String[]{"Milíčova", "470", "6", "Praha 3", "13000"}, + new String[]{"Severní III", "688", "10", "Praha 4", "14100"}, + new String[]{"Psohlavců", "1696", "56", "Praha 4", "14700"}, + new String[]{"Josefská", "505", "10", "Brno", "60200"}, + new String[]{"Žlutý kopec", "919", "6", "Brno", "60200"}, + new String[]{"Bezručova", "72", "9", "Brno", "60200"}, + new String[]{"Grohova", "105", "8", "Brno", "60200"}, + new String[]{"Preslova", "715", "8", "Brno", "60200"}, + new String[]{"Renneská třída", "395", "19", "Brno", "63900"}, + new String[]{"Neumannova", "251", "11", "Brno", "60200"}, + new String[]{"Kolískova", "263", "13", "Brno", "60200"}, + new String[]{"Kobližná", "65", "8", "Brno", "60200"}, + new String[]{"Ludvíka Podéště", "787", "11", "Brno", "60200"}, + new String[]{"Gallašova", "47", "4", "Brno", "63900"}, + new String[]{"Tučkova", "687", "1", "Brno", "60200"}, + new String[]{"Starobrněnská", "334", "3", "Brno", "60200"}, + new String[]{"náměstí Svobody", "84", "15", "Brno", "60200"}, + new String[]{"Burešova", "617", "10", "Brno", "60200"}, + new String[]{"Vysoká", "530", "4", "Brno", "63900"}, + new String[]{"bratří Čapků", "379", "5", "Brno", "60200"}, + new String[]{"Hlinky", "162", "92", "Brno", "60300"}, + new String[]{"Bratislavská", "226", "40", "Brno", "60200"}, + new String[]{"Jiráskova", "213", "5", "Brno", "60200"}, + new String[]{"Nerudova", "324", "12", "Brno", "60200"}, + new String[]{"Celní", "16", "4", "Brno", "63900"}, + new String[]{"Křenová", "409", "52", "Brno", "60200"}, + new String[]{"Kamenná", "189", "16", "Brno", "63900"}, + new String[]{"Kounicova", "680", "6", "Brno", "60200"}, + new String[]{"Vinohrady", "361", "54", "Brno", "63900"}, + new String[]{"Rumiště", "347", "9", "Brno", "60200"}, + new String[]{"Skrytá", "165", "1", "Brno", "60200"}, + new String[]{"Vídeňská", "229", "11", "Brno", "63900"}, + new String[]{"Havlenova", "55", "12", "Brno", "63900"}, + new String[]{"Kamenná čtvrť", "655", "71", "Brno", "63900"}, + new String[]{"Tučkova", "954", "40", "Brno", "60200"}, + new String[]{"Lipová", "165", "28", "Brno", "60200"}, + new String[]{"Kamenomlýnská", "128", "6", "Brno", "60300"}, + new String[]{"Křenová", "185", "59", "Brno", "60200"}, + new String[]{"Dominikánské náměstí", "196", "1", "Brno", "60200"}, + new String[]{"Křídlovická", "344", "43", "Brno", "60300"}, + new String[]{"Polní", "994", "41", "Brno", "63900"}, + new String[]{"Preslova", "660", "86", "Brno", "60200"}, + new String[]{"Petrov", "275", "1", "Brno", "60200"}, + new String[]{"Ludmily Konečné", "325", "19", "Brno", "63900"}, + new String[]{"Marešova", "305", "14", "Brno", "60200"}, + new String[]{"Hlinky", "66", "154", "Brno", "60300"}, + new String[]{"Jeřabinová", "963", "40", "Brno", "60200"}, + new String[]{"Hlinky", "54", "138", "Brno", "60300"}, + new String[]{"Křídlovická", "366", "64", "Brno", "60300"}, + new String[]{"Kudelova", "1850", "2", "Brno", "60200"}, + new String[]{"Úvoz", "518", "15", "Brno", "60200"}, + new String[]{"Kalvodova", "898", "47", "Brno", "60200"}, + new String[]{"Pekařská", "412", "24", "Brno", "60200"}, + new String[]{"Malešovská", "933", "", "Kutná Hora", "28401"}, + new String[]{"Puškinská", "658", "", "Kutná Hora", "28401"}, + new String[]{"Puškinská", "542", "1", "Kutná Hora", "28401"}, + new String[]{"U Kola", "239", "", "Kutná Hora", "28403"}, + new String[]{"Na Bylance", "1047", "", "Kutná Hora", "28401"}, + new String[]{"Pod Mejtem", "360", "", "Kutná Hora", "28401"}, + new String[]{"Ke Trojici", "232", "4", "Kutná Hora", "28401"}, + new String[]{"Na Kavkách", "454", "", "Kutná Hora", "28401"}, + new String[]{"Puškinská", "586", "", "Kutná Hora", "28401"}, + new String[]{"Husitská", "668", "", "Kutná Hora", "28401"}, + new String[]{"Jeneweinova", "409", "", "Kutná Hora", "28401"}, + new String[]{"Prachňanská", "83", "8", "Kutná Hora", "28401"}, + new String[]{"Andělská", "297", "6", "Kutná Hora", "28401"}, + new String[]{"K Jakubu", "61", "18", "Kutná Hora", "28401"}, + new String[]{"Braunova", "138", "4", "Kutná Hora", "28401"}, + new String[]{"Pod Mejtem", "359", "", "Kutná Hora", "28401"}, + new String[]{"Žižkova", "111", "", "Kutná Hora", "28403"}, + new String[]{"Chelčického", "541", "", "Kutná Hora", "28401"}, + new String[]{"Želivského", "587", "", "Kutná Hora", "28401"}, + new String[]{"Barákova", "666", "", "Kutná Hora", "28401"}, + new String[]{"Spálená", "325", "", "Kutná Hora", "28401"}, + new String[]{"Mincovní", "11", "", "Kutná Hora", "28401"}, + new String[]{"U Kamene", "154", "13", "Kutná Hora", "28401"}, + new String[]{"Novomlýnská", "539", "2", "Kutná Hora", "28401"}, + new String[]{"Pobřežní", "114", "", "Kutná Hora", "28401"}, + new String[]{"Masarykova", "265", "51", "Kutná Hora", "28401"}, + new String[]{"Zelená hora", "973", "", "Kutná Hora", "28401"}, + new String[]{"Jabloňová", "756", "", "Kutná Hora", "28401"}, + new String[]{"U Beránky", "115", "", "Kutná Hora", "28401"}, + new String[]{"Ortenova", "91", "", "Kutná Hora", "28401"}, + new String[]{"Nerudova", "406", "5", "Kutná Hora", "28401"}, + new String[]{"Za Kolíňáčkem", "898", "", "Kutná Hora", "28401"}, + new String[]{"Macháčkovo nábřeží", "655", "17", "Kutná Hora", "28401"}, + new String[]{"Opletalova", "172", "", "Kutná Hora", "28401"}, + new String[]{"Pod Hájem", "436", "", "Kutná Hora", "28403"}, + new String[]{"Mincovní", "257", "", "Kutná Hora", "28401"}, + new String[]{"Purkyňova", "519", "", "Kutná Hora", "28401"}, + new String[]{"Benešova", "392", "46", "Kutná Hora", "28401"}, + new String[]{"Na Provaznici", "23", "15", "Kutná Hora", "28401"}, + new String[]{"Lorecká", "465", "", "Kutná Hora", "28401"}, + new String[]{"Zachova", "314", "10", "Kutná Hora", "28401"}, + new String[]{"Palackého náměstí", "92", "13", "Kutná Hora", "28401"}, + new String[]{"Tylova", "494", "34", "Kutná Hora", "28401"}, + new String[]{"Dolní", "290", "", "Kutná Hora", "28401"}, + new String[]{"Štietkova", "930", "", "Kutná Hora", "28401"}, + new String[]{"Růžová", "844", "", "Kutná Hora", "28401"}, + new String[]{"Na Obci", "220", "", "Kutná Hora", "28401"}, + new String[]{"Ostašova", "530", "11", "Kutná Hora", "28401"}, + new String[]{"Nad Lesem", "959", "", "Kutná Hora", "28401"}, + new String[]{"Čechova", "51", "", "Kutná Hora", "28403"} + }; + + @Override + public Address generate(StoreAccessor harness, Object... params) { + String[] address = ADDRESSES[ThreadLocalRandom.current().nextInt(ADDRESSES.length)]; + return Address.builder() + .street(address[0]) + .descriptiveNumber(address[1]) + .orientationNumber(address[2]) + .city(address[3]) + .zip(address[4]) + .country("CZ") + .build(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/SipoGenerator.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/SipoGenerator.java new file mode 100644 index 0000000..5485ceb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/generators/SipoGenerator.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.util.data.generators; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.data.Generator; + +import java.math.BigInteger; +import java.util.Optional; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.IntStream; + +public class SipoGenerator implements Generator { + + private static final int CHECKSUM_ROOT = 373173173; + + public String generate(StoreAccessor harness, Object... params) { + final int base = ThreadLocalRandom.current().nextInt(1_000_000_000); + + Integer checkSum = IntStream.range(0, 9).boxed() + .reduce(0, (acc, i) -> acc + getDigit(CHECKSUM_ROOT, i) * getDigit(base, i)); + + Integer checkDigit = Optional.of(checkSum) + .map(i -> i % 10) + .filter(i -> i > 0) + .map(i -> 10 - i) + .orElse(0); + + return String.format("%09d%d", base, checkDigit); + } + + private static int getDigit(int number, Integer digitIndex) { + return BigInteger.valueOf(number) + .divide(BigInteger.TEN.pow(digitIndex)) + .mod(BigInteger.TEN) + .intValue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/BusinessIncome.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/BusinessIncome.java new file mode 100644 index 0000000..df41364 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/BusinessIncome.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.util.data.hypos; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class BusinessIncome { + private int turnoverLatest; + private int taxBaseLatest; + private int paidTax; + private String costAccounting; + private String naceCode; + private int turnoverPenultimate; + private int taxBasePenultimate; + private String ico; + private String currency; + private String startDate; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/DrawingCondition.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/DrawingCondition.java new file mode 100644 index 0000000..959466c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/DrawingCondition.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.util.data.hypos; + +import lombok.Builder; +import lombok.Getter; + +import java.util.List; + +@Builder +@Getter +public class DrawingCondition { + private String condition; + private List tranches; + private String type; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/EmployeeIncome.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/EmployeeIncome.java new file mode 100644 index 0000000..59adcef --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/EmployeeIncome.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.util.data.hypos; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class EmployeeIncome { + private int grossSalary; + private int netSalary; + private String ico; + private String startDate; + private String type; + private String profession; + private String phone; + private String currency; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/Expenditure.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/Expenditure.java new file mode 100644 index 0000000..c792a0b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/Expenditure.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.util.data.hypos; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class Expenditure { + private String type; + private String amount; + private String correction; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/HouseholdIncome.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/HouseholdIncome.java new file mode 100644 index 0000000..f87a97c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/HouseholdIncome.java @@ -0,0 +1,11 @@ +package cz.moneta.test.dsl.util.data.hypos; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class HouseholdIncome { + private int withoutIncome; + private int withIncome; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/HyposContract.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/HyposContract.java new file mode 100644 index 0000000..178d74e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/HyposContract.java @@ -0,0 +1,101 @@ +package cz.moneta.test.dsl.util.data.hypos; + +import cz.moneta.test.dsl.hypos.contractPrepare.data.HyposContractYamlData; +import cz.moneta.test.dsl.util.data.client.HyposClient; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +import java.util.ArrayList; +import java.util.List; + +@Builder +@Getter +public class HyposContract { + private List clients; + private Realty realty; + private int mortgageLoanAmount; + private int mortgageLoanMaturity; + private int mortgageOwnResources; + private int mortgageOtherResources; + private String loanProduct; + private String loanAction; + private String loanObjectType; + private String purchaseReason; + private List loanPurposes; + private List drawingConditions; + private HouseholdIncome firstHouseholdIncome; + private HouseholdIncome secondHouseholdIncome; + @Setter + private String contractId; + @Setter + private String currentAccountNumber; + + /** + * Creating new loan purposes for Hypos tests. + * @return List with yaml data. + */ + public List createLoanPurposes(HyposContractYamlData hyposContractYamlData) { + List loanPurposes = new ArrayList<>(); + for (int i = 0; i < hyposContractYamlData.getLoanPurposes().size(); i++) { + LoanPurpose loanPurpose = LoanPurpose.builder() + .tranche(hyposContractYamlData.getLoanPurposes().get(i).getTranche()) + .type(hyposContractYamlData.getLoanPurposes().get(i).getType()) + .paymentType(hyposContractYamlData.getLoanPurposes().get(i).getPaymentType()) + .amount(hyposContractYamlData.getLoanPurposes().get(i).getAmount()) + .build(); + loanPurposes.add(loanPurpose); + } + return loanPurposes; + } + + /** + * Creating new drawing conditions for Hypos tests. + * @return List with yaml data. + */ + public List createDrawingConditions(HyposContractYamlData hyposContractYamlData) { + List drawingConditions = new ArrayList<>(); + for (int i = 0; i < hyposContractYamlData.getDrawingConditions().size(); i++) { + List tranches = new ArrayList<>(); + if(hyposContractYamlData.getDrawingConditions().get(i).getTranches() != null) { + tranches.addAll(hyposContractYamlData.getDrawingConditions().get(i).getTranches()); + } + DrawingCondition drawingCondition = DrawingCondition.builder() + .condition(hyposContractYamlData.getDrawingConditions().get(i).getCondition()) + .tranches(tranches) + .type(hyposContractYamlData.getDrawingConditions().get(i).getType()) + .build(); + drawingConditions.add(drawingCondition); + } + return drawingConditions; + } + + /** + * Creating new contract for Hypos tests. + * @return HyposContract with yaml data. + */ + public HyposContract createHyposContract(HyposContractYamlData hyposContractYamlData, List hyposClients, Realty realty) { + return HyposContract.builder() + .clients(hyposClients) + .realty(realty) + .mortgageLoanAmount(hyposContractYamlData.getMortgageLoanAmount()) + .mortgageLoanMaturity(hyposContractYamlData.getMortgageLoanMaturity()) + .mortgageOwnResources(hyposContractYamlData.getMortgageOwnResources()) + .mortgageOtherResources(hyposContractYamlData.getMortgageOtherResources()) + .loanProduct(hyposContractYamlData.getLoanProduct()) + .loanAction(hyposContractYamlData.getLoanAction()) + .loanObjectType(hyposContractYamlData.getLoanObjectType()) + .purchaseReason(hyposContractYamlData.getPurchaseReason()) + .firstHouseholdIncome(HouseholdIncome.builder() + .withIncome(hyposContractYamlData.getHouseholdIncome().get(0).getWithIncome()) + .withoutIncome(hyposContractYamlData.getHouseholdIncome().get(0).getWithoutIncome()) + .build()) + .secondHouseholdIncome(HouseholdIncome.builder() + .withIncome(hyposContractYamlData.getHouseholdIncome().get(1).getWithIncome()) + .withoutIncome(hyposContractYamlData.getHouseholdIncome().get(1).getWithoutIncome()) + .build()) + .loanPurposes(this.createLoanPurposes(hyposContractYamlData)) + .drawingConditions(this.createDrawingConditions(hyposContractYamlData)) + .build(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/LoanPurpose.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/LoanPurpose.java new file mode 100644 index 0000000..8ce9c78 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/LoanPurpose.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.util.data.hypos; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class LoanPurpose { + private String amount; + private String type; + private String tranche; + private String paymentType; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/OtherIncome.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/OtherIncome.java new file mode 100644 index 0000000..ed57795 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/OtherIncome.java @@ -0,0 +1,13 @@ +package cz.moneta.test.dsl.util.data.hypos; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class OtherIncome { + private String type; + private String amount; + private String currency; + private String paidToMmb; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/Person.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/Person.java new file mode 100644 index 0000000..a158a6e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/Person.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.util.data.hypos; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class Person { + private String birthNumber; + private String firstName; + private String lastName; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/Realty.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/Realty.java new file mode 100644 index 0000000..99d2a6a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/Realty.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.util.data.hypos; + +import cz.moneta.test.dsl.hypos.contractPrepare.data.HyposContractYamlData; +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class Realty { + private String searchByRealtyType; + private String registerId; + private String registerArea; + private String autosuggestionText; + private String descriptiveNumber; + private String registrationNumber; + private String flatNumber; + private String realtyType; + private int realtyPrice; + private String contractRelation; + private String collateralCode; + private String collateralType; + private String pledgeType; + private String appraiserCompany; + private int realtyPriceCurrent; + @Builder.Default + private int appraiserOrder = 2; + + /** + * Creating new realty used for prepare contract data. + * @return Realty with yaml data. + */ + public Realty createRealty(HyposContractYamlData hyposContractData) { + return Realty.builder() + .searchByRealtyType(hyposContractData.getRealty().getSearchByRealtyType()) + .registerArea(hyposContractData.getRealty().getRegisterArea()) + .autosuggestionText(hyposContractData.getRealty().getAutosuggestionText()) + .descriptiveNumber(hyposContractData.getRealty().getDescriptiveNumber()) + .flatNumber(hyposContractData.getRealty().getFlatNumber()) + .realtyPrice(hyposContractData.getRealty().getRealtyPrice()) + .realtyPriceCurrent(hyposContractData.getRealty().getRealtyPriceCurrent()) + .realtyType(hyposContractData.getRealty().getRealtyType()) + .pledgeType(hyposContractData.getRealty().getPledgeType()) + .contractRelation(hyposContractData.getRealty().getContractRelation()) + .collateralType(hyposContractData.getRealty().getCollateralType()) + .appraiserCompany(hyposContractData.getRealty().getAppraiserCompany()) + .build(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/ScoringParameter.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/ScoringParameter.java new file mode 100644 index 0000000..d4dd110 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/hypos/ScoringParameter.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.util.data.hypos; + +import cz.moneta.test.dsl.hypos.enums.ScoringApprovalResultType; +import cz.moneta.test.dsl.hypos.enums.ScoringParameterType; +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class ScoringParameter { + private String name; + private ScoringParameterType type; + private ScoringApprovalResultType automat; + private String expectedValue; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/ihub/IHubConstants.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/ihub/IHubConstants.java new file mode 100644 index 0000000..44e13a6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/ihub/IHubConstants.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.util.data.ihub; + +public class IHubConstants { + + public static final String CZECH_REPUBLIC_CODE = "52"; + public static final String MMB_BUDEJOVICE_OM = "86001340"; + public static final String MMB_BBC_OM = "86007040"; + public static final String GEBTHA6_SSO = "920181020"; + + private IHubConstants() { + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/payment/PaymentData.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/payment/PaymentData.java new file mode 100644 index 0000000..3de5781 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/payment/PaymentData.java @@ -0,0 +1,262 @@ +package cz.moneta.test.dsl.util.data.payment; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + + +@Builder +@Getter +public class PaymentData { + + private String postingValue; + + private String initiatorValue; + + private String instruction; + + private String distributionGroup; + + @Setter + private Integer count; + + @Setter + private Integer lastNonpriorityField; + + @Setter + private Integer lastPriorityField; + + @Setter + private String todayDate; + + @Setter + private String reservationDate; + + @Setter + private String distributionDate; + + private String firstPaymentDate; + + private String lastPaymentDate; + + private String submissionDate; + + private String documentDate; + + private String settlementDateFrom; + + private String settlementDateTo; + + @Setter + private String settlementDate; + + private String dateXpath; + + private String documentId; + + private String accPrefix; + + private String channelId; + + @Setter + private String orderId; + + private String debtorName; + + private String front; + + private String transactionCode; + + @Setter + private String random; + + @Setter + private String typeOfMessage; + + @Setter + private String rateType; + + @Setter + private String exchangeRate; + + @Setter + private String creditorName; + + @Setter + private String creditorAddress; + + @Setter + private String e2eRefDb; + + @Setter + private String icbsProfile; + + @Setter + private String bicFi; + + private String bicBank; + + @Setter + private String clearingPartner; + + @Setter + private String trxReference; + + @Setter + private String previousReference; + + private String payScheme; + + @Setter + private String channelName; + + @Setter + private String bankCode; + + @Setter + private String bankName; + + @Setter + private String nextDayDist; + + @Setter + private String hdType; + + @Setter + private String transactionType; + + @Setter + private String clientBirthNum; + + @Setter + private String accountNumberClient; + + @Setter + private String creditorAcc; + + @Setter + private String debtorAcc; + + @Setter + private String creditorAdressLine1; + + @Setter + private String creditorAdressLine2; + + @Setter + private String creditorIban; + + @Setter + private String debtorIban; + + @Setter + private String iban; + + @Setter + private String creditorBic; + + @Setter + private String amount; + + @Setter + private String amount1; + + @Setter + private String amountIcbs; + + @Setter + private String equivalentAmount; + + @Setter + private String loansRegistrationNumbersAmount; + + @Setter + private String banknotesAmount; + + @Setter + private String coinsAmount; + + @Setter + private String currencyCode; + + @Setter + private String smsCode; + + @Setter + private String feeType; + + @Setter + private String banknotesSummary; + + @Setter + private String coinsSummary; + + @Setter + private String summary; + + private String period; + + private String dayMonth; + + private String transactionName; + + private String description; + + private String branchCode; + + @Setter + private String messageId; + + @Setter + private String message; + + @Builder.Default + private String identification1 = "PŘÍKAZCE.....Harness Autotest.....1\n" + + "PŘÍKAZCE.....Harness Autotest.....2\n" + + "PŘÍKAZCE.....Harness Autotest.....3\n" + + "PŘÍKAZCE.....Harness Autotest.....4"; + + @Builder.Default + private String identification2 = "PROTISTRANA....Harness Autotest...1\n" + + "PROTISTRANA....Harness Autotest...2\n" + + "PROTISTRANA....Harness Autotest...3\n" + + "PROTISTRANA....Harness Autotest...4"; + + @Builder.Default + private String messageMax1 = "ZP pole......Harness Autotest.....1\n" + + "ZP pole......Harness Autotest.....2\n" + + "ZP pole......Harness Autotest.....3\n" + + "ZP pole......Harness Autotest.....4"; + + @Builder.Default + private String messageMax2 = "AV pole......Harness Autotest.....1\n" + + "AV pole......Harness Autotest.....2\n" + + "AV pole......Harness Autotest.....3\n" + + "AV pole......Harness Autotest.....4"; + + @Builder.Default + private String messageMin1 = "ZP pole......Harness Autotest.....1"; + + @Builder.Default + private String messageMin2 = "AV pole......Harness Autotest.....2"; + + @Builder.Default + private String name1 = "_Harness_Autotest_"; + + @Builder.Default + private String name2 = "Nazev_Harness_Autotest_1_Nazev_Harness_Autotest_2_"; + + @Builder.Default + private String variableSymbol = "1234567890"; + + @Builder.Default + private String specificSymbol = "0987654321"; + + @Builder.Default + private String constantSymbol = "3333333333"; + + public String getBankCodeLong() { + return bankCode + " - " + bankName; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/data/sb/FourPartToken.java b/tests/src/main/java/cz/moneta/test/dsl/util/data/sb/FourPartToken.java new file mode 100644 index 0000000..373f19b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/data/sb/FourPartToken.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.util.data.sb; + +import cz.moneta.test.harness.support.data.DataProvider; +// import org.springframework.beans.factory.annotation.Value; + +public interface FourPartToken extends DataProvider { + + // TODO generate/retrieve from store? + // @Value("XXX-XXX-XXX-XXX") + String token(); + + FourPartToken withToken(String token); + + default String first() { + return token().split("-")[0]; + } + + default String second() { + return token().split("-")[1]; + } + + default String third() { + return token().split("-")[2]; + } + + default String fourth() { + return token().split("-")[3]; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/Tasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/Tasks.java new file mode 100644 index 0000000..0637ce2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/Tasks.java @@ -0,0 +1,190 @@ +package cz.moneta.test.dsl.util.task; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.elastic.tasks.ElasticApiTasks; +import cz.moneta.test.dsl.exevido.tasks.ExevidoTasks; +import cz.moneta.test.dsl.fortelight.tasks.ForteLightTasks; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.dsl.newib.investments.InvestmentsTasks; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.salesforce.tasks.SalesForceTasks; +import cz.moneta.test.dsl.salesforceapi.tasks.SalesForceApiTasks; +import cz.moneta.test.dsl.util.task.auto.AutoTasks; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.dsl.util.task.cagw.CaGwTasks; +import cz.moneta.test.dsl.util.task.cebia.CebiaTasks; +import cz.moneta.test.dsl.util.task.common.CommonTasks; +import cz.moneta.test.dsl.util.task.cvm.CvmTasks; +import cz.moneta.test.dsl.util.task.dataprepare.DataPrepareTasks; +import cz.moneta.test.dsl.util.task.dmbsib.DmbsibTasks; +import cz.moneta.test.dsl.util.task.firstvision.FirstVisionTasks; +import cz.moneta.test.dsl.util.task.ib.IbTasks; +import cz.moneta.test.dsl.util.task.ihub.IHubTasks; +import cz.moneta.test.dsl.util.task.insurance.InsuranceTasks; +import cz.moneta.test.dsl.util.task.kasanova.KSNTasks; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.dsl.util.task.mvcr.MvcrTasks; +import cz.moneta.test.dsl.util.task.nasdb.NasDbTasks; +import cz.moneta.test.dsl.util.task.oauth2.Oauth2Tasks; +import cz.moneta.test.dsl.util.task.ods.OdsTasks; +import cz.moneta.test.dsl.util.task.retail.RetailTasks; +import cz.moneta.test.dsl.util.task.sb.SbTasks; +import cz.moneta.test.dsl.util.task.szrmocktasks.SzrMockTasks; +import cz.moneta.test.dsl.util.task.udebs.UdebsTasks; +import cz.moneta.test.dsl.util.task.ufo.UfoTasks; +import cz.moneta.test.dsl.util.task.wso2.Wso2Tasks; +import cz.moneta.test.dsl.util.task.xyzmo.XyzmoTasks; +import cz.moneta.test.dsl.wiremock.tasks.WiremockTasks; + +public class Tasks { + + private final Harness harness; + + public Tasks(Harness harness) { + this.harness = harness; + } + + public DmbsibTasks dmbsib() { + return new DmbsibTasks(harness); + } + + @Deprecated + public IbTasks ib() { + return new IbTasks(harness); + } + + public NewIbTasks newIb() { + return new NewIbTasks(harness); + } + + public RetailTasks retail() { + return new RetailTasks(harness); + } + + public Oauth2Tasks oauth2() { + return new Oauth2Tasks(harness); + } + + public UfoTasks ufo() { + return new UfoTasks(harness); + } + + public CaGwTasks caGw() { + return new CaGwTasks(harness); + } + + public SbTasks sb() { + return new SbTasks(harness); + } + + public UdebsTasks udebs() { + return new UdebsTasks(harness); + } + + public KSNTasks kasanova() { + return new KSNTasks(harness); + } + + public MvcrTasks mvcr() { + return new MvcrTasks(harness); + } + + public CommonTasks common() { + return new CommonTasks(harness); + } + + @Deprecated + public CebiaTasks cebia() { + return new CebiaTasks(harness); + } + + public AutoTasks auto() { + return new AutoTasks(harness); + } + + public XyzmoTasks xyzmo() { + return new XyzmoTasks(harness); + } + + public NasDbTasks nasDb() { + return new NasDbTasks(harness); + } + + @Deprecated + public IHubTasks iHub() { + return new IHubTasks(harness); + } + + public OdsTasks ods() { + return new OdsTasks(harness); + } + + public Wso2Tasks wso2() { + return new Wso2Tasks(harness); + } + + public FirstVisionTasks firstVision() { + return new FirstVisionTasks(harness); + } + + public HyposTasks hypos() { + return new HyposTasks(harness); + } + + public BrokerPortalTasks brokerPortal() { + return new BrokerPortalTasks(harness); + } + + public PaymentEngineTasks paymentEngineTasks() { + return new PaymentEngineTasks(harness); + } + + public InsuranceTasks insuranceTasks() { + return new InsuranceTasks(harness); + } + + public CvmTasks cvm() { + return new CvmTasks(harness); + } + + public DataPrepareTasks dataPrepareTasks() { + return new DataPrepareTasks(harness); + } + + public SalesForceTasks salesForce() { + return new SalesForceTasks(harness); + } + + public SalesForceApiTasks salesForceApiTasks() { + return new SalesForceApiTasks(harness); + } + + public ElasticApiTasks elasticApiTasks() { + return new ElasticApiTasks(harness); + } + + public ForteLightTasks forteTasks() { + return new ForteLightTasks(harness); + } + + public MonetaPortalTasks monetaPortal() { + return new MonetaPortalTasks(harness); + } + + public SzrMockTasks szrMock() { + return new SzrMockTasks(harness); + } + + public InvestmentsTasks investmentsTasks() { + return new InvestmentsTasks(harness); + } + + public WiremockTasks wiremockTasks() { + return new WiremockTasks(harness); + } + + public ExevidoTasks exevidoTasks() { + return new ExevidoTasks(harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/AutoTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/AutoTasks.java new file mode 100644 index 0000000..fe4e11b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/AutoTasks.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.util.task.auto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.cr.SmartAutoCrTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.df.SmartAutoDfTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.setman.SmartAutoSetmanTasks; + +public class AutoTasks { + + private final Harness harness; + + public AutoTasks(Harness harness) { + this.harness = harness; + } + + public SmartAutoTasks smartAuto() { + return new SmartAutoTasks(harness); + } + + public SmartAutoSetmanTasks smartAutoSetman() { + return new SmartAutoSetmanTasks(harness); + } + + public SmartAutoDfTasks smartAutoDf() { + return new SmartAutoDfTasks(harness); + } + + public SmartAutoCrTasks smartAutoCr() { + return new SmartAutoCrTasks(harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/SmartAutoTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/SmartAutoTasks.java new file mode 100644 index 0000000..27916fe --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/SmartAutoTasks.java @@ -0,0 +1,159 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.auto.smartauto.application.ApplicationTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.customer.*; +import cz.moneta.test.dsl.util.task.auto.smartauto.disclaimer.DisclaimerTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.goTo.GoToTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.insurance.InsuranceTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.invoices.InvoicesTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.login.LoginTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation.*; +import cz.moneta.test.dsl.util.task.auto.smartauto.others.AccountTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.others.SaveTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.queue.QueueTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.savedCalculations.SavedCalculationsTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.vehicle.DataTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.vehicle.SearchTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.validation.ValidationTasks; + +public class SmartAutoTasks { + + private final Harness harness; + + public SmartAutoTasks(Harness harness) { + this.harness = harness; + } + + public LoginTasks login() { + return new LoginTasks(harness); + } + + public DisclaimerTasks disclaimer() { + return new DisclaimerTasks(harness); + } + + public VerificationTasks verification() { + return new VerificationTasks(harness); + } + + public DateTasks date() { + return new DateTasks(harness); + } + + public FinancialProductTasks financialProduct() { + return new FinancialProductTasks(harness); + } + + public PrGroupTasks prGroupTasks() { return new PrGroupTasks(harness); } + + public PrClassTasks prClassTasks() { return new PrClassTasks(harness); } + + public BrandModelTasks brandModel() { + return new BrandModelTasks(harness); + } + + public SubsidyTasks SubsidyTasks() { + return new SubsidyTasks(harness); + } + + public CalculationTypeTasks calculationType() { + return new CalculationTypeTasks(harness); + } + + public UsageTasks usage() { + return new UsageTasks(harness); + } + + public ContactTasks contact() { + return new ContactTasks(harness); + } + + public IdentificationTasks identification() { + return new IdentificationTasks(harness); + } + + public BankContactTasks bankContact() { + return new BankContactTasks(harness); + } + + public PersonalDataTasks personalData() { + return new PersonalDataTasks(harness); + } + + public EmploymentTasks employment() { + return new EmploymentTasks(harness); + } + + public RevenuesAndExpensesTasks revenuesAndExpenses() { + return new RevenuesAndExpensesTasks(harness); + } + + public CompanyTasks company() { + return new CompanyTasks(harness); + } + + public FinancialTasks financial() { + return new FinancialTasks(harness); + } + + public GroupTasks group() { return new GroupTasks(harness); } + + public DataTasks data() { + return new DataTasks(harness); + } + + public SearchTasks search() { + return new SearchTasks(harness); + } + + public ValidationTasks validation() { + return new ValidationTasks(harness); + } + + public AccountTasks account() { + return new AccountTasks(harness); + } + + public ApplicationTasks application() { + return new ApplicationTasks(harness); + } + + public SaveTasks save() { + return new SaveTasks(harness); + } + + public ItemTypeTasks itemType() { + return new ItemTypeTasks(harness); + } + + // AGRO + public AgroDonationsTasks agroDonationsTasks() { return new AgroDonationsTasks(harness); } + + // Nepravidelné splátky + public IrregularPaymentTasks irregularPaymentTasks() {return new IrregularPaymentTasks(harness);} + + // Queue + public QueueTasks queue() { + return new QueueTasks(harness); + } + + //Saved Calculations + public SavedCalculationsTasks savedCalculations() { + return new SavedCalculationsTasks(harness); + } + + // Go To Task + public GoToTasks goTo() { + return new GoToTasks(harness); + } + + // Invoices Tasks + public InvoicesTasks invoicesTasks() { + return new InvoicesTasks(harness); + } + + public InsuranceTasks insuranceTasks() { + return new InsuranceTasks(harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/application/ApplicationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/application/ApplicationTasks.java new file mode 100644 index 0000000..ffa60ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/application/ApplicationTasks.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.application; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.QueuePage; +import cz.moneta.test.dsl.auto.smartauto.VehiclePage; + +import java.util.function.Function; + +public class ApplicationTasks { + + private final Harness harness; + + public ApplicationTasks(Harness harness) { + this.harness = harness; + } + + public Function sendApplication() { + return start -> start.clickToQueue() + .clickQueueAccept() + .checkHeadingSendApplication(); + } + + public Function sendSubsidyApplication() { + return start -> start.clickToQueue() + .clickSubsidyAcceptButton() + .clickQueueAccept() + .checkHeadingSendApplication(); + } + + public Function sendApplicationPGRLF() { + return start -> start.clickToQueue() + .clickAcceptSubsidyCheckbox() + .clickAcceptPGRLF() + .scrollToAccept() + .clickQueueAccept() + .checkHeadingSendApplication(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/cr/SmartAutoCrTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/cr/SmartAutoCrTasks.java new file mode 100644 index 0000000..56225ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/cr/SmartAutoCrTasks.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.cr; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.auto.smartauto.cr.login.LoginTasks; + +public class SmartAutoCrTasks { + + private final Harness harness; + + public SmartAutoCrTasks(Harness harness) { + this.harness = harness; + } + + public LoginTasks login() { + return new LoginTasks(harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/cr/login/LoginTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/cr/login/LoginTasks.java new file mode 100644 index 0000000..78805f5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/cr/login/LoginTasks.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.cr.login; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.LoginPage; +import cz.moneta.test.dsl.auto.smartauto.cr.ForBillingPage; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +public class LoginTasks { + + private final Harness harness; + + private SmartAutoTasks smartAutoTasks; + + public LoginTasks(Harness harness) { + this.harness = harness; + this.smartAutoTasks = harness.tasks().auto().smartAuto(); + } + + public Function loginWithCredentials(Credentials credentials) { + return start -> start.then(smartAutoTasks.login().loginWithCredentials(credentials)) + .clickOperatorOptions() + .clickCommissionReporting(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/BankContactTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/BankContactTasks.java new file mode 100644 index 0000000..70aaec5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/BankContactTasks.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.customer; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.CustomerPage; +import cz.moneta.test.dsl.auto.smartauto.shared.BankCode; + +import java.util.function.Function; + +public class BankContactTasks { + + private final Harness harness; + + public BankContactTasks(Harness harness) { + this.harness = harness; + } + + public Function fillBankContact(String accountNumber, BankCode bankCode) { + return start -> start.typeAccountNumber(accountNumber) + .clickBankCode() + .chooseBankCode(bankCode); + } + + public Function fillBusinessmanBankContact(String accountNumber, BankCode bankCode) { + return start -> start.typeBusinessmanAccountNumber(accountNumber) + .clickBusinessmanBankCode() + .chooseBusinessmanBankCode(bankCode); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/CompanyTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/CompanyTasks.java new file mode 100644 index 0000000..bdbc61e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/CompanyTasks.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.customer; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.CustomerPage; +import cz.moneta.test.dsl.auto.smartauto.shared.CompanyData; + +import java.util.function.Function; + +public class CompanyTasks { + + private final Harness harness; + + public CompanyTasks(Harness harness) { + this.harness = harness; + } + + public Function fillCompanyRegistered(CompanyData companyData) { + return start -> start.typeCompany(companyData.getCompany()) + .clickSearchInAres() + .chooseCompany(companyData.getCompany()) + .typeCompanyContactAddress(companyData.getCompanyContactAddress().getValue()) + .typeCompanyPhoneNumber(companyData.getCompanyPhoneNumber()) + .typeCompanyOtherPhoneNumber(companyData.getCompanyOtherPhoneNumber()) + .typeCompanyEmail(companyData.getCompanyEmail()); + } + + public Function fillCompanyNotRegistered(CompanyData companyData) { + return start -> start.clickCompanyNotRegistered() + .typeCompanyName(companyData.getCompanyName()) + .typeCompanyStree(companyData.getCompanyStreet()) + .typeCompanyResidenceNumber(companyData.getCompanyResidenceNumber()) + .typeCompanyOrientationNumber(companyData.getCompanyOrientationNumber()) + .typeCompanyZipCode(companyData.getCompanyZipCode()) + .typeCompanyCity(companyData.getCompanyCity()) + .clickCompanyCountry() + .chooseCompanyCountry(companyData.getCompanyCountry()) + .typeCompanyPhoneNumber(companyData.getCompanyPhoneNumber()) + .typeCompanyOtherPhoneNumber(companyData.getCompanyOtherPhoneNumber()) + .typeCompanyEmail(companyData.getCompanyEmail()); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/ContactTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/ContactTasks.java new file mode 100644 index 0000000..9185081 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/ContactTasks.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.customer; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.CustomerPage; +import cz.moneta.test.dsl.auto.smartauto.shared.CompanyData; +import cz.moneta.test.dsl.auto.smartauto.shared.ContactData; + +import java.util.function.Function; + +public class ContactTasks { + + private final Harness harness; + + public ContactTasks(Harness harness) { + this.harness = harness; + } + + public Function fillContactInformation(ContactData contactData) { + return start -> start + .typePhoneNumber(contactData.getPhoneNumber()) + .typeEmail(contactData.getEmail()) + .typeBirthplace(contactData.getBirthplace()); + } + + public Function fillCompanyInformation(CompanyData companyData) { + return start -> start.typeBusinessmanPhoneNumber(companyData.getCompanyPhoneNumber()) + .typeBusinessmanOtherPhoneNumber(companyData.getCompanyOtherPhoneNumber()) + .typeBusinessmanEmail(companyData.getCompanyEmail()) + .clickBusinessmanSilentCompanion(); + } + + public Function fillCompanyInformationFallback(CompanyData companyData) { + return start -> start.fillCreationDate("09.01.2004") + .clickRegistryType() + .chooseRegistryType() + .clickNoOfEmployees() + .chooseNoOfEmployees() + .typeBusinessmanPhoneNumber(companyData.getCompanyPhoneNumber()) + .typeBusinessmanOtherPhoneNumber(companyData.getCompanyOtherPhoneNumber()) + .clickBusinessmanSilentCompanion(); + } + + public Function fillCompanyInformationFallbackAgro(CompanyData companyData) { + return start -> start.fillCreationDate("09.01.2004") + .clickRegistryType() + .chooseRegistryType() + .clickNoOfEmployees() + .chooseNoOfEmployees() + .typeBusinessmanPhoneNumber(companyData.getCompanyPhoneNumber()) + .typeBusinessmanOtherPhoneNumber(companyData.getCompanyOtherPhoneNumber()) + .typeBusinessmanEmail(companyData.getCompanyEmail()) + .clickBusinessmanSilentCompanion(); + } + + public Function fillBusinessmanInformation(CompanyData companyData) { + return start -> start.typeBusinessmanPhoneNumber(companyData.getCompanyPhoneNumber()) + .typeBusinessmanOtherPhoneNumber(companyData.getCompanyOtherPhoneNumber()) + .typeBusinessmanEmail(companyData.getCompanyEmail()) + .clickBusinessmanSilentCompanion(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/EmploymentTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/EmploymentTasks.java new file mode 100644 index 0000000..70fc6fb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/EmploymentTasks.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.customer; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.CustomerPage; +import cz.moneta.test.dsl.auto.smartauto.shared.Employment; + +import java.util.function.Function; + +public class EmploymentTasks { + + private final Harness harness; + + public EmploymentTasks(Harness harness) { + this.harness = harness; + } + + public Function fillEmployment(Employment employment, String emplymentStartDate, String occupation) { + return start -> start.clickEmployment() + .chooseEmployment(employment) + .typeEmploymentStartDate(emplymentStartDate) + .typeOccupation(occupation); + } + + public Function fillEmploymentRetirement(String emplymentStartDate) { + return start -> start.clickEmployment() + .chooseEmployment(Employment.RETIREMENT) + .typeEmploymentStartDate(emplymentStartDate); + } + + public Function fillEmploymentCertainPeriodNoticePeriod(String emplymentStartDate, String emplymentEndDate, String employmentPeriodDate, String occupation) { + return start -> start.clickEmployment() + .chooseEmployment(Employment.CERTAIN_TIME) + .typeEmploymentStartDate(emplymentStartDate) + .typeEmploymentEndDate(emplymentEndDate) + .clickClientInNoticePeriod() + .typeEmploymentEndPeriodDate(employmentPeriodDate) + .typeOccupation(occupation); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/FinancialTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/FinancialTasks.java new file mode 100644 index 0000000..a529b83 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/FinancialTasks.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.customer; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.CustomerPage; + +import java.util.function.Function; + +public class FinancialTasks { + + private final Harness harness; + + public FinancialTasks(Harness harness) { + this.harness = harness; + } + + public Function fillDoubleEntry(int equity, int foreignSources, int profitBeforeTax, int shortTimeReceivables, int incomeTotal) { + return start -> start.clickBusinessmanDoubleEntry() + .typeBusinessmanDoubleEntryEquity(equity) + .typeBusinessmanDoubleEntryForeignSources(foreignSources) + .typeBusinessmanDoubleEntryProfitBeforeTax(profitBeforeTax) + .typeBusinessmanDoubleEntryShortTimeReceivables(shortTimeReceivables) + .typeBusinessmanDoubleEntryIncomeTotal(incomeTotal); + } + + public Function clickDoubleEntry() { + return start -> start.clickBusinessmanDoubleEntry(); + } + + public Function fillTaxRecords(int ownAssets, int incomeCommitmentSum, int incomeCommitmentDifference, int shortTimeReceivables, int incomeTotal) { + return start -> start.clickBusinessmanTaxRecords() + .typeBusinessmanTaxRecordsOwnAssets(ownAssets) + .typeBusinessmanTaxRecordsIncomeCommitmentSum(incomeCommitmentSum) + .typeBusinessmanTaxRecordsIncomeCommitmentDifference(incomeCommitmentDifference) + .typeBusinessmanTaxRecordsShortTimeReceivables(shortTimeReceivables) + .typeBusinessmanTaxRecordsIncomeTotal(incomeTotal); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/IdentificationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/IdentificationTasks.java new file mode 100644 index 0000000..b4579ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/IdentificationTasks.java @@ -0,0 +1,158 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.customer; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.CustomerPage; +import cz.moneta.test.dsl.auto.smartauto.shared.*; + +import java.util.function.Function; + +public class IdentificationTasks { + + private final Harness harness; + + public IdentificationTasks(Harness harness) { + this.harness = harness; + } + + public Function fillIdentification(IdentificationData identificationData) { + return start -> start.clickFirstRepresentativeCountry() + .chooseFirstRepresentativeCountry(identificationData.getCountry()) + .clickFirstIdentificationType() + .chooseFirstIdentificationType(identificationData.getIdentificationType()) + .typeIdentificationIdNumber(identificationData.getIdentificationIdNumber()) + .clickFirstIdentificationIssuer() + .chooseFirstIdentificationIssuer() + .typeIdentificationIdValidity(identificationData.getIdentificationIdValidity()); + } + + public Function fillSecondIdentification(IdentificationData identificationData) { + return start -> start.clickFirstRepresentativeCountry() + .typeSecondIdentificationIdNumber(identificationData.getIdentificationIdNumber()) + .typeSecondIdentificationIdValidity(identificationData.getIdentificationIdValidity()); + } + + public Function fillIdentificationNotResident(IdentificationData identificationData) { + return start -> start.clickFirstRepresentativeCountry() + .chooseFirstRepresentativeCountry(identificationData.getCountry()) + .chooseStayType(identificationData.getStayType()) + .clickFirstIdentificationType() + .chooseFirstIdentificationType(identificationData.getIdentificationType()) + .typeIdentificationIdNumber(identificationData.getIdentificationIdNumber()) + .clickFirstIdentificationIssuer() + .chooseFirstIdentificationIssuer() + .typeIdentificationIdValidity(identificationData.getIdentificationIdValidity()); + } + public Function fillFirstRepresentativeIdentification(ContactData contactData, IdentificationData identificationData) { + return start -> start.clickCompanyRole() + .chooseCompanyRole(identificationData.getCompanyRole()) + .typeFirstRepresentativeName(contactData.getName()) + .typeFirstRepresentativeSurname(contactData.getSurname()) + .typeFirstRepresentativeTitleBefore(contactData.getTitleBefore()) + .typeFirstRepresentativeTitleAfter(contactData.getTitleAfter()) + .clickFirstRepresentativeNationality() + .chooseFirstRepresentativeNationality(identificationData.getNationality()) + .typeFirstRepresentativePin(identificationData.getPin().getValue()) + .lostFocus() + .checkFirstRepresentativeBirthdate(identificationData.getBirthdate()) + .typeFirstRepresentativeBirthplace(identificationData.getBirthplace()) + .clickFirstRepresentativeCountry() + .chooseFirstRepresentativeCountry(identificationData.getCountry()) + .clickFirstRepresentativeIdentificationType() + .chooseFirstRepresentativeIdentificationType(identificationData.getIdentificationType()) + .typeFirstRepresentativeIdentificationIdNumber(identificationData.getIdentificationIdNumber()) + .clickFirstIdentificationIssuer() + .chooseFirstIdentificationIssuer() + .typeFirstRepresentativeIdentificationIdValidity(identificationData.getIdentificationIdValidity()) + .typeFirstRepresentativePhoneNumber(contactData.getPhoneNumber()) + .typeFirstRepresentativeOtherPhoneNumber(contactData.getOtherPhoneNumber()) + .typeFirstRepresentativeEmailAddress(contactData.getEmail()) + .typeFirstRepresentativePermanentAddress(contactData.getAddress().getValue()) + .clickFirstRepresentativePermanentAddress(contactData.getAddress()) + .typeFirstRepresentativeContactAddress(contactData.getAddress().getValue()) + .clickFirstRepresentativeContactAddress(contactData.getAddress()); + } + + public Function fillFirstRepresentativeIdentificationNoRole(ContactData contactData, IdentificationData identificationData) { + return start -> start.typeFirstRepresentativeName(contactData.getName()) + .typeFirstRepresentativeSurname(contactData.getSurname()) + .typeFirstRepresentativeTitleBefore(contactData.getTitleBefore()) + .typeFirstRepresentativeTitleAfter(contactData.getTitleAfter()) + .clickFirstRepresentativeNationality() + .chooseFirstRepresentativeNationality(identificationData.getNationality()) + .typeFirstRepresentativePin(identificationData.getPin().getValue()) + .lostFocus() + .checkFirstRepresentativeBirthdate(identificationData.getBirthdate()) + .typeFirstRepresentativeBirthplace(identificationData.getBirthplace()) + .clickFirstRepresentativeCountry() + .chooseFirstRepresentativeCountry(identificationData.getCountry()) + .clickFirstRepresentativeIdentificationType() + .chooseFirstRepresentativeIdentificationType(identificationData.getIdentificationType()) + .typeFirstRepresentativeIdentificationIdNumber(identificationData.getIdentificationIdNumber()) + .clickFirstIdentificationIssuer() + .chooseFirstIdentificationIssuer() + .typeFirstRepresentativeIdentificationIdValidity(identificationData.getIdentificationIdValidity()) + .typeFirstRepresentativePhoneNumber(contactData.getPhoneNumber()) + .typeFirstRepresentativeOtherPhoneNumber(contactData.getOtherPhoneNumber()) + .typeFirstRepresentativeEmailAddress(contactData.getEmail()) + .typeFirstRepresentativePermanentAddress(contactData.getAddress().getValue()) + .clickFirstRepresentativePermanentAddress(contactData.getAddress()) + .typeFirstRepresentativeContactAddress(contactData.getAddress().getValue()) + .clickFirstRepresentativeContactAddress(contactData.getAddress()); + } + + public Function fillFirstRepresentativeIdentificationNotResident(ContactData contactData, IdentificationData identificationData) { + return start -> start.clickCompanyRole() + .chooseCompanyRole(identificationData.getCompanyRole()) + .typeFirstRepresentativeName(contactData.getName()) + .typeFirstRepresentativeSurname(contactData.getSurname()) + .typeFirstRepresentativeTitleBefore(contactData.getTitleBefore()) + .typeFirstRepresentativeTitleAfter(contactData.getTitleAfter()) + .clickFirstRepresentativeNationality() + .chooseFirstRepresentativeNationality(identificationData.getNationality()) + .clickFirstRepresentativeStayType() + .chooseFirstRepresentativeStayType(identificationData.getStayType()) + .typeFirstRepresentativePin(identificationData.getPin().getValue()) + .lostFocus() + .checkFirstRepresentativeBirthdate(identificationData.getBirthdate()) + .typeFirstRepresentativeBirthplace(identificationData.getBirthplace()) + .clickFirstRepresentativeCountry() + .chooseFirstRepresentativeCountry(identificationData.getCountry()) + .clickFirstRepresentativeIdentificationType() + .chooseFirstRepresentativeIdentificationType(identificationData.getIdentificationType()) + .typeFirstRepresentativeIdentificationIdNumber(identificationData.getIdentificationIdNumber()) + .typeFirstRepresentativeIdentificationIdValidity(identificationData.getIdentificationIdValidity()) + .typeFirstRepresentativePhoneNumber(contactData.getPhoneNumber()) + .typeFirstRepresentativeOtherPhoneNumber(contactData.getOtherPhoneNumber()) + .typeFirstRepresentativeEmailAddress(contactData.getEmail()) + .typeFirstRepresentativePermanentAddress(contactData.getAddress().getValue()) + .clickFirstRepresentativePermanentAddress(contactData.getAddress()) + .typeFirstRepresentativeContactAddress(contactData.getAddress().getValue()) + .clickFirstRepresentativeContactAddress(contactData.getAddress()); + } + + public Function fillSecondRepresentativeIdentification(ContactData contactData, IdentificationData identificationData) { + return start -> start.clickSecondCompanyRole() + .chooseSecondCompanyRole(identificationData.getCompanyRole()) + .typeSecondRepresentativeName(contactData.getName()) + .typeSecondRepresentativeSurname(contactData.getSurname()) + .typeSecondRepresentativeTitleBefore(contactData.getTitleBefore()) + .typeSecondRepresentativeTitleAfter(contactData.getTitleAfter()) + .clickSecondRepresentativeNationality() + .chooseSecondRepresentativeNationality(identificationData.getNationality()) + .typeSecondRepresentativePin(identificationData.getPin().getValue()) + .lostFocus() + .checkSecondRepresentativeBirthdate(identificationData.getBirthdate()) + .typeSecondRepresentativeBirthplace(identificationData.getBirthplace()) + .clickSecondRepresentativeCountry() + .chooseSecondRepresentativeCountry(identificationData.getCountry()) + .clickSecondRepresentativeIdentificationType() + .chooseSecondRepresentativeIdentificationType(identificationData.getIdentificationType()) + .typeSecondRepresentativeIdentificationIdNumber(identificationData.getIdentificationIdNumber()) + .typeSecondRepresentativeIdentificationIdValidity(identificationData.getIdentificationIdValidity()) + .typeSecondRepresentativePhoneNumber(contactData.getPhoneNumber()) + .typeSecondRepresentativeOtherPhoneNumber(contactData.getOtherPhoneNumber()) + .typeSecondRepresentativeEmailAddress(contactData.getEmail()) + .typeSecondRepresentativeContactAddress(contactData.getAddress().getValue()) + .clickSecondRepresentativeContactAddress(contactData.getAddress()); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/PersonalDataTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/PersonalDataTasks.java new file mode 100644 index 0000000..031b853 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/PersonalDataTasks.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.customer; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.CustomerPage; +import cz.moneta.test.dsl.auto.smartauto.shared.Education; +import cz.moneta.test.dsl.auto.smartauto.shared.HousingKind; +import cz.moneta.test.dsl.auto.smartauto.shared.MaritalStatus; + +import java.util.function.Function; + +public class PersonalDataTasks { + + private final Harness harness; + + public PersonalDataTasks(Harness harness) { + this.harness = harness; + } + + public Function fillPersonalData(MaritalStatus maritalStatus, int dependentNumber, HousingKind housingKind, Education education) { + return start -> start.clickMaritalStatus() + .chooseMaritalStatus(maritalStatus) + .typeDependentNumber(dependentNumber) + .clickHousingKind() + .chooseHousingKind(housingKind) + .clickEducation() + .chooseEducation(education); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/RevenuesAndExpensesTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/RevenuesAndExpensesTasks.java new file mode 100644 index 0000000..a05fd3f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/customer/RevenuesAndExpensesTasks.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.customer; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.CustomerPage; + +import java.util.function.Function; + +public class RevenuesAndExpensesTasks { + + private final Harness harness; + + public RevenuesAndExpensesTasks(Harness harness) { + this.harness = harness; + } + + public Function fillRevenuesAndExpenses(int netIncome, int netMonthlyHouseholdIncome, int monthlyPayments, int otherMonthlyCharges) { + return start -> start.typeNetIncome(netIncome) + .typeNetMonthlyHouseholdIncome(netMonthlyHouseholdIncome) + .typeMonthlyPayments(monthlyPayments) + .typeOtherMonthlyCharges(otherMonthlyCharges) + .clickIncomeSource() + .chooseIncomeSource(); + } + + public Function fillRevenuesAndExpensesNoSource(int netIncome, int netMonthlyHouseholdIncome, int monthlyPayments, int otherMonthlyCharges) { + return start -> start.typeNetIncome(netIncome) + .typeNetMonthlyHouseholdIncome(netMonthlyHouseholdIncome) + .typeMonthlyPayments(monthlyPayments) + .typeOtherMonthlyCharges(otherMonthlyCharges); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/df/SmartAutoDfTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/df/SmartAutoDfTasks.java new file mode 100644 index 0000000..7eb4d7e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/df/SmartAutoDfTasks.java @@ -0,0 +1,17 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.df; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.auto.smartauto.df.login.LoginTasks; + +public class SmartAutoDfTasks { + + private final Harness harness; + + public SmartAutoDfTasks(Harness harness) { + this.harness = harness; + } + + public LoginTasks login() { + return new LoginTasks(harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/df/login/LoginTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/df/login/LoginTasks.java new file mode 100644 index 0000000..848db3b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/df/login/LoginTasks.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.df.login; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.LoginPage; +import cz.moneta.test.dsl.auto.smartauto.df.DashboardPage; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +public class LoginTasks { + + private final Harness harness; + + private SmartAutoTasks smartAutoTasks; + + public LoginTasks(Harness harness) { + this.harness = harness; + this.smartAutoTasks = harness.tasks().auto().smartAuto(); + } + + public Function loginWithCredentials(Credentials credentials) { + return start -> start.then(smartAutoTasks.login().loginWithCredentials(credentials)) + .clickOperatorOptions() + .clickDealerFinancing(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/disclaimer/DisclaimerTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/disclaimer/DisclaimerTasks.java new file mode 100644 index 0000000..a2ab6ac --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/disclaimer/DisclaimerTasks.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.disclaimer; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.DocumentsConfirmationPage; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; + +import java.util.function.Function; + +public class DisclaimerTasks { + + private final Harness harness; + + public DisclaimerTasks(Harness harness) { + this.harness = harness; + } + + public Function acceptDisclaimer() { + return start -> start.scrollToDocumentBottom() + .clickContinue(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/goTo/GoToTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/goTo/GoToTasks.java new file mode 100644 index 0000000..3928f33 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/goTo/GoToTasks.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.goTo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.*; + +import java.util.function.Function; + +public class GoToTasks { + + private final Harness harness; + public GoToTasks(Harness harness) { + this.harness = harness; + } + + public Function invoicesPage() { + return start -> start + .clickNavigation() + .clickInvoices(); + } + + public Function queuePage() { + return NewCalculationPage::clickMenuQueue; + } + + public Function savedCalculationsPage() { + return NewCalculationPage::clickMenuSaved; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/insurance/InsuranceTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/insurance/InsuranceTasks.java new file mode 100644 index 0000000..02a6847 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/insurance/InsuranceTasks.java @@ -0,0 +1,58 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; + +import java.util.function.Function; + +public class InsuranceTasks { + + private final Harness harness; + + public InsuranceTasks(Harness harness) { + this.harness = harness; + } + + public Function fillCustomerData( + CalculationData calculationData, SmartAutoTasks smartAutoTasks, CompanyData companyData) { + return fillCustomerData(calculationData, smartAutoTasks, null, null, companyData); + } + + public Function fillCustomerData( + CalculationData calculationData, + SmartAutoTasks smartAutoTasks, + ContactData contactData, + IdentificationData identificationData) { + return fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData, null); + } + + public Function fillCustomerData( + CalculationData calculationData, + SmartAutoTasks smartAutoTasks, + ContactData contactData, + IdentificationData identificationData, + CompanyData companyData) { + return calculationData.getCustomer() == Customer.CONSUMER ? + smartAutoTasks.calculationType().fillInsuranceCustomerData(contactData, identificationData) : + smartAutoTasks.calculationType().fillInsuranceFirmData(companyData); + } + + public Function fillInsuranceData( + CalculationData calculationData, + SmartAutoTasks smartAutoTasks) { + return switch (calculationData.getBrand()) { + case AGADOS -> smartAutoTasks.calculationType().fillInsuranceDataTrailer(calculationData); + case HARLEY -> smartAutoTasks.calculationType().fillInsuranceDataNoVin(calculationData); + case JCB -> smartAutoTasks.calculationType().fillInsuranceDataAgro(calculationData); + default -> smartAutoTasks.calculationType().fillInsuranceData(calculationData); + }; + } + + public Function fillInsuranceDataFilters( + CalculationData calculationData, + SmartAutoTasks smartAutoTasks) { + return smartAutoTasks.calculationType().fillInsuranceDataNoVin(calculationData); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/invoices/InvoicesTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/invoices/InvoicesTasks.java new file mode 100644 index 0000000..090437b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/invoices/InvoicesTasks.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.invoices; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.InvoicesPage; +import cz.moneta.test.dsl.auto.smartauto.shared.DateData; + +import java.util.function.Function; + +public class InvoicesTasks { + + private final Harness harness; + public InvoicesTasks(Harness harness) { + this.harness = harness; + } + + public Function setFromDate(DateData date) { + return start -> start + .clickDateFrom() + .setDateFromYear(date.year()) + .clickDateFromMonth() + .clickDateFromMonthValue(date.month()) + .clickDateFromDayValue(date.day()); + } + + public Function setToDate(DateData date) { + return start -> start + .clickDateTo() + .clickDateToMonth() + .clickDateToMonthValue(date.month()) + .clickDateToDayValue(date.day()); + } + + public Function search() { + return InvoicesPage::clickSearch; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/login/LoginTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/login/LoginTasks.java new file mode 100644 index 0000000..0ef87db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/login/LoginTasks.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.login; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.LoginPage; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +public class LoginTasks { + + private final Harness harness; + + public LoginTasks(Harness harness) { + this.harness = harness; + } + + public Function loginWithCredentials(Credentials credentials) { + + return start -> start.typeUsername(credentials.getUsername()) + .typePassword(credentials.getPassword()) + .clickLogin(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/AgroDonationsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/AgroDonationsTasks.java new file mode 100644 index 0000000..548e23b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/AgroDonationsTasks.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; + +import java.util.function.Function; + +public class AgroDonationsTasks { + + private final Harness harness; + + public AgroDonationsTasks(Harness harness) { + this.harness = harness; + } + + public Function chooseAgroDonations() { + return start -> start + .clickAgroPgrlf() + .clickAgroSzif() + .clickAgroYoungFarmer(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/BrandModelTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/BrandModelTasks.java new file mode 100644 index 0000000..6eae0e7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/BrandModelTasks.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.Brand; +import cz.moneta.test.dsl.auto.smartauto.shared.Model; + +import java.util.function.Function; + +public class BrandModelTasks { + + private final Harness harness; + + public BrandModelTasks(Harness harness) { + this.harness = harness; + } + + public Function chooseBrandAndModel(Brand brand, Model model) { + return start -> start + .typeVehicleBrand(brand.getValue()) + .clickVehicleBrandSearchedOption(brand) + .typeVehicleModel(model.getValue()) + .clickVehicleModelSearchedOption(model); + } + + public Function chooseAgroBrand (Brand brand) { + return start -> start + .clickAgroSearchBrandArrow() + .clickAgroBrand(brand); + } + + public Function chooseAgroBrandWithoutTP (Brand brand) { + return start -> start + .typeAgroBrandWithoutTP(brand.getValue()); + } + + public Function chooseAgroModel (Model model) { + return start -> start + .typeAgroModel(model.getValue()); + } + + public Function clickAgroModel (Model model) { + return start -> start + .searchAgroModel() + .clickAgroModel(model); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/CalculationTypeTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/CalculationTypeTasks.java new file mode 100644 index 0000000..cb0d701 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/CalculationTypeTasks.java @@ -0,0 +1,258 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; + +import java.util.function.Function; + +public class CalculationTypeTasks { + + private final Harness harness; + private SmartAutoTasks smartAutoTasks; + + public CalculationTypeTasks(Harness harness) { + this.harness = harness; + this.smartAutoTasks = harness.tasks().auto().smartAuto(); + } + + public Function makeCalculation(CalculationData calculationData) { + return start -> start + .clickCustomer(calculationData.getCustomer()) + .clickVehicleCategoryValue(Category.VEHICLES) + .then(smartAutoTasks.prClassTasks().choosePrClass(calculationData.getPrClass())) + .then(smartAutoTasks.prGroupTasks().choosePrGroup(calculationData.getPrGroup())) + .then(smartAutoTasks.brandModel().chooseBrandAndModel(calculationData.getBrand(), calculationData.getModel())) + .then(smartAutoTasks.group().chooseGroup(calculationData.getGroup())) + .typePrice(calculationData.getPrice()) + .clickVat(calculationData.getVat()) + .then(smartAutoTasks.usage().chooseUsage(calculationData.getUsage())) + .then(smartAutoTasks.date().chooseRegistrationDate(calculationData.getMonth())) + .then(smartAutoTasks.financialProduct().chooseFinancialProduct(calculationData.getProduct())); + } + + public Function makeSubsidyCalculation(CalculationData calculationData, CompanyData companyData, ContactData contactData, IdentificationData identificationData, SmartAutoTasks smartAutoTasks) { + return start -> start + .clickCustomer(calculationData.getCustomer()) + .clickVehicleCategoryValue(Category.VEHICLES) + .then(smartAutoTasks.prClassTasks().choosePrClass(calculationData.getPrClass())) + .then(smartAutoTasks.prGroupTasks().choosePrGroup(calculationData.getPrGroup())) + .then(smartAutoTasks.brandModel().chooseBrandAndModel(calculationData.getBrand(), calculationData.getModel())) + .then(smartAutoTasks.group().chooseGroup(calculationData.getGroup())) + .typePrice(calculationData.getPrice()) + .clickVat(calculationData.getVat()) + .then(smartAutoTasks.usage().chooseUsage(calculationData.getUsage())) + .then(smartAutoTasks.date().chooseRegistrationDate(calculationData.getMonth())) + .then(smartAutoTasks.SubsidyTasks().chooseSubsidy(calculationData.getSubsidy())) + .then(smartAutoTasks.financialProduct().chooseFinancialProduct(calculationData.getProduct())) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData, companyData)) + .typeFirstPayment(calculationData.getFirstPayment()); + } + + public Function makeCalculationAgro(CalculationData calculationData) { + return start -> start + .clickCustomer(calculationData.getCustomer()) + .clickVehicleCategoryValue(Category.AGRO) + .then(smartAutoTasks.prClassTasks().choosePrClass(calculationData.getPrClass())) + .then(smartAutoTasks.prGroupTasks().choosePrGroup(calculationData.getPrGroup())) + .then(smartAutoTasks.group().chooseGroup(calculationData.getGroup())) + .then(smartAutoTasks.brandModel().chooseAgroBrand(calculationData.getBrand())) + .then(smartAutoTasks.brandModel().chooseAgroModel(calculationData.getModel())) + .then(smartAutoTasks.itemType().chooseItemType(calculationData.getItemType())) + .typePrice(calculationData.getPrice()) + .clickVat(calculationData.getVat()) + .then(smartAutoTasks.usage().chooseUsage(calculationData.getUsage())) + .then(smartAutoTasks.date().chooseAgroDate()) + .then(smartAutoTasks.agroDonationsTasks().chooseAgroDonations()) + .then(smartAutoTasks.financialProduct().chooseFinancialProductAdjust(calculationData)); + } + + public Function makeCalculationAgroDeferredDrawing(CalculationData calculationData) { + return start -> start + .clickCustomer(calculationData.getCustomer()) + .clickVehicleCategoryValue(Category.AGRO) + .then(smartAutoTasks.prClassTasks().choosePrClass(calculationData.getPrClass())) + .then(smartAutoTasks.prGroupTasks().choosePrGroup(calculationData.getPrGroup())) + .then(smartAutoTasks.group().chooseGroup(calculationData.getGroup())) + .then(smartAutoTasks.brandModel().chooseAgroBrand(calculationData.getBrand())) + .then(smartAutoTasks.brandModel().chooseAgroModel(calculationData.getModel())) + .then(smartAutoTasks.itemType().chooseItemType(calculationData.getItemType())) + .typePrice(calculationData.getPrice()) + .clickVat(calculationData.getVat()) + .then(smartAutoTasks.usage().chooseUsage(calculationData.getUsage())) + .then(smartAutoTasks.calculationType().addDeferredDrawing()) + .then(smartAutoTasks.agroDonationsTasks().chooseAgroDonations()) + .then(smartAutoTasks.financialProduct().chooseFinancialProductAdjust(calculationData)); + } + + public Function makeCalculationAgroWithoutTP(CalculationData calculationData) { + return start -> start + .clickCustomer(calculationData.getCustomer()) + .clickVehicleCategoryValue(Category.AGRO) + .then(smartAutoTasks.prClassTasks().choosePrClass(calculationData.getPrClass())) + .then(smartAutoTasks.prGroupTasks().choosePrGroup(calculationData.getPrGroup())) + .then(smartAutoTasks.group().chooseGroup(calculationData.getGroup())) + .typePrice(calculationData.getPrice()) + .clickVat(calculationData.getVat()) + .then(smartAutoTasks.usage().chooseUsage(calculationData.getUsage())) + .then(smartAutoTasks.date().chooseAgroDate()) + .then(smartAutoTasks.brandModel().chooseAgroBrandWithoutTP(calculationData.getBrand())) + .then(smartAutoTasks.brandModel().chooseAgroModel(calculationData.getModel())) + .then(smartAutoTasks.brandModel().clickAgroModel(calculationData.getModel())) + .then(smartAutoTasks.agroDonationsTasks().chooseAgroDonations()) + .then(smartAutoTasks.financialProduct().chooseFinancialProductAdjust(calculationData)); + } + + public Function makeCalculationAgroWithoutTPDeferredDrawing(CalculationData calculationData) { + return start -> start + .clickCustomer(calculationData.getCustomer()) + .clickVehicleCategoryValue(Category.AGRO) + .then(smartAutoTasks.prClassTasks().choosePrClass(calculationData.getPrClass())) + .then(smartAutoTasks.prGroupTasks().choosePrGroup(calculationData.getPrGroup())) + .then(smartAutoTasks.group().chooseGroup(calculationData.getGroup())) + .typePrice(calculationData.getPrice()) + .clickVat(calculationData.getVat()) + .then(smartAutoTasks.usage().chooseUsage(calculationData.getUsage())) + .then(smartAutoTasks.calculationType().addDeferredDrawing()) + .then(smartAutoTasks.brandModel().chooseAgroBrandWithoutTP(calculationData.getBrand())) + .then(smartAutoTasks.brandModel().chooseAgroModel(calculationData.getModel())) + .then(smartAutoTasks.brandModel().clickAgroModel(calculationData.getModel())) + .then(smartAutoTasks.agroDonationsTasks().chooseAgroDonations()) + .then(smartAutoTasks.financialProduct().chooseFinancialProductAdjust(calculationData)); + } + + public Function makeCalculationWithRegistrationDate(CalculationData calculationData) { + return start -> start + .clickCustomer(calculationData.getCustomer()) + .then(smartAutoTasks.prClassTasks().choosePrClass(calculationData.getPrClass())) + .then(smartAutoTasks.prGroupTasks().choosePrGroup(calculationData.getPrGroup())) + .then(smartAutoTasks.brandModel().chooseBrandAndModel(calculationData.getBrand(), calculationData.getModel())) + .then(smartAutoTasks.group().chooseGroup(calculationData.getGroup())) + .typePrice(calculationData.getPrice()) + .clickVat(calculationData.getVat()) + .then(smartAutoTasks.usage().chooseUsage(calculationData.getUsage())) + .then(smartAutoTasks.date().chooseRegistrationDate(calculationData.getYear(), calculationData.getMonth())) + .then(smartAutoTasks.financialProduct().chooseFinancialProduct(calculationData.getProduct())); + } + + public Function fillInsuranceCustomerData(ContactData customer, IdentificationData customerData) { + return start -> start + .clickVehicleCarInsurance() + .typeVehicleInsuranceCustomerName(customer.getName()) + .typeVehicleInsuranceCustomerSurname(customer.getSurname()) + .typeVehicleInsuranceCustomerBirthdate(customerData.getBirthdate().getValue()) + .typeVehicleInsuranceCustomerPIN(customerData.getPin().getValue()) + .typeVehicleInsuranceCustomerNationality(customerData.getNationality().getValue()) + .clickVehicleInsuranceCustomerNationality() + .typeVehicleInsuranceCustomerAddress(customer.getAddress()) + .clickVehicleInsuranceCustomerAddress(); + } + + public Function fillInsuranceFirmData(CompanyData company) { + return start -> start + .clickVehicleCarInsurance() + .typeVehicleInsuranceFirmName(company.getCompany().toString()) + .clickVehicleInsuranceFirmSearch() + .clickVehicleInsuranceFirmField(); + } + + public Function fillInsuranceFirmDataFallBack(CompanyData company) { + return start -> start + .clickVehicleCarInsurance() + .typeVehicleInsuranceFirmName(company.getCompany().toString()) + .clickVehicleInsuranceFirmSearch() + .clickVehicleInsuranceFirmField() + .typeCompanyName(company.getCompanyName()) + .clickCompanyType() + .chooseCompanyType() + .typeCompanyTownship(company.getCompanyCity()) + .typeCompanyCity(company.getCompanyCity()) + .typeCompanyIco(12312312) + .typeCompanyResidenceNumber(company.getCompanyResidenceNumber()) + .typeCompanyZip(12345) + .chooseCompanyResidenceType() + .clickSave(); + } + + public Function fillInsuranceData(CalculationData vehicleData) { + return start -> start + .clickVehicleInsuranceVehicleTab() + .typeVehicleInsuranceVehicleVIN(vehicleData.getVin()) + .clickVehicleInsuranceVehicleVINSearch() + .clickVehicleInsuranceVehicleType() + .clickVehicleInsuranceInsuranceTab(); + } + + public Function fillInsuranceDataNoVin(CalculationData vehicleData) { + return start -> start + .clickVehicleInsuranceVehicleTab() + .clickVehicleInsuranceVehicleFuelType() + .chooseVehicleInsuranceVehicleFuelType(vehicleData.getFuel()) + .clickVehicleInsuranceVehicleFilterSearch() + .clickVehicleInsuranceVehicleType() + .clickVehicleInsuranceInsuranceTab(); + } + + public Function fillInsuranceDataTrailer(CalculationData vehicleData) { + return start -> start + .clickVehicleInsuranceVehicleTab() + .clickVehicleInsuranceVehicleFuelType() + .chooseVehicleInsuranceVehicleFuelType(vehicleData.getFuel()) + .clickVehicleInsuranceVehicleFilterSearch() + .clickVehicleInsuranceVehicleType() + .clickVehicleInsuranceVehicleFuelTypeSecond() + .clickVehicleInsuranceInsuranceTab(); + } + + public Function fillInsuranceDataAgro(CalculationData vehicleData) { + return start -> start + .clickVehicleInsuranceVehicleTab() + .typeVehicleInsuranceVehicleVolume(vehicleData.getVolume()) + .typeVehicleInsuranceVehiclePower(vehicleData.getPower()) + .typeVehicleInsuranceVehicleWeight(vehicleData.getWeight()) + .clickVehicleInsuranceVehicleFuelTypeAgro() + .chooseVehicleInsuranceVehicleFuelTypeAgro(vehicleData.getFuel()) + .clickVehicleInsuranceInsuranceTab(); + } + + public Function addPovInsurance() { + return start -> start + .clickVehicleInsuranceInsurancePovInsurance() + .clickVehicleInsuranceInsurancePovInsuranceChoose(); + } + + public Function addHavInsurance() { + return start -> start + .clickVehicleInsuranceInsuranceHavInsurance() + .clickVehicleInsuranceInsuranceHavInsuranceChoose(); + } + + public Function closeInsuranceModal() { + return start -> start + .scrollToChoose() + .clickVehicleInsuranceInsuranceChoose() + .waitForCalculationOutput(); + } + + public Function addAccidentInsurance(AccidentInsurance accidentInsurance) { + return start -> start + .clickVehicleAccidentInsurance() + .clickVehicleAccidentInsuranceOption(accidentInsurance) + .clickVehicleAccidentInsuranceChoose() + .waitForCalculationOutput(); + } + + public Function addBenefit(Benefit benefit) { + return start -> start + .clickVehicleBenefit() + .clickVehicleBenefitOption(benefit) + .clickVehicleBenefitChoose() + .waitForCalculationOutput() + .waitForCalculationInstalmentOutput(); + } + + public Function addDeferredDrawing() { + return NewCalculationPage::clickDeferredDrawing; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/DateTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/DateTasks.java new file mode 100644 index 0000000..fd17742 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/DateTasks.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.Year; + +import java.util.function.Function; + +public class DateTasks { + + private final Harness harness; + + public DateTasks(Harness harness) { + this.harness = harness; + } + + public Function chooseRegistrationDate(String month) { + return start -> start + .clickVehicleRegistrationDate() + .clickVehicleRegistrationMonth(month) + .clickVehicleRegistrationDateChoose(); + } + + public Function chooseRegistrationDate(Year year, String month) { + return start -> start + .clickVehicleRegistrationDate() + .clickVehicleRegistrationYear(year) + .clickVehicleRegistrationMonth(month) + .clickVehicleRegistrationDateChoose(); + } + + public Function chooseAgroDate() { + return start -> start + .clickAgroCalendar() + .clickAgroToday(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/FinancialProductTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/FinancialProductTasks.java new file mode 100644 index 0000000..e29a8eb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/FinancialProductTasks.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.CalculationData; +import cz.moneta.test.dsl.auto.smartauto.shared.Product; + +import java.util.function.Function; + +public class FinancialProductTasks { + + private final Harness harness; + + public FinancialProductTasks(Harness harness) { + this.harness = harness; + } + + public Function chooseFinancialProduct(Product product) { + return start -> start + .clickVehicleFinanceProduct() + .clickVehicleFinanceProductChoose(product) + .waitForCalculationOutput(); + } + + public Function chooseFinancialProductAdjust(CalculationData calculationData) { + return start -> start + .clickVehicleFinanceProduct() + .clickVehicleFinanceProductChoose(calculationData.getProduct()) + .typeFirstPayment(calculationData.getFirstPayment()) + .waitForCalculationOutput(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/GroupTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/GroupTasks.java new file mode 100644 index 0000000..dc8b01d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/GroupTasks.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.Group; + +import java.util.function.Function; + +public class GroupTasks { + + private final Harness harness; + + public GroupTasks(Harness harness) { + this.harness = harness; + } + + public Function chooseGroup(Group group) { + return start -> start + .clickVehicleGroupComboboxArrow() + .clickVehicleGroupComboboxValue(group); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/IrregularPaymentTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/IrregularPaymentTasks.java new file mode 100644 index 0000000..369df08 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/IrregularPaymentTasks.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; + +import java.util.function.Function; + +public class IrregularPaymentTasks { + + private final Harness harness; + + public IrregularPaymentTasks(Harness harness) { + this.harness = harness; + } + + public Function addIrregularPayment(Long payment) { + return start -> start + .scrollToTop() + .clickIrregularEditButton() + .clickIrregularIcon() + .typeIrregularPayment(payment) + .clickIrregularConfirm() + .clickIrregularSubmit() + .checkIfIrregular(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/ItemTypeTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/ItemTypeTasks.java new file mode 100644 index 0000000..7f0917a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/ItemTypeTasks.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.ItemType; + +import java.util.function.Function; + +public class ItemTypeTasks { + + private final Harness harness; + + public ItemTypeTasks(Harness harness) { + this.harness = harness; + } + + public Function chooseItemType (ItemType itemType) { + return start -> start + .clickItemTypeSearchArrow() + .clickAgroItemType(itemType); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/PrClassTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/PrClassTasks.java new file mode 100644 index 0000000..8f196a5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/PrClassTasks.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.PrClass; + +import java.util.function.Function; + +public class PrClassTasks { + + private final Harness harness; + + public PrClassTasks(Harness harness) { + this.harness = harness; + } + + public Function choosePrClass(PrClass prClass) { + return start -> start + .clickVehiclePrClassValue(prClass); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/PrGroupTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/PrGroupTasks.java new file mode 100644 index 0000000..e92de86 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/PrGroupTasks.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.PrGroup; + +import java.util.function.Function; + +public class PrGroupTasks { + + private final Harness harness; + + public PrGroupTasks(Harness harness) { + this.harness = harness; + } + + public Function choosePrGroup(PrGroup prGroup) { + return start -> start + .clickVehiclePrGroupValue(prGroup); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/SubsidyTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/SubsidyTasks.java new file mode 100644 index 0000000..6c7f5f1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/SubsidyTasks.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.Subsidy; + +import java.util.function.Function; + +public class SubsidyTasks { + + private final Harness harness; + + public SubsidyTasks(Harness harness) { + this.harness = harness; + } + + public Function chooseSubsidy(Subsidy subsidy) { + return start -> start + .setSubsidyValue(subsidy); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/UsageTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/UsageTasks.java new file mode 100644 index 0000000..2eaf8ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/UsageTasks.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.Usage; + +import java.util.function.Function; + +public class UsageTasks { + + private final Harness harness; + + public UsageTasks(Harness harness) { + this.harness = harness; + } + + public Function chooseUsage(Usage usage) { + return start -> start + .clickVehicleUsageComboboxArrow() + .clickVehicleUsage(usage); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/VerificationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/VerificationTasks.java new file mode 100644 index 0000000..c06fba6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/newcalculation/VerificationTasks.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.newcalculation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; + +import java.util.function.Function; + +public class VerificationTasks { + + private final Harness harness; + + public VerificationTasks(Harness harness) { + this.harness = harness; + } + + public Function checkNewCalculation() { + return start -> start + .checkVehicleFirstPayment() + .checkVehicleInstalmentCount() + .checkVehicleInstalmentComputation(); + } + + public Function checkMenu() { + return start -> start + .checkMenuNewCalculation() + .checkMenuSaved() + .checkMenuQueue(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/others/AccountTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/others/AccountTasks.java new file mode 100644 index 0000000..e2f0a15 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/others/AccountTasks.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.others; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.OthersPage; +import cz.moneta.test.dsl.auto.smartauto.shared.BankCode; + +import java.util.function.Function; + +public class AccountTasks { + + private final Harness harness; + + public AccountTasks(Harness harness) { + this.harness = harness; + } + + public Function fillBankContact(int accountNumber, BankCode bankCode) { + return start -> start.typeAccountNumber(accountNumber) + .typeBankCode(bankCode.getValue()) + .clickBankCode(bankCode); + } + + public Function fillOthersPageForC2C(int phoneNumber, int accountNumber, BankCode bankCode, String approvalMessage) { + return start -> start.typeDealerContactPhoneNumber(phoneNumber) + .then(fillBankContact(accountNumber, bankCode)) + .typeApprovalMessage(approvalMessage); + } + + public Function fillOthersPageForStandard(int phoneNumber, String approvalMessage) { + return start -> start.typeDealerContactPhoneNumber(phoneNumber) + .typeApprovalMessage(approvalMessage); + } + + public Function fillOthersPageForC2CBussiness(int phoneNumber, int accountNumber, BankCode bankCode, String approvalMessage, String c2cCompanyName, String c2cCompanyIco) { + return start -> start.typeC2CCompanyName(c2cCompanyName) + .typeC2CCompanyIco(c2cCompanyIco) + .then(fillOthersPageForC2C(phoneNumber, accountNumber, bankCode, approvalMessage)); + } + + public Function fillOthersPageForC2CConsumer(int phoneNumber, int accountNumber, BankCode bankCode, String approvalMessage, String c2cFirstName, String c2cSurname, String c2cBirthDate) { + return start -> start.clickConsumer() + .typeC2CFirstName(c2cFirstName) + .typeC2CSurname(c2cSurname) + .typeC2CBirthDate(c2cBirthDate) + .then(fillOthersPageForC2C(phoneNumber, accountNumber, bankCode, approvalMessage)); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/others/SaveTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/others/SaveTasks.java new file mode 100644 index 0000000..8fb716d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/others/SaveTasks.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.others; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.CustomerPage; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.OthersPage; +import cz.moneta.test.dsl.auto.smartauto.VehiclePage; + +import java.util.function.Function; + +public class SaveTasks { + + private final Harness harness; + + public SaveTasks(Harness harness) { + this.harness = harness; + } + + public Function saveNewCalculationPage() { + return start -> start.clickSaveCalculation(); + } + + public Function saveOthersPage() { + return start -> start.clickSaveCalculation(); + } + + public Function saveVehiclePage() { + return start -> start.clickSaveCalculation(); + } + + public Function saveCustomerPage() { + return start -> start.clickSaveCalculation(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/queue/QueueTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/queue/QueueTasks.java new file mode 100644 index 0000000..2372c15 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/queue/QueueTasks.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.queue; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.QueuePage; +import cz.moneta.test.dsl.auto.smartauto.shared.DateData; + +import java.util.function.Function; + +public class QueueTasks { + + private final Harness harness; + public QueueTasks(Harness harness) { + this.harness = harness; + } + + public Function setFromDate(DateData date) { + return start -> start + .clickDateFrom() + .setDateFromYear(date.year()) + .clickDateFromMonth() + .setDateFromMonthValue(date.month()) + .setDateFromDayValue(date.day()); + + } + + public Function setToDate(DateData date) { + return start -> start + .clickDateTo() + .clickDateToMonth() + .setDateToMonthValue(date.month()) + .setDateToDayValue(date.day()); + } + + public Function search() { + return QueuePage::clickSearch; + } + + public Function checkQueueItem() { + return QueuePage::checkQueueItem; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/savedCalculations/SavedCalculationsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/savedCalculations/SavedCalculationsTasks.java new file mode 100644 index 0000000..9c1bf99 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/savedCalculations/SavedCalculationsTasks.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.savedCalculations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.SavedCalculationsPage; +import cz.moneta.test.dsl.auto.smartauto.shared.DateData; + +import java.util.function.Function; + +public class SavedCalculationsTasks { + + private final Harness harness; + public SavedCalculationsTasks(Harness harness) { + this.harness = harness; + } + + public Function setFromDate(DateData date) { + return start -> start + .clickDateFrom() + .setDateFromYear(date.year()) + .clickDateFromMonth() + .clickDateFromMonthValue(date.month()) + .clickDateFromDayValue(date.day()); + + } + + public Function setToDate(DateData date) { + return start -> start + .clickDateTo() + .clickDateToMonth() + .clickDateToMonthValue(date.month()) + .clickDateToDayValue(date.day()); + } + + public Function search() { + return SavedCalculationsPage::clickSearch; + } + + public Function checkSavedItem() { + return SavedCalculationsPage::checkSavedItem; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/SmartAutoSetmanTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/SmartAutoSetmanTasks.java new file mode 100644 index 0000000..e81aa20 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/SmartAutoSetmanTasks.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.setman; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.auto.smartauto.setman.dealers.DealersTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.setman.login.LoginTasks; +import cz.moneta.test.dsl.util.task.auto.smartauto.setman.verification.VerificationTasks; + +public class SmartAutoSetmanTasks { + + private final Harness harness; + + public SmartAutoSetmanTasks(Harness harness) { + this.harness = harness; + } + + public LoginTasks login() { + return new LoginTasks(harness); + } + + public VerificationTasks verification() { + return new VerificationTasks(harness); + } + + public DealersTasks dealers() { + return new DealersTasks(harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/dealers/DealersTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/dealers/DealersTasks.java new file mode 100644 index 0000000..428387b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/dealers/DealersTasks.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.setman.dealers; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.setman.DealersPage; +import cz.moneta.test.dsl.auto.smartauto.setman.MainPage; +import cz.moneta.test.dsl.auto.smartauto.setman.NewDealersPage; +import cz.moneta.test.dsl.util.task.auto.smartauto.setman.SmartAutoSetmanTasks; + +import java.util.function.Function; + +public class DealersTasks { + + private final Harness harness; + private SmartAutoSetmanTasks smartAutoSetmanTasks; + + public DealersTasks(Harness harness) { + this.harness = harness; + this.smartAutoSetmanTasks = harness.tasks().auto().smartAutoSetman(); + } + + public Function goToDealersPage() { + return start -> start.clickMenuPartners() + .clickDealers() + .then(smartAutoSetmanTasks.verification().checkDealersPage()); + } + + public Function goToNewDealersPage() { + return start -> start.clickMenuPartners() + .clickNewDealers() + .then(smartAutoSetmanTasks.verification().checkNewDealersPage()); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/login/LoginTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/login/LoginTasks.java new file mode 100644 index 0000000..c345c9f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/login/LoginTasks.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.setman.login; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.setman.LoginPage; +import cz.moneta.test.dsl.auto.smartauto.setman.MainPage; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +public class LoginTasks { + + private final Harness harness; + + public LoginTasks(Harness harness) { + this.harness = harness; + } + + public Function loginWithCredentials(Credentials credentials) { + return start -> start.typeUsername(credentials.getUsername()) + .typePassword(credentials.getPassword()) + .clickLogin(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/verification/VerificationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/verification/VerificationTasks.java new file mode 100644 index 0000000..f015d76 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/setman/verification/VerificationTasks.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.setman.verification; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.setman.DealersDetailPage; +import cz.moneta.test.dsl.auto.smartauto.setman.DealersPage; +import cz.moneta.test.dsl.auto.smartauto.setman.MainPage; +import cz.moneta.test.dsl.auto.smartauto.setman.NewDealersPage; + +import java.util.function.Function; + +public class VerificationTasks { + + private final Harness harness; + + public VerificationTasks(Harness harness) { + this.harness = harness; + } + + public Function checkMenu() { + return start -> start.checkMenuPartners() + .checkMenuProducts() + .checkMenuInsurance() + .checkMenuDocuments() + .checkMenuOthers(); + } + + public Function checkNewDealersPage() { + return NewDealersPage::checkHeadingNewDealers; + } + + public Function checkDealersPage() { + return start -> start.checkHeadingDealers() + .checkTable(); + } + + public Function checkDealersDetailPage() { + return start -> start.checkHeadingDealersDetail() + .checkSaveButton() + .checkTable() + .checkGeneralSection() + .checkDealersGroupsSection() + .checkGeneralSectionIdLabel() + .checkGeneralSectionActiveLabel() + .checkGeneralSectionAuthorizedLabel() + .checkGeneralSectionCnbLabel() + .checkGeneralSectionPartnerLabel() + .checkGeneralSectionTitleLabel() + .checkGeneralSectionSignatureDateSosLabel() + .checkGeneralSectionCenterLabel() + .checkGeneralSectionColoredChannelLabel() + .checkGeneralSectionPatronLabel() + .checkGeneralSectionColoredAcquisitionPlaceLabel() + .checkGeneralSectionAcquisitionPlaceLabel() + .checkGeneralSectionNoteLabel() + .checkGeneralSectionSetPatronButton() + .checkGeneralSectionGoToPatronButton() + .checkGeneralSectionSetAcquisitionPlaceButton() + .checkGeneralSectionGoToAcquisitionPlaceButton() + .checkGeneralSectionSetColoredAcquisitionPlaceButton() + .checkGeneralSectionGoToColoredAcquisitionPlaceButton(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/validation/ValidationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/validation/ValidationTasks.java new file mode 100644 index 0000000..8d7f236 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/validation/ValidationTasks.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.validation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.CustomerPage; +import cz.moneta.test.dsl.auto.smartauto.OthersPage; +import cz.moneta.test.dsl.auto.smartauto.VehiclePage; + +import java.util.function.Function; + +public class ValidationTasks { + + private final Harness harness; + + public ValidationTasks(Harness harness) { + this.harness = harness; + } + + public Function validateVehiclePage() { + return start -> start.clickOthersPage() + .checkVehiclePageValidation(); + } + + public Function validateCustomerPage() { + return start -> start.clickVehiclePage() + .checkCustomerPageValidation(); + } + + public Function validateOthersPage() { + return start -> start.clickVehiclePage() + .checkOthersPageValidation(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/vehicle/DataTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/vehicle/DataTasks.java new file mode 100644 index 0000000..c299e25 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/vehicle/DataTasks.java @@ -0,0 +1,83 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.vehicle; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.VehiclePage; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; + +import java.util.function.Function; + +public class DataTasks { + + private final Harness harness; + private SmartAutoTasks smartAutoTasks; + + public DataTasks(Harness harness) { + this.harness = harness; + this.smartAutoTasks = harness.tasks().auto().smartAuto(); + } + + public Function checkAndAddAdditionalData(FilterFuel filterFuel, int mileage, String description, ImportVehicle importVehicle, DealerIsOwner dealerIsOwner) { + return start -> start.checkEngineCapacity() + .checkEngineKw() + .checkWeightTotal() + .checkSeats() + .checkFuel(filterFuel) + .typeMileage(mileage) + .typeDescription(description) + .clickImportVehicle(importVehicle) + .clickDealerIsOwner(dealerIsOwner); + } + + public Function fillAgroAdditionalDataWithoutTP(String note) { + return start -> start + .typeAgroNote(note); + } + + public Function fillFilters(FilterFuel filterFuel, String filterPower, FilterBodywork filterBodywork, FilterGearbox filterGearbox, FilterDoors filterDoors) { + return start -> start.then(smartAutoTasks.data().fillFilterFuel1(filterFuel)) + .typeFilterPower(filterPower) + .typeFilterBodywork(filterBodywork.getValue()) + .clickFilterBodywork(filterBodywork) + .typeFilterGearbox(filterGearbox.getValue()) + .clickFilterGearbox(filterGearbox) + .typeFilterDoors(filterDoors.getValue()) + .clickFilterDoors(filterDoors); + } + + public Function checkVehicleInformation(Brand brand, Model model) { + return start -> start.checkVehicleInformationBrand(brand) + .checkVehicleInformationModel(model); + } + + public Function checkAgroInformation(Brand brand, Model model) { + return start -> start.checkAgroInformationBrand(brand) + .checkAgroInformationModel(model); + } + + public Function fillFilterFuel1(FilterFuel fillFilterFuel) { + return start -> start.typeFilterFuel(fillFilterFuel.getValue()) + .clickFilterFuel(fillFilterFuel); + } + + public Function fillFilterFuel2(FilterFuel filterFuel, int mileage, String description, ImportVehicle importVehicle, DealerIsOwner dealerIsOwner) { + return start -> start.typeFilterFuel2(filterFuel.getValue()) + .clickFilterFuel2(filterFuel) + .checkEngineCapacity() + .checkWeightTotal() + .checkSeats() + .typeMileage(mileage) + .typeDescription(description) + .clickImportVehicle(importVehicle) + .clickDealerIsOwner(dealerIsOwner); + } + + public Function fillDeferredDrawing(String description, String accessory) { + return start -> start.typeAgroNote(description) + .typeAgroAccessory(accessory); + } + + public Function doNotHaveVIN() { + return VehiclePage::clickDoNotHaveVIN; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/vehicle/SearchTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/vehicle/SearchTasks.java new file mode 100644 index 0000000..4c45ffc --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/auto/smartauto/vehicle/SearchTasks.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.util.task.auto.smartauto.vehicle; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.VehiclePage; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; + +import java.util.function.Function; + +public class SearchTasks { + + private final Harness harness; + private SmartAutoTasks smartAutoTasks; + + public SearchTasks(Harness harness) { + this.harness = harness; + this.smartAutoTasks = harness.tasks().auto().smartAuto(); + } + + public Function searchVehicleWithFilters(FilterFuel filterFuel, String filterPower, FilterBodywork filterBodywork, FilterGearbox filterGearbox, FilterDoors filterDoors, Model model) { + return start -> start.clickVehicleWithoutVin() + .then(smartAutoTasks.data().fillFilters(filterFuel, filterPower, filterBodywork, filterGearbox, filterDoors)) + .clickSearchWithFilters() + .clickSearchedVehicle(model); + } + + public Function searchVehicleWithInvalidVinFilters(String vin, FilterFuel filterFuel, String filterPower, FilterBodywork filterBodywork, FilterGearbox filterGearbox, FilterDoors filterDoors, Model model) { + return start -> start.typeVehicleVin(vin) + .clickSearchWithVin() + .then(smartAutoTasks.data().fillFilters(filterFuel, filterPower, filterBodywork, filterGearbox, filterDoors)) + .clickSearchWithVin() + .clickSearchedVehicle(model); + } + + public Function searchVehicleWithValidInvalidVinFilters(String vin, FilterFuel filterFuel, Model model) { + return start -> start.typeVehicleVin(vin) + .then(smartAutoTasks.data().fillFilterFuel1(filterFuel)) + .clickSearchWithFilters() + .clickSearchedVehicle(model); + } + + public Function searchVehicleWithVin(String vin, FilterFuel fuel, Model model) { + return start -> start.typeVehicleVin(vin) + .then(smartAutoTasks.data().fillFilterFuel1(fuel)) + .clickSearchWithVin() + .clickSearchedVehicle(model); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/BrokerPortalPreconditions.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/BrokerPortalPreconditions.java new file mode 100644 index 0000000..32153a8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/BrokerPortalPreconditions.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.util.task.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.support.auth.Credentials; + +public class BrokerPortalPreconditions { + + private final Harness harness; + private final Credentials broker; + public String contractId; + + public BrokerPortalPreconditions(Harness harness, Credentials broker) { + this.harness = harness; + this.broker = broker; + } + + /** + * Creating new contract used as precondition for broker portal tests. + * @return String of contract id used for following tests. + */ + public String createNewContract() { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.menuTasks().selectProductMortgage()) + .then(tasks.calculatorTasks().fillCalculator("1000000")) + .then(tasks.calculatorTasks().calculateAndSaveCalculator()) + .clickToShortApplicationButton() + .then(tasks.shortApplicationTasks().fillAndConfirmShortApplication()) + .then(tasks.shortApplicationTasks().checkShortApplicationSummary()) + .clickCreateApplicationButton() + .then(tasks.shortApplicationTasks().signShortApplication()) + .clickToFullApplication() + .then(tasks.fullApplicationTasks().fillAndSaveFullApplication()) + .then(tasks.fullApplicationTasks().signFullApplication()); + + return harness.get("CONTRACT_ID"); + } + + /** + * Close browser after precondition is finished. + * Reason is, that precondition test should be independent from other tests -> every test has it's own browser session. + */ + public void closeBrowser(){ + harness.withBrokerPortal().closeLoginPage(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/BrokerPortalTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/BrokerPortalTasks.java new file mode 100644 index 0000000..c187dc1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/BrokerPortalTasks.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.util.task.brokerportal; + +import cz.moneta.test.dsl.Harness; + +public class BrokerPortalTasks { + + private final Harness harness; + + public BrokerPortalTasks(Harness harness) { this.harness = harness; } + + public LoginTasks loginTasks() { return new LoginTasks(harness); } + + public CalculatorTasks calculatorTasks() { return new CalculatorTasks(harness); } + + public ShortApplicationTasks shortApplicationTasks() { return new ShortApplicationTasks(harness); } + + public FullApplicationTasks fullApplicationTasks() { return new FullApplicationTasks(harness); } + + public CommonTasks commonTasks() { return new CommonTasks(harness); } + + public ContractDetailTasks contractDetailTasks() { return new ContractDetailTasks(harness); } + + public MenuTasks menuTasks() { return new MenuTasks(harness); } + + public ValuationTasks brokerPortalValuations() { return new ValuationTasks(harness); } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/CalculatorTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/CalculatorTasks.java new file mode 100644 index 0000000..a151c47 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/CalculatorTasks.java @@ -0,0 +1,157 @@ +package cz.moneta.test.dsl.util.task.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.brokerportal.contract.CalculatorPage; +import cz.moneta.test.dsl.brokerportal.enums.Client; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.harness.support.data.GeneratorType; +import java.util.function.Function; + +import static cz.moneta.test.dsl.brokerportal.enums.Client.FIRST_CLIENT; +import static cz.moneta.test.dsl.brokerportal.enums.Row.*; + +public class CalculatorTasks { + + private final Harness harness; + private final CommonTasks commonTasks; + + public CalculatorTasks(Harness harness) { + this.harness = harness; + this.commonTasks = harness.tasks().brokerPortal().commonTasks(); + } + + public Function fillCalculator(String loanAmount) { + return start -> start + .then(fillClient(FIRST_CLIENT)) + .then(fillLoan(loanAmount)); + } + + public Function calculateCalculator() { + return start -> start + .clickCalculateButton() + .checkCalculationSuccessfulAlert(); + } + + public Function calculateAndSaveCalculator() { + return start -> start + .then(calculateCalculator()) + .clickSaveCalculationButton() + .getContractId(harness); + } + + public Function fillFullCalculator(String loanAmount) { + return start -> start + //Client 1 - Section basic information + .then(fillBasicInformation(FIRST_CLIENT)) + .fillContactCountry(FIRST_CLIENT.getValue(),"Kuba") + .fillNationality(FIRST_CLIENT.getValue(),"Kuba") + .clickMateCheckbox(FIRST_CLIENT) + + //Client 1 - Section incomes from employment + .then(fillIncomesFromEmployment(FIRST_CLIENT)) + + //Client 1 - Section incomes from business + .clickBusinessIncome() + .selectYearLatest(FIRST_CLIENT.getValue(),commonTasks.getCurrentYearIncrementedByYears(-1)) + .fillTurnoverLatest(FIRST_CLIENT.getValue(),"900000") + .fillTaxBaseLatest(FIRST_CLIENT.getValue(),"12000") + .fillTaxAmountLatest(FIRST_CLIENT.getValue(),"45000") + .selectCostAccountingType(FIRST_CLIENT.getValue(),"Výdaje procentem z příjmu") + .selectCostPercentageRate(FIRST_CLIENT.getValue(),"40%") + .selectNaceCode(FIRST_CLIENT.getValue(),"20149") + .clickDapCheckbox(FIRST_CLIENT) + .selectYearPenultimate(FIRST_CLIENT.getValue(),commonTasks.getCurrentYearIncrementedByYears(-2)) + .fillTurnoverPenultimate(FIRST_CLIENT.getValue(),"134975") + .fillTaxBasePenultimate(FIRST_CLIENT.getValue(),"13475") + + //Client 1 - Section incomes other + .clickOtherIncome() + .selectOtherIncome(FIRST_CLIENT.getValue(), FIRST_ROW.getValue(),"výživné") + .fillOtherIncomeAmount(FIRST_CLIENT.getValue(), FIRST_ROW.getValue(),"20000") + .clickAddIncomeButton(FIRST_CLIENT) + .selectOtherIncome(FIRST_CLIENT.getValue(), SECOND_ROW.getValue(),"ostatní příjem") + .fillOtherIncomeAmount(FIRST_CLIENT.getValue(), SECOND_ROW.getValue(),"10000") + + //Client 1 - Section expenditures + .then(fillExpenditures(FIRST_CLIENT)) + //Add Credit Card + .clickAddExpenditureButton(FIRST_CLIENT) + .selectExpenditureType(FIRST_CLIENT.getValue(), SECOND_ROW.getValue(),"Kreditní karta") + .fillExpenditureCreditRestriction(FIRST_CLIENT.getValue(), SECOND_ROW.getValue(),"1000") + .selectExpenditureCorrection(FIRST_CLIENT.getValue(), SECOND_ROW.getValue(),"refinancování úvěru") + //Add Leasing + .clickAddExpenditureButton(FIRST_CLIENT) + .selectExpenditureType(FIRST_CLIENT.getValue(), THIRD_ROW.getValue(),"Leasing") + .fillExpenditureInstalmentAmount(FIRST_CLIENT.getValue(), THIRD_ROW.getValue(),"10000") + .fillExpenditureDebt(FIRST_CLIENT.getValue(), THIRD_ROW.getValue(),"1000") + .selectExpenditureCorrection(FIRST_CLIENT.getValue(), THIRD_ROW.getValue(),"doložené ke schval.") + + //Section loan + .then(fillLoan(loanAmount)) + .selectProduct("Pružná") + .fillMaturity("20") + .selectFixation("7 let") + .selectService("Flexibilita") + .selectInsuranceType("Bez pojištění") + .clickInsuranceCheckbox(FIRST_CLIENT) + .clickInsuranceCheckbox(FIRST_CLIENT) + //Add property + .clickAddPropertyButton() + .selectLoanSecurityEstateType(SECOND_ROW.getValue(),"Rodinný dům") + .fillLoanSecurityAmount(SECOND_ROW.getValue(),"10000000") + .selectLoanSecurityContractRelation(SECOND_ROW.getValue(),"Dozajištění"); + } + + public Function fillClient(Client client) { + return start -> start + .then(fillBasicInformation(client)) + .then(fillIncomesFromEmployment(client)) + .then(fillExpenditures(client)); + } + + public Function addAndFillClient(Client client) { + return start -> start + .clickAddApplicantButton() + .then(fillClient(client)); + } + + public Function fillLoan(String loanAmount) { + return start -> start + //Section loan + .fillLoanAmount(loanAmount) + .selectLoanPurpose("Koupě") + .fillLoanSecurityAmount(FIRST_ROW.getValue(),"5000000") + .clickLoanOwnerCheckbox(); + } + + public Function changeHousehold(Client client) { + return start -> start + .clickClientTab(client) + .clickHouseholdCheckbox(client); + } + + private Function fillBasicInformation(Client client) { + String personalId = harness.tasks().common().getRcMinMaxAge(20, 30); + harness.store(commonTasks.birthNumberForClient(client), personalId); + return start -> start + //Client 1 - Section basic information + .selectSex("Pan", client) + .fillFirstName(client.getValue(), harness.generate(GeneratorType.FIRST_NAME)) + .fillLastName(client.getValue(), harness.generate(GeneratorType.LAST_NAME)) + .fillBirthDate(client.getValue(),TestUtils.parseBirthDateAsString(personalId)) + .selectMaritalStatus(client.getValue(),"Svobodný(á)"); + } + + private Function fillIncomesFromEmployment(Client client) { + return start -> start + //Client 1 - Section incomes from employment + .fillGrossIncome(client.getValue(),"120000") + .fillNetIncome(client.getValue(),"100000"); + } + + private Function fillExpenditures(Client client) { + return start -> start + //Client 1 - Section expenditures + .fillExpenditureInstalmentAmount(client.getValue(), FIRST_ROW.getValue(),"1000"); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/CommonTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/CommonTasks.java new file mode 100644 index 0000000..03c4acf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/CommonTasks.java @@ -0,0 +1,44 @@ +package cz.moneta.test.dsl.util.task.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.brokerportal.enums.Client; +import cz.moneta.test.harness.support.data.GeneratorType; + +import java.time.LocalDate; + +public class CommonTasks { + + private static final String[] ID_CARDS = new String[]{ + "209498399", "210453438", "209924849", "209421549" + }; + + private final Harness harness; + + public CommonTasks(Harness harness) { + this.harness = harness; + } + + public String getMobilePhoneNumber() { + return "+420" + harness.generate(GeneratorType.MOBILE_PHONE_NUMBER); + } + + public String getIdentityCard(String client) { + return ID_CARDS[Integer.parseInt(client)]; + } + + public String getPassportNumber() { + return harness.generate(GeneratorType.PASSPORT_NUMBER, LocalDate.of(1988, 1, 6)); + } + + public String getCurrentYearIncrementedByYears(int years) { + return String.valueOf(LocalDate.now().plusYears(years).getYear()); + } + + public String getSmsCode() { + return "123456"; + } + + public String birthNumberForClient(Client client) { + return "PERSONAL_ID" + "_" + client.getValue(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/ContractDetailTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/ContractDetailTasks.java new file mode 100644 index 0000000..27d2730 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/ContractDetailTasks.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.util.task.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.brokerportal.contractdetail.ContractDetailPage; +import cz.moneta.test.dsl.util.DateUtils; + +import java.util.function.Function; + +public class ContractDetailTasks { + + private final Harness harness; + + public ContractDetailTasks(Harness harness) { + this.harness = harness; + } + + public Function fillAndSaveContactDetails() { + return start -> start.opensContactDetailsModal() + .fillEmail("karel.hruza1@moneta.cz") + .fillPhoneNumber(harness.tasks().brokerPortal().commonTasks().getMobilePhoneNumber()) + .saveContactDetails(); + } + + public Function uploadChecklistDoc(String doc) { + return start -> start.clickChecklist() + .clickChecklistDoc(doc) + .checklistUploadFile(harness.tasks().common().getFakePdfPath()) + .clickChecklistDocUpload() + .fillDocumentDate(DateUtils.getTodayDateIncrementedByDays(360, "dd.MM.yyyy")) + .clickSaveButton() + .waitChecklistUpload() + .waitChecklist() + .checkChecklistDocUploaded(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/FullApplicationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/FullApplicationTasks.java new file mode 100644 index 0000000..a752e69 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/FullApplicationTasks.java @@ -0,0 +1,106 @@ +package cz.moneta.test.dsl.util.task.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.brokerportal.contract.fullapplication.FullApplicationSignPage; +import cz.moneta.test.dsl.brokerportal.contract.fullapplication.FullApplicationPage; +import cz.moneta.test.dsl.brokerportal.contract.fullapplication.FullApplicationVictoryModal; +import cz.moneta.test.dsl.brokerportal.enums.AddressType; +import cz.moneta.test.dsl.brokerportal.enums.Client; +import cz.moneta.test.dsl.brokerportal.enums.Household; +import java.util.function.Function; + +import static cz.moneta.test.dsl.brokerportal.enums.Client.FIRST_CLIENT; +import static cz.moneta.test.dsl.brokerportal.enums.Household.FIRST_HOUSEHOLD; + +public class FullApplicationTasks { + + private final Harness harness; + private final CommonTasks commonTasks; + + public FullApplicationTasks(Harness harness) { + this.harness = harness; + this.commonTasks = harness.tasks().brokerPortal().commonTasks(); + } + + public Function fillAndSaveFullApplication() { + return start -> start + .then(fillFullApplication()) + .clickGenerateFullApplication(); + } + + public Function fillFullApplication() { + return start -> start + .then(fillApplicantData(FIRST_CLIENT, FIRST_HOUSEHOLD)) + .then(fillLoanAdditionalInfo()); + } + + public Function fillApplicantData(Client client, Household household) { + return start -> start + .then(fillApplicantAdditionalInfo(client, household)) + .clickAddressSameCheckbox(client, household, AddressType.CONTACT_ADDRESS) + .clickAddressSameCheckbox(client, household, AddressType.REAL_ADDRESS) + .then(fillApplicantEmploymentInfo(client, household)); + } + + public Function fillLoanAdditionalInfo() { + return start -> start + .selectDrawingAccount("Nový účet") + .clickSmsNotifyWhenPaymentChangesCheckbox() + .clickEmailNotifyWhenPaymentChangesCheckbox() + .selectRealtyPurchaseReason("Vlastn") + .selectLoanObject("Byt"); + } + + public Function signFullApplication() { + return start -> start + .clickContinueToSignButton() + .clickSendSmsButton() + .fillSmsCode(commonTasks.getSmsCode()) + .clickSignFullApplicationButton(); + } + + private Function fillApplicantAdditionalInfo(Client client, Household household) { + if(client == FIRST_CLIENT && household == FIRST_HOUSEHOLD){ + return start -> start + .then(fillApplicantBasicAdditionalInfo(client, household)); + } else { + return start -> start + .then(fillApplicantBasicAdditionalInfo(client, household)) + .selectMainClientRelation("Manžel", client, household); + } + } + + private Function fillApplicantBasicAdditionalInfo(Client client, Household household) { + String passportCard = commonTasks.getPassportNumber(); + return start -> start + .selectSecondIdentityType("Pas", client, household) + .fillSecondIdentityValue(passportCard, client, household) + .fillSecondIdentityExpirationDate("1.5.2030", client, household) + .selectEducation("Vysoko", client, household) + .clickPep(client, household) + .selectCurrentLivingType("Vlastní byt", client, household); + } + + private Function fillApplicantEmploymentInfo(Client client, Household household) { + return start -> start + .searchEmployerManual(client, household) + .fillEmployerName("MONETA Money Bank, a.s.", client, household) + .fillEmployerIco("25672720", client, household) + .fillEmployerStreet("Vyskočilova", client, household) + .fillEmployerStreetNumber("1442", client, household) + .fillEmployerNumberOrientational("1b", client, household) + .fillEmployerZipCode("14000", client, household) + .fillEmployerCity("Praha", client, household) + .fillEmployerPhone("+420 224 446 646", client, household) + .selectEmploymentType("Na dobu u", client, household) + .fillEmploymentStartDate("5.8.2000", client, household) + .fillEmploymentFinishDate("4.8.2030", client, household) + .clickEmploymentIsFirst(client, household) + .clickEmploymentSpecialRelation(client, household) + .fillProfession("Tester", client, household) + .clickEmploymentAbroad(client, household) + .clickEmploymentAgency(client, household) + .clickEmploymentPaidToMmb(client, household) + .clickEmploymentCashSalary(client, household); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/LoginTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/LoginTasks.java new file mode 100644 index 0000000..b75cf8c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/LoginTasks.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.util.task.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.brokerportal.BrokerPortalHomePage; +import cz.moneta.test.dsl.brokerportal.BrokerPortalLoginPage; +import cz.moneta.test.harness.support.auth.Credentials; +import java.util.function.Function; + +public class LoginTasks { + + private final Harness harness; + + public LoginTasks(Harness harness) { + this.harness = harness; + } + + public Function loginWithCredentials(Credentials credentials) { + return start -> start + .then(fillLoginWithCredentials(credentials.getUsername(), credentials.getPassword())) + .clickLoginButton() + .closeNewVersionModal(); + } + + public Function loginWithBadCredentials(String username, String password) { + return start -> start + .then(fillLoginWithCredentials(username, password)) + .clickLoginStayOnLoginPageButton(); + } + + private Function fillLoginWithCredentials(String username, String password) { + return start -> start + .fillLogin(username) + .fillPassword(password); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/MenuTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/MenuTasks.java new file mode 100644 index 0000000..2425591 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/MenuTasks.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.util.task.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.brokerportal.contract.CalculatorPage; +import cz.moneta.test.dsl.brokerportal.components.Menu; +import cz.moneta.test.dsl.brokerportal.userprofile.UserProfilePage; + +import static cz.moneta.test.dsl.brokerportal.enums.Product.*; + +import java.util.function.Function; + +public class MenuTasks { + private final Harness harness; + + public MenuTasks(Harness harness) { + this.harness = harness; + } + + public Function selectProductMortgage() { + return start -> start.disableNewVersion() + .clickProductsButton() + .clickProductMortgageButton(MORTGAGE); + } + + public Function clickProfileSettings() { + return start -> start.clickUserProfileButton() + .clickUserProfileSettingsButton(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/ShortApplicationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/ShortApplicationTasks.java new file mode 100644 index 0000000..6abdf70 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/ShortApplicationTasks.java @@ -0,0 +1,80 @@ +package cz.moneta.test.dsl.util.task.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.brokerportal.contract.VictoryScreenPage; +import cz.moneta.test.dsl.brokerportal.contract.shortapplication.ShortApplicationPage; +import cz.moneta.test.dsl.brokerportal.contract.shortapplication.ShortApplicationSignPage; +import cz.moneta.test.dsl.brokerportal.contract.shortapplication.ShortApplicationSummaryPage; +import cz.moneta.test.dsl.brokerportal.enums.Client; +import cz.moneta.test.dsl.brokerportal.enums.Household; +import java.util.function.Function; + +import static cz.moneta.test.dsl.brokerportal.enums.Client.FIRST_CLIENT; +import static cz.moneta.test.dsl.brokerportal.enums.Household.FIRST_HOUSEHOLD; + +public class ShortApplicationTasks { + + private final Harness harness; + private final CommonTasks commonTasks; + + public ShortApplicationTasks(Harness harness) { + this.harness = harness; + this.commonTasks = harness.tasks().brokerPortal().commonTasks(); + } + + public Function fillAndConfirmShortApplication() { + return start -> start + .then(fillShortApplication(FIRST_CLIENT, FIRST_HOUSEHOLD)) + .clickApplicationConfirmButton(); + } + + public Function fillShortApplication(Client client, Household household) { + return start -> start + .then(fillShortApplicationWithoutEmail(client, household)) + .fillEmail("karel.hruza1@moneta.cz", client, household); + } + + public Function fillShortApplicationWithoutEmail(Client client, Household household) { + return start -> start + .fillPersonalId(harness.get(commonTasks.birthNumberForClient(client)), client, household) + .fillFirstIdentityValue(commonTasks.getIdentityCard(client.getValue()), client, household) + .fillFirstIdentityExpirationDate("2.5.2030", client, household) + .fillPhone(commonTasks.getMobilePhoneNumber(), client, household) + .then(checkIdentity(client, household)); + } + + public Function checkIdentity(Client client, Household household) { + return start -> start + .clickCheckIdentityCheckbox(client, household) + .clickCheckIdentityButton(client, household); + } + + public Function checkShortApplicationSummary() { + return start -> start + .clickSummaryApplicantsConfirmButton() + .then(confirmApplicantAgreements(FIRST_CLIENT)) + .clickApplicantsAgreementsConfirmButton() + .then(confirmSummaryAgreements()); + } + + public Function confirmApplicantAgreements(Client client) { + return start -> start + .clickAgreementCommunicationCheckbox(client) + .clickAgreementMarketingCheckbox(client); + } + + public Function confirmSummaryAgreements() { + return start -> start + .clickAgreementTruDataCheckbox() + .clickAgreementRegisterCheckCheckbox(); + } + + public Function signShortApplication() { + return start -> start + .clickContinueToSignButton() + .clickSendSmsButton() + .clickSendNewSmsButton() + .fillSmsCode(commonTasks.getSmsCode()) + .clickSignShortApplicationButton(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/ValuationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/ValuationTasks.java new file mode 100644 index 0000000..23ddc47 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/brokerportal/ValuationTasks.java @@ -0,0 +1,112 @@ +package cz.moneta.test.dsl.util.task.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.brokerportal.components.Menu; +import cz.moneta.test.dsl.brokerportal.contract.ValuationPage; +import cz.moneta.test.dsl.brokerportal.contractdetail.ContractDetailPage; +import cz.moneta.test.dsl.brokerportal.valuationsdataprepare.FlatValuationData; +import cz.moneta.test.dsl.brokerportal.valuationsdataprepare.HouseValuationData; +import cz.moneta.test.dsl.util.data.YamlLoader; + +import java.util.function.Function; + +public class ValuationTasks { + + private final Harness harness; + + public ValuationTasks(Harness harness) { + this.harness = harness; + } + + /** + * Find contract in contract menu by it's ID, created in BPPreparation class. + * + * @param contractId - String used for find specific contract created in precondition of test. + */ + public Function findContract(String contractId) { + return start -> start + .disableNewVersion() + .clickContracts() + .selectBy("contractId") + .insertContractId(contractId) + .searchContracts() + .openContract(); + } + + /** + * Used for evaluate flat property. Using data from yaml file. + * Method compare victory screen Id, if it is simillar, test is evaluated as pass. + * + * @param valuationType - Int used for parameterized test - Input should be only 0,1,2 or 3. + * @return execution of method operations + */ + public Function evaluateFlat(int valuationType, String contractId) { + YamlLoader yamlLoader = new YamlLoader("yamls/brokerPortal/flatValuations", FlatValuationData.class); + FlatValuationData data = yamlLoader.parseObject(); + + return start -> start + .clickValuateProperty() + .insertArea(data.propertyArea) + .insertFlatUnit(data.flatUnit) + .clickContinue() + .clickConfirm() + .insertAddress(data.address) + .selectFlatType(data.valuationDetails.get(valuationType).type) + .selectFlatPlacing(data.valuationDetails.get(valuationType).placing) + .selectFlatDisposition(data.valuationDetails.get(valuationType).disposition) + .selectFlatState(data.valuationDetails.get(valuationType).state) + .insertFlatArea(data.valuationDetails.get(valuationType).area) + .insertFlatAreaOther(data.valuationDetails.get(valuationType).areaOther) + .insertFlatGarage(data.valuationDetails.get(valuationType).garage) + .insertPrice(data.valuationDetails.get(valuationType).price) + .insertFlatHouseType(data.valuationDetails.get(valuationType).houseType) + .insertFlatHouseYear(data.valuationDetails.get(valuationType).houseYear) + .insertFlatHouseFloors(data.valuationDetails.get(valuationType).houseFloors) + .insertFlatHouseStatus(data.valuationDetails.get(valuationType).houseStatus) + .insertUserRole(data.userRole) + .insertUserFirstName(data.userFirstName) + .insertUserLastName(data.userLastName) + .insertUserPhone(data.userPhone) + .clickContinue() + .checkVictoryId(data.valuationDetails.get(valuationType).victoryScreen) + .reportResults(data.valuationDetails.get(valuationType).valuation, contractId) + ; + } + + /** + * Used for evaluate house property. Using data from yaml file. + * Method compare victory screen Id, if it is simillar, test is evaluated as pass. + * + * @param valuationType - Int used for parameterized test - Input should be only 0 or 1. + * @return execution of method operations + */ + public Function evaluateHouse(int valuationType, String contractId) { + YamlLoader yamlLoader = new YamlLoader("yamls/brokerPortal/houseValuations", HouseValuationData.class); + HouseValuationData data = yamlLoader.parseObject(); + + return start -> start + .clickValuateProperty() + .clickHouse() + .insertArea(data.propertyArea) + .insertHouse(data.houseUnit) + .clickContinue() + .clickConfirm() + .insertAddress(data.address) + .selectHouseMaterial(data.valuationDetails.get(valuationType).material) + .selectHouseYear(data.valuationDetails.get(valuationType).year) + .selectHouseStatus(data.valuationDetails.get(valuationType).state) + .selectHouseLandArea(data.valuationDetails.get(valuationType).landArea) + .selectHouseGarageBasement(data.valuationDetails.get(valuationType).garageBasement) + .clickNeedCalculateFalse() + .insertHouseFloorArea(data.valuationDetails.get(valuationType).landArea) + .insertPrice(data.valuationDetails.get(valuationType).price) + .insertUserRole(data.userRole) + .insertUserFirstName(data.userFirstName) + .insertUserLastName(data.userLastName) + .insertUserPhone(data.userPhone) + .clickContinue() + .checkVictoryId(data.valuationDetails.get(valuationType).victoryScreen) + .reportResults(data.valuationDetails.get(valuationType).valuation, contractId) + ; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/CaGwTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/CaGwTasks.java new file mode 100644 index 0000000..9f05549 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/CaGwTasks.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.util.task.cagw; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.cagw.api.ApiTasks; +import cz.moneta.test.dsl.util.task.cagw.authorization.AuthorizationTasks; + +public class CaGwTasks { + + private final Harness harness; + + public CaGwTasks(Harness harness) { + this.harness = harness; + } + + public AuthorizationTasks authorization() { + return new AuthorizationTasks(harness); + } + + public ApiTasks api() { + return new ApiTasks(harness); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/AccountsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/AccountsTasks.java new file mode 100644 index 0000000..38023aa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/AccountsTasks.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.util.task.cagw.api; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.Account; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.AccountsWithParams; + +import java.util.function.Function; + +public class AccountsTasks { + + private final Harness harness; + + public AccountsTasks(Harness harness) { + this.harness = harness; + } + + public Function setRequestValues(String authToken) { + return start -> start.withAuthorizationBearer("Bearer " + authToken); + } + + public Function setRequestValuesAccountsWithParams(String authToken, + String sort, + String order) { + return start -> start.withAuthorizationBearer("Bearer " + authToken) + .sort(sort) + .order(order); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/ApiTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/ApiTasks.java new file mode 100644 index 0000000..0bd8cda --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/ApiTasks.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.util.task.cagw.api; + +import cz.moneta.test.dsl.Harness; + +public class ApiTasks { + + private final Harness harness; + + public ApiTasks(Harness harness) { + this.harness = harness; + } + + public PaymentTasks payment() { + return new PaymentTasks(harness); + } + + public StatusTasks status() { + return new StatusTasks(harness); + } + + public AccountsTasks accounts(){ + return new AccountsTasks(harness); } + + public BalanceTasks balance() { + return new BalanceTasks(harness); } + + public TransactionsTasks transactions() { + return new TransactionsTasks(harness); } + + public BusinessCardTasks businessCard() { + return new BusinessCardTasks(harness); } + + public ClientTasks client() { + return new ClientTasks(harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/BalanceTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/BalanceTasks.java new file mode 100644 index 0000000..2d1fc90 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/BalanceTasks.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.util.task.cagw.api; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.balance.Balance; + +import java.util.function.Function; + +public class BalanceTasks { + + private final Harness harness; + + public BalanceTasks(Harness harness) { + this.harness = harness; + } + + public Function setRequestValues(String authToken, String accountId) { + return start -> start.withAuthorizationBearer("Bearer " + authToken) + .id(accountId); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/BusinessCardTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/BusinessCardTasks.java new file mode 100644 index 0000000..0634977 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/BusinessCardTasks.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.util.task.cagw.api; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v2.external.client.kyc.businesscard.BusinessCard; + +import java.util.function.Function; + +public class BusinessCardTasks { + + private final Harness harness; + + public BusinessCardTasks(Harness harness) { + this.harness = harness; + } + + public Function setRequestValues(String authToken) { + return start -> start.withAuthorizationBearer("Bearer " + authToken); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/ClientTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/ClientTasks.java new file mode 100644 index 0000000..17e31c3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/ClientTasks.java @@ -0,0 +1,87 @@ +package cz.moneta.test.dsl.util.task.cagw.api; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application.Address; +import cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application.Client; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; + +public class ClientTasks { + + private final Harness harness; + + public ClientTasks(Harness harness) { + this.harness = harness; + } + + public Client from(NonClient nonClient) { + return Client.builder() + .firstname(nonClient.firstName()) + .lastname(nonClient.lastName()) + .birthNumber(nonClient.birthNumber()) + .primaryProofOfIdentity(Client.ProofOfIdentity.builder() + .type("IDENTITY_CARD") + .number(nonClient.idCardNumber()) + .expirationDate(nonClient.idCardExpiredRaw()) + .issuingCountry("CZ") + .build()) + .secondaryProofOfIdentity(Client.ProofOfIdentity.builder() + .type("PASSPORT") + .number(nonClient.passportId()) + .expirationDate(nonClient.passportExpiryDateRaw()) + .issuingCountry("CZ") + .build()) + .nationality("CZ") + .contactAddress(Address.builder() + .street(nonClient.residencyAddress().getStreet()) + .descriptiveNumber(nonClient.residencyAddress().getDescriptiveNumber()) + .town(nonClient.residencyAddress().getCity()) + .zip(nonClient.residencyAddress().getZip()) + .country(nonClient.residencyAddress().getCountry()) + .build()) + .permanentAddress(Address.builder() + .street(nonClient.residencyAddress().getStreet()) + .descriptiveNumber(nonClient.residencyAddress().getDescriptiveNumber()) + .town(nonClient.residencyAddress().getCity()) + .zip(nonClient.residencyAddress().getZip()) + .country(nonClient.residencyAddress().getCountry()) + .build()) + .currentAddressSinceYear(nonClient.currentAddressSinceYear()) + .phoneNumber("420" + nonClient.mobileNumber()) + .email(nonClient.email()) + .maritalStatus(nonClient.maritalStatus().getApiValue()) + .accommodationType(nonClient.accommodationType().getApiValue()) + .educationLevel(nonClient.educationLevel().getApiValue()) + .occupation(Client.Occupation.builder() + .status(nonClient.occupationStatus().getApiValue()) + .code(Integer.parseInt(nonClient.occupationType().getHCisValue())) + .institution(Client.Institution.builder() + .name(nonClient.employer().getName()) + .ico(nonClient.employer().getIco()) + .phoneNumber("420" + nonClient.employer().getPhoneNumber()) + .address(Address.builder() + .street(nonClient.employer().getAddress().getStreet()) + .descriptiveNumber(nonClient.employer().getAddress().getDescriptiveNumber()) + .orientationNumber(nonClient.employer().getAddress().getOrientationNumber()) + .town(nonClient.employer().getAddress().getCity()) + .zip(nonClient.employer().getAddress().getZip()) + .country(nonClient.employer().getAddress().getCountry()) + .build()) + .build()) + .employmentFrom(DateUtils.getDateWithFormat(nonClient.occupationEmploymentFromRaw(), "yyyy-MM-dd")) + .onNotice(nonClient.occupationOnNotice()) + .trialPeriod(nonClient.occupationTrialPeriod()) + .build()) + .consents(Client.Consents.builder() + .dataProcessing(nonClient.consentsDataProcessing()) + .debtRegisterCheck(nonClient.consentsDebtRegisterCheck()) + .build()) + .netMonthlyIncome(nonClient.netMonthlyIncome()) + .homeIncome(nonClient.homeIncome()) + .dependentPersons(nonClient.dependants()) + .otherLoanPayments(nonClient.otherLoanPayments()) + .wageDeductions(nonClient.wageDeductions()) + .otherExpenses(nonClient.otherExpenses()) + .build(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/PaymentTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/PaymentTasks.java new file mode 100644 index 0000000..c880331 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/PaymentTasks.java @@ -0,0 +1,207 @@ +package cz.moneta.test.dsl.util.task.cagw.api; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments.*; + +import java.util.function.Function; + +//FIXME TA-361 remove parameters, change it to data object. +public class PaymentTasks { + + private final Harness harness; + + public PaymentTasks(Harness harness) { + this.harness = harness; + } + + public Function setRequestValues(String authToken, String currency, int paymentAmount, + String debtorAccountNumber, String creditAccountIban) { + return start -> start.withAuthorizationBearer("Bearer " + authToken) + .amount(Amount.builder() + .instructedAmount(Amount.InstructedAmount.builder() + .currency(currency) + .value(paymentAmount) + .build()) + .build()) + .debtorAccount(DebtorAccount.builder() + .identification(DebtorAccount.DebtorIdentification.builder() + .other(DebtorAccount.Other.builder() + .identification(debtorAccountNumber) + .build()) + .build()) + .build()) + .creditorAccount(CreditorAccount.builder() + .identification(CreditorAccount.CreditorIdentification.builder() + .iban(creditAccountIban) + .build()) + .build()); + } + + public Function setRequestValuesForForeignPayment(String authToken, String currencyAmount, + int valueAmount, String chargeBearer, + String nameCreditor, + String adressLineCreditor, + String identificationCreditorAccount, + String nameCreditorAgent, + String bicCreditorAgent, + String addressLineCreditorAgent, + String countryCreditorAgent, + String ibanDebtorAccount, + String unstructured, + String requestedExecutionDate, + String transactionConfirmation) { + return start -> start.withAuthorizationBearer("Bearer " + authToken) + .then(setAmount(currencyAmount, valueAmount)) + .chargeBearer(chargeBearer) + .then(setCreditor(nameCreditor, adressLineCreditor, null, null)) + .then(setCreditorAccount(null, null, identificationCreditorAccount)) + .then(setCreditorAgent(nameCreditorAgent, bicCreditorAgent, addressLineCreditorAgent, countryCreditorAgent)) + .then(setDebtorAccount(ibanDebtorAccount, null)) + .then(setRemittanceInformationForeign(unstructured)) + .requestedExecutionDate(requestedExecutionDate) + .transactionConfirmation(transactionConfirmation); + } + + public Function setRequestValuesForSepaPayment(String authToken, String currencyAmount, + int valueAmount, String chargeBearer, + String nameCreditor, + String adressLineCreditor, + String countryCreditor, + String townNameCreditor, + String ibanCreditorAccount, + String nameCreditorAgent, + String ibanDebtorAccount, + String endToEndIdentification, + String unstructured, + String requestedExecutionDate, + String transactionConfirmation) { + return start -> start.withAuthorizationBearer("Bearer " + authToken) + .then(setAmount(currencyAmount, valueAmount)) + .chargeBearer(chargeBearer) + .then(setCreditor(nameCreditor, adressLineCreditor, countryCreditor, townNameCreditor)) + .then(setCreditorAccount(null, ibanCreditorAccount, null)) + .then(setCreditorAgent(nameCreditorAgent, null, null, null)) + .then(setDebtorAccount(ibanDebtorAccount, null)) + .then(setPaymentIdentification(endToEndIdentification, null)) + .then(setRemittanceInformationForeign(unstructured)) + .requestedExecutionDate(requestedExecutionDate) + .transactionConfirmation(transactionConfirmation); + } + + public Function setRequestValuesForDomesticPayment(String authToken, String currencyAmount, + int valueAmount, + String ibanCreditorAccount, + String identificationDebtorAccount, + String reference, String unstructured, + String requestedExecutionDate) { + return start -> start.withAuthorizationBearer("Bearer " + authToken) + .then(setAmount(currencyAmount, valueAmount)) + .then(setCreditorAccount(null, ibanCreditorAccount, null)) + .then(setDebtorAccount(null, identificationDebtorAccount)) + .then(setRemittanceInformation(reference, unstructured)) + .requestedExecutionDate(requestedExecutionDate); + + } + + public Function setRequestValuesForDomForeignCurrPayment(String authToken, + String currencyAmount, + int valueAmount, + String identificationCreditorAccount, + String identificationDebtorAccount, + String requestedExecutionDate) { + return start -> start.withAuthorizationBearer("Bearer " + authToken) + .then(setAmount(currencyAmount, valueAmount)) + .then(setCreditorAccount(null, null, identificationCreditorAccount)) + .then(setDebtorAccount(null, identificationDebtorAccount)) + .requestedExecutionDate(requestedExecutionDate); + + } + + private static Function setAmount(String currencyAmount, Integer valueAmount) { + return start -> start.amount(Amount.builder() + .instructedAmount(Amount.InstructedAmount.builder() + .currency(currencyAmount) + .value(valueAmount) + .build()) + .build()); + } + + private static Function setCreditor(String nameCreditor, + String adressLineCreditor, String countryCreditor, + String townNameCreditor) { + return start -> start.creditor(Creditor.builder() + .name(nameCreditor) + .postalAddress(Creditor.PostalAddress.builder() + .addressLine(adressLineCreditor) + .country(countryCreditor) + .townName(townNameCreditor) + .build()) + .build()); + } + + private static Function setCreditorAccount(String currencyCreditorAccount, + String ibanCreditorAccount, + String identificationCreditorAccount) { + return start -> start.creditorAccount(CreditorAccount.builder() + .currency(currencyCreditorAccount) + .identification(CreditorAccount.CreditorIdentification.builder() + .iban(ibanCreditorAccount) + .other(CreditorAccount.Other.builder() + .identification(identificationCreditorAccount) + .build()) + .build()) + .build()); + } + + private static Function setCreditorAgent(String nameCreditorAgent, String bicCreditorAgent, + String addressLineCreditorAgent, + String countryCreditorAgent) { + return start -> start.creditorAgent(CreditorAgent.builder() + .financialInstitutionIdentification(CreditorAgent.FinancialInstitutionIdentification.builder() + .name(nameCreditorAgent) + .bic(bicCreditorAgent) + .postalAddress(CreditorAgent.PostalAddress.builder() + .addressLine(addressLineCreditorAgent) + .country(countryCreditorAgent) + .build()) + .build()) + .build()); + } + + private static Function setDebtorAccount(String ibanDebtorAccount, + String identificationDebtorAccount) { + return start -> start.debtorAccount(DebtorAccount.builder() + .identification(DebtorAccount.DebtorIdentification.builder() + .iban(ibanDebtorAccount) + .other(DebtorAccount.Other.builder() + .identification(identificationDebtorAccount) + .build()) + .build()) + .build()); + } + + private static Function setPaymentIdentification(String endToEndIdentification, + String transactionIdentification) { + return start -> start.paymentIdentification(PaymentIdentification.builder() + .endToEndIdentification(endToEndIdentification) + .transactionIdentification(transactionIdentification) + .build()); + } + + private static Function setRemittanceInformation(String reference, String unstructured) { + return start -> start.remittanceInformation(RemittanceInformation.builder() + .structured(RemittanceInformation.Structured.builder() + .creditorReferenceInformation(RemittanceInformation.CreditorReferenceInformation.builder() + .reference(reference) + .build()) + .build()) + .unstructured(unstructured) + .build()); + } + + private static Function setRemittanceInformationForeign(String unstructured) { + return start -> start.remittanceInformation(RemittanceInformation.builder() + .unstructured(unstructured) + .build()); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/StatusTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/StatusTasks.java new file mode 100644 index 0000000..f9d198c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/StatusTasks.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.util.task.cagw.api; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments.paymentid.status.Status; +import cz.moneta.test.dsl.cagw.api.cbl.psd.pisp.my.payments.paymentid.status.StatusResponse; + +import java.util.function.Function; + +public class StatusTasks { + + private final Harness harness; + + public StatusTasks(Harness harness) { + this.harness = harness; + } + + public Function setRequestValues(String authToken, String transId) { + return start -> start.withAuthorizationBearer("Bearer " + authToken) + .paymentId(transId); + } + + public Function sendAndWaitForStatus(String status) { + return start -> start.pollUntil(StatusResponse::getInstructionStatus) + .maxRetries(40) + .retryDelayMillis(3000) + .isEqual(status); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/TransactionsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/TransactionsTasks.java new file mode 100644 index 0000000..9c19203 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/api/TransactionsTasks.java @@ -0,0 +1,65 @@ +package cz.moneta.test.dsl.util.task.cagw.api; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.transactions.Transactions; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.transactions.TransactionsResponse; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.transactions.TransactionsWithParams; +import org.apache.commons.lang.ArrayUtils; + +import java.util.function.Function; + +public class TransactionsTasks { + + private final Harness harness; + + public TransactionsTasks(Harness harness) { + this.harness = harness; + } + + public Function setRequestValuesTransactions(String authToken, String accountId) { + return start -> start.withAuthorizationBearer("Bearer " + authToken) + .id(accountId); + } + + public Function setRequestValuesTransactionsWithAllParams(String authToken, + String accountId, + String fromDate, + String toDate, + String size, + String page, + String sort, + String order) { + return start -> start.withAuthorizationBearer("Bearer " + authToken) + .id(accountId) + .fromDate(fromDate) + .toDate(toDate) + .size(size) + .page(page) + .sort(sort) + .order(order); + } + + public Function setRequestValuesTransactionsWithParams(String authToken, + String accountId, + String fromDate, + String toDate, + String size) { + return start -> start.withAuthorizationBearer("Bearer " + authToken) + .id(accountId) + .fromDate(fromDate) + .toDate(toDate) + .size(size); + } + + public Function sendAndWaitForTransaction(String variableSymbol) { + return start -> start.pollUntil(t -> { + if (!ArrayUtils.isEmpty(t.getTransactions())) { + return t.getTransactions()[0].getEntryDetails().getTransactionDetails().getReferences().getEndToEndIdentification(); + } + return null; + }) + .maxRetries(120) + .retryDelayMillis(3000) + .isEqual(variableSymbol); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/authorization/AuthorizationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/authorization/AuthorizationTasks.java new file mode 100644 index 0000000..03a0f0a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cagw/authorization/AuthorizationTasks.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.util.task.cagw.authorization; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.cagw.CaGwEndpoint; + +public class AuthorizationTasks { + + private final Harness harness; + + public AuthorizationTasks(Harness harness) { + this.harness = harness; + } + public String getToken(String sourceAppName, String scope) { + return getBearerToken("CID_" + sourceAppName, "CS_" + sourceAppName, scope); + } + + public String getVoicebotToken() { + return getToken("VOICEBOT", "voicebot"); + } + + private String getBearerToken(String key, String secret, String scope) { + CaGwEndpoint endpoint = harness.getEndpoint(CaGwEndpoint.class); + String username = endpoint.getClientSecret(key); + String password = endpoint.getClientSecret(secret); + + return "Bearer " + harness.withCaGw() + .auth().oauth().v2().token() + .prepareOauth2V2TokenRequest() + .client_id(username) + .client_secret(password) + .grant_type("client_credentials") + .scope(scope) + .send() + .getAccess_token(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cebia/CebiaTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cebia/CebiaTasks.java new file mode 100644 index 0000000..9cc391e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cebia/CebiaTasks.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.util.task.cebia; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cebia.iva.WSAdministrativeDataType; +import cz.moneta.test.dsl.cebia.iva.WSVehicleType; +import cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleIdentification1; +import cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleIdentification1Response; +import cz.moneta.test.dsl.cebia.schemas.iva.service.WSHeaderType; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; + +public class CebiaTasks { + + private final Harness harness; + + public CebiaTasks(Harness harness) { + this.harness = harness; + } + + public VehicleIdentification1Response verifyVehicle(String vin) { + return harness.withCebia() + .prepareRequest(prepareVehicleIdentification1Request(vin), VehicleIdentification1Response.class) + .send(); + } + + private VehicleIdentification1 prepareVehicleIdentification1Request(String vin) { + Credentials credentials = AuthSupport.getCredentials("iva-service", harness); + return new VehicleIdentification1() + .withHeader(new WSHeaderType() + .withUserName(credentials.getUsername()) + .withUserPassword(credentials.getPassword())) + .withVehicle(new WSVehicleType() + .withAdministrativeData(new WSAdministrativeDataType() + .withVIN(vin))); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/common/CommonTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/common/CommonTasks.java new file mode 100644 index 0000000..a3935d3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/common/CommonTasks.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.util.task.common; + +import cz.moneta.test.dsl.util.data.client.Gender; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.support.data.GeneratorType; + +import java.time.LocalDate; + +public class CommonTasks { + + private final StoreAccessor harness; + + public CommonTasks(StoreAccessor harness) { + this.harness = harness; + } + + public String getRcByMaxAge(int maxAge) { + LocalDate toDate = LocalDate.now(); + return harness.generate(GeneratorType.RC, toDate.minusYears(maxAge), toDate); + } + + public String getRcMinMaxAge(int minAge, int maxAge) { + LocalDate toDate = LocalDate.now(); + if (minAge >= maxAge) { + throw new IllegalStateException("Minimal age has to be lower than max age"); + } + return harness.generate(GeneratorType.RC, toDate.minusYears(maxAge), toDate.minusYears(minAge)); + } + + public String getWomanRc() { + return harness.generate(GeneratorType.RC, Gender.WOMAN); + } + + public String getFakePdfPath() { + return "regression/ufo/cb/Pdf.pdf"; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/CvmTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/CvmTasks.java new file mode 100644 index 0000000..a69991d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/CvmTasks.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.util.task.cvm; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbGetDataTasks; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbVerificationTasks; +import cz.moneta.test.dsl.util.task.cvm.wso2.CvmWso2Tasks; + +public class CvmTasks { + + private Harness harness; + + public CvmTasks(Harness harness) { + this.harness = harness; + } + + public OnlineDbGetDataTasks onlineDbGetData() { + return new OnlineDbGetDataTasks(harness); + } + + public OnlineDbVerificationTasks onlineDbVerification() { + return new OnlineDbVerificationTasks(harness); + } + + public CvmWso2Tasks cvmWso2() { + return new CvmWso2Tasks(harness); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/onlinedb/OnlineDbGetDataTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/onlinedb/OnlineDbGetDataTasks.java new file mode 100644 index 0000000..e8f5a21 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/onlinedb/OnlineDbGetDataTasks.java @@ -0,0 +1,195 @@ +package cz.moneta.test.dsl.util.task.cvm.onlinedb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import org.jooq.Record; +import org.jooq.Result; + +import java.time.DayOfWeek; +import java.time.LocalTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; + +public class OnlineDbGetDataTasks { + + public static final String PAYLOAD_ATTRIBUTE_NAME_ACTIVITY_ID = "$.activityId"; + public static final String PAYLOAD_ATTRIBUTE_NAME_CLIENT_PHONE_NUMBER = "$.data.clientMobilePhoneNumber"; + + private static final String SELECT_ONLINE_DATA_BY_SYSTEM_AND_ACTIVITY_ID = "" + + "SELECT * " + + "FROM SAS_RTDM_OWNER.SASRT_ONLINE_DATA " + + "WHERE SRC_SYS_ID = '%s' AND (MSG_ID = '%s' OR MSG_ID like '%s.%%') " + + "ORDER BY MSG_ID, NAME"; + + private static final String SELECT_ONLINE_DATA_BASE_MSG_ID_LAST_CHANGED = "" + + "SELECT MSG_ID " + + "FROM ( " + + " SELECT * " + + " FROM SAS_RTDM_OWNER.SASRT_ONLINE_DATA " + + " WHERE SRC_SYS_ID = '%s' AND SRC_ID = '%s' AND NAME = 'UNI_PT_KEY' AND INS_DT > SYSDATE - INTERVAL '1' MINUTE " + + " ORDER BY INS_DT DESC " + + ") " + + "WHERE ROWNUM = 1 "; + + private static final String SELECT_SCHEDULED_TASK_BY_PAYLOAD_ATTRIBUTE = "" + + "SELECT SCHD.TASK_NAME, " + + " SCHD.TASK_INSTANCE, " + + " SCHD.TASK_DATA, " + + " TO_CHAR(SCHD.EXECUTION_TIME, 'YYYY-MM-DD\"T\"hh24:mi:sstzh:tzm') AS EXECUTION_TIME, " + + " SCHD.PICKED, " + + " SCHD.PICKED_BY, " + + " TO_CHAR(SCHD.LAST_SUCCESS, 'YYYY-MM-DD\"T\"hh24:mi:sstzh:tzm') AS LAST_SUCCESS, " + + " TO_CHAR(SCHD.LAST_FAILURE, 'YYYY-MM-DD\"T\"hh24:mi:sstzh:tzm') AS LAST_FAILURE, " + + " SCHD.CONSECUTIVE_FAILURES, " + + " TO_CHAR(SCHD.LAST_HEARTBEAT, 'YYYY-MM-DD\"T\"hh24:mi:sstzh:tzm') AS LAST_HEARTBEAT, " + + " SCHD.VERSION, " + + " TO_NUMBER(ATT.ATTR_VALUE) AS ORIGINAL_PLANNED_TIME " + + "FROM SAS_RTDM_OWNER.SASRT_ONLINE_DATA_RTRD_SCHD SCHD " + + " JOIN SAS_RTDM_OWNER.SASRT_RTRD_TRIGGER_LOG TR " + + " ON (SCHD.TASK_NAME = TR.TASK_NAME AND SCHD.TASK_INSTANCE = TR.TASK_INSTANCE) " + + " LEFT JOIN SAS_RTDM_OWNER.SASRT_ONLINE_DATA_RTRD_SCHD_AT ATT " + + " ON (SCHD.TASK_NAME = ATT.TASK_NAME AND SCHD.TASK_INSTANCE = ATT.TASK_INSTANCE " + + " AND ATT.ATTR_NAME = 'originalPlannedTime') " + + "WHERE json_value(TASK_DATA, '%s') = '%s' " + + "ORDER BY TR.PLANNING_TIME"; + + private static String SASRT_RTRD_TRIGGER_LOG_COLUMNS = "" + + " RTRD_SOURCE_ENDPOINT_NAME, " + + " ACTIVITY_ID, " + + " WSO2_TARGET_ENDPOINT_NAME, " + + " TASK_NAME, " + + " TASK_INSTANCE, " + + " TO_CHAR(INS_DT, 'YYYY-MM-DD\"T\"hh24:mi:sstzh:tzm') AS INS_DT, " + + " TO_CHAR(UPD_DT, 'YYYY-MM-DD\"T\"hh24:mi:sstzh:tzm') AS UPD_DT, " + + " CONSECUTIVE_ATTEMPTS, " + + " TO_CHAR(PLANNING_TIME, 'YYYY-MM-DD\"T\"hh24:mi:sstzh:tzm') AS PLANNING_TIME, " + + " TO_CHAR(EXECUTION_TIME, 'YYYY-MM-DD\"T\"hh24:mi:sstzh:tzm') AS EXECUTION_TIME, " + + " TO_CHAR(SUCCEEDED_TIME, 'YYYY-MM-DD\"T\"hh24:mi:sstzh:tzm') AS SUCCEEDED_TIME, " + + " TO_CHAR(FAILED_TIME, 'YYYY-MM-DD\"T\"hh24:mi:sstzh:tzm') AS FAILED_TIME, " + + " TO_CHAR(CANCELED_TIME, 'YYYY-MM-DD\"T\"hh24:mi:sstzh:tzm') AS CANCELED_TIME, " + + " DATA "; + + private static final String SELECT_TRIGGER_LOG_BY_ENDPOINT_AND_ACTIVITY_ID = "" + + "SELECT " + SASRT_RTRD_TRIGGER_LOG_COLUMNS + + "FROM SAS_RTDM_OWNER.SASRT_RTRD_TRIGGER_LOG " + + "WHERE RTRD_SOURCE_ENDPOINT_NAME = '%s' AND ACTIVITY_ID like '%s' " + + "ORDER BY EXECUTION_TIME, PLANNING_TIME"; + + private static final String SELECT_TRIGGER_LOG_FINISHED_IN_LAST_DAY_BY_DATA = "" + + "SELECT " + SASRT_RTRD_TRIGGER_LOG_COLUMNS + + "FROM SAS_RTDM_OWNER.SASRT_RTRD_TRIGGER_LOG " + + "WHERE DATA LIKE '%%%s%%' " + + " AND (SUCCEEDED_TIME >= SYSTIMESTAMP - INTERVAL '1' DAY OR FAILED_TIME >= SYSTIMESTAMP - INTERVAL '1' DAY) " + + "ORDER BY EXECUTION_TIME, PLANNING_TIME"; + + private static final String SELECT_TRIGGER_LOG_PLANNED_BY_DATA = "" + + "SELECT " + SASRT_RTRD_TRIGGER_LOG_COLUMNS + + "FROM SAS_RTDM_OWNER.SASRT_RTRD_TRIGGER_LOG " + + "WHERE DATA LIKE '%%%s%%' AND SUCCEEDED_TIME IS NULL AND FAILED_TIME IS NULL AND CANCELED_TIME IS NULL " + + "ORDER BY EXECUTION_TIME, PLANNING_TIME"; + + private static final String SELECT_TRIGGER_LOG_CANCELED_IN_LAST_DAY_BY_DATA = "" + + "SELECT " + SASRT_RTRD_TRIGGER_LOG_COLUMNS + + "FROM SAS_RTDM_OWNER.SASRT_RTRD_TRIGGER_LOG " + + "WHERE DATA LIKE '%%%s%%' AND CANCELED_TIME >= SYSTIMESTAMP - INTERVAL '1' DAY " + + "ORDER BY EXECUTION_TIME, PLANNING_TIME"; + + private static final String SELECT_DECISION_LOG_IN_LAST_DAY_BY_FLOW_NAME_AND_REQUEST_VARIABLES = "" + + "SELECT DECISION_LOG_KEY, " + + " TO_CHAR(EVENT_DT, 'YYYY-MM-DD\"T\"hh24:mi:ss') AS EVENT_DT, " + + " RTDM_FLOW_NAME, " + + " MSG_ID, " + + " REQUEST_VARIABLES_STRING, " + + " DECISION_VARIABLES_STRING, " + + " RESPONSE_VARIABLES_STRING " + + "FROM SAS_RTDM_OWNER.SASRT_DECISION_LOG " + + "WHERE EVENT_DT > SYSDATE - INTERVAL '1' DAY AND RTDM_FLOW_NAME LIKE '%s%%' AND REQUEST_VARIABLES_STRING LIKE '%%%s%%' " + + "ORDER BY EVENT_DT"; + + private static final String SELECT_CLIENT_CONSENTS = "" + + "SELECT UNI_PT_KEY, " + + " CIF, " + + " RC_NUM, " + + " ICO_NUM, " + + " CITIZENSHIP_ID, " + + " CNST_MKT_EMAIL, " + + " CNST_MKT_IB_SB, " + + " CNST_MKT_SURVEY, " + + " CNST_MKT_PHONE, " + + " CNST_MKT_POST, " + + " CNST_MKT_SMS, " + + " CNST_BANKSECRET_UNSECUR, " + + " TO_CHAR(CNST_UPD_DT, 'YYYY-MM-DD\"T\"hh24:mi:ss') AS CNST_UPD_DT " + + "FROM SAS_RTDM_OWNER.SASRT_CLIENT " + + "WHERE UNI_PT_KEY = %s AND ROWNUM = 1"; + + private Harness harness; + + public OnlineDbGetDataTasks(Harness harness) { + this.harness = harness; + } + + public Result getOnlineData(String sourceSystem, String activityId) { + return harness.getEndpoint(OdsEndpoint.class) + .executeSql(String.format(SELECT_ONLINE_DATA_BY_SYSTEM_AND_ACTIVITY_ID, sourceSystem, activityId, activityId)); + } + + public String getOnlineDataBaseMsgIdLastChanged(String sourceSystem, String sourceId) { + Result records = harness.getEndpoint(OdsEndpoint.class) + .executeSql(String.format(SELECT_ONLINE_DATA_BASE_MSG_ID_LAST_CHANGED, sourceSystem, sourceId)); + return records.isNotEmpty() ? (String) records.get(0).getValue("MSG_ID") : null; + } + + public Result getPlannedTasks(String payloadAttributeName, String payloadAttributeValue) { + return harness.getEndpoint(OdsEndpoint.class) + .executeSql(String.format(SELECT_SCHEDULED_TASK_BY_PAYLOAD_ATTRIBUTE, payloadAttributeName, payloadAttributeValue)); + } + + public Result getTriggerLogs(String rtrdSourceEndpointName, String activityId) { + return harness.getEndpoint(OdsEndpoint.class) + .executeSql(String.format(SELECT_TRIGGER_LOG_BY_ENDPOINT_AND_ACTIVITY_ID, rtrdSourceEndpointName, activityId)); + } + + public Result getTriggerLogsFinishedInLastDay(String dataSubString) { + return harness.getEndpoint(OdsEndpoint.class) + .executeSql(String.format(SELECT_TRIGGER_LOG_FINISHED_IN_LAST_DAY_BY_DATA, dataSubString)); + } + + public Result getTriggerLogsPlanned(String dataSubString) { + return harness.getEndpoint(OdsEndpoint.class) + .executeSql(String.format(SELECT_TRIGGER_LOG_PLANNED_BY_DATA, dataSubString)); + } + + public Result getTriggerLogsCanceledInLastDay(String dataSubString) { + return harness.getEndpoint(OdsEndpoint.class) + .executeSql(String.format(SELECT_TRIGGER_LOG_CANCELED_IN_LAST_DAY_BY_DATA, dataSubString)); + } + + public ZonedDateTime getNearestContactCenterWorkingHours(ZonedDateTime dateTime) { + if (dateTime.toLocalTime().isBefore(LocalTime.of(8, 30))) { + dateTime = dateTime.withHour(8).withMinute(30).withSecond(0).withNano(0); + } + if (dateTime.toLocalTime().isAfter(LocalTime.of(17, 0))) { + dateTime = dateTime.plusDays(1).withHour(8).withMinute(30).withSecond(0).withNano(0).withZoneSameLocal(ZoneId.systemDefault()); + } + while ((dateTime.getDayOfWeek() == DayOfWeek.SATURDAY && dateTime.toLocalTime().isAfter(LocalTime.of(12, 0))) || + dateTime.getDayOfWeek() == DayOfWeek.SUNDAY || + DateUtils.isStateHoliday(dateTime.toLocalDate())) { + dateTime = dateTime.plusDays(1).withHour(8).withMinute(30).withSecond(0).withNano(0).withZoneSameLocal(ZoneId.systemDefault()); + } + return dateTime; + } + + public Result getDecisionLogInLastDay(String flowName, String requestVariablesSubstring) { + return harness.getEndpoint(OdsEndpoint.class) + .executeSql(String.format(SELECT_DECISION_LOG_IN_LAST_DAY_BY_FLOW_NAME_AND_REQUEST_VARIABLES, + flowName, requestVariablesSubstring)); + } + + public Record getClientConsents(Long uniPtKey) { + Result records = harness.getEndpoint(OdsEndpoint.class) + .executeSql(String.format(SELECT_CLIENT_CONSENTS, uniPtKey)); + return records.isNotEmpty() ? records.get(0) : null; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/onlinedb/OnlineDbVerificationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/onlinedb/OnlineDbVerificationTasks.java new file mode 100644 index 0000000..42e2897 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/onlinedb/OnlineDbVerificationTasks.java @@ -0,0 +1,172 @@ +package cz.moneta.test.dsl.util.task.cvm.onlinedb; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import cz.moneta.test.dsl.Harness; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.Assert; + +import java.time.Instant; +import java.time.ZonedDateTime; +import java.util.Optional; +import java.util.function.Consumer; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +public class OnlineDbVerificationTasks { + + private Harness harness; + + public OnlineDbVerificationTasks(Harness harness) { + this.harness = harness; + } + + public String assertOnlineDbRecordIsValid( + final Record onlineDbRecord, + final String expectedTaskName, + final String expectedRtdmWso2EndpointUrl, + final int expectedDelayInSeconds, + final Consumer checkDataContent) { + assertEquals("Event should be of type " + expectedTaskName, + expectedTaskName, onlineDbRecord.getValue("TASK_NAME")); + + String activityId = ""; + try { + String taskData = new String((byte[]) onlineDbRecord.getValue("TASK_DATA")); + JsonObject taskDataJson = new Gson().fromJson(taskData, JsonObject.class); + activityId = taskDataJson.get("activityId").getAsString(); + JsonObject data = taskDataJson.getAsJsonObject("data"); + assertEquals("Event data should contain correct target WSO2 endpoint to call in future", + expectedRtdmWso2EndpointUrl, data.get("rtdmWso2EndpointUrl").getAsString()); + + checkDataContent.accept(data); + } catch (JsonParseException | ClassCastException ex) { + fail("Task data should be valid structured JSON: " + ex); + } + + final ZonedDateTime expectedExecutionTime = ZonedDateTime.now().withFixedOffsetZone().plusSeconds(expectedDelayInSeconds); + ZonedDateTime expectedShiftedExecutionTime = harness.tasks().cvm().onlineDbGetData() + .getNearestContactCenterWorkingHours(expectedExecutionTime); + + ZonedDateTime executionTime = ZonedDateTime.parse((String) onlineDbRecord.getValue("EXECUTION_TIME")); + if (expectedShiftedExecutionTime.equals(expectedExecutionTime)) { + assertTrue("Event should be planned in " + expectedExecutionTime + " (+/- 10 seconds) but was in " + executionTime, + Math.abs(executionTime.toEpochSecond() - + expectedExecutionTime.toEpochSecond()) < 10); + } else { + final ZonedDateTime expectedShiftedExecutionTimeMax = expectedShiftedExecutionTime.plusMinutes(30); + assertTrue("Event should be planned between " + expectedShiftedExecutionTime + " and " + expectedShiftedExecutionTimeMax + + " but was in " + executionTime, + expectedShiftedExecutionTime.compareTo(executionTime) <= 0 + && executionTime.compareTo(expectedShiftedExecutionTimeMax) <= 0); + + } + + return activityId; + } + + public void assertTriggerLogRecordIsPlanned(final Record triggerLogRecord, + final Record onlineDbRecordPattern, + final String expectedWso2TargetEndpointName, + final Consumer checkLogData) { + assertEquals("Planned call to correct WSO2 API should be logged", + expectedWso2TargetEndpointName, triggerLogRecord.getValue("WSO2_TARGET_ENDPOINT_NAME")); + assertEquals("Logged planed execution time should be same with the planned event", + onlineDbRecordPattern.getValue("EXECUTION_TIME"), triggerLogRecord.getValue("EXECUTION_TIME")); + assertEquals("Logged task name should be same with the planned event", + onlineDbRecordPattern.getValue("TASK_NAME"), triggerLogRecord.getValue("TASK_NAME")); + assertEquals("Logged task instance should be same with the planned event", + onlineDbRecordPattern.getValue("TASK_INSTANCE"), triggerLogRecord.getValue("TASK_INSTANCE")); + + ZonedDateTime planningTime = ZonedDateTime.parse((String) triggerLogRecord.getValue("PLANNING_TIME")); + assertTrue("Event should be planned in last 30 seconds, but was in " + planningTime, + Instant.now().getEpochSecond() >= planningTime.toEpochSecond() + && Instant.now().getEpochSecond() - planningTime.toEpochSecond() <= 30); + assertNull("Planned call should not been executed yet", + triggerLogRecord.getValue("SUCCEEDED_TIME")); + assertNull("Planned call should not been failed", + triggerLogRecord.getValue("FAILED_TIME")); + assertNull("Planned call should not been canceled", + triggerLogRecord.getValue("CANCELED_TIME")); + + checkLogData.accept(triggerLogRecord.getValue("DATA").toString()); + } + + public void assertTriggerLogRecordSucceeded(final Record triggerLogRecord, + final String expectedWso2TargetEndpointName, + ZonedDateTime rtdmEventDateTime) { + assertEquals("Planned call to correct WSO2 API should be logged", + expectedWso2TargetEndpointName, triggerLogRecord.getValue("WSO2_TARGET_ENDPOINT_NAME")); + + ZonedDateTime succeededTime = ZonedDateTime.parse((String) triggerLogRecord.getValue("SUCCEEDED_TIME")); + assertTrue("It should succeeded in last day, but was in " + succeededTime, + Instant.now().getEpochSecond() >= succeededTime.toEpochSecond() + && Instant.now().getEpochSecond() - succeededTime.toEpochSecond() <= 24 * 60 * 60); + assertTrue("Date/time of succeeded event and trigger log in RTRD should be similar, but was " + + rtdmEventDateTime + " in event vs " + succeededTime + " in trigger log", + Math.abs(rtdmEventDateTime.toEpochSecond() - succeededTime.toEpochSecond()) < 20); + + + ZonedDateTime executionTime = ZonedDateTime.parse((String) triggerLogRecord.getValue("EXECUTION_TIME")); + assertTrue("Event was planned to execute max 1 minute before succeeded time, but succeeded in " + succeededTime + + " and executed in " + executionTime, + succeededTime.toEpochSecond() >= executionTime.toEpochSecond() + && succeededTime.toEpochSecond() - executionTime.toEpochSecond() <= 60); + + assertNull("Planned call should not been failed", + triggerLogRecord.getValue("FAILED_TIME")); + assertNull("Planned call should not been canceled", + triggerLogRecord.getValue("CANCELED_TIME")); + } + + public void assertLogRecordsPlannedToMondayMorning(String expectedWso2TargetEndpoint, + Record triggerLogRecord, + Boolean shouldBePlannedInLastFiveMinutes) { + Assert.assertEquals("Planned call to correct WSO2 API should be logged", + expectedWso2TargetEndpoint, triggerLogRecord.getValue("WSO2_TARGET_ENDPOINT_NAME")); + + ZonedDateTime executionTime = ZonedDateTime.parse((String) triggerLogRecord.getValue("EXECUTION_TIME")); + ZonedDateTime expectedExecutionTime = harness.tasks().cvm().onlineDbGetData().getNearestContactCenterWorkingHours( + ZonedDateTime.now().withFixedOffsetZone()); + final ZonedDateTime expectedExecutionTimeMax = expectedExecutionTime.plusMinutes(30); + assertTrue("Planned time should be next monday morning (or nearest working day) between " + + expectedExecutionTime + " and " + expectedExecutionTimeMax + ", but was in " + executionTime, + expectedExecutionTime.compareTo(executionTime) <= 0 && executionTime.compareTo(expectedExecutionTimeMax) <= 0); + + ZonedDateTime planningTime = ZonedDateTime.parse((String) triggerLogRecord.getValue("PLANNING_TIME")); + if (shouldBePlannedInLastFiveMinutes) { + assertTrue("Event should been planned in last five minutes, but was in " + planningTime, + ZonedDateTime.now().toEpochSecond() - planningTime.toEpochSecond() < 5 * 60); + } else { + assertTrue("Event should been planned before last five minutes, but was in " + planningTime, + ZonedDateTime.now().toEpochSecond() - planningTime.toEpochSecond() > 5 * 60); + } + } + + public void assertOnlineDbRecordFindSubMessageAndCheckAttribute(Result records, + String findAttributeName, + String findAttributeValue, + String checkAttributeName, + String checkAttributeValue) { + Optional subMessageId = records.stream() + .filter(record -> findAttributeName.equals(record.getValue("NAME")) + && findAttributeValue.equals(record.getValue("VAL"))) + .map(record -> record.getValue("MSG_ID")) + .findAny(); + + assertTrue(String.format("There should be message id of record with NAME = %s and VAL = %s", findAttributeName, findAttributeValue), + subMessageId.orElse(null) instanceof String); + + if (records.stream().noneMatch(record -> subMessageId.get().equals(record.getValue("MSG_ID")) + && checkAttributeName.equals(record.getValue("NAME")) + && checkAttributeValue.equals(record.getValue("VAL")))) { + fail(String.format("Found MSG_ID %s should have record with NAME = %s and VAL = %s", + subMessageId.get(), checkAttributeName, checkAttributeValue)); + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/wso2/CvmWso2Tasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/wso2/CvmWso2Tasks.java new file mode 100644 index 0000000..bc15b52 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/cvm/wso2/CvmWso2Tasks.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.util.task.cvm.wso2; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; + +import java.util.Optional; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +public class CvmWso2Tasks { + + private Harness harness; + + public CvmWso2Tasks(Harness harness) { + this.harness = harness; + } + + public void assertResponseOutputs(JsonNode outputs) { + assertNotNull("Not found output in response", outputs); + + String replyType = Optional.ofNullable(outputs.findValue("REPLY_TYPE")) + .map(JsonNode::textValue) + .orElse(Optional.ofNullable(outputs.findValue("replyType")) + .map(JsonNode::textValue) + .orElse("")); + + assertTrue("Not found REPLY_TYPE with value STANDARD or NORMAL: " + replyType, + replyType.contains("STANDARD") || replyType.contains("NORMAL")); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/dataprepare/DataPrepareTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/dataprepare/DataPrepareTasks.java new file mode 100644 index 0000000..f7c25b3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/dataprepare/DataPrepareTasks.java @@ -0,0 +1,241 @@ +package cz.moneta.test.dsl.util.task.dataprepare; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.account.AccountDetail; +import cz.moneta.test.dsl.util.data.client.NewClient; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.wso2.ClientTasks; +import cz.moneta.test.dsl.util.task.wso2.digitalchannels.IbTasks; +import cz.moneta.test.harness.endpoints.testautomationdb.TestAutomationDbEndpoint; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class DataPrepareTasks { + + private static final Logger logger = LogManager.getLogger(DataPrepareTasks.class); + + private final Harness harness; + + public DataPrepareTasks(Harness harness) { + this.harness = harness; + } + + /** + * This method defines sequence of APIs for creation of new customer - natural person - FO. This customer is not a client yet (checking unique birth number). + * Customer is created via WSO2 and this method returns new customer CIF. + *

+ * Called APIs: + *

    + *
  1. + * {@link cz.moneta.test.dsl.util.task.wso2.ClientTasks#createCifFo(NonClient)} - create new customer + *
  2. + *
  3. + * {@link cz.moneta.test.dsl.util.task.wso2.ClientTasks#setGdprConsent(String)} - set GDPR consents + *
  4. + *
  5. + * {@link cz.moneta.test.dsl.util.task.wso2.ClientTasks#setResidencyAddress(NonClient, String, String)} - set residency address + *
  6. + *
  7. + * {@link cz.moneta.test.dsl.util.task.wso2.ClientTasks#setCrAsTaxResidency(String)} - set CZ as tax residency + *
  8. + *
+ *

+ *

+ * This method is not possible to use locally - it needs access to Wso2 + *

+ * + * @param bankerUsername banker name to be set as sekundarniUrednik parameter + * @return newFoCustomerCif + */ + public String createNewFoCustomerViaWso2AndGetCif(String bankerUsername) { + NonClient nonClient = harness.data().newNonClient(); + return createNewFoCustomerViaWso2AndGetCif(nonClient, bankerUsername); + } + + public String createNewFoCustomerViaWso2AndGetCif(NonClient nonClient, String bankerUsername) { + String createdDateTime = getStartDateTime(); + String newFoCustomerCif = createNewFoCustomerApiSequence(bankerUsername, nonClient); + + logger.info("New customer CIF: " + newFoCustomerCif); + harness.getEndpoint(TestAutomationDbEndpoint.class) + .insertCreatedClientInfo(newFoCustomerCif, nonClient.birthNumber(), null, createdDateTime, bankerUsername, "MWF", null); + + return newFoCustomerCif; + } + + /** + * This method defines sequence of APIs for creation of new customer - legal person - FOP. This customer is not a client yet (checking unique birth number). + * Customer is created via WSO2 and this method returns new customer CIF. + * Called APIs: + *

+ * Called APIs: + *

    + *
  1. + * {@link cz.moneta.test.dsl.util.task.wso2.ClientTasks#createCifFop(NonClient, String)} - creates new fop customer + *
  2. + *
  3. + * {@link cz.moneta.test.dsl.util.task.wso2.ClientTasks#createAccountAndGetAccountNumber(NewClient, AccountDetail, String)} - creates account + *
  4. + *
  5. + * {@link cz.moneta.test.dsl.util.task.wso2.ClientTasks#subsidyAccount(String, double, String, int)} - subsides account + *
  6. + *
  7. + * {@link cz.moneta.test.dsl.util.task.wso2.ClientTasks#findUnifiedClient(String)} - finds client unified id in ODS + *
  8. + *
  9. + * {@link cz.moneta.test.dsl.util.task.wso2.ComodaTasks#createClientComoda(Long)} - creates client in Comoda + *
  10. + *
  11. + * {@link cz.moneta.test.dsl.util.task.wso2.ComodaTasks#setEmployeeCount(Long, Long)} - sets employee count in Comoda + *
  12. + *
  13. + * {@link cz.moneta.test.dsl.util.task.wso2.ClientTasks#relationFoFop(String, String)} - creates relation between client and commercial banker + *
  14. + *
+ *

+ *

+ * This method is not possible to use locally - it needs access to Wso2 + *

+ * + * @param bankerUsername banker name to be set as banker parameter + * @return newFopCustomerCif + */ + public String createNewFopCustomerViaWso2AndGetCif(String bankerUsername) { + NonClient nonClient = harness.data().newNonClient(); + return createNewFopCustomerViaWso2AndGetCif(nonClient, bankerUsername); + } + + public String createNewFopCustomerViaWso2AndGetCif(NonClient nonClient, String bankerUsername) { + TestAutomationDbEndpoint ep = harness.getEndpoint(TestAutomationDbEndpoint.class); + + String newFoCustomerCif = createNewFoCustomerApiSequence(bankerUsername, nonClient); + ep.insertCreatedClientInfo(newFoCustomerCif, nonClient.birthNumber(), null, getStartDateTime(), bankerUsername, "MWF", null); + String newFopCustomerCif = createNewFopCustomerApiSequence(bankerUsername, nonClient); + ep.insertCreatedClientInfo(newFopCustomerCif, nonClient.birthNumber(), nonClient.ico(), getStartDateTime(), bankerUsername, "MWF", null); + harness.tasks().wso2().client().relationFoFop(newFoCustomerCif, newFopCustomerCif); + createInternetBankFop(nonClient, newFopCustomerCif); + + logger.info("New FO customer CIF: " + newFoCustomerCif); + logger.info("New FOP customer CIF: " + newFopCustomerCif); + return newFopCustomerCif; + } + + public NewClientWithCurrentAccountInformation createNewFoCustomerWithCurrentAccountAndIbViaWso2(String bankerUsername) { + NonClient nonClient = harness.data().newNonClient(); + return createNewFoCustomerWithCurrentAccountAndIbViaWso2(nonClient, bankerUsername); + } + + public NewClientWithCurrentAccountInformation createNewFoCustomerWithCurrentAccountAndIbViaWso2(NonClient nonClient, String bankerUsername) { + NewClientWithCurrentAccountInformation newFoClientInformation = createCifWithCurrentAccountApiSequence(bankerUsername, nonClient); + createInternetBankFo(nonClient, newFoClientInformation.getCif()); + newFoClientInformation.setCredentials(harness.tasks().wso2().idm().getIbCredentialsByRC(nonClient.birthNumber())); + return newFoClientInformation; + } + + public NewClientWithCurrentAccountInformation createNewFoCustomerWithCurrentAccountViaWso2(String bankerUsername) { + NonClient nonClient = harness.data().newNonClient(); + return createCifWithCurrentAccountApiSequence(bankerUsername, nonClient); + } + + public NewClientWithCurrentAccountInformation createCifWithCurrentAccountApiSequence(String bankerUsername, NonClient nonClient) { + String newCustomerCif = createNewFoCustomerApiSequence(bankerUsername, nonClient); + NewClient newCustomer = new NewClient(nonClient, newCustomerCif); + String currentAccountNumber = createCurrentAccountFo(bankerUsername, newCustomer); + TestAutomationDbEndpoint ep = harness.getEndpoint(TestAutomationDbEndpoint.class); + ep.insertCreatedClientInfo(newCustomerCif, nonClient.birthNumber(), null, getStartDateTime(), bankerUsername, "MWF", null); + return new NewClientWithCurrentAccountInformation(nonClient, newCustomerCif, currentAccountNumber); + } + + public String createCurrentAccountFo(String bankerUsername, NewClient newCustomer) { + ClientTasks clientTasks = harness.tasks().wso2().client(); + AccountDetail accountDetail = new AccountDetail("1201004", "413"); + String currentAccountNumber = clientTasks.createAccountAndGetAccountNumber(newCustomer, accountDetail, bankerUsername); + + logger.info("New current account: " + currentAccountNumber); + + return currentAccountNumber; + } + + public void setClientIncome(String cif, NonClient client) { + ClientTasks tasks = harness.tasks().wso2().client(); + String payerPtKey = tasks.tryToFindPayer(client.employer().getIco()); + harness.log("Employer PayerPtKey: " + payerPtKey); + if (payerPtKey == null || payerPtKey.isEmpty()) + throw new RuntimeException("Employer ico: " + client.employer().getIco() + " doesn't exist"); + tasks.setIncome(cif, client.employer().getPhoneNumber(), payerPtKey, client.netMonthlyIncome(), client.occupationEmploymentFromRaw()); + } + + private void createInternetBankFo(NonClient nonClient, String cif) { + IbTasks ibTasks = harness.tasks().wso2().ib(); + checkCustomerAndCreateInUdebs(nonClient, cif); + ibTasks.createIb(nonClient, cif); + //ibTasks.generateLoginPasswordIb(cif); // Fail on Commhub whitelist. API call seems unnecessary. + harness.withIlods().setSegment("AML_VERIFIED", "STRONG", nonClient.birthNumber(), ""); + logger.info("Internet bank was created for the client CIF " + cif); + } + + private void createInternetBankFop(NonClient nonClient, String cif) { + IbTasks ibTasks = harness.tasks().wso2().ib(); + checkFopCustomerAndCreateInUdebs(nonClient, cif); + ibTasks.createIb(nonClient, cif); + harness.withIlods().setSegment("AML_VERIFIED", "STRONG", nonClient.birthNumber(), ""); + logger.info("Internet bank was created for the client CIF " + cif); + } + + public void createSmartBankFo(String cif) { + IbTasks ibTasks = harness.tasks().wso2().ib(); + ibTasks.createSb(cif); + logger.info("Smart bank was created for the client CIF " + cif); + } + + private void checkCustomerAndCreateInUdebs(NonClient nonClient, String cif) { + IbTasks ibTasks = harness.tasks().wso2().ib(); + if (!ibTasks.existClientInUdebs(cif)) { + ibTasks.createClientInUdebs(nonClient, cif); + + logger.info("Client CIF " + cif + " was added to UDEBS db"); + } + } + + private void checkFopCustomerAndCreateInUdebs(NonClient nonClient, String cif) { + IbTasks ibTasks = harness.tasks().wso2().ib(); + if (!ibTasks.existClientInUdebs(cif)) { + ibTasks.createFopClientInUdebs(nonClient, cif); + + logger.info("Client CIF " + cif + " was added to UDEBS db"); + } + } + + private String createNewFoCustomerApiSequence(String bankerUsername, NonClient nonClient) { + ClientTasks clientTasks = harness.tasks().wso2().client(); + + String newCustomerCif = clientTasks.createCifFo(nonClient); + clientTasks.setGdprConsent(newCustomerCif); + clientTasks.setResidencyAddress(nonClient, newCustomerCif, bankerUsername); + clientTasks.setCrAsTaxResidency(newCustomerCif); + return newCustomerCif; + } + + private String createNewFopCustomerApiSequence(String bankerUsername, NonClient nonClient) { + ClientTasks clientTasks = harness.tasks().wso2().client(); + AccountDetail czAccountDetail = new AccountDetail("1202015", "470"); + AccountDetail eurAccountDetail = new AccountDetail("1229004", "48"); + + String newCustomerCif = clientTasks.createCifFop(nonClient, bankerUsername); + NewClient newCustomer = new NewClient(nonClient, newCustomerCif); + String czAccount = clientTasks.createAccountAndGetAccountNumber(newCustomer, czAccountDetail, bankerUsername); + String eurAccount = clientTasks.createAccountAndGetAccountNumber(newCustomer, eurAccountDetail, bankerUsername); + // clientTasks.subsidyCzkAccount(czAccount, 10000); + // clientTasks.subsidyEurAccount(eurAccount, 500); + + harness.tasks().wso2().comoda().setComodaData(nonClient.ico()); + clientTasks.setCommercialBankerToClient(nonClient.ico()); + return newCustomerCif; + } + + public String getStartDateTime() { + return DateUtils.getFormattedTodayDateTime("yyyy-MM-dd hh:mm:ss"); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/dmbsib/DmbsibTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/dmbsib/DmbsibTasks.java new file mode 100644 index 0000000..2e8a8c1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/dmbsib/DmbsibTasks.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.util.task.dmbsib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.dmbsib.ConfirmPaymentOrderPage; +import cz.moneta.test.dsl.dmbsib.LoginPage; + +import java.util.function.Function; + +public class DmbsibTasks { + + private final Harness harness; + + public DmbsibTasks(Harness harness) { + this.harness = harness; + } + + public Function login(String login, String password, String mobileKey) { + return start -> start.fillLogin(login) + .fillPassword(password) + .clickSendMobileKey() + .fillMobileKey(mobileKey) + .clickVerifyMobileKeyAndContinueToSubmitOrder(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/firstvision/FirstVisionTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/firstvision/FirstVisionTasks.java new file mode 100644 index 0000000..ae3b3fb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/firstvision/FirstVisionTasks.java @@ -0,0 +1,93 @@ +package cz.moneta.test.dsl.util.task.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.greenscreen.ARQE.ARQE02_AccountEmbossingScreen; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.greenscreen.AZXI.AZXI01_CustomerViewSelectScreen.CARD_NUMBER_KEY; + +public class FirstVisionTasks { + + private final Harness harness; + + public FirstVisionTasks(Harness harness) { + this.harness = harness; + } + + public ARQE02_AccountEmbossingScreen lookupCreditCardDetails(NonClient nonClient) { + return harness.withGreenScreen() + .logIn() + .openCustomerSearch() + .searchByIdentificationNumber(nonClient.birthNumber()) + .openCustomerDetail() + .openAccountDetail(); + } + + public ARQE02_AccountEmbossingScreen lookupCreditCardDetails(String birthNumber) { + return harness.withGreenScreen() + .logIn() + .openCustomerSearch() + .searchByIdentificationNumber(birthNumber) + .openCustomerDetail() + .storeAccountId() + .storeCardId() + .openAccountDetail(); + } + + public ARQE02_AccountEmbossingScreen lookupDebitCardDetails(String accountNumber) { + return harness.withGreenScreen() + .logIn() + .openCustomerViewLocateScreen() + .typeUniqueIdNumber("0008600060" + accountNumber) + .pressEnter() + .onCustomerViewSelectScreen() + .storeFirstCardId() + .storeFirstAccountId() + .openAccountEmbossinScreen() + .typeCardNumber(harness.get(CARD_NUMBER_KEY)) + .pressEnter() + .onAccountEmbossingScreen(); + } + + public void verifyCreditCard(NonClient nonClient, String org, String logo, String cardholderFlag, String cardAction) { + this.lookupCreditCardDetails(nonClient) + .checkOrg(org) + .checkCardLogo(logo) +// .checkName(nonClient.firstName().toUpperCase() + " " + nonClient.lastName().toUpperCase()) + .checkCardholderFlag(cardholderFlag) + .checkCardAction(cardAction); + } + + public void verifyDebitCard(NonClient nonClient, String accountNumber, String org, String logo, String cardAction) { + this.lookupDebitCardDetails(accountNumber) + .checkOrg(org) + .checkCardLogo(logo) + .checkName(nonClient.firstName().toUpperCase() + " " + nonClient.lastName().toUpperCase()) + .checkCardAction(cardAction); + } + + public void verifyDebitCard (String accountNumber, String org, String logo, String cardAction) { + this.lookupDebitCardDetails(accountNumber) + .checkOrg(org) + .checkCardLogo(logo) + .checkCardAction(cardAction); + } + + public void updateExpirationDate(String accountNumber, LocalDate expirationDate) { + String expirationDateString = DateUtils.getDateWithFormat(expirationDate, DateFormatPatterns.FIRST_VISION_CARD_EXPIRATION_DATE); + this.lookupDebitCardDetails(accountNumber) + .openCardDetailsForEditing() + .setExpirationDate(expirationDateString); + } + + public void updateExpirationDateCC(String birthNumber, LocalDate expirationDate) { + String expirationDateString = DateUtils.getDateWithFormat(expirationDate, DateFormatPatterns.FIRST_VISION_CARD_EXPIRATION_DATE); + this.lookupCreditCardDetails(birthNumber) + .openCardDetailsForEditing() + .setExpirationDate(expirationDateString); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/DisponentsRightsIbTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/DisponentsRightsIbTasks.java new file mode 100644 index 0000000..c24484e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/DisponentsRightsIbTasks.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.util.task.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.settings.ib.ediponents.ConfirmSetDiponentPage; +import cz.moneta.test.dsl.ib.welcome.WelcomePage; + +import java.util.List; +import java.util.function.Function; + +import static cz.moneta.test.dsl.util.task.ib.IbTasks.DEFAULT_MOBILE_KEY; + +public class DisponentsRightsIbTasks { + private final Harness harness; + + public DisponentsRightsIbTasks(Harness harness) { + this.harness = harness; + } + + public Function mainUserSetDisponentsRights(String userNameDisponent, List namesOfItemsToClickCheckboxes) { + return start -> start.goToSettings() + .clickToEdisponentsAdministration() + .chooseDisponent(userNameDisponent) + .clickToChangeSettings() + .rightsForAccountsClicksToCheckboxes(namesOfItemsToClickCheckboxes) + .clickToContinueButton() + .fillInMobileKey(DEFAULT_MOBILE_KEY) + .clickSign(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/IbContactDataTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/IbContactDataTasks.java new file mode 100644 index 0000000..e71a8a1 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/IbContactDataTasks.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.util.task.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.settings.ib.contactInformation.IbContactInformationPage; +import cz.moneta.test.dsl.ib.settings.ib.contactInformation.IbSignChangedContactDataPage; +import cz.moneta.test.dsl.util.data.client.NewClient; + +import java.util.function.Function; + +public final class IbContactDataTasks { + private final Harness harness; + + public IbContactDataTasks(Harness harness) { + this.harness = harness; + } + + public Function verifyContactData(NewClient newClient) { + return start -> start + .switchToFrame() + .checkFirstName(newClient.getClientData().firstName()) + .checkSecondName(newClient.getClientData().lastName()) + .checkStreet(newClient.getClientData().residencyAddress().getStreet() + " " + newClient.getClientData().residencyAddress().getDescriptiveNumber()) + .checkPostalCode(newClient.getClientData().residencyAddress().getZip()) + .checkTown(newClient.getClientData().residencyAddress().getCity()) + .checkCountryCode(newClient.getClientData().residencyAddress().getCountry()) + .checkMobileNumber(newClient.getClientData().mobileNumber()) + .checkEmail(newClient.getClientData().email()); + } + + public Function verifyContactDataOnSignPage(String firstName, String lastName, String street, String descriptiveNumber, String zip, String city, String mobileNumber, String email) { + return start -> start + .checkFirstName(firstName) + .checkLastName(lastName) + .checkStreet(street) + .checkDescriptiveNumber(descriptiveNumber) + .checkPostalCode(zip) + .checkCity(city) + .checkMobileNumber(mobileNumber) + .checkEmail(email); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/IbLoginApiTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/IbLoginApiTasks.java new file mode 100644 index 0000000..f914c99 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/IbLoginApiTasks.java @@ -0,0 +1,95 @@ +package cz.moneta.test.dsl.util.task.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.harness.support.auth.Credentials; + +public class IbLoginApiTasks { + + private final Harness harness; + + String DEFAULT_CLIENT_PASSWORD_TOKEN = "5c05d25b14799ac1cfbc8a5f45109855e9fd5dd50ff910144f480371978413cb9da91446e524be1aab3a7bcdcc5a76552945596f7a065fdfb9be4610a062a9e0"; + String DEFAULT_MOBILE_KEY = "12341234"; + String NEW_PASSWORD = "Test1234"; + String DEFAULT_PASSWORD = "Aa123456"; + + public IbLoginApiTasks(Harness harness) { + this.harness = harness; + } + + public Credentials loginAndConfirmAuthWithSms(String username) { + String cookie = getSessionCookie(username); + + boolean isPasswordChangeRequired = prepareRequestWithHeaders("session/ib/login/commit") + .withHeader("Cookie", cookie) + .withPayload("{\"mobileKey\": \"" + DEFAULT_MOBILE_KEY + "\"}") + .post() + .extract("responseObject.passwordChange") + .asBoolean(); + + if (isPasswordChangeRequired) { + changePassword(cookie); + confirmAuthWithSms(cookie); + return harness.tasks().wso2().idm().resetIbUserPasswordByUsername(username); //reset password back to default + } + + confirmAuthWithSms(cookie); + return new Credentials(username, DEFAULT_PASSWORD); + } + + private String getSessionCookie(String username) { + RawRestRequest.Response loginResponse = prepareRequestWithHeaders("session/ib/login-and-send") + .withPayload("{\n" + + " \"credentials\":\n" + + " {\n" + + " \"username\": \"" + username + "\",\n" + + " \"authenticationToken\": \"" + DEFAULT_CLIENT_PASSWORD_TOKEN + "\"\n" + + " }\n" + + "}") + .postExtended(); + + return loginResponse + .getHeader("Set-Cookie") + .stream() + .filter(x -> x.toString() + .contains("SESSION")) + .toList() + .get(0) + .toString(); + } + + private void changePassword(String cookie) { + prepareRequestWithHeaders("session/ib/password/change-and-send") + .withHeader("Cookie", cookie) + .withPayload("{\"form\":{\"password\":{\"value\": \"" + NEW_PASSWORD + "\"}}}") + .post(); + + prepareRequestWithHeaders("session/ib/password/commit") + .withHeader("Cookie", cookie) + .withPayload("{\n" + + " \"password\": \"" + NEW_PASSWORD + "\",\n" + + " \"mobileKey\": \"" + DEFAULT_MOBILE_KEY + "\"\n" + + "}") + .post(); + } + + private void confirmAuthWithSms(String cookie) { + prepareRequestWithHeaders("secured/ib/retain-auth-sms/send-verification-message") + .withHeader("Cookie", cookie) + .withPayload("{}") + .post().andAssertStatus(200); + + prepareRequestWithHeaders("/secured/ib/retain-auth-sms/consent-commit") + .withHeader("Cookie", cookie) + .withPayload("{\"mobileKey\": \"" + DEFAULT_MOBILE_KEY + "\"}") + .post().andAssertStatus(200); + } + + private RawRestRequest.Request prepareRequestWithHeaders(String path) { + return harness.withOpenApi() + .prepareRequest() + .withPath(path) + .withHeader("Content-Type", "application/json;charset=UTF-8") + .withHeader("Channel", "15"); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/IbTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/IbTasks.java new file mode 100644 index 0000000..eb72eec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/IbTasks.java @@ -0,0 +1,73 @@ +package cz.moneta.test.dsl.util.task.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.account.saving.TransferOfFoundsEnteringPage; +import cz.moneta.test.dsl.ib.authentication.LoginPage; +import cz.moneta.test.dsl.ib.authentication.WelcomePageTransitions; +import cz.moneta.test.dsl.ib.tasks.cards.application.IbCardsApplicationTasks; +import cz.moneta.test.dsl.ib.welcome.WelcomePage; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +public final class IbTasks { + + private final Harness harness; + + public static String DEFAULT_MOBILE_KEY = "12341234"; + + public IbTasks(Harness harness) { + this.harness = harness; + } + + public Function loginWithUsernamePasswordAndMobileKey(String username, String password, String mobileKey) { + return start -> start.typeUsername(username) + .typePassword(password) + .clickLogin() + .onAuthMobileKeyPage() + .fillMobileKey(mobileKey) + .clickLogin(); + } + + public Function loginWith(Credentials credentials, String mobileKey) { + return start -> (WelcomePage) start.typeUsername(credentials.getUsername()) + .typePassword(credentials.getPassword()) + .clickLogin() + .onAuthMobileKeyPage() + .fillMobileKey(mobileKey) + .clickLogin() + .onWelcomePage(); + } + + public Function transferOfFoundsSavingAccount() { + return start -> start.getDispoSavingAccount() + .getDispoCurrentAccount() + .clickSavings() + .clickToTransferOfFounds() + .clickToChooseButton(); + } + + public Function loginWithDefaultMobileKeyAnd(Credentials credentials) { + return loginWith(credentials, DEFAULT_MOBILE_KEY); + } + + public IbCardsApplicationTasks cardsApplication() { + return new IbCardsApplicationTasks(); + } + + public InsuranceIbTasks insuranceIbTasks() { + return new InsuranceIbTasks(harness); + } + + public IbContactDataTasks ibContactDataTasks() { + return new IbContactDataTasks(harness); + } + + public PaymentsIbTasks paymentsIbTasks() { + return new PaymentsIbTasks(harness); + } + + public DisponentsRightsIbTasks disponentsRightsIbTasks() { + return new DisponentsRightsIbTasks(harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/InsuranceIbTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/InsuranceIbTasks.java new file mode 100644 index 0000000..15baa9b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/InsuranceIbTasks.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.util.task.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.authentication.LoginPage; +import cz.moneta.test.dsl.ib.insurance.InsurancePage; +import cz.moneta.test.dsl.ib.insurance.accident.AccidentInsuranceCreatePage; +import cz.moneta.test.dsl.ib.insurance.travel.LongTermTravelInsuranceCreatePage; +import cz.moneta.test.dsl.ib.insurance.travel.ShortTermTravelInsuranceCreatePage; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +public class InsuranceIbTasks { + + private final Harness harness; + final String SMS_CODE = "12341234"; + + public InsuranceIbTasks(Harness harness) { + this.harness = harness; + } + + public Function loginWithDefaultMobileKeyAndClickInsurance(Credentials credentials) { + return start -> start.typeUsername(credentials.getUsername()) + .typePassword(credentials.getPassword()) + .clickLogin() + .onAuthMobileKeyPage() + .fillMobileKey(SMS_CODE) + .clickLogin() + .onWelcomePage() + .checkAndConfirmCookies() + .clickInsurance(); + } + + public Function createAccidentInsuranceWithDefaultMobileKey() { + return start -> start.clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode(SMS_CODE) + .clickSend() + .clickListInsurace(); + } + + public Function createLongTermTravelInsuranceWithDefaultMobileKey() { + return start -> start.clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode(SMS_CODE) + .clickSend() + .clickListInsurace(); + } + + public Function createShortTermTravelInsuranceWithDefaultMobileKey() { + return start -> start.clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode(SMS_CODE) + .clickSend() + .clickListInsurace(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/PaymentsIbTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/PaymentsIbTasks.java new file mode 100644 index 0000000..3b03308 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ib/PaymentsIbTasks.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.util.task.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.account.current.CurrentAccountPage; +import cz.moneta.test.dsl.ib.accountsandtransactions.paymentawaitingsignature.PaymentsAwaitingSignatureConfirmationPage; + +import java.util.function.Function; + +public class PaymentsIbTasks { + private final Harness harness; + + public PaymentsIbTasks(Harness harness) { + this.harness = harness; + } + + public Function preparePaymentToSignatureFromActiveDisponent(String fromAccount, String toAccountNumber, String toAccountBank, String amount) { + return start -> start.clickNewDomesticPaymentOrder() + .clickFromAccountSelect() + .selectFromAccountByName(fromAccount) + .fillToAccountNumber(toAccountNumber) + .fillToAccountBank(toAccountBank) + .fillAmount(amount) + .clickStandardPayment() + .clickContinueButton() + .clickSaveToSign() + .clickAccountsAndTransactions(); + } + + public Function preparePaymentToSignatureFromPasiveDisponent(String fromAccount, String toAccountNumber, String toAccountBank, String amount) { + return start -> start.clickNewDomesticPaymentOrder() + .clickFromAccountSelect() + .selectFromAccountByName(fromAccount) + .fillToAccountNumber(toAccountNumber) + .fillToAccountBank(toAccountBank) + .fillAmount(amount) + .clickContinueButton() + .clickSaveToSign() + .clickAccountsAndTransactions(); + } + + public Function rejectPaymentForSignature(String authorPayment) { + return start -> start.clickPaymentsWaitingForSignature() + .selectAuthorPaymentAndClickShowButton(authorPayment) + .selectFirstPayment() + .clickRejectSelectedButton() + .clickRejectSelectedButton(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ihub/IHubTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ihub/IHubTasks.java new file mode 100644 index 0000000..e77c44e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ihub/IHubTasks.java @@ -0,0 +1,429 @@ +package cz.moneta.test.dsl.util.task.ihub; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.mwf.MWF111; +import cz.moneta.test.dsl.mwf.MWFX85; +import cz.moneta.test.dsl.mwf.calculatetotalexposure.MWFQ68; +import cz.moneta.test.dsl.mwf.createaccount.MWF172; +import cz.moneta.test.dsl.mwf.createclientcomoda.MWFQ35; +import cz.moneta.test.dsl.mwf.createclientcomoda.MWFQ35Response; +import cz.moneta.test.dsl.mwf.createclientinudebs.MWFA02; +import cz.moneta.test.dsl.mwf.createcustomer.MWF109; +import cz.moneta.test.dsl.mwf.createinternetbanka.MWFA03; +import cz.moneta.test.dsl.mwf.editpage.MWFAJ2; +import cz.moneta.test.dsl.mwf.employeecount.MWFKE1; +import cz.moneta.test.dsl.mwf.existingclientudebs.MWF391; +import cz.moneta.test.dsl.mwf.gdprconsent.MWF6FA; +import cz.moneta.test.dsl.mwf.gdprconsent.MWF6FAResponse; +import cz.moneta.test.dsl.mwf.generateloginpasswordib.MWFIZ8; +import cz.moneta.test.dsl.mwf.relationclientbanker.MWFDL7; +import cz.moneta.test.dsl.mwf.subsidyaccount.MWF133; +import cz.moneta.test.dsl.mwf.taxresidency.MWFIL7; +import cz.moneta.test.dsl.mwf.taxresidency.MWFIL7Data; +import cz.moneta.test.dsl.mwf.taxresidency.MWFIL7Response; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisAllObrazovkySME; +import cz.moneta.test.dsl.ufo.mwf.MWFHK8; +import cz.moneta.test.dsl.ufo.mwf.MWFHK8Response; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.account.AccountDetail; +import cz.moneta.test.dsl.util.data.client.NewClient; +import cz.moneta.test.dsl.util.data.client.NonClient; +import org.jooq.Record; +import org.jooq.Result; + +import java.util.ArrayList; +import java.util.List; + +import static cz.moneta.test.dsl.util.data.ihub.IHubConstants.*; + +@SuppressWarnings("all") +@Deprecated +public class IHubTasks { + + private final Harness harness; + private final String prefixMobileKey = "420"; + + public IHubTasks(Harness harness) { + this.harness = harness; + } + + @Deprecated + public String createCifFo(NonClient client) { + return harness.withIHub() + .prepareRequestAsUfo(MWF109.class) + .RodneCislo(client.birthNumber()) + .DatumNarozeni(TestUtils.dateFromString(client.birthDate(), "d.M.yyyy")) //YYYY-MM-DD + .DatumExpiraceKontaktnichUdaju(DateUtils.getRawTodayDateIncrementedByDays(730)) + .PlatnostOPdo(client.idCardExpiredRaw()) + .DatumPotvrzeniPrijmu(client.dateOfIssueConfirmationOfReceipt()) + .DatumZalozeniCIFu(DateUtils.getTodayRawDate()) + .SerieACisloOP(client.idCardNumber()) + .CisloPasu(client.passportId()) + .PlatnostPasuDo(client.passportExpiryDateRaw()) + .PasStatVydal(CZECH_REPUBLIC_CODE) + .OPStatVydal(CZECH_REPUBLIC_CODE) + .PrvniJmeno(client.firstName()) + .Prijmeni(client.lastName()) + .Co(client.residencyAddress().getOrientationNumber()) + .Cp(client.residencyAddress().getDescriptiveNumber()) + .Ulice(client.residencyAddress().getStreet()) + .Obec(client.residencyAddress().getCity()) + .KlasifikaceKlienta("0") + .KodObchodnihoMista(MMB_BBC_OM) + .MistoNarozeni(client.placeOfBirth()) + .Psc(client.residencyAddress().getZip()) + .NazevZamestnavatele(client.employer().getName()) + .Zamico(client.employer().getIco()) + .ZAMUlice(client.employer().getAddress().getStreet()) + .Zamco(client.employer().getAddress().getOrientationNumber()) + .Zamcp(client.employer().getAddress().getDescriptiveNumber()) + .Zampsc(client.employer().getAddress().getZip()) + .ZamObec(client.employer().getAddress().getCity()) + .PlatnostKontaktnichUdaju("1") + .TelefonMobilni("420" + client.mobileNumber()) + .DatumNastehovani(client.currentAddressSinceRaw()) + .RodinnyStav(client.maritalStatus().getHCisValue()) + .Pohlavi("1") + .ZamestnanOd(client.occupationEmploymentFromRaw()) + .CistyMesicniPrijem((double) client.netMonthlyIncomeInThousands()) + .PocetVyzivovanychDeti(Long.valueOf(client.dependants())) + .TelefonDomu("420" + client.fixPhoneNumberHome()) + .TelefonZamestnani("420" + client.employer().getPhoneNumber()) + .NejvyssiDosazeneVzdelani("4") + .EkonomickySektor("44") + .DruhPrijmuKlienta(client.occupationStatus().getHCisValue()) + .DruhBydleni(client.accommodationType().getHCisValue()) + .PlatnostKontaktnichUdaju("1") + .SocialneEkonomickaSkupina("1") + .ZkraceneJmeno("ZkrJm") + .TypKlienta("1") + .Zeme(CZECH_REPUBLIC_CODE) + .ZemeNarozeni(CZECH_REPUBLIC_CODE) + .StatniPrislusnost(CZECH_REPUBLIC_CODE) + .VztahKBance(client.relationshipToTheBank().getMetaCodeValue()) + .EMail(client.email()) + .NoEmailFlag(0l) + .Povolani(client.occupationType().getHCisValue()) + .send() + .Cif(); + } + + @Deprecated + public void createIb(NonClient client, String cif) { + double dayLimit = 5000; + long activationRequest = 0; + double weekLimit = 0; + + harness.withIHub() + .prepareRequestAsUfo(MWFA03.class) + .cif(cif) + .denniLimit(dayLimit) + .denniLimitAnoNe("1") + .kanal("3401001") + .maIBsKreditkou("1") + .obchodniMistoAlternativni(MMB_BBC_OM) + .obchodniMistoKod(MMB_BBC_OM) + .pozadavekAktivace(activationRequest) + .prava("13") + .predvolbaMobKey(prefixMobileKey) + .sMSInfo(false) + .souhlasSMobilnimKlicem("1") + .telefoniCisloMobKey(client.mobileNumber()) + .tydenniLimit(weekLimit) + .tydenniLimitAnoNe("0") + .zacatekPoplatkovani(DateUtils.getTodayRawDate()) + .zpusobAutentizace("2") + .zpusobCertifikace("1") + .send(); + } + + @Deprecated + public void generateLoginPasswordIb(String cif) { + harness.withIHub() + .prepareRequestAsUfo(MWFIZ8.class) + .cif(cif) + .channel("3401001") + .uctovatPoplatek("0") + .sendType(0l) + .send(); + } + + @Deprecated + public boolean existClientInUdebs(String cif) { + int existence = harness.withIHub() + .prepareRequestAsUfo(MWF391.class) + .cif(cif) + .send() + .existujeKlient() + .intValue(); + + return existence == 1; + } + + @Deprecated + public void createClientInUdebs(NonClient nonClient, String cif) { + String adresat = nonClient.firstName() + " " + nonClient.lastName(); + String streetWithDescriptionNumber = nonClient.residencyAddress().getStreet() + " " + nonClient.residencyAddress().getDescriptiveNumber(); + + harness.withIHub() + .prepareRequestAsUfo(MWFA02.class) + .typUctu("2") + .email(nonClient.email()) + .obchodniMistoKod(MMB_BBC_OM) + .adresat(adresat) + .prijmeni(nonClient.firstName()) + .jmeno(nonClient.lastName()) + .obec(nonClient.residencyAddress().getCity()) + .typKlienta("1") + .cif(cif) + .psc(nonClient.residencyAddress().getZip()) + .mobil(nonClient.mobileNumber()) + .ulice(streetWithDescriptionNumber) + .osobniCislo(nonClient.birthNumber()) + .zeme(nonClient.residencyAddress().getCountry()) + .posta(nonClient.residencyAddress().getCity()) + .zkraceneJmeno("ZkrJm") + .mobilPredvolba(prefixMobileKey) + .send(); + } + + @Deprecated + public String createCifFop(NonClient fop, String bankerUsername) { + String name = fop.firstName() + " " + fop.lastName(); + String shortenName = name.substring(0, Math.min(name.length(), 18)); + return harness.withIHub() + .prepareRequestAsUfo(MWF111.class) + .cp(fop.residencyAddress().getDescriptiveNumber()) + .datumExpiraceKontaktnichUdaju(DateUtils.getRawTodayDateIncrementedByDays(730)) + .datumPlatnostiOP(fop.idCardExpiredRaw()) + .datumPodnikaniOd(fop.occupationEmploymentFromRaw()) + .datumZalozeniCIFu(TestUtils.getTodayAsDate()) + .eMail(fop.email()) + .ekonomickySektor("25") + .ico(fop.ico()) + .jmeno(fop.firstName()) + .kodObchodnihoMista(MMB_BUDEJOVICE_OM) + .okec("022000") + .oROddil("123") + .oRSoud("1") + .oRVlozka("123") + .obchodniJmeno(name) + .obec(fop.residencyAddress().getCity()) + .psc(fop.residencyAddress().getZip()) + .platnostKontaktnichUdaju("1") + .pobytCR("1") + .posta(fop.residencyAddress().getCity()) + .pravniForma("101") + .prijmeni(fop.lastName()) + .ratingKlienta("0") + .rezidence("1") + .rodneCislo(fop.birthNumber()) + .serieACisloOP(fop.idCardNumber()) + .typKlienta("2") + .ulice(fop.residencyAddress().getStreet()) + .ulozPSCBezKontroly("Y") + .urednik(bankerUsername) + .zeme(CZECH_REPUBLIC_CODE) + .zkraceneJmeno(shortenName) + .send() + .cif(); + } + + @Deprecated + public void relationFoFop(String cifFo, String cifFop) { + harness.withIHub() + .prepareRequestAsUfo(MWFX85.class) + .cif(cifFo) + .cif2(cifFop) + .vztah1("KLO") + .vztah2("KLP") + .send(); + } + + @Deprecated + public MWFIL7Response addCrAsTaxResidency(String cifFo) { + List rowOne = new ArrayList<>(); + rowOne.add(MWFIL7Data.builder().rsItaxRsdncCntryCode(CZECH_REPUBLIC_CODE)); + + return harness.withIHub().prepareRequestAsUfo(MWFIL7.class) + .cif(cifFo) + .zakladniAtributyFlag("0") + .zemePobocekFlag("0") + .zemeDanoveRegistraceFlag("1") + .zemeCRSFlag("0") + .data(rowOne) + .send(); + } + + @Deprecated + public MWF6FAResponse agreeWithGdprAcceptance(String cifFo) { + return harness.withIHub().prepareRequestAsUfo(MWF6FA.class) + .businessType("GEMCB") + .clientInstId(cifFo) + .clientInstSysId("ICB0") + .clientType("1") + .consTypeCommBankSecretByUnsecured("1") + .consentBranchId(MMB_BBC_OM) + .consentChannelId("POS") + .consentMode("SET") + .consentSetId("SET_CONCERN_CONSENTS") + .consentSignTime(DateUtils.getRawTodayDateIncrementedByDays(-1)) + .consentEmployeeId("502613326") + .send(); + } + + @Deprecated + public boolean existInOds(String birthNumber) { + return 0 != harness.withIHub() + .prepareRequestAsUfo(MWFHK8.class) + .Rc(birthNumber) + .UcelDotazu("9") + .BusinessRequestor("GEMCB") + .AdresyOutputSysIDs("ICB|VIS|HYP|CMD") + .IDZdrojovehoSystemuOUTPUT("ICB0") + .MaximalniPocetZaznamu(50l) + .PriznakBankovniTajemstvi("1") + .PriznakRozsirenyVystup("1") + .TypyOsobyFiltr("1|2|5") + .AdresyOutputAktualniFlag("1") + .send() + .Data() + .size(); + } + + @Deprecated + public String createAccountAndGetAccountNumber(String cif, String name, AccountDetail accountDetail, String bankerUsername) { + return harness.withIHub() + .prepareRequestAsUfo(MWF172.class) + .aAZeme(CZECH_REPUBLIC_CODE) + .cif(cif) + .datumOtevreni(DateUtils.getTodayRawDate()) + .distribuceVypisu("3") + .obchodniJmeno(name) + .obchodniMistoAlternativni(MMB_BBC_OM) + .obchodniMistoKod(MMB_BBC_OM) + .periodaVypisu("2") + .poplatkovyPlan(accountDetail.getFeePlan()) + .postovniPoukazka("0") + .pouzitaAA("1") + .primarniUrednik(bankerUsername) + .produktKod(accountDetail.getProductCode()) + .vypisNaKonciMesice(false) + .send() + .cisloUctu(); + } + + @Deprecated + public String createAccountAndGetAccountNumber(NewClient newCustomer, AccountDetail accountDetail, String bankerUsername) { + String name = newCustomer.getClientData().firstName() + " " + newCustomer.getClientData().lastName(); + return createAccountAndGetAccountNumber(newCustomer.getCif(), name, accountDetail, bankerUsername); + } + + @Deprecated + public void subsidyCzAccount(String accountNumber, double amount) { + harness.withIHub() + .prepareRequestAsUfo(MWF133.class) + .cisloUctuInterni("16621848") + .castkaTransakce(amount) + .cisloUctuPrijemceInterni(accountNumber) + .send(); + } + + @Deprecated + public void subsidyEurAccount(String accountNumber, double amount) { + harness.withIHub() + .prepareRequestAsUfo(MWF133.class) + .cisloUctuInterni("211187143") + .castkaTransakce(amount) + .cisloUctuPrijemceInterni(accountNumber) + .kodMenyTransakce(Long.valueOf(23)) + .send(); + } + + @Deprecated + public void setEmployeeCount(Long personId, Long empolyeeCount) { + harness.withIHub() + .prepareRequestAsUfo(MWFKE1.class) + .personId(personId) + .employeeCount(empolyeeCount) + .employeeCountValidByUserId(GEBTHA6_SSO) + .employeeCountValidDate(DateUtils.getTodayRawDate()) + .send(); + } + + @Deprecated + public MWFHK8Response findUnifiedClient(String ico) { + return harness.withIHub() + .prepareRequestAsUfo(MWFHK8.class) + .BusinessRequestor("GEM") + .Ico(ico) + .IDZdrojovehoSystemu("CMD") + .UcelDotazu("1") + .send(); + } + + @Deprecated + public MWFQ35Response createClientComoda(Long uniPtKey) { + return harness.withIHub() + .prepareRequestAsUfo(MWFQ35.class) + .business("GEM") + .duvodDotazuDoODS("1") + .uniptKey(uniPtKey) + .send(); + } + + @Deprecated + public Long setComodaData(String ico) { + Long clientId = createAndGetClientId(ico); + if (clientId.intValue() != -1) { + setEmployeeCount(clientId, Long.valueOf(1)); + } + return clientId; + } + + @Deprecated + public Long createAndGetClientId(String ico) { + MWFHK8Response MWFHK8response = findUnifiedClient(ico); + if (MWFHK8response.PocetNalezenychZaznamu().intValue() == 1) { + MWFQ35Response MWFQ35response = createClientComoda(MWFHK8response.Data().get(0).RsIdunifikovanehoklienta()); + return MWFQ35response.iDOsoba(); + } + return Long.valueOf(-1); + } + + @Deprecated + public void calculateTotalExposurePerson(Long personId) { + harness.withIHub() + .prepareRequestAsUfo(MWFQ68.class) + .iDOsoba(personId); + } + + @Deprecated + public void setCommercialBankerToClient(String ico) { + Result records = harness.tasks().ods().findInstPt(ico, "CMD0"); + if (records.isNotEmpty()) { + String instPtKey = records.getValue(0, "INST_PT_KEY").toString(); + harness.log("INST_PT_KEY: {}", instPtKey); + harness.withIHub() + .prepareRequestAsUfo(MWFDL7.class) + .delFlag("0") + .instPtKey(instPtKey) + .privatniBankerSSO("123060132") + .srcSysId("SFC01") + .typVazby("3") + .send(); + } + } + + @Deprecated + public void editPage(Long idNavrh, HCisAllObrazovkySME page, String state) { + harness.withIHub() + .prepareRequestAsUfo(MWFAJ2.class) + .iDNavrh(idNavrh) + .rSObrazovka(page.getValue()) + .rSStav(state) + .send(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/insurance/InsuranceTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/insurance/InsuranceTasks.java new file mode 100644 index 0000000..2117703 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/insurance/InsuranceTasks.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.util.task.insurance; + +import cz.moneta.test.dsl.Harness; + +public class InsuranceTasks { + private final Harness harness; + + public InsuranceTasks(Harness harness) { + this.harness = harness; + } + + public SetInsuranceStatusTask setInsuranceStatusTask() { + return new SetInsuranceStatusTask(harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/insurance/SetInsuranceStatusTask.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/insurance/SetInsuranceStatusTask.java new file mode 100644 index 0000000..eed08e7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/insurance/SetInsuranceStatusTask.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.util.task.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; + +import java.util.Calendar; + +public class SetInsuranceStatusTask { + private final Harness harness; + + public SetInsuranceStatusTask(Harness harness) { + this.harness = harness; + } + + private String findOdsKeyActiveInsurance(String birthNumber) { + return harness.getEndpoint(OdsEndpoint.class) + .executeSql("select distinct prod_inst.prod_inst_key\n" + + "from ODS_L1_OWNER.INST_PT i\n" + + "inner join ODS_L1_OWNER.PROD_INST_PT_ROLE prod_inst_pt_role\n" + + "on prod_inst_pt_role.inst_pt_key = i.inst_pt_key\n" + + "and prod_inst_pt_role.src_sys_id = 'ICB31'\n" + + "and prod_inst_pt_role.pt_role_tp_key = 4\n" + + "inner join ODS_L1_OWNER.Prod_Inst prod_inst on\n" + + "prod_inst.prod_inst_key = prod_inst_pt_role.prod_inst_key\n" + + "inner join ODS_L1_OWNER.addt_srvc_inst on\n" + + "prod_inst.prod_inst_key = addt_srvc_inst.prod_inst_key\n" + + "where i.rc_num = '" + birthNumber + "'\n" + + "and addt_srvc_inst.cancel_date is null\n") + .stream() + .map(s -> s.getValue(0).toString()) + .findFirst() + .orElse(null); + } + + private String setYearOldDate() { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.YEAR, -1); + return DateUtils.getDateWithFormat(calendar.getTime(), "yyyy-MM-dd"); + } + + private void callApiCancelInsurance(String prodInstKey) { + String tokenUfo = harness.tasks().wso2().authorization().getToken("UFO"); + String oneYearOldDate = setYearOldDate(); + + //920181021 is SSO GEBTHA7 + harness.withWso2() + .prepareRequest() + .withPath("/t/insurance.cluster/SET_INSUR_DATA/001") + .withHeader("Authorization", tokenUfo) + .withHeader("accept", "application/json") + .withHeader("activityId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("requestId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("userid_l2", "GEBTHA7") + .withPayload("{\n" + + " \"USER_SSO\": \"920181021\",\n" + + " \"ACC_NUM_IN\": \"\",\n" + + " \"PROD_INST_KEY_IN\": " + prodInstKey + ",\n" + + " \"INSUR_ID\": \"\",\n" + + " \"START_DATE\": \"\",\n" + + " \"END_DATE\": \"" + oneYearOldDate + "\",\n" + + " \"CANCEL_DATE\": \"" + oneYearOldDate + "\",\n" + + " \"CANCEL_RSN_TP_ID\": \"85\",\n" + + " \"POS_ID\": \"\",\n" + + " \"DIST_CNL_ID\": \"CALLCENTER\",\n" + + " \"PRICE_TOTAL_AMT\": null,\n" + + " \"DEL_FLAG\": null,\n" + + " \"INSUR_INST_PT_KEY\": null,\n" + + " \"INSUR_SRC_SYS_ID\": \"\",\n" + + " \"PT_PT_REL_TP_ID\": \"\",\n" + + " \"ASSIGNEE_INST_PT_KEY\": null,\n" + + " \"ASSIGNEE_PT_PT_REL_TP_ID\": \"\"\n" + + "}") + .post() + .andAssertStatus(200); + } + + public void cancelInsurance(String birthNumber) { + String odsKeyActiveInsurance = findOdsKeyActiveInsurance(birthNumber); + if (odsKeyActiveInsurance == null) { + harness.log("The user with birth number " + birthNumber + " doesn't have active insurance"); + return; + } + + callApiCancelInsurance(odsKeyActiveInsurance); + harness.log("User with birth number " + birthNumber + " - insurance canceled"); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/kasanova/KSNTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/kasanova/KSNTasks.java new file mode 100644 index 0000000..14afb38 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/kasanova/KSNTasks.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.util.task.kasanova; + +import java.util.function.Function; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.authentication.KSNLoginPage; +import cz.moneta.test.dsl.kasanova.components.KSNMainMenu; +import cz.moneta.test.harness.support.auth.Credentials; + +public class KSNTasks { + + private final Harness harness; + + public KSNTasks(Harness harness) { + this.harness = harness; + } + + public Function loginWithUserAndPassword(Credentials credentials) { + return start -> start + .typeUsername(credentials.getUsername()) + .typePassword(credentials.getPassword()) + .clickLogin(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/CalculatorTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/CalculatorTasks.java new file mode 100644 index 0000000..61083f4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/CalculatorTasks.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.util.task.monetaportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.monetaportal.components.calculators.BusinessLoanCalculator; +import cz.moneta.test.dsl.monetaportal.components.calculators.ExpressLoanBannerCalculator; +import cz.moneta.test.dsl.monetaportal.components.calculators.ExpressLoanCalculator; +import cz.moneta.test.dsl.monetaportal.components.calculators.LoanCalculator; + +import java.util.function.Function; + +public class CalculatorTasks { + + private final Harness harness; + + public CalculatorTasks(Harness harness) { + this.harness = harness; + } + + public Function fillLoanCalculator(String loanAmount, int moveLoanAmount, int moveLoanLength) { + return start -> start + .clickLoanCalculatorAmountInput() + .fillLoanCalculatorAmountInput(loanAmount) + .moveCalculatorLoanAmount(moveLoanAmount) + .moveCalculatorLoanLengthBy(moveLoanLength) + .clickLoanCalculatorButton(); + } + + public Function fillLoanBannerCalculator(String loanAmount, int moveLoanAmount, int moveLoanLength) { + return start -> start + .clickLoanCalculatorAmountInput() + .fillLoanCalculatorAmountInput(loanAmount) + .moveCalculatorLoanAmount(moveLoanAmount) + .moveCalculatorLoanLengthBy(moveLoanLength) + .clickLoanCalculatorButton(); + } + + public Function fillBusinessCalculator(String loanAmount, int moveLoanAmount, String loanLength, int moveLoanLength) { + return start -> start + .clickBusinessCalculatorAmountInput() + .fillBusinessCalculatorAmountInput(loanAmount) + .moveBusinessCalculatorLoanAmount(moveLoanAmount) + .fillBusinessCalculatorLengthBy(loanLength) + .moveBusinessCalculatorLoanLengthBy(moveLoanLength); + } + + public Function fillLoanCalculator(String loanAmount, int moveLoanAmount, String loanLength, int moveLoanLength) { + return start -> start + .fillLoanCalculatorAmountInput(loanAmount) + .moveLoanCalculatorLoanAmount(moveLoanAmount) + .fillLoanCalculatorLengthBy(loanLength) + .moveLoanCalculatorLoanLengthBy(moveLoanLength) + .clickLoanCalculatorFixationButton(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/CommonTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/CommonTasks.java new file mode 100644 index 0000000..cff29d6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/CommonTasks.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.util.task.monetaportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.monetaportal.HomePage; +import cz.moneta.test.dsl.monetaportal.MonetaPortal; +import cz.moneta.test.dsl.monetaportal.components.Web2Branch; +import cz.moneta.test.dsl.monetaportal.components.Web2Call; + +import java.util.function.Function; + +public class CommonTasks { + + private final Harness harness; + + public CommonTasks(Harness harness) { + this.harness = harness; + } + + public Function openHomePage() { + return start -> start + .openHomePage() + .acceptCookies(); + } + + public Function fillW2C(String mobilNumber) { + return start -> start + .clickW2CPhone() + .fillW2CPhone(mobilNumber) + .clickW2CSubmit() + .checkW2CSuccessMessage() + .clickW2CModalClose(); + } + + public Function fillW2B(int visitDay, int visitTime, String clientFullName, String mobilNumber, String clientEmail) { + return start -> start + .clickVisitDay() + .selectVisitDay(visitDay) + .clickVisitTime() + .selectVisitTime(visitTime) + .clickW2BContinue() + .fillW2BClientFullName(clientFullName) + .fillW2BClientPhoneNumber(mobilNumber) + .fillW2BClientEmail(clientEmail) + .clickW2BSubmit() + .checkW2BSuccessMessage(); + } + + public Function fillW2BICO(int visitDay, int visitTime, String clientFullName, String clientICO, String mobilNumber, String clientEmail) { + return start -> start + .clickVisitDay() + .selectVisitDay(visitDay) + .clickVisitTime() + .selectVisitTime(visitTime) + .clickW2BContinue() + .fillW2BClientFullName(clientFullName) + .fillW2BClientICO(clientICO) + .fillW2BClientPhoneNumber(mobilNumber) + .fillW2BClientEmail(clientEmail) + .clickW2BSubmit() + .checkW2BSuccessMessage(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/FormTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/FormTasks.java new file mode 100644 index 0000000..c84b793 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/FormTasks.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dsl.util.task.monetaportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.monetaportal.components.forms.AlaCarteLoanForm; + +import java.util.function.Function; + +public class FormTasks { + + private final Harness harness; + + public FormTasks(Harness harness) { + this.harness = harness; + } + + public Function fillOnboardingForm(String clientFirstName, String clientLastName, String clientEmail, String phoneNumber) { + return start -> start + .fillLoanFormFirstname(clientFirstName) + .fillLoanFormLastname(clientLastName) + .fillLoanFormEmail(clientEmail) + .fillLoanFormPhoneNumber(phoneNumber) + .clickLoanFormMailingAgreement() + .clickLoanFormGdprAgreement() + .clickLoanFormWhatsAppAgreement() + .clickLoanFormConfirm() + .checkQRCode(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/MonetaPortalTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/MonetaPortalTasks.java new file mode 100644 index 0000000..1e01207 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/MonetaPortalTasks.java @@ -0,0 +1,37 @@ +package cz.moneta.test.dsl.util.task.monetaportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.childbuildingsavings.ChildBuildingSavingsTasks; + +public class MonetaPortalTasks { + + private final Harness harness; + + public MonetaPortalTasks(Harness harness) { + this.harness = harness; + } + + public CalculatorTasks calculatorTasks() { + return new CalculatorTasks(harness); + } + + public CommonTasks commonTasks() { + return new CommonTasks(harness); + } + + public FormTasks formTasks() { + return new FormTasks(harness); + } + + public Wso2Tasks wso2Tasks() { + return new Wso2Tasks(harness); + } + + public MortgageTasks mortgageTasks() { + return new MortgageTasks(harness); + } + + public ChildBuildingSavingsTasks childBuildingSavingsTasks() { + return new ChildBuildingSavingsTasks(harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/MortgageTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/MortgageTasks.java new file mode 100644 index 0000000..d4fbfc0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/MortgageTasks.java @@ -0,0 +1,78 @@ +package cz.moneta.test.dsl.util.task.monetaportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.finanso.FinansoIncomePage; +import cz.moneta.test.dsl.monetaportal.mortgages.MortgagePage; +import org.junit.jupiter.api.Assertions; + +import java.util.function.Function; + +public class MortgageTasks { + private static final String CLIENT_INCOME = "50000"; + private static final String CLIENT_INSTALMENT = "1000"; + private static final String MORTGAGE_FIXATION = "5"; + private static final String MAX_MORTGAGE_RESULT_STORE_KEY = "MAX_MORTGAGE_RESULT"; + private static final String MORTGAGE_AMOUNT_VALUE_STORE_KEY = "MORTGAGE_AMOUNT_VALUE"; + private static final String MORTGAGE_REALITY_AMOUNT_VALUE_STORE_KEY = "MORTGAGE_REALITY_AMOUNT_VALUE"; + private static final String MORTGAGE_MATURITY_VALUE_STORE_KEY = "MORTGAGE_MATURITY_VALUE"; + private static final String FINANSO_INCOME_VALUE_STORE_KEY = "FINANSO_INCOME_VALUE"; + private static final String FINANSO_INSTALLMENT_VALUE_STORE_KEY = "FINANSO_INSTALLMENT_VALUE"; + private static final String FINANSO_AMOUNT_STORE_KEY = "FINANSO_AMOUNT"; + private static final String FINANSO_REALITY_AMOUNT_STORE_KEY = "FINANSO_REALITY_AMOUNT"; + private static final String FINANSO_MATURITY_STORE_KEY = "FINANSO_MATURITY"; + private static final String FINANSO_FIXATION_STORE_KEY = "FINANSO_FIXATION"; + private final Harness harness; + + public MortgageTasks(Harness harness) { + this.harness = harness; + } + + public Function fillAndStoreFindMaxCalculator() { + return start -> start + .clickFindMaxMortgageTabButton() + .fillIncome(CLIENT_INCOME) + .fillFee(CLIENT_INSTALMENT) + .clickIsApplicantFalse() + .storeMaxMortgageResult(MAX_MORTGAGE_RESULT_STORE_KEY) + .clickTransferMaxMortgageResult() + .storeMortgageAmountValue(MORTGAGE_AMOUNT_VALUE_STORE_KEY); + } + + public Function checkTransferredResult() { + return start -> { + Assertions.assertEquals(harness.get(MAX_MORTGAGE_RESULT_STORE_KEY).toString(), harness.get(MORTGAGE_AMOUNT_VALUE_STORE_KEY).toString()); + return start; + }; + } + + + public Function fillAndStoreMortgageCalculator() { + return start -> start + .storeMortgageRealityAmountValue(MORTGAGE_REALITY_AMOUNT_VALUE_STORE_KEY) + .storeMortgageMaturityValue(MORTGAGE_MATURITY_VALUE_STORE_KEY) + .clickFixation(MORTGAGE_FIXATION) + .clickIWantLoan(); + } + + public Function storeFinansoPreFilledData() { + return start -> start.storeIncomeValue(FINANSO_INCOME_VALUE_STORE_KEY) + .storeInstallmentValue(FINANSO_INSTALLMENT_VALUE_STORE_KEY) + .goBack() + .storeFinansoAmount(FINANSO_AMOUNT_STORE_KEY) + .storeFinansoMaturity(FINANSO_MATURITY_STORE_KEY) + .storeFinansoFixation(FINANSO_FIXATION_STORE_KEY) + .storeFinansoRealityAmount(FINANSO_REALITY_AMOUNT_STORE_KEY); + } + + public Function checkTransferredDataToFinanso() { + return start -> { + Assertions.assertEquals(harness.get(MORTGAGE_AMOUNT_VALUE_STORE_KEY).toString(), harness.get(FINANSO_AMOUNT_STORE_KEY)); + Assertions.assertEquals(harness.get(MORTGAGE_REALITY_AMOUNT_VALUE_STORE_KEY).toString(), harness.get(FINANSO_REALITY_AMOUNT_STORE_KEY)); + Assertions.assertEquals(harness.get(MORTGAGE_MATURITY_VALUE_STORE_KEY).toString(), harness.get(FINANSO_MATURITY_STORE_KEY)); + Assertions.assertEquals(MORTGAGE_FIXATION, harness.get(FINANSO_FIXATION_STORE_KEY)); + Assertions.assertEquals(CLIENT_INCOME, harness.get(FINANSO_INCOME_VALUE_STORE_KEY)); + Assertions.assertEquals(CLIENT_INSTALMENT, harness.get(FINANSO_INSTALLMENT_VALUE_STORE_KEY)); + return start; + }; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/Wso2Tasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/Wso2Tasks.java new file mode 100644 index 0000000..ba65595 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/Wso2Tasks.java @@ -0,0 +1,74 @@ +package cz.moneta.test.dsl.util.task.monetaportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.monetaportal.responses.GetContactsResponse; +import cz.moneta.test.dsl.util.task.monetaportal.responses.GetOpportunitiesResponse; + +public class Wso2Tasks { + private final Harness harness; + + public Wso2Tasks(Harness harness) { + this.harness = harness; + } + public GetOpportunitiesResponse getOpportunitiesForClient(String date, NonClient client, String branchId) { + return harness + .tasks() + .wso2() + .restRequest() + .prepareEmptyRequestFromHub("/t/sme.cluster/IPE/GET_OPPORTUNITIES/001") + .addField("SOURCE", "2") + .addField("ID_BRANCH", branchId) //branchId for CESKE_BUDEJOVICE + .addField("ICO", client.ico()) + .addField("CREATED_AT_FROM", date) + .post() + .andAssertStatus(200) + .andAssertPresent("RS_DATA") + .mapResponseIntoObject(GetOpportunitiesResponse.class); + } + + public GetContactsResponse getContacts(NonClient client) { + String instPtKey = harness + .tasks() + .wso2() + .restRequest() + .prepareEmptyRequestFromUfo("/t/data.cluster/GET_INST_PT_KEY/001") + .addField("SRC_SYS_ID", "SFC01") + .addField("ICO_NUM_IN", client.ico()) + .post().extract("RS_1").findValuesAsText("INST_PT_KEY").get(0); + + String subjectId = harness + .tasks() + .wso2() + .restRequest() + .prepareEmptyRequestFromUfo("/t/sme.cluster/GET_SUBJECTS/001") + .addField("SESSION_ID", "") + .addField("ID_SUBJECT_EXT", instPtKey) + .post().extract("RS_DATA").findValuesAsText("ID_SUBJECT").get(0); + + return harness + .tasks() + .wso2() + .restRequest() + .prepareEmptyRequestFromUfo("/t/sme.cluster/GET_CONTACTS/001") + .addField("SESSION_ID", "") + .addField("ID_SUBJECT", subjectId) + .post().mapResponseIntoObject(GetContactsResponse.class); + } + + public int getCampaignsCount(Harness harness, String telephone, String campaignName) { + return harness + .tasks() + .wso2() + .restRequest() + .prepareEmptyRequestFromUfo("/t/callcentrum.cluster/GET_TLS_CAMPAIGNS_BYPHONE_W/001") + .addField("TELEFON", telephone) + .post() + .extract("RS_DATA") + .findValuesAsText("NAZEV") + .stream() + .filter(x -> x.contains(campaignName)) + .toList() + .size(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/childbuildingsavings/ChildBuildingSavingsSQL.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/childbuildingsavings/ChildBuildingSavingsSQL.java new file mode 100644 index 0000000..22c6d95 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/childbuildingsavings/ChildBuildingSavingsSQL.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.util.task.monetaportal.childbuildingsavings; + +public class ChildBuildingSavingsSQL { + + public static final String SQL_GET_USERID_AND_SESSION_ID= "SELECT u.userid, u.clientid, u.user_userloginid as userloginid, j.sessionid \n" + + "FROM UDEBSGE.W_CBL_USERS u \n" + + "join UDEBSGE.cbl_journal j on j.userid = u.userid \n" + + "where j.cif = 's%' \n" + + "and j.apiname like '%deposit-building-savings-child%' \n" + + "and j.requesttimestamp >= sysdate - 1/100 \n" + + "order by j.requesttimestamp desc \n" + + "fetch next 1 rows only"; + + public static final String SQL_GET_DU_URL = "select substr(json_value(RESPONSEDATA,'$.responseObject.url'),-6) as CODE from UDEBSGE.cbl_journal " + + "where apiname like '%/deposit-building-savings-child/id-upload/start%' " + + "and sessionid = '_SESSIONID_' " + + "and requesttimestamp >= sysdate - 1"; + + public static final String SQL_SELECT_WAITING_FOR_DOCUMENT_REQUEST = "select * from NASDB_OWNER.appl a " + + "inner join NASDB_OWNER.appl_stat as1 on a.appl_stat_key = as1.appl_stat_key " + + "inner join NASDB_OWNER.form_tp ft on a.form_tp_key = ft.form_tp_key " + + "where a.appl_key in ( " + + "select appl_key from NASDB_OWNER.appl_pt_role where inst_pt_key in(select inst_pt_key from NASDB_OWNER.inst_pt where " + + "rc_num = '%s' " + + ")) " + + "and a.appl_stat_key = 5 " + + "and a.ins_dt >= sysdate - 1 " + + "order by a.UPD_DT DESC"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/childbuildingsavings/ChildBuildingSavingsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/childbuildingsavings/ChildBuildingSavingsTasks.java new file mode 100644 index 0000000..677641d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/childbuildingsavings/ChildBuildingSavingsTasks.java @@ -0,0 +1,126 @@ +package cz.moneta.test.dsl.util.task.monetaportal.childbuildingsavings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.monetaportal.savings.childbuildingsavings.*; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskDetail; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.retail.other.DocumentUploaderTasks; +import cz.moneta.test.dsl.util.task.ufo.operations.ManualFraudCheckTasks; +import cz.moneta.test.harness.endpoints.nasdb.NasDbEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.util.task.retail.loans.constants.DefaultLoansConstants.DEFAULT_FRAUD_MSG; + +public class ChildBuildingSavingsTasks { + private final Harness harness; + private final ChildBuildingSavingsUtils utils; + + public ChildBuildingSavingsTasks(Harness harness) { + this.harness = harness; + this.utils = new ChildBuildingSavingsUtils(harness); + } + + public Function takeIdentity(NonClient childClient, boolean isLessThan15YearsOld, String parent1BirthNumber, String parent2BirthNumber) { + utils.storeDocumentUploaderCode(); + DocumentUploaderTasks duTasks = harness.tasks().retail().documentUploaderTasks(); + if (isLessThan15YearsOld) + duTasks.takeIdentityWithOnlyBirthCertificateBE(childClient, parent1BirthNumber, parent2BirthNumber, "15"); + else duTasks.takeIdentityWithIdAndBirthCertificateBE(childClient, parent1BirthNumber, parent2BirthNumber, "15"); + return ContinueOnMobilePage::onPermanentAddress; + } + + public Function logTestData(String clientCif, NonClient child, NonClient father, NonClient mother) { + utils.storeUserIdAndSessionId(clientCif); + harness.log("\nChild: " + child.fullName() + ", RČ: " + child.birthNumber() + "\n" + + "Father: " + father.fullName() + ", RČ: " + father.birthNumber() + "\n" + + "Mother: " + mother.fullName() + ", RČ: " + mother.birthNumber() + "\n" + + "userId: " + harness.get("USERID") + "\n" + + "clientId: " + harness.get("CLIENTID") + "\n" + + "userLoginId: " + harness.get("USERLOGINID") + "\n" + + "sessionId: " + harness.get("SESSIONID")); + return page -> page; + } + + public Function fillCalculator(String payment, String term, boolean stateSupport) { + return page -> page + .setPayment(payment) + .setTerm(term) + //.setTargetAmount("150000") + .setStateSupport(stateSupport) + .clickContinue(); + } + + public Function fillConsents(boolean isLessThan15YearsOld) { + return page -> page + .chooseAge(isLessThan15YearsOld) + .clickAgreeAndContinue(); + } + + public Function fillPersonalDetail() { + return page -> page + .clickPepNo() + .clickContinue(); + } + + public Function fillPersonalAddress() { + return page -> page + .setContactSameAsPermanent(true) + .clickContinue(); + } + + public Function fillPermanentAddress(boolean isLessThan15YearsOld) { + if (isLessThan15YearsOld) return page -> page + //.setChildAddressSameAsParents(true) + .clickContinue(); + else return PermanentAddressPage::onAdditionalInformation; + } + + public Function fillAdditionalInformation(String birthCountry) { + return page -> page + .clickPepNo() + .setBirthCountry(birthCountry) + .clickContinue(); + } + + public Function fillAml() { + return page -> page + .clickAnswers() + .clickContinue(); + } + + public Function fillPreContract() { + return page -> page + .waitToLoad() + .clickAgreeAndContinue(); + } + + public Function fillContract() { + return page -> page + .scrollDown() + .goSign() + .typeSmsKey("12341234"); + } + + public Function processManualFraudCheckTask(NonClient nonClient, boolean isLessThan15YearsOld, Credentials credentials) { + NasDbEndpoint nasEP = harness.getEndpoint(NasDbEndpoint.class); + if (!nasEP.executeSql(String.format(ChildBuildingSavingsSQL.SQL_SELECT_WAITING_FOR_DOCUMENT_REQUEST, nonClient.birthNumber())).isEmpty()) { + ManualFraudCheckTasks mfchTasks = harness.tasks().ufo().operations().manualFraudCheckTasks(); + UKO720_S001_TaskList taskList = harness.withUfo() + .openLoginPage() + .typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectFirstOmIfPresent() + .selectUfoOperationsAndContinueWithoutOmSelect() + .then(mfchTasks.findFraudTaskByBirthNumberWithTimeout(nonClient.birthNumber())); + UKO720_S001_TaskDetail taskDetail; + if (isLessThan15YearsOld) + taskDetail = taskList.then(mfchTasks.selectFirstMFCHBirthCertificateOnly()); + else taskDetail = taskList.then(mfchTasks.selectFirstMFCHBirthCertificateAndId(nonClient.idCardCheckDigit())); + taskDetail.then(mfchTasks.finishFraudTask(DEFAULT_FRAUD_MSG)); + } else harness.log("CIF request has been automatically approved."); + return page -> page; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/childbuildingsavings/ChildBuildingSavingsUtils.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/childbuildingsavings/ChildBuildingSavingsUtils.java new file mode 100644 index 0000000..0037d4c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/childbuildingsavings/ChildBuildingSavingsUtils.java @@ -0,0 +1,120 @@ +package cz.moneta.test.dsl.util.task.monetaportal.childbuildingsavings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.szrmock.SzrMockData; +import cz.moneta.test.dsl.util.data.client.IdCard; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.ib.IbLoginApiTasks; +import cz.moneta.test.harness.endpoints.ib.NewIbEndpoint; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import java.time.LocalDate; +import java.util.concurrent.TimeUnit; + +import static cz.moneta.test.dsl.util.task.monetaportal.childbuildingsavings.ChildBuildingSavingsSQL.SQL_GET_USERID_AND_SESSION_ID; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.dsl.util.task.retail.loans.constants.DefaultLoansConstants.*; +import static cz.moneta.test.harness.support.auth.AuthSupport.getCredentials; + +public class ChildBuildingSavingsUtils { + private final Harness harness; + + public ChildBuildingSavingsUtils(Harness harness) { + this.harness = harness; + } + + public NonClient createClientFatherData() { + return harness.data().newNonClient() + .withEmail(DEFAULT_EMAIL) + .withMobileNumber(DEFAULT_MOBILE_NUMBER) + .withDriverLicenceId(DEFAULT_DRIVING_LICENSE_ID) + .withDriveLicenceExpiryDateRaw(DEFAULT_DRIVING_LICENSE_EXPIRATION_DATE) + .withResidencyAddress(DEFAULT_CLIENT_ADDRESS) + .withIdCard(DEFAULT_ID_CARD); + } + + public NonClient createClientMotherData(NonClient father) { + return harness.data().newWomanNonClient() + .withEmail(father.email()) + .withLastName(father.lastName()) + .withMobileNumber(father.mobileNumber()) + .withResidencyAddress(father.residencyAddress()); + } + + public NonClient createChildClientData(NonClient parent, int ageFrom, int ageTo) { + return harness.data().newNonClient() + .withBirthNumber(harness.tasks().common().getRcMinMaxAge(ageFrom, ageTo)) + .withEmail(parent.email()) + .withLastName(parent.lastName()) + .withMobileNumber(parent.mobileNumber()) + .withResidencyAddress(parent.residencyAddress()) + .withIdCard(new IdCard("209373728", LocalDate.of(2018, 8, 12), LocalDate.of(2028, 8, 12))); + } + + public Credentials createClient(SzrMockData data) { + String ufoUserName = getCredentials(banker, harness).getUsername(); + NewClientWithCurrentAccountInformation info = harness.dataPrepare().createNewFoCustomerWithCurrentAccountAndIbViaWso2(data.getClient(), ufoUserName); + data.setCif(info.getCif()); + harness.tasks().szrMock().idAndPassE2E(data); + harness.log(String.format("\n" + + "Name and Surname: %s %s\n" + + "Birth Number: %s\n" + + "Cif: %s" + , data.getClient().firstName(), data.getClient().lastName(), data.getClient().birthNumber(), info.getCif())); + Credentials cred = new IbLoginApiTasks(harness).loginAndConfirmAuthWithSms(info.getCredentials().getUsername()); + harness.log("\nUsername: " + cred.getUsername() + "\n" + + "Password: " + cred.getPassword()); + return cred; + } + + public String createChildExist(NonClient client) { + String ufoUserName = getCredentials(banker, harness).getUsername(); + String cif = harness.dataPrepare().createNewFoCustomerViaWso2AndGetCif(client, ufoUserName); + harness.log(String.format("\n" + + "Name and Surname: %s %s\n" + + "Birth Number: %s\n" + + "Cif: %s" + , client.firstName(), client.lastName(), client.birthNumber(), cif)); + return cif; + } + + public void storeUserIdAndSessionId(String cif) { + Result resultUserID = harness.getEndpoint(UdebsEndpoint.class) + .executeSql(SQL_GET_USERID_AND_SESSION_ID.replace("s%", cif)); + String userID = getValueFromResult(resultUserID, "USERID"); + String sessionId = getValueFromResult(resultUserID, "SESSIONID"); + String clientId = getValueFromResult(resultUserID, "CLIENTID"); + String userLoginId = getValueFromResult(resultUserID, "USERLOGINID"); + Assertions.assertNotNull(userID, "Can't get userID from cache. Stopping..."); + Assertions.assertNotNull(sessionId, "Can't get sessionId from cache. Stopping..."); + Assertions.assertNotNull(clientId, "Can't get clientId from cache. Stopping..."); + Assertions.assertNotNull(userLoginId, "Can't get clientId from cache. Stopping..."); + harness.store("USERID", userID); + harness.store("SESSIONID", sessionId); + harness.store("CLIENTID", clientId); + harness.store("USERLOGINID", userLoginId); + } + + public void storeDocumentUploaderCode() { + harness.getEndpoint(NewIbEndpoint.class).sleep(TimeUnit.SECONDS, 2); + Result resultUserID = harness.getEndpoint(UdebsEndpoint.class) + .executeSql(ChildBuildingSavingsSQL.SQL_GET_DU_URL + .replaceAll("_SESSIONID_", harness.get("SESSIONID"))); + String code = getValueFromResult(resultUserID, "CODE"); + Assertions.assertNotNull(code, "Can't get Document Uploader CODE from CBL Journal. Stopping..."); + harness.log(String.format("CODE: %s", code)); + harness.store("CODE", code); + } + + public static String getValueFromResult(Result result, String identifier) { + return result.stream() + .findFirst() + .map(x -> x.getValue(identifier).toString()) + .orElse(null); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/Contact.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/Contact.java new file mode 100644 index 0000000..77b1ab3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/Contact.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.util.task.monetaportal.responses; + +public class Contact { + public String POSITION; + public String CHANGED_AT; + public String ACTIVE; + public String LANDLINE; + public String TITLE; + public String EMAIL; + public String LAST_NAME; + public String ID_CONTACT; + public String FIRST_NAME; + public String MOBILE; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/GetContactsResponse.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/GetContactsResponse.java new file mode 100644 index 0000000..9cc3be0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/GetContactsResponse.java @@ -0,0 +1,7 @@ +package cz.moneta.test.dsl.util.task.monetaportal.responses; + +import java.util.List; + +public class GetContactsResponse { + public List RS_DATA; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/GetOpportunitiesResponse.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/GetOpportunitiesResponse.java new file mode 100644 index 0000000..29b6db7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/GetOpportunitiesResponse.java @@ -0,0 +1,7 @@ +package cz.moneta.test.dsl.util.task.monetaportal.responses; + +import java.util.List; + +public class GetOpportunitiesResponse { + public List RS_DATA; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/Opportunity.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/Opportunity.java new file mode 100644 index 0000000..d2c169a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/monetaportal/responses/Opportunity.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.util.task.monetaportal.responses; + +public class Opportunity { + public String ID_BRANCH; + public String CREATED_AT; + public String REQUESTED_LOAN_AMOUNT; + public String ID_OPPORTUNITY; + public String CONTACT_DATE; + public String CONTACT_TIME_NOTE; + public String STATUS; + public String DESCRIPTION; + public String CATEGORY; + public String OPPORTUNITY_NAME; + public String CAMPAIGN; + public String CONTACT_NAME; + public String CREATED_BY; + public String CURRENCY; + public String CHANGED_AT; + public String REFUSE_REASON; + public String INITIATED_BY; + public String RETENTION; + public String STATUS_CHANGED_AT; + public String ASSIGNED_TO; + public String ICO; + public String SUBJECT_NAME; + public String FINANCIAL_STATEMENT; + public String SOURCE; + public String CHANGED_BY; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/mvcr/MvcrTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/mvcr/MvcrTasks.java new file mode 100644 index 0000000..504f5a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/mvcr/MvcrTasks.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.util.task.mvcr; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.mvcr.MvcrEndpoint; +import org.apache.commons.lang3.StringUtils; + +import java.util.Collections; +import java.util.HashMap; + +@SuppressWarnings("all") +public class MvcrTasks { + + private final Harness harness; + + public MvcrTasks(Harness harness) { + this.harness = harness; + } + + public boolean checkIdCardValidity(String cardNumber) { + HashMap params = new HashMap() {{ + put("dotaz", cardNumber); + put("doklad", "0"); + }}; + + String response = harness.getEndpoint(MvcrEndpoint.class) + .get("/neplatne-doklady/doklady.aspx", params, String.class, Collections.emptyMap()) + .getRight(); + + return !StringUtils.contains(response, "evidovano=\"ano\""); + } + + /** + * Workaround because direct connection to MVČR has stopped working at 21.10.2024 + * @param cardNumber + * @return + */ + public boolean checkIdCardValidityWso2(String cardNumber) { + return !harness.tasks().wso2().restRequest().prepareEmptyRequestFromCbl("/t/data.cluster/EXT_DATA_MVCR_IDCARD_CHECK/001") + .addField("identDocumentId", cardNumber) + .addField("identDocumentTypeId", "0") + .post() + .extract("evidovano") + .asBoolean(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/nasdb/NasDbTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/nasdb/NasDbTasks.java new file mode 100644 index 0000000..2fb8d96 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/nasdb/NasDbTasks.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.util.task.nasdb; + +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.nasdb.NasDbEndpoint; +import org.jooq.Record; +import org.jooq.Result; + +import java.util.ArrayList; +import java.util.List; + +public class NasDbTasks { + + private final StoreAccessor harness; + + public NasDbTasks(StoreAccessor harness) { + this.harness = harness; + } + + public void insertUser(NonClient client) { + harness.getEndpoint(NasDbEndpoint.class) + .insertUser(client.birthNumber(), client.firstName(), client.lastName()); + } + + /** + * Method try to find ID Card from input on blacklist in NAS DB + * + * @param id id card number + * @return true when present + */ + public boolean checkPresentIdOnBlacklist(String id) { + return harness.getEndpoint(NasDbEndpoint.class).checkPresentIdCardOnBlacklist(id); + } + + /** + * Returns a list of application ids of all applications not in declined or canceled state + * + * @param birthNumber client birth number + */ + + public List getAllPendingApllicationsForClient(String birthNumber) { + String sql = "select a.appl_id from nasdb_owner.appl a " + + " join nasdb_owner.appl_stat ast on ast.appl_stat_key = a.appl_stat_key" + + " join nasdb_owner.appl_pt_role ar on ar.appl_key=a.appl_key" + + " join nasdb_owner.inst_pt i on i.inst_pt_key = ar.inst_pt_key" + + String.format(" where i.rc_num = '%s'", birthNumber) + + " and ast.descr not in ('Storno', 'Zamítnutá', 'Chyba', 'Podepsaná')"; + ArrayList applList = new ArrayList<>(); + Result resultList = harness.getEndpoint(NasDbEndpoint.class).executeSql(sql); + resultList.forEach(result -> applList.add(result.getValue("APPL_ID").toString())); + + return applList; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/oauth2/Oauth2Tasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/oauth2/Oauth2Tasks.java new file mode 100644 index 0000000..c84ae3c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/oauth2/Oauth2Tasks.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.util.task.oauth2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.oauth2.token.TokenTasks; +import cz.moneta.test.dsl.util.task.oauth2.web.WebTasks; + +public class Oauth2Tasks { + + private final Harness harness; + + public Oauth2Tasks(Harness harness) { + this.harness = harness; + } + + public WebTasks web() { + return new WebTasks(harness); + } + + public TokenTasks token() { + return new TokenTasks(harness); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/oauth2/token/TokenTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/oauth2/token/TokenTasks.java new file mode 100644 index 0000000..22087c6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/oauth2/token/TokenTasks.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.util.task.oauth2.token; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.oauth2.token.Oauth2Token; +import cz.moneta.test.dsl.cagw.api.v4.token.ApiV4Token; +import cz.moneta.test.dsl.oauth2.web.ThirdPartyApplicationPageWithToken; + +import java.util.function.Function; + +public class TokenTasks { + + private final Harness harness; + + public TokenTasks(Harness harness) { + this.harness = harness; + } + + public Function setRequestValues(String oauth2ClientId, String oauth2ClientSecret) { + return start -> start.code(harness.get(ThirdPartyApplicationPageWithToken.AUTH_CODE_STORE)) + .client_id(oauth2ClientId) + .client_secret(oauth2ClientSecret) + .grant_type("authorization_code"); + } + + public Function setRequestValuesV2(String oauth2ClientId, String oauth2ClientSecret) { + return start -> start.code(harness.get(ThirdPartyApplicationPageWithToken.AUTH_CODE_STORE)) + .client_id(oauth2ClientId) + .client_secret(oauth2ClientSecret) + .grant_type("authorization_code"); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/oauth2/web/WebTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/oauth2/web/WebTasks.java new file mode 100644 index 0000000..909bbb6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/oauth2/web/WebTasks.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.util.task.oauth2.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.oauth2.web.ApproveAccessToAccountPage; +import cz.moneta.test.dsl.oauth2.web.ApproveAccessToAccountPageKyc; + +import java.util.function.Function; + +public class WebTasks { + + private final Harness harness; + + public WebTasks(Harness harness) { + this.harness = harness; + } + + public Function loginToApproveAccessPage( + String login, String password) { + return start -> start.fillIdInput(login) + .fillPasswordInput(password) + .clickSendMobileKey(); + } + + public Function loginToApproveAccessPageKyc( + String login, String password) { + return start -> start.fillIdInput(login) + .fillPasswordInput(password) + .clickSendMobileKey(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ods/OdsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ods/OdsTasks.java new file mode 100644 index 0000000..4d12ecb --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ods/OdsTasks.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.util.task.ods; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import org.jooq.Record; +import org.jooq.Result; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.stream.Collectors; + +public class OdsTasks { + + private final StoreAccessor harness; + + public OdsTasks(StoreAccessor harness) { + this.harness = harness; + } + + private static String readSqlFromFile(String path) { + try { + try (InputStream file = OdsTasks.class.getClassLoader().getResourceAsStream(path)) { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(file))) { + return reader.lines().collect(Collectors.joining(System.lineSeparator())); + } + } + } catch (NullPointerException | IOException e) { + throw new HarnessException("Failed to read SQL select: " + path); + } + } + + public Result getCardInfo(String rc) { + String sql = readSqlFromFile("ods/ods_card_info.sql") + .replaceAll("#rc_num", rc); + return harness.getEndpoint(OdsEndpoint.class) + .executeSql(sql); + } + + public Result findIco(String ico) { + String sql = readSqlFromFile("ods/ods_albertina_find_ico.sql") + .replaceAll("#ICO", ico); + return harness.getEndpoint(OdsEndpoint.class) + .executeSql(sql); + } + + public Result findInstPt(String ico, String srcSysId) { + String sql = readSqlFromFile("ods/ods_inst_pt_info.sql").replaceAll("#ICO", ico).replaceAll("#SRC_SYS_ID", srcSysId); + return harness.getEndpoint(OdsEndpoint.class) + .executeSql(sql); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/RetailTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/RetailTasks.java new file mode 100644 index 0000000..bbf1921 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/RetailTasks.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.util.task.retail; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.retail.other.DocumentUploaderTasks; + +public class RetailTasks { + + private final Harness harness; + + public RetailTasks(Harness harness) { + this.harness = harness; + } + + public DocumentUploaderTasks documentUploaderTasks() { + return new DocumentUploaderTasks(harness); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/cards/constants/CreditCardSQL.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/cards/constants/CreditCardSQL.java new file mode 100644 index 0000000..0810f8e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/cards/constants/CreditCardSQL.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.util.task.retail.cards.constants; + +public class CreditCardSQL { + + public static final String FIND_ONBOARDED_CARDS_BY_RC = + "SELECT IP.RC_NUM AS RC,\n" + + "SUBSTR(CI.SRC_ID, -16, 19) AS CISLO_KARTY,\n" + + "( CI.INS_DT ) AS DATUM_ZALOZENI\n" + + "FROM ODS_L1_OWNER.CARD_INST CI\n" + + "INNER JOIN ODS_L1_OWNER.PROD_INST_PT_ROLE PI\n" + + "ON CI.PROD_INST_KEY = PI.PROD_INST_KEY\n" + + "INNER JOIN ODS_L1_OWNER.INST_PT IP\n" + + "ON IP.INST_PT_KEY = PI.INST_PT_KEY\n" + + "WHERE IP.RC_NUM IN ('ID_NUMBER')\n" + + "order by CI.INS_DT desc"; + + public static final String FIND_CARD_BLOCK_CODE_BY_CARD_NUMBER = + "SELECT card_inst.src_id AS card_num,\n" + + "card_inst.block_code AS card_block_code\n" + + "FROM ods_l1_owner.card_inst\n" + + "WHERE card_inst.src_id LIKE '%CARD_NUMBER%'"; + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/RetailSQL.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/RetailSQL.java new file mode 100644 index 0000000..2833a05 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/RetailSQL.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.util.task.retail.loans; + +public class RetailSQL { + + public static String GET_APP_STATE_CIF_BY_RC = "select a.ins_dt, a.upd_dt, as1.descr as stav, ft.descr as typ_zadosti, a.* from NASDB_OWNER.appl a " + + " inner join NASDB_OWNER.appl_stat as1 on a.appl_stat_key=as1.appl_stat_key " + + " inner join NASDB_OWNER.form_tp ft on a.form_tp_key=ft.form_tp_key " + + " where a.appl_key in ( " + + " select appl_key from NASDB_OWNER.appl_pt_role where inst_pt_key in(select inst_pt_key from NASDB_OWNER.inst_pt where " + + " rc_num='%s' " + + ")) " + + "and BUS_KEY = 7 " + + "and ft.descr ='Identifikační žádost' " + + "order by a.UPD_DT DESC"; + + public static String GET_APP_STATE_NBL_BY_RC = "select a.ins_dt, a.upd_dt, as1.descr as stav, ft.descr as typ_zadosti, a.* from NASDB_OWNER.appl a " + + " inner join NASDB_OWNER.appl_stat as1 on a.appl_stat_key=as1.appl_stat_key " + + " inner join NASDB_OWNER.form_tp ft on a.form_tp_key=ft.form_tp_key " + + " where a.appl_key in ( " + + " select appl_key from NASDB_OWNER.appl_pt_role where inst_pt_key in(select inst_pt_key from NASDB_OWNER.inst_pt where " + + "rc_num='%s' " + + ")) " + + "and BUS_KEY = 58156 " + + "order by a.UPD_DT DESC"; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/constants/BridgeLoanSQL.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/constants/BridgeLoanSQL.java new file mode 100644 index 0000000..bbd7e6a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/constants/BridgeLoanSQL.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.util.task.retail.loans.constants; + +public class BridgeLoanSQL { + + public static String DU_APPLICANT_DATA_BY_RC_SQL = "select json_value(p.data, '$.households[0].clients[0].firstName') as FIRSTNAME, " + + "json_value(p.data, '$.households[0].clients[0].lastName') as LASTNAME, " + + "json_value(du.cache_data, '$.code') as CODE " + + "from loancl.w_bridge_loan p left join udebsge.cbl_general_cache du on 'document-uploader-process-' || json_value(p.data, '$.households[0].clients[0].documentUploaderToken') = du.cache_code " + + "where 1 = 1 " + + "and p.modified > trunc(sysdate) - 1 " + + "and p.data like '%_BIRTHNUMBER_%' " + + "order by p.modified DESC"; + + public static String DU_CO_APPLICANT_DATA_BY_RC_SQL = "select coalesce(json_value(p.data, '$.households[0].clients[1].firstName'), json_value(p.data, '$.households[1].clients[0].firstName')) as FIRSTNAME, " + + "coalesce(json_value(p.data, '$.households[0].clients[1].lastName'), json_value(p.data, '$.households[1].clients[0].lastName')) as LASTNAME, " + + "json_value(du.cache_data, '$.code') as CODE " + + "from loancl.w_bridge_loan p left join udebsge.cbl_general_cache du on 'document-uploader-process-' || coalesce(json_value(p.data, '$.households[0].clients[1].documentUploaderToken'),json_value(p.data, '$.households[1].clients[0].documentUploaderToken')) = du.cache_code " + + "where 1 = 1 " + + "and p.modified > trunc(sysdate) - 1 " + + "and p.data like '%_BIRTHNUMBER_%' " + + "order by p.modified DESC"; + + private BridgeLoanSQL() { + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/constants/DefaultLoansConstants.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/constants/DefaultLoansConstants.java new file mode 100644 index 0000000..93fdb80 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/constants/DefaultLoansConstants.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.util.task.retail.loans.constants; + +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.Employer; +import cz.moneta.test.dsl.util.data.client.IdCard; + +import java.time.LocalDate; +import java.util.Date; + +import static cz.moneta.test.dsl.util.DateUtils.getSpecificDayRaw; + +public class DefaultLoansConstants { + + public static final IdCard DEFAULT_ID_CARD = new IdCard("209373723", LocalDate.of(2018, 3, 15), LocalDate.of(2028, 3, 15)); + public static final Date DEFAULT_ID_DATE_INVALID = getSpecificDayRaw(2027, 1, 7); + public static final int DEFAULT_INCOME = 45000; + public static final String IBAN_TWO_ICO = "CZ7327000000001002002661"; + public static final String DEFAULT_LOAN_AMOUNT = "60000"; + public static final String DEFAULT_LOAN_DURATION = "72"; + public static final String DEFAULT_REFERENCE_NUMBER = "SAB000277"; + public static final String DEFAULT_ADDRESS_SINCE_LESS_THAN_5 = "méně než 5 let"; + public static final String DEFAULT_ADDRESS_SINCE_5_TO_10 = "5 - 10 let"; + public static final String DEFAULT_HOUSING_TYPE_OTHER = "Jiné"; + public static final String DEFAULT_INSTALMENT_DAY = "10"; + public static final String DEFAULT_ID_CHECK_NUM = "2"; + public static final String DEFAULT_SMS_KEY = "12341234"; + public static final String WRONG_SMS_KEY = "123123"; + public static final String DEFAULT_FRAUD_MSG = "Automat - Manual Fraud Check"; + public static final String DEFAULT_EMAIL = "besim@moneta.cz"; + public static final String DEFAULT_MOBILE_NUMBER = "602475132"; + public static final String DEFAULT_DRIVING_LICENSE_ID = "EK082463"; + public static final Date DEFAULT_DRIVING_LICENSE_EXPIRATION_DATE = getSpecificDayRaw(11, 12, 2025); + public static final String DEFAULT_ACCOUNT_NUMBER = "1152131012"; + public static final String DEFAULT_BANK_NUMBER = "0300"; + public static final String OTHER_INSTALLMENTS = "0"; + public static final String OTHER_COST_OF_LIVING = "0"; + public static final String DEPENDENT_PEOPLE = "0 osob"; + public static final Address DEFAULT_CLIENT_ADDRESS = Address.builder() + .street("Pražská") + .descriptiveNumber("278") + .orientationNumber("10") + .city("Benátky nad Jizerou") + .zip("29471") + .country("CZ") + .build(); + public static final Employer DEFAULT_EMPLOYER = new Employer( + "Printempo", + "01633171", + Address.builder() + .street("Sluneční náměstí") + .descriptiveNumber("2580") + .orientationNumber("13") + .city("Stodůlky") + .zip("15800") + .country("CZ") + .build(), + "224252524"); + + private DefaultLoansConstants() { + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/constants/LoansCBLRequests.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/constants/LoansCBLRequests.java new file mode 100644 index 0000000..5760aa6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/loans/constants/LoansCBLRequests.java @@ -0,0 +1,48 @@ +package cz.moneta.test.dsl.util.task.retail.loans.constants; + +public class LoansCBLRequests { + public static final String ID_COMMIT_PAYLOAD = "{\"address\": {\"street\": \"%s\"," + + " \"landRegistryNumber\": \"%s\"," + + "%s" + + " \"city\": \"%s\"," + + " \"zip\": \"%s\"}," + + " \"birthDate\": \"%s\"," + + " \"birthNumber\": \"%s\"," + + " \"birthPlace\": \"%s\"," + + " \"controlNumber\": %s," + + " \"documentType\": \"IDENTITY_CARD\"," + + " \"edited\": false," + + " \"expiration\": \"%s\"," + + " \"firstName\": \"%s\"," + + " \"lastName\": \"%s\"," + + " \"number\": \"%s\"," + + " \"warningsConfirmed\": true}"; + + public static final String OTHER_IDENTITY_PAYLOAD = "{\"birthDate\": \"%s\"," + + " \"birthNumber\": \"%s\"," + + " \"documentType\": \"%s\"," + + " \"edited\": false," + + " \"expiration\": \"%s\"," + + " \"firstName\": \"%s\"," + + " \"lastName\": \"%s\"," + + " \"number\": \"%s\"," + + " \"warningsConfirmed\": true}"; + + public static final String BIRTH_CERTIFICATE_PAYLOAD = "{\n" + + " \"firstName\": \"%s\",\n" + + " \"lastName\": \"%s\",\n" + + " \"birthPlace\": \"%s\",\n" + + " \"birthDate\": \"%s\",\n" + + " \"birthNumber\": \"%s\",\n" + + " \"parent1BirthNumber\": \"%s\",\n" + + " \"parent2BirthNumber\": \"%s\",\n" + + " \"warningsConfirmed\": true \n" + + "}"; + + public static final String CODE_PAYLOAD = "{\"code\": \"%s\"}"; + + public static final String STATUS_PAYLOAD = "{\"documentPageType\":\"%s\"}"; + + private LoansCBLRequests() { + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/other/DocumentUploaderTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/other/DocumentUploaderTasks.java new file mode 100644 index 0000000..50980e2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/retail/other/DocumentUploaderTasks.java @@ -0,0 +1,326 @@ +package cz.moneta.test.dsl.util.task.retail.other; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.endpoints.WebEndpoint; +import cz.moneta.test.harness.endpoints.openapi.OpenApiEndpoint; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.glassfish.jersey.media.multipart.FormDataBodyPart; +import org.glassfish.jersey.media.multipart.MultiPart; +import org.glassfish.jersey.media.multipart.file.StreamDataBodyPart; +import org.junit.Assert; + +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.MediaType; +import java.io.InputStream; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +import static cz.moneta.test.dsl.util.DateUtils.getDateWithFormat; +import static cz.moneta.test.dsl.util.task.retail.loans.constants.LoansCBLRequests.*; + +// Document Uploader +public class DocumentUploaderTasks { + private static final Logger logger = LogManager.getLogger(WebEndpoint.class); + private static final int NUMBER_OF_UPLOAD_TRIES = 4; + private static final int NUMBER_OF_UPLOAD_STATUS_TRIES = 60; + private static final String IDENTITY_CARD_FRONT = "IDENTITY_CARD_FRONT"; + private static final String IDENTITY_CARD_BACK = "IDENTITY_CARD_BACK"; + private static final String ID_FRONT_RESOURCE = "regression/loans/ID_FRONT.jpeg"; + private static final String ID_BACK_RESOURCE = "regression/loans/ID_BACK.jpg"; + private static final String PASSPORT_RESOURCE = "regression/loans/PASSPORT.jpeg"; + private static final String INVALID_PICTURE_RESOURCE = "regression/loans/invalid_image.jpg"; + private static final String DRIVING_LICENSE_RESOURCE = "regression/loans/RP.jpg"; + private static final String BIRTH_CERTIFICATE_RESOURCE = "regression/loans/BIRTH_CERTIFICATE.jpg"; + private static final String PASSPORT = "PASSPORT"; + private static final String SELFIE = "SELFIE"; + private static final String DRIVING_LICENSE = "DRIVING_LICENSE"; + private static final String BIRTH_CERTIFICATE = "BIRTH_CERTIFICATE"; + private static final String INCOME = "ACKNOWLEDGMENT_OF_RECEIPT"; + private static final String DU_UPLOAD_FAIL_MSG = "DocumentUploader called upload with payload: %s BUT have to take picture again (%s)"; + private static final String DU_UPLOAD_MSG = "DocumentUploader called upload with payload: %s"; + private static final String UPLOAD_PATH = "/unsecured/document/uploader/upload"; + private static final String UPLOAD_STATUS_PATH = "/unsecured/document/uploader/upload-status"; + private static final String LIVENESS_PATH = "/unsecured/document/uploader/liveness/upload"; + + private final Harness harness; + private String xFlowID; + private String mobileCode; + private String channelNumber; + + public DocumentUploaderTasks(Harness harness) { + this.harness = harness; + } + + public void takeIdentityBE(NonClient nonClient, String channel) { + mobileCode = harness.get("CODE").toString(); + channelNumber = channel; + notify(mobileCode); + takeIdentityCard(nonClient); + uploadLivenessAndSelfie(); + } + + public void takeIdentityWithPassportBE(NonClient nonClient, String channel) { + mobileCode = harness.get("CODE").toString(); + channelNumber = channel; + notify(mobileCode); + takeIdentityCard(nonClient); + takePassport(nonClient); + uploadLivenessAndSelfie(); + } + + public void takeIdentityWithDrivingLicenseBE(NonClient nonClient, String channel) { + mobileCode = harness.get("CODE").toString(); + channelNumber = channel; + notify(mobileCode); + takeIdentityCard(nonClient); + takeDrivingLicence(nonClient); + uploadLivenessAndSelfie(); + } + + public void takeIdentityWithOnlyBirthCertificateBE(NonClient childClient, String parent1BirthNumber, String parent2BirthNumber, String channel) { + mobileCode = harness.get("CODE").toString(); + channelNumber = channel; + notify(mobileCode); + takeBirthCertificate(childClient, parent1BirthNumber, parent2BirthNumber); + } + + public void takeIdentityWithIdAndBirthCertificateBE(NonClient childClient, String parent1BirthNumber, String parent2BirthNumber, String channel) { + mobileCode = harness.get("CODE").toString(); + channelNumber = channel; + notify(mobileCode); + takeBirthCertificate(childClient, parent1BirthNumber, parent2BirthNumber); + takeIdentityCard(childClient); + } + + public void takeProofOfIncomeByCBL(String channel) { + mobileCode = harness.get("CODE").toString(); + channelNumber = channel; + notify(mobileCode); + uploadPoP(); + uploadPoPFinished(); + } + + private void upload(String resource, String typeOfDocument, String size) { + MultiPart multiPart; + StreamDataBodyPart filePart; + for (int i = 0; i < NUMBER_OF_UPLOAD_TRIES; i++) { + multiPart = new MultiPart(MediaType.MULTIPART_FORM_DATA_TYPE); + filePart = new StreamDataBodyPart("data", + Objects.requireNonNull(DocumentUploaderTasks.class.getClassLoader().getResourceAsStream(resource)), + typeOfDocument + ".jpg", MediaType.valueOf("image/jpeg")); + multiPart.getBodyParts().add(new FormDataBodyPart("dataSize", size)); + multiPart.getBodyParts().add(filePart); + multiPart.getBodyParts().add(new FormDataBodyPart("documentPageType", typeOfDocument)); + sendMultipartData(UPLOAD_PATH, multiPart); + this.sleep(1); + if (!hasToRetake(typeOfDocument)) { + return; + } + } + Assert.fail(String.format("DocumentUploader called maximum number of tries with payload: %s", typeOfDocument)); + } + + private boolean hasToRetake(String typeOfDocument) { + String status; + for (int j = 0; j < NUMBER_OF_UPLOAD_STATUS_TRIES; j++) { + status = prepareRequest(UPLOAD_STATUS_PATH) + .withPayload(String.format(STATUS_PAYLOAD, typeOfDocument)) + .post() + .andAssertStatus(200) + .andAssertPresent("status") + .extract("status") + .textValue(); + harness.log(String.format("Upload status %s", status)); + switch (status) { + case "WRONG_DOC": + case "LOW_QUALITY": + harness.log(String.format(DU_UPLOAD_FAIL_MSG, typeOfDocument, status)); + return true; + case "OK": + harness.log(String.format(DU_UPLOAD_MSG, typeOfDocument)); + return false; + case "IN_PROGRESS": + this.sleep(1); + break; + default: + Assert.fail("Upload-status ended with error. Check CBLJournal for more information."); + break; + } + } + Assert.fail("Upload-status ended with error. Check CBLJournal for more information."); + return false; + } + + private void sendMultipartData(String path, MultiPart multiPart) { + new OpenApiEndpoint(harness).post( + path, + Entity.entity(multiPart, MediaType.MULTIPART_FORM_DATA_TYPE), + String.class, + getHeaders(), + true) + .getRight(); + } + + private void uploadPoP() { + MultiPart multiPart; + StreamDataBodyPart filePart; + multiPart = new MultiPart(MediaType.MULTIPART_FORM_DATA_TYPE); + filePart = new StreamDataBodyPart("data", + Objects.requireNonNull(DocumentUploaderTasks.class.getClassLoader().getResourceAsStream(INVALID_PICTURE_RESOURCE)), + INCOME + ".jpg", MediaType.valueOf("image/jpeg")); + multiPart.getBodyParts().add(new FormDataBodyPart("dataSize", "176.408")); + multiPart.getBodyParts().add(filePart); + multiPart.getBodyParts().add(new FormDataBodyPart("documentPageType", INCOME)); + sendMultipartData(UPLOAD_PATH, multiPart); + harness.log("DocumentUploader called /upload"); + } + + private void uploadPoPFinished() { + prepareRequest("/unsecured/document/uploader/upload-pop-finished") + .withHeader("Channel", channelNumber) + .withHeader("x-flow-id", xFlowID) + .withPayload(String.format(CODE_PAYLOAD, mobileCode)) + .post() + .andAssertStatus(200); + harness.log("DocumentUploader called /upload-pop-finished"); + } + + private RawRestRequest.Request prepareRequest(String path) { + return harness.withOpenApi() + .prepareRequest() + .withPath(path) + .withHeader("Content-Type", "application/json") + .withHeader("x-flow-id", xFlowID) + .withHeader("Channel", channelNumber); + } + + private void notify(String mobileCode) { + xFlowID = harness.withOpenApi() + .prepareRequest() + .withPath("/unsecured/document/uploader/link/opened/notify") + .withHeader("Content-Type", "application/json") + .withHeader("Channel", channelNumber) + .withPayload(String.format(CODE_PAYLOAD, mobileCode)) + .post() + .andAssertStatus(200) + .andAssertPresent("flowId") + .extract("flowId") + .textValue(); + harness.log(String.format("DocumentUploader called notify. xFlowID: %s", xFlowID)); + this.sleep(1); + } + + private void takeIdentityCard(NonClient nonClient) { + upload(ID_FRONT_RESOURCE, IDENTITY_CARD_FRONT, "185.984"); + upload(ID_BACK_RESOURCE, IDENTITY_CARD_BACK, "97.512"); + commitIdCard(nonClient); + } + + private void commitIdCard(NonClient nonClient) { + prepareRequest("/unsecured/document/uploader/mined-data/identity/commit") + .withPayload(String.format(ID_COMMIT_PAYLOAD, + nonClient.residencyAddress().getStreet(), + nonClient.residencyAddress().getDescriptiveNumber(), + nonClient.residencyAddress().getOrientationNumber() == null ? "" : String.format(" \"houseNumber\": \"%s\",", nonClient.residencyAddress().getOrientationNumber()), + nonClient.residencyAddress().getCity(), + nonClient.residencyAddress().getZip(), + TestUtils.parseBirthDate(nonClient.birthNumber()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), + nonClient.birthNumber(), + nonClient.placeOfBirth(), + nonClient.idCardCheckDigit(), + getDateWithFormat(nonClient.idCardExpiredRaw(), "yyyy-MM-dd"), + nonClient.firstName(), + nonClient.lastName(), + nonClient.idCardNumber())) + .post() + .andAssertStatus(200); + harness.log("DocumentUploader called identity/commit"); + this.sleep(1); + } + + private void uploadLivenessAndSelfie() { + try (MultiPart multiPart = new MultiPart(MediaType.MULTIPART_FORM_DATA_TYPE)) { + InputStream inputStream = getClass().getResourceAsStream("/regression/loans/fake_liveness.webm"); + StreamDataBodyPart filePart = new StreamDataBodyPart("file", inputStream); + multiPart.getBodyParts().add(filePart); + multiPart.getBodyParts().add(new FormDataBodyPart("dataSize", "224.3 KB")); + multiPart.getBodyParts().add(new FormDataBodyPart("code", mobileCode)); + sendMultipartData(LIVENESS_PATH, multiPart); + } catch (Exception e) { + throw new IllegalStateException(e); + } + upload(INVALID_PICTURE_RESOURCE, SELFIE, "176.408"); + harness.log("DocumentUploader called upload selfie"); + } + + private Map getHeaders() { + Map headers = new HashMap<>(); + headers.put("Channel", channelNumber); + headers.put("x-flow-id", xFlowID); + return headers; + } + + private void takePassport(NonClient nonClient) { + upload(PASSPORT_RESOURCE, PASSPORT, "176.192"); + commitOtherDocument(nonClient, PASSPORT, nonClient.passportId(), nonClient.passportExpiryDateRaw()); + } + + private void takeDrivingLicence(NonClient nonClient) { + upload(DRIVING_LICENSE_RESOURCE, DRIVING_LICENSE, "76.2"); + commitOtherDocument(nonClient, DRIVING_LICENSE, nonClient.driverLicenceId(), nonClient.driveLicenceExpiryDateRaw()); + } + + private void takeBirthCertificate(NonClient childClient, String parent1BirthNumber, String parent2BirthNumber) { + upload(BIRTH_CERTIFICATE_RESOURCE, BIRTH_CERTIFICATE, "110.0"); + commitBirthCertificate(childClient, parent1BirthNumber, parent2BirthNumber); + } + + private void commitOtherDocument(NonClient nonClient, String documentType, String documentID, Date documentExpirationDate) { + prepareRequest("/unsecured/document/uploader/mined-data/other-identity/commit") + .withPayload(String.format(OTHER_IDENTITY_PAYLOAD, + TestUtils.parseBirthDate(nonClient.birthNumber()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), + nonClient.birthNumber(), + documentType, + getDateWithFormat(documentExpirationDate, "yyyy-MM-dd"), + nonClient.firstName(), + nonClient.lastName(), + documentID)) + .post() + .andAssertStatus(200); + harness.log("DocumentUploader called other-identity/commit with type: " + documentType); + this.sleep(1); + } + + private void commitBirthCertificate(NonClient child, String parent1BirthNumber, String parent2BirthNumber) { + prepareRequest("/unsecured/document/uploader/mined-data/birth-certificate/commit") + .withPayload(String.format(BIRTH_CERTIFICATE_PAYLOAD, + child.firstName(), + child.lastName(), + child.placeOfBirth(), + TestUtils.parseBirthDate(child.birthNumber()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), + child.birthNumber(), + parent1BirthNumber, + parent2BirthNumber)) + .post() + .andAssertStatus(200); + harness.log("DocumentUploader called birth-certificate/commit"); + this.sleep(1); + } + + private void sleep(int seconds) { + try { + TimeUnit.SECONDS.sleep(seconds); + } catch (InterruptedException var5) { + logger.warn("Sleep throws InterruptedException!", var5); + Thread.currentThread().interrupt(); + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/sb/SbTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/sb/SbTasks.java new file mode 100644 index 0000000..8a69ab5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/sb/SbTasks.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.util.task.sb; + +import cz.moneta.test.dsl.Harness; + +public class SbTasks { + + public static final String PIN = "1234"; + + private final Harness harness; + + public SbTasks(Harness harness) { + this.harness = harness; + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/szrmocktasks/SzrMockTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/szrmocktasks/SzrMockTasks.java new file mode 100644 index 0000000..d0dde1b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/szrmocktasks/SzrMockTasks.java @@ -0,0 +1,118 @@ +package cz.moneta.test.dsl.util.task.szrmocktasks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.szrmock.SzrMockData; +import cz.moneta.test.dsl.szrmock.SzrMockPayload; +import cz.moneta.test.dsl.util.task.wso2.ClientTasks; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.Base64; +import java.util.stream.Stream; + +/** + * FOR LOCAL USE ONLY!!! DO NOT USE IN JENKINS!!! + * To use this in Jenkins, it is necessary to create and configure a technical account for the SZR mock service. + */ +public class SzrMockTasks { + + private final Harness harness; + private final SzrMockPayload payload = new SzrMockPayload(); + private static final String GET_PATH = "/api/v1/internal/szr/mock/get"; + private static final String POST_SAVE_PATH = "/api/v1/internal/szr/mock/save"; + private static final String CONTENT_TYPE_JSON = "application/json"; + + public SzrMockTasks(Harness harness) { + this.harness = harness; + } + + private String generateSzrId() { + String generatedSzrId = Stream.generate(this::getRandomSzrId) + .limit(10) + .filter(szrId -> !szrIdExists(szrId)) + .findFirst() + .orElseThrow(() -> new HarnessException("Generated existing combination 10 times")); + + harness.log("Generated srzId is \"" + generatedSzrId + "\""); + return generatedSzrId; + } + + private String getRandomSzrId() { + String uuid = java.util.UUID.randomUUID().toString(); + return uuid.substring(0, uuid.length() - 6); + } + + public RawRestRequest.Request prepareRequest(String path) { + Credentials cred = AuthSupport.getCredentials("szr-mock", harness); + String token = "Basic " + Base64.getEncoder().encodeToString((cred.getUsername() + ":" + cred.getPassword()).getBytes()); + return harness.withSzrMock() + .prepareRequest() + .withPath(path) + .withHeader("Authorization", token) + .withHeader("Content-Type", CONTENT_TYPE_JSON); + } + + private boolean szrIdExists(String szrId) { + return !prepareRequest(GET_PATH) + .withPayload("{}") + .addField("source", "MOCK") + .addField("szrId", szrId) + .addField("pageNumber", 1) + .post() + .andAssertStatus(200) + .extract("result") + .asText() + .isEmpty(); + } + + private RawRestRequest.Response save(String payload) { + return this.prepareRequest(POST_SAVE_PATH) + .withPayload(payload) + .post() + .andAssertStatus(201); + } + + private void saveE278_5(SzrMockData data) { + this.save(payload.getPayloadE278Slash5(data)); + } + + private void saveE171(SzrMockData data) { + this.save(payload.getPayloadE171(data)); + } + + private void saveE173(SzrMockData data) { + this.save(payload.getPayloadE173(data)); + } + + private void saveE188(SzrMockData data) { + this.save(payload.getPayloadE188(data)); + } + + private void saveE189(SzrMockData data) { + this.save(payload.getPayloadE189(data)); + } + + private void saveE45(SzrMockData data) { + this.save(payload.getPayloadE45(data)); + } + + public void idAndPassE2E(SzrMockData data) { + data.setSzrId(generateSzrId()); + saveE278_5(data); + saveE171(data); + saveE173(data); + saveE188(data); + saveE189(data); + saveE45(data); + new ClientTasks(harness).doClientEgovIdentityComplete( + data.getClient(), + data.getCif(), + data.getLivingPlaceNumber(), + AuthSupport.getCredentials("szr-mock", harness).getUsername(), + "ICB0", + "86006810", + data.getBusCode()); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/udebs/UdebsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/udebs/UdebsTasks.java new file mode 100644 index 0000000..b34d5f0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/udebs/UdebsTasks.java @@ -0,0 +1,109 @@ +package cz.moneta.test.dsl.util.task.udebs; + +import cz.moneta.test.dsl.udebs.Udebs; +import cz.moneta.test.dsl.util.task.udebs.cbljournal.CblJournalTasks; +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.auth.Credentials; +import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.Optional; + +public class UdebsTasks { + + private static final Logger logger = LogManager.getLogger(UdebsTasks.class); + + private final StoreAccessor harness; + + // envelope number from UDEBS + private final String GET_ENVELOPE_QUERY = + "SELECT " + + " cislo_obalky " + + " FROM " + + " ( " + + " SELECT " + + " envelopeid as cislo_obalky " + + " FROM " + + " csdbge.ge_envelopepassw " + + " WHERE " + + " status = 3 " + + " AND envelopetype = 1 " + + " AND sms is null " + + " AND assignedby is null " + + " ORDER BY " + + " dbms_random.random " + + " ) " + + " WHERE " + + " ROWNUM = 1"; + + // envelope number from UDEBS without prefix 0 + private final String GET_ENVELOPE_QUERY_WITHOUT_PREFIX_ZERO = + "SELECT " + + " cislo_obalky " + + " FROM " + + " ( " + + " SELECT " + + " ltrim(TO_CHAR(envelopeid),'0') cislo_obalky " + + " FROM " + + " csdbge.ge_envelopepassw " + + " WHERE " + + " status = 3 " + + " AND envelopetype = 1 " + + " AND sms is null " + + " AND assignedby is null " + + " ORDER BY " + + " dbms_random.random " + + " ) " + + " WHERE " + + " ROWNUM = 1"; + + private final String CHECK_ACC_NUM_INKASO_EXISTS = + "SELECT accountid, " + + " CREDITACCOUNTID, " + + " creditbankid " + + " FROM collectionpermission " + + " WHERE accountid = '#CLIENT_ACC_NUM' " + + " and creditaccountid = '#PARTNER_ACC_NUM' "; + + public UdebsTasks(StoreAccessor harness) { + this.harness = harness; + } + + public CblJournalTasks cblJournal() { + return new CblJournalTasks(harness); + } + + public Credentials findCredentialsByRC(String birthNumber) { + return new Udebs(harness).ib().usernameAndPassword().getUsernameAndPasswordByRc(birthNumber); + } + + private String getEnvelopeNumberFromQuery(String envelopeQuery) { + String envelopeNumber = Optional.of(harness.getEndpoint(UdebsEndpoint.class)) + .map(e -> e.executeSql(envelopeQuery)) + .flatMap(rs -> rs.stream().findFirst()) + .map(r -> r.getValue(0, String.class)) + .orElseThrow(() -> new HarnessException("Error getting envelope number from UDEBS.")); + logger.log(Level.INFO, "Envelope number obtained from UDEBS: {}.", envelopeNumber); + return envelopeNumber; + } + + public String getEnvelopeNumberWithoutPrefixZero() { + return getEnvelopeNumberFromQuery(GET_ENVELOPE_QUERY_WITHOUT_PREFIX_ZERO); + } + + public String getEnvelopeNumber() { + return getEnvelopeNumberFromQuery(GET_ENVELOPE_QUERY); + } + + public boolean isExistInkasoCombination(String clientAccountNumber, String partnerAccountNumber) { + String clientAccNum = StringUtils.leftPad(clientAccountNumber, 10, '0'); + String partnerAccNum = "000000 " + StringUtils.leftPad(partnerAccountNumber, 10, '0'); + return harness.getEndpoint(UdebsEndpoint.class) + .executeSql(CHECK_ACC_NUM_INKASO_EXISTS.replaceAll("#CLIENT_ACC_NUM", clientAccNum).replaceAll("#PARTNER_ACC_NUM", partnerAccNum)) + .isNotEmpty(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/udebs/cbljournal/CblJournalTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/udebs/cbljournal/CblJournalTasks.java new file mode 100644 index 0000000..2872e81 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/udebs/cbljournal/CblJournalTasks.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.util.task.udebs.cbljournal; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import org.jooq.Record; +import org.jooq.Result; + +public class CblJournalTasks { + private final StoreAccessor harness; + + public CblJournalTasks(StoreAccessor harness) { + this.harness = harness; + } + + private UdebsEndpoint getEndpoint() { + return harness.getEndpoint(UdebsEndpoint.class); + } + + public Result selectFromCblJournal(String apiname, int daysInPast, int channelId, String serverId) { + return getEndpoint().executeSql( + "SELECT * FROM CBL_JOURNAL WHERE " + + " APINAME = '" + apiname + "' " + + " AND REQUESTTIMESTAMP > SYSDATE - " + daysInPast + + " AND STATUS = 1" + + " AND CHANNELID = " + channelId + + (serverId == null ? "" : " AND SERVERID LIKE '%" + serverId + "%'") + + " ORDER BY REQUESTTIMESTAMP DESC"); + } + + public Result selectFromCblJournalByUserId(Long userId) { + String sql = "SELECT * FROM CBL_JOURNAL WHERE " + + " USERID = " + userId + + " AND REQUESTTIMESTAMP > SYSDATE - 1" + + " ORDER BY REQUESTTIMESTAMP DESC"; + harness.log("Executing SQL: " + sql); + return getEndpoint().executeSql(sql); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/UfoTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/UfoTasks.java new file mode 100644 index 0000000..363a202 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/UfoTasks.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dsl.util.task.ufo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.ufoframework.tasks.FunctionalTestsTasks; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; + +public class UfoTasks { + + private final Harness harness; + + public UfoTasks(Harness harness) { + this.harness = harness; + } + + public BankaTasks banka() { + return new BankaTasks(harness); + } + + public OperationsTasks operations() { + return new OperationsTasks(harness); + } + + public CommercialTasks cb() { + return new CommercialTasks(harness); + } + + public FunctionalTestsTasks functionalTests() { + return new FunctionalTestsTasks(harness); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/cb/CommercialTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/cb/CommercialTasks.java new file mode 100644 index 0000000..c90765e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/cb/CommercialTasks.java @@ -0,0 +1,354 @@ +package cz.moneta.test.dsl.util.task.ufo.cb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisAllObrazovkySME; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.cb.landing.AUT402_S001_KOCriteriaListPage; +import cz.moneta.test.dsl.ufo.cb.landing.IKL402_S001_ClientPage; +import cz.moneta.test.dsl.ufo.cb.landing.SME451_S001_UfoCbLandingPage; +import cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.*; +import cz.moneta.test.dsl.ufo.common.authentication.UfoLoginPage; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NewClientCommercial; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.wso2.ClientTasks; +import cz.moneta.test.dsl.util.task.wso2.ComodaTasks; +import cz.moneta.test.harness.endpoints.testautomationdb.TestAutomationDbEndpoint; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.web.Lookup; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.cb.landing.AUT402_S001_KOCriteriaListPage.KO_CRITERIA_CALCULATION_TIME_KEY; +import static cz.moneta.test.dsl.ufo.cb.landing.IKL402_S001_ClientPage.INVOLVEMENT_CALCULATION_TIME_KEY; +import static cz.moneta.test.dsl.ufo.cb.landing.proposal.pages.JAN436_S001_AlertPage.PAGE_DIV; +import static cz.moneta.test.harness.support.data.GeneratorType.ICO; +import static cz.moneta.test.harness.support.data.GeneratorType.RC; + +public class CommercialTasks { + + private final Harness harness; + public static final String JIRA_COMMENT_STORE_KEY = "reports.tmfj.execution.comment"; + + public CommercialTasks(Harness harness) { + this.harness = harness; + } + + public NonClient createNewGlobalFopFe() { + return harness.getGlobal("GLOBAL_FOP_FE", () -> { + Credentials credentials = AuthSupport.getCredentials(Keys.ufo.banka.banker, harness); + + BankaTasks withBanka = harness.tasks().ufo().banka(); + + String birthNumber = harness.generate(RC); + + NonClient fop = harness.data().newNonClient() + .withBirthNumber(birthNumber) + .withEmail(TestUtils.getEmailBasedOnRc(birthNumber)); + + harness.withUfo() + .openLoginPage() + .then(withBanka.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(withBanka.newFopClient().createFopCif(fop)) + .verifyThatCifIsValid(); + + return fop; + }); + } + + public void appendJiraComment(String anotherComment) { + String currentComments = harness.get(JIRA_COMMENT_STORE_KEY); + String updatedComment = currentComments + anotherComment + "
"; + harness.store(JIRA_COMMENT_STORE_KEY, updatedComment); + } + + public NewClientCommercial createNewGlobalFopBe() { + return harness.getGlobal("GLOBAL_FOP_BE", this::createNewFop); + } + + public NewClientCommercial createNewFop() { + ClientTasks tasks = harness.tasks().wso2().client(); + Credentials credentials = AuthSupport.getCredentials(Keys.ufo.banka.banker, harness); + String createdDateTime = DateUtils.getFormattedTodayDateTime("yyyy-MM-dd hh:mm:ss"); + + String birthNumber = harness.generate(RC); + String ico = harness.generate(ICO); + + NonClient fop = harness.data().newNonClient() + .withBirthNumber(birthNumber) + .withEmail(TestUtils.getEmailBasedOnRc(birthNumber)) + .withIco(ico); + + String cifFo = tasks.createCifFo(fop); + harness.getEndpoint(TestAutomationDbEndpoint.class) + .insertCreatedClientInfo(cifFo, fop.birthNumber(), null, createdDateTime, credentials.getUsername(), "MWF", null); + + String cifFop = tasks.createCifFop(fop, credentials.getUsername()); + harness.getEndpoint(TestAutomationDbEndpoint.class) + .insertCreatedClientInfo(cifFop, fop.birthNumber(), fop.ico(), createdDateTime, credentials.getUsername(), "MWF", null); + + tasks.relationFoFop(cifFo, cifFop); + Long personId = harness.tasks().wso2().comoda().createAndGetClientId(fop.ico()); + NewClientCommercial newClientCommercial = new NewClientCommercial(fop, cifFop, personId); + harness.log("Created FO cif: " + cifFo); + harness.log("Created FOP cif: " + cifFop); + harness.log("Created FOP ico: " + ico); + harness.log("Created FOP ID OSOBY: " + personId.toString()); + return newClientCommercial; + } + + public void linkNewFopClientToSalesForce(NewClientCommercial newClientCommercial) { + harness.withUfo() + .openLoginPage() + .then(loginAsCbSalesSupport()) + .clickCreateToSalesForceLink() + .selectClientType("FOP") + .fillIco(newClientCommercial.getClientData().ico()) + .fillSubjectName(newClientCommercial.getClientData().fullName()) + .fillStreetName(newClientCommercial.getClientData().residencyAddress().getStreet()) + .fillStreetNumber(newClientCommercial.getClientData().residencyAddress().getOrientationNumber()) + .fillCityName(newClientCommercial.getClientData().residencyAddress().getCity()) + .fillDistrict(newClientCommercial.getClientData().residencyAddress().getCity()) + .fillCityPart(newClientCommercial.getClientData().residencyAddress().getCityPart()) + .fillZipCode(newClientCommercial.getClientData().residencyAddress().getZip()) + .fillRegion(newClientCommercial.getClientData().residencyAddress().getCity()) + .clickCreate() + .clickContinue(); + } + + public void editPages(Long idNavrh, HCisAllObrazovkySME[] pages, String state) { + ComodaTasks comodaTasks = harness.tasks().wso2().comoda(); + for (HCisAllObrazovkySME page : pages) { + comodaTasks.editPage(idNavrh, page, state); + } + } + + private Function withCbCredentials(Credentials credentials) { + return start -> start.typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onUfoCbPage(); + } + + private Function withCbCredentialsAndSelectFirstOM(Credentials credentials) { + return start -> start.typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectFirstOmIfPresent() + .selectUfoCommercialBankingAndContinue(); + } + + public Function loginAsCbBanker() { + Credentials credentials = AuthSupport.getCredentials(Keys.ufo.cb.bankerFiremniKlientela, harness); + return this.withCbCredentials(credentials); + } + + public Function loginAsCbSalesSupport() { + Credentials credentials = AuthSupport.getCredentials(Keys.ufo.cb.salesSupport, harness); + return this.withCbCredentialsAndSelectFirstOM(credentials); + } + + public Function loginAsCbBankerAndSelectFirstOM() { + Credentials credentials = AuthSupport.getCredentials(Keys.ufo.cb.bankerFiremniKlientela, harness); + return this.withCbCredentialsAndSelectFirstOM(credentials); + } + + public Function loginAsCbContractualDocumentAdministratorAndSelectFirstOM() { + Credentials credentials = AuthSupport.getCredentials(Keys.ufo.cb.ctenar, harness); + return this.withCbCredentialsAndSelectFirstOM(credentials); + } + + public Function loginAsCbContractualDocumentAdministrator() { + Credentials credentials = AuthSupport.getCredentials(Keys.ufo.cb.ctenar, harness); + return this.withCbCredentials(credentials); + } + + public Function loginAsCbReader() { + Credentials credentials = AuthSupport.getCredentials(Keys.ufo.cb.ctenar, harness); + return this.withCbCredentials(credentials); + } + + public Function searchClient(String ico) { + return start -> start.clickSearchLink().pickIco().typeDetailForSearch(ico).clickSearch(); + } + + public ProposalTasks proposalTasks() { + return new ProposalTasks(); + } + + public Function checkFirstInvolvementCalculation() { + return start -> start + .calculateInvolvement() + .waitForCalculation() + .checkCalculatedTimeNotEmpty(); + } + + public Function checkNotFirstInvolvementCalculation() { + return start -> start + .storeLastInvolvementCalculationTime() + .calculateInvolvement() + .waitForCalculation() + .checkChangeOfCalculatedTime(harness.get(INVOLVEMENT_CALCULATION_TIME_KEY)); + } + + /** + * Data inconsistency means that we do not know, if involvement was historically already calculated or not. + * + * @return + */ + public Function checkInvolvementCalculation() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + String text = endpoint.getText(IKL402_S001_ClientPage.CALCULATION_TIME_DIV, Lookup.ID); + if (text.isEmpty()) { + return start -> start + .then(checkFirstInvolvementCalculation()); + } else { + return start -> start + .then(checkNotFirstInvolvementCalculation()); + } + } + + public Function checkFirstKOCriteriaCalculation() { + return start -> start + .clickRunKOCalculation() + .checkCalculatedTimeNotEmpty() + .checkFirstKOCriteriumIsPresent(); + } + + public Function checkNotFirstKOCriteriaCalculation() { + return start -> start + .logSecondWindowSessionId() + .storeLastKOCriteriaCalculationTime() + .clickRunKOCalculation() + .checkChangeOfCalculatedTime(harness.get(KO_CRITERIA_CALCULATION_TIME_KEY)) + .checkFirstKOCriteriumIsPresent(); + } + + /** + * Data inconsistency means that we do not know, if KO Criteria were historically already calculated or not. + * + * @return + */ + public Function checkKOCriteriaCalculation() { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + String text = endpoint.getText(AUT402_S001_KOCriteriaListPage.CALCULATION_TIME_DIV, Lookup.ID); + + if (text.isEmpty()) { + return start -> start + .then(checkFirstKOCriteriaCalculation()); + } else { + return start -> start + .then(checkNotFirstKOCriteriaCalculation()); + } + } + + public Function skipAlertPageIfPresent(Harness harness) { + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible(3, PAGE_DIV, Lookup.ID)) { + return start -> start + .onAlertPage() + .clickContinue(); + } else { + return start -> start + .onFinancialSheets(); + } + } + + public Function checkDetailClientInfo() { + return start -> start + .clickDetailedClientInfo() + .checkOMIsNotEmpty() + .checkClientsBankerIsNotEmpty() + .checkAdministratorIsNotEmpty() + .clickCloseDetailedClientInfo(); + } + + public Function createFinancialSheet() { + return start -> start + .clickIndividualFinancialSheets() + .clickOlderVersions() + .clickFilter() + .storeFinancialSheetsCountOlderVersionsIncluded() + .then(constructFinancialSheet()) + .checkFinancialSheetCreatedSuccessfully(); + } + + public Function constructFinancialSheet() { + return start -> start + .clickCreateFinancialSheet() + .then(fillFinancialSheetMandatoryInformation()) + .clickFillSheet() + .clickExisitingFinancialSheetContinueIfVisible() + .then(skipAlertPageIfPresent(harness)) + .then(doNeccessaryCountingsForEstablishingFinancialSheet()) + .clickAnalysis() + .clickWait(); + } + + public Function doNeccessaryCountingsForEstablishingFinancialSheet() { + return start -> start + .clickAssetsDoCount() + .clickAssetsNext() + .clickRunningAssetsDoCount() + .clickRunningAssetsNext() + .clickPassivesDoCount() + .clickPassivesNext() + .clickShortTermCommitmentsDoCount() + .clickShortTermCommitmentsNext() + .clickIncomeStatementDoCount() + .clickIncomeStatementNext() + .clickIncomeStatement2DoCount(); + } + + private Function fillFinancialSheetMandatoryInformation() { + return start -> start + .fillClientIfEmpty() + .fillICOIfEmpty() + .fillEstablishmentDateIfEmpty("1.1.2016") + .fillCzNacePercentage("100") + .selectMarketShareIfEmpty("<5%") + .clickAccountingPUDoubly() + .selectUnits("Jednotky") + .selectCurrency("CZK") + .clickNotSeasonal() + .fillSheetsToDate("31.12.2023") + .selectSheetType("Auditované") + .fillMonthsInWatchedPeriodCount("12") + .fillAuditor("Auditor") + .fillCertificateNuber("12345644") + .selectAuditorsStatement("Bez výhrad") + .selectSheetImage("Od 2016") + .selectSheetForm("Plná") + .selectCzNace1IfEmpty("010000"); + } + + public Function checkLoadOfScreens() { + return start -> start + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage() + .clickNextPage(); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/cb/ProposalTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/cb/ProposalTasks.java new file mode 100644 index 0000000..017232f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/cb/ProposalTasks.java @@ -0,0 +1,125 @@ +package cz.moneta.test.dsl.util.task.ufo.cb; + +import cz.moneta.test.dsl.ufo.cb.landing.IKL402_S001_ClientPage; +import cz.moneta.test.dsl.ufo.cb.landing.KOM401_S001_ProposalParameters; +import cz.moneta.test.dsl.ufo.cb.landing.KOM402_S001_ProposalSignpost; +import cz.moneta.test.dsl.ufo.cb.landing.SME451_S001_UfoCbLandingPage; +import cz.moneta.test.dsl.ufo.cb.landing.proposals.Proposal; +import cz.moneta.test.dsl.util.DateUtils; + +import java.time.LocalDate; +import java.util.function.Function; + +import static cz.moneta.test.dsl.util.DateFormatPatterns.CZ_DATE_FORMAT; + +public final class ProposalTasks { + public ProposalTasks() { + + } + + public String getValidDrawingDate() { + LocalDate localDate = LocalDate.now(); + localDate = localDate.plusMonths(1); + localDate = localDate.withDayOfMonth(19); + return DateUtils.getDateWithFormat(localDate, CZ_DATE_FORMAT); + } + + public Function createProposal() { + return start -> start.clickNewProposal().clickOpportunity().clickContinue(); + } + + private Function fillBasicParameters(Proposal proposal) { + return start -> start.typeAmount(proposal.getAmount()) + .selectCharacterType(proposal.getCharacterType()); + } + + private Function fillDates(Proposal proposal) { + return start -> start.typeSignDate(proposal.getSignDate()) + .typeLastDrawingDate(getValidDrawingDate()); + } + + private Function fillProposalLoanType(Proposal proposal) { + return start -> start.selectProposalType(proposal.getProposalType()) + .selectLoanType(proposal.getLoanType()); + } + + private Function fillProductTypeLoanPurpose(Proposal proposal) { + return start -> start.selectProductType(proposal.getProductType()) + .selectLoanPurpose(proposal.getLoanPurpose()); + } + + public Function fillProposalEuInvestment(Proposal proposal) { + return start -> start.then(fillBasicParameters(proposal)) + .then(fillProposalLoanType(proposal)) + .selectLoanPurpose(proposal.getLoanPurpose()) + .then(fillDates(proposal)) + .selectSupport(proposal.getSupport()) + .selectRwaFlag(proposal.getRwaFlag()); + } + + public Function fillProposalCreditLine(Proposal proposal) { + return start -> start.then(fillBasicParameters(proposal)) + .then(fillProductTypeLoanPurpose(proposal)) + .selectCommitted(proposal.getCommitted()) + .then(fillDates(proposal)); + } + + public Function fillProposalEuWc(Proposal proposal) { + return start -> start.then(fillBasicParameters(proposal)) + .then(fillProposalLoanType(proposal)) + .then(fillProductTypeLoanPurpose(proposal)) + .selectCommitted(proposal.getCommitted()) + .selectMaturity(proposal.getMaturity()) + .then(fillDates(proposal)); + } + + public Function fillProposalFlexiWc(Proposal proposal) { + return start -> start.then(fillBasicParameters(proposal)) + .then(fillProposalLoanType(proposal)) + .then(fillProductTypeLoanPurpose(proposal)) + .selectCommitted(proposal.getCommitted()) + .selectMaturity(proposal.getMaturity()) + .then(fillDates(proposal)); + } + + public Function fillProposalGeneralWarranty(Proposal proposal) { + return start -> start.then(fillBasicParameters(proposal)) + .selectProposalType(proposal.getProposalType()) + .selectProductType(proposal.getProductType()) + .selectCommitted(proposal.getCommitted()) + .then(fillDates(proposal)); + } + + public Function proposalSignpost(String proposalId) { + return start -> start.selectProposal(proposalId) + .clickProcessButton() + .clickSignPost(); + } + + public Function fillAll(Proposal proposal) { + return start -> start.then(fillBasicParameters(proposal)) + .then(fillProposalLoanType(proposal)) + .then(fillProductTypeLoanPurpose(proposal)) + .then(fillDates(proposal)) + .selectSupport(proposal.getSupport()) + .selectInsurance(proposal.getInsurance()); + } + + public Function saveProposal(Proposal proposal) { + return start -> start.clickSave() + .clickContinueButton() + .saveProposalId(proposal) + .clickOkButton(); + } + + public Function deleteProposal(String proposalId) { + return start -> start.selectProposal(proposalId) + .clickProcessButton() + .clickSaveSignPost() + .clickDeleteAndConfirm() + .clickYes() + .selectWho("Klient") + .selectReason("Jiné") + .clickDelete(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/BankBackOfficeTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/BankBackOfficeTasks.java new file mode 100644 index 0000000..26a2787 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/BankBackOfficeTasks.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; + +import java.util.function.Function; + +public class BankBackOfficeTasks { + + private final Harness harness; + + public BankBackOfficeTasks(Harness harness) { + this.harness = harness; + } + + public Function setVipExchangeRateList() { + return start -> start + .clickAccountBenefits() + .clickVipExchangeRateList() + .clickVipExchangeRateListCheckbox() + .setVipExchangeRateList() + .onPrintTemplatePage() + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDetailPage(); + } + + public Function removeVipExchangeRateList() { + return start -> start + .clickAccountBenefits() + .clickVipExchangeRateList() + .clickVipExchangeRateListCheckbox() + .setVipExchangeRateList() + .onClientDetailPage(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/BlacklistWhitelistTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/BlacklistWhitelistTasks.java new file mode 100644 index 0000000..fee5af2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/BlacklistWhitelistTasks.java @@ -0,0 +1,60 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.operations.main.codelists.HCisBLDuvodVlozeni; +import cz.moneta.test.dsl.ufo.operations.main.codelists.HCisBLTypAkce; +import cz.moneta.test.dsl.ufo.operations.search.BLK701_S001_BlacklistWhitelist; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +public class BlacklistWhitelistTasks { + private final Harness harness; + + public BlacklistWhitelistTasks(Harness harness) { + this.harness = harness; + } + + public void openUfoOpsAndAddToRcBlacklist(String birthNumber, Credentials credentials) { + harness.withUfoSecondInstance() + .openLoginPage() + .then(harness.tasks().ufo().operations().login().withCredentials(credentials)) + .then(addClientRcToBlacklist(birthNumber, HCisBLDuvodVlozeni.BILY_KUN, HCisBLTypAkce.OVEROVAT, "Test")); + } + + public Function addClientRcToBlacklist(String birthNumber, HCisBLDuvodVlozeni reason, HCisBLTypAkce actionType, String note) { + return start -> start + .clickBlacklistWhitelist() + .then(addToRcBlacklist(birthNumber, reason, actionType, note)) + .clickHomePage(); + } + + public Function addToRcBlacklist(String birthNumber, HCisBLDuvodVlozeni reason, HCisBLTypAkce actionType, String note) { + return start -> start.selectBlacklistType("BlackList RČ") + .fillRCSearchInput(birthNumber) + .clickCheck() + .fillNote(note) + .selectReason(reason.getValue()) + .selectActionType(actionType.getValue()) + .clickInsert(); + } + + public Function addToRcBlacklistFromUfoBankaAndSwitchBackToClient(String birthNumber) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + return start -> start + .clickSearch() + .clickLoginMenu() + .selectFirstOmIfPresent() + .selectUfoOperationsAndContinueWithoutOmSelect() + .then(addClientRcToBlacklist(birthNumber, HCisBLDuvodVlozeni.BILY_KUN, HCisBLTypAkce.OVEROVAT, "Test")) + .clickChangeApplication() + .clickUfoBanka() + .then(bankaTasks.login().turnSignpadOff()) + .then(bankaTasks.search().searchByRc(birthNumber)); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ChangeContactAddressTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ChangeContactAddressTasks.java new file mode 100644 index 0000000..3407a66 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ChangeContactAddressTasks.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.ZKU704_S001_ChangeContactData; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; + + +import java.util.function.Function; + +public class ChangeContactAddressTasks { + private final Harness harness; + + public ChangeContactAddressTasks(Harness harness) { + this.harness = harness; + } + + public Function changeAddressByCondition() { + if (harness.getEndpoint(UfoEndpoint.class).getText(ZKU704_S001_ChangeContactData.ADDRESS).equals("Na Kameni")) { + return start -> start + .then(harness.tasks().ufo().operations().changeContactAddressTasks().changeAnotherAddress()); + } else{ + return start -> start + .then(harness.tasks().ufo().operations().changeContactAddressTasks().changeAddress()); + } + } + + public Function changeAddress() { + return page -> page + .clickSaveAddress() + .typePartAddress("Na Kameni 44") + .clickSearchAddress() + .clickChooseAddress() + .clickSaveAddress(); + } + public Function changeAnotherAddress() { + return page -> page + .clickSaveAddress() + .typePartAddress("Dlouhá 928") + .clickSearchAddress() + .clickChooseAddress() + .clickSaveAddress(); + } + + public Function changeToWrongAddress() { + return page -> page + .fillStreet("Dlouhá") + .fillDescriptionNumber("928") + .fillOrientationNumber("1a") + .fillPostalCode("110 00") + .fillDistrictNumber("Staré Město") + .fillCity("Praha") + .clickSaveAddress() + .assertWarning("Nebyl nalezen žádný adresný bod, prosím o konkrétnější specifikaci adresy !") + .closeSearchAddress(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ClientDetailsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ClientDetailsTasks.java new file mode 100644 index 0000000..41a5997 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ClientDetailsTasks.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.STO702_S002_ApproveAlreadyReadPage; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.client.NewProductsByNameUfoOps; +import cz.moneta.test.dsl.ufo.operations.client.NewProductsUfoOps; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.contactForwarding.XCM701_S001_ContactForwardingPage; + +import java.util.function.Function; + +public class ClientDetailsTasks { + + private final Harness harness; + + public ClientDetailsTasks(Harness harness) { + this.harness = harness; + } + + public Function createNewProduct(NewProductsUfoOps newProduct) { + return start -> start.selectNewProductForActivation(newProduct) + .confirmAddProduct(); + } + + public Function createNewProductByName(NewProductsByNameUfoOps newProduct) { + return start -> start.selectNewProductByNameForActivation(newProduct) + .confirmAddProduct(); + } + + public Function stepsOnContactForwarding(String rcOfExistingClient) { + return start -> start.then(harness.tasks().ufo().operations().searchClient().byRc(rcOfExistingClient)) + .clickContactForwarding(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/CurrentAccountTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/CurrentAccountTasks.java new file mode 100644 index 0000000..8321706 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/CurrentAccountTasks.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.PSP701_S001_AmortizationPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.TRA701_S001_Transactions; + +import java.util.function.Function; + +public class CurrentAccountTasks { + + private final Harness harness; + + public CurrentAccountTasks(Harness harness) { + this.harness = harness; + } + + public Function stepsToFirstAccountStatement(String rc) { + return start -> start.fillSearchInput(rc) + .clickSearchClient() + .onClientDetailsPage() + .clickAccountList() + .selectFirstCurrentAccCombobox(1) + .checkAccountState("Otevřený") + .clickTransactions() + .clickFirstAccountStatementCheckbox(); + } + + public Function checkIbSbCheckboxAndCheckRequirement(){ + return start -> start.checkIfIBSBIsChecked() + .clickSendButton() + .onTransactionsPage() + .clickBack() + .clickDemand() + .clickRefreshRequirementButton() + .checkDemandDescriptionFirstRow("UFO - Bězný účet - Výpisy - Zaslání přes KC") + .clickRefreshClientButton(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/DebitCardChangesTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/DebitCardChangesTasks.java new file mode 100644 index 0000000..61c9fde --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/DebitCardChangesTasks.java @@ -0,0 +1,64 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.PLK708_S001_DataChangesPage; +import cz.moneta.test.dsl.util.data.client.Address; + +import java.util.function.Function; + +public class DebitCardChangesTasks { + + private final Harness harness; + + public DebitCardChangesTasks(Harness harness) { + this.harness = harness; + } + + public Function searchClientAndCheckNumberofCard(String rc) { + return start -> start.fillSearchInput(rc) + .clickSearchClient() + .onClientDetailsPage() + .clickDebitCard() + .selectPickNewDebitCardCombobox(1) + .checkNumberOfCard(); + } + + public Function stepsToTurnOnInternetPayments() { + return start -> start.clickTransactionsSettings() + .clickInternetTransactionsOn() + .clickSaveSettings() + .checkPaymentsThroughMotoInternet("Zapnuto - vše") + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement(); + } + + public Function stepsToTurnOffInternetPayments() { + return start -> start.clickDebitCard() + .clickTransactionsSettings() + .clickInternetTransactionsOff() + .clickSaveSettings() + .checkPaymentsThroughMotoInternet("Vypnuto - vše") + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement(); + } + + public Function setSendingAddressAndCheckChange(Address address, String postOffice, String requirementFirstRowText) { + return start -> start.selectAddressForSending("Adresa OM") + .selectOMAddressForSending(address.getCity().toUpperCase() + " - " + address.getStreet() + " " + address.getDescriptiveNumber()) + .checkStreetInput(address.getStreet()) + .checkVillageInput(address.getCity()) + .checkPostalCodeInput(address.getZip()) + .checkDescriptiveNumberInput(address.getDescriptiveNumber()) + .checkPostOfficeInput(postOffice) + .clickSaveButton() + .checkDebitCardSendingAddressStreetLabel(address.getStreet() + " " + address.getDescriptiveNumber()) + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow(requirementFirstRowText); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/DocumentProcessTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/DocumentProcessTasks.java new file mode 100644 index 0000000..b525289 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/DocumentProcessTasks.java @@ -0,0 +1,92 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskDetail; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.concurrent.ThreadLocalRandom; +import java.util.function.Function; + +import static cz.moneta.test.dsl.util.DateFormatPatterns.CZ_DATE_FORMAT; +import static cz.moneta.test.dsl.util.DateUtils.getDateWithFormat; +import static cz.moneta.test.dsl.util.DateUtils.getTodayRawDate; + +public class DocumentProcessTasks { + + public static final String CZ_COUNTRY = "Česká republika"; + public static final String DEF_OWNER = "Klient"; + public static final String DEFAULT_TEXT = "HARNESS SAID ITS OK"; + private final Harness harness; + + public DocumentProcessTasks(Harness harness) { + this.harness = harness; + } + + public Function findTask(String birthday) { + return page -> page.clickTasks() + .fillBirthNumber(birthday) + .clickDepartments() + .clickFind(); + } + + public Function selectTaskAndProcessAccountStatement(NonClient nonClient) { + return page -> page + .clickToFirstTask() + .clickProcessFirstAttachment() + .clickAccountStatement() + .fillLastName(nonClient.lastName()) + .fillSurname(nonClient.firstName()) + .fillAccountNumber(String.valueOf(ThreadLocalRandom.current().nextInt(100000000, 999999999))) + .selectOwnerBU(DEF_OWNER) + .fillSenderIntake(nonClient.employer().getName()) + .fillFirstIncome(String.valueOf(nonClient.netMonthlyIncome())) + .fillSecondIncome(String.valueOf(nonClient.netMonthlyIncome())) + .fillThirdIncome(String.valueOf(nonClient.netMonthlyIncome())) + .fillConfirmationDate(getDateWithFormat(getTodayRawDate(), CZ_DATE_FORMAT)) + .selectCountry(CZ_COUNTRY) + .clickStamp() + .clickSend() + .clickNextSend() + .clickLastSend() + .closeWindow(); + } + + public Function selectTaskAndConfirmationOfStatement(NonClient nonClient) { + return page -> page + .clickToFirstTask() + .clickProcessFirstAttachment() + .clickConfirmationOfIncome() + .fillLastName(nonClient.lastName()) + .fillSurname(nonClient.firstName()) + .fillEmployedSince(getDateWithFormat(nonClient.occupationEmploymentFromRaw(), CZ_DATE_FORMAT)) + .selectEmployemntType(nonClient.occupationStatus().getUfoConfirmationOfReceiptValue()) + .fillEmploymentTillIfPresent(nonClient) + .fillNetEarnings(String.valueOf(nonClient.netMonthlyIncome())) + .fillInstalment(String.valueOf(nonClient.otherExpenses())) + .fillWageDeductions(String.valueOf(nonClient.wageDeductions())) + .fillDependingPeople(String.valueOf(nonClient.dependants())) + .fillEmployerIco(nonClient.employer().getIco()) + .fillEmployerName(nonClient.employer().getName()) + .fillEmployerStreet(nonClient.employer().getAddress().getStreet()) + .fillDescriptionNumber(nonClient.employer().getAddress().getDescriptiveNumber()) + .fillOrientationNumber(nonClient.employer().getAddress().getOrientationNumber()) + .fillEmployerCity(nonClient.employer().getAddress().getCity()) + .fillEmployerPostCode(nonClient.residencyAddress().getZip()) + .fillIssueDate(getDateWithFormat(getTodayRawDate(), CZ_DATE_FORMAT)) + .clickStamp() + .clickSignature() + .clickSend() + .clickSendAgree() + .clickFinalAgree() + .closeWindow(); + } + + public Function finishDeputizeTask() { + return page -> page + .clickFinishProcess() + .selectSolver(2) + .fillCommentAndClickAgreeFinish(DEFAULT_TEXT); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/GdprTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/GdprTasks.java new file mode 100644 index 0000000..0f65e42 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/GdprTasks.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.STO704_S001_ClientConsentsPage; + +import java.util.function.Function; + +public class GdprTasks { + + private final Harness harness; + + public GdprTasks(Harness harness) { + this.harness = harness; + } + + public Function checkIfEmailConsentIsChange() { + return start -> start.checkEmailMMBConsents("odvolaný") + .checkEmailMAConsents("odvolaný") + .checkEmailMLConsents("odvolaný") + .checkEmailWHBConsents("odvolaný") + .checkEmailMSSConsents("odvolaný"); + } + + public Function checkIfPostConsentIsChange() { + return start -> start.checkPostMMBConsents("odvolaný") + .checkPostMAConsents("odvolaný") + .checkPostMLConsents("odvolaný") + .checkPostWHBConsents("odvolaný") + .checkPostMSSConsents("odvolaný"); + } + + public Function checkIfTypeOfConsentAreChanged() { + return start -> start.checkTypeOfConsent("Souhlas se zasíláním marketingových nabídek telefonem") + .checkPostConsent("Souhlas se zasíláním marketingových nabídek poštou") + .checkIBSBConsent("Souhlas se zasíláním marketingových nabídek do Internet Banky/SmartBanky") + .checkSurveyConsent("Souhlas se zasíláním marketingových průzkumů") + .checkSMSConsent("Souhlas se zasíláním marketingových nabídek SMS zprávou") + .checkEmailConsent("Souhlas se zasíláním marketingových nabídek e-mailem (mj. ATM, Sociální sítě, Instant Messaging)"); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/InfoServiceTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/InfoServiceTasks.java new file mode 100644 index 0000000..6d106be --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/InfoServiceTasks.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.NewProductsUfoOps; +import cz.moneta.test.dsl.ufo.operations.client.STO702_S002_ApproveAlreadyReadPage; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_AdcProductsPanel; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; + +import java.util.function.Function; + +public class InfoServiceTasks { + private final Harness harness; + + public InfoServiceTasks(Harness harness) { + this.harness = harness; + } + + public Function selectInfoServiceProductAndCheckDetails() { + return start -> start.clickCommunicationsReminders() + .selectNewProductForActivation(NewProductsUfoOps.ADC_INFO_SERVIS) + .confirmAddProduct() + .checkOmOfConsentSigning() + .checkDateOfSigningConsent(); + } + + public Function checkStartTimeAndEndTime(String startTime, String endTime) { + return start -> start.checkStartTimeDetailOfOrder(startTime) + .checkEndTimeDetailOfOrder(endTime); + } + + public Function fillEmailAndPhoneNumberInExpressSettings(String email, String phoneNumber) { + return start -> start.fillEmailInputInExpressSettings(email) + .fillTelephoneInputInExpressSettings(phoneNumber); + } + + public Function selectStartTimeAndEndTimeInExpressSettings(String startTime, String endTime) { + return start -> start.selectStartTimeInExpressSettings(startTime) + .selectEndTimeInExpressSettings(endTime); + } + + public Function selectStartTimeAndEndTimeInDetailOfOrder(String startTime, String endTime) { + return start -> start.selectStartTimeInDetailOfOrder(startTime) + .selectEndTimeInDetailOfOrder(endTime); + } + + public Function editSmsSectionInDetailOfOrder(String phoneNumber, String balance, String startTime, String endTime) { + return start -> { + STS701_S002_AdcProductsPanel p = start.clickSmsInDetailOfOrder() + .fillTelephoneInputInDetailOfOrder(phoneNumber); + if (balance != null) { + p.fillBalanceFrom(balance); + } + return p.then(selectStartTimeAndEndTimeInDetailOfOrder(startTime, endTime)) + .clickSave(); + }; + } + + public Function editEmailSectionInDetailOfOrder(String email, String balance, String startTime, String endTime) { + return start -> { + STS701_S002_AdcProductsPanel p = start.clickEmailInDetailOfOrder() + .fillEmailInputDetailOfOrder(email); + if (balance != null) { + p.fillBalanceFrom(balance); + } + return p.then(selectStartTimeAndEndTimeInDetailOfOrder(startTime, endTime)) + .clickSave(); + }; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/LoginTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/LoginTasks.java new file mode 100644 index 0000000..f0d113d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/LoginTasks.java @@ -0,0 +1,78 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.common.authentication.UfoLoginPage; +import cz.moneta.test.dsl.ufo.operations.error.ERR701_S001_LDAPErrorPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.BOX701_DataBoxes; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.EXT701_S001_ExternalPartnersMainPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.businessSupport.ROZ702_S001_BusinessSupportMainPage; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +public final class LoginTasks { + private final Harness harness; + + public LoginTasks(Harness harness) { + this.harness = harness; + } + + public Function asBanker() { + Credentials auth = AuthSupport.getCredentials(banker, harness); + return start -> start.typeUserNameAndPasswordAndClickLogin(auth.getUsername(), auth.getPassword()) + .onApplicationSelectPage() + .selectUfoOperationsAndContinueWithoutOmSelect(); + } + + public Function withCredentials(Credentials credentials) { + return start -> start.typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectUfoOperationsAndContinueWithoutOmSelect(); + } + + public Function withCredentialsAndSelectFirstOM(Credentials credentials) { + return start -> start.typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectOm(1) + .selectUfoOperationsAndContinueWithoutOmSelect(); + } + + public Function withCredentialsSelectHQ(Credentials credentials) { + return start -> start.typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectUfoOperationsAndHQContinue(); + } + + public Function withCredentialsSelectExternalPartners(Credentials credentials) { + return start -> start.typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectExternalPartnersAndContinueWithoutOMSelect(); + } + + public Function withCredentialsSelectBusinessSupport(Credentials credentials) { + return start -> start.typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectBusinessSupportAndContinueWithoutOmSelect(); + } + + public Function withCredentialsExpectingError(Credentials credentials) { + return start -> start.typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectUfoOperationsAndContinueToLDAPErrorPage(); + } + + public Function withCredentialsSelectDataboxes(Credentials credentials) { + return start -> start.typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectDataboxesAndContinueWithoutOmSelect(); + } + + public Function withSecondBankerCredentials(Credentials credentials) { + return start -> start.typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onClientSearchPageUfoOperations(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ManualFraudCheckTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ManualFraudCheckTasks.java new file mode 100644 index 0000000..daabbc5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ManualFraudCheckTasks.java @@ -0,0 +1,118 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.ACQ702_S010_Fraud; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskDetail; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList; + +import java.util.function.Function; + +public class ManualFraudCheckTasks { + + private final Harness harness; + + public ManualFraudCheckTasks(Harness harness) { + this.harness = harness; + } + + public Function findFraudTaskByBirthNumber(String birthday) { + return page -> page.clickTasks() + .fillBirthNumber(birthday) + .clickDepartments() + .clickFind(); + } + + public Function findFraudTaskByBirthNumberWithTimeout(String birthday) { + return page -> page.clickTasks() + .fillBirthNumber(birthday) + .clickDepartments() + .waitUntilFoundMFCHTask(); + } + + public Function selectFirstMFCHIdOnly(String controlNumber) { + return page -> page + .then(selectMFCHTask()) + .then(confirmTaskIdOnly(controlNumber)); + } + + public Function selectFirstMFCHBirthCertificateOnly() { + return page -> page + .then(selectMFCHTask()) + .then(confirmFraudControlsTask()) + .clickFinish() + .closeWindow(); + } + + public Function selectFirstMFCHBirthCertificateAndId(String controlNumber) { + return page -> page + .then(selectMFCHTask()) + .then(confirmFraudControlsTask()) + .then(fillIdFraud(controlNumber)) + .clickFinish() + .closeWindow(); + } + + public Function selectFirstMFCH(String controlNumber) { + return page -> page + .then(selectMFCHTask()) + .then(confirmTask(controlNumber)); + } + + public Function selectMFCHTask() { + return page -> page + .clickMFCHDetail() + .clickProcessDocuments() + .onFraudRisk() + .clickCloseRisks(); + } + + public Function confirmTask(String controlNumber) { + return page -> page + .then(fillIdFraud(controlNumber)) + .clickFraudControl() + .clickSetAll() + .clickSend() + .clickAgreeSend() + .clickSetAll() + .clickSend() + .clickAgreeSend() + .clickFinish() + .closeWindow(); + } + + public Function confirmTaskIdOnly(String controlNumber) { + return page -> page + .then(fillIdFraud(controlNumber)) + .clickSetAll() + .clickSend() + .clickAgreeSend() + .clickFinish() + .closeWindow(); + } + + public Function finishFraudTask(String comment) { + return page -> page + .selectSolver(2) + .clickFinishProcess() + .fillCommentAndClickAgreeFinish(comment); + } + + private Function fillIdFraud(String controlNumber) { + harness.log(String.format("ID Control Number: %s", controlNumber)); + return page -> page + .fillCheckingNumber(controlNumber) + .clickFraudControl() + .clickSetAll() + .clickSend() + .clickAgreeSend(); + } + + public Function confirmFraudControlsTask() { + return page -> page + .clickFraudControl() + .clickSetAll() + .clickSend() + .clickAgreeSend(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/MeetingTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/MeetingTasks.java new file mode 100644 index 0000000..2d6af57 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/MeetingTasks.java @@ -0,0 +1,38 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.client.product.KOK701_S001_MeetingSchedulingPage; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; + +import java.time.LocalDate; +import java.util.function.Function; + +public class MeetingTasks { + private final Harness harness; + + public MeetingTasks(Harness harness) { + this.harness = harness; + } + + public Function scheduleMeeting(String om, String meetingType, String product) { + return page -> page + .selectOM(om) + .setMeetingType(meetingType) + .setProduct(product) + .setNotificationsToDoNotSend() + .setMeetingToFirstWorkingDayOfNextMonth(getFirstWorkingDayMonthLater()) + // 1 - (neni), 2 - first real time slot + .setMeetingTimeSlot(2) + .confirmMeeting(); + } + + private String getFirstWorkingDayMonthLater() { + LocalDate meetingDate = LocalDate.now().plusMonths(1); + while (!DateUtils.isWorkingDay(meetingDate)) { + meetingDate = meetingDate.plusDays(1); + } + return DateUtils.getDateWithFormat(meetingDate, DateFormatPatterns.IB_DATE_FORMAT); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/OperationsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/OperationsTasks.java new file mode 100644 index 0000000..37ae3e4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/OperationsTasks.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; + +public class OperationsTasks { + + private final Harness harness; + + public OperationsTasks(Harness harness) { + this.harness = harness; + } + + public ClientDetailsTasks clientDetails() { + return new ClientDetailsTasks(harness); + } + + public RecorderTasks recorder() { + return new RecorderTasks(harness); + } + + public SearchClientTasks searchClient() { + return new SearchClientTasks(harness); + } + + public LoginTasks login() { + return new LoginTasks(harness); + } + + public BlacklistWhitelistTasks blacklistWhitelist() { + return new BlacklistWhitelistTasks(harness); + } + + public ProductActivationTasks productActivation() { + return new ProductActivationTasks(harness); + } + + public ManualFraudCheckTasks manualFraudCheckTasks() { + return new ManualFraudCheckTasks(harness); + } + + public DocumentProcessTasks documentProcessTasks() { + return new DocumentProcessTasks(harness); + } + + public MeetingTasks meetingTasks() { + return new MeetingTasks(harness); + } + + public ChangeContactAddressTasks changeContactAddressTasks() { + return new ChangeContactAddressTasks(harness); + } + + public TasksTasks tasks() { + return new TasksTasks(harness); + } + + public DebitCardChangesTasks debitCardChangesTasks() { + return new DebitCardChangesTasks(harness); + } + + public CurrentAccountTasks currentAccountTasks() { + return new CurrentAccountTasks(harness); + } + + public SavingAccountTasks savingAccountTasks() { + return new SavingAccountTasks(harness); + } + + public GdprTasks GdprTasks() { + return new GdprTasks(harness); + } + + public InfoServiceTasks infoServiceTasks() { + return new InfoServiceTasks(harness); + } + + public BankBackOfficeTasks bankBackOfficeTasks() { + return new BankBackOfficeTasks(harness); + } + + public PaymentOrderTasks paymentOrderTasks() { + return new PaymentOrderTasks(harness); + } + + public PrintTemplateTasks printTemplateTasks() { + return new PrintTemplateTasks(harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/PaymentOrderTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/PaymentOrderTasks.java new file mode 100644 index 0000000..7e870fa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/PaymentOrderTasks.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.EXE705_S001_PaymentRecordsToApprovePage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.EXE705_S002_VerificationDataPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.TRA740_S001_CreateNewTransferPaymentOrderPage; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.EXE705_S001_PaymentRecordsToApprovePage.*; + +public class PaymentOrderTasks { + + private final Harness harness; + + public PaymentOrderTasks(Harness harness) { + this.harness = harness; + } + + public Function createSimpleTransferPaymentOrder(String accountNumberPayer, String accountNumberRecipient, String amount) { + return start -> start + .clickCreateNewTransferPaymentOrder() + .clickBackOfficeZaklad() + .selectOrderType("Obecná") + .fillPayerAccountNumber(accountNumberPayer) + .fillRecipientAccountNumber(accountNumberRecipient) + .fillAmount(amount) + .clickSend() + .checkTransactionSuccessfullyEstablished("Transakce byla úspěšně založena pod ID:") + .saveTaskIDPaymentOrder() + .clickHomePage(); + } + + public Function createTransferOrderForClient(String accountNumber) { + return start -> start + .fillSearchInput(accountNumber) + .searchBy(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .clickAccountList() + .clickTransactions() + .clickTransactionOrder() + .clickPaymentsZaklad(); + } + + public Function fillPaymentVerificationForm(String amount) { + return start -> start + .fillAccountNumberPayer(harness.get(PAYER_ACCOUNT_NUMBER_KEY)) + .fillAccountNumberRecipient(harness.get(RECIPIENT_ACCOUNT_NUMBER_KEY)) + .fillAccountNumberRecipientBankCode("0600") + .fillAmount(amount) + .fillDueDate(harness.get(DUE_DATE_KEY)); + } + + public Function saveTransferOrderInformation() { + return start -> start + .savePayerAccount() + .saveRecipientAccount() + .saveDueDate(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/PrintTemplateTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/PrintTemplateTasks.java new file mode 100644 index 0000000..cd9c359 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/PrintTemplateTasks.java @@ -0,0 +1,76 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.ETS701_S001_ClientDocuments; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.OTP701_S001_UniversalPrintProcessPage; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.PSP701_S004_PrintTemplatePage; +import cz.moneta.test.dsl.util.DateUtils; + +import java.util.function.Function; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.PSP701_S004_PrintTemplatePage.ATTACHMENT_PATH; + +public class PrintTemplateTasks { + + private final Harness harness; + + public PrintTemplateTasks(Harness harness) { + this.harness = harness; + } + + public Function createPrintTemplateWithCif(String cif, String department, String category, String printName) { + return start -> start + .fillSearchInput(cif) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickPrintLettersWithCif() + .selectDepartment(department) + .selectCategory(category) + .selectTemplate(printName) + .selectGenderIfVisible() + .clickPrint(); + } + + public Function createPrintTemplateWithAccount(String account, String department, String category, String printName) { + return start -> start + .fillSearchInput(account) + .searchBy(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .clickPrintLettersWithAccount() + .selectDepartment(department) + .selectCategory(category) + .selectTemplate(printName) + .selectGenderIfVisible() + .clickPrint(); + } + + public Function createPrintTemplateInteractive(String department, String category, String printName, String title) { + return start -> start + .selectDepartment(department) + .selectCategory(category) + .selectTemplate(printName) + .clickPrintInteractive() + .clickOk() + .clickComplete() + .assertHistory("Historie") + .switchToModalWindowByTitle(title) + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + public Function createManualLetter() { + return start -> start + .clickCorrespondence() + .clickManualSend() + .selectCompany("MONETA Money Bank") + .clickContinue() + .selectLetter("Sdělení klientovi") + .uploadAttachment(ATTACHMENT_PATH) + .clickSave(); + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ProductActivationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ProductActivationTasks.java new file mode 100644 index 0000000..8515e15 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/ProductActivationTasks.java @@ -0,0 +1,123 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.creditcard.FeePaymentsMethod; +import cz.moneta.test.dsl.ufo.operations.client.creditcard.OPK705_S101_ProductSelectionPage; +import cz.moneta.test.dsl.ufo.operations.client.product.ProductActivationResultPage; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; + +import java.util.function.Function; + +public class ProductActivationTasks { + + private final Harness harness; + + public ProductActivationTasks(Harness harness) { + this.harness = harness; + } + + public Function createCreditCard( + NonClient nonClient, + String productType, + String cardVariant, + String cardBrand, + String promo, + String requestedAmount, + String employmentContractType, + String dailyPurchaseLimit, + String dailyWithdrawLimit, + String dailyOnlinePaymentsLimit, + String loyaltyProgram, + String accountType, + String activationPassword + ) { + return start -> start + .selectProductType(productType) + .selectCardVariant(cardVariant) + .selectCardBrand(cardBrand) + .selectPromo(promo) + .requestedAmount(requestedAmount) + .selectEmploymentType(employmentContractType) + .continueToClientDetails() + .selectSecondId("Řidičský průkaz") + .setDriveLicenceId(nonClient.driverLicenceId()) + .setDriveLicenceExpire(DateUtils.getDateWithFormat(nonClient.driveLicenceExpiryDateRaw(),"d.M.yyyy")) + .selectJob(nonClient.occupationAdditionalInformation()) + .selectContractType(employmentContractType) + .checkEmploymentDataVerifiedWithClient() + .setNumberOfIncomeSources(nonClient.incomeSources()) + .setNetIncomeThreeMonthsAvg(nonClient.netMonthlyIncome()) + .setOtherMonthlyExpenses(nonClient.otherExpenses()) + .setTotalHouseholdIncome(nonClient.homeIncome()) + .setOtherNonMMBMonthlyPayments(nonClient.otherLoanPayments()) + .setWageDeductions(nonClient.wageDeductions()) + .checkIncomeDataVerifiedWithClient() + .setActivationPassword(activationPassword) + .setDailyPurchaseLimit(dailyPurchaseLimit) + .setDailyWithdrawLimit(dailyWithdrawLimit) + .setDailyOnlinePaymentsLimit(dailyOnlinePaymentsLimit) + .setLoyaltyProgram(loyaltyProgram) + .setSendPinViaSMS() + .setFeePaymentMethod(FeePaymentsMethod.INKASO) + .setAccountType(accountType) + .requestFormalControl() + .assertFormalControlWasSuccessful() + .continueToUserConfirmation() + .userConfirmed() + .continueToProductActivationResult(); + } + + public Function createCreditCardWithDiscountPackage( + NonClient nonClient, + String productType, + String cardVariant, + String cardBrand, + String promo, + String requestedAmount, + String employmentContractType, + String dailyPurchaseLimit, + String dailyWithdrawLimit, + String dailyOnlinePaymentsLimit, + String loyaltyProgram, + String discountPackage, + String accountType, + String activationPassword + ) { + return start -> start + .selectProductType(productType) + .selectCardVariant(cardVariant) + .selectCardBrand(cardBrand) + .selectPromo(promo) + .requestedAmount(requestedAmount) + .selectEmploymentType(employmentContractType) + .continueToClientDetails() + .selectSecondId("Řidičský průkaz") + .setDriveLicenceId(nonClient.driverLicenceId()) + .setDriveLicenceExpire(DateUtils.getDateWithFormat(nonClient.driveLicenceExpiryDateRaw(),"d.M.yyyy")) + .selectJob(nonClient.occupationAdditionalInformation()) + .selectContractType(employmentContractType) + .checkEmploymentDataVerifiedWithClient() + .setNumberOfIncomeSources(nonClient.incomeSources()) + .setNetIncomeThreeMonthsAvg(nonClient.netMonthlyIncome()) + .setOtherMonthlyExpenses(nonClient.otherExpenses()) + .setTotalHouseholdIncome(nonClient.homeIncome()) + .setOtherNonMMBMonthlyPayments(nonClient.otherLoanPayments()) + .setWageDeductions(nonClient.wageDeductions()) + .checkIncomeDataVerifiedWithClient() + .setActivationPassword(activationPassword) + .setDailyPurchaseLimit(dailyPurchaseLimit) + .setDailyWithdrawLimit(dailyWithdrawLimit) + .setDailyOnlinePaymentsLimit(dailyOnlinePaymentsLimit) + .setLoyaltyProgram(loyaltyProgram) + .setDiscountPackage(discountPackage) + .setSendPinViaSMS() + .setFeePaymentMethod(FeePaymentsMethod.INKASO) + .setAccountType(accountType) + .requestFormalControl() + .assertFormalControlWasSuccessful() + .continueToUserConfirmation() + .userConfirmed() + .continueToProductActivationResult(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/RecorderTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/RecorderTasks.java new file mode 100644 index 0000000..3afbc7d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/RecorderTasks.java @@ -0,0 +1,72 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.recorder.CRC710_S001_RecorderMainPage; +import cz.moneta.test.dsl.ufo.operations.recorder.RecorderNameOfGroup; + +import java.util.function.Function; +import java.util.stream.Stream; + +public class RecorderTasks { + + private final Harness harness; + + public RecorderTasks(Harness harness) { + this.harness = harness; + } + + public Function addMultipleMmbOmRetailWrites(String requestName, + String reasonName, + int writesNumber) { + return start -> start.then(addMultipleMmbOmRetailRequests(requestName, writesNumber)) + .then(addMultipleReasons(reasonName, writesNumber)); + } + + public Function openCategories(RecorderNameOfGroup... categoriesNames) { + return Stream.iterate(0, n -> n + 1) + .limit(categoriesNames.length) + .map(n -> openCategory(categoriesNames[n])) + .reduce(Function.identity(), Function::andThen); + } + + public Function selectCustomerByRc(String rc) { + return start -> start.clickBirthNumberInSubject() + .fillSearchSubjectInput(rc) + .clickLoadSubjectArrow(); + } + + public Function submitBulkWrite() { + return start -> start.submitRequest() + .waitForSubjectNameVanish(); + } + + private static Function addMultipleMmbOmRetailRequests(String requestName, int writesNumber) { + return Stream.iterate(1, n -> n + 1) + .limit(writesNumber) + .map(n -> addWrite(requestName, n)) + .reduce(Function.identity(), Function::andThen); + } + + private static Function addMultipleReasons(String reasonName, int writesNumber) { + return Stream.iterate(1, n -> n + 1) + .limit(writesNumber) + .map(n -> addReason(reasonName, (writesNumber + 1) - n)) + .reduce(Function.identity(), Function::andThen); + } + + private static Function addWrite(String writeName, int number) { + return start -> + start.openItemInTreeMenu(writeName) + .waitForNextRecordInsertion(number); + } + + private static Function openCategory(RecorderNameOfGroup categoryName) { + return start -> start.openGroupInTreeMenu(categoryName); + } + + private static Function addReason(String reasonName, int number) { + return start -> + start.addSolution(reasonName) + .waitForReasonInsertion(number); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/SavingAccountTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/SavingAccountTasks.java new file mode 100644 index 0000000..cec3e0a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/SavingAccountTasks.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; + +import java.util.function.Function; + +public class SavingAccountTasks { + + private final Harness harness; + + public SavingAccountTasks(Harness harness) { + this.harness = harness; + } + + public Function searchClientAndClickOnAccountList(String rc) { + return start -> start.fillSearchInput(rc) + .clickSearchClient() + .onClientDetailsPage() + .clickAccountList(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/SearchClientTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/SearchClientTasks.java new file mode 100644 index 0000000..4688e28 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/SearchClientTasks.java @@ -0,0 +1,71 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.ScoringDataPage; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.search.*; + +import java.util.function.Function; + +public class SearchClientTasks { + + private final Harness harness; + + public SearchClientTasks(Harness harness) { + this.harness = harness; + } + + public Function byRc(String rc) { + return start -> start.fillSearchInput(rc) + .clickSearchClient() + .onClientDetailsPage(); + } + + public Function searchClientByRc(String rc) { + return start -> start.fillSearchInput(rc) + .searchBy(SearchBy.BIRTH_NUMBER) + .onClientDetailsPage(); + } + + public Function searchFOPClientByIco(String ico) { + return start -> start.fillSearchInput(ico) + .searchBy(SearchBy.ICO) + .onClientDetailsPage(); + } + + public Function searchPOClientByIco(String ico) { + return start -> start.fillSearchInput(ico) + .searchBy(SearchBy.ICO) + .onListOfClientRepresentativesPage(); + } + + public Function byAP(String ap) { + return start -> start.fillAP(ap) + .clickSearch() + .clickAP(ap) + .clickApprovalDataButton(); + } + + public Function byIco(String ico) { + return start -> start.fillSearchInput(ico) + .searchBy(SearchBy.ICO) + .onListOfClientRepresentativesPage(); + } + + public Function byCif(String cif) { + return start -> start.fillSearchInput(cif) + .searchBy(SearchBy.CIF) + .onClientDetailsPage(); + } + + public Function searchClientByType(ClientType type, String rcIco) { + if (type.equals(ClientType.FON)) { + return start -> start.then(searchClientByRc(rcIco)); + } else if (type.equals(ClientType.FOP)) { + return start -> start.then(searchFOPClientByIco(rcIco)); + } else { + return start -> start.then(searchPOClientByIco(rcIco)) + .clickContinueOnFirstClient(); + } + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/TasksTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/TasksTasks.java new file mode 100644 index 0000000..82a4cd0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/ufo/operations/TasksTasks.java @@ -0,0 +1,148 @@ +package cz.moneta.test.dsl.util.task.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage; +import cz.moneta.test.dsl.ufo.operations.search.OPS001_S001_ClientSearchPageUfoOperations; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.*; +import cz.moneta.test.dsl.util.DateUtils; + +import java.util.function.Function; +import java.util.random.RandomGenerator; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.PSP701_S004_PrintTemplatePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.TASK_ID_KEY; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskPage.ID_OBJECT_IN_TASK_KEY; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.TypesOfViewFilter.*; + +public class TasksTasks { + + private final Harness harness; + + public TasksTasks(Harness harness) { + this.harness = harness; + } + + public Function finishTask() { + return start -> start + .selectTypeOfView(ASSIGNED_BY_ME) + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickSolve() + .clickFinishTask() + .fillSolveText("Duvod konce") + .clickFinishOK() + .assertStatusLabel("Úkol byl v pořádku dokončen !"); + } + + public Function createSpecificTask(String rcOfExistingClient) { + return start -> start + .clickNewMainTask() + .selectTaskCategory("Produkt - Běžný účet") + .selectSubcategories("Změny a dotazy ke smlouvě") + .fillBirthNumberInTask(rcOfExistingClient) + .fillIdObjectInTask(String.valueOf(RandomGenerator.getDefault().nextInt(100000000, 999999999))) + .fillIdOmInTask("02122120") + .selectTaskType("Změny a dotazy ke smlouvě") + .fillDescription("Zpracování sestavy") + .clickAssign() + .onTaskList() + .assertStatusLabel("Úkol byl korektně přiřazen!") + .saveTaskID(); + } + + public Function createSimpleTask(String rcOfExistingClient) { + return start -> start + .clickNewMainTask() + .selectTaskCategory("Ostatní - BPST") + .selectSubcategories("Ostatní") + .fillBirthNumberInTask(rcOfExistingClient) + .fillIdObjectInTask("33214034") + .selectTaskType("Ufo aplikace - podnět") + .fillDescription("Test") + .clickAssign() + .onTaskList() + .assertStatusLabel("Úkol byl korektně přiřazen!") + .saveTaskID(); + } + + public Function createSecondSimpleTask() { + return start -> start + .clickNewMainTask() + .selectTaskCategory("Ostatní - BPST") + .selectSubcategories("Nefunkčnost systému") + .selectTaskType("Dokončení odeslání dokumentu") + .fillDescription("Test-2") + .clickAssign() + .onTaskList() + .assertStatusLabel("Úkol byl korektně přiřazen!") + .saveSecondTaskID(); + } + + public Function createSubtask() { + return start -> start + .clickTaskTypeSubtask() + .clickSpecificAttributes() + .createSubtask() + .selectTaskCategory("Ostatní - BPST") + .selectSubcategories("Ostatní") + .selectTaskType("Ufo aplikace - podnět") + .clickSolution() + .fillDescription("Test - subtask") + .clickAssign() + .onTaskDetail(); + } + + public Function checkClientDetailInfo(String rcOfExistingClient) { + return start -> start + .clickClientDetailInfo() + .checkClientRc(rcOfExistingClient) + .checkPageNotContainsMenuElements() + .closeSecondWindow(); + } + + public Function checkObjectDetail() { + return start -> start + .storeIdObject() + .clickIdObjectDetailInfo() + .checkContractID(harness.get(ID_OBJECT_IN_TASK_KEY)) + .checkPageNotContainsMenuElements() + .closeSecondWindow(); + } + + public Function checkAttachmentUpload(String attachmentPath, String attachmentTitle) { + return start -> start + .clickAddAttachment() + .selectDocumentType("Bankovní informace") + .fillFileUpload(attachmentPath) + .fillFileTitle(attachmentTitle) + .clickSaveAttachment() + .checkTitleOfFirstAttachment(attachmentTitle); + } + + public Function createTask() { + return start -> start + .clickNewMainTask() //T_0001591070101 + .selectTaskCategory("Produkt - Běžný účet") + .selectSubcategories("Reklamace a Stížnosti") + .selectTaskType("Stížnosti - standardní") + .findUserAndSelectSolver() + .selectClient("Ne") + .fillClientOrBusinessName("AutoTest") + .selectPreferredCanal("email") + .typeIntoClientsEmail("matej.liska@moneta.cz") + .fillDescription("Automattest") + .clickAssign() + .onTaskPage() + .storeIdOfTask(); + } + + public Function removeFraudAcccesAndOpenTasks() { + return start -> start + .clickSettings() + .doubleClickOpsCallcentrumFraudAccess() + .clickSaveChangeOfPrivilages() + .clickTasks(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/ClientTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/ClientTasks.java new file mode 100644 index 0000000..335a7ec --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/ClientTasks.java @@ -0,0 +1,435 @@ +package cz.moneta.test.dsl.util.task.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.account.AccountDetail; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.Gender; +import cz.moneta.test.dsl.util.data.client.NewClient; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.jooq.Record; +import org.jooq.Result; + +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.Date; + +import static cz.moneta.test.dsl.util.data.ihub.IHubConstants.*; + +public class ClientTasks { + + private final Harness harness; + + private final String GEBTHA1_SSO = "920181015"; + + public ClientTasks(Harness harness) { + this.harness = harness; + } + + /** + * Call CRT_PERSON_CIF to create client CIF. + *

+ * Used as a part of create new customer process Exists class. + *

+ *

+ * For local use it needs access to WSO2 + *

+ * + * @param client - customer data - instance of NonClient + */ + public String createCifFo(NonClient client) { + return harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/customer.cluster/CRT_PERSON_CIF/001") + .addField("RodneCislo", client.birthNumber()) + .addField("DatumNarozeni", DateUtils.convertRawDateForWso2(TestUtils.dateFromString(client.birthDate(), "d.M.yyyy"))) //YYYY-MM-DD + .addField("DatumExpiraceKontaktnichUdaju", DateUtils.convertRawDateForWso2(DateUtils.getRawTodayDateIncrementedByDays(730))) + .addField("PlatnostOPdo", DateUtils.convertRawDateForWso2(client.idCardExpiredRaw())) + .addField("DatumPotvrzeniPrijmu", DateUtils.convertRawDateForWso2(client.dateOfIssueConfirmationOfReceipt())) + .addField("DatumZalozeniCIFu", DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .addField("SerieACisloOP", client.idCardNumber()) + .addField("CisloPasu", client.passportId()) + .addField("PlatnostPasuDo", DateUtils.convertRawDateForWso2(client.passportExpiryDateRaw())) + .addField("PasStatVydal", CZECH_REPUBLIC_CODE) + .addField("OPStatVydal", CZECH_REPUBLIC_CODE) + .addField("PrvniJmeno", client.firstName()) + .addField("Prijmeni", client.lastName()) + .addField("CO", client.residencyAddress().getOrientationNumber()) + .addField("CP", client.residencyAddress().getDescriptiveNumber()) + .addField("Ulice", client.residencyAddress().getStreet()) + .addField("Obec", client.residencyAddress().getCity()) + .addField("KlasifikaceKlienta", "0") + .addField("KodObchodnihoMista", MMB_BBC_OM) + .addField("MistoNarozeni", client.placeOfBirth()) + .addField("PSC", client.residencyAddress().getZip()) + .addField("NazevZamestnavatele", client.employer().getName()) + .addField("ZAMICO", client.employer().getIco()) + .addField("ZAMUlice", client.employer().getAddress().getStreet()) + .addField("ZAMCO", client.employer().getAddress().getOrientationNumber()) + .addField("ZAMCP", client.employer().getAddress().getDescriptiveNumber()) + .addField("ZAMPSC", client.employer().getAddress().getZip()) + .addField("ZamObec", client.employer().getAddress().getCity()) + .addField("PlatnostKontaktnichUdaju", "1") + .addField("TelefonMobilni", "420" + client.mobileNumber()) + .addField("DatumNastehovani", DateUtils.convertRawDateForWso2(client.currentAddressSinceRaw())) + .addField("RodinnyStav", client.maritalStatus().getHCisValue()) + .addField("Pohlavi", client.gender() == Gender.MAN ? "1" : "2") + .addField("ZamestnanOd", DateUtils.convertRawDateForWso2(client.occupationEmploymentFromRaw())) + .addField("CistyMesicniPrijem", (double) client.netMonthlyIncomeInThousands()) + .addField("PocetVyzivovanychDeti", Long.valueOf(client.dependants())) + .addField("TelefonDomu", "420" + client.fixPhoneNumberHome()) + .addField("TelefonZamestnani", "420" + client.employer().getPhoneNumber()) + .addField("NejvyssiDosazeneVzdelani", "4") + .addField("EkonomickySektor", "44") + .addField("DruhPrijmuKlienta", client.occupationStatus().getHCisValue()) + .addField("DruhBydleni", client.accommodationType().getHCisValue()) + .addField("PlatnostKontaktnichUdaju", "1") + .addField("SocialneEkonomickaSkupina", "1") + .addField("ZkraceneJmeno", "ZkrJm") + .addField("TypKlienta", "1") + .addField("Zeme", CZECH_REPUBLIC_CODE) + .addField("ZemeNarozeni", CZECH_REPUBLIC_CODE) + .addField("StatniPrislusnost", CZECH_REPUBLIC_CODE) + .addField("VztahKBance", client.relationshipToTheBank().getMetaCodeValue()) + .addField("EMail", client.email()) + .addField("NoEmailFlag", 0) + .addField("Povolani", client.occupationType().getHCisValue()) + .addField("ZuzeneSJM", "10") + .post() + .andAssertStatus(200) + .extract("CIF") + .asText(); + } + + /** + * Call SET_CUST_CONSENTS to set GDPR consent for client. + *

+ * Used as a part of create new customer process Exists class. + *

+ *

+ * For local use it needs access to WSO2 + *

+ * + * @param cif - customer CIF + */ + public void setGdprConsent(String cif) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/customer.cluster/SET_CUST_CONSENTS/001") + .addField("ClientInstId", cif) + .addField("ConsentSignTime", DateUtils.convertRawDateForWso2(new Date())) + .addField("ConsentEmployeeId", GEBTHA1_SSO) + .addField("ConsentBranchId", MMB_BBC_OM) + .addField("ConsentSetId", "SET_CONCERN_CONSENTS") + .addField("ConsType_MarketingByAllChannels", "1") + .addField("ConsType_IdentityPapersCopy", "1") + .addField("ConsType_CommBankSecretByUnsecured", "1") + .addField("ClientType", "1") + .addField("BusinessType", "GEMCB") + .addField("ClientInstSysId", "ICB0") + .addField("ConsentChannelId", "POS") + .addField("ConsentMode", "SET") + .post() + .andAssertStatus(200); + } + + /** + * Call DO_SAVE_ADDRESS_ALL_SYSTEMS to set residency address for client. + *

+ * Used as a part of create new customer process Exists class. + *

+ *

+ * For local use it needs access to WSO2 + *

+ * + * @param nonClient - customer information (contains residencyAddress) + * @param cif - customer cif + * @param bankerUsername - banker name to be set as sekundarniUrednik parameter + */ + public void setResidencyAddress(NonClient nonClient, String cif, String bankerUsername) { + Address residencyAddress = nonClient.residencyAddress(); + + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/customer.cluster/DO_SAVE_ADDRESS_ALL_SYSTEMS/001") + .addField("CIF", cif) + .addField("PSC", residencyAddress.getZip()) + .addField("Ulice", residencyAddress.getStreet()) + .addField("SekundarniUrednik", bankerUsername) + .addField("Zeme", CZECH_REPUBLIC_CODE) + .addField("Mesto", residencyAddress.getCity()) + .addField("SuperkontaktniAdresa_Flag", "1") + .addField("RC", nonClient.birthNumber()) + .addField("Adresat", nonClient.firstName() + " " + nonClient.lastName()) + .addField("DistribucniKanal", "UFOBNK") + .addField("BusinessUpdateDate", DateUtils.convertRawDateTimeForWso2(LocalDateTime.now())) + .addField("CisloOrientacni", residencyAddress.getOrientationNumber()) + .addField("CisloPopisne", residencyAddress.getDescriptiveNumber()) + .post(); + } + + /** + * Call SET_CUST_CRS_DATA to set Czech Republic as tax residency for client. + *

+ * Used as a part of create new customer process Exists class. + *

+ *

+ * For local use it needs access to WSO2 + *

+ * + * @param cif - customer CIF + */ + public void setCrAsTaxResidency(String cif) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/customer.cluster/SET_CUST_CRS_DATA/001") + .addField("CIF", cif) + .addField("ZakladniAtributyFlag", "0") + .addField("ZemePobocekFlag", "0") + .addField("ZemeDanoveRegistraceFlag", "1") + .addField("ZemeCRSFlag", "0") + .addField("Data", Arrays.asList(new Object())) + .addField("Data[0]", "ITAX_RSDNC_CNTRY_CODE", CZECH_REPUBLIC_CODE) + .post(); + } + + public String createCifFop(NonClient fop, String bankerUsername) { + String shortenName = fop.fullName().substring(0, Math.min(fop.fullName().length(), 18)); + + return harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/customer.cluster/CRT_COMMERCIAL_CUST/001") + .addField("CP", fop.residencyAddress().getDescriptiveNumber()) + .addField("DatumExpiraceKontaktnichUdaju", DateUtils.convertRawDateForWso2(DateUtils.getRawTodayDateIncrementedByDays(730))) + .addField("DatumPlatnostiOP", DateUtils.convertRawDateForWso2(fop.idCardExpiredRaw())) + .addField("DatumPodnikaniOd", DateUtils.convertRawDateForWso2(fop.occupationEmploymentFromRaw())) + .addField("DatumZalozeniCIFu", DateUtils.convertRawDateForWso2(TestUtils.getTodayAsDate())) + .addField("EMail", fop.email()) + .addField("EkonomickySektor", "25") + .addField("ICO", fop.ico()) + .addField("Jmeno", fop.firstName()) + .addField("KodObchodnihoMista", MMB_BUDEJOVICE_OM) + .addField("OKEC", "022000") + .addField("OROddil", "123") + .addField("ORSoud", "1") + .addField("ORVlozka", "123") + .addField("ObchodniJmeno", fop.fullName()) + .addField("Obec", fop.residencyAddress().getCity()) + .addField("PSC", fop.residencyAddress().getZip()) + .addField("PobytCR", "1") + .addField("Posta", fop.residencyAddress().getCity()) + .addField("PravniForma", "101") + .addField("Prijmeni", fop.lastName()) + .addField("Rezidence", "1") + .addField("RodneCislo", fop.birthNumber()) + .addField("SerieACisloOP", fop.idCardNumber()) + .addField("Ulice", fop.residencyAddress().getStreet()) + .addField("UlozPSCBezKontroly", "Y") + .addField("Urednik", bankerUsername) + .addField("Zeme", CZECH_REPUBLIC_CODE) + .addField("ZkraceneJmeno", shortenName) + .post() + .andAssertStatus(200) + .extract("CIF") + .asText(); + } + + public String createAccountAndGetAccountNumber(NewClient newCustomer, AccountDetail accountDetail, String bankerUsername) { + return createAccountAndGetAccountNumber(newCustomer.getCif(), newCustomer.getClientData().fullName(), accountDetail, bankerUsername); + } + + public String createAccountAndGetAccountNumber(String cif, String name, AccountDetail accountDetail, String bankerUsername) { + return harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/deposit.cluster/IPE/CRT_ACCOUNT_ICB/001") + .addField("AAZeme", CZECH_REPUBLIC_CODE) + .addField("CIF", cif) + .addField("DatumOtevreni", DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .addField("DistribuceVypisu", "3") + .addField("ObchodniJmeno", name) + .addField("ObchodniMistoAlternativni", MMB_BBC_OM) + .addField("ObchodniMistoKod", MMB_BBC_OM) + .addField("PeriodaVypisu", "2") + .addField("PoplatkovyPlan", accountDetail.getFeePlan()) + .addField("PostovniPoukazka", "0") + .addField("PouzitaAA", "1") + .addField("PrimarniUrednik", bankerUsername) + .addField("ProduktKod", accountDetail.getProductCode()) + .addField("VypisNaKonciMesice", false) + .post() + .andAssertStatus(200) + .extract("CisloUctu") + .asText(); + } + + public void subsidyCzkAccount(String accountNumber, double amount) { + subsidyAccount(accountNumber, amount, "16621848", 0); + } + + public void subsidyEurAccount(String accountNumber, double amount) { + subsidyAccount(accountNumber, amount, "16621848", 23); + } + + public void subsidyUsdAccount(String accountNumber, double amount) { + subsidyAccount(accountNumber, amount, "16621848", 1); + } + + public void subsidyAccount(String accountNumber, double amount, String internalAccNum, int currencyCode) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/payments.cluster/IPE/CRT_VERIFIED_TRANSACTION/001") + .addField("CisloUctuInterni", internalAccNum) + .addField("CastkaTransakce", amount) + .addField("CisloUctuPrijemceInterni", accountNumber) + .addField("KodMenyTransakce", currencyCode) + .addField("SSO", GEBTHA1_SSO) + .addField("branchId", MMB_BBC_OM) + .addField("channelId", "UFO") + .addField("KodBanky", "0600") + .post() + .andAssertStatus(201); + } + + public RawRestRequest.Response findUnifiedClient(String ico) { + return harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/customer.cluster/GET_CUST_UNIFIED/001") + .addField("BusinessRequestor", "GEM") + .addField("ICO", ico) + .addField("IDZdrojovehoSystemu", "CMD") + .addField("UcelDotazu", "1") + .post() + .andAssertStatus(200); + } + + public void setCommercialBankerToClient(String ico) { + Result records = harness.tasks().ods().findInstPt(ico, "CMD0"); + if (records.isNotEmpty()) { + String instPtKey = records.getValue(0, "INST_PT_KEY").toString(); + harness.log("INST_PT_KEY: {}", instPtKey); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/customer.cluster/customer-set-vip-relation-banker/v1") + .addField("DEL_FLAG", "0") + .addField("INST_PT_KEY", instPtKey) + .addField("PrivatniBankerSSO", "123060132") + .addField("SRC_SYS_ID", "SFC01") + .addField("TypVazby", "3") + .post() + .andAssertStatus(200); + } + } + + + public void relationFoFop(String cifFo, String cifFop) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/payments.cluster/CRT_LNK_CUS_CUST/001") + .addField("INCUST1", cifFo) + .addField("INCUST2", cifFop) + .addField("INREL1", "KLO") + .addField("INREL2", "KLP") + .post() + .andAssertStatus(200); + } + + public boolean existInOds(String birthNumber) { + return 0 != harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/customer.cluster/GET_CUST_UNIFIED/001") + .addField("Adresy_OutputAktualniFlag", "1") + .addField("Adresy_OutputSysIDs", "ICB|VIS|HYP|CMD") + .addField("BusinessRequestor", "GEMCB") + .addField("IDZdrojovehoSystemu_OUTPUT", "ICB0") + .addField("MaximalniPocetZaznamu", 50L) + .addField("Priznak_BankovniTajemstvi", "1") + .addField("Priznak_RozsirenyVystup", "1") + .addField("RC", birthNumber)//8111117399 / 8703234815 + .addField("TypyOsobyFiltr", "1|2|5") + .addField("UcelDotazu", "9") + .post() + .andAssertStatus(200) + .extract("PocetNalezenychZaznamu").intValue(); + } + + public void calculateTotalExposurePerson(Long personId) { + harness.tasks().wso2() + .restRequest() + .prepareEmptyRequestFromUfo("/t/risk.cluster/NAS/CALCULATE_TOT_EXP_006/001") + .addField("ID_KLIENT", personId) + .post() + .andAssertStatus(200); + } + + public void doClientEgovIdentityComplete(NonClient client, String cif, String addressRuianCode, String sso, String SrcSysId, String posId, String busCode) { + String birthDate = DateUtils.convertRawDateForWso2(TestUtils.dateFromString(client.birthDate(), "d.M.yyyy")); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/financial.crime/IPE/DO_CLIENT_EGOV_IDENTITY_COMPLETE/001") + .addField("ADDRESS_RUIAN_CODE", addressRuianCode) + .addField("BUS_CODE", busCode) + .addField("CONTEXT", "ONLINE") + .addField("POS_ID", posId) + .addField("PROCESS", "FON") + .addField("SEARCHED_BY_BIRTH_NO", "") + .addField("SKIP_NAME_CONTROL_FLAG", "1") + .addField("SRC_SYS_ID", SrcSysId) + .addField("SSO", sso) + .addField("UDEBS_ID", "") + .addField("DOCUMENT_NUMBER", client.idCardNumber()) + .addField("DOCUMENT_TYPE", "98") + .addField("DOC_PASSPORT_ISSUER", "") + .addField("CLIENT_NATIONALITY", "52") + .addField("CLIENT_FIRST_NAME", client.firstName()) + .addField("CLIENT_LAST_NAME", client.lastName()) + .addField("CLIENT_BIRTH_DATE", birthDate) + .addField("CLIENT_BIRTH_NUMBER", client.birthNumber()) + .addField("CLIENT_BIRTH_PLACE", "") + .addField("CLIENT_ID", cif) + .post() + .andAssertStatus(200) + .andAssertPresent("STATUS") + .andAssertFieldValue("STATUS", "SUCCESS"); + } + + public void setIncome(String cif, String payerPhoneNumber, String PayerPtKey, Integer clientMonthlyIncome, java.util.Date occupationEmploymentFromRaw) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/risk.cluster/PIM/SET_PRSN_INCOME_DATA_004/001/") + .addField("PRSN_INST_SYS_ID", "ICB0") + .addField("PAYEE_OCCUP_TP_ID", "22") + .addField("PAYEE_EMPLMT_NOTICE_PER_FLAG", "0") + .addField("INCOME_REL_KEY", -1) + .addField("PAYEE_INCOME_TP_ID", "EMPLOYMENT_INCOME") + .addField("PAYEE_INCOME_START_DATE", DateUtils.convertRawDateForWso2(occupationEmploymentFromRaw)) + .addField("PAYEE_INCOME_STAT_ID", "ACPTD_BY_CLNT") + .addField("PAYEE_EMPLMT_TRIAL_PER_FLAG", "0") + .addField("RS_INCOME_VALS", Arrays.asList(new Object(), new Object())) + .addField("RS_INCOME_VALS[0]", "INCOME_CALCD_CURR_ID", "0") + .addField("RS_INCOME_VALS[0]", "INCOME_CALCD_TP_ID", "SALARY_DEDUCTION_MNTHLY_AMT") + .addField("RS_INCOME_VALS[0]", "INCOME_CALCD_VAL", "0") + .addField("RS_INCOME_VALS[0]", "REASON_TEXT", null) + .addField("RS_INCOME_VALS[1]", "INCOME_CALCD_CURR_ID", "0") + .addField("RS_INCOME_VALS[1]", "INCOME_CALCD_TP_ID", "AVG_3_MNTH") + .addField("RS_INCOME_VALS[1]", "INCOME_CALCD_VAL", clientMonthlyIncome) + .addField("RS_INCOME_VALS[1]", "REASON_TEXT", null) + .addField("PAYER_PT_KEY", PayerPtKey) + .addField("INCOME_VALDN_TP_ID", "DECLARATION") + .addField("PRSN_INST_ID", cif) + .addField("PAYEE_INCOME_SUBTP_ID", "EMPLOYMENT_PER_INDEFINITE") + .addField("INCOME_CHANNEL_ID", "POS") + .addField("PAYER_BUS_PHONE_NUM", "420" + payerPhoneNumber) + .addField("PAYEE_INCOME_CASH_FLAG", "0") + .addField("INCOME_VALDN_LVL_ID", "BANKER") + .post() + .andAssertStatus(200); + } + + public String tryToFindPayer(String ico) { + return harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/risk.cluster/PIM/TRY_SEARCH_PAYER_LIST/001/") + .addField("PAYER_BUS_IDENT_NUM", ico) + .post() + .andAssertStatus(200) + .extract("RS_LIST[0].PAYER_PT_KEY") + .asText(); + } + + public void setSecondBankerVerificationStateOk(String appleKey) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/loans.cluster/NAS/SET_SECOND_BANKER_VERIF_STATE_RESULT_004/001") + .addField("APP_KEY", appleKey) + .addField("SECOND_BANKER_VERIF_REASON", "OK_DOC") + .addField("SUBTASK_TYPE", "50") + .post(); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/ComodaTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/ComodaTasks.java new file mode 100644 index 0000000..542a699 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/ComodaTasks.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dsl.util.task.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisAllObrazovkySME; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.Arrays; + +import static cz.moneta.test.dsl.util.data.ihub.IHubConstants.GEBTHA6_SSO; + +public class ComodaTasks { + + private final Harness harness; + + public ComodaTasks(Harness harness) { + this.harness = harness; + } + + public Long setComodaData(String ico) { + Long clientId = createAndGetClientId(ico); + if (clientId > 0) { + setEmployeeCount(clientId, Long.valueOf(1)); + } + return clientId; + } + + public Long createAndGetClientId(String ico) { + RawRestRequest.Response unifiedClientResponse = harness.tasks().wso2().client().findUnifiedClient(ico); + if (unifiedClientResponse.extract("PocetNalezenychZaznamu").intValue() == 1) { + Long rsIdunifikovanehoklienta = unifiedClientResponse.extract("Data[0].IDUnifikovanehoKlienta").longValue(); + RawRestRequest.Response comodaResponse = createClientComoda(rsIdunifikovanehoklienta); + return comodaResponse.extract("IDOsoba").longValue(); + } + return Long.valueOf(-1); + } + + public RawRestRequest.Response createClientComoda(Long uniPtKey) { + return harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/sme.cluster/CRT_CLIENT_CMD/001") + .addField("Business","GEM") + .addField("DuvodDotazuDoODS", "1") + .addField("UNIPT_KEY", uniPtKey) + .post() + .andAssertStatus(200); + } + + public void setEmployeeCount(Long personId, Long empolyeeCount) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/sme.cluster/CMD/SET_PRSN_EMPLOYEE/001") + .addField("ID_PRSN", personId) + .addField("EMPLOYEE_COUNT", empolyeeCount) + .addField("VALID_BY_USER_ID", GEBTHA6_SSO) + .addField("VALID_DATE", DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .post() + .andAssertStatus(200); + } + + public void editPage(Long idNavrh, HCisAllObrazovkySME page, String state) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/sme.cluster/CMD/SET_SCREEN_STATUS/001") + .addField("ID_Navrh", idNavrh) + .addField("RS_DATA", Arrays.asList(new Object())) + .addField("RS_DATA[0]", "Obrazovka", page.getValue()) + .addField("RS_DATA[0]", "Stav", state) + .post() + .andAssertStatus(200); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/Wso2Tasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/Wso2Tasks.java new file mode 100644 index 0000000..7e169db --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/Wso2Tasks.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.util.task.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.wso2.authorization.AuthorizationTasks; +import cz.moneta.test.dsl.util.task.wso2.cards.CardsTasks; +import cz.moneta.test.dsl.util.task.wso2.depersonalization.DepersonalizationTasks; +import cz.moneta.test.dsl.util.task.wso2.digitalchannels.IbTasks; +import cz.moneta.test.dsl.util.task.wso2.digitalchannels.IdmTasks; +import cz.moneta.test.dsl.util.task.wso2.payments.PaymentsTasks; +import cz.moneta.test.dsl.util.task.wso2.rest.RequestTasks; + +public class Wso2Tasks { + + private final Harness harness; + + public Wso2Tasks(Harness harness) { + this.harness = harness; + } + + public CardsTasks cards() { + return new CardsTasks(harness); + } + + public DepersonalizationTasks depersonalization() { + return new DepersonalizationTasks(harness); + } + + public PaymentsTasks payments() { + return new PaymentsTasks(harness); + } + + public AuthorizationTasks authorization() { + return new AuthorizationTasks(harness); + } + + public RequestTasks restRequest() { + return new RequestTasks(harness); + } + + public IdmTasks idm() { + return new IdmTasks(harness); + } + + public IbTasks ib() { + return new IbTasks(harness); + } + + public ClientTasks client() { + return new ClientTasks(harness); + } + + public ComodaTasks comoda() { + return new ComodaTasks(harness); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/authorization/AuthorizationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/authorization/AuthorizationTasks.java new file mode 100644 index 0000000..5ffbf12 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/authorization/AuthorizationTasks.java @@ -0,0 +1,42 @@ +package cz.moneta.test.dsl.util.task.wso2.authorization; + +import cz.moneta.test.harness.context.StoreAccessor; +import cz.moneta.test.harness.endpoints.wso2.Wso2GatewayEndpoint; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.Base64; + +public class AuthorizationTasks { + + private final StoreAccessor harness; + + public AuthorizationTasks(StoreAccessor harness) { + this.harness = harness; + } + + public String ufoToken() { + return getToken("UFO"); + } + + public String getToken(String sourceAppName) { + return getBearerToken("CID_" + sourceAppName, "CS_" + sourceAppName); + } + + private String getBearerToken(String key, String secret) { + Wso2GatewayEndpoint endpoint = harness.getEndpoint(Wso2GatewayEndpoint.class); + String username = endpoint.getClientSecret(key); + String password = endpoint.getClientSecret(secret); + String basicToken = Base64.getEncoder().encodeToString((username + ":" + password).getBytes()); + return "Bearer " + RawRestRequest.customJsonBuilder(endpoint, "application/x-www-form-urlencoded") + .withPath("/token") + .withHeader("Authorization", "Basic " + basicToken) + .withPayload("grant_type=client_credentials") + .post() + .extract("access_token") + .asText(); + } + + public String encodeCredentialsToWsoAuth(String consumerKey, String consumerSecret) { + return Base64.getEncoder().encodeToString((consumerKey + ":" + consumerSecret).getBytes()); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/cards/CardsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/cards/CardsTasks.java new file mode 100644 index 0000000..bd9e75e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/cards/CardsTasks.java @@ -0,0 +1,185 @@ +package cz.moneta.test.dsl.util.task.wso2.cards; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +public class CardsTasks { + + private final Harness harness; + + public CardsTasks(Harness harness) { + this.harness = harness; + } + + public RawRestRequest.Response getDebitCardInfo(String accountNumber) { + return harness.withWso2() + .prepareRequestXml() + .withPath("/t/cards.cluster/test-ods-get-card-data") + .withPayloadFromFile("regression/transactional/cards/get_debit_card_details.xml") + .addField("CRNT_ACC_NUM_IN", accountNumber) + .post(); + } + + public RawRestRequest.Response getCreditCardInfo(String contractNumber) { + return harness.withWso2() + .prepareRequestXml() + .withPath("/t/cards.cluster/test-ods-get-card-data") + .withPayloadFromFile("regression/transactional/cards/get_credit_card_details.xml") + .addField("CONTR_NUM_IN", contractNumber) + .post(); + } + + public CardData getCardInfoByRc(String rc, String cardType) { + JsonNode data = getInstPtKey(rc); + + String uniPtKey = data.path("UNI_PT_KEY").textValue(); + String cif = data.path("CIF").textValue(); + + JsonNode response = getCardInfoByUniPtKey(cardType, uniPtKey); + + String card = response.path("CARD_NUM").textValue(); + String account = response.path("ACC_NUM").textValue(); + String contract = response.path("CONTR_NUM").textValue(); + String prodInstKey = response.path("PROD_INST_KEY").textValue(); + String name = response.path("FIRST_NAME_OWNR").textValue() + " " + response.path("FAMILY_NAME_OWNR").textValue(); + String bu; + + if ("D".equalsIgnoreCase(cardType)) { + bu = response.path("CRNT_ACC_NUM").textValue(); //for DC bu can be found in ods + } else { + bu = harness.withWso2() //for CC bu can be found in VMX.ACCOUNT.INQ + .prepareRequestXml() + .withPath("t/cards.cluster/call-fv/v1") + .withPayloadFromFile("regression/transactional/cards/VMX.ACCOUNT.INQ.xml") + .addField("VMX_MSGIN", "ACCOUNT", account) + .post() + .andAssertFieldValue("VMX_ROOT.VMX_MSGOUT.SVC_RETURN", "P") + .extract("VMX_ROOT.VMX_MSGOUT.ACCT_BS_OUTPUT.BANK_ACCT_NBR") + .textValue() + .substring(8); + } + + return CardData.builder() + .rc(rc) + .account(account) + .card(card) + .cif(cif) + .bu(bu) + .name(name) + .cardType(cardType) + .contract(contract) + .prodInstKey(prodInstKey) + .build(); + } + + public RawRestRequest.Response activateCard(String card) { + return harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/cards.cluster/card-servicing-do-activation-v1") + .addField("NOTE", "Activated") + .addField("CisloKarty", card) + .postExtended(); + } + + private JsonNode getCardInfoByUniPtKey(String cardType, String uniPtKey) { + return harness.withWso2() + .prepareRequestXml() + .withPath("/t/cards.cluster/test-ods-get-card-data") + .withPayloadFromFile("regression/transactional/cards/getCardData.xml") + .addField("CARD_DC_FLAG_IN", cardType) + .addField("RS_2.row", "UNI_PT_KEY_IN", uniPtKey) + .post() + .extract("RS_3.rows.row"); + } + + private JsonNode getInstPtKey(String rc) { + return harness.withWso2() + .prepareRequestXml() + .withPath("/t/cards.cluster/test-ods-get-inst-pt-key") + .withPayloadFromFile("regression/transactional/cards/getInstPtKey.xml") + .addField("RC_NUM_IN", rc) + .post() + .extract("RS_1.rows.row"); + } + + private String getUfoToken() { + return harness.tasks() + .wso2() + .authorization() + .getToken("UFO"); + } + + public String getCardNumberByBirthNumber(String birthNumber) { + return harness.withWso2() + .prepareRequest() + .withPath("t/cards.cluster/GET_CARD_LIST_BY_BIRTH_NUM/001") + .withHeader("Authorization", getUfoToken()) + .withHeader("Content-Type", "application/json") + .withHeader("userid_l2", "GEMTEST") + .withPayload("{\n" + + " \"RodneCislo\": " + birthNumber + "\n" + + "}") + .post() + .andAssertStatus(200) + .extract("Data") + .findValue("CisloKarty") + .asText(); + } + + private boolean isActivatedServicesOnCard(String cardNumber) { + int numberActivated = harness.withWso2() + .prepareRequest() + .withPath("t/cards.cluster/GET_LIST_ADD_SERVICES/001") + .withHeader("Authorization", getUfoToken()) + .withHeader("Content-Type", "application/json") + .withHeader("userid_l2", "GEMTEST") + .withPayload("{\n" + + " \"CisloKarty\": " + cardNumber + ", \n" + + " \"DruhKarty\": \"1\",\n" + + " \"JenAktivniDS\": \"1\"\n" + + "}") + .post() + .andAssertStatus(200) + .extract("Pocet") + .asInt(); + + return numberActivated > 0; + } + + private void deactivateInsuranceOnCard(String cardNumber) { + String date = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDate.now().minusDays(30)); + harness.withWso2() + .prepareRequest() + .withPath("t/cards.cluster/DO_ADD_SERVICES_DEACTIVATE/001") + .withHeader("Authorization", getUfoToken()) + .withHeader("Content-Type", "application/json") + .withHeader("userid_l2", "GEMTEST") + .withPayload("{\n" + + " \"CisloKaretnihoUctu\": \"\",\n" + + " \"CisloKarty\": \"" + cardNumber + "\",\n" + + " \"DSDatumUcinnostiZaniku\": \"" + date + "\",\n" + + " \"DSDatumZruseni\": \"" + date + "\",\n" + + " \"DSDatumZruseniDoruceno\": \"" + date + "\",\n" + + " \"DSDuvodRuseni\": \"5\",\n" + + " \"DSKodDistribucnihoKanalu\": \"1\",\n" + + " \"KodDS\": \"BC\"\n" + + "}") + .post() + .andAssertStatus(200); + } + + public void deactivateExhaustedAmountInsuranceCreditCard(String birthNumber) { + String cardNumber = getCardNumberByBirthNumber(birthNumber); + + if (isActivatedServicesOnCard(cardNumber)) { + deactivateInsuranceOnCard(cardNumber); + harness.log("Exhausted amount insurance on credit card " + cardNumber + " is deactivated"); + return; + } + harness.log("Credit card " + cardNumber + " has not active additional services"); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/depersonalization/DepersonalizationTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/depersonalization/DepersonalizationTasks.java new file mode 100644 index 0000000..704ac2c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/depersonalization/DepersonalizationTasks.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.util.task.wso2.depersonalization; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.objects.traininggov.DoDepersCustTestRequest; + +/** + * Depersonalization client for reuse in automated tests. + * API Documentation + */ +public class DepersonalizationTasks { + + private final Harness harness; + + public DepersonalizationTasks(Harness harness) { + this.harness = harness; + } + + public void depersonalizeClientFOP(String ico, String cif) { + DoDepersCustTestRequest request = DoDepersCustTestRequest.builder() + .icoNum(ico) + .fopCif(cif) + .build(); + + depersonalizeClient(request); + } + + public void depersonalizeClientFON(String rc, String cif) { + DoDepersCustTestRequest request = DoDepersCustTestRequest.builder() + .rcNum(rc) + .fonCif(cif) + .build(); + + depersonalizeClient(request); + } + + public void depersonalizeClient(DoDepersCustTestRequest request) { + harness.tasks().wso2().restRequest() + .prepareRequestFromIlods("/t/training.gov/NAS/DO_DEPERS_CUST_TEST/001") + .withHeader("Content-Type", "application/json") + .withPojoPayload(request) + .post() + .andAssertStatus(200); + + harness.log("Client with RC: " + request.getRcNum() + " and ICO: " + request.getIcoNum() + " successfully depersonalized"); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/digitalchannels/GetEmCliContextsListResponse.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/digitalchannels/GetEmCliContextsListResponse.java new file mode 100644 index 0000000..0ee15e8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/digitalchannels/GetEmCliContextsListResponse.java @@ -0,0 +1,46 @@ +package cz.moneta.test.dsl.util.task.wso2.digitalchannels; + +import lombok.*; + +import java.util.ArrayList; +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@EqualsAndHashCode(callSuper = false) +@ToString +public class GetEmCliContextsListResponse { + + @Builder.Default + public List RS_DATA = new ArrayList<>(); + + @AllArgsConstructor + @NoArgsConstructor + @EqualsAndHashCode(callSuper = false) + public static class RS_DATA { + public String BIRTH_DATE; + public String BIRTH_NUMBER; + public String CLIENT_CIF; + public String CONTEXT_CIF; + public String CLIENT_TYPE; + public int CONTEXT_ID; + public String CONTEXT_NAME; + public String CONTEXT_ROLES; + public String CONTEXT_ROLE_NAMES; + public String CLIENT_ENTITY_ID; + public int ENTITY_ID; + public String ENTITY_TYPE; + public String FIRST_NAME; + public String ICO_NUMBER; + public String LAST_NAME; + public String MASTER_FLAG; + public String MIDDLE_NAME; + public String STATUS; + public String TITLE_AFTER; + public String TITLE_BEFORE; + public int ROW_ID; + public int USER_ID; + public String LOGIN_NAME; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/digitalchannels/IbTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/digitalchannels/IbTasks.java new file mode 100644 index 0000000..18c51c8 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/digitalchannels/IbTasks.java @@ -0,0 +1,146 @@ +package cz.moneta.test.dsl.util.task.wso2.digitalchannels; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.harness.support.util.Template; + +import static cz.moneta.test.dsl.util.data.ihub.IHubConstants.MMB_BBC_OM; +import static cz.moneta.test.dsl.util.data.ihub.IHubConstants.MMB_BUDEJOVICE_OM; + +public class IbTasks { + + private final Harness harness; + + public IbTasks(Harness harness) { + this.harness = harness; + } + + public void createIb(NonClient client, String cif) { + double dayLimit = 5000; + long activationRequest = 0; + double weekLimit = 0; + + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/digitalchannels.ib/CRT_IB_ACCT/001") + .addField("CIF", cif) + .addField("DenniLimit", dayLimit) + .addField("DenniLimitAnoNe", "1") + .addField("Kanal", "3401001") + .addField("MaIBsKreditkou", "1") + .addField("ObchodniMistoAlternativni", MMB_BBC_OM) + .addField("ObchodniMistoKod", MMB_BBC_OM) + .addField("PozadavekAktivace", activationRequest) + .addField("Prava", "13") + .addField("PredvolbaMobKey", "420") + .addField("SMSInfo", false) + .addField("SouhlasSMobilnimKlicem", "1") + .addField("TelefoniCisloMobKey", client.mobileNumber()) + .addField("TydenniLimit", weekLimit) + .addField("TydenniLimitAnoNe", "0") + .addField("ZacatekPoplatkovani", DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .addField("ZpusobAutentizace", "2") + .addField("ZpusobCertifikace", "1") + .post() + .andAssertStatus(200); + } + + public void generateLoginPasswordIb(String cif) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/digitalchannels.sb/UFO_PASSWORD_RESET/002/") + .addField("cif", cif) + .addField("channelId", "3401001") + .addField("envelopeId", "0") + .post() + .andAssertStatus(200); + } + + public boolean existClientInUdebs(String cif) { + int existence = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/customer.cluster/CHK_CLIENT_UDEBS_EXISTENCE/001") + .addField("CIF", cif) + .post() + .andAssertStatus(200) + .extract("ExistujeKlient") + .asInt(); + + return existence == 1; + } + + public void createClientInUdebs(NonClient nonClient, String cif) { + createClientInUdebs(nonClient, cif, false); + } + + public void createFopClientInUdebs(NonClient nonClient, String cif) { + createClientInUdebs(nonClient, cif, true); + } + + private void createClientInUdebs(NonClient nonClient, String cif, boolean fop) { + String streetWithDescriptionNumber = nonClient.residencyAddress().getStreet() + " " + nonClient.residencyAddress().getDescriptiveNumber(); + + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/mwf.legacy/MWFA02/001") + .addField("Adresat", nonClient.fullName()) + .addField("CIF", cif) + .addField("Email", nonClient.email()) + .addField("Jmeno", nonClient.firstName()) + .addField("Mobil", nonClient.mobileNumber()) + .addField("MobilPredvolba", "420") + .addField("ObchodniMistoKod", MMB_BBC_OM) + .addField("Obec", nonClient.residencyAddress().getCity()) + .addField("OsobniCislo", fop ? nonClient.ico() : nonClient.birthNumber()) + .addField("PSC", nonClient.residencyAddress().getZip()) + .addField("Posta", nonClient.residencyAddress().getCity()) + .addField("Prijmeni", nonClient.lastName()) + .addField("TypKlienta", fop ? "2" : "1") + .addField("TypUctu", fop ? "32" : "2") + .addField("Ulice", streetWithDescriptionNumber) + .addField("Zeme", nonClient.residencyAddress().getCountry()) + .addField("ZkraceneJmeno", fop ? "ZkrJmFop" : "ZkrJm") + .post() + .andAssertStatus(200); + } + + public String getInternetBankLoginName(String clientCif) { + RawRestRequest.Response response = harness.withWso2() + .prepareRequest() + .withPath("/t/digitalchannels.sb/GET_EM_IB_LOGINNAME/001") + .withHeader("USERID_L2", harness.tasks().hypos().hyposWso2Tasks().userIdL2Hypos) + .withHeader("Authorization", "Bearer " + harness.tasks().hypos().hyposWso2Tasks().tokenUfo) + .withPayloadFromTemplate(Template.fromFilepath("system/wso2/mortgages_cluster/createInternetBankApis/get_em_ib_loginname.json") + .setQuoted("CIF", clientCif)) + .post() + .andAssertStatus(200); + String clientIbLogin = response.extract("LOGINNAME").toString().replace('"', ' ').trim(); + harness.log("Internet bank login is: " + clientIbLogin); + return clientIbLogin; + } + + public void createSb(String cif) { + double dayLimit = 5000; + + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo("/t/digitalchannels.sb/DO_CREATE_SB_CHANNEL/001") + .addField("CIF", cif) + .addField("Channel", "7070001") + .addField("LimitDaily", dayLimit) + .addField("LimitDailyFlag", "1") + .addField("BranchOfficeCode", MMB_BUDEJOVICE_OM) + .addField("BranchOfficeAlt", MMB_BUDEJOVICE_OM) + .addField("FreeChannel", null) + .addField("AuthentisationMethod", null) + .addField("Rights", "801") + .addField("CertificationMethod", null) + .addField("StartChargeFee", DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .addField("Activation", null) + .addField("EntityId", null) + .addField("LimitWeekly", null) + .addField("LimitWeeklyFlag", "0") + .addField("EnvelopeNumber", null) + .addField("UserId", null) + .addField("ContextId", null) + .post() + .andAssertStatus(204); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/digitalchannels/IdmTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/digitalchannels/IdmTasks.java new file mode 100644 index 0000000..f0d319c --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/digitalchannels/IdmTasks.java @@ -0,0 +1,136 @@ +package cz.moneta.test.dsl.util.task.wso2.digitalchannels; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; +import java.util.function.Predicate; + +public class IdmTasks { + + private final Harness harness; + + private static final String GET_DETAIL_PAYLOAD = "{\n" + + "\"passwordType\": \"IB\",\n" + + "\"resetPassword\": true,\n" + + "%s" + + "}"; + + public IdmTasks(Harness harness) { + this.harness = harness; + } + + /** + * Get user credentials to IB. + * Password will be reset by calling this method. + * + * @param birthNumber client's birthnumber + * @return returns Credentials object with username and password for IB + */ + public Credentials getIbCredentialsByRC(String birthNumber) { + String entityId = getEntityIdByRC(birthNumber); + return resetIbUserPasswordByEntityId(entityId); + } + + /** + * Get user credentials to IB. + * Password will be reset by calling this method. + * + * @param ico client's ico + * @return returns Credentials object with username and password for IB + */ + public Credentials getIbCredentialsByIco(String ico) { + String cif = getCifByIco(ico); + String username = getUserNameForIcoByCif(cif); + return resetIbUserPasswordByUsername(username); + } + + /** + * Resets IB client's password + * + * @param username IB client username + * @return returns Credentials object with username and new password for IB + */ + public Credentials resetIbUserPasswordByUsername(String username) { + return resetIbUserPassword(String.format(GET_DETAIL_PAYLOAD, "\"username\": \"" + username + "\"\n")); + } + + /** + * Resets IB client's password + * + * @param entityId IB client entityId + * @return returns Credentials object with username and new password for IB + */ + public Credentials resetIbUserPasswordByEntityId(String entityId) { + return resetIbUserPassword(String.format(GET_DETAIL_PAYLOAD, "\"entityId\": \"" + entityId + "\"\n")); + } + + private Credentials resetIbUserPassword(String requestBody) { + String bearerToken = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + + RawRestRequest.Response response = harness.withWso2() + .prepareRequest() + .withPath("/t/digitalchannels.sb/idm/1.0/password/get-detail") + .withHeader("Authorization", bearerToken) + .withHeader("Content-Type", "application/json") + .withHeader("activityId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("requestId", harness.tasks().wso2().restRequest().getRandomId()) + .withPayload(requestBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("passwordStatus", "ENABLED"); + return new Credentials(response.extract("username").asText(), response.extract("password").asText()); + } + + private String getEntityIdByRC(String birthNumber) { + return harness.tasks().wso2().restRequest().prepareEmptyRequestFromCbl("t/digitalchannels.sb/GET_EM_ENTITIES_CONTEXTS_LIST/001") + .addField("BIRTH_NUMBER", birthNumber) + .post() + .andAssertStatus(200) + .extract("RS_DATA[0].ENTITY_ID") + .asText(); + } + + private String getCifByIco(String ico) { + return harness.tasks().wso2().restRequest().prepareEmptyRequestFromCbl("/t/data.cluster/GET_INST_PT_KEY/001") + .addField("ICO_NUM_IN", ico) + .addField("SRC_SYS_ID", "ICB0") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_1[0].CIF") + .extract("RS_1[0].CIF") + .asText(); + } + + private String getUserNameForIcoByCif(String cif) { + // Get contexts list + GetEmCliContextsListResponse response = harness.tasks().wso2().restRequest().prepareEmptyRequestFromCbl( "/t/digitalchannels.sb/GET_EM_CLI_CONTEXTS_LIST/001") + .addField("CIF", cif) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetEmCliContextsListResponse.class); + + // Filter unneeded records + List filteredList = response.RS_DATA.stream() + .filter(u -> u.CONTEXT_ROLES != null) + .filter(u -> u.LOGIN_NAME != null) + .toList(); + + // Predicates for filter main account + List> roleConditions = List.of( + u -> u.CONTEXT_ROLES.equals("10099"), + u -> u.CONTEXT_ROLES.contains(","), + u -> u.CONTEXT_ROLES.contains("20001"), + u -> true + ); + + // Filter main account + GetEmCliContextsListResponse.RS_DATA mainUserData = roleConditions.stream() + .flatMap(conditions -> filteredList.stream().filter(conditions).limit(1)) + .findFirst() + .orElseThrow(() -> new IllegalStateException("No IB access found!")); + + return mainUserData.LOGIN_NAME; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/payments/ListOfTransactionsSuccessResponse.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/payments/ListOfTransactionsSuccessResponse.java new file mode 100644 index 0000000..e96c19e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/payments/ListOfTransactionsSuccessResponse.java @@ -0,0 +1,101 @@ +package cz.moneta.test.dsl.util.task.wso2.payments; + +import lombok.*; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * List of transactions in ICBS. + * Class for API response /t/payments.cluster/GET_HISTORY_TRXS/001. + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@EqualsAndHashCode(callSuper = false) +@ToString +public class ListOfTransactionsSuccessResponse { + + //Transactions count + public Integer RT1CNT; + + //List of transactions + @Builder.Default + public List RS_DATA = new ArrayList<>(); + + @AllArgsConstructor + @NoArgsConstructor + @Builder + @EqualsAndHashCode(callSuper = false) + public static class RS_DATA { + + // Transaction Amount + public Double OUAMT; + // Variable Symbol + public String OUDVSY; + // AV Message 1 + public String OUAVM1; + // Specific Symbol + public Long OUDSSY; + // Posting Date + public Date OUDATE; + // Credit Message 3 + public String OUCMS3; + // Originator Reference + public String OUBREF; + // Credit Message 4 + public String OUCMS4; + // Credit Message 1 + public String OUCMS1; + // Transaction Amount / LCYE + public Integer OUITC; + // Credit Message 2 + public String OUCMS2; + // User ID + public String OUUSER; + // Constant Symbol + public String OUDCSY; + // Transaction Description + public String OUDSC2; + // Original Transaction Code (from the Vision for the Card Transactions) + public String OUOTC; + // Transaction Description + public String OUDSC3; + // Originators Document ID + public String OUDCID; + // Effective Date + public Date OUEFF; + // Transaction Description + public String OUDSC1; + // Debit/Credit Code (D/C) + public String OUDRCRX; + // Debit Message 4 + public String OUDMS4; + // Partner Account Name + public String OUOSHN; + // Partner Bank + public String OUOBKB; + // Debit Message 1 + public String OUDMS1; + // Partner Account + public Long OUOACC; + // Debit Message 2 + public String OUDMS2; + // Debit Message 3 + public String OUDMS3; + // AV Message 4 + public String OUAVM4; + // Tran Number Within Day + public Integer OUNBR; + // AV Message 3 + public String OUAVM3; + // AV Message 2 + public String OUAVM2; + // Debit or Credit Code + public String OUDRCR; + // Transaction Amount / LCYE + public Double OUDLCY; + + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/payments/PaymentsTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/payments/PaymentsTasks.java new file mode 100644 index 0000000..2587ffa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/payments/PaymentsTasks.java @@ -0,0 +1,402 @@ +package cz.moneta.test.dsl.util.task.wso2.payments; + +import com.google.gson.JsonObject; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.AccountStates; +import cz.moneta.test.dsl.payment_engine.enums.CurrencyPAE; +import cz.moneta.test.dsl.payment_engine.model.IcbsReservationListSuccessResponse; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.time.LocalDateTime; + +public class PaymentsTasks { + + private final Harness harness; + public static String TRANSACTION_ID_KEY = "TRANSACTION_ID_KEY"; + + public PaymentsTasks(Harness harness) { + this.harness = harness; + } + + public ListOfTransactionsSuccessResponse getTransactionStatus(String token, String request) { + return harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_HISTORY_TRXS/001/") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", token) + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "800001701") + .withPayload(request) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(ListOfTransactionsSuccessResponse.class); + } + + public void checkTransactionStatusBooked(String token, String request, String transactionId) { + //1 API call each 10 seconds for 30 seconds + for (int i = 0; i < 3; i++) { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + throw new HarnessException("Error during Thread.sleep: " + e.getMessage()); + } + + ListOfTransactionsSuccessResponse responseData = getTransactionStatus(token, request); + + for (ListOfTransactionsSuccessResponse.RS_DATA rs_data : responseData.RS_DATA) { + String transactionIdFromResponse = rs_data.OUDCID.substring(rs_data.OUDCID.length() - 7); + if (transactionId.substring(transactionId.length() - 7).equals(transactionIdFromResponse)) { + harness.log("Transaction " + transactionId + " was found in ICBS." + responseData); + return; + } + } + harness.log("Transaction " + transactionId + " was NOT found in ICBS. Cycle number: " + i); + } + throw new HarnessException("Transaction " + transactionId + " was NOT found in ICBS."); + } + + public void checkTransactionTypeStatusBooked(String token, String request, String transactionId, PaymentData data) { + //1 API call each 10 seconds for 30 seconds + for (int i = 0; i < 3; i++) { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + throw new HarnessException("Error during Thread.sleep: " + e.getMessage()); + } + + ListOfTransactionsSuccessResponse responseData = getTransactionStatus(token, request); + + for (ListOfTransactionsSuccessResponse.RS_DATA rs_data : responseData.RS_DATA) { + String transactionIdFromResponse = rs_data.OUDCID.substring(rs_data.OUDCID.length() - 7); + String transactionTypeFromResponse = rs_data.OUOTC; + if (transactionId.substring(transactionId.length() - 7).equals(transactionIdFromResponse) + && data.getHdType().equals(transactionTypeFromResponse)) { + harness.log("Transaction " + transactionId + " was found in ICBS."); + return; + } + } + harness.log("Transaction " + transactionId + " was NOT found in ICBS. Cycle number: " + i); + } + throw new HarnessException("Transaction " + transactionId + " was NOT found in ICBS."); + } + + public void checkForeignTransactionStatusBooked(String token, String request, String transactionId) { + //1 API call each 10 seconds for 30 seconds + for (int i = 0; i < 3; i++) { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + throw new HarnessException("Error during Thread.sleep: " + e.getMessage()); + } + + ListOfTransactionsSuccessResponse responseData = getTransactionStatus(token, request); + + for (ListOfTransactionsSuccessResponse.RS_DATA rs_data : responseData.RS_DATA) { + String transactionIdFromResponse = rs_data.OUDSC1.substring(rs_data.OUDSC1.length() - 16); + if (transactionId.substring(transactionId.length() - 16).equals(transactionIdFromResponse)) { + harness.log("Transaction " + transactionId + " was found in ICBS."); + return; + } + } + harness.log("Transaction " + transactionId + " was NOT found in ICBS. Cycle number: " + i); + } + throw new HarnessException("Transaction " + transactionId + " was NOT found in ICBS."); + } + + public static String createRequestForTransactionCheck(String debtorAccount, String todayDate, String amount) { + JsonObject json = new JsonObject(); + json.addProperty("INBANK", 1); + json.addProperty("INACCT", debtorAccount); + json.addProperty("INDATEF", todayDate); + json.addProperty("INDATET", todayDate); + json.addProperty("INAMTF", amount); + json.addProperty("INAMTT", amount); + json.addProperty("INCURSOR", 1); + json.addProperty("INROWS", 999999); + return json.toString(); + } + + public void changeClientName(String token, String request) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/CHG_CUST/001/") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", token) + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "800001701") + .withPayload(request) + .post() + .andAssertFieldValue("RT1CNT", "0"); + } + + public static String createRequestForClientNameChange(String clientId, NonClient nonClient) { + JsonObject json = new JsonObject(); + json.addProperty("INCNBR", clientId); + json.addProperty("INCFF1", "YYYYYYYYYYY YYYYY"); + json.addProperty("INCFNM", nonClient.firstName()); + json.addProperty("INCLNM", nonClient.lastName()); + json.addProperty("INCSTR", nonClient.residencyAddress().getStreet()); + json.addProperty("INCDIS", nonClient.residencyAddress().getCity()); + json.addProperty("INCTWN", "Praha 011"); + json.addProperty("INCNTY", nonClient.residencyAddress().getCountry()); + json.addProperty("INPSTL", nonClient.residencyAddress().getZip()); + json.addProperty("INCFNO", "208"); + json.addProperty("INCHNO", nonClient.residencyAddress().getOrientationNumber()); + json.addProperty("INCCTY", nonClient.residencyAddress().getCityPart()); + json.addProperty("INCSTA", "52"); + json.addProperty("INOVFG", "1"); + json.addProperty("INDACI", "Y"); + json.addProperty("INSTFG", "2"); + json.addProperty("INCFF7", " Y"); + return json.toString(); + } + + public void changeClientsAccountState(String token, String request) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/CHG_CAACCT/001/") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", token) + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "800001701") + .withPayload(request) + .post() + .andAssertFieldValue("RT1CNT", "0"); + } + + public static String createRequestForClientsAccountStateChange(String clientsAccount, AccountStates clientsAccountState) { + JsonObject json = new JsonObject(); + json.addProperty("INBK", 1); + json.addProperty("INTYP", "6"); + json.addProperty("INACC1", "0"); + json.addProperty("INACCT", clientsAccount); + json.addProperty("INCFFA", "Y"); + json.addProperty("INSTAT", clientsAccountState.getState()); + json.addProperty("INDACI", "N"); + return json.toString(); + } + + public void changeClientsTimeAccountState(String token, String request) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/CHG_TMACCT/001/") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", token) + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "800001701") + .withPayload(request) + .post() + .andAssertFieldValue("RT1CNT", "0"); + } + + public static String createRequestForClientsTimeAccountStateChange(String clientsAccount, AccountStates clientsAccountState) { + JsonObject json = new JsonObject(); + json.addProperty("INCFFA", " Y"); + json.addProperty("INACCT", clientsAccount); + json.addProperty("INSTAT", clientsAccountState.getState()); + json.addProperty("INDACI", "Y"); + return json.toString(); + } + + public void changeClientsLoanAccountBranchCode(String token, String request) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/ICB/CHG_LN_INSUREXP/001/") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", "Bearer " + token) + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "800001701") + .withPayload(request) + .post() + .andAssertFieldValue("RT1CNT", "0"); + } + + public static String createRequestForClientsLoanAccountBranchCodeChange(String clientsAccount, String branchCode) { + JsonObject json = new JsonObject(); + json.addProperty("InBank", 1); + json.addProperty("InNote", clientsAccount); + json.addProperty("InBrch", branchCode); + return json.toString(); + } + + public static String createRequestForIFCYTransactionCreating(PaymentData data, CurrencyPAE currencyPAE) { + JsonObject json = new JsonObject(); + json.addProperty("clrMsgType", data.getTypeOfMessage()); + json.addProperty("reqdExctnDt", DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())); + + JsonObject instdAmt = new JsonObject(); + instdAmt.addProperty("amt", data.getAmount()); + instdAmt.addProperty("ccy", currencyPAE.getCurrency()); + json.add("instdAmt", instdAmt); + + JsonObject xchgRateInf = new JsonObject(); + xchgRateInf.addProperty("rateTp", data.getRateType()); + xchgRateInf.addProperty("xchgRate", data.getExchangeRate()); + xchgRateInf.addProperty("xchgRateDtTm", DateUtils.convertShortDateTimeForWso2(LocalDateTime.now())); + json.add("xchgRateInf", xchgRateInf); + + JsonObject dbtrAcct = new JsonObject(); + dbtrAcct.addProperty("accNum", data.getDebtorAcc()); + json.add("dbtrAcct", dbtrAcct); + + JsonObject dbtrAgt = new JsonObject(); + dbtrAgt.addProperty("mmbId", "0600"); + json.add("dbtrAgt", dbtrAgt); + + JsonObject cdtrAcct = new JsonObject(); + cdtrAcct.addProperty("accLed", false); + cdtrAcct.addProperty("accNum", data.getCreditorAcc()); + json.add("cdtrAcct", cdtrAcct); + + JsonObject cdtrAgt = new JsonObject(); + cdtrAgt.addProperty("mmbId", "0600"); + json.add("cdtrAgt", cdtrAgt); + + JsonObject cdtrRefInf = new JsonObject(); + cdtrRefInf.addProperty("refSymbolVS", "1234567890"); + cdtrRefInf.addProperty("refSymbolSS", "9876543210"); + cdtrRefInf.addProperty("refSymbolKS", "0123456789"); + json.add("cdtrRefInf", cdtrRefInf); + + JsonObject splmtryData = new JsonObject(); + splmtryData.addProperty("ICBS_TranServerProfile", data.getIcbsProfile()); + splmtryData.addProperty("channelID", "SB"); + splmtryData.addProperty("forceDeb", false); + splmtryData.addProperty("initPay", "C"); + splmtryData.addProperty("payScheme", data.getPayScheme()); + splmtryData.addProperty("userID", "800001701"); + json.add("SplmtryData", splmtryData); + + return json.toString(); + } + + public void createIFCYTransaction(String token, String request) { + RawRestRequest.Response response = harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/domestic-payment-controller/v1/paymentorders/async") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", token) + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "800001701") + .withPayload(request).post().andAssertStatus(201) + .andAssertFieldValue("txSts", "ACTC") + .andAssertPresent("txId"); + + String transactionId = response.extract("txId").asText(); + + harness.store("TRANSACTION_ID_KEY", transactionId); + } + + public static String createRequestForForeignTransactionCreating(PaymentData data) { + JsonObject json = new JsonObject(); + json.addProperty("CHANNEL_ID", data.getChannelId()); + json.addProperty("PAYMENT_METHOD", "TRF"); + json.addProperty("REQUESTED_EXEC_DATE", data.getTodayDate()); + json.addProperty("DBTR_ACC_NUM", data.getDebtorAcc()); + json.addProperty("INSTR_AMT", data.getAmount()); + json.addProperty("INSTR_AMT_CURR", data.getCurrencyCode()); + json.addProperty("CHARGE_BEARER", data.getFeeType()); + json.addProperty("AUTHORIZATION_REQUESTED", false); + json.addProperty("CDTR_ACC_OTHER_ID", data.getCreditorIban()); + json.addProperty("CDTR_NAME", data.getCreditorName()); + json.addProperty("CDTR_ADR_LINE_1", data.getCreditorAdressLine1()); + json.addProperty("CDTR_ADR_LINE_2", data.getCreditorAdressLine2()); + json.addProperty("END_TO_END_ID", data.getE2eRefDb()); + json.addProperty("REMITTANCE_INF_UNSTRUCTURED", data.getMessage()); + return json.toString(); + } + + public void createForeignTransaction(String token, String request) { + RawRestRequest.Response response = harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/CRT_PAYMENT_ORDER/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", token) + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "800001701") + .withPayload(request) + .post() + .andAssertStatus(200) + .andAssertPresent("ID_PE"); + + String transactionId = response.extract("ID_PE").asText(); + + harness.store("TRANSACTION_ID_KEY", transactionId); + } + + public void checkReservationPresence(String token, String request, String formattedAmount, + PaymentData data) { + //1 API call each 10 seconds for 30 seconds + for (int i = 0; i < 3; i++) { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + throw new HarnessException("Error during Thread.sleep: " + e.getMessage()); + } + + IcbsReservationListSuccessResponse response = harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_HOLDS/001/") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", token) + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "800001701") + .withPayload(request) + .post() + .mapResponseIntoObject(IcbsReservationListSuccessResponse.class); + + for (IcbsReservationListSuccessResponse.RS_DATA rs_data : response.RS_DATA) { + String amountFromResponse = String.valueOf(rs_data.OUAMT); + String dateFromResponse = String.valueOf(rs_data.OUEDT); + if (formattedAmount.equals(amountFromResponse) && data.getTodayDate().equals(dateFromResponse)) { + harness.log("Reservation was found in ICBS."); + return; + } + } + harness.log("Reservation was NOT found in ICBS. Cycle number: " + i); + } + throw new HarnessException("Account number: " + data.getAccountNumberClient() + + "\n" + + "New card reservation was created with amount: " + data.getAmount() + " with date: " + data.getReservationDate() + + "\n" + + "Reservation was NOT found in ICBS."); + } + + public String createRequestForListOfReservationsInICBS(Integer clientsAccount) { + JsonObject json = new JsonObject(); + json.addProperty("INBK", 1); + json.addProperty("INTYP", 6); + json.addProperty("INACCT", clientsAccount); + json.addProperty("INCURSOR", 1); + json.addProperty("INROWS", 99999999); + return json.toString(); + } + + public void pennyPayment(String amount, String paymentDate, String accountNumber, String againstPartyAccountNumber, String againstPartyBankNumber, String againstPartyName, String description) { + harness.tasks().wso2() + .restRequest() + .prepareEmptyRequestFromCbl("/t/payments.cluster/CRT_FROM_CNB_TRX/001/") + .addField("INTRCD", "11") + .addField("INAMNT", amount) + .addField("INIDDATE", paymentDate) + .addField("INID", accountNumber) + .addField("INDAC2", againstPartyAccountNumber) + .addField("INDBNK", againstPartyBankNumber) + .addField("INDACNAME", againstPartyName) + .addField("INAVM", description) + .addField("INCAC2", accountNumber) + .post(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/rest/RequestTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/rest/RequestTasks.java new file mode 100644 index 0000000..e4868ab --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/wso2/rest/RequestTasks.java @@ -0,0 +1,185 @@ +package cz.moneta.test.dsl.util.task.wso2.rest; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.UUID; + +public class RequestTasks { + + private static final String UFO = "UFO"; + private static final String WPS = "WPS"; + private static final String ATM = "ATM"; + private static final String HUB = "HUB"; + private static final String CBL = "CBL"; + private static final String PAY = "PAY"; + private static final String EXEVIDO = "EXEVIDO"; + private static final String ILODS = "ILODS"; + + private final Harness harness; + private Long readTimeout; + + public RequestTasks(Harness harness) { + this.harness = harness; + } + + /** + * Setup read timeout of REST call + * Default is 10 + * @param readTimeout timeout in seconds + */ + public RequestTasks withCustomReadTimeout(long readTimeout) { + this.readTimeout = readTimeout; + return this; + } + + public RawRestRequest.Post prepareEmptyRequestFromUfo(String path) { + return prepareEmptyRequest(path, UFO, UFO); + } + + public RawRestRequest.Post prepareEmptyRequestFromWps(String path) { + return prepareEmptyRequest(path, WPS, WPS); + } + + public RawRestRequest.Post prepareEmptyRequestFromAtm(String path) { + return prepareEmptyRequest(path, ATM, ATM); + } + + public RawRestRequest.Post prepareEmptyRequestFromCbl(String path) { + return prepareEmptyRequest(path, CBL, "DigitalchannelsSB_CBL"); + } + + public RawRestRequest.Post prepareEmptyRequestFromHub(String path) { + return prepareEmptyRequest(path, HUB, HUB); + } + + public RawRestRequest.Post prepareEmptyRequestFromNas(String path) { + return prepareEmptyRequest(path, "NAS", "RISK_NAS"); + } + + public RawRestRequest.Post prepareEmptyRequestFromErn(String path) { + return prepareEmptyRequest(path, "ERN", "RISKCOLLECTIONS_ERN"); + } + + public RawRestRequest.Post prepareEmptyRequestFromIcb(String path) { + return prepareEmptyRequest(path, "ICB", "PAYMENTS_ICB"); + } + + public RawRestRequest.Post prepareEmptyRequestFromPay(String path) { + return prepareEmptyRequest(path, PAY, ""); + } + + public RawRestRequest.Post prepareEmptyRequestFromGvp(String path) { + return prepareEmptyRequest(path, "GVP", "GVP"); + } + + public RawRestRequest.Post prepareRequestFromCbl(String path, String payload) { + String cblToken = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + return prepareRequest(path, cblToken, CBL, payload); + } + + public RawRestRequest.Post prepareRequestFromRefinansoHyp(String path, String payload) { + String token = harness.tasks().wso2().authorization().getToken("REFINANSO_HYP"); + return prepareRequest(path, token, "REFINANSO_HYP", payload); + } + + public RawRestRequest.Request prepareRequestFromUfo(String path) { + String token = harness.tasks().wso2().authorization().getToken(UFO); + return prepareRequest(path, token, UFO); + } + + public RawRestRequest.Request prepareRequestFromIlods(String path) { + String token = harness.tasks().wso2().authorization().getToken(ILODS); + return prepareRequest(path, token, ILODS); + } + + public RawRestRequest.Request prepareRequestFromHub(String path) { + String token = harness.tasks().wso2().authorization().getToken(HUB); + return prepareRequest(path, token, HUB); + } + + public RawRestRequest.Request prepareRequestFromExevido(String path) { + String token = harness.tasks().wso2().authorization().getToken("EXEVIDO_EXE"); + return prepareRequest(path, token, EXEVIDO); + } + + public RawRestRequest.Get prepareGetRequestFromExevido(String path) { + String token = harness.tasks().wso2().authorization().getToken("EXEVIDO_EXE"); + return prepareGetRequest(path, token, EXEVIDO); + } + + public RawRestRequest.Post prepareRequestFromCvm(String path, boolean addUserIdHeader, String payload) { + return prepareRequestWithCvm(path, addUserIdHeader, payload, "CVM_SRT"); + } + + public RawRestRequest.Post prepareRequestFromCblToCvm(String path, boolean addUserIdHeader, String payload) { + return prepareRequestWithCvm(path, addUserIdHeader, payload, "DigitalchannelsSB_CBL"); + } + + public RawRestRequest.Post prepareRequestFromMortgagesToCvm(String path, boolean addUserIdHeader, String payload) { + return prepareRequestWithCvm(path, addUserIdHeader, payload, "MORTGAGES_HYP"); + } + + public RawRestRequest.Post prepareRequestFromOptimusHubToCvm(String path, boolean addUserIdHeader, String payload) { + return prepareRequestWithCvm(path, addUserIdHeader, payload, "OPTIMUS_HUB"); + } + + public RawRestRequest.Post prepareRequestFromHubToCvm(String path, boolean addUserIdHeader, String payload) { + return prepareRequestWithCvm(path, addUserIdHeader, payload, HUB); + } + + public String getRandomId() { + return "HARNESS" + UUID.randomUUID().toString().replaceAll("-", ""); + } + + private RawRestRequest.Post prepareRequestWithCvm(String path, boolean addUserIdHeader, String payload, String sourceAppName) { + String tokenCvmSrt = harness.tasks().wso2().authorization().getToken(sourceAppName); + + RawRestRequest.Request request = harness.withWso2() + .prepareRequest() + .withPath("/t/" + path) + .withHeader("Authorization", tokenCvmSrt) + .withHeader("Accept", "application/json") + .withHeader("Content-Type", "application/json") + .withHeader("activityId", getRandomId()) + .withHeader("requestId", getRandomId()); + if (addUserIdHeader) { + request = request.withHeader("USERID_L2", "GEBTSRT"); + } + return request.withPayload(payload); + } + + private RawRestRequest.Post prepareEmptyRequest(String path, String sourceName, String vaultKey) { + String token = harness.tasks().wso2().authorization().getToken(vaultKey); + return prepareRequest(path, token, sourceName, "{}"); + } + + private String getHeader(String source) { + return "{\"ip-source-application\":\"" + source + "\",\"ip-source-user\":\"\"}"; + } + + private RawRestRequest.Post prepareRequest(String path, String token, String sourceName, String payload) { + return prepareRequest(path, token, sourceName) + .withPayload(payload); + } + + private RawRestRequest.Get prepareGetRequest(String path, String token, String sourceName) { + return prepareRequest(path, token, sourceName); + } + + private RawRestRequest.Request prepareRequest(String path, String token, String sourceName) { + String ufoBanker = AuthSupport.getCredentials(Keys.ufo.banka.banker, harness).getUsername(); + + RawRestRequest.Path request = (readTimeout == null) ? harness.withWso2().prepareRequest() : harness.withWso2().prepareRequest(readTimeout); + return request + .withPath(path) + .withHeader("X-IP-Assertion", getHeader(sourceName)) + .withHeader("USERID_L2", ufoBanker) + .withHeader("Authorization", token) + .withHeader("Content-Type", "application/json") + .withHeader("activityId", getRandomId()) + .withHeader("requestId", getRandomId()); + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/task/xyzmo/XyzmoTasks.java b/tests/src/main/java/cz/moneta/test/dsl/util/task/xyzmo/XyzmoTasks.java new file mode 100644 index 0000000..c33ac35 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/task/xyzmo/XyzmoTasks.java @@ -0,0 +1,186 @@ +package cz.moneta.test.dsl.util.task.xyzmo; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.xyzmo.XyzmoEndpoint; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.apache.commons.lang3.tuple.Pair; + +import java.io.IOException; + +public class XyzmoTasks { + + public static final XmlMapper JACKSON = new XmlMapper(); + private final Harness harness; + + public XyzmoTasks(Harness harness) { + this.harness = harness; + } + + public Pair startSession() { + String responseXml = RawRestRequest.customXmlBuilder(harness.getEndpoint(XyzmoEndpoint.class, 8080), + "application/soap+xml;charset=UTF-8") + .withPath("XyzmoController.asmx") + .withHeader("SOAPAction", "http://schemas.designplus.cz/xc/daenerys/11/basic-web-services/xc_start_session") + .withPayloadFromFile("xyzmo/01_XC_start.request.xml") + .post() + .extract("Body.xc_start_sessionResponse.xc_start_sessionResult") + .asText(); + try { + JsonNode xmlRoot = JACKSON.readTree(responseXml); + String workstepId = xmlRoot.get("SessionTasks").get("TaskGroup").get("xyzmoWorkstepId").asText(); + String tokenId = xmlRoot.get("SessionState").get("tokenId").asText(); + return Pair.of(workstepId, tokenId); + } catch (IOException e) { + throw new IllegalStateException(String.format("failed to parse response xml: %s", responseXml), e); + } + } + + public RawRestRequest.Response signDocument(String workstepId) { + return RawRestRequest.customXmlBuilder(harness.getEndpoint(XyzmoEndpoint.class, 47003), + "application/soap+xml;charset=UTF-8") + .withPath("WorkstepController.Process.asmx") + .withHeader("SOAPAction", "http://com.xyzmo.server.workstepController.Process/SignWorkstepDocument_v2") + .withPayload(String.format("\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " %s\n" + + " \n" + + " <!--Signature configuration--><signature><!--If" + + " given, a signature task with the same id is signed, otherwise a new signature field is " + + "added--><sigFieldId>2</sigFieldId><!--If given, either the existing " + + "signature is reset to this position or a new signature is created. If no id, no image and no" + + " position is given, an invisible signature is added--><sigFieldPosition><!--The " + + "document reference number of the document this signature belongs to.--><" + + "DocRefNumber>1</DocRefNumber><!--The elements x coordinate relative to the " + + "corner of the page in points. The referened corner is specified by " + + "'positionReferenceCorner'--><positionX>322.32</positionX><!--The elements " + + "y coordinate relative to the corner of the page in points. The referened corner is specified" + + " by 'positionReferenceCorner'--><positionY>340.76</positionY><!--The " + + "elements width in points--><width>195</width><!--The elements height in " + + "points--><height>72</height><!--The page number--><positionPage>" + + "3</positionPage><!--Specifies which corner is the reference for the position. " + + "Possible Values: 'Lower_Left', 'Lower_Right', 'Upper_Left', Upper_Right'--><" + + "positionReferenceCorner>Lower_Left</positionReferenceCorner><" + + "/sigFieldPosition><!--Image embedded into the signature in base64 encoding--><" + + "signatureImage>" + + "iVBORw0KGgoAAAANSUhEUgAAAjYAAADQCAYAAAAUNCuDAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAgfSURBVHhe7dhRjuQ2DAXAvX8OnUSLGDvTaffYsmWRVBXQP8EoliiBj9hfAAAAAAAAAAAAAAAAAAAAAAAAAABAl7/+/vkHAJDCkcHFcAMATPP1X1t++h3Vuw4A4JQZQ8fT3wMACos0WBhwAIBuUYcIww0AcFj0fxkx2AAAh2QZGqIPXwDAZNkGBYMNAPBWxiHBYAMA/E/mAcFwAwB8Y7ABAErIPhgYbACA3yoMBQYbAOC3KkNBO4cBBwAWV2kYMNgAwOIMNgBACdUGAYMNACzMYAMAlFFpEDDUAMDiDDYAQBlVhgFDDQBgsAFgPS00th/1VLhXbxOAH70OM8KjJoMNAEt4DQvhUZPBBoDy3gWF8Kgp+716lwB8tBcUAqQmgw0AZX0KCQFSV+a79S4B2LUXEsKjNoMNACUZbNaV9Y69TQDe+hQQwmMN2e7ZuwRg17uQaP9NeKwly317lwDs2gsJ4bEegw0AqX0KCOGxpuj37l0CsGsvJNp/FyBrMtgAkNanwYZ1Rb5/bxOAXUKCd6K+C+8VgF1Cgj0GGwDSERJ8Eu19eK8AfCQo+EmkN+K9ArCrhYSg4IgI78RbBWCXkOCsmW/GewXgI0FBj1nvxnsF4KMrQdHWCpp1PX333hoAP+oNi22dsFmXwQaAcFYbbNp+t19FT5+v2ncASOxKWGxrswVO1n0fNeN8T3yr6n0BcKMrYTEjQK9qe8247zNmnW/k96reFQA36w2Mtm77ZfG630x7P2M754zzjfpm1bsC4Ga9gTErOK943W/1sJx1vrvfRvV7AuBGvaFxd3g94XW/1QNz9vnu+n71ewLgRr2h0dZlCpx3exWY412pcbY3BkAAPcGxrckeOkLzGVfeGACcciV0soeP8HxOq/WZersbAE7rDY9tXfbwEZ7PazU/Und3A8BpveGxrcsePsJznk+1dy8AdOkNkG1d9gASoHPt1d+9ANClN0DaugrhI0Dne/eW3AsAXXoD5F0YZSRA49jelDsBoFtviFQJICEax3YXVd4WABP0BkiV8BGgMby7B3cDwGm94dHWVQge4RnD3j1UeWcAPKQ3NKoEjtCc78gdbO/NfQGw60pIVAkZQTlXT/23t+fuAPjmSjBUChUBOc/V2rf17g+AWwKlCsE4x511d4cAizPY/FExFNuZtl9EI/ZV8R4BOOhqCFQKkYqBGPlMI/dW8S4BOOBqAFQKkGph2M4T+Uyj97adP3INALjZ1aZfKTSqnSXyeZ7e21aPyDUB4Aa9jb5iUFQ5S/RzzN5ftXcLwBe9DX5bVykgqpwl+jmi7K/to9L7BeBfvY19WzcrGEZ8t0rIRT5HxL21PVW5e4Dl9Tb0bd2sQBjx3QrhFvUMbV/R61vh/gGW19vMt3UzwmDUNysEW8QzZKpr22uFdwCwrN4mvq2bEQKjvlkh0CKeIWNd254rvAeA5fQ2723d081/5PcqBFm0M2Svadt/hXcBsIzepr2te7Lpj/5W9gCLuP/sNd1UOQdAeb0N++u6p5r+E9/JHGCR9t72krmW71Q8E0A5PY36dc1Tzf6J72QOrih7z1zDI9r5qp8RIK2eBv265okm/2SQZA2tKPvOWr+z2jlXOStAGj2N+XXN6Ob+dHhkDasI+85auyvamVc8N0BIPQ353ZqRjf3p0MgYUm3PEfadsXZ3WfnsAGH0NON3a0Y09fb/nBEWM755RZT9ZqvbCLPeLAD/6WnC79aMaOazAiJbMEXZb7a6jdRqoR4AE5xtvp/+/s5GPjMUsgVShP1mq9lTWl3UBuBBZ5vuT39/VxOfHQZZwijKPrPUaxb1AXjImYZ75G/b31xp4lfX3yXCHo5QqzzUCeABZ5rt0b/tbeCRGn+WEJq9zyx1ikK9AAY702iP/m37u54GHqnpR9rLJ7P3maVOkbSaqRvAIGca7NlmfOTvtyZ/9v89WrT97Jm5zyw1iiriuwdI70xj7WnCW/Pe+0UVeW9fzdpnlvpkoJYANzraVFdsvhnOPGOPgvhe6glwo6NNdcXmm+HMM/YoiO+npgA3OdpQV2y8Gc48Y49CeAx1BbjB0Wa6atONfO4ZexO+46gtwA2ONtNVm27kc8/Ym/Adp9VWfQEuOtJIV2+2Ec//9J7a91Z/B09Ra4ALjjTQ1ZtsxPM/uSch+zw1B7jgpya6epONeP6n9iRg51B3gIs+NdLVm2zE8z+xJ+E6j9oDXPSukbb/psHGrMHoPbn3udQf4KLXRqqx/hGxFiP35O7ncwcAF702Uo31j4i1GLkndz+fOwC4qDXSr81UY/0uWj1G7ce9x+AeAG7Qmun247toNXFHdblbAIYz2PAUdwvAcAYbRmt3uv0AYCiDDSO5TwAeFyl8BGEt7hOAxxlsGMV9AjBFlAAShDW0e3SXAExjsOEu7hCA6Qw23MUdAhBChEASijm1e9t+ABCCwYYe7gyAkKIElKDMxX0BEJLBhh7uC4CwDDcAQBkGGwCglAhDhcEGALjN7MGifd9wAwDcwr/aAABlGCoAgDLODDaGIAAgvCMDi6EGAEjj0+BiqAEA0nk3wBhqAIC02iDz+gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACb59esftGFV50ldf5oAAAAASUVORK5CYII=</signatureImage><!--Additional signature parameters--><signatureConfig><!--Optional tag to set the reason in the adobe signature--><reason></reason><!--Optional tag to set the location in the adobe signature--><location></location><!--Optional tag to set the contact info in the adobe signature--><contactInfo></contactInfo><!--Optional tag localTimeInUtc: specify the signing time if not the local time of the server should be used. Format: yyyy-MM-ddThh:mm:ss.ffffZ--><localTimeInUtc></localTimeInUtc><signatureHashAlgorithm>Sha256</signatureHashAlgorithm></signatureConfig><!--The encrypted signature data container to embed into the signature-->\n" + + "<EncryptedSignatureDataContainer version="1.0">\n" + + "<EncryptedSessionKey Certificate="" + + "MIIEBTCCAu2gAwIBAgIDGxSxMA0GCSqGSIb3DQEBBQUAMGMxCzAJBgNVBAYTAkNaMSkwJwYDVQQDEyBJLkNBIC0gU3RhbmRhcmQgcm9vdCBjZXJ0aWZpY2F0ZTEpMCcGA1UEChMgUHJ2bmkgY2VydGlmaWthY25pIGF1dG9yaXRhIGEucy4wHhcNMTIwODIwMTA0MTE0WhcNMTMwODIwMTA0MTE0WjBeMQswCQYDVQQGEwJDWjEaMBgGA1UEAwwRR0UgUGFkIEVuY3J5cHRpb24xHDAaBgNVBAoME0dFIE1vbmV5IEJhbmssIGEucy4xFTATBgNVBAUTDElDQSAtIDczODY5MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL2kPpAgL989nOHwDpxAHQlMT7riIT8fE7eGIZPpwYC5op53gUE+6zs6UFpRsh1oE11DfHLgwamxc1mNWnv5lg5tNSNrgAyiLutD/Ttv7tUA+NIw9wVemY9dpL2a7nzf48jds+SZASOTJnGr6j2cPYadMrCpOHyvJOkSBHlFQha4ByZWTSqXRtyDvaEf2VPQd5WK200SI9xp9PapXkgsvpek3DhGFjhUByjUkX0Y8Q6y0ioO+AFS9ae05B0IuZsIc+gkeodz8VCN6rGLh7SI6GOq+a2Hp2ZXzjxifnIWwu3zbAotWWM182mG0zUw/ctJjMKTpOJFTGtKrw1eNLF8V7kCAwEAAaOBxjCBwzAfBgNVHSMEGDAWgBTrN6S+uW9gF/vT/y1g4QQer8/G0zAdBgNVHQ4EFgQU2HK2uBAF5O5mJmltzucowUEewk8wGQYDVR0gBBIwEDAOBgwrBgEEAYG4SAEBAQMwCwYDVR0PBAQDAgTwMFkGA1UdHwRSMFAwJqAkoCKGIGh0dHA6Ly9zY3JsZHAxLmljYS5jei9zaWNhMDguY3JsMCagJKAihiBodHRwOi8vc2NybGRwMi5pY2EuY3ovc2ljYTA4LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAdw73djE4kaYppVHytBnlbJkBY8+LGW9vHZYkDEo/vKYRu4dM/SUFgTZyQrSrso95xh22HA+V+C5+/Lfpm97F/e1nohSX2RSWF9Co3P2UHryx+qvlWhemGc/nGTyc9mYSaq/Y/ImDsBNG/QqGUp7n6zRbjCSdBBKnVCsjpCqCjVN6u9GlCFD7qbL2XiGGNscF10usDi3ujQkvgITh2DsImQvpNTFkGLBvxW+RYwEiDEGx+1rEFh/Cc3JbFMuExvX4n2SyyUg1dtjPtvdpOOxDO059ID5iVQHHXAnntGPuErMI/86bIKqmFzb+l4rFaPQWjs1uOVC20EB1Ibr8knZJAw==" Encoding="Base64" Padding="PKCS#1 v1.5">ecCFDy0UQ/RgZzhGpMQUNYM0ACK2Zops4w8xCD2K2Rd4cDrZQ8iHxiD5LYo0q56CsCk7iFrGgu57hvYjKGoahPhuf5mXZnDcPQg6W9UVjzDkcXRUk5AAZ6781WQM4vwV1W+2MrtSf1UKx1ypM/mtc1KUiazYb9bSUXn9UZ9q920/iBe04y9mKBD6EKfUoEyYooqwQc5tzlKZInlXXix1hnB5L/6Fhm/G5gWDMtBwv2J/EJ3y3a6tuwUUPxJ1xbFtoQHVEZloTv80TesNz5u/fWNrOjAU43C9PWsuy71AB70yMsljjN6reMo+EMSBIsUOaJOvSHW/Av0UqLCDkeGB6A==</EncryptedSessionKey>\n" + + "<EncryptedData CipherMode="CBC" CipherSize="128" Encoding="" + + "Base64" IvSize="128" KeySize="256" PaddingMode="PKCS7" " + + "SymmetricAlgorithm="AES">" + + "2JIHQpGTUVb9fTfecbx8aP4Zlxj0j6LMhvS6yxhaXrfODRxnyXG1d/xCLCkcZoacUbeaYdeL" + + "+5Tcrg4jc9eyCIzdN1LzLGuUHr5VwJCqZkgmkFgeIxNblhMbrh/2CvL5waN/eyVKPjnyWr" + + "+swi4eyrtNg3t2GJhpQw2TCpId4Adwp4b8lZy54j52JcHcYldsfX031/Ax2VC5sA7TihDCbMgC" + + "+dqekCkgTzAjMXRqm9QXGNeK7dvxXfe1tMCzJaliNQ3rBd+nyrQJoIr9FDJwDEv6Z9O9DDMMnxfRMUr6T9RT" + + "/SAWby4qFlkLp9jYKutLBuLfnKU149wZBmS0TyqF8LoOD0RhYTa" + + "+ULNYVWfcrMzQPyqi5gMoWg0CANHnYnBibrXCTKJwj4GSTFexGceZygn3CVzuJD0QwpFZmAq7vlkGCy1jVbzx06JNA8xUrf6CKJw8JOHkPHgVJdECyDPSwducWQGAzD8ZSryHx+86yXV3PR/jL+5UiLagLFl7D9NtBlQpnJLCn0LwVi3azT7mI7Aj2ySZMt6bD8f6ARqgP4F+KbfBRmR5e0MW6Kp0hvVeJEmpHJpADcbwvc6ARTVdAqWCCgtHh6dN0caJP72w1mSJDbSGY9iM37UyXbN0JX9j+newKR8g49aA8FfZk9EuzJvHKmfB9a22JqJPwO1B01WPk9ZEwZ12N4+tTwijbtyPpUMDRahDPQsrU8aA6EpzLe+y3Bz5qp0fw8+lupsX/s8uKSx/9lsoH89s3YCaqpwYU5TV2WTLlcuS9Ei50NuVEZJ1zhIvrFxFkakIBSytKtT1pgsVNDStLyxZy4HzBemyDtAaDquY0MdHjOyTSZ+NSia2TUjdRvJixd01Re2IBZlEw9Qy3+zofPE7yOz7Py5gcx1VBST0EeJv14p8f7PQx232RqhP4AvZg4HrHXpifq3orObM5w6BySVgyaS03GkrF/YC+oZ989xzJa0F01N5yuU6Lk77AcjqJItAQexHujIxz4EUrZs1gRjrzD7dJeNCTEt6xwirWJpZIAoTGOthoehu+RQJIrhlxVrwLmWZkmPzbDv/nrxyi5F0NEgv35HAf2+79Td4lSmGzb0+UcTAv7W+uOvD83oRdaKpNBWZkzYZE+lqRNJJQGPhvY2fWUGaToBq84qhyEo+cbOGS4/rMpVlAoexnfVhIriwvlaT0xWb/MaiRf4DURI02Dj94KmH8LdqjNqCvEmsCtPAW/Q7Atp/sEtJba/QUQdVWxF/rwSrG+d1PF9uS1Vrn4+sYA/+kHyEBhdPbaehehLoQ8z4YcTTM9cJr60/+WlW80UsYregPCWPh/zCrk2LPGoOHra8TRcnEXpp3v6Z07cRJ1TnhnCvbdam3D5AmhBsYluEE0V9wvGKrClDAflwh+tB6cE5MrrVWYDvGZO8BldDoaHsKoD7ZV+JQHR6z0IDQVAQlMn4i7m5w52cZbWsUuvtAFa482dusEkwjB6CTXGw0l45nrDPvwJfcLbtfPdEsKtXUqr0X43lusc3GLfpEev5sVA4/6jmrwOAcqfHqzyVP3KT0Q==</EncryptedData>\n" + + "</EncryptedSignatureDataContainer>\n" + + "\t\t </signature>\n" + + " \n" + + " <TransactionInformation><ClientId>XCF " + + "[Normal desktop]</ClientId><ProductName>SIGNificant WSI</ProductName><" + + "ProductVersion>3.0</ProductVersion><ProductReleaseDate>2015-01-01<" + + "/ProductReleaseDate><IpAddress>freya</IpAddress><" + + "/TransactionInformation>\n" + + " \n" + + " \n" + + "", workstepId)) + .post(); + } + + public RawRestRequest.Response getSessionStatus(String tokenId) { + return RawRestRequest.customXmlBuilder(harness.getEndpoint(XyzmoEndpoint.class, 8080), + "application/soap+xml;charset=UTF-8") + .withPath("XyzmoController.asmx") + .withHeader("SOAPAction", "http://schemas.designplus.cz/xc/daenerys/11/basic-web-services/xc_get_session_status") + .withPayload(String.format("\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " %s\n" + + " \n" + + " \n" + + "", tokenId)) + .post(); + } + + public String getWorkstepId(String tokenId) { + String responseXml = RawRestRequest.customXmlBuilder(harness.getEndpoint(XyzmoEndpoint.class, 8080), + "application/soap+xml;charset=UTF-8") + .withPath("XyzmoController.asmx") + .withHeader("SOAPAction", "http://schemas.designplus" + + ".cz/xc/daenerys/11/basic-web-services/xc_get_session_status") + .withPayload(String.format("\n" + + " \n" + + " \n" + + " \n" + + " %s\n" + + " \n" + + " \n" + + "", tokenId)) + .post() + .extract("Body.xc_get_session_statusResponse.xc_get_session_statusResult") + .asText(); + try { + JsonNode xmlRoot = JACKSON.readTree(responseXml); + return xmlRoot.get("SessionTasks").get("TaskGroup").get("xyzmoWorkstepId").asText(); + } catch (IOException e) { + throw new IllegalStateException(String.format("failed to parse response xml: %s", responseXml), e); + } + } + + public RawRestRequest.Response setTaskResult(String tokenId) { + return RawRestRequest.customXmlBuilder(harness.getEndpoint(XyzmoEndpoint.class, 8080), + "application/soap+xml;charset=UTF-8") + .withPath("XyzmoController.asmx") + .withHeader("SOAPAction", "http://schemas.designplus.cz/xc/daenerys/11/basic-web-services/xc_set_task_result") + .withPayload(String.format("\n" + + " \n" + + " \n" + + " \n" + + " %s\n" + + " 1\n" + + " 0\n" + + " OK\n" + + " 1\n" + + " \n" + + " \n" + + "", tokenId)) + .post(); + } + + public RawRestRequest.Response finishWorkstep(String tokenId) { + return RawRestRequest.customXmlBuilder(harness.getEndpoint(XyzmoEndpoint.class, 47003), + "application/soap+xml;charset=UTF-8") + .withPath("WorkstepController.Process.asmx") + .withHeader("SOAPAction", "http://com.xyzmo.server.workstepController.Process/FinishWorkstep_v2") + .withPayload(String.format("\n" + + " \n" + + " \n" + + " \n" + + " #xcWorkstepId#\n" + + " <TransactionInformation><ClientId>XCF " + + "[Normal desktop]</ClientId><ProductName>SIGNificant WSI</ProductName><" + + "ProductVersion>3.0</ProductVersion><ProductReleaseDate>2015-01-01<" + + "/ProductReleaseDate><IpAddress>freya</IpAddress><" + + "/TransactionInformation>\n" + + " \n" + + " \n" + + "", tokenId)) + .post(); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/wso2/WaitForApiRequest.java b/tests/src/main/java/cz/moneta/test/dsl/util/wso2/WaitForApiRequest.java new file mode 100644 index 0000000..7dc80f9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/wso2/WaitForApiRequest.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.util.wso2; + +import lombok.Builder; +import lombok.Getter; +import lombok.ToString; + +import java.util.function.Predicate; + +@Getter +@Builder +@ToString +public class WaitForApiRequest { + + private String path; + private Object requestPojo; + private Class responseClass; + private Predicate successPredicate; + private Predicate failurePredicate; + private String testCaseId; + + @Builder.Default + private int timeoutSeconds = 60; + + @Builder.Default + private int intervalSeconds = 3; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/util/wso2/WaitForApiUtils.java b/tests/src/main/java/cz/moneta/test/dsl/util/wso2/WaitForApiUtils.java new file mode 100644 index 0000000..4dd8375 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/util/wso2/WaitForApiUtils.java @@ -0,0 +1,59 @@ +package cz.moneta.test.dsl.util.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.exception.HarnessException; +import lombok.experimental.UtilityClass; + +import java.util.function.Predicate; + +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@UtilityClass +public class WaitForApiUtils { + public void waitForApi(Harness harness, WaitForApiRequest req) throws InterruptedException { + int attempts = Math.max(1, req.getTimeoutSeconds() / req.getIntervalSeconds()); + T lastResponse = null; + + for (int i = 0; i < attempts; i++) { + lastResponse = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo(req.getPath()) + .withHeader("Content-Type", "application/json") + .withPojoPayload(req.getRequestPojo()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(req.getResponseClass()); + + harness.log(String.format("%s: waitForApi attempt %d path=%s response=%s", req.getTestCaseId(), i + 1, req.getPath(), lastResponse)); + + if (testSuccessPredicate(req.getSuccessPredicate(), lastResponse)) { + return; + } + + testFailurePredicate(lastResponse, req); + + Thread.sleep(req.getIntervalSeconds() * 1000L); + } + + throw new AssertionError(String.format("%s: Timeout waiting for success predicate on path=%s, lastResponse=%s", req.getTestCaseId(), req.getPath(), lastResponse + )); + } + + private static boolean testSuccessPredicate(Predicate successPredicate, T response) { + assertNotNull(successPredicate); + return successPredicate.test(response); + } + + private static void testFailurePredicate(T response, WaitForApiRequest req) { + Predicate failurePredicate = req.getFailurePredicate(); + + if (failurePredicate == null) { + return; + } + + if (failurePredicate.test(response)) { + throw new HarnessException("Wait aborted: failure condition matched for path=" + req.getPath() + + ", request=" + req.getRequestPojo() + + ", lastResponse=" + response + "."); + } + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wiremock/tasks/WiremockTasks.java b/tests/src/main/java/cz/moneta/test/dsl/wiremock/tasks/WiremockTasks.java new file mode 100644 index 0000000..465aa21 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wiremock/tasks/WiremockTasks.java @@ -0,0 +1,43 @@ +package cz.moneta.test.dsl.wiremock.tasks; + +import cz.moneta.test.dsl.Harness; + +import cz.moneta.test.harness.support.util.Template; + +public class WiremockTasks { + private final Harness harness; + + public WiremockTasks(Harness harness) { + this.harness = harness; + } + + public String createMock(Template payload) { + var response = harness.withMockServer() + .prepareRequest() + .withPath("/__admin/mappings") + .withPayloadFromTemplate(payload) + .post() + .andAssertStatus(201); + return response.extract("id").textValue(); + } + + public String createMock(String payload) { + var response = harness.withMockServer() + .prepareRequest() + .withPath("/__admin/mappings") + .withHeader("Content-Type", "application/json") + .withPayload(payload) + .post() + .andAssertStatus(201); + return response.extract("id").textValue(); + } + + public void deleteMock(String mockId) { + harness.withMockServer() + .prepareRequest() + .withPath("/__admin/mappings/" + mockId) + .delete() + .andAssertStatus(200); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/MockServer.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/MockServer.java new file mode 100644 index 0000000..6afa654 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/MockServer.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.wso2.MockServerEndpoint; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +public class MockServer { + + private final Harness harness; + + public MockServer(Harness harness) { + this.harness = harness; + } + + public RawRestRequest.Path prepareRequest() { + MockServerEndpoint endpoint = harness.getEndpoint(MockServerEndpoint.class); + return RawRestRequest.jsonBuilder(endpoint); + } + +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/Wso2.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/Wso2.java new file mode 100644 index 0000000..43dbb18 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/Wso2.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.endpoints.wso2.Wso2GatewayEndpoint; +import cz.moneta.test.harness.support.mwf.MwfRequest; +import cz.moneta.test.harness.support.mwf.TifClient; +import cz.moneta.test.harness.support.rest.Builders; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.harness.support.rest.RestRequest; + +public class Wso2 { + + private final Harness harness; + + public Wso2(Harness harness) { + this.harness = harness; + } + + public RawRestRequest.Path prepareRequest() { + Wso2GatewayEndpoint endpoint = harness.getEndpoint(Wso2GatewayEndpoint.class); +// .registerResponseHandler(new TokenRenewalResponseHandler(() -> harness.tasks().wso2().authorization().ufoToken())); + + return RawRestRequest.jsonBuilder(endpoint); + } + + public RawRestRequest.Path prepareRequest(long readTimeout) { + Wso2GatewayEndpoint endpoint = harness.getEndpoint(Wso2GatewayEndpoint.class, readTimeout); + return RawRestRequest.jsonBuilder(endpoint); + } + + public RawRestRequest.Path prepareRequestXml() { + return RawRestRequest.xmlBuilder(harness.getEndpoint(Wso2GatewayEndpoint.class)); + } + + private > B getBuilder(Class builderClass) { + return Builders.newRestBuilder(builderClass, Wso2GatewayEndpoint.class, harness); + } + + @Deprecated + // Tif should not be used + public > R prepareTifRequestAsCbl(Class mwf) { + return cz.moneta.test.harness.support.mwf.Builders.newMwfBuilder(mwf, TifClient.WSO2_CBL, harness); + } + + @Deprecated + // Tif should not be used + public > R prepareTifRequestAsUfo(Class mwf) { + return cz.moneta.test.harness.support.mwf.Builders.newMwfBuilder(mwf, TifClient.WSO2_UFO, harness); + } + + @Deprecated + // Tif should not be used + public > R prepareTifRequestAsGem(Class mwf) { + return cz.moneta.test.harness.support.mwf.Builders.newMwfBuilder(mwf, TifClient.WSO2_GEM, harness); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/Wso2Utils.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/Wso2Utils.java new file mode 100644 index 0000000..cbb8a16 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/Wso2Utils.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.wso2; + +import cz.moneta.test.harness.support.rest.RawRestRequest; + +public class Wso2Utils { + private Wso2Utils() { + } + + public static void validateResponse(RawRestRequest.Response response, int possibleStatus, boolean isGw, + String gwField, String gwValue, + String eiField, String eiValue) { + if (response.getStatus() != possibleStatus) { + response.andAssertStatus(200); + return; + } + String assertField = isGw ? gwField : eiField; + String assertValue = isGw ? gwValue : eiValue; + response.andAssertFieldValue(assertField, assertValue); + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/data/CardData.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/data/CardData.java new file mode 100644 index 0000000..62dd785 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/data/CardData.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dsl.wso2.data; + +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class CardData { + private String rc; + private String name; + private String bu; + private String cif; + private String account; + private String card; + private String contract; + private String cardType; + private String prodInstKey; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AddEmContextRoleRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AddEmContextRoleRequest.java new file mode 100644 index 0000000..98446a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AddEmContextRoleRequest.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for ADD_EM_CONTEXT_ROLE service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class AddEmContextRoleRequest { + + @JsonProperty("contextId") + private Long contextId; + + @JsonProperty("roleId") + private Long roleId; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AddEmContextRoleResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AddEmContextRoleResponse.java new file mode 100644 index 0000000..ea86e84 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AddEmContextRoleResponse.java @@ -0,0 +1,43 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Response model for ADD_EM_CONTEXT_ROLE service. + * 200 response is an empty object; default error contains an "fault" object. + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class AddEmContextRoleResponse { + + /** + * Optional fault structure returned in error cases ("default" response) + */ + @JsonProperty("fault") + private ErrorModelFault fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ErrorModelFault { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AresPoRefreshRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AresPoRefreshRequest.java new file mode 100644 index 0000000..0549570 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AresPoRefreshRequest.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +public class AresPoRefreshRequest { + + @JsonProperty("ICO") + private String ico; + + @JsonProperty("SSO") + private String sso; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AresPoRefreshResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AresPoRefreshResponse.java new file mode 100644 index 0000000..ece0b16 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/AresPoRefreshResponse.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.*; + +import java.util.ArrayList; +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class AresPoRefreshResponse { + + @Builder.Default + private List refresh_Status = new ArrayList<>(); + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class RefreshStatus { + @JsonProperty("REFRESH_STATUS") + private String refreshStatus; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/ChgEmChnLimRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/ChgEmChnLimRequest.java new file mode 100644 index 0000000..da69d88 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/ChgEmChnLimRequest.java @@ -0,0 +1,56 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for CHG_EM_CHN_LIM service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class ChgEmChnLimRequest { + + @JsonProperty("CIF") + private String cif; + + @JsonProperty("DAYLIMIT") + private String dayLimit; + + @JsonProperty("DAYLIMITVALUE") + private Double dayLimitValue; + + @JsonProperty("CHANNEL") + private String channel; + + @JsonProperty("WEEKLIMIT") + private String weekLimit; + + @JsonProperty("WEEKLIMITVALUE") + private Double weekLimitValue; + + @JsonProperty("MONTHLIMIT") + private String monthLimit; + + @JsonProperty("MONTHLIMITVALUE") + private Double monthLimitValue; + + @JsonProperty("USERID") + private Long userId; + + @JsonProperty("CONTEXT_ID") + private Long contextId; + + @JsonProperty("ENTITY_ID") + private Long entityId; + + @JsonProperty("TIMESTAMP") + private String timestamp; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/ChgEmChnLimResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/ChgEmChnLimResponse.java new file mode 100644 index 0000000..4184292 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/ChgEmChnLimResponse.java @@ -0,0 +1,43 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Response model for CHG_EM_CHN_LIM service + * 200 response contains TIMESTAMP; default/error contains a `fault` object + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class ChgEmChnLimResponse { + + @JsonProperty("TIMESTAMP") + private String timestamp; + + @JsonProperty("fault") + private Fault fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Fault { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtAccountIcbRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtAccountIcbRequest.java new file mode 100644 index 0000000..dcc60b0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtAccountIcbRequest.java @@ -0,0 +1,141 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +public class CrtAccountIcbRequest { + @JsonProperty("AAAdresat") + private String aaAdresat; + + @JsonProperty("AACO") + private String aaco; + + @JsonProperty("AACP") + private String aacp; + + @JsonProperty("AACtvrt") + private String aaCtvrt; + + @JsonProperty("AAObec") + private String aaObec; + + @JsonProperty("AAPSC") + private String aaPsc; + + @JsonProperty("AAPosta") + private String aaPosta; + + @JsonProperty("AAUlice") + private String aaUlice; + + @JsonProperty("AAZeme") + private String aaZeme; + + @JsonProperty("BankAtWork") + private String bankAtWork; + + @JsonProperty("CIF") + private String cif; + + @JsonProperty("CisloUctu") + private String cisloUctu; + + @JsonProperty("CisloUctuPrijemceKodBanky") + private String cisloUctuPrijemceKodBanky; + + @JsonProperty("DatumNarozeni") + private String datumNarozeni; + + @JsonProperty("DatumOtevreni") + private String datumOtevreni; + + @JsonProperty("DatumPrvnihoVypisu") + private String datumPrvnihoVypisu; + + @JsonProperty("DistribuceVypisu") + private String distribuceVypisu; + + @JsonProperty("DruhKlienta") + private String druhKlienta; + + @JsonProperty("DruheJmeno") + private String druheJmeno; + + @JsonProperty("ICO_Zamestnavatel") + private String icoZamestnavatel; + + @JsonProperty("Jmeno") + private String jmeno; + + @JsonProperty("NazevZamestnavatele") + private String nazevZamestnavatele; + + @JsonProperty("NuloveUroceni") + private String nuloveUroceni; + + @JsonProperty("ObchodniJmeno") + private String obchodniJmeno; + + @JsonProperty("ObchodniMistoAlternativni") + private String obchodniMistoAlternativni; + + @JsonProperty("ObchodniMistoKod") + private String obchodniMistoKod; + + @JsonProperty("PausalniPoplatekPocetMesicuZdarma") + private Long pausalniPoplatekPocetMesicuZdarma; + + @JsonProperty("PeriodaVypisu") + private String periodaVypisu; + + @JsonProperty("PoplatkovyPlan") + private String poplatkovyPlan; + + @JsonProperty("PoplatkovyPlanMatersky") + private String poplatkovyPlanMatersky; + + @JsonProperty("PostovniPoukazka") + private String postovniPoukazka; + + @JsonProperty("PouzitaAA") + private String pouzitaAA; + + @JsonProperty("Prijmeni") + private String prijmeni; + + @JsonProperty("PrimarniUrednik") + private String primarniUrednik; + + @JsonProperty("ProduktKod") + private String produktKod; + + @JsonProperty("SekundarniUrednik") + private String sekundarniUrednik; + + @JsonProperty("TitulPred") + private String titulPred; + + @JsonProperty("TitulZa") + private String titulZa; + + @JsonProperty("TransakceNavic") + private String transakceNavic; + + @JsonProperty("UlozPSCBezKontroly") + private String ulozPSCBezKontroly; + + @JsonProperty("UrokovaSazba") + private Double urokovaSazba; + + @JsonProperty("UrokovyPlan") + private String urokovyPlan; + + @JsonProperty("VypisNaKonciMesice") + private Boolean vypisNaKonciMesice; + + @JsonProperty("ZpusobPripisu") + private String zpusobPripisu; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtAccountIcbResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtAccountIcbResponse.java new file mode 100644 index 0000000..0af6f8e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtAccountIcbResponse.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CrtAccountIcbResponse { + @JsonProperty("CisloUctu") + private String cisloUctu; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtEmployeeRoleRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtEmployeeRoleRequest.java new file mode 100644 index 0000000..ad847a6 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtEmployeeRoleRequest.java @@ -0,0 +1,64 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class CrtEmployeeRoleRequest { + + @JsonProperty("APP_KEY") + private Long appKey; + + @JsonProperty("DOC_INST_KEY") + private Long docInstKey; + + @JsonProperty("EMP_ROLE_ID") + private String empRoleId; + + @JsonProperty("EMP_PROCESS_ROLE_ID") + private String empProcessRoleId; + + @JsonProperty("SSO_ID") + private String ssoId; + + @JsonProperty("FIRST_NAME") + private String firstName; + + @JsonProperty("FAMILY_NAME") + private String familyName; + + @JsonProperty("CONSULTANT_ID") + private String consultantId; + + @JsonProperty("CONSULTANT_EMPR_ICO") + private String consultantEmprIco; + + @JsonProperty("CONSULTANT_EMPR_NAME") + private String consultantEmprName; + + @JsonProperty("PRIM_FLAG") + private Long primFlag; + + @JsonProperty("CONSULTANT_MTS_ID") + private String consultantMtsId; + + @JsonProperty("SALESMAN_STAMP_FLAG") + private Long salesmanStampFlag; + + @JsonProperty("POS_ID") + private String posId; + + @JsonProperty("CNL_ID") + private String cnlId; + + @JsonProperty("EMP_ROLE_KEY") + private Long empRoleKey; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtEmployeeRoleResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtEmployeeRoleResponse.java new file mode 100644 index 0000000..c5b2861 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtEmployeeRoleResponse.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class CrtEmployeeRoleResponse { + + @JsonProperty("EMP_ROLE_KEY") + private Long empRoleKey; + + @JsonProperty("tifResponseStatus") + private ErrorModel tifResponseStatus; + + @JsonProperty("fault") + private FaultModel fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ErrorModel { + @JsonProperty("resultCode") + private String resultCode; + + @JsonProperty("errorCode") + private String errorCode; + + @JsonProperty("errorDesc") + private String errorDesc; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class FaultModel { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtIbDispoAppRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtIbDispoAppRequest.java new file mode 100644 index 0000000..13df67b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtIbDispoAppRequest.java @@ -0,0 +1,159 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class CrtIbDispoAppRequest { + + @JsonProperty("CHANNEL_ID") + private String channelId; + + @JsonProperty("POS_ID") + private String posId; + + @JsonProperty("BANKER_SSO") + private String bankerSso; + + @JsonProperty("APPLICANT_CIF") + private String applicantCif; + + @JsonProperty("DISPO_CIF") + private String dispoCif; + + @JsonProperty("DISPO_NAME") + private String dispoName; + + @JsonProperty("DISPO_MIDDLENAME") + private String dispoMiddlename; + + @JsonProperty("DISPO_SURNAME") + private String dispoSurname; + + @JsonProperty("DISPO_RC_NUMBER") + private String dispoRcNumber; + + @JsonProperty("DISPO_GENDER_ID") + private String dispoGenderId; + + @JsonProperty("DISPO_CITIZENSHIP") + private String dispoCitizenship; + + @JsonProperty("DISPO_BIRTH_COUNTRY_ID") + private String dispoBirthCountryId; + + @JsonProperty("DISPO_BIRTH_DATE") + private String dispoBirthDate; // format: date + + @JsonProperty("DISPO_BIRTH_PLACE") + private String dispoBirthPlace; + + @JsonProperty("DISPO_RES_ADDR_COUNTRY") + private String dispoResAddrCountry; + + @JsonProperty("DISPO_RES_ADDR_CITY") + private String dispoResAddrCity; + + @JsonProperty("DISPO_RES_ADDR_ZIPCODE") + private String dispoResAddrZipcode; + + @JsonProperty("DISPO_RES_ADDR_POST_OFFICE") + private String dispoResAddrPostOffice; + + @JsonProperty("DISPO_RES_ADDR_STREET") + private String dispoResAddrStreet; + + @JsonProperty("DISPO_RES_ADDR_STREET_DESC_NO") + private String dispoResAddrStreetDescNo; + + @JsonProperty("DISPO_RES_ADDR_STREET_ORIENT_NO") + private String dispoResAddrStreetOrientNo; + + @JsonProperty("DISPO_ID_CARD_TYPE") + private String dispoIdCardType; + + @JsonProperty("DISPO_ID_CARD_NR") + private String dispoIdCardNr; + + @JsonProperty("DISPO_ID_CARD_CNTRY_ID") + private String dispoIdCardCntryId; + + @JsonProperty("DISPO_ID_CARD_EXP_DATE") + private String dispoIdCardExpDate; // format: date + + @JsonProperty("DISPO_PHONE_PIN") + private String dispoPhonePin; + + @JsonProperty("DISPO_EMAIL") + private String dispoEmail; + + @JsonProperty("DISPO_IDENTITY_VERIFICATION_TYPE") + private String dispoIdentityVerificationType; + + @JsonProperty("DISPO_BANKID_PEP_FLAG") + private String dispoBankidPepFlag; + + @JsonProperty("DISPO_BANKID_SUBJ_ID") + private String dispoBankidSubjId; + + @JsonProperty("DISPO_BANKID_TRN_ID") + private String dispoBankidTrnId; + + @JsonProperty("DISPO_BANKID_TRUST_TP") + private String dispoBankidTrustTp; + + @JsonProperty("DISPO_BANKID_UPD_DT") + private String dispoBankidUpdDt; // format: date-time + + @JsonProperty("DISPO_BANKID_UPD_TS") + private Long dispoBankidUpdTs; // seconds since epoch + + @JsonProperty("DISPO_BANKID_VERIF_DT") + private String dispoBankidVerifDt; // format: date-time + + @JsonProperty("DISPO_BANKID_VERIF_PROVIDER_ID") + private String dispoBankidVerifProviderId; + + @JsonProperty("DIGI_ENABLE_ACTIVE_OPS") + private String digiEnableActiveOps; + + @JsonProperty("DIGI_LOGIN") + private String digiLogin; + + @JsonProperty("DIGI_ENTITY_ID") + private Long digiEntityId; + + @JsonProperty("DIGI_CLIENT_ID") + private Long digiClientId; + + @JsonProperty("DIGI_CONTEXT_ID") + private Long digiContextId; + + @JsonProperty("DIGI_DAILY_OPS_LIMIT") + private Long digiDailyOpsLimit; + + @JsonProperty("RS_1") + @Builder.Default + private List rs1 = new ArrayList<>(); + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Rs1 { + @JsonProperty("DISPO_ROLE") + private String dispoRole; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtIbDispoAppResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtIbDispoAppResponse.java new file mode 100644 index 0000000..e746cd4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/CrtIbDispoAppResponse.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class CrtIbDispoAppResponse { + + @JsonProperty("APP_KEY") + private Long appKey; + + @JsonProperty("APPLICANT_INST_PT_KEY") + private Long applicantInstPtKey; + + @JsonProperty("DISPONENT_INST_PT_KEY") + private Long disponentInstPtKey; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltEmCliContextsRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltEmCliContextsRequest.java new file mode 100644 index 0000000..091f60e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltEmCliContextsRequest.java @@ -0,0 +1,49 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * Request model for DLT_EM_CLI_CONTEXTS service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class DltEmCliContextsRequest { + + @JsonProperty("CIF") + private String cif; + + @JsonProperty("FEE") + private String fee; + + @JsonProperty("ORIGINATOR_CIF_LIST") + private String originatorCifList; + + @JsonProperty("RS_DATA") + @Builder.Default + private List rsData = new ArrayList<>(); + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class RsData { + @JsonProperty("CONTEXT_ID") + private Long contextId; + + @JsonProperty("USER_ID") + private Long userId; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltEmCliContextsResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltEmCliContextsResponse.java new file mode 100644 index 0000000..ac2bda0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltEmCliContextsResponse.java @@ -0,0 +1,44 @@ +// ...existing code... +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** + * Response model for DLT_EM_CLI_CONTEXTS service + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class DltEmCliContextsResponse { + + @JsonProperty("fault") + private FaultModel fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class FaultModel { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltJuridicaAccountRolesRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltJuridicaAccountRolesRequest.java new file mode 100644 index 0000000..b463b1a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltJuridicaAccountRolesRequest.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +public class DltJuridicaAccountRolesRequest { + @JsonProperty("accountNumber") + private String accountNumber; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltJuridicaFundOwnersComplete.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltJuridicaFundOwnersComplete.java new file mode 100644 index 0000000..afb4714 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DltJuridicaFundOwnersComplete.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +public class DltJuridicaFundOwnersComplete { + @JsonProperty("accountNumber") + private String accountNumber; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoCancelCurrentAccountRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoCancelCurrentAccountRequest.java new file mode 100644 index 0000000..5d2335f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoCancelCurrentAccountRequest.java @@ -0,0 +1,63 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DoCancelCurrentAccountRequest { + + @JsonProperty("CisloCostCentra") + private Long cisloCostCentra; + + @JsonProperty("CisloUctu") + private String cisloUctu; + + @JsonProperty("CisloUctuPrijemceKodBanky") + private String cisloUctuPrijemceKodBanky; + + @JsonProperty("CisloUctuPrijemceSS") + private String cisloUctuPrijemceSS; + + @JsonProperty("CisloUctuPrijemceVS") + private String cisloUctuPrijemceVS; + + @JsonProperty("CisluUctuPrijemceInterni") + private String cisluUctuPrijemceInterni; + + @JsonProperty("PoplatekZaZruseni") + private Double poplatekZaZruseni; + + @JsonProperty("ProduktKod") + private String produktKod; + + @JsonProperty("SdeleniID") + private Long sdeleniID; + + @JsonProperty("SdeleniText") + private String sdeleniText; + + @JsonProperty("ZrusBUSVystrahou") + private String zrusBUSVystrahou; + + @JsonProperty("pomTransparentniUcetExistuje") + private String pomTransparentniUcetExistuje; + + @JsonProperty("SSO") + private String sso; + + @JsonProperty("channel_id") + private String channelId; + + @JsonProperty("branchId") + private String branchId; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoCancelCurrentAccountResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoCancelCurrentAccountResponse.java new file mode 100644 index 0000000..5845c81 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoCancelCurrentAccountResponse.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DoCancelCurrentAccountResponse { + + @JsonProperty("DanZUroku") + private Double danZUroku; + + @JsonProperty("KonecnyZustatek") + private Double konecnyZustatek; + + @JsonProperty("SplatnyUrok") + private Double splatnyUrok; + + @JsonProperty("pomTransparentniUcetExistuje") + private String pomTransparentniUcetExistuje; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoMoveStateRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoMoveStateRequest.java new file mode 100644 index 0000000..a9bb25f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoMoveStateRequest.java @@ -0,0 +1,55 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class DoMoveStateRequest { + + @JsonProperty("ACCOUNTNUMBER") + private String accountNumber; // číslo běžného účtu + + @JsonProperty("AUTOSIGNATURE") + private Boolean autoSignature; // příznak automatického podpisu + + @JsonProperty("BANKERSPROFILE") + private String bankersProfile; // Profil bankéře (HCisUredniku) + + @JsonProperty("CARDLOGO") + private String cardLogo; // LOGO předvydané karty (InstantIssuing) + + @JsonProperty("CONTRACTNUMBER") + private String contractNumber; // číslo smlouvy + + @JsonProperty("CONTRACTSIGNED") + private Boolean contractSigned; // příznak podpisu druhým bankéřem + + @JsonProperty("CREDITACCOUNTNUMBER") + private String creditAccountNumber; // číslo úvěrového účtu + + @JsonProperty("DISTRIBUTIONCHANNELL") + private String distributionChannell; // distribuční kanál (POS, TLS, IBS...) + + @JsonProperty("DOCUMENTID") + private String documentId; // CM_ID dokumentu v DMS + + @JsonProperty("PROCESSRESULT") + private String processResult; // parametr Process result (HCisWFProcessResulty) + + @JsonProperty("SETFEE") + private Boolean setFee; // příznak účtování poplatku (true = účtovat) + + @JsonProperty("WFID") + private String wfid; // workflow id + + @JsonProperty("CONTRACTSIGNINGDATE") + private String contractSigningDate; // datum a čas podpisu (format: date-time, např. 2022-06-20 12:38:00) +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoMoveStateResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoMoveStateResponse.java new file mode 100644 index 0000000..0fcc24e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoMoveStateResponse.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Response pro API DO_MOVE_STATE (MWFEQ7) + * Obsahuje pole CHECK_STATE podle Swagger specifikace (200 response) + *

+ * CHECK_STATE: příznak posunu stavu (1 - došlo k posunu, 0 - nedošlo) + * + * @author Autogenerated + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class DoMoveStateResponse { + + @JsonProperty("CHECK_STATE") + private Long checkState; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoPrepareJuridicaIdentificationRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoPrepareJuridicaIdentificationRequest.java new file mode 100644 index 0000000..50b342e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoPrepareJuridicaIdentificationRequest.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +public class DoPrepareJuridicaIdentificationRequest { + + @JsonProperty("clientIdentificationNumber") + private String clientIdentificationNumber; + + @JsonProperty("accountNumber") + private String accountNumber; + + @JsonProperty("sso") + private String sso; + + @JsonProperty("channelId") + private String channelId; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoSmeDepositProductOfferRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoSmeDepositProductOfferRequest.java new file mode 100644 index 0000000..019b417 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoSmeDepositProductOfferRequest.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +public class DoSmeDepositProductOfferRequest { + + @JsonProperty("NACE") + private String nace; + + @JsonProperty("LEGAL_FORM_ID") + private String legalFormId; + + @JsonProperty("PROD_CLASS") + private String prodClass; + + @JsonProperty("CLIENT_TYPE") + private String clientType; + + @JsonProperty("RESIDENCE") + private String residence; + + @JsonProperty("CHANNEL_ID") + private String channelId; + + @JsonProperty("CURRENCY_IN") + private String currencyIn; + + @JsonProperty("CIF") + private String cif; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoSmeDepositProductOfferResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoSmeDepositProductOfferResponse.java new file mode 100644 index 0000000..a67803e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoSmeDepositProductOfferResponse.java @@ -0,0 +1,61 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.ArrayList; +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class DoSmeDepositProductOfferResponse { + + @JsonProperty("RS_DATA") + @Builder.Default + private List rsData = new ArrayList<>(); + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class RsData { + @JsonProperty("PROD_CODE") + private String prodCode; + + @JsonProperty("FEE_PLAN") + private String feePlan; + + @JsonProperty("INT_RATE_PLAN") + private String intRatePlan; + + @JsonProperty("CAMPAIGN_OFFER") + private Long campaignOffer; + + @JsonProperty("INDIVIDUAL_IR_ALLOWED") + private Long individualIrAllowed; + + @JsonProperty("MAX_COUNT") + private Long maxCount; + + @JsonProperty("SALES_PROD_TP") + private String salesProdTp; + + @JsonProperty("IB_SB_TITLE") + private String ibSbTitle; + + @JsonProperty("CURRENCY") + private String currency; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoStartJuridicaIdentificationRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoStartJuridicaIdentificationRequest.java new file mode 100644 index 0000000..6b0ce72 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoStartJuridicaIdentificationRequest.java @@ -0,0 +1,22 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +public class DoStartJuridicaIdentificationRequest { + + @JsonProperty("clientIdentificationFile") + private String clientIdentificationFile; + + @JsonProperty("productClass") + private Integer productClass; + + @JsonProperty("emptyClientEmailConfirmedFlag") + private Integer emptyClientEmailConfirmedFlag; + + @JsonProperty("accountNumber") + private String accountNumber; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoStartPckgOpeningRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoStartPckgOpeningRequest.java new file mode 100644 index 0000000..fd549ed --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/DoStartPckgOpeningRequest.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class DoStartPckgOpeningRequest { + + @JsonProperty("BranchID") + private String branchId; + + @JsonProperty("CIF") + private String cif; + + @JsonProperty("ClientCheckId") + private String clientCheckId; + + @JsonProperty("CompletationChannel") + private String completationChannel; + + @JsonProperty("ProdPackageKey") + private Long prodPackageKey; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetAppIbDataRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetAppIbDataRequest.java new file mode 100644 index 0000000..6671f30 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetAppIbDataRequest.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for NAS GET_APP_IB_DATA service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetAppIbDataRequest { + + @JsonProperty("APP_KEY") + private Long appKey; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetAppIbDataResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetAppIbDataResponse.java new file mode 100644 index 0000000..127fcd2 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetAppIbDataResponse.java @@ -0,0 +1,57 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Response model for NAS GET_APP_IB_DATA service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetAppIbDataResponse { + + @JsonProperty("DIGI_LOGIN") + private String digiLogin; + + @JsonProperty("DIGI_ENTITY_ID") + private Long digiEntityId; + + @JsonProperty("DIGI_CLIENT_ID") + private Long digiClientId; + + @JsonProperty("DIGI_CONTEXT_ID") + private Long digiContextId; + + @JsonProperty("DIGI_ENABLE_ACTIVE_OPS") + private String digiEnableActiveOps; + + @JsonProperty("DIGI_DAILY_OPS_LIMIT") + private Long digiDailyOpsLimit; + + @JsonProperty("fault") + private Fault fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Fault { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCurrentAccountRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCurrentAccountRequest.java new file mode 100644 index 0000000..45c0fc5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCurrentAccountRequest.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +public class GetCurrentAccountRequest { + @JsonProperty("CisloUctu") + private String cisloUctu; // required by swagger + + @JsonProperty("Kontext") + private String kontext; // optional +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCurrentAccountResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCurrentAccountResponse.java new file mode 100644 index 0000000..c93bf34 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCurrentAccountResponse.java @@ -0,0 +1,333 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetCurrentAccountResponse { + @JsonProperty("AAAdresat") + private String aaAdresat; + + @JsonProperty("AACO") + private String aaco; + + @JsonProperty("AACP") + private String aacp; + + @JsonProperty("AACtvrt") + private String aaCtvrt; + + @JsonProperty("AAObec") + private String aaObec; + + @JsonProperty("AAPSC") + private String aaPsc; + + @JsonProperty("AAPosta") + private String aaPosta; + + @JsonProperty("AAUlice") + private String aaUlice; + + @JsonProperty("AAZeme") + private String aaZeme; + + @JsonProperty("BeznyZustatek") + private Double beznyZustatek; + + @JsonProperty("CisloUctu") + private String cisloUctu; + + @JsonProperty("DanZUroku") + private Double danZUroku; + + @JsonProperty("DatumDalsihoVypisu") + private String datumDalsihoVypisu; + + @JsonProperty("DatumOtevreni") + private String datumOtevreni; + + @JsonProperty("DatumOtevreniRamce") + private String datumOtevreniRamce; + + @JsonProperty("DatumPosledniAktivity") + private String datumPosledniAktivity; + + @JsonProperty("DatumPosledniVklad") + private String datumPosledniVklad; + + @JsonProperty("DatumPoslednihoVypisu") + private String datumPoslednihoVypisu; + + @JsonProperty("DisponibilniZustatek") + private Double disponibilniZustatek; + + @JsonProperty("DisponibilniZustatekZitra") + private Double disponibilniZustatekZitra; + + @JsonProperty("DistribuceVypisu") + private String distribuceVypisu; + + @JsonProperty("DruheJmeno") + private String druheJmeno; + + @JsonProperty("FlexiBusTyp") + private String flexiBusTyp; + + @JsonProperty("IndexUrokoveSazby") + private Long indexUrokoveSazby; + + @JsonProperty("InformativniZustatek") + private Double informativniZustatek; + + @JsonProperty("Jmeno") + private String jmeno; + + @JsonProperty("KlasifikaceUctu") + private String klasifikaceUctu; + + @JsonProperty("KonecnyZustatek") + private Double konecnyZustatek; + + @JsonProperty("Mena") + private String mena; + + @JsonProperty("MenaKod") + private Long menaKod; + + @JsonProperty("MesicniObratyCR") + private Double mesicniObratyCR; + + @JsonProperty("MesicniObratyDB") + private Double mesicniObratyDB; + + @JsonProperty("MinimalniKreditnizustatek") + private Double minimalniKreditnizustatek; + + @JsonProperty("ObchodniJmeno") + private String obchodniJmeno; + + @JsonProperty("ObchodniMistoKod") + private String obchodniMistoKod; + + @JsonProperty("ObjektUveru") + private String objektUveru; + + @JsonProperty("PausalniPoplatek") + private Double pausalniPoplatek; + + @JsonProperty("PausalniPoplatekKTK") + private Double pausalniPoplatekKTK; + + @JsonProperty("PausalniPoplatekPocetMesicuZdarma") + private Long pausalniPoplatekPocetMesicuZdarma; + + @JsonProperty("PeriodaVypisu") + private String periodaVypisu; + + @JsonProperty("PoplatkovyPlan") + private String poplatkovyPlan; + + @JsonProperty("PoplatkovyPlanTisk") + private String poplatkovyPlanTisk; + + @JsonProperty("PoplatkovyPlanMatersky") + private String poplatkovyPlanMatersky; + + @JsonProperty("PoplatkovyPlanPuvodni") + private String poplatkovyPlanPuvodni; + + @JsonProperty("PoplatkovyPlan_Sleva") + private Long poplatkovyPlan_Sleva; + + @JsonProperty("PostovniPoukazka") + private String postovniPoukazka; + + @JsonProperty("PouzitaAA") + private String pouzitaAA; + + @JsonProperty("Prijmeni") + private String prijmeni; + + @JsonProperty("ProduktKod") + private String produktKod; + + @JsonProperty("ProduktKodBU") + private String produktKodBU; + + @JsonProperty("ProduktKodStary") + private String produktKodStary; + + @JsonProperty("RamecExistuje") + private String ramecExistuje; + + @JsonProperty("RocniObratyCR") + private Double rocniObratyCR; + + @JsonProperty("RocniObratyDB") + private Double rocniObratyDB; + + @JsonProperty("SankcniUrok") + private Double sankcniUrok; + + @JsonProperty("SchvalenyLimitKontokorentu") + private Double schvalenyLimitKontokorentu; + + @JsonProperty("SdruzUcetPoplatky") + private String sdruzUcetPoplatky; + + @JsonProperty("SdruzUcetUroky") + private String sdruzUcetUroky; + + @JsonProperty("ServisniPoplatek") + private Double servisniPoplatek; + + @JsonProperty("SplatnyUrok") + private Double splatnyUrok; + + @JsonProperty("SpravaNavazanehoUURemedialem") + private String spravaNavazanehoUURemedialem; + + @JsonProperty("StavUctu") + private String stavUctu; + + @JsonProperty("TitulPred") + private String titulPred; + + @JsonProperty("TitulZa") + private String titulZa; + + @JsonProperty("TrU_DatumPozadavkuNaZruseni") + private String trU_DatumPozadavkuNaZruseni; + + @JsonProperty("TrU_DatumVerifZruseniTransp") + private String trU_DatumVerifZruseniTransp; + + @JsonProperty("TrU_DatumVerifikaceTransp") + private String trU_DatumVerifikaceTransp; + + @JsonProperty("TrU_DatumVytvoreni") + private String trU_DatumVytvoreni; + + @JsonProperty("TrU_KodKategorie") + private String trU_KodKategorie; + + @JsonProperty("TrU_KodMeny") + private String trU_KodMeny; + + @JsonProperty("TrU_StatusTransparentnosti") + private String trU_StatusTransparentnosti; + + @JsonProperty("TrU_UrednikPozadujiciZruseni") + private String trU_UrednikPozadujiciZruseni; + + @JsonProperty("TrU_VerifUrednikZruseniTransp") + private String trU_VerifUrednikZruseniTransp; + + @JsonProperty("TrU_VerifikovatUrednikem") + private String trU_VerifikovatUrednikem; + + @JsonProperty("TrU_VytvorilUrednik") + private String trU_VytvorilUrednik; + + @JsonProperty("TrU_ZkraceneJmeno") + private String trU_ZkraceneJmeno; + + @JsonProperty("TransakceNavic") + private String transakceNavic; + + @JsonProperty("UrokZaCerpaniKontokorentu") + private Double urokZaCerpaniKontokorentu; + + @JsonProperty("UrokovaSazba") + private Double urokovaSazba; + + @JsonProperty("VypisNaKonciMesice") + private Boolean vypisNaKonciMesice; + + @JsonProperty("VypisyFrekvence") + private String vypisyFrekvence; + + @JsonProperty("VypisySpecifickeDatum") + private Long vypisySpecifickeDatum; + + @JsonProperty("VysePoslednihoVkladu") + private Double vysePoslednihoVkladu; + + @JsonProperty("ZpracovaneDatumZustatku") + private String zpracovaneDatumZustatku; + + @JsonProperty("ZpusobPripisu") + private String zpusobPripisu; + + @JsonProperty("JeSrazkovaDan") + private Long jeSrazkovaDan; + + @JsonProperty("VyseSrazkovaDan") + private Double vyseSrazkovaDan; + + @JsonProperty("Data") + private List data; + + @JsonProperty("REGISTRATION_IDP") + private String registrationIdp; + + @JsonProperty("REGISTRATION_CIF") + private String registrationCif; + + @JsonProperty("REGISTRATION_PHONE_NUMBER") + private String registrationPhoneNumber; + + @JsonProperty("REGISTRATION_ACCOUNT_NUMBER") + private String registrationAccountNumber; + + @JsonProperty("REGISTRATION_ACCOUNT_NAME") + private String registrationAccountName; + + @JsonProperty("REGISTRATION_STATE") + private String registrationState; + + @JsonProperty("REGISTRATION_IS_ACTIVE") + private Boolean registrationIsActive; + + @JsonProperty("REGISTRATION_CREATED") + private String registrationCreated; + + @JsonProperty("REGISTRATION_UPDATED") + private String registrationUpdated; + + @JsonProperty("REGISTRATION_CANCELLATION") + private Boolean registrationCancellation; + + @JsonProperty("REGISTRATION_CANCELLATION_CREATED") + private String registrationCancellationCreated; + + @JsonProperty("REGISTRATION_CANCELLATION_DATE") + private String registrationCancellationDate; + + @AllArgsConstructor + @NoArgsConstructor + @Builder + @lombok.Data + @EqualsAndHashCode(callSuper = false) + @ToString + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Data { + @JsonProperty("CisloUctu") + private String cisloUctu; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCustCommercialByCifRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCustCommercialByCifRequest.java new file mode 100644 index 0000000..faeec1f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCustCommercialByCifRequest.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) + +public class GetCustCommercialByCifRequest { + + @JsonProperty("CIF") + private String cif; + + @JsonProperty("ZnovuNacistUpominky") + private Integer znovuNacistUpominky; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCustCommercialByCifResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCustCommercialByCifResponse.java new file mode 100644 index 0000000..9b8bbe9 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetCustCommercialByCifResponse.java @@ -0,0 +1,223 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; + +/** + * Response model for GET_CUST_COMMERCIAL_BY_CIF service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetCustCommercialByCifResponse { + @JsonProperty("Adresat") + private String adresat; + + @JsonProperty("CO") + private String co; + + @JsonProperty("CP") + private String cp; + + @JsonProperty("CisloPasu") + private String cisloPasu; + + @JsonProperty("Ctvrt") + private String ctvrt; + + @JsonProperty("DIC") + private String dic; + + @JsonProperty("DatumExpiraceKontaktnichUdaju") + private LocalDate datumExpiraceKontaktnichUdaju; + + @JsonProperty("DatumPlatnostiOP") + private LocalDate datumPlatnostiOP; + + @JsonProperty("DatumPodnikaniDo") + private LocalDate datumPodnikaniDo; + + @JsonProperty("DatumPodnikaniOd") + private LocalDate datumPodnikaniOd; + + @JsonProperty("DatumPosledniAktualizace") + private LocalDate datumPosledniAktualizace; + + @JsonProperty("DatumZalozeniCIFu") + private LocalDate datumZalozeniCIFu; + + @JsonProperty("DruheJmeno") + private String druheJmeno; + + @JsonProperty("EMail") + private String eMail; + + @JsonProperty("EkonomickySektor") + private String ekonomickySektor; + + @JsonProperty("ICO") + private String ico; + + @JsonProperty("ICOHlavnihoSpolku") + private String icoHlavnihoSpolku; + + @JsonProperty("IDSdeleniDatumPodnikaniDo") + private Integer idSdeleniDatumPodnikaniDo; + + @JsonProperty("IDSdeleniDatumPodnikaniOd") + private Integer idSdeleniDatumPodnikaniOd; + + @JsonProperty("IDSdeleniEmail") + private Integer idSdeleniEmail; + + @JsonProperty("IDSdeleniICOHlavnihoSpolku") + private Integer idSdeleniICOHlavnihoSpolku; + + @JsonProperty("IDSdeleniMobil") + private Integer idSdeleniMobil; + + @JsonProperty("JinyOsobniDoklad2Cislo") + private String jinyOsobniDoklad2Cislo; + + @JsonProperty("JinyOsobniDoklad2Platnost") + private LocalDate jinyOsobniDoklad2Platnost; + + @JsonProperty("JinyOsobniDoklad2Typ") + private String jinyOsobniDoklad2Typ; + + @JsonProperty("Jmeno") + private String jmeno; + + @JsonProperty("KodObchodnihoMista") + private String kodObchodnihoMista; + + @JsonProperty("NezadouciKlient") + private String nezadouciKlient; + + @JsonProperty("OKEC") + private String okec; + + @JsonProperty("OROddil") + private String orOddil; + + @JsonProperty("ORSoud") + private String orSoud; + + @JsonProperty("ORVlozka") + private String orVlozka; + + @JsonProperty("ObchodniJmeno") + private String obchodniJmeno; + + @JsonProperty("Obec") + private String obec; + + @JsonProperty("Osloveni") + private String osloveni; + + @JsonProperty("PSC") + private String psc; + + @JsonProperty("PlatnostKontaktnichUdaju") + private String platnostKontaktnichUdaju; + + @JsonProperty("PlatnostPasuDo") + private LocalDate platnostPasuDo; + + @JsonProperty("PocetZamestnancu") + private String pocetZamestnancu; + + @JsonProperty("Posta") + private String posta; + + @JsonProperty("PravniForma") + private String pravniForma; + + @JsonProperty("Prijmeni") + private String prijmeni; + + @JsonProperty("Rezidence") + private String rezidence; + + @JsonProperty("RodneCislo") + private String rodneCislo; + + @JsonProperty("SerieACisloOP") + private String serieACisloOP; + + @JsonProperty("SocialneEkonomickaSkupina") + private String socialneEkonomickaSkupina; + + @JsonProperty("SpiciUcet") + private String spiciUcet; + + @JsonProperty("SpravniCelek") + private String spravniCelek; + + @JsonProperty("Telefon") + private String telefon; + + @JsonProperty("TelefonDalsi") + private String telefonDalsi; + + @JsonProperty("TelefonDalsiPredvolba") + private String telefonDalsiPredvolba; + + @JsonProperty("TelefonMobilni") + private String telefonMobilni; + + @JsonProperty("TelefonMobilniPredvolba") + private String telefonMobilniPredvolba; + + @JsonProperty("TelefonPredvolba") + private String telefonPredvolba; + + @JsonProperty("TitulPred") + private String titulPred; + + @JsonProperty("TypKlienta") + private String typKlienta; + + @JsonProperty("Ulice") + private String ulice; + + @JsonProperty("VztahKBance") + private String vztahKBance; + + @JsonProperty("ZECO") + private String zeco; + + @JsonProperty("Zeme") + private String zeme; + + @JsonProperty("ZkraceneJmeno") + private String zkraceneJmeno; + + @JsonProperty("TypKlientaDetail") + private String typKlientaDetail; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Fault { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDepositAccForLegalRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDepositAccForLegalRequest.java new file mode 100644 index 0000000..f43226a --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDepositAccForLegalRequest.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GetDepositAccForLegalRequest { + @JsonProperty("CIF") + private String cif; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDepositAccForLegalResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDepositAccForLegalResponse.java new file mode 100644 index 0000000..0d6715e --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDepositAccForLegalResponse.java @@ -0,0 +1,79 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GetDepositAccForLegalResponse { + + @JsonProperty("Data") + private List data; + + @JsonProperty("Index") + private Long index; + + @JsonProperty("Pocet") + private Long pocet; + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class Item { + @JsonProperty("CisloUctu") + private String cisloUctu; + + @JsonProperty("CisloUctuExt") + private String cisloUctuExt; + + @JsonProperty("Produkt") + private String produkt; + + @JsonProperty("ObchodniMistoKod") + private String obchodniMistoKod; + + @JsonProperty("DatumZalozeni") + private String datumZalozeni; + + @JsonProperty("Trida") + private String trida; + + @JsonProperty("SpiciUcet") + private String spiciUcet; + + @JsonProperty("Mena") + private String mena; + + @JsonProperty("StavUctu") + private String stavUctu; + + @JsonProperty("NazevUctu") + private String nazevUctu; + + @JsonProperty("IdentifikatorUctu") + private String identifikatorUctu; + + @JsonProperty("UrokSazba") + private Double urokSazba; + + @JsonProperty("IBAN") + private String iban; + + @JsonProperty("ZpusobDistribuceVypisu") + private String zpusobDistribuceVypisu; + + @JsonProperty("PeriodicitaVypisu") + private String periodicitaVypisu; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDigiEdisponentListRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDigiEdisponentListRequest.java new file mode 100644 index 0000000..16d9829 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDigiEdisponentListRequest.java @@ -0,0 +1,24 @@ +// ...existing code... +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for get-digi-edisponent-list + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetDigiEdisponentListRequest { + + @JsonProperty("cif") + private String cif; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDigiEdisponentListResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDigiEdisponentListResponse.java new file mode 100644 index 0000000..ed071d4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetDigiEdisponentListResponse.java @@ -0,0 +1,152 @@ +// ...existing code... +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.ArrayList; +import java.util.List; + +/** + * Response model for get-digi-edisponent-list + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetDigiEdisponentListResponse { + + @JsonProperty("persons") + @Builder.Default + private List persons = new ArrayList<>(); + + @JsonProperty("tifResponseStatus") + private ErrorModel tifResponseStatus; + + @JsonProperty("fault") + private FaultModel fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Person { + @JsonProperty("appKey") + private String appKey; + + @JsonProperty("appState") + private String appState; + + @JsonProperty("appProcessState") + private String appProcessState; + + @JsonProperty("prodPckgKey") + private String prodPckgKey; + + @JsonProperty("propWflBusState") + private String propWflBusState; + + @JsonProperty("dispoUniPtKey") + private Long dispoUniPtKey; + + @JsonProperty("dispoNasInstPtKey") + private Long dispoNasInstPtKey; + + @JsonProperty("dispoFirstName") + private String dispoFirstName; + + @JsonProperty("dispoMiddleName") + private String dispoMiddleName; + + @JsonProperty("dispoLastName") + private String dispoLastName; + + @JsonProperty("dispoBirthDate") + private String dispoBirthDate; + + @JsonProperty("dispoBirthNum") + private String dispoBirthNum; + + @JsonProperty("dispoResAddrCountry") + private String dispoResAddrCountry; + + @JsonProperty("dispoResAddrCity") + private String dispoResAddrCity; + + @JsonProperty("dispoResAddrZipCode") + private String dispoResAddrZipCode; + + @JsonProperty("dispoResAddrPostOffice") + private String dispoResAddrPostOffice; + + @JsonProperty("dispoResAddrStreet") + private String dispoResAddrStreet; + + @JsonProperty("dispoResAddrStreetDescNo") + private String dispoResAddrStreetDescNo; + + @JsonProperty("dispoResAddrStreetOrientNo") + private String dispoResAddrStreetOrientNo; + + @JsonProperty("dispoEmContextId") + private Long dispoEmContextId; + + @JsonProperty("dispoEmEntityId") + private Long dispoEmEntityId; + + @JsonProperty("dispoEmStatus") + private String dispoEmStatus; + + @JsonProperty("dispoEmMasterFlag") + private String dispoEmMasterFlag; + + @JsonProperty("dispoEmLoginName") + private String dispoEmLoginName; + + @JsonProperty("dispoEmContextRoleNames") + private String dispoEmContextRoleNames; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ErrorModel { + @JsonProperty("resultCode") + private String resultCode; + + @JsonProperty("errorCode") + private String errorCode; + + @JsonProperty("errorDesc") + private String errorDesc; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class FaultModel { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetEmCliContextsListRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetEmCliContextsListRequest.java new file mode 100644 index 0000000..229232d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetEmCliContextsListRequest.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for GET_EM_CLI_CONTEXTS_LIST service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetEmCliContextsListRequest { + + @JsonProperty("CIF") + private String cif; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetEmCliContextsListResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetEmCliContextsListResponse.java new file mode 100644 index 0000000..179f93b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetEmCliContextsListResponse.java @@ -0,0 +1,126 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.ArrayList; +import java.util.List; + +/** + * Response model for GET_EM_CLI_CONTEXTS_LIST service + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetEmCliContextsListResponse { + + @JsonProperty("RS_DATA") + @Builder.Default + private List rsData = new ArrayList<>(); + + @JsonProperty("fault") + private Fault fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class RsData { + @JsonProperty("BIRTH_DATE") + private String birthDate; + + @JsonProperty("BIRTH_NUMBER") + private String birthNumber; + + @JsonProperty("CLIENT_CIF") + private String clientCif; + + @JsonProperty("CONTEXT_CIF") + private String contextCif; + + @JsonProperty("CLIENT_TYPE") + private String clientType; + + @JsonProperty("CONTEXT_ID") + private Long contextId; + + @JsonProperty("CONTEXT_NAME") + private String contextName; + + @JsonProperty("CONTEXT_ROLES") + private String contextRoles; + + @JsonProperty("CONTEXT_ROLE_NAMES") + private String contextRoleNames; + + @JsonProperty("CLIENT_ENTITY_ID") + private String clientEntityId; + + @JsonProperty("ENTITY_ID") + private Long entityId; + + @JsonProperty("ENTITY_TYPE") + private String entityType; + + @JsonProperty("FIRST_NAME") + private String firstName; + + @JsonProperty("ICO_NUMBER") + private String icoNumber; + + @JsonProperty("LAST_NAME") + private String lastName; + + @JsonProperty("MASTER_FLAG") + private String masterFlag; + + @JsonProperty("MIDDLE_NAME") + private String middleName; + + @JsonProperty("STATUS") + private String status; + + @JsonProperty("TITLE_AFTER") + private String titleAfter; + + @JsonProperty("TITLE_BEFORE") + private String titleBefore; + + @JsonProperty("ROW_ID") + private Long rowId; + + @JsonProperty("USER_ID") + private Long userId; + + @JsonProperty("LOGIN_NAME") + private String loginName; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Fault { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaIdentificationStateRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaIdentificationStateRequest.java new file mode 100644 index 0000000..3b51cc7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaIdentificationStateRequest.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +public class GetJuridicaIdentificationStateRequest { + @JsonProperty("accountNumber") + private String accountNumber; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaIdentificationStateResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaIdentificationStateResponse.java new file mode 100644 index 0000000..3339be7 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaIdentificationStateResponse.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetJuridicaIdentificationStateResponse { + private String identificationState; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaRelatedPersonsDataRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaRelatedPersonsDataRequest.java new file mode 100644 index 0000000..70c4a73 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaRelatedPersonsDataRequest.java @@ -0,0 +1,15 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +public class GetJuridicaRelatedPersonsDataRequest { + @JsonProperty("accountNumber") + private String accountNumber; + + @JsonProperty("confirmFlag") + private Long confirmFlag; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaRelatedPersonsDataResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaRelatedPersonsDataResponse.java new file mode 100644 index 0000000..e34080b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetJuridicaRelatedPersonsDataResponse.java @@ -0,0 +1,54 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class GetJuridicaRelatedPersonsDataResponse { + private Double paidAmount; + private Double depositAmount; + private Double paidPercentage; + private Double depositPercentage; + private List data; + + @Builder + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class DataItem { + private String accountNumber; + private String action; + private String addressCity; + private String addressCountry; + private String addressStreet; + private String addressHouseNumber; + private String addressLandRegistryNumber; + private String addressZipCode; + private String birthDate; + private String birthNumber; + private String clientType; + private String companyIdentificationNumber; + private String companyName; + private String country; + private String email; + private String name; + private String phone; + private String surname; + private Long instPtKey; + private String partyRole; + private String bankAccountNumber; + private String bankCode; + private String bankIdCode; + private String bankIban; + private Double sharePercentage; + private Double shareAmount; + private Double suggestionId; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProcessTasksRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProcessTasksRequest.java new file mode 100644 index 0000000..31735f3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProcessTasksRequest.java @@ -0,0 +1,23 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetProcessTasksRequest { + + @JsonProperty("APPLICATIONKEY") + private Long applicationKey; + + @JsonProperty("CYCLE_CONTEXT") + private Long cycleContext; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProcessTasksResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProcessTasksResponse.java new file mode 100644 index 0000000..924c65b --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProcessTasksResponse.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetProcessTasksResponse { + + @JsonProperty("BUSSTATE") + private String busstate; // business stav (HCisWPSProdOpenStav) + + @JsonProperty("WFID") + private String wfid; // workflow id + + @JsonProperty("WFPrechodStavu") + private String wfPrechodStavu; // příznak přechodu stavu (HCisAnoNe) +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProdOpenTasksRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProdOpenTasksRequest.java new file mode 100644 index 0000000..db08947 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProdOpenTasksRequest.java @@ -0,0 +1,116 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for GET_PRODOPEN_TASKS service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetProdOpenTasksRequest { + + @JsonProperty("GLOBAL_OPERATOR") + private String globalOperator; + + // DATA_TYPE1 .. DATA_TYPE10 + @JsonProperty("DATA_TYPE1") + private String dataType1; + @JsonProperty("DATA_TYPE2") + private String dataType2; + @JsonProperty("DATA_TYPE3") + private String dataType3; + @JsonProperty("DATA_TYPE4") + private String dataType4; + @JsonProperty("DATA_TYPE5") + private String dataType5; + @JsonProperty("DATA_TYPE6") + private String dataType6; + @JsonProperty("DATA_TYPE7") + private String dataType7; + @JsonProperty("DATA_TYPE8") + private String dataType8; + @JsonProperty("DATA_TYPE9") + private String dataType9; + @JsonProperty("DATA_TYPE10") + private String dataType10; + + // OPERAND1 .. OPERAND10 + @JsonProperty("OPERAND1") + private String operand1; + @JsonProperty("OPERAND2") + private String operand2; + @JsonProperty("OPERAND3") + private String operand3; + @JsonProperty("OPERAND4") + private String operand4; + @JsonProperty("OPERAND5") + private String operand5; + @JsonProperty("OPERAND6") + private String operand6; + @JsonProperty("OPERAND7") + private String operand7; + @JsonProperty("OPERAND8") + private String operand8; + @JsonProperty("OPERAND9") + private String operand9; + @JsonProperty("OPERAND10") + private String operand10; + + // OPERATOR1 .. OPERATOR10 + @JsonProperty("OPERATOR1") + private String operator1; + @JsonProperty("OPERATOR2") + private String operator2; + @JsonProperty("OPERATOR3") + private String operator3; + @JsonProperty("OPERATOR4") + private String operator4; + @JsonProperty("OPERATOR5") + private String operator5; + @JsonProperty("OPERATOR6") + private String operator6; + @JsonProperty("OPERATOR7") + private String operator7; + @JsonProperty("OPERATOR8") + private String operator8; + @JsonProperty("OPERATOR9") + private String operator9; + @JsonProperty("OPERATOR10") + private String operator10; + + // VALUE1 .. VALUE10 + @JsonProperty("VALUE1") + private String value1; + @JsonProperty("VALUE2") + private String value2; + @JsonProperty("VALUE3") + private String value3; + @JsonProperty("VALUE4") + private String value4; + @JsonProperty("VALUE5") + private String value5; + @JsonProperty("VALUE6") + private String value6; + @JsonProperty("VALUE7") + private String value7; + @JsonProperty("VALUE8") + private String value8; + @JsonProperty("VALUE9") + private String value9; + @JsonProperty("VALUE10") + private String value10; + + @JsonProperty("ITEM_FIRST") + private Long itemFirst; + + @JsonProperty("ITEM_LAST") + private Long itemLast; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProdOpenTasksResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProdOpenTasksResponse.java new file mode 100644 index 0000000..0676464 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetProdOpenTasksResponse.java @@ -0,0 +1,204 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.ArrayList; +import java.util.List; + +/** + * Response model for GET_PRODOPEN_TASKS service + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetProdOpenTasksResponse { + + @JsonProperty("RS_DATA") + @Builder.Default + private List rsData = new ArrayList<>(); + + @JsonProperty("tifResponseStatus") + private ErrorModel tifResponseStatus; + + @JsonProperty("fault") + private FaultModel fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class RsData { + @JsonProperty("TKIID") + private String tkiid; + + @JsonProperty("WFID") + private String wfid; + + @JsonProperty("BUSSTATE") + private String busstate; + + @JsonProperty("ACCOUNTNUMBER") + private String accountnumber; + + @JsonProperty("APPLICATIONID") + private String applicationid; + + @JsonProperty("APPLICATIONKEY") + private Long applicationkey; + + @JsonProperty("APPLICATIONSETKEY") + private Long applicationsetkey; + + @JsonProperty("AUTOSIGNATURE") + private Boolean autosignature; + + @JsonProperty("BANKERSPROFILE") + private String bankersprofile; + + @JsonProperty("CANCELLATIONTIME") + private String cancellationtime; + + @JsonProperty("CARDLOGO") + private String cardlogo; + + @JsonProperty("CARDTYPE") + private Long cardtype; + + @JsonProperty("CLIENTID") + private String clientid; + + @JsonProperty("CONTRACTNUMBER") + private String contractnumber; + + @JsonProperty("CONTRACTSIGNED") + private Boolean contractsigned; + + @JsonProperty("CONTRACTSIGNINGDATE") + private String contractsigningdate; + + @JsonProperty("CREDITACCOUNTNUMBER") + private String creditaccountnumber; + + @JsonProperty("DOCUMENTID") + private String documentid; + + @JsonProperty("FIRSTSIGNINGBANKER") + private String firstsigningbanker; + + @JsonProperty("KOTIME") + private String kotime; + + @JsonProperty("PARENTWFID") + private String parentwfid; + + @JsonProperty("PROCESSSTARTDATE") + private String processstartdate; + + @JsonProperty("PRODUCTTYPE") + private String producttype; + + @JsonProperty("REQUESTTYPE") + private String requesttype; + + @JsonProperty("SECONDSIGNINGBANKER") + private String secondsigningbanker; + + @JsonProperty("SETFEE") + private Boolean setfee; + + @JsonProperty("SIGNINGTIME") + private String signingtime; + + @JsonProperty("USERID") + private String userid; + + @JsonProperty("VERIFYCONTRACT") + private Boolean verifycontract; + + @JsonProperty("WAITINGFORCLIENTAPPROVAL") + private Boolean waitingforclientapproval; + + @JsonProperty("ERRORFLAG") + private Boolean errorflag; + + @JsonProperty("ERRORMWFFLAG") + private Boolean errormwfflag; + + @JsonProperty("ERRORMESSAGE") + private String errormessage; + + @JsonProperty("CONTAINMENT_CTX_ID") + private String containmentCtxId; + + @JsonProperty("NAME") + private String name; + + @JsonProperty("FIRST_ACTIVATED") + private String firstActivated; + + @JsonProperty("EXPIRES") + private String expires; + + @JsonProperty("OWNER") + private String owner; + + @JsonProperty("STATE") + private String state; + + @JsonProperty("LAST_STATE_CHANGE") + private String lastStateChange; + + @JsonProperty("SUSPENDED") + private Boolean suspended; + + @JsonProperty("IS_ESCALATED") + private Boolean isEscalated; + + @JsonProperty("LAST_MODIFIED") + private String lastModified; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ErrorModel { + @JsonProperty("resultCode") + private String resultCode; + + @JsonProperty("errorCode") + private String errorCode; + + @JsonProperty("errorDesc") + private String errorDesc; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class FaultModel { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedBuInfoRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedBuInfoRequest.java new file mode 100644 index 0000000..be89a4f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedBuInfoRequest.java @@ -0,0 +1,14 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +public class GetSelectedBuInfoRequest { + + @JsonProperty("CisloUctu") + private String cisloUctu; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedBuInfoResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedBuInfoResponse.java new file mode 100644 index 0000000..cb1ca79 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedBuInfoResponse.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Response model for GET_SELECTED_BU_INFO service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class GetSelectedBuInfoResponse { + + @JsonProperty("DatumDalsihoVypisu") + private String datumDalsihoVypisu; + + @JsonProperty("DatumOtevreni") + private String datumOtevreni; + + @JsonProperty("DatumPoslednihoVypisu") + private String datumPoslednihoVypisu; + + @JsonProperty("DistribuceVypisu") + private String distribuceVypisu; + + @JsonProperty("IndexUrokoveSazby") + private Integer indexUrokoveSazby; + + @JsonProperty("KlasifikaceUctu") + private String klasifikaceUctu; + + @JsonProperty("Mena") + private String mena; + + @JsonProperty("ObchodniMistoKod") + private String obchodniMistoKod; + + @JsonProperty("PeriodaVypisu") + private String periodaVypisu; + + @JsonProperty("PoplatkovyPlan") + private String poplatkovyPlan; + + @JsonProperty("PouzitaAA") + private String pouzitaAA; + + @JsonProperty("ProduktKod") + private String produktKod; + + @JsonProperty("StavUctu") + private String stavUctu; + + @JsonProperty("UrokovaSazba") + private Integer urokovaSazba; + + @JsonProperty("VypisNaKonciMesice") + private Boolean vypisNaKonciMesice; + + @JsonProperty("VypisyFrekvence") + private String vypisyFrekvence; + + @JsonProperty("VypisySpecifickeDatum") + private Integer vypisySpecifickeDatum; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedSmeDepositOfferRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedSmeDepositOfferRequest.java new file mode 100644 index 0000000..70e57ed --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedSmeDepositOfferRequest.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetSelectedSmeDepositOfferRequest { + + @JsonProperty("ChannelId") + private String channelId; + + @JsonProperty("NACE") + private String nace; + + @JsonProperty("Residence") + private String residence; + + @JsonProperty("ProductClass") + private String productClass; + + @JsonProperty("LegalFormId") + private String legalFormId; + + @JsonProperty("ClientType") + private String clientType; + + @JsonProperty("CurrencyIn") + private String currencyIn; + + @JsonProperty("ProductCodeSelected") + private String productCodeSelected; + +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedSmeDepositOfferResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedSmeDepositOfferResponse.java new file mode 100644 index 0000000..0edc212 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSelectedSmeDepositOfferResponse.java @@ -0,0 +1,79 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetSelectedSmeDepositOfferResponse { + @JsonProperty(value = "data") + @Builder.Default + private List data = new ArrayList<>(); + + @JsonProperty("fault") + private FaultModel fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + + public static class OfferData { + @JsonProperty("ProductCode") + private String productCode; + + @JsonProperty("ProductName") + private String productName; + + @JsonProperty("FeePlan") + private String feePlan; + + @JsonProperty("IntRatePlan") + private String intRatePlan; + + @JsonProperty("CampaignOffer") + private String campaignOffer; + + @JsonProperty("SalesProductType") + private String salesProductType; + + @JsonProperty("IBSBTitle") + private String ibsbTitle; + + @JsonProperty("Currency") + private String currency; + + @JsonProperty("MaxCount") + private String maxCount; + + @JsonProperty("IndividualIntRateAllowed") + private String individualIntRateAllowed; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class FaultModel { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmeDepositIndividualIrPlanRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmeDepositIndividualIrPlanRequest.java new file mode 100644 index 0000000..f85f6d0 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmeDepositIndividualIrPlanRequest.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetSmeDepositIndividualIrPlanRequest { + + @JsonProperty("CIF") + private String cif; + + @JsonProperty("FEE_PLAN") + private String fee_plan; + + @JsonProperty("PROD_CODE") + private String prod_code; + + @JsonProperty("CHANNEL_ID") + private String channel_id; + + @JsonProperty("PROD_CLASS") + private String prod_class; +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmeDepositIndividualIrPlanResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmeDepositIndividualIrPlanResponse.java new file mode 100644 index 0000000..a4d182f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmeDepositIndividualIrPlanResponse.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.*; + +import java.util.ArrayList; +import java.util.List; + +/** + * Response model for GET_SME_DEPOSIT_INDIVIDUAL_IR_PLAN service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetSmeDepositIndividualIrPlanResponse { + + @JsonProperty("RS_DATA") + @Builder.Default + private List rsData = new ArrayList<>(); + + @JsonProperty("fault") + private Fault fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class RsData { + @JsonProperty("INT_RATE_PLAN") + private String intRatePlan; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Fault { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmePckgAppStateRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmePckgAppStateRequest.java new file mode 100644 index 0000000..fafe315 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmePckgAppStateRequest.java @@ -0,0 +1,26 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for NAS GET_SME_PCKG_APP_STATE service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetSmePckgAppStateRequest { + + @JsonProperty("PROD_PCKG_KEY") + private Long prodPckgKey; + + @JsonProperty("APP_KEY") + private Long appKey; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmePckgAppStateResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmePckgAppStateResponse.java new file mode 100644 index 0000000..b2ab5fa --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/GetSmePckgAppStateResponse.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.ArrayList; +import java.util.List; + +/** + * Response model for NAS GET_SME_PCKG_APP_STATE service + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetSmePckgAppStateResponse { + + @JsonProperty("PROD_PCKG_KEY") + private Long prodPckgKey; + + @JsonProperty("AGGREGATED_STATE") + private String aggregatedState; + + @JsonProperty("RS_1") + @Builder.Default + private List rs1 = new ArrayList<>(); + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Rs1 { + @JsonProperty("APP_KEY") + private Long appKey; + + @JsonProperty("APP_STATE") + private String appState; + + @JsonProperty("PROD_CLASS") + private String prodClass; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/LockTaskRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/LockTaskRequest.java new file mode 100644 index 0000000..2b85122 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/LockTaskRequest.java @@ -0,0 +1,24 @@ +// ...existing code... +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for LOCK_TASK service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class LockTaskRequest { + + @JsonProperty("TKIID") + private String tkiid; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/LockTaskResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/LockTaskResponse.java new file mode 100644 index 0000000..78076da --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/LockTaskResponse.java @@ -0,0 +1,69 @@ +// ...existing code... +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** + * Response model for LOCK_TASK service + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class LockTaskResponse { + + @JsonProperty("OWNER") + private String owner; + + @JsonProperty("TIME_CLAIM") + private String timeClaim; + + @JsonProperty("tifResponseStatus") + private ErrorModel tifResponseStatus; + + @JsonProperty("fault") + private FaultModel fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ErrorModel { + @JsonProperty("resultCode") + private String resultCode; + + @JsonProperty("errorCode") + private String errorCode; + + @JsonProperty("errorDesc") + private String errorDesc; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class FaultModel { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWF9C6Request.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWF9C6Request.java new file mode 100644 index 0000000..9580cf3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWF9C6Request.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class MWF9C6Request { + + @JsonProperty("ProdPackageKey") + private Long prodPackageKey; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWF9C6Response.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWF9C6Response.java new file mode 100644 index 0000000..f3a6112 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWF9C6Response.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Stav workflow ve WPS: + * 1 - Running + * 2 - AfterKO + * 3 - Contract Printed + * 4 - Denied + * 5 - Canceled + * 6 - Disbursed + * 7 - Waiting for all signers + * + * @author Autogenerated + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class MWF9C6Response { + + @JsonProperty("WorkFlowState") + private Long workFlowState; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFEW4Request.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFEW4Request.java new file mode 100644 index 0000000..c695647 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFEW4Request.java @@ -0,0 +1,47 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for MWFEW4 service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class MWFEW4Request { + + @JsonProperty("APPL_KEY") + private Long applKey; + + @JsonProperty("APPL_PRINTED_FLAG") + private Long applPrintedFlag; + + @JsonProperty("APPL_READ_FLAG") + private Long applReadFlag; + + @JsonProperty("APPL_SET_KEY") + private Long applSetKey; + + @JsonProperty("APPROVER_REQ_KEY") + private Long approverReqKey; + + @JsonProperty("CONTEXT") + private String context; + + @JsonProperty("REQ_INFOLIMIT_TYPE") + private String reqInfolimitType; + + @JsonProperty("WF_ID") + private String wfId; + + @JsonProperty("WF_STATE") + private String wfState; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFEW4Response.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFEW4Response.java new file mode 100644 index 0000000..792f592 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFEW4Response.java @@ -0,0 +1,62 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** + * Response model for MWFEW4 service + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class MWFEW4Response { + + @JsonProperty("tifResponseStatus") + private ErrorModel tifResponseStatus; + + @JsonProperty("fault") + private FaultModel fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ErrorModel { + @JsonProperty("resultCode") + private String resultCode; + + @JsonProperty("errorCode") + private String errorCode; + + @JsonProperty("errorDesc") + private String errorDesc; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class FaultModel { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIS3Request.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIS3Request.java new file mode 100644 index 0000000..f079bd5 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIS3Request.java @@ -0,0 +1,12 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +@Builder +@Data +public class MWFIS3Request { + @JsonProperty("CurrentAccount") + private String currentAccount; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIT4Request.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIT4Request.java new file mode 100644 index 0000000..b2aca7d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIT4Request.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * Request model for HUB MWFIT4 service + * Generated from swagger: contains Data[] and ProdPackageType + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class MWFIT4Request { + + @JsonProperty("Data") + @Builder.Default + private List data = new ArrayList<>(); + + @JsonProperty("ProdPackageType") + private String prodPackageType; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DataItem { + @JsonProperty("RS_APPKEY") + private Long rsAppkey; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIT4Response.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIT4Response.java new file mode 100644 index 0000000..4e6838f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIT4Response.java @@ -0,0 +1,27 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** + * Response model for HUB MWFIT4 service + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class MWFIT4Response { + + @JsonProperty("ProdPackageKey") + private Long prodPackageKey; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIU6Request.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIU6Request.java new file mode 100644 index 0000000..6fa61d3 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIU6Request.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class MWFIU6Request { + + @JsonProperty("BranchID") + private String branchId; // OM, za které se podepisují žádosti (HCisOM) + + @JsonProperty("CIF") + private String cif; // Klientské identifikační číslo z ICBS + + @JsonProperty("ProdPackageKey") + private Long prodPackageKey; // Key/ID balíčku žádosti (int64) +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIU6Response.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIU6Response.java new file mode 100644 index 0000000..6c68d91 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/MWFIU6Response.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class MWFIU6Response { + + @JsonProperty("WFID") + private String wfid; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextRightsSimpleRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextRightsSimpleRequest.java new file mode 100644 index 0000000..6c29156 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextRightsSimpleRequest.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for SET_EM_CONTEXT_RIGHTS_SIMPLE service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class SetEmContextRightsSimpleRequest { + + @JsonProperty("CONTEXT_ID") + private Long contextId; + + @JsonProperty("TEMPLATE_ID") + private Long templateId; + + @JsonProperty("TRANSACTION_ID") + private String transactionId; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextRightsSimpleResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextRightsSimpleResponse.java new file mode 100644 index 0000000..67ae2f4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextRightsSimpleResponse.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Response model for SET_EM_CONTEXT_RIGHTS_SIMPLE service + * 200 response is an empty object; default contains a `fault` object with details + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class SetEmContextRightsSimpleResponse { + + @JsonProperty("fault") + private Fault fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Fault { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextStatusRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextStatusRequest.java new file mode 100644 index 0000000..2cb6d81 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextStatusRequest.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for SET_EM_CONTEXT_STATUS service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class SetEmContextStatusRequest { + + @JsonProperty("TRANSACTION_ID") + private String transactionId; + + @JsonProperty("CONTEXT_ID") + private Long contextId; + + @JsonProperty("STATUS") + private String status; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextStatusResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextStatusResponse.java new file mode 100644 index 0000000..5a6bc16 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetEmContextStatusResponse.java @@ -0,0 +1,45 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Response model for SET_EM_CONTEXT_STATUS service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class SetEmContextStatusResponse { + + @JsonProperty("PROCESSING_STATUS") + private String processingStatus; + + /** + * Optional fault structure returned in error cases ("default" response) + */ + @JsonProperty("fault") + private Fault fault; + + // Inner fault model moved inside this response class to keep the structure local + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Fault { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetJuridicaRelatedPersionDetailRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetJuridicaRelatedPersionDetailRequest.java new file mode 100644 index 0000000..249011d --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetJuridicaRelatedPersionDetailRequest.java @@ -0,0 +1,93 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +import java.math.BigDecimal; + +@Builder +@Data +public class SetJuridicaRelatedPersionDetailRequest { + + @JsonProperty("country") + private String country; + + @JsonProperty("companyName") + private String companyName; + + @JsonProperty("bankIban") + private String bankIban; + + @JsonProperty("addressHouseNumber") + private String addressHouseNumber; + + @JsonProperty("clientType") + private String clientType; + + @JsonProperty("addressLandRegistryNumber") + private String addressLandRegistryNumber; + + @JsonProperty("surname") + private String surname; + + @JsonProperty("action") + private String action; + + @JsonProperty("bankAccountNumber") + private String bankAccountNumber; + + @JsonProperty("birthNumber") + private String birthNumber; + + @JsonProperty("instPtKey") + private String instPtKey; + + @JsonProperty("email") + private String email; + + @JsonProperty("addressCity") + private String addressCity; + + @JsonProperty("sharePercentage") + private String sharePercentage; + + @JsonProperty("addressCountry") + private String addressCountry; + + @JsonProperty("addressZipCode") + private String addressZipCode; + + @JsonProperty("companyIdentificationNumber") + private String companyIdentificationNumber; + + @JsonProperty("bankCode") + private String bankCode; + + @JsonProperty("suggestionId") + private String suggestionId; + + @JsonProperty("accountNumber") + private String accountNumber; + + @JsonProperty("birthDate") + private String birthDate; + + @JsonProperty("shareAmount") + private BigDecimal shareAmount; + + @JsonProperty("addressStreet") + private String addressStreet; + + @JsonProperty("phone") + private String phone; + + @JsonProperty("partyRole") + private String partyRole; + + @JsonProperty("name") + private String name; + + @JsonProperty("bankIdCode") + private String bankIdCode; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetJuridicaTotalAmountsRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetJuridicaTotalAmountsRequest.java new file mode 100644 index 0000000..0e8901f --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetJuridicaTotalAmountsRequest.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +import java.math.BigDecimal; + +@Builder +@Data +public class SetJuridicaTotalAmountsRequest { + + @JsonProperty("depositAmount") + private BigDecimal depositAmount; + + @JsonProperty("accountNumber") + private String accountNumber; + + @JsonProperty("paidAmount") + private BigDecimal paidAmount; +} diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetProdOpenTaskRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetProdOpenTaskRequest.java new file mode 100644 index 0000000..92b1095 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetProdOpenTaskRequest.java @@ -0,0 +1,84 @@ +// ...existing code... +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Request model for SET_PRODOPEN_TASK service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class SetProdOpenTaskRequest { + + @JsonProperty("TKIID") + private String tkiid; + + @JsonProperty("ACCOUNTNUMBER") + private String accountnumber; + + @JsonProperty("APPLICATIONID") + private String applicationid; + + @JsonProperty("APPLICATIONKEY") + private Long applicationkey; + + @JsonProperty("APPLICATIONSETKEY") + private Long applicationsetkey; + + @JsonProperty("BANKERSPROFILE") + private String bankersprofile; + + @JsonProperty("CARDLOGO") + private String cardlogo; + + @JsonProperty("CARDTYPE") + private Long cardtype; + + @JsonProperty("CLIENTID") + private String clientid; + + @JsonProperty("CONTRACTNUMBER") + private String contractnumber; + + @JsonProperty("CONTRACTSIGNED") + private Boolean contractsigned; + + @JsonProperty("CONTRACTSIGNINGDATE") + private String contractsigningdate; + + @JsonProperty("CREDITACCOUNTNUMBER") + private String creditaccountnumber; + + @JsonProperty("DOCUMENTID") + private String documentid; + + @JsonProperty("PARENTWFID") + private String parentwfid; + + @JsonProperty("PRODUCTTYPE") + private String producttype; + + @JsonProperty("REQUESTTYPE") + private String requesttype; + + @JsonProperty("SETFEE") + private Boolean setfee; + + @JsonProperty("DISTRIBUTIONCHANNELL") + private String distributionchannell; + + @JsonProperty("AUTOSIGNATURE") + private Boolean autosignature; + + @JsonProperty("PROCESSRESULT") + private String processresult; +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetProdOpenTaskResponse.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetProdOpenTaskResponse.java new file mode 100644 index 0000000..ae60faf --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/smallbusiness/SetProdOpenTaskResponse.java @@ -0,0 +1,44 @@ +// ...existing code... +package cz.moneta.test.dsl.wso2.objects.smallbusiness; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** + * Response model for SET_PRODOPEN_TASK service + */ +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +@EqualsAndHashCode(callSuper = false) +@ToString +@JsonIgnoreProperties(ignoreUnknown = true) +public class SetProdOpenTaskResponse { + + @JsonProperty("fault") + private FaultModel fault; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class FaultModel { + @JsonProperty("code") + private String code; + + @JsonProperty("message") + private String message; + + @JsonProperty("description") + private String description; + } +} + diff --git a/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/traininggov/DoDepersCustTestRequest.java b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/traininggov/DoDepersCustTestRequest.java new file mode 100644 index 0000000..944f3a4 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/dsl/wso2/objects/traininggov/DoDepersCustTestRequest.java @@ -0,0 +1,50 @@ +package cz.moneta.test.dsl.wso2.objects.traininggov; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * Request model for DO_DEPERS_CUST_TEST service + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class DoDepersCustTestRequest { + + @JsonProperty("ICO_NUM") + private String icoNum; + + @JsonProperty("FOPCIF") + private String fopCif; + + @JsonProperty("RC_NUM") + private String rcNum; + + @JsonProperty("FONCIF") + private String fonCif; + + @JsonProperty("RS_1") + @Builder.Default + private List rsData = new ArrayList<>(); + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Rs1 { + + @JsonProperty("SRC_SYS_ID_IN") + private String srcSysIdIn; + + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/testrunner/HarnessJunitParallelStrategy.java b/tests/src/main/java/cz/moneta/test/testrunner/HarnessJunitParallelStrategy.java new file mode 100644 index 0000000..d5bbd75 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/testrunner/HarnessJunitParallelStrategy.java @@ -0,0 +1,37 @@ +package cz.moneta.test.testrunner; + +import org.junit.platform.engine.ConfigurationParameters; +import org.junit.platform.engine.support.hierarchical.ParallelExecutionConfiguration; +import org.junit.platform.engine.support.hierarchical.ParallelExecutionConfigurationStrategy; + +public class HarnessJunitParallelStrategy implements ParallelExecutionConfiguration, ParallelExecutionConfigurationStrategy { + @Override + public int getParallelism() { + return 2; + } + + @Override + public int getMinimumRunnable() { + return 0; + } + + @Override + public int getMaxPoolSize() { + return 2; + } + + @Override + public int getCorePoolSize() { + return 2; + } + + @Override + public int getKeepAliveSeconds() { + return 30; + } + + @Override + public ParallelExecutionConfiguration createConfiguration(final ConfigurationParameters configurationParameters) { + return this; + } +} \ No newline at end of file diff --git a/tests/src/main/java/cz/moneta/test/testrunner/TestRunner.java b/tests/src/main/java/cz/moneta/test/testrunner/TestRunner.java new file mode 100644 index 0000000..44dca86 --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/testrunner/TestRunner.java @@ -0,0 +1,81 @@ +package cz.moneta.test.testrunner; + +import org.junit.platform.commons.JUnitException; +import org.junit.platform.console.options.CommandLineOptions; +import org.junit.platform.console.options.CommandLineOptionsParser; +import org.junit.platform.console.options.Details; +import org.junit.platform.console.options.PicocliCommandLineOptionsParser; +import org.junit.platform.console.tasks.ConsoleTestExecutor; +import org.junit.platform.launcher.listeners.TestExecutionSummary; + +import java.io.PrintStream; +import java.io.PrintWriter; +import java.nio.file.Paths; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class TestRunner { + private final CommandLineOptionsParser commandLineOptionsParser; + private final PrintWriter out; + private final PrintWriter err; + + private TestRunner(CommandLineOptionsParser commandLineOptionsParser, PrintWriter out, PrintWriter err) { + this.commandLineOptionsParser = commandLineOptionsParser; + this.out = out; + this.err = err; + } + + public static void main(String... args) { + int exitCode = execute(System.out, System.err, args).getExitCode(); + System.exit(exitCode); + } + + private static TestRunnerExecutionResult execute(PrintStream out, PrintStream err, String... args) { + return execute(new PrintWriter(out), new PrintWriter(err), args); + } + + private static TestRunnerExecutionResult execute(PrintWriter out, PrintWriter err, String... args) { + CommandLineOptionsParser parser = new PicocliCommandLineOptionsParser(); + TestRunner consoleLauncher = new TestRunner(parser, out, err); + return consoleLauncher.execute(args); + } + + private TestRunnerExecutionResult execute(String... args) { + try { + CommandLineOptions options = commandLineOptionsParser.parse(args); + if (options.isDisplayHelp()) { + commandLineOptionsParser.printHelp(out); + return TestRunnerExecutionResult.success(); + } + Map configurationParameters = options.getConfigurationParameters(); + configurationParameters.put("junit.platform.output.capture.stdout", "true"); + options.setConfigurationParameters(configurationParameters); + options.setIncludedClassNamePatterns(Stream.of("^(.*)$").collect(Collectors.toList())); + options.setExcludedEngines(Stream.of("junit-vintage").collect(Collectors.toList())); + options.setReportsDir(Paths.get("target", "xml-reports")); + options.setDetails(Details.NONE); + return executeTests(options, out); + } catch (JUnitException ex) { + err.println(ex.getMessage()); + err.println(); + commandLineOptionsParser.printHelp(err); + return TestRunnerExecutionResult.failed(); + } finally { + out.flush(); + err.flush(); + } + } + + private TestRunnerExecutionResult executeTests(CommandLineOptions options, PrintWriter out) { + try { + TestExecutionSummary testExecutionSummary = new ConsoleTestExecutor(options).execute(out); + return TestRunnerExecutionResult.forSummary(testExecutionSummary, options); + } catch (Exception exception) { + exception.printStackTrace(err); + err.println(); + commandLineOptionsParser.printHelp(out); + } + return TestRunnerExecutionResult.failed(); + } +} diff --git a/tests/src/main/java/cz/moneta/test/testrunner/TestRunnerExecutionResult.java b/tests/src/main/java/cz/moneta/test/testrunner/TestRunnerExecutionResult.java new file mode 100644 index 0000000..25389ea --- /dev/null +++ b/tests/src/main/java/cz/moneta/test/testrunner/TestRunnerExecutionResult.java @@ -0,0 +1,48 @@ +package cz.moneta.test.testrunner; + +import org.junit.platform.console.options.CommandLineOptions; +import org.junit.platform.launcher.listeners.TestExecutionSummary; + +import java.util.Optional; + +public class TestRunnerExecutionResult { + private static final int SUCCESS = 0; + private static final int TEST_FAILED = 1; + private static final int NO_TESTS_FOUND = 2; + private static final int FAILED = -1; + private final int exitCode; + private final TestExecutionSummary testExecutionSummary; + + private TestRunnerExecutionResult(int exitCode, TestExecutionSummary testExecutionSummary) { + this.testExecutionSummary = testExecutionSummary; + this.exitCode = exitCode; + } + + public static int computeExitCode(TestExecutionSummary summary, CommandLineOptions options) { + if (options.isFailIfNoTests() && summary.getTestsFoundCount() == 0) { + return NO_TESTS_FOUND; + } + return summary.getTotalFailureCount() == 0 ? SUCCESS : TEST_FAILED; + } + + static TestRunnerExecutionResult success() { + return new TestRunnerExecutionResult(SUCCESS, null); + } + + static TestRunnerExecutionResult failed() { + return new TestRunnerExecutionResult(FAILED, null); + } + + static TestRunnerExecutionResult forSummary(TestExecutionSummary summary, CommandLineOptions options) { + int exitCode = computeExitCode(summary, options); + return new TestRunnerExecutionResult(exitCode, summary); + } + + public int getExitCode() { + return exitCode; + } + + public Optional getTestExecutionSummary() { + return Optional.ofNullable(testExecutionSummary); + } +} diff --git a/tests/src/main/resources/besim/MWF1F6.xml b/tests/src/main/resources/besim/MWF1F6.xml new file mode 100644 index 0000000..f7608b1 --- /dev/null +++ b/tests/src/main/resources/besim/MWF1F6.xml @@ -0,0 +1,182 @@ + + + + TST + BSM + MBCZDWHQXX01206.mbid + SERVICE + 1 + BSM + 2018-03-20 + MBCZDWHQXX01206.mbid + 11:10:55,447 + 100 + TST + UsrL2 + UsrL3 + + + 0 + 2018-03-20 + 11:10:55,447 + + + awbs://dmbs.internetbanka.cz/digdev2/ploan/#/login + + + sigType + 100 + biometricSignature + + + enabled + 100 + 1 + + + completed + 100 + + + + required + 100 + 1 + + + displayName + 100 + Podepsat + + + fd + 100 + Podepisujete... + + + userId + 100 + + + + verifyType + 100 + 0 + + + sigType + 10 + biometricSignature + + + enabled + 10 + 1 + + + completed + 10 + + + + required + 10 + 1 + + + displayName + 10 + Podepsat + + + fd + 10 + Podepisujete... + + + userId + 10 + + + + verifyType + 10 + 0 + + + enabled + 1 + 1 + + + completed + 1 + 0 + + + required + 1 + 1 + + + displayName + 1 + Přečíst + + + fd + 1 + Podepisujete... + + + + Test Petr + 1 + Session bezi + 543829556 + + + Sign + 1 + Komplexní smlouva + NoSequenceEnforced + https://spii-test-significant.lb.mbid.cz:8088/fileHandler.ashx?downloadFile=1&token=T-ffcbe94a-1bf8-494f-abbb-85c7ac&group=1&docId=85ebbac3-f27e-4195-a8ed-cf2e8efe6741 + https://spii-test-significant.lb.mbid.cz:8088/fileHandler.ashx?flatten=2&downloadFile=1&token=T-ffcbe94a-1bf8-494f-abbb-85c7ac&group=1 + + 0 + Proces běží. + + + Read + 2 + Předsmluvní informace + + + https://spii-test-significant.lb.mbid.cz:8088/fileHandler.ashx?flatten=2&downloadFile=1&token=T-ffcbe94a-1bf8-494f-abbb-85c7ac&group=2 + + 0 + Proces je pripraven na spusteni + + + + + 100 + 1 + 0 + Proces je pripraven na spusteni + + + 10 + 1 + 0 + Proces je pripraven na spusteni + + + 1 + 2 + 0 + Proces je pripraven na spusteni + + + + \ No newline at end of file diff --git a/tests/src/main/resources/besim/MWF6I3.xml b/tests/src/main/resources/besim/MWF6I3.xml new file mode 100644 index 0000000..8a7970f --- /dev/null +++ b/tests/src/main/resources/besim/MWF6I3.xml @@ -0,0 +1,25 @@ + + + + MWF6I3 + 1 + GEMTEST + + MYCZDWHQXX04606.mbid + CBL_TEST + MYCZDWHQXX04606.mbid + CBL_TEST + 3.193.41.52 + HUB_TEST + 2017-01-10 + 13:59:42,949 + 2017-01-10 + 13:59:45,905 + 0 + + + + + #{id_mcd_certified} + + \ No newline at end of file diff --git a/tests/src/main/resources/besim/MWFCF6.xml b/tests/src/main/resources/besim/MWFCF6.xml new file mode 100644 index 0000000..49593a9 --- /dev/null +++ b/tests/src/main/resources/besim/MWFCF6.xml @@ -0,0 +1,50 @@ + + + + MWFCF6 + 1 + GEMTEST + + MYCZDWHQXX04606.mbid + CBL_TEST + MYCZDWHQXX04606.mbid + CBL_TEST + 3.193.41.52 + HUB_TEST + 2017-01-10 + 13:59:42,949 + 2017-01-10 + 13:59:45,905 + 0 + + + + + 4 + 1 + 0 + 86008000 + 0 + + + 0 + + + 30 + 6030994 + 1 + 19 + Test 19 + Test + 1 + #{sso} + 1 + 5 + 0 + + + 4324 + + + + \ No newline at end of file diff --git a/tests/src/main/resources/besim/MWFJM1.xml b/tests/src/main/resources/besim/MWFJM1.xml new file mode 100644 index 0000000..270d29e --- /dev/null +++ b/tests/src/main/resources/besim/MWFJM1.xml @@ -0,0 +1,41 @@ + + + + MWFJM1 + 766 + GEMTEST + + MBCZDWHQXX01404.mbid + UFO_TEST + MBCZDWHQXX01404.mbid + UFO_TEST + 3.193.41.70 + HUB_TEST + 2019-08-02 + 15:24:42,663 + 2019-08-02 + 15:26:18,730 + 0 + + + + + #{city} + #{house_number} + 52 + #{street} + #{zip} + 0 + + #{legal_form} + + 691000 + + + #{full_name} + + 1993-09-01 + 52 + 45 + + \ No newline at end of file diff --git a/tests/src/main/resources/besim/MWFJM7.xml b/tests/src/main/resources/besim/MWFJM7.xml new file mode 100644 index 0000000..38cff0f --- /dev/null +++ b/tests/src/main/resources/besim/MWFJM7.xml @@ -0,0 +1,148 @@ + + + + TST + BSM + AUTOGENERATED.mbid + SERVICE + 1 + BSM + 2017-11-24 + AUTOGENERATED.mbid + 16:15:12,640 + 100 + TST + UsrL2 + UsrL3 + + + 0 + 2017-11-24 + 16:15:12,640 + + + + + + uklízečka + 1 + + + dělník/řemeslník + 2 + + + technik/řidič + 3 + + + prodavač/prodejce + 4 + + + učitel + 5 + + + zdravotní sestra/zdravotní personál + 6 + + + nižší vedoucí pozice + 7 + + + manager/ředitel + 8 + + + ozbrojené státní složky + 9 + + + právník/advokát + 10 + + + admin/bankovní pracovník/účetní + 11 + + + odborný pracovník/expert/pilot + 12 + + + lékař/zubař + 13 + + + veterinář + 14 + + + umělecká profese + 15 + + + sportovec/sportovní trenér + 16 + + + státní správa + 17 + + + starosta/poslanec/hejtman/politik + 18 + + + soudce/státní zástupce + 19 + + + pracovník v gastronomii + 20 + + + staveb. projektant/statik/architekt + 21 + + + it programátor/software developer + 22 + + + masér/fyzioterapeut + 23 + + + kadeřnice/kosmetička/manikérka + 24 + + + tlumočník/překladatel + 25 + + + poradce/hr konzultant/real. makléř + 26 + + + psycholog/psychiatr/terapeut + 27 + + + průvodčí/revizor/obslužný personál + 28 + + + operátor call centra + 29 + + + svobodné povolání- zaměstnanec + 30 + + + + \ No newline at end of file diff --git a/tests/src/main/resources/besim/MWFS54_in.xml b/tests/src/main/resources/besim/MWFS54_in.xml new file mode 100644 index 0000000..d0c6992 --- /dev/null +++ b/tests/src/main/resources/besim/MWFS54_in.xml @@ -0,0 +1,20 @@ + +

+ MWFS54 + 1 + NAS001534338132740722285 + 2018-08-15 15:02:12 + nas_test + 999001001 + HUB_TEST + UAT_myczvl + NAS_TEST + 4 +
+ + + 8007045552 + 3 + 2018-07-16 + + diff --git a/tests/src/main/resources/besim/MWFS54_out.xml b/tests/src/main/resources/besim/MWFS54_out.xml new file mode 100644 index 0000000..4fedabf --- /dev/null +++ b/tests/src/main/resources/besim/MWFS54_out.xml @@ -0,0 +1,18 @@ + +
+ MWFS54 + 1 + NAS001534338132740722285 + 2018-08-15 15:02:12 + nas_test + 999001001 + HUB_TEST + UAT_myczvl + NAS_TEST + 4 + 0
<?xml version="1.0" encoding="UTF-8"?> + <EDEDataResponse><Result><Code>OK</Code><Description>success</Description></Result><ResponseData><CR_REP><GUID>12b4a2de-8b78-4580-9a46-1fcb33e43b01</GUID><Header> + <FunctionCode>01001</FunctionCode> + <ReleaseOfFunctionCode>1</ReleaseOfFunctionCode> + <Service>EB</Service> + </Header><Response><CustomerData><ReqCustomer><CustomerType>1</CustomerType><Customer><FIPersonalCode>LCBID05000562054</FIPersonalCode><Individual><Name><PresentSurname-TradeName>NOVÁK</PresentSurname-TradeName><PresentName-OwnerPresentName>JAN</PresentName-OwnerPresentName><OwnerPresentSurname/><BirthSurname>NOVÁK</BirthSurname></Name><PINInfo><PIN/><FlagPINUsed>1</FlagPINUsed></PINInfo><Gender>M</Gender><BirthInfo><DateOfBirth>04071980</DateOfBirth><PlaceOfBirth/><CountryCode/></BirthInfo><Address><Place><Street>T. NOVÁKOVÉ 982</Street><ZIP>50901</ZIP><City>NOVÁ PAKA</City><Region/><CountryCode>CZ</CountryCode></Place></Address><AdditionalAddress><Place><Street/><ZIP/><City/><Region/><CountryCode>CZ</CountryCode></Place></AdditionalAddress><PhoneInfo><PhoneNumber/><FaxNumber/><MobilePhone/><E-mail/><AdditionalPhoneNumber/><AdditionalFaxNumber/></PhoneInfo><DocumentInfo><DocumentType/><DocumentNumber/><DocumentIssueDate/><CountryCode/></DocumentInfo><FlagElectronicSignatureHolder>0</FlagElectronicSignatureHolder></Individual></Customer></ReqCustomer><FoundCustomer><CustomerType>1</CustomerType><CustomerNr>1</CustomerNr><Customer><CCBPersonalCode>R19239946</CCBPersonalCode><FIPersonalCode/></Customer></FoundCustomer><AdditionalCustomers><CustomerType/><CustomerNr/><Customer><CCBPersonalCode/><FIPersonalCode/></Customer></AdditionalCustomers></CustomerData><ContractData><CurrentOp><CCBOperationCode>01217981R</CCBOperationCode><OpNumber>CC_1808010008</OpNumber><OpType>SU</OpType></CurrentOp><CurrencyCode>CZK</CurrencyCode><TotalContracts/><NrOfSignallingBodies/><NrOfChargeOffSignallingBodies/><InstSummary><Summary><NrOfRequested/><NrOfLiving/><NrOfRefused/><NrOfRenounced/><NrOfTerminated/></Summary></InstSummary><NoInstSummary><Summary><NrOfRequested/><NrOfLiving/><NrOfRefused/><NrOfRenounced/><NrOfTerminated/></Summary></NoInstSummary><CardSummary><Summary><NrOfRequested/><NrOfLiving/><NrOfRefused/><NrOfRenounced/><NrOfTerminated/></Summary></CardSummary><ServiceSummary><Summary><NrOfRequested/><NrOfLiving/><NrOfRefused/><NrOfRenounced/><NrOfTerminated/></Summary></ServiceSummary><Installments><NrOfOperationsForAmounts>0</NrOfOperationsForAmounts><ACInstAmounts><InstAmounts><MonthlyInstalmentAmount/><ResidualAmount/><DueAmount/></InstAmounts></ACInstAmounts><GInstAmounts><InstAmounts><MonthlyInstalmentAmount/><ResidualAmount/><DueAmount/></InstAmounts></GInstAmounts></Installments><NoInstallments><NrOfOperationsForAmounts>0</NrOfOperationsForAmounts><ACNoInstAmounts><NoInstAmounts><CreditLimit/><Utilization/><Overdraft/></NoInstAmounts></ACNoInstAmounts><GNoInstAmounts><NoInstAmounts><CreditLimit/><Utilization/><Overdraft/></NoInstAmounts></GNoInstAmounts></NoInstallments><Cards><NrOfOperationsForAmounts>0</NrOfOperationsForAmounts><ACCardAmounts><CardAmounts><CreditLimit/><ResidualAmount/><DueAmount/></CardAmounts></ACCardAmounts><GCardAmounts><CardAmounts><CreditLimit/><ResidualAmount/><DueAmount/></CardAmounts></GCardAmounts></Cards><Services><NrOfOperationsForAmounts>0</NrOfOperationsForAmounts><ACServiceAmounts><ServiceAmounts><OutstandingAmount/><ExpiredAmount/><UnpaidAmount/></ServiceAmounts></ACServiceAmounts><GServiceAmounts><ServiceAmounts><OutstandingAmount/><ExpiredAmount/><UnpaidAmount/></ServiceAmounts></GServiceAmounts></Services><OtherDataBanks><InquiryNr/><InquiryAmount/><DateOfLastInquiry/></OtherDataBanks></ContractData></Response></CR_REP></ResponseData><ExternalSystem>CCA</ExternalSystem><RequestedBy/><QueryDate>01.08.2018 08:37:23</QueryDate><Online>false</Online><ExternalSourceId>6</ExternalSourceId></EDEDataResponse>
diff --git a/tests/src/main/resources/besim/MWFTST.xml b/tests/src/main/resources/besim/MWFTST.xml new file mode 100644 index 0000000..112d943 --- /dev/null +++ b/tests/src/main/resources/besim/MWFTST.xml @@ -0,0 +1,140 @@ + + + + MWFTST + 1 + GEMTEST + + MYCZDWHQXX04606.mbid + GEM_TEST + MYCZDWHQXX04606.mbid + GEM_TEST + 3.193.41.52 + HUB_TEST + 2017-01-10 + 13:59:42,949 + 2017-01-10 + 13:59:45,905 + 0 + + + + + + + 29 + #{infolimit} + + CZK + + + + 2 + + + + Sc + 0 + + + 15 + 0 + + CZK + + + + 2 + + SEGMENT + + Sc + 1 + + + 93 + 300000 + + CZK + + + + 2 + + + + Sc + 2 + + + 92 + 300000 + + CZK + + + + 2 + + + + Sc + 3 + + + 58 + 500000 + + CZK + + + + 2 + + + + Sc + 4 + + + 16 + 480000 + + CZK + + + + 2 + + + + Sc + 6 + + + + + 1 + 50003 + 200000 + 84 + 2912.13 + 6.27 + 5.9 + 245914.16 + 6 + + + 2 + 50003 + 250000 + 84 + 2912.13 + 6.27 + 5.9 + 245914.16 + 6 + + + + \ No newline at end of file diff --git a/tests/src/main/resources/ods/ods_albertina_find_ico.sql b/tests/src/main/resources/ods/ods_albertina_find_ico.sql new file mode 100644 index 0000000..361a185 --- /dev/null +++ b/tests/src/main/resources/ods/ods_albertina_find_ico.sql @@ -0,0 +1,36 @@ +-- ALBERTINA +--Description: +--zmeny provadene pres UFO_OPS je mozne sledovat v ODS pomoci selectu +select inst_pt.inst_pt_key, + inst_pt.uni_pt_key, + inst_pt.ico_num, + inst_pt.bus_name, + uni_pt_seg.note, + nvl(seg.descr, + 'ICO neni na BL/WL v ODS, existuje ale v ALBERTINE - MWF658 vrati WL_flag=1') as typ_WL_BL, + uni_pt_seg.expire_date, + uni_pt_seg.ins_dt + + + + from ODS_L1_OWNER.inst_pt inst_pt + left join ODS_L1_OWNER.uni_pt_seg uni_pt_seg on inst_pt.uni_pt_key = + uni_pt_seg.uni_pt_key + and uni_pt_seg.del_flag = 0 + + + + left join ODS_L1_OWNER.Seg seg on uni_pt_seg.seg_key = seg.seg_key + and uni_pt_seg.del_flag = 0 -- zaznam je aktivni + and uni_pt_seg.src_sys_id = 'EXA01' + and uni_pt_seg.del_flag = 0 + where 1 = 1 + and inst_pt.ico_num = '#ICO' + and inst_pt.src_sys_id in ('EXA01', -- CCK BL + 'ALB0' -- ICO z Albertina + , 'CSU0' -- ICO z ARES + ) + + + + order by uni_pt_seg.ins_dt desc \ No newline at end of file diff --git a/tests/src/main/resources/ods/ods_card_info.sql b/tests/src/main/resources/ods/ods_card_info.sql new file mode 100644 index 0000000..4bcff65 --- /dev/null +++ b/tests/src/main/resources/ods/ods_card_info.sql @@ -0,0 +1,50 @@ +select +inst_pt.inst_pt_key INST_PT_KEY, +acc.src_id ACC_NUM, +prod_inst.SRC_SYS_ID PRODUKT, +pos.src_id POS_ID, +acc.block1_code CONTR_BLOCK_CODE_1, +acc.block2_code CONTR_BLOCK_CODE_2, +acc.EMPL_FLAG EMP_FLAG, +card_inst.src_id CARD_NUM, +card_tp.src_id CARD_VARIANT, +COBRAND_TP.src_id CARD_COBRAND, +brand_tp.src_id CARD_BRAND, +DESIGN_CARD_TP.src_id DESIGN_CARD_TP_ID, +card_inst.LMT_ATM_AMT AUTH_LMT_AMT_ATM, +card_inst.LMT_POS_AMT AUTH_LMT_AMT_POS, +card_inst.EXPR_DATE EXPR_DATE, +card_inst.LMT_TP_ID LMT_TYPE, +card_inst.BLOCK_CODE CARD_BLOCK_CODE, +card_inst.BLOCK_date CARD_BLOCK_DATE, +CARD_CHIP_TP.src_id CARD_TECHNOLOGY, +card_inst.OTC_LMT AUTH_LMT_AMT_OTC, +facility_inst.LMT_AMT FACILITY_LMT_AMT, +sys_prod_tp.src_id SYS_PROD_TP_ID, +prod_inst.CONTR_NUM CONTR_NUM, +prod_inst.SIGN_DATE SIGN_DATE, +CARD_PCT.src_id CARD_PCT_ID, +VAR_PROD_TP.src_id VAR_PROD_TP_ID, +card_inst.OWNR_FLAG SUPLEMENTARY_CARD_FLAG, +ccy.src_id CURR_ID, +acc_stat.src_id ACC_STAT + + +from ods_l1_owner.inst_pt +left join ods_l1_owner.acc on acc.inst_pt_key = inst_pt.inst_pt_key +left join ods_l1_owner.acc_role on acc_role.acc_key = acc.acc_key +left join ods_l1_owner.prod_inst on prod_inst.prod_inst_key = acc_role.prod_inst_key +left join ods_l1_owner.pos on pos.pos_key = prod_inst.orig_pos_key +left join ods_l1_owner.card_inst on card_inst.prod_inst_key = prod_inst.prod_inst_key +left join ods_l1_owner.card_tp on card_tp.card_tp_key = card_inst.card_tp_key +left join ods_l1_owner.COBRAND_TP on COBRAND_TP.COBRAND_TP_KEY = card_inst.COBRAND_TP_KEY +left join ods_l1_owner.brand_tp on brand_tp.brand_tp_key = card_inst.brand_tp_key +left join ods_l1_owner.DESIGN_CARD_TP on DESIGN_CARD_TP.DESIGN_CARD_TP_key = card_inst.DESIGN_CARD_TP_key +left join ods_l1_owner.CARD_CHIP_TP on CARD_CHIP_TP.CARD_CHIP_TP_KEY = card_inst.CARD_CHIP_TP_KEY +left join ods_l1_owner.facility_inst on facility_inst.prod_inst_key = prod_inst.prod_inst_key +left join ods_l1_owner.sys_prod_tp on sys_prod_tp.sys_prod_tp_key = prod_inst.sys_prod_tp_key +left join ods_l1_owner.CARD_PCT on card_pct.card_pct_key = prod_inst.CARD_PCT_KEY +left join ods_l1_owner.VAR_PROD_TP on VAR_PROD_TP.VAR_PROD_TP_key = prod_inst.SALES_VAR_PROD_TP_KEY +left join ods_l1_owner.CCY on ccy.ccy_key = acc.ccy_key +left join ods_l1_owner.acc_stat on acc_stat.acc_stat_key = acc.acc_stat_key +where ods_l1_owner.inst_pt.rc_num = '#rc_num' \ No newline at end of file diff --git a/tests/src/main/resources/ods/ods_inst_pt_info.sql b/tests/src/main/resources/ods/ods_inst_pt_info.sql new file mode 100644 index 0000000..ba30a50 --- /dev/null +++ b/tests/src/main/resources/ods/ods_inst_pt_info.sql @@ -0,0 +1,2 @@ +select t.bus_name, t.inst_pt_key,t.uni_pt_key,t.src_sys_id from ODS_L1_OWNER.INST_PT t +where t.ico_num = '#ICO' and t.src_sys_id = '#SRC_SYS_ID' diff --git a/tests/src/main/resources/swagger/openapi.json b/tests/src/main/resources/swagger/openapi.json new file mode 100644 index 0000000..2d28f25 --- /dev/null +++ b/tests/src/main/resources/swagger/openapi.json @@ -0,0 +1,66603 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "CBL API" + }, + "host": "teibs.internetbanka.cz", + "basePath": "/openapi", + "tags": [ + { + "name": "on-behalf-activation-controller", + "description": "Controller specifikujici endpointy pro aktivaci SB uzivatele on-behalf." + }, + { + "name": "credit-card-document-controller", + "description": "Controller pro pozadavky ohledne dokumentu k zadosti o kreditni kartu." + }, + { + "name": "insurance-controller", + "description": "Operations for insurance." + }, + { + "name": "basic-error-controller", + "description": "Basic Error Controller" + }, + { + "name": "portal-investment-controller", + "description": "Kontroler pro investicni fondy." + }, + { + "name": "consent-controller", + "description": "Operace se souhlasy uzivatele" + }, + { + "name": "mgm-controller", + "description": "Member Get Member endpoint(y)" + }, + { + "name": "p-loan-screen-controller", + "description": "Controller pro ziskani ploan screen." + }, + { + "name": "credit-card-controller", + "description": "Kreditni karta" + }, + { + "name": "account-operations-controller", + "description": "Operace s ucty uzivatele" + }, + { + "name": "aisp-controller", + "description": "Api pro získání informace o platebním účtu/účtech klienta banky" + }, + { + "name": "salesbooster-request-controller", + "description": "Controller pro zpracovani endpointu s pozadavky na salesbooster, ktere maji co delat s jiz zalozenymi pozadavky. Napriklad to muze byt ulozeni noveho pozadavku, zruseni pozadavku, odeslani na scoring." + }, + { + "name": "salesbooster-contact-controller", + "description": "Controller pro zpracovani endpointu tykajicich se prace s kontakty." + }, + { + "name": "statement-controller", + "description": "Controller pro ziskani seznamu dostupnych PDF vypisu z a jejich stazeni." + }, + { + "name": "e-auto-controller", + "description": "Operations with EAuto" + }, + { + "name": "journal-controller", + "description": "Controller pro journalovani udalosti z klientskych aplikaci" + }, + { + "name": "smeonboarding-process-controller", + "description": "Onboarding proces kontroler." + }, + { + "name": "mortgage-calculator-controller", + "description": "Kontroler tykajici se hypotecni kalkulacky pro portal." + }, + { + "name": "pisp-controller", + "description": "Specifikace API Iniciace platby obsahuje popis zdrojů pro iniciaci platby, autorizaci platby u konkrétní finanční instituce." + }, + { + "name": "sme-contract-controller", + "description": "operace pro manipulaci s kontraktem" + }, + { + "name": "security-code-controller", + "description": "Security Code Controller" + }, + { + "name": "web-mvc-endpoint-handler-mapping", + "description": "Web Mvc Endpoint Handler Mapping" + }, + { + "name": "sme-lending-product-controller", + "description": "operace pro ziskani ruznych produktu, ich vlastnosti pro klienta" + }, + { + "name": "ufo-authentication-controller", + "description": "Ufo Authentication Controller" + }, + { + "name": "oauth-2-authentication-controller", + "description": "Api pro Oauth2 prihlaseni a federovany login" + }, + { + "name": "card-digitization-controller", + "description": "Digitalizace karty." + }, + { + "name": "point-of-interest-controller", + "description": "Operace s body zajmu" + }, + { + "name": "salesbooster-help-controller", + "description": "Controller pro obsluhu pomocnych kampani" + }, + { + "name": "sme-process-controller", + "description": "zjistovani stavu aplikace" + }, + { + "name": "salesbooster-sign-controller", + "description": "Controller pro zpracovani endpointu s pozadavky na salesbooster, ktere maji co delat s dokumentaci a podpisem smlouvy." + }, + { + "name": "payment-controller", + "description": "Operace pro provedeni platebniho prikazu, vcetne sluzeb pro ziskani potrebnych ciselniku." + }, + { + "name": "online-activation-controller", + "description": "Controller pro aktivaci bez IB." + }, + { + "name": "sme-downtime-controller", + "description": "Indikace, jestli je mozne zahajit prodej uveru." + }, + { + "name": "ca-controller", + "description": "Kontroler obsluhujici pozadavky tykajici se produktoveho balicku s BU/DK/IB/SB" + }, + { + "name": "acquisition-controller", + "description": "Acquisition Controller" + }, + { + "name": "hello-openapi-controller", + "description": "Obecna vystavena sluzba ciste pro handshake mezi zarizenim a serverem, zjisteni jestli na sebe vidi." + }, + { + "name": "secure-vault-controller", + "description": "Secure Vault Controller" + }, + { + "name": "sme-lending-account-controller", + "description": "operace pro ziskani beznych uctu klienta" + }, + { + "name": "secured-log-controller", + "description": "Controller pro logovani udalosti z klientskych aplikaci" + }, + { + "name": "telephone-contact-controller", + "description": "Kontroler tykajici se zanechani telefonniho kontaktu pro portal." + }, + { + "name": "push-controller", + "description": "Sprava push notifikaci" + }, + { + "name": "sme-variant-controller", + "description": "Potvrzeni variantu" + }, + { + "name": "smeonboarding-document-controller", + "description": "Onboarding document controler." + }, + { + "name": "smeonboarding-business-controller", + "description": "Onboarding business controler." + }, + { + "name": "smeonboarding-candidate-controller", + "description": "Onboarding candidate controler." + }, + { + "name": "document-controller", + "description": "Operations for documents." + }, + { + "name": "ploan-controller", + "description": "Controller pro personal loan." + }, + { + "name": "screen-scraping-controller", + "description": "Controller pro screen scraping." + }, + { + "name": "sme-info-limit-controller", + "description": "infolimit uzivatele" + }, + { + "name": "notification-controller", + "description": "Operations with Notifications" + }, + { + "name": "ceska-sporitelna-controller", + "description": "Ceska Sporitelna Controller" + }, + { + "name": "sme-onboarding-liveness-controller", + "description": "Upload liveness videa - zatim puze pro testovaci ucely" + }, + { + "name": "smeonboarding-scoring-controller", + "description": "Controller pro scoring" + }, + { + "name": "acc-type-switch-controller", + "description": "Operations for ca type switching." + }, + { + "name": "smeonboarding-appointment-controller", + "description": "Onboarding appointment kontroler." + }, + { + "name": "p-loan-client-controller", + "description": "Kontroler pro obsluhu pozadavku tykajicich se zadatele o pujcku." + }, + { + "name": "air-bank-controller", + "description": "Air Bank Controller" + }, + { + "name": "info-service-controller", + "description": "Nastaveni InfoServisu." + }, + { + "name": "sb-insurance-controller", + "description": "Controller pro pojisteni ze Smart Banky." + }, + { + "name": "authorized-transaction-controller", + "description": "Operations with Transactions" + }, + { + "name": "cache-controller", + "description": "Cache Controller" + }, + { + "name": "sign-sms-controller", + "description": "Sign SMS Controller" + }, + { + "name": "activation-controller", + "description": "Activation Controller" + }, + { + "name": "smeonboarding-fraud-check-controller", + "description": "Onboarding fraud check kontroler." + }, + { + "name": "card-payment-controller", + "description": "Operace pro provedeni platebniho prikazu z karet, mimo sluzeb pro ziskani potrebnych ciselniku." + }, + { + "name": "sign-app-controller", + "description": "Sign App Controller" + }, + { + "name": "funding-offer-controller", + "description": "Vytvori zadost o nabidku financovani." + }, + { + "name": "insured-event-controller", + "description": "Insured Event Controller" + }, + { + "name": "pos-controller", + "description": "Controller pro personal loan on tablet." + }, + { + "name": "sme-credit-card-controller", + "description": "Prace s kreditnima (smelending) kartama" + }, + { + "name": "investment-controller", + "description": "Operations for invesment information." + }, + { + "name": "unsecured-log-controller", + "description": "Controller pro logovani udalosti z klientskych aplikaci" + }, + { + "name": "account-controller", + "description": "Operace nad ucty uzivatele" + }, + { + "name": "smeonboarding-sms-controller", + "description": "Controller pro smsky" + }, + { + "name": "message-controller", + "description": "Operations with Messages" + }, + { + "name": "maintenance-controller", + "description": "Operace pro udrzbu aplikace." + }, + { + "name": "company-search-controller", + "description": "Controller pro hledani firem ve verejnem registru." + }, + { + "name": "switching-controller", + "description": "Switching Controller" + }, + { + "name": "bank-api-controller", + "description": "Bank Api Controller" + }, + { + "name": "exchange-rate-controller", + "description": "Operace s kurzy" + }, + { + "name": "salespoint-controller", + "description": "Operace nad seznamen salespointu" + }, + { + "name": "service-package-controller", + "description": "Controller pro praci se servisnimi balicky." + }, + { + "name": "mobile-top-up-controller", + "description": "Operations for mobile phone credit top up." + }, + { + "name": "credit-card-client-controller", + "description": "Controller pro pozadavky tykajici se zadatele o kreditni kartu." + }, + { + "name": "appointment-controller", + "description": "Appointment Controller" + }, + { + "name": "manual-fraud-check-controller", + "description": "Kontroler pro manualni odhalovani podvodu klienta." + }, + { + "name": "product-controller", + "description": "Kontroler pro obecne pozadavky tykajici se produktu v PLoan procesu" + }, + { + "name": "smeonboarding-variant-controller", + "description": "Controller pro praci s variantami" + }, + { + "name": "jwt-controller", + "description": "Kontroler pro prodlouzeni platnosti JWT tokenu." + }, + { + "name": "direct-debit-controller", + "description": "Operace pro inkasa a SIPO" + }, + { + "name": "salesbooster-offer-controller", + "description": "Controller pro zpracovani endpointu na salesbooster, ktere maji co delat s novymi nabidkami pro klienta. Do teto kategorie spadaji napriklad kalkulacky, varinaty uveru, zkratka vse, co klient vyplnuje pred tim nez vznikne nejaka zadost, kterou odesila do banky ke schvaleni." + }, + { + "name": "user-controller", + "description": "Operations with Users" + }, + { + "name": "credit-card-pos-controller", + "description": "Controller pro pozadavky tykajici se POS." + }, + { + "name": "smeonboarding-product-instance-controller", + "description": "Controller pro detaily produktu" + }, + { + "name": "unsecured-codetable-controller", + "description": "Operace s ciselniky" + }, + { + "name": "card-controller", + "description": "Operace s kartami" + }, + { + "name": "sme-offer-controller", + "description": "potvrzeni predbezne nabidky" + }, + { + "name": "bene-plus-controller", + "description": "Operations with Bene+" + }, + { + "name": "express-loan-controller", + "description": "Express loan" + }, + { + "name": "sme-scoring-controller", + "description": "scoring klienta" + }, + { + "name": "mortgage-controller", + "description": "Operations for mortgage." + }, + { + "name": "sme-cancellation-controller", + "description": "znevalidni zadost o pujcku" + }, + { + "name": "authorized-payment-controller", + "description": "Operace pro provedeni platebniho prikazu s jednofaktorovou autorizaci." + }, + { + "name": "car-vin-controller", + "description": "Kontroler tykajici se informaci o vozidle dle VINu." + }, + { + "name": "portal-feedback-controller", + "description": "Portal Feedback Controller" + }, + { + "name": "p-loan-document-controller", + "description": "Kontroler pro praci s dokumenty" + }, + { + "name": "portal-p-loan-calculator-controller", + "description": "Portal P Loan Calculator Controller" + }, + { + "name": "creditas-controller", + "description": "Creditas Controller" + }, + { + "name": "foreign-payment-controller", + "description": "Operace pro provedeni zahranicnich a cizomenovych platebnich prikazu." + }, + { + "name": "pass-kit-controller", + "description": "Ziskani unikatniho pass id a URL pro stazeni." + }, + { + "name": "credit-card-sign-app-controller", + "description": "Credit Card Sign App Controller" + }, + { + "name": "sme-lending-person-controller", + "description": "operace nad fyzickou osobou podnikajici" + }, + { + "name": "operation-handler", + "description": "Operation Handler" + }, + { + "name": "portal-sme-lending-calculator-controller", + "description": "Portal Sme Lending Calculator Controller" + }, + { + "name": "broker-product-controller", + "description": "Kontroler pro obecne pozadavky tykajici se produktu v PLoan procesu pro brokery" + }, + { + "name": "dms-upload-controller", + "description": "Controller for upload to DMS." + }, + { + "name": "how-to-controller", + "description": "Obsah pro sekci Co Smart Banka umi." + }, + { + "name": "smeonboarding-person-controller", + "description": "Controller pro praci s budoucim klientem" + }, + { + "name": "loan-controller", + "description": "Operace uvery" + }, + { + "name": "bonus-package-controller", + "description": "Bonusove balicky u kreditnich karet" + }, + { + "name": "smeonboarding-campaign-controller", + "description": "Controller pro kampane." + }, + { + "name": "token-controller", + "description": "Token Controller" + }, + { + "name": "fio-controller", + "description": "Fio Controller" + }, + { + "name": "p-loan-broker-client-controller", + "description": "Kontroler pro obsluhu pozadavku tykajicich se zadatele o pujcku pro brokery." + }, + { + "name": "authorized-account-controller", + "description": "Operace nad ucty uzivatele" + }, + { + "name": "sme-async-controller", + "description": "async procesy klienta" + }, + { + "name": "template-controller", + "description": "Operations with payment templates" + }, + { + "name": "car-calculator-controller", + "description": "Kontroler tykajici se auto kalkulacky." + }, + { + "name": "credit-card-product-controller", + "description": "Controller pro pozadavky tykajici se zadosti o kreditni kartu." + }, + { + "name": "express-controller", + "description": "Kontroler obsluhujici pozadavky tykajici se zadosti o expres pujcku a jeji nastavovani" + }, + { + "name": "authentication-controller", + "description": "Authentication Controller" + }, + { + "name": "transaction-controller", + "description": "Operations with Transactions" + }, + { + "name": "ib-authentication-controller", + "description": "Ib Authentication Controller" + }, + { + "name": "sme-loan-request-controller", + "description": "vytvoreni produktu" + }, + { + "name": "ca-onboarding-build-version-controller", + "description": "Endpoint, ktery vraci informace pro SmartBanku o aktualni verzi buildu CA Onboarding." + }, + { + "name": "callback-controller", + "description": "Operations for sending callbacks." + }, + { + "name": "fx-money-controller", + "description": "Operace s FX Money" + }, + { + "name": "portal-contact-form-controller", + "description": "Portal Contact Form Controller" + }, + { + "name": "sb-authentication-controller", + "description": "Sb Authentication Controller" + }, + { + "name": "standing-order-controller", + "description": "Operace nad trvalymi platbami" + } + ], + "schemes": [ + "http" + ], + "paths": { + "/actuator": { + "get": { + "tags": [ + "web-mvc-endpoint-handler-mapping" + ], + "summary": "links", + "operationId": "linksUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json", + "application/vnd.spring-boot.actuator.v2+json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Link" + } + } + } + } + } + } + }, + "/actuator/health": { + "get": { + "tags": [ + "operation-handler" + ], + "summary": "handle", + "operationId": "handleUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json", + "application/vnd.spring-boot.actuator.v2+json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": false, + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object" + } + } + } + } + }, + "/actuator/info": { + "get": { + "tags": [ + "operation-handler" + ], + "summary": "handle", + "operationId": "handleUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json", + "application/vnd.spring-boot.actuator.v2+json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "description": "body", + "required": false, + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object" + } + } + } + } + }, + "/authorized/account/list/simple": { + "post": { + "tags": [ + "authorized-account-controller" + ], + "summary": "Vraci orezany seznam uctu uzivatele pro widget", + "description": "Vraci orezany seznam uctu uzivatele pro widget, pokud zadne ucty nejsou dostupne vraci se prazdny seznam. Ucty obsahuji i zustatky a posledni transakce. Tento endpoint vyzaduje powerauthem podepsany request a jeho pouziti se nedoporucuje. Zustava v API kvuli zpetne kompatibilite. Konzumenti by meli preferovane volat /authorized/account/list/simplewithtoken.", + "operationId": "getListSimpleUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AccountListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccountListResponse»" + } + } + } + } + }, + "/authorized/account/list/simplewithtoken": { + "post": { + "tags": [ + "authorized-account-controller" + ], + "summary": "Vraci orezany seznam uctu uzivatele pro widget", + "description": "Vraci orezany seznam uctu uzivatele pro widget, pokud zadne ucty nejsou dostupne vraci se prazdny seznam. Ucty obsahuji i zustatky a posledni transakce. Tento endpoint vyzaduje staticky powerauth token v hlavickach a je preferovany pred /authorized/account/list/simple.", + "operationId": "getListSimpleWithTokenUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AccountListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccountListResponse»" + } + } + } + } + }, + "/authorized/payment/create": { + "post": { + "tags": [ + "authorized-payment-controller" + ], + "summary": "Zalozeni zatim nepotvrzene platby s jednofaktorovou autorizaci", + "description": "Sluzba zvaliduje a pote zalozi novou prozatim nepotvreznou platbu, vygeneruje pro ni jednoznacny hash, podle ktereho nasledne je mozne pres sluzbu payment/commit operaci dokoncit a potvrdit. Pokud pri validaci dojde k chybam, vraci se zpet puvodni formular doplneny o chybove stavy a hlasky.", + "operationId": "createUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentCreateRequest" + } + }, + { + "name": "X-PowerAuth-Authorization", + "in": "header", + "description": "X-PowerAuth-Authorization", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentCreateResponse»" + } + } + } + } + }, + "/authorized/payment/setup": { + "post": { + "tags": [ + "authorized-payment-controller" + ], + "summary": "Priprava noveho platebniho prikazu s jednofaktorovou autorizaci", + "description": "Sluzba nacte aktualni udaje pro pripravu formulare na zalozeni jednotlivych druhu platebnich prikazu.", + "operationId": "setupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "X-PowerAuth-Authorization", + "in": "header", + "description": "X-PowerAuth-Authorization", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupResponse»" + } + } + } + } + }, + "/authorized/transaction/list/simple": { + "post": { + "tags": [ + "authorized-transaction-controller" + ], + "summary": "Vraci orezany seznam poslednich transakci k uctu pro widget", + "description": "Vraci orezany seznam poslednich transakci k uctu pro widget", + "operationId": "getListSimpleUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionListRequest" + } + }, + { + "name": "X-PowerAuth-Authorization", + "in": "header", + "description": "X-PowerAuth-Authorization", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionListResponse»" + } + } + } + } + }, + "/ca-onboarding/check-for-updates": { + "post": { + "tags": [ + "ca-onboarding-build-version-controller" + ], + "summary": "Vraci informaci o aktualni verzi CA Onborading zdrojich", + "description": "Pro danneho klienta SmartBanky (iOS nebo Android) vraci aktualni verzi CA Onborading zdroju pro pripradnou aktualizaci CA Onboarding casti v aplikaci SmartBanka.", + "operationId": "versionUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CheckForUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CheckForUpdateResponse»" + } + } + } + } + }, + "/cbl/hello": { + "get": { + "tags": [ + "hello-openapi-controller" + ], + "summary": "Vraci cokoliv, co vrati CBL z /hello enpointu.", + "operationId": "cblHelloUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«HelloResponse»" + } + } + } + } + }, + "/cbl/hello/message/{code}": { + "get": { + "tags": [ + "hello-openapi-controller" + ], + "summary": "Vraci textaci pro zadany kod.", + "operationId": "helloMessageUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "code", + "in": "path", + "description": "code", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«HelloMessageResponse»" + } + } + } + } + }, + "/cbl/hello/messages": { + "get": { + "tags": [ + "hello-openapi-controller" + ], + "summary": "Vraci seznam textaci.", + "operationId": "helloMessagesUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«HelloMessagesResponse»" + } + } + } + } + }, + "/cbl/hello/probes": { + "get": { + "tags": [ + "hello-openapi-controller" + ], + "summary": "Vraci prehled dostupnosti DB a MWF.", + "operationId": "helloProbesUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«HelloProbesResponse»" + } + } + } + } + }, + "/error": { + "get": { + "tags": [ + "basic-error-controller" + ], + "summary": "error", + "operationId": "errorUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + }, + "head": { + "tags": [ + "basic-error-controller" + ], + "summary": "error", + "operationId": "errorUsingHEAD", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + }, + "post": { + "tags": [ + "basic-error-controller" + ], + "summary": "error", + "operationId": "errorUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + }, + "put": { + "tags": [ + "basic-error-controller" + ], + "summary": "error", + "operationId": "errorUsingPUT", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + }, + "delete": { + "tags": [ + "basic-error-controller" + ], + "summary": "error", + "operationId": "errorUsingDELETE", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + }, + "options": { + "tags": [ + "basic-error-controller" + ], + "summary": "error", + "operationId": "errorUsingOPTIONS", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + }, + "patch": { + "tags": [ + "basic-error-controller" + ], + "summary": "error", + "operationId": "errorUsingPATCH", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + }, + "/hello": { + "get": { + "tags": [ + "hello-openapi-controller" + ], + "summary": "Hello World endpoint OpenAPI.", + "operationId": "helloUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«HelloResponse»" + } + } + } + } + }, + "/oauth2/login": { + "post": { + "tags": [ + "oauth-2-authentication-controller" + ], + "summary": "Prihlasi uzivatele pres jmeno a heslo", + "description": "Mozne chybove stavy v responseObject.code: cbl.authentication.unknown.expired, cbl.authentication.unknown.blocked, cbl.authentication.unknown.expired.blocked, cbl.authentication.unknown.change (mutna zmena hesla, cbl.authentication.unknown.illegal (spatne heslo), cbl.authentication.unknown.illegal.blocked, cbl.authentication.unknown.error (obecna chyba)", + "operationId": "loginUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "loginRequest", + "description": "loginRequest", + "required": true, + "schema": { + "$ref": "#/definitions/Overeni jmena a hesla uzivatele internet banky" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Overeni jmena a hesla uzivatele internet banky»" + } + } + } + } + }, + "/oauth2/sms/send": { + "post": { + "tags": [ + "oauth-2-authentication-controller" + ], + "summary": "Odeslani SMS", + "description": "Zasle prihlasenemu klientovi SMS na zaklade zaslanych parametru", + "operationId": "sendSmsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Oauth2SendSmsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SMSSendCertResponse»" + } + } + } + } + }, + "/oauth2/sms/verify": { + "post": { + "tags": [ + "oauth-2-authentication-controller" + ], + "summary": "Verifikace SMS", + "description": "Overi klic poslani v SMS a zaroven zkontroluje, ze podepsana data nebyla pozmenena", + "operationId": "verifySmsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Oauth2VerifySmsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SMSVerifyResponse»" + } + } + } + } + }, + "/pa/activation/create": { + "post": { + "tags": [ + "activation-controller" + ], + "summary": "createActivation", + "operationId": "createActivationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ObjectRequest«ActivationCreateRequest»" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ObjectResponse«ActivationCreateResponse»" + } + } + } + } + }, + "/pa/activation/direct/create": { + "post": { + "tags": [ + "online-activation-controller" + ], + "summary": "createNewActivation", + "operationId": "createNewActivationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "object", + "description": "object", + "required": true, + "schema": { + "$ref": "#/definitions/EncryptedObjectRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EncryptedObjectResponse" + } + } + } + } + }, + "/pa/activation/remove": { + "post": { + "tags": [ + "activation-controller" + ], + "summary": "removeActivation", + "operationId": "removeActivationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "X-PowerAuth-Authorization", + "in": "header", + "description": "X-PowerAuth-Authorization", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ObjectResponse«ActivationRemoveResponse»" + } + } + } + } + }, + "/pa/activation/status": { + "post": { + "tags": [ + "activation-controller" + ], + "summary": "getActivationStatus", + "operationId": "getActivationStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ObjectRequest«ActivationStatusRequest»" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ObjectResponse«ActivationStatusResponse»" + } + } + } + } + }, + "/pa/token/create": { + "post": { + "tags": [ + "token-controller" + ], + "summary": "createToken", + "operationId": "createTokenUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ObjectRequest«TokenCreateRequest»" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ObjectResponse«TokenCreateResponse»" + } + } + } + } + }, + "/pa/token/remove": { + "post": { + "tags": [ + "token-controller" + ], + "summary": "removeToken", + "operationId": "removeTokenUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ObjectRequest«TokenRemoveRequest»" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ObjectResponse«TokenRemoveResponse»" + } + } + } + } + }, + "/pa/vault/unlock": { + "post": { + "tags": [ + "secure-vault-controller" + ], + "summary": "unlockVault", + "operationId": "unlockVaultUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "X-PowerAuth-Authorization", + "in": "header", + "description": "X-PowerAuth-Authorization", + "required": true, + "type": "string", + "default": "unknown" + }, + { + "in": "body", + "name": "request", + "description": "request", + "required": false, + "schema": { + "$ref": "#/definitions/ObjectRequest«VaultUnlockRequest»" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ObjectResponse«VaultUnlockResponse»" + } + } + } + } + }, + "/secured/account/acctypeswitch/commit": { + "post": { + "tags": [ + "acc-type-switch-controller" + ], + "summary": "Podepsani smlouvy.", + "description": "Podepsani smlouvy pro zmenu typu uctu. Ulozeni do DMS. Zahajeni zmeny.", + "operationId": "commitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AccTypeSwitchCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccTypeSwitchCommitResponse»" + } + } + } + } + }, + "/secured/account/acctypeswitch/preview": { + "post": { + "tags": [ + "acc-type-switch-controller" + ], + "summary": "Generovani nahledu smluvni dokumentace.", + "description": "Generovani nahledu smluvni dokumentace pro zmenu typu uctu. Vytvoreni dokumentu v docasnem dms ulozisti. Dokument je vracen jako base64 PDF data.", + "operationId": "previewUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AccTypeSwitchPreviewRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccTypeSwitchPreviewResponse»" + } + } + } + } + }, + "/secured/account/acctypeswitch/setup": { + "post": { + "tags": [ + "acc-type-switch-controller" + ], + "summary": "Nacteni konfigurace.", + "description": "Textace pro vyhody noveho uctu a podminky.", + "operationId": "getSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AccTypeSwitchSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccTypeSwitchSetupResponse»" + } + } + } + } + }, + "/secured/account/additionalAccountInfo": { + "post": { + "tags": [ + "account-controller" + ], + "summary": "Vraci dodatecne informace k danemu uctu klienta.", + "description": "Pro dane ID uctu (accountId) vrati dodatecne informace k danemu uctu.", + "operationId": "getOperationsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/AdditionalAccountInfoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AdditionalAccountInfoResponse»" + } + } + } + } + }, + "/secured/account/balance": { + "post": { + "tags": [ + "account-controller" + ], + "summary": "Vraci aktualni zustatky uctu", + "description": "Pro zadany interniId uctu vraci aktualni zustatky - Ucetni zustatek, Disponibilni zustatek, Flexikredit, Schvalena castka uveru, Castka vkladu TV", + "operationId": "getDetailUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/BalanceGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BalanceGetResponse»" + } + } + } + } + }, + "/secured/account/customName": { + "post": { + "tags": [ + "account-controller" + ], + "summary": "Zmeni klientsky nazev uctu.", + "operationId": "changeCustomNameUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/ChangeAccountCustomNameRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ChangeAccountCustomNameResponse»" + } + } + } + } + }, + "/secured/account/directdebit/create": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Inicializuje vytvoreni noveho inkasa", + "description": "Inicializuje vytvoreni noveho inkasa dle zadaneho requestu.", + "operationId": "createDirectDebitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitCreateResponse»" + } + } + } + } + }, + "/secured/account/directdebit/create/commit": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Potvrdi vytvoreni noveho inkasa", + "description": "Potvrdi vytvoreni noveho inkasa dle zadaneho requestu.", + "operationId": "commitCreateDirectDebitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitCreateCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitCreateCommitResponse»" + } + } + } + } + }, + "/secured/account/directdebit/delete": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Smaze definovane inkaso/SIPO", + "description": "Smaze definovane inkaso/SIPO pomoci invoiceId.", + "operationId": "deleteInvoiceUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitDeleteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitDeleteResponse»" + } + } + } + } + }, + "/secured/account/directdebit/edit": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Inicialiyuje editaci inkasa", + "description": "Inicialiyuje editaci inkasa dle zadaneho requestu.", + "operationId": "editDirectDebitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitEditRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitEditResponse»" + } + } + } + } + }, + "/secured/account/directdebit/edit/commit": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Potvrdi editaci inkasa", + "description": "Potvrdi editaci inkasa dle zadaneho requestu.", + "operationId": "commitEditDirectDebitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitEditCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitEditCommitResponse»" + } + } + } + } + }, + "/secured/account/directdebit/list": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Vrati uzivatelova inkasa a SIPO", + "description": "Vrati uzivatelova inkasa a SIPO.", + "operationId": "getDirectDebitListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitListResponse»" + } + } + } + } + }, + "/secured/account/directdebit/setup": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Priprava dat pro zadani inkasa.", + "description": "Nacita info k vytvoreni/editaci inkasa. Vraci nejblizsi platny datum zacatku platnosti inkasa.", + "operationId": "getDirectDebitSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitSetupResponse»" + } + } + } + } + }, + "/secured/account/list": { + "post": { + "tags": [ + "account-controller" + ], + "summary": "Vraci seznam uctu uzivatele", + "description": "Vraci seznam uctu prihlaseneho uzivatele, pokud zadne ucty nejsou dostupne vraci se prazdny seznam. Ucty obsahuji i zustatky a posledni transakce.", + "operationId": "getListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccountListResponse»" + } + } + } + } + }, + "/secured/account/operations": { + "post": { + "tags": [ + "account-operations-controller" + ], + "summary": "Vraci dodatecne povolene operace ke vsem uctum klienta.", + "description": "Pro daneho klienta vrati seznam cisel uctu a povolenych dodatecnych operaci na nich. Tato operace muze trvat, proto bylo nacitani dodatecnych operaci vycleneno sem misto toho aby bylo soucasti /account/list", + "operationId": "getOperationsUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/AccountOperationsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccountOperationsResponse»" + } + } + } + } + }, + "/secured/account/operations/single": { + "post": { + "tags": [ + "account-operations-controller" + ], + "summary": "Nacte seznam povolenych operaci k danemu uctu.", + "operationId": "getOperationsForSingleAccountUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/SingleAccountOperationsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SingleAccountOperationsResponse»" + } + } + } + } + }, + "/secured/account/payment/delete/list": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Vraci seznam odvolanych plateb.", + "description": "Vraci seznam odvolanych plateb k zadanemu uctu.", + "operationId": "getPaymentDeletedListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentDeleteListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentDeleteListResponse»" + } + } + } + } + }, + "/secured/account/payment/list": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Commited payment orders for a given account and transaction filter.", + "description": "Commited payment orders for a given account and transaction filter. Since the list may be very long, client applications must apply paging to the transaction listing.", + "operationId": "getPaymentListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentListResponse»" + } + } + } + } + }, + "/secured/account/payment/topup/commit": { + "post": { + "tags": [ + "mobile-top-up-controller" + ], + "summary": "Potvrzeni navyseni mobilniho kreditu.", + "operationId": "mobileTopUpCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/MobileTopUpCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MobileTopUpCommitResponse»" + } + } + } + } + }, + "/secured/account/payment/topup/create": { + "post": { + "tags": [ + "mobile-top-up-controller" + ], + "summary": "Priprava navyseni mobilniho kreditu.", + "operationId": "mobileTopUpCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/MobileTopUpCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MobileTopUpCreateResponse»" + } + } + } + } + }, + "/secured/account/standingorder/create": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Vytvari trvale prikazy", + "description": "Vytvari trvale prikazy dle zadaneho requestu.", + "operationId": "createStandingOrderUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderCreateResponse»" + } + } + } + } + }, + "/secured/account/standingorder/create/commit": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Vytvari trvale prikazy", + "description": "Vztvari trvale prikazy dle zadaneho requestu.", + "operationId": "commitCreateStandingOrderUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderCommitCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderCommitCreateResponse»" + } + } + } + } + }, + "/secured/account/standingorder/delete": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Maze trvale prikazy", + "description": "Maze trvale prikazy dle zadaneho id trvale platby.", + "operationId": "deleteStandingOrderUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderDeleteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderDeleteResponse»" + } + } + } + } + }, + "/secured/account/standingorder/edit": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Edituje trvale prikazy", + "description": "Edituje trvale prikazy dle zadaneho requestu.", + "operationId": "editStandingOrderUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderEditRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderEditResponse»" + } + } + } + } + }, + "/secured/account/standingorder/edit/commit": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Edituje trvale prikazy", + "description": "Edituje trvale prikazy dle zadaneho requestu.", + "operationId": "commitEditStandingOrderUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderCommitEditRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderCommitEditResponse»" + } + } + } + } + }, + "/secured/account/standingorder/list": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Vraci seznam trvalych prikazu", + "description": "Vraci seznam trvalych prikazu prihlaseneho uzivatele.", + "operationId": "getStandingOrderListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderListResponse»" + } + } + } + } + }, + "/secured/account/standingorder/setup": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Priprava trvaleho prikazu", + "description": "Nacita info k vytvoreni/editaci trvaleho prikazu", + "operationId": "getStandingOrderSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderSetupResponse»" + } + } + } + } + }, + "/secured/account/switch/available-accounts": { + "get": { + "tags": [ + "switching-controller" + ], + "summary": "Seznam uctu, pro ktere je mozny switching z jine banky", + "operationId": "getAvailableAccountsUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AvailabeAccountsForSwitchingResponse»" + } + } + } + } + }, + "/secured/account/switch/contact": { + "post": { + "tags": [ + "switching-controller" + ], + "summary": "Vraci Super kontaktni informace prihlaseneho uzivatele.", + "operationId": "superContactUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SuperContactRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SuperContactResponse»" + } + } + } + } + }, + "/secured/account/switch/create": { + "post": { + "tags": [ + "switching-controller" + ], + "summary": "Vytvori PDF zadost na backendu o prevodu bezneho uctu z cizi banky do MMB.", + "description": "Vytvori zadost ve forme PDF z daneho preview requestu.", + "operationId": "getSwitchingCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SwitchingCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ResponseEntity" + } + } + } + } + }, + "/secured/account/switch/date/setup": { + "post": { + "tags": [ + "switching-controller" + ], + "summary": "Vraci mozna nastaveni datumu", + "description": "Vraci mozna nastaveni datumu (min, max, holidays) pro Switching.", + "operationId": "setupDateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/SwitchingDateSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SwitchingDateSetupResponse»" + } + } + } + } + }, + "/secured/account/switch/preview": { + "post": { + "tags": [ + "switching-controller" + ], + "summary": "Vraci PDF nahled na zadost o prevodu bezneho uctu z cizi banky do MMB.", + "description": "Vytvori zadost ve forme PDF z daneho preview requestu.", + "operationId": "getSwitchingPreviewUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SwitchingPreviewRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ResponseEntity" + } + } + } + } + }, + "/secured/account/transaction/category": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Prirazeni/Zmena/Odebrani kategorie ucetni transakci.", + "operationId": "setAccountTransactionCategoryUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionCategoryRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/account/transaction/category/report": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Vraci prehled prijmu nebo vydaju v jednotlivych kategoriich pro zvoleny mesic k zadanemu cislu uctu.", + "operationId": "getTransactionCategoryReportUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "req", + "description": "req", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionCategoryReportRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionCategoryReportResponse»" + } + } + } + } + }, + "/secured/account/transaction/last/list": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Transaction history of last few transactions for a given account.", + "description": "Transaction history of last few transactions for a given account.", + "operationId": "getLastListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionListResponse»" + } + } + } + } + }, + "/secured/account/transaction/list": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Transaction history for a given account and transaction filter.", + "description": "Transaction history for a given account and transaction filter. Since the list may be very long, client applications must apply paging to the transaction listing.", + "operationId": "getListUsingPOST_6", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionListResponse»" + } + } + } + } + }, + "/secured/account/transaction/note": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Prirazeni/Zmena/Odebrani poznamky k ucetni transakci.", + "operationId": "setAccountTransactionNoteUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionNoteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/account/transaction/receipt": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Potvrzeni platby", + "description": "Vraci potvrzeni platby v pdf zakodovanem do base64 stringu.", + "operationId": "transactionReceiptUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionReceiptRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionReceiptRequest»" + } + } + } + } + }, + "/secured/account/transaction/report": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Vraci prehled prijmu, vydaju a zustatku pro jednotlive mesice k zadanemu cislu uctu.", + "operationId": "getTransactionReportUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionReportRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionReportResponse»" + } + } + } + } + }, + "/secured/acquisition/account": { + "post": { + "tags": [ + "acquisition-controller" + ], + "summary": "Vraci akvizicni ucet klienta", + "description": "Ziskani uctu pro akvizcniho uzivatele, zadajiciho o zrizeni online uctu.", + "operationId": "getAccountUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AcquisitionAccountResponse»" + } + } + } + } + }, + "/secured/activation/onbehalf/init": { + "post": { + "tags": [ + "on-behalf-activation-controller" + ], + "summary": "Zahajeni aktivace SB. Vznika transakce v UDEBS, jeji ID je na vystupu tohoto volani spolu s aktivacnim kodem. ID uzivatele za ktereho broker jedna je ocekavano v hlavicce x-onbehalf-userid.", + "operationId": "initActivationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/OnBehalfInitActivationRequest" + } + }, + { + "name": "x-onbehalf-userid", + "in": "header", + "description": "x-onbehalf-userid", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«OnBehalfInitActivationResponse»" + } + } + } + } + }, + "/secured/activation/onbehalf/mobilekey/send": { + "post": { + "tags": [ + "on-behalf-activation-controller" + ], + "summary": "Vyzadani poslani mobilniho klice k overeni aktivace SB.", + "operationId": "sendMobileKeyUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/OnBehalfSendMobileKeyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«OnBehalfSendMobileKeyResponse»" + } + } + } + } + }, + "/secured/activation/onbehalf/mobilekey/verify": { + "post": { + "tags": [ + "on-behalf-activation-controller" + ], + "summary": "Overeni mobilniho klice pro aktivaci SB.", + "operationId": "verifyMobileKeyUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/OnBehalfVerifyMobileKeyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«OnBehalfVerifyMobileKeyResponse»" + } + } + } + } + }, + "/secured/activation/onbehalf/status": { + "post": { + "tags": [ + "on-behalf-activation-controller" + ], + "summary": "Zjisteni stavu aktivace.", + "operationId": "getActivationStatusUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/OnBehalfGetActivationStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«OnBehalfGetActivationStatusResponse»" + } + } + } + } + }, + "/secured/beneplus/balance": { + "post": { + "tags": [ + "bene-plus-controller" + ], + "summary": "Returns Bene+ balance.", + "description": "Returns Bene+ balance.", + "operationId": "endpointBenePlusBalanceUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BenePlusBalanceResponse»" + } + } + } + } + }, + "/secured/cache/save": { + "post": { + "tags": [ + "cache-controller" + ], + "summary": "Ulozi data do cache pod danym klicem.", + "operationId": "saveUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CacheSaveRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/callback": { + "post": { + "tags": [ + "callback-controller" + ], + "summary": "Odesila callback do banky.", + "description": "Odesila callback do banky.", + "operationId": "setCallbackUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CallbackRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CallbackResponse»" + } + } + } + } + }, + "/secured/callback/test": { + "post": { + "tags": [ + "callback-controller" + ], + "summary": "Testovaci endpoint", + "operationId": "setCallbackTestUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CallbackRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CallbackResponse»" + } + } + } + } + }, + "/secured/card/3dsecure": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci 3D secure info ke karte", + "description": "Vraci 3D secure info ke karte - debetni a kreditni.", + "operationId": "getCard3DSecureInfoUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Card3DSecureInfoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Card3DSecureInfoResponse»" + } + } + } + } + }, + "/secured/card/block/create": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Blokuje kartu", + "description": "Blokuje kartu", + "operationId": "blockCardUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardBlockRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardBlockResponse»" + } + } + } + } + }, + "/secured/card/block/delete": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Odblokuje kartu", + "description": "Odblokuje kartu", + "operationId": "unblockCardUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardUnblockRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardUnblockResponse»" + } + } + } + } + }, + "/secured/card/block/transaction/list": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci seznam blokovanych transakci kreditni karty", + "description": "Vraci seznam blokovanych transakci kreditni karty", + "operationId": "getBlockedTransactionListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardTransactionBlockRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardTransactionBlockResponse»" + } + } + } + } + }, + "/secured/card/credit/bonuspackage/get": { + "post": { + "tags": [ + "bonus-package-controller" + ], + "summary": "Zobrazeni aktivniho bonusoveho balicku ke kreditni karte", + "description": "Zobrazeni aktivniho bonusoveho balicku ke kreditni karte", + "operationId": "getActiveCreditCardBonusPackageUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardActiveBonusPackageRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardActiveBonusPackageResponse»" + } + } + } + } + }, + "/secured/card/credit/bonuspackage/set": { + "post": { + "tags": [ + "bonus-package-controller" + ], + "summary": "Zmena bonusoveho balicku ke kreditni karte", + "description": "Zmena bonusoveho balicku ke kreditni karte", + "operationId": "changeActiveCreditCardBonusPackageUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardActiveBonusPackageChangeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/card/credit/bonuspackage/setup": { + "post": { + "tags": [ + "bonus-package-controller" + ], + "summary": "Zobrazeni dostupnych bonusovych balicku ke kreditnim kartam", + "description": "Zobrazeni dostupnych bonusovych balicku ke kreditnim kartam", + "operationId": "getCreditCardBonusPackagesSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardAvailableBonusPackagesRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardAvailableBonusPackagesResponse»" + } + } + } + } + }, + "/secured/card/credit/transaction/category": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Prirazeni/Zmena/Odebrani kategorie ucetni transakci.", + "operationId": "setCreditCardTransactionCategoryUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardTransactionCategoryRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/card/credit/transaction/list": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci seznam transakci kreditnich karet", + "description": "Vraci seznam transakci kreditnich karet", + "operationId": "getCreditCardTransactionListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardTransactionListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardTransactionListResponse»" + } + } + } + } + }, + "/secured/card/credit/transaction/note": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Prirazeni/Zmena/Odebrani poznamky k ucetni transakci.", + "operationId": "setCreditCardTransactionNoteUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionNoteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/card/debit/transaction/list": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci seznam transakci debetnich karet", + "description": "Vraci seznam transakci debetnich karet", + "operationId": "getDebitCardTransactionListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DebitCardTransactionListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DebitCardTransactionListResponse»" + } + } + } + } + }, + "/secured/card/digitization/apple/encrypt-paymentdata": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Sifrovani informaci o platebni karte pro Apple Pay.", + "operationId": "encryptPaymentDataForApplePayUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Request na digitilizaci platebni karty" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ApplePayEncryptPaymentDataResponse»" + } + } + } + } + }, + "/secured/card/digitization/opc": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "generovani OPC (Opaque Payment Card) podle id karty (z UDEBS db)", + "operationId": "getOpcUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Request na digitilizaci platebni karty" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Odpoved GetOpcRequest s vygenerovanym OPC (Opaque Payment Card)»" + } + } + } + } + }, + "/secured/card/digitization/token/block": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Zablokovani konkretniho tokenu konkretni karte.", + "operationId": "blockCardTokenUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardTokenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardTokenResponse»" + } + } + } + } + }, + "/secured/card/digitization/token/delete": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Smazani konkretniho tokenu konkretni karte.", + "operationId": "deleteCardTokensUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardTokenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardTokenResponse»" + } + } + } + } + }, + "/secured/card/digitization/token/list": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Hledani vsech tokenu k danym kartam", + "operationId": "listCardTokensUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardTokenListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardTokenListResponse»" + } + } + } + } + }, + "/secured/card/digitization/token/unblock": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Odblokovani konkretniho tokenu konkretni karte.", + "operationId": "unblockCardTokenUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardTokenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardTokenResponse»" + } + } + } + } + }, + "/secured/card/digitization/tokenizationattempt/log": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Zalogovani pokusu o tokenizaci karty.", + "operationId": "logCardDigitizationAttemptUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Pozadavek pro zalogovani pokusu o tokenizaci karty" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/card/list": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci seznam platebnich karet", + "description": "Vraci seznam platebnich karet - debetni a kreditni.", + "operationId": "getListUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardListResponse»" + } + } + } + } + }, + "/secured/card/logo": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci logo karty v Base64", + "description": "Vraci logo karty v Base64", + "operationId": "getCardLogoUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Requets objekt pro dotazeni loga karty." + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Response objekt pro dotazen i loga karty.»" + } + } + } + } + }, + "/secured/card/settings": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Nastavuje parametry karty", + "description": "Nastavuje parametry karty", + "operationId": "settingCardUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardSettingsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardSettingsResponse»" + } + } + } + } + }, + "/secured/card/statement/last/repayment": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Info pro doplaceni posledniho vypisu.", + "operationId": "getRepaymentDetailsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardStatementRepaymentRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardStatementRepaymentResponse»" + } + } + } + } + }, + "/secured/cardpayment/commit": { + "post": { + "tags": [ + "card-payment-controller" + ], + "summary": "Potvrzeni zalozeni platby z karet", + "description": "Sluzba podle zadaneho formulare pro platbu z karet a jeho hasha overi platnost udaju, zvaliduje a potvrdi ke zpracovani bankovnymi systemy. Pokud pri validaci dojde k chybam, vraci se zpet puvodni formular doplneny o chybove stavy a hlasky.", + "operationId": "commitUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardPaymentCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardPaymentCommitResponse»" + } + } + } + } + }, + "/secured/cardpayment/create": { + "post": { + "tags": [ + "card-payment-controller" + ], + "summary": "Zalozeni zatim nepotvrezene platby z karet", + "description": "Sluzba zvaliduje a pote zalozi novou prozatim nepotvreznou platbu z karet, vygeneruje pro ni jednodznacny hash, podle ktereho nasledne je mozne pres sluzbu cardpayment/commit operaci dokoncit a potvrdit. Pokud pri validaci dojde k chybam, vraci se zpet puvodni formular doplneny o chybove stavy a hlasky.", + "operationId": "createUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardPaymentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardPaymentCreateResponse»" + } + } + } + } + }, + "/secured/cardpayment/setup": { + "post": { + "tags": [ + "card-payment-controller" + ], + "summary": "Priprava noveho platebniho prikazu z karet", + "description": "Sluzba nacte aktualni udaje pro pripravu formulare na zalozeni jednotlivych druhu platebnich prikazu z karet", + "operationId": "setupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupResponse»" + } + } + } + } + }, + "/secured/consent/form": { + "post": { + "tags": [ + "consent-controller" + ], + "summary": "Nacteni formulare pro udeleni souhlasu.", + "operationId": "getFormUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/GetConsentFormRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«GetConsentFormResponse»" + } + } + } + } + }, + "/secured/consent/list": { + "post": { + "tags": [ + "consent-controller" + ], + "summary": "Nacteni klientskych souhlasu.", + "operationId": "listConsentsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ConsentListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ConsentListResponse»" + } + } + } + } + }, + "/secured/consent/load101": { + "post": { + "tags": [ + "consent-controller" + ], + "summary": "Vraci, zda klient dal/nedal dany typ souhlasu.", + "description": "Vraci, zda klient dal/nedal dany typ souhlasu.", + "operationId": "load101UsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/LoadConsent101Request" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«LoadConsent101Response»" + } + } + } + } + }, + "/secured/consent/save": { + "post": { + "tags": [ + "consent-controller" + ], + "summary": "Ulozeni klientskych souhlasu.", + "operationId": "saveConsentsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ConsentSaveRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ConsentSaveResponse»" + } + } + } + } + }, + "/secured/consent/save101": { + "post": { + "tags": [ + "consent-controller" + ], + "summary": "Ulozi, zda klient dal/nedal dany typ souhlasu.", + "description": "Ulozi, zda klient dal/nedal dany typ souhlasu.", + "operationId": "save101UsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SaveConsent101Request" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SaveConsent101Response»" + } + } + } + } + }, + "/secured/creditcard/smart/activationcode/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Ulozeni aktivacniho hesla do zadosti o kreditni kartu", + "operationId": "endpointActivationCodeCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardActivationCodeCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardActivationCodeCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/activationcode/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Nacteni aktivacniho hesla z zadosti o kreditni kartu", + "operationId": "endpointActivationCodeSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardActivationCodeSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardActivationCodeSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/billing/parameters/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Uložení způsobu splácení kreditní karty", + "operationId": "endpointCreditCardBillingParametersCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardBillingParametersCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardBillingParametersCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/billing/parameters/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Načtení způsobu splácení kreditní karty", + "operationId": "endpointCreditCardBillingParametersSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardBillingParametersSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardBillingParametersSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/bonuspackage/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni slev ke kreditni karte.", + "operationId": "endpointCreditCardBonusPackageCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardBonusPackageCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardBonusPackageCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/bonuspackage/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni slev ke kreditni karte.", + "operationId": "endpointCreditCardBonusPackageSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardBonusPackageSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardBonusPackageSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/finish/contract/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni smlouvy", + "operationId": "endpointCreditCardFinishContractCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFinishContractCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFinishContractCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/finish/contract/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Načtení smlouvy", + "operationId": "endpointCreditCardFinishContractSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFinishContractSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFinishContractSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/finish/precontract/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni presmluvnich informaci", + "operationId": "endpointCreditCardFinishPrecontractInformationCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFinishPrecontractCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFinishPrecontractCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/finish/precontract/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Načtení predsmluvnich informaci", + "operationId": "endpointCreditCardFinishPrecontractInformationSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFinishPrecontractSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFinishPrecontractSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/finish/sign": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Podepsani klientem.", + "operationId": "endpointCreditCardFinishSignUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFinishSignRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFinishSignResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/limit/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni limitu ke kreditni karte.", + "operationId": "endpointCreditCardLimitCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardLimitCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardLimitCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/limit/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Limit ke kreditni karte.", + "operationId": "endpointCreditCardLimitSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardLimitSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardLimitSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/address/contact/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni kontaktni adresy pro kreditni karte.", + "operationId": "endpointCreditCardPersonalContactAddressCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalContactAddressCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalContactAddressCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/address/contact/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni kontaktni adresy pro kreditni karte.", + "operationId": "endpointCreditCardPersonalContactAddressSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalContactAddressSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalContactAddressSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/address/permanent/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni trvale adresy pro kreditni karte.", + "operationId": "endpointCreditCardPersonalPermanentAddressCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalPermanentAddressCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalPermanentAddressCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/address/permanent/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni trvale adresy pro kreditni karte.", + "operationId": "endpointCreditCardPersonalPermanentAddressSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalPermanentAddressSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalPermanentAddressSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/dependents/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni vyzivovanych osob.", + "operationId": "endpointCreditCardPersonalDependentsCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalDependentsCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalDependentsCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/dependents/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni vyzivovanych osob", + "operationId": "endpointCreditCardPersonalDependentsSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalDependentsSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalDependentsSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/employer/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni udaju o zamestnavateli.", + "operationId": "endpointCreditCardPersonalEmployerCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalEmployerCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalEmployerCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/employer/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni udaju o zamestnavateli.", + "operationId": "endpointCreditCardPersonalEmployerSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalEmployerSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalEmployerSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/household/solvency/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni financni situace domacnosti.", + "operationId": "endpointCreditCardPersonalHouseholdSolvencyCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalHouseholdSolvencyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalHouseholdSolvencyCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/household/solvency/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Nacteni financni situace domacnosti.", + "operationId": "endpointCreditCardPersonalHouseholdSolvencySetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalHouseholdSolvencySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalHouseholdSolvencySetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/incomesource/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni zdroje prijmu.", + "operationId": "endpointCreditCardPersonalIncomeSourceCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalIncomeSourceCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalIncomeSourceCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/incomesource/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Nacteni informaci o zdroji prijmu z referencni zadosti.", + "operationId": "endpointCreditCardPersonalIncomeSourceSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalIncomeSourceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalIncomeSourceSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/kocriteriacheck": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Kontrola KO kriterii", + "operationId": "endpointPersonalCreditCardKOCriteriaCheckUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalKOCriteriaCheckRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalKOCriteriaCheckResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/name/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni jmena majitele karty", + "operationId": "endpointCreditCardPersonalNameCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalNameCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalNameCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/name/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Limit ke kreditni karte.", + "operationId": "endpointCreditCardPersonalNameSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalNameSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalNameSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/scoringinfo/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni dokladu.", + "operationId": "endpointCreditCardScoringInfoCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalScoringInfoCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalScoringInfoCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/scoringinfo/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni dokladu", + "operationId": "endpointCreditCardScoringInfoSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalScoringInfoSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalScoringInfoSetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/solvency/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni financni situace.", + "operationId": "endpointCreditCardPersonalSolvencyCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalSolvencyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalSolvencyCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/personal/solvency/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni financni situace.", + "operationId": "endpointCreditCardPersonalSolvencySetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalSolvencySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalSolvencySetupResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/request/cancel": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Storno zadosti", + "operationId": "endpointCreditCardRequestCancelUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestCancelRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestCancelResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/request/create": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Vytvoreni zadosti ke kreditni karte", + "operationId": "endpointCreditCardRequestCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestCreateResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/request/detail": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Ziskani detailu zadosti pro odeslani Analytics.", + "operationId": "endpointCreditCardRequestDetailUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestDetailResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/request/scoring/agreement/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni dokladu.", + "operationId": "endpointCreditCardRequestScoringAgreementCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestScoringAgreementCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestScoringAgreementCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/request/scoring/checkresult": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Zjisteni stavu scooringu", + "operationId": "endpointCreditCardRequestScoringCheckUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestScoringCheckResultRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestScoringCheckResultResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/request/scoring/create": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Odeslani zadosti do scooringu", + "operationId": "endpointCreditCardRequestScoringCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestScoringCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestScoringCreateResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/request/scoring/instalmentconfirmation/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Ulozeni potvrzeni schopnosti splacet", + "operationId": "endpointCreditCardRequestScoringInstallmentConfirmationCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestScoringInstallmentConfirmationCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestScoringInstallmentConfirmationCommitResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/request/state": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Nacteni stavu nejaktualnejsi zadosti o kreditni kartu.", + "operationId": "endpointCreditCardGetApplicationStateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardGetApplicationStateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardGetApplicationStateResponse»" + } + } + } + } + }, + "/secured/creditcard/smart/salespoint/product/list": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Salespoint - docasny endpoint pro vstup do kreditnich karet. Bude nahrazen cross-produktovym resenim.", + "operationId": "endpointCreditCardSalesPointProductListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardSalesPointProductListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardSalesPointProductListResponse»" + } + } + } + } + }, + "/secured/dms/appdoc/upload": { + "post": { + "tags": [ + "dms-upload-controller" + ], + "summary": "Nahraje vsechny dokumenty z cache v udebs do uloziste v DMS do slozky podle cisla zadosti.", + "operationId": "uploadApplicationDocumentToDMSUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DmsAppDocUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DmsAppDocUploadResponse»" + } + } + } + } + }, + "/secured/dms/upload": { + "post": { + "tags": [ + "dms-upload-controller" + ], + "summary": "Upload of document to DMS", + "operationId": "uploadToDMSUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DmsUploadRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DmsUploadResponse»" + } + } + } + } + }, + "/secured/document/get": { + "post": { + "tags": [ + "document-controller" + ], + "summary": "Vraci stazeny dokument z DMS.", + "description": "Vraci stazeny dokument z DMS.", + "operationId": "endpointDocumentGetUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DocumentGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DocumentGetResponse»" + } + } + } + } + }, + "/secured/document/list": { + "post": { + "tags": [ + "document-controller" + ], + "summary": "Vraci seznam dokumentu klienta.", + "description": "Vraci seznam dokumentu klienta.", + "operationId": "endpointDocumentListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DocumentListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DocumentListResponse»" + } + } + } + } + }, + "/secured/document/read/commit": { + "post": { + "tags": [ + "document-controller" + ], + "summary": "Oznaceni dokumentu jako precteny.", + "description": "Oznaceni dokumentu jako precteny.", + "operationId": "endpointDocumentReadCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DocumentReadCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DocumentReadCommitResponse»" + } + } + } + } + }, + "/secured/eauto/login": { + "post": { + "tags": [ + "e-auto-controller" + ], + "summary": "Returns EAutologin.", + "description": "Returns contract flag and login hash.", + "operationId": "getEAutoLoginUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EAutoLoginResponse»" + } + } + } + } + }, + "/secured/exchangerate/list": { + "post": { + "tags": [ + "exchange-rate-controller" + ], + "summary": "Vraci kurzovni listek", + "description": "Vraci kurzovni listek", + "operationId": "getExchangeRatesUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExchangeRateListResponse»" + } + } + } + } + }, + "/secured/exchangerate/tellerfees/list": { + "get": { + "tags": [ + "exchange-rate-controller" + ], + "summary": "Vraci smenarenske poplatky.", + "operationId": "getTellerFeesUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TellerFeesResponse»" + } + } + } + } + }, + "/secured/fxmoney/access": { + "post": { + "tags": [ + "fx-money-controller" + ], + "summary": "Vraci chybu, pokud klient nemuze do FXMoney a obchodni podminky FXMoney, pokud klient podepsal jiz neaktualni.", + "description": "Vraci chybu, pokud klient nemuze do FXMoney a obchodni podminky FXMoney, pokud klient podepsal jiz neaktualni.", + "operationId": "endpointFXMoneyAccessUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FXMoneyAccessRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«FXMoneyAccessResponse»" + } + } + } + } + }, + "/secured/fxmoney/commit": { + "post": { + "tags": [ + "fx-money-controller" + ], + "summary": "Provede FX prevod.", + "description": "Provede FX prevod.", + "operationId": "endpointFXMoneyCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FXMoneyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«FXMoneyCommitResponse»" + } + } + } + } + }, + "/secured/fxmoney/productconditions/commit": { + "post": { + "tags": [ + "fx-money-controller" + ], + "summary": "Provede ulozeni produktovych podminek k FXMoney do DMS.", + "description": "Provede ulozeni produktovych podminek k FXMoney do DMS.", + "operationId": "endpointFXMoneyCommitProductConditionsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FXMoneyProductConditionsCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«FXMoneyProductConditionsCommitResponse»" + } + } + } + } + }, + "/secured/fxmoney/setup": { + "post": { + "tags": [ + "fx-money-controller" + ], + "summary": "Vraci kurz prevodu FX Money.", + "description": "Vraci kurz prevodu FX Money.", + "operationId": "endpointFXMoneySetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FXMoneySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«FXMoneySetupResponse»" + } + } + } + } + }, + "/secured/fxmoney/transaction-rate": { + "post": { + "tags": [ + "fx-money-controller" + ], + "summary": "Vraci vypocitany kurz pro pozadovanou zahranicni transakci. Vypocet zohlednuje, jestli ma klient VIP status.", + "operationId": "getExchangeRatesUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionExchangeRateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionExchangeRateResponse»" + } + } + } + } + }, + "/secured/how-to/search": { + "post": { + "tags": [ + "how-to-controller" + ], + "summary": "Vyhledavani 'Co SmartBanka umi?'.", + "operationId": "searchUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/HowToSearchRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«HowToSearchResponse»" + } + } + } + } + }, + "/secured/how-to/topic/{code}": { + "get": { + "tags": [ + "how-to-controller" + ], + "summary": "Detail tematu 'Co SmartBanka umi?'.", + "operationId": "getTopicUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "code", + "in": "path", + "description": "Unikatni identifikator, code z /how-to/topics.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«HowToTopicDetail»" + } + } + } + } + }, + "/secured/how-to/topics": { + "get": { + "tags": [ + "how-to-controller" + ], + "summary": "Seznam temat 'Co SmartBanka umi?'.", + "operationId": "getTopicsUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«HowToTopicsResponse»" + } + } + } + } + }, + "/secured/infoservice/products/list": { + "post": { + "tags": [ + "info-service-controller" + ], + "summary": "Vraci seznam idcek karet a uctu, u kterych lze nastaveni konfigurovat.", + "operationId": "getProductsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InfoServiceProductsListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InfoServiceProductsListResponse»" + } + } + } + } + }, + "/secured/infoservice/settings/list": { + "post": { + "tags": [ + "info-service-controller" + ], + "summary": "Vraci aktualni nastaveni notifikaci pro zvoleny produkt, ktere je mozne upravit.", + "operationId": "getSettingsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InfoServiceSettingsListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InfoServiceSettingsListResponse»" + } + } + } + } + }, + "/secured/infoservice/settings/update": { + "post": { + "tags": [ + "info-service-controller" + ], + "summary": "Zmena nastaveni notifikaci pro zvoleny produkt.", + "operationId": "updateSettingsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InfoServiceSettingsUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InfoServiceSettingsUpdateResponse»" + } + } + } + } + }, + "/secured/insurance/accounts/list": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Nacteni bankovnich uctu klienta, k nimz lze navazat poplatkovani pro dane pojisteni a mohou byt nabizeny jako nosny produkt pro zvolene pojisteni dle NAS parametrizace.", + "description": "Nacteni bankovnich uctu klienta, k nimz lze navazat poplatkovani pro dane pojisteni a mohou byt nabizeny jako nosny produkt pro zvolene pojisteni dle NAS parametrizace.", + "operationId": "endpointInsuranceAccountListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceAvailableAccountsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceAvailableAccountsResponse»" + } + } + } + } + }, + "/secured/insurance/appointment/create": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Sjednani schuzky k pojisteni.", + "description": "Sjednani schuzky k pojisteni.", + "operationId": "endpointInsuranceAppointmentCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceAppointmentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceAppointmentCreateResponse»" + } + } + } + } + }, + "/secured/insurance/commit": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Zalozeni pojisteni", + "description": "Pinem autorizovane sjednani pojisteni.", + "operationId": "endpointInsuranceCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceCommitResponse»" + } + } + } + } + }, + "/secured/insurance/creditCard/found": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Sjednani pojisteni kreditni karty.", + "description": "Sjednani pojisteni kreditni karty.", + "operationId": "endpointCreditCardFoundUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFoundRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFoundResponse»" + } + } + } + } + }, + "/secured/insurance/document/list": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Seznam dokumentu k sjednanemu pojisteni.", + "description": "Seznam dokumentu k sjednanemu pojisteni.", + "operationId": "endpointInsuranceDocumentListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceDocumentListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceDocumentListResponse»" + } + } + } + } + }, + "/secured/insurance/list": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Seznam pojisteni a nabidek pojisteni.", + "description": "Seznam pojisteni a nabidek pojisteni.", + "operationId": "endpointInsuranceListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceListResponse»" + } + } + } + } + }, + "/secured/insurance/price/calculate": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Vypocet ceny cestovniho pojisteni.", + "description": "Vypocet ceny cestovniho pojisteni.", + "operationId": "endpointInsuranceCalculationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceCalculationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceCalculationResponse»" + } + } + } + } + }, + "/secured/insurance/setup": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Dotazeni textaci a dokumentu k sjednani pojisteni.", + "description": "Dotazeni textaci a dokumentu k sjednani pojisteni.", + "operationId": "endpointInsuranceSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceSetupResponse»" + } + } + } + } + }, + "/secured/investment/chart": { + "post": { + "tags": [ + "investment-controller" + ], + "summary": "Investicni graf.", + "operationId": "getInvestmentChartUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InvestmentChartRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InvestmentChartResponse»" + } + } + } + } + }, + "/secured/investment/list": { + "post": { + "tags": [ + "investment-controller" + ], + "summary": "Seznam investic.", + "operationId": "getInvestmentListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InvestmentListResponse»" + } + } + } + } + }, + "/secured/journal/create": { + "post": { + "tags": [ + "journal-controller" + ], + "summary": "Zalogovani udalosti z klientske aplikace", + "operationId": "createJournalEventUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/JournalEventRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«JournalEventResponse»" + } + } + } + } + }, + "/secured/jwt/is-valid": { + "get": { + "tags": [ + "jwt-controller" + ], + "summary": "Kontrola validity JWT", + "operationId": "isValidUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmptyResponse" + } + } + } + } + }, + "/secured/jwt/refresh": { + "post": { + "tags": [ + "jwt-controller" + ], + "summary": "Prodlouzeni expirace autorizacniho tokenu o standardni casovy interval.", + "operationId": "createRefreshJwtTokenUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/JwtRefreshResponse" + } + } + } + } + }, + "/secured/jwt/refresh/extended": { + "post": { + "tags": [ + "jwt-controller" + ], + "summary": "Prodlouzeni expirace autorizacniho tokenu o delsi nez standardni casovy interval.", + "operationId": "createExtendedRefreshJwtTokenUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/JwtRefreshResponse" + } + } + } + } + }, + "/secured/loan/list": { + "post": { + "tags": [ + "loan-controller" + ], + "summary": "Vrati uzivatelovy uvery", + "description": "Vrati uzivatelovy uvery.", + "operationId": "getLoanListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«LoanListResponse»" + } + } + } + } + }, + "/secured/log/create": { + "post": { + "tags": [ + "secured-log-controller" + ], + "summary": "Zalogovani udalosti z klientske aplikace", + "operationId": "createLogEventUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/LogEventRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«LogEventResponse»" + } + } + } + } + }, + "/secured/maintenance/version": { + "post": { + "tags": [ + "maintenance-controller" + ], + "summary": "Sluzba pro kontrolu verze aplikace uzivatele", + "description": "Sluzba pro kontrolu verze aplikace uzivatele", + "operationId": "endpointMaintenanceVersionUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«VersionCheckResponse»" + } + } + } + } + }, + "/secured/mgm/referral": { + "post": { + "tags": [ + "mgm-controller" + ], + "summary": "Vrati 'referral' code prihlaseneho uzivatele (zatim je to CIF).", + "operationId": "getReferralUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MgmReferralResponse»" + } + } + } + } + }, + "/secured/mortgage/list": { + "post": { + "tags": [ + "mortgage-controller" + ], + "summary": "Seznam hypotek.", + "description": "Seznam hypotek.", + "operationId": "endpointMortgageListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MortgageListResponse»" + } + } + } + } + }, + "/secured/oauth2/generate/token": { + "get": { + "tags": [ + "oauth-2-authentication-controller" + ], + "summary": "Generuje login token", + "description": "Vygeneruje login token pro budouci zisk user ID. Login token je bezpecny zpusob, jak si poslat userId redirectem mezi federovanym loginem a CA GW", + "operationId": "generateTokenUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«GenerateLoginTokenResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/client/check-walkin-client": { + "post": { + "tags": [ + "credit-card-client-controller" + ], + "summary": "Overeni existujiciho klienta a jeho opravnenosti pokracovat v procesu.", + "operationId": "checkClientUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardClientCheckRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardClientCheckResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/client/cif": { + "post": { + "tags": [ + "credit-card-client-controller" + ], + "summary": "Validace a zalozeni cifove zadosti.", + "operationId": "createCifApplicationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ClientPLoanRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ClientPLoanResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/client/cif/status": { + "post": { + "tags": [ + "credit-card-client-controller" + ], + "summary": "Overeni stavu vytvoreni CIF zadosti v NASu.", + "operationId": "cifStatusUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CifStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CifStatusResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/client/cif/update-and-score": { + "post": { + "tags": [ + "credit-card-client-controller" + ], + "summary": "Aktualizace klientskych udaju na zadosti o CIF a nasledne spusteni scoringu.", + "operationId": "updateAndScoreCifApplicationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CifUpdatePLoanRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CifUpdatePLoanResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/client/consent": { + "post": { + "tags": [ + "credit-card-client-controller" + ], + "summary": "Ulozi klientske souhlasy", + "operationId": "saveConsentsUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SaveConsentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/client/details-form/validate": { + "post": { + "tags": [ + "credit-card-client-controller" + ], + "summary": "Validuje detailni informace klienta proti NAS", + "operationId": "validateClientDetailsFormUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ClientDetailsFormRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ClientDetailsFormResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/client/employment-form/validate": { + "post": { + "tags": [ + "credit-card-client-controller" + ], + "summary": "Validuje informace o zamestnavateli proti NAS", + "operationId": "validateEmployerFormUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EmployerFormPLoanRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmployerFormPLoanResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/client/info-form/validate": { + "post": { + "tags": [ + "credit-card-client-controller" + ], + "summary": "Validuje klientske informace proti NAS", + "operationId": "validateClientInfoFormUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ClientInfoFormRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ClientInfoFormResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/document/application/reindex": { + "post": { + "tags": [ + "credit-card-document-controller" + ], + "summary": "Reindexace dokumentu nahranych do DMS tykajicich se zadosti.", + "operationId": "reindexApplicationDocumentUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardReindexingAppDocsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ReindexingResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/document/client/reindex": { + "post": { + "tags": [ + "credit-card-document-controller" + ], + "summary": "Reindexace dokumentu nahranych do DMS tykajicich se klienta.", + "operationId": "reindexClientDocumentUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ReindexingClientDocsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ReindexingResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/pos/branches": { + "post": { + "tags": [ + "credit-card-pos-controller" + ], + "summary": "Nacte seznam pobocek pro prihlaseneho uzivatele v UFO", + "operationId": "loadBranchesUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EmptyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BranchesResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/pos/broker/validate": { + "post": { + "tags": [ + "credit-card-pos-controller" + ], + "summary": "Overi kod brokera", + "operationId": "validateBrokerCodeUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/BrokerValidationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BrokerValidationResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/product/account-number/validate": { + "post": { + "tags": [ + "credit-card-product-controller" + ], + "summary": "Validace cisla uctu pro splaceni.", + "operationId": "validateAccountNumberUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardAccountNumberValidationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardAccountNumberValidationResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/product/check-print-ready": { + "post": { + "tags": [ + "credit-card-product-controller" + ], + "summary": "Overeni moznosti tisku dokumentu produktove zadosti.", + "operationId": "variantUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardProductPrintReadyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardProductPrintReadyResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/product/create": { + "post": { + "tags": [ + "credit-card-product-controller" + ], + "summary": "Zalozeni produktove zadosti v NASu.", + "operationId": "createProductApplicationUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardCreateProductApplicationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardCreateProductApplicationResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/product/limit/setup": { + "post": { + "tags": [ + "credit-card-product-controller" + ], + "summary": "Zjisteni limitu pro ramec, poplatky, urokovou miru, atd.", + "operationId": "limitSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardOnboardingLimitSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardLimitSetupResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/product/scoring-status": { + "post": { + "tags": [ + "credit-card-product-controller" + ], + "summary": "Overeni stavu schvalovani produktove zadosti v NASu.", + "operationId": "productStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardProductScoringStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardProductScoringStatusResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/product/update": { + "post": { + "tags": [ + "credit-card-product-controller" + ], + "summary": "Uprava produktove zadosti v NASu a vyber varianty.", + "operationId": "updateProductApplicationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardProductApplicationUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/sign-app/documents/descriptions": { + "get": { + "tags": [ + "credit-card-sign-app-controller" + ], + "summary": "Nazvy dokumentu a jejich popisy.", + "operationId": "getDocumentsDescriptionsUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardSignAppDocumentsDescriptionsResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/sign-app/documents/generate": { + "post": { + "tags": [ + "credit-card-sign-app-controller" + ], + "summary": "Generovani smluvni dokumentace pro produkty z daneho balicku pro ucely podepisovani.", + "operationId": "processPackageUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignAppDocumentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/sign-app/documents/generated": { + "post": { + "tags": [ + "credit-card-sign-app-controller" + ], + "summary": "Ziskani informaci o vsech dokumentech k podpisu pro dany produktovy balicek", + "operationId": "getGeneratedDocumentsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardGeneratedDocumentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardGeneratedDocumentsResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/sign-app/documents/status": { + "post": { + "tags": [ + "credit-card-sign-app-controller" + ], + "summary": "Zjisteni stavu procesu generovani smluv pro dany balicek.", + "operationId": "getPackageStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignAppWorkflowStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SignAppWorkflowStatusResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/sign-app/end-session": { + "post": { + "tags": [ + "credit-card-sign-app-controller" + ], + "summary": "Ukonceni session MPodpisu s podepsanymi dokumenty", + "operationId": "endSessionUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EndSessionRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/sign-app/products/establish": { + "post": { + "tags": [ + "credit-card-sign-app-controller" + ], + "summary": "Posunuti stavu podepsanosti dokumentu ve WPS, coz spusti proces realneho zakladani produktu z balicku.", + "operationId": "establishProductsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignAppProductsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/sign-app/products/status": { + "post": { + "tags": [ + "credit-card-sign-app-controller" + ], + "summary": "Kontrola stavu zakladani produktu z balicku.", + "operationId": "getProductStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignAppWorkflowStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SignAppWorkflowStatusResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/sign-app/signed-documents/check": { + "post": { + "tags": [ + "credit-card-sign-app-controller" + ], + "summary": "Kontrola stavu podepsanych smluv", + "operationId": "checkSignedDocumentsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardCheckSignedDocumentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardCheckSignedDocumentsResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/sign-app/signed-documents/upload": { + "post": { + "tags": [ + "credit-card-sign-app-controller" + ], + "summary": "Nahrani podepsaneho dokumentu do DMS", + "operationId": "uploadSignedDocumentUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardUploadSignedDocumentRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UploadSignedDocumentResponse»" + } + } + } + } + }, + "/secured/onboarding/creditcard/sign-app/token": { + "post": { + "tags": [ + "credit-card-sign-app-controller" + ], + "summary": "Konfigurace podpisove session MPodpisu a ziskani tokenu", + "operationId": "getTokenUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardSignAppTokenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SignAppTokenResponse»" + } + } + } + } + }, + "/secured/passkit/insurance": { + "post": { + "tags": [ + "pass-kit-controller" + ], + "summary": "Vraci unikatni idcko a URL passu pro pojisteni.", + "operationId": "getInsurancePassUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Request pro ziskani IDcka a URL passu pro pojisteni." + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Response s IDckem a URL passu pro pojisteni.»" + } + } + } + } + }, + "/secured/payment/commit": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Potvrzeni zalozeni platby", + "description": "Sluzba podle zadaneho formulare pro platbu a jeho hasha overi platnost udaju, zvaliduje a potvrdi ke zpracovani bankovnymi systemy. Pokud pri validaci dojde k chybam, vraci se zpet puvodni formular doplneny o chybove stavy a hlasky.", + "operationId": "commitUsingPOST_6", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentCommitResponse»" + } + } + } + } + }, + "/secured/payment/create": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Zalozeni zatim nepotvrezene platby", + "description": "Sluzba zvaliduje a pote zalozi novou prozatim nepotvreznou platbu, vygeneruje pro ni jednodznacny hash, podle ktereho nasledne je mozne pres sluzbu payment/commit operaci dokoncit a potvrdit. Pokud pri validaci dojde k chybam, vraci se zpet puvodni formular doplneny o chybove stavy a hlasky.", + "operationId": "createUsingPOST_5", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentCreateResponse»" + } + } + } + } + }, + "/secured/payment/delete": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Odvolani platby", + "description": "Provede odvolani budouci platby.", + "operationId": "paymentDeleteUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentDeleteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentDeleteResponse»" + } + } + } + } + }, + "/secured/payment/foreign/foreign-order/commit": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Podepsani a odeslani pozadavku na SEPA platbu.", + "operationId": "sepaCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ForeignOrderCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ForeignOrderCommitResponse»" + } + } + } + } + }, + "/secured/payment/foreign/foreign-order/create": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Zadani pozadavku na novy zahranicni platebni prikaz.", + "operationId": "createForeignOrderUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ForeignOrderCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ForeignOrderCreateResponse»" + } + } + } + } + }, + "/secured/payment/foreign/foreign-order/setup": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Priprava pro zadani pozadavku na novy zahranicni platebni prikaz.", + "operationId": "setUpForeignOrderUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ForeignOrderSetupResponse»" + } + } + } + } + }, + "/secured/payment/foreign/iban/check": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Zjisteni informaci o bance podle IBANu.", + "operationId": "ibanCheckUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/IbanCheckRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«IbanCheckResponse»" + } + } + } + } + }, + "/secured/payment/foreign/intra-bank/account/detail": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Priprava pro zadani pozadavku na cizomenovou platbu v ramci Monety.", + "operationId": "getIntraBankAccountDetailUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/IntraBankAccountDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«IntraBankAccountDetailResponse»" + } + } + } + } + }, + "/secured/payment/foreign/intra-bank/commit": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Podepsani a odeslani pozadavku na cizomenovou platbu v ramci Monety.", + "operationId": "commitIntraBankPaymentUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/IntraBankPaymentCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«IntraBankPaymentCommitResponse»" + } + } + } + } + }, + "/secured/payment/foreign/intra-bank/create": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Zadani pozadavku na cizomenovou platbu v ramci Monety.", + "operationId": "createIntraBankPaymentUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/IntraBankPaymentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«IntraBankPaymentCreateResponse»" + } + } + } + } + }, + "/secured/payment/foreign/sepa/commit": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Potvrzeni zalozeni SEPA platby", + "description": "Sluzba podle zadaneho formulare pro platbu a jeho hash overi platnost udaju, zvaliduje a potvrdi ke zpracovani bankovnymi systemy.", + "operationId": "commitUsingPOST_4", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SepaPaymentCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SepaPaymentCommitResponse»" + } + } + } + } + }, + "/secured/payment/foreign/sepa/create": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Zalozeni zatim nepotvrezene SEPA platby", + "description": "Sluzba zvaliduje a pote zalozi novou prozatim nepotvreznou SEPA platbu, vygeneruje pro ni jednodznacny hash, podle ktereho nasledne je mozne pres sluzbu payment/foreign/sepa/commit operaci dokoncit a potvrdit. Pokud pri validaci dojde k chybam, vraci se zpet puvodni formular doplneny o chybove stavy a hlasky.", + "operationId": "createUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SepaPaymentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SepaPaymentCreateResponse»" + } + } + } + } + }, + "/secured/payment/foreign/sepa/setup": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Priprava noveho SEPA platebniho prikazu", + "description": "Sluzba nacte aktualni udaje pro pripravu formulare na zalozeni jednotlivych druhu platebnich prikazu", + "operationId": "setupUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SepaPaymentSetupResponse»" + } + } + } + } + }, + "/secured/payment/setup": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Priprava noveho platebniho prikazu", + "description": "Sluzba nacte aktualni udaje pro pripravu formulare na zalozeni jednotlivych druhu platebnich prikazu", + "operationId": "setupUsingPOST_5", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupResponse»" + } + } + } + } + }, + "/secured/payment/setup/bank/list": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Vraci seznam bank", + "description": "Vraci seznam bank s jejich zakladnimi informacemi jako je kod banky nebo jmeno banky.", + "operationId": "setupBankListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupBankListResponse»" + } + } + } + } + }, + "/secured/payment/setup/duedate/list": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Vraci seznam pracovni dni", + "description": "Vraci seznam pracovnich dni, ve kterych je mozne zadavat platby.", + "operationId": "setupDueDateListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentSetupDueDateListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupDueDateListResponse»" + } + } + } + } + }, + "/secured/payment/setup/holiday/list": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Vraci seznam svatku", + "description": "Vraci seznam svatku, dnu ve kterych neni mozne zadavat platby", + "operationId": "setupHolidayListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentSetupHolidayListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupHolidayListResponse»" + } + } + } + } + }, + "/secured/payment/setup/recipient/list": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Seznam navrhovanych uctu pro odeslani platby dle drive zadanych prikazu", + "operationId": "setupRecipientAccountListHintUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentSetupRecipientListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupRecipientListResponse»" + } + } + } + } + }, + "/secured/ploan/broker/client/cif": { + "post": { + "tags": [ + "p-loan-broker-client-controller" + ], + "summary": "Overeni existujiciho klienta, validace a zalozeni/aktualizace cifove zadosti MWF.", + "operationId": "createCifApplicationUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ClientPLoanBrokerRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ClientPLoanResponse»" + } + } + } + } + }, + "/secured/ploan/broker/client/cif/update-and-score": { + "post": { + "tags": [ + "p-loan-broker-client-controller" + ], + "summary": "Aktualizace cifove zadosti pres MWF. Po updatu se rovnou se spusti scoring proces.", + "operationId": "updateCifApplicationAndProcessScoreUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CifUpdatePLoanBrokerRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CifUpdatePLoanResponse»" + } + } + } + } + }, + "/secured/ploan/broker/product/create": { + "post": { + "tags": [ + "broker-product-controller" + ], + "summary": "Vytvoreni produktove zadosti v NASu pro brokery.", + "operationId": "createProductApplicationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ProductApplicationBrokerRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ProductApplicationResponse»" + } + } + } + } + }, + "/secured/ploan/client/check-walkin-client": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Overeni existujiciho klienta a jeho opravnenosti pokracovat v procesu.", + "operationId": "checkClientUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ClientCheckRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ClientCheckResponse»" + } + } + } + } + }, + "/secured/ploan/client/cif": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Ulozeni noveho klienta pres MWF.", + "operationId": "createCifApplicationUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ClientPLoanRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ClientPLoanResponse»" + } + } + } + } + }, + "/secured/ploan/client/cif/status": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Overeni stavu vytvoreni CIF zadosti v NASu.", + "operationId": "cifStatusUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CifStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CifStatusResponse»" + } + } + } + } + }, + "/secured/ploan/client/cif/update-and-score": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Aktualizace cifove zadosti pres MWF. Po updatu se rovnou se spusti scoring proces.", + "operationId": "updateCifApplicationAndProcessScoreUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CifUpdatePLoanRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CifUpdatePLoanResponse»" + } + } + } + } + }, + "/secured/ploan/client/consent": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Ulozi klientske souhlasy", + "operationId": "processPackageUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SaveConsentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/client/consolidate": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Returns options for consolidation", + "operationId": "getOptionsForConsolidationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/OptionsForConsolidationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«OptionsForConsolidationResponse»" + } + } + } + } + }, + "/secured/ploan/client/create-internet-banking-channel": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Zalozeni kanalu internetoveho bankovnictvi pro existujiciho klienta, ktery nema zalozene IB", + "operationId": "createInternetBankingChannelUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreateInternetBankingChannelRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/client/details-form/validate": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Validation of client details form data against NAS.", + "operationId": "validateClientDetailsFormUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ClientDetailsFormRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ClientDetailsFormResponse»" + } + } + } + } + }, + "/secured/ploan/client/employment-form/validate": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Validates a product application object against NAS", + "operationId": "validateEmploymentUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EmployerFormPLoanRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmployerFormPLoanResponse»" + } + } + } + } + }, + "/secured/ploan/client/income/mmb": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Nacte prijem z uctu MMB u existujiciho klienta", + "operationId": "getIncomeFromMMBAccountUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/IncomeFromMMBAccountRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«IncomeFromMMBAccountResponse»" + } + } + } + } + }, + "/secured/ploan/client/info-form/validate": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Validation of client info form data against NAS.", + "operationId": "validateClientUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ClientInfoFormRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ClientInfoFormResponse»" + } + } + } + } + }, + "/secured/ploan/client/internet-banking-info": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Ziskani informaci o internetovem bankovnictvi klienta (hlavne login name)", + "operationId": "getInternetBankingInfoUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InternetBankingInfoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InternetBankingInfoResponse»" + } + } + } + } + }, + "/secured/ploan/client/save-risk-indicators": { + "post": { + "tags": [ + "p-loan-client-controller" + ], + "summary": "Ulozeni rizikovych AML indikatoru ke klientovi", + "operationId": "saveRiskIndicatorsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SaveRiskIndicatorsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/document/application/reindex": { + "post": { + "tags": [ + "p-loan-document-controller" + ], + "summary": "Endpoint pro reindexaci dokumentu nahranych do DMS tykajicich se zadosti.", + "operationId": "reindexApplicationDocumentUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AbstractReindexingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ReindexingResponse»" + } + } + } + } + }, + "/secured/ploan/document/client/reindex": { + "post": { + "tags": [ + "p-loan-document-controller" + ], + "summary": "Endpoint pro reindexaci dokumentu nahranych do DMS tykajicich se klienta.", + "operationId": "reindexClientDocumentUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ReindexingClientDocsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ReindexingResponse»" + } + } + } + } + }, + "/secured/ploan/document/send-email": { + "post": { + "tags": [ + "p-loan-document-controller" + ], + "summary": "Zaslani dokumentu emailem.", + "operationId": "sendEmailWithDocumentsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SendEmailWithDocumentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/employer-info": { + "post": { + "tags": [ + "ploan-controller" + ], + "summary": "Endpoint for getting employer information.", + "operationId": "getEmployerInfoUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EmployerInfoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmployerInfoResponse»" + } + } + } + } + }, + "/secured/ploan/fraud/create-task": { + "post": { + "tags": [ + "manual-fraud-check-controller" + ], + "summary": "Vytvoreni ukolu pro manualni kontrolu podvodu klienta.", + "operationId": "createFraudTaskUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreateFraudTaskRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreateFraudTaskResponse»" + } + } + } + } + }, + "/secured/ploan/fraud/status": { + "post": { + "tags": [ + "manual-fraud-check-controller" + ], + "summary": "Zjisteni stavu ukolu pro manualni kontrolu podvodu klienta.", + "operationId": "getFraudTaskStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FraudTaskStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«FraudTaskStatusResponse»" + } + } + } + } + }, + "/secured/ploan/fraud/store-documents": { + "post": { + "tags": [ + "manual-fraud-check-controller" + ], + "summary": "Ulozeni dokumentu pro manualni kontrolu podvodu klienta.", + "operationId": "storeDocumentsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StoreDocumentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StoreDocumentsResponse»" + } + } + } + } + }, + "/secured/ploan/fraud/zenid/save-investigation-result": { + "post": { + "tags": [ + "manual-fraud-check-controller" + ], + "summary": "Ulozeni vysledku investigace v ZenID", + "operationId": "saveInvestigationResultUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SaveInvestigationResultRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SaveInvestigationResultResponse»" + } + } + } + } + }, + "/secured/ploan/fraud/zenid/start-investigation": { + "post": { + "tags": [ + "manual-fraud-check-controller" + ], + "summary": "Zahajeni investigace v ZenID", + "operationId": "startInvestigationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StartInvestigationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StartInvestigationResponse»" + } + } + } + } + }, + "/secured/ploan/fraud/zenid/upload-sample": { + "post": { + "tags": [ + "manual-fraud-check-controller" + ], + "summary": "Nahrani dokumentu do ZenID", + "operationId": "uploadSampleUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UploadSampleRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UploadSampleResponse»" + } + } + } + } + }, + "/secured/ploan/pos/branches": { + "post": { + "tags": [ + "pos-controller" + ], + "summary": "Nacte seznam pobocek pro prihlaseneho uzivatele v ufo", + "operationId": "loadBranchesUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EmptyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BranchesResponse»" + } + } + } + } + }, + "/secured/ploan/pos/broker/validate": { + "post": { + "tags": [ + "pos-controller" + ], + "summary": "Overi kod brokera", + "operationId": "validateBrokerCodeUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/BrokerValidationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BrokerValidationResponse»" + } + } + } + } + }, + "/secured/ploan/pos/check-cp-broker": { + "get": { + "tags": [ + "pos-controller" + ], + "summary": "Overeni zda je prihlaseny broker z Ceske pojistovny", + "operationId": "isLoggedUserCPBrokerUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«IsLoggedUserCPBrokerResponse»" + } + } + } + } + }, + "/secured/ploan/pos/second-banker/login": { + "post": { + "tags": [ + "pos-controller" + ], + "summary": "Prihlasi druheho bankere", + "operationId": "loginSecondBankerUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/LoginSecondBankerRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«LoginSecondBankerResponse»" + } + } + } + } + }, + "/secured/ploan/pos/second-banker/sign": { + "post": { + "tags": [ + "pos-controller" + ], + "summary": "Podepise produktovy balicek druhym bankerem", + "operationId": "signBySecondBankerUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignBySecondBankerRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/product/application": { + "post": { + "tags": [ + "product-controller" + ], + "summary": "Detail zadosti.", + "operationId": "getApplicationDetailUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ProdPackageApplicationDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ProdPackageApplicationDetailResponse»" + } + } + } + } + }, + "/secured/ploan/product/ca/status": { + "post": { + "tags": [ + "ca-controller" + ], + "summary": "Overeni stavu vytvoreni produktove zadosti v NASu.", + "operationId": "cifStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ProductApplicationStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ProductApplicationStatusResponse»" + } + } + } + } + }, + "/secured/ploan/product/calculation": { + "post": { + "tags": [ + "product-controller" + ], + "summary": "Calculate the initial offer based on data input.", + "operationId": "calculateLoanUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanCalculationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanCalculationResponse»" + } + } + } + } + }, + "/secured/ploan/product/cancel": { + "post": { + "tags": [ + "product-controller" + ], + "summary": "Storno produktovych balicku v NASu.", + "operationId": "cancelProductPackageUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ProductPackageCancelRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/product/canceled-application-state": { + "post": { + "tags": [ + "product-controller" + ], + "summary": "Zjisteni stavu stornovane zadosti.", + "operationId": "getCanceledApplicationStateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CanceledApplicationStateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CanceledApplicationStateResponse»" + } + } + } + } + }, + "/secured/ploan/product/create": { + "post": { + "tags": [ + "product-controller" + ], + "summary": "Vytvoreni produktove zadosti v NASu.", + "operationId": "createProductApplicationUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ProductApplicationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ProductApplicationResponse»" + } + } + } + } + }, + "/secured/ploan/product/express/amountrange": { + "post": { + "tags": [ + "express-controller" + ], + "summary": "Returns loan amount range information", + "operationId": "getLoanAmountRangeUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanAmountRangeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanAmountRangeResponse»" + } + } + } + } + }, + "/secured/ploan/product/express/application-scoring": { + "post": { + "tags": [ + "express-controller" + ], + "summary": "Scoring zadosti.", + "operationId": "scoreApplicationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ApplicationScoringRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/product/express/application-state": { + "post": { + "tags": [ + "express-controller" + ], + "summary": "Zjisteni stavu zadosti.", + "operationId": "getApplicationStateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ApplicationStateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ApplicationStateResponse»" + } + } + } + } + }, + "/secured/ploan/product/express/check-application-workflow-state": { + "post": { + "tags": [ + "express-controller" + ], + "summary": "Kontrola stavu workflow v NAS.", + "operationId": "checkApplicationWorkflowStateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CheckApplicationWorkflowStateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CheckApplicationWorkflowStateRequest»" + } + } + } + } + }, + "/secured/ploan/product/express/configuration": { + "post": { + "tags": [ + "express-controller" + ], + "summary": "Reload PLoan Configuration due to on loan amount change", + "operationId": "loadConfigurationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanConfigurationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanConfigurationResponse»" + } + } + } + } + }, + "/secured/ploan/product/express/configuration-with-exception": { + "post": { + "tags": [ + "express-controller" + ], + "summary": "Loan Configuration with exception gets loaded for loan amount change.", + "operationId": "loadLoanConfigurationWithExceptionUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanConfigurationWithExceptionRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanConfigurationWithExceptionResponse»" + } + } + } + } + }, + "/secured/ploan/product/express/confirmation": { + "post": { + "tags": [ + "express-controller" + ], + "summary": "Submits the Loan Process and confirms the loan", + "operationId": "confirmApplicationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanConfirmationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/product/express/insurance": { + "post": { + "tags": [ + "express-controller" + ], + "summary": "Ulozeni informace, ze klient si pral pojisteni k express pujcce.", + "operationId": "storeInsuranceOnExpressAppUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StoreExpressInsuranceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/product/express/required-documents": { + "post": { + "tags": [ + "express-controller" + ], + "summary": "Endpoint for getting required documents.", + "operationId": "getRequiredDocumentsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/RequiredDocumentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«RequiredDocumentsResponse»" + } + } + } + } + }, + "/secured/ploan/product/express/save": { + "post": { + "tags": [ + "express-controller" + ], + "summary": "Ulozeni konfigurace express pujcky.", + "operationId": "saveExpressAppConfigurationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SaveExpressConfigurationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/product/express/status": { + "post": { + "tags": [ + "express-controller" + ], + "summary": "Overeni stavu vytvoreni produktove zadosti v NASu.", + "operationId": "cifStatusUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ProductApplicationStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ProductApplicationStatusResponse»" + } + } + } + } + }, + "/secured/ploan/product/update-cancellation": { + "post": { + "tags": [ + "product-controller" + ], + "summary": "Prepsani hodnot u stornovane zadosti.", + "operationId": "updateCancellationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateCancellationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/product/update-cif": { + "post": { + "tags": [ + "product-controller" + ], + "summary": "Dodatecne ulozi CIF k produktove zadosti", + "operationId": "updateCifUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateCifRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/security-codes": { + "get": { + "tags": [ + "security-code-controller" + ], + "summary": "Vraci bezpecnostni kody pro PLoan.", + "operationId": "getSecurityCodesUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CodetableValuesResponse»" + } + } + } + } + }, + "/secured/ploan/security-codes/{securityCode}": { + "get": { + "tags": [ + "security-code-controller" + ], + "summary": "Vraci mozne duvody pro dany bezpecnostni kod u PLoan.", + "operationId": "getValuesUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "securityCode", + "in": "path", + "description": "bezpecnostni kod", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CodetableValuesResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/documents/descriptions": { + "get": { + "tags": [ + "sign-app-controller" + ], + "summary": "Nazvy dokumentu a jejich popisy.", + "operationId": "processPackageUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SignAppDocumentsDescriptionsResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/documents/generate": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Nastartovani procesu pro vygenerovani smluvni dokumentace pro produkty z daneho balicku pro ucely podepisovani.", + "operationId": "processPackageUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignAppDocumentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/documents/generated": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Ziskani informaci o vsech dokumentech k podpisu pro dany produktovy balicek", + "operationId": "getGeneratedDocumentsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/GeneratedDocumentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«GeneratedDocumentsResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/documents/status": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Zjisteni stavu procesu generovani smluv pro dany balicek.", + "operationId": "getPackageStatusUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignAppWorkflowStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SignAppWorkflowStatusResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/email-express-contract-copy": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Poslani emailu s kopii smlouvy o Express pujcce.", + "operationId": "sendEmailWithExpressContractCopyUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EmailExpressContractCopyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmailExpressContractCopyResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/end-session": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Ukonceni session s podepsanymi dokumenty", + "operationId": "endSessionUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EndSessionRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/products/establish": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Posunuti stavu podepsanosti dokumentu ve WPS, coz spusti proces realneho zakladani produktu z balicku.", + "operationId": "establishProductsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignAppProductsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/products/express/establish": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Posunuti stavu podepsanosti dokumentu ve WPS, coz spusti proces realneho zakladani produktu Express pujcka.", + "operationId": "establishExpressProductUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignAppProductsExpressRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/products/express/set-ca-number": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Ulozeni cisla bezneho uctu do dokumentu tykajicich se zadosti o express pujcku.", + "operationId": "setCaNumberToExpressUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignAppUpdateExpressRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SignAppUpdateExpressResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/products/status": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Kontrola stavu zakladani produktu z balicku.", + "operationId": "markDocumentsAsSignedInWPSUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignAppWorkflowStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SignAppWorkflowStatusResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/signed-documents/check": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Kontrola stavu podepsanych smluv", + "operationId": "checkSignedDocumentsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CheckSignedDocumentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CheckSignedDocumentsResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/signed-documents/upload": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Nahrani podepsaneho dokumentu do DMS", + "operationId": "uploadSignedDocumentUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UploadSignedDocumentRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UploadSignedDocumentResponse»" + } + } + } + } + }, + "/secured/ploan/sign-app/token": { + "post": { + "tags": [ + "sign-app-controller" + ], + "summary": "Ziskani tokenu pro aplikaci MPodpis", + "operationId": "getTokenUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SignAppTokenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SignAppTokenResponse»" + } + } + } + } + }, + "/secured/ploan/sign-sms/signed-documents/init": { + "post": { + "tags": [ + "sign-sms-controller" + ], + "summary": "Zahajeni procesu podepisovani dokumentu SMSkou", + "operationId": "initUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UploadSMSSignedDocumentInitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UploadSMSSignedDocumentInitResponse»" + } + } + } + } + }, + "/secured/ploan/sign-sms/signed-documents/mobilekey/send": { + "post": { + "tags": [ + "sign-sms-controller" + ], + "summary": "Vyzadani poslani mobilniho klice k overeni podpisu dokumentu.", + "operationId": "sendMobileKeyUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UploadSMSSignedDocumentSendSMSRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UploadSMSSignedDocumentSendSMSResponse»" + } + } + } + } + }, + "/secured/ploan/sign-sms/signed-documents/upload": { + "post": { + "tags": [ + "sign-sms-controller" + ], + "summary": "Nahrani podepsaneho dokumentu do DMS", + "operationId": "getPackageStatusUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UploadSMSSignedDocumentRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UploadSMSSignedDocumentResponse»" + } + } + } + } + }, + "/secured/pointofinterest/address/validity": { + "post": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Overeni adresy, zda je platna.", + "description": "Overeni adresy, zda je platna.", + "operationId": "isAddressValidUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PointOfInterestAddressValidityRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PointOfInterestAddressValidityResponse»" + } + } + } + } + }, + "/secured/pointofinterest/consultants/{area}": { + "get": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Vraci seznam konzultantu pro definovanou oblast.", + "description": "Vraci seznam konzultantu pro definovanou oblast.", + "operationId": "getConsultantsForAreaCodeUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "area", + "in": "path", + "description": "Kod oblasti.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ConsultantsResponse»" + } + } + } + } + }, + "/secured/pointofinterest/detail/{id}": { + "get": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Vraci detail bodu zajmu.", + "operationId": "getPointOfInterestDetailUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Id bodu zajmu", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PointOfInterestDetailResponse»" + } + } + } + } + }, + "/secured/pointofinterest/distance": { + "post": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Vraci dobu presunu k bodu zajmu", + "description": "Vraci dobu presunu k bodu zajmu", + "operationId": "getPointsOfInterestDistanceUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PointOfInterestDistanceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PointOfInterestDistanceResponse»" + } + } + } + } + }, + "/secured/pointofinterest/list": { + "get": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Vraci seznam bodu zajmu, ktery muze byt filtrovany podle data posledni zmeny, typu, apod. Vracene vysledky mohou byt cachovany pomoci HTTP cachovani (viz. NWP-580), coz POST metoda neumoznuje", + "operationId": "getPointsOfInterestUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "dateOfChange", + "in": "query", + "description": "Minimalni datum posledni zmeny zaznamu", + "required": false, + "type": "string", + "format": "date-time" + }, + { + "name": "type", + "in": "query", + "description": "Typ bodu zajmu", + "required": false, + "type": "string", + "enum": [ + "ATM", + "BRANCH", + "ATMBRANCH" + ] + }, + { + "name": "state", + "in": "query", + "description": "Stav bodu zajmu", + "required": false, + "type": "string", + "enum": [ + "ACTIVE", + "NONACTIVE" + ] + }, + { + "name": "selectedCurrencies", + "in": "query", + "description": "Filtruj s vybranymi menami", + "required": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PointOfInterestListResponse»" + } + } + } + }, + "post": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Vraci seznam bodu zajmu filtrovatelny podle typu, stavu, atd.", + "operationId": "getPointsOfInterestUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PointOfInterestListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PointOfInterestListResponse»" + } + } + } + } + }, + "/secured/portal/contact/appointment/create": { + "post": { + "tags": [ + "appointment-controller" + ], + "summary": "Vytvori zadost o schuzku na pobocce", + "operationId": "endpointCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/AppointmentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AppointmentCreateResponse»" + } + } + } + } + }, + "/secured/portal/ploan/calculator/calculate": { + "post": { + "tags": [ + "portal-p-loan-calculator-controller" + ], + "summary": "Vraci vypocet kalkulatoru pro vybrane typy pujcek (pro neprihlaseneho uzivatele)", + "description": "Validni hranice vstupnich dat lze ziskat volanim endpointu /portal/ploan/calculator/setup", + "operationId": "endpointCalculateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/PortalPLoanCalculatorCalculationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PortalPLoanCalculatorCalculationResponse»" + } + } + } + } + }, + "/secured/portal/ploan/calculator/setup": { + "post": { + "tags": [ + "portal-p-loan-calculator-controller" + ], + "summary": "Vraci parametry kalkulatoru pro vybrane typy osobnich pujcek (pro neprihlaseneho uzivatele)", + "operationId": "endpointSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/CommonLoanCalculatorSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CommonLoanCalculatorSetupResponse»" + } + } + } + } + }, + "/secured/portal/smelending/calculator/calculate": { + "post": { + "tags": [ + "portal-sme-lending-calculator-controller" + ], + "summary": "Vraci vypocet kalkulatoru pro vybrane typy pujcek (pro neprihlaseneho uzivatele)", + "description": "Validni hranice vstupnich dat lze ziskat volanim endpointu /portal/smelending/calculator/setup", + "operationId": "endpointCalculateUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/PortalSmeLendingCalculatorCalculationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PortalSmeLendingCalculatorCalculationResponse»" + } + } + } + } + }, + "/secured/portal/smelending/calculator/setup": { + "post": { + "tags": [ + "portal-sme-lending-calculator-controller" + ], + "summary": "Vraci parametry kalkulatoru pro vybrane typy osobnich pujcek (pro neprihlaseneho uzivatele)", + "operationId": "endpointSetupUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/CommonLoanCalculatorSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CommonLoanCalculatorSetupResponse»" + } + } + } + } + }, + "/secured/psd/aisp/my/accounts/{id}/balance": { + "get": { + "tags": [ + "aisp-controller" + ], + "summary": "Zůstatek na účtu", + "description": "Zůstatek konkrétního účtu klienta podle referenčního id účtu. Možné chybové kódy: 404 ID_NOT_FOUND - Neplatné nebo neznámé ID účtu, 400 AC09 - nepodporovaná měna.", + "operationId": "getAccountBalanceUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Id účtu", + "required": true, + "type": "string" + }, + { + "name": "currency", + "in": "query", + "description": "Měna účtu", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AccountBalanceResponse" + } + } + } + } + }, + "/secured/psd/bankapi/account/{accountid}/transactions": { + "post": { + "tags": [ + "bank-api-controller" + ], + "summary": "Get list of transactions on an account", + "description": "Returns transactions according to given account IBAN and paging/sorting parameters. Note: This endpoint may not return all transactions. It can be e.g. history of last 90 days. The history length depends on APIs provided by the queried banks.", + "operationId": "getTransactionsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BankApiTransactionsResponse»" + } + } + } + } + }, + "/secured/psd/bankapi/accounts": { + "get": { + "tags": [ + "bank-api-controller" + ], + "summary": "Get all registered accounts", + "description": "Provides details of all registered bank api accounts.", + "operationId": "getAccountsUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BankApiAccountsResponse»" + } + } + } + } + }, + "/secured/psd/bankapi/accounts/delete": { + "post": { + "tags": [ + "bank-api-controller" + ], + "summary": "Delete/disable registered Bank API account", + "description": "Deletes/disables registered given Bank API account.", + "operationId": "deleteAccountUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DeleteAccountRegistrationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DeleteAccountRegistrationResponse»" + } + } + } + } + }, + "/secured/psd/bankapi/bank/{bank}/login": { + "get": { + "tags": [ + "bank-api-controller" + ], + "summary": "Get details needed for pairing another bank.", + "operationId": "getBankLoginDetailUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BankApiLoginDetailResponse»" + } + } + } + } + }, + "/secured/psd/bankapi/banks": { + "get": { + "tags": [ + "bank-api-controller" + ], + "summary": "Get all banks for multibanking", + "description": "Provides the set of all banks the agregator can connect to via api.", + "operationId": "getBanksUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BankApiBanksResponse»" + } + } + } + } + }, + "/secured/psd/bankapi/redirect": { + "get": { + "tags": [ + "bank-api-controller" + ], + "summary": "Redirects user to IB login page.", + "operationId": "redirectUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RedirectView" + } + } + } + } + }, + "/secured/psd/pisp/my/payments/{paymentId}": { + "get": { + "tags": [ + "pisp-controller" + ], + "summary": "Info o založené/iniciované platbě", + "description": "Resource pro zobrazení informace o založené platbě. Jedná se o platbu, která byla přijata k autorizaci, ale ještě nebyla klientem autorizována. Resource pracuje pouze s transakcemi založenými prostřednictvím konkrétního providera.", + "operationId": "getPaymentInfoUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "paymentId", + "in": "path", + "description": "ID platby.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PsdPaymentInfoResponse" + } + } + } + } + }, + "/secured/psd/pisp/my/payments/{paymentId}/send/otp": { + "post": { + "tags": [ + "pisp-controller" + ], + "summary": "Odeslání verifikační SMS k platbě", + "operationId": "sendPaymentOtpUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "paymentId", + "in": "path", + "description": "ID platby.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/EmptyResponse" + } + } + } + } + }, + "/secured/psd/pisp/my/payments/{paymentId}/sign/{otp}": { + "put": { + "tags": [ + "pisp-controller" + ], + "summary": "Odeslání platby ke zpracování.", + "description": "Resource pro autorizaci neautorizované platby.", + "operationId": "signPaymentUsingPUT", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "paymentId", + "in": "path", + "description": "ID platby.", + "required": true, + "type": "string" + }, + { + "name": "otp", + "in": "path", + "description": "OTP.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PaymentSignResponse" + } + } + } + } + }, + "/secured/push/device/create": { + "post": { + "tags": [ + "push-controller" + ], + "summary": "Zaregistruje novou aktivaci zarizeni k prijmu push notifikaci", + "operationId": "createDeviceUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/Pozadavek na registraci noveho push tokenu k aktivaci. Aktivaci neni soucasti requestu ale bere se z hlavicek." + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Odpoved na registraci push tokenu»" + } + } + } + } + }, + "/secured/salesbooster/contact/address/hint": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Loading of hints for complete address based on first characters of address", + "description": "Loading of hints for complete address based on first characters of address", + "operationId": "endpointAddressHintUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterContactAddressHintRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterContactAddressHintResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/job/hint": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Loading of hints for complete employer info based on first characters of employer name", + "description": "Loading of hints for complete employer info based on first characters of employer name", + "operationId": "endpointContactJobHintUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterContactJobHintRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterContactJobHintResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/job/list": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Loading of client's profession enum values for given employment type for dropdown menus in form.", + "description": "Loading of client's profession enum values for given employment type for dropdown menus in form.", + "operationId": "endpointContactJobListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterContactJobListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterContactJobListResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/personal/address/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Potvrezeni udaju adresy klienty", + "description": "Potvrezeni udaju adresy klienty, pokud nejsou validni, vraci se formular s chybami, pokud jsou validni, ukladaji se k dalsimu zpracovani.", + "operationId": "endpointPersonalContactAddressCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalAddressCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalAddressCommitResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/personal/address/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Dotazeni dat pro nastaveni formulare pro vyplneni udaju o adrese.", + "description": "Dotazeni dat pro nastaveni formulare pro vyplneni udaju o adrese.", + "operationId": "endpointContactPersonalAddressSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalAddressSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalAddressSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/personal/dependents/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Potvrzeni kontanitch udaju o klientovi", + "description": "Potvrzeni kontanitch udaju o klientovi - vyzivovane osoby, pokud nejsou validni, vraci se formular s chybami, pokud jsou validni, ukladaji se k dalsimu zpracovani.", + "operationId": "endpointContactPersonalDependentsCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalDependentsCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalDependentsCommitResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/personal/dependents/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju - vyzivovane osoby.", + "description": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju - vyzivovane osoby.", + "operationId": "endpointContactPersonalDependentsSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalDependentsSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalDependentsSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/personal/name/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Potvrzeni kontanitch udaju o klientovi", + "description": "Potvrzeni kontanitch udaju o klientovi - name, pokud nejsou validni, vraci se formular s chybami, pokud jsou validni, ukladaji se k dalsimu zpracovani.", + "operationId": "endpointContactPersonalNameCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalNameCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalNameCommitResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/personal/name/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju.", + "description": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju - jmeno, prijmeni.", + "operationId": "endpointContactPersonalNameSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalNameSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalNameSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/personal/solvency/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Potvrzeni kontanitch udaju o klientovi", + "description": "Potvrzeni kontanitch udaju o klientovi - solventnost, pokud nejsou validni, vraci se formular s chybami, pokud jsou validni, ukladaji se k dalsimu zpracovani.", + "operationId": "endpointContactPersonalSolvencyCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalSolvencyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalSolvencyCommitResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/personal/solvency/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju - solventnost.", + "description": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju - solventnost.", + "operationId": "endpointContactPersonalSolvencySetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalSolvencySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalSolvencySetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/ploan/employer/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Ulozi informace o zamestnavateli do dat zadosti.", + "operationId": "endpointContactPersonalEmployerCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalEmployerCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalEmployerCommitResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/ploan/employer/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Nacte informace o zamestnavateli z zadosti pro predvyplneni na obrazovce.", + "operationId": "endpointContactPersonalEmployerSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalEmployerSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalEmployerSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/ploan/income/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Potvrzeni prijmu klienta do zadosti o PLoan - v pripade ze uzivatel zadava informace o zamestnavateli.", + "operationId": "endpointContactPLoanIncomeCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactIncomeCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactIncomeCommitResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/ploan/incomesource/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Ulozi zdroj prijmu zadatele do dat zadosti.", + "operationId": "endpointContactPersonalIncomeSourceCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalIncomeSourceCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalIncomeSourceCommitResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/ploan/incomesource/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Nacte zdroj prijmu zadatele z zadosti pro predvyplneni na obrazovce.", + "operationId": "endpointContactPersonalIncomeSourceSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalIncomeSourceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalIncomeSourceSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/ploan/wizard/type": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Nacteni, kterou cestou ve wizzardu pro sjednani PLoanu se dat s ohledem na informace o zamestnavateli.", + "operationId": "endpointContactPersonalEmployerWizzardTypeUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalWizardTypeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalWizardTypeResponse»" + } + } + } + } + }, + "/secured/salesbooster/contact/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Nacteni udaju o uzivateli", + "description": "Nacteni udaju o uzivateli jako jsou kontaktni udaje, doplnujici kontaktni udaje, adresa nebo zamestnavatel.", + "operationId": "endpointContactSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterContactSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterContactSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/help/callme": { + "post": { + "tags": [ + "salesbooster-help-controller" + ], + "summary": "Zalozi task v telefonni kampani.", + "operationId": "endpointCallMeUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterHelpCallMeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterHelpCallMeResponse»" + } + } + } + } + }, + "/secured/salesbooster/help/internetbank": { + "post": { + "tags": [ + "salesbooster-help-controller" + ], + "summary": "Vrati screenu pro SB V Internet bance.", + "operationId": "endpointInternetBankUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterHelpInternetBankRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterHelpInternetBankResponse»" + } + } + } + } + }, + "/secured/salesbooster/offer/express/agreement": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Dotazeni textace k souhlasu.", + "operationId": "endpointExpressAgreementGetUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressAgreementGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressAgreementGetResponse»" + } + } + } + } + }, + "/secured/salesbooster/offer/express/calculator/setup": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Data pro nastaveni kalkulatoru", + "description": "Vraci data pro nastaveni kalkulatoru, nektera data jsou obecna pro vsechny kombinace pujcek (mapovani poctu mesicu pro splatku) a nektera jsou zavisla na prichozim pozadavku na vysi pucky a doby splaceni.", + "operationId": "endpointExpressCalculatorSetupUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressCalculatorSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressCalculatorSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/offer/express/calculator/walkin/setup": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Vraci nastaveni kalkulatoru pro neprihlaseneho uzivatele", + "operationId": "endpointExpressCalculatorWalkinSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressCalculatorWalkinSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressCalculatorWalkinSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/offer/express/infolimit": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Nacteni infolimitu.", + "operationId": "endpointExpressInfoLimitGetUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressInfoLimitGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressInfoLimitGetResponse»" + } + } + } + } + }, + "/secured/salesbooster/offer/express/intro": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Jednoduchy introduction screen.", + "operationId": "endpointExpressIntroGetUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressIntroGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressIntroGetResponse»" + } + } + } + } + }, + "/secured/salesbooster/offer/express/introduction": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Dotazeni uvodni textace k flow pro sjednani uveru.", + "operationId": "endpointExpressIntroductionGetUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressIntroductionGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressIntroductionGetResponse»" + } + } + } + } + }, + "/secured/salesbooster/offer/express/variant/setup": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Nacteni variant preschvalene pujcky.", + "description": "nactena data pro predschvalenou variatnu expres pujcky", + "operationId": "endpointExpressVariantSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressVariantSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressVariantSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/ploan/unhappy/documentnotready/screen": { + "post": { + "tags": [ + "p-loan-screen-controller" + ], + "summary": "Unhappy screena - Document Not Ready", + "operationId": "endpointRequestUnhappyDocumentNotReadyUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterPLoanUnhappyDocumentNotReadyScreenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterPLoanUnhappyDocumentNotReadyScreenResponse»" + } + } + } + } + }, + "/secured/salesbooster/ploan/unhappy/moremoney/screen": { + "post": { + "tags": [ + "p-loan-screen-controller" + ], + "summary": "Unhappy screena - more money", + "operationId": "endpointRequestUnhappyMoreMoneyUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterPLoanUnhappyMoreMoneyScreenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterPLoanUnhappyMoreMoneyScreenResponse»" + } + } + } + } + }, + "/secured/salesbooster/ploan/unhappy/trialperiod/screen": { + "post": { + "tags": [ + "p-loan-screen-controller" + ], + "summary": "Unhappy screena - trial period.", + "operationId": "endpointRequestUnhappyTrialPeriodUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterPLoanUnhappyTrialPeriodScreenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterPLoanUnhappyTrialPeriodScreenResponse»" + } + } + } + } + }, + "/secured/salesbooster/ploan/unhappy/uknownerror/screen": { + "post": { + "tags": [ + "p-loan-screen-controller" + ], + "summary": "Unhappy screena uknown error.", + "operationId": "endpointRequestUnhappyUnknownErrorUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterPLoanUnhappyUnknownErrorScreenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterPLoanUnhappyUnknownErrorScreenResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/account/update": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Aktualizace bezneho uctu na zadosti z FQ.", + "operationId": "endpointRequestAccountUpdateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestAccountUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestAccountUpdateResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/approved/account/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Nacteni dostupnych uctu.", + "operationId": "endpointRequestApprovedAccountSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestApprovedAccountSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestApprovedAccountSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/approved/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Nacteni variant zadosti.", + "operationId": "endpointRequestApprovedSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestApprovedSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestApprovedSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/create": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Ulozeni noveho pozadavku na uverovy produkt. Pokud jiz existuje rozpracovana zadost, pak nacte ji, aktualizuje ji a vrati jako novou.", + "operationId": "endpointRequestCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestCreateResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/detail": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Vraci data aktualni rozpracovane zadosti.", + "operationId": "endpointRequestDetailUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestDetailResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/document/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Nacteni pozadovanych dokladu klienta.", + "operationId": "endpointRequestDocumentSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestDocumentSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestDocumentSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/evaluation/commit": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Aktualizace a odeslani zadosti do schvalovani ve WPS.", + "operationId": "endpointRequestEvaluationCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestEvaluationCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestEvaluationCommitResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/insurance/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Vypocet poplatku za pojisteni.", + "operationId": "endpointRequestInsuranceSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestInsuranceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestInsuranceSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/parameters/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Vypocet moznych TERMs pro vysi uveru.", + "operationId": "endpointRequestParametersSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestParametersSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestParametersSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/ploan/insurance/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "PLoan poplatku za pojisteni insurance screene.", + "operationId": "endpointPLoanRequestInsuranceSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanRequestInsuranceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanRequestInsuranceSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/ploan/parameters/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Vrati formular pro PLoan na parametry cerpani a splaceni.", + "operationId": "endpointPLoanRequestParametersSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanRequestParametersSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanRequestParametersSetupResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/scoring/create": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Ulozeni pozadavku o scoring zadosti.", + "operationId": "endpointRequestScoringCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringCreateResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/scoring/detail": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Zjisteni stavu ulozeneho pozadavku o scoring zadosti.", + "operationId": "endpointRequestScoringDetailUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringDetailResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/scoring/document": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Scoring add document screen.", + "operationId": "endpointRequestScoringDocumentUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringDocumentRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringDocumentResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/scoring/less": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Scoring Less screen.", + "operationId": "endpointRequestScoringLessUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringLessRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringLessResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/scoring/nok": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Scoring NOK screen.", + "operationId": "endpointRequestScoringNokUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringNokRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringNokResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/scoring/ok": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Scoring OK screen.", + "operationId": "endpointRequestScoringOkUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringOkRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringOkResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/scoring/verification": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Scoring verification screen.", + "operationId": "endpointRequestScoringVerificationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringVerificationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringVerificationResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/scoring/withoutconsent": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Screena Bez souhlasu to nepujde.", + "operationId": "endpointRequestWithoutConsentUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestWithoutConsentRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestWithoutConsentResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/state": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Nacteni stavu zadosti. Tento endpoint lze volat jen v pripade ze je jiste ze nejaka zadost existuje, pokud zadna zadost neexistuje, volani endpointu vrati chybu. Pro zjisteni zda nejaka zadost existuje nebo ne, volejte /salesbooster/request/unfinished/existence nebo /salesbooster/request/unfinished/detail.", + "operationId": "endpointRequestStateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestStateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestStateResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/storno": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Storno zadosti.", + "operationId": "endpointRequestStornoUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestStornoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestStornoResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/unfinished/detail": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Dotazeni rozpracovane zadosti.", + "operationId": "endpointRequestUnfinishedDetailUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestUnfinishedDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestUnfinishedDetailResponse»" + } + } + } + } + }, + "/secured/salesbooster/request/unfinished/existence": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Aktualizace bezneho uctu na zadosti z FQ.", + "operationId": "endpointRequestUnfinishedExistenceUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestUnfinishedExistenceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestUnfinishedExistenceResponse»" + } + } + } + } + }, + "/secured/salesbooster/sign/detail/get": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Ziskani dokumentace.", + "operationId": "endpointSignDetailGetUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignDetailGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignDetailGetResponse»" + } + } + } + } + }, + "/secured/salesbooster/sign/document/get": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Ziskani predsmluvni dokumentace.", + "operationId": "endpointSignDocumentGetUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignDocumentGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignDocumentGetResponse»" + } + } + } + } + }, + "/secured/salesbooster/sign/package": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Zaklada balicek zadosti nebo nad nim pousti WF.", + "operationId": "endpointSignPackageUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignPackageRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignPackageResponse»" + } + } + } + } + }, + "/secured/salesbooster/sign/scoring/get": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Ziskani scrolingu pro zvolenou variantu.", + "operationId": "endpointSignScoringGetUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignScoringGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignScoringGetResponse»" + } + } + } + } + }, + "/secured/salesbooster/sign/sign": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Podepsani smlouvy.", + "operationId": "endpointSignUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignSignRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignSignResponse»" + } + } + } + } + }, + "/secured/salesbooster/sign/state": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Overuje stav zadosti", + "operationId": "endpointSignStateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignStateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignStateResponse»" + } + } + } + } + }, + "/secured/salesbooster/sign/victory": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Ziskani viktory screeny.", + "operationId": "endpointVictoryUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignVictoryRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignVictoryResponse»" + } + } + } + } + }, + "/secured/salespoint/action/save": { + "post": { + "tags": [ + "salespoint-controller" + ], + "summary": "Ulozi zpetnou vazbu od uzivatele.", + "operationId": "saveActionUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/SalesPointSaveActionRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Odpoved pro ulozeni akce na salespointu.»" + } + } + } + } + }, + "/secured/salespoint/list": { + "post": { + "tags": [ + "salespoint-controller" + ], + "summary": "Vraci seznam salespointu", + "description": "Toto je stara verze 1, pouzivejte /list-v2", + "operationId": "getSalespointsV1UsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesPointListResponseV1»" + } + } + } + } + }, + "/secured/salespoint/list-v2": { + "post": { + "tags": [ + "salespoint-controller" + ], + "summary": "Vraci seznam salespointu", + "description": "Vraci seznam salespointu", + "operationId": "getSalespointsV2UsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Odpoved se seznamem salespointu»" + } + } + } + } + }, + "/secured/sb/insurance/list": { + "post": { + "tags": [ + "sb-insurance-controller" + ], + "summary": "Zobrazeni seznamu pojisteni pro internetbanku.", + "operationId": "listUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SbInsuranceListResponse»" + } + } + } + } + }, + "/secured/sb/insurance/setup": { + "post": { + "tags": [ + "sb-insurance-controller" + ], + "summary": "Dotazeni detailnich informaci pro dany typ pojisteni.", + "operationId": "setupUsingPOST_7", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SbInsuranceSetupResponse»" + } + } + } + } + }, + "/secured/sb/insurance/termination/commit": { + "post": { + "tags": [ + "sb-insurance-controller" + ], + "summary": "Dokonceni vypovezeni/odstoupeni od pojistne smlouvy.", + "operationId": "terminationCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SbInsuranceTerminationCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/sb/insurance/termination/create": { + "post": { + "tags": [ + "sb-insurance-controller" + ], + "summary": "Zahajeni vypovezeni/odstoupeni od pojistne smlouvy.", + "operationId": "terminationCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SbInsuranceTerminationCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SbInsuranceTerminationCreateResponse»" + } + } + } + } + }, + "/secured/sb/insurance/termination/setup": { + "post": { + "tags": [ + "sb-insurance-controller" + ], + "summary": "Dotazeni detailu potrebnych pro vypovezeni/odstoupeni od pojistne smlouvy.", + "operationId": "terminationSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SbInsuranceTerminationSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SbInsuranceTerminationSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/billing/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ulozeni informace, zdali uzivatel chce pojisteni uveru.", + "operationId": "endpointExpressLoanBillingCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanBillingCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanBillingCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/billing/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni dostupnosti a podminek pojisteni uveru.", + "operationId": "endpointExpressLoanBillingSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanBillingSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanBillingSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/calculator/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni nastaveni kalkulacky. Volani funguje jen v pripade ze existuje rozpracovana zadost o pujcku.", + "operationId": "endpointExpressCalculatorCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanCalculatorCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanCalculatorCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/calculator/recalculate": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni nastaveni kalkulacky. Volani funguje jen v pripade ze existuje rozpracovana zadost o pujcku.", + "operationId": "endpointExpressCalculatorRecalculateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanCalculatorRecalculateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanCalculatorRecalculateResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/calculator/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni nastaveni kalkulacky. Volani funguje jen v pripade ze existuje rozpracovana zadost o pujcku.", + "operationId": "endpointExpressCalculatorSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanCalculatorSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanCalculatorSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/finish/contract/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni smlouvy.", + "operationId": "endpointExpressLoanFinishContractCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanFinishContractCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanFinishContractCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/finish/contract/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Načtení smlouvy", + "operationId": "endpointExpressLoanFinishContractSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanFinishContractSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanFinishContractSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/finish/precontract/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ulozeni souhlasu s predsmluvnimi informacemi.", + "operationId": "endpointExpressPreContractCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanFinishPrecontractCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanFinishPrecontractCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/finish/precontract/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Načtení predsmluvnich informaci", + "operationId": "endpointExpressLoanFinishPrecontractInformationSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanFinishPrecontractSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanFinishPrecontractSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/finish/sign": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Podepsani klientem.", + "operationId": "endpointExpressLoanFinishSignUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanFinishSignRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanFinishSignResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/insurance/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ulozeni informace, zdali uzivatel chce pojisteni uveru.", + "operationId": "endpointExpressLoanInsuranceCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanInsuranceCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanInsuranceCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/insurance/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni dostupnosti a podminek pojisteni uveru.", + "operationId": "endpointExpressLoanInsuranceSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanInsuranceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanInsuranceSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/address/contact/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni kontaktni adresy k expressu.", + "operationId": "endpointExpressLoanPersonalContactAddressCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalContactAddressCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalContactAddressCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/address/contact/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni kontaktni adresy.", + "operationId": "endpointExpressLoanPersonalContactAddressSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalContactAddressSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalContactAddressSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/address/permanent/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni trvale adresy.", + "operationId": "endpointExpressLoanPersonalPermanentAddressCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalPermanentAddressCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalPermanentAddressCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/address/permanent/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni trvale adresy.", + "operationId": "endpointExpressLoanPersonalPermanentAddressSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalPermanentAddressSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalPermanentAddressSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/dependents/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni vyzivovanych osob.", + "operationId": "endpointExpressLoanPersonalDependentsCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalDependentsCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalDependentsCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/dependents/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni vyzivovanych osob", + "operationId": "endpointExpressLoanPersonalDependentsSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalDependentsSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalDependentsSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/employer/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni udaju o zamestnavateli.", + "operationId": "endpointExpressLoanPersonalEmployerCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalEmployerCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalEmployerCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/employer/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni udaju o zamestnavateli.", + "operationId": "endpointExpressLoanPersonalEmployerSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalEmployerSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalEmployerSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/household/expenses/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni vydaju domacnosti.", + "operationId": "endpointExpressLoanPersonalHouseholdExpensesCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalHouseholdExpensesCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalHouseholdExpensesCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/household/expenses/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni vydaju domacnosti.", + "operationId": "endpointExpressLoanPersonalHouseholdExpensesSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalHouseholdExpensesSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalHouseholdExpensesSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/household/solvency/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni prijmu domacnosti.", + "operationId": "endpointExpressLoanPersonalHouseholdSolvencyCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalHouseholdSolvencyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalHouseholdSolvencyCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/household/solvency/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni prijmu domacnosti.", + "operationId": "endpointExpressLoanPersonalHouseholdSolvencySetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalHouseholdSolvencySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalHouseholdSolvencySetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/incomesource/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni zdroje prijmu.", + "operationId": "endpointExpressLoanPersonalIncomeSourceCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalIncomeSourceCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalIncomeSourceCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/incomesource/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni informaci o zdroji prijmu.", + "operationId": "endpointExpressLoanPersonalIncomeSourceSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalIncomeSourceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalIncomeSourceSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/scoringinfo/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni dokladu.", + "operationId": "endpointCreditCardPersonalScoringInfoCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalScoringInfoCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalScoringInfoCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/scoringinfo/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni dokladu", + "operationId": "endpointCreditCardPersonalScoringInfoSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalScoringInfoSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalScoringInfoSetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/solvency/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni financni situace.", + "operationId": "endpointExpressLoanPersonalSolvencyCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalSolvencyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalSolvencyCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/personal/solvency/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni financni situace.", + "operationId": "endpointExpressLoanPersonalSolvencySetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalSolvencySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalSolvencySetupResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/request/cancel": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Storno zadosti", + "operationId": "endpointExpressLoanRequestCancelUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestCancelRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestCancelResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/request/create": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Vytvoreni zadosti k expressu", + "operationId": "endpointExpressLoanRequestCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestCreateResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/request/detail": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ziskani detailu zadosti.", + "operationId": "endpointExpressLoanRequestDetailUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestDetailResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/request/scoring/agreement/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ulozeni souhlasu s dotazy do registru.", + "operationId": "endpointExpressLoanRequestScoringAgreementCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestScoringAgreementCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestScoringAgreementCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/request/scoring/checkresult": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Vyhodnoceni scooringu", + "operationId": "endpointExpressLoanRequestScoringCheckUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestScoringCheckResultRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestScoringCheckResultResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/request/scoring/create": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Odeslani zadosti do scooringu", + "operationId": "endpointExpressLoanRequestScoringCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestScoringCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestScoringCreateResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/request/scoring/installmentconfirmation/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ulozeni potvrzeni schopnosti splacet.", + "operationId": "endpointExpressLoanScoringInstalmentConfirmationCommitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanScoringInstallmentConfirmationCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanScoringInstallmentConfirmationCommitResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/request/state": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni stavu nejaktualnejsi zadosti k expresnimu uveru.", + "operationId": "endpointExpressLoanGetApplicationStateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanGetApplicationStateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanGetApplicationStateResponse»" + } + } + } + } + }, + "/secured/sb/loan/express/screenflow/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni screenflow podle dat zadosti.", + "operationId": "endpointExpressLoanScreenflowSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanScreenflowSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanScreenflowSetupResponse»" + } + } + } + } + }, + "/secured/screen-scraping/kontomatik/faketransactions": { + "post": { + "tags": [ + "screen-scraping-controller" + ], + "summary": "Load transactions from kontomatik.", + "operationId": "fakeImportUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/KontomatikImportRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«KontomatikImportResponse»" + } + } + } + } + }, + "/secured/screen-scraping/kontomatik/transactions": { + "post": { + "tags": [ + "screen-scraping-controller" + ], + "summary": "Load transactions from kontomatik.", + "operationId": "kontomatikImportUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/KontomatikImportRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«KontomatikImportResponse»" + } + } + } + } + }, + "/secured/screen-scraping/result": { + "post": { + "tags": [ + "screen-scraping-controller" + ], + "summary": "Final result of screen scraping.", + "operationId": "getFinalResultUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FinalResultRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«FinalResultResponse»" + } + } + } + } + }, + "/secured/screen-scraping/status": { + "post": { + "tags": [ + "screen-scraping-controller" + ], + "summary": "Process status of screen scraping", + "operationId": "getProcessStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ProcessStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ProcessStatusResponse»" + } + } + } + } + }, + "/secured/servicepackage/atm/setup": { + "post": { + "tags": [ + "service-package-controller" + ], + "summary": "Nastaveni pro ATM balicky", + "description": "Vraci nastaveni pro ATM balicky - texty, mozne a aktivovane balicky, nastaveni datumu, souhlas 101, atd.", + "operationId": "getAtmSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/AtmServicePackagesSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AtmServicePackagesSetupResponse»" + } + } + } + } + }, + "/secured/servicepackage/atm/state/update": { + "post": { + "tags": [ + "service-package-controller" + ], + "summary": "Nastaveni stavu ATM balicku.", + "description": "Zmeni stav ATM balicku - aktivace / deaktivace.", + "operationId": "changeAtmStateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/ServicePackageStateChangeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/smelending/account/list": { + "post": { + "tags": [ + "sme-lending-account-controller" + ], + "summary": "Shrnuti informaci o zadosti", + "operationId": "endpointAccountListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingAccountListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingAccountListResponse»" + } + } + } + } + }, + "/secured/smelending/account/selected": { + "post": { + "tags": [ + "sme-lending-account-controller" + ], + "summary": "Dotazeni jiz vybraneho bankovniho uctu pro prevod penez pro danou pujcku", + "operationId": "endpointAccountNumberUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingSelectedAccountRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingAccount»" + } + } + } + } + }, + "/secured/smelending/async/contract/reentry": { + "post": { + "tags": [ + "sme-async-controller" + ], + "summary": "Navrat do procesu (S&R) po vygenerovani kontraktu", + "operationId": "endpointSafeAndReturnUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeReturnToProcessStartRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeReturnToProcessStartResponse»" + } + } + } + } + }, + "/secured/smelending/async/scoring/approve/conditional": { + "post": { + "tags": [ + "sme-async-controller" + ], + "summary": "Zahajeni asynchroniho zpracovani podmineneho schvaleni pujcky (conditional approval)", + "operationId": "endpointConditionalApproveUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeConditionalStartRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeConditionalStartResponse»" + } + } + } + } + }, + "/secured/smelending/async/scoring/start": { + "post": { + "tags": [ + "sme-async-controller" + ], + "summary": "Zahajeni async scoringu", + "operationId": "endpointScoringUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeScoringStartRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeScoringStartResponse»" + } + } + } + } + }, + "/secured/smelending/async/status": { + "post": { + "tags": [ + "sme-async-controller" + ], + "summary": "Zjisteni stavu async procesu", + "operationId": "endpointStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AsyncPollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AsyncPollingResponse»" + } + } + } + } + }, + "/secured/smelending/cancellation": { + "post": { + "tags": [ + "sme-cancellation-controller" + ], + "summary": "Oteviraci workflow pro kontrakt", + "operationId": "endpointPersonInfoRejectUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeCancelRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCancelResponse»" + } + } + } + } + }, + "/secured/smelending/contract/create": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Oteviraci workflow pro kontrakt", + "operationId": "confirmOfferUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeContractRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeContractResponse»" + } + } + } + } + }, + "/secured/smelending/contract/document": { + "get": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Binarni data kontraktu zakodovane v Base64", + "operationId": "getContractUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeContractDocumentResponse»" + } + } + } + } + }, + "/secured/smelending/contract/finalStatus": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Ziskani finalniho statusu", + "operationId": "contractFinalStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PollingResponse»" + } + } + } + } + }, + "/secured/smelending/contract/reject": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Zamitnuti kontraktu klientem", + "operationId": "rejectContractUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EmptyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/smelending/contract/sendVerification": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Zaslani verifikacni SMS klientu", + "operationId": "sendVerificationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeSmsVerificationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeSmsVerificationResponse»" + } + } + } + } + }, + "/secured/smelending/contract/sign": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Podpis kontraktu uzivatelem pomoci SMS klice (standardni cesta - IB)", + "operationId": "signContractUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EmptyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/smelending/contract/signByDevice": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Potvrzeni (\"podpis\") kontraktu uzivatelem pomoci mobilniho zarizeni - SB", + "operationId": "signByDeviceUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeSignByDeviceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeSignByDeviceResponse»" + } + } + } + } + }, + "/secured/smelending/contract/status": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Zjistovani statusu kontraktu", + "operationId": "contractStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PollingResponse»" + } + } + } + } + }, + "/secured/smelending/creditCard/details": { + "post": { + "tags": [ + "sme-credit-card-controller" + ], + "summary": "ziska detaily ke kreditni karte", + "operationId": "endpointDetailsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeCreditCardDetailsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCreditCardDetailsResponse»" + } + } + } + } + }, + "/secured/smelending/downtime": { + "post": { + "tags": [ + "sme-downtime-controller" + ], + "summary": "status procesu pro pujcku", + "operationId": "endpointDowntimeUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeDowntimeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeDowntimeResponse»" + } + } + } + } + }, + "/secured/smelending/infolimit": { + "post": { + "tags": [ + "sme-info-limit-controller" + ], + "summary": "Vraci mapu s infolimitem, jeli mapa size() == 0, uzivatel nema infolimit a tedy ani narok na pujcku", + "operationId": "getInfoLimitUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeInfoLimitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeInfoLimitResponse»" + } + } + } + } + }, + "/secured/smelending/loanRequest/creditCard/confirmed": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Data o potvrzene zadosti kreditni karty", + "operationId": "getCreditCardDetailsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeCreditCardConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCreditCardResponse»" + } + } + } + } + }, + "/secured/smelending/loanRequest/creditCard/create": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Vytvoreni zadosti o kreditni kartu", + "operationId": "createCreditCardRequestUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeCreditCardRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCreditCardResponse»" + } + } + } + } + }, + "/secured/smelending/loanRequest/creditCard/selected": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Ziska udaje o kreditni karte, pro kterou jiz uzivatel vybral detaily", + "operationId": "getCreditCardDetailsSelectedUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeCreditCardConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCreditCardResponse»" + } + } + } + } + }, + "/secured/smelending/loanRequest/express/confirmed": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Ziska udaje o express pujcke, pro kterou jiz existuje vytisteny kontrakt", + "operationId": "getExpressProductDetailsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeExpressConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeExpressLoanResponse»" + } + } + } + } + }, + "/secured/smelending/loanRequest/express/create": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Vytvoreni zadosti o express produkt", + "operationId": "createExpressLoanRequestUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeExpressLoanRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeExpressLoanResponse»" + } + } + } + } + }, + "/secured/smelending/loanRequest/express/selected": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Ziska udaje o express pujcke, pro kterou jiz uzivatel vybral detaily", + "operationId": "getExpressProductDetailsSelectedUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeExpressConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeExpressLoanResponse»" + } + } + } + } + }, + "/secured/smelending/loanRequest/flexi/confirmed": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Ziska udaje o flexi pujcke, pro kterou jiz existuje vytisteny kontrakt", + "operationId": "getFlexiProductDetailsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeFlexiConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeFlexiLoanResponse»" + } + } + } + } + }, + "/secured/smelending/loanRequest/flexi/create": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Vytvoreni zadosti o flexi produkt", + "operationId": "createFlexiLoanRequestUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeFlexiLoanRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeFlexiLoanResponse»" + } + } + } + } + }, + "/secured/smelending/loanRequest/flexi/selected": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Ziska udaje o flexi pujcke, pro kterou jiz uzivatel vybral detaily", + "operationId": "getFlexiProductDetailsSelectedUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeFlexiConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeFlexiLoanResponse»" + } + } + } + } + }, + "/secured/smelending/modelation/status": { + "post": { + "tags": [ + "sme-scoring-controller" + ], + "summary": "Zjisteni stavu u modelace po score-ingu. Vysledek [PENDING - opakuj volani, ACCEPTED - ok, DENIED - finalni zamitnuti", + "operationId": "endpointModelationStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PollingResponse»" + } + } + } + } + }, + "/secured/smelending/offer/confirm": { + "post": { + "tags": [ + "sme-offer-controller" + ], + "summary": "Oteviraci workflow pro kontrakt", + "operationId": "confirmOfferUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOfferRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOfferResponse»" + } + } + } + } + }, + "/secured/smelending/person/confirm": { + "post": { + "tags": [ + "sme-lending-person-controller" + ], + "summary": "Potvrzuje informace o fyzicke osobe podnikajici", + "operationId": "personInfoConfirmUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingPersonInfoConfirmRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingPersonInfoConfirmResponse»" + } + } + } + } + }, + "/secured/smelending/person/declension": { + "post": { + "tags": [ + "sme-lending-person-controller" + ], + "summary": "Krestni jmeno klienta v patem padu", + "operationId": "declensionUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingPersonDeclensionRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingPersonDeclensionResponse»" + } + } + } + } + }, + "/secured/smelending/person/details": { + "post": { + "tags": [ + "sme-lending-person-controller" + ], + "summary": "Vraci informace o fyzicke osobe podnikajici", + "operationId": "personInfoUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingPersonInfoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingPersonInfoResponse»" + } + } + } + } + }, + "/secured/smelending/person/reject": { + "post": { + "tags": [ + "sme-lending-person-controller" + ], + "summary": "Potvrzuje informace o fyzicke osobe podnikajici", + "operationId": "personInfoRejectUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingPersonInfoRejectRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingPersonInfoConfirmResponse»" + } + } + } + } + }, + "/secured/smelending/process/status": { + "post": { + "tags": [ + "sme-process-controller" + ], + "summary": "Zjistovani stavu aplikace", + "operationId": "confirmOfferUsingPOST_4", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeProcessStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeProcessStatusResponse»" + } + } + } + } + }, + "/secured/smelending/product/config": { + "post": { + "tags": [ + "sme-lending-product-controller" + ], + "summary": "Shrnuti informaci o zadosti", + "operationId": "getConfigUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ConfigRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ConfigResponse»" + } + } + } + } + }, + "/secured/smelending/product/configOffer": { + "post": { + "tags": [ + "sme-lending-product-controller" + ], + "summary": "Shrnuti informaci o zadosti (nezaklada transakci)", + "operationId": "getConfigOfferUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ConfigRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ConfigResponse»" + } + } + } + } + }, + "/secured/smelending/scoring/start": { + "post": { + "tags": [ + "sme-scoring-controller" + ], + "summary": "Oteviraci workflow pro kontrakt pred samotnym score-ingem", + "operationId": "endpointScoringStartUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeScoringStartRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeScoringStartResponse»" + } + } + } + } + }, + "/secured/smelending/scoring/status": { + "post": { + "tags": [ + "sme-scoring-controller" + ], + "summary": "Zjisteni stavu score-ingu. Vysledek [PENDING - opakuj volani, ACCEPTED - ok, DENIED - finalni zamitnuti", + "operationId": "endpointScoringStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PollingResponse»" + } + } + } + } + }, + "/secured/smelending/variant/acceptConditional": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "pouzije podminenou variantu od banky", + "operationId": "acceptConditionalUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeAcceptVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeAcceptVariantResponse»" + } + } + } + } + }, + "/secured/smelending/variant/acceptDefault": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "pouzije vybranou variantu uzivatelem", + "operationId": "confirmOfferUsingPOST_6", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeAcceptVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeAcceptVariantResponse»" + } + } + }, + "deprecated": true + } + }, + "/secured/smelending/variant/acceptSelected": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "pouzije vybranou variantu uzivatelem", + "operationId": "acceptSelectedUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeAcceptVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeAcceptVariantResponse»" + } + } + } + } + }, + "/secured/smelending/variant/creditCard": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "Ziska data podminene creditCard varianty", + "operationId": "getCreditCardUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCreditCardResponse»" + } + } + } + } + }, + "/secured/smelending/variant/express": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "Ziska data podminene express varianty", + "operationId": "getExpressUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeExpressLoanResponse»" + } + } + } + } + }, + "/secured/smelending/variant/flexi": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "Ziska data podminene flexi varianty", + "operationId": "getFlexiUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FlexiVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeFlexiLoanResponse»" + } + } + } + } + }, + "/secured/smelending/variant/status": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "zjisti status variantu", + "operationId": "getStatusUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PollingResponse»" + } + } + } + } + }, + "/secured/smeonboarding/business/additionalinfo": { + "post": { + "tags": [ + "smeonboarding-business-controller" + ], + "summary": "Zaslani dodatecnych informaci o klientu", + "operationId": "consentUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingBusinessAdditionalInfoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingBusinessAdditionalInfoResponse»" + } + } + } + } + }, + "/secured/smeonboarding/business/detail": { + "get": { + "tags": [ + "smeonboarding-business-controller" + ], + "summary": "Dotahne company data o uzivateli z aresu", + "operationId": "detailUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingBusinessDetailResponse text»" + } + } + } + } + }, + "/secured/smeonboarding/business/detail/commit": { + "post": { + "tags": [ + "smeonboarding-business-controller" + ], + "summary": "Uzivatel souhlasi s udajmi ktere byly ziskany k jeho ICO", + "operationId": "commitUsingPOST_8", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingBusinessDetailConfirmationRequest text" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnBoardingBusinessDetailConfirmationResponse text»" + } + } + } + } + }, + "/secured/smeonboarding/campaigns/active": { + "get": { + "tags": [ + "smeonboarding-campaign-controller" + ], + "summary": "Vypis aktivnich kampani", + "operationId": "getActiveUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingActiveCampaignsResponse»" + } + } + } + } + }, + "/secured/smeonboarding/fraud/zenid/upload-sample": { + "post": { + "tags": [ + "smeonboarding-fraud-check-controller" + ], + "summary": "Nahraje obrazek do zenid", + "operationId": "startUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingZenIdUploadSampleRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingZenIdUploadSampleResponse»" + } + } + } + } + }, + "/secured/smeonboarding/identify": { + "post": { + "tags": [ + "smeonboarding-candidate-controller" + ], + "summary": "Validace identifikacniho cisla (ICO) kandidata a ulozeni informaci z ARESu", + "operationId": "identifyUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingCandidateIdentificationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingCandidateIdentificationResponse»" + } + } + } + } + }, + "/secured/smeonboarding/liveness/upload": { + "post": { + "tags": [ + "sme-onboarding-liveness-controller" + ], + "summary": "Nahraje binarni data", + "operationId": "uploadSecuredUsingPOST", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "file", + "in": "formData", + "description": "file", + "required": true, + "type": "file" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingLivenessResponse»" + } + } + } + } + }, + "/secured/smeonboarding/person/contact": { + "get": { + "tags": [ + "smeonboarding-person-controller" + ], + "summary": "Ziskani kontaktnich udaju uzivatele", + "operationId": "getPersonContactUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingContactResponse»" + } + } + } + } + }, + "/secured/smeonboarding/person/contact/address": { + "get": { + "tags": [ + "smeonboarding-person-controller" + ], + "summary": "Ziskani kontaktni adresy uzivatele", + "operationId": "getContactAddressUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingContactAddressResponse»" + } + } + } + } + }, + "/secured/smeonboarding/person/contact/direct-channels": { + "post": { + "tags": [ + "smeonboarding-person-controller" + ], + "summary": "Ulozeni kontaktnich udaju uzivatele", + "operationId": "personContactDataUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingContactDirectChannelsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingContactDirectChannelsResponse»" + } + } + } + } + }, + "/secured/smeonboarding/person/credentials/ib": { + "get": { + "tags": [ + "smeonboarding-person-controller" + ], + "summary": "Ziskani uzivatelskeho jmena do internet banky.", + "operationId": "getUserNameForInternetBankUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingContactUserNameForInternetBankResponse»" + } + } + } + } + }, + "/secured/smeonboarding/person/documents/identitycard": { + "get": { + "tags": [ + "smeonboarding-document-controller" + ], + "summary": "Ziskani dat z OP z OCR.", + "operationId": "getIdentityCardUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingIdentityCardMinedDataResponse»" + } + } + } + }, + "post": { + "tags": [ + "smeonboarding-document-controller" + ], + "summary": "Validace formulare s OP kandidata a ulozeni.", + "operationId": "identifyUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingIdentityCardRequest text" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingIdentityCardResponse»" + } + } + } + } + }, + "/secured/smeonboarding/person/documents/ocr-status": { + "get": { + "tags": [ + "smeonboarding-document-controller" + ], + "summary": "Ziskani stavu zpracovani dokumentu v ZenId.", + "operationId": "statusUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "type", + "in": "query", + "description": "type", + "required": true, + "type": "string", + "enum": [ + "IDENTITY_CARD", + "PASSPORT", + "DRIVING_LICENCE", + "NO_SECONDARY_DOCUMENT" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingZenIdStatusSampleResponse»" + } + } + } + } + }, + "/secured/smeonboarding/person/documents/secondary": { + "post": { + "tags": [ + "smeonboarding-document-controller" + ], + "summary": "Ulozeni druheho dokumentu (pas, ridicak nebo zadny) do DB.", + "operationId": "secondaryUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request pro druhy dokument" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«response pro druhy dokument»" + } + } + } + } + }, + "/secured/smeonboarding/person/documents/secondary/detail": { + "get": { + "tags": [ + "smeonboarding-document-controller" + ], + "summary": "Ziskani dat druheho dokumentu (pas, ridicak nebo zadny) z DB.", + "operationId": "getSecondaryDocumentDetailUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingSecondaryDocMinedDataResponse»" + } + } + } + }, + "post": { + "tags": [ + "smeonboarding-document-controller" + ], + "summary": "Ulozeni druheho dokumentu (pas, ridicak nebo zadny) do DB pro w2w.", + "operationId": "setSecondaryDocumentDetailUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/request pro druhy dokument" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«response pro druhy dokument»" + } + } + } + } + }, + "/secured/smeonboarding/person/documents/upload": { + "post": { + "tags": [ + "smeonboarding-document-controller" + ], + "summary": "Nahrani dokumentu do ZenID", + "operationId": "uploadSampleUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingZenIdUploadSampleRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingZenIdUploadSampleResponse»" + } + } + } + } + }, + "/secured/smeonboarding/person/survey/aml": { + "post": { + "tags": [ + "smeonboarding-person-controller" + ], + "summary": "Ulozeni AML formulare.", + "operationId": "saveAmlSurveyUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingAmlSurveyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingAmlSurveyResponse»" + } + } + } + } + }, + "/secured/smeonboarding/process/leave": { + "post": { + "tags": [ + "smeonboarding-process-controller" + ], + "summary": "Ukoncuje proces", + "operationId": "leaveUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingProcessLeaveRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingProcessLeaveResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/bank-approved": { + "get": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "Informace o produktu uzivatele", + "operationId": "approvedUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingProductInstanceResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/constraints": { + "get": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "Konfigurace kalkulacky pro update produktu", + "operationId": "constraintsUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingConstraintsResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/contract/acceptation": { + "post": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "uzivatel potvrdil smlouvu", + "operationId": "contractAcceptationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingContractAcceptationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingContractAcceptationResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/contract/document": { + "get": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "Nacita dokument smlouvy", + "operationId": "getDocumentUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingPreContractDocumentResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/contract/set-up": { + "post": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "Inicializace generovani dokumentu", + "operationId": "generateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EmptyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/contract/status": { + "get": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "zjistuje stav balickoveho workflow, pro umozneni generovani dokumentu", + "operationId": "workflowStatusUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingContractSetUpResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/documents/pre-contract": { + "get": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "Predsmluvni informace", + "operationId": "getPreContractDocumentUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingPreContractDocumentResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/pre-contract/acceptation": { + "post": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "uzivatel potvrzuje predsmluvni informace", + "operationId": "preContractAcceptationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingPreContractAcceptationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingPreContractAcceptationResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/pre-contract/consents": { + "post": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "Souhlasy s podminkami a dorucovaci adresou pro kreditni kartu", + "operationId": "consentsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingProductInstanceConsentsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingProductInstanceConsentsResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/signature/detail": { + "get": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "zobrazeni detailu k platbe", + "operationId": "getSignatureDetailUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingSignatureDetailResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/update": { + "post": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "Zmena produktove zadosti", + "operationId": "updateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingUpdateExpressProductInstanceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingUpdateExpressProductInstanceResponse»" + } + } + } + } + }, + "/secured/smeonboarding/product-instance/user-confirmed": { + "get": { + "tags": [ + "smeonboarding-product-instance-controller" + ], + "summary": "informace o produktu uzivatele pote, co ho akceptoval", + "operationId": "confirmedUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingProductInstanceResponse»" + } + } + } + } + }, + "/secured/smeonboarding/scoring/start": { + "post": { + "tags": [ + "smeonboarding-scoring-controller" + ], + "summary": "Uvodni volani pro zacati scoringu", + "operationId": "startUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingScoringStartRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingScoringStartResponse»" + } + } + } + } + }, + "/secured/smeonboarding/scoring/status": { + "get": { + "tags": [ + "smeonboarding-scoring-controller" + ], + "summary": "Stav scoringu", + "operationId": "statusUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingScoringPollingResponse»" + } + } + } + } + }, + "/secured/smeonboarding/sms/send": { + "post": { + "tags": [ + "smeonboarding-sms-controller" + ], + "summary": "Posle overovaci sms pro telefonni cislo klienta", + "operationId": "startUsingPOST_4", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingSmsSendRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingSmsSendResponse»" + } + } + } + } + }, + "/secured/smeonboarding/sms/verify": { + "post": { + "tags": [ + "smeonboarding-sms-controller" + ], + "summary": "Overi kod k zaslane smsce", + "operationId": "verifyUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingSmsVerifyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingSmsVerifyResponse»" + } + } + } + } + }, + "/secured/smeonboarding/variant": { + "get": { + "tags": [ + "smeonboarding-variant-controller" + ], + "summary": "Vraci variantu", + "operationId": "personContactDataUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingProductInstanceResponse»" + } + } + } + } + }, + "/secured/statement/detail": { + "post": { + "tags": [ + "statement-controller" + ], + "summary": "Stazeni vypisu uctu v pozadovanem formatu.", + "operationId": "getListGetUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StatementDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StatementDetailResponse»" + } + } + } + } + }, + "/secured/statement/list": { + "post": { + "tags": [ + "statement-controller" + ], + "summary": "Vraci seznam dostupnych vypisu.", + "operationId": "getListUsingPOST_4", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AvailableStatementsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AvailableStatementsResponse»" + } + } + } + } + }, + "/secured/template/create": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Creates user templates.", + "description": "Creates user templates.", + "operationId": "createTemplateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TemplateCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TemplateCreateResponse»" + } + } + } + } + }, + "/secured/template/delete": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Deletes user templates.", + "description": "Deletes user templates.", + "operationId": "deleteTemplateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TemplateDeleteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TemplateDeleteResponse»" + } + } + } + } + }, + "/secured/template/foreign/commit": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Potvrzuje novou nebo upravu existujici sablonu pro zahranicni platby.", + "operationId": "getForeignPaymentTemplateListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CommitForeignPaymentTemplateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CommitForeignPaymentTemplateResponse»" + } + } + } + } + }, + "/secured/template/foreign/delete": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Smaze sablonu pro zahranicni platbu.", + "operationId": "getForeignPaymentTemplateListUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DeleteForeignPaymentTemplateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DeleteForeignPaymentTemplateResponse»" + } + } + } + } + }, + "/secured/template/foreign/list": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Vraci seznam zahranicnich platebnich sablon uzivatele.", + "operationId": "getForeignPaymentTemplateListUsingPOST_4", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TemplateListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ForeignPaymentTemplateListResponse»" + } + } + } + } + }, + "/secured/template/foreign/put": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Validuje novou nebo upravu existujici sablonu pro zahranicni platby.Pokud je validace ok, zalozi transakci a vrati jeji ID.", + "operationId": "getForeignPaymentTemplateListUsingPOST_6", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PutForeignPaymentTemplateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PutForeignPaymentTemplateResponse»" + } + } + } + } + }, + "/secured/template/list": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Returns a list of user templates.", + "description": "Returns a list of user templates.", + "operationId": "getTemplatesListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TemplateListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TemplateListResponse»" + } + } + } + } + }, + "/secured/template/update": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Updates user templates.", + "description": "Updates user templates.", + "operationId": "updateTemplateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TemplateUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TemplateUpdateResponse»" + } + } + } + } + }, + "/secured/transaction/categories": { + "get": { + "tags": [ + "transaction-controller" + ], + "summary": "Nacteni seznamu kategorii transakci klienta.", + "operationId": "getTransactionCategoriesUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionCategoriesResponse»" + } + } + } + } + }, + "/secured/transaction/category/create": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Vytvoreni nove transakcni kategorie.", + "operationId": "createTransactionCategoryUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionCategoryCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionCategoryCreateResponse»" + } + } + } + } + }, + "/secured/transaction/category/delete": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Smazani transakcni kategorie.", + "operationId": "deleteTransactionCategoryUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionCategoryDeleteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/secured/transaction/category/update": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Uprava transakcni kategorie.", + "operationId": "updateTransactionCategoryUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionCategoryUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionCategoryUpdateResponse»" + } + } + } + } + }, + "/secured/ufo/renew-password": { + "post": { + "tags": [ + "ufo-authentication-controller" + ], + "summary": "Nastavi uzivateli nove heslo.", + "operationId": "renewPasswordUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PasswordRenewalRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PasswordRenewalResponse»" + } + } + } + } + }, + "/secured/user/detail": { + "post": { + "tags": [ + "user-controller" + ], + "summary": "Returns user.", + "description": "Returns user detail.", + "operationId": "getDetailUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UserDetailResponse»" + } + } + } + } + }, + "/secured/user/inbox/list": { + "post": { + "tags": [ + "message-controller" + ], + "summary": "Get the list of user's messages.", + "description": "The endpoint returns the list of user's messages.", + "operationId": "getMessageListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MessageListResponse»" + } + } + } + } + }, + "/secured/user/inbox/message/read": { + "post": { + "tags": [ + "message-controller" + ], + "summary": "Sets the message as read.", + "description": "Sets the message as read.", + "operationId": "setMessageReadUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/MessageReadRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MessageReadResponse»" + } + } + } + } + }, + "/secured/user/notification/list": { + "post": { + "tags": [ + "notification-controller" + ], + "summary": "Get the list of user's notifications.", + "description": "The endpoint returns the list of user's notifications.", + "operationId": "getNotificationListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«NotificationListResponse»" + } + } + } + } + }, + "/secured/user/notification/message/read": { + "post": { + "tags": [ + "notification-controller" + ], + "summary": "Sets the notification as read.", + "description": "Sets the notification as read.", + "operationId": "setNotificationReadUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/NotificationReadRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«NotificationReadResponse»" + } + } + } + } + }, + "/secured/user/phonecontact/list": { + "post": { + "tags": [ + "user-controller" + ], + "summary": "Returns user's contact list.", + "description": "Returns user's contact list.", + "operationId": "getPhoneContactListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UserPhoneContactListResponse»" + } + } + } + } + }, + "/secured/user/settings/list": { + "post": { + "tags": [ + "user-controller" + ], + "summary": "List of activated user settings.", + "description": "List of activated user settings.", + "operationId": "endpointUserSettingsListUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UserSettingsListResponse»" + } + } + } + } + }, + "/secured/user/settings/update": { + "post": { + "tags": [ + "user-controller" + ], + "summary": "Updates user settings.", + "description": "Updates user settings.", + "operationId": "endpointUserSettingsUpdateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UserSettingsUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UserSettingsUpdateResponse»" + } + } + } + } + }, + "/secured/user/update": { + "post": { + "tags": [ + "user-controller" + ], + "summary": "Updates user.", + "description": "Updates user.", + "operationId": "updateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UserUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UserUpdateResponse»" + } + } + } + } + }, + "/session/changePin": { + "post": { + "tags": [ + "sb-authentication-controller" + ], + "summary": "Zmena PIN uzivatele.", + "operationId": "changePinUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "X-PowerAuth-Authorization", + "in": "header", + "description": "X-PowerAuth-Authorization", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ObjectResponse«string»" + } + } + } + } + }, + "/session/ib/login": { + "post": { + "tags": [ + "ib-authentication-controller" + ], + "summary": "Prihlasi uzivatele pres jmeno a heslo - Internetbanka", + "description": "Mozne chybove stavy v responseObject.code: cbl.authentication.unknown.expired, cbl.authentication.unknown.blocked, cbl.authentication.unknown.expired.blocked, cbl.authentication.unknown.change (mutna zmena hesla, cbl.authentication.unknown.illegal (spatne heslo), cbl.authentication.unknown.illegal.blocked, cbl.authentication.unknown.error (obecna chyba)", + "operationId": "loginUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "loginRequest", + "description": "loginRequest", + "required": true, + "schema": { + "$ref": "#/definitions/Overeni jmena a hesla uzivatele internet banky" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Overeni jmena a hesla uzivatele internet banky»" + } + } + } + } + }, + "/session/ib/sms/send": { + "post": { + "tags": [ + "ib-authentication-controller" + ], + "summary": "Odeslani overovaci SMS", + "operationId": "endpointSMSSendCertUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SMSSendCertResponse»" + } + } + } + } + }, + "/session/ib/sms/verify": { + "post": { + "tags": [ + "ib-authentication-controller" + ], + "summary": "Odeslani overovaci SMS", + "operationId": "verifySmsUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SMSVerifyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SMSVerifyResponse»" + } + } + } + } + }, + "/session/login": { + "post": { + "tags": [ + "sb-authentication-controller" + ], + "summary": "Prihlasi uzivatele pres id zarizeni a autorizacni hlavicku - Smartbanka", + "operationId": "loginUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "X-PowerAuth-Authorization", + "in": "header", + "description": "X-PowerAuth-Authorization", + "required": false, + "type": "string" + }, + { + "name": "Demo-User", + "in": "header", + "description": "Demo-User", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ObjectResponse«string»" + } + } + } + } + }, + "/session/logout": { + "post": { + "tags": [ + "authentication-controller" + ], + "summary": "Odhlasi uzivatele", + "operationId": "logoutUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ObjectResponse«string»" + } + } + } + } + }, + "/session/prolong": { + "post": { + "tags": [ + "authentication-controller" + ], + "summary": "Prodlouzi session.", + "operationId": "prolongUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ObjectResponse«string»" + } + } + } + } + }, + "/timeout": { + "get": { + "tags": [ + "hello-openapi-controller" + ], + "summary": "Uspi vlakno na dany pocet vterin. Nefunguje na produkci.", + "operationId": "timeoutUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "time", + "in": "query", + "description": "time", + "required": false, + "type": "integer", + "default": 180, + "format": "int32" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + }, + "/unsecured/account/acctypeswitch/commit": { + "post": { + "tags": [ + "acc-type-switch-controller" + ], + "summary": "Podepsani smlouvy.", + "description": "Podepsani smlouvy pro zmenu typu uctu. Ulozeni do DMS. Zahajeni zmeny.", + "operationId": "commitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AccTypeSwitchCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccTypeSwitchCommitResponse»" + } + } + } + } + }, + "/unsecured/account/acctypeswitch/preview": { + "post": { + "tags": [ + "acc-type-switch-controller" + ], + "summary": "Generovani nahledu smluvni dokumentace.", + "description": "Generovani nahledu smluvni dokumentace pro zmenu typu uctu. Vytvoreni dokumentu v docasnem dms ulozisti. Dokument je vracen jako base64 PDF data.", + "operationId": "previewUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AccTypeSwitchPreviewRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccTypeSwitchPreviewResponse»" + } + } + } + } + }, + "/unsecured/account/acctypeswitch/setup": { + "post": { + "tags": [ + "acc-type-switch-controller" + ], + "summary": "Nacteni konfigurace.", + "description": "Textace pro vyhody noveho uctu a podminky.", + "operationId": "getSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AccTypeSwitchSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccTypeSwitchSetupResponse»" + } + } + } + } + }, + "/unsecured/account/additionalAccountInfo": { + "post": { + "tags": [ + "account-controller" + ], + "summary": "Vraci dodatecne informace k danemu uctu klienta.", + "description": "Pro dane ID uctu (accountId) vrati dodatecne informace k danemu uctu.", + "operationId": "getOperationsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/AdditionalAccountInfoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AdditionalAccountInfoResponse»" + } + } + } + } + }, + "/unsecured/account/balance": { + "post": { + "tags": [ + "account-controller" + ], + "summary": "Vraci aktualni zustatky uctu", + "description": "Pro zadany interniId uctu vraci aktualni zustatky - Ucetni zustatek, Disponibilni zustatek, Flexikredit, Schvalena castka uveru, Castka vkladu TV", + "operationId": "getDetailUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/BalanceGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BalanceGetResponse»" + } + } + } + } + }, + "/unsecured/account/customName": { + "post": { + "tags": [ + "account-controller" + ], + "summary": "Zmeni klientsky nazev uctu.", + "operationId": "changeCustomNameUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/ChangeAccountCustomNameRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ChangeAccountCustomNameResponse»" + } + } + } + } + }, + "/unsecured/account/directdebit/create": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Inicializuje vytvoreni noveho inkasa", + "description": "Inicializuje vytvoreni noveho inkasa dle zadaneho requestu.", + "operationId": "createDirectDebitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitCreateResponse»" + } + } + } + } + }, + "/unsecured/account/directdebit/create/commit": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Potvrdi vytvoreni noveho inkasa", + "description": "Potvrdi vytvoreni noveho inkasa dle zadaneho requestu.", + "operationId": "commitCreateDirectDebitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitCreateCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitCreateCommitResponse»" + } + } + } + } + }, + "/unsecured/account/directdebit/delete": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Smaze definovane inkaso/SIPO", + "description": "Smaze definovane inkaso/SIPO pomoci invoiceId.", + "operationId": "deleteInvoiceUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitDeleteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitDeleteResponse»" + } + } + } + } + }, + "/unsecured/account/directdebit/edit": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Inicialiyuje editaci inkasa", + "description": "Inicialiyuje editaci inkasa dle zadaneho requestu.", + "operationId": "editDirectDebitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitEditRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitEditResponse»" + } + } + } + } + }, + "/unsecured/account/directdebit/edit/commit": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Potvrdi editaci inkasa", + "description": "Potvrdi editaci inkasa dle zadaneho requestu.", + "operationId": "commitEditDirectDebitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitEditCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitEditCommitResponse»" + } + } + } + } + }, + "/unsecured/account/directdebit/list": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Vrati uzivatelova inkasa a SIPO", + "description": "Vrati uzivatelova inkasa a SIPO.", + "operationId": "getDirectDebitListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitListResponse»" + } + } + } + } + }, + "/unsecured/account/directdebit/setup": { + "post": { + "tags": [ + "direct-debit-controller" + ], + "summary": "Priprava dat pro zadani inkasa.", + "description": "Nacita info k vytvoreni/editaci inkasa. Vraci nejblizsi platny datum zacatku platnosti inkasa.", + "operationId": "getDirectDebitSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DirectDebitSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DirectDebitSetupResponse»" + } + } + } + } + }, + "/unsecured/account/list": { + "post": { + "tags": [ + "account-controller" + ], + "summary": "Vraci seznam uctu uzivatele", + "description": "Vraci seznam uctu prihlaseneho uzivatele, pokud zadne ucty nejsou dostupne vraci se prazdny seznam. Ucty obsahuji i zustatky a posledni transakce.", + "operationId": "getListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccountListResponse»" + } + } + } + } + }, + "/unsecured/account/operations": { + "post": { + "tags": [ + "account-operations-controller" + ], + "summary": "Vraci dodatecne povolene operace ke vsem uctum klienta.", + "description": "Pro daneho klienta vrati seznam cisel uctu a povolenych dodatecnych operaci na nich. Tato operace muze trvat, proto bylo nacitani dodatecnych operaci vycleneno sem misto toho aby bylo soucasti /account/list", + "operationId": "getOperationsUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/AccountOperationsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AccountOperationsResponse»" + } + } + } + } + }, + "/unsecured/account/operations/single": { + "post": { + "tags": [ + "account-operations-controller" + ], + "summary": "Nacte seznam povolenych operaci k danemu uctu.", + "operationId": "getOperationsForSingleAccountUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/SingleAccountOperationsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SingleAccountOperationsResponse»" + } + } + } + } + }, + "/unsecured/account/payment/delete/list": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Vraci seznam odvolanych plateb.", + "description": "Vraci seznam odvolanych plateb k zadanemu uctu.", + "operationId": "getPaymentDeletedListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentDeleteListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentDeleteListResponse»" + } + } + } + } + }, + "/unsecured/account/payment/list": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Commited payment orders for a given account and transaction filter.", + "description": "Commited payment orders for a given account and transaction filter. Since the list may be very long, client applications must apply paging to the transaction listing.", + "operationId": "getPaymentListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentListResponse»" + } + } + } + } + }, + "/unsecured/account/payment/topup/commit": { + "post": { + "tags": [ + "mobile-top-up-controller" + ], + "summary": "Potvrzeni navyseni mobilniho kreditu.", + "operationId": "mobileTopUpCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/MobileTopUpCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MobileTopUpCommitResponse»" + } + } + } + } + }, + "/unsecured/account/payment/topup/create": { + "post": { + "tags": [ + "mobile-top-up-controller" + ], + "summary": "Priprava navyseni mobilniho kreditu.", + "operationId": "mobileTopUpCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/MobileTopUpCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MobileTopUpCreateResponse»" + } + } + } + } + }, + "/unsecured/account/standingorder/create": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Vytvari trvale prikazy", + "description": "Vytvari trvale prikazy dle zadaneho requestu.", + "operationId": "createStandingOrderUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderCreateResponse»" + } + } + } + } + }, + "/unsecured/account/standingorder/create/commit": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Vytvari trvale prikazy", + "description": "Vztvari trvale prikazy dle zadaneho requestu.", + "operationId": "commitCreateStandingOrderUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderCommitCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderCommitCreateResponse»" + } + } + } + } + }, + "/unsecured/account/standingorder/delete": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Maze trvale prikazy", + "description": "Maze trvale prikazy dle zadaneho id trvale platby.", + "operationId": "deleteStandingOrderUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderDeleteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderDeleteResponse»" + } + } + } + } + }, + "/unsecured/account/standingorder/edit": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Edituje trvale prikazy", + "description": "Edituje trvale prikazy dle zadaneho requestu.", + "operationId": "editStandingOrderUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderEditRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderEditResponse»" + } + } + } + } + }, + "/unsecured/account/standingorder/edit/commit": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Edituje trvale prikazy", + "description": "Edituje trvale prikazy dle zadaneho requestu.", + "operationId": "commitEditStandingOrderUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderCommitEditRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderCommitEditResponse»" + } + } + } + } + }, + "/unsecured/account/standingorder/list": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Vraci seznam trvalych prikazu", + "description": "Vraci seznam trvalych prikazu prihlaseneho uzivatele.", + "operationId": "getStandingOrderListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderListResponse»" + } + } + } + } + }, + "/unsecured/account/standingorder/setup": { + "post": { + "tags": [ + "standing-order-controller" + ], + "summary": "Priprava trvaleho prikazu", + "description": "Nacita info k vytvoreni/editaci trvaleho prikazu", + "operationId": "getStandingOrderSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StandingOrderSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StandingOrderSetupResponse»" + } + } + } + } + }, + "/unsecured/account/switch/available-accounts": { + "get": { + "tags": [ + "switching-controller" + ], + "summary": "Seznam uctu, pro ktere je mozny switching z jine banky", + "operationId": "getAvailableAccountsUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AvailabeAccountsForSwitchingResponse»" + } + } + } + } + }, + "/unsecured/account/switch/contact": { + "post": { + "tags": [ + "switching-controller" + ], + "summary": "Vraci Super kontaktni informace prihlaseneho uzivatele.", + "operationId": "superContactUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SuperContactRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SuperContactResponse»" + } + } + } + } + }, + "/unsecured/account/switch/create": { + "post": { + "tags": [ + "switching-controller" + ], + "summary": "Vytvori PDF zadost na backendu o prevodu bezneho uctu z cizi banky do MMB.", + "description": "Vytvori zadost ve forme PDF z daneho preview requestu.", + "operationId": "getSwitchingCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SwitchingCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ResponseEntity" + } + } + } + } + }, + "/unsecured/account/switch/date/setup": { + "post": { + "tags": [ + "switching-controller" + ], + "summary": "Vraci mozna nastaveni datumu", + "description": "Vraci mozna nastaveni datumu (min, max, holidays) pro Switching.", + "operationId": "setupDateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/SwitchingDateSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SwitchingDateSetupResponse»" + } + } + } + } + }, + "/unsecured/account/switch/preview": { + "post": { + "tags": [ + "switching-controller" + ], + "summary": "Vraci PDF nahled na zadost o prevodu bezneho uctu z cizi banky do MMB.", + "description": "Vytvori zadost ve forme PDF z daneho preview requestu.", + "operationId": "getSwitchingPreviewUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SwitchingPreviewRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ResponseEntity" + } + } + } + } + }, + "/unsecured/account/transaction/category": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Prirazeni/Zmena/Odebrani kategorie ucetni transakci.", + "operationId": "setAccountTransactionCategoryUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionCategoryRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/account/transaction/category/report": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Vraci prehled prijmu nebo vydaju v jednotlivych kategoriich pro zvoleny mesic k zadanemu cislu uctu.", + "operationId": "getTransactionCategoryReportUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "req", + "description": "req", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionCategoryReportRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionCategoryReportResponse»" + } + } + } + } + }, + "/unsecured/account/transaction/last/list": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Transaction history of last few transactions for a given account.", + "description": "Transaction history of last few transactions for a given account.", + "operationId": "getLastListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionListResponse»" + } + } + } + } + }, + "/unsecured/account/transaction/list": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Transaction history for a given account and transaction filter.", + "description": "Transaction history for a given account and transaction filter. Since the list may be very long, client applications must apply paging to the transaction listing.", + "operationId": "getListUsingPOST_7", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionListResponse»" + } + } + } + } + }, + "/unsecured/account/transaction/note": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Prirazeni/Zmena/Odebrani poznamky k ucetni transakci.", + "operationId": "setAccountTransactionNoteUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionNoteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/account/transaction/receipt": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Potvrzeni platby", + "description": "Vraci potvrzeni platby v pdf zakodovanem do base64 stringu.", + "operationId": "transactionReceiptUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionReceiptRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionReceiptRequest»" + } + } + } + } + }, + "/unsecured/account/transaction/report": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Vraci prehled prijmu, vydaju a zustatku pro jednotlive mesice k zadanemu cislu uctu.", + "operationId": "getTransactionReportUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionReportRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionReportResponse»" + } + } + } + } + }, + "/unsecured/acquisition/account": { + "post": { + "tags": [ + "acquisition-controller" + ], + "summary": "Vraci akvizicni ucet klienta", + "description": "Ziskani uctu pro akvizcniho uzivatele, zadajiciho o zrizeni online uctu.", + "operationId": "getAccountUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AcquisitionAccountResponse»" + } + } + } + } + }, + "/unsecured/activation/onbehalf/init": { + "post": { + "tags": [ + "on-behalf-activation-controller" + ], + "summary": "Zahajeni aktivace SB. Vznika transakce v UDEBS, jeji ID je na vystupu tohoto volani spolu s aktivacnim kodem. ID uzivatele za ktereho broker jedna je ocekavano v hlavicce x-onbehalf-userid.", + "operationId": "initActivationUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/OnBehalfInitActivationRequest" + } + }, + { + "name": "x-onbehalf-userid", + "in": "header", + "description": "x-onbehalf-userid", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«OnBehalfInitActivationResponse»" + } + } + } + } + }, + "/unsecured/activation/onbehalf/mobilekey/send": { + "post": { + "tags": [ + "on-behalf-activation-controller" + ], + "summary": "Vyzadani poslani mobilniho klice k overeni aktivace SB.", + "operationId": "sendMobileKeyUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/OnBehalfSendMobileKeyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«OnBehalfSendMobileKeyResponse»" + } + } + } + } + }, + "/unsecured/activation/onbehalf/mobilekey/verify": { + "post": { + "tags": [ + "on-behalf-activation-controller" + ], + "summary": "Overeni mobilniho klice pro aktivaci SB.", + "operationId": "verifyMobileKeyUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/OnBehalfVerifyMobileKeyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«OnBehalfVerifyMobileKeyResponse»" + } + } + } + } + }, + "/unsecured/activation/onbehalf/status": { + "post": { + "tags": [ + "on-behalf-activation-controller" + ], + "summary": "Zjisteni stavu aktivace.", + "operationId": "getActivationStatusUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/OnBehalfGetActivationStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«OnBehalfGetActivationStatusResponse»" + } + } + } + } + }, + "/unsecured/beneplus/balance": { + "post": { + "tags": [ + "bene-plus-controller" + ], + "summary": "Returns Bene+ balance.", + "description": "Returns Bene+ balance.", + "operationId": "endpointBenePlusBalanceUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BenePlusBalanceResponse»" + } + } + } + } + }, + "/unsecured/cache/load": { + "post": { + "tags": [ + "cache-controller" + ], + "summary": "Nacte data z cache podle klice.", + "operationId": "loadUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CacheLoadRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CacheLoadResponse»" + } + } + } + } + }, + "/unsecured/callback": { + "post": { + "tags": [ + "callback-controller" + ], + "summary": "Odesila callback do banky.", + "description": "Odesila callback do banky.", + "operationId": "setCallbackUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CallbackRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CallbackResponse»" + } + } + } + } + }, + "/unsecured/callback/test": { + "post": { + "tags": [ + "callback-controller" + ], + "summary": "Testovaci endpoint", + "operationId": "setCallbackTestUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CallbackRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CallbackResponse»" + } + } + } + } + }, + "/unsecured/card/3dsecure": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci 3D secure info ke karte", + "description": "Vraci 3D secure info ke karte - debetni a kreditni.", + "operationId": "getCard3DSecureInfoUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Card3DSecureInfoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Card3DSecureInfoResponse»" + } + } + } + } + }, + "/unsecured/card/block/create": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Blokuje kartu", + "description": "Blokuje kartu", + "operationId": "blockCardUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardBlockRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardBlockResponse»" + } + } + } + } + }, + "/unsecured/card/block/delete": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Odblokuje kartu", + "description": "Odblokuje kartu", + "operationId": "unblockCardUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardUnblockRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardUnblockResponse»" + } + } + } + } + }, + "/unsecured/card/block/transaction/list": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci seznam blokovanych transakci kreditni karty", + "description": "Vraci seznam blokovanych transakci kreditni karty", + "operationId": "getBlockedTransactionListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardTransactionBlockRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardTransactionBlockResponse»" + } + } + } + } + }, + "/unsecured/card/credit/bonuspackage/get": { + "post": { + "tags": [ + "bonus-package-controller" + ], + "summary": "Zobrazeni aktivniho bonusoveho balicku ke kreditni karte", + "description": "Zobrazeni aktivniho bonusoveho balicku ke kreditni karte", + "operationId": "getActiveCreditCardBonusPackageUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardActiveBonusPackageRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardActiveBonusPackageResponse»" + } + } + } + } + }, + "/unsecured/card/credit/bonuspackage/set": { + "post": { + "tags": [ + "bonus-package-controller" + ], + "summary": "Zmena bonusoveho balicku ke kreditni karte", + "description": "Zmena bonusoveho balicku ke kreditni karte", + "operationId": "changeActiveCreditCardBonusPackageUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardActiveBonusPackageChangeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/card/credit/bonuspackage/setup": { + "post": { + "tags": [ + "bonus-package-controller" + ], + "summary": "Zobrazeni dostupnych bonusovych balicku ke kreditnim kartam", + "description": "Zobrazeni dostupnych bonusovych balicku ke kreditnim kartam", + "operationId": "getCreditCardBonusPackagesSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardAvailableBonusPackagesRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardAvailableBonusPackagesResponse»" + } + } + } + } + }, + "/unsecured/card/credit/transaction/category": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Prirazeni/Zmena/Odebrani kategorie ucetni transakci.", + "operationId": "setCreditCardTransactionCategoryUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardTransactionCategoryRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/card/credit/transaction/list": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci seznam transakci kreditnich karet", + "description": "Vraci seznam transakci kreditnich karet", + "operationId": "getCreditCardTransactionListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardTransactionListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardTransactionListResponse»" + } + } + } + } + }, + "/unsecured/card/credit/transaction/note": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Prirazeni/Zmena/Odebrani poznamky k ucetni transakci.", + "operationId": "setCreditCardTransactionNoteUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionNoteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/card/debit/transaction/list": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci seznam transakci debetnich karet", + "description": "Vraci seznam transakci debetnich karet", + "operationId": "getDebitCardTransactionListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DebitCardTransactionListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DebitCardTransactionListResponse»" + } + } + } + } + }, + "/unsecured/card/digitization/apple/encrypt-paymentdata": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Sifrovani informaci o platebni karte pro Apple Pay.", + "operationId": "encryptPaymentDataForApplePayUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Request na digitilizaci platebni karty" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ApplePayEncryptPaymentDataResponse»" + } + } + } + } + }, + "/unsecured/card/digitization/opc": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "generovani OPC (Opaque Payment Card) podle id karty (z UDEBS db)", + "operationId": "getOpcUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Request na digitilizaci platebni karty" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Odpoved GetOpcRequest s vygenerovanym OPC (Opaque Payment Card)»" + } + } + } + } + }, + "/unsecured/card/digitization/token/block": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Zablokovani konkretniho tokenu konkretni karte.", + "operationId": "blockCardTokenUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardTokenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardTokenResponse»" + } + } + } + } + }, + "/unsecured/card/digitization/token/delete": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Smazani konkretniho tokenu konkretni karte.", + "operationId": "deleteCardTokensUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardTokenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardTokenResponse»" + } + } + } + } + }, + "/unsecured/card/digitization/token/list": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Hledani vsech tokenu k danym kartam", + "operationId": "listCardTokensUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardTokenListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardTokenListResponse»" + } + } + } + } + }, + "/unsecured/card/digitization/token/unblock": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Odblokovani konkretniho tokenu konkretni karte.", + "operationId": "unblockCardTokenUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardTokenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardTokenResponse»" + } + } + } + } + }, + "/unsecured/card/digitization/tokenizationattempt/log": { + "post": { + "tags": [ + "card-digitization-controller" + ], + "summary": "Zalogovani pokusu o tokenizaci karty.", + "operationId": "logCardDigitizationAttemptUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Pozadavek pro zalogovani pokusu o tokenizaci karty" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/card/list": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci seznam platebnich karet", + "description": "Vraci seznam platebnich karet - debetni a kreditni.", + "operationId": "getListUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardListResponse»" + } + } + } + } + }, + "/unsecured/card/logo": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Vraci logo karty v Base64", + "description": "Vraci logo karty v Base64", + "operationId": "getCardLogoUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Requets objekt pro dotazeni loga karty." + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Response objekt pro dotazen i loga karty.»" + } + } + } + } + }, + "/unsecured/card/settings": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Nastavuje parametry karty", + "description": "Nastavuje parametry karty", + "operationId": "settingCardUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardSettingsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardSettingsResponse»" + } + } + } + } + }, + "/unsecured/card/statement/last/repayment": { + "post": { + "tags": [ + "card-controller" + ], + "summary": "Info pro doplaceni posledniho vypisu.", + "operationId": "getRepaymentDetailsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardStatementRepaymentRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardStatementRepaymentResponse»" + } + } + } + } + }, + "/unsecured/cardpayment/commit": { + "post": { + "tags": [ + "card-payment-controller" + ], + "summary": "Potvrzeni zalozeni platby z karet", + "description": "Sluzba podle zadaneho formulare pro platbu z karet a jeho hasha overi platnost udaju, zvaliduje a potvrdi ke zpracovani bankovnymi systemy. Pokud pri validaci dojde k chybam, vraci se zpet puvodni formular doplneny o chybove stavy a hlasky.", + "operationId": "commitUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardPaymentCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardPaymentCommitResponse»" + } + } + } + } + }, + "/unsecured/cardpayment/create": { + "post": { + "tags": [ + "card-payment-controller" + ], + "summary": "Zalozeni zatim nepotvrezene platby z karet", + "description": "Sluzba zvaliduje a pote zalozi novou prozatim nepotvreznou platbu z karet, vygeneruje pro ni jednodznacny hash, podle ktereho nasledne je mozne pres sluzbu cardpayment/commit operaci dokoncit a potvrdit. Pokud pri validaci dojde k chybam, vraci se zpet puvodni formular doplneny o chybove stavy a hlasky.", + "operationId": "createUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CardPaymentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CardPaymentCreateResponse»" + } + } + } + } + }, + "/unsecured/cardpayment/setup": { + "post": { + "tags": [ + "card-payment-controller" + ], + "summary": "Priprava noveho platebniho prikazu z karet", + "description": "Sluzba nacte aktualni udaje pro pripravu formulare na zalozeni jednotlivych druhu platebnich prikazu z karet", + "operationId": "setupUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupResponse»" + } + } + } + } + }, + "/unsecured/codetable/detail": { + "post": { + "tags": [ + "unsecured-codetable-controller" + ], + "summary": "Vraci hodnoty z ciselniku.", + "description": "Vraci hodnoty z ciselniku.", + "operationId": "getValuesUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CodetableValuesRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CodetableValuesResponse»" + } + } + } + } + }, + "/unsecured/codetable/{language}/{codeName}": { + "get": { + "tags": [ + "unsecured-codetable-controller" + ], + "summary": "Vraci hodnoty z ciselniku.", + "description": "Vraci hodnoty z ciselniku.", + "operationId": "getValuesUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "language", + "in": "path", + "description": "jazyk pro preklad textu ciselniku", + "required": true, + "type": "string" + }, + { + "name": "codeName", + "in": "path", + "description": "nazev cislniku", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CodetableValuesResponse»" + } + } + } + } + }, + "/unsecured/consent/form": { + "post": { + "tags": [ + "consent-controller" + ], + "summary": "Nacteni formulare pro udeleni souhlasu.", + "operationId": "getFormUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/GetConsentFormRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«GetConsentFormResponse»" + } + } + } + } + }, + "/unsecured/consent/list": { + "post": { + "tags": [ + "consent-controller" + ], + "summary": "Nacteni klientskych souhlasu.", + "operationId": "listConsentsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ConsentListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ConsentListResponse»" + } + } + } + } + }, + "/unsecured/consent/load101": { + "post": { + "tags": [ + "consent-controller" + ], + "summary": "Vraci, zda klient dal/nedal dany typ souhlasu.", + "description": "Vraci, zda klient dal/nedal dany typ souhlasu.", + "operationId": "load101UsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/LoadConsent101Request" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«LoadConsent101Response»" + } + } + } + } + }, + "/unsecured/consent/save": { + "post": { + "tags": [ + "consent-controller" + ], + "summary": "Ulozeni klientskych souhlasu.", + "operationId": "saveConsentsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ConsentSaveRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ConsentSaveResponse»" + } + } + } + } + }, + "/unsecured/consent/save101": { + "post": { + "tags": [ + "consent-controller" + ], + "summary": "Ulozi, zda klient dal/nedal dany typ souhlasu.", + "description": "Ulozi, zda klient dal/nedal dany typ souhlasu.", + "operationId": "save101UsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SaveConsent101Request" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SaveConsent101Response»" + } + } + } + } + }, + "/unsecured/creditcard/smart/activationcode/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Ulozeni aktivacniho hesla do zadosti o kreditni kartu", + "operationId": "endpointActivationCodeCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardActivationCodeCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardActivationCodeCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/activationcode/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Nacteni aktivacniho hesla z zadosti o kreditni kartu", + "operationId": "endpointActivationCodeSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardActivationCodeSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardActivationCodeSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/billing/parameters/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Uložení způsobu splácení kreditní karty", + "operationId": "endpointCreditCardBillingParametersCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardBillingParametersCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardBillingParametersCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/billing/parameters/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Načtení způsobu splácení kreditní karty", + "operationId": "endpointCreditCardBillingParametersSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardBillingParametersSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardBillingParametersSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/bonuspackage/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni slev ke kreditni karte.", + "operationId": "endpointCreditCardBonusPackageCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardBonusPackageCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardBonusPackageCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/bonuspackage/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni slev ke kreditni karte.", + "operationId": "endpointCreditCardBonusPackageSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardBonusPackageSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardBonusPackageSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/finish/contract/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni smlouvy", + "operationId": "endpointCreditCardFinishContractCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFinishContractCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFinishContractCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/finish/contract/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Načtení smlouvy", + "operationId": "endpointCreditCardFinishContractSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFinishContractSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFinishContractSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/finish/precontract/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni presmluvnich informaci", + "operationId": "endpointCreditCardFinishPrecontractInformationCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFinishPrecontractCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFinishPrecontractCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/finish/precontract/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Načtení predsmluvnich informaci", + "operationId": "endpointCreditCardFinishPrecontractInformationSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFinishPrecontractSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFinishPrecontractSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/finish/sign": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Podepsani klientem.", + "operationId": "endpointCreditCardFinishSignUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFinishSignRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFinishSignResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/limit/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni limitu ke kreditni karte.", + "operationId": "endpointCreditCardLimitCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardLimitCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardLimitCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/limit/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Limit ke kreditni karte.", + "operationId": "endpointCreditCardLimitSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardLimitSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardLimitSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/address/contact/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni kontaktni adresy pro kreditni karte.", + "operationId": "endpointCreditCardPersonalContactAddressCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalContactAddressCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalContactAddressCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/address/contact/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni kontaktni adresy pro kreditni karte.", + "operationId": "endpointCreditCardPersonalContactAddressSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalContactAddressSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalContactAddressSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/address/permanent/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni trvale adresy pro kreditni karte.", + "operationId": "endpointCreditCardPersonalPermanentAddressCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalPermanentAddressCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalPermanentAddressCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/address/permanent/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni trvale adresy pro kreditni karte.", + "operationId": "endpointCreditCardPersonalPermanentAddressSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalPermanentAddressSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalPermanentAddressSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/dependents/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni vyzivovanych osob.", + "operationId": "endpointCreditCardPersonalDependentsCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalDependentsCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalDependentsCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/dependents/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni vyzivovanych osob", + "operationId": "endpointCreditCardPersonalDependentsSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalDependentsSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalDependentsSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/employer/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni udaju o zamestnavateli.", + "operationId": "endpointCreditCardPersonalEmployerCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalEmployerCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalEmployerCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/employer/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni udaju o zamestnavateli.", + "operationId": "endpointCreditCardPersonalEmployerSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalEmployerSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalEmployerSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/household/solvency/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni financni situace domacnosti.", + "operationId": "endpointCreditCardPersonalHouseholdSolvencyCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalHouseholdSolvencyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalHouseholdSolvencyCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/household/solvency/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Nacteni financni situace domacnosti.", + "operationId": "endpointCreditCardPersonalHouseholdSolvencySetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalHouseholdSolvencySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalHouseholdSolvencySetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/incomesource/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni zdroje prijmu.", + "operationId": "endpointCreditCardPersonalIncomeSourceCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalIncomeSourceCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalIncomeSourceCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/incomesource/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Nacteni informaci o zdroji prijmu z referencni zadosti.", + "operationId": "endpointCreditCardPersonalIncomeSourceSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalIncomeSourceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalIncomeSourceSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/kocriteriacheck": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Kontrola KO kriterii", + "operationId": "endpointPersonalCreditCardKOCriteriaCheckUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalKOCriteriaCheckRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalKOCriteriaCheckResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/name/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni jmena majitele karty", + "operationId": "endpointCreditCardPersonalNameCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalNameCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalNameCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/name/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Limit ke kreditni karte.", + "operationId": "endpointCreditCardPersonalNameSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalNameSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalNameSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/scoringinfo/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni dokladu.", + "operationId": "endpointCreditCardScoringInfoCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalScoringInfoCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalScoringInfoCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/scoringinfo/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni dokladu", + "operationId": "endpointCreditCardScoringInfoSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalScoringInfoSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalScoringInfoSetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/solvency/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni financni situace.", + "operationId": "endpointCreditCardPersonalSolvencyCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalSolvencyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalSolvencyCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/personal/solvency/setup": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Dotazeni financni situace.", + "operationId": "endpointCreditCardPersonalSolvencySetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardPersonalSolvencySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardPersonalSolvencySetupResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/request/cancel": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Storno zadosti", + "operationId": "endpointCreditCardRequestCancelUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestCancelRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestCancelResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/request/create": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Vytvoreni zadosti ke kreditni karte", + "operationId": "endpointCreditCardRequestCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestCreateResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/request/detail": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Ziskani detailu zadosti pro odeslani Analytics.", + "operationId": "endpointCreditCardRequestDetailUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestDetailResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/request/scoring/agreement/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Potvrzeni dokladu.", + "operationId": "endpointCreditCardRequestScoringAgreementCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestScoringAgreementCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestScoringAgreementCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/request/scoring/checkresult": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Zjisteni stavu scooringu", + "operationId": "endpointCreditCardRequestScoringCheckUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestScoringCheckResultRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestScoringCheckResultResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/request/scoring/create": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Odeslani zadosti do scooringu", + "operationId": "endpointCreditCardRequestScoringCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestScoringCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestScoringCreateResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/request/scoring/instalmentconfirmation/commit": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Ulozeni potvrzeni schopnosti splacet", + "operationId": "endpointCreditCardRequestScoringInstallmentConfirmationCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardRequestScoringInstallmentConfirmationCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardRequestScoringInstallmentConfirmationCommitResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/request/state": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Nacteni stavu nejaktualnejsi zadosti o kreditni kartu.", + "operationId": "endpointCreditCardGetApplicationStateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardGetApplicationStateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardGetApplicationStateResponse»" + } + } + } + } + }, + "/unsecured/creditcard/smart/salespoint/product/list": { + "post": { + "tags": [ + "credit-card-controller" + ], + "summary": "Salespoint - docasny endpoint pro vstup do kreditnich karet. Bude nahrazen cross-produktovym resenim.", + "operationId": "endpointCreditCardSalesPointProductListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardSalesPointProductListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardSalesPointProductListResponse»" + } + } + } + } + }, + "/unsecured/document/get": { + "post": { + "tags": [ + "document-controller" + ], + "summary": "Vraci stazeny dokument z DMS.", + "description": "Vraci stazeny dokument z DMS.", + "operationId": "endpointDocumentGetUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DocumentGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DocumentGetResponse»" + } + } + } + } + }, + "/unsecured/document/list": { + "post": { + "tags": [ + "document-controller" + ], + "summary": "Vraci seznam dokumentu klienta.", + "description": "Vraci seznam dokumentu klienta.", + "operationId": "endpointDocumentListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DocumentListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DocumentListResponse»" + } + } + } + } + }, + "/unsecured/document/read/commit": { + "post": { + "tags": [ + "document-controller" + ], + "summary": "Oznaceni dokumentu jako precteny.", + "description": "Oznaceni dokumentu jako precteny.", + "operationId": "endpointDocumentReadCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DocumentReadCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DocumentReadCommitResponse»" + } + } + } + } + }, + "/unsecured/eauto/login": { + "post": { + "tags": [ + "e-auto-controller" + ], + "summary": "Returns EAutologin.", + "description": "Returns contract flag and login hash.", + "operationId": "getEAutoLoginUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EAutoLoginResponse»" + } + } + } + } + }, + "/unsecured/exchangerate/list": { + "post": { + "tags": [ + "exchange-rate-controller" + ], + "summary": "Vraci kurzovni listek", + "description": "Vraci kurzovni listek", + "operationId": "getExchangeRatesUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExchangeRateListResponse»" + } + } + } + } + }, + "/unsecured/exchangerate/tellerfees/list": { + "get": { + "tags": [ + "exchange-rate-controller" + ], + "summary": "Vraci smenarenske poplatky.", + "operationId": "getTellerFeesUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TellerFeesResponse»" + } + } + } + } + }, + "/unsecured/fxmoney/access": { + "post": { + "tags": [ + "fx-money-controller" + ], + "summary": "Vraci chybu, pokud klient nemuze do FXMoney a obchodni podminky FXMoney, pokud klient podepsal jiz neaktualni.", + "description": "Vraci chybu, pokud klient nemuze do FXMoney a obchodni podminky FXMoney, pokud klient podepsal jiz neaktualni.", + "operationId": "endpointFXMoneyAccessUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FXMoneyAccessRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«FXMoneyAccessResponse»" + } + } + } + } + }, + "/unsecured/fxmoney/commit": { + "post": { + "tags": [ + "fx-money-controller" + ], + "summary": "Provede FX prevod.", + "description": "Provede FX prevod.", + "operationId": "endpointFXMoneyCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FXMoneyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«FXMoneyCommitResponse»" + } + } + } + } + }, + "/unsecured/fxmoney/productconditions/commit": { + "post": { + "tags": [ + "fx-money-controller" + ], + "summary": "Provede ulozeni produktovych podminek k FXMoney do DMS.", + "description": "Provede ulozeni produktovych podminek k FXMoney do DMS.", + "operationId": "endpointFXMoneyCommitProductConditionsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FXMoneyProductConditionsCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«FXMoneyProductConditionsCommitResponse»" + } + } + } + } + }, + "/unsecured/fxmoney/setup": { + "post": { + "tags": [ + "fx-money-controller" + ], + "summary": "Vraci kurz prevodu FX Money.", + "description": "Vraci kurz prevodu FX Money.", + "operationId": "endpointFXMoneySetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FXMoneySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«FXMoneySetupResponse»" + } + } + } + } + }, + "/unsecured/fxmoney/transaction-rate": { + "post": { + "tags": [ + "fx-money-controller" + ], + "summary": "Vraci vypocitany kurz pro pozadovanou zahranicni transakci. Vypocet zohlednuje, jestli ma klient VIP status.", + "operationId": "getExchangeRatesUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionExchangeRateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionExchangeRateResponse»" + } + } + } + } + }, + "/unsecured/how-to/search": { + "post": { + "tags": [ + "how-to-controller" + ], + "summary": "Vyhledavani 'Co SmartBanka umi?'.", + "operationId": "searchUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/HowToSearchRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«HowToSearchResponse»" + } + } + } + } + }, + "/unsecured/how-to/topic/{code}": { + "get": { + "tags": [ + "how-to-controller" + ], + "summary": "Detail tematu 'Co SmartBanka umi?'.", + "operationId": "getTopicUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "code", + "in": "path", + "description": "Unikatni identifikator, code z /how-to/topics.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«HowToTopicDetail»" + } + } + } + } + }, + "/unsecured/how-to/topics": { + "get": { + "tags": [ + "how-to-controller" + ], + "summary": "Seznam temat 'Co SmartBanka umi?'.", + "operationId": "getTopicsUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«HowToTopicsResponse»" + } + } + } + } + }, + "/unsecured/infoservice/products/list": { + "post": { + "tags": [ + "info-service-controller" + ], + "summary": "Vraci seznam idcek karet a uctu, u kterych lze nastaveni konfigurovat.", + "operationId": "getProductsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InfoServiceProductsListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InfoServiceProductsListResponse»" + } + } + } + } + }, + "/unsecured/infoservice/settings/list": { + "post": { + "tags": [ + "info-service-controller" + ], + "summary": "Vraci aktualni nastaveni notifikaci pro zvoleny produkt, ktere je mozne upravit.", + "operationId": "getSettingsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InfoServiceSettingsListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InfoServiceSettingsListResponse»" + } + } + } + } + }, + "/unsecured/infoservice/settings/update": { + "post": { + "tags": [ + "info-service-controller" + ], + "summary": "Zmena nastaveni notifikaci pro zvoleny produkt.", + "operationId": "updateSettingsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InfoServiceSettingsUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InfoServiceSettingsUpdateResponse»" + } + } + } + } + }, + "/unsecured/insurance/accounts/list": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Nacteni bankovnich uctu klienta, k nimz lze navazat poplatkovani pro dane pojisteni a mohou byt nabizeny jako nosny produkt pro zvolene pojisteni dle NAS parametrizace.", + "description": "Nacteni bankovnich uctu klienta, k nimz lze navazat poplatkovani pro dane pojisteni a mohou byt nabizeny jako nosny produkt pro zvolene pojisteni dle NAS parametrizace.", + "operationId": "endpointInsuranceAccountListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceAvailableAccountsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceAvailableAccountsResponse»" + } + } + } + } + }, + "/unsecured/insurance/appointment/create": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Sjednani schuzky k pojisteni.", + "description": "Sjednani schuzky k pojisteni.", + "operationId": "endpointInsuranceAppointmentCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceAppointmentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceAppointmentCreateResponse»" + } + } + } + } + }, + "/unsecured/insurance/commit": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Zalozeni pojisteni", + "description": "Pinem autorizovane sjednani pojisteni.", + "operationId": "endpointInsuranceCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceCommitResponse»" + } + } + } + } + }, + "/unsecured/insurance/creditCard/found": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Sjednani pojisteni kreditni karty.", + "description": "Sjednani pojisteni kreditni karty.", + "operationId": "endpointCreditCardFoundUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardFoundRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CreditCardFoundResponse»" + } + } + } + } + }, + "/unsecured/insurance/document/list": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Seznam dokumentu k sjednanemu pojisteni.", + "description": "Seznam dokumentu k sjednanemu pojisteni.", + "operationId": "endpointInsuranceDocumentListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceDocumentListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceDocumentListResponse»" + } + } + } + } + }, + "/unsecured/insurance/list": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Seznam pojisteni a nabidek pojisteni.", + "description": "Seznam pojisteni a nabidek pojisteni.", + "operationId": "endpointInsuranceListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceListResponse»" + } + } + } + } + }, + "/unsecured/insurance/price/calculate": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Vypocet ceny cestovniho pojisteni.", + "description": "Vypocet ceny cestovniho pojisteni.", + "operationId": "endpointInsuranceCalculationUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceCalculationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceCalculationResponse»" + } + } + } + } + }, + "/unsecured/insurance/setup": { + "post": { + "tags": [ + "insurance-controller" + ], + "summary": "Dotazeni textaci a dokumentu k sjednani pojisteni.", + "description": "Dotazeni textaci a dokumentu k sjednani pojisteni.", + "operationId": "endpointInsuranceSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceSetupResponse»" + } + } + } + } + }, + "/unsecured/investment/chart": { + "post": { + "tags": [ + "investment-controller" + ], + "summary": "Investicni graf.", + "operationId": "getInvestmentChartUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InvestmentChartRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InvestmentChartResponse»" + } + } + } + } + }, + "/unsecured/investment/list": { + "post": { + "tags": [ + "investment-controller" + ], + "summary": "Seznam investic.", + "operationId": "getInvestmentListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InvestmentListResponse»" + } + } + } + } + }, + "/unsecured/journal/create": { + "post": { + "tags": [ + "journal-controller" + ], + "summary": "Zalogovani udalosti z klientske aplikace", + "operationId": "createJournalEventUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/JournalEventRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«JournalEventResponse»" + } + } + } + } + }, + "/unsecured/loan/list": { + "post": { + "tags": [ + "loan-controller" + ], + "summary": "Vrati uzivatelovy uvery", + "description": "Vrati uzivatelovy uvery.", + "operationId": "getLoanListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«LoanListResponse»" + } + } + } + } + }, + "/unsecured/log/create": { + "post": { + "tags": [ + "unsecured-log-controller" + ], + "summary": "Zalogovani udalosti z klientske aplikace", + "operationId": "createLogEventUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/LogEventRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«LogEventResponse»" + } + } + } + } + }, + "/unsecured/maintenance/version": { + "post": { + "tags": [ + "maintenance-controller" + ], + "summary": "Sluzba pro kontrolu verze aplikace uzivatele", + "description": "Sluzba pro kontrolu verze aplikace uzivatele", + "operationId": "endpointMaintenanceVersionUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«VersionCheckResponse»" + } + } + } + } + }, + "/unsecured/mgm/referral": { + "post": { + "tags": [ + "mgm-controller" + ], + "summary": "Vrati 'referral' code prihlaseneho uzivatele (zatim je to CIF).", + "operationId": "getReferralUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MgmReferralResponse»" + } + } + } + } + }, + "/unsecured/mortgage/list": { + "post": { + "tags": [ + "mortgage-controller" + ], + "summary": "Seznam hypotek.", + "description": "Seznam hypotek.", + "operationId": "endpointMortgageListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MortgageListResponse»" + } + } + } + } + }, + "/unsecured/passkit/insurance": { + "post": { + "tags": [ + "pass-kit-controller" + ], + "summary": "Vraci unikatni idcko a URL passu pro pojisteni.", + "operationId": "getInsurancePassUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/Request pro ziskani IDcka a URL passu pro pojisteni." + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Response s IDckem a URL passu pro pojisteni.»" + } + } + } + } + }, + "/unsecured/payment/commit": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Potvrzeni zalozeni platby", + "description": "Sluzba podle zadaneho formulare pro platbu a jeho hasha overi platnost udaju, zvaliduje a potvrdi ke zpracovani bankovnymi systemy. Pokud pri validaci dojde k chybam, vraci se zpet puvodni formular doplneny o chybove stavy a hlasky.", + "operationId": "commitUsingPOST_7", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentCommitResponse»" + } + } + } + } + }, + "/unsecured/payment/create": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Zalozeni zatim nepotvrezene platby", + "description": "Sluzba zvaliduje a pote zalozi novou prozatim nepotvreznou platbu, vygeneruje pro ni jednodznacny hash, podle ktereho nasledne je mozne pres sluzbu payment/commit operaci dokoncit a potvrdit. Pokud pri validaci dojde k chybam, vraci se zpet puvodni formular doplneny o chybove stavy a hlasky.", + "operationId": "createUsingPOST_6", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentCreateResponse»" + } + } + } + } + }, + "/unsecured/payment/delete": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Odvolani platby", + "description": "Provede odvolani budouci platby.", + "operationId": "paymentDeleteUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentDeleteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentDeleteResponse»" + } + } + } + } + }, + "/unsecured/payment/foreign/foreign-order/commit": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Podepsani a odeslani pozadavku na SEPA platbu.", + "operationId": "sepaCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ForeignOrderCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ForeignOrderCommitResponse»" + } + } + } + } + }, + "/unsecured/payment/foreign/foreign-order/create": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Zadani pozadavku na novy zahranicni platebni prikaz.", + "operationId": "createForeignOrderUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ForeignOrderCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ForeignOrderCreateResponse»" + } + } + } + } + }, + "/unsecured/payment/foreign/foreign-order/setup": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Priprava pro zadani pozadavku na novy zahranicni platebni prikaz.", + "operationId": "setUpForeignOrderUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ForeignOrderSetupResponse»" + } + } + } + } + }, + "/unsecured/payment/foreign/iban/check": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Zjisteni informaci o bance podle IBANu.", + "operationId": "ibanCheckUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/IbanCheckRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«IbanCheckResponse»" + } + } + } + } + }, + "/unsecured/payment/foreign/intra-bank/account/detail": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Priprava pro zadani pozadavku na cizomenovou platbu v ramci Monety.", + "operationId": "getIntraBankAccountDetailUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/IntraBankAccountDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«IntraBankAccountDetailResponse»" + } + } + } + } + }, + "/unsecured/payment/foreign/intra-bank/commit": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Podepsani a odeslani pozadavku na cizomenovou platbu v ramci Monety.", + "operationId": "commitIntraBankPaymentUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/IntraBankPaymentCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«IntraBankPaymentCommitResponse»" + } + } + } + } + }, + "/unsecured/payment/foreign/intra-bank/create": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Zadani pozadavku na cizomenovou platbu v ramci Monety.", + "operationId": "createIntraBankPaymentUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/IntraBankPaymentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«IntraBankPaymentCreateResponse»" + } + } + } + } + }, + "/unsecured/payment/foreign/sepa/commit": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Potvrzeni zalozeni SEPA platby", + "description": "Sluzba podle zadaneho formulare pro platbu a jeho hash overi platnost udaju, zvaliduje a potvrdi ke zpracovani bankovnymi systemy.", + "operationId": "commitUsingPOST_5", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SepaPaymentCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SepaPaymentCommitResponse»" + } + } + } + } + }, + "/unsecured/payment/foreign/sepa/create": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Zalozeni zatim nepotvrezene SEPA platby", + "description": "Sluzba zvaliduje a pote zalozi novou prozatim nepotvreznou SEPA platbu, vygeneruje pro ni jednodznacny hash, podle ktereho nasledne je mozne pres sluzbu payment/foreign/sepa/commit operaci dokoncit a potvrdit. Pokud pri validaci dojde k chybam, vraci se zpet puvodni formular doplneny o chybove stavy a hlasky.", + "operationId": "createUsingPOST_4", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SepaPaymentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SepaPaymentCreateResponse»" + } + } + } + } + }, + "/unsecured/payment/foreign/sepa/setup": { + "post": { + "tags": [ + "foreign-payment-controller" + ], + "summary": "Priprava noveho SEPA platebniho prikazu", + "description": "Sluzba nacte aktualni udaje pro pripravu formulare na zalozeni jednotlivych druhu platebnich prikazu", + "operationId": "setupUsingPOST_4", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SepaPaymentSetupResponse»" + } + } + } + } + }, + "/unsecured/payment/setup": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Priprava noveho platebniho prikazu", + "description": "Sluzba nacte aktualni udaje pro pripravu formulare na zalozeni jednotlivych druhu platebnich prikazu", + "operationId": "setupUsingPOST_6", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupResponse»" + } + } + } + } + }, + "/unsecured/payment/setup/bank/list": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Vraci seznam bank", + "description": "Vraci seznam bank s jejich zakladnimi informacemi jako je kod banky nebo jmeno banky.", + "operationId": "setupBankListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupBankListResponse»" + } + } + } + } + }, + "/unsecured/payment/setup/duedate/list": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Vraci seznam pracovni dni", + "description": "Vraci seznam pracovnich dni, ve kterych je mozne zadavat platby.", + "operationId": "setupDueDateListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentSetupDueDateListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupDueDateListResponse»" + } + } + } + } + }, + "/unsecured/payment/setup/holiday/list": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Vraci seznam svatku", + "description": "Vraci seznam svatku, dnu ve kterych neni mozne zadavat platby", + "operationId": "setupHolidayListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentSetupHolidayListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupHolidayListResponse»" + } + } + } + } + }, + "/unsecured/payment/setup/recipient/list": { + "post": { + "tags": [ + "payment-controller" + ], + "summary": "Seznam navrhovanych uctu pro odeslani platby dle drive zadanych prikazu", + "operationId": "setupRecipientAccountListHintUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PaymentSetupRecipientListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PaymentSetupRecipientListResponse»" + } + } + } + } + }, + "/unsecured/pointofinterest/address/validity": { + "post": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Overeni adresy, zda je platna.", + "description": "Overeni adresy, zda je platna.", + "operationId": "isAddressValidUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PointOfInterestAddressValidityRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PointOfInterestAddressValidityResponse»" + } + } + } + } + }, + "/unsecured/pointofinterest/consultants/{area}": { + "get": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Vraci seznam konzultantu pro definovanou oblast.", + "description": "Vraci seznam konzultantu pro definovanou oblast.", + "operationId": "getConsultantsForAreaCodeUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "area", + "in": "path", + "description": "Kod oblasti.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ConsultantsResponse»" + } + } + } + } + }, + "/unsecured/pointofinterest/detail/{id}": { + "get": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Vraci detail bodu zajmu.", + "operationId": "getPointOfInterestDetailUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Id bodu zajmu", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PointOfInterestDetailResponse»" + } + } + } + } + }, + "/unsecured/pointofinterest/distance": { + "post": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Vraci dobu presunu k bodu zajmu", + "description": "Vraci dobu presunu k bodu zajmu", + "operationId": "getPointsOfInterestDistanceUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PointOfInterestDistanceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PointOfInterestDistanceResponse»" + } + } + } + } + }, + "/unsecured/pointofinterest/list": { + "get": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Vraci seznam bodu zajmu, ktery muze byt filtrovany podle data posledni zmeny, typu, apod. Vracene vysledky mohou byt cachovany pomoci HTTP cachovani (viz. NWP-580), coz POST metoda neumoznuje", + "operationId": "getPointsOfInterestUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "dateOfChange", + "in": "query", + "description": "Minimalni datum posledni zmeny zaznamu", + "required": false, + "type": "string", + "format": "date-time" + }, + { + "name": "type", + "in": "query", + "description": "Typ bodu zajmu", + "required": false, + "type": "string", + "enum": [ + "ATM", + "BRANCH", + "ATMBRANCH" + ] + }, + { + "name": "state", + "in": "query", + "description": "Stav bodu zajmu", + "required": false, + "type": "string", + "enum": [ + "ACTIVE", + "NONACTIVE" + ] + }, + { + "name": "selectedCurrencies", + "in": "query", + "description": "Filtruj s vybranymi menami", + "required": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PointOfInterestListResponse»" + } + } + } + }, + "post": { + "tags": [ + "point-of-interest-controller" + ], + "summary": "Vraci seznam bodu zajmu filtrovatelny podle typu, stavu, atd.", + "operationId": "getPointsOfInterestUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PointOfInterestListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PointOfInterestListResponse»" + } + } + } + } + }, + "/unsecured/portal/car/calculator/calculation": { + "get": { + "tags": [ + "car-calculator-controller" + ], + "summary": "Vraci vypocet pro auto kalkulacku.", + "description": "GET varianta endpointu umoznuje vyuziti HTTP cachovani.", + "operationId": "endpointCarCalculatorCalculationUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "carPrice", + "in": "query", + "description": "Cena auta vcetne DPH.", + "required": false, + "type": "number" + }, + { + "name": "advancePayment", + "in": "query", + "description": "Platba predem.", + "required": false, + "type": "number" + }, + { + "name": "instalmentCount", + "in": "query", + "description": "Celociselny pocet spolatek.", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CarCalculatorCalculationResponse»" + } + } + } + } + }, + "/unsecured/portal/car/calculator/setup": { + "get": { + "tags": [ + "car-calculator-controller" + ], + "summary": "Ziska parametry produktu pro portalovou auto kalkulacku.", + "description": "GET varianta endpointu umoznuje vyuziti HTTP cachovani.", + "operationId": "endpointCarCalculatorSetupUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CarCalculatorSetupResponse»" + } + } + } + } + }, + "/unsecured/portal/car/vin/information": { + "get": { + "tags": [ + "car-vin-controller" + ], + "summary": "Vraci informace o vozidle dle VINu.", + "description": "GET varianta endpointu umoznuje vyuziti HTTP cachovani.", + "operationId": "endpointCarVinInformationUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "vin", + "in": "query", + "description": "VIN kod vozidla.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CarVinInformationResponse»" + } + } + } + } + }, + "/unsecured/portal/contact/appointment/create": { + "post": { + "tags": [ + "appointment-controller" + ], + "summary": "Vytvori zadost o schuzku na pobocce", + "operationId": "endpointCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/AppointmentCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AppointmentCreateResponse»" + } + } + } + } + }, + "/unsecured/portal/contact/telephone/create": { + "post": { + "tags": [ + "telephone-contact-controller" + ], + "summary": "Vytvori zadost s telefonnym kontaktom - zavolejte mi zpet.", + "operationId": "endpointTelephoneContactCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/TelephoneContactCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TelephoneContactCreateResponse»" + } + } + } + } + }, + "/unsecured/portal/contact/telephone/setup": { + "post": { + "tags": [ + "telephone-contact-controller" + ], + "summary": "Ziska inicialni parametry pro zanechani kontaktu.", + "operationId": "endpointTelephoneContactSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/TelephoneContactSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TelephoneContactSetupResponse»" + } + } + } + } + }, + "/unsecured/portal/contactform/complaint/create": { + "post": { + "tags": [ + "portal-contact-form-controller" + ], + "summary": "Vytvori stiznost/reklamaci.", + "operationId": "endpointContactHelpCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/PortalContactComplaintCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PortalContactComplaintCreateResponse»" + } + } + } + } + }, + "/unsecured/portal/contactform/email/send": { + "post": { + "tags": [ + "portal-contact-form-controller" + ], + "summary": "Odesle kontaktni email do banky.", + "operationId": "endpointEmailSendUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/PortalContactEmailSendRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PortalContactComplaintCreateResponse»" + } + } + } + } + }, + "/unsecured/portal/contactform/help/create": { + "post": { + "tags": [ + "portal-contact-form-controller" + ], + "summary": "Vytvori potrebuju poradit.", + "operationId": "endpointContactHelpCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/PortalContactHelpCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PortalContactHelpCreateResponse»" + } + } + } + } + }, + "/unsecured/portal/contactform/ombudsman/create": { + "post": { + "tags": [ + "portal-contact-form-controller" + ], + "summary": "Vytvori dotaz na ombudsmana.", + "operationId": "endpointContactHelpCreateUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/PortalContactOmbudsmanCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PortalContactOmbudsmanCreateResponse»" + } + } + } + } + }, + "/unsecured/portal/feedback/create": { + "post": { + "tags": [ + "portal-feedback-controller" + ], + "summary": "Vytvori pochvalu alebo navrh na zlepseni.", + "operationId": "endpointFlexiCalculatorCalculationUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/PortalFeedbackCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PortalFeedbackCreateResponse»" + } + } + } + } + }, + "/unsecured/portal/insured/event/report": { + "post": { + "tags": [ + "insured-event-controller" + ], + "summary": "Ulozi hlaseni pojistne udalosti.", + "operationId": "endpointInsuredEventReportUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceEventReportRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InsuranceEventReportResponse»" + } + } + } + } + }, + "/unsecured/portal/investment/chart": { + "get": { + "tags": [ + "portal-investment-controller" + ], + "summary": "Vraci body pro graf vyvoje fondu.", + "description": "GET varianta endpointu umoznuje vyuziti HTTP cachovani.", + "operationId": "endpointInvestmentChartGetMethodUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "isin", + "in": "query", + "description": "Isin.", + "required": false, + "type": "string" + }, + { + "name": "frequency", + "in": "query", + "description": "Frekvence.", + "required": false, + "type": "string" + }, + { + "name": "periodFrom", + "in": "query", + "description": "Datum od.", + "required": false, + "type": "string", + "format": "date-time" + }, + { + "name": "periodTo", + "in": "query", + "description": "Datum do.", + "required": false, + "type": "string", + "format": "date-time" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InvestmentChartUniversalResponse»" + } + } + } + } + }, + "/unsecured/portal/investment/fund/comparison": { + "get": { + "tags": [ + "portal-investment-controller" + ], + "summary": "Vraci informace pro srovnani fondu.", + "operationId": "endpointInvestmentFundComparationGetMethodUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "riskLevel", + "in": "query", + "description": "riskLevel", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi" + }, + { + "name": "adequateFunds", + "in": "query", + "description": "adequateFunds", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InvestmentFundComparisonResponse»" + } + } + } + } + }, + "/unsecured/portal/investment/fund/detail": { + "get": { + "tags": [ + "portal-investment-controller" + ], + "summary": "Vraci detailni informace pro dane fond.", + "operationId": "endpointInvestmentFundDetailGetMethodUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "isin", + "in": "query", + "description": "Isin.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InvestmentFundDetailResponse»" + } + } + } + } + }, + "/unsecured/portal/investment/productivity": { + "get": { + "tags": [ + "portal-investment-controller" + ], + "summary": "Vraci informace o produktivite fondu.", + "description": "GET varianta endpointu umoznuje vyuziti HTTP cachovani.", + "operationId": "endpointInvestmentProductivityGetMethodUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "isin", + "in": "query", + "description": "Isin.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InvestmentProductivityResponse»" + } + } + } + } + }, + "/unsecured/portal/investment/return": { + "get": { + "tags": [ + "portal-investment-controller" + ], + "summary": "Vraci informace o navratnosti investice.", + "operationId": "endpointInvestmentReturnGetMethodUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "term", + "in": "query", + "description": "Doba investice.", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "riskLevel", + "in": "query", + "description": "Stupen rizika a vynosu.", + "required": false, + "type": "string" + }, + { + "name": "monthlyInvestment", + "in": "query", + "description": "Pravidelna investice (mesicni).", + "required": false, + "type": "number", + "format": "double" + }, + { + "name": "initialInvestment", + "in": "query", + "description": "Pocatecni investice.", + "required": false, + "type": "number", + "format": "double" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«InvestmentReturnResponse»" + } + } + } + } + }, + "/unsecured/portal/leasing/funding-offer/create": { + "post": { + "tags": [ + "funding-offer-controller" + ], + "summary": "Vytvori zadost o nabidku financovani.", + "operationId": "endpointFundingOfferCreateUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/FundingOfferRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«FundingOfferResponse»" + } + } + } + } + }, + "/unsecured/portal/mortgage/calculator/flexi/calculation": { + "post": { + "tags": [ + "mortgage-calculator-controller" + ], + "summary": "Vraci vypocet pro pruzni hypotecni kalkulacku.", + "operationId": "endpointFlexiCalculatorCalculationUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/MortgageCalculatorCalculationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MortgageCalculatorCalculationResponse»" + } + } + } + } + }, + "/unsecured/portal/mortgage/calculator/flexi/setup": { + "post": { + "tags": [ + "mortgage-calculator-controller" + ], + "summary": "Ziska parametry produktu pro portalovou pruznou hypotecni kalkulacku.", + "operationId": "endpointFlexiCalculatorSetupUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/EmptyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MortgageCalculatorSetupResponse»" + } + } + } + } + }, + "/unsecured/portal/ploan/calculator/calculate": { + "post": { + "tags": [ + "portal-p-loan-calculator-controller" + ], + "summary": "Vraci vypocet kalkulatoru pro vybrane typy pujcek (pro neprihlaseneho uzivatele)", + "description": "Validni hranice vstupnich dat lze ziskat volanim endpointu /portal/ploan/calculator/setup", + "operationId": "endpointCalculateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/PortalPLoanCalculatorCalculationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PortalPLoanCalculatorCalculationResponse»" + } + } + } + } + }, + "/unsecured/portal/ploan/calculator/setup": { + "post": { + "tags": [ + "portal-p-loan-calculator-controller" + ], + "summary": "Vraci parametry kalkulatoru pro vybrane typy osobnich pujcek (pro neprihlaseneho uzivatele)", + "operationId": "endpointSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/CommonLoanCalculatorSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CommonLoanCalculatorSetupResponse»" + } + } + } + } + }, + "/unsecured/portal/smelending/calculator/calculate": { + "post": { + "tags": [ + "portal-sme-lending-calculator-controller" + ], + "summary": "Vraci vypocet kalkulatoru pro vybrane typy pujcek (pro neprihlaseneho uzivatele)", + "description": "Validni hranice vstupnich dat lze ziskat volanim endpointu /portal/smelending/calculator/setup", + "operationId": "endpointCalculateUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/PortalSmeLendingCalculatorCalculationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PortalSmeLendingCalculatorCalculationResponse»" + } + } + } + } + }, + "/unsecured/portal/smelending/calculator/setup": { + "post": { + "tags": [ + "portal-sme-lending-calculator-controller" + ], + "summary": "Vraci parametry kalkulatoru pro vybrane typy osobnich pujcek (pro neprihlaseneho uzivatele)", + "operationId": "endpointSetupUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/CommonLoanCalculatorSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CommonLoanCalculatorSetupResponse»" + } + } + } + } + }, + "/unsecured/portal/smeonboarding/appointment/create": { + "post": { + "tags": [ + "smeonboarding-appointment-controller" + ], + "summary": "Vytvori schuzku", + "operationId": "startUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingAppointmentRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingAppointmentResponse»" + } + } + } + } + }, + "/unsecured/psd/airbank/callback": { + "get": { + "tags": [ + "air-bank-controller" + ], + "summary": "Callback for AirBank access registration, it is called by AirBank IB Login page after successful login.", + "description": "Registers an access to Fio account.", + "operationId": "registerUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "code", + "in": "query", + "description": "code", + "required": true, + "type": "string" + }, + { + "name": "state", + "in": "query", + "description": "state", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RedirectView" + } + } + } + } + }, + "/unsecured/psd/bankapi/account/{accountid}/transactions": { + "post": { + "tags": [ + "bank-api-controller" + ], + "summary": "Get list of transactions on an account", + "description": "Returns transactions according to given account IBAN and paging/sorting parameters. Note: This endpoint may not return all transactions. It can be e.g. history of last 90 days. The history length depends on APIs provided by the queried banks.", + "operationId": "getTransactionsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BankApiTransactionsResponse»" + } + } + } + } + }, + "/unsecured/psd/bankapi/accounts": { + "get": { + "tags": [ + "bank-api-controller" + ], + "summary": "Get all registered accounts", + "description": "Provides details of all registered bank api accounts.", + "operationId": "getAccountsUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BankApiAccountsResponse»" + } + } + } + } + }, + "/unsecured/psd/bankapi/accounts/delete": { + "post": { + "tags": [ + "bank-api-controller" + ], + "summary": "Delete/disable registered Bank API account", + "description": "Deletes/disables registered given Bank API account.", + "operationId": "deleteAccountUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DeleteAccountRegistrationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DeleteAccountRegistrationResponse»" + } + } + } + } + }, + "/unsecured/psd/bankapi/bank/{bank}/login": { + "get": { + "tags": [ + "bank-api-controller" + ], + "summary": "Get details needed for pairing another bank.", + "operationId": "getBankLoginDetailUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BankApiLoginDetailResponse»" + } + } + } + } + }, + "/unsecured/psd/bankapi/banks": { + "get": { + "tags": [ + "bank-api-controller" + ], + "summary": "Get all banks for multibanking", + "description": "Provides the set of all banks the agregator can connect to via api.", + "operationId": "getBanksUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«BankApiBanksResponse»" + } + } + } + } + }, + "/unsecured/psd/bankapi/redirect": { + "get": { + "tags": [ + "bank-api-controller" + ], + "summary": "Redirects user to IB login page.", + "operationId": "redirectUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RedirectView" + } + } + } + } + }, + "/unsecured/psd/creditas/callback": { + "post": { + "tags": [ + "creditas-controller" + ], + "summary": "Callback for registration of Creditas account.", + "operationId": "callbackUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditasRegistrationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/psd/csas/callback": { + "get": { + "tags": [ + "ceska-sporitelna-controller" + ], + "summary": "Callback for CSAS access registration, it is called by CSAS IB Login page after successful login.", + "description": "Registers an access to Fio account.", + "operationId": "registerUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "code", + "in": "query", + "description": "code", + "required": false, + "type": "string" + }, + { + "name": "state", + "in": "query", + "description": "state", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RedirectView" + } + } + } + } + }, + "/unsecured/psd/fio/callback": { + "post": { + "tags": [ + "fio-controller" + ], + "summary": "Callback for registration of Fio account.", + "operationId": "callbackUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FioRegistrationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/publicregistry/company/search": { + "post": { + "tags": [ + "company-search-controller" + ], + "summary": "Vyhledani spolecnosti podle casti jmena.", + "operationId": "companySearchUsingPOST", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CompanySearchRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CompanySearchResponse»" + } + } + } + } + }, + "/unsecured/push/device/create": { + "post": { + "tags": [ + "push-controller" + ], + "summary": "Zaregistruje novou aktivaci zarizeni k prijmu push notifikaci", + "operationId": "createDeviceUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/Pozadavek na registraci noveho push tokenu k aktivaci. Aktivaci neni soucasti requestu ale bere se z hlavicek." + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Odpoved na registraci push tokenu»" + } + } + } + } + }, + "/unsecured/push/service/hello": { + "get": { + "tags": [ + "push-controller" + ], + "summary": "Provola hello endpoint na pushserveru", + "operationId": "pushServerHelloUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«odpoved push serveru na hello»" + } + } + } + } + }, + "/unsecured/push/service/stats": { + "get": { + "tags": [ + "push-controller" + ], + "summary": "Vrati statistiky zpracovani fronty push notifikaci.", + "operationId": "getPushOrderStatsUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Odpoved na pozadavek na statistiky odesilani push notifikaci»" + } + } + } + } + }, + "/unsecured/push/service/triggerProcess": { + "get": { + "tags": [ + "push-controller" + ], + "summary": "Spusti jeden cyklus zpracovani fronty push notifikaci a vrati statistiky.", + "operationId": "triggerProcessUsingGET", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Odpoved na pozadavek na statistiky odesilani push notifikaci»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/address/hint": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Loading of hints for complete address based on first characters of address", + "description": "Loading of hints for complete address based on first characters of address", + "operationId": "endpointAddressHintUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterContactAddressHintRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterContactAddressHintResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/job/hint": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Loading of hints for complete employer info based on first characters of employer name", + "description": "Loading of hints for complete employer info based on first characters of employer name", + "operationId": "endpointContactJobHintUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterContactJobHintRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterContactJobHintResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/job/list": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Loading of client's profession enum values for given employment type for dropdown menus in form.", + "description": "Loading of client's profession enum values for given employment type for dropdown menus in form.", + "operationId": "endpointContactJobListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterContactJobListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterContactJobListResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/personal/address/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Potvrezeni udaju adresy klienty", + "description": "Potvrezeni udaju adresy klienty, pokud nejsou validni, vraci se formular s chybami, pokud jsou validni, ukladaji se k dalsimu zpracovani.", + "operationId": "endpointPersonalContactAddressCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalAddressCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalAddressCommitResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/personal/address/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Dotazeni dat pro nastaveni formulare pro vyplneni udaju o adrese.", + "description": "Dotazeni dat pro nastaveni formulare pro vyplneni udaju o adrese.", + "operationId": "endpointContactPersonalAddressSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalAddressSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalAddressSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/personal/dependents/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Potvrzeni kontanitch udaju o klientovi", + "description": "Potvrzeni kontanitch udaju o klientovi - vyzivovane osoby, pokud nejsou validni, vraci se formular s chybami, pokud jsou validni, ukladaji se k dalsimu zpracovani.", + "operationId": "endpointContactPersonalDependentsCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalDependentsCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalDependentsCommitResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/personal/dependents/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju - vyzivovane osoby.", + "description": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju - vyzivovane osoby.", + "operationId": "endpointContactPersonalDependentsSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalDependentsSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalDependentsSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/personal/name/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Potvrzeni kontanitch udaju o klientovi", + "description": "Potvrzeni kontanitch udaju o klientovi - name, pokud nejsou validni, vraci se formular s chybami, pokud jsou validni, ukladaji se k dalsimu zpracovani.", + "operationId": "endpointContactPersonalNameCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalNameCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalNameCommitResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/personal/name/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju.", + "description": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju - jmeno, prijmeni.", + "operationId": "endpointContactPersonalNameSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalNameSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalNameSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/personal/solvency/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Potvrzeni kontanitch udaju o klientovi", + "description": "Potvrzeni kontanitch udaju o klientovi - solventnost, pokud nejsou validni, vraci se formular s chybami, pokud jsou validni, ukladaji se k dalsimu zpracovani.", + "operationId": "endpointContactPersonalSolvencyCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalSolvencyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalSolvencyCommitResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/personal/solvency/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju - solventnost.", + "description": "Dotazeni udaje o klientovi pro vyplneni osobnich udaju - solventnost.", + "operationId": "endpointContactPersonalSolvencySetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalSolvencySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalSolvencySetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/ploan/employer/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Ulozi informace o zamestnavateli do dat zadosti.", + "operationId": "endpointContactPersonalEmployerCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalEmployerCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalEmployerCommitResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/ploan/employer/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Nacte informace o zamestnavateli z zadosti pro predvyplneni na obrazovce.", + "operationId": "endpointContactPersonalEmployerSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalEmployerSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalEmployerSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/ploan/income/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Potvrzeni prijmu klienta do zadosti o PLoan - v pripade ze uzivatel zadava informace o zamestnavateli.", + "operationId": "endpointContactPLoanIncomeCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactIncomeCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactIncomeCommitResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/ploan/incomesource/commit": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Ulozi zdroj prijmu zadatele do dat zadosti.", + "operationId": "endpointContactPersonalIncomeSourceCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalIncomeSourceCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalIncomeSourceCommitResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/ploan/incomesource/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Nacte zdroj prijmu zadatele z zadosti pro predvyplneni na obrazovce.", + "operationId": "endpointContactPersonalIncomeSourceSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalIncomeSourceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalIncomeSourceSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/ploan/wizard/type": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Nacteni, kterou cestou ve wizzardu pro sjednani PLoanu se dat s ohledem na informace o zamestnavateli.", + "operationId": "endpointContactPersonalEmployerWizzardTypeUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanContactPersonalWizardTypeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanContactPersonalWizardTypeResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/contact/setup": { + "post": { + "tags": [ + "salesbooster-contact-controller" + ], + "summary": "Nacteni udaju o uzivateli", + "description": "Nacteni udaju o uzivateli jako jsou kontaktni udaje, doplnujici kontaktni udaje, adresa nebo zamestnavatel.", + "operationId": "endpointContactSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterContactSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterContactSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/help/callme": { + "post": { + "tags": [ + "salesbooster-help-controller" + ], + "summary": "Zalozi task v telefonni kampani.", + "operationId": "endpointCallMeUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterHelpCallMeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterHelpCallMeResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/help/internetbank": { + "post": { + "tags": [ + "salesbooster-help-controller" + ], + "summary": "Vrati screenu pro SB V Internet bance.", + "operationId": "endpointInternetBankUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterHelpInternetBankRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterHelpInternetBankResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/offer/express/agreement": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Dotazeni textace k souhlasu.", + "operationId": "endpointExpressAgreementGetUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressAgreementGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressAgreementGetResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/offer/express/calculator/setup": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Data pro nastaveni kalkulatoru", + "description": "Vraci data pro nastaveni kalkulatoru, nektera data jsou obecna pro vsechny kombinace pujcek (mapovani poctu mesicu pro splatku) a nektera jsou zavisla na prichozim pozadavku na vysi pucky a doby splaceni.", + "operationId": "endpointExpressCalculatorSetupUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressCalculatorSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressCalculatorSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/offer/express/calculator/walkin/setup": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Vraci nastaveni kalkulatoru pro neprihlaseneho uzivatele", + "operationId": "endpointExpressCalculatorWalkinSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressCalculatorWalkinSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressCalculatorWalkinSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/offer/express/infolimit": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Nacteni infolimitu.", + "operationId": "endpointExpressInfoLimitGetUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressInfoLimitGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressInfoLimitGetResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/offer/express/intro": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Jednoduchy introduction screen.", + "operationId": "endpointExpressIntroGetUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressIntroGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressIntroGetResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/offer/express/introduction": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Dotazeni uvodni textace k flow pro sjednani uveru.", + "operationId": "endpointExpressIntroductionGetUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressIntroductionGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressIntroductionGetResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/offer/express/variant/setup": { + "post": { + "tags": [ + "salesbooster-offer-controller" + ], + "summary": "Nacteni variant preschvalene pujcky.", + "description": "nactena data pro predschvalenou variatnu expres pujcky", + "operationId": "endpointExpressVariantSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterOfferExpressVariantSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterOfferExpressVariantSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/ploan/unhappy/documentnotready/screen": { + "post": { + "tags": [ + "p-loan-screen-controller" + ], + "summary": "Unhappy screena - Document Not Ready", + "operationId": "endpointRequestUnhappyDocumentNotReadyUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterPLoanUnhappyDocumentNotReadyScreenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterPLoanUnhappyDocumentNotReadyScreenResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/ploan/unhappy/moremoney/screen": { + "post": { + "tags": [ + "p-loan-screen-controller" + ], + "summary": "Unhappy screena - more money", + "operationId": "endpointRequestUnhappyMoreMoneyUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterPLoanUnhappyMoreMoneyScreenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterPLoanUnhappyMoreMoneyScreenResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/ploan/unhappy/trialperiod/screen": { + "post": { + "tags": [ + "p-loan-screen-controller" + ], + "summary": "Unhappy screena - trial period.", + "operationId": "endpointRequestUnhappyTrialPeriodUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterPLoanUnhappyTrialPeriodScreenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterPLoanUnhappyTrialPeriodScreenResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/ploan/unhappy/uknownerror/screen": { + "post": { + "tags": [ + "p-loan-screen-controller" + ], + "summary": "Unhappy screena uknown error.", + "operationId": "endpointRequestUnhappyUnknownErrorUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterPLoanUnhappyUnknownErrorScreenRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterPLoanUnhappyUnknownErrorScreenResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/account/update": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Aktualizace bezneho uctu na zadosti z FQ.", + "operationId": "endpointRequestAccountUpdateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestAccountUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestAccountUpdateResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/approved/account/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Nacteni dostupnych uctu.", + "operationId": "endpointRequestApprovedAccountSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestApprovedAccountSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestApprovedAccountSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/approved/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Nacteni variant zadosti.", + "operationId": "endpointRequestApprovedSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestApprovedSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestApprovedSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/create": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Ulozeni noveho pozadavku na uverovy produkt. Pokud jiz existuje rozpracovana zadost, pak nacte ji, aktualizuje ji a vrati jako novou.", + "operationId": "endpointRequestCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestCreateResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/detail": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Vraci data aktualni rozpracovane zadosti.", + "operationId": "endpointRequestDetailUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestDetailResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/document/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Nacteni pozadovanych dokladu klienta.", + "operationId": "endpointRequestDocumentSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestDocumentSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestDocumentSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/evaluation/commit": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Aktualizace a odeslani zadosti do schvalovani ve WPS.", + "operationId": "endpointRequestEvaluationCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestEvaluationCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestEvaluationCommitResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/insurance/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Vypocet poplatku za pojisteni.", + "operationId": "endpointRequestInsuranceSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestInsuranceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestInsuranceSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/parameters/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Vypocet moznych TERMs pro vysi uveru.", + "operationId": "endpointRequestParametersSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestParametersSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestParametersSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/ploan/insurance/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "PLoan poplatku za pojisteni insurance screene.", + "operationId": "endpointPLoanRequestInsuranceSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanRequestInsuranceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanRequestInsuranceSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/ploan/parameters/setup": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Vrati formular pro PLoan na parametry cerpani a splaceni.", + "operationId": "endpointPLoanRequestParametersSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PLoanRequestParametersSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PLoanRequestParametersSetupResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/scoring/create": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Ulozeni pozadavku o scoring zadosti.", + "operationId": "endpointRequestScoringCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringCreateResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/scoring/detail": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Zjisteni stavu ulozeneho pozadavku o scoring zadosti.", + "operationId": "endpointRequestScoringDetailUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringDetailResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/scoring/document": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Scoring add document screen.", + "operationId": "endpointRequestScoringDocumentUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringDocumentRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringDocumentResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/scoring/less": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Scoring Less screen.", + "operationId": "endpointRequestScoringLessUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringLessRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringLessResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/scoring/nok": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Scoring NOK screen.", + "operationId": "endpointRequestScoringNokUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringNokRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringNokResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/scoring/ok": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Scoring OK screen.", + "operationId": "endpointRequestScoringOkUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringOkRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringOkResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/scoring/verification": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Scoring verification screen.", + "operationId": "endpointRequestScoringVerificationUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestScoringVerificationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestScoringVerificationResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/scoring/withoutconsent": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Screena Bez souhlasu to nepujde.", + "operationId": "endpointRequestWithoutConsentUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestWithoutConsentRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestWithoutConsentResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/state": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Nacteni stavu zadosti. Tento endpoint lze volat jen v pripade ze je jiste ze nejaka zadost existuje, pokud zadna zadost neexistuje, volani endpointu vrati chybu. Pro zjisteni zda nejaka zadost existuje nebo ne, volejte /salesbooster/request/unfinished/existence nebo /salesbooster/request/unfinished/detail.", + "operationId": "endpointRequestStateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestStateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestStateResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/storno": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Storno zadosti.", + "operationId": "endpointRequestStornoUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestStornoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestStornoResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/unfinished/detail": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Dotazeni rozpracovane zadosti.", + "operationId": "endpointRequestUnfinishedDetailUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestUnfinishedDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestUnfinishedDetailResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/request/unfinished/existence": { + "post": { + "tags": [ + "salesbooster-request-controller" + ], + "summary": "Aktualizace bezneho uctu na zadosti z FQ.", + "operationId": "endpointRequestUnfinishedExistenceUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterRequestUnfinishedExistenceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterRequestUnfinishedExistenceResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/sign/detail/get": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Ziskani dokumentace.", + "operationId": "endpointSignDetailGetUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignDetailGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignDetailGetResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/sign/document/get": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Ziskani predsmluvni dokumentace.", + "operationId": "endpointSignDocumentGetUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignDocumentGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignDocumentGetResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/sign/package": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Zaklada balicek zadosti nebo nad nim pousti WF.", + "operationId": "endpointSignPackageUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignPackageRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignPackageResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/sign/scoring/get": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Ziskani scrolingu pro zvolenou variantu.", + "operationId": "endpointSignScoringGetUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignScoringGetRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignScoringGetResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/sign/sign": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Podepsani smlouvy.", + "operationId": "endpointSignUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignSignRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignSignResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/sign/state": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Overuje stav zadosti", + "operationId": "endpointSignStateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignStateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignStateResponse»" + } + } + } + } + }, + "/unsecured/salesbooster/sign/victory": { + "post": { + "tags": [ + "salesbooster-sign-controller" + ], + "summary": "Ziskani viktory screeny.", + "operationId": "endpointVictoryUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SalesboosterSignVictoryRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesboosterSignVictoryResponse»" + } + } + } + } + }, + "/unsecured/salespoint/action/save": { + "post": { + "tags": [ + "salespoint-controller" + ], + "summary": "Ulozi zpetnou vazbu od uzivatele.", + "operationId": "saveActionUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/SalesPointSaveActionRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Odpoved pro ulozeni akce na salespointu.»" + } + } + } + } + }, + "/unsecured/salespoint/list": { + "post": { + "tags": [ + "salespoint-controller" + ], + "summary": "Vraci seznam salespointu", + "description": "Toto je stara verze 1, pouzivejte /list-v2", + "operationId": "getSalespointsV1UsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SalesPointListResponseV1»" + } + } + } + } + }, + "/unsecured/salespoint/list-v2": { + "post": { + "tags": [ + "salespoint-controller" + ], + "summary": "Vraci seznam salespointu", + "description": "Vraci seznam salespointu", + "operationId": "getSalespointsV2UsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«Odpoved se seznamem salespointu»" + } + } + } + } + }, + "/unsecured/sb/insurance/list": { + "post": { + "tags": [ + "sb-insurance-controller" + ], + "summary": "Zobrazeni seznamu pojisteni pro internetbanku.", + "operationId": "listUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SbInsuranceListResponse»" + } + } + } + } + }, + "/unsecured/sb/insurance/setup": { + "post": { + "tags": [ + "sb-insurance-controller" + ], + "summary": "Dotazeni detailnich informaci pro dany typ pojisteni.", + "operationId": "setupUsingPOST_8", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/InsuranceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SbInsuranceSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/insurance/termination/commit": { + "post": { + "tags": [ + "sb-insurance-controller" + ], + "summary": "Dokonceni vypovezeni/odstoupeni od pojistne smlouvy.", + "operationId": "terminationCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SbInsuranceTerminationCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/sb/insurance/termination/create": { + "post": { + "tags": [ + "sb-insurance-controller" + ], + "summary": "Zahajeni vypovezeni/odstoupeni od pojistne smlouvy.", + "operationId": "terminationCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SbInsuranceTerminationCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SbInsuranceTerminationCreateResponse»" + } + } + } + } + }, + "/unsecured/sb/insurance/termination/setup": { + "post": { + "tags": [ + "sb-insurance-controller" + ], + "summary": "Dotazeni detailu potrebnych pro vypovezeni/odstoupeni od pojistne smlouvy.", + "operationId": "terminationSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SbInsuranceTerminationSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SbInsuranceTerminationSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/billing/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ulozeni informace, zdali uzivatel chce pojisteni uveru.", + "operationId": "endpointExpressLoanBillingCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanBillingCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanBillingCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/billing/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni dostupnosti a podminek pojisteni uveru.", + "operationId": "endpointExpressLoanBillingSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanBillingSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanBillingSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/calculator/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni nastaveni kalkulacky. Volani funguje jen v pripade ze existuje rozpracovana zadost o pujcku.", + "operationId": "endpointExpressCalculatorCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanCalculatorCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanCalculatorCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/calculator/recalculate": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni nastaveni kalkulacky. Volani funguje jen v pripade ze existuje rozpracovana zadost o pujcku.", + "operationId": "endpointExpressCalculatorRecalculateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanCalculatorRecalculateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanCalculatorRecalculateResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/calculator/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni nastaveni kalkulacky. Volani funguje jen v pripade ze existuje rozpracovana zadost o pujcku.", + "operationId": "endpointExpressCalculatorSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanCalculatorSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanCalculatorSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/finish/contract/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni smlouvy.", + "operationId": "endpointExpressLoanFinishContractCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanFinishContractCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanFinishContractCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/finish/contract/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Načtení smlouvy", + "operationId": "endpointExpressLoanFinishContractSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanFinishContractSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanFinishContractSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/finish/precontract/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ulozeni souhlasu s predsmluvnimi informacemi.", + "operationId": "endpointExpressPreContractCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanFinishPrecontractCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanFinishPrecontractCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/finish/precontract/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Načtení predsmluvnich informaci", + "operationId": "endpointExpressLoanFinishPrecontractInformationSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanFinishPrecontractSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanFinishPrecontractSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/finish/sign": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Podepsani klientem.", + "operationId": "endpointExpressLoanFinishSignUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanFinishSignRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanFinishSignResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/insurance/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ulozeni informace, zdali uzivatel chce pojisteni uveru.", + "operationId": "endpointExpressLoanInsuranceCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanInsuranceCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanInsuranceCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/insurance/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni dostupnosti a podminek pojisteni uveru.", + "operationId": "endpointExpressLoanInsuranceSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanInsuranceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanInsuranceSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/address/contact/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni kontaktni adresy k expressu.", + "operationId": "endpointExpressLoanPersonalContactAddressCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalContactAddressCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalContactAddressCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/address/contact/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni kontaktni adresy.", + "operationId": "endpointExpressLoanPersonalContactAddressSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalContactAddressSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalContactAddressSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/address/permanent/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni trvale adresy.", + "operationId": "endpointExpressLoanPersonalPermanentAddressCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalPermanentAddressCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalPermanentAddressCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/address/permanent/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni trvale adresy.", + "operationId": "endpointExpressLoanPersonalPermanentAddressSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalPermanentAddressSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalPermanentAddressSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/dependents/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni vyzivovanych osob.", + "operationId": "endpointExpressLoanPersonalDependentsCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalDependentsCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalDependentsCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/dependents/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni vyzivovanych osob", + "operationId": "endpointExpressLoanPersonalDependentsSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalDependentsSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalDependentsSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/employer/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni udaju o zamestnavateli.", + "operationId": "endpointExpressLoanPersonalEmployerCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalEmployerCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalEmployerCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/employer/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni udaju o zamestnavateli.", + "operationId": "endpointExpressLoanPersonalEmployerSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalEmployerSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalEmployerSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/household/expenses/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni vydaju domacnosti.", + "operationId": "endpointExpressLoanPersonalHouseholdExpensesCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalHouseholdExpensesCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalHouseholdExpensesCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/household/expenses/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni vydaju domacnosti.", + "operationId": "endpointExpressLoanPersonalHouseholdExpensesSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalHouseholdExpensesSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalHouseholdExpensesSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/household/solvency/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni prijmu domacnosti.", + "operationId": "endpointExpressLoanPersonalHouseholdSolvencyCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalHouseholdSolvencyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalHouseholdSolvencyCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/household/solvency/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni prijmu domacnosti.", + "operationId": "endpointExpressLoanPersonalHouseholdSolvencySetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalHouseholdSolvencySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalHouseholdSolvencySetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/incomesource/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni zdroje prijmu.", + "operationId": "endpointExpressLoanPersonalIncomeSourceCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalIncomeSourceCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalIncomeSourceCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/incomesource/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni informaci o zdroji prijmu.", + "operationId": "endpointExpressLoanPersonalIncomeSourceSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalIncomeSourceSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalIncomeSourceSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/scoringinfo/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni dokladu.", + "operationId": "endpointCreditCardPersonalScoringInfoCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalScoringInfoCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalScoringInfoCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/scoringinfo/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni dokladu", + "operationId": "endpointCreditCardPersonalScoringInfoSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalScoringInfoSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalScoringInfoSetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/solvency/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Potvrzeni financni situace.", + "operationId": "endpointExpressLoanPersonalSolvencyCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalSolvencyCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalSolvencyCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/personal/solvency/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Dotazeni financni situace.", + "operationId": "endpointExpressLoanPersonalSolvencySetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanPersonalSolvencySetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanPersonalSolvencySetupResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/request/cancel": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Storno zadosti", + "operationId": "endpointExpressLoanRequestCancelUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestCancelRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestCancelResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/request/create": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Vytvoreni zadosti k expressu", + "operationId": "endpointExpressLoanRequestCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestCreateResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/request/detail": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ziskani detailu zadosti.", + "operationId": "endpointExpressLoanRequestDetailUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestDetailResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/request/scoring/agreement/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ulozeni souhlasu s dotazy do registru.", + "operationId": "endpointExpressLoanRequestScoringAgreementCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestScoringAgreementCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestScoringAgreementCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/request/scoring/checkresult": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Vyhodnoceni scooringu", + "operationId": "endpointExpressLoanRequestScoringCheckUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestScoringCheckResultRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestScoringCheckResultResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/request/scoring/create": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Odeslani zadosti do scooringu", + "operationId": "endpointExpressLoanRequestScoringCreateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanRequestScoringCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanRequestScoringCreateResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/request/scoring/installmentconfirmation/commit": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Ulozeni potvrzeni schopnosti splacet.", + "operationId": "endpointExpressLoanScoringInstalmentConfirmationCommitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanScoringInstallmentConfirmationCommitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanScoringInstallmentConfirmationCommitResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/request/state": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni stavu nejaktualnejsi zadosti k expresnimu uveru.", + "operationId": "endpointExpressLoanGetApplicationStateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanGetApplicationStateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanGetApplicationStateResponse»" + } + } + } + } + }, + "/unsecured/sb/loan/express/screenflow/setup": { + "post": { + "tags": [ + "express-loan-controller" + ], + "summary": "Nacteni screenflow podle dat zadosti.", + "operationId": "endpointExpressLoanScreenflowSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressLoanScreenflowSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ExpressLoanScreenflowSetupResponse»" + } + } + } + } + }, + "/unsecured/servicepackage/atm/setup": { + "post": { + "tags": [ + "service-package-controller" + ], + "summary": "Nastaveni pro ATM balicky", + "description": "Vraci nastaveni pro ATM balicky - texty, mozne a aktivovane balicky, nastaveni datumu, souhlas 101, atd.", + "operationId": "getAtmSetupUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/AtmServicePackagesSetupRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AtmServicePackagesSetupResponse»" + } + } + } + } + }, + "/unsecured/servicepackage/atm/state/update": { + "post": { + "tags": [ + "service-package-controller" + ], + "summary": "Nastaveni stavu ATM balicku.", + "description": "Zmeni stav ATM balicku - aktivace / deaktivace.", + "operationId": "changeAtmStateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "requestBody", + "description": "requestBody", + "required": true, + "schema": { + "$ref": "#/definitions/ServicePackageStateChangeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/smelending/account/list": { + "post": { + "tags": [ + "sme-lending-account-controller" + ], + "summary": "Shrnuti informaci o zadosti", + "operationId": "endpointAccountListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingAccountListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingAccountListResponse»" + } + } + } + } + }, + "/unsecured/smelending/account/selected": { + "post": { + "tags": [ + "sme-lending-account-controller" + ], + "summary": "Dotazeni jiz vybraneho bankovniho uctu pro prevod penez pro danou pujcku", + "operationId": "endpointAccountNumberUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingSelectedAccountRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingAccount»" + } + } + } + } + }, + "/unsecured/smelending/async/contract/reentry": { + "post": { + "tags": [ + "sme-async-controller" + ], + "summary": "Navrat do procesu (S&R) po vygenerovani kontraktu", + "operationId": "endpointSafeAndReturnUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeReturnToProcessStartRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeReturnToProcessStartResponse»" + } + } + } + } + }, + "/unsecured/smelending/async/scoring/approve/conditional": { + "post": { + "tags": [ + "sme-async-controller" + ], + "summary": "Zahajeni asynchroniho zpracovani podmineneho schvaleni pujcky (conditional approval)", + "operationId": "endpointConditionalApproveUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeConditionalStartRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeConditionalStartResponse»" + } + } + } + } + }, + "/unsecured/smelending/async/scoring/start": { + "post": { + "tags": [ + "sme-async-controller" + ], + "summary": "Zahajeni async scoringu", + "operationId": "endpointScoringUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeScoringStartRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeScoringStartResponse»" + } + } + } + } + }, + "/unsecured/smelending/async/status": { + "post": { + "tags": [ + "sme-async-controller" + ], + "summary": "Zjisteni stavu async procesu", + "operationId": "endpointStatusUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AsyncPollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AsyncPollingResponse»" + } + } + } + } + }, + "/unsecured/smelending/cancellation": { + "post": { + "tags": [ + "sme-cancellation-controller" + ], + "summary": "Oteviraci workflow pro kontrakt", + "operationId": "endpointPersonInfoRejectUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeCancelRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCancelResponse»" + } + } + } + } + }, + "/unsecured/smelending/contract/create": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Oteviraci workflow pro kontrakt", + "operationId": "confirmOfferUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeContractRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeContractResponse»" + } + } + } + } + }, + "/unsecured/smelending/contract/document": { + "get": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Binarni data kontraktu zakodovane v Base64", + "operationId": "getContractUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeContractDocumentResponse»" + } + } + } + } + }, + "/unsecured/smelending/contract/finalStatus": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Ziskani finalniho statusu", + "operationId": "contractFinalStatusUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PollingResponse»" + } + } + } + } + }, + "/unsecured/smelending/contract/reject": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Zamitnuti kontraktu klientem", + "operationId": "rejectContractUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EmptyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/smelending/contract/sendVerification": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Zaslani verifikacni SMS klientu", + "operationId": "sendVerificationUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeSmsVerificationRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeSmsVerificationResponse»" + } + } + } + } + }, + "/unsecured/smelending/contract/sign": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Podpis kontraktu uzivatelem pomoci SMS klice (standardni cesta - IB)", + "operationId": "signContractUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/EmptyRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/smelending/contract/signByDevice": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Potvrzeni (\"podpis\") kontraktu uzivatelem pomoci mobilniho zarizeni - SB", + "operationId": "signByDeviceUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeSignByDeviceRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeSignByDeviceResponse»" + } + } + } + } + }, + "/unsecured/smelending/contract/status": { + "post": { + "tags": [ + "sme-contract-controller" + ], + "summary": "Zjistovani statusu kontraktu", + "operationId": "contractStatusUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PollingResponse»" + } + } + } + } + }, + "/unsecured/smelending/creditCard/details": { + "post": { + "tags": [ + "sme-credit-card-controller" + ], + "summary": "ziska detaily ke kreditni karte", + "operationId": "endpointDetailsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeCreditCardDetailsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCreditCardDetailsResponse»" + } + } + } + } + }, + "/unsecured/smelending/downtime": { + "post": { + "tags": [ + "sme-downtime-controller" + ], + "summary": "status procesu pro pujcku", + "operationId": "endpointDowntimeUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeDowntimeRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeDowntimeResponse»" + } + } + } + } + }, + "/unsecured/smelending/infolimit": { + "post": { + "tags": [ + "sme-info-limit-controller" + ], + "summary": "Vraci mapu s infolimitem, jeli mapa size() == 0, uzivatel nema infolimit a tedy ani narok na pujcku", + "operationId": "getInfoLimitUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeInfoLimitRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeInfoLimitResponse»" + } + } + } + } + }, + "/unsecured/smelending/loanRequest/creditCard/confirmed": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Data o potvrzene zadosti kreditni karty", + "operationId": "getCreditCardDetailsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeCreditCardConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCreditCardResponse»" + } + } + } + } + }, + "/unsecured/smelending/loanRequest/creditCard/create": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Vytvoreni zadosti o kreditni kartu", + "operationId": "createCreditCardRequestUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeCreditCardRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCreditCardResponse»" + } + } + } + } + }, + "/unsecured/smelending/loanRequest/creditCard/selected": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Ziska udaje o kreditni karte, pro kterou jiz uzivatel vybral detaily", + "operationId": "getCreditCardDetailsSelectedUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeCreditCardConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCreditCardResponse»" + } + } + } + } + }, + "/unsecured/smelending/loanRequest/express/confirmed": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Ziska udaje o express pujcke, pro kterou jiz existuje vytisteny kontrakt", + "operationId": "getExpressProductDetailsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeExpressConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeExpressLoanResponse»" + } + } + } + } + }, + "/unsecured/smelending/loanRequest/express/create": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Vytvoreni zadosti o express produkt", + "operationId": "createExpressLoanRequestUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeExpressLoanRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeExpressLoanResponse»" + } + } + } + } + }, + "/unsecured/smelending/loanRequest/express/selected": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Ziska udaje o express pujcke, pro kterou jiz uzivatel vybral detaily", + "operationId": "getExpressProductDetailsSelectedUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeExpressConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeExpressLoanResponse»" + } + } + } + } + }, + "/unsecured/smelending/loanRequest/flexi/confirmed": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Ziska udaje o flexi pujcke, pro kterou jiz existuje vytisteny kontrakt", + "operationId": "getFlexiProductDetailsUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeFlexiConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeFlexiLoanResponse»" + } + } + } + } + }, + "/unsecured/smelending/loanRequest/flexi/create": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Vytvoreni zadosti o flexi produkt", + "operationId": "createFlexiLoanRequestUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeFlexiLoanRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeFlexiLoanResponse»" + } + } + } + } + }, + "/unsecured/smelending/loanRequest/flexi/selected": { + "post": { + "tags": [ + "sme-loan-request-controller" + ], + "summary": "Ziska udaje o flexi pujcke, pro kterou jiz uzivatel vybral detaily", + "operationId": "getFlexiProductDetailsSelectedUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeFlexiConfirmedRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeFlexiLoanResponse»" + } + } + } + } + }, + "/unsecured/smelending/modelation/status": { + "post": { + "tags": [ + "sme-scoring-controller" + ], + "summary": "Zjisteni stavu u modelace po score-ingu. Vysledek [PENDING - opakuj volani, ACCEPTED - ok, DENIED - finalni zamitnuti", + "operationId": "endpointModelationStatusUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PollingResponse»" + } + } + } + } + }, + "/unsecured/smelending/offer/confirm": { + "post": { + "tags": [ + "sme-offer-controller" + ], + "summary": "Oteviraci workflow pro kontrakt", + "operationId": "confirmOfferUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOfferRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOfferResponse»" + } + } + } + } + }, + "/unsecured/smelending/person/confirm": { + "post": { + "tags": [ + "sme-lending-person-controller" + ], + "summary": "Potvrzuje informace o fyzicke osobe podnikajici", + "operationId": "personInfoConfirmUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingPersonInfoConfirmRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingPersonInfoConfirmResponse»" + } + } + } + } + }, + "/unsecured/smelending/person/declension": { + "post": { + "tags": [ + "sme-lending-person-controller" + ], + "summary": "Krestni jmeno klienta v patem padu", + "operationId": "declensionUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingPersonDeclensionRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingPersonDeclensionResponse»" + } + } + } + } + }, + "/unsecured/smelending/person/details": { + "post": { + "tags": [ + "sme-lending-person-controller" + ], + "summary": "Vraci informace o fyzicke osobe podnikajici", + "operationId": "personInfoUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingPersonInfoRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingPersonInfoResponse»" + } + } + } + } + }, + "/unsecured/smelending/person/reject": { + "post": { + "tags": [ + "sme-lending-person-controller" + ], + "summary": "Potvrzuje informace o fyzicke osobe podnikajici", + "operationId": "personInfoRejectUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeLendingPersonInfoRejectRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeLendingPersonInfoConfirmResponse»" + } + } + } + } + }, + "/unsecured/smelending/process/status": { + "post": { + "tags": [ + "sme-process-controller" + ], + "summary": "Zjistovani stavu aplikace", + "operationId": "confirmOfferUsingPOST_5", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeProcessStatusRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeProcessStatusResponse»" + } + } + } + } + }, + "/unsecured/smelending/product/config": { + "post": { + "tags": [ + "sme-lending-product-controller" + ], + "summary": "Shrnuti informaci o zadosti", + "operationId": "getConfigUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ConfigRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ConfigResponse»" + } + } + } + } + }, + "/unsecured/smelending/product/configOffer": { + "post": { + "tags": [ + "sme-lending-product-controller" + ], + "summary": "Shrnuti informaci o zadosti (nezaklada transakci)", + "operationId": "getConfigOfferUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ConfigRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ConfigResponse»" + } + } + } + } + }, + "/unsecured/smelending/scoring/start": { + "post": { + "tags": [ + "sme-scoring-controller" + ], + "summary": "Oteviraci workflow pro kontrakt pred samotnym score-ingem", + "operationId": "endpointScoringStartUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeScoringStartRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeScoringStartResponse»" + } + } + } + } + }, + "/unsecured/smelending/scoring/status": { + "post": { + "tags": [ + "sme-scoring-controller" + ], + "summary": "Zjisteni stavu score-ingu. Vysledek [PENDING - opakuj volani, ACCEPTED - ok, DENIED - finalni zamitnuti", + "operationId": "endpointScoringStatusUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PollingResponse»" + } + } + } + } + }, + "/unsecured/smelending/variant/acceptConditional": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "pouzije podminenou variantu od banky", + "operationId": "acceptConditionalUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeAcceptVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeAcceptVariantResponse»" + } + } + } + } + }, + "/unsecured/smelending/variant/acceptDefault": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "pouzije vybranou variantu uzivatelem", + "operationId": "confirmOfferUsingPOST_7", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeAcceptVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeAcceptVariantResponse»" + } + } + }, + "deprecated": true + } + }, + "/unsecured/smelending/variant/acceptSelected": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "pouzije vybranou variantu uzivatelem", + "operationId": "acceptSelectedUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeAcceptVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeAcceptVariantResponse»" + } + } + } + } + }, + "/unsecured/smelending/variant/creditCard": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "Ziska data podminene creditCard varianty", + "operationId": "getCreditCardUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CreditCardVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeCreditCardResponse»" + } + } + } + } + }, + "/unsecured/smelending/variant/express": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "Ziska data podminene express varianty", + "operationId": "getExpressUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/ExpressVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeExpressLoanResponse»" + } + } + } + } + }, + "/unsecured/smelending/variant/flexi": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "Ziska data podminene flexi varianty", + "operationId": "getFlexiUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/FlexiVariantRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeFlexiLoanResponse»" + } + } + } + } + }, + "/unsecured/smelending/variant/status": { + "post": { + "tags": [ + "sme-variant-controller" + ], + "summary": "zjisti status variantu", + "operationId": "getStatusUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PollingRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PollingResponse»" + } + } + } + } + }, + "/unsecured/smeonboarding/liveness/upload": { + "post": { + "tags": [ + "sme-onboarding-liveness-controller" + ], + "summary": "Nahraje binarni data", + "operationId": "uploadUsingPOST", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "name": "file", + "in": "formData", + "description": "file", + "required": true, + "type": "file" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnboardingLivenessResponse»" + } + } + } + } + }, + "/unsecured/smeonboarding/process/start": { + "post": { + "tags": [ + "smeonboarding-process-controller" + ], + "summary": "Vytvori token k danemu procesu", + "operationId": "startUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/SmeOnboardingProcessStartRequest text" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«SmeOnBoardingTokenResponse»" + } + } + } + } + }, + "/unsecured/statement/detail": { + "post": { + "tags": [ + "statement-controller" + ], + "summary": "Stazeni vypisu uctu v pozadovanem formatu.", + "operationId": "getListGetUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/StatementDetailRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«StatementDetailResponse»" + } + } + } + } + }, + "/unsecured/statement/list": { + "post": { + "tags": [ + "statement-controller" + ], + "summary": "Vraci seznam dostupnych vypisu.", + "operationId": "getListUsingPOST_5", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/AvailableStatementsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«AvailableStatementsResponse»" + } + } + } + } + }, + "/unsecured/template/create": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Creates user templates.", + "description": "Creates user templates.", + "operationId": "createTemplateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TemplateCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TemplateCreateResponse»" + } + } + } + } + }, + "/unsecured/template/delete": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Deletes user templates.", + "description": "Deletes user templates.", + "operationId": "deleteTemplateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TemplateDeleteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TemplateDeleteResponse»" + } + } + } + } + }, + "/unsecured/template/foreign/commit": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Potvrzuje novou nebo upravu existujici sablonu pro zahranicni platby.", + "operationId": "getForeignPaymentTemplateListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/CommitForeignPaymentTemplateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«CommitForeignPaymentTemplateResponse»" + } + } + } + } + }, + "/unsecured/template/foreign/delete": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Smaze sablonu pro zahranicni platbu.", + "operationId": "getForeignPaymentTemplateListUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/DeleteForeignPaymentTemplateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«DeleteForeignPaymentTemplateResponse»" + } + } + } + } + }, + "/unsecured/template/foreign/list": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Vraci seznam zahranicnich platebnich sablon uzivatele.", + "operationId": "getForeignPaymentTemplateListUsingPOST_5", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TemplateListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«ForeignPaymentTemplateListResponse»" + } + } + } + } + }, + "/unsecured/template/foreign/put": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Validuje novou nebo upravu existujici sablonu pro zahranicni platby.Pokud je validace ok, zalozi transakci a vrati jeji ID.", + "operationId": "getForeignPaymentTemplateListUsingPOST_7", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/PutForeignPaymentTemplateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«PutForeignPaymentTemplateResponse»" + } + } + } + } + }, + "/unsecured/template/list": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Returns a list of user templates.", + "description": "Returns a list of user templates.", + "operationId": "getTemplatesListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TemplateListRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TemplateListResponse»" + } + } + } + } + }, + "/unsecured/template/update": { + "post": { + "tags": [ + "template-controller" + ], + "summary": "Updates user templates.", + "description": "Updates user templates.", + "operationId": "updateTemplateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TemplateUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TemplateUpdateResponse»" + } + } + } + } + }, + "/unsecured/transaction/categories": { + "get": { + "tags": [ + "transaction-controller" + ], + "summary": "Nacteni seznamu kategorii transakci klienta.", + "operationId": "getTransactionCategoriesUsingGET_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionCategoriesResponse»" + } + } + } + } + }, + "/unsecured/transaction/category/create": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Vytvoreni nove transakcni kategorie.", + "operationId": "createTransactionCategoryUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionCategoryCreateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionCategoryCreateResponse»" + } + } + } + } + }, + "/unsecured/transaction/category/delete": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Smazani transakcni kategorie.", + "operationId": "deleteTransactionCategoryUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionCategoryDeleteRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«EmptyResponse»" + } + } + } + } + }, + "/unsecured/transaction/category/update": { + "post": { + "tags": [ + "transaction-controller" + ], + "summary": "Uprava transakcni kategorie.", + "operationId": "updateTransactionCategoryUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/TransactionCategoryUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«TransactionCategoryUpdateResponse»" + } + } + } + } + }, + "/unsecured/ufo/login": { + "post": { + "tags": [ + "ufo-authentication-controller" + ], + "summary": "Prihlasi uzivatele.", + "operationId": "loginUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/UfoAuthenticationResponse" + } + } + } + } + }, + "/unsecured/user/detail": { + "post": { + "tags": [ + "user-controller" + ], + "summary": "Returns user.", + "description": "Returns user detail.", + "operationId": "getDetailUsingPOST_3", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UserDetailResponse»" + } + } + } + } + }, + "/unsecured/user/inbox/list": { + "post": { + "tags": [ + "message-controller" + ], + "summary": "Get the list of user's messages.", + "description": "The endpoint returns the list of user's messages.", + "operationId": "getMessageListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MessageListResponse»" + } + } + } + } + }, + "/unsecured/user/inbox/message/read": { + "post": { + "tags": [ + "message-controller" + ], + "summary": "Sets the message as read.", + "description": "Sets the message as read.", + "operationId": "setMessageReadUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/MessageReadRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«MessageReadResponse»" + } + } + } + } + }, + "/unsecured/user/notification/list": { + "post": { + "tags": [ + "notification-controller" + ], + "summary": "Get the list of user's notifications.", + "description": "The endpoint returns the list of user's notifications.", + "operationId": "getNotificationListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«NotificationListResponse»" + } + } + } + } + }, + "/unsecured/user/notification/message/read": { + "post": { + "tags": [ + "notification-controller" + ], + "summary": "Sets the notification as read.", + "description": "Sets the notification as read.", + "operationId": "setNotificationReadUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/NotificationReadRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«NotificationReadResponse»" + } + } + } + } + }, + "/unsecured/user/phonecontact/list": { + "post": { + "tags": [ + "user-controller" + ], + "summary": "Returns user's contact list.", + "description": "Returns user's contact list.", + "operationId": "getPhoneContactListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UserPhoneContactListResponse»" + } + } + } + } + }, + "/unsecured/user/settings/list": { + "post": { + "tags": [ + "user-controller" + ], + "summary": "List of activated user settings.", + "description": "List of activated user settings.", + "operationId": "endpointUserSettingsListUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UserSettingsListResponse»" + } + } + } + } + }, + "/unsecured/user/settings/update": { + "post": { + "tags": [ + "user-controller" + ], + "summary": "Updates user settings.", + "description": "Updates user settings.", + "operationId": "endpointUserSettingsUpdateUsingPOST_1", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UserSettingsUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UserSettingsUpdateResponse»" + } + } + } + } + }, + "/unsecured/user/update": { + "post": { + "tags": [ + "user-controller" + ], + "summary": "Updates user.", + "description": "Updates user.", + "operationId": "updateUsingPOST_2", + "consumes": [ + "application/json" + ], + "produces": [ + "*/*" + ], + "parameters": [ + { + "in": "body", + "name": "request", + "description": "request", + "required": true, + "schema": { + "$ref": "#/definitions/UserUpdateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/RestResponse«UserUpdateResponse»" + } + } + } + } + } + }, + "definitions": { + "AbstractReindexingRequest": { + "type": "object", + "required": [ + "dmsDocTypeId", + "docCardTypeId", + "documentPhotos" + ], + "properties": { + "cifId": { + "type": "string", + "description": "CIF klienta" + }, + "dmsDocTypeId": { + "type": "string", + "description": "Id obecneho typu dokumentu in DMS. (e.g. nabidky, dokumenty prokazujici prijem, ...)" + }, + "docCardTypeId": { + "type": "string", + "description": "Id konkretniho typu dokumentu. (e.g. POP, OP, ...)" + }, + "documentPhotos": { + "type": "array", + "description": "Ofocene dokumenty", + "items": { + "$ref": "#/definitions/DmsDocumentPhoto" + } + }, + "expressProdPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku s zadosti o expres pujcku" + } + }, + "description": "DMS reindexace ofocenych dokumentu k zadosti. Pozadovano vyplneni bud cisla produktoveho balicku nebo cisla zadosti" + }, + "AccTypeSwitchCommitRequest": { + "type": "object", + "required": [ + "accountId" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Id uctu, ktereho typ bude zmenen" + } + } + }, + "AccTypeSwitchCommitResponse": { + "type": "object", + "required": [ + "victoryScreenText" + ], + "properties": { + "victoryScreenText": { + "description": "Text pro viteznou obrazovku", + "$ref": "#/definitions/AccTypeSwitchVictoryScreenText" + } + } + }, + "AccTypeSwitchFeatureText": { + "type": "object", + "required": [ + "description", + "icon", + "title" + ], + "properties": { + "description": { + "type": "string", + "description": "Popis vyhody po zmene ucut" + }, + "icon": { + "type": "string", + "description": "Ikonka vyhody po zmene uctu" + }, + "title": { + "type": "string", + "description": "Nazev vyhody po zmene uctu" + } + } + }, + "AccTypeSwitchFeatureTexts": { + "type": "object", + "required": [ + "buttonTitle", + "features", + "title" + ], + "properties": { + "buttonTitle": { + "type": "string", + "description": "Popis tlacitka pri textu" + }, + "features": { + "type": "array", + "description": "Popis vyhod po zmene uctu", + "items": { + "$ref": "#/definitions/AccTypeSwitchFeatureText" + } + }, + "title": { + "type": "string", + "description": "Nazev textu" + } + } + }, + "AccTypeSwitchPreviewRequest": { + "type": "object", + "required": [ + "accountId" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Id uctu, pro ktery bude vygenerovany preview" + } + } + }, + "AccTypeSwitchPreviewResponse": { + "type": "object", + "required": [ + "base64Pdf" + ], + "properties": { + "base64Pdf": { + "type": "string", + "description": "Preview zmeny uctu ve formate pdf zakodovanem v base 64 formate" + } + } + }, + "AccTypeSwitchSetupRequest": { + "type": "object" + }, + "AccTypeSwitchSetupResponse": { + "type": "object", + "required": [ + "featureTexts", + "switchText" + ], + "properties": { + "featureTexts": { + "description": "Popis vyhod prenuti uctu", + "$ref": "#/definitions/AccTypeSwitchFeatureTexts" + }, + "switchText": { + "description": "Text s podminkami prepnuti uctu", + "$ref": "#/definitions/AccTypeSwitchSwitchText" + } + } + }, + "AccTypeSwitchSwitchText": { + "type": "object", + "required": [ + "buttonTitle", + "conditions", + "title" + ], + "properties": { + "buttonTitle": { + "type": "string", + "description": "Popis tlacitka pro vygenerovani preview k prepnuti uctu" + }, + "conditions": { + "type": "string", + "description": "Podminky prepnuti uctu" + }, + "title": { + "type": "string", + "description": "Nazev textu s podminkami prepnuti uctu" + } + } + }, + "AccTypeSwitchVictoryScreenText": { + "type": "object", + "required": [ + "description", + "title" + ], + "properties": { + "description": { + "type": "string", + "description": "Text vitezne obrazovky" + }, + "title": { + "type": "string", + "description": "Nadpis vitezne obrazovky" + } + } + }, + "Account": { + "type": "object", + "required": [ + "accountId", + "accountNumber", + "allowedOperations", + "balance", + "bic", + "currencyCode", + "iban", + "ownerName", + "primary", + "typeId", + "typeName" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Interni jednoznacny kod banky pod kterym komunikuje FE aplikace s BE. Kod se nezobrazuje klientovi." + }, + "accountNumber": { + "description": "cislo uctu rozdelene na predcisli cislo a kod banky", + "$ref": "#/definitions/AccountNumber" + }, + "allowedOperations": { + "type": "array", + "description": "prava na ucet pro konkretniho uzivatele, mozne hodnoty su PAYMENT_CREATE, PAYMENT_CREATE_CLI_ACC, PAYMENT_CANCEL, PAYMENT_LIST, STANDING_ORDER_LIST, STANDING_ORDER_CREATE, STANDING_ORDER_EDIT, STANDING_ORDER_DELETE, SIPO_LIST, SIPO_CREATE, SIPO_EDIT, SIPO_DELETE, DIRECT_DEBIT_LIST, DIRECT_DEBIT_CREATE, DIRECT_DEBIT_EDIT, DIRECT_DEBIT_DELETE, TRANSACTION_LIST, MOBILE_TOPUP, STATEMENT_LIST", + "items": { + "type": "string", + "enum": [ + "PAYMENT_CREATE", + "PAYMENT_CREATE_CLI_ACC", + "PAYMENT_CANCEL", + "PAYMENT_LIST", + "STANDING_ORDER_LIST", + "STANDING_ORDER_CREATE", + "STANDING_ORDER_EDIT", + "STANDING_ORDER_DELETE", + "SIPO_LIST", + "SIPO_CREATE", + "SIPO_EDIT", + "SIPO_DELETE", + "DIRECT_DEBIT_LIST", + "DIRECT_DEBIT_CREATE", + "DIRECT_DEBIT_EDIT", + "DIRECT_DEBIT_DELETE", + "TRANSACTION_LIST", + "BALANCE_LIST", + "MOBILE_TOPUP", + "STATEMENT_LIST", + "ACCOUNT_SETTINGS" + ] + } + }, + "balance": { + "description": "aktualni zustatky na uctu viz objekt Balance - ucetni, disponibilni, flexikredit, schvalena cast uveru, castka vkladu TV", + "$ref": "#/definitions/Balance" + }, + "bic": { + "type": "string", + "description": "BIC kod - pro nas vzdy AGBACZPP" + }, + "bisCode": { + "type": "string", + "description": "bis code urcujici typ produktu a popisky produktu" + }, + "currencyCode": { + "type": "string", + "description": "kod meny uctu" + }, + "customName": { + "type": "string", + "description": "Volitelne jmeno, kterym si konkretni uzivatel pojmenoval ucet. Kazdy uzivatel s pravem k uctu muze mit vlastni nazev" + }, + "iban": { + "type": "string", + "description": "IBAN cislo uctu" + }, + "ownerName": { + "type": "string", + "description": "Plne jmeno majitele uctu" + }, + "primary": { + "type": "boolean", + "example": false, + "description": "priznak jestli se jedna o primarni ucet" + }, + "transactions": { + "type": "array", + "description": "seznam transakci nad uctem, defaultne null, seznam se doplnuje samostatnou sluzbou", + "items": { + "$ref": "#/definitions/Transaction" + } + }, + "typeId": { + "type": "string", + "description": "typ uctu podle ciselniku v AccountType: CURRENT_1(1) bezny ucet, CURRENT_2(2) bezny ucet, CURRENT_3(3) bezny ucet, CURRENT_4(4) bezny ucet, SAVING(11) sporici ucet, REGULAR_SAVING(15) ucet pravidelneho sporeni, JTV(20) JTV, RTV(21) RTV, LOAN(30) Uverovy ucet, MORTAGE(31) Hypoteka, EXPRES(32) Expres pujcka, OTHER(90) Ostatni", + "enum": [ + "CURRENT_1(1) bezny ucet", + "CURRENT_2(2) bezny ucet", + "CURRENT_3(3) bezny ucet", + "CURRENT_4(4) bezny ucet", + "SAVING(11) sporici ucet", + "REGULAR_SAVING(15) ucet pravidelneho sporeni", + "JTV(20) JTV", + "RTV(21) RTV", + "LOAN(30) Uverovy ucet", + "MORTAGE(31) Hypoteka", + "EXPRES(32) Expres pujcka", + "OTHER(90) Ostatni" + ] + }, + "typeName": { + "type": "string", + "description": "slovni pojmenovani typu uctu v TypeId" + } + }, + "description": "Trida pro ucet obsahuje podtridy a atributy identifikujici ucet, zustatky, seznam transakci, trvalych prikazu, sipo, inkasa a dalsi." + }, + "AccountBalanceResponse": { + "type": "object", + "properties": { + "balances": { + "type": "array", + "description": "Collection of balances of a client payment account.", + "items": { + "$ref": "#/definitions/AispBalance" + } + } + }, + "description": "Response containing account balance information." + }, + "AccountFeePlan": { + "type": "object", + "required": [ + "feePlanId" + ], + "properties": { + "feePlanId": { + "type": "string", + "description": "id poplatkoveho planu" + }, + "feePlanName": { + "type": "string", + "description": "jmeno poplatkoveho planu" + } + }, + "description": "Informace o poplatkovem planu uctu" + }, + "AccountListRequest": { + "type": "object", + "properties": { + "accountRequestList": { + "type": "array", + "description": "Seznam uctu, ke kterym se ma vracit info. Pokud neni vyplneno, tak se vrati vsechny, ke kterym ma uzivatel pravo.", + "items": { + "$ref": "#/definitions/AccountRequest" + } + } + } + }, + "AccountListResponse": { + "type": "object", + "required": [ + "currentAccounts", + "depositAccounts", + "savingAccounts" + ], + "properties": { + "currentAccounts": { + "type": "array", + "description": "Seznam beznych uctu, pokud nejsou ucty dostupne, vraci se prazdny seznam", + "items": { + "$ref": "#/definitions/Account" + } + }, + "depositAccounts": { + "type": "array", + "description": "Seznam terminovanych vkladu, pokud nejsou ucty dostupne, vraci se prazdny seznam", + "items": { + "$ref": "#/definitions/Account" + } + }, + "savingAccounts": { + "type": "array", + "description": "Seznam sporicich uctu, pokud nejsou ucty dostupne, vraci se prazdny seznam", + "items": { + "$ref": "#/definitions/Account" + } + } + } + }, + "AccountNumber": { + "type": "object", + "properties": { + "bankCode": { + "type": "integer", + "format": "int32", + "description": "Kod banky, napr. pro ucet 609-12345678/0600 je to cislo 600" + }, + "number": { + "type": "integer", + "format": "int64", + "description": "Cislo uctu, napr. pro ucet 609-12345678/0600 je to cislo 12345678" + }, + "prefix": { + "type": "integer", + "format": "int32", + "description": "Predcisli uctu, napr. pro ucet 609-12345678/0600 je to cislo 609" + } + }, + "description": "Model zapouzdruje v samostatnych polozkach prefix, cislo uctu a kod banky." + }, + "AccountOperationItem": { + "type": "object", + "required": [ + "name", + "operation" + ], + "properties": { + "name": { + "type": "string", + "description": "Jmeno operace" + }, + "operation": { + "type": "string", + "description": "ID operace", + "enum": [ + "SWITCH_TO_DIGI", + "SWITCH_FROM_OTHER_BANK", + "ACCOUNT_SETTINGS", + "SWITCH_DIGI_ATM_PACKAGE", + "CHANGE_CUSTOM_NAME" + ] + }, + "value": { + "type": "string", + "description": "Aktualni hodnota kterou lze pomoci dane operace menit" + } + } + }, + "AccountOperations": { + "type": "object", + "required": [ + "accountId", + "operations" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Id uctu" + }, + "operations": { + "type": "array", + "description": "Mnozina povolenych dodatecnych operaci z enumu AccountAdditionalPermission. Zatim pouze SWITCH_TO_DIGI a SWITCH_FROM_OTHER_BANK.", + "items": { + "type": "string", + "enum": [ + "SWITCH_TO_DIGI", + "SWITCH_FROM_OTHER_BANK" + ] + } + } + } + }, + "AccountOperationsRequest": { + "type": "object" + }, + "AccountOperationsResponse": { + "type": "object", + "properties": { + "accountOperations": { + "type": "array", + "items": { + "$ref": "#/definitions/AccountOperations" + } + } + } + }, + "AccountRequest": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "Id uctu ke kteremu se vrati informace." + }, + "returnLastTransactions": { + "type": "boolean", + "example": false, + "description": "Priznak, zda se maji vratit i posledni transakce na uctu." + } + }, + "description": "Trida pro request k dotazeni informaci k uctu (balance, historie, ...)." + }, + "AcquisitionAccountContent": { + "type": "object", + "properties": { + "action": { + "type": "string" + }, + "rows": { + "type": "array", + "items": { + "$ref": "#/definitions/AcquisitionAccountContentTableRow" + } + }, + "type": { + "type": "string", + "enum": [ + "HEADER", + "TABLE", + "BUTTON", + "PARAGRAPH" + ] + }, + "value": { + "type": "string" + } + } + }, + "AcquisitionAccountContentTableRow": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "AcquisitionAccountResponse": { + "type": "object", + "properties": { + "accountName": { + "type": "string", + "description": "jmeno uctu, momentalne se nikde nepouziva, asi bude deprecated" + }, + "accountNumber": { + "description": "cislo zalozeneho uctu", + "$ref": "#/definitions/AccountNumber" + }, + "acquisitionAccountState": { + "type": "string", + "description": "stav uctu", + "enum": [ + "PROGRESS", + "SEND_MONEY", + "ACCOUNT_MONEY_TRANSFER", + "CARD_MONEY_TRANSFER", + "CARD_MONEY_TRANSFER_LATER", + "REJECTED", + "VERIFICATION", + "NOT_VERIFIED" + ] + }, + "alert": { + "type": "array", + "description": "content blok s informacemi, co ma uzivatel dal delat", + "items": { + "$ref": "#/definitions/AcquisitionAccountContent" + } + }, + "amount": { + "type": "number", + "description": "dostupne prostredky na uctu" + }, + "content": { + "type": "array", + "description": "content blok s informacemi, co ma uzivatel dal delat", + "items": { + "$ref": "#/definitions/AcquisitionAccountContent" + } + }, + "contentArrowPosition": { + "type": "string", + "description": "strana sipky obsahu s textem" + }, + "contentBackgroundColor": { + "type": "string", + "description": "barva pozadi obsahu s textem" + }, + "currencyCode": { + "type": "string", + "description": "mena uctu" + }, + "tooltip": { + "type": "string", + "description": "tooltip" + } + }, + "description": "Ziskani uctu pro akvizcniho uzivatele, zadajiciho o zrizeni online uctu" + }, + "ActivationCreateRequest": { + "type": "object", + "properties": { + "activationIdShort": { + "type": "string" + }, + "activationName": { + "type": "string" + }, + "activationNonce": { + "type": "string" + }, + "applicationKey": { + "type": "string" + }, + "applicationSignature": { + "type": "string" + }, + "encryptedDevicePublicKey": { + "type": "string" + }, + "ephemeralPublicKey": { + "type": "string" + }, + "extras": { + "type": "string" + } + } + }, + "ActivationCreateResponse": { + "type": "object", + "properties": { + "activationId": { + "type": "string" + }, + "activationNonce": { + "type": "string" + }, + "customAttributes": { + "type": "object" + }, + "encryptedServerPublicKey": { + "type": "string" + }, + "encryptedServerPublicKeySignature": { + "type": "string" + }, + "ephemeralPublicKey": { + "type": "string" + } + } + }, + "ActivationRemoveResponse": { + "type": "object", + "properties": { + "activationId": { + "type": "string" + } + } + }, + "ActivationStatusRequest": { + "type": "object", + "properties": { + "activationId": { + "type": "string" + } + } + }, + "ActivationStatusResponse": { + "type": "object", + "properties": { + "activationId": { + "type": "string" + }, + "customObject": { + "type": "object" + }, + "encryptedStatusBlob": { + "type": "string" + } + } + }, + "AdditionalAccountInfoRequest": { + "type": "object", + "required": [ + "accountId" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Id uctu" + } + } + }, + "AdditionalAccountInfoResponse": { + "type": "object", + "required": [ + "accountFeePlan" + ], + "properties": { + "accountFeePlan": { + "description": "Dodatecne informace k danemu uctu.", + "$ref": "#/definitions/AccountFeePlan" + } + } + }, + "Address": { + "type": "object", + "properties": { + "country": { + "type": "string", + "description": "Id zeme z ciselniku HCisZeme (52 = Ceska republika)" + }, + "county": { + "type": "string", + "description": "region" + }, + "descriptiveNumber": { + "type": "integer", + "format": "int32", + "description": "cislo popisne" + }, + "name": { + "type": "string", + "description": "jmeno prijemce" + }, + "orientationNumber": { + "type": "string", + "description": "orientacni cislo" + }, + "postCode": { + "type": "string", + "description": "zip code ktery projde dovnitr banky pres F5. Pokud neni postCode vyplneny, ale je vyplneny zip, tak se vraci ten." + }, + "street": { + "type": "string", + "description": "ulice vcetne popisneho popripade smerovaciho cisla" + }, + "town": { + "type": "string", + "description": "mesto" + }, + "zip": { + "type": "string", + "description": "smerovaci cislo" + } + } + }, + "AddressForm": { + "type": "object", + "required": [ + "country", + "descriptiveNumber", + "orientationNumber", + "staySince", + "street", + "town", + "zip" + ], + "properties": { + "contactCountry": { + "description": "zeme z kontatni adresy", + "$ref": "#/definitions/FormField«string»" + }, + "contactDescriptiveNumber": { + "description": "cislo popisne kontaktni adresy", + "$ref": "#/definitions/FormField«long»" + }, + "contactOrientationNumber": { + "description": "krestni jmeno", + "$ref": "#/definitions/FormField«string»" + }, + "contactStreet": { + "description": "ulice kontaktni adresy", + "$ref": "#/definitions/FormField«string»" + }, + "contactTown": { + "description": "mesto kontaktni adresy", + "$ref": "#/definitions/FormField«string»" + }, + "contactZip": { + "description": "PSC kontaktni adresy", + "$ref": "#/definitions/FormField«string»" + }, + "country": { + "description": "zeme trvaleho bydliste", + "$ref": "#/definitions/FormField«string»" + }, + "descriptiveNumber": { + "description": "cislo popisne trvaleho bydliste", + "$ref": "#/definitions/FormField«long»" + }, + "differentContactAddress": { + "type": "boolean", + "example": false, + "description": "priznak zda je konraktni adresa a trvala adresa stejna" + }, + "orientationNumber": { + "description": "orientacni cislo trvaleho bydliste", + "$ref": "#/definitions/FormField«string»" + }, + "staySince": { + "description": "od kdy evidovany pobyt na trvalem bydlisti", + "$ref": "#/definitions/FormField«long»" + }, + "street": { + "description": "ulice trvaleho bydliste", + "$ref": "#/definitions/FormField«string»" + }, + "town": { + "description": "mesto trvaleho bydliste", + "$ref": "#/definitions/FormField«string»" + }, + "zip": { + "description": "PSC trvaleho bydliste", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro zadani trvale a kontaktni adresy." + }, + "AddressFormPLoan": { + "type": "object", + "required": [ + "city", + "country", + "street", + "zip" + ], + "properties": { + "city": { + "description": "City", + "$ref": "#/definitions/FormField«string»" + }, + "country": { + "description": "Country", + "$ref": "#/definitions/FormField«string»" + }, + "street": { + "description": "Street", + "$ref": "#/definitions/FormField«string»" + }, + "zip": { + "description": "Zip", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Address form for pLoan client" + }, + "AddressPLoan": { + "type": "object", + "required": [ + "city", + "country", + "street", + "zip" + ], + "properties": { + "city": { + "type": "string", + "description": "Obec" + }, + "country": { + "type": "string", + "description": "Zeme" + }, + "street": { + "type": "string", + "description": "Ulice" + }, + "zip": { + "type": "string", + "description": "PSC" + } + }, + "description": "Address form for pLoan client" + }, + "AispBalance": { + "type": "object", + "properties": { + "amount": { + "description": "Account available amount. The currecy of this amount is the currency of the account in question.", + "$ref": "#/definitions/Amount" + }, + "creditDebitIndicator": { + "type": "string", + "description": "Indicates whether the balance of the account in question is positive or negative.", + "enum": [ + "CRDT", + "DBIT" + ] + }, + "date": { + "description": "Timestamp of this balance information", + "$ref": "#/definitions/BalanceDate" + }, + "type": { + "description": "Type of balance", + "$ref": "#/definitions/BalanceType" + } + }, + "description": "Client payment account balance" + }, + "Amount": { + "type": "object", + "required": [ + "currency", + "value" + ], + "properties": { + "currency": { + "type": "string", + "description": "Amount currency" + }, + "value": { + "type": "number", + "description": "Amount with the precision of two decimal places" + } + }, + "description": "Amount" + }, + "AmountStepConfig": { + "type": "object", + "properties": { + "maxAmount": { + "type": "integer", + "format": "int32" + }, + "minAmount": { + "type": "integer", + "format": "int32" + }, + "roundingFactor": { + "type": "integer", + "format": "int32" + }, + "stepLength": { + "type": "integer", + "format": "int32" + } + } + }, + "AmountTermMapping": { + "type": "object", + "properties": { + "maxLoanAmount": { + "type": "integer", + "format": "int32", + "description": "Horni hranice vyse uveru pro kterou nabizet dane doby splaceni." + }, + "minLoanAmount": { + "type": "integer", + "format": "int32", + "description": "Spodni hranice vyse uveru pro kterou nabizet dane doby splaceni." + }, + "terms": { + "type": "array", + "description": "Kolekce nabizenych dob splaceni.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "variantId": { + "type": "integer", + "format": "int64", + "description": "ID varianty - pouzito pro parovani nabizenych dob splaceni. Pouzito jen pro prehlednost." + } + } + }, + "ApplePayEncryptPaymentDataResponse": { + "type": "object", + "required": [ + "activationData", + "encryptedPassData", + "ephemeralPublicKey" + ], + "properties": { + "activationData": { + "type": "string", + "description": "The cryptographic OTP required to activate the card by the Network. This data is not interpreted by Apple and the formats and contents are Network specific." + }, + "encryptedPassData": { + "type": "string", + "description": "The ciphertext(hex) containing the card data, nonce, and nonce signature generated by the Issuer Server." + }, + "ephemeralPublicKey": { + "type": "string", + "description": "The bytes (hex) of the ephemeral public key which is required as a part of PKEncryptionSchemeECC_V2." + } + } + }, + "ApplicationContext": { + "type": "object", + "properties": { + "applicationName": { + "type": "string" + }, + "autowireCapableBeanFactory": { + "$ref": "#/definitions/AutowireCapableBeanFactory" + }, + "beanDefinitionCount": { + "type": "integer", + "format": "int32" + }, + "beanDefinitionNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "classLoader": { + "$ref": "#/definitions/ClassLoader" + }, + "displayName": { + "type": "string" + }, + "environment": { + "$ref": "#/definitions/Environment" + }, + "id": { + "type": "string" + }, + "parent": { + "$ref": "#/definitions/ApplicationContext" + }, + "parentBeanFactory": { + "$ref": "#/definitions/BeanFactory" + }, + "startupDate": { + "type": "integer", + "format": "int64" + } + } + }, + "ApplicationScoringRequest": { + "type": "object", + "required": [ + "prodPackageKey", + "surcharge" + ], + "properties": { + "existingClient": { + "type": "boolean", + "example": false, + "description": "Priznak existujiciho klienta v MMB" + }, + "loanAmount": { + "type": "number", + "description": "Vyse pujcky" + }, + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku pro expres pujcku" + }, + "surcharge": { + "type": "boolean", + "example": false, + "description": "Priznak, zda pridat maximalni prirazku" + }, + "term": { + "type": "integer", + "format": "int64", + "description": "Doba splaceni" + } + }, + "description": "Pozadavek na scoring zadosti o expres pujcku" + }, + "ApplicationStateRequest": { + "type": "object", + "required": [ + "appKey" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "ID zadosti" + } + }, + "description": "Pozadavek na zjisteni stavu zadosti" + }, + "ApplicationStateResponse": { + "type": "object", + "required": [ + "applicationId", + "applicationState", + "nasState" + ], + "properties": { + "applicationId": { + "type": "integer", + "format": "int64", + "description": "ID zadosti" + }, + "applicationState": { + "type": "string", + "description": "Stav zadosti v UFO" + }, + "nasState": { + "type": "string", + "description": "Stav zadosti v NAS" + }, + "stateDescription": { + "type": "string", + "description": "Popis stavu zadosti" + } + }, + "description": "Odpoved na zjisteni stavu zadosti" + }, + "AppointmentCreateForm": { + "type": "object", + "properties": { + "affiliatePartnerId": { + "type": "string", + "example": "24562", + "description": "ID spolupracujiciho partnera (reportovani prilezitosti k prodeji)" + }, + "affiliateSubpartnerId": { + "type": "string", + "description": "ID subpartnera, ktery spada pod spolupracujiciho partnera" + }, + "branchId": { + "description": "ID pobocky, na ktere ma ke schuzce dojit", + "$ref": "#/definitions/FormField«string»" + }, + "clientEmail": { + "description": "E-mail klienta", + "$ref": "#/definitions/FormField«string»" + }, + "clientFullName": { + "description": "Cele jmeno klienta", + "$ref": "#/definitions/FormField«string»" + }, + "clientPhoneNumber": { + "description": "Telefonni cislo klienta (ve formatu +420777888999", + "$ref": "#/definitions/FormField«string»" + }, + "dateTime": { + "example": "2020-01-06T14:00:00+0100", + "description": "Datum a cas (ISO 8601), na ktery ma byt schuzka sjednana", + "$ref": "#/definitions/FormField«date-time»" + }, + "documentsUrl": { + "description": "URL, ktere obdrzi klient v notifikaci o schuzce (napr. e-mailem), na kterem najde seznam dokumentu, ktere si ma s sebou na schuzku vzit", + "$ref": "#/definitions/URL" + }, + "productTypeId": { + "type": "integer", + "format": "int64", + "description": "Typ produktu, ktereho se schuzka bude tykat" + } + }, + "description": "Formular pro zalozeni zadosti klienta o schuzku na pobocce" + }, + "AppointmentCreateRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro domluveni schuzky na pobocce", + "$ref": "#/definitions/AppointmentCreateForm" + } + }, + "description": "Pozadavek pro zalozeni zadosti klienta o schuzku na pobocce" + }, + "AppointmentCreateResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o informace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/AppointmentCreateForm" + } + }, + "description": "Odpoved pro zalozeni zadosti klienta o schuzku na pobocce" + }, + "AsyncPollingRequest": { + "type": "object", + "description": "request pro polovani" + }, + "AsyncPollingResponse": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "description": "Stav transakce v asynchronim stavu", + "enum": [ + "PENDING", + "ACCEPTED", + "DENIED", + "ERROR", + "CONDITIONAL_APPROVAL", + "TIMEOUT" + ] + } + } + }, + "AtmServicePackage": { + "type": "object", + "required": [ + "active", + "title" + ], + "properties": { + "active": { + "type": "boolean", + "example": false, + "description": "Zda je balicek aktivni" + }, + "id": { + "type": "string", + "description": "Id balicku (muze byt null, v tom pripade jde o volbu bez aktivovanych balicku)" + }, + "title": { + "type": "string", + "description": "Nazev balicku" + } + }, + "description": "Informace o ATM balicku." + }, + "AtmServicePackageDateSetting": { + "type": "object", + "required": [ + "text", + "value" + ], + "properties": { + "text": { + "type": "string", + "description": "Textovy popis nastaveni" + }, + "value": { + "type": "string", + "description": "Hodnota nastaveni" + } + }, + "description": "Informace o platnosti balicku ci zmeny." + }, + "AtmServicePackagesSetupRequest": { + "type": "object", + "required": [ + "accountId" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Id uctu" + } + }, + "description": "Request pro ziskani nastaveni ATM balicku." + }, + "AtmServicePackagesSetupResponse": { + "type": "object", + "required": [ + "consent101", + "dateSettings", + "description", + "packages", + "tooltip" + ], + "properties": { + "consent101": { + "description": "Souhlas 101 klienta", + "$ref": "#/definitions/LoadConsent101Response" + }, + "dateSettings": { + "type": "array", + "description": "Platnosti balicku nebo zmen", + "items": { + "$ref": "#/definitions/AtmServicePackageDateSetting" + } + }, + "description": { + "type": "string", + "description": "Celkovy popis ATM servisnich balicku" + }, + "packages": { + "type": "array", + "description": "Seznam dostupnych balicku", + "items": { + "$ref": "#/definitions/AtmServicePackage" + } + }, + "tooltip": { + "type": "string", + "description": "Tooltip ATM servisnich balicku" + } + }, + "description": "Response s nastavenim ATM balicku." + }, + "AutowireCapableBeanFactory": { + "type": "object" + }, + "AvailabeAccountsForSwitchingResponse": { + "type": "object", + "properties": { + "accountIds": { + "type": "array", + "description": "Seznam ID uctu, pro ktere je mozny switching z jine banky", + "items": { + "type": "string" + } + } + }, + "description": "Obsahuje seznam uctu, pro ktere je mozny switching z jine banky" + }, + "AvailableStatementsFilter": { + "type": "object", + "properties": { + "dateFrom": { + "type": "string", + "format": "date-time", + "description": "Je-li zadano, budou vyhledany jen dokumenty od zadaneho (ucetniho) data vcetne." + }, + "dateTo": { + "type": "string", + "format": "date-time", + "description": "Je-li zadano, budou vyhledany jen dokumenty s datem mensim nebo rovno zadanemu datu." + }, + "numberFrom": { + "type": "string", + "description": "Je-li zadano, budou vraceny jen dokumenty s cislem vyssim nebo rovnym zadane hodnote." + }, + "numberTo": { + "type": "string", + "description": "Je-li zadano, budou vraceny jen dokumenty s cislem nizsim nebo rovnym zadane hodnote." + } + }, + "description": "Filter pro vypisy." + }, + "AvailableStatementsRequest": { + "type": "object", + "required": [ + "product" + ], + "properties": { + "filter": { + "description": "Filter, pomoci ktereho je mozne omezit vyhledavani seznamu.", + "$ref": "#/definitions/AvailableStatementsFilter" + }, + "product": { + "description": "Jednoznacna identifikace produktu, pro ktery jsou vypisy pozadovany.", + "$ref": "#/definitions/StatementProductIdentification" + } + }, + "description": "Pozadavek na seznam dostupnych vypisu." + }, + "AvailableStatementsResponse": { + "type": "object", + "required": [ + "minDateFrom", + "statements" + ], + "properties": { + "minDateFrom": { + "type": "string", + "format": "date-time", + "description": "Nejstarsi datum, pro ktere vypisy poskytujeme." + }, + "statements": { + "type": "array", + "description": "Seznam dostupnych vypisu.", + "items": { + "$ref": "#/definitions/StatementDetail" + } + } + }, + "description": "Odpoved se seznamem dostupnych vypisu." + }, + "Balance": { + "type": "object", + "properties": { + "approvedBalance": { + "type": "number", + "description": "Schvalena castka uveru" + }, + "availableBalance": { + "type": "number", + "description": "Disponibilni zustatek" + }, + "depositBalance": { + "type": "number", + "description": "Castka vkladu TV" + }, + "ledgerBalance": { + "type": "number", + "description": "Ucetni zustatek" + }, + "overdraftBalance": { + "type": "number", + "description": "Flexikredit" + } + }, + "description": "Model pro zapouzdreni zustatku pod danym uctem, ucet v Balance modelu neni evidovan, Balance je vracen vzdy jen na konkretni ucet. Obsahuje Ucetni zustatek, disponibilni zustatek, flexikredit, schvalenou castku uveru, castku vkladu TV." + }, + "BalanceDate": { + "type": "object", + "properties": { + "dateTime": { + "type": "string", + "format": "date-time", + "description": "Date or date and time of a balance information in ISO 8601 format" + } + }, + "description": "Timestamp of a balance information" + }, + "BalanceGetRequest": { + "type": "object", + "required": [ + "accountId" + ], + "properties": { + "accountId": { + "type": "string", + "description": "cislo uctu ke kteremu se budou vracet zustatky" + } + } + }, + "BalanceGetResponse": { + "type": "object", + "required": [ + "balance" + ], + "properties": { + "balance": { + "description": "Balance objekt obsahujici parametry pro nekolik ruznych druhu zustatku - Ucetni, disponibilni, flexikredit, schvaleny uver, castka vkladu TV", + "$ref": "#/definitions/Balance" + } + } + }, + "BalanceType": { + "type": "object", + "properties": { + "codeOrProprietary": { + "$ref": "#/definitions/CodeOrProprietary" + } + }, + "description": "Type of balance" + }, + "Bank": { + "type": "object", + "required": [ + "alphaCode", + "bankCode", + "name" + ], + "properties": { + "alphaCode": { + "type": "string", + "description": "Alpha kod banky" + }, + "bankCode": { + "type": "integer", + "format": "int32", + "description": "Kod banky" + }, + "name": { + "type": "string", + "description": "Plne pojmenovani banky" + } + }, + "description": "Trida pro evidenci jedne banky obsahujici jmeno banky, kod banky a alfa kod banky." + }, + "BankApiAccount": { + "type": "object", + "required": [ + "accountId", + "accountNumber", + "allowedOperations", + "balance", + "bic", + "currencyCode", + "iban", + "ownerName", + "primary", + "typeId", + "typeName" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Interni jednoznacny kod banky pod kterym komunikuje FE aplikace s BE. Kod se nezobrazuje klientovi." + }, + "accountNumber": { + "description": "cislo uctu rozdelene na predcisli cislo a kod banky", + "$ref": "#/definitions/AccountNumber" + }, + "allowedOperations": { + "type": "array", + "description": "prava na ucet pro konkretniho uzivatele, mozne hodnoty su PAYMENT_CREATE, PAYMENT_CREATE_CLI_ACC, PAYMENT_CANCEL, PAYMENT_LIST, STANDING_ORDER_LIST, STANDING_ORDER_CREATE, STANDING_ORDER_EDIT, STANDING_ORDER_DELETE, SIPO_LIST, SIPO_CREATE, SIPO_EDIT, SIPO_DELETE, DIRECT_DEBIT_LIST, DIRECT_DEBIT_CREATE, DIRECT_DEBIT_EDIT, DIRECT_DEBIT_DELETE, TRANSACTION_LIST, MOBILE_TOPUP, STATEMENT_LIST", + "items": { + "type": "string", + "enum": [ + "PAYMENT_CREATE", + "PAYMENT_CREATE_CLI_ACC", + "PAYMENT_CANCEL", + "PAYMENT_LIST", + "STANDING_ORDER_LIST", + "STANDING_ORDER_CREATE", + "STANDING_ORDER_EDIT", + "STANDING_ORDER_DELETE", + "SIPO_LIST", + "SIPO_CREATE", + "SIPO_EDIT", + "SIPO_DELETE", + "DIRECT_DEBIT_LIST", + "DIRECT_DEBIT_CREATE", + "DIRECT_DEBIT_EDIT", + "DIRECT_DEBIT_DELETE", + "TRANSACTION_LIST", + "BALANCE_LIST", + "MOBILE_TOPUP", + "STATEMENT_LIST", + "ACCOUNT_SETTINGS" + ] + } + }, + "balance": { + "description": "aktualni zustatky na uctu viz objekt Balance - ucetni, disponibilni, flexikredit, schvalena cast uveru, castka vkladu TV", + "$ref": "#/definitions/Balance" + }, + "bank": { + "type": "string", + "description": "Bank this account belongs to", + "enum": [ + "CREDITAS", + "CESKA_SPORITELNA", + "FIO", + "AIR_BANK" + ] + }, + "bic": { + "type": "string", + "description": "BIC kod - pro nas vzdy AGBACZPP" + }, + "bisCode": { + "type": "string", + "description": "bis code urcujici typ produktu a popisky produktu" + }, + "currencyCode": { + "type": "string", + "description": "kod meny uctu" + }, + "customName": { + "type": "string", + "description": "Volitelne jmeno, kterym si konkretni uzivatel pojmenoval ucet. Kazdy uzivatel s pravem k uctu muze mit vlastni nazev" + }, + "error": { + "type": "string", + "description": "Possible error while getting the account detail" + }, + "iban": { + "type": "string", + "description": "IBAN cislo uctu" + }, + "ownerName": { + "type": "string", + "description": "Plne jmeno majitele uctu" + }, + "primary": { + "type": "boolean", + "example": false, + "description": "priznak jestli se jedna o primarni ucet" + }, + "registrationId": { + "type": "integer", + "format": "int32", + "description": "Id of the registration of this account" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the account detail information" + }, + "transactions": { + "type": "array", + "description": "seznam transakci nad uctem, defaultne null, seznam se doplnuje samostatnou sluzbou", + "items": { + "$ref": "#/definitions/Transaction" + } + }, + "typeId": { + "type": "string", + "description": "typ uctu podle ciselniku v AccountType: CURRENT_1(1) bezny ucet, CURRENT_2(2) bezny ucet, CURRENT_3(3) bezny ucet, CURRENT_4(4) bezny ucet, SAVING(11) sporici ucet, REGULAR_SAVING(15) ucet pravidelneho sporeni, JTV(20) JTV, RTV(21) RTV, LOAN(30) Uverovy ucet, MORTAGE(31) Hypoteka, EXPRES(32) Expres pujcka, OTHER(90) Ostatni", + "enum": [ + "CURRENT_1(1) bezny ucet", + "CURRENT_2(2) bezny ucet", + "CURRENT_3(3) bezny ucet", + "CURRENT_4(4) bezny ucet", + "SAVING(11) sporici ucet", + "REGULAR_SAVING(15) ucet pravidelneho sporeni", + "JTV(20) JTV", + "RTV(21) RTV", + "LOAN(30) Uverovy ucet", + "MORTAGE(31) Hypoteka", + "EXPRES(32) Expres pujcka", + "OTHER(90) Ostatni" + ] + }, + "typeName": { + "type": "string", + "description": "slovni pojmenovani typu uctu v TypeId" + } + }, + "description": "Other bank account detail." + }, + "BankApiAccountsResponse": { + "type": "object", + "properties": { + "accounts": { + "type": "array", + "description": "Collection of client accounts", + "items": { + "$ref": "#/definitions/BankApiAccount" + } + } + }, + "description": "List of accounts in other banks which were registered by the user." + }, + "BankApiAvailableBank": { + "type": "object", + "properties": { + "code": { + "type": "string", + "enum": [ + "CREDITAS", + "CESKA_SPORITELNA", + "FIO", + "AIR_BANK" + ] + }, + "name": { + "type": "string" + } + } + }, + "BankApiBanksResponse": { + "type": "object", + "required": [ + "connectedAccounts" + ], + "properties": { + "availableBanks": { + "type": "array", + "description": "List of all banks the agregator can connect to via api with details", + "items": { + "$ref": "#/definitions/BankApiAvailableBank" + } + }, + "banks": { + "type": "array", + "description": "Set of all banks the agregator can connect to via api", + "items": { + "type": "string", + "enum": [ + "CREDITAS", + "CESKA_SPORITELNA", + "FIO", + "AIR_BANK" + ] + } + }, + "connectedAccounts": { + "type": "array", + "description": "List of all connected accounts.", + "items": { + "$ref": "#/definitions/BankApiAccount" + } + } + }, + "description": "Set of all banks the agregator can connect to via api." + }, + "BankApiLoginDetailResponse": { + "type": "object", + "required": [ + "authType", + "id", + "loginUrl", + "title" + ], + "properties": { + "authType": { + "type": "string", + "description": "Type of authenitcation.", + "enum": [ + "OAUTH", + "NET_BANKING" + ] + }, + "id": { + "type": "string", + "description": "Unique identifier of a bank.", + "enum": [ + "CREDITAS", + "CESKA_SPORITELNA", + "FIO", + "AIR_BANK" + ] + }, + "loginUrl": { + "type": "string", + "description": "One time use URL for connecting a bank." + }, + "title": { + "type": "string", + "description": "Name of the bank." + } + } + }, + "BankApiTransactionsResponse": { + "type": "object", + "properties": { + "transactions": { + "type": "array", + "description": "Collection of transactions", + "items": { + "$ref": "#/definitions/Transaction" + } + } + }, + "description": "List of transactions on an account." + }, + "BanknoteFees": { + "type": "object", + "required": [ + "minimalFee", + "percentage", + "percentageInPreclusion" + ], + "properties": { + "minimalFee": { + "type": "number", + "format": "double", + "description": "Minimální poplatek." + }, + "percentage": { + "type": "number", + "format": "double", + "description": "Procento poplatku." + }, + "percentageInPreclusion": { + "type": "number", + "format": "double", + "description": "Procento poplatku v prekluzi." + } + }, + "description": "Poplatky." + }, + "BeanFactory": { + "type": "object" + }, + "BenePlusBalance": { + "type": "object", + "properties": { + "balanceAmount": { + "type": "number", + "description": "Usetrena castka" + }, + "currencyCode": { + "type": "string", + "description": "Mena usetrene castky" + }, + "relevantToDate": { + "type": "string", + "format": "date-time", + "description": "Datum ke kteremu je usetrena castka relevatni" + } + }, + "description": "Trida pro celkovou usetrenou castku pomoci bene plus." + }, + "BenePlusBalanceResponse": { + "type": "object", + "properties": { + "balance": { + "description": "Objekt pro celkovou usetrenou castku pres bene plus", + "$ref": "#/definitions/BenePlusBalance" + } + } + }, + "BlockedTransaction": { + "type": "object", + "required": [ + "cardId" + ], + "properties": { + "amount": { + "type": "number", + "description": "Castka platby" + }, + "authorizationDate": { + "type": "string", + "format": "date-time", + "description": "Datum autorizace blokace." + }, + "authorizationTime": { + "type": "string", + "format": "date-time", + "description": "Cas autorizace blokace." + }, + "authorizedAmount": { + "type": "number", + "description": "Autorizovana blokovana castka" + }, + "blockDate": { + "type": "string", + "format": "date-time", + "description": "Datum blokace" + }, + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni id karty v UDEBS" + }, + "cardNumber": { + "type": "string", + "description": "Cislo konkretni karty patrici pod hlavni komercni kartu, ke ktere se vaze blokace" + }, + "cardType": { + "type": "string", + "description": "Typ karty (CREDIT(500), DEBIT(600))", + "enum": [ + "CREDIT", + "DEBIT" + ] + }, + "currencyCode": { + "type": "string", + "description": "Mena platby" + }, + "description": { + "type": "string", + "description": "Popis blokace" + }, + "direction": { + "type": "string", + "description": "Typ autorizace - CREDIT / DEBIT", + "enum": [ + "DEBIT", + "CREDIT" + ] + }, + "type": { + "type": "string", + "description": "Typ platby" + } + } + }, + "BranchesResponse": { + "type": "object", + "properties": { + "branches": { + "type": "object", + "description": "List of branches for logged ufo user", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "branches list for logged ufo user" + }, + "BrokerValidationRequest": { + "type": "object", + "required": [ + "code" + ], + "properties": { + "code": { + "type": "string", + "description": "Broker code" + } + }, + "description": "Request for validation of broker code." + }, + "BrokerValidationResponse": { + "type": "object", + "required": [ + "brokerName", + "valid" + ], + "properties": { + "brokerName": { + "type": "string", + "description": "Broker name" + }, + "valid": { + "type": "boolean", + "example": false, + "description": "Broker code valid flag" + } + }, + "description": "Response for validation of broker code." + }, + "CaOnboarding": { + "type": "object", + "properties": { + "path": { + "type": "string", + "example": "/ca-onboarding/ca-onboarding-android.zip", + "description": "Relativni cesta k ZIP zdroji CA Onboarding aplikace." + } + } + }, + "CacheLoadRequest": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Klic, ktery identifikuje data" + } + }, + "description": "Pozadavek na nacteni dat z cache" + }, + "CacheLoadResponse": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Data nactena z cache" + } + }, + "description": "Odpoved na nacteni dat z cache" + }, + "CacheSaveRequest": { + "type": "object", + "required": [ + "data", + "key" + ], + "properties": { + "data": { + "type": "string", + "description": "Data pro ulozeni do cache" + }, + "expires": { + "type": "string", + "format": "date-time", + "description": "Doba vyprseni polozky v cache" + }, + "key": { + "type": "string", + "description": "Klic, ktery identifikuje data" + } + }, + "description": "Pozadavek na ulozeni dat do cache" + }, + "CalculatorInstallmentCountMapping": { + "type": "object", + "required": [ + "installmentCounts", + "maxAmount", + "minAmount" + ], + "properties": { + "installmentCounts": { + "type": "array", + "description": "set moznych splatek pro zadane hranice pujcky", + "items": { + "type": "integer", + "format": "int32" + } + }, + "maxAmount": { + "type": "number", + "description": "horni hranice pujcky pro dany set splatek" + }, + "minAmount": { + "type": "number", + "description": "dolni hranice pujcky pro dany set splatek" + } + } + }, + "CalculatorSettings": { + "type": "object", + "properties": { + "amountTermMapping": { + "type": "array", + "description": "Kolekce mapovani rozsahu vyse uveru.", + "items": { + "$ref": "#/definitions/AmountTermMapping" + } + }, + "loanAmountStep": { + "type": "integer", + "format": "int32", + "description": "Krok pro vypocet nabizenych vysi uveru v celych tisicich." + }, + "maxLoanAmount": { + "type": "integer", + "format": "int32", + "description": "Maximalni povolena vyse uveru v celych tisicich" + }, + "minLoanAmount": { + "type": "integer", + "format": "int32", + "description": "Minimalni povolena vyse uveru v celych tisicich" + } + } + }, + "CallToActionButton": { + "type": "object", + "properties": { + "actionData": { + "type": "string" + }, + "actionLabelText": { + "type": "string" + }, + "actionType": { + "type": "string", + "enum": [ + "APP_UPDATE", + "WEB", + "APP_PAGE", + "PHONE_CALL", + "EMAIL" + ] + } + } + }, + "CallbackForm": { + "type": "object", + "required": [ + "taskSubCategory", + "taskType" + ], + "properties": { + "email": { + "description": "Email", + "$ref": "#/definitions/FormField«string»" + }, + "messageText": { + "description": "Text klienta", + "$ref": "#/definitions/FormField«string»" + }, + "name": { + "description": "Jmeno klienta", + "$ref": "#/definitions/FormField«string»" + }, + "phoneNumber": { + "description": "Telefonni cislo", + "$ref": "#/definitions/FormField«string»" + }, + "phonePrefix": { + "description": "Predcisli telefonu", + "$ref": "#/definitions/FormField«string»" + }, + "surname": { + "description": "Prijmeni klienta", + "$ref": "#/definitions/FormField«string»" + }, + "taskSubCategory": { + "type": "string", + "description": "Podkategorie ukolu [ADC_CALL_CENTRE(10)]", + "enum": [ + "ADC_CALL_CENTRE" + ] + }, + "taskType": { + "type": "string", + "description": "Typ ukolu [COMMON_QUESTION(103)]", + "enum": [ + "COMMON_QUESTION" + ] + }, + "typeOfChannel": { + "type": "string", + "description": "Kanal ktery ma banka pouzit" + } + } + }, + "CallbackRequest": { + "type": "object", + "required": [ + "callbackForm" + ], + "properties": { + "callbackForm": { + "description": "Formular prodejni funkce callback", + "$ref": "#/definitions/CallbackForm" + } + } + }, + "CallbackResponse": { + "type": "object", + "required": [ + "callbackForm" + ], + "properties": { + "callbackForm": { + "description": "Formular prodejni funkce callback", + "$ref": "#/definitions/CallbackForm" + } + } + }, + "CanceledApplicationStateRequest": { + "type": "object", + "required": [ + "appKey" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "ID zadosti" + } + }, + "description": "Odpoved zjisteni stavu stornovani zadosti" + }, + "CanceledApplicationStateResponse": { + "type": "object", + "required": [ + "state" + ], + "properties": { + "state": { + "type": "string", + "description": "Stav stornovane zadosti", + "enum": [ + "IN_PROGRESS", + "DONE", + "ERROR" + ] + } + }, + "description": "Odpoved na zjisteni stavu stornovane zadosti" + }, + "CarCalculatorCalculation": { + "type": "object", + "properties": { + "instalment": { + "type": "number", + "description": "Mesicni vyse splatky v CZK." + }, + "interestRate": { + "type": "number", + "description": "Urokova sazba v procentech." + }, + "loan": { + "type": "number", + "description": "Pujcka." + }, + "rpsn": { + "type": "number", + "description": "RPSN v procentech." + }, + "totalAmount": { + "type": "number", + "description": "Celkova castka v CZK." + } + }, + "description": "Vypoctene hodnoty pro auto kalkulacku." + }, + "CarCalculatorCalculationResponse": { + "type": "object", + "properties": { + "calculation": { + "description": "Kalkulace hypoteky pro auto kalkulacku.", + "$ref": "#/definitions/CarCalculatorCalculation" + } + }, + "description": "Odpoved kalkulace pro auto kalkulacku." + }, + "CarCalculatorSetup": { + "type": "object", + "required": [ + "advancePayment", + "carPrice", + "instalmentCount", + "loan" + ], + "properties": { + "advancePayment": { + "description": "Uzavreny interval platba predem. [min, max]", + "$ref": "#/definitions/DoubleRange" + }, + "carPrice": { + "description": "Uzavreny interval cena auta. [min, max]", + "$ref": "#/definitions/DoubleRange" + }, + "instalmentCount": { + "description": "Celociselny uzavreny interval pocet splatek. [min, max]", + "$ref": "#/definitions/IntRange" + }, + "loan": { + "description": "Uzavreny interval platba predem. [min, max]", + "$ref": "#/definitions/DoubleRange" + } + }, + "description": "Parametry produktu pro auto kalkulacku." + }, + "CarCalculatorSetupResponse": { + "type": "object", + "properties": { + "calculatorSetup": { + "description": "Parametre produktu pro auto hypoteku.", + "$ref": "#/definitions/CarCalculatorSetup" + } + }, + "description": "Odpoved s parametry produktu pro auto kalkulacku." + }, + "CarVinInformation": { + "type": "object", + "properties": { + "carBrand": { + "type": "string", + "description": "Znacka auta" + }, + "color": { + "type": "string", + "description": "Barva karoserie" + }, + "model": { + "type": "string", + "description": "Model auta" + }, + "state": { + "type": "string", + "description": "Stav auta" + }, + "vin": { + "type": "string", + "description": "VIN" + }, + "yearOfManufacture": { + "type": "integer", + "format": "int64", + "description": "Rok vyroby" + } + }, + "description": "Informace o aute podle VIN kodu." + }, + "CarVinInformationResponse": { + "type": "object", + "properties": { + "carVinInformationList": { + "type": "array", + "description": "Informace o aute podle VIN kodu.", + "items": { + "$ref": "#/definitions/CarVinInformation" + } + } + }, + "description": "Odpoved s informacemi o aute podle VIN kodu." + }, + "Card logo class containing logo version, logo data and mimetype of logo": { + "type": "object", + "required": [ + "logoUrl", + "mimeType" + ], + "properties": { + "logoData": { + "type": "string", + "description": "Logo karty" + }, + "logoUrl": { + "type": "string", + "description": "URL obrazku karty" + }, + "logoVersion": { + "type": "integer", + "format": "int32", + "description": "Verze loga karty" + }, + "mimeType": { + "type": "string", + "description": "Mimetype" + } + } + }, + "Card3DSecureInfoRequest": { + "type": "object", + "required": [ + "cardId" + ], + "properties": { + "cardId": { + "type": "integer", + "format": "int64", + "description": "Id karty, ke ktere se dotahne 3d secure info" + } + } + }, + "Card3DSecureInfoResponse": { + "type": "object", + "properties": { + "allowedOperations": { + "type": "array", + "description": "Povolene operace ke karte tykajici se 3D secure - (CHANGE_3DS_ALLOWED - povoleni zmeny stavu 3D secure,CHANGE_3DS_MOBILE_PHONE_ALLOWED - povoleni zmeny 3D secure telefonniho cisla)", + "items": { + "type": "string", + "enum": [ + "SETTINGS_ALLOWED", + "TRANSACTIONS_ALLOWED", + "CARD_BLOCK_ALLOWED", + "CARD_PAYMENT_ORDER_ALLOWED", + "CARD_UNBLOCK_ALLOWED", + "CREDIT_REPAYMENT_ALLOWED", + "CHANGE_LIMIT_ATM_ALLOWED", + "CHANGE_LIMIT_CASHLESS_TRANS_ALLOWED", + "CHANGE_LIMIT_MOTO_ALLOWED", + "CHANGE_INTERNET_TRANS_ALLOWED", + "CHANGE_3DS_ALLOWED", + "CHANGE_3DS_MOBILE_PHONE_ALLOWED", + "CHANGE_MOTO_ALLOWED", + "CHANGE_ATM_WORLD_ALLOWED", + "TOKENIZATION_ALLOWED", + "STATEMENT_LIST", + "BONUS_PACKAGE_ALLOWED", + "TOKEN_LIST" + ] + } + }, + "card3DSecure": { + "type": "string", + "description": "Stav 3D secure (NONACTIVE - neaktivni, ACTIVE - aktivni, BLOCKED - blokovan, NORESPONSE - nepodarilo se zjistit stav)", + "enum": [ + "NONACTIVE", + "ACTIVE", + "BLOCKED", + "NORESPONSE" + ] + }, + "secure3DPhoneNumber": { + "description": "Telefonni kontakt pro 3D secure", + "$ref": "#/definitions/PhoneNumber" + } + } + }, + "CardBlockForm": { + "type": "object", + "required": [ + "cardId" + ], + "properties": { + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni UDEBS id karty" + }, + "onlineFlag": { + "type": "string", + "description": "Priznam zapsani primo do GPE online (1 - ano, 0 - ne)" + }, + "unblockDate": { + "type": "string", + "format": "date-time", + "description": "Datum pro odblokovani karty" + }, + "unblockMobileNumber": { + "description": "Cislo mobilniho telefonu pro odblokovani karty", + "$ref": "#/definitions/FormField«string»" + }, + "unblockMobilePrefix": { + "description": "Predcisli mobilniho telefonu pro odblokovani karty", + "$ref": "#/definitions/FormField«string»" + } + } + }, + "CardBlockRequest": { + "type": "object", + "required": [ + "cardBlockForm" + ], + "properties": { + "cardBlockForm": { + "description": "Formular blokovani karty", + "$ref": "#/definitions/CardBlockForm" + } + } + }, + "CardBlockResponse": { + "type": "object", + "required": [ + "cardBlockForm" + ], + "properties": { + "cardBlockForm": { + "description": "Formular blokovani karty", + "$ref": "#/definitions/CardBlockForm" + } + } + }, + "CardListResponse": { + "type": "object", + "required": [ + "creditCards", + "debitCards" + ], + "properties": { + "creditCards": { + "type": "array", + "description": "seznam kreditnich karet", + "items": { + "$ref": "#/definitions/CreditCard" + } + }, + "debitCards": { + "type": "array", + "description": "seznam debitnich karet", + "items": { + "$ref": "#/definitions/DebitCard" + } + } + } + }, + "CardPaymentCommitRequest": { + "type": "object", + "required": [ + "paymentOrderForm", + "transactionId" + ], + "properties": { + "paymentOrderForm": { + "description": "formular platebniho prikazu z karty zaslany ke zpracovani", + "$ref": "#/definitions/CardPaymentOrderForm" + }, + "transactionId": { + "type": "string", + "description": "Id transakce vygenerovane ze zadaneho platebniho prikazu" + } + } + }, + "CardPaymentCommitResponse": { + "type": "object", + "properties": { + "paymentOrder": { + "description": "Objekt platebniho prikazu naplneny vstupni daty a doplneny o id transakce, status atd. Je vyplnene pouze pokud se podarilo formular na vstupu zvalidovat.", + "$ref": "#/definitions/PaymentOrder" + }, + "paymentOrderForm": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/CardPaymentOrderForm" + } + } + }, + "CardPaymentCreateRequest": { + "type": "object", + "required": [ + "paymentOrderForm" + ], + "properties": { + "paymentOrderForm": { + "description": "Vstupni formular pro zadani platby.", + "$ref": "#/definitions/CardPaymentOrderForm" + } + } + }, + "CardPaymentCreateResponse": { + "type": "object", + "properties": { + "challenge": { + "type": "string" + }, + "paymentOrderForm": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/CardPaymentOrderForm" + }, + "transactionId": { + "type": "string", + "description": "Vygenerovane transactionId kterym se overuje pri commitu, ze se jedna stale o stejnou platbu. Vraci se pouze pokud byla validace formulare v poradku." + } + } + }, + "CardPaymentOrderForm": { + "type": "object", + "required": [ + "amount", + "cardId", + "currencyCode", + "destinationAccountBank", + "destinationAccountNumber", + "destinationAccountPrefix", + "dueDate", + "repeatedPaymentPackageId" + ], + "properties": { + "amount": { + "description": "castka platby", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "cardId": { + "description": "cislo karty", + "$ref": "#/definitions/FormField«long»" + }, + "categoryId": { + "description": "kategorie, do ktere klient transakci zaradil (viz /transaction/categories)", + "$ref": "#/definitions/FormField«long»" + }, + "constantSymbol": { + "description": "konstantni symbol", + "$ref": "#/definitions/FormField«long»" + }, + "currencyCode": { + "description": "kod meny platby", + "$ref": "#/definitions/FormField«string»" + }, + "destinationAccountBank": { + "description": "kod banky ciloveho cisla uctu", + "$ref": "#/definitions/FormField«int»" + }, + "destinationAccountNumber": { + "description": "cislo ciloveho cisla uctu", + "$ref": "#/definitions/FormField«long»" + }, + "destinationAccountPrefix": { + "description": "prefix ciloveho cisla uctu", + "$ref": "#/definitions/FormField«int»" + }, + "destinationName": { + "description": "jmeno protiuctu", + "$ref": "#/definitions/FormField«string»" + }, + "dueDate": { + "description": "datum splatnosti", + "$ref": "#/definitions/FormField«date-time»" + }, + "noteForPayer": { + "description": "zprava pro odesilatele", + "$ref": "#/definitions/FormField«string»" + }, + "packageId": { + "description": "id baliku, ve kterem se zadava vice plateb najednou", + "$ref": "#/definitions/FormField«long»" + }, + "repeatedPaymentPackageId": { + "type": "integer", + "format": "int64", + "description": "priznak zda se jedna o opakovanou platbu - opakovana platba je takova, ktera je zadana z historie plateb a nema zmemene ucty" + }, + "specificSymbol": { + "description": "specificky symbol", + "$ref": "#/definitions/FormField«long»" + }, + "statusId": { + "description": "status provedeni platby", + "$ref": "#/definitions/FormField«int»" + }, + "templateId": { + "description": "id konkretni jedne transakce v ramci baliku plateb", + "$ref": "#/definitions/FormField«long»" + }, + "variableSymbol": { + "description": "variabilni symbol", + "$ref": "#/definitions/FormField«long»" + } + }, + "description": "Formular pro platebni prikaz z kreditni karty" + }, + "CardSettingsForm": { + "type": "object", + "required": [ + "cardId" + ], + "properties": { + "atmWorld": { + "type": "boolean", + "example": false, + "description": "Povoleni vyberu z bankomatu v zahranici - mimo EU (true, false)" + }, + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni UDEBS id karty" + }, + "internetTrans": { + "type": "boolean", + "example": false, + "description": "Povoleni internetovych transakci (true, false)" + }, + "limitAtm": { + "description": "Limit pro vyber hotovosti z bankomatu", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "limitCashlessTrans": { + "description": "Limit pro bezhotovosti nakupy", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "limitMoto": { + "description": "Limit pro internetove a MOTO transakce", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "motoTrans": { + "type": "boolean", + "example": false, + "description": "Povoleni internetovych/MOTO transakci (true, false)" + }, + "secure3D": { + "type": "string", + "description": "Aktivita 3D secure (NONACTIVE(0), ACTIVE(1), BLOCKED(2))", + "enum": [ + "NONACTIVE", + "ACTIVE", + "BLOCKED", + "NORESPONSE" + ] + }, + "secure3DMobileNumber": { + "description": "Mobilni telefonni cislo pro 3D secure", + "$ref": "#/definitions/FormField«string»" + }, + "secure3DMobilePrefix": { + "description": "Predcisli mobilniho telefonniho cisla pro 3D secure", + "$ref": "#/definitions/FormField«string»" + } + } + }, + "CardSettingsRequest": { + "type": "object", + "required": [ + "cardSettingsForm" + ], + "properties": { + "cardSettingsForm": { + "description": "Formular nastaveni karty", + "$ref": "#/definitions/CardSettingsForm" + } + } + }, + "CardSettingsResponse": { + "type": "object", + "required": [ + "cardSettingsForm" + ], + "properties": { + "cardSettingsForm": { + "description": "Formular nastaveni karty", + "$ref": "#/definitions/CardSettingsForm" + } + } + }, + "CardToken": { + "type": "object", + "properties": { + "allowedOperations": { + "type": "array", + "description": "Povolene operace s tokenem", + "items": { + "type": "string", + "enum": [ + "TOKEN_BLOCK", + "TOKEN_UNBLOCK", + "TOKEN_DELETE" + ] + } + }, + "cardTokenNumber": { + "type": "string", + "description": "RS_CARDTOKENNUMBER" + }, + "cardTokenNumberMasked": { + "type": "string", + "description": "RS_CARDTOKENNUMBERMASK" + }, + "cardTokenRefId": { + "type": "string", + "description": "RS_CARDTOKENREFID" + }, + "createDate": { + "type": "string", + "format": "date-time", + "description": "RS_CARDTOKENCREATEDATE" + }, + "deviceId": { + "type": "string", + "description": "RS_CARDTOKENDEVICEID" + }, + "deviceName": { + "type": "string", + "description": "RS_CARDTOKENDEVICENAME" + }, + "deviceType": { + "type": "string", + "description": "RS_CARDTOKENDEVICETYPE" + }, + "deviceTypeCode": { + "type": "string", + "description": "Preklad z RS_CARDTOKENDEVICETYPE", + "enum": [ + "PHONE", + "TABLET", + "WATCH", + "UNDEFINED" + ] + }, + "expirationDate": { + "type": "string", + "format": "date-time", + "description": "RS_CARDTOKENEXPIRATIONDATE" + }, + "panReferenceId": { + "type": "string", + "description": "RS_CARDPANREFERENCEID" + }, + "status": { + "type": "string", + "description": "RS_CARDTOKENSTATUSCODE (UNMAPPED, ACTIVE, SUSPENDED, DELETED)", + "enum": [ + "UNMAPPED", + "ACTIVE", + "INACTIVE", + "SUSPENDED", + "DELETED" + ] + }, + "tokenRequestorId": { + "type": "string", + "description": "RS_CARDTOKENREQUESTORID - konstanta identifikujici poskytovatele penezenky, ruzna hodnota pro ruznou kombinaci apple/google,visa/mastercard." + }, + "walletId": { + "type": "string", + "description": "RS_CARDTOKENWALLETID" + }, + "walletType": { + "type": "string", + "description": "Typ penezenky (GOOGLE/APPLE/FITBIT/...)" + } + }, + "description": "Nactene tokeny k danym kartam." + }, + "CardTokenListRequest": { + "type": "object", + "properties": { + "cardIds": { + "type": "array", + "description": "seznam id karet z /card/list[(creditCards|debitCards)/cardId]", + "items": { + "type": "integer", + "format": "int64" + } + }, + "walletIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "states": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "UNMAPPED", + "ACTIVE", + "INACTIVE", + "SUSPENDED", + "DELETED" + ] + } + }, + "cardTokenRefIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "panReferenceIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "walletTypes": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "CardTokenListResponse": { + "type": "object", + "required": [ + "cardTokensMap" + ], + "properties": { + "cardTokensMap": { + "type": "array", + "description": "Mapa tokenu prirazenych k pozadovanym kartam.", + "items": { + "$ref": "#/definitions/CardTokenMapEntry" + } + } + } + }, + "CardTokenMapEntry": { + "type": "object", + "required": [ + "cardId", + "tokens" + ], + "properties": { + "cardId": { + "type": "integer", + "format": "int64", + "description": "id karty" + }, + "error": { + "type": "string", + "description": "chyba pro konkretni kartu, pokud se nacteni tokenu podarilo, pak je null." + }, + "tokens": { + "type": "array", + "description": "seznam tokenu", + "items": { + "$ref": "#/definitions/CardToken" + } + } + }, + "description": "Seznam tokenu k dane karte." + }, + "CardTokenRequest": { + "type": "object", + "required": [ + "cardId", + "cardTokenRefId" + ], + "properties": { + "cardId": { + "type": "string", + "description": "Interni ID karty v UDEBS - z /card/list[(creditCards|debitCards)/cardId]" + }, + "cardTokenRefId": { + "type": "string", + "description": "RefId konkretniho tokenu ke smazani" + }, + "tokenRequestorId": { + "type": "string", + "description": "RS_CARDTOKENREQUESTORID - konstanta identifikujici poskytovatele penezenky, ruzna hodnota pro ruznou kombinaci apple/google,visa/mastercard." + } + } + }, + "CardTokenResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "example": false, + "description": "Indikator toho, zda se operaci povedlo provest." + } + } + }, + "CardTransactionBlockRequest": { + "type": "object", + "required": [ + "cardId" + ], + "properties": { + "accountNumber": { + "type": "string", + "description": "Cislo uctu, ke keteremu je vazana hlavni komercni karta. Pouzije se, pokud neni zadano ID karty" + }, + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni id karty" + }, + "demoResponseID": { + "type": "integer", + "format": "int32" + }, + "typeId": { + "type": "string", + "description": "Typ karty (CREDIT(500), DEBIT(600)", + "enum": [ + "CREDIT", + "DEBIT" + ] + } + } + }, + "CardTransactionBlockResponse": { + "type": "object", + "required": [ + "blockedTransactionList" + ], + "properties": { + "blockedTransactionList": { + "type": "array", + "description": "Seznam blokovanych transakci na karte serazenych podle data blokace sestupne - nejnovejsi je prvni", + "items": { + "$ref": "#/definitions/BlockedTransaction" + } + } + } + }, + "CardUnblockRequest": { + "type": "object", + "required": [ + "cardId" + ], + "properties": { + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni id konkretni karty pro zablokovani" + } + } + }, + "CardUnblockResponse": { + "type": "object", + "required": [ + "onlineFlag" + ], + "properties": { + "onlineFlag": { + "type": "string", + "description": "Priznam zapsani primo do GPE online (1 - ano, 0 - ne)" + } + } + }, + "CardUserAddress": { + "type": "object", + "properties": { + "administrativeArea": { + "type": "string", + "description": "{country}" + }, + "countryCode": { + "type": "string", + "description": "{dle ISO (2 znaky) normy podle country}" + }, + "line1": { + "type": "string", + "description": "{street} {descriptiveNumber}" + }, + "line2": { + "type": "string", + "description": "{orentationNumber}" + }, + "locality": { + "type": "string", + "description": "{town}" + }, + "name": { + "type": "string", + "description": "{firstName} {lastName}" + }, + "phoneNumber": { + "type": "string", + "description": "z /user/detail[/user/contact: {phoneMobile/prefix} {phoneMobile/number}" + }, + "postalCode": { + "type": "string", + "description": "{postCode}" + } + }, + "description": "Adresa drzitele karty, data z /user/detail[/user/contact/address]" + }, + "ChangeAccountCustomNameForm": { + "type": "object", + "properties": { + "accountId": { + "$ref": "#/definitions/FormField«string»" + }, + "customName": { + "$ref": "#/definitions/FormField«string»" + } + } + }, + "ChangeAccountCustomNameRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular", + "$ref": "#/definitions/ChangeAccountCustomNameForm" + } + }, + "description": "pozadavek na zmenu vlastniho pojmenovani uctu." + }, + "ChangeAccountCustomNameResponse": { + "type": "object", + "properties": { + "form": { + "description": "Formular. Pokud je vyplnen, byla na vstupu validacni chyba.", + "$ref": "#/definitions/ChangeAccountCustomNameForm" + } + }, + "description": "pozadavek na zmenu vlastniho pojmenovani uctu." + }, + "CheckApplicationWorkflowStateRequest": { + "type": "object", + "required": [ + "appKey", + "approvalProcessEnded" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "ID zadosti" + }, + "approvalProcessEnded": { + "type": "boolean", + "example": false, + "description": "Priznak, jestli proces schvalovani v NAS skoncil" + } + }, + "description": "Pozadavek na kontrolu stavu workflow v NAS" + }, + "CheckForUpdateRequest": { + "type": "object", + "required": [ + "platform" + ], + "properties": { + "pilot": { + "type": "boolean", + "example": false, + "description": "Priznak, jestli je vyzadovana pilotni verze nebo ne. Pokud neni specifikovana, bere se jako false." + }, + "platform": { + "type": "string", + "example": "android", + "description": "Nazev platformy, ktera pozaduje update, napr. \"ios\" nebo \"android\"." + } + } + }, + "CheckForUpdateResponse": { + "type": "object", + "properties": { + "caOnboarding": { + "description": "Objekt s detailni informaci o CA Onboarding casti.", + "$ref": "#/definitions/CaOnboarding" + } + } + }, + "CheckSignedDocumentsRequest": { + "type": "object", + "required": [ + "tokenId" + ], + "properties": { + "tokenId": { + "type": "string", + "description": "Token pro aplikaci MPodpis" + } + }, + "description": "Pozadavek na kontrolu stavu podepsanych smluv" + }, + "CheckSignedDocumentsResponse": { + "type": "object", + "required": [ + "signedDocuments" + ], + "properties": { + "signedDocuments": { + "type": "array", + "description": "Seznam podepisovanych dokumentu", + "items": { + "$ref": "#/definitions/SignedDocument" + } + } + }, + "description": "Odpoved na kontrolu stavu podepsanych smluv" + }, + "CifStatusRequest": { + "type": "object", + "required": [ + "appKey" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "ID of request for CIF application" + } + }, + "description": "pLoan check CIF application progress status request" + }, + "CifStatusResponse": { + "type": "object", + "properties": { + "cifId": { + "type": "string", + "description": "ID of created CIF application" + }, + "reason": { + "description": "Reason info of final status", + "$ref": "#/definitions/DecisionReason" + }, + "status": { + "type": "string", + "description": "HUB application status", + "enum": [ + "IN_PROGRESS", + "IN_APPROVAL", + "BRIDGER", + "PARKING", + "AP", + "VERIFICATION", + "DOCUMENTS_MISSING", + "CONDITIONAL_APPROVAL", + "REJECTED", + "APPROVED", + "DONE", + "CANCELED", + "SCORING_PROCESS_ERROR", + "MANUAL_APPROVING", + "UNKNOWN" + ] + } + }, + "description": "Check of cif application status" + }, + "CifUpdatePLoanBrokerRequest": { + "type": "object", + "required": [ + "appKey", + "birthNumber", + "dependPersonsCount", + "educationType", + "employmentId", + "employmentName", + "employmentSince", + "employmentTrial", + "employmentType", + "incomeAverageThreeMonths", + "incomeFamily" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "CIF application key" + }, + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "cifId": { + "type": "string", + "description": "CIF of existing client without active products" + }, + "dependPersonsCount": { + "type": "integer", + "format": "int64", + "description": "Count of dependent persons" + }, + "educationType": { + "type": "string", + "description": "Type of education" + }, + "employerAddress": { + "description": "Employer Address", + "$ref": "#/definitions/AddressPLoan" + }, + "employmentId": { + "type": "string", + "description": "Company registration number" + }, + "employmentName": { + "type": "string", + "description": "Employer name" + }, + "employmentSince": { + "type": "string", + "format": "date-time", + "description": "Last employment start date" + }, + "employmentTrial": { + "type": "integer", + "format": "int64", + "description": "Currently in trial employment status(0 = false, 1 = true)" + }, + "employmentType": { + "type": "string", + "description": "Type of employment" + }, + "incomeAverageThreeMonths": { + "type": "number", + "description": "Average income from last 3 months" + }, + "incomeFamily": { + "type": "number", + "description": "All income in household" + } + }, + "description": "data to update cif application for broker" + }, + "CifUpdatePLoanRequest": { + "type": "object", + "required": [ + "appKey", + "dependPersonsCount", + "educationType", + "employmentId", + "employmentName", + "employmentSince", + "employmentTrial", + "employmentType", + "incomeAverageThreeMonths", + "incomeFamily" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "CIF application key" + }, + "cifId": { + "type": "string", + "description": "CIF of existing client without active products" + }, + "dependPersonsCount": { + "type": "integer", + "format": "int64", + "description": "Count of dependent persons" + }, + "educationType": { + "type": "string", + "description": "Type of education" + }, + "employerAddress": { + "description": "Employer Address", + "$ref": "#/definitions/AddressPLoan" + }, + "employmentId": { + "type": "string", + "description": "Company registration number" + }, + "employmentName": { + "type": "string", + "description": "Employer name" + }, + "employmentSince": { + "type": "string", + "format": "date-time", + "description": "Last employment start date" + }, + "employmentTrial": { + "type": "integer", + "format": "int64", + "description": "Currently in trial employment status(0 = false, 1 = true)" + }, + "employmentType": { + "type": "string", + "description": "Type of employment" + }, + "incomeAverageThreeMonths": { + "type": "number", + "description": "Average income from last 3 months" + }, + "incomeFamily": { + "type": "number", + "description": "All income in household" + } + }, + "description": "data to update cif application" + }, + "CifUpdatePLoanResponse": { + "type": "object", + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "Id of request for CIF application" + } + }, + "description": "Returns CIF application key of updated updated application" + }, + "ClassLoader": { + "type": "object", + "properties": { + "parent": { + "$ref": "#/definitions/ClassLoader" + } + } + }, + "ClientCheckRequest": { + "type": "object", + "required": [ + "birthNumber" + ], + "properties": { + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + } + }, + "description": "API request pro overeni, zda muze klent pokracovat v procesu a zda uz ma zalozeny CIF." + }, + "ClientCheckResponse": { + "type": "object", + "required": [ + "currentAccounts" + ], + "properties": { + "activeInternetBanking": { + "type": "boolean", + "example": false, + "description": "Priznak, ktery oznacuje, ze klient ma v Monete aktivni internetove bankovnictvi" + }, + "activeLoanApplication": { + "type": "boolean", + "example": false, + "description": "Priznak, ktery oznacuje, ze klient uz ma v Monete aktivni zadost o pujcku" + }, + "cifId": { + "type": "string", + "description": "Identifikator existujiciho klenta (CIF). Je prazdny, pokud jde o noveho klienta" + }, + "currentAccounts": { + "type": "array", + "description": "Seznam beznych uctu klienta", + "items": { + "$ref": "#/definitions/CurrentAccount" + } + } + }, + "description": "Overeni zda klient muze pokracovat v procesu. Pokud muze pokracovat a uz ma prideleny CIF, vraci se take" + }, + "ClientDetailsForm": { + "type": "object", + "required": [ + "addressContSince", + "birthNumber", + "birthPlace", + "idCardNumber", + "idCardValidTo", + "permanentAddress" + ], + "properties": { + "addressContSince": { + "description": "FormField of living on contact address form", + "$ref": "#/definitions/FormField«date-time»" + }, + "birthNumber": { + "description": "Birth Number", + "$ref": "#/definitions/FormField«string»" + }, + "birthPlace": { + "description": "Place of birth", + "$ref": "#/definitions/FormField«string»" + }, + "deliveryAddress": { + "description": "Delivery Address", + "$ref": "#/definitions/AddressFormPLoan" + }, + "firstName": { + "description": "First Name", + "$ref": "#/definitions/FormField«string»" + }, + "idCard2Type": { + "description": "Second ID document type", + "$ref": "#/definitions/FormField«string»" + }, + "idCardNumber": { + "description": "ID Card Number", + "$ref": "#/definitions/FormField«string»" + }, + "idCardValidTo": { + "description": "ID card valid to FormField", + "$ref": "#/definitions/FormField«date-time»" + }, + "lastName": { + "description": "Last Name", + "$ref": "#/definitions/FormField«string»" + }, + "permanentAddress": { + "description": "Permanent Address", + "$ref": "#/definitions/AddressFormPLoan" + } + }, + "description": "Form with detail information about client to be validated against NAS" + }, + "ClientDetailsFormRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Client details form", + "$ref": "#/definitions/ClientDetailsForm" + } + }, + "description": "Detail information about client to be validated against NAS" + }, + "ClientDetailsFormResponse": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Client details form", + "$ref": "#/definitions/ClientDetailsForm" + } + }, + "description": "Validation response of client details form against NAS" + }, + "ClientInfoForm": { + "type": "object", + "required": [ + "email", + "firstName", + "lastName", + "phoneNumber" + ], + "properties": { + "email": { + "description": "Email", + "$ref": "#/definitions/FormField«string»" + }, + "firstName": { + "description": "First Name", + "$ref": "#/definitions/FormField«string»" + }, + "lastName": { + "description": "Last Name", + "$ref": "#/definitions/FormField«string»" + }, + "phoneNumber": { + "description": "Phone Number", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Form with basic contact information about client to be validated against NAS" + }, + "ClientInfoFormRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Client info form", + "$ref": "#/definitions/ClientInfoForm" + } + }, + "description": "Basic contact information about client to be validated against NAS" + }, + "ClientInfoFormResponse": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Client info form", + "$ref": "#/definitions/ClientInfoForm" + } + }, + "description": "Validation response of client info form against NAS" + }, + "ClientPLoanBrokerRequest": { + "type": "object", + "required": [ + "addressContSince", + "birthCountry", + "birthNumber", + "birthPlace", + "branchID", + "email", + "employmentType", + "firstName", + "housingType", + "idCard2Number", + "idCard2Type", + "idCard2ValidTo", + "idCardNumber", + "idCardValidTo", + "lastName", + "maritalStatus", + "nationality", + "occupation", + "permanentAddress", + "phoneNumber" + ], + "properties": { + "addressContSince": { + "type": "string", + "format": "date-time", + "description": "Datum od kdy klient zije na dane adrese" + }, + "birthCountry": { + "type": "string", + "description": "Zeme narozeni" + }, + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "birthPlace": { + "type": "string", + "description": "Misto narozeni" + }, + "branchID": { + "type": "integer", + "format": "int64", + "description": "Id pobocky Moneta, na ktere klient pujcku sjednava" + }, + "cifId": { + "type": "string", + "description": "Identifikator existujiciho klenta (CIF). Je prazdny, pokud jde o noveho klienta." + }, + "deliveryAddress": { + "description": "Dorucovaci adresa", + "$ref": "#/definitions/AddressPLoan" + }, + "email": { + "type": "string", + "description": "Email" + }, + "employmentType": { + "type": "string", + "description": "Typ zamestnaneckeho pomeru klienta" + }, + "firstName": { + "type": "string", + "description": "Jmeno klienta" + }, + "housingType": { + "type": "string", + "description": "Typ bydleni" + }, + "idCard2Number": { + "type": "string", + "description": "Cislo druheho osobniho dokladu" + }, + "idCard2Type": { + "type": "string", + "description": "Typ druheho osobniho dokladu" + }, + "idCard2ValidTo": { + "type": "string", + "format": "date-time", + "description": "Platnost druheho osobniho dokladu" + }, + "idCardNumber": { + "type": "string", + "description": "Cislo obcanskeho prukazu" + }, + "idCardValidTo": { + "type": "string", + "format": "date-time", + "description": "Platnost obcanskeho prukazu" + }, + "lastName": { + "type": "string", + "description": "Prijmeni klienta" + }, + "maritalStatus": { + "type": "string", + "description": "Rodinny stav" + }, + "nationality": { + "type": "string", + "description": "Narodnost klienta" + }, + "occupation": { + "type": "string", + "description": "Obor ve kterem klient pracuje" + }, + "permanentAddress": { + "description": "Adresa trvaleho bydliste", + "$ref": "#/definitions/AddressPLoan" + }, + "phoneNumber": { + "type": "string", + "description": "Telefonni cislo" + } + }, + "description": "API request pro zalozeni nebo aktualizaci existujici zadosti o CIF pro brokery" + }, + "ClientPLoanRequest": { + "type": "object", + "required": [ + "addressContSince", + "birthCountry", + "birthNumber", + "birthPlace", + "branchID", + "email", + "employmentType", + "firstName", + "housingType", + "idCard2Type", + "idCardNumber", + "idCardValidTo", + "lastName", + "maritalStatus", + "nationality", + "occupation", + "permanentAddress", + "phoneNumber" + ], + "properties": { + "addressContSince": { + "type": "string", + "format": "date-time", + "description": "Datum od kdy klient zije na dane adrese" + }, + "birthCountry": { + "type": "string", + "description": "Zeme narozeni" + }, + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "birthPlace": { + "type": "string", + "description": "Misto narozeni" + }, + "branchID": { + "type": "integer", + "format": "int64", + "description": "Id pobocky Moneta, na ktere klient pujcku sjednava" + }, + "cifId": { + "type": "string", + "description": "Identifikator existujiciho klenta (CIF). Je prazdny, pokud jde o noveho klienta." + }, + "deliveryAddress": { + "description": "Dorucovaci adresa", + "$ref": "#/definitions/AddressPLoan" + }, + "email": { + "type": "string", + "description": "Email" + }, + "employmentType": { + "type": "string", + "description": "Typ zamestnaneckeho pomeru klienta" + }, + "firstName": { + "type": "string", + "description": "Jmeno klienta" + }, + "housingType": { + "type": "string", + "description": "Typ bydleni" + }, + "idCard2Type": { + "type": "string", + "description": "Typ druheho osobniho dokladu" + }, + "idCardNumber": { + "type": "string", + "description": "Cislo obcanskeho prukazu" + }, + "idCardValidTo": { + "type": "string", + "format": "date-time", + "description": "Platnost obcanskeho prukazu" + }, + "lastName": { + "type": "string", + "description": "Prijmeni klienta" + }, + "maritalStatus": { + "type": "string", + "description": "Rodinny stav" + }, + "nationality": { + "type": "string", + "description": "Narodnost klienta" + }, + "occupation": { + "type": "string", + "description": "Obor ve kterem klient pracuje" + }, + "permanentAddress": { + "description": "Adresa trvaleho bydliste", + "$ref": "#/definitions/AddressPLoan" + }, + "phoneNumber": { + "type": "string", + "description": "Telefonni cislo" + } + }, + "description": "API request pro zalozeni nebo aktualizaci existujici zadosti o CIF" + }, + "ClientPLoanResponse": { + "type": "object", + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "App key zadosti o CIF" + } + }, + "description": "Vytvori nebo aktualizuje CIF zadost klienta." + }, + "CodeOrProprietary": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code" + } + }, + "description": "Code or proprietary expression" + }, + "CodetableValuesRequest": { + "type": "object", + "required": [ + "codetableLanguage", + "codetableName" + ], + "properties": { + "codetableLanguage": { + "type": "string", + "description": "jazyk pro preklad textu" + }, + "codetableName": { + "type": "string", + "description": "nazev cislniku" + }, + "demoResponseID": { + "type": "integer", + "format": "int32" + } + }, + "description": "Ziskani hodnot z ciselniku" + }, + "CodetableValuesResponse": { + "type": "object", + "properties": { + "values": { + "type": "array", + "description": "hodnoty z ciselniku", + "items": { + "$ref": "#/definitions/SimpleCodetableRecord" + } + } + }, + "description": "Ziskani hodnot z ciselniku" + }, + "CommitForeignPaymentTemplateRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "transactionId": { + "type": "string", + "description": "ID transakce vznikle volanim /template/foreign/put" + } + } + }, + "CommitForeignPaymentTemplateResponse": { + "type": "object", + "properties": { + "templateId": { + "type": "integer", + "format": "int64", + "description": "ID sablony" + } + } + }, + "CommonLoanCalculatorSetupRequest": { + "type": "object", + "properties": { + "loanType": { + "type": "string", + "description": "Typ pujcky", + "enum": [ + "PERSONAL_EXPRESS", + "PERSONAL_CONSOLIDATION", + "SME_EXPRESS" + ] + } + } + }, + "CommonLoanCalculatorSetupResponse": { + "type": "object", + "required": [ + "garantedInterestRateMappings", + "maxAmount", + "maxAmountForWeb", + "maxTermMonths", + "minAmount", + "minTermMonths", + "termMappings" + ], + "properties": { + "discountType": { + "type": "string", + "description": "Typ slevy" + }, + "garantedInterestRateMappings": { + "type": "array", + "description": "Mapovani garantovane urokove sazby podle vyse pujcky a doby splaceni", + "items": { + "$ref": "#/definitions/GarantedInterestRateMapping" + } + }, + "maxAmount": { + "type": "number", + "description": "Maximalni vyse pujcky" + }, + "maxAmountForWeb": { + "type": "number", + "description": "Maximalni vyse pujcky pro web" + }, + "maxTermMonths": { + "type": "integer", + "format": "int64", + "description": "Maximalni doba splaceni [mesic]" + }, + "minAmount": { + "type": "number", + "description": "Minimalni vyse pujcky" + }, + "minTermMonths": { + "type": "integer", + "format": "int64", + "description": "Minimalni doba splaceni [mesic]" + }, + "salesProductType": { + "type": "string", + "description": "Obchodni identifikace projektu (HCisProduktuSales)" + }, + "termMappings": { + "type": "array", + "description": "Mapovani maximalni doby splacení podle vyse pujcky", + "items": { + "$ref": "#/definitions/TermMapping" + } + } + } + }, + "CompanyIdentificationForm text": { + "type": "object", + "required": [ + "companyIdentificationNumber" + ], + "properties": { + "companyIdentificationNumber": { + "description": "ICO", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "ico uzivatele" + }, + "CompanySearchRequest": { + "type": "object", + "required": [ + "companyNamePart" + ], + "properties": { + "companyNamePart": { + "type": "string", + "description": "Cast jmena spolecnosti podle ktere hledame." + }, + "maxResultCount": { + "type": "integer", + "format": "int32", + "description": "Maximalni pocet polozek na vystupu, pokud neni vyplneno vraci se max 20." + } + }, + "description": "Pozadavek na vyhledani spolecnosti." + }, + "CompanySearchResponse": { + "type": "object", + "properties": { + "searchResult": { + "type": "array", + "items": { + "$ref": "#/definitions/CompanySearchResultItem" + } + } + }, + "description": "Vysledek hledani firem." + }, + "CompanySearchResultItem": { + "type": "object", + "properties": { + "companyAddress": { + "description": "Adresa firmy", + "$ref": "#/definitions/Address" + }, + "companyId": { + "type": "string", + "description": "ICO" + }, + "companyName": { + "type": "string", + "description": "Jmeno firmy" + } + }, + "description": "Polozka vysledku vyhledavani firem." + }, + "Config": { + "type": "object", + "properties": { + "maxAmount": { + "type": "integer", + "format": "int32" + }, + "minAmount": { + "type": "integer", + "format": "int32" + } + } + }, + "ConfigRequest": { + "type": "object", + "description": "Prazdny request" + }, + "ConfigResponse": { + "type": "object", + "properties": { + "creditCardProduct": { + "$ref": "#/definitions/CreditCardProduct" + }, + "expressBusinessProduct": { + "$ref": "#/definitions/ExpressBusinessProduct" + }, + "flexiBusinessProduct": { + "$ref": "#/definitions/FlexiBusinessProduct" + } + } + }, + "Consent": { + "type": "object", + "properties": { + "consentType": { + "type": "string", + "description": "Typ souhlasu.", + "enum": [ + "REGR_CBCB", + "REGR_CNCB", + "REGR_SOLUS_NEGATIVE", + "REGR_TELCOSCORE", + "IDENT_PAPERSCOPY", + "COMM_BANKSECRET_UNSECURED", + "MKTG_BYONLINE", + "MKTG_BYEMAIL", + "MKTG_BYPOST", + "MKTG_BYTEXTMSG", + "MKTG_BYPHONE", + "MKTG_BYSURVEY", + "IDENT_DATAPROCESSING", + "MKTG_BYALL" + ] + }, + "consentValue": { + "type": "boolean", + "example": false, + "description": "true = souhlas udelen." + } + }, + "description": "Souhlas klienta." + }, + "ConsentForm": { + "type": "object", + "required": [ + "body", + "requiredConsents", + "title" + ], + "properties": { + "body": { + "type": "string", + "description": "Telo formulare." + }, + "requiredConsents": { + "type": "array", + "description": "Zaskrtavaci policka pod formularem.", + "items": { + "$ref": "#/definitions/FormConsent" + } + }, + "title": { + "type": "string", + "description": "Titulek formulare." + } + } + }, + "ConsentListRequest": { + "type": "object", + "description": "Request pro nacteni klientskych souhlasu." + }, + "ConsentListResponse": { + "type": "object", + "required": [ + "clientConsents" + ], + "properties": { + "clientConsents": { + "type": "array", + "description": "Seznam klientskych souhlasu.", + "items": { + "$ref": "#/definitions/ResponseConsent" + } + } + }, + "description": "Seznam klientskych souhlasu." + }, + "ConsentSaveRequest": { + "type": "object", + "required": [ + "clientConsents", + "consentSetId" + ], + "properties": { + "clientConsents": { + "type": "array", + "description": "Seznam klientskych souhlasu, ktere se maji ulozit.", + "items": { + "$ref": "#/definitions/Consent" + } + }, + "consentSetId": { + "type": "string", + "description": "Priznak procesu, behem ktereho se ukladaji souhlasy.", + "enum": [ + "SET_CONCERN_CONSENTS", + "SET_ONLINE_MARKETING", + "SET_CALLBACK_CONTACT", + "SET_BANK_STATEMENTS", + "SET_REGISTRY_TELCO", + "SET_BANK_SWITCHING", + "SET_CONCERN_CONSENTS_MANDATORY", + "SET_CONCERN_CONSENTS_OPTIONAL" + ] + } + }, + "description": "Request pro ulozeni klientskych souhlasu." + }, + "ConsentSaveResponse": { + "type": "object" + }, + "Consultant": { + "type": "object", + "properties": { + "avatar": { + "type": "string", + "description": "Avatar." + }, + "email": { + "type": "string", + "description": "Email." + }, + "locality": { + "type": "string", + "description": "Lokalita." + }, + "name": { + "type": "string", + "description": "Jmeno a prijmeni." + }, + "phone": { + "type": "string", + "description": "Telefon." + }, + "region": { + "type": "string", + "description": "Region." + }, + "regionCode": { + "type": "string", + "description": "Kod regionu." + } + } + }, + "ConsultantsResponse": { + "type": "object", + "required": [ + "consultants" + ], + "properties": { + "consultants": { + "type": "array", + "description": "Seznam konzultantu.", + "items": { + "$ref": "#/definitions/Consultant" + } + } + }, + "description": "Odpoved s o konzultantech." + }, + "ConsumedFlexiProduct": { + "type": "object", + "properties": { + "account": { + "$ref": "#/definitions/SmeLendingAccount" + }, + "interestRate": { + "type": "number" + }, + "loanAmount": { + "type": "integer", + "format": "int32" + } + } + }, + "Contact": { + "type": "object", + "properties": { + "address": { + "description": "adresa", + "$ref": "#/definitions/Address" + }, + "email": { + "type": "string", + "description": "email" + }, + "phoneMobile": { + "description": "telefonni cislo na mobil", + "$ref": "#/definitions/PhoneNumber" + }, + "phoneStatic": { + "description": "telefonni cislo na pevnou linku", + "$ref": "#/definitions/PhoneNumber" + }, + "secParMobileKey": { + "description": "mobilni telefon na potvrzovani sms", + "$ref": "#/definitions/PhoneNumber" + } + } + }, + "ContactEmailForm": { + "type": "object", + "properties": { + "contactEmailType": { + "type": "string", + "description": "Typ kontaktniho emailu", + "enum": [ + "REQUEST_FOR_REVULSION", + "REPORTING_COMPLAINT", + "REQUEST_LEASE_ID_CARD", + "NON_BINDING_OFFER" + ] + }, + "messageBody": { + "description": "Obsah emailu", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro odeslani emailu." + }, + "ContactForm": { + "type": "object", + "properties": { + "descriptiveNumber": { + "$ref": "#/definitions/FormField«int»" + }, + "email": { + "description": "email klienta", + "$ref": "#/definitions/FormField«string»" + }, + "mobilePhone": { + "description": "cislo na mobilni telefon", + "$ref": "#/definitions/FormField«string»" + }, + "mobilePhonePrefix": { + "description": "predvolby zeme pro mobilni telefon", + "$ref": "#/definitions/FormField«string»" + }, + "orientationNumber": { + "description": "orientacni cislo", + "$ref": "#/definitions/FormField«string»" + }, + "staticPhone": { + "description": "cislo na pevnou linku", + "$ref": "#/definitions/FormField«string»" + }, + "staticPhonePrefix": { + "description": "predvolby zeme pro pevnou linku", + "$ref": "#/definitions/FormField«string»" + }, + "street": { + "description": "ulice", + "$ref": "#/definitions/FormField«string»" + }, + "town": { + "description": "mesto", + "$ref": "#/definitions/FormField«string»" + }, + "zip": { + "description": "postovni smerovaci cislo", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro zmenu kontaktnich udaju" + }, + "CountryInfo": { + "type": "object", + "properties": { + "ibanMandatory": { + "type": "boolean" + }, + "ibanSupport": { + "type": "boolean" + }, + "insideEEA": { + "type": "boolean" + }, + "isoCode": { + "type": "string" + }, + "localizedName": { + "type": "string" + }, + "sepaSupport": { + "type": "boolean" + } + } + }, + "CreateFraudTaskRequest": { + "type": "object", + "required": [ + "expressProdPackageKey", + "firstName", + "idCardControlNumber", + "lastName" + ], + "properties": { + "expressProdPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku pro expres pujcku" + }, + "firstName": { + "type": "string", + "description": "Jmeno klienta" + }, + "idCardControlNumber": { + "type": "integer", + "format": "int64", + "description": "Kontrolni cislo obcanskeho prukazu" + }, + "lastName": { + "type": "string", + "description": "Prijmeni klienta" + } + }, + "description": "Zadani ukolu na manualni kontrolu podvodu klienta" + }, + "CreateFraudTaskResponse": { + "type": "object", + "properties": { + "workflowId": { + "type": "string", + "description": "Identifikator ukolu na manualni kontrolu podvodu klienta." + } + }, + "description": "Odpoved na zadani ukolu na manualni kontrolu podvodu klienta." + }, + "CreateInternetBankingChannelRequest": { + "type": "object", + "required": [ + "address", + "cifId", + "clientType", + "firstName", + "lastName", + "phoneNumber" + ], + "properties": { + "address": { + "description": "Adresa", + "$ref": "#/definitions/AddressPLoan" + }, + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "cifId": { + "type": "string", + "description": "Identifikator klienta" + }, + "clientType": { + "type": "string", + "description": "Typ klienta", + "enum": [ + "FO", + "PO", + "ZAM", + "ZDRAV", + "FOP" + ] + }, + "companyNumber": { + "type": "string", + "description": "ICO" + }, + "firstName": { + "type": "string", + "description": "Jmeno" + }, + "lastName": { + "type": "string", + "description": "Prijmeni" + }, + "phoneNumber": { + "type": "string", + "description": "Telefonni cislo ve formatu yyyxxxxxxxxx" + } + }, + "description": "Pozadavek na vytvoreni kanalu internetoveho bankovnictvi" + }, + "CreditCard": { + "type": "object", + "required": [ + "activity", + "cardId", + "cardNumberHashed", + "cardNumberMasked", + "currencyCode", + "holderName", + "logoId", + "mainCard", + "name", + "repaymentAccount", + "typeId", + "validity" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Cislo navazaneho bezneho uctu" + }, + "activity": { + "type": "string", + "description": "Aktivita karty (ACTIVE, NONACTIVE, TEMPORARILY_BLOCKED, PERMANENTLY_BLOCKED, EXPIRED, UNRECORDED_ON_SIM, CANCELED, UNVERIFIED, REQUESTED)", + "enum": [ + "ACTIVE", + "NONACTIVE", + "TEMPORARILY_BLOCKED", + "PERMANENTLY_BLOCKED", + "DEBT", + "EXPIRED", + "UNRECORDED_ON_SIM", + "CANCELED", + "UNVERIFIED", + "REQUESTED" + ] + }, + "allowedOperations": { + "type": "array", + "description": "Povoleni operaci na karte - true false (SETTINGS_ALLOWED, TRANSACTIONS_ALLOWED, CARD_BLOCK_ALLOWED, CARD_PAYMENT_ORDER_ALLOWED, CARD_UNBLOCK_ALLOWED, CREDIT_REPAYMENT_ALLOWED, CHANGE_LIMIT_ATM_ALLOWED, CHANGE_LIMIT_CASHLESS_TRANS_ALLOWED, CHANGE_LIMIT_MOTO_ALLOWED, CHANGE_INTERNET_TRANS_ALLOWED, CHANGE_3DS_ALLOWED, CHANGE_3DS_MOBILE_PHONE_ALLOWED, CHANGE_MOTO_ALLOWED, CHANGE_ATM_WORLD_ALLOWED, STATEMENT_LIST)", + "items": { + "type": "string", + "enum": [ + "SETTINGS_ALLOWED", + "TRANSACTIONS_ALLOWED", + "CARD_BLOCK_ALLOWED", + "CARD_PAYMENT_ORDER_ALLOWED", + "CARD_UNBLOCK_ALLOWED", + "CREDIT_REPAYMENT_ALLOWED", + "CHANGE_LIMIT_ATM_ALLOWED", + "CHANGE_LIMIT_CASHLESS_TRANS_ALLOWED", + "CHANGE_LIMIT_MOTO_ALLOWED", + "CHANGE_INTERNET_TRANS_ALLOWED", + "CHANGE_3DS_ALLOWED", + "CHANGE_3DS_MOBILE_PHONE_ALLOWED", + "CHANGE_MOTO_ALLOWED", + "CHANGE_ATM_WORLD_ALLOWED", + "TOKENIZATION_ALLOWED", + "STATEMENT_LIST", + "BONUS_PACKAGE_ALLOWED", + "TOKEN_LIST" + ] + } + }, + "cardHolder": { + "type": "boolean", + "example": false, + "description": "Priznak zda je aktualni uzivatel drzitelem karty." + }, + "cardHolderRc": { + "type": "string", + "description": "Rodne cislo drzitele karty" + }, + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni ID karty v UDEBS" + }, + "cardNetwork": { + "type": "string", + "description": "karetni asociace dane karty (VISA, MASTERCARD)", + "enum": [ + "MASTERCARD", + "VISA" + ] + }, + "cardNumberHashed": { + "type": "string", + "description": "Zahashovane cislo karty" + }, + "cardNumberMasked": { + "type": "string", + "description": "Zahvezdickovane cislo karty" + }, + "contractNumber": { + "type": "string", + "description": "Cislo smlouvy ke kreditni karte" + }, + "creditLimit": { + "type": "number", + "description": "Celkovy uverovy ramec" + }, + "creditLimitAtm": { + "type": "number", + "description": "Uverovy ramec pro vyber hotovosti z bankomatu" + }, + "creditLimitSpend": { + "type": "number", + "description": "Aktualni vycerpany uverovy ramec" + }, + "currencyCode": { + "type": "string", + "description": "mena karty", + "enum": [ + "ATS", + "AUD", + "BEF", + "HRK", + "CAD", + "CHF", + "CZK", + "DEM", + "DKK", + "ESP", + "EUR", + "FIM", + "FRF", + "GBP", + "GRD", + "HUF", + "ITL", + "JPY", + "NLG", + "NOK", + "PLN", + "PTE", + "RUB", + "SEK", + "SKK", + "RON", + "BGN", + "USD" + ] + }, + "holderName": { + "type": "string", + "description": "Jmeno drzitele karty" + }, + "lastRepayment": { + "type": "number", + "description": "Vyse posledni splatky" + }, + "lastRepaymentDate": { + "type": "string", + "format": "date-time", + "description": "Datum posledni splatky" + }, + "limitAtm": { + "type": "number", + "description": "Limit (denni, nebo mesicni - podle typu karty) pro vyber hotovosti" + }, + "limitCashlessTransaction": { + "type": "number", + "description": "Limit pro bezhotovostni nakupy" + }, + "limitMoto": { + "type": "number", + "description": "Limit pro internetove a MO/TO transakce" + }, + "limitType": { + "type": "string", + "description": "Typ limitu pro nastaveni karty (DAILY, MONTHLY)", + "enum": [ + "DAILY", + "MONTHLY" + ] + }, + "logoId": { + "type": "string", + "description": "id loga karty." + }, + "mainCard": { + "type": "boolean", + "example": false, + "description": "priznak zda je karta hlavni" + }, + "maxLimitAtm": { + "type": "number", + "description": "Maximalni limit pro vyber hotovosti z bankomatu" + }, + "maxLimitCashlessTransaction": { + "type": "number", + "description": "Maximalni limit pro bezhotovostni transakce" + }, + "maxLimitMoto": { + "type": "number", + "description": "Maximalni limit pro internetove a MO/TO transakce" + }, + "minRepayment": { + "type": "number", + "description": "Vyse nejblizsi minimalni splatky k uhrade" + }, + "minRepaymentPercent": { + "type": "integer", + "format": "int32", + "description": "Minimalni vyse splatky v procentech" + }, + "mobileNumberNfc": { + "type": "string", + "description": "Telefonni cislo SIM karty s NFC" + }, + "name": { + "type": "string", + "description": "Nazev karty" + }, + "owner": { + "type": "boolean", + "example": false, + "description": "priznak ze aktualni uzivatel je majitelem karty" + }, + "remainingFunds": { + "type": "number", + "description": "Zbyvajici castka pro dalsi transakce" + }, + "remainingFundsAtm": { + "type": "number", + "description": "Zbyvajici castka pro vyber hotovosti z bankomatu" + }, + "repaymentAccount": { + "description": "Cislo sberneho uctu na ktery se daji delat extra splatky karty.", + "$ref": "#/definitions/AccountNumber" + }, + "repaymentDate": { + "type": "string", + "format": "date-time", + "description": "Datum splatnosti k uhrade" + }, + "secure3D": { + "type": "string", + "description": "3D secure (NONACTIVE, ACTIVE, BLOCKED)", + "enum": [ + "NONACTIVE", + "ACTIVE", + "BLOCKED", + "NORESPONSE" + ] + }, + "secure3DPhoneNumber": { + "description": "Telefonni kontakt pro 3D secure", + "$ref": "#/definitions/PhoneNumber" + }, + "transactionAtmWorld": { + "type": "boolean", + "example": false, + "description": "Povoleni vyberu hotovosti z bankomatu v zahranici (mimo EU)" + }, + "transactionCardAccount": { + "type": "boolean", + "example": false, + "description": "Umozni nastavit nastavit filtr transakci tak, aby byly vraceny transakce svazane s karetnim uctem (true, false)" + }, + "transactionInternet": { + "type": "boolean", + "example": false, + "description": "Povoleni internetovych transakci (true, false)" + }, + "transactionMoto": { + "type": "boolean", + "example": false, + "description": "Povoleni MO/TO transakci (true, false)" + }, + "typeId": { + "type": "string", + "description": "Typ karty - (500 - kreditni karta, 600 - debetni karta)", + "enum": [ + "CREDIT", + "DEBIT" + ] + }, + "unblockDate": { + "type": "string", + "format": "date-time", + "description": "Datum odblokovani karty" + }, + "unblockPhoneNumber": { + "description": "Telefonni kontakt pro notifikaci k odblokovani karty", + "$ref": "#/definitions/PhoneNumber" + }, + "validity": { + "type": "string", + "description": "Platnost karty" + }, + "vlsNextChangeDate": { + "type": "string", + "format": "date-time", + "description": "Datum mozne zmeny zvyhodneni ke karte" + }, + "vlsProgramBornDate": { + "type": "string", + "format": "date-time", + "description": "Datum platnosti zvyhodneni ke karte" + }, + "vlsProgramText": { + "type": "string", + "description": "Informace o balicku zvyhodneni ke karte" + } + }, + "description": "CreditCard trida je potomek tridy {@link Card} a obsahuje parametry specificke pro kreditni kartu" + }, + "CreditCardAccountNumberValidationRequest": { + "type": "object", + "properties": { + "accountNumber": { + "type": "string", + "description": "Cislo uctu" + }, + "bankCode": { + "type": "string", + "description": "Kod banky" + } + }, + "description": "Validace cisla uctu." + }, + "CreditCardAccountNumberValidationResponse": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "description": "Seznam chyb", + "items": { + "type": "string" + } + }, + "state": { + "type": "string", + "description": "Stav validace", + "enum": [ + "OK", + "ERROR" + ] + } + }, + "description": "Validace cisla uctu" + }, + "CreditCardActivationCodeCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular", + "$ref": "#/definitions/CreditCardActivationCodeForm" + } + }, + "description": "Request pro ulozeni aktivacniho hesla do zadosti o kreditni kartu." + }, + "CreditCardActivationCodeCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud pri ukladani doslo k validacni chybe, je toto pole vyplneno formularem ze vstupu, obohacenym o validacni chyby.", + "$ref": "#/definitions/CreditCardActivationCodeForm" + } + }, + "description": "Response ulozeni aktivacniho hesla do zadosti o kreditni kartu." + }, + "CreditCardActivationCodeForm": { + "type": "object", + "properties": { + "activationPassword": { + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro ukladani access kodu do zadosti o kreditni kartu." + }, + "CreditCardActivationCodeSetupRequest": { + "type": "object", + "description": "Request pro nacteni aktivacniho hesla do zadosti o kreditni kartu." + }, + "CreditCardActivationCodeSetupResponse": { + "type": "object", + "properties": { + "activationPassword": { + "type": "string", + "description": "Aktivacni heslo nactene ze zadosti o kreditni kartu" + } + }, + "description": "Response nacteni aktivacniho hesla do zadosti o kreditni kartu." + }, + "CreditCardActiveBonusPackageChangeRequest": { + "type": "object", + "required": [ + "cardId", + "currentDiscountId", + "newDiscountId" + ], + "properties": { + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni id karty" + }, + "currentDiscountId": { + "type": "string", + "description": "Aktualni balicek u kreditni karty" + }, + "newDiscountId": { + "type": "string", + "description": "Nove pozadovany balicek" + } + }, + "description": "Request pro nastaveni bonusoveho balicku ke kreditni karte" + }, + "CreditCardActiveBonusPackageRequest": { + "type": "object", + "required": [ + "cardId" + ], + "properties": { + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni id karty" + } + }, + "description": "Request pro ziskani aktivniho bonusoveho balicku pro kreditni kartu" + }, + "CreditCardActiveBonusPackageResponse": { + "type": "object", + "properties": { + "activeDiscountId": { + "type": "string", + "description": "Aktualne vybrany balicek" + }, + "activeDiscountName": { + "type": "string", + "description": "Nazev aktualne vybraneho balicku" + }, + "activeFrom": { + "type": "string", + "format": "date-time", + "description": "Aktualni balicek aktivovan dne" + }, + "nextChangeAvailableFrom": { + "type": "string", + "format": "date-time", + "description": "Zmena balicku mozna nejdrive od" + } + }, + "description": "Response s aktivnim bonusovym balickem ke kreditni karte" + }, + "CreditCardAvailableBonusPackagesRequest": { + "type": "object", + "description": "Request pro ziskani dostupnych bonusovych balicku pro kreditni karty" + }, + "CreditCardAvailableBonusPackagesResponse": { + "type": "object", + "properties": { + "discounts": { + "type": "array", + "description": "Seznam balicku", + "items": { + "$ref": "#/definitions/CreditCardDiscount" + } + } + }, + "description": "Response s dostupnymi bonusovymi balicky ke kreditnim kartam" + }, + "CreditCardBillingParametersCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular způsobu splácení kreditní karty", + "$ref": "#/definitions/PLoanPersonalInformationNameForm" + } + }, + "description": "Request pro uložení způsobu splácení kreditní karty." + }, + "CreditCardBillingParametersCommitResponse": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular způsobu splácení kreditní karty", + "$ref": "#/definitions/PLoanPersonalInformationNameForm" + } + }, + "description": "Response pro uložení způsobu splácení kreditní karty." + }, + "CreditCardBillingParametersSetupRequest": { + "type": "object", + "description": "Request pro načtení způsobu splácení kreditní karty" + }, + "CreditCardBillingParametersSetupResponse": { + "type": "object", + "required": [ + "accountId", + "currentCzkAccountList", + "currentCzkAccounts", + "repaymentMethodId", + "repaymentMethods", + "repaymentMethodsCodeForShowAccounts", + "statementDistributionTypeId", + "statementDistributionTypes" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Vybrane cislo účtu klienta, které bylo zvoleno při způsobu úhrady splátek" + }, + "currentCzkAccountList": { + "type": "array", + "description": "Bezne korunove ucty zadatele", + "items": { + "$ref": "#/definitions/Account" + } + }, + "currentCzkAccounts": { + "type": "array", + "description": "Deprecated. Bezne korunove ucty zadatele. Pouzij currentCzkAccountList field. Pouze pro zpetnou FE compatibilitu.", + "items": { + "$ref": "#/definitions/SimpleCodetableRecord" + } + }, + "repaymentMethodId": { + "type": "string", + "description": "Vybrany způsob úhrady splátek" + }, + "repaymentMethods": { + "type": "array", + "description": "Způsob úhrady splátek", + "items": { + "$ref": "#/definitions/SimpleCodetableRecord" + } + }, + "repaymentMethodsCodeForShowAccounts": { + "type": "string", + "description": "Kod repaymentMethods pri, kterem se maji zobrazit ucty klienta." + }, + "statementDistributionTypeId": { + "type": "string", + "description": "Vybrany způsob distribuce výpisu" + }, + "statementDistributionTypes": { + "type": "array", + "description": "Způsob distribuce výpisu", + "items": { + "$ref": "#/definitions/SimpleCodetableRecord" + } + } + }, + "description": "Response nacteni aktivacniho hesla do zadosti o kreditni kartu." + }, + "CreditCardBonusPackageCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular s parametry pro nastaveni informaci o sleve", + "$ref": "#/definitions/CreditCardBonusPackageForm" + } + } + }, + "CreditCardBonusPackageCommitResponse": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular s parametry pro nastaveni informaci o sleve", + "$ref": "#/definitions/CreditCardBonusPackageForm" + } + } + }, + "CreditCardBonusPackageForm": { + "type": "object", + "required": [ + "discountId" + ], + "properties": { + "discountId": { + "description": "kod slevy", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro nastaveni slev." + }, + "CreditCardBonusPackageSetupRequest": { + "type": "object" + }, + "CreditCardBonusPackageSetupResponse": { + "type": "object", + "properties": { + "discountId": { + "type": "string", + "description": "Vybrana sleva." + }, + "discounts": { + "type": "array", + "description": "Seznam slev.", + "items": { + "$ref": "#/definitions/CreditCardDiscount" + } + } + } + }, + "CreditCardCheckSignedDocumentsRequest": { + "type": "object", + "required": [ + "tokenId" + ], + "properties": { + "tokenId": { + "type": "string", + "description": "Token pro aplikaci MPodpis" + } + }, + "description": "Pozadavek na kontrolu stavu podepsanych smluv" + }, + "CreditCardCheckSignedDocumentsResponse": { + "type": "object", + "required": [ + "generatedDocuments" + ], + "properties": { + "generatedDocuments": { + "type": "array", + "description": "Seznam podepisovanych dokumentu", + "items": { + "$ref": "#/definitions/GeneratedDocument" + } + } + }, + "description": "Odpoved na kontrolu stavu podepsanych smluv" + }, + "CreditCardClientCheckRequest": { + "type": "object", + "required": [ + "birthNumber" + ], + "properties": { + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + } + }, + "description": "API request pro overeni, zda muze klent pokracovat v procesu a zda uz ma zalozeny CIF." + }, + "CreditCardClientCheckResponse": { + "type": "object", + "properties": { + "cifId": { + "type": "string", + "description": "Identifikator existujiciho klenta (CIF). Je prazdny, pokud jde o noveho klienta." + }, + "forbiddenClient": { + "type": "boolean", + "example": false, + "description": "Flag, ktery oznacuje, ze klient byl z nejakeho duvodu zamitnut." + }, + "hasCreditCard": { + "type": "boolean", + "example": false, + "description": "Flag, ktery oznacuje, ze klient uz ma v Monete aktivni kreditni kartu." + } + }, + "description": "Overeni, zda klient muze pokracovat v procesu. Vraci i info, jestli je to existujici klient a zda uz nema kreditni kartu." + }, + "CreditCardCreateProductApplicationRequest": { + "type": "object", + "required": [ + "addressContSince", + "birthCountry", + "birthNumber", + "birthPlace", + "branchID", + "dependPersonsCount", + "educationType", + "email", + "employmentId", + "employmentName", + "employmentSince", + "employmentTrial", + "employmentType", + "firstName", + "housingType", + "idCard2Type", + "idCardNumber", + "idCardValidTo", + "incomeAverageThreeMonths", + "incomeDocumentType", + "incomeDocumentVerified", + "incomeFamily", + "incomesCount", + "lastName", + "maritalAssets", + "maritalStateVerification", + "maritalStatus", + "nationality", + "occupation", + "otherLifeCosts", + "payoutsOutsideMoneta", + "permanentAddress", + "phoneNumber" + ], + "properties": { + "addressContSince": { + "type": "string", + "format": "date-time", + "description": "Datum od kdy klient zije na dane adrese" + }, + "birthCountry": { + "type": "string", + "description": "Zeme narozeni" + }, + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "birthPlace": { + "type": "string", + "description": "Misto narozeni" + }, + "branchID": { + "type": "integer", + "format": "int64", + "description": "Id pobocky Moneta, na ktere klient pujcku sjednava" + }, + "cifId": { + "type": "string", + "description": "Identifikator existujiciho klenta (CIF). Je prazdny, pokud jde o noveho klienta." + }, + "deliveryAddress": { + "description": "Dorucovaci adresa", + "$ref": "#/definitions/AddressPLoan" + }, + "dependPersonsCount": { + "type": "integer", + "format": "int64", + "description": "Count of dependent persons" + }, + "discountId": { + "type": "string", + "description": "VLS bonus package" + }, + "educationType": { + "type": "string", + "description": "Type of education" + }, + "email": { + "type": "string", + "description": "Email" + }, + "employerAddress": { + "description": "Employer Address", + "$ref": "#/definitions/AddressPLoan" + }, + "employmentId": { + "type": "string", + "description": "Company registration number" + }, + "employmentName": { + "type": "string", + "description": "Employer name" + }, + "employmentNotice": { + "type": "integer", + "format": "int64", + "description": "Currently in notice period(0 = false, 1 = true)" + }, + "employmentSince": { + "type": "string", + "format": "date-time", + "description": "Last employment start date" + }, + "employmentTrial": { + "type": "integer", + "format": "int64", + "description": "Currently in trial employment status(0 = false, 1 = true)" + }, + "employmentType": { + "type": "string", + "description": "Typ zamestnaneckeho pomeru klienta" + }, + "employmentUntil": { + "type": "string", + "format": "date-time", + "description": "End date of notice period" + }, + "familyBusiness": { + "type": "boolean", + "example": false, + "description": "Priznak, jestli se jedna o rodinny podnik" + }, + "firstName": { + "type": "string", + "description": "Jmeno klienta" + }, + "housingType": { + "type": "string", + "description": "Typ bydleni" + }, + "idCard2Type": { + "type": "string", + "description": "Typ druheho osobniho dokladu" + }, + "idCardNumber": { + "type": "string", + "description": "Cislo obcanskeho prukazu" + }, + "idCardValidTo": { + "type": "string", + "format": "date-time", + "description": "Platnost obcanskeho prukazu" + }, + "incomeAverageThreeMonths": { + "type": "number", + "description": "Average income from last 3 months" + }, + "incomeDocumentType": { + "type": "string", + "description": "Income document type" + }, + "incomeDocumentVerified": { + "type": "boolean", + "example": false, + "description": "Income document verified" + }, + "incomeFamily": { + "type": "number", + "description": "All income in household" + }, + "incomesCount": { + "type": "integer", + "format": "int64", + "description": "Count of incomes in household" + }, + "lastName": { + "type": "string", + "description": "Prijmeni klienta" + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Credit card limit" + }, + "maritalAssets": { + "type": "string", + "description": "Marital assets" + }, + "maritalStateVerification": { + "type": "string", + "description": "Marital state verification" + }, + "maritalStatus": { + "type": "string", + "description": "Rodinny stav" + }, + "nationality": { + "type": "string", + "description": "Narodnost klienta" + }, + "occupation": { + "type": "string", + "description": "Obor ve kterem klient pracuje" + }, + "otherLifeCosts": { + "type": "integer", + "format": "int64", + "description": "Other living costs" + }, + "payingTaxInCR": { + "type": "boolean", + "example": false, + "description": "Flag if user pays taxes in the Czech Republic" + }, + "payoutsOutsideMoneta": { + "type": "integer", + "format": "int64", + "description": "Payouts outside Moneta" + }, + "permanentAddress": { + "description": "Adresa trvaleho bydliste", + "$ref": "#/definitions/AddressPLoan" + }, + "phoneNumber": { + "type": "string", + "description": "Telefonni cislo" + }, + "profitPercentage": { + "type": "number", + "description": "Procento zisku" + }, + "taxBase": { + "type": "number", + "description": "Zaklad dane za posledni zdanovaci obdobi (radek 104) v Kc" + }, + "taxToPayLastYear": { + "type": "number", + "description": "Zbyva doplatit (radek 91) v Kc" + }, + "taxYear": { + "type": "integer", + "format": "int64", + "description": "Rok posledniho zdanovaciho obdobi" + }, + "taxableIncomeLastYear": { + "type": "number", + "description": "Prijmy (radek 101) v Kc" + } + }, + "description": "Client and employer information" + }, + "CreditCardCreateProductApplicationResponse": { + "type": "object", + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktove zadosti" + }, + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku, ktery obsahuje pouze kreditni kartu" + } + }, + "description": "Informace o vytvorene produktove zadosti" + }, + "CreditCardDiscount": { + "type": "object", + "required": [ + "discountId", + "discountUnit", + "discountValue", + "image", + "imageHighlighted", + "text" + ], + "properties": { + "discountId": { + "type": "string", + "description": "Identifikator slevy" + }, + "discountUnit": { + "type": "string", + "description": "Jednotka slevy" + }, + "discountValue": { + "type": "string", + "description": "Hodnota slevy" + }, + "image": { + "type": "string", + "description": "Url obrazku ke sleve" + }, + "imageHighlighted": { + "type": "string", + "description": "Url ke zvyraznenemu obrazku ke sleve" + }, + "text": { + "type": "string", + "description": "Text slevy" + } + }, + "description": "Sleva pro kreditni karty." + }, + "CreditCardFinishContractCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro potvrzeni smlouvy", + "$ref": "#/definitions/CreditCardFinishContractForm" + } + }, + "description": "Request pro uložení souhlasu se smlouvou." + }, + "CreditCardFinishContractCommitResponse": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro potvrzeni smlouvy", + "$ref": "#/definitions/CreditCardFinishContractForm" + } + }, + "description": "Response pro potvrzeni smlouvy" + }, + "CreditCardFinishContractForm": { + "type": "object", + "properties": { + "agreementFlag": { + "description": "Soulas s podminkami.", + "$ref": "#/definitions/FormField«boolean»" + } + }, + "description": "Formular pro predsmluvni informace." + }, + "CreditCardFinishContractSetupRequest": { + "type": "object", + "description": "Request pro smlouvu." + }, + "CreditCardFinishContractSetupResponse": { + "type": "object", + "required": [ + "binaryData", + "state" + ], + "properties": { + "binaryData": { + "type": "string", + "description": "Binární data dokumentu převedená do base64." + }, + "state": { + "type": "string", + "description": "Výsledek procesu generování smlouvy.", + "enum": [ + "OK", + "OKBUT", + "OKLESS", + "MANUAL", + "NOK", + "IN_PROGRESS", + "ERROR" + ] + } + }, + "description": "Response pro predsmluvni informace." + }, + "CreditCardFinishPrecontractCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular způsobu splácení kreditní karty", + "$ref": "#/definitions/SbFinishPrecontractForm" + } + }, + "description": "Request pro uložení souhlasu s predsmluvnimi informacemi." + }, + "CreditCardFinishPrecontractCommitResponse": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular způsobu splácení kreditní karty", + "$ref": "#/definitions/SbFinishPrecontractForm" + } + }, + "description": "Response pro potvrzeni predsmluvni informace" + }, + "CreditCardFinishPrecontractSetupRequest": { + "type": "object", + "description": "Request pro predsmluvni informace." + }, + "CreditCardFinishPrecontractSetupResponse": { + "type": "object", + "required": [ + "binaryData", + "state" + ], + "properties": { + "binaryData": { + "type": "string", + "description": "Binární data dokumentu převedená do base64." + }, + "state": { + "type": "string", + "description": "Výsledek procesu generování smlouvy.", + "enum": [ + "OK", + "OKBUT", + "OKLESS", + "MANUAL", + "NOK", + "IN_PROGRESS", + "ERROR" + ] + } + }, + "description": "Response pro predsmluvni informace." + }, + "CreditCardFinishSignRequest": { + "type": "object", + "properties": { + "signatureBase64": { + "type": "string" + }, + "signatureType": { + "type": "string", + "enum": [ + "MOBILE_KEY", + "CERTIFICATE", + "SMARTBANK_PIN", + "SMARTBANK_FINGERPRINT", + "SMARTBANK_FACEID" + ] + } + }, + "description": "Pozadavek na podepsani klientem." + }, + "CreditCardFinishSignResponse": { + "type": "object", + "description": "Response podepsani smlouvy." + }, + "CreditCardFoundRequest": { + "type": "object", + "properties": { + "useCache": { + "type": "integer", + "format": "int64" + }, + "creditCardAccount": { + "type": "integer", + "format": "int64" + }, + "creditCardNumber": { + "type": "integer", + "format": "int64" + }, + "setupDate": { + "type": "string", + "format": "date-time" + }, + "distributionChannelCode": { + "type": "string" + }, + "additionalServiceCode": { + "type": "string" + } + } + }, + "CreditCardFoundResponse": { + "type": "object", + "properties": { + "cacheRequestId": { + "type": "integer", + "format": "int64" + } + } + }, + "CreditCardGeneratedDocumentsRequest": { + "type": "object", + "required": [ + "prodPackageKey" + ], + "properties": { + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku" + } + }, + "description": "Pozadavek na vygenerovane dokumenty k podpisu" + }, + "CreditCardGeneratedDocumentsResponse": { + "type": "object", + "required": [ + "generatedDocuments" + ], + "properties": { + "generatedDocuments": { + "type": "array", + "description": "Seznam podepisovanych dokumentu", + "items": { + "$ref": "#/definitions/GeneratedDocument" + } + } + }, + "description": "Odpoved s vygenerovanymi dokumenty k podpisu" + }, + "CreditCardGetApplicationStateRequest": { + "type": "object", + "description": "Pozadavek na zjisteni stavu zadosti o kreditni kartu." + }, + "CreditCardGetApplicationStateResponse": { + "type": "object", + "required": [ + "appExists" + ], + "properties": { + "appExists": { + "type": "boolean", + "example": false, + "description": "Priznak, zda zadost o kreditni kartu existuje." + }, + "appInProgress": { + "type": "boolean", + "example": false, + "description": "Priznak, zda je zadost o kreditni kartu rozpracovana." + }, + "canContinueApp": { + "type": "boolean", + "example": false, + "description": "Priznak, zda je mozne vratit se do existujici zadosti o kreditni kartu." + }, + "canCreateApp": { + "type": "boolean", + "example": false, + "description": "Priznak, zda je mozne vytvorit novou zadost o kreditni kartu." + }, + "state": { + "type": "string", + "description": "Frontendovy stav zadosti.", + "enum": [ + "APPLICATION_CREATED", + "BONUS_PACKAGE_SET", + "CREDIT_LIMIT_SET", + "NAME_SET", + "PERMANENT_ADDRESS_SET", + "CONTACT_ADDRESS_SET", + "PERSONAL_INCOME_SOURCE_SET", + "EMPLOYER_SET", + "PERSONAL_INCOME_SET", + "DEPENDENTS_SET", + "HOUSEHOLD_INCOME_SET", + "SCORING_INFO_SET", + "SCORING_AGREEMENT_SET", + "SENT_TO_SCORING", + "SCORING_FINISHED", + "INSTALMENT_CONFIRMED", + "ACTIVATION_PASSWORD_SET", + "BILLING_SET", + "PRECONTRACT_CONFIRMED", + "CONTRACT_CONFIRMED", + "SIGNED", + "DRAWN" + ] + } + }, + "description": "Odpoved se stavem zadosti o kreditni kartu." + }, + "CreditCardLimitCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular s parametry pro nastaveni limitu", + "$ref": "#/definitions/CreditCardLimitForm" + } + } + }, + "CreditCardLimitCommitResponse": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular s parametry pro nastaveni limitu", + "$ref": "#/definitions/CreditCardLimitForm" + } + } + }, + "CreditCardLimitForm": { + "type": "object", + "required": [ + "limit" + ], + "properties": { + "limit": { + "description": "limit kreditni karty", + "$ref": "#/definitions/FormField«long»" + } + }, + "description": "Formular pro nastaveni limitu ke kreditni karte." + }, + "CreditCardLimitSetupRequest": { + "type": "object" + }, + "CreditCardLimitSetupResponse": { + "type": "object", + "properties": { + "cardUrl": { + "type": "string", + "description": "Url obrazku karty" + }, + "changeFeeBoundaryAmount": { + "type": "integer", + "format": "int32", + "description": "Hranice pro změnu výše poplatků a parametrů úvěru. Hranice mezi Nad a Pod parametry." + }, + "lessCardManagement": { + "type": "string", + "description": "Utrata pod - Vedení karty" + }, + "lessInterestFreePeriod": { + "type": "string", + "description": "Utrata pod - bezurocne obdobi" + }, + "lessInterestRate": { + "type": "number", + "description": "Utrata pod - Úroková sazba p.a." + }, + "lessPaymentOrder": { + "type": "string", + "description": "Utrata pod - Příkaz k úhradě" + }, + "lessSelectionsAbroadAmount": { + "type": "string", + "description": "Utrata pod - Výběry v zahraničí V procentech" + }, + "lessSelectionsAbroadPercent": { + "type": "string", + "description": "Utrata pod - Výběry v zahraničí V procentech" + }, + "lessSelectionsElseWhere": { + "type": "string", + "description": "Utrata pod - Výběry jinde" + }, + "lessSelectionsInMMB": { + "type": "string", + "description": "Utrata pod - Výběry v MMB" + }, + "limit": { + "type": "integer", + "format": "int64", + "description": "Vybrana castka." + }, + "limitMax": { + "type": "integer", + "format": "int64", + "description": "Maximum limitu." + }, + "limitMin": { + "type": "integer", + "format": "int64", + "description": "Minimum limitu." + }, + "limitStep": { + "type": "integer", + "format": "int32", + "description": "Krok vyberu limitu." + }, + "moreCardManagement": { + "type": "string", + "description": "Utrata nad - Vedení karty" + }, + "moreInterestFreePeriod": { + "type": "string", + "description": "Utrata nad - bezurocne obdobi" + }, + "moreInterestRate": { + "type": "number", + "description": "Utrata nad - Úroková sazba p.a." + }, + "morePaymentOrder": { + "type": "string", + "description": "Utrata nad - Příkaz k úhradě" + }, + "moreSelectionsAbroadAmount": { + "type": "string", + "description": "Utrata nad - Výběry v zahraničí " + }, + "moreSelectionsAbroadPercent": { + "type": "string", + "description": "Utrata nad - Výběry v zahraničí v procentech" + }, + "moreSelectionsElseWhere": { + "type": "string", + "description": "Utrata nad - Výběry jinde" + }, + "moreSelectionsInMMB": { + "type": "string", + "description": "Utrata nad - Výběry v MMB" + } + } + }, + "CreditCardOnboardingLimitSetupRequest": { + "type": "object", + "required": [ + "branchID" + ], + "properties": { + "branchID": { + "type": "integer", + "format": "int64", + "description": "Id pobocky Moneta, na ktere klient zadost sjednava" + } + }, + "description": "Request objekt pro limit na kreditni karte." + }, + "CreditCardPersonalContactAddressCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Kontaktni adresa na kreditni karte", + "$ref": "#/definitions/SbApplicationAddressForm" + } + } + }, + "CreditCardPersonalContactAddressCommitResponse": { + "type": "object", + "properties": { + "addressForm": { + "description": "Kontaktni adresa.", + "$ref": "#/definitions/SbApplicationAddressForm" + } + } + }, + "CreditCardPersonalContactAddressSetupRequest": { + "type": "object" + }, + "CreditCardPersonalContactAddressSetupResponse": { + "type": "object", + "properties": { + "contactAddress": { + "description": "Kontaktni adresa.", + "$ref": "#/definitions/Address" + } + } + }, + "CreditCardPersonalDependentsCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular", + "$ref": "#/definitions/SbApplicationPersonalDependentsForm" + } + }, + "description": "Request objekt pro potvrzeni zavislych osob." + }, + "CreditCardPersonalDependentsCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud pri ukladani doslo k validacni chybe, je toto pole vyplneno formularem ze vstupu, obohacenym o validacni chyby.", + "$ref": "#/definitions/SbApplicationPersonalDependentsForm" + } + }, + "description": "Response objekt pro potvrzeni zavislych osob." + }, + "CreditCardPersonalDependentsSetupRequest": { + "type": "object", + "description": "Request objekt zavislych osob pro kreditni kartu." + }, + "CreditCardPersonalDependentsSetupResponse": { + "type": "object", + "properties": { + "dependentPersonCount": { + "type": "integer", + "format": "int64", + "description": "Pocet zavislych osob - vcetne me sameho" + } + }, + "description": "Response objekt zavislych osob pro kreditni kartu." + }, + "CreditCardPersonalEmployerCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro zamestnavatele", + "$ref": "#/definitions/SbApplicationPersonalEmployerForm" + } + }, + "description": "Zamestnavatel ke kreditni karte." + }, + "CreditCardPersonalEmployerCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro zamestnavatele. Pokud probehlo ulozeni ok, toto pole neni vyplneno.", + "$ref": "#/definitions/SbApplicationPersonalEmployerForm" + } + } + }, + "CreditCardPersonalEmployerSetupRequest": { + "type": "object" + }, + "CreditCardPersonalEmployerSetupResponse": { + "type": "object", + "properties": { + "employerAddress": { + "description": "Adresa zamestnavatele", + "$ref": "#/definitions/Address" + }, + "employerId": { + "type": "string", + "description": "ICO zamestnavatele" + }, + "employerName": { + "type": "string", + "description": "Nazev zamestnavatele" + } + }, + "description": "Response objekt pro zamestnavatele na kreditni karte." + }, + "CreditCardPersonalHouseholdSolvencyCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro zadani cisteho mesicniho prijmu domacnosti", + "$ref": "#/definitions/SbApplicationPersonalHouseholdSolvencyForm" + } + }, + "description": "Request objekt pro potvrzeni financni situace domacnosti." + }, + "CreditCardPersonalHouseholdSolvencyCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud pri ukladani doslo k validacni chybe, je toto pole vyplneno formularem ze vstupu, obohacenym o validacni chyby.", + "$ref": "#/definitions/SbApplicationPersonalHouseholdSolvencyForm" + } + }, + "description": "Response objekt pro potvrzeni financni situace domacnosti." + }, + "CreditCardPersonalHouseholdSolvencySetupRequest": { + "type": "object", + "description": "Request objekt pro nacteni financni situace domacnosti." + }, + "CreditCardPersonalHouseholdSolvencySetupResponse": { + "type": "object", + "properties": { + "netMonthlyHouseIncome": { + "type": "number", + "description": "Cisty mesicni prijem domacnosti" + } + }, + "description": "Response objekt pro nacteni financni situace domacnosti." + }, + "CreditCardPersonalIncomeSourceCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular pro zadani zroje prijmu", + "$ref": "#/definitions/SbApplicationIncomeSourceForm" + } + }, + "description": "pozadavek na ulozeni zdroje prijmu" + }, + "CreditCardPersonalIncomeSourceCommitResponse": { + "type": "object", + "properties": { + "continueApplication": { + "type": "string", + "description": "priznak zda a jak lze pokracovat v zadosti o kreditni kartu", + "enum": [ + "IMPOSSIBLE", + "BRANCH", + "OK" + ] + }, + "form": { + "description": "formular pro zadani zroje prijmu doplneny o validacni chyby. Pokud je vse ok je toto pole nevyplnene.", + "$ref": "#/definitions/SbApplicationIncomeSourceForm" + } + } + }, + "CreditCardPersonalIncomeSourceSetupRequest": { + "type": "object" + }, + "CreditCardPersonalIncomeSourceSetupResponse": { + "type": "object", + "properties": { + "employmentForPeriod": { + "type": "boolean", + "example": false, + "description": "priznak zda je zamestnani na dobu urcitou, ma smysl jen pokud employmentType = employee" + }, + "employmentTo": { + "type": "string", + "format": "date-time", + "description": "datum konce zamestnani - dava smysl jen pokud employmentType = employee a employmentForPeriod = true" + }, + "employmentType": { + "type": "string", + "description": "typ zamestnani (employee/entrepreneur/pensioner/other)", + "enum": [ + "EMPLOYEE", + "ENTREPRENEUR", + "PENSIONER", + "OTHER" + ] + }, + "inTrialPeriod": { + "type": "boolean", + "example": false, + "description": "priznak zda je ve zkusebni lhute, ma smysl jen pokud employmentType = employee" + }, + "onNotice": { + "type": "boolean", + "example": false, + "description": "priznak zda je ve vypovedni lhute, ma smysl jen pokud employmentType = employee" + } + }, + "description": "Data o zdroji prijmu nactena z zadosti o kreditni kartu." + }, + "CreditCardPersonalKOCriteriaCheckRequest": { + "type": "object" + }, + "CreditCardPersonalKOCriteriaCheckResponse": { + "type": "object", + "required": [ + "success" + ], + "properties": { + "success": { + "type": "boolean", + "example": false, + "description": "Pocet zavislych osob" + } + } + }, + "CreditCardPersonalNameCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular s parametry pro nastaveni osobnich informaci uzivatele", + "$ref": "#/definitions/PLoanPersonalInformationNameForm" + } + } + }, + "CreditCardPersonalNameCommitResponse": { + "type": "object", + "properties": { + "personalNameForm": { + "description": "Formular pro jmeno. Pokud probehlo ulozeni ok, toto pole neni vyplneno.", + "$ref": "#/definitions/PLoanPersonalInformationNameForm" + } + } + }, + "CreditCardPersonalNameSetupRequest": { + "type": "object" + }, + "CreditCardPersonalNameSetupResponse": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Jmeno" + }, + "surname": { + "type": "string", + "description": "Prijmeni" + } + } + }, + "CreditCardPersonalPermanentAddressCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Trvala adresa na kreditni karte", + "$ref": "#/definitions/SbApplicationAddressForm" + } + } + }, + "CreditCardPersonalPermanentAddressCommitResponse": { + "type": "object", + "properties": { + "addressForm": { + "description": "Trvala adresa.", + "$ref": "#/definitions/SbApplicationAddressForm" + } + } + }, + "CreditCardPersonalPermanentAddressSetupRequest": { + "type": "object" + }, + "CreditCardPersonalPermanentAddressSetupResponse": { + "type": "object", + "properties": { + "permanentAddress": { + "description": "Trvala adresa.", + "$ref": "#/definitions/Address" + } + } + }, + "CreditCardPersonalScoringInfoCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular.", + "$ref": "#/definitions/CreditCardPersonalScoringInfoForm" + } + }, + "description": "Request objekt dokumentu pro kreditni kartu." + }, + "CreditCardPersonalScoringInfoCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud pri ukladani doslo k validacni chybe, je toto pole vyplneno formularem ze vstupu, obohacenym o validacni chyby.", + "$ref": "#/definitions/CreditCardPersonalScoringInfoForm" + } + }, + "description": "Response objekt dokumentu pro kreditni kartu." + }, + "CreditCardPersonalScoringInfoForm": { + "type": "object", + "properties": { + "secondDocumentType": { + "description": "Typ druheho id dokumentu", + "$ref": "#/definitions/FormField«string»" + }, + "secondIdCardType": { + "description": "DEPRECATED: Pouzij secondDocumentType. Typ druheho id dokumentu", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro ulozeni dodatecnych informaci k zadosti o kreditni kartu." + }, + "CreditCardPersonalScoringInfoSetupRequest": { + "type": "object", + "description": "Response objekt pro nacteni dodatecnych informaci z zadosti kreditni kartu." + }, + "CreditCardPersonalScoringInfoSetupResponse": { + "type": "object", + "properties": { + "secondDocumentType": { + "type": "string", + "description": "Typ druheho dokladu. Vyctovy typ pro hodnoty Ridicsky prukaz, Pas a Rodny list (drivinglicence/passport/birthcertificate).", + "enum": [ + "DRIVING_LICENCE", + "PASSPORT", + "BIRTH_CERTIFICATE" + ] + }, + "secondIdCardType": { + "type": "string", + "description": "DEPRECATED: Pouzij secondDocumentType. Typ druheho dokladu. Vyctovy typ pro hodnoty Ridicsky prukaz, Pas a Rodny list (drivinglicence/passport/birthcertificate).", + "enum": [ + "drivingLicence", + "passport", + "birthCertificate" + ] + } + }, + "description": "Response objekt pro nacteni dodatecnych informaci z zadosti kreditni kartu." + }, + "CreditCardPersonalSolvencyCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular pro zadani prijmu", + "$ref": "#/definitions/SbApplicationPersonalSolvencyForm" + } + }, + "description": "Request objekt pro potvrzeni financni situace." + }, + "CreditCardPersonalSolvencyCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud pri ukladani doslo k validacni chybe, je toto pole vyplneno formularem ze vstupu, obohacenym o validacni chyby.", + "$ref": "#/definitions/SbApplicationPersonalSolvencyForm" + } + }, + "description": "Response objekt pro potvrzeni financni situace." + }, + "CreditCardPersonalSolvencySetupRequest": { + "type": "object", + "description": "Request objekt financni situace pro kreditni kartu." + }, + "CreditCardPersonalSolvencySetupResponse": { + "type": "object", + "properties": { + "netMonthlyIncome": { + "type": "number", + "description": "Cisty mesicni prijem" + } + }, + "description": "Response objekt financni situace pro kreditni kartu." + }, + "CreditCardProduct": { + "type": "object", + "properties": { + "amountStepConfig": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AmountStepConfig" + } + }, + "productConfig": { + "$ref": "#/definitions/CreditCardProductConfig" + } + } + }, + "CreditCardProductApplicationUpdateRequest": { + "type": "object", + "properties": { + "accountNumber": { + "type": "string", + "description": "Cislo uctu, ze ktereho bude klient splacet" + }, + "activationPassword": { + "type": "string", + "description": "Aktivacni heslo" + }, + "appKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktove zadosti" + }, + "bankCode": { + "type": "string", + "description": "Kod banky, ze ktere bude klient splacet" + }, + "cardLimit": { + "type": "integer", + "format": "int64", + "description": "Limit na kreditni karte ke zvolene variante" + }, + "repaymentMethod": { + "type": "string", + "description": "Typ splaceni" + }, + "statementDistributionType": { + "type": "string", + "description": "Typ distribuce vypisu" + }, + "variantKey": { + "type": "integer", + "format": "int64", + "description": "Zvolena varianta" + } + }, + "description": "Request pro update produktove zadosti" + }, + "CreditCardProductConfig": { + "type": "object", + "properties": { + "atmWithdrawalFeeForeignAmount": { + "type": "integer", + "format": "int32" + }, + "atmWithdrawalFeeForeignPercentage": { + "type": "number", + "format": "double" + }, + "atmWithdrawalFeeHome": { + "type": "number", + "format": "double" + }, + "benefitReward": { + "type": "number", + "format": "double" + }, + "benefitRewardBenePlus": { + "type": "number", + "format": "double" + }, + "cashBackFee": { + "type": "integer", + "format": "int32" + }, + "interestFreePeriodDays": { + "type": "integer", + "format": "int32" + }, + "interestFreePeriodPaymentDay": { + "type": "integer", + "format": "int32" + }, + "interestRate": { + "type": "number" + }, + "maxAmount": { + "type": "integer", + "format": "int32" + }, + "minAmount": { + "type": "integer", + "format": "int32" + }, + "minimumMonthlyPaymentAmount": { + "type": "integer", + "format": "int32" + }, + "minimumMonthlyPaymentPercentage": { + "type": "number", + "format": "double" + }, + "monthlyFee": { + "type": "number" + }, + "monthlyFeeConditional": { + "type": "integer", + "format": "int32" + }, + "monthlyFeeConditionalSpendingLimit": { + "type": "integer", + "format": "int32" + }, + "monthlyFeeFullRepayment": { + "type": "integer", + "format": "int32" + }, + "paymentOrderFee": { + "type": "number", + "format": "double" + } + } + }, + "CreditCardProductPrintReadyRequest": { + "type": "object", + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktove zadosti" + } + }, + "description": "Request pro zjisteni moznosti tisku u produktove zadosti" + }, + "CreditCardProductPrintReadyResponse": { + "type": "object", + "properties": { + "state": { + "type": "string", + "description": "Stav", + "enum": [ + "IN_PROGRESS", + "DONE", + "ERROR" + ] + } + }, + "description": "Response pro zjisteni moznosti tisku u produktove zadosti" + }, + "CreditCardProductScoringStatusRequest": { + "type": "object", + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktove zadosti" + }, + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku" + } + }, + "description": "Request pro zjisteni stavu schvalovani produktove zadosti" + }, + "CreditCardProductScoringStatusResponse": { + "type": "object", + "properties": { + "cardLimit": { + "type": "integer", + "format": "int64", + "description": "Limit na kreditni karte v celych tisicich Kc" + }, + "minInstalmentAmount": { + "type": "number", + "description": "Minimalni mesicni splatka" + }, + "state": { + "type": "string", + "description": "Stav scoringu", + "enum": [ + "OK", + "OKBUT", + "OKLESS", + "MANUAL", + "NOK", + "IN_PROGRESS", + "ERROR" + ] + }, + "stateReason": { + "type": "string", + "description": "Musi byt vyplneno pro NOK) - duvod pro vysledek scoringu. Jedna se o textovy popis lokalizovany podle vstupu language." + }, + "variantKey": { + "type": "integer", + "format": "int64", + "description": "Nabizena varianta" + } + }, + "description": "Response pro zjisteni stavu schvalovani produktove zadosti" + }, + "CreditCardReindexingAppDocsRequest": { + "type": "object", + "required": [ + "dmsDocTypeId", + "docCardTypeId", + "documentPhotos" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "Klic produktove zadosti" + }, + "cifId": { + "type": "string", + "description": "CIF klienta" + }, + "dmsDocTypeId": { + "type": "string", + "description": "Id obecneho typu dokumentu in DMS. (e.g. nabidky, dokumenty prokazujici prijem, ...)" + }, + "docCardTypeId": { + "type": "string", + "description": "Id konkretniho typu dokumentu. (e.g. POP, OP, ...)" + }, + "documentPhotos": { + "type": "array", + "description": "Ofocene dokumenty", + "items": { + "$ref": "#/definitions/DmsDocumentPhoto" + } + } + }, + "description": "DMS reindexace ofocenych dokumentu k zadosti." + }, + "CreditCardRequestCancelRequest": { + "type": "object" + }, + "CreditCardRequestCancelResponse": { + "type": "object" + }, + "CreditCardRequestCreateRequest": { + "type": "object", + "properties": { + "loanAmount": { + "type": "number" + } + } + }, + "CreditCardRequestCreateResponse": { + "type": "object" + }, + "CreditCardRequestDetailRequest": { + "type": "object", + "description": "Pozadavek na podepsani klientem." + }, + "CreditCardRequestDetailResponse": { + "type": "object", + "properties": { + "loanAmount": { + "type": "integer", + "format": "int64", + "description": "Vyse pujcky." + } + } + }, + "CreditCardRequestScoringAgreementCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular se souhlasem", + "$ref": "#/definitions/SbApplicationRequestScoringAgreementForm" + } + } + }, + "CreditCardRequestScoringAgreementCommitResponse": { + "type": "object" + }, + "CreditCardRequestScoringCheckResultRequest": { + "type": "object" + }, + "CreditCardRequestScoringCheckResultResponse": { + "type": "object", + "properties": { + "cardLimit": { + "type": "integer", + "format": "int64", + "description": "Limit na kreditni karte v celych tisicich Kc" + }, + "minInstallmentAmount": { + "type": "number", + "description": "Minimalni mesicni splatka" + }, + "minInstalmentAmount": { + "type": "number", + "description": "Minimalni mesicni splatka - DEPRECATED - prosim pouzi field minInstallmentAmount s dvema L." + }, + "state": { + "type": "string", + "description": "Bude vyplneno pouze pokud jiz dobehl scoring (finalState = true)) - vysledek scoringu. Enum s hodnotami: (OK, OKBUT, OKLESS, MANUAL, NOK). OK = zadost podminene schvalena, OKBUT = zadost podminene schvalena, ale je nutne dokoncit na pobocce (muze zaroven dojit i ke snizeni limitu uveru), OKLESS = zadost podminene schvalena, ale pouze se snizenym limitem uveru, MANUAL = zadost je nutne proverit rucne (zadatel bude informovan pres SMS), NOK = zadost zamitnuta", + "enum": [ + "OK", + "OKBUT", + "OKLESS", + "MANUAL", + "NOK", + "IN_PROGRESS", + "ERROR" + ] + }, + "stateReason": { + "type": "string", + "description": "Musi byt vyplneno pro NOK) - duvod pro vysledek scoringu. Jedna se o textovy popis lokalizovany podle vstupu language." + } + } + }, + "CreditCardRequestScoringCreateRequest": { + "type": "object" + }, + "CreditCardRequestScoringCreateResponse": { + "type": "object", + "required": [ + "prevalidationOk" + ], + "properties": { + "prevalidationOk": { + "type": "boolean", + "example": false, + "description": "Priznak zda prosly formalni kontroly." + } + } + }, + "CreditCardRequestScoringInstallmentConfirmationCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular", + "$ref": "#/definitions/CreditCardRequestScoringInstallmentConfirmationForm" + } + }, + "description": "Pozadavek na ulozeni potvrzeni schopnosti splacet." + }, + "CreditCardRequestScoringInstallmentConfirmationCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud pri ukladani doslo k validacni chybe, je toto pole vyplneno formularem ze vstupu, obohacenym o validacni chyby.", + "$ref": "#/definitions/CreditCardRequestScoringInstallmentConfirmationForm" + } + }, + "description": "Odpoved na ulozeni potvrzeni schopnosti splacet." + }, + "CreditCardRequestScoringInstallmentConfirmationForm": { + "type": "object", + "required": [ + "confirmationAmount", + "confirmationFlag" + ], + "properties": { + "confirmationAmount": { + "description": "Vyse splatky", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "confirmationFlag": { + "description": "Priznak, zda klient potvrzuje schopnost splacet danou vysi splatky", + "$ref": "#/definitions/FormField«boolean»" + } + } + }, + "CreditCardSalesPointProductListRequest": { + "type": "object" + }, + "CreditCardSalesPointProductListResponse": { + "type": "object", + "properties": { + "salesPoints": { + "type": "array", + "description": "Docasny salespoint pro kreditni karty(nez bude obecny endpoint skrze produkty).", + "items": { + "$ref": "#/definitions/Salespoint" + } + } + } + }, + "CreditCardSignAppDocumentsDescriptionsResponse": { + "type": "object", + "required": [ + "descriptions" + ], + "properties": { + "descriptions": { + "type": "object", + "description": "Popisy dokumentu", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "Odpoved na popisy dokumentu pro podpisovou aplikaci" + }, + "CreditCardSignAppTokenRequest": { + "type": "object", + "required": [ + "branchId", + "firstName", + "lastName" + ], + "properties": { + "branchId": { + "type": "integer", + "format": "int64", + "description": "Identifikator pobocky" + }, + "firstName": { + "type": "string", + "description": "Jmeno klienta" + }, + "generatedDocuments": { + "type": "array", + "description": "Seznam podepisovanych dokumentu", + "items": { + "$ref": "#/definitions/GeneratedDocument" + } + }, + "lastName": { + "type": "string", + "description": "Prijmeni klienta" + }, + "urlForReturn": { + "type": "string", + "description": "URL pro navrat z aplikace MPodpis" + } + }, + "description": "Pozadavek na konfiguraci podepisovaci session pro aplikaci MPodpis" + }, + "CreditCardStatementRepaymentRequest": { + "type": "object", + "required": [ + "cardId" + ], + "properties": { + "cardId": { + "type": "integer", + "format": "int64", + "description": "Jednoznacna identifikator karty." + } + } + }, + "CreditCardStatementRepaymentResponse": { + "type": "object", + "required": [ + "creditLimit", + "creditLimitSpend", + "lastStatementDate", + "lastStatementRepaymentAmount", + "remainingFunds", + "repaymentDate" + ], + "properties": { + "creditLimit": { + "type": "number", + "description": "Celkovy uverovy ramec." + }, + "creditLimitSpend": { + "type": "number", + "description": "Aktualni vycerpany uverovy ramec." + }, + "lastStatementDate": { + "type": "string", + "format": "date-time", + "description": "Datum vystaveni posledniho vypisu." + }, + "lastStatementRepaymentAmount": { + "type": "number", + "description": "Vyse splatky pro vyuziti bezurocneho obdobi." + }, + "remainingFunds": { + "type": "number", + "description": "Zbyvajici castka pro dalsi transakce." + }, + "repaymentDate": { + "type": "string", + "format": "date-time", + "description": "Datum splatnosti k uhrade." + } + } + }, + "CreditCardTransactionCategoryRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "categoryId": { + "type": "integer", + "format": "int64", + "description": "Identifikator kategorie, ktera se ma priradit k dane transakci." + }, + "transactionId": { + "type": "string", + "description": "Identifikator transakce, ktera se ma do dane kategorie zaradit." + } + } + }, + "CreditCardTransactionFilter": { + "type": "object", + "properties": { + "additional_CARDS": { + "description": "zobrazeni transakci dodatkovych karet", + "$ref": "#/definitions/FilterableBooleanField" + }, + "booleanAdditionalCardsFilter": { + "type": "boolean" + }, + "categoryId": { + "type": "integer", + "format": "int64", + "description": "Kategorie, do ktere byla platba zarazena" + }, + "dateFromFilter": { + "type": "string", + "format": "date-time" + }, + "dateToFilter": { + "type": "string", + "format": "date-time" + }, + "date_FROM": { + "description": "pocatecni datum od ktere se vyhledavaji transakce", + "$ref": "#/definitions/FilterableDateTimeField" + }, + "date_TO": { + "description": "konecne datum do ktereho se vyhledavaji transakce", + "$ref": "#/definitions/FilterableDateTimeField" + }, + "filterableFields": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/FilterableField" + } + }, + "indexFrom": { + "type": "integer", + "format": "int32", + "description": "Index prvniho zaznamu stranky v celkovem seznamu. Indexovano od 1." + }, + "indexTo": { + "type": "integer", + "format": "int32", + "description": "Index posledniho zaznamu stranky v celkovem seznamu. Indexovano od 1." + }, + "sort_BY_AMOUNT": { + "description": "priznak serazeni vyslednych transakci podle castky", + "$ref": "#/definitions/SortableField" + }, + "sort_BY_DATE": { + "description": "priznak serazeni vyslednych transakci podle data", + "$ref": "#/definitions/SortableField" + }, + "sort_BY_EXECUTED_DATE": { + "description": "priznak serazeni vyslednych transakci podle data vykonani", + "$ref": "#/definitions/SortableField" + }, + "sortableFields": { + "type": "array", + "items": { + "$ref": "#/definitions/SortableField" + } + } + } + }, + "CreditCardTransactionListRequest": { + "type": "object", + "properties": { + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni id konkretni karty nad kterou se dohledava transakcni historie" + }, + "creditCardTransactionFilter": { + "description": "Transakcni filtr pro omezeni vyhledavanych transakci kreditni karty", + "$ref": "#/definitions/CreditCardTransactionFilter" + } + } + }, + "CreditCardTransactionListResponse": { + "type": "object", + "required": [ + "creditCardTransactions" + ], + "properties": { + "creditCardTransactions": { + "type": "array", + "description": "seznam transakci nad kartou", + "items": { + "$ref": "#/definitions/Transaction" + } + } + } + }, + "CreditCardUploadSignedDocumentRequest": { + "type": "object", + "required": [ + "generatedDocument" + ], + "properties": { + "generatedDocument": { + "description": "Podepsany dokument", + "$ref": "#/definitions/GeneratedDocument" + } + }, + "description": "Pozadavek na nahrani podepsaneho dokumentu do DMS" + }, + "CreditCardVariantRequest": { + "type": "object", + "description": "careditCard variant request" + }, + "CreditasRegistrationRequest": { + "type": "object", + "required": [ + "accountId", + "accountType", + "authorizationBearer", + "transactionId" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Account identification" + }, + "accountType": { + "type": "string", + "description": "Account type", + "enum": [ + "CURRENT", + "SAVINGS" + ] + }, + "authorizationBearer": { + "type": "string", + "description": "Authorization secret" + }, + "transactionId": { + "type": "string", + "description": "Transaction id of the related UDEBS transaction (passed as URL query param)." + } + }, + "description": "Creditas registration request" + }, + "CreditorReferenceInformation": { + "type": "object", + "properties": { + "reference": { + "type": "string", + "description": "Value of variable, specific and constant symbols (domestic payments only)" + } + }, + "description": "Reference information provided by the recipient that allows identification of underlying documents (eg invoices)" + }, + "CurrentAccount": { + "type": "object", + "properties": { + "accountNumber": { + "type": "string", + "description": "Cislo uctu" + }, + "currency": { + "type": "string", + "description": "Mena uctu" + }, + "name": { + "type": "string", + "description": "Nazev uctu" + }, + "type": { + "type": "string", + "description": "Typ uctu" + } + }, + "description": "Bezny ucet" + }, + "DebitCard": { + "type": "object", + "required": [ + "activity", + "cardId", + "cardNumberHashed", + "cardNumberMasked", + "currencyCode", + "holderName", + "logoId", + "mainCard", + "name", + "typeId", + "validity" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Cislo navazaneho bezneho uctu" + }, + "activity": { + "type": "string", + "description": "Aktivita karty (ACTIVE, NONACTIVE, TEMPORARILY_BLOCKED, PERMANENTLY_BLOCKED, EXPIRED, UNRECORDED_ON_SIM, CANCELED, UNVERIFIED, REQUESTED)", + "enum": [ + "ACTIVE", + "NONACTIVE", + "TEMPORARILY_BLOCKED", + "PERMANENTLY_BLOCKED", + "DEBT", + "EXPIRED", + "UNRECORDED_ON_SIM", + "CANCELED", + "UNVERIFIED", + "REQUESTED" + ] + }, + "allowedOperations": { + "type": "array", + "description": "Povoleni operaci na karte - true false (SETTINGS_ALLOWED, TRANSACTIONS_ALLOWED, CARD_BLOCK_ALLOWED, CARD_PAYMENT_ORDER_ALLOWED, CARD_UNBLOCK_ALLOWED, CREDIT_REPAYMENT_ALLOWED, CHANGE_LIMIT_ATM_ALLOWED, CHANGE_LIMIT_CASHLESS_TRANS_ALLOWED, CHANGE_LIMIT_MOTO_ALLOWED, CHANGE_INTERNET_TRANS_ALLOWED, CHANGE_3DS_ALLOWED, CHANGE_3DS_MOBILE_PHONE_ALLOWED, CHANGE_MOTO_ALLOWED, CHANGE_ATM_WORLD_ALLOWED, STATEMENT_LIST)", + "items": { + "type": "string", + "enum": [ + "SETTINGS_ALLOWED", + "TRANSACTIONS_ALLOWED", + "CARD_BLOCK_ALLOWED", + "CARD_PAYMENT_ORDER_ALLOWED", + "CARD_UNBLOCK_ALLOWED", + "CREDIT_REPAYMENT_ALLOWED", + "CHANGE_LIMIT_ATM_ALLOWED", + "CHANGE_LIMIT_CASHLESS_TRANS_ALLOWED", + "CHANGE_LIMIT_MOTO_ALLOWED", + "CHANGE_INTERNET_TRANS_ALLOWED", + "CHANGE_3DS_ALLOWED", + "CHANGE_3DS_MOBILE_PHONE_ALLOWED", + "CHANGE_MOTO_ALLOWED", + "CHANGE_ATM_WORLD_ALLOWED", + "TOKENIZATION_ALLOWED", + "STATEMENT_LIST", + "BONUS_PACKAGE_ALLOWED", + "TOKEN_LIST" + ] + } + }, + "cardHolder": { + "type": "boolean", + "example": false, + "description": "Priznak zda je aktualni uzivatel drzitelem karty." + }, + "cardHolderRc": { + "type": "string", + "description": "Rodne cislo drzitele karty" + }, + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni ID karty v UDEBS" + }, + "cardNetwork": { + "type": "string", + "description": "karetni asociace dane karty (VISA, MASTERCARD)", + "enum": [ + "MASTERCARD", + "VISA" + ] + }, + "cardNumberHashed": { + "type": "string", + "description": "Zahashovane cislo karty" + }, + "cardNumberMasked": { + "type": "string", + "description": "Zahvezdickovane cislo karty" + }, + "contractSigningDate": { + "type": "string", + "format": "date-time", + "description": "Datum podepsani smlouvy" + }, + "currencyCode": { + "type": "string", + "description": "mena karty", + "enum": [ + "ATS", + "AUD", + "BEF", + "HRK", + "CAD", + "CHF", + "CZK", + "DEM", + "DKK", + "ESP", + "EUR", + "FIM", + "FRF", + "GBP", + "GRD", + "HUF", + "ITL", + "JPY", + "NLG", + "NOK", + "PLN", + "PTE", + "RUB", + "SEK", + "SKK", + "RON", + "BGN", + "USD" + ] + }, + "holderName": { + "type": "string", + "description": "Jmeno drzitele karty" + }, + "limitAtm": { + "type": "number", + "description": "Limit (denni, nebo mesicni - podle typu karty) pro vyber hotovosti" + }, + "limitCashlessTransaction": { + "type": "number", + "description": "Limit pro bezhotovostni nakupy" + }, + "limitMoto": { + "type": "number", + "description": "Limit pro internetove a MO/TO transakce" + }, + "limitType": { + "type": "string", + "description": "Typ limitu pro nastaveni karty (DAILY, MONTHLY)", + "enum": [ + "DAILY", + "MONTHLY" + ] + }, + "loanAccountId": { + "type": "string", + "description": "Cislo navazaneho uveroveho uctu" + }, + "logoId": { + "type": "string", + "description": "id loga karty." + }, + "mainCard": { + "type": "boolean", + "example": false, + "description": "priznak zda je karta hlavni" + }, + "maxLimitAtm": { + "type": "number", + "description": "Maximalni limit pro vyber hotovosti z bankomatu" + }, + "maxLimitCashlessTransaction": { + "type": "number", + "description": "Maximalni limit pro bezhotovostni transakce" + }, + "maxLimitMoto": { + "type": "number", + "description": "Maximalni limit pro internetove a MO/TO transakce" + }, + "mobileNumberNfc": { + "type": "string", + "description": "Telefonni cislo SIM karty s NFC" + }, + "name": { + "type": "string", + "description": "Nazev karty" + }, + "owner": { + "type": "boolean", + "example": false, + "description": "priznak ze aktualni uzivatel je majitelem karty" + }, + "secure3D": { + "type": "string", + "description": "3D secure (NONACTIVE, ACTIVE, BLOCKED)", + "enum": [ + "NONACTIVE", + "ACTIVE", + "BLOCKED", + "NORESPONSE" + ] + }, + "secure3DPhoneNumber": { + "description": "Telefonni kontakt pro 3D secure", + "$ref": "#/definitions/PhoneNumber" + }, + "transactionAtmWorld": { + "type": "boolean", + "example": false, + "description": "Povoleni vyberu hotovosti z bankomatu v zahranici (mimo EU)" + }, + "transactionInternet": { + "type": "boolean", + "example": false, + "description": "Povoleni internetovych transakci (true, false)" + }, + "transactionMoto": { + "type": "boolean", + "example": false, + "description": "Povoleni MO/TO transakci (true, false)" + }, + "typeId": { + "type": "string", + "description": "Typ karty - (500 - kreditni karta, 600 - debetni karta)", + "enum": [ + "CREDIT", + "DEBIT" + ] + }, + "unblockDate": { + "type": "string", + "format": "date-time", + "description": "Datum odblokovani karty" + }, + "unblockPhoneNumber": { + "description": "Telefonni kontakt pro notifikaci k odblokovani karty", + "$ref": "#/definitions/PhoneNumber" + }, + "validity": { + "type": "string", + "description": "Platnost karty" + }, + "vlsNextChangeDate": { + "type": "string", + "format": "date-time", + "description": "Datum mozne zmeny zvyhodneni ke karte" + }, + "vlsProgramBornDate": { + "type": "string", + "format": "date-time", + "description": "Datum platnosti zvyhodneni ke karte" + } + }, + "description": "DebitCard trida je potomek tridy Card a obsahuje parametry specificke pro debetni kartu" + }, + "DebitCardTransactionFilter": { + "type": "object", + "properties": { + "categoryId": { + "type": "integer", + "format": "int64", + "description": "Kategorie, do ktere byla platba zarazena" + }, + "dateFromFilter": { + "type": "string", + "format": "date-time" + }, + "dateToFilter": { + "type": "string", + "format": "date-time" + }, + "date_FROM": { + "description": "pocatecni datum od ktere se vyhledavaji transakce", + "$ref": "#/definitions/FilterableDateTimeField" + }, + "date_TO": { + "description": "konecne datum do ktereho se vyhledavaji transakce", + "$ref": "#/definitions/FilterableDateTimeField" + }, + "filterableFields": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/FilterableField" + } + }, + "indexFrom": { + "type": "integer", + "format": "int32", + "description": "Index prvniho zaznamu stranky v celkovem seznamu. Indexovano od 1." + }, + "indexTo": { + "type": "integer", + "format": "int32", + "description": "Index posledniho zaznamu stranky v celkovem seznamu. Indexovano od 1." + }, + "sort_BY_DATE": { + "description": "priznak serazeni vyslednych transakci podle data", + "$ref": "#/definitions/SortableField" + }, + "sortableFields": { + "type": "array", + "items": { + "$ref": "#/definitions/SortableField" + } + } + } + }, + "DebitCardTransactionListRequest": { + "type": "object", + "properties": { + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni id konkretni karty nad kterou se dohledava transakcni historie" + }, + "debitCardTransactionFilter": { + "description": "Transakcni filtr pro omezeni vyhledavanych transakci debetni karty", + "$ref": "#/definitions/DebitCardTransactionFilter" + } + } + }, + "DebitCardTransactionListResponse": { + "type": "object", + "required": [ + "debitCardTransactions" + ], + "properties": { + "debitCardTransactions": { + "type": "array", + "description": "seznam transakci nad debetni kartou", + "items": { + "$ref": "#/definitions/Transaction" + } + } + } + }, + "DebtorIdentification": { + "type": "object", + "properties": { + "iban": { + "type": "string", + "description": "IBAN." + }, + "other": { + "description": "Unique account identification given by the bank using account identification scheme.", + "$ref": "#/definitions/DebtorOtherIdentification" + } + }, + "description": "Debtor account identification. It is required that at least 'iban' or 'other' is not null" + }, + "DebtorOtherIdentification": { + "type": "object", + "properties": { + "identification": { + "type": "string", + "description": "Account number in Czech BBAN format" + } + }, + "description": "Unique account identification given by the bank using account identification scheme." + }, + "DecisionReason": { + "type": "object", + "properties": { + "messageGroup": { + "type": "string", + "description": "Group can be used for showing other rejection message on frontend.", + "enum": [ + "BRKI_NRKI", + "MVCR", + "ISIR", + "OTHER" + ] + }, + "statusReasonCode": { + "type": "string", + "description": "Reason code of final status" + }, + "statusReasonMsg": { + "type": "string", + "description": "Reason message of final status" + } + }, + "description": "Reason info of final decision of application scoring" + }, + "DeleteAccountRegistrationRequest": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "ID of the account to delete/disable." + } + }, + "description": "Request to delete/disable Bank API account." + }, + "DeleteAccountRegistrationResponse": { + "type": "object", + "properties": { + "accountDeleted": { + "type": "boolean", + "example": false, + "description": "Whether the account was successfully deleted/disabled." + } + }, + "description": "Response to delete/disable Bank API account." + }, + "DeleteForeignPaymentTemplateRequest": { + "type": "object", + "required": [ + "templateId" + ], + "properties": { + "templateId": { + "type": "integer", + "format": "int64", + "description": "ID sablony ke smazani." + } + } + }, + "DeleteForeignPaymentTemplateResponse": { + "type": "object" + }, + "DirectDebit": { + "type": "object", + "required": [ + "destinationAccountNumber", + "directDebitId", + "frequency", + "sipoNumber", + "sourceAccountId", + "sourceAccountNumber", + "statusId", + "typeId" + ], + "properties": { + "amountLimit": { + "type": "number", + "description": "Maximalni castka inkasa" + }, + "description": { + "type": "string", + "description": "Nazev inkasa" + }, + "destinationAccountNumber": { + "description": "cislo kreditniho uctu prijemce", + "$ref": "#/definitions/AccountNumber" + }, + "directDebitId": { + "type": "string", + "description": "Cislo inkasa (123456)" + }, + "endDate": { + "type": "string", + "format": "date-time", + "description": "Datum konceni" + }, + "frequency": { + "type": "string", + "description": "Frekvence inkasa: DAILY(D001, D1), WEEKLY(D007, D7), MONTHLY(M001, M1), QUARTERLY(M003, M3), SEMIANNUALLY(M006, M6), YEARLY(M012, M12)", + "enum": [ + "DAILY", + "WEEKLY", + "MONTHLY", + "QUARTERLY", + "SEMIANNUALLY", + "YEARLY" + ] + }, + "sipoNumber": { + "type": "integer", + "format": "int64", + "description": "Cislo SIPO (8004057031)" + }, + "sourceAccountId": { + "type": "string", + "description": "Interni id debetniho uctu (123456)" + }, + "sourceAccountNumber": { + "description": "Predcisli a cislo debetniho uctu", + "$ref": "#/definitions/AccountNumber" + }, + "startDate": { + "type": "string", + "format": "date-time", + "description": "Datum zalozeni" + }, + "statusId": { + "type": "string", + "description": "Status povoleni: CANCELLED(0), ACTIVE(1)", + "enum": [ + "CANCELLED", + "ACTIVE" + ] + }, + "typeId": { + "type": "string", + "description": "Typ povoleni: SIPO(1), COLLECTION(2)", + "enum": [ + "SIPO", + "COLLECTION" + ] + } + }, + "description": "Trida DirectDebit obsahuje povoleni k inkasu SIPO" + }, + "DirectDebitCreateCommitRequest": { + "type": "object", + "required": [ + "directDebitForm", + "transactionId" + ], + "properties": { + "directDebitForm": { + "description": "formular inkasa zaslany ke zpracovani, musi byt stejny jako pri create requestu", + "$ref": "#/definitions/DirectDebitForm" + }, + "transactionId": { + "type": "string", + "description": "Id transakce, ktere bylo vygenerovano pri create requestu" + } + } + }, + "DirectDebitCreateCommitResponse": { + "type": "object", + "properties": { + "directDebitForm": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/DirectDebitForm" + }, + "directDebitId": { + "type": "integer", + "format": "int64", + "description": "Id nove vytvoreneho inkasa, pokud vytoreni probehlo v poradku." + } + } + }, + "DirectDebitCreateRequest": { + "type": "object", + "required": [ + "directDebitForm" + ], + "properties": { + "directDebitForm": { + "description": "Vstupni formular pro zadani inkasa.", + "$ref": "#/definitions/DirectDebitForm" + } + } + }, + "DirectDebitCreateResponse": { + "type": "object", + "properties": { + "directDebitForm": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/DirectDebitForm" + }, + "transactionId": { + "type": "string", + "description": "Pokud vstupni formular prosel pres validace, vrati transakcni id, ktere je pouzito pri commitu." + } + } + }, + "DirectDebitDeleteRequest": { + "type": "object", + "properties": { + "directDebitId": { + "type": "string" + } + } + }, + "DirectDebitDeleteResponse": { + "type": "object" + }, + "DirectDebitEditCommitRequest": { + "type": "object", + "required": [ + "directDebitForm", + "transactionId" + ], + "properties": { + "directDebitForm": { + "description": "formular inkasa zaslany ke zpracovani, musi byt stejny jako pri create requestu", + "$ref": "#/definitions/DirectDebitForm" + }, + "transactionId": { + "type": "string", + "description": "Id transakce, ktere bylo vygenerovano pri create requestu" + } + } + }, + "DirectDebitEditCommitResponse": { + "type": "object", + "properties": { + "directDebitForm": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/DirectDebitForm" + } + } + }, + "DirectDebitEditRequest": { + "type": "object", + "required": [ + "directDebitForm" + ], + "properties": { + "directDebitForm": { + "description": "Vstupni formular pro editaci inkasa.", + "$ref": "#/definitions/DirectDebitForm" + } + } + }, + "DirectDebitEditResponse": { + "type": "object", + "properties": { + "directDebitForm": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/DirectDebitForm" + }, + "transactionId": { + "type": "string", + "description": "Pokud vstupni formular prosel pres validace, vrati transakcni id, ktere je pouzito pri commitu." + } + } + }, + "DirectDebitForm": { + "type": "object", + "required": [ + "amountLimit", + "destinationAccountBank", + "destinationAccountNumber", + "directDebitId", + "frequency", + "maxTransactionsInPeriod", + "sourceAccountId", + "startDate" + ], + "properties": { + "amountLimit": { + "description": "limit, po ktery je mozne cerpat inkaso", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "description": { + "description": "popis inkasa", + "$ref": "#/definitions/FormField«string»" + }, + "destinationAccountBank": { + "description": "kod banky ciloveho cisla uctu", + "$ref": "#/definitions/FormField«string»" + }, + "destinationAccountNumber": { + "description": "cislo ciloveho cisla uctu", + "$ref": "#/definitions/FormField«long»" + }, + "destinationAccountPrefix": { + "description": "prefix ciloveho cisla uctu", + "$ref": "#/definitions/FormField«int»" + }, + "directDebitId": { + "description": "Interni id inkasa, povinne pri editaci, ignorovano pri vytvareni", + "$ref": "#/definitions/FormField«string»" + }, + "endDate": { + "description": "datum konce platnosti inkasa", + "$ref": "#/definitions/FormField«date-time»" + }, + "frequency": { + "description": "frekvence obnoveni inkasa", + "$ref": "#/definitions/FormField«string»" + }, + "maxTransactionsInPeriod": { + "description": "maximalni pocet transakci v ramci jedne periody", + "$ref": "#/definitions/FormField«long»" + }, + "sourceAccountId": { + "description": "Interni id zdrojoveho uctu, povinne pri vytvareni, ignorovano pri editaci", + "$ref": "#/definitions/FormField«string»" + }, + "startDate": { + "description": "datum zacatku platnosti inkasa", + "$ref": "#/definitions/FormField«date-time»" + } + } + }, + "DirectDebitListRequest": { + "type": "object", + "required": [ + "accountId" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Cislo uctu" + } + } + }, + "DirectDebitListResponse": { + "type": "object", + "required": [ + "directDebits" + ], + "properties": { + "directDebits": { + "type": "array", + "description": "Seznam s povolenimi k inkasu/Sipu, pokud uzivatel zadne povoleni nema, vraci se prazdny seznam", + "items": { + "$ref": "#/definitions/DirectDebit" + } + } + } + }, + "DirectDebitSetupRequest": { + "type": "object" + }, + "DirectDebitSetupResponse": { + "type": "object", + "properties": { + "directDebitSetup": { + "$ref": "#/definitions/PaymentSetup" + } + } + }, + "DmsAppDocUploadRequest": { + "type": "object", + "properties": { + "appKey": { + "type": "string", + "description": "Cislo zadosti (napr. o CIF), ktere bude pouzito jako nazev slozky v DMS pro nahrane dokumenty." + }, + "documentKeys": { + "type": "array", + "description": "Seznam informaci o dokumentu, ktery ma byt uploadovany z docasne cache do DMS pod slozku zadosti", + "items": { + "type": "string" + } + } + } + }, + "DmsAppDocUploadResponse": { + "type": "object", + "required": [ + "dmsDocuments" + ], + "properties": { + "dmsDocuments": { + "type": "array", + "description": "Vysledky nahrani dokumentu do DMS. Vraci pary hodnot: klic dokumentu a cmid (id z DMS)", + "items": { + "$ref": "#/definitions/DmsDocumentInfo" + } + } + } + }, + "DmsDocumentInfo": { + "type": "object", + "required": [ + "dmsId", + "documentKey" + ], + "properties": { + "dmsId": { + "type": "string", + "description": "CMID - id dokumentu ulozeneho v DMS" + }, + "documentKey": { + "type": "string", + "description": "Identifikator nahravaneho dokumentu do DMS" + }, + "documentType": { + "type": "string", + "description": "Kategorie nahraneho dokumentu do DMS. Napr. ID_CARD, DRIVING_LICENSE, TAX_RETURN, TRADE_CERTIFICATE..." + } + } + }, + "DmsDocumentPhoto": { + "type": "object", + "properties": { + "order": { + "type": "integer", + "format": "int32" + }, + "dmsDocIdentifier": { + "type": "string" + } + } + }, + "DmsUploadRequest": { + "type": "object", + "properties": { + "fileName": { + "type": "string", + "description": "nazev souboru" + }, + "imageData": { + "type": "string", + "description": "base64 data obrazku" + }, + "mimeType": { + "type": "string", + "description": "mime type" + } + } + }, + "DmsUploadResponse": { + "type": "object", + "required": [ + "documentId" + ], + "properties": { + "documentId": { + "type": "string", + "description": "documentId" + } + } + }, + "Doba trvani pojisteni": { + "type": "object", + "required": [ + "endDate", + "startDate" + ], + "properties": { + "endDate": { + "type": "string", + "format": "date-time", + "description": "Datum konce platnosti pojisteni." + }, + "startDate": { + "type": "string", + "format": "date-time", + "description": "Datum pocatku platnosti pojisteni." + } + }, + "description": "Objekt s datem pocatku a datem ukonceni pojisteni." + }, + "Document": { + "type": "object", + "properties": { + "binaryData": { + "type": "string", + "description": "vygenerovany nahled" + }, + "docURL": { + "type": "string", + "description": "URL dokumentace" + } + } + }, + "DocumentGetRequest": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "Id dokumentu." + } + } + }, + "DocumentGetResponse": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "data PDF v base64." + } + } + }, + "DocumentListRequest": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "Od ktereho data se maji dokumenty zobrazit." + }, + "read": { + "type": "boolean", + "example": false, + "description": "Priznak zda zobrazit prectene dokumenty." + }, + "sort": { + "type": "string", + "description": "Razeni dokumentu dle data. Pokud neni uvedeno explicitne je pouzito sestupne razeni - nejnovejsi na zacatku.", + "enum": [ + "ASC", + "DESC" + ] + }, + "to": { + "type": "string", + "format": "date-time", + "description": "Do ktereho data se maji dokumenty zobrazit." + } + } + }, + "DocumentListResponse": { + "type": "object", + "properties": { + "myDocumentList": { + "type": "array", + "description": "Seznam dokumentu klienta.", + "items": { + "$ref": "#/definitions/MyDocument" + } + } + } + }, + "DocumentReadCommitRequest": { + "type": "object", + "required": [ + "documentId" + ], + "properties": { + "documentId": { + "type": "string", + "description": "Id dokumentu." + } + } + }, + "DocumentReadCommitResponse": { + "type": "object" + }, + "DoubleRange": { + "type": "object", + "properties": { + "max": { + "type": "number", + "format": "double", + "description": "Maximalni hodnota." + }, + "min": { + "type": "number", + "format": "double", + "description": "Minimalni hodnota." + } + }, + "description": "Celociselny rozsah hodnot." + }, + "Druhy doklad": { + "type": "object", + "required": [ + "country", + "documentNumber", + "documentValidTo", + "type" + ], + "properties": { + "country": { + "description": "Zeme", + "$ref": "#/definitions/FormField«string»" + }, + "documentNumber": { + "description": "Cislo dokumentu", + "$ref": "#/definitions/FormField«string»" + }, + "documentValidTo": { + "description": "Platnost dokumentu", + "$ref": "#/definitions/FormField«date-time»" + }, + "type": { + "description": "typ dokumentu(pas, ridicak, zadny)", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "udaje z pasu nebo ridicskeho prukazu" + }, + "Druhy doklad w2w": { + "type": "object", + "required": [ + "birthDate", + "birthNumber", + "birthPlace", + "documentNumber", + "documentValidTo", + "firstName", + "issuerCountry", + "lastName" + ], + "properties": { + "birthDate": { + "description": "Datum narozeni", + "$ref": "#/definitions/FormField«date-time»" + }, + "birthNumber": { + "description": "Rodne cislo", + "$ref": "#/definitions/FormField«string»" + }, + "birthPlace": { + "description": "Misto narozeni", + "$ref": "#/definitions/FormField«string»" + }, + "documentNumber": { + "description": "Cislo dokumentu", + "$ref": "#/definitions/FormField«string»" + }, + "documentValidTo": { + "description": "Platnost dokumentu", + "$ref": "#/definitions/FormField«date-time»" + }, + "firstName": { + "description": "Jmeno", + "$ref": "#/definitions/FormField«string»" + }, + "formStatus": { + "$ref": "#/definitions/FormStatus" + }, + "issuerCountry": { + "description": "Zeme", + "$ref": "#/definitions/FormField«string»" + }, + "lastName": { + "description": "Prijmeni", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "udaje z pasu nebo ridicskeho prukazu" + }, + "EAutoLogin": { + "type": "object", + "required": [ + "contractFlag" + ], + "properties": { + "contractFlag": { + "type": "boolean", + "example": false, + "description": "Flag, zda ma klient smlouvu k EAutu." + }, + "loginHash": { + "type": "string", + "description": "Login hash k EAutu." + } + }, + "description": "Trida pro zjisteni, zda ma klient smlouvu k EAutu a k dotazeni login hashe." + }, + "EAutoLoginResponse": { + "type": "object", + "required": [ + "eAutoLogin" + ], + "properties": { + "eAutoLogin": { + "description": "Objekt k loginu do EAuta - obsahuje priznak smlouvy a login hash.", + "$ref": "#/definitions/EAutoLogin" + }, + "eautoLogin": { + "$ref": "#/definitions/EAutoLogin" + } + } + }, + "EmailExpressContractCopyRequest": { + "type": "object", + "required": [ + "prodPackageKey" + ], + "properties": { + "clientEmail": { + "type": "string", + "description": "Email klienta" + }, + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku pro Expres pujcku" + } + }, + "description": "Pozadavek na poslani emailu s kopii smlouvy o Expres pujcce" + }, + "EmailExpressContractCopyResponse": { + "type": "object", + "required": [ + "emails" + ], + "properties": { + "emails": { + "type": "array", + "description": "Seznam emailu, na ktere byla kopie smlouvy poslana", + "items": { + "type": "string" + } + } + }, + "description": "Odpoved na poslani emailu s kopii smlouvy o Expres pujcce" + }, + "EmployerFormPLoanRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Employer info form", + "$ref": "#/definitions/EmployerPLoanForm" + } + }, + "description": "Information about employer and client to be validated against NAS" + }, + "EmployerFormPLoanResponse": { + "type": "object", + "properties": { + "form": { + "description": "Employer info form", + "$ref": "#/definitions/EmployerPLoanForm" + } + }, + "description": "Validates employment form data against NAS" + }, + "EmployerInfoRequest": { + "type": "object", + "required": [ + "companyNumber" + ], + "properties": { + "companyNumber": { + "type": "string", + "description": "Company registration number (ICO)" + } + }, + "description": "Request for employer information." + }, + "EmployerInfoResponse": { + "type": "object", + "properties": { + "businessName": { + "type": "string", + "description": "Business name" + }, + "city": { + "type": "string", + "description": "City" + }, + "companyNumber": { + "type": "string", + "description": "Company number" + }, + "descriptiveNumber": { + "type": "string", + "description": "Descriptive number" + }, + "orientationNumber": { + "type": "string", + "description": "Orientation number" + }, + "street": { + "type": "string", + "description": "Street" + }, + "zipCode": { + "type": "string", + "description": "Zip code" + } + }, + "description": "Response with employer information." + }, + "EmployerInformation": { + "type": "object", + "properties": { + "registrationNumber": { + "type": "string" + }, + "salary": { + "type": "number", + "format": "double" + } + } + }, + "EmployerPLoanForm": { + "type": "object", + "required": [ + "dependPersonsCount", + "educationType", + "employmentId", + "employmentName", + "employmentSince", + "incomeAverageThreeMonths", + "incomeFamily" + ], + "properties": { + "dependPersonsCount": { + "description": "Count of dependent persons", + "$ref": "#/definitions/FormField«long»" + }, + "educationType": { + "description": "Type of education", + "$ref": "#/definitions/FormField«string»" + }, + "employerAddress": { + "description": "Employer Address", + "$ref": "#/definitions/AddressFormPLoan" + }, + "employmentId": { + "description": "Company registration number", + "$ref": "#/definitions/FormField«string»" + }, + "employmentName": { + "description": "Employer name", + "$ref": "#/definitions/FormField«string»" + }, + "employmentSince": { + "description": "Last employment start date", + "$ref": "#/definitions/FormField«date-time»" + }, + "incomeAverageThreeMonths": { + "description": "Average income from last 3 months", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "incomeFamily": { + "description": "All income in household", + "$ref": "#/definitions/FormField«bigdecimal»" + } + }, + "description": "Form with information about employer and client to be validated against NAS" + }, + "EmptyRequest": { + "type": "object", + "description": "Prazdny request" + }, + "EmptyResponse": { + "type": "object", + "description": "Prazdny response objekt" + }, + "EncryptedObjectRequest": { + "type": "object", + "properties": { + "encryption": { + "type": "string" + }, + "requestObject": { + "$ref": "#/definitions/NonPersonalizedEncryptedPayloadModel" + } + } + }, + "EncryptedObjectResponse": { + "type": "object", + "properties": { + "encryption": { + "type": "string" + }, + "responseObject": { + "$ref": "#/definitions/NonPersonalizedEncryptedPayloadModel" + }, + "status": { + "type": "string" + } + } + }, + "EndSessionRequest": { + "type": "object", + "required": [ + "tokenId" + ], + "properties": { + "tokenId": { + "type": "string", + "description": "Token pro aplikaci MPodpis" + } + }, + "description": "Pozadavek na ukonceni session s podepsanymi dokumenty" + }, + "Environment": { + "type": "object", + "properties": { + "activeProfiles": { + "type": "array", + "items": { + "type": "string" + } + }, + "defaultProfiles": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ErrorMessage": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "text": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "ERROR", + "WARNING" + ] + } + } + }, + "ExchangeRate": { + "type": "object", + "required": [ + "multiplyFactor", + "symbol" + ], + "properties": { + "description": { + "type": "string", + "description": "slovni popis meny" + }, + "effectiveDate": { + "type": "string", + "format": "date-time", + "description": "datum platnosti kurzu" + }, + "multiplyFactor": { + "type": "integer", + "format": "int32", + "description": "priznak pronasobeni kurzu, defaultne 1, pro meny HUF, JPY, RUB *100" + }, + "rateAccounting": { + "type": "number", + "format": "double", + "description": "kurz stred" + }, + "rateCashBuy": { + "type": "number", + "format": "double", + "description": "kurz valuty nakup" + }, + "rateCashSell": { + "type": "number", + "format": "double", + "description": "kurz valuty prodej" + }, + "rateCashlessBuy": { + "type": "number", + "format": "double", + "description": "kurz devizy nakup" + }, + "rateCashlessSell": { + "type": "number", + "format": "double", + "description": "kurz devizy prodej" + }, + "rateVipBuy": { + "type": "number", + "format": "double", + "description": "VIP kurz nakup" + }, + "rateVipSell": { + "type": "number", + "format": "double", + "description": "VIP kurz prodej" + }, + "symbol": { + "type": "string", + "description": "Symbol meny" + } + }, + "description": "Trida pro ucet obsahuje kurzovni listek" + }, + "ExchangeRateListResponse": { + "type": "object", + "required": [ + "exchangeRates" + ], + "properties": { + "exchangeRates": { + "type": "array", + "description": "Seznam kurzu pro jednotlive meny", + "items": { + "$ref": "#/definitions/ExchangeRate" + } + } + } + }, + "ExpressBusinessProduct": { + "type": "object", + "properties": { + "activeCampaigns": { + "type": "array", + "items": { + "$ref": "#/definitions/SmeCampaign" + } + }, + "amountStepConfig": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AmountStepConfig" + } + }, + "productConfig": { + "$ref": "#/definitions/ProductConfig" + }, + "repayDay": { + "type": "integer", + "format": "int32" + }, + "repayDayConfig": { + "$ref": "#/definitions/Config" + }, + "repayPeriodConfig": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/SliderConfig" + } + }, + "smeInsuranceOffer": { + "$ref": "#/definitions/SmeInsuranceOffer" + } + } + }, + "ExpressLoanBillingCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro ulozeni informaci o splaceni.", + "$ref": "#/definitions/Formular pro ulozeni informaci o zpusobu splaceni." + } + }, + "description": "Request objekt - ulozeni informaci o splaceni." + }, + "ExpressLoanBillingCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro ulozeni informaci o splaceni. Pokud formular pri ulozeni neprosel validaci,obsahuje toto pole puvodni formular doplneny o validacni hlasky, jinak null.", + "$ref": "#/definitions/Formular pro ulozeni informaci o zpusobu splaceni." + } + } + }, + "ExpressLoanBillingSetupRequest": { + "type": "object", + "description": "Request objekt - nacteni informaci o splaceni." + }, + "ExpressLoanBillingSetupResponse": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "ID uctu ze ktereho se bude splacet." + }, + "accounts": { + "type": "array", + "description": "Seznam uctu, ze kterych je mozne splacet.", + "items": { + "$ref": "#/definitions/Account" + } + }, + "installmentAmount": { + "type": "number", + "description": "Mesicni splatka." + }, + "maxRegularInstallmentDay": { + "type": "integer", + "format": "int32", + "description": "Maximalni den pravidelne inkasni splatky ktery lze zvolit." + }, + "minRegularInstallmentDay": { + "type": "integer", + "format": "int32", + "description": "Minimalni den pravidelne inkasni splatky ktery lze zvolit." + }, + "regularInstallmentDay": { + "type": "integer", + "format": "int32", + "description": "Den v mesici, kdy se ma splatka provest. Napr 1 = prvni den v mesici." + } + } + }, + "ExpressLoanCalculatorCommitRequest": { + "type": "object", + "properties": { + "form": { + "$ref": "#/definitions/ExpressLoanCalculatorForm" + } + } + }, + "ExpressLoanCalculatorCommitResponse": { + "type": "object", + "properties": { + "form": { + "$ref": "#/definitions/ExpressLoanCalculatorForm" + } + } + }, + "ExpressLoanCalculatorForm": { + "type": "object", + "properties": { + "loanAmount": { + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "term": { + "$ref": "#/definitions/FormField«int»" + } + } + }, + "ExpressLoanCalculatorRecalculateRequest": { + "type": "object", + "properties": { + "form": { + "$ref": "#/definitions/ExpressLoanCalculatorForm" + } + } + }, + "ExpressLoanCalculatorRecalculateResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud byly na formulari zjisteny validacni chyby, vrati se ", + "$ref": "#/definitions/ExpressLoanCalculatorForm" + }, + "installmentAmount": { + "type": "number" + }, + "interestRate": { + "type": "number" + }, + "rpsn": { + "type": "number" + }, + "totalDueAmount": { + "type": "number" + } + } + }, + "ExpressLoanCalculatorSetupRequest": { + "type": "object" + }, + "ExpressLoanCalculatorSetupResponse": { + "type": "object", + "properties": { + "calculatorSettings": { + "description": "Nastaveni kalkulacky", + "$ref": "#/definitions/CalculatorSettings" + }, + "installmentAmount": { + "type": "number", + "description": "Mesicni splatka pro inicialni vysi uveru" + }, + "interestRate": { + "type": "number", + "description": "Urokova sazba pro inicialni vysi uveru" + }, + "loanAmount": { + "type": "number", + "description": "Zadatelem zvolena vyse uveru" + }, + "rpsn": { + "type": "number", + "description": "RPSN pro inicialni vysi uveru" + }, + "termMonths": { + "type": "integer", + "format": "int32", + "description": "Zadatelem zvolena doba splaceni v mesicich" + }, + "totalDueAmount": { + "type": "number", + "description": "Celkova splatna castka (celkem zaplatite)" + } + } + }, + "ExpressLoanConfirmationRequest": { + "type": "object", + "required": [ + "appKey", + "cifId", + "insuranceRequested", + "loanAmount", + "productCandidateKey", + "term" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "Cislo zadosti o expres pujcku" + }, + "cifId": { + "type": "string", + "description": "CIF klienta zadajiciho o expres pujcku" + }, + "insuranceRequested": { + "type": "boolean", + "example": false, + "description": "Flag zda bylo pozadovano pojisteni" + }, + "loanAmount": { + "type": "number", + "format": "double", + "description": "Vyse pujcky" + }, + "productCandidateKey": { + "type": "integer", + "format": "int64", + "description": "Cislo virtualniho produktoveho kandidata" + }, + "term": { + "type": "integer", + "format": "int64", + "description": "Pocet mesicu splatek." + } + }, + "description": "Potvrzeni finalni konfigurace expres pujcky" + }, + "ExpressLoanFinishContractCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro potvrzeni smlouvy", + "$ref": "#/definitions/ExpressLoanFinishContractForm" + } + }, + "description": "Request pro uložení souhlasu se smlouvou." + }, + "ExpressLoanFinishContractCommitResponse": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro potvrzeni smlouvy", + "$ref": "#/definitions/ExpressLoanFinishContractForm" + } + }, + "description": "Response pro potvrzeni smlouvy" + }, + "ExpressLoanFinishContractForm": { + "type": "object", + "properties": { + "agreementFlag": { + "description": "Soulas s podminkami.", + "$ref": "#/definitions/FormField«boolean»" + } + }, + "description": "Formular pro smlouvu." + }, + "ExpressLoanFinishContractSetupRequest": { + "type": "object", + "properties": { + "firstCallAt": { + "type": "string", + "format": "date-time", + "description": "Datum a cas prvniho volani sluzby." + } + }, + "description": "Request pro smlouvu." + }, + "ExpressLoanFinishContractSetupResponse": { + "type": "object", + "required": [ + "binaryData", + "progressSettings", + "state" + ], + "properties": { + "binaryData": { + "type": "string", + "description": "Binární data dokumentu převedená do base64. Nepovinny atribut." + }, + "progressSettings": { + "description": "Progress settings.", + "$ref": "#/definitions/ProgressSettings" + }, + "state": { + "type": "string", + "description": "Výsledek procesu generování smlouvy.", + "enum": [ + "OK", + "OKBUT", + "OKLESS", + "MANUAL", + "NOK", + "IN_PROGRESS", + "ERROR", + "LONG_TERM_PROCESS" + ] + } + }, + "description": "Response pro predsmluvni informace." + }, + "ExpressLoanFinishPrecontractCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular způsobu splácení úvěru", + "$ref": "#/definitions/SbFinishPrecontractForm" + } + }, + "description": "Request pro uložení souhlasu s predsmluvnimi informacemi." + }, + "ExpressLoanFinishPrecontractCommitResponse": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular způsobu splácení kreditní karty", + "$ref": "#/definitions/SbFinishPrecontractForm" + } + }, + "description": "Response pro potvrzeni predsmluvni informace" + }, + "ExpressLoanFinishPrecontractSetupRequest": { + "type": "object", + "properties": { + "firstCallAt": { + "type": "string", + "format": "date-time", + "description": "Datum a cas prvniho volani sluzby." + } + }, + "description": "Request pro predsmluvni informace." + }, + "ExpressLoanFinishPrecontractSetupResponse": { + "type": "object", + "required": [ + "progressSettings", + "state" + ], + "properties": { + "binaryData": { + "type": "string", + "description": "Binární data dokumentu převedená do base64. Nepovinny atribut." + }, + "progressSettings": { + "description": "Progress settings.", + "$ref": "#/definitions/ProgressSettings" + }, + "state": { + "type": "string", + "description": "Výsledek procesu generování smlouvy.", + "enum": [ + "OK", + "OKBUT", + "OKLESS", + "MANUAL", + "NOK", + "IN_PROGRESS", + "ERROR", + "LONG_TERM_PROCESS" + ] + } + }, + "description": "Response pro predsmluvni informace." + }, + "ExpressLoanFinishSignRequest": { + "type": "object", + "properties": { + "signatureBase64": { + "type": "string" + }, + "signatureType": { + "type": "string", + "enum": [ + "MOBILE_KEY", + "CERTIFICATE", + "SMARTBANK_PIN", + "SMARTBANK_FINGERPRINT", + "SMARTBANK_FACEID" + ] + } + }, + "description": "Pozadavek na podepsani klientem." + }, + "ExpressLoanFinishSignResponse": { + "type": "object", + "description": "Response podepsani smlouvy." + }, + "ExpressLoanGetApplicationStateRequest": { + "type": "object", + "description": "Pozadavek na zjisteni stavu zadosti o express pujcku." + }, + "ExpressLoanGetApplicationStateResponse": { + "type": "object", + "required": [ + "appExists" + ], + "properties": { + "appExists": { + "type": "boolean", + "example": false, + "description": "Priznak, zda zadost o kreditni kartu existuje." + }, + "appInProgress": { + "type": "boolean", + "example": false, + "description": "Priznak, zda je zadost o kreditni kartu rozpracovana." + }, + "canContinueApp": { + "type": "boolean", + "example": false, + "description": "Priznak, zda je mozne vratit se do existujici zadosti o kreditni kartu." + }, + "canCreateApp": { + "type": "boolean", + "example": false, + "description": "Priznak, zda je mozne vytvorit novou zadost o kreditni kartu." + }, + "originChannelId": { + "type": "integer", + "format": "int32", + "description": "ID kanalu, kde byla zadost vytvorena." + }, + "returnScreen": { + "type": "string", + "description": "Id screeny", + "enum": [ + "LOAN_DETAIL", + "CALCULATOR", + "PERMANENT_ADDRESS", + "CONTACT_ADDRESS", + "PERSONAL_INCOME_SOURCE", + "PERSONAL_INCOME_SOURCE_REDUCED", + "EMPLOYER", + "PERSONAL_INCOME", + "DEPENDENTS", + "HOUSEHOLD_INCOME", + "HOUSEHOLD_EXPENSES", + "SCORING_INFO", + "SCORING_AGREEMENT", + "SCORING", + "BILLING", + "INSURANCE", + "PRECONTRACT", + "CONTRACT", + "SIGN", + "VICTORY" + ] + } + }, + "description": "Odpoved se stavem zadosti o kreditni kartu." + }, + "ExpressLoanInsuranceCommitRequest": { + "type": "object", + "required": [ + "insuranceSelected" + ], + "properties": { + "insuranceSelected": { + "type": "boolean", + "example": false, + "description": "Flag rikajici, jestli klient chce pojisteni schopnosti splacet." + } + } + }, + "ExpressLoanInsuranceCommitResponse": { + "type": "object" + }, + "ExpressLoanInsuranceSetupRequest": { + "type": "object" + }, + "ExpressLoanInsuranceSetupResponse": { + "type": "object", + "properties": { + "insuranceAvailable": { + "type": "boolean", + "example": false, + "description": "Flag rikajici, jestli jestli je mozne pojisteni uveru sjednat." + }, + "insuranceFee": { + "type": "number", + "description": "Pojistne." + }, + "insuranceSelected": { + "type": "boolean", + "example": false, + "description": "Flag rikajici, jestli klient chce pojistit nebo ne." + }, + "loanAmount": { + "type": "number", + "description": "Vyse uveru." + } + } + }, + "ExpressLoanPersonalContactAddressCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Kontaktni adresa", + "$ref": "#/definitions/SbApplicationAddressForm" + } + } + }, + "ExpressLoanPersonalContactAddressCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Kontaktni adresa s vyplnenymi chybovymi hlaskami nebo null.", + "$ref": "#/definitions/SbApplicationAddressForm" + } + } + }, + "ExpressLoanPersonalContactAddressSetupRequest": { + "type": "object" + }, + "ExpressLoanPersonalContactAddressSetupResponse": { + "type": "object", + "properties": { + "contactAddress": { + "description": "Kontaktni adresa.", + "$ref": "#/definitions/Address" + } + } + }, + "ExpressLoanPersonalDependentsCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular", + "$ref": "#/definitions/SbApplicationPersonalDependentsForm" + } + } + }, + "ExpressLoanPersonalDependentsCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud pri ukladani doslo k validacni chybe, je toto pole vyplneno formularem ze vstupu, obohacenym o validacni chyby.", + "$ref": "#/definitions/SbApplicationPersonalDependentsForm" + } + } + }, + "ExpressLoanPersonalDependentsSetupRequest": { + "type": "object" + }, + "ExpressLoanPersonalDependentsSetupResponse": { + "type": "object", + "properties": { + "dependentPersonCount": { + "type": "integer", + "format": "int64", + "description": "Pocet zavislych osob - vcetne me sameho" + } + } + }, + "ExpressLoanPersonalEmployerCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro zamestnavatele", + "$ref": "#/definitions/SbApplicationPersonalEmployerForm" + } + }, + "description": "Zamestnavatel ke kreditni karte." + }, + "ExpressLoanPersonalEmployerCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro zamestnavatele. Pokud probehlo ulozeni ok, toto pole neni vyplneno.", + "$ref": "#/definitions/SbApplicationPersonalEmployerForm" + } + } + }, + "ExpressLoanPersonalEmployerSetupRequest": { + "type": "object" + }, + "ExpressLoanPersonalEmployerSetupResponse": { + "type": "object", + "properties": { + "employerAddress": { + "description": "Adresa zamestnavatele", + "$ref": "#/definitions/Address" + }, + "employerId": { + "type": "string", + "description": "ICO zamestnavatele" + }, + "employerName": { + "type": "string", + "description": "Nazev zamestnavatele" + } + } + }, + "ExpressLoanPersonalHouseholdExpensesCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular pro zadani vydaju domacnosti", + "$ref": "#/definitions/SbApplicationHouseholdExpensesForm" + } + }, + "description": "pozadavek na ulozeni zdroje prijmu" + }, + "ExpressLoanPersonalHouseholdExpensesCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "formular pro zadani vydaju domacnosti doplneny o validacni chyby. Pokud je vse ok je toto pole nevyplnene.", + "$ref": "#/definitions/SbApplicationHouseholdExpensesForm" + } + } + }, + "ExpressLoanPersonalHouseholdExpensesSetupRequest": { + "type": "object", + "description": "Request objekt - dalsi vydaje domacnosti." + }, + "ExpressLoanPersonalHouseholdExpensesSetupResponse": { + "type": "object", + "properties": { + "installmentsSum": { + "type": "number", + "description": "Celkove mesicni splatky (leasing, jine uvery, atd.)" + }, + "regularExpenses": { + "type": "number", + "description": "dalsi pravidelne vydaje (leky, zdravotni pomucky, atd.)" + }, + "salaryReduction": { + "type": "number", + "description": "srazky ze mzdy" + } + }, + "description": "Response objekt pro nacteni financni situace domacnosti." + }, + "ExpressLoanPersonalHouseholdSolvencyCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro zadani cisteho mesicniho prijmu domacnosti", + "$ref": "#/definitions/SbApplicationPersonalHouseholdSolvencyForm" + } + }, + "description": "Request objekt pro potvrzeni financni situace domacnosti." + }, + "ExpressLoanPersonalHouseholdSolvencyCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud pri ukladani doslo k validacni chybe, je toto pole vyplneno formularem ze vstupu, obohacenym o validacni chyby.", + "$ref": "#/definitions/SbApplicationPersonalHouseholdSolvencyForm" + } + }, + "description": "Response objekt pro potvrzeni financni situace domacnosti." + }, + "ExpressLoanPersonalHouseholdSolvencySetupRequest": { + "type": "object", + "description": "Request objekt pro nacteni financni situace domacnosti." + }, + "ExpressLoanPersonalHouseholdSolvencySetupResponse": { + "type": "object", + "properties": { + "netMonthlyHouseIncome": { + "type": "number", + "description": "Cisty mesicni prijem domacnosti" + } + }, + "description": "Response objekt pro nacteni financni situace domacnosti." + }, + "ExpressLoanPersonalIncomeSourceCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular pro zadani zroje prijmu", + "$ref": "#/definitions/SbApplicationIncomeSourceForm" + } + }, + "description": "pozadavek na ulozeni zdroje prijmu" + }, + "ExpressLoanPersonalIncomeSourceCommitResponse": { + "type": "object", + "properties": { + "continueApplication": { + "type": "string", + "description": "priznak zda a jak lze pokracovat v zadosti o kreditni kartu", + "enum": [ + "IMPOSSIBLE", + "BRANCH", + "OK" + ] + }, + "form": { + "description": "formular pro zadani zroje prijmu doplneny o validacni chyby. Pokud je vse ok je toto pole nevyplnene.", + "$ref": "#/definitions/SbApplicationIncomeSourceForm" + } + } + }, + "ExpressLoanPersonalIncomeSourceSetupRequest": { + "type": "object" + }, + "ExpressLoanPersonalIncomeSourceSetupResponse": { + "type": "object", + "properties": { + "employmentForPeriod": { + "type": "boolean", + "example": false, + "description": "priznak zda je zamestnani na dobu urcitou, ma smysl jen pokud employmentType = employee" + }, + "employmentTo": { + "type": "string", + "format": "date-time", + "description": "datum konce zamestnani - dava smysl jen pokud employmentType = employee a employmentForPeriod = true" + }, + "employmentType": { + "type": "string", + "description": "typ zamestnani (employee/entrepreneur/pensioner/other)", + "enum": [ + "EMPLOYEE", + "ENTREPRENEUR", + "PENSIONER", + "OTHER" + ] + }, + "inTrialPeriod": { + "type": "boolean", + "example": false, + "description": "priznak zda je ve zkusebni lhute, ma smysl jen pokud employmentType = employee" + }, + "onNotice": { + "type": "boolean", + "example": false, + "description": "priznak zda je ve vypovedni lhute, ma smysl jen pokud employmentType = employee" + } + }, + "description": "Data o zdroji prijmu nactena z zadosti o kreditni kartu." + }, + "ExpressLoanPersonalPermanentAddressCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Trvala adresa na kreditni karte", + "$ref": "#/definitions/SbApplicationAddressForm" + } + } + }, + "ExpressLoanPersonalPermanentAddressCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Trvala adresa.", + "$ref": "#/definitions/SbApplicationAddressForm" + } + } + }, + "ExpressLoanPersonalPermanentAddressSetupRequest": { + "type": "object" + }, + "ExpressLoanPersonalPermanentAddressSetupResponse": { + "type": "object", + "properties": { + "permanentAddress": { + "description": "Trvala adresa.", + "$ref": "#/definitions/Address" + } + } + }, + "ExpressLoanPersonalScoringInfoCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular.", + "$ref": "#/definitions/ExpressLoanPersonalScoringInfoForm" + } + } + }, + "ExpressLoanPersonalScoringInfoCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud pri ukladani doslo k validacni chybe, je toto pole vyplneno formularem ze vstupu, obohacenym o validacni chyby.", + "$ref": "#/definitions/ExpressLoanPersonalScoringInfoForm" + } + } + }, + "ExpressLoanPersonalScoringInfoForm": { + "type": "object", + "properties": { + "education": { + "description": "Vzdelani", + "$ref": "#/definitions/FormField«string»" + }, + "maritalStatus": { + "description": "Rodinny stav", + "$ref": "#/definitions/FormField«string»" + }, + "secondDocumentType": { + "description": "Typ druheho id dokumentu", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro ulozeni dodatecnych informaci k zadosti o full express." + }, + "ExpressLoanPersonalScoringInfoSetupRequest": { + "type": "object" + }, + "ExpressLoanPersonalScoringInfoSetupResponse": { + "type": "object", + "properties": { + "education": { + "type": "string", + "description": "Vzdelani (HCisAllVzdelani).", + "enum": [ + "BASIC", + "SECONDARY", + "HIGH", + "HIGHER", + "OTHER" + ] + }, + "maritalStatus": { + "type": "string", + "description": "Rodinny stav (HCisAllODSStav).", + "enum": [ + "SINGLE", + "MARRIED", + "PARTNER", + "WIDOWED", + "DIVORCED", + "OTHER" + ] + }, + "secondDocumentType": { + "type": "string", + "description": "Typ druheho dokladu. Vyctovy typ pro hodnoty Ridicsky prukaz, Pas a Rodny list (drivinglicence/passport/birthcertificate).", + "enum": [ + "DRIVING_LICENCE", + "PASSPORT", + "BIRTH_CERTIFICATE" + ] + } + } + }, + "ExpressLoanPersonalSolvencyCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular pro zadani prijmu", + "$ref": "#/definitions/SbApplicationPersonalSolvencyForm" + } + }, + "description": "Request objekt pro potvrzeni financni situace." + }, + "ExpressLoanPersonalSolvencyCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud pri ukladani doslo k validacni chybe, je toto pole vyplneno formularem ze vstupu, obohacenym o validacni chyby.", + "$ref": "#/definitions/SbApplicationPersonalSolvencyForm" + } + }, + "description": "Response objekt pro potvrzeni financni situace." + }, + "ExpressLoanPersonalSolvencySetupRequest": { + "type": "object", + "description": "Request objekt financni situace pro kreditni kartu." + }, + "ExpressLoanPersonalSolvencySetupResponse": { + "type": "object", + "properties": { + "netMonthlyIncome": { + "type": "number", + "description": "Cisty mesicni prijem" + } + }, + "description": "Response objekt financni situace pro kreditni kartu." + }, + "ExpressLoanRequestCancelRequest": { + "type": "object" + }, + "ExpressLoanRequestCancelResponse": { + "type": "object" + }, + "ExpressLoanRequestCreateRequest": { + "type": "object", + "properties": { + "loanAmount": { + "type": "number" + } + } + }, + "ExpressLoanRequestCreateResponse": { + "type": "object" + }, + "ExpressLoanRequestDetailRequest": { + "type": "object", + "description": "Pozadavek na podepsani klientem." + }, + "ExpressLoanRequestDetailResponse": { + "type": "object", + "properties": { + "installmentAmount": { + "type": "number", + "description": "Vyse pujcky." + }, + "interestRate": { + "type": "number", + "description": "Vyse pujcky." + }, + "loanAmount": { + "type": "number", + "description": "Vyse pujcky." + }, + "rpsn": { + "type": "number", + "description": "Vyse pujcky." + }, + "term": { + "type": "integer", + "format": "int64", + "description": "Vyse pujcky." + }, + "totalDueAmount": { + "type": "number", + "description": "Vyse pujcky." + } + } + }, + "ExpressLoanRequestScoringAgreementCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "formular se souhlasem", + "$ref": "#/definitions/SbApplicationRequestScoringAgreementForm" + } + } + }, + "ExpressLoanRequestScoringAgreementCommitResponse": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular, ktery obsahuje error hlasky.", + "$ref": "#/definitions/SbApplicationRequestScoringAgreementForm" + } + } + }, + "ExpressLoanRequestScoringCheckResultRequest": { + "type": "object", + "properties": { + "firstCallAt": { + "type": "string", + "format": "date-time", + "description": "Datum a cas prvniho volani sluzby. Atribut je pouzivan k vyhodnocovani frekvence dalsich dotazu (za jak dlouho se FE bude znovu ptat - OUT \"progressSettings .delay\")" + } + } + }, + "ExpressLoanRequestScoringCheckResultResponse": { + "type": "object", + "properties": { + "branchDocumentTypes": { + "type": "array", + "description": "Typy dokladu.", + "items": { + "type": "string" + } + }, + "branchWifeHusbandAttendance": { + "type": "boolean", + "example": false, + "description": "Flag zda je zadatel zenaty/vdana a zároveň ma urcity minimalni limit uveru." + }, + "installmentAmount": { + "type": "number", + "description": "Mesicni splatka" + }, + "interestRate": { + "type": "number", + "description": "Urokova sazba." + }, + "loanAmount": { + "type": "number", + "description": "Velikost pujcky v CZK." + }, + "progressSettings": { + "description": "Celkova splatna castka.", + "$ref": "#/definitions/ProgressSettings" + }, + "rpsn": { + "type": "number", + "description": "Rocni procentualni sazba nakladu - RPSN." + }, + "state": { + "type": "string", + "description": "Bude vyplneno pouze pokud jiz dobehl scoring (finalState = true)) - vysledek scoringu. Enum s hodnotami: (OK, OKBUT, OKLESS, MANUAL, NOK). OK = zadost podminene schvalena, OKBUT = zadost podminene schvalena, ale je nutne dokoncit na pobocce (muze zaroven dojit i ke snizeni limitu uveru), OKLESS = zadost podminene schvalena, ale pouze se snizenym limitem uveru, MANUAL = zadost je nutne proverit rucne (zadatel bude informovan pres SMS), NOK = zadost zamitnuta", + "enum": [ + "OK", + "OKBUT", + "OKLESS", + "MANUAL", + "NOK", + "IN_PROGRESS", + "ERROR", + "LONG_TERM_PROCESS" + ] + }, + "stateReason": { + "type": "string", + "description": "Musi byt vyplneno pro NOK) - duvod pro vysledek scoringu. Jedna se o textovy popis lokalizovany podle vstupu language." + }, + "term": { + "type": "integer", + "format": "int64", + "description": "Doba splaceni v mesicich." + }, + "totalDueAmount": { + "type": "number", + "description": "Celkova splatna castka." + } + } + }, + "ExpressLoanRequestScoringCreateRequest": { + "type": "object" + }, + "ExpressLoanRequestScoringCreateResponse": { + "type": "object", + "required": [ + "prevalidationOk" + ], + "properties": { + "prevalidationOk": { + "type": "boolean", + "example": false, + "description": "Priznak zda prosly formalni kontroly." + } + } + }, + "ExpressLoanScoringInstallmentConfirmationCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular", + "$ref": "#/definitions/SbApplicationScoringInstallmentConfirmationForm" + } + }, + "description": "Pozadavek na ulozeni potvrzeni schopnosti splacet." + }, + "ExpressLoanScoringInstallmentConfirmationCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud pri ukladani doslo k validacni chybe, je toto pole vyplneno formularem ze vstupu, obohacenym o validacni chyby.", + "$ref": "#/definitions/SbApplicationScoringInstallmentConfirmationForm" + } + }, + "description": "Odpoved na ulozeni potvrzeni schopnosti splacet." + }, + "ExpressLoanScreenflowSetupRequest": { + "type": "object", + "description": "Pozadavek na zjisteni vyctu obrazovek screenflow pro sjednani express pujcky." + }, + "ExpressLoanScreenflowSetupResponse": { + "type": "object", + "properties": { + "processType": { + "type": "string", + "enum": [ + "FULL_EXPRESS", + "PREAPPROVED", + "PREAPPROVED_UNKNOWN_EMPLOYER" + ] + }, + "screenSequences": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpressScreen" + } + } + } + }, + "description": "Vycet obrazovek screenflow pro sjednani express pujcky." + }, + "ExpressScreen": { + "type": "object", + "properties": { + "id": { + "type": "string", + "enum": [ + "LOAN_DETAIL", + "CALCULATOR", + "PERMANENT_ADDRESS", + "CONTACT_ADDRESS", + "PERSONAL_INCOME_SOURCE", + "PERSONAL_INCOME_SOURCE_REDUCED", + "EMPLOYER", + "PERSONAL_INCOME", + "DEPENDENTS", + "HOUSEHOLD_INCOME", + "HOUSEHOLD_EXPENSES", + "SCORING_INFO", + "SCORING_AGREEMENT", + "SCORING", + "BILLING", + "INSURANCE", + "PRECONTRACT", + "CONTRACT", + "SIGN", + "VICTORY" + ] + } + } + }, + "ExpressVariantRequest": { + "type": "object", + "description": "express variant request" + }, + "FXMoneyAccessRequest": { + "type": "object", + "description": "Zkouska, zda je mozno zobrazit FXMoney." + }, + "FXMoneyAccessResponse": { + "type": "object", + "properties": { + "document": { + "type": "string", + "description": "dokument produktovych podminek v Base64." + }, + "documentUrl": { + "type": "string", + "description": "URL produktovych podminek." + } + } + }, + "FXMoneyCommitForm": { + "type": "object", + "required": [ + "amount", + "creditAccountId", + "creditCurrency", + "debitAccountId", + "debitCurrency", + "quoteRate", + "transactionCurrency" + ], + "properties": { + "amount": { + "description": "Castka.", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "creditAccountId": { + "description": "Mena kreditniho uctu.", + "$ref": "#/definitions/FormField«string»" + }, + "creditCurrency": { + "description": "Kreditni ucet.", + "$ref": "#/definitions/FormField«string»" + }, + "debitAccountId": { + "description": "Debetni ucet.", + "$ref": "#/definitions/FormField«string»" + }, + "debitCurrency": { + "description": "Mena debetniho uctu.", + "$ref": "#/definitions/FormField«string»" + }, + "quoteRate": { + "description": "Kurz.", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "transactionCurrency": { + "type": "string", + "description": "Mena transakce." + } + } + }, + "FXMoneyCommitRequest": { + "type": "object", + "required": [ + "form", + "quoteReqId" + ], + "properties": { + "form": { + "description": "Formular prevodu FXMoney.", + "$ref": "#/definitions/FXMoneyCommitForm" + }, + "quoteReqId": { + "type": "string", + "description": "ID registrace k prijmu kurzu. Hodnota vyplnena z vystupu /fxmoney/setup." + } + } + }, + "FXMoneyCommitResponse": { + "type": "object", + "required": [ + "form", + "transactionDate" + ], + "properties": { + "form": { + "description": "Formular pro prevedeni cizich men mezi vlastnimi ucty.", + "$ref": "#/definitions/FXMoneyCommitForm" + }, + "transactionDate": { + "type": "string", + "format": "date-time", + "description": "Datum vyporadani obchodu." + } + } + }, + "FXMoneyProductConditionsCommitRequest": { + "type": "object", + "required": [ + "documentUrl" + ], + "properties": { + "documentUrl": { + "type": "string", + "description": "URL dokumentu." + } + } + }, + "FXMoneyProductConditionsCommitResponse": { + "type": "object" + }, + "FXMoneySetupForm": { + "type": "object", + "required": [ + "amount", + "creditAccountId", + "creditCurrency", + "debitAccountId", + "debitCurrency", + "transactionCurrency" + ], + "properties": { + "amount": { + "description": "Castka.", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "creditAccountId": { + "description": "Mena kreditniho uctu.", + "$ref": "#/definitions/FormField«string»" + }, + "creditCurrency": { + "description": "Kreditni ucet.", + "$ref": "#/definitions/FormField«string»" + }, + "debitAccountId": { + "description": "Debetni ucet.", + "$ref": "#/definitions/FormField«string»" + }, + "debitCurrency": { + "description": "Mena debetniho uctu.", + "$ref": "#/definitions/FormField«string»" + }, + "transactionCurrency": { + "type": "string", + "description": "Mena transakce." + } + } + }, + "FXMoneySetupRequest": { + "type": "object", + "required": [ + "fxMoneySetupForm" + ], + "properties": { + "fxMoneySetupForm": { + "description": "Formular FXMoney pro ziskani kurzu.", + "$ref": "#/definitions/FXMoneySetupForm" + }, + "quoteReqId": { + "type": "string", + "description": "ID registrace k prijmu kurzu. Pro novy obchod (uzivatel zadal info do formulare, poprve se vola fxmoney/setup) je toto pole prazdne. V dalsich volanich se vyplni hodnotou, ktera z vystupu /fxmoney/setup" + } + } + }, + "FXMoneySetupResponse": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Castka prevodu." + }, + "commonExchangeRate": { + "type": "number", + "description": "Bezny Kurz." + }, + "currencyPair": { + "type": "string", + "description": "Menovy par transakce." + }, + "exchangeRate": { + "type": "number", + "description": "Kurz." + }, + "fxMoneySetupForm": { + "description": "Formular FXMoney pro ziskani kurzu.", + "$ref": "#/definitions/FXMoneySetupForm" + }, + "quoteReqId": { + "type": "string", + "description": "ID registrace k prijmu kurzu. Tuto hodnotu je treba vyplnovat na vstup dalsich volani /fxmoney/setup a /fxmoney/commit" + }, + "savedAmount": { + "type": "number", + "description": "Usetrena penize pomoci prevodu FX money." + }, + "timeout": { + "type": "integer", + "format": "int32", + "description": "Timeout kurzu." + } + } + }, + "FilterableBooleanField": { + "type": "object", + "properties": { + "booleanValue": { + "type": "boolean" + }, + "dateTimeValue": { + "type": "string", + "format": "date-time" + }, + "fieldName": { + "type": "string" + }, + "filterType": { + "type": "string", + "enum": [ + "STRING", + "NUMBER", + "INTEGER", + "DATE", + "BOOLEAN" + ] + }, + "longValue": { + "type": "integer", + "format": "int64" + }, + "numberValue": { + "type": "number" + }, + "stringValue": { + "type": "string" + }, + "value": { + "type": "boolean" + } + } + }, + "FilterableDateTimeField": { + "type": "object", + "properties": { + "booleanValue": { + "type": "boolean" + }, + "dateTimeValue": { + "type": "string", + "format": "date-time" + }, + "fieldName": { + "type": "string" + }, + "filterType": { + "type": "string", + "enum": [ + "STRING", + "NUMBER", + "INTEGER", + "DATE", + "BOOLEAN" + ] + }, + "longValue": { + "type": "integer", + "format": "int64" + }, + "numberValue": { + "type": "number" + }, + "stringValue": { + "type": "string" + }, + "value": { + "type": "string", + "format": "date-time" + } + } + }, + "FilterableField": { + "type": "object", + "properties": { + "stringValue": { + "type": "string" + }, + "numberValue": { + "type": "number" + }, + "longValue": { + "type": "integer", + "format": "int64" + }, + "dateTimeValue": { + "type": "string", + "format": "date-time" + }, + "booleanValue": { + "type": "boolean" + }, + "filterType": { + "type": "string", + "enum": [ + "STRING", + "NUMBER", + "INTEGER", + "DATE", + "BOOLEAN" + ] + }, + "fieldName": { + "type": "string" + } + } + }, + "FinalResultRequest": { + "type": "object", + "required": [ + "appKey", + "sessionId" + ], + "properties": { + "appKey": { + "type": "string", + "description": "Identifikator zadosti of cif" + }, + "sessionId": { + "type": "string", + "description": "Identifikator komunikace s Kontomatikem" + } + }, + "description": "Pozadavek na ziskani konecneho vysledku vytezovani dat z internetoveho bankonvictvi klienta" + }, + "FinalResultResponse": { + "type": "object", + "properties": { + "employers": { + "type": "array", + "description": "Zamestnavatele", + "items": { + "$ref": "#/definitions/EmployerInformation" + } + } + }, + "description": "Konecny vysledek vytezovani dat z internetoveho bankonvictvi klienta" + }, + "FioRegistrationRequest": { + "type": "object", + "required": [ + "accountToken", + "transactionId" + ], + "properties": { + "accountToken": { + "type": "string", + "description": "Account authorization token" + }, + "transactionId": { + "type": "string", + "description": "Transaction id of the related UDEBS transaction (passed as URL query param)." + } + }, + "description": "Fio account registration request" + }, + "FlexiBusinessProduct": { + "type": "object", + "properties": { + "amountStepConfig": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AmountStepConfig" + } + }, + "consumedFlexiProduct": { + "$ref": "#/definitions/ConsumedFlexiProduct" + }, + "productConfig": { + "$ref": "#/definitions/ProductConfig" + } + } + }, + "FlexiVariantRequest": { + "type": "object", + "description": "flexi variant request" + }, + "ForeignOrderCommitRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "transactionId": { + "type": "string", + "description": "Identifikator potvrzovane transakce." + } + } + }, + "ForeignOrderCommitResponse": { + "type": "object" + }, + "ForeignOrderCreateRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Vstupni formular pro zadani zahranicniho prikazu.", + "$ref": "#/definitions/ForeignOrderForm" + } + } + }, + "ForeignOrderCreateResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/ForeignOrderForm" + }, + "transactionId": { + "type": "string", + "description": "Vygenerovane transactionId kterym se overuje pri commitu, ze se jedna stale stejnou platbu. Vraci se pouze pokud byla validace formulare v poradku." + } + } + }, + "ForeignOrderForm": { + "type": "object", + "required": [ + "currencyCode", + "individualRateSelected", + "sourceAccountId" + ], + "properties": { + "amount": { + "description": "castka v EUR", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "chargeBearer": { + "description": "vylohy (SHA, BEN, OUR)", + "$ref": "#/definitions/FormField«string»" + }, + "confirmationEmail": { + "description": "zaslani konfirmace - email", + "$ref": "#/definitions/FormField«string»" + }, + "currencyCode": { + "description": "kod meny platby", + "$ref": "#/definitions/FormField«string»" + }, + "dueDate": { + "description": "datum splatnosti", + "$ref": "#/definitions/FormField«date-time»" + }, + "individualRateSelected": { + "description": "Indikator toho, zda uzivatel zvolil moznost sjednani individualniho kurzu.", + "$ref": "#/definitions/FormField«boolean»" + }, + "payerReference": { + "description": "reference platce", + "$ref": "#/definitions/FormField«string»" + }, + "recipientAccountNumber": { + "description": "cislo uctu prijemce, bud IBAN nebo jiny identifikator uctu", + "$ref": "#/definitions/FormField«string»" + }, + "recipientAddressCity": { + "description": "adresa prijemce - mesto", + "$ref": "#/definitions/FormField«string»" + }, + "recipientAddressCountry": { + "description": "adresa prijemce - zeme", + "$ref": "#/definitions/FormField«string»" + }, + "recipientAddressStreet": { + "description": "adresa prijemce - ulice a cislo popisne", + "$ref": "#/definitions/FormField«string»" + }, + "recipientBankAddressCity": { + "description": "adresa banky prijemce - mesto", + "$ref": "#/definitions/FormField«string»" + }, + "recipientBankAddressStreet": { + "description": "adresa banky prijemce - ulice a cislo popisne", + "$ref": "#/definitions/FormField«string»" + }, + "recipientBankBic": { + "description": "bic banky prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "recipientBankCountry": { + "description": "adresa banky prijemce - zeme", + "$ref": "#/definitions/FormField«string»" + }, + "recipientBankName": { + "description": "nazev banky prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "recipientName": { + "description": "jmeno prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "recipientNote": { + "description": "zprava pro prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "sourceAccountId": { + "description": "interni id zdrojoveho uctu", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro odeslani Zahranicniho prikazu." + }, + "ForeignOrderSetupResponse": { + "type": "object", + "properties": { + "allowedChargeBearerTypes": { + "type": "array", + "description": "Seznam povolenych men (CZK, EUR, USD, ...).", + "items": { + "type": "string", + "enum": [ + "SHA", + "OUR", + "BEN" + ] + } + }, + "allowedCountries": { + "type": "array", + "description": "Seznam povolenych zemi pro banku ci bydliste prijemce.", + "items": { + "$ref": "#/definitions/CountryInfo" + } + }, + "allowedCurrencyCodes": { + "type": "array", + "description": "Seznam povolenych men (CZK, EUR, USD, ...).", + "items": { + "type": "string" + } + }, + "legalLine": { + "type": "string", + "description": "Pravni veta, ktera se ma zobrazit pri vytvareni prikazu." + } + } + }, + "ForeignPaymentTemplate": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "ID zdrojoveho uctu." + }, + "amount": { + "type": "number", + "description": "Castka." + }, + "amountCurrency": { + "type": "string", + "description": "Mena castky." + }, + "foreignOrderCreateRequest": { + "description": "Pozadavek na obecnou zahranicni platbu vytvoreny z ulozene sablony.", + "$ref": "#/definitions/ForeignOrderCreateRequest" + }, + "foreignPaymentType": { + "type": "string", + "description": "Typ zahranicni platby.", + "enum": [ + "FPOF", + "FPOE", + "FPOT", + "FPOK" + ] + }, + "intraBankPaymentCreateRequest": { + "description": "Pozadavek na zahranicni platbu v ramci Monety vytvoreny z ulozene sablony.", + "$ref": "#/definitions/IntraBankPaymentCreateRequest" + }, + "recipientAccountNumber": { + "type": "string", + "description": "Cislo uctu prijemce, bud IBAN nebo jiny identifikator uctu." + }, + "sepaPaymentCreateRequest": { + "description": "Pozadavek na SEPA platbu vytvoreny z ulozene sablony.", + "$ref": "#/definitions/SepaPaymentCreateRequest" + }, + "templateId": { + "type": "integer", + "format": "int64", + "description": "ID sablony." + }, + "templateName": { + "type": "string", + "description": "Uzivatelsky nazev sablony." + } + } + }, + "ForeignPaymentTemplateForm": { + "type": "object", + "properties": { + "templateName": { + "$ref": "#/definitions/FormField«string»" + } + } + }, + "ForeignPaymentTemplateListResponse": { + "type": "object", + "required": [ + "templates" + ], + "properties": { + "templates": { + "type": "array", + "description": "Seznam sablon, pokud zadna sablona neni pro klienta dostupna vraci se prazdny seznam.", + "items": { + "$ref": "#/definitions/ForeignPaymentTemplate" + } + } + } + }, + "FormConsent": { + "type": "object", + "required": [ + "consentLabel", + "consentType" + ], + "properties": { + "consentLabel": { + "type": "string", + "description": "Popisek souhlasu." + }, + "consentType": { + "type": "string", + "description": "Identifikator souhlasu.", + "enum": [ + "REGR_CBCB", + "REGR_CNCB", + "REGR_SOLUS_NEGATIVE", + "REGR_TELCOSCORE", + "IDENT_PAPERSCOPY", + "COMM_BANKSECRET_UNSECURED", + "MKTG_BYONLINE", + "MKTG_BYEMAIL", + "MKTG_BYPOST", + "MKTG_BYTEXTMSG", + "MKTG_BYPHONE", + "MKTG_BYSURVEY", + "IDENT_DATAPROCESSING", + "MKTG_BYALL" + ] + } + } + }, + "FormFieldError": { + "type": "object", + "properties": { + "errorKey": { + "type": "string" + }, + "errorText": { + "type": "string" + } + } + }, + "FormField«bigdecimal»": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "errorMessages": { + "type": "array", + "description": "list chybovych zprav, chybove zpravy se vraci po validaci vstupni formulare, jen pokud pri validaci byly nalezeny chyby = stav pole neni OK", + "items": { + "$ref": "#/definitions/FormFieldError" + } + }, + "name": { + "type": "string", + "description": "pojmenovani pole, ktere muze ale nemusi prevzit FE aplikace pro pojmenovani polozek na obrazovce" + }, + "state": { + "type": "string", + "description": "stav pole - OK (defaultni hodnota, pokud neni vyplneno) pokud jsou veskere validace nad polem v poradku, ERROR pokud nektera validace pole nebyla v poradku, CHANGED pole bylo oprati stavijimu plneni zmeneno, DISABLED pole je deaktivovano", + "enum": [ + "OK", + "ERROR", + "CHANGED", + "DISABLED" + ] + }, + "value": { + "type": "number", + "description": "genericka hodnota pole, zadava se vzdy datovy typ konkretne definovany v ramci kazdeho Form objektu." + } + } + }, + "FormField«boolean»": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "errorMessages": { + "type": "array", + "description": "list chybovych zprav, chybove zpravy se vraci po validaci vstupni formulare, jen pokud pri validaci byly nalezeny chyby = stav pole neni OK", + "items": { + "$ref": "#/definitions/FormFieldError" + } + }, + "name": { + "type": "string", + "description": "pojmenovani pole, ktere muze ale nemusi prevzit FE aplikace pro pojmenovani polozek na obrazovce" + }, + "state": { + "type": "string", + "description": "stav pole - OK (defaultni hodnota, pokud neni vyplneno) pokud jsou veskere validace nad polem v poradku, ERROR pokud nektera validace pole nebyla v poradku, CHANGED pole bylo oprati stavijimu plneni zmeneno, DISABLED pole je deaktivovano", + "enum": [ + "OK", + "ERROR", + "CHANGED", + "DISABLED" + ] + }, + "value": { + "type": "boolean", + "example": false, + "description": "genericka hodnota pole, zadava se vzdy datovy typ konkretne definovany v ramci kazdeho Form objektu." + } + } + }, + "FormField«date-time»": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "errorMessages": { + "type": "array", + "description": "list chybovych zprav, chybove zpravy se vraci po validaci vstupni formulare, jen pokud pri validaci byly nalezeny chyby = stav pole neni OK", + "items": { + "$ref": "#/definitions/FormFieldError" + } + }, + "name": { + "type": "string", + "description": "pojmenovani pole, ktere muze ale nemusi prevzit FE aplikace pro pojmenovani polozek na obrazovce" + }, + "state": { + "type": "string", + "description": "stav pole - OK (defaultni hodnota, pokud neni vyplneno) pokud jsou veskere validace nad polem v poradku, ERROR pokud nektera validace pole nebyla v poradku, CHANGED pole bylo oprati stavijimu plneni zmeneno, DISABLED pole je deaktivovano", + "enum": [ + "OK", + "ERROR", + "CHANGED", + "DISABLED" + ] + }, + "value": { + "type": "string", + "format": "date-time", + "description": "genericka hodnota pole, zadava se vzdy datovy typ konkretne definovany v ramci kazdeho Form objektu." + } + } + }, + "FormField«int»": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "errorMessages": { + "type": "array", + "description": "list chybovych zprav, chybove zpravy se vraci po validaci vstupni formulare, jen pokud pri validaci byly nalezeny chyby = stav pole neni OK", + "items": { + "$ref": "#/definitions/FormFieldError" + } + }, + "name": { + "type": "string", + "description": "pojmenovani pole, ktere muze ale nemusi prevzit FE aplikace pro pojmenovani polozek na obrazovce" + }, + "state": { + "type": "string", + "description": "stav pole - OK (defaultni hodnota, pokud neni vyplneno) pokud jsou veskere validace nad polem v poradku, ERROR pokud nektera validace pole nebyla v poradku, CHANGED pole bylo oprati stavijimu plneni zmeneno, DISABLED pole je deaktivovano", + "enum": [ + "OK", + "ERROR", + "CHANGED", + "DISABLED" + ] + }, + "value": { + "type": "integer", + "format": "int32", + "description": "genericka hodnota pole, zadava se vzdy datovy typ konkretne definovany v ramci kazdeho Form objektu." + } + } + }, + "FormField«long»": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "errorMessages": { + "type": "array", + "description": "list chybovych zprav, chybove zpravy se vraci po validaci vstupni formulare, jen pokud pri validaci byly nalezeny chyby = stav pole neni OK", + "items": { + "$ref": "#/definitions/FormFieldError" + } + }, + "name": { + "type": "string", + "description": "pojmenovani pole, ktere muze ale nemusi prevzit FE aplikace pro pojmenovani polozek na obrazovce" + }, + "state": { + "type": "string", + "description": "stav pole - OK (defaultni hodnota, pokud neni vyplneno) pokud jsou veskere validace nad polem v poradku, ERROR pokud nektera validace pole nebyla v poradku, CHANGED pole bylo oprati stavijimu plneni zmeneno, DISABLED pole je deaktivovano", + "enum": [ + "OK", + "ERROR", + "CHANGED", + "DISABLED" + ] + }, + "value": { + "type": "integer", + "format": "int64", + "description": "genericka hodnota pole, zadava se vzdy datovy typ konkretne definovany v ramci kazdeho Form objektu." + } + } + }, + "FormField«string»": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "errorMessages": { + "type": "array", + "description": "list chybovych zprav, chybove zpravy se vraci po validaci vstupni formulare, jen pokud pri validaci byly nalezeny chyby = stav pole neni OK", + "items": { + "$ref": "#/definitions/FormFieldError" + } + }, + "name": { + "type": "string", + "description": "pojmenovani pole, ktere muze ale nemusi prevzit FE aplikace pro pojmenovani polozek na obrazovce" + }, + "state": { + "type": "string", + "description": "stav pole - OK (defaultni hodnota, pokud neni vyplneno) pokud jsou veskere validace nad polem v poradku, ERROR pokud nektera validace pole nebyla v poradku, CHANGED pole bylo oprati stavijimu plneni zmeneno, DISABLED pole je deaktivovano", + "enum": [ + "OK", + "ERROR", + "CHANGED", + "DISABLED" + ] + }, + "value": { + "type": "string", + "description": "genericka hodnota pole, zadava se vzdy datovy typ konkretne definovany v ramci kazdeho Form objektu.", + "enum": [ + "ACTIVATED", + "DEACTIVATED" + ] + } + } + }, + "FormStatus": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorMessage" + } + } + } + }, + "Formular pro ulozeni informaci o zpusobu splaceni.": { + "type": "object", + "required": [ + "accountId", + "regularInstallmentDay" + ], + "properties": { + "accountId": { + "description": "ID uctu ze ktereho se bude splacet.", + "$ref": "#/definitions/FormField«string»" + }, + "regularInstallmentDay": { + "description": "Den v mesici, kdy se ma splatka provest. Napr 1 = prvni den v mesici.", + "$ref": "#/definitions/FormField«long»" + } + } + }, + "FraudTaskStatusRequest": { + "type": "object", + "required": [ + "workflowId" + ], + "properties": { + "workflowId": { + "type": "string", + "description": "Identifikator ukolu na manualni kontrolu podvodu klienta." + } + }, + "description": "Pozadavek na zjisteni stavu ukolu na manaualni kontrolu podvodu klienta." + }, + "FraudTaskStatusResponse": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Identifikator ukolu na manualni kontrolu podvodu klienta.", + "enum": [ + "IN_PROGRESS", + "DONE", + "ERROR" + ] + } + }, + "description": "Odpoved na zjisteni stavu ukolu na manaualni kontrolu podvodu klienta." + }, + "Fund": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "format": "double", + "description": "Celkovy objem porizeni" + }, + "amountInCzk": { + "type": "number", + "format": "double", + "description": "Celkovy objem porizeni v CZK" + }, + "averagePurchasePrice": { + "type": "number", + "format": "double", + "description": "Prumerna porizovaci cena" + }, + "averagePurchasePriceInCzk": { + "type": "number", + "format": "double", + "description": "Prumerna porizovaci cena v CZK" + }, + "blockedAmount": { + "type": "integer", + "format": "int32", + "description": "Pocet kusu blokovanych" + }, + "blockedAmountDouble": { + "type": "number", + "format": "double", + "description": "Pocet kusu blokovanych (Double)" + }, + "currency": { + "type": "string", + "description": "Mena" + }, + "isin": { + "type": "string", + "description": "ISIN" + }, + "marketPriceCzk": { + "type": "number", + "format": "double", + "description": "Trzni cena v CZK" + }, + "marketPricePerPiece": { + "type": "number", + "format": "double", + "description": "Trzni cena za kus" + }, + "marketValue": { + "type": "number", + "format": "double", + "description": "Trzni hodnota" + }, + "minimumInvestment": { + "type": "number", + "format": "double", + "description": "Minimalni investice" + }, + "name": { + "type": "string", + "description": "Nazev cenneho papiru" + }, + "profile": { + "type": "string", + "description": "Nazev investicniho profilu" + }, + "profit": { + "type": "number", + "format": "double", + "description": "Zisk" + }, + "profitInCzk": { + "type": "number", + "format": "double", + "description": "Zisk v CZK" + }, + "profitInPercentage": { + "type": "number", + "format": "double", + "description": "Zisk v procentech" + }, + "quantityAvailable": { + "type": "integer", + "format": "int32", + "description": "Pocet kusu disponibilnich" + }, + "quantityAvailableDouble": { + "type": "number", + "format": "double", + "description": "Pocet kusu disponibilnich (Double)" + }, + "totalAmount": { + "type": "integer", + "format": "int32", + "description": "Pocet kusu celkem" + }, + "totalAmountDouble": { + "type": "number", + "format": "double", + "description": "Pocet kusu celkem (Double)" + } + }, + "description": "Trida Fund obsahuje informace o fondech" + }, + "FundingOfferForm": { + "type": "object", + "required": [ + "agreement", + "companyEstablishment", + "companyName", + "contactName", + "email", + "phone", + "productionYear", + "providerIdentification", + "providerName", + "subject" + ], + "properties": { + "agreement": { + "description": "souhlas", + "$ref": "#/definitions/FormField«boolean»" + }, + "companyEstablishment": { + "description": "mesto sidla firmy nebo provozovny", + "$ref": "#/definitions/FormField«string»" + }, + "companyName": { + "description": "nazev firmy", + "$ref": "#/definitions/FormField«string»" + }, + "contactName": { + "description": "jmeno a prijmeni", + "$ref": "#/definitions/FormField«string»" + }, + "email": { + "description": "e-mailova adresa", + "$ref": "#/definitions/FormField«string»" + }, + "phone": { + "description": "telefonni cislo", + "$ref": "#/definitions/FormField«string»" + }, + "productionYear": { + "description": "rok vyroby", + "$ref": "#/definitions/FormField«long»" + }, + "providerIdentification": { + "description": "identifikacni cislo IC", + "$ref": "#/definitions/FormField«string»" + }, + "providerName": { + "description": "dodavatel predmetu", + "$ref": "#/definitions/FormField«string»" + }, + "subject": { + "description": "predmet financovani", + "$ref": "#/definitions/FormField«long»" + } + }, + "description": "Formular pro zaslani nabidky financovani." + }, + "FundingOfferRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro vytvoreni nabidky financovani.", + "$ref": "#/definitions/FundingOfferForm" + } + }, + "description": "Zadost o vytvoreni nabidky financovani." + }, + "FundingOfferResponse": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro vytvoreni nabidky financovani.", + "$ref": "#/definitions/FundingOfferForm" + } + }, + "description": "Odpoved na zadost o vytvoreni nabidky financovani." + }, + "GarantedInterestRateMapping": { + "type": "object", + "required": [ + "fromAmount", + "fromTermMonths", + "garantedInterestRatePercents", + "toAmount", + "toTermMonths" + ], + "properties": { + "fromAmount": { + "type": "number", + "format": "double", + "description": "Minimalni vyse pujcky pro vystupni garantovanou urokovou sazbu" + }, + "fromTermMonths": { + "type": "integer", + "format": "int64", + "description": "Minimalni doba splaceni pro vystupni garantovanou urokovou sazbu [mesic]" + }, + "garantedInterestRatePercents": { + "type": "number", + "format": "double", + "description": "Vystupni garantovana urokova sazba pro dany rozsah vyse pujcky a doby splaceni [%]" + }, + "toAmount": { + "type": "number", + "format": "double", + "description": "Maximalni vyse pujcky pro vystupni garantovanou urokovou sazbu" + }, + "toTermMonths": { + "type": "integer", + "format": "int64", + "description": "Maximalni doba splaceni pro vystupni garantovanou urokovou sazbu [mesic]" + } + } + }, + "GenerateLoginTokenResponse": { + "type": "object", + "required": [ + "loginToken" + ], + "properties": { + "loginToken": { + "type": "string", + "description": "Login token pre vymenu user info medzi federovanym loginem, CA GW a CBL." + } + }, + "description": "Login token pre vymenu user info medzi federovanym loginem, CA GW a CBL." + }, + "GeneratedDocument": { + "type": "object", + "properties": { + "cmId": { + "type": "string" + }, + "documentType": { + "type": "string" + }, + "generatedUrl": { + "type": "string" + }, + "name": { + "type": "string" + }, + "signedUrl": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "IN_PROGRESS", + "DONE", + "ERROR" + ] + } + }, + "description": "Vygenerovany dokument" + }, + "GeneratedDocumentsRequest": { + "type": "object", + "required": [ + "prodPackageKey" + ], + "properties": { + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku" + } + }, + "description": "Pozadavek na vygenerovani dokumentu k podpisu" + }, + "GeneratedDocumentsResponse": { + "type": "object", + "required": [ + "signedDocuments" + ], + "properties": { + "signedDocuments": { + "type": "array", + "description": "Seznam podepisovanych dokumentu", + "items": { + "$ref": "#/definitions/SignedDocument" + } + } + }, + "description": "Odpoved na vygenerovani dokumentu k podpisu" + }, + "GetConsentFormRequest": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "Typ formulare.", + "enum": [ + "PERSONAL_DATA_PROCESSING" + ] + } + } + }, + "GetConsentFormResponse": { + "type": "object", + "required": [ + "form", + "victoryText" + ], + "properties": { + "form": { + "description": "Sestaveny formular pro ziskani souhlasu.", + "$ref": "#/definitions/ConsentForm" + }, + "victoryText": { + "type": "string", + "description": "Text pro victory screen, ktera se zobrazi po uspesnem ulozeni souhlasu." + } + } + }, + "HelloMessageResponse": { + "type": "object", + "required": [ + "cs", + "en" + ], + "properties": { + "cs": { + "type": "string", + "description": "CS textace." + }, + "en": { + "type": "string", + "description": "EN textace." + } + } + }, + "HelloMessagesResponse": { + "type": "object", + "required": [ + "cs", + "en" + ], + "properties": { + "cs": { + "type": "object", + "description": "Seznam cs textaci." + }, + "en": { + "type": "object", + "description": "Seznam en textaci." + } + } + }, + "HelloProbesResponse": { + "type": "object", + "required": [ + "probes" + ], + "properties": { + "probes": { + "type": "object", + "description": "Kontroly dostupnosti dalsich sluzeb (napr. databaze), jestli jsou ok nebo ne.", + "additionalProperties": { + "$ref": "#/definitions/Probe" + } + } + } + }, + "HelloResponse": { + "type": "object", + "required": [ + "branch", + "buildDateTime", + "message", + "profiles", + "revision", + "version" + ], + "properties": { + "branch": { + "type": "string", + "description": "Branch, ze ktery byla nasazena CBL, napr. default nebo RQ-123" + }, + "buildDateTime": { + "type": "string", + "description": "Cas, kdy byla aplikace zbuildena." + }, + "message": { + "type": "string", + "description": "Hello world hlaska z CBL." + }, + "profiles": { + "type": "array", + "description": "Aktivni Spring profily.", + "items": { + "type": "string" + } + }, + "revision": { + "type": "string", + "description": "Revize, ze ktere byla CBL nasazena, napr. 1as3f5as4fa8sf4asf3." + }, + "version": { + "type": "string", + "description": "Nasazena verze CBL, napr. 1.1." + } + } + }, + "HowToSearchRequest": { + "type": "object", + "properties": { + "query": { + "type": "string" + } + } + }, + "HowToSearchResponse": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/HowToSearchResult" + } + } + } + }, + "HowToSearchResult": { + "type": "object", + "properties": { + "body": { + "type": "string" + }, + "code": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "matchedText": { + "type": "string" + }, + "primaryButton": { + "$ref": "#/definitions/CallToActionButton" + }, + "recentlyAdded": { + "type": "boolean" + }, + "sectionIconUrl": { + "type": "string" + }, + "sectionName": { + "type": "string" + }, + "shortTitle": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "HowToSection": { + "type": "object", + "properties": { + "iconUrl": { + "type": "string" + }, + "name": { + "type": "string" + }, + "topics": { + "type": "array", + "items": { + "$ref": "#/definitions/HowToTopicDetail" + } + } + } + }, + "HowToTopicDetail": { + "type": "object", + "properties": { + "body": { + "type": "string" + }, + "code": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "primaryButton": { + "$ref": "#/definitions/CallToActionButton" + }, + "recentlyAdded": { + "type": "boolean" + }, + "shortTitle": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "HowToTopicsResponse": { + "type": "object", + "properties": { + "recentlyAddedTopics": { + "type": "array", + "items": { + "$ref": "#/definitions/HowToTopicDetail" + } + }, + "sections": { + "type": "array", + "items": { + "$ref": "#/definitions/HowToSection" + } + } + } + }, + "IbanCheckRequest": { + "type": "object", + "required": [ + "iban" + ], + "properties": { + "iban": { + "type": "string", + "description": "IBAN, muze obsahovat mezery - pro zpracovani budou odstraneny." + } + }, + "description": "Pozadavek na overeni IBANu." + }, + "IbanCheckResponse": { + "type": "object", + "properties": { + "bankAddress": { + "description": "Informace o bance podle daneho IBANu. Pokud se nepodarilo informace najit (zrejme je zadany IBAN nevalidni) vracime null.", + "$ref": "#/definitions/Informace o bance prijemce." + }, + "ibanValid": { + "type": "boolean", + "example": false, + "description": "Priznak zda je dany IBAN validni." + }, + "sepaEnabled": { + "type": "boolean", + "example": false, + "description": "Priznak zda je banka SEPA dosazitelna. Pokud neni vyplneno, nepodarilo se zjistit." + } + } + }, + "IdentityCardForm text": { + "type": "object", + "required": [ + "birthDate", + "birthNumber", + "birthPlace", + "citizenship", + "country", + "descriptiveNumber", + "documentNumber", + "documentValidTo", + "firstName", + "lastName", + "orientationNumber", + "street", + "town", + "zip" + ], + "properties": { + "birthDate": { + "description": "Datum narozeni", + "$ref": "#/definitions/FormField«date-time»" + }, + "birthNumber": { + "description": "Rodne cislo", + "$ref": "#/definitions/FormField«string»" + }, + "birthPlace": { + "description": "Misto narozeni", + "$ref": "#/definitions/FormField«string»" + }, + "citizenship": { + "description": "Narodnost", + "$ref": "#/definitions/FormField«string»" + }, + "country": { + "description": "Zeme", + "$ref": "#/definitions/FormField«string»" + }, + "descriptiveNumber": { + "description": "Cislo popisne", + "$ref": "#/definitions/FormField«string»" + }, + "documentNumber": { + "description": "Cislo OP", + "$ref": "#/definitions/FormField«string»" + }, + "documentValidTo": { + "description": "Cislo OP", + "$ref": "#/definitions/FormField«date-time»" + }, + "firstName": { + "description": "Jmeno", + "$ref": "#/definitions/FormField«string»" + }, + "formStatus": { + "$ref": "#/definitions/FormStatus" + }, + "lastName": { + "description": "Prijmeni", + "$ref": "#/definitions/FormField«string»" + }, + "orientationNumber": { + "description": "Cislo orientacni", + "$ref": "#/definitions/FormField«string»" + }, + "street": { + "description": "Ulice", + "$ref": "#/definitions/FormField«string»" + }, + "town": { + "description": "Mesto", + "$ref": "#/definitions/FormField«string»" + }, + "zip": { + "description": "PSC", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "udaje z OP manualni vyplneni" + }, + "IncomeFromMMBAccountRequest": { + "type": "object", + "required": [ + "birthNumber", + "employmentType" + ], + "properties": { + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "employmentType": { + "type": "string", + "description": "Typ zamestnaneckeho pomeru klienta" + } + }, + "description": "Pozadavek na ziskani prijmu z uctu MMB" + }, + "IncomeFromMMBAccountResponse": { + "type": "object", + "required": [ + "employers", + "incomeAverageThreeMonths" + ], + "properties": { + "employers": { + "type": "array", + "description": "Zamestnavatele", + "items": { + "$ref": "#/definitions/EmployerInfoResponse" + } + }, + "incomeAverageThreeMonths": { + "type": "number", + "description": "Prumerny prijem za posledni tri mesice" + } + }, + "description": "Odpoved na ziskani prijmu z uctu MMB" + }, + "IncuranceAccount": { + "type": "object", + "required": [ + "accountId", + "plan" + ], + "properties": { + "accountId": { + "type": "string", + "description": "cislo uctu" + }, + "plan": { + "description": "poplatkovy plan", + "$ref": "#/definitions/AccountFeePlan" + } + }, + "description": "Objekt s datem pocatku a datem ukonceni pojisteni." + }, + "InfoLimit": { + "type": "object", + "required": [ + "accountNumber", + "applicationType", + "cashLimitPercentage", + "contractNumber", + "currency", + "infoLimitAmount", + "installmentPercentage", + "principal", + "productClass", + "reasonCategory", + "salesProductCode", + "type", + "variants" + ], + "properties": { + "accountNumber": { + "type": "string", + "description": "Cislo uctu" + }, + "applicationType": { + "type": "string", + "description": "Typ zadosti" + }, + "cashLimitPercentage": { + "type": "number", + "description": "Procento hotovosti" + }, + "contractNumber": { + "type": "string", + "description": "Cislo smlouvy" + }, + "currency": { + "type": "string", + "description": "Mena" + }, + "infoLimitAmount": { + "type": "number", + "description": "Infolimit castka" + }, + "installmentPercentage": { + "type": "number", + "description": "Procento prijmu" + }, + "principal": { + "type": "number", + "description": "Principal" + }, + "productClass": { + "type": "string", + "description": "Product class", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION_PLUS", + "FLEXIKREDIT", + "RETAIL_CREDIT_CARD", + "OK_CARD", + "EXPRESS_ADDITION", + "UNSECURED_DEBT_CONSOLIDATION" + ] + }, + "reasonCategory": { + "type": "string", + "description": "Kategorie" + }, + "salesProductCode": { + "type": "string", + "description": "Sales production code" + }, + "type": { + "type": "string", + "description": "Typ infolimitu", + "enum": [ + "FULL_EXPRESS", + "PRE_APPROVED_LOAN", + "COMMITMENT_D" + ] + }, + "variants": { + "type": "array", + "description": "Varianty infolimitu", + "items": { + "$ref": "#/definitions/InfoLimitVariant" + } + } + } + }, + "InfoLimitVariant": { + "type": "object", + "required": [ + "amount", + "chargeRate", + "installmentAmount", + "installmentCount", + "interestRate", + "loanInfo", + "name", + "salesProductCode", + "totalPayAmount", + "transactionFee", + "variantKey" + ], + "properties": { + "amount": { + "type": "number", + "description": "Castka" + }, + "chargeRate": { + "type": "number", + "format": "double", + "description": "Rocni procentni sazba nakladu" + }, + "installmentAmount": { + "type": "number", + "description": "Vyse splatky" + }, + "installmentCount": { + "type": "integer", + "format": "int64", + "description": "Pocet splatek" + }, + "interestRate": { + "type": "number", + "format": "double", + "description": "Rocni urokova sazba" + }, + "loanInfo": { + "type": "string", + "description": "Staticky text s obecnymi informacemi" + }, + "name": { + "type": "string", + "description": "Nazev produktu" + }, + "salesProductCode": { + "type": "string", + "description": "Sales production code" + }, + "totalPayAmount": { + "type": "number", + "description": "Celkem zaplatite" + }, + "transactionFee": { + "type": "number", + "description": "Poplatek za sjednani" + }, + "variantKey": { + "type": "string", + "description": "Cislo varianty" + } + } + }, + "InfoServiceChannelSetting": { + "type": "object", + "required": [ + "channel", + "enabled" + ], + "properties": { + "channel": { + "type": "string", + "description": "Kanal nastaveni - nyni pouze PUSH.", + "enum": [ + "PUSH" + ] + }, + "enabled": { + "type": "boolean", + "example": false, + "description": "Indikator toho, zdali je kanal zapnuty." + }, + "lowerLimitAmount": { + "type": "number", + "description": "Limitni castka, pro kterou jsou notifikace zapnute." + }, + "minimumLowerLimitAmount": { + "type": "number", + "description": "Minimalni vyse limitni castky." + } + } + }, + "InfoServiceChannelUpdate": { + "type": "object", + "required": [ + "channel" + ], + "properties": { + "channel": { + "type": "string", + "description": "Kanal nastaveni - nyni pouze PUSH.", + "enum": [ + "PUSH" + ] + }, + "enabled": { + "type": "boolean", + "example": false, + "description": "Indikator toho, zdali je kanal zapnuty." + }, + "lowerLimitAmount": { + "type": "number", + "description": "Limitni castka, pro kterou jsou notifikace zapnute." + } + } + }, + "InfoServiceEventSetting": { + "type": "object", + "required": [ + "channelSettings", + "eventName", + "eventType" + ], + "properties": { + "channelSettings": { + "type": "array", + "description": "Nastaveni jednotlivych kanalu pro danou udalost.", + "items": { + "$ref": "#/definitions/InfoServiceChannelSetting" + } + }, + "eventName": { + "type": "string", + "description": "Nazev udalosti." + }, + "eventType": { + "type": "string", + "description": "Udalost, ktere se nastaveni tyka.", + "enum": [ + "OUTGOING_TRANSACTION", + "INCOMING_TRANSACTION", + "CARD_PAYMENT", + "UNAUTHORIZED_OVERDRAFT", + "UNPROCESSED_TRANSACTION" + ] + } + } + }, + "InfoServiceLegalLine": { + "type": "object", + "required": [ + "termsUrl", + "text" + ], + "properties": { + "termsUrl": { + "type": "string", + "description": "Url odkazujici na dokument s podminkami sluzby." + }, + "text": { + "type": "string", + "description": "Text souhlasu, ktery se ma zobrazit pred ulozenim noveho nastaveni." + } + } + }, + "InfoServiceProduct": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string", + "description": "Id produktu, pro ACCOUNT je to accountId." + }, + "type": { + "type": "string", + "description": "Typ produktu - ACCOUNT.", + "enum": [ + "ACCOUNT", + "CREDIT_CARD", + "DEBIT_CARD" + ] + } + } + }, + "InfoServiceProductsListRequest": { + "type": "object", + "description": "Request pro ziskani seznamu idcek konfigurovatelnych produktu." + }, + "InfoServiceProductsListResponse": { + "type": "object", + "required": [ + "accounts", + "creditCards", + "debitCards" + ], + "properties": { + "accounts": { + "type": "array", + "description": "Seznam accountId, pro ktere je mozne nastavovat notifikace.", + "items": { + "type": "string" + } + }, + "creditCards": { + "type": "array", + "description": "Seznam cardId kreditnich karet, pro ktere je mozne nastavovat notifikace.", + "items": { + "type": "string" + } + }, + "debitCards": { + "type": "array", + "description": "Seznam cardId debetnich karet, pro ktere je mozne nastavovat notifikace.", + "items": { + "type": "string" + } + } + }, + "description": "Response se seznamy idcek konfigurovatelnych produktu." + }, + "InfoServiceSettingUpdate": { + "type": "object", + "required": [ + "eventType" + ], + "properties": { + "channelSettings": { + "type": "array", + "description": "Nastaveni jednotlivych kanalu pro danou udalost.", + "items": { + "$ref": "#/definitions/InfoServiceChannelUpdate" + } + }, + "eventType": { + "type": "string", + "description": "Udalost, ktere se nastaveni tyka.", + "enum": [ + "OUTGOING_TRANSACTION", + "INCOMING_TRANSACTION", + "CARD_PAYMENT", + "UNAUTHORIZED_OVERDRAFT", + "UNPROCESSED_TRANSACTION" + ] + } + } + }, + "InfoServiceSettingsListRequest": { + "type": "object", + "properties": { + "productId": { + "type": "string", + "description": "Id produktu, pro ACCOUNT je to accountId, pro CREDIT_CARD a DEBIT_CARD je to cardId." + }, + "productType": { + "type": "string", + "description": "Typ produktu.", + "enum": [ + "ACCOUNT", + "CREDIT_CARD", + "DEBIT_CARD" + ] + } + }, + "description": "Request pro endpoint na ziskani konfigurace notifikaci (SMO)." + }, + "InfoServiceSettingsListResponse": { + "type": "object", + "required": [ + "legalLine", + "settings" + ], + "properties": { + "legalLine": { + "description": "Text souhlasu, ktery se ma zobrazit pred ulozenim noveho nastaveni.", + "$ref": "#/definitions/InfoServiceLegalLine" + }, + "settings": { + "type": "array", + "description": "Seznam nastaveni notifikaci pro zvoleny produkt.", + "items": { + "$ref": "#/definitions/InfoServiceEventSetting" + } + } + }, + "description": "Response endpointu na ziskani konfigurace notifikaci (SMO)." + }, + "InfoServiceSettingsUpdateRequest": { + "type": "object", + "required": [ + "product", + "settings" + ], + "properties": { + "product": { + "description": "Identifikace produktu, ktereho se zmena notifikaci tyka.", + "$ref": "#/definitions/InfoServiceProduct" + }, + "settings": { + "type": "array", + "description": "Seznam nastaveni kanalu pro udalosti.", + "items": { + "$ref": "#/definitions/InfoServiceSettingUpdate" + } + } + }, + "description": "Request pro zmenu konfigurace notifikaci (SMO)." + }, + "InfoServiceSettingsUpdateResponse": { + "type": "object", + "description": "Response endpointu pro zmenu konfigurace notifikaci (SMO)." + }, + "Informace o bance prijemce.": { + "type": "object", + "properties": { + "addressCity": { + "type": "string", + "description": "adresa banky prijemce - mesto" + }, + "addressStreet": { + "type": "string", + "description": "adresa banky prijemce - ulice a cislo popisne" + }, + "bankName": { + "type": "string", + "description": "nazev banky prijemce" + }, + "bic": { + "type": "string", + "description": "bic banky prijemce" + }, + "country": { + "type": "string", + "description": "adresa banky prijemce - zeme" + } + } + }, + "Insurance": { + "type": "object", + "required": [ + "contractNumber", + "detail", + "efficiencyDate", + "endDate", + "insuranceType", + "localizedStatus", + "status" + ], + "properties": { + "contractNumber": { + "type": "integer", + "format": "int64", + "description": "Cislo smlouvy." + }, + "detail": { + "description": "Detail pojisteni.", + "$ref": "#/definitions/Insurance detail" + }, + "efficiencyDate": { + "type": "string", + "format": "date-time", + "description": "Datum ucinnosti pojisteni." + }, + "endDate": { + "type": "string", + "format": "date-time", + "description": "Datum konce platnosti pojisteni." + }, + "insuranceType": { + "type": "string", + "description": "Typ pojisteni.", + "enum": [ + "PROPERTY_INSURANCE_ALLIANZ", + "PROPERTY_INSURANCE_DIRECT", + "CAR_INSURANCE", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS_AND_INTERNET_RISKS", + "INSURANCE_OF_DIGITAL_PAYMENTS", + "REPAYMENT_AND_EXPENSES_INSURANCE", + "TRAVEL_INSURANCE_SINGLE", + "TRAVEL_INSURANCE_FAMILY", + "ACCIDENT_INSURANCE_GROWN_UP", + "ACCIDENT_INSURANCE_CHILD", + "ACCIDENT_INSURANCE_FAMILY", + "PROPERTY_INSURANCE", + "MORTGAGE_MANDATORY_INSURANCE", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_A", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_B", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_AA", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_BB", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_14", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_15", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_16", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_17", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_18", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_19", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_20", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_21", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_22", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_23", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_24", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_25", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_26", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_27", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_28", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_29", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_30", + "CREDIT_CARD_INSURANCE", + "TRAVEL_INSURANCE_EUROPE_SINGLE", + "TRAVEL_INSURANCE_WORLD_SINGLE", + "TRAVEL_INSURANCE_EUROPE_FAMILY", + "TRAVEL_INSURANCE_WORLD_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_FAMILY", + "INSURANCE_ACC_CHILD", + "INSURANCE_ACC_J_PARENT", + "INSURANCE_ACC_J_CHILD", + "INSURANCE_ACC_J_STUDENT", + "INSURANCE_ACC_ADULT", + "INSURANCE_ACC_FAMILY" + ] + }, + "localizedStatus": { + "type": "string", + "description": "Stav pojištění v lokalizované podobě (Aktivní | Zrušeno / Active | Cancelled)." + }, + "status": { + "type": "string", + "description": "Stav pojištění", + "enum": [ + "ACTIVE", + "CANCELLED" + ] + } + }, + "description": "Trida aktivniho pojisteni." + }, + "Insurance detail": { + "type": "object", + "required": [ + "bankPhoneNumber", + "description", + "feeAmount", + "feeCurrency", + "feeFrequency", + "frameworkId", + "name" + ], + "properties": { + "bankPhoneNumber": { + "description": "Telefonni cislo do banky (zmena/zruseni pojisteni).", + "$ref": "#/definitions/PhoneNumber" + }, + "description": { + "type": "string", + "description": "Popis pojisteni (na uvodni obrazovce nabidky)." + }, + "feeAmount": { + "type": "number", + "description": "Poplatek." + }, + "feeCurrency": { + "type": "string", + "description": "Mena poplatku." + }, + "feeFrequency": { + "type": "string", + "description": "Frekvence poplatkovani.", + "enum": [ + "DAILY", + "WEEKLY", + "MONTHLY", + "QUARTERLY", + "SEMIANNUALLY", + "YEARLY" + ] + }, + "frameworkId": { + "type": "string", + "description": "Id ramcove smlouvy." + }, + "image": { + "type": "string", + "description": "Logo pojisteni." + }, + "insuranceCompany": { + "description": "Detaily o pojistovne", + "$ref": "#/definitions/InsuranceCompany" + }, + "insuranceCompanyPhoneNumber": { + "description": "Telefonni cislo do pojistovny (asistencni kontakt).", + "$ref": "#/definitions/PhoneNumber" + }, + "name": { + "type": "string", + "description": "Nazev pojisteni." + } + }, + "description": "Detail pojisteni." + }, + "Insurance document": { + "type": "object", + "required": [ + "documentType", + "text", + "url" + ], + "properties": { + "documentId": { + "type": "string", + "description": "Id dokumentu vyplnen pouze u typu DOC." + }, + "documentType": { + "type": "string", + "description": "Typ dokumentu (DOC - dokument v base64, URL - url).", + "enum": [ + "DOC", + "URL", + "PNG" + ] + }, + "text": { + "type": "string", + "description": "Popis dokumentu." + }, + "url": { + "type": "string", + "description": "URL dokumentu/dokument v base64." + } + }, + "description": "Dokument pojisteni." + }, + "Insurance limit": { + "type": "object", + "required": [ + "level", + "param", + "value" + ], + "properties": { + "level": { + "type": "integer", + "format": "int32", + "description": "Odsazeni." + }, + "param": { + "type": "string", + "description": "Popis limitu." + }, + "value": { + "type": "string", + "description": "Hodnota limitu." + } + }, + "description": "Objekt s popiskem a hodnotou limitu pojisteni." + }, + "Insurance offer": { + "type": "object", + "required": [ + "detail", + "groupCode", + "type" + ], + "properties": { + "accountIds": { + "type": "array", + "description": "Seznam uctu, ze kterych jde pojisteni zaplatit.", + "items": { + "type": "string" + } + }, + "detail": { + "description": "Detail pojisteni.", + "$ref": "#/definitions/Insurance detail" + }, + "groupCode": { + "type": "string", + "description": "Skupina, do ktere pojisteni patri.", + "enum": [ + "TRAVELINSURANCE", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS_AND_INTERNET_RISKS", + "INSURANCE_OF_DIGITAL_PAYMENTS" + ] + }, + "insuranceMaximumLength": { + "type": "integer", + "format": "int64", + "description": "Maximalni delka pojisteni ve dnech. Vyplneno pouze u kratkodobych pojisteni." + }, + "offerBlockers": { + "type": "array", + "description": "Pojisteni, ktere je nejdrive potreba zrusit pred sjednanim tohoto pojisteni.", + "items": { + "$ref": "#/definitions/InsuranceOfferBlocker" + } + }, + "type": { + "type": "string", + "description": "Typ pojisteni.", + "enum": [ + "PROPERTY_INSURANCE_ALLIANZ", + "PROPERTY_INSURANCE_DIRECT", + "CAR_INSURANCE", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS_AND_INTERNET_RISKS", + "INSURANCE_OF_DIGITAL_PAYMENTS", + "REPAYMENT_AND_EXPENSES_INSURANCE", + "TRAVEL_INSURANCE_SINGLE", + "TRAVEL_INSURANCE_FAMILY", + "ACCIDENT_INSURANCE_GROWN_UP", + "ACCIDENT_INSURANCE_CHILD", + "ACCIDENT_INSURANCE_FAMILY", + "PROPERTY_INSURANCE", + "MORTGAGE_MANDATORY_INSURANCE", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_A", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_B", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_AA", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_BB", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_14", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_15", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_16", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_17", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_18", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_19", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_20", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_21", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_22", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_23", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_24", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_25", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_26", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_27", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_28", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_29", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_30", + "CREDIT_CARD_INSURANCE", + "TRAVEL_INSURANCE_EUROPE_SINGLE", + "TRAVEL_INSURANCE_WORLD_SINGLE", + "TRAVEL_INSURANCE_EUROPE_FAMILY", + "TRAVEL_INSURANCE_WORLD_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_FAMILY", + "INSURANCE_ACC_CHILD", + "INSURANCE_ACC_J_PARENT", + "INSURANCE_ACC_J_CHILD", + "INSURANCE_ACC_J_STUDENT", + "INSURANCE_ACC_ADULT", + "INSURANCE_ACC_FAMILY" + ] + } + }, + "description": "Objekt s popiskem a hodnotou limitu pojisteni." + }, + "InsuranceAppointmentCreateForm": { + "type": "object", + "required": [ + "branchId", + "confirmationRadioSms", + "date", + "note", + "period", + "productTypeId", + "time", + "userIdentification" + ], + "properties": { + "branchId": { + "type": "string", + "description": "Id pobocky" + }, + "confirmationEmail": { + "description": "Potvrzovaci email", + "$ref": "#/definitions/FormField«string»" + }, + "confirmationRadioSms": { + "description": "Radiobutton na nastaveni potvrzeni", + "$ref": "#/definitions/FormField«boolean»" + }, + "confirmationSms": { + "description": "Cislo potvrzujiciho telefonu", + "$ref": "#/definitions/FormField«string»" + }, + "date": { + "description": "Datum schuzky", + "$ref": "#/definitions/FormField«date-time»" + }, + "note": { + "description": "Poznamka", + "$ref": "#/definitions/FormField«string»" + }, + "period": { + "type": "string", + "description": "Doba schůzky (napr. 0,5; 1; 1,5;.... )" + }, + "productTypeId": { + "type": "string", + "description": "Id produktu" + }, + "time": { + "description": "Cas schuzky", + "$ref": "#/definitions/FormField«string»" + }, + "userIdentification": { + "description": "Data uzivatele", + "$ref": "#/definitions/UserIdentification" + } + }, + "description": "Formular pro sjednani schuzky k pojisteni" + }, + "InsuranceAppointmentCreateRequest": { + "type": "object", + "required": [ + "insuranceAppointmentCreateForm" + ], + "properties": { + "insuranceAppointmentCreateForm": { + "description": "Formular sjednani schuzky k pojisteni", + "$ref": "#/definitions/InsuranceAppointmentCreateForm" + } + } + }, + "InsuranceAppointmentCreateResponse": { + "type": "object", + "required": [ + "insuranceAppointmentCreateForm" + ], + "properties": { + "insuranceAppointmentCreateForm": { + "description": "Formular sjednani schuzky k pojisteni", + "$ref": "#/definitions/InsuranceAppointmentCreateForm" + } + } + }, + "InsuranceAvailableAccountsRequest": { + "type": "object", + "required": [ + "insuranceType" + ], + "properties": { + "insuranceType": { + "type": "string", + "description": "Type of the insurance.", + "enum": [ + "PROPERTY_INSURANCE_ALLIANZ", + "PROPERTY_INSURANCE_DIRECT", + "CAR_INSURANCE", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS_AND_INTERNET_RISKS", + "INSURANCE_OF_DIGITAL_PAYMENTS", + "REPAYMENT_AND_EXPENSES_INSURANCE", + "TRAVEL_INSURANCE_SINGLE", + "TRAVEL_INSURANCE_FAMILY", + "ACCIDENT_INSURANCE_GROWN_UP", + "ACCIDENT_INSURANCE_CHILD", + "ACCIDENT_INSURANCE_FAMILY", + "PROPERTY_INSURANCE", + "MORTGAGE_MANDATORY_INSURANCE", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_A", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_B", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_AA", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_BB", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_14", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_15", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_16", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_17", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_18", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_19", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_20", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_21", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_22", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_23", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_24", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_25", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_26", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_27", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_28", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_29", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_30", + "CREDIT_CARD_INSURANCE", + "TRAVEL_INSURANCE_EUROPE_SINGLE", + "TRAVEL_INSURANCE_WORLD_SINGLE", + "TRAVEL_INSURANCE_EUROPE_FAMILY", + "TRAVEL_INSURANCE_WORLD_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_FAMILY", + "INSURANCE_ACC_CHILD", + "INSURANCE_ACC_J_PARENT", + "INSURANCE_ACC_J_CHILD", + "INSURANCE_ACC_J_STUDENT", + "INSURANCE_ACC_ADULT", + "INSURANCE_ACC_FAMILY" + ] + } + } + }, + "InsuranceAvailableAccountsResponse": { + "type": "object", + "required": [ + "accounts" + ], + "properties": { + "accounts": { + "type": "array", + "description": "List of available accounts for create insurance.", + "items": { + "$ref": "#/definitions/IncuranceAccount" + } + } + } + }, + "InsuranceCalculationRequest": { + "type": "object", + "required": [ + "insuranceEndDate", + "insuranceStartDate", + "insuranceType" + ], + "properties": { + "insuranceEndDate": { + "type": "string", + "format": "date-time", + "description": "Last date of the insurance coverage." + }, + "insuranceStartDate": { + "type": "string", + "format": "date-time", + "description": "First date of the insurance coverage." + }, + "insuranceType": { + "type": "string", + "description": "Type of the insurance.", + "enum": [ + "PROPERTY_INSURANCE_ALLIANZ", + "PROPERTY_INSURANCE_DIRECT", + "CAR_INSURANCE", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS_AND_INTERNET_RISKS", + "INSURANCE_OF_DIGITAL_PAYMENTS", + "REPAYMENT_AND_EXPENSES_INSURANCE", + "TRAVEL_INSURANCE_SINGLE", + "TRAVEL_INSURANCE_FAMILY", + "ACCIDENT_INSURANCE_GROWN_UP", + "ACCIDENT_INSURANCE_CHILD", + "ACCIDENT_INSURANCE_FAMILY", + "PROPERTY_INSURANCE", + "MORTGAGE_MANDATORY_INSURANCE", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_A", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_B", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_AA", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_BB", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_14", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_15", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_16", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_17", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_18", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_19", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_20", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_21", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_22", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_23", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_24", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_25", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_26", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_27", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_28", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_29", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_30", + "CREDIT_CARD_INSURANCE", + "TRAVEL_INSURANCE_EUROPE_SINGLE", + "TRAVEL_INSURANCE_WORLD_SINGLE", + "TRAVEL_INSURANCE_EUROPE_FAMILY", + "TRAVEL_INSURANCE_WORLD_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_FAMILY", + "INSURANCE_ACC_CHILD", + "INSURANCE_ACC_J_PARENT", + "INSURANCE_ACC_J_CHILD", + "INSURANCE_ACC_J_STUDENT", + "INSURANCE_ACC_ADULT", + "INSURANCE_ACC_FAMILY" + ] + } + } + }, + "InsuranceCalculationResponse": { + "type": "object", + "required": [ + "insurancePriceTotalAmount" + ], + "properties": { + "insurancePriceTotalAmount": { + "type": "number", + "description": "Celkova cena za nabizene pojisteni." + } + } + }, + "InsuranceCommitRequest": { + "type": "object", + "required": [ + "accountId", + "type" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Cislo uctu, ze ktereho bude klient platit pojisteni." + }, + "agreementDocumentId": { + "type": "string", + "description": "dokumentId z /insurance/setup z dokumentu typu DOC. Pokud je zadano, dojde k zaverzovani podepsaneho dokumentu k puvodne vygenerenovanemu pro nahled." + }, + "documentBase64": { + "type": "string", + "description": "base64 enkodovany dokument souhlas s pojistenim" + }, + "insuranceDuration": { + "description": "Doba trvani pojisteni.", + "$ref": "#/definitions/Doba trvani pojisteni" + }, + "signatureBase64": { + "type": "string", + "description": "base64 enkodovany podpis" + }, + "signatureType": { + "type": "string", + "description": "typ podpisu (MOBILE_KEY, CERTIFICATE, SMARTBANK_PIN, SMARTBANK_FINGERPRINT, SMARTBANK_FACEID)", + "enum": [ + "MOBILE_KEY", + "CERTIFICATE", + "SMARTBANK_PIN", + "SMARTBANK_FINGERPRINT", + "SMARTBANK_FACEID" + ] + }, + "type": { + "type": "string", + "description": "Typ pojisteni.", + "enum": [ + "PROPERTY_INSURANCE_ALLIANZ", + "PROPERTY_INSURANCE_DIRECT", + "CAR_INSURANCE", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS_AND_INTERNET_RISKS", + "INSURANCE_OF_DIGITAL_PAYMENTS", + "REPAYMENT_AND_EXPENSES_INSURANCE", + "TRAVEL_INSURANCE_SINGLE", + "TRAVEL_INSURANCE_FAMILY", + "ACCIDENT_INSURANCE_GROWN_UP", + "ACCIDENT_INSURANCE_CHILD", + "ACCIDENT_INSURANCE_FAMILY", + "PROPERTY_INSURANCE", + "MORTGAGE_MANDATORY_INSURANCE", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_A", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_B", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_AA", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_BB", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_14", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_15", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_16", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_17", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_18", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_19", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_20", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_21", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_22", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_23", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_24", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_25", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_26", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_27", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_28", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_29", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_30", + "CREDIT_CARD_INSURANCE", + "TRAVEL_INSURANCE_EUROPE_SINGLE", + "TRAVEL_INSURANCE_WORLD_SINGLE", + "TRAVEL_INSURANCE_EUROPE_FAMILY", + "TRAVEL_INSURANCE_WORLD_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_FAMILY", + "INSURANCE_ACC_CHILD", + "INSURANCE_ACC_J_PARENT", + "INSURANCE_ACC_J_CHILD", + "INSURANCE_ACC_J_STUDENT", + "INSURANCE_ACC_ADULT", + "INSURANCE_ACC_FAMILY" + ] + } + } + }, + "InsuranceCommitResponse": { + "type": "object", + "required": [ + "contractNumber", + "transactionId" + ], + "properties": { + "contractNumber": { + "type": "integer", + "format": "int64", + "description": "Cislo smlouvy nove zalozeneho pojisteni." + }, + "transactionId": { + "type": "string", + "description": "Id transakce." + } + } + }, + "InsuranceCompany": { + "type": "object", + "required": [ + "address", + "id", + "name" + ], + "properties": { + "address": { + "type": "string", + "description": "Adresa, ktera se objevi na smlouve." + }, + "id": { + "type": "string", + "description": "ICO pojistovny." + }, + "name": { + "type": "string", + "description": "Nazev pojistovny." + } + } + }, + "InsuranceDocumentListRequest": { + "type": "object", + "required": [ + "contractNumber", + "insuranceType" + ], + "properties": { + "contractNumber": { + "type": "integer", + "format": "int64", + "description": "Cislo smlouvy pojisteni." + }, + "insuranceType": { + "type": "string", + "description": "Typ pojisteni.", + "enum": [ + "PROPERTY_INSURANCE_ALLIANZ", + "PROPERTY_INSURANCE_DIRECT", + "CAR_INSURANCE", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS_AND_INTERNET_RISKS", + "INSURANCE_OF_DIGITAL_PAYMENTS", + "REPAYMENT_AND_EXPENSES_INSURANCE", + "TRAVEL_INSURANCE_SINGLE", + "TRAVEL_INSURANCE_FAMILY", + "ACCIDENT_INSURANCE_GROWN_UP", + "ACCIDENT_INSURANCE_CHILD", + "ACCIDENT_INSURANCE_FAMILY", + "PROPERTY_INSURANCE", + "MORTGAGE_MANDATORY_INSURANCE", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_A", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_B", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_AA", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_BB", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_14", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_15", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_16", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_17", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_18", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_19", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_20", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_21", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_22", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_23", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_24", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_25", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_26", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_27", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_28", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_29", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_30", + "CREDIT_CARD_INSURANCE", + "TRAVEL_INSURANCE_EUROPE_SINGLE", + "TRAVEL_INSURANCE_WORLD_SINGLE", + "TRAVEL_INSURANCE_EUROPE_FAMILY", + "TRAVEL_INSURANCE_WORLD_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_FAMILY", + "INSURANCE_ACC_CHILD", + "INSURANCE_ACC_J_PARENT", + "INSURANCE_ACC_J_CHILD", + "INSURANCE_ACC_J_STUDENT", + "INSURANCE_ACC_ADULT", + "INSURANCE_ACC_FAMILY" + ] + } + } + }, + "InsuranceDocumentListResponse": { + "type": "object", + "properties": { + "documentList": { + "type": "array", + "description": "Seznam dokumentu k pojisteni.", + "items": { + "$ref": "#/definitions/Insurance document" + } + } + } + }, + "InsuranceEventForm": { + "type": "object", + "properties": { + "contractNumber": { + "description": "Cislo uverove/leasingove smlouvy.", + "$ref": "#/definitions/FormField«string»" + }, + "error": { + "description": "Obecna chyba formulare.", + "$ref": "#/definitions/FormField«string»" + }, + "insuranceCompanyNumber": { + "description": "Pojistovna", + "$ref": "#/definitions/FormField«long»" + }, + "insuranceEventDate": { + "description": "Datum pojistne udalosti.", + "$ref": "#/definitions/FormField«date-time»" + }, + "insuranceEventType": { + "description": "Typ pojistne udalosti.", + "$ref": "#/definitions/FormField«string»" + }, + "insuranceType": { + "description": "Pojistná událost je likvidována z.", + "$ref": "#/definitions/FormField«string»" + }, + "note": { + "description": "Poznamka.", + "$ref": "#/definitions/FormField«string»" + }, + "registrationPlate": { + "description": "SPZ.", + "$ref": "#/definitions/FormField«string»" + }, + "vin": { + "description": "VIN.", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Hlaseni pojistne udalnosti." + }, + "InsuranceEventReportRequest": { + "type": "object", + "properties": { + "hardCommit": { + "type": "boolean", + "example": false, + "description": "Overovat/neoverovat spravnost udaju o vozidle a smlouve." + }, + "insuranceEventForm": { + "description": "Formular pro hlaseni pojistne udalosti.", + "$ref": "#/definitions/InsuranceEventForm" + } + }, + "description": "Hlaseni pojistne udalosti." + }, + "InsuranceEventReportResponse": { + "type": "object", + "properties": { + "insuranceEventForm": { + "description": "Formular pro vytvoreni zpetne vazby.", + "$ref": "#/definitions/InsuranceEventForm" + } + }, + "description": "Odpoved pro zaslani zpetne vazby pri hlaseni pojistne udalosti." + }, + "InsuranceGroup": { + "type": "object", + "required": [ + "button", + "code", + "highlightedLimits", + "text", + "title" + ], + "properties": { + "button": { + "description": "Text na tlacitku.", + "$ref": "#/definitions/CallToActionButton" + }, + "code": { + "type": "string", + "description": "Unikatni identifikator skupiny pojisteni.", + "enum": [ + "TRAVELINSURANCE", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS_AND_INTERNET_RISKS", + "INSURANCE_OF_DIGITAL_PAYMENTS" + ] + }, + "highlightedLimits": { + "type": "array", + "description": "Vypichnute limity, ktere se zobrazi primo u dane skupiny.'", + "items": { + "$ref": "#/definitions/InsuranceHighlightedLimit" + } + }, + "text": { + "type": "string", + "description": "Popis skupiny pojisteni." + }, + "title": { + "type": "string", + "description": "Nadpis skupiny." + } + } + }, + "InsuranceHighlightedLimit": { + "type": "object", + "required": [ + "limitName", + "limitValue" + ], + "properties": { + "limitName": { + "type": "string", + "description": "Nazev limitu." + }, + "limitUnit": { + "type": "string", + "description": "Jednotka limitu." + }, + "limitValue": { + "type": "string", + "description": "Castka limitu." + } + } + }, + "InsuranceListResponse": { + "type": "object", + "required": [ + "header", + "infoTexts", + "insuranceList", + "insuranceOfferList", + "serverTime", + "thirdPartyProducts" + ], + "properties": { + "header": { + "type": "string", + "description": "Nadpis sekce." + }, + "infoTexts": { + "type": "array", + "description": "Popis sekce.", + "items": { + "type": "string" + } + }, + "insuranceList": { + "type": "array", + "description": "Seznam aktivnich pojisteni.", + "items": { + "$ref": "#/definitions/Insurance" + } + }, + "insuranceOfferList": { + "type": "array", + "description": "Seznam nabidek pojisteni.", + "items": { + "$ref": "#/definitions/Insurance offer" + } + }, + "serverTime": { + "type": "string", + "format": "date-time", + "description": "Systemovy cas na serveru." + }, + "thirdPartyProducts": { + "type": "array", + "description": "Seznam sjednanych produktu tretich stran.", + "items": { + "$ref": "#/definitions/InsuranceThirdPartyProduct" + } + } + } + }, + "InsuranceOfferBlocker": { + "type": "object", + "properties": { + "contractNumber": { + "type": "integer", + "format": "int64", + "description": "Cislo pojistne smlouvy." + }, + "insuranceType": { + "type": "string", + "description": "Typ pojisteni.", + "enum": [ + "PROPERTY_INSURANCE_ALLIANZ", + "PROPERTY_INSURANCE_DIRECT", + "CAR_INSURANCE", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS_AND_INTERNET_RISKS", + "INSURANCE_OF_DIGITAL_PAYMENTS", + "REPAYMENT_AND_EXPENSES_INSURANCE", + "TRAVEL_INSURANCE_SINGLE", + "TRAVEL_INSURANCE_FAMILY", + "ACCIDENT_INSURANCE_GROWN_UP", + "ACCIDENT_INSURANCE_CHILD", + "ACCIDENT_INSURANCE_FAMILY", + "PROPERTY_INSURANCE", + "MORTGAGE_MANDATORY_INSURANCE", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_A", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_B", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_AA", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_BB", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_14", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_15", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_16", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_17", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_18", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_19", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_20", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_21", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_22", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_23", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_24", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_25", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_26", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_27", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_28", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_29", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_30", + "CREDIT_CARD_INSURANCE", + "TRAVEL_INSURANCE_EUROPE_SINGLE", + "TRAVEL_INSURANCE_WORLD_SINGLE", + "TRAVEL_INSURANCE_EUROPE_FAMILY", + "TRAVEL_INSURANCE_WORLD_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_FAMILY", + "INSURANCE_ACC_CHILD", + "INSURANCE_ACC_J_PARENT", + "INSURANCE_ACC_J_CHILD", + "INSURANCE_ACC_J_STUDENT", + "INSURANCE_ACC_ADULT", + "INSURANCE_ACC_FAMILY" + ] + } + } + }, + "InsuranceSetupRequest": { + "type": "object", + "required": [ + "insuranceType" + ], + "properties": { + "insuranceDuration": { + "description": "Doba trvani pojisteni.", + "$ref": "#/definitions/Doba trvani pojisteni" + }, + "insuranceType": { + "type": "string", + "description": "Typ pojisteni.", + "enum": [ + "PROPERTY_INSURANCE_ALLIANZ", + "PROPERTY_INSURANCE_DIRECT", + "CAR_INSURANCE", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS_AND_INTERNET_RISKS", + "INSURANCE_OF_DIGITAL_PAYMENTS", + "REPAYMENT_AND_EXPENSES_INSURANCE", + "TRAVEL_INSURANCE_SINGLE", + "TRAVEL_INSURANCE_FAMILY", + "ACCIDENT_INSURANCE_GROWN_UP", + "ACCIDENT_INSURANCE_CHILD", + "ACCIDENT_INSURANCE_FAMILY", + "PROPERTY_INSURANCE", + "MORTGAGE_MANDATORY_INSURANCE", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_A", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_B", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_AA", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_BB", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_14", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_15", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_16", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_17", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_18", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_19", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_20", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_21", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_22", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_23", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_24", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_25", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_26", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_27", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_28", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_29", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_30", + "CREDIT_CARD_INSURANCE", + "TRAVEL_INSURANCE_EUROPE_SINGLE", + "TRAVEL_INSURANCE_WORLD_SINGLE", + "TRAVEL_INSURANCE_EUROPE_FAMILY", + "TRAVEL_INSURANCE_WORLD_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_FAMILY", + "INSURANCE_ACC_CHILD", + "INSURANCE_ACC_J_PARENT", + "INSURANCE_ACC_J_CHILD", + "INSURANCE_ACC_J_STUDENT", + "INSURANCE_ACC_ADULT", + "INSURANCE_ACC_FAMILY" + ] + } + } + }, + "InsuranceSetupResponse": { + "type": "object", + "required": [ + "descriptionTexts", + "documents", + "infoTexts", + "limits" + ], + "properties": { + "descriptionTexts": { + "type": "array", + "description": "Popisky pojisteni.", + "items": { + "type": "string" + } + }, + "documents": { + "type": "array", + "description": "Seznam PDF pojisteni.", + "items": { + "$ref": "#/definitions/Insurance document" + } + }, + "infoTexts": { + "type": "array", + "description": "Seznam popisek pojisteni pod dokumenty.", + "items": { + "type": "string" + } + }, + "limits": { + "type": "array", + "description": "Seznam limitu pojisteni.", + "items": { + "$ref": "#/definitions/Insurance limit" + } + } + } + }, + "InsuranceThirdPartyProduct": { + "type": "object", + "properties": { + "contractDateFrom": { + "type": "string", + "format": "date-time" + }, + "contractNumber": { + "type": "string" + }, + "contractState": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "InsuranceVariant": { + "type": "object", + "properties": { + "insuranceAmount": { + "type": "number", + "description": "poplatek za pojisteni" + }, + "insuranceCode": { + "type": "string", + "description": "kod pojisteni" + }, + "insuranceName": { + "type": "string", + "description": "nazev pojisteni" + } + } + }, + "IntRange": { + "type": "object", + "properties": { + "max": { + "type": "integer", + "format": "int32", + "description": "Maximalni hodnota." + }, + "min": { + "type": "integer", + "format": "int32", + "description": "Minimalni hodnota." + } + }, + "description": "Celociselny rozsah hodnot." + }, + "IntegerRange": { + "type": "object", + "properties": { + "max": { + "type": "integer", + "format": "int32", + "description": "Maximalni hodnota." + }, + "min": { + "type": "integer", + "format": "int32", + "description": "Minimalni hodnota." + } + }, + "description": "Celociselny rozsah hodnot." + }, + "InterestRateForFixation": { + "type": "object", + "properties": { + "fixation": { + "type": "integer", + "format": "int32", + "description": "Celociselna fixace hypoteky v letech." + }, + "interestRate": { + "type": "number", + "description": "Urokova sazba v procentech." + } + }, + "description": "Urokova sazba pro fixaci." + }, + "InternetBankingInfoRequest": { + "type": "object", + "required": [ + "cifId" + ], + "properties": { + "cifId": { + "type": "string", + "description": "Identifikator klienta" + } + }, + "description": "Pozadavek na ziskani informaci o internetovem bankovnictvi klienta." + }, + "InternetBankingInfoResponse": { + "type": "object", + "properties": { + "loginName": { + "type": "string", + "description": "Prihlasovaci jmeno do internetoveho bankovncitvi." + } + }, + "description": "Vraci informace o internetovem bankovnictvi klienta" + }, + "IntraBankAccountDetailForm": { + "type": "object", + "properties": { + "accountNumber": { + "description": "cislo uctu prijemce", + "$ref": "#/definitions/FormField«long»" + }, + "accountPrefix": { + "description": "prefix cisla uctu prijemce", + "$ref": "#/definitions/FormField«int»" + } + }, + "description": "Formular pro overeni existence uctu u Monety a ziskani meny uctu." + }, + "IntraBankAccountDetailRequest": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro overeni existence uctu u Monety a ziskani meny uctu.", + "$ref": "#/definitions/IntraBankAccountDetailForm" + } + } + }, + "IntraBankAccountDetailResponse": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "Nalezena mena uctu (napr. CZK, USD, EUR).", + "enum": [ + "ATS", + "AUD", + "BEF", + "HRK", + "CAD", + "CHF", + "CZK", + "DEM", + "DKK", + "ESP", + "EUR", + "FIM", + "FRF", + "GBP", + "GRD", + "HUF", + "ITL", + "JPY", + "NLG", + "NOK", + "PLN", + "PTE", + "RUB", + "SEK", + "SKK", + "RON", + "BGN", + "USD" + ] + }, + "form": { + "description": "Formular pro overeni existence uctu u Monety a ziskani meny uctu, ktery je doplneny o pripdane validacni chyby.", + "$ref": "#/definitions/IntraBankAccountDetailForm" + }, + "legalLine": { + "type": "string", + "description": "Pravni veta, ktera se ma zobrazit pri vytvareni prikazu." + } + } + }, + "IntraBankPaymentCommitRequest": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "id transakce ziskane pri volani create endpointu" + } + } + }, + "IntraBankPaymentCommitResponse": { + "type": "object" + }, + "IntraBankPaymentCreateRequest": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro zadani platby v ramci Monety.", + "$ref": "#/definitions/IntraBankPaymentForm" + }, + "type": { + "type": "string", + "description": "Typ cizomenove platby.", + "enum": [ + "CLIENT_ACCOUNT", + "INTRA_BANK" + ] + } + } + }, + "IntraBankPaymentCreateResponse": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro zadani platby v ramci Monety, ktery je doplneny o pripdane validacni chyby.", + "$ref": "#/definitions/IntraBankPaymentForm" + }, + "transactionId": { + "type": "string", + "description": "Vygenerovane transactionId kterym se overuje pri commitu, ze se jedna stale stejnou platbu. Vraci se pouze pokud byla validace formulare v poradku." + } + } + }, + "IntraBankPaymentForm": { + "type": "object", + "required": [ + "amount", + "currencyCode", + "destinationAccountNumber", + "dueDate", + "individualRateSelected", + "sourceAccountId" + ], + "properties": { + "amount": { + "description": "castka platby", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "constantSymbol": { + "description": "konstantni symbol", + "$ref": "#/definitions/FormField«long»" + }, + "currencyCode": { + "description": "kod meny platby", + "$ref": "#/definitions/FormField«string»" + }, + "destinationAccountNumber": { + "description": "cislo ciloveho cisla uctu", + "$ref": "#/definitions/FormField«long»" + }, + "destinationAccountPrefix": { + "description": "prefix ciloveho cisla uctu", + "$ref": "#/definitions/FormField«int»" + }, + "dueDate": { + "description": "datum splatnosti", + "$ref": "#/definitions/FormField«date-time»" + }, + "individualRateSelected": { + "description": "Indikator toho, zda uzivatel zvolil moznost sjednani individualniho kurzu.", + "$ref": "#/definitions/FormField«boolean»" + }, + "noteForRecipient": { + "description": "zprava pro prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "sourceAccountId": { + "description": "interni id zdrojoveho uctu", + "$ref": "#/definitions/FormField«string»" + }, + "specificSymbol": { + "description": "specificky symbol", + "$ref": "#/definitions/FormField«long»" + }, + "variableSymbol": { + "description": "variabilni symbol", + "$ref": "#/definitions/FormField«long»" + } + }, + "description": "Formular pro overeni existence uctu u Monety a ziskani meny uctu." + }, + "Investment": { + "type": "object", + "required": [ + "allowedOperations" + ], + "properties": { + "allowedOperations": { + "type": "array", + "description": "Prava k investicim, mozne hodnoty: STATEMENT_LIST", + "items": { + "type": "string", + "enum": [ + "STATEMENT_LIST" + ] + } + }, + "contractNumber": { + "type": "string", + "description": "cislo smlouvy" + }, + "fundList": { + "type": "array", + "description": "detaily fondu", + "items": { + "$ref": "#/definitions/Fund" + } + } + }, + "description": "Trida Investment obsahuje informace o investici" + }, + "InvestmentChart": { + "type": "object", + "required": [ + "fiveYearsData", + "isin", + "monthData", + "quarterData", + "weekData", + "yearData" + ], + "properties": { + "currency": { + "type": "string", + "description": "Mena." + }, + "fiveYearsData": { + "type": "array", + "description": "Data za obdobi 5 poslednich let, mesicni periodicita celkem 60 hodnot.", + "items": { + "$ref": "#/definitions/InvestmentChartPoint" + } + }, + "isin": { + "type": "string", + "description": "ISIN kod cenneho papiru." + }, + "monthData": { + "type": "array", + "description": "Data za obdobi 28 poslednich dni, denni periodicita celkem 28 hodnot.", + "items": { + "$ref": "#/definitions/InvestmentChartPoint" + } + }, + "quarterData": { + "type": "array", + "description": "Data za obdobi 3 poslednich mesice, tydenni periodicita celkem 12 hodnot.", + "items": { + "$ref": "#/definitions/InvestmentChartPoint" + } + }, + "weekData": { + "type": "array", + "description": "Data za obdobi 7 poslednich dni, denni periodicita celkem 7 hodnot.", + "items": { + "$ref": "#/definitions/InvestmentChartPoint" + } + }, + "yearData": { + "type": "array", + "description": "Data za obdobi 12 poslednich mesicu, tydenni periodicita celkem 51 hodnot.", + "items": { + "$ref": "#/definitions/InvestmentChartPoint" + } + } + }, + "description": "Trida InvestmentChart obsahuje informace pro vykresleni vyvoje podiloveho fondu" + }, + "InvestmentChartPoint": { + "type": "object", + "required": [ + "x", + "y" + ], + "properties": { + "x": { + "type": "string", + "format": "date-time", + "description": "Souradnice X (datum)." + }, + "y": { + "type": "number", + "format": "double", + "description": "Souradnice Y (hodnota fondu)." + } + }, + "description": "Trida Investment obsahuje bod v grafu vyvoje investicniho fondu" + }, + "InvestmentChartRequest": { + "type": "object", + "required": [ + "isin" + ], + "properties": { + "isin": { + "type": "string", + "description": "Isin kod cenneho papiru" + } + } + }, + "InvestmentChartResponse": { + "type": "object", + "required": [ + "investmentChart" + ], + "properties": { + "investmentChart": { + "description": "Data vyvoje podiloveho fondu.", + "$ref": "#/definitions/InvestmentChart" + } + } + }, + "InvestmentChartUniversal": { + "type": "object", + "required": [ + "data", + "isin" + ], + "properties": { + "currency": { + "type": "string", + "description": "Mena." + }, + "data": { + "type": "array", + "description": "Data za zvolene obdobi.", + "items": { + "$ref": "#/definitions/InvestmentChartPoint" + } + }, + "isin": { + "type": "string", + "description": "ISIN kod cenneho papiru." + } + }, + "description": "Trida InvestmentChartUniversal obsahuje informace pro graf vyvoje podiloveho fondu" + }, + "InvestmentChartUniversalResponse": { + "type": "object", + "required": [ + "chart" + ], + "properties": { + "chart": { + "description": "Data pro graf.", + "$ref": "#/definitions/InvestmentChartUniversal" + } + }, + "description": "Trida InvestmentChartUniversalResponse obsahuje informace pro graf vyvoje podiloveho fondu" + }, + "InvestmentFundComparison": { + "type": "object", + "properties": { + "fiveYearsValue": { + "type": "number", + "format": "double", + "description": "Hodnota 5 let." + }, + "fundName": { + "type": "string", + "description": "Nazev fondu." + }, + "fundType": { + "type": "string", + "description": "Typ fondu." + }, + "investmentHorizon": { + "type": "integer", + "format": "int64", + "description": "Doporucena delka investice." + }, + "isin": { + "type": "string", + "description": "Isin." + }, + "riskLevel": { + "type": "integer", + "format": "int64", + "description": "Stupen rizika." + }, + "threeYearsValue": { + "type": "number", + "format": "double", + "description": "Hodnota 3 roky." + }, + "yearValue": { + "type": "number", + "format": "double", + "description": "Hodnota rok." + } + }, + "description": "Detail fondu pro porovnani." + }, + "InvestmentFundComparisonList": { + "type": "object", + "required": [ + "comparison" + ], + "properties": { + "comparison": { + "type": "array", + "description": "Jednotlive fondy.", + "items": { + "$ref": "#/definitions/InvestmentFundComparison" + } + } + }, + "description": "Jeden seznam pro srovnani fondu dle stupnu rizika." + }, + "InvestmentFundComparisonResponse": { + "type": "object", + "required": [ + "comparisonList" + ], + "properties": { + "comparisonList": { + "type": "array", + "description": "Jednotlive seznamy fondu.", + "items": { + "$ref": "#/definitions/InvestmentFundComparisonList" + } + } + }, + "description": "Odpoved pro srovnani fondu dle stupnu rizika." + }, + "InvestmentFundDetail": { + "type": "object", + "properties": { + "accountNumber": { + "type": "string", + "description": "Cislo uctu." + }, + "creationDate": { + "type": "string", + "format": "date-time", + "description": "Datum vzniku." + }, + "currency": { + "type": "string", + "description": "Mena." + }, + "fundProfile": { + "type": "string", + "description": "Investicni profil fondu." + }, + "fundType": { + "type": "string", + "description": "Typ fondu." + }, + "investmentHorizon": { + "type": "integer", + "format": "int64", + "description": "Doporucena delka investice." + }, + "isin": { + "type": "string", + "description": "Isin." + }, + "minimalInvestment": { + "type": "number", + "format": "double", + "description": "Minimalni investice." + }, + "nav": { + "type": "number", + "format": "double", + "description": "NAV (cista hodnota aktiv)." + }, + "purchaseFee": { + "type": "number", + "format": "double", + "description": "Poplatek pri nakupu." + }, + "rateDay": { + "type": "string", + "format": "date-time", + "description": "Aktualni kurz ke dni." + }, + "riskLevel": { + "type": "integer", + "format": "int64", + "description": "Stupen rizika." + } + }, + "description": "Detail fondu." + }, + "InvestmentFundDetailResponse": { + "type": "object", + "properties": { + "fund": { + "description": "Fond", + "$ref": "#/definitions/InvestmentFundDetail" + } + }, + "description": "Response pro detail fondu." + }, + "InvestmentListResponse": { + "type": "object", + "properties": { + "investment": { + "$ref": "#/definitions/Investment" + } + } + }, + "InvestmentProductivityResponse": { + "type": "object", + "required": [ + "isin" + ], + "properties": { + "currency": { + "type": "string", + "description": "Mena." + }, + "dailyValue": { + "type": "number", + "format": "double", + "description": "Hodnota denni." + }, + "decadeValue": { + "type": "number", + "format": "double", + "description": "Hodnota dekada." + }, + "entireValue": { + "type": "number", + "format": "double", + "description": "Hodnota cele." + }, + "fiveYearsValue": { + "type": "number", + "format": "double", + "description": "Hodnota 5 let." + }, + "halfYearValue": { + "type": "number", + "format": "double", + "description": "Hodnota pulrok." + }, + "isin": { + "type": "string", + "description": "ISIN kod cenneho papiru." + }, + "monthlyValue": { + "type": "number", + "format": "double", + "description": "Hodnota mesicni." + }, + "quarterValue": { + "type": "number", + "format": "double", + "description": "Hodnota cvrtrok." + }, + "threeYearsValue": { + "type": "number", + "format": "double", + "description": "Hodnota 3 roky." + }, + "yearValue": { + "type": "number", + "format": "double", + "description": "Hodnota rok." + }, + "ytdValue": { + "type": "number", + "format": "double", + "description": "Hodnota YTD." + } + } + }, + "InvestmentReturn": { + "type": "object", + "properties": { + "maxReturn": { + "type": "number", + "format": "double", + "description": "Maximalni vynos." + }, + "minReturn": { + "type": "number", + "format": "double", + "description": "Minimalni vynos." + }, + "totalInvestment": { + "type": "number", + "format": "double", + "description": "Celkova investice - bez vynosu." + } + }, + "description": "Investicni vynos." + }, + "InvestmentReturnResponse": { + "type": "object", + "properties": { + "investmentReturn": { + "description": "Vynos investice.", + "$ref": "#/definitions/InvestmentReturn" + } + }, + "description": "Odpoved pro vypocet vynosu investice." + }, + "IsLoggedUserCPBrokerResponse": { + "type": "object", + "properties": { + "cpbroker": { + "type": "boolean" + } + }, + "description": "Odpoved zda je prihlaseny uzivatel brokerm Ceske pojistovny" + }, + "JournalEventRequest": { + "type": "object", + "required": [ + "appId", + "clientCreatedAt", + "pageId", + "status" + ], + "properties": { + "appId": { + "type": "string", + "description": "Aplikace", + "enum": [ + "IBM", + "eUFO", + "IBS", + "WebRA", + "MIB", + "IBL", + "POS_TABLET" + ] + }, + "clientCreatedAt": { + "type": "string", + "format": "date-time", + "description": "Informace, kdy byla udalost vytvorena na klientu" + }, + "description": { + "type": "string", + "description": "Popis udalosti" + }, + "pageId": { + "type": "integer", + "format": "int64", + "description": "ID stranky, na ktere se udalost odehrala" + }, + "relatedData": { + "type": "string", + "description": "Data urceni pro ulozeni souvisejich udaju k udalosti" + }, + "status": { + "type": "string", + "description": "Informace, zda udalost zurnaluje chybovy stav ci nikoliv", + "enum": [ + "OK", + "NOK" + ] + } + }, + "description": "Request pro zalogovani udalosti do journalu" + }, + "JournalEventResponse": { + "type": "object", + "description": "Obalka pro udalost v journalu" + }, + "JwtRefreshResponse": { + "type": "object", + "required": [ + "token" + ], + "properties": { + "token": { + "type": "string", + "description": "JWT token s prodlouzenou expiraci." + } + }, + "description": "Odpoved na prodlouzeni platnosti JWT tokenu." + }, + "KontomatikImportRequest": { + "type": "object", + "required": [ + "birthNumber", + "name", + "sessionId", + "sessionIdSignature", + "surname" + ], + "properties": { + "appKey": { + "type": "string", + "description": "Identifikator zadosti of cif" + }, + "birthNumber": { + "type": "string", + "description": "Rodne cislo klienta" + }, + "cifId": { + "type": "string", + "description": "Identifikator existujiciho klienta (cif)" + }, + "name": { + "type": "string", + "description": "Jmeno klienta" + }, + "sessionId": { + "type": "string", + "description": "Identifikator komunikace s Kontomatikem" + }, + "sessionIdSignature": { + "type": "string", + "description": "Bezpecnostni parametr, ktery predchazi odhadnuti identifikatoru komunikace s Kontomatikem" + }, + "surname": { + "type": "string", + "description": "Prijmeni klienta" + } + }, + "description": "Nacteni dat z Kontomatiku" + }, + "KontomatikImportResponse": { + "type": "object", + "description": "Nacteni dat z Kontomatiku" + }, + "Link": { + "type": "object", + "properties": { + "href": { + "type": "string" + }, + "templated": { + "type": "boolean" + } + } + }, + "LoadConsent101Request": { + "type": "object", + "required": [ + "consentType" + ], + "properties": { + "consentType": { + "type": "string", + "description": "Typ souhlasu (HCisAllDruhSouhlasu101.value)" + } + }, + "description": "Ziskani stavu souhlasu 101" + }, + "LoadConsent101Response": { + "type": "object", + "properties": { + "consent": { + "type": "boolean", + "example": false, + "description": "Souhlas (true = ano/false = ne)" + }, + "consentType": { + "type": "string", + "description": "Typ souhlasu (HCisAllDruhSouhlasu101.value)" + } + }, + "description": "Ziskani stavu souhlasu 101" + }, + "Loan": { + "type": "object", + "required": [ + "currentAccountId", + "instalmentAmount", + "instalmentFirstPaymentDate", + "instalmentInterestAmount", + "instalmentLastPaymentDate", + "instalmentRemainingNumber", + "instalmentTotalNumber", + "loanAccountId", + "loanAmount", + "loanApprovedAmount", + "loanAvailableWithdrawal", + "loanDrawDate", + "loanInterestRate", + "loanOpenDate", + "maturityAmountAfter", + "maturityDaysAfter", + "principalAmount", + "principalDrawAmount", + "productDetail" + ], + "properties": { + "currentAccountId": { + "type": "string", + "description": "interni cislo navazaneho bezneho uctu" + }, + "instalmentAmount": { + "type": "number", + "description": "vyse pravidelne splatky" + }, + "instalmentFirstPaymentDate": { + "type": "string", + "format": "date-time", + "description": "datum prvni splatky" + }, + "instalmentInterestAmount": { + "type": "number", + "format": "double", + "description": "vyber pravidelne splatky uroku" + }, + "instalmentLastPaymentDate": { + "type": "string", + "format": "date-time", + "description": "datum posledni splatky" + }, + "instalmentNextDate": { + "type": "string", + "format": "date-time", + "description": "datum nasledujici splatky" + }, + "instalmentRemainingNumber": { + "type": "integer", + "format": "int64", + "description": "zbyvajici pocet splatek" + }, + "instalmentTotalNumber": { + "type": "integer", + "format": "int64", + "description": "celkovy pocet splatek" + }, + "loanAccountId": { + "type": "string", + "description": "interni cislo uveroveho uctu" + }, + "loanAmount": { + "type": "number", + "description": "celkova dluzna castka" + }, + "loanApprovedAmount": { + "type": "number", + "description": "schvalena castka uveru" + }, + "loanAvailableWithdrawal": { + "type": "number", + "description": "rezerva pro dalsi cerpani u EPP" + }, + "loanDrawDate": { + "type": "string", + "format": "date-time", + "description": "datum cerpani pujcky" + }, + "loanInterestRate": { + "type": "number", + "format": "double", + "description": "urokova sazba pujcky" + }, + "loanOpenDate": { + "type": "string", + "format": "date-time", + "description": "datum otevreni pujcky" + }, + "maturityAmountAfter": { + "type": "number", + "description": "celkem castka po splatnosti" + }, + "maturityDaysAfter": { + "type": "integer", + "format": "int64", + "description": "pocet dni po splatnosti" + }, + "principalAmount": { + "type": "number", + "description": "vyse nesplacene jistiny" + }, + "principalDrawAmount": { + "type": "number", + "description": "aktualni cerpana jistina" + }, + "productDetail": { + "description": "popisek produktu, biscode, kratky a dlouhy popisek", + "$ref": "#/definitions/ProductDetail" + } + } + }, + "LoanListResponse": { + "type": "object", + "properties": { + "loanList": { + "type": "array", + "items": { + "$ref": "#/definitions/Loan" + } + } + } + }, + "LoanNotification": { + "type": "object", + "required": [ + "errorDescription", + "loanAccountId", + "notificationId", + "status" + ], + "properties": { + "errorDescription": { + "type": "string", + "description": "popis chyby, pokud k ni doslo" + }, + "loanAccountId": { + "type": "string", + "description": "interni id uveroveho uctu" + }, + "notificationId": { + "type": "integer", + "format": "int64", + "description": "interni id notifikace" + }, + "status": { + "type": "string", + "description": "status provedeni zadane transakce", + "enum": [ + "NEW", + "READ" + ] + } + }, + "description": "Notifikace na uver po splatnosti." + }, + "LogEventRequest": { + "type": "object", + "required": [ + "appId", + "clientCreatedAt", + "level", + "message", + "name" + ], + "properties": { + "appId": { + "type": "string", + "description": "Aplikace", + "enum": [ + "IBM", + "eUFO", + "IBS", + "WebRA", + "MIB", + "IBL", + "POS_TABLET" + ] + }, + "clientCreatedAt": { + "type": "string", + "format": "date-time", + "description": "Informace, kdy byla udalost vytvorena na klientu" + }, + "environment": { + "type": "string", + "description": "Informace o prostredi" + }, + "level": { + "type": "string", + "description": "Log level", + "enum": [ + "ERROR", + "WARNING", + "DEBUG", + "INFO" + ] + }, + "message": { + "type": "string", + "description": "Message chyby / kratky popis udalosti" + }, + "name": { + "type": "string", + "description": "Nazev chyby (MyError), Nazev veci co chci zalogovat,.." + }, + "relatedData": { + "type": "string", + "description": "Data urceni pro ulozeni souvisejich udaju k udalosti" + }, + "stacktrace": { + "type": "string", + "description": "Pokud je udalost chyba, tak zde prilozit stacktrace" + } + }, + "description": "Request pro zalogovani udalosti do logu" + }, + "LogEventResponse": { + "type": "object", + "description": "Obalka pro logovaci udalost" + }, + "LoginSecondBankerRequest": { + "type": "object", + "required": [ + "login", + "passwordHash" + ], + "properties": { + "login": { + "type": "string", + "description": "Prihlasovaci jmeno" + }, + "passwordHash": { + "type": "string", + "description": "Zahashovane a zakodovane heslo" + } + }, + "description": "Pozadavek na prihlaseni druheho bankere" + }, + "LoginSecondBankerResponse": { + "type": "object", + "required": [ + "firstName", + "lastName", + "sso" + ], + "properties": { + "firstName": { + "type": "string", + "description": "Jmeno druheho bankere" + }, + "lastName": { + "type": "string", + "description": "Prijmeni druheho bankere" + }, + "sso": { + "type": "string", + "description": "SSO druheho bankere" + } + }, + "description": "Odpoved na prihlaseni druheho bankere" + }, + "Map«string,Link»": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Link" + } + }, + "Message class": { + "type": "object", + "required": [ + "creationDate", + "messageId", + "status", + "subject", + "text" + ], + "properties": { + "creationDate": { + "type": "string", + "format": "date-time", + "description": "datum vytvoreni zpravy" + }, + "messageId": { + "type": "integer", + "format": "int64", + "description": "messageId zpravy" + }, + "status": { + "type": "string", + "description": "status zpravy (NEW(0), UNREAD(1), READ(2))", + "enum": [ + "NEW", + "UNREAD", + "READ" + ] + }, + "subject": { + "type": "string", + "description": "predmet zpravy" + }, + "text": { + "type": "string", + "description": "text zpravy" + } + }, + "description": "Message class containing attributes for messages from bank to client." + }, + "MessageListResponse": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/Message class" + } + } + } + }, + "MessageReadRequest": { + "type": "object", + "properties": { + "messageId": { + "type": "integer", + "format": "int64" + } + } + }, + "MessageReadResponse": { + "type": "object" + }, + "MgmReferralResponse": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "kod doporucujiciho (CIF)" + } + }, + "description": "Member Get Member odpoved s kodem doporucujiciho" + }, + "MobileTopUpCommitRequest": { + "type": "object", + "required": [ + "mobileTopUpForm", + "transactionId" + ], + "properties": { + "mobileTopUpForm": { + "description": "formular prikazu pro dobiti kreditu, ktery se bude realizovat", + "$ref": "#/definitions/MobileTopUpForm" + }, + "transactionId": { + "type": "string", + "description": "id formulare vygenerovane pri create requestu." + } + } + }, + "MobileTopUpCommitResponse": { + "type": "object", + "properties": { + "mobileTopUpForm": { + "description": "formular pro navyseni kreditu naplneny chybami pokud doslo pri validacich k chybam a status error neni ok, jinak se vraci prazdne", + "$ref": "#/definitions/MobileTopUpForm" + }, + "packageId": { + "type": "string", + "description": "id pod kterym byl pozadavek predan ke zpracovani" + } + } + }, + "MobileTopUpCreateRequest": { + "type": "object", + "required": [ + "mobileTopUpForm" + ], + "properties": { + "mobileTopUpForm": { + "description": "formular prikazu pro dobiti kreditu, ktery se bude realizovat", + "$ref": "#/definitions/MobileTopUpForm" + } + } + }, + "MobileTopUpCreateResponse": { + "type": "object", + "properties": { + "mobileTopUpForm": { + "description": "formular pro navyseni kreditu naplneny chybami pokud doslo pri validacich k chybam a status error neni ok, jinak se vraci prazdne.", + "$ref": "#/definitions/MobileTopUpForm" + }, + "transactionId": { + "type": "string", + "description": "id transakce, pod kterym se transakce porvrzuje na kroku commit. Vraci se pokud pri validacich nedoslo k chybam." + } + } + }, + "MobileTopUpForm": { + "type": "object", + "required": [ + "accountId", + "amount", + "operator", + "phoneNumber", + "phonePrefix" + ], + "properties": { + "accountId": { + "type": "string", + "description": "interni id uctu, ze ktereho se bude dobijeny kredit platit" + }, + "amount": { + "description": "castka ktera se bude na telefon dobijet", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "operator": { + "type": "string", + "description": "id telefoniho operatora", + "enum": [ + "O2", + "TMOBILE", + "VODAFONE" + ] + }, + "phoneNumber": { + "description": "telefonni cislo, napr 666777999", + "$ref": "#/definitions/FormField«string»" + }, + "phonePrefix": { + "description": "prefix telefoniho cisla, napr +420", + "$ref": "#/definitions/FormField«string»" + } + } + }, + "ModelAndView": { + "type": "object", + "properties": { + "empty": { + "type": "boolean" + }, + "model": { + "type": "object" + }, + "modelMap": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "reference": { + "type": "boolean" + }, + "status": { + "type": "string", + "enum": [ + "100", + "101", + "102", + "103", + "200", + "201", + "202", + "203", + "204", + "205", + "206", + "207", + "208", + "226", + "300", + "301", + "302", + "303", + "304", + "305", + "307", + "308", + "400", + "401", + "402", + "403", + "404", + "405", + "406", + "407", + "408", + "409", + "410", + "411", + "412", + "413", + "414", + "415", + "416", + "417", + "418", + "419", + "420", + "421", + "422", + "423", + "424", + "426", + "428", + "429", + "431", + "451", + "500", + "501", + "502", + "503", + "504", + "505", + "506", + "507", + "508", + "509", + "510", + "511" + ] + }, + "view": { + "$ref": "#/definitions/View" + }, + "viewName": { + "type": "string" + } + } + }, + "Mortgage": { + "type": "object", + "required": [ + "accountId", + "amountOfInterest", + "amountOfMonthlyInstallment", + "approvedAmount", + "dateOfFinalMortgageMaturity", + "interestRate", + "interestRateFixing", + "productName", + "relation", + "unpaidAmount" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Cislo uctu hypoteky." + }, + "amountOfInterest": { + "type": "number", + "description": "Vyse uroku." + }, + "amountOfMonthlyInstallment": { + "type": "number", + "description": "Castka mesicni splatky." + }, + "approvedAmount": { + "type": "number", + "description": "Vyse schvalene jistiny." + }, + "dateOfFinalMortgageMaturity": { + "type": "string", + "format": "date-time", + "description": "Konecna splatnost uveru." + }, + "dateOfFixationEnd": { + "type": "string", + "format": "date-time", + "description": "Datum konce fixace." + }, + "dateOfNextInstallment": { + "type": "string", + "format": "date-time", + "description": "Datum pristi splatky." + }, + "dateOfNote": { + "type": "string", + "format": "date-time", + "description": "Datum poznamky." + }, + "interestRate": { + "type": "number", + "description": "Urok." + }, + "interestRateFixing": { + "type": "string", + "description": "Fixace urokove sazby." + }, + "productName": { + "type": "string", + "description": "Nazev produktu." + }, + "relation": { + "type": "string", + "description": "Vztah k hypotece." + }, + "unpaidAmount": { + "type": "number", + "description": "Nezaplacena castka uveru." + } + }, + "description": "Trida hypoteky." + }, + "MortgageCalculatorCalculation": { + "type": "object", + "properties": { + "instalment": { + "type": "number", + "description": "Mesicni vyse splatky v CZK." + }, + "interestRate": { + "type": "number", + "description": "Urokova sazba v procentech." + }, + "interestRatesForFixations": { + "type": "array", + "description": "Dostupne fixace a jejich urokove sazby.", + "items": { + "$ref": "#/definitions/InterestRateForFixation" + } + }, + "maxOffsetInterestRate": { + "type": "number", + "description": "Urokova sazba maxoffset v procentech." + }, + "ppiAmount": { + "type": "number", + "description": "Mesicni pojisteni v CZK." + }, + "rpsn": { + "type": "number", + "description": "RPSN v procentech." + }, + "standardInterestRate": { + "type": "number", + "description": "Urokova sazba standard v procentech." + }, + "totalAmount": { + "type": "number", + "description": "Celkova castka v CZK." + } + }, + "description": "Vypoctene hodnoty pro hypotecni kalkulacku." + }, + "MortgageCalculatorCalculationRequest": { + "type": "object", + "properties": { + "fixation": { + "type": "integer", + "format": "int32", + "description": "Celociselna fixace v letech." + }, + "freeResources": { + "type": "integer", + "format": "int32", + "description": "Celociselne volne financne prostredky v CZK." + }, + "insurance": { + "type": "boolean", + "example": false, + "description": "Logicka hodnota pro pojisteni. Hodnota \"true\" znamena s pojistenim, \"false\" bez pojisteni." + }, + "loanAmount": { + "type": "integer", + "format": "int32", + "description": "Celociselna vyse uveru v CZK." + }, + "maturity": { + "type": "integer", + "format": "int32", + "description": "Celociselna splatnost v letech." + }, + "realtyAmount": { + "type": "integer", + "format": "int32", + "description": "Celociselna hodnota nemovitosti v CZK." + } + }, + "description": "Zadost o kalkulaci pro hypotecní kalkulacku." + }, + "MortgageCalculatorCalculationResponse": { + "type": "object", + "properties": { + "calculation": { + "description": "Kalkulace hypoteky pro hypotecni kalkulacku.", + "$ref": "#/definitions/MortgageCalculatorCalculation" + } + }, + "description": "Odpoved kalkulace pro hypotecni kalkulacku." + }, + "MortgageCalculatorSetup": { + "type": "object", + "required": [ + "amountRange", + "fixation", + "ltvRange", + "maturityRange", + "maxOffset" + ], + "properties": { + "amountRange": { + "description": "Celociselny uzavreny interval vyse uveru. [min, max]", + "$ref": "#/definitions/IntegerRange" + }, + "fixation": { + "type": "array", + "description": "Pole fixaci. Hodnoty fixací jsou cele cisla v letech.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "ltvRange": { + "description": "Celociselny uzavreny interval LTV. [min, max]", + "$ref": "#/definitions/IntegerRange" + }, + "maturityRange": { + "description": "Celociselny uzavreny interval doby splatnosti v rocich. [min, max]", + "$ref": "#/definitions/IntegerRange" + }, + "maxOffset": { + "type": "integer", + "format": "int32", + "description": "Maximalni celociselny offset." + } + }, + "description": "Parametre produktu pro hypotecni kalkulacku." + }, + "MortgageCalculatorSetupResponse": { + "type": "object", + "properties": { + "calculatorSetup": { + "description": "Parametre produktu pro hypoteku.", + "$ref": "#/definitions/MortgageCalculatorSetup" + } + }, + "description": "Odpoved s parametry produktu pro hypotecni kalkulacku." + }, + "MortgageListResponse": { + "type": "object", + "properties": { + "mortgageList": { + "type": "array", + "description": "Seznam objektu s hypotekou.", + "items": { + "$ref": "#/definitions/Mortgage" + } + } + } + }, + "MyDocument": { + "type": "object", + "properties": { + "creationDate": { + "type": "string", + "format": "date-time", + "description": "datum a cas vzniku dokumentu." + }, + "data": { + "type": "string", + "description": "data PDF v base64." + }, + "id": { + "type": "string", + "description": "Id dokumentu." + }, + "read": { + "type": "boolean", + "example": false, + "description": "Priznak zda je dokument precteny klientem." + }, + "text": { + "type": "string", + "description": "Nazev dokumentu." + } + } + }, + "NonPersonalizedEncryptedPayloadModel": { + "type": "object", + "properties": { + "adHocIndex": { + "type": "string" + }, + "applicationKey": { + "type": "string" + }, + "encryptedData": { + "type": "string" + }, + "ephemeralPublicKey": { + "type": "string" + }, + "mac": { + "type": "string" + }, + "macIndex": { + "type": "string" + }, + "nonce": { + "type": "string" + }, + "sessionIndex": { + "type": "string" + } + } + }, + "NotificationListResponse": { + "type": "object", + "properties": { + "loanNotifications": { + "type": "array", + "items": { + "$ref": "#/definitions/LoanNotification" + } + }, + "paymentNotifications": { + "type": "array", + "items": { + "$ref": "#/definitions/PaymentNotification" + } + } + } + }, + "NotificationReadRequest": { + "type": "object", + "properties": { + "loanNotificationId": { + "type": "integer", + "format": "int64", + "description": "interni id notifikace na uver po splatnosti, ktera ma byt oznacena jako prectena." + }, + "paymentNotificationId": { + "type": "integer", + "format": "int64", + "description": "interni id notifikace na neprovednou platbu, ktera ma byt oznacena jako prectena." + } + } + }, + "NotificationReadResponse": { + "type": "object" + }, + "Oauth2SendSmsRequest": { + "type": "object", + "required": [ + "applicationName", + "scope", + "state" + ], + "properties": { + "applicationName": { + "type": "string", + "description": "Nazev aplikace treti strany" + }, + "scope": { + "type": "string", + "description": "Pozadovany OAuth2 scope" + }, + "state": { + "type": "string", + "description": "Stav treti strany, ktery je take podepisovan" + } + } + }, + "Oauth2VerifySmsRequest": { + "type": "object", + "required": [ + "mobileKey", + "sendSmsParameters" + ], + "properties": { + "mobileKey": { + "type": "string", + "description": "mobilni klic" + }, + "sendSmsParameters": { + "description": "podepsana data", + "$ref": "#/definitions/Oauth2SendSmsRequest" + } + } + }, + "ObjectRequest«ActivationCreateRequest»": { + "type": "object", + "properties": { + "requestObject": { + "$ref": "#/definitions/ActivationCreateRequest" + } + } + }, + "ObjectRequest«ActivationStatusRequest»": { + "type": "object", + "properties": { + "requestObject": { + "$ref": "#/definitions/ActivationStatusRequest" + } + } + }, + "ObjectRequest«TokenCreateRequest»": { + "type": "object", + "properties": { + "requestObject": { + "$ref": "#/definitions/TokenCreateRequest" + } + } + }, + "ObjectRequest«TokenRemoveRequest»": { + "type": "object", + "properties": { + "requestObject": { + "$ref": "#/definitions/TokenRemoveRequest" + } + } + }, + "ObjectRequest«VaultUnlockRequest»": { + "type": "object", + "properties": { + "requestObject": { + "$ref": "#/definitions/VaultUnlockRequest" + } + } + }, + "ObjectResponse«ActivationCreateResponse»": { + "type": "object", + "properties": { + "responseObject": { + "$ref": "#/definitions/ActivationCreateResponse" + }, + "status": { + "type": "string" + } + } + }, + "ObjectResponse«ActivationRemoveResponse»": { + "type": "object", + "properties": { + "responseObject": { + "$ref": "#/definitions/ActivationRemoveResponse" + }, + "status": { + "type": "string" + } + } + }, + "ObjectResponse«ActivationStatusResponse»": { + "type": "object", + "properties": { + "responseObject": { + "$ref": "#/definitions/ActivationStatusResponse" + }, + "status": { + "type": "string" + } + } + }, + "ObjectResponse«TokenCreateResponse»": { + "type": "object", + "properties": { + "responseObject": { + "$ref": "#/definitions/TokenCreateResponse" + }, + "status": { + "type": "string" + } + } + }, + "ObjectResponse«TokenRemoveResponse»": { + "type": "object", + "properties": { + "responseObject": { + "$ref": "#/definitions/TokenRemoveResponse" + }, + "status": { + "type": "string" + } + } + }, + "ObjectResponse«VaultUnlockResponse»": { + "type": "object", + "properties": { + "responseObject": { + "$ref": "#/definitions/VaultUnlockResponse" + }, + "status": { + "type": "string" + } + } + }, + "ObjectResponse«string»": { + "type": "object", + "properties": { + "responseObject": { + "type": "string" + }, + "status": { + "type": "string" + } + } + }, + "Odpoved GetOpcRequest s vygenerovanym OPC (Opaque Payment Card)": { + "type": "object", + "required": [ + "cardDisplayName", + "cardNetwork", + "cardUserAddress", + "last4PanDigits", + "opc", + "tokenServiceProvider" + ], + "properties": { + "cardDisplayName": { + "type": "string", + "description": "card / list / creditCard | debitCard / name" + }, + "cardNetwork": { + "type": "string", + "description": "karetni asociace dane karty (VISA, MASTERCARD)", + "enum": [ + "MASTERCARD", + "VISA" + ] + }, + "cardUserAddress": { + "description": "Adresa drzitele karty", + "$ref": "#/definitions/CardUserAddress" + }, + "last4PanDigits": { + "type": "string", + "description": "Posledni 4 cislice PANu (cisla karty)" + }, + "opc": { + "type": "string", + "description": "vygenerovane OPC" + }, + "tokenServiceProvider": { + "type": "string", + "description": "id walet providera. V terminologii VISA to je: clientWalletProvider (Client Wallet Provider is the token requestor’s ID (TRID), which is returned to the WP as part of onboarding)." + } + } + }, + "Odpoved na pozadavek na statistiky odesilani push notifikaci": { + "type": "object", + "required": [ + "stats" + ], + "properties": { + "stats": { + "type": "array", + "description": "Seznam statistik pro jednotlive objednavky.", + "items": { + "$ref": "#/definitions/statistiky odesilani push notifikaci pro jednu objednavku." + } + } + } + }, + "Odpoved na registraci push tokenu": { + "type": "object" + }, + "Odpoved pro ulozeni akce na salespointu.": { + "type": "object" + }, + "Odpoved se seznamem salespointu": { + "type": "object", + "properties": { + "log": { + "type": "array", + "items": { + "$ref": "#/definitions/SalesPointLogItem" + } + }, + "salesPoints": { + "type": "array", + "items": { + "$ref": "#/definitions/SalesPoint" + } + }, + "smartLimit": { + "$ref": "#/definitions/SmartLimit" + } + } + }, + "OnBehalfGetActivationStatusRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "transactionId": { + "type": "integer", + "format": "int64", + "description": "ID transakce ziskane volanim /activation/onbehalf/init" + } + }, + "description": "Pozadavek pro ziskani stavu aktivace." + }, + "OnBehalfGetActivationStatusResponse": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "description": "Stav aktivace", + "enum": [ + "CREATED", + "OTP_USED", + "ACTIVE", + "BLOCKED", + "REMOVED" + ] + } + }, + "description": "Odpoved se stavem aktivace" + }, + "OnBehalfInitActivationRequest": { + "type": "object", + "description": "Pozadavek na zahajeni aktivace on-behalf" + }, + "OnBehalfInitActivationResponse": { + "type": "object", + "required": [ + "activationCode", + "transactionId" + ], + "properties": { + "activationCode": { + "type": "string", + "description": "Aktivacni kod pro zadani do Smartbanky nebo vygenerovani QR kodu" + }, + "transactionId": { + "type": "integer", + "format": "int64", + "description": "ID transakce. Toto ID je nutno posilat v dalsich volanich" + } + }, + "description": "Vysledek zahajeni aktivace on-behalf" + }, + "OnBehalfSendMobileKeyRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "transactionId": { + "type": "integer", + "format": "int64", + "description": "ID transakce" + } + }, + "description": "Pozadavek na odeslani mobilniho klice" + }, + "OnBehalfSendMobileKeyResponse": { + "type": "object", + "required": [ + "smsSendingResult" + ], + "properties": { + "smsSendingResult": { + "type": "string", + "description": "Vysledek odesilani SMS", + "enum": [ + "SMS_SENT", + "SMS_NOT_ENABLED" + ] + } + }, + "description": "Vysledek posilani mobilniho klice" + }, + "OnBehalfVerifyMobileKeyRequest": { + "type": "object", + "required": [ + "mobileKey", + "transactionId" + ], + "properties": { + "mobileKey": { + "type": "string", + "description": "Mobilni klic pro kontrolu" + }, + "transactionId": { + "type": "integer", + "format": "int64", + "description": "ID transakce ziskane volanim /activation/onbehalf/init" + } + } + }, + "OnBehalfVerifyMobileKeyResponse": { + "type": "object", + "properties": { + "activated": { + "type": "boolean", + "example": false, + "description": "Priznak zda se podarilo aktivaci dokoncit" + }, + "smsVerificationResult": { + "type": "string", + "description": "Vysledek overeni mobilniho klice", + "enum": [ + "OK", + "NOT_FOUND", + "WRONG_MK", + "WRONG_MK_LOCKED", + "SMS_TIMED_OUT" + ] + } + } + }, + "OpeningHoursWeek": { + "type": "object", + "properties": { + "monday": { + "type": "string", + "description": "Otevírací hodiny - pondělí" + }, + "tuesday": { + "type": "string", + "description": "Otevírací hodiny - úterý" + }, + "wednesday": { + "type": "string", + "description": "Otevírací hodiny - středa" + }, + "thursday": { + "type": "string", + "description": "Otevírací hodiny - čtvrtek" + }, + "friday": { + "type": "string", + "description": "Otevírací hodiny - pátek" + }, + "saturday": { + "type": "string", + "description": "Otevírací hodiny - sobota" + }, + "sunday": { + "type": "string", + "description": "Otevírací hodiny - neděle" + } + } + }, + "OptionsForConsolidationRequest": { + "type": "object", + "required": [ + "birthNumber" + ], + "properties": { + "birthNumber": { + "type": "string", + "description": "Birth number" + } + }, + "description": "pLoan options for consolidation data" + }, + "OptionsForConsolidationResponse": { + "type": "object", + "required": [ + "optionsForConsolidation" + ], + "properties": { + "optionsForConsolidation": { + "type": "array", + "description": "List of options for consolidation", + "items": { + "$ref": "#/definitions/OptionsForConsolidationResponseData" + } + } + }, + "description": "Options for consolidation details" + }, + "OptionsForConsolidationResponseData": { + "type": "object", + "required": [ + "initialAmount", + "issued", + "origin", + "type" + ], + "properties": { + "initialAmount": { + "type": "number", + "format": "double", + "description": "Initial amount" + }, + "instalment": { + "type": "number", + "format": "double", + "description": "Instalment" + }, + "issued": { + "type": "string", + "format": "date-time", + "description": "Issued" + }, + "numberOfInstalments": { + "type": "integer", + "format": "int64", + "description": "Number of instalments" + }, + "origin": { + "type": "string", + "description": "Origin" + }, + "type": { + "type": "string", + "description": "Type" + } + } + }, + "Overeni jmena a hesla uzivatele internet banky": { + "type": "object", + "properties": { + "credentials": { + "description": "Prihlasovaci udaje klienta", + "$ref": "#/definitions/Prihlasovaci udaje" + }, + "userId": { + "type": "integer", + "format": "int64", + "description": "Id overeneho uzivatele" + } + } + }, + "PLoanAmountRangeRequest": { + "type": "object", + "properties": { + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Product application id" + } + }, + "description": "Loan amount range" + }, + "PLoanAmountRangeResponse": { + "type": "object", + "properties": { + "amountFrom": { + "type": "number", + "description": "Loan from amount" + }, + "amountRequested": { + "type": "number", + "description": "Loan requested amount" + }, + "amountTo": { + "type": "number", + "description": "Loan to amount" + }, + "appKey": { + "type": "integer", + "format": "int64", + "description": "App key" + }, + "productVirtualCandidateKey": { + "type": "integer", + "format": "int64", + "description": "Product virtual candidate key" + }, + "termFrom": { + "type": "integer", + "format": "int64", + "description": "Possible term values from" + }, + "termTo": { + "type": "integer", + "format": "int64", + "description": "Possible term values to" + } + }, + "description": "pLoan amount range information from response class" + }, + "PLoanCalculationRequest": { + "type": "object", + "required": [ + "netMonthlyIncome" + ], + "properties": { + "branchCode": { + "type": "string", + "description": "Branch ID from HCisOM codetable." + }, + "loanAmount": { + "type": "number", + "example": 80000.0, + "description": "Requested loan amount. If left blank, the maximum loan amount will be computed. Minimum is 20000 and maximum is 500000." + }, + "netMonthlyIncome": { + "type": "number", + "example": 40000.0, + "description": "Client's net monthly income. Minimum is 0." + }, + "otherMonthlyPayments": { + "type": "integer", + "format": "int64", + "example": 20000, + "description": "Other monthly payments. Minimum is 0." + }, + "term": { + "type": "integer", + "format": "int64", + "example": 120, + "description": "Requested length of loan in months. Minimum is 24." + } + }, + "description": "pLoan calculation request" + }, + "PLoanCalculationResponse": { + "type": "object", + "required": [ + "annualRate", + "installmentAmount", + "loanAmount", + "maxLoanAmount", + "maxTerm", + "rpsn", + "term", + "totalAmount" + ], + "properties": { + "annualRate": { + "type": "number", + "example": 7.9, + "description": "Annual loan rate." + }, + "installmentAmount": { + "type": "number", + "example": 1395.0, + "description": "Monthly payment." + }, + "loanAmount": { + "type": "number", + "example": 80000.0, + "description": "Requested loan amount." + }, + "maxLoanAmount": { + "type": "number", + "example": 140000.0, + "description": "Max possible loan amount." + }, + "maxTerm": { + "type": "integer", + "format": "int64", + "example": 120, + "description": "Max length of loan in months." + }, + "rpsn": { + "type": "number", + "example": 8.94, + "description": "Computed RPSN." + }, + "term": { + "type": "integer", + "format": "int64", + "example": 120, + "description": "Requested length of loan in months." + }, + "totalAmount": { + "type": "number", + "example": 100702.0, + "description": "How much will payer really pay in total." + } + }, + "description": "pLoan calculation response" + }, + "PLoanConfigurationRequest": { + "type": "object", + "required": [ + "appKey", + "insuranceRequested", + "loanAmount", + "productVirtualCandidateKey", + "term" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "appKey" + }, + "insuranceRequested": { + "type": "boolean", + "example": false, + "description": "Insurance requested" + }, + "loanAmount": { + "type": "number", + "description": "loanAmount" + }, + "productVirtualCandidateKey": { + "type": "integer", + "format": "int64", + "description": "productVirtualCandidateKey" + }, + "term": { + "type": "integer", + "format": "int64", + "description": "term" + } + } + }, + "PLoanConfigurationResponse": { + "type": "object", + "required": [ + "insuranceMonthlyPayment", + "interestRate", + "originalInterestRate", + "productCandidateKey", + "rpsn", + "term", + "termFrom", + "termTo", + "totalAmount" + ], + "properties": { + "instalment": { + "type": "number", + "description": "Splatka" + }, + "insuranceMonthlyPayment": { + "type": "number", + "description": "Mesicni platba pojisteni" + }, + "interestRate": { + "type": "number", + "description": "Urokova mira" + }, + "lastInstalment": { + "type": "number", + "description": "Hodnota posledni splatky" + }, + "offerId": { + "type": "string", + "description": "offer id" + }, + "originalInterestRate": { + "type": "number", + "description": "Originalni urokova mira nezatizena jakymikoli slevami. Standardni slevy pocitat z teto sazby." + }, + "productCandidateKey": { + "type": "integer", + "format": "int64", + "description": "Identifikator produktoveho kandidata" + }, + "rpsn": { + "type": "number", + "description": "RPSN" + }, + "successfulApplicationRecalculation": { + "type": "boolean", + "example": false, + "description": "Uspesne prepocitani zadosti se zadanou slevou" + }, + "term": { + "type": "integer", + "format": "int64", + "description": "Doba splaceni" + }, + "termFrom": { + "type": "integer", + "format": "int64", + "description": "Doba splaceni od" + }, + "termTo": { + "type": "integer", + "format": "int64", + "description": "Doba splaceni do" + }, + "totalAmount": { + "type": "number", + "description": "Celkova castka" + } + }, + "description": "PLoan Configuration Response" + }, + "PLoanConfigurationWithExceptionRequest": { + "type": "object", + "required": [ + "appKey", + "existingClient", + "insuranceRequested", + "loanAmount", + "originalInterestRate", + "productPackageKey", + "productVirtualCandidateKey", + "requestedInterestRate", + "surcharge", + "term" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "appKey" + }, + "existingClient": { + "type": "boolean", + "example": false, + "description": "Client already exists in the MMB" + }, + "hyperDiscount": { + "type": "boolean", + "example": false, + "description": "Hyper sleva pro dorovnani konkurencni nabidky" + }, + "insuranceRequested": { + "type": "boolean", + "example": false, + "description": "Insurance requested" + }, + "loanAmount": { + "type": "number", + "description": "loanAmount" + }, + "offerId": { + "type": "string", + "description": "Zasifrovany identifikator nabidky slevy" + }, + "originalInterestRate": { + "type": "number", + "description": "Puvodni urokova mira" + }, + "productPackageKey": { + "type": "integer", + "format": "int64", + "description": "Identifikator produktoveho balicku" + }, + "productVirtualCandidateKey": { + "type": "integer", + "format": "int64", + "description": "productVirtualCandidateKey" + }, + "requestedInterestRate": { + "type": "number", + "description": "Pozadovana urokova mira" + }, + "status": { + "type": "string", + "description": "Stav zadosti", + "enum": [ + "IN_PROGRESS", + "IN_APPROVAL", + "BRIDGER", + "PARKING", + "AP", + "VERIFICATION", + "DOCUMENTS_MISSING", + "CONDITIONAL_APPROVAL", + "REJECTED", + "APPROVED", + "DONE", + "CANCELED", + "SCORING_PROCESS_ERROR", + "MANUAL_APPROVING", + "UNKNOWN" + ] + }, + "surcharge": { + "type": "boolean", + "example": false, + "description": "Surcharge requested" + }, + "term": { + "type": "integer", + "format": "int64", + "description": "term" + } + }, + "description": "pLoan configuration with exception request" + }, + "PLoanConfigurationWithExceptionResponse": { + "type": "object", + "required": [ + "insuranceMonthlyPayment", + "interestRate", + "originalInterestRate", + "productCandidateKey", + "rpsn", + "term", + "termFrom", + "termTo", + "totalAmount" + ], + "properties": { + "instalment": { + "type": "number", + "description": "Splatka" + }, + "insuranceMonthlyPayment": { + "type": "number", + "description": "Mesicni platba pojisteni" + }, + "interestRate": { + "type": "number", + "description": "Urokova mira" + }, + "lastInstalment": { + "type": "number", + "description": "Hodnota posledni splatky" + }, + "originalInterestRate": { + "type": "number", + "description": "Originalni urokova mira nezatizena jakymikoli slevami. Standardni slevy pocitat z teto sazby." + }, + "productCandidateKey": { + "type": "integer", + "format": "int64", + "description": "Identifikator produktoveho kandidata" + }, + "rpsn": { + "type": "number", + "description": "RPSN" + }, + "successfulApplicationRecalculation": { + "type": "boolean", + "example": false, + "description": "Uspesne prepocitani zadosti se zadanou slevou" + }, + "term": { + "type": "integer", + "format": "int64", + "description": "Doba splaceni" + }, + "termFrom": { + "type": "integer", + "format": "int64", + "description": "Doba splaceni od" + }, + "termTo": { + "type": "integer", + "format": "int64", + "description": "Doba splaceni do" + }, + "totalAmount": { + "type": "number", + "description": "Celkova castka" + } + } + }, + "PLoanContactIncomeCommitRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro ulozeni prijmu.", + "$ref": "#/definitions/PLoanContactIncomeForm" + }, + "saveOnly": { + "type": "boolean", + "example": false, + "description": "priznak zda se ma formular pouze ulozit a nebo zpracovat" + } + }, + "description": "Pozadavek na ulozeni prijmu." + }, + "PLoanContactIncomeCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "formular pro zadani zroje prijmu doplneny o validacni chyby. Pokud je vse ok je toto pole nevyplnene.", + "$ref": "#/definitions/PLoanContactIncomeForm" + } + }, + "description": "Odpoved na ulozeni prijmu." + }, + "PLoanContactIncomeForm": { + "type": "object", + "required": [ + "netMonthlyIncome" + ], + "properties": { + "netMonthlyIncome": { + "description": "Cisty prumerny mesicni prijem (brano za posledni 3 mesice).", + "$ref": "#/definitions/FormField«bigdecimal»" + } + }, + "description": "Formular pro ulozeni cisteho mesicniho prijmu do zadosti o PLoan - v pripade ze uzivatel vyplnuje i informace o zamestnavateli." + }, + "PLoanContactPersonalAddressCommitRequest": { + "type": "object", + "required": [ + "addressForm" + ], + "properties": { + "addressForm": { + "description": "formular s daty pro nastaveni adresy", + "$ref": "#/definitions/AddressForm" + }, + "saveOnly": { + "type": "boolean", + "example": false, + "description": "priznak zda se ma formular pouze ulozit a nebo zpracovat" + } + } + }, + "PLoanContactPersonalAddressCommitResponse": { + "type": "object", + "properties": { + "addressForm": { + "$ref": "#/definitions/AddressForm" + } + } + }, + "PLoanContactPersonalAddressSetupRequest": { + "type": "object" + }, + "PLoanContactPersonalAddressSetupResponse": { + "type": "object", + "properties": { + "contactAddress": { + "$ref": "#/definitions/Address" + }, + "differentContactAddress": { + "type": "boolean" + }, + "permanentAddress": { + "$ref": "#/definitions/Address" + }, + "salesboosterFormState": { + "type": "string", + "enum": [ + "OPENED", + "LOCKED", + "UNLOCKED" + ] + } + } + }, + "PLoanContactPersonalDependentsCommitRequest": { + "type": "object", + "required": [ + "personalInformationForm" + ], + "properties": { + "personalInformationForm": { + "description": "formular s parametry pro nastaveni osobnich informaci uzivatele", + "$ref": "#/definitions/PLoanPersonalInformationDependentsForm" + }, + "saveOnly": { + "type": "boolean", + "example": false, + "description": "priznak zda se ma formular pouze ulozit a nebo zpracovat" + } + } + }, + "PLoanContactPersonalDependentsCommitResponse": { + "type": "object", + "properties": { + "personalInformationForm": { + "$ref": "#/definitions/PLoanPersonalInformationDependentsForm" + } + } + }, + "PLoanContactPersonalDependentsSetupRequest": { + "type": "object" + }, + "PLoanContactPersonalDependentsSetupResponse": { + "type": "object", + "properties": { + "dependents": { + "type": "integer", + "format": "int64" + }, + "salesboosterFormState": { + "type": "string", + "enum": [ + "OPENED", + "LOCKED", + "UNLOCKED" + ] + } + } + }, + "PLoanContactPersonalEmployerAddress": { + "type": "object", + "properties": { + "country": { + "type": "string", + "description": "Stat adresy - cisleny kod z cisleniku HCisZeme." + }, + "descriptiveNumber": { + "type": "integer", + "format": "int32", + "description": "Cislo popisne." + }, + "orientationNumber": { + "type": "string", + "description": "Cislo orientacni." + }, + "street": { + "type": "string", + "description": "Ulice" + }, + "town": { + "type": "string", + "description": "Mesto" + }, + "zip": { + "type": "string", + "description": "PSC" + } + }, + "description": "Adresa zamestnavatele na zadosti o PLoan." + }, + "PLoanContactPersonalEmployerAddressForm": { + "type": "object", + "required": [ + "country", + "descriptiveNumber", + "orientationNumber", + "street", + "town", + "zip" + ], + "properties": { + "country": { + "description": "Stat adresy - cisleny kod z cisleniku HCisZeme.", + "$ref": "#/definitions/FormField«string»" + }, + "descriptiveNumber": { + "description": "Cislo popisne.", + "$ref": "#/definitions/FormField«int»" + }, + "orientationNumber": { + "description": "Cislo orientacni.", + "$ref": "#/definitions/FormField«string»" + }, + "street": { + "description": "Ulice", + "$ref": "#/definitions/FormField«string»" + }, + "town": { + "description": "Mesto", + "$ref": "#/definitions/FormField«string»" + }, + "zip": { + "description": "PSC", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro ulozeni adresy zamestnavatele do dat zadosti o PLoan." + }, + "PLoanContactPersonalEmployerCommitRequest": { + "type": "object", + "required": [ + "form", + "saveOnly" + ], + "properties": { + "form": { + "description": "Formular s daty o zamestnavateli.", + "$ref": "#/definitions/PLoanContactPersonalEmployerForm" + }, + "saveOnly": { + "type": "boolean", + "example": false, + "description": "Priznak zda chceme pouze data ulozit bez dalsiho zpracovani." + } + }, + "description": "Pozadavek na ulozeni informaci o zamestnavateli." + }, + "PLoanContactPersonalEmployerCommitResponse": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro zadani zroje prijmu doplneny o validacni chyby. Pokud je vse ok je toto pole nevyplnene.", + "$ref": "#/definitions/PLoanContactPersonalEmployerForm" + } + }, + "description": "Odpoved na pozadavek na ulozeni informaci o zamestnavateli." + }, + "PLoanContactPersonalEmployerForm": { + "type": "object", + "required": [ + "employerId", + "employerName" + ], + "properties": { + "employerAddress": { + "description": "Adresa zamestnavatele", + "$ref": "#/definitions/PLoanContactPersonalEmployerAddressForm" + }, + "employerId": { + "description": "ICO zamestnavatele", + "$ref": "#/definitions/FormField«string»" + }, + "employerName": { + "description": "Jmeno zamestnavatele", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro ulozeni informaci o zamestnavateli." + }, + "PLoanContactPersonalEmployerSetupRequest": { + "type": "object", + "description": "Pozadavek na nacteni informaci o zamestnavateli." + }, + "PLoanContactPersonalEmployerSetupResponse": { + "type": "object", + "properties": { + "employerAddress": { + "description": "Adresa zamestnavatele", + "$ref": "#/definitions/PLoanContactPersonalEmployerAddress" + }, + "employerId": { + "type": "string", + "description": "ICO zamestnavatele" + }, + "employerName": { + "type": "string", + "description": "Nazev zamestnavatele" + } + }, + "description": "Informace o zamestnavateli." + }, + "PLoanContactPersonalIncomeSourceCommitRequest": { + "type": "object", + "required": [ + "form", + "saveOnly" + ], + "properties": { + "form": { + "description": "Formular s daty o zdroji prijmu.", + "$ref": "#/definitions/PLoanContactPersonalIncomeSourceForm" + }, + "saveOnly": { + "type": "boolean", + "example": false, + "description": "Priznak zda chceme pouze data ulozit bez dalsiho zpracovani." + } + }, + "description": "Pozadavek na nacteni zdroje prijmu." + }, + "PLoanContactPersonalIncomeSourceCommitResponse": { + "type": "object", + "properties": { + "continueApplication": { + "type": "string", + "description": "Priznak zda je mozne dale pokracovat v zadosti.", + "enum": [ + "IMPOSSIBLE", + "BRANCH", + "OK" + ] + }, + "form": { + "description": "Formular pro zadani zroje prijmu doplneny o validacni chyby. Pokud je vse ok je toto pole nevyplnene.", + "$ref": "#/definitions/PLoanContactPersonalIncomeSourceForm" + } + }, + "description": "Pozadavek na nacteni zdroje prijmu." + }, + "PLoanContactPersonalIncomeSourceForm": { + "type": "object", + "properties": { + "employmentForPeriod": { + "description": "priznak zda je zamestnani na dobu urcitou, ma smysl jen pokud employmentType = employee", + "$ref": "#/definitions/FormField«boolean»" + }, + "employmentTo": { + "description": "datum konce zamestnani - dava smysl jen pokud employmentType = employee a employmentForPeriod = true", + "$ref": "#/definitions/FormField«date-time»" + }, + "employmentType": { + "description": "typ zamestnani (EMPLOYEE/ENTREPRENEUR/PENSIONER/OTHER)", + "$ref": "#/definitions/FormField«string»" + }, + "inTrialPeriod": { + "description": "priznak zda je ve zkusebni lhute, ma smysl jen pokud employmentType = employee", + "$ref": "#/definitions/FormField«boolean»" + }, + "onNotice": { + "description": "priznak zda je ve vypovedni lhute, ma smysl jen pokud employmentType = employee", + "$ref": "#/definitions/FormField«boolean»" + } + }, + "description": "Formular pro ulozeni zdroje prijmu." + }, + "PLoanContactPersonalIncomeSourceSetupRequest": { + "type": "object", + "description": "Pozadavek na nacteni zdroje prijmu." + }, + "PLoanContactPersonalIncomeSourceSetupResponse": { + "type": "object", + "properties": { + "employmentForPeriod": { + "type": "boolean", + "example": false, + "description": "priznak zda je zamestnani na dobu urcitou, ma smysl jen pokud employmentType = employee" + }, + "employmentTo": { + "type": "string", + "format": "date-time", + "description": "datum konce zamestnani - dava smysl jen pokud employmentType = employee a employmentForPeriod = true" + }, + "employmentType": { + "type": "string", + "description": "typ zamestnani (EMPLOYEE/ENTREPRENEUR/PENSIONER/OTHER)", + "enum": [ + "EMPLOYEE", + "ENTREPRENEUR", + "PENSIONER", + "OTHER" + ] + }, + "inTrialPeriod": { + "type": "boolean", + "example": false, + "description": "priznak zda je ve zkusebni lhute, ma smysl jen pokud employmentType = employee" + }, + "onNotice": { + "type": "boolean", + "example": false, + "description": "priznak zda je ve vypovedni lhute, ma smysl jen pokud employmentType = employee" + } + }, + "description": "Pozadavek na nacteni zdroje prijmu." + }, + "PLoanContactPersonalNameCommitRequest": { + "type": "object", + "required": [ + "personalInformationForm" + ], + "properties": { + "personalInformationForm": { + "description": "formular s parametry pro nastaveni osobnich informaci uzivatele", + "$ref": "#/definitions/PLoanPersonalInformationNameForm" + }, + "saveOnly": { + "type": "boolean", + "example": false, + "description": "priznak zda se ma formular pouze ulozit a nebo zpracovat" + } + } + }, + "PLoanContactPersonalNameCommitResponse": { + "type": "object", + "properties": { + "personalInformationForm": { + "$ref": "#/definitions/PLoanPersonalInformationNameForm" + } + } + }, + "PLoanContactPersonalNameSetupRequest": { + "type": "object" + }, + "PLoanContactPersonalNameSetupResponse": { + "type": "object", + "properties": { + "ploanPersonalNameData": { + "$ref": "#/definitions/PLoanPersonalNameData" + }, + "salesboosterFormState": { + "type": "string", + "enum": [ + "OPENED", + "LOCKED", + "UNLOCKED" + ] + } + } + }, + "PLoanContactPersonalSolvencyCommitRequest": { + "type": "object", + "required": [ + "personalInformationForm" + ], + "properties": { + "personalInformationForm": { + "description": "formular s parametry pro nastaveni osobnich informaci uzivatele", + "$ref": "#/definitions/PLoanPersonalInformationSolvencyForm" + }, + "saveOnly": { + "type": "boolean", + "example": false, + "description": "priznak zda se ma formular pouze ulozit a nebo zpracovat" + } + } + }, + "PLoanContactPersonalSolvencyCommitResponse": { + "type": "object", + "properties": { + "personalInformationForm": { + "$ref": "#/definitions/PLoanPersonalInformationSolvencyForm" + } + } + }, + "PLoanContactPersonalSolvencySetupRequest": { + "type": "object" + }, + "PLoanContactPersonalSolvencySetupResponse": { + "type": "object", + "required": [ + "extendedJobInfoNeeded", + "inTrialPeriod", + "netMonthlyIncome", + "onNotice", + "salesboosterFormState", + "show101Agreement" + ], + "properties": { + "extendedJobInfoNeeded": { + "type": "boolean", + "example": false, + "description": "Indikace, zda klient bude vyplnovat rozsirene informace o svem zamestnani" + }, + "inTrialPeriod": { + "type": "boolean", + "example": false, + "description": "je ve zkusebni dobe" + }, + "netMonthlyIncome": { + "type": "number", + "description": "Cisty mesicni prijem" + }, + "onNotice": { + "type": "boolean", + "example": false, + "description": "je ve vypovedni lhute" + }, + "salesboosterFormState": { + "type": "string", + "description": "Stav formulare", + "enum": [ + "OPENED", + "LOCKED", + "UNLOCKED" + ] + }, + "show101Agreement": { + "type": "boolean", + "example": false, + "description": "Byl udelen souhlas se 101" + } + } + }, + "PLoanContactPersonalWizardTypeRequest": { + "type": "object", + "description": "Pozadavek na zjisteni, kterym prubehem ma jit wizzard pro sjednani PLoanu s ohledem na informace o zamestnavateli." + }, + "PLoanContactPersonalWizardTypeResponse": { + "type": "object", + "properties": { + "additionalWizardParts": { + "type": "array", + "description": "Dodatkove rozsirujici casti wizzardu, ktere je nutne zobrazit.", + "items": { + "type": "string", + "enum": [ + "EMPLOYER" + ] + } + } + }, + "description": "Odpoved s informaci kterou cestou se dat ve wizzardu pro zadost o PLoan s ohledem na informace o zamestnavateli." + }, + "PLoanInsuranceVariant": { + "type": "object", + "properties": { + "insuranceCode": { + "type": "string", + "description": "kod pojisteni" + }, + "insuranceName": { + "type": "string", + "description": "Label k danemu pojisteni" + } + } + }, + "PLoanPersonalInformationDependentsForm": { + "type": "object", + "required": [ + "dependentPersons" + ], + "properties": { + "dependentPersons": { + "description": "pocet vyzivovanych osob", + "$ref": "#/definitions/FormField«long»" + } + }, + "description": "Formular pro nastaveni osobnich informaci o uzivateli." + }, + "PLoanPersonalInformationNameForm": { + "type": "object", + "required": [ + "firstName", + "lastName" + ], + "properties": { + "firstName": { + "description": "krestni jmeno", + "$ref": "#/definitions/FormField«string»" + }, + "lastName": { + "description": "prijmeni", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro nastaveni osobnich informaci o uzivateli." + }, + "PLoanPersonalInformationSolvencyForm": { + "type": "object", + "required": [ + "inTrialPeriod", + "netMonthIncome", + "onNotice" + ], + "properties": { + "inTrialPeriod": { + "description": "je ve zkusebni dobe", + "$ref": "#/definitions/FormField«boolean»" + }, + "netMonthIncome": { + "description": "cisty mesicni prijem", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "onNotice": { + "description": "je ve vypovedni lhute", + "$ref": "#/definitions/FormField«boolean»" + } + }, + "description": "Formular pro nastaveni osobnich informaci o uzivateli." + }, + "PLoanPersonalNameData": { + "type": "object", + "properties": { + "cif": { + "type": "string" + }, + "firstName": { + "type": "string" + }, + "instPtKey": { + "type": "integer", + "format": "int64" + }, + "lastName": { + "type": "string" + } + } + }, + "PLoanRequestInsuranceSetupRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "amount": { + "type": "number", + "description": "celkova splatna castka" + }, + "installmentAmount": { + "type": "number", + "description": "mesicni splatka" + }, + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "PLoanRequestInsuranceSetupResponse": { + "type": "object", + "properties": { + "buttonLabel": { + "type": "string", + "description": "Tlacitko" + }, + "insuranceVariants": { + "type": "array", + "description": "Moznosti pojisteni", + "items": { + "$ref": "#/definitions/PLoanInsuranceVariant" + } + }, + "note": { + "type": "string", + "description": "Poznamka" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + }, + "withoutInsuranceLabel": { + "type": "string", + "description": "Label volby bez pojisteni" + } + } + }, + "PLoanRequestParametersSetupRequest": { + "type": "object" + }, + "PLoanRequestParametersSetupResponse": { + "type": "object", + "properties": { + "accountLabel": { + "type": "string", + "description": "Label k uctu" + }, + "info": { + "type": "string", + "description": "Doplnkove informace." + }, + "repaymentDateLabel": { + "type": "string", + "description": "Label ke dni splatky" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "PasswordRenewalRequest": { + "type": "object", + "required": [ + "admUserPassword" + ], + "properties": { + "admUserPassword": { + "type": "string", + "description": "Zahashovane uzivatelske heslo" + } + }, + "description": "Pozadavek na obnovu hesla" + }, + "PasswordRenewalResponse": { + "type": "object", + "required": [ + "operationSuccessful" + ], + "properties": { + "operationSuccessful": { + "type": "boolean", + "example": false, + "description": "Vysledek operace obnovy hesla" + } + }, + "description": "Odpoved na obnovu hesla" + }, + "PaymentAmount": { + "type": "object", + "required": [ + "instructedAmount" + ], + "properties": { + "instructedAmount": { + "description": "Client instructed amount and currency", + "$ref": "#/definitions/Amount" + } + }, + "description": "Amount" + }, + "PaymentCommitRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "transactionId": { + "type": "string", + "description": "Id transakce vygenerovane ze zadaneho platebniho prikazu" + } + } + }, + "PaymentCommitResponse": { + "type": "object" + }, + "PaymentCreateRequest": { + "type": "object", + "required": [ + "paymentOrderForm" + ], + "properties": { + "paymentOrderForm": { + "description": "Vstupni formular pro zadani platby.", + "$ref": "#/definitions/PaymentOrderForm" + } + } + }, + "PaymentCreateResponse": { + "type": "object", + "properties": { + "paymentOrderForm": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/PaymentOrderForm" + }, + "transactionId": { + "type": "string", + "description": "Vygenerovane transactionId kterym se overuje pri commitu, ze se jedna stale o stejnou platbu. Vraci se pouze pokud byla validace formulare v poradku." + } + } + }, + "PaymentDeleteListRequest": { + "type": "object", + "required": [ + "accountId" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Account Id." + } + } + }, + "PaymentDeleteListResponse": { + "type": "object", + "required": [ + "paymentOrderDeletedList" + ], + "properties": { + "paymentOrderDeletedList": { + "type": "array", + "description": "Seznam odvolanych plateb.", + "items": { + "$ref": "#/definitions/PaymentOrderDeleted" + } + } + } + }, + "PaymentDeleteRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "transactionId": { + "type": "string", + "description": "Id transakce" + } + } + }, + "PaymentDeleteResponse": { + "type": "object", + "required": [ + "paymentDeleted" + ], + "properties": { + "paymentDeleted": { + "type": "boolean", + "example": false, + "description": "Priznak zruseni platby" + } + } + }, + "PaymentIdentification": { + "type": "object", + "properties": { + "endToEndIdentification": { + "type": "string", + "description": "Payer identification (SEPA transactions only)." + }, + "transactionIdentification": { + "type": "string", + "description": "Transaction unique identifier" + } + }, + "description": "Payment identification" + }, + "PaymentListRequest": { + "type": "object", + "required": [ + "transactionFilter" + ], + "properties": { + "transactionFilter": { + "description": "Filtr pro vyfiltrovani seznamu zadanych pozadavku.", + "$ref": "#/definitions/TransactionFilter" + } + }, + "description": "Objekt pro dotaz na seznam zadanych pozadavku" + }, + "PaymentListResponse": { + "type": "object", + "required": [ + "paymentOrderList" + ], + "properties": { + "paymentOrderList": { + "type": "array", + "description": "seznam zadanych pozadavku, pokud nejsou zadne podle seznamu dostupne, vraci se prazdny seznam.", + "items": { + "$ref": "#/definitions/PaymentOrder" + } + } + }, + "description": "Odpoved na seznam zadanych pozadavku" + }, + "PaymentNotification": { + "type": "object", + "required": [ + "amount", + "currencyCode", + "destinationAccountNumber", + "errorDescription", + "notificationId", + "originDate", + "paymentType", + "sourceAccountId", + "sourceAccountNumber", + "status" + ], + "properties": { + "amount": { + "type": "number", + "description": "castka notifikovane transakce" + }, + "currencyCode": { + "type": "string", + "description": "kod meny transakce" + }, + "destinationAccountNumber": { + "description": "cislo uctu, na ktery se mela transakce provest", + "$ref": "#/definitions/AccountNumber" + }, + "errorDescription": { + "type": "string", + "description": "popis chyby, pokud k ni doslo" + }, + "notificationId": { + "type": "integer", + "format": "int64", + "description": "interni id notifikace" + }, + "originDate": { + "type": "string", + "format": "date-time", + "description": "datum zadani pozadavku na transakci" + }, + "paymentType": { + "type": "string", + "description": "typ transakce" + }, + "sourceAccountId": { + "type": "string", + "description": "interni id uctu, ze ktereho byla transakce zadana" + }, + "sourceAccountNumber": { + "description": "cislo uctu, ze ktereho byla transakce zadana", + "$ref": "#/definitions/AccountNumber" + }, + "status": { + "type": "string", + "description": "status provedeni zadane transakce", + "enum": [ + "NEW", + "READ" + ] + }, + "type": { + "type": "string" + } + }, + "description": "Notifikace na neprovedenou platbu." + }, + "PaymentOrder": { + "type": "object", + "required": [ + "actions", + "amount", + "currencyCode", + "destinationAccountNumber", + "sourceAccountNumber", + "transactionId" + ], + "properties": { + "actions": { + "type": "array", + "description": "prava k budouci platbe (ArrayList s hodnotou PAYMENT_DELETE, nebo null)", + "items": { + "type": "string", + "enum": [ + "PAYMENT_CREATE", + "TEMPLATE_CREATE", + "STANDING_ORDER_CREATE", + "PAYMENT_DELETE", + "PAYMENT_RETURN", + "TRANSACTION_RECEIPT", + "CHANGE_CATEGORY", + "CHANGE_NOTE" + ] + } + }, + "amount": { + "type": "number", + "description": "castka prevodu" + }, + "constantSymbol": { + "type": "integer", + "format": "int64", + "description": "Konstantni symbol" + }, + "currencyCode": { + "type": "string", + "description": "kod meny" + }, + "destinationAccountBic": { + "type": "string", + "description": "BIC ciloveho uctu pokud se jedna o zahranicni platbu" + }, + "destinationAccountIban": { + "type": "string", + "description": "IBAN ciloveho uctu pokud se jedna o zahranicni platbu" + }, + "destinationAccountName": { + "type": "string", + "description": "jmeno protiuctu" + }, + "destinationAccountNumber": { + "description": "Cilovy ucet, tedy protiucet, na ktery se prostredky prevadeji", + "$ref": "#/definitions/AccountNumber" + }, + "dueDate": { + "type": "string", + "format": "date-time", + "description": "Datum splatnosti" + }, + "noteForPayer": { + "type": "string", + "description": "Zprava pro odesilatele" + }, + "noteForRecipient": { + "type": "string", + "description": "Zprava pro prijemce" + }, + "packageId": { + "type": "integer", + "format": "int64", + "description": "vsechny transakce jsou vzdy uzaverne v baliku provadenych transakci (package), packageId je interni identifikator tohoto package" + }, + "sourceAccountCustomName": { + "type": "string", + "description": "vlastni pojmenovani zdrojoveho uctu" + }, + "sourceAccountId": { + "type": "string", + "description": "interni id zdrojoveho uctu" + }, + "sourceAccountNumber": { + "description": "Pokud je vyplnene accountID, pak nemusi byt cislo debetniho uctu (uctu v bance) vyplnene. Source account je vzdy ucet ve zdejsi bance, smer platby urcuje atribut direction.", + "$ref": "#/definitions/AccountNumber" + }, + "specificSymbol": { + "type": "integer", + "format": "int64", + "description": "Specificky symbol" + }, + "statusId": { + "type": "string", + "description": "stav transakce namapovany z ciselniku ProcessRequestTransactionDetailedStatus a PaymentStatusForeign na zjednoduseny seznam stavu ProcessRequestTransactionStatus s hodnotami: REJECTED (zamitnute bankou), SENT (odeslena ke zpracovani), WAITING(cekajici na zpracovani), CANCELLED(zrusene klientem nebo bankou)", + "enum": [ + "REJECTED", + "SENT", + "WAITING", + "CANCELLED" + ] + }, + "statusText": { + "type": "string", + "description": "Popis stavu transakce" + }, + "transactionId": { + "type": "string", + "description": "cislo konkretni provedene transakace, ktere bylo prirazene pri zpracovani platby" + }, + "typeId": { + "type": "string", + "description": "Typ transakce", + "enum": [ + "PAYMENT_ORDER_DOMESTIC", + "PAYMENT_ORDER_FOREIGN", + "PAYMENT_ORDER_FOREIGN_IN", + "PAYMENT_ORDER_FOREIGN_OUT", + "STANDING_ORDER", + "PAYMENT_CARD", + "TELLER", + "INTEREST_FEES", + "INTEREST", + "INTEREST_LOAN", + "NON_FINANCIAL_TERM_DEPOSIT", + "NON_FINANCIAL_LOAN", + "OTHER_TERM_DEPOSIT", + "OTHER_FINANCIAL_LOAN", + "UNSPECIFIED", + "PRINCIPAL_TERM_DEPOSIT", + "PRINCIPAL_LOAN", + "FX_CONVERSION", + "BLOCKED_PAYMENT_CARD" + ] + }, + "variableSymbol": { + "type": "integer", + "format": "int64", + "description": "Variabilni symbol" + } + }, + "description": "Platebni prikaz pro jednu platbu" + }, + "PaymentOrderDeleted": { + "type": "object", + "required": [ + "amount", + "bornDate", + "currencyCode", + "destinationAccountNumber", + "sourceAccountNumber", + "transactionId" + ], + "properties": { + "amount": { + "type": "number", + "description": "castka prevodu" + }, + "bornDate": { + "type": "string", + "format": "date-time", + "description": "Datum vzniku transakce" + }, + "constantSymbol": { + "type": "integer", + "format": "int64", + "description": "Konstantni symbol" + }, + "currencyCode": { + "type": "string", + "description": "kod meny" + }, + "destinationAccountBic": { + "type": "string", + "description": "BIC ciloveho uctu pokud se jedna o zahranicni platbu" + }, + "destinationAccountIban": { + "type": "string", + "description": "IBAN ciloveho uctu pokud se jedna o zahranicni platbu" + }, + "destinationAccountName": { + "type": "string", + "description": "jmeno protiuctu" + }, + "destinationAccountNumber": { + "description": "Cilovy ucet, tedy protiucet, na ktery se prostredky prevadeji", + "$ref": "#/definitions/AccountNumber" + }, + "dueDate": { + "type": "string", + "format": "date-time", + "description": "Datum splatnosti" + }, + "noteForPayer": { + "type": "string", + "description": "Zprava pro odesilatele" + }, + "noteForRecipient": { + "type": "string", + "description": "Zprava pro prijemce" + }, + "packageId": { + "type": "integer", + "format": "int64", + "description": "vsechny transakce jsou vzdy uzaverne v baliku provadenych transakci (package), packageId je interni identifikator tohoto package" + }, + "sourceAccountId": { + "type": "string", + "description": "interni id zdrojoveho uctu" + }, + "sourceAccountNumber": { + "description": "Pokud je vyplnene accountID, pak nemusi byt cislo debetniho uctu (uctu v bance) vyplnene. Source account je vzdy ucet ve zdejsi bance, smer platby urcuje atribut direction.", + "$ref": "#/definitions/AccountNumber" + }, + "specificSymbol": { + "type": "integer", + "format": "int64", + "description": "Specificky symbol" + }, + "statusId": { + "type": "string", + "description": "stav transakce namapovany z ciselniku ProcessRequestTransactionDetailedStatus a PaymentStatusForeign na zjednoduseny seznam stavu ProcessRequestTransactionStatus s hodnotami: REJECTED (zamitnute bankou), SENT (odeslena ke zpracovani), WAITING(cekajici na zpracovani), CANCELLED(zrusene klientem nebo bankou)", + "enum": [ + "REJECTED", + "SENT", + "WAITING", + "CANCELLED" + ] + }, + "statusText": { + "type": "string", + "description": "Popis stavu transakce" + }, + "transactionId": { + "type": "string", + "description": "cislo konkretni provedene transakace, ktere bylo prirazene pri zpracovani platby" + }, + "typeId": { + "type": "string", + "description": "Typ transakce", + "enum": [ + "PAYMENT_ORDER_DOMESTIC", + "PAYMENT_ORDER_FOREIGN", + "PAYMENT_ORDER_FOREIGN_IN", + "PAYMENT_ORDER_FOREIGN_OUT", + "STANDING_ORDER", + "PAYMENT_CARD", + "TELLER", + "INTEREST_FEES", + "INTEREST", + "INTEREST_LOAN", + "NON_FINANCIAL_TERM_DEPOSIT", + "NON_FINANCIAL_LOAN", + "OTHER_TERM_DEPOSIT", + "OTHER_FINANCIAL_LOAN", + "UNSPECIFIED", + "PRINCIPAL_TERM_DEPOSIT", + "PRINCIPAL_LOAN", + "FX_CONVERSION", + "BLOCKED_PAYMENT_CARD" + ] + }, + "variableSymbol": { + "type": "integer", + "format": "int64", + "description": "Variabilni symbol" + } + }, + "description": "Obecny predek pro platebni prikaz a polozku v seznamu transakci obsahujici spolecne polozky." + }, + "PaymentOrderForm": { + "type": "object", + "required": [ + "amount", + "currencyCode", + "destinationAccountBank", + "destinationAccountNumber", + "destinationAccountPrefix", + "dueDate", + "repeatedPaymentPackageId", + "sourceAccountId" + ], + "properties": { + "amount": { + "description": "castka platby", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "categoryId": { + "description": "kategorie, do ktere klient transakci zaradil (viz /transaction/categories)", + "$ref": "#/definitions/FormField«long»" + }, + "constantSymbol": { + "description": "konstantni symbol", + "$ref": "#/definitions/FormField«long»" + }, + "currencyCode": { + "description": "kod meny platby", + "$ref": "#/definitions/FormField«string»" + }, + "destinationAccountBank": { + "description": "kod banky ciloveho cisla uctu", + "$ref": "#/definitions/FormField«int»" + }, + "destinationAccountNumber": { + "description": "cislo ciloveho cisla uctu", + "$ref": "#/definitions/FormField«long»" + }, + "destinationAccountPrefix": { + "description": "prefix ciloveho cisla uctu", + "$ref": "#/definitions/FormField«int»" + }, + "destinationName": { + "description": "jmeno protiuctu", + "$ref": "#/definitions/FormField«string»" + }, + "dueDate": { + "description": "datum splatnosti", + "$ref": "#/definitions/FormField«date-time»" + }, + "noteForPayer": { + "description": "zprava pro odesilatele", + "$ref": "#/definitions/FormField«string»" + }, + "noteForRecipient": { + "description": "zprava pro prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "packageId": { + "description": "id baliku, ve kterem se zadava vice plateb najednou", + "$ref": "#/definitions/FormField«long»" + }, + "repeatedPaymentPackageId": { + "type": "integer", + "format": "int64", + "description": "priznak zda se jedna o opakovanou platbu - opakovana platba je takova, ktera je zadana z historie plateb a nema zmemene ucty" + }, + "sourceAccountId": { + "description": "interni id zdrojoveho uctu", + "$ref": "#/definitions/FormField«string»" + }, + "specificSymbol": { + "description": "specificky symbol", + "$ref": "#/definitions/FormField«long»" + }, + "statusId": { + "description": "status provedeni platby", + "$ref": "#/definitions/FormField«int»" + }, + "templateId": { + "description": "id konkretni jedne transakce v ramci baliku plateb", + "$ref": "#/definitions/FormField«long»" + }, + "variableSymbol": { + "description": "variabilni symbol", + "$ref": "#/definitions/FormField«long»" + } + }, + "description": "Formular pro platebni prikaz" + }, + "PaymentSetup": { + "type": "object", + "required": [ + "minDateAllowed" + ], + "properties": { + "minDateAllowed": { + "type": "integer", + "format": "int64", + "description": "Nejblizsi mozne datum prvni platby trvaleho prikazu" + } + }, + "description": "Inicialni setup pro trvale prikazy, kterym se naplni formlure pred jeho zadanim." + }, + "PaymentSetupBankListResponse": { + "type": "object", + "required": [ + "bankList" + ], + "properties": { + "bankList": { + "type": "array", + "description": "seznam bank s kody bank, plnymi nazvy a alfa kody.", + "items": { + "$ref": "#/definitions/Bank" + } + } + } + }, + "PaymentSetupDueDateListRequest": { + "type": "object", + "properties": { + "endYear": { + "type": "integer", + "format": "int32", + "description": "Datum do ktereho se hledaji dostupne dny splatnostni, pokud neni vyplneno default je dnes + 1 rok" + }, + "startYear": { + "type": "integer", + "format": "int32", + "description": "Datum od ktereho se hledaji dostupne dny splatnostni, pokud neni vyplneno default je dnes" + } + } + }, + "PaymentSetupDueDateListResponse": { + "type": "object", + "required": [ + "dueDateList" + ], + "properties": { + "dueDateList": { + "type": "array", + "description": "seznam datumu splatnosti", + "items": { + "type": "string", + "format": "date-time" + } + } + } + }, + "PaymentSetupHolidayListRequest": { + "type": "object", + "properties": { + "endYear": { + "type": "integer", + "format": "int32", + "description": "Datum do ktereho se hledaji dny svatku, pokud neni vyplneno default je dnes + 1 rok" + }, + "startYear": { + "type": "integer", + "format": "int32", + "description": "Datum od ktereho se hledaji dny svatku, pokud neni vyplneno default je dnes" + } + } + }, + "PaymentSetupHolidayListResponse": { + "type": "object", + "required": [ + "holidayDateList" + ], + "properties": { + "holidayDateList": { + "type": "array", + "description": "seznam datumu svatku", + "items": { + "type": "string", + "format": "date-time" + } + } + } + }, + "PaymentSetupRecipientListRequest": { + "type": "object", + "required": [ + "searchedFragment" + ], + "properties": { + "searchedFragment": { + "type": "string", + "description": "vyhledavana cast uctu, muze to byt cislo uctu nebo jmeno uctu" + } + } + }, + "PaymentSetupRecipientListResponse": { + "type": "object", + "properties": { + "possibleRecipients": { + "type": "array", + "description": "seznam moznych uctu pro smerovani platby", + "items": { + "$ref": "#/definitions/Account" + } + } + } + }, + "PaymentSetupResponse": { + "type": "object", + "required": [ + "paymentSetup" + ], + "properties": { + "paymentSetup": { + "type": "array", + "description": "Seznam nastaveni platebnich prikazu pro jednotlive dostupne druhy transakci", + "items": { + "$ref": "#/definitions/PaymentSetup" + } + } + } + }, + "PaymentSignResponse": { + "type": "object" + }, + "PaymentTypeInformation": { + "type": "object", + "properties": { + "instructionPriority": { + "type": "string", + "description": "Instruction priority (standard priority will be used as a default value if not defined otherwise)", + "enum": [ + "NORM", + "HIGH" + ] + } + }, + "description": "Payment type" + }, + "PersonContactDirectChannelsForm": { + "type": "object", + "required": [ + "email", + "phoneNumber", + "phonePrefix" + ], + "properties": { + "email": { + "description": "email", + "$ref": "#/definitions/FormField«string»" + }, + "phoneNumber": { + "description": "telefonni cislo", + "$ref": "#/definitions/FormField«string»" + }, + "phonePrefix": { + "description": "predvolba statu telefonu", + "$ref": "#/definitions/FormField«string»" + } + } + }, + "PhoneContact": { + "type": "object", + "required": [ + "mobileOperator", + "name", + "phoneNumber" + ], + "properties": { + "mobileOperator": { + "type": "string", + "description": "Telefonni operator kontaktu", + "enum": [ + "O2", + "TMOBILE", + "VODAFONE" + ] + }, + "name": { + "type": "string", + "description": "Nazev kontaktu" + }, + "phoneNumber": { + "description": "Telefonni cislo kontaktu", + "$ref": "#/definitions/PhoneNumber" + } + } + }, + "PhoneNumber": { + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "Telefonni cislo napr. 603123456" + }, + "prefix": { + "type": "string", + "description": "Predcisli telefonniho cisla napr. +420" + } + }, + "description": "Phone number trida pro parametry telefonniho cisla" + }, + "PhoneVerificationForm": { + "type": "object", + "required": [ + "code" + ], + "properties": { + "code": { + "description": "mobilni kod pro overeni", + "$ref": "#/definitions/FormField«string»" + } + } + }, + "PlannedMaintenanceMessage": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Unikatni identifikator zpravy." + }, + "message": { + "type": "string", + "description": "Hlaska o blizicim se vypadku." + } + } + }, + "PloanApplicationDetail": { + "type": "object", + "required": [ + "appId", + "appKey", + "productClass", + "stateText", + "stateUfo" + ], + "properties": { + "appId": { + "type": "string", + "description": "Externi identifikator zadosti" + }, + "appKey": { + "type": "integer", + "format": "int64", + "description": "Klic zadosti o produkt z produktoveho balicku" + }, + "productClass": { + "type": "string", + "description": "Typ produktu" + }, + "stateText": { + "type": "string", + "description": "Textovy popis stavu zadosti" + }, + "stateUfo": { + "type": "string", + "description": "Ciselnikova hodnota stavu zadosti v UFO" + } + }, + "description": "Detail jedne zadosti z produktoveho balicku" + }, + "PointOfInterest": { + "type": "object", + "required": [ + "dateOfChange", + "latitude", + "longitude", + "pointOfInterestId", + "pointOfInterestType", + "state" + ], + "properties": { + "addressBuildingDescription": { + "type": "string", + "description": "Popis budovy" + }, + "addressCity": { + "type": "string", + "description": "Mesto" + }, + "addressStreet": { + "type": "string", + "description": "Ulice" + }, + "addressZip": { + "type": "string", + "description": "PSC" + }, + "bankAssistantCompany": { + "type": "boolean", + "example": false, + "description": "Zda je k dispozici asistent pro velke firmy" + }, + "cashless": { + "type": "boolean", + "example": false, + "description": "Zda je pobocka bezhotovostni" + }, + "contactPhone": { + "type": "string", + "description": "Telefonni kontakt" + }, + "dateEnd": { + "type": "string", + "format": "date-time", + "description": "Datum ukonceni provozu bankomatu" + }, + "dateOfChange": { + "type": "string", + "format": "date-time", + "description": "Datum posledni zmeny zaznamu" + }, + "dateStart": { + "type": "string", + "format": "date-time", + "description": "Datum spusteni bankomatu" + }, + "depositAtm": { + "type": "boolean", + "example": false, + "description": "Zda je bankomat depozitni - pro vklady hotovosti" + }, + "handicapAccess": { + "type": "boolean", + "example": false, + "description": "Zda ma pobocka bezbarierovy pristup" + }, + "latitude": { + "type": "number", + "format": "double", + "description": "Zemepisna sirka" + }, + "longitude": { + "type": "number", + "format": "double", + "description": "Zemepisna delka" + }, + "note": { + "type": "string", + "description": "Poznamka k pobocce" + }, + "openingHoursBranch": { + "description": "Oteviraci hodiny pobocky", + "$ref": "#/definitions/OpeningHoursWeek" + }, + "openingHoursTreasury": { + "description": "Oteviraci hodiny pokladny", + "$ref": "#/definitions/OpeningHoursWeek" + }, + "pointOfInterestId": { + "type": "string", + "description": "Id bodu zajmu" + }, + "pointOfInterestType": { + "type": "string", + "description": "Typ bodu zajmu", + "enum": [ + "ATM", + "BRANCH", + "ATMBRANCH" + ] + }, + "pointOfServiceLevels": { + "type": "array", + "description": "Druhy služeb poskytovaných na pobočce", + "items": { + "type": "string", + "enum": [ + "BANKER_BUSINESS", + "CORPORATE_BANKING_CENTER" + ] + } + }, + "salesRepresentative": { + "type": "string", + "description": "Jmeno odpovedneho vedouciho" + }, + "state": { + "type": "string", + "description": "Status bodu zajmu (ACTIVE)", + "enum": [ + "ACTIVE", + "NONACTIVE" + ] + } + } + }, + "PointOfInterestAddressValidityRequest": { + "type": "object", + "required": [ + "address" + ], + "properties": { + "address": { + "description": "Adresa ktera se bude kontrolovat, zda existuje", + "$ref": "#/definitions/Address" + } + } + }, + "PointOfInterestAddressValidityResponse": { + "type": "object", + "required": [ + "addressFound" + ], + "properties": { + "address": { + "description": "Adresa ktera byla dohledana na koncovem systemu banky, pokud byla nalezena, jinak null", + "$ref": "#/definitions/Address" + }, + "addressFound": { + "type": "boolean", + "example": false, + "description": "Priznak zda byla adresa nalezena na koncovem systemu banky" + } + } + }, + "PointOfInterestDetailResponse": { + "type": "object", + "properties": { + "pointOfInterest": { + "description": "Bod zajmu.", + "$ref": "#/definitions/PointOfInterest" + } + }, + "description": "Odpoved na detail duleziteho bodu." + }, + "PointOfInterestDistanceRequest": { + "type": "object", + "required": [ + "latitudePointOfInterest", + "latitudeUser", + "longitudePointOfInterest", + "longitudeUser" + ], + "properties": { + "latitudePointOfInterest": { + "type": "number", + "format": "double", + "description": "zemepisna sirka bodu zajmu" + }, + "latitudeUser": { + "type": "number", + "format": "double", + "description": "zemepisna sirka uzivatele" + }, + "longitudePointOfInterest": { + "type": "number", + "format": "double", + "description": "zemepisna delka bodu zajmu" + }, + "longitudeUser": { + "type": "number", + "format": "double", + "description": "zemepisna delka uzivatele" + } + } + }, + "PointOfInterestDistanceResponse": { + "type": "object", + "required": [ + "drivingTime", + "walkingTime" + ], + "properties": { + "drivingTime": { + "type": "integer", + "format": "int64", + "description": "doba presunu uzivatele k bodu zajmu autem" + }, + "walkingTime": { + "type": "integer", + "format": "int64", + "description": "doba presunu uzivatele k bodu zajmu chuzi" + } + } + }, + "PointOfInterestListRequest": { + "type": "object", + "properties": { + "dateOfChange": { + "type": "string", + "format": "date-time", + "description": "Minimalni datum posledni zmeny zaznamu" + }, + "poiType": { + "type": "string", + "description": "Typ bodu zajmu", + "enum": [ + "ATM", + "BRANCH", + "ATMBRANCH" + ] + }, + "state": { + "type": "string", + "description": "Stav bodu zajmu", + "enum": [ + "ACTIVE", + "NONACTIVE" + ] + } + } + }, + "PointOfInterestListResponse": { + "type": "object", + "required": [ + "pointsOfInterest" + ], + "properties": { + "pointsOfInterest": { + "type": "array", + "description": "seznam bodu zajmu", + "items": { + "$ref": "#/definitions/PointOfInterest" + } + } + } + }, + "PollingRequest": { + "type": "object", + "description": "request pro polovani" + }, + "PollingResponse": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "description": "Stav pollovani pro delsi vyhodnocovani", + "enum": [ + "PENDING", + "ACCEPTED", + "DENIED", + "CONDITIONAL_APPROVAL" + ] + } + } + }, + "PortalContactComplaintCreateRequest": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro zaslani stiznosti", + "$ref": "#/definitions/PortalContactComplaintForm" + } + }, + "description": "Odpoved pro reklamaci/stiznost." + }, + "PortalContactComplaintCreateResponse": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro zaslani stiznosti", + "$ref": "#/definitions/PortalContactComplaintForm" + } + }, + "description": "Zadost pro vytvoreni reklamace/stiznosti." + }, + "PortalContactComplaintForm": { + "type": "object", + "properties": { + "client": { + "type": "boolean", + "example": false, + "description": "Je nasim klientem. Klient = true, Neklient = false" + }, + "clientName": { + "description": "Jmeno a prijmeni", + "$ref": "#/definitions/FormField«string»" + }, + "description": { + "description": "Popis zasielanej spravy", + "$ref": "#/definitions/FormField«string»" + }, + "email": { + "description": "E-mail klienta", + "$ref": "#/definitions/FormField«string»" + }, + "identificationType": { + "type": "string", + "description": "Typ identifikacneho udaje klienta", + "enum": [ + "PERSONAL_IDENTIFICATION_NUMBER", + "IDENTIFICATION_NUMBER", + "CONTRACT_NUMBER", + "ACCOUNT_NUMBER" + ] + }, + "identityNumber": { + "description": "Identifikacni udaj klienta", + "$ref": "#/definitions/FormField«string»" + }, + "telephoneNumber": { + "description": "Telefonni cislo klienta s predvolbou (tvar: +420123456789)", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro zaslani stiznosti" + }, + "PortalContactEmailSendRequest": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro odeslani emailu.", + "$ref": "#/definitions/ContactEmailForm" + } + }, + "description": "Odeslani emailu." + }, + "PortalContactHelpCreateRequest": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro zaslani formularu potrebuju poradit", + "$ref": "#/definitions/PortalContactHelpForm" + } + }, + "description": "Zadost pro vytvoreni kontaktniho formulara potrebuju poradit." + }, + "PortalContactHelpCreateResponse": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro zaslani formularu potrebuju poradit", + "$ref": "#/definitions/PortalContactHelpForm" + } + }, + "description": "Odpoved pro zaslani pomoci." + }, + "PortalContactHelpForm": { + "type": "object", + "properties": { + "client": { + "type": "boolean", + "example": false, + "description": "Je nasim klientem. Klient = true, Neklient = false" + }, + "clientName": { + "description": "Jmeno a prijmeni", + "$ref": "#/definitions/FormField«string»" + }, + "description": { + "description": "Popis zasielanej spravy", + "$ref": "#/definitions/FormField«string»" + }, + "email": { + "description": "E-mail klienta", + "$ref": "#/definitions/FormField«string»" + }, + "identificationType": { + "type": "string", + "description": "Typ identifikacneho udaje klienta", + "enum": [ + "PERSONAL_IDENTIFICATION_NUMBER", + "IDENTIFICATION_NUMBER", + "CONTRACT_NUMBER", + "ACCOUNT_NUMBER" + ] + }, + "identityNumber": { + "description": "Identifikacni udaj klienta", + "$ref": "#/definitions/FormField«string»" + }, + "messageForRecipient": { + "type": "string", + "description": "Zprava prijemnce" + }, + "taskCategory": { + "type": "string", + "description": "Kategorie tasku" + }, + "taskSubcategory": { + "type": "string", + "description": "podkategorie tasku" + } + }, + "description": "Formular pro zaslani formularu potrebuju poradit." + }, + "PortalContactOmbudsmanCreateRequest": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro kontaktovani ombudsmana.", + "$ref": "#/definitions/PortalContactOmbudsmanForm" + } + }, + "description": "Dotaz pro vytvoreni dotazu na ombudsmana." + }, + "PortalContactOmbudsmanCreateResponse": { + "type": "object", + "properties": { + "form": { + "description": "Formular pro kontaktovani ombudsmana.", + "$ref": "#/definitions/PortalContactOmbudsmanForm" + } + }, + "description": "Odpoved na dotaz pro vytvoreni dotazu na ombudsmana." + }, + "PortalContactOmbudsmanForm": { + "type": "object", + "properties": { + "claimsNumber": { + "description": "Cislo vasi reklamace nebo stiznosti", + "$ref": "#/definitions/FormField«string»" + }, + "client": { + "type": "boolean", + "example": false, + "description": "Je nasim klientem. Klient = true, Neklient = false" + }, + "clientName": { + "description": "Jmeno a prijmeni", + "$ref": "#/definitions/FormField«string»" + }, + "description": { + "description": "Popis zasielanej spravy", + "$ref": "#/definitions/FormField«string»" + }, + "email": { + "description": "E-mail klienta", + "$ref": "#/definitions/FormField«string»" + }, + "identificationType": { + "type": "string", + "description": "Typ identifikacneho udaje klienta", + "enum": [ + "PERSONAL_IDENTIFICATION_NUMBER", + "IDENTIFICATION_NUMBER", + "CONTRACT_NUMBER", + "ACCOUNT_NUMBER" + ] + }, + "identityNumber": { + "description": "Identifikacni udaj klienta", + "$ref": "#/definitions/FormField«string»" + }, + "telephoneNumber": { + "description": "Telefonni cislo klienta s predvolbou (tvar: +420123456789)", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro kontaktovani ombudsmana." + }, + "PortalFeedbackCreateRequest": { + "type": "object", + "properties": { + "portalFeedbackForm": { + "description": "Formular pro vytvoreni zpetne vazby.", + "$ref": "#/definitions/PortalFeedbackForm" + } + }, + "description": "Zadost pro zaslani zpetne vazby." + }, + "PortalFeedbackCreateResponse": { + "type": "object", + "properties": { + "portalFeedbackForm": { + "description": "Formular pro vytvoreni zpetne vazby.", + "$ref": "#/definitions/PortalFeedbackForm" + } + }, + "description": "Odpoved pro zaslani zpetne vazby." + }, + "PortalFeedbackForm": { + "type": "object", + "properties": { + "clientFullName": { + "description": "Cele jmeno klienta.", + "$ref": "#/definitions/FormField«string»" + }, + "description": { + "description": "Popis zpetne vazby.", + "$ref": "#/definitions/FormField«string»" + }, + "email": { + "description": "E-mail klienta", + "$ref": "#/definitions/FormField«string»" + }, + "feedbackCode": { + "description": "Kod zpetne vazby.", + "$ref": "#/definitions/FormField«string»" + }, + "identificationType": { + "type": "string", + "description": "Typ identifikacniho udaje.", + "enum": [ + "PERSONAL_IDENTIFICATION_NUMBER", + "IDENTIFICATION_NUMBER", + "CONTRACT_NUMBER", + "ACCOUNT_NUMBER" + ] + }, + "identityNumber": { + "description": "Identifikacni udaj klienta.", + "$ref": "#/definitions/FormField«string»" + }, + "telephoneNumber": { + "description": "Telefonni cislo klienta s predvolbou. (tvar: +420123456789)", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro zaslani zpetne vazby." + }, + "PortalPLoanCalculatorCalculationRequest": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Vyse pujcky" + }, + "discountType": { + "type": "string", + "description": "Typ slevy" + }, + "insurance": { + "type": "boolean", + "example": false, + "description": "Pojisteni (schopnosti splacet)" + }, + "salesProductType": { + "type": "string", + "description": "Obchodni identifikace produktu" + }, + "termMonths": { + "type": "integer", + "format": "int32", + "description": "Doba splaceni [mesic]" + } + } + }, + "PortalPLoanCalculatorCalculationResponse": { + "type": "object", + "required": [ + "annualPercentageRatePercents", + "installmentAmount", + "interestRatePercents", + "totalAmount" + ], + "properties": { + "annualPercentageRatePercents": { + "type": "number", + "format": "double", + "description": "Rocni procentni sazba nakladu [%]" + }, + "arrangementFee": { + "type": "number", + "description": "Jednorazovy poplatek za sjednani" + }, + "installmentAmount": { + "type": "number", + "description": "Vyse splatky" + }, + "insurancePremium": { + "type": "number", + "description": "Celková vyse pojisteni (schopnosti splacet)" + }, + "interestRatePercents": { + "type": "number", + "format": "double", + "description": "Rocni urokova sazba [%]" + }, + "totalAmount": { + "type": "number", + "description": "Kolik klient celkem zaplati" + } + } + }, + "PortalSmeLendingCalculatorCalculationRequest": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Vyse pujcky" + }, + "insurance": { + "type": "boolean", + "example": false, + "description": "Pojisteni (schopnosti splacet)" + }, + "salesProductType": { + "type": "string", + "description": "Obchodni identifikace produktu" + }, + "termMonths": { + "type": "integer", + "format": "int32", + "description": "Doba splaceni [mesic]" + } + } + }, + "PortalSmeLendingCalculatorCalculationResponse": { + "type": "object", + "required": [ + "installmentAmount", + "interestRatePercents", + "totalAmount" + ], + "properties": { + "arrangementFee": { + "type": "number", + "description": "Jednorazovy poplatek za sjednani" + }, + "installmentAmount": { + "type": "number", + "description": "Vyse splatky" + }, + "insurancePremium": { + "type": "number", + "description": "Celková vyse pojisteni (schopnosti splacet)" + }, + "interestRatePercents": { + "type": "number", + "format": "double", + "description": "Rocni urokova sazba [%]" + }, + "totalAmount": { + "type": "number", + "description": "Kolik klient celkem zaplati" + } + } + }, + "Pozadavek na registraci noveho push tokenu k aktivaci. Aktivaci neni soucasti requestu ale bere se z hlavicek.": { + "type": "object", + "required": [ + "platform", + "token" + ], + "properties": { + "platform": { + "type": "string", + "description": "platforma [iOS,Android]" + }, + "token": { + "type": "string", + "description": "push token" + } + } + }, + "Pozadavek pro zalogovani pokusu o tokenizaci karty": { + "type": "object", + "required": [ + "attemptTime", + "cardId", + "tokenizationOk" + ], + "properties": { + "attemptTime": { + "type": "string", + "format": "date-time", + "description": "Cas pokusu o tokenizaci." + }, + "cardId": { + "type": "integer", + "format": "int64", + "description": "id karty (/card/list@(creditCards|debitCards)/cardId -UDEBS id) u niz doslo k pokusu o tokenizaci." + }, + "errorMessage": { + "type": "string", + "description": "Chybova hlaska. Pouze kvuli zalogovani do CBL journalu." + }, + "errorReasonCode": { + "type": "string", + "description": "Kod chyby. Pouze kvuli zalogovani do CBL journalu." + }, + "tokenizationOk": { + "type": "boolean", + "example": false, + "description": "Priznak zda pokus o tokenizaci dopadl uspesne (true) nebo neuspesne (false)." + }, + "walletId": { + "type": "string", + "description": "Id mobilni penezenky." + } + } + }, + "PreContractConsentsForm": { + "type": "object", + "required": [ + "consentPrecontract", + "consentShippingAddress" + ], + "properties": { + "consentPrecontract": { + "description": "predsmluvni souhlas", + "$ref": "#/definitions/FormField«boolean»" + }, + "consentShippingAddress": { + "description": "potvrzeni spravnosti kontaktni adresy", + "$ref": "#/definitions/FormField«boolean»" + } + } + }, + "Prihlasovaci udaje": { + "type": "object", + "properties": { + "authenticationToken": { + "type": "string", + "description": "token s heslem" + }, + "username": { + "type": "string", + "description": "prihlasovaci jmeno" + } + } + }, + "Probe": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "message": { + "type": "string", + "description": "Dalsi doplnujici (volitelne) informace o probehnute kontrole/testu, jako napr. cas sondy, nebo v pripade chyby popis konktretniho problemu." + }, + "status": { + "type": "string", + "description": "Stav kontroly, OK nebo ERROR.", + "enum": [ + "OK", + "ERROR" + ] + } + } + }, + "ProcessStatusRequest": { + "type": "object", + "required": [ + "appKey", + "sessionId" + ], + "properties": { + "appKey": { + "type": "string", + "description": "Identifikator zadosti of cif" + }, + "sessionId": { + "type": "string", + "description": "Identifikator komunikace s Kontomatikem" + } + }, + "description": "Pozadavek na stav vytezovani dat z internetoveho bankovnictvi klienta" + }, + "ProcessStatusResponse": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Popis" + }, + "status": { + "type": "string", + "description": "Stav", + "enum": [ + "LOADING", + "LOADED", + "LOADING_ERROR", + "LOADING_TIMEOUT", + "KONTOMATIK_EXCEPTION", + "STORING", + "STORED", + "STORING_ERROR", + "VALIDATING", + "VALID", + "NOT_VALID", + "SCORING", + "SCORING_FINISHED", + "SCORING_ERROR", + "NO_VALID_ACCOUNTS", + "NOT_VALID_XML", + "FE_ERROR" + ] + } + }, + "description": "Stav vytezovani dat z internetoveho bankovnictvi klienta" + }, + "ProdPackageApplicationDetailRequest": { + "type": "object", + "required": [ + "prodPackageKey" + ], + "properties": { + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku" + } + }, + "description": "Pozadavek na detail zadosti z produktoveho balicku" + }, + "ProdPackageApplicationDetailResponse": { + "type": "object", + "required": [ + "applicationDetails" + ], + "properties": { + "applicationDetails": { + "type": "array", + "description": "Seznam s detaily vsech zadosti z produktoveho balicku", + "items": { + "$ref": "#/definitions/PloanApplicationDetail" + } + } + }, + "description": "Odpoved s detaily vsech zadosti z produktoveho balicku" + }, + "ProductApplicationBrokerRequest": { + "type": "object", + "required": [ + "addressContSince", + "birthCountry", + "birthNumber", + "birthPlace", + "branchID", + "consolidationRequested", + "dependPersonsCount", + "educationType", + "email", + "employmentId", + "employmentName", + "employmentSince", + "employmentTrial", + "employmentType", + "expressOnly", + "firstName", + "housingType", + "idCard2Number", + "idCard2Type", + "idCard2ValidTo", + "idCardNumber", + "idCardValidTo", + "incomeAverageThreeMonths", + "incomeDocumentType", + "incomeDocumentVerified", + "incomeFamily", + "incomesCount", + "lastName", + "loanAmount", + "loanDeferredInstalmentMonths", + "loanInstalmentAmount", + "loanInsuranceType", + "loanRegularInstalmentDay", + "loanTerm", + "maritalAssets", + "maritalStateVerification", + "maritalStatus", + "nationality", + "occupation", + "otherLifeCosts", + "payoutsOutsideMoneta", + "permanentAddress", + "phoneNumber" + ], + "properties": { + "addressContSince": { + "type": "string", + "format": "date-time", + "description": "Datum od kdy klient zije na dane adrese" + }, + "birthCountry": { + "type": "string", + "description": "Zeme narozeni" + }, + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "birthPlace": { + "type": "string", + "description": "Misto narozeni" + }, + "branchID": { + "type": "integer", + "format": "int64", + "description": "Id pobocky Moneta, na ktere klient pujcku sjednava" + }, + "brokerId": { + "type": "string", + "description": "Identifikacni kod brokera" + }, + "cifId": { + "type": "string", + "description": "Identifikator existujiciho klenta (CIF). Je prazdny, pokud jde o noveho klienta." + }, + "consolidationRequested": { + "type": "integer", + "format": "int64", + "description": "Priznak, zda ma klient zajem o konsolidaci" + }, + "deliveryAddress": { + "description": "Dorucovaci adresa", + "$ref": "#/definitions/AddressPLoan" + }, + "dependPersonsCount": { + "type": "integer", + "format": "int64", + "description": "Pocet vyzivovanych osob v domacnosti" + }, + "educationType": { + "type": "string", + "description": "Typ dosazeneho vzdelani" + }, + "email": { + "type": "string", + "description": "Email" + }, + "employerAddress": { + "description": "Adresa zamestnavatele", + "$ref": "#/definitions/AddressPLoan" + }, + "employerPhoneNumber": { + "type": "string", + "description": "Telefonni cislo na zamestnavatele" + }, + "employmentId": { + "type": "string", + "description": "Identifikacni cislo zamestnavatele" + }, + "employmentName": { + "type": "string", + "description": "Jmeno/nazev zamestnavatele" + }, + "employmentNotice": { + "type": "integer", + "format": "int64", + "description": "Priznak, zda je klient aktualne ve vypovedni lhute - status(0 = false, 1 = true)" + }, + "employmentSince": { + "type": "string", + "format": "date-time", + "description": "Datum nastupu do zamestnani (aktualniho)" + }, + "employmentTrial": { + "type": "integer", + "format": "int64", + "description": "Priznak, zda je klient aktualne ve zkusebni dobe - status(0 = false, 1 = true)" + }, + "employmentType": { + "type": "string", + "description": "Typ zamestnaneckeho pomeru klienta" + }, + "employmentUntil": { + "type": "string", + "format": "date-time", + "description": "Datum konce vypovedni lhuty" + }, + "expressOnly": { + "type": "boolean", + "example": false, + "description": "Priznak, zda se jedna pouze o Express pujcku, bez vytvareni jinych bankovnich produktu" + }, + "familyBusiness": { + "type": "boolean", + "example": false, + "description": "Priznak, jestli se jedna o rodinny podnik" + }, + "firstName": { + "type": "string", + "description": "Jmeno klienta" + }, + "housingType": { + "type": "string", + "description": "Typ bydleni" + }, + "idCard2Number": { + "type": "string", + "description": "Cislo druheho dokladu" + }, + "idCard2Type": { + "type": "string", + "description": "Typ druheho osobniho dokladu" + }, + "idCard2ValidTo": { + "type": "string", + "format": "date-time", + "description": "Platnost druheho dokladu" + }, + "idCardNumber": { + "type": "string", + "description": "Cislo obcanskeho prukazu" + }, + "idCardValidTo": { + "type": "string", + "format": "date-time", + "description": "Platnost obcanskeho prukazu" + }, + "incomeAverageThreeMonths": { + "type": "number", + "description": "Prumerny prijem pocitany z poslednich 3 mesicu" + }, + "incomeDocumentType": { + "type": "string", + "description": "Typ dokumentu dokladajicich prijem" + }, + "incomeDocumentVerified": { + "type": "boolean", + "example": false, + "description": "Potvrzeni o overeni dokladu o prijmech" + }, + "incomeFamily": { + "type": "number", + "description": "Celkovy prijem domacnosti" + }, + "incomesCount": { + "type": "integer", + "format": "int64", + "description": "Pocet prijmu domacnosti" + }, + "lastName": { + "type": "string", + "description": "Prijmeni klienta" + }, + "loanAmount": { + "type": "number", + "description": "Vyse pujcky" + }, + "loanDeferredInstalmentMonths": { + "type": "integer", + "format": "int64", + "description": "Pocet mesicu pro odlozeni splatky" + }, + "loanInstalmentAmount": { + "type": "number", + "description": "Vyse splatky" + }, + "loanInsuranceType": { + "type": "string", + "description": "Typ pojisteni k pujcce" + }, + "loanRegularInstalmentDay": { + "type": "integer", + "format": "int64", + "description": "Den splatnosti splatek" + }, + "loanTerm": { + "type": "integer", + "format": "int64", + "description": "Pocet mesicnich splatek" + }, + "maritalAssets": { + "type": "string", + "description": "Rodinny stav" + }, + "maritalStateVerification": { + "type": "string", + "description": "Overeni rodinneho stavu" + }, + "maritalStatus": { + "type": "string", + "description": "Rodinny stav" + }, + "nationality": { + "type": "string", + "description": "Narodnost klienta" + }, + "occupation": { + "type": "string", + "description": "Obor ve kterem klient pracuje" + }, + "otherLifeCosts": { + "type": "integer", + "format": "int64", + "description": "Dalsi zivotni naklady" + }, + "payingTaxInCR": { + "type": "boolean", + "example": false, + "description": "Priznak, zda klient plati dane v Ceske republice" + }, + "payoutsOutsideMoneta": { + "type": "integer", + "format": "int64", + "description": "Vyse mesicnich splatek mimo Monetu" + }, + "permanentAddress": { + "description": "Adresa trvaleho bydliste", + "$ref": "#/definitions/AddressPLoan" + }, + "phoneNumber": { + "type": "string", + "description": "Telefonni cislo" + }, + "profitPercentage": { + "type": "number", + "description": "Procento zisku" + }, + "securityCode": { + "type": "string", + "description": "Bezpecnostni kod zadany bankerem" + }, + "securityComment": { + "type": "string", + "description": "Dodatecne informace k zadani bezpecnostniho kodu" + }, + "securityReason": { + "type": "string", + "description": "Oduvodneni zadani bezpecnostniho kodu" + }, + "taxBase": { + "type": "number", + "description": "Zaklad dane za posledni zdanovaci obdobi (radek 104) v Kc" + }, + "taxToPayLastYear": { + "type": "number", + "description": "Zbyva doplatit (radek 91) v Kc" + }, + "taxYear": { + "type": "integer", + "format": "int64", + "description": "Rok posledniho zdanovaciho obdobi" + }, + "taxableIncomeLastYear": { + "type": "number", + "description": "Prijmy (radek 101) v Kc" + } + }, + "description": "Informace pro produktovou zadost o klientovi a jeho zamestnavateli pro brokery" + }, + "ProductApplicationRequest": { + "type": "object", + "required": [ + "addressContSince", + "birthCountry", + "birthNumber", + "birthPlace", + "branchID", + "consolidationRequested", + "dependPersonsCount", + "educationType", + "email", + "employmentId", + "employmentName", + "employmentSince", + "employmentTrial", + "employmentType", + "expressOnly", + "firstName", + "housingType", + "idCard2Type", + "idCardNumber", + "idCardValidTo", + "incomeAverageThreeMonths", + "incomeDocumentType", + "incomeDocumentVerified", + "incomeFamily", + "incomesCount", + "lastName", + "loanAmount", + "loanDeferredInstalmentMonths", + "loanInstalmentAmount", + "loanInsuranceType", + "loanRegularInstalmentDay", + "loanTerm", + "maritalAssets", + "maritalStateVerification", + "maritalStatus", + "nationality", + "occupation", + "otherLifeCosts", + "payoutsOutsideMoneta", + "permanentAddress", + "phoneNumber" + ], + "properties": { + "addressContSince": { + "type": "string", + "format": "date-time", + "description": "Datum od kdy klient zije na dane adrese" + }, + "birthCountry": { + "type": "string", + "description": "Zeme narozeni" + }, + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "birthPlace": { + "type": "string", + "description": "Misto narozeni" + }, + "branchID": { + "type": "integer", + "format": "int64", + "description": "Id pobocky Moneta, na ktere klient pujcku sjednava" + }, + "brokerId": { + "type": "string", + "description": "Identifikacni kod brokera" + }, + "cifId": { + "type": "string", + "description": "Identifikator existujiciho klenta (CIF). Je prazdny, pokud jde o noveho klienta." + }, + "consolidationRequested": { + "type": "integer", + "format": "int64", + "description": "Priznak, zda ma klient zajem o konsolidaci" + }, + "deliveryAddress": { + "description": "Dorucovaci adresa", + "$ref": "#/definitions/AddressPLoan" + }, + "dependPersonsCount": { + "type": "integer", + "format": "int64", + "description": "Pocet vyzivovanych osob v domacnosti" + }, + "educationType": { + "type": "string", + "description": "Typ dosazeneho vzdelani" + }, + "email": { + "type": "string", + "description": "Email" + }, + "employerAddress": { + "description": "Adresa zamestnavatele", + "$ref": "#/definitions/AddressPLoan" + }, + "employerPhoneNumber": { + "type": "string", + "description": "Telefonni cislo na zamestnavatele" + }, + "employmentId": { + "type": "string", + "description": "Identifikacni cislo zamestnavatele" + }, + "employmentName": { + "type": "string", + "description": "Jmeno/nazev zamestnavatele" + }, + "employmentNotice": { + "type": "integer", + "format": "int64", + "description": "Priznak, zda je klient aktualne ve vypovedni lhute - status(0 = false, 1 = true)" + }, + "employmentSince": { + "type": "string", + "format": "date-time", + "description": "Datum nastupu do zamestnani (aktualniho)" + }, + "employmentTrial": { + "type": "integer", + "format": "int64", + "description": "Priznak, zda je klient aktualne ve zkusebni dobe - status(0 = false, 1 = true)" + }, + "employmentType": { + "type": "string", + "description": "Typ zamestnaneckeho pomeru klienta" + }, + "employmentUntil": { + "type": "string", + "format": "date-time", + "description": "Datum konce vypovedni lhuty" + }, + "expressOnly": { + "type": "boolean", + "example": false, + "description": "Priznak, zda se jedna pouze o Express pujcku, bez vytvareni jinych bankovnich produktu" + }, + "familyBusiness": { + "type": "boolean", + "example": false, + "description": "Priznak, jestli se jedna o rodinny podnik" + }, + "firstName": { + "type": "string", + "description": "Jmeno klienta" + }, + "housingType": { + "type": "string", + "description": "Typ bydleni" + }, + "idCard2Type": { + "type": "string", + "description": "Typ druheho osobniho dokladu" + }, + "idCardNumber": { + "type": "string", + "description": "Cislo obcanskeho prukazu" + }, + "idCardValidTo": { + "type": "string", + "format": "date-time", + "description": "Platnost obcanskeho prukazu" + }, + "incomeAverageThreeMonths": { + "type": "number", + "description": "Prumerny prijem pocitany z poslednich 3 mesicu" + }, + "incomeDocumentType": { + "type": "string", + "description": "Typ dokumentu dokladajicich prijem" + }, + "incomeDocumentVerified": { + "type": "boolean", + "example": false, + "description": "Potvrzeni o overeni dokladu o prijmech" + }, + "incomeFamily": { + "type": "number", + "description": "Celkovy prijem domacnosti" + }, + "incomesCount": { + "type": "integer", + "format": "int64", + "description": "Pocet prijmu domacnosti" + }, + "lastName": { + "type": "string", + "description": "Prijmeni klienta" + }, + "loanAmount": { + "type": "number", + "description": "Vyse pujcky" + }, + "loanDeferredInstalmentMonths": { + "type": "integer", + "format": "int64", + "description": "Pocet mesicu pro odlozeni splatky" + }, + "loanInstalmentAmount": { + "type": "number", + "description": "Vyse splatky" + }, + "loanInsuranceType": { + "type": "string", + "description": "Typ pojisteni k pujcce" + }, + "loanRegularInstalmentDay": { + "type": "integer", + "format": "int64", + "description": "Den splatnosti splatek" + }, + "loanTerm": { + "type": "integer", + "format": "int64", + "description": "Pocet mesicnich splatek" + }, + "maritalAssets": { + "type": "string", + "description": "Rodinny stav" + }, + "maritalStateVerification": { + "type": "string", + "description": "Overeni rodinneho stavu" + }, + "maritalStatus": { + "type": "string", + "description": "Rodinny stav" + }, + "nationality": { + "type": "string", + "description": "Narodnost klienta" + }, + "occupation": { + "type": "string", + "description": "Obor ve kterem klient pracuje" + }, + "otherLifeCosts": { + "type": "integer", + "format": "int64", + "description": "Dalsi zivotni naklady" + }, + "payingTaxInCR": { + "type": "boolean", + "example": false, + "description": "Priznak, zda klient plati dane v Ceske republice" + }, + "payoutsOutsideMoneta": { + "type": "integer", + "format": "int64", + "description": "Vyse mesicnich splatek mimo Monetu" + }, + "permanentAddress": { + "description": "Adresa trvaleho bydliste", + "$ref": "#/definitions/AddressPLoan" + }, + "phoneNumber": { + "type": "string", + "description": "Telefonni cislo" + }, + "profitPercentage": { + "type": "number", + "description": "Procento zisku" + }, + "securityCode": { + "type": "string", + "description": "Bezpecnostni kod zadany bankerem" + }, + "securityComment": { + "type": "string", + "description": "Dodatecne informace k zadani bezpecnostniho kodu" + }, + "securityReason": { + "type": "string", + "description": "Oduvodneni zadani bezpecnostniho kodu" + }, + "taxBase": { + "type": "number", + "description": "Zaklad dane za posledni zdanovaci obdobi (radek 104) v Kc" + }, + "taxToPayLastYear": { + "type": "number", + "description": "Zbyva doplatit (radek 91) v Kc" + }, + "taxYear": { + "type": "integer", + "format": "int64", + "description": "Rok posledniho zdanovaciho obdobi" + }, + "taxableIncomeLastYear": { + "type": "number", + "description": "Prijmy (radek 101) v Kc" + } + }, + "description": "Informace o klientovi a jeho zamestnavateli pro ucely zalozeni produktu expres pujcka." + }, + "ProductApplicationResponse": { + "type": "object", + "properties": { + "necessaryToManuallyEnrollTaxJurisdiction": { + "type": "boolean", + "example": false, + "description": "V pripade neuspesneho oznameni danove jurisdikce je potreba provest oznameni rucne v UFO OPS" + }, + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku, ktery obsahuje pouze expres pujcku" + }, + "secondProdPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo druheho produktoveho balicku, ktery obsahuje ostatni bankovni produkty" + } + }, + "description": "Odpoved na vytvoreni produktove zadosti" + }, + "ProductApplicationStatusRequest": { + "type": "object", + "required": [ + "prodPackageKey" + ], + "properties": { + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "ID of request for product application status check" + } + }, + "description": "pLoan check product application progress status request" + }, + "ProductApplicationStatusResponse": { + "type": "object", + "properties": { + "documentsRequiredOnlyPoiFlag": { + "type": "integer", + "format": "int64", + "description": "Priznak, zda chybejici dokument je pouze potvrzeni o prijmu" + }, + "expressmanAllowed": { + "type": "boolean", + "example": false, + "description": "Informace, jestli se klient muze proti vysledku skoringu odvolat" + }, + "reason": { + "description": "Reason info of final status", + "$ref": "#/definitions/DecisionReason" + }, + "status": { + "type": "string", + "description": "HUB application status", + "enum": [ + "IN_PROGRESS", + "IN_APPROVAL", + "BRIDGER", + "PARKING", + "AP", + "VERIFICATION", + "DOCUMENTS_MISSING", + "CONDITIONAL_APPROVAL", + "REJECTED", + "APPROVED", + "DONE", + "CANCELED", + "SCORING_PROCESS_ERROR", + "MANUAL_APPROVING", + "UNKNOWN" + ] + } + }, + "description": "Check of product application status" + }, + "ProductConfig": { + "type": "object", + "properties": { + "interestRate": { + "type": "number" + }, + "maxAmount": { + "type": "integer", + "format": "int32" + }, + "minAmount": { + "type": "integer", + "format": "int32" + }, + "monthlyFee": { + "type": "number" + } + } + }, + "ProductDetail": { + "type": "object", + "required": [ + "productCode", + "productGroup", + "productNameFull", + "productNameShort" + ], + "properties": { + "productCode": { + "type": "string", + "description": "kod produktu" + }, + "productGroup": { + "type": "string", + "description": "Kategorie produktu, do ktere produkt spada: LOAN, LOAN_PLUS, OTHER", + "enum": [ + "LOAN", + "LOAN_PLUS", + "OTHER" + ] + }, + "productNameFull": { + "type": "string", + "description": "Dlouhy popisek produktu" + }, + "productNameShort": { + "type": "string", + "description": "Kratky popisek produktu" + } + } + }, + "ProductPackageCancelRequest": { + "type": "object", + "required": [ + "productPackageKeys" + ], + "properties": { + "productPackageKeys": { + "type": "array", + "description": "List of product package keys in NAS", + "items": { + "type": "integer", + "format": "int64" + } + } + }, + "description": "Request for cancellation of all product packages in NAS specified by IDs in the list" + }, + "ProgressSettings": { + "type": "object", + "properties": { + "availableAt": { + "type": "integer", + "format": "int64", + "description": "Datum a cas, kdy ma opet cenu se vratit do zadosti a zkusit se doptat na vysledek. Bude vyplnen pouze v pripade LONG_TERM_PROCESS." + }, + "delay": { + "type": "integer", + "format": "int64", + "description": "Pocet sekund po kterem se zkusit opet doptat na vysledek. Bude vyplnen pouze v pripade IN_PROGRESS." + }, + "reasonCode": { + "type": "string", + "description": "Kod duvodu kvuli kteremu bude vyseledek nedostupny po delsi dobu. Na zaklade tohoto klodu se zobrazuje zadateli textace z JSON. Bude vyplnen pouze v pripade LONG_TERM_PROCESS." + } + } + }, + "PsdPaymentInfoResponse": { + "type": "object", + "properties": { + "amount": { + "description": "Amount", + "$ref": "#/definitions/PaymentAmount" + }, + "chargeBearer": { + "type": "string", + "description": "Fee payer", + "enum": [ + "SHA", + "OUR", + "BEN" + ] + }, + "creditor": { + "type": "string", + "description": "Recipient" + }, + "creditorAccount": { + "description": "Recipient's account", + "$ref": "#/definitions/RelatedPartyAccount" + }, + "creditorAgent": { + "description": "Recipient's bank", + "$ref": "#/definitions/SimpleFinancialInstitutionIdentification" + }, + "debtorAccount": { + "description": "Payer's account", + "$ref": "#/definitions/RelatedPartyAccount" + }, + "instructionStatus": { + "type": "string", + "description": "Payment instruction status. RJCT - Payment initiation or individual transaction included in the payment initiation has been rejected. FOR_SIGNING - Payment has been initialised and it is waiting to be signed. ACSP - All preceding checks such as technical validation and customer were successful and therefore the payment initiation has been accepted for execution. ACSC - Settlement on the debotor´s account has been completed. Usage: this can be used by the agent to report to the debtor that the transaction has been completed. Warning: this status is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement. CANCELLED - Payment has been cancelled by the client.", + "enum": [ + "RJCT", + "FOR_SIGNING", + "ACSP", + "ACSC", + "CANCELLED" + ] + }, + "paymentIdentification": { + "description": "Payment identification", + "$ref": "#/definitions/PaymentIdentification" + }, + "paymentTypeInformation": { + "description": "Payment type", + "$ref": "#/definitions/PaymentTypeInformation" + }, + "remittanceInformation": { + "description": "Payment remittance information", + "$ref": "#/definitions/RemittanceInformation" + }, + "requestedExecutionDate": { + "type": "string", + "format": "date", + "description": "Requested execution date" + }, + "transactionConfirmation": { + "type": "string", + "description": "Email or fax to send transaction confirmation to in case of foreign payment." + } + }, + "description": "Payment details response" + }, + "PutForeignPaymentTemplateRequest": { + "type": "object", + "required": [ + "templateId" + ], + "properties": { + "foreignOrderCreateRequest": { + "$ref": "#/definitions/ForeignOrderCreateRequest" + }, + "form": { + "$ref": "#/definitions/ForeignPaymentTemplateForm" + }, + "intraBankPaymentCreateRequest": { + "$ref": "#/definitions/IntraBankPaymentCreateRequest" + }, + "sepaPaymentCreateRequest": { + "$ref": "#/definitions/SepaPaymentCreateRequest" + }, + "templateId": { + "type": "integer", + "format": "int64", + "description": "ID sablony k uprave, pokud neni vyplneno, zaklada se nova sablona." + } + } + }, + "PutForeignPaymentTemplateResponse": { + "type": "object", + "properties": { + "foreignOrderCreateResponse": { + "$ref": "#/definitions/ForeignOrderCreateResponse" + }, + "form": { + "$ref": "#/definitions/ForeignPaymentTemplateForm" + }, + "intraBankPaymentCreateResponse": { + "$ref": "#/definitions/IntraBankPaymentCreateResponse" + }, + "sepaPaymentCreateResponse": { + "$ref": "#/definitions/SepaPaymentCreateResponse" + }, + "transactionId": { + "type": "string" + } + } + }, + "RedirectView": { + "type": "object", + "properties": { + "applicationContext": { + "$ref": "#/definitions/ApplicationContext" + }, + "attributesMap": { + "type": "object" + }, + "beanName": { + "type": "string" + }, + "contentType": { + "type": "string" + }, + "exposePathVariables": { + "type": "boolean" + }, + "hosts": { + "type": "array", + "items": { + "type": "string" + } + }, + "propagateQueryProperties": { + "type": "boolean" + }, + "redirectView": { + "type": "boolean" + }, + "requestContextAttribute": { + "type": "string" + }, + "staticAttributes": { + "type": "object" + }, + "url": { + "type": "string" + } + } + }, + "ReindexingClientDocsRequest": { + "type": "object", + "required": [ + "birthNumber", + "dmsDocTypeId", + "docCardTypeId", + "documentPhotos", + "firstName", + "lastName" + ], + "properties": { + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "cifId": { + "type": "string", + "description": "CIF klienta" + }, + "dmsDocTypeId": { + "type": "string", + "description": "Id obecneho typu dokumentu in DMS. (e.g. nabidky, dokumenty prokazujici prijem, ...)" + }, + "docCardTypeId": { + "type": "string", + "description": "Id konkretniho typu dokumentu. (e.g. POP, OP, ...)" + }, + "documentPhotos": { + "type": "array", + "description": "Ofocene dokumenty", + "items": { + "$ref": "#/definitions/DmsDocumentPhoto" + } + }, + "firstName": { + "type": "string", + "description": "Jmeno" + }, + "lastName": { + "type": "string", + "description": "Prijmeni" + } + }, + "description": "DMS reindexace ofocenych dokumentu klienta" + }, + "ReindexingResponse": { + "type": "object", + "required": [ + "dmsDocTypeId", + "docCardTypeId", + "docItemType", + "status" + ], + "properties": { + "cmid": { + "type": "string", + "description": "Cmid jiz reindexovaneho dokumentu" + }, + "dmsDocTypeId": { + "type": "string", + "description": "Id obecneho typu dokumentu in DMS. (e.g. nabidky, dokumenty prokazujici prijem, ...)" + }, + "docCardTypeId": { + "type": "string", + "description": "Id konkretniho typu dokumentu. (e.g. POP, OP, ...)" + }, + "docItemType": { + "type": "string", + "description": "Typ polozky v DMS . (e.g. dokument klienta, dokument zadosti, dokument zamestnance ...)" + }, + "status": { + "type": "string", + "description": "Status, jak dopadla reindexace.)", + "enum": [ + "REINDEXING_DONE", + "REINDEXING_IN_PROGRESS", + "REINDEXING_ERROR" + ] + } + }, + "description": "Obsahuje informace o reindexaci." + }, + "RelatedPartyAccount": { + "type": "object", + "required": [ + "identification" + ], + "properties": { + "currency": { + "type": "string", + "description": "Currency" + }, + "identification": { + "description": "Account identification", + "$ref": "#/definitions/DebtorIdentification" + } + }, + "description": "Debtor's or creditor's account" + }, + "RemittanceInformation": { + "type": "object", + "properties": { + "structured": { + "description": "Structured message for the recipient - constant, variable and specific symbol", + "$ref": "#/definitions/StructuredRemittanceInformation" + }, + "unstructured": { + "type": "string", + "description": "Unstructured message for the recipient" + } + }, + "description": "Payment information" + }, + "Request na digitilizaci platebni karty": { + "type": "object", + "required": [ + "cardId", + "deviceId", + "nonce", + "nonceSignature", + "publicCertificates", + "walletId" + ], + "properties": { + "cardId": { + "type": "integer", + "format": "int64", + "description": "Interni ID karty v UDEBS - z /card/list[(creditCards|debitCards)/cardId]" + }, + "deviceId": { + "type": "string", + "description": "ID zarizeni - ziskane v mobilni aplikaci" + }, + "nonce": { + "type": "string", + "format": "byte" + }, + "nonceSignature": { + "type": "string", + "format": "byte" + }, + "publicCertificates": { + "type": "array", + "description": "Pole base64 polozek. Kazda polozka je public certificate ( DER encoded X.509)", + "items": { + "type": "array", + "items": { + "type": "string", + "format": "byte" + } + } + }, + "walletId": { + "type": "string", + "description": "ID walletu - ziskane v mobilni aplikaci" + } + } + }, + "Request pro ziskani IDcka a URL passu pro pojisteni.": { + "type": "object", + "required": [ + "contractNumber" + ], + "properties": { + "contractNumber": { + "type": "integer", + "format": "int64", + "description": "Cislo pojistne smlouvy, pro ktere chceme ziskat pass kit." + } + } + }, + "Requets objekt pro dotazeni loga karty.": { + "type": "object", + "required": [ + "logoId", + "logoWidth" + ], + "properties": { + "logoId": { + "type": "string", + "description": "Id loga karty" + }, + "logoWidth": { + "type": "integer", + "format": "int32", + "description": "Rozliseni loga karty" + } + } + }, + "RequiredDocumentsRequest": { + "type": "object", + "properties": { + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Key of product package" + } + }, + "description": "get list of required documents" + }, + "RequiredDocumentsResponse": { + "type": "object", + "properties": { + "docTypes": { + "type": "array", + "description": "Types of ducuments", + "items": { + "type": "string" + } + } + }, + "description": "Response list of required documents." + }, + "Response objekt pro dotazen i loga karty.": { + "type": "object", + "required": [ + "cardLogo" + ], + "properties": { + "cardLogo": { + "description": "Objekt obsahujici verzi loga, logo a mimetype", + "$ref": "#/definitions/Card logo class containing logo version, logo data and mimetype of logo" + } + } + }, + "Response s IDckem a URL passu pro pojisteni.": { + "type": "object", + "required": [ + "downloadUrl", + "passId" + ], + "properties": { + "downloadUrl": { + "type": "string", + "description": "URL pro stazeni mobile passu." + }, + "passId": { + "type": "string", + "description": "Unikatni ID passu pro pojisteni." + } + } + }, + "ResponseConsent": { + "type": "object", + "properties": { + "consentAuditFlag": { + "type": "boolean", + "example": false, + "description": "Příznak, zda je třeba nový souhlas od klienta za daný byznys podle GDPR." + }, + "consentType": { + "type": "string", + "description": "Typ souhlasu.", + "enum": [ + "REGR_CBCB", + "REGR_CNCB", + "REGR_SOLUS_NEGATIVE", + "REGR_TELCOSCORE", + "IDENT_PAPERSCOPY", + "COMM_BANKSECRET_UNSECURED", + "MKTG_BYONLINE", + "MKTG_BYEMAIL", + "MKTG_BYPOST", + "MKTG_BYTEXTMSG", + "MKTG_BYPHONE", + "MKTG_BYSURVEY", + "IDENT_DATAPROCESSING", + "MKTG_BYALL" + ] + }, + "consentValue": { + "type": "boolean", + "example": false, + "description": "true = souhlas udelen." + } + }, + "description": "Souhlas klienta - odpoved." + }, + "ResponseEntity": { + "type": "object", + "properties": { + "body": { + "type": "object" + }, + "statusCode": { + "type": "string", + "enum": [ + "100", + "101", + "102", + "103", + "200", + "201", + "202", + "203", + "204", + "205", + "206", + "207", + "208", + "226", + "300", + "301", + "302", + "303", + "304", + "305", + "307", + "308", + "400", + "401", + "402", + "403", + "404", + "405", + "406", + "407", + "408", + "409", + "410", + "411", + "412", + "413", + "414", + "415", + "416", + "417", + "418", + "419", + "420", + "421", + "422", + "423", + "424", + "426", + "428", + "429", + "431", + "451", + "500", + "501", + "502", + "503", + "504", + "505", + "506", + "507", + "508", + "509", + "510", + "511" + ] + }, + "statusCodeValue": { + "type": "integer", + "format": "int32" + } + } + }, + "RestResponse«AccTypeSwitchCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AccTypeSwitchCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«AccTypeSwitchPreviewResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AccTypeSwitchPreviewResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«AccTypeSwitchSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AccTypeSwitchSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«AccountListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AccountListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«AccountOperationsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AccountOperationsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«AcquisitionAccountResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AcquisitionAccountResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«AdditionalAccountInfoResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AdditionalAccountInfoResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ApplePayEncryptPaymentDataResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ApplePayEncryptPaymentDataResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ApplicationStateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ApplicationStateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«AppointmentCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AppointmentCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«AsyncPollingResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AsyncPollingResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«AtmServicePackagesSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AtmServicePackagesSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«AvailabeAccountsForSwitchingResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AvailabeAccountsForSwitchingResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«AvailableStatementsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/AvailableStatementsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«BalanceGetResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/BalanceGetResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«BankApiAccountsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/BankApiAccountsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«BankApiBanksResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/BankApiBanksResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«BankApiLoginDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/BankApiLoginDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«BankApiTransactionsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/BankApiTransactionsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«BenePlusBalanceResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/BenePlusBalanceResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«BranchesResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/BranchesResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«BrokerValidationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/BrokerValidationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CacheLoadResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CacheLoadResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CallbackResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CallbackResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CanceledApplicationStateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CanceledApplicationStateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CarCalculatorCalculationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CarCalculatorCalculationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CarCalculatorSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CarCalculatorSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CarVinInformationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CarVinInformationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«Card3DSecureInfoResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/Card3DSecureInfoResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CardBlockResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CardBlockResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CardListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CardListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CardPaymentCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CardPaymentCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CardPaymentCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CardPaymentCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CardSettingsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CardSettingsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CardTokenListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CardTokenListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CardTokenResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CardTokenResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CardTransactionBlockResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CardTransactionBlockResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CardUnblockResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CardUnblockResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ChangeAccountCustomNameResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ChangeAccountCustomNameResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CheckApplicationWorkflowStateRequest»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CheckApplicationWorkflowStateRequest" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CheckForUpdateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CheckForUpdateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CheckSignedDocumentsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CheckSignedDocumentsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CifStatusResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CifStatusResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CifUpdatePLoanResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CifUpdatePLoanResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ClientCheckResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ClientCheckResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ClientDetailsFormResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ClientDetailsFormResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ClientInfoFormResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ClientInfoFormResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ClientPLoanResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ClientPLoanResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CodetableValuesResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CodetableValuesResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CommitForeignPaymentTemplateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CommitForeignPaymentTemplateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CommonLoanCalculatorSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CommonLoanCalculatorSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CompanySearchResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CompanySearchResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ConfigResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ConfigResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ConsentListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ConsentListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ConsentSaveResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ConsentSaveResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ConsultantsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ConsultantsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreateFraudTaskResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreateFraudTaskResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardAccountNumberValidationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardAccountNumberValidationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardActivationCodeCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardActivationCodeCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardActivationCodeSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardActivationCodeSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardActiveBonusPackageResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardActiveBonusPackageResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardAvailableBonusPackagesResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardAvailableBonusPackagesResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardBillingParametersCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardBillingParametersCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardBillingParametersSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardBillingParametersSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardBonusPackageCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardBonusPackageCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardBonusPackageSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardBonusPackageSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardCheckSignedDocumentsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardCheckSignedDocumentsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardClientCheckResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardClientCheckResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardCreateProductApplicationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardCreateProductApplicationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardFinishContractCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardFinishContractCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardFinishContractSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardFinishContractSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardFinishPrecontractCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardFinishPrecontractCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardFinishPrecontractSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardFinishPrecontractSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardFinishSignResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardFinishSignResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardFoundResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardFoundResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardGeneratedDocumentsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardGeneratedDocumentsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardGetApplicationStateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardGetApplicationStateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardLimitCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardLimitCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardLimitSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardLimitSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalContactAddressCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalContactAddressCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalContactAddressSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalContactAddressSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalDependentsCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalDependentsCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalDependentsSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalDependentsSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalEmployerCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalEmployerCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalEmployerSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalEmployerSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalHouseholdSolvencyCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalHouseholdSolvencyCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalHouseholdSolvencySetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalHouseholdSolvencySetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalIncomeSourceCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalIncomeSourceCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalIncomeSourceSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalIncomeSourceSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalKOCriteriaCheckResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalKOCriteriaCheckResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalNameCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalNameCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalNameSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalNameSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalPermanentAddressCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalPermanentAddressCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalPermanentAddressSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalPermanentAddressSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalScoringInfoCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalScoringInfoCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalScoringInfoSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalScoringInfoSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalSolvencyCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalSolvencyCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardPersonalSolvencySetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardPersonalSolvencySetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardProductPrintReadyResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardProductPrintReadyResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardProductScoringStatusResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardProductScoringStatusResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardRequestCancelResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardRequestCancelResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardRequestCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardRequestCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardRequestDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardRequestDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardRequestScoringAgreementCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardRequestScoringAgreementCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardRequestScoringCheckResultResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardRequestScoringCheckResultResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardRequestScoringCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardRequestScoringCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardRequestScoringInstallmentConfirmationCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardRequestScoringInstallmentConfirmationCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardSalesPointProductListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardSalesPointProductListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardSignAppDocumentsDescriptionsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardSignAppDocumentsDescriptionsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardStatementRepaymentResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardStatementRepaymentResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«CreditCardTransactionListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/CreditCardTransactionListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DebitCardTransactionListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DebitCardTransactionListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DeleteAccountRegistrationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DeleteAccountRegistrationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DeleteForeignPaymentTemplateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DeleteForeignPaymentTemplateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DirectDebitCreateCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DirectDebitCreateCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DirectDebitCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DirectDebitCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DirectDebitDeleteResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DirectDebitDeleteResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DirectDebitEditCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DirectDebitEditCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DirectDebitEditResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DirectDebitEditResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DirectDebitListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DirectDebitListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DirectDebitSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DirectDebitSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DmsAppDocUploadResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DmsAppDocUploadResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DmsUploadResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DmsUploadResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DocumentGetResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DocumentGetResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DocumentListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DocumentListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«DocumentReadCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/DocumentReadCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«EAutoLoginResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/EAutoLoginResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«EmailExpressContractCopyResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/EmailExpressContractCopyResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«EmployerFormPLoanResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/EmployerFormPLoanResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«EmployerInfoResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/EmployerInfoResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«EmptyResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/EmptyResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExchangeRateListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExchangeRateListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanBillingCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanBillingCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanBillingSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanBillingSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanCalculatorCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanCalculatorCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanCalculatorRecalculateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanCalculatorRecalculateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanCalculatorSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanCalculatorSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanFinishContractCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanFinishContractCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanFinishContractSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanFinishContractSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanFinishPrecontractCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanFinishPrecontractCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanFinishPrecontractSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanFinishPrecontractSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanFinishSignResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanFinishSignResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanGetApplicationStateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanGetApplicationStateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanInsuranceCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanInsuranceCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanInsuranceSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanInsuranceSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalContactAddressCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalContactAddressCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalContactAddressSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalContactAddressSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalDependentsCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalDependentsCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalDependentsSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalDependentsSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalEmployerCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalEmployerCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalEmployerSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalEmployerSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalHouseholdExpensesCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalHouseholdExpensesCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalHouseholdExpensesSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalHouseholdExpensesSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalHouseholdSolvencyCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalHouseholdSolvencyCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalHouseholdSolvencySetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalHouseholdSolvencySetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalIncomeSourceCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalIncomeSourceCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalIncomeSourceSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalIncomeSourceSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalPermanentAddressCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalPermanentAddressCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalPermanentAddressSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalPermanentAddressSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalScoringInfoCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalScoringInfoCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalScoringInfoSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalScoringInfoSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalSolvencyCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalSolvencyCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanPersonalSolvencySetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanPersonalSolvencySetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanRequestCancelResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanRequestCancelResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanRequestCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanRequestCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanRequestDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanRequestDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanRequestScoringAgreementCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanRequestScoringAgreementCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanRequestScoringCheckResultResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanRequestScoringCheckResultResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanRequestScoringCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanRequestScoringCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanScoringInstallmentConfirmationCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanScoringInstallmentConfirmationCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ExpressLoanScreenflowSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ExpressLoanScreenflowSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«FXMoneyAccessResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/FXMoneyAccessResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«FXMoneyCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/FXMoneyCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«FXMoneyProductConditionsCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/FXMoneyProductConditionsCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«FXMoneySetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/FXMoneySetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«FinalResultResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/FinalResultResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ForeignOrderCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ForeignOrderCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ForeignOrderCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ForeignOrderCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ForeignOrderSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ForeignOrderSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ForeignPaymentTemplateListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ForeignPaymentTemplateListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«FraudTaskStatusResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/FraudTaskStatusResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«FundingOfferResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/FundingOfferResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«GenerateLoginTokenResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/GenerateLoginTokenResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«GeneratedDocumentsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/GeneratedDocumentsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«GetConsentFormResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/GetConsentFormResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«HelloMessageResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/HelloMessageResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«HelloMessagesResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/HelloMessagesResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«HelloProbesResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/HelloProbesResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«HelloResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/HelloResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«HowToSearchResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/HowToSearchResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«HowToTopicDetail»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/HowToTopicDetail" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«HowToTopicsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/HowToTopicsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«IbanCheckResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/IbanCheckResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«IncomeFromMMBAccountResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/IncomeFromMMBAccountResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InfoServiceProductsListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InfoServiceProductsListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InfoServiceSettingsListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InfoServiceSettingsListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InfoServiceSettingsUpdateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InfoServiceSettingsUpdateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InsuranceAppointmentCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InsuranceAppointmentCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InsuranceAvailableAccountsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InsuranceAvailableAccountsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InsuranceCalculationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InsuranceCalculationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InsuranceCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InsuranceCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InsuranceDocumentListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InsuranceDocumentListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InsuranceEventReportResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InsuranceEventReportResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InsuranceListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InsuranceListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InsuranceSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InsuranceSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InternetBankingInfoResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InternetBankingInfoResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«IntraBankAccountDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/IntraBankAccountDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«IntraBankPaymentCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/IntraBankPaymentCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«IntraBankPaymentCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/IntraBankPaymentCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InvestmentChartResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InvestmentChartResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InvestmentChartUniversalResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InvestmentChartUniversalResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InvestmentFundComparisonResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InvestmentFundComparisonResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InvestmentFundDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InvestmentFundDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InvestmentListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InvestmentListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InvestmentProductivityResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InvestmentProductivityResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«InvestmentReturnResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/InvestmentReturnResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«IsLoggedUserCPBrokerResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/IsLoggedUserCPBrokerResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«JournalEventResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/JournalEventResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«KontomatikImportResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/KontomatikImportResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«LoadConsent101Response»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/LoadConsent101Response" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«LoanListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/LoanListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«LogEventResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/LogEventResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«LoginSecondBankerResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/LoginSecondBankerResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«MessageListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/MessageListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«MessageReadResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/MessageReadResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«MgmReferralResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/MgmReferralResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«MobileTopUpCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/MobileTopUpCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«MobileTopUpCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/MobileTopUpCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«MortgageCalculatorCalculationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/MortgageCalculatorCalculationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«MortgageCalculatorSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/MortgageCalculatorSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«MortgageListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/MortgageListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«NotificationListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/NotificationListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«NotificationReadResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/NotificationReadResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«Odpoved GetOpcRequest s vygenerovanym OPC (Opaque Payment Card)»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/Odpoved GetOpcRequest s vygenerovanym OPC (Opaque Payment Card)" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«Odpoved na pozadavek na statistiky odesilani push notifikaci»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/Odpoved na pozadavek na statistiky odesilani push notifikaci" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«Odpoved na registraci push tokenu»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/Odpoved na registraci push tokenu" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«Odpoved pro ulozeni akce na salespointu.»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/Odpoved pro ulozeni akce na salespointu." + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«Odpoved se seznamem salespointu»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/Odpoved se seznamem salespointu" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«OnBehalfGetActivationStatusResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/OnBehalfGetActivationStatusResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«OnBehalfInitActivationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/OnBehalfInitActivationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«OnBehalfSendMobileKeyResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/OnBehalfSendMobileKeyResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«OnBehalfVerifyMobileKeyResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/OnBehalfVerifyMobileKeyResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«OptionsForConsolidationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/OptionsForConsolidationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«Overeni jmena a hesla uzivatele internet banky»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/Overeni jmena a hesla uzivatele internet banky" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanAmountRangeResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanAmountRangeResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanCalculationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanCalculationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanConfigurationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanConfigurationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanConfigurationWithExceptionResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanConfigurationWithExceptionResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactIncomeCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactIncomeCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalAddressCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalAddressCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalAddressSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalAddressSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalDependentsCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalDependentsCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalDependentsSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalDependentsSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalEmployerCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalEmployerCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalEmployerSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalEmployerSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalIncomeSourceCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalIncomeSourceCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalIncomeSourceSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalIncomeSourceSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalNameCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalNameCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalNameSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalNameSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalSolvencyCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalSolvencyCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalSolvencySetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalSolvencySetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanContactPersonalWizardTypeResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanContactPersonalWizardTypeResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanRequestInsuranceSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanRequestInsuranceSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PLoanRequestParametersSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PLoanRequestParametersSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PasswordRenewalResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PasswordRenewalResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PaymentCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PaymentCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PaymentCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PaymentCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PaymentDeleteListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PaymentDeleteListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PaymentDeleteResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PaymentDeleteResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PaymentListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PaymentListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PaymentSetupBankListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PaymentSetupBankListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PaymentSetupDueDateListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PaymentSetupDueDateListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PaymentSetupHolidayListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PaymentSetupHolidayListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PaymentSetupRecipientListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PaymentSetupRecipientListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PaymentSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PaymentSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PointOfInterestAddressValidityResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PointOfInterestAddressValidityResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PointOfInterestDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PointOfInterestDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PointOfInterestDistanceResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PointOfInterestDistanceResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PointOfInterestListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PointOfInterestListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PollingResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PollingResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PortalContactComplaintCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PortalContactComplaintCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PortalContactHelpCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PortalContactHelpCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PortalContactOmbudsmanCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PortalContactOmbudsmanCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PortalFeedbackCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PortalFeedbackCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PortalPLoanCalculatorCalculationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PortalPLoanCalculatorCalculationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PortalSmeLendingCalculatorCalculationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PortalSmeLendingCalculatorCalculationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ProcessStatusResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ProcessStatusResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ProdPackageApplicationDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ProdPackageApplicationDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ProductApplicationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ProductApplicationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ProductApplicationStatusResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ProductApplicationStatusResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«PutForeignPaymentTemplateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/PutForeignPaymentTemplateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«ReindexingResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/ReindexingResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«RequiredDocumentsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/RequiredDocumentsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«Response objekt pro dotazen i loga karty.»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/Response objekt pro dotazen i loga karty." + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«Response s IDckem a URL passu pro pojisteni.»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/Response s IDckem a URL passu pro pojisteni." + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SMSSendCertResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SMSSendCertResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SMSVerifyResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SMSVerifyResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesPointListResponseV1»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesPointListResponseV1" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterContactAddressHintResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterContactAddressHintResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterContactJobHintResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterContactJobHintResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterContactJobListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterContactJobListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterContactSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterContactSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterHelpCallMeResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterHelpCallMeResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterHelpInternetBankResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterHelpInternetBankResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterOfferExpressAgreementGetResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterOfferExpressAgreementGetResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterOfferExpressCalculatorSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterOfferExpressCalculatorSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterOfferExpressCalculatorWalkinSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterOfferExpressCalculatorWalkinSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterOfferExpressInfoLimitGetResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterOfferExpressInfoLimitGetResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterOfferExpressIntroGetResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterOfferExpressIntroGetResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterOfferExpressIntroductionGetResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterOfferExpressIntroductionGetResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterOfferExpressVariantSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterOfferExpressVariantSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterPLoanUnhappyDocumentNotReadyScreenResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterPLoanUnhappyDocumentNotReadyScreenResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterPLoanUnhappyMoreMoneyScreenResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterPLoanUnhappyMoreMoneyScreenResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterPLoanUnhappyTrialPeriodScreenResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterPLoanUnhappyTrialPeriodScreenResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterPLoanUnhappyUnknownErrorScreenResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterPLoanUnhappyUnknownErrorScreenResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestAccountUpdateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestAccountUpdateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestApprovedAccountSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestApprovedAccountSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestApprovedSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestApprovedSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestDocumentSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestDocumentSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestEvaluationCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestEvaluationCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestInsuranceSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestInsuranceSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestParametersSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestParametersSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestScoringCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestScoringCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestScoringDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestScoringDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestScoringDocumentResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestScoringDocumentResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestScoringLessResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestScoringLessResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestScoringNokResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestScoringNokResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestScoringOkResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestScoringOkResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestScoringVerificationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestScoringVerificationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestStateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestStateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestStornoResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestStornoResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestUnfinishedDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestUnfinishedDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestUnfinishedExistenceResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestUnfinishedExistenceResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterRequestWithoutConsentResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterRequestWithoutConsentResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterSignDetailGetResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterSignDetailGetResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterSignDocumentGetResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterSignDocumentGetResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterSignPackageResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterSignPackageResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterSignScoringGetResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterSignScoringGetResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterSignSignResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterSignSignResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterSignStateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterSignStateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SalesboosterSignVictoryResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SalesboosterSignVictoryResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SaveConsent101Response»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SaveConsent101Response" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SaveInvestigationResultResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SaveInvestigationResultResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SbInsuranceListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SbInsuranceListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SbInsuranceSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SbInsuranceSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SbInsuranceTerminationCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SbInsuranceTerminationCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SbInsuranceTerminationSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SbInsuranceTerminationSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SepaPaymentCommitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SepaPaymentCommitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SepaPaymentCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SepaPaymentCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SepaPaymentSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SepaPaymentSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SignAppDocumentsDescriptionsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SignAppDocumentsDescriptionsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SignAppTokenResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SignAppTokenResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SignAppUpdateExpressResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SignAppUpdateExpressResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SignAppWorkflowStatusResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SignAppWorkflowStatusResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SingleAccountOperationsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SingleAccountOperationsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeAcceptVariantResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeAcceptVariantResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeCancelResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeCancelResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeConditionalStartResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeConditionalStartResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeContractDocumentResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeContractDocumentResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeContractResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeContractResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeCreditCardDetailsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeCreditCardDetailsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeCreditCardResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeCreditCardResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeDowntimeResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeDowntimeResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeExpressLoanResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeExpressLoanResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeFlexiLoanResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeFlexiLoanResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeInfoLimitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeInfoLimitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeLendingAccountListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeLendingAccountListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeLendingAccount»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeLendingAccount" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeLendingPersonDeclensionResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeLendingPersonDeclensionResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeLendingPersonInfoConfirmResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeLendingPersonInfoConfirmResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeLendingPersonInfoResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeLendingPersonInfoResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOfferResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOfferResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnBoardingBusinessDetailConfirmationResponse text»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnBoardingBusinessDetailConfirmationResponse text" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnBoardingTokenResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnBoardingTokenResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingActiveCampaignsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingActiveCampaignsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingAmlSurveyResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingAmlSurveyResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingAppointmentResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingAppointmentResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingBusinessAdditionalInfoResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingBusinessAdditionalInfoResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingBusinessDetailResponse text»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingBusinessDetailResponse text" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingCandidateIdentificationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingCandidateIdentificationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingConstraintsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingConstraintsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingContactAddressResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingContactAddressResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingContactDirectChannelsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingContactDirectChannelsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingContactResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingContactResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingContactUserNameForInternetBankResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingContactUserNameForInternetBankResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingContractAcceptationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingContractAcceptationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingContractSetUpResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingContractSetUpResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingIdentityCardMinedDataResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingIdentityCardMinedDataResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingIdentityCardResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingIdentityCardResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingLivenessResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingLivenessResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingPreContractAcceptationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingPreContractAcceptationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingPreContractDocumentResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingPreContractDocumentResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingProcessLeaveResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingProcessLeaveResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingProductInstanceConsentsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingProductInstanceConsentsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingProductInstanceResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingProductInstanceResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingScoringPollingResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingScoringPollingResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingScoringStartResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingScoringStartResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingSecondaryDocMinedDataResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingSecondaryDocMinedDataResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingSignatureDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingSignatureDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingSmsSendResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingSmsSendResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingSmsVerifyResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingSmsVerifyResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingUpdateExpressProductInstanceResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingUpdateExpressProductInstanceResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingZenIdStatusSampleResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingZenIdStatusSampleResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeOnboardingZenIdUploadSampleResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeOnboardingZenIdUploadSampleResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeProcessStatusResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeProcessStatusResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeReturnToProcessStartResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeReturnToProcessStartResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeScoringStartResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeScoringStartResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeSignByDeviceResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeSignByDeviceResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SmeSmsVerificationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SmeSmsVerificationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«StandingOrderCommitCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/StandingOrderCommitCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«StandingOrderCommitEditResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/StandingOrderCommitEditResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«StandingOrderCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/StandingOrderCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«StandingOrderDeleteResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/StandingOrderDeleteResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«StandingOrderEditResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/StandingOrderEditResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«StandingOrderListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/StandingOrderListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«StandingOrderSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/StandingOrderSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«StartInvestigationResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/StartInvestigationResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«StatementDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/StatementDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«StoreDocumentsResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/StoreDocumentsResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SuperContactResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SuperContactResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«SwitchingDateSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/SwitchingDateSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TelephoneContactCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TelephoneContactCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TelephoneContactSetupResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TelephoneContactSetupResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TellerFeesResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TellerFeesResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TemplateCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TemplateCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TemplateDeleteResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TemplateDeleteResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TemplateListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TemplateListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TemplateUpdateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TemplateUpdateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TransactionCategoriesResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TransactionCategoriesResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TransactionCategoryCreateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TransactionCategoryCreateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TransactionCategoryReportResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TransactionCategoryReportResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TransactionCategoryUpdateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TransactionCategoryUpdateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TransactionExchangeRateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TransactionExchangeRateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TransactionListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TransactionListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TransactionReceiptRequest»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TransactionReceiptRequest" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«TransactionReportResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/TransactionReportResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«UploadSMSSignedDocumentInitResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/UploadSMSSignedDocumentInitResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«UploadSMSSignedDocumentResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/UploadSMSSignedDocumentResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«UploadSMSSignedDocumentSendSMSResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/UploadSMSSignedDocumentSendSMSResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«UploadSampleResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/UploadSampleResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«UploadSignedDocumentResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/UploadSignedDocumentResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«UserDetailResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/UserDetailResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«UserPhoneContactListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/UserPhoneContactListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«UserSettingsListResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/UserSettingsListResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«UserSettingsUpdateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/UserSettingsUpdateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«UserUpdateResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/UserUpdateResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«VersionCheckResponse»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/VersionCheckResponse" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«object»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "type": "object", + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«odpoved push serveru na hello»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/odpoved push serveru na hello" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "RestResponse«response pro druhy dokument»": { + "type": "object", + "required": [ + "responseObject", + "status" + ], + "properties": { + "responseObject": { + "description": "Response objekt konkretniho volani, vzdy instance objektu podle konkretniho volaneho endpointu", + "$ref": "#/definitions/response pro druhy dokument" + }, + "status": { + "type": "string", + "description": "Status celkoveho vysledku volani - OK pro uspesne volani, ERROR pro neuspesne volani" + } + }, + "description": "Obecna obalka vsech rest volani obsahujici celkovy status volani a response objekt konkretniho volani" + }, + "SMSSendCertResponse": { + "type": "object", + "properties": { + "smsSendCertValue": { + "type": "string", + "enum": [ + "SMS_SENT", + "SMS_NOT_ENABLED" + ] + } + } + }, + "SMSVerifyRequest": { + "type": "object", + "required": [ + "mobileKey" + ], + "properties": { + "mobileKey": { + "type": "string", + "description": "mobilni klic" + } + } + }, + "SMSVerifyResponse": { + "type": "object", + "properties": { + "verifiedValue": { + "type": "string", + "enum": [ + "OK", + "NOT_FOUND", + "WRONG_MK", + "WRONG_MK_LOCKED", + "SMS_TIMED_OUT" + ] + } + } + }, + "SalesOffer": { + "type": "object", + "required": [ + "amount", + "arrangementFee", + "installmentAmount", + "installmentCount", + "interestRate", + "rpsn", + "totalAmount" + ], + "properties": { + "amount": { + "type": "number", + "description": "zadana vyse pujcky" + }, + "arrangementFee": { + "type": "number", + "description": "poplatek za sjednani" + }, + "firstInstallmentDate": { + "type": "string", + "format": "date-time", + "description": "datum prvni splatky" + }, + "installmentAmount": { + "type": "number", + "description": "vyse splatek" + }, + "installmentCount": { + "type": "integer", + "format": "int64", + "description": "pocet splatek" + }, + "installmentDay": { + "type": "string", + "description": "den splatky" + }, + "insuranceAmount": { + "type": "number", + "description": "mesicni uhrada za pojisteni" + }, + "insuranceType": { + "type": "string", + "description": "typ pojisteni - prelozeno z ciselniku" + }, + "interestRate": { + "type": "number", + "format": "double", + "description": "urokova sazba" + }, + "maxAmount": { + "type": "number", + "description": "horni interval (MAX) posuvniku kolik si chci pujcit u pozitivni varianty" + }, + "minAmount": { + "type": "number", + "description": "spodni interval (MIN) posuvniku kolik si chci pujcit u pozitivni varianty" + }, + "productCode": { + "type": "string", + "description": "identifikace produktu (HcisProduktu)" + }, + "requestVariant": { + "type": "string", + "description": "typ varianty zadosti", + "enum": [ + "REQUIRED", + "RETURNED", + "FINALLY_APPROVED" + ] + }, + "rpsn": { + "type": "number", + "format": "double", + "description": "rpsn" + }, + "salesProductCode": { + "type": "string", + "description": "Sales identifikace projektu (HCisProduktuSales)" + }, + "totalAmount": { + "type": "number", + "description": "klient celkem zaplati" + }, + "variantKey": { + "type": "integer", + "format": "int64", + "description": "key varianty vyuzite pri oznaceni varianty" + }, + "variantOrder": { + "type": "integer", + "format": "int32", + "description": "poradi varianty ve kterem se vratila z be - slouzi pro zpetne namapovani na variantkey po aktualizaci zadosti" + }, + "variantType": { + "type": "string", + "description": "identifikace typu varianty (REQ = pozadovana, MFA_MTE = varianta pro modelovani)", + "enum": [ + "REQUIRED", + "MODEL" + ] + } + } + }, + "SalesPoint": { + "type": "object", + "properties": { + "actionData": { + "type": "string", + "description": "Data pro akci. Pro actionType=WEB je to url web stranky, ktera se ma zobrazit. Pro actionType=APPPAGE identifikator obrazovky na kterou ma konzumentska aplikace presmerovat." + }, + "actionLabelText": { + "type": "string", + "description": "Popisek tlacitka akce." + }, + "actionType": { + "type": "string", + "description": "Typ akce po kliknuti na salespoint, zatim podporujeme pouze NONE, WEB, APPPAGE", + "enum": [ + "NONE", + "WEB", + "APPPAGE", + "PHONECALL", + "EMAIL" + ] + }, + "body": { + "type": "string", + "description": "Text salespointu" + }, + "channel": { + "type": "integer", + "format": "int32", + "description": "Kanal pres ktery se ma salespoint zobrazit. 15=IB, 17=SB" + }, + "closable": { + "type": "boolean", + "example": false, + "description": "Priznak, zda uzivatel muze salespoint na frontendu schovat." + }, + "closeLabelText": { + "type": "string", + "description": "Lokalizovana textace tlacitka pro zavreni banneru." + }, + "frontendContext": { + "type": "object", + "description": "Data, ktera si frontend ulozil k nejakemu banneru." + }, + "iconUrl": { + "type": "string", + "description": "Cesta pro stazeni ikony, pokud se ma zobrazit." + }, + "imageUrl": { + "type": "string", + "description": "Url obrazku salespointu" + }, + "location": { + "type": "string", + "description": "Umisteni salespointu. Identifikator oblasti, kam se ma salespoint zobrazit." + }, + "metadata": { + "type": "object", + "description": "Dodatecne informace." + }, + "name": { + "type": "string", + "description": "Technicke jmeno salespointu, nemelo by se zobrazit uzivateli, slouzi pouze jako citelny doplnek k ID" + }, + "priority": { + "type": "integer", + "format": "int32", + "description": "Priorita urcujici poradi, ve kterem se salespointy zobrazuji. Vyssi cislo = vyssi priorita = salespoint se zobrazi nad jinymi s nizsi prioritou." + }, + "productClass": { + "type": "string", + "description": "Id produktove tridy." + }, + "styleType": { + "type": "string", + "description": "Slouzi FE k tomu, aby se rozhodnul, jakym zpusobem banner zobrazi (fonty, zalomeni, s/bez ikony, ...)." + }, + "templateId": { + "type": "integer", + "format": "int64", + "description": "ID sablony, ze ktere byl tento salespoint vytvoren" + }, + "title": { + "type": "string", + "description": "Nadpis salespointu" + } + }, + "description": "Instance reklamniho banneru. v2." + }, + "SalesPointListResponseV1": { + "type": "object", + "properties": { + "salesPoints": { + "type": "array", + "items": { + "$ref": "#/definitions/SalesPointV1 class" + } + } + } + }, + "SalesPointLogItem": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Technicky popis salespointu" + }, + "messages": { + "type": "array", + "description": "Seznam technickych zprav k danemu salespointu", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "Technicke jmeno salespointu, nemelo by se zobrazit uzivateli, slouzi pouze jako citelny doplnek k ID" + }, + "position": { + "type": "string", + "description": "Pozice, kde se ma salespoint zobrazit" + }, + "productClass": { + "type": "string", + "description": "Trida produktu" + }, + "templateId": { + "type": "integer", + "format": "int64", + "description": "ID sablony, ze ktere byl tento salespoint vytvoren" + } + }, + "description": "Polozka v logu obsahujiciho informace o zpracovani salespoint kandidatu." + }, + "SalesPointSaveActionRequest": { + "type": "object", + "required": [ + "actionType", + "salesPointTemplateId" + ], + "properties": { + "actionType": { + "type": "string", + "description": "Typ akce k ulozeni.", + "enum": [ + "VIEW", + "CLOSE", + "ACTION", + "NO_ACTION" + ] + }, + "frontendContext": { + "type": "object", + "description": "Data, ktera si frontend chce ulozit k nejakemu banneru." + }, + "salesPointTemplateId": { + "type": "integer", + "format": "int64", + "description": "ID sablony salespointu." + } + }, + "description": "Pozadavek na ulozeni akce na salespointu." + }, + "SalesPointV1 Contenct class": { + "type": "object", + "properties": { + "actionAnchor": { + "type": "string", + "description": "popisek prvku call to action" + }, + "actionBgColor": { + "type": "string" + }, + "actionColor": { + "type": "string" + }, + "actionData": { + "type": "string", + "description": "data prvku call to action" + }, + "actionType": { + "type": "string", + "description": "typ akce prvku call to action", + "enum": [ + "NONE", + "WEB", + "APPPAGE", + "PHONECALL", + "EMAIL" + ] + }, + "image": { + "type": "string", + "description": "obrazek pro blok" + }, + "text": { + "type": "string", + "description": "text bloku" + }, + "textColor": { + "type": "string" + }, + "title": { + "type": "string", + "description": "nadpis bloku" + }, + "titleColor": { + "type": "string" + }, + "visibleBanner": { + "type": "boolean" + } + }, + "description": "SalesPointV1 content model obsahujici detaily k jednomu salespointu." + }, + "SalesPointV1 class": { + "type": "object", + "required": [ + "clientType", + "detailContent", + "mainContent", + "salesPointId", + "salesPointType" + ], + "properties": { + "clientType": { + "type": "string", + "description": "Typ klienta", + "enum": [ + "FO", + "PO", + "ZAM", + "ZDRAV", + "FOP" + ] + }, + "detailContent": { + "description": "Doplnkove detailni informace.", + "$ref": "#/definitions/SalesPointV1 Contenct class" + }, + "groupContent": { + "description": "Informace ke groupovacim datum nabidky.", + "$ref": "#/definitions/SalesPointV1 Contenct class" + }, + "mainContent": { + "description": "Hlavni obsah nabidky.", + "$ref": "#/definitions/SalesPointV1 Contenct class" + }, + "salesPointId": { + "type": "integer", + "format": "int64", + "description": "Sales point id" + }, + "salesPointType": { + "type": "string", + "description": "Typ salespointu [OVERVIEW,VICTORY,GHOST,UNPROCESSED,CREDITCARD].", + "enum": [ + "OVERVIEW", + "VICTORY", + "GHOST", + "UNPROCESSED", + "CREDITCARD", + "NEWPRODUCT", + "PROMO", + "GHOSTPRODUCT", + "OVERVIEWTEMP" + ] + } + }, + "description": "SalesPointV1 class containing attributes for advertisement in app." + }, + "SalesboosterApplicationRequest": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "cislo bezneho uctu na zadosti" + }, + "createdDate": { + "type": "string", + "format": "date-time", + "description": "datum zalozeni" + }, + "expirationDate": { + "type": "string", + "format": "date-time", + "description": "datum expirace = datum zalozeni + 14 dni" + }, + "formType": { + "type": "string", + "description": "typ formulare, pro kazdy produkt mame jiny kod, konkretni kod chodi z mwfav5 a plni se pak do mwfau2" + }, + "requestChannel": { + "type": "string", + "description": "kanal ze ktereho byla zadost vytvorena", + "enum": [ + "IBS", + "S2S", + "POS", + "ONLINE_WEB", + "POS_TABLET", + "SBA", + "ONLINE_API", + "OTHER" + ] + }, + "zadostAP": { + "type": "string", + "description": "NAS ID konkretni chodi z mwfav5 a plni se do mwf2A0 pri uploadu dokladu" + } + } + }, + "SalesboosterContactAddressHintRequest": { + "type": "object", + "required": [ + "addressPart" + ], + "properties": { + "addressPart": { + "type": "string", + "description": "Cast adresy" + } + } + }, + "SalesboosterContactAddressHintResponse": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "description": "seznam adres", + "items": { + "$ref": "#/definitions/Address" + } + } + } + }, + "SalesboosterContactJobHintRequest": { + "type": "object", + "required": [ + "employerPart" + ], + "properties": { + "employerPart": { + "type": "string", + "description": "Cast nazvu zamestnavatele" + } + } + }, + "SalesboosterContactJobHintResponse": { + "type": "object", + "required": [ + "employers" + ], + "properties": { + "employers": { + "type": "array", + "description": "Adresa zamestnavatele", + "items": { + "$ref": "#/definitions/SalesboosterEmployer" + } + } + } + }, + "SalesboosterContactJobListRequest": { + "type": "object", + "properties": { + "employmentType": { + "type": "string" + } + } + }, + "SalesboosterContactJobListResponse": { + "type": "object", + "properties": { + "occupationList": { + "type": "array", + "items": { + "$ref": "#/definitions/SimpleCodetableRecord" + } + } + } + }, + "SalesboosterContactSetupRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterContactSetupResponse": { + "type": "object", + "properties": { + "salesboosterFormState": { + "type": "string", + "enum": [ + "OPENED", + "LOCKED", + "UNLOCKED" + ] + } + } + }, + "SalesboosterDocument": { + "type": "object", + "properties": { + "documentCategory": { + "type": "string" + }, + "documentType": { + "type": "string" + } + } + }, + "SalesboosterEmployer": { + "type": "object", + "properties": { + "address": { + "$ref": "#/definitions/Address" + }, + "ico": { + "type": "string" + } + } + }, + "SalesboosterHelpCallMeRequest": { + "type": "object" + }, + "SalesboosterHelpCallMeResponse": { + "type": "object", + "properties": { + "backButton": { + "type": "string", + "description": "Tlacitko zpet" + }, + "description": { + "type": "string", + "description": "Popis" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterHelpInternetBankRequest": { + "type": "object" + }, + "SalesboosterHelpInternetBankResponse": { + "type": "object", + "properties": { + "backButton": { + "type": "string", + "description": "Tlacitko zpet" + }, + "description": { + "type": "string", + "description": "Popis" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterOfferExpressAgreementGetRequest": { + "type": "object" + }, + "SalesboosterOfferExpressAgreementGetResponse": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Obsah stranky" + }, + "screenTitle": { + "type": "string", + "description": "Nadpis stranky" + } + } + }, + "SalesboosterOfferExpressCalculatorSetupRequest": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "zadana hodnota pujcky" + }, + "installmentCount": { + "type": "integer", + "format": "int64", + "description": "zadany pocet splatek" + } + } + }, + "SalesboosterOfferExpressCalculatorSetupResponse": { + "type": "object", + "required": [ + "amountStep", + "amountTermMapping", + "maxAmount", + "maxInstallmentCount", + "minAmount", + "minInstallmentCount", + "salesOffer" + ], + "properties": { + "amountStep": { + "type": "integer", + "format": "int64", + "description": "o kolik preskakuje castka pri posouvani" + }, + "amountTermMapping": { + "type": "array", + "description": "mapovani castky na maximalni pocet mesicu", + "items": { + "$ref": "#/definitions/CalculatorInstallmentCountMapping" + } + }, + "maxAmount": { + "type": "number", + "description": "maximalni castka pujcky" + }, + "maxInstallmentCount": { + "type": "integer", + "format": "int64", + "description": "maximalni pocet splatek" + }, + "minAmount": { + "type": "number", + "description": "minimalni castka pujcky" + }, + "minInstallmentCount": { + "type": "integer", + "format": "int64", + "description": "minimalni pocet splatek" + }, + "salesOffer": { + "description": "parametry konkretni nabidky banky", + "$ref": "#/definitions/SalesOffer" + } + } + }, + "SalesboosterOfferExpressCalculatorWalkinSetupRequest": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "zadana hodnota pujcky" + }, + "branchId": { + "type": "string", + "description": "identifikace pobocky" + }, + "channelType": { + "type": "string", + "description": "typ kanalu" + }, + "clientGroup": { + "type": "string", + "description": "skupina klientu" + }, + "deferMonthCount": { + "type": "integer", + "format": "int64", + "description": "?" + }, + "discountType": { + "type": "string", + "description": "typ slevy" + }, + "firstDrawAmount": { + "type": "number", + "description": "prvni vyse privniho cerpani" + }, + "installmentCount": { + "type": "integer", + "format": "int64", + "description": "zadany pocet splatek" + }, + "insuranceType": { + "type": "string", + "description": "typ pojisteni" + }, + "rbpCategory": { + "type": "string", + "description": "plni se A" + }, + "salesProductCode": { + "type": "string", + "description": "typ slevoveho produktu" + } + } + }, + "SalesboosterOfferExpressCalculatorWalkinSetupResponse": { + "type": "object", + "required": [ + "amountStep", + "amountTermMapping", + "maxAmount", + "maxInstallmentCount", + "minAmount", + "minInstallmentCount", + "salesOffer" + ], + "properties": { + "amountStep": { + "type": "integer", + "format": "int64", + "description": "o kolik preskakuje castka pri posouvani" + }, + "amountTermMapping": { + "type": "array", + "description": "mapovani castky na maximalni pocet mesicu", + "items": { + "$ref": "#/definitions/CalculatorInstallmentCountMapping" + } + }, + "maxAmount": { + "type": "number", + "description": "maximalni castka pujcky" + }, + "maxInstallmentCount": { + "type": "integer", + "format": "int64", + "description": "maximalni pocet splatek" + }, + "minAmount": { + "type": "number", + "description": "minimalni castka pujcky" + }, + "minInstallmentCount": { + "type": "integer", + "format": "int64", + "description": "minimalni pocet splatek" + }, + "salesOffer": { + "description": "parametry konkretni nabidky banky", + "$ref": "#/definitions/SalesOffer" + } + } + }, + "SalesboosterOfferExpressInfoLimitGetRequest": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Typ infolimitu", + "enum": [ + "FULL_EXPRESS", + "PRE_APPROVED_LOAN", + "COMMITMENT_D" + ] + } + } + }, + "SalesboosterOfferExpressInfoLimitGetResponse": { + "type": "object", + "properties": { + "infoLimitList": { + "type": "array", + "description": "Seznam infolimitu", + "items": { + "$ref": "#/definitions/InfoLimit" + } + } + } + }, + "SalesboosterOfferExpressIntroGetRequest": { + "type": "object" + }, + "SalesboosterOfferExpressIntroGetResponse": { + "type": "object", + "properties": { + "buttonLabel": { + "type": "string", + "description": "Tlacitko" + }, + "items": { + "type": "array", + "description": "Seznam polozek", + "items": { + "type": "string" + } + }, + "screenTitle": { + "type": "string", + "description": "Nadpis stranky" + } + } + }, + "SalesboosterOfferExpressIntroductionGetRequest": { + "type": "object" + }, + "SalesboosterOfferExpressIntroductionGetResponse": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "Identifikator" + }, + "pages": { + "type": "array", + "description": "Seznam obrazovek", + "items": { + "$ref": "#/definitions/SalesboosterOfferIntroductionPage" + } + }, + "screenTitle": { + "type": "string", + "description": "Nadpis stranky" + } + } + }, + "SalesboosterOfferExpressVariantSetupRequest": { + "type": "object", + "required": [ + "amount", + "installmentCount", + "salesProductCode" + ], + "properties": { + "amount": { + "type": "number", + "description": "pozadovana castka" + }, + "installmentCount": { + "type": "integer", + "format": "int64", + "description": "pozadovany pocet splatek" + }, + "salesProductCode": { + "type": "string", + "description": "typ slevy" + } + } + }, + "SalesboosterOfferExpressVariantSetupResponse": { + "type": "object", + "properties": { + "salesOffer": { + "$ref": "#/definitions/SalesOffer" + } + } + }, + "SalesboosterOfferIntroductionPage": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Obsah stranky" + }, + "title": { + "type": "string", + "description": "Nadpis stranky" + }, + "url": { + "type": "string", + "description": "Url" + } + } + }, + "SalesboosterPLoanUnhappyDocumentNotReadyScreenRequest": { + "type": "object" + }, + "SalesboosterPLoanUnhappyDocumentNotReadyScreenResponse": { + "type": "object", + "properties": { + "backButton": { + "type": "string", + "description": "Zpet tlacitko" + }, + "description": { + "type": "string", + "description": "Popis" + }, + "onInfoLineLabel": { + "type": "string", + "description": "Na infolince" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterPLoanUnhappyMoreMoneyScreenRequest": { + "type": "object" + }, + "SalesboosterPLoanUnhappyMoreMoneyScreenResponse": { + "type": "object", + "properties": { + "atTheOfficeLabel": { + "type": "string", + "description": "Na pobocce" + }, + "backButton": { + "type": "string", + "description": "Zpet tlacitko" + }, + "description": { + "type": "string", + "description": "Popis" + }, + "inInternetBankLabel": { + "type": "string", + "description": "V Internet bance" + }, + "onInfoLineLabel": { + "type": "string", + "description": "Na infolince" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterPLoanUnhappyTrialPeriodScreenRequest": { + "type": "object" + }, + "SalesboosterPLoanUnhappyTrialPeriodScreenResponse": { + "type": "object", + "properties": { + "atTheOfficeLabel": { + "type": "string", + "description": "Na pobocce" + }, + "backButton": { + "type": "string", + "description": "Zpet tlacitko" + }, + "description": { + "type": "string", + "description": "Popis" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterPLoanUnhappyUnknownErrorScreenRequest": { + "type": "object" + }, + "SalesboosterPLoanUnhappyUnknownErrorScreenResponse": { + "type": "object", + "properties": { + "backButton": { + "type": "string", + "description": "Zpet tlacitko" + }, + "description": { + "type": "string", + "description": "Popis" + }, + "onInfoLineLabel": { + "type": "string", + "description": "Na infolince" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterRequestAccountUpdateRequest": { + "type": "object", + "required": [ + "accountId", + "salesboosterType" + ], + "properties": { + "accountId": { + "type": "string", + "description": "cislo bezneho uctu" + }, + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestAccountUpdateResponse": { + "type": "object", + "properties": { + "scoringRequestSaved": { + "type": "boolean" + } + } + }, + "SalesboosterRequestApprovedAccountSetupRequest": { + "type": "object" + }, + "SalesboosterRequestApprovedAccountSetupResponse": { + "type": "object", + "properties": { + "accounts": { + "type": "array", + "items": { + "$ref": "#/definitions/Account" + } + } + } + }, + "SalesboosterRequestApprovedSetupRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestApprovedSetupResponse": { + "type": "object", + "required": [ + "amountStep", + "approvedInsuranceOptions", + "conditionallyApprovedState", + "salesOffer", + "salesOffers", + "virtualInsuranceOptions" + ], + "properties": { + "amountStep": { + "type": "integer", + "format": "int64", + "description": "velikost kroku" + }, + "approvedInsuranceOptions": { + "type": "array", + "description": "moznosti pojisteni pro schvalenou varianatu zadosti", + "items": { + "$ref": "#/definitions/InsuranceVariant" + } + }, + "conditionallyApprovedState": { + "type": "string", + "description": "podstav podminene schvalene zadosti, rika jestli bylo schvaleno s jednou nebo vice varintami a nebo neschvaleno", + "enum": [ + "APPROVED_ONE_VARIANT", + "APPROVED_MULTIPLE_VARIANT", + "NOT_APPROVED" + ] + }, + "salesOffer": { + "description": "schvalena varianta zadosti", + "$ref": "#/definitions/SalesOffer" + }, + "salesOffers": { + "type": "array", + "description": "virtualni varianty zadosti", + "items": { + "$ref": "#/definitions/SalesOffer" + } + }, + "virtualInsuranceOptions": { + "type": "array", + "description": "moznosti pojisteni pro virtualni variantu zadosti", + "items": { + "$ref": "#/definitions/InsuranceVariant" + } + } + } + }, + "SalesboosterRequestCreateRequest": { + "type": "object", + "required": [ + "salesboosterKind", + "salesboosterType" + ], + "properties": { + "salesboosterKind": { + "type": "string", + "description": "priznak ze jde o PLoan. Typy: SALESBOOSTER_PLOAN, SALESBOOSTER", + "enum": [ + "SALESBOOSTER_PLOAN", + "SALESBOOSTER" + ] + }, + "salesboosterType": { + "type": "string", + "description": "typ prodkutu ke kteremu se ma zalozit novy pozadavek.", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestCreateResponse": { + "type": "object", + "properties": { + "accountNumber": { + "type": "string", + "description": "null, pokud ucet nenalezen." + } + } + }, + "SalesboosterRequestDetailRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ pozadavku ke kteremu se maji dotahovat detaily.", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestDetailResponse": { + "type": "object", + "required": [ + "salesboosterApplicationRequest", + "salesboosterKind" + ], + "properties": { + "salesboosterApplicationRequest": { + "description": "data detailu zadosti o produkt", + "$ref": "#/definitions/SalesboosterApplicationRequest" + }, + "salesboosterKind": { + "type": "string", + "description": "priznak ze jde o PLOAN", + "enum": [ + "SALESBOOSTER_PLOAN", + "SALESBOOSTER" + ] + } + } + }, + "SalesboosterRequestDocumentSetupRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestDocumentSetupResponse": { + "type": "object", + "properties": { + "salesboosterDocuments": { + "type": "array", + "items": { + "$ref": "#/definitions/SalesboosterDocument" + } + } + } + }, + "SalesboosterRequestEvaluationCommitRequest": { + "type": "object", + "required": [ + "accountId", + "amount", + "installmentCount", + "installmentDay", + "insuranceCode", + "salesboosterType", + "totalAmount", + "variantKey", + "variantOrder" + ], + "properties": { + "accountId": { + "type": "string", + "description": "cislo uctu na ktery se budou prostredky cerpat" + }, + "amount": { + "type": "number", + "description": "zadana castka" + }, + "installmentCount": { + "type": "integer", + "format": "int64", + "description": "pocet splatek" + }, + "installmentDay": { + "type": "integer", + "format": "int64", + "description": "den splatky" + }, + "insuranceCode": { + "type": "string", + "description": "kod zvoleneho pojisteni" + }, + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + }, + "totalAmount": { + "type": "number", + "description": "celkova castka" + }, + "variantKey": { + "type": "integer", + "format": "int64", + "description": "klic zvolene varianty" + }, + "variantOrder": { + "type": "integer", + "format": "int32", + "description": "poradi zvolene varianty" + } + } + }, + "SalesboosterRequestEvaluationCommitResponse": { + "type": "object" + }, + "SalesboosterRequestInsuranceSetupRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "amount": { + "type": "number", + "description": "celkova splatna castka" + }, + "installmentAmount": { + "type": "number", + "description": "mesicni splatka" + }, + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestInsuranceSetupResponse": { + "type": "object", + "properties": { + "insuranceVariants": { + "type": "array", + "description": "parametry konkretnich variant pojisteni", + "items": { + "$ref": "#/definitions/InsuranceVariant" + } + } + } + }, + "SalesboosterRequestParametersSetupRequest": { + "type": "object", + "required": [ + "amount", + "salesboosterType", + "variantKey" + ], + "properties": { + "amount": { + "type": "number", + "description": "zadana hodnota pujcky" + }, + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + }, + "variantKey": { + "type": "integer", + "format": "int64", + "description": "identifikator zvolene varianty z nabizenych variant" + } + } + }, + "SalesboosterRequestParametersSetupResponse": { + "type": "object", + "properties": { + "salesOffers": { + "type": "array", + "description": "parametry konkretnich nabidek banky", + "items": { + "$ref": "#/definitions/SalesOffer" + } + } + } + }, + "SalesboosterRequestScoringCreateRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestScoringCreateResponse": { + "type": "object", + "properties": { + "scoringRequestSaved": { + "type": "boolean" + } + } + }, + "SalesboosterRequestScoringDetailRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestScoringDetailResponse": { + "type": "object", + "properties": { + "finalState": { + "type": "boolean" + } + } + }, + "SalesboosterRequestScoringDocumentRequest": { + "type": "object" + }, + "SalesboosterRequestScoringDocumentResponse": { + "type": "object", + "properties": { + "button": { + "type": "string", + "description": "Tlacitko" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterRequestScoringLessRequest": { + "type": "object" + }, + "SalesboosterRequestScoringLessResponse": { + "type": "object", + "properties": { + "agreeButton": { + "type": "string", + "description": "Tlacitko souhlasu" + }, + "assuranceLabel": { + "type": "string", + "description": "Ujisteni, ze je schopen splacet" + }, + "disagreeButton": { + "type": "string", + "description": "Tlacitko nesouhlasu" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterRequestScoringNokRequest": { + "type": "object" + }, + "SalesboosterRequestScoringNokResponse": { + "type": "object", + "properties": { + "backButton": { + "type": "string", + "description": "Tlacitko zpet" + }, + "note": { + "type": "string", + "description": "Poznamka" + }, + "reason": { + "type": "string", + "description": "Duvod zamitnuti" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterRequestScoringOkRequest": { + "type": "object" + }, + "SalesboosterRequestScoringOkResponse": { + "type": "object", + "properties": { + "assuranceLabel": { + "type": "string", + "description": "Ujisteni, ze je schopen splacet" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterRequestScoringVerificationRequest": { + "type": "object" + }, + "SalesboosterRequestScoringVerificationResponse": { + "type": "object", + "properties": { + "button": { + "type": "string", + "description": "Tlacitko" + }, + "description": { + "type": "string", + "description": "Popis" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterRequestStateRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestStateResponse": { + "type": "object", + "required": [ + "finalState", + "state" + ], + "properties": { + "finalState": { + "type": "boolean", + "example": false, + "description": "priznak finalnosti stavu" + }, + "state": { + "type": "string", + "description": "stav zadosti", + "enum": [ + "NOT_SUBMIT", + "EDITED", + "SCORING", + "EXTERNAL_SCORING", + "FAILED", + "CANCELED", + "REJECTED", + "FINALLY_APPROVED", + "APPROVED_NOT_SIGNED", + "CONDITIONALLY_APPROVED", + "WAIT_FILL", + "FILL_CONTACT", + "GOTO_BRANCH", + "WITHDRAWED", + "DRAWDOWN", + "STORNO_ONGOING" + ] + } + } + }, + "SalesboosterRequestStornoRequest": { + "type": "object", + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ prodkutu ke kteremu se ma zalozit novy pozadavek.", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestStornoResponse": { + "type": "object" + }, + "SalesboosterRequestUnfinishedDetailRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ pozadavku ke kteremu se maji dotahovat detaily.", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestUnfinishedDetailResponse": { + "type": "object", + "properties": { + "salesboosterApplicationRequest": { + "description": "data detailu zadosti o produkt", + "$ref": "#/definitions/SalesboosterApplicationRequest" + }, + "state": { + "type": "string", + "description": "stav zadosti", + "enum": [ + "NOT_SUBMIT", + "EDITED", + "SCORING", + "EXTERNAL_SCORING", + "FAILED", + "CANCELED", + "REJECTED", + "FINALLY_APPROVED", + "APPROVED_NOT_SIGNED", + "CONDITIONALLY_APPROVED", + "WAIT_FILL", + "FILL_CONTACT", + "GOTO_BRANCH", + "WITHDRAWED", + "DRAWDOWN", + "STORNO_ONGOING" + ] + } + } + }, + "SalesboosterRequestUnfinishedExistenceRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ pozadavku ke kteremu se maji dotahovat detaily.", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterRequestUnfinishedExistenceResponse": { + "type": "object", + "required": [ + "salesboosterUnfinishedState" + ], + "properties": { + "salesboosterUnfinishedState": { + "type": "string", + "description": "stav pri nacitani rozpracovanych zadosti", + "enum": [ + "NOT_EXISTS", + "EXISTS", + "EXISTS_REDIRECT", + "SIGNED" + ] + } + } + }, + "SalesboosterRequestWithoutConsentRequest": { + "type": "object" + }, + "SalesboosterRequestWithoutConsentResponse": { + "type": "object", + "properties": { + "atTheOfficeLabel": { + "type": "string", + "description": "Na pobocce" + }, + "continueButton": { + "type": "string", + "description": "Tlacitko k pokracovani ve sjednani pujcky" + }, + "description": { + "type": "string", + "description": "Popis" + }, + "finishApplicationButton": { + "type": "string", + "description": "Tlacitko k ukonceni zadosti" + }, + "onInfoLineLabel": { + "type": "string", + "description": "Na infolince" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "SalesboosterSignDetailGetRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterSignDetailGetResponse": { + "type": "object", + "required": [ + "documentContract", + "documentPre" + ], + "properties": { + "documentContract": { + "description": "smluvni dokumenty", + "$ref": "#/definitions/Document" + }, + "documentPre": { + "description": "predsmluvni dokumenty", + "$ref": "#/definitions/Document" + } + } + }, + "SalesboosterSignDocumentGetRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterSignDocumentGetResponse": { + "type": "object", + "required": [ + "document" + ], + "properties": { + "document": { + "description": "predsmluvni dokumentace", + "$ref": "#/definitions/Document" + } + } + }, + "SalesboosterSignPackageRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterSignPackageResponse": { + "type": "object" + }, + "SalesboosterSignScoringGetRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterSignScoringGetResponse": { + "type": "object" + }, + "SalesboosterSignSignRequest": { + "type": "object", + "required": [ + "documentBase64", + "salesboosterType", + "signatureBase64", + "signatureType" + ], + "properties": { + "documentBase64": { + "type": "string", + "description": "dokument smlouvy v base64" + }, + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + }, + "signatureBase64": { + "type": "string", + "description": "podpis smlouvy v base64" + }, + "signatureType": { + "type": "string", + "description": "typ podpisu", + "enum": [ + "MOBILE_KEY", + "CERTIFICATE", + "SMARTBANK_PIN", + "SMARTBANK_FINGERPRINT", + "SMARTBANK_FACEID" + ] + } + } + }, + "SalesboosterSignSignResponse": { + "type": "object", + "properties": { + "stateOK": { + "type": "boolean" + } + } + }, + "SalesboosterSignStateRequest": { + "type": "object", + "required": [ + "salesboosterType" + ], + "properties": { + "salesboosterType": { + "type": "string", + "description": "typ salesbooster produktu", + "enum": [ + "EXPRESS", + "EXPRESS_PLUS", + "CONSOLIDATION", + "CREDIT_CARD" + ] + } + } + }, + "SalesboosterSignStateResponse": { + "type": "object", + "required": [ + "salesboosterBussState", + "wFPrechodStavu" + ], + "properties": { + "salesboosterBussState": { + "type": "string", + "description": "stav zadosti", + "enum": [ + "PRIOROPEN", + "ACCOPEN", + "AFTERKO", + "CONTPRINT", + "FIRSTOFFICSIGN", + "SECOFICSIGN", + "DRAWINPROC", + "PRODDRAWN", + "WAITFOROPENHOURS", + "ERROR" + ] + }, + "wFPrechodStavu": { + "type": "boolean", + "example": false, + "description": "probiha prechod stavu zadosti" + } + } + }, + "SalesboosterSignVictoryRequest": { + "type": "object" + }, + "SalesboosterSignVictoryResponse": { + "type": "object", + "properties": { + "button": { + "type": "string", + "description": "Label tlacitka" + }, + "description": { + "type": "string", + "description": "Popis" + }, + "screenTitle": { + "type": "string", + "description": "Titulek obrazovky" + } + } + }, + "Salespoint": { + "type": "object", + "properties": { + "displaySalesPoint": { + "type": "boolean", + "example": false, + "description": "Zobrazit salespoint" + }, + "existsUnfinishedApplication": { + "type": "boolean", + "example": false, + "description": "Existuje rozpracovana zadost" + }, + "salespointType": { + "type": "string", + "description": "Druh salespointu", + "enum": [ + "CREDIT_CARD", + "EXPRESS", + "PREAPPROVED_LOAN" + ] + }, + "unfinishedApplicationState": { + "type": "string", + "description": "Stav rozpracovane zadosti" + } + } + }, + "SampleMinedData": { + "type": "object", + "properties": { + "authority": { + "type": "string", + "description": "Urad, ktery doklad vydal" + }, + "birthDate": { + "type": "string", + "format": "date-time", + "description": "Datum narozeni" + }, + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "birthPlace": { + "type": "string", + "description": "Misto narozeni" + }, + "city": { + "type": "string", + "description": "Mesto" + }, + "descriptiveNumber": { + "type": "string", + "description": "Cislo popisne" + }, + "firstName": { + "type": "string", + "description": "Jmeno" + }, + "idCardControlNumber": { + "type": "integer", + "format": "int32", + "description": "Kontrolni cislice" + }, + "idCardNumber": { + "type": "string", + "description": "Cislo dokladu" + }, + "idCardValidTo": { + "type": "string", + "format": "date-time", + "description": "Datum platnosti" + }, + "issueDate": { + "type": "string", + "format": "date-time", + "description": "Datum vydani" + }, + "lastName": { + "type": "string", + "description": "Prijmeni" + }, + "maritalStatus": { + "type": "string", + "description": "Rodinny stav" + }, + "nationality": { + "type": "string", + "description": "Narodnost" + }, + "orientationNumber": { + "type": "string", + "description": "Cislo orientacni" + }, + "sex": { + "type": "string", + "description": "Pohlavi" + }, + "street": { + "type": "string", + "description": "Ulice" + }, + "zipCode": { + "type": "string", + "description": "PSC" + } + }, + "description": "Data vytezena pri OCR" + }, + "SaveConsent101Request": { + "type": "object", + "required": [ + "consent", + "consentType" + ], + "properties": { + "consent": { + "type": "boolean", + "example": false, + "description": "Souhlas (true = ano/false = ne)" + }, + "consentType": { + "type": "string", + "description": "Typ souhlasu (HCisAllDruhSouhlasu101.value)" + } + }, + "description": "Zapsani stavu souhlasu 101" + }, + "SaveConsent101Response": { + "type": "object", + "description": "Zapsani stavu souhlasu 101" + }, + "SaveConsentsRequest": { + "type": "object", + "required": [ + "appKey", + "branchID", + "consentToCopyDocument", + "consentToOfferMarketing", + "consentToSendUnsecuredBankSecret" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "ID zadosti o CIF" + }, + "branchID": { + "type": "integer", + "format": "int64", + "description": "Id pobocky Moneta, na ktere klient pujcku sjednava" + }, + "consentToCopyDocument": { + "type": "boolean", + "example": false, + "description": "Souhlas s kopirovanim dokladu" + }, + "consentToOfferMarketing": { + "type": "boolean", + "example": false, + "description": "Souhlas se zasilanim marketingovych nabidek a pruzkumu jakymkoliv kanalem" + }, + "consentToSendUnsecuredBankSecret": { + "type": "boolean", + "example": false, + "description": "Souhlas se zasilanim informaci charakteru bankovniho tajemstvi nesifrovanymi kanaly" + } + }, + "description": "Pozadavek na ulozeni klientskych souhlasu" + }, + "SaveExpressConfigurationRequest": { + "type": "object", + "required": [ + "appKey" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "ID zadosti o express pujcku" + } + }, + "description": "Pozadavek na ulozeni veskere konfigurace express pujcky pro budouci pouziti" + }, + "SaveInvestigationResultRequest": { + "type": "object", + "properties": { + "documentInstKey": { + "type": "integer", + "format": "int64", + "description": "Instancni klic documentu" + }, + "documentType": { + "type": "string", + "description": "Typ dokumentu" + }, + "investigationId": { + "type": "integer", + "format": "int64", + "description": "Identifikator investigace" + } + }, + "description": "Pozadavek na ulozeni vysledku investigace ze ZenID" + }, + "SaveInvestigationResultResponse": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Stav investigace", + "enum": [ + "IN_PROGRESS", + "DONE", + "ERROR" + ] + } + }, + "description": "Odpoved na ulozeni vysledku investigace ze ZenID" + }, + "SaveRiskIndicatorsRequest": { + "type": "object", + "required": [ + "birthNumber", + "cifId", + "firstName", + "idCardNumber", + "lastName" + ], + "properties": { + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "cifId": { + "type": "string", + "description": "CIF klienta" + }, + "firstName": { + "type": "string", + "description": "Jmeno" + }, + "idCardNumber": { + "type": "string", + "description": "Cislo obcanskeho prukazu" + }, + "lastName": { + "type": "string", + "description": "Prijmeni" + } + }, + "description": "Pozadavek na ulozeni rizikovych AML indikatoru ke klientovi." + }, + "SbApplicationAddressForm": { + "type": "object", + "required": [ + "country", + "descriptiveNumber", + "orientationNumber", + "street", + "town", + "zip" + ], + "properties": { + "country": { + "description": "Id zeme z ciselniku HCisZeme (52 = Ceska republika)", + "$ref": "#/definitions/FormField«string»" + }, + "descriptiveNumber": { + "description": "Cislo popisne", + "$ref": "#/definitions/FormField«string»" + }, + "orientationNumber": { + "description": "Cislo orientacni", + "$ref": "#/definitions/FormField«string»" + }, + "street": { + "description": "Ulice", + "$ref": "#/definitions/FormField«string»" + }, + "town": { + "description": "Mesto", + "$ref": "#/definitions/FormField«string»" + }, + "zip": { + "description": "PSC", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro adresu." + }, + "SbApplicationHouseholdExpensesForm": { + "type": "object", + "properties": { + "installmentsSum": { + "description": "Celkove mesicni splatky (leasing, jine uvery, atd.)", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "regularExpenses": { + "description": "dalsi pravidelne vydaje (leky, zdravotni pomucky, atd.)", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "salaryReduction": { + "description": "srazky ze mzdy", + "$ref": "#/definitions/FormField«bigdecimal»" + } + }, + "description": "formular pro ukladani informace o vydajich domacnosti." + }, + "SbApplicationIncomeSourceForm": { + "type": "object", + "required": [ + "employmentType" + ], + "properties": { + "employmentForPeriod": { + "description": "priznak zda je zamestnani na dobu urcitou, ma smysl jen pokud employmentType = employee", + "$ref": "#/definitions/FormField«boolean»" + }, + "employmentTo": { + "description": "datum konce zamestnani, ma smysl jen pokud employmentType = employee a employmentForPeriod = true", + "$ref": "#/definitions/FormField«date-time»" + }, + "employmentType": { + "description": "typ zamestnani (employee/entrepreneur/pensioner/other)", + "$ref": "#/definitions/FormField«string»" + }, + "inTrialPeriod": { + "description": "priznak zda je ve zkusebni lhute, ma smysl jen pokud employmentType = employee", + "$ref": "#/definitions/FormField«boolean»" + }, + "onNotice": { + "description": "priznak zda je ve vypovedni lhute, ma smysl jen pokud employmentType = employee", + "$ref": "#/definitions/FormField«boolean»" + } + }, + "description": "formular pro ukladani informace o zdroji prijmu." + }, + "SbApplicationPersonalDependentsForm": { + "type": "object", + "required": [ + "dependentPersonCount" + ], + "properties": { + "dependentPersonCount": { + "description": "Pocet zavislych osob", + "$ref": "#/definitions/FormField«long»" + } + }, + "description": "formular pro zadani poctu vyzivovanych osob" + }, + "SbApplicationPersonalEmployerForm": { + "type": "object", + "required": [ + "employerId", + "employerName" + ], + "properties": { + "employerAddress": { + "description": "Adresa zamestnavatele", + "$ref": "#/definitions/SbApplicationAddressForm" + }, + "employerId": { + "description": "ICO zamestnavatele", + "$ref": "#/definitions/FormField«string»" + }, + "employerName": { + "description": "Jmeno zamestnavatele", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro validaci zamestnavatele" + }, + "SbApplicationPersonalHouseholdSolvencyForm": { + "type": "object", + "properties": { + "netMonthlyHouseIncome": { + "description": "Cisty mesicni prijem domacnosti", + "$ref": "#/definitions/FormField«bigdecimal»" + } + }, + "description": "Formular pro zadani cisteho mesicniho prijmu domacnosti" + }, + "SbApplicationPersonalSolvencyForm": { + "type": "object", + "properties": { + "netMonthlyIncome": { + "description": "Cisty mesicni prijem", + "$ref": "#/definitions/FormField«bigdecimal»" + } + }, + "description": "formular pro zadani cisteho mesicniho prijmu osoby." + }, + "SbApplicationRequestScoringAgreementForm": { + "type": "object", + "properties": { + "agreed": { + "description": "Soulas s podminkami.", + "$ref": "#/definitions/FormField«boolean»" + } + }, + "description": "formular pro souhlas prijmu." + }, + "SbApplicationScoringInstallmentConfirmationForm": { + "type": "object", + "required": [ + "confirmationAmount", + "confirmationFlag" + ], + "properties": { + "confirmationAmount": { + "description": "Vyse splatky", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "confirmationFlag": { + "description": "Priznak, zda klient potvrzuje schopnost splacet danou vysi splatky", + "$ref": "#/definitions/FormField«boolean»" + } + } + }, + "SbFinishPrecontractForm": { + "type": "object", + "properties": { + "agreementFlag": { + "description": "Soulas s podminkami.", + "$ref": "#/definitions/FormField«boolean»" + } + }, + "description": "Formular pro predsmluvni informace." + }, + "SbInsuranceListResponse": { + "type": "object", + "required": [ + "insuranceGroups", + "insuranceList", + "insuranceOfferList" + ], + "properties": { + "insuranceGroups": { + "type": "array", + "description": "Seznam skupin pojisteni.", + "items": { + "$ref": "#/definitions/InsuranceGroup" + } + }, + "insuranceList": { + "type": "array", + "description": "Seznam aktivnich pojisteni.", + "items": { + "$ref": "#/definitions/Insurance" + } + }, + "insuranceOfferList": { + "type": "array", + "description": "Seznam nabidek pojisteni.", + "items": { + "$ref": "#/definitions/Insurance offer" + } + } + } + }, + "SbInsuranceSetupResponse": { + "type": "object", + "required": [ + "accountIds", + "agreementDocumentId", + "documentPreviewBase64", + "highlightedLimits", + "insuranceDuration" + ], + "properties": { + "accountIds": { + "type": "array", + "description": "Seznam uctu, ze kterych jde pojisteni zaplatit.", + "items": { + "type": "string" + } + }, + "agreementDocumentId": { + "type": "string", + "description": "Id nahledu dokumentu." + }, + "documentPreviewBase64": { + "type": "string", + "description": "Nahled dokumentu v base64." + }, + "highlightedLimits": { + "type": "array", + "description": "Vypichnute limity pro dane pojisteni.'", + "items": { + "$ref": "#/definitions/InsuranceHighlightedLimit" + } + }, + "insuranceDuration": { + "description": "Doba trvani pojisteni.", + "$ref": "#/definitions/Doba trvani pojisteni" + } + } + }, + "SbInsuranceTerminationCommitRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "transactionId": { + "type": "integer", + "format": "int64", + "description": "Id transakce pro potvrzeni zruseni. K dostani pres /sb/insurance/termination/create" + } + } + }, + "SbInsuranceTerminationCreateRequest": { + "type": "object", + "required": [ + "contractNumber" + ], + "properties": { + "contractNumber": { + "type": "integer", + "format": "int64", + "description": "Cislo pojistne smlouvy, pro ktere chceme ziskat pass kit." + }, + "terminationType": { + "type": "string", + "description": "Forma, jakou pojisteni ma skoncit - viz odpoved z /sb/insurance/termination/setup", + "enum": [ + "WITHDRAWAL", + "CLIENT_REQUEST" + ] + } + } + }, + "SbInsuranceTerminationCreateResponse": { + "type": "object", + "required": [ + "terminationDocument", + "transactionId" + ], + "properties": { + "terminationDocument": { + "type": "string", + "description": "Nahled dokumentu pro odstoupeni / vypoved." + }, + "transactionId": { + "type": "integer", + "format": "int64", + "description": "Id transakce, ktere je potreba pro zavolani /sb/insurance/termination/commit." + } + } + }, + "SbInsuranceTerminationSetupRequest": { + "type": "object", + "required": [ + "contractNumber", + "insuranceType" + ], + "properties": { + "contractNumber": { + "type": "integer", + "format": "int64", + "description": "Cislo pojistne smlouvy, pro ktere chceme ziskat pass kit." + }, + "insuranceType": { + "type": "string", + "description": "Typ pojisteni.", + "enum": [ + "PROPERTY_INSURANCE_ALLIANZ", + "PROPERTY_INSURANCE_DIRECT", + "CAR_INSURANCE", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS", + "INSURANCE_OF_PERSONAL_BELONGINGS_AND_PAYMENT_CARDS_AND_INTERNET_RISKS", + "INSURANCE_OF_DIGITAL_PAYMENTS", + "REPAYMENT_AND_EXPENSES_INSURANCE", + "TRAVEL_INSURANCE_SINGLE", + "TRAVEL_INSURANCE_FAMILY", + "ACCIDENT_INSURANCE_GROWN_UP", + "ACCIDENT_INSURANCE_CHILD", + "ACCIDENT_INSURANCE_FAMILY", + "PROPERTY_INSURANCE", + "MORTGAGE_MANDATORY_INSURANCE", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_A", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_B", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_AA", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_BB", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_14", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_15", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_16", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_17", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_18", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_19", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_20", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_21", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_22", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_23", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_24", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_25", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_26", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_27", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_28", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_29", + "MORTGAGE_PAYMENT_PROTECTION_INSURANCE_30", + "CREDIT_CARD_INSURANCE", + "TRAVEL_INSURANCE_EUROPE_SINGLE", + "TRAVEL_INSURANCE_WORLD_SINGLE", + "TRAVEL_INSURANCE_EUROPE_FAMILY", + "TRAVEL_INSURANCE_WORLD_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_SINGLE", + "SHORT_TERM_TRAVEL_INSURANCE_EUROPE_FAMILY", + "SHORT_TERM_TRAVEL_INSURANCE_WORLD_FAMILY", + "INSURANCE_ACC_CHILD", + "INSURANCE_ACC_J_PARENT", + "INSURANCE_ACC_J_CHILD", + "INSURANCE_ACC_J_STUDENT", + "INSURANCE_ACC_ADULT", + "INSURANCE_ACC_FAMILY" + ] + } + } + }, + "SbInsuranceTerminationSetupResponse": { + "type": "object", + "required": [ + "terminationAllowedInChannel" + ], + "properties": { + "endDate": { + "type": "string", + "format": "date-time", + "description": "Datum, ke kteremu pojisteni skonci." + }, + "staticTextsUrl": { + "type": "string", + "description": "Relativni link na static textace." + }, + "terminationAllowedInChannel": { + "type": "boolean", + "example": false, + "description": "Flag rikajici, zdali je mozne zrusit dane pojisteni pres aktualni kanal." + }, + "terminationType": { + "type": "string", + "description": "Forma, jakou muze pojisteni skoncit - odstoupeni (WITHDRAWAL) / vypoved (CLIENT_REQUEST).", + "enum": [ + "WITHDRAWAL", + "CLIENT_REQUEST" + ] + } + } + }, + "SendEmailWithDocumentsRequest": { + "type": "object", + "required": [ + "dmsDocTypeId", + "docCardTypeId", + "documentPhotos", + "email", + "expressProdPackageKey" + ], + "properties": { + "caProdPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku s zadosti o produkty BU/DK/IB/SB" + }, + "cifId": { + "type": "string", + "description": "CIF klienta" + }, + "dmsDocTypeId": { + "type": "string", + "description": "Id obecneho typu dokumentu in DMS. (e.g. nabidky, dokumenty prokazujici prijem, ...)" + }, + "docCardTypeId": { + "type": "string", + "description": "Id konkretniho typu dokumentu. (e.g. POP, OP, ...)" + }, + "documentPhotos": { + "type": "array", + "description": "Ofocene dokumenty", + "items": { + "$ref": "#/definitions/DmsDocumentPhoto" + } + }, + "email": { + "type": "string", + "description": "Email, na ktery budou dokumenty poslany" + }, + "expressProdPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku s zadosti o expres pujcku" + } + }, + "description": "Pozadavek na poslani dokumentu tykajicich se produktovych balicku na email" + }, + "SepaPaymentCommitRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "transactionId": { + "type": "string", + "description": "Identifikator potvrzovane transakce." + } + } + }, + "SepaPaymentCommitResponse": { + "type": "object" + }, + "SepaPaymentCreateRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Vstupni formular pro zadani SEPA platby.", + "$ref": "#/definitions/SepaPaymentForm" + } + } + }, + "SepaPaymentCreateResponse": { + "type": "object", + "properties": { + "form": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/SepaPaymentForm" + }, + "sepaRecipientBankAddress": { + "description": "Informace o bance prijemce zjistene podle zadaneho IBANu.", + "$ref": "#/definitions/Informace o bance prijemce." + }, + "transactionId": { + "type": "string", + "description": "Vygenerovane transactionId kterym se overuje pri commitu, ze se jedna stale stejnou platbu. Vraci se pouze pokud byla validace formulare v poradku." + } + } + }, + "SepaPaymentForm": { + "type": "object", + "required": [ + "individualRateSelected", + "sourceAccountId" + ], + "properties": { + "amount": { + "description": "castka v EUR", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "confirmationEmail": { + "description": "zaslani konfirmace - email", + "$ref": "#/definitions/FormField«string»" + }, + "dueDate": { + "description": "datum splatnosti", + "$ref": "#/definitions/FormField«date-time»" + }, + "individualRateSelected": { + "description": "Indikator toho, zda uzivatel zvolil moznost sjednani individualniho kurzu.", + "$ref": "#/definitions/FormField«boolean»" + }, + "payerReference": { + "description": "reference platce", + "$ref": "#/definitions/FormField«string»" + }, + "recipientAddressCity": { + "description": "adresa prijemce - mesto", + "$ref": "#/definitions/FormField«string»" + }, + "recipientAddressCountry": { + "description": "adresa prijemce - zeme", + "$ref": "#/definitions/FormField«string»" + }, + "recipientAddressStreet": { + "description": "adresa prijemce - ulice a cislo popisne", + "$ref": "#/definitions/FormField«string»" + }, + "recipientBankAddressCity": { + "description": "adresa banky prijemce - mesto", + "$ref": "#/definitions/FormField«string»" + }, + "recipientBankAddressStreet": { + "description": "adresa banky prijemce - ulice a cislo popisne", + "$ref": "#/definitions/FormField«string»" + }, + "recipientBankBic": { + "description": "bic banky prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "recipientBankCountry": { + "description": "adresa banky prijemce - zeme", + "$ref": "#/definitions/FormField«string»" + }, + "recipientBankName": { + "description": "nazev banky prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "recipientIban": { + "description": "IBAN prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "recipientName": { + "description": "jmeno prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "recipientNote": { + "description": "zprava pro prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "sourceAccountId": { + "description": "interni id zdrojoveho uctu", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro odeslani SEPA platby." + }, + "SepaPaymentSetupResponse": { + "type": "object", + "properties": { + "legalLine": { + "type": "string", + "description": "Pravni veta, ktera se ma zobrazit pri vytvareni prikazu." + }, + "recipientCountries": { + "type": "array", + "description": "Seznam zemi bydliste prijemce.", + "items": { + "$ref": "#/definitions/CountryInfo" + } + } + } + }, + "ServicePackageStateChangeRequest": { + "type": "object", + "required": [ + "accountId", + "packageId", + "packageState" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Id uctu" + }, + "packageId": { + "type": "string", + "description": "Id balicku" + }, + "packageState": { + "type": "string", + "description": "Pozadovany stav balicku", + "enum": [ + "AKTIVNI", + "ZRUSENA" + ] + } + }, + "description": "Request pro zmenu stavu balicku." + }, + "Settings": { + "type": "object", + "required": [ + "type", + "value" + ], + "properties": { + "type": { + "type": "string", + "description": "Typ nastaveni.", + "enum": [ + "WIDGETS", + "WATCH", + "IMESSAGE", + "PUSH_LANGUAGE" + ] + }, + "value": { + "type": "string", + "description": "Hodnota nastaveni.", + "enum": [ + "ACTIVATED", + "DEACTIVATED" + ] + } + } + }, + "SignAppDocumentsDescriptionsResponse": { + "type": "object", + "required": [ + "descriptions" + ], + "properties": { + "descriptions": { + "type": "object", + "description": "Popisy dokumentu", + "additionalProperties": { + "type": "string" + } + } + }, + "description": "Odpoved na popisy dokumentu pro podpisovou aplikaci." + }, + "SignAppDocumentsRequest": { + "type": "object", + "required": [ + "branchId", + "cifId", + "prodPackageKey" + ], + "properties": { + "branchId": { + "type": "integer", + "format": "int64", + "description": "Identifikator pobocky" + }, + "cifId": { + "type": "string", + "description": "Identifikator klienta" + }, + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku" + } + }, + "description": "Pozadavek na spusteni procesu podepisovani dokumentu tykajici se daneho produktoveho balicku" + }, + "SignAppProductsExpressRequest": { + "type": "object", + "required": [ + "prodPackageKey" + ], + "properties": { + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku" + } + }, + "description": "Pozadavek posunuti stavu ve WPS, aby se zalozil product express pujcka" + }, + "SignAppProductsRequest": { + "type": "object", + "required": [ + "workflowId" + ], + "properties": { + "workflowId": { + "type": "string", + "description": "Identifikator workflow ve WPS, ktery ziskame v ramci volani statusu na generovani dokumentu." + } + }, + "description": "Pozadavek na posunuti stavu podepisovani dokumentu ve WPS do stavu SIGNED" + }, + "SignAppTokenRequest": { + "type": "object", + "required": [ + "branchId", + "firstName", + "lastName" + ], + "properties": { + "branchId": { + "type": "integer", + "format": "int64", + "description": "Identifikator pobocky" + }, + "firstName": { + "type": "string", + "description": "Jmeno klienta" + }, + "lastName": { + "type": "string", + "description": "Prijmeni klienta" + }, + "signedDocuments": { + "type": "array", + "description": "Seznam podepisovanych dokumentu", + "items": { + "$ref": "#/definitions/SignedDocument" + } + }, + "urlForReturn": { + "type": "string", + "description": "URL pro navrat z aplikace MPodpis" + } + }, + "description": "Pozadavek na token pro aplikaci MPodpis" + }, + "SignAppTokenResponse": { + "type": "object", + "required": [ + "tokenId" + ], + "properties": { + "tokenId": { + "type": "string", + "description": "Token pro aplikaci MPodpis" + } + }, + "description": "Ziskany token pro aplikaci MPodpis" + }, + "SignAppUpdateExpressRequest": { + "type": "object", + "required": [ + "cifId", + "expressProdPkgKey" + ], + "properties": { + "cifId": { + "type": "string", + "description": "Cif klienta. Slouzi pro ziskani cisla bezneho uctu" + }, + "currentAccountNumber": { + "type": "string", + "description": "Cislo bezneho uctu, na ktery bude cerpana Express pujcka pro existujiciho klienta" + }, + "expressProdPkgKey": { + "type": "integer", + "format": "int64", + "description": "Identifikator produktoveho balicku obsahujiciho zadost o Express pujcku" + } + }, + "description": "Pozadavek na ulozeni cisla bezneho uctu do dokumentu express zadosti." + }, + "SignAppUpdateExpressResponse": { + "type": "object", + "required": [ + "success" + ], + "properties": { + "success": { + "type": "boolean", + "example": false, + "description": "Uspesne provedeni operace" + } + }, + "description": "Pozadavek na ulozeni cisla bezneho uctu do dokumentu express zadosti." + }, + "SignAppWorkflowStatusRequest": { + "type": "object", + "required": [ + "prodPackageKey" + ], + "properties": { + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku" + } + }, + "description": "Pozadavek na zjisteni stavu procesu generovani dokumentu tykajicich se daneho produktoveho balicku" + }, + "SignAppWorkflowStatusResponse": { + "type": "object", + "required": [ + "status", + "workflowId" + ], + "properties": { + "status": { + "type": "string", + "description": "Stav pripravy podepisovani dokumentu", + "enum": [ + "IN_PROGRESS", + "DONE", + "ERROR" + ] + }, + "workflowId": { + "type": "string", + "description": "Id podepisovaciho workflow" + } + }, + "description": "Odpoved na zjisteni stavu procesu generovani dokumentu tykajicich se daneho produktoveho balicku." + }, + "SignBySecondBankerRequest": { + "type": "object", + "required": [ + "branchId", + "firstName", + "lastName", + "prodPackageKey", + "sso" + ], + "properties": { + "branchId": { + "type": "integer", + "format": "int64", + "description": "Id pobocky Moneta, na ktere klient pujcku sjednava" + }, + "firstName": { + "type": "string", + "description": "Jmeno druheho bankere" + }, + "lastName": { + "type": "string", + "description": "Prijmeni druheho bankere" + }, + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku" + }, + "sso": { + "type": "string", + "description": "SSO druheho bankere" + } + }, + "description": "Pozadavek na podpis produktoveho balicku druhym bankerem" + }, + "SignedDocument": { + "type": "object", + "properties": { + "generatedDocument": { + "type": "string", + "description": "Data vygenerovaneho dokumentu v base64" + }, + "generatedUrl": { + "type": "string", + "description": "Url vygenerovaneho dokumentu" + }, + "id": { + "type": "string", + "description": "Id dokumentu" + }, + "name": { + "type": "string", + "description": "Nazev dokumentu", + "enum": [ + "COMPLEX_PRE_CONTRACTUAL_INFO", + "COMPLEX_CONTRACT", + "EXPRESS_PRE_CONTRACTUAL_INFO", + "EXPRESS_CONTRACT" + ] + }, + "signedUrl": { + "type": "string", + "description": "Url podepsaneho, nebo odsouhlaseneho dokumentu" + }, + "status": { + "type": "string", + "description": "Stav dokumentu", + "enum": [ + "IN_PROGRESS", + "DONE", + "ERROR" + ] + } + }, + "description": "Podepisovany dokument" + }, + "SimpleCodetableRecord": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "text": { + "type": "string" + } + } + }, + "SimpleFinancialInstitutionIdentification": { + "type": "object", + "properties": { + "bankInfo": { + "type": "string", + "description": "Bank information" + }, + "bic": { + "type": "string", + "description": "BIC / SWIFT bank code" + }, + "country": { + "type": "string", + "description": "Bank country" + } + }, + "description": "Financial institution identification" + }, + "SingleAccountOperationsRequest": { + "type": "object", + "required": [ + "accountId" + ], + "properties": { + "accountId": { + "type": "string", + "description": "ID uctu pro ziskani povolenych operaci" + } + } + }, + "SingleAccountOperationsResponse": { + "type": "object", + "required": [ + "accountOperations" + ], + "properties": { + "accountOperations": { + "type": "array", + "description": "Seznam povolenych operaci", + "items": { + "$ref": "#/definitions/AccountOperationItem" + } + } + }, + "description": "Odpoved se seznamem povolenych operaci na danem uctu" + }, + "SliderConfig": { + "type": "object", + "properties": { + "maxAmount": { + "type": "integer", + "format": "int32" + }, + "minAmount": { + "type": "integer", + "format": "int32" + }, + "stepLength": { + "type": "integer", + "format": "int32" + } + } + }, + "SmartLimit": { + "type": "object", + "required": [ + "groups", + "header", + "initAmount", + "maxAmount", + "minAmount", + "unfinishedRequest" + ], + "properties": { + "groups": { + "type": "array", + "description": "pole polí banerů (sgropované banery). Banery které mají v metadatech atribut GROUP se stejnou hodnotu se mají tvářit jako jeden baner, který se bude proměňovat v jednotlivé podbanery podle zvolené částky - viz níže.", + "items": { + "$ref": "#/definitions/SmartLimitGroup" + } + }, + "header": { + "type": "string", + "description": "Hlavička smartlimitu (vrchní společná část pro všechny banery) se bude brát z nejprioritnějšího rozpracovaného baneru. Pokud není zobrazen rozpracovaný baner, pak z nejprioritnějšího baneru. Hlavička je v baneru uložena v metadatech v parametru LOCALIZED_HEADER_TEXT (lokalizovaná textace)." + }, + "initAmount": { + "type": "number", + "description": "Jako výchozí částka SmartLimit posuvníku bude nastavena hodnota INIT_AMOUNT pro nejprioritnější nerozpracovaný baner." + }, + "maxAmount": { + "type": "number", + "description": "Nejvetsi hodnota metadata LIMIT_TO." + }, + "minAmount": { + "type": "number", + "description": "Nejmensi hodnota metadata LIMIT_FROM." + }, + "unfinishedRequest": { + "type": "boolean", + "example": false, + "description": " příznak zda existuje mezi banery nějaký na rozpracovanou žádost SmartLimit se chová trochu jinak, pokud má být zobrazen baner pro rozpracovanou žádost. Banery pro rozpracovanou žádost jsou identifikované podle parametru StyleType, kde bude chodit hodnota \"unfinished\" (lze také identifikovat příznakem \"UNFINISHED_REQUEST\": true v metadatech)." + } + }, + "description": "Informace o smartlimitu - chytre zobrazeni nekolika banneru s posuvnikem pro volbu pujcovane castky." + }, + "SmartLimitGroup": { + "type": "object", + "properties": { + "groupId": { + "type": "string" + }, + "groupPriority": { + "type": "integer", + "format": "int32" + }, + "salesPoints": { + "type": "array", + "items": { + "$ref": "#/definitions/SalesPoint" + } + } + } + }, + "SmeAcceptVariantRequest": { + "type": "object", + "description": "Variant confirmation" + }, + "SmeAcceptVariantResponse": { + "type": "object", + "description": "Prazdny response objekt" + }, + "SmeCampaign": { + "type": "object", + "required": [ + "daysLeftInCurrentMonth", + "isRepaymentDayPostponed", + "name" + ], + "properties": { + "daysLeftInCurrentMonth": { + "type": "integer", + "format": "int32", + "description": "pocet dni do konce mesice" + }, + "isRepaymentDayPostponed": { + "type": "boolean", + "example": false, + "description": "jestli byl modifikovan den splatky" + }, + "name": { + "type": "string", + "description": "jmeno kamapane" + }, + "repaymentDayPostponed": { + "type": "boolean" + } + } + }, + "SmeCancelRequest": { + "type": "object", + "required": [ + "contractGenerated" + ], + "properties": { + "contractGenerated": { + "type": "boolean", + "example": false, + "description": "jestli byl uz vygenerovanej kontrakt" + } + } + }, + "SmeCancelResponse": { + "type": "object", + "description": "Prazdny response objekt" + }, + "SmeConditionalStartRequest": { + "type": "object", + "description": "request pro zacati conditional approval procesu" + }, + "SmeConditionalStartResponse": { + "type": "object", + "description": "Prazdny response objekt" + }, + "SmeContractDocumentResponse": { + "type": "object", + "required": [ + "documentContract" + ], + "properties": { + "documentContract": { + "description": "smluvni dokumenty", + "$ref": "#/definitions/Document" + } + } + }, + "SmeContractRequest": { + "type": "object", + "description": "Prazdny request" + }, + "SmeContractResponse": { + "type": "object", + "description": "Prazdny response objekt" + }, + "SmeCreditCardConfirmedRequest": { + "type": "object", + "description": "Prazdny request" + }, + "SmeCreditCardDetailsRequest": { + "type": "object" + }, + "SmeCreditCardDetailsResponse": { + "type": "object", + "required": [ + "account", + "shippingAddress" + ], + "properties": { + "account": { + "description": "Ucet pro splaceni", + "$ref": "#/definitions/SmeLendingAccount" + }, + "shippingAddress": { + "description": "Adresa pro zaslani kreditni karty", + "$ref": "#/definitions/Address" + } + } + }, + "SmeCreditCardRequest": { + "type": "object", + "required": [ + "loanAmount" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Account that should be used for credit card (so far, not used)" + }, + "loanAmount": { + "type": "integer", + "description": "credit card amount" + }, + "repaymentMethod": { + "type": "string", + "description": "zpusob platby", + "enum": [ + "DIRECT_DEBIT_MAX", + "DIRECT_DEBIT_MIN", + "CUSTOM" + ] + } + } + }, + "SmeCreditCardResponse": { + "type": "object", + "required": [ + "loanAmount" + ], + "properties": { + "account": { + "description": "ucet, se kterym je svazana karta", + "$ref": "#/definitions/SmeLendingAccount" + }, + "interestFreePeriodDays": { + "type": "integer", + "format": "int32", + "description": "pocet dni od prvniho dne v mesici, za ktere se neplati uroky" + }, + "interestFreePeriodPaymentDay": { + "type": "integer", + "format": "int32", + "description": "den v nasledujicim mesici, od kteryho se plati uroky" + }, + "interestRate": { + "type": "number", + "description": "urokova sazba" + }, + "kulKey": { + "type": "integer", + "format": "int64", + "description": "kulKey" + }, + "loanAmount": { + "type": "integer", + "format": "int64", + "description": "vyse pujcky" + }, + "monthlyFee": { + "type": "number", + "description": "poplatek za kartu, pokud nebyla zaplacena minimalni castka monthlyFeeConditionalSpendingLimit" + }, + "monthlyFeeConditionalSpendingLimit": { + "type": "integer", + "format": "int32", + "description": "minimalni mesicni castka pro splaceni, pri ktere uzivatel neplati penize za vedeni karty" + }, + "monthlyFeeFullRepayment": { + "type": "integer", + "format": "int32", + "description": "Vyse mesicniho poplatku za sluzbu full inkaso." + }, + "repaymentMethod": { + "type": "string", + "description": "zpusob platby", + "enum": [ + "DIRECT_DEBIT_MAX", + "DIRECT_DEBIT_MIN", + "CUSTOM" + ] + } + } + }, + "SmeDowntimeRequest": { + "type": "object", + "description": "Prazdny request" + }, + "SmeDowntimeResponse": { + "type": "object", + "required": [ + "open" + ], + "properties": { + "open": { + "type": "boolean", + "example": false, + "description": "Indikace, jestli je mozne zahajit prodej uveru." + } + } + }, + "SmeExpressConfirmedRequest": { + "type": "object", + "description": "Prazdny request" + }, + "SmeExpressLoanRequest": { + "type": "object", + "required": [ + "accountId", + "loanAmount" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Account that should be used for loan" + }, + "dayOfMonthlyPayment": { + "type": "integer", + "format": "int32", + "description": "Which day of the month should be used for the regular payment. Currently deprecated." + }, + "installmentsCount": { + "type": "integer", + "format": "int32", + "description": "Number of Installments requested for loan" + }, + "loanAmount": { + "type": "integer", + "description": "Loan amount" + }, + "smeInsurance": { + "description": "Insurance information about smelending product", + "$ref": "#/definitions/SmeInsurance" + } + } + }, + "SmeExpressLoanResponse": { + "type": "object", + "required": [ + "installmentsCount", + "loanAmount" + ], + "properties": { + "firstRepaymentDate": { + "type": "string", + "format": "date-time", + "description": "datum prvni splatky" + }, + "installment": { + "type": "number", + "description": "vyse splatky" + }, + "installmentsCount": { + "type": "integer", + "format": "int64", + "description": "doba splaceni" + }, + "interestRate": { + "type": "number", + "description": "urokova sazba" + }, + "kulKey": { + "type": "integer", + "format": "int64", + "description": "kulKey" + }, + "loanAmount": { + "type": "integer", + "format": "int64", + "description": "vyse pujcky" + }, + "monthlyFee": { + "type": "number", + "description": "mesicni splatka" + }, + "openingFee": { + "type": "integer", + "format": "int64", + "description": "poplatek za zrizeni smlouvy" + }, + "smeInsuranceInstallment": { + "description": "detaily pojisteni", + "$ref": "#/definitions/SmeInsuranceInstallment" + } + } + }, + "SmeFlexiConfirmedRequest": { + "type": "object", + "description": "Prazdny request" + }, + "SmeFlexiLoanRequest": { + "type": "object", + "required": [ + "accountId", + "loanAmount" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Account that should be used for loan" + }, + "loanAmount": { + "type": "integer", + "description": "Loan amount" + } + } + }, + "SmeFlexiLoanResponse": { + "type": "object", + "required": [ + "consumedFlexiLoanAmount", + "loanAmount" + ], + "properties": { + "consumedFlexiInterestRate": { + "type": "number", + "description": "urokova sazba spotrebovaneho flexi uveru" + }, + "consumedFlexiLoanAmount": { + "type": "integer", + "format": "int32", + "description": "vyse pujcky spotrebovaneho flexi uveru" + }, + "interestRate": { + "type": "number", + "description": "urokova sazba" + }, + "kulKey": { + "type": "integer", + "format": "int64", + "description": "kulKey" + }, + "loanAmount": { + "type": "integer", + "format": "int64", + "description": "vyse pujcky" + }, + "minAverageIncome": { + "type": "number", + "description": "minimalni prumerna mzda v nasledujicich 3 mesicich" + }, + "monthlyFee": { + "type": "number", + "description": "mesicni splatka" + }, + "openingFee": { + "type": "integer", + "format": "int64", + "description": "poplatek za zrizeni smlouvy" + } + } + }, + "SmeInfoLimitRequest": { + "type": "object", + "description": "Prazdny request" + }, + "SmeInfoLimitResponse": { + "type": "object", + "required": [ + "infoLimit" + ], + "properties": { + "infoLimit": { + "type": "object", + "description": "Mapa produktu s maximalni vysi pujcky. Pokud klient nema narok na pujcku, mapa ma velikost nula", + "additionalProperties": { + "type": "integer", + "format": "int32" + } + } + } + }, + "SmeInsurance": { + "type": "object", + "properties": { + "included": { + "type": "boolean", + "example": false, + "description": "Flag if user wants to use insurance for this product" + }, + "termsConfirmed": { + "type": "boolean", + "example": false, + "description": "Flag if user agreed with terms" + } + } + }, + "SmeInsuranceInstallment": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "jestli vyse pojisteni byla pritomna (included), obsahuje jeji konkretni hodnotu" + }, + "included": { + "type": "boolean", + "example": false, + "description": "jestli vyse splatky obsahuje zapoctenou hodnotu pojistni castky" + } + } + }, + "SmeInsuranceOffer": { + "type": "object", + "properties": { + "allowed": { + "type": "boolean" + }, + "rate": { + "type": "number" + } + } + }, + "SmeLendingAccount": { + "type": "object", + "required": [ + "accountId", + "accountNumber" + ], + "properties": { + "accountId": { + "type": "string", + "description": "identifikator bezneho uctu" + }, + "accountNumber": { + "description": "cislo bezneho uctu", + "$ref": "#/definitions/AccountNumber" + }, + "customName": { + "type": "string", + "description": "popis bezneho uctu" + } + }, + "description": "Objekt reprezentujici bezny ucet a jeho udaje" + }, + "SmeLendingAccountListRequest": { + "type": "object" + }, + "SmeLendingAccountListResponse": { + "type": "object", + "properties": { + "accountList": { + "type": "array", + "items": { + "$ref": "#/definitions/SmeLendingAccount" + } + } + } + }, + "SmeLendingPersonDeclensionRequest": { + "type": "object", + "description": "Prazdny request" + }, + "SmeLendingPersonDeclensionResponse": { + "type": "object", + "required": [ + "firstName", + "firstNameIn5Declension", + "lastName" + ], + "properties": { + "firstName": { + "type": "string", + "description": "krestni jmeno" + }, + "firstNameIn5Declension": { + "type": "string", + "description": "krestni jmeno klienta v patem padu." + }, + "lastName": { + "type": "string", + "description": "prijmeni" + } + } + }, + "SmeLendingPersonInfoConfirmRequest": { + "type": "object", + "properties": { + "shippingAddressForm": { + "$ref": "#/definitions/SbApplicationAddressForm" + } + }, + "description": "person details confirmation" + }, + "SmeLendingPersonInfoConfirmResponse": { + "type": "object", + "properties": { + "shippingAddressForm": { + "$ref": "#/definitions/SbApplicationAddressForm" + } + } + }, + "SmeLendingPersonInfoRejectRequest": { + "type": "object", + "description": "Prazdny request" + }, + "SmeLendingPersonInfoRequest": { + "type": "object", + "description": "Prazdny request" + }, + "SmeLendingPersonInfoResponse": { + "type": "object", + "required": [ + "businessAddress", + "firstName", + "lastName", + "phone", + "subjectOfBusiness" + ], + "properties": { + "businessAddress": { + "description": "adresa podniku", + "$ref": "#/definitions/Address" + }, + "firstName": { + "type": "string", + "description": "krestni jmeno" + }, + "lastName": { + "type": "string", + "description": "prijmeni" + }, + "phone": { + "description": "telefon", + "$ref": "#/definitions/PhoneNumber" + }, + "secondName": { + "type": "string", + "description": "druhe jmeno" + }, + "subjectOfBusiness": { + "type": "string", + "description": "predmet podnikani" + } + } + }, + "SmeLendingSelectedAccountRequest": { + "type": "object" + }, + "SmeOfferRequest": { + "type": "object", + "required": [ + "kulKey" + ], + "properties": { + "kulKey": { + "type": "integer", + "format": "int64", + "description": "Kul key" + } + }, + "description": "Offer confirmation" + }, + "SmeOfferResponse": { + "type": "object", + "description": "Prazdny response objekt" + }, + "SmeOnBoardingBusinessDetailConfirmationResponse text": { + "type": "object", + "description": "company business information" + }, + "SmeOnBoardingTokenResponse": { + "type": "object", + "required": [ + "token" + ], + "properties": { + "token": { + "type": "string", + "description": "JWT token pouzity pro komunikaci s klientskou aplikaci." + } + }, + "description": "Odpoved s tokenem pro komunikaci s klientskou aplikaci." + }, + "SmeOnboardingActiveCampaignsResponse": { + "type": "object", + "required": [ + "campaigns" + ], + "properties": { + "campaigns": { + "type": "array", + "description": "Seznam sme aktivnich kampani", + "items": { + "$ref": "#/definitions/SmeCampaign" + } + } + }, + "description": "seznam aktivnich kampani" + }, + "SmeOnboardingAddressView": { + "type": "object", + "required": [ + "country", + "descriptiveNumber", + "orientationNumber", + "street", + "town", + "zip" + ], + "properties": { + "country": { + "type": "string", + "description": "Zeme" + }, + "descriptiveNumber": { + "type": "string", + "description": "Cislo popisne" + }, + "orientationNumber": { + "type": "string", + "description": "Cislo orientacni" + }, + "street": { + "type": "string", + "description": "Ulice" + }, + "town": { + "type": "string", + "description": "Mesto" + }, + "zip": { + "type": "string", + "description": "PSC" + } + } + }, + "SmeOnboardingAmlSurveyForm - AML dotaznik": { + "type": "object", + "required": [ + "companyTurnover", + "incomeSource", + "transactionType" + ], + "properties": { + "companyTurnover": { + "description": "Obrat", + "$ref": "#/definitions/FormField«string»" + }, + "incomeSource": { + "description": "Zdroj prijmu.", + "$ref": "#/definitions/FormField«string»" + }, + "transactionType": { + "description": "Prevazujici transacke.", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "AML Dotaznik" + }, + "SmeOnboardingAmlSurveyRequest": { + "type": "object", + "required": [ + "amlForm" + ], + "properties": { + "amlForm": { + "description": "AML forumular.", + "$ref": "#/definitions/SmeOnboardingAmlSurveyForm - AML dotaznik" + } + }, + "description": "Form request AML form." + }, + "SmeOnboardingAmlSurveyResponse": { + "type": "object", + "properties": { + "amlForm": { + "$ref": "#/definitions/SmeOnboardingAmlSurveyForm - AML dotaznik" + } + }, + "description": "Form request AML form." + }, + "SmeOnboardingAppointmentForm": { + "type": "object", + "required": [ + "companyIdentificationNumber" + ], + "properties": { + "affiliatePartnerId": { + "type": "string", + "example": "24562", + "description": "ID spolupracujiciho partnera (reportovani prilezitosti k prodeji)" + }, + "affiliateSubpartnerId": { + "type": "string", + "description": "ID subpartnera, ktery spada pod spolupracujiciho partnera" + }, + "branchId": { + "description": "ID pobocky, na ktere ma ke schuzce dojit", + "$ref": "#/definitions/FormField«string»" + }, + "clientEmail": { + "description": "E-mail klienta", + "$ref": "#/definitions/FormField«string»" + }, + "clientFullName": { + "description": "Cele jmeno klienta", + "$ref": "#/definitions/FormField«string»" + }, + "clientPhoneNumber": { + "description": "Telefonni cislo klienta (ve formatu +420777888999", + "$ref": "#/definitions/FormField«string»" + }, + "companyIdentificationNumber": { + "description": "ICO", + "$ref": "#/definitions/FormField«string»" + }, + "dateTime": { + "example": "2020-01-06T14:00:00+0100", + "description": "Datum a cas (ISO 8601), na ktery ma byt schuzka sjednana", + "$ref": "#/definitions/FormField«date-time»" + }, + "documentsUrl": { + "description": "URL, ktere obdrzi klient v notifikaci o schuzce (napr. e-mailem), na kterem najde seznam dokumentu, ktere si ma s sebou na schuzku vzit", + "$ref": "#/definitions/URL" + }, + "productTypeId": { + "type": "integer", + "format": "int64", + "description": "Typ produktu, ktereho se schuzka bude tykat" + } + }, + "description": "Formular pro zalozeni zadosti klienta o schuzku na pobocce" + }, + "SmeOnboardingAppointmentRequest": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro domluveni schuzky na pobocce", + "$ref": "#/definitions/SmeOnboardingAppointmentForm" + } + }, + "description": "request pro sjednani schuzky" + }, + "SmeOnboardingAppointmentResponse": { + "type": "object", + "required": [ + "form" + ], + "properties": { + "form": { + "description": "Formular pro domluveni schuzky na pobocce", + "$ref": "#/definitions/SmeOnboardingAppointmentForm" + } + }, + "description": "response pro nabidnutou variantu" + }, + "SmeOnboardingBusinessAdditionalInfoRequest": { + "type": "object", + "properties": { + "additionalInfoForm": { + "$ref": "#/definitions/CompanyIdentificationForm text" + } + }, + "description": "Additional information" + }, + "SmeOnboardingBusinessAdditionalInfoResponse": { + "type": "object", + "properties": { + "additionalInfoForm": { + "$ref": "#/definitions/CompanyIdentificationForm text" + } + }, + "description": "additional information response" + }, + "SmeOnboardingBusinessDetailConfirmationRequest text": { + "type": "object", + "description": "potvrzeni business udaju o FOP" + }, + "SmeOnboardingBusinessDetailResponse text": { + "type": "object", + "required": [ + "address", + "companyIdentificationNumber", + "employeeCount", + "name", + "unknownEmployeeCount" + ], + "properties": { + "address": { + "description": "obchodni adresa", + "$ref": "#/definitions/SmeOnboardingAddressView" + }, + "companyIdentificationNumber": { + "type": "string", + "description": "ICO" + }, + "employeeCount": { + "type": "integer", + "format": "int64", + "description": "pocet zamestnancu" + }, + "name": { + "type": "string", + "description": "obchodni nazev spolecnosti" + }, + "unknownEmployeeCount": { + "type": "boolean", + "example": false, + "description": "zda je pocet zamestnancu znam" + } + }, + "description": "company business information" + }, + "SmeOnboardingCandidateIdentificationRequest": { + "type": "object", + "properties": { + "companyIdentificationForm": { + "$ref": "#/definitions/CompanyIdentificationForm text" + }, + "productInstance": { + "description": "Informace o producktu", + "$ref": "#/definitions/SmeOnboardingUserProductInstanceRequest" + } + }, + "description": "Company registration number" + }, + "SmeOnboardingCandidateIdentificationResponse": { + "type": "object", + "properties": { + "companyIdentificationForm": { + "$ref": "#/definitions/CompanyIdentificationForm text" + } + } + }, + "SmeOnboardingConstraintsResponse": { + "type": "object", + "properties": { + "amountStep": { + "type": "integer", + "format": "int64", + "description": "delka kroku vyse uveru" + }, + "installmentCountStep": { + "type": "integer", + "format": "int64", + "description": "delka kroku poctu splatek" + }, + "maxAmount": { + "type": "integer", + "format": "int64", + "description": "maximalni vyse uveru" + }, + "maxInstallmentCount": { + "type": "integer", + "format": "int64", + "description": "maximalni pocet splatek" + }, + "minAmount": { + "type": "integer", + "format": "int64", + "description": "minimalni vyse uveru" + }, + "minInstallmentCount": { + "type": "integer", + "format": "int64", + "description": "minimalni pocet splatek" + } + }, + "description": "response pro informaci o produktu" + }, + "SmeOnboardingContactAddressResponse": { + "type": "object", + "properties": { + "address": { + "$ref": "#/definitions/SmeOnboardingAddressView" + } + } + }, + "SmeOnboardingContactDirectChannelsRequest": { + "type": "object", + "properties": { + "contactDirectChannelsForm": { + "$ref": "#/definitions/PersonContactDirectChannelsForm" + } + }, + "description": "Form request contact data" + }, + "SmeOnboardingContactDirectChannelsResponse": { + "type": "object", + "properties": { + "contactDirectChannelsForm": { + "$ref": "#/definitions/PersonContactDirectChannelsForm" + } + } + }, + "SmeOnboardingContactDirectChannelsView": { + "type": "object", + "required": [ + "email", + "phoneNumber", + "phonePrefix" + ], + "properties": { + "email": { + "type": "string", + "description": "Email" + }, + "phoneNumber": { + "type": "string", + "description": "Telefonni cislo" + }, + "phonePrefix": { + "type": "string", + "description": "Predcisli" + } + } + }, + "SmeOnboardingContactResponse": { + "type": "object", + "properties": { + "address": { + "$ref": "#/definitions/SmeOnboardingAddressView" + }, + "directChannels": { + "$ref": "#/definitions/SmeOnboardingContactDirectChannelsView" + } + } + }, + "SmeOnboardingContactUserNameForInternetBankResponse": { + "type": "object", + "properties": { + "userName": { + "type": "string" + } + } + }, + "SmeOnboardingContractAcceptationRequest": { + "type": "object" + }, + "SmeOnboardingContractAcceptationResponse": { + "type": "object" + }, + "SmeOnboardingContractSetUpResponse": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "description": "Stav transakce v asynchronim stavu", + "enum": [ + "NOT_STARTED", + "IN_PROGRESS", + "DOCUMENT_READY", + "DENIED", + "ERROR", + "TIMEOUT" + ] + } + } + }, + "SmeOnboardingIdentityCardMinedDataResponse": { + "type": "object", + "properties": { + "birthDate": { + "type": "string" + }, + "birthNumber": { + "type": "string" + }, + "birthPlace": { + "type": "string" + }, + "citizenship": { + "type": "string" + }, + "country": { + "type": "string" + }, + "descriptiveNumber": { + "type": "string" + }, + "documentNumber": { + "type": "string" + }, + "documentValidTo": { + "type": "string" + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "orientationNumber": { + "type": "string" + }, + "street": { + "type": "string" + }, + "town": { + "type": "string" + }, + "zip": { + "type": "string" + } + } + }, + "SmeOnboardingIdentityCardRequest text": { + "type": "object", + "properties": { + "identityCardForm": { + "$ref": "#/definitions/IdentityCardForm text" + } + }, + "description": "request pro ulozeni dat z formulare manualni vyplneni" + }, + "SmeOnboardingIdentityCardResponse": { + "type": "object", + "properties": { + "identityCardForm": { + "$ref": "#/definitions/IdentityCardForm text" + } + } + }, + "SmeOnboardingLivenessResponse": { + "type": "object", + "description": "response pro zasilani binarnich dat" + }, + "SmeOnboardingPreContractAcceptationRequest": { + "type": "object" + }, + "SmeOnboardingPreContractAcceptationResponse": { + "type": "object" + }, + "SmeOnboardingPreContractDocumentResponse": { + "type": "object", + "required": [ + "pdfDocument" + ], + "properties": { + "pdfDocument": { + "description": "predsmluvni podminky", + "$ref": "#/definitions/Document" + } + } + }, + "SmeOnboardingProcessLeaveRequest": { + "type": "object", + "properties": { + "reason": { + "type": "string", + "description": "enum pro duvod ukonceni prpocesu", + "enum": [ + "UNKNOWN", + "CLOSED_BROWSER", + "POS_ACCEPTED", + "USER_CANCELLED" + ] + } + }, + "description": "request pro odchod z procesu" + }, + "SmeOnboardingProcessLeaveResponse": { + "type": "object", + "description": "response pro odchod z proceseu" + }, + "SmeOnboardingProcessStartRequest text": { + "type": "object", + "description": "request pro ziskani tokenu a zahajeni transakce" + }, + "SmeOnboardingProductInstanceConsentsRequest": { + "type": "object", + "properties": { + "preContractConsentsForm": { + "description": "Presmlouvni souhlasy a souhlas s dorucovaci adresou pro kreditku", + "$ref": "#/definitions/PreContractConsentsForm" + } + } + }, + "SmeOnboardingProductInstanceConsentsResponse": { + "type": "object", + "properties": { + "preContractConsentsForm": { + "$ref": "#/definitions/PreContractConsentsForm" + } + } + }, + "SmeOnboardingProductInstanceResponse": { + "type": "object", + "required": [ + "amount", + "productType" + ], + "properties": { + "amount": { + "type": "integer", + "format": "int64", + "description": "Vyska pujcky" + }, + "installment": { + "type": "number", + "description": "Vyska splatky" + }, + "installmentCount": { + "type": "integer", + "format": "int64", + "description": "Pocet splatek" + }, + "interestRate": { + "type": "number", + "description": "Urokova sazba" + }, + "monthlyFee": { + "type": "number", + "description": "Mesicni poplatek" + }, + "productType": { + "type": "string", + "description": "Typ produktu", + "enum": [ + "SME_CREDIT_CARD", + "SME_EXPRESS", + "SME_FLEXI" + ] + }, + "totalRepayment": { + "type": "number", + "format": "double", + "description": "Celkova splatna castka" + } + }, + "description": "response pro informaci o produktu" + }, + "SmeOnboardingScoringPollingResponse": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "description": "Stav transakce v asynchronim stavu", + "enum": [ + "PENDING", + "ACCEPTED", + "ACCEPTED_BRANCH", + "DENIED", + "ERROR", + "CONDITIONAL_APPROVAL", + "CONDITIONAL_APPROVAL_BRANCH", + "TIMEOUT", + "NOT_STARTED" + ] + } + } + }, + "SmeOnboardingScoringStartRequest": { + "type": "object", + "description": "request pro zahajeni scoringu" + }, + "SmeOnboardingScoringStartResponse": { + "type": "object", + "description": "response pro zahajeni scoringu" + }, + "SmeOnboardingSecondaryDocMinedDataResponse": { + "type": "object", + "properties": { + "birthDate": { + "type": "string" + }, + "birthNumber": { + "type": "string" + }, + "birthPlace": { + "type": "string" + }, + "documentNumber": { + "type": "string" + }, + "documentValidTo": { + "type": "string" + }, + "firstName": { + "type": "string" + }, + "issuerCountry": { + "type": "string" + }, + "lastName": { + "type": "string" + } + } + }, + "SmeOnboardingSignatureDetailResponse": { + "type": "object", + "required": [ + "accountNumber", + "amount", + "variableSymbol" + ], + "properties": { + "accountNumber": { + "description": "cislo bezneho uctu banky", + "$ref": "#/definitions/AccountNumber" + }, + "amount": { + "type": "integer", + "format": "int64", + "description": "castka k zaplaceni" + }, + "variableSymbol": { + "type": "string", + "description": "variabilni symbol platby - ico klienta" + } + } + }, + "SmeOnboardingSmsSendRequest": { + "type": "object", + "description": "request pro zaslani overovaci smsky pro telefon" + }, + "SmeOnboardingSmsSendResponse": { + "type": "object", + "properties": { + "expires": { + "type": "string", + "format": "date-time" + } + } + }, + "SmeOnboardingSmsVerifyRequest": { + "type": "object", + "properties": { + "phoneVerificationForm": { + "$ref": "#/definitions/PhoneVerificationForm" + } + }, + "description": "Form request contact data" + }, + "SmeOnboardingSmsVerifyResponse": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "enum odpoved pro podpis kontraktu", + "enum": [ + "OK", + "WRONG", + "EXPIRED", + "FAILED", + "LOCKED" + ] + } + } + }, + "SmeOnboardingUpdateExpressProductInstanceRequest": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int64" + }, + "configExpressProductForm": { + "description": "Informace k modifikaci express produktu", + "$ref": "#/definitions/UpdateExpressProductInstanceForm" + }, + "installment": { + "type": "number" + }, + "installmentCount": { + "type": "integer", + "format": "int64" + }, + "interestRate": { + "type": "number" + } + } + }, + "SmeOnboardingUpdateExpressProductInstanceResponse": { + "type": "object", + "properties": { + "configExpressProductForm": { + "$ref": "#/definitions/UpdateExpressProductInstanceForm" + } + } + }, + "SmeOnboardingUserProductInstanceRequest": { + "type": "object", + "required": [ + "amount", + "installment", + "installmentCount", + "interestRate", + "productType" + ], + "properties": { + "amount": { + "type": "integer", + "format": "int64", + "description": "Vyska pujcky" + }, + "installment": { + "type": "number", + "description": "Vyse splatky" + }, + "installmentCount": { + "type": "integer", + "format": "int64", + "description": "Pocet splatek" + }, + "interestRate": { + "type": "number", + "description": "Urok" + }, + "productType": { + "type": "string", + "description": "Typ produktu", + "enum": [ + "SME_CREDIT_CARD", + "SME_EXPRESS", + "SME_FLEXI" + ] + } + } + }, + "SmeOnboardingZenIdStatusSampleResponse": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "IN_PROGRESS", + "PROCESSED", + "ERROR" + ] + } + }, + "description": "Stav zpracovani dokladu." + }, + "SmeOnboardingZenIdUploadSampleRequest": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "Strana dokumentu", + "enum": [ + "FRONT_PAGE", + "BACK_PAGE" + ] + }, + "sample": { + "type": "string", + "description": "Snimek dokumentu zakodovady v Base64" + }, + "type": { + "type": "string", + "description": "Typ dokumentu", + "enum": [ + "IDENTITY_CARD", + "PASSPORT", + "DRIVING_LICENCE", + "NO_SECONDARY_DOCUMENT" + ] + } + }, + "description": "Datovy objekt pro zalozeni zadosti o provereni skenu odkazu." + }, + "SmeOnboardingZenIdUploadSampleResponse": { + "type": "object", + "description": "Odpoved uspesneho zalozeni pozadavku na provereni scanu dokladu." + }, + "SmeProcessStatusRequest": { + "type": "object", + "description": "Prazdny request" + }, + "SmeProcessStatusResponse": { + "type": "object", + "required": [ + "productName", + "status" + ], + "properties": { + "productName": { + "type": "string", + "description": "Jmeno produktu. Hodnota je null, pokud status je NEW" + }, + "status": { + "type": "string", + "description": "Stav posledni aplikace (resp. offer) v systemu", + "enum": [ + "CONTRACT_PRINTED", + "NEW", + "CANCEL_PENDING", + "SCORING_PENDING" + ] + } + } + }, + "SmeReturnToProcessStartRequest": { + "type": "object", + "description": "request pro zahajeni navratu do procesu (pro pujcku, ktera ma vygenerovnou smlouvu)" + }, + "SmeReturnToProcessStartResponse": { + "type": "object", + "description": "Prazdny response objekt" + }, + "SmeScoringStartRequest": { + "type": "object", + "description": "request pro zacati async scoring proceseu" + }, + "SmeScoringStartResponse": { + "type": "object", + "description": "Prazdny response objekt" + }, + "SmeSignByDeviceRequest": { + "type": "object", + "required": [ + "document", + "signature" + ], + "properties": { + "document": { + "type": "string", + "description": "kontrakt v Base64 (po overeni na OA se pozdeji pouziva pro ulozeni hashu kontraktu)" + }, + "signature": { + "type": "string", + "description": "podpis kontraktu z mobilniho zarizeni v Base64" + } + } + }, + "SmeSignByDeviceResponse": { + "type": "object", + "description": "Prazdny response objekt" + }, + "SmeSmsVerificationRequest": { + "type": "object", + "description": "Prazdny request" + }, + "SmeSmsVerificationResponse": { + "type": "object", + "properties": { + "smsSendCertValue": { + "type": "string", + "enum": [ + "SMS_SENT", + "SMS_NOT_ENABLED" + ] + } + } + }, + "SortableField": { + "type": "object", + "properties": { + "fieldName": { + "type": "string" + }, + "sortType": { + "type": "string", + "enum": [ + "DESCENDANT", + "ASCENDANT" + ] + } + } + }, + "Standing order class": { + "type": "object", + "required": [ + "amount", + "destinationAccountNumber", + "frequency", + "nextPaymentDate", + "sourceAccountId", + "sourceAccountNumber", + "standingOrderId", + "statusId" + ], + "properties": { + "amount": { + "type": "number", + "description": "Castka" + }, + "constantSymbol": { + "type": "integer", + "format": "int64", + "description": "Konstantni symbol" + }, + "description": { + "type": "string", + "description": "Nazev trvaleho prikazu" + }, + "destinationAccountNumber": { + "description": "Kreditni ucet vcetne kodu banky", + "$ref": "#/definitions/AccountNumber" + }, + "endDate": { + "type": "string", + "format": "date-time", + "description": "Datum posledni platby" + }, + "firstAmount": { + "type": "number", + "description": "Castka prvni platby" + }, + "firstPaymentDate": { + "type": "string", + "format": "date-time", + "description": "Datum prvni platby" + }, + "frequency": { + "type": "string", + "description": "Frekvence odesilani trvaleho prikazu (WEEK, TENDAYS, MONTH, QUARTER, HALFYEAR, YEAR)", + "enum": [ + "WEEK", + "TENDAYS", + "FORTNIGHT", + "MONTH", + "TWOMONTH", + "QUARTER", + "HALFYEAR", + "YEAR" + ] + }, + "lastAmount": { + "type": "number", + "description": "Castka posledni platby" + }, + "nextPaymentDate": { + "type": "string", + "format": "date-time", + "description": "Datum pristi platby" + }, + "sourceAccountId": { + "type": "string", + "description": "Id debetniho uctu" + }, + "sourceAccountNumber": { + "description": "Debetni ucet (predcisli a cislo)", + "$ref": "#/definitions/AccountNumber" + }, + "specificSymbol": { + "type": "integer", + "format": "int64", + "description": "Specificky symbol" + }, + "standingOrderId": { + "type": "string", + "description": "Id trvaleho prikazu" + }, + "statusId": { + "type": "string", + "description": "Status (ACTIVE, CANCELLED)", + "enum": [ + "CANCELLED", + "ACTIVE" + ] + }, + "variableSymbol": { + "type": "integer", + "format": "int64", + "description": "Variabilni symbol" + } + }, + "description": "Standing order class containing amounts, dates, accounts, bankref, frequency, status and payment symbols" + }, + "StandingOrderCommitCreateRequest": { + "type": "object", + "required": [ + "standingOrderForm", + "transactionId" + ], + "properties": { + "standingOrderForm": { + "description": "formular trvaleho prikazu zaslany ke zpracovani, musi byt stejny jako pri create requestu", + "$ref": "#/definitions/StandingOrderForm" + }, + "transactionId": { + "type": "string", + "description": "Id transakce, ktere bylo vygenerovano pri create requestu" + } + } + }, + "StandingOrderCommitCreateResponse": { + "type": "object", + "properties": { + "standingOrder": { + "description": "Objekt trvaleho prikazu naplneny vstupni daty a doplneny o id transakce, status atd. Je vyplnene pouze pokud se podarilo formular na vstupu zvalidovat.", + "$ref": "#/definitions/Standing order class" + }, + "standingOrderForm": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/StandingOrderForm" + } + } + }, + "StandingOrderCommitEditRequest": { + "type": "object", + "required": [ + "standingOrderForm", + "transactionId" + ], + "properties": { + "standingOrderForm": { + "description": "formular trvaleho prikazu zaslany ke zpracovani, musi byt stejny jako pri create requestu", + "$ref": "#/definitions/StandingOrderForm" + }, + "transactionId": { + "type": "string", + "description": "Id transakce, ktere vygenerovano pri edit requestu" + } + } + }, + "StandingOrderCommitEditResponse": { + "type": "object", + "properties": { + "standingOrder": { + "description": "Objekt trvaleho prikazu naplneny vstupni daty a doplneny o id transakce, status atd. Je vyplnene pouze pokud se podarilo formular na vstupu zvalidovat.", + "$ref": "#/definitions/Standing order class" + }, + "standingOrderForm": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/StandingOrderForm" + } + } + }, + "StandingOrderCreateRequest": { + "type": "object", + "required": [ + "standingOrderForm" + ], + "properties": { + "standingOrderForm": { + "description": "Vstupni formular pro zadani trvaleho prikazu.", + "$ref": "#/definitions/StandingOrderForm" + } + } + }, + "StandingOrderCreateResponse": { + "type": "object", + "properties": { + "standingOrderForm": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/StandingOrderForm" + }, + "transactionId": { + "type": "string", + "description": "Vygenerovane transactionId kterym se overuje pri commitu, ze se jedna stale o stejny trvaly prikaz. Vraci se pouze pokud byla validace formulare v poradku." + } + } + }, + "StandingOrderDeleteRequest": { + "type": "object", + "required": [ + "standingOrderId" + ], + "properties": { + "standingOrderId": { + "type": "string", + "description": "Interni id trvaleho prikazu, ktery se ma smazat" + } + } + }, + "StandingOrderDeleteResponse": { + "type": "object" + }, + "StandingOrderEditRequest": { + "type": "object", + "required": [ + "standingOrderForm" + ], + "properties": { + "standingOrderForm": { + "description": "Vstupni formular pro upraveni trvaleho prikazu.", + "$ref": "#/definitions/StandingOrderForm" + } + } + }, + "StandingOrderEditResponse": { + "type": "object", + "properties": { + "standingOrderForm": { + "description": "Pokud vstupni formular neprosel pres validace, je doplneny o infromace o chybach a vracen zpet, jinak je prazdny.", + "$ref": "#/definitions/StandingOrderForm" + }, + "transactionId": { + "type": "string", + "description": "Vygenerovane transactionId kterym se overuje pri commitu, ze se jedna stale o stejnou platbu. Vraci se pouze pokud byla validace formulare v poradku." + } + } + }, + "StandingOrderForm": { + "type": "object", + "required": [ + "amount", + "destinationAccountBank", + "destinationAccountNumber", + "firstPaymentDate", + "frequency", + "sourceAccountId", + "standingOrderId" + ], + "properties": { + "amount": { + "description": "castka platby", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "constantSymbol": { + "description": "konstantni symbol", + "$ref": "#/definitions/FormField«long»" + }, + "description": { + "description": "popis platby", + "$ref": "#/definitions/FormField«string»" + }, + "destinationAccountBank": { + "description": "kod banky ciloveho cisla uctu", + "$ref": "#/definitions/FormField«int»" + }, + "destinationAccountNumber": { + "description": "cislo ciloveho cisla uctu", + "$ref": "#/definitions/FormField«long»" + }, + "destinationAccountPrefix": { + "description": "prefix ciloveho cisla uctu", + "$ref": "#/definitions/FormField«int»" + }, + "endDate": { + "description": "datum posledni platby trvaleho prikazu", + "$ref": "#/definitions/FormField«date-time»" + }, + "firstPaymentDate": { + "description": "datum prvni platby trvaleho prikazu. Pri editaci trvaleho prikazu, ktereho datum prvni platby byl v munulost, bude pouzito jako datum pristi platby", + "$ref": "#/definitions/FormField«date-time»" + }, + "frequency": { + "description": "frekvence platby", + "$ref": "#/definitions/FormField«string»" + }, + "sourceAccountId": { + "description": "interni id zdrojoveho uctu", + "$ref": "#/definitions/FormField«string»" + }, + "specificSymbol": { + "description": "specificky symbol", + "$ref": "#/definitions/FormField«long»" + }, + "standingOrderId": { + "description": "Povinne pro editaci, Ignorovano pri vytvareni trvaleho prikazu - interni id trvaleho prikazu", + "$ref": "#/definitions/FormField«string»" + }, + "variableSymbol": { + "description": "variabilni symbol", + "$ref": "#/definitions/FormField«long»" + } + } + }, + "StandingOrderListRequest": { + "type": "object", + "required": [ + "accountId" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Interni id uctu ke kteremu se bude vracet seznam trvalych prikazu" + } + } + }, + "StandingOrderListResponse": { + "type": "object", + "required": [ + "standingOrderList" + ], + "properties": { + "standingOrderList": { + "type": "array", + "description": "Seznam trvalych prikazu nad zadanym uctem, pokud zadne nejsou vraci se prazdny seznam", + "items": { + "$ref": "#/definitions/Standing order class" + } + } + } + }, + "StandingOrderSetupRequest": { + "type": "object" + }, + "StandingOrderSetupResponse": { + "type": "object", + "required": [ + "standingOrderSetup" + ], + "properties": { + "standingOrderSetup": { + "description": "Nastaveni trvalych prikazu", + "$ref": "#/definitions/PaymentSetup" + } + } + }, + "StartInvestigationRequest": { + "type": "object", + "properties": { + "samples": { + "type": "array", + "description": "Identifikatory nahranych dokumentu urcenych k investigaci", + "items": { + "type": "string" + } + } + }, + "description": "Pozadavek na zahajeni investigace v ZenID" + }, + "StartInvestigationResponse": { + "type": "object", + "properties": { + "investigationId": { + "type": "integer", + "format": "int64", + "description": "Identifikator investigace" + } + }, + "description": "Odpoved na zahajeni investigace v ZenID" + }, + "StatementDetail": { + "type": "object", + "required": [ + "dateIssued", + "periodLabel", + "statement" + ], + "properties": { + "dateIssued": { + "type": "string", + "format": "date-time", + "description": "Datum, kdy byl vypis vytvoren." + }, + "periodLabel": { + "type": "string", + "description": "Periodicita daneho vypisu." + }, + "statement": { + "description": "Jednoznacna identifikace vypisu.", + "$ref": "#/definitions/StatementIdentification" + } + }, + "description": "Detaily k dostupnemu vypisu z uctu." + }, + "StatementDetailRequest": { + "type": "object", + "required": [ + "product", + "statement" + ], + "properties": { + "product": { + "description": "Jednoznacna identifikace produktu, pro ktery je vypis pozadovan.", + "$ref": "#/definitions/StatementProductIdentification" + }, + "statement": { + "description": "Jednoznacna identifikace vypisu.", + "$ref": "#/definitions/StatementIdentification" + } + }, + "description": "Pozadavek na stazeni vypisu." + }, + "StatementDetailResponse": { + "type": "object", + "required": [ + "binaryData", + "fileName" + ], + "properties": { + "binaryData": { + "type": "string", + "description": "Data vypisu v base64." + }, + "fileName": { + "type": "string", + "description": "Jmeno predavaneho dokumentu ve standardizovanem formatu vcetne pripony." + } + }, + "description": "Odpoved s vypisem z uctu." + }, + "StatementIdentification": { + "type": "object", + "required": [ + "id", + "number" + ], + "properties": { + "id": { + "type": "string", + "description": "Unikatni identifikator dokumentu v systemu E-Archiv." + }, + "number": { + "type": "string", + "description": "Poradove cislo vypisu, ktere obsahuje rok, napriklad 2017000013" + } + }, + "description": "Jednoznacna identifikace vypisu." + }, + "StatementProductIdentification": { + "type": "object", + "required": [ + "id", + "type" + ], + "properties": { + "id": { + "type": "string", + "description": "V zavislosti na typu produktu v type bud accountId, cardId nebo contractNumber." + }, + "type": { + "type": "string", + "description": "Typ produktu, pro ktery pozadujeme vypisy. Typy: ACCOUNT, CREDIT_CARD a INVESTMENT.", + "enum": [ + "ACCOUNT", + "CREDIT_CARD", + "INVESTMENT" + ] + } + }, + "description": "Identifikace produktu, pro ktery je vypis pozadovan." + }, + "StoreDocumentsRequest": { + "type": "object", + "required": [ + "birthNumber", + "expressProdPackageKey", + "firstName", + "idCard2Cmid", + "idCard2Number", + "idCard2Type", + "idCard2ValidTo", + "idCardCmid", + "idCardControlNumber", + "idCardNumber", + "idCardValidTo", + "lastName", + "permanentAddress", + "selfieCmid" + ], + "properties": { + "birthNumber": { + "type": "string", + "description": "Rodne cislo" + }, + "expressProdPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku pro expres pujcku" + }, + "firstName": { + "type": "string", + "description": "Jmeno klienta" + }, + "idCard2Cmid": { + "type": "string", + "description": "Cmid (identifikator dokumentu) druheho osobniho dokladu" + }, + "idCard2Number": { + "type": "string", + "description": "Cislo druheho osobniho dokladu" + }, + "idCard2Type": { + "type": "string", + "description": "Typ druheho osobniho dokladu", + "enum": [ + "PASSPORT", + "DRIVING_LICENSE", + "BIRTH_CERTIFICATE", + "IDENTITY_CARD" + ] + }, + "idCard2ValidTo": { + "type": "string", + "format": "date-time", + "description": "Platnost druheho osobniho dokladu" + }, + "idCardCmid": { + "type": "string", + "description": "Cmid (identifikator dokumentu) obcanskeho prukazu" + }, + "idCardControlNumber": { + "type": "integer", + "format": "int64", + "description": "Kontrolni cislo obcanskeho prukazu" + }, + "idCardNumber": { + "type": "string", + "description": "Cislo obcanskeho prukazu" + }, + "idCardValidTo": { + "type": "string", + "format": "date-time", + "description": "Platnost obcanskeho prukazu" + }, + "lastName": { + "type": "string", + "description": "Prijmeni klienta" + }, + "permanentAddress": { + "description": "Adresa trvaleho bydliste", + "$ref": "#/definitions/AddressPLoan" + }, + "selfieCmid": { + "type": "string", + "description": "Cmid (identifikator dokumentu) selfie" + } + }, + "description": "Ulozeni dokumentu pro manualni kontrolu podvodu klienta" + }, + "StoreDocumentsResponse": { + "type": "object", + "properties": { + "createdDocuments": { + "type": "object", + "description": "Seznam zalozenych dokladu pri automatickem zavstupovani, typ dokumentu a instancni klic dokumentu", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + } + }, + "description": "Ulozeni dokumentu pro manualni kontrolu podvodu klienta" + }, + "StoreExpressInsuranceRequest": { + "type": "object", + "required": [ + "appKey" + ], + "properties": { + "appKey": { + "type": "integer", + "format": "int64", + "description": "ID zadosti o express pujcku" + } + }, + "description": "Pozadavek na ulozeni pojisteni k express zadosti" + }, + "StructuredRemittanceInformation": { + "type": "object", + "properties": { + "creditorReferenceInformation": { + "description": "Reference information provided by the recipient that allows identification of underlying documents (e.g. invoices)", + "$ref": "#/definitions/CreditorReferenceInformation" + } + }, + "description": "Structured message for the recipient - constant, variable and specific symbol" + }, + "SuperContactRequest": { + "type": "object" + }, + "SuperContactResponse": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "phone": { + "$ref": "#/definitions/PhoneNumber" + } + } + }, + "SwitchingCreateRequest": { + "type": "object", + "required": [ + "dateOfTransition", + "destinationAccountId", + "documentBase64", + "dropSourceAccount", + "signatureBase64", + "sourceAccountNumber", + "transferStandingOrders" + ], + "properties": { + "dateOfTransition": { + "type": "string", + "format": "date-time", + "description": "Datum, ke kteremu se ma cislo prevest do MMB a zrusit v cizi bance." + }, + "destinationAccountId": { + "type": "string", + "description": "Interni id uctu, na ktery se ma ruseny ucet prevest." + }, + "documentBase64": { + "type": "string", + "description": "Dokument slouzici pro kontrolu podpisu podepsany SB." + }, + "dropSourceAccount": { + "type": "boolean", + "example": false, + "description": "Priznak ke zruseni uctu v cizi bance po prevodu do MMB." + }, + "signatureBase64": { + "type": "string", + "description": "Dokument hash slouzici pro kontrolu podpisu podepsany SB." + }, + "sourceAccountNumber": { + "description": "Cislo bezneho uctu, ktery se prevadi do MMB.", + "$ref": "#/definitions/AccountNumber" + }, + "transferStandingOrders": { + "type": "boolean", + "example": false, + "description": "Priznak prevedeni trvalych prikazu z cizi banky do MMB." + } + }, + "description": "Datovy model pozadavku pro prevod bezneho uctu z cizich bank." + }, + "SwitchingDateSetup": { + "type": "object", + "required": [ + "holidayDateList", + "maxDateAllowed", + "minDateAllowed" + ], + "properties": { + "holidayDateList": { + "type": "array", + "description": "Seznam nepracovnich dnu mezi max a min datumy", + "items": { + "type": "string", + "format": "date-time" + } + }, + "maxDateAllowed": { + "type": "string", + "format": "date-time", + "description": "Maximalni mozne datum provedeni operace" + }, + "minDateAllowed": { + "type": "string", + "format": "date-time", + "description": "Nejblizsi mozne datum provedeni operace" + } + } + }, + "SwitchingDateSetupRequest": { + "type": "object" + }, + "SwitchingDateSetupResponse": { + "type": "object", + "required": [ + "switchingDateSetup" + ], + "properties": { + "switchingDateSetup": { + "description": "Mozna nastaveni datumu", + "$ref": "#/definitions/SwitchingDateSetup" + } + } + }, + "SwitchingPreviewRequest": { + "type": "object", + "required": [ + "dateOfTransition", + "destinationAccountId", + "dropSourceAccount", + "sourceAccountNumber", + "transferStandingOrders" + ], + "properties": { + "dateOfTransition": { + "type": "string", + "format": "date-time", + "description": "Datum, ke kteremu se ma cislo prevest do MMB a zrusit v cizi bance." + }, + "destinationAccountId": { + "type": "string", + "description": "Interni id uctu, na ktery se ma ruseny ucet prevest." + }, + "dropSourceAccount": { + "type": "boolean", + "example": false, + "description": "Priznak ke zruseni uctu v cizi bance po prevodu do MMB." + }, + "sourceAccountNumber": { + "description": "Cislo bezneho uctu, ktery se prevadi do MMB.", + "$ref": "#/definitions/AccountNumber" + }, + "transferStandingOrders": { + "type": "boolean", + "example": false, + "description": "Priznak prevedeni trvalych prikazu z cizi banky do MMB." + } + }, + "description": "Datovy model pozadavku pro prevod bezneho uctu z cizich bank." + }, + "TelephoneContactAffiliate": { + "type": "object", + "properties": { + "agentId": { + "type": "string", + "description": "ID spolupracujiciho partnera" + }, + "gemid3": { + "type": "string", + "description": "ID subpartnera, ktery spada pod spolupracujiciho partnera" + } + }, + "description": "Parametry spolupracujicich partnetu pro potreby reportingu." + }, + "TelephoneContactCampaign": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Nazev kampane v CRC" + }, + "productTypeId": { + "type": "integer", + "format": "int32", + "description": "ID kampane v CRC" + } + }, + "description": "Kampan pro telefonni kontakt." + }, + "TelephoneContactCreateRequest": { + "type": "object", + "properties": { + "channel": { + "type": "string", + "description": "Kanal, odkud byl W2C zalozen.", + "enum": [ + "WEB", + "SB", + "AFFILIATE" + ] + }, + "client": { + "type": "boolean", + "example": false, + "description": "Typ klienta: klient = true, neklient = false." + }, + "contactAffiliate": { + "description": "Affiliate parametry partnera pro potreby reportingu.", + "$ref": "#/definitions/TelephoneContactAffiliate" + }, + "contactForm": { + "description": "Formular pro vytvoreni telefonniho kontaktu.", + "$ref": "#/definitions/TelephoneContactForm" + }, + "firstName": { + "type": "string", + "description": "Jmeno klienta." + }, + "lastName": { + "type": "string", + "description": "Prijmeni klienta." + }, + "orderNote": { + "type": "string", + "description": "Aplikacni poznámka pro Call Centrum." + }, + "product": { + "type": "string", + "description": "Nazev produktu." + }, + "productTypeId": { + "type": "integer", + "format": "int32", + "description": "ID typu produktu." + }, + "sourceUrl": { + "type": "string", + "description": "URL W2C formulare. Url stranky odkud prisel pozadavek." + } + }, + "description": "Zadost o vytvoreni telefonniho kontaku." + }, + "TelephoneContactCreateResponse": { + "type": "object", + "required": [ + "contactForm" + ], + "properties": { + "contactForm": { + "description": "Formular pro vytvoreni telefonniho kontaktu.", + "$ref": "#/definitions/TelephoneContactForm" + } + }, + "description": "Odpoved na vytvoreni telefonniho kontaku." + }, + "TelephoneContactForm": { + "type": "object", + "properties": { + "telephoneNumber": { + "description": "Telefonni cislo klienta s predvolbou. (tvar: 420123456789)", + "$ref": "#/definitions/FormField«string»" + } + }, + "description": "Formular pro zaslani telefonniho cisla." + }, + "TelephoneContactSetupRequest": { + "type": "object", + "properties": { + "notAffiliate": { + "type": "boolean", + "example": false, + "description": "Parametr rozlisujici, zda se jedna o kampane urcene pouze pro affiliate partnery." + } + }, + "description": "Zadost o inicialni parametry pro zanechani kontaktu." + }, + "TelephoneContactSetupResponse": { + "type": "object", + "properties": { + "contactCampaign": { + "type": "array", + "description": "Seznam aktualne platnych kampani.", + "items": { + "$ref": "#/definitions/TelephoneContactCampaign" + } + } + }, + "description": "Odpoved s inicialnimi parametry pro zanechani kontaktu." + }, + "TellerFees": { + "type": "object", + "required": [ + "banknoteFeesBuy", + "banknoteFeesExchange", + "banknoteFeesSell" + ], + "properties": { + "banknoteFeesBuy": { + "description": "Poplatky za nakup bankovek cizi meny.", + "$ref": "#/definitions/BanknoteFees" + }, + "banknoteFeesExchange": { + "description": "Poplatky za konverzi bankovek cizi meny.", + "$ref": "#/definitions/BanknoteFees" + }, + "banknoteFeesSell": { + "description": "Poplatky za prodej bankovek cizi meny.", + "$ref": "#/definitions/BanknoteFees" + } + }, + "description": "Smenarenske poplatky." + }, + "TellerFeesResponse": { + "type": "object", + "required": [ + "tellerFees" + ], + "properties": { + "tellerFees": { + "description": "Smenarenske poplatky.", + "$ref": "#/definitions/TellerFees" + } + } + }, + "Template": { + "type": "object", + "required": [ + "amount", + "currencyCode", + "destinationAccountNumber", + "sourceAccountNumber", + "templateId", + "templateName" + ], + "properties": { + "amount": { + "type": "number", + "description": "castka prevodu" + }, + "constantSymbol": { + "type": "integer", + "format": "int64", + "description": "Konstantni symbol" + }, + "currencyCode": { + "type": "string", + "description": "kod meny" + }, + "destinationAccountBic": { + "type": "string", + "description": "BIC ciloveho uctu pokud se jedna o zahranicni platbu" + }, + "destinationAccountIban": { + "type": "string", + "description": "IBAN ciloveho uctu pokud se jedna o zahranicni platbu" + }, + "destinationAccountName": { + "type": "string", + "description": "jmeno protiuctu" + }, + "destinationAccountNumber": { + "description": "Cilovy ucet, tedy protiucet, na ktery se prostredky prevadeji", + "$ref": "#/definitions/AccountNumber" + }, + "noteForPayer": { + "type": "string", + "description": "Zprava pro odesilatele" + }, + "noteForRecipient": { + "type": "string", + "description": "Zprava pro prijemce" + }, + "sourceAccountId": { + "type": "string", + "description": "interni id zdrojoveho uctu" + }, + "sourceAccountNumber": { + "description": "Pokud je vyplnene accountID, pak nemusi byt cislo debetniho uctu (uctu v bance) vyplnene. Source account je vzdy ucet ve zdejsi bance, smer platby urcuje atribut direction.", + "$ref": "#/definitions/AccountNumber" + }, + "specificSymbol": { + "type": "integer", + "format": "int64", + "description": "Specificky symbol" + }, + "templateId": { + "type": "integer", + "format": "int64", + "description": "Interni id pro jednoznacnou identifikaci sablony" + }, + "templateName": { + "type": "string", + "description": "Pojmenovani sablony klientem" + }, + "variableSymbol": { + "type": "integer", + "format": "int64", + "description": "Variabilni symbol" + } + }, + "description": "Trida pro sablonu platby." + }, + "TemplateCreateRequest": { + "type": "object", + "required": [ + "templateForm" + ], + "properties": { + "templateForm": { + "description": "formular pro vytvoreni nove sablony", + "$ref": "#/definitions/TemplateForm" + } + } + }, + "TemplateCreateResponse": { + "type": "object", + "properties": { + "templateForm": { + "description": "Formular pro vytvoreni nove sablony platby", + "$ref": "#/definitions/TemplateForm" + }, + "templateId": { + "type": "integer", + "format": "int64", + "description": "id vytvorene sablony" + } + } + }, + "TemplateDeleteRequest": { + "type": "object", + "required": [ + "templateId" + ], + "properties": { + "templateId": { + "type": "integer", + "format": "int64", + "description": "interni id mazane sablony" + } + } + }, + "TemplateDeleteResponse": { + "type": "object" + }, + "TemplateForm": { + "type": "object", + "required": [ + "currencyCode", + "destinationAccountBank", + "destinationAccountNumber", + "destinationAccountPrefix", + "noteForPayer", + "templateName" + ], + "properties": { + "amount": { + "description": "castka", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "constantSymbol": { + "description": "konstantni symbol", + "$ref": "#/definitions/FormField«long»" + }, + "currencyCode": { + "description": "kod meny", + "$ref": "#/definitions/FormField«string»" + }, + "destinationAccountBank": { + "description": "kod banky ciloveho cisla uctu", + "$ref": "#/definitions/FormField«int»" + }, + "destinationAccountNumber": { + "description": "cislo ciloveho cisla uctu", + "$ref": "#/definitions/FormField«long»" + }, + "destinationAccountPrefix": { + "description": "prefix ciloveho cisla uctu", + "$ref": "#/definitions/FormField«int»" + }, + "modelTypeId": { + "type": "string", + "description": "typ zakladane sablony DOMESTIC_PAYMENT. Pokud neni vyplneni vyplni se defaultne DOMESTIC_PAYMENT.", + "enum": [ + "DOMESTIC_PAYMENT" + ] + }, + "noteForPayer": { + "description": "zprava pro odesilatele", + "$ref": "#/definitions/FormField«string»" + }, + "noteForRecipient": { + "description": "zprava pro prijemce", + "$ref": "#/definitions/FormField«string»" + }, + "sourceAccountId": { + "description": "interni id zdrojoveho uctu", + "$ref": "#/definitions/FormField«string»" + }, + "specificSymbol": { + "description": "specificky symbol", + "$ref": "#/definitions/FormField«long»" + }, + "templateId": { + "type": "integer", + "format": "int64", + "description": "interni id sablony, u nove sablony pred potvrzenim prazdne" + }, + "templateName": { + "description": "uzivatelem zvoleny nazev sablony", + "$ref": "#/definitions/FormField«string»" + }, + "variableSymbol": { + "description": "kod meny", + "$ref": "#/definitions/FormField«long»" + } + } + }, + "TemplateListRequest": { + "type": "object", + "required": [ + "modelTypeId" + ], + "properties": { + "modelTypeId": { + "type": "string", + "description": "druh sablon, ktery se bude vracet: DOMESTIC_PAYMENT(2) sablona pro domaci platby", + "enum": [ + "DOMESTIC_PAYMENT" + ] + } + } + }, + "TemplateListResponse": { + "type": "object", + "required": [ + "templates" + ], + "properties": { + "templates": { + "type": "array", + "description": "seznam sablon zadaneho typu, pokud zadna sablona neni pro klienta dostupna vraci se prazdny seznam", + "items": { + "$ref": "#/definitions/Template" + } + } + } + }, + "TemplateUpdateRequest": { + "type": "object", + "required": [ + "templateForm" + ], + "properties": { + "templateForm": { + "description": "formular pro aktualizaci sablony", + "$ref": "#/definitions/TemplateForm" + } + } + }, + "TemplateUpdateResponse": { + "type": "object", + "properties": { + "templateForm": { + "description": "formular pro aktualizaci sablony z requestu zpravy, doplneny o chybove stavy za predpokladu, ze behem validaci byly nalezeny chyby. Pokud byly vsechny validace v poradku, vraci se prazdne.", + "$ref": "#/definitions/TemplateForm" + } + } + }, + "TermMapping": { + "type": "object", + "required": [ + "fromAmount", + "maxTermMonths", + "minTermMonths", + "terms", + "toAmount" + ], + "properties": { + "fromAmount": { + "type": "number", + "format": "double", + "description": "Minimalni vyse pujcky pro vystupní maximalni dobu splaceni" + }, + "maxTermMonths": { + "type": "integer", + "format": "int64", + "description": "Vystupni maximalni doba splaceni pro dany rozsah vyse pujcky [mesic]" + }, + "minTermMonths": { + "type": "integer", + "format": "int64", + "description": "Vystupni minimalni doba splaceni pro dany rozsah vyse pujcky [mesic]" + }, + "terms": { + "type": "array", + "description": "Nabizene moznosti pro delku splaceni v mesicich", + "items": { + "type": "integer", + "format": "int32" + } + }, + "toAmount": { + "type": "number", + "format": "double", + "description": "Maximalni vyse pujcky pro vystupni maximalni dobu splaceni" + } + } + }, + "TokenCreateRequest": { + "type": "object", + "properties": { + "ephemeralPublicKey": { + "type": "string" + } + } + }, + "TokenCreateResponse": { + "type": "object", + "properties": { + "encryptedData": { + "type": "string" + }, + "mac": { + "type": "string" + } + } + }, + "TokenRemoveRequest": { + "type": "object", + "properties": { + "tokenId": { + "type": "string" + } + } + }, + "TokenRemoveResponse": { + "type": "object", + "properties": { + "tokenId": { + "type": "string" + } + } + }, + "Transaction": { + "type": "object", + "required": [ + "actions", + "amount", + "currencyCode", + "destinationAccountNumber", + "direction", + "executedDate", + "sourceAccountNumber", + "transactionId" + ], + "properties": { + "accountTypeId": { + "type": "string", + "description": "Typ uctu transakce.", + "enum": [ + "CURRENT_1", + "CURRENT_2", + "CURRENT_3", + "CURRENT_4", + "SAVING", + "REGULAR_SAVING", + "JTV", + "RTV", + "LOAN", + "MORTAGE", + "EXPRES", + "OTHER", + "OK_CARD" + ] + }, + "actions": { + "type": "array", + "description": "seznam povolenych operaci nad transakci: PAYMENT_CREATE, TEMPLATE_CREATE, STANDING_ORDER_CREATE, PAYMENT_RETURN.", + "items": { + "type": "string", + "enum": [ + "PAYMENT_CREATE", + "TEMPLATE_CREATE", + "STANDING_ORDER_CREATE", + "PAYMENT_DELETE", + "PAYMENT_RETURN", + "TRANSACTION_RECEIPT", + "CHANGE_CATEGORY", + "CHANGE_NOTE" + ] + } + }, + "amount": { + "type": "number", + "description": "castka prevodu" + }, + "beneRewardAmount": { + "type": "number", + "description": "Odmena z bene plus." + }, + "cardNumberMasked": { + "type": "string", + "description": "Zahvezdickovane cislo karty, pokud byla transakce provedena kartou" + }, + "cardPaymentMethod": { + "type": "string", + "description": "Druh karetni operace." + }, + "categoryId": { + "type": "integer", + "format": "int64", + "description": "Unikatni identifikator kategorie, do ktere byla transakce zarazena." + }, + "constantSymbol": { + "type": "integer", + "format": "int64", + "description": "Konstantni symbol" + }, + "currencyCode": { + "type": "string", + "description": "kod meny" + }, + "destinationAccountBic": { + "type": "string", + "description": "BIC ciloveho uctu pokud se jedna o zahranicni platbu" + }, + "destinationAccountIban": { + "type": "string", + "description": "IBAN ciloveho uctu pokud se jedna o zahranicni platbu" + }, + "destinationAccountName": { + "type": "string", + "description": "jmeno protiuctu" + }, + "destinationAccountNumber": { + "description": "Cilovy ucet, tedy protiucet, na ktery se prostredky prevadeji", + "$ref": "#/definitions/AccountNumber" + }, + "direction": { + "type": "string", + "description": "Smer platby: DEBIT(DR), CREDIT(CR). V Pripade CREDIT platby je v atributech sourceAccount ulozeny uzivateluv ucet v GE, na ktery byla platba provedena a v destinationAccount atributech jsou ulzene parametry parnerskeho uctu, ze ktereho byla platba provedena", + "enum": [ + "DEBIT(DR)", + "CREDIT(CR)" + ] + }, + "dueDate": { + "type": "string", + "format": "date-time", + "description": "Datum splatnosti" + }, + "enteredDate": { + "type": "string", + "format": "date-time", + "description": "Datum zadani pozadavku" + }, + "executedDate": { + "type": "string", + "format": "date-time", + "description": "Datum zauctovani pozadavku" + }, + "noteForPayer": { + "type": "string", + "description": "Zprava pro odesilatele" + }, + "noteForRecipient": { + "type": "string", + "description": "Zprava pro prijemce" + }, + "packageId": { + "type": "integer", + "format": "int64", + "description": "vsechny transakce jsou vzdy uzaverne v baliku provadenych transakci (package), packageId je interni identifikator tohoto package" + }, + "paymentIdentification": { + "type": "string", + "description": "Popis pozadavku" + }, + "sourceAccountId": { + "type": "string", + "description": "interni id zdrojoveho uctu" + }, + "sourceAccountNumber": { + "description": "Pokud je vyplnene accountID, pak nemusi byt cislo debetniho uctu (uctu v bance) vyplnene. Source account je vzdy ucet ve zdejsi bance, smer platby urcuje atribut direction.", + "$ref": "#/definitions/AccountNumber" + }, + "specificSymbol": { + "type": "integer", + "format": "int64", + "description": "Specificky symbol" + }, + "statusId": { + "type": "string", + "description": "stav transakce namapovany z ciselniku ProcessRequestTransactionDetailedStatus a PaymentStatusForeign na zjednoduseny seznam stavu ProcessRequestTransactionStatus s hodnotami: REJECTED (zamitnute bankou), SENT (odeslena ke zpracovani), WAITING(cekajici na zpracovani), CANCELLED(zrusene klientem nebo bankou)", + "enum": [ + "REJECTED", + "SENT", + "WAITING", + "CANCELLED" + ] + }, + "statusText": { + "type": "string", + "description": "Popis stavu transakce" + }, + "transactionId": { + "type": "string", + "description": "cislo konkretni provedene transakace, ktere bylo prirazene pri zpracovani platby" + }, + "transactionPreview": { + "description": "Preview transakce s vytazenymi polozkami pro zobrazeni na rychlem prehledu.", + "$ref": "#/definitions/TransactionPreview" + }, + "typeId": { + "type": "string", + "description": "Typ transakce", + "enum": [ + "PAYMENT_ORDER_DOMESTIC", + "PAYMENT_ORDER_FOREIGN", + "PAYMENT_ORDER_FOREIGN_IN", + "PAYMENT_ORDER_FOREIGN_OUT", + "STANDING_ORDER", + "PAYMENT_CARD", + "TELLER", + "INTEREST_FEES", + "INTEREST", + "INTEREST_LOAN", + "NON_FINANCIAL_TERM_DEPOSIT", + "NON_FINANCIAL_LOAN", + "OTHER_TERM_DEPOSIT", + "OTHER_FINANCIAL_LOAN", + "UNSPECIFIED", + "PRINCIPAL_TERM_DEPOSIT", + "PRINCIPAL_LOAN", + "FX_CONVERSION", + "BLOCKED_PAYMENT_CARD" + ] + }, + "typeName": { + "type": "string", + "description": "Slovni popis druhu platby" + }, + "variableSymbol": { + "type": "integer", + "format": "int64", + "description": "Variabilni symbol" + } + }, + "description": "Objekt jedne transakce v transakcni historii. Obsahuje v sobe uschovany smer transakce z jakeho uctu na jaky ucet byla castka prevadena, v jake mene a kdy" + }, + "TransactionCategoriesResponse": { + "type": "object", + "required": [ + "categories" + ], + "properties": { + "categories": { + "type": "array", + "description": "Seznam klientovych kategorii transakci.", + "items": { + "$ref": "#/definitions/TransactionCategory" + } + } + } + }, + "TransactionCategory": { + "type": "object", + "required": [ + "budget", + "displayedInGraphs", + "id", + "name" + ], + "properties": { + "budget": { + "type": "number", + "description": "Stanoveny rozpocet pro danou kategorii." + }, + "displayedInGraphs": { + "type": "boolean", + "example": false, + "description": "Indikator toho, zdali se ma kategorie zobrazovat v grafech." + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Unikatni identifikator kategorie." + }, + "name": { + "type": "string", + "description": "Nazev kategorie." + } + } + }, + "TransactionCategoryCreateRequest": { + "type": "object", + "required": [ + "displayedInGraphs", + "name" + ], + "properties": { + "budget": { + "type": "number", + "description": "Stanoveny rozpocet pro kategorii." + }, + "displayedInGraphs": { + "type": "boolean", + "example": false, + "description": "Indikator, zdali se ma kategorie zobrazovat v grafech." + }, + "name": { + "description": "Nazev nove kategorie, max 15 znaku.", + "$ref": "#/definitions/FormField«string»" + } + } + }, + "TransactionCategoryCreateResponse": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Identifikator nove kategorie, muze byt null pokud nazev kategorie neni pripustny." + }, + "name": { + "description": "Nazev nove kategorie obsahujici validacni chyby.", + "$ref": "#/definitions/FormField«string»" + } + } + }, + "TransactionCategoryDeleteRequest": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "description": "Id kategorie, ktera se ma smazat.", + "$ref": "#/definitions/FormField«long»" + } + } + }, + "TransactionCategoryMonthlyReport": { + "type": "object", + "required": [ + "amount" + ], + "properties": { + "amount": { + "type": "number", + "description": "Castka prijmu nebo vydaju v dane kotegorii za mesic." + }, + "categoryId": { + "type": "integer", + "format": "int64", + "description": "Identifikator kategorie. Pokud neni vyplnena, pak se jedna o nezarazene transakce" + } + } + }, + "TransactionCategoryReportRequest": { + "type": "object", + "required": [ + "accountId", + "direction", + "month" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Cislo uctu, pro ktere je pozadovan report prijmu a vydaju." + }, + "direction": { + "type": "string", + "description": "Volba, zda pozadujeme primy nebo vydaje.", + "enum": [ + "DEBIT", + "CREDIT" + ] + }, + "month": { + "type": "string", + "format": "date-time", + "description": "Prvni den mesice, pro ktery pozadujeme report." + } + } + }, + "TransactionCategoryReportResponse": { + "type": "object", + "required": [ + "categoryReports" + ], + "properties": { + "categoryReports": { + "type": "array", + "description": "Prehled prijmu & vydaju za jednotlive mesice.", + "items": { + "$ref": "#/definitions/TransactionCategoryMonthlyReport" + } + } + } + }, + "TransactionCategoryRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "categoryId": { + "type": "integer", + "format": "int64", + "description": "Identifikator kategorie, ktera se ma priradit k dane transakci." + }, + "transactionId": { + "type": "string", + "description": "Identifikator transakce, ktera se ma do dane kategorie zaradit." + } + } + }, + "TransactionCategoryUpdateRequest": { + "type": "object", + "required": [ + "displayedInGraphs", + "id", + "name" + ], + "properties": { + "budget": { + "type": "number", + "description": "Stanoveny rozpocet pro kategorii." + }, + "displayedInGraphs": { + "type": "boolean", + "example": false, + "description": "Indikator, zdali se ma kategorie zobrazovat v grafech." + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Id upravene kategorie." + }, + "name": { + "description": "Novy nazev kategorie, max 15 znaku.", + "$ref": "#/definitions/FormField«string»" + } + } + }, + "TransactionCategoryUpdateResponse": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "Nazev upravovane kategorie obsahujici validacni chyby.", + "$ref": "#/definitions/FormField«string»" + } + } + }, + "TransactionExchangeRateRequest": { + "type": "object", + "required": [ + "amount", + "destinationAccountCurrency", + "sourceAccountCurrency", + "transactionCurrency" + ], + "properties": { + "amount": { + "type": "number", + "description": "Castka v transakcni mene." + }, + "destinationAccountCurrency": { + "type": "string", + "description": "Mena ciloveho uctu.", + "enum": [ + "ATS", + "AUD", + "BEF", + "HRK", + "CAD", + "CHF", + "CZK", + "DEM", + "DKK", + "ESP", + "EUR", + "FIM", + "FRF", + "GBP", + "GRD", + "HUF", + "ITL", + "JPY", + "NLG", + "NOK", + "PLN", + "PTE", + "RUB", + "SEK", + "SKK", + "RON", + "BGN", + "USD" + ] + }, + "sourceAccountCurrency": { + "type": "string", + "description": "Mena zdrojoveho uctu.", + "enum": [ + "ATS", + "AUD", + "BEF", + "HRK", + "CAD", + "CHF", + "CZK", + "DEM", + "DKK", + "ESP", + "EUR", + "FIM", + "FRF", + "GBP", + "GRD", + "HUF", + "ITL", + "JPY", + "NLG", + "NOK", + "PLN", + "PTE", + "RUB", + "SEK", + "SKK", + "RON", + "BGN", + "USD" + ] + }, + "transactionCurrency": { + "type": "string", + "description": "Mena transakce.", + "enum": [ + "ATS", + "AUD", + "BEF", + "HRK", + "CAD", + "CHF", + "CZK", + "DEM", + "DKK", + "ESP", + "EUR", + "FIM", + "FRF", + "GBP", + "GRD", + "HUF", + "ITL", + "JPY", + "NLG", + "NOK", + "PLN", + "PTE", + "RUB", + "SEK", + "SKK", + "RON", + "BGN", + "USD" + ] + } + } + }, + "TransactionExchangeRateResponse": { + "type": "object", + "required": [ + "amount", + "individualRatePhoneNumber", + "individualRatePopUp", + "individualRatePossible", + "individualRateWarning", + "transferRate" + ], + "properties": { + "amount": { + "type": "number", + "description": "Castka v mene zdrojoveho uctu." + }, + "individualRatePhoneNumber": { + "type": "string", + "description": "Telefonni cislo na dealera v MMB." + }, + "individualRatePopUp": { + "type": "string", + "description": "Dalsi varovani, ze je nutne kontaktovat dealera v MMB." + }, + "individualRatePossible": { + "type": "boolean", + "example": false, + "description": "Priznak, zdali je mozne pozadat o individualne stanovenou sazbu (u prevodu nad 500k CZK)." + }, + "individualRateWarning": { + "type": "string", + "description": "Varovani o tom, ze je nutne kontaktovat dealera v MMB, jinak bude platba zrusena." + }, + "transferRate": { + "type": "number", + "description": "Smenny kurz mezi menou zdrojoveho uctu a menout transakce." + } + } + }, + "TransactionFilter": { + "type": "object", + "properties": { + "accountIdFilter": { + "type": "string" + }, + "amountFromFilter": { + "type": "number" + }, + "amountToFilter": { + "type": "number" + }, + "categoryId": { + "type": "integer", + "format": "int64", + "description": "Kategorie, do ktere byla platba zarazena" + }, + "dateFromFilter": { + "type": "string", + "format": "date-time" + }, + "dateToFilter": { + "type": "string", + "format": "date-time" + }, + "directionFilter": { + "type": "string" + }, + "filterableFields": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/FilterableField" + } + }, + "fulltextToFilter": { + "type": "string" + }, + "indexFrom": { + "type": "integer", + "format": "int32", + "description": "Index prvniho zaznamu stranky v celkovem seznamu. Indexovano od 1." + }, + "indexTo": { + "type": "integer", + "format": "int32", + "description": "Index posledniho zaznamu stranky v celkovem seznamu. Indexovano od 1." + }, + "sortableFields": { + "type": "array", + "items": { + "$ref": "#/definitions/SortableField" + } + }, + "statusToFilter": { + "type": "string" + }, + "typeToFilter": { + "type": "string" + } + }, + "description": "Transakci filtr pomoci ktereho se zadava dotaz na seznam transakci." + }, + "TransactionListRequest": { + "type": "object", + "required": [ + "accountId", + "filter" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Cislo uctu pro ktery se maji vracet posledni dostupne transakce." + }, + "demoResponseID": { + "type": "integer", + "format": "int32" + }, + "filter": { + "description": "Transakci filtr pro vyfiltrovani seznamu transakci.", + "$ref": "#/definitions/TransactionFilter" + } + }, + "description": "Objekt pro dotaz na seznam transakci" + }, + "TransactionListResponse": { + "type": "object", + "required": [ + "transactions" + ], + "properties": { + "transactions": { + "type": "array", + "description": "Seznam poslednich tri transakci nad uctem.", + "items": { + "$ref": "#/definitions/Transaction" + } + } + }, + "description": "Objekt pro odpoved na dotaz na seznam transakci" + }, + "TransactionMonthlyReport": { + "type": "object", + "required": [ + "expenses", + "income", + "month" + ], + "properties": { + "balance": { + "type": "number", + "description": "Konecny zustatek pro dany mesic, muze byt null." + }, + "expenses": { + "type": "number", + "description": "Mesicni vydaje." + }, + "income": { + "type": "number", + "description": "Mesicni prijmy." + }, + "month": { + "type": "string", + "format": "date-time", + "description": "Datum prvniho dne mesice, ke kteremu se hodnoty vazou." + } + } + }, + "TransactionNoteRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "noteForPayer": { + "description": "Poznamka, ktera se ma priradit k dane transakci.", + "$ref": "#/definitions/FormField«string»" + }, + "transactionId": { + "type": "string", + "description": "Identifikator transakce, ktera se ma do dane kategorie zaradit." + } + } + }, + "TransactionPreview": { + "type": "object", + "required": [ + "date", + "title" + ], + "properties": { + "date": { + "type": "string", + "format": "date-time", + "description": "Datum, ktere se ma zobrazit na vypise transakci, podle typu platby to muze byt datum zadani, datum splatnosti, atd." + }, + "simpleListTitle": { + "type": "string" + }, + "subTitle": { + "type": "string", + "description": "Datum ktere se ma zobrazit na vypise transakci, podle typu platby to muze byt datum zadani, datum splatnosti, atd." + }, + "title": { + "type": "string", + "description": "Titulek transakce, jedna se o hlavni pojmenovani transakce." + } + } + }, + "TransactionReceiptRequest": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "base64PdfReceipt": { + "type": "string", + "description": "PDF potvrzeni zakodovane v base64." + }, + "transactionId": { + "type": "string", + "description": "ID transakce, pro kterou je potvrzeni pozadovano." + } + }, + "description": "Request objekt pro ziskani potvrzeni platby v PDF." + }, + "TransactionReportRequest": { + "type": "object", + "required": [ + "accountId" + ], + "properties": { + "accountId": { + "type": "string", + "description": "Cislo uctu, pro ktere je pozadovan report prijmu a vydaju." + } + } + }, + "TransactionReportResponse": { + "type": "object", + "required": [ + "monthlyReports" + ], + "properties": { + "monthlyReports": { + "type": "array", + "description": "Prehled prijmu & vydaju za jednotlive mesice.", + "items": { + "$ref": "#/definitions/TransactionMonthlyReport" + } + } + } + }, + "URL": { + "type": "object", + "properties": { + "authority": { + "type": "string" + }, + "content": { + "type": "object" + }, + "defaultPort": { + "type": "integer", + "format": "int32" + }, + "deserializedFields": { + "$ref": "#/definitions/URLStreamHandler" + }, + "file": { + "type": "string" + }, + "host": { + "type": "string" + }, + "path": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "int32" + }, + "protocol": { + "type": "string" + }, + "query": { + "type": "string" + }, + "ref": { + "type": "string" + }, + "serializedHashCode": { + "type": "integer", + "format": "int32" + }, + "userInfo": { + "type": "string" + } + } + }, + "URLStreamHandler": { + "type": "object" + }, + "UfoAuthenticationResponse": { + "type": "object", + "required": [ + "isAuthorized", + "token" + ], + "properties": { + "isAuthorized": { + "type": "boolean", + "example": false, + "description": "Priznak, zda banker zadal spravne prihlasovaci udaje." + }, + "passwordExpired": { + "type": "boolean", + "example": false, + "description": "Priznak, ze heslo uzivatele vyprselo a je potreba ho obnovit." + }, + "token": { + "type": "string", + "description": "JWT token pouzity pro komunikaci s klientskou aplikaci." + } + }, + "description": "Odpoved na prihlaseni bankere pomoci loginu do UFO banky." + }, + "UpdateCancellationRequest": { + "type": "object", + "required": [ + "prodPackageKey" + ], + "properties": { + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku" + } + }, + "description": "Pozadavek na prepsani hodnot u stornovane zadosti" + }, + "UpdateCifRequest": { + "type": "object", + "required": [ + "cifId", + "prodPackageKey" + ], + "properties": { + "cifId": { + "type": "string", + "description": "Identifikator klienta" + }, + "prodPackageKey": { + "type": "integer", + "format": "int64", + "description": "Cislo produktoveho balicku, ktery obsahuje ostatni bankovni produkty" + } + }, + "description": "Pozadavek na dodatecne ulozeni CIF k produktove zadosti" + }, + "UpdateExpressProductInstanceForm": { + "type": "object", + "required": [ + "amount", + "installment", + "installmentCount", + "interestRate" + ], + "properties": { + "amount": { + "description": "Vyska pujcky", + "$ref": "#/definitions/FormField«long»" + }, + "installment": { + "description": "Vyse splatky", + "$ref": "#/definitions/FormField«bigdecimal»" + }, + "installmentCount": { + "description": "Pocet splatek", + "$ref": "#/definitions/FormField«long»" + }, + "interestRate": { + "description": "Urok", + "$ref": "#/definitions/FormField«bigdecimal»" + } + } + }, + "UploadSMSSignedDocumentInitRequest": { + "type": "object", + "required": [ + "cif" + ], + "properties": { + "cif": { + "type": "string", + "description": "cif" + }, + "documentType": { + "type": "string", + "enum": [ + "BANK_PRODUCT_SIGN", + "LOAN_CONTRACT_SIGN", + "LOAN_PRE_CONTRACT_SIGN", + "LOAN_WITH_INSTALLMENT_INSURANCE_CONTRACT_SIGN" + ] + }, + "prodPackageKey": { + "type": "integer", + "format": "int64" + }, + "loanAmount": { + "type": "number" + }, + "interestRate": { + "type": "number" + }, + "monthlyFee": { + "type": "number" + }, + "variantKey": { + "type": "integer", + "format": "int64" + }, + "cmId": { + "type": "string" + } + }, + "description": "Request zahajeni uploadu dokumentu s SMS podpisem" + }, + "UploadSMSSignedDocumentInitResponse": { + "type": "object", + "required": [ + "transactionId" + ], + "properties": { + "transactionId": { + "type": "integer", + "format": "int64", + "description": "ID transakce" + } + }, + "description": "Vysledek zahajeni uploadu dokumentu s SMS podpisem" + }, + "UploadSMSSignedDocumentRequest": { + "type": "object", + "required": [ + "cif", + "mobileKey", + "signedDocument", + "transactionId" + ], + "properties": { + "cif": { + "type": "string", + "description": "cif" + }, + "mobileKey": { + "type": "string", + "description": "Mobilni klic" + }, + "signedDocument": { + "description": "Podepsany dokument", + "$ref": "#/definitions/SignedDocument" + }, + "transactionId": { + "type": "integer", + "format": "int64", + "description": "ID transakce" + } + }, + "description": "Pozadavek na nahrani podepsaneho dokumentu mobilnim klicem do DMS" + }, + "UploadSMSSignedDocumentResponse": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "description": "Stav nahravani podepsaneho dokumentu do DMS", + "enum": [ + "IN_PROGRESS", + "DONE", + "ERROR" + ] + }, + "verifiedValue": { + "type": "string", + "description": "Odpoved pro podpis mobilnim klicem", + "enum": [ + "OK", + "NOT_FOUND", + "WRONG_MK", + "WRONG_MK_LOCKED", + "SMS_TIMED_OUT" + ] + } + }, + "description": "Response na nahrani podepsaneho dokumentu do DMS" + }, + "UploadSMSSignedDocumentSendSMSRequest": { + "type": "object", + "required": [ + "cif", + "transactionId" + ], + "properties": { + "cif": { + "type": "string", + "description": "cif" + }, + "transactionId": { + "type": "integer", + "format": "int64", + "description": "Id transakce" + } + }, + "description": "Pozadavek na odeslani mobilniho klice" + }, + "UploadSMSSignedDocumentSendSMSResponse": { + "type": "object", + "required": [ + "smsSendingResult" + ], + "properties": { + "smsSendingResult": { + "type": "string", + "description": "Vysledek odesilani SMS", + "enum": [ + "SMS_SENT", + "SMS_NOT_ENABLED" + ] + } + }, + "description": "Vysledek posilani mobilniho klice" + }, + "UploadSampleRequest": { + "type": "object", + "properties": { + "documentType": { + "type": "string", + "description": "Typ dokumentu", + "enum": [ + "PASSPORT", + "DRIVING_LICENSE", + "NATIONAL_ID", + "SELFIE" + ] + }, + "fileName": { + "type": "string", + "description": "Nazev souboru" + }, + "lastModified": { + "type": "string", + "format": "date-time", + "description": "Datum a cas posledni zmeny v nahravanem snimku dokumentu" + }, + "sample": { + "type": "string", + "description": "Snimek dokumentu zakodovady v Base64" + } + }, + "description": "Pozadavek na nahrani dokumentu do ZenID" + }, + "UploadSampleResponse": { + "type": "object", + "properties": { + "minedData": { + "description": "Vytezena data pri OCR na nahranem dokumentu", + "$ref": "#/definitions/SampleMinedData" + }, + "sampleId": { + "type": "string", + "description": "Identifikator nahraneho dokumentu" + } + }, + "description": "Odpoved na nahrani dokumentu do ZenID" + }, + "UploadSignedDocumentRequest": { + "type": "object", + "required": [ + "signedDocument" + ], + "properties": { + "signedDocument": { + "description": "Podepsany dokument", + "$ref": "#/definitions/SignedDocument" + } + }, + "description": "Pozadavek na nahrani podepsaneho dokumentu do DMS" + }, + "UploadSignedDocumentResponse": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "description": "Stav nahravani podepsaneho dokumentu do DMS", + "enum": [ + "IN_PROGRESS", + "DONE", + "ERROR" + ] + } + }, + "description": "Pozadavek na nahrani podepsaneho dokumentu do DMS" + }, + "User": { + "type": "object", + "required": [ + "cif", + "contact", + "disponentFlag", + "longCif", + "masterUserId", + "state", + "userId", + "userIdentification" + ], + "properties": { + "allowedMenus": { + "type": "array", + "description": "seznam povolenych menu", + "items": { + "type": "string", + "enum": [ + "FXMONEY_MENU" + ] + } + }, + "cif": { + "type": "string", + "description": "identifikace klienta kratka varianta" + }, + "clientType": { + "type": "string", + "description": "typ klienta: FO(10), PO(20), ZAM(30), ZDRAV(40), FOP(50)", + "enum": [ + "FO", + "PO", + "ZAM", + "ZDRAV", + "FOP" + ] + }, + "contact": { + "description": "kontaktni udaje uzivatele, pokud zadne nejsou dostupne vraci se prazdny objekt", + "$ref": "#/definitions/Contact" + }, + "disponentFlag": { + "type": "string", + "description": "priznak zda je uzivatel disponent: DISPONENT_ACTIVE(1), DISPONENT_NOT_ACTIVE(0)", + "enum": [ + "DISPONENT_ACTIVE", + "DISPONENT_NOT_ACTIVE" + ] + }, + "hashCif": { + "type": "string", + "description": "Hash cifu klienta" + }, + "hashUserId": { + "type": "string", + "description": "Hash userid" + }, + "longCif": { + "type": "string", + "description": "identifikace klienta dlouha varianta" + }, + "masterUserId": { + "type": "integer", + "format": "int64", + "description": "u disponenta je zde userId majitele uctu, jinak je stejne jako userId" + }, + "state": { + "type": "string", + "description": "priznak aktivity uzivatel", + "enum": [ + "ACTIVE", + "ACQUISITION" + ] + }, + "userId": { + "type": "integer", + "format": "int64", + "description": "interni id uzivatele" + }, + "userIdentification": { + "description": "identifikace uzivatele jako jmeno, prijmeni, popis", + "$ref": "#/definitions/UserIdentification" + } + } + }, + "UserDetailResponse": { + "type": "object", + "required": [ + "user" + ], + "properties": { + "user": { + "description": "detail uzivatele", + "$ref": "#/definitions/User" + } + } + }, + "UserIdentification": { + "type": "object", + "properties": { + "birthNumber": { + "type": "string", + "description": "rodne cislo uzivatele" + }, + "companyName": { + "type": "string", + "description": "jmeno spolecnosti pokud se jedna o firmu" + }, + "companyNumber": { + "type": "string", + "description": "ico pokud se jedna o firmu" + }, + "firstName": { + "type": "string", + "description": "krestni jmeno uzivatele" + }, + "icoNumber": { + "type": "string", + "description": "ico uzivatele" + }, + "lastName": { + "type": "string", + "description": "prijmeni uzivatele" + }, + "personalNumber": { + "type": "string", + "description": "rodne cislo uzivatele, pokud se jedna o fyzickou osobu" + }, + "title": { + "type": "string", + "description": "vsechny tituly uzivatele, jak ty co se pisi pred jmeno, tak i ty, co se pisi za jmeno" + } + }, + "description": " Zakladni parametry identifikujici uzivatele. Uzivatel by vzdy mel mit vyplnene bud jmeno a prijmeni a nebo popis." + }, + "UserPhoneContactListResponse": { + "type": "object", + "properties": { + "phoneContactList": { + "type": "array", + "description": "Seznam telefonnich kontaktu", + "items": { + "$ref": "#/definitions/PhoneContact" + } + } + } + }, + "UserSettingsForm": { + "type": "object", + "properties": { + "iMessage": { + "description": "Povoleni iMessage", + "$ref": "#/definitions/FormField«string»" + }, + "imessage": { + "$ref": "#/definitions/FormField«string»" + }, + "watch": { + "description": "Povoleni hodinek", + "$ref": "#/definitions/FormField«string»" + }, + "widgets": { + "description": "Aktivace widgetu", + "$ref": "#/definitions/FormField«string»" + } + } + }, + "UserSettingsListResponse": { + "type": "object", + "properties": { + "settingsList": { + "type": "array", + "description": "Seznam povolenych nastaveni.", + "items": { + "$ref": "#/definitions/Settings" + } + } + }, + "description": "Ziskani seznamu povolenych nastaveni usera na kanalu." + }, + "UserSettingsUpdateRequest": { + "type": "object", + "required": [ + "userSettingsForm" + ], + "properties": { + "userSettingsForm": { + "description": "Formular nastaveni", + "$ref": "#/definitions/UserSettingsForm" + } + } + }, + "UserSettingsUpdateResponse": { + "type": "object", + "required": [ + "userSettingsForm" + ], + "properties": { + "userSettingsForm": { + "description": "Formular nastaveni", + "$ref": "#/definitions/UserSettingsForm" + } + } + }, + "UserUpdateRequest": { + "type": "object", + "properties": { + "contactForm": { + "description": "Kontaktni formular", + "$ref": "#/definitions/ContactForm" + } + } + }, + "UserUpdateResponse": { + "type": "object", + "properties": { + "contactForm": { + "$ref": "#/definitions/ContactForm" + } + } + }, + "VaultUnlockRequest": { + "type": "object", + "properties": { + "reason": { + "type": "string" + } + } + }, + "VaultUnlockResponse": { + "type": "object", + "properties": { + "activationId": { + "type": "string" + }, + "encryptedVaultEncryptionKey": { + "type": "string" + } + } + }, + "VersionCheck": { + "type": "object", + "required": [ + "update" + ], + "properties": { + "displayableFeatures": { + "type": "array", + "description": "Seznam zobrazitelnych featur po spusteni", + "items": { + "type": "string", + "enum": [ + "ACQUISITION" + ] + } + }, + "infoText": { + "type": "string", + "description": "Info text" + }, + "update": { + "type": "string", + "description": "Priznak potreby aktualizace frontendove aplikace (Hodnoty - NOT_REQUIRED, RECOMMENDED, REQUIRED)", + "enum": [ + "NOT_REQUIRED", + "RECOMMENDED", + "REQUIRED" + ] + } + }, + "description": "Trida pro kontrolu kompatibility apliakce uzivatele s CBL." + }, + "VersionCheckResponse": { + "type": "object", + "required": [ + "versionCheck" + ], + "properties": { + "plannedMaintenanceMessage": { + "description": "Hlaska o blizicim se vypadku.", + "$ref": "#/definitions/PlannedMaintenanceMessage" + }, + "versionCheck": { + "description": "Objekt kontroly kompatibility aplikace uzivatele s verzi CBL", + "$ref": "#/definitions/VersionCheck" + } + } + }, + "View": { + "type": "object", + "properties": { + "contentType": { + "type": "string" + } + } + }, + "odpoved push serveru na hello": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "description": "status" + } + } + }, + "request pro druhy dokument": { + "type": "object", + "properties": { + "secondaryDocumentDetailForm": { + "$ref": "#/definitions/Druhy doklad w2w" + }, + "secondaryDocumentForm": { + "$ref": "#/definitions/Druhy doklad" + }, + "documentType": { + "type": "string", + "enum": [ + "IDENTITY_CARD", + "PASSPORT", + "DRIVING_LICENCE", + "NO_SECONDARY_DOCUMENT" + ] + } + }, + "description": "request pro druhy dokument" + }, + "response pro druhy dokument": { + "type": "object", + "properties": { + "documentType": { + "type": "string", + "enum": [ + "IDENTITY_CARD", + "PASSPORT", + "DRIVING_LICENCE", + "NO_SECONDARY_DOCUMENT" + ] + }, + "secondaryDocumentDetailForm": { + "$ref": "#/definitions/Druhy doklad w2w" + }, + "secondaryDocumentForm": { + "$ref": "#/definitions/Druhy doklad" + } + }, + "description": "response pro druhy dokument" + }, + "statistiky odesilani push notifikaci pro jednu objednavku.": { + "type": "object", + "properties": { + "pushOrderId": { + "type": "integer", + "format": "int64", + "description": "ID objednavky na poslani push notifikaci" + }, + "usersError": { + "type": "integer", + "format": "int32", + "description": "Pocet notifikaci k objednavce ktere pri poslani na push server selhaly" + }, + "usersPrepared": { + "type": "integer", + "format": "int32", + "description": "Pocet notifikaci k objednavce pripravenych k odeslani" + }, + "usersSent": { + "type": "integer", + "format": "int32", + "description": "Pocet notifikaci k objednavce ktere byly odeslany na push server" + } + } + } + } +} \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF043_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF043_001.xml new file mode 100644 index 0000000..d194cdc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF043_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWF043 + 001 + active + hub API:MWF043 + + + + + ADMIPAddress + + false + + + + + ADMNoveHeslo + + false + + + + + ADMPopis + + false + + + + + ADMSessionID + + false + + + + + ADMSuperUziID + + false + + + + + ADMUzivatelID + + false + + + + + + + ADMOperaceProvedena + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF043_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF043_001_Dapi.xml new file mode 100644 index 0000000..010db9b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF043_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF043 + 001 + DEVL + + + HUB + MWF043 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF060_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF060_001.xml new file mode 100644 index 0000000..dbb0612 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF060_001.xml @@ -0,0 +1,692 @@ + + + + + HUB + MWF060 + 001 + active + hub API:MWF060 + + + + + CisloUctu + + false + + + + + Kontext + + false + + + + + + + AAAdresat + + false + + + + + AACO + + false + + + + + AACP + + false + + + + + AACtvrt + + false + + + + + AAObec + + false + + + + + AAPSC + + false + + + + + AAPosta + + false + + + + + AAUlice + + false + + + + + AAZeme + + false + + + + + BeznyZustatek + + false + + + + + CisloUctu + + false + + + + + CisloUctuAGB + + false + + + + + DanZUroku + + false + + + + + Data + + + + RS_CISLOUCTU + + false + + + + + + false + + + + + DatumDalsihoVypisu + + false + + + + + DatumGenerovaniVypisu + + false + + + + + DatumOtevreni + + false + + + + + DatumOtevreniRamce + + false + + + + + DatumPosledniAktivity + + false + + + + + DatumPosledniVklad + + false + + + + + DatumPoslednihoVypisu + + false + + + + + DisponibilniZustatek + + false + + + + + DisponibilniZustatekZitra + + false + + + + + DistribuceVypisu + + false + + + + + DruheJmeno + + false + + + + + FlexiBusTyp + + false + + + + + IndexUrokoveSazby + + false + + + + + InformativniZustatek + + false + + + + + Jmeno + + false + + + + + KlasifikaceUctu + + false + + + + + KonecnyZustatek + + false + + + + + Mena + + false + + + + + MenaKod + + false + + + + + MesicniObratyCR + + false + + + + + MesicniObratyDB + + false + + + + + MinimalniKreditnizustatek + + false + + + + + ObchodniJmeno + + false + + + + + ObchodniMistoKod + + false + + + + + ObchodniMistoNazev + + false + + + + + ObjektUveru + + false + + + + + PausalniPoplatek + + false + + + + + PausalniPoplatekKTK + + false + + + + + PausalniPoplatekPocetMesicuZdarma + + false + + + + + PeriodaVypisu + + false + + + + + PoplatkovyPlan + + false + + + + + PoplatkovyPlanMatersky + + false + + + + + PoplatkovyPlanPuvodni + + false + + + + + PoplatkovyPlanTisk + + false + + + + + PoplatkovyPlan_Sleva + + false + + + + + PostovniPoukazka + + false + + + + + PouzitaAA + + false + + + + + Prijmeni + + false + + + + + ProduktKod + + false + + + + + ProduktKodBU + + false + + + + + ProduktKodStary + + false + + + + + ProduktNazev + + false + + + + + RamecExistuje + + false + + + + + RocniObratyCR + + false + + + + + RocniObratyDB + + false + + + + + SankcniUrok + + false + + + + + SchvalenyLimitKontokorentu + + false + + + + + SdruzUcetPoplatky + + false + + + + + SdruzUcetUroky + + false + + + + + ServisniPoplatek + + false + + + + + SpecialniNabidka + + false + + + + + SplatnyUrok + + false + + + + + SpravaNavazanehoUURemedialem + + false + + + + + StavUctu + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + TrU_DatumPozadavkuNaZruseni + + false + + + + + TrU_DatumVerifZruseniTransp + + false + + + + + TrU_DatumVerifikaceTransp + + false + + + + + TrU_DatumVytvoreni + + false + + + + + TrU_KodKategorie + + false + + + + + TrU_KodMeny + + false + + + + + TrU_StatusTransparentnosti + + false + + + + + TrU_UrednikPozadujiciZruseni + + false + + + + + TrU_VerifUrednikZruseniTransp + + false + + + + + TrU_VerifikovatUrednikem + + false + + + + + TrU_VytvorilUrednik + + false + + + + + TrU_ZkraceneJmeno + + false + + + + + TransakceNavic + + false + + + + + TypUctu + + false + + + + + UrokZaCerpaniKontokorentu + + false + + + + + UrokovaSazba + + false + + + + + VypisNaKonciMesice + + false + + + + + VypisyFrekvence + + false + + + + + VypisySpecifickeDatum + + false + + + + + VysePoslednihoVkladu + + false + + + + + ZpracovaneDatumZustatku + + false + + + + + ZpusobPripisu + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF060_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF060_001_Dapi.xml new file mode 100644 index 0000000..28c87b2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF060_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF060 + 001 + DEVL + + + HUB + MWF060 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF061_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF061_001.xml new file mode 100644 index 0000000..3402248 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF061_001.xml @@ -0,0 +1,486 @@ + + + + + HUB + MWF061 + 001 + active + hub API:MWF061 + + + + + CisloUctu + + false + + + + + + + AAAdresat + + false + + + + + AACO + + false + + + + + AACP + + false + + + + + AACtvrt + + false + + + + + AAObec + + false + + + + + AAPSC + + false + + + + + AAPosta + + false + + + + + AAUlice + + false + + + + + AAZeme + + false + + + + + AktualniCerpanaJistina + + false + + + + + BlokaceNeprioritni_Datum + + false + + + + + BlokaceNeprioritni_Kod + + false + + + + + BlokacePrioritni_Datum + + false + + + + + BlokacePrioritni_Kod + + false + + + + + CelkemCastkaPoSplatnosti + + false + + + + + CelkovaDluznaCastka + + false + + + + + CelkovyPocetSplatek + + false + + + + + CisloBU + + false + + + + + DatumCerpani + + false + + + + + DatumNasledujiciSplatky + + false + + + + + DatumNasledujiciSplatkyPoplatku + + false + + + + + DatumOtevreni + + false + + + + + DatumPojisteni + + false + + + + + DatumPosledniSplatky + + false + + + + + DatumPrvniNazaplaceneSplatky + + false + + + + + DatumPrvniPoSplatnosti + + false + + + + + DatumPrvniSplatky + + false + + + + + DatumRevize + + false + + + + + DenSplatky + + false + + + + + DisponibilniKCerpani + + false + + + + + DistribuceVypisu + + false + + + + + DruheJmeno + + false + + + + + Jmeno + + false + + + + + MesicniSplatka + + false + + + + + ObchodniMistoKod + + false + + + + + ObchodniMistoNazev + + false + + + + + ObjektUveru + + false + + + + + PausalniPolatek + + false + + + + + PausalniPoplatekPerioda + + false + + + + + Pausalni_poplatekFrekvence + + false + + + + + PocetDniPoSplatnosti + + false + + + + + Pojisteni + + false + + + + + PoplatekPojisteni + + false + + + + + PoplatekPojisteniAktivni + + false + + + + + PoplatekPojisteniCislo + + false + + + + + PoplatekStanovenYN + + false + + + + + PoplatekZaVypis + + false + + + + + PouzitaAA + + false + + + + + Prijmeni + + false + + + + + PristupitelRC + + false + + + + + PriznakOdepsanehoUveru + + false + + + + + ProduktKod + + false + + + + + SplatkaUrok + + false + + + + + SplatnyFlexikredit + + false + + + + + StavUctu + + false + + + + + SumaNezauctovanychTRNKarta + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + UrokovaSazba + + false + + + + + VyseUveru + + false + + + + + ZbyvaSplatitCelkem + + false + + + + + ZbyvaSplatitJistina + + false + + + + + ZbyvaSplatitSplatek + + false + + + + + ZbyvaSplatitUrok + + false + + + + + ZesplatnenoAnoNe + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF061_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF061_001_Dapi.xml new file mode 100644 index 0000000..66b05c7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF061_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF061 + 001 + DEVL + + + HUB + MWF061 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF062_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF062_001.xml new file mode 100644 index 0000000..2772830 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF062_001.xml @@ -0,0 +1,720 @@ + + + + + HUB + MWF062 + 001 + active + hub API:MWF062 + + + + + APZadosti + + false + + + + + NacistPuvodniZadostAnoNe + + false + + + + + + + AVZamOdData + + false + + + + + CIF + + false + + + + + CisloBU + + false + + + + + CisloOM + + false + + + + + CisloPasu + + false + + + + + Data + + + + RS_DOPLNKOVESLUZBY + + false + + + + + RS_DATUMZALOZENIDS + + false + + + + + RS_STAVDS + + false + + + + + RS_DATUMUCINNOSTI + + false + + + + + + false + + + + + DatumPodpisu + + false + + + + + DrzitelCIF + + false + + + + + DrzitelHeslo + + false + + + + + DrzitelRC + + false + + + + + DrzitelTelefon + + false + + + + + DrzitelTelefonMobil + + false + + + + + DrzitelTelefonMobilPredcisli + + false + + + + + DrzitelTelefonPredcisli + + false + + + + + DrzitelTelefonZamestnani + + false + + + + + DrzitelTelefonZamestnaniPredcisli + + false + + + + + DuvodRozhodnuti + + false + + + + + DuvodZamitnuti + + false + + + + + EvidencniCislo + + false + + + + + KlientBydliNaAdreseOdPouzeRok + + false + + + + + KlientCisloDruhehoDokladu + + false + + + + + KlientCisloOP + + false + + + + + KlientCisloPrvnihoDokladu + + false + + + + + KlientDruhBydleni + + false + + + + + KlientDruhDruhehoDokladu + + false + + + + + KlientDruhPrvnihoDokladu + + false + + + + + KlientICO + + false + + + + + KlientJmeno + + false + + + + + KlientObchodniJmeno + + false + + + + + KlientPlatnostOP + + false + + + + + KlientPracPomer + + false + + + + + KlientPredlDokladPrijem + + false + + + + + KlientPredlDokladSIPO + + false + + + + + KlientPredlDokladUcetNajem + + false + + + + + KlientPredlDokladVypisUcet + + false + + + + + KlientPredlDokladVyuctTelefon + + false + + + + + KlientPrijmeni + + false + + + + + KlientRC + + false + + + + + KlientStav + + false + + + + + KlientVzdelani + + false + + + + + KlientZamCisloOrientacni + + false + + + + + KlientZamCisloPopisne + + false + + + + + KlientZamCistyPrijem + + false + + + + + KlientZamICO + + false + + + + + KlientZamMobil + + false + + + + + KlientZamMobilPredvolba + + false + + + + + KlientZamNazev + + false + + + + + KlientZamObec + + false + + + + + KlientZamOdRoku + + false + + + + + KlientZamOdRokuPouzeRok + + false + + + + + KlientZamPSC + + false + + + + + KlientZamPovolani + + false + + + + + KlientZamPrijemDom + + false + + + + + KlientZamSplatky + + false + + + + + KlientZamTel + + false + + + + + KlientZamTelPredvolba + + false + + + + + KlientZamUlice + + false + + + + + KlientZamVyzOsoby + + false + + + + + KlientZamZakladDane + + false + + + + + LimitBankomat + + false + + + + + LimitObchodnik + + false + + + + + MSISDN + + false + + + + + MaxPocetTransakciDen + + false + + + + + NahraditKartuCislo + + false + + + + + PCTTabulka + + false + + + + + PojisteniVydajuPozadovano + + false + + + + + PojisteniVydajuSchvaleno + + false + + + + + PoleDS + + false + + + + + PrimarniUrednik + + false + + + + + StatEU + + false + + + + + StatniPrislusnost + + false + + + + + TechnologieKarty + + false + + + + + TypKarty + + false + + + + + TypKartySchvaleno + + false + + + + + Vypracoval + + false + + + + + VytlaceneJmeno + + false + + + + + VytlaceneJmeno2 + + false + + + + + ZAKartaCO + + false + + + + + ZAKartaCP + + false + + + + + ZAKartaObec + + false + + + + + ZAKartaPSC + + false + + + + + ZAKartaPosta + + false + + + + + ZAKartaTypAdresy + + false + + + + + ZAKartaUlice + + false + + + + + ZAPINCO + + false + + + + + ZAPINCP + + false + + + + + ZAPINObec + + false + + + + + ZAPINPSC + + false + + + + + ZAPINPosta + + false + + + + + ZAPINTypAdresy + + false + + + + + ZAPINUlice + + false + + + + + ZamestnaniTelefon + + false + + + + + ZpusobDistribucePIN + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF062_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF062_001_Dapi.xml new file mode 100644 index 0000000..7099b2c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF062_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF062 + 001 + DEVL + + + HUB + MWF062 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF067_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF067_001.xml new file mode 100644 index 0000000..603f54d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF067_001.xml @@ -0,0 +1,395 @@ + + + + + HUB + MWF067 + 001 + active + hub API:MWF067 + + + + + CisloUctu + + false + + + + + + + AAAdresat + + false + + + + + AACO + + false + + + + + AACP + + false + + + + + AACtvrt + + false + + + + + AAObec + + false + + + + + AAPSC + + false + + + + + AAPosta + + false + + + + + AAUlice + + false + + + + + AAZeme + + false + + + + + BeznyZustatek + + false + + + + + CisloUctu + + false + + + + + DanZUroku + + false + + + + + DatumDalsihoVypisu + + false + + + + + DatumGenerovaniVypisu + + false + + + + + DatumOtevreni + + false + + + + + DisponibilniZustatek + + false + + + + + DistribuceVypisu + + false + + + + + DruheJmeno + + false + + + + + Jmeno + + false + + + + + JmenoUctu + + false + + + + + KonecnyZustatek + + false + + + + + Mena + + false + + + + + MesicniObratyCR + + false + + + + + MesicniObratyDB + + false + + + + + ObchodniMistoKod + + false + + + + + ObchodniMistoKodNazev + + false + + + + + ObchodniMistoNazev + + false + + + + + PausalniPoplatek + + false + + + + + PeriodaVypisu + + false + + + + + PouzitaAA + + false + + + + + Prijmeni + + false + + + + + ProduktKod + + false + + + + + ProduktNazev + + false + + + + + RocniObratyCR + + false + + + + + RocniObratyDB + + false + + + + + SankcniUrok + + false + + + + + SdruzUcetPoplatky + + false + + + + + ServisniPoplatek + + false + + + + + SplatnyUrok + + false + + + + + StavUctu + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + TypPoplatkovehoPlanu + + false + + + + + UrokSazbaPasmo1 + + false + + + + + UrokSazbaPasmo2 + + false + + + + + UrokSazbaPasmo3 + + false + + + + + UrokSazbaPasmo4 + + false + + + + + UrokSazbaPasmo5 + + false + + + + + UrokovaSazba + + false + + + + + UrokovyPlan + + false + + + + + UrokovyPlanTisk + + false + + + + + VypisNaKonciMesice + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF067_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF067_001_Dapi.xml new file mode 100644 index 0000000..6b9bb75 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF067_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF067 + 001 + DEVL + + + HUB + MWF067 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF071_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF071_001.xml new file mode 100644 index 0000000..8668a8f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF071_001.xml @@ -0,0 +1,132 @@ + + + + + HUB + MWF071 + 001 + active + hub API:MWF071 + + + + + ADMAdresa + + false + + + + + ADMIPAddress + + false + + + + + ADMOMKod + + false + + + + + ADMOMNazev + + false + + + + + ADMPopis + + false + + + + + ADMPozice + + false + + + + + ADMSessionID + + false + + + + + ADMSuperUziID + + false + + + + + ADMUzivatelID + + false + + + + + + + ADMPocet + + false + + + + + ADMPozice + + false + + + + + Data + + + + RS_ADMCISLOOM + + false + + + + + RS_ADMOMNAZEV + + false + + + + + RS_ADMADRESA + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF071_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF071_001_Dapi.xml new file mode 100644 index 0000000..712ce5a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF071_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF071 + 001 + DEVL + + + HUB + MWF071 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF081_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF081_001.xml new file mode 100644 index 0000000..cb06b6e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF081_001.xml @@ -0,0 +1,675 @@ + + + + + HUB + MWF081 + 001 + active + hub API:MWF081 + + + + + CIF + + false + + + + + ZnovuNacistUpominky + + false + + + + + + + Adresat + + false + + + + + CO + + false + + + + + CP + + false + + + + + CisloPasu + + false + + + + + CistyMesicniPrijem + + false + + + + + Ctvrt + + false + + + + + DatumExpiraceKontaktnichUdaju + + false + + + + + DatumExpiracePotvrzeniStudent + + false + + + + + DatumNarozeni + + false + + + + + DatumNastehovani + + false + + + + + DatumPosledniAktualizace + + false + + + + + DatumPotvrzeniPrijmu + + false + + + + + DatumZalozeniCIFu + + false + + + + + DruhBydleni + + false + + + + + DruhKlienta + + false + + + + + DruhPrijmuKlienta + + false + + + + + DruhaStatniPrislusnost + + false + + + + + DruheJmeno + + false + + + + + EMail + + false + + + + + EkonomickySektor + + false + + + + + Funkce + + false + + + + + IDSdeleniEmail + + false + + + + + IDSdeleniExpiraceKU + + false + + + + + IDSdeleniMobil + + false + + + + + IDSdeleniZuzeneSJM + + false + + + + + JinyOsobniDoklad1Cislo + + false + + + + + JinyOsobniDoklad1Platnost + + false + + + + + JinyOsobniDoklad1StatVydal + + false + + + + + JinyOsobniDoklad1Typ + + false + + + + + JinyOsobniDoklad2Cislo + + false + + + + + JinyOsobniDoklad2Platnost + + false + + + + + JinyOsobniDoklad2StatVydal + + false + + + + + JinyOsobniDoklad2Typ + + false + + + + + KlasifikaceKlienta + + false + + + + + KodObchodnihoMista + + false + + + + + MistoNarozeni + + false + + + + + NazevZamestnavatele + + false + + + + + NejvyssiDosazeneVzdelani + + false + + + + + NezadouciKlient + + false + + + + + NoEmailFlag + + false + + + + + OPStatVydal + + false + + + + + ObchodniMistoNazev + + false + + + + + Obec + + false + + + + + Osloveni + + false + + + + + OsobniBanker + + false + + + + + PSC + + false + + + + + PasStatVydal + + false + + + + + PlatnostKontaktnichUdaju + + false + + + + + PlatnostOPdo + + false + + + + + PlatnostPasuDo + + false + + + + + PocetVyzivovanychDeti + + false + + + + + Pohlavi + + false + + + + + Posta + + false + + + + + PotvrzeniStudent + + false + + + + + Povolani + + false + + + + + Prijmeni + + false + + + + + PrijmovaSkupina + + false + + + + + PrvniJmeno + + false + + + + + Rezidence + + false + + + + + RodinnyStav + + false + + + + + RodneCislo + + false + + + + + SerieACisloOP + + false + + + + + SocialneEkonomickaSkupina + + false + + + + + SpiciUcet + + false + + + + + SpravniCelek + + false + + + + + StatniPrislusnost + + false + + + + + TelefonDalsi + + false + + + + + TelefonDalsiPredvolba + + false + + + + + TelefonDomu + + false + + + + + TelefonDomuPredvolba + + false + + + + + TelefonMobilni + + false + + + + + TelefonMobilniPredvolba + + false + + + + + TelefonZamestnani + + false + + + + + TelefonZamestnaniPredvolba + + false + + + + + Titul + + false + + + + + TitulZaJmenem + + false + + + + + TypDruhehoDokladu + + false + + + + + TypKlienta + + false + + + + + Ulice + + false + + + + + VztahKBance + + false + + + + + ZAMCO + + false + + + + + ZAMCP + + false + + + + + ZAMICO + + false + + + + + ZAMPSC + + false + + + + + ZAMPosta + + false + + + + + ZAMUlice + + false + + + + + ZamObec + + false + + + + + ZamestnanOd + + false + + + + + Zeme + + false + + + + + ZkraceneJmeno + + false + + + + + ZuzeneSJM + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF081_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF081_001_Dapi.xml new file mode 100644 index 0000000..a068553 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF081_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF081 + 001 + DEVL + + + HUB + MWF081 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF082_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF082_001.xml new file mode 100644 index 0000000..9642bf7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF082_001.xml @@ -0,0 +1,507 @@ + + + + + HUB + MWF082 + 001 + active + hub API:MWF082 + + + + + CIF + + false + + + + + ZnovuNacistUpominky + + false + + + + + + + Adresat + + false + + + + + CO + + false + + + + + CP + + false + + + + + CisloPasu + + false + + + + + Ctvrt + + false + + + + + DIC + + false + + + + + DatumExpiraceKontaktnichUdaju + + false + + + + + DatumPlatnostiOP + + false + + + + + DatumPodnikaniDo + + false + + + + + DatumPodnikaniOd + + false + + + + + DatumPosledniAktualizace + + false + + + + + DatumZalozeniCIFu + + false + + + + + DruheJmeno + + false + + + + + EMail + + false + + + + + EkonomickySektor + + false + + + + + Funkce + + false + + + + + ICO + + false + + + + + ICOHlavnihoSpolku + + false + + + + + IDSdeleniDatumPodnikaniDo + + false + + + + + IDSdeleniDatumPodnikaniOd + + false + + + + + IDSdeleniEmail + + false + + + + + IDSdeleniExpiraceKU + + false + + + + + IDSdeleniICOHlavnihoSpolku + + false + + + + + IDSdeleniMobil + + false + + + + + JinyOsobniDoklad2Cislo + + false + + + + + JinyOsobniDoklad2Platnost + + false + + + + + JinyOsobniDoklad2Typ + + false + + + + + Jmeno + + false + + + + + KodObchodnihoMista + + false + + + + + NezadouciKlient + + false + + + + + OKEC + + false + + + + + OROddil + + false + + + + + ORSoud + + false + + + + + ORVlozka + + false + + + + + ObchodniJmeno + + false + + + + + ObchodniMistoNazev + + false + + + + + Obec + + false + + + + + Osloveni + + false + + + + + OsobniBanker + + false + + + + + PSC + + false + + + + + PlatnostKontaktnichUdaju + + false + + + + + PlatnostPasuDo + + false + + + + + PocetZamestnancu + + false + + + + + Posta + + false + + + + + PravniForma + + false + + + + + Prijmeni + + false + + + + + RatingKlienta + + false + + + + + Rezidence + + false + + + + + RodneCislo + + false + + + + + SerieACisloOP + + false + + + + + SocialneEkonomickaSkupina + + false + + + + + SpiciUcet + + false + + + + + SpravniCelek + + false + + + + + Telefon + + false + + + + + TelefonDalsi + + false + + + + + TelefonDalsiPredvolba + + false + + + + + TelefonMobilni + + false + + + + + TelefonMobilniPredvolba + + false + + + + + TelefonPredvolba + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + TypKlienta + + false + + + + + Ulice + + false + + + + + VztahKBance + + false + + + + + ZECO + + false + + + + + Zeme + + false + + + + + ZkraceneJmeno + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF082_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF082_001_Dapi.xml new file mode 100644 index 0000000..35740a6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF082_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF082 + 001 + DEVL + + + HUB + MWF082 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF083_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF083_001.xml new file mode 100644 index 0000000..de45d9f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF083_001.xml @@ -0,0 +1,132 @@ + + + + + HUB + MWF083 + 001 + active + hub API:MWF083 + + + + + CisloUctu + + false + + + + + NacistVsechnyBlokace + + false + + + + + TypUctu + + false + + + + + + + Data + + + + RS_CASTKA + + false + + + + + RS_DATUMEXPIRACE + + false + + + + + RS_DATUMPORIZENI + + false + + + + + RS_DUVODBLOKACE + + false + + + + + RS_DUVODBLOKACE2 + + false + + + + + RS_ID + + false + + + + + RS_CISLOVETY + + false + + + + + RS_TYPVETY + + false + + + + + RS_BARVA + + false + + + + + RS_TYPBLOKACE + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF083_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF083_001_Dapi.xml new file mode 100644 index 0000000..15cb2db --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF083_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF083 + 001 + DEVL + + + HUB + MWF083 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF086_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF086_001.xml new file mode 100644 index 0000000..277e7cc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF086_001.xml @@ -0,0 +1,447 @@ + + + + + HUB + MWF086 + 001 + active + hub API:MWF086 + + + + + CisloUctu + + false + + + + + FiltrCastkaDo + + false + + + + + FiltrCastkaOd + + false + + + + + FiltrDatumDo + + false + + + + + FiltrDatumOd + + false + + + + + FiltrIDTransakce + + false + + + + + FiltrVariabilniSymbol + + false + + + + + KodOM + + false + + + + + StatusDo + + false + + + + + StatusOd + + false + + + + + VcetneInternichKonverzi + + false + + + + + + + Data + + + + RS_CISLOTRANSAKCE + + false + + + + + RS_DATUMSPLATNOSTI + + false + + + + + RS_DATUMZUCTOVANI + + false + + + + + RS_ID + + false + + + + + RS_KOD + + false + + + + + RS_KODBANKY + + false + + + + + RS_KODTRANSAKCE + + false + + + + + RS_OMCR + + false + + + + + RS_POPIS + + false + + + + + RS_PORIZUJICI + + false + + + + + RS_RCODE + + false + + + + + RS_RSEQ + + false + + + + + RS_TICISLOVETY + + false + + + + + RS_TIZDROJ + + false + + + + + RS_TRTYP + + false + + + + + RS_TYPTRANSAKCE + + false + + + + + RS_UCETPLATCE + + false + + + + + RS_UCETPRIJEMCE + + false + + + + + RS_VALUTA + + false + + + + + RS_ZUSTATEK + + false + + + + + RS_DATUMPORIZENI + + false + + + + + RS_STAV + + false + + + + + RS_AVPOLE + + false + + + + + RS_DANUROKU + + false + + + + + RS_KONSTANTNISYMBOL + + false + + + + + RS_MENATRANSAKCE + + false + + + + + RS_NAZEVUCTU + + false + + + + + RS_NAZEVUCTUPRIJEMCE + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_STAVVK + + false + + + + + RS_VARIABILNISYMBOL + + false + + + + + RS_UCETPARTNERSKY + + false + + + + + RS_NAZEVUCTUPARTNERSKY + + false + + + + + RS_KODBANKYPARTNERSKY + + false + + + + + RS_CASTKA + + false + + + + + RS_KODKREDITDEBET + + false + + + + + RS_KODTRANSAKCEEXTERNI + + false + + + + + RS_PORADITRANSAKCE + + false + + + + + RS_POPIS2 + + false + + + + + RS_POPIS3 + + false + + + + + RS_AVPOLE2 + + false + + + + + RS_AVPOLE3 + + false + + + + + RS_AVPOLE4 + + false + + + + + RS_REFERENCEPLATCE + + false + + + + + RS_VARIABILNISENDTOSYMBOL + + false + + + + + RS_KONSTANTNISENDTOSYMBOL + + false + + + + + RS_SPECIFICKYSENDTOSYMBOL + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF086_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF086_001_Dapi.xml new file mode 100644 index 0000000..228253b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF086_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF086 + 001 + DEVL + + + HUB + MWF086 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF097_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF097_001.xml new file mode 100644 index 0000000..08f44c3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF097_001.xml @@ -0,0 +1,734 @@ + + + + + HUB + MWF097 + 001 + active + hub API:MWF097 + + + + + AVZamOdData + + false + + + + + CIF + + false + + + + + CisloBU + + false + + + + + CisloOM + + false + + + + + CisloPasu + + false + + + + + DatumPodpisu + + false + + + + + DrzitelCIF + + false + + + + + DrzitelDatumNarozeni + + false + + + + + DrzitelHeslo + + false + + + + + DrzitelPracPomer + + false + + + + + DrzitelRC + + false + + + + + DrzitelTelefon + + false + + + + + DrzitelTelefonMobil + + false + + + + + DrzitelTelefonMobilPredcisli + + false + + + + + DrzitelTelefonPredcisli + + false + + + + + DrzitelTelefonZamestnani + + false + + + + + DrzitelTelefonZamestnaniPredcisli + + false + + + + + EvidencniCislo + + false + + + + + Heslo + + false + + + + + KlientBydliNaAdreseOd + + false + + + + + KlientCisloDruhehoDokladu + + false + + + + + KlientCisloOP + + false + + + + + KlientCisloPrvnihoDokladu + + false + + + + + KlientDruhBydleni + + false + + + + + KlientDruhDruhehoDokladu + + false + + + + + KlientDruhPrvnihoDokladu + + false + + + + + KlientEmail + + false + + + + + KlientJmeno + + false + + + + + KlientPlatnostOP + + false + + + + + KlientPracPomer + + false + + + + + KlientPredlozeneDoklady + + false + + + + + KlientPrijmeni + + false + + + + + KlientRC + + false + + + + + KlientStav + + false + + + + + KlientTrCisloOrientacni + + false + + + + + KlientTrCisloPopisne + + false + + + + + KlientTrMobil + + false + + + + + KlientTrMobilPredvolba + + false + + + + + KlientTrObec + + false + + + + + KlientTrPSC + + false + + + + + KlientTrPosta + + false + + + + + KlientTrTelDomu + + false + + + + + KlientTrTelDomuPredvolba + + false + + + + + KlientTrUlice + + false + + + + + KlientVzdelani + + false + + + + + KlientZamCisloOrientacni + + false + + + + + KlientZamCisloPopisne + + false + + + + + KlientZamCistyPrijem + + false + + + + + KlientZamICO + + false + + + + + KlientZamMobil + + false + + + + + KlientZamMobilPredvolba + + false + + + + + KlientZamNazev + + false + + + + + KlientZamObec + + false + + + + + KlientZamOdRoku + + false + + + + + KlientZamPSC + + false + + + + + KlientZamPovolani + + false + + + + + KlientZamPrijemDom + + false + + + + + KlientZamSplatky + + false + + + + + KlientZamTel + + false + + + + + KlientZamTelPredvolba + + false + + + + + KlientZamUlice + + false + + + + + KlientZamVyzOsoby + + false + + + + + KlientZamZakladDane + + false + + + + + LimitBankomat + + false + + + + + LimitObchodnik + + false + + + + + MSISDN + + false + + + + + MaxPocetTransakciDen + + false + + + + + NahraditKartuCislo + + false + + + + + PCTTabulka + + false + + + + + PKEmbossovana + + false + + + + + PojisteniVydajuPozadovano + + false + + + + + PoleDS + + false + + + + + PrimarniUrednik + + false + + + + + StatEU + + false + + + + + StatniPrislusnost + + false + + + + + TechnologieKarty + + false + + + + + TypKarty + + false + + + + + VytlaceneJmeno + + false + + + + + VytlaceneJmeno2 + + false + + + + + ZAKartaCO + + false + + + + + ZAKartaCP + + false + + + + + ZAKartaObec + + false + + + + + ZAKartaPSC + + false + + + + + ZAKartaPosta + + false + + + + + ZAKartaTypAdresy + + false + + + + + ZAKartaUlice + + false + + + + + ZAPINCO + + false + + + + + ZAPINCP + + false + + + + + ZAPINObec + + false + + + + + ZAPINPSC + + false + + + + + ZAPINPosta + + false + + + + + ZAPINTypAdresy + + false + + + + + ZAPINUlice + + false + + + + + ZalozeniIB + + false + + + + + ZpusobDistribucePIN + + false + + + + + + + APZadosti + + false + + + + + Data + + + + RS_DOPLNKOVESLUZBY + + false + + + + + RS_DATUMZALOZENIDS + + false + + + + + RS_STAVDS + + false + + + + + RS_DATUMUCINNOSTI + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF097_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF097_001_Dapi.xml new file mode 100644 index 0000000..42ebded --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF097_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF097 + 001 + DEVL + + + HUB + MWF097 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0B1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0B1_001.xml new file mode 100644 index 0000000..c58822f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0B1_001.xml @@ -0,0 +1,62 @@ + + + + + HUB + MWF0B1 + 001 + active + hub API:MWF0B1 + + + + + INBANK + + false + + + + + INCLID + + false + + + + + + + Data + + + + RS_OUPROC + + false + + + + + RS_OUEMSG + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0B1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0B1_001_Dapi.xml new file mode 100644 index 0000000..5150837 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0B1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0B1 + 001 + DEVL + + + HUB + MWF0B1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0B6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0B6_001.xml new file mode 100644 index 0000000..1f7c101 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0B6_001.xml @@ -0,0 +1,195 @@ + + + + + HUB + MWF0B6 + 001 + active + hub API:MWF0B6 + + + + + CpiType + + false + + + + + Fixation + + false + + + + + FreeResources + + false + + + + + InterestType + + false + + + + + LoanAmount + + false + + + + + Maturity + + false + + + + + MonthlyResources + + false + + + + + OffsetType + + false + + + + + RealtyAmount + + false + + + + + YearResources + + false + + + + + + + CpiIcbsId + + false + + + + + Data + + + + RS_MATURITY + + false + + + + + RS_INSTALMENT + + false + + + + + RS_INTERESTRATE + + false + + + + + RS_PRODUCTID + + false + + + + + RS_FIXATION + + false + + + + + RS_FREERESOURCES + + false + + + + + RS_PPIAMOUNT + + false + + + + + RS_CALCTYPE + + false + + + + + RS_RPSN + + false + + + + + RS_CARDIF + + false + + + + + + false + + + + + SalesProductType + + false + + + + + TotalAmount + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0B6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0B6_001_Dapi.xml new file mode 100644 index 0000000..34f218f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0B6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0B6 + 001 + DEVL + + + HUB + MWF0B6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0C5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0C5_001.xml new file mode 100644 index 0000000..1c15c10 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0C5_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF0C5 + 001 + active + hub API:MWF0C5 + + + + + APPL_KEY + + false + + + + + WF_STATE + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0C5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0C5_001_Dapi.xml new file mode 100644 index 0000000..cb0d158 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0C5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0C5 + 001 + DEVL + + + HUB + MWF0C5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0D2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0D2_001.xml new file mode 100644 index 0000000..74e8282 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0D2_001.xml @@ -0,0 +1,129 @@ + + + + + HUB + MWF0D2 + 001 + active + hub API:MWF0D2 + + + + + ChannelId + + false + + + + + ID_OM + + false + + + + + LOAN_AMOUNT + + false + + + + + NetMonthlyIncome + + false + + + + + OtherMonthlyPayments + + false + + + + + PRODUCT_CLASS + + false + + + + + TERM + + false + + + + + + + INST_AMOUNT + + false + + + + + INT_RATE + + false + + + + + LOAN_AMOUNT + + false + + + + + MaxLoanAmount + + false + + + + + MaxTerm + + false + + + + + RPSN + + false + + + + + TERM + + false + + + + + TOTAL_AMOUNT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0D2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0D2_001_Dapi.xml new file mode 100644 index 0000000..d6f4d1e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0D2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0D2 + 001 + DEVL + + + HUB + MWF0D2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0D7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0D7_001.xml new file mode 100644 index 0000000..4139a5b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0D7_001.xml @@ -0,0 +1,181 @@ + + + + + HUB + MWF0D7 + 001 + active + hub API:MWF0D7 + + + + + BirthNumber + + false + + + + + ChannelId + + false + + + + + ClientType + + false + + + + + ICO + + false + + + + + + + BusinessName + + false + + + + + CardHolderFirstName + + false + + + + + CardHolderSecondName + + false + + + + + CardHolderSurname + + false + + + + + Data + + + + RS_SERVICEFEEAMOUNT + + false + + + + + RS_SERVICEFEETYPE + + false + + + + + RS_RATEINDEX + + false + + + + + RS_INTRATEPROC + + false + + + + + RS_INTRATEREAL + + false + + + + + RS_DEVIATION + + false + + + + + RS_SALESPRODUCTTYPE + + false + + + + + + false + + + + + EBInsruranceUVA + + false + + + + + InsuranceMaxAge + + false + + + + + PPISmeRate + + false + + + + + TitlePrefix + + false + + + + + TitleSuffix + + false + + + + + VPSFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0D7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0D7_001_Dapi.xml new file mode 100644 index 0000000..cc58010 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0D7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0D7 + 001 + DEVL + + + HUB + MWF0D7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0D8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0D8_001.xml new file mode 100644 index 0000000..bd6325e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0D8_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF0D8 + 001 + active + hub API:MWF0D8 + + + + + APP_SET_KEY + + false + + + + + CONFIRM_OK_FLAG + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0D8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0D8_001_Dapi.xml new file mode 100644 index 0000000..e6031bc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0D8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0D8 + 001 + DEVL + + + HUB + MWF0D8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0D9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0D9_001.xml new file mode 100644 index 0000000..2e8ef3a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0D9_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF0D9 + 001 + active + hub API:MWF0D9 + + + + + Autosignature + + false + + + + + ContractSigned + + false + + + + + ProdPackageKey + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0D9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0D9_001_Dapi.xml new file mode 100644 index 0000000..7a6ff91 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0D9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0D9 + 001 + DEVL + + + HUB + MWF0D9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0G0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0G0_001.xml new file mode 100644 index 0000000..304a4e7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0G0_001.xml @@ -0,0 +1,83 @@ + + + + + HUB + MWF0G0 + 001 + active + hub API:MWF0G0 + + + + + LOAN_AMOUNT + + false + + + + + MATURITY + + false + + + + + PPI_TYPE + + false + + + + + PRODUCT + + false + + + + + REALTY_AMOUNT + + false + + + + + + + Data + + + + RS_FIXATION + + false + + + + + RS_INTEREST_RATE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0G0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0G0_001_Dapi.xml new file mode 100644 index 0000000..84eaba5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0G0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0G0 + 001 + DEVL + + + HUB + MWF0G0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0G1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0G1_001.xml new file mode 100644 index 0000000..28912e2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0G1_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWF0G1 + 001 + active + hub API:MWF0G1 + + + + + AppKey + + false + + + + + CIF + + false + + + + + ChannelId + + false + + + + + CmID + + false + + + + + InstPtKey + + false + + + + + ProdPkgKey + + false + + + + + SignatureID + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0G1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0G1_001_Dapi.xml new file mode 100644 index 0000000..852c987 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0G1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0G1 + 001 + DEVL + + + HUB + MWF0G1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0G5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0G5_001.xml new file mode 100644 index 0000000..b86528a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0G5_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWF0G5 + 001 + active + hub API:MWF0G5 + + + + + CompletationChannelID + + false + + + + + GeneratedDocumentID + + false + + + + + ProdPackageKey + + false + + + + + + + CmID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0G5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0G5_001_Dapi.xml new file mode 100644 index 0000000..b5c710c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0G5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0G5 + 001 + DEVL + + + HUB + MWF0G5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0G9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0G9_001.xml new file mode 100644 index 0000000..07573d8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0G9_001.xml @@ -0,0 +1,94 @@ + + + + + HUB + MWF0G9 + 001 + active + hub API:MWF0G9 + + + + + LOAN_AMOUNT + + false + + + + + PPI_FLAG + + false + + + + + RPMT_TP_ID + + false + + + + + SALES_PROD_TYPE + + false + + + + + TERM + + false + + + + + + + INSTALMENT + + false + + + + + INT_RATE + + false + + + + + OPENING_FEE_AMT + + false + + + + + PPI_AMOUNT + + false + + + + + TOTAL_LOAN_AMOUNT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0G9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0G9_001_Dapi.xml new file mode 100644 index 0000000..26d79bc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0G9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0G9 + 001 + DEVL + + + HUB + MWF0G9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0H2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0H2_001.xml new file mode 100644 index 0000000..226b186 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0H2_001.xml @@ -0,0 +1,409 @@ + + + + + HUB + MWF0H2 + 001 + active + hub API:MWF0H2 + + + + + AddressCity + + false + + + + + AddressContCity + + false + + + + + AddressContCountry + + false + + + + + AddressContHouseNumber + + false + + + + + AddressContLandRegistryNumber + + false + + + + + AddressContSince + + false + + + + + AddressContStreet + + false + + + + + AddressContZipCode + + false + + + + + AddressCountry + + false + + + + + AddressEmpCity + + false + + + + + AddressEmpHouseNumber + + false + + + + + AddressEmpLandRegistryNumber + + false + + + + + AddressEmpStreet + + false + + + + + AddressEmpZipCode + + false + + + + + AddressHouseNumber + + false + + + + + AddressLandRegistryNumber + + false + + + + + AddressStreet + + false + + + + + AddressZipCode + + false + + + + + BirthCountry + + false + + + + + BirthDate + + false + + + + + BirthNumber + + false + + + + + BirthPlace + + false + + + + + BranchId + + false + + + + + CIF + + false + + + + + ChannelId + + false + + + + + Consent101SignDate + + false + + + + + ConsultantID + + false + + + + + DependPersonsCount + + false + + + + + EducationType + + false + + + + + Email + + false + + + + + EmployeeProcessRole + + false + + + + + EmployeeRoleId + + false + + + + + EmploymentId + + false + + + + + EmploymentName + + false + + + + + EmploymentSince + + false + + + + + EmploymentType + + false + + + + + HousingType + + false + + + + + IDCard2Number + + false + + + + + IDCard2PublishingCountry + + false + + + + + IDCard2Type + + false + + + + + IDCard2ValidTo + + false + + + + + IDCardNumber + + false + + + + + IDCardPublishingCountry + + false + + + + + IDCardType + + false + + + + + IDCardValidTo + + false + + + + + IncomeAverageThreeMonths + + false + + + + + MaritalAssets + + false + + + + + MaritalState + + false + + + + + Name + + false + + + + + Nationality + + false + + + + + Occupation + + false + + + + + PhoneNumber + + false + + + + + Sex + + false + + + + + Surname + + false + + + + + + + AppKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF0H2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF0H2_001_Dapi.xml new file mode 100644 index 0000000..cc61f54 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF0H2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF0H2 + 001 + DEVL + + + HUB + MWF0H2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF104_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF104_001.xml new file mode 100644 index 0000000..6f743d0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF104_001.xml @@ -0,0 +1,507 @@ + + + + + HUB + MWF104 + 001 + active + hub API:MWF104 + + + + + CIF + + false + + + + + ID_Navrh + + false + + + + + NAS_Flag + + false + + + + + ZnovuNacistUpominky + + false + + + + + + + Adresat + + false + + + + + AktualniDatum + + false + + + + + CO + + false + + + + + CP + + false + + + + + Ctvrt + + false + + + + + DalsiDokladCislo + + false + + + + + DatumExpiraceKontaktnichUdaju + + false + + + + + DatumExpiracePotvrzeniStudent + + false + + + + + DatumNarozeni + + false + + + + + DatumOtevreni + + false + + + + + DatumSouhlasu101 + + false + + + + + DatumTiskuOS + + false + + + + + DelikvenceAktualni + + false + + + + + DelikvenceHistoricka + + false + + + + + DruheJmeno + + false + + + + + DruhyDokladCislo + + false + + + + + DruhyDokladPlatnost + + false + + + + + ICO + + false + + + + + InfoLimitExpres + + false + + + + + InfoLimitExpresDoplneni + + false + + + + + InfoLimitExpresDoplneniUU + + false + + + + + InfoLimitFlexikredit + + false + + + + + InfoLimitKonsolidace + + false + + + + + InfoLimitKreditniKarta + + false + + + + + InfoLimitOKKarta + + false + + + + + KodOM + + false + + + + + KodOMICBS + + false + + + + + NezadouciKlient + + false + + + + + OKEC + + false + + + + + OROddil + + false + + + + + ORSoud + + false + + + + + ORVlozka + + false + + + + + ObchodniJmeno + + false + + + + + Obec + + false + + + + + PDPoKlasifikaci + + false + + + + + PSC + + false + + + + + PlatnostDalsihoDokladuDo + + false + + + + + PocetNedorucenychVypisuAA + + false + + + + + PocetNedorucenychVypisuTA + + false + + + + + Posta + + false + + + + + PravniForma + + false + + + + + Prijmeni + + false + + + + + PrvniJmeno + + false + + + + + RACV + + false + + + + + RatingPoKlasifikaci + + false + + + + + RatingScalePoKlasifikaci + + false + + + + + Rezidence + + false + + + + + RizikoKlientaCIS + + false + + + + + RodneCislo + + false + + + + + SerieACisloOP + + false + + + + + SpiciUcet + + false + + + + + Telefon + + false + + + + + TelefonMobilni + + false + + + + + TelefonMobilniPredvolba + + false + + + + + TelefonPredvolba + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + TypDalsihoDokladu + + false + + + + + TypDruhehoDokladu + + false + + + + + TypKlienta + + false + + + + + TypKlientaDetail + + false + + + + + Ulice + + false + + + + + Vek + + false + + + + + Zeme + + false + + + + + ZkraceneJmeno + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF104_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF104_001_Dapi.xml new file mode 100644 index 0000000..3856fc7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF104_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF104 + 001 + DEVL + + + HUB + MWF104 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF108_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF108_001.xml new file mode 100644 index 0000000..e9280a1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF108_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWF108 + 001 + active + hub API:MWF108 + + + + + Prijmeni + + false + + + + + RodneCislo + + false + + + + + + + Stav101 + + false + + + + + Text101 + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF108_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF108_001_Dapi.xml new file mode 100644 index 0000000..2c6f48d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF108_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF108 + 001 + DEVL + + + HUB + MWF108 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF109_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF109_001.xml new file mode 100644 index 0000000..0b44c65 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF109_001.xml @@ -0,0 +1,692 @@ + + + + + HUB + MWF109 + 001 + active + hub API:MWF109 + + + + + Adresat + + false + + + + + CO + + false + + + + + CP + + false + + + + + CisloPasu + + false + + + + + CistyMesicniPrijem + + false + + + + + Ctvrt + + false + + + + + DatumExpiraceKontaktnichUdaju + + false + + + + + DatumExpiracePotvrzeniStudent + + false + + + + + DatumNarozeni + + false + + + + + DatumNastehovani + + false + + + + + DatumPotvrzeniPrijmu + + false + + + + + DatumZalozeniCIFu + + false + + + + + DruhBydleni + + false + + + + + DruhKlienta + + false + + + + + DruhPrijmuKlienta + + false + + + + + DruhaStatniPrislusnost + + false + + + + + DruheJmeno + + false + + + + + EMail + + false + + + + + EkonomickySektor + + false + + + + + FATCA_Flag + + false + + + + + Funkce + + false + + + + + JinyOsobniDoklad1Cislo + + false + + + + + JinyOsobniDoklad1Platnost + + false + + + + + JinyOsobniDoklad1StatVydal + + false + + + + + JinyOsobniDoklad1Typ + + false + + + + + JinyOsobniDoklad2Cislo + + false + + + + + JinyOsobniDoklad2Platnost + + false + + + + + JinyOsobniDoklad2StatVydal + + false + + + + + JinyOsobniDoklad2Typ + + false + + + + + KlasifikaceKlienta + + false + + + + + KodObchodnihoMista + + false + + + + + MistoNarozeni + + false + + + + + NazevZamestnavatele + + false + + + + + NejvyssiDosazeneVzdelani + + false + + + + + NoEmailFlag + + false + + + + + OPStatVydal + + false + + + + + Obec + + false + + + + + Osloveni + + false + + + + + OsobniBanker + + false + + + + + PSC + + false + + + + + PasStatVydal + + false + + + + + PlatnostKontaktnichUdaju + + false + + + + + PlatnostOPdo + + false + + + + + PlatnostPasuDo + + false + + + + + PocetVyzivovanychDeti + + false + + + + + Pohlavi + + false + + + + + Posta + + false + + + + + PotvrzeniStudent + + false + + + + + Povolani + + false + + + + + Prijmeni + + false + + + + + PrijmovaSkupina + + false + + + + + PrvniJmeno + + false + + + + + Rezidence + + false + + + + + RodinnyStav + + false + + + + + RodneCislo + + false + + + + + SerieACisloOP + + false + + + + + SocialneEkonomickaSkupina + + false + + + + + SpravniCelek + + false + + + + + StatniPrislusnost + + false + + + + + TIN + + false + + + + + TelefonDalsi + + false + + + + + TelefonDalsiPredvolba + + false + + + + + TelefonDomu + + false + + + + + TelefonDomuPredvolba + + false + + + + + TelefonMobilni + + false + + + + + TelefonMobilniPredvolba + + false + + + + + TelefonZamestnani + + false + + + + + TelefonZamestnaniPredvolba + + false + + + + + Titul + + false + + + + + TitulZaJmenem + + false + + + + + TypDruhehoDokladu + + false + + + + + TypKlienta + + false + + + + + Ulice + + false + + + + + UlozPSCBezKontroly + + false + + + + + Urednik + + false + + + + + VztahKBance + + false + + + + + ZAMCO + + false + + + + + ZAMCP + + false + + + + + ZAMICO + + false + + + + + ZAMPSC + + false + + + + + ZAMPosta + + false + + + + + ZAMUlice + + false + + + + + ZamObec + + false + + + + + ZamestnanOd + + false + + + + + Zeme + + false + + + + + ZemeNarozeni + + false + + + + + ZkraceneJmeno + + false + + + + + ZuzeneSJM + + false + + + + + + + CIF + + false + + + + + EkonomickySektor + + false + + + + + IDSdeleniEmail + + false + + + + + IDSdeleniExpiraceKU + + false + + + + + IDSdeleniMobil + + false + + + + + IDSdeleniZuzeneSJM + + false + + + + + IDUnifikovanehoKlienta + + false + + + + + Rezidence + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF109_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF109_001_Dapi.xml new file mode 100644 index 0000000..0d936f5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF109_001_Dapi.xml @@ -0,0 +1,28 @@ + + + + + MWF109 + 001 + TEST + + HUB + MWF109 + 001 + + 60 + INPUT_WITH_REPLY + + 4 + 60 + UFO.HUB.INP + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF109_765.xml b/tests/src/main/resources/xmlMappings/HUB_MWF109_765.xml new file mode 100644 index 0000000..1bcb461 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF109_765.xml @@ -0,0 +1,692 @@ + + + + + HUB + MWF109 + 765 + active + hub API:MWF109 + + + + + Adresat + + false + + + + + CO + + false + + + + + CP + + false + + + + + CisloPasu + + false + + + + + CistyMesicniPrijem + + false + + + + + Ctvrt + + false + + + + + DatumExpiraceKontaktnichUdaju + + false + + + + + DatumExpiracePotvrzeniStudent + + false + + + + + DatumNarozeni + + false + + + + + DatumNastehovani + + false + + + + + DatumPotvrzeniPrijmu + + false + + + + + DatumZalozeniCIFu + + false + + + + + DruhBydleni + + false + + + + + DruhKlienta + + false + + + + + DruhPrijmuKlienta + + false + + + + + DruhaStatniPrislusnost + + false + + + + + DruheJmeno + + false + + + + + EMail + + false + + + + + EkonomickySektor + + false + + + + + FATCA_Flag + + false + + + + + Funkce + + false + + + + + JinyOsobniDoklad1Cislo + + false + + + + + JinyOsobniDoklad1Platnost + + false + + + + + JinyOsobniDoklad1StatVydal + + false + + + + + JinyOsobniDoklad1Typ + + false + + + + + JinyOsobniDoklad2Cislo + + false + + + + + JinyOsobniDoklad2Platnost + + false + + + + + JinyOsobniDoklad2StatVydal + + false + + + + + JinyOsobniDoklad2Typ + + false + + + + + KlasifikaceKlienta + + false + + + + + KodObchodnihoMista + + false + + + + + MistoNarozeni + + false + + + + + NazevZamestnavatele + + false + + + + + NejvyssiDosazeneVzdelani + + false + + + + + NoEmailFlag + + false + + + + + OPStatVydal + + false + + + + + Obec + + false + + + + + Osloveni + + false + + + + + OsobniBanker + + false + + + + + PSC + + false + + + + + PasStatVydal + + false + + + + + PlatnostKontaktnichUdaju + + false + + + + + PlatnostOPdo + + false + + + + + PlatnostPasuDo + + false + + + + + PocetVyzivovanychDeti + + false + + + + + Pohlavi + + false + + + + + Posta + + false + + + + + PotvrzeniStudent + + false + + + + + Povolani + + false + + + + + Prijmeni + + false + + + + + PrijmovaSkupina + + false + + + + + PrvniJmeno + + false + + + + + Rezidence + + false + + + + + RodinnyStav + + false + + + + + RodneCislo + + false + + + + + SerieACisloOP + + false + + + + + SocialneEkonomickaSkupina + + false + + + + + SpravniCelek + + false + + + + + StatniPrislusnost + + false + + + + + TIN + + false + + + + + TelefonDalsi + + false + + + + + TelefonDalsiPredvolba + + false + + + + + TelefonDomu + + false + + + + + TelefonDomuPredvolba + + false + + + + + TelefonMobilni + + false + + + + + TelefonMobilniPredvolba + + false + + + + + TelefonZamestnani + + false + + + + + TelefonZamestnaniPredvolba + + false + + + + + Titul + + false + + + + + TitulZaJmenem + + false + + + + + TypDruhehoDokladu + + false + + + + + TypKlienta + + false + + + + + Ulice + + false + + + + + UlozPSCBezKontroly + + false + + + + + Urednik + + false + + + + + VztahKBance + + false + + + + + ZAMCO + + false + + + + + ZAMCP + + false + + + + + ZAMICO + + false + + + + + ZAMPSC + + false + + + + + ZAMPosta + + false + + + + + ZAMUlice + + false + + + + + ZamObec + + false + + + + + ZamestnanOd + + false + + + + + Zeme + + false + + + + + ZemeNarozeni + + false + + + + + ZkraceneJmeno + + false + + + + + ZuzeneSJM + + false + + + + + + + CIF + + false + + + + + EkonomickySektor + + false + + + + + IDSdeleniEmail + + false + + + + + IDSdeleniExpiraceKU + + false + + + + + IDSdeleniMobil + + false + + + + + IDSdeleniZuzeneSJM + + false + + + + + IDUnifikovanehoKlienta + + false + + + + + Rezidence + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF109_765_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF109_765_Dapi.xml new file mode 100644 index 0000000..c7d9066 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF109_765_Dapi.xml @@ -0,0 +1,28 @@ + + + + + MWF109 + 765 + TEST + + HUB + MWF109 + 765 + + 60 + INPUT_WITH_REPLY + + 4 + 60 + UFO.HUB.INP + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF111_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF111_001.xml new file mode 100644 index 0000000..f9f0fe5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF111_001.xml @@ -0,0 +1,578 @@ + + + + HUB + MWF111 + 001 + active + hub API:MWF111 + false + + + + + Adresat + + false + + false + + + + CO + + false + + false + + + + CP + + false + + false + + + + CisloPasu + + false + + false + + + + Ctvrt + + false + + false + + + + DIC + + false + + false + + + + DatumExpiraceKontaktnichUdaju + + false + + false + + + + DatumPlatnostiOP + + false + + false + + + + DatumPodnikaniDo + + false + + false + + + + DatumPodnikaniOd + + false + + false + + + + DatumZalozeniCIFu + + false + + false + + + + DruheJmeno + + false + + false + + + + EMail + + false + + false + + + + EkonomickySektor + + false + + false + + + + Funkce + + false + + false + + + + ICO + + false + + false + + + + ICOHlavnihoSpolku + + false + + false + + + + InsolvencniSpravce + + false + + false + + + + JinyOsobniDoklad2Cislo + + false + + false + + + + JinyOsobniDoklad2Platnost + + false + + false + + + + JinyOsobniDoklad2Typ + + false + + false + + + + Jmeno + + false + + false + + + + KodObchodnihoMista + + false + + false + + + + OKEC + + false + + false + + + + OROddil + + false + + false + + + + ORSoud + + false + + false + + + + ORVlozka + + false + + false + + + + ObchodniJmeno + + false + + false + + + + Obec + + false + + false + + + + Osloveni + + false + + false + + + + OsobniBanker + + false + + false + + + + PSC + + false + + false + + + + PlatnostKontaktnichUdaju + + false + + false + + + + PlatnostPasuDo + + false + + false + + + + PobytCR + + false + + false + + + + PocetZamestnancu + + false + + false + + + + Posta + + false + + false + + + + PravniForma + + false + + false + + + + Prijmeni + + false + + false + + + + RatingKlienta + + false + + false + + + + Rezidence + + false + + false + + + + RodneCislo + + false + + false + + + + SerieACisloOP + + false + + false + + + + SocialneEkonomickaSkupina + + false + + false + + + + SpravniCelek + + false + + false + + + + Telefon + + false + + false + + + + TelefonDalsi + + false + + false + + + + TelefonDalsiPredvolba + + false + + false + + + + TelefonMobilni + + false + + false + + + + TelefonMobilniPredvolba + + false + + false + + + + TelefonPredvolba + + false + + false + + + + TitulPred + + false + + false + + + + TitulZa + + false + + false + + + + TypKlienta + + false + + false + + + + Ulice + + false + + false + + + + UlozPSCBezKontroly + + false + + false + + + + Urednik + + false + + false + + + + ZECO + + false + + false + + + + Zeme + + false + + false + + + + ZkraceneJmeno + + false + + false + + + + + + CIF + + false + + false + + + + EkonomickySektor + + false + + false + + + + IDSdeleniDatumPodnikaniDo + + false + + false + + + + IDSdeleniDatumPodnikaniOd + + false + + false + + + + IDSdeleniEmail + + false + + false + + + + IDSdeleniExpiraceKU + + false + + false + + + + IDSdeleniICOHlavnihoSpolku + + false + + false + + + + IDSdeleniMobil + + false + + false + + + + IDUnifikovanehoKlienta + + false + + false + + + + Rezidence + + false + + false + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF111_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF111_001_Dapi.xml new file mode 100644 index 0000000..18a0856 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF111_001_Dapi.xml @@ -0,0 +1,28 @@ + + + + + MWF111 + 001 + TEST + + HUB + MWF111 + 001 + + 60 + INPUT_WITH_REPLY + + 4 + 60 + UFO.HUB.INP + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF111_782.xml b/tests/src/main/resources/xmlMappings/HUB_MWF111_782.xml new file mode 100644 index 0000000..d3cb831 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF111_782.xml @@ -0,0 +1,578 @@ + + + + HUB + MWF111 + 782 + active + hub API:MWF111 + false + + + + + Adresat + + false + + false + + + + CO + + false + + false + + + + CP + + false + + false + + + + CisloPasu + + false + + false + + + + Ctvrt + + false + + false + + + + DIC + + false + + false + + + + DatumExpiraceKontaktnichUdaju + + false + + false + + + + DatumPlatnostiOP + + false + + false + + + + DatumPodnikaniDo + + false + + false + + + + DatumPodnikaniOd + + false + + false + + + + DatumZalozeniCIFu + + false + + false + + + + DruheJmeno + + false + + false + + + + EMail + + false + + false + + + + EkonomickySektor + + false + + false + + + + Funkce + + false + + false + + + + ICO + + false + + false + + + + ICOHlavnihoSpolku + + false + + false + + + + InsolvencniSpravce + + false + + false + + + + JinyOsobniDoklad2Cislo + + false + + false + + + + JinyOsobniDoklad2Platnost + + false + + false + + + + JinyOsobniDoklad2Typ + + false + + false + + + + Jmeno + + false + + false + + + + KodObchodnihoMista + + false + + false + + + + OKEC + + false + + false + + + + OROddil + + false + + false + + + + ORSoud + + false + + false + + + + ORVlozka + + false + + false + + + + ObchodniJmeno + + false + + false + + + + Obec + + false + + false + + + + Osloveni + + false + + false + + + + OsobniBanker + + false + + false + + + + PSC + + false + + false + + + + PlatnostKontaktnichUdaju + + false + + false + + + + PlatnostPasuDo + + false + + false + + + + PobytCR + + false + + false + + + + PocetZamestnancu + + false + + false + + + + Posta + + false + + false + + + + PravniForma + + false + + false + + + + Prijmeni + + false + + false + + + + RatingKlienta + + false + + false + + + + Rezidence + + false + + false + + + + RodneCislo + + false + + false + + + + SerieACisloOP + + false + + false + + + + SocialneEkonomickaSkupina + + false + + false + + + + SpravniCelek + + false + + false + + + + Telefon + + false + + false + + + + TelefonDalsi + + false + + false + + + + TelefonDalsiPredvolba + + false + + false + + + + TelefonMobilni + + false + + false + + + + TelefonMobilniPredvolba + + false + + false + + + + TelefonPredvolba + + false + + false + + + + TitulPred + + false + + false + + + + TitulZa + + false + + false + + + + TypKlienta + + false + + false + + + + Ulice + + false + + false + + + + UlozPSCBezKontroly + + false + + false + + + + Urednik + + false + + false + + + + ZECO + + false + + false + + + + Zeme + + false + + false + + + + ZkraceneJmeno + + false + + false + + + + + + CIF + + false + + false + + + + EkonomickySektor + + false + + false + + + + IDSdeleniDatumPodnikaniDo + + false + + false + + + + IDSdeleniDatumPodnikaniOd + + false + + false + + + + IDSdeleniEmail + + false + + false + + + + IDSdeleniExpiraceKU + + false + + false + + + + IDSdeleniICOHlavnihoSpolku + + false + + false + + + + IDSdeleniMobil + + false + + false + + + + IDUnifikovanehoKlienta + + false + + false + + + + Rezidence + + false + + false + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF111_782_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF111_782_Dapi.xml new file mode 100644 index 0000000..ef3d780 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF111_782_Dapi.xml @@ -0,0 +1,28 @@ + + + + + MWF111 + 782 + TEST + + HUB + MWF111 + 782 + + 60 + INPUT_WITH_REPLY + + 4 + 60 + UFO.HUB.INP + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF118_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF118_001.xml new file mode 100644 index 0000000..1eed8d8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF118_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF118 + 001 + active + hub API:MWF118 + + + + + AP + + false + + + + + + + MTS_Stav + + false + + + + + Stav + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF118_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF118_001_Dapi.xml new file mode 100644 index 0000000..b7a81a6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF118_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF118 + 001 + DEVL + + + HUB + MWF118 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF123_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF123_001.xml new file mode 100644 index 0000000..d7fefae --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF123_001.xml @@ -0,0 +1,780 @@ + + + + + HUB + MWF123 + 001 + active + hub API:MWF123 + + + + + AP + + false + + + + + NacistPuvodniZadostAnoNe + + false + + + + + + + AAAdresat + + false + + + + + AACO + + false + + + + + AACP + + false + + + + + AAObec + + false + + + + + AAPSC + + false + + + + + AAPosta + + false + + + + + AAUlice + + false + + + + + AAZeme + + false + + + + + AP + + false + + + + + AVZamOdData + + false + + + + + AZCO + + false + + + + + AZCP + + false + + + + + AZObec + + false + + + + + AZPSC + + false + + + + + AZUlice + + false + + + + + CCTypFormulare + + false + + + + + CisloBU + + false + + + + + CisloDruhyDoklad + + false + + + + + CisloOP + + false + + + + + CisloPasu + + false + + + + + CistyMesicPrijem + + false + + + + + CistyPrijemDomacnosti + + false + + + + + DatumKoncePracPomeru + + false + + + + + DatumPodpisuZadosti + + false + + + + + DatumZalBU + + false + + + + + DruhBU + + false + + + + + DruhBydleni + + false + + + + + DruhVypisu + + false + + + + + DruhyDoklad + + false + + + + + DuvodZamitnuti + + false + + + + + Email + + false + + + + + EvidencniCislo + + false + + + + + Heslo + + false + + + + + JineMesSplatky + + false + + + + + JmenoKrestni + + false + + + + + KodAkceFlex + + false + + + + + KodOM + + false + + + + + KodProduktu + + false + + + + + KodProduktuSchvaleneho + + false + + + + + NAJZahrICO + + false + + + + + NAJZahrPSC + + false + + + + + NAJZahrTel + + false + + + + + NAJZahrZam + + false + + + + + NAJ_ZAM_ZEME + + false + + + + + ObratMesic1 + + false + + + + + ObratMesic2 + + false + + + + + ObratMesic3 + + false + + + + + ObratPrijem1 + + false + + + + + ObratPrijem2 + + false + + + + + ObratPrijem3 + + false + + + + + ObratRok1 + + false + + + + + ObratRok2 + + false + + + + + ObratRok3 + + false + + + + + PlatnostOPDo + + false + + + + + PlatnostPasuDo + + false + + + + + PobytNaSoucAdreseOdRoku + + false + + + + + PocetVyzivovanychOsob + + false + + + + + PoplatkovatFlexikreditFPGenius + + false + + + + + PouzitaAA + + false + + + + + Povolani + + false + + + + + PracovniPomer + + false + + + + + PredlDokladIndex + + false + + + + + PredlDokladOStudiu + + false + + + + + PredlDokladPrijem + + false + + + + + PredlDokladSIPO + + false + + + + + PredlDokladUcetNajem + + false + + + + + PredlDokladVypisUcet + + false + + + + + PredlDokladVyuctTelefon + + false + + + + + Prijmeni + + false + + + + + PrimarniUrednik + + false + + + + + Rezident + + false + + + + + RodneCislo + + false + + + + + StatniPrislusnost + + false + + + + + Stav + + false + + + + + StavRodinny + + false + + + + + TACO + + false + + + + + TACP + + false + + + + + TAObec + + false + + + + + TAPSC + + false + + + + + TAPosta + + false + + + + + TAUlice + + false + + + + + TAZeme + + false + + + + + TelefonDalsi + + false + + + + + TelefonDalsiPredvolba + + false + + + + + TelefonDoZamPredvolba + + false + + + + + TelefonDoZamestnani + + false + + + + + TelefonDomu + + false + + + + + TelefonDomuPredvolba + + false + + + + + TelefonMobilni + + false + + + + + TelefonMobilniDoZamestnani + + false + + + + + TelefonMobilniDoZamestnaniPredvolba + + false + + + + + TelefonMobilniPredvolba + + false + + + + + TypUhrady + + false + + + + + UrokovaSazba + + false + + + + + UrokovaSazbaSchvaleno + + false + + + + + VZamOdRoku + + false + + + + + Vypracovat + + false + + + + + VyseRamce + + false + + + + + VyseRamceSchvaleno + + false + + + + + Vzdelani + + false + + + + + ZakaznikSeZvlVztahem + + false + + + + + ZakladDane + + false + + + + + Zalozit_BU + + false + + + + + ZamestnavatelICO + + false + + + + + ZamestnavatelNazev + + false + + + + + ZdrojZadosti + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF123_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF123_001_Dapi.xml new file mode 100644 index 0000000..7e4f697 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF123_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF123 + 001 + DEVL + + + HUB + MWF123 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF125_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF125_001.xml new file mode 100644 index 0000000..183e905 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF125_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF125 + 001 + active + hub API:MWF125 + + + + + AP + + false + + + + + + + Stav + + false + + + + + StavBinarni + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF125_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF125_001_Dapi.xml new file mode 100644 index 0000000..92f3f37 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF125_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF125 + 001 + DEVL + + + HUB + MWF125 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF133_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF133_001.xml new file mode 100644 index 0000000..2e9b798 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF133_001.xml @@ -0,0 +1,130 @@ + + + + HUB + MWF133 + 001 + active + hub API:MWF133 + false + + + + + AVPole + + false + + false + + + + Cache + + false + + false + + + + CastkaTransakce + + false + + false + + + + CisloCostCentra + + false + + false + + + + CisloUctuInterni + + false + + false + + + + CisloUctuPrijemceInterni + + false + + false + + + + DatumSplatnosti + + false + + false + + + + KodBanky + + false + + false + + + + KodMenyTransakce + + false + + false + + + + KonstantniSymbol + + false + + false + + + + SpecifickySymbol + + false + + false + + + + VariabilniSymbol + + false + + false + + + + + + ID + + false + + false + + + + RequestID + + false + + false + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF133_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF133_001_Dapi.xml new file mode 100644 index 0000000..3988d91 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF133_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF133 + 001 + TEST + + + HUB + MWF133 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF134_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF134_001.xml new file mode 100644 index 0000000..8a615f4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF134_001.xml @@ -0,0 +1,349 @@ + + + + + HUB + MWF134 + 001 + active + hub API:MWF134 + + + + + CIF + + false + + + + + CisloBU + + false + + + + + DrzitelCIF + + false + + + + + DrzitelDatumNarozeni + + false + + + + + DrzitelHeslo + + false + + + + + DrzitelRC + + false + + + + + DrzitelTelefon + + false + + + + + DrzitelTelefon3DSecure + + false + + + + + DrzitelTelefonPredcisli + + false + + + + + DrzitelTelefonZamestnani + + false + + + + + DrzitelTelefonZamestnaniPredcisli + + false + + + + + Heslo + + false + + + + + KlientJmeno + + false + + + + + KlientPrijmeni + + false + + + + + LimitBankomat + + false + + + + + LimitObchodnik + + false + + + + + MSISDN + + false + + + + + PCTTabulka + + false + + + + + PlasticID + + false + + + + + PoleDS + + false + + + + + TypKartySchvaleno + + false + + + + + VytlaceneJmeno + + false + + + + + VytlaceneJmeno2 + + false + + + + + ZAKartaCO + + false + + + + + ZAKartaCP + + false + + + + + ZAKartaObec + + false + + + + + ZAKartaPSC + + false + + + + + ZAKartaPosta + + false + + + + + ZAKartaTypAdresy + + false + + + + + ZAKartaUlice + + false + + + + + ZAPINCO + + false + + + + + ZAPINCP + + false + + + + + ZAPINObec + + false + + + + + ZAPINPSC + + false + + + + + ZAPINPosta + + false + + + + + ZAPINTypAdresy + + false + + + + + ZAPINUlice + + false + + + + + ZamestnaniTelefon + + false + + + + + ZpusobDistribucePIN + + false + + + + + + + CIF + + false + + + + + Data + + + + RS_DOPLNKOVESLUZBY + + false + + + + + RS_DATUMZALOZENIDS + + false + + + + + RS_STAVDS + + false + + + + + RS_DATUMUCINNOSTI + + false + + + + + + false + + + + + VytlaceneJmeno + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF134_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF134_001_Dapi.xml new file mode 100644 index 0000000..de74963 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF134_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF134 + 001 + DEVL + + + HUB + MWF134 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF169_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF169_001.xml new file mode 100644 index 0000000..0a7bb46 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF169_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF169 + 001 + active + hub API:MWF169 + + + + + CisloUctu + + false + + + + + + + DisponibilniZustatek + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF169_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF169_001_Dapi.xml new file mode 100644 index 0000000..451e175 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF169_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF169 + 001 + DEVL + + + HUB + MWF169 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF172_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF172_001.xml new file mode 100644 index 0000000..cfed232 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF172_001.xml @@ -0,0 +1,383 @@ + + + + + HUB + MWF172 + 001 + active + hub API:MWF172 + false + + + + + AAAdresat + + false + + false + + + + AACO + + false + + false + + + + AACP + + false + + false + + + + AACtvrt + + false + + false + + + + AAObec + + false + + false + + + + AAPSC + + false + + false + + + + AAPosta + + false + + false + + + + AAUlice + + false + + false + + + + AAZeme + + false + + false + + + + BankAtWork + + false + + false + + + + CIF + + false + + false + + + + CisloUctu + + false + + false + + + + CisloUctuPrijemceKodBanky + + false + + false + + + + DatumNarozeni + + false + + false + + + + DatumOtevreni + + false + + false + + + + DatumPrvnihoVypisu + + false + + false + + + + DistribuceVypisu + + false + + false + + + + DruhKlienta + + false + + false + + + + DruheJmeno + + false + + false + + + + ICO_Zamestnavatel + + false + + false + + + + Jmeno + + false + + false + + + + NazevZamestnavatele + + false + + false + + + + NuloveUroceni + + false + + false + + + + ObchodniJmeno + + false + + false + + + + ObchodniMistoAlternativni + + false + + false + + + + ObchodniMistoKod + + false + + false + + + + PausalniPoplatekPocetMesicuZdarma + + false + + false + + + + PeriodaVypisu + + false + + false + + + + PoplatkovyPlan + + false + + false + + + + PoplatkovyPlanMatersky + + false + + false + + + + PostovniPoukazka + + false + + false + + + + PouzitaAA + + false + + false + + + + Prijmeni + + false + + false + + + + PrimarniUrednik + + false + + false + + + + ProduktKod + + false + + false + + + + SekundarniUrednik + + false + + false + + + + TitulPred + + false + + false + + + + TitulZa + + false + + false + + + + TransakceNavic + + false + + false + + + + UlozPSCBezKontroly + + false + + false + + + + UrokovaSazba + + false + + false + + + + UrokovyPlan + + false + + false + + + + VypisNaKonciMesice + + false + + false + + + + ZpusobPripisu + + false + + false + + + + + + CisloUctu + + false + + false + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF172_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF172_001_Dapi.xml new file mode 100644 index 0000000..4f61f79 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF172_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF172 + 001 + TEST + + + HUB + MWF172 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF175_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF175_001.xml new file mode 100644 index 0000000..4628172 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF175_001.xml @@ -0,0 +1,367 @@ + + + + + HUB + MWF175 + 001 + active + hub API:MWF175 + + + + + CisloUctu + + false + + + + + Kontext + + false + + + + + + + AAAdresat + + false + + + + + AACO + + false + + + + + AACP + + false + + + + + AACtvrt + + false + + + + + AAObec + + false + + + + + AAPSC + + false + + + + + AAPosta + + false + + + + + AAUlice + + false + + + + + AAZeme + + false + + + + + BeznyZustatek + + false + + + + + CastkaPrecerpani + + false + + + + + DatumOtevreni + + false + + + + + DatumOtevreniDPC + + false + + + + + DatumPocatkuDebetu + + false + + + + + DatumPocatkuKreditu + + false + + + + + DatumPosledniZmeny + + false + + + + + DatumSchvaleni + + false + + + + + DatumSplaceni + + false + + + + + DatumUzavreni + + false + + + + + DisponibilniZustatek + + false + + + + + DruheJmeno + + false + + + + + Jmeno + + false + + + + + MesicniObratyCR + + false + + + + + MesicniObratyDB + + false + + + + + ObchodniMistoKod + + false + + + + + ObchodniMistoNazev + + false + + + + + ObjektUveru + + false + + + + + PausalniPoplatek + + false + + + + + PocetDni + + false + + + + + PoplatkovyPlan + + false + + + + + Prijmeni + + false + + + + + ProduktKod + + false + + + + + ProduktNazev + + false + + + + + SankcniSazba + + false + + + + + SankcniUrok + + false + + + + + SpecialniNabidka + + false + + + + + StavRamce + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + TypKontokorentu + + false + + + + + TypPausalnihoPoplatku + + false + + + + + TypPoplatkovehoPlanu + + false + + + + + TypPosledniZmeny + + false + + + + + UrokZaCerpaniKontokorentu + + false + + + + + UrokovaSazba + + false + + + + + VyseCerpani + + false + + + + + VyseRamce + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF175_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF175_001_Dapi.xml new file mode 100644 index 0000000..314c9da --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF175_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF175 + 001 + DEVL + + + HUB + MWF175 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF183_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF183_001.xml new file mode 100644 index 0000000..b6ff377 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF183_001.xml @@ -0,0 +1,143 @@ + + + + + HUB + MWF183 + 001 + active + hub API:MWF183 + + + + + ID + + false + + + + + + + CastkaLimitu + + false + + + + + CastkaZbyvajiciVPeriode + + false + + + + + CisloUctuPlatce + + false + + + + + CisloUctuPrijemceInterni + + false + + + + + DatumPlatnostDo + + false + + + + + DatumPosledniPlatby + + false + + + + + DatumPosledniZmeny + + false + + + + + DatumPrvniProvedenePlatby + + false + + + + + KodBankyPrijemce + + false + + + + + KodObchodnihoMistaPlatce + + false + + + + + NazevUctuPlatce + + false + + + + + NazevUctuPrijemce + + false + + + + + Perioda + + false + + + + + PovolenoOd + + false + + + + + Stav + + false + + + + + Urednik + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF183_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF183_001_Dapi.xml new file mode 100644 index 0000000..87a4388 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF183_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF183 + 001 + DEVL + + + HUB + MWF183 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF184_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF184_001.xml new file mode 100644 index 0000000..efc76b4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF184_001.xml @@ -0,0 +1,115 @@ + + + + + HUB + MWF184 + 001 + active + hub API:MWF184 + + + + + Autorizace + + false + + + + + CastkaLimitu + + false + + + + + CisloUctuPlatce + + false + + + + + CisloUctuPrijemceInterni + + false + + + + + DatumPlatnostDo + + false + + + + + KodBankyPrijemce + + false + + + + + KodObchodnihoMistaPlatce + + false + + + + + NazevUctuPrijemce + + false + + + + + Perioda + + false + + + + + PocetTransakciVPeriode + + false + + + + + PovolenoOd + + false + + + + + Uzivatel + + false + + + + + + + ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF184_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF184_001_Dapi.xml new file mode 100644 index 0000000..7fd0759 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF184_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF184 + 001 + DEVL + + + HUB + MWF184 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF186_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF186_001.xml new file mode 100644 index 0000000..5c981f0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF186_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF186 + 001 + active + hub API:MWF186 + + + + + ID + + false + + + + + Stav + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF186_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF186_001_Dapi.xml new file mode 100644 index 0000000..260b9b0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF186_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF186 + 001 + DEVL + + + HUB + MWF186 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1B4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1B4_001.xml new file mode 100644 index 0000000..1df0194 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1B4_001.xml @@ -0,0 +1,31 @@ + + + + + HUB + MWF1B4 + 001 + active + hub API:MWF1B4 + + + + + ProdPackageKey + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1B4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1B4_001_Dapi.xml new file mode 100644 index 0000000..8bc2cde --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1B4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1B4 + 001 + DEVL + + + HUB + MWF1B4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1C4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1C4_001.xml new file mode 100644 index 0000000..0e4a941 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1C4_001.xml @@ -0,0 +1,93 @@ + + + + + HUB + MWF1C4 + 001 + active + hub API:MWF1C4 + + + + + ChannelId + + false + + + + + Data + + + + RS_ACCOUNTNUMBER + + false + + + + + RS_TRANSFERPOSSIBLE + + false + + + + + RS_FEEPLAN + + false + + + + + + false + + + + + + + Data + + + + RS_ACCOUNTNUMBER + + false + + + + + RS_TRANSFERPOSSIBLE + + false + + + + + RS_FEEPLAN + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1C4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1C4_001_Dapi.xml new file mode 100644 index 0000000..22a0416 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1C4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1C4 + 001 + DEVL + + + HUB + MWF1C4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F0_001.xml new file mode 100644 index 0000000..34fce39 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F0_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF1F0 + 001 + active + hub API:MWF1F0 + + + + + AppKey + + false + + + + + + + WorkflowInApprovalProcess + + false + + + + + WorkflowState + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F0_001_Dapi.xml new file mode 100644 index 0000000..9951d2b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1F0 + 001 + DEVL + + + HUB + MWF1F0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F1_001.xml new file mode 100644 index 0000000..3a9ae4c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F1_001.xml @@ -0,0 +1,160 @@ + + + + + HUB + MWF1F1 + 001 + active + hub API:MWF1F1 + + + + + AppKey + + false + + + + + + + ArtificianPersonAddressCity + + false + + + + + ArtificianPersonAddressCountry + + false + + + + + ArtificianPersonAddressDescriptionNumber + + false + + + + + ArtificianPersonAddressStreet + + false + + + + + ArtificianPersonAddressZIPCode + + false + + + + + ArtificianPersonBusinesName + + false + + + + + Ico + + false + + + + + InstPtKey + + false + + + + + RWS_BusinessData + + + + RS_FIRSTNAME + + false + + + + + RS_SURNAME + + false + + + + + RS_ROLE + + false + + + + + RS_BIRTHNUMBER + + false + + + + + RS_ADDRESSCITY + + false + + + + + RS_ADDRESSZIPCODE + + false + + + + + RS_ADDRESSSTREETDESCNUMBER + + false + + + + + RS_ADDRESSSTREET + + false + + + + + RS_ADDRESSCOUNTRY + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F1_001_Dapi.xml new file mode 100644 index 0000000..008f05f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1F1 + 001 + DEVL + + + HUB + MWF1F1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F2_001.xml new file mode 100644 index 0000000..9ac4852 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F2_001.xml @@ -0,0 +1,208 @@ + + + + + HUB + MWF1F2 + 001 + active + hub API:MWF1F2 + + + + + BranchId + + false + + + + + ChannelId + + false + + + + + ClientType + + false + + + + + Context + + false + + + + + Ico + + false + + + + + ProductClass + + false + + + + + RWS_ApplicationClientDetail + + + + RS_CIF + + false + + + + + RS_RC + + false + + + + + RS_PARTICIPATION + + false + + + + + RS_DEPOSITAMOUNT + + false + + + + + RS_INSTPTKEY + + false + + + + + + false + + + + + + + InstPtKey + + false + + + + + KulKey + + false + + + + + ProcessResult + + false + + + + + RWS_ApplicationClientDetail + + + + RS_CIF + + false + + + + + RS_RC + + false + + + + + RS_PARTICIPATION + + false + + + + + RS_DEPOSITAMOUNT + + false + + + + + RS_INSTPTKEY + + false + + + + + + false + + + + + RWS_ShortApps + + + + RS_APPKEY + + false + + + + + RS_PRODUCTCLASS + + false + + + + + + false + + + + + WfId + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F2_001_Dapi.xml new file mode 100644 index 0000000..7ccdd7c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1F2 + 001 + DEVL + + + HUB + MWF1F2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F4_001.xml new file mode 100644 index 0000000..58b381d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F4_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF1F4 + 001 + active + hub API:MWF1F4 + + + + + TOKEN_ID + + false + + + + + + + SESSION_RESULT_CODE + + false + + + + + SESSION_RESULT_TEXT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F4_001_Dapi.xml new file mode 100644 index 0000000..1c27238 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1F4 + 001 + DEVL + + + HUB + MWF1F4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F5_001.xml new file mode 100644 index 0000000..bf395dc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F5_001.xml @@ -0,0 +1,378 @@ + + + + + HUB + MWF1F5 + 001 + active + hub API:MWF1F5 + + + + + CLIENT_ACTION + + false + + + + + DEFAULT_SET + + false + + + + + ID_OM + + false + + + + + PARAM_IN + + + + RS_PARAM_NAME + + false + + + + + RS_PARAM_TASK_ID + + false + + + + + RS_PARAM_VALUE + + false + + + + + + false + + + + + SERVER_ACTION + + false + + + + + SESSION_NAME + + false + + + + + SESSION_RESULT_TEXT + + false + + + + + SESSION_TTL_IN_MINUTES + + false + + + + + SSO_ID + + false + + + + + TASK_GROUP_IN + + + + RS_TASK_GROUP_TYPE + + false + + + + + RS_TASK_GROUP_ID + + false + + + + + RS_TASK_GROUP_NAME + + false + + + + + RS_TASK_GROUP_SEQUENCE_MODE + + false + + + + + RS_TASK_GROUP_DOCUMENT_URL + + false + + + + + + false + + + + + TASK_IN + + + + RS_TASK_ID + + false + + + + + RS_TASK_TASK_GROUP_ID + + false + + + + + RS_TASK_WIDTH + + false + + + + + RS_TASK_HEIGHT + + false + + + + + + false + + + + + + + CLIENT_ACTION + + false + + + + + PARAM_OUT + + + + RS_PARAM_NAME + + false + + + + + RS_PARAM_TASK_ID + + false + + + + + RS_PARAM_VALUE + + false + + + + + + false + + + + + SERVER_ACTION + + false + + + + + SESSION_NAME + + false + + + + + SESSION_RESULT_CODE + + false + + + + + SESSION_RESULT_DESC + + false + + + + + TASK_GROUP_OUT + + + + RS_TASK_GROUP_TYPE + + false + + + + + RS_TASK_GROUP_ID + + false + + + + + RS_TASK_GROUP_NAME + + false + + + + + RS_TASK_GROUP_SEQUENCE_MODE + + false + + + + + RS_TASK_GROUP_DOCUMENT_URL + + false + + + + + RS_TASK_GROUP_SRC_DOCUMENT_URL + + false + + + + + RS_TASK_GROUP_FLT_DOCUMENT_URL + + false + + + + + RS_TASK_GROUP_RESULT_CODE + + false + + + + + RS_TASK_GROUP_RESULT_TEXT + + false + + + + + + false + + + + + TASK_OUT + + + + RS_TASK_ID + + false + + + + + RS_TASK_TASK_GROUP_ID + + false + + + + + RS_TASK_RESULT_CODE + + false + + + + + RS_TASK_RESULT_TEXT + + false + + + + + + false + + + + + TOKEN_ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F5_001_Dapi.xml new file mode 100644 index 0000000..4186470 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1F5 + 001 + DEVL + + + HUB + MWF1F5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F6_001.xml new file mode 100644 index 0000000..c79e4e3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F6_001.xml @@ -0,0 +1,215 @@ + + + + + HUB + MWF1F6 + 001 + active + hub API:MWF1F6 + + + + + TOKEN_ID + + false + + + + + + + CLIENT_ACTION + + false + + + + + PARAM_OUT + + + + RS_PARAM_NAME + + false + + + + + RS_PARAM_TASK_ID + + false + + + + + RS_PARAM_VALUE + + false + + + + + + false + + + + + SERVER_ACTION + + false + + + + + SESSION_NAME + + false + + + + + SESSION_RESULT_CODE + + false + + + + + SESSION_RESULT_DESC + + false + + + + + SSO_ID + + false + + + + + TASK_GROUP_OUT + + + + RS_TASK_GROUP_TYPE + + false + + + + + RS_TASK_GROUP_ID + + false + + + + + RS_TASK_GROUP_NAME + + false + + + + + RS_TASK_GROUP_SEQUENCE_MODE + + false + + + + + RS_TASK_GROUP_DOCUMENT_URL + + false + + + + + RS_TASK_GROUP_SRC_DOCUMENT_URL + + false + + + + + RS_TASK_GROUP_FLT_DOCUMENT_URL + + false + + + + + RS_TASK_GROUP_RESULT_CODE + + false + + + + + RS_TASK_GROUP_RESULT_TEXT + + false + + + + + + false + + + + + TASK_OUT + + + + RS_TASK_ID + + false + + + + + RS_TASK_TASK_GROUP_ID + + false + + + + + RS_TASK_RESULT_CODE + + false + + + + + RS_TASK_RESULT_TEXT + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1F6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1F6_001_Dapi.xml new file mode 100644 index 0000000..3c1c24d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1F6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1F6 + 001 + DEVL + + + HUB + MWF1F6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1H1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1H1_001.xml new file mode 100644 index 0000000..0e668ad --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1H1_001.xml @@ -0,0 +1,136 @@ + + + + + HUB + MWF1H1 + 001 + active + hub API:MWF1H1 + + + + + CNL_ID + + false + + + + + CONSULTANT_EMPR_ICO + + false + + + + + CONSULTANT_EMPR_NAME + + false + + + + + CONSULTANT_ID + + false + + + + + CONSULTANT_MTS_ID + + false + + + + + DOC_INST_KEY + + false + + + + + EMP_PROCESS_ROLE_ID + + false + + + + + EMP_ROLE_ID + + false + + + + + EMP_ROLE_KEY + + false + + + + + EMP_SSO + + false + + + + + FAMILY_NAME + + false + + + + + FIRST_NAME + + false + + + + + POS_ID + + false + + + + + PRIM_FLAG + + false + + + + + PRODPKG_KEY + + false + + + + + SALESMAN_STAMP_FLAG + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1H1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1H1_001_Dapi.xml new file mode 100644 index 0000000..943b08c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1H1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1H1 + 001 + DEVL + + + HUB + MWF1H1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1H7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1H7_001.xml new file mode 100644 index 0000000..eb578ed --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1H7_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF1H7 + 001 + active + hub API:MWF1H7 + + + + + APP_KEY + + false + + + + + APP_SET_KEY + + false + + + + + WF_ID + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1H7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1H7_001_Dapi.xml new file mode 100644 index 0000000..8216ed5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1H7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1H7 + 001 + DEVL + + + HUB + MWF1H7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1I7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1I7_001.xml new file mode 100644 index 0000000..0e9077a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1I7_001.xml @@ -0,0 +1,86 @@ + + + + + HUB + MWF1I7 + 001 + active + hub API:MWF1I7 + + + + + AppsKey + + + + RS_APP_KEY + + false + + + + + + false + + + + + + + AppsState + + + + RS_APP_KEY + + false + + + + + RS_APP_STATE + + false + + + + + RS_APP_STATE_UFO + + false + + + + + RS_APP_STATE_ADC + + false + + + + + RS_APP_STATE_ID + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1I7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1I7_001_Dapi.xml new file mode 100644 index 0000000..35fbae3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1I7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1I7 + 001 + DEVL + + + HUB + MWF1I7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1I9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1I9_001.xml new file mode 100644 index 0000000..e14ce15 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1I9_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWF1I9 + 001 + active + hub API:MWF1I9 + + + + + DepositOriginIdentifier + + false + + + + + PrevailingAccTrans + + false + + + + + ProdPackageKey + + false + + + + + SSO + + false + + + + + TurnOnAccount + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF1I9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF1I9_001_Dapi.xml new file mode 100644 index 0000000..9c66cb1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF1I9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF1I9 + 001 + DEVL + + + HUB + MWF1I9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF235_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF235_001.xml new file mode 100644 index 0000000..08ed1b5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF235_001.xml @@ -0,0 +1,132 @@ + + + + + HUB + MWF235 + 001 + active + hub API:MWF235 + + + + + CisloKarty + + false + + + + + DruhKarty + + false + + + + + + + Data + + + + RS_CASTKA + + false + + + + + RS_DATUMBLOKACE + + false + + + + + RS_DUVOD + + false + + + + + RS_PORADOVECISLOBLOKACE + + false + + + + + RS_TRANSAKCEPRIJATAZAMITNUTA + + false + + + + + RS_TYPPLATBY + + false + + + + + RS_ZBYVAJICIDNYBLOKACE + + false + + + + + RS_CASTKADUAL + + false + + + + + RS_CASBLOKACE + + false + + + + + RS_POPISBLOKACE + + false + + + + + RS_TYPAUTORIZACE + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF235_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF235_001_Dapi.xml new file mode 100644 index 0000000..445ce03 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF235_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF235 + 001 + DEVL + + + HUB + MWF235 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF294_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF294_001.xml new file mode 100644 index 0000000..d8de3c6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF294_001.xml @@ -0,0 +1,115 @@ + + + + + HUB + MWF294 + 001 + active + hub API:MWF294 + + + + + AP + + false + + + + + BeznyUcet + + false + + + + + CIF + + false + + + + + Cache + + false + + + + + CisloUU + + false + + + + + ClientID + + false + + + + + DatumPodpisuSmlouvy + + false + + + + + MTS_Stav + + false + + + + + RodneCislo + + false + + + + + Stav + + false + + + + + ZpusobPodpisu + + false + + + + + + + MTS_ZadostNalezena + + false + + + + + RequestID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF294_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF294_001_Dapi.xml new file mode 100644 index 0000000..450a698 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF294_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF294 + 001 + DEVL + + + HUB + MWF294 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF29D_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF29D_001.xml new file mode 100644 index 0000000..4b534f2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF29D_001.xml @@ -0,0 +1,366 @@ + + + + + HUB + MWF29D + 001 + active + hub API:MWF29D + + + + + ATTR10_DT + + false + + + + + ATTR10_NAME + + false + + + + + ATTR10_VALUE + + false + + + + + ATTR1_DT + + false + + + + + ATTR1_NAME + + false + + + + + ATTR1_VALUE + + false + + + + + ATTR2_DT + + false + + + + + ATTR2_NAME + + false + + + + + ATTR2_VALUE + + false + + + + + ATTR3_DT + + false + + + + + ATTR3_NAME + + false + + + + + ATTR3_VALUE + + false + + + + + ATTR4_DT + + false + + + + + ATTR4_NAME + + false + + + + + ATTR4_VALUE + + false + + + + + ATTR5_DT + + false + + + + + ATTR5_NAME + + false + + + + + ATTR5_VALUE + + false + + + + + ATTR6_DT + + false + + + + + ATTR6_NAME + + false + + + + + ATTR6_VALUE + + false + + + + + ATTR7_DT + + false + + + + + ATTR7_NAME + + false + + + + + ATTR7_VALUE + + false + + + + + ATTR8_DT + + false + + + + + ATTR8_NAME + + false + + + + + ATTR8_VALUE + + false + + + + + ATTR9_DT + + false + + + + + ATTR9_NAME + + false + + + + + ATTR9_VALUE + + false + + + + + Data + + + + RS_CM_ID + + false + + + + + + false + + + + + ISNULL1 + + false + + + + + ISNULL10 + + false + + + + + ISNULL2 + + false + + + + + ISNULL3 + + false + + + + + ISNULL4 + + false + + + + + ISNULL5 + + false + + + + + ISNULL6 + + false + + + + + ISNULL7 + + false + + + + + ISNULL8 + + false + + + + + ISNULL9 + + false + + + + + NEW_VERSION + + false + + + + + ROLLBACK_LEVEL + + false + + + + + + + Data + + + + RS_CM_ID + + false + + + + + + false + + + + + Index + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF29D_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF29D_001_Dapi.xml new file mode 100644 index 0000000..51ae31d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF29D_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF29D + 001 + DEVL + + + HUB + MWF29D + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2A0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2A0_001.xml new file mode 100644 index 0000000..6829ef9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2A0_001.xml @@ -0,0 +1,153 @@ + + + + + HUB + MWF2A0 + 001 + active + hub API:MWF2A0 + + + + + IdZadosti + + false + + + + + + + Data + + + + RS_CM_ID + + false + + + + + RS_ITEMTYPE + + false + + + + + RS_SEMANTIC_TYPE + + false + + + + + RS_CRT_USR + + false + + + + + RS_CRT_TIME + + false + + + + + RS_CHG_USR + + false + + + + + RS_CHG_TIME + + false + + + + + RS_CHCKOUT_USR + + false + + + + + RS_CHCKOUT_TIME + + false + + + + + RS_BIN_PART_ID + + false + + + + + RS_BIN_PART_VERSION + + false + + + + + RS_IDZADOSTI + + false + + + + + RS_TYPDOKLADU + + false + + + + + RS_KATEGORIEDOKLADU + + false + + + + + RS_ZDROJDOKUMENTU + + false + + + + + RS_CM_URL + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2A0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2A0_001_Dapi.xml new file mode 100644 index 0000000..c5fbb2c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2A0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2A0 + 001 + DEVL + + + HUB + MWF2A0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2A3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2A3_001.xml new file mode 100644 index 0000000..77f42e7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2A3_001.xml @@ -0,0 +1,125 @@ + + + + + HUB + MWF2A3 + 001 + active + hub API:MWF2A3 + + + + + EMPLOYER_ICO + + false + + + + + EMPLOYMENT_TYPE + + false + + + + + RC_NUMBER + + false + + + + + + + ACCOUNT_INCOME_USE + + false + + + + + Data + + + + RS_RECIPIENT_ACCOUNT + + false + + + + + RS_RECIPIENT_BANK_CODE + + false + + + + + RS_AMOUNT + + false + + + + + RS_PAYER_ACCOUNT + + false + + + + + RS_PAYER_BANK_CODE + + false + + + + + RS_PAYER_ACCOUNT_NAME + + false + + + + + RS_PAYER_EMPR_ID + + false + + + + + + false + + + + + NET_INCOME_PER_3_MONTHS + + false + + + + + NUMBER_OF_INCOMES + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2A3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2A3_001_Dapi.xml new file mode 100644 index 0000000..c1b058a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2A3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2A3 + 001 + DEVL + + + HUB + MWF2A3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2C0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2C0_001.xml new file mode 100644 index 0000000..7d00aa9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2C0_001.xml @@ -0,0 +1,62 @@ + + + + + HUB + MWF2C0 + 001 + active + hub API:MWF2C0 + + + + + AccountNumber + + false + + + + + + + Data + + + + RS_PRODUCTID + + false + + + + + RS_PRODUCTTYPE + + false + + + + + RS_FEEPLAN + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2C0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2C0_001_Dapi.xml new file mode 100644 index 0000000..f7a79f1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2C0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2C0 + 001 + DEVL + + + HUB + MWF2C0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2DA_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2DA_001.xml new file mode 100644 index 0000000..7ba3fe4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2DA_001.xml @@ -0,0 +1,139 @@ + + + + + HUB + MWF2DA + 001 + active + hub API:MWF2DA + + + + + CardInstanceNumber + + false + + + + + CardTokenFilterByStatusCodeExcept + + false + + + + + + + Data + + + + RS_CARDTOKENREFID + + false + + + + + RS_CARDTOKENNUMBER + + false + + + + + RS_CARDTOKENNUMBERMASK + + false + + + + + RS_CARDTOKENCREATEDATE + + false + + + + + RS_CARDTOKENEXPIRATIONDATE + + false + + + + + RS_CARDTOKENSTATUSCODE + + false + + + + + RS_CARDTOKENDEVICEID + + false + + + + + RS_CARDTOKENDEVICENAME + + false + + + + + RS_CARDTOKENDEVICETYPE + + false + + + + + RS_CARDTOKENWALLETID + + false + + + + + RS_CARDTOKENREQUESTORID + + false + + + + + RS_CARDTOKENPANREFID + + false + + + + + + false + + + + + ResponseStatusFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2DA_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2DA_001_Dapi.xml new file mode 100644 index 0000000..17661c4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2DA_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2DA + 001 + DEVL + + + HUB + MWF2DA + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2DC_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2DC_001.xml new file mode 100644 index 0000000..81cf570 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2DC_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWF2DC + 001 + active + hub API:MWF2DC + + + + + CardInstanceNumber + + false + + + + + CardTokenRequestDate + + false + + + + + CardTokenRequestStatusFlag + + false + + + + + CardTokenWalletId + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2DC_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2DC_001_Dapi.xml new file mode 100644 index 0000000..9e81f9a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2DC_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2DC + 001 + DEVL + + + HUB + MWF2DC + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2DD_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2DD_001.xml new file mode 100644 index 0000000..506e6ba --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2DD_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF2DD + 001 + active + hub API:MWF2DD + + + + + CardInstanceNumber + + false + + + + + CardTokenRefId + + false + + + + + + + ResponseStatusFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2DD_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2DD_001_Dapi.xml new file mode 100644 index 0000000..86d2daa --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2DD_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2DD + 001 + DEVL + + + HUB + MWF2DD + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2F3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2F3_001.xml new file mode 100644 index 0000000..70f4f6f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2F3_001.xml @@ -0,0 +1,122 @@ + + + + + HUB + MWF2F3 + 001 + active + hub API:MWF2F3 + + + + + CIF + + false + + + + + CompanyName + + false + + + + + Date + + false + + + + + DigitalSignatureIdentity + + false + + + + + GeneratedDocumentID + + false + + + + + ICO + + false + + + + + IdKlienta + + false + + + + + UserBirthDate + + false + + + + + UserFirstName + + false + + + + + UserRole + + false + + + + + UserSecondName + + false + + + + + UserTitlePrefix + + false + + + + + UserTitleSuffix + + false + + + + + + + CmID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2F3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2F3_001_Dapi.xml new file mode 100644 index 0000000..d3f17db --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2F3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2F3 + 001 + DEVL + + + HUB + MWF2F3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2H1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2H1_001.xml new file mode 100644 index 0000000..e7a757f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2H1_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF2H1 + 001 + active + hub API:MWF2H1 + + + + + ICO_NUM + + false + + + + + RC_NUM + + false + + + + + + + CLIENT_TYPE + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2H1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2H1_001_Dapi.xml new file mode 100644 index 0000000..22e4005 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2H1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2H1 + 001 + DEVL + + + HUB + MWF2H1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2H5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2H5_001.xml new file mode 100644 index 0000000..0e290f4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2H5_001.xml @@ -0,0 +1,115 @@ + + + + + HUB + MWF2H5 + 001 + active + hub API:MWF2H5 + + + + + Category + + false + + + + + CellNumber + + false + + + + + ContactDate + + false + + + + + ContactTimeNote + + false + + + + + Currency + + false + + + + + Email + + false + + + + + FirstName + + false + + + + + ICO + + false + + + + + IDBranch + + false + + + + + Landline + + false + + + + + LastName + + false + + + + + RequestedLoanAmount + + false + + + + + + + Result + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2H5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2H5_001_Dapi.xml new file mode 100644 index 0000000..3e06609 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2H5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2H5 + 001 + DEVL + + + HUB + MWF2H5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2H7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2H7_001.xml new file mode 100644 index 0000000..5b32fa1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2H7_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF2H7 + 001 + active + hub API:MWF2H7 + + + + + ProdPackageKey + + false + + + + + + + DocumentURL + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2H7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2H7_001_Dapi.xml new file mode 100644 index 0000000..769e42d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2H7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2H7 + 001 + DEVL + + + HUB + MWF2H7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2I6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2I6_001.xml new file mode 100644 index 0000000..12fa6a3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2I6_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF2I6 + 001 + active + hub API:MWF2I6 + + + + + AppSetKey + + false + + + + + ProdPackageKey + + false + + + + + WorkflowState + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2I6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2I6_001_Dapi.xml new file mode 100644 index 0000000..a90062e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2I6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2I6 + 001 + DEVL + + + HUB + MWF2I6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2I9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2I9_001.xml new file mode 100644 index 0000000..bbae9f1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2I9_001.xml @@ -0,0 +1,69 @@ + + + + + HUB + MWF2I9 + 001 + active + hub API:MWF2I9 + + + + + CIF + + false + + + + + ChannelId + + false + + + + + Data + + + + RS_CMID + + false + + + + + + false + + + + + ProdPackageKey + + false + + + + + SignatureID + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF2I9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF2I9_001_Dapi.xml new file mode 100644 index 0000000..e8f7721 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF2I9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF2I9 + 001 + DEVL + + + HUB + MWF2I9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF302_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF302_001.xml new file mode 100644 index 0000000..7ece2fd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF302_001.xml @@ -0,0 +1,31 @@ + + + + + HUB + MWF302 + 001 + active + hub API:MWF302 + + + + + AP + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF302_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF302_001_Dapi.xml new file mode 100644 index 0000000..419a3ec --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF302_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF302 + 001 + DEVL + + + HUB + MWF302 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF303_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF303_001.xml new file mode 100644 index 0000000..0c4cead --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF303_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF303 + 001 + active + hub API:MWF303 + + + + + AP + + false + + + + + CisloBU + + false + + + + + VyseRamceSchvaleno + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF303_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF303_001_Dapi.xml new file mode 100644 index 0000000..c57b38d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF303_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF303 + 001 + DEVL + + + HUB + MWF303 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF30D_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF30D_001.xml new file mode 100644 index 0000000..bb32431 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF30D_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF30D + 001 + active + hub API:MWF30D + + + + + UrednikSSO + + false + + + + + Zadost_KEY + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF30D_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF30D_001_Dapi.xml new file mode 100644 index 0000000..5b713aa --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF30D_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF30D + 001 + DEVL + + + HUB + MWF30D + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + CBL.HUB.INP + + + + 4 + 60 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF321_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF321_001.xml new file mode 100644 index 0000000..48771b6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF321_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF321 + 001 + active + hub API:MWF321 + + + + + CIF + + false + + + + + + + CIFExistuje + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF321_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF321_001_Dapi.xml new file mode 100644 index 0000000..933d537 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF321_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF321 + 001 + DEVL + + + HUB + MWF321 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF371_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF371_001.xml new file mode 100644 index 0000000..73a33ea --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF371_001.xml @@ -0,0 +1,97 @@ + + + + + HUB + MWF371 + 001 + active + hub API:MWF371 + + + + + TypKarty + + false + + + + + + + Data + + + + RS_IDDOPLNKOVESLUZBY + + false + + + + + RS_NAZEV + + false + + + + + RS_JEVCENE + + false + + + + + RS_MAPLAST + + false + + + + + RS_VOLITELNA + + false + + + + + RS_CENA + + false + + + + + + false + + + + + Pocet + + false + + + + + PoleDS + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF371_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF371_001_Dapi.xml new file mode 100644 index 0000000..65c66c1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF371_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF371 + 001 + DEVL + + + HUB + MWF371 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF391_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF391_001.xml new file mode 100644 index 0000000..78f69e9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF391_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF391 + 001 + active + hub API:MWF391 + + + + + CIF + + false + + + + + + + ADCKlient + + false + + + + + ExistujeKlient + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF391_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF391_001_Dapi.xml new file mode 100644 index 0000000..81ee2ab --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF391_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF391 + 001 + TEST + + + HUB + MWF391 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF395_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF395_001.xml new file mode 100644 index 0000000..236dae3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF395_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF395 + 001 + active + hub API:MWF395 + + + + + CisloUctu + + false + + + + + + + KonecnyZustatek + + false + + + + + Mena + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF395_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF395_001_Dapi.xml new file mode 100644 index 0000000..6c65fa8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF395_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF395 + 001 + DEVL + + + HUB + MWF395 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3A3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3A3_001.xml new file mode 100644 index 0000000..c8bc487 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3A3_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF3A3 + 001 + active + hub API:MWF3A3 + + + + + BirthNumber + + false + + + + + + + Allowed + + false + + + + + CIF + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3A3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3A3_001_Dapi.xml new file mode 100644 index 0000000..d63c83b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3A3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF3A3 + 001 + DEVL + + + HUB + MWF3A3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3C2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3C2_001.xml new file mode 100644 index 0000000..376498b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3C2_001.xml @@ -0,0 +1,659 @@ + + + + + HUB + MWF3C2 + 001 + active + hub API:MWF3C2 + + + + + BirthNumber + + false + + + + + ICO + + false + + + + + + + AdministrativeUnit + + false + + + + + BankEmployeeType + + false + + + + + BirthDate + + false + + + + + BirthNumber + + false + + + + + BirthPlace + + false + + + + + BranchCode + + false + + + + + BranchName + + false + + + + + BusinessCity + + false + + + + + BusinessCityDistrict + + false + + + + + BusinessCountry + + false + + + + + BusinessEnd + + false + + + + + BusinessLandRegistryNumber + + false + + + + + BusinessName + + false + + + + + BusinessPSC + + false + + + + + BusinessSector + + false + + + + + BusinessStart + + false + + + + + BusinessStreet + + false + + + + + BusinessStreetNumber + + false + + + + + CIFCreationDate + + false + + + + + CIFFO + + false + + + + + CIFFOP + + false + + + + + ClientType + + false + + + + + ContactInformationExpirationDate + + false + + + + + ContractInformationValidity + + false + + + + + Country + + false + + + + + DIC + + false + + + + + Education + + false + + + + + EmployedSince + + false + + + + + EmployerICO + + false + + + + + EmployersName + + false + + + + + EmploymentType + + false + + + + + FamilyName + + false + + + + + FirstName + + false + + + + + Gender + + false + + + + + HousingType + + false + + + + + ICO + + false + + + + + IncomeConfirmationDate + + false + + + + + IncomeGroup + + false + + + + + LastUpdateDate + + false + + + + + LegalForm + + false + + + + + MaritalAssetsStatus + + false + + + + + MaritalStatus + + false + + + + + MonthlyNetIncome + + false + + + + + NACE + + false + + + + + NurturedChildrenNumber + + false + + + + + OccupationDetail + + false + + + + + PersonalBanker + + false + + + + + Post + + false + + + + + RWS_Addresses + + + + RS_NOTE + + false + + + + + RS_STREETNUMBER + + false + + + + + RS_LANDREGISTRYNUMBER + + false + + + + + RS_CITYDISTRICT + + false + + + + + RS_ADDRESSPURPOSE + + false + + + + + RS_POST + + false + + + + + RS_ZIP + + false + + + + + RS_COUNTRY + + false + + + + + RS_CITY + + false + + + + + RS_STREET + + false + + + + + RS_ADDRESSSINCE + + false + + + + + + false + + + + + RWS_Documents + + + + RS_IDCARDNUMBER + + false + + + + + RS_IDCARDISSUINGCOUNTRY + + false + + + + + RS_IDCARDEXPIRATIONDATE + + false + + + + + RS_IDCARDPURPOSE + + false + + + + + RS_IDCARDTYPE + + false + + + + + + false + + + + + RWS_Emails + + + + RS_EMAIL + + false + + + + + RS_EMAILPURPOSE + + false + + + + + + false + + + + + RWS_Phones + + + + RS_PHONEPURPOSE + + false + + + + + RS_PHONENUMBER + + false + + + + + RS_PHONETYPE + + false + + + + + + false + + + + + RelationToBank + + false + + + + + Residency + + false + + + + + Salutation + + false + + + + + SecondCountry + + false + + + + + SecondName + + false + + + + + SendMarketingOffers + + false + + + + + ShortenedName + + false + + + + + SleepingAccount + + false + + + + + SocialEconomicalGroup + + false + + + + + StudentsConfirmation + + false + + + + + StudentsConfirmationExpirationDate + + false + + + + + TitleAfter + + false + + + + + TitleBefore + + false + + + + + UndesirableClient + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3C2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3C2_001_Dapi.xml new file mode 100644 index 0000000..9f7b12f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3C2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF3C2 + 001 + DEVL + + + HUB + MWF3C2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3C3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3C3_001.xml new file mode 100644 index 0000000..7486cb9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3C3_001.xml @@ -0,0 +1,101 @@ + + + + + HUB + MWF3C3 + 001 + active + hub API:MWF3C3 + + + + + INST_PT_KEY + + false + + + + + + + AddressCity + + false + + + + + AddressContHouseNumber + + false + + + + + AddressContLandRegistryNumber + + false + + + + + AddressCountry + + false + + + + + AddressStreet + + false + + + + + AddressZipCode + + false + + + + + FirstName + + false + + + + + LastName + + false + + + + + OkecCode + + false + + + + + SecondName + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3C3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3C3_001_Dapi.xml new file mode 100644 index 0000000..cb127d3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3C3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF3C3 + 001 + DEVL + + + HUB + MWF3C3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3E3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3E3_001.xml new file mode 100644 index 0000000..372c546 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3E3_001.xml @@ -0,0 +1,201 @@ + + + + + HUB + MWF3E3 + 001 + active + hub API:MWF3E3 + + + + + Channel + + false + + + + + ProductClass + + false + + + + + + + DiscountType + + false + + + + + MaxLoanAmount + + false + + + + + MaxLoanAmountForWeb + + false + + + + + MaxTerm + + false + + + + + MinLoanAmount + + false + + + + + MinTerm + + false + + + + + RWS_GarantedAmount + + + + RS_LOANFROM + + false + + + + + RS_LOANTO + + false + + + + + RS_INTERESTRATE + + false + + + + + RS_TERMFROM + + false + + + + + RS_TERMTO + + false + + + + + + false + + + + + RWS_LoanAmount + + + + RS_VARIANTID + + false + + + + + RS_LOANAMOUNTFROM + + false + + + + + RS_LOANAMOUNTTO + + false + + + + + RS_MAXTERM + + false + + + + + RS_MINTERM + + false + + + + + + false + + + + + RWS_Term + + + + RS_VARIANT_ID + + false + + + + + RS_TERM + + false + + + + + + false + + + + + SalesProductType + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3E3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3E3_001_Dapi.xml new file mode 100644 index 0000000..97bc9dc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3E3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF3E3 + 001 + DEVL + + + HUB + MWF3E3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3F3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3F3_001.xml new file mode 100644 index 0000000..a36d84f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3F3_001.xml @@ -0,0 +1,328 @@ + + + + + HUB + MWF3F3 + 001 + active + hub API:MWF3F3 + + + + + ApplSetKey + + false + + + + + + + CMID + + false + + + + + Data + + + + RS_ZADOST_KEY + + false + + + + + RS_PRIORITA + + false + + + + + RS_STAVZADOSTI + + false + + + + + RS_TYPZADOSTI + + false + + + + + RS_PODTYPZADOSTI + + false + + + + + RS_AKTIVNI_FLAG + + false + + + + + RS_FORMAL_FLAG + + false + + + + + RS_SCHVALCHYBAID + + false + + + + + RS_PRODUKTTRIDA + + false + + + + + RS_ROZHODNUTI + + false + + + + + RS_KODPRODUKTU + + false + + + + + RS_VYSENABIDKY_ZAVAZNA + + false + + + + + RS_POZADOVANACASTKA + + false + + + + + RS_KODPRODUKTU_SALES + + false + + + + + RS_TYPINFOLIMITU + + false + + + + + RS_NESPLACENAJISTINA + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_VYSENABIDKY_NEZAVAZNA + + false + + + + + RS_POCETSPLATEK + + false + + + + + RS_CA_VARIANTA_KEY + + false + + + + + RS_FE_STAV_IB + + false + + + + + RS_APP_ID + + false + + + + + RS_FE_STAV_UFO + + false + + + + + RS_CISLOUUCTU + + false + + + + + RS_ID + + false + + + + + RS_SCHV_FLEXILIMIT + + false + + + + + RS_SCHV_KODPRODUKTU + + false + + + + + RS_SCHV_KODPRODUKTUSALES + + false + + + + + RS_SCHV_POCETSPLATEK + + false + + + + + RS_SCHV_PRODUKTTRIDA + + false + + + + + RS_SCHV_TYPPOJISTENI + + false + + + + + RS_SCHV_UROKOVASAZBA + + false + + + + + RS_SCHV_VYSESPLATKY + + false + + + + + RS_SCHV_VYSEUVERU + + false + + + + + RS_FE_PODTYPZADOSTI + + false + + + + + RS_PRITOMNYVSECHNYOSOBY + + false + + + + + RS_BEZPRITOMNOSTIKLIENTA + + false + + + + + RS_PRIZNAKALTERNATIVNINABIDKY + + false + + + + + RS_SMARTLIMIT + + false + + + + + + false + + + + + URL + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3F3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3F3_001_Dapi.xml new file mode 100644 index 0000000..9a86db9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3F3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF3F3 + 001 + DEVL + + + HUB + MWF3F3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3F4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3F4_001.xml new file mode 100644 index 0000000..e7947de --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3F4_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF3F4 + 001 + active + hub API:MWF3F4 + + + + + ApplSetKey + + false + + + + + SignatureID + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3F4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3F4_001_Dapi.xml new file mode 100644 index 0000000..105c46a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3F4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF3F4 + 001 + DEVL + + + HUB + MWF3F4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3F5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3F5_001.xml new file mode 100644 index 0000000..f7be6b9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3F5_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF3F5 + 001 + active + hub API:MWF3F5 + + + + + ApplSetKey + + false + + + + + RefusalReason + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3F5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3F5_001_Dapi.xml new file mode 100644 index 0000000..aa693c2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3F5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF3F5 + 001 + DEVL + + + HUB + MWF3F5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3F7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3F7_001.xml new file mode 100644 index 0000000..7d6b428 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3F7_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF3F7 + 001 + active + hub API:MWF3F7 + + + + + ApplSetKey + + false + + + + + + + ExpirationDate + + false + + + + + SignIsPossible + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3F7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3F7_001_Dapi.xml new file mode 100644 index 0000000..e8911f4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3F7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF3F7 + 001 + DEVL + + + HUB + MWF3F7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3H0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3H0_001.xml new file mode 100644 index 0000000..30f297c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3H0_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWF3H0 + 001 + active + hub API:MWF3H0 + + + + + ClientInstId + + false + + + + + ClientInstSysId + + false + + + + + + + ClientInstIsSynchronized + + false + + + + + ClientInstKey + + false + + + + + ClientUniKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3H0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3H0_001_Dapi.xml new file mode 100644 index 0000000..98c5708 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3H0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF3H0 + 001 + DEVL + + + HUB + MWF3H0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3H3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3H3_001.xml new file mode 100644 index 0000000..ea62984 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3H3_001.xml @@ -0,0 +1,662 @@ + + + + + HUB + MWF3H3 + 001 + active + hub API:MWF3H3 + + + + + ActivatingPassword + + false + + + + + AppBranchId + + false + + + + + AppChannelId + + false + + + + + BusinessType + + false + + + + + ClientBirthCountry + + false + + + + + ClientBirthDate + + false + + + + + ClientBirthNumber + + false + + + + + ClientBirthPlace + + false + + + + + ClientBusEmployeeCount + + false + + + + + ClientBusGrossIncomeLastYear + + false + + + + + ClientBusName + + false + + + + + ClientBusSector + + false + + + + + ClientBusStartDate + + false + + + + + ClientCitizenship + + false + + + + + ClientDependPersons + + false + + + + + ClientEducation + + false + + + + + ClientEmploymentType + + false + + + + + ClientFamilyBusFlag + + false + + + + + ClientFamilyBusProfitSharePct + + false + + + + + ClientFixedPerFlag + + false + + + + + ClientForename + + false + + + + + ClientHousingType + + false + + + + + ClientIco + + false + + + + + ClientLegalForm + + false + + + + + ClientMaritalAssets + + false + + + + + ClientMaritalStatus + + false + + + + + ClientMiddleName + + false + + + + + ClientNameTitleAfter + + false + + + + + ClientNameTitleBefore + + false + + + + + ClientPresenceWithAllPersonsFlag + + false + + + + + ClientResidentFlag + + false + + + + + ClientSex + + false + + + + + ClientSurname + + false + + + + + ClientType + + false + + + + + CurrentAccountOpenFlag + + false + + + + + EmployeeSso + + false + + + + + IpAddress + + false + + + + + LoanAmount + + false + + + + + LoanInstalmentAmount + + false + + + + + LoanInstalmentDeferredCount + + false + + + + + LoanInstalmentRegularDay + + false + + + + + LoanInsuranceType + + false + + + + + LoanMaturityTerm + + false + + + + + LoanRepaymentType + + false + + + + + OfficerForename + + false + + + + + OfficerFunctId + + false + + + + + OfficerKey + + false + + + + + OfficerSurname + + false + + + + + RsAddresses + + + + RS_ADDRESS_CLIENT_ID + + false + + + + + RS_ADDRESS_PURPOSE + + false + + + + + RS_ADDRESS_COUNTRY + + false + + + + + RS_ADDRESS_CITY + + false + + + + + RS_ADDRESS_STREET + + false + + + + + RS_ADDRESS_STREET_DESC_NO + + false + + + + + RS_ADDRESS_STREET_ORIENT_NO + + false + + + + + RS_ADDRESS_ZIPCODE + + false + + + + + RS_ADDRESS_POST_OFFICE + + false + + + + + RS_ADDRESS_SINCE + + false + + + + + + false + + + + + RsEmails + + + + RS_EMAIL_PURPOSE + + false + + + + + RS_EMAIL + + false + + + + + RS_EMAIL_CLIENT_ID + + false + + + + + + false + + + + + RsIds + + + + RS_ID_CARD_PURP_ID + + false + + + + + RS_ID_CARD_NR + + false + + + + + RS_ID_CARD_TYPE_ID + + false + + + + + RS_ID_CARD_CNTRY_ID + + false + + + + + RS_ID_CARD_EXPR_DATE + + false + + + + + RS_ID_CARD_CLIENT_ID + + false + + + + + + false + + + + + RsNaces + + + + RS_PT_OKEC_KEY + + false + + + + + RS_INST_PT_KEY + + false + + + + + RS_OKEC_ID + + false + + + + + RS_OKEC_MAIN_FLAG + + false + + + + + RS_PRFT_SHARE_PCT + + false + + + + + RS_DEL_FLAG + + false + + + + + + false + + + + + RsPhones + + + + RS_PHONE_PURPOSE + + false + + + + + RS_PHONE_TYPE + + false + + + + + RS_PHONE_NUMBER + + false + + + + + RS_PHONE_CLIENT_ID + + false + + + + + + false + + + + + + + AppKey_ClientCif + + false + + + + + AppKey_CurrentAccount + + false + + + + + AppKey_InternetBank + + false + + + + + AppSetKey + + false + + + + + Appkey_Express + + false + + + + + PackageKey + + false + + + + + WorkflowId + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3H3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3H3_001_Dapi.xml new file mode 100644 index 0000000..a6f2356 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3H3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF3H3 + 001 + DEVL + + + HUB + MWF3H3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3I0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3I0_001.xml new file mode 100644 index 0000000..0783742 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3I0_001.xml @@ -0,0 +1,79 @@ + + + + + HUB + MWF3I0 + 001 + active + hub API:MWF3I0 + + + + + RS_IN + + + + RS_APPKEY + + false + + + + + + false + + + + + + + AgreggatedState + + false + + + + + RS_OUT + + + + RS_APPKEY + + false + + + + + RS_APPSTATE + + false + + + + + RS_PRODUCTCLASS + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF3I0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF3I0_001_Dapi.xml new file mode 100644 index 0000000..534bb79 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF3I0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF3I0 + 001 + DEVL + + + HUB + MWF3I0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF40D_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF40D_001.xml new file mode 100644 index 0000000..23e1851 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF40D_001.xml @@ -0,0 +1,94 @@ + + + + + HUB + MWF40D + 001 + active + hub API:MWF40D + + + + + CisloSmlouvy + + false + + + + + DatumPodpisuSmlouvy + + false + + + + + KodProduktuSales + + false + + + + + ObchodniMistoKod + + false + + + + + UrednikID + + false + + + + + UrednikJmeno + + false + + + + + UrednikPrijmeni + + false + + + + + UrednikSSO + + false + + + + + ZadostAP + + false + + + + + Zadost_KEY + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF40D_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF40D_001_Dapi.xml new file mode 100644 index 0000000..03f4256 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF40D_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF40D + 001 + DEVL + + + HUB + MWF40D + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + CBL.HUB.INP + + + + 4 + 60 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF424_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF424_001.xml new file mode 100644 index 0000000..30b84a4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF424_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWF424 + 001 + active + hub API:MWF424 + + + + + Heslo + + false + + + + + ID + + false + + + + + ZpusobPrihlaseni + + false + + + + + + + Kod + + false + + + + + Platnost + + false + + + + + Prihlaseno + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF424_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF424_001_Dapi.xml new file mode 100644 index 0000000..578682b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF424_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF424 + 001 + DEVL + + + HUB + MWF424 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF431_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF431_001.xml new file mode 100644 index 0000000..1f0268d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF431_001.xml @@ -0,0 +1,69 @@ + + + + + HUB + MWF431 + 001 + active + hub API:MWF431 + + + + + Data + + + + RS_CMID + + false + + + + + RS_DOCUMENTTYPE + + false + + + + + RS_PAGENUMBER + + false + + + + + + false + + + + + + + CMID + + false + + + + + URL + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF431_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF431_001_Dapi.xml new file mode 100644 index 0000000..9672b9b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF431_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF431 + 001 + DEVL + + + HUB + MWF431 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF432_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF432_001.xml new file mode 100644 index 0000000..0ce20c5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF432_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF432 + 001 + active + hub API:MWF432 + + + + + AppKey + + false + + + + + + + IsInPackage + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF432_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF432_001_Dapi.xml new file mode 100644 index 0000000..8247895 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF432_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF432 + 001 + DEVL + + + HUB + MWF432 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF439_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF439_001.xml new file mode 100644 index 0000000..145c125 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF439_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWF439 + 001 + active + hub API:MWF439 + + + + + CompletationChannelID + + false + + + + + GeneratedDocumentID + + false + + + + + LoanAmount + + false + + + + + ProdPackageKey + + false + + + + + Term + + false + + + + + VariantKey + + false + + + + + + + CmID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF439_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF439_001_Dapi.xml new file mode 100644 index 0000000..6a05879 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF439_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF439 + 001 + DEVL + + + HUB + MWF439 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF446_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF446_001.xml new file mode 100644 index 0000000..968a5a7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF446_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWF446 + 001 + active + hub API:MWF446 + + + + + CompletationChannelID + + false + + + + + GeneratedDocumentID + + false + + + + + ProdPackageKey + + false + + + + + SignatureID + + false + + + + + TimeStamp + + false + + + + + + + CmID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF446_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF446_001_Dapi.xml new file mode 100644 index 0000000..61a8043 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF446_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF446 + 001 + DEVL + + + HUB + MWF446 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF44D_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF44D_001.xml new file mode 100644 index 0000000..e62b97f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF44D_001.xml @@ -0,0 +1,206 @@ + + + + + HUB + MWF44D + 001 + active + hub API:MWF44D + + + + + BrandKarty + + false + + + + + CisloSmlouvy + + false + + + + + CisloUctu + + false + + + + + DesignKarty + + false + + + + + IDXselloveKampane + + false + + + + + OM_ID + + false + + + + + Operace + + false + + + + + PozadovanaCastka + + false + + + + + PracovnikMTSID + + false + + + + + PrimarniUrednikID + + false + + + + + PrimarniUrednikJmeno + + false + + + + + PrimarniUrednikPrijmeni + + false + + + + + PrimarniUrednikSSO + + false + + + + + ProcentoHotovostnihoLimitu + + false + + + + + ProcentoMinimalniSplatky + + false + + + + + ProduktSales + + false + + + + + PromoAkce + + false + + + + + UrednikFunkce + + false + + + + + UrednikID + + false + + + + + UrednikJmeno + + false + + + + + UrednikPrijmeni + + false + + + + + UrednikSSO + + false + + + + + ZadostPuvodni + + false + + + + + + + LogoKarty + + false + + + + + Zadost + + false + + + + + ZadostKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF44D_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF44D_001_Dapi.xml new file mode 100644 index 0000000..a014bd1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF44D_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF44D + 001 + DEVL + + + HUB + MWF44D + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF460_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF460_001.xml new file mode 100644 index 0000000..67c94cd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF460_001.xml @@ -0,0 +1,392 @@ + + + + + HUB + MWF460 + 001 + active + hub API:MWF460 + + + + + Aktivni + + false + + + + + Isin + + false + + + + + + + Data + + + + RS_TYPPOBOCKA + + false + + + + + RS_ISIN + + false + + + + + RS_NAZEV + + false + + + + + RS_KATEGORIE + + false + + + + + RS_MENA + + false + + + + + RS_PROFIL + + false + + + + + RS_AKTIVNI + + false + + + + + RS_EMITENT + + false + + + + + RS_RODINA + + false + + + + + RS_POPLATEKVSTUP + + false + + + + + RS_POPLATEKSPRAVA + + false + + + + + RS_COJPL + + false + + + + + RS_COJPLDATUM + + false + + + + + RS_SPLATNOST + + false + + + + + RS_NAKUP + + false + + + + + RS_PRODEJ + + false + + + + + RS_PRESTUP + + false + + + + + RS_OBCHODDENNAKUP + + false + + + + + RS_OBCHODDENPRODEJ + + false + + + + + RS_OBCHODDENPRESTUP + + false + + + + + RS_COJPLCZK + + false + + + + + RS_POCETKS_CELKEM + + false + + + + + RS_POCETKS_DISPONIBILNI + + false + + + + + RS_POCETKS_BLOKACE + + false + + + + + RS_OBJEM_CELKEM_CZK + + false + + + + + RS_MINIMALNIINVESTICE + + false + + + + + RS_TECHNICKYUCETCISLO + + false + + + + + RS_DATPOCPREMOBD + + false + + + + + RS_DATKONPREMOBD + + false + + + + + RS_DATPOCPRIPOBD + + false + + + + + RS_DATKONPRIPOBD + + false + + + + + RS_DATSPLAT + + false + + + + + RS_SAZBAZAKFIX + + false + + + + + RS_SAZBAZAKFLOAT + + false + + + + + RS_SAZBAPRIPFIX + + false + + + + + RS_SAZBAPREMFLOAT + + false + + + + + RS_SAZBAPREMFIX + + false + + + + + RS_PROSPEKT + + false + + + + + RS_ATRIBUTOBDOBI + + false + + + + + RS_PREMSAZBASPLNENO + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_TRHEMISE + + false + + + + + RS_SKUPINAEMISE + + false + + + + + RS_PRODUKT + + false + + + + + RS_POCETDESETINNYCHMIST + + false + + + + + RS_INVESTICNIHORIZONT + + false + + + + + RS_DATUMVZNIKU + + false + + + + + RS_STUPENRIZIKA + + false + + + + + RS_TYPFOND + + false + + + + + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF460_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF460_001_Dapi.xml new file mode 100644 index 0000000..566a643 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF460_001_Dapi.xml @@ -0,0 +1,37 @@ + + + + + MWF460 + 001 + DEVL + + + HUB + MWF460 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF461_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF461_001.xml new file mode 100644 index 0000000..8b28668 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF461_001.xml @@ -0,0 +1,370 @@ + + + + + HUB + MWF461 + 001 + active + hub API:MWF461 + + + + + Aktivni + + false + + + + + Cif + + false + + + + + Isin + + false + + + + + + + Data + + + + RS_TYPPOBOCKA + + false + + + + + RS_ISIN + + false + + + + + RS_NAZEV + + false + + + + + RS_KATEGORIE + + false + + + + + RS_MENA + + false + + + + + RS_PROFIL + + false + + + + + RS_AKTIVNI + + false + + + + + RS_EMITENT + + false + + + + + RS_RODINA + + false + + + + + RS_POPLATEKVSTUP + + false + + + + + RS_POPLATEKSPRAVA + + false + + + + + RS_COJPL + + false + + + + + RS_COJPLDATUM + + false + + + + + RS_SPLATNOST + + false + + + + + RS_NAKUP + + false + + + + + RS_PRODEJ + + false + + + + + RS_PRESTUP + + false + + + + + RS_OBCHODDENNAKUP + + false + + + + + RS_OBCHODDENPRODEJ + + false + + + + + RS_OBCHODDENPRESTUP + + false + + + + + RS_COJPLCZK + + false + + + + + RS_POCETKS_CELKEM + + false + + + + + RS_POCETKS_DISPONIBILNI + + false + + + + + RS_POCETKS_BLOKACE + + false + + + + + RS_OBJEM_CELKEM_CZK + + false + + + + + RS_MINIMALNIINVESTICE + + false + + + + + RS_TECHNICKYUCETCISLO + + false + + + + + RS_DATPOCPREMOBD + + false + + + + + RS_DATKONPREMOBD + + false + + + + + RS_DATPOCPRIPOBD + + false + + + + + RS_DATKONPRIPOBD + + false + + + + + RS_DATSPLAT + + false + + + + + RS_SAZBAZAKFIX + + false + + + + + RS_SAZBAZAKFLOAT + + false + + + + + RS_SAZBAPRIPFIX + + false + + + + + RS_SAZBAPREMFLOAT + + false + + + + + RS_SAZBAPREMFIX + + false + + + + + RS_PROSPEKT + + false + + + + + RS_ATRIBUTOBDOBI + + false + + + + + RS_PREMSAZBASPLNENO + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_TRHEMISE + + false + + + + + RS_SKUPINAEMISE + + false + + + + + RS_PRODUKT + + false + + + + + RS_POCETDESETINNYCHMIST + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF461_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF461_001_Dapi.xml new file mode 100644 index 0000000..695b305 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF461_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF461 + 001 + DEVL + + + HUB + MWF461 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF474_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF474_001.xml new file mode 100644 index 0000000..6675be0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF474_001.xml @@ -0,0 +1,97 @@ + + + + + HUB + MWF474 + 001 + active + hub API:MWF474 + + + + + CIF + + false + + + + + Data + + + + RS_CMID + + false + + + + + RS_DOCUMENTTYPE + + false + + + + + RS_DOCUMENTNAME + + false + + + + + + false + + + + + IdZadosti + + false + + + + + PhoneNum + + false + + + + + RC + + false + + + + + + + CMID + + false + + + + + WFID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF474_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF474_001_Dapi.xml new file mode 100644 index 0000000..e497cdb --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF474_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF474 + 001 + DEVL + + + HUB + MWF474 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF47D_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF47D_001.xml new file mode 100644 index 0000000..452764c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF47D_001.xml @@ -0,0 +1,153 @@ + + + + + HUB + MWF47D + 001 + active + hub API:MWF47D + + + + + APP_STATUS_ID + + false + + + + + APP_SUBTYPE_ID + + false + + + + + APP_TYPE_ID + + false + + + + + CONTRACT_NR + + false + + + + + + + Data + + + + RS_APP_ID + + false + + + + + RS_APP_KEY + + false + + + + + RS_APP_TYPE_ID + + false + + + + + RS_APP_SUBTYPE_ID + + false + + + + + RS_APP_STATUS_ID + + false + + + + + RS_DECISION_DATE + + false + + + + + RS_PRODUCT_TYPE + + false + + + + + RS_SALES_PRODUCT_TYPE + + false + + + + + RS_CARD_BRAND + + false + + + + + RS_CARD_VARIANT + + false + + + + + RS_CARD_PROMO + + false + + + + + RS_CARD_DESIGN + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF47D_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF47D_001_Dapi.xml new file mode 100644 index 0000000..0ec4bbf --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF47D_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF47D + 001 + DEVL + + + HUB + MWF47D + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF485_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF485_001.xml new file mode 100644 index 0000000..bf32984 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF485_001.xml @@ -0,0 +1,258 @@ + + + + + HUB + MWF485 + 001 + active + hub API:MWF485 + + + + + CardAccountNumber + + false + + + + + NextRecKey + + false + + + + + Org + + false + + + + + + + Data + + + + RS_AUTHDATE + + false + + + + + RS_AUTHTIME + + false + + + + + RS_AUTHAMT + + false + + + + + RS_AUTHRESP + + false + + + + + RS_AUTHREASON + + false + + + + + RS_REQTYPE + + false + + + + + RS_REVIND + + false + + + + + RS_CREDITPLAN + + false + + + + + RS_SKUNBR + + false + + + + + RS_TOTSALESAMT + + false + + + + + RS_TOTSALESAMTS + + false + + + + + RS_OFFDOWNPMT + + false + + + + + RS_OFFDOWNPMTS + + false + + + + + RS_DOWNPMTUSED + + false + + + + + RS_DOWNPMTUSEDS + + false + + + + + RS_ACTION + + false + + + + + RS_AUTHID + + false + + + + + RS_AUTHTYPE + + false + + + + + RS_CARDNBR + + false + + + + + RS_CARDSEQ + + false + + + + + RS_TXNRECTYPE + + false + + + + + RS_SOURCEFILE + + false + + + + + RS_TIDBINICAFID + + false + + + + + RS_DAYCD + + false + + + + + RS_DESC + + false + + + + + RS_REFERENCE + + false + + + + + + false + + + + + MoreRecInd + + false + + + + + NextRecKey + + false + + + + + NumberOfRecords + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF485_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF485_001_Dapi.xml new file mode 100644 index 0000000..fc9b4a6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF485_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF485 + 001 + DEVL + + + HUB + MWF485 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF494_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF494_001.xml new file mode 100644 index 0000000..5a496fe --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF494_001.xml @@ -0,0 +1,90 @@ + + + + + HUB + MWF494 + 001 + active + hub API:MWF494 + + + + + BirthNumber + + false + + + + + CompanyIdentificationNumber + + false + + + + + + + Data + + + + RS_ACCOUNTNUMBER + + false + + + + + RS_CARDNUMBER + + false + + + + + RS_CONTRACTNUMBER + + false + + + + + RS_DISPONIBLEBALANCE + + false + + + + + RS_PRODUCTTYPE + + false + + + + + RS_CREDITLIMIT + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF494_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF494_001_Dapi.xml new file mode 100644 index 0000000..184afe6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF494_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF494 + 001 + DEVL + + + HUB + MWF494 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4A9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4A9_001.xml new file mode 100644 index 0000000..ac427d8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4A9_001.xml @@ -0,0 +1,55 @@ + + + + + HUB + MWF4A9 + 001 + active + hub API:MWF4A9 + + + + + ProdPackageKey + + false + + + + + + + Data + + + + RS_CMID + + false + + + + + RS_URL + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4A9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4A9_001_Dapi.xml new file mode 100644 index 0000000..e7b7dec --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4A9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4A9 + 001 + DEVL + + + HUB + MWF4A9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4C3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4C3_001.xml new file mode 100644 index 0000000..05a0620 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4C3_001.xml @@ -0,0 +1,94 @@ + + + + + HUB + MWF4C3 + 001 + active + hub API:MWF4C3 + + + + + AppKey + + false + + + + + BirthNumber + + false + + + + + BranchId + + false + + + + + FirstName + + false + + + + + KulKey + + false + + + + + LastName + + false + + + + + SignatureDate + + false + + + + + SignatureType + + false + + + + + Sso + + false + + + + + WfId + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4C3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4C3_001_Dapi.xml new file mode 100644 index 0000000..9f48fa4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4C3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4C3 + 001 + DEVL + + + HUB + MWF4C3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4C7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4C7_001.xml new file mode 100644 index 0000000..77051e2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4C7_001.xml @@ -0,0 +1,125 @@ + + + + + HUB + MWF4C7 + 001 + active + hub API:MWF4C7 + + + + + BirthNumber + + false + + + + + BranchId + + false + + + + + ChannelId + + false + + + + + ClientType + + false + + + + + Context + + false + + + + + Ico + + false + + + + + ProductClass + + false + + + + + + + Data + + + + RS_APPKEY + + false + + + + + RS_PRODUCTCLASS + + false + + + + + + false + + + + + InstPtKey + + false + + + + + KulKey + + false + + + + + ProcessResult + + false + + + + + WfId + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4C7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4C7_001_Dapi.xml new file mode 100644 index 0000000..13ddfb0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4C7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4C7 + 001 + DEVL + + + HUB + MWF4C7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4C8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4C8_001.xml new file mode 100644 index 0000000..7cba99e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4C8_001.xml @@ -0,0 +1,97 @@ + + + + + HUB + MWF4C8 + 001 + active + hub API:MWF4C8 + + + + + BirthNumber + + false + + + + + + + ActiveIB + + false + + + + + ActiveLoanApplication + + false + + + + + CIF + + false + + + + + Data + + + + RS_CURRENTACCOUNTNUMBER + + false + + + + + RS_CURRENTACCOUNTTYPE + + false + + + + + RS_CURRENTACCOUNTNAME + + false + + + + + RS_CURRENTACCOUNTCURRENCY + + false + + + + + RS_CURRENTACCOUNTFEEPLAN + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4C8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4C8_001_Dapi.xml new file mode 100644 index 0000000..14d0240 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4C8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4C8 + 001 + DEVL + + + HUB + MWF4C8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4D3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4D3_001.xml new file mode 100644 index 0000000..592cc7d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4D3_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF4D3 + 001 + active + hub API:MWF4D3 + + + + + BirthNumber + + false + + + + + + + HasActiveProducts + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4D3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4D3_001_Dapi.xml new file mode 100644 index 0000000..7995b15 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4D3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4D3 + 001 + DEVL + + + HUB + MWF4D3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4E0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4E0_001.xml new file mode 100644 index 0000000..fef2480 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4E0_001.xml @@ -0,0 +1,90 @@ + + + + + HUB + MWF4E0 + 001 + active + hub API:MWF4E0 + + + + + ApplicationKey + + false + + + + + ClientCif + + false + + + + + Data + + + + RS_CMID + + false + + + + + + false + + + + + DocumentCardType + + false + + + + + DocumentFileType + + false + + + + + DocumentItemType + + false + + + + + DocumentType + + false + + + + + + + CmId + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4E0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4E0_001_Dapi.xml new file mode 100644 index 0000000..aedbf65 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4E0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4E0 + 001 + DEVL + + + HUB + MWF4E0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4E1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4E1_001.xml new file mode 100644 index 0000000..cbb05ef --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4E1_001.xml @@ -0,0 +1,80 @@ + + + + + HUB + MWF4E1 + 001 + active + hub API:MWF4E1 + + + + + ClientEmployerCompanyNumber + + false + + + + + + + ClientEmployerBusAddrCity + + false + + + + + ClientEmployerBusAddrDescNr + + false + + + + + ClientEmployerBusAddrOrientNr + + false + + + + + ClientEmployerBusAddrStreet + + false + + + + + ClientEmployerBusAddrZipCode + + false + + + + + ClientEmployerBusinessName + + false + + + + + ClientEmployerCompanyNumber + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4E1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4E1_001_Dapi.xml new file mode 100644 index 0000000..327a939 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4E1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4E1 + 001 + DEVL + + + HUB + MWF4E1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4E2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4E2_001.xml new file mode 100644 index 0000000..7b190fc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4E2_001.xml @@ -0,0 +1,62 @@ + + + + + HUB + MWF4E2 + 001 + active + hub API:MWF4E2 + + + + + ApplicationKey + + false + + + + + TransactionCaptureSnapKey + + false + + + + + + + RWS_ClientIncomes + + + + RS_EMPLOYERCOMPANYNUMBER + + false + + + + + RS_EMPLOYEEINCOMEAMOUNT + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4E2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4E2_001_Dapi.xml new file mode 100644 index 0000000..c6afd3d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4E2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4E2 + 001 + DEVL + + + HUB + MWF4E2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4E9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4E9_001.xml new file mode 100644 index 0000000..e0a74f7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4E9_001.xml @@ -0,0 +1,105 @@ + + + + + HUB + MWF4E9 + 001 + active + hub API:MWF4E9 + + + + + CIF + + false + + + + + PROD_INST_KEY + + false + + + + + + + Data + + + + RS_INSUR_PROD_INST_KEY + + false + + + + + RS_INSUR_ACC_NUM + + false + + + + + RS_INSUR_INST_PT_KEY + + false + + + + + RS_INSUR_FIRST_NAME + + false + + + + + RS_INSUR_FAMILY_NAME + + false + + + + + RS_INSUR_BIRTH_NUMBER + + false + + + + + RS_INSUR_BIRTH_DATE + + false + + + + + RS_INSUR_DIFF_INST_PT_FLAG + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4E9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4E9_001_Dapi.xml new file mode 100644 index 0000000..341aa01 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4E9_001_Dapi.xml @@ -0,0 +1,37 @@ + + + + + MWF4E9 + 001 + DEVL + + + HUB + MWF4E9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4F2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4F2_001.xml new file mode 100644 index 0000000..1b3dd27 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4F2_001.xml @@ -0,0 +1,139 @@ + + + + + HUB + MWF4F2 + 001 + active + hub API:MWF4F2 + + + + + AccountNumber + + false + + + + + CIF + + false + + + + + ChannelId + + false + + + + + FeePlan + + false + + + + + ProductClass + + false + + + + + + + Data + + + + RS_PACKAGEID + + false + + + + + RS_PACKAGENAME + + false + + + + + RS_PACKAGEDESCRIPTION + + false + + + + + RS_PRICE + + false + + + + + RS_CURRENCY + + false + + + + + RS_PERIOD + + false + + + + + RS_PRODUCTTYPE + + false + + + + + RS_PRODUCTCODE + + false + + + + + + false + + + + + Index + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4F2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4F2_001_Dapi.xml new file mode 100644 index 0000000..0eb2379 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4F2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4F2 + 001 + DEVL + + + HUB + MWF4F2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4F9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4F9_001.xml new file mode 100644 index 0000000..6e4a6e0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4F9_001.xml @@ -0,0 +1,153 @@ + + + + + HUB + MWF4F9 + 001 + active + hub API:MWF4F9 + + + + + AccountNumber + + false + + + + + AdditionalServiceState + + false + + + + + CIF + + false + + + + + + + Data + + + + RS_PACKAGEID + + false + + + + + RS_ADDITIONALSERVICESTATE + + false + + + + + RS_PACKAGENAME + + false + + + + + RS_CREATIONCHANNEL + + false + + + + + RS_PRODUCTCODE + + false + + + + + RS_CURRENCY + + false + + + + + RS_PERIOD + + false + + + + + RS_PRICE + + false + + + + + RS_CANCELLATIONCHANNEL + + false + + + + + RS_CANCELLATIONDATE + + false + + + + + RS_CREATIONDATE + + false + + + + + RS_PRODUCTTYPE + + false + + + + + RS_PRODINSTKEY + + false + + + + + + false + + + + + Index + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4F9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4F9_001_Dapi.xml new file mode 100644 index 0000000..91f8731 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4F9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4F9 + 001 + DEVL + + + HUB + MWF4F9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4G0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4G0_001.xml new file mode 100644 index 0000000..c792dff --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4G0_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF4G0 + 001 + active + hub API:MWF4G0 + + + + + CISLO_UCTU + + false + + + + + DATUM_PODPISU + + false + + + + + ID_OBCHOD + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4G0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4G0_001_Dapi.xml new file mode 100644 index 0000000..d753a5e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4G0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4G0 + 001 + DEVL + + + HUB + MWF4G0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4G1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4G1_001.xml new file mode 100644 index 0000000..8793f33 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4G1_001.xml @@ -0,0 +1,213 @@ + + + + + HUB + MWF4G1 + 001 + active + hub API:MWF4G1 + + + + + ADRESA_BYDLISTE_CO + + false + + + + + ADRESA_BYDLISTE_CP + + false + + + + + ADRESA_BYDLISTE_MESTO + + false + + + + + ADRESA_BYDLISTE_PSC + + false + + + + + ADRESA_BYDLISTE_ULICE + + false + + + + + ADRESA_BYDLISTE_ZEME + + false + + + + + ADRESA_KONTAKTNI_CO + + false + + + + + ADRESA_KONTAKTNI_CP + + false + + + + + ADRESA_KONTAKTNI_MESTO + + false + + + + + ADRESA_KONTAKTNI_PSC + + false + + + + + ADRESA_KONTAKTNI_ULICE + + false + + + + + ADRESA_KONTAKTNI_ZEME + + false + + + + + CIF + + false + + + + + CMDID + + false + + + + + DATUM_PODPISU + + false + + + + + EMAIL + + false + + + + + ID_OBCHOD + + false + + + + + JMENO + + false + + + + + PLATNOST_DO + + false + + + + + PLATNOST_OD + + false + + + + + PODPIS_SMS + + false + + + + + PRIJMENI + + false + + + + + RC + + false + + + + + ROLE + + false + + + + + TELEFON1 + + false + + + + + TELEFON2 + + false + + + + + VYSE_POHLEDAVKY + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4G1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4G1_001_Dapi.xml new file mode 100644 index 0000000..f56819b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4G1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4G1 + 001 + DEVL + + + HUB + MWF4G1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4H4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4H4_001.xml new file mode 100644 index 0000000..5f2399d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4H4_001.xml @@ -0,0 +1,86 @@ + + + + + HUB + MWF4H4 + 001 + active + hub API:MWF4H4 + + + + + CHANNEL_ID + + false + + + + + CIF + + false + + + + + FILTER_VALUE + + false + + + + + RS_IN + + + + RS_INSURANCE_ID + + false + + + + + + false + + + + + + + RS_OUT + + + + RS_INSURANCE_ID + + false + + + + + RS_ACC_EXISTS_FLAG + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4H4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4H4_001_Dapi.xml new file mode 100644 index 0000000..97c8113 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4H4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4H4 + 001 + DEVL + + + HUB + MWF4H4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4H6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4H6_001.xml new file mode 100644 index 0000000..d8b0b7a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4H6_001.xml @@ -0,0 +1,184 @@ + + + + + HUB + MWF4H6 + 001 + active + hub API:MWF4H6 + + + + + ChannelId + + false + + + + + ProdPackageKey + + false + + + + + RWS_IDsForProcessing + + + + RS_FIRSTNAME + + false + + + + + RS_SURNAME + + false + + + + + RS_BIRTHNUMBER + + false + + + + + RS_IDCARDNUMBER + + false + + + + + RS_IDCARDVALIDTO + + false + + + + + RS_IDCARDTYPE + + false + + + + + RS_IDCARDPUBLISHINGCOUNTRY + + false + + + + + RS_ADDRESSSTREET + + false + + + + + RS_ADDRESSHOUSENUMBER + + false + + + + + RS_ADDRESSCITY + + false + + + + + RS_ADDRESSZIPCODE + + false + + + + + RS_ADDRESSCOUNTRY + + false + + + + + RS_NATIONALIDCONTROLNUMBER + + false + + + + + RS_ADDRESSLANDREGISTRYNUMBER + + false + + + + + RS_CMID + + false + + + + + + false + + + + + + + AutoProcessDone + + false + + + + + RWS_CreatedDocuments + + + + RS_DOCINSTKEY + + false + + + + + RS_DOCUMENTTYPE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4H6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4H6_001_Dapi.xml new file mode 100644 index 0000000..373b975 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4H6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4H6 + 001 + DEVL + + + HUB + MWF4H6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4H7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4H7_001.xml new file mode 100644 index 0000000..e4bfecc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4H7_001.xml @@ -0,0 +1,152 @@ + + + + + HUB + MWF4H7 + 001 + active + hub API:MWF4H7 + + + + + ChannelId + + false + + + + + ClientName + + false + + + + + ClientSurname + + false + + + + + CmId + + false + + + + + DocumentSuspiciousData + + false + + + + + Email + + false + + + + + Geolocation + + false + + + + + NationalIDControlNumber + + false + + + + + ProdPackageKey + + false + + + + + RWS_DocumentEdited + + + + RS_IDTYPE + + false + + + + + + false + + + + + RWS_DocumentNameMismatch + + + + RS_IDTYPE + + false + + + + + + false + + + + + RWS_DocumentSuspiciousScan + + + + RS_IDTYPE + + false + + + + + + false + + + + + VerificationMethod + + false + + + + + + + WorkflowID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4H7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4H7_001_Dapi.xml new file mode 100644 index 0000000..4e60cf9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4H7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4H7 + 001 + DEVL + + + HUB + MWF4H7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4H9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4H9_001.xml new file mode 100644 index 0000000..4d17b3c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4H9_001.xml @@ -0,0 +1,101 @@ + + + + + HUB + MWF4H9 + 001 + active + hub API:MWF4H9 + + + + + CisloKaretnihoUctu + + false + + + + + + + AktualniSplatkaPoslednihoVypisu + + false + + + + + CelkemDoplatit + + false + + + + + DatumPosledniSplatky + + false + + + + + DatumPoslednihoVypisu + + false + + + + + DatumSplatnosti + + false + + + + + DisponibilniZustatek + + false + + + + + SplatnaMinimalniSplatka + + false + + + + + UverovyRamec + + false + + + + + UverovyRamecVycerpany + + false + + + + + VysePosledniSplatky + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF4H9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF4H9_001_Dapi.xml new file mode 100644 index 0000000..dc22fda --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF4H9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF4H9 + 001 + DEVL + + + HUB + MWF4H9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF55D_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF55D_001.xml new file mode 100644 index 0000000..9862c35 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF55D_001.xml @@ -0,0 +1,146 @@ + + + + + HUB + MWF55D + 001 + active + hub API:MWF55D + + + + + CARD_LOGO + + false + + + + + CARD_NUMBER + + false + + + + + CONTRACT_NUMBER + + false + + + + + DO_INFOLIMIT_FLAG + + false + + + + + ID_OM + + false + + + + + PERSONAL_ID + + false + + + + + RC_NUM_CARD_HOLDER + + false + + + + + RC_NUM_CHECK_FLAG + + false + + + + + + + CARD_NUMBER + + false + + + + + CLIP_ALLOWED_FLAG + + false + + + + + CLIP_AMOUNT + + false + + + + + CLIP_CASH_LIMIT_PERCENT + + false + + + + + CLIP_MIN_INSTALMENT_PERCENT + + false + + + + + CONTRACT_NUMBER + + false + + + + + Data + + + + RS_SUPPLEMENTARY_ALLOWED_TECHGY + + false + + + + + + false + + + + + SUPPLEMENTARY_ALLOWED_FLAG + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF55D_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF55D_001_Dapi.xml new file mode 100644 index 0000000..52db5e4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF55D_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF55D + 001 + DEVL + + + HUB + MWF55D + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5C1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5C1_001.xml new file mode 100644 index 0000000..934dd35 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5C1_001.xml @@ -0,0 +1,150 @@ + + + + + HUB + MWF5C1 + 001 + active + hub API:MWF5C1 + + + + + AccountNumber + + false + + + + + ActivatingPassword + + false + + + + + AppKey + + false + + + + + BranchId + + false + + + + + CardHolderBusinessName + + false + + + + + CardHolderName + + false + + + + + ChannelId + + false + + + + + ClientType + + false + + + + + FirstPaymentDay + + false + + + + + InstallmentPaymentsType + + false + + + + + InsuranceType + + false + + + + + LoanAmount + + false + + + + + RegularInstalmentDay + + false + + + + + Sso + + false + + + + + Term + + false + + + + + VPSFlag + + false + + + + + + + InstallmentAmount + + false + + + + + InterestRate + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5C1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5C1_001_Dapi.xml new file mode 100644 index 0000000..c9e2520 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5C1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF5C1 + 001 + DEVL + + + HUB + MWF5C1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5C9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5C9_001.xml new file mode 100644 index 0000000..a535158 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5C9_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF5C9 + 001 + active + hub API:MWF5C9 + + + + + AppKey + + false + + + + + + + AppState + + false + + + + + CIF + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5C9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5C9_001_Dapi.xml new file mode 100644 index 0000000..c2f9473 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5C9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF5C9 + 001 + DEVL + + + HUB + MWF5C9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5F0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5F0_001.xml new file mode 100644 index 0000000..7512be6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5F0_001.xml @@ -0,0 +1,143 @@ + + + + + HUB + MWF5F0 + 001 + active + hub API:MWF5F0 + + + + + AccountNumber + + false + + + + + AdditionalServiceState + + false + + + + + CIF + + false + + + + + CancellationDate + + false + + + + + ChannelId + + false + + + + + CreationDate + + false + + + + + Currency + + false + + + + + EmployeeRoleId + + false + + + + + PackageId + + false + + + + + Period + + false + + + + + Price + + false + + + + + ProdInstKey + + false + + + + + ProductCode + + false + + + + + ProductType + + false + + + + + SSO + + false + + + + + + + DebitCardExist + + false + + + + + ProdInstKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5F0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5F0_001_Dapi.xml new file mode 100644 index 0000000..2ff45fc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5F0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF5F0 + 001 + DEVL + + + HUB + MWF5F0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5F1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5F1_001.xml new file mode 100644 index 0000000..6e82ce4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5F1_001.xml @@ -0,0 +1,111 @@ + + + + + HUB + MWF5F1 + 001 + active + hub API:MWF5F1 + + + + + ChannelId + + false + + + + + ClientType + + false + + + + + Ico + + false + + + + + + + BusinessName + + false + + + + + ComercialProducParamsData + + + + RS_SERVICEFEEAMOUNT + + false + + + + + RS_SERVICEFEETYPE + + false + + + + + RS_RATEINDEX + + false + + + + + RS_INTRATEPROC + + false + + + + + RS_INTRATEREAL + + false + + + + + RS_DEVIATION + + false + + + + + RS_SALESPRODUCTTYPE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5F1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5F1_001_Dapi.xml new file mode 100644 index 0000000..b83ef6f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5F1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF5F1 + 001 + DEVL + + + HUB + MWF5F1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5F2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5F2_001.xml new file mode 100644 index 0000000..fe9f5ae --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5F2_001.xml @@ -0,0 +1,80 @@ + + + + + HUB + MWF5F2 + 001 + active + hub API:MWF5F2 + + + + + Business + + false + + + + + IdPromoter + + false + + + + + + + Active + + false + + + + + Business + + false + + + + + Email + + false + + + + + ExistInOds + + false + + + + + MobilePhoneNumber + + false + + + + + Name + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5F2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5F2_001_Dapi.xml new file mode 100644 index 0000000..7ad6f4d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5F2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF5F2 + 001 + DEVL + + + HUB + MWF5F2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5F4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5F4_001.xml new file mode 100644 index 0000000..b7e1d2d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5F4_001.xml @@ -0,0 +1,80 @@ + + + + + HUB + MWF5F4 + 001 + active + hub API:MWF5F4 + + + + + AppKey + + false + + + + + DigitalSignatureIdentity + + false + + + + + GeneratedDocumentID + + false + + + + + InstPtKey + + false + + + + + ProdPkgkey + + false + + + + + ProductClass + + false + + + + + SignatureID + + false + + + + + + + GeneratedDocumentID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5F4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5F4_001_Dapi.xml new file mode 100644 index 0000000..52e6196 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5F4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF5F4 + 001 + DEVL + + + HUB + MWF5F4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5G6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5G6_001.xml new file mode 100644 index 0000000..1a5e9b5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5G6_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWF5G6 + 001 + active + hub API:MWF5G6 + + + + + APP_KEY + + false + + + + + PPIType + + false + + + + + UserRole + + false + + + + + User_SSO + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5G6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5G6_001_Dapi.xml new file mode 100644 index 0000000..b964e91 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5G6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF5G6 + 001 + DEVL + + + HUB + MWF5G6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5H0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5H0_001.xml new file mode 100644 index 0000000..7d5c3cc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5H0_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF5H0 + 001 + active + hub API:MWF5H0 + + + + + APP_KEY + + false + + + + + LOAN_AMOUNT + + false + + + + + TERM + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5H0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5H0_001_Dapi.xml new file mode 100644 index 0000000..c0b0596 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5H0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF5H0 + 001 + DEVL + + + HUB + MWF5H0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5H8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5H8_001.xml new file mode 100644 index 0000000..66da472 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5H8_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWF5H8 + 001 + active + hub API:MWF5H8 + + + + + AppKey + + false + + + + + + + CIF + + false + + + + + HasAcc + + false + + + + + HasIB + + false + + + + + IsETBClient + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF5H8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF5H8_001_Dapi.xml new file mode 100644 index 0000000..5e4b46c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF5H8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF5H8 + 001 + DEVL + + + HUB + MWF5H8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF60D_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF60D_001.xml new file mode 100644 index 0000000..792ed7e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF60D_001.xml @@ -0,0 +1,412 @@ + + + + + HUB + MWF60D + 001 + active + hub API:MWF60D + + + + + BusinessRequestor + + false + + + + + BusinessTarget + + false + + + + + ICO + + false + + + + + IDCustomer + + false + + + + + IDInstanceKlienta + + false + + + + + IDUnifikovanehoKlienta + + false + + + + + IDZdrojovehoSystemu + + false + + + + + Priznak_BankovniTajemstvi + + false + + + + + RC + + false + + + + + TridaProduktu + + false + + + + + TypOsoby + + false + + + + + UcelDotazu + + false + + + + + ZjistiAktivniSmlouvu + + false + + + + + + + AktivniSmlouva + + false + + + + + Data + + + + RS_UNI_PT_KEY_OUT + + false + + + + + RS_CONTR_INST_PT_KEY + + false + + + + + RS_CONTR_PT_TP + + false + + + + + RS_OWNER_INST_PT_KEY + + false + + + + + RS_OWNER_PT_ROLE_TP + + false + + + + + RS_CONTR_PT_ROLE_TP + + false + + + + + RS_PROD_INST_KEY + + false + + + + + RS_ACC_KEY + + false + + + + + RS_ACC_NUM + + false + + + + + RS_ACC_SRC_SYS_ID + + false + + + + + RS_PROD_INST_SRC_SYS_ID + + false + + + + + RS_PROD_INST_CONTR_NUM + + false + + + + + RS_BUSS_PROD_CLASS_ID_OUT + + false + + + + + RS_BUS_PROD_TP_ID + + false + + + + + RS_SALES_PROD_TP_ID + + false + + + + + RS_APPL_PT_INSTL_SHARE + + false + + + + + RS_ACC_BUS_STAT_ID + + false + + + + + RS_ACC_OPEN_DATE + + false + + + + + RS_ACC_CLOSE_DATE + + false + + + + + RS_ACC_PRINC_BAL + + false + + + + + RS_ACC_CCY + + false + + + + + RS_RPMT_INSTL_AMT + + false + + + + + RS_RPMT_INSTL_CNT + + false + + + + + RS_RPMT_PER_CODE + + false + + + + + RS_RPMT_ANUI_INSTL_FLAG + + false + + + + + RS_RPMT_FIRST_INSTL_DATE + + false + + + + + RS_APPL_PT_EXP_SHARE + + false + + + + + RS_ACC_OVDU_BAL + + false + + + + + RS_ACC_TOT_DELQ_DAYS + + false + + + + + RS_ACC_PD + + false + + + + + RS_ACC_LGD + + false + + + + + RS_ACC_CCF + + false + + + + + RS_PROD_INST_MNTHLY_FEE_AMT + + false + + + + + RS_PROD_INST_BOND_END_DATE + + false + + + + + RS_PROD_INST_FIN_MAT_DATE + + false + + + + + RS_PROD_INST_LMT_AMT + + false + + + + + RS_APPL_APPLICANT_CNT + + false + + + + + RS_APPL_DIST_CNL + + false + + + + + RS_ACC_STAT_ID + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF60D_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF60D_001_Dapi.xml new file mode 100644 index 0000000..addcef0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF60D_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF60D + 001 + DEVL + + + HUB + MWF60D + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF638_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF638_001.xml new file mode 100644 index 0000000..8d6f9c2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF638_001.xml @@ -0,0 +1,80 @@ + + + + + HUB + MWF638 + 001 + active + hub API:MWF638 + + + + + APPL_ID + + false + + + + + Channel_ID + + false + + + + + Zadost_KEY + + false + + + + + + + WFPrechodStavu + + false + + + + + ZadostStav + + false + + + + + ZadostStavUFO + + false + + + + + ZadostStav_ADCtext + + false + + + + + ZadostStav_kod + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF638_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF638_001_Dapi.xml new file mode 100644 index 0000000..b02ef48 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF638_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF638 + 001 + DEVL + + + HUB + MWF638 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF639_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF639_001.xml new file mode 100644 index 0000000..cf24c10 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF639_001.xml @@ -0,0 +1,94 @@ + + + + + HUB + MWF639 + 001 + active + hub API:MWF639 + + + + + BUCisloUctu + + false + + + + + BUMena + + false + + + + + BU_KEY + + false + + + + + UUCislo + + false + + + + + UUMena + + false + + + + + UUObjektUveru + + false + + + + + UU_KEY + + false + + + + + Zadost_KEY + + false + + + + + + + BU_KEY + + false + + + + + UU_KEY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF639_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF639_001_Dapi.xml new file mode 100644 index 0000000..ddacbf9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF639_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF639 + 001 + DEVL + + + HUB + MWF639 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF640_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF640_001.xml new file mode 100644 index 0000000..8e21044 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF640_001.xml @@ -0,0 +1,6345 @@ + + + + + HUB + MWF640 + 001 + active + hub API:MWF640 + + + + + TypFormulare + + false + + + + + Zadost_KEY + + false + + + + + + + A0001_FERROR_CODE + + false + + + + + A0001_NOK + + false + + + + + A0001_OK + + false + + + + + A0002_FERROR_CODE + + false + + + + + A0002_NOK + + false + + + + + A0002_OK + + false + + + + + A0003_FERROR_CODE + + false + + + + + A0003_NOK + + false + + + + + A0003_OK + + false + + + + + A0004_FERROR_CODE + + false + + + + + A0004_NOK + + false + + + + + A0004_OK + + false + + + + + A0005_FERROR_CODE + + false + + + + + A0005_NOK + + false + + + + + A0005_OK + + false + + + + + A0006_FERROR_CODE + + false + + + + + A0006_NOK + + false + + + + + A0006_OK + + false + + + + + A0007_FERROR_CODE + + false + + + + + A0007_NOK + + false + + + + + A0007_OK + + false + + + + + A0008_FERROR_CODE + + false + + + + + A0008_NOK + + false + + + + + A0008_OK + + false + + + + + A0009_FERROR_CODE + + false + + + + + A0009_NOK + + false + + + + + A0009_OK + + false + + + + + A0010_FERROR_CODE + + false + + + + + A0010_NOK + + false + + + + + A0010_OK + + false + + + + + A0011_FERROR_CODE + + false + + + + + A0011_NOK + + false + + + + + A0011_OK + + false + + + + + A0012_FERROR_CODE + + false + + + + + A0012_NOK + + false + + + + + A0012_OK + + false + + + + + A0013_FERROR_CODE + + false + + + + + A0013_NOK + + false + + + + + A0013_OK + + false + + + + + A0014_FERROR_CODE + + false + + + + + A0014_NOK + + false + + + + + A0014_OK + + false + + + + + A0015_FERROR_CODE + + false + + + + + A0015_NOK + + false + + + + + A0015_OK + + false + + + + + A0016_FERROR_CODE + + false + + + + + A0016_NOK + + false + + + + + A0016_OK + + false + + + + + A0017_FERROR_CODE + + false + + + + + A0017_NOK + + false + + + + + A0017_OK + + false + + + + + A0018_FERROR_CODE + + false + + + + + A0018_NOK + + false + + + + + A0018_OK + + false + + + + + A0019_FERROR_CODE + + false + + + + + A0019_NOK + + false + + + + + A0019_OK + + false + + + + + A0020_FERROR_CODE + + false + + + + + A0020_NOK + + false + + + + + A0020_OK + + false + + + + + A0021_FERROR_CODE + + false + + + + + A0021_NOK + + false + + + + + A0021_OK + + false + + + + + A0022_FERROR_CODE + + false + + + + + A0022_NOK + + false + + + + + A0022_OK + + false + + + + + A0023_FERROR_CODE + + false + + + + + A0023_NOK + + false + + + + + A0023_OK + + false + + + + + A0024_FERROR_CODE + + false + + + + + A0024_NOK + + false + + + + + A0024_OK + + false + + + + + A0025_FERROR_CODE + + false + + + + + A0025_NOK + + false + + + + + A0025_OK + + false + + + + + A0026_FERROR_CODE + + false + + + + + A0026_NOK + + false + + + + + A0026_OK + + false + + + + + A0027_FERROR_CODE + + false + + + + + A0027_NOK + + false + + + + + A0027_OK + + false + + + + + A0028_FERROR_CODE + + false + + + + + A0028_NOK + + false + + + + + A0028_OK + + false + + + + + A0029_FERROR_CODE + + false + + + + + A0029_NOK + + false + + + + + A0029_OK + + false + + + + + A0030_FERROR_CODE + + false + + + + + A0030_NOK + + false + + + + + A0030_OK + + false + + + + + A0031_FERROR_CODE + + false + + + + + A0031_NOK + + false + + + + + A0031_OK + + false + + + + + A0032_FERROR_CODE + + false + + + + + A0032_NOK + + false + + + + + A0032_OK + + false + + + + + A0033_FERROR_CODE + + false + + + + + A0033_NOK + + false + + + + + A0033_OK + + false + + + + + A0034_FERROR_CODE + + false + + + + + A0034_NOK + + false + + + + + A0034_OK + + false + + + + + A0035_FERROR_CODE + + false + + + + + A0035_NOK + + false + + + + + A0035_OK + + false + + + + + A0036_FERROR_CODE + + false + + + + + A0036_NOK + + false + + + + + A0036_OK + + false + + + + + A0037_FERROR_CODE + + false + + + + + A0037_NOK + + false + + + + + A0037_OK + + false + + + + + A0038_FERROR_CODE + + false + + + + + A0038_NOK + + false + + + + + A0038_OK + + false + + + + + A0039_FERROR_CODE + + false + + + + + A0039_NOK + + false + + + + + A0039_OK + + false + + + + + A0040_FERROR_CODE + + false + + + + + A0040_NOK + + false + + + + + A0040_OK + + false + + + + + A0041_FERROR_CODE + + false + + + + + A0041_NOK + + false + + + + + A0041_OK + + false + + + + + A0042_FERROR_CODE + + false + + + + + A0042_NOK + + false + + + + + A0042_OK + + false + + + + + A0043_FERROR_CODE + + false + + + + + A0043_NOK + + false + + + + + A0043_OK + + false + + + + + A0044_FERROR_CODE + + false + + + + + A0044_NOK + + false + + + + + A0044_OK + + false + + + + + A0045_FERROR_CODE + + false + + + + + A0045_NOK + + false + + + + + A0045_OK + + false + + + + + A0046_FERROR_CODE + + false + + + + + A0046_NOK + + false + + + + + A0046_OK + + false + + + + + A0047_FERROR_CODE + + false + + + + + A0047_NOK + + false + + + + + A0047_OK + + false + + + + + A0048_FERROR_CODE + + false + + + + + A0048_NOK + + false + + + + + A0048_OK + + false + + + + + A0049_FERROR_CODE + + false + + + + + A0049_NOK + + false + + + + + A0049_OK + + false + + + + + A0050_FERROR_CODE + + false + + + + + A0050_NOK + + false + + + + + A0050_OK + + false + + + + + A0051_FERROR_CODE + + false + + + + + A0051_NOK + + false + + + + + A0051_OK + + false + + + + + A0052_FERROR_CODE + + false + + + + + A0052_NOK + + false + + + + + A0052_OK + + false + + + + + A0053_FERROR_CODE + + false + + + + + A0053_NOK + + false + + + + + A0053_OK + + false + + + + + A0054_FERROR_CODE + + false + + + + + A0054_NOK + + false + + + + + A0054_OK + + false + + + + + A0055_FERROR_CODE + + false + + + + + A0055_NOK + + false + + + + + A0055_OK + + false + + + + + A0056_FERROR_CODE + + false + + + + + A0056_NOK + + false + + + + + A0056_OK + + false + + + + + A0057_FERROR_CODE + + false + + + + + A0057_NOK + + false + + + + + A0057_OK + + false + + + + + A0058_FERROR_CODE + + false + + + + + A0058_NOK + + false + + + + + A0058_OK + + false + + + + + A0059_FERROR_CODE + + false + + + + + A0059_NOK + + false + + + + + A0059_OK + + false + + + + + A0060_FERROR_CODE + + false + + + + + A0060_NOK + + false + + + + + A0060_OK + + false + + + + + A0061_FERROR_CODE + + false + + + + + A0061_NOK + + false + + + + + A0061_OK + + false + + + + + A0062_FERROR_CODE + + false + + + + + A0062_NOK + + false + + + + + A0062_OK + + false + + + + + A0063_FERROR_CODE + + false + + + + + A0063_NOK + + false + + + + + A0063_OK + + false + + + + + A0064_FERROR_CODE + + false + + + + + A0064_NOK + + false + + + + + A0064_OK + + false + + + + + A0065_FERROR_CODE + + false + + + + + A0065_NOK + + false + + + + + A0065_OK + + false + + + + + A0066_FERROR_CODE + + false + + + + + A0066_NOK + + false + + + + + A0066_OK + + false + + + + + A0067_FERROR_CODE + + false + + + + + A0067_NOK + + false + + + + + A0067_OK + + false + + + + + A0068_FERROR_CODE + + false + + + + + A0068_NOK + + false + + + + + A0068_OK + + false + + + + + A0069_FERROR_CODE + + false + + + + + A0069_NOK + + false + + + + + A0069_OK + + false + + + + + A0070_FERROR_CODE + + false + + + + + A0070_NOK + + false + + + + + A0070_OK + + false + + + + + A0071_FERROR_CODE + + false + + + + + A0071_NOK + + false + + + + + A0071_OK + + false + + + + + A0072_FERROR_CODE + + false + + + + + A0072_NOK + + false + + + + + A0072_OK + + false + + + + + A0073_FERROR_CODE + + false + + + + + A0073_NOK + + false + + + + + A0073_OK + + false + + + + + A0074_FERROR_CODE + + false + + + + + A0074_NOK + + false + + + + + A0074_OK + + false + + + + + A0075_FERROR_CODE + + false + + + + + A0075_NOK + + false + + + + + A0075_OK + + false + + + + + A0076_FERROR_CODE + + false + + + + + A0076_NOK + + false + + + + + A0076_OK + + false + + + + + A0077_FERROR_CODE + + false + + + + + A0077_NOK + + false + + + + + A0077_OK + + false + + + + + A0078_FERROR_CODE + + false + + + + + A0078_NOK + + false + + + + + A0078_OK + + false + + + + + A0079_FERROR_CODE + + false + + + + + A0079_NOK + + false + + + + + A0079_OK + + false + + + + + A0080_FERROR_CODE + + false + + + + + A0080_NOK + + false + + + + + A0080_OK + + false + + + + + A0081_FERROR_CODE + + false + + + + + A0081_NOK + + false + + + + + A0081_OK + + false + + + + + A0082_FERROR_CODE + + false + + + + + A0082_NOK + + false + + + + + A0082_OK + + false + + + + + A0083_FERROR_CODE + + false + + + + + A0083_NOK + + false + + + + + A0083_OK + + false + + + + + A0084_FERROR_CODE + + false + + + + + A0084_NOK + + false + + + + + A0084_OK + + false + + + + + A0085_FERROR_CODE + + false + + + + + A0085_NOK + + false + + + + + A0085_OK + + false + + + + + A0086_FERROR_CODE + + false + + + + + A0086_NOK + + false + + + + + A0086_OK + + false + + + + + A0087_FERROR_CODE + + false + + + + + A0087_NOK + + false + + + + + A0087_OK + + false + + + + + A0088_FERROR_CODE + + false + + + + + A0088_NOK + + false + + + + + A0088_OK + + false + + + + + A0089_FERROR_CODE + + false + + + + + A0089_NOK + + false + + + + + A0089_OK + + false + + + + + A0090_FERROR_CODE + + false + + + + + A0090_NOK + + false + + + + + A0090_OK + + false + + + + + A0091_FERROR_CODE + + false + + + + + A0091_NOK + + false + + + + + A0091_OK + + false + + + + + A0092_FERROR_CODE + + false + + + + + A0092_NOK + + false + + + + + A0092_OK + + false + + + + + A0093_FERROR_CODE + + false + + + + + A0093_NOK + + false + + + + + A0093_OK + + false + + + + + A0094_FERROR_CODE + + false + + + + + A0094_NOK + + false + + + + + A0094_OK + + false + + + + + A0095_FERROR_CODE + + false + + + + + A0095_NOK + + false + + + + + A0095_OK + + false + + + + + A0096_FERROR_CODE + + false + + + + + A0096_NOK + + false + + + + + A0096_OK + + false + + + + + A0097_FERROR_CODE + + false + + + + + A0097_NOK + + false + + + + + A0097_OK + + false + + + + + A0098_FERROR_CODE + + false + + + + + A0098_NOK + + false + + + + + A0098_OK + + false + + + + + A0099_FERROR_CODE + + false + + + + + A0099_NOK + + false + + + + + A0099_OK + + false + + + + + A0100_FERROR_CODE + + false + + + + + A0100_NOK + + false + + + + + A0100_OK + + false + + + + + A0101_FERROR_CODE + + false + + + + + A0101_NOK + + false + + + + + A0101_OK + + false + + + + + A0102_FERROR_CODE + + false + + + + + A0102_NOK + + false + + + + + A0102_OK + + false + + + + + A0103_FERROR_CODE + + false + + + + + A0103_NOK + + false + + + + + A0103_OK + + false + + + + + A0104_FERROR_CODE + + false + + + + + A0104_NOK + + false + + + + + A0104_OK + + false + + + + + A0105_FERROR_CODE + + false + + + + + A0105_NOK + + false + + + + + A0105_OK + + false + + + + + A0106_FERROR_CODE + + false + + + + + A0106_NOK + + false + + + + + A0106_OK + + false + + + + + A0107_FERROR_CODE + + false + + + + + A0107_NOK + + false + + + + + A0107_OK + + false + + + + + A0108_FERROR_CODE + + false + + + + + A0108_NOK + + false + + + + + A0108_OK + + false + + + + + A0109_FERROR_CODE + + false + + + + + A0109_NOK + + false + + + + + A0109_OK + + false + + + + + A0110_FERROR_CODE + + false + + + + + A0110_NOK + + false + + + + + A0110_OK + + false + + + + + A0111_FERROR_CODE + + false + + + + + A0111_NOK + + false + + + + + A0111_OK + + false + + + + + A0112_FERROR_CODE + + false + + + + + A0112_NOK + + false + + + + + A0112_OK + + false + + + + + A0113_FERROR_CODE + + false + + + + + A0113_NOK + + false + + + + + A0113_OK + + false + + + + + A0114_FERROR_CODE + + false + + + + + A0114_NOK + + false + + + + + A0114_OK + + false + + + + + A0115_FERROR_CODE + + false + + + + + A0115_NOK + + false + + + + + A0115_OK + + false + + + + + A0116_FERROR_CODE + + false + + + + + A0116_NOK + + false + + + + + A0116_OK + + false + + + + + A0117_FERROR_CODE + + false + + + + + A0117_NOK + + false + + + + + A0117_OK + + false + + + + + A0118_FERROR_CODE + + false + + + + + A0118_NOK + + false + + + + + A0118_OK + + false + + + + + A0119_FERROR_CODE + + false + + + + + A0119_NOK + + false + + + + + A0119_OK + + false + + + + + A0120_FERROR_CODE + + false + + + + + A0120_NOK + + false + + + + + A0120_OK + + false + + + + + A0121_FERROR_CODE + + false + + + + + A0121_NOK + + false + + + + + A0121_OK + + false + + + + + A0122_FERROR_CODE + + false + + + + + A0122_NOK + + false + + + + + A0122_OK + + false + + + + + A0123_FERROR_CODE + + false + + + + + A0123_NOK + + false + + + + + A0123_OK + + false + + + + + A0124_FERROR_CODE + + false + + + + + A0124_NOK + + false + + + + + A0124_OK + + false + + + + + A0125_FERROR_CODE + + false + + + + + A0125_NOK + + false + + + + + A0125_OK + + false + + + + + A0126_FERROR_CODE + + false + + + + + A0126_NOK + + false + + + + + A0126_OK + + false + + + + + A0127_FERROR_CODE + + false + + + + + A0127_NOK + + false + + + + + A0127_OK + + false + + + + + A0128_FERROR_CODE + + false + + + + + A0128_NOK + + false + + + + + A0128_OK + + false + + + + + A0129_FERROR_CODE + + false + + + + + A0129_NOK + + false + + + + + A0129_OK + + false + + + + + A0130_FERROR_CODE + + false + + + + + A0130_NOK + + false + + + + + A0130_OK + + false + + + + + A0131_FERROR_CODE + + false + + + + + A0131_NOK + + false + + + + + A0131_OK + + false + + + + + A0132_FERROR_CODE + + false + + + + + A0132_NOK + + false + + + + + A0132_OK + + false + + + + + A0133_FERROR_CODE + + false + + + + + A0133_NOK + + false + + + + + A0133_OK + + false + + + + + A0134_FERROR_CODE + + false + + + + + A0134_NOK + + false + + + + + A0134_OK + + false + + + + + A0135_FERROR_CODE + + false + + + + + A0135_NOK + + false + + + + + A0135_OK + + false + + + + + A0136_FERROR_CODE + + false + + + + + A0136_NOK + + false + + + + + A0136_OK + + false + + + + + A0137_FERROR_CODE + + false + + + + + A0137_NOK + + false + + + + + A0137_OK + + false + + + + + A0138_FERROR_CODE + + false + + + + + A0138_NOK + + false + + + + + A0138_OK + + false + + + + + A0139_FERROR_CODE + + false + + + + + A0139_NOK + + false + + + + + A0139_OK + + false + + + + + A0140_FERROR_CODE + + false + + + + + A0140_NOK + + false + + + + + A0140_OK + + false + + + + + A0141_FERROR_CODE + + false + + + + + A0141_NOK + + false + + + + + A0141_OK + + false + + + + + A0142_FERROR_CODE + + false + + + + + A0142_NOK + + false + + + + + A0142_OK + + false + + + + + A0143_FERROR_CODE + + false + + + + + A0143_NOK + + false + + + + + A0143_OK + + false + + + + + A0144_FERROR_CODE + + false + + + + + A0144_NOK + + false + + + + + A0144_OK + + false + + + + + A0145_FERROR_CODE + + false + + + + + A0145_NOK + + false + + + + + A0145_OK + + false + + + + + A0146_FERROR_CODE + + false + + + + + A0146_NOK + + false + + + + + A0146_OK + + false + + + + + A0147_FERROR_CODE + + false + + + + + A0147_NOK + + false + + + + + A0147_OK + + false + + + + + A0148_FERROR_CODE + + false + + + + + A0148_NOK + + false + + + + + A0148_OK + + false + + + + + A0149_FERROR_CODE + + false + + + + + A0149_NOK + + false + + + + + A0149_OK + + false + + + + + A0150_FERROR_CODE + + false + + + + + A0150_NOK + + false + + + + + A0150_OK + + false + + + + + A0151_FERROR_CODE + + false + + + + + A0151_NOK + + false + + + + + A0151_OK + + false + + + + + A0152_FERROR_CODE + + false + + + + + A0152_NOK + + false + + + + + A0152_OK + + false + + + + + A0153_FERROR_CODE + + false + + + + + A0153_NOK + + false + + + + + A0153_OK + + false + + + + + A0154_FERROR_CODE + + false + + + + + A0154_NOK + + false + + + + + A0154_OK + + false + + + + + A0155_FERROR_CODE + + false + + + + + A0155_NOK + + false + + + + + A0155_OK + + false + + + + + A0156_FERROR_CODE + + false + + + + + A0156_NOK + + false + + + + + A0156_OK + + false + + + + + A0157_FERROR_CODE + + false + + + + + A0157_NOK + + false + + + + + A0157_OK + + false + + + + + A0158_FERROR_CODE + + false + + + + + A0158_NOK + + false + + + + + A0158_OK + + false + + + + + A0159_FERROR_CODE + + false + + + + + A0159_NOK + + false + + + + + A0159_OK + + false + + + + + A0160_FERROR_CODE + + false + + + + + A0160_NOK + + false + + + + + A0160_OK + + false + + + + + A0161_FERROR_CODE + + false + + + + + A0161_NOK + + false + + + + + A0161_OK + + false + + + + + A0162_FERROR_CODE + + false + + + + + A0162_NOK + + false + + + + + A0162_OK + + false + + + + + A0163_FERROR_CODE + + false + + + + + A0163_NOK + + false + + + + + A0163_OK + + false + + + + + A0164_FERROR_CODE + + false + + + + + A0164_NOK + + false + + + + + A0164_OK + + false + + + + + A0165_FERROR_CODE + + false + + + + + A0165_NOK + + false + + + + + A0165_OK + + false + + + + + A0166_FERROR_CODE + + false + + + + + A0166_NOK + + false + + + + + A0166_OK + + false + + + + + A0167_FERROR_CODE + + false + + + + + A0167_NOK + + false + + + + + A0167_OK + + false + + + + + A0168_FERROR_CODE + + false + + + + + A0168_NOK + + false + + + + + A0168_OK + + false + + + + + A0169_FERROR_CODE + + false + + + + + A0169_NOK + + false + + + + + A0169_OK + + false + + + + + A0170_FERROR_CODE + + false + + + + + A0170_NOK + + false + + + + + A0170_OK + + false + + + + + A0171_FERROR_CODE + + false + + + + + A0171_NOK + + false + + + + + A0171_OK + + false + + + + + A0172_FERROR_CODE + + false + + + + + A0172_NOK + + false + + + + + A0172_OK + + false + + + + + A0173_FERROR_CODE + + false + + + + + A0173_NOK + + false + + + + + A0173_OK + + false + + + + + A0174_FERROR_CODE + + false + + + + + A0174_NOK + + false + + + + + A0174_OK + + false + + + + + A0175_FERROR_CODE + + false + + + + + A0175_NOK + + false + + + + + A0175_OK + + false + + + + + A0176_FERROR_CODE + + false + + + + + A0176_NOK + + false + + + + + A0176_OK + + false + + + + + A0177_FERROR_CODE + + false + + + + + A0177_NOK + + false + + + + + A0177_OK + + false + + + + + A0178_FERROR_CODE + + false + + + + + A0178_NOK + + false + + + + + A0178_OK + + false + + + + + A0179_FERROR_CODE + + false + + + + + A0179_NOK + + false + + + + + A0179_OK + + false + + + + + A0180_FERROR_CODE + + false + + + + + A0180_NOK + + false + + + + + A0180_OK + + false + + + + + A0181_FERROR_CODE + + false + + + + + A0181_NOK + + false + + + + + A0181_OK + + false + + + + + A0182_FERROR_CODE + + false + + + + + A0182_NOK + + false + + + + + A0182_OK + + false + + + + + A0183_FERROR_CODE + + false + + + + + A0183_NOK + + false + + + + + A0183_OK + + false + + + + + A0184_FERROR_CODE + + false + + + + + A0184_NOK + + false + + + + + A0184_OK + + false + + + + + A0185_FERROR_CODE + + false + + + + + A0185_NOK + + false + + + + + A0185_OK + + false + + + + + A0186_FERROR_CODE + + false + + + + + A0186_NOK + + false + + + + + A0186_OK + + false + + + + + A0187_FERROR_CODE + + false + + + + + A0187_NOK + + false + + + + + A0187_OK + + false + + + + + A0188_FERROR_CODE + + false + + + + + A0188_NOK + + false + + + + + A0188_OK + + false + + + + + A0189_FERROR_CODE + + false + + + + + A0189_NOK + + false + + + + + A0189_OK + + false + + + + + A0190_FERROR_CODE + + false + + + + + A0190_NOK + + false + + + + + A0190_OK + + false + + + + + A0191_FERROR_CODE + + false + + + + + A0191_NOK + + false + + + + + A0191_OK + + false + + + + + A0192_FERROR_CODE + + false + + + + + A0192_NOK + + false + + + + + A0192_OK + + false + + + + + A0193_FERROR_CODE + + false + + + + + A0193_NOK + + false + + + + + A0193_OK + + false + + + + + A0194_FERROR_CODE + + false + + + + + A0194_NOK + + false + + + + + A0194_OK + + false + + + + + A0195_FERROR_CODE + + false + + + + + A0195_NOK + + false + + + + + A0195_OK + + false + + + + + A0196_FERROR_CODE + + false + + + + + A0196_NOK + + false + + + + + A0196_OK + + false + + + + + A0197_FERROR_CODE + + false + + + + + A0197_NOK + + false + + + + + A0197_OK + + false + + + + + A0198_FERROR_CODE + + false + + + + + A0198_NOK + + false + + + + + A0198_OK + + false + + + + + A0199_FERROR_CODE + + false + + + + + A0199_NOK + + false + + + + + A0199_OK + + false + + + + + A0200_FERROR_CODE + + false + + + + + A0200_NOK + + false + + + + + A0200_OK + + false + + + + + A0201_FERROR_CODE + + false + + + + + A0201_NOK + + false + + + + + A0201_OK + + false + + + + + A0202_FERROR_CODE + + false + + + + + A0202_NOK + + false + + + + + A0202_OK + + false + + + + + A0203_FERROR_CODE + + false + + + + + A0203_NOK + + false + + + + + A0203_OK + + false + + + + + A0204_FERROR_CODE + + false + + + + + A0204_NOK + + false + + + + + A0204_OK + + false + + + + + A0205_FERROR_CODE + + false + + + + + A0205_NOK + + false + + + + + A0205_OK + + false + + + + + A0206_FERROR_CODE + + false + + + + + A0206_NOK + + false + + + + + A0206_OK + + false + + + + + A0207_FERROR_CODE + + false + + + + + A0207_NOK + + false + + + + + A0207_OK + + false + + + + + A0208_FERROR_CODE + + false + + + + + A0208_NOK + + false + + + + + A0208_OK + + false + + + + + A0209_FERROR_CODE + + false + + + + + A0209_NOK + + false + + + + + A0209_OK + + false + + + + + A0210_FERROR_CODE + + false + + + + + A0210_NOK + + false + + + + + A0210_OK + + false + + + + + A0211_FERROR_CODE + + false + + + + + A0211_NOK + + false + + + + + A0211_OK + + false + + + + + A0212_FERROR_CODE + + false + + + + + A0212_NOK + + false + + + + + A0212_OK + + false + + + + + A0213_FERROR_CODE + + false + + + + + A0213_NOK + + false + + + + + A0213_OK + + false + + + + + A0214_FERROR_CODE + + false + + + + + A0214_NOK + + false + + + + + A0214_OK + + false + + + + + A0215_FERROR_CODE + + false + + + + + A0215_NOK + + false + + + + + A0215_OK + + false + + + + + A0216_FERROR_CODE + + false + + + + + A0216_NOK + + false + + + + + A0216_OK + + false + + + + + A0217_FERROR_CODE + + false + + + + + A0217_NOK + + false + + + + + A0217_OK + + false + + + + + A0218_FERROR_CODE + + false + + + + + A0218_NOK + + false + + + + + A0218_OK + + false + + + + + A0219_FERROR_CODE + + false + + + + + A0219_NOK + + false + + + + + A0219_OK + + false + + + + + A0220_FERROR_CODE + + false + + + + + A0220_NOK + + false + + + + + A0220_OK + + false + + + + + A0221_FERROR_CODE + + false + + + + + A0221_NOK + + false + + + + + A0221_OK + + false + + + + + A0222_FERROR_CODE + + false + + + + + A0222_NOK + + false + + + + + A0222_OK + + false + + + + + A0223_FERROR_CODE + + false + + + + + A0223_NOK + + false + + + + + A0223_OK + + false + + + + + A0224_FERROR_CODE + + false + + + + + A0224_NOK + + false + + + + + A0224_OK + + false + + + + + A0225_FERROR_CODE + + false + + + + + A0225_NOK + + false + + + + + A0225_OK + + false + + + + + A0226_FERROR_CODE + + false + + + + + A0226_NOK + + false + + + + + A0226_OK + + false + + + + + A0227_FERROR_CODE + + false + + + + + A0227_NOK + + false + + + + + A0227_OK + + false + + + + + A0228_FERROR_CODE + + false + + + + + A0228_NOK + + false + + + + + A0228_OK + + false + + + + + A0229_FERROR_CODE + + false + + + + + A0229_NOK + + false + + + + + A0229_OK + + false + + + + + A0230_FERROR_CODE + + false + + + + + A0230_NOK + + false + + + + + A0230_OK + + false + + + + + A0231_FERROR_CODE + + false + + + + + A0231_NOK + + false + + + + + A0231_OK + + false + + + + + A0232_FERROR_CODE + + false + + + + + A0232_NOK + + false + + + + + A0232_OK + + false + + + + + A0233_FERROR_CODE + + false + + + + + A0233_NOK + + false + + + + + A0233_OK + + false + + + + + A0234_FERROR_CODE + + false + + + + + A0234_NOK + + false + + + + + A0234_OK + + false + + + + + A0235_FERROR_CODE + + false + + + + + A0235_NOK + + false + + + + + A0235_OK + + false + + + + + A0236_FERROR_CODE + + false + + + + + A0236_NOK + + false + + + + + A0236_OK + + false + + + + + A0237_FERROR_CODE + + false + + + + + A0237_NOK + + false + + + + + A0237_OK + + false + + + + + A0238_FERROR_CODE + + false + + + + + A0238_NOK + + false + + + + + A0238_OK + + false + + + + + A0239_FERROR_CODE + + false + + + + + A0239_NOK + + false + + + + + A0239_OK + + false + + + + + A0240_FERROR_CODE + + false + + + + + A0240_NOK + + false + + + + + A0240_OK + + false + + + + + A0241_FERROR_CODE + + false + + + + + A0241_NOK + + false + + + + + A0241_OK + + false + + + + + A0242_FERROR_CODE + + false + + + + + A0242_NOK + + false + + + + + A0242_OK + + false + + + + + A0243_FERROR_CODE + + false + + + + + A0243_NOK + + false + + + + + A0243_OK + + false + + + + + A0244_FERROR_CODE + + false + + + + + A0244_NOK + + false + + + + + A0244_OK + + false + + + + + A0245_FERROR_CODE + + false + + + + + A0245_NOK + + false + + + + + A0245_OK + + false + + + + + A0246_FERROR_CODE + + false + + + + + A0246_NOK + + false + + + + + A0246_OK + + false + + + + + A0247_FERROR_CODE + + false + + + + + A0247_NOK + + false + + + + + A0247_OK + + false + + + + + A0248_FERROR_CODE + + false + + + + + A0248_NOK + + false + + + + + A0248_OK + + false + + + + + A0249_FERROR_CODE + + false + + + + + A0249_NOK + + false + + + + + A0249_OK + + false + + + + + A0250_FERROR_CODE + + false + + + + + A0250_NOK + + false + + + + + A0250_OK + + false + + + + + A0251_FERROR_CODE + + false + + + + + A0251_NOK + + false + + + + + A0251_OK + + false + + + + + A0252_FERROR_CODE + + false + + + + + A0252_NOK + + false + + + + + A0252_OK + + false + + + + + A0253_FERROR_CODE + + false + + + + + A0253_NOK + + false + + + + + A0253_OK + + false + + + + + A0254_FERROR_CODE + + false + + + + + A0254_NOK + + false + + + + + A0254_OK + + false + + + + + A0255_FERROR_CODE + + false + + + + + A0255_NOK + + false + + + + + A0255_OK + + false + + + + + A0256_FERROR_CODE + + false + + + + + A0256_NOK + + false + + + + + A0256_OK + + false + + + + + A0257_FERROR_CODE + + false + + + + + A0257_NOK + + false + + + + + A0257_OK + + false + + + + + A0258_FERROR_CODE + + false + + + + + A0258_NOK + + false + + + + + A0258_OK + + false + + + + + A0259_FERROR_CODE + + false + + + + + A0259_NOK + + false + + + + + A0259_OK + + false + + + + + A0260_FERROR_CODE + + false + + + + + A0260_NOK + + false + + + + + A0260_OK + + false + + + + + A0261_FERROR_CODE + + false + + + + + A0261_NOK + + false + + + + + A0261_OK + + false + + + + + A0262_FERROR_CODE + + false + + + + + A0262_NOK + + false + + + + + A0262_OK + + false + + + + + A0263_FERROR_CODE + + false + + + + + A0263_NOK + + false + + + + + A0263_OK + + false + + + + + A0264_FERROR_CODE + + false + + + + + A0264_NOK + + false + + + + + A0264_OK + + false + + + + + A0265_FERROR_CODE + + false + + + + + A0265_NOK + + false + + + + + A0265_OK + + false + + + + + A0266_FERROR_CODE + + false + + + + + A0266_NOK + + false + + + + + A0266_OK + + false + + + + + A0267_FERROR_CODE + + false + + + + + A0267_NOK + + false + + + + + A0267_OK + + false + + + + + A0268_FERROR_CODE + + false + + + + + A0268_NOK + + false + + + + + A0268_OK + + false + + + + + A0269_FERROR_CODE + + false + + + + + A0269_NOK + + false + + + + + A0269_OK + + false + + + + + A0270_FERROR_CODE + + false + + + + + A0270_NOK + + false + + + + + A0270_OK + + false + + + + + A0271_FERROR_CODE + + false + + + + + A0271_NOK + + false + + + + + A0271_OK + + false + + + + + A0272_FERROR_CODE + + false + + + + + A0272_NOK + + false + + + + + A0272_OK + + false + + + + + A0273_FERROR_CODE + + false + + + + + A0273_NOK + + false + + + + + A0273_OK + + false + + + + + A0274_FERROR_CODE + + false + + + + + A0274_NOK + + false + + + + + A0274_OK + + false + + + + + A0275_FERROR_CODE + + false + + + + + A0275_NOK + + false + + + + + A0275_OK + + false + + + + + A0276_FERROR_CODE + + false + + + + + A0276_NOK + + false + + + + + A0276_OK + + false + + + + + A0277_FERROR_CODE + + false + + + + + A0277_NOK + + false + + + + + A0277_OK + + false + + + + + A0278_FERROR_CODE + + false + + + + + A0278_NOK + + false + + + + + A0278_OK + + false + + + + + A0279_FERROR_CODE + + false + + + + + A0279_NOK + + false + + + + + A0279_OK + + false + + + + + A0280_FERROR_CODE + + false + + + + + A0280_NOK + + false + + + + + A0280_OK + + false + + + + + A0281_FERROR_CODE + + false + + + + + A0281_NOK + + false + + + + + A0281_OK + + false + + + + + A0282_FERROR_CODE + + false + + + + + A0282_NOK + + false + + + + + A0282_OK + + false + + + + + A0283_FERROR_CODE + + false + + + + + A0283_NOK + + false + + + + + A0283_OK + + false + + + + + A0284_FERROR_CODE + + false + + + + + A0284_NOK + + false + + + + + A0284_OK + + false + + + + + A0285_FERROR_CODE + + false + + + + + A0285_NOK + + false + + + + + A0285_OK + + false + + + + + A0286_FERROR_CODE + + false + + + + + A0286_NOK + + false + + + + + A0286_OK + + false + + + + + A0287_FERROR_CODE + + false + + + + + A0287_NOK + + false + + + + + A0287_OK + + false + + + + + A0288_FERROR_CODE + + false + + + + + A0288_NOK + + false + + + + + A0288_OK + + false + + + + + A0289_FERROR_CODE + + false + + + + + A0289_NOK + + false + + + + + A0289_OK + + false + + + + + A0290_FERROR_CODE + + false + + + + + A0290_NOK + + false + + + + + A0290_OK + + false + + + + + A0291_FERROR_CODE + + false + + + + + A0291_NOK + + false + + + + + A0291_OK + + false + + + + + A0292_FERROR_CODE + + false + + + + + A0292_NOK + + false + + + + + A0292_OK + + false + + + + + A0293_FERROR_CODE + + false + + + + + A0293_NOK + + false + + + + + A0293_OK + + false + + + + + A0294_FERROR_CODE + + false + + + + + A0294_NOK + + false + + + + + A0294_OK + + false + + + + + A0295_FERROR_CODE + + false + + + + + A0295_NOK + + false + + + + + A0295_OK + + false + + + + + A0296_FERROR_CODE + + false + + + + + A0296_NOK + + false + + + + + A0296_OK + + false + + + + + A0297_FERROR_CODE + + false + + + + + A0297_NOK + + false + + + + + A0297_OK + + false + + + + + A0298_FERROR_CODE + + false + + + + + A0298_NOK + + false + + + + + A0298_OK + + false + + + + + A0299_FERROR_CODE + + false + + + + + A0299_NOK + + false + + + + + A0299_OK + + false + + + + + A0300_FERROR_CODE + + false + + + + + A0300_NOK + + false + + + + + A0300_OK + + false + + + + + FERROR_TEXT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF640_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF640_001_Dapi.xml new file mode 100644 index 0000000..95dee22 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF640_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF640 + 001 + DEVL + + + HUB + MWF640 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF643_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF643_001.xml new file mode 100644 index 0000000..fb086d3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF643_001.xml @@ -0,0 +1,174 @@ + + + + + HUB + MWF643 + 001 + active + hub API:MWF643 + + + + + INST_PT_KEY + + false + + + + + NactiDokladTyp_Flag + + false + + + + + PREV_DOC_INST_KEY_IN + + false + + + + + REQD_DOC_SRC_IN + + false + + + + + WAITING_ONLY_FLAG + + false + + + + + Zadost_KEY + + false + + + + + + + Data + + + + RS_DOKLADPREDKLADANYKATEGORIE + + false + + + + + RS_DOKLADPREDKLADANYUCEL + + false + + + + + RS_DOKLADPREDKLADANYSMAZFLAG + + false + + + + + RS_INST_PT_KEY + + false + + + + + RS_DOKLADPREDKLADANYZDROJ + + false + + + + + RS_DOKLADPREDKLADANY_KEY + + false + + + + + RS_PREV_DOC_INST_KEY + + false + + + + + RS_DOC_KEY + + false + + + + + RS_RC + + false + + + + + RS_PRIJMENI + + false + + + + + RS_JMENO + + false + + + + + RS_DOKLADPREDKLADANYTYP + + false + + + + + RS_MINROLEDOKLAD + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF643_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF643_001_Dapi.xml new file mode 100644 index 0000000..ad97752 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF643_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF643 + 001 + DEVL + + + HUB + MWF643 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF647_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF647_001.xml new file mode 100644 index 0000000..78b45e7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF647_001.xml @@ -0,0 +1,181 @@ + + + + + HUB + MWF647 + 001 + active + hub API:MWF647 + + + + + CLIENT_TYPE + + false + + + + + CONTRACT_ID + + false + + + + + CONTRACT_SYSTEM + + false + + + + + DISTR_CHANNEL_ID + + false + + + + + ICO + + false + + + + + INFOLIMIT_FROM_CACHE + + false + + + + + NAME + + false + + + + + ONLINE_CHECK + + false + + + + + POS_ID + + false + + + + + RC + + false + + + + + SURNAME + + false + + + + + + + Data + + + + RS_PRODUCT_TYPE + + false + + + + + RS_INFOLIMIT + + false + + + + + RS_ACC_ID + + false + + + + + RS_CURRENCY + + false + + + + + RS_CONTRACT_NR + + false + + + + + RS_CASH_LIMIT_PERCENT + + false + + + + + RS_INSTALMENT_PERCENT + + false + + + + + RS_INFOLIMIT_GUARANTED + + false + + + + + RS_REASON_CATEGORY + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF647_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF647_001_Dapi.xml new file mode 100644 index 0000000..9e0fa73 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF647_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF647 + 001 + DEVL + + + HUB + MWF647 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF648_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF648_001.xml new file mode 100644 index 0000000..3cd31ef --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF648_001.xml @@ -0,0 +1,202 @@ + + + + + HUB + MWF648 + 001 + active + hub API:MWF648 + + + + + CHANNEL_ID + + false + + + + + CLIENT_TYPE + + false + + + + + CONTRACT_ID + + false + + + + + CONTRACT_SYSTEM + + false + + + + + ICO + + false + + + + + NAME + + false + + + + + NAS_API_CONF_ID + + false + + + + + NAS_FLOW_ID + + false + + + + + ONLINE_CHECK + + false + + + + + POS_ID + + false + + + + + PURPOSE + + false + + + + + RC + + false + + + + + SURNAME + + false + + + + + + + Data + + + + RS_ID_BUSINESS + + false + + + + + RS_ACTUAL_DEBT_FLAG + + false + + + + + RS_HIST_DEBT_FLAG + + false + + + + + RS_CUST_TYPE + + false + + + + + RS_CUST_SUBTYPE + + false + + + + + RS_DUE_CNTR_BUSINESS_ID + + false + + + + + RS_DUE_CNTR_PROD_TYPE + + false + + + + + RS_DUE_CNTR_ACC_ID + + false + + + + + + false + + + + + HIST_CODE100_FKAG + + false + + + + + KO_FLAG + + false + + + + + OUT_NAS_FLOW_ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF648_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF648_001_Dapi.xml new file mode 100644 index 0000000..7e2edaf --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF648_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF648 + 001 + DEVL + + + HUB + MWF648 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF664_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF664_001.xml new file mode 100644 index 0000000..7215db3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF664_001.xml @@ -0,0 +1,178 @@ + + + + + HUB + MWF664 + 001 + active + hub API:MWF664 + + + + + ACTION_USER_SSO + + false + + + + + APP_SOURCE_ID + + false + + + + + APP_SYSTEM_ID + + false + + + + + AP_CUSTOM_ID + + false + + + + + CHANNEL + + false + + + + + CLIENT_NAME + + false + + + + + DMS_DOCUMENT_ID + + false + + + + + DOC_SOURCE_ID + + false + + + + + DOC_SYSTEM_ID + + false + + + + + FAX_ID + + false + + + + + FAX_IMAGE_LINK + + false + + + + + FAX_INCOME_TIME + + false + + + + + INST_CUST_ID_1 + + false + + + + + INST_CUST_ID_2 + + false + + + + + INST_CUST_ID_3 + + false + + + + + POS_ID + + false + + + + + PRIORITY + + false + + + + + QUEUE_TYPE + + false + + + + + RC + + false + + + + + SIGNED_FLAG + + false + + + + + TASK_KEY + + false + + + + + + + TASK_KEY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF664_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF664_001_Dapi.xml new file mode 100644 index 0000000..55b92f1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF664_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF664 + 001 + DEVL + + + HUB + MWF664 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF671_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF671_001.xml new file mode 100644 index 0000000..5e0a612 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF671_001.xml @@ -0,0 +1,237 @@ + + + + + HUB + MWF671 + 001 + active + hub API:MWF671 + + + + + APVSTUPNI + + false + + + + + CISLOSMLOUVY + + false + + + + + DATUMDO + + false + + + + + DATUMOD + + false + + + + + ICO + + false + + + + + OM + + false + + + + + PORADCE + + false + + + + + PRIJMENI + + false + + + + + RODNECISLO + + false + + + + + STAVZADOSTI + + false + + + + + STAVZADOSTIJEDNODUCHY + + false + + + + + TYPPRODUKTUID + + false + + + + + + + Data + + + + RS_AP + + false + + + + + RS_KODPRODUKTPOZADOVANY + + false + + + + + RS_KODPRODUKTSCHVALENY + + false + + + + + RS_DATUMZADOSTI + + false + + + + + RS_ICO + + false + + + + + RS_JMENO + + false + + + + + RS_KODAKCE + + false + + + + + RS_PRIJMENI + + false + + + + + RS_RODNECISLO + + false + + + + + RS_MTS_STAV + + false + + + + + RS_VYSEUVERUPOZADOVANA + + false + + + + + RS_VYSEUVERUSCHVALENA + + false + + + + + RS_STAV + + false + + + + + RS_DUVODROZHODNUTI + + false + + + + + RS_CISLOKARTY + + false + + + + + RS_PRESCORING + + false + + + + + RS_PRIMASLIB + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF671_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF671_001_Dapi.xml new file mode 100644 index 0000000..8a5bd7b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF671_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF671 + 001 + DEVL + + + HUB + MWF671 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF672_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF672_001.xml new file mode 100644 index 0000000..6d54ba6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF672_001.xml @@ -0,0 +1,80 @@ + + + + + HUB + MWF672 + 001 + active + hub API:MWF672 + + + + + APPuvodni + + false + + + + + CIF + + false + + + + + CisloBU + + false + + + + + KodProduktSchvaleny + + false + + + + + NovaVyseRamce + + false + + + + + PuvodniVyseRamce + + false + + + + + RodneCislo + + false + + + + + + + AP + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF672_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF672_001_Dapi.xml new file mode 100644 index 0000000..c05a8db --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF672_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF672 + 001 + DEVL + + + HUB + MWF672 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF673_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF673_001.xml new file mode 100644 index 0000000..e75a0fd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF673_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWF673 + 001 + active + hub API:MWF673 + + + + + AP + + false + + + + + CISLOUCTU + + false + + + + + CISLOUVEROVEHOUCTU + + false + + + + + DATUMPLATNOSTI + + false + + + + + DATUMPODPISUSMLOUVY + + false + + + + + STAVZADOSTI + + false + + + + + + + ZADOSTNALEZENAANONE + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF673_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF673_001_Dapi.xml new file mode 100644 index 0000000..dc946db --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF673_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF673 + 001 + DEVL + + + HUB + MWF673 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF67D_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF67D_001.xml new file mode 100644 index 0000000..d9c79ac --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF67D_001.xml @@ -0,0 +1,318 @@ + + + + + HUB + MWF67D + 001 + active + hub API:MWF67D + + + + + AAAdresat + + false + + + + + AACO + + false + + + + + AACP + + false + + + + + AACtvrt + + false + + + + + AAObec + + false + + + + + AAPSC + + false + + + + + AAPosta + + false + + + + + AAUlice + + false + + + + + AAZeme + + false + + + + + AutomatickeObnoveni + + false + + + + + BUProTransakciVkladu + + false + + + + + CIF + + false + + + + + Cache_Pouzit + + false + + + + + Castka + + false + + + + + DatumOtevreni + + false + + + + + DatumSplatnosti + + false + + + + + DatumUkonceni + + false + + + + + DistibuceVypisu + + false + + + + + DruhVypisu + + false + + + + + DruheJmeno + + false + + + + + JistinaDispozice + + false + + + + + Jmeno + + false + + + + + Mena + + false + + + + + ObchodniJmeno + + false + + + + + ObchodniMistoKod + + false + + + + + PeriodaObnoveni + + false + + + + + Prijmeni + + false + + + + + ProduktKod + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + UcetJistinaBankaKod + + false + + + + + UcetJistinaCislo + + false + + + + + UcetUrokyBankaKod + + false + + + + + UcetUrokyCislo + + false + + + + + UlozPscBezKontroly + + false + + + + + UrednikPrimarni + + false + + + + + UrokDispozice + + false + + + + + UrokovaSazba + + false + + + + + + + Cache_IDRequestu + + false + + + + + CisloUctu + + false + + + + + DatumUkonceni + + false + + + + + IDTransakce + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF67D_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF67D_001_Dapi.xml new file mode 100644 index 0000000..0d3ae31 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF67D_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF67D + 001 + DEVL + + + HUB + MWF67D + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF682_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF682_001.xml new file mode 100644 index 0000000..497eec2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF682_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWF682 + 001 + active + hub API:MWF682 + + + + + ACCOUNT_NUMBER + + false + + + + + CIF + + false + + + + + RC + + false + + + + + + + NAVYSIT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF682_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF682_001_Dapi.xml new file mode 100644 index 0000000..f7b4a7e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF682_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF682 + 001 + DEVL + + + HUB + MWF682 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF68D_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF68D_001.xml new file mode 100644 index 0000000..db13c7d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF68D_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWF68D + 001 + active + hub API:MWF68D + + + + + Cache_Pouzit + + false + + + + + CisloKaretnihoUctu + + false + + + + + CisloKarty + + false + + + + + DSDatumPristoupeni + + false + + + + + DSKodDistribucnihoKanalu + + false + + + + + KodDS + + false + + + + + + + Cache_RequestID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF68D_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF68D_001_Dapi.xml new file mode 100644 index 0000000..44c5ce2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF68D_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF68D + 001 + DEVL + + + HUB + MWF68D + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF690_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF690_001.xml new file mode 100644 index 0000000..1154322 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF690_001.xml @@ -0,0 +1,121 @@ + + + + + HUB + MWF690 + 001 + active + hub API:MWF690 + + + + + Data + + + + RS_POPLATEKVYSE + + false + + + + + RS_MENA + + false + + + + + RS_POPLATEKJEDNORAZOVY_FLAG + + false + + + + + RS_POPLATEK_KEY + + false + + + + + RS_POPLATEKTYP + + false + + + + + + false + + + + + Varianta_KEY + + false + + + + + + + Data + + + + RS_POPLATEKVYSE + + false + + + + + RS_MENA + + false + + + + + RS_POPLATEKJEDNORAZOVY_FLAG + + false + + + + + RS_POPLATEK_KEY + + false + + + + + RS_POPLATEKTYP + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF690_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF690_001_Dapi.xml new file mode 100644 index 0000000..8a696f1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF690_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF690 + 001 + DEVL + + + HUB + MWF690 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF691_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF691_001.xml new file mode 100644 index 0000000..2b8ea20 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF691_001.xml @@ -0,0 +1,97 @@ + + + + + HUB + MWF691 + 001 + active + hub API:MWF691 + + + + + PoplatekJednorazovy_FLAG_IN + + false + + + + + PoplatekTyp_IN + + false + + + + + Varianta_KEY + + false + + + + + + + Data + + + + RS_POPLATEKVYSE + + false + + + + + RS_MENA + + false + + + + + RS_POPLATEKJEDNORAZOVY_FLAG + + false + + + + + RS_POPLATEK_KEY + + false + + + + + RS_POPLATEKTYP + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF691_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF691_001_Dapi.xml new file mode 100644 index 0000000..28be75e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF691_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF691 + 001 + DEVL + + + HUB + MWF691 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF694_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF694_001.xml new file mode 100644 index 0000000..644618e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF694_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWF694 + 001 + active + hub API:MWF694 + + + + + CisloUctu + + false + + + + + Jmeno + + false + + + + + NovaVyseRamce + + false + + + + + Prijmeni + + false + + + + + PuvodniVyseRamce + + false + + + + + TelCislo + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF694_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF694_001_Dapi.xml new file mode 100644 index 0000000..b8a9188 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF694_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF694 + 001 + DEVL + + + HUB + MWF694 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6C2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6C2_001.xml new file mode 100644 index 0000000..d5b3bdb --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6C2_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWF6C2 + 001 + active + hub API:MWF6C2 + + + + + InsuranceEndDate + + false + + + + + InsuranceId + + false + + + + + InsuranceStartDate + + false + + + + + + + InsurancePriceTotalAmount + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6C2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6C2_001_Dapi.xml new file mode 100644 index 0000000..b40bdb2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6C2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF6C2 + 001 + DEVL + + + HUB + MWF6C2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6C6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6C6_001.xml new file mode 100644 index 0000000..18b7dd4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6C6_001.xml @@ -0,0 +1,409 @@ + + + + + HUB + MWF6C6 + 001 + active + hub API:MWF6C6 + + + + + AddressCity + + false + + + + + AddressContCity + + false + + + + + AddressContCountry + + false + + + + + AddressContHouseNumber + + false + + + + + AddressContLandRegistryNumber + + false + + + + + AddressContSince + + false + + + + + AddressContStreet + + false + + + + + AddressContZipCode + + false + + + + + AddressCountry + + false + + + + + AddressEmpCity + + false + + + + + AddressEmpHouseNumber + + false + + + + + AddressEmpLandRegistryNumber + + false + + + + + AddressEmpStreet + + false + + + + + AddressEmpZipCode + + false + + + + + AddressHouseNumber + + false + + + + + AddressLandRegistryNumber + + false + + + + + AddressStreet + + false + + + + + AddressZipCode + + false + + + + + BirthCountry + + false + + + + + BirthDate + + false + + + + + BirthNumber + + false + + + + + BirthPlace + + false + + + + + BranchId + + false + + + + + CIF + + false + + + + + ChannelId + + false + + + + + Consent101SignDate + + false + + + + + DependPersonsCount + + false + + + + + EducationType + + false + + + + + Email + + false + + + + + EmployeeProcessRole + + false + + + + + EmployeeRoleId + + false + + + + + EmployeeSSO + + false + + + + + EmploymentId + + false + + + + + EmploymentName + + false + + + + + EmploymentSince + + false + + + + + EmploymentType + + false + + + + + HousingType + + false + + + + + IDCard2Number + + false + + + + + IDCard2PublishingCountry + + false + + + + + IDCard2Type + + false + + + + + IDCard2ValidTo + + false + + + + + IDCardNumber + + false + + + + + IDCardPublishingCountry + + false + + + + + IDCardType + + false + + + + + IDCardValidTo + + false + + + + + IncomeAverageThreeMonths + + false + + + + + MaritalAssets + + false + + + + + MaritalState + + false + + + + + Name + + false + + + + + Nationality + + false + + + + + Occupation + + false + + + + + PhoneNumber + + false + + + + + Sex + + false + + + + + Surname + + false + + + + + + + AppKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6C6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6C6_001_Dapi.xml new file mode 100644 index 0000000..e045a22 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6C6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF6C6 + 001 + DEVL + + + HUB + MWF6C6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6C8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6C8_001.xml new file mode 100644 index 0000000..7e32bf8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6C8_001.xml @@ -0,0 +1,654 @@ + + + + + HUB + MWF6C8 + 001 + active + hub API:MWF6C8 + + + + + AddressCity + + false + + + + + AddressContCity + + false + + + + + AddressContCountry + + false + + + + + AddressContHouseNumber + + false + + + + + AddressContLandRegistryNumber + + false + + + + + AddressContSince + + false + + + + + AddressContStreet + + false + + + + + AddressContZipCode + + false + + + + + AddressCountry + + false + + + + + AddressEmpCity + + false + + + + + AddressEmpCountry + + false + + + + + AddressEmpHouseNumber + + false + + + + + AddressEmpLandRegistryNumber + + false + + + + + AddressEmpStreet + + false + + + + + AddressEmpZipCode + + false + + + + + AddressHouseNumber + + false + + + + + AddressLandRegistryNumber + + false + + + + + AddressStreet + + false + + + + + AddressZipCode + + false + + + + + BirthCountry + + false + + + + + BirthDate + + false + + + + + BirthNumber + + false + + + + + BirthPlace + + false + + + + + BranchId + + false + + + + + BrokerId + + false + + + + + CIF + + false + + + + + ChannelId + + false + + + + + Consent101SignDate + + false + + + + + ConsentUDCflag + + false + + + + + DependPersonsCount + + false + + + + + EducationType + + false + + + + + Email + + false + + + + + EmployeeName + + false + + + + + EmployeeProcessRole + + false + + + + + EmployeeRoleId + + false + + + + + EmployeeSSO + + false + + + + + EmployeeSurname + + false + + + + + EmploymentId + + false + + + + + EmploymentName + + false + + + + + EmploymentNotice + + false + + + + + EmploymentSince + + false + + + + + EmploymentTerminationNotice + + false + + + + + EmploymentTrial + + false + + + + + EmploymentType + + false + + + + + EmploymentUntil + + false + + + + + ExpressOnly + + false + + + + + FamilyBusinessFlag + + false + + + + + HousingType + + false + + + + + IDCard2Number + + false + + + + + IDCard2PublishingCountry + + false + + + + + IDCard2Type + + false + + + + + IDCard2ValidTo + + false + + + + + IDCardNumber + + false + + + + + IDCardPublishingCountry + + false + + + + + IDCardType + + false + + + + + IDCardValidTo + + false + + + + + IncomeAverageThreeMonths + + false + + + + + IncomeDocumentType + + false + + + + + IncomeDocumentType2 + + false + + + + + IncomeDocumentType3 + + false + + + + + IncomeFamily + + false + + + + + IncomesCount + + false + + + + + LoanAmount + + false + + + + + LoanDefferedInstalmentMonths + + false + + + + + LoanInstalmentAmount + + false + + + + + LoanInsuranceType + + false + + + + + LoanRegularInstalmentDay + + false + + + + + LoanTerm + + false + + + + + MaritalAssets + + false + + + + + MaritalState + + false + + + + + MaritalStateVerification + + false + + + + + Name + + false + + + + + Nationality + + false + + + + + Occupation + + false + + + + + OtherLivingExpenses + + false + + + + + OtherMonthlyPayments + + false + + + + + PhoneNumber + + false + + + + + Sex + + false + + + + + ShareOfPrftFamilyBus + + false + + + + + SpecialCode + + false + + + + + SpecialCodeReasonId + + false + + + + + SpecialCodeReasonNote + + false + + + + + Surname + + false + + + + + TaxBase + + false + + + + + TaxCrOnlyFlag + + false + + + + + TaxToPayLastYear + + false + + + + + TaxYear + + false + + + + + TaxableIncomeLastYear + + false + + + + + + + ProdPackageKeyExpressOnly + + false + + + + + ProdPackageKeyNoExpress + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6C8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6C8_001_Dapi.xml new file mode 100644 index 0000000..7633f34 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6C8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF6C8 + 001 + DEVL + + + HUB + MWF6C8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6D7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6D7_001.xml new file mode 100644 index 0000000..7683550 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6D7_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWF6D7 + 001 + active + hub API:MWF6D7 + + + + + CIF + + false + + + + + CM_ID + + false + + + + + DokumentTyp + + false + + + + + NewVersion + + false + + + + + Produkt + + false + + + + + URLDokumentu + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6D7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6D7_001_Dapi.xml new file mode 100644 index 0000000..9c43d67 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6D7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF6D7 + 001 + DEVL + + + HUB + MWF6D7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6D8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6D8_001.xml new file mode 100644 index 0000000..24a2d53 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6D8_001.xml @@ -0,0 +1,276 @@ + + + + + HUB + MWF6D8 + 001 + active + hub API:MWF6D8 + + + + + BankaKod + + false + + + + + CIF + + false + + + + + CisloUctu + + false + + + + + CostCentrum + + false + + + + + DruhUctu + + false + + + + + IDObchodu + + false + + + + + ISIN + + false + + + + + ISIN2 + + false + + + + + IdVirtualniObjednavky + + false + + + + + IdZaznamu + + false + + + + + KlientIDDisponent + + false + + + + + KonstantniSymbol + + false + + + + + MenaUctu + + false + + + + + ObchodniDatum + + false + + + + + Objem + + false + + + + + Pobocka + + false + + + + + PobockaVyplaty + + false + + + + + PocetKS + + false + + + + + Produkt + + false + + + + + SpecifickySymbol + + false + + + + + StavObchodu + + false + + + + + TypObchodu + + false + + + + + TypSmlouvy + + false + + + + + VariabilniSymbol + + false + + + + + VlozeniDatum + + false + + + + + Vyplata + + false + + + + + ZadavatelID + + false + + + + + + + ICO + + false + + + + + ISIN + + false + + + + + ISIN2 + + false + + + + + ObchodniDatum + + false + + + + + Objem + + false + + + + + PocetKS + + false + + + + + PseudoTransakceID + + false + + + + + RodneCislo + + false + + + + + VyporadaniDatum + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6D8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6D8_001_Dapi.xml new file mode 100644 index 0000000..d89cb79 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6D8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF6D8 + 001 + DEVL + + + HUB + MWF6D8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6D9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6D9_001.xml new file mode 100644 index 0000000..54e40a2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6D9_001.xml @@ -0,0 +1,136 @@ + + + + + HUB + MWF6D9 + 001 + active + hub API:MWF6D9 + + + + + Banker + + false + + + + + CastkaTransakce + + false + + + + + CisloUctu + + false + + + + + DatumVytvoreni + + false + + + + + IdInvesticnihoDoporuceni + + false + + + + + IdObjednavky + + false + + + + + IdSmlouvy + + false + + + + + IdVirtualniObjednavky + + false + + + + + IdZaznamu + + false + + + + + Isin + + false + + + + + KodPobocky + + false + + + + + MenaTransakce + + false + + + + + PocetKusu + + false + + + + + TypTransakce + + false + + + + + ZadavatelID + + false + + + + + + + IdVirtualniObjednavky + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6D9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6D9_001_Dapi.xml new file mode 100644 index 0000000..c883442 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6D9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF6D9 + 001 + DEVL + + + HUB + MWF6D9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6FA_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6FA_001.xml new file mode 100644 index 0000000..772a806 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6FA_001.xml @@ -0,0 +1,279 @@ + + + + + HUB + MWF6FA + 001 + active + hub API:MWF6FA + + + + + BusinessType + + false + + + + + ClientInstId + + false + + + + + ClientInstKey + + false + + + + + ClientInstSysId + + false + + + + + ClientRelationInstKey + + false + + + + + ClientRelationInstSysId + + false + + + + + ClientRelationUniKey + + false + + + + + ClientType + + false + + + + + ClientUniKey + + false + + + + + ConsType_CommBankSecretByUnsecured + + false + + + + + ConsType_IdentityDataProcessing + + false + + + + + ConsType_IdentityPapersCopy + + false + + + + + ConsType_MarketingByAllChannels + + false + + + + + ConsType_MarketingByEmail + + false + + + + + ConsType_MarketingByOnline + + false + + + + + ConsType_MarketingByPhone + + false + + + + + ConsType_MarketingByPost + + false + + + + + ConsType_MarketingBySurvey + + false + + + + + ConsType_MarketingByTextMessage + + false + + + + + ConsType_RegistryCBCB + + false + + + + + ConsType_RegistryCNCB + + false + + + + + ConsType_RegistrySolusNegative + + false + + + + + ConsType_RegistryTelcoScore + + false + + + + + ConsentBranchId + + false + + + + + ConsentChannelId + + false + + + + + ConsentEmployeeId + + false + + + + + ConsentMode + + false + + + + + ConsentPromoterId + + false + + + + + ConsentSellerId + + false + + + + + ConsentSetId + + false + + + + + ConsentSignTime + + false + + + + + Data + + + + RS_CLIENTATTORNEYINSTID + + false + + + + + RS_CLIENTATTORNEYINSTKEY + + false + + + + + RS_CLIENTATTORNEYINSTSYSID + + false + + + + + + false + + + + + + + ConsentGroupKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6FA_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6FA_001_Dapi.xml new file mode 100644 index 0000000..2d552b3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6FA_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF6FA + 001 + TEST + + + HUB + MWF6FA + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6G4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6G4_001.xml new file mode 100644 index 0000000..827f1c6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6G4_001.xml @@ -0,0 +1,87 @@ + + + + + HUB + MWF6G4 + 001 + active + hub API:MWF6G4 + + + + + IPADRESA + + false + + + + + + + MAXCENAVOZU + + false + + + + + MAXFA + + false + + + + + MAXPOCETSPL + + false + + + + + MAXZALOHA + + false + + + + + MINCENAVOZU + + false + + + + + MINFA + + false + + + + + MINPOCETSPL + + false + + + + + MINZALOHA + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6G4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6G4_001_Dapi.xml new file mode 100644 index 0000000..a535305 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6G4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF6G4 + 001 + DEVL + + + HUB + MWF6G4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6G5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6G5_001.xml new file mode 100644 index 0000000..1bf57c5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6G5_001.xml @@ -0,0 +1,87 @@ + + + + + HUB + MWF6G5 + 001 + active + hub API:MWF6G5 + + + + + CENAVOZU + + false + + + + + IPADRESA + + false + + + + + POCETSPL + + false + + + + + ZALOHA + + false + + + + + + + CELKEM + + false + + + + + FA + + false + + + + + RPSN + + false + + + + + SPLATKA + + false + + + + + UROK + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6G5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6G5_001_Dapi.xml new file mode 100644 index 0000000..776627c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6G5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF6G5 + 001 + DEVL + + + HUB + MWF6G5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6G8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6G8_001.xml new file mode 100644 index 0000000..511ad8b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6G8_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF6G8 + 001 + active + hub API:MWF6G8 + + + + + IPT_CIF + + false + + + + + IPT_OCC_DET_CODE + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF6G8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF6G8_001_Dapi.xml new file mode 100644 index 0000000..7afbd64 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF6G8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF6G8 + 001 + DEVL + + + HUB + MWF6G8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF700_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF700_001.xml new file mode 100644 index 0000000..dd2b761 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF700_001.xml @@ -0,0 +1,104 @@ + + + + + HUB + MWF700 + 001 + active + hub API:MWF700 + + + + + IDHOB + + false + + + + + IDOM + + false + + + + + + + Data + + + + RS_JMENO + + false + + + + + RS_PRIJMENI + + false + + + + + RS_IDHOBOUT + + false + + + + + RS_OMOUT + + false + + + + + RS_IDOMOUT + + false + + + + + RS_TELEFON + + false + + + + + RS_TELEFONPREDCISLI + + false + + + + + RS_SSO + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF700_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF700_001_Dapi.xml new file mode 100644 index 0000000..999cdf8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF700_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF700 + 001 + DEVL + + + HUB + MWF700 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF702_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF702_001.xml new file mode 100644 index 0000000..92af89e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF702_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWF702 + 001 + active + hub API:MWF702 + + + + + APPL_SET_KEY + + false + + + + + INST_PT_KEY + + false + + + + + SCREEN_ID + + false + + + + + Zadost_KEY + + false + + + + + + + FORMAL_OK_FLAG + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF702_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF702_001_Dapi.xml new file mode 100644 index 0000000..64bf949 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF702_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF702 + 001 + DEVL + + + HUB + MWF702 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF731_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF731_001.xml new file mode 100644 index 0000000..8ba436d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF731_001.xml @@ -0,0 +1,101 @@ + + + + + HUB + MWF731 + 001 + active + hub API:MWF731 + + + + + PracovnikMTSID + + false + + + + + Storno_KodDuvoduStorna + + false + + + + + UrednikFunkce + + false + + + + + UrednikID + + false + + + + + UrednikJmeno + + false + + + + + UrednikPrijmeni + + false + + + + + UrednikRole + + false + + + + + UrednikSSO + + false + + + + + WPS_WFL_ID + + false + + + + + Zadost_KEY + + false + + + + + + + Storno_Vysledek + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF731_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF731_001_Dapi.xml new file mode 100644 index 0000000..af9181c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF731_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF731 + 001 + DEVL + + + HUB + MWF731 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF733_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF733_001.xml new file mode 100644 index 0000000..246f3b6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF733_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF733 + 001 + active + hub API:MWF733 + + + + + ZadostAP + + false + + + + + Zadost_KEY + + false + + + + + + + SchvalenoFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF733_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF733_001_Dapi.xml new file mode 100644 index 0000000..bec87c5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF733_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF733 + 001 + DEVL + + + HUB + MWF733 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF778_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF778_001.xml new file mode 100644 index 0000000..8f188c4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF778_001.xml @@ -0,0 +1,94 @@ + + + + + HUB + MWF778 + 001 + active + hub API:MWF778 + + + + + DEFFERED_INSTL_CNT + + false + + + + + FA_IN + + false + + + + + INSURANCE_TYPE_IN + + false + + + + + REGULAR_INSTALMENT_DAY + + false + + + + + TERM_IN + + false + + + + + + + ANNUITY + + false + + + + + ERROR_MESSAGE + + false + + + + + INT_RATE + + false + + + + + RPSN + + false + + + + + SUM_INSURANCE_MONTHLY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF778_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF778_001_Dapi.xml new file mode 100644 index 0000000..084a3c2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF778_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF778 + 001 + DEVL + + + HUB + MWF778 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF793_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF793_001.xml new file mode 100644 index 0000000..aecb753 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF793_001.xml @@ -0,0 +1,412 @@ + + + + + HUB + MWF793 + 001 + active + hub API:MWF793 + + + + + APPLICATION_TYPE_IN + + false + + + + + APP_STATE_IN + + false + + + + + Barva_Flag + + false + + + + + CIF + + false + + + + + CisloDokladu + + false + + + + + CisloDruhehoDokladu + + false + + + + + CisloTelefonu + + false + + + + + DatumDo + + false + + + + + DatumOd + + false + + + + + FE_Channel_ID + + false + + + + + ICO + + false + + + + + IDZadosti + + false + + + + + MTS_TypZadosti + + false + + + + + NAS_Flag + + false + + + + + OM + + false + + + + + OVR_Flag + + false + + + + + PRODUCT_REQUESTED_IN + + false + + + + + Prijmeni + + false + + + + + RC + + false + + + + + StavZadostiJednoduchy + + false + + + + + TypDokladu + + false + + + + + VIN + + false + + + + + + + ChybaVstupu + + false + + + + + Data + + + + RS_ZADOSTSUBTYP + + false + + + + + RS_DATUMZADOSTI + + false + + + + + RS_ICO + + false + + + + + RS_JMENO + + false + + + + + RS_KODAKCE + + false + + + + + RS_NAZEV + + false + + + + + RS_PRIJMENI + + false + + + + + RS_STAV + + false + + + + + RS_VYSEUVERUPOZADOVANA + + false + + + + + RS_VYSEUVERUSCHVALENA + + false + + + + + RS_KODPRODUKTPOZADOVANY + + false + + + + + RS_KODPRODUKTSCHVALENY + + false + + + + + RS_RODNECISLO + + false + + + + + RS_MTS_STAV + + false + + + + + RS_DUVODROZHODNUTI + + false + + + + + RS_PRESCORING + + false + + + + + RS_APP_STATE_ADC + + false + + + + + RS_CURRENCY + + false + + + + + RS_APPLICATION_TYPE + + false + + + + + RS_EXPRESMAN_FLAG + + false + + + + + RS_POS + + false + + + + + RS_INST_PT_KEY + + false + + + + + RS_CHANNEL + + false + + + + + RS_APP_KEY + + false + + + + + RS_STAVTXT + + false + + + + + RS_SPLATKA_SCH + + false + + + + + RS_SPLATKA_POZAD + + false + + + + + RS_SPLATKA + + false + + + + + RS_APPL_SET_KEY + + false + + + + + RS_RELATIONSHIPTYPE_ID + + false + + + + + RS_AP + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF793_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF793_001_Dapi.xml new file mode 100644 index 0000000..be17b04 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF793_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF793 + 001 + DEVL + + + HUB + MWF793 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7A5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7A5_001.xml new file mode 100644 index 0000000..3dca644 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7A5_001.xml @@ -0,0 +1,76 @@ + + + + + HUB + MWF7A5 + 001 + active + hub API:MWF7A5 + + + + + CIF + + false + + + + + ChannelId + + false + + + + + Data + + + + RS_CMID + + false + + + + + + false + + + + + LoginName + + false + + + + + ProdPackageKey + + false + + + + + SignatureID + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7A5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7A5_001_Dapi.xml new file mode 100644 index 0000000..14395e7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7A5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7A5 + 001 + DEVL + + + HUB + MWF7A5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7A7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7A7_001.xml new file mode 100644 index 0000000..4a20b8f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7A7_001.xml @@ -0,0 +1,152 @@ + + + + + HUB + MWF7A7 + 001 + active + hub API:MWF7A7 + + + + + ChannelId + + false + + + + + ClientName + + false + + + + + ClientSurname + + false + + + + + CmId + + false + + + + + DocumentSuspiciousData + + false + + + + + Email + + false + + + + + Geolocation + + false + + + + + NationalIDControlNumber + + false + + + + + ProdPackageKey + + false + + + + + RWS_DocumentEdited + + + + RS_IDTYPE + + false + + + + + + false + + + + + RWS_DocumentNameMismatch + + + + RS_IDTYPE + + false + + + + + + false + + + + + RWS_DocumentSuspiciousScan + + + + RS_IDTYPE + + false + + + + + + false + + + + + VerificationMethod + + false + + + + + + + WorkflowID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7A7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7A7_001_Dapi.xml new file mode 100644 index 0000000..b700098 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7A7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7A7 + 001 + DEVL + + + HUB + MWF7A7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7A8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7A8_001.xml new file mode 100644 index 0000000..9410c01 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7A8_001.xml @@ -0,0 +1,184 @@ + + + + + HUB + MWF7A8 + 001 + active + hub API:MWF7A8 + + + + + ChannelId + + false + + + + + ProdPackageKey + + false + + + + + RWS_IDsForProcessing + + + + RS_FIRSTNAME + + false + + + + + RS_SURNAME + + false + + + + + RS_BIRTHNUMBER + + false + + + + + RS_IDCARDNUMBER + + false + + + + + RS_IDCARDVALIDTO + + false + + + + + RS_IDCARDTYPE + + false + + + + + RS_IDCARDPUBLISHINGCOUNTRY + + false + + + + + RS_ADDRESSSTREET + + false + + + + + RS_ADDRESSHOUSENUMBER + + false + + + + + RS_ADDRESSCITY + + false + + + + + RS_ADDRESSZIPCODE + + false + + + + + RS_ADDRESSCOUNTRY + + false + + + + + RS_NATIONALIDCONTROLNUMBER + + false + + + + + RS_ADDRESSLANDREGISTRYNUMBER + + false + + + + + RS_CMID + + false + + + + + + false + + + + + + + AutoProcessDone + + false + + + + + RWS_CreatedDocuments + + + + RS_DOCINSTKEY + + false + + + + + RS_DOCUMENTTYPE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7A8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7A8_001_Dapi.xml new file mode 100644 index 0000000..2e11f22 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7A8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7A8 + 001 + DEVL + + + HUB + MWF7A8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C1_001.xml new file mode 100644 index 0000000..978a50d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C1_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF7C1 + 001 + active + hub API:MWF7C1 + + + + + AppKeyCardPlastic + + false + + + + + KulKey + + false + + + + + + + WorkFlowState + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C1_001_Dapi.xml new file mode 100644 index 0000000..1b3cd0f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7C1 + 001 + DEVL + + + HUB + MWF7C1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C2_001.xml new file mode 100644 index 0000000..77fea9a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C2_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWF7C2 + 001 + active + hub API:MWF7C2 + + + + + AppKey + + false + + + + + AppKeyCardPlastic + + false + + + + + KulKey + + false + + + + + VariantKey + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C2_001_Dapi.xml new file mode 100644 index 0000000..a3eaa65 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7C2 + 001 + DEVL + + + HUB + MWF7C2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C3_001.xml new file mode 100644 index 0000000..ce4418c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C3_001.xml @@ -0,0 +1,122 @@ + + + + + HUB + MWF7C3 + 001 + active + hub API:MWF7C3 + + + + + LoanAccNumber + + false + + + + + + + ActAmount + + false + + + + + ActInterestRate + + false + + + + + ActRpsn + + false + + + + + ActTerm + + false + + + + + AgreementCondition + + false + + + + + AmountNew + + false + + + + + Date34Statement + + false + + + + + DrawAmountNew + + false + + + + + InterestRateNew + + false + + + + + LoanType + + false + + + + + RevisionPeriod + + false + + + + + RpsnNew + + false + + + + + TermNew + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C3_001_Dapi.xml new file mode 100644 index 0000000..1da0843 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7C3 + 001 + DEVL + + + HUB + MWF7C3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C7_001.xml new file mode 100644 index 0000000..27326ba --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C7_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF7C7 + 001 + active + hub API:MWF7C7 + + + + + ProdPackageKey + + false + + + + + + + AggregatedState + + false + + + + + DocumentsRequiredOnlyPoiFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C7_001_Dapi.xml new file mode 100644 index 0000000..2296754 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7C7 + 001 + DEVL + + + HUB + MWF7C7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C8_001.xml new file mode 100644 index 0000000..6c0f496 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C8_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWF7C8 + 001 + active + hub API:MWF7C8 + + + + + CisloUctuExterni + + false + + + + + CisloUctuInterni + + false + + + + + SmerPrevodu + + false + + + + + + + CisloUctuExterni + + false + + + + + CisloUctuInterni + + false + + + + + PrevodExists + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C8_001_Dapi.xml new file mode 100644 index 0000000..34bf299 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7C8 + 001 + DEVL + + + HUB + MWF7C8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C9_001.xml new file mode 100644 index 0000000..7650fa8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C9_001.xml @@ -0,0 +1,87 @@ + + + + + HUB + MWF7C9 + 001 + active + hub API:MWF7C9 + + + + + ChannelId + + false + + + + + ProdPackageKey + + false + + + + + + + AmountFrom + + false + + + + + AmountRequested + + false + + + + + AmountTo + + false + + + + + AppKey + + false + + + + + ProductVirtualCandidateKey + + false + + + + + TermFrom + + false + + + + + TermTo + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7C9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7C9_001_Dapi.xml new file mode 100644 index 0000000..e99ff5c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7C9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7C9 + 001 + DEVL + + + HUB + MWF7C9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7D4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7D4_001.xml new file mode 100644 index 0000000..2c6ad73 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7D4_001.xml @@ -0,0 +1,233 @@ + + + + + HUB + MWF7D4 + 001 + active + hub API:MWF7D4 + + + + + ApplicantBirthNumber + + false + + + + + ApplicantCif + + false + + + + + ClientAccountBankCode + + false + + + + + ClientAddresses + + false + + + + + ClientBirthDate + + false + + + + + ClientBirthNumber + + false + + + + + ClientForename + + false + + + + + ClientIdentificationCardNumber + + false + + + + + ClientSurname + + false + + + + + RWS_ClientAccounts + + + + RS_ACCOUNTOWNERFORENAME + + false + + + + + RS_ACCOUNTOWNERSURNAME + + false + + + + + RS_ACCOUNTNUMBER + + false + + + + + RS_ACCOUNTCURRENCYCODE + + false + + + + + RS_ACCOUNTBALANCEAVAILABLEAMOUNT + + false + + + + + RS_ACCOUNTIBAN + + false + + + + + + false + + + + + RWS_Transactions + + + + RS_TRANSACTIONTARGETACCOUNTNAME + + false + + + + + RS_TRANSACTIONTARGETIBAN + + false + + + + + RS_TRANSACTIONID + + false + + + + + RS_TRANSACTIONDATE + + false + + + + + RS_TRANSACTIONTARGETBANKCODE + + false + + + + + RS_TRANSACTIONTARGETACCOUNTNUMBER + + false + + + + + RS_TRANSACTIONAMOUNT + + false + + + + + RS_TRANSACTIONVARIABLESYMBOL + + false + + + + + RS_TRANSACTIONNOTE + + false + + + + + RS_TRANSACTIONCLIENTIBAN + + false + + + + + + false + + + + + TransactionCaptureDate + + false + + + + + + + TransactionCaptureSnapKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7D4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7D4_001_Dapi.xml new file mode 100644 index 0000000..cab62c0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7D4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7D4 + 001 + DEVL + + + HUB + MWF7D4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7D6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7D6_001.xml new file mode 100644 index 0000000..dc0224d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7D6_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF7D6 + 001 + active + hub API:MWF7D6 + + + + + ApplicationKey + + false + + + + + TransactionCaptureSnapKey + + false + + + + + + + ClientAccountDataIsValid + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7D6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7D6_001_Dapi.xml new file mode 100644 index 0000000..5375712 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7D6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7D6 + 001 + DEVL + + + HUB + MWF7D6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7D7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7D7_001.xml new file mode 100644 index 0000000..6e6a725 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7D7_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF7D7 + 001 + active + hub API:MWF7D7 + + + + + TransactionCaptureSnapKey + + false + + + + + + + TransactionCalculationStateId + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7D7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7D7_001_Dapi.xml new file mode 100644 index 0000000..42b7586 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7D7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7D7 + 001 + DEVL + + + HUB + MWF7D7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7E2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7E2_001.xml new file mode 100644 index 0000000..e0cfff0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7E2_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF7E2 + 001 + active + hub API:MWF7E2 + + + + + AppKey + + false + + + + + KulKey + + false + + + + + + + AppKeyCardPlastic + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7E2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7E2_001_Dapi.xml new file mode 100644 index 0000000..c5c0be9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7E2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7E2 + 001 + DEVL + + + HUB + MWF7E2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7G0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7G0_001.xml new file mode 100644 index 0000000..30dd84b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7G0_001.xml @@ -0,0 +1,108 @@ + + + + + HUB + MWF7G0 + 001 + active + hub API:MWF7G0 + + + + + AGENT_ID + + false + + + + + BRN_ID + + false + + + + + CONT_PHONE_NUM + + false + + + + + CONT_PROD_ID + + false + + + + + CONT_TP + + false + + + + + CRE_DT + + false + + + + + FIRST_NAME + + false + + + + + GEMID_ID + + false + + + + + LAST_NAME + + false + + + + + WEB_SRC_ID + + false + + + + + WEB_SRC_SYS_ID + + false + + + + + + + WEBPORTAL_CONT_KEY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF7G0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF7G0_001_Dapi.xml new file mode 100644 index 0000000..1658caa --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF7G0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF7G0 + 001 + DEVL + + + HUB + MWF7G0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF810_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF810_001.xml new file mode 100644 index 0000000..7aaf62d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF810_001.xml @@ -0,0 +1,83 @@ + + + + + HUB + MWF810 + 001 + active + hub API:MWF810 + + + + + PLTRIM_VIN + + false + + + + + + + Data + + + + RS_VIN + + false + + + + + RS_ZNACKA + + false + + + + + RS_MODEL + + false + + + + + RS_ROKVYROBY + + false + + + + + RS_BARVA + + false + + + + + RS_STAV + + false + + + + + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF810_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF810_001_Dapi.xml new file mode 100644 index 0000000..a2bea2d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF810_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF810 + 001 + DEVL + + + HUB + MWF810 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF898_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF898_001.xml new file mode 100644 index 0000000..a41a8e1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF898_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWF898 + 001 + active + hub API:MWF898 + + + + + CHANNEL + + false + + + + + CIN + + false + + + + + + + ERRDESC + + false + + + + + RETURN + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF898_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF898_001_Dapi.xml new file mode 100644 index 0000000..56946a5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF898_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF898 + 001 + DEVL + + + HUB + MWF898 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8A3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8A3_001.xml new file mode 100644 index 0000000..33e21f9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8A3_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF8A3 + 001 + active + hub API:MWF8A3 + + + + + AppKey + + false + + + + + ProdPackageKey + + false + + + + + + + AppState + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8A3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8A3_001_Dapi.xml new file mode 100644 index 0000000..55320c6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8A3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8A3 + 001 + DEVL + + + HUB + MWF8A3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8A5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8A5_001.xml new file mode 100644 index 0000000..43860a7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8A5_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF8A5 + 001 + active + hub API:MWF8A5 + + + + + ProdPackageKey + + false + + + + + + + CancelationDate + + false + + + + + CurrentAccount + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8A5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8A5_001_Dapi.xml new file mode 100644 index 0000000..9b50746 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8A5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8A5 + 001 + DEVL + + + HUB + MWF8A5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8C1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8C1_001.xml new file mode 100644 index 0000000..6dbc227 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8C1_001.xml @@ -0,0 +1,143 @@ + + + + + HUB + MWF8C1 + 001 + active + hub API:MWF8C1 + + + + + AppKey + + false + + + + + InsuranceType + + false + + + + + LoanAmount + + false + + + + + ProductVirtualCandidateKey + + false + + + + + Term + + false + + + + + + + Instalment + + false + + + + + InsuranceMonthlyPayment + + false + + + + + InterestRate + + false + + + + + LastInstalment + + false + + + + + MinimumInterestRate + + false + + + + + PrimarInterestRate + + false + + + + + ProductCandidateKey + + false + + + + + RPSN + + false + + + + + Term + + false + + + + + TermFrom + + false + + + + + TermTo + + false + + + + + TotalAmount + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8C1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8C1_001_Dapi.xml new file mode 100644 index 0000000..e7f2612 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8C1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8C1 + 001 + DEVL + + + HUB + MWF8C1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8C2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8C2_001.xml new file mode 100644 index 0000000..1b9b65d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8C2_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWF8C2 + 001 + active + hub API:MWF8C2 + + + + + AppKey + + false + + + + + CIF + + false + + + + + InsuranceType + + false + + + + + LoanAmount + + false + + + + + ProductCandidateKey + + false + + + + + Term + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8C2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8C2_001_Dapi.xml new file mode 100644 index 0000000..8f00107 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8C2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8C2 + 001 + DEVL + + + HUB + MWF8C2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8D3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8D3_001.xml new file mode 100644 index 0000000..7787047 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8D3_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF8D3 + 001 + active + hub API:MWF8D3 + + + + + Code + + false + + + + + + + IsValid + + false + + + + + PromoterName + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8D3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8D3_001_Dapi.xml new file mode 100644 index 0000000..f2335dd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8D3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8D3 + 001 + DEVL + + + HUB + MWF8D3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8D4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8D4_001.xml new file mode 100644 index 0000000..62bc953 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8D4_001.xml @@ -0,0 +1,157 @@ + + + + + HUB + MWF8D4 + 001 + active + hub API:MWF8D4 + + + + + AddressCountry + + false + + + + + AddressEmpCity + + false + + + + + AddressEmpHouseNumber + + false + + + + + AddressEmpLandRegistryNumber + + false + + + + + AddressEmpStreet + + false + + + + + AddressEmpZipCode + + false + + + + + AppKey + + false + + + + + CIF + + false + + + + + ChannelId + + false + + + + + DependPersonsCount + + false + + + + + EducationType + + false + + + + + EmploymentId + + false + + + + + EmploymentName + + false + + + + + EmploymentSince + + false + + + + + EmploymentTrial + + false + + + + + EmploymentType + + false + + + + + IncomeAverageThreeMonths + + false + + + + + IncomeFamily + + false + + + + + + + AppKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8D4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8D4_001_Dapi.xml new file mode 100644 index 0000000..e3ea7df --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8D4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8D4 + 001 + DEVL + + + HUB + MWF8D4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8E5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8E5_001.xml new file mode 100644 index 0000000..2113be5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8E5_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWF8E5 + 001 + active + hub API:MWF8E5 + + + + + AddressCity + + false + + + + + AddressCountry + + false + + + + + AddressStreet + + false + + + + + AddressStreetDescriptionNumber + + false + + + + + AddressStreetOrientNumber + + false + + + + + AddressZipCode + + false + + + + + InstPtKey + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8E5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8E5_001_Dapi.xml new file mode 100644 index 0000000..4a40734 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8E5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8E5 + 001 + DEVL + + + HUB + MWF8E5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8F6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8F6_001.xml new file mode 100644 index 0000000..1ff13f6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8F6_001.xml @@ -0,0 +1,55 @@ + + + + + HUB + MWF8F6 + 001 + active + hub API:MWF8F6 + + + + + NOTAFFILIATE + + false + + + + + + + Data + + + + RS_PRODUCT + + false + + + + + RS_PRODUCTTYPEID + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8F6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8F6_001_Dapi.xml new file mode 100644 index 0000000..f4a76bd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8F6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8F6 + 001 + DEVL + + + HUB + MWF8F6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G2_001.xml new file mode 100644 index 0000000..c06c510 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G2_001.xml @@ -0,0 +1,300 @@ + + + + + HUB + MWF8G2 + 001 + active + hub API:MWF8G2 + + + + + BankNumber + + false + + + + + + + Data + + + + RS_TRANSACTIONCODE + + false + + + + + RS_FEE1_DESCRIPTION + + false + + + + + RS_FEE1_OVERRIDE + + false + + + + + RS_FEE1_PERCENT + + false + + + + + RS_FEE1_MINIMUM + + false + + + + + RS_FEE1_MAXIMUM + + false + + + + + RS_FIXED_FEE1_AM + + false + + + + + RS_FEE2_DESCRIPTION + + false + + + + + RS_FEE2_OVERRIDE + + false + + + + + RS_FEE2_PERCENT + + false + + + + + RS_FEE2_MINIMUM + + false + + + + + RS_FEE2_MAXIMUM + + false + + + + + RS_FIXED_FEE2_AM + + false + + + + + RS_FEE3_DESCRIPTION + + false + + + + + RS_FEE3_OVERRIDE + + false + + + + + RS_FEE3_PERCENT + + false + + + + + RS_FEE3_MINIMUM + + false + + + + + RS_FEE3_MAXIMUM + + false + + + + + RS_FIXED_FEE3_AM + + false + + + + + RS_FEE4_DESCRIPTION + + false + + + + + RS_FEE4_OVERRIDE + + false + + + + + RS_FEE4_PERCENT + + false + + + + + RS_FEE4_MINIMUM + + false + + + + + RS_FEE4_MAXIMUM + + false + + + + + RS_FIXED_FEE4_AM + + false + + + + + RS_FEE5_DESCRIPTION + + false + + + + + RS_FEE5_OVERRIDE + + false + + + + + RS_FEE5_PERCENT + + false + + + + + RS_FEE5_MINIMUM + + false + + + + + RS_FEE5_MAXIMUM + + false + + + + + RS_FIXED_FEE5_AM + + false + + + + + RS_FEE6_DESCRIPTION + + false + + + + + RS_FEE6_OVERRIDE + + false + + + + + RS_FEE6_PERCENT + + false + + + + + RS_FEE6_MINIMUM + + false + + + + + RS_FEE6_MAXIMUM + + false + + + + + RS_FIXED_FEE6_AM + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G2_001_Dapi.xml new file mode 100644 index 0000000..df47fdc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8G2 + 001 + DEVL + + + HUB + MWF8G2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G3_001.xml new file mode 100644 index 0000000..7c2d7a6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G3_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF8G3 + 001 + active + hub API:MWF8G3 + + + + + AppKey + + false + + + + + + + InstPtKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G3_001_Dapi.xml new file mode 100644 index 0000000..8b1a591 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8G3 + 001 + DEVL + + + HUB + MWF8G3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G4_001.xml new file mode 100644 index 0000000..54e3124 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G4_001.xml @@ -0,0 +1,181 @@ + + + + + HUB + MWF8G4 + 001 + active + hub API:MWF8G4 + + + + + ICO + + false + + + + + ID + + false + + + + + + + ARES_ADDRESS_CITY + + false + + + + + ARES_ADDRESS_COUNTRY + + false + + + + + ARES_ADDRESS_DESCRIPTIVE_NUMBER + + false + + + + + ARES_ADDRESS_DESCRIPTIVE_NUMBER_TYPE + + false + + + + + ARES_ADDRESS_ID + + false + + + + + ARES_ADDRESS_ORIENTATION_NUMBER + + false + + + + + ARES_ADDRESS_STREET + + false + + + + + ARES_ADDRESS_ZIP + + false + + + + + BUSINESS_NAME + + false + + + + + COMMENCEMENT_DATE + + false + + + + + DIC + + false + + + + + Data + + + + RS_NACE_CODE + + false + + + + + RS_NACE_DESCRIPTION + + false + + + + + + false + + + + + EMPLOYEE_COUNT_CATEGORY + + false + + + + + ICO + + false + + + + + LEGAL_FORM_CODE + + false + + + + + LEGAL_FORM_NAME + + false + + + + + STATUS_CODE + + false + + + + + STATUS_MESSAGE + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G4_001_Dapi.xml new file mode 100644 index 0000000..ecc91a5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8G4 + 001 + DEVL + + + HUB + MWF8G4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G5_001.xml new file mode 100644 index 0000000..6b6ac02 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G5_001.xml @@ -0,0 +1,188 @@ + + + + + HUB + MWF8G5 + 001 + active + hub API:MWF8G5 + + + + + ICO + + false + + + + + ID + + false + + + + + + + BUSINESS_ADDRESS_CITY + + false + + + + + BUSINESS_ADDRESS_COUNTRY + + false + + + + + BUSINESS_ADDRESS_DESCRIPTIVE_NUMBER + + false + + + + + BUSINESS_ADDRESS_DESCRIPTIVE_NUMBER_TYPE + + false + + + + + BUSINESS_ADDRESS_ID + + false + + + + + BUSINESS_ADDRESS_ORIENTATION_NUMBER + + false + + + + + BUSINESS_ADDRESS_STREET + + false + + + + + BUSINESS_ADDRESS_ZIP + + false + + + + + BUSINESS_NAME + + false + + + + + COMMENCEMENT_DATE + + false + + + + + Data + + + + RS_NACE_CODE + + false + + + + + RS_NACE_DESCRIPTION + + false + + + + + + false + + + + + ECONOMIC_SECTOR_CODE + + false + + + + + ECONOMIC_SECTOR_NAME + + false + + + + + EMPLOYEE_COUNT_CATEGORY + + false + + + + + ICO + + false + + + + + LEGAL_FORM_CODE + + false + + + + + LEGAL_FORM_NAME + + false + + + + + STATUS_CODE + + false + + + + + STATUS_MESSAGE + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G5_001_Dapi.xml new file mode 100644 index 0000000..ad10194 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8G5 + 001 + DEVL + + + HUB + MWF8G5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G6_001.xml new file mode 100644 index 0000000..fae97b8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G6_001.xml @@ -0,0 +1,669 @@ + + + + + HUB + MWF8G6 + 001 + active + hub API:MWF8G6 + + + + + ActivatingPassword + + false + + + + + AppBranchId + + false + + + + + AppChannelId + + false + + + + + AppSetKey + + false + + + + + BusinessType + + false + + + + + ClientBirthCountry + + false + + + + + ClientBirthDate + + false + + + + + ClientBirthNumber + + false + + + + + ClientBirthPlace + + false + + + + + ClientBusEmployeeCount + + false + + + + + ClientBusGrossIncomeLastYear + + false + + + + + ClientBusName + + false + + + + + ClientBusSector + + false + + + + + ClientBusStartDate + + false + + + + + ClientCitizenship + + false + + + + + ClientDependPersons + + false + + + + + ClientEducation + + false + + + + + ClientEmploymentType + + false + + + + + ClientFamilyBusFlag + + false + + + + + ClientFamilyBusProfitSharePct + + false + + + + + ClientFixedPerFlag + + false + + + + + ClientForename + + false + + + + + ClientHousingType + + false + + + + + ClientIco + + false + + + + + ClientLegalForm + + false + + + + + ClientMaritalAssets + + false + + + + + ClientMaritalStatus + + false + + + + + ClientMiddleName + + false + + + + + ClientNameTitleAfter + + false + + + + + ClientNameTitleBefore + + false + + + + + ClientPresenceWithAllPersonsFlag + + false + + + + + ClientResidentFlag + + false + + + + + ClientSex + + false + + + + + ClientSurname + + false + + + + + ClientType + + false + + + + + CurrentAccountOpenFlag + + false + + + + + EmployeeSso + + false + + + + + IpAddress + + false + + + + + LoanAmount + + false + + + + + LoanInstalmentDeferredCount + + false + + + + + LoanInstalmentRegularDay + + false + + + + + LoanInsuranceType + + false + + + + + LoanMaturityTerm + + false + + + + + LoanRepaymentType + + false + + + + + OfficerForename + + false + + + + + OfficerFunctId + + false + + + + + OfficerKey + + false + + + + + OfficerSurname + + false + + + + + RsAddresses + + + + RS_ADDRESS_CLIENT_ID + + false + + + + + RS_ADDRESS_PURPOSE + + false + + + + + RS_ADDRESS_COUNTRY + + false + + + + + RS_ADDRESS_CITY + + false + + + + + RS_ADDRESS_STREET + + false + + + + + RS_ADDRESS_STREET_DESC_NO + + false + + + + + RS_ADDRESS_STREET_ORIENT_NO + + false + + + + + RS_ADDRESS_ZIPCODE + + false + + + + + RS_ADDRESS_POST_OFFICE + + false + + + + + RS_ADDRESS_SINCE + + false + + + + + + false + + + + + RsEmails + + + + RS_EMAIL_PURPOSE + + false + + + + + RS_EMAIL + + false + + + + + RS_EMAIL_CLIENT_ID + + false + + + + + + false + + + + + RsIds + + + + RS_ID_CARD_PURP_ID + + false + + + + + RS_ID_CARD_NR + + false + + + + + RS_ID_CARD_TYPE_ID + + false + + + + + RS_ID_CARD_CNTRY_ID + + false + + + + + RS_ID_CARD_EXPR_DATE + + false + + + + + RS_ID_CARD_CLIENT_ID + + false + + + + + + false + + + + + RsNaces + + + + RS_PT_OKEC_KEY + + false + + + + + RS_INST_PT_KEY + + false + + + + + RS_OKEC_ID + + false + + + + + RS_OKEC_MAIN_FLAG + + false + + + + + RS_PRFT_SHARE_PCT + + false + + + + + RS_DEL_FLAG + + false + + + + + + false + + + + + RsPhones + + + + RS_PHONE_PURPOSE + + false + + + + + RS_PHONE_TYPE + + false + + + + + RS_PHONE_NUMBER + + false + + + + + RS_PHONE_CLIENT_ID + + false + + + + + + false + + + + + + + AppKey_ClientCif + + false + + + + + AppKey_CreditCardAccount + + false + + + + + AppKey_CreditCardInstance + + false + + + + + AppKey_CurrentAccount + + false + + + + + AppKey_InternetBank + + false + + + + + AppSetKey + + false + + + + + PackageKey + + false + + + + + WorkflowId + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G6_001_Dapi.xml new file mode 100644 index 0000000..e4168a7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8G6 + 001 + DEVL + + + HUB + MWF8G6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G8_001.xml new file mode 100644 index 0000000..04185d8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G8_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWF8G8 + 001 + active + hub API:MWF8G8 + + + + + KULAcceptationSkipFlag + + false + + + + + PackageKey + + false + + + + + + + AppSetKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8G8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8G8_001_Dapi.xml new file mode 100644 index 0000000..ca0a867 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8G8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8G8 + 001 + DEVL + + + HUB + MWF8G8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8H7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8H7_001.xml new file mode 100644 index 0000000..13c571b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8H7_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWF8H7 + 001 + active + hub API:MWF8H7 + + + + + CardInstanceNumber + + false + + + + + CardTokenRefId + + false + + + + + CardTokenRequestorId + + false + + + + + + + ResponseStatusFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8H7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8H7_001_Dapi.xml new file mode 100644 index 0000000..4ac7f78 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8H7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8H7 + 001 + DEVL + + + HUB + MWF8H7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8H8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8H8_001.xml new file mode 100644 index 0000000..bb1ef8e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8H8_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWF8H8 + 001 + active + hub API:MWF8H8 + + + + + CardInstanceNumber + + false + + + + + CardTokenRefId + + false + + + + + CardTokenRequestorId + + false + + + + + + + ResponseStatusFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF8H8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF8H8_001_Dapi.xml new file mode 100644 index 0000000..0ee1889 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF8H8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF8H8 + 001 + DEVL + + + HUB + MWF8H8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF930_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF930_001.xml new file mode 100644 index 0000000..63d4f4e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF930_001.xml @@ -0,0 +1,125 @@ + + + + + HUB + MWF930 + 001 + active + hub API:MWF930 + + + + + DatumDo + + false + + + + + DatumOd + + false + + + + + ISIN + + false + + + + + PocetIntervaluVystupu + + false + + + + + PozadovanaHodnota + + false + + + + + TypPeriody + + false + + + + + + + Data + + + + RS_ISIN + + false + + + + + RS_NAZEVISIN + + false + + + + + RS_DATUM + + false + + + + + RS_POZADOVANAHODNOTA + + false + + + + + RS_VYPOCTENAHODNOTA + + false + + + + + RS_MENA + + false + + + + + RS_NAZEVMENA + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF930_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF930_001_Dapi.xml new file mode 100644 index 0000000..77e39a2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF930_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF930 + 001 + DEVL + + + HUB + MWF930 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF983_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF983_001.xml new file mode 100644 index 0000000..95a3bd8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF983_001.xml @@ -0,0 +1,125 @@ + + + + + HUB + MWF983 + 001 + active + hub API:MWF983 + + + + + ISIN + + false + + + + + + + Data + + + + RS_ISIN + + false + + + + + RS_MENA + + false + + + + + RS_HODNOTADENNI + + false + + + + + RS_HODNOTADEKADA + + false + + + + + RS_HODNOTAMESIC + + false + + + + + RS_HODNOTACTVRTROK + + false + + + + + RS_HODNOTAPULROK + + false + + + + + RS_HODNOTAROK + + false + + + + + RS_HODNOTACELE + + false + + + + + RS_HODNOTAYTD + + false + + + + + RS_HODNOTA3ROK + + false + + + + + RS_HODNOTA5ROK + + false + + + + + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF983_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF983_001_Dapi.xml new file mode 100644 index 0000000..01d34bf --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF983_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF983 + 001 + DEVL + + + HUB + MWF983 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF984_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF984_001.xml new file mode 100644 index 0000000..0d7adee --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF984_001.xml @@ -0,0 +1,125 @@ + + + + + HUB + MWF984 + 001 + active + hub API:MWF984 + + + + + CIF + + false + + + + + ISIN + + false + + + + + + + Data + + + + RS_ISIN + + false + + + + + RS_NAZEVISIN + + false + + + + + RS_MENA + + false + + + + + RS_PPCOJPL + + false + + + + + RS_PPCOJPLCZK + + false + + + + + RS_OBJEM + + false + + + + + RS_OBJEMCZK + + false + + + + + RS_ZISK + + false + + + + + RS_ZISKCZK + + false + + + + + RS_ZISKPROCENTO + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF984_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF984_001_Dapi.xml new file mode 100644 index 0000000..4f76e2d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF984_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF984 + 001 + DEVL + + + HUB + MWF984 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF987_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF987_001.xml new file mode 100644 index 0000000..6feb3dd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF987_001.xml @@ -0,0 +1,76 @@ + + + + + HUB + MWF987 + 001 + active + hub API:MWF987 + + + + + ORGANIZATION + + false + + + + + RELATIONSHIP_NUMBER + + false + + + + + + + Data + + + + RS_ACCOUNT_NUMBER + + false + + + + + RS_ORGANIZATION + + false + + + + + RS_STATUS + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF987_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF987_001_Dapi.xml new file mode 100644 index 0000000..60c6ccc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF987_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWF987 + 001 + DEVL + + + HUB + MWF987 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF996_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF996_001.xml new file mode 100644 index 0000000..f81cfee --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF996_001.xml @@ -0,0 +1,101 @@ + + + + + HUB + MWF996 + 001 + active + hub API:MWF996 + + + + + CisloBU + + false + + + + + CisloKoduBanky + + false + + + + + CisloUctu + + false + + + + + KonstantniSymbol + + false + + + + + Poznamka + + false + + + + + PredcisliUctu + + false + + + + + ProduktKod + + false + + + + + SpecifickySymbol + + false + + + + + TransID + + false + + + + + VariabilniSymbol + + false + + + + + + + TransID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF996_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF996_001_Dapi.xml new file mode 100644 index 0000000..77bf7cc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF996_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF996 + 001 + DEVL + + + HUB + MWF996 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9B8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9B8_001.xml new file mode 100644 index 0000000..ee4fee1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9B8_001.xml @@ -0,0 +1,129 @@ + + + + + HUB + MWF9B8 + 001 + active + hub API:MWF9B8 + + + + + LoanAccNumber + + false + + + + + + + AppKey + + false + + + + + ClientReactionOnChange + + false + + + + + DateContractSigned + + false + + + + + DateLastRevision + + false + + + + + DateNextRevision + + false + + + + + DayOfStatement + + false + + + + + InterestRate + + false + + + + + LastPaymentAmount + + false + + + + + LoanAmount + + false + + + + + PaymentAmount + + false + + + + + PaymentCount + + false + + + + + PaymentPercent + + false + + + + + RevisionPeriod + + false + + + + + StateLastRevision + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9B8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9B8_001_Dapi.xml new file mode 100644 index 0000000..a477f8b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9B8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9B8 + 001 + DEVL + + + HUB + MWF9B8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9C2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9C2_001.xml new file mode 100644 index 0000000..cf78311 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9C2_001.xml @@ -0,0 +1,101 @@ + + + + + HUB + MWF9C2 + 001 + active + hub API:MWF9C2 + + + + + CancelExtAccount + + false + + + + + Cif + + false + + + + + DocumentId + + false + + + + + ExtAccBankCode + + false + + + + + ExtAccNumber + + false + + + + + ExtAccPrefix + + false + + + + + MonetaAccNumber + + false + + + + + SignatureId + + false + + + + + SignatureTimestamp + + false + + + + + SwitchingDate + + false + + + + + TransferPermOrders + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9C2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9C2_001_Dapi.xml new file mode 100644 index 0000000..26091c3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9C2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9C2 + 001 + DEVL + + + HUB + MWF9C2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9C3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9C3_001.xml new file mode 100644 index 0000000..fa8132b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9C3_001.xml @@ -0,0 +1,87 @@ + + + + + HUB + MWF9C3 + 001 + active + hub API:MWF9C3 + + + + + CancelExtAccount + + false + + + + + Cif + + false + + + + + ExtAccBankCode + + false + + + + + ExtAccNumber + + false + + + + + ExtAccPrefix + + false + + + + + MonetaAccNumber + + false + + + + + SwitchingDate + + false + + + + + TransferPermOrders + + false + + + + + + + Url + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9C3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9C3_001_Dapi.xml new file mode 100644 index 0000000..d0eb7c1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9C3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9C3 + 001 + DEVL + + + HUB + MWF9C3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9C6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9C6_001.xml new file mode 100644 index 0000000..6fa0fd4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9C6_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF9C6 + 001 + active + hub API:MWF9C6 + + + + + ProdPackageKey + + false + + + + + + + WorkFlowState + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9C6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9C6_001_Dapi.xml new file mode 100644 index 0000000..1fd2f80 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9C6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9C6 + 001 + DEVL + + + HUB + MWF9C6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9C7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9C7_001.xml new file mode 100644 index 0000000..1c6f013 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9C7_001.xml @@ -0,0 +1,97 @@ + + + + + HUB + MWF9C7 + 001 + active + hub API:MWF9C7 + + + + + ProdPackageKey + + false + + + + + + + Data + + + + RS_CMID + + false + + + + + RS_URL + + false + + + + + RS_IDPRODUKTU + + false + + + + + RS_TYPDOKUMENTU + + false + + + + + RS_NAZEVDOKUMENTU + + false + + + + + RS_NAZEVDOKUMENTUIB + + false + + + + + RS_TRIDAPRODUKTU + + false + + + + + RS_SKUPINAPRODUKTU + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9C7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9C7_001_Dapi.xml new file mode 100644 index 0000000..5f2af4d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9C7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9C7 + 001 + DEVL + + + HUB + MWF9C7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9D1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9D1_001.xml new file mode 100644 index 0000000..8667125 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9D1_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF9D1 + 001 + active + hub API:MWF9D1 + + + + + CIF + + false + + + + + + + SplnujePodminky + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9D1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9D1_001_Dapi.xml new file mode 100644 index 0000000..735a9bd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9D1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9D1 + 001 + DEVL + + + HUB + MWF9D1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9D4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9D4_001.xml new file mode 100644 index 0000000..a908783 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9D4_001.xml @@ -0,0 +1,58 @@ + + + + + HUB + MWF9D4 + 001 + active + hub API:MWF9D4 + + + + + Data + + + + RS_ACCOUNTNUMBER + + false + + + + + + false + + + + + + + Data + + + + RS_ACCOUNTNUMBER + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9D4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9D4_001_Dapi.xml new file mode 100644 index 0000000..3e240f3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9D4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9D4 + 001 + DEVL + + + HUB + MWF9D4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9D5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9D5_001.xml new file mode 100644 index 0000000..0c28172 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9D5_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF9D5 + 001 + active + hub API:MWF9D5 + + + + + CIF + + false + + + + + + + AccountNumber + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9D5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9D5_001_Dapi.xml new file mode 100644 index 0000000..4c08374 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9D5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9D5 + 001 + DEVL + + + HUB + MWF9D5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9D8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9D8_001.xml new file mode 100644 index 0000000..aa81fdb --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9D8_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWF9D8 + 001 + active + hub API:MWF9D8 + + + + + Cif + + false + + + + + + + AccountFee + + false + + + + + InterestRate + + false + + + + + OpeningFee + + false + + + + + OverdraftAccountNumber + + false + + + + + OverdraftAmount + + false + + + + + ProductClass + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9D8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9D8_001_Dapi.xml new file mode 100644 index 0000000..16e0d16 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9D8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9D8 + 001 + DEVL + + + HUB + MWF9D8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9F1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9F1_001.xml new file mode 100644 index 0000000..f1210bc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9F1_001.xml @@ -0,0 +1,83 @@ + + + + + HUB + MWF9F1 + 001 + active + hub API:MWF9F1 + + + + + CIF + + false + + + + + ChannelId + + false + + + + + CmID + + false + + + + + ProdPkgKey + + false + + + + + RWS_Signs + + + + RS_IDSIGNATURE + + false + + + + + RS_INSTPTKEY + + false + + + + + RS_DATESTAMP + + false + + + + + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9F1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9F1_001_Dapi.xml new file mode 100644 index 0000000..2dd2793 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9F1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9F1 + 001 + DEVL + + + HUB + MWF9F1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9F9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9F9_001.xml new file mode 100644 index 0000000..fe7422c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9F9_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF9F9 + 001 + active + hub API:MWF9F9 + + + + + APP_KEY + + false + + + + + + + CalculationResult + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9F9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9F9_001_Dapi.xml new file mode 100644 index 0000000..a0656f5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9F9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9F9 + 001 + DEVL + + + HUB + MWF9F9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + HYP.HUB.INP + + + + 4 + 30 + HYP.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9G0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9G0_001.xml new file mode 100644 index 0000000..e89f392 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9G0_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWF9G0 + 001 + active + hub API:MWF9G0 + + + + + AppKey + + false + + + + + + + LoanAccountNumber + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9G0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9G0_001_Dapi.xml new file mode 100644 index 0000000..90f80b2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9G0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9G0 + 001 + DEVL + + + HUB + MWF9G0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9G5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9G5_001.xml new file mode 100644 index 0000000..ffad990 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9G5_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWF9G5 + 001 + active + hub API:MWF9G5 + + + + + CMID_IN + + false + + + + + DOC_FORMAT + + false + + + + + URL_IN + + false + + + + + Update + + false + + + + + + + CMID_OUT + + false + + + + + URL_OUT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9G5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9G5_001_Dapi.xml new file mode 100644 index 0000000..befd767 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9G5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9G5 + 001 + DEVL + + + HUB + MWF9G5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9G6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9G6_001.xml new file mode 100644 index 0000000..9d4c48e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9G6_001.xml @@ -0,0 +1,640 @@ + + + + + HUB + MWF9G6 + 001 + active + hub API:MWF9G6 + + + + + AddressCity + + false + + + + + AddressContCity + + false + + + + + AddressContCountry + + false + + + + + AddressContHouseNumber + + false + + + + + AddressContLandRegistryNumber + + false + + + + + AddressContSince + + false + + + + + AddressContStreet + + false + + + + + AddressContZipCode + + false + + + + + AddressCountry + + false + + + + + AddressEmpCity + + false + + + + + AddressEmpCountry + + false + + + + + AddressEmpHouseNumber + + false + + + + + AddressEmpLandRegistryNumber + + false + + + + + AddressEmpStreet + + false + + + + + AddressEmpZipCode + + false + + + + + AddressHouseNumber + + false + + + + + AddressLandRegistryNumber + + false + + + + + AddressStreet + + false + + + + + AddressZipCode + + false + + + + + BirthCountry + + false + + + + + BirthDate + + false + + + + + BirthNumber + + false + + + + + BirthPlace + + false + + + + + BranchId + + false + + + + + BrokerId + + false + + + + + CIF + + false + + + + + ChannelId + + false + + + + + Consent101SignDate + + false + + + + + ConsentUDCflag + + false + + + + + DependPersonsCount + + false + + + + + EducationType + + false + + + + + Email + + false + + + + + EmployeeProcessRole + + false + + + + + EmployeeRoleId + + false + + + + + EmploymentId + + false + + + + + EmploymentName + + false + + + + + EmploymentNotice + + false + + + + + EmploymentSince + + false + + + + + EmploymentTerminationNotice + + false + + + + + EmploymentTrial + + false + + + + + EmploymentType + + false + + + + + EmploymentUntil + + false + + + + + ExpressOnly + + false + + + + + FamilyBusinessFlag + + false + + + + + HousingType + + false + + + + + IDCard2Number + + false + + + + + IDCard2PublishingCountry + + false + + + + + IDCard2Type + + false + + + + + IDCard2ValidTo + + false + + + + + IDCard3Type + + false + + + + + IDCardNumber + + false + + + + + IDCardPublishingCountry + + false + + + + + IDCardType + + false + + + + + IDCardValidTo + + false + + + + + IncomeAverageThreeMonths + + false + + + + + IncomeDocumentType + + false + + + + + IncomeDocumentType2 + + false + + + + + IncomeDocumentType3 + + false + + + + + IncomeFamily + + false + + + + + IncomesCount + + false + + + + + LoanAmount + + false + + + + + LoanDefferedInstalmentMonths + + false + + + + + LoanInstalmentAmount + + false + + + + + LoanInsuranceType + + false + + + + + LoanRegularInstalmentDay + + false + + + + + LoanTerm + + false + + + + + MaritalAssets + + false + + + + + MaritalState + + false + + + + + MaritalStateVerification + + false + + + + + Name + + false + + + + + Nationality + + false + + + + + Occupation + + false + + + + + OtherLivingExpenses + + false + + + + + OtherMonthlyPayments + + false + + + + + PhoneNumber + + false + + + + + Sex + + false + + + + + ShareOfPrftFamilyBus + + false + + + + + SpecialCode + + false + + + + + SpecialCodeReasonId + + false + + + + + SpecialCodeReasonNote + + false + + + + + Surname + + false + + + + + TaxBase + + false + + + + + TaxCrOnlyFlag + + false + + + + + TaxToPayLastYear + + false + + + + + TaxYear + + false + + + + + TaxableIncomeLastYear + + false + + + + + + + ProdPackageKeyExpressOnly + + false + + + + + ProdPackageKeyNoExpress + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9G6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9G6_001_Dapi.xml new file mode 100644 index 0000000..7096800 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9G6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9G6 + 001 + DEVL + + + HUB + MWF9G6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9G9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9G9_001.xml new file mode 100644 index 0000000..9f4374b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9G9_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWF9G9 + 001 + active + hub API:MWF9G9 + + + + + FaInitiall + + false + + + + + FaMonthly + + false + + + + + SRRI + + false + + + + + Term + + false + + + + + + + FaTotal + + false + + + + + YieldAmountMax + + false + + + + + YieldAmountMin + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWF9G9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWF9G9_001_Dapi.xml new file mode 100644 index 0000000..7f84cb6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWF9G9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWF9G9 + 001 + DEVL + + + HUB + MWF9G9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA02_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA02_001.xml new file mode 100644 index 0000000..210873e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA02_001.xml @@ -0,0 +1,185 @@ + + + + + HUB + MWFA02 + 001 + active + hub API:MWFA02 + + + + + ADCKlient + + false + + + + + Adresat + + false + + + + + BITSFlag + + false + + + + + CIF + + false + + + + + Email + + false + + + + + Jmeno + + false + + + + + Mobil + + false + + + + + MobilPredvolba + + false + + + + + ObchodniMistoKod + + false + + + + + Obec + + false + + + + + OsobniCislo + + false + + + + + PSC + + false + + + + + Posta + + false + + + + + Prijmeni + + false + + + + + TelPredvolba + + false + + + + + Telefon + + false + + + + + Titul + + false + + + + + TypKlienta + + false + + + + + TypUctu + + false + + + + + UcetPoplatku + + false + + + + + Ulice + + false + + + + + Zeme + + false + + + + + ZkraceneJmeno + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA02_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA02_001_Dapi.xml new file mode 100644 index 0000000..73bfce8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA02_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFA02 + 001 + TEST + + + HUB + MWFA02 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA03_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA03_001.xml new file mode 100644 index 0000000..942ae6a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA03_001.xml @@ -0,0 +1,185 @@ + + + + + HUB + MWFA03 + 001 + active + hub API:MWFA03 + + + + + CIF + + false + + + + + CisloObalky + + false + + + + + DenniLimit + + false + + + + + DenniLimitAnoNe + + false + + + + + FreeChannel + + false + + + + + Kanal + + false + + + + + MaIBsKreditkou + + false + + + + + ObchodniMistoAlternativni + + false + + + + + ObchodniMistoKod + + false + + + + + PozadavekAktivace + + false + + + + + Prava + + false + + + + + Predvolba + + false + + + + + PredvolbaMobKey + + false + + + + + SMSInfo + + false + + + + + SouhlasSMobilnimKlicem + + false + + + + + TelefoniCislo + + false + + + + + TelefoniCisloMobKey + + false + + + + + TydenniLimit + + false + + + + + TydenniLimitAnoNe + + false + + + + + UzivatelID + + false + + + + + ZacatekPoplatkovani + + false + + + + + ZpusobAutentizace + + false + + + + + ZpusobCertifikace + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA03_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA03_001_Dapi.xml new file mode 100644 index 0000000..bc67f6c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA03_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFA03 + 001 + TEST + + + HUB + MWFA03 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA80_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA80_001.xml new file mode 100644 index 0000000..6307592 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA80_001.xml @@ -0,0 +1,62 @@ + + + + + HUB + MWFA80 + 001 + active + hub API:MWFA80 + + + + + CisloKaretnihoUctu + + false + + + + + DruhKarty + + false + + + + + + + Data + + + + RS_DATUMVYPISU + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA80_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA80_001_Dapi.xml new file mode 100644 index 0000000..87fc09b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA80_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFA80 + 001 + DEVL + + + HUB + MWFA80 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA85_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA85_001.xml new file mode 100644 index 0000000..0537657 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA85_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWFA85 + 001 + active + hub API:MWFA85 + + + + + CisloKarty + + false + + + + + PINZdarma + + false + + + + + SmartPINNumber + + false + + + + + TelefonMobilni + + false + + + + + VypnoutKontroly + + false + + + + + ZpusobDistribucePIN + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA85_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA85_001_Dapi.xml new file mode 100644 index 0000000..5ea229a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA85_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFA85 + 001 + DEVL + + + HUB + MWFA85 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA86_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA86_001.xml new file mode 100644 index 0000000..57718e3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA86_001.xml @@ -0,0 +1,129 @@ + + + + + HUB + MWFA86 + 001 + active + hub API:MWFA86 + + + + + CIF + + false + + + + + Cache_Pouzit + + false + + + + + Cache_Signature + + false + + + + + Cache_SystemID + + false + + + + + CisloKarty + + false + + + + + DrzitelRC + + false + + + + + DuvodAkce + + false + + + + + DuvodOdblokovani + + false + + + + + KontextKontrol + + false + + + + + OdblokokaceKaretnihoUctu + + false + + + + + Urednik + + false + + + + + VypnoutKontroly + + false + + + + + + + Cache_RequestID + + false + + + + + OnlineFlag + + false + + + + + VysledekKontrol + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA86_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA86_001_Dapi.xml new file mode 100644 index 0000000..5104119 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA86_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFA86 + 001 + DEVL + + + HUB + MWFA86 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA89_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA89_001.xml new file mode 100644 index 0000000..f082d12 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA89_001.xml @@ -0,0 +1,356 @@ + + + + + HUB + MWFA89 + 001 + active + hub API:MWFA89 + + + + + CastkaDo + + false + + + + + CastkaOd + + false + + + + + CisloKaretnihoUctu + + false + + + + + CisloKarty + + false + + + + + DatumTransakceDo + + false + + + + + DatumTransakceOd + + false + + + + + DatumVypisu + + false + + + + + DruhKarty + + false + + + + + PotlacitCashBack + + false + + + + + + + CelkovaSplatnaSplatka + + false + + + + + Data + + + + RS_DATUMTRANSAKCE + + false + + + + + RS_DATUMZAUCTOVANI + + false + + + + + RS_CASTKA + + false + + + + + RS_TYPTRANSAKCE + + false + + + + + RS_KREDITNIPLAN + + false + + + + + RS_POPIS + + false + + + + + RS_AUTORIZACNIKOD + + false + + + + + RS_UCET + + false + + + + + RS_ID + + false + + + + + RS_DATUMPRISTIHOVYPISU + + false + + + + + RS_DATUMZAUCTOVANIVEVLS + + false + + + + + RS_POCETBODU + + false + + + + + RS_PROGRAM + + false + + + + + RS_CASTKADUAL + + false + + + + + RS_ODMENY + + false + + + + + RS_API_TYPTXN + + false + + + + + RS_API_KODTXN + + false + + + + + RS_CISLOOBCHODNIKA + + false + + + + + RS_CISLOPRODEJNYOBCHODNIKA + + false + + + + + RS_DATUMPRICHODUPLATBY + + false + + + + + RS_CISLOUCTUDEBET + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_CISLOKARTY + + false + + + + + RS_BARVA + + false + + + + + RS_CISLOKARTYMASK + + false + + + + + RS_KODBANKY + + false + + + + + RS_VARIABILNISYMBOL + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_ZDROJTRANSAKCE + + false + + + + + + false + + + + + DatumGenerovaniVypisu + + false + + + + + DisponibilniZustatek + + false + + + + + Pocet + + false + + + + + SplatkaBezneObdobi + + false + + + + + SplatkaMinuleObdobi + + false + + + + + VyseVycerpanehoRamceKonec + + false + + + + + VyseVycerpanehoRamceZacatek + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA89_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA89_001_Dapi.xml new file mode 100644 index 0000000..d7232a4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA89_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFA89 + 001 + DEVL + + + HUB + MWFA89 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA90_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA90_001.xml new file mode 100644 index 0000000..c3c5f46 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA90_001.xml @@ -0,0 +1,335 @@ + + + + + HUB + MWFA90 + 001 + active + hub API:MWFA90 + + + + + CastkaDo + + false + + + + + CastkaOd + + false + + + + + CisloKaretnihoUctu + + false + + + + + CisloKarty + + false + + + + + DatumTransakceDo + + false + + + + + DatumTransakceOd + + false + + + + + DruhKarty + + false + + + + + PotlacitCashBack + + false + + + + + + + Data + + + + RS_DATUMTRANSAKCE + + false + + + + + RS_DATUMZAUCTOVANI + + false + + + + + RS_CASTKA + + false + + + + + RS_TYPTRANSAKCE + + false + + + + + RS_KREDITNIPLAN + + false + + + + + RS_POPIS + + false + + + + + RS_AUTORIZACNIKOD + + false + + + + + RS_UCET + + false + + + + + RS_ID + + false + + + + + RS_DATUMPRISTIHOVYPISU + + false + + + + + RS_DATUMZAUCTOVANIVEVLS + + false + + + + + RS_POCETBODU + + false + + + + + RS_PROGRAM + + false + + + + + RS_CASTKADUAL + + false + + + + + RS_ODMENY + + false + + + + + RS_API_TYPTXN + + false + + + + + RS_API_KODTXN + + false + + + + + RS_CISLOOBCHODNIKA + + false + + + + + RS_CISLOPRODEJNYOBCHODNIKA + + false + + + + + RS_DATUMPRICHODUPLATBY + + false + + + + + RS_CISLOUCTUDEBET + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_CISLOKARTY + + false + + + + + RS_BARVA + + false + + + + + RS_CISLOKARTYMASK + + false + + + + + RS_KODBANKY + + false + + + + + RS_VARIABILNISYMBOL + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_ZDROJTRANSAKCE + + false + + + + + + false + + + + + Pocet + + false + + + + + UcetCisloBU + + false + + + + + UcetKodBanky + + false + + + + + UcetSpecifickySymbol + + false + + + + + UcetZpusobUhrady + + false + + + + + UcetZpusubUhradyJednoduchy + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFA90_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFA90_001_Dapi.xml new file mode 100644 index 0000000..ac56d4c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFA90_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFA90 + 001 + DEVL + + + HUB + MWFA90 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAE1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAE1_001.xml new file mode 100644 index 0000000..539144b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAE1_001.xml @@ -0,0 +1,181 @@ + + + + + HUB + MWFAE1 + 001 + active + hub API:MWFAE1 + + + + + Data + + + + RS_NAME + + false + + + + + RS_VALUE + + false + + + + + + false + + + + + InteractiveContractId + + false + + + + + InteractiveContractName + + false + + + + + InteractiveHolderRole + + false + + + + + InteractiveHolderUserName + + false + + + + + InteractiveState + + false + + + + + IsInteractive + + false + + + + + directPrintEnable + + false + + + + + docType + + false + + + + + duplexMode + + false + + + + + numberOfCopies + + false + + + + + printDoc + + false + + + + + printerAddress + + false + + + + + printerPort + + false + + + + + rptData + + false + + + + + rptName + + false + + + + + + + InteractiveTicketId + + false + + + + + documentURL + + false + + + + + numberOfPages + + false + + + + + result + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAE1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAE1_001_Dapi.xml new file mode 100644 index 0000000..a69365c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAE1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAE1 + 001 + DEVL + + + HUB + MWFAE1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAG2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAG2_001.xml new file mode 100644 index 0000000..82ebe85 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAG2_001.xml @@ -0,0 +1,202 @@ + + + + + HUB + MWFAG2 + 001 + active + hub API:MWFAG2 + + + + + INAPPL + + false + + + + + INBANK + + false + + + + + INCNBR + + false + + + + + INCURSOR + + false + + + + + INROWS + + false + + + + + INSTAT + + false + + + + + + + Data + + + + RS_OUAPPL + + false + + + + + RS_OUTRANTYP + + false + + + + + RS_OUAPPLDESC + + false + + + + + RS_OUSUBTYP + + false + + + + + RS_OUSTYPDESC + + false + + + + + RS_OUACCT + + false + + + + + RS_OUACEX + + false + + + + + RS_OUXREL + + false + + + + + RS_OUTYPE + + false + + + + + RS_OUDESC + + false + + + + + RS_OUBRCH + + false + + + + + RS_OUSTAT + + false + + + + + RS_OUCMCN + + false + + + + + RS_OUCURR + + false + + + + + RS_OUOPDT + + false + + + + + RS_OUBAL + + false + + + + + RS_OUDIST + + false + + + + + RS_OUCLDT + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAG2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAG2_001_Dapi.xml new file mode 100644 index 0000000..7a967eb --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAG2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAG2 + 001 + DEVL + + + HUB + MWFAG2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAIL_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAIL_001.xml new file mode 100644 index 0000000..8e0965f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAIL_001.xml @@ -0,0 +1,604 @@ + + + + + HUB + MWFAIL + 001 + active + hub API:MWFAIL + + + + + Data + + + + RS_OURCDTYPE + + false + + + + + RS_OUAPPL + + false + + + + + RS_OUTRANTYP + + false + + + + + RS_OUSUBTYP + + false + + + + + RS_OUDESC + + false + + + + + RS_OUTYPE + + false + + + + + RS_OUCRCCNT + + false + + + + + RS_OUACCT + + false + + + + + RS_OUBRCH + + false + + + + + RS_OUXREL + + false + + + + + RS_OUCURR + + false + + + + + RS_OUBAL + + false + + + + + RS_OUIODL + + false + + + + + RS_OUOPDT + + false + + + + + RS_OUDESC_1 + + false + + + + + RS_OUEMN1_1 + + false + + + + + RS_OULPOS_1 + + false + + + + + RS_OULATM_1 + + false + + + + + RS_OUDESC_2 + + false + + + + + RS_OUENM1_2 + + false + + + + + RS_OULPOS_2 + + false + + + + + RS_OULATM_2 + + false + + + + + RS_OUCDNO_2 + + false + + + + + RS_OUCDSTAT_2 + + false + + + + + RS_OUCEXD_2 + + false + + + + + RS_OULMTAMTS_3 + + false + + + + + RS_OUTIENR_3 + + false + + + + + RS_OUCRTDTE_3 + + false + + + + + RS_TYPEUFO + + false + + + + + RS_LOGO_2 + + false + + + + + RS_OUACEX + + false + + + + + RS_OUAVB + + false + + + + + RS_SPICIUCET + + false + + + + + RS_POPLATKOVYPLAN + + false + + + + + RS_TERMTV + + false + + + + + RS_NAZEVUCTU + + false + + + + + RS_OUCENS + + false + + + + + RS_OUCDNO_2_MASK + + false + + + + + RS_IDENTIFIKATORUCTU + + false + + + + + RS_SPRAVAREMEDIALEM + + false + + + + + + false + + + + + + + Data + + + + RS_OURCDTYPE + + false + + + + + RS_OUAPPL + + false + + + + + RS_OUTRANTYP + + false + + + + + RS_OUSUBTYP + + false + + + + + RS_OUDESC + + false + + + + + RS_OUTYPE + + false + + + + + RS_OUCRCCNT + + false + + + + + RS_OUACCT + + false + + + + + RS_OUBRCH + + false + + + + + RS_OUXREL + + false + + + + + RS_OUCURR + + false + + + + + RS_OUBAL + + false + + + + + RS_OUIODL + + false + + + + + RS_OUOPDT + + false + + + + + RS_OUDESC_1 + + false + + + + + RS_OUEMN1_1 + + false + + + + + RS_OULPOS_1 + + false + + + + + RS_OULATM_1 + + false + + + + + RS_OUDESC_2 + + false + + + + + RS_OUENM1_2 + + false + + + + + RS_OULPOS_2 + + false + + + + + RS_OULATM_2 + + false + + + + + RS_OUCDNO_2 + + false + + + + + RS_OUCDSTAT_2 + + false + + + + + RS_OUCEXD_2 + + false + + + + + RS_OULMTAMTS_3 + + false + + + + + RS_OUTIENR_3 + + false + + + + + RS_OUCRTDTE_3 + + false + + + + + RS_TYPEUFO + + false + + + + + RS_LOGO_2 + + false + + + + + RS_OUACEX + + false + + + + + RS_OUAVB + + false + + + + + RS_SPICIUCET + + false + + + + + RS_POPLATKOVYPLAN + + false + + + + + RS_TERMTV + + false + + + + + RS_NAZEVUCTU + + false + + + + + RS_OUCENS + + false + + + + + RS_OUCDNO_2_MASK + + false + + + + + RS_IDENTIFIKATORUCTU + + false + + + + + RS_SPRAVAREMEDIALEM + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAIL_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAIL_001_Dapi.xml new file mode 100644 index 0000000..66eeffa --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAIL_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAIL + 001 + TEST + + + HUB + MWFAIL + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_502.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_502.xml new file mode 100644 index 0000000..f90e1b7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_502.xml @@ -0,0 +1,41 @@ + + + + HUB + MWFAJ2 + 502 + active + hub API:MWFAJ2 + false + + + + + ID_Navrh + + false + + false + + + + RS_Obrazovka + + false + + false + + + + RS_Stav + + false + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_502_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_502_Dapi.xml new file mode 100644 index 0000000..54a5d4d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_502_Dapi.xml @@ -0,0 +1,28 @@ + + + + + MWFAJ2 + 502 + TEST + + HUB + MWFAJ2 + 502 + + 60 + INPUT_WITH_REPLY + + 4 + 60 + UFO.HUB.INP + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_793.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_793.xml new file mode 100644 index 0000000..735842f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_793.xml @@ -0,0 +1,41 @@ + + + + HUB + MWFAJ2 + 793 + active + hub API:MWFAJ2 + false + + + + + ID_Navrh + + false + + false + + + + RS_Obrazovka + + false + + false + + + + RS_Stav + + false + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_793_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_793_Dapi.xml new file mode 100644 index 0000000..53bd2df --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAJ2_793_Dapi.xml @@ -0,0 +1,28 @@ + + + + + MWFAJ2 + 793 + TEST + + HUB + MWFAJ2 + 793 + + 60 + INPUT_WITH_REPLY + + 4 + 60 + UFO.HUB.INP + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAO1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAO1_001.xml new file mode 100644 index 0000000..8b59207 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAO1_001.xml @@ -0,0 +1,185 @@ + + + + + HUB + MWFAO1 + 001 + active + hub API:MWFAO1 + + + + + CIF + + false + + + + + ICO + + false + + + + + PrivatniBankerFlag + + false + + + + + RC + + false + + + + + SRC_SYS_ID + + false + + + + + TypOsoby + + false + + + + + TypVazby + + false + + + + + + + BITSFlag + + false + + + + + FXToolFlag + + false + + + + + IDSegmentu + + false + + + + + MAFlag + + false + + + + + MAStav + + false + + + + + OMAdresa + + false + + + + + OMNazev + + false + + + + + PBFlag + + false + + + + + PrivatniBankerJmeno + + false + + + + + PrivatniBankerOM + + false + + + + + PrivatniBankerPrijmeni + + false + + + + + PrivatniBankerSSO + + false + + + + + PrivatniBankerTelefon + + false + + + + + SegmentID + + false + + + + + VIPFlag + + false + + + + + ZahranicniObchodFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAO1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAO1_001_Dapi.xml new file mode 100644 index 0000000..37c9ed6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAO1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAO1 + 001 + DEVL + + + HUB + MWFAO1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAS5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAS5_001.xml new file mode 100644 index 0000000..57fbd78 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAS5_001.xml @@ -0,0 +1,1067 @@ + + + + + HUB + MWFAS5 + 001 + active + hub API:MWFAS5 + + + + + CisloKarty + + false + + + + + DataJenZVSN + + false + + + + + + + AVON + + false + + + + + AktivaceKarty + + false + + + + + BlokaceSmlouvy + + false + + + + + BlokaceSmlouvy2 + + false + + + + + CCKAktualniDluznost + + false + + + + + CCKBlokace101 + + false + + + + + CCKDatumOdlokovani + + false + + + + + CCKDatumZmenyAktDluznosti + + false + + + + + CCKDatumZmenyBlokace101 + + false + + + + + CCKDatumZmenyPovoleniTransakci + + false + + + + + CCKHistorickaDluznost + + false + + + + + CCKTransakcePovoleny + + false + + + + + CelkemDoplatit + + false + + + + + Chip + + false + + + + + CisloBU + + false + + + + + CisloInstantniKarty + + false + + + + + CisloInstantniKartyMask + + false + + + + + CisloKaretnihoUctu + + false + + + + + CisloKaretnihoUctuMask + + false + + + + + CisloKarty + + false + + + + + CisloKartyMask + + false + + + + + CisloOKSmlouvy + + false + + + + + CisloSmlouvy + + false + + + + + DatumAktivaceIVR + + false + + + + + DatumAutomatickehoZruseniKarty + + false + + + + + DatumBlokace + + false + + + + + DatumBlokaceSmlouvy + + false + + + + + DatumBlokaceSmlouvy2 + + false + + + + + DatumExpiraceKarty + + false + + + + + DatumExpiraceKartyFull + + false + + + + + DatumExpiraceMinuleKarty + + false + + + + + DatumMoznehoZruseniBU + + false + + + + + DatumOdblokovani + + false + + + + + DatumOdeslaniPoslednihoVypisu + + false + + + + + DatumOtevreniKaretnihoUctu + + false + + + + + DatumPodpisuSmlouvy + + false + + + + + DatumPosledniSplatky + + false + + + + + DatumPosledniZmeny + + false + + + + + DatumPoslednihoVypisu + + false + + + + + DatumPrijetiNaPodatelnu + + false + + + + + DatumPristihoVypisu + + false + + + + + DatumSplatnosti + + false + + + + + DatumVydaniKarty + + false + + + + + DenGenerovaniVypisu + + false + + + + + DisponibilniZustatek + + false + + + + + DisponibilniZustatekHotovost + + false + + + + + DodatkovaKarta + + false + + + + + DruhKarty + + false + + + + + DrzitelDatumNarozeni + + false + + + + + DrzitelHeslo + + false + + + + + DrzitelHeslo_PriznakZmeny + + false + + + + + DrzitelJmeno + + false + + + + + DrzitelRC + + false + + + + + DrzitelTelefon + + false + + + + + DrzitelTelefonMobilni + + false + + + + + DrzitelTelefonMobilniPredvolba + + false + + + + + DrzitelTelefonPredvolba + + false + + + + + DrzitelTelefonZamestnani + + false + + + + + DrzitelTelefonZamestnaniPredvolba + + false + + + + + DuvodBlokace + + false + + + + + Email + + false + + + + + ExpiraceFlag + + false + + + + + FLIP2 + + false + + + + + FLIPKarta + + false + + + + + FLIPSK + + false + + + + + Firma + + false + + + + + Internet + + false + + + + + KodBanky + + false + + + + + KodKarty + + false + + + + + LimitBankomat + + false + + + + + LimitMOTOInternet + + false + + + + + LimitObchodnik + + false + + + + + LogoPuvodni + + false + + + + + MSISDN + + false + + + + + MajitelJmeno + + false + + + + + MajitelOP + + false + + + + + MajitelRC + + false + + + + + MaxPocetTransakciDen + + false + + + + + MaxPocetTransakciDenATM + + false + + + + + MaxPocetTransakciDenIMT + + false + + + + + MinimalniSplatka + + false + + + + + MultibrandStatus + + false + + + + + PCTTabulka + + false + + + + + PlasticID + + false + + + + + PocetNedorucenychVypisu + + false + + + + + PresnyDatumExpiraceKarty + + false + + + + + ProvadenaAkce + + false + + + + + RetenceObrat + + false + + + + + RetenceObratStara + + false + + + + + RocniObrat + + false + + + + + SmartPINAnoNe + + false + + + + + SmartPINNumber + + false + + + + + SmartPINPozadavek + + false + + + + + SpecifickySymbol + + false + + + + + SplatnaMinimalniSplatka + + false + + + + + StavDodani + + false + + + + + StavKarty + + false + + + + + StavSmlouvy + + false + + + + + StavVycerpanehoRamce + + false + + + + + TACO + + false + + + + + TACP + + false + + + + + TAMesto + + false + + + + + TAPSC + + false + + + + + TAUlice + + false + + + + + TypKarty + + false + + + + + TypKartyLogo + + false + + + + + TypKarty_Final + + false + + + + + TypLimituATM + + false + + + + + TypLimituRetail + + false + + + + + UrokovaSazbaBankomat + + false + + + + + UrokovaSazbaObchodnik + + false + + + + + UrokovaSazbaPriznak + + false + + + + + UrokovaSazbaZvyhodnenaEndDate + + false + + + + + UrokovaSazbaZvyhodnenaStartDate + + false + + + + + UverovyRamec + + false + + + + + UverovyRamecHotovost + + false + + + + + VyberMimoEU + + false + + + + + VysePosledniSplatky + + false + + + + + VysePrecerpaneCastky + + false + + + + + VytlaceneJmeno + + false + + + + + VytlaceneJmeno2 + + false + + + + + ZACO + + false + + + + + ZACP + + false + + + + + ZAMesto + + false + + + + + ZAPINCO + + false + + + + + ZAPINCP + + false + + + + + ZAPINObec + + false + + + + + ZAPINPSC + + false + + + + + ZAPINPosta + + false + + + + + ZAPINUlice + + false + + + + + ZAPSC + + false + + + + + ZAPosta + + false + + + + + ZAUlice + + false + + + + + ZAZeme + + false + + + + + ZamCO + + false + + + + + ZamCP + + false + + + + + ZamICO + + false + + + + + ZamMesto + + false + + + + + ZamNazev + + false + + + + + ZamPSC + + false + + + + + ZamUlice + + false + + + + + ZpusobDistribucePIN + + false + + + + + ZpusobDistribuceVypisu + + false + + + + + ZpusobRuseni + + false + + + + + ZpusobUhrady + + false + + + + + ZpusobUhradyJednoduchy + + false + + + + + Zvyhodneni + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAS5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAS5_001_Dapi.xml new file mode 100644 index 0000000..7c32219 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAS5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAS5 + 001 + DEVL + + + HUB + MWFAS5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAU2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAU2_001.xml new file mode 100644 index 0000000..b43a8d8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAU2_001.xml @@ -0,0 +1,850 @@ + + + + + HUB + MWFAU2 + 001 + active + hub API:MWFAU2 + + + + + AktivacniHeslo + + false + + + + + AutorizacniLimit_Bezhotovostni + + false + + + + + AutorizacniLimit_Hotovost + + false + + + + + AutorizacniLimit_Internet + + false + + + + + AutorizacniLimit_Procento + + false + + + + + AutorizacniLimit_Typ + + false + + + + + AvonLadyID + + false + + + + + AvonLadyIDDop + + false + + + + + BUCisloUctu + + false + + + + + BUKodBanky + + false + + + + + BUMena + + false + + + + + BUPeriodaVypisu + + false + + + + + BUProduktKod + + false + + + + + BUSpecifickySymbol + + false + + + + + BUVariabilniSymbol + + false + + + + + BUZalozitNovyUcet + + false + + + + + BU_KEY + + false + + + + + Benefit + + false + + + + + BezPritomnostiKlienta + + false + + + + + BrandKarty + + false + + + + + CastkaPrvnihoCerpani + + false + + + + + CelkovaSplatnaCastka + + false + + + + + Channel_ID + + false + + + + + CisloPojisteniING + + false + + + + + CisloSmlouvyVarianty + + false + + + + + CobrandKarty + + false + + + + + DatumPodpisuZadosti + + false + + + + + DatumPodpisuZadosti_Kuryr + + false + + + + + DatumPrepoctuUroku + + false + + + + + DatumPrvniSplatky + + false + + + + + DenInkasniSplatky + + false + + + + + DenZuctovacihoObdobi + + false + + + + + DesignKarty + + false + + + + + DruhBusinessu + + false + + + + + FormLockStatus + + false + + + + + IB_ACCES_TYPE + + false + + + + + IB_SIGN_TYPE + + false + + + + + IDXselloveKampane + + false + + + + + IP_ADDRESS + + false + + + + + IdVLSBalicku + + false + + + + + IndexLinearnihoSplaceni + + false + + + + + InfolimitTyp + + false + + + + + Infolimit_ZavaznyPlatnost + + false + + + + + Infolimit_ZavaznyVyse + + false + + + + + KodProduktu + + false + + + + + KodProduktuSales + + false + + + + + Mena + + false + + + + + MesicniSplatka + + false + + + + + MigraceBU_Flag + + false + + + + + MinProcentoSplatky + + false + + + + + ObchodniMistoKod + + false + + + + + OdkladSplatek + + false + + + + + PocetSplatek + + false + + + + + Pojisteni + + false + + + + + PojisteniPoplatek + + false + + + + + PojisteniProtiZneuziti + + false + + + + + PojisteniVycerpaneCastky + + false + + + + + PoplatkovyPlan + + false + + + + + Posledni4Cislice + + false + + + + + PovoleniInetTransakci + + false + + + + + PracovnikMTSID + + false + + + + + PrimarniUrednikID + + false + + + + + PrimarniUrednikJmeno + + false + + + + + PrimarniUrednikPrijmeni + + false + + + + + PrimarniUrednikSSO + + false + + + + + PrimarniUrednik_KEY + + false + + + + + PritomnyVsechnyOsoby + + false + + + + + PromoAkce + + false + + + + + RPSN + + false + + + + + RazitkoObchodniZastupce + + false + + + + + RetentcniProgramFlag + + false + + + + + RocniUrokovaSazbaCASH + + false + + + + + SouhlasOPKCestovniPojisteniFlag + + false + + + + + SouhlasOPKFlag + + false + + + + + SouhlasOPKPojisteniSchopnostiPlatit + + false + + + + + SouhlasOPKZpusobUhradySplatek + + false + + + + + TechnologieKarty + + false + + + + + TypAsistencniSluzby + + false + + + + + TypFormulare + + false + + + + + TypKarty + + false + + + + + TypSlevy + + false + + + + + TypSplaceni + + false + + + + + UUMenaTopUP + + false + + + + + UUTopUPCislo + + false + + + + + UUTopUP_KEY + + false + + + + + UcelUveru + + false + + + + + UrednikFunkce + + false + + + + + UrednikID + + false + + + + + UrednikJmeno + + false + + + + + UrednikPrijmeni + + false + + + + + UrednikSSO + + false + + + + + Urednik_KEY + + false + + + + + UrokovaSazba + + false + + + + + VariantaTyp + + false + + + + + Varianta_KEY + + false + + + + + VelikostZalohy + + false + + + + + VernostniProgram + + false + + + + + VypisKeKonciMesice_Flag + + false + + + + + VysePosledniSplatky + + false + + + + + VyseUpsellu + + false + + + + + VyseUveru + + false + + + + + WEB_BANNER + + false + + + + + WEB_PARTNER_ID + + false + + + + + ZadostKanalPorizeni + + false + + + + + ZadostSubtyp + + false + + + + + ZadostTyp + + false + + + + + Zadost_KEY + + false + + + + + ZboziCena + + false + + + + + ZboziDruh + + false + + + + + ZpusobDistribucePIN + + false + + + + + ZpusobDistribuceVypisu + + false + + + + + ZpusobUhradySplatek + + false + + + + + + + BU_KEY + + false + + + + + PrimarniUrednik_KEY + + false + + + + + UUTopUP_KEY + + false + + + + + Urednik_KEY + + false + + + + + Varianta_KEY + + false + + + + + Zadost_KEY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAU2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAU2_001_Dapi.xml new file mode 100644 index 0000000..8bf4193 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAU2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAU2 + 001 + DEVL + + + HUB + MWFAU2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAU9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAU9_001.xml new file mode 100644 index 0000000..289df19 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAU9_001.xml @@ -0,0 +1,2277 @@ + + + + + HUB + MWFAU9 + 001 + active + hub API:MWFAU9 + + + + + Data + + + + RS_INST_PT_KEY + + false + + + + + RS_KLIENTROLE + + false + + + + + RS_PORADIZADATELE + + false + + + + + RS_RODNECISLO + + false + + + + + RS_POHLAVI + + false + + + + + RS_TITULPRED + + false + + + + + RS_JMENOKRESTNI + + false + + + + + RS_DRUHEJMENO + + false + + + + + RS_PRIJMENI + + false + + + + + RS_RODNEPRIJMENI + + false + + + + + RS_TITULZA + + false + + + + + RS_OSOBNIDOKLAD1_KEY + + false + + + + + RS_OSOBNIDOKLAD1TYP + + false + + + + + RS_OSOBNIDOKLAD1CISLO + + false + + + + + RS_OSOBNIDOKLAD1PLATNOSTDO + + false + + + + + RS_OSOBNIDOKLAD2_KEY + + false + + + + + RS_OSOBNIDOKLAD2TYP + + false + + + + + RS_OSOBNIDOKLAD2CISLO + + false + + + + + RS_OSOBNIDOKLAD2PLATNOSTDO + + false + + + + + RS_STATNIPRISLUSNOST + + false + + + + + RS_REZIDENCEFLAG + + false + + + + + RS_EVIDENCNICISLO + + false + + + + + RS_KLIENTTYPMKT + + false + + + + + RS_KLIENTVZTAKKZADATELI + + false + + + + + RS_SPOLECNADOMACNOSTFLAG + + false + + + + + RS_ADRKOR_ADRESAT + + false + + + + + RS_ADRKOR_KEY + + false + + + + + RS_ADRKOR_ULICE + + false + + + + + RS_ADRKOR_CP + + false + + + + + RS_ADRKOR_CO + + false + + + + + RS_ADRKOR_OBEC + + false + + + + + RS_ADRKOR_PSC + + false + + + + + RS_ADRKOR_POSTA + + false + + + + + RS_TELEFONKONTAKTNI_KEY + + false + + + + + RS_TELEFONKONTAKTNI + + false + + + + + RS_ADRKOR_ZEME + + false + + + + + RS_ADRKOR_DOKLADTYP + + false + + + + + RS_ADRKOR_DOKLADDATUMVYSTAVENI + + false + + + + + RS_ADRKOR_DOKLAD_KEY + + false + + + + + RS_TELEFONMOBILNI_KEY + + false + + + + + RS_TELEFONMOBILNI + + false + + + + + RS_ADRTRV_ADRESAT + + false + + + + + RS_ADRTRV_KEY + + false + + + + + RS_ADRTRV_ULICE + + false + + + + + RS_ADRTRV_CP + + false + + + + + RS_ADRTRV_CO + + false + + + + + RS_ADRTRV_OBEC + + false + + + + + RS_ADRTRV_PSC + + false + + + + + RS_ADRTRV_POSTA + + false + + + + + RS_ADRTRV_ZEME + + false + + + + + RS_TELEFONPEVNA_KEY + + false + + + + + RS_TELEFONPEVNA + + false + + + + + RS_EMAIL_KEY + + false + + + + + RS_EMAIL + + false + + + + + RS_DATUMNASTEHOVANIROK + + false + + + + + RS_STAVRODINNY + + false + + + + + RS_DRUHBYDLENI + + false + + + + + RS_VZDELANI + + false + + + + + RS_PRACOVNIPOMER + + false + + + + + RS_DATUMPRACOVNIPOMERDO + + false + + + + + RS_ZAMNAZEV + + false + + + + + RS_ZAMICO + + false + + + + + RS_ZAMZEME + + false + + + + + RS_ZAMADR_ADRESAT + + false + + + + + RS_ZAMADR_KEY + + false + + + + + RS_ZAMADR_ULICE + + false + + + + + RS_ZAMADR_CP + + false + + + + + RS_ZAMADR_CO + + false + + + + + RS_ZAMADR_OBEC + + false + + + + + RS_ZAMADR_PSC + + false + + + + + RS_ZAMADR_POSTA + + false + + + + + RS_TELEFONZAMKONTAKTNI_KEY + + false + + + + + RS_TELEFONZAMKONTAKTNI + + false + + + + + RS_TELEFONZAMMOBIL_KEY + + false + + + + + RS_TELEFONZAMMOBIL + + false + + + + + RS_ZAMADR_ZEME + + false + + + + + RS_POVOLANI + + false + + + + + RS_DATUMZAMOD + + false + + + + + RS_CISTYMESICPRIJEM3M + + false + + + + + RS_HRUBYROCNIPRIJEM + + false + + + + + RS_ZAKLADDANE + + false + + + + + RS_ZAKLADDANEROK + + false + + + + + RS_JINEMESSPLATKY + + false + + + + + RS_POCETVYZIVOVANYCHOSOB + + false + + + + + RS_CELKOVYPRIJEMDOM + + false + + + + + RS_SRAZKYZEMZDY + + false + + + + + RS_POCETPOTVRZENIPRIJMU + + false + + + + + RS_CIF + + false + + + + + RS_VZTAHKLIENTAKBANCE + + false + + + + + RS_DATUMPODPISU101 + + false + + + + + RS_SOUHLAS101FLAG + + false + + + + + RS_SOUHLASECBSTAV + + false + + + + + RS_ICO + + false + + + + + RS_MENA + + false + + + + + RS_KLIENTSMAZFLAG + + false + + + + + RS_GE_EMPLOYEE_FLAG + + false + + + + + RS_DATUMNAROZENI + + false + + + + + RS_MISTONAROZENI + + false + + + + + RS_VZTAHKAVONU + + false + + + + + RS_OSOBNIDOKLAD2_ZEME + + false + + + + + RS_TYPBYZNYSU + + false + + + + + RS_OSOBNIDOKLAD1_ZEME + + false + + + + + RS_ZAHRANICNIZAM + + false + + + + + RS_ADRKOR_OVERENOKURYREM + + false + + + + + RS_ADRTRV_OVERENOKURYREM + + false + + + + + RS_ZAMADR_OVERENOKURYREM + + false + + + + + RS_TYPPOBYTU + + false + + + + + RS_CISTYMESICPRIJEM3M_KEY + + false + + + + + RS_ZAKLADDANE_KEY + + false + + + + + RS_HRUBYROCNIPRIJEM_KEY + + false + + + + + RS_CELKOVYPRIJEMDOM_KEY + + false + + + + + RS_KLIENTTYP + + false + + + + + RS_ZIVLISTFLAG + + false + + + + + RS_BEZDLFLAG + + false + + + + + RS_ADRKOR_DOKLADPROHLASENIFLAG + + false + + + + + RS_ZALOHA2 + + false + + + + + RS_ZALOHA1 + + false + + + + + RS_ZIVLIST_RQDOC_KEY + + false + + + + + RS_ZIVLIST_DOC_KEY + + false + + + + + RS_ADRKOR_DOKLAD_RQDOC_KEY + + false + + + + + RS_BEZDL_DOC_KEY + + false + + + + + RS_BEZDL_DATUMVYSTAVENI + + false + + + + + RS_ZIVLIST_DATUMVYSTAVENI + + false + + + + + RS_ADRKOR_DOKLADSMAZFLAG + + false + + + + + RS_ZIVLIST_SMAZFLAG + + false + + + + + RS_BEZDL_SMAZFLAG + + false + + + + + RS_BEZDL_RQDOC_KEY + + false + + + + + RS_DATUMNASTEHOVANIDATUM + + false + + + + + RS_POVOLANITYP + + false + + + + + RS_DUVODROZHODNUTITEXT + + false + + + + + RS_DUVODROZHODNUTICHYBAFLAG + + false + + + + + RS_DANOVEPRIZNANI_DOKLADSMAZFLAG + + false + + + + + RS_DANOVEPRIZNANI_DOKLAD_RQDOC_KEY + + false + + + + + RS_DANOVEPRIZNANI_DOKLADDATUMVYSTAVENI + + false + + + + + RS_DANOVEPRIZNANI_DOKLAD_KEY + + false + + + + + RS_DANOVEPRIZNANI_DOKLADFLAG + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_KEY + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_RQDOC_KEY + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_SMAZFLAG + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_TYP + + false + + + + + RS_EVIDENCNICISLO_DUVOD + + false + + + + + RS_EVIDENCNICISLO_KOMENTAR + + false + + + + + RS_STAVRODINNYOVERENI + + false + + + + + RS_NFC_MSISDN + + false + + + + + RS_NFC_MSISDN_KEY + + false + + + + + RS_ZUZENESJM + + false + + + + + RS_RODINNYZAVOD + + false + + + + + RS_RODINNYZAVODPODIL + + false + + + + + RS_OSTATNIZIVOTNINAKLADY + + false + + + + + RS_VYDATKARTUKUVERU + + false + + + + + RS_PRIJMY_RADEK101 + + false + + + + + RS_ZKUSEBNIDOBA + + false + + + + + RS_VYPOVEDNILHUTA + + false + + + + + RS_BIRTH_CNTRY_ID + + false + + + + + RS_TAX_CR_ONLY_FLAG + + false + + + + + RS_VYDAJENAVYZIVOVANEOSOBY + + false + + + + + RS_PRIJMYNAVYZIVOVANEOSOBY + + false + + + + + RS_DANZALONSKYROK + + false + + + + + + false + + + + + Pocet + + false + + + + + Zadost_KEY + + false + + + + + + + Data + + + + RS_INST_PT_KEY + + false + + + + + RS_KLIENTROLE + + false + + + + + RS_PORADIZADATELE + + false + + + + + RS_RODNECISLO + + false + + + + + RS_POHLAVI + + false + + + + + RS_TITULPRED + + false + + + + + RS_JMENOKRESTNI + + false + + + + + RS_DRUHEJMENO + + false + + + + + RS_PRIJMENI + + false + + + + + RS_RODNEPRIJMENI + + false + + + + + RS_TITULZA + + false + + + + + RS_OSOBNIDOKLAD1_KEY + + false + + + + + RS_OSOBNIDOKLAD1TYP + + false + + + + + RS_OSOBNIDOKLAD1CISLO + + false + + + + + RS_OSOBNIDOKLAD1PLATNOSTDO + + false + + + + + RS_OSOBNIDOKLAD2_KEY + + false + + + + + RS_OSOBNIDOKLAD2TYP + + false + + + + + RS_OSOBNIDOKLAD2CISLO + + false + + + + + RS_OSOBNIDOKLAD2PLATNOSTDO + + false + + + + + RS_STATNIPRISLUSNOST + + false + + + + + RS_REZIDENCEFLAG + + false + + + + + RS_EVIDENCNICISLO + + false + + + + + RS_KLIENTTYPMKT + + false + + + + + RS_KLIENTVZTAKKZADATELI + + false + + + + + RS_SPOLECNADOMACNOSTFLAG + + false + + + + + RS_ADRKOR_ADRESAT + + false + + + + + RS_ADRKOR_KEY + + false + + + + + RS_ADRKOR_ULICE + + false + + + + + RS_ADRKOR_CP + + false + + + + + RS_ADRKOR_CO + + false + + + + + RS_ADRKOR_OBEC + + false + + + + + RS_ADRKOR_PSC + + false + + + + + RS_ADRKOR_POSTA + + false + + + + + RS_TELEFONKONTAKTNI_KEY + + false + + + + + RS_TELEFONKONTAKTNI + + false + + + + + RS_ADRKOR_ZEME + + false + + + + + RS_ADRKOR_DOKLADTYP + + false + + + + + RS_ADRKOR_DOKLADDATUMVYSTAVENI + + false + + + + + RS_ADRKOR_DOKLAD_KEY + + false + + + + + RS_TELEFONMOBILNI_KEY + + false + + + + + RS_TELEFONMOBILNI + + false + + + + + RS_ADRTRV_ADRESAT + + false + + + + + RS_ADRTRV_KEY + + false + + + + + RS_ADRTRV_ULICE + + false + + + + + RS_ADRTRV_CP + + false + + + + + RS_ADRTRV_CO + + false + + + + + RS_ADRTRV_OBEC + + false + + + + + RS_ADRTRV_PSC + + false + + + + + RS_ADRTRV_POSTA + + false + + + + + RS_ADRTRV_ZEME + + false + + + + + RS_TELEFONPEVNA_KEY + + false + + + + + RS_TELEFONPEVNA + + false + + + + + RS_EMAIL_KEY + + false + + + + + RS_EMAIL + + false + + + + + RS_DATUMNASTEHOVANIROK + + false + + + + + RS_STAVRODINNY + + false + + + + + RS_DRUHBYDLENI + + false + + + + + RS_VZDELANI + + false + + + + + RS_PRACOVNIPOMER + + false + + + + + RS_DATUMPRACOVNIPOMERDO + + false + + + + + RS_ZAMNAZEV + + false + + + + + RS_ZAMICO + + false + + + + + RS_ZAMZEME + + false + + + + + RS_ZAMADR_ADRESAT + + false + + + + + RS_ZAMADR_KEY + + false + + + + + RS_ZAMADR_ULICE + + false + + + + + RS_ZAMADR_CP + + false + + + + + RS_ZAMADR_CO + + false + + + + + RS_ZAMADR_OBEC + + false + + + + + RS_ZAMADR_PSC + + false + + + + + RS_ZAMADR_POSTA + + false + + + + + RS_TELEFONZAMKONTAKTNI_KEY + + false + + + + + RS_TELEFONZAMKONTAKTNI + + false + + + + + RS_TELEFONZAMMOBIL_KEY + + false + + + + + RS_TELEFONZAMMOBIL + + false + + + + + RS_ZAMADR_ZEME + + false + + + + + RS_POVOLANI + + false + + + + + RS_DATUMZAMOD + + false + + + + + RS_CISTYMESICPRIJEM3M + + false + + + + + RS_HRUBYROCNIPRIJEM + + false + + + + + RS_ZAKLADDANE + + false + + + + + RS_ZAKLADDANEROK + + false + + + + + RS_JINEMESSPLATKY + + false + + + + + RS_POCETVYZIVOVANYCHOSOB + + false + + + + + RS_CELKOVYPRIJEMDOM + + false + + + + + RS_SRAZKYZEMZDY + + false + + + + + RS_POCETPOTVRZENIPRIJMU + + false + + + + + RS_CIF + + false + + + + + RS_VZTAHKLIENTAKBANCE + + false + + + + + RS_DATUMPODPISU101 + + false + + + + + RS_SOUHLAS101FLAG + + false + + + + + RS_SOUHLASECBSTAV + + false + + + + + RS_ICO + + false + + + + + RS_MENA + + false + + + + + RS_KLIENTSMAZFLAG + + false + + + + + RS_GE_EMPLOYEE_FLAG + + false + + + + + RS_DATUMNAROZENI + + false + + + + + RS_MISTONAROZENI + + false + + + + + RS_VZTAHKAVONU + + false + + + + + RS_OSOBNIDOKLAD2_ZEME + + false + + + + + RS_TYPBYZNYSU + + false + + + + + RS_OSOBNIDOKLAD1_ZEME + + false + + + + + RS_ZAHRANICNIZAM + + false + + + + + RS_ADRKOR_OVERENOKURYREM + + false + + + + + RS_ADRTRV_OVERENOKURYREM + + false + + + + + RS_ZAMADR_OVERENOKURYREM + + false + + + + + RS_TYPPOBYTU + + false + + + + + RS_CISTYMESICPRIJEM3M_KEY + + false + + + + + RS_ZAKLADDANE_KEY + + false + + + + + RS_HRUBYROCNIPRIJEM_KEY + + false + + + + + RS_CELKOVYPRIJEMDOM_KEY + + false + + + + + RS_KLIENTTYP + + false + + + + + RS_ZIVLISTFLAG + + false + + + + + RS_BEZDLFLAG + + false + + + + + RS_ADRKOR_DOKLADPROHLASENIFLAG + + false + + + + + RS_ZALOHA2 + + false + + + + + RS_ZALOHA1 + + false + + + + + RS_ZIVLIST_RQDOC_KEY + + false + + + + + RS_ZIVLIST_DOC_KEY + + false + + + + + RS_ADRKOR_DOKLAD_RQDOC_KEY + + false + + + + + RS_BEZDL_DOC_KEY + + false + + + + + RS_BEZDL_DATUMVYSTAVENI + + false + + + + + RS_ZIVLIST_DATUMVYSTAVENI + + false + + + + + RS_ADRKOR_DOKLADSMAZFLAG + + false + + + + + RS_ZIVLIST_SMAZFLAG + + false + + + + + RS_BEZDL_SMAZFLAG + + false + + + + + RS_BEZDL_RQDOC_KEY + + false + + + + + RS_DATUMNASTEHOVANIDATUM + + false + + + + + RS_POVOLANITYP + + false + + + + + RS_DUVODROZHODNUTITEXT + + false + + + + + RS_DUVODROZHODNUTICHYBAFLAG + + false + + + + + RS_DANOVEPRIZNANI_DOKLADSMAZFLAG + + false + + + + + RS_DANOVEPRIZNANI_DOKLAD_RQDOC_KEY + + false + + + + + RS_DANOVEPRIZNANI_DOKLADDATUMVYSTAVENI + + false + + + + + RS_DANOVEPRIZNANI_DOKLAD_KEY + + false + + + + + RS_DANOVEPRIZNANI_DOKLADFLAG + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_KEY + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_RQDOC_KEY + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_SMAZFLAG + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_TYP + + false + + + + + RS_EVIDENCNICISLO_DUVOD + + false + + + + + RS_EVIDENCNICISLO_KOMENTAR + + false + + + + + RS_STAVRODINNYOVERENI + + false + + + + + RS_NFC_MSISDN + + false + + + + + RS_NFC_MSISDN_KEY + + false + + + + + RS_ZUZENESJM + + false + + + + + RS_RODINNYZAVOD + + false + + + + + RS_RODINNYZAVODPODIL + + false + + + + + RS_OSTATNIZIVOTNINAKLADY + + false + + + + + RS_VYDATKARTUKUVERU + + false + + + + + RS_PRIJMY_RADEK101 + + false + + + + + RS_ZKUSEBNIDOBA + + false + + + + + RS_VYPOVEDNILHUTA + + false + + + + + RS_BIRTH_CNTRY_ID + + false + + + + + RS_TAX_CR_ONLY_FLAG + + false + + + + + RS_VYDAJENAVYZIVOVANEOSOBY + + false + + + + + RS_PRIJMYNAVYZIVOVANEOSOBY + + false + + + + + RS_DANZALONSKYROK + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAU9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAU9_001_Dapi.xml new file mode 100644 index 0000000..dd9800c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAU9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAU9 + 001 + DEVL + + + HUB + MWFAU9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAV1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAV1_001.xml new file mode 100644 index 0000000..ba97163 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAV1_001.xml @@ -0,0 +1,1189 @@ + + + + + HUB + MWFAV1 + 001 + active + hub API:MWFAV1 + + + + + DuvodRozhodnuti_TypTextu + + false + + + + + INST_PT_KEY_IN + + false + + + + + KlientRole + + false + + + + + VERIF_KONTEXT + + false + + + + + Zadost_KEY + + false + + + + + ZobrazitDuvodRozhodnutiProExpresmana + + false + + + + + + + Data + + + + RS_INST_PT_KEY + + false + + + + + RS_KLIENTROLE + + false + + + + + RS_PORADIZADATELE + + false + + + + + RS_RODNECISLO + + false + + + + + RS_POHLAVI + + false + + + + + RS_TITULPRED + + false + + + + + RS_JMENOKRESTNI + + false + + + + + RS_DRUHEJMENO + + false + + + + + RS_PRIJMENI + + false + + + + + RS_RODNEPRIJMENI + + false + + + + + RS_TITULZA + + false + + + + + RS_OSOBNIDOKLAD1_KEY + + false + + + + + RS_OSOBNIDOKLAD1TYP + + false + + + + + RS_OSOBNIDOKLAD1CISLO + + false + + + + + RS_OSOBNIDOKLAD1PLATNOSTDO + + false + + + + + RS_OSOBNIDOKLAD2_KEY + + false + + + + + RS_OSOBNIDOKLAD2TYP + + false + + + + + RS_OSOBNIDOKLAD2CISLO + + false + + + + + RS_OSOBNIDOKLAD2PLATNOSTDO + + false + + + + + RS_STATNIPRISLUSNOST + + false + + + + + RS_REZIDENCEFLAG + + false + + + + + RS_EVIDENCNICISLO + + false + + + + + RS_KLIENTTYPMKT + + false + + + + + RS_KLIENTVZTAKKZADATELI + + false + + + + + RS_SPOLECNADOMACNOSTFLAG + + false + + + + + RS_ADRKOR_ADRESAT + + false + + + + + RS_ADRKOR_KEY + + false + + + + + RS_ADRKOR_ULICE + + false + + + + + RS_ADRKOR_CP + + false + + + + + RS_ADRKOR_CO + + false + + + + + RS_ADRKOR_OBEC + + false + + + + + RS_ADRKOR_PSC + + false + + + + + RS_ADRKOR_POSTA + + false + + + + + RS_TELEFONKONTAKTNI_KEY + + false + + + + + RS_TELEFONKONTAKTNI + + false + + + + + RS_ADRKOR_ZEME + + false + + + + + RS_ADRKOR_DOKLADTYP + + false + + + + + RS_ADRKOR_DOKLADDATUMVYSTAVENI + + false + + + + + RS_ADRKOR_DOKLAD_KEY + + false + + + + + RS_TELEFONMOBILNI_KEY + + false + + + + + RS_TELEFONMOBILNI + + false + + + + + RS_ADRTRV_ADRESAT + + false + + + + + RS_ADRTRV_KEY + + false + + + + + RS_ADRTRV_ULICE + + false + + + + + RS_ADRTRV_CP + + false + + + + + RS_ADRTRV_CO + + false + + + + + RS_ADRTRV_OBEC + + false + + + + + RS_ADRTRV_PSC + + false + + + + + RS_ADRTRV_POSTA + + false + + + + + RS_ADRTRV_ZEME + + false + + + + + RS_TELEFONPEVNA_KEY + + false + + + + + RS_TELEFONPEVNA + + false + + + + + RS_EMAIL_KEY + + false + + + + + RS_EMAIL + + false + + + + + RS_DATUMNASTEHOVANIROK + + false + + + + + RS_STAVRODINNY + + false + + + + + RS_DRUHBYDLENI + + false + + + + + RS_VZDELANI + + false + + + + + RS_PRACOVNIPOMER + + false + + + + + RS_DATUMPRACOVNIPOMERDO + + false + + + + + RS_ZAMNAZEV + + false + + + + + RS_ZAMICO + + false + + + + + RS_ZAMZEME + + false + + + + + RS_ZAMADR_ADRESAT + + false + + + + + RS_ZAMADR_KEY + + false + + + + + RS_ZAMADR_ULICE + + false + + + + + RS_ZAMADR_CP + + false + + + + + RS_ZAMADR_CO + + false + + + + + RS_ZAMADR_OBEC + + false + + + + + RS_ZAMADR_PSC + + false + + + + + RS_ZAMADR_POSTA + + false + + + + + RS_TELEFONZAMKONTAKTNI_KEY + + false + + + + + RS_TELEFONZAMKONTAKTNI + + false + + + + + RS_TELEFONZAMMOBIL_KEY + + false + + + + + RS_TELEFONZAMMOBIL + + false + + + + + RS_ZAMADR_ZEME + + false + + + + + RS_POVOLANI + + false + + + + + RS_DATUMZAMOD + + false + + + + + RS_CISTYMESICPRIJEM3M + + false + + + + + RS_HRUBYROCNIPRIJEM + + false + + + + + RS_ZAKLADDANE + + false + + + + + RS_ZAKLADDANEROK + + false + + + + + RS_JINEMESSPLATKY + + false + + + + + RS_POCETVYZIVOVANYCHOSOB + + false + + + + + RS_CELKOVYPRIJEMDOM + + false + + + + + RS_SRAZKYZEMZDY + + false + + + + + RS_POCETPOTVRZENIPRIJMU + + false + + + + + RS_CIF + + false + + + + + RS_VZTAHKLIENTAKBANCE + + false + + + + + RS_DATUMPODPISU101 + + false + + + + + RS_SOUHLAS101FLAG + + false + + + + + RS_SOUHLASECBSTAV + + false + + + + + RS_ICO + + false + + + + + RS_MENA + + false + + + + + RS_KLIENTSMAZFLAG + + false + + + + + RS_GE_EMPLOYEE_FLAG + + false + + + + + RS_DATUMNAROZENI + + false + + + + + RS_MISTONAROZENI + + false + + + + + RS_VZTAHKAVONU + + false + + + + + RS_OSOBNIDOKLAD2_ZEME + + false + + + + + RS_TYPBYZNYSU + + false + + + + + RS_OSOBNIDOKLAD1_ZEME + + false + + + + + RS_ZAHRANICNIZAM + + false + + + + + RS_ADRKOR_OVERENOKURYREM + + false + + + + + RS_ADRTRV_OVERENOKURYREM + + false + + + + + RS_ZAMADR_OVERENOKURYREM + + false + + + + + RS_TYPPOBYTU + + false + + + + + RS_CISTYMESICPRIJEM3M_KEY + + false + + + + + RS_ZAKLADDANE_KEY + + false + + + + + RS_HRUBYROCNIPRIJEM_KEY + + false + + + + + RS_CELKOVYPRIJEMDOM_KEY + + false + + + + + RS_KLIENTTYP + + false + + + + + RS_ZIVLISTFLAG + + false + + + + + RS_BEZDLFLAG + + false + + + + + RS_ADRKOR_DOKLADPROHLASENIFLAG + + false + + + + + RS_ZALOHA2 + + false + + + + + RS_ZALOHA1 + + false + + + + + RS_ZIVLIST_RQDOC_KEY + + false + + + + + RS_ZIVLIST_DOC_KEY + + false + + + + + RS_ADRKOR_DOKLAD_RQDOC_KEY + + false + + + + + RS_BEZDL_DOC_KEY + + false + + + + + RS_BEZDL_DATUMVYSTAVENI + + false + + + + + RS_ZIVLIST_DATUMVYSTAVENI + + false + + + + + RS_ADRKOR_DOKLADSMAZFLAG + + false + + + + + RS_ZIVLIST_SMAZFLAG + + false + + + + + RS_BEZDL_SMAZFLAG + + false + + + + + RS_BEZDL_RQDOC_KEY + + false + + + + + RS_DATUMNASTEHOVANIDATUM + + false + + + + + RS_POVOLANITYP + + false + + + + + RS_DUVODROZHODNUTITEXT + + false + + + + + RS_DUVODROZHODNUTICHYBAFLAG + + false + + + + + RS_DANOVEPRIZNANI_DOKLADSMAZFLAG + + false + + + + + RS_DANOVEPRIZNANI_DOKLAD_RQDOC_KEY + + false + + + + + RS_DANOVEPRIZNANI_DOKLADDATUMVYSTAVENI + + false + + + + + RS_DANOVEPRIZNANI_DOKLAD_KEY + + false + + + + + RS_DANOVEPRIZNANI_DOKLADFLAG + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_KEY + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_RQDOC_KEY + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_SMAZFLAG + + false + + + + + RS_POTVRZENIPRIJMU_DOKLAD_TYP + + false + + + + + RS_EVIDENCNICISLO_DUVOD + + false + + + + + RS_EVIDENCNICISLO_KOMENTAR + + false + + + + + RS_STAVRODINNYOVERENI + + false + + + + + RS_NFC_MSISDN + + false + + + + + RS_NFC_MSISDN_KEY + + false + + + + + RS_ZUZENESJM + + false + + + + + RS_RODINNYZAVOD + + false + + + + + RS_RODINNYZAVODPODIL + + false + + + + + RS_OSTATNIZIVOTNINAKLADY + + false + + + + + RS_VYDATKARTUKUVERU + + false + + + + + RS_PRIJMY_RADEK101 + + false + + + + + RS_ZKUSEBNIDOBA + + false + + + + + RS_VYPOVEDNILHUTA + + false + + + + + RS_BIRTH_CNTRY_ID + + false + + + + + RS_TAX_CR_ONLY_FLAG + + false + + + + + RS_VYDAJENAVYZIVOVANEOSOBY + + false + + + + + RS_PRIJMYNAVYZIVOVANEOSOBY + + false + + + + + RS_DANZALONSKYROK + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAV1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAV1_001_Dapi.xml new file mode 100644 index 0000000..f216f54 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAV1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAV1 + 001 + DEVL + + + HUB + MWFAV1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAV3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAV3_001.xml new file mode 100644 index 0000000..8633769 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAV3_001.xml @@ -0,0 +1,629 @@ + + + + + HUB + MWFAV3 + 001 + active + hub API:MWFAV3 + + + + + Kombinace_KEY + + false + + + + + NacistPoplatkyFlag + + false + + + + + VariantaTyp_Filtr + + false + + + + + ZadostOnlineFlag + + false + + + + + Zadost_KEY + + false + + + + + + + Data + + + + RS_DATUMPRVNISPLATKY + + false + + + + + RS_ODKLADSPLATEK + + false + + + + + RS_POJISTENIPOPLATEK + + false + + + + + RS_VYSEUVERU + + false + + + + + RS_VARIANTAZVOLENAFLAG + + false + + + + + RS_MESICNISPLATKA + + false + + + + + RS_UROKOVASAZBA + + false + + + + + RS_VARIANTADOPORUCENAFLAG + + false + + + + + RS_VARIANTATYP + + false + + + + + RS_TERM + + false + + + + + RS_RPSN + + false + + + + + RS_VARIANTA_KEY + + false + + + + + RS_DENINKASNISPLATKY + + false + + + + + RS_KODPRODUKTU + + false + + + + + RS_POJISTENI + + false + + + + + RS_EMBOSSTYP + + false + + + + + RS_COBRANDKARTY + + false + + + + + RS_DESIGNKARTY + + false + + + + + RS_KARTAASOCIACE + + false + + + + + RS_KODPRODUKTUSALES + + false + + + + + RS_VERNOSTNIPROGRAM + + false + + + + + RS_PROMOAKCE + + false + + + + + RS_TYPKARTY + + false + + + + + RS_CISLOSMLOUVYVARIANTY + + false + + + + + RS_VELIKOSTZALOHY + + false + + + + + RS_BRANDKARTY + + false + + + + + RS_POVOLENIINETTRANSAKCI + + false + + + + + RS_AUTORIZACNILIMIT_BEZHOTOVOSTNI + + false + + + + + RS_AUTORIZACNILIMIT_HOTOVOST + + false + + + + + RS_AUTORIZACNILIMIT_TYP + + false + + + + + RS_AUTORIZACNILIMIT_PROCENTO + + false + + + + + RS_MINPROCENTOSPLATKY + + false + + + + + RS_UVEROVYRAMECOD + + false + + + + + RS_UVEROVYRAMECDO + + false + + + + + RS_TYPASISTENCNISLUZBY + + false + + + + + RS_VARIANTADRUH + + false + + + + + RS_ROCNIUROKOVASAZBACASH + + false + + + + + RS_CELKOVASPLATNACASTKA + + false + + + + + RS_VYSEUPSELLU + + false + + + + + RS_PORADIZAVAZKU + + false + + + + + RS_DENZUCTOVACIHOOBDOBI + + false + + + + + RS_POPLATEKOTEVRENI + + false + + + + + RS_POPLATEKBU + + false + + + + + RS_POPLATEKUU + + false + + + + + RS_POPLATEKPRICHOZITRANSKACE + + false + + + + + RS_POPLATEKMVK + + false + + + + + RS_POPLATEKRVK + + false + + + + + RS_TYPVYPOCTUFINA + + false + + + + + RS_FLEXILIMIT + + false + + + + + RS_TYPSPLACENI + + false + + + + + RS_INDEXLINEARNIHOSPLACENI + + false + + + + + RS_KOMBINACE_KEY + + false + + + + + RS_REL_ACC_NUM + + false + + + + + RS_MIN_CR_TURN_PCT + + false + + + + + RS_INCENTIV + + false + + + + + RS_CASTKAPRVNIHOCERPANI + + false + + + + + RS_POPLATKOVYPLAN + + false + + + + + RS_AUTORIZACNILIMIT_INTERNET + + false + + + + + RS_VYSEPOSLEDNISPLATKY + + false + + + + + RS_CERP_VYSEPOSLEDNISPLATKY + + false + + + + + RS_CERP_UROKOVASAZBA + + false + + + + + RS_CERP_RPSN + + false + + + + + RS_CERP_CELKOVASPLATNACASTKA + + false + + + + + RS_BONUS_PERIODAVYPLACENIBONUSU + + false + + + + + RS_BONUS_CASTKA + + false + + + + + RS_CERP_POCETSPLATEK + + false + + + + + RS_CERP_BONUS_CELKOVACASTKA + + false + + + + + RS_CERP_BONUS_RPSN + + false + + + + + RS_BONUS_CELKOVAVYSE + + false + + + + + RS_CERP_BONUS_UROKOVASAZBA + + false + + + + + RS_CERP_BONUS_VYSEPOSLEDNISPLATKY + + false + + + + + RS_BONUS_TYPVYPLACENIBONUSU + + false + + + + + RS_CERP_BONUS_POCETSPLATEK + + false + + + + + RS_VARIANT_TP_ID + + false + + + + + RS_DATUMZALOZENI + + false + + + + + RS_DATUMPOSLEDNIZMENY + + false + + + + + RS_IDVLSBALICKU + + false + + + + + RS_PRIM_INTRS_RX + + false + + + + + RS_MIN_INTRS_RX + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAV3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAV3_001_Dapi.xml new file mode 100644 index 0000000..5d46760 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAV3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAV3 + 001 + DEVL + + + HUB + MWFAV3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAV4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAV4_001.xml new file mode 100644 index 0000000..812ed9a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAV4_001.xml @@ -0,0 +1,815 @@ + + + + + HUB + MWFAV4 + 001 + active + hub API:MWFAV4 + + + + + AktivacniHeslo + + false + + + + + AutorizacniLimit_Bezhotovostni + + false + + + + + AutorizacniLimit_Hotovost + + false + + + + + AutorizacniLimit_Internet + + false + + + + + AutorizacniLimit_Typ + + false + + + + + AvonLadyID + + false + + + + + AvonLadyIDDop + + false + + + + + BUCisloUctu + + false + + + + + BUKodBanky + + false + + + + + BUMena + + false + + + + + BUPeriodaVypisu + + false + + + + + BUProduktKod + + false + + + + + BUSpecifickySymbol + + false + + + + + BUVariabilniSymbol + + false + + + + + BUZalozitNovyUcet + + false + + + + + BU_KEY + + false + + + + + Benefit + + false + + + + + BrandKarty + + false + + + + + CastkaPrvnihoCerpani + + false + + + + + CelkovaSplatnaCastka + + false + + + + + Channel_ID + + false + + + + + CisloPojisteniING + + false + + + + + CisloSmlouvyVarianty + + false + + + + + CobrandKarty + + false + + + + + DatumPodpisuZadosti + + false + + + + + DatumPodpisuZadosti_Kuryr + + false + + + + + DatumPrepoctuUroku + + false + + + + + DatumPrvniSplatky + + false + + + + + DenInkasniSplatky + + false + + + + + DenZuctovacihoObdobi + + false + + + + + DesignKarty + + false + + + + + DruhBusinessu + + false + + + + + IB_ACCES_TYPE + + false + + + + + IB_SIGN_TYPE + + false + + + + + IDXselloveKampane + + false + + + + + IP_ADDRESS + + false + + + + + IdVLSBalicku + + false + + + + + InfolimitTyp + + false + + + + + Infolimit_ZavaznyPlatnost + + false + + + + + Infolimit_ZavaznyVyse + + false + + + + + KodProduktu + + false + + + + + KodProduktuSales + + false + + + + + Mena + + false + + + + + MesicniSplatka + + false + + + + + MigraceBU_Flag + + false + + + + + ObchodniMistoKod + + false + + + + + OdkladSplatek + + false + + + + + PocetSplatek + + false + + + + + Pojisteni + + false + + + + + PojisteniPoplatek + + false + + + + + PojisteniProtiZneuziti + + false + + + + + PojisteniVycerpaneCastky + + false + + + + + PoplatkovyPlan + + false + + + + + PovoleniInetTransakci + + false + + + + + PracovnikMTSID + + false + + + + + PrimarniUrednikID + + false + + + + + PrimarniUrednikJmeno + + false + + + + + PrimarniUrednikPrijmeni + + false + + + + + PrimarniUrednikSSO + + false + + + + + PrimarniUrednik_KEY + + false + + + + + PromoAkce + + false + + + + + RPSN + + false + + + + + RazitkoObchodniZastupce + + false + + + + + RetentcniProgramFlag + + false + + + + + RocniUrokovaSazbaCASH + + false + + + + + SouhlasOPKCestovniPojisteniFlag + + false + + + + + SouhlasOPKFlag + + false + + + + + SouhlasOPKPojisteniSchopnostiPlatit + + false + + + + + SouhlasOPKZpusobUhradySplatek + + false + + + + + TechnologieKarty + + false + + + + + TypAsistencniSluzby + + false + + + + + TypFormulare + + false + + + + + TypKarty + + false + + + + + TypSlevy + + false + + + + + UUMenaTopUP + + false + + + + + UUTopUPCislo + + false + + + + + UUTopUP_KEY + + false + + + + + UcelUveru + + false + + + + + UrednikFunkce + + false + + + + + UrednikID + + false + + + + + UrednikJmeno + + false + + + + + UrednikPrijmeni + + false + + + + + UrednikSSO + + false + + + + + Urednik_KEY + + false + + + + + UrokovaSazba + + false + + + + + VariantaTyp + + false + + + + + Varianta_KEY + + false + + + + + VelikostZalohy + + false + + + + + VernostniProgram + + false + + + + + VypisKeKonciMesice_Flag + + false + + + + + VysePosledniSplatky + + false + + + + + VyseUpsellu + + false + + + + + VyseUveru + + false + + + + + WEB_BANNER + + false + + + + + WEB_PARTNER_ID + + false + + + + + ZadostSubtyp + + false + + + + + ZadostTyp + + false + + + + + Zadost_KEY + + false + + + + + ZboziCena + + false + + + + + ZboziDruh + + false + + + + + ZkraceneJmenoNaKarteDrzitel + + false + + + + + ZkraceneJmenoNaKarteFirma + + false + + + + + ZpusobDistribucePIN + + false + + + + + ZpusobDistribuceVypisu + + false + + + + + ZpusobUhradySplatek + + false + + + + + + + BU_KEY + + false + + + + + PrimarniUrednik_KEY + + false + + + + + UUTopUP_KEY + + false + + + + + Urednik_KEY + + false + + + + + VariantaTyp + + false + + + + + Varianta_KEY + + false + + + + + WPS_WFL_ID + + false + + + + + Zadost_KEY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAV4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAV4_001_Dapi.xml new file mode 100644 index 0000000..6a3f7dd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAV4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAV4 + 001 + DEVL + + + HUB + MWFAV4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAV5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAV5_001.xml new file mode 100644 index 0000000..1c6ed7a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAV5_001.xml @@ -0,0 +1,1550 @@ + + + + + HUB + MWFAV5 + 001 + active + hub API:MWFAV5 + + + + + Channel_ID + + false + + + + + Filtr_VariantaTyp + + false + + + + + TypExternihoTextu + + false + + + + + WPS_WFL_ID + + false + + + + + Zadost_KEY + + false + + + + + ZiskatNazevPromoProgramu + + false + + + + + + + APP_DATE + + false + + + + + AktivacniHeslo + + false + + + + + AutorizacniLimit_Bezhotovostni + + false + + + + + AutorizacniLimit_Hotovost + + false + + + + + AutorizacniLimit_Internet + + false + + + + + AutorizacniLimit_Procento + + false + + + + + AutorizacniLimit_Typ + + false + + + + + AvonLadyID + + false + + + + + AvonLadyIDDop + + false + + + + + BUCisloUctu + + false + + + + + BUKodBanky + + false + + + + + BUMena + + false + + + + + BUPeriodaVypisu + + false + + + + + BUProduktKod + + false + + + + + BUSpecifickySymbol + + false + + + + + BUVariabilniSymbol + + false + + + + + BUZalozitNovyUcet + + false + + + + + BU_KEY + + false + + + + + Benefit + + false + + + + + BezPritomnostiKlienta + + false + + + + + BrandKarty + + false + + + + + CastkaPrvnihoCerpani + + false + + + + + CelkovaSplatnaCastka + + false + + + + + Channel_ID + + false + + + + + CisloDocasneKarty + + false + + + + + CisloDocasneKartyMask + + false + + + + + CisloPojisteniING + + false + + + + + CisloSmlouvy + + false + + + + + CisloSmlouvyVarianty + + false + + + + + CobrandKarty + + false + + + + + DatumPodpisuSmlouvy + + false + + + + + DatumPodpisuZadosti + + false + + + + + DatumPodpisuZadosti_Kuryr + + false + + + + + DatumPrepoctuUroku + + false + + + + + DatumPrvniSplatky + + false + + + + + DenInkasniSplatky + + false + + + + + DenZuctovacihoObdobi + + false + + + + + DesignKarty + + false + + + + + DruhBusinessu + + false + + + + + DuvodPreschvaleni + + false + + + + + DuvodRozhodnuti + + false + + + + + DuvodRozhodnutiKod + + false + + + + + EmbossTyp + + false + + + + + EnvelopeNumber + + false + + + + + ExpresmanFlag + + false + + + + + FormLockStatus + + false + + + + + IB_ACCES_TYPE + + false + + + + + IB_SIGN_TYPE + + false + + + + + IDXselloveKampane + + false + + + + + IP_ADDRESS + + false + + + + + IdVLSBalicku + + false + + + + + IndexLinearnihoSplaceni + + false + + + + + InfolimitTyp + + false + + + + + Infolimit_ZavaznyPlatnost + + false + + + + + Infolimit_ZavaznyVyse + + false + + + + + KUL_KEY + + false + + + + + KartaAsociace + + false + + + + + KodProduktu + + false + + + + + KodProduktuSales + + false + + + + + Kombinace_KEY + + false + + + + + Mena + + false + + + + + MesicniSplatka + + false + + + + + MigraceBU_Flag + + false + + + + + MinProcentoSplatky + + false + + + + + MoznostPreschvalitFlag + + false + + + + + MoznostPreschvalitRole + + false + + + + + ObchodniMistoKod + + false + + + + + OdkladSplatek + + false + + + + + PocetSplatek + + false + + + + + Pojisteni + + false + + + + + PojisteniPoplatek + + false + + + + + PojisteniPoplatekJednotky + + false + + + + + PojisteniProtiZneuziti + + false + + + + + PojisteniVycerpaneCastky + + false + + + + + PoplatkovyPlan + + false + + + + + Posledni4Cislice + + false + + + + + PovoleniInetTransakci + + false + + + + + PracovnikMTSID + + false + + + + + PreschvaleniUrednikFunkce + + false + + + + + PrimarniUrednikID + + false + + + + + PrimarniUrednikJmeno + + false + + + + + PrimarniUrednikPrijmeni + + false + + + + + PrimarniUrednikSSO + + false + + + + + PrimarniUrednik_KEY + + false + + + + + PritomnyVsechnyOsoby + + false + + + + + PromoAkce + + false + + + + + PromoRewardProgram + + false + + + + + RPSN + + false + + + + + RazitkoObchodniZastupce + + false + + + + + RetentcniProgramFlag + + false + + + + + RocniUrokovaSazbaCASH + + false + + + + + Rozhodnuti + + false + + + + + SCHV_AutorizacniLimit_Bezhotovostni + + false + + + + + SCHV_AutorizacniLimit_Hotovost + + false + + + + + SCHV_AutorizacniLimit_Internet + + false + + + + + SCHV_AutorizacniLimit_Procento + + false + + + + + SCHV_AutorizacniLimit_Typ + + false + + + + + SCHV_BONUS_Castka + + false + + + + + SCHV_BONUS_CelkovaVyse + + false + + + + + SCHV_BONUS_PeriodaVyplaceniBonusu + + false + + + + + SCHV_BONUS_TypVyplaceniBonusu + + false + + + + + SCHV_BrandKarty + + false + + + + + SCHV_CERP_BONUS_CelkovaCastka + + false + + + + + SCHV_CERP_BONUS_PocetSplatek + + false + + + + + SCHV_CERP_BONUS_RPSN + + false + + + + + SCHV_CERP_BONUS_UrokovaSazba + + false + + + + + SCHV_CERP_BONUS_VysePosledniSplatky + + false + + + + + SCHV_CERP_CelkovaSplatnaCastka + + false + + + + + SCHV_CERP_PocetSplatek + + false + + + + + SCHV_CERP_RPSN + + false + + + + + SCHV_CERP_UrokovaSazba + + false + + + + + SCHV_CERP_VysePosledniSplatky + + false + + + + + SCHV_CastkaPrvnihoCerpani + + false + + + + + SCHV_CelkovaSplatnaCastka + + false + + + + + SCHV_CisloSmlouvyVarianty + + false + + + + + SCHV_CobrandKarty + + false + + + + + SCHV_DatumPrvniSplatky + + false + + + + + SCHV_DenInkasniSplatky + + false + + + + + SCHV_DenZuctovacihoObdobi + + false + + + + + SCHV_DesignKarty + + false + + + + + SCHV_EmbossTyp + + false + + + + + SCHV_Flexilimit + + false + + + + + SCHV_IndexLinearnihoSplaceni + + false + + + + + SCHV_KartaAsociace + + false + + + + + SCHV_KodProduktu + + false + + + + + SCHV_KodProduktuSales + + false + + + + + SCHV_Kombinace_KEY + + false + + + + + SCHV_MesicniSplatka + + false + + + + + SCHV_MinProcentoSplatky + + false + + + + + SCHV_OdkladSplatek + + false + + + + + SCHV_PocetSplatek + + false + + + + + SCHV_Pojisteni + + false + + + + + SCHV_PojisteniPoplatek + + false + + + + + SCHV_PojisteniPoplatekJednotky + + false + + + + + SCHV_PoplatkovyPlan + + false + + + + + SCHV_PovoleniInetTransakci + + false + + + + + SCHV_PromoAkce + + false + + + + + SCHV_RPSN + + false + + + + + SCHV_RocniUrokovaSazbaCASH + + false + + + + + SCHV_TypAsistencniSluzby + + false + + + + + SCHV_TypKarty + + false + + + + + SCHV_TypSplaceni + + false + + + + + SCHV_TypVypoctuFINA + + false + + + + + SCHV_UrokovaSazba + + false + + + + + SCHV_VariantaDruh + + false + + + + + SCHV_VariantaTyp + + false + + + + + SCHV_Varianta_Key + + false + + + + + SCHV_VelikostZalohy + + false + + + + + SCHV_VernostniProgram + + false + + + + + SCHV_VysePosledniSplatky + + false + + + + + SCHV_VyseUpsellu + + false + + + + + SCHV_VyseUveru + + false + + + + + SchvalovatelFunkce + + false + + + + + SchvalovatelID + + false + + + + + SchvalovatelJmeno + + false + + + + + SchvalovatelPrijmeni + + false + + + + + SchvalovatelSSO + + false + + + + + Schvalovatel_KEY + + false + + + + + SouhlasOPKCestovniPojisteniFlag + + false + + + + + SouhlasOPKCisloNavrhu + + false + + + + + SouhlasOPKFlag + + false + + + + + SouhlasOPKPojisteniSchopnostiPlatit + + false + + + + + SouhlasOPKSchvaleno + + false + + + + + SouhlasOPKZpusobUhradySplatek + + false + + + + + TechnologieKarty + + false + + + + + TypAsistencniSluzby + + false + + + + + TypFormulare + + false + + + + + TypKarty + + false + + + + + TypSlevy + + false + + + + + TypSplaceni + + false + + + + + UUCislo + + false + + + + + UUMena + + false + + + + + UUMenaTopUP + + false + + + + + UUObjektUveru + + false + + + + + UUTopUPCislo + + false + + + + + UUTopUP_KEY + + false + + + + + UU_KEY + + false + + + + + UcelUveru + + false + + + + + UrednikFunkce + + false + + + + + UrednikID + + false + + + + + UrednikJmeno + + false + + + + + UrednikPrijmeni + + false + + + + + UrednikSSO + + false + + + + + Urednik_KEY + + false + + + + + UrokovaSazba + + false + + + + + VariantaTyp + + false + + + + + Varianta_KEY + + false + + + + + VelikostZalohy + + false + + + + + VernostniProgram + + false + + + + + VypisKeKonciMesice_Flag + + false + + + + + VysePosledniSplatky + + false + + + + + VyseUpsellu + + false + + + + + VyseUveru + + false + + + + + WEB_BANNER + + false + + + + + WEB_PARTNER_ID + + false + + + + + WFPrechodStavu + + false + + + + + WPS_WFL_ID + + false + + + + + ZadostAP + + false + + + + + ZadostKanalPorizeni + + false + + + + + ZadostStavADCtext + + false + + + + + ZadostStavNASDetail + + false + + + + + ZadostStavUFO + + false + + + + + ZadostSubtyp + + false + + + + + ZadostSystemZdroj + + false + + + + + ZadostTyp + + false + + + + + ZboziCena + + false + + + + + ZboziDruh + + false + + + + + ZkraceneJmenoNaKarteDrzitel + + false + + + + + ZkraceneJmenoNaKarteFirma + + false + + + + + ZpusobDistribucePIN + + false + + + + + ZpusobDistribuceVypisu + + false + + + + + ZpusobUhradySplatek + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAV5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAV5_001_Dapi.xml new file mode 100644 index 0000000..8fcf202 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAV5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAV5 + 001 + DEVL + + + HUB + MWFAV5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAV6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAV6_001.xml new file mode 100644 index 0000000..3ea1890 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAV6_001.xml @@ -0,0 +1,375 @@ + + + + + + HUB + MWFAV6 + 001 + active + hub API:MWFAV6 + + + + + CIF + + false + + + + + + + Adresat + + false + + + + + CO + + false + + + + + CP + + false + + + + + CisloPasu + + false + + + + + Ctvrt + + false + + + + + DIC + + false + + + + + DalsiDokladCislo + + false + + + + + DatumExpiraceKontaktnichUdaju + + false + + + + + DatumExpiracePotvrzeniStudent + + false + + + + + DatumNarozeni + + false + + + + + DruheJmeno + + false + + + + + DruhyDokladCislo + + false + + + + + DruhyDokladPlatnost + + false + + + + + Fax + + false + + + + + ICO + + false + + + + + KodOM + + false + + + + + NezadouciKlient + + false + + + + + OKEC + + false + + + + + ObchodniJmeno + + false + + + + + Obec + + false + + + + + PSC + + false + + + + + PlatnostDalsihoDokladuDo + + false + + + + + PlatnostPasu + + false + + + + + PocetNedorucenychVypisuAA + + false + + + + + PocetNedorucenychVypisuTA + + false + + + + + Posta + + false + + + + + PravniForma + + false + + + + + Prijmeni + + false + + + + + PrvniJmeno + + false + + + + + Rezidence + + false + + + + + RizikoKlientaCIS + + false + + + + + RodneCislo + + false + + + + + SerieACisloOP + + false + + + + + SerieAPlatnostOP + + false + + + + + SpiciUcet + + false + + + + + Telefon + + false + + + + + TelefonPredvolba + + false + + + + + TelefonZamestnani + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + TypDalsihoDokladu + + false + + + + + TypDruhehoDokladu + + false + + + + + TypKlienta + + false + + + + + TypKlientaDetail + + false + + + + + Ulice + + false + + + + + UliceSpojena + + false + + + + + Vek + + false + + + + + Zeme + + false + + + + + ZkraceneJmeno + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAV6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAV6_001_Dapi.xml new file mode 100644 index 0000000..5eb5238 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAV6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAV6 + 001 + DEVL + + + HUB + MWFAV6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAW1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAW1_001.xml new file mode 100644 index 0000000..35613d3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAW1_001.xml @@ -0,0 +1,62 @@ + + + + + HUB + MWFAW1 + 001 + active + hub API:MWFAW1 + + + + + ID_OM + + false + + + + + ProduktSales + + false + + + + + + + Data + + + + RS_BRANDKARTY + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAW1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAW1_001_Dapi.xml new file mode 100644 index 0000000..4f9a959 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAW1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAW1 + 001 + DEVL + + + HUB + MWFAW1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAW2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAW2_001.xml new file mode 100644 index 0000000..89eca86 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAW2_001.xml @@ -0,0 +1,83 @@ + + + + + HUB + MWFAW2 + 001 + active + hub API:MWFAW2 + + + + + BrandKarty + + false + + + + + ID_OM + + false + + + + + ProduktSales + + false + + + + + PromoAkce + + false + + + + + ZadostTyp + + false + + + + + + + Data + + + + RS_DESIGNKARTY + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAW2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAW2_001_Dapi.xml new file mode 100644 index 0000000..0b620e6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAW2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAW2 + 001 + DEVL + + + HUB + MWFAW2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAW6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAW6_001.xml new file mode 100644 index 0000000..82b699b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAW6_001.xml @@ -0,0 +1,69 @@ + + + + + HUB + MWFAW6 + 001 + active + hub API:MWFAW6 + + + + + ID_OM + + false + + + + + ProduktSales + + false + + + + + + + Data + + + + RS_POPIS + + false + + + + + RS_PROMOAKCE + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAW6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAW6_001_Dapi.xml new file mode 100644 index 0000000..e85a392 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAW6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAW6 + 001 + DEVL + + + HUB + MWFAW6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAZ6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAZ6_001.xml new file mode 100644 index 0000000..ba7ddec --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAZ6_001.xml @@ -0,0 +1,426 @@ + + + + + HUB + MWFAZ6 + 001 + active + hub API:MWFAZ6 + + + + + APP_KEY + + false + + + + + DECISION_TYPE + + false + + + + + EMP_ROLE + + false + + + + + FILTER_VALID_ONLY_FLAG + + false + + + + + INST_CUST_ID + + false + + + + + INST_DOC_KEY + + false + + + + + INST_OBLGTN_KEY + + false + + + + + REASONS_FILTER + + false + + + + + REASON_ADD_ROLE + + false + + + + + REASON_TEXT_TYPE + + false + + + + + SCREEN_ID + + false + + + + + + + Data + + + + RS_APPR_RSN_KEY + + false + + + + + RS_REASON_CODE + + false + + + + + RS_REASON_CODE_VALID + + false + + + + + RS_APPROVER_VALID_FLAG + + false + + + + + RS_DECISION_PRIORITY + + false + + + + + RS_REASON_ADD_USER + + false + + + + + RS_REASON_ADD_ROLE_OUT + + false + + + + + RS_REASON_ADD_TIME + + false + + + + + RS_REASON_INVAL_USER + + false + + + + + RS_REASON_INVAL_ROLE + + false + + + + + RS_REASON_INVAL_TIME + + false + + + + + RS_REASON_TEXT_INTERNAL + + false + + + + + RS_REASON_TEXT_EXTERNAL + + false + + + + + RS_REASON_TEXT_EXTERNAL_CZ + + false + + + + + RS_REASON_TEXT_EXTERNAL_SK + + false + + + + + RS_ADC_REASON_TEXT_EXTERNAL_CZ + + false + + + + + RS_ADC_REASON_TEXT_EXTERNAL_SK + + false + + + + + RS_REASON_TEXT_PARAMETER_1 + + false + + + + + RS_REASON_TEXT_PARAMETER_2 + + false + + + + + RS_PARAMETER_COUNT + + false + + + + + RS_RC_NUM + + false + + + + + RS_REASON_ADD_ROLE + + false + + + + + RS_FORM_TYPE_ID + + false + + + + + RS_FORM_ITEM_ASSIGNMENT_ID + + false + + + + + RS_NBSM_ERROR_CODE + + false + + + + + RS_INST_CUST_ID_OUT + + false + + + + + RS_DECISION_TYPE_OUT + + false + + + + + RS_MIN_EMP_ROLE_INVALIDATE + + false + + + + + RS_DECISION_CATEGORY + + false + + + + + RS_DECISION_SUBCATEGORY + + false + + + + + RS_DECISION_CATEGORY_PRIORITY + + false + + + + + RS_DECISION_SUBCATEGORY_PRIORITY + + false + + + + + RS_FIRST_NAME + + false + + + + + RS_FAMILY_NAME + + false + + + + + RS_CLIENT_APP_ROLE + + false + + + + + RS_REASON_CAN_BE_INVALIDATE + + false + + + + + RS_EMP_SSO_ID + + false + + + + + RS_EMP_ROLE_ID + + false + + + + + RS_EMP_POSITION_ID + + false + + + + + RS_APP_ID + + false + + + + + RS_APP_KEY_OUT + + false + + + + + RS_REASON_CORRECTION_TYPE + + false + + + + + RS_SCRENN_FORM_ITEM_ASSGN + + false + + + + + RS_REASON_SHADOW_FLAG + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFAZ6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFAZ6_001_Dapi.xml new file mode 100644 index 0000000..77aee71 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFAZ6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFAZ6 + 001 + DEVL + + + HUB + MWFAZ6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFB47_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFB47_001.xml new file mode 100644 index 0000000..a77b560 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFB47_001.xml @@ -0,0 +1,188 @@ + + + + + HUB + MWFB47 + 001 + active + hub API:MWFB47 + + + + + RodneCislo + + false + + + + + + + Data + + + + RS_KATEGKONTR + + false + + + + + RS_TYPKONTR + + false + + + + + RS_ROLEKLIENTA + + false + + + + + RS_BANKA + + false + + + + + RS_DLUH + + false + + + + + RS_SPLATKA + + false + + + + + RS_DATUMVZNIKU + + false + + + + + RS_ZBYVAZAPLATIT + + false + + + + + RS_POCETSPLATEK + + false + + + + + RS_CCB_OPERATION_CODE + + false + + + + + RS_RAMEC + + false + + + + + RS_ZUSTATEKJISTINY + + false + + + + + RS_DOBAPOSPLATNOSTI + + false + + + + + + false + + + + + DatumAktualizace + + false + + + + + DluhCelkem + + false + + + + + DluhNeSplatkove + + false + + + + + DluhRevolving + + false + + + + + DluhSplatkove + + false + + + + + Index + + false + + + + + Pocet + + false + + + + + ZavazekCelkem + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFB47_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFB47_001_Dapi.xml new file mode 100644 index 0000000..fecda98 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFB47_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFB47 + 001 + DEVL + + + HUB + MWFB47 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + HYP.HUB.INP + + + + 4 + 30 + HYP.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFB71_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFB71_001.xml new file mode 100644 index 0000000..c6e0745 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFB71_001.xml @@ -0,0 +1,209 @@ + + + + + HUB + MWFB71 + 001 + active + hub API:MWFB71 + + + + + RodneCislo + + false + + + + + + + Data + + + + RS_CISLOKARTY + + false + + + + + RS_VYTLACENEJMENO + + false + + + + + RS_JMENO + + false + + + + + RS_CASTKAUVERU + + false + + + + + RS_RODNECISLO + + false + + + + + RS_PRODUKTNAZEV + + false + + + + + RS_DATUMUZAVRENISMLOUVY + + false + + + + + RS_ZDROJ + + false + + + + + RS_CISLOSMLOUVY + + false + + + + + RS_DLUZNACASTKA + + false + + + + + RS_PREPLATEK + + false + + + + + RS_PRIJMENI + + false + + + + + RS_STAVSMLOUVY + + false + + + + + RS_PRODUKTKOD + + false + + + + + RS_MESICNISPLATKA + + false + + + + + RS_KOD_ZEME + + false + + + + + RS_STAVUCTUOPK + + false + + + + + RS_CISLOSMLOUVYOPK + + false + + + + + RS_ORGANIZACE + + false + + + + + RS_AKTIVITAKARTY + + false + + + + + RS_RODNECISLOMAJITEL + + false + + + + + RS_JMENOMAJITEL + + false + + + + + RS_DODATKOVAKARTA + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFB71_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFB71_001_Dapi.xml new file mode 100644 index 0000000..9529fa6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFB71_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFB71 + 001 + DEVL + + + HUB + MWFB71 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFBE0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFBE0_001.xml new file mode 100644 index 0000000..9730bd6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFBE0_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWFBE0 + 001 + active + hub API:MWFBE0 + + + + + CastkaPrvnihoCerpani + + false + + + + + PocetSplatek + + false + + + + + VariantaVybranaFlag + + false + + + + + Varianta_KEY + + false + + + + + VyseUveru + + false + + + + + Zadost_KEY + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFBE0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFBE0_001_Dapi.xml new file mode 100644 index 0000000..c0c5817 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFBE0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFBE0 + 001 + DEVL + + + HUB + MWFBE0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFBOL_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFBOL_001.xml new file mode 100644 index 0000000..d293587 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFBOL_001.xml @@ -0,0 +1,142 @@ + + + + + HUB + MWFBOL + 001 + active + hub API:MWFBOL + + + + + BusinessType + + false + + + + + ClientInstId + + false + + + + + ClientInstKey + + false + + + + + ClientInstSysId + + false + + + + + ClientUniKey + + false + + + + + + + ClientAttornies + + + + RS_CLIENTATTORNEYINSTKEY + + false + + + + + RS_CLIENTATTORNEYINSTSYSID + + false + + + + + RS_CLIENTCONSENTKEY + + false + + + + + + false + + + + + ClientConsents + + + + RS_CONSENTKEY + + false + + + + + RS_CONSENTTYPE + + false + + + + + RS_CONSENTAUDITFLAG + + false + + + + + RS_CONSENTSIGNTIME + + false + + + + + RS_CONSENTSTATE + + false + + + + + RS_CONSENTVALUE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFBOL_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFBOL_001_Dapi.xml new file mode 100644 index 0000000..52fc426 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFBOL_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFBOL + 001 + DEVL + + + HUB + MWFBOL + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFBV5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFBV5_001.xml new file mode 100644 index 0000000..28840bf --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFBV5_001.xml @@ -0,0 +1,521 @@ + + + + + HUB + MWFBV5 + 001 + active + hub API:MWFBV5 + + + + + AAAdresat + + false + + + + + AACO + + false + + + + + AACP + + false + + + + + AACtvrt + + false + + + + + AAObec + + false + + + + + AAPSC + + false + + + + + AAPosta + + false + + + + + AAUlice + + false + + + + + AAZeme + + false + + + + + AVPole + + false + + + + + CIF + + false + + + + + Cache + + false + + + + + CastkaDalsiPlatby + + false + + + + + CastkaKonecnePlatby + + false + + + + + CastkaPrvniPlatby + + false + + + + + CastkaTransakce + + false + + + + + CisloCostCentra + + false + + + + + CisloUctuPlatce + + false + + + + + CisloUctuPrijemce + + false + + + + + CisloUctuPrijemceKodBanky + + false + + + + + DatumDalsiPlatby + + false + + + + + DatumKonecnePlatby + + false + + + + + DatumNarozeni + + false + + + + + DatumOtevreni + + false + + + + + DatumPrvniPlatby + + false + + + + + DatumPrvnihoVypisu + + false + + + + + DatumSplatnosti + + false + + + + + DistribuceVypisu + + false + + + + + DruhKlienta + + false + + + + + DruheJmeno + + false + + + + + Jmeno + + false + + + + + KodBankyPrijemce + + false + + + + + KodMenyTransakce + + false + + + + + KonstantniSymbol + + false + + + + + NazevUctuPlatce + + false + + + + + NazevUctuPrijemce + + false + + + + + ObchodniJmeno + + false + + + + + ObchodniMistoKod + + false + + + + + ObchodniMistoKodPlatce + + false + + + + + PausalniPoplatekPocetMesicuZdarma + + false + + + + + Perioda + + false + + + + + PeriodaVypisu + + false + + + + + PoplatkovyPlan + + false + + + + + PostovniPoukazka + + false + + + + + PouzitaAA + + false + + + + + Prijmeni + + false + + + + + PrimarniUrednik + + false + + + + + ProduktKod + + false + + + + + Reference + + false + + + + + SFCisloTP + + false + + + + + SFMaterBU + + false + + + + + SFNazevUctu + + false + + + + + SFRozhodneObdobi + + false + + + + + SFVIPKlient + + false + + + + + SekundarniUrednik + + false + + + + + SpecifickyDen + + false + + + + + SpecifickySymbol + + false + + + + + TPVerifikova + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + TypCRUctu + + false + + + + + TypSO + + false + + + + + UlozPSCBezKontroly + + false + + + + + Uzivatel + + false + + + + + VariabilniSymbol + + false + + + + + VypisNaKonciMesice + + false + + + + + ZpusobPripisu + + false + + + + + + + CisloUctu + + false + + + + + IDTP + + false + + + + + IDTR + + false + + + + + RequestID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFBV5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFBV5_001_Dapi.xml new file mode 100644 index 0000000..a17c74c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFBV5_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFBV5 + 001 + DEVL + + + HUB + MWFBV5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC14_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC14_001.xml new file mode 100644 index 0000000..df7704a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC14_001.xml @@ -0,0 +1,174 @@ + + + + + HUB + MWFC14 + 001 + active + hub API:MWFC14 + + + + + CisloKaretnihoUctu + + false + + + + + Program + + false + + + + + + + BodyDoKonceMesice + + false + + + + + CelkovyAktualniPocetBodu + + false + + + + + CelkovyAktualniPocetOdmen + + false + + + + + Data + + + + RS_PROGRAM + + false + + + + + RS_POCATECNISTAV + + false + + + + + RS_AKTUALNISTAV + + false + + + + + RS_ZISKANEBODY + + false + + + + + RS_VYCERPANEBODY + + false + + + + + RS_UPRAVENEBODY + + false + + + + + RS_ZISKANEBODYODZACATKUROKU + + false + + + + + RS_CERPANEBODYODZACATKUROKU + + false + + + + + RS_ZISKANEBODYODVYDANIKARTY + + false + + + + + RS_CERPANEBODYODVYDANIKARTY + + false + + + + + RS_PROGRAMNAZEV + + false + + + + + + false + + + + + DatumDalsihoVypisu + + false + + + + + OdmenyOdVydaniKarty + + false + + + + + OdmenyOdZacatkuRoku + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC14_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC14_001_Dapi.xml new file mode 100644 index 0000000..7c04af6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC14_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFC14 + 001 + DEVL + + + HUB + MWFC14 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC15_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC15_001.xml new file mode 100644 index 0000000..b0a0dd3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC15_001.xml @@ -0,0 +1,143 @@ + + + + + HUB + MWFC15 + 001 + active + hub API:MWFC15 + + + + + CisloKaretnihoUctu + + false + + + + + DruhKarty + + false + + + + + LogoKarty + + false + + + + + Program + + false + + + + + + + DatumKonceProgramu + + false + + + + + DatumPosledniTransakce + + false + + + + + DatumPrvniTransakce + + false + + + + + DatumZapsaniDoProgramu + + false + + + + + PopisProgramu + + false + + + + + ProgBodyDoKonceMesice + + false + + + + + ProgBodyNaVoucher + + false + + + + + ProgBodyProslouPlatnosti + + false + + + + + ProgBodyUpraveneCelkem + + false + + + + + ProgBodyVycerpaneCelkem + + false + + + + + ProgBodyVycerpaneZaRok + + false + + + + + ProgBodyZiskaneCelkem + + false + + + + + ProgBodyZiskaneZaRok + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC15_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC15_001_Dapi.xml new file mode 100644 index 0000000..35345e4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC15_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFC15 + 001 + DEVL + + + HUB + MWFC15 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC18_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC18_001.xml new file mode 100644 index 0000000..e2c9278 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC18_001.xml @@ -0,0 +1,251 @@ + + + + + HUB + MWFC18 + 001 + active + hub API:MWFC18 + + + + + CisloKaretnihoUctu + + false + + + + + CisloKarty + + false + + + + + DatumTransakce + + false + + + + + DatumTransakceDo + + false + + + + + DatumTransakceOd + + false + + + + + DatumVypisu + + false + + + + + DruhKarty + + false + + + + + + + Data + + + + RS_DATUMTRANSAKCE + + false + + + + + RS_DATUMZAUCTOVANI + + false + + + + + RS_CASTKA + + false + + + + + RS_TYPTRANSAKCE + + false + + + + + RS_KREDITNIPLAN + + false + + + + + RS_POPIS + + false + + + + + RS_AUTORIZACNIKOD + + false + + + + + RS_UCET + + false + + + + + RS_ID + + false + + + + + RS_DATUMPRISTIHOVYPISU + + false + + + + + RS_DATUMZAUCTOVANIVEVLS + + false + + + + + RS_POCETBODU + + false + + + + + RS_PROGRAM + + false + + + + + RS_CASTKADUAL + + false + + + + + RS_ODMENY + + false + + + + + RS_API_TYPTXN + + false + + + + + RS_API_KODTXN + + false + + + + + RS_CISLOOBCHODNIKA + + false + + + + + RS_CISLOPRODEJNYOBCHODNIKA + + false + + + + + RS_DATUMPRICHODUPLATBY + + false + + + + + RS_CISLOUCTUDEBET + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_CISLOKARTY + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC18_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC18_001_Dapi.xml new file mode 100644 index 0000000..8aaf500 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC18_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFC18 + 001 + DEVL + + + HUB + MWFC18 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC19_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC19_001.xml new file mode 100644 index 0000000..fca252d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC19_001.xml @@ -0,0 +1,69 @@ + + + + + HUB + MWFC19 + 001 + active + hub API:MWFC19 + + + + + CisloKaretnihoUctu + + false + + + + + DruhKarty + + false + + + + + FiltraceVypisu + + false + + + + + + + Data + + + + RS_DATUMVYPISU + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC19_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC19_001_Dapi.xml new file mode 100644 index 0000000..9ad0dc2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC19_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFC19 + 001 + DEVL + + + HUB + MWFC19 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC21_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC21_001.xml new file mode 100644 index 0000000..8dfe857 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC21_001.xml @@ -0,0 +1,111 @@ + + + + + HUB + MWFC21 + 001 + active + hub API:MWFC21 + + + + + CisloKarty + + false + + + + + + + Data + + + + RS_PORADOVECISLO + + false + + + + + RS_DATUMVYDANI + + false + + + + + RS_PROGRAM + + false + + + + + RS_INV + + false + + + + + RS_BODY + + false + + + + + RS_POCETVOUCHERU + + false + + + + + RS_STATUS + + false + + + + + RS_SERIOVECISLO + + false + + + + + RS_HODNOTA + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC21_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC21_001_Dapi.xml new file mode 100644 index 0000000..c0fb202 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC21_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFC21 + 001 + DEVL + + + HUB + MWFC21 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC22_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC22_001.xml new file mode 100644 index 0000000..7a66eff --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC22_001.xml @@ -0,0 +1,146 @@ + + + + + HUB + MWFC22 + 001 + active + hub API:MWFC22 + + + + + CisloKarty + + false + + + + + DatumVypisu + + false + + + + + FiltraceVypisu + + false + + + + + + + CelkoveKonecneBody + + false + + + + + CelkovePocatecniBody + + false + + + + + Data + + + + RS_PROGRAM + + false + + + + + RS_POCATECNISTAV + + false + + + + + RS_ZISKANEBODY + + false + + + + + RS_VYCERPANEBODY + + false + + + + + RS_UPRAVENEBODY + + false + + + + + RS_KONECNYSTAV + + false + + + + + RS_BODYZJINEHOPROGRAMU + + false + + + + + RS_BODYDOJINEHOPROGRAMU + + false + + + + + RS_CELKEMZISKANEBODY + + false + + + + + RS_CELKEMODEBRANEBODY + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC22_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC22_001_Dapi.xml new file mode 100644 index 0000000..6b2e4c2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC22_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFC22 + 001 + DEVL + + + HUB + MWFC22 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC27_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC27_001.xml new file mode 100644 index 0000000..9a33ac0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC27_001.xml @@ -0,0 +1,822 @@ + + + + + HUB + MWFC27 + 001 + active + hub API:MWFC27 + + + + + Call_Systems + + false + + + + + + + KalkulackaOK + + false + + + + + StatusATA_STATUS_CODE + + false + + + + + StatusATA_STATUS_DESC + + false + + + + + StatusArcha_STATUS_CODE + + false + + + + + StatusArcha_STATUS_DESC + + false + + + + + StatusAuto_STATUS_CODE + + false + + + + + StatusAuto_STATUS_DESC + + false + + + + + StatusBIN_STATUS_CODE + + false + + + + + StatusBIN_STATUS_DESC + + false + + + + + StatusBRG_STATUS_CODE + + false + + + + + StatusBRG_STATUS_DESC + + false + + + + + StatusBankKlient4 + + false + + + + + StatusBankKlient_STATUS_CODE + + false + + + + + StatusBankKlient_STATUS_DESC + + false + + + + + StatusCAP_STATUS_CODE + + false + + + + + StatusCAP_STATUS_DESC + + false + + + + + StatusCAS_ERROR_CODE + + false + + + + + StatusCAS_ERROR_DESC + + false + + + + + StatusCAS_RESULT_CODE + + false + + + + + StatusCAS_STATUS_CODE + + false + + + + + StatusCAS_STATUS_DESC + + false + + + + + StatusCBL_STATUS_CODE + + false + + + + + StatusCBL_STATUS_DESC + + false + + + + + StatusCDI_STATUS_CODE + + false + + + + + StatusCDI_STATUS_DESC + + false + + + + + StatusCMD_STATUS_CODE + + false + + + + + StatusCMD_STATUS_DESC + + false + + + + + StatusCND_STATUS_CODE + + false + + + + + StatusCND_STATUS_DESC + + false + + + + + StatusCUR_STATUS_CODE + + false + + + + + StatusCUR_STATUS_DESC + + false + + + + + StatusCreditCheck_STATUS_CODE + + false + + + + + StatusCreditCheck_STATUS_DESC + + false + + + + + StatusDHB_STATUS_CODE + + false + + + + + StatusDHB_STATUS_DESC + + false + + + + + StatusDMS_STATUS_CODE + + false + + + + + StatusDMS_STATUS_DESC + + false + + + + + StatusEAR_STATUS_CODE + + false + + + + + StatusEAR_STATUS_DESC + + false + + + + + StatusEDE_STATUS_CODE + + false + + + + + StatusEDE_STATUS_DESC + + false + + + + + StatusERN_STATUS_CODE + + false + + + + + StatusERN_STATUS_DESC + + false + + + + + StatusFCO_STATUS_CODE + + false + + + + + StatusFCO_STATUS_DESC + + false + + + + + StatusFDB_STATUS_CODE + + false + + + + + StatusFDB_STATUS_DESC + + false + + + + + StatusFIP_STATUS_CODE + + false + + + + + StatusFIP_STATUS_DESC + + false + + + + + StatusFSP_STATUS_CODE + + false + + + + + StatusFSP_STATUS_DESC + + false + + + + + StatusGEM_GET_NPB + + false + + + + + StatusGMC_STATUS_CODE + + false + + + + + StatusGMC_STATUS_DESC + + false + + + + + StatusGemini4 + + false + + + + + StatusGemini_STATUS_CODE + + false + + + + + StatusGemini_STATUS_DESC + + false + + + + + StatusGraffiti_STATUS_CODE + + false + + + + + StatusGraffiti_STATUS_DESC + + false + + + + + StatusHypos_STATUS_CODE + + false + + + + + StatusHypos_STATUS_DESC + + false + + + + + StatusICBS + + false + + + + + StatusIHE_STATUS_CODE + + false + + + + + StatusIHE_STATUS_DESC + + false + + + + + StatusIH_STATUS_CODE + + false + + + + + StatusIH_STATUS_DESC + + false + + + + + StatusIND_STATUS_CODE + + false + + + + + StatusIND_STATUS_DESC + + false + + + + + StatusISR_STATUS_CODE + + false + + + + + StatusISR_STATUS_DESC + + false + + + + + StatusLNK_STATUS_CODE + + false + + + + + StatusLNK_STATUS_DESC + + false + + + + + StatusNAS_STATUS_CODE + + false + + + + + StatusNAS_STATUS_DESC + + false + + + + + StatusNDB_STATUS_CODE + + false + + + + + StatusNDB_STATUS_DESC + + false + + + + + StatusODS_STATUS_CODE + + false + + + + + StatusODS_STATUS_DESC + + false + + + + + StatusPAE_STATUS_CODE + + false + + + + + StatusPAE_STATUS_DESC + + false + + + + + StatusPAS_STATUS_CODE + + false + + + + + StatusPAS_STATUS_DESC + + false + + + + + StatusPMG_STATUS_CODE + + false + + + + + StatusPMG_STATUS_DESC + + false + + + + + StatusPSE_STATUS_CODE + + false + + + + + StatusPSE_STATUS_DESC + + false + + + + + StatusRTS_STATUS_CODE + + false + + + + + StatusRTS_STATUS_DESC + + false + + + + + StatusSAB_STATUS_CODE + + false + + + + + StatusSAB_STATUS_DESC + + false + + + + + StatusSAGS_STATUS_CODE + + false + + + + + StatusSAGS_STATUS_DESC + + false + + + + + StatusSBO_STATUS_CODE + + false + + + + + StatusSBO_STATUS_DESC + + false + + + + + StatusSFC_STATUS_CODE + + false + + + + + StatusSFC_STATUS_DESC + + false + + + + + StatusSIS_STATUS_CODE + + false + + + + + StatusSIS_STATUS_DESC + + false + + + + + StatusSMS_STATUS_CODE + + false + + + + + StatusSMS_STATUS_DESC + + false + + + + + StatusSRT_STATUS_CODE + + false + + + + + StatusSRT_STATUS_DESC + + false + + + + + StatusTECH1_STATUS_CODE + + false + + + + + StatusTECH1_STATUS_DESC + + false + + + + + StatusTECH2_STATUS_CODE + + false + + + + + StatusTECH2_STATUS_DESC + + false + + + + + StatusVSW_STATUS_CODE + + false + + + + + StatusVSW_STATUS_DESC + + false + + + + + StatusVisionPlus4 + + false + + + + + StatusWPS_STATUS_CODE + + false + + + + + StatusWPS_STATUS_DESC + + false + + + + + StatusXYZ_STATUS_CODE + + false + + + + + StatusXYZ_STATUS_DESC + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC27_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC27_001_Dapi.xml new file mode 100644 index 0000000..3794481 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC27_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFC27 + 001 + DEVL + + + HUB + MWFC27 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC79_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC79_001.xml new file mode 100644 index 0000000..754ecf8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC79_001.xml @@ -0,0 +1,111 @@ + + + + + HUB + MWFC79 + 001 + active + hub API:MWFC79 + + + + + CisloKarty + + false + + + + + Kanal + + false + + + + + LogoKarty + + false + + + + + MajitelDatumNarozeni + + false + + + + + MajitelPracovniPomer + + false + + + + + + + Data + + + + RS_DS + + false + + + + + RS_STATUS + + false + + + + + RS_DATUMVYDANI + + false + + + + + RS_CENA + + false + + + + + RS_DATUMUCINNOSTI + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC79_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC79_001_Dapi.xml new file mode 100644 index 0000000..c957d15 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC79_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFC79 + 001 + DEVL + + + HUB + MWFC79 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC80_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC80_001.xml new file mode 100644 index 0000000..c56412d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC80_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWFC80 + 001 + active + hub API:MWFC80 + + + + + CisloUctu + + false + + + + + + + CisloUctuExt + + false + + + + + CisloUctuIBAN + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFC80_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFC80_001_Dapi.xml new file mode 100644 index 0000000..a4666ab --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFC80_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFC80 + 001 + DEVL + + + HUB + MWFC80 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCF6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCF6_001.xml new file mode 100644 index 0000000..04800fe --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCF6_001.xml @@ -0,0 +1,237 @@ + + + + + HUB + MWFCF6 + 001 + active + hub API:MWFCF6 + + + + + ADMKanalID + + false + + + + + ADMPopis + + false + + + + + ADMSessionID + + false + + + + + ADMSuperUziID + + false + + + + + ADMUzivatelHeslo + + false + + + + + ADMUzivatelskeJmeno + + false + + + + + + + ADMDobaPlatnostiHesla + + false + + + + + ADMExistujiciUcet + + false + + + + + ADMIPAddress + + false + + + + + ADMJednorazoveHeslo + + false + + + + + ADMOMKod + + false + + + + + ADMPocetChybnychZadani + + false + + + + + ADMReprezentantOMJmenoPrijmeni + + false + + + + + ADMReprezentantOMTelefon + + false + + + + + ADMRoleVsechnaOM + + false + + + + + ADMTelefonHotline + + false + + + + + ADMTelefonServis + + false + + + + + ADMTimeOut + + false + + + + + ADMUzivatelID + + false + + + + + ADMUzivatelJazykID + + false + + + + + ADMUzivatelJmeno + + false + + + + + ADMUzivatelJmenoPrijmeni + + false + + + + + ADMUzivatelPrijmeni + + false + + + + + ADMUzivatelPusobisteID + + false + + + + + ADMUzivatelSSO + + false + + + + + ADMUzivatelTisk + + false + + + + + ADMUzivatelUrovenLogovani + + false + + + + + ADMVyssiPrava + + false + + + + + Data + + + + RS_ROLE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCF6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCF6_001_Dapi.xml new file mode 100644 index 0000000..cd206a8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCF6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFCF6 + 001 + DEVL + + + HUB + MWFCF6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCF7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCF7_001.xml new file mode 100644 index 0000000..1280914 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCF7_001.xml @@ -0,0 +1,314 @@ + + + + + HUB + MWFCF7 + 001 + active + hub API:MWFCF7 + + + + + ACCOUNT_NUMBER + + false + + + + + APPL_ID + + false + + + + + CARD_BRAND + + false + + + + + CHANNEL_TYPE + + false + + + + + CLIENT_GROUP + + false + + + + + CONTRACT_NUMBER + + false + + + + + CPI + + false + + + + + DEFER_DAYS_COUNT + + false + + + + + DEFER_MONTHS_COUNT + + false + + + + + DISCOUNT_TYPE + + false + + + + + FEE_PLAN_TYPE + + false + + + + + FIRST_DRAW_AMT + + false + + + + + GE_OBLGTN_SUM + + false + + + + + ID_OM + + false + + + + + INT_RATE + + false + + + + + LOAN_AMOUNT + + false + + + + + OPERATION_TYPE + + false + + + + + RBP_CATEGORY + + false + + + + + SALES_PRODUCT_TYPE + + false + + + + + TERM + + false + + + + + VARIANT_ID + + false + + + + + XSELL_CAMPAIGN + + false + + + + + + + BONUS_AMOUNT + + false + + + + + BONUS_PAY_PERIOD + + false + + + + + BONUS_PAY_TYPE + + false + + + + + BONUS_TOTAL_AMOUNT + + false + + + + + Data + + + + RS_FEE_TYPE + + false + + + + + RS_FEE_AMOUNT + + false + + + + + + false + + + + + ERR_MESSAGE + + false + + + + + FIRST_DRAW_AMT + + false + + + + + INST_AMOUNT + + false + + + + + INT_RATE + + false + + + + + LAST_INST_AMOUNT + + false + + + + + LOAN_AMOUNT + + false + + + + + PRODUCT_TYPE + + false + + + + + Pocet + + false + + + + + RPSN + + false + + + + + SUPPL_SERVICES_AMOUNT + + false + + + + + TERM + + false + + + + + TOTAL_AMOUNT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCF7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCF7_001_Dapi.xml new file mode 100644 index 0000000..8d1c716 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCF7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFCF7 + 001 + DEVL + + + HUB + MWFCF7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCH2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCH2_001.xml new file mode 100644 index 0000000..78700c4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCH2_001.xml @@ -0,0 +1,87 @@ + + + + + HUB + MWFCH2 + 001 + active + hub API:MWFCH2 + + + + + CIF + + false + + + + + Cache + + false + + + + + GeminiUserID + + false + + + + + ProductID + + false + + + + + Signature + + false + + + + + ZadostAP + + false + + + + + Zadost_KEY + + false + + + + + + + RequestID + + false + + + + + SchvalenoFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCH2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCH2_001_Dapi.xml new file mode 100644 index 0000000..fa8738b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCH2_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFCH2 + 001 + DEVL + + + HUB + MWFCH2 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + CBL.HUB.INP + + + + 4 + 60 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCJ4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCJ4_001.xml new file mode 100644 index 0000000..6c2fdc2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCJ4_001.xml @@ -0,0 +1,178 @@ + + + + + HUB + MWFCJ4 + 001 + active + hub API:MWFCJ4 + + + + + CAS_ROZMEZI_KONTAKTU + + false + + + + + CISLO_SMLOUVY + + false + + + + + CISLO_UCTU + + false + + + + + DATUM_EXPIRACE + + false + + + + + DATUM_KONTAKTU + + false + + + + + EMAIL + + false + + + + + HODNOTA_SUBJEKTU + + false + + + + + JMENO + + false + + + + + NAZEV_FIRMY + + false + + + + + OBEC + + false + + + + + OPERATOR_SSO + + false + + + + + POZNAMKA + + false + + + + + PREDNOSTNI_VYRIZENI + + false + + + + + PRIJMENI + + false + + + + + PRIRAZENY_BANKER + + false + + + + + SEGMENT + + false + + + + + TELEFON + + false + + + + + TELEFON2 + + false + + + + + TS_CIS_SUBJEKTU + + false + + + + + TYP_KONTAKTU + + false + + + + + ZAJEM_O_PRODUKT + + false + + + + + ZDROJ_KONTAKTU + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCJ4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCJ4_001_Dapi.xml new file mode 100644 index 0000000..7ae89d8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCJ4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFCJ4 + 001 + DEVL + + + HUB + MWFCJ4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCJ9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCJ9_001.xml new file mode 100644 index 0000000..64330e3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCJ9_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWFCJ9 + 001 + active + hub API:MWFCJ9 + + + + + CisloSmlouvy + + false + + + + + UUCislo + + false + + + + + + + CisloSmlouvy + + false + + + + + DatumPodpisuSmlouvy + + false + + + + + UUCislo + + false + + + + + ZadostAP + + false + + + + + Zadost_KEY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCJ9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCJ9_001_Dapi.xml new file mode 100644 index 0000000..71fc12c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCJ9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFCJ9 + 001 + DEVL + + + HUB + MWFCJ9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCK1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCK1_001.xml new file mode 100644 index 0000000..8480aff --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCK1_001.xml @@ -0,0 +1,175 @@ + + + + + HUB + MWFCK1 + 001 + active + hub API:MWFCK1 + + + + + INRS_DATA + + + + RS_TYPUCTU + + false + + + + + RS_CISLOUCTU + + false + + + + + + false + + + + + + + OUTRS_DATA + + + + RS_ID + + false + + + + + RS_PERIODA + + false + + + + + + RS_DATUMPLATNOSTIOD + + false + + + + + RS_CASTAKZBYVAJICIVPERIODE + + false + + + + + + RS_DATUMPLATNOSTDO + + false + + + + + RS_POCETTRANSAKCIVPERIODE + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_UZIVATELZMENY + + false + + + + + RS_CASTKALIMITU + + false + + + + + RS_KODBANKY + + false + + + + + RS_UCETPRIJEMCE + + false + + + + + RS_NAZEVUCTUPRIJEMCE + + false + + + + + RS_DATUMPOSLEDNIPLATBY + + false + + + + + RS_VYSEPOSLEDNIPLATBY + + false + + + + + RS_STAV + + false + + + + + RS_NAZEVUCTU + + false + + + + + RS_DATUMPOSLEDNIHOPOKUSU + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCK1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCK1_001_Dapi.xml new file mode 100644 index 0000000..064efaa --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCK1_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFCK1 + 001 + DEVL + + + HUB + MWFCK1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCK6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCK6_001.xml new file mode 100644 index 0000000..cd5db79 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCK6_001.xml @@ -0,0 +1,167 @@ + + + + + HUB + MWFCK6 + 001 + active + hub API:MWFCK6 + + + + + CLIENT_TYPE + + false + + + + + CONTRACT_ID + + false + + + + + CONTRACT_SYSTEM + + false + + + + + DISTR_CHANNEL_ID + + false + + + + + ICO + + false + + + + + NAME + + false + + + + + ONLINE_CHECK + + false + + + + + POS_ID + + false + + + + + SURNAME + + false + + + + + + + Data + + + + RS_PRODUCT_TYPE + + false + + + + + RS_INFOLIMIT + + false + + + + + RS_ACC_ID + + false + + + + + RS_CURRENCY + + false + + + + + RS_CONTRACT_NR + + false + + + + + RS_CASH_LIMIT_PERCENT + + false + + + + + RS_INSTALMENT_PERCENT + + false + + + + + RS_INFOLIMIT_GUARANTED + + false + + + + + + false + + + + + Index + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCK6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCK6_001_Dapi.xml new file mode 100644 index 0000000..83fa757 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCK6_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFCK6 + 001 + DEVL + + + HUB + MWFCK6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCS9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCS9_001.xml new file mode 100644 index 0000000..6e4f035 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCS9_001.xml @@ -0,0 +1,118 @@ + + + + + HUB + MWFCS9 + 001 + active + hub API:MWFCS9 + + + + + CIF + + false + + + + + + + Data + + + + RS_VYSENESPLACENEJISTINY + + false + + + + + RS_VYSESCHVALENECASTKY + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_VZTAHKHYPOTECE + + false + + + + + RS_MESICNISPLATKACELKEM + + false + + + + + RS_DATUMPRISTISPLATKY + + false + + + + + RS_DLUZNACASTKAPOSPLATNOSTI + + false + + + + + RS_STAVHYPOTEKY + + false + + + + + RS_DATUMDOSTUPNOSTIINFORMACI + + false + + + + + RS_DATUMPRVNINAZAPLACENESPLATKY + + false + + + + + RS_PRIZNAKODEPSANEHOUVERU + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCS9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCS9_001_Dapi.xml new file mode 100644 index 0000000..cd7fac6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCS9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFCS9 + 001 + DEVL + + + HUB + MWFCS9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCT0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCT0_001.xml new file mode 100644 index 0000000..5f06b72 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCT0_001.xml @@ -0,0 +1,87 @@ + + + + + HUB + MWFCT0 + 001 + active + hub API:MWFCT0 + + + + + CIF + + false + + + + + Cache + + false + + + + + CisloUctu + + false + + + + + ICO + + false + + + + + PoplatkovyPlan + + false + + + + + PoplatkovyPlanPuvodni + + false + + + + + RetezecDoCache + + false + + + + + TypAkce + + false + + + + + UzivatelID + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCT0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCT0_001_Dapi.xml new file mode 100644 index 0000000..e0c5afe --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCT0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFCT0 + 001 + DEVL + + + HUB + MWFCT0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCT2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCT2_001.xml new file mode 100644 index 0000000..26827c5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCT2_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWFCT2 + 001 + active + hub API:MWFCT2 + + + + + CisloUU + + false + + + + + + + SchvalenaVyseUveru + + false + + + + + StavHypoteky + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCT2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCT2_001_Dapi.xml new file mode 100644 index 0000000..1e0e7c3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCT2_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFCT2 + 001 + DEVL + + + HUB + MWFCT2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCV6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCV6_001.xml new file mode 100644 index 0000000..2bd3ce2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCV6_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWFCV6 + 001 + active + hub API:MWFCV6 + + + + + MajitelRC + + false + + + + + + + DuvodZamitnuti + + false + + + + + PojisteniPovoleno + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCV6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCV6_001_Dapi.xml new file mode 100644 index 0000000..20f2707 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCV6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFCV6 + 001 + DEVL + + + HUB + MWFCV6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCW6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCW6_001.xml new file mode 100644 index 0000000..14a595c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCW6_001.xml @@ -0,0 +1,206 @@ + + + + + HUB + MWFCW6 + 001 + active + hub API:MWFCW6 + + + + + BIRTH_NUMBER + + false + + + + + BUILD_NAME + + false + + + + + CHANNEL + + false + + + + + CLIENT_GROUP + + false + + + + + CLIENT_SIGNED + + false + + + + + CLIENT_TYPE + + false + + + + + CM_ID_IN + + false + + + + + CONTEXT + + false + + + + + DOCUMENT_GROUP + + false + + + + + DOCUMENT_TYPE + + false + + + + + ID_APPL + + false + + + + + PRODUCT_TYPE + + false + + + + + PrintType + + false + + + + + RTP_NAME + + false + + + + + TIMESTAMP_SIGN + + false + + + + + TRANSACTION_ID + + false + + + + + VALIDITY_FROM + + false + + + + + VIEW_CLIENT + + false + + + + + WIDTH + + false + + + + + XML + + false + + + + + + + BINARY_DATA_PDF + + false + + + + + BINARY_DATA_PNG + + false + + + + + CM_ID_OUT + + false + + + + + CM_ID_PNG + + false + + + + + LOCATION_PDF + + false + + + + + LOCATION_PNG + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCW6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCW6_001_Dapi.xml new file mode 100644 index 0000000..2b8e7fc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCW6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFCW6 + 001 + DEVL + + + HUB + MWFCW6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCX4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCX4_001.xml new file mode 100644 index 0000000..e3053b5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCX4_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWFCX4 + 001 + active + hub API:MWFCX4 + + + + + PRODUKT_TYPE + + false + + + + + + + PENALTY_INTERES + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCX4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCX4_001_Dapi.xml new file mode 100644 index 0000000..c65df1f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCX4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFCX4 + 001 + DEVL + + + HUB + MWFCX4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCX9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCX9_001.xml new file mode 100644 index 0000000..526c2b2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCX9_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWFCX9 + 001 + active + hub API:MWFCX9 + + + + + CisloUctuInterni + + false + + + + + + + FrekvenceNulovaniLimitu + + false + + + + + LimitTransakci + + false + + + + + PeriodaNulovaniLimitu + + false + + + + + PocetZauctovanychTran + + false + + + + + PristiDatumNulovaniLimitu + + false + + + + + SpecifickyDen + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFCX9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFCX9_001_Dapi.xml new file mode 100644 index 0000000..ef2d69f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFCX9_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFCX9 + 001 + DEVL + + + HUB + MWFCX9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD28_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD28_001.xml new file mode 100644 index 0000000..04b0cb1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD28_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWFD28 + 001 + active + hub API:MWFD28 + + + + + IDBusiness + + false + + + + + IDDruhSouhlasu + + false + + + + + IDSystem + + false + + + + + IDZaznamuUziv + + false + + + + + Prijmeni + + false + + + + + RC + + false + + + + + + + Stav + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD28_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD28_001_Dapi.xml new file mode 100644 index 0000000..0dcd19f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD28_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFD28 + 001 + DEVL + + + HUB + MWFD28 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD29_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD29_001.xml new file mode 100644 index 0000000..5b48216 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD29_001.xml @@ -0,0 +1,94 @@ + + + + + HUB + MWFD29 + 001 + active + hub API:MWFD29 + + + + + IDBusiness + + false + + + + + IDDruhSouhlasu + + false + + + + + IDSystem + + false + + + + + IDZaznamuUziv + + false + + + + + JednaciCislo + + false + + + + + Jmeno + + false + + + + + Prijmeni + + false + + + + + Propsat + + false + + + + + RC + + false + + + + + Stav + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD29_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD29_001_Dapi.xml new file mode 100644 index 0000000..52e623c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD29_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFD29 + 001 + DEVL + + + HUB + MWFD29 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD43_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD43_001.xml new file mode 100644 index 0000000..85f9bc0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD43_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWFD43 + 001 + active + hub API:MWFD43 + + + + + CisloSmlouvy + + false + + + + + FLIPKanal + + false + + + + + OMIT_OPTIONAL_CRITERIA + + false + + + + + Proces + + false + + + + + + + FLIPVysledekAktivace + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD43_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD43_001_Dapi.xml new file mode 100644 index 0000000..a4ed31d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD43_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFD43 + 001 + DEVL + + + HUB + MWFD43 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD54_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD54_001.xml new file mode 100644 index 0000000..0f46e79 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD54_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWFD54 + 001 + active + hub API:MWFD54 + + + + + CM_ID + + false + + + + + CM_VERSION + + false + + + + + + + DokumentURL + + false + + + + + FILENAME + + false + + + + + MIMETYPE + + false + + + + + SIZE + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD54_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD54_001_Dapi.xml new file mode 100644 index 0000000..af607d5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD54_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFD54 + 001 + DEVL + + + HUB + MWFD54 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD56_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD56_001.xml new file mode 100644 index 0000000..86b403a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD56_001.xml @@ -0,0 +1,80 @@ + + + + + HUB + MWFD56 + 001 + active + hub API:MWFD56 + + + + + CSouhlasCUR + + false + + + + + IDSystem + + false + + + + + IDZaznamuUziv + + false + + + + + JednaciCislo + + false + + + + + Jmeno + + false + + + + + Prijmeni + + false + + + + + Propsat + + false + + + + + RC + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD56_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD56_001_Dapi.xml new file mode 100644 index 0000000..414289f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD56_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFD56 + 001 + DEVL + + + HUB + MWFD56 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD58_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD58_001.xml new file mode 100644 index 0000000..302df9e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD58_001.xml @@ -0,0 +1,31 @@ + + + + + HUB + MWFD58 + 001 + active + hub API:MWFD58 + + + + + CM_ID + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD58_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD58_001_Dapi.xml new file mode 100644 index 0000000..0f843fa --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD58_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFD58 + 001 + DEVL + + + HUB + MWFD58 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD70_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD70_001.xml new file mode 100644 index 0000000..2d33370 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD70_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWFD70 + 001 + active + hub API:MWFD70 + + + + + Prijmeni + + false + + + + + RodneCislo + + false + + + + + Subjekt + + false + + + + + ZahrnoutMKT + + false + + + + + + + Stav101 + + false + + + + + Text101 + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFD70_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFD70_001_Dapi.xml new file mode 100644 index 0000000..43cb7da --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFD70_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFD70 + 001 + DEVL + + + HUB + MWFD70 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDB4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDB4_001.xml new file mode 100644 index 0000000..444d1f4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDB4_001.xml @@ -0,0 +1,860 @@ + + + + + HUB + MWFDB4 + 001 + active + hub API:MWFDB4 + + + + + ATTR_1 + + false + + + + + ATTR_10 + + false + + + + + ATTR_11 + + false + + + + + ATTR_2 + + false + + + + + ATTR_3 + + false + + + + + ATTR_4 + + false + + + + + ATTR_5 + + false + + + + + ATTR_6 + + false + + + + + ATTR_7 + + false + + + + + ATTR_8 + + false + + + + + ATTR_9 + + false + + + + + CHECKED_OUT + + false + + + + + CHECKED_USER + + false + + + + + FROM_POS + + false + + + + + ITEM_ID + + false + + + + + LOG_OP + + false + + + + + MAX_RES + + false + + + + + MULTI_1 + + false + + + + + MULTI_10 + + false + + + + + MULTI_11 + + false + + + + + MULTI_2 + + false + + + + + MULTI_3 + + false + + + + + MULTI_4 + + false + + + + + MULTI_5 + + false + + + + + MULTI_6 + + false + + + + + MULTI_7 + + false + + + + + MULTI_8 + + false + + + + + MULTI_9 + + false + + + + + NOT_1 + + false + + + + + NOT_10 + + false + + + + + NOT_11 + + false + + + + + NOT_2 + + false + + + + + NOT_3 + + false + + + + + NOT_4 + + false + + + + + NOT_5 + + false + + + + + NOT_6 + + false + + + + + NOT_7 + + false + + + + + NOT_8 + + false + + + + + NOT_9 + + false + + + + + OP_1 + + false + + + + + OP_10 + + false + + + + + OP_11 + + false + + + + + OP_2 + + false + + + + + OP_3 + + false + + + + + OP_4 + + false + + + + + OP_5 + + false + + + + + OP_6 + + false + + + + + OP_7 + + false + + + + + OP_8 + + false + + + + + OP_9 + + false + + + + + SORT_BY + + false + + + + + SORT_ORDER + + false + + + + + VALUE_DATETIME_1 + + false + + + + + VALUE_DATETIME_10 + + false + + + + + VALUE_DATETIME_2 + + false + + + + + VALUE_DATETIME_3 + + false + + + + + VALUE_DATETIME_4 + + false + + + + + VALUE_DATETIME_5 + + false + + + + + VALUE_DATETIME_6 + + false + + + + + VALUE_DATETIME_7 + + false + + + + + VALUE_DATETIME_8 + + false + + + + + VALUE_DATETIME_9 + + false + + + + + VALUE_DATE_1 + + false + + + + + VALUE_DATE_10 + + false + + + + + VALUE_DATE_2 + + false + + + + + VALUE_DATE_3 + + false + + + + + VALUE_DATE_4 + + false + + + + + VALUE_DATE_5 + + false + + + + + VALUE_DATE_6 + + false + + + + + VALUE_DATE_7 + + false + + + + + VALUE_DATE_8 + + false + + + + + VALUE_DATE_9 + + false + + + + + VALUE_INTEGER_1 + + false + + + + + VALUE_INTEGER_10 + + false + + + + + VALUE_INTEGER_2 + + false + + + + + VALUE_INTEGER_3 + + false + + + + + VALUE_INTEGER_4 + + false + + + + + VALUE_INTEGER_5 + + false + + + + + VALUE_INTEGER_6 + + false + + + + + VALUE_INTEGER_7 + + false + + + + + VALUE_INTEGER_8 + + false + + + + + VALUE_INTEGER_9 + + false + + + + + VALUE_STRING_1 + + false + + + + + VALUE_STRING_10 + + false + + + + + VALUE_STRING_11_LIST + + false + + + + + VALUE_STRING_2 + + false + + + + + VALUE_STRING_3 + + false + + + + + VALUE_STRING_4 + + false + + + + + VALUE_STRING_5 + + false + + + + + VALUE_STRING_6 + + false + + + + + VALUE_STRING_7 + + false + + + + + VALUE_STRING_8 + + false + + + + + VALUE_STRING_9 + + false + + + + + + + Data + + + + RS_CM_ID + + false + + + + + RS_UZIVATEL + + false + + + + + RS_DATUMCASZALOZENI + + false + + + + + RS_UZIVATELZMENA + + false + + + + + RS_DATUMCASZMENA + + false + + + + + RS_SPRAVCE + + false + + + + + RS_TYPPRODUKTU + + false + + + + + RS_TYPDOKUMENTU + + false + + + + + RS_SEGMENTKLIENTU + + false + + + + + RS_SKUPINADOKUMENTU + + false + + + + + RS_PLATNOSTOD + + false + + + + + RS_PLATNOSTDO + + false + + + + + RS_UCEL + + false + + + + + RS_POZNAMKA + + false + + + + + RS_JAZYK + + false + + + + + RS_NAZEV_DOKUMENTU + + false + + + + + RS_SKUPINAKLIENTU + + false + + + + + RS_CHARAKTER + + false + + + + + RS_DISTRIBUCE + + false + + + + + RS_CITLIVOST + + false + + + + + RS_PRISTUP + + false + + + + + RS_LHUTASKARTACE + + false + + + + + RS_DATUMSKARTACE + + false + + + + + RS_SKUPINAPRODUKTU + + false + + + + + + false + + + + + TOTAL_REC + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDB4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDB4_001_Dapi.xml new file mode 100644 index 0000000..32f00a3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDB4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFDB4 + 001 + DEVL + + + HUB + MWFDB4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDB8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDB8_001.xml new file mode 100644 index 0000000..23bb026 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDB8_001.xml @@ -0,0 +1,115 @@ + + + + + HUB + MWFDB8 + 001 + active + hub API:MWFDB8 + + + + + AMOUNT + + false + + + + + CARDEXPIRYDATE + + false + + + + + CARDNUMBER + + false + + + + + REFERENCENUMBER + + false + + + + + TERMID + + false + + + + + TRANSACTIONTYPE + + false + + + + + + + AMOUNT + + false + + + + + CARDEXPIRYDATE + + false + + + + + CARDNUMBER + + false + + + + + REFERENCENUMBER + + false + + + + + RESPONSECODE + + false + + + + + RESULT + + false + + + + + TRANSACTIONTYPE + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDB8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDB8_001_Dapi.xml new file mode 100644 index 0000000..70b97ba --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDB8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFDB8 + 001 + DEVL + + + HUB + MWFDB8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDH2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDH2_001.xml new file mode 100644 index 0000000..997d50f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDH2_001.xml @@ -0,0 +1,216 @@ + + + + + HUB + MWFDH2 + 001 + active + hub API:MWFDH2 + + + + + BIRTH_NUMBER + + false + + + + + ID_APPL + + false + + + + + + + Data + + + + RS_CM_ID + + false + + + + + RS_ITEMTYPE + + false + + + + + RS_SEMANTIC_TYPE + + false + + + + + RS_CRT_USR + + false + + + + + RS_CRT_TIME + + false + + + + + RS_CHG_USR + + false + + + + + RS_CHG_TIME + + false + + + + + RS_CHCKOUT_USR + + false + + + + + RS_CHCKOUT_TIME + + false + + + + + RS_IB_TYP_DOKUMENTU + + false + + + + + RS_GE_RODNE_CISLO + + false + + + + + RS_IB_ID_DOKUMENTU + + false + + + + + RS_IB_ZPUSOBPODPISU + + false + + + + + RS_IB_IDPODPISU + + false + + + + + RS_IB_STAVSLUZBY + + false + + + + + RS_IB_REGISTAUTORITA + + false + + + + + RS_IB_CASOVERAZITKO + + false + + + + + RS_GE_DISTRIBUCE + + false + + + + + RS_GE_PRISTUP + + false + + + + + RS_DS_CHARAKTER_DOK + + false + + + + + RS_DS_LHUTA_SKART + + false + + + + + RS_DS_DATUM_SKART + + false + + + + + RS_DS_CITLIVOST_DOKU + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDH2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDH2_001_Dapi.xml new file mode 100644 index 0000000..7006989 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDH2_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFDH2 + 001 + DEVL + + + HUB + MWFDH2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDI0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDI0_001.xml new file mode 100644 index 0000000..272c51c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDI0_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWFDI0 + 001 + active + hub API:MWFDI0 + + + + + CISLOUCTU + + false + + + + + + + ExistenceUctu + + false + + + + + OtevrenyProPlatby + + false + + + + + TypChyby + + false + + + + + ZakazanyUcet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDI0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDI0_001_Dapi.xml new file mode 100644 index 0000000..91599eb --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDI0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFDI0 + 001 + DEVL + + + HUB + MWFDI0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDL7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDL7_001.xml new file mode 100644 index 0000000..1b62452 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDL7_001.xml @@ -0,0 +1,97 @@ + + + + HUB + MWFDL7 + 001 + active + hub API:MWFDL7 + false + + + + + DEL_FLAG + + false + + false + + + + ICO + + false + + false + + + + IDSegmentu + + false + + false + + + + INST_PT_KEY + + false + + false + + + + Komentar + + false + + false + + + + PrivatniBankerSSO + + false + + false + + + + RC + + false + + false + + + + SRC_SYS_ID + + false + + false + + + + SSOUrednika + + false + + false + + + + TypVazby + + false + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDL7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDL7_001_Dapi.xml new file mode 100644 index 0000000..8868989 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDL7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFDL7 + 001 + TEST + + + HUB + MWFDL7 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDN8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDN8_001.xml new file mode 100644 index 0000000..6e6b1b7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDN8_001.xml @@ -0,0 +1,87 @@ + + + + + HUB + MWFDN8 + 001 + active + hub API:MWFDN8 + + + + + CM_ID_IN + + false + + + + + DOC_FORMAT + + false + + + + + DOC_URL_IN + + false + + + + + OUTPUT_MODE + + false + + + + + UlozitPNG + + false + + + + + WIDTH + + false + + + + + + + BINARY_DATA + + false + + + + + CM_ID_OUT + + false + + + + + DOC_URL_OUT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDN8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDN8_001_Dapi.xml new file mode 100644 index 0000000..46f45e1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDN8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFDN8 + 001 + DEVL + + + HUB + MWFDN8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDO8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDO8_001.xml new file mode 100644 index 0000000..209591b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDO8_001.xml @@ -0,0 +1,122 @@ + + + + + HUB + MWFDO8 + 001 + active + hub API:MWFDO8 + + + + + CIF + + false + + + + + Cache_Pouzit + + false + + + + + Cache_Signature + + false + + + + + Cache_SystemID + + false + + + + + CisloKarty + + false + + + + + DatumOdblokovani + + false + + + + + DruhBlokace + + false + + + + + DrzitelRC + + false + + + + + DuvodBlokace + + false + + + + + JazykSMS + + false + + + + + TelefonMobilni + + false + + + + + Urednik + + false + + + + + + + Cache_RequestID + + false + + + + + OnlineFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDO8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDO8_001_Dapi.xml new file mode 100644 index 0000000..e510fa6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDO8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFDO8 + 001 + DEVL + + + HUB + MWFDO8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDQ4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDQ4_001.xml new file mode 100644 index 0000000..8be25b1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDQ4_001.xml @@ -0,0 +1,373 @@ + + + + + HUB + MWFDQ4 + 001 + active + hub API:MWFDQ4 + + + + + Data + + + + RS_UCET_KEY + + false + + + + + RS_ZADOST_KEY + + false + + + + + RS_INST_PT_KEY + + false + + + + + RS_DEL_FLAG + + false + + + + + RS_UCELUCTU + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_IBAN + + false + + + + + RS_KODBANKY + + false + + + + + RS_BIC + + false + + + + + RS_MENA + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_VARIABILNISYMBOL + + false + + + + + RS_OBCHODNIMISTO + + false + + + + + RS_DATUMOTEVRENI + + false + + + + + RS_OBRAT1_MESIC + + false + + + + + RS_OBRAT1_ROK + + false + + + + + RS_OBRAT1_VYSE + + false + + + + + RS_OBRAT2_MESIC + + false + + + + + RS_OBRAT2_ROK + + false + + + + + RS_OBRAT2_VYSE + + false + + + + + RS_OBRAT3_MESIC + + false + + + + + RS_OBRAT3_ROK + + false + + + + + RS_OBRAT3_VYSE + + false + + + + + + false + + + + + + + Data + + + + RS_UCET_KEY + + false + + + + + RS_ZADOST_KEY + + false + + + + + RS_INST_PT_KEY + + false + + + + + RS_DEL_FLAG + + false + + + + + RS_UCELUCTU + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_IBAN + + false + + + + + RS_KODBANKY + + false + + + + + RS_BIC + + false + + + + + RS_MENA + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_VARIABILNISYMBOL + + false + + + + + RS_OBCHODNIMISTO + + false + + + + + RS_DATUMOTEVRENI + + false + + + + + RS_OBRAT1_MESIC + + false + + + + + RS_OBRAT1_ROK + + false + + + + + RS_OBRAT1_VYSE + + false + + + + + RS_OBRAT2_MESIC + + false + + + + + RS_OBRAT2_ROK + + false + + + + + RS_OBRAT2_VYSE + + false + + + + + RS_OBRAT3_MESIC + + false + + + + + RS_OBRAT3_ROK + + false + + + + + RS_OBRAT3_VYSE + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDQ4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDQ4_001_Dapi.xml new file mode 100644 index 0000000..70f9db0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDQ4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFDQ4 + 001 + DEVL + + + HUB + MWFDQ4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDT7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDT7_001.xml new file mode 100644 index 0000000..69013b9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDT7_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWFDT7 + 001 + active + hub API:MWFDT7 + + + + + DuvodStorna + + false + + + + + FunkceOperatora + + false + + + + + OsobniBanker_ID + + false + + + + + OsobniBanker_Jmeno + + false + + + + + OsobniBanker_Prijmeni + + false + + + + + OsobniBanker_SSO + + false + + + + + WF_ID + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDT7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDT7_001_Dapi.xml new file mode 100644 index 0000000..dfae277 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDT7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFDT7 + 001 + DEVL + + + HUB + MWFDT7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDU8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDU8_001.xml new file mode 100644 index 0000000..a4a3624 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDU8_001.xml @@ -0,0 +1,1179 @@ + + + + + HUB + MWFDU8 + 001 + active + hub API:MWFDU8 + + + + + CIF + + false + + + + + DanovyPoradce + + false + + + + + DatumNarozeni + + false + + + + + DatumPodpisu101 + + false + + + + + DatumZamOd + + false + + + + + EvidencniCislo + + false + + + + + EvidencniCislo_Duvod + + false + + + + + EvidencniCislo_Komentar + + false + + + + + Form_Type_ID + + false + + + + + GEZamestnanecPriznak + + false + + + + + ICO + + false + + + + + INST_PT_KEY + + false + + + + + JmenoKrestni1 + + false + + + + + JmenoKrestni2 + + false + + + + + KONT_ADR_KEY + + false + + + + + KONT_EMAIL_KEY + + false + + + + + KONT_MOBIL_JINY_KEY + + false + + + + + KONT_MOBIL_KEY + + false + + + + + KONT_PEVNA_LINKA_KEY + + false + + + + + KlientTypMKT + + false + + + + + Kont_AdrAdresat + + false + + + + + Kont_AdrCO + + false + + + + + Kont_AdrCP + + false + + + + + Kont_AdrObec + + false + + + + + Kont_AdrPSC + + false + + + + + Kont_AdrPobytOd + + false + + + + + Kont_AdrPosta + + false + + + + + Kont_AdrUlice + + false + + + + + Kont_AdrZeme + + false + + + + + Kont_Email + + false + + + + + Kont_Mobil + + false + + + + + Kont_Mobil_Jiny + + false + + + + + Kont_PevnaLinka + + false + + + + + MistoNarozeni + + false + + + + + NFC_MSISDN + + false + + + + + NFC_MSISDN_KEY + + false + + + + + OSOBNIDOKLAD1_KEY + + false + + + + + OSOBNIDOKLAD2_KEY + + false + + + + + ObchodniNazev + + false + + + + + OsobniDoklad1Cislo + + false + + + + + OsobniDoklad1PlatnostDo + + false + + + + + OsobniDoklad1Typ + + false + + + + + OsobniDoklad1Zeme + + false + + + + + OsobniDoklad2Cislo + + false + + + + + OsobniDoklad2PlatnostDo + + false + + + + + OsobniDoklad2Typ + + false + + + + + OsobniDoklad2Zeme + + false + + + + + OstatniZivotniNaklady + + false + + + + + PODN_ADR_KEY + + false + + + + + PODN_EMAIL_KEY + + false + + + + + PODN_MOBIL_JINY_KEY + + false + + + + + PODN_MOBIL_KEY + + false + + + + + PODN_PEVNA_LINKA_KEY + + false + + + + + PRIJEM_CistyMesicni_KEY + + false + + + + + PRIJEM_DomacnostiMesicni_KEY + + false + + + + + PRIJEM_HrubyRocni_KEY + + false + + + + + PRIJEM_ZakladDane_KEY + + false + + + + + PobytPovolenDo + + false + + + + + PocetClenuSdruzeni + + false + + + + + PocetVyzivovanychOsob + + false + + + + + Podn_AdrCO + + false + + + + + Podn_AdrCP + + false + + + + + Podn_AdrObec + + false + + + + + Podn_AdrPSC + + false + + + + + Podn_AdrPosta + + false + + + + + Podn_AdrUlice + + false + + + + + Podn_AdrZeme + + false + + + + + Podn_Email + + false + + + + + Podn_Mobil + + false + + + + + Podn_Mobil_Jiny + + false + + + + + Podn_PevnaLinka + + false + + + + + Pohlavi + + false + + + + + Povolani + + false + + + + + PovolaniTyp + + false + + + + + PracovniPomer + + false + + + + + PreruseniCinnosti + + false + + + + + Prijem_CistyMesicni3M + + false + + + + + Prijem_DomacnostMesicni + + false + + + + + Prijem_HrubyRocni + + false + + + + + Prijem_OstatniNonGESplatky + + false + + + + + Prijem_PocetZdroju + + false + + + + + Prijem_ZakladDane + + false + + + + + Prijem_ZdanovaciObdobi + + false + + + + + Prijmeni + + false + + + + + PrijmeniRodne + + false + + + + + PrimarniBankovnictvi_Flag + + false + + + + + RezidenceFlag + + false + + + + + RodinnyStav + + false + + + + + RodinnyStavOvereni + + false + + + + + RodneCislo + + false + + + + + SdruzeniFOP + + false + + + + + Souhlas101Flag + + false + + + + + SouhlasECBStav + + false + + + + + SrazkyZeMzdy + + false + + + + + StatniPrislusnost + + false + + + + + StatutarniOrgan + + false + + + + + TRV_ADR_KEY + + false + + + + + TRV_EMAIL_KEY + + false + + + + + TRV_MOBIL_JINY_KEY + + false + + + + + TRV_MOBIL_KEY + + false + + + + + TRV_PEVNA_LINKA_KEY + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + Trv_AdrAdresat + + false + + + + + Trv_AdrCO + + false + + + + + Trv_AdrCP + + false + + + + + Trv_AdrObec + + false + + + + + Trv_AdrPSC + + false + + + + + Trv_AdrPosta + + false + + + + + Trv_AdrUlice + + false + + + + + Trv_AdrZeme + + false + + + + + Trv_Email + + false + + + + + Trv_Mobil + + false + + + + + Trv_Mobil_Jiny + + false + + + + + Trv_PevnaLinka + + false + + + + + TypBydleni + + false + + + + + TypKlienta + + false + + + + + TypPobytu + + false + + + + + VPS_Flag + + false + + + + + Vzdelani + + false + + + + + ZAM_ADR_KEY + + false + + + + + ZAM_MOBIL_KEY + + false + + + + + ZAM_PEVNALINKA_KEY + + false + + + + + Zam_AdrAdresat + + false + + + + + Zam_AdrCO + + false + + + + + Zam_AdrCP + + false + + + + + Zam_AdrObec + + false + + + + + Zam_AdrPSC + + false + + + + + Zam_AdrPosta + + false + + + + + Zam_AdrUlice + + false + + + + + Zam_AdrZeme + + false + + + + + Zam_Mobil + + false + + + + + Zam_PevnaLinka + + false + + + + + ZamestnanDo + + false + + + + + Zamestnavatel_ICO + + false + + + + + Zamestnavatel_Nazev + + false + + + + + Zamestnavatel_Zeme + + false + + + + + ZuzeneSJM + + false + + + + + ZvlastniVztahKBance + + false + + + + + + + INST_PT_KEY + + false + + + + + KONT_ADR_KEY + + false + + + + + KONT_EMAIL_KEY + + false + + + + + KONT_MOBIL_JINY_KEY + + false + + + + + KONT_MOBIL_KEY + + false + + + + + KONT_PEVNA_LINKA_KEY + + false + + + + + NFC_MSISDN_KEY + + false + + + + + OSOBNIDOKLAD1_KEY + + false + + + + + OSOBNIDOKLAD2_KEY + + false + + + + + PODN_ADR_KEY + + false + + + + + PODN_EMAIL_KEY + + false + + + + + PODN_MOBIL_JINY_KEY + + false + + + + + PODN_MOBIL_KEY + + false + + + + + PODN_PEVNA_LINKA_KEY + + false + + + + + PRIJEM_CistyMesicni_KEY + + false + + + + + PRIJEM_DomacnostiMesicni_KEY + + false + + + + + PRIJEM_HrubyRocni_KEY + + false + + + + + PRIJEM_ZakladDane_KEY + + false + + + + + TRV_ADR_KEY + + false + + + + + TRV_EMAIL_KEY + + false + + + + + TRV_MOBIL_JINY_KEY + + false + + + + + TRV_MOBIL_KEY + + false + + + + + TRV_PEVNA_LINKA_KEY + + false + + + + + ZAM_ADR_KEY + + false + + + + + ZAM_MOBIL_KEY + + false + + + + + ZAM_PEVNALINKA_KEY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDU8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDU8_001_Dapi.xml new file mode 100644 index 0000000..6427066 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDU8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFDU8 + 001 + DEVL + + + HUB + MWFDU8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDW8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDW8_001.xml new file mode 100644 index 0000000..da2bf9f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDW8_001.xml @@ -0,0 +1,132 @@ + + + + + HUB + MWFDW8 + 001 + active + hub API:MWFDW8 + + + + + BirthNumber + + false + + + + + CIF + + false + + + + + + + Data + + + + RS_MOBILEPHONENUMBER + + false + + + + + RS_RELATIONSHIPNUMBER + + false + + + + + RS_STATE + + false + + + + + RS_CARDNUMBER + + false + + + + + RS_HOTLINK + + false + + + + + RS_RELATIONSHIPNUMBERPREVIOUS + + false + + + + + RS_EMAIL + + false + + + + + RS_ACCOUNTNUMBER + + false + + + + + RS_FUNDINAPPROVAL + + false + + + + + RS_BALANCEAMOUNT + + false + + + + + RS_NICKNAME + + false + + + + + RS_CARDNUMBERMASK + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDW8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDW8_001_Dapi.xml new file mode 100644 index 0000000..80b08bc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDW8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFDW8 + 001 + DEVL + + + HUB + MWFDW8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDY2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDY2_001.xml new file mode 100644 index 0000000..e6acbd0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDY2_001.xml @@ -0,0 +1,62 @@ + + + + + HUB + MWFDY2 + 001 + active + hub API:MWFDY2 + + + + + PRODUCT_ID + + false + + + + + + + Data + + + + RS_PRODUCT_ID + + false + + + + + RS_FIXATION + + false + + + + + RS_NAME + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFDY2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFDY2_001_Dapi.xml new file mode 100644 index 0000000..a728e00 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFDY2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFDY2 + 001 + DEVL + + + HUB + MWFDY2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFE62_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFE62_001.xml new file mode 100644 index 0000000..bf19669 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFE62_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWFE62 + 001 + active + hub API:MWFE62 + + + + + NewVersion + + false + + + + + PidNew + + false + + + + + PidOld + + false + + + + + UrlNew + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFE62_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFE62_001_Dapi.xml new file mode 100644 index 0000000..c2cbb20 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFE62_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFE62 + 001 + DEVL + + + HUB + MWFE62 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFED4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFED4_001.xml new file mode 100644 index 0000000..061b584 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFED4_001.xml @@ -0,0 +1,121 @@ + + + + + HUB + MWFED4 + 001 + active + hub API:MWFED4 + + + + + BIRTH_NUMBER + + false + + + + + CERTIFICATION_TYPE + + false + + + + + CLIENT_PARTY_TYPE + + false + + + + + DATA_IN + + + + RS_BUSSINES_PRODUCT_TYPE + + false + + + + + RS_BPT_FLAG + + false + + + + + RS_ACCOUNT_BALANCE + + false + + + + + + false + + + + + ICO + + false + + + + + LANG_VERSION + + false + + + + + MASK_TYPE + + false + + + + + + + DATA + + + + RS_IB_TAB + + false + + + + + RS_HTML_PAGE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFED4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFED4_001_Dapi.xml new file mode 100644 index 0000000..d27946a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFED4_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFED4 + 001 + DEVL + + + HUB + MWFED4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEJ1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEJ1_001.xml new file mode 100644 index 0000000..9d72759 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEJ1_001.xml @@ -0,0 +1,199 @@ + + + + + HUB + MWFEJ1 + 001 + active + hub API:MWFEJ1 + + + + + SRC_ADDRESS_TYPE + + false + + + + + SRC_ADR_INSTANCE_ID + + false + + + + + SRC_CITY + + false + + + + + SRC_COUNTRY_CODE + + false + + + + + SRC_LRN + + false + + + + + SRC_SN + + false + + + + + SRC_STREET + + false + + + + + SRC_SYSTEM + + false + + + + + SRC_ZIP + + false + + + + + + + CLEARING_CODE + + false + + + + + PAD_BOTTOMROW + + false + + + + + PAD_MIDDLEROW + + false + + + + + PAD_TOPROW + + false + + + + + SCORE_INSTANCE + + false + + + + + SRC_ADR_INSTANCE_ID + + false + + + + + STD_ADDRESS_ID + + false + + + + + STD_CITY + + false + + + + + STD_CITY_DISTRICT + + false + + + + + STD_COUNTRY_CODE + + false + + + + + STD_LRN + + false + + + + + STD_POST_OFFICE + + false + + + + + STD_REGION + + false + + + + + STD_SN + + false + + + + + STD_STREET + + false + + + + + STD_ZIP + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEJ1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEJ1_001_Dapi.xml new file mode 100644 index 0000000..33d979c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEJ1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFEJ1 + 001 + DEVL + + + HUB + MWFEJ1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEL4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEL4_001.xml new file mode 100644 index 0000000..8f31410 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEL4_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWFEL4 + 001 + active + hub API:MWFEL4 + + + + + CisloUverovehoUctu + + false + + + + + DistribuceVypisu + + false + + + + + PeriodaVypisu + + false + + + + + VypisUctovatPoplatek + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEL4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEL4_001_Dapi.xml new file mode 100644 index 0000000..c25a4b7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEL4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFEL4 + 001 + DEVL + + + HUB + MWFEL4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEP3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEP3_001.xml new file mode 100644 index 0000000..3a567d4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEP3_001.xml @@ -0,0 +1,31 @@ + + + + + HUB + MWFEP3 + 001 + active + hub API:MWFEP3 + + + + + KUL_KEY + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEP3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEP3_001_Dapi.xml new file mode 100644 index 0000000..718694f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEP3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFEP3 + 001 + DEVL + + + HUB + MWFEP3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEP8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEP8_001.xml new file mode 100644 index 0000000..360dcd5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEP8_001.xml @@ -0,0 +1,69 @@ + + + + + HUB + MWFEP8 + 001 + active + hub API:MWFEP8 + + + + + Produkt + + false + + + + + + + Data + + + + RS_DENZUCTOVACIHOOBDOBI + + false + + + + + RS_DENSPLATKY + + false + + + + + RS_DEFAULT + + false + + + + + RS_POPISEK + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEP8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEP8_001_Dapi.xml new file mode 100644 index 0000000..e6575f1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEP8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFEP8 + 001 + DEVL + + + HUB + MWFEP8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEQ6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEQ6_001.xml new file mode 100644 index 0000000..ea79e5d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEQ6_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWFEQ6 + 001 + active + hub API:MWFEQ6 + + + + + APPLICATIONKEY + + false + + + + + CYCLE_CONTEXT + + false + + + + + + + BUSSTATE + + false + + + + + WFID + + false + + + + + WFPrechodStavu + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEQ6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEQ6_001_Dapi.xml new file mode 100644 index 0000000..030d021 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEQ6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFEQ6 + 001 + DEVL + + + HUB + MWFEQ6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEQ7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEQ7_001.xml new file mode 100644 index 0000000..d866c7b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEQ7_001.xml @@ -0,0 +1,101 @@ + + + + + HUB + MWFEQ7 + 001 + active + hub API:MWFEQ7 + + + + + ACCOUNTNUMBER + + false + + + + + BANKERSPROFILE + + false + + + + + CARDLOGO + + false + + + + + CONTRACTNUMBER + + false + + + + + CONTRACTSIGNED + + false + + + + + CREDITACCOUNTNUMBER + + false + + + + + DISTRIBUTIONCHANNELL + + false + + + + + DOCUMENTID + + false + + + + + SETFEE + + false + + + + + WFID + + false + + + + + + + CHECK_STATE + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEQ7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEQ7_001_Dapi.xml new file mode 100644 index 0000000..d2b312e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEQ7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFEQ7 + 001 + DEVL + + + HUB + MWFEQ7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFER5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFER5_001.xml new file mode 100644 index 0000000..62c8660 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFER5_001.xml @@ -0,0 +1,143 @@ + + + + + HUB + MWFER5 + 001 + active + hub API:MWFER5 + + + + + APP_KEY + + false + + + + + CNL_ID + + false + + + + + CONSULTANT_EMPR_ICO + + false + + + + + CONSULTANT_EMPR_NAME + + false + + + + + CONSULTANT_ID + + false + + + + + CONSULTANT_MTS_ID + + false + + + + + DOC_INST_KEY + + false + + + + + EMP_PROCESS_ROLE_ID + + false + + + + + EMP_ROLE_ID + + false + + + + + EMP_ROLE_KEY + + false + + + + + EMP_SSO + + false + + + + + FAMILY_NAME + + false + + + + + FIRST_NAME + + false + + + + + POS_ID + + false + + + + + PRIM_FLAG + + false + + + + + SALESMAN_STAMP_FLAG + + false + + + + + + + EMP_ROLE_KEY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFER5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFER5_001_Dapi.xml new file mode 100644 index 0000000..15a2dff --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFER5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFER5 + 001 + DEVL + + + HUB + MWFER5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFER6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFER6_001.xml new file mode 100644 index 0000000..94d60e2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFER6_001.xml @@ -0,0 +1,174 @@ + + + + + HUB + MWFER6 + 001 + active + hub API:MWFER6 + + + + + APP_KEY + + false + + + + + DOC_INST_KEY + + false + + + + + EMP_PROCESS_ROLE_ID + + false + + + + + EMP_ROLE_ID + + false + + + + + EMP_SSO + + false + + + + + + + Data + + + + RS_CNL_ID + + false + + + + + RS_EMP_PROCESS_ROLE_ID + + false + + + + + RS_EMP_ROLE_ID_OUT + + false + + + + + RS_SSO_ID + + false + + + + + RS_FIRST_NAME + + false + + + + + RS_FAMILY_NAME + + false + + + + + RS_CONSULTANT_ID + + false + + + + + RS_CONSULTANT_EMPR_ICO + + false + + + + + RS_CONSULTANT_EMPR_NAME + + false + + + + + RS_PRIM_FLAG + + false + + + + + RS_CONSULTANT_MTS_ID + + false + + + + + RS_EMP_ROLE_KEY + + false + + + + + RS_SALESMAN_STAMP_FLAG + + false + + + + + RS_POS_ID + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFER6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFER6_001_Dapi.xml new file mode 100644 index 0000000..e6fc8d3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFER6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFER6 + 001 + DEVL + + + HUB + MWFER6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFET2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFET2_001.xml new file mode 100644 index 0000000..4c5f300 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFET2_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWFET2 + 001 + active + hub API:MWFET2 + + + + + APPLICATIONKEY + + false + + + + + DISTRIBUTIONCHANNELL + + false + + + + + WFID + + false + + + + + + + KORESULT + + false + + + + + PodpisPocetUredniku + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFET2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFET2_001_Dapi.xml new file mode 100644 index 0000000..e23e4d8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFET2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFET2 + 001 + DEVL + + + HUB + MWFET2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEU5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEU5_001.xml new file mode 100644 index 0000000..48f567a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEU5_001.xml @@ -0,0 +1,230 @@ + + + + + HUB + MWFEU5 + 001 + active + hub API:MWFEU5 + + + + + CIF + + false + + + + + GetBlackLists + + false + + + + + GetUnverified + + false + + + + + ICO + + false + + + + + RodneCislo + + false + + + + + SegmentProFxTool + + false + + + + + TypOsoby + + false + + + + + UniPtKey + + false + + + + + + + Data + + + + RS_UNI_PT_SEG_KEY + + false + + + + + RS_SRC_ID + + false + + + + + RS_SRC_SYS_ID + + false + + + + + RS_UNI_PT_KEY + + false + + + + + RS_BUS_CODE + + false + + + + + RS_SEGM_CODE + + false + + + + + RS_SEG_CODE + + false + + + + + RS_SEG_DT + + false + + + + + RS_NOTE + + false + + + + + RS_INS_SSO + + false + + + + + RS_INS_DT + + false + + + + + RS_UPD_SSO + + false + + + + + RS_UPD_DT + + false + + + + + RS_RSN_TP_CODE + + false + + + + + RS_EXPIRE_DATE + + false + + + + + RS_SRC_ENTITY + + false + + + + + RS_DEL_FLAG + + false + + + + + RS_SRC_ROLE + + false + + + + + RS_SRC_ROW_ID + + false + + + + + RS_DESCR + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEU5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEU5_001_Dapi.xml new file mode 100644 index 0000000..e9ff4e8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEU5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFEU5 + 001 + DEVL + + + HUB + MWFEU5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEU6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEU6_001.xml new file mode 100644 index 0000000..c9f87ab --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEU6_001.xml @@ -0,0 +1,160 @@ + + + + + HUB + MWFEU6 + 001 + active + hub API:MWFEU6 + + + + + APP_KEY + + false + + + + + CHANNEL_TYPE + + false + + + + + CLIENT_TYPE + + false + + + + + EMPL_ICO + + false + + + + + ID_OM + + false + + + + + ID_WEB_PARTNER + + false + + + + + LOAN_AMOUNT + + false + + + + + MASS_AFFLUENT_FLAG + + false + + + + + PRDCT_CAND_KEY + + false + + + + + PRODUCT_CLASS + + false + + + + + TERM + + false + + + + + VALIDITY + + false + + + + + XSELL_CAMPAIGN + + false + + + + + + + Data + + + + RS_DISCOUNT_TYPE + + false + + + + + RS_DISCOUNT_TYPE_POPIS + + false + + + + + RS_RETENTION_FLAG + + false + + + + + RS_DISCOUNT_TYPE_DESC_ADC + + false + + + + + + false + + + + + MIN_INT_RATE + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEU6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEU6_001_Dapi.xml new file mode 100644 index 0000000..62e8012 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEU6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFEU6 + 001 + DEVL + + + HUB + MWFEU6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEW4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEW4_001.xml new file mode 100644 index 0000000..a4799c8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEW4_001.xml @@ -0,0 +1,87 @@ + + + + + HUB + MWFEW4 + 001 + active + hub API:MWFEW4 + + + + + APPL_KEY + + false + + + + + APPL_PRINTED_FLAG + + false + + + + + APPL_READ_FLAG + + false + + + + + APPL_SET_KEY + + false + + + + + APPROVER_REQ_KEY + + false + + + + + CONTEXT + + false + + + + + REQ_INFOLIMIT_TYPE + + false + + + + + WF_ID + + false + + + + + WF_STATE + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEW4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEW4_001_Dapi.xml new file mode 100644 index 0000000..2376b41 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEW4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFEW4 + 001 + DEVL + + + HUB + MWFEW4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEX8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEX8_001.xml new file mode 100644 index 0000000..5733175 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEX8_001.xml @@ -0,0 +1,265 @@ + + + + + HUB + MWFEX8 + 001 + active + hub API:MWFEX8 + + + + + APP_KEY + + false + + + + + + + Data + + + + RS_ZADOSTSUBTYP + + false + + + + + RS_DATUMZADOSTI + + false + + + + + RS_ICO + + false + + + + + RS_JMENO + + false + + + + + RS_KODAKCE + + false + + + + + RS_NAZEV + + false + + + + + RS_PRIJMENI + + false + + + + + RS_STAV + + false + + + + + RS_VYSEUVERUPOZADOVANA + + false + + + + + RS_VYSEUVERUSCHVALENA + + false + + + + + RS_KODPRODUKTPOZADOVANY + + false + + + + + RS_KODPRODUKTSCHVALENY + + false + + + + + RS_RODNECISLO + + false + + + + + RS_MTS_STAV + + false + + + + + RS_DUVODROZHODNUTI + + false + + + + + RS_PRESCORING + + false + + + + + RS_APP_STATE_ADC + + false + + + + + RS_CURRENCY + + false + + + + + RS_APPLICATION_TYPE + + false + + + + + RS_EXPRESMAN_FLAG + + false + + + + + RS_POS + + false + + + + + RS_INST_PT_KEY + + false + + + + + RS_CHANNEL + + false + + + + + RS_APP_KEY + + false + + + + + RS_STAVTXT + + false + + + + + RS_SPLATKA_SCH + + false + + + + + RS_SPLATKA_POZAD + + false + + + + + RS_SPLATKA + + false + + + + + RS_APPL_SET_KEY + + false + + + + + RS_RELATIONSHIPTYPE_ID + + false + + + + + RS_AP + + false + + + + + RS_VICEDUVODUROZHODNUTI_FLAG + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFEX8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFEX8_001_Dapi.xml new file mode 100644 index 0000000..ffce851 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFEX8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFEX8 + 001 + DEVL + + + HUB + MWFEX8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFF11_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFF11_001.xml new file mode 100644 index 0000000..7fa31e5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFF11_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWFF11 + 001 + active + hub API:MWFF11 + + + + + CHECK_IN + + false + + + + + CHECK_OUT + + false + + + + + CM_ID + + false + + + + + FOLDER_ID + + false + + + + + NEW_VERSION + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFF11_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFF11_001_Dapi.xml new file mode 100644 index 0000000..084c099 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFF11_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFF11 + 001 + DEVL + + + HUB + MWFF11 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFF14_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFF14_001.xml new file mode 100644 index 0000000..a5ed12d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFF14_001.xml @@ -0,0 +1,269 @@ + + + + + HUB + MWFF14 + 001 + active + hub API:MWFF14 + + + + + IDOM + + false + + + + + + + Email + + false + + + + + Fax + + false + + + + + FlagShip + + false + + + + + FramingLevel + + false + + + + + ICO + + false + + + + + IDKanal + + false + + + + + IDOkresu + + false + + + + + IODEmail + + false + + + + + KategorieOM + + false + + + + + KodBanky + + false + + + + + KontOsobaOZJmeno + + false + + + + + KontOsobaOZPrijmeni + + false + + + + + Mesto + + false + + + + + NazevOM + + false + + + + + OBNazev + + false + + + + + Okres + + false + + + + + OtevrenoCT + + false + + + + + OtevrenoNE + + false + + + + + OtevrenoPA + + false + + + + + OtevrenoPO + + false + + + + + OtevrenoSO + + false + + + + + OtevrenoST + + false + + + + + OtevrenoUT + + false + + + + + PSC + + false + + + + + PocetZamestnancu + + false + + + + + Retezec + + false + + + + + Segment + + false + + + + + Stat + + false + + + + + Telefon + + false + + + + + URLCANCEL + + false + + + + + URLNO + + false + + + + + URLYES + + false + + + + + Ucet + + false + + + + + Ulice + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFF14_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFF14_001_Dapi.xml new file mode 100644 index 0000000..b127892 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFF14_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFF14 + 001 + DEVL + + + HUB + MWFF14 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFF50_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFF50_001.xml new file mode 100644 index 0000000..9767975 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFF50_001.xml @@ -0,0 +1,412 @@ + + + + + HUB + MWFF50 + 001 + active + hub API:MWFF50 + + + + + CIF + + false + + + + + DataZVSN + + false + + + + + ExpiraceFlag + + false + + + + + ICO + + false + + + + + RodneCislo + + false + + + + + + + Data + + + + RS_PLATNOSTKARTY + + false + + + + + RS_CISLOKARTY + + false + + + + + RS_JMENODRZITELE + + false + + + + + RS_LOGOKARTY + + false + + + + + RS_STAVSMLOUVY + + false + + + + + RS_ORGANIZACE + + false + + + + + RS_AKTIVITAKARTY + + false + + + + + RS_BLOKACESMLOUVY1 + + false + + + + + RS_BLOKACESMLOUVY2 + + false + + + + + RS_MINIMALNISPLATKA + + false + + + + + RS_DISPONIBILNIZUSTATEK + + false + + + + + RS_SPLATKADATUMSPLATNOSTI + + false + + + + + RS_SPLATKAKUHRADE + + false + + + + + RS_DENNILIMITOBCHODNIK + + false + + + + + RS_CELKEMDOPLATIT + + false + + + + + RS_VYSEPOSLEDNISPLATKY + + false + + + + + RS_DATUMPOSLEDNISPLATKY + + false + + + + + RS_UVEROVYRAMEC + + false + + + + + RS_DATUMPODPISUSMLOUVY + + false + + + + + RS_CISLOSMLOUVY + + false + + + + + RS_DENNILIMITHOTOVOST + + false + + + + + RS_UVEROVYRAMECVYCERPANY + + false + + + + + RS_UVEROVYRAMECHOTOVOST + + false + + + + + RS_DISPONIBILNIZUSTATEKHOTOVOST + + false + + + + + RS_LOYALTYSTATUS + + false + + + + + RS_DESIGNID + + false + + + + + RS_ZPUSOBDISTRIBUCEVYPISU + + false + + + + + RS_CISLOKARETNIHOUCTU + + false + + + + + RS_DODATKOVAKARTA + + false + + + + + RS_MAXPOCETTRANSAKCIDEN + + false + + + + + RS_MAXPOCETTRANSAKCIDENATM + + false + + + + + RS_INTERNET + + false + + + + + RS_DRZITELRC + + false + + + + + RS_LIMITINKASA + + false + + + + + RS_ZPUSOBUHRADY + + false + + + + + RS_CISLOKARTYMASK + + false + + + + + RS_CISLOKARETNIHOUCTUMASK + + false + + + + + RS_CHIP + + false + + + + + RS_MSISDN + + false + + + + + RS_DENNILIMITECOMMERCE + + false + + + + + RS_VYBERMIMOEU + + false + + + + + RS_DATUMODBLOKOVANI + + false + + + + + RS_DUVODBLOKACE + + false + + + + + RS_DRZITELHESLO + + false + + + + + RS_SMARTPINPOZADAVEK + + false + + + + + RS_SMARTPINANONE + + false + + + + + RS_ZPUSOBDISTRIBUCEPIN + + false + + + + + RS_SMARTPINNUMBER + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFF50_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFF50_001_Dapi.xml new file mode 100644 index 0000000..bc17788 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFF50_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFF50 + 001 + DEVL + + + HUB + MWFF50 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFC0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFC0_001.xml new file mode 100644 index 0000000..89ab887 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFC0_001.xml @@ -0,0 +1,157 @@ + + + + + HUB + MWFFC0 + 001 + active + hub API:MWFFC0 + + + + + CIF + + false + + + + + DATUM_CAS + + false + + + + + DELKA_SCHUZKY + + false + + + + + DOKUMENTY + + false + + + + + EMAIL + + false + + + + + ID_POZADAVEK + + false + + + + + JMENO + + false + + + + + KANAL + + false + + + + + LANG + + false + + + + + NOTE + + false + + + + + OM_CISLO + + false + + + + + POSILAT_SMS_FLAG + + false + + + + + PRODUKT_TYP + + false + + + + + PRODUKT_TYP_ID + + false + + + + + RC + + false + + + + + ROK_NAROZENI + + false + + + + + SSO_BANKER + + false + + + + + TELEFON + + false + + + + + + + ID_SCHUZKY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFC0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFC0_001_Dapi.xml new file mode 100644 index 0000000..710094a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFC0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFFC0 + 001 + DEVL + + + HUB + MWFFC0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFC5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFC5_001.xml new file mode 100644 index 0000000..9b14c2b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFC5_001.xml @@ -0,0 +1,118 @@ + + + + + HUB + MWFFC5 + 001 + active + hub API:MWFFC5 + + + + + ACCOUNT_NUM + + false + + + + + APP_ID + + false + + + + + + + Data + + + + RS_ACCOUNT_NUM + + false + + + + + RS_APP_ID + + false + + + + + RS_LOAN_NUM + + false + + + + + RS_MONTHLY_FEE_ACT + + false + + + + + RS_MONTHLY_FEE_NEW + + false + + + + + RS_SALES_PROD_TYPE + + false + + + + + RS_FEE_TYPE_NEW + + false + + + + + RS_FEE_TYPE_ACT + + false + + + + + + false + + + + + Index + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFC5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFC5_001_Dapi.xml new file mode 100644 index 0000000..6dcfa33 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFC5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFFC5 + 001 + DEVL + + + HUB + MWFFC5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFI3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFI3_001.xml new file mode 100644 index 0000000..9800781 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFI3_001.xml @@ -0,0 +1,234 @@ + + + + + HUB + MWFFI3 + 001 + active + hub API:MWFFI3 + + + + + WFID + + false + + + + + + + ACCOUNTNUMBER + + false + + + + + APPLICATIONID + + false + + + + + APPLICATIONKEY + + false + + + + + APPLICATIONSETKEY + + false + + + + + AUTOSIGNATURE + + false + + + + + BANKERSPROFILE + + false + + + + + BUSSTATE + + false + + + + + CANCELLATIONTIME + + false + + + + + CARDLOGO + + false + + + + + CARDTYPE + + false + + + + + CLIENTACTIONDATE + + false + + + + + CLIENTID + + false + + + + + CONTRACTNUMBER + + false + + + + + CONTRACTSIGNED + + false + + + + + CONTRACTSIGNINGDATE + + false + + + + + CREDITACCOUNTNUMBER + + false + + + + + DOCUMENTID + + false + + + + + FIRSTSIGNINGBANKER + + false + + + + + KOTIME + + false + + + + + PARENTWFID + + false + + + + + PROCESSSTARTDATE + + false + + + + + PRODUCTTYPE + + false + + + + + REQUESTTYPE + + false + + + + + SECONDSIGNINGBANKER + + false + + + + + SETFEE + + false + + + + + SIGNINGTIME + + false + + + + + USERID + + false + + + + + VERIFYCONTRACT + + false + + + + + WAITINGFORCLIENTAPPROVAL + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFI3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFI3_001_Dapi.xml new file mode 100644 index 0000000..5c90a1b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFI3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFFI3 + 001 + DEVL + + + HUB + MWFFI3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFM2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFM2_001.xml new file mode 100644 index 0000000..a058b7f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFM2_001.xml @@ -0,0 +1,97 @@ + + + + + HUB + MWFFM2 + 001 + active + hub API:MWFFM2 + + + + + ACTUAL_DATE + + false + + + + + APP_ID + + false + + + + + APP_KEY + + false + + + + + FEE_PLAN_TYPE + + false + + + + + + + Data + + + + RS_FEE_TYPE + + false + + + + + RS_FEE_TEXT + + false + + + + + RS_FEE_MODE + + false + + + + + RS_SAZEBNIK_DATUM + + false + + + + + RS_SAZEBNIK_TEXT + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFM2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFM2_001_Dapi.xml new file mode 100644 index 0000000..730f4c9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFM2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFFM2 + 001 + DEVL + + + HUB + MWFFM2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFV3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFV3_001.xml new file mode 100644 index 0000000..b9c4ace --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFV3_001.xml @@ -0,0 +1,377 @@ + + + + + HUB + MWFFV3 + 001 + active + hub API:MWFFV3 + + + + + APPLICATION_TYPE_IN + + false + + + + + CIF + + false + + + + + CisloDokladu + + false + + + + + CisloDruhehoDokladu + + false + + + + + CisloTelefonu + + false + + + + + DatumDo + + false + + + + + DatumOd + + false + + + + + FE_Channel_ID + + false + + + + + ICO + + false + + + + + IDZadosti + + false + + + + + OM + + false + + + + + Prijmeni + + false + + + + + Product_Requested_In + + false + + + + + RC + + false + + + + + StavZadostiJednoduchy + + false + + + + + TridaProduktu + + false + + + + + TypDokladu + + false + + + + + + + Data + + + + RS_ZADOSTSUBTYP + + false + + + + + RS_DATUMZADOSTI + + false + + + + + RS_ICO + + false + + + + + RS_JMENO + + false + + + + + RS_KODAKCE + + false + + + + + RS_NAZEV + + false + + + + + RS_PRIJMENI + + false + + + + + RS_STAV + + false + + + + + RS_VYSEUVERUPOZADOVANA + + false + + + + + RS_VYSEUVERUSCHVALENA + + false + + + + + RS_KODPRODUKTPOZADOVANY + + false + + + + + RS_KODPRODUKTSCHVALENY + + false + + + + + RS_RODNECISLO + + false + + + + + RS_MTS_STAV + + false + + + + + RS_DUVODROZHODNUTI + + false + + + + + RS_PRESCORING + + false + + + + + RS_APP_STATE_ADC + + false + + + + + RS_CURRENCY + + false + + + + + RS_APPLICATION_TYPE + + false + + + + + RS_EXPRESMAN_FLAG + + false + + + + + RS_POS + + false + + + + + RS_INST_PT_KEY + + false + + + + + RS_CHANNEL + + false + + + + + RS_APP_KEY + + false + + + + + RS_STAVTXT + + false + + + + + RS_SPLATKA_SCH + + false + + + + + RS_SPLATKA_POZAD + + false + + + + + RS_SPLATKA + + false + + + + + RS_APPL_SET_KEY + + false + + + + + RS_RELATIONSHIPTYPE_ID + + false + + + + + RS_AP + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFV3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFV3_001_Dapi.xml new file mode 100644 index 0000000..a771734 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFV3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFFV3 + 001 + DEVL + + + HUB + MWFFV3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFW0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFW0_001.xml new file mode 100644 index 0000000..1113819 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFW0_001.xml @@ -0,0 +1,87 @@ + + + + + HUB + MWFFW0 + 001 + active + hub API:MWFFW0 + + + + + APP_ID + + false + + + + + CIF + + false + + + + + Cache + + false + + + + + GeminiUserID + + false + + + + + ICO + + false + + + + + MobilniKlic + + false + + + + + ReguestType + + false + + + + + WF_ID + + false + + + + + + + RequestID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFFW0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFFW0_001_Dapi.xml new file mode 100644 index 0000000..3abdf92 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFFW0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFFW0 + 001 + DEVL + + + HUB + MWFFW0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFG32_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFG32_001.xml new file mode 100644 index 0000000..23fe64f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFG32_001.xml @@ -0,0 +1,104 @@ + + + + + HUB + MWFG32 + 001 + active + hub API:MWFG32 + + + + + KANAL + + false + + + + + + + Data + + + + RS_ID + + false + + + + + RS_NAME + + false + + + + + RS_MAX_AMOUNT + + false + + + + + RS_MIN_AMOUNT + + false + + + + + RS_MAX_MATURITY + + false + + + + + RS_MIN_MATURITY + + false + + + + + RS_MAX_LTV + + false + + + + + RS_MIN_LTV + + false + + + + + RS_MAX_OFFSET + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFG32_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFG32_001_Dapi.xml new file mode 100644 index 0000000..2aefb47 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFG32_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFG32 + 001 + DEVL + + + HUB + MWFG32 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFG51_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFG51_001.xml new file mode 100644 index 0000000..a1d44af --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFG51_001.xml @@ -0,0 +1,150 @@ + + + + + HUB + MWFG51 + 001 + active + hub API:MWFG51 + + + + + CLIENT_ADDRESS_BCC + + false + + + + + CLIENT_ADDRESS_CC + + false + + + + + CLIENT_ADDRESS_TO + + false + + + + + CLIENT_BIRTH_NUM + + false + + + + + CLIENT_ID + + false + + + + + COST_CENTER_ID + + false + + + + + FORMAT_ID + + false + + + + + GATEWAY_ADDRESS + + false + + + + + GW_SYS_ID + + false + + + + + MESG_ALLOW_PAIRING + + false + + + + + MESG_ATTACHMENT_DMS_ID + + false + + + + + MESG_ATTACHMENT_NAME + + false + + + + + MESG_ATTACHMENT_URI + + false + + + + + MESG_PARAMS + + false + + + + + REF_ID + + false + + + + + REPLY_TO + + false + + + + + SEND_TIME + + false + + + + + + + MESG_ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFG51_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFG51_001_Dapi.xml new file mode 100644 index 0000000..3a1d264 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFG51_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFG51 + 001 + DEVL + + + HUB + MWFG51 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFG84_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFG84_001.xml new file mode 100644 index 0000000..14a5f8b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFG84_001.xml @@ -0,0 +1,451 @@ + + + + + HUB + MWFG84 + 001 + active + hub API:MWFG84 + + + + + BankaPrijemceJmenoBanky + + false + + + + + BankaPrijemceMesto + + false + + + + + BankaPrijemceStat + + false + + + + + BankaPrijemceUlice + + false + + + + + CasPorizeni + + false + + + + + CastkaPlatby + + false + + + + + CisloUctu + + false + + + + + DatumPorizeni + + false + + + + + DatumUcinnosti + + false + + + + + EkvivalentKUctu + + false + + + + + Gemini + + false + + + + + IDBanky + + false + + + + + IDTransakceIB + + false + + + + + InfoProPrijemce1 + + false + + + + + InfoProPrijemce2 + + false + + + + + InfoProPrijemce3 + + false + + + + + InfoProPrijemce4 + + false + + + + + KodPartnera + + false + + + + + KodZeme + + false + + + + + Konfirmace1 + + false + + + + + Konfirmace2 + + false + + + + + KontrolaNaSpiciUcet + + false + + + + + MenaPlatby + + false + + + + + OperacniKodBanky + + false + + + + + PlatebniTitulKod + + false + + + + + PrijemceCisloUctu + + false + + + + + PrijemceJmeno + + false + + + + + PrijemceStat + + false + + + + + PrijemceUliceMesto + + false + + + + + PriznakKurzu + + false + + + + + PriznakPlatby + + false + + + + + Residence + + false + + + + + SmennyKurs + + false + + + + + ReferencePlatce + + false + + + + + VylohyZpusobUhrady + + false + + + + + + + BankaPrijemceJmenoBanky + + false + + + + + BankaPrijemceMesto + + false + + + + + BankaPrijemceStat + + false + + + + + BankaPrijemceUlice + + false + + + + + EkvivalentKUctu + + false + + + + + IDTransakce + + false + + + + + InfoProPrijemce1 + + false + + + + + InfoProPrijemce2 + + false + + + + + InfoProPrijemce3 + + false + + + + + InfoProPrijemce4 + + false + + + + + OUTBankaPrijemceJmenoBanky + + false + + + + + OUTBankaPrijemceMesto + + false + + + + + OUTBankaPrijemceStat + + false + + + + + OUTBankaPrijemceUlice + + false + + + + + OUTInformaceProPrijemce1 + + false + + + + + OUTInformaceProPrijemce2 + + false + + + + + OUTInformaceProPrijemce3 + + false + + + + + OUTInformaceProPrijemce4 + + false + + + + + OUTPrijemceCisloUctu + + false + + + + + OUTPrijemceJmeno + + false + + + + + OUTPrijemceStat + + false + + + + + OUTPrijemceUliceMesto + + false + + + + + PrijemceCisloUctu + + false + + + + + PrijemceJmeno + + false + + + + + PrijemceStat + + false + + + + + PrijemceUliceMesto + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFG84_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFG84_001_Dapi.xml new file mode 100644 index 0000000..ef032c3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFG84_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFG84 + 001 + DEVL + + + HUB + MWFG84 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGA5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGA5_001.xml new file mode 100644 index 0000000..cb1da4b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGA5_001.xml @@ -0,0 +1,314 @@ + + + + + HUB + MWFGA5 + 001 + active + hub API:MWFGA5 + + + + + Adresat + + false + + + + + BusinessUpdateDate + + false + + + + + CIF + + false + + + + + CisloOrientacni + + false + + + + + CisloPopisne + + false + + + + + Ctvrt + + false + + + + + Data + + + + RS_RCDRZITELEKARTY + + false + + + + + RS_ADRESAUCEL + + false + + + + + RS_CISLOORIENTACNI + + false + + + + + RS_CISLOPOPISNE + + false + + + + + RS_CISLOPRODUKTU + + false + + + + + RS_MESTO + + false + + + + + RS_PSC + + false + + + + + RS_PRODUKTTYPE + + false + + + + + RS_SYSTEMID + + false + + + + + RS_ULICE + + false + + + + + RS_ZEME + + false + + + + + RS_PRODUKTTYPERETEZEC + + false + + + + + RS_POSTA + + false + + + + + RS_CTVRT + + false + + + + + RS_OKRES + + false + + + + + RS_ADRESAT + + false + + + + + RS_CISLOPRODUKTUMASTER + + false + + + + + RS_CISLOPRODUKTUMASK + + false + + + + + RS_IDENTIFIKATOR + + false + + + + + RS_LZEZMENIT + + false + + + + + RS_NOVAADRESA + + false + + + + + + false + + + + + DistribucniKanal + + false + + + + + ICO + + false + + + + + Mesto + + false + + + + + Okres + + false + + + + + PSC + + false + + + + + Posta + + false + + + + + RC + + false + + + + + SSO + + false + + + + + SekundarniUrednik + + false + + + + + SuperkontaktniAdresa_Flag + + false + + + + + UID + + false + + + + + Ulice + + false + + + + + Zeme + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGA5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGA5_001_Dapi.xml new file mode 100644 index 0000000..ab5b1e9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGA5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGA5 + 001 + TEST + + + HUB + MWFGA5 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGJ2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGJ2_001.xml new file mode 100644 index 0000000..4c32dbe --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGJ2_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWFGJ2 + 001 + active + hub API:MWFGJ2 + + + + + DISTRIBUTIONCHANNELL + + false + + + + + WFID + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGJ2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGJ2_001_Dapi.xml new file mode 100644 index 0000000..7c2abb4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGJ2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGJ2 + 001 + DEVL + + + HUB + MWFGJ2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGK0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGK0_001.xml new file mode 100644 index 0000000..7f32da4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGK0_001.xml @@ -0,0 +1,115 @@ + + + + + HUB + MWFGK0 + 001 + active + hub API:MWFGK0 + + + + + CIF + + false + + + + + IdKlienta + + false + + + + + IdProduktu + + false + + + + + IdZadosti + + false + + + + + ItemTypeFolder + + false + + + + + NazevDokumentu + + false + + + + + NezakladatFolder + + false + + + + + Semantic_Type + + false + + + + + SkupinaProduktu + + false + + + + + TridaProduktu + + false + + + + + TypDokumentu + + false + + + + + + + CM_ID + + false + + + + + NovyFolder + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGK0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGK0_001_Dapi.xml new file mode 100644 index 0000000..d3723de --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGK0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGK0 + 001 + DEVL + + + HUB + MWFGK0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGK1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGK1_001.xml new file mode 100644 index 0000000..0270254 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGK1_001.xml @@ -0,0 +1,83 @@ + + + + + HUB + MWFGK1 + 001 + active + hub API:MWFGK1 + + + + + CIF + + false + + + + + Jazyk + + false + + + + + NeaktivniUctyFlag + + false + + + + + SkupinaProduktu + + false + + + + + + + Data + + + + RS_IDPRODUKTU + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_NAZEVPRODUKTU + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGK1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGK1_001_Dapi.xml new file mode 100644 index 0000000..358e505 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGK1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGK1 + 001 + DEVL + + + HUB + MWFGK1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGK3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGK3_001.xml new file mode 100644 index 0000000..fa7eed6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGK3_001.xml @@ -0,0 +1,706 @@ + + + + + HUB + MWFGK3 + 001 + active + hub API:MWFGK3 + + + + + CIF + + false + + + + + DatumDo + + false + + + + + DatumOd + + false + + + + + IdDokumentu + + false + + + + + IdKlienta + + false + + + + + IdNas + + false + + + + + IdProduktu + + false + + + + + IdTransakce + + false + + + + + IdZadosti + + false + + + + + ItemType + + false + + + + + MaxDoc + + false + + + + + OdDoc + + false + + + + + RazeniAtribut + + false + + + + + RazeniSmer + + false + + + + + SEMANTIC_TYPES + + false + + + + + SSO + + false + + + + + SkupinaProduktu + + false + + + + + TridaProduktu + + false + + + + + + + Data + + + + RS_CM_ID + + false + + + + + RS_ITEMTYPE + + false + + + + + RS_SEMANTIC_TYPE + + false + + + + + RS_CRT_USR + + false + + + + + RS_CRT_TIME + + false + + + + + RS_CHG_USR + + false + + + + + RS_CHG_TIME + + false + + + + + RS_CHCKOUT_USR + + false + + + + + RS_CHCKOUT_TIME + + false + + + + + RS_IDDOKUMENTU + + false + + + + + RS_IDKLIENTA + + false + + + + + RS_KLASIFIKACE + + false + + + + + RS_SKARTACNIZNACKA + + false + + + + + RS_SKARTACNILHUTA + + false + + + + + RS_DISTRIBUCE + + false + + + + + RS_PRISTUP + + false + + + + + RS_DATUMSKARTACE + + false + + + + + RS_ITEMREFERENCE + + false + + + + + RS_NAZEVDOKUMENTU + + false + + + + + RS_TYPDOKUMENTU + + false + + + + + RS_IDPRODUKTU + + false + + + + + RS_NAZEVPRODUKTU + + false + + + + + RS_IDZADOSTI + + false + + + + + RS_SKUPINAPRODUKTU + + false + + + + + RS_TRIDAPRODUKTU + + false + + + + + RS_SSO + + false + + + + + RS_STAV + + false + + + + + RS_NAZEVDOKUMENTUIB + + false + + + + + RS_CM_VERSION + + false + + + + + RS_BIN_PART_ID + + false + + + + + RS_BIN_PART_VERSION + + false + + + + + RS_IDTRANSAKCE + + false + + + + + RS_PRECTENYDOKUMENT + + false + + + + + RS_DATUMPRECTENI + + false + + + + + RS_PRECTENOSYSTEMEM + + false + + + + + RS_PRECETLUZIVATEL + + false + + + + + RS_E_ARCHIVEFLAG + + false + + + + + RS_E_ITEMREFERENCE + + false + + + + + RS_E_ELEKTRONICKYPODPIS__DATUMPLATNOSTIDO + + false + + + + + RS_E_ELEKTRONICKYPODPIS__CERTIFIKACNIAUTORITA + + false + + + + + RS_E_CASOVERAZITKO__HASH + + false + + + + + RS_E_CASOVERAZITKO__DATUMPLATNOSTIOD + + false + + + + + RS_E_CASOVERAZITKO__DATUMPLATNOSTIDO + + false + + + + + RS_E_CASOVERAZITKO__CERTIFIKACNIAUTORITA + + false + + + + + RS_K_IDDOKUMENTU + + false + + + + + RS_K_KLASIFIKACE + + false + + + + + RS_K_SKARTACNIZNACKA + + false + + + + + RS_K_SKARTACNILHUTA + + false + + + + + RS_K_DISTRIBUCE + + false + + + + + RS_K_PRISTUP + + false + + + + + RS_K_DATUMSKARTACE + + false + + + + + RS_K_ARCHIVEFLAG + + false + + + + + RS_K_ITEMREFERENCE + + false + + + + + RS_U_IDDOKUMENTU + + false + + + + + RS_U_KRABICE + + false + + + + + RS_U_DAVKA + + false + + + + + RS_U_PORADIVBOXU + + false + + + + + RS_U_VYPUJCIL + + false + + + + + RS_U_UMISTENI + + false + + + + + RS_U_ARCHIVEFLAG + + false + + + + + RS_U_ITEMREFERENCE + + false + + + + + RS_U_SLOZKA + + false + + + + + RS_U_AFBOX + + false + + + + + RS_E_PODPIS + + false + + + + + RS_U_CMID + + false + + + + + RS_U_CHANGEDDATE + + false + + + + + RS_U_CHANGEDBYUSER + + false + + + + + RS_U_CMVERSION + + false + + + + + RS_U_CREATEDDATE + + false + + + + + RS_U_SEMANTICTYPE + + false + + + + + RS_U_ITEMTYPE + + false + + + + + RS_U_CREATEDBYUSER + + false + + + + + RS_IDNAS + + false + + + + + RS_ROK + + false + + + + + + false + + + + + DatumDo + + false + + + + + Index + + false + + + + + Pocet + + false + + + + + TotalPocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGK3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGK3_001_Dapi.xml new file mode 100644 index 0000000..f11bd46 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGK3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGK3 + 001 + DEVL + + + HUB + MWFGK3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGK8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGK8_001.xml new file mode 100644 index 0000000..73ee2d9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGK8_001.xml @@ -0,0 +1,321 @@ + + + + + HUB + MWFGK8 + 001 + active + hub API:MWFGK8 + + + + + Adresat + + false + + + + + CIF + + false + + + + + Cache_Flag + + false + + + + + CisloOrientacni + + false + + + + + CisloPopisne + + false + + + + + Ctvrt + + false + + + + + Data + + + + RS_RCDRZITELEKARTY + + false + + + + + RS_ADRESAUCEL + + false + + + + + RS_CISLOORIENTACNI + + false + + + + + RS_CISLOPOPISNE + + false + + + + + RS_CISLOPRODUKTU + + false + + + + + RS_MESTO + + false + + + + + RS_PSC + + false + + + + + RS_PRODUKTTYPE + + false + + + + + RS_SYSTEMID + + false + + + + + RS_ULICE + + false + + + + + RS_ZEME + + false + + + + + RS_PRODUKTTYPERETEZEC + + false + + + + + RS_POSTA + + false + + + + + RS_CTVRT + + false + + + + + RS_OKRES + + false + + + + + RS_ADRESAT + + false + + + + + RS_CISLOPRODUKTUMASTER + + false + + + + + RS_CISLOPRODUKTUMASK + + false + + + + + RS_IDENTIFIKATOR + + false + + + + + RS_LZEZMENIT + + false + + + + + RS_NOVAADRESA + + false + + + + + + false + + + + + DistribucniKanal + + false + + + + + GeminiUserID + + false + + + + + ICO + + false + + + + + Mesto + + false + + + + + Okres + + false + + + + + PSC + + false + + + + + Posta + + false + + + + + RC + + false + + + + + SSO + + false + + + + + SekundarniUrednik + + false + + + + + UID + + false + + + + + Ulice + + false + + + + + Zeme + + false + + + + + + + Cache_RequestID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGK8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGK8_001_Dapi.xml new file mode 100644 index 0000000..734da5b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGK8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGK8 + 001 + DEVL + + + HUB + MWFGK8 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + CBL.HUB.INP + + + + 4 + 60 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGK9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGK9_001.xml new file mode 100644 index 0000000..ea0395a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGK9_001.xml @@ -0,0 +1,195 @@ + + + + + HUB + MWFGK9 + 001 + active + hub API:MWFGK9 + + + + + CIF + + false + + + + + Cache_Flag + + false + + + + + Data + + + + RS_EMAIL + + false + + + + + RS_TELEFON + + false + + + + + RS_TELEFONPREDVOLBA + + false + + + + + RS_TELEFONTYP + + false + + + + + RS_SYSTEMID + + false + + + + + RS_IDENTIFIKATOR + + false + + + + + RS_PRODUKTTYPERETEZEC + + false + + + + + RS_IDSDELENIMOBIL + + false + + + + + RS_IDSDELENIEMAIL + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_LZEZMENIT + + false + + + + + + false + + + + + Email + + false + + + + + GeminiUserID + + false + + + + + ICO + + false + + + + + RC + + false + + + + + SSO + + false + + + + + Telefon + + false + + + + + TelefonPredvolba + + false + + + + + TelefonTyp + + false + + + + + UID + + false + + + + + + + Cache_RequestID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGK9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGK9_001_Dapi.xml new file mode 100644 index 0000000..0cd1950 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGK9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGK9 + 001 + DEVL + + + HUB + MWFGK9 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + CBL.HUB.INP + + + + 4 + 60 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGO1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGO1_001.xml new file mode 100644 index 0000000..0ad03df --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGO1_001.xml @@ -0,0 +1,335 @@ + + + + + HUB + MWFGO1 + 001 + active + hub API:MWFGO1 + + + + + CIF + + false + + + + + Produkt + + false + + + + + + + DIC + + false + + + + + Data + + + + RS_EMAIL + + false + + + + + RS_FAX + + false + + + + + RS_MOBIL + + false + + + + + RS_POBOCKA + + false + + + + + RS_PRODUKT + + false + + + + + RS_TELEFON + + false + + + + + RS_TELEFON2 + + false + + + + + + false + + + + + DatumNarozeni + + false + + + + + Domicil + + false + + + + + DruhDruhehoDokladu + + false + + + + + DruhyDokladCislo + + false + + + + + DruhyDokladPlatnost + + false + + + + + EkonomAktivCR + + false + + + + + EkonomAktivSR + + false + + + + + ICO + + false + + + + + IDDotaznik + + false + + + + + Jmeno + + false + + + + + KategorieKlienta + + false + + + + + MistoNarozeni + + false + + + + + OPCislo + + false + + + + + OPPlatnost + + false + + + + + PSC + + false + + + + + PasCislo + + false + + + + + PasPlatnost + + false + + + + + PlatceDPH + + false + + + + + Prijmeni + + false + + + + + ProfilKlienta + + false + + + + + RezidentCR + + false + + + + + RezidentSR + + false + + + + + RodneCislo + + false + + + + + Sidlo + + false + + + + + StatniPrislusnost + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + TypKlient + + false + + + + + TypOdpoved + + false + + + + + Ulice + + false + + + + + VerzeDotaznik + + false + + + + + Zeme + + false + + + + + ZvyhodnenyKlient + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGO1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGO1_001_Dapi.xml new file mode 100644 index 0000000..451d75d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGO1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGO1 + 001 + DEVL + + + HUB + MWFGO1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGO2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGO2_001.xml new file mode 100644 index 0000000..0163944 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGO2_001.xml @@ -0,0 +1,293 @@ + + + + + HUB + MWFGO2 + 001 + active + hub API:MWFGO2 + + + + + CisloSmlouvy + + false + + + + + Produkt + + false + + + + + + + Atribut + + false + + + + + CIF + + false + + + + + CelkovaHodnotaInvestice + + false + + + + + CisloSmlouvy + + false + + + + + Data + + + + RS_DISTRIBUCEKV + + false + + + + + RS_KORESPONDENCNIJMENO + + false + + + + + RS_KORESPONDENCNIPRIJMENI + + false + + + + + RS_KORESPONDENCNIPSC + + false + + + + + RS_KORESPONDENCNISIDLO + + false + + + + + RS_KORESPONDNECNITITULPRED + + false + + + + + RS_KORESPONDENCNITITULZA + + false + + + + + RS_KORESPONDENCNIULICE + + false + + + + + RS_KORESPONDNECNIZEME + + false + + + + + RS_POBOCKA + + false + + + + + + false + + + + + DatumDo + + false + + + + + DatumOd + + false + + + + + DatumVypoved + + false + + + + + Hodnota + + false + + + + + ISIN + + false + + + + + KlientskeVypisyObchodniFrekvence + + false + + + + + KlientskeVypisyStavoveFrekvence + + false + + + + + PobockaRestante + + false + + + + + PocetISINu + + false + + + + + PocetNedorucenychVypisu + + false + + + + + PremiovyVklad + + false + + + + + ProfilKlienta + + false + + + + + StavSmlouvy + + false + + + + + TerminCisloUctu + + false + + + + + TerminKodBanky + + false + + + + + TerminMena + + false + + + + + TypSmlouvy + + false + + + + + VyporadaniCisloUctu + + false + + + + + VyporadaniKodBanky + + false + + + + + VyporadaniMena + + false + + + + + Zdroj + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGO2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGO2_001_Dapi.xml new file mode 100644 index 0000000..139c235 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGO2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGO2 + 001 + DEVL + + + HUB + MWFGO2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGQ1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGQ1_001.xml new file mode 100644 index 0000000..c58c195 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGQ1_001.xml @@ -0,0 +1,104 @@ + + + + + HUB + MWFGQ1 + 001 + active + hub API:MWFGQ1 + + + + + pREGION_KOD + + false + + + + + + + Data + + + + RS_JMENO + + false + + + + + RS_TELEFON + + false + + + + + RS_EMAIL + + false + + + + + RS_REGION + + false + + + + + RS_REGION_KOD + + false + + + + + RS_LOKALITA + + false + + + + + RS_AKTIVNI + + false + + + + + RS_POPIS_ZOBRAZENI + + false + + + + + RS_FOTKA + + false + + + + + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGQ1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGQ1_001_Dapi.xml new file mode 100644 index 0000000..205cfd0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGQ1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGQ1 + 001 + DEVL + + + HUB + MWFGQ1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGR7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGR7_001.xml new file mode 100644 index 0000000..c335e72 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGR7_001.xml @@ -0,0 +1,108 @@ + + + + + HUB + MWFGR7 + 001 + active + hub API:MWFGR7 + + + + + CARD_ACCOUNT_NUMBER + + false + + + + + CARD_NUMBER + + false + + + + + CHG_3DSEC_PHONE + + false + + + + + CHG_ACTIVATE_3DSEC + + false + + + + + CHG_REGISTER_CARD + + false + + + + + CHG_UNBLOCK_3DSEC_TRANS + + false + + + + + DEVICE_ID + + false + + + + + EXPIRATION + + false + + + + + LOGO + + false + + + + + MOBILE_PHONE + + false + + + + + OPERATOR + + false + + + + + ORGANIZATION + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGR7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGR7_001_Dapi.xml new file mode 100644 index 0000000..c0c7405 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGR7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGR7 + 001 + DEVL + + + HUB + MWFGR7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGR8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGR8_001.xml new file mode 100644 index 0000000..b8e94d5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGR8_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWFGR8 + 001 + active + hub API:MWFGR8 + + + + + CARD_NUMBER + + false + + + + + OPERATOR + + false + + + + + + + DEVICE_ID + + false + + + + + MOBILE_PHONE + + false + + + + + STAT_3DSEC_ACTIVE + + false + + + + + STAT_3DSEC_TRANS_UNBLOCKED + + false + + + + + STAT_CARD_REGISTERED + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGR8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGR8_001_Dapi.xml new file mode 100644 index 0000000..aedb04f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGR8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGR8 + 001 + DEVL + + + HUB + MWFGR8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGU5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGU5_001.xml new file mode 100644 index 0000000..e3d619c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGU5_001.xml @@ -0,0 +1,377 @@ + + + + + HUB + MWFGU5 + 001 + active + hub API:MWFGU5 + + + + + CIF + + false + + + + + CisloUctu + + false + + + + + DatumDo + + false + + + + + DatumOd + + false + + + + + IdProduktu + + false + + + + + MaxDoc + + false + + + + + OdDoc + + false + + + + + PouzeNeprecteneDokumenty + + false + + + + + RazeniAtribut + + false + + + + + RazeniSmer + + false + + + + + SkupinaProduktu + + false + + + + + + + Data + + + + RS_CM_ID + + false + + + + + RS_ITEMTYPE + + false + + + + + RS_SEMANTIC_TYPE + + false + + + + + RS_CRT_USR + + false + + + + + RS_CRT_TIME + + false + + + + + RS_CHG_USR + + false + + + + + RS_CHG_TIME + + false + + + + + RS_CHCKOUT_USR + + false + + + + + RS_CHCKOUT_TIME + + false + + + + + RS_IDDOKUMENTU + + false + + + + + RS_IDKLIENTA + + false + + + + + RS_KLASIFIKACE + + false + + + + + RS_SKARTACNIZNACKA + + false + + + + + RS_SKARTACNILHUTA + + false + + + + + RS_DISTRIBUCE + + false + + + + + RS_PRISTUP + + false + + + + + RS_DATUMSKARTACE + + false + + + + + RS_ITEMREFERENCE + + false + + + + + RS_NAZEVDOKUMENTU + + false + + + + + RS_TYPDOKUMENTU + + false + + + + + RS_IDPRODUKTU + + false + + + + + RS_NAZEVPRODUKTU + + false + + + + + RS_IDZADOSTI + + false + + + + + RS_SKUPINAPRODUKTU + + false + + + + + RS_TRIDAPRODUKTU + + false + + + + + RS_SSO + + false + + + + + RS_STAV + + false + + + + + RS_NAZEVDOKUMENTUIB + + false + + + + + RS_CM_VERSION + + false + + + + + RS_BIN_PART_ID + + false + + + + + RS_BIN_PART_VERSION + + false + + + + + RS_IDTRANSAKCE + + false + + + + + RS_PRECTENYDOKUMENT + + false + + + + + RS_DATUMPRECTENI + + false + + + + + RS_PRECTENOSYSTEMEM + + false + + + + + RS_PRECETLUZIVATEL + + false + + + + + + false + + + + + Pocet + + false + + + + + TotalPocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFGU5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFGU5_001_Dapi.xml new file mode 100644 index 0000000..2bd0e1b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFGU5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFGU5 + 001 + DEVL + + + HUB + MWFGU5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH02_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH02_001.xml new file mode 100644 index 0000000..2c8f524 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH02_001.xml @@ -0,0 +1,136 @@ + + + + + HUB + MWFH02 + 001 + active + hub API:MWFH02 + + + + + CisloBU + + false + + + + + CisloKarty + + false + + + + + Internet + + false + + + + + KodBanky + + false + + + + + Kontext + + false + + + + + LimitBankomat + + false + + + + + LimitMOTOInternet + + false + + + + + LimitObchodnik + + false + + + + + MaxPocetTransakciDen + + false + + + + + MaxPocetTransakciDenATM + + false + + + + + MaxPocetTransakciDenIMT + + false + + + + + UverovyRamecNovy + + false + + + + + VyberMimoEU + + false + + + + + ZpusobUhrady + + false + + + + + + + LimitySnizeny + + false + + + + + OnlineFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH02_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH02_001_Dapi.xml new file mode 100644 index 0000000..70da3eb --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH02_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFH02 + 001 + DEVL + + + HUB + MWFH02 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH06_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH06_001.xml new file mode 100644 index 0000000..e18278f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH06_001.xml @@ -0,0 +1,269 @@ + + + + + HUB + MWFH06 + 001 + active + hub API:MWFH06 + + + + + IDTransakce + + false + + + + + + + BankaPrijemceJmenoBanky + + false + + + + + BankaPrijemceMesto + + false + + + + + BankaPrijemceStat + + false + + + + + BankaPrijemceUlice + + false + + + + + CasPorizeni + + false + + + + + CastkaPlatby + + false + + + + + CastkaVMeneUctu + + false + + + + + CisloUctu + + false + + + + + DatumPorizeni + + false + + + + + DatumUcinnosti + + false + + + + + IDBanky + + false + + + + + InfoProPrijemce1 + + false + + + + + InfoProPrijemce2 + + false + + + + + InfoProPrijemce3 + + false + + + + + InfoProPrijemce4 + + false + + + + + KodPartnera + + false + + + + + KodZeme + + false + + + + + Konfirmace1 + + false + + + + + Konfirmace2 + + false + + + + + MenaPlatby + + false + + + + + MenaUctu + + false + + + + + OM + + false + + + + + PlatebniTitulKod + + false + + + + + PrijemceCisloUctu + + false + + + + + PrijemceJmeno + + false + + + + + PrijemceStat + + false + + + + + PrijemceUliceMesto + + false + + + + + PriznakKurzu + + false + + + + + ProfilLikvidatora + + false + + + + + Residence + + false + + + + + SmennyKurs + + false + + + + + StavTransakce + + false + + + + + VylohyZpusobUhrady + + false + + + + + ZkraceneJmeno + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH06_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH06_001_Dapi.xml new file mode 100644 index 0000000..d8012db --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH06_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFH06 + 001 + DEVL + + + HUB + MWFH06 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH09_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH09_001.xml new file mode 100644 index 0000000..dfb6ea2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH09_001.xml @@ -0,0 +1,66 @@ + + + + + HUB + MWFH09 + 001 + active + hub API:MWFH09 + + + + + BezOhleduNaOM + + false + + + + + CastkaPlatby + + false + + + + + CisloUctu + + false + + + + + IDTransakce + + false + + + + + IDTransakceIB + + false + + + + + + + TransakceZrusena + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH09_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH09_001_Dapi.xml new file mode 100644 index 0000000..66da771 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH09_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFH09 + 001 + DEVL + + + HUB + MWFH09 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH32_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH32_001.xml new file mode 100644 index 0000000..d0cf1d6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH32_001.xml @@ -0,0 +1,210 @@ + + + + + HUB + MWFH32 + 001 + active + hub API:MWFH32 + + + + + Archiv + + false + + + + + Autorizace + + false + + + + + BezOhleduNaOM + + false + + + + + CastkaPlatby + + false + + + + + CisloUctu + + false + + + + + CisloUctuPrijemce + + false + + + + + DatumPorizeni + + false + + + + + + IDTransakce + + false + + + + + MenaPlatby + + false + + + + + ProfilLikvidatora + + false + + + + + StavTransakce + + false + + + + + StavTransakce2 + + false + + + + + ValutaDo + + false + + + + + ValutaOd + + false + + + + + + + Data + + + + RS_OUAGBR + + false + + + + + RS_OUINPD + + false + + + + + RS_OUVALD + + false + + + + + RS_OUCURR + + false + + + + + RS_OUAMT + + false + + + + + RS_OUACCN + + false + + + + + RS_OUBNFC + + false + + + + + RS_OUUSER + + false + + + + + RS_OUSTST + + false + + + + + RS_OUIBID + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH32_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH32_001_Dapi.xml new file mode 100644 index 0000000..1ac8110 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH32_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFH32 + 001 + DEVL + + + HUB + MWFH32 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH33_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH33_001.xml new file mode 100644 index 0000000..01125d2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH33_001.xml @@ -0,0 +1,76 @@ + + + + + HUB + MWFH33 + 001 + active + hub API:MWFH33 + + + + + BIC + + false + + + + + + + Data + + + + RS_BIC + + false + + + + + RS_NAME + + false + + + + + RS_COUNTRY + + false + + + + + RS_COUNTRYCODE + + false + + + + + RS_SEPAROUTEFLAG + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH33_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH33_001_Dapi.xml new file mode 100644 index 0000000..191ed55 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH33_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFH33 + 001 + DEVL + + + HUB + MWFH33 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH37_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH37_001.xml new file mode 100644 index 0000000..44cb19e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH37_001.xml @@ -0,0 +1,153 @@ + + + + + HUB + MWFH37 + 001 + active + hub API:MWFH37 + + + + + + + Data + + + + RS_OUCURCODE + + false + + + + + RS_OUCURSYMB + + false + + + + + RS_OUCURDESC + + false + + + + + RS_OUCOUNTRY + + false + + + + + RS_OUDECPOS + + false + + + + + RS_OUMULTDIV + + false + + + + + RS_OUBRATE + + false + + + + + RS_OUVRIAN + + false + + + + + RS_OUTRANS + + false + + + + + RS_OUTRANB + + false + + + + + RS_OUNOTES + + false + + + + + RS_OUNOTEB + + false + + + + + RS_OUCHKSS + + false + + + + + RS_OUCHKSB + + false + + + + + RS_OUEFDATE + + false + + + + + RS_OUVIPS + + false + + + + + RS_OUVIPB + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFH37_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFH37_001_Dapi.xml new file mode 100644 index 0000000..a16c276 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFH37_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFH37 + 001 + DEVL + + + HUB + MWFH37 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHE2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHE2_001.xml new file mode 100644 index 0000000..fa5ebeb --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHE2_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWFHE2 + 001 + active + hub API:MWFHE2 + + + + + Email + + false + + + + + Kanal + + false + + + + + RodneCislo + + false + + + + + + + CaseID + + false + + + + + INST_PT_KEY + + false + + + + + StavKlienta + + false + + + + + StavZadosti + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHE2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHE2_001_Dapi.xml new file mode 100644 index 0000000..d8f8d83 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHE2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFHE2 + 001 + DEVL + + + HUB + MWFHE2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHE6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHE6_001.xml new file mode 100644 index 0000000..4d62f80 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHE6_001.xml @@ -0,0 +1,146 @@ + + + + + HUB + MWFHE6 + 001 + active + hub API:MWFHE6 + + + + + CHANNEL + + false + + + + + PRODUCT_CLASS + + false + + + + + VALIDITY_DATE + + false + + + + + + + Data + + + + RS_SALES_PRODUCT_TYPE + + false + + + + + RS_DISCOUNT_TYPE + + false + + + + + RS_FORM_ID + + false + + + + + RS_MIN_LOAN_AMOUNT + + false + + + + + RS_MAX_LOAN_AMOUNT + + false + + + + + RS_MIN_TERM + + false + + + + + RS_MAX_TERM + + false + + + + + RS_PRODUCT_NAME + + false + + + + + RS_MIN_FIRST_DRAW_RATE + + false + + + + + RS_INST_RATE + + false + + + + + RS_REVISION_PERIOD + + false + + + + + RS_RISK_PROD_TYPE + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHE6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHE6_001_Dapi.xml new file mode 100644 index 0000000..0fc1fb2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHE6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFHE6 + 001 + DEVL + + + HUB + MWFHE6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHE7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHE7_001.xml new file mode 100644 index 0000000..9db50bd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHE7_001.xml @@ -0,0 +1,223 @@ + + + + + HUB + MWFHE7 + 001 + active + hub API:MWFHE7 + + + + + CIF + + false + + + + + Data + + + + RS_UNI_PT_SEG_KEY + + false + + + + + RS_SRC_ID + + false + + + + + RS_SRC_SYS_ID + + false + + + + + RS_UNI_PT_KEY + + false + + + + + RS_BUS_CODE + + false + + + + + RS_SEGM_CODE + + false + + + + + RS_SEG_CODE + + false + + + + + RS_SEG_DT + + false + + + + + RS_NOTE + + false + + + + + RS_INS_SSO + + false + + + + + RS_INS_DT + + false + + + + + RS_UPD_SSO + + false + + + + + RS_UPD_DT + + false + + + + + RS_RSN_TP_CODE + + false + + + + + RS_EXPIRE_DATE + + false + + + + + RS_SRC_ENTITY + + false + + + + + RS_DEL_FLAG + + false + + + + + RS_SRC_ROLE + + false + + + + + RS_SRC_ROW_ID + + false + + + + + RS_DESCR + + false + + + + + + false + + + + + ICO + + false + + + + + LOG_FLAG + + false + + + + + LOG_SSO + + false + + + + + RodneCislo + + false + + + + + TypOsoby + + false + + + + + UniPtKey + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHE7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHE7_001_Dapi.xml new file mode 100644 index 0000000..5391737 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHE7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFHE7 + 001 + DEVL + + + HUB + MWFHE7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHG3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHG3_001.xml new file mode 100644 index 0000000..7a5fcd8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHG3_001.xml @@ -0,0 +1,167 @@ + + + + + HUB + MWFHG3 + 001 + active + hub API:MWFHG3 + + + + + ACTIVE + + false + + + + + ID_CATEGORY + + false + + + + + ID_SUBCATEGORY + + false + + + + + ID_TASK_TYPE + + false + + + + + + + Data + + + + RS_ID + + false + + + + + RS_NAME + + false + + + + + RS_TYPE + + false + + + + + RS_NOTIFY_EMAIL + + false + + + + + RS_NOTIFICATION_EMAIL + + false + + + + + RS_ACTIVE + + false + + + + + RS_NOTIFY_ASSIGNMENT + + false + + + + + RS_NOTIFY_ATTACHMENTS + + false + + + + + RS_NOTIFY_SOLUTION + + false + + + + + RS_HELP + + false + + + + + RS_ESCALATION + + false + + + + + RS_ESCALATION_EMAIL + + false + + + + + RS_INVISIBLE_SYSTEMS + + false + + + + + RS_OBJECT_ID_TYPE + + false + + + + + RS_CLIENT_ID_TYPE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHG3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHG3_001_Dapi.xml new file mode 100644 index 0000000..127acdb --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHG3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFHG3 + 001 + DEVL + + + HUB + MWFHG3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHH1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHH1_001.xml new file mode 100644 index 0000000..b74fb55 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHH1_001.xml @@ -0,0 +1,482 @@ + + + + + HUB + MWFHH1 + 001 + active + hub API:MWFHH1 + + + + + CastkaTransakceDo + + false + + + + + CastkaTransakceOd + + false + + + + + ChybovyStatusTransakce + + false + + + + + CisloUctu + + false + + + + + CisloUctuPredcisli + + false + + + + + DatumSplatnostiDo + + false + + + + + DatumSplatnostiOd + + false + + + + + ExtDuvodOdmitnuti + + false + + + + + IDTransakce + + false + + + + + INCURSOR + + false + + + + + INROWS + + false + + + + + ProtistranaBanka + + false + + + + + ProtistranaCisloUctu + + false + + + + + ProtistranaCisloUctuSpojene + + false + + + + + ProtistranaPredcisli + + false + + + + + SpecifickySymbol + + false + + + + + TypTransakce + + false + + + + + VariabilniSymbol + + false + + + + + + + Data + + + + RS_TYPTRANSAKCE + + false + + + + + RS_ZDROJTRANSAKCE + + false + + + + + RS_STATUSODMITNUTETRANSAKCE + + false + + + + + RS_PRIZNAKPSEUDOTRANSAKCE + + false + + + + + RS_DATUMODMITNUTITRANSAKCE + + false + + + + + RS_EXTDUVODODMITNUTI + + false + + + + + RS_OBCHODNIMISTO + + false + + + + + RS_CLEARINGOVYKODTRANSAKCE + + false + + + + + RS_CHYBOVYSTATUSTRANSAKCE + + false + + + + + RS_DATUMSPLATNOSTITRANSAKCE + + false + + + + + RS_PREDCISLIUCTU + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_PRIZNAKDBCR + + false + + + + + RS_PROTISTRANAPREDCISLI + + false + + + + + RS_PROTISTRANACISLOUCTU + + false + + + + + RS_PROTISTRANABANKA + + false + + + + + RS_PROTISTRANAAPLIKACE + + false + + + + + RS_PROTISTRANANAZEVUCTU + + false + + + + + RS_CASTKATRANSAKCE + + false + + + + + RS_KODMENY + + false + + + + + RS_UZIVATELZADAVAJICI + + false + + + + + RS_UZIVATELVERIFIKUJICI + + false + + + + + RS_IDTRANSAKCE + + false + + + + + RS_KONSTATNISYMBOL + + false + + + + + RS_VARIABILNISYMBOL + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_ZPRAVADB1 + + false + + + + + RS_ZPRAVADB2 + + false + + + + + RS_ZPRAVADB3 + + false + + + + + RS_ZPRAVADB4 + + false + + + + + RS_ZPRAVACR1 + + false + + + + + RS_ZPRAVACR2 + + false + + + + + RS_ZPRAVACR3 + + false + + + + + RS_ZPRAVACR4 + + false + + + + + RS_AVPOLE1 + + false + + + + + RS_AVPOLE2 + + false + + + + + RS_AVPOLE3 + + false + + + + + RS_AVPOLE4 + + false + + + + + RS_ZPRAVACRSPOJENA + + false + + + + + RS_AVPOLESPOJENE + + false + + + + + RS_ZPRAVADBSPOJENA + + false + + + + + RS_CISLOUCTUISPREDCISLIM + + false + + + + + RS_IDENTIFIKATORTYPTRANSAKCE + + false + + + + + + false + + + + + Index + + false + + + + + Pocet + + false + + + + + PocetOdmitnutychTransakci + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHH1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHH1_001_Dapi.xml new file mode 100644 index 0000000..a5bd735 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHH1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFHH1 + 001 + DEVL + + + HUB + MWFHH1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHI9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHI9_001.xml new file mode 100644 index 0000000..85b8a9b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHI9_001.xml @@ -0,0 +1,465 @@ + + + + + HUB + MWFHI9 + 001 + active + hub API:MWFHI9 + + + + + CIF + + false + + + + + CisloUU + + false + + + + + + + AACisloOrientacni + + false + + + + + AACisloPopisne + + false + + + + + AAJmeno + + false + + + + + AAMesto + + false + + + + + AAPSC + + false + + + + + AAPrijmeni + + false + + + + + AAUlice + + false + + + + + AktualniVyseUrokoveSazby + + false + + + + + CisloInkasnihoUctu + + false + + + + + CisloUU + + false + + + + + DatumDostupnostiInformaci + + false + + + + + DatumKonceFixace + + false + + + + + DatumPoznamky + + false + + + + + DatumPristiSplatky + + false + + + + + DatumPrvniNazaplaceneSplatky + + false + + + + + DatumUkonceniCerpani + + false + + + + + DatumZahajeniCerpani + + false + + + + + DilciMimoradnaSplatka + + false + + + + + DluznaSplatkaPoSplatnosti + + false + + + + + EmailZastupce + + false + + + + + FixaceUrokoveSazby + + false + + + + + JeGenius + + false + + + + + Jistina + + false + + + + + KonecnaSplatnostUveru + + false + + + + + MesicniSplatkaCelkem + + false + + + + + MobilniTelefon + + false + + + + + ObjektUveru + + false + + + + + PlatnostOffsetuOd + + false + + + + + Pojisteni + + false + + + + + PoplatekCerpani + + false + + + + + PoplatekMimoradnaSplatka + + false + + + + + PoplatekPotvrzeniUroku + + false + + + + + PoplatekVedeniUctu + + false + + + + + PriznakOdepsanehoUveru + + false + + + + + ProduktID + + false + + + + + PrumernyZustatek + + false + + + + + RegCisloHypoteky + + false + + + + + SankcniPoplatky + + false + + + + + SchvalenaVyseUveru + + false + + + + + SpecifickyDen + + false + + + + + StavHypoteky + + false + + + + + TACisloOrientacni + + false + + + + + TACisloPopisne + + false + + + + + TAJmeno + + false + + + + + TAMesto + + false + + + + + TAPSC + + false + + + + + TAPrijmeni + + false + + + + + TAUlice + + false + + + + + Telefon + + false + + + + + TypOffsetu + + false + + + + + TypOffsetuNext + + false + + + + + TypUroceni + + false + + + + + UsporaCelkova + + false + + + + + UsporaPredchoziMesic + + false + + + + + VycerpanaVyseUveru + + false + + + + + VyseNesplaceneJistiny + + false + + + + + VysePojisteniSchopnostiSplacet + + false + + + + + VyseUroku + + false + + + + + VztahKHypotece + + false + + + + + ZbyvajiciCastkaKCerpani + + false + + + + + ZkraceniSplatnosti + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHI9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHI9_001_Dapi.xml new file mode 100644 index 0000000..b88523c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHI9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFHI9 + 001 + DEVL + + + HUB + MWFHI9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHJ2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHJ2_001.xml new file mode 100644 index 0000000..91c0b0f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHJ2_001.xml @@ -0,0 +1,111 @@ + + + + + HUB + MWFHJ2 + 001 + active + hub API:MWFHJ2 + + + + + APP_KEY + + false + + + + + FIRST_DRAW_AMT + + false + + + + + LOAN_AMOUNT + + false + + + + + PRDCT_CAND_KEY + + false + + + + + + + Data + + + + RS_LOAN_AMOUNT + + false + + + + + RS_TERM + + false + + + + + RS_INSTALMENT + + false + + + + + RS_INTEREST_RATE + + false + + + + + RS_RPSN + + false + + + + + RS_FIRST_DRAW_AMT + + false + + + + + RS_TOTAL_AMOUNT + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHJ2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHJ2_001_Dapi.xml new file mode 100644 index 0000000..b9d8066 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHJ2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFHJ2 + 001 + DEVL + + + HUB + MWFHJ2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHK8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHK8_001.xml new file mode 100644 index 0000000..76c7e1c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHK8_001.xml @@ -0,0 +1,517 @@ + + + + HUB + MWFHK8 + 001 + active + hub API:MWFHK8 + false + + + + + Adresy_OutputAktualniFlag + + false + + false + + + + Adresy_OutputSysIDs + + false + + false + + + + BusinessRequestor + + false + + false + + + + BusinessTarget + + false + + false + + + + CisloDokladu + + false + + false + + + + CisloKarty + + false + + false + + + + CisloSmlouvy + + false + + false + + + + CisloUctu + + false + + false + + + + DatumNarozeni + + false + + false + + + + DokladTyp + + false + + false + + + + ICO + + false + + false + + + + IDAdresy + + false + + false + + + + IDAdresy_SRCSystem + + false + + false + + + + IDCustomer + + false + + false + + + + IDInstanceKlienta + + false + + false + + + + IDKonsolidovanehoKlienta + + false + + false + + + + IDUnifikovanehoKlienta + + false + + false + + + + IDZadosti + + false + + false + + + + IDZdrojovehoSystemu + + false + + false + + + + IDZdrojovehoSystemu_OUTPUT + + false + + false + + + + Jmeno + + false + + false + + + + KartaRole + + false + + false + + + + MaximalniPocetZaznamu + + false + + false + + + + NazevFirmy + + false + + false + + + + Prijmeni + + false + + false + + + + Priznak_BankovniTajemstvi + + false + + false + + + + Priznak_RozsirenyVystup + + false + + false + + + + RC + + false + + false + + + + TypyOsobyFiltr + + false + + false + + + + UcelDotazu + + false + + false + + + + ZECO + + false + + false + + + + + + Data + + + + RS_IDUNIFIKOVANEHOKLIENTA + + false + + false + + + + RS_BUSINESSTARGET + + false + + false + + + + RS_RC + + false + + false + + + + RS_ICO + + false + + false + + + + RS_IDCUSTOMER + + false + + false + + + + RS_TYPOSOBY + + false + + false + + + + RS_DATUMNAROZENI + + false + + false + + + + RS_TITULPRED + + false + + false + + + + RS_TITULZA + + false + + false + + + + RS_JMENO + + false + + false + + + + RS_PRIJMENI + + false + + false + + + + RS_NAZEV + + false + + false + + + + RS_PSC + + false + + false + + + + RS_MESTO + + false + + false + + + + RS_POHLAVI + + false + + false + + + + RS_ZEME + + false + + false + + + + RS_PRAVNIFORMA + + false + + false + + + + RS_STATNIPRISLUSNOST + + false + + false + + + + RS_CISLOPOPISNE + + false + + false + + + + RS_IDKONSOLIDOVANEHOKLIENTA + + false + + false + + + + RS_ID101INSTANCE + + false + + false + + + + RS_ULICE + + false + + false + + + + RS_CISLOORIENTACNI + + false + + false + + + + RS_CIF + + false + + false + + + + RS_IDCUSTOMERCOUNT + + false + + false + + + + RS_STAVMANUALUNIFIKACE + + false + + false + + + + RS_UMRTIDATUM + + false + + false + + + + RS_UMRTIPRIZNAK + + false + + false + + + + + false + + false + + + + Pocet + + false + + false + + + + PocetNalezenychZaznamu + + false + + false + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHK8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHK8_001_Dapi.xml new file mode 100644 index 0000000..286f5b0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHK8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFHK8 + 001 + TEST + + + HUB + MWFHK8 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHK8_765.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHK8_765.xml new file mode 100644 index 0000000..ea32ac9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHK8_765.xml @@ -0,0 +1,457 @@ + + + + + HUB + MWFHK8 + 001 + active + hub API:MWFHK8 + + + + + Adresy_OutputAktualniFlag + + false + + + + + Adresy_OutputSysIDs + + false + + + + + BusinessRequestor + + false + + + + + BusinessTarget + + false + + + + + CisloDokladu + + false + + + + + CisloKarty + + false + + + + + CisloSmlouvy + + false + + + + + CisloUctu + + false + + + + + DatumNarozeni + + false + + + + + DokladTyp + + false + + + + + ICO + + false + + + + + IDAdresy + + false + + + + + IDAdresy_SRCSystem + + false + + + + + IDCustomer + + false + + + + + IDInstanceKlienta + + false + + + + + IDKonsolidovanehoKlienta + + false + + + + + IDUnifikovanehoKlienta + + false + + + + + IDZadosti + + false + + + + + IDZdrojovehoSystemu + + false + + + + + IDZdrojovehoSystemu_OUTPUT + + false + + + + + Jmeno + + false + + + + + KartaRole + + false + + + + + MaximalniPocetZaznamu + + false + + + + + NazevFirmy + + false + + + + + Prijmeni + + false + + + + + Priznak_BankovniTajemstvi + + false + + + + + Priznak_RozsirenyVystup + + false + + + + + RC + + false + + + + + TypyOsobyFiltr + + false + + + + + UcelDotazu + + false + + + + + ZECO + + false + + + + + + + Data + + + + RS_IDUNIFIKOVANEHOKLIENTA + + false + + + + + RS_BUSINESSTARGET + + false + + + + + RS_RC + + false + + + + + RS_ICO + + false + + + + + RS_IDCUSTOMER + + false + + + + + RS_TYPOSOBY + + false + + + + + RS_DATUMNAROZENI + + false + + + + + RS_TITULPRED + + false + + + + + RS_TITULZA + + false + + + + + RS_JMENO + + false + + + + + RS_PRIJMENI + + false + + + + + RS_NAZEV + + false + + + + + RS_PSC + + false + + + + + RS_MESTO + + false + + + + + RS_POHLAVI + + false + + + + + RS_ZEME + + false + + + + + RS_PRAVNIFORMA + + false + + + + + RS_STATNIPRISLUSNOST + + false + + + + + RS_CISLOPOPISNE + + false + + + + + RS_IDKONSOLIDOVANEHOKLIENTA + + false + + + + + RS_ID101INSTANCE + + false + + + + + RS_ULICE + + false + + + + + RS_CISLOORIENTACNI + + false + + + + + RS_CIF + + false + + + + + RS_IDCUSTOMERCOUNT + + false + + + + + RS_STAVMANUALUNIFIKACE + + false + + + + + RS_UMRTIDATUM + + false + + + + + RS_UMRTIPRIZNAK + + false + + + + + + false + + + + + Pocet + + false + + + + + PocetNalezenychZaznamu + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHK8_765_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHK8_765_Dapi.xml new file mode 100644 index 0000000..79ec108 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHK8_765_Dapi.xml @@ -0,0 +1,28 @@ + + + + + MWFHK8 + 765 + TEST + + HUB + MWFHK8 + 765 + + 30 + INPUT_WITH_REPLY + + 4 + 60 + UFO.HUB.INP + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHU7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHU7_001.xml new file mode 100644 index 0000000..42e475c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHU7_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWFHU7 + 001 + active + hub API:MWFHU7 + + + + + KreditniObratUcel + + false + + + + + PocetSplatek + + false + + + + + PojisteniDoKreditnihoObratu + + false + + + + + TypSplaceni + + false + + + + + VyseUveru + + false + + + + + Zadost_KEY + + false + + + + + + + KreditniObrat + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHU7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHU7_001_Dapi.xml new file mode 100644 index 0000000..7cea661 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHU7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFHU7 + 001 + DEVL + + + HUB + MWFHU7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHV0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHV0_001.xml new file mode 100644 index 0000000..16c0829 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHV0_001.xml @@ -0,0 +1,139 @@ + + + + + HUB + MWFHV0 + 001 + active + hub API:MWFHV0 + + + + + BIRTH_DATE1 + + false + + + + + BIRTH_DATE2 + + false + + + + + CHANNEL_ID + + false + + + + + EMPLOYMENT_TYPE1 + + false + + + + + EMPLOYMENT_TYPE2 + + false + + + + + ID_OM + + false + + + + + INSTALMENT + + false + + + + + INSURANCE + + false + + + + + LOAN_ACCOUNT + + false + + + + + LOAN_AMOUNT + + false + + + + + PRODUCT_CLASS + + false + + + + + + + Data + + + + RS_INSURANCE_VARIANTS + + false + + + + + RS_FEE_AMOUNT + + false + + + + + RS_FEE_TYPE_ID + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFHV0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFHV0_001_Dapi.xml new file mode 100644 index 0000000..0a6fe4a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFHV0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFHV0 + 001 + DEVL + + + HUB + MWFHV0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFI35_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFI35_001.xml new file mode 100644 index 0000000..5965b1e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFI35_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWFI35 + 001 + active + hub API:MWFI35 + + + + + UFO_guid + + false + + + + + URL + + false + + + + + + + CM_ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFI35_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFI35_001_Dapi.xml new file mode 100644 index 0000000..b9860a8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFI35_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFI35 + 001 + DEVL + + + HUB + MWFI35 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFI79_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFI79_001.xml new file mode 100644 index 0000000..7a581a4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFI79_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWFI79 + 001 + active + hub API:MWFI79 + + + + + ACCOUNT + + false + + + + + NOTE + + false + + + + + TYPE + + false + + + + + + + OnlineFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFI79_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFI79_001_Dapi.xml new file mode 100644 index 0000000..bf8b2de --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFI79_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFI79 + 001 + DEVL + + + HUB + MWFI79 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFI82_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFI82_001.xml new file mode 100644 index 0000000..ee9fefa --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFI82_001.xml @@ -0,0 +1,307 @@ + + + + + HUB + MWFI82 + 001 + active + hub API:MWFI82 + + + + + INAMOUNT + + false + + + + + INAMOUNT2 + + false + + + + + INAUTH + + false + + + + + INAUTHCODE + + false + + + + + INAUTHTIME + + false + + + + + INAV1 + + false + + + + + INAV2 + + false + + + + + INAV3 + + false + + + + + INAV4 + + false + + + + + INBANK + + false + + + + + INBATCHDT + + false + + + + + INCARDNAME + + false + + + + + INCARDNUM + + false + + + + + INCONTRCTN + + false + + + + + INCRMS1 + + false + + + + + INCRMS2 + + false + + + + + INCRMS3 + + false + + + + + INCRMS4 + + false + + + + + INDBMS1 + + false + + + + + INDBMS2 + + false + + + + + INDBMS3 + + false + + + + + INDBMS4 + + false + + + + + INDESCR + + false + + + + + INEXPDATE + + false + + + + + INMERCHNBR + + false + + + + + INPHONENUM + + false + + + + + INPOACCNT + + false + + + + + INPOBNKCDE + + false + + + + + INPOCSYM + + false + + + + + INPOSSYM + + false + + + + + INPOVSYM + + false + + + + + INRECTYPE + + false + + + + + INREFNUM + + false + + + + + INREFNUM2 + + false + + + + + INSLIPDATE + + false + + + + + INTRANCODE + + false + + + + + INVALIDAUTH + + false + + + + + + + Data + + + + RS_OUDMSG + + false + + + + + RS_OUWMSG + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFI82_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFI82_001_Dapi.xml new file mode 100644 index 0000000..fd50aad --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFI82_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFI82 + 001 + DEVL + + + HUB + MWFI82 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIA8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIA8_001.xml new file mode 100644 index 0000000..e132584 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIA8_001.xml @@ -0,0 +1,171 @@ + + + + + HUB + MWFIA8 + 001 + active + hub API:MWFIA8 + + + + + AVPole2 + + false + + + + + CACHE + + false + + + + + CIF + + false + + + + + Castka + + false + + + + + CisloUctuPrijemce_Externi + + false + + + + + CisloUctuPrijemce_Interni + + false + + + + + CisloUctuPrijemce_Kodbanky + + false + + + + + CisloUctuUver + + false + + + + + DatumCerpani + + false + + + + + GEMINIUSERID + + false + + + + + Kanal + + false + + + + + KonstSymbol + + false + + + + + PodepsanoNaSingpadu + + false + + + + + RodneCislo + + false + + + + + SIGNATURE + + false + + + + + SYSTEMID + + false + + + + + SpecifickySymbol + + false + + + + + Urednik + + false + + + + + VarSymbol + + false + + + + + + + IDCerpani + + false + + + + + REQUEST_ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIA8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIA8_001_Dapi.xml new file mode 100644 index 0000000..6793af8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIA8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIA8 + 001 + DEVL + + + HUB + MWFIA8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIC7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIC7_001.xml new file mode 100644 index 0000000..dec12fd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIC7_001.xml @@ -0,0 +1,132 @@ + + + + + HUB + MWFIC7 + 001 + active + hub API:MWFIC7 + + + + + INST_PT_KEY + + false + + + + + + + Data + + + + RS_INST_ADDR_KEY + + false + + + + + RS_STREET_DESC_NO + + false + + + + + RS_STREET_ORIENT_NO + + false + + + + + RS_CITY + + false + + + + + RS_STREET + + false + + + + + RS_ZIPCODE + + false + + + + + RS_CNTRY + + false + + + + + RS_PURP + + false + + + + + RS_POST_OFFICE + + false + + + + + RS_ADDR_SINCE + + false + + + + + RS_ADDRESSEE + + false + + + + + RS_VERIFIED_BY_COURIER_FLAG + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIC7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIC7_001_Dapi.xml new file mode 100644 index 0000000..e5908e4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIC7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIC7 + 001 + DEVL + + + HUB + MWFIC7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIC8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIC8_001.xml new file mode 100644 index 0000000..0cdb0cf --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIC8_001.xml @@ -0,0 +1,219 @@ + + + + + HUB + MWFIC8 + 001 + active + hub API:MWFIC8 + + + + + Data + + + + RS_INST_ADDR_KEY + + false + + + + + RS_STREET_DESC_NO + + false + + + + + RS_STREET_ORIENT_NO + + false + + + + + RS_CITY + + false + + + + + RS_STREET + + false + + + + + RS_ZIPCODE + + false + + + + + RS_CNTRY + + false + + + + + RS_PURP + + false + + + + + RS_POST_OFFICE + + false + + + + + RS_ADDR_SINCE + + false + + + + + RS_ADDRESSEE + + false + + + + + RS_VERIFIED_BY_COURIER_FLAG + + false + + + + + + false + + + + + INST_PT_KEY + + false + + + + + + + Data + + + + RS_INST_ADDR_KEY + + false + + + + + RS_STREET_DESC_NO + + false + + + + + RS_STREET_ORIENT_NO + + false + + + + + RS_CITY + + false + + + + + RS_STREET + + false + + + + + RS_ZIPCODE + + false + + + + + RS_CNTRY + + false + + + + + RS_PURP + + false + + + + + RS_POST_OFFICE + + false + + + + + RS_ADDR_SINCE + + false + + + + + RS_ADDRESSEE + + false + + + + + RS_VERIFIED_BY_COURIER_FLAG + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIC8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIC8_001_Dapi.xml new file mode 100644 index 0000000..a9bc117 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIC8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIC8 + 001 + DEVL + + + HUB + MWFIC8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFID1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFID1_001.xml new file mode 100644 index 0000000..1d2efb7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFID1_001.xml @@ -0,0 +1,668 @@ + + + + + HUB + MWFID1 + 001 + active + hub API:MWFID1 + + + + + AddressCity + + false + + + + + AddressContCity + + false + + + + + AddressContCountry + + false + + + + + AddressContHouseNumber + + false + + + + + AddressContLandRegistryNumber + + false + + + + + AddressContStreet + + false + + + + + AddressContZipCode + + false + + + + + AddressCont_Flag + + false + + + + + AddressCont_KEY + + false + + + + + AddressCountry + + false + + + + + AddressHouseNumber + + false + + + + + AddressLandRegistryNumber + + false + + + + + AddressSince + + false + + + + + AddressStreet + + false + + + + + AddressZipCode + + false + + + + + Address_Flag + + false + + + + + Address_KEY + + false + + + + + AdressSrcRole + + false + + + + + BirthCountry + + false + + + + + BirthDate + + false + + + + + BirthNumber + + false + + + + + BirthSurname + + false + + + + + CIF + + false + + + + + ClientState + + false + + + + + ClientType + + false + + + + + CompanyIdentificationNumber + + false + + + + + CompanyName + + false + + + + + CurrentAddressFrom + + false + + + + + CustomerID + + false + + + + + CustomerSRCSystem + + false + + + + + Email + + false + + + + + EmailStrRole + + false + + + + + Email_FLAG + + false + + + + + Email_KEY + + false + + + + + EmploymentType + + false + + + + + FEID + + false + + + + + IDCard2Number + + false + + + + + IDCard2PublishingCountry + + false + + + + + IDCard2PurpCode + + false + + + + + IDCard2SrcRole + + false + + + + + IDCard2Type + + false + + + + + IDCard2ValidTo + + false + + + + + IDCard2_Flag + + false + + + + + IDCard2_KEY + + false + + + + + IDCard3Number + + false + + + + + IDCard3PublishingCountry + + false + + + + + IDCard3PurpCode + + false + + + + + IDCard3SrcRole + + false + + + + + IDCard3Type + + false + + + + + IDCard3ValidTo + + false + + + + + IDCard3_Flag + + false + + + + + IDCard3_KEY + + false + + + + + IDCardNumber + + false + + + + + IDCardPublishingCountry + + false + + + + + IDCardPurpCode + + false + + + + + IDCardSrcRole + + false + + + + + IDCardType + + false + + + + + IDCardValidTo + + false + + + + + IDCard_Flag + + false + + + + + IDCard_KEY + + false + + + + + LegalForm + + false + + + + + MaritialProperty + + false + + + + + MaritialState + + false + + + + + Name + + false + + + + + Nationality + + false + + + + + Note + + false + + + + + PROCESSNAME + + false + + + + + PlaceOfBirth + + false + + + + + Salutation + + false + + + + + Sex + + false + + + + + Surname + + false + + + + + Telefon + + false + + + + + TelefonStrRole + + false + + + + + Telefon_FLAG + + false + + + + + Telefon_KEY + + false + + + + + TitleAfterName + + false + + + + + TitleBeforeName + + false + + + + + UNI_PT_KEY + + false + + + + + USERID + + false + + + + + WFID + + false + + + + + WORKCREATEDBY + + false + + + + + + + AddressCont_KEY + + false + + + + + Address_KEY + + false + + + + + Email_KEY + + false + + + + + FEID + + false + + + + + IDCard2_KEY + + false + + + + + IDCard3_KEY + + false + + + + + IDCard_KEY + + false + + + + + INST_PT_KEY + + false + + + + + Telefon_KEY + + false + + + + + UNI_PT_KEY + + false + + + + + WFID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFID1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFID1_001_Dapi.xml new file mode 100644 index 0000000..c62e6f7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFID1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFID1 + 001 + DEVL + + + HUB + MWFID1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFID3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFID3_001.xml new file mode 100644 index 0000000..0aac614 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFID3_001.xml @@ -0,0 +1,118 @@ + + + + + HUB + MWFID3 + 001 + active + hub API:MWFID3 + + + + + BUS_NAME_IN + + false + + + + + LIMIT_REC_CNT + + false + + + + + SEARCH_FOP_FLAG + + false + + + + + SEARCH_PO_FLAG + + false + + + + + + + Data + + + + RS_BUS_NAME_OUT + + false + + + + + RS_ICO_NUM + + false + + + + + RS_STREET + + false + + + + + RS_STREET_NUM + + false + + + + + RS_STREET_LAND_REG_NUM + + false + + + + + RS_CITY + + false + + + + + RS_ZIP + + false + + + + + RS_CNTRY_CODE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFID3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFID3_001_Dapi.xml new file mode 100644 index 0000000..f8fe969 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFID3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFID3 + 001 + DEVL + + + HUB + MWFID3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFID8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFID8_001.xml new file mode 100644 index 0000000..ebc52ba --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFID8_001.xml @@ -0,0 +1,87 @@ + + + + + HUB + MWFID8 + 001 + active + hub API:MWFID8 + + + + + APP_KEY + + false + + + + + CIF + + false + + + + + ConsultantId + + false + + + + + Context + + false + + + + + Discount_TP + + false + + + + + INST_PT_KEY + + false + + + + + SPECIAL_CODE_ID + + false + + + + + UserRole + + false + + + + + User_SSO + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFID8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFID8_001_Dapi.xml new file mode 100644 index 0000000..176c455 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFID8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFID8 + 001 + DEVL + + + HUB + MWFID8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIE6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIE6_001.xml new file mode 100644 index 0000000..eb8574a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIE6_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWFIE6 + 001 + active + hub API:MWFIE6 + + + + + CARD_CHIP + + false + + + + + CARD_LOGO + + false + + + + + TechnologieKarty + + false + + + + + TypKarty + + false + + + + + + + SMARTPIN_FLAG + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIE6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIE6_001_Dapi.xml new file mode 100644 index 0000000..d17dcd9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIE6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIE6 + 001 + DEVL + + + HUB + MWFIE6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIE9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIE9_001.xml new file mode 100644 index 0000000..245fb4b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIE9_001.xml @@ -0,0 +1,454 @@ + + + + + HUB + MWFIE9 + 001 + active + hub API:MWFIE9 + + + + + Data + + + + RS_CM_ID + + false + + + + + + false + + + + + KOMUNIKACE_ID + + false + + + + + KOMUNIKACE_KANAL_ID + + false + + + + + KOMUNIKACE_KONEC + + false + + + + + KOMUNIKACE_OPERATOR_VYTVORIL + + false + + + + + KOMUNIKACE_PARENT_ID + + false + + + + + KOMUNIKACE_STAV + + false + + + + + KOMUNIKACE_SYSTEM_ID + + false + + + + + KOMUNIKACE_ZACATEK + + false + + + + + KOMUNIKACE_ZDROJ_ID + + false + + + + + POZADAVEK_ID + + false + + + + + POZADAVEK_KANAL_ID + + false + + + + + POZADAVEK_KLIENT_ID + + false + + + + + POZADAVEK_KLIENT_TYP + + false + + + + + POZADAVEK_OBJEKT_ID + + false + + + + + POZADAVEK_OBJEKT_TYP + + false + + + + + POZADAVEK_RESENI_POZNAMKA + + false + + + + + POZADAVEK_RESENI_TYP + + false + + + + + POZADAVEK_ZADANI_POZNAMKA + + false + + + + + POZADAVEK_ZADANI_TYP + + false + + + + + UKOL_ATTRIBUTE1 + + false + + + + + UKOL_ATTRIBUTE10 + + false + + + + + UKOL_ATTRIBUTE11 + + false + + + + + UKOL_ATTRIBUTE12 + + false + + + + + UKOL_ATTRIBUTE13 + + false + + + + + UKOL_ATTRIBUTE14 + + false + + + + + UKOL_ATTRIBUTE15 + + false + + + + + UKOL_ATTRIBUTE16 + + false + + + + + UKOL_ATTRIBUTE17 + + false + + + + + UKOL_ATTRIBUTE18 + + false + + + + + UKOL_ATTRIBUTE2 + + false + + + + + UKOL_ATTRIBUTE3 + + false + + + + + UKOL_ATTRIBUTE4 + + false + + + + + UKOL_ATTRIBUTE5 + + false + + + + + UKOL_ATTRIBUTE6 + + false + + + + + UKOL_ATTRIBUTE7 + + false + + + + + UKOL_ATTRIBUTE8 + + false + + + + + UKOL_ATTRIBUTE9 + + false + + + + + UKOL_ID + + false + + + + + UKOL_RESOLVERSGROUP + + false + + + + + UKOL_SOURCESYSTEM + + false + + + + + UKOL_TASKCATEGORY + + false + + + + + UKOL_TASKID + + false + + + + + UKOL_TASKNAME + + false + + + + + UKOL_TASKSUBCATEGORY + + false + + + + + ZPRAVA_DATUM_VYTVORENI + + false + + + + + ZPRAVA_ID + + false + + + + + ZPRAVA_LANGUAGE_ID + + false + + + + + ZPRAVA_ODESILATEL + + false + + + + + ZPRAVA_PARENT_ID + + false + + + + + ZPRAVA_PREDMET + + false + + + + + ZPRAVA_PRIJEMCE + + false + + + + + ZPRAVA_SMER + + false + + + + + ZPRAVA_TEMPLATE_ID + + false + + + + + ZPRAVA_TEXT + + false + + + + + + + CM_ID + + false + + + + + KOMUNIKACE_ID + + false + + + + + POZADAVEK_ID + + false + + + + + UKOL_ID + + false + + + + + ZPRAVA_ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIE9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIE9_001_Dapi.xml new file mode 100644 index 0000000..2a65215 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIE9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIE9 + 001 + DEVL + + + HUB + MWFIE9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIF6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIF6_001.xml new file mode 100644 index 0000000..61a6740 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIF6_001.xml @@ -0,0 +1,164 @@ + + + + + HUB + MWFIF6 + 001 + active + hub API:MWFIF6 + + + + + AccountNumber + + false + + + + + AddressCity + + false + + + + + AddressCountry + + false + + + + + AddressHouseNumber + + false + + + + + AddressLandRegistryNumber + + false + + + + + AddressPurposeCode + + false + + + + + AddressStreet + + false + + + + + AddressZipCode + + false + + + + + BirthDate + + false + + + + + BirthNumber + + false + + + + + BusCode + + false + + + + + ClientType + + false + + + + + CompanyIdentificationNumber + + false + + + + + CompanyName + + false + + + + + Country + + false + + + + + CustomerSRCSystem + + false + + + + + DelFlag + + false + + + + + Name + + false + + + + + SRCRole + + false + + + + + Surname + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIF6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIF6_001_Dapi.xml new file mode 100644 index 0000000..a83ea76 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIF6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIF6 + 001 + DEVL + + + HUB + MWFIF6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIF7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIF7_001.xml new file mode 100644 index 0000000..fb4f9df --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIF7_001.xml @@ -0,0 +1,136 @@ + + + + + HUB + MWFIF7 + 001 + active + hub API:MWFIF7 + + + + + AccountNumber + + false + + + + + + + AddressCity + + false + + + + + AddressCountry + + false + + + + + AddressHouseNumber + + false + + + + + AddressLandRegistryNumber + + false + + + + + AddressPurposeCode + + false + + + + + AddressStreet + + false + + + + + AddressZipCode + + false + + + + + BirthDate + + false + + + + + BirthNumber + + false + + + + + ClientType + + false + + + + + CompanyIdentificationNumber + + false + + + + + CompanyName + + false + + + + + Country + + false + + + + + Name + + false + + + + + Surname + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIF7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIF7_001_Dapi.xml new file mode 100644 index 0000000..17ca3e1 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIF7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIF7 + 001 + DEVL + + + HUB + MWFIF7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIG3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIG3_001.xml new file mode 100644 index 0000000..67244cb --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIG3_001.xml @@ -0,0 +1,244 @@ + + + + + HUB + MWFIG3 + 001 + active + hub API:MWFIG3 + + + + + CIF + + false + + + + + CastkaDo + + false + + + + + CastkaOd + + false + + + + + CisloBU + + false + + + + + DatumDo + + false + + + + + DatumOd + + false + + + + + Dealer + + false + + + + + IdSystemuFE + + false + + + + + IdTransakce + + false + + + + + StrankovaniOd + + false + + + + + StrankovaniPocetRadku + + false + + + + + + + Data + + + + RS_STAVTRANSAKCE + + false + + + + + RS_DEBETCISLOUCTU + + false + + + + + RS_DEBETMENAUCTU + + false + + + + + RS_DEBETCASTKATRANSAKCE + + false + + + + + RS_DEBETCIF + + false + + + + + RS_DEBETJMENO + + false + + + + + RS_KREDITCISLOUCTU + + false + + + + + RS_KREDITJMENO + + false + + + + + RS_KREDITMENAUCTU + + false + + + + + RS_KREDITCASTKATRANSAKCE + + false + + + + + RS_CASTKATRANSAKCE + + false + + + + + RS_MENATRANSAKCE + + false + + + + + RS_KURZTRANSAKCE + + false + + + + + RS_TYPKURZU + + false + + + + + RS_CASUZAVRENI + + false + + + + + RS_MENOVYPAR + + false + + + + + RS_DEALER + + false + + + + + RS_IDOBCHODU + + false + + + + + + false + + + + + PocetZaznamu + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIG3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIG3_001_Dapi.xml new file mode 100644 index 0000000..e6aa24c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIG3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIG3 + 001 + DEVL + + + HUB + MWFIG3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIG4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIG4_001.xml new file mode 100644 index 0000000..1bd776c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIG4_001.xml @@ -0,0 +1,227 @@ + + + + + HUB + MWFIG4 + 001 + active + hub API:MWFIG4 + + + + + BankovniUcetDebet + + false + + + + + BankovniUcetKredit + + false + + + + + BlokovatProstredkyNaUctu + + false + + + + + CastkaTransakce + + false + + + + + DatumUskutecneniTransakce + + false + + + + + IDSystemFE + + false + + + + + IDTransakceGEN + + false + + + + + KonstaktniSymbol + + false + + + + + Kurz + + false + + + + + MenaDebet + + false + + + + + MenaKredit + + false + + + + + MenaTransakce + + false + + + + + SpecifickySymbol + + false + + + + + SystemovyZnakProGeneratorID + + false + + + + + TypKurzu + + false + + + + + VariabilniSymbol + + false + + + + + VyzadovatAutorizaci + + false + + + + + ZpravaAV + + false + + + + + ZpravaDebet + + false + + + + + ZpravaKredit + + false + + + + + + + CastkaUcetKredit + + false + + + + + CastkaUctuDebet + + false + + + + + DatumZadaniTransakce + + false + + + + + DiagnosticMessage + + false + + + + + ErrCode + + false + + + + + IDTransakce + + false + + + + + KanalTransakce + + false + + + + + ResCode + + false + + + + + WarningMessage + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIG4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIG4_001_Dapi.xml new file mode 100644 index 0000000..cde6ea9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIG4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIG4 + 001 + DEVL + + + HUB + MWFIG4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIG5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIG5_001.xml new file mode 100644 index 0000000..6dfa4c5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIG5_001.xml @@ -0,0 +1,94 @@ + + + + + HUB + MWFIG5 + 001 + active + hub API:MWFIG5 + + + + + MenaDebet + + false + + + + + MenaKredit + + false + + + + + MenaTransakce + + false + + + + + + + DominantniMena + + false + + + + + MenaDebetPocetDesetinnych + + false + + + + + MenaKreditPocetDesetinnych + + false + + + + + MenovaOperace + + false + + + + + MenovaStrana + + false + + + + + MenovyPar + + false + + + + + NedominantniMena + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIG5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIG5_001_Dapi.xml new file mode 100644 index 0000000..6f78cb5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIG5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIG5 + 001 + DEVL + + + HUB + MWFIG5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIG6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIG6_001.xml new file mode 100644 index 0000000..3e045ea --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIG6_001.xml @@ -0,0 +1,227 @@ + + + + + HUB + MWFIG6 + 001 + active + hub API:MWFIG6 + + + + + BankovniUcetDebet + + false + + + + + BankovniUcetKredit + + false + + + + + CastkaTransakce + + false + + + + + DatumSPOT + + false + + + + + DatumUskutecneniTransakce + + false + + + + + IDKurzZadost + + false + + + + + IDTransakceGEN + + false + + + + + KonstaktniSymbol + + false + + + + + KurzFixICBS + + false + + + + + KurzLimitni + + false + + + + + MenaDebet + + false + + + + + MenaKredit + + false + + + + + MenaTransakce + + false + + + + + MenovaStrana + + false + + + + + MenovyPar + + false + + + + + Segment + + false + + + + + SpecifickySymbol + + false + + + + + SystemovyZnakProGeneratorID + + false + + + + + VariabilniSymbol + + false + + + + + ZpravaAV + + false + + + + + ZpravaDebet + + false + + + + + ZpravaKredit + + false + + + + + + + DiagnosticMessage + + false + + + + + ErrCode + + false + + + + + IDTransakce + + false + + + + + KurzZobchodovany + + false + + + + + Status360T + + false + + + + + StatusMessage360T + + false + + + + + StavTransakce + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIG6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIG6_001_Dapi.xml new file mode 100644 index 0000000..9f42430 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIG6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIG6 + 001 + DEVL + + + HUB + MWFIG6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIG7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIG7_001.xml new file mode 100644 index 0000000..a30d68c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIG7_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWFIG7 + 001 + active + hub API:MWFIG7 + + + + + DatumUskutecneniTransakce + + false + + + + + MenaDebet + + false + + + + + MenaKredit + + false + + + + + MenovyPar + + false + + + + + + + DatumSPOT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIG7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIG7_001_Dapi.xml new file mode 100644 index 0000000..4286976 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIG7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIG7 + 001 + DEVL + + + HUB + MWFIG7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFII7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFII7_001.xml new file mode 100644 index 0000000..ccc407b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFII7_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWFII7 + 001 + active + hub API:MWFII7 + + + + + UdebsUserId + + false + + + + + + + CelkovaVyseOdmen + + false + + + + + DataRelevantniKDatumu + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFII7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFII7_001_Dapi.xml new file mode 100644 index 0000000..f56cc7d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFII7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFII7 + 001 + DEVL + + + HUB + MWFII7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIL2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIL2_001.xml new file mode 100644 index 0000000..4b8d711 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIL2_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWFIL2 + 001 + active + hub API:MWFIL2 + + + + + IDTransakce + + false + + + + + KanalTransakce + + false + + + + + + + StavTransakceICBS + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIL2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIL2_001_Dapi.xml new file mode 100644 index 0000000..3c5d7fa --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIL2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIL2 + 001 + DEVL + + + HUB + MWFIL2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIL3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIL3_001.xml new file mode 100644 index 0000000..1608eaf --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIL3_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWFIL3 + 001 + active + hub API:MWFIL3 + + + + + CastkaPlatby + + false + + + + + CisloUctu + + false + + + + + IDTransakceIB + + false + + + + + IDTransakceICBS + + false + + + + + + + TransakceZrusena + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIL3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIL3_001_Dapi.xml new file mode 100644 index 0000000..9be02ba --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIL3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIL3 + 001 + DEVL + + + HUB + MWFIL3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIL7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIL7_001.xml new file mode 100644 index 0000000..1ef4cee --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIL7_001.xml @@ -0,0 +1,146 @@ + + + + + HUB + MWFIL7 + 001 + active + hub API:MWFIL7 + + + + + CIF + + false + + + + + CRSFlag + + false + + + + + Data + + + + RS_ITAX_RSDNC_DIC + + false + + + + + RS_ITAX_RSDNC_CNTRY_CODE + + false + + + + + RS_ITAX_RSDNC_VALID_FLAG + + false + + + + + RS_ITAX_RSDNC_ID + + false + + + + + + false + + + + + DatumUkonceniDedickehoRizeni + + false + + + + + InstPtKey + + false + + + + + PoleKoduCRSZemi + + false + + + + + PoleKoduZemiPobocek + + false + + + + + PosledniZapisCRS + + false + + + + + TypFinancniInstituce + + false + + + + + ZakladniAtributyFlag + + false + + + + + ZemeCRSFlag + + false + + + + + ZemeDanoveRegistraceFlag + + false + + + + + ZemePobocekFlag + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIL7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIL7_001_Dapi.xml new file mode 100644 index 0000000..83e39ed --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIL7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIL7 + 001 + TEST + + + HUB + MWFIL7 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIN7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIN7_001.xml new file mode 100644 index 0000000..00f2e7c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIN7_001.xml @@ -0,0 +1,65 @@ + + + + + HUB + MWFIN7 + 001 + active + hub API:MWFIN7 + + + + + Data + + + + RS_COUNTRY_CODES + + false + + + + + + false + + + + + + + CRS_FLAG + + false + + + + + Data + + + + RS_COUNTRY_CODES + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIN7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIN7_001_Dapi.xml new file mode 100644 index 0000000..159c5ac --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIN7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIN7 + 001 + DEVL + + + HUB + MWFIN7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIN9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIN9_001.xml new file mode 100644 index 0000000..67a33f8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIN9_001.xml @@ -0,0 +1,94 @@ + + + + + HUB + MWFIN9 + 001 + active + hub API:MWFIN9 + + + + + IBAN + + false + + + + + + + Address1 + + false + + + + + Address2 + + false + + + + + Address3 + + false + + + + + Address4 + + false + + + + + BIC + + false + + + + + City + + false + + + + + Country + + false + + + + + CountryCode + + false + + + + + Name + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIN9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIN9_001_Dapi.xml new file mode 100644 index 0000000..e8e154e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIN9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIN9 + 001 + DEVL + + + HUB + MWFIN9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + ERN.HUB.INP + + + + 4 + 30 + ERN.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIQ1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIQ1_001.xml new file mode 100644 index 0000000..68b8f96 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIQ1_001.xml @@ -0,0 +1,79 @@ + + + + + HUB + MWFIQ1 + 001 + active + hub API:MWFIQ1 + + + + + Data_OblastFormalnichKontrol + + + + RS_HODNOTAPOLEFORMALNIKONTROLY + + false + + + + + RS_NAZEVPOLEFORMALNIKONTROLY + + false + + + + + + false + + + + + Kanal + + false + + + + + + + Data_SeznamChyb + + + + RS_POPISCHYBY + + false + + + + + RS_NAZEVPOLEFORMALNIKONTROLY + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIQ1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIQ1_001_Dapi.xml new file mode 100644 index 0000000..3b03d24 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIQ1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIQ1 + 001 + DEVL + + + HUB + MWFIQ1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIQ2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIQ2_001.xml new file mode 100644 index 0000000..4f72970 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIQ2_001.xml @@ -0,0 +1,646 @@ + + + + + HUB + MWFIQ2 + 001 + active + hub API:MWFIQ2 + + + + + AppKey + + false + + + + + INST_PT_KEY + + false + + + + + NacistPoplatky_Flag + + false + + + + + ZadostOnlineUDC_Flag + + false + + + + + + + Data_Docs + + + + RS_VARIANTA_KEY + + false + + + + + RS_REQD_DOC_PURP + + false + + + + + RS_REQD_DOC_CATG + + false + + + + + RS_REQD_DOC_TYPE + + false + + + + + + false + + + + + Data_ProdCandDetails + + + + RS_DATUMPRVNISPLATKY + + false + + + + + RS_ODKLADSPLATEK + + false + + + + + RS_POJISTENIPOPLATEK + + false + + + + + RS_VYSEUVERU + + false + + + + + RS_VARIANTAZVOLENAFLAG + + false + + + + + RS_MESICNISPLATKA + + false + + + + + RS_UROKOVASAZBA + + false + + + + + RS_VARIANTADOPORUCENAFLAG + + false + + + + + RS_VARIANTATYP + + false + + + + + RS_TERM + + false + + + + + RS_RPSN + + false + + + + + RS_VARIANTA_KEY + + false + + + + + RS_DENINKASNISPLATKY + + false + + + + + RS_KODPRODUKTU + + false + + + + + RS_POJISTENI + + false + + + + + RS_EMBOSSTYP + + false + + + + + RS_COBRANDKARTY + + false + + + + + RS_DESIGNKARTY + + false + + + + + RS_KARTAASOCIACE + + false + + + + + RS_KODPRODUKTUSALES + + false + + + + + RS_VERNOSTNIPROGRAM + + false + + + + + RS_PROMOAKCE + + false + + + + + RS_TYPKARTY + + false + + + + + RS_CISLOSMLOUVYVARIANTY + + false + + + + + RS_VELIKOSTZALOHY + + false + + + + + RS_BRANDKARTY + + false + + + + + RS_POVOLENIINETTRANSAKCI + + false + + + + + RS_AUTORIZACNILIMIT_BEZHOTOVOSTNI + + false + + + + + RS_AUTORIZACNILIMIT_HOTOVOST + + false + + + + + RS_AUTORIZACNILIMIT_TYP + + false + + + + + RS_AUTORIZACNILIMIT_PROCENTO + + false + + + + + RS_MINPROCENTOSPLATKY + + false + + + + + RS_UVEROVYRAMECOD + + false + + + + + RS_UVEROVYRAMECDO + + false + + + + + RS_TYPASISTENCNISLUZBY + + false + + + + + RS_VARIANTADRUH + + false + + + + + RS_ROCNIUROKOVASAZBACASH + + false + + + + + RS_CELKOVASPLATNACASTKA + + false + + + + + RS_VYSEUPSELLU + + false + + + + + RS_PORADIZAVAZKU + + false + + + + + RS_DENZUCTOVACIHOOBDOBI + + false + + + + + RS_POPLATEKOTEVRENI + + false + + + + + RS_POPLATEKBU + + false + + + + + RS_POPLATEKUU + + false + + + + + RS_POPLATEKPRICHOZITRANSKACE + + false + + + + + RS_POPLATEKMVK + + false + + + + + RS_POPLATEKRVK + + false + + + + + RS_TYPVYPOCTUFINA + + false + + + + + RS_FLEXILIMIT + + false + + + + + RS_TYPSPLACENI + + false + + + + + RS_INDEXLINEARNIHOSPLACENI + + false + + + + + RS_KOMBINACE_KEY + + false + + + + + RS_REL_ACC_NUM + + false + + + + + RS_MIN_CR_TURN_PCT + + false + + + + + RS_INCENTIV + + false + + + + + RS_CASTKAPRVNIHOCERPANI + + false + + + + + RS_POPLATKOVYPLAN + + false + + + + + RS_AUTORIZACNILIMIT_INTERNET + + false + + + + + RS_VYSEPOSLEDNISPLATKY + + false + + + + + RS_CERP_VYSEPOSLEDNISPLATKY + + false + + + + + RS_CERP_UROKOVASAZBA + + false + + + + + RS_CERP_RPSN + + false + + + + + RS_CERP_CELKOVASPLATNACASTKA + + false + + + + + RS_BONUS_PERIODAVYPLACENIBONUSU + + false + + + + + RS_BONUS_CASTKA + + false + + + + + RS_CERP_POCETSPLATEK + + false + + + + + RS_CERP_BONUS_CELKOVACASTKA + + false + + + + + RS_CERP_BONUS_RPSN + + false + + + + + RS_BONUS_CELKOVAVYSE + + false + + + + + RS_CERP_BONUS_UROKOVASAZBA + + false + + + + + RS_CERP_BONUS_VYSEPOSLEDNISPLATKY + + false + + + + + RS_BONUS_TYPVYPLACENIBONUSU + + false + + + + + RS_CERP_BONUS_POCETSPLATEK + + false + + + + + RS_VARIANT_TP_ID + + false + + + + + RS_DATUMZALOZENI + + false + + + + + RS_DATUMPOSLEDNIZMENY + + false + + + + + RS_PRIM_INTRS_RX + + false + + + + + RS_MIN_INTRS_RX + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIQ2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIQ2_001_Dapi.xml new file mode 100644 index 0000000..7591deb --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIQ2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIQ2 + 001 + DEVL + + + HUB + MWFIQ2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIQ6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIQ6_001.xml new file mode 100644 index 0000000..2eb1dc3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIQ6_001.xml @@ -0,0 +1,115 @@ + + + + + HUB + MWFIQ6 + 001 + active + hub API:MWFIQ6 + + + + + ACC_NUM_IN + + false + + + + + BRANCH_ID + + false + + + + + CHANNEL_ID + + false + + + + + INSUR_END_DATE + + false + + + + + INSUR_ID + + false + + + + + INSUR_START_DATE + + false + + + + + PRICE_TOTAL_AMOUNT + + false + + + + + USER_ID + + false + + + + + + + INSUR_END_DATE + + false + + + + + INSUR_SIGN_DATE + + false + + + + + INSUR_START_DATE + + false + + + + + PRICE_TOTAL_AMOUNT + + false + + + + + PROD_INST_KEY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIQ6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIQ6_001_Dapi.xml new file mode 100644 index 0000000..aeb912b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIQ6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIQ6 + 001 + DEVL + + + HUB + MWFIQ6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + GEM.HUB.INP + + + + 4 + 30 + GEM.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIQ7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIQ7_001.xml new file mode 100644 index 0000000..f9e25ac --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIQ7_001.xml @@ -0,0 +1,111 @@ + + + + + HUB + MWFIQ7 + 001 + active + hub API:MWFIQ7 + + + + + ACC_NUM_IN + + false + + + + + CIF_IN + + false + + + + + INSUR_ID + + false + + + + + + + Data + + + + RS_PROD_INST_KEY + + false + + + + + RS_ACC_NUM + + false + + + + + RS_INSUR_ID + + false + + + + + RS_START_DATE + + false + + + + + RS_END_DATE + + false + + + + + RS_FEE_AMT + + false + + + + + RS_CANCEL_DATE + + false + + + + + RS_CANCEL_RSN_TP_ID + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIQ7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIQ7_001_Dapi.xml new file mode 100644 index 0000000..7acd490 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIQ7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIQ7 + 001 + DEVL + + + HUB + MWFIQ7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIR1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIR1_001.xml new file mode 100644 index 0000000..05f36aa --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIR1_001.xml @@ -0,0 +1,471 @@ + + + + + HUB + MWFIR1 + 001 + active + hub API:MWFIR1 + + + + + ExpiraceFlag + + false + + + + + RWS_VstupniKarty + + + + RS_ACCT + + false + + + + + RS_CARD_NBR + + false + + + + + + false + + + + + + + Pocet + + false + + + + + RWS_DetailyKaret + + + + RS_PLATNOSTKARTY + + false + + + + + RS_CISLOKARTY + + false + + + + + RS_JMENODRZITELE + + false + + + + + RS_LOGOKARTY + + false + + + + + RS_STAVSMLOUVY + + false + + + + + RS_ORGANIZACE + + false + + + + + RS_AKTIVITAKARTY + + false + + + + + RS_BLOKACESMLOUVY1 + + false + + + + + RS_BLOKACESMLOUVY2 + + false + + + + + RS_MINIMALNISPLATKA + + false + + + + + RS_DISPONIBILNIZUSTATEK + + false + + + + + RS_SPLATKADATUMSPLATNOSTI + + false + + + + + RS_SPLATKAKUHRADE + + false + + + + + RS_DENNILIMITOBCHODNIK + + false + + + + + RS_CELKEMDOPLATIT + + false + + + + + RS_VYSEPOSLEDNISPLATKY + + false + + + + + RS_DATUMPOSLEDNISPLATKY + + false + + + + + RS_UVEROVYRAMEC + + false + + + + + RS_DATUMPODPISUSMLOUVY + + false + + + + + RS_CISLOSMLOUVY + + false + + + + + RS_DENNILIMITHOTOVOST + + false + + + + + RS_UVEROVYRAMECVYCERPANY + + false + + + + + RS_UVEROVYRAMECHOTOVOST + + false + + + + + RS_DISPONIBILNIZUSTATEKHOTOVOST + + false + + + + + RS_LOYALTYSTATUS + + false + + + + + RS_DESIGNID + + false + + + + + RS_ZPUSOBDISTRIBUCEVYPISU + + false + + + + + RS_CISLOKARETNIHOUCTU + + false + + + + + RS_DODATKOVAKARTA + + false + + + + + RS_MAXPOCETTRANSAKCIDEN + + false + + + + + RS_MAXPOCETTRANSAKCIDENATM + + false + + + + + RS_INTERNET + + false + + + + + RS_DRZITELRC + + false + + + + + RS_LIMITINKASA + + false + + + + + RS_ZPUSOBUHRADY + + false + + + + + RS_CISLOKARTYMASK + + false + + + + + RS_CISLOKARETNIHOUCTUMASK + + false + + + + + RS_CHIP + + false + + + + + RS_MSISDN + + false + + + + + RS_DENNILIMITECOMMERCE + + false + + + + + RS_VYBERMIMOEU + + false + + + + + RS_DATUMODBLOKOVANI + + false + + + + + RS_DUVODBLOKACE + + false + + + + + RS_DRZITELHESLO + + false + + + + + RS_SMARTPINPOZADAVEK + + false + + + + + RS_SMARTPINANONE + + false + + + + + RS_ZPUSOBDISTRIBUCEPIN + + false + + + + + RS_SMARTPINNUMBER + + false + + + + + RS_DATUMEXPMINULEKARTY + + false + + + + + RS_STATE_OF_ISSUE + + false + + + + + RS_AKTIVACEPREDCHOZIKARTY + + false + + + + + RS_STAVKARTY + + false + + + + + RS_DATUMEXPIRACEKARTYFULL + + false + + + + + RS_VIZUALKARTY + + false + + + + + RS_MENA + + false + + + + + RS_MOZNOSTTOKENIZACEKARTY + + false + + + + + RS_KARTAASOCIACE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIR1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIR1_001_Dapi.xml new file mode 100644 index 0000000..4bf1a92 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIR1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIR1 + 001 + DEVL + + + HUB + MWFIR1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIS0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIS0_001.xml new file mode 100644 index 0000000..e540359 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIS0_001.xml @@ -0,0 +1,69 @@ + + + + + HUB + MWFIS0 + 001 + active + hub API:MWFIS0 + + + + + ProdPackageKey + + false + + + + + + + Data + + + + RS_APPKEY + + false + + + + + RS_PRODCLASS + + false + + + + + RS_INSTPTKEY + + false + + + + + + false + + + + + ProdPackageType + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIS0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIS0_001_Dapi.xml new file mode 100644 index 0000000..bf258a3 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIS0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIS0 + 001 + DEVL + + + HUB + MWFIS0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIT4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIT4_001.xml new file mode 100644 index 0000000..97a1dad --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIT4_001.xml @@ -0,0 +1,55 @@ + + + + + HUB + MWFIT4 + 001 + active + hub API:MWFIT4 + + + + + Data + + + + RS_APPKEY + + false + + + + + + false + + + + + ProdPackageType + + false + + + + + + + ProdPackageKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIT4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIT4_001_Dapi.xml new file mode 100644 index 0000000..a6763a6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIT4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIT4 + 001 + DEVL + + + HUB + MWFIT4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIT9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIT9_001.xml new file mode 100644 index 0000000..805e906 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIT9_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWFIT9 + 001 + active + hub API:MWFIT9 + + + + + ProdPackageKey + + false + + + + + + + AutomaticStornoFlag + + false + + + + + DocumentsRequiredOnlyPoiFlag + + false + + + + + PackageApplicationsAggregateState + + false + + + + + WorkflowStarted + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIT9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIT9_001_Dapi.xml new file mode 100644 index 0000000..18e54ec --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIT9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIT9 + 001 + DEVL + + + HUB + MWFIT9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIU5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIU5_001.xml new file mode 100644 index 0000000..e4364d2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIU5_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWFIU5 + 001 + active + hub API:MWFIU5 + + + + + BranchID + + false + + + + + CIF + + false + + + + + CompletationChannel + + false + + + + + ProdPackageKey + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIU5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIU5_001_Dapi.xml new file mode 100644 index 0000000..07aec21 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIU5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIU5 + 001 + DEVL + + + HUB + MWFIU5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIV1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIV1_001.xml new file mode 100644 index 0000000..f1d88bd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIV1_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWFIV1 + 001 + active + hub API:MWFIV1 + + + + + BankersProfile + + false + + + + + ProdPackageKey + + false + + + + + StornoReason + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIV1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIV1_001_Dapi.xml new file mode 100644 index 0000000..cd42707 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIV1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIV1 + 001 + DEVL + + + HUB + MWFIV1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIW1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIW1_001.xml new file mode 100644 index 0000000..364b861 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIW1_001.xml @@ -0,0 +1,59 @@ + + + + + HUB + MWFIW1 + 001 + active + hub API:MWFIW1 + + + + + INSURED_BIRTH_NUMBER + + false + + + + + INSUR_ID + + false + + + + + + + ACC_NUM_OUT + + false + + + + + CIF_OUT + + false + + + + + OK_FLAG + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIW1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIW1_001_Dapi.xml new file mode 100644 index 0000000..abf8c8b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIW1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIW1 + 001 + DEVL + + + HUB + MWFIW1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIW2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIW2_001.xml new file mode 100644 index 0000000..080fba7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIW2_001.xml @@ -0,0 +1,150 @@ + + + + + HUB + MWFIW2 + 001 + active + hub API:MWFIW2 + + + + + CIF + + false + + + + + DOCUMENT_TYPE + + false + + + + + ICO + + false + + + + + IdDokumentu + + false + + + + + IdProduktu + + false + + + + + ItemTypeDokument + + false + + + + + NazevDokumentu + + false + + + + + NazevProduktu + + false + + + + + PRODUCT + + false + + + + + PRODUCT_TYPE + + false + + + + + RC + + false + + + + + TridaProduktu + + false + + + + + TypDokumentu + + false + + + + + VytvorElektronickyPodpis + + false + + + + + VytvorUmisteni + + false + + + + + ZDROJ_BIN + + false + + + + + ZDROJ_TYP + + false + + + + + + + CmId + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIW2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIW2_001_Dapi.xml new file mode 100644 index 0000000..decabae --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIW2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIW2 + 001 + DEVL + + + HUB + MWFIW2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIZ2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIZ2_001.xml new file mode 100644 index 0000000..b4fb9c9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIZ2_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWFIZ2 + 001 + active + hub API:MWFIZ2 + + + + + APP_KEY + + false + + + + + AccountNumber + + false + + + + + INST_PT_KEY + + false + + + + + PPIType + + false + + + + + RegularInstalmentDay + + false + + + + + UserRole + + false + + + + + User_SSO + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIZ2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIZ2_001_Dapi.xml new file mode 100644 index 0000000..6a9d85f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIZ2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIZ2 + 001 + DEVL + + + HUB + MWFIZ2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIZ3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIZ3_001.xml new file mode 100644 index 0000000..0c4fa90 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIZ3_001.xml @@ -0,0 +1,69 @@ + + + + + HUB + MWFIZ3 + 001 + active + hub API:MWFIZ3 + + + + + ApplicationKey + + false + + + + + BirthNumber + + false + + + + + OperationType + + false + + + + + + + Data + + + + RS_UNPREFILLED_CLIENT_PART + + false + + + + + + false + + + + + LockedFormFlag + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIZ3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIZ3_001_Dapi.xml new file mode 100644 index 0000000..1aa6a1f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIZ3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIZ3 + 001 + DEVL + + + HUB + MWFIZ3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIZ4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIZ4_001.xml new file mode 100644 index 0000000..76ddb2e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIZ4_001.xml @@ -0,0 +1,289 @@ + + + + + HUB + MWFIZ4 + 001 + active + hub API:MWFIZ4 + + + + + BirthNumber + + false + + + + + BranchId + + false + + + + + CacheMode + + false + + + + + ClientType + + false + + + + + ContractId + + false + + + + + ContractSourceSystem + + false + + + + + DistributionChannel + + false + + + + + ICO + + false + + + + + InfolimitType + + false + + + + + Name + + false + + + + + OnlineCheck + + false + + + + + Surname + + false + + + + + UnifiedPartyKey + + false + + + + + + + RS1 + + + + RS_PRODUCTCLASS + + false + + + + + RS_INFOLIMITAMOUNT + + false + + + + + RS_ACCOUNTNUMBER + + false + + + + + RS_CURRENCY + + false + + + + + RS_CONTRACTNUMBER + + false + + + + + RS_CASHLIMITPERCENT + + false + + + + + RS_INSTALMENTPERCENT + + false + + + + + RS_INFOLIMITTYPE + + false + + + + + RS_PRINCIPAL + + false + + + + + RS_REASONCATEGORY + + false + + + + + RS_SALESPRODUCTTYPE + + false + + + + + RS_APPLICATIONTYPE + + false + + + + + RS_UNIFIEDPARTYINFOLIMITKEY + + false + + + + + + false + + + + + RS2 + + + + RS_INFOLIMITVARIANTKEY + + false + + + + + RS_SALESPRODUCTTYPE + + false + + + + + RS_LOANAMOUNT + + false + + + + + RS_PAYMENTSNUMBER + + false + + + + + RS_INSTALMENTAMOUNT + + false + + + + + RS_RPSN + + false + + + + + RS_INTERESTRATE + + false + + + + + RS_TOTALAMOUNT + + false + + + + + RS_UNIFIEDPARTYINFOLIMITKEY + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIZ4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIZ4_001_Dapi.xml new file mode 100644 index 0000000..668e021 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIZ4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFIZ4 + 001 + DEVL + + + HUB + MWFIZ4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIZ8_503.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIZ8_503.xml new file mode 100644 index 0000000..1de9a12 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIZ8_503.xml @@ -0,0 +1,80 @@ + + + + + HUB + MWFIZ8 + 503 + active + hub API:MWFIZ8 + + + + + CHANNEL + + false + + + + + CIF + + false + + + + + CisloObalky + + false + + + + + SendType + + false + + + + + TIMESTAMP + + false + + + + + UctovatPoplatek + + false + + + + + UzivatelID + + false + + + + + + + TIMESTAMP + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFIZ8_803.xml b/tests/src/main/resources/xmlMappings/HUB_MWFIZ8_803.xml new file mode 100644 index 0000000..4086a40 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFIZ8_803.xml @@ -0,0 +1,80 @@ + + + + + HUB + MWFIZ8 + 803 + active + hub API:MWFIZ8 + + + + + CHANNEL + + false + + + + + CIF + + false + + + + + CisloObalky + + false + + + + + SendType + + false + + + + + TIMESTAMP + + false + + + + + UctovatPoplatek + + false + + + + + UzivatelID + + false + + + + + + + TIMESTAMP + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJ16_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJ16_001.xml new file mode 100644 index 0000000..93f5bcc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJ16_001.xml @@ -0,0 +1,276 @@ + + + + + HUB + MWFJ16 + 001 + active + hub API:MWFJ16 + + + + + ContactKey + + false + + + + + ContactKeySnapDate + + false + + + + + EDUID + + false + + + + + ID + + false + + + + + INST_PT_KEY + + false + + + + + KanalID + + false + + + + + KlientID + + false + + + + + KlientTyp + + false + + + + + KodOM + + false + + + + + KontaktSmer + + false + + + + + OM + + false + + + + + OPRAVNENYKLIENT + + false + + + + + OPRAVNENYZADALSSO + + false + + + + + OPRAVNENYZADALTEAM + + false + + + + + ObjektID + + false + + + + + ObjektTyp + + false + + + + + OfferKey + + false + + + + + Opravneny + + false + + + + + PrioritaUkolu + + false + + + + + ReseniPoznamka + + false + + + + + ReseniTyp + + false + + + + + SRC_SYS_ID + + false + + + + + SablonaHodnoty + + false + + + + + SablonaTyp + + false + + + + + Segment + + false + + + + + TerminDoDatumACas + + false + + + + + TerminOdDatumACas + + false + + + + + UCID + + false + + + + + VlastnikID + + false + + + + + VlastnikTyp + + false + + + + + ZadaniOperator + + false + + + + + ZadaniPoznamka + + false + + + + + ZadaniTyp + + false + + + + + + + ID + + false + + + + + INST_PT_KEY + + false + + + + + SRC_SYS_ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJ16_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJ16_001_Dapi.xml new file mode 100644 index 0000000..f334e27 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJ16_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJ16 + 001 + DEVL + + + HUB + MWFJ16 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJ41_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJ41_001.xml new file mode 100644 index 0000000..c2eae07 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJ41_001.xml @@ -0,0 +1,808 @@ + + + + + HUB + MWFJ41 + 001 + active + hub API:MWFJ41 + + + + + INBANK + + false + + + + + INCNBR + + false + + + + + INICO + + false + + + + + INRC + + false + + + + + + + Email + + false + + + + + IDSdeleniZuzeneSJM + + false + + + + + OUACOM + + false + + + + + OUADDI + + false + + + + + OUATD1 + + false + + + + + OUATD2 + + false + + + + + OUBDTE + + false + + + + + OUBINF + + false + + + + + OUBPNA + + false + + + + + OUBRCH + + false + + + + + OUBUPH + + false + + + + + OUCBUS + + false + + + + + OUCCAD + + false + + + + + OUCCCD + + false + + + + + OUCCMP + + false + + + + + OUCCNR + + false + + + + + OUCCTG + + false + + + + + OUCCTY + + false + + + + + OUCDCD + + false + + + + + OUCDCN + + false + + + + + OUCDIS + + false + + + + + OUCFNM + + false + + + + + OUCFNO + + false + + + + + OUCHNM + + false + + + + + OUCHNO + + false + + + + + OUCLNM + + false + + + + + OUCMCH + + false + + + + + OUCNTY + + false + + + + + OUCPNA + + false + + + + + OUCPRF + + false + + + + + OUCPSP + + false + + + + + OUCSNM + + false + + + + + OUCSTA + + false + + + + + OUCSTR + + false + + + + + OUCTC + + false + + + + + OUCTCT + + false + + + + + OUCTIT + + false + + + + + OUCTWN + + false + + + + + OUCTYP + + false + + + + + OUCVCD + + false + + + + + OUCVCN + + false + + + + + OUCVSH + + false + + + + + OUDEP + + false + + + + + OUDEP3 + + false + + + + + OUDEPI + + false + + + + + OUDIC + + false + + + + + OUDORM + + false + + + + + OUDRVL + + false + + + + + OUDVTD + + false + + + + + OUEDUC + + false + + + + + OUEN + + false + + + + + OUENA1 + + false + + + + + OUENA2 + + false + + + + + OUENA3 + + false + + + + + OUENA4 + + false + + + + + OUENA5 + + false + + + + + OUENA6 + + false + + + + + OUEPST + + false + + + + + OUESDT + + false + + + + + OUEXTF + + false + + + + + OUFAX + + false + + + + + OUHMPH + + false + + + + + OUHOCN + + false + + + + + OUHOUS + + false + + + + + OUICDT + + false + + + + + OUICO + + false + + + + + OUICOE + + false + + + + + OUINC + + false + + + + + OUINCG + + false + + + + + OUINCL + + false + + + + + OULEGS + + false + + + + + OULSDT + + false + + + + + OUMCD1 + + false + + + + + OUMCD2 + + false + + + + + OUMIDT + + false + + + + + OUMRTS + + false + + + + + OUMTND + + false + + + + + OUNA1 + + false + + + + + OUNA2 + + false + + + + + OUNA3 + + false + + + + + OUNA4 + + false + + + + + OUNA5 + + false + + + + + OUNA6 + + false + + + + + OUNRRS + + false + + + + + OUOPDT + + false + + + + + OUOWCD + + false + + + + + OUPERS + + false + + + + + OUPOFF + + false + + + + + OUPSTL + + false + + + + + OUPVTD + + false + + + + + OURC + + false + + + + + OUREGN + + false + + + + + OURISK + + false + + + + + OUSALU + + false + + + + + OUSECT + + false + + + + + OUSEX + + false + + + + + OUSHRT + + false + + + + + OUSOCG + + false + + + + + OUSOFF + + false + + + + + OUSOLI + + false + + + + + OUSRIN + + false + + + + + OUSTAT + + false + + + + + OUSTUD + + false + + + + + OUTREG + + false + + + + + OUYREM + + false + + + + + OUYTVR + + false + + + + + TelefonMobilni + + false + + + + + ZuzeneSJM + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJ41_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJ41_001_Dapi.xml new file mode 100644 index 0000000..dcc9e67 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJ41_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJ41 + 001 + DEVL + + + HUB + MWFJ41 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJA5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJA5_001.xml new file mode 100644 index 0000000..f68ce7d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJA5_001.xml @@ -0,0 +1,76 @@ + + + + + HUB + MWFJA5 + 001 + active + hub API:MWFJA5 + + + + + CIF + + false + + + + + RC + + false + + + + + + + Data + + + + RS_TYPPRODUKTU + + false + + + + + RS_CISLOSMLOUVY + + false + + + + + RS_DATUMUZAVENISMLOUVY + + false + + + + + RS_STAVSMLOUVY + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJA5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJA5_001_Dapi.xml new file mode 100644 index 0000000..a2e8a67 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJA5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJA5 + 001 + DEVL + + + HUB + MWFJA5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJA6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJA6_001.xml new file mode 100644 index 0000000..60fef46 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJA6_001.xml @@ -0,0 +1,94 @@ + + + + + HUB + MWFJA6 + 001 + active + hub API:MWFJA6 + + + + + CastkaTransakce + + false + + + + + CisloUctu + + false + + + + + CisloUctuPrijemce + + false + + + + + DatumSplatnosti + + false + + + + + ID + + false + + + + + KodBanky + + false + + + + + Predcisli + + false + + + + + PredcisliPrijemce + + false + + + + + Profil + + false + + + + + + + TransakceZrusena + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJA6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJA6_001_Dapi.xml new file mode 100644 index 0000000..3162480 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJA6_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFJA6 + 001 + DEVL + + + HUB + MWFJA6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJB3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJB3_001.xml new file mode 100644 index 0000000..107bd51 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJB3_001.xml @@ -0,0 +1,185 @@ + + + + + HUB + MWFJB3 + 001 + active + hub API:MWFJB3 + + + + + AVPole + + false + + + + + CIF + + false + + + + + Cache + + false + + + + + CastkaTransakce + + false + + + + + CisloCostCentra + + false + + + + + CisloUctu + + false + + + + + CisloUctuPrijemce + + false + + + + + CisloUctuPrijemceKodBanky + + false + + + + + KonstantniSymbol + + false + + + + + Mena + + false + + + + + NacistVsechnyBlokace + + false + + + + + Neverifikovat + + false + + + + + PoplatekZaZruseni + + false + + + + + ProduktKod + + false + + + + + RealizacniDoba + + false + + + + + SFMaterBU + + false + + + + + SdeleniID + + false + + + + + SdeleniText + + false + + + + + SpecifickySymbol + + false + + + + + TypUctu + + false + + + + + VariabilniSymbol + + false + + + + + ZrusSUZVystrahou + + false + + + + + + + RequestID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJB3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJB3_001_Dapi.xml new file mode 100644 index 0000000..2318241 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJB3_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFJB3 + 001 + DEVL + + + HUB + MWFJB3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJC9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJC9_001.xml new file mode 100644 index 0000000..4b79f5e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJC9_001.xml @@ -0,0 +1,626 @@ + + + + + HUB + MWFJC9 + 001 + active + hub API:MWFJC9 + + + + + APPLICANT + + false + + + + + APPLICANTGROUP + + false + + + + + ATTRIBUTE1 + + false + + + + + ATTRIBUTE10 + + false + + + + + ATTRIBUTE11 + + false + + + + + ATTRIBUTE12 + + false + + + + + ATTRIBUTE13 + + false + + + + + ATTRIBUTE14 + + false + + + + + ATTRIBUTE15 + + false + + + + + ATTRIBUTE16 + + false + + + + + ATTRIBUTE17 + + false + + + + + ATTRIBUTE18 + + false + + + + + ATTRIBUTE19 + + false + + + + + ATTRIBUTE2 + + false + + + + + ATTRIBUTE20 + + false + + + + + ATTRIBUTE3 + + false + + + + + ATTRIBUTE4 + + false + + + + + ATTRIBUTE5 + + false + + + + + ATTRIBUTE6 + + false + + + + + ATTRIBUTE7 + + false + + + + + ATTRIBUTE8 + + false + + + + + ATTRIBUTE9 + + false + + + + + BIRTHNUMBER + + false + + + + + BRANCHID + + false + + + + + BUSSTATE + + false + + + + + CALENDARTYPE + + false + + + + + CLIENTID + + false + + + + + CLIENTIDTYPE + + false + + + + + COMPANY + + false + + + + + COUNTOFOCCURENCES + + false + + + + + COUNTOFSUBTASKS + + false + + + + + CRC_POZADAVEKPOZNAMKA + + false + + + + + CRC_POZADAVEKTYP + + false + + + + + CRC_RESENIPOZNAMKA + + false + + + + + CRC_RESENITYP + + false + + + + + DATEFORMANUALNOTIFICATION + + false + + + + + DAYOFWAKEUP + + false + + + + + EMAILOFRECEIVER + + false + + + + + EMAILOFSENDER + + false + + + + + EMAILSUBJECT + + false + + + + + ENDDATEOFRECURRENCE + + false + + + + + HIDEFROMCLIENT + + false + + + + + ICO + + false + + + + + KINDOFTASK + + false + + + + + OBJECTID + + false + + + + + OBJECTIDTYPE + + false + + + + + OUTERSOLVER + + false + + + + + PARENTID + + false + + + + + PRIORITY + + false + + + + + PROCESSINGDATE + + false + + + + + PROCESSINGDAYSLIMIT + + false + + + + + PROCESSINGTIMELIMIT + + false + + + + + RECURRENCEPATTERN + + false + + + + + REPEATINGTASK + + false + + + + + REPEATINGTASKID + + false + + + + + REQUESTEDDATE + + false + + + + + REQUESTEDDAYSLIMIT + + false + + + + + RESOLVER + + false + + + + + RESOLVERSGROUP + + false + + + + + RESULTINGDATE + + false + + + + + SEGMENT + + false + + + + + SENDEMAIL + + false + + + + + SEQUENTIALNUMBER + + false + + + + + SETESCALATION + + false + + + + + SETREQUESTEDDATEFORESCALATION + + false + + + + + SOURCESYSTEM + + false + + + + + STARTDATEOFRECURRENCE + + false + + + + + TASKCATEGORY + + false + + + + + TASKDESCRIPTION + + false + + + + + TASKENDDATE + + false + + + + + TASKESCALATIONEMAIL + + false + + + + + TASKID + + false + + + + + TASKNAME + + false + + + + + TASKNOTIFICATIONEMAIL + + false + + + + + TASKSTARTDATE + + false + + + + + TASKSUBCATEGORY + + false + + + + + TASKTYPE + + false + + + + + TMSGROUPID + + false + + + + + USERFLAG + + false + + + + + USERSCHOICE + + false + + + + + VERIFYINGTIME + + false + + + + + VERIFYINGUSER + + false + + + + + WAKEUPTIME + + false + + + + + WORKINGTIMEFROM + + false + + + + + WORKINGTIMETO + + false + + + + + + + WFID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJC9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJC9_001_Dapi.xml new file mode 100644 index 0000000..03c2a06 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJC9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJC9 + 001 + DEVL + + + HUB + MWFJC9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD0_001.xml new file mode 100644 index 0000000..2a106b4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD0_001.xml @@ -0,0 +1,745 @@ + + + + + HUB + MWFJD0 + 001 + active + hub API:MWFJD0 + + + + + LOCK + + false + + + + + TKIID + + false + + + + + WFID + + false + + + + + + + APPLICANT + + false + + + + + APPLICANTGROUP + + false + + + + + ATTRIBUTE1 + + false + + + + + ATTRIBUTE10 + + false + + + + + ATTRIBUTE11 + + false + + + + + ATTRIBUTE12 + + false + + + + + ATTRIBUTE13 + + false + + + + + ATTRIBUTE14 + + false + + + + + ATTRIBUTE15 + + false + + + + + ATTRIBUTE16 + + false + + + + + ATTRIBUTE17 + + false + + + + + ATTRIBUTE18 + + false + + + + + ATTRIBUTE19 + + false + + + + + ATTRIBUTE2 + + false + + + + + ATTRIBUTE20 + + false + + + + + ATTRIBUTE3 + + false + + + + + ATTRIBUTE4 + + false + + + + + ATTRIBUTE5 + + false + + + + + ATTRIBUTE6 + + false + + + + + ATTRIBUTE7 + + false + + + + + ATTRIBUTE8 + + false + + + + + ATTRIBUTE9 + + false + + + + + AUTOMATPROCESSINGTIME + + false + + + + + BIRTHNUMBER + + false + + + + + BRANCHID + + false + + + + + BUSSTATE + + false + + + + + CALCULATEDWAKEUPTIME + + false + + + + + CLIENTID + + false + + + + + CLIENTIDTYPE + + false + + + + + COMPANY + + false + + + + + CONTAINMENT_CTX_ID + + false + + + + + COUNTOFOCCURENCES + + false + + + + + COUNTOFSUBTASKS + + false + + + + + DATEFORMANUALNOTIFICATION + + false + + + + + DAYOFWAKEUP + + false + + + + + EMAILOFRECEIVER + + false + + + + + EMAILOFSENDER + + false + + + + + EMAILSUBJECT + + false + + + + + ENDDATEOFRECURRENCE + + false + + + + + ERRORFLAG + + false + + + + + ERRORMESSAGE + + false + + + + + ERRORMWFFLAG + + false + + + + + EXPIRES + + false + + + + + FIRST_ACTIVATED + + false + + + + + HIDEFROMCLIENT + + false + + + + + ICO + + false + + + + + IS_ESCALATED + + false + + + + + KINDOFTASK + + false + + + + + LAST_MODIFIED + + false + + + + + LAST_STATE_CHANGE + + false + + + + + LEVEL + + false + + + + + MANUALPROCESSINGTIME + + false + + + + + NAME + + false + + + + + OBJECTID + + false + + + + + OBJECTIDTYPE + + false + + + + + OUTERSOLVER + + false + + + + + OWNER + + false + + + + + PARENTID + + false + + + + + PRIORITY + + false + + + + + PROCESSINGDATE + + false + + + + + PROCESSINGDAYSLIMIT + + false + + + + + PROCESSINGTIMELIMIT + + false + + + + + RECURRENCEPATTERN + + false + + + + + REPEATCOUNTER + + false + + + + + REPEATINGTASK + + false + + + + + REPEATINGTASKID + + false + + + + + REQUESTEDDATE + + false + + + + + REQUESTEDDAYSLIMIT + + false + + + + + RESOLVER + + false + + + + + RESOLVERSGROUP + + false + + + + + RESULTINGDATE + + false + + + + + ROOTPARENTID + + false + + + + + SEGMENT + + false + + + + + SENDEMAIL + + false + + + + + SEQUENTIALNUMBER + + false + + + + + SETESCALATION + + false + + + + + SETREQUESTEDDATEFORESCALATION + + false + + + + + SOURCESYSTEM + + false + + + + + STARTDATEOFRECURRENCE + + false + + + + + STATE + + false + + + + + SUSPENDED + + false + + + + + TASKCATEGORY + + false + + + + + TASKDESCRIPTION + + false + + + + + TASKENDDATE + + false + + + + + TASKID + + false + + + + + TASKNAME + + false + + + + + TASKSOLUTION + + false + + + + + TASKSTARTDATE + + false + + + + + TASKSUBCATEGORY + + false + + + + + TASKTYPE + + false + + + + + TKIID + + false + + + + + TMSGROUPID + + false + + + + + USERFLAG + + false + + + + + USERSCHOICE + + false + + + + + VERIFYINGTIME + + false + + + + + VERIFYINGUSER + + false + + + + + WAKEUPTIME + + false + + + + + WFID + + false + + + + + WORKINGTIMEFROM + + false + + + + + WORKINGTIMETO + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD0_001_Dapi.xml new file mode 100644 index 0000000..7bae164 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJD0 + 001 + DEVL + + + HUB + MWFJD0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD2_001.xml new file mode 100644 index 0000000..cf6f79f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD2_001.xml @@ -0,0 +1,591 @@ + + + + + HUB + MWFJD2 + 001 + active + hub API:MWFJD2 + + + + + APPLICANT + + false + + + + + APPLICANTGROUP + + false + + + + + ATTRIBUTE1 + + false + + + + + ATTRIBUTE10 + + false + + + + + ATTRIBUTE11 + + false + + + + + ATTRIBUTE12 + + false + + + + + ATTRIBUTE13 + + false + + + + + ATTRIBUTE14 + + false + + + + + ATTRIBUTE15 + + false + + + + + ATTRIBUTE16 + + false + + + + + ATTRIBUTE17 + + false + + + + + ATTRIBUTE18 + + false + + + + + ATTRIBUTE19 + + false + + + + + ATTRIBUTE2 + + false + + + + + ATTRIBUTE20 + + false + + + + + ATTRIBUTE3 + + false + + + + + ATTRIBUTE4 + + false + + + + + ATTRIBUTE5 + + false + + + + + ATTRIBUTE6 + + false + + + + + ATTRIBUTE7 + + false + + + + + ATTRIBUTE8 + + false + + + + + ATTRIBUTE9 + + false + + + + + BIRTHNUMBER + + false + + + + + BRANCHID + + false + + + + + CLIENTID + + false + + + + + CLIENTIDTYPE + + false + + + + + COMPANY + + false + + + + + COUNTOFOCCURENCES + + false + + + + + COUNTOFSUBTASKS + + false + + + + + DATEFORMANUALNOTIFICATION + + false + + + + + DAYOFWAKEUP + + false + + + + + EMAILOFRECEIVER + + false + + + + + EMAILOFSENDER + + false + + + + + EMAILSUBJECT + + false + + + + + ENDDATEOFRECURRENCE + + false + + + + + HIDEFROMCLIENT + + false + + + + + ICO + + false + + + + + KINDOFTASK + + false + + + + + LEVEL + + false + + + + + OBJECTID + + false + + + + + OBJECTIDTYPE + + false + + + + + OUTERSOLVER + + false + + + + + PARENTID + + false + + + + + PRIORITY + + false + + + + + PROCESSINGDATE + + false + + + + + PROCESSINGDAYSLIMIT + + false + + + + + PROCESSINGTIMELIMIT + + false + + + + + RECURRENCEPATTERN + + false + + + + + REPEATCOUNTER + + false + + + + + REPEATINGTASK + + false + + + + + REPEATINGTASKID + + false + + + + + REQUESTEDDATE + + false + + + + + REQUESTEDDAYSLIMIT + + false + + + + + RESOLVER + + false + + + + + RESOLVERSGROUP + + false + + + + + RESULTINGDATE + + false + + + + + ROOTPARENTID + + false + + + + + SEGMENT + + false + + + + + SENDEMAIL + + false + + + + + SEQUENTIALNUMBER + + false + + + + + SETESCALATION + + false + + + + + SETREQUESTEDDATEFORESCALATION + + false + + + + + SOURCESYSTEM + + false + + + + + STARTDATEOFRECURRENCE + + false + + + + + TASKCATEGORY + + false + + + + + TASKDESCRIPTION + + false + + + + + TASKENDDATE + + false + + + + + TASKID + + false + + + + + TASKNAME + + false + + + + + TASKSOLUTION + + false + + + + + TASKSTARTDATE + + false + + + + + TASKSUBCATEGORY + + false + + + + + TASKTYPE + + false + + + + + TKIID + + false + + + + + TMSGROUPID + + false + + + + + USERFLAG + + false + + + + + USERSCHOICE + + false + + + + + VERIFYINGTIME + + false + + + + + VERIFYINGUSER + + false + + + + + WORKINGTIMEFROM + + false + + + + + WORKINGTIMETO + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD2_001_Dapi.xml new file mode 100644 index 0000000..310e563 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJD2 + 001 + DEVL + + + HUB + MWFJD2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD3_001.xml new file mode 100644 index 0000000..09bcb03 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD3_001.xml @@ -0,0 +1,1238 @@ + + + + + HUB + MWFJD3 + 001 + active + hub API:MWFJD3 + + + + + DATATYPE0 + + false + + + + + DATATYPE1 + + false + + + + + DATATYPE10 + + false + + + + + DATATYPE11 + + false + + + + + DATATYPE12 + + false + + + + + DATATYPE13 + + false + + + + + DATATYPE14 + + false + + + + + DATATYPE2 + + false + + + + + DATATYPE3 + + false + + + + + DATATYPE4 + + false + + + + + DATATYPE5 + + false + + + + + DATATYPE6 + + false + + + + + DATATYPE7 + + false + + + + + DATATYPE8 + + false + + + + + DATATYPE9 + + false + + + + + GLOBAL_OPERATOR + + false + + + + + ITEM_FIRST + + false + + + + + ITEM_LAST + + false + + + + + OPERAND0 + + false + + + + + OPERAND1 + + false + + + + + OPERAND10 + + false + + + + + OPERAND11 + + false + + + + + OPERAND12 + + false + + + + + OPERAND13 + + false + + + + + OPERAND14 + + false + + + + + OPERAND2 + + false + + + + + OPERAND3 + + false + + + + + OPERAND4 + + false + + + + + OPERAND5 + + false + + + + + OPERAND6 + + false + + + + + OPERAND7 + + false + + + + + OPERAND8 + + false + + + + + OPERAND9 + + false + + + + + OPERATOR0 + + false + + + + + OPERATOR1 + + false + + + + + OPERATOR10 + + false + + + + + OPERATOR11 + + false + + + + + OPERATOR12 + + false + + + + + OPERATOR13 + + false + + + + + OPERATOR14 + + false + + + + + OPERATOR2 + + false + + + + + OPERATOR3 + + false + + + + + OPERATOR4 + + false + + + + + OPERATOR5 + + false + + + + + OPERATOR6 + + false + + + + + OPERATOR7 + + false + + + + + OPERATOR8 + + false + + + + + OPERATOR9 + + false + + + + + ORDERBY + + false + + + + + STATE + + false + + + + + VALUE0 + + false + + + + + VALUE1 + + false + + + + + VALUE10 + + false + + + + + VALUE11 + + false + + + + + VALUE12 + + false + + + + + VALUE13 + + false + + + + + VALUE14 + + false + + + + + VALUE2 + + false + + + + + VALUE3 + + false + + + + + VALUE4 + + false + + + + + VALUE5 + + false + + + + + VALUE6 + + false + + + + + VALUE7 + + false + + + + + VALUE8 + + false + + + + + VALUE9 + + false + + + + + + + COUNT + + false + + + + + Data + + + + RS_WFID + + false + + + + + RS_PARENTID + + false + + + + + RS_ROOTPARENTID + + false + + + + + RS_LVL + + false + + + + + RS_REPEATINGTASKID + + false + + + + + RS_SEQUENTIALNUMBER + + false + + + + + RS_TASKNAME + + false + + + + + RS_KINDOFTASK + + false + + + + + RS_TASKCATEGORY + + false + + + + + RS_TASKTYPE + + false + + + + + RS_BUSSTATE + + false + + + + + RS_TPRIO + + false + + + + + RS_APPLICANT + + false + + + + + RS_RESOLVERSGROUP + + false + + + + + RS_RESOLVER + + false + + + + + RS_TASKSTARTDATE + + false + + + + + RS_TASKENDDATE + + false + + + + + RS_REQUESTEDDATE + + false + + + + + RS_REQUESTEDDAYSLIMIT + + false + + + + + RS_PROCESSINGDATE + + false + + + + + RS_PROCESSINGDAYSLIMIT + + false + + + + + RS_SOURCESYSTEM + + false + + + + + RS_COMPANY + + false + + + + + RS_PROJECTACTIVITY + + false + + + + + RS_TASKDESCRIPTION + + false + + + + + RS_CLIENTID + + false + + + + + RS_CONTRACTNUMBER + + false + + + + + RS_PRODUCT + + false + + + + + RS_HIDEFROMCLIENT + + false + + + + + RS_COUNTOFSUBTASKS + + false + + + + + RS_REPEATINGTASK + + false + + + + + RS_COUNTOFOCCURENCES + + false + + + + + RS_RECURRENCEPATTERN + + false + + + + + RS_SENDEMAIL + + false + + + + + RS_STARTDATEOFRECURRENCE + + false + + + + + RS_ENDDATEOFRECURRENCE + + false + + + + + RS_DAYOFWAKEUP + + false + + + + + RS_REPEATCOUNTER + + false + + + + + RS_DATEFORMANUALNOTIFICATION + + false + + + + + RS_USERSCHOICE + + false + + + + + RS_VERIFYINGUSER + + false + + + + + RS_MANUALPROCESSINGTIME + + false + + + + + RS_CALCULATEDWAKEUPTIME + + false + + + + + RS_AUTOMATPROCESSINGTIME + + false + + + + + RS_WAKEUPTIME + + false + + + + + RS_ATTRIBUTE1 + + false + + + + + RS_ATTRIBUTE2 + + false + + + + + RS_ATTRIBUTE3 + + false + + + + + RS_ATTRIBUTE4 + + false + + + + + RS_ATTRIBUTE5 + + false + + + + + RS_ATTRIBUTE6 + + false + + + + + RS_ATTRIBUTE7 + + false + + + + + RS_ATTRIBUTE8 + + false + + + + + RS_ATTRIBUTE9 + + false + + + + + RS_ATTRIBUTE10 + + false + + + + + RS_TASKID + + false + + + + + RS_TKIID + + false + + + + + RS_LAST_MODIFIED + + false + + + + + RS_EXPIRES + + false + + + + + RS_SUSPENDED + + false + + + + + RS_IS_ESCALATED + + false + + + + + RS_FIRST_ACTIVATED + + false + + + + + RS_EMAILOFSENDER + + false + + + + + RS_STATE + + false + + + + + RS_EMAILSUBJECT + + false + + + + + RS_EMAILOFRECEIVER + + false + + + + + RS_CONTAINMENT_CTX_ID + + false + + + + + RS_RESULTINGDATE + + false + + + + + RS_NAME + + false + + + + + RS_CASESCOUNT + + false + + + + + RS_OWNER + + false + + + + + RS_OUTERSOLVER + + false + + + + + RS_SETESCALATION + + false + + + + + RS_CLIENTIDTYPE + + false + + + + + RS_LAST_STATE_CHANGE + + false + + + + + RS_SEGMENT + + false + + + + + RS_SETREQUESTEDDATEFORESCALATION + + false + + + + + RS_ERRORMESSAGE + + false + + + + + RS_ERRORFLAG + + false + + + + + RS_NEXTSTAGE + + false + + + + + RS_ERRORMWFFLAG + + false + + + + + RS_REQUESTEDACTION + + false + + + + + RS_HISTORYDATE + + false + + + + + RS_ATTRIBUTE11 + + false + + + + + RS_ATTRIBUTE12 + + false + + + + + RS_ATTRIBUTE13 + + false + + + + + RS_ATTRIBUTE14 + + false + + + + + RS_ATTRIBUTE15 + + false + + + + + RS_ATTRIBUTE16 + + false + + + + + RS_ATTRIBUTE17 + + false + + + + + RS_ATTRIBUTE18 + + false + + + + + RS_ATTRIBUTE19 + + false + + + + + RS_ATTRIBUTE20 + + false + + + + + RS_OVERALLSTATUS + + false + + + + + RS_TASKSOLUTION + + false + + + + + RS_USERID + + false + + + + + RS_ICO + + false + + + + + RS_BIRTHNUMBER + + false + + + + + RS_TMSGROUPID + + false + + + + + RS_PRODUCT_POPIS + + false + + + + + RS_OBJECTID + + false + + + + + RS_OBJECTIDTYPE + + false + + + + + RS_TASKSUBCATEGORY + + false + + + + + RS_APPLICANTGROUP + + false + + + + + RS_BRANCHID + + false + + + + + RS_USERFLAG + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD3_001_Dapi.xml new file mode 100644 index 0000000..919f756 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJD3 + 001 + DEVL + + + HUB + MWFJD3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD4_001.xml new file mode 100644 index 0000000..d0b6667 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD4_001.xml @@ -0,0 +1,1245 @@ + + + + + HUB + MWFJD4 + 001 + active + hub API:MWFJD4 + + + + + DATATYPE0 + + false + + + + + DATATYPE1 + + false + + + + + DATATYPE10 + + false + + + + + DATATYPE11 + + false + + + + + DATATYPE12 + + false + + + + + DATATYPE13 + + false + + + + + DATATYPE14 + + false + + + + + DATATYPE2 + + false + + + + + DATATYPE3 + + false + + + + + DATATYPE4 + + false + + + + + DATATYPE5 + + false + + + + + DATATYPE6 + + false + + + + + DATATYPE7 + + false + + + + + DATATYPE8 + + false + + + + + DATATYPE9 + + false + + + + + GLOBAL_OPERATOR + + false + + + + + ITEM_FIRST + + false + + + + + ITEM_LAST + + false + + + + + LOCKTASK + + false + + + + + OPERAND0 + + false + + + + + OPERAND1 + + false + + + + + OPERAND10 + + false + + + + + OPERAND11 + + false + + + + + OPERAND12 + + false + + + + + OPERAND13 + + false + + + + + OPERAND14 + + false + + + + + OPERAND2 + + false + + + + + OPERAND3 + + false + + + + + OPERAND4 + + false + + + + + OPERAND5 + + false + + + + + OPERAND6 + + false + + + + + OPERAND7 + + false + + + + + OPERAND8 + + false + + + + + OPERAND9 + + false + + + + + OPERATOR0 + + false + + + + + OPERATOR1 + + false + + + + + OPERATOR10 + + false + + + + + OPERATOR11 + + false + + + + + OPERATOR12 + + false + + + + + OPERATOR13 + + false + + + + + OPERATOR14 + + false + + + + + OPERATOR2 + + false + + + + + OPERATOR3 + + false + + + + + OPERATOR4 + + false + + + + + OPERATOR5 + + false + + + + + OPERATOR6 + + false + + + + + OPERATOR7 + + false + + + + + OPERATOR8 + + false + + + + + OPERATOR9 + + false + + + + + ORDERBY + + false + + + + + STATE + + false + + + + + VALUE0 + + false + + + + + VALUE1 + + false + + + + + VALUE10 + + false + + + + + VALUE11 + + false + + + + + VALUE12 + + false + + + + + VALUE13 + + false + + + + + VALUE14 + + false + + + + + VALUE2 + + false + + + + + VALUE3 + + false + + + + + VALUE4 + + false + + + + + VALUE5 + + false + + + + + VALUE6 + + false + + + + + VALUE7 + + false + + + + + VALUE8 + + false + + + + + VALUE9 + + false + + + + + + + COUNT + + false + + + + + Data + + + + RS_WFID + + false + + + + + RS_PARENTID + + false + + + + + RS_ROOTPARENTID + + false + + + + + RS_LVL + + false + + + + + RS_REPEATINGTASKID + + false + + + + + RS_SEQUENTIALNUMBER + + false + + + + + RS_TASKNAME + + false + + + + + RS_KINDOFTASK + + false + + + + + RS_TASKCATEGORY + + false + + + + + RS_TASKTYPE + + false + + + + + RS_BUSSTATE + + false + + + + + RS_TPRIO + + false + + + + + RS_APPLICANT + + false + + + + + RS_RESOLVERSGROUP + + false + + + + + RS_RESOLVER + + false + + + + + RS_TASKSTARTDATE + + false + + + + + RS_TASKENDDATE + + false + + + + + RS_REQUESTEDDATE + + false + + + + + RS_REQUESTEDDAYSLIMIT + + false + + + + + RS_PROCESSINGDATE + + false + + + + + RS_PROCESSINGDAYSLIMIT + + false + + + + + RS_SOURCESYSTEM + + false + + + + + RS_COMPANY + + false + + + + + RS_PROJECTACTIVITY + + false + + + + + RS_TASKDESCRIPTION + + false + + + + + RS_CLIENTID + + false + + + + + RS_CONTRACTNUMBER + + false + + + + + RS_PRODUCT + + false + + + + + RS_HIDEFROMCLIENT + + false + + + + + RS_COUNTOFSUBTASKS + + false + + + + + RS_REPEATINGTASK + + false + + + + + RS_COUNTOFOCCURENCES + + false + + + + + RS_RECURRENCEPATTERN + + false + + + + + RS_SENDEMAIL + + false + + + + + RS_STARTDATEOFRECURRENCE + + false + + + + + RS_ENDDATEOFRECURRENCE + + false + + + + + RS_DAYOFWAKEUP + + false + + + + + RS_REPEATCOUNTER + + false + + + + + RS_DATEFORMANUALNOTIFICATION + + false + + + + + RS_USERSCHOICE + + false + + + + + RS_VERIFYINGUSER + + false + + + + + RS_MANUALPROCESSINGTIME + + false + + + + + RS_CALCULATEDWAKEUPTIME + + false + + + + + RS_AUTOMATPROCESSINGTIME + + false + + + + + RS_WAKEUPTIME + + false + + + + + RS_ATTRIBUTE1 + + false + + + + + RS_ATTRIBUTE2 + + false + + + + + RS_ATTRIBUTE3 + + false + + + + + RS_ATTRIBUTE4 + + false + + + + + RS_ATTRIBUTE5 + + false + + + + + RS_ATTRIBUTE6 + + false + + + + + RS_ATTRIBUTE7 + + false + + + + + RS_ATTRIBUTE8 + + false + + + + + RS_ATTRIBUTE9 + + false + + + + + RS_ATTRIBUTE10 + + false + + + + + RS_TASKID + + false + + + + + RS_TKIID + + false + + + + + RS_LAST_MODIFIED + + false + + + + + RS_EXPIRES + + false + + + + + RS_SUSPENDED + + false + + + + + RS_IS_ESCALATED + + false + + + + + RS_FIRST_ACTIVATED + + false + + + + + RS_EMAILOFSENDER + + false + + + + + RS_STATE + + false + + + + + RS_EMAILSUBJECT + + false + + + + + RS_EMAILOFRECEIVER + + false + + + + + RS_CONTAINMENT_CTX_ID + + false + + + + + RS_RESULTINGDATE + + false + + + + + RS_NAME + + false + + + + + RS_CASESCOUNT + + false + + + + + RS_OWNER + + false + + + + + RS_OUTERSOLVER + + false + + + + + RS_SETESCALATION + + false + + + + + RS_CLIENTIDTYPE + + false + + + + + RS_LAST_STATE_CHANGE + + false + + + + + RS_SEGMENT + + false + + + + + RS_SETREQUESTEDDATEFORESCALATION + + false + + + + + RS_ERRORMESSAGE + + false + + + + + RS_ERRORFLAG + + false + + + + + RS_NEXTSTAGE + + false + + + + + RS_ERRORMWFFLAG + + false + + + + + RS_REQUESTEDACTION + + false + + + + + RS_HISTORYDATE + + false + + + + + RS_ATTRIBUTE11 + + false + + + + + RS_ATTRIBUTE12 + + false + + + + + RS_ATTRIBUTE13 + + false + + + + + RS_ATTRIBUTE14 + + false + + + + + RS_ATTRIBUTE15 + + false + + + + + RS_ATTRIBUTE16 + + false + + + + + RS_ATTRIBUTE17 + + false + + + + + RS_ATTRIBUTE18 + + false + + + + + RS_ATTRIBUTE19 + + false + + + + + RS_ATTRIBUTE20 + + false + + + + + RS_OVERALLSTATUS + + false + + + + + RS_TASKSOLUTION + + false + + + + + RS_USERID + + false + + + + + RS_ICO + + false + + + + + RS_BIRTHNUMBER + + false + + + + + RS_TMSGROUPID + + false + + + + + RS_PRODUCT_POPIS + + false + + + + + RS_OBJECTID + + false + + + + + RS_OBJECTIDTYPE + + false + + + + + RS_TASKSUBCATEGORY + + false + + + + + RS_APPLICANTGROUP + + false + + + + + RS_BRANCHID + + false + + + + + RS_USERFLAG + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD4_001_Dapi.xml new file mode 100644 index 0000000..f7fd98d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJD4 + 001 + DEVL + + + HUB + MWFJD4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD5_001.xml new file mode 100644 index 0000000..49fe865 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD5_001.xml @@ -0,0 +1,167 @@ + + + + + HUB + MWFJD5 + 001 + active + hub API:MWFJD5 + + + + + ID_CATEGORY + + false + + + + + ID_PRODUCT + + false + + + + + ID_TASK_TYPE + + false + + + + + ID_TEAM + + false + + + + + + + Data + + + + RS_ID + + false + + + + + RS_NAME + + false + + + + + RS_TYPE + + false + + + + + RS_NOTIFY_EMAIL + + false + + + + + RS_NOTIFICATION_EMAIL + + false + + + + + RS_ACTIVE + + false + + + + + RS_NOTIFY_ASSIGNMENT + + false + + + + + RS_NOTIFY_ATTACHMENTS + + false + + + + + RS_NOTIFY_SOLUTION + + false + + + + + RS_HELP + + false + + + + + RS_ESCALATION + + false + + + + + RS_ESCALATION_EMAIL + + false + + + + + RS_INVISIBLE_SYSTEMS + + false + + + + + RS_OBJECT_ID_TYPE + + false + + + + + RS_CLIENT_ID_TYPE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD5_001_Dapi.xml new file mode 100644 index 0000000..875580e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJD5 + 001 + DEVL + + + HUB + MWFJD5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD6_001.xml new file mode 100644 index 0000000..740be9c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD6_001.xml @@ -0,0 +1,199 @@ + + + + + HUB + MWFJD6 + 001 + active + hub API:MWFJD6 + + + + + TASKID + + false + + + + + + + ACTION_LIST + + false + + + + + ACTION_LIST_DEFAULT + + false + + + + + ACTIVE + + false + + + + + AUTOMATIC_CLOSE_TIME + + false + + + + + DEFAULT_TAB + + false + + + + + DOCUMENT_TYPE_ALLOWED + + false + + + + + INVISIBLE_SYSTEMS + + false + + + + + SET_REQUESTED_DATE_FOR_ESCALATION + + false + + + + + SLA_CALENDAR_TYPE + + false + + + + + SLA_IN_DAYS + + false + + + + + SLA_IN_MINUTES + + false + + + + + SOURCE_EMAIL + + false + + + + + SPECIAL_ACTION_VISIBILITY + + false + + + + + STANDARD_ACTION_INVISIBILITY + + false + + + + + TASKID + + false + + + + + TASKNAME + + false + + + + + TASK_HELP + + false + + + + + TASK_SOLUTION_TEMPLATE + + false + + + + + TASK_SPECIFICS + + false + + + + + VERIFICATION + + false + + + + + VERIFYINGTIME + + false + + + + + VERYFYING_TEAMS + + false + + + + + WORKING_HOURS_FROM + + false + + + + + WORKING_HOURS_TO + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJD6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJD6_001_Dapi.xml new file mode 100644 index 0000000..ca54d11 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJD6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJD6 + 001 + DEVL + + + HUB + MWFJD6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJF9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJF9_001.xml new file mode 100644 index 0000000..55131be --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJF9_001.xml @@ -0,0 +1,244 @@ + + + + + HUB + MWFJF9 + 001 + active + hub API:MWFJF9 + + + + + CastAdresy + + false + + + + + MaxPocetZaznamu + + false + + + + + + + Data + + + + RS_ADRESAT + + false + + + + + RS_CO + + false + + + + + RS_CP + + false + + + + + RS_CISLOPRODUKTU + + false + + + + + RS_NAZEVPRODUKTU + + false + + + + + RS_OBEC + + false + + + + + RS_PSC + + false + + + + + RS_POSTA + + false + + + + + RS_TYPPRODUKTU + + false + + + + + RS_ULICE + + false + + + + + RS_ZEME + + false + + + + + RS_JMENO + + false + + + + + RS_PORADI + + false + + + + + RS_ICB_APP + + false + + + + + RS_ICB_TYP + + false + + + + + RS_PKTYPADRESY + + false + + + + + RS_PRIJMENI + + false + + + + + RS_TITULZA + + false + + + + + RS_TITULPRED + + false + + + + + RS_DRUHEJMENO + + false + + + + + RS_CTVRT + + false + + + + + RS_TYPADRESY + + false + + + + + RS_OKRES + + false + + + + + RS_EVN + + false + + + + + RS_CISLOPRODUKTUMASK + + false + + + + + RS_DISPLAYTEXT + + false + + + + + RS_IDADRESY + + false + + + + + + false + + + + + VracenyVsechnyZaznamy + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJF9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJF9_001_Dapi.xml new file mode 100644 index 0000000..e31b6e9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJF9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJF9 + 001 + DEVL + + + HUB + MWFJF9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJG0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJG0_001.xml new file mode 100644 index 0000000..aae853a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJG0_001.xml @@ -0,0 +1,122 @@ + + + + + HUB + MWFJG0 + 001 + active + hub API:MWFJG0 + + + + + APP_ID + + false + + + + + CIF + + false + + + + + CM_ID + + false + + + + + CasoveRazitko + + false + + + + + ICO + + false + + + + + Pristup + + false + + + + + Produkt + + false + + + + + ProduktKontext + + false + + + + + RC + + false + + + + + StavSluzby + + false + + + + + Transaction_ID + + false + + + + + TypDocumentu + + false + + + + + ZpusobPodepsani + + false + + + + + + + CM_ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJG0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJG0_001_Dapi.xml new file mode 100644 index 0000000..11b69a2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJG0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJG0 + 001 + DEVL + + + HUB + MWFJG0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJM7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJM7_001.xml new file mode 100644 index 0000000..78c7b0a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJM7_001.xml @@ -0,0 +1,55 @@ + + + + + HUB + MWFJM7 + 001 + active + hub API:MWFJM7 + + + + + PracovniPomer + + false + + + + + + + Data + + + + RS_POVOLANI + + false + + + + + RS_ID_POVOLANI + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJM7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJM7_001_Dapi.xml new file mode 100644 index 0000000..aa7004c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJM7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJM7 + 001 + DEVL + + + HUB + MWFJM7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJP0_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJP0_001.xml new file mode 100644 index 0000000..1914a2d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJP0_001.xml @@ -0,0 +1,69 @@ + + + + + HUB + MWFJP0 + 001 + active + hub API:MWFJP0 + + + + + CIF + + false + + + + + MA_STAV + + false + + + + + RC + + false + + + + + + + Data + + + + RS_GOLD_ACCOUNT + + false + + + + + + false + + + + + RESULT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJP0_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJP0_001_Dapi.xml new file mode 100644 index 0000000..f3de8ac --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJP0_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJP0 + 001 + DEVL + + + HUB + MWFJP0 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJP8_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJP8_001.xml new file mode 100644 index 0000000..6dee522 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJP8_001.xml @@ -0,0 +1,90 @@ + + + + + HUB + MWFJP8 + 001 + active + hub API:MWFJP8 + + + + + Logo + + false + + + + + MSISDN + + false + + + + + + + Data + + + + RS_DUVODNEKOMPABILITYNFCTEXT + + false + + + + + RS_DUVODNEKOMPABILITYNFC + + false + + + + + RS_BLOKACEPRODEJNIHOPROCESUFLAG + + false + + + + + RS_LOGO + + false + + + + + + false + + + + + VysledekKontroly + + false + + + + + VysledekKontrolyText + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJP8_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJP8_001_Dapi.xml new file mode 100644 index 0000000..020f811 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJP8_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJP8 + 001 + DEVL + + + HUB + MWFJP8 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJS7_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJS7_001.xml new file mode 100644 index 0000000..66500bf --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJS7_001.xml @@ -0,0 +1,76 @@ + + + + + HUB + MWFJS7 + 001 + active + hub API:MWFJS7 + + + + + WFID + + false + + + + + + + Data + + + + RS_APPKEY + + false + + + + + RS_WFID + + false + + + + + RS_APPROVALCASEID + + false + + + + + RS_APPSTATE + + false + + + + + RS_APPTYPE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJS7_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJS7_001_Dapi.xml new file mode 100644 index 0000000..38d4722 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJS7_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJS7 + 001 + DEVL + + + HUB + MWFJS7 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJS9_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJS9_001.xml new file mode 100644 index 0000000..f0556a8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJS9_001.xml @@ -0,0 +1,213 @@ + + + + + HUB + MWFJS9 + 001 + active + hub API:MWFJS9 + + + + + WFID + + false + + + + + + + ACCOUNTNUMBER + + false + + + + + ACCOUNTNUMBERTRANSFER + + false + + + + + APPLKEY + + false + + + + + BANKCODETRANSFER + + false + + + + + BUSSTATE + + false + + + + + CARDTRANSFER + + false + + + + + CARDTYPE + + false + + + + + CHECKBLCOUNTRY + + false + + + + + CHECKBRIDGER + + false + + + + + CHECKDOCUMENTS + + false + + + + + CHECKFATCA + + false + + + + + CHECKTRANSFER + + false + + + + + CLIENTID + + false + + + + + CREATEDATE + + false + + + + + DEBETCARDFLAG + + false + + + + + ERRORFLAG + + false + + + + + ERRORMESSAGE + + false + + + + + ERRORMWFFLAG + + false + + + + + INCOMPLETEREQUEST + + false + + + + + LASTSTATECHANGEDATE + + false + + + + + PREVIOUSSTATE + + false + + + + + PROCESSNAME + + false + + + + + TERMINATEDATE + + false + + + + + USERID + + false + + + + + WAKEUPTIME + + false + + + + + WORKCREATEDBY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJS9_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJS9_001_Dapi.xml new file mode 100644 index 0000000..7d5a6af --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJS9_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJS9 + 001 + DEVL + + + HUB + MWFJS9 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJT6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJT6_001.xml new file mode 100644 index 0000000..615e87a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJT6_001.xml @@ -0,0 +1,136 @@ + + + + + HUB + MWFJT6 + 001 + active + hub API:MWFJT6 + + + + + SRC_FIRST_NAME + + false + + + + + SRC_GENDER + + false + + + + + SRC_LAST_NAME + + false + + + + + SRC_REF_ID + + false + + + + + + + EXPL_DCLN_FIRST_NAME + + false + + + + + EXPL_DCLN_LAST_NAME + + false + + + + + OUT_FIRST_NAME_4 + + false + + + + + OUT_FIRST_NAME_5 + + false + + + + + OUT_LAST_NAME_4 + + false + + + + + OUT_LAST_NAME_5 + + false + + + + + SC_DCLN_FIRST_NAME + + false + + + + + SC_DCLN_LAST_NAME + + false + + + + + SRC_FIRST_NAME + + false + + + + + SRC_GENDER + + false + + + + + SRC_LAST_NAME + + false + + + + + SRC_REF_ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJT6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJT6_001_Dapi.xml new file mode 100644 index 0000000..e0f0cc2 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJT6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJT6 + 001 + DEVL + + + HUB + MWFJT6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJW1_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJW1_001.xml new file mode 100644 index 0000000..52803f9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJW1_001.xml @@ -0,0 +1,122 @@ + + + + + HUB + MWFJW1 + 001 + active + hub API:MWFJW1 + + + + + AVPole2 + + false + + + + + Castka + + false + + + + + CisloUctuPrijemce_Externi + + false + + + + + CisloUctuPrijemce_Interni + + false + + + + + CisloUctuPrijemce_Kodbanky + + false + + + + + CisloUctuUver + + false + + + + + DatumCerpani + + false + + + + + Kanal + + false + + + + + KonstSymbol + + false + + + + + PodepsanoNaSingpadu + + false + + + + + SpecifickySymbol + + false + + + + + Urednik + + false + + + + + VarSymbol + + false + + + + + + + IDCerpani + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJW1_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJW1_001_Dapi.xml new file mode 100644 index 0000000..a4867dc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJW1_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJW1 + 001 + DEVL + + + HUB + MWFJW1 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJW6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJW6_001.xml new file mode 100644 index 0000000..00ff8d7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJW6_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWFJW6 + 001 + active + hub API:MWFJW6 + + + + + CisloUctuUver + + false + + + + + DistribuceVypisu + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJW6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJW6_001_Dapi.xml new file mode 100644 index 0000000..74a549d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJW6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJW6 + 001 + DEVL + + + HUB + MWFJW6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJZ2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJZ2_001.xml new file mode 100644 index 0000000..faa2df6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJZ2_001.xml @@ -0,0 +1,118 @@ + + + + + HUB + MWFJZ2 + 001 + active + hub API:MWFJZ2 + + + + + ACCOUNT + + false + + + + + NEXT_REC_KEY + + false + + + + + + + Data + + + + RS_ID_BUNDLE + + false + + + + + RS_DATE_FROM + + false + + + + + RS_DATE_TO + + false + + + + + RS_CHANNEL + + false + + + + + RS_SSO + + false + + + + + RS_LOG_DATE + + false + + + + + RS_LOG_TIME + + false + + + + + + false + + + + + MORE_REC_INDICATOR + + false + + + + + NBR_OF_REC + + false + + + + + NEXT_REC_KEY + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJZ2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJZ2_001_Dapi.xml new file mode 100644 index 0000000..75788c9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJZ2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJZ2 + 001 + DEVL + + + HUB + MWFJZ2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJZ3_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJZ3_001.xml new file mode 100644 index 0000000..0c77436 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJZ3_001.xml @@ -0,0 +1,80 @@ + + + + + HUB + MWFJZ3 + 001 + active + hub API:MWFJZ3 + + + + + ACCOUNT + + false + + + + + BIRTH_NUMBER + + false + + + + + CHANNEL + + false + + + + + IC + + false + + + + + ID_BUNDLE + + false + + + + + ID_BUNDLE_ACT + + false + + + + + SSO + + false + + + + + UNI_PT_KEY + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJZ3_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJZ3_001_Dapi.xml new file mode 100644 index 0000000..5fc1258 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJZ3_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJZ3 + 001 + DEVL + + + HUB + MWFJZ3 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJZ4_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJZ4_001.xml new file mode 100644 index 0000000..805597d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJZ4_001.xml @@ -0,0 +1,76 @@ + + + + + HUB + MWFJZ4 + 001 + active + hub API:MWFJZ4 + + + + + ACT_BUNDLE_ACTIVE_FROM + + false + + + + + ContractId + + false + + + + + ID_BUNDLE_ACT + + false + + + + + ROLE + + false + + + + + + + DATE_OF_NEXT_CHANGE + + false + + + + + Data + + + + RS_ID_BUNDLE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJZ4_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJZ4_001_Dapi.xml new file mode 100644 index 0000000..bbc8649 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJZ4_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJZ4 + 001 + DEVL + + + HUB + MWFJZ4 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJZ5_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJZ5_001.xml new file mode 100644 index 0000000..74c4970 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJZ5_001.xml @@ -0,0 +1,45 @@ + + + + + HUB + MWFJZ5 + 001 + active + hub API:MWFJZ5 + + + + + ACCOUNT + + false + + + + + + + ACT_BUNDLE_ACTIVE_FROM + + false + + + + + ID_BUNDLE_ACT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFJZ5_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFJZ5_001_Dapi.xml new file mode 100644 index 0000000..ec277ed --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFJZ5_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFJZ5 + 001 + DEVL + + + HUB + MWFJZ5 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFK28_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFK28_001.xml new file mode 100644 index 0000000..40903ea --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFK28_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWFK28 + 001 + active + hub API:MWFK28 + + + + + CisloKarty + + false + + + + + ZpusobDistribuceVypisu + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFK28_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFK28_001_Dapi.xml new file mode 100644 index 0000000..f2f430d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFK28_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFK28 + 001 + DEVL + + + HUB + MWFK28 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFK32_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFK32_001.xml new file mode 100644 index 0000000..cb17293 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFK32_001.xml @@ -0,0 +1,342 @@ + + + + + HUB + MWFK32 + 001 + active + hub API:MWFK32 + + + + + ICO + + false + + + + + RodneCislo + + false + + + + + + + Data + + + + RS_PLATNOSTKARTY + + false + + + + + RS_CISLOKARTY + + false + + + + + RS_JMENODRZITELE + + false + + + + + RS_LOGOKARTY + + false + + + + + RS_STAVSMLOUVY + + false + + + + + RS_ORGANIZACE + + false + + + + + RS_AKTIVITAKARTY + + false + + + + + RS_BLOKACESMLOUVY1 + + false + + + + + RS_BLOKACESMLOUVY2 + + false + + + + + RS_MINIMALNISPLATKA + + false + + + + + RS_DISPONIBILNIZUSTATEK + + false + + + + + RS_SPLATKADATUMSPLATNOSTI + + false + + + + + RS_SPLATKAKUHRADE + + false + + + + + RS_DENNILIMITOBCHODNIK + + false + + + + + RS_CELKEMDOPLATIT + + false + + + + + RS_VYSEPOSLEDNISPLATKY + + false + + + + + RS_DATUMPOSLEDNISPLATKY + + false + + + + + RS_UVEROVYRAMEC + + false + + + + + RS_DATUMPODPISUSMLOUVY + + false + + + + + RS_CISLOSMLOUVY + + false + + + + + RS_DENNILIMITHOTOVOST + + false + + + + + RS_UVEROVYRAMECVYCERPANY + + false + + + + + RS_UVEROVYRAMECHOTOVOST + + false + + + + + RS_DISPONIBILNIZUSTATEKHOTOVOST + + false + + + + + RS_LOYALTYSTATUS + + false + + + + + RS_DESIGNID + + false + + + + + RS_ZPUSOBDISTRIBUCEVYPISU + + false + + + + + RS_CISLOKARETNIHOUCTU + + false + + + + + RS_DODATKOVAKARTA + + false + + + + + RS_MAXPOCETTRANSAKCIDEN + + false + + + + + RS_MAXPOCETTRANSAKCIDENATM + + false + + + + + RS_INTERNET + + false + + + + + RS_DRZITELRC + + false + + + + + RS_LIMITINKASA + + false + + + + + RS_ZPUSOBUHRADY + + false + + + + + RS_CISLOKARTYMASK + + false + + + + + RS_CISLOKARETNIHOUCTUMASK + + false + + + + + RS_CHIP + + false + + + + + RS_MSISDN + + false + + + + + RS_DENNILIMITECOMMERCE + + false + + + + + RS_VYBERMIMOEU + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFK32_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFK32_001_Dapi.xml new file mode 100644 index 0000000..f8c4d6b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFK32_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFK32 + 001 + DEVL + + + HUB + MWFK32 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFKDX_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFKDX_001.xml new file mode 100644 index 0000000..1899ef8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFKDX_001.xml @@ -0,0 +1,184 @@ + + + + + HUB + MWFKDX + 001 + active + hub API:MWFKDX + + + + + ChannelId + + false + + + + + ClientCif + + false + + + + + + + InsuranceOffer + + + + RS_INSURANCEID + + false + + + + + RS_INSURANCELENGTHMAXIMUM + + false + + + + + + false + + + + + InsuranceView + + + + RS_INSURANCEID + + false + + + + + RS_INSURANCEINSTKEY + + false + + + + + RS_INSURANCEISACTIVE + + false + + + + + RS_INSURANCECONTRACTNUMBER + + false + + + + + RS_ACCOUNTNUMBER + + false + + + + + RS_INSURANCECREATEBRANCHID + + false + + + + + RS_INSURANCECREATECHANNELID + + false + + + + + RS_INSURANCESIGNDATE + + false + + + + + RS_INSURANCESTARTDATE + + false + + + + + RS_INSURANCEFEEAMOUNT + + false + + + + + RS_INSURANCEFEEFREQUENCY + + false + + + + + RS_INSURANCEPRICETOTALAMOUNT + + false + + + + + RS_INSURANCEENDDATE + + false + + + + + RS_INSURANCECANCELDATE + + false + + + + + RS_INSURANCECANCELCHANNELID + + false + + + + + RS_INSURANCECANCELREASONTYPE + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFKDX_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFKDX_001_Dapi.xml new file mode 100644 index 0000000..2e778fc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFKDX_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFKDX + 001 + DEVL + + + HUB + MWFKDX + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFKDY_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFKDY_001.xml new file mode 100644 index 0000000..372dae6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFKDY_001.xml @@ -0,0 +1,69 @@ + + + + + HUB + MWFKDY + 001 + active + hub API:MWFKDY + + + + + ChannelId + + false + + + + + ClientCif + + false + + + + + InsuranceId + + false + + + + + + + Data + + + + RS_ACCOUNTNUMBER + + false + + + + + RS_ACCOUNTPRODUCTCLASS + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFKDY_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFKDY_001_Dapi.xml new file mode 100644 index 0000000..1e8537f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFKDY_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFKDY + 001 + DEVL + + + HUB + MWFKDY + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFKE1_498.xml b/tests/src/main/resources/xmlMappings/HUB_MWFKE1_498.xml new file mode 100644 index 0000000..02731fb --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFKE1_498.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWFKE1 + 498 + active + hub API:MWFKE1 + + + + + EmployeeCount + + false + + + + + EmployeeCountValidByUserId + + false + + + + + EmployeeCountValidDate + + false + + + + + PersonId + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFKE1_498_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFKE1_498_Dapi.xml new file mode 100644 index 0000000..ec2beba --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFKE1_498_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFKE1 + 498 + TEST + + + HUB + MWFKE1 + 498 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFKE1_792.xml b/tests/src/main/resources/xmlMappings/HUB_MWFKE1_792.xml new file mode 100644 index 0000000..2b32871 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFKE1_792.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWFKE1 + 792 + active + hub API:MWFKE1 + + + + + EmployeeCount + + false + + + + + EmployeeCountValidByUserId + + false + + + + + EmployeeCountValidDate + + false + + + + + PersonId + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFKE1_792_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFKE1_792_Dapi.xml new file mode 100644 index 0000000..935ed1d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFKE1_792_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFKE1 + 792 + TEST + + + HUB + MWFKE1 + 789 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL29_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL29_001.xml new file mode 100644 index 0000000..f97d875 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL29_001.xml @@ -0,0 +1,160 @@ + + + + + HUB + MWFL29 + 001 + active + hub API:MWFL29 + + + + + CIF + + false + + + + + Produkt + + false + + + + + TypSmlouvy + + false + + + + + + + AktualniVerzeDotazniku + + false + + + + + Data + + + + RS_PRODUKT + + false + + + + + RS_TYPSMLOUVY + + false + + + + + RS_STAVSMLOUVY + + false + + + + + RS_CISLOSMLOUVY + + false + + + + + RS_DATUMOD + + false + + + + + RS_DATUMDO + + false + + + + + RS_ZKRACENYNAZEVPRODUKTU + + false + + + + + RS_OBJEM + + false + + + + + RS_ISIN + + false + + + + + + false + + + + + ICO + + false + + + + + Pocet + + false + + + + + ProfilKlienta + + false + + + + + RodneCislo + + false + + + + + StavKlienta + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL29_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL29_001_Dapi.xml new file mode 100644 index 0000000..41b8f53 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL29_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL29 + 001 + DEVL + + + HUB + MWFL29 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL31_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL31_001.xml new file mode 100644 index 0000000..2f35307 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL31_001.xml @@ -0,0 +1,284 @@ + + + + + + HUB + MWFL31 + 001 + active + hub API:MWFL31 + + + + + CIF + + false + + + + + DIC + + false + + + + + DatumNarozeni + + false + + + + + Domicil + + false + + + + + DruhDruhehoDokladu + + false + + + + + DruhyDokladCislo + + false + + + + + DruhyDokladPlatnost + + false + + + + + EkonomAktivCR + + false + + + + + EkonomAktivSR + + false + + + + + Email + + false + + + + + Fax + + false + + + + + ICO + + false + + + + + Jmeno + + false + + + + + MistoNarozeni + + false + + + + + Mobil + + false + + + + + OPCislo + + false + + + + + OPPlatnost + + false + + + + + PSC + + false + + + + + PasCislo + + false + + + + + PasPlatnost + + false + + + + + PlatceDPH + + false + + + + + Pobocka + + false + + + + + Prijmeni + + false + + + + + Produkt + + false + + + + + RezidentCR + + false + + + + + RezidentSR + + false + + + + + RodneCislo + + false + + + + + Sidlo + + false + + + + + StatniPrislusnost + + false + + + + + Telefon + + false + + + + + Telefon2 + + false + + + + + TitulPred + + false + + + + + TitulZa + + false + + + + + TypKlient + + false + + + + + Ulice + + false + + + + + Zeme + + false + + + + + ZvyhodnenyKlient + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL31_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL31_001_Dapi.xml new file mode 100644 index 0000000..9e77f03 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL31_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL31 + 001 + DEVL + + + HUB + MWFL31 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL33_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL33_001.xml new file mode 100644 index 0000000..935ef6f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL33_001.xml @@ -0,0 +1,216 @@ + + + + + HUB + MWFL33 + 001 + active + hub API:MWFL33 + + + + + CisloSmlouvy + + false + + + + + KlientIDDisponent + + false + + + + + + + Data + + + + RS_RODNECISLO + + false + + + + + RS_TYPKLIENT + + false + + + + + RS_JMENO + + false + + + + + RS_PRIJMENI + + false + + + + + RS_ULICE + + false + + + + + RS_SIDLO + + false + + + + + RS_PSC + + false + + + + + RS_ZEME + + false + + + + + RS_TITULPRED + + false + + + + + RS_TITULZA + + false + + + + + RS_POBOCKA + + false + + + + + RS_STATNIPRISLUSNOST + + false + + + + + RS_REZIDENTCR + + false + + + + + RS_REZIDENTSR + + false + + + + + RS_KLIENTIDDISPONENT + + false + + + + + RS_OPCISLO + + false + + + + + RS_OPPLATNOST + + false + + + + + RS_PASCISLO + + false + + + + + RS_PASPLATNOST + + false + + + + + RS_DRUHDRUHEHODOKLADU + + false + + + + + RS_DRUHYDOKLADCISLO + + false + + + + + RS_DRUHYDOKLADPLATNOST + + false + + + + + RS_STAVDISPONENTA + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL33_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL33_001_Dapi.xml new file mode 100644 index 0000000..83a1d69 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL33_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL33 + 001 + DEVL + + + HUB + MWFL33 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL34_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL34_001.xml new file mode 100644 index 0000000..d4f017b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL34_001.xml @@ -0,0 +1,269 @@ + + + + + HUB + MWFL34 + 001 + active + hub API:MWFL34 + + + + + CisloSmlouvy + + false + + + + + Produkt + + false + + + + + + + Atribut + + false + + + + + CIF + + false + + + + + CelkovaHodnotaInvestice + + false + + + + + DatumDo + + false + + + + + DatumOd + + false + + + + + DatumVypoved + + false + + + + + DistribuceKV + + false + + + + + Hodnota + + false + + + + + ISIN + + false + + + + + KlientskeVypisyObchodniFrekvence + + false + + + + + KlientskeVypisyStavoveFrekvence + + false + + + + + KorespondencniJmeno + + false + + + + + KorespondencniPSC + + false + + + + + KorespondencniPrijmeni + + false + + + + + KorespondencniSidlo + + false + + + + + KorespondencniTitulPred + + false + + + + + KorespondencniTitulZa + + false + + + + + KorespondencniUlice + + false + + + + + KorespondencniZeme + + false + + + + + Pobocka + + false + + + + + PobockaRestante + + false + + + + + PocetISINu + + false + + + + + PocetNedorucenychVypisu + + false + + + + + ProfilKlienta + + false + + + + + StavSmlouvy + + false + + + + + TerminCisloUctu + + false + + + + + TerminKodBanky + + false + + + + + TerminMena + + false + + + + + TypSmlouvy + + false + + + + + UserID + + false + + + + + VyporadaniCisloUctu + + false + + + + + VyporadaniKodBanky + + false + + + + + VyporadaniMena + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL34_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL34_001_Dapi.xml new file mode 100644 index 0000000..75d3a49 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL34_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL34 + 001 + DEVL + + + HUB + MWFL34 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL35_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL35_001.xml new file mode 100644 index 0000000..64d2661 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL35_001.xml @@ -0,0 +1,242 @@ + + + + + + HUB + MWFL35 + 001 + active + hub API:MWFL35 + + + + + CIF + + false + + + + + CisloSmlouvy + + false + + + + + DatumDo + + false + + + + + DatumOd + + false + + + + + DistribuceKV + + false + + + + + Hodnota + + false + + + + + ISIN + + false + + + + + KlientskeVypisyObchodniFrekvence + + false + + + + + KlientskeVypisyStavoveFrekvence + + false + + + + + KorespondencniJmeno + + false + + + + + KorespondencniPSC + + false + + + + + KorespondencniPrijmeni + + false + + + + + KorespondencniSidlo + + false + + + + + KorespondencniTitulPred + + false + + + + + KorespondencniTitulZa + + false + + + + + KorespondencniUlice + + false + + + + + KorespondencniZeme + + false + + + + + Pobocka + + false + + + + + PobockaRestante + + false + + + + + PremiovyVklad + + false + + + + + Produkt + + false + + + + + StavSmlouvy + + false + + + + + TerminCisloUctu + + false + + + + + TerminKodBanky + + false + + + + + TerminMena + + false + + + + + TypSmlouvy + + false + + + + + VyporadaniCisloUctu + + false + + + + + VyporadaniKodBanky + + false + + + + + VyporadaniMena + + false + + + + + Zdroj + + false + + + + + + + CisloSmlouvy + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL35_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL35_001_Dapi.xml new file mode 100644 index 0000000..94ba8d6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL35_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL35 + 001 + DEVL + + + HUB + MWFL35 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL37_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL37_001.xml new file mode 100644 index 0000000..9c2c02e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL37_001.xml @@ -0,0 +1,391 @@ + + + + + HUB + MWFL37 + 001 + active + hub API:MWFL37 + + + + + Aktivni + + false + + + + + CIF + + false + + + + + ISIN + + false + + + + + Produkt + + false + + + + + TypPobocka + + false + + + + + TypSmlouvy + + false + + + + + + + Data + + + + RS_TYPPOBOCKA + + false + + + + + RS_ISIN + + false + + + + + RS_NAZEV + + false + + + + + RS_KATEGORIE + + false + + + + + RS_MENA + + false + + + + + RS_PROFIL + + false + + + + + RS_AKTIVNI + + false + + + + + RS_EMITENT + + false + + + + + RS_RODINA + + false + + + + + RS_POPLATEKVSTUP + + false + + + + + RS_POPLATEKSPRAVA + + false + + + + + RS_COJPL + + false + + + + + RS_COJPLDATUM + + false + + + + + RS_SPLATNOST + + false + + + + + RS_NAKUP + + false + + + + + RS_PRODEJ + + false + + + + + RS_PRESTUP + + false + + + + + RS_OBCHODDENNAKUP + + false + + + + + RS_OBCHODDENPRODEJ + + false + + + + + RS_OBCHODDENPRESTUP + + false + + + + + RS_COJPLCZK + + false + + + + + RS_POCETKS_CELKEM + + false + + + + + RS_POCETKS_DISPONIBILNI + + false + + + + + RS_POCETKS_BLOKACE + + false + + + + + RS_OBJEM_CELKEM_CZK + + false + + + + + RS_MINIMALNIINVESTICE + + false + + + + + RS_TECHNICKYUCETCISLO + + false + + + + + RS_DATPOCPREMOBD + + false + + + + + RS_DATKONPREMOBD + + false + + + + + RS_DATPOCPRIPOBD + + false + + + + + RS_DATKONPRIPOBD + + false + + + + + RS_DATSPLAT + + false + + + + + RS_SAZBAZAKFIX + + false + + + + + RS_SAZBAZAKFLOAT + + false + + + + + RS_SAZBAPRIPFIX + + false + + + + + RS_SAZBAPREMFLOAT + + false + + + + + RS_SAZBAPREMFIX + + false + + + + + RS_PROSPEKT + + false + + + + + RS_ATRIBUTOBDOBI + + false + + + + + RS_PREMSAZBASPLNENO + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_TRHEMISE + + false + + + + + RS_SKUPINAEMISE + + false + + + + + RS_PRODUKT + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL37_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL37_001_Dapi.xml new file mode 100644 index 0000000..c3e27cd --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL37_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL37 + 001 + DEVL + + + HUB + MWFL37 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL38_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL38_001.xml new file mode 100644 index 0000000..73dfa74 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL38_001.xml @@ -0,0 +1,314 @@ + + + + + HUB + MWFL38 + 001 + active + hub API:MWFL38 + + + + + CIF + + false + + + + + DatumDo + + false + + + + + DatumOd + + false + + + + + Pobocka + + false + + + + + PocetObchodu + + false + + + + + Produkt + + false + + + + + PseudoTransakceID + + false + + + + + StavObchodu + + false + + + + + TypObchodu + + false + + + + + TypSmlouvy + + false + + + + + UserID + + false + + + + + + + Data + + + + RS_IDOBCHODU + + false + + + + + RS_ISIN + + false + + + + + RS_NAZEV + + false + + + + + RS_UZAVRENIDATUM + + false + + + + + RS_OBCHODNIDATUM + + false + + + + + RS_VYPORADANIDATUM + + false + + + + + RS_OBCHODNICISLO + + false + + + + + RS_TYPOBCHODU + + false + + + + + RS_POCETKS + + false + + + + + RS_OBJEM + + false + + + + + RS_CENA + + false + + + + + RS_POPLATKY + + false + + + + + RS_PROVIZE + + false + + + + + RS_MENA + + false + + + + + RS_STAVOBCHODU + + false + + + + + RS_VYPLATA + + false + + + + + RS_POBOCKAVYPLATY + + false + + + + + RS_VYPLACENO + + false + + + + + RS_VYPLATADATUM + + false + + + + + RS_POBOCKA + + false + + + + + RS_KLIENTIDDISPONENT + + false + + + + + RS_EXTID + + false + + + + + RS_USERID + + false + + + + + RS_PSEUDOTRANSAKCEID + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_CISLOSMLOUVY + + false + + + + + RS_BANKAKOD + + false + + + + + RS_PRODUKT + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL38_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL38_001_Dapi.xml new file mode 100644 index 0000000..9134163 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL38_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL38 + 001 + DEVL + + + HUB + MWFL38 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL39_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL39_001.xml new file mode 100644 index 0000000..32e353c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL39_001.xml @@ -0,0 +1,248 @@ + + + + + HUB + MWFL39 + 001 + active + hub API:MWFL39 + + + + + BankaKod + + false + + + + + CIF + + false + + + + + CisloUctu + + false + + + + + CostCentrum + + false + + + + + DruhUctu + + false + + + + + ISIN + + false + + + + + ISIN2 + + false + + + + + KlientIDDisponent + + false + + + + + KonstantniSymbol + + false + + + + + MenaUctu + + false + + + + + ObchodniDatum + + false + + + + + Objem + + false + + + + + Pobocka + + false + + + + + PobockaVyplaty + + false + + + + + PocetKS + + false + + + + + Produkt + + false + + + + + SpecifickySymbol + + false + + + + + StavObchodu + + false + + + + + TypObchodu + + false + + + + + TypSmlouvy + + false + + + + + VariabilniSymbol + + false + + + + + VlozeniDatum + + false + + + + + Vyplata + + false + + + + + + + ICO + + false + + + + + ISIN + + false + + + + + ISIN2 + + false + + + + + ObchodniDatum + + false + + + + + Objem + + false + + + + + PocetKS + + false + + + + + PseudoTransakceID + + false + + + + + RodneCislo + + false + + + + + VyporadaniDatum + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL39_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL39_001_Dapi.xml new file mode 100644 index 0000000..e70de23 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL39_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL39 + 001 + DEVL + + + HUB + MWFL39 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL40_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL40_001.xml new file mode 100644 index 0000000..d856c93 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL40_001.xml @@ -0,0 +1,213 @@ + + + + + HUB + MWFL40 + 001 + active + hub API:MWFL40 + + + + + BankaKod + + false + + + + + CIF + + false + + + + + CisloUctu + + false + + + + + CostCentrum + + false + + + + + DatumDo + + false + + + + + DatumOd + + false + + + + + FrekvenceOpakovani + + false + + + + + HodnotaOpakovani + + false + + + + + IDObjednavkyRPT + + false + + + + + ISIN + + false + + + + + ISIN2 + + false + + + + + KlientIDDisponent + + false + + + + + KonstantniSymbol + + false + + + + + Mena + + false + + + + + MenaUctu + + false + + + + + ObchodniDatum + + false + + + + + Objem + + false + + + + + Pobocka + + false + + + + + PobockaVyplaty + + false + + + + + PocetKS + + false + + + + + SpecifickySymbol + + false + + + + + TypObchodu + + false + + + + + TypSmlouvy + + false + + + + + VariabilniSymbol + + false + + + + + VlozeniDatum + + false + + + + + Vyplata + + false + + + + + + + IDObjednavkyRPT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL40_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL40_001_Dapi.xml new file mode 100644 index 0000000..7065be7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL40_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFL40 + 001 + DEVL + + + HUB + MWFL40 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL41_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL41_001.xml new file mode 100644 index 0000000..07208d0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL41_001.xml @@ -0,0 +1,251 @@ + + + + + HUB + MWFL41 + 001 + active + hub API:MWFL41 + + + + + CIF + + false + + + + + TypSmlouvy + + false + + + + + + + Data + + + + RS_FREKVENCEOPAKOVANI + + false + + + + + RS_HODNOTAOPAKOVANI + + false + + + + + RS_DATUMOD + + false + + + + + RS_DATUMDO + + false + + + + + RS_KLIETNIDDISPONENT + + false + + + + + RS_STAVOBCHODU + + false + + + + + RS_IDOBJEDNAVKYRPT + + false + + + + + RS_ISIN + + false + + + + + RS_ISIN2 + + false + + + + + RS_NAZEV + + false + + + + + RS_NAZEV2 + + false + + + + + RS_TYPOBCHODU + + false + + + + + RS_POCETKS + + false + + + + + RS_OBJEM + + false + + + + + RS_MENA + + false + + + + + RS_VYPLATA + + false + + + + + RS_POBOCKAVYPLATY + + false + + + + + RS_COSTCENTRUM + + false + + + + + RS_DRUHUCTU + + false + + + + + RS_MENAUCTU + + false + + + + + RS_VARIABILNISYMBOL + + false + + + + + RS_KONSTANTNISYMBOL + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_BANKAKOD + + false + + + + + RS_CISLOUCTU + + false + + + + + RS_OBCHODNIDATUM + + false + + + + + RS_VLOZENIDATUM + + false + + + + + RS_POBOCKA + + false + + + + + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL41_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL41_001_Dapi.xml new file mode 100644 index 0000000..5255a0e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL41_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFL41 + 001 + DEVL + + + HUB + MWFL41 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL43_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL43_001.xml new file mode 100644 index 0000000..bdecd6d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL43_001.xml @@ -0,0 +1,132 @@ + + + + + HUB + MWFL43 + 001 + active + hub API:MWFL43 + + + + + Autorizace + + false + + + + + CIF + + false + + + + + IDDotaznik + + false + + + + + Platnost + + false + + + + + PocetZaznamu + + false + + + + + + + Data + + + + RS_IDDOTAZNIK + + false + + + + + RS_VERZEDOTAZNIK + + false + + + + + RS_DATUMVLOZENI + + false + + + + + RS_TYPODPOVED + + false + + + + + RS_KATEGORIEKLIENTA + + false + + + + + RS_PROFILKLIENTA + + false + + + + + RS_OTAZKAODPOVED + + false + + + + + RS_PLATNOST + + false + + + + + + false + + + + + Pocet + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL43_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL43_001_Dapi.xml new file mode 100644 index 0000000..f48f53f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL43_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL43 + 001 + DEVL + + + HUB + MWFL43 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL44_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL44_001.xml new file mode 100644 index 0000000..b3676d5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL44_001.xml @@ -0,0 +1,88 @@ + + + + + + HUB + MWFL44 + 001 + active + hub API:MWFL44 + + + + + CIF + + false + + + + + OtazkaOdpoved + + false + + + + + TypOdpoved + + false + + + + + VerzeDotaznik + + false + + + + + + + IDDotaznik + + false + + + + + KategorieKlienta + + false + + + + + Platnost + + false + + + + + PlatnostDo + + false + + + + + ProfilKlienta + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL44_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL44_001_Dapi.xml new file mode 100644 index 0000000..7ce2a9b --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL44_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL44 + 001 + DEVL + + + HUB + MWFL44 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL45_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL45_001.xml new file mode 100644 index 0000000..9ded7b4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL45_001.xml @@ -0,0 +1,38 @@ + + + + + HUB + MWFL45 + 001 + active + hub API:MWFL45 + + + + + IDDotaznik + + false + + + + + TypOdpoved + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL45_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL45_001_Dapi.xml new file mode 100644 index 0000000..8aef188 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL45_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL45 + 001 + DEVL + + + HUB + MWFL45 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL51_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL51_001.xml new file mode 100644 index 0000000..d1bbe89 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL51_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWFL51 + 001 + active + hub API:MWFL51 + + + + + CisloLeasingoveSmlouvy + + false + + + + + SPZ + + false + + + + + VIN + + false + + + + + + + ValidaceResult + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL51_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL51_001_Dapi.xml new file mode 100644 index 0000000..68bb4db --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL51_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL51 + 001 + DEVL + + + HUB + MWFL51 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL71_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL71_001.xml new file mode 100644 index 0000000..36e6a40 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL71_001.xml @@ -0,0 +1,216 @@ + + + + + HUB + MWFL71 + 001 + active + hub API:MWFL71 + + + + + CIF + + false + + + + + CisloBU + + false + + + + + CisloSU + + false + + + + + LANGUAGE + + false + + + + + NeaktivniUctyFlag + + false + + + + + + + Data + + + + RS_CISLOSU + + false + + + + + RS_CISLOBU + + false + + + + + RS_VIPKLIENT + + false + + + + + RS_TYPUCTU + + false + + + + + RS_ROZHODNEOBDOBI + + false + + + + + RS_BONUSOVAUROKOVASAZBA + + false + + + + + RS_PRECHODNEOBDOBI + + false + + + + + RS_CISLOTP + + false + + + + + RS_MESICNIPLATBA + + false + + + + + RS_STATUSSF + + false + + + + + RS_ZUSTATEKSU + + false + + + + + RS_BONUSOVEUROKY + + false + + + + + RS_DATUMPOSLEDNIOTOCKY + + false + + + + + RS_DATUMNASLEDUJICIOTOCKY + + false + + + + + RS_DATUMNASLKONCEOBDOBI + + false + + + + + RS_NAZEVUCTU + + false + + + + + RS_IDENTIFIKATORUCTU + + false + + + + + RS_NAZEVUCTUBU + + false + + + + + RS_IDENTIFIKATORUCTUBU + + false + + + + + + false + + + + + Index + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL71_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL71_001_Dapi.xml new file mode 100644 index 0000000..4550e7f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL71_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFL71 + 001 + DEVL + + + HUB + MWFL71 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL78_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL78_001.xml new file mode 100644 index 0000000..42671d4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL78_001.xml @@ -0,0 +1,80 @@ + + + + + HUB + MWFL78 + 001 + active + hub API:MWFL78 + + + + + RodneCislo + + false + + + + + + + HistorickaDelikvence + + false + + + + + InfoLimitExpres + + false + + + + + InfoLimitExpresDoplneni + + false + + + + + InfoLimitFlexikredit + + false + + + + + InfoLimitKreditniKarta + + false + + + + + InfoLimitOKKarta + + false + + + + + UverovyUcet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFL78_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFL78_001_Dapi.xml new file mode 100644 index 0000000..5b47547 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFL78_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFL78 + 001 + DEVL + + + HUB + MWFL78 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFLK6_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFLK6_001.xml new file mode 100644 index 0000000..3cccc71 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFLK6_001.xml @@ -0,0 +1,157 @@ + + + + + HUB + MWFLK6 + 001 + active + hub API:MWFLK6 + + + + + AGENTID + + false + + + + + CASDO + + false + + + + + CASOD + + false + + + + + CHANNEL + + false + + + + + DATUMGENEROVANI + + false + + + + + GEMID3 + + false + + + + + IDOM + + false + + + + + JMENO + + false + + + + + KLIENT + + false + + + + + ORDERNOTE + + false + + + + + ORDERNUM + + false + + + + + ORDERPRICE + + false + + + + + PRIJMENI + + false + + + + + PRODUKT + + false + + + + + PRODUKTTYPID + + false + + + + + TELEFONNICISLO + + false + + + + + WEB2CALL_ID + + false + + + + + ZDROJOVAADRESA + + false + + + + + + + WEB2CALL_ID_OUT + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFLK6_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFLK6_001_Dapi.xml new file mode 100644 index 0000000..8589a7e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFLK6_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFLK6 + 001 + DEVL + + + HUB + MWFLK6 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFLOL_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFLOL_001.xml new file mode 100644 index 0000000..497b4f5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFLOL_001.xml @@ -0,0 +1,184 @@ + + + + + HUB + MWFLOL + 001 + active + hub API:MWFLOL + + + + + BusinessType + + false + + + + + ClientAttornies + + + + RS_CLIENTATTORNEYINSTID + + false + + + + + RS_CLIENTATTORNEYINSTKEY + + false + + + + + RS_CLIENTATTORNEYINSTSYSID + + false + + + + + + false + + + + + ClientConsents + + + + RS_CONSENTTYPE + + false + + + + + RS_CONSENTVALUE + + false + + + + + + false + + + + + ClientInstId + + false + + + + + ClientInstKey + + false + + + + + ClientInstSysId + + false + + + + + ClientType + + false + + + + + ClientUniKey + + false + + + + + ConsentBranchId + + false + + + + + ConsentChannelId + + false + + + + + ConsentEmployeeId + + false + + + + + ConsentMode + + false + + + + + ConsentPromoterId + + false + + + + + ConsentSellerId + + false + + + + + ConsentSetId + + false + + + + + ConsentSignTime + + false + + + + + + + ConsentGroupKey + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFLOL_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFLOL_001_Dapi.xml new file mode 100644 index 0000000..4e45ada --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFLOL_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFLOL + 001 + DEVL + + + HUB + MWFLOL + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFP03_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFP03_001.xml new file mode 100644 index 0000000..a000045 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFP03_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWFP03 + 001 + active + hub API:MWFP03 + + + + + AP + + false + + + + + CisloUctu + + false + + + + + Stav + + false + + + + + + + MTS_ZadostNenalezena + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFP03_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFP03_001_Dapi.xml new file mode 100644 index 0000000..d6e5b0f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFP03_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFP03 + 001 + DEVL + + + HUB + MWFP03 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFQ35_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFQ35_001.xml new file mode 100644 index 0000000..073ade4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFQ35_001.xml @@ -0,0 +1,90 @@ + + + + HUB + MWFQ35 + 001 + active + hub API:MWFQ35 + false + + + + + Business + + false + + false + + + + CIF + + false + + false + + + + DuvodDotazuDoODS + + false + + false + + + + IDOsoba + + false + + false + + + + PriznakBankovnihoTajemstvi + + false + + false + + + + UNIPT_KEY + + false + + false + + + + + + CIF + + false + + false + + + + IDOsoba + + false + + false + + + + UNIPT_KEY + + false + + false + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFQ35_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFQ35_001_Dapi.xml new file mode 100644 index 0000000..168bd2d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFQ35_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFQ35 + 001 + TEST + + + HUB + MWFQ35 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + UFO.HUB.INP + + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFQ68_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFQ68_001.xml new file mode 100644 index 0000000..9ec0527 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFQ68_001.xml @@ -0,0 +1,33 @@ + + + + HUB + MWFQ68 + 001 + active + hub API:MWFQ68 + false + + + + + IDOsoba + + false + + false + + + + ID_Navrh + + false + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFQ68_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFQ68_001_Dapi.xml new file mode 100644 index 0000000..2b8e16f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFQ68_001_Dapi.xml @@ -0,0 +1,28 @@ + + + + + MWFQ68 + 001 + TEST + + HUB + MWFQ68 + 001 + + 60 + INPUT_WITH_REPLY + + 4 + 60 + UFO.HUB.INP + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFR55_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFR55_001.xml new file mode 100644 index 0000000..70880f6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFR55_001.xml @@ -0,0 +1,80 @@ + + + + + HUB + MWFR55 + 001 + active + hub API:MWFR55 + + + + + DatumPodpisuZadosti + + false + + + + + FunkceUrednika + + false + + + + + ObchodniMistoKod + + false + + + + + UrednikID + + false + + + + + UrednikJmeno + + false + + + + + UrednikPrijmeni + + false + + + + + UrednikSSO + + false + + + + + Zadost_KEY + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFR55_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFR55_001_Dapi.xml new file mode 100644 index 0000000..2d9d590 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFR55_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFR55 + 001 + DEVL + + + HUB + MWFR55 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFR59_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFR59_001.xml new file mode 100644 index 0000000..89a9174 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFR59_001.xml @@ -0,0 +1,108 @@ + + + + + HUB + MWFR59 + 001 + active + hub API:MWFR59 + + + + + APP_KEY + + false + + + + + APP_SET_KEY + + false + + + + + USER_FUNCTION + + false + + + + + USER_ROLE + + false + + + + + USER_SSO + + false + + + + + + + TEMP_HIGH_RISK_FLAG + + false + + + + + UMAN1_ALLOWED_FLAG + + false + + + + + UMAN1_USED_FLAG + + false + + + + + UMAN2_ALLOWED_FLAG + + false + + + + + UMAN2_USED_FLAG + + false + + + + + XMAN_ALLOWED_FLAG + + false + + + + + XMAN_USED_FLAG + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFR59_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFR59_001_Dapi.xml new file mode 100644 index 0000000..955fda8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFR59_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFR59 + 001 + DEVL + + + HUB + MWFR59 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFS60_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFS60_001.xml new file mode 100644 index 0000000..7b95295 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFS60_001.xml @@ -0,0 +1,97 @@ + + + + + HUB + MWFS60 + 001 + active + hub API:MWFS60 + + + + + Data + + + + RS_DOC_FORMAT + + false + + + + + RS_LOCATION + + false + + + + + RS_OPTIONS + + false + + + + + + false + + + + + Storage_Type + + false + + + + + + + Doc_Format + + false + + + + + Index + + false + + + + + Location + + false + + + + + Page_Count + + false + + + + + Pocet + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFS60_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFS60_001_Dapi.xml new file mode 100644 index 0000000..303fbe8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFS60_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFS60 + 001 + DEVL + + + HUB + MWFS60 + 001 + + + 60 + INPUT_WITH_REPLY + + + 4 + 60 + CBL.HUB.INP + + + + 4 + 60 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFS85_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFS85_001.xml new file mode 100644 index 0000000..649cbf6 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFS85_001.xml @@ -0,0 +1,73 @@ + + + + + HUB + MWFS85 + 001 + active + hub API:MWFS85 + + + + + PCOCID + + false + + + + + PFORID + + false + + + + + PMSGDATA + + false + + + + + PPHONENUMBER + + false + + + + + PREFID + + false + + + + + PSYSID + + false + + + + + + + MESGID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFS85_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFS85_001_Dapi.xml new file mode 100644 index 0000000..9236f55 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFS85_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFS85 + 001 + DEVL + + + HUB + MWFS85 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFSJ2_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFSJ2_001.xml new file mode 100644 index 0000000..a6bb8ee --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFSJ2_001.xml @@ -0,0 +1,888 @@ + + + + + HUB + MWFSJ2 + 001 + active + hub API:MWFSJ2 + + + + + IN1CCI + + false + + + + + IN1ICL + + false + + + + + IN1ICM + + false + + + + + IN1ICO + + false + + + + + IN1ICP + + false + + + + + IN1ITP + + false + + + + + IN1LOR + + false + + + + + IN1OF1 + + false + + + + + IN1OF2 + + false + + + + + IN1OFC + + false + + + + + IN1OFE + + false + + + + + IN1OFF + + false + + + + + IN1OFN + + false + + + + + IN1OFP + + false + + + + + IN1OFS + + false + + + + + IN1PBL + + false + + + + + IN1PCL + + false + + + + + IN1PCT + + false + + + + + INABAD + + false + + + + + INACC1 + + false + + + + + INACCT + + false + + + + + INACLS + + false + + + + + INADEX + + false + + + + + INAFID + + false + + + + + INASTC + + false + + + + + INASTL + + false + + + + + INBFFG + + false + + + + + INBK + + false + + + + + INBRCH + + false + + + + + INCARD + + false + + + + + INCBOC + + false + + + + + INCBRL + + false + + + + + INCBST + + false + + + + + INCCAC + + false + + + + + INCCFG + + false + + + + + INCCIN + + false + + + + + INCDSP + + false + + + + + INCFFA + + false + + + + + INCFFM + + false + + + + + INCIFR + + false + + + + + INCINX + + false + + + + + INCIPR + + false + + + + + INCISP + + false + + + + + INCLOV + + false + + + + + INCLST + + false + + + + + INCODT + + false + + + + + INCORR + + false + + + + + INCPLN + + false + + + + + INCPRT + + false + + + + + INDACI + + false + + + + + INDIFR + + false + + + + + INDINX + + false + + + + + INDIPR + + false + + + + + INDISP + + false + + + + + INDOPN + + false + + + + + INEMP + + false + + + + + INGOVT + + false + + + + + INHIST + + false + + + + + INIBKV + + false + + + + + INIDSP + + false + + + + + ININFR + + false + + + + + ININNX + + false + + + + + ININPR + + false + + + + + ININSP + + false + + + + + INIOVF + + false + + + + + INIPSW + + false + + + + + INLLF1 + + false + + + + + INLLF2 + + false + + + + + INLMAM + + false + + + + + INLP + + false + + + + + INLVOP + + false + + + + + INMAIL + + false + + + + + INNAEX + + false + + + + + INNAFG + + false + + + + + INNOAC + + false + + + + + INODL + + false + + + + + INOFF + + false + + + + + INOPT + + false + + + + + INORDR + + false + + + + + INPBST + + false + + + + + INPERS + + false + + + + + INPNNR + + false + + + + + INPRVS + + false + + + + + INPUB + + false + + + + + INREGE + + false + + + + + INRELA + + false + + + + + INREST + + false + + + + + INSCCD + + false + + + + + INSCFR + + false + + + + + INSCNX + + false + + + + + INSCPN + + false + + + + + INSCPR + + false + + + + + INSCSP + + false + + + + + INSCTL + + false + + + + + INSCTY + + false + + + + + INSEC + + false + + + + + INSIG + + false + + + + + INSIGA + + false + + + + + INSPIN + + false + + + + + INSTAT + + false + + + + + INSTBR + + false + + + + + INSTCD + + false + + + + + INSTCP + + false + + + + + INSTCT + + false + + + + + INSTDT + + false + + + + + INSTFR + + false + + + + + INSTSH + + false + + + + + INSTSP + + false + + + + + INTAFG + + false + + + + + INTFAC + + false + + + + + INTFAP + + false + + + + + INTHWA + + false + + + + + INTHWO + + false + + + + + INTITL + + false + + + + + INTYP + + false + + + + + INUFLM + + false + + + + + INUSF1 + + false + + + + + INUSF2 + + false + + + + + INWHFG + + false + + + + + INWHPC + + false + + + + + + + Data + + + + RS_OUDMSG + + false + + + + + RS_OUWMSG + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFSJ2_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFSJ2_001_Dapi.xml new file mode 100644 index 0000000..e27b894 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFSJ2_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFSJ2 + 001 + DEVL + + + HUB + MWFSJ2 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFU20_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFU20_001.xml new file mode 100644 index 0000000..87adfba --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFU20_001.xml @@ -0,0 +1,185 @@ + + + + + HUB + MWFU20 + 001 + active + hub API:MWFU20 + + + + + PCISLO_LS + + false + + + + + PDATUM_PU + + false + + + + + PDRUH_PU + + false + + + + + PDV_FAX + + false + + + + + PDV_ODESLAT + + false + + + + + PID_JAZYK + + false + + + + + PJMENO + + false + + + + + PKOD_PU_POSK + + false + + + + + PLIKVIDATOR_EMAIL + + false + + + + + PLIKVIDATOR_JMENO + + false + + + + + PLIKVIDATOR_KOD + + false + + + + + PLIKVIDATOR_PRIJMENI + + false + + + + + PLIKVIDATOR_TEL + + false + + + + + PODHAD_PU + + false + + + + + PPLNENI_Z + + false + + + + + PPOLICIE + + false + + + + + PPOLICIE_DATOP + + false + + + + + PPOLICIE_MISTO + + false + + + + + PPOSKYTOVATEL + + false + + + + + PPOZNAMKA + + false + + + + + PPRODUKT + + false + + + + + PSPZ + + false + + + + + PVIN + + false + + + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFU20_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFU20_001_Dapi.xml new file mode 100644 index 0000000..30a3de7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFU20_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFU20 + 001 + DEVL + + + HUB + MWFU20 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX01_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX01_001.xml new file mode 100644 index 0000000..62bec70 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX01_001.xml @@ -0,0 +1,52 @@ + + + + + HUB + MWFX01 + 001 + active + hub API:MWFX01 + + + + + CisloKarty + + false + + + + + + + MultibrandDatumDalsihoVypisu + + false + + + + + MultibrandPocetBodu + + false + + + + + MultibrandStav + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX01_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX01_001_Dapi.xml new file mode 100644 index 0000000..367147a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX01_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFX01 + 001 + DEVL + + + HUB + MWFX01 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX37_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX37_001.xml new file mode 100644 index 0000000..704ad39 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX37_001.xml @@ -0,0 +1,62 @@ + + + + + HUB + MWFX37 + 001 + active + hub API:MWFX37 + + + + + RC + + false + + + + + + + Data + + + + RS_PRODUCT_TYPE + + false + + + + + RS_INFOLIMIT + + false + + + + + RS_CURRENCY + + false + + + + + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX37_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX37_001_Dapi.xml new file mode 100644 index 0000000..b45cb9c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX37_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFX37 + 001 + DEVL + + + HUB + MWFX37 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX38_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX38_001.xml new file mode 100644 index 0000000..29eff28 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX38_001.xml @@ -0,0 +1,104 @@ + + + + + HUB + MWFX38 + 001 + active + hub API:MWFX38 + + + + + CIF + + false + + + + + RC + + false + + + + + + + Data + + + + RS_PRODUCT_APROVED + + false + + + + + RS_APP_KEY + + false + + + + + RS_APPLICATION_DATE + + false + + + + + RS_APPLICATION_STATE + + false + + + + + + false + + + + + PracovniPomer + + false + + + + + RodinyStav + + false + + + + + Rovnost_RC + + false + + + + + StatniPrislusnost + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX38_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX38_001_Dapi.xml new file mode 100644 index 0000000..684605a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX38_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFX38 + 001 + DEVL + + + HUB + MWFX38 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX40_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX40_001.xml new file mode 100644 index 0000000..7835c24 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX40_001.xml @@ -0,0 +1,664 @@ + + + + + HUB + MWFX40 + 001 + active + hub API:MWFX40 + + + + + ACCOUNT_NUMBER + + false + + + + + APP_KEY + + false + + + + + CIF + + false + + + + + CastkaPrvnihoCerpani + + false + + + + + CelkovaSplatnaCastka + + false + + + + + DatumPravidelnePlatby + + false + + + + + DruhPojisteni + + false + + + + + FILTER_VALID_ONLY_FLAG + + false + + + + + KodProduktu + + false + + + + + KodProduktuSales + + false + + + + + MesicniPlatbaPojisteni + + false + + + + + MesicniSplatka + + false + + + + + MistoNarozeni + + false + + + + + OdkladSplatek + + false + + + + + PocetSplatek + + false + + + + + Poplatek_PoskytnutiUveru + + false + + + + + Poplatek_PrichoziTransakce + + false + + + + + Poplatek_VedeniBU + + false + + + + + Poplatek_VedeniUveru + + false + + + + + PracovniPomer + + false + + + + + Prijmy_Radek101 + + false + + + + + RPSN + + false + + + + + RodinnyZavod + + false + + + + + RodinnyZavodPodil + + false + + + + + RodinyStav + + false + + + + + StatniPrislusnost + + false + + + + + TypSlevy + + false + + + + + UrokovaSazba + + false + + + + + VydatKartuKUveru + + false + + + + + VysePosledniSplatky + + false + + + + + VyseUveru + + false + + + + + WEB_Banner + + false + + + + + WEB_Partner_ID + + false + + + + + ZuzeneSJM + + false + + + + + + + ACCOUNT_KEY + + false + + + + + APP_KEY + + false + + + + + CO + + false + + + + + CONTACT_ADDRESA_DOC_KEY + + false + + + + + CONTACT_ADDRESA_KEY + + false + + + + + CONTACT_CO + + false + + + + + CONTACT_CP + + false + + + + + CONTACT_Obec + + false + + + + + CONTACT_PHONE_KEY + + false + + + + + CONTACT_PSC + + false + + + + + CONTACT_Telefon + + false + + + + + CONTACT_Ulice + + false + + + + + CONTACT_Zeme + + false + + + + + CO_Zamestnavatele + + false + + + + + CP + + false + + + + + CP_Zamestnavatele + + false + + + + + CisloDruhehoDokladu + + false + + + + + CisloOP + + false + + + + + Data + + + + RS_REASON_CODE + + false + + + + + RS_ADC_REASON_TEXT_EXTERNAL_CZ + + false + + + + + RS_FORM_ITEM_ASSIGNMENT_ID + + false + + + + + + false + + + + + DatumNastehovaniOD + + false + + + + + DruhBydleni + + false + + + + + EMAIL_KEY + + false + + + + + FIRST_DOCUMENT_ID_KEY + + false + + + + + ICO + + false + + + + + INST_PT_KEY + + false + + + + + Jmeno + + false + + + + + MOBILE_PHONE_KEY + + false + + + + + Mesto + + false + + + + + NazevZamestnavatele + + false + + + + + Obec_Zamestnavatele + + false + + + + + PERMANENT_ADDR_KEY + + false + + + + + PERMANENT_PHONE_KEY + + false + + + + + PRODUCT_CANDIDATE_KEY + + false + + + + + PRODUCT_CANDIDATE_TYPE + + false + + + + + PSC + + false + + + + + PSC_Zamestnavatele + + false + + + + + PlatnostDruhehoDokladu + + false + + + + + PlatnostOP + + false + + + + + Povolani + + false + + + + + Prijmeni + + false + + + + + PrijmeniRodne + + false + + + + + RC + + false + + + + + SECOND_DOCUMENT_ID_KEY + + false + + + + + Telefon + + false + + + + + Telefon_Zamestnavatel + + false + + + + + Ulice + + false + + + + + UliceZamestnavatele + + false + + + + + Vzdelani + + false + + + + + ZAMESTNAVATEL_ADDR_KEY + + false + + + + + ZAMESTNAVATEL_MOBILE_PHONE_KEY + + false + + + + + ZAMESTNAVATEL_PHONE_KEY + + false + + + + + ZamestnanDO + + false + + + + + ZamestnanOD + + false + + + + + Zeme + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX40_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX40_001_Dapi.xml new file mode 100644 index 0000000..9266104 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX40_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFX40 + 001 + DEVL + + + HUB + MWFX40 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX78_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX78_001.xml new file mode 100644 index 0000000..7b2561d --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX78_001.xml @@ -0,0 +1,454 @@ + + + + + HUB + MWFX78 + 001 + active + hub API:MWFX78 + + + + + CisloUctu + + false + + + + + FiltrCastkaDo + + false + + + + + FiltrCastkaOd + + false + + + + + FiltrDatumDo + + false + + + + + FiltrDatumOd + + false + + + + + FiltrKaretniTransakce + + false + + + + + FiltrKodBankyPartnersky + + false + + + + + FiltrUcetPartnersky + + false + + + + + FiltrVariabilniSymbol + + false + + + + + KodDC + + false + + + + + RozsirenyFiltr + + false + + + + + + + Data + + + + RS_CISLOTRANSAKCE + + false + + + + + RS_DATUMSPLATNOSTI + + false + + + + + RS_DATUMZUCTOVANI + + false + + + + + RS_ID + + false + + + + + RS_KOD + + false + + + + + RS_KODBANKY + + false + + + + + RS_KODTRANSAKCE + + false + + + + + RS_OMCR + + false + + + + + RS_POPIS + + false + + + + + RS_PORIZUJICI + + false + + + + + RS_RCODE + + false + + + + + RS_RSEQ + + false + + + + + RS_TICISLOVETY + + false + + + + + RS_TIZDROJ + + false + + + + + RS_TRTYP + + false + + + + + RS_TYPTRANSAKCE + + false + + + + + RS_UCETPLATCE + + false + + + + + RS_UCETPRIJEMCE + + false + + + + + RS_VALUTA + + false + + + + + RS_ZUSTATEK + + false + + + + + RS_DATUMPORIZENI + + false + + + + + RS_STAV + + false + + + + + RS_AVPOLE + + false + + + + + RS_DANUROKU + + false + + + + + RS_KONSTANTNISYMBOL + + false + + + + + RS_MENATRANSAKCE + + false + + + + + RS_NAZEVUCTU + + false + + + + + RS_NAZEVUCTUPRIJEMCE + + false + + + + + RS_SPECIFICKYSYMBOL + + false + + + + + RS_STAVVK + + false + + + + + RS_VARIABILNISYMBOL + + false + + + + + RS_UCETPARTNERSKY + + false + + + + + RS_NAZEVUCTUPARTNERSKY + + false + + + + + RS_KODBANKYPARTNERSKY + + false + + + + + RS_CASTKA + + false + + + + + RS_KODKREDITDEBET + + false + + + + + RS_KODTRANSAKCEEXTERNI + + false + + + + + RS_PORADITRANSAKCE + + false + + + + + RS_POPIS2 + + false + + + + + RS_POPIS3 + + false + + + + + RS_AVPOLE2 + + false + + + + + RS_AVPOLE3 + + false + + + + + RS_AVPOLE4 + + false + + + + + RS_REFERENCEPLATCE + + false + + + + + RS_VARIABILNISENDTOSYMBOL + + false + + + + + RS_KONSTANTNISENDTOSYMBOL + + false + + + + + RS_SPECIFICKYSENDTOSYMBOL + + false + + + + + + false + + + + + Pocet + + false + + + + + VysledekOK + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX78_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX78_001_Dapi.xml new file mode 100644 index 0000000..5c2e3f0 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX78_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFX78 + 001 + DEVL + + + HUB + MWFX78 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX79_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX79_001.xml new file mode 100644 index 0000000..57bffab --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX79_001.xml @@ -0,0 +1,790 @@ + + + + + HUB + MWFX79 + 001 + active + hub API:MWFX79 + + + + + ACCOUNT_KEY + + false + + + + + ACCOUNT_NUMBER + + false + + + + + APP_KEY + + false + + + + + CO + + false + + + + + CONTACT_ADDRESA_DOC_KEY + + false + + + + + CONTACT_ADDRESA_KEY + + false + + + + + CONTACT_CO + + false + + + + + CONTACT_CP + + false + + + + + CONTACT_Obec + + false + + + + + CONTACT_PHONE_KEY + + false + + + + + CONTACT_PSC + + false + + + + + CONTACT_Telefon + + false + + + + + CONTACT_Ulice + + false + + + + + CONTACT_Zeme + + false + + + + + CO_Zamestnavatele + + false + + + + + CP + + false + + + + + CP_Zamestnavatele + + false + + + + + CastkaPrvnihoCerpani + + false + + + + + CelkovaSplatnaCastka + + false + + + + + CisloDruhehoDokladu + + false + + + + + CisloOP + + false + + + + + CistyMesicniPrijem + + false + + + + + DatumNastehovaniOD + + false + + + + + DatumPravidelnePlatby + + false + + + + + DruhBydleni + + false + + + + + DruhPojisteni + + false + + + + + DruhyDoklad_Zeme + + false + + + + + EMAIL_KEY + + false + + + + + Email + + false + + + + + FILTER_VALID_ONLY_FLAG + + false + + + + + FIRST_DOCUMENT_ID_KEY + + false + + + + + FormLockStatus + + false + + + + + HrubyRocniPrijem + + false + + + + + ICO + + false + + + + + INST_PT_KEY + + false + + + + + Jmeno + + false + + + + + KONTEXT + + false + + + + + MOBILE_PHONE_KEY + + false + + + + + MesicniPlatbaPojisteni + + false + + + + + MesicniPrijemDomacnosti + + false + + + + + MesicniSplatka + + false + + + + + Mesto + + false + + + + + MistoNarozeni + + false + + + + + Mobile_Phone + + false + + + + + NazevZamestnavatele + + false + + + + + Obec_Zamestnavatele + + false + + + + + OdkladSplatek + + false + + + + + OstatniMesicniSplatky + + false + + + + + OstatniZivotniNaklady + + false + + + + + PERMANENT_ADDR_KEY + + false + + + + + PERMANENT_PHONE_KEY + + false + + + + + PRODUCT_CANDIDATE_KEY + + false + + + + + PRODUCT_CANDIDATE_TYPE + + false + + + + + PSC + + false + + + + + PSC_Zamestnavatele + + false + + + + + PlatnostDruhehoDokladu + + false + + + + + PlatnostOP + + false + + + + + PocetPrijmu + + false + + + + + PocetSplatek + + false + + + + + PocetVyzivovanychOsob + + false + + + + + Poplatek_PoskytnutiUveru + + false + + + + + Poplatek_PrichoziTransakce + + false + + + + + Poplatek_VedeniBU + + false + + + + + Poplatek_VedeniUveru + + false + + + + + Povolani + + false + + + + + PracovniPomer + + false + + + + + Prijmeni + + false + + + + + PrijmeniRodne + + false + + + + + Prijmy_Radek101 + + false + + + + + PrvniDoklad_Zeme + + false + + + + + RC + + false + + + + + RPSN + + false + + + + + Rezidence + + false + + + + + RodinnyZavod + + false + + + + + RodinnyZavodPodil + + false + + + + + RodinyStav + + false + + + + + SECOND_DOCUMENT_ID_KEY + + false + + + + + SrazkyZeMzdy + + false + + + + + StatniPrislusnost + + false + + + + + Telefon + + false + + + + + Telefon_MOBILE_Zamestnavatele + + false + + + + + Telefon_Zamestnavatele + + false + + + + + TypDruhehoDokladu + + false + + + + + TypSlevy + + false + + + + + Ulice + + false + + + + + Ulice_Zamestnavatele + + false + + + + + UrokovaSazba + + false + + + + + VydatKartuKUveru + + false + + + + + VysePosledniSplatky + + false + + + + + VyseUveru + + false + + + + + Vzdelani + + false + + + + + ZAMESTNAVATEL_ADDR_KEY + + false + + + + + ZAMESTNAVATEL_MOBILE_PHONE_KEY + + false + + + + + ZAMESTNAVATEL_PHONE_KEY + + false + + + + + ZakladDaneZaMinulyRok + + false + + + + + ZamestnanDO + + false + + + + + ZamestnanOD + + false + + + + + ZdanovaciObdobi + + false + + + + + Zeme + + false + + + + + Zeme_Zamestnavatele + + false + + + + + ZuzeneSJM + + false + + + + + + + APP_KEY + + false + + + + + Data + + + + RS_REASON_CODE + + false + + + + + RS_ADC_REASON_TEXT_EXTERNAL_CZ + + false + + + + + RS_FORM_ITEM_ASSIGNMENT_ID + + false + + + + + + false + + + + + INST_PT_KEY + + false + + + + + WEB_Banner + + false + + + + + WEB_Partner_ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX79_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX79_001_Dapi.xml new file mode 100644 index 0000000..b1ecdc8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX79_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFX79 + 001 + DEVL + + + HUB + MWFX79 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX80_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX80_001.xml new file mode 100644 index 0000000..f57cb29 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX80_001.xml @@ -0,0 +1,269 @@ + + + + + HUB + MWFX80 + 001 + active + hub API:MWFX80 + + + + + APP_KEY + + false + + + + + CIF + + false + + + + + CO + + false + + + + + CO_Zamestnavatele + + false + + + + + CP + + false + + + + + CP_Zamestnavatele + + false + + + + + CisloOP + + false + + + + + CistyMesicniPrijem + + false + + + + + DatumNastehovaniOD + + false + + + + + DokonceniOnlineZadosti_FLAG + + false + + + + + DruhBydleni + + false + + + + + Email + + false + + + + + ICO + + false + + + + + Jmeno + + false + + + + + Mesto + + false + + + + + Mobile_Phone + + false + + + + + Nazev_Zamestnavatele + + false + + + + + Obec_Zamestnavatele + + false + + + + + PSC + + false + + + + + PSC_Zamestnavatele + + false + + + + + PlatnostDruhehoDokladu + + false + + + + + PlatnostOP + + false + + + + + PocetVyzivovanychOsob + + false + + + + + PracovniPomer + + false + + + + + Prijmeni + + false + + + + + RC + + false + + + + + RodinyStav + + false + + + + + StatniPrislusnost + + false + + + + + Telefon + + false + + + + + Telefon_Zamestnavatele + + false + + + + + Ulice + + false + + + + + Ulice_Zamestnavatele + + false + + + + + Vzdelani + + false + + + + + ZamestnanOD + + false + + + + + Zeme + + false + + + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX80_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX80_001_Dapi.xml new file mode 100644 index 0000000..edc15ba --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX80_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFX80 + 001 + DEVL + + + HUB + MWFX80 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX81_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX81_001.xml new file mode 100644 index 0000000..dbda533 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX81_001.xml @@ -0,0 +1,923 @@ + + + + + HUB + MWFX81 + 001 + active + hub API:MWFX81 + + + + + APP_KEY + + false + + + + + INST_PT_KEY + + false + + + + + + + BONUS_Castka_OFFERED + + false + + + + + BONUS_CelkovaVyse_OFFERED + + false + + + + + BONUS_PeriodaVyplaceniBonusu_OFFERED + + false + + + + + BONUS_TypVyplaceniBonusu_OFFERED + + false + + + + + CERP_BONUS_CelkovaCastka_OFFERED + + false + + + + + CERP_BONUS_PocetSplatek_OFFERED + + false + + + + + CERP_BONUS_RPSN_OFFERED + + false + + + + + CERP_BONUS_UrokovaSazba_OFFERED + + false + + + + + CERP_BONUS_VysePosledniSplatky_OFFERED + + false + + + + + CERP_CelkovaSplatnaCastka_OFFERED + + false + + + + + CERP_PocetSplatek_OFFERED + + false + + + + + CERP_RPSN_OFFERED + + false + + + + + CERP_UrokovaSazba_OFFERED + + false + + + + + CERP_VysePosledniSplatky_OFFERED + + false + + + + + CastkaPrvnihoCerpani_OFFERED + + false + + + + + CastkaPrvnihoCerpani_REQUESTED + + false + + + + + CelkovaSplatnaCastka_OFFERED + + false + + + + + CelkovaSplatnaCastka_REQUESTED + + false + + + + + DECIS_REASON_CODE_REQUESTED + + false + + + + + DECIS_REASON_TEXT_REQUESTED + + false + + + + + Data + + + + RS_VARIANTA_KEY + + false + + + + + RS_VARIANTATYP + + false + + + + + RS_KODPRODUKTU + + false + + + + + RS_VYSEUVERU + + false + + + + + RS_MESICNISPLATKA + + false + + + + + RS_DATUMPRVNISPLATKY + + false + + + + + RS_DENINKASNISPLATKY + + false + + + + + RS_ODKLADSPLATEK + + false + + + + + RS_TERM + + false + + + + + RS_UROKOVASAZBA + + false + + + + + RS_POJISTENI + + false + + + + + RS_POJISTENIPOPLATEK + + false + + + + + RS_RPSN + + false + + + + + RS_VARIANTADOPORUCENAFLAG + + false + + + + + RS_VARIANTAZVOLENAFLAG + + false + + + + + RS_CURRENCY + + false + + + + + RS_CELKOVASPLATNACASTKA + + false + + + + + RS_POPLATEK_PBT + + false + + + + + RS_POPLATEK_VEDENIUU + + false + + + + + RS_POPLATEK_POSKYTNUTIUVERU + + false + + + + + RS_POPLATEK_VEDENIBU + + false + + + + + RS_CASTKAPRVNIHOCERPANI + + false + + + + + RS_KODPRODUKTUSALES + + false + + + + + RS_VYSEPOSLEDNISPLATKY + + false + + + + + RS_BONUS_CASTKA + + false + + + + + RS_BONUS_PERIODAVYPLACENIBONUSU + + false + + + + + RS_BONUS_TYPVYPLACENIBONUSU + + false + + + + + RS_BONUS_CELKOVAVYSE + + false + + + + + RS_CERP_BONUS_UROKOVASAZBA + + false + + + + + RS_CERP_BONUS_RPSN + + false + + + + + RS_CERP_BONUS_VYSEPOSLEDNISPLATKY + + false + + + + + RS_CERP_UROKOVASAZBA + + false + + + + + RS_CERP_VYSLEPOSLEDNISPLATKY + + false + + + + + RS_CERP_CELKOVASPLATNACASTKA + + false + + + + + RS_CERP_BONUS_POCETSPLATEK + + false + + + + + RS_CERP_BONUS_CELKOVACASTKA + + false + + + + + RS_CERP_POCETSPLATEK + + false + + + + + RS_CERP_RPSN + + false + + + + + RS_VARIANTTYPEID + + false + + + + + + false + + + + + Date_REQUESTED + + false + + + + + DatumPravidelnePlatby_OFFERED + + false + + + + + DatumPravidelnePlatby_REQUESTED + + false + + + + + DatumPrvniSplatky + + false + + + + + DokladPredkladanyKategorie_1 + + false + + + + + DokladPredkladanyKategorie_2 + + false + + + + + DokladPredkladanyKategorie_3 + + false + + + + + DokladPredkladanyKategorie_4 + + false + + + + + DokladPredkladanyKategorie_5 + + false + + + + + DokladPredkladanyUcel_1 + + false + + + + + DokladPredkladanyUcel_2 + + false + + + + + DokladPredkladanyUcel_3 + + false + + + + + DokladPredkladanyUcel_4 + + false + + + + + DokladPredkladanyUcel_5 + + false + + + + + DokladPredkladanyZdroj_1 + + false + + + + + DokladPredkladanyZdroj_2 + + false + + + + + DokladPredkladanyZdroj_3 + + false + + + + + DokladPredkladanyZdroj_4 + + false + + + + + DokladPredkladanyZdroj_5 + + false + + + + + DokladPredkladany_INST_PT_KEY_1 + + false + + + + + DokladPredkladany_INST_PT_KEY_2 + + false + + + + + DokladPredkladany_INST_PT_KEY_3 + + false + + + + + DokladPredkladany_INST_PT_KEY_4 + + false + + + + + DokladPredkladany_INST_PT_KEY_5 + + false + + + + + DokladPredkladany_KEY_1 + + false + + + + + DokladPredkladany_KEY_2 + + false + + + + + DokladPredkladany_KEY_3 + + false + + + + + DokladPredkladany_KEY_4 + + false + + + + + DokladPredkladany_KEY_5 + + false + + + + + DruhPojisteni_OFFERED + + false + + + + + DruhPojisteni_REQUESTED + + false + + + + + KodProduktuSales_OFFERED + + false + + + + + KodProduktuSales_REQUESTED + + false + + + + + KodProduktu_OFFERED + + false + + + + + KodProduktu_REQUESTED + + false + + + + + MesicniPlatbaPojisteni_OFFERED + + false + + + + + MesicniPlatbaPojisteni_REQUESTED + + false + + + + + MesicniSplatka_OFFERED + + false + + + + + MesicniSplatka_REQUESTED + + false + + + + + OdkladSplatek_OFFERED + + false + + + + + OdkladSplatek_REQUESTED + + false + + + + + Pocet + + false + + + + + PocetSplatek_OFFERED + + false + + + + + PocetSplatek_REQUESTED + + false + + + + + Poplatek_PBT_OFFERED + + false + + + + + Poplatek_PBT_REQUESTED + + false + + + + + Poplatek_PoskytnutiUveru_OFFERED + + false + + + + + Poplatek_PoskytnutiUveru_REQUESTED + + false + + + + + Poplatek_VedeniBU_OFFERED + + false + + + + + Poplatek_VedeniBU_REQUESTED + + false + + + + + Poplatek_VedeniUU_OFFERED + + false + + + + + Poplatek_VedeniUU_REQUESTED + + false + + + + + RPSN_OFFERED + + false + + + + + RPSN_REQUESTED + + false + + + + + State_REQUESTED + + false + + + + + TypSlevy + + false + + + + + UUObjektUveru + + false + + + + + UrokZProdleni + + false + + + + + UrokovaSazba_OFFERED + + false + + + + + UrokovaSazba_REQUESTED + + false + + + + + VydatKartuKUveru + + false + + + + + VysePosledniSplatky_OFFERED + + false + + + + + VyseUveru_OFFERED + + false + + + + + VyseUveru_REQUESTED + + false + + + + + WEB_Banner + + false + + + + + WEB_Partner_ID + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX81_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX81_001_Dapi.xml new file mode 100644 index 0000000..6e9fe33 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX81_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFX81 + 001 + DEVL + + + HUB + MWFX81 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX82_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX82_001.xml new file mode 100644 index 0000000..62329b9 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX82_001.xml @@ -0,0 +1,797 @@ + + + + + HUB + MWFX82 + 001 + active + hub API:MWFX82 + + + + + APP_KEY + + false + + + + + FILTER_VALID_ONLY_FLAG + + false + + + + + INST_PT_KEY + + false + + + + + + + ACCOUNT_NUMBER + + false + + + + + CO + + false + + + + + CONCACT_ADDRESA_DOC_KEY + + false + + + + + CONCACT_ADDRESA_KEY + + false + + + + + CONCACT_PHONE_KEY + + false + + + + + CONTACT_ADDRESA_DOC_TYP + + false + + + + + CONTACT_CO + + false + + + + + CONTACT_CP + + false + + + + + CONTACT_Obec + + false + + + + + CONTACT_PSC + + false + + + + + CONTACT_Telefon + + false + + + + + CONTACT_Ulice + + false + + + + + CONTACT_Zeme + + false + + + + + CO_Zamestnavatele + + false + + + + + CP + + false + + + + + CP_Zamestnavatele + + false + + + + + CastkaPrvnihoCerpani + + false + + + + + CelkovaSplatnaCastka + + false + + + + + CisloDruhehoDokladu + + false + + + + + CisloOP + + false + + + + + CistyMesicniPrijem + + false + + + + + Data + + + + RS_REASON_CODE + + false + + + + + RS_ADC_REASON_TEXT_EXTERNAL_CZ + + false + + + + + RS_FORM_ITEM_ASSIGNMENT_ID + + false + + + + + + false + + + + + DatumNastehovaniOD + + false + + + + + DatumPravidelnePlatby + + false + + + + + DruhBydleni + + false + + + + + DruhPojisteni + + false + + + + + DruhyDoklad_Zeme + + false + + + + + EMAIL_KEY + + false + + + + + Email + + false + + + + + FIRST_DOCUMENT_ID_KEY + + false + + + + + FormLockStatus + + false + + + + + HrubyRocniPrijem + + false + + + + + ICO + + false + + + + + INST_PT_KEY + + false + + + + + Jmeno + + false + + + + + KodProduktu + + false + + + + + KodProduktuSales + + false + + + + + MOBILE_PHONE_KEY + + false + + + + + MesicniPlatbaPojisteni + + false + + + + + MesicniPrijemDomacnosti + + false + + + + + MesicniSplatka + + false + + + + + Mesto + + false + + + + + MistoNarozeni + + false + + + + + Mobile_Phone + + false + + + + + Nazev_Zamestnavatele + + false + + + + + Obec_Zamestnavatele + + false + + + + + OdkladSplatek + + false + + + + + OstatniMesicniSplatky + + false + + + + + OstatniZivotniNaklady + + false + + + + + PERMANENT_ADDR_KEY + + false + + + + + PERMANENT_PHONE_KEY + + false + + + + + PRODUCT_CANDIDATE_KEY + + false + + + + + PRODUCT_CANDIDATE_TYPE + + false + + + + + PSC + + false + + + + + PSC_Zamestnavatele + + false + + + + + PlatnostDruhehoDokladu + + false + + + + + PlatnostOP + + false + + + + + PocetPrijmu + + false + + + + + PocetSplatek + + false + + + + + PocetVyzivovanychOsob + + false + + + + + Poplatek_PoskytnutiUveru + + false + + + + + Poplatek_PrichoziTransakce + + false + + + + + Poplatek_VedeniBU + + false + + + + + Poplatek_VedeniUveru + + false + + + + + Povolani + + false + + + + + PracovniPomer + + false + + + + + Prijmeni + + false + + + + + PrijmeniRodne + + false + + + + + Prijmy_Radek101 + + false + + + + + PrvniDoklad_Zeme + + false + + + + + RC + + false + + + + + RPSN + + false + + + + + Rezidence + + false + + + + + RodinnyZavod + + false + + + + + RodinnyZavodPodil + + false + + + + + RodinyStav + + false + + + + + SECOND_DOCUMENT_ID_KEY + + false + + + + + SrazkyZeMzdy + + false + + + + + StatniPrislusnost + + false + + + + + Telefon + + false + + + + + Telefon_MOBILE_Zamestnavatele + + false + + + + + Telefon_Zamestnavatele + + false + + + + + TypDruhehoDokladu + + false + + + + + TypPrvnihoDokladu + + false + + + + + TypSlevy + + false + + + + + Ulice + + false + + + + + Ulice_Zamestnavatele + + false + + + + + UrokovaSazba + + false + + + + + VydatKartuKUveru + + false + + + + + VysePosledniSplatky + + false + + + + + VyseUveru + + false + + + + + Vzdelani + + false + + + + + WEB_Banner + + false + + + + + WEB_Partner_ID + + false + + + + + ZAMESTNAVATEL_ADDR_KEY + + false + + + + + ZAMESTNAVATEL_MOBILE_PHONE_KEY + + false + + + + + ZAMESTNAVATEL_PHONE_KEY + + false + + + + + ZakladDaneZaMinulyRok + + false + + + + + ZamestnanDO + + false + + + + + ZamestnanOD + + false + + + + + ZdanovaciObdobi + + false + + + + + Zeme + + false + + + + + Zeme_Zamestnavatele + + false + + + + + ZuzeneSJM + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX82_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX82_001_Dapi.xml new file mode 100644 index 0000000..9027d4e --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX82_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFX82 + 001 + DEVL + + + HUB + MWFX82 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX83_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX83_001.xml new file mode 100644 index 0000000..6ce5f60 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX83_001.xml @@ -0,0 +1,227 @@ + + + + + HUB + MWFX83 + 001 + active + hub API:MWFX83 + + + + + APP_KEY + + false + + + + + BuildName + + false + + + + + CM_ID + + false + + + + + CasoveRazitko + + false + + + + + ID + + false + + + + + ID_Dokumentu + + false + + + + + KlientskaStruktura + + false + + + + + Kontext + + false + + + + + PodpisAP + + false + + + + + PrintType + + false + + + + + Pristup + + false + + + + + Produkt + + false + + + + + RC + + false + + + + + RtpName + + false + + + + + StavSluzby + + false + + + + + TypDocumentu + + false + + + + + TypDokumentuDMS + + false + + + + + XML + + false + + + + + ZpusobPodepsani + + false + + + + + + + BinaryData + + false + + + + + CM_ID + + false + + + + + CasoveRazitko + + false + + + + + ID + + false + + + + + Pristup + + false + + + + + Result + + false + + + + + ServletPort + + false + + + + + ServletURL + + false + + + + + StavSluzby + + false + + + + + ZpusobPodepsani + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX83_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX83_001_Dapi.xml new file mode 100644 index 0000000..779ab24 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX83_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFX83 + 001 + DEVL + + + HUB + MWFX83 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX85_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX85_001.xml new file mode 100644 index 0000000..b408925 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX85_001.xml @@ -0,0 +1,49 @@ + + + + HUB + MWFX85 + 001 + active + hub API:MWFX85 + false + + + + + CIF + + false + + false + + + + CIF2 + + false + + false + + + + Vztah1 + + false + + false + + + + Vztah2 + + false + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX85_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX85_001_Dapi.xml new file mode 100644 index 0000000..45ba5e5 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX85_001_Dapi.xml @@ -0,0 +1,28 @@ + + + + + MWFX85 + 001 + TEST + + HUB + MWFX85 + 001 + + 60 + INPUT_WITH_REPLY + + 4 + 60 + UFO.HUB.INP + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX85_495.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX85_495.xml new file mode 100644 index 0000000..07b2656 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX85_495.xml @@ -0,0 +1,49 @@ + + + + HUB + MWFX85 + 495 + active + hub API:MWFX85 + false + + + + + CIF + + false + + false + + + + CIF2 + + false + + false + + + + Vztah1 + + false + + false + + + + Vztah2 + + false + + false + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFX85_495_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFX85_495_Dapi.xml new file mode 100644 index 0000000..840bffa --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFX85_495_Dapi.xml @@ -0,0 +1,28 @@ + + + + + MWFX85 + 495 + TEST + + HUB + MWFX85 + 495 + + 60 + INPUT_WITH_REPLY + + 4 + 60 + UFO.HUB.INP + + + 4 + 60 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFY11_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFY11_001.xml new file mode 100644 index 0000000..0fe8f9c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFY11_001.xml @@ -0,0 +1,325 @@ + + + + + HUB + MWFY11 + 001 + active + hub API:MWFY11 + + + + + CIF + + false + + + + + Channel_ID + + false + + + + + ObchodniMistoKod + + false + + + + + SCHV_Varianta_Key + + false + + + + + UrednikID + + false + + + + + Zadost_KEY + + false + + + + + + + ACCOUNT_NUMBER + + false + + + + + CONTACT_CO + + false + + + + + CONTACT_CP + + false + + + + + CONTACT_Obec + + false + + + + + CONTACT_PSC + + false + + + + + CONTACT_Ulice + + false + + + + + CONTACT_Zeme + + false + + + + + CastkaPrvnihoCerpani + + false + + + + + CelkovaSplatnaCastka + + false + + + + + ChybaZalozeni + + false + + + + + DatumPravidelnePlatby + + false + + + + + DatumPrvniSplatky + + false + + + + + DruhPojisteni + + false + + + + + Jmeno + + false + + + + + LOAN_ACCOUNT_NUMBER + + false + + + + + MARITAL_STATUS + + false + + + + + MesicniPlatbaPojisteni + + false + + + + + MesicniPlatbaVedeniUctu + + false + + + + + MesicniSplatka + + false + + + + + MesicniSplatkaCelkem + + false + + + + + ObchodniMistoKod_OUT + + false + + + + + PERM_CO + + false + + + + + PERM_CP + + false + + + + + PERM_Obec + + false + + + + + PERM_PSC + + false + + + + + PERM_Ulice + + false + + + + + PERM_Zeme + + false + + + + + PocetSplatek + + false + + + + + Poplatek_PoskytnutiUveru + + false + + + + + Poplatek_PrichoziTransakce + + false + + + + + Poplatek_VedeniBU + + false + + + + + Poplatek_VedeniUveru + + false + + + + + Prijmeni + + false + + + + + RC + + false + + + + + RPSN + + false + + + + + UrokovaSazba + + false + + + + + VyseUveru + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFY11_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFY11_001_Dapi.xml new file mode 100644 index 0000000..cd00472 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFY11_001_Dapi.xml @@ -0,0 +1,36 @@ + + + + + MWFY11 + 001 + DEVL + + + HUB + MWFY11 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFY14_001.xml b/tests/src/main/resources/xmlMappings/HUB_MWFY14_001.xml new file mode 100644 index 0000000..93c24cc --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFY14_001.xml @@ -0,0 +1,62 @@ + + + + + HUB + MWFY14 + 001 + active + hub API:MWFY14 + + + + + Data + + + + RS_RC + + false + + + + + + false + + + + + Index + + false + + + + + Kontext + + false + + + + + + + Index + + false + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/HUB_MWFY14_001_Dapi.xml b/tests/src/main/resources/xmlMappings/HUB_MWFY14_001_Dapi.xml new file mode 100644 index 0000000..6b5379c --- /dev/null +++ b/tests/src/main/resources/xmlMappings/HUB_MWFY14_001_Dapi.xml @@ -0,0 +1,38 @@ + + + + + + MWFY14 + 001 + DEVL + + + HUB + MWFY14 + 001 + + + 30 + INPUT_WITH_REPLY + + + 4 + 30 + CBL.HUB.INP + + + + 4 + 30 + CBL.REPLYQ + + + + diff --git a/tests/src/main/resources/xmlMappings/IPG_CMH_MSG_EMAIL_PLANNED_001.xml b/tests/src/main/resources/xmlMappings/IPG_CMH_MSG_EMAIL_PLANNED_001.xml new file mode 100644 index 0000000..cea4dfa --- /dev/null +++ b/tests/src/main/resources/xmlMappings/IPG_CMH_MSG_EMAIL_PLANNED_001.xml @@ -0,0 +1,154 @@ + + + + IPG + CMH_MSG_EMAIL_PLANNED + 001 + active + Rozhraní MQ API pro poslání zprávy a to v rámci už naplánované, existující kampaně + false + + + + + GW_SYS_ID + + false + EG GW systém ID, použito pro ověřování oprávnění aplikací. GEOA uživateli musí být administrátorem aplikace EG přiděleno právo používat daný GW systém. Tento parametr není vyplňován GEOA vrstvou (nejedná se osystémSySTEM_ID). + false + + + + CMP_ID + + true + ID kampaně, do které se zpráva vkládá + false + + + + SEND_TIME + + false + Datum a čas, kdy má být zpráva odeslána – použije se pro vyhledání konkrétní instance kampaně nebo pro vytvoření instance okamžité kampaně; není-li zadáno, použije se aktuální čas. Pokud je čas nevyplněn tak se pošle okamžitě. + false + + + + MESG_PARAMS + + false + Parametry šablony (jednotlivé parametry oddělené znakem „|“), maximální velikost 32KB při přístupu přes API nebo 4KB při přístupu přes pohledy + false + + + + REF_ID + + false + Identifikátor pro volajícího – volající systém si může nastavit na jakoukoli hodnotu, používá se pro možnost pozdějšího dohledávání + false + + + + CLIENT_ADDRESS_TO + + false + Cílová e-mail adresa – povinný je jeden z parametrů client_address_to, client_address_cc, client_address_bcc. Email GW provede kontrolu, že aspoň jeden parametr je vyplněn. + false + + + + CLIENT_ADDRESS_CC + + false + Cílová e-mail adresa (copy) – povinn  je jeden z parametrů client_address_to, client_address_cc, client_address_bcc. Email GW provede kontrolu, že aspoň jeden parametr je vyplněn. + false + + + + CLIENT_ADDRESS_BCC + + false + Cílová e-mail adresa (blind copy) – povinn  je jeden z parametrů client_address_to, client_address_cc, client_address_bcc. Email GW provede kontrolu, že aspoň jeden parametr je vyplněn. + false + + + + REPLY_TO + + false + Volitelný Parametr. + false + + + + CLIENT_BIRTH_NUM + + false + Rodné číslo klienta (ukládá se do DMS) – nemusí být zadáno + false + + + + CLIENT_ID + + false + Univerzální identifikátor klienta – nahrazuje RČ a CIF (nemusí být zadáno) + false + + + + MESG_ALLOW_PAIRING + + false + 1 = povolit párování, 2 = zakázat párování + false + + + + MESG_ATTACHMENT_URI + + false + URI dokumentu přílohy, nepovinný parametr + false + + + + MESG_ATTACHMENT_DMS_ID + + false + DMS Id dokumentu přílohy, nepovinný parametr + false + + + + MESG_ATTACHMENT_NAME + + false + Jméno souboru přílohy, nepovinný parametr + false + + + + DOCUMENT_GENERATION_TYPE + + false + + false + + + + + + MESG_ID + + true + Identifikátor zprávy v systému EG + false + + + + + + diff --git a/tests/src/main/resources/xmlMappings/IPG_CMH_MSG_EMAIL_PLANNED_001_Dapi.xml b/tests/src/main/resources/xmlMappings/IPG_CMH_MSG_EMAIL_PLANNED_001_Dapi.xml new file mode 100644 index 0000000..ebf3740 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/IPG_CMH_MSG_EMAIL_PLANNED_001_Dapi.xml @@ -0,0 +1,25 @@ + + + + CMH_MSG_EMAIL_PLANNED + 001 + TEST + + CMH_MSG_EMAIL_PLANNED + 001 + IPG + + 30 + INPUT_WITH_REPLY + + 4 + 30 + IPG.IPE.INP + + + 4 + 30 + IPG.REPLYQ + + + diff --git a/tests/src/main/resources/xmlMappings/IPG_GET_STATUS_001.xml b/tests/src/main/resources/xmlMappings/IPG_GET_STATUS_001.xml new file mode 100644 index 0000000..18fb83f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/IPG_GET_STATUS_001.xml @@ -0,0 +1,33 @@ + + + + IPG + GET_STATUS + 001 + passive + Get a status of the backend system + false + + + + + + STATUS_CODE + + true + Stav backendoveho systemu. 0 - 9999. 9999= plna dostupnost, 0 = nedostupnost + false + + + + STATUS_DESC + + true + Detailnejsi popis stavu + false + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/IPG_GET_STATUS_001_Dapi.xml b/tests/src/main/resources/xmlMappings/IPG_GET_STATUS_001_Dapi.xml new file mode 100644 index 0000000..d96e1e8 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/IPG_GET_STATUS_001_Dapi.xml @@ -0,0 +1,25 @@ + + + + GET_STATUS + 001 + TEST + + GET_STATUS + 001 + IPG + + 30 + INPUT_WITH_REPLY + + 4 + 30 + UFO.IPG.INP + + + 4 + 30 + UFO.REPLYQ + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/MDR_RegisterComponent_001.xml b/tests/src/main/resources/xmlMappings/MDR_RegisterComponent_001.xml new file mode 100644 index 0000000..e482ee4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/MDR_RegisterComponent_001.xml @@ -0,0 +1,642 @@ + + + + MDR + RegisterComponent + 001 + Active + + + tif_interface.register_component + + + + + SYS_CODE + + true + + + 1 + + + + APPL_CODE + + true + + + 2 + + + + INST_CODE + + true + + + 3 + + + + VERSION + + true + + + 4 + + + + RELEASE_DATE + + true + + + 5 + + + + SYSTEM_TYPE + + true + TCFJ / TAS / TAE + + 6 + + + + OS_NAME + + true + + + 7 + + + + OS_VERSION + + true + + + 8 + + + + JAVA_NAME + + true + + + 9 + + + + JAVA_VERSION + + true + + + 10 + + + + JAVA_VENDOR + + true + + + 11 + + + + MAX_JAVA_HEAP_SIZE + + true + + + 12 + + + + ROOT_DIRECTORY + + true + + Root directory of the component + + + 13 + + + + HOST + + true + + + 14 + + + + USERNAME + + true + + + 15 + + + + ENVSUBTYPE + + false + + + 16 + + + + OS_ARCH + + true + + + 17 + + + + JAVA_RUNTIME_NAME + + true + + + 18 + + + + CHECKSUM + + true + + + 19 + + + + USED_JAR_FILES + + + + TEMP_ID + + false + Temporary ID + + + + FILE_NAME + + true + + Filename without path + + + + ARTIFACTID + + false + + + + GROUPID + + false + + + + VERSION + + true + + + + CONTENT + + false + + Content of the file + + + + CHECKSUM + + false + File checksum + + + + true + + + 20 + USED_JAR_FILES_ROWSET + + + + CONFIG_FILES + + + + TEMP_ID + + false + Temporary ID + + + + FILE_NAME + + false + + File name without path + + + + FILE_TYPE + + true + + File type + + + + MODIFIED_AT + + false + + Date and time of last modification + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + true + + + 21 + CONFIG_FILES_ROWSET + + + + PROVIDED_BINDING + + + + TEMP_ID + + false + Temporary ID + + + + BINDING_NAME + + true + + Name of the BINDING + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + false + + + 22 + PROVIDED_BINDING_ROWSET + + + + PROVIDED_API + + + + TEMP_ID + + false + Temporary ID + + + + API_NAME + + true + + Name of the API + + + + REQUEST_XSD_PATH + + false + + Path to the request xsd definition + + + + RESPONSE_XSD_PATH + + false + + Path to the response xsd definition + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + true + + + 23 + PROVIDED_API_ROWSET + + + + SECS + + + + TEMP_ID + + false + Temporary ID + + + + FILE_NAME + + true + + Name of the Security File + + + + FILE_PATH + + false + + Path to the file + + + + FILE_TYPE + + true + + Type of the Security File (General Secure store/General PwdStore/Plugin secure store/Plugin PwdStore/Other) + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + true + + + 24 + SECS_ROWSET + + + + XSDS + + + + TEMP_ID + + false + Temporary ID + + + + FILE_NAME + + true + + Name of the File + + + + FILE_PATH + + true + + Path of the File + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + false + + + 25 + XSDS_ROWSET + + + + XSD_RELATIONS + + + + TEMP_ID + + false + Temporary ID + + + + SOURCE + + true + + Source File + + + + TARGET + + true + + Target File + + + + + false + + + 26 + XSD_RELATIONS_ROWSET + + + + PLUGINS + + + + TEMP_ID + + false + Temporary ID + + + + PLUGIN_VERSION + + false + + + + BACKEND_NAME + + false + + + + BACKEND_CLASSNAME + + false + + + + BACKEND_DESCRIPTION + + false + + + + + false + + + 27 + PLUGINS_ROWSET + + + + XSDS_CHECKSUM + + false + + + 28 + + + + METADATA + + + + TEMP_ID + + true + Temporary ID + + + + NAME + + true + + Metadata name + + + + VALUE + + true + + Metadata value + + + + + false + + + 29 + METADATA_ROWSET + + + + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xmlMappings/MDR_SET_BACKEND_CONFIGURATION_001_Dapi.xml b/tests/src/main/resources/xmlMappings/MDR_SET_BACKEND_CONFIGURATION_001_Dapi.xml new file mode 100644 index 0000000..185d33f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/MDR_SET_BACKEND_CONFIGURATION_001_Dapi.xml @@ -0,0 +1,31 @@ + + + + + SET_BACKEND_CONFIGURATION + 001 + DEVL + + + MDR + SET_BACKEND_CONFIGURATION + 001 + + + 6000 + INPUT_WITHOUT_REPLY + + + 1 + 10 + q + + + + diff --git a/tests/src/main/resources/xmlMappings/MDR_SET_BACKEND_CONFIGURATION_002_Dapi.xml b/tests/src/main/resources/xmlMappings/MDR_SET_BACKEND_CONFIGURATION_002_Dapi.xml new file mode 100644 index 0000000..ec1641a --- /dev/null +++ b/tests/src/main/resources/xmlMappings/MDR_SET_BACKEND_CONFIGURATION_002_Dapi.xml @@ -0,0 +1,31 @@ + + + + + SET_BACKEND_CONFIGURATION + 002 + DEVL + + + MDR + SET_BACKEND_CONFIGURATION + 002 + + + 6000 + INPUT_WITHOUT_REPLY + + + 1 + 10 + q + + + + diff --git a/tests/src/main/resources/xmlMappings/MDR_SET_FRONTEND_CONFIGURATION_001_Dapi.xml b/tests/src/main/resources/xmlMappings/MDR_SET_FRONTEND_CONFIGURATION_001_Dapi.xml new file mode 100644 index 0000000..bd736c4 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/MDR_SET_FRONTEND_CONFIGURATION_001_Dapi.xml @@ -0,0 +1,31 @@ + + + + + SET_FRONTEND_CONFIGURATION + 001 + DEVL + + + MDR + SET_FRONTEND_CONFIGURATION + 001 + + + 6000 + INPUT_WITHOUT_REPLY + + + 1 + 10 + q + + + + diff --git a/tests/src/main/resources/xmlMappings/MDR_SET_FRONTEND_CONFIGURATION_002_Dapi.xml b/tests/src/main/resources/xmlMappings/MDR_SET_FRONTEND_CONFIGURATION_002_Dapi.xml new file mode 100644 index 0000000..a46725f --- /dev/null +++ b/tests/src/main/resources/xmlMappings/MDR_SET_FRONTEND_CONFIGURATION_002_Dapi.xml @@ -0,0 +1,31 @@ + + + + + SET_FRONTEND_CONFIGURATION + 002 + DEVL + + + MDR + SET_FRONTEND_CONFIGURATION + 002 + + + 6000 + INPUT_WITHOUT_REPLY + + + 1 + 10 + q + + + + diff --git a/tests/src/main/resources/xmlMappings/TMC_SET_BACKEND_CONFIGURATION_001.xml b/tests/src/main/resources/xmlMappings/TMC_SET_BACKEND_CONFIGURATION_001.xml new file mode 100644 index 0000000..8afdcc7 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/TMC_SET_BACKEND_CONFIGURATION_001.xml @@ -0,0 +1,298 @@ + + + + TMC + SET_BACKEND_CONFIGURATION + 001 + Active + + + + cz.trask.tif.monitor.pojo.TIFComponentInstanceConfiguration + + setBackendConfiguration + false + true + + + + + SYS_CODE + + true + + + 1 + + + + APPL_CODE + + true + + + 2 + + + + INST_CODE + + true + + + 3 + + + + VERSION + + true + + + 4 + + + + RELEASE_DATE + + true + + + 5 + + + + SYSTEM_TYPE + + true + TCFJ / TAS / TAE + + 6 + + + + OS_NAME + + true + + + 7 + + + + OS_VERSION + + true + + + 8 + + + + JAVA_NAME + + true + + + 9 + + + + JAVA_VERSION + + true + + + 10 + + + + JAVA_VENDOR + + true + + + 11 + + + + MAX_JAVA_HEAP_SIZE + + true + + + 12 + + + + ROOT_DIRECTORY + + true + + Root directory of the component + + + 13 + + + + USED_JAR_FILES + + + + FILENAME + + true + + Filename without path + + + + ARTIFACTID + + true + + + + GROUPID + + false + + + + VERSION + + true + + + + + true + + + 14 + + + + HOST + + true + + + 15 + + + + USERNAME + + true + + + 16 + + + + CONFIG_FILES + + + + FILENAME + + false + + File name without path + + + + MODIFIED_AT + + false + + Date and time of last modification + + + + CONTENT + + true + + Content of the file + + + + + true + + + 17 + + + + ENVSUBTYPE + + false + + + 18 + + + + OS_ARCH + + true + + + 19 + + + + JAVA_RUNTIME_NAME + + true + + + 20 + + + + PROVIDED_API + + + + API_NAME + + true + + Name of the API + + + + VERSION + + true + + API Version + + + + + true + + + 21 + + + + CHECKSUM + + true + + + 22 + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/TMC_SET_BACKEND_CONFIGURATION_002.xml b/tests/src/main/resources/xmlMappings/TMC_SET_BACKEND_CONFIGURATION_002.xml new file mode 100644 index 0000000..a81cc48 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/TMC_SET_BACKEND_CONFIGURATION_002.xml @@ -0,0 +1,490 @@ + + + + TMC + SET_BACKEND_CONFIGURATION + 002 + Active + + + + cz.trask.tif.monitor.pojo.TIFComponentInstanceConfiguration + + setBackendConfiguration + false + true + + + + + SYS_CODE + + true + + + 1 + + + + APPL_CODE + + true + + + 2 + + + + INST_CODE + + true + + + 3 + + + + VERSION + + true + + + 4 + + + + RELEASE_DATE + + true + + + 5 + + + + SYSTEM_TYPE + + true + TCFJ / TAS / TAE + + 6 + + + + OS_NAME + + true + + + 7 + + + + OS_VERSION + + true + + + 8 + + + + JAVA_NAME + + true + + + 9 + + + + JAVA_VERSION + + true + + + 10 + + + + JAVA_VENDOR + + true + + + 11 + + + + MAX_JAVA_HEAP_SIZE + + true + + + 12 + + + + ROOT_DIRECTORY + + true + + Root directory of the component + + + 13 + + + + USED_JAR_FILES + + + + FILE_NAME + + true + + Filename without path + + + + ARTIFACTID + + true + + + + GROUPID + + false + + + + VERSION + + true + + + + + true + + + 14 + + + + HOST + + true + + + 15 + + + + USERNAME + + true + + + 16 + + + + CONFIG_FILES + + + + FILE_NAME + + false + + File name without path + + + + MODIFIED_AT + + false + + Date and time of last modification + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + true + + + 17 + + + + ENVSUBTYPE + + false + + + 18 + + + + OS_ARCH + + true + + + 19 + + + + JAVA_RUNTIME_NAME + + true + + + 20 + + + + PROVIDED_API + + + + API_NAME + + true + + Name of the API + + + + VERSION + + true + + API Version + + + + REQUEST_XSD_PATH + + false + + Path to the request xsd definition + + + + RESPONSE_XSD_PATH + + false + + Path to the response xsd definition + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + true + + + 21 + + + + SECS + + + + FILE_NAME + + true + + Name of the Security File + + + + FILE_PATH + + true + + Path to the file + + + + FILE_TYPE + + true + + Type of the Security File (General Secure store/General PwdStore/Plugin secure store/Plugin PwdStore/Other) + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + true + + + 22 + + + + XSDS + + + + FILE_NAME + + true + + Name of the File + + + + FILE_PATH + + true + + Path of the File + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + false + + + 23 + + + + XSD_RELATIONS + + + + SOURCE + + true + + Source File + + + + TARGET + + true + + Target File + + + + + false + + + 24 + + + + CHECKSUM + + true + + + 25 + + + + PLUGINS + + + + PLUGIN_VERSION + + false + + + + BACKEND_NAME + + false + + + + BACKEND_CLASSNAME + + false + + + + BACKEND_DESCRIPTION + + false + + + + + false + + + 26 + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/TMC_SET_FRONTEND_CONFIGURATION_001.xml b/tests/src/main/resources/xmlMappings/TMC_SET_FRONTEND_CONFIGURATION_001.xml new file mode 100644 index 0000000..9e7d544 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/TMC_SET_FRONTEND_CONFIGURATION_001.xml @@ -0,0 +1,224 @@ + + + + TMC + SET_FRONTEND_CONFIGURATION + 001 + Active + + + + + SYS_CODE + + true + + + + APPL_CODE + + true + + + + INST_CODE + + true + + + + VERSION + + true + + + + RELEASE_DATE + + true + + + + SYSTEM_TYPE + + true + TCFJ / TAS / TAE + + + OS_NAME + + true + + + + OS_VERSION + + true + + + + JAVA_NAME + + true + + + + JAVA_VERSION + + true + + + + JAVA_VENDOR + + true + + + + MAX_JAVA_HEAP_SIZE + + true + + + + ROOT_DIRECTORY + + true + + Root directory of the component + + + + USED_JAR_FILES + + + + FILENAME + + true + + Filename without path + + + + ARTIFACTID + + true + + + + GROUPID + + false + + + + VERSION + + true + + + + + true + + + + HOST + + true + + + + USERNAME + + true + + + + CONFIG_FILES + + + + FILENAME + + false + + File name without path + + + + MODIFIED_AT + + false + + Date and time of last modification + + + + CONTENT + + true + + Content of the file + + + + + true + + + + ENVSUBTYPE + + false + + + + OS_ARCH + + true + + + + JAVA_RUNTIME_NAME + + true + + + + PROVIDED_BINDING + + + + BINDING_NAME + + true + + Name of the BINDING + + + + VERSION + + true + + BINDING Version + + + + + false + + + + CHECKSUM + + true + + + + + + + diff --git a/tests/src/main/resources/xmlMappings/TMC_SET_FRONTEND_CONFIGURATION_001_Dapi.xml b/tests/src/main/resources/xmlMappings/TMC_SET_FRONTEND_CONFIGURATION_001_Dapi.xml new file mode 100644 index 0000000..d0e7852 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/TMC_SET_FRONTEND_CONFIGURATION_001_Dapi.xml @@ -0,0 +1,31 @@ + + + + + SET_FRONTEND_CONFIGURATION + 001 + DEVL + + + TMC + SET_FRONTEND_CONFIGURATION + 001 + + + 6000 + INPUT_WITHOUT_REPLY + + + 1 + 1000 + TIF.TMC.MON + + + + diff --git a/tests/src/main/resources/xmlMappings/TMC_SET_FRONTEND_CONFIGURATION_002.xml b/tests/src/main/resources/xmlMappings/TMC_SET_FRONTEND_CONFIGURATION_002.xml new file mode 100644 index 0000000..c638a22 --- /dev/null +++ b/tests/src/main/resources/xmlMappings/TMC_SET_FRONTEND_CONFIGURATION_002.xml @@ -0,0 +1,496 @@ + + + + TMC + SET_FRONTEND_CONFIGURATION + 001 + Active + + + + cz.trask.tif.monitor.pojo.TIFComponentInstanceConfiguration + + setFrontendConfiguration + false + true + + + + + SYS_CODE + + true + + + 1 + + + + APPL_CODE + + true + + + 2 + + + + INST_CODE + + true + + + 3 + + + + VERSION + + true + + + 4 + + + + RELEASE_DATE + + true + + + 5 + + + + SYSTEM_TYPE + + true + TCFJ / TAS / TAE + + 6 + + + + OS_NAME + + true + + + 7 + + + + OS_VERSION + + true + + + 8 + + + + JAVA_NAME + + true + + + 9 + + + + JAVA_VERSION + + true + + + 10 + + + + JAVA_VENDOR + + true + + + 11 + + + + MAX_JAVA_HEAP_SIZE + + true + + + 12 + + + + ROOT_DIRECTORY + + true + + Root directory of the component + + + 13 + + + + USED_JAR_FILES + + + + FILE_NAME + + true + + Filename without path + + + + ARTIFACTID + + true + + + + GROUPID + + false + + + + VERSION + + true + + + + + true + + + 14 + + + + HOST + + true + + + 15 + + + + USERNAME + + true + + + 16 + + + + CONFIG_FILES + + + + FILE_NAME + + false + + File name without path + + + + MODIFIED_AT + + false + + Date and time of last modification + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + true + + + 17 + + + + ENVSUBTYPE + + false + + + 18 + + + + OS_ARCH + + true + + + 19 + + + + JAVA_RUNTIME_NAME + + true + + + 20 + + + + PROVIDED_BINDING + + + + BINDING_NAME + + true + + Name of the BINDING + + + + VERSION + + true + + BINDING Version + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + false + + + 21 + + + + PROVIDED_API + + + + API_NAME + + true + + Name of the API + + + + VERSION + + true + + API Version + + + + REQUEST_XSD_PATH + + false + + Path to the request xsd definition + + + + RESPONSE_XSD_PATH + + false + + Path to the response xsd definition + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + true + + + 22 + + + + SECS + + + + FILE_NAME + + true + + Name of the Security File + + + + FILE_PATH + + true + + Path to the file + + + + FILE_TYPE + + true + + Type of the Security File (General Secure store/General PwdStore/Plugin secure store/Plugin PwdStore/Other) + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + true + + + 23 + + + + XSDS + + + + FILE_NAME + + true + + Name of the File + + + + FILE_PATH + + true + + Path of the File + + + + CONTENT + + true + + Content of the file + + + + CHECKSUM + + true + File checksum + + + + false + + + 24 + + + + XSD_RELATIONS + + + + SOURCE + + true + + Source File + + + + TARGET + + true + + Target File + + + + + false + + + 25 + + + + CHECKSUM + + true + + + 26 + + + + + + + diff --git a/tests/src/main/resources/xyzmo/01_XC_start.request.xml b/tests/src/main/resources/xyzmo/01_XC_start.request.xml new file mode 100644 index 0000000..8b9b9bb --- /dev/null +++ b/tests/src/main/resources/xyzmo/01_XC_start.request.xml @@ -0,0 +1,62 @@ + + + + + + + + + Testovaci session + 50 + 999003001 + CP1 + + + + https://spii-live-significant.cz.money.ge.com:8080/resources/data/testovaci_dokument2.pdf + + 195 + 72 + 1 + 08181b9f-b39b-417a-a32f-ded2471e79b7 + biometricSignature + onPage" + 1 + 0 + 0 + Ing. Test Regresni + Podepisujete dokument XYZ + + + 195 + 72 + 1 + 08181b9f-b39b-417a-a32f-ded2471e79b7 + biometricSignature + onPage" + 1 + 0 + 0 + Theodor Mikulssen + Podepisujete dokument XYZ + + + 195 + 72 + 1 + 08181b9f-b39b-417a-a32f-ded2471e79b7 + biometricSignature + onPage" + 1 + 0 + 0 + Zbyněkdva Mach + Podepisujete dokument XYZ + + + + +]]> + + + \ No newline at end of file diff --git a/tests/src/main/resources/xyzmo/02_a_Sign.request b/tests/src/main/resources/xyzmo/02_a_Sign.request new file mode 100644 index 0000000..0008f64 --- /dev/null +++ b/tests/src/main/resources/xyzmo/02_a_Sign.request @@ -0,0 +1,18 @@ + + + + + + #xcWorkstepId# + + <!--Signature configuration--><signature><!--If given, a signature task with the same id is signed, otherwise a new signature field is added--><sigFieldId>2</sigFieldId><!--If given, either the existing signature is reset to this position or a new signature is created. If no id, no image and no position is given, an invisible signature is added--><sigFieldPosition><!--The document reference number of the document this signature belongs to.--><DocRefNumber>1</DocRefNumber><!--The elements x coordinate relative to the corner of the page in points. The referened corner is specified by 'positionReferenceCorner'--><positionX>322.32</positionX><!--The elements y coordinate relative to the corner of the page in points. The referened corner is specified by 'positionReferenceCorner'--><positionY>340.76</positionY><!--The elements width in points--><width>195</width><!--The elements height in points--><height>72</height><!--The page number--><positionPage>3</positionPage><!--Specifies which corner is the reference for the position. Possible Values: 'Lower_Left', 'Lower_Right', 'Upper_Left', Upper_Right'--><positionReferenceCorner>Lower_Left</positionReferenceCorner></sigFieldPosition><!--Image embedded into the signature in base64 encoding--><signatureImage>iVBORw0KGgoAAAANSUhEUgAAAjYAAADQCAYAAAAUNCuDAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAgfSURBVHhe7dhRjuQ2DAXAvX8OnUSLGDvTaffYsmWRVBXQP8EoliiBj9hfAAAAAAAAAAAAAAAAAAAAAAAAAABAl7/+/vkHAJDCkcHFcAMATPP1X1t++h3Vuw4A4JQZQ8fT3wMACos0WBhwAIBuUYcIww0AcFj0fxkx2AAAh2QZGqIPXwDAZNkGBYMNAPBWxiHBYAMA/E/mAcFwAwB8Y7ABAErIPhgYbACA3yoMBQYbAOC3KkNBO4cBBwAWV2kYMNgAwOIMNgBACdUGAYMNACzMYAMAlFFpEDDUAMDiDDYAQBlVhgFDDQBgsAFgPS00th/1VLhXbxOAH70OM8KjJoMNAEt4DQvhUZPBBoDy3gWF8Kgp+716lwB8tBcUAqQmgw0AZX0KCQFSV+a79S4B2LUXEsKjNoMNACUZbNaV9Y69TQDe+hQQwmMN2e7ZuwRg17uQaP9NeKwly317lwDs2gsJ4bEegw0AqX0KCOGxpuj37l0CsGsvJNp/FyBrMtgAkNanwYZ1Rb5/bxOAXUKCd6K+C+8VgF1Cgj0GGwDSERJ8Eu19eK8AfCQo+EmkN+K9ArCrhYSg4IgI78RbBWCXkOCsmW/GewXgI0FBj1nvxnsF4KMrQdHWCpp1PX333hoAP+oNi22dsFmXwQaAcFYbbNp+t19FT5+v2ncASOxKWGxrswVO1n0fNeN8T3yr6n0BcKMrYTEjQK9qe8247zNmnW/k96reFQA36w2Mtm77ZfG630x7P2M754zzjfpm1bsC4Ga9gTErOK943W/1sJx1vrvfRvV7AuBGvaFxd3g94XW/1QNz9vnu+n71ewLgRr2h0dZlCpx3exWY412pcbY3BkAAPcGxrckeOkLzGVfeGACcciV0soeP8HxOq/WZersbAE7rDY9tXfbwEZ7PazU/Und3A8BpveGxrcsePsJznk+1dy8AdOkNkG1d9gASoHPt1d+9ANClN0DaugrhI0Dne/eW3AsAXXoD5F0YZSRA49jelDsBoFtviFQJICEax3YXVd4WABP0BkiV8BGgMby7B3cDwGm94dHWVQge4RnD3j1UeWcAPKQ3NKoEjtCc78gdbO/NfQGw60pIVAkZQTlXT/23t+fuAPjmSjBUChUBOc/V2rf17g+AWwKlCsE4x511d4cAizPY/FExFNuZtl9EI/ZV8R4BOOhqCFQKkYqBGPlMI/dW8S4BOOBqAFQKkGph2M4T+Uyj97adP3INALjZ1aZfKTSqnSXyeZ7e21aPyDUB4Aa9jb5iUFQ5S/RzzN5ftXcLwBe9DX5bVykgqpwl+jmi7K/to9L7BeBfvY19WzcrGEZ8t0rIRT5HxL21PVW5e4Dl9Tb0bd2sQBjx3QrhFvUMbV/R61vh/gGW19vMt3UzwmDUNysEW8QzZKpr22uFdwCwrN4mvq2bEQKjvlkh0CKeIWNd254rvAeA5fQ2723d081/5PcqBFm0M2Svadt/hXcBsIzepr2te7Lpj/5W9gCLuP/sNd1UOQdAeb0N++u6p5r+E9/JHGCR9t72krmW71Q8E0A5PY36dc1Tzf6J72QOrih7z1zDI9r5qp8RIK2eBv265okm/2SQZA2tKPvOWr+z2jlXOStAGj2N+XXN6Ob+dHhkDasI+85auyvamVc8N0BIPQ353ZqRjf3p0MgYUm3PEfadsXZ3WfnsAGH0NON3a0Y09fb/nBEWM755RZT9ZqvbCLPeLAD/6WnC79aMaOazAiJbMEXZb7a6jdRqoR4AE5xtvp/+/s5GPjMUsgVShP1mq9lTWl3UBuBBZ5vuT39/VxOfHQZZwijKPrPUaxb1AXjImYZ75G/b31xp4lfX3yXCHo5QqzzUCeABZ5rt0b/tbeCRGn+WEJq9zyx1ikK9AAY702iP/m37u54GHqnpR9rLJ7P3maVOkbSaqRvAIGca7NlmfOTvtyZ/9v89WrT97Jm5zyw1iiriuwdI70xj7WnCW/Pe+0UVeW9fzdpnlvpkoJYANzraVFdsvhnOPGOPgvhe6glwo6NNdcXmm+HMM/YoiO+npgA3OdpQV2y8Gc48Y49CeAx1BbjB0Wa6atONfO4ZexO+46gtwA2ONtNVm27kc8/Ym/Adp9VWfQEuOtJIV2+2Ec//9J7a91Z/B09Ra4ALjjTQ1ZtsxPM/uSch+zw1B7jgpya6epONeP6n9iRg51B3gIs+NdLVm2zE8z+xJ+E6j9oDXPSukbb/psHGrMHoPbn3udQf4KLXRqqx/hGxFiP35O7ncwcAF702Uo31j4i1GLkndz+fOwC4qDXSr81UY/0uWj1G7ce9x+AeAG7Qmun247toNXFHdblbAIYz2PAUdwvAcAYbRmt3uv0AYCiDDSO5TwAeFyl8BGEt7hOAxxlsGMV9AjBFlAAShDW0e3SXAExjsOEu7hCA6Qw23MUdAhBChEASijm1e9t+ABCCwYYe7gyAkKIElKDMxX0BEJLBhh7uC4CwDDcAQBkGGwCglAhDhcEGALjN7MGifd9wAwDcwr/aAABlGCoAgDLODDaGIAAgvCMDi6EGAEjj0+BiqAEA0nk3wBhqAIC02iDz+gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACb59esftGFV50ldf5oAAAAASUVORK5CYII=</signatureImage><!--Additional signature parameters--><signatureConfig><!--Optional tag to set the reason in the adobe signature--><reason></reason><!--Optional tag to set the location in the adobe signature--><location></location><!--Optional tag to set the contact info in the adobe signature--><contactInfo></contactInfo><!--Optional tag localTimeInUtc: specify the signing time if not the local time of the server should be used. Format: yyyy-MM-ddThh:mm:ss.ffffZ--><localTimeInUtc></localTimeInUtc><signatureHashAlgorithm>Sha256</signatureHashAlgorithm></signatureConfig><!--The encrypted signature data container to embed into the signature--> +<EncryptedSignatureDataContainer version="1.0"> +<EncryptedSessionKey Certificate="MIIEBTCCAu2gAwIBAgIDGxSxMA0GCSqGSIb3DQEBBQUAMGMxCzAJBgNVBAYTAkNaMSkwJwYDVQQDEyBJLkNBIC0gU3RhbmRhcmQgcm9vdCBjZXJ0aWZpY2F0ZTEpMCcGA1UEChMgUHJ2bmkgY2VydGlmaWthY25pIGF1dG9yaXRhIGEucy4wHhcNMTIwODIwMTA0MTE0WhcNMTMwODIwMTA0MTE0WjBeMQswCQYDVQQGEwJDWjEaMBgGA1UEAwwRR0UgUGFkIEVuY3J5cHRpb24xHDAaBgNVBAoME0dFIE1vbmV5IEJhbmssIGEucy4xFTATBgNVBAUTDElDQSAtIDczODY5MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL2kPpAgL989nOHwDpxAHQlMT7riIT8fE7eGIZPpwYC5op53gUE+6zs6UFpRsh1oE11DfHLgwamxc1mNWnv5lg5tNSNrgAyiLutD/Ttv7tUA+NIw9wVemY9dpL2a7nzf48jds+SZASOTJnGr6j2cPYadMrCpOHyvJOkSBHlFQha4ByZWTSqXRtyDvaEf2VPQd5WK200SI9xp9PapXkgsvpek3DhGFjhUByjUkX0Y8Q6y0ioO+AFS9ae05B0IuZsIc+gkeodz8VCN6rGLh7SI6GOq+a2Hp2ZXzjxifnIWwu3zbAotWWM182mG0zUw/ctJjMKTpOJFTGtKrw1eNLF8V7kCAwEAAaOBxjCBwzAfBgNVHSMEGDAWgBTrN6S+uW9gF/vT/y1g4QQer8/G0zAdBgNVHQ4EFgQU2HK2uBAF5O5mJmltzucowUEewk8wGQYDVR0gBBIwEDAOBgwrBgEEAYG4SAEBAQMwCwYDVR0PBAQDAgTwMFkGA1UdHwRSMFAwJqAkoCKGIGh0dHA6Ly9zY3JsZHAxLmljYS5jei9zaWNhMDguY3JsMCagJKAihiBodHRwOi8vc2NybGRwMi5pY2EuY3ovc2ljYTA4LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAdw73djE4kaYppVHytBnlbJkBY8+LGW9vHZYkDEo/vKYRu4dM/SUFgTZyQrSrso95xh22HA+V+C5+/Lfpm97F/e1nohSX2RSWF9Co3P2UHryx+qvlWhemGc/nGTyc9mYSaq/Y/ImDsBNG/QqGUp7n6zRbjCSdBBKnVCsjpCqCjVN6u9GlCFD7qbL2XiGGNscF10usDi3ujQkvgITh2DsImQvpNTFkGLBvxW+RYwEiDEGx+1rEFh/Cc3JbFMuExvX4n2SyyUg1dtjPtvdpOOxDO059ID5iVQHHXAnntGPuErMI/86bIKqmFzb+l4rFaPQWjs1uOVC20EB1Ibr8knZJAw==" Encoding="Base64" Padding="PKCS#1 v1.5">ecCFDy0UQ/RgZzhGpMQUNYM0ACK2Zops4w8xCD2K2Rd4cDrZQ8iHxiD5LYo0q56CsCk7iFrGgu57hvYjKGoahPhuf5mXZnDcPQg6W9UVjzDkcXRUk5AAZ6781WQM4vwV1W+2MrtSf1UKx1ypM/mtc1KUiazYb9bSUXn9UZ9q920/iBe04y9mKBD6EKfUoEyYooqwQc5tzlKZInlXXix1hnB5L/6Fhm/G5gWDMtBwv2J/EJ3y3a6tuwUUPxJ1xbFtoQHVEZloTv80TesNz5u/fWNrOjAU43C9PWsuy71AB70yMsljjN6reMo+EMSBIsUOaJOvSHW/Av0UqLCDkeGB6A==</EncryptedSessionKey> +<EncryptedData CipherMode="CBC" CipherSize="128" Encoding="Base64" IvSize="128" KeySize="256" PaddingMode="PKCS7" SymmetricAlgorithm="AES">2JIHQpGTUVb9fTfecbx8aP4Zlxj0j6LMhvS6yxhaXrfODRxnyXG1d/xCLCkcZoacUbeaYdeL+5Tcrg4jc9eyCIzdN1LzLGuUHr5VwJCqZkgmkFgeIxNblhMbrh/2CvL5waN/eyVKPjnyWr+swi4eyrtNg3t2GJhpQw2TCpId4Adwp4b8lZy54j52JcHcYldsfX031/Ax2VC5sA7TihDCbMgC+dqekCkgTzAjMXRqm9QXGNeK7dvxXfe1tMCzJaliNQ3rBd+nyrQJoIr9FDJwDEv6Z9O9DDMMnxfRMUr6T9RT/SAWby4qFlkLp9jYKutLBuLfnKU149wZBmS0TyqF8LoOD0RhYTa+ULNYVWfcrMzQPyqi5gMoWg0CANHnYnBibrXCTKJwj4GSTFexGceZygn3CVzuJD0QwpFZmAq7vlkGCy1jVbzx06JNA8xUrf6CKJw8JOHkPHgVJdECyDPSwducWQGAzD8ZSryHx+86yXV3PR/jL+5UiLagLFl7D9NtBlQpnJLCn0LwVi3azT7mI7Aj2ySZMt6bD8f6ARqgP4F+KbfBRmR5e0MW6Kp0hvVeJEmpHJpADcbwvc6ARTVdAqWCCgtHh6dN0caJP72w1mSJDbSGY9iM37UyXbN0JX9j+newKR8g49aA8FfZk9EuzJvHKmfB9a22JqJPwO1B01WPk9ZEwZ12N4+tTwijbtyPpUMDRahDPQsrU8aA6EpzLe+y3Bz5qp0fw8+lupsX/s8uKSx/9lsoH89s3YCaqpwYU5TV2WTLlcuS9Ei50NuVEZJ1zhIvrFxFkakIBSytKtT1pgsVNDStLyxZy4HzBemyDtAaDquY0MdHjOyTSZ+NSia2TUjdRvJixd01Re2IBZlEw9Qy3+zofPE7yOz7Py5gcx1VBST0EeJv14p8f7PQx232RqhP4AvZg4HrHXpifq3orObM5w6BySVgyaS03GkrF/YC+oZ989xzJa0F01N5yuU6Lk77AcjqJItAQexHujIxz4EUrZs1gRjrzD7dJeNCTEt6xwirWJpZIAoTGOthoehu+RQJIrhlxVrwLmWZkmPzbDv/nrxyi5F0NEgv35HAf2+79Td4lSmGzb0+UcTAv7W+uOvD83oRdaKpNBWZkzYZE+lqRNJJQGPhvY2fWUGaToBq84qhyEo+cbOGS4/rMpVlAoexnfVhIriwvlaT0xWb/MaiRf4DURI02Dj94KmH8LdqjNqCvEmsCtPAW/Q7Atp/sEtJba/QUQdVWxF/rwSrG+d1PF9uS1Vrn4+sYA/+kHyEBhdPbaehehLoQ8z4YcTTM9cJr60/+WlW80UsYregPCWPh/zCrk2LPGoOHra8TRcnEXpp3v6Z07cRJ1TnhnCvbdam3D5AmhBsYluEE0V9wvGKrClDAflwh+tB6cE5MrrVWYDvGZO8BldDoaHsKoD7ZV+JQHR6z0IDQVAQlMn4i7m5w52cZbWsUuvtAFa482dusEkwjB6CTXGw0l45nrDPvwJfcLbtfPdEsKtXUqr0X43lusc3GLfpEev5sVA4/6jmrwOAcqfHqzyVP3KT0Q==</EncryptedData> +</EncryptedSignatureDataContainer> + </signature> + + <TransactionInformation><ClientId>XCF [Normal desktop]</ClientId><ProductName>SIGNificant WSI</ProductName><ProductVersion>3.0</ProductVersion><ProductReleaseDate>2015-01-01</ProductReleaseDate><IpAddress>freya</IpAddress></TransactionInformation> + + + \ No newline at end of file diff --git a/tests/src/main/resources/xyzmo/02_b_Verify.request b/tests/src/main/resources/xyzmo/02_b_Verify.request new file mode 100644 index 0000000..23ea4e0 --- /dev/null +++ b/tests/src/main/resources/xyzmo/02_b_Verify.request @@ -0,0 +1,24 @@ + + + + + 08181b9f-b39b-417a-a32f-ded2471e79b7 + + <StepOverSignatureDataContainer version="1.0"> +<EncryptedSignatureData Encoding="Base64">c44xVs5OEJWUIKEQxpjMZ1l0LTYkd24e0b9YNKfXRIW8lHVHq09tD5/TmbJq1yCAjbIDdku9g7R0ltV0wVVe1IBX5V939yiUhycSpuwToeWSN36qFHg6bOwL6vp+2j+aLcbDnGHXeVtXeuSuBVSpAfOFfPMS6yp6vUtNnw3xez6rVakDLN0EaXt/20Ea1wZ2beFGv+tMvW3nfAXZd/ir3k12BBJQMD7507l9R3hBxcgL/ERzoW3TmrKIon6LSnvucqxnNhViL4ZMHEQ6f4JCa5SmvFKhpgJ6vZxUcK6AdZRewZEPJ+eidUrh8tPOmIEXt9LnqN/Jb4JqaOP0uUvrgs74bzxieDniQoGUQelolumD1cJtiMEa+vWeVcBFSP3adYSXqjhf29vtFDWyKl8ydQX2hbkhSifzJpeCO00dJTTzn/eGuSFKJ/Mml4I7TR0lNPOf94e5IUon8yaXgjtNHSU085/3iNo0cjXxTSixuVMr3m11T1+J2jRyNfFNKLG5UyvebXVPX4onyLghcDeDV721mm2371RTi8qgVspwwWyqY/hs0jZDIQaMxPBPyftOfEfjUE1vzTE8FI01q9G1CZMQ+jeN4ia8KDvkjpICGivTwALLlQ/aBBn15kyPrWAICrV/FcDGyW//klbp0JAx25doAralnxlF79BvodRCkc0vrsCG4p+kVAEBXzlu/K2SL9QwlzB4xVOjTSSL3f/IZpPB/PSoq2/6baWagkb+sWFwlHg1YTcT4kSbDXXga1J+0RaVvkNAHToAi6SO3bLLlE8YBJY1glY4k4+LpSxlKKedTE4Pl2ZAIzcBO1mzPxdTmo7Dt2SYz9fMN2O/EigcMgdvDRX8IZls+3EcPMz7AuLOwb4MJ70smm0mzCpJjJ6QdyRDnwLzq3Kb3jccf3y16w7VTbEhnRjIzJzVC4UgDNXeGzFg759c/TxXnV8Jqzx9e59ERd7rR08iHsaeb5cb6lJvYLB6aT73+te3kZ8ieWAM0EWg2kpnK+u2fXPXoEeS6I6f5UXvFzdnmV5LbhihnIE4ZgXVBAkeckJfzG5t/KJn49UBN85EKREvteLBm8yvo4pjjisI8gPbdrwbowS8mqqkvFYeRKyMq+Mupq0xV+FLaaVDSolDcsnf2jqv30KDRFzxppKhivLL9gq0DkEI+H4alV2nqQBmMBE3KP+2HEhhkJHwqKiS6K6TgPASBVwsM4eWtTHbqTjy/mo6JJCaXIv+kv57GjmqwCSzYJ2AhCOX1fnylsl8nqttkVNo0/+J0JyR2fkTL5QirATw/t4MOHDkU9wZmo6L27itHwISloloKDjAdBGfyqE5Ta55wLdtyaFDDxHVmKaDSoDEr0L/NZjxccJF1h7Uwjyy/oiwLR10tGY6yfpPQdqsGyRSybFAZWS+Ff8rOch2EI1R3334spEIfM67dNT26Ql1U4T6eq6zCWCkxGfNVxnRtvLbXlS8A7SY8ifC7GvtBnx0SVKI6x6jtaG/cGFyJ2AsHfA4FW/JeCK2GmbfiySvFND8k2jJE2vXP7exuLhTlxU9YEvWFlFKePEYuENpTQd5AmQpJam+AO0wzOC5SHWI3ej+1KLUnNPdP6Dlb7pWxw3cgT6+p4f5e2cy5ei0u6VKv8snni2cxJSd5dOXyPm8viKsT0BKYXDQhbTdO6T1cL1ea8d2+WMZADNjzwJiJhlYvm3arNgL9ZkwHV3AvfdWs3u/h+AjMYz9CqNfXb8crA3blMBW/2o1jazIvzm/lO2Q+THvwekYHUqyY0oX7E+WZ9HN4mzC35UQVrPWYGi5Rg/ZscRjmMO8otDhGgS8HJ6mPaKbytuMxDGPs89QRpZzqMPgQFsfv9jFYjPQlPvvE8L/yZEMcv8JxsZL2EjG2hc7XnBUAfPtoQEbx738vYV9CC/Sj1S7kD4qXMfIAeHK4cvrEtfutqx07hnzYsmDbQ3+01/NjV5Ws/Wb9OjCygIDDn2Xeejh+zdxzHZbWPDLeKZmiNTBE0gaMn8B9lzvA8x1xFQcY9s00x46FQjt2H7+zc5TMeIoKM0obyWOhL+sE1fOhb4squtzdjX0HFalCIqjcM9n6iUg1GWd+ADqLav68iL90BGnpKAE7r9W3w5duDSPMwXRi7hYRXZCUkowaBUK3VOputJ8bTxQjiDfMa7HPhiHvvtj0+fw/NiOE9ajw/2ahq6LSo3UtqN+/XnovTBwiyf1GypAwtWeYarRTYNYeHU7t13v0LT71rajfv156L0wcIsn9RsqQMLXtqN+/XnovTBwiyf1GypAwtj1DHQ/5WBfPGW/Qf2623Nk2et6OLqqUaBwfhIvSk27uLfablyBvCyNeIKwQkzhtI+ACNulUcxXefG+W6V9sjy1pFa53Aia3GmdbHllAjKqG9MCMZXdgTF8AE1Y+Al3D34j0M4No96kAmXkvyGMevJPoO6isNV53/7gJ6lBLldFE4OOV4m9siXgYoeR/opvXqh1Ypog/ixucOFPN6NOl+wi8vOvRidpHWJ74l8eFgLeYBDoc1zJ55Q/ST7j8SbzX7yYZX37vJJreWlrSuTJPhzNvv+NkwMoLbPLvf7t5VzZzz73KlXjv8c/fqkWOS5BPSUFJ/2QWeQfGfSvu0U6IkJr45xP9yvDImracdKKvxP+Q9cBAtZEDkkaq3gqP32UTVVEUxR1cgOsO13RXI6c4vAfUUXJ9uiVe7LCPX20v6dpoK3SRn+Exz0zqvmB30KOrfKCWxVHVFJ+nIDHDJxfenJZ8ahIlkhZ2eKFqnJfUyOda+Ldk7NhSYcRWb7jaGYyGoUkuzXN4HdKSHmy9qhlec1x31H3ZfVyH0tbtt/pHXd29CLsIKw4vj4HTJkp0qGYO6H+yvSG4UWGwwpNHFvAGwIJfoywObNIMlm9FE6TmlsVxEX1iIwk8kN9CIIrT987hQP1Tf2ujw+nosjOE19Q/16wyU+bp9+L47GUy5MKklFRbt6+834mdmAqwj4uSATSUr8hFeeLFsp5M3JiSdPBEPNT4mEP781klyduDzzaSdkd6lQVXQtrpYtCoiLfXTKdJCynVcB2W8eSloGqgfdka85NqypWhTNPCLCuG6ySQKck9yMWplesSVOs2cOeRJ+XkEl8u8vQWJU/CimZB0nYBYnR5Sm8rOdZIfOLBjWv7xm+Gkb7QvCM1Fr9S1Z8mqHd9U7iHmAtoTXKWwArTZtMrainPJDWmgZh70hcPyj3fOuxmZMDCnxNXX4e910Hl0930SQXyi1sj/dLqufeXlRjTryZyuhYmhefuIQvorVfE4xbJCQpwmRonxbb+6UoT2D1Pdd8CL10Y1Q1KOoB6CrpYbSLeYmfZsE1eGAyTk2elN5i4FcUG8qvO45539zbYMQXhWNQ6s0MP0JAEZn5EA/dFjPXZHuaNu7VvdHWutoWq4OYJNRljilVcfNiU3Xs+stZG4GOCmbENwsEkhqMfYYpaPvnqs1XZ6ZoXvtK8HO7VL5QyO5z3q5ogZ5i9tC3CUp0766IVqnizGmWHWYK1V01NzqqnczLLiJLasiZc3ZX2+xJe8jXbZOrJqNrj99/Jd04XC9hOCRIlJEOdmwiCd7T/KXwPpJUwkRxCReHba20fvaQOZwyaJZrWtHfTHhui9yFHnqBWp5lU5XzD8vDv2/jNUJRUnWi20qEHmfcdIWicBGuoJj9gzEmSoDYn2Y98KJxqAWWuGBYQNH+BB+63ODw/XIh+HqjXJ6iDvvgRt923fnPc7Br/Q6UC1InKmgYnWYs2cZ0BPr3zjIIg24tPcZlHphR3XXYKjA8VdIJW+7phYunrCcfdqHwrUK+y8YjFOhNeWoRLQh3yjMVKZ8F2vw7gkz0v82CoHjw8Xg8s+D887vG4U3ALggeebX8XeGNV6y1L4AWRQBkMWt6kG9RqnveOQbwvgx1BHe1H3shJpgv5AyUfaFqp2ux8AJVfN+HZJpjnC2gXAQfxEk9+aZ9YW/YGV6E6NFVDDMmYP2/Ln7egtYHNm4iMnvjU61rgBnAf2IvHGaX9i/hgzr0Gh1rpM6AqfzSd4P2n2HeNCy8aV6OeIFjI8/2Lauc/qgcb+/Zin6fgtAFEbVxXZUzd7ELNfKP5A+DfFeO1id4ab/cXGKv+wvCEoQEaeK+dUMROmKW1EL3UlQ1hdAFEbVxXZUzd7ELNfKP5A+GBGnivnVDETpiltRC91JUNYeRtlY122Zl9wDBmVN2qRNNiGMjz/Ytq5z+qBxv79mKfp+JTXeLABw4ngoNqeOOyXnOWoolPXZW8YBwqR5rMoun4iiZi6JkSxegy32d0TE7sUiJMW+M8WvpStN1qaTIUSsh/rSa+o3a8QVtHfQXeQ0+pzNzE7lOjr2S2nZvNjOosnGXmsHwhTOPnOL8lW5nMAKzN0joTXUAJJCq8+ckDWTqRJDq0p5L5uBhkRZveVkBLOEjwiNv+bjGBwqSd/9CqgW8GDXa6HTQxWPPvZPl3W4VTmpiBU0eQkVfkBDAlJRk4L+LGotPpzFY68zZwLCVZ7SsnC3VX42f1LCPsXaulJYZSIEeskuxc/x21Xy1MyMY</EncryptedSignatureData> +<EncryptionPublicKey Encoding="Base64">uVd8sTReDa9Ka0xF4qSTwoxJy/0wNdOGafM1Y1ktCmzz7cIWcn5iPM5XZqeHrfmqY+iItIeLseqNUPFzh3ok6HMIm7kIHeS0p/VSAfgOKtKyDvEYfZHUKAdUOBZGONykl74sSF6p9vRp3CMSTduKlXfQU9kfob2D3EaXKk1WJge4FkJFeQQS6SSvfDipsDKdhj2cPeqrcSaTIwGZ5LPdyOPffO6avaRdj5leBfcw0vgA1e5vO/1D6y6iDIBrIzVtDpb5e1qNWXOxqcHgcnxDXRNoHbJRWlA6O+s+QYF3nqK5gMHpkyGGtxMfPyHiuk9MCR1AnA7w4Zw93y8gkD6kvQEAAQCV29h9uOCMStv8tCzgQsnKJDgCL1XuQ4stNfLF4ZBSAwRhqOX8lvOdD5jAUcWaLn5/OWWjkoE8ETZ4IsS8dGngsM0tquWNfPAHIQjW+x7sA7UKNo7/zbuNmnp/U12k3p6cRdUwC/Urs/B88pefPi9qfkPVzGLpp/WOme5UzRJYm/S5mkiGQcoKLQ+oNpBeilPqZlS978/A7WEx8ICgT5Knz1ZofuSD0rKXQMXJKO6SqAnnIzaNXCbne6nxP4EcXpohQXsj/nD/27FrDDIhoJ+W6u/n4SUv2+vA7Vg2nF1vLcoz2caj0qrUUtZ360FCnJDuih6VcXSPMRztJmGcfTNn</EncryptionPublicKey> +<EncryptedAESKey Encoding="Base64">C63wjGPGaJg3KvgjFQG6mL6DALV8WkeegKuYunYa+EzZnpTLcNwtxpLpRIOmT25j7s3e6LObSl3bQIkMXe9QlfIk4d+ToKXl95qt5N2IMNsHcd7ekaNeakASO7tllcNdCb4vlnft3YBCLILDCbSazE+Z3tMYBaYDe6mhjM0QOtQQFMJY4AXzOMSE0maxrW38fBJwIA5Q6gqvahrrMdtO3xlESyVDU9RxUjdZqgb5B1dFOrijBwPjltynQZEVg8OIjw3MZ7dR2ppa0PaLFNBXkATLV0Iqh1WXh7UBCsGUdh02ZJjQw/AKzwTBDgIeIPiEZq3HA7OGIbITB2TtqPswNQ==</EncryptedAESKey> +<NotaryInfo>&lt;ni a="GE Money Bank, a.s., Vysko??ilova 1422/1a, 140 28 Prague 4" cs="CN=GE Pad Encryption,O=GE Money Bank,a.s.,C=CZ,SERIALNUMBER=ICA - 738691" cth="eca44fe72030b0349fb3a881a10da40a87395f47"/&gt; </NotaryInfo> +<RenderingSize>563;224</RenderingSize> +<RenderingPixels Encoding="Base64" Format="Unsigned2ByteXY">EwF3ABMBXQATAV4AEgFcABIBeAARAXkAEQFbABEBeAAQAXsAEAFZABABegAQAVoAFwFyABcBYwAWAXMAFgFiABYBcgAWAWMAFQF1ABUBdAAVAWAAFQFhABQBdwAUAXYAFAFfABsBZwAbAW0AGgFmABoBZwAaAW4AGgFvABkBZAAZAWUAGQFxABkBcAAYAWQAGAFxAB8BbAAfAWgAHgFqAB4BawAeAWkAHQFrAB0BaQAcAWwAHAFoAAIBkwACAZQAAgGVAAIBlgADAZMABgGLAAYBigAHAYkABAGPAAQBkAAEAZEABAGSAAQBkwAFAY0ABQGMAAUBjgAKAUwACgFNAAoBgwAKAU4ACgGEAAoBSwALAVAACwGCAAsBTwAIAYgACQGFAAkBSAAJAUkACQGHAAkBSgAJAYYACQFLAA4BVQAOAVQADgFWAA4BfwAOAX4ADwFXAA8BfQAPAXwADwFYAAwBUQAMAVMADAFSAAwBgQANAVMADQGAADEBVwAxAVYAMQF7ADABWAAwAXoAMwFUADMBewAyAVUAMgF7ADUBUwA1AVIANQF8ADQBVAA0AXsANwFQADcBfwA2AVEANgF+ADYBfQA5AX8AOQFPADgBfwA4AU8AOwFMADsBgQA7AUsAOgGBADoBTQA6AYAAOgFOAD0BTAA9AYIAPQFIAD0BSQA9AUoAPQFLADwBggA8AUsAPwFHAD8BSAA/AUkAPwGEAD8BSgA+AYMAPgFIAD4BSgAgAWwAIAFoACEBZwAhAW4AIQFtACIBZgAiAWcAIgFwACIBbwAjAWQAIwFlACMBcAAkAWQAJAFxACUBYwAlAXEAJgFiACYBYwAmAXIAJwF0ACcBcwAnAWAAJwFhACgBdQAoAWAAKQF2ACkBXwAqAXYAKgFeACsBdgArAV0ALAF2ACwBXAAtAXcALQFbAC0BWgAuAVkALgF4AC8BWQAvAXkARgGJAEYBigBEAYkARAGIAEQBhwBFAYkAQgGHAEIBhgBDAYgAQwGGAEABRgBAAUcAQAGFAEEBRgBBAYUA</RenderingPixels> +<SignatureAreaLocationInPointsFromLowerLeft>48;25</SignatureAreaLocationInPointsFromLowerLeft> +<SignatureAreaSizeInPoints>222;89</SignatureAreaSizeInPoints> +<EncryptedSignatureDataContainer version="1.0"> +<EncryptedSessionKey Certificate="MIIEBTCCAu2gAwIBAgIDGxSxMA0GCSqGSIb3DQEBBQUAMGMxCzAJBgNVBAYTAkNaMSkwJwYDVQQDEyBJLkNBIC0gU3RhbmRhcmQgcm9vdCBjZXJ0aWZpY2F0ZTEpMCcGA1UEChMgUHJ2bmkgY2VydGlmaWthY25pIGF1dG9yaXRhIGEucy4wHhcNMTIwODIwMTA0MTE0WhcNMTMwODIwMTA0MTE0WjBeMQswCQYDVQQGEwJDWjEaMBgGA1UEAwwRR0UgUGFkIEVuY3J5cHRpb24xHDAaBgNVBAoME0dFIE1vbmV5IEJhbmssIGEucy4xFTATBgNVBAUTDElDQSAtIDczODY5MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL2kPpAgL989nOHwDpxAHQlMT7riIT8fE7eGIZPpwYC5op53gUE+6zs6UFpRsh1oE11DfHLgwamxc1mNWnv5lg5tNSNrgAyiLutD/Ttv7tUA+NIw9wVemY9dpL2a7nzf48jds+SZASOTJnGr6j2cPYadMrCpOHyvJOkSBHlFQha4ByZWTSqXRtyDvaEf2VPQd5WK200SI9xp9PapXkgsvpek3DhGFjhUByjUkX0Y8Q6y0ioO+AFS9ae05B0IuZsIc+gkeodz8VCN6rGLh7SI6GOq+a2Hp2ZXzjxifnIWwu3zbAotWWM182mG0zUw/ctJjMKTpOJFTGtKrw1eNLF8V7kCAwEAAaOBxjCBwzAfBgNVHSMEGDAWgBTrN6S+uW9gF/vT/y1g4QQer8/G0zAdBgNVHQ4EFgQU2HK2uBAF5O5mJmltzucowUEewk8wGQYDVR0gBBIwEDAOBgwrBgEEAYG4SAEBAQMwCwYDVR0PBAQDAgTwMFkGA1UdHwRSMFAwJqAkoCKGIGh0dHA6Ly9zY3JsZHAxLmljYS5jei9zaWNhMDguY3JsMCagJKAihiBodHRwOi8vc2NybGRwMi5pY2EuY3ovc2ljYTA4LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAdw73djE4kaYppVHytBnlbJkBY8+LGW9vHZYkDEo/vKYRu4dM/SUFgTZyQrSrso95xh22HA+V+C5+/Lfpm97F/e1nohSX2RSWF9Co3P2UHryx+qvlWhemGc/nGTyc9mYSaq/Y/ImDsBNG/QqGUp7n6zRbjCSdBBKnVCsjpCqCjVN6u9GlCFD7qbL2XiGGNscF10usDi3ujQkvgITh2DsImQvpNTFkGLBvxW+RYwEiDEGx+1rEFh/Cc3JbFMuExvX4n2SyyUg1dtjPtvdpOOxDO059ID5iVQHHXAnntGPuErMI/86bIKqmFzb+l4rFaPQWjs1uOVC20EB1Ibr8knZJAw==" Encoding="Base64" Padding="PKCS#1 v1.5">ecCFDy0UQ/RgZzhGpMQUNYM0ACK2Zops4w8xCD2K2Rd4cDrZQ8iHxiD5LYo0q56CsCk7iFrGgu57hvYjKGoahPhuf5mXZnDcPQg6W9UVjzDkcXRUk5AAZ6781WQM4vwV1W+2MrtSf1UKx1ypM/mtc1KUiazYb9bSUXn9UZ9q920/iBe04y9mKBD6EKfUoEyYooqwQc5tzlKZInlXXix1hnB5L/6Fhm/G5gWDMtBwv2J/EJ3y3a6tuwUUPxJ1xbFtoQHVEZloTv80TesNz5u/fWNrOjAU43C9PWsuy71AB70yMsljjN6reMo+EMSBIsUOaJOvSHW/Av0UqLCDkeGB6A==</EncryptedSessionKey> +<EncryptedData CipherMode="CBC" CipherSize="128" Encoding="Base64" IvSize="128" KeySize="256" PaddingMode="PKCS7" SymmetricAlgorithm="AES">2JIHQpGTUVb9fTfecbx8aP4Zlxj0j6LMhvS6yxhaXrfODRxnyXG1d/xCLCkcZoacUbeaYdeL+5Tcrg4jc9eyCIzdN1LzLGuUHr5VwJCqZkgmkFgeIxNblhMbrh/2CvL5waN/eyVKPjnyWr+swi4eyrtNg3t2GJhpQw2TCpId4Adwp4b8lZy54j52JcHcYldsfX031/Ax2VC5sA7TihDCbMgC+dqekCkgTzAjMXRqm9QXGNeK7dvxXfe1tMCzJaliNQ3rBd+nyrQJoIr9FDJwDEv6Z9O9DDMMnxfRMUr6T9RT/SAWby4qFlkLp9jYKutLBuLfnKU149wZBmS0TyqF8LoOD0RhYTa+ULNYVWfcrMzQPyqi5gMoWg0CANHnYnBibrXCTKJwj4GSTFexGceZygn3CVzuJD0QwpFZmAq7vlkGCy1jVbzx06JNA8xUrf6CKJw8JOHkPHgVJdECyDPSwducWQGAzD8ZSryHx+86yXV3PR/jL+5UiLagLFl7D9NtBlQpnJLCn0LwVi3azT7mI7Aj2ySZMt6bD8f6ARqgP4F+KbfBRmR5e0MW6Kp0hvVeJEmpHJpADcbwvc6ARTVdAqWCCgtHh6dN0caJP72w1mSJDbSGY9iM37UyXbN0JX9j+newKR8g49aA8FfZk9EuzJvHKmfB9a22JqJPwO1B01WPk9ZEwZ12N4+tTwijbtyPpUMDRahDPQsrU8aA6EpzLe+y3Bz5qp0fw8+lupsX/s8uKSx/9lsoH89s3YCaqpwYU5TV2WTLlcuS9Ei50NuVEZJ1zhIvrFxFkakIBSytKtT1pgsVNDStLyxZy4HzBemyDtAaDquY0MdHjOyTSZ+NSia2TUjdRvJixd01Re2IBZlEw9Qy3+zofPE7yOz7Py5gcx1VBST0EeJv14p8f7PQx232RqhP4AvZg4HrHXpifq3orObM5w6BySVgyaS03GkrF/YC+oZ989xzJa0F01N5yuU6Lk77AcjqJItAQexHujIxz4EUrZs1gRjrzD7dJeNCTEt6xwirWJpZIAoTGOthoehu+RQJIrhlxVrwLmWZkmPzbDv/nrxyi5F0NEgv35HAf2+79Td4lSmGzb0+UcTAv7W+uOvD83oRdaKpNBWZkzYZE+lqRNJJQGPhvY2fWUGaToBq84qhyEo+cbOGS4/rMpVlAoexnfVhIriwvlaT0xWb/MaiRf4DURI02Dj94KmH8LdqjNqCvEmsCtPAW/Q7Atp/sEtJba/QUQdVWxF/rwSrG+d1PF9uS1Vrn4+sYA/+kHyEBhdPbaehehLoQ8z4YcTTM9cJr60/+WlW80UsYregPCWPh/zCrk2LPGoOHra8TRcnEXpp3v6Z07cRJ1TnhnCvbdam3D5AmhBsYluEE0V9wvGKrClDAflwh+tB6cE5MrrVWYDvGZO8BldDoaHsKoD7ZV+JQHR6z0IDQVAQlMn4i7m5w52cZbWsUuvtAFa482dusEkwjB6CTXGw0l45nrDPvwJfcLbtfPdEsKtXUqr0X43lusc3GLfpEev5sVA4/6jmrwOAcqfHqzyVP3KT0Q==</EncryptedData> +</EncryptedSignatureDataContainer> +</StepOverSignatureDataContainer> + + + + \ No newline at end of file diff --git a/tests/src/main/resources/xyzmo/02_c_SetTaskResult.request b/tests/src/main/resources/xyzmo/02_c_SetTaskResult.request new file mode 100644 index 0000000..fa621ab --- /dev/null +++ b/tests/src/main/resources/xyzmo/02_c_SetTaskResult.request @@ -0,0 +1,17 @@ + + + + + + #xcSessionId# + + 1 + + 0 + + OK + + 1 + + + \ No newline at end of file diff --git a/tests/src/main/resources/xyzmo/03_FinishWorkStep.request b/tests/src/main/resources/xyzmo/03_FinishWorkStep.request new file mode 100644 index 0000000..a968d3a --- /dev/null +++ b/tests/src/main/resources/xyzmo/03_FinishWorkStep.request @@ -0,0 +1,11 @@ + + + + + + #xcWorkstepId# + + <TransactionInformation><ClientId>XCF [Normal desktop]</ClientId><ProductName>SIGNificant WSI</ProductName><ProductVersion>3.0</ProductVersion><ProductReleaseDate>2015-01-01</ProductReleaseDate><IpAddress>freya</IpAddress></TransactionInformation> + + + \ No newline at end of file diff --git a/tests/src/main/resources/xyzmo/04_XC_SessionStatus.request b/tests/src/main/resources/xyzmo/04_XC_SessionStatus.request new file mode 100644 index 0000000..d98324d --- /dev/null +++ b/tests/src/main/resources/xyzmo/04_XC_SessionStatus.request @@ -0,0 +1,10 @@ + + + + + + + #xcSessionId# + + + \ No newline at end of file diff --git a/tests/src/main/resources/xyzmo/05_XC_kill.request b/tests/src/main/resources/xyzmo/05_XC_kill.request new file mode 100644 index 0000000..587a5b5 --- /dev/null +++ b/tests/src/main/resources/xyzmo/05_XC_kill.request @@ -0,0 +1,10 @@ + + + + + + + #xcSessionId# + + + \ No newline at end of file diff --git a/tests/src/main/resources/yamls/brokerPortal/flatValuations b/tests/src/main/resources/yamls/brokerPortal/flatValuations new file mode 100644 index 0000000..a49569a --- /dev/null +++ b/tests/src/main/resources/yamls/brokerPortal/flatValuations @@ -0,0 +1,69 @@ +!!cz.moneta.test.dsl.brokerportal.valuationsDataPreparation.FlatValuationData +propertyArea: "Povel" +flatUnit: "1742" +address: "Taussigova 1154" +userRole: "Žadatel o úvěr" +userFirstName: "Test" +userLastName: "Test2" +userPhone: "+420777777777" +valuationDetails: + - valuation: "Verifikace" + type: "Bytová jednotka" + placing: "Přízemí" + disposition: "1+kk" + state: "Po kompletní rekonstrukci" + area: 35 + areaOther: 5 + outsideParking: 0 + insideParking: 0 + garage: 0 + price: 1500000 + houseType: "Novostavba" + houseYear: "2010" + houseFloors: 5 + houseStatus: "Celková rekonstrukce" + victoryScreen: "t_sla1" + - valuation: "Desktop" + type: "Bytová jednotka" + placing: "Sklep" + disposition: "1+kk" + state: "Po kompletní rekonstrukci" + area: 170 + areaOther: 5 + garage: 1 + price: 1500000 + houseType: "Novostavba" + houseYear: "2010" + houseFloors: 5 + houseStatus: "Celková rekonstrukce" + victoryScreen: "t_sla2" + - valuation: "Full" + type: "Bytová jednotka" + placing: "Přízemí" + disposition: "1+kk" + state: "Bez rekonstrukce" + area: 300 + areaOther: 5 + garage: 1 + price: 1500000 + houseType: "Novostavba" + houseYear: "2000" + houseFloors: 5 + houseStatus: "Celková rekonstrukce" + victoryScreen: "t_sla3" + - valuation: "Online" + type: "Bytová jednotka" + placing: "Přízemí" + disposition: "1+kk" + state: "Po kompletní rekonstrukci" + area: 74 + areaOther: 0 + outsideParking: 0 + insideParking: 0 + garage: 0 + price: 9000000 + houseType: "Novostavba" + houseYear: "2010" + houseFloors: 7 + houseStatus: "Celková rekonstrukce" + victoryScreen: "t_sla4" diff --git a/tests/src/main/resources/yamls/brokerPortal/houseValuations b/tests/src/main/resources/yamls/brokerPortal/houseValuations new file mode 100644 index 0000000..b2e7f04 --- /dev/null +++ b/tests/src/main/resources/yamls/brokerPortal/houseValuations @@ -0,0 +1,31 @@ +!!cz.moneta.test.dsl.brokerportal.valuationsDataPreparation.HouseValuationData +propertyArea: "Stodůlky" +houseUnit: "27722" +address: "Taussigova 1154" +userRole: "Žadatel o úvěr" +userFirstName: "Test" +userLastName: "Test2" +userPhone: "+420777777777" +valuationDetails: + - valuation: "Desktop" + material: "Zděný" + year: 2010 + state: "Výborný" + landArea: 500 + garageBasement: 1 + garageGround: 1 + garageSeparate: 1 + price: 150000 + floorArea: 1000 + victoryScreen: "t_sla2" + - valuation: "Full" + material: "Jiné" + year: 2000 + state: "Havarijní" + landArea: 500 + garageBasement: 1 + garageGround: 1 + garageSeparate: 1 + price: 150000 + floorArea: 1000 + victoryScreen: "t_sla3" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/cardif1ContractData b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/cardif1ContractData new file mode 100644 index 0000000..cced510 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/cardif1ContractData @@ -0,0 +1,86 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "24811254" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "AMERICKÁ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Bez účelu" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "81" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/employeeContractData b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/employeeContractData new file mode 100644 index 0000000..0318ddb --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/employeeContractData @@ -0,0 +1,91 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "25672720" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + otherIncomes: + - type: "intl-driver-diets" # OtherIncomeType + amount: "2000" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: true + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "AMERICKÁ HYPOTÉKA" # HyposProduct +loanAction: "Zaměstnanec - Americká HY" # HyposAction +loanObjectType: "Bez účelu" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "81" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/simpleContractData b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/simpleContractData new file mode 100644 index 0000000..1fe90fe --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/simpleContractData @@ -0,0 +1,91 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "47114983" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + otherIncomes: + - type: "intl-driver-diets" # OtherIncomeType + amount: "2000" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "AMERICKÁ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Bez účelu" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "81" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/simpleContractData15M b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/simpleContractData15M new file mode 100644 index 0000000..b44d66d --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/simpleContractData15M @@ -0,0 +1,91 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 300000 + netSalary: 270000 + ico: "47114983" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + otherIncomes: + - type: "intl-driver-diets" # OtherIncomeType + amount: "2000" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 25000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 35000000 +mortgageLoanAmount: 15000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "AMERICKÁ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Bez účelu" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "15000000" + type: "81" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/threeClientsContractData b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/threeClientsContractData new file mode 100644 index 0000000..29c32ea --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/threeClientsContractData @@ -0,0 +1,152 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "00685976" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + otherIncomes: + - type: "rente" # OtherIncomeType + amount: "2000" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + - type: "aliment" # OtherIncomeType + amount: "2500" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo + - type: "third" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + businessIncomes: + turnoverLatest: 800000 + taxBaseLatest: 300000 + paidTax: 80000 + costAccounting: "Daňová evidence" + naceCode: "64921" + turnoverPenultimate: 850000 + taxBasePenultimate: 650000 + ico: "61498670" + currency: "CZK - Česká republika" # IncomeCurrency + startDate: "1.12.2000" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Bratr/Sestra" # ClientRelationType + household: "2" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "AMERICKÁ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Bez účelu" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 1 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "81" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/twoClientsCardif1ContractData b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/twoClientsCardif1ContractData new file mode 100644 index 0000000..a76db53 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/twoClientsCardif1ContractData @@ -0,0 +1,118 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "27082440" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + employeeIncomes: + - grossSalary: 50000 + netSalary: 45000 + ico: "27082440" + startDate: "1.2.2001" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "AMERICKÁ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Bez účelu" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "81" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/twoClientsCardif2ContractData b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/twoClientsCardif2ContractData new file mode 100644 index 0000000..82c4a75 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/twoClientsCardif2ContractData @@ -0,0 +1,118 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "27082440" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1-1" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + employeeIncomes: + - grossSalary: 50000 + netSalary: 45000 + ico: "27082440" + startDate: "1.2.2001" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1-1" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "AMERICKÁ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Bez účelu" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "81" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/twoClientsContractData b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/twoClientsContractData new file mode 100644 index 0000000..f7b9b66 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/americanMortgage/twoClientsContractData @@ -0,0 +1,120 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "27082440" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + businessIncomes: + turnoverLatest: 800000 + taxBaseLatest: 300000 + paidTax: 80000 + costAccounting: "Daňová evidence" + naceCode: "64921" + turnoverPenultimate: 850000 + taxBasePenultimate: 650000 + ico: "61498670" + currency: "CZK - Česká republika" # IncomeCurrency + startDate: "1.12.2000" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "AMERICKÁ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Bez účelu" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "81" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/cardif1ContractData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/cardif1ContractData new file mode 100644 index 0000000..8bd4192 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/cardif1ContractData @@ -0,0 +1,89 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "00177041" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/employeeContractData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/employeeContractData new file mode 100644 index 0000000..d37c705 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/employeeContractData @@ -0,0 +1,89 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "25672720" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: true + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "Zaměstnanec - Hypoteční úvěr na bydlení 80" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/oneTrancheContractData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/oneTrancheContractData new file mode 100644 index 0000000..b2b2542 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/oneTrancheContractData @@ -0,0 +1,92 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "24811254" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + - type: "Splátka jin. hyp. úvěru" # ExpenditureType + amount: "4000" + correction: "refinancování úvěru" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1500000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1500000" + type: "90" # LoanPurposeType + tranche: "1" + paymentType: "5" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/simpleContractData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/simpleContractData new file mode 100644 index 0000000..0615757 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/simpleContractData @@ -0,0 +1,94 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "47114983" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + otherIncomes: + - type: "intl-driver-diets" # OtherIncomeType + amount: "2000" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/simpleContractData15M b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/simpleContractData15M new file mode 100644 index 0000000..161d405 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/simpleContractData15M @@ -0,0 +1,94 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 300000 + netSalary: 270000 + ico: "47114983" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + otherIncomes: + - type: "intl-driver-diets" # OtherIncomeType + amount: "2000" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 30000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 35000000 +mortgageLoanAmount: 15000000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "15000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/simpleContractPepData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/simpleContractPepData new file mode 100644 index 0000000..d29f28d --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/simpleContractPepData @@ -0,0 +1,94 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "47114983" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + otherIncomes: + - type: "intl-driver-diets" # OtherIncomeType + amount: "2000" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 1 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/skNationalityContractData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/skNationalityContractData new file mode 100644 index 0000000..cb680ff --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/skNationalityContractData @@ -0,0 +1,89 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Slovensko" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "00685976" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Pas" # IdentityType + secondIdentityType: "ID cizince" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/threeClientsContractData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/threeClientsContractData new file mode 100644 index 0000000..4102699 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/threeClientsContractData @@ -0,0 +1,173 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "27082440" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + - grossSalary: 40000 + netSalary: 35000 + ico: "61498670" + startDate: "1.11.2012" + type: "Na dobu neurčitou" # MainIncomeType + profession: "staveb. projektant/statik/architekt" + phone: "420777666111" + currency: "CZK - Česká republika" # IncomeCurrency + otherIncomes: + - type: "parental-contribution" # OtherIncomeType + amount: "2500" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + - type: "rental-allowance-gross" # OtherIncomeType + amount: "25000" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "no" + - type: "rental-allowance-tax-return" # OtherIncomeType + amount: "10000" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "26204967" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo + - type: "third" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "26204967" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Bratr/Sestra" # ClientRelationType + household: "2" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 1 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/threeTranchesContractData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/threeTranchesContractData new file mode 100644 index 0000000..993f7cf --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/threeTranchesContractData @@ -0,0 +1,108 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "00177041" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + - type: "Splátka jin. hyp. úvěru" # ExpenditureType + amount: "4000" + correction: "refinancování úvěru" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1560000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "800000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType + - amount: "400000" + type: "90" # LoanPurposeType + tranche: "2" + paymentType: "5" # PaymentType + - amount: "360000" + type: "83" # LoanPurposeType + tranche: "3" + paymentType: "1" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "05 a) i) Platná kupní smlouva" + tranches: + - "1" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "2" + - condition: "08 a) Aktualizace hodnoty Zástavy" + tranches: + - "2" + - "3" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - "3" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoClientsCardif1ContractData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoClientsCardif1ContractData new file mode 100644 index 0000000..cf18594 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoClientsCardif1ContractData @@ -0,0 +1,121 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "25655701" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + employeeIncomes: + - grossSalary: 50000 + netSalary: 45000 + ico: "25655701" + startDate: "1.2.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoClientsCardif2ContractData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoClientsCardif2ContractData new file mode 100644 index 0000000..5639f04 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoClientsCardif2ContractData @@ -0,0 +1,121 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "25655701" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1-1" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + employeeIncomes: + - grossSalary: 50000 + netSalary: 45000 + ico: "25655701" + startDate: "1.2.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1-1" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoClientsContractData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoClientsContractData new file mode 100644 index 0000000..4e15530 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoClientsContractData @@ -0,0 +1,123 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + businessIncomes: + turnoverLatest: 800000 + taxBaseLatest: 300000 + paidTax: 80000 + costAccounting: "Daňová evidence" + naceCode: "64921" + turnoverPenultimate: 850000 + taxBasePenultimate: 650000 + ico: "24811254" + currency: "CZK - Česká republika" # IncomeCurrency + startDate: "1.12.2000" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "25655701" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoTranchesContractData b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoTranchesContractData new file mode 100644 index 0000000..5f97df5 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/flexibleMortgage/twoTranchesContractData @@ -0,0 +1,97 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "47114983" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + - type: "Splátka jin. hyp. úvěru" # ExpenditureType + amount: "4000" + correction: "refinancování úvěru" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1600000 +mortgageLoanMaturity: 30 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "Hypoteční úvěr na bydlení" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1200000" + type: "90" # LoanPurposeType + tranche: "1" + paymentType: "5" # PaymentType + - amount: "400000" + type: "83" # LoanPurposeType + tranche: "2" + paymentType: "1" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "10 a) Žádost o čerpání na Běžný účet Klienta" + tranches: + - "1" + - "2" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "2" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/cardif1ContractData b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/cardif1ContractData new file mode 100644 index 0000000..25a7384 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/cardif1ContractData @@ -0,0 +1,89 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "00685976" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "VARIABILNÍ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/employeeContractData b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/employeeContractData new file mode 100644 index 0000000..501d108 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/employeeContractData @@ -0,0 +1,89 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "25672720" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: true + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "VARIABILNÍ HYPOTÉKA" # HyposProduct +loanAction: "Zaměstnanec - Hypotéka s variabilní sazbou 80" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/oneTrancheContractData b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/oneTrancheContractData new file mode 100644 index 0000000..cee0017 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/oneTrancheContractData @@ -0,0 +1,92 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "27082440" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + - type: "Splátka jin. hyp. úvěru" # ExpenditureType + amount: "4000" + correction: "refinancování úvěru" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1500000 +mortgageLoanMaturity: 25 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "VARIABILNÍ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1500000" + type: "90" # LoanPurposeType + tranche: "1" + paymentType: "5" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/simpleContractData b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/simpleContractData new file mode 100644 index 0000000..704bcac --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/simpleContractData @@ -0,0 +1,89 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "00177041" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "VARIABILNÍ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/simpleContractData15M b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/simpleContractData15M new file mode 100644 index 0000000..515c4cd --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/simpleContractData15M @@ -0,0 +1,89 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 500000 + netSalary: 450000 + ico: "00177041" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 30000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 35000000 +mortgageLoanAmount: 15000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "VARIABILNÍ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "15000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/threeClientsContractData b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/threeClientsContractData new file mode 100644 index 0000000..ef68c60 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/threeClientsContractData @@ -0,0 +1,159 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "24811254" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + businessIncomes: + turnoverLatest: 800000 + taxBaseLatest: 300000 + paidTax: 80000 + costAccounting: "Daňová evidence" + naceCode: "64921" + turnoverPenultimate: 850000 + taxBasePenultimate: 650000 + ico: "61498670" + currency: "CZK - Česká republika" # IncomeCurrency + startDate: "1.12.2000" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo + - type: "third" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + businessIncomes: + turnoverLatest: 800000 + taxBaseLatest: 300000 + paidTax: 80000 + costAccounting: "Daňová evidence" + naceCode: "64921" + turnoverPenultimate: 850000 + taxBasePenultimate: 650000 + ico: "61498670" + currency: "CZK - Česká republika" # IncomeCurrency + startDate: "1.12.2000" + otherIncomes: + - type: "parental-contribution" # OtherIncomeType + amount: "2500" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Bratr/Sestra" # ClientRelationType + household: "2" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "VARIABILNÍ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 1 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/threeTranchesContractData b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/threeTranchesContractData new file mode 100644 index 0000000..8f10694 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/threeTranchesContractData @@ -0,0 +1,108 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "47114983" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + - type: "Splátka jin. hyp. úvěru" # ExpenditureType + amount: "4000" + correction: "refinancování úvěru" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1500000 +mortgageLoanMaturity: 25 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "VARIABILNÍ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "800000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType + - amount: "400000" + type: "90" # LoanPurposeType + tranche: "2" + paymentType: "5" # PaymentType + - amount: "300000" + type: "83" # LoanPurposeType + tranche: "3" + paymentType: "1" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "05 a) i) Platná kupní smlouva" + tranches: + - "1" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "2" + - condition: "08 a) Aktualizace hodnoty Zástavy" + tranches: + - "2" + - "3" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - "3" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoClientsCardif1ContractData b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoClientsCardif1ContractData new file mode 100644 index 0000000..5befd94 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoClientsCardif1ContractData @@ -0,0 +1,130 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "00685976" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + otherIncomes: + - type: "parental-contribution" # OtherIncomeType + amount: "2500" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + - type: "intl-driver-diets" # OtherIncomeType + amount: "2000" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + employeeIncomes: + - grossSalary: 50000 + netSalary: 45000 + ico: "00685976" + startDate: "1.2.2001" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "VARIABILNÍ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoClientsCardif2ContractData b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoClientsCardif2ContractData new file mode 100644 index 0000000..576cf05 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoClientsCardif2ContractData @@ -0,0 +1,130 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "00685976" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + otherIncomes: + - type: "parental-contribution" # OtherIncomeType + amount: "2500" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + - type: "intl-driver-diets" # OtherIncomeType + amount: "2000" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1-1" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + employeeIncomes: + - grossSalary: 50000 + netSalary: 45000 + ico: "00685976" + startDate: "1.2.2001" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "1-1" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "VARIABILNÍ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoClientsContractData b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoClientsContractData new file mode 100644 index 0000000..db84006 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoClientsContractData @@ -0,0 +1,129 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "00685976" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + otherIncomes: + - type: "parental-contribution" # OtherIncomeType + amount: "2500" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + - type: "intl-driver-diets" # OtherIncomeType + amount: "2000" + currency: "CZK - Česká republika" # IncomeCurrency + paidToMmb: "yes" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo + - type: "second" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "Pronajatý byt" # LivingType + businessIncomes: + turnoverLatest: 800000 + taxBaseLatest: 300000 + paidTax: 80000 + costAccounting: "Daňová evidence" + naceCode: "64921" + turnoverPenultimate: 850000 + taxBasePenultimate: 650000 + ico: "61498670" + currency: "CZK - Česká republika" # IncomeCurrency + startDate: "1.12.2000" + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "6000" + correction: "---" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + clientRelation: "Syn/dcera" # ClientRelationType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1000000 +mortgageLoanMaturity: 20 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "VARIABILNÍ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 2 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1000000" + type: "1" # LoanPurposeType + tranche: "1" + paymentType: "2" # PaymentType +drawingConditions: + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "1" + - condition: "ZS 02 D) Výpis z katastru nemovitostí se zápisem budovy do katastru nemovitostí" + tranches: + - "1" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoTranchesContractData b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoTranchesContractData new file mode 100644 index 0000000..81aaca5 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/hyposContract/variableMortgage/twoTranchesContractData @@ -0,0 +1,97 @@ +clients: + - type: "first" + placeOfBirth: "Praha" + nationality: "Česká republika" # ClientNationality + residencyAddress: + street: "Pražská" + descriptiveNumber: "4" + orientationNumber: "" + city: "Kolín" + zip: "28002" + country: "CZ" + stayType: "Trvalý s RČ" # StayType + livingType: "U rodičů" # LivingType + employeeIncomes: + - grossSalary: 90000 + netSalary: 80000 + ico: "27082440" + startDate: "1.1.2000" + type: "Na dobu neurčitou" # MainIncomeType + profession: "it programátor/software developer" + phone: "420777666777" + currency: "CZK - Česká republika" # IncomeCurrency + expenditures: + - type: "Jiné nezbytné náklady na klienta" # ExpenditureType + amount: "2000" + correction: "---" # CorrectionType + - type: "Splátka jin. hyp. úvěru" # ExpenditureType + amount: "4000" + correction: "refinancování úvěru" # CorrectionType + firstIdentityType: "Občanský průkaz ČR" # IdentityType + secondIdentityType: "Pas" # IdentityType + cardifType: "x" # CardifType + household: "1" + employee: false + pep: 0 # YesNo +realty: + searchByRealtyType: "byt" # RealtySearchType + registerArea: "Brno" + autosuggestionText: "Město Brno" + descriptiveNumber: "1234" + flatNumber: "1" + realtyType: "Byt v osobním vlastnictví" # RealtyType + realtyPrice: 3000000 + contractRelation: "Zajištění = objekt úvěru" # ContranctRelation + collateralType: "Jednotka" # CollateralType + pledgeType: "Nemovitosti - bydlení" # PledgeType + appraiserCompany: "MONETA - supervize" # AppraiserCompany + realtyPriceCurrent: 3500000 +mortgageLoanAmount: 1500000 +mortgageLoanMaturity: 25 +mortgageOwnResources: 0 +mortgageOtherResources: 0 +loanProduct: "VARIABILNÍ HYPOTÉKA" # HyposProduct +loanAction: "--" # HyposAction +loanObjectType: "Byt" # LoanObjectType +purchaseReason: "Vlastní bydlení" # PurchaseReason +householdIncome: + - type: "first" + withIncome: 1 + withoutIncome: 0 + - type: "second" + withIncome: 0 + withoutIncome: 0 +loanPurposes: + - amount: "1100000" + type: "90" # LoanPurposeType + tranche: "1" + paymentType: "5" # PaymentType + - amount: "400000" + type: "83" # LoanPurposeType + tranche: "2" + paymentType: "1" # PaymentType +drawingConditions: + - condition: "ZS 01 A) Návrh na vklad vlastnického práva" + tranches: + - "1" + - condition: "12 a) Prohlášení věřitele o aktuální výši pohledávky (refinancování - banky/stavební spořitelny)" + tranches: + - "1" + - condition: "01 c) Podání návrhu na vklad zástavního práva na katastr nemovitostí" + tranches: + - "1" + - condition: "03 a) i) Pojistná smlouva k Zástavě" + tranches: + - "1" + - condition: "10 a) Žádost o čerpání na Běžný účet Klienta" + tranches: + - "1" + - "2" + - condition: "ZS 01 S) Souhlas věřitele se zřízením zástavního práva" + tranches: + - "2" + - condition: "N) Závazek klienta nezhoršovat postavení vlastníka práva stavby, nebo zástavního věřitele" + - condition: "Z a) Zapsané zástavní právo Monety první v pořadí" + - condition: "07 a) Úhrada vlastních finančních prostředků" + tranches: + - "1" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/realtyDetails b/tests/src/main/resources/yamls/hypos/realtyDetails new file mode 100644 index 0000000..a07fcfc --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/realtyDetails @@ -0,0 +1,17 @@ +realtyCategories: + - realtyCategory: "byt" + propertyArea: "Holešovice" + documentNumber: "14813" + finalType: "Jednotka" + pledgeType: "Nemovitosti - bydlení" + pledgeCode: "36 - Bytová jednotka (evidovaná samostatně v KN) s podílem na pozemku" + orientationNumber: "731/1" + tdPosition: "7" + - realtyCategory: "budova" + propertyArea: "Stodůlky" + documentNumber: "27722" + finalType: "Budova" + pledgeType: "Nemovitosti - bydlení" + pledgeCode: "33 - Rodinný dům s pozemkem" + orientationNumber: "731/1" + tdPosition: "7" \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/valuations/flatValuations b/tests/src/main/resources/yamls/hypos/valuations/flatValuations new file mode 100644 index 0000000..947ea02 --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/valuations/flatValuations @@ -0,0 +1,52 @@ +addressStreet: "Taussigova" +addressNumber: "1154" +addressTown: "Praha" +addressPostCode: "73501" +finalType: "Jednotka" +type: "Bytová jednotka" +valuationDetails: + - valuation: "Verifikace" + purpose: "koupě" + price: 1500000 + disposition: "1+kk" + placing: "Přízemí" + area: 35 + areaOther: 5 + state: "Bez rekonstrukce" + outsideParking: 0 + insideParking: 0 + garage: 0 + houseType: "Novostavba" + houseYear: "2010" + houseStatus: "Bez rekonstrukce" + houseFloors: 5 + - valuation: "Desktop" + purpose: "koupě" + price: 1500000 + disposition: "1+kk" + placing: "Sklep" + area: 35 + areaOther: 5 + state: "Bez rekonstrukce" + outsideParking: 0 + insideParking: 0 + garage: 0 + houseType: "Novostavba" + houseYear: "2010" + houseStatus: "Bez rekonstrukce" + houseFloors: 5 + - valuation: "Full" + purpose: "koupě" + price: 20000000 + disposition: "3+kk" + placing: "Sklep" + area: 400 + areaOther: 5 + state: "Bez rekonstrukce" + outsideParking: 0 + insideParking: 0 + garage: 0 + houseType: "Novostavba" + houseYear: "2000" + houseStatus: "Bez rekonstrukce" + houseFloors: 5 \ No newline at end of file diff --git a/tests/src/main/resources/yamls/hypos/valuations/houseValuations b/tests/src/main/resources/yamls/hypos/valuations/houseValuations new file mode 100644 index 0000000..db2704e --- /dev/null +++ b/tests/src/main/resources/yamls/hypos/valuations/houseValuations @@ -0,0 +1,23 @@ +addressStreet: "Taussigova" +addressNumber: "1154" +addressTown: "Praha" +addressPostCode: "73501" +finalType: "Budova" +type: "Rodinný dům" +valuationDetails: + - valuation: "Desktop" + purpose: "koupě" + price: 1500000 + year: 2010 + material: "Zděný" + area: 100 + areaOther: 500 + state: "Výborný" + - valuation: "Full" + purpose: "koupě" + price: 1500000 + year: 2000 + material: "Zděný" + area: 100 + areaOther: 500 + state: "Výborný" \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/dataprepare/CustomerDataPrepare.java b/tests/src/test/java/cz/moneta/dataprepare/CustomerDataPrepare.java new file mode 100644 index 0000000..2118b43 --- /dev/null +++ b/tests/src/test/java/cz/moneta/dataprepare/CustomerDataPrepare.java @@ -0,0 +1,54 @@ +package cz.moneta.dataprepare; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; + +public class CustomerDataPrepare { + + private static final Logger logger = LogManager.getLogger(CustomerDataPrepare.class); + + protected Credentials credentials; + protected String newCustomerCif; + protected NonClient nonClient; + + /** + * This method create client before each executed test (if use this as a parent class). Client is created via MWFs. + *

+ * If you want to use custom cif its necessary to define it in config file. Identifier for config: "cif". + *

+ *

+ * For more info see: {@link cz.moneta.test.dsl.util.task.dataprepare.DataPrepareTasks} + *

+ * + * @param harness - Harness store accessor + * @param banker - UFO Banka banker credentials + */ + @BeforeEach + public void createClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + credentials = banker; + + if ((newCustomerCif = harness.getConfig("cif")) != null) { + logger.info("The cif found in the configuration is used: " + newCustomerCif); + return; + } + + nonClient = harness.data().newNonClient() + .withMobileNumber("725559544"); + + newCustomerCif = harness.dataPrepare() + .createNewFoCustomerViaWso2AndGetCif(nonClient, banker.getUsername()); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/brokersportal/FullApplicationPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/brokersportal/FullApplicationPrepare.java new file mode 100644 index 0000000..bc8a900 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/brokersportal/FullApplicationPrepare.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dataprepare.ml.brokersportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.brokerPortal; + +@TestScenario(name = "Prepare data for valuation testing") +public class FullApplicationPrepare { + + @TestCase(name = "Create new contract until full application") + public void newContractValuation(Harness harness, @Key(brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.menuTasks().selectProductMortgage()) + .then(tasks.calculatorTasks().fillCalculator("1000001")) + .then(tasks.calculatorTasks().calculateAndSaveCalculator()) + .clickToShortApplicationButton() + .then(tasks.shortApplicationTasks().fillAndConfirmShortApplication()) + .then(tasks.shortApplicationTasks().checkShortApplicationSummary()) + .clickCreateApplicationButton() + .then(tasks.shortApplicationTasks().signShortApplication()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/brokersportal/ShortApplicationSignPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/brokersportal/ShortApplicationSignPrepare.java new file mode 100644 index 0000000..70aa4ac --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/brokersportal/ShortApplicationSignPrepare.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dataprepare.ml.brokersportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.brokerPortal; + +@TestScenario(name = "Prepare data for valuation testing") +public class ShortApplicationSignPrepare { + + @TestCase(name = "Create new contract until short application sign") + public void newContractValuation(Harness harness, @Key(brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.menuTasks().selectProductMortgage()) + .then(tasks.calculatorTasks().fillCalculator("1000001")) + .then(tasks.calculatorTasks().calculateAndSaveCalculator()) + .clickToShortApplicationButton() + .then(tasks.shortApplicationTasks().fillAndConfirmShortApplication()) + .then(tasks.shortApplicationTasks().checkShortApplicationSummary()) + .clickCreateApplicationButton(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/brokersportal/ValuationPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/brokersportal/ValuationPrepare.java new file mode 100644 index 0000000..15dc911 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/brokersportal/ValuationPrepare.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dataprepare.ml.brokersportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.brokerPortal; + +@TestScenario(name = "Prepare data for valuation testing") +public class ValuationPrepare { + + @TestCase(name = "Create new contract until valuation") + public void newContractValuation(Harness harness, @Key(brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.menuTasks().selectProductMortgage()) + .then(tasks.calculatorTasks().fillCalculator("1000001")) + .then(tasks.calculatorTasks().calculateAndSaveCalculator()) + .clickToShortApplicationButton() + .then(tasks.shortApplicationTasks().fillAndConfirmShortApplication()) + .then(tasks.shortApplicationTasks().checkShortApplicationSummary()) + .clickCreateApplicationButton() + .then(tasks.shortApplicationTasks().signShortApplication()) + .clickToFullApplication() + .then(tasks.fullApplicationTasks().fillAndSaveFullApplication()) + .then(tasks.fullApplicationTasks().signFullApplication()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ApprovalPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ApprovalPrepare.java new file mode 100644 index 0000000..bbb4009 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ApprovalPrepare.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.contractPrepare.data.ContractDataPrepare; +import cz.moneta.test.dsl.hypos.contractPrepare.process.ContractProcessPrepare; +import cz.moneta.test.dsl.hypos.enums.*; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Create new contract until approval") +public class ApprovalPrepare { + + @TestCase(name = "Create new contract until approval with job param", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void tcCreateContractUntilApproval(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData(harness.getSystemOrConfigValue("yamlData"), harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Ověřování")) + .then(tasks.contractTasks().setEventsFlagsUw1()) + .then(tasks.hypokalkulackaTasks().createNewHypokalkulackaVersion(hyposContract)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ChecklistAtomPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ChecklistAtomPrepare.java new file mode 100644 index 0000000..951e9d5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ChecklistAtomPrepare.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.HyposProfile; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.dsl.hypos.enums.Client.*; + +@TestScenario(name = "Process checklist") +public class ChecklistAtomPrepare { + + @TestCase(name = "Process checklist", environments = {Environment.TST1, Environment.PPE}) + public void tcChecklistAtom(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + String contractId = harness.getSystemOrConfigValue("yamlData"); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.contractTasks().setChecklistClient(FIRST_CLIENT)) + .then(tasks.contractTasks().setChecklistClient(SECOND_CLIENT)) + .then(tasks.contractTasks().setChecklistClient(THIRD_CLIENT)) + .then(tasks.contractTasks().setChecklistClient(FOURTH_CLIENT)) + .then(tasks.contractTasks().setChecklistLoan()) + .then(tasks.contractTasks().setChecklistAllocatedCollateral()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ContractPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ContractPrepare.java new file mode 100644 index 0000000..0ff10e1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ContractPrepare.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.contractPrepare.data.ContractDataPrepare; +import cz.moneta.test.dsl.hypos.contractPrepare.process.ContractProcessPrepare; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "Create new contract") +public class ContractPrepare { + + @TestCase(name = "Create and draw new contract with job param", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void tcCreateAndDrawContract(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData(harness.getSystemOrConfigValue("yamlData"), harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/CreateBuAtomPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/CreateBuAtomPrepare.java new file mode 100644 index 0000000..e58f539 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/CreateBuAtomPrepare.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.tasks.HyposDbTasks; +import cz.moneta.test.dsl.util.data.account.AccountDetail; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.Map; + +@TestScenario(name = "Create current account") +public class CreateBuAtomPrepare { + @TestCase(name = "Create current account", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void createCaToHyposClient(Harness harness) { + Map personDetails = new HyposDbTasks(harness).getClientDetailsByPin(harness.getSystemOrConfigValue("yamlData")); + + String clientCurrentAccount = harness.tasks().wso2().client().createAccountAndGetAccountNumber( + personDetails.get("CIF"), + personDetails.get("FULL_NAME"), + new AccountDetail("1201004", "413"), + "GEBTHRZ"); + harness.log("Number of the newly created current account is: " + clientCurrentAccount); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/CreateIbAtomPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/CreateIbAtomPrepare.java new file mode 100644 index 0000000..04a6c2b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/CreateIbAtomPrepare.java @@ -0,0 +1,64 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.tasks.HyposDbTasks; +import cz.moneta.test.dsl.util.data.account.AccountDetail; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.Map; + +@TestScenario(name = "Create current account and Internet Bank login") +public class CreateIbAtomPrepare { + + @TestCase(name = "Create current account and Internet Bank login", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void createCaAndIbToHyposClient(Harness harness) { + Map personDetails = new HyposDbTasks(harness).getClientDetailsByPin(harness.getSystemOrConfigValue("yamlData")); + + harness.log("1/8 Started checking whether a current account exists (MWFEQ5)"); + String clientCurrentAccount = harness.tasks().hypos().hyposWso2Tasks().getCurrentAccountNumberIfExists(personDetails.get("CIF")); + if (clientCurrentAccount == null) { + harness.log("2/8 No current account exists yet. It will be created (CRT_ACCOUNT_ICB)"); + clientCurrentAccount = harness.tasks().wso2().client().createAccountAndGetAccountNumber( + personDetails.get("CIF"), + personDetails.get("FULL_NAME"), + new AccountDetail("1201004", "413"), + "GEBTHRZ"); + } else { + harness.log("2/8 New current account was NOT created."); + } + + harness.log("3/8 Started checking whether the client already exists in UDEBS (CHK_CLIENT_UDEBS_EXISTENCE)"); + boolean existClientInUdebs = harness.tasks().wso2().ib().existClientInUdebs(personDetails.get("CIF")); + if (!existClientInUdebs) { + harness.log("4/8 Client does not exist in UDEBS, will be created (MWFA02)"); + harness.tasks().hypos().hyposWso2Tasks().createClientInUdebs( + personDetails.get("CIF"), + personDetails.get("FIRST_NAME"), + clientCurrentAccount, + personDetails.get("LAST_NAME"), + personDetails.get("PIN"), + personDetails.get("FULL_NAME")); + } else { + harness.log("4/8 Client already exists in UDEBS - MWFA02 was not called."); + } + + harness.log("5/8 Started creating IB (CRT_IB_ACCT)"); + harness.tasks().wso2().ib().createIb( + harness.data().newNonClient().withMobileNumber("777888999"), + personDetails.get("CIF")); + + harness.log("6/8 Started to acquire login name to IB (GET_EM_IB_LOGINNAME)"); + String clientIbLogin = harness.tasks().wso2().ib().getInternetBankLoginName(personDetails.get("CIF")); + + harness.log("7/8 Started reseting password to IB (password/get-detail)"); + harness.tasks().wso2().idm().resetIbUserPasswordByUsername(clientIbLogin); + + harness.log("8/8 Started inserting IB login credentials into contract's notifications (crt_pr_sdeleni)"); + harness.tasks().hypos().hyposWso2Tasks().insertInternetBankLoginToCommunication( + personDetails.get("CTR_CODE"), + personDetails.get("PIN"), + clientIbLogin); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/DrawPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/DrawPrepare.java new file mode 100644 index 0000000..200d324 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/DrawPrepare.java @@ -0,0 +1,40 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.contractPrepare.data.ContractDataPrepare; +import cz.moneta.test.dsl.hypos.contractPrepare.process.ContractProcessPrepare; +import cz.moneta.test.dsl.hypos.enums.*; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "Create new contract until draw") +public class DrawPrepare { + + @TestCase(name = "Create new contract until draw with job param", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void tcCreateContractUntilDraw(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + HyposTasks tasks = harness.tasks().hypos(); + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData(harness.getSystemOrConfigValue("yamlData"), harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Úvěr podepsán")) + .then(tasks.contractTasks().setLandAreaRegistrationDates()) + .then(tasks.contractTasks().setClientCurrentAccount(hyposContract.getCurrentAccountNumber())) + .then(tasks.contractTasks().approveDrawingConditions()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/LoanAccountPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/LoanAccountPrepare.java new file mode 100644 index 0000000..6e16d46 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/LoanAccountPrepare.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.contractPrepare.data.ContractDataPrepare; +import cz.moneta.test.dsl.hypos.contractPrepare.process.ContractProcessPrepare; +import cz.moneta.test.dsl.hypos.enums.HyposProfile; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Create new contract until loan account opening") +public class LoanAccountPrepare { + + @TestCase(name = "Create new contract until loan account opening with job param", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void tcCreateContractUntilLoanAccountOpening(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData(harness.getSystemOrConfigValue("yamlData"), harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Úvěr schválen")) + .then(tasks.contractTasks().setEventsFlagsUw2()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/PrescoringPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/PrescoringPrepare.java new file mode 100644 index 0000000..e5cd088 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/PrescoringPrepare.java @@ -0,0 +1,31 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.contractPrepare.data.ContractDataPrepare; +import cz.moneta.test.dsl.hypos.contractPrepare.process.ContractProcessPrepare; +import cz.moneta.test.dsl.hypos.enums.*; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Create new contract until prescoring") +public class PrescoringPrepare { + + @TestCase(name = "Create new contract until prescoring with job param", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void tcCreateContractUntilPrescoring(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData(harness.getSystemOrConfigValue("yamlData"), harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .switchToHypokom() + .then(tasks.hypokomTasks().searchClientByContractId(hyposContract.getContractId())) + .then(tasks.hypokomTasks().setClientAppointmentDate()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ScoringPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ScoringPrepare.java new file mode 100644 index 0000000..1297aa3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ScoringPrepare.java @@ -0,0 +1,36 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.contractPrepare.data.ContractDataPrepare; +import cz.moneta.test.dsl.hypos.contractPrepare.process.ContractProcessPrepare; +import cz.moneta.test.dsl.hypos.enums.*; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + + +@TestScenario(name = "Create new contract until scoring") +public class ScoringPrepare { + + @TestCase(name = "Create new contract until scoring with job param", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void tcCreateContractUntilScoring(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData(harness.getSystemOrConfigValue("yamlData"), harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Obchod založen - kontrola OK")) + .then(tasks.contractTasks().setNoCifForClient(hyposContract)) + .then(tasks.contractTasks().setLoanAndDrawingConditions(hyposContract)) + .then(tasks.contractTasks().setNewRealtyAndSupervision(hyposContract)) + .then(tasks.contractTasks().importChecklistUwDocument()); + contractProcessPrepare.fillDetailIncomeInHypokalkulacka(hyposContract); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/SignPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/SignPrepare.java new file mode 100644 index 0000000..ef01fc1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/SignPrepare.java @@ -0,0 +1,41 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.contractPrepare.data.ContractDataPrepare; +import cz.moneta.test.dsl.hypos.contractPrepare.process.ContractProcessPrepare; +import cz.moneta.test.dsl.hypos.enums.*; +import cz.moneta.test.dsl.hypos.pages.contract.ContractHistoryPage; +import cz.moneta.test.dsl.hypos.tasks.HyposDbTasks; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "Create new contract until sign") +public class SignPrepare { + + @TestCase(name = "Create new contract until sign with job param", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void tcCreateContractUntilSign(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData(harness.getSystemOrConfigValue("yamlData"), harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + ContractHistoryPage hyposHomepage = harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Úvěr schválen")) + .then(tasks.contractTasks().setEventsFlagsUw2()); + + Assertions.assertEquals(true, new HyposDbTasks(harness).loanAccountOpeningFinished(hyposContract.getContractId()), "Loan account was not opened in 420 seconds interval."); + + hyposHomepage + .then(tasks.contractTasks().generateLoanContractDocuments()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ValuationBuildingAtomPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ValuationBuildingAtomPrepare.java new file mode 100644 index 0000000..d6c6930 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ValuationBuildingAtomPrepare.java @@ -0,0 +1,89 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.HyposProfile; +import cz.moneta.test.dsl.hypos.pages.cadaster.CadasterRedocDetailPage; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.Builders; +import cz.moneta.test.harness.support.web.Lookup; + +import static cz.moneta.test.dsl.hypos.pages.cadaster.CadasterRedocDetailPage.BUILDING_DETAIL; +import static cz.moneta.test.dsl.hypos.pages.cadaster.CadasterRedocDetailPage.LAND_DETAIL; + +@TestScenario(name = "Process valuation") +public class ValuationBuildingAtomPrepare { + + @TestCase(name = "Process valuation with job param - building", environments = {Environment.TST1, Environment.PPE}) + public void tcValuationBuildingAtom(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + //yamlData format "contractId lvId lvCode lvBuildingNumber lvLandNumber" + String contractId = harness.getSystemOrConfigValue("yamlData").split(" ")[0]; + String lvId = harness.getSystemOrConfigValue("yamlData").split(" ")[1]; + String lvCode = harness.getSystemOrConfigValue("yamlData").split(" ")[2]; + String lvBuildingNumber = harness.getSystemOrConfigValue("yamlData").split(" ")[3]; + String lvLandNumber = harness.getSystemOrConfigValue("yamlData").split(" ")[4]; + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .switchToRealtyPage() + .then(tasks.valuationTasks().searchCadasterRedocDetail(lvCode,lvId)); + + HyposEndpoint endpoint = harness.getEndpoint(HyposEndpoint.class); + if (endpoint.isElementVisible(5, String.format(BUILDING_DETAIL, lvBuildingNumber), Lookup.XPATH)) { + Builders.newWebFlowBuilder(CadasterRedocDetailPage.class, endpoint, harness) + .clickBuildingDetail(lvBuildingNumber) + .removeUnit(lvBuildingNumber); + } + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .switchToRealtyPage() + .then(tasks.valuationTasks().searchCadasterRedocDetail(lvCode,lvId)); + + if (endpoint.isElementVisible(5, String.format(LAND_DETAIL, lvLandNumber), Lookup.XPATH)) { + Builders.newWebFlowBuilder(CadasterRedocDetailPage.class, endpoint, harness) + .clickLandDetail(lvLandNumber) + .removeUnit(lvLandNumber); + } + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.valuationTasks().createNewBuildingUnit(lvCode,lvBuildingNumber)); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.valuationTasks().addLandToUnit(lvId, lvCode, lvBuildingNumber, lvLandNumber)); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(contractId)) + .clickRealty() + .clickRealtyDetail(lvBuildingNumber) + .clickOnOrderValuation() + .then(tasks.valuationTasks().doHouseMarketValuation()); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.SUPERVISOR)) + .then(tasks.searchAndOpenContract(contractId)) + .clickRealty() + .clickRealtyDetail(lvBuildingNumber) + .openFirstOrder() + .then(tasks.valuationTasks().finishBuildingOrder()) + .clickRealty() + .clickRealtyDetail(lvBuildingNumber) + .clickOnOrderSupervision() + .clickSubmitButton(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ValuationFlatAtomPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ValuationFlatAtomPrepare.java new file mode 100644 index 0000000..98d943a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ml/hypos/ValuationFlatAtomPrepare.java @@ -0,0 +1,69 @@ +package cz.moneta.test.dataprepare.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.HyposProfile; +import cz.moneta.test.dsl.hypos.pages.cadaster.CadasterRedocDetailPage; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.hypos.HyposEndpoint; +import cz.moneta.test.harness.support.web.Builders; +import cz.moneta.test.harness.support.web.Lookup; + +import static cz.moneta.test.dsl.hypos.pages.cadaster.CadasterRedocDetailPage.FLAT_UNIT_DETAIL; + +@TestScenario(name = "Process valuation") +public class ValuationFlatAtomPrepare { + + @TestCase(name = "Process valuation with job param - flat", environments = {Environment.TST1, Environment.PPE}) + public void tcValuationFlatAtom(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + //yamlData format "contractId lvId lvCode lvFlatNumber" + String contractId = harness.getSystemOrConfigValue("yamlData").split(" ")[0]; + String lvId = harness.getSystemOrConfigValue("yamlData").split(" ")[1]; + String lvCode = harness.getSystemOrConfigValue("yamlData").split(" ")[2]; + String lvFlatNumber = harness.getSystemOrConfigValue("yamlData").split(" ")[3]; + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .switchToRealtyPage() + .then(tasks.valuationTasks().searchCadasterRedocDetail(lvCode,lvId)); + + HyposEndpoint endpoint = harness.getEndpoint(HyposEndpoint.class); + if (endpoint.isElementVisible(5, String.format(FLAT_UNIT_DETAIL, lvFlatNumber), Lookup.XPATH)) { + Builders.newWebFlowBuilder(CadasterRedocDetailPage.class, endpoint, harness) + .clickFlatUnitDetail(lvFlatNumber) + .removeUnit(lvFlatNumber); + } + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.valuationTasks().createNewFlatUnit(lvCode,lvFlatNumber)); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(contractId)) + .clickRealty() + .clickRealtyDetail(lvFlatNumber) + .clickOnOrderValuation() + .then(tasks.valuationTasks().doFlatMarketValuation()); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.SUPERVISOR)) + .then(tasks.searchAndOpenContract(contractId)) + .clickRealty() + .clickRealtyDetail(lvFlatNumber) + .openFirstOrder() + .then(tasks.valuationTasks().finishFlatOrder()) + .clickRealty() + .clickRealtyDetail(lvFlatNumber) + .clickOnOrderSupervision() + .clickSubmitButton(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/retail/Exists.java b/tests/src/test/java/cz/moneta/test/dataprepare/retail/Exists.java new file mode 100644 index 0000000..929aa6c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/retail/Exists.java @@ -0,0 +1,89 @@ +package cz.moneta.test.dataprepare.retail; + +import cz.moneta.test.dataprepare.risk.DefaultClientPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.szrmock.SzrMockData; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.dsl.util.task.retail.loans.constants.DefaultLoansConstants.*; +import static cz.moneta.test.harness.support.auth.AuthSupport.getCredentials; + +@TestScenario(name = "Creating client via WSO2.") +public class Exists extends DefaultClientPrepare { + + static String ufoUserName; + + @BeforeAll + public void init(Harness harness) { + ufoUserName = getCredentials(banker, harness).getUsername(); + } + + @TestCase(name = "Cif Only") + public void newClientCif(Harness harness) { + NonClient nonClient = createNonClient(harness); + String cif = harness.dataPrepare().createNewFoCustomerViaWso2AndGetCif(nonClient, ufoUserName); + logClientData(harness, nonClient, cif); + } + + @TestCase(name = "Client Cif,BU") + public void newClientBU(Harness harness) { + NonClient nonClient = createNonClient(harness); + NewClientWithCurrentAccountInformation info = harness.dataPrepare().createCifWithCurrentAccountApiSequence(ufoUserName, nonClient); + logClientData(harness, nonClient, info.getCif()); + } + + @TestCase(name = "Client Cif,BU,IB") + public void newClientADC(Harness harness) { + NonClient nonClient = createNonClient(harness); + NewClientWithCurrentAccountInformation info = harness.dataPrepare().createNewFoCustomerWithCurrentAccountAndIbViaWso2(nonClient, ufoUserName); + logClientData(harness, nonClient, info.getCif()); + harness.log(String.format("IB username: %s",info.getCredentials().getUsername())); + harness.log(String.format("IB password: %s",info.getCredentials().getPassword())); + } + @TestCase(name = "Client Cif,BU,IB") + public void newClientADCWithSZR(Harness harness) { + NonClient nonClient = createNonClient(harness); + NewClientWithCurrentAccountInformation info = harness.dataPrepare().createNewFoCustomerWithCurrentAccountAndIbViaWso2(nonClient, ufoUserName); + SzrMockData szrData = SzrMockData.builder() + .client(nonClient) + .cif(info.getCif()) + .build(); + harness.tasks().szrMock().idAndPassE2E(szrData); + logClientData(harness, nonClient, info.getCif()); + harness.log(String.format("IB username: %s",info.getCredentials().getUsername())); + harness.log(String.format("IB password: %s",info.getCredentials().getPassword())); + } + + @TestCase(name = "Client Cif,BU,BU,IB") + public void newClientDoubleCurrentAccount(Harness harness) { + NonClient nonClient = createNonClient(harness); + NewClientWithCurrentAccountInformation info = harness.dataPrepare().createNewFoCustomerWithCurrentAccountAndIbViaWso2(nonClient, ufoUserName); + logClientData(harness, nonClient, info.getCif()); + harness.log(String.format("IB username: %s",info.getCredentials().getUsername())); + harness.log(String.format("IB password: %s",info.getCredentials().getPassword())); + } + + private NonClient createNonClient(Harness harness) { + return harness.data().newNonClient() + .withIdCard(DEFAULT_ID_CARD) + .withBirthNumber(harness.tasks().common().getRcMinMaxAge(20, 50)) + .withResidencyAddress(DEFAULT_CLIENT_ADDRESS) + .withEmail(DEFAULT_EMAIL) + .withFixPhoneNumberWork("603235689") + .withFixPhoneNumberHome("603235689") + .withMobileNumber("603235689") + .withNetMonthlyIncome(DEFAULT_INCOME) + .withHomeIncome(DEFAULT_INCOME); + } + + private void logClientData(Harness harness, NonClient nonClient, String cif) { + harness.log(String.format("Name and Surname: %s %s", nonClient.firstName(), nonClient.lastName())); + harness.log(String.format("Birth Number: %s", nonClient.birthNumber())); + harness.log(String.format("Cif: %s", cif)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/retail/PrepareClientForLoansCycle.java b/tests/src/test/java/cz/moneta/test/dataprepare/retail/PrepareClientForLoansCycle.java new file mode 100644 index 0000000..885dc82 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/retail/PrepareClientForLoansCycle.java @@ -0,0 +1,53 @@ +package cz.moneta.test.dataprepare.retail; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.expres.ExpresLoanDataPreparationTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.RepeatedTest; + +import java.io.FileWriter; +import java.io.IOException; + +@TestScenario(name = "Klienti pro sjednání půjčky") +public class PrepareClientForLoansCycle { + + private ExpresLoanDataPreparationTasks loanPrep; + + @BeforeAll + public void init(Harness harness) { + loanPrep = new ExpresLoanDataPreparationTasks(harness); + } + + @RepeatedTest(value = 10, name = "Vytvoření FO klienty pro sjednání půjčky") + public void testPrepareClientsForLoans(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) throws IOException { + + NonClient client = loanPrep.createClientData(); + + String cif = loanPrep.prepareClientForLoans(client); + + Credentials credentials = harness.tasks() + .wso2() + .idm() + .getIbCredentialsByRC(client.birthNumber()); + + String clientId = harness.withUdebs() + .usersTable() + .getClientId(client.birthNumber()); + + harness.log("Client prepared:"); + harness.log(" - CIF: " + cif); + harness.log(" - Client ID: " + clientId); + harness.log(" - Client birth number: " + client.birthNumber()); + harness.log(" - IB username: " + credentials.getUsername()); + + //set your own directory + try (FileWriter writer = new FileWriter("C:\\Users\\543831359\\birthNumbers.txt", true)) { + writer.write(client.birthNumber() + "\n"); + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/retail/PrepareFopClientForLoansCycle.java b/tests/src/test/java/cz/moneta/test/dataprepare/retail/PrepareFopClientForLoansCycle.java new file mode 100644 index 0000000..7de398e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/retail/PrepareFopClientForLoansCycle.java @@ -0,0 +1,51 @@ +package cz.moneta.test.dataprepare.retail; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.expres.ExpresLoanDataPreparationTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.RepeatedTest; + +import java.io.IOException; + +@TestScenario(name = "Klienti pro sjednání půjčky") +public class PrepareFopClientForLoansCycle { + + private ExpresLoanDataPreparationTasks loanPrep; + + @BeforeAll + public void init(Harness harness) { + loanPrep = new ExpresLoanDataPreparationTasks(harness); + } + + @RepeatedTest(value = 1, name = "Vytvoření FOP klienty pro sjednání půjčky") + public void testPrepareClientsForLoans(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) throws IOException { + + NonClient client = loanPrep.createClientData(); + + String cif = loanPrep.prepareFopClientForLoans(client); + + Credentials credentials = harness.tasks() + .wso2() + .idm() + .getIbCredentialsByIco(client.ico()); + + harness.withIlods().setSegment("AS_FAM", "EXIST", null, client.ico()); + harness.withIlods().setSegment("RSK_INFOLIMIT", "INFOLIMIT_CALC", null, client.ico()); + harness.withIlods().setSegment("CUST_INC_VER", "POI_VALID_STRICTLY", null, client.ico()); + + harness.log("Client prepared:"); + harness.log(" - CIF: " + cif); + harness.log(" - Client ico number: " + client.ico()); + harness.log(" - IB username: " + credentials.getUsername()); + + //set your own directory + //try (FileWriter writer = new FileWriter("C:\\Users\\birthNumbers.txt", true)) { + //writer.write(client.birthNumber() + "\n"); + //} + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/retail/loans/BeforeEachExpresLoanTest.java b/tests/src/test/java/cz/moneta/test/dataprepare/retail/loans/BeforeEachExpresLoanTest.java new file mode 100644 index 0000000..5d7eeb0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/retail/loans/BeforeEachExpresLoanTest.java @@ -0,0 +1,19 @@ +package cz.moneta.test.dataprepare.retail.loans; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.LoanData; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import org.junit.jupiter.api.BeforeEach; + +public class BeforeEachExpresLoanTest { + + protected BankaTasks bankaTasks; + protected LoanData data; + + @BeforeEach + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + data = bankaTasks.expresTasks().expressLoanDataPreparationTasks().preBuildLoanData(); + bankaTasks.expresTasks().expressLoanDataPreparationTasks().prepareClient(data.getClient()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultClientPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultClientPrepare.java new file mode 100644 index 0000000..1287331 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultClientPrepare.java @@ -0,0 +1,18 @@ +package cz.moneta.test.dataprepare.risk; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.support.util.Level; +import org.junit.jupiter.api.AfterEach; + +import java.util.ArrayList; +import java.util.List; + +public class DefaultClientPrepare extends DefaultDataPrepare { + protected List clientBirthNumbers = new ArrayList<>(); + protected int clientCount = 1;//todo JBR - make input parameter + + @AfterEach + protected void logBirthNumbers(Harness harness) { + clientBirthNumbers.forEach(rc -> harness.log(Level.INFO, rc)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultCreditCard.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultCreditCard.java new file mode 100644 index 0000000..bbe7507 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultCreditCard.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dataprepare.risk; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO019_S001_CreditCardDetailPage; +import cz.moneta.test.dsl.util.data.ClientUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.support.util.Level; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; + +public class DefaultCreditCard extends DefaultDataPrepare { + protected final String CARD_ACTIVATED = "Aktivovaná karta"; + protected final int LOAN_AMOUNT = 40000; + protected NonClient applicant; + + @BeforeEach + protected void setup(Harness harness) { + super.setup(harness); + applicant = ClientUtils.getRiskDefaultClient(harness); + } + + @AfterEach + protected void checkAndLogData(Harness harness) { + Assertions.assertEquals(CARD_ACTIVATED, harness.get(HPO019_S001_CreditCardDetailPage.PROD_STAT_STORE)); + harness.log(Level.INFO, "Client birthnumber: " + applicant.birthNumber()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultDataPrepare.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultDataPrepare.java new file mode 100644 index 0000000..2f6b91b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultDataPrepare.java @@ -0,0 +1,16 @@ +package cz.moneta.test.dataprepare.risk; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.data.client.NonClient; +import org.junit.jupiter.api.BeforeEach; + +public class DefaultDataPrepare { + protected BankaTasks bankaTasks; + protected NonClient applicant; + + @BeforeEach + protected void setup(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultLoan.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultLoan.java new file mode 100644 index 0000000..d3bd654 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/DefaultLoan.java @@ -0,0 +1,24 @@ +package cz.moneta.test.dataprepare.risk; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.data.ClientUtils; +import cz.moneta.test.harness.support.util.Level; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; + +public class DefaultLoan extends DefaultDataPrepare { + protected int LOAN_AMOUNT = 50000; + protected int TERM = 60; + protected String secondBankerName = "TestJB Harness";//Zatím spouštěno pouze lokálně + + @BeforeEach + protected void setup(Harness harness) { + super.setup(harness); + applicant = ClientUtils.getRiskDefaultClient(harness); + } + + @AfterEach + protected void logData(Harness harness) { + harness.log(Level.INFO, "Client birthnumber: " + applicant.birthNumber()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/NewClients.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/NewClients.java new file mode 100644 index 0000000..c14b89e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/NewClients.java @@ -0,0 +1,30 @@ +package cz.moneta.test.dataprepare.risk; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.util.data.ClientUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Test for Risk Retail - Data preparation - new clients") +public class NewClients extends DefaultClientPrepare { + + @TestCase(name = "New clients") + public void newClients(Harness harness, @Key(banker) Credentials credentials) { + HLO001_S001_ClientSearchPage window = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)); + + for (int i = 0; i < clientCount; i++) { + applicant = ClientUtils.getRiskDefaultClient(harness); + window = window + .then(bankaTasks.newClient().create(applicant, credentials.getUsername())) + .clickSearch(); + clientBirthNumbers.add(applicant.birthNumber()); + } + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/NewClientsIbSba.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/NewClientsIbSba.java new file mode 100644 index 0000000..a481527 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/NewClientsIbSba.java @@ -0,0 +1,33 @@ +package cz.moneta.test.dataprepare.risk; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.data.ClientUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Test for Risk Retail - Data preparation - new clients with IB and SBA") +public class NewClientsIbSba extends DefaultClientPrepare { + + @TestCase(name = "New clients with current account, IBS and SBA") + public void newClientsWithBuIbsSba(Harness harness, @Key(banker) Credentials credentials) { + HLO001_S001_ClientSearchPage window = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)); + + for (int i = 0; i < clientCount; i++) { + applicant = ClientUtils.getRiskDefaultClient(harness); + window = window + .then(bankaTasks.newClient().createWithIdCard(applicant, credentials.getUsername())) + .then(bankaTasks.newProduct().createIBAndCurrentAccount(CurrentAccountsEnum.TOM_PLUS, applicant.mobileNumber())) + .then(bankaTasks.newProduct().createSBA()) + .clickSearch(); + clientBirthNumbers.add(applicant.birthNumber()); + } + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardApplication.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardApplication.java new file mode 100644 index 0000000..58d3470 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardApplication.java @@ -0,0 +1,20 @@ +package cz.moneta.test.dataprepare.risk.creditcard; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Test for Risk Retail - Data preparation - Credit Card application") +public class CreditCardApplication extends DefaultLoan { + + @TestCase + public void newClientWithCreditCardApplication(Harness harness, @Key(banker) Credentials credentials) { + bankaTasks.newClient().openUfoAndCreateClient(harness, credentials, applicant) + .then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplication(applicant, LOAN_AMOUNT)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardCreditAccount.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardCreditAccount.java new file mode 100644 index 0000000..622a0d2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardCreditAccount.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dataprepare.risk.creditcard; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardBrand; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ProductType; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Test for Risk Retail - Data preparation") +public class CreditCardCreditAccount extends DefaultCreditCard { + + @TestCase(name = "New client with Credit Account") + public void newClientWithCreditAccount(Harness harness, @Key(banker) Credentials credentials) { + ProductType productType = ProductType.CREDIT_ACCOUNT; + CardBrand cardBrand = CardBrand.VISA_CLASSIC; + + bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.newProduct().createSBA()) + .then(bankaTasks.cardsOnboarding().creditCards().createAndActivateCreditCard(applicant, LOAN_AMOUNT, productType, cardBrand)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardMcGold.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardMcGold.java new file mode 100644 index 0000000..c86c5b2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardMcGold.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dataprepare.risk.creditcard; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardBrand; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ProductType; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Test for Risk Retail - Data preparation") +public class CreditCardMcGold extends DefaultCreditCard { + + @TestCase(name = "New client with MC GOLD Credit Card") + public void newClientWithMcGold(Harness harness, @Key(banker) Credentials credentials) { + ProductType productType = ProductType.MONEYCARD_GOLD; + CardBrand cardBrand = CardBrand.MC_GOLD; + + bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.newProduct().createSBA()) + .then(bankaTasks.cardsOnboarding().creditCards().createAndActivateCreditCard(applicant, LOAN_AMOUNT, productType, cardBrand)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardMcSmart.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardMcSmart.java new file mode 100644 index 0000000..d5948ea --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/CreditCardMcSmart.java @@ -0,0 +1,25 @@ +package cz.moneta.test.dataprepare.risk.creditcard; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardBrand; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ProductType; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Test for Risk Retail - Data preparation") +public class CreditCardMcSmart extends DefaultCreditCard { + + @TestCase(name = "New client with MC Smart Credit Card") + public void newClientWithMcSmart(Harness harness, @Key(banker) Credentials credentials) { + ProductType productType = ProductType.MONEYCARD_SMART; + CardBrand cardBrand = CardBrand.MC_STANDARD; + + bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.newProduct().createSBA()) + .then(bankaTasks.cardsOnboarding().creditCards().createAndActivateCreditCard(applicant, LOAN_AMOUNT, productType, cardBrand)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/DefaultCreditCard.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/DefaultCreditCard.java new file mode 100644 index 0000000..1753fa7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/creditcard/DefaultCreditCard.java @@ -0,0 +1,7 @@ +package cz.moneta.test.dataprepare.risk.creditcard; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; + +public class DefaultCreditCard extends DefaultLoan { + protected int LOAN_AMOUNT = 40000; +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/expressloan/ExpressLoan.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/expressloan/ExpressLoan.java new file mode 100644 index 0000000..ea41e32 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/expressloan/ExpressLoan.java @@ -0,0 +1,32 @@ +package cz.moneta.test.dataprepare.risk.expressloan; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.OPN008_S001_ExpressSignaturePage; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.secondBanker; + +@TestScenario(name = "Test for Risk Retail - Data preparation - client with Express Loan") +public class ExpressLoan extends DefaultLoan { + + @TestCase + public void newClientWithActiveExpressLoan(Harness harness, @Key(banker) Credentials credentials, @Key(secondBanker) Credentials secondCredentials) { + LOAN_AMOUNT = 10000; + TERM = 18; + + OPN008_S001_ExpressSignaturePage firstBankerWindow = bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.newProduct().createSBA()) + .then(bankaTasks.expresTasks().createNewExpressApplication(applicant, LOAN_AMOUNT, TERM, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.expresTasks().createAccountsForNewExpressUntilSignature(secondBankerName)); + + bankaTasks.newProduct().openUfoAndVerifyApplicationAsSecondBanker(secondCredentials, harness.get(NEP006_S001_ExpressScoringResultPage.APP_ID_STORE)); + firstBankerWindow.then(bankaTasks.expresTasks().finishAccountCreationAfterSecondBankerSignature(HCisAllStavZadosti.LOAN_DRAWN)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/flexicredit/FlexiCredit.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/flexicredit/FlexiCredit.java new file mode 100644 index 0000000..53ac77c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/flexicredit/FlexiCredit.java @@ -0,0 +1,29 @@ +package cz.moneta.test.dataprepare.risk.flexicredit; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.OPN008_S001_ExpressSignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.secondBanker; + +@TestScenario(name = "Test for Risk Retail - Data preparation - client with FlexiCredit") +public class FlexiCredit extends DefaultLoan { + + @TestCase + public void newClientWithActiveFlexiCredit(Harness harness, @Key(banker) Credentials credentials, @Key(secondBanker) Credentials secondCredentials) { + OPN008_S001_ExpressSignaturePage firstBankerWindow = bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.newProduct().createSBA()) + .then(bankaTasks.flexiCreditTasks().createNewFlexiCreditApplication(applicant, LOAN_AMOUNT, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.flexiCreditTasks().createAccountsForNewFlexiCreditWithExistingBuAndIbUntilSignature(LOAN_AMOUNT, secondBankerName)); + + bankaTasks.newProduct().openUfoAndVerifyApplicationAsSecondBanker(secondCredentials, harness.get(NFL006_S001_FlexikreditScoringResultPage.APP_ID_STORE)); + firstBankerWindow.then(bankaTasks.flexiCreditTasks().finishAccountCreation(HCisAllStavZadosti.LOAN_ACCOUNT_OPEN)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/flexicredit/FlexiCreditApplication.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/flexicredit/FlexiCreditApplication.java new file mode 100644 index 0000000..2daabfd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/flexicredit/FlexiCreditApplication.java @@ -0,0 +1,21 @@ +package cz.moneta.test.dataprepare.risk.flexicredit; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Test for Risk Retail - Data preparation - client with FlexiCredit application") +public class FlexiCreditApplication extends DefaultLoan { + + @TestCase + public void newClientWithFlexiCreditApplication(Harness harness, @Key(banker) Credentials credentials) { + bankaTasks.newClient().openUfoAndCreateClient(harness, credentials, applicant) + .then(bankaTasks.flexiCreditTasks().createNewFlexiCreditApplication(applicant, LOAN_AMOUNT, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/flexicredit/FlexiCreditFixedTermEmployment.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/flexicredit/FlexiCreditFixedTermEmployment.java new file mode 100644 index 0000000..a8860a8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/flexicredit/FlexiCreditFixedTermEmployment.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dataprepare.risk.flexicredit; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.OPN008_S001_ExpressSignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.data.client.OccupationStatus; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.secondBanker; + +@TestScenario(name = "Test for Risk Retail - Data preparation - client with FlexiCredit") +public class FlexiCreditFixedTermEmployment extends DefaultLoan { + + //17. BU+FLX(žádat o 50tis)+IBS+SBA - Příjem 20tis, Doba určitá; nejvyšší schválený rámec + @TestCase(name = "FlexiCredit for client with fixed-term employment") + public void flexiCreditFixedTermEmployment(Harness harness, @Key(banker) Credentials credentials, @Key(secondBanker) Credentials secondCredentials) { + + applicant.withOccupationStatus(OccupationStatus.FULL_TIME_EMPLOYEE_FINITE) + .withOccupationEmploymentTillRaw(DateUtils.getRawTodayDateIncrementedByDays(365)) + .withNetMonthlyIncome(20000) + .withHomeIncome(20000); + + OPN008_S001_ExpressSignaturePage firstBankerWindow = bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.newProduct().createSBA()) + .then(bankaTasks.flexiCreditTasks().createNewFlexiCreditApplicationFixedTerm(applicant, 50000, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.flexiCreditTasks().createAccountsForNewFlexiCreditWithExistingBuAndIbUntilSignatureWithoutAmountSelect(secondBankerName));//todo jbr - nejvyssi schvaleny ramec + + bankaTasks.newProduct().openUfoAndVerifyApplicationAsSecondBanker(secondCredentials, harness.get(NFL006_S001_FlexikreditScoringResultPage.APP_ID_STORE)); + firstBankerWindow.then(bankaTasks.flexiCreditTasks().finishAccountCreation(HCisAllStavZadosti.LOAN_ACCOUNT_OPEN)); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/multipleloans/ExpressLoanCreditCard.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/multipleloans/ExpressLoanCreditCard.java new file mode 100644 index 0000000..6413b79 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/multipleloans/ExpressLoanCreditCard.java @@ -0,0 +1,35 @@ +package cz.moneta.test.dataprepare.risk.multipleloans; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ProductType; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.NKK006_S001_CreditCardScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.OPN008_S001_ExpressSignaturePage; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.secondBanker; + +@TestScenario(name = "Test for Risk Retail - Data preparation - client with Expres Loan and Credit Card") +public class ExpressLoanCreditCard extends DefaultLoan { + + @TestCase + public void newClientWithExpressLoanAndCreditCard(Harness harness, @Key(banker) Credentials credentials, @Key(secondBanker) Credentials secondCredentials) { + OPN008_S001_ExpressSignaturePage firstBankerWindow = bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.newProduct().createSBA()) + .then(bankaTasks.expresTasks().createNewExpressApplication(applicant, LOAN_AMOUNT, TERM, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.expresTasks().createAccountsForNewExpressUntilSignature(secondBankerName)); + + bankaTasks.newProduct().openUfoAndVerifyApplicationAsSecondBanker(secondCredentials, harness.get(NEP006_S001_ExpressScoringResultPage.APP_ID_STORE)); + + firstBankerWindow.then(bankaTasks.expresTasks().finishAccountCreationAfterSecondBankerSignature(HCisAllStavZadosti.LOAN_DRAWN)) + .then(bankaTasks.cardsServicing().creditCards().createNewCreditCardApplicationWithPrefilledData(LOAN_AMOUNT, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.cardsServicing().creditCards().createAccountsForNewCreditCardWithExistingIbAndBu(harness.get(NKK006_S001_CreditCardScoringResultPage.APP_ID_STORE), LOAN_AMOUNT)) + .then(bankaTasks.cardsServicing().creditCards().activateCreditCardWithoutSignatureSelect(ProductType.MONEYCARD_SMART.getValue(), "OP", applicant.idCardNumber())); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/risk/multipleloans/ExpressLoanFlexiCredit.java b/tests/src/test/java/cz/moneta/test/dataprepare/risk/multipleloans/ExpressLoanFlexiCredit.java new file mode 100644 index 0000000..73c5050 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/risk/multipleloans/ExpressLoanFlexiCredit.java @@ -0,0 +1,39 @@ +package cz.moneta.test.dataprepare.risk.multipleloans; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.OPN008_S001_ExpressSignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.secondBanker; + +@TestScenario(name = "Test for Risk Retail - Data preparation - client with Expres Loan and FlexiCredit") +public class ExpressLoanFlexiCredit extends DefaultLoan { + + @TestCase + public void newClientWithExpressLoanAndFlexiCredit(Harness harness, @Key(banker) Credentials credentials, @Key(secondBanker) Credentials secondCredentials) { + int flexiCreditLoanAmount = 30000; + + OPN008_S001_ExpressSignaturePage firstBankerWindow = bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.newProduct().createSBA()) + .then(bankaTasks.expresTasks().createNewExpressApplication(applicant, LOAN_AMOUNT, TERM, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.expresTasks().createAccountsForNewExpressUntilSignature(secondBankerName)); + + HLO001_S001_ClientSearchPage secondBankerWindow = bankaTasks.newProduct().openUfoAndVerifyApplicationAsSecondBanker(secondCredentials, harness.get(NEP006_S001_ExpressScoringResultPage.APP_ID_STORE)); + + firstBankerWindow = firstBankerWindow.then(bankaTasks.expresTasks().finishAccountCreationAfterSecondBankerSignature(HCisAllStavZadosti.LOAN_DRAWN)) + .then(bankaTasks.flexiCreditTasks().createNewFlexiCreditApplicationWithPrefilledData(flexiCreditLoanAmount, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.flexiCreditTasks().createAccountsForNewFlexiCreditWithExistingBuAndIbUntilSignature(flexiCreditLoanAmount, secondBankerName)); + + secondBankerWindow.then(bankaTasks.newProduct().verifyApplicationSignature(harness.get(NEP006_S001_ExpressScoringResultPage.APP_ID_STORE))); + + firstBankerWindow.then(bankaTasks.flexiCreditTasks().finishAccountCreation(HCisAllStavZadosti.LOAN_ACCOUNT_OPEN)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ufo/cb/CreateFopAccount.java b/tests/src/test/java/cz/moneta/test/dataprepare/ufo/cb/CreateFopAccount.java new file mode 100644 index 0000000..aa38cdc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ufo/cb/CreateFopAccount.java @@ -0,0 +1,28 @@ +package cz.moneta.test.dataprepare.ufo.cb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.account.AccountDetail; +import cz.moneta.test.dsl.util.task.wso2.ClientTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; + +@TestScenario(name = "Creates account for FOP client.") +public class CreateFopAccount { + + @TestCase(name = "Creates account to given client.", environments = Environment.TST1) + public void createFopAccount(Harness harness) { + String cif = harness.getSystemOrConfigValue("cif"); + String name = harness.getSystemOrConfigValue("name"); + ClientTasks clientTasks = harness.tasks().wso2().client(); + Credentials credentials = AuthSupport.getCredentials(Keys.ufo.banka.banker, harness); + AccountDetail accountDetail = new AccountDetail("1202003", "6"); + + String accountNumber = clientTasks.createAccountAndGetAccountNumber(cif, name, accountDetail, credentials.getUsername()); + harness.log("Created account: " + accountNumber); + + } +} diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ufo/cb/CreateInvestmentProposal.java b/tests/src/test/java/cz/moneta/test/dataprepare/ufo/cb/CreateInvestmentProposal.java new file mode 100644 index 0000000..45285d0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ufo/cb/CreateInvestmentProposal.java @@ -0,0 +1,88 @@ +package cz.moneta.test.dataprepare.ufo.cb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisAllObrazovkySME; +import cz.moneta.test.dsl.ufo.cb.landing.KOM401_S001_ProposalParameters; +import cz.moneta.test.dsl.ufo.cb.landing.proposals.Proposal; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.dsl.util.task.ufo.cb.ProposalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.apache.commons.lang.StringUtils; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "Creates investment proposal.") +public class CreateInvestmentProposal { + private Proposal proposal; + private String text = StringUtils.repeat("TEST. ", 10); + private HCisAllObrazovkySME[] pages = HCisAllObrazovkySME.values(); + + private KOM401_S001_ProposalParameters accessProposal(Harness harness) { + CommercialTasks tasks = harness.tasks().ufo().cb(); + return harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.proposalTasks().proposalSignpost(proposal.getProposalId())); + } + + private void editPages(Harness harness) { + CommercialTasks tasks = harness.tasks().ufo().cb(); + Long proposalId = Long.parseLong(proposal.getProposalId()); + tasks.editPages(proposalId, pages, "1"); + } + + @BeforeAll + public void setUp(Harness harness) { + CommercialTasks tasks = harness.tasks().ufo().cb(); + ProposalTasks proposalTasks = tasks.proposalTasks(); + String ico = harness.getSystemOrConfigValue("ico"); + proposal = new Proposal(); + proposal.setAmount("20000000"); + proposal.setCharacterType("Splátkový"); + proposal.setProposalType("Plný"); + proposal.setLoanType("Investiční (Splátkový)"); + proposal.setProductType("34990 - INVESTIČNÍ ÚVĚR"); + proposal.setLoanPurpose("Dopravní prostředky - koupě"); + proposal.setSignDate(TestUtils.getTodayDate()); + proposal.setLastDrawingDate(proposalTasks.getValidDrawingDate()); + proposal.setSupport("Bez podpory"); + proposal.setInsurance("Ne"); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .then(proposalTasks.createProposal()) + .then(proposalTasks.fillAll(proposal)) + .clickSave() + .clickContinueButton() + .saveProposalId(proposal) + .clickOkButton(); + Assertions.assertNotEquals(null, proposal.getProposalId(), "Proposal was not created, that means we cannot work with it."); + harness.log("Proposal ID:" + proposal.getProposalId()); + editPages(harness); + } + + @TestCase(name = "Check description screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + public void checkDescriptionScreen(Harness harness) { + String purpose = "Nová činnost"; + accessProposal(harness).clickDescription() + .fillDescription(text) + .fillFinancialResources(text) + .selectLoanPurpose(purpose) + .clickDoneButton() + .clickSaveButton(); + } + + @TestCase(name = "Check basic information screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + public void checkBasicInformationScreen(Harness harness) { + accessProposal(harness).clickBasicInformation() + .fillCompanyHistory(text) + .fillCurrentState(text) + .clickSaveButton() + .clickDoneButton(); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/dataprepare/ufo/cb/CreateNewFopClients.java b/tests/src/test/java/cz/moneta/test/dataprepare/ufo/cb/CreateNewFopClients.java new file mode 100644 index 0000000..bcef7d7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/dataprepare/ufo/cb/CreateNewFopClients.java @@ -0,0 +1,34 @@ +package cz.moneta.test.dataprepare.ufo.cb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.dataprepare.DataPrepareTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.ArrayList; + +@TestScenario(name = "Creates given number of clients by calling sequence of MWF.") +public class CreateNewFopClients { + + @TestCase(name = "Creates given number of clients by calling sequence of MWF.", environments = Environment.TST1) + public void createClients(Harness harness) { + DataPrepareTasks dataPrepareTasks = harness.tasks().dataPrepareTasks(); + Credentials credentials = AuthSupport.getCredentials(Keys.ufo.banka.banker, harness); + + int count = Integer.parseInt(harness.getConfig("count", "1")); + ArrayList clients = new ArrayList<>(); + for (int i = 0; i < count; i++) { + String client = dataPrepareTasks.createNewFopCustomerViaWso2AndGetCif(credentials.getUsername()); + clients.add(client); + } + harness.log("Created clients CIF:"); + for (String client : clients) { + harness.log(client); + } + } + +} diff --git a/tests/src/test/java/cz/moneta/test/integration/CreateNewCustomerWithIbEndToEnd.java b/tests/src/test/java/cz/moneta/test/integration/CreateNewCustomerWithIbEndToEnd.java new file mode 100644 index 0000000..ddd8e3b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/integration/CreateNewCustomerWithIbEndToEnd.java @@ -0,0 +1,54 @@ +package cz.moneta.test.integration; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.ib.IbTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import org.apache.commons.lang3.StringUtils; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.harness.support.data.GeneratorType.RC; + +@TestScenario(name = "Teller must be able to crate a new customer with access to IB") +public class CreateNewCustomerWithIbEndToEnd { + @TestCase(name = "Bank teller is able to login and create a new customer with access to IB, then check login to IB.") + public void tc_bank_teller_is_able_create_new_customer_withAccess_to_ib(Harness harness) { + BankaTasks withBanka = harness.tasks().ufo().banka(); + IbTasks withIb = harness.tasks().ib(); + String bankerUsername = AuthSupport.getCredentials(banker, harness).getUsername(); + + String birthNumber = harness.generate(RC); + NonClient nonClient = harness.data().newNonClient() + .withBirthNumber(birthNumber) + .withEmail(TestUtils.getEmailBasedOnRc(birthNumber)); + + harness.withUfo() + .openLoginPage() + .then(withBanka.login().asBanker()) + .then(withBanka.login().turnSignpadOff()) + .then(withBanka.newClient().create(nonClient, bankerUsername)) + .then(withBanka.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + + Credentials udebsCredentials = harness.tasks().wso2().idm().getIbCredentialsByRC(nonClient.birthNumber()); + + harness.withIB() + .openLoginPage() + .then(withIb.loginWithUsernamePasswordAndMobileKey( + udebsCredentials.getUsername(), + udebsCredentials.getPassword(), + "12341234")) + .onWelcomePage() + .checkWelcomePageImageIsPresent(); + + Assertions.assertTrue(StringUtils.isNotBlank(harness.get(HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY))); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/integration/package-info.java b/tests/src/test/java/cz/moneta/test/integration/package-info.java new file mode 100644 index 0000000..fe786be --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/integration/package-info.java @@ -0,0 +1,7 @@ +/** + * Set of End to End Integration tests that are run after all build pipelines of all squads. + * Keep them green or else... + * + * More about types of tests: https://monetamoneybank.atlassian.net/wiki/spaces/CONT/pages/824770608/Test+Repository+Structure + */ +package cz.moneta.test.integration; \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/aml/AmlClientIdentification.java b/tests/src/test/java/cz/moneta/test/regression/aml/AmlClientIdentification.java new file mode 100644 index 0000000..770ddaf --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/aml/AmlClientIdentification.java @@ -0,0 +1,84 @@ +package cz.moneta.test.regression.aml; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.IdCard; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.data.client.OccupationType; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Test for client identification during creating of new CIF") +public class AmlClientIdentification { + + @JiraTestCase(id = "AML-T1374") + @TestCase(name = "Test for client identification during creating of new CIF", environments = {TST1}) + public void tc_clientIdentification(Harness harness, @Key(ufo.banka.anotherOmBanker) Credentials banker) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + NonClient nonClient = harness.data().newNonClient() + .withBirthNumber("8101104352") + .withFirstName("Servác") + .withLastName("Novák") + .withIdCard(new IdCard("222000366", LocalDate.of(2014, 9, 9), LocalDate.of(2024, 9, 9))) + .withIdNumber("222000366") + .withResidencyAddress(Address.builder() + .street("nám. sv. Václava") + .descriptiveNumber("1") + .orientationNumber("14") + .city("Brandýs nad Labem-Stará Boleslav") + .cityPart("Stará Boleslav") + .zip("25001") + .build()) + .withPlaceOfBirth("Brázdim") + .withOccupationType(OccupationType.IT_GUYS); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(banker)) + .then(bankaTasks.search().findByNewRc(nonClient.birthNumber())) + .clickCreateNewCustomerOnIdDocumentsCopy() + .then(bankaTasks.newClient().selectDocumentIdCard("OP se strojově čitelnými údaji")) + .onTabletCommunicationErrorPage() + .continueToSignError() + .clickCenterButton() + .onCreateNewCif() + .then(bankaTasks.newClient().createCustomerWith(nonClient)) + .then(bankaTasks.newClient().checkRegistryLoad(nonClient)) + .fillResidency() + .fillCity("Brandýs nad Labem") + .fillPostOffice("Brandýs nad Labem") + .fillContacts() + .checkRefuseEmail() + .fillEmployment() + .selectIncomeType("Příjem z podnikání") + .selectIncomeSubtype("Příjem z podnikání") + .selectEmployment(nonClient.occupationType().getUfoValue()) + .fillAdditionalInformation() + .clickNoPep() + .clickConsents() + .clickContinue() + .onSignerSelectionPage_TIS050() + .clickSignedPersonallyAndContinue() + .closePrintWindow() + .onClientSignatureConfirmationPage() + .clickContinue() + .onClientContractSignPage() + .clickCenterButton() + .onScanDocumentsPage() + .clickSkipButton() + .onMainClientPage() + .checkBirthNumberLabel(nonClient.birthNumber()) + .checkIdCardLabel(nonClient.idCardNumber()) + .verifyThatCifIsValid(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/AccessEmployee.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/AccessEmployee.java new file mode 100644 index 0000000..00d552b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/AccessEmployee.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Access employee") +public class AccessEmployee { + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + + @BeforeAll + public void getSetup(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.accessEmployee.rc"); + } + + @TestCase(name = "Access employee", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2147") + public void accessEmployee(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onEmployeeDetailsConfirmationPage() + .checkConfirmationButtonsOfEmployeePrivilege(2) + .clickYes() + .checkClientRc(rcOfExistingClient) + .checkListOfProducts() + .clickHomePage() + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onEmployeeDetailsConfirmationPage() + .checkConfirmationButtonsOfEmployeePrivilege(2) + .clickNo() + .checkSearchInputInMainPage() + .clickSettings() + .doubleClickEmployeeAccess() + .clickSaveChangeOfPrivilages() + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onEmployeeDetailsConfirmationPage() + .checkConfirmationButtonsOfEmployeePrivilege(1) + .clickNo(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/CardsLookupViewApplications.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/CardsLookupViewApplications.java new file mode 100644 index 0000000..5ae30ee --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/CardsLookupViewApplications.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Cards lookup view applications") +public class CardsLookupViewApplications { + private String rcOfExistingClient; + private OperationsTasks operationsTasks; + + @BeforeAll + public void getInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.creditCardClient.rc"); + } + + @TestCase(name = "Cards lookup view applications", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2163") + public void cardsLookupViewApplications(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .clickCardsRadio() + .clickRcRadio() + .fillSearchInput(rcOfExistingClient) + .clickSearch() + .onClientDetailsPage() + .assertCreditCardsTab() + .assertCreditCardContractState() + .openApplicationList() + .assertApplicationDetailButton() + .assertApplicationLoadButton() + .assertApplicationLoadAllButton() + .assertApplicationCopyButton() + .assertApplicationStornoButton() + .assertApplicationFinishButton() + .assertApplicationDecisionButton() + .clickClientDetail() + .checkClientRc(rcOfExistingClient); + + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/CommunicationWithClient.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/CommunicationWithClient.java new file mode 100644 index 0000000..9849e86 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/CommunicationWithClient.java @@ -0,0 +1,92 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.TypesOfViewFilter; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.sendingInformationsToClient.STI701_S002_PostPanel.DATE_OF_ACCEPTANCE_REQUIREMENT_INPUT; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskPage.TASK_ID_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Communciation with client") +public class CommunicationWithClient { + + private OperationsTasks operationsTasks; + + @BeforeAll + public void getInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + } + + @TestCase(name = "Communciation with client - email", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2159") + public void communicationWithClientEmail(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.tasks().removeFraudAcccesAndOpenTasks()) + .then(operationsTasks.tasks().createTask()) + .selectChooseAction("Komunikace s klientem") + .clickProcessDocuments() + .onSendingInformationsToClient() + .clickEmailPanel() + .clickSendingFinalStatement() + .checkClientName("AutoTest") + .selectSalutation("Vážený pane") + .fillInflectClientName("AutoTeste") + .checkOverwrittenTaskId(harness.get(TASK_ID_KEY)) + .checkEmailAddress("matej.liska@moneta.cz") + .clickMMB() + .clickTaskFile() + .clickSendEmail() + .checkWarningSentence("Akce byla provedena.\nZavřete okno křížkem.") + .closeWarningPageWindow() + .clickListOfTasks() + .selectTypeOfView(TypesOfViewFilter.TASK_SEARCH) + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickSolve() + .checkFirstNoteText("Stížnost/Reklamace - odeslán informační Email - na matej.liska@moneta.cz - Odeslání finálního vyjádření k požadavku klienta-") + .clickFinishAndAcceptAnswerAlert() + .fillNote("Automatický Test") + .clickFinishOK() + .clickOpenTaskDetail() + .checkStatusLabelContent(" - Úkol byl v pořádku dokončen !"); + } + + @TestCase(name = "Communciation with client - post", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2161") + public void communicationWithClientPost(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.tasks().removeFraudAcccesAndOpenTasks()) + .then(operationsTasks.tasks().createTask()) + .selectChooseAction("Komunikace s klientem") + .clickProcessDocuments() + .onSendingInformationsToClient() + .clickPostPanel() + .clickStatementToRequirement() + .selectSalutationRight("Vážený pan") + .checkClientName("AutoTest") + .fillStreetWithDescNo("Na Rovince 871") + .fillCity("Ostrava") + .fillPostalCode("720 00") + .selectSalutationLeft("Vážený pane") + .fillInflectClientName("AutoTeste") + .checkOverwrittenTaskId(harness) + .checkDateOfAcceptanceRequirement(DATE_OF_ACCEPTANCE_REQUIREMENT_INPUT) + .clickMMB(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ConfirmationOfAccountManagmentInUfoOps.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ConfirmationOfAccountManagmentInUfoOps.java new file mode 100644 index 0000000..92d45c4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ConfirmationOfAccountManagmentInUfoOps.java @@ -0,0 +1,123 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Confirmation of account managment in UFO OPS") +public class ConfirmationOfAccountManagmentInUfoOps { + + private String rcOfExistingClient; + private OperationsTasks operationsTasks; + + @BeforeAll + public void getInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.confirmatonOfAccountClient.rc"); + } + + @TestCase(name = "Confirmation of account managment in UFO OPS", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2132") + public void confirmationOfAccountManagmentInUfoOpsCzech(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickAccountList() + .clickConfirmationAboutAccount() + .clickSend() + .checkIfIBSBIsChecked() + .clickSend() + .onClientDetailPage() + .checkIfStatusBarIsOverwritten("Poplatek byl zaúčtován pod") + .clickTransactions() + .checkValueInTransactionTable("300") + .clickDetailLastRowInTransactionTable() + .checkAvField("Poplatek za potvrzení") + .dateCompare() + .clickBack() + .clickCorrespondence() + .assertPrintName("Potvrzení o vedení účtu") + .checkSendingChannel("Internet Banka/Smart banka") + .closeCorrespondency() + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow("Call centrum Banka - Zaslání dokumentu - vedení účtu"); + } + + @TestCase(name = "Confirmation of account managment in UFO OPS", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2133") + public void confirmationOfAccountManagmentInUfoOpsEnglish(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickAccountList() + .clickConfirmationAboutAccount() + .selectLanguage(1) + .clickSend() + .checkIfIBSBIsChecked() + .clickSend() + .onClientDetailPage() + .checkIfStatusBarIsOverwritten("Poplatek byl zaúčtován pod") + .clickTransactions() + .checkValueInTransactionTable("300") + .clickDetailLastRowInTransactionTable() + .checkAvField("Poplatek za potvrzení") + .dateCompare() + .clickBack() + .clickCorrespondence() + .assertPrintName("Account maintenance confirmation") + .checkSendingChannel("Internet Banka/Smart banka") + .closeCorrespondency() + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow("Call centrum Banka - Zaslání dokumentu - vedení účtu"); + } + + @TestCase(name = "Confirmation of account managment in UFO OPS", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2134") + public void confirmationOfAccountManagmentInUfoOpsWithoutFee(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickAccountList() + .clickConfirmationAboutAccount() + .selectFee(1) + .fillReason("chyba na OM") + .clickSend() + .checkIfIBSBIsChecked() + .clickSend() + .onClientDetailPage() + .checkIfStatusBarIsOverwritten("") + .clickCorrespondence() + .assertPrintName("Potvrzení o vedení účtu") + .checkSendingChannel("Internet Banka/Smart banka") + .closeCorrespondency() + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow("Call centrum Banka - Zaslání dokumentu - vedení účtu"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/LoadAndControlDetailOfClientAndProductsOnSTS701.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/LoadAndControlDetailOfClientAndProductsOnSTS701.java new file mode 100644 index 0000000..76e07e2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/LoadAndControlDetailOfClientAndProductsOnSTS701.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Load and control detail of client and products on STS701") +public class LoadAndControlDetailOfClientAndProductsOnSTS701 { + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + + @BeforeAll + public void getSetup(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.debitCardTestsClient.rc"); + } + + @TestCase(name = "Load and control detail of client and products on STS701", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2121") + public void loadAndControlDetailOfClientAndProductsOnSTS701(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickAccountList() + .assertAccountProduct("98-BÚ-FO- KONTO GENIUS /R/") + .clickDebitCard() + .checkRcOfHolder(rcOfExistingClient) + .clickAdcProducts() + .checkRcInListOfProfilesWithAccessToIb(rcOfExistingClient) + .clickBackButton() + .clickInternetBankPasswordDispomodelInProductsTree() + .clickDetailAdcProduct() + .checkRcInListOfProfilesWithAccessToIb(rcOfExistingClient) + .clickBackButton() + .clickSendingOffers() + .checkRecordsOfDocumentsForSending(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/SendingForms.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/SendingForms.java new file mode 100644 index 0000000..a6cda08 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/SendingForms.java @@ -0,0 +1,68 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Sending forms") +public class SendingForms { + private OperationsTasks operationsTasks; + + private String rcOfExistingClient; + + @BeforeAll + public void getSetup(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.sendingFormsClient.rc"); + } + + @TestCase(name = "Sending manuals", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2148") + public void sendingManuals(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .checkClientRc(rcOfExistingClient) + .clickSendingOffers() + .assertOffers() + .checkRecordsOfDocumentsForSending() + .checkSelectedDocumentsForSending("Vybrané dokumenty k odeslání") + .checkSendButton() + .selectSegmentOfClient(2) + .selectProductGroup("Půjčky") + .clickSearch() + .clickDocumentDetailAndCheck() + .closeDocumentWindowAndSwitchToCurrentWindow() + .clickAddFirstDocument() + .typeIntoEmailInput("jakub.havelka@moneta.cz") + .selectContactForClient("Pojištění - 224 445 666") + .clickSend() + .checkStatusMessageSendingManuals("Manuály byly odeslány") + .clickRequestsList() + .clickRefreshRequirementButton() + .checkPerformedRequest("Prodej - Zaslán leták") + .scrollToSendingOffersManuals() + .clickSendingOffers() + .clickAddFirstDocument() + .clickAddSecondDocument() + .typeIntoEmailInput("jakub.havelka@moneta.cz") + .selectContactForClient("Akviziční linka - 224 446 543") + .clickSend() + .checkStatusMessageSendingManuals("Manuály byly odeslány") + .clickRequestsList() + .clickRefreshRequirementButton() + .checkPerformedRequest("Prodej - Zaslán leták"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/TasklistTests.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/TasklistTests.java new file mode 100644 index 0000000..0cdc8dc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/TasklistTests.java @@ -0,0 +1,217 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskPage; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.support.web.Lookup; +import org.junit.jupiter.api.BeforeAll; + +import java.util.List; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.UploadUtil.getResourcePath; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.TASK_ID_KEY; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskPage.*; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.StateOfTaskFilter.*; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.TypesOfViewFilter.*; + +@TestScenario(name = "Tasklist tests") +public class TasklistTests { + + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + private String cifOfClient; + + @BeforeAll + public void setupInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.somTaskListClient.rc"); + cifOfClient = harness.getSystemOrConfigValue("cc.somTaskListClient.cif"); + } + + @TestCase(name = "Loading of tasklist") + @JiraTestCase(id = "CC-T2137") + public void loadingOfTasklist(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .clickTasks() + .checkPresentOfFirstTask(); + } + + @TestCase(name = "List of tasks") + @JiraTestCase(id = "CC-T2138") + public void listOfTasks(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .clickTasks() + .checkStatesOfTaskFilterValues(true, List.of(ERROR_CORRECTING_DATA, ASSIGNED, RETURNED)) + .checkStatesOfTaskFilterValues(false, List.of(NEW, ASSIGNED, IN_SOLVING)) + .checkIncludingLockedCheckbox() + .clickOpenTaskDetail() + .checkPresenceOfTaskId() + .checkDelegateTaskBtn() + .clickListOfTasks() + .selectTypeOfView(MY_FOR_PROCESSING) + .checkStatesOfTaskFilterValues(true, List.of(NEW, ASSIGNED, ASSIGNING, RETURNED, IN_SOLVING, TASK_IN_ACCEPTATION_WORKFLOW)) + .clickOpenTaskDetail() + .checkPresenceOfTaskId() + .clickListOfTasks() + .selectTypeOfView(MY_FOR_VERIFICATION) + .checkStatesOfTaskFilterValues(true, List.of(PROCESSED_UNAUTHORIZED)) + .selectTypeOfView(PROCESSED_BY_ME) + .checkStatesOfTaskFilterValues(true, List.of(PROCESSED, PROCESSED_AUTHORIZED)) + .clickExpandFilterArrow() + .clickCollapseFilterArrow() + .checkDataFiltering() + .storeFirstRecordTaskId() + .clickRevitalization() + .selectTypeOfView(TASK_SEARCH) + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickSolve() + .clickFinishAndAcceptAnswerAlert() + .fillNote("Autotest") + .clickFinishOK() + .selectTypeOfView(ASSIGNED_BY_ME) + .checkStatesOfTaskFilterValues(true, List.of(NEW, ASSIGNED, CANCELED, RETURNED, IN_SOLVING, PROCESSED, PROCESSED_UNAUTHORIZED, PROCESSED_AUTHORIZED)) + .clickExpandFilterArrow() + .clickCollapseFilterArrow() + .checkDataFiltering() + .clickOpenTaskDetail() + .checkUpdateBtn() + .clickListOfTasks() + .selectTypeOfView(TASK_SEARCH) + .checkStatesOfTaskFilterValues(true, List.of(ERROR_CORRECTING_DATA, NEW, ASSIGNED, ASSIGNING, CANCELED, RETURNED, IN_SOLVING, PROCESSED, PROCESSED_UNAUTHORIZED, PROCESSED_AUTHORIZED, TASK_IN_ACCEPTATION_WORKFLOW, WAITING)) + .typeIntoSsoSolver("212628185") + .clickFind() + .checkSearchOptionsEnabled() + .clickOpenTaskDetail() + .checkDelegateTaskBtnNotEnabled() + .clickTaskList() + .clickReset() + .typeIntoSsoSubmitter("212628185") + .clickFind() + .clickOpenTaskDetail() + .checkUpdateBtn() + .clickTaskList() + .clickReset() + .fillTaskID("T_0001573310101") + .clickFind() + .clickOpenTaskDetail() + .checkUpdateBtn() + .clickTaskList() + .clickReset() + .fillBirthNumber("9206176276") + .clickFind() + .clickOpenTaskDetail() + .checkUpdateBtn() + .clickTaskList() + .clickExpandFilterArrow() + .clickCollapseFilterArrow() + .checkFirstStateOfTasksByViewType(TEAM_TASKS, ERROR_CORRECTING_DATA) + .checkFirstStateOfTasksByViewType(ASSIGNED_BY_TEAM, NEW) + .checkFirstStateOfTasksByViewType(TEAM_FOR_REVIEW, PROCESSED_UNAUTHORIZED) + .checkFirstStateOfTasksByViewType(MY_FOR_PROCESSING, NEW) + .checkFirstStateOfTasksByViewType(MY_FOR_VERIFICATION, PROCESSED_UNAUTHORIZED) + .checkFirstStateOfTasksByViewType(PROCESSED_BY_ME, PROCESSED) + .checkFirstStateOfTasksByViewType(ASSIGNED_BY_ME, NEW) + .checkFirstStateOfTasksByViewType(MY_FOR_APPROVAL, TASK_IN_ACCEPTATION_WORKFLOW) + .checkFirstStateOfTasksByViewType(THIRD_PARTY_TASKS, ERROR_CORRECTING_DATA) + .checkFirstStateOfTasksByViewType(TASK_SEARCH, ERROR_CORRECTING_DATA); + } + + @TestCase(name = "Detail of tasklist") + @JiraTestCase(id = "CC-T2139") + public void detailOfTasklist(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + String attachmentPath = getResourcePath(TASK_PDF); + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .clickTasks() + .then(operationsTasks.tasks().createTask()) + .fillBirthNumberInTask(rcOfExistingClient) + .clickClientDetailInfo() + .checkClientRc(rcOfExistingClient) + .closeSecondWindow() + .clickListOfTasks() + .selectTypeOfView(TASK_SEARCH) + .fillTaskID(harness.get(UKO720_S001_TaskPage.TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickSolve() + .clickAddNote() + .fillNote("Automat test") + .clickOkButton() + .checkDateInLabel(FIRST_DATE_IN_LIST_OF_NOTES_XPATH, Lookup.XPATH) + .clickAddAttachment() + .fillFileUpload(attachmentPath) + .fillFileTitle("autotest") + .clickSaveAttachment() + .clickFileDownload(PDF_IMG) + .checkDateInLabel(FIRST_DATE_IN_LIST_OF_ATTACHMENTS, Lookup.ID) + .clickFirstAttachmentDetail() + .clickSolution() + .clickFileDownload(FIRST_ATTACHMENT_DOWNLOAD_IMG) + .clickTaskTree() + .then(operationsTasks.tasks().createSubtask()) + .clickFinishProcessAndAcceptFinishAlert() + .fillCommentAndClickAgreeFinish("autotest") + .clickOpenTaskDetail() + .clickHistory() + .checkHistoryOfTask() + .clickListOfTasks() + .fillTaskID(harness.get(UKO720_S001_TaskPage.TASK_ID_KEY)) + .clickFind() + .clickRevitalization() + .clickOpenTaskDetail() + .clickSolve() + .clickTaskChangeCheckboxAndAcceptAlert() + .fillReason("Automat test") + .clickOkButton() + .selectTaskCategory("Produkt - Běžný účet") + .selectSubcategories("Reklamace a Stížnosti") + .selectTaskType("Ostatní") + .findUserAndSelectSolver() + .fillIdOfClient(cifOfClient) + .fillNumberOfCard("1111111111") + .clickDelegateTask() + .selectTypeOfView(TASK_SEARCH) + .fillTaskID(harness.get(UKO720_S001_TaskPage.TASK_ID_KEY)) + .clickOpenTaskDetail() + .clickSolve() + .fillNameOfTask("Automat test") + .clickSaveTask() + .checkNameOfTask("Automat test") + .clickListOfTasks() + .selectTypeOfView(TASK_SEARCH) + .fillTaskID(harness.get(UKO720_S001_TaskPage.TASK_ID_KEY)) + .clickOpenTaskDetail() + .clickSolve() + .typeIntoClientsEmail("matej.liska@moneta.cz") + .checkStatusLabelContent(" - Update úkolu proběhl v pořádku !") + .clickCancellation() + .fillNote("autotest") + .clickFinishOK() + .selectTypeOfView(TASK_SEARCH) + .fillTaskID(harness.get(UKO720_S001_TaskPage.TASK_ID_KEY)) + .clickFind() + .assertTaskStatus("Stornován") + .clickRevitalization() + .clickOpenTaskDetail() + .clickSolve() + .clickFinishAndAcceptAnswerAlert() + .fillNote("Autotest") + .clickFinishOK() + .clickOpenTaskDetail() + .checkStatusLabelContent(" - Úkol byl v pořádku dokončen !"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ViewDocumentationOnClient.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ViewDocumentationOnClient.java new file mode 100644 index 0000000..55d8e65 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ViewDocumentationOnClient.java @@ -0,0 +1,44 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "View documentation on client") +public class ViewDocumentationOnClient { + private OperationsTasks operationsTasks; + + private String rcOfExistingClient; + + @BeforeAll + public void getSetup(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.viewDocumentationOnClient.rc"); + } + + @TestCase(name = "View documentation on client (DMS)", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2129") + public void viewDocumentationOnClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .checkClientRc(rcOfExistingClient) + .clickCorrespondence() + .checkRcInOutgoingCorrespondency(rcOfExistingClient) + .clickClientDocument() + .clickSearch() + .clickDocumentDetailAndCheckOpening(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ViewTransactionsOfClient.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ViewTransactionsOfClient.java new file mode 100644 index 0000000..5922ca3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ViewTransactionsOfClient.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "View transactions of client") +public class ViewTransactionsOfClient { + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + + @BeforeAll + public void getSetup(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.transactionClient.rc"); + } + + @TestCase(name = "View list of transactions and transaction detail of client", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2127") + public void viewTransactionsOfClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickAccountList() + .checkPlaceOfBusiness("PRAHA 4-BBC - 704") + .clickTransactions() + .clickFirstAccountStatementCheckbox() + .clickViewTransactions() + .clickDetailOfTransaction() + .checkIdOfUser() + .clickExitInWindowWithDetailOfTransaction() + .clickBack() + .clickClientDetailList(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladadc/CreatingAndRemovingInfoService.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladadc/CreatingAndRemovingInfoService.java new file mode 100644 index 0000000..823fdb6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladadc/CreatingAndRemovingInfoService.java @@ -0,0 +1,201 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladadc; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.ClientType; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Creating and removing infoservice tests") +public class CreatingAndRemovingInfoService { + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + private String icOfExistingClientFOP; + private String icOfExistingClientPO; + + @BeforeAll + public void getSetup(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.createInfoserviceClientFO.rc"); + icOfExistingClientFOP = harness.getSystemOrConfigValue("cc.createInfoserviceClientFOP.ic"); + icOfExistingClientPO = harness.getSystemOrConfigValue("cc.createInfoserviceClientPO.ic"); + } + + @Order(1) + @TestCase(name = "Creating infoservice - FO", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2170") + public void createInfoServiceFO(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createInfoServiceTestFlow(harness, credentials, ClientType.FON, rcOfExistingClient); + } + + @Order(2) + @TestCase(name = "Editing infoservice - FO", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2216") + public void editInfoServiceFO(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + editInfoServiceTestFlow(harness, credentials, ClientType.FON, rcOfExistingClient); + } + + @Order(3) + @TestCase(name = "Remove infoservice - FO", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2178") + public void removeInfoServiceFO(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + deleteInfoServiceTestFlow(harness, credentials, ClientType.FON, rcOfExistingClient); + } + + @Order(4) + @TestCase(name = "Creating infoservice - FOP", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2173") + public void createInfoServiceFOP(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createInfoServiceTestFlow(harness, credentials, ClientType.FOP, icOfExistingClientFOP); + } + + @Order(5) + @TestCase(name = "Editing infoservice - FOP", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2218") + public void editInfoServiceFOP(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + editInfoServiceTestFlow(harness, credentials, ClientType.FOP, icOfExistingClientFOP); + } + + @Order(6) + @TestCase(name = "Remove infoservice - FOP", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2181") + public void removeInfoServiceFOP(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + deleteInfoServiceTestFlow(harness, credentials, ClientType.FOP, icOfExistingClientFOP); + } + + @Order(7) + @TestCase(name = "Creating infoservice - PO", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2176") + public void createInfoServicePO(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createInfoServiceTestFlow(harness, credentials, ClientType.PO, icOfExistingClientPO); + } + + @Order(8) + @TestCase(name = "Editing infoservice - PO", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2217") + public void editInfoServicePO(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + editInfoServiceTestFlow(harness, credentials, ClientType.PO, icOfExistingClientPO); + } + + @Order(9) + @TestCase(name = "Remove infoservice - PO", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2184") + public void removeInfoServicePO(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + deleteInfoServiceTestFlow(harness, credentials, ClientType.PO, icOfExistingClientPO); + } + + private void createInfoServiceTestFlow(Harness harness, Credentials credentials, ClientType clientType, String client) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.searchClient().searchClientByType(clientType, client)) + .then(operationsTasks.infoServiceTasks().selectInfoServiceProductAndCheckDetails()) + .clickContinue() + .onAdcProductsPanel() + .clickCommonUser() + .clickSetWithoutTelephoneOrEmailAndCheckAlert() + .then(operationsTasks.infoServiceTasks().fillEmailAndPhoneNumberInExpressSettings("ef", "72086726727")) + .clickSetWithoutTelephoneOrEmailAndCheckAlert() + .then(operationsTasks.infoServiceTasks().fillEmailAndPhoneNumberInExpressSettings("212628443@moneta.cz", "734426356")) + .then(operationsTasks.infoServiceTasks().selectStartTimeAndEndTimeInExpressSettings("07:00", "10:00")) + .clickSet(); + + } + + private void editInfoServiceTestFlow(Harness harness, Credentials credentials, ClientType clientType, String client) { + + String startTime = "07:00"; + String endTime = "10:00"; + String email = "212628443@moneta.cz"; + String phoneNumber = "720867267"; + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.searchClient().searchClientByType(clientType, client)) + .clickInfoService() + .clickOrderInAccountsDetail("1") + .fillBalanceFrom("2000") + .then(operationsTasks.infoServiceTasks().checkStartTimeAndEndTime(startTime, endTime)) + .then(operationsTasks.infoServiceTasks().selectStartTimeAndEndTimeInDetailOfOrder("07:00", "22:00")) + .clickSave() + .checkStatusMessage("Editace InfoServisu proběhla v pořádku") + .clickOrderInCardsDetail("1") + .then(operationsTasks.infoServiceTasks().checkStartTimeAndEndTime(startTime, endTime)) + .clickOrderInOthersDetail("1") + .then(operationsTasks.infoServiceTasks().checkStartTimeAndEndTime(startTime, endTime)) + .clickOrderInAccountsDetail("1") + .then(operationsTasks.infoServiceTasks().editSmsSectionInDetailOfOrder(phoneNumber, "2000", "11:00", "16:00")) + .clickOrderInAccountsDetail("1") + .checkTelephoneInDetailOfOrderInput(phoneNumber) + .checkBalance("2000") + .then(operationsTasks.infoServiceTasks().checkStartTimeAndEndTime("11:00", "16:00")) + .then(operationsTasks.infoServiceTasks().editEmailSectionInDetailOfOrder(email, "3000", "12:00", "15:00")) + .clickOrderInAccountsDetail("1") + .checkEmailInDetailOfOrderInput(email) + .checkBalance("3000") + .then(operationsTasks.infoServiceTasks().checkStartTimeAndEndTime("12:00", "15:00")) + .clickOrderInCardsDetail("1") + .then(operationsTasks.infoServiceTasks().editSmsSectionInDetailOfOrder(phoneNumber, "2000", "11:00", "16:00")) + .clickOrderInCardsDetail("1") + .checkTelephoneInDetailOfOrderInput(phoneNumber) + .checkBalance("2000") + .then(operationsTasks.infoServiceTasks().checkStartTimeAndEndTime("11:00", "16:00")) + .then(operationsTasks.infoServiceTasks().editEmailSectionInDetailOfOrder(email, "3000", "12:00", "15:00")) + .clickOrderInCardsDetail("1") + .checkEmailInDetailOfOrderInput(email) + .checkBalance("3000") + .then(operationsTasks.infoServiceTasks().checkStartTimeAndEndTime("12:00", "15:00")) + .clickOrderInOthersDetail("1") + .clickSmsInDetailOfOrder() + .fillTelephoneInputInDetailOfOrder(phoneNumber) + .then(operationsTasks.infoServiceTasks().selectStartTimeAndEndTimeInDetailOfOrder("11:00", "16:00")) + .clickSave() + .clickOrderInOthersDetail("1") + .checkTelephoneInDetailOfOrderInput(phoneNumber) + .then(operationsTasks.infoServiceTasks().checkStartTimeAndEndTime("11:00", "16:00")) + .clickOrderInOthersDetail("1") + .clickEmailInDetailOfOrder() + .fillEmailInputDetailOfOrder(email) + .then(operationsTasks.infoServiceTasks().selectStartTimeAndEndTimeInDetailOfOrder("12:00", "15:00")) + .clickSave() + .checkEmailInDetailOfOrderInput(email) + .then(operationsTasks.infoServiceTasks().checkStartTimeAndEndTime("12:00", "15:00")) + .deleteFirstAccountOrderAndCheckDeletion() + .clickExpressSettings() + .clickInternetPro() + .then(operationsTasks.infoServiceTasks().fillEmailAndPhoneNumberInExpressSettings("internet@moneta.cz", phoneNumber)) + .clickSet() + .checkTelephoneOrEmailDivInCardsFirstRow("internet@moneta.cz") + .clickExpressSettings() + .clickCautiousUser() + .then(operationsTasks.infoServiceTasks().fillEmailAndPhoneNumberInExpressSettings("cautious@moneta.cz", phoneNumber)) + .clickSet() + .checkTelephoneOrEmailDivInCardsFirstRow("cautious@moneta.cz"); + + } + + private void deleteInfoServiceTestFlow(Harness harness, Credentials credentials, ClientType clientType, String client) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.searchClient().searchClientByType(clientType, client)) + .clickInfoService() + .cancelInfoService() + .clickHomePage() + .then(operationsTasks.searchClient().searchClientByType(clientType, client)) + .checkInfoServiceProductIsNotPresent(); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladadc/InternetBankActiveOperations.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladadc/InternetBankActiveOperations.java new file mode 100644 index 0000000..ae5a405 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladadc/InternetBankActiveOperations.java @@ -0,0 +1,100 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladadc; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Internet bank active operations") +public class InternetBankActiveOperations { + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + + @BeforeAll + public void setupInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.internetBanka.rc"); + } + + @TestCase(name = "Internet bank active operations - natural person", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2110") + public void ibActiveOperationsNaturalPerson(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickIB() + .clickDetailAdcProduct() + .clickDetailEdisponent() + .clickSendLoginPasswordSms() + .checkIfStatusBarIsOverwritten(" Zaslání přihlašovacího hesla proběhlo v pořádku") + .clickRequirement() + .clickRefreshRequirement() + .checkRequirementDescription("ADC Helpdesk - Internet Banka - Přihlašování do IB - Nelze se přihlásit - Zaslání nového hesla Majiteli") + .clickSendIdForIbSms() + .checkIfStatusBarIsOverwritten(" Odeslání SMS s ID proběhlo v pořádku") + .clickRequirement() + .clickRefreshRequirement() + .checkRequirementDescription("UFO - Internet Banka - Zaslání ID pro IB aktivní - SMS") + .scrollOnSmsPhishingButton() + .clickPhisingSms() + .checkIfStatusBarIsOverwritten(" Odeslání SMS (PHISHING) proběhlo v pořádku.") + .clickRequirement() + .clickRefreshRequirement() + .checkRequirementDescription("Call centrum Banka - Odeslání SMS - Podezření na Phishing Internet Banky") + .scrollOnAllBlocationButton() + .clickBlockationAllProfilesButton() + .checkIfStatusBarIsOverwritten(" Blokace všech profilů proběhla v pořádku") + .clickRequirement() + .clickRefreshRequirement() + .checkRequirementDescription("ADC Helpdesk - Internet Banka - Blokace celého profilu - Majitel") + .clickDetailOfClientButton() + .checkInternetBankDispo("Internet Banka heslo/MK - Dispomodel (Blokovaný)") + .checkSmartBankDispo("Smart Banka - Dispomodel (Blokovaný)") + .clickIB() + .clickDetailAdcProduct() + .clickDetailEdisponent() + .clickUnblocationAllProfiles() + .checkIfStatusBarIsOverwritten(" Odblokace všech profilů proběhla v pořádku") + .clickRequirement() + .clickRefreshRequirement() + .checkRequirementDescription("ADC Helpdesk - Internet Banka - Odblokace celého profilu - Majitel") + .clickDetailOfClientButton() + .checkInternetBankDispo("Internet Banka heslo/MK - Dispomodel (Aktivní)") + .checkSmartBankDispo("Smart Banka - Dispomodel (Aktivní)") + .clickIB() + .clickDetailAdcProduct() + .clickDetailEdisponent() + .clickBloationOfIbCanal() + .checkIfStatusBarIsOverwritten(" Blokace kanálu proběhla v pořádku") + .checkStateOfIbCanal("Blokovaný") + .checkCanalInRow("IB") + .clickRequirement() + .clickRefreshRequirement() + .checkRequirementDescription("ADC Helpdesk - Internet Banka - Blokace IB") + .clickDetailOfClientButton() + .checkInternetBankDispo("Internet Banka heslo/MK - Dispomodel (Blokovaný)") + .clickIB() + .clickDetailAdcProduct() + .clickDetailEdisponent() + .clickCancelBlocationOfIBCanal() + .checkStateOfIbCanal("Aktivní") + .checkIfStatusBarIsOverwritten(" Odblokace kanálu proběhla v pořádku") + .clickRequirement() + .clickRefreshRequirement() + .checkRequirementDescription("ADC Helpdesk - Internet Banka - Odblokace kanálu") + .clickDetailOfClientButton() + .checkInternetBankDispo("Internet Banka heslo/MK - Dispomodel (Aktivní)"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/ActivitiesOnCard.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/ActivitiesOnCard.java new file mode 100644 index 0000000..4f671ae --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/ActivitiesOnCard.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Activites on card") +public class ActivitiesOnCard { + private String rcOfExistingClient; + private String numberOfDebitCard; + private OperationsTasks operationsTasks; + + @BeforeAll + public void getInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.activitesOnCardClient.rc"); + numberOfDebitCard = harness.getSystemOrConfigValue("cc.numberOfDebitCard.number"); + } + + @TestCase(name = "Bank - activities on card", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2200") + public void activitiesOnCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.searchClient().byRc(rcOfExistingClient)) + .checkClientRc(rcOfExistingClient) + .clickDebitCard() + .checkRcOfHolder(rcOfExistingClient) + .clickCardActivities() + .checkListRowInTable() + .checkInformationAboutCardHolder("Informace o držiteli karty") + .checkPKHolderLabel("STEJNE JMENO") + .checkCardNumberLabel(numberOfDebitCard) + .clickBack() + .checkRcOfHolder(rcOfExistingClient) + .clickAccountBlocking() + .checkListOfBlockedFinancialResources() + .clickBackWhenOnBlocations() + .checkRcOfHolder(rcOfExistingClient); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/ArrangementXkom.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/ArrangementXkom.java new file mode 100644 index 0000000..9c5abb2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/ArrangementXkom.java @@ -0,0 +1,259 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.time.LocalDate; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "SharingContacts") +public class ArrangementXkom { + + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + private String numberOfAccount; + + @BeforeAll + public void setupInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.arrangementXcom.rc"); + numberOfAccount = harness.getSystemOrConfigValue("cc.numberOfAccount.number"); + } + + @Order(1) + @TestCase(name = "Arrangement X-Coms - Car") + @JiraTestCase(id = "CC-T2186") + public void arrangementXcomsCar(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.clientDetails().stepsOnContactForwarding(rcOfExistingClient)) + .clickCar() + .checkName("Arnold") + .checkSurname("Stejnojmený") + .checkEmail("ilods@moneta.cz") + .fillTelephone("730177773") + .fillNote("Jedná se o TEST, není třeba řešit") + .checkVillage("Praha 2") + .fillDate(DateUtils.getDateWithFormat(DateUtils.getNextWorkday(), "d.M.yyyy")) + .checkInactiveAvailabilityHours() + .clickSendAndCheckExpectedErrorAlert() + .fillDate(DateUtils.getDateWithFormat(DateUtils.getNextWorkday(), "d.M.yyyy")) + .clickConsent101() + .clickSend() + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow("Prodej - X-KOM"); + } + + @Order(2) + @TestCase(name = "Arrangement X-Coms - Future opportunities") + @JiraTestCase(id = "CC-T2188") + public void arrangementXcomsFutureOpportunities(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.clientDetails().stepsOnContactForwarding(rcOfExistingClient)) + .clickFutureOpportunities() + .selectInterestIn("Hypotéky") + .fillDate(DateUtils.getDateWithFormat(DateUtils.getNextWorkdayAfterDate(LocalDate.now().plusMonths(1)), "d.M.yyyy")) + .fillNote("Jedná se o TEST, není třeba řešit") + .clickSend() + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow("Prodej - Budoucí příležitost - Hypotéky"); + } + + @Order(3) + @TestCase(name = "Arrangement X-Coms - Mortgages") + @JiraTestCase(id = "CC-T2189") + public void arrangementXcomsMortgages(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.clientDetails().stepsOnContactForwarding(rcOfExistingClient)) + .clickMortgages() + .checkName("Arnold") + .checkSurname("Stejnojmený") + .checkBirthNumber("9206177398") + .checkPhone("730177773") + .checkEmail("ilods@moneta.cz") + .fillNote("Jedná se o TEST, není třeba řešit") + .checkVillage("Praha 2") + .fillDate(DateUtils.getDateWithFormat(DateUtils.getNextWorkday(), "d.M.yyyy")) + .fillAvailabilityTimeHour("13") + .fillAvailabilityTimeMinute("30") + .selectContactSource("Call Centrum") + .fillAmount("200000") + .clickConsent101() + .clickSend() + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow("Prodej - X-KOM"); + } + + @Order(4) + @TestCase(name = "Arrangement X-Coms - Retention") + @JiraTestCase(id = "CC-T2190") + public void arrangementXcomsRetention(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.clientDetails().stepsOnContactForwarding(rcOfExistingClient)) + .clickRetention() + .selectProduct(numberOfAccount ) + .fillDate(DateUtils.getDateWithFormat(DateUtils.getNextWorkday(), "d.M.yyyy")) + .fillAvailabilityTimeHour("13") + .fillAvailabilityTimeMinute("30") + .fillTelephone("734426356") + .fillNote("Jedná se o TEST, není třeba řešit") + .clickCallAsPriority() + .clickSend() + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow("Telemarketing - Retence - Požadavek z Call Centra"); + } + + @Order(5) + @TestCase(name = "Arrangement X-Coms - SME") + @JiraTestCase(id = "CC-T2191") + public void arrangementXcomsSME(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.clientDetails().stepsOnContactForwarding(rcOfExistingClient)) + .clickSME() + .checkActiveIco() + .checkName("Arnold") + .checkSurname("Stejnojmený") + .checkNameOfCompany("Ing. Arnold Stejnojmený") + .checkMobile("730177773") + .checkEmail("ilods@moneta.cz") + .selectInterestIn("Úvěrový produkt") + .fillNote("Jedná se o TEST, není třeba řešit") + .checkVillage("Praha 2") + .fillDate(DateUtils.getDateWithFormat(DateUtils.getNextWorkday(), "d.M.yyyy")) + .checkInactiveAvailabilityHours() + .selectContactSource("Call Centrum") + .clickSendSMSAndDocuments() + .clickConsent101() + .clickSend(); + } + + @Order(6) + @TestCase(name = "Arrangement X-Coms - Ecomm") + @JiraTestCase(id = "CC-T2192") + public void arrangementXcomsEcomm(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.clientDetails().stepsOnContactForwarding(rcOfExistingClient)) + .clickEcomm() + .checkName("Arnold") + .checkSurname("Stejnojmený") + .selectReasonOfHandover("Předáno chat") + .fillDate(DateUtils.getDateWithFormat(DateUtils.getNextWorkday(), "d.M.yyyy")) + .checkInactiveAvailabilityHours() + .fillTelephone("734426356") + .fillNote("Jedná se o TEST, není třeba řešit") + .clickPriorityCall() + .clickSend() + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow("Call centrum Banka - Xkom - Ecomm"); + } + + @Order(7) + @TestCase(name = "Arrangement X-Coms - Sell") + @JiraTestCase(id = "CC-T2193") + public void arrangementXcomsSell(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.clientDetails().stepsOnContactForwarding(rcOfExistingClient)) + .clickSell() + .checkName("Arnold") + .checkSurname("Stejnojmený") + .checkBirthNumber("9206177398") + .fillDate(DateUtils.getDateWithFormat(DateUtils.getNextWorkday(), "d.M.yyyy")) + .fillAvailabilityTimeHour("14") + .fillAvailabilityTimeMinute("00") + .fillTelephone("734426356") + .fillNote("Jedná se o TEST, není třeba řešit") + .clickSend() + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow("Call centrum banka - Xkom - Prodej"); + } + + @Order(8) + @TestCase(name = "Arrangement X-Coms - Acquisition") + @JiraTestCase(id = "CC-T2194") + public void arrangementXcomsAcquisition(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.clientDetails().stepsOnContactForwarding(rcOfExistingClient)) + .clickAcquisition() + .fillName("Arnold") + .fillSurname("Stejnojmený") + .fillDate(DateUtils.getDateWithFormat(DateUtils.getNextWorkday(), "d.M.yyyy")) + .fillAvailabilityTimeHour("13") + .fillAvailabilityTimeMinute("30") + .fillTelephone("734426356") + .fillNote("Jedná se o TEST, není třeba řešit") + .clickSend() + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow("Call centrum Banka - Xkom - akvizice"); + } + + @Order(9) + @Defect(value = "Defekt na TST1 - DFM-40010", environments = {TST1}) + @TestCase(name = "Arrangement X-Coms - Other") + @JiraTestCase(id = "CC-T2195") + public void arrangementXcomsOther(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.clientDetails().stepsOnContactForwarding(rcOfExistingClient)) + .clickOther() + .selectNameOfCampaign("test1 - XKOM-UFO_OPS") + .checkBirthNumber("9206177398") + .checkName("Arnold") + .checkSurname("Stejnojmený") + .checkMobile("730177773") + .checkEmail("ilods@moneta.cz") + .checkVillage("Praha 2") + .fillNote("Jedná se o TEST, není třeba řešit") + .fillAvailabilityTimeHour("13") + .fillAvailabilityTimeMinute("00") + .selectSourceOfContact("Call Centrum") + .selectProductToCancel("Vyberte produkt ke zrušení") + .selectTypeOfWrittenRequest("Obecné Info") + .selectReasonOfHandover("Předáno chat") + .selectInterestOf("Běžné účty") + .clickConsent101() + .clickSendSmsAndDocumentations() + .clickSend() + .clickDemand() + .clickRefreshRequirementButton() + .checkDateInRequirement() + .checkDemandDescriptionFirstRow("Call centrum Banka - Xkom"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/ChangeOfClientsContactDetails.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/ChangeOfClientsContactDetails.java new file mode 100644 index 0000000..fecbae0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/ChangeOfClientsContactDetails.java @@ -0,0 +1,146 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Change of clients contact details") +public class ChangeOfClientsContactDetails { + + private String rcOfExistingClient; + private OperationsTasks operationsTasks; + + @BeforeAll + public void getInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.currentAccountTests.rc"); + } + + @TestCase(name = "Change of clients contact details - address", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2122") + public void changeOfClientsContactDetails_Address(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .menuClickChangeContactData() + .clickUseProductOnSecondPlace() + .fillStreet("Rudná") + .fillDescriptionNumber("3114") + .fillPostalCode("70030") + .fillDistrictNumber("Zábřeh") + .fillCity("Ostrava") + .selectCountry(52) + .clickSaveAddress() + .clickChooseAddress() + .clickSaveAddress() + .clickCheckData() + .onAmortizationPage() + .checkIfIBSBIsChecked() + .checkAmortizationLabel("Změna kontaktních údajů - změnový dokument") + .clickSendButton() + .onClientDetailPage() + .menuClickChangeContactData() + .checkAddressDiv2("Rudná 3114/114, 700 30 Ostrava, Zábřeh, Česká republika,") + .clickUseProductOnSecondPlace() + .fillStreet("Na Rovince") + .fillDescriptionNumber("872") + .fillPostalCode("72000") + .fillDistrictNumber("Hrabová") + .fillCity("Ostrava") + .clickSaveAddress() + .clickChooseAddress() + .clickSaveAddress() + .checkAddressDiv2("Na Rovince 872/, 720 00 Ostrava, Hrabová, Česká republika,") + .clickCheckData() + .onAmortizationPage() + .checkIfIBSBIsChecked() + .checkAmortizationLabel("Změna kontaktních údajů - změnový dokument") + .clickSendButton() + .onClientDetailPage() + .clickDemand() + .clickRefreshRequirementButton() + .checkDemandDescriptionFirstRow("Call centrum Banka - Aktualizace údajů - Provedeno"); + } + + @TestCase(name = "Change of clients contact details - email", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2123") + public void changeOfClientsContactDetails_Email(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .menuClickChangeContactData() + .clickChangeOnAllProductsEmail() + .fillEmail("matej.liska@moneta.cz") + .clickSaveEmail() + .checkEmailDiv1("matej.liska@moneta.cz") + .checkEmailDiv2("matej.liska@moneta.cz") + .clickChangeOnSelectedProductsEmail() + .clickEmailProductsFirstRow() + .fillEmail("matej.liska1@moneta.cz") + .clickSaveEmail() + .checkEmailDiv1("matej.liska1@moneta.cz") + .clickCheckData() + .onClientDetailPage() + .clickDemand() + .clickRefreshRequirementButton() + .checkDemandDescriptionFirstRow("Call centrum Banka - Aktualizace údajů - Provedeno"); + } + + @TestCase(name = "Change of clients contact details - telephone", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2124") + public void changeOfClientsContactDetails_Telephone(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .menuClickChangeContactData() + .clickChangeOnAllProductsTelephone() + .fillTelPrefix("420") + .fillTelephone("111111111") + .clickSaveTelephone() + .clickCheckData() + .onClientDetailPage() + .fillMenuSearchParameter(rcOfExistingClient) + .clickSearchArrowButton() + .onClientDetailsPage() + .menuClickChangeContactData() + .checkTelephoneProductsFirstRowDiv("111111111") + .checkTelephoneProductsSecondRowDiv("111111111") + .checkTelephoneProductsThirdRowDiv("111111111") + .checkTelephoneProductsFourthRowDiv("111111111") + .clickChangeOnSelectedProductsTelephone() + .clickTelephoneSecondRowCheckbox() + .clickTelephoneThirdRowCheckbox() + .fillTelPrefix("420") + .fillTelephone("734426356") + .clickSaveTelephone() + .clickCheckData() + .onClientDetailPage() + .fillMenuSearchParameter(rcOfExistingClient) + .clickSearchArrowButton() + .onClientDetailsPage() + .menuClickChangeContactData() + .checkTelephoneProductsSecondRowDiv("734426356") + .checkTelephoneProductsThirdRowDiv("734426356"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/CreateMeetingsAndSms.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/CreateMeetingsAndSms.java new file mode 100644 index 0000000..74b00f4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/CreateMeetingsAndSms.java @@ -0,0 +1,196 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + + +@TestScenario(name = "Create new meetings and sms") +public class CreateMeetingsAndSms { + + private NonClient nonClient; + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + + @BeforeAll + public void getInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + nonClient = harness.data().newNonClient() + .withMobileNumber(harness.getSystemOrConfigValue("cc.client.phone-number")) + .withEmail(harness.getSystemOrConfigValue("cc.client.email")); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.client.rc"); + } + + @TestCase(name = "Create meeting for nonClient-Prodej", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2044") + public void createMeetingAndSMSForNonClient_Sell(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .clickMeetingsAndSms() + .typeName(nonClient.fullName()) + .typePhoneNumber(nonClient.mobileNumber()) + .clickSendEmailCheckbox() + .typeEmail(nonClient.email()) + .selectOM("HRADEC KRÁLOVÉ - OC ATRIUM - Dukelská třída 1713/7") + .setMeetingType("Prodej") + .setProduct("Flexikredit") + .clickCalendar() + .clickNextMonth() + .clickAvailableDayInCalendar() + .selectTime(2) + .typeValue("100000") + .typeInterestRate("6,5") + .clickNotes() + .clickFirstTaxReturnDocument() + .clickBirthCertificateDocument() + .clickCreditCardDocument() + .clickSendWithoutRCCheck(); + } + + @TestCase(name = "Create meeting for nonClient-Servis", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2045") + public void createMeetingAndSMSForNonClient_Servis(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .clickMeetingsAndSms() + .typeName(nonClient.fullName()) + .typePhoneNumber(nonClient.mobileNumber()) + .clickSendEmailCheckbox() + .typeEmail(nonClient.email()) + .selectOM("KLATOVY - Rybníčky 812") + .setMeetingType("Servis") + .clickCalendar() + .clickNextMonth() + .clickAvailableDayInCalendar() + .selectTime(2) + .clickNotes() + .typeIntoNotes("test-servis") + .clickDrivingLicenseDocument() + .clickIDCardDocument() + .clickSendWithoutRCCheck(); + } + + @TestCase(name = "Create meeting for nonClient-Retence", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2046") + public void createMeetingAndSMSForNonClient_Retence(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .clickMeetingsAndSms() + .typeName(nonClient.fullName()) + .typePhoneNumber(nonClient.mobileNumber()) + .clickSendEmailCheckbox() + .typeEmail(nonClient.email()) + .selectOM("PARDUBICE I - náměstí Republiky 2686") + .setMeetingType("Retence") + .clickCalendar() + .clickNextMonth() + .clickAvailableDayInCalendar() + .selectTime(2) + .typeValue("1180000") + .typeInterestRate("10,5") + .clickNotes() + .typeIntoNotes("Test-Retence") + .clickConfirmationOfIncomeDocument() + .clickDrivingLicenseDocument() + .clickLoanAgreementsDocument() + .clickSendWithoutRCCheck(); + } + + @TestCase(name = "Create meeting for Client-Prodej", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2041") + public void createMeetingAndSMSForClient_Sell(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickMeetingsAndSms() + .typePhoneNumber(nonClient.mobileNumber()) + .clickSendEmailCheckbox() + .selectOM("TÁBOR - Palackého 357/5") + .setMeetingType("Prodej") + .setProduct("Platební karta") + .clickCalendar() + .clickNextMonth() + .clickAvailableDayInCalendar() + .selectTime(2) + .typeValue("100000") + .typeInterestRate("6,5") + .clickNotes() + .clickFirstTaxReturnDocument() + .clickBirthCertificateDocument() + .clickCreditCardDocument() + .clickSend(); + + } + + @TestCase(name = "Create meeting for Client-Retence", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2043") + public void createMeetingAndSMSForClient_Retence(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickMeetingsAndSms() + .typePhoneNumber(nonClient.mobileNumber()) + .clickSendEmailCheckbox() + .selectOM("VYŠKOV - Husova 111/1") + .setMeetingType("Retence") + .clickCalendar() + .clickNextMonth() + .clickAvailableDayInCalendar() + .selectTime(2) + .typeValue("1180000") + .typeInterestRate("10,5") + .clickNotes() + .typeIntoNotes("Test-Retence") + .clickLoanAgreementsDocument() + .clickSend(); + } + + @TestCase(name = "Create meeting for Client-Servis", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2042") + public void createMeetingAndSMSForClient_Servis(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickMeetingsAndSms() + .typePhoneNumber(nonClient.mobileNumber()) + .clickSendEmailCheckbox() + .selectOM("SEDLČANY - nám. T. G. Masaryka 34") + .setMeetingType("Servis") + .clickCalendar() + .clickNextMonth() + .clickAvailableDayInCalendar() + .selectTime(2) + .typeIntoNotes("test-servis") + .clickIDCardDocument() + .clickPasportDocument() + .clickSend(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/CurrentAccountTests.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/CurrentAccountTests.java new file mode 100644 index 0000000..a3491b6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/CurrentAccountTests.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Current accounts tests") +public class CurrentAccountTests { + + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + + @BeforeAll + public void getInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.currentAccountTests.rc"); + } + + @TestCase(name = "Current account - Free bank statements", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2097") + public void currentAccountFreeBankStatements(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials){ + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.currentAccountTasks().stepsToFirstAccountStatement(rcOfExistingClient)) + .clickStatementWithoutFeeButton() + .then(operationsTasks.currentAccountTasks().checkIbSbCheckboxAndCheckRequirement()); + } + + @TestCase(name = "Current account - Bank statements with fee", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2096") + public void currentAccountBankStatementsWithFee(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials){ + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.currentAccountTasks().stepsToFirstAccountStatement(rcOfExistingClient)) + .clickStatementWithFeeButton() + .then(operationsTasks.currentAccountTasks().checkIbSbCheckboxAndCheckRequirement()) + .clickAccountList() + .selectFirstCurrentAccCombobox(1) + .clickTransactions() + .checkFirstStatementValue("300"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/DebitCardDisablingOnlinePayments.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/DebitCardDisablingOnlinePayments.java new file mode 100644 index 0000000..e5919bc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/DebitCardDisablingOnlinePayments.java @@ -0,0 +1,90 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Disabling online payments") + +public class DebitCardDisablingOnlinePayments { + private OperationsTasks operationsTasks; + private String rcOfExistingClientFO; + private String cifOfExistingClientFOP; + private String icoOfExistingClientPO; + + @BeforeAll + public void setupInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClientFO = harness.getSystemOrConfigValue("cc.disablingOnlinePaymentsClientFO.rc"); + cifOfExistingClientFOP = harness.getSystemOrConfigValue("cc.disablingOnlinePaymentsClientFOP.cif"); + icoOfExistingClientPO = harness.getSystemOrConfigValue("cc.disablingOnlinePaymentsClientPO.ico"); + } + + @TestCase(name = "Disabling online payments", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2202") + public void disablingOnlinePaymentsFO(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.searchClient().byRc(rcOfExistingClientFO)) + .then(operationsTasks.debitCardChangesTasks().stepsToTurnOffInternetPayments()) + .checkDemandDescriptionFirstRow("Call centrum Banka - PLATEBNÍ KARTA - Žádost o akci - MO/TO Transakce - Deaktivace služby") + .checkDemandDescriptionSecondRow("Call centrum Banka - PLATEBNÍ KARTA - platby přes internet - Deaktivace služby") + .clickTransactionsSettings() + .clickInternetTransactionsOn() + .clickSaveWithExpectedInfoError() + .clickHomePage() + .clickSettings() + .doubleClickOpsCallcentrumBasisAccess() + .clickSaveChangeOfPrivilages() + .then(operationsTasks.searchClient().byRc(rcOfExistingClientFO)) + .clickDebitCard() + .then(operationsTasks.debitCardChangesTasks().stepsToTurnOnInternetPayments()) + .checkDemandDescriptionFirstRow("Call centrum Banka - PLATEBNÍ KARTA - Žádost o akci - MO/TO Transakce - Aktivace služby") + .checkDemandDescriptionSecondRow("Call centrum Banka - PLATEBNÍ KARTA - platby přes internet - Aktivace služby"); + } + + @TestCase(name = "Disabling online payments", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2203") + public void disablingOnlinePaymentsFOP(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.searchClient().byCif(cifOfExistingClientFOP)) + .then(operationsTasks.debitCardChangesTasks().stepsToTurnOffInternetPayments()) + .checkDemandDescriptionFirstRow("Call centrum Banka - PLATEBNÍ KARTA - Žádost o akci - MO/TO Transakce - Deaktivace služby") + .checkDemandDescriptionSecondRow("Call centrum Banka - PLATEBNÍ KARTA - platby přes internet - Deaktivace služby") + .then(operationsTasks.debitCardChangesTasks().stepsToTurnOnInternetPayments()) + .checkDemandDescriptionFirstRow("Call centrum Banka - PLATEBNÍ KARTA - Žádost o akci - MO/TO Transakce - Aktivace služby") + .checkDemandDescriptionSecondRow("Call centrum Banka - PLATEBNÍ KARTA - platby přes internet - Aktivace služby"); + } + + @TestCase(name = "Disabling online payments", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2198") + public void disablingOnlinePaymentsPO(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.searchClient().byIco(icoOfExistingClientPO)) + .clickContinueOnFirstClient() + .then(operationsTasks.debitCardChangesTasks().stepsToTurnOffInternetPayments()) + .checkDemandDescriptionFirstRow("Call centrum Banka - PLATEBNÍ KARTA - Žádost o akci - MO/TO Transakce - Deaktivace služby") + .checkDemandDescriptionSecondRow("Call centrum Banka - PLATEBNÍ KARTA - platby přes internet - Deaktivace služby") + .then(operationsTasks.debitCardChangesTasks().stepsToTurnOnInternetPayments()) + .checkDemandDescriptionFirstRow("Call centrum Banka - PLATEBNÍ KARTA - Žádost o akci - MO/TO Transakce - Aktivace služby") + .checkDemandDescriptionSecondRow("Call centrum Banka - PLATEBNÍ KARTA - platby přes internet - Aktivace služby"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/DebitCardTests.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/DebitCardTests.java new file mode 100644 index 0000000..ebdd43a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/DebitCardTests.java @@ -0,0 +1,70 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Debit card tests") +public class DebitCardTests { + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + private String phoneNumber; + + @BeforeAll + public void setupInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.debitCardTestsClient.rc"); + phoneNumber = harness.getSystemOrConfigValue("cc.debitCardTests.phonenumber"); + } + + @Order(1) + @TestCase(name = "Debit temporary block", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2093") + public void debitTemporaryBlock(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.debitCardChangesTasks().searchClientAndCheckNumberofCard(rcOfExistingClient)) + .clickBlocation() + .selectReason("Dočasná blokace") + .fillIntoTelephoneNumberBox(phoneNumber) + .clickCalendar() + .clickNextMonth() + .clickRegularDay() + .clickHolder() + .clickSubmitSaveButton() + .clickConfirmBlockButton() + .clickRequirementButton() + .clickRefreshButton() + .assertReqTempBlock("Call centrum Banka - PLATEBNÍ KARTA - Žádost o akci - dočasná blokace"); + } + + @Order(2) + @TestCase(name = "Unblock of temporary block on debit card", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2094") + public void unblockOfTemporaryBlockOnDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.debitCardChangesTasks().searchClientAndCheckNumberofCard(rcOfExistingClient)) + .clickBlocation() + .selectReasonUnblock("Bez poplatku") + .clickUnblockDebitCardButton() + .clickConfirmAlertButton() + .clickRequirementButton() + .clickRefreshButton() + .assertReqTempUnblock("Call centrum Banka - PLATEBNÍ KARTA - Žádost o akci - Odblokace - dočasné blokace"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/GdprTests.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/GdprTests.java new file mode 100644 index 0000000..7367282 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/GdprTests.java @@ -0,0 +1,106 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Gdpr Tests") +public class GdprTests { + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + + @BeforeAll + public void setupInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.GdprClient.rc"); + } + + @Order(1) + @TestCase(name = "Nastavení MKT souhlasu - jednotlivé kanály - email", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2104") + public void mktConsentSettingsEmail(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.searchClient().byRc(rcOfExistingClient)) + .clickClientConsents() + .clickRevokeEmail() + .checkIfMMBTitleIsShowingExpectedText() + .then(operationsTasks.GdprTasks().checkIfEmailConsentIsChange()) + .clickHistoryConsents() + .checkIfIsSelectedTodayDate() + .clickSearchHistory() + .clickdetailOfListChange() + .checkTypeOfConsentEmail("Souhlas se zasíláním marketingových nabídek e-mailem (mj. ATM, Sociální sítě, Instant Messaging)") + .checkConsentsStatusSet("odvolaný") + .clickRequirement() + .clickRefreshRequirement() + .clickDetailOfRequirement() + .checkNoteDescription("UFO - Souhlasy - Marketing") + .checkSolutionDescription("UFO - Vyřešeno - Souhlas odvolán") + .closeRecorderWindow() + .onClientConsentsPage() + .clickClientConsents() + .selectTypeOfPrint(2) + .clickGeneratePrint() + .checkIfEmailCheckboxIsDisabled() + .checkIfIBSBIsChecked() + .clickSendButton() + .onClientConsentsPage(); + } + + @Order(2) + @TestCase(name = "Nastavení MKT souhlasu - jednotlivé kanály - pošta", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2105") + public void mktConsentSettingsPost(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.searchClient().byRc(rcOfExistingClient)) + .clickClientConsents() + .clickGiveAllConsents() + .acceptAlert() + .clickHistoryConsents() + .checkIfIsSelectedTodayDate() + .clickSearchHistory() + .clickdetailOfListChange() + .then(operationsTasks.GdprTasks().checkIfTypeOfConsentAreChanged()) + .clickRequirement() + .clickRefreshRequirement() + .clickDetailOfRequirement() + .checkNoteDescription("UFO - Souhlasy - Marketing") + .checkSolutionDescription("UFO - Vyřešeno - Souhlas udělen") + .closeRecorderWindow() + .onClientConsentsPage() + .clickRevokePostConsent() + .checkIfMMBTitleIsShowingExpectedText() + .then(operationsTasks.GdprTasks().checkIfPostConsentIsChange()) + .clickHistoryConsents() + .checkIfIsSelectedTodayDate() + .clickSearchHistory() + .clickdetailOfListChange() + .checkConsentsStatusSet("odvolaný") + .clickRequirement() + .clickRefreshRequirement() + .clickDetailOfRequirement() + .checkNoteDescription("UFO - Souhlasy - Marketing") + .checkSolutionDescription("UFO - Vyřešeno - Souhlas odvolán") + .closeRecorderWindow() + .onClientConsentsPage() + .clickGiveAllConsents() + .acceptAlert() + .clickRequirement(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/SavingAccountTests.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/SavingAccountTests.java new file mode 100644 index 0000000..1b6532c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/SavingAccountTests.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Saving account tests") +public class SavingAccountTests { + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + + @BeforeAll + public void setupInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.savingAccountTestsClient.rc"); + } + + @TestCase(name = "Change of distribution statement on saving account", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2101") + public void changeOfDistributionStatementOnSavingAccount(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.savingAccountTasks().searchClientAndClickOnAccountList(rcOfExistingClient)) + .clickDistributionButton() + .clickSavingsAccountRadio() + .acceptAlertChangeDistribution() + .selectAnotherDistributionOfStatement() + .clickChangeDistribution() + .checkIfIBSBIsChecked() + .clickSendButton() + .onStatementsDistributionPage() + .clickBackButton() + .clickDemand() + .clickRefreshRequirementButton() + .checkDemandDescriptionFirstRow("MMB - Zákaznický servis - Změna v DTB - Změna distribuce výpisu") + .clickCorrespondence() + .checkDistributionAndGetTime(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/SendingDebitCardOnOM.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/SendingDebitCardOnOM.java new file mode 100644 index 0000000..47c7cfc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/SendingDebitCardOnOM.java @@ -0,0 +1,77 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage.ACTUAL_ADDRESS_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Change address - sending debit card on OM") +public class SendingDebitCardOnOM { + + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + private String icoOfExistingClient; + private final Address ADDRESS_BENESOV = Address.builder().street("Tyršova").city("Benešov").zip("25601").descriptiveNumber("2077").build(); + private final Address ADDRESS_BEROUN = Address.builder().street("Havlíčkova").city("Beroun").zip("26601").descriptiveNumber("115").build(); + private final String expectedPostOffice = "MONETA Money Bank, a.s."; + private final String expectedResultText = "Call centrum Banka - PLATEBNÍ KARTA - Žádost o akci - změna adresy PIN"; + + @BeforeAll + public void setupInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.sendingDebitCardOnOmFO.rc"); + icoOfExistingClient = harness.getSystemOrConfigValue("cc.sendingDebitCardOnOmFOP.ico"); + } + + @TestCase(name = "Change address - sending debit card on OM - FO", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2207") + public void addressChangeSendingDebitCardOnOmFO(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .then(operationsTasks.searchClient().byRc(rcOfExistingClient)) + .clickDebitCard() + .storeDebitCardSendingAddressStreetLabel() + .clickDataChangesButton() + .then(operationsTasks.debitCardChangesTasks() + .setSendingAddressAndCheckChange(getAnotherAddress(harness.get(ACTUAL_ADDRESS_KEY)), expectedPostOffice, expectedResultText) + ); + } + + @TestCase(name = "Change address - sending on OM with debit card - FOP", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2208") + public void addressChangeSendingDebitCardOnOmFOP(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(icoOfExistingClient) + .searchBy(SearchBy.ICO) + .onClientDetailsPage() + .clickDebitCard() + .storeDebitCardSendingAddressStreetLabel() + .clickDataChangesButton() + .then(operationsTasks.debitCardChangesTasks() + .setSendingAddressAndCheckChange(getAnotherAddress(harness.get(ACTUAL_ADDRESS_KEY)), expectedPostOffice, expectedResultText) + ); + } + + private Address getAnotherAddress(String actualAddress) { + if (actualAddress.equalsIgnoreCase(ADDRESS_BENESOV.getStreet() + " " + ADDRESS_BENESOV.getDescriptiveNumber())) { + return ADDRESS_BEROUN; + } else { + return ADDRESS_BENESOV; + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/SendingSmsMessage.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/SendingSmsMessage.java new file mode 100644 index 0000000..599cb54 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/SendingSmsMessage.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Sending SMS Message") +public class SendingSmsMessage { + private OperationsTasks operationsTasks; + + @BeforeAll + public void getSetup(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + } + + @TestCase(name = "Sending SMS Message - Anonym Client", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2118") + public void sendingSmsMessageAnonymClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .clickMeetingsAndSms() + .clickSendingSms() + .selectTypeSms(1) + .typeIntoTelephoneClientTextBox("720867267") + .clickCentralMmbCheckBox() + .clickSendButton() + .clickMeetingsAndSms() + .clickSendingSms() + .selectTypeSms(1) + .typeIntoTelephoneClientTextBox("720867267") + .selectOmFromComboBox(86002420) + .clickMondayCheckBox() + .clickWednesdayCheckBox() + .typeIntoTelephoneOmTextBox("720867267") + .clickSendButton(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/UfoCrcTests.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/UfoCrcTests.java new file mode 100644 index 0000000..2bde99c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/cczakladbanka/UfoCrcTests.java @@ -0,0 +1,101 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.cczakladbanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.recorder.RecorderNameOfGroup; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "UFOCRC") +public class UfoCrcTests { + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + + @BeforeAll + public void setupInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.ufoCrc.rc"); + } + + @TestCase(name = "UFOCRC - ClientLoading", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2112") + public void ufoCrcClientLoading(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .copyRcOfClientToClipboard() + .clickRecorder() + .clickInsertSubjectFromClipboard() + .clickBirthNumberInSubject() + .clickLoadSubjectArrow() + .checkNameOfClient("Automaticky Nebrat") + .closeRecorderWindow() + .onClientSearchPage() + .clickRecorder() + .clickBirthNumberInSubject() + .fillSearchSubjectInput(rcOfExistingClient) + .clickLoadSubjectArrow() + .checkNameOfClient("Automaticky Nebrat") + .checkPresentOfRequirement() + .closeRecorderWindow() + .onClientSearchPage() + .copyRcOfClientToClipboard() + .clickSearchClient() + .onClientDetailsPage() + .copyCifNumberToClipboard() + .clickRecorder() + .fillSearchSubjectInput("") + .clickInsertSubjectFromClipboard() + .clickCifInSubject() + .clickLoadSubjectArrow() + .checkNameOfClient("Automaticky Nebrat") + .checkPresentOfRequirement() + .closeRecorderWindow() + .onClientDetailPage() + .clickHomePage() + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickLoans() + .copyLoansNumberToClipboard() + .clickRecorder() + .insertNumberOfContract() + .checkNameOfClient("Automaticky Nebrat") + .clickLoadSubjectArrow() + .checkNumberOfContractInRequirement(); + } + + @TestCase(name = "UFOCRC - ClientLoadingAndCheckProductsTree", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2128") + public void ufoCrcClientLoadingAndCheckProductsTree(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .copyRcOfClientToClipboard() + .clickSearchClient() + .onClientDetailsPage() + .clickRecorder() + .clickInsertSubjectFromClipboard() + .clickBirthNumberInSubject() + .clickLoadSubjectArrow() + .checkNameOfClient("Automaticky Nebrat") + .clickDetailOfCrcRequirement() + .checkDescriptionOfRequirementDetail() + .clickCloseDetailCrcRequirement() + .then(harness.tasks().ufo().operations().recorder().openCategories(RecorderNameOfGroup.MMB, RecorderNameOfGroup.OM_RETAIL)) + .openItemInTreeMenu("FRAUD") + .checkSolutionsDiv(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/ras/RaSTests.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/ras/RaSTests.java new file mode 100644 index 0000000..29cc659 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/callcenter/jenkinstests/ccretail/ras/RaSTests.java @@ -0,0 +1,142 @@ +package cz.moneta.test.regression.backoffice.callcenter.jenkinstests.ccretail.ras; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskPage.CATEGORY_COMBOBOX; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskPage.SOLVING_GROUP_COMBOBOX; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskPage.SUBCATEGORIES_COMBOBOX; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskPage.TASK_TYPE_COMBOBOX; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "RaS Tests") +public class RaSTests { + + private OperationsTasks operationsTasks; + private String rcOfExistingClient; + + @BeforeAll + public void getInfo(Harness harness) { + operationsTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getSystemOrConfigValue("cc.ras.rc"); + } + + @TestCase(name = "RaS - Filing a complaint on current account", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2047") + public void rasFilingAComplaintCurrentAccount(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickComplaint() + .selectCategory(16) + .selectSubcategory(48) + .selectTypeOfTask(869) + .clickAssignCategoryAndFastSolve() + .clickDontWannaRushIt() + .selectPreferredCanal("email") + .checkComboboxValue(CATEGORY_COMBOBOX, "16") + .checkComboboxValue(SUBCATEGORIES_COMBOBOX, "48") + .checkComboboxValue(TASK_TYPE_COMBOBOX, "869") + .checkComboboxValue(SOLVING_GROUP_COMBOBOX, "ou=Stížnosti,ou=TMS,ou=GEOrgStr,dc=ge,dc=com") + .findUserAndSelectSolver() + .checkBusiness("MONETA Money Bank") + .checkRcClientAndType(rcOfExistingClient) + .checkNameOfTask("Stížnosti - standardní") + .checkCanalOfTask("UFO OPS") + .fillDescription("aaaa") + .typeIntoClientsEmail("matej.liska@moneta.cz") + .clickAssign() + .onTaskPage() + .checkDescriptionSolverEmailAndSolver(rcOfExistingClient, "matej.liska@moneta.cz") + .checkTitleOfFirstAttachment("Notifikace o přijetí reklamace") + .clickFinishAndAcceptAnswerAlert() + .fillNote("aaaa") + .clickFinishOK(); + } + + @TestCase(name = "RaS - Filing a complaint on Car", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2119") + public void rasFilingAComplaintCar(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickComplaint() + .selectCategory(13) + .selectSubcategory(48) + .selectTypeOfTask(275) + .clickAssignCategory() + .selectPreferredCanal("email") + .checkComboboxValue(CATEGORY_COMBOBOX, "13") + .checkComboboxValue(SUBCATEGORIES_COMBOBOX, "48") + .checkComboboxValue(TASK_TYPE_COMBOBOX, "275") + .checkComboboxValue(SOLVING_GROUP_COMBOBOX, "ou=Stížnosti Auto,ou=TMS,ou=GEOrgStr,dc=ge,dc=com") + .findUserAndSelectSolver() + .checkBusiness("MONETA Auto") + .checkRcClientAndType(rcOfExistingClient) + .checkNameOfTask("Stížnosti - standardní auto") + .checkCanalOfTask("UFO OPS") + .fillDescription("aaaa") + .clickAssign() + .onTaskPage() + .typeIntoClientsEmail("matej.liska@moneta.cz") + .clickSaveTask() + .checkDescriptionSolverEmailAndSolver(rcOfExistingClient, "matej.liska@moneta.cz") + .checkStatusLabelContent(" - Update úkolu proběhl v pořádku !") + .clickFinishAndAcceptAnswerAlert() + .fillNote("aaaa") + .clickFinishOK(); + } + + @TestCase(name = "RaS - Filing a complaint on building savings", environments = {PPE, TST1}) + @JiraTestCase(id = "CC-T2120") + public void rasFilingAComplaintBuildingsSavings(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickComplaint() + .selectCategory(76) + .selectSubcategory(48) + .selectTypeOfTask(1576) + .clickAssignCategory() + .selectPreferredCanal("email") + .checkComboboxValue(CATEGORY_COMBOBOX, "76") + .checkComboboxValue(SUBCATEGORIES_COMBOBOX, "48") + .checkComboboxValue(TASK_TYPE_COMBOBOX, "1576") + .checkComboboxValue(SOLVING_GROUP_COMBOBOX, "ou=Stavební spořitelna - reklamace,ou=TMS,ou=GEOrgStr,dc=ge,dc=com") + .findUserAndSelectSolver() + .checkBusiness("MONETA Auto") + .checkRcClientAndType(rcOfExistingClient) + .checkNameOfTask("Reklamace") + .checkCanalOfTask("UFO OPS") + .fillDescription("aaaa") + .clickAssign() + .onTaskPage() + .typeIntoClientsEmail("matej.liska@moneta.cz") + .clickSaveTask() + .checkDescriptionSolverEmailAndSolver(rcOfExistingClient, "matej.liska@moneta.cz") + .checkStatusLabelContent(" - Update úkolu proběhl v pořádku !") + .clickFinishAndAcceptAnswerAlert() + .fillNote("aaaa") + .clickFinishOK(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiExeMessageSearch.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiExeMessageSearch.java new file mode 100644 index 0000000..d0d3937 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiExeMessageSearch.java @@ -0,0 +1,38 @@ +package cz.moneta.test.regression.backoffice.exevido.api; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Api Exe Message Search") +public class ApiExeMessageSearch { + ObjectNode objectNode; + String inputData; + + @TestCase(name = "exe-message-search", environments = {TST1}) + @JiraTestCase(id = "BOC-T8656") + public void exeMessageSearch(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromUfo("/t/backoffice.cluster/exe-message-search/v1") + .withPayloadFromFile("regression/exevido/exeMessage.json") + .post(); + inputData = response.getPayload(); + objectNode = response + .andAssertStatus(200) + .andAssertFieldValue("paginate_max", "10") + .mapResponseIntoObject(ObjectNode.class); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nVstup: " + inputData + "\nVýstup: \n " + objectNode.toPrettyString()); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiExevido.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiExevido.java new file mode 100644 index 0000000..a52c04d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiExevido.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.backoffice.exevido.api; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Api Exevido") +public class ApiExevido { + ObjectNode objectNode; + String inputData; + + @Order(1) + @TestCase(name = "GET_REQSTRS_EXEBINF_001", environments = {TST1}) + @JiraTestCase(id = "BOC-T8759") + public void GET_REQSTRS_EXEBINF_001(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromUfo("/t/backoffice.cluster/GET_REQSTRS_EXEBINF_001/001") + .withPayload("{ICO : 25515560}") + .post(); + inputData = response.getPayload(); + objectNode = response + .andAssertStatus(200) + .mapResponseIntoObject(ObjectNode.class); + } + + @Order(2) + @TestCase(name = "GET_EXE_LIV_MIN_EXE", environments = {TST1}) + @JiraTestCase(id = "BOC-T8760") + public void GET_EXE_LIV_MIN_EXE(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromUfo("/t/backoffice.cluster/EXEVIDO/GET_EXE_LIV_MIN_EXE/001") + .withPayload("{\n" + "\"INBANK\": 1,\n" + "\"INTYP\": 6,\n" + "\"INACCT\": 163374090\n" + "} ") + .post(); + inputData = response.getPayload(); + objectNode = response + .andAssertStatus(200) + .mapResponseIntoObject(ObjectNode.class); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nVstup: \n" + inputData + "\nVýstup: \n " + objectNode.toPrettyString()); + + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiExevidoService.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiExevidoService.java new file mode 100644 index 0000000..0f79b1e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiExevidoService.java @@ -0,0 +1,75 @@ +package cz.moneta.test.regression.backoffice.exevido.api; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import java.util.random.RandomGenerator; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Api Exevido Service") +public class ApiExevidoService { + + ObjectNode objectNode; + String inputData; + + @Order(1) + @TestCase(name = "create incoming message", environments = {TST1}) + @JiraTestCase(id = "BOC-T8655") + public void createMessageIncoming(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromUfo("/t/backoffice.cluster/exe-message-incoming/v1") + .withPayloadFromFile("regression/exevido/incomeMessage.json") + .addField("messageId", String.valueOf(RandomGenerator.getDefault().nextInt(100000000, 999999999))) + .post(); + inputData = response.getPayload(); + objectNode = response + .andAssertStatus(200) + .mapResponseIntoObject(ObjectNode.class); + harness.storeGlobal("MESSAGE_ID", objectNode.findValue("id").asText()); + } + + @EnableIfSet(globalKey = "MESSAGE_ID") + @Order(2) + @TestCase(name = "get message by id") + @JiraTestCase(id = "BOC-T8659") + public void getMessage(Harness harness) { + inputData = "id: " + harness.get("MESSAGE_ID").toString(); + String path = String.format("/t/backoffice.cluster/exevido-service/v1/message/%s/v1", harness.get("MESSAGE_ID").toString()); + objectNode = harness.tasks().wso2().restRequest().prepareGetRequestFromExevido(path) + .get() + .andAssertStatus(200) + .andAssertFieldValue("messageType", "INCOMING") + .mapResponseIntoObject(ObjectNode.class); + } + + @EnableIfSet(globalKey = "MESSAGE_ID") + @Order(3) + @TestCase(name = "incoming message mark as finished", environments = {TST1}) + @JiraTestCase(id = "BOC-T8662") + public void incomingMessageMarkAsFinished(Harness harness) { + inputData = "id: " + harness.get("MESSAGE_ID").toString(); + String path = String.format("/t/backoffice.cluster/exevido-service/v1/incoming-message/%s/mark-as-finished/v1", harness.get("MESSAGE_ID").toString()); + harness.tasks() + .wso2() + .restRequest() + .prepareRequestFromExevido(path) + .withPayload("{}") + .post() + .andAssertStatus(200); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nVstup: \n" + inputData + "\nVýstup: \n " + objectNode.toPrettyString()); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiIsdsDataboxSearch.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiIsdsDataboxSearch.java new file mode 100644 index 0000000..f5e4d97 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiIsdsDataboxSearch.java @@ -0,0 +1,39 @@ +package cz.moneta.test.regression.backoffice.exevido.api; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Api Isds Databox Search") +public class ApiIsdsDataboxSearch { + ObjectNode objectNode; + String inputData; + + @TestCase(name = "/public/isds/databox/search", environments = {TST1}) + @JiraTestCase(id = "BOC-T8657") + public void messagePublicIsdsDataboxSearch(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromUfo("/t/backoffice.cluster/exe-isds-search/v1") + .withPayloadFromFile("regression/exevido/isdsDataboxSearch.json") + .post(); + inputData = response.getPayload(); + objectNode = response + .andAssertStatus(200) + .andAssertFieldValue("isdsStatus", "OK") + .andAssertFieldValue("isdsStatusMessage", "Provedeno úspěšně.") + .mapResponseIntoObject(ObjectNode.class); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nVstup: " + inputData + "\nVýstup: \n " + objectNode.toPrettyString()); + + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiMessageIdAttachments.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiMessageIdAttachments.java new file mode 100644 index 0000000..27f2ea5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiMessageIdAttachments.java @@ -0,0 +1,84 @@ +package cz.moneta.test.regression.backoffice.exevido.api; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Order; + +import java.util.random.RandomGenerator; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.TST1; + + +@TestScenarioWithOrder(name = "Exevido Api Message Id Attachments") +public class ApiMessageIdAttachments { + + JsonNode jsonNode; + String inputData; + + @Order(1) + @TestCase(name = "create incoming message", environments = {TST1}) + @JiraTestCase(id = "BOC-T8655") + public void createMessageIncoming(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromUfo("/t/backoffice.cluster/exe-message-incoming/v1") + .withPayloadFromFile("regression/exevido/incomeMessage.json") + .addField("messageId", String.valueOf(RandomGenerator.getDefault().nextInt(100000000, 999999999))) + .post(); + inputData = response.getPayload(); + jsonNode = response + .andAssertStatus(200) + .mapResponseIntoObject(JsonNode.class); + harness.storeGlobal("MESSAGE_ID", jsonNode.findValue("id").asText()); + } + + @EnableIfSet(globalKey = "MESSAGE_ID") + @Order(2) + @TestCase(name = "Exevido Api Message Id Attachments", environments = {TST1}) + @JiraTestCase(id = "BOC-T8660") + public void messageIdAttachments(Harness harness) { + inputData = "{}" + "\nid: " + harness.get("MESSAGE_ID").toString(); + String path = String.format("/t/backoffice.cluster/exevido-service/v1/message/%s/attachments/v1", harness.get("MESSAGE_ID").toString()); + + jsonNode = harness.tasks() + .wso2() + .restRequest() + .prepareRequestFromExevido(path) + .withPayload("{}") + .post() + .andAssertStatus(200) + .extract(""); + Assertions.assertEquals("OBRATPORUSSP07470975_11092025.pdf", jsonNode.get(0).path("name").toString().replace("\"", "")); + harness.storeGlobal("ATTACHMENT_ID", jsonNode.get(0).path("id").toString()); + } + + @EnableIfSet(globalKey = "ATTACHMENT_ID") + @Order(3) + @TestCase(name = "Exevido Api Attachment Url", environments = {TST1}) + @JiraTestCase(id = "BOC-T8661") + public void messageAttachmentUrl(Harness harness) { + inputData = "{}" + "\nid: " + harness.get("MESSAGE_ID").toString(); + String path = String.format("/t/backoffice.cluster/exevido-service/v1/attachment/%s/file-url/v1", harness.get("ATTACHMENT_ID").toString()); + jsonNode = harness.tasks() + .wso2() + .restRequest() + .prepareRequestFromExevido(path) + .withPayload("{}") + .post() + .andAssertStatus(200) + .mapResponseIntoObject(JsonNode.class); + + Assertions.assertEquals(String.format("https://exevido.tst.moneta-containers.net/api/attachment/v1/%s/file", harness.get("ATTACHMENT_ID").toString()), jsonNode.path("url").toString().replace("\"", "")); + + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nVstup: " + inputData + "\nVýstup: \n " + jsonNode.toPrettyString()); + jsonNode = null; + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiOutgoingMessage.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiOutgoingMessage.java new file mode 100644 index 0000000..9a72576 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiOutgoingMessage.java @@ -0,0 +1,39 @@ +package cz.moneta.test.regression.backoffice.exevido.api; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.TST1; + + +@TestScenario(name = "Exevido Post Outgoing Message") +public class ApiOutgoingMessage { + + ObjectNode objectNode; + String inputData; + + @TestCase(name = "Exevido Post Outgoing Message", environments = {TST1}) + @JiraTestCase(id = "BOC-T8658") + public void messageOutgoing(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromUfo("/t/backoffice.cluster/exe-message-outgoing/v1") + .withPayloadFromFile("regression/exevido/outgoingMessage.json") + .post(); + inputData = response.getPayload(); + objectNode = response + .andAssertStatus(200) + .mapResponseIntoObject(ObjectNode.class); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nVstup: " + inputData + "\nVýstup: \n " + objectNode.toPrettyString()); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiReturnMessageToCategorization.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiReturnMessageToCategorization.java new file mode 100644 index 0000000..6d41601 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/api/ApiReturnMessageToCategorization.java @@ -0,0 +1,61 @@ +package cz.moneta.test.regression.backoffice.exevido.api; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import java.util.random.RandomGenerator; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Api Return Message To Categorization") +public class ApiReturnMessageToCategorization { + + ObjectNode objectNode; + String inputData; + + @Order(1) + @TestCase(name = "create incoming message", environments = {TST1}) + @JiraTestCase(id = "BOC-T8655") + public void createMessageIncoming(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromUfo("/t/backoffice.cluster/exe-message-incoming/v1") + .withPayloadFromFile("regression/exevido/incomeMessage.json") + .addField("messageId", String.valueOf(RandomGenerator.getDefault().nextInt(100000000, 999999999))) + .post(); + inputData = response.getPayload(); + objectNode = response + .andAssertStatus(200) + .mapResponseIntoObject(ObjectNode.class); + harness.storeGlobal("MESSAGE_ID", objectNode.findValue("id").asText()); + } + + @EnableIfSet(globalKey = "MESSAGE_ID") + @Order(3) + @TestCase(name = "incoming message mark as finished", environments = {TST1}) + @JiraTestCase(id = "BOC-T8663") + public void returnMessageToCategorization(Harness harness) { + inputData = "id: " + harness.get("MESSAGE_ID").toString(); + String path = String.format("/t/backoffice.cluster/exevido-service/v1/incoming-message/%s/return-to-categorization/v1", harness.get("MESSAGE_ID").toString()); + harness.tasks() + .wso2() + .restRequest() + .prepareRequestFromExevido(path) + .withPayload("{reason: test}") + .post() + .andAssertStatus(200); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nVstup: \n" + inputData + "\nVýstup: \n " + objectNode.toPrettyString()); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/CheckDataBoxAvailability.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/CheckDataBoxAvailability.java new file mode 100644 index 0000000..d20682f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/CheckDataBoxAvailability.java @@ -0,0 +1,33 @@ +package cz.moneta.test.regression.backoffice.exevido.web.inheritance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.exevido.DataBoxType; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "Check Data Box Availability") +public class CheckDataBoxAvailability { + + @TestCase(name = "Check Data Box Availability") + @JiraTestCase(id = "BOC-T8943") + public void checkDataBoxAvailability(Harness harness, @Key(Keys.exevido.inheritance) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .checkNofiticationText("Přihlášení k MMB") + .thenSame(harness.tasks().exevidoTasks().selectDataBox().selectDataBoxMmbType(DataBoxType.GEMM)) + .checkNofiticationText("Přihlášení k GEMM") + .thenSame(harness.tasks().exevidoTasks().selectDataBox().selectDataBoxMmbType(DataBoxType.MA)) + .checkNofiticationText("Přihlášení k MA") + .thenSame(harness.tasks().exevidoTasks().selectDataBox().selectDataBoxMmbType(DataBoxType.ML)) + .checkNofiticationText("Přihlášení k ML") + .thenSame(harness.tasks().exevidoTasks().selectDataBox().selectDataBoxMmbType(DataBoxType.NAMC)) + .checkNofiticationText("Přihlášení k NAMC") + .thenSame(harness.tasks().exevidoTasks().selectDataBox().selectDataBoxMssAll()) + .checkNofiticationText("Výběr všech dostupných DS byl úspěšný."); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/CreateNewIncomingMessage.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/CreateNewIncomingMessage.java new file mode 100644 index 0000000..6810d69 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/CreateNewIncomingMessage.java @@ -0,0 +1,117 @@ +package cz.moneta.test.regression.backoffice.exevido.web.inheritance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.exevido.DataBoxType; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.exevido.pages.NewIncomingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenarioWithOrder(name = "Create New Incoming Message") +public class CreateNewIncomingMessage { + + @Order(1) + @TestCase(name = "Create New Incoming Message Without Case") + @JiraTestCase(id = "BOC-T8944") + public void withoutCase(Harness harness, @Key(Keys.exevido.inheritance) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .fillSubject("Sára Blínová") + .fillSender("uchhtu9") + .fillTypeMessage("D - Žádost [M] - MMB") + .uploadAttachment(ATTACHMENT_PATH) + .clickSave() + .storeMessageId() + .clickInheritanceMmbWithoutFolder() + .searchByMessageId(harness.get(MESSAGE_ID_KEY)) + .checkFirstIncomingMessagePresence() + .checkMessageTitlePresence("Sára Blínová"); + } + + @Order(2) + @TestCase(name = "Create New Incoming Message For Processing") + @JiraTestCase(id = "BOC-T8945") + public void forProcessing(Harness harness, @Key(Keys.exevido.inheritance) Credentials credentials) { + String subjectForProcessing = harness.getConfig("commercial.exevido.subject-for-processing"); + String attachmentForProcessing = harness.getConfig("commercial.exevido.attachment-for-processing"); + String internalReferenceNumberForProcessing = harness.getConfig("commercial.exevido.internal-reference-number-for-processing"); + + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .fillSubject(subjectForProcessing) + .fillSender("Axis Ostrava") + .fillTypeMessage("D - Žádost [M] - MMB") + .uploadAttachment(attachmentForProcessing) + .clickSave() + .storeMessageId() + .clickInheritanceMmbForProcessing() + .clickRequestMmb() + .searchByMessageId(harness.get(MESSAGE_ID_KEY)) + .clickIncomingMessageRow(30) + .checkInternalReferenceNumber(internalReferenceNumberForProcessing); + } + + @Order(3) + @TestCase(name = "Create New Incoming Message Copy") + @JiraTestCase(id = "BOC-T8946") + public void copy(Harness harness, @Key(Keys.exevido.inheritance) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .fillSubject("Test kopie") + .fillSender("Axis Ostrava") + .fillTypeMessage("D - Žádost [M] - MMB") + .uploadAttachment(ATTACHMENT_PATH) + .clickSave() + .storeMessageId() + .sendToAnotherDataBox() + .clickUniversalSingleSelect() + .fillSingleSelect(DataBoxType.MSS.getValue()) + .clickSubmitSingleSelect() + .clickConfirm() + .checkMessageId(harness.get(MESSAGE_ID_KEY).toString().replaceFirst("$", "-1")); + } + + @Order(4) + @TestCase(name = "Create Incoming Message Change Message Type") + @JiraTestCase(id = "BOC-T8952") + public void changeMessageType(Harness harness, @Key(Keys.exevido.inheritance) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .fillSubject("Změna typu dokumentu") + .fillSender("Axis Ostrava") + .fillTypeMessage("D - Žádost [M] - MMB") + .uploadAttachment(ATTACHMENT_PATH) + .clickSave() + .clickChangeMessageType() + .clickUniversalSingleSelect() + .fillSingleSelect("D - Obecná - MMB") + .clickSubmitSingleSelect() + .storeMessageId(); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/DelegatingAnIncomingMessage.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/DelegatingAnIncomingMessage.java new file mode 100644 index 0000000..09e5aac --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/DelegatingAnIncomingMessage.java @@ -0,0 +1,73 @@ +package cz.moneta.test.regression.backoffice.exevido.web.inheritance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.exevido.pages.NewIncomingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenarioWithOrder(name = "Delegating An Incoming Message") +public class DelegatingAnIncomingMessage { + + @Order(1) + @TestCase(name = "Delegation To Assignee") + @JiraTestCase(id = "BOC-T9055") + public void delegationToAssignee(Harness harness, @Key(Keys.exevido.inheritance) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .fillSubject("DĚD 10 - delegování") + .fillSender("Axis Ostrava") + .fillTypeMessage("D - Žádost [M] - MMB") + .uploadAttachment(ATTACHMENT_PATH) + .clickSave() + .acceptAlertIfVisible() + .storeMessageId() + .clickIncomingMessages() + .clickAllIncomingMessages() + .searchByMessageId(harness.get(MESSAGE_ID_KEY)) + .clickIncomingMessageRow(30) + .fillAssignee("Simona Fošnárová") + .clickDelegate() + .clickIncomingMessageRow(30) + .checkWarning("Tato zpráva je zpracovávána jiným uživatelem. Zpráva je zpracovávána uživatelem"); + } + + @Order(2) + @TestCase(name = "Delegation To Group") + @JiraTestCase(id = "BOC-T8953") + public void delegatingToGroup(Harness harness, @Key(Keys.exevido.inheritance) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .fillSubject("DĚD 10 - delegování") + .fillSender("Axis Ostrava") + .fillTypeMessage("D - Žádost [M] - MMB") + .uploadAttachment(ATTACHMENT_PATH) + .clickSave() + .acceptAlertIfVisible() + .storeMessageId() + .clickIncomingMessages() + .clickAllIncomingMessages() + .searchByMessageId(harness.get(MESSAGE_ID_KEY)) + .clickIncomingMessageRow(30) + .fillGroup("01 - Součinnosti") + .clickDelegate(); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/MarkMessageAsIrrelevant.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/MarkMessageAsIrrelevant.java new file mode 100644 index 0000000..203dbfe --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/MarkMessageAsIrrelevant.java @@ -0,0 +1,38 @@ +package cz.moneta.test.regression.backoffice.exevido.web.inheritance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.exevido.pages.NewIncomingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Mark message as irrelevant") +public class MarkMessageAsIrrelevant { + + @TestCase(name = "Mark message as irrelevant") + @JiraTestCase(id = "BOC-T8948") + public void markMessageAsIrrelevant(Harness harness, @Key(Keys.exevido.inheritance) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickInheritanceMmbForProcessing() + .clickRequestMmb() + .searchByDateRange("01.08.2023 - 31.08.2025") + .clickIncomingMessageRowCheckbox() + .saveMessageID() + .clickMarkAsIrrelevantMessage() + .addIrrelevantReason("Test irelevantní"); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/ReturnOfTheMessageToTheMailroom.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/ReturnOfTheMessageToTheMailroom.java new file mode 100644 index 0000000..f55a56c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/inheritance/ReturnOfTheMessageToTheMailroom.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.backoffice.exevido.web.inheritance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.exevido.pages.NewIncomingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Return Of The Message To The Mailroom") +class ReturnOfTheMessageToTheMailroom { + + @TestCase(name = "Return Of The Message To The Mailroom") + @JiraTestCase(id = "BOC-T8949") + public void returnOfTheMessageToTheMailroom(Harness harness, @Key(Keys.exevido.inheritance) Credentials inheritance, @Key(Keys.exevido.mailroom) Credentials mailroom) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(mailroom)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .fillSubject("Vrácení na podatelnu - dědictví") + .fillSender("5nqh2a3") + .fillTypeMessage("Obecná - MMB") + .uploadAttachment(ATTACHMENT_PATH) + .fillAssigneeUserGroup("05 - Dědictví") + .clickSave() + .storeMessageId() + .logOutFromExevido() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(inheritance)) + .clickIncomingMessages() + .clickIncomingMessages() + .clickAllIncomingMessages() + .searchByMessageId(harness.get(MESSAGE_ID_KEY)) + .clickIncomingMessageRow(30) + .clickReturn() + .fillReason("DĚD 7 TEST") + .clickAddReason() + .checkMessageReturn("Zpráva byla vrácena na podatelnu k dalšímu zpracování"); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/CreateNewIncomingMessage.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/CreateNewIncomingMessage.java new file mode 100644 index 0000000..f98c3b1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/CreateNewIncomingMessage.java @@ -0,0 +1,41 @@ +package cz.moneta.test.regression.backoffice.exevido.web.mailroom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.exevido.pages.NewIncomingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Create Incoming Message") +public class CreateNewIncomingMessage { + + @TestCase(name = "Create Incoming Message") + @JiraTestCase(id = "BOC-T8504") + public void createIncomingMessage(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .fillSubject("Automat TEST") + .fillSender("5nqh2a3") + .fillTypeMessage("Obecná - MMB") + .uploadAttachment(ATTACHMENT_PATH) + .fillAssigneeUserGroup("F00102") + .clickSave() + .storeMessageId(); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/CreateNewOutgoingMessage.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/CreateNewOutgoingMessage.java new file mode 100644 index 0000000..afd3fde --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/CreateNewOutgoingMessage.java @@ -0,0 +1,67 @@ +package cz.moneta.test.regression.backoffice.exevido.web.mailroom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenarioWithOrder(name = "Create Outgoing Message") +public class CreateNewOutgoingMessage { + + @Order(1) + @TestCase(name = "Create Outgoing Message") + @JiraTestCase(id = "BOC-T8316") + public void createOutgoingMessage(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickOutgoingMessages() + .clickAllOutgoingMessages() + .clickCreateNewOutgoingMessage() + .fillRecipient("5nqh2a3") + .pressEnter() + .uploadAttachment(ATTACHMENT_PATH) + .fillSubject("Automat TEST") + .fillAssigneeUserGroup("F00102") + .clickSendMessageDropdown() + .clickSendMessageNow() + .checkMessageCorrectlySend() + .storeMessageId(); + } + + @Order(2) + @TestCase(name = "Create Outgoing Message With Failure") + @JiraTestCase(id = "BOC-T8838") + public void createOutgoingMessageWithFailure(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickOutgoingMessages() + .clickAllOutgoingMessages() + .clickCreateNewOutgoingMessage() + .fillRecipient(harness.getConfig("commercial.exevido.recipient-for-send-failure")) + .pressEnter() + .uploadAttachment(ATTACHMENT_PATH) + .fillSubject("Automat TEST") + .fillAssigneeUserGroup("F00102") + .clickSendMessageDropdown() + .clickSendMessageNow() + .checkMessageIncorrectlySend() + .storeMessageId(); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/DelegatingAnIncomingMessage.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/DelegatingAnIncomingMessage.java new file mode 100644 index 0000000..86a3b39 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/DelegatingAnIncomingMessage.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.backoffice.exevido.web.mailroom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.exevido.pages.NewIncomingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Delegating An Incoming Message") +public class DelegatingAnIncomingMessage { + + @TestCase(name = "Delegating An Incoming Message") + @JiraTestCase(id = "BOC-T8500") + public void delegatingAnIncomingMessage(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .fillSubject("Automat TEST - delegovaná") + .fillSender("5nqh2a3 ") + .fillTypeMessage("Obecná - MMB") + .fillAssigneeUserGroup("F00102") + .uploadAttachment(ATTACHMENT_PATH) + .clickSave() + .acceptAlertIfVisible() + .storeMessageId() + .clickIncomingMessages() + .clickAllIncomingMessages() + .searchByMessageId(harness.get(MESSAGE_ID_KEY)) + .clickIncomingMessageRow(30) + .fillAssignee("Simona Fošnárová") + .clickDelegate() + .clickIncomingMessageRow(30) + .checkWarning("Tato zpráva je zpracovávána jiným uživatelem. Zpráva je zpracovávána uživatelem"); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/DownloadAttachments.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/DownloadAttachments.java new file mode 100644 index 0000000..360c4ba --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/DownloadAttachments.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.backoffice.exevido.web.mailroom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.exevido.pages.NewIncomingMessagePage; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.exevido.pages.NewIncomingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.SECOND_ATTACHMENT_PATH; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Download Attachments") +public class DownloadAttachments { + + @TestCase(name = "Download Attachments") + @JiraTestCase(id = "BOC-T8502") + public void downloadAttachments(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .uploadAttachment(ATTACHMENT_PATH) + .uploadAttachment(SECOND_ATTACHMENT_PATH) + .fillSubject("Automat TEST") + .fillSender("5nqh2a3 ") + .fillTypeMessage("Obecná - MMB") + .fillAssigneeUserGroup("F00102") + .clickSave() + .storeMessageId() + .clickIncomingMessages() + .clickAllIncomingMessages() + .searchByMessageId(harness.get(MESSAGE_ID_KEY)) + .clickIncomingMessageRow(30) + .downloadAttachments() + .downloadAttachment() + .clickMoreInformation() + .generatePdf() + .downloadMsg() + .downloadPdf() + .clickProcessed(); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(NewIncomingMessagePage.MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/DownloadZFO.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/DownloadZFO.java new file mode 100644 index 0000000..b81f03f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/DownloadZFO.java @@ -0,0 +1,44 @@ +package cz.moneta.test.regression.backoffice.exevido.web.mailroom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Download ZFO") +public class DownloadZFO { + + private String messageZfoId; + + @BeforeAll + protected void setUp(Harness harness) { + messageZfoId = harness.getConfig("commercial.exevido.message-zfo-id"); + } + + @TestCase(name = "Download ZFO") + @JiraTestCase(id = "BOC-T9015") + public void downloadZFO(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMss(credentials)) + .clickAllIncomingMessages() + .searchByMessageId(messageZfoId) + .clickIncomingMessageRow(30) + .clickMoreInformation() + .downloadZfoDeliveryReceipt() + .downloadZfo(); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + messageZfoId); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/EditTemplate.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/EditTemplate.java new file mode 100644 index 0000000..4728d42 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/EditTemplate.java @@ -0,0 +1,43 @@ +package cz.moneta.test.regression.backoffice.exevido.web.mailroom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Edit Template Test") +public class EditTemplate { + + @TestCase(name = "Edit Template Test") + @JiraTestCase(id = "BOC-T8840") + public void editTemplate(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickOutgoingMessages() + .clickAllOutgoingMessages() + .clickCreateNewOutgoingMessage() + .clickPdfTemplateGenerating() + .clickEmptyTemplateMmb() + .storePdfViewerContent() + .clickEditTemplate() + .editTemplate() + .clickSaveTemplate() + .checkChangeOfPdfContent() + .clickSaveConcept() + .storeMessageId(); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/MarkIncomingMessageAsResolved.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/MarkIncomingMessageAsResolved.java new file mode 100644 index 0000000..4b76b84 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/MarkIncomingMessageAsResolved.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.backoffice.exevido.web.mailroom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.exevido.pages.NewIncomingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Mark Incoming Message As Resolved") +public class MarkIncomingMessageAsResolved { + + @TestCase(name = "Mark Incoming Message As Resolved") + @JiraTestCase(id = "BOC-T8501") + public void markIncomingMessageAsResolved(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .fillSubject("Automat TEST - vyřízená") + .fillSender("5nqh2a3 ") + .fillTypeMessage("Obecná - MMB") + .uploadAttachment(ATTACHMENT_PATH) + .fillAssigneeUserGroup("F00102") + .clickSave() + .acceptAlertIfVisible() + .storeMessageId() + .clickIncomingMessages() + .clickAllIncomingMessages() + .searchByMessageId(harness.get(MESSAGE_ID_KEY)) + .clickIncomingMessageRow(30) + .clickProcessed(); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/MessageBetweenMailboxes.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/MessageBetweenMailboxes.java new file mode 100644 index 0000000..85905da --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/MessageBetweenMailboxes.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.backoffice.exevido.web.mailroom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Message Between Mailboxes") +public class MessageBetweenMailboxes { + + private String receiver; + + @BeforeAll + protected void setUp(Harness harness) { + receiver = harness.getConfig("commercial.exevido.receiver"); + } + + @TestCase(name = "Message Between Mailboxes") + @JiraTestCase(id = "BOC-T8560") + public void messageBetweenMailboxes(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickOutgoingMessages() + .clickAllOutgoingMessages() + .clickCreateNewOutgoingMessage() + .fillRecipient(receiver) + .pressEnter() + .uploadAttachment(ATTACHMENT_PATH) + .fillSubject("Automat TEST") + .fillAssigneeUserGroup("F00102") + .clickSendMessageDropdown() + .clickSendMessageNow() + .checkMessageCorrectlySend() + .storeMessageId(); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(NewOutgoingMessagePage.MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/OpenIncomingMessages.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/OpenIncomingMessages.java new file mode 100644 index 0000000..c968007 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/OpenIncomingMessages.java @@ -0,0 +1,25 @@ +package cz.moneta.test.regression.backoffice.exevido.web.mailroom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "Open Incoming Messages") + +public class OpenIncomingMessages { + + @TestCase(name = "Open Incoming Messages") + @JiraTestCase(id = "BOC-T8315") + public void openIncomingMessages(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickAllIncomingMessages() + .checkFirstIncomingMessagePresence(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/ReturnOfTheMessageToTheMailroom.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/ReturnOfTheMessageToTheMailroom.java new file mode 100644 index 0000000..32cf6a4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/ReturnOfTheMessageToTheMailroom.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.backoffice.exevido.web.mailroom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.exevido.pages.NewIncomingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "ReturnOfTheMessageToTheMailroom") +public class ReturnOfTheMessageToTheMailroom { + + @TestCase(name = "ReturnOfTheMessageToTheMailroom") + @JiraTestCase(id = "BOC-T8503") + public void returnOfTheMessageToTheMailroom(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickIncomingMessages() + .clickCreateNewIncomingMessage() + .fillSubject("Automat TEST - zpět na podatelnu") + .fillSender("5nqh2a3 ") + .fillTypeMessage("Obecná - MMB") + .uploadAttachment(ATTACHMENT_PATH) + .fillAssigneeUserGroup("800001") + .clickSave() + .acceptAlertIfVisible() + .storeMessageId() + .clickDelegateMessage() + .clickIncomingMessages() + .clickAllIncomingMessages() + .searchByMessageId(harness.get(MESSAGE_ID_KEY)) + .clickIncomingMessageRow(30) + .clickReturn() + .fillReason("Automat test") + .clickAddReason() + .checkMessageReturn("Zpráva byla vrácena na podatelnu k dalšímu zpracování"); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/SendOutgoingMessageToMultipleRecipients.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/SendOutgoingMessageToMultipleRecipients.java new file mode 100644 index 0000000..7f69595 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/exevido/web/mailroom/SendOutgoingMessageToMultipleRecipients.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.backoffice.exevido.web.mailroom; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.ATTACHMENT_PATH; +import static cz.moneta.test.dsl.exevido.pages.NewOutgoingMessagePage.MESSAGE_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Send outgoing message to multiple recipients") +public class SendOutgoingMessageToMultipleRecipients { + + @TestCase(name = "Send outgoing message to multiple recipients") + @JiraTestCase(id = "BOC-T8519") + public void sendOutgoingMessageToMultipleRecipients(Harness harness, @Key(Keys.exevido.mailroom) Credentials credentials) { + harness.withExevido() + .openLoginPage() + .then(harness.tasks().exevidoTasks().login().withCredentialsToMmb(credentials)) + .clickOutgoingMessages() + .clickAllOutgoingMessages() + .clickCreateNewOutgoingMessage() + .uploadAttachment(ATTACHMENT_PATH) + .clickMultipleRecipients() + .fillMultipleRecipient("42uf8wu") + .pressEnter() + .addRecipient() + .fillMultipleRecipient("uchhtu9") + .pressEnter() + .addRecipient() + .fillSubject("Automat TEST") + .fillAssigneeUserGroup("F00102") + .clickSendMessageDropdown() + .clickSendMessageNow() + .checkMassMessageCorrectlySend() + .storeMessageId(); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nMessage ID: " + harness.get(MESSAGE_ID_KEY, true)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelBankClient.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelBankClient.java new file mode 100644 index 0000000..7109359 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelBankClient.java @@ -0,0 +1,45 @@ +package cz.moneta.test.regression.backoffice.ufooperations.disabled; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Cancel Bank Client") +public class CancelBankClient { + String CIF = "3000050788"; + + @TestCase(name = "Cancel Bank Client", environments = {Environment.PPE}) + @JiraTestCase(id = "BOC-T8618") + public void cancelBankClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickBankClient() + .clickCancelBankClient() + .checkCancelAdcProduct("Zrušení Bankklienta proběhlo v pořádku."); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nCIF: " + CIF); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelInfoService.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelInfoService.java new file mode 100644 index 0000000..d873f48 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelInfoService.java @@ -0,0 +1,44 @@ +package cz.moneta.test.regression.backoffice.ufooperations.disabled; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Cancel Info Service") +public class CancelInfoService { + String CIF = "3000029235"; + + @TestCase(name = "Cancel Info Service", environments = {Environment.PPE}) + @JiraTestCase(id = "BOC-T8616") + public void cancelInfoService(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickInfoService() + .cancelInfoService(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nCIF: " + CIF); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelInternetBank.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelInternetBank.java new file mode 100644 index 0000000..eb30844 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelInternetBank.java @@ -0,0 +1,45 @@ +package cz.moneta.test.regression.backoffice.ufooperations.disabled; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Cancel Internet Bank") +public class CancelInternetBank { + String CIF = "3000157911"; + + @TestCase(name = "Cancel Internet Bank", environments = {Environment.PPE}) + @JiraTestCase(id = "BOC-T8593") + public void cancelInternetBanking(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickInternetBank() + .clickCancelInternetBank() + .checkCancelAdcProduct("Zrušení InternetBanky s mobilním klíčem proběhlo v pořádku"); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nCIF: " + CIF); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelSmartBank.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelSmartBank.java new file mode 100644 index 0000000..840ecf1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/CancelSmartBank.java @@ -0,0 +1,45 @@ +package cz.moneta.test.regression.backoffice.ufooperations.disabled; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Cancel Smart Bank") +public class CancelSmartBank { + String CIF = "3000061363"; + + @TestCase(name = "Cancel Smart Bank", environments = {Environment.PPE}) + @JiraTestCase(id = "BOC-T8620") + public void cancelSmartBank(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickSmartBank() + .clickFirstSmartBank() + .clickFirstCancelSmartBank(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nCIF: " + CIF); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo530.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo530.java new file mode 100644 index 0000000..2561259 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo530.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.backoffice.ufooperations.disabled; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Transfer account to 530") +public class TransferAccountTo530 { + String accountNumber = "207955816"; + + @TestCase(name = "Transfer account to 530", environments = {Environment.PPE}) + @JiraTestCase(id = "BOC-T8581") + public void transferAccountTo530(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .fillSearchInput(accountNumber) + .searchBy(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .transferTo530() + .fillDate(LocalDate.now().plusDays(1).format(DateTimeFormatter.ofPattern("dd.MM.yyyy"))) + .clickOnCashless() + .fillAccountNumber("2727") + .fillBankCode("2700") + .clickOk(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nČíslo účtu: " + accountNumber); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo535WithNegativeBalance.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo535WithNegativeBalance.java new file mode 100644 index 0000000..5c0df35 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo535WithNegativeBalance.java @@ -0,0 +1,46 @@ +package cz.moneta.test.regression.backoffice.ufooperations.disabled; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Transfer account to 535 with negative balance") +public class TransferAccountTo535WithNegativeBalance { + String accountNumber = "233793590"; + + @TestCase(name = "Transfer account to 535 with negative balance", environments = {Environment.PPE}) + @JiraTestCase(id = "BOC-T8580") + public void transferAccountTo535WithNegativeBalance(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .fillSearchInput(accountNumber) + .searchBy(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .transferTo535() + .onAccountCannotBeTransferredTo535() + .assertLabel("Běžný účet nelze převést z těchto důvodů:") + .clickOk(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nČíslo účtu: " + accountNumber); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo535WithPositiveBalance.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo535WithPositiveBalance.java new file mode 100644 index 0000000..8a7773a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo535WithPositiveBalance.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.backoffice.ufooperations.disabled; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Transfer account to 535 with positive balance") +public class TransferAccountTo535WithPositiveBalance { + String accountNumber = "236137361"; + + @TestCase(name = "Transfer account to 535 with positive balance", environments = {Environment.PPE}) + @JiraTestCase(id = "BOC-T8579") + public void transferAccountTo535WithPositiveBalance(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .fillSearchInput(accountNumber) + .searchBy(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .transferTo535() + .onAccountCanBeTransferredTo535() + .clickOkProduct535() + .clickHomePage() + .fillSearchInput(accountNumber) + .searchByAndAcceptAlertIfVisible(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .assertAccountProduct("povězenou smlouvou - kreditní zůstatky"); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nČíslo účtu: " + accountNumber); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo536.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo536.java new file mode 100644 index 0000000..b65021d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo536.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.backoffice.ufooperations.disabled; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Transfer account to 536") +public class TransferAccountTo536 { + String accountNumber = "207430788"; + + @TestCase(name = "Transfer account to 536", environments = {Environment.PPE}) + @JiraTestCase(id = "BOC-T8578") + public void transferAccountTo536(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .fillSearchInput(accountNumber) + .searchBy(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .transferTo536() + .printDocument() + .clickSend() + .onClientDetailPage() + .clickHomePage() + .fillSearchInput(accountNumber) + .searchByAndAcceptAlertIfVisible(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .assertAccountProduct("536-BÚ - vypovězený účet klientem"); + + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nČíslo účtu: " + accountNumber); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo730.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo730.java new file mode 100644 index 0000000..c854109 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/disabled/TransferAccountTo730.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.backoffice.ufooperations.disabled; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Transfer account to 730") +public class TransferAccountTo730 { + String accountNumber = "235680047"; + + @TestCase(name = "Transfer account to 730", environments = {Environment.PPE}) + @JiraTestCase(id = "BOC-T8582") + public void transferAccountTo730(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .fillSearchInput(accountNumber) + .searchBy(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .transferTo730() + .fillDate(LocalDate.now().plusDays(1).format(DateTimeFormatter.ofPattern("dd.MM.yyyy"))) + .clickOnCashless() + .fillAccountNumber("2727") + .fillBankCode("2700") + .clickOk(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nČíslo účtu: " + accountNumber); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/Administration.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/Administration.java new file mode 100644 index 0000000..629a0a6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/Administration.java @@ -0,0 +1,45 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Administration") +public class Administration { + + @TestCase(name = "Administration", environments = {Environment.PPE, Environment.TST1}) + @JiraTestCase(id = "BOC-T8464") + public void administration(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .clickAdministration() + .clickAllGroups() + .clickDetailGroups() + .clickUserAgata() + .fillSso("212429126") + .clickSearchSso() + .checkGroupsIncludedTableNotEmpty() + .checkGroupsManagerTableNotEmpty(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid")); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CancelPaymentOrder.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CancelPaymentOrder.java new file mode 100644 index 0000000..03c314f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CancelPaymentOrder.java @@ -0,0 +1,46 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.TRA740_S001_CreateNewTransferPaymentOrderPage.ID_PAYMENT_ORDER_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Cancel Payment Order") +public class CancelPaymentOrder { + + @TestCase(name = "Cancel Payment Order", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "BOC-T8468") + public void cancelPaymentOrder(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String accountNumberPayer = harness.getConfig("ufo.operations.account-number"); + String accountNumberRecipient = harness.getConfig("ufo.operations.account-number-recipient"); + String amount = "100"; + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .then(operationsTasksTasks.paymentOrderTasks().createSimpleTransferPaymentOrder(accountNumberPayer, accountNumberRecipient, amount)) + .clickCancelPaymentOrder() + .fillIdTransaction(harness.get(ID_PAYMENT_ORDER_KEY)) + .clickOkButton() + .clickCancelButton() + .clickSaveButton(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nID Transakce: " + harness.get(ID_PAYMENT_ORDER_KEY, true)); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CancelTask.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CancelTask.java new file mode 100644 index 0000000..ae5fe4e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CancelTask.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.TASK_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Cancel Task") +public class CancelTask { + + private OperationsTasks operationsTasksTasks; + private String rcOfExistingClient; + + @BeforeAll + public void setUp(Harness harness) { + operationsTasksTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + } + + @TestCase(name = "Cancel Task", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "BOC-T8405") + public void cancelTask(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .then(operationsTasksTasks.tasks().createSimpleTask(rcOfExistingClient)) + .saveTaskID() + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickCancellation() + .fillNote("Storno úkolu") + .clickOkCancellation(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nID Úkolu: " + harness.get(TASK_ID_KEY, true)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CheckTaskDetail.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CheckTaskDetail.java new file mode 100644 index 0000000..8cba1b5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CheckTaskDetail.java @@ -0,0 +1,141 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.TypesOfViewFilter; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage.FAKE_ZL; +import static cz.moneta.test.dsl.ufo.banka.pages.fon.UploadUtil.getResourcePath; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.SECOND_TASK_ID_KEY; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.TASK_ID_KEY; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskPage.PDF_IMG; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenarioWithOrder(name = "CheckTaskDetail") +public class CheckTaskDetail { + + private String rcOfExistingClient; + + @BeforeAll + protected void setUp(Harness harness) { + rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + } + + @Order(1) + @TestCase(name = "Check Detail - part 1") + @JiraTestCase(id = "BOC-T8462") + public void checkTaskDetail1(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + String attachmentTitle = "Nazev prilohy pridane automatem"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String attachmentPath = getResourcePath(FAKE_ZL); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .then(operationsTasksTasks.tasks().createSimpleTask(rcOfExistingClient)) + .selectTypeOfView(TypesOfViewFilter.ASSIGNED_BY_ME) + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickAddNote() + .fillNote("úkol založený automatem") + .clickOkButton() + .then(operationsTasksTasks.tasks().checkAttachmentUpload(attachmentPath, attachmentTitle)) + .clickFirstAttachmentDetail() + .waitForAttachmentDetail() + .clickSolveTab() + .clickFileDownload(PDF_IMG) + .clickSolve() + .clickSaveTask() + .clickDelegateTask() + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickSolve() + .clickReturnTask() + .fillNote("test") + .clickOkButton(); + } + + @Order(2) + @TestCase(name = "Check Detail - part 2") + @JiraTestCase(id = "BOC-T8819") + public void checkTaskDetail2(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .then(operationsTasksTasks.tasks().createSimpleTask(rcOfExistingClient)) + .selectTypeOfView(TypesOfViewFilter.ASSIGNED_BY_ME) + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickHistory() + .clickSolve() + .clickTaskChangeCheckbox() + .fillReason("Automat test") + .clickOkButton() + .clickCancellation() + .fillNote("Storno úkolu") + .clickOkCancellation(); + } + + @Order(3) + @TestCase(name = "Check Detail - part 3") + @JiraTestCase(id = "BOC-T8820") + public void checkTaskDetail3(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String attachmentTitle = "Nazev prilohy pridane automatem"; + String attachmentPath = getResourcePath(FAKE_ZL); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .then(operationsTasksTasks.tasks().createSimpleTask(rcOfExistingClient)) + .then(operationsTasksTasks.tasks().createSecondSimpleTask()) + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .then(operationsTasksTasks.tasks().checkAttachmentUpload(attachmentPath, attachmentTitle)) + .fillIdTaskConnect(harness.get(SECOND_TASK_ID_KEY)) + .clickFirstAttachment() + .clickConnectTasks() + .clickHistory() + .clickTaskChangeCheckbox() + .fillReason("Automat test") + .clickOkButton() + .clickTaskList() + .selectTypeOfView(TypesOfViewFilter.ASSIGNED_BY_ME) + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickTaskTree() + .then(operationsTasksTasks.tasks().createSubtask()) + .clickFinishProcess() + .fillCommentAndClickAgreeFinish("Ukončit úkol") + .assertStatusLabel("Úkol byl v pořádku dokončen !"); + } + + @AfterEach + protected void teardown(Harness harness) { + String secondtask = harness.get(SECOND_TASK_ID_KEY, true); + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nID Ukolu: " + harness.get(TASK_ID_KEY, true) + + ((secondtask != null) ? "\nID Ukolu2: " + secondtask : "")); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/ConnectingTwoTasks.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/ConnectingTwoTasks.java new file mode 100644 index 0000000..ebbef58 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/ConnectingTwoTasks.java @@ -0,0 +1,77 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.banka.pages.fon.DMS001_S001_ScanDocumentsPage.FAKE_ZL; +import static cz.moneta.test.dsl.ufo.banka.pages.fon.UploadUtil.getResourcePath; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.SECOND_TASK_ID_KEY; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.TASK_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Connecting Two Tasks") +public class ConnectingTwoTasks { + + private String rcOfExistingClient; + + @BeforeAll + protected void setUp(Harness harness) { + rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + } + + @TestCase(name = "Connecting Two Tasks", environments = {PPE, TST1}) + @JiraTestCase(id = "BOC-T8506") + public void connectingTwoTasks(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String attachmentTitle = "Nazev prilohy pridane automatem"; + String attachmentPath = getResourcePath(FAKE_ZL); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .then(operationsTasksTasks.tasks().createSimpleTask(rcOfExistingClient)) + .clickNewMainTask() + .selectTaskCategory("Ostatní - BPST") + .selectSubcategories("Ostatní") + .fillBirthNumberInTask(rcOfExistingClient) + .selectTaskType("Ufo aplikace - podnět") + .fillDescription("Test-2") + .clickAssign() + .onTaskList() + .assertStatusLabel("Úkol byl korektně přiřazen!") + .saveSecondTaskID() + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .then(operationsTasksTasks.tasks().checkAttachmentUpload(attachmentPath, attachmentTitle)) + .fillIdTaskConnect(harness.get(SECOND_TASK_ID_KEY)) + .clickFirstAttachment() + .clickConnectTasks() + .clickHistory() + .clickTaskChangeCheckbox() + .fillReason("Automat test") + .clickOkButton(); + + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nID Úkolu 1: " + harness.get(TASK_ID_KEY, true) + + "\nID Úkolu 2: " + harness.get(SECOND_TASK_ID_KEY, true)); + } + + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreateNoteTMS.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreateNoteTMS.java new file mode 100644 index 0000000..9959703 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreateNoteTMS.java @@ -0,0 +1,59 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.TypesOfViewFilter; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.TASK_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Create note to TMS Task") +public class CreateNoteTMS { + + private OperationsTasks operationsTasksTasks; + private String rcOfExistingClient; + + @BeforeAll + public void setUp(Harness harness) { + operationsTasksTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + } + + @TestCase(name = "Create note to TMS Task", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "BOC-T8428") + public void createNoteTMS(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .then(operationsTasksTasks.tasks().createSimpleTask(rcOfExistingClient)) + .selectTypeOfView(TypesOfViewFilter.ASSIGNED_BY_ME) + .fillTaskID(harness.get(UKO720_S001_TaskList.TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickSolve() + .clickAddNote() + .fillNote("úkol založený automatem") + .clickOkButton() + .clickFinishTask(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nID Úkolu: " + harness.get(TASK_ID_KEY, true)); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreatePaymentOrder.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreatePaymentOrder.java new file mode 100644 index 0000000..2e7aa54 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreatePaymentOrder.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.TRA740_S001_CreateNewTransferPaymentOrderPage.ID_PAYMENT_ORDER_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario +public class CreatePaymentOrder { + + @TestCase(name = "Create Payment Order", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "BOC-T8317") + public void createPaymentOrder(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String accountNumberPayer = harness.getConfig("ufo.operations.account-number"); + String accountNumberRecipient = harness.getConfig("ufo.operations.account-number-recipient"); + String amount = "100"; + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .then(operationsTasksTasks.paymentOrderTasks().createSimpleTransferPaymentOrder(accountNumberPayer, accountNumberRecipient, amount)); + + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nID Transakce: " + harness.get(ID_PAYMENT_ORDER_KEY, true)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreatePaymentOrderInTheClientDetail.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreatePaymentOrderInTheClientDetail.java new file mode 100644 index 0000000..1c18f8e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreatePaymentOrderInTheClientDetail.java @@ -0,0 +1,62 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.TRA740_S001_CreateNewTransferPaymentOrderPage.ID_PAYMENT_ORDER_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario +public class CreatePaymentOrderInTheClientDetail { + + private String cif; + + @BeforeAll + protected void setUp(Harness harness) { + cif = harness.getConfig("ufo.operations.cif"); + } + + @TestCase(name = "Create Payment Order In The Client Detail", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "BOC-T8469") + public void createPaymentOrderInTheClientDetail(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .fillSearchInput(cif) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickAccountList() + .clickTransactions() + .clickTransactionOrder() + .clickBackOfficeZaklad() + .selectOrderType("Reklamace") + .fillAmount("100") + .fillVariableSymbol("1234567890") + .fillSpecificallySymbol("987654321") + .fillMessage("automat - test") + .clickSend() + .saveTaskIDPaymentOrder() + .checkTransactionSuccessfullyEstablished("Transakce byla úspěšně založena pod ID:"); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nID Transakce: " + harness.get(ID_PAYMENT_ORDER_KEY, true)); + } + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreateSubtask.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreateSubtask.java new file mode 100644 index 0000000..c791349 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreateSubtask.java @@ -0,0 +1,56 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.TASK_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Create Subtask") +public class CreateSubtask { + + private OperationsTasks operationsTasksTasks; + private String rcOfExistingClient; + + @BeforeAll + public void setUp(Harness harness) { + operationsTasksTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + } + + @TestCase(name = "Create Subtask", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "BOC-T8421") + public void createSubtask(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .then(operationsTasksTasks.tasks().createSimpleTask(rcOfExistingClient)) + .saveTaskID() + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickTaskTree() + .then(operationsTasksTasks.tasks().createSubtask()) + .clickFinishProcess() + .fillCommentAndClickAgreeFinish("Ukončit úkol") + .assertStatusLabel("Úkol byl v pořádku dokončen !"); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nID Úkolu: " + harness.get(TASK_ID_KEY, true)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreatingNewTask.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreatingNewTask.java new file mode 100644 index 0000000..b8756d5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CreatingNewTask.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.TASK_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Creating new task") +public class CreatingNewTask { + + private String rcOfExistingClient; + + @BeforeAll + protected void setUp(Harness harness) { + rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + } + + @TestCase(name = "Creating new task", environments = {PPE, TST1}) + @JiraTestCase(id = "BOC-T8308") + public void creatingNewTask(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .then(operationsTasksTasks.tasks().createSpecificTask(rcOfExistingClient)); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nID Úkolu: " + harness.get(TASK_ID_KEY, true)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CurrentAccountLoadAndCheck.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CurrentAccountLoadAndCheck.java new file mode 100644 index 0000000..67f5dd7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/CurrentAccountLoadAndCheck.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.operations.client.clientDetail.STS701_S002_ClientDetailPage.CURRENT_ACCOUNT_NUMBER_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Current Account Loading And Check") +public class CurrentAccountLoadAndCheck { + + private String rcOfExistingClient; + + @BeforeAll + protected void setUp(Harness harness) { + rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + } + + @TestCase(name = "Current Account Loading Detail And Check", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "BOC-T8310") + public void currentAccountLoadAndCheck(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .searchBy(SearchBy.BIRTH_NUMBER) + .onClientDetailsPage() + .storeAccountNumber() + .clickAccountTree() + .checkCurrentAccountNumber(harness.get(CURRENT_ACCOUNT_NUMBER_KEY)); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid")); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/FinishTask.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/FinishTask.java new file mode 100644 index 0000000..6c7aef7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/FinishTask.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.TASK_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Create And Finish Task") +public class FinishTask { + + @TestCase(name = "Finishing task", environments = {Environment.PPE, Environment.TST1}) + @JiraTestCase(id = "BOC-T8309") + public void finishingTask(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .then(operationsTasksTasks.tasks().createSimpleTask(rcOfExistingClient)) + .then(operationsTasksTasks.tasks().finishTask()); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nID Úkolu: " + harness.get(TASK_ID_KEY, true)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/SignInTaskPage.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/SignInTaskPage.java new file mode 100644 index 0000000..2fada24 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/SignInTaskPage.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "SignInTaskPage") +public class SignInTaskPage { + + private OperationsTasks operationsTasksTasks; + + @BeforeAll + public void setUp(Harness harness) { + operationsTasksTasks = harness.tasks().ufo().operations(); + } + + @TestCase(name = "SignInTaskPage", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "BOC-T8417") + public void CancelTask(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid")); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/SignInUFO.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/SignInUFO.java new file mode 100644 index 0000000..257bb21 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/SignInUFO.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Sign In to UFO OPS") +public class SignInUFO { + + private OperationsTasks operationsTasksTasks; + + @BeforeAll + public void setUp(Harness harness) { + operationsTasksTasks = harness.tasks().ufo().operations(); + } + + @TestCase(name = "Sign to UFO Operations", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "BOC-T8307") + public void signInUFO(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid")); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/TaskList.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/TaskList.java new file mode 100644 index 0000000..2f660ff --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/TaskList.java @@ -0,0 +1,75 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.TypesOfViewFilter; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; + +@Disabled(value = "Used only for local runs") +@TestScenario(name = "Task List") +public class TaskList { + + private OperationsTasks operationsTasksTasks; + + @BeforeAll + public void setUp(Harness harness) { + operationsTasksTasks = harness.tasks().ufo().operations(); + } + + @TestCase(name = "Task List", environments = {PPE}) + @JiraTestCase(id = "BOC-T8816") + public void taskList(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .clickTasks() + .selectTypeOfView(TypesOfViewFilter.TEAM_TASKS) + .clickOpenTaskDetail() + .scrollToPageTop() + .checkSolveButtonPresent() + .clickTaskList() + .selectTypeOfView(TypesOfViewFilter.MY_FOR_PROCESSING) + .clickOpenTaskDetail() + .scrollToPageTop() + .checkSolveButtonPresent() + .clickTaskList() + .selectTypeOfView(TypesOfViewFilter.MY_FOR_VERIFICATION) + .assertTaskStatus("Zpracovaný - neověřen") + .selectTypeOfView(TypesOfViewFilter.PROCESSED_BY_ME) + .assertTaskStatus("Zpracovaný") + .clickOpenTaskDetail() + .scrollToPageTop() + .clickTaskList() + .selectTypeOfView(TypesOfViewFilter.ASSIGNED_BY_ME) + .assertTaskTaskmaster("Vlasáková Agáta") + .checkRevitalizationButtonPresent() + .selectTypeOfView(TypesOfViewFilter.TASK_SEARCH) + .fillBirthNumber("8609209433") + .clickFind() + .assertTaskClientRc("8609209433") + .checkRevitalizationButtonPresent() + .clickReset() + .fillIdObject("33214034") + .clickFind() + .assertTaskObjectId("33214034"); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid")); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/TaskRevitalization.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/TaskRevitalization.java new file mode 100644 index 0000000..93d5c6e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/jenkinstests/TaskRevitalization.java @@ -0,0 +1,59 @@ +package cz.moneta.test.regression.backoffice.ufooperations.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.TypesOfViewFilter; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.UKO720_S001_TaskList.TASK_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Task Revitalization") +public class TaskRevitalization { + + private OperationsTasks operationsTasksTasks; + private String rcOfExistingClient; + + @BeforeAll + public void setUp(Harness harness) { + operationsTasksTasks = harness.tasks().ufo().operations(); + rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + } + + @TestCase(name = "Task Revitalization", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "BOC-T8419") + public void CancelTask(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .then(operationsTasksTasks.tasks().createSimpleTask(rcOfExistingClient)) + .saveTaskID() + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickOpenTaskDetail() + .clickCancellation() + .fillNote("Storno úkolu") + .clickOkCancellation() + .selectTypeOfView(TypesOfViewFilter.TASK_SEARCH) + .fillTaskID(harness.get(TASK_ID_KEY)) + .clickFind() + .clickRevitalization(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nID Úkolu: " + harness.get(TASK_ID_KEY, true)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/AccountServicing.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/AccountServicing.java new file mode 100644 index 0000000..4e8f9bd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/AccountServicing.java @@ -0,0 +1,66 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Account servicing") +public class AccountServicing { + + @TestCase(name = "Account servicing", environments = {EDU, TST1, PPE}) + @JiraTestCase(id = "BOC-T3985") + public void accountServicing(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickRcRadio() + .clickSearchClient() + .onClientDetailsPage() + .clickAccountTree() + .clickDistribution() + .assertChangeDistribution() + .clickBackDistribution() + .clickInsurance() + .assertCreateButton() + .clickBack() + .clickTransactions() + .assertStatementArchive() + .clickBack(); + } + + @Disabled + @TestScenario(name = "Business Support") + public static class BusinessSupportBasicTest { + + @TestCase(name = "Business Support", environments = {PPE, TST1}) + @JiraTestCase(id = "BOC-T3968") + public void businessSupport(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsSelectBusinessSupport(credentials)) + .clickEClient() + .clickSearchDocumentButton() + .clickSearchButton() + .clickDocumentDetailCheckBox() + .clickDetailItem() + .clickDocumentDetail(); + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/Calculator.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/Calculator.java new file mode 100644 index 0000000..43cb81c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/Calculator.java @@ -0,0 +1,39 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Calculator") +public class Calculator { + + @TestCase(name = "Calculator", environments = {PPE, EDU, TST1}) + @JiraTestCase(id = "BOC-T4049") + void calculator(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(rcOfExistingClient) + .clickRcRadio() + .clickSearchClient() + .onClientDetailsPage() + .clickCalculator() + .switchToModalWindow() + .assertSendEmailButton(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ChangeApplication.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ChangeApplication.java new file mode 100644 index 0000000..a275996 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ChangeApplication.java @@ -0,0 +1,32 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Change Application") +public class ChangeApplication { + + @TestCase(name = "Change Application", environments = {PPE, TST1}) + @JiraTestCase(id = "BOC-T3973") + public void changeApplication(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickChangeApplication() + .clickUfoBanka() + .assertPageId(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ClientDetailLeftMenu.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ClientDetailLeftMenu.java new file mode 100644 index 0000000..786f4f7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ClientDetailLeftMenu.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Client detail left menu") +public class ClientDetailLeftMenu { + + @TestCase(name = "Client detail left menu", environments = {PPE, TST1, EDU}) + @JiraTestCase(id = "BOC-T3996") + public void clientDetailLeftMenu(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickCifMenu() + .clickCifDetailButton() + .assertInnerPanel() + .clickBackButton() + .clickSmsEmailHistory() + .assertEmailLabel() + .clickBackButton() + .clickCardsList() + .assertDebitCard() + .clickBackButton() + .clickCanceledAccounts() + .assertAccountsList() + .clickBackButton() + .clickSendingOffers() + .assertOffers() + .clickBackButton(); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ClientDetailTabPanel.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ClientDetailTabPanel.java new file mode 100644 index 0000000..2d4e24b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ClientDetailTabPanel.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Client detail tab panel") +public class ClientDetailTabPanel { + + @TestCase(name = "Client detail tab panel", environments = {EDU, TST1, PPE}) + @JiraTestCase(id = "BOC-T3938") + public void clientDetailTabPanel(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickRcRadio() + .clickSearchClient() + .onClientDetailsPage() + .clickSaleButton() + .assertTabPanelSale("Expres") + .clickContactInformation() + .assertAddress() + .clickOffers() + .assertOffers() + .clickDemand() + .assertDemandDescription() + .clickTasks() + .assetTasksTable() + .clickRequests() + .assertRequestRadio() + .clickNotification() + .assertNotice(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ClientDocuments.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ClientDocuments.java new file mode 100644 index 0000000..e006079 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ClientDocuments.java @@ -0,0 +1,43 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Client Documents") +public class ClientDocuments { + + @TestCase(name = "Client Documents", environments = {PPE, TST1, EDU}) + @JiraTestCase(id = "BOC-T3995") + public void clientDocuments(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickCorrespondence() + .clickClientDocument() + .clickSearch() + .clickDocumentDetail() + .clickChats() + .clickManualSend() + .clickOutgoingCorrespondence() + .clickCorrespondenceDetail(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ContactsForwarding.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ContactsForwarding.java new file mode 100644 index 0000000..6a1d51e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ContactsForwarding.java @@ -0,0 +1,39 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Contacts forwarding") +public class ContactsForwarding { + + @TestCase(name = "Contacts forwarding", environments = {PPE, TST1, EDU}) + @JiraTestCase(id = "BOC-T4048") + public void contactForwarding(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickContactForwarding() + .clickRetention() + .checkSendButton() + .clickBackButton(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/CreditCardServicing.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/CreditCardServicing.java new file mode 100644 index 0000000..06604cd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/CreditCardServicing.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Credit card servicing") +public class CreditCardServicing { + + @TestCase(name = "Credit card servicing", environments = {PPE, EDU, TST1}) + @JiraTestCase(id = "BOC-T3992") + public void creditCardServicing(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickCreditCardList() + .clickBlocationMenu() + .clickBlockationCreditCard() + .clickBackButton() + .clickPackages() + .clickBackButton() + .clickContractActivitiesButton() + .clickBackButton() + .clickTransactStatementionsButton() + .clickBackButton() + .clickAdvatageOnCardButton() + .clickBackButton() + .clickGeneratingMenu() + .clickCardGenerating() + .clickBackButton(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/DataboxesBasicTest.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/DataboxesBasicTest.java new file mode 100644 index 0000000..c11ad52 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/DataboxesBasicTest.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Business Support") +public class DataboxesBasicTest { + + private static final String WELCOME = "Vítejte v aplikaci DataBoxes"; + private static final String SEARCH = "VYHLEDAT"; + + @TestCase(name = "Databoxes", environments = {PPE, TST1}) + @JiraTestCase(id = "BOC-T3966") + public void Databoxes(Harness harness, @Key(Keys.ufo.databoxes.user) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsSelectDataboxes(credentials)) + .assertWelcomeLabel(WELCOME) + .clickCasesButton() + .assertCasesSearchButton(SEARCH) + .clickNewMessageButton() + .assertNewMessageContinueButton("POKRAČOVAT") + .clickNewMessageCancelButton() + .clickRequestedDocuments() + .assertRequestedDocumentsSearchButton(SEARCH) + .clickSentMessagesButton() + .assertSentMessagesSearchButton(SEARCH); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/DebitCardServicing.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/DebitCardServicing.java new file mode 100644 index 0000000..685a484 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/DebitCardServicing.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Debit card servicing") +public class DebitCardServicing { + + @TestCase(name = "Debit card servicing", environments = {PPE, EDU, TST1}) + @JiraTestCase(id = "BOC-T3991") + public void debitCardServicing(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickDebitCard() + .clickBlocation() + .clickBackButton() + .clickCardActivities() + .clickBackButton() + .clickCardReneval() + .clickBackButton() + .clickPinActivation() + .clickBackButton() + .clickStatementsButton() + .clickBack() + .clickDataChangesButton() + .clickBackButton(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/EditingAndCancelingTask.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/EditingAndCancelingTask.java new file mode 100644 index 0000000..b7beaef --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/EditingAndCancelingTask.java @@ -0,0 +1,43 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Editing and canceling") +public class EditingAndCancelingTask { + + @TestCase(name = "Editing and canceling", environments = {PPE, EDU, TST1}) + @JiraTestCase(id = "BOC-T3986") + public void editingAndcancelingTask(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickTasks() + .fillBirthNumber(rcOfExistingClient) + .clickFind() + .clickDoubleDartButton() + .clickOpenTaskDetail() + .clickAddNote() + .fillNote("Poznamka") + .clickOkButton() + .clickCancellation() + .fillCancellationReason("Test") + .clickOkCancellation() + .assertStatusLabel("Úkol byl v pořádku stornován"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ExternalPartners.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ExternalPartners.java new file mode 100644 index 0000000..06ac38f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/ExternalPartners.java @@ -0,0 +1,33 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "External partners") +public class ExternalPartners { + + @TestCase(name = "External partners", environments = {PPE, TST1}) + @JiraTestCase(id = "BOC-T3967") + public void externalPartners(Harness harness, @Key(Keys.ufo.externiPartneri.user) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onUfoExternalPartnersPage() + .fillSearchInput("8008121594") + .clickSearchClient() + .assertClientName(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/InternetBankaBlockUnblock.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/InternetBankaBlockUnblock.java new file mode 100644 index 0000000..dd97063 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/InternetBankaBlockUnblock.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "IB blockation and unblockation") +public class InternetBankaBlockUnblock { + + private static final String ACTIVE = "Aktivní"; + private static final String BLOCKED = "Blokovaný"; + + @TestCase(name = "IB blockation and unblockation", environments = {PPE, TST1, EDU}) + @JiraTestCase(id = "BOC-T3961") + public void blockingAndUnblocking(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickAdcList() + .clickBlockMobileKey() + .assertMobileKeyStatus(BLOCKED) + .clickBlockMobileKey() + .assertMobileKeyStatus(ACTIVE) + .selectIBBlocationReason("Vlastní žádost klienta") + .clickBlockInternetBanka() + .assertInternetBankaStatus(BLOCKED) + .clickUnblockInternetBanka() + .assertInternetBankaStatus(ACTIVE) + .selectIBBlocationReason("Žádost banky") + .clickBlockInternetBanka() + .assertInternetBankaStatus(BLOCKED) + .clickUnblockInternetBanka() + .assertInternetBankaStatus(ACTIVE); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/LoanServicing.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/LoanServicing.java new file mode 100644 index 0000000..9f67b86 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/LoanServicing.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Loan servicing") +public class LoanServicing { + + @TestCase(name = "Loan servicing", environments = {PPE, EDU, TST1}) + @JiraTestCase(id = "BOC-T3993") + public void loanServicing(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickLoanTree() + .clickLoansBlockMenu() + .clickLoansBlockation() + .assertCurrency() + .clickBack() + .clickAmortization() + .assertAmortizationLabel() + .clickBackButton(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/MeetingsAndSms.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/MeetingsAndSms.java new file mode 100644 index 0000000..a106bd3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/MeetingsAndSms.java @@ -0,0 +1,38 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Meetings and sms") +public class MeetingsAndSms { + + @TestCase(name = "Meetings and sms", environments = {PPE, TST1, EDU}) + @JiraTestCase(id = "BOC-T4047") + public void meetingAndSMS(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickMeetingsAndSms() + .assertClientNameField() + .clickBackButton(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/PostSalesCalls.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/PostSalesCalls.java new file mode 100644 index 0000000..3e78fa3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/PostSalesCalls.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Post sales call") +public class PostSalesCalls { + + private static final String PRODUCT = "Flexikredit"; + + @TestCase(name = "Post sales call", environments = {TST1, PPE}) + @JiraTestCase(id = "BOC-T3950") + public void postSalesCall(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickPostSalesCalls() + .selectProduct(PRODUCT) + .selectForm(PRODUCT) + .assertQuestion(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/SalesServiceRetentionTable.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/SalesServiceRetentionTable.java new file mode 100644 index 0000000..922d8c9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/SalesServiceRetentionTable.java @@ -0,0 +1,43 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Sales table") +public class SalesServiceRetentionTable { + + @TestCase(name = "Sales table", environments = {EDU, TST1, PPE}) + @JiraTestCase(id = "BOC-T3947") + public void salesRetentionTable(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickFutureOpportunity() + .assertOpportunityTable() + .clickRetention() + .assertRetentionTable() + .clickFraudSuspectedTable() + .assertFraudTable() + .clickCommunicationsReminders() + .assertCommunicationsRemindersTable(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/SavingsAccountServicing.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/SavingsAccountServicing.java new file mode 100644 index 0000000..258a229 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/SavingsAccountServicing.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Savings account servicing") +public class SavingsAccountServicing { + + @TestCase(name = "Savings account servicing", environments = {EDU, TST1, PPE}) + @JiraTestCase(id = "BOC-T3994") + public void savingsAccountServicing(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickRcRadio() + .clickSearchClient() + .onClientDetailsPage() + .clickSavingAccountTree() + .clickSavingAccountTransactions() + .assertAccountNumber() + .clickBack() + .clickDistribution() + .assertChangeDistribution() + .clickBackDistribution(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/StsTable.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/StsTable.java new file mode 100644 index 0000000..618d392 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/StsTable.java @@ -0,0 +1,44 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Sts table") +public class StsTable { + + @TestCase(name = "Sts table", environments = {EDU, TST1, PPE}) + @JiraTestCase(id = "BOC-T3948") + public void sts(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + String contractState = "Stav smlouvy:"; + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .clickTreeCreditCard() + .assertContractState(contractState) + .clickAccountList() + .assertAccountProduct("98-BÚ-FO- KONTO GENIUS /R/") + .clickAdcList() + .assertAdcProductList("Logovací jméno:") + .clickCreditCardList() + .assertContractState(contractState); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/UfoCrc.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/UfoCrc.java new file mode 100644 index 0000000..0872afa --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/old/UfoCrc.java @@ -0,0 +1,44 @@ +package cz.moneta.test.regression.backoffice.ufooperations.old; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "UFO CRC") +public class UfoCrc { + + @TestCase(name = "UFO CRC", environments = {EDU, TST1, PPE}) + @JiraTestCase(id = "BOC-T3937") + void ufoCrc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + String rcOfExistingClient = harness.getConfig("ufo.operations.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(rcOfExistingClient) + .clickRcRadio() + .clickSearchClient() + .onClientDetailsPage() + .clickRecorder() + .clickBirthNumberInSubject() + .fillSearchSubjectInput(rcOfExistingClient) + .clickLoadSubjectArrow() + .clickDetailOfCrcRequirement() + .clickCloseDetailCrcRequirement() + .openItemInTreeMenu("CC příchozí hovor") + .clickDetailOfCrcRequirement(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/ChangeAddress.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/ChangeAddress.java new file mode 100644 index 0000000..0c95c31 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/ChangeAddress.java @@ -0,0 +1,138 @@ +package cz.moneta.test.regression.backoffice.ufooperations.regressionsbbo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; + +@TestScenarioWithOrder(name = "Change address") +class ChangeAddress { + + String CIF; + + @Order(1) + @TestCase(name = "Change address DMS", environments = {PPE}) + @JiraTestCase(id = "BOC-T8770") + public void changeAddressDms(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000085272"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .menuClickChangeContactData() + .fillStreet("Vyskočilova") + .clickSaveCheckAddress() + .then(harness.tasks().ufo().operations().changeContactAddressTasks().changeToWrongAddress()) + .then(harness.tasks().ufo().operations().changeContactAddressTasks().changeAddressByCondition()) + .clickCheckData() + .onPrintTemplatePage() + .clickSaveToDMS() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName("Změna kontaktních údajů - změnový dokument") + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(2) + @TestCase(name = "Change address Dopis", environments = {PPE}) + @JiraTestCase(id = "BOC-T8773") + public void changeAddressLetter(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "9001123454"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .menuClickChangeContactData() + .fillStreet("Vyskočilova") + .clickSaveCheckAddress() + .then(harness.tasks().ufo().operations().changeContactAddressTasks().changeToWrongAddress()) + .then(harness.tasks().ufo().operations().changeContactAddressTasks().changeAddressByCondition()) + .clickCheckData() + .onPrintTemplatePage() + .clickSaveToEts() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName("Změna kontaktních údajů - změnový dokument") + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(3) + @TestCase(name = "Change address Ib", environments = {PPE}) + @JiraTestCase(id = "BOC-T8772") + public void changeAddressIb(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000233809"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .menuClickChangeContactData() + .fillStreet("Vyskočilova") + .clickSaveCheckAddress() + .then(harness.tasks().ufo().operations().changeContactAddressTasks().changeToWrongAddress()) + .then(harness.tasks().ufo().operations().changeContactAddressTasks().changeAddressByCondition()) + .clickCheckData() + .onPrintTemplatePage() + .clickSaveToIbIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName("Změna kontaktních údajů - změnový dokument") + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(4) + @TestCase(name = "Change address Local", environments = {PPE}) + @JiraTestCase(id = "BOC-T8774") + public void changeAddressLocal(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000050260"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .menuClickChangeContactData() + .fillStreet("Vyskočilova") + .clickSaveCheckAddress() + .then(harness.tasks().ufo().operations().changeContactAddressTasks().changeToWrongAddress()) + .then(harness.tasks().ufo().operations().changeContactAddressTasks().changeAddressByCondition()) + .clickCheckData() + .onPrintTemplatePage() + .clickSaveToLocal() + .clickSendAndClosePrintWindow(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nCIF: " + CIF); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/ManualLetters.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/ManualLetters.java new file mode 100644 index 0000000..fd96ce7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/ManualLetters.java @@ -0,0 +1,114 @@ +package cz.moneta.test.regression.backoffice.ufooperations.regressionsbbo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; + +@TestScenarioWithOrder(name = "Manual letter") +public class ManualLetters { + + String CIF; + + @Order(1) + @TestCase(name = "Manual Letter Dms", environments = {PPE}) + @JiraTestCase(id = "BOC-T8690") + public void manualLettersDms(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000002731"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .then(operationsTasksTasks.printTemplateTasks().createManualLetter()) + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDocuments() + .assertPrintName("Sdělení klientovi") + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(2) + @TestCase(name = "Manual Letter Dopis", environments = {PPE}) + @JiraTestCase(id = "BOC-T8733") + public void manualLettersLetter(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000019034"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .then(operationsTasksTasks.printTemplateTasks().createManualLetter()) + .clickSaveToEts() + .clickSend() + .onClientDocuments() + .assertPrintName("Sdělení klientovi") + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(3) + @TestCase(name = "Manual Letter IB", environments = {PPE}) + @JiraTestCase(id = "BOC-T8732") + public void manualLettersIb(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000092508"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .then(operationsTasksTasks.printTemplateTasks().createManualLetter()) + .clickSaveToIbIfNotChecked() + .clickSend() + .onClientDocuments() + .assertPrintName("Sdělení klientovi") + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(4) + @TestCase(name = "Manual Letter Local", environments = {PPE}) + @JiraTestCase(id = "BOC-T8731") + public void manualLettersLocal(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000003128"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .then(operationsTasksTasks.printTemplateTasks().createManualLetter()) + .clickSaveToEts() + .clickSend() + .onClientDocuments() + .assertPrintName("Sdělení klientovi") + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nCIF: " + CIF); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PaymentOrderVerification.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PaymentOrderVerification.java new file mode 100644 index 0000000..49b19a1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PaymentOrderVerification.java @@ -0,0 +1,258 @@ +package cz.moneta.test.regression.backoffice.ufooperations.regressionsbbo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.EXE705_S001_PaymentRecordsToApprovePage.*; +import static cz.moneta.test.dsl.ufo.operations.ufoOperations.TRA740_S001_CreateNewTransferPaymentOrderPage.ID_PAYMENT_ORDER_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; + +@TestScenarioWithOrder(name = "Payment Order Verification") +public class PaymentOrderVerification { + + private OperationsTasks operationsTasksTasks; + private String accountNumber; + private String recipientAccountNumber; + private String amount; + + @BeforeAll + public void setUp(Harness harness) { + accountNumber = harness.getConfig("ufo.operations.account-number-for-payment-order-and-verification"); + recipientAccountNumber = harness.getConfig("ufo.operations.account-number-recipient"); + amount = "5"; + } + + @Order(1) + @TestCase(name = "Payment Order Verification", environments = {PPE}) + @JiraTestCase(id = "BOC-T8591") + public void repaymentFee(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.databoxes.user) Credentials credentialsSecondBanker) { + operationsTasksTasks = harness.tasks().ufo().operations(); + + String orderType = "Poplatek za splacení"; + + harness.store("ORDER_TYPE", orderType); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .then(operationsTasksTasks.paymentOrderTasks().createTransferOrderForClient(accountNumber)) + .selectOrderType(orderType) + .fillAmount(amount) + .clickSend() + .saveTaskIDPaymentOrder() + .checkTransactionSuccessfullyEstablished("Transakce byla úspěšně založena pod ID:"); + + harness.withUfoSecondInstance() + .openLoginPage() + .then(operationsTasksTasks.login().withSecondBankerCredentials(credentialsSecondBanker)) + .clickTransferPaymentOrderVerification() + .fillTransactionId(harness.get(ID_PAYMENT_ORDER_KEY)) + .clickOk() + .clickFirstTransactionDetail() + .then(operationsTasksTasks.paymentOrderTasks().saveTransferOrderInformation()) + .saveConstantSymbol() + .clickCloseDetail() + .clickFirstTransactionVerification() + .then(operationsTasksTasks.paymentOrderTasks().fillPaymentVerificationForm(amount)) + .fillConstantSymbol(harness.get(CONSTANT_SYMBOL_KEY)) + .clickSaveWithConstantSymbol(); + } + + @Order(2) + @TestCase(name = "Payment Order Verification", environments = {PPE}) + @JiraTestCase(id = "BOC-T8591") + public void fees(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.databoxes.user) Credentials credentialsSecondBanker) { + operationsTasksTasks = harness.tasks().ufo().operations(); + + String orderType = "Poplatky"; + + harness.store("ORDER_TYPE", orderType); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .then(operationsTasksTasks.paymentOrderTasks().createTransferOrderForClient(accountNumber)) + .selectOrderType(orderType) + .fillAmount(amount) + .clickSend() + .saveTaskIDPaymentOrder() + .checkTransactionSuccessfullyEstablished("Transakce byla úspěšně založena pod ID:"); + + harness.withUfoSecondInstance() + .openLoginPage() + .then(operationsTasksTasks.login().withSecondBankerCredentials(credentialsSecondBanker)) + .clickTransferPaymentOrderVerification() + .fillTransactionId(harness.get(ID_PAYMENT_ORDER_KEY)) + .clickOk() + .clickFirstTransactionDetail() + .then(operationsTasksTasks.paymentOrderTasks().saveTransferOrderInformation()) + .saveVariableSymbol() + .saveConstantSymbol() + .clickCloseDetail() + .clickFirstTransactionVerification() + .then(operationsTasksTasks.paymentOrderTasks().fillPaymentVerificationForm(amount)) + .fillVariableSymbol(harness.get(VARIABLE_SYMBOL_KEY)) + .fillConstantSymbol(harness.get(CONSTANT_SYMBOL_KEY)) + .clickSaveWithOptionalSymbols(); + } + + @Order(3) + @TestCase(name = "Payment Order Verification", environments = {PPE}) + @JiraTestCase(id = "BOC-T8591") + public void transferOfPositiveBalance(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.databoxes.user) Credentials credentialsSecondBanker) { + operationsTasksTasks = harness.tasks().ufo().operations(); + + String orderType = "Převod kladného zůstatku"; + + harness.store("ORDER_TYPE", orderType); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .then(operationsTasksTasks.paymentOrderTasks().createTransferOrderForClient(accountNumber)) + .selectOrderType(orderType) + .fillRecipientAccountNumber(recipientAccountNumber) + .fillAmount(amount) + .clickSend() + .saveTaskIDPaymentOrder() + .checkTransactionSuccessfullyEstablished("Transakce byla úspěšně založena pod ID:"); + + harness.withUfoSecondInstance() + .openLoginPage() + .then(operationsTasksTasks.login().withSecondBankerCredentials(credentialsSecondBanker)) + .clickTransferPaymentOrderVerification() + .fillTransactionId(harness.get(ID_PAYMENT_ORDER_KEY)) + .clickOk() + .clickFirstTransactionDetail() + .then(operationsTasksTasks.paymentOrderTasks().saveTransferOrderInformation()) + .saveVariableSymbol() + .saveConstantSymbol() + .saveSpecificSymbol() + .clickCloseDetail() + .clickFirstTransactionVerification() + .then(operationsTasksTasks.paymentOrderTasks().fillPaymentVerificationForm(amount)) + .fillVariableSymbol(harness.get(VARIABLE_SYMBOL_KEY)) + .fillConstantSymbol(harness.get(CONSTANT_SYMBOL_KEY)) + .fillSpecificSymbol(harness.get(SPECIFIC_SYMBOL_KEY)) + .clickSaveWithOptionalSymbols(); + } + + @Order(4) + @TestCase(name = "Payment Order Verification", environments = {PPE}) + @JiraTestCase(id = "BOC-T8591") + public void loanRepayment(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.databoxes.user) Credentials credentialsSecondBanker) { + operationsTasksTasks = harness.tasks().ufo().operations(); + + String orderType = "Splacení úvěru"; + + harness.store("ORDER_TYPE", orderType); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .then(operationsTasksTasks.paymentOrderTasks().createTransferOrderForClient(accountNumber)) + .selectOrderType(orderType) + .fillAmount(amount) + .clickSend() + .saveTaskIDPaymentOrder() + .checkTransactionSuccessfullyEstablished("Transakce byla úspěšně založena pod ID:"); + + harness.withUfoSecondInstance() + .openLoginPage() + .then(operationsTasksTasks.login().withSecondBankerCredentials(credentialsSecondBanker)) + .clickTransferPaymentOrderVerification() + .fillTransactionId(harness.get(ID_PAYMENT_ORDER_KEY)) + .clickOk() + .clickFirstTransactionDetail() + .then(operationsTasksTasks.paymentOrderTasks().saveTransferOrderInformation()) + .saveConstantSymbol() + .clickCloseDetail() + .clickFirstTransactionVerification() + .then(operationsTasksTasks.paymentOrderTasks().fillPaymentVerificationForm(amount)) + .fillConstantSymbol(harness.get(CONSTANT_SYMBOL_KEY)) + .clickSaveWithConstantSymbol(); + } + + @Order(5) + @TestCase(name = "Payment Order Verification", environments = {PPE}) + @JiraTestCase(id = "BOC-T8591") + public void interest(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.databoxes.user) Credentials credentialsSecondBanker) { + operationsTasksTasks = harness.tasks().ufo().operations(); + + String orderType = "Úroky"; + + harness.store("ORDER_TYPE", orderType); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .then(operationsTasksTasks.paymentOrderTasks().createTransferOrderForClient(accountNumber)) + .selectOrderType(orderType) + .fillAmount(amount) + .clickSend() + .saveTaskIDPaymentOrder() + .checkTransactionSuccessfullyEstablished("Transakce byla úspěšně založena pod ID:"); + + harness.withUfoSecondInstance() + .openLoginPage() + .then(operationsTasksTasks.login().withSecondBankerCredentials(credentialsSecondBanker)) + .clickTransferPaymentOrderVerification() + .fillTransactionId(harness.get(ID_PAYMENT_ORDER_KEY)) + .clickOk() + .clickFirstTransactionDetail() + .then(operationsTasksTasks.paymentOrderTasks().saveTransferOrderInformation()) + .saveVariableSymbol() + .saveConstantSymbol() + .clickCloseDetail() + .clickFirstTransactionVerification() + .then(operationsTasksTasks.paymentOrderTasks().fillPaymentVerificationForm(amount)) + .fillVariableSymbol(harness.get(VARIABLE_SYMBOL_KEY)) + .fillConstantSymbol(harness.get(CONSTANT_SYMBOL_KEY)) + .clickSaveWithOptionalSymbols(); + } + + @Order(6) + @TestCase(name = "Payment Order Verification", environments = {PPE}) + @JiraTestCase(id = "BOC-T8591") + public void refundOfCanceledPayments(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.databoxes.user) Credentials credentialsSecondBanker) { + operationsTasksTasks = harness.tasks().ufo().operations(); + + String orderType = "Vratka storno splátek"; + + harness.store("ORDER_TYPE", orderType); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .then(operationsTasksTasks.paymentOrderTasks().createTransferOrderForClient(accountNumber)) + .selectOrderType(orderType) + .fillAmount(amount) + .clickSend() + .saveTaskIDPaymentOrder() + .checkTransactionSuccessfullyEstablished("Transakce byla úspěšně založena pod ID:"); + + harness.withUfoSecondInstance() + .openLoginPage() + .then(operationsTasksTasks.login().withSecondBankerCredentials(credentialsSecondBanker)) + .clickTransferPaymentOrderVerification() + .fillTransactionId(harness.get(ID_PAYMENT_ORDER_KEY)) + .clickOk() + .clickFirstTransactionDetail() + .then(operationsTasksTasks.paymentOrderTasks().saveTransferOrderInformation()) + .clickCloseDetail() + .clickFirstTransactionVerification() + .then(operationsTasksTasks.paymentOrderTasks().fillPaymentVerificationForm(amount)) + .clickSaveWithOptionalSymbols(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nTyp příkazu: " + harness.get("ORDER_TYPE") + + "\nID Transakce: " + harness.get(ID_PAYMENT_ORDER_KEY, true) + + "\nČíslo účtu: " + harness.getConfig("ufo.operations.account-number-for-payment-order-and-verification")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesBrki.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesBrki.java new file mode 100644 index 0000000..ba99a62 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesBrki.java @@ -0,0 +1,186 @@ +package cz.moneta.test.regression.backoffice.ufooperations.regressionsbbo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.ParameterizedTestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.params.provider.ValueSource; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; + +@TestScenarioWithOrder(name = "Print Templates Brki") +public class PrintTemplatesBrki { + + String department = "OPERATIONS_PAYMENTS_ZAKLAD"; + String category = "BRKI"; + String CIF; + + @Order(1) + @ParameterizedTestCase(name = "Print template BRKI Another Address", environments = {PPE}) + @ValueSource(strings = { + "Dodání OP BRKI" + }) + @JiraTestCase(id = "BOC-T8689") + public void printTemplatesBrkiAnotherAddress(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000064103"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickPrintLettersWithCif() + .selectDepartment(department) + .selectCategory(category) + .selectTemplate(printName) + .selectGenderIfVisible() + .clickAnotherAddress() + .fillNameInput("David Novák") + .fillStreetInput("Dlouhá") + .fillBuildingNumberInput("928") + .fillStreetNumberInput("1") + .fillCityInput("Praha") + .fillPostalCodeInput("11000") + .clickPrintWithAnotherAddress() + .clickAddress() + .clickPrint() + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(2) + @ParameterizedTestCase(name = "Print template BRKI DMS", environments = {PPE}) + @ValueSource(strings = { + "Dodání OP BRKI" + }) + @JiraTestCase(id = "BOC-T8665") + public void printTemplatesBrkiDms(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000003205"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(3) + @ParameterizedTestCase(name = "Print template BRKI DOPIS", environments = {PPE}) + @ValueSource(strings = { + "Dodání OP BRKI" + }) + @JiraTestCase(id = "BOC-T8686") + public void printTemplatesBrkiLetter(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000037180"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToEts() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(4) + @ParameterizedTestCase(name = "Print template BRKI IB", environments = {PPE}) + @ValueSource(strings = { + "Dodání OP BRKI" + }) + @JiraTestCase(id = "BOC-T8687") + public void printTemplatesBrkiIb(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000233806"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToIbIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(5) + @ParameterizedTestCase(name = "Print template BRKI Interactive", environments = {PPE}) + @ValueSource(strings = { + "Informace BRKI", + "Potvrzení BRKI", + }) + @JiraTestCase(id = "BOC-T8703") + public void printTemplatesBrkiInteractive(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000011599"; + String title = "Ondřej Mysl"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickPrintLettersWithCif() + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateInteractive(department, category, printName, title)); + } + + @Order(6) + @ParameterizedTestCase(name = "Print template BRKI LOCAL", environments = {PPE}) + @ValueSource(strings = { + "Dodání OP BRKI" + }) + @JiraTestCase(id = "BOC-T8685") + public void printTemplatesBrkiLocal(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000069092"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToLocal() + .clickSendAndClosePrintWindow(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nNázev dopisu: " + harness.get("PRINT_NAME") + + "\nCIF: " + CIF); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesGdpr.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesGdpr.java new file mode 100644 index 0000000..f9933e4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesGdpr.java @@ -0,0 +1,202 @@ +package cz.moneta.test.regression.backoffice.ufooperations.regressionsbbo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.ParameterizedTestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.params.provider.ValueSource; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; + +@TestScenarioWithOrder(name = "Print Templates Gdpr") +public class PrintTemplatesGdpr { + + String department = "OPERATIONS_BACKOFFICE_ZAKLAD"; + String category = "GDPR"; + String CIF; + + @Order(1) + @ParameterizedTestCase(name = "Print template GDPR another address", environments = {PPE}) + @ValueSource(strings = { + "Právo na výmaz - 1 rok", + "Právo na výmaz - 5 let", + "Právo na výmaz - 10 let", + "Přístup k údajům - zamítnuto", + "Přístup k údajům - uznáno", + "Právo na výmaz - ukončený vztah", + "Právo na výmaz - již vymazáno", + "Právo na výmaz - existující vztah", + "Právo na výmaz - bude vymazáno" + }) + @JiraTestCase(id = "BOC-T8763") + public void printTemplatesGdprAnotherAddress(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000006024"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickPrintLettersWithCif() + .selectDepartment(department) + .selectCategory(category) + .selectTemplate(printName) + .selectGenderIfVisible() + .clickAnotherAddress() + .fillNameInput("David Novák") + .fillStreetInput("Dlouhá") + .fillBuildingNumberInput("928") + .fillStreetNumberInput("1") + .fillCityInput("Praha") + .fillPostalCodeInput("11000") + .clickPrintWithAnotherAddress() + .clickAddress() + .clickPrint() + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(2) + @ParameterizedTestCase(name = "Print template GDPR DMS", environments = {PPE}) + @ValueSource(strings = { + "Právo na výmaz - 1 rok", + "Právo na výmaz - 5 let", + "Právo na výmaz - 10 let", + "Přístup k údajům - zamítnuto", + "Přístup k údajům - uznáno", + "Právo na výmaz - ukončený vztah", + "Právo na výmaz - již vymazáno", + "Právo na výmaz - existující vztah", + "Právo na výmaz - bude vymazáno" + }) + @JiraTestCase(id = "BOC-T8761") + public void printTemplatesGdprDms(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000060550"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(3) + @ParameterizedTestCase(name = "Print template GDPR Dopis", environments = {PPE}) + @ValueSource(strings = { + "Právo na výmaz - 1 rok", + "Právo na výmaz - 5 let", + "Právo na výmaz - 10 let", + "Přístup k údajům - zamítnuto", + "Přístup k údajům - uznáno", + "Právo na výmaz - ukončený vztah", + "Právo na výmaz - již vymazáno", + "Právo na výmaz - existující vztah", + "Právo na výmaz - bude vymazáno" + }) + @JiraTestCase(id = "BOC-T8765") + public void printTemplatesGdprLetter(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "9002004065"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToEts() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(4) + @ParameterizedTestCase(name = "Print template GDPR Ib", environments = {PPE}) + @ValueSource(strings = { + "Právo na výmaz - 1 rok", + "Právo na výmaz - 5 let", + "Právo na výmaz - 10 let", + "Přístup k údajům - zamítnuto", + "Přístup k údajům - uznáno", + "Právo na výmaz - ukončený vztah", + "Právo na výmaz - již vymazáno", + "Právo na výmaz - existující vztah", + "Právo na výmaz - bude vymazáno" + }) + @JiraTestCase(id = "BOC-T8762") + public void printTemplatesGdprIb(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000233808"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToIbIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(5) + @ParameterizedTestCase(name = "Print template GDPR Local", environments = {PPE}) + @ValueSource(strings = { + "Právo na výmaz - 1 rok", + "Právo na výmaz - 5 let", + "Právo na výmaz - 10 let", + "Přístup k údajům - zamítnuto", + "Přístup k údajům - uznáno", + "Právo na výmaz - ukončený vztah", + "Právo na výmaz - již vymazáno", + "Právo na výmaz - existující vztah", + "Právo na výmaz - bude vymazáno" + }) + @JiraTestCase(id = "BOC-T8764") + public void printTemplatesGdprLocal(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000036007"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToLocal() + .clickSendAndClosePrintWindow(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nNázev dopisu: " + harness.get("PRINT_NAME") + + "\nCIF: " + CIF); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesPs.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesPs.java new file mode 100644 index 0000000..ba9ebe9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesPs.java @@ -0,0 +1,172 @@ +package cz.moneta.test.regression.backoffice.ufooperations.regressionsbbo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.ParameterizedTestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.params.provider.ValueSource; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; + +@TestScenarioWithOrder(name = "Print Templates Ps") +public class PrintTemplatesPs { + + String department = "OPERATIONS_PAYMENTS_ZAKLAD"; + String category = "PS"; + String CIF; + + @Order(1) + @ParameterizedTestCase(name = "Print template PS another address", environments = {PPE}) + @ValueSource(strings = { + "Žádost o doplnění č. úvěru", + "Žádost o doplnění čísla smlouvy - chybí č. sml.", + "Žádost o doplnění čísla smlouvy - chybné č. sml." + }) + @JiraTestCase(id = "BOC-T8668") + public void printTemplatesPsAnotherAddress(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000027860"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickPrintLettersWithCif() + .selectDepartment(department) + .selectCategory(category) + .selectTemplate(printName) + .selectGenderIfVisible() + .clickAnotherAddress() + .fillNameInput("David Novák") + .fillStreetInput("Dlouhá") + .fillBuildingNumberInput("928") + .fillStreetNumberInput("1") + .fillCityInput("Praha") + .fillPostalCodeInput("11000") + .clickPrintWithAnotherAddress() + .clickAddress() + .clickPrint() + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(2) + @ParameterizedTestCase(name = "Print template PS DMS", environments = {PPE}) + @ValueSource(strings = { + "Žádost o doplnění č. úvěru", + "Žádost o doplnění čísla smlouvy - chybí č. sml.", + "Žádost o doplnění čísla smlouvy - chybné č. sml." + }) + @JiraTestCase(id = "BOC-T8664") + public void printTemplatesPsDms(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "9000599863"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(3) + @ParameterizedTestCase(name = "Print template PS DOPIS", environments = {PPE}) + @ValueSource(strings = { + "Žádost o doplnění č. úvěru", + "Žádost o doplnění čísla smlouvy - chybí č. sml." + }) + @JiraTestCase(id = "BOC-T8666") + public void printTemplatesPsLetter(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000032781"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToEts() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(4) + @ParameterizedTestCase(name = "Print template PS Ib", environments = {PPE}) + @ValueSource(strings = { + "Žádost o doplnění č. úvěru", + "Žádost o doplnění čísla smlouvy - chybí č. sml.", + "Žádost o doplnění čísla smlouvy - chybné č. sml." + }) + @JiraTestCase(id = "BOC-T8682") + public void printTemplatesPsIb(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000092508"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToIbIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(5) + @ParameterizedTestCase(name = "Print template PS LOCAL", environments = {PPE}) + @ValueSource(strings = { + "Žádost o doplnění č. úvěru", + "Žádost o doplnění čísla smlouvy - chybí č. sml.", + "Žádost o doplnění čísla smlouvy - chybné č. sml." + }) + @JiraTestCase(id = "BOC-T8667") + public void printTemplatesPsLocal(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "9001914853"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToLocal() + .clickSendAndClosePrintWindow(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nNázev dopisu: " + harness.get("PRINT_NAME") + + "\nCIF: " + CIF); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesStatements.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesStatements.java new file mode 100644 index 0000000..6119818 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesStatements.java @@ -0,0 +1,230 @@ +package cz.moneta.test.regression.backoffice.ufooperations.regressionsbbo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.ParameterizedTestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.params.provider.ValueSource; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; + +@TestScenarioWithOrder(name = "Print Templates Statements") +public class PrintTemplatesStatements { + String department = "OPERATIONS_PAYMENTS_ZAKLAD"; + String category = "Výpovědi"; + String CIF; + + @Order(1) + @ParameterizedTestCase(name = "Print template Statements another address", environments = {PPE}) + @ValueSource(strings = { + "Výpověď běžného účtu - chybí č. účtu", + "Výpověď spořícího účtu - chybné č. účtu", + "Výpověď spořícího účtu - chybí č. účtu", + "Výpověď běžného účtu - chybné č. účtu", + "Žádost o doplnění č. účtu" + }) + @JiraTestCase(id = "BOC-T8671") + public void printTemplatesStatementsAnotherAddress(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000064750"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + String printAlternateName = printName; + if (printName.equals("Výpověď spořícího účtu - chybné č. účtu")) { + printAlternateName = "Žádost o doplnění výpovědi spořícího účtu"; + } else if (printName.equals("Výpověď běžného účtu - chybné č. účtu")) { + printAlternateName = "Žádost o doplnění výpovědi běžného účtu"; + } + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickPrintLettersWithCif() + .selectDepartment(department) + .selectCategory(category) + .selectTemplate(printName) + .selectGenderIfVisible() + .clickAnotherAddress() + .fillNameInput("David Novák") + .fillStreetInput("Dlouhá") + .fillBuildingNumberInput("928") + .fillStreetNumberInput("1") + .fillCityInput("Praha") + .fillPostalCodeInput("11000") + .clickPrintWithAnotherAddress() + .clickAddress() + .clickPrint() + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printAlternateName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(2) + @ParameterizedTestCase(name = "Print template Statements DMS", environments = {PPE}) + @ValueSource(strings = { + "Výpověď běžného účtu - chybí č. účtu", + "Výpověď spořícího účtu - chybné č. účtu", + "Výpověď spořícího účtu - chybí č. účtu", + "Výpověď běžného účtu - chybné č. účtu", + "Žádost o doplnění č. účtu" + }) + @JiraTestCase(id = "BOC-T8633") + public void printTemplatesStatementsDms(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000011599"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + String printAlternateName = printName; + if (printName.equals("Výpověď spořícího účtu - chybné č. účtu")) { + printAlternateName = "Žádost o doplnění výpovědi spořícího účtu"; + } else if (printName.equals("Výpověď běžného účtu - chybné č. účtu")) { + printAlternateName = "Žádost o doplnění výpovědi běžného účtu"; + } + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printAlternateName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(3) + @ParameterizedTestCase(name = "Print template Statements DOPIS", environments = {PPE}) + @ValueSource(strings = { + "Výpověď spořícího účtu - chybí č. účtu", + "Výpověď běžného účtu - chybné č. účtu", + "Žádost o doplnění č. účtu" + }) + @JiraTestCase(id = "BOC-T8670") + public void printTemplatesStatementsLetter(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000060532"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + String printAlternateName = printName; + if (printName.equals("Výpověď spořícího účtu - chybné č. účtu")) { + printAlternateName = "Žádost o doplnění výpovědi spořícího účtu"; + } else if (printName.equals("Výpověď běžného účtu - chybné č. účtu")) { + printAlternateName = "Žádost o doplnění výpovědi běžného účtu"; + } + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToEts() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printAlternateName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(4) + @ParameterizedTestCase(name = "Print template Statements Ib", environments = {PPE}) + @ValueSource(strings = { + "Výpověď běžného účtu - chybí č. účtu", + "Výpověď spořícího účtu - chybné č. účtu", + "Výpověď spořícího účtu - chybí č. účtu", + "Výpověď běžného účtu - chybné č. účtu", + "Žádost o doplnění č. účtu" + }) + @JiraTestCase(id = "BOC-T8683") + public void printTemplatesStatementsIb(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000233810"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + String printAlternateName = printName; + if (printName.equals("Výpověď spořícího účtu - chybné č. účtu")) { + printAlternateName = "Žádost o doplnění výpovědi spořícího účtu"; + } else if (printName.equals("Výpověď běžného účtu - chybné č. účtu")) { + printAlternateName = "Žádost o doplnění výpovědi běžného účtu"; + } + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToIbIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printAlternateName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(5) + @ParameterizedTestCase(name = "Print template Statements Interactive", environments = {PPE}) + @ValueSource(strings = { + "Výpověď všech smluv", + }) + @JiraTestCase(id = "BOC-T8702") + public void printTemplatesStatementsInteractive(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "9000174795"; + String title = "Ing. Dorota Omelková"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(CIF) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .clickPrintLettersWithCif() + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateInteractive(department, category, printName, title)); + } + + @Order(6) + @ParameterizedTestCase(name = "Print template Statements LOCAL", environments = {PPE}) + @ValueSource(strings = { + "Výpověď běžného účtu - chybí č. účtu", + "Výpověď spořícího účtu - chybné č. účtu", + "Výpověď spořícího účtu - chybí č. účtu", + "Výpověď běžného účtu - chybné č. účtu", + "Žádost o doplnění č. účtu" + }) + @JiraTestCase(id = "BOC-T8672") + public void printTemplatesStatementsLocal(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.CIF = "3000053846"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithCif(CIF, department, category, printName)) + .clickSaveToLocal() + .clickSendAndClosePrintWindow(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nNázev dopisu: " + harness.get("PRINT_NAME") + + "\nCIF: " + CIF); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesUncategorized.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesUncategorized.java new file mode 100644 index 0000000..edd4503 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/PrintTemplatesUncategorized.java @@ -0,0 +1,239 @@ +package cz.moneta.test.regression.backoffice.ufooperations.regressionsbbo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.ParameterizedTestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.params.provider.ValueSource; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; + +@TestScenarioWithOrder(name = "Print Templates Uncategorized") +public class PrintTemplatesUncategorized { + + String department = "OPERATIONS_PAYMENTS_ZAKLAD"; + String category = "bez kategorie"; + String account; + + @Order(1) + @ParameterizedTestCase(name = "Print template Uncategorized Another Address", environments = {PPE}) + @ValueSource(strings = { + "Přijetí výpovědi", + "Vyčíslení FLX", + "Změna kontaktní adresy", + "Změna trvalé adresy - odkaz na OM", + "Změna kontaktní adresy - chybí podpis", + "Změna příjmení", + "Upozornění k Dětskému/Studentskému účtu" + + }) + @JiraTestCase(id = "BOC-T8677") + public void printTemplatesUncategorizedAnotherAddress(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.account = "207293349"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + String printAlternateName = printName; + if (printName.equals("Vyčíslení FLX")) { + printAlternateName = "Vyčíslení Flexikreditu"; + } + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(account) + .searchBy(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .clickPrintLettersWithAccount() + .selectDepartment(department) + .selectCategory(category) + .selectTemplate(printName) + .selectGenderIfVisible() + .clickAnotherAddress() + .fillNameInput("David Novák") + .fillStreetInput("Dlouhá") + .fillBuildingNumberInput("928") + .fillStreetNumberInput("1") + .fillCityInput("Praha") + .fillPostalCodeInput("11000") + .clickPrintWithAnotherAddress() + .clickAddress() + .clickPrint() + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printAlternateName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(2) + @ParameterizedTestCase(name = "Print template Uncategorized DMS", environments = {PPE}) + @ValueSource(strings = { + "Přijetí výpovědi", + "Vyčíslení FLX", + "Změna kontaktní adresy", + "Změna trvalé adresy - odkaz na OM", + "Změna kontaktní adresy - chybí podpis", + "Změna příjmení", + "Upozornění k Dětskému/Studentskému účtu" + + }) + @JiraTestCase(id = "BOC-T8675") + public void printTemplatesUncategorizedDms(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.account = "207118719"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + String printAlternateName = printName; + if (printName.equals("Vyčíslení FLX")) { + printAlternateName = "Vyčíslení Flexikreditu"; + } + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithAccount(account, department, category, printName)) + .clickSaveToDmsIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printAlternateName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(3) + @ParameterizedTestCase(name = "Print template Uncategorized Dopis", environments = {PPE}) + @ValueSource(strings = { + "Přijetí výpovědi", + "Vyčíslení FLX", + "Změna kontaktní adresy", + "Změna trvalé adresy - odkaz na OM", + "Změna kontaktní adresy - chybí podpis", + "Změna příjmení", + "Upozornění k Dětskému/Studentskému účtu" + + }) + @JiraTestCase(id = "BOC-T8678") + public void printTemplatesUncategorizedLetter(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.account = "162331005"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + String printAlternateName = printName; + if (printName.equals("Vyčíslení FLX")) { + printAlternateName = "Vyčíslení Flexikreditu"; + } + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithAccount(account, department, category, printName)) + .clickSaveToEmailIfChecked() + .clickSaveToEts() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printAlternateName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(4) + @ParameterizedTestCase(name = "Print template Uncategorized IB", environments = {PPE}) + @ValueSource(strings = { + "Přijetí výpovědi", + "Vyčíslení FLX", + "Změna kontaktní adresy", + "Změna trvalé adresy - odkaz na OM", + "Změna příjmení", + "Upozornění k Dětskému/Studentskému účtu" + + }) + @JiraTestCase(id = "BOC-T8681") + public void printTemplatesUncategorizedIb(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.account = "235702963"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + String printAlternateName = printName; + if (printName.equals("Vyčíslení FLX")) { + printAlternateName = "Vyčíslení Flexikreditu"; + } + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithAccount(account, department, category, printName)) + .clickSaveToIbIfNotChecked() + .clickSend() + .onClientDetailPage() + .clickCorrespondence() + .assertPrintName(printAlternateName) + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(5) + @ParameterizedTestCase(name = "Print template Statements Interactive", environments = {PPE}) + @ValueSource(strings = { + "Doplnění VS", + }) + @JiraTestCase(id = "BOC-T8704") + public void printTemplatesUncategorizedInteractive(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.account = "207019921"; + String title = "Test Klient"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(account) + .searchBy(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .clickPrintLettersWithAccount() + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateInteractive(department, category, printName, title)); + } + + @Order(6) + @ParameterizedTestCase(name = "Print template Uncategorized Local", environments = {PPE}) + @ValueSource(strings = { + "Přijetí výpovědi", + "Vyčíslení FLX", + "Změna kontaktní adresy", + "Změna trvalé adresy - odkaz na OM", + "Změna kontaktní adresy - chybí podpis", + "Změna příjmení", + "Upozornění k Dětskému/Studentskému účtu" + + }) + @JiraTestCase(id = "BOC-T8680") + public void printTemplatesUncategorizedLocal(String printName, Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.account = "207246024"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.store("PRINT_NAME", printName); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .then(operationsTasksTasks.printTemplateTasks().createPrintTemplateWithAccount(account, department, category, printName)) + .clickSaveToLocal() + .clickSendAndClosePrintWindow(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nNázev dopisu: " + harness.get("PRINT_NAME") + + "\nČíslo účtu: " + account); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/RevokePersonalDataConsents.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/RevokePersonalDataConsents.java new file mode 100644 index 0000000..6968256 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/RevokePersonalDataConsents.java @@ -0,0 +1,121 @@ +package cz.moneta.test.regression.backoffice.ufooperations.regressionsbbo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "RevokePersonalDataConsents") +public class RevokePersonalDataConsents { + + String revoked = "odvolaný"; + String valid = "platný"; + String birthNumber; + + @Order(1) + @TestCase(name = "Marketing Consents", environments = {PPE, TST1}) + @JiraTestCase(id = "BOC-T8858") + public void marketingConsents(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.birthNumber = "6608120717"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(birthNumber) + .clickRcRadio() + .clickSearchClient() + .onClientDetailsPage() + .clickClientConsents() + .clickGiveAllConsents() + .acceptAlert() + .checkEmailMMBConsents(valid) + .checkPostMMBConsents(valid) + .checkSmsMMBConsents(valid) + .checkTelephoneMMBConsents(valid) + .checkIbSbMMBConsents(valid) + .checkSurveysMMBConsents(valid) + .clickRevokeEmail() + .checkEmailMMBConsents(revoked) + .clickRevokePostConsent() + .checkPostMMBConsents(revoked) + .clickRevokeSmsConsent() + .checkSmsMMBConsents(revoked) + .clickRevokeTelephoneConsent() + .checkTelephoneMMBConsents(revoked) + .clickRevokeIbSbConsent() + .checkIbSbMMBConsents(revoked) + .clickRevokeSurveysConsent() + .checkSurveysMMBConsents(revoked) + .selectTypeOfPrint(2) + .clickGeneratePrint() + .clickSaveToEts() + .clickSendButton() + .onClientConsentsPage() + .clickCorrespondence() + .assertPrintName("Odvolání MKT – kanály") + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @Order(2) + @TestCase(name = "Another Consents", environments = {PPE, TST1}) + @JiraTestCase(id = "BOC-T8873") + public void anotherConsents(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + this.birthNumber = "7401185044"; + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(birthNumber) + .clickRcRadio() + .clickSearchClient() + .onClientDetailsPage() + .clickClientConsents() + .clickGiveUnencryptedCommunicationConsents() + .clickGiveInstantMessagingConsents() + .checkUnencryptedCommunicationMMBConsents(valid) + .checkWhatsappMMBConsents(valid) + .checkOtherChannelsMMBConsents(valid) + .clickRevokeUnencryptedCommunication() + .checkUnencryptedCommunicationMMBConsents(revoked) + .clickRevokeWhatsapp() + .checkWhatsappMMBConsents(revoked) + .clickRevokeOtherChannels() + .checkOtherChannelsMMBConsents(revoked) + .selectTypeOfPrint(5) + .clickGeneratePrint() + .clickSaveToEts() + .clickSendButton() + .onClientConsentsPage() + .selectTypeOfPrint(11) + .clickGeneratePrint() + .clickSaveToEts() + .clickSendButton() + .onClientConsentsPage() + .clickCorrespondence() + .assertPrintName("Odvolání instant messaging - kanály") + .assertDate(DateUtils.getFormattedTodayDate("d.M.yyyy")) + .assertSecondPrintName("Odvolání Nešif.komunikace") + .assertSecondDate(DateUtils.getFormattedTodayDate("d.M.yyyy")); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nRČ: " + birthNumber); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/TransferOrders.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/TransferOrders.java new file mode 100644 index 0000000..c2ac697 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/TransferOrders.java @@ -0,0 +1,46 @@ +package cz.moneta.test.regression.backoffice.ufooperations.regressionsbbo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; + +@TestScenario(name = "Transfer orders") +public class TransferOrders { + String accountNumber = "236354729"; + + @TestCase(name = "Incorrect transfer order", environments = {PPE}) + @JiraTestCase(id = "BOC-T8480") + public void incorrectTransferOrder(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .fillSearchInput(accountNumber) + .searchBy(SearchBy.ACCOUNT_NUMBER) + .onClientDetailsPage() + .clickAccountList() + .clickTransactions() + .clickTransactionOrder() + .clickPaymentsZaklad() + .selectOrderType("Poplatky") + .fillAmount("a") + .clickSendAndAcceptAlert(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nČíslo účtu: " + accountNumber); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/VipExchangeRateList.java b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/VipExchangeRateList.java new file mode 100644 index 0000000..a41dd62 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/backoffice/ufooperations/regressionsbbo/VipExchangeRateList.java @@ -0,0 +1,60 @@ +package cz.moneta.test.regression.backoffice.ufooperations.regressionsbbo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Vip Exchange Rate List") +public class VipExchangeRateList { + + String ICO = "05504465"; + + @TestCase(name = "Vip Exchange Rate List", environments = {Environment.PPE}) + @JiraTestCase(id = "BOC-T8843") + public void vipExchangeRateList(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(ICO) + .searchBy(SearchBy.ICO) + .onClientDetailsPage() + .clickAccountList() + .then(harness.tasks().ufo().operations().bankBackOfficeTasks().removeVipExchangeRateList()) + .clickHomePage() + .fillSearchInput(ICO) + .searchBy(SearchBy.ICO) + .onClientDetailsPage() + .clickAccountList() + .then(harness.tasks().ufo().operations().bankBackOfficeTasks().setVipExchangeRateList()) + .clickHomePage() + .fillSearchInput(ICO) + .searchBy(SearchBy.ICO) + .onClientDetailsPage() + .assertRelationship("VIP Klient PO") + .clickCorrespondence() + .fillRc("") + .clickSearchDocuments() + .assertPrintName("Nastavení VIP Kurzovního lístku"); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nIČO: " + ICO); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CardsIbOnboarding.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CardsIbOnboarding.java new file mode 100644 index 0000000..ef5aacb --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CardsIbOnboarding.java @@ -0,0 +1,113 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.dsl.util.task.retail.cards.constants.CreditCardSQL; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to onboard card in IB") +public class CardsIbOnboarding { + + NewClientWithCurrentAccountInformation newClientWithCurrentAccount; + String clientBirthNumber; + Credentials clientCredentials; + String testCardForJira; + + public String createNewClientWithAccountAndIB(Harness harness, Credentials credentials) { + newClientWithCurrentAccount = harness.dataPrepare() + .createNewFoCustomerWithCurrentAccountAndIbViaWso2(credentials.getUsername()); + return (newClientWithCurrentAccount.getClientData().birthNumber()); + } + + @Order(1) + @TestCase(name = "Set up clients", environments = {TST1, PPE}) + public void setup(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + clientBirthNumber = createNewClientWithAccountAndIB(harness, credentials); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + harness.storeGlobal("IB_CARDS_SETUP", true); + } + + @Order(2) + @EnableIfSet(globalKey = "IB_CARDS_SETUP") + @TestCase(name = "Set up clients", environments = {TST1, PPE}) + public void onboardPlasticCardInIB(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb(). + openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.onboardingOfPlasticDebitCard()); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", clientBirthNumber)); + testCardForJira = resultList.getValue(0, 1).toString(); + + harness.storeGlobal("IB_CARDS_PLASTIC", testCardForJira); + } + + @Order(3) + @EnableIfSet(globalKey = "IB_CARDS_SETUP") + @TestCase(name = "Set up clients", environments = {TST1, PPE}) + public void onboardVirtualCardInIB(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb(). + openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.onboardingOfVirtualDebitCard()); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", clientBirthNumber)); + testCardForJira = resultList.getValue(0, 1).toString(); + + harness.storeGlobal("IB_CARDS_VIRTUAL", testCardForJira); + } + + @Order(4) + @EnableIfSet(globalKey = "IB_CARDS_PLASTIC") + @EnableIfSet(globalKey = "IB_CARDS_VIRTUAL") + @TestCase(name = "Set up clients", environments = {TST1, PPE}) + public void checkMaxCardOnboarded(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb(). + openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkMaxNumberOfCardsOnboarded()); + } + + @Order(5) + @EnableIfSet(globalKey = "IB_CARDS_PLASTIC") + @TestCase(name = "Set up clients", environments = {TST1, PPE}) + public void cancelDebitCard(Harness harness) { + testCardForJira = harness.getGlobal("IB_CARDS_PLASTIC"); + String testCardLastNumbers = StringUtils.right(testCardForJira, 4); + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb(). + openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.getIntoBlockingScreen(testCardLastNumbers, "Neaktivní")) + .then(newIbTasks.cancelDebitCard()); + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + "\n Rodné číslo: " + clientBirthNumber + + "\n Číslo karty: " + testCardForJira); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CardsIbTests.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CardsIbTests.java new file mode 100644 index 0000000..9e463f6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CardsIbTests.java @@ -0,0 +1,59 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.apache.commons.lang.StringUtils; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to show PIN in IB") +public class CardsIbTests { + + Credentials clientCredentials; + + @TestCase(name = "Show Pin on a retail Standard Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T334") + public void showPinOnRetailDebitCard(Harness harness) { + String accountNumber = harness.getConfig("cards_team.retail.account.number7"); + String testCard = harness.getConfig("cards_team.retail.standard.DC.for.IB"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + String birthNumber = harness.getConfig("cards_team.retail.rc3"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(birthNumber); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb(). + openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.showPinOnDebitCard(accountNumber, testCardLastNumbers)); + + harness.store("reports.tmfj.execution.comment", "Rč klienta " + birthNumber + "\n Číslo karty:" + testCard); + } + + @TestCase(name = "Show Pin on a retail Smart Credit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T333") + public void showPinOnRetailCreditCard(Harness harness) { + String testCard = harness.getConfig("cards_team.retail.standard.CC.for.IB"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + String birthNumber = harness.getConfig("cards_team.retail.rc3"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(birthNumber); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb(). + openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.showPinOnCreditCard(testCardLastNumbers)); + + harness.store("reports.tmfj.execution.comment", "Rč klienta " + birthNumber + "\n Číslo karty:" + testCard); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CardsLimitChange.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CardsLimitChange.java new file mode 100644 index 0000000..0dc2b99 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CardsLimitChange.java @@ -0,0 +1,228 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to change limits on card") +public class CardsLimitChange { + + NonClient nonClient; + String testCard; + String reportingId; + + + public void changeLimitRetailDc(Harness harness, Credentials credentials, String intLimit, String atmLimit, String posLimit, String birthNum, String cardNumber) { + nonClient = harness.data().newFVNonClient() + .withBirthNumber(birthNum); + String testCardLastNumbers = StringUtils.right(cardNumber, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeLimitOnDebitCardMainPart(testCardLastNumbers, intLimit, atmLimit, posLimit)) + .then(bankaTasks.cardsServicing().changeLimitOnDebitCardLastPart(harness)); + + testCard = cardNumber; + reportingId = "Rč klienta " + nonClient.birthNumber(); + } + + public void changeLimitCommercialDC(Harness harness, Credentials credentials, String intLimit, String atmLimit, String posLimit, String icoNum, String cardNumber) { + nonClient = harness.data().newFVNonClient() + .withIco(icoNum); + String testCardLastNumbers = StringUtils.right(cardNumber, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert(nonClient.ico())) + .then(bankaTasks.cardsServicing().changeLimitOnDebitCardMainPart(testCardLastNumbers, intLimit, atmLimit, posLimit)) + .then(bankaTasks.cardsServicing().changeLimitOnDebitCardLastPart(harness)); + + testCard = cardNumber; + reportingId = "Ičo klienta " + nonClient.ico(); + } + + @TestCase(name = "Limit change for plastic retail standard Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T351") + public void changeLimitPlasticStandardDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeLimitRetailDc(harness, credentials, "42000", "42000", "42000", harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.standard.DC")); + } + + @TestCase(name = "Limit change for virtual retail standard Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9795") + public void changeLimitVirtualStandardDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeLimitRetailDc(harness, credentials, "42000", "42000", "42000", harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.standard.virtual.DC")); + } + + @TestCase(name = "Limit change for pride virtual retail standard Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9796") + public void changeLimitPrideVirtualStandardDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeLimitRetailDc(harness, credentials, "42000", "42000", "42000", harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.standard.virtual.pride.DC")); + } + + @TestCase(name = "Limit change for retail plastic gold Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9797") + public void changeLimitPlasticGoldDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeLimitRetailDc(harness, credentials, "42000", "42000", "42000", harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.gold.DC")); + } + + @TestCase(name = "Limit change for retail virtual gold Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9798") + public void changeLimitVirtualGoldDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeLimitRetailDc(harness, credentials, "42000", "42000", "42000", harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.virtual.gold.DC")); + } + + @TestCase(name = "Limit change for eur Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9799") + public void changeLimitEurDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeLimitRetailDc(harness, credentials, "1200", "1200", "1200", harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.eur.DC")); + } + + @TestCase(name = "Limit change for usd Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9800") + public void changeLimitUsdDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeLimitRetailDc(harness, credentials, "1200", "1200", "1200", harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.usd.DC")); + } + + @TestCase(name = "Limit change for retail smart CC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T8709") + public void changeLimitRetailSmartCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc2")); + testCard = harness.getConfig("cards_team.retail.smart.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeLimitRetailSmartCreditCard(testCardLastNumbers, "9000", "9000", "9000")); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + } + + @TestCase(name = "Limit change for retail gold CC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9801") + public void changeLimitRetailGoldCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc5")); + testCard = harness.getConfig("cards_team.retail.gold.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + reportingId = nonClient.birthNumber(); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeLimitRetailSmartCreditCard(testCardLastNumbers, "10000", "10000", "10000")); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + } + + @TestCase(name = "Limit change for retail account CC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9802") + public void changeLimitRetailAccountCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc4")); + testCard = harness.getConfig("cards_team.retail.account.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeLimitRetailSmartCreditCard(testCardLastNumbers, "10000", "10000", "10000")); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + } + + @TestCase(name = "Limit change for child DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9806") + public void changeLimitChildDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.child.rc")); + testCard = harness.getConfig("cards_team.child.card"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findChildByRC(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeLimitOnDebitCardMainPart(testCardLastNumbers, "400", "400", "400")); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + } + + @TestCase(name = "Limit change for MBC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T8710") + public void changeLimitMBC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withIco(harness.getConfig("cards_team.commercial.ico.with.cards")); + testCard = harness.getConfig("cards_team.commercial.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert(nonClient.ico())) + .then(bankaTasks.cardsServicing().changeLimitMBC(testCardLastNumbers, "4200", "4200", "4200")); + + reportingId = "Ičo klienta " + nonClient.ico(); + } + + @TestCase(name = "Limit change for commercial DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T8728") + public void changeLimitStandardCommercialDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeLimitCommercialDC(harness, credentials, "42000", "42000", "42000", harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.DC")); + } + + @TestCase(name = "Limit change for premium commercial DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9805") + public void changeLimitPremiumCommercialDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeLimitCommercialDC(harness, credentials, "42000", "42000", "42000", harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.premium.DC")); + } + + @TestCase(name = "Limit change for commercial eur DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9804") + public void changeLimitCommercialEurDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeLimitCommercialDC(harness, credentials, "1200", "1200", "1200", harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.EUR")); + } + + @TestCase(name = "Limit change for commercial usd DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9803") + public void changeLimitCommercialUsdDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeLimitCommercialDC(harness, credentials, "1200", "1200", "1200", harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.USD")); + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + reportingId + + "\n Číslo karty: " + testCard + + "\n Limity změněny na " + + "\n ATM " + harness.get("LIM_BANK_PAYMENT_CHANGED") + + "\n INT " + harness.get("LIM_INT_PAYMENT_CHANGED") + + "\n MOTO " + harness.get("LIM_MOTO_PAYMENT_CHANGED") + + "\n" + harness.tasks().ufo().banka().cardsServicing().getPrintedPages()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/Change3dSecureNumberOnCards.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/Change3dSecureNumberOnCards.java new file mode 100644 index 0000000..b4d7622 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/Change3dSecureNumberOnCards.java @@ -0,0 +1,213 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to change telephone number for 3D Secure payments") +public class Change3dSecureNumberOnCards { + + String reportingId; + String testCardForJira; + + public void change3dSecureRetailDebitCard(Harness harness, Credentials credentials, String birthNumber, String testCard) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(birthNumber); + + String testCardLastNumbers = StringUtils.right(testCard, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().change3dSecureNumberRetailDebitCard(testCardLastNumbers)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + public void change3dSecureCommercialDebitCard(Harness harness, Credentials credentials, String icoNumber, String testCard) { + NonClient nonClient = harness.data().newFVNonClient() + .withIco(icoNumber); + + String testCardLastNumbers = StringUtils.right(testCard, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert(nonClient.ico())) + .then(bankaTasks.cardsServicing().change3dSecureNumberCommercialDebitCard(testCardLastNumbers)); + + reportingId = "Ičo klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @TestCase(name = "Change 3D Secure Number for Standard Debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T8736") + public void change3dSecureRetailStandardDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + change3dSecureRetailDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.standard.DC")); + } + + @TestCase(name = "Change 3D Secure Number for Gold Debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T8716") + public void change3dSecureRetailGoldDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + change3dSecureRetailDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.gold.DC")); + } + + @TestCase(name = "Change 3D Secure Number for Eur Debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9601") + public void change3dSecureRetailEurCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + change3dSecureRetailDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.eur.DC")); + } + + @TestCase(name = "Change 3D Secure Number for Usd Debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9600") + public void change3dSecureRetailUsdDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + change3dSecureRetailDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.usd.DC")); + } + + @TestCase(name = "Change 3D Secure Number for Smart Credit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T8721") + public void change3dSecureRetailSmartCreditCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc2")); + + String testCard = harness.getConfig("cards_team.retail.smart.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().change3dSecureNumberRetailCreditCard(testCardLastNumbers)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @TestCase(name = "Change 3D Secure Number for gold Credit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T8702") + public void change3dSecureRetailGoldCreditCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc5")); + + String testCard = harness.getConfig("cards_team.retail.gold.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().change3dSecureNumberRetailCreditCard(testCardLastNumbers)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @TestCase(name = "Change 3D Secure Number for credit account", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T8722") + public void change3dSecureRetailCreditAccountCreditCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc4")); + + String testCard = harness.getConfig("cards_team.retail.account.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().change3dSecureNumberRetailCreditCard(testCardLastNumbers)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @TestCase(name = "Change 3D Secure Number for child card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T8701") + public void change3dSecureChildCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.child.rc")) + .withIdNumber(harness.getConfig("cards_team.child.op")); + + String testCard = harness.getConfig("cards_team.child.card"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findChildByRC(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().change3dSecureNumberChildCard(testCardLastNumbers, nonClient.idNumber())); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @TestCase(name = "Change 3D Secure Number for MBC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T8729") + public void change3dSecureMbc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withIco(harness.getConfig("cards_team.commercial.ico.with.cards")); + + String testCard = harness.getConfig("cards_team.commercial.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert(nonClient.ico())) + .then(bankaTasks.cardsServicing().change3dSecureNumberMbc(testCardLastNumbers)); + + reportingId = "Ičo klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @TestCase(name = "Change 3D Secure Number for commercial DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T5607") + public void change3dSecureCommercialDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + change3dSecureCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.DC")); + } + + @TestCase(name = "Change 3D Secure Number for commercial premium DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9599") + public void change3dSecureCommercialPremiumDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + change3dSecureCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.premium.DC")); + } + + @TestCase(name = "Change 3D Secure Number for commercial eur DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9597") + public void change3dSecureCommercialEurDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + change3dSecureCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.EUR")); + } + + @TestCase(name = "Change 3D Secure Number for commercial usd DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9598") + public void change3dSecureCommercialUsdDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + change3dSecureCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.USD")); + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + reportingId + "\n Číslo karty: " + testCardForJira + + "\n" + harness.tasks().ufo().banka().cardsServicing().getPrintedPages()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ChangeDccSettingOnCards.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ChangeDccSettingOnCards.java new file mode 100644 index 0000000..df77669 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ChangeDccSettingOnCards.java @@ -0,0 +1,149 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to change the actual state of DCC transactions") +public class ChangeDccSettingOnCards { + + String reportingId; + String testCardForJira; + + public void changeDccForStandardDebitCard(Harness harness, Credentials credentials, String birthNumber, String testCard) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(birthNumber); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeDccSettingOnRetailDebitCard(testCardLastNumbers)) + ; + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + public void changeDccForCommercialDebitCard(Harness harness, Credentials credentials, String icoNumber, String testCard) { + NonClient nonClient = harness.data().newFVNonClient() + .withIco(icoNumber); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert((nonClient.ico()))) + .then(bankaTasks.cardsServicing().changeDccSettingOnCommercialDebitCard(testCardLastNumbers)); + + reportingId = "Ičo klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + public void changeDccForRetailCreditCard(Harness harness, Credentials credentials, String birthNumber, String testCard) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(birthNumber); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeDccSettingOnRetailCreditCard(testCardLastNumbers)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @TestCase(name = "Change DCC Transactions Setting For Retail Standard Debit Card", environments = {TST1, PPE}) + public void changeDccForStandardRetailDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeDccForStandardDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.standard.DC")); + } + + @TestCase(name = "Change DCC Transactions Setting For Retail Gold Debit Card", environments = {TST1, PPE}) + public void changeDccForGoldRetailDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeDccForStandardDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.gold.DC")); + } + + @TestCase(name = "Change DCC Transactions Setting for Retail Smart Credit Card", environments = {TST1, PPE}) + public void changeDccForRetailSmartCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeDccForRetailCreditCard(harness, credentials, harness.getConfig("cards_team.retail.rc2"), harness.getConfig("cards_team.retail.smart.CC")); + } + + @TestCase(name = "Change DCC Transactions Setting for Retail Gold Credit Card", environments = {TST1, PPE}) + public void changeDccForRetailGoldCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeDccForRetailCreditCard(harness, credentials, harness.getConfig("cards_team.retail.rc5"), harness.getConfig("cards_team.retail.gold.CC")); + } + + @TestCase(name = "Change DCC Transactions Setting for Retail Account Credit Card", environments = {TST1, PPE}) + public void changeDccForRetailAccountCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeDccForRetailCreditCard(harness, credentials, harness.getConfig("cards_team.retail.rc4"), harness.getConfig("cards_team.retail.account.CC")); + } + + @TestCase(name = "Change DCC Transactions Setting for commercial DC", environments = {TST1, PPE}) + public void changeDccForCommercialDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeDccForCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.DC")); + } + + @TestCase(name = "Change DCC Transactions Setting for commercial premium DC", environments = {TST1, PPE}) + public void changeDccForCommercialPremiumDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeDccForCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.premium.DC")); + } + + @TestCase(name = "Change DCC Transactions Setting for MBC", environments = {TST1, PPE}) + public void changeDccForMBC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withIco(harness.getConfig("cards_team.commercial.ico.with.cards")); + String testCard = harness.getConfig("cards_team.commercial.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert(nonClient.ico())) + .then(bankaTasks.cardsServicing().changeDccSettingOnMBC(testCardLastNumbers)); + + reportingId = "Ičo klienta " + nonClient.ico(); + testCardForJira = testCard; + } + + @TestCase(name = "Change DCC Transactions Setting for Child Card", environments = {TST1, PPE}) + public void changeDccForChildCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.child.rc")); + String testCard = harness.getConfig("cards_team.child.card"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findChildByRC(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeDccSettingOnRetailDebitCard(testCardLastNumbers)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + reportingId + "\n Číslo karty: " + testCardForJira + "\n Status DCC: " + harness.get("DCC_INFO") + + "\n" + harness.tasks().ufo().banka().cardsServicing().getPrintedPages()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ChangeMotoInternetTransactions.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ChangeMotoInternetTransactions.java new file mode 100644 index 0000000..3b0cd39 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ChangeMotoInternetTransactions.java @@ -0,0 +1,206 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to change the actual state of Internet/MOTO transactions") +public class ChangeMotoInternetTransactions { + + String reportingId; + String testCardForJira; + + public void changeMotoIntForStandardDebitCard(Harness harness, Credentials credentials, String birthNumber, String testCard) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(birthNumber); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeIntMotoTransactionsRetailDebitCard(testCardLastNumbers)) + ; + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + public void changeMotoIntForCommercialDebitCard(Harness harness, Credentials credentials, String icoNumber, String testCard) { + NonClient nonClient = harness.data().newFVNonClient() + .withIco(icoNumber); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert((nonClient.ico()))) + .then(bankaTasks.cardsServicing().changeIntMotoTransactionsCommercialDebitCard(testCardLastNumbers)); + + reportingId = "Ičo klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @TestCase(name = "Change Moto and Internet Transactions For Retail Standard Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9240") + public void changeMotoIntForStandardRetailDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeMotoIntForStandardDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.standard.DC")); + } + + @TestCase(name = "Change Moto and Internet Transactions For Retail Gold Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T8734") + public void changeMotoIntForGoldRetailDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeMotoIntForStandardDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.gold.DC")); + } + + @TestCase(name = "Change Moto and Internet Transactions For USD Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9596") + public void changeMotoIntForRetailUsdDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeMotoIntForStandardDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.usd.DC")); + } + + @TestCase(name = "Change Moto and Internet Transactions For Eur Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9595") + public void changeMotoIntForRetailEurDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeMotoIntForStandardDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.eur.DC")); + } + + @TestCase(name = "Change Moto and Internet Transactions for Retail Smart Credit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9239") + public void changeMotoIntForRetailSmartCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc2")); + String testCard = harness.getConfig("cards_team.retail.smart.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeIntMotoTransactionsRetailCreditCard(testCardLastNumbers)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @TestCase(name = "Change Moto and Internet Transactions for Retail Gold Credit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9594") + public void changeMotoIntForRetailGoldCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc5")); + String testCard = harness.getConfig("cards_team.retail.gold.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeIntMotoTransactionsRetailCreditCard(testCardLastNumbers)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @TestCase(name = "Change Moto and Internet Transactions for Retail Account Credit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9593") + public void changeMotoIntForRetailAccountCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc4")); + String testCard = harness.getConfig("cards_team.retail.account.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeIntMotoTransactionsRetailCreditCard(testCardLastNumbers)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @TestCase(name = "Change Moto and Internet Transactions for commercial DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9592") + public void changeMotoIntForCommercialDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeMotoIntForCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.DC")); + } + + @TestCase(name = "Change Moto and Internet Transactions for commercial premium DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9591") + public void changeMotoIntForCommercialPremiumDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeMotoIntForCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.premium.DC")); + } + + @TestCase(name = "Change Moto and Internet Transactions for commercial USD DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9590") + public void changeMotoIntForCommercialUsdDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeMotoIntForCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.USD")); + } + + @TestCase(name = "Change Moto and Internet Transactions for commercial EUR DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9589") + public void changeMotoIntForCommercialEurDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + changeMotoIntForCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.EUR")); + } + + @TestCase(name = "Change Moto and Internet Transactions for MBC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9588") + public void changeMotoIntForMBC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withIco(harness.getConfig("cards_team.commercial.ico.with.cards")); + String testCard = harness.getConfig("cards_team.commercial.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert(nonClient.ico())) + .then(bankaTasks.cardsServicing().changeIntMotoTransactionsMBC(testCardLastNumbers)); + + reportingId = "Ičo klienta " + nonClient.ico(); + testCardForJira = testCard; + } + + @TestCase(name = "Change Moto and Internet Transactions for Child Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9587") + public void changeMotoIntForChildCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.child.rc")); + String testCard = harness.getConfig("cards_team.child.card"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findChildByRC(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeIntMotoTransactionsRetailDebitCard(testCardLastNumbers)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + reportingId + "\n Číslo karty: " + testCardForJira + "\n Status MOTO/INT: " + harness.get("MOTO_INFO") + + "\n" + harness.tasks().ufo().banka().cardsServicing().getPrintedPages()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ChildCardsOnboarding.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ChildCardsOnboarding.java new file mode 100644 index 0000000..c449760 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ChildCardsOnboarding.java @@ -0,0 +1,59 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.cards.CardsServicingTasks; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage.DOCUMENT_URLS_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; + +@TestScenarioWithOrder(name = "Teller must be able to Onboard a commercial Cards on same depersonalized cif") +public class ChildCardsOnboarding { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = CardsServicingTasks.setUpChild(harness, harness.getConfig("cards_team.child.onboarding.birth.number")); + } + + @TestCase(name = "Create New Child Client With Cards", environments = {PPE}) + @Order(1) + public void setUpFopCifForCardOnboarding(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewRc(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().createNewChildCif(nonClient, harness.getConfig("cards_team.child.onboarding.firstname"), harness.getConfig("cards_team.child.onboarding.lastname"), harness.getConfig("cards_team.child.onboarding.parent.birth.number"), harness.getConfig("cards_team.child.onboarding.birth.date"))) + .then(bankaTasks.cardsOnboarding().createTomJuniorAccountForNewChildCif()); + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + "\nIČO klienta: " + nonClient.birthNumber() + + "\nCIF klienta: " + harness.get(CLIENT_CIF_STORE_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nURL dokumentov: \n" + BankaUtils.formatDocumentUrls(harness.get(DOCUMENT_URLS_STORE_KEY, true))); + } + + @AfterAll + public void finalTearDown(Harness harness) { + TearDown.depersonalizeFonClient(harness, nonClient.birthNumber(), harness.get(CLIENT_CIF_STORE_KEY, true)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ClipAndDeclipForCreditCards.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ClipAndDeclipForCreditCards.java new file mode 100644 index 0000000..a4d792b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/ClipAndDeclipForCreditCards.java @@ -0,0 +1,152 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Teller must be able to Create Cif and Onboard a Card") +public class ClipAndDeclipForCreditCards { + + String birthNumber; + String testCard; + + public void clipCreditCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker, String birthNumberOfClient, String testCardOfClient) { + + birthNumber = birthNumberOfClient; + testCard = testCardOfClient; + String testCardLastNumbers = StringUtils.right(testCard, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + setup(harness, secondBanker, birthNumber); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(birthNumber)) + .then(bankaTasks.cardsServicing().clipRetailCreditCardBeforeSecondBankerPartOne(testCardLastNumbers)) + .then(bankaTasks.cardsServicing().clipRetailCreditCardBeforeSecondBankerFinalPart(harness)); + + harness.withUfoSecondInstance() + .openLoginPage() + .then(bankaTasks.login().withCredentialsSecondBanker(secondBanker)) + .then(bankaTasks.cardsServicing().secondBankerApplicationRetailSign()); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsServicing().clipRetailCreditCardAfterSecondBanker()); + } + + public void setup(Harness harness, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker, String clientNumber) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(secondBanker)) + .globalStoreBankerName(harness) + .then(bankaTasks.search().findByRC(clientNumber)) + .then(bankaTasks.cardsServicing().cancelOldRequestIfPossible()) + .then(bankaTasks.cardsServicing().confirmPIM()); + } + + @Order(1) + @TestCase(name = "Clip Smart credit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9939") + public void clipSmartCreditCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + clipCreditCard(harness, credentials, secondBanker, harness.getConfig("cards_team.retail.rc.for.CC.clip1"), harness.getConfig("cards_team.retail.smart.CC.clip")); + harness.storeGlobal("CLIP_SMART_OK", true); + } + + @Order(2) + @EnableIfSet(globalKey = "CLIP_SMART_OK") + @TestCase(name = "Declip Smart credit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9944") + public void declipSmartCreditCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + birthNumber = harness.getConfig("cards_team.retail.rc.for.CC.clip1"); + testCard = harness.getConfig("cards_team.retail.smart.CC.clip"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(birthNumber)) + .then(bankaTasks.cardsServicing().declipRetailCreditCard(testCardLastNumbers)); + + } + + @Order(3) + @TestCase(name = "Clip Gold credit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9940") + public void clipGoldCreditCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + clipCreditCard(harness, credentials, secondBanker, harness.getConfig("cards_team.retail.rc.for.CC.clip3"), harness.getConfig("cards_team.retail.gold.CC.clip")); + harness.storeGlobal("CLIP_GOLD_OK", true); + } + + @Order(4) + @EnableIfSet(globalKey = "CLIP_GOLD_OK") + @TestCase(name = "Declip Gold credit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9942") + public void declipGoldCreditCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + birthNumber = harness.getConfig("cards_team.retail.rc.for.CC.clip3"); + testCard = harness.getConfig("cards_team.retail.gold.CC.clip"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(birthNumber)) + .then(bankaTasks.cardsServicing().declipRetailCreditCard(testCardLastNumbers)); + + } + + @Order(5) + @TestCase(name = "Clip Account credit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9941") + public void clipAccountCreditCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + clipCreditCard(harness, credentials, secondBanker, harness.getConfig("cards_team.retail.rc.for.CC.clip2"), harness.getConfig("cards_team.retail.account.CC.clip")); + harness.storeGlobal("CLIP_ACCOUNT_OK", true); + } + + @Order(6) + @EnableIfSet(globalKey = "CLIP_ACCOUNT_OK") + @TestCase(name = "Declip Account credit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9943") + public void declipAccountCreditCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + birthNumber = harness.getConfig("cards_team.retail.rc.for.CC.clip2"); + testCard = harness.getConfig("cards_team.retail.account.CC.clip"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(birthNumber)) + .then(bankaTasks.cardsServicing().declipRetailCreditCard(testCardLastNumbers)); + + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + "Rodné číslo: " + birthNumber + "\n Číslo karty: " + testCard + + "\n" + harness.tasks().ufo().banka().cardsServicing().getPrintedPages()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CommercialCardsOnboarding.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CommercialCardsOnboarding.java new file mode 100644 index 0000000..9daabb8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/CommercialCardsOnboarding.java @@ -0,0 +1,117 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage.DOCUMENT_URLS_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Teller must be able to Onboard a commercial Cards on same depersonalized cif") +public class CommercialCardsOnboarding { + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness).withEmail("dummy.A1A2A3A4A5A6A7A8@ge.com"); + } + + @TestCase(name = "Create New FOP Client", environments = {TST1, PPE}) + @Order(1) + public void setUpFopCifForCardOnboarding(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewIco(nonClient.ico())) + .then(bankaTasks.newFopClient().createFopCif(nonClient)) + .then(bankaTasks.newCurrentAccountTasks().createCurrentAccountFop(harness, nonClient)) + .verifyThatClientHasSomeActiveProducts(); + + harness.storeGlobal("CIF_FOP_CARD_ONBOARDING", harness.get(CLIENT_CIF_STORE_KEY).toString()); + } + + @EnableIfSet(globalKey = "CIF_FOP_CARD_ONBOARDING") + @TestCase(name = "Create Debit Card", environments = {TST1, PPE}) + @Order(2) + public void createDebitCardForFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.newDebitCard().createDebitCard(CardTypeAndDesign.BUSINESS.getValue(), DebitCardFeePlan.FREE)); + + harness.storeGlobal("FIRST_CARD_ONBOARDED", "PASS"); + } + + @EnableIfSet(globalKey = "FIRST_CARD_ONBOARDED") + @TestCase(name = "Create second Debit Card", environments = {TST1, PPE}) + @Order(3) + public void createSecondDebitCardForFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.cardsOnboarding().createBusinessPremiumCardForFop("Plastic")); + + harness.storeGlobal("FIRST_CARD_ONBOARDED", "PASS"); + } + + @EnableIfSet(globalKey = "FIRST_CARD_ONBOARDED") + @TestCase(name = "Create EUR Debit Card", environments = {TST1, PPE}) + @Order(3) + public void createEurDebitCardForFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.cardsOnboarding().createFopAccountWithDifferentCurrency("EUR")) + .then(bankaTasks.cardsOnboarding().createBusinessCardForFop("Plastic", 3)); + } + + @EnableIfSet(globalKey = "FIRST_CARD_ONBOARDED") + @TestCase(name = "Create USD Debit Card", environments = {TST1, PPE}) + @Order(4) + public void createUSDDebitCardForFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.cardsOnboarding().createFopAccountWithDifferentCurrency("USD")) + .then(bankaTasks.cardsOnboarding().createBusinessCardForFop("Plastic", 3)); + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + "\nIČO klienta: " + nonClient.ico() + + "\nCIF klienta: " + harness.get(CLIENT_CIF_STORE_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nURL dokumentov: \n" + BankaUtils.formatDocumentUrls(harness.get(DOCUMENT_URLS_STORE_KEY, true))); + } + + @AfterAll + public void finalTearDown(Harness harness) { + TearDown.depersonalizeFopClient(harness, nonClient.ico(), harness.get("CIF_FOP_CARD_ONBOARDING", true)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/GeneratePinForCard.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/GeneratePinForCard.java new file mode 100644 index 0000000..5d3763e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/GeneratePinForCard.java @@ -0,0 +1,178 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to generate PIN for Card") +public class GeneratePinForCard { + + NonClient nonClient; + String testCard; + String reportingId; + + public void generatePinForRetailCardsStandard(Harness harness, Credentials credentials, String birthNum, String cardNumber) { + nonClient = harness.data().newFVNonClient() + .withBirthNumber(birthNum); + String testCardLastNumbers = StringUtils.right(cardNumber, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().generatePinForRetailDebitCard(testCardLastNumbers)); + + testCard = cardNumber; + reportingId = "Rč klienta " + nonClient.birthNumber(); + } + + public void generatePinForRetailCreditCards(Harness harness, Credentials credentials, String birthNum, String cardNumber) { + nonClient = harness.data().newFVNonClient() + .withBirthNumber(birthNum); + String testCardLastNumbers = StringUtils.right(cardNumber, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().generatePinForRetailCreditCard(testCardLastNumbers)); + + testCard = cardNumber; + reportingId = "Rč klienta " + nonClient.birthNumber(); + } + + public void generatePinForCommercialDebitCards(Harness harness, Credentials credentials, String icoNumber, String cardNumber) { + nonClient = harness.data().newFVNonClient() + .withIco(icoNumber); + String testCardLastNumbers = StringUtils.right(cardNumber, 4); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert(nonClient.ico())) + .then(bankaTasks.cardsServicing().generatePinForCommercialDebitCard(testCardLastNumbers)); + + testCard = cardNumber; + reportingId = "Ičo: " + nonClient.ico(); + } + + @TestCase(name = "Generate Pin for plastic retail standard Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9934") + public void generatePinForStandardDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForRetailCardsStandard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.standard.DC")); + } + + @TestCase(name = "Generate Pin for virtual retail standard Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9935") + public void generatePinForVirtualStandardDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForRetailCardsStandard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.standard.virtual.DC")); + } + + @TestCase(name = "Generate Pin for retail plastic gold Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9936") + public void generatePinForPlasticGoldDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForRetailCardsStandard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.gold.DC")); + } + + @TestCase(name = "Generate Pin for eur Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9937") + public void generatePinForEurDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForRetailCardsStandard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.eur.DC")); + } + + @TestCase(name = "Generate Pin for usd Dc", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9938") + public void generatePinForUsdDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForRetailCardsStandard(harness, credentials, harness.getConfig("cards_team.retail.rc"), harness.getConfig("cards_team.retail.usd.DC")); + } + + @TestCase(name = "Generate Pin for retail smart CC", environments = {TST1, PPE}) + public void generatePinForSmartCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForRetailCreditCards(harness, credentials, harness.getConfig("cards_team.retail.rc2"), harness.getConfig("cards_team.retail.smart.CC")); + } + + @TestCase(name = "Generate Pin for retail gold CC", environments = {TST1, PPE}) + public void generatePinForGoldCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForRetailCreditCards(harness, credentials, harness.getConfig("cards_team.retail.rc5"), harness.getConfig("cards_team.retail.gold.CC")); + } + + @TestCase(name = "Generate Pin for retail credit account CC", environments = {TST1, PPE}) + public void generatePinForCreditAccountCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForRetailCreditCards(harness, credentials, harness.getConfig("cards_team.retail.rc4"), harness.getConfig("cards_team.retail.account.CC")); + } + + @TestCase(name = "Generate PIN for commercial DC", environments = {TST1, PPE}) + public void generatePinForCommercialDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForCommercialDebitCards(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.DC")); + } + + @TestCase(name = "Generate PIN for commercial premium DC", environments = {TST1, PPE}) + public void generatePinForCommercialPremiumDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForCommercialDebitCards(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.premium.DC")); + } + + @TestCase(name = "Generate PIN for commercial eur DC", environments = {TST1, PPE}) + public void generatePinForCommercialEurDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForCommercialDebitCards(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.EUR")); + } + + @TestCase(name = "Generate PIN for commercial usd DC", environments = {TST1, PPE}) + public void generatePinForCommercialUsdDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + generatePinForCommercialDebitCards(harness, credentials, harness.getConfig("cards_team.commercial.ico.with.cards"), harness.getConfig("cards_team.commercial.USD")); + } + + @TestCase(name = "Generate PIN for MBC", environments = {TST1, PPE}) + public void generatePinForMBC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withIco(harness.getConfig("cards_team.commercial.ico.with.cards")); + testCard = harness.getConfig("cards_team.commercial.CC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert(nonClient.ico())) + .then(bankaTasks.cardsServicing().generatePinForMBC(testCardLastNumbers)); + + reportingId = "Ičo klienta " + nonClient.ico(); + } + + @TestCase(name = "Generate PIN for Child Card", environments = {TST1, PPE}) + public void generatePinForChildCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.child.rc")); + testCard = harness.getConfig("cards_team.child.card"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findChildByRC(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().generatePinForRetailDebitCard(testCardLastNumbers)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + reportingId + "\n Číslo karty: " + testCard + + "\n" + harness.tasks().ufo().banka().cardsServicing().getPrintedPages()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/NewRetailCifAndCreditCardsOnboarding.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/NewRetailCifAndCreditCardsOnboarding.java new file mode 100644 index 0000000..ffc0418 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/NewRetailCifAndCreditCardsOnboarding.java @@ -0,0 +1,164 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ProductType; +import cz.moneta.test.dsl.ufo.banka.pages.loans.creditCard.ONC001_S001_NewCreditCardPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.dsl.util.task.retail.cards.constants.CreditCardSQL; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.support.web.Builders; +import org.apache.commons.lang.StringUtils; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.CREDIT_CARD; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Teller must be able to Onboard a Credit Card on new cif") +public class NewRetailCifAndCreditCardsOnboarding { + + NewClientWithCurrentAccountInformation newClientWithCurrentAccount; + String birthNumberSmart; + String birthNumberGold; + String birthNumberCreditAccount; + String testCardForJira; + String birthNumberForJira; + + public String createNewClientWithAccountAndSetupPim(Harness harness, Credentials credentials, Credentials secondBanker) { + newClientWithCurrentAccount = harness.dataPrepare() + .createNewFoCustomerWithCurrentAccountViaWso2(credentials.getUsername()); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(secondBanker)) + .globalStoreBankerName(harness) + .then(bankaTasks.search().findByRC(newClientWithCurrentAccount.getClientData().birthNumber())) + .then(bankaTasks.cardsServicing().setUpPIM()); + + return (newClientWithCurrentAccount.getClientData().birthNumber()); + } + + public void activationRetailCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, String globalKeyForCard, String birthNumber) { + String testCard = harness.getGlobal(globalKeyForCard); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsServicing().activateCreditCard(testCardLastNumbers)); + + birthNumberForJira = birthNumber; + testCardForJira = testCard; + } + + public void onboardingRetailCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker, String birthNumber, int amount, ProductType typeOfCC, String storeKey) { + birthNumberForJira = birthNumber; + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumberForJira)).createNewProductWithPossibleConsentPage(CREDIT_CARD); + + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + Builders.newWebFlowBuilder(ONC001_S001_NewCreditCardPage.class, endpoint, harness) + .then(bankaTasks.cardsOnboarding().createRetailCreditCard(amount, typeOfCC)) + .then(bankaTasks.cardsOnboarding().createRetailCreditCardBeforeVerification()); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(secondBanker)) + .then(bankaTasks.cardsServicing().secondBankerApplicationRetailSign()); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumberForJira)) + .then(bankaTasks.cardsOnboarding().createRetailCreditCardAfterVerification()); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", birthNumberForJira)); + testCardForJira = resultList.getValue(0, 1).toString(); + harness.storeGlobal(storeKey, resultList.getValue(0, 1)); + } + + @Order(1) + @TestCase(name = "Set up clients", environments = {TST1, PPE}) + public void setup(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + birthNumberSmart = createNewClientWithAccountAndSetupPim(harness, credentials, secondBanker); + birthNumberGold = createNewClientWithAccountAndSetupPim(harness, credentials, secondBanker); + birthNumberCreditAccount = createNewClientWithAccountAndSetupPim(harness, credentials, secondBanker); + + harness.storeGlobal("SET_UP_OK", true); + } + + @Order(2) + @EnableIfSet(globalKey = "SET_UP_OK") + @TestCase(name = "Smart credit card for existing client", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9681") + public void smartCCForExistingClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + onboardingRetailCC(harness, credentials, secondBanker, birthNumberSmart, 150000, ProductType.MONEYCARD_SMART, "SMART_CC"); + } + + @Order(3) + @EnableIfSet(globalKey = "SMART_CC") + @TestCase(name = "Gold credit card for existing client", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9678") + public void goldCCForExistingClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + onboardingRetailCC(harness, credentials, secondBanker, birthNumberGold, 300000, ProductType.MONEYCARD_GOLD, "GOLD_CC"); + } + + @Order(4) + @EnableIfSet(globalKey = "SMART_CC") + @TestCase(name = "Credit Account card for existing client", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9677") + public void accountCCForExistingClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + onboardingRetailCC(harness, credentials, secondBanker, birthNumberCreditAccount, 200000, ProductType.CREDIT_ACCOUNT, "ACCOUNT_CC"); + } + + @Order(5) + @EnableIfSet(globalKey = "SMART_CC") + @TestCase(name = "Activate Smart credit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9741") + public void activationSmartCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + activationRetailCC(harness, credentials, "SMART_CC", birthNumberSmart); + } + + @Order(6) + @EnableIfSet(globalKey = "GOLD_CC") + @TestCase(name = "Activate Gold credit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9740") + public void activationGoldCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + activationRetailCC(harness, credentials, "GOLD_CC", birthNumberGold); + } + + @Order(7) + @EnableIfSet(globalKey = "ACCOUNT_CC") + @TestCase(name = "Activate Account credit card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9742") + public void activationAccountCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + activationRetailCC(harness, credentials, "ACCOUNT_CC", birthNumberCreditAccount); + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + birthNumberForJira + "\n Číslo karty: " + testCardForJira + + "\n" + harness.tasks().ufo().banka().cardsServicing().getPrintedPages()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/NewRetailCifAndDebitCardsOnboarding.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/NewRetailCifAndDebitCardsOnboarding.java new file mode 100644 index 0000000..dbc9d5f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/NewRetailCifAndDebitCardsOnboarding.java @@ -0,0 +1,290 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.dsl.util.task.retail.cards.constants.CreditCardSQL; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Teller must be able to Onboard a Debit Card on new cif") +public class NewRetailCifAndDebitCardsOnboarding { + + NewClientWithCurrentAccountInformation newClientWithCurrentAccount; + Long accountNumber; + String birthNumber; + String testCardForJira; + String birthNumberForDifferentHolder; + + public void activateDebitCard(Harness harness, Credentials credentials, String cardNumber) { + + String testCardLastNumbers = StringUtils.right(cardNumber, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsServicing().activateDebitCard(testCardLastNumbers)); + + testCardForJira = cardNumber; + } + + @Order(1) + @TestCase(name = "Set up client", environments = {TST1, PPE}) + public void setup(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + newClientWithCurrentAccount = harness.dataPrepare() + .createNewFoCustomerWithCurrentAccountViaWso2(credentials.getUsername()); + accountNumber = Long.parseLong(newClientWithCurrentAccount.getCurrentAccount()); + birthNumber = newClientWithCurrentAccount.getClientData().birthNumber(); + birthNumberForDifferentHolder = harness.getConfig("cards_team.retail.rc2"); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(secondBanker)) + .globalStoreBankerName(harness) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsServicing().setUpPIM()); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumberForDifferentHolder)) + .then(bankaTasks.cardsServicing().confirmPIM()); + + harness.storeGlobal("SET_UP_OK", true); + } + + @Order(2) + @EnableIfSet(globalKey = "SET_UP_OK") + @TestCase(name = "Standard plastic debit card for new client", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9376") + public void standardPlasticDCForExistingClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsOnboarding().createNewStandardDebitCardForNewCif(CardTypeAndDesign.STANDARD.getValue(), "Plastic", accountNumber)); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", birthNumber)); + testCardForJira = resultList.getValue(0, 1).toString(); + harness.storeGlobal("STANDARD_PLASTIC_DC", resultList.getValue(0, 1)); + } + + @Order(3) + @EnableIfSet(globalKey = "STANDARD_PLASTIC_DC") + @TestCase(name = "Check that 2 same plastic cards cant be on 1 account for 1 owner", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9628") + public void standardPlasticDCForExistingClientFail(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsOnboarding().createNewStandardDebitCardForExistingCurrentAccountFail("Plastic", accountNumber)); + + testCardForJira = " Číslo účtu: " + accountNumber.toString(); + } + + @Order(4) + @EnableIfSet(globalKey = "SET_UP_OK") + @TestCase(name = "Standard virtual debit card for existing client", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9375") + public void standardVirtualDCForExistingClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsOnboarding().createNewStandardDebitCardForExistingCurrentAccount(CardTypeAndDesign.STANDARD.getValue(), "Virtual", accountNumber)); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", birthNumber)); + testCardForJira = resultList.getValue(0, 1).toString(); + harness.storeGlobal("STANDARD_VIRTUAL_DC", resultList.getValue(0, 1)); + } + + @Order(5) + @EnableIfSet(globalKey = "STANDARD_VIRTUAL_DC") + @TestCase(name = "Check that 2 same virtual cards cant be on 1 account for 1 owner", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9629") + public void standardVirtualDCForExistingClientFail(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsOnboarding().createNewStandardDebitCardForExistingCurrentAccountFail("Virtual", accountNumber)); + + testCardForJira = " Číslo účtu: " + accountNumber.toString(); + } + + @Order(6) + @EnableIfSet(globalKey = "SET_UP_OK") + @TestCase(name = "Gold plastic debit card for existing Tom PLUS account", environments = {TST1, PPE}) + public void goldPlasticDCForTomPlus(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsOnboarding().createNewGoldDebitCardForExistingCurrentAccount(CardTypeAndDesign.GOLD.getValue(), accountNumber)); + } + + @Order(7) + @EnableIfSet(globalKey = "SET_UP_OK") + @TestCase(name = "Gold plastic debit card for existing GOLD account", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T5733") + public void goldPlasticDCForGoldAccount(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsOnboarding().createAccountForGoldCard()) + .then(bankaTasks.cardsOnboarding().createNewGoldDebitCardForNewCurrentAccount("Plastic")); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", birthNumber)); + testCardForJira = resultList.getValue(0, 1).toString(); + harness.storeGlobal("GOLD_PLASTIC_DC", resultList.getValue(0, 1)); + } + + @Order(8) + @EnableIfSet(globalKey = "SET_UP_OK") + @TestCase(name = "Standard virtual debit card for different holder", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9679") + public void standardVirtualDCForDifferentHolder(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsOnboarding().createNewStandardDebitCardForDifferentHolder(CardTypeAndDesign.STANDARD.getValue(), "Virtual", accountNumber, birthNumberForDifferentHolder)); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", birthNumberForDifferentHolder)); + testCardForJira = resultList.getValue(0, 1).toString() + " Rč držitele" + birthNumberForDifferentHolder; + } + + @Order(9) + @EnableIfSet(globalKey = "SET_UP_OK") + @TestCase(name = "Standard plastic debit card for different holder", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9680") + public void standardPlasticDCForDifferentHolder(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsOnboarding().createNewStandardDebitCardForDifferentHolder(CardTypeAndDesign.STANDARD.getValue(), "Plastic", accountNumber, birthNumberForDifferentHolder)); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", birthNumberForDifferentHolder)); + testCardForJira = resultList.getValue(0, 1).toString() + " Rč držitele" + birthNumberForDifferentHolder; + } + + @Order(10) + @EnableIfSet(globalKey = "STANDARD_PLASTIC_DC") + @TestCase(name = "Activate Standard Plastic Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T35") + public void activationStandardPlasticDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + activateDebitCard(harness, credentials, harness.getGlobal("STANDARD_PLASTIC_DC")); + } + + @Order(11) + @EnableIfSet(globalKey = "STANDARD_VIRTUAL_DC") + @TestCase(name = "Check that Virtual Card is Active after onboard", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9716") + public void activationStandardVirtualDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String testCard = harness.getGlobal("STANDARD_VIRTUAL_DC"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsServicing().checkDebitCardIsActive(testCardLastNumbers)); + + testCardForJira = testCard; + } + + @Order(12) + @EnableIfSet(globalKey = "GOLD_PLASTIC_DC") + @TestCase(name = "Activate Gold Plastic Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9717") + public void activationGoldPlasticDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + activateDebitCard(harness, credentials, harness.getGlobal("GOLD_PLASTIC_DC")); + } + + @Order(13) + @EnableIfSet(globalKey = "SET_UP_OK") + @TestCase(name = "EUR debit card for existing EUR account", environments = {TST1, PPE}) + public void eurPlasticDCForEurAccount(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsOnboarding().createFonAccountWithDifferentCurrency("EUR-BÚ-FO-občan /R/")) + .then(bankaTasks.cardsOnboarding().createNewDifferentCurrencyCard(CardTypeAndDesign.STANDARD_EUR.getValue(), "Plastic", "|EUR|BÚ - FO - EUR")); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", birthNumber)); + testCardForJira = resultList.getValue(0, 1).toString(); + harness.storeGlobal("EUR_DC", resultList.getValue(0, 1)); + } + + @Order(14) + @EnableIfSet(globalKey = "SET_UP_OK") + @TestCase(name = "USD debit card for existing USD account", environments = {TST1, PPE}) + public void usdPlasticDCForUsdAccount(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsOnboarding().createFonAccountWithDifferentCurrency("USD-BÚ-FO-občan /R/")) + .then(bankaTasks.cardsOnboarding().createNewDifferentCurrencyCard(CardTypeAndDesign.STANDARD_USD.getValue(), "Plastic", "|USD|BÚ - FO - USD")); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", birthNumber)); + testCardForJira = resultList.getValue(0, 1).toString(); + harness.storeGlobal("USD_DC", resultList.getValue(0, 1)); + } + + @Order(15) + @EnableIfSet(globalKey = "EUR_DC") + @TestCase(name = "Activate Eur Debit Card", environments = {TST1, PPE}) + public void activationEurDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + activateDebitCard(harness, credentials, harness.getGlobal("EUR_DC")); + } + + @Order(16) + @EnableIfSet(globalKey = "USD_DC") + @TestCase(name = "Activate Usd Debit Card", environments = {TST1, PPE}) + public void activationStandardUsdDc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + activateDebitCard(harness, credentials, harness.getGlobal("USD_DC")); + } + + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + birthNumber + "\n Číslo karty: " + testCardForJira + + "\n" + harness.tasks().ufo().banka().cardsServicing().getPrintedPages()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/NewRetailCifAndOneClickAndVirtualCardsOnboarding.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/NewRetailCifAndOneClickAndVirtualCardsOnboarding.java new file mode 100644 index 0000000..6eb27f7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/NewRetailCifAndOneClickAndVirtualCardsOnboarding.java @@ -0,0 +1,233 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.retail.cards.constants.CreditCardSQL; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.support.web.Lookup; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Teller must be able to Onboard a Design Cards on new cif") +public class NewRetailCifAndOneClickAndVirtualCardsOnboarding { + + String newClientCif; + String birthNumber; + Long accountNumber; + String accountWithoutCardXpath = "//span[contains(text(), 'Běžný účet')]//following::div[contains(@class, 'gwt-TreeItemChildSpan')][not(descendant::div[contains(@class, 'gwt-TreeItemChildSpanLast')])]//span[contains(text(), 'BÚ-FO- KONTO GENIUS')]";//span[contains(text(), 'Běžný účet')]//following::div[contains(@class, 'gwt-TreeItemChildSpan')][not(following-sibling::div[contains(@class, 'gwt-TreeItemChildSpan')])]//span[contains(text(), 'BÚ-FO- KONTO GENIUS')]"; + + public void createAccountAndVirtualCard(Harness harness, Credentials credentials, String cardTypeAndDesign) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(birthNumber); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + HKO101_S001_MainClientPage firstBanker = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())); + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + + /*Zkontroluje zda má client účet bez založené karty. + Pokud ano, uloží číslo takového účtu a založí na něm kartu, pokud ne založí nový účet a až na něm kartu.*/ + if (endpoint.isElementPresent(accountWithoutCardXpath, Lookup.XPATH)) { + accountNumber = Long.valueOf(endpoint.getText(accountWithoutCardXpath, Lookup.XPATH).split(";")[1].trim()); + firstBanker + .then(bankaTasks.cardsOnboarding().createNewStandardDebitCardForExistingCurrentAccount(cardTypeAndDesign, "Virtual", accountNumber)); + } else { + firstBanker + .then(bankaTasks.cardsOnboarding().createAccountForGoldCard()); + accountNumber = Long.valueOf(endpoint.getText(accountWithoutCardXpath, Lookup.XPATH).split(";")[1].trim()); + firstBanker + .then(bankaTasks.cardsOnboarding().createNewStandardDebitCardAfterNewAccount(cardTypeAndDesign, "Virtual", accountNumber)); + } + } + + @Order(1) + @TestCase(name = "Set up client", environments = {TST1, PPE}) + public void setup(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + newClientCif = harness.dataPrepare() + .createNewFoCustomerViaWso2AndGetCif(credentials.getUsername()); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().searchByCif(newClientCif)) + .getBirthNumber() + .then(bankaTasks.cardsServicing().setUpPIM()); + + birthNumber = harness.get(HKO101_S001_MainClientPage.BIRTH_NUMBER_STORE_KEY); + harness.storeGlobal("CLIENT_OK", true); + } + + @Order(2) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard plastic debit card for new client through ONECLICK", environments = {TST1, PPE}) + public void OneClickCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(birthNumber)) + .then(bankaTasks.cardsOnboarding().createOneClickRetailForCards()); + } + + @Order(3) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualSwimming(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.SWIMMING.getValue()); + } + + @Order(4) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualCycling(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.CYCLING.getValue()); + } + + @Order(5) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualTennis(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.TENNIS.getValue()); + } + + @Order(6) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualBeach(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.BEACH.getValue()); + } + + @Order(7) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualPrague(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.PRAGUE.getValue()); + } + + @Order(8) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualCentralBohemia(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.CENTRAL_BOHEMIAN_REGION.getValue()); + } + + @Order(9) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualSouthBohemia(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.SOUTH_BOHEMIAN_REGION.getValue()); + } + + @Order(10) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualPlzen(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.PLZEN.getValue()); + } + + @Order(11) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualKarlovyVary(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.KARLOVY_VARY.getValue()); + } + + @Order(12) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualUsti(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.USTI.getValue()); + } + + @Order(13) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualLiberec(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.LIBEREC.getValue()); + } + + @Order(14) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualHradec(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.HRADEC.getValue()); + } + + @Order(15) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualPardubice(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.PARDUBICE.getValue()); + } + + @Order(16) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualVysocina(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.VYSOCINA.getValue()); + } + + @Order(17) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualSouthMoravia(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.SOUTH_MORAVIA_REGION.getValue()); + } + + @Order(18) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualZlin(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.ZLIN.getValue()); + } + + @Order(19) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualOlomouc(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.OLOMOUC.getValue()); + } + + @Order(20) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + public void DcVirtualMoraviaSilesian(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.MORAVIAN_SILESIAN_REGION.getValue()); + } + + @Order(21) + @EnableIfSet(globalKey = "CLIENT_OK") + @TestCase(name = "Standard virtual debit card and new account", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9377") + public void DcVirtualPride(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + createAccountAndVirtualCard(harness, credentials, CardTypeAndDesign.PRIDE.getValue()); + } + + @AfterEach + public void tearDown(Harness harness) { + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", birthNumber)); + harness.store("reports.tmfj.execution.comment", "Rodné číslo: " + + birthNumber + "\n Číslo karty: " + resultList.getValue(0, 1).toString() + + "\n" + harness.tasks().ufo().banka().cardsServicing().getPrintedPages()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/TemporarilyBlockCard.java b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/TemporarilyBlockCard.java new file mode 100644 index 0000000..ccbe38f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/jenkinstests/TemporarilyBlockCard.java @@ -0,0 +1,251 @@ +package cz.moneta.test.regression.cards.jenkinstests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.retail.cards.constants.CreditCardSQL; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Teller must be able to block card") +public class TemporarilyBlockCard { + + String endBlockTime = DateUtils.getFormattedTodayDateTime("HH:59:59"); + String reportingId; + String testCardForJira; + + public void temporarilyBlockDebitCard(Harness harness, Credentials credentials, String birthNumber, String testCard) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(birthNumber); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().temporarilyBlockRetailDebitCard(testCardLastNumbers, endBlockTime)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + public void temporarilyBlockCommercialDebitCard(Harness harness, Credentials credentials, String icoNumber, String testCard) { + NonClient nonClient = harness.data().newFVNonClient() + .withIco(icoNumber); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert(nonClient.ico())) + .then(bankaTasks.cardsServicing().temporarilyBlockCommercialDebitCard(testCardLastNumbers, endBlockTime)); + + reportingId = "Ičo klienta " + nonClient.ico(); + testCardForJira = testCard; + } + + public void checkCardIsNotBlockedAndLog(Harness harness, String testCard, String logID) { + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_CARD_BLOCK_CODE_BY_CARD_NUMBER.replaceAll("CARD_NUMBER", harness.getConfig(testCard))); + if (resultList.getValue(0, 1).toString().equals("XNA")) { + harness.storeGlobal(logID, "PASS"); + } + } + + @Order(1) + @TestCase(name = "Temporarily block Retail Standard Debit Card", environments = {TST1, PPE}) + public void checkThatCardsAreNotBlocked(Harness harness) { + checkCardIsNotBlockedAndLog(harness, "cards_team.retail.standard.DC.for.temporary.block", "CT-T9583"); + checkCardIsNotBlockedAndLog(harness, "cards_team.retail.gold.DC.for.temporary.block", "CT-T6640"); + checkCardIsNotBlockedAndLog(harness, "cards_team.retail.usd.DC.for.temporary.block", "CT-T9581"); + checkCardIsNotBlockedAndLog(harness, "cards_team.retail.eur.DC.for.temporary.block", "CT-T9582"); + checkCardIsNotBlockedAndLog(harness, "cards_team.retail.smart.CC.for.temporary.block", "CT-T9579"); + checkCardIsNotBlockedAndLog(harness, "cards_team.retail.gold.CC.for.temporary.block", "CT-T9578"); + checkCardIsNotBlockedAndLog(harness, "cards_team.retail.account.CC.for.temporary.block", "CT-T9580"); + checkCardIsNotBlockedAndLog(harness, "cards_team.commercial.DC.for.temporary.block", "CT-T9585"); + checkCardIsNotBlockedAndLog(harness, "cards_team.commercial.premium.DC.for.temporary.block", "CT-T6687"); + checkCardIsNotBlockedAndLog(harness, "cards_team.commercial.usd.DC.for.temporary.block", "CT-T9586"); + checkCardIsNotBlockedAndLog(harness, "cards_team.commercial.eur.DC.for.temporary.block", "CT-T9584"); + checkCardIsNotBlockedAndLog(harness, "cards_team.MBC.for.temporary.block", "CT-T6843"); + checkCardIsNotBlockedAndLog(harness, "cards_team.child.card.for.temporary.block", "CT-T6651"); + } + + @EnableIfSet(globalKey = "CT-T9583") + @TestCase(name = "Temporarily block Retail Standard Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9583") + public void temporarilyBlockRetailStandardDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + temporarilyBlockDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc.for.temporary.block"), harness.getConfig("cards_team.retail.standard.DC.for.temporary.block")); + } + + @EnableIfSet(globalKey = "CT-T6640") + @TestCase(name = "Temporarily block Retail Gold Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T6640") + public void temporarilyBlockRetailGoldDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + temporarilyBlockDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc.for.temporary.block.2"), harness.getConfig("cards_team.retail.gold.DC.for.temporary.block")); + } + + @EnableIfSet(globalKey = "CT-T9581") + @TestCase(name = "Temporarily block Retail USD Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9581") + public void temporarilyBlockRetailUsdDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + temporarilyBlockDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc.for.temporary.block.2"), harness.getConfig("cards_team.retail.usd.DC.for.temporary.block")); + } + + @EnableIfSet(globalKey = "CT-T9582") + @TestCase(name = "Temporarily block Retail EUR Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9582") + public void temporarilyBlockRetailEurDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + temporarilyBlockDebitCard(harness, credentials, harness.getConfig("cards_team.retail.rc.for.temporary.block"), harness.getConfig("cards_team.retail.eur.DC.for.temporary.block")); + } + + @EnableIfSet(globalKey = "CT-T9579") + @TestCase(name = "Temporarily block Retail Smart Credit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9579") + public void temporarilyBlockRetailSmartCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc.for.temporary.block.CC")); + String testCard = harness.getConfig("cards_team.retail.smart.CC.for.temporary.block"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().temporarilyBlockRetailCreditCard(testCardLastNumbers, endBlockTime)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @EnableIfSet(globalKey = "CT-T9578") + @TestCase(name = "Temporarily block Retail Gold Credit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9578") + public void temporarilyBlockRetailGoldCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc.for.temporary.block.CC.3")); + String testCard = harness.getConfig("cards_team.retail.gold.CC.for.temporary.block"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().temporarilyBlockRetailCreditCard(testCardLastNumbers, endBlockTime)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @EnableIfSet(globalKey = "CT-T9580") + @TestCase(name = "Temporarily block Retail Credit Account", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9580") + public void temporarilyBlockRetailAccountCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc.for.temporary.block.CC.2")); + String testCard = harness.getConfig("cards_team.retail.account.CC.for.temporary.block"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRcWithAlert(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().temporarilyBlockRetailCreditCard(testCardLastNumbers, endBlockTime)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @EnableIfSet(globalKey = "CT-T9585") + @TestCase(name = "Temporarily block Commercial DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9585") + public void temporarilyBlockCommercialDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + temporarilyBlockCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.for.temporary.block"), harness.getConfig("cards_team.commercial.DC.for.temporary.block")); + } + + @EnableIfSet(globalKey = "CT-T6687") + @TestCase(name = "Temporarily block Commercial Premium DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T6687") + public void temporarilyBlockCommercialPremiumDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + temporarilyBlockCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.for.temporary.block"), harness.getConfig("cards_team.commercial.premium.DC.for.temporary.block")); + } + + @EnableIfSet(globalKey = "CT-T9586") + @TestCase(name = "Temporarily block Commercial USD DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9586") + public void temporarilyBlockCommercialUsdDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + temporarilyBlockCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.for.temporary.block"), harness.getConfig("cards_team.commercial.usd.DC.for.temporary.block")); + } + + @EnableIfSet(globalKey = "CT-T9584") + @TestCase(name = "Temporarily block Commercial EUR DC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9584") + public void temporarilyBlockCommercialEurDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + temporarilyBlockCommercialDebitCard(harness, credentials, harness.getConfig("cards_team.commercial.ico.for.temporary.block"), harness.getConfig("cards_team.commercial.eur.DC.for.temporary.block")); + } + + @EnableIfSet(globalKey = "CT-T6843") + @TestCase(name = "Temporarily block MBC", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T6843") + public void temporarilyBlockMBC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withIco(harness.getConfig("cards_team.commercial.ico.for.temporary.block")); + String testCard = harness.getConfig("cards_team.MBC.for.temporary.block"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert(nonClient.ico())) + .then(bankaTasks.cardsServicing().temporarilyBlockMBC(testCardLastNumbers, endBlockTime)); + + reportingId = "Ičo klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @EnableIfSet(globalKey = "CT-T6651") + @TestCase(name = "Temporarily block Child Card", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T6651") + public void temporarilyBlockChildCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.child.rc.for.temporary.block")); + String testCard = harness.getConfig("cards_team.child.card.for.temporary.block"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findChildByRC(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().temporarilyBlockRetailDebitCard(testCardLastNumbers, endBlockTime)); + + reportingId = "Rč klienta " + nonClient.birthNumber(); + testCardForJira = testCard; + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + reportingId + "\n Číslo karty: " + testCardForJira + "\n Zablokováno do: " + endBlockTime + + "\n" + harness.tasks().ufo().banka().cardsServicing().getPrintedPages()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/localtests/BlockCard.java b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/BlockCard.java new file mode 100644 index 0000000..b9cece5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/BlockCard.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.cards.localtests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to block card") +public class BlockCard { + + NonClient nonClient; + + @BeforeAll + public void setup(Harness harness) { + nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc")); + } + + @TestCase(name = "Permanently block a card", environments = {TST1, PPE}) + public void permanentlyBlockCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String testCard = harness.getConfig("cards_team.retail.standard.DC.for.block"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().permaBlockCard(testCardLastNumbers)); + + harness.store("reports.tmfj.execution.comment", "Rč klienta " + nonClient.birthNumber() + "\nČíslo karty: " + testCard); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/localtests/ChangeClientDetailsWithCheckOnCards.java b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/ChangeClientDetailsWithCheckOnCards.java new file mode 100644 index 0000000..664490c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/ChangeClientDetailsWithCheckOnCards.java @@ -0,0 +1,34 @@ +package cz.moneta.test.regression.cards.localtests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static cz.moneta.test.harness.support.data.GeneratorType.LAST_NAME; + +@TestScenario(name = "Teller must be able to change data on CIF and then check if data changed on cards") +public class ChangeClientDetailsWithCheckOnCards { + + @TestCase(name = "Change name and check on first debit card", environments = {TST1, PPE}) + public void changeNameAndCheckDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc")); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().changeName(harness.generate(LAST_NAME))); + + harness.store("reports.tmfj.execution.comment", "Rč klienta " + nonClient.birthNumber()); + + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/localtests/CreateGoldDebitCardForExistingCustomer.java b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/CreateGoldDebitCardForExistingCustomer.java new file mode 100644 index 0000000..179e886 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/CreateGoldDebitCardForExistingCustomer.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.cards.localtests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.retail.cards.constants.CreditCardSQL; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to crate a new gold debit card for existing client") +public class CreateGoldDebitCardForExistingCustomer { + + NonClient nonClient; + + @BeforeAll + public void setup(Harness harness) { + nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc")); + } + + @TestCase(name = "Gold virtual debit card for existing client", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9374") + public void goldVirtualDCForExistingClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + long accountNumber=Long.parseLong(harness.getConfig("cards_team.retail.account.number3")); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(nonClient.birthNumber())) + .then(bankaTasks.cardsOnboarding().createNewGoldDebitCardForExistingCurrentAccount(CardTypeAndDesign.GOLD.getValue(), accountNumber)); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", nonClient.birthNumber())); + harness.store("reports.tmfj.execution.comment", "Rč klienta: " + nonClient.birthNumber() + "\n Číslo karty: " + resultList.getValue(0, 1)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/localtests/CreateStandardDebitCardForExistingCustomer.java b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/CreateStandardDebitCardForExistingCustomer.java new file mode 100644 index 0000000..d877420 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/CreateStandardDebitCardForExistingCustomer.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.cards.localtests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.retail.cards.constants.CreditCardSQL; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to crate a new standard debit card for existing client") +public class CreateStandardDebitCardForExistingCustomer { + + NonClient nonClient; + + @BeforeAll + public void setup(Harness harness) { + nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc")); + } + + @TestCase(name = "Standard virtual pride debit card for existing client", environments = {TST1, PPE}) + @JiraTestCase(id = "CT-T9377") + public void prideVirtualDCForExistingClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + long accountNumber=Long.parseLong(harness.getConfig("cards_team.retail.account.number6")); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(nonClient.birthNumber())) + .then(bankaTasks.cardsOnboarding().createNewStandardDebitCardForExistingCurrentAccount(CardTypeAndDesign.PRIDE.getValue(), "Virtual", accountNumber)); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", nonClient.birthNumber())); + harness.store("reports.tmfj.execution.comment", "Rč klienta: " + nonClient.birthNumber() + "\n Číslo karty: " + resultList.getValue(0, 1)); + } +} + + diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/localtests/DebitCardCancellation.java b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/DebitCardCancellation.java new file mode 100644 index 0000000..b012b66 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/DebitCardCancellation.java @@ -0,0 +1,68 @@ +package cz.moneta.test.regression.cards.localtests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +import java.util.ArrayList; +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Teller must be able to cancel a card") +public class DebitCardCancellation { + + NonClient nonClient; + + @BeforeAll + public void setup(Harness harness) { + nonClient = harness.data().newFVNonClient() + .withBirthNumber(harness.getConfig("cards_team.retail.rc")); + } + + + @TestCase(name = "Cancel Card", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "CT-T7154") + public void cancellationOfCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String testCard = harness.getConfig("cards_team.retail.standard.DC.for.cancel"); + String testCardLastNumbers = StringUtils.right(testCard, 4); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(nonClient.birthNumber())) + .then(bankaTasks.cardsServicing().cancelDebitCard(testCardLastNumbers)); + harness.store("reports.tmfj.execution.comment", "Rč klienta " + nonClient.birthNumber() + "\n Číslo karty: " + testCard); + } + + @Disabled + @TestCase(name = "Multiple Cancel Card", environments = {TST1, PPE, EDU}) + public void cancellationOfMoreCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + List cardsToCancel = new ArrayList<>(); + cardsToCancel.add("0040"); + cardsToCancel.add("3240"); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + HKO101_S001_MainClientPage window = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(nonClient.birthNumber())); + + for (String cardNum : cardsToCancel) { + window = window + .then(bankaTasks.cardsServicing().cancelDebitCard(cardNum)); + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cards/localtests/OnboardingCardsForFopTest.java b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/OnboardingCardsForFopTest.java new file mode 100644 index 0000000..c8b8f7a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cards/localtests/OnboardingCardsForFopTest.java @@ -0,0 +1,83 @@ +package cz.moneta.test.regression.cards.localtests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.retail.cards.constants.CreditCardSQL; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.APPLICATION_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.NEW_ACCOUNT_NUMBER; +import static cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage.DOCUMENT_URLS_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage.BANKER_NAME; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to Onboard a card for FOP") +public class OnboardingCardsForFopTest { + Long accountNumber = 235570315L; + String companyNumber = "62662333"; + String cardNumber; + + @BeforeAll + public void setup(Harness harness, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(secondBanker)) + .globalStoreBankerName(harness) + .then(bankaTasks.search().findByIco(companyNumber)) + .then(bankaTasks.cardsOnboarding().createAccountForFop()); + + accountNumber = harness.get(NEW_ACCOUNT_NUMBER); + } + + @TestCase(name = "Onboarding MBC for existing client", environments = {TST1, PPE}) + public void creditCardForExistingContract(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, + @Key(Keys.ufo.banka.secondBanker) Credentials secondBankerCredentials) { + NonClient nonClient = harness.data().newFVNonClient() + .withIco(companyNumber); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + OPN008_S001_SignContractPage firstBanker = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoWithAlert(nonClient.ico())) + .then(bankaTasks.cardsOnboarding().onboardingMBCForFopFirstBanker("10000")) + .then(bankaTasks.cardsOnboarding().onboardingMBCForFopRequestConfirmation(harness.get(BANKER_NAME))); + + harness.withUfoSecondInstance() + .openLoginPage() + .then(bankaTasks.login().withCredentialsSecondBanker(secondBankerCredentials)) + .then(bankaTasks.cardsServicing().secondBankerApplicationSign(harness.get(APPLICATION_ID_KEY), harness.get(CLIENT_ID_KEY))); + + firstBanker + .then(bankaTasks.cardsOnboarding().onboardingMbcAfterSecondBankerSigned()); + + Result resultList = harness.getEndpoint(OdsEndpoint.class).executeSql(CreditCardSQL.FIND_ONBOARDED_CARDS_BY_RC.replaceAll("ID_NUMBER", companyNumber)); + cardNumber = resultList.getValue(0, 1).toString(); + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + companyNumber + "\n Číslo karty: " + cardNumber + + "\n Url dokumentů: " + BankaUtils.formatDocumentUrls(harness.get(DOCUMENT_URLS_STORE_KEY, true))); + } +} + + diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/BankerSignIn.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/BankerSignIn.java new file mode 100644 index 0000000..7f4da19 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/BankerSignIn.java @@ -0,0 +1,30 @@ +package cz.moneta.test.regression.channels.branch; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Banker must be able to sign in - smoke tests") +public class BankerSignIn { + + @TestCase(name = "Banker must be able to sign in", environments = {TST1, PPE, EDU}) + @JiraTestCase(id="POB-T10625") + public void bankerSignIn(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(credentials)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/CifEditing.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/CifEditing.java new file mode 100644 index 0000000..de2a3c4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/CifEditing.java @@ -0,0 +1,35 @@ +package cz.moneta.test.regression.channels.branch; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to edit a CIF") +public class CifEditing { + + @TestCase(name = "Bank teller is able to login and edit a CIF", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19520") + public void tc_bank_teller_is_able_to_edit_CIF(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + String RCofExistingClient = harness.getConfig("branch.squad.rc.client"); + + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().banka().login().withCredentialsAndTurnOffSignpad(credentials)) + .then(harness.tasks().ufo().banka().search().findByRC(RCofExistingClient)) + .clickEdit() + .onChangeDataFO() + .clickSend() + .onPrintInstructionPage() + .clickLeftButton() + .onMainClientPage() + .verifyThatCifIsValid(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/CreateNewCustomer.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/CreateNewCustomer.java new file mode 100644 index 0000000..bf452ff --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/CreateNewCustomer.java @@ -0,0 +1,30 @@ +package cz.moneta.test.regression.channels.branch; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Banker is able to crate a new customer") +public class CreateNewCustomer { + + @TestCase(name = "Banker is able to login and create a new customer", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19489") + public void bankerIsAbleCreateNewCustomer(Harness harness, @Key(ufo.banka.banker) Credentials banker) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(banker)) + .then(bankaTasks.newClient().create(banker.getUsername())) + .verifyThatCifIsValid(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/SignatureSettingScenario.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/SignatureSettingScenario.java new file mode 100644 index 0000000..32b5b3c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/SignatureSettingScenario.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.channels.branch; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must set a static and physical signature") +public class SignatureSettingScenario { + + @TestCase(name = "Bank teller is able to login and set static signature to a client", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19507") + public void static_signature_test(Harness harness, @Key("ufo-banka-banker") Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(credentials.getUsername())) + .clickSearch() + .clickSignatureTemplates() + .turnSignpadOn() + .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .clickSignaturePatterns() + .clickSignaturePatternsPage() + .clickSignaturePatternsEdit() + .clickSignatureStatic() + .then(bankaTasks.newProduct().skipSignPadIfVisibleAfterPrintInstruction()) + .clickCenterButton() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintInstructionPage() + .clickCenterButton() + .onSignaturePatternsPage() + .isSignatureStatic(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CancelSmoothPayment.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CancelSmoothPayment.java new file mode 100644 index 0000000..7e3be66 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CancelSmoothPayment.java @@ -0,0 +1,43 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.ZPL_OBR001_SmoothPaymentInfo.SMOOTH_PAYMENT_ID_KEY; + +@Disabled +@TestScenario(name = "Teller must be able to create new smooth (foreign) payment") +public class CancelSmoothPayment { + + @TestCase(name = "Creating new smooth payment and then cancel it") + @JiraTestCase(id = "POB-T19528") + public void cancelSmoothPayment(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + String accountNumberReceiver = "SK4409000000003001979752"; + String receiverName = "Auto Test"; + String receiverAddressStreet = "Kratka"; + String receiverAddressCity = "Bratislava"; + String receiverAddressCountryCode = "SK"; + String currency = "EUR"; + String rcClient = harness.getConfig("branch.squad.rc.client"); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(credentials)) + .then(bankaTasks.search().findByRC(rcClient)) + .checkProductActive("Běžný účet") + .getCurrentAccountNumberAndStore() + .openCurrentAccountDetailPage() + .openListOfForeignPaymentsPage() + .then(bankaTasks.payment().createNewSmoothPayment(currency, accountNumberReceiver, receiverName, receiverAddressStreet, receiverAddressCity, receiverAddressCountryCode)) + .then(bankaTasks.payment().cancelSmoothPayment(harness.get(SMOOTH_PAYMENT_ID_KEY))); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CheckCalculatorFunctionality.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CheckCalculatorFunctionality.java new file mode 100644 index 0000000..616a6da --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CheckCalculatorFunctionality.java @@ -0,0 +1,46 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Check Calculator Functionality") +public class CheckCalculatorFunctionality { + + @TestCase(name = "Check Calculator Functionality", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T10626") + public void tc_check_calculator_functionality(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + String name = "Jan Palach"; + String clientType = "Standard"; + String amount = "50000"; + String numberOfPayments = "50"; + String insurance = "Bez pojištění"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .clickCalculators() + .chooseExpresCalculator() + .fillName(name) + .selectClientType(clientType) + .clickProduct() + .fillAmount(amount) + .selectNumberOfPayments(numberOfPayments) + .selectInsurance(insurance) + .clickCalculate() + .checkLoanFeeCalculated(); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBUSUGold.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBUSUGold.java new file mode 100644 index 0000000..9d468ed --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBUSUGold.java @@ -0,0 +1,32 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Teller must be able to crate a new customer with BU Genius Gold and SU Gold") +public class CreateNewCustomerWithBUSUGold { + + @TestCase(name = "Bank teller is able to login and create a new customer with BU Genius Gold and SU Gold", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T18680") + public void tcBankTellerIsAbleCreateNewCustomerWithBuSuGold(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(banker)) + .then(tasks.newClient().create(banker.getUsername())) + .then(tasks.newPackagedProductTasks().createNewCurrentAccountGeniusGoldWithSavingsAccountGold()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBUTomPK.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBUTomPK.java new file mode 100644 index 0000000..8a66a43 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBUTomPK.java @@ -0,0 +1,67 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.dataprepare.CustomerDataPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.common.pages.TIS051_OBR001_ClientFinalSignatureConfirmationPage; +import cz.moneta.test.dsl.ufo.banka.pages.products.one.click.BAL015_S001_PackageDetail; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.web.Builders; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan.FREE; +import static cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage.ACCOUNT_NUMBER_KEY; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled("Duplicates Cards team - CT-T9376") +@TestScenario(name = "Teller must be able to crate a new customer with BU Tom Plus and Debit card") +public class CreateNewCustomerWithBUTomPK extends CustomerDataPrepare { + + @TestCase(name = "Bank teller is able to login and create a new customer with BU Tom Plus and Debit card", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T18699") + public void tcCreateNewCustomerWithTomAndDebitCard(Harness harness) { + BankaTasks withBanka = harness.tasks().ufo().banka(); + String feePlan = "Tom Plus"; + String cardName = "Standard"; + String labelContent = "Debetní karta byla úspěšně založena"; + + harness.withUfo() + .openLoginPage() + .then(withBanka.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(withBanka.search().findByCif(newCustomerCif)) + .then(withBanka.newProduct().createNewCurrentAccount(feePlan)) + .then(withBanka.newProduct().debitCardCommonPart(Long.parseLong(harness.get(ACCOUNT_NUMBER_KEY)), cardName, FREE)) + .clickContinueAndWaitUntilLoaded(); + + UfoEndpoint endpoint = harness.getEndpoint(UfoEndpoint.class); + if (endpoint.isElementVisible("OBR001_S001_B003")) { + Builders.newWebFlowBuilder(TIS051_OBR001_ClientFinalSignatureConfirmationPage.class, endpoint, harness) + .continueToGeneralContractAndDispositionPage() + .continueToSummaryPage() + .checkTextLabelContent(labelContent) + .clickOk() + .onMainClientPage(); + } else { + Builders.newWebFlowBuilder(BAL015_S001_PackageDetail.class, endpoint, harness) + .clickEndButtonToMainPage() + .selectFromListOfRequests() + .selectFirstApplication() + .clickToRequestDetailButton() + .clickPackageFoundationButtonAndSendToApproval() + .waitForLoader() + .continueToContractDocsPage() + .continueToGeneralContractAndDispositionPage() + .continueToSummaryPage() + .checkTextLabelContent(labelContent) + .clickOk() + .onPackageDetailPage() + .clickEndButtonToListOfRequestsPage() + .clickBackToMainClientPage(); + } + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBu.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBu.java new file mode 100644 index 0000000..3e2840b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBu.java @@ -0,0 +1,29 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.dataprepare.CustomerDataPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Teller must be able to create BU to a new customer") +public class CreateNewCustomerWithBu extends CustomerDataPrepare { + + @TestCase(name = "Bank teller is able to login and create BU to a new customer", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19524") + public void tcBankTellerIsAbleCreateBuToNewCustomer(Harness harness) { + BankaTasks tasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(tasks.search().findByCif(newCustomerCif)) + .then(tasks.newProduct().createNewCurrentAccount("Tom Plus")); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBuildingSavings.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBuildingSavings.java new file mode 100644 index 0000000..b4b9c95 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithBuildingSavings.java @@ -0,0 +1,33 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to create new building savings") +public class CreateNewCustomerWithBuildingSavings { + + @Disabled("Rozsáhlý vývoj stavebního spoření na UFO Bance") + @TestCase(name = "Teller must be able to create new building savings", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T10630") + public void create_new_building_savings(Harness harness, @Key("ufo-banka-banker") Credentials credentials) { + NonClient clientTestData = harness.data().newNonClient(); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(clientTestData, credentials.getUsername())) + .then(bankaTasks.newProduct().createNewBuildingSavings("Smlouva je u MMB")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithConsolidation.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithConsolidation.java new file mode 100644 index 0000000..651380b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithConsolidation.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.dataprepare.CustomerDataPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage.APP_ID_STORE; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to create a new consolidation") +public class CreateNewCustomerWithConsolidation extends CustomerDataPrepare { + + @Disabled("Konsolidace externích závazků bude zrušena") + @TestCase(name = "Bank teller is able to login and create a new customer with consolidation", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T18687") + public void tcBankTellerIsAbleToCreateNewCustomerWithDebtConsolidation(Harness harness, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + HLO001_S001_ClientSearchPage firstInstance = harness.withUfoSecondInstance() + .openLoginPage() + .then(bankaTasks.login().withCredentialsSecondBanker(secondBanker)) + .storeBankerName(); + + OPN008_S001_SignContractPage secondInstance = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByCif(newCustomerCif)) + .then(bankaTasks.newProduct().createNewCurrentAccount("Tom Plus")) + .then(bankaTasks.newConsolidation().createNewConsolidationRequestToScoring()) + .then(bankaTasks.newConsolidation().createNewConsolidationRequestAfterScoring(HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.newConsolidation().createNewConsolidationRequestConditionalAgreement(HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.newConsolidation().createNewConsolidationAccountsFoundation()); + + firstInstance + .then(bankaTasks.newProduct().verifyApplicationSignatureThirdWindow(harness.get(APP_ID_STORE))); + + secondInstance + .then(bankaTasks.newConsolidation().createNewConsolidationAccountsFoundationFinish("PODEPSANÁ")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithCreditCard.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithCreditCard.java new file mode 100644 index 0000000..a45c829 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithCreditCard.java @@ -0,0 +1,45 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CreditCardsAdvantages.TRAVEL_AND_SPORT; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CreditCardsPromo.NO_PROMO; +import static cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum.TOM_PLUS; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.*; + +@Disabled("Duplicates Cards team - CT-T9681") +@TestScenario(name = "Teller must be able to crate a new customer with credit card") +public class CreateNewCustomerWithCreditCard { + + NonClient nonClient; + + @JiraTestCase(id = "POB-T18555") + @TestCase(name = "Bank teller is able to login and create a new customer with credit card", environments = {TST1, PPE, EDU}) + public void tcBankTellerIsAbleCreateNewCustomerWithCreditCard(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(5000) + .withOtherLoanPayments(0); + + String creditAmount = "50000"; + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, TOM_PLUS)) + .then(bankaTasks.newProduct().createNewCreditCardByQuickRequest(nonClient, TRAVEL_AND_SPORT, NO_PROMO, creditAmount)) + .checkProductActive("Kreditní karta"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithFlexikredit.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithFlexikredit.java new file mode 100644 index 0000000..c255a2f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithFlexikredit.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.dataprepare.CustomerDataPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.VER017_S001_SecondBankerVerificationStatusPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Teller must be able to create a new flexikredit") +public class CreateNewCustomerWithFlexikredit extends CustomerDataPrepare { + + @TestCase(name = "Bank teller is able to login and create a new flexikredit", environments = {TST1, PPE}) + @JiraTestCase(id = "POB-T19494") + public void createNewFlexikredit(Harness harness, @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + BankaTasks tasks = harness.tasks().ufo().banka(); + + HLO001_S001_ClientSearchPage secondInstance = harness.withUfoSecondInstance() + .openLoginPage() + .then(tasks.login().withCredentialsSecondBanker(secondBanker)) + .storeBankerName(); + + String bankerName = BankaUtils.formatUserNameForVerification(harness.get("BANKER_NAME")); + + VER017_S001_SecondBankerVerificationStatusPage firstInstance = harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(tasks.search().findByCif(newCustomerCif)) + .storeClientFullName() + .then(tasks.sharedTasks().storeClientDetailInfo(harness)) + .then(tasks.newProduct().createNewCurrentAccount("Tom Plus")) + .then(tasks.newProduct().createNewFlexikreditPart1(nonClient)) + .then(tasks.newProduct().createNewFlexikreditPart2(HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED, bankerName)); + + secondInstance + .then(tasks.cardsServicing().secondBankerApplicationRetailSign()); + + firstInstance + .then(tasks.newProduct().createNewFlexikreditPart3("FLEXIKREDIT")) + .then(tasks.sharedTasks().checkFlexikreditDetail(harness)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithIb.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithIb.java new file mode 100644 index 0000000..84d73d5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithIb.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "The banker must be able to create a bank account with access to IB for a new customer") +public class CreateNewCustomerWithIb { + + private NonClient nonClient; + private String newCustomerCif; + + @BeforeAll + public void setUp(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + + nonClient = harness.data().newNonClient() + .withMobileNumber("725559544"); + + newCustomerCif = harness.dataPrepare() + .createNewFoCustomerViaWso2AndGetCif(nonClient, banker.getUsername()); + } + + @TestCase(name = "Bank teller is able to login, create current account with access to IB for a new customer", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19519") + public void tcBankTellerIsAbleCreateNewCustomerWithAccessToIb(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(banker)) + .then(bankaTasks.search().findByCif(newCustomerCif)) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccountAfterSearchCif(nonClient.mobileNumber(), CurrentAccountsEnum.TOM_PLUS)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithInsurance.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithInsurance.java new file mode 100644 index 0000000..022e4b0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithInsurance.java @@ -0,0 +1,32 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.dataprepare.CustomerDataPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Teller must be able to create new insurance") +public class CreateNewCustomerWithInsurance extends CustomerDataPrepare { + + @TestCase(name = "Teller must be able to create new group insurance", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19522") + public void create_new_group_insurance(Harness harness) { + String feePlan = "Tom Plus"; + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByCif(newCustomerCif)) + .then(bankaTasks.newProduct().createNewCurrentAccount(feePlan)) + .then(bankaTasks.newProduct().createNewGroupInsurance("Pojištění cenností, karet, elektroniky a telefonu")); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithLoan.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithLoan.java new file mode 100644 index 0000000..1444aff --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithLoan.java @@ -0,0 +1,58 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.dataprepare.CustomerDataPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.VER017_S001_SecondBankerVerificationStatusPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.dsl.util.data.client.Employer; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.VER017_S001_SecondBankerVerificationStatusPage.APPLICATION_ID_KEY; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Teller must be able to create a new customer with a new loan") +public class CreateNewCustomerWithLoan extends CustomerDataPrepare { + + @TestCase(name = "Bank teller is able to login and create a new customer with a new loan", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19508") + public void createNewCustomerWithLoan(Harness harness, @Key(ufo.banka.banker) Credentials banker, @Key(ufo.banka.secondBanker) Credentials secondBanker) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + int loanAmount = 50000; + int numberOfInstallments = 60; + String coApplicantBirthNumber = harness.getConfig("branch.squad.rc.client"); + nonClient.withEmployer(Employer.builder().ico("75643375").name("Petr Ráab").phoneNumber("756456854").build()); + + HLO001_S001_ClientSearchPage firstInstance = harness.withUfoSecondInstance() + .openLoginPage() + .then(bankaTasks.login().withCredentialsSecondBanker(secondBanker)) + .storeBankerName(); + + String bankerName = BankaUtils.formatUserNameForVerification(harness.get("BANKER_NAME")); + + VER017_S001_SecondBankerVerificationStatusPage secondInstance = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(banker)) + .then(bankaTasks.search().findByCif(newCustomerCif)) + .storeClientFullName() + .then(bankaTasks.sharedTasks().storeClientDetailInfo(harness)) + .then(bankaTasks.newProduct().createNewCurrentAccount("Tom Plus")) + .then(bankaTasks.expresTasks().createExpressLoan(coApplicantBirthNumber, loanAmount, numberOfInstallments, nonClient, bankerName)); + + firstInstance + .then(bankaTasks.newProduct().verifyApplicationSignature(harness.get(APPLICATION_ID_KEY))); + + secondInstance + .then(bankaTasks.newLoanApplication().finishExpressLoan()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithMutualFunds.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithMutualFunds.java new file mode 100644 index 0000000..d64f1c1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithMutualFunds.java @@ -0,0 +1,32 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.dataprepare.CustomerDataPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Teller must be able to crate a new mutual funds") +public class CreateNewCustomerWithMutualFunds extends CustomerDataPrepare { + + @TestCase(name = "Bank teller is able to login and create a new mutual funds", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T10634") + public void tc_bank_teller_is_able_create_new_mutual_funds(Harness harness) { + BankaTasks tasks = harness.tasks().ufo().banka(); + String feePlan = "Tom Plus"; + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(tasks.search().findByCif(newCustomerCif)) + .then(tasks.newProduct().createNewCurrentAccount(feePlan)) + .then(tasks.newProduct().createNewMutualFunds()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithSU.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithSU.java new file mode 100644 index 0000000..cbb5e22 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithSU.java @@ -0,0 +1,33 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.dataprepare.CustomerDataPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Teller must be able to crate a new customer with SU") +public class CreateNewCustomerWithSU extends CustomerDataPrepare { + + @Disabled + @TestCase(name = "Bank teller is able to login and create a new customer with SU", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19492") + public void tc_bank_teller_is_able_create_new_customer_with_SU(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + BankaTasks withBanka = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(withBanka.login().withCredentialsAndTurnOffSignpad(banker)) + .then(withBanka.search().findByCif(newCustomerCif)) + .then(withBanka.newProduct().createNewSavingsAccount("Spořící účet")); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithUzofka.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithUzofka.java new file mode 100644 index 0000000..03e1670 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewCustomerWithUzofka.java @@ -0,0 +1,43 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.dataprepare.CustomerDataPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.Employer; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@Disabled +@TestScenario(name = "Teller must be able to crate a new customer with uzofka") +public class CreateNewCustomerWithUzofka extends CustomerDataPrepare { + + private static final int DEFAULT_LOAN_AMOUNT = 50000; + private static final int SHORT_TERM = 24; + + @TestCase(name = "Bank teller is able to login and create a new customer with uzofka", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19502") + public void createNewCustomerWithUzofka(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + BankaTasks tasks = harness.tasks().ufo().banka(); + String otherApplicantBirthNumber = harness.getConfig("branch.squad.rc.client"); + nonClient.withEmployer(Employer.builder().ico("75643375").name("Petr Ráab").phoneNumber("756456854").build()); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(banker)) + .then(tasks.search().findByCif(newCustomerCif)) + .clickEdit() + .onChangeDataFO() + .storeAddress() + .storeDependantsNumber() + .clickBack() + .onMainClientPage() + .then(tasks.newProduct().createUzofkaWithOtherApplicant(nonClient, DEFAULT_LOAN_AMOUNT, SHORT_TERM, otherApplicantBirthNumber)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewDirectDebit.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewDirectDebit.java new file mode 100644 index 0000000..215dbf8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewDirectDebit.java @@ -0,0 +1,63 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.dataprepare.CustomerDataPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.payment.PaymentTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage.ROOT_ID_KEY; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Create new direct debit") +public class CreateNewDirectDebit extends CustomerDataPrepare { + + @TestCase(name = "Create new direct debit", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19491") + public void tc_create_new_directs_debit(Harness harness) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + PaymentTasks paymentTasks = harness.tasks().ufo().banka().payment(); + String receiverBankAccount = "115"; + String receiverBankCode = "0300"; + String amount = "1"; + String changeAmount = "2"; + String receiverAccountNameInput = "a"; + String changeTitle = "Zmenen nazev"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByCif(newCustomerCif)) + .then(bankaTasks.newProduct().createNewCurrentAccount("Tom Plus")) + .checkProductActive("Běžný účet") + .openCurrentAccountDetailPage() + .openListOfDirectDebitsPage() + .clickCreateButton() + .checkNotSavingNotFilledForm() + .fillReceiverAccountNumber(receiverBankAccount) + .fillReceiverAccountBankCode(receiverBankCode) + .fillAmount(amount) + .selectPeriod("Měsíční") + .fillReceiverAccountName(receiverAccountNameInput) + .clickSaveToPrint() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintInstructionPage() + .storeRootId() + .clickCenterButton() + .onClientChargedPage() + .clickOkToListOfAuthorizationForDirectDebitsPage() + .checkAuthorizationForDirectDebitValid(harness.get(ROOT_ID_KEY)) + .clickFirstDirectDebit() + .then(paymentTasks.checkDirectDebitChange(changeTitle, changeAmount, String.valueOf(Integer.parseInt(harness.get(ROOT_ID_KEY)) + 1))) + .clickFirstDirectDebit() + .then(paymentTasks.deleteAuthorizationForDirectDebitAndCheckStatus(String.valueOf(Integer.parseInt(harness.get(ROOT_ID_KEY)) + 2))); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewEmployeeWithBUAkonto.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewEmployeeWithBUAkonto.java new file mode 100644 index 0000000..cf335e7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewEmployeeWithBUAkonto.java @@ -0,0 +1,32 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Teller must be able to crate a new employee with BU Akonto") +public class CreateNewEmployeeWithBUAkonto { + + @TestCase(name = "Bank teller is able to login and create a new employee with BU Akonto", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T18677") + public void tcBankTellerIsAbleCreateNewEmployeeWithBuAkonto(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + BankaTasks tasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(banker)) + .then(tasks.newClient().create(harness.data().newFVNonClientEmployee(), banker.getUsername())) + .then(tasks.newProduct().createNewCurrentAccountWithSelectProduct(CurrentAccountsEnum.AKONTO_PRODUCT)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewFopCustomer.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewFopCustomer.java new file mode 100644 index 0000000..0b57feb --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewFopCustomer.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.testautomationdb.TestAutomationDbEndpoint; +import cz.moneta.test.harness.endpoints.ufo.UfoEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static cz.moneta.test.harness.support.data.GeneratorType.RC; + +@Disabled("Duplicates SBD - SBD-T480") +@TestScenario(name = "Teller must be able to crate a new FOP customer") +public class CreateNewFopCustomer { + + @TestCase(name = "Bank teller is able to login and create a new FOP customer", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T10637") + public void tc_bank_teller_is_able_create_new_fop_customer(Harness harness, @Key(ufo.banka.banker) Credentials banker) { + + BankaTasks withBanka = harness.tasks().ufo().banka(); + + String birthNumber = harness.generate(RC); + NonClient nonClient = harness.data().newNonClient() + .withBirthNumber(birthNumber) + .withEmail(TestUtils.getEmailBasedOnRc(birthNumber)); + + HKO101_S001_MainClientPage mainPage = harness.withUfo() + .openLoginPage() + .then(withBanka.login().withCredentialsAndTurnOffSignpad(banker)) + .then(withBanka.newFopClient().createFopCif(nonClient)) + .verifyThatCifIsValid(); + + String newClientCif = mainPage.getCif(); + String nodeHost = harness.getEndpoint(UfoEndpoint.class).getNodeHost(); + String createdDateTime = DateUtils.getFormattedTodayDateTime("yyyy-MM-dd hh:mm:ss"); + harness.getEndpoint(TestAutomationDbEndpoint.class) + .insertCreatedClientInfo(newClientCif, nonClient.birthNumber(), nonClient.ico(), createdDateTime, banker.getUsername(), "UFO", nodeHost); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewLoanApplication.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewLoanApplication.java new file mode 100644 index 0000000..8f68a29 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewLoanApplication.java @@ -0,0 +1,38 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Teller must be able to crate a new customer with a new loan application") +public class CreateNewLoanApplication { + + @TestCase(name = "Bank teller is able to login and create a new customer with a new loan application", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T10639") + public void tc_bak_teller_is_able_create_new_customer_with_new_loan_application(Harness harness, @Key(ufo.banka.banker) Credentials banker) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + NonClient nonClient = harness.data().newNonClient() + .withNetMonthlyIncome(50000) + .withHomeIncome(100000); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(banker)) + .then(bankaTasks.login().turnSignpadOff()) + .then(bankaTasks.newClient().create(nonClient, banker.getUsername())) + .then(bankaTasks.newLoanApplication().createNewLoanApplication(nonClient, 10000, 12)); + + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewPaymentOrder.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewPaymentOrder.java new file mode 100644 index 0000000..cb4d99a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewPaymentOrder.java @@ -0,0 +1,61 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage.ROOT_ID_KEY; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Create new payment order") +public class CreateNewPaymentOrder { + + @TestCase(name = "Create new payment order", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19493") + public void tc_create_new_payment_order(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + String rcClient = harness.getConfig("branch.squad.rc.client"); + NonClient nonClient = harness.data().newNonClient() + .withBirthNumber(rcClient); + String receiverBankAccount = "115"; + String receiverBankCode = "0300"; + String amount = "1"; + String VARIABLE_SYMBOL = "2"; + String CONSTANT_SYMBOL = "3"; + String SPECIFIC_SYMBOL = "4"; + String MESSAGE = "nova platba"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(nonClient.birthNumber())) + .checkProductActive("Běžný účet") + .openCurrentAccountDetailPage() + .openCreatePaymentOrderPage() + .fillCreditorAccNumber(receiverBankAccount) + .fillCreditorAccBankCode(receiverBankCode) + .fillAmountInput(amount) + .fillOptionalData(VARIABLE_SYMBOL, CONSTANT_SYMBOL, SPECIFIC_SYMBOL, MESSAGE) + .checkNotSavingNotFilledForm() + .clickTodayButton() + .clickSaveButton() + .closePrintWindow() + .onPrintInstructionPage() + .clickLeftButton() + .onPrintInstructionPage() + .storeRootId() + .clickCenterButton() + .onCreatePaymentOrderPage() + .checkFirstOrderPaymentId(harness.get(ROOT_ID_KEY)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewSIPOPayment.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewSIPOPayment.java new file mode 100644 index 0000000..d63b01c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewSIPOPayment.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.dataprepare.CustomerDataPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.support.data.GeneratorType; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@Disabled +@TestScenario(name = "Create new SIPO payment") +public class CreateNewSIPOPayment extends CustomerDataPrepare { + + @TestCase(name = "Create new SIPO Payment", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T10641") + public void tc_create_new_SIPO_payment(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + String sipoNumber = harness.generate(GeneratorType.SIPO); + String limitAmount = "300"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByCif(newCustomerCif)) + .then(bankaTasks.newProduct().createNewCurrentAccount("Tom Plus")) + .checkProductActive("Běžný účet") + .openCurrentAccountDetailPage() + .openListOfSIPOPayments() + .clickCreate() + .fillSIPONumber(sipoNumber) + .fillLimitAmount(limitAmount) + .clickSaveToPrintPage() + .closePrintWindow() + .onDocumentConfirmationPage() + .clickSigned() + .clickOk() + .chooseSipoPayment() + .clickDeactivate() + .clickSaveAndPrint() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onListOfSIPOPaymentsPage(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewSmoothPayment.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewSmoothPayment.java new file mode 100644 index 0000000..2a30b5e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewSmoothPayment.java @@ -0,0 +1,45 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Teller must be able to create new smooth (foreign) payment") +public class CreateNewSmoothPayment { + + @TestCase(name = "Teller must be able to create new smooth (foreign) payment", environments = {TST1, PPE}) + @JiraTestCase(id = "POB-T18078") + public void createNewSmoothPayment(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, + @Key(Keys.ufo.banka.secondBanker) Credentials credentialsSecondBanker) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + String finalAmount = "100"; + String accountNumberReceiver = "SK4409000000003001979752"; + String receiverName = "Auto Test"; + String receiverAddressStreet = "Kratka"; + String receiverAddressCity = "Bratislava"; + String receiverAddressCountryCode = "SK"; + String currency = "EUR"; + String rcClient = harness.getConfig("branch.squad.rc.client"); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(credentials)) + .then(bankaTasks.search().findByRC(rcClient)) + .checkProductActive("Běžný účet") + .getCurrentAccountNumberAndStore() + .openCurrentAccountDetailPage() + .openListOfForeignPaymentsPage() + .then(bankaTasks.payment().createNewSmoothPayment(currency, accountNumberReceiver, receiverName, receiverAddressStreet, receiverAddressCity, receiverAddressCountryCode)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewStandingOrder.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewStandingOrder.java new file mode 100644 index 0000000..26ba95b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/CreateNewStandingOrder.java @@ -0,0 +1,72 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage.ROOT_ID_KEY; +import static cz.moneta.test.harness.annotations.Environment.*; + +@Disabled +@TestScenario(name = "Create new standing order") +public class CreateNewStandingOrder { + + @TestCase(name = "Create new standing order, edit it and cancel it", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T19530") + public void createStandingOrder(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + String rcClient = harness.getConfig("branch.squad.rc.client"); + NonClient nonClient = harness.data().newNonClient() + .withBirthNumber(rcClient); + String receiverBankAccount = "115"; + String receiverBankCode = "0300"; + String firstAmount = "1"; + String finalAmount = "2"; + String receiverAccountName = "a"; + String firstPaymentDate = DateUtils.getNextWorkday().format(DateTimeFormatter.ofPattern("dd.MM.yyyy")); + String lastPaymentDate = LocalDate.now().plusMonths(3L).format(DateTimeFormatter.ofPattern("dd.MM.yyyy")); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(nonClient.birthNumber())) + .checkProductActive("Běžný účet") + .openCurrentAccountDetailPage() + .openListOfStandingOrdersPage() + .clickCreate() + .fillReceiverAccountNumber(receiverBankAccount) + .fillReceiverAccountBankCode(receiverBankCode) + .fillReceiverAccountName(receiverAccountName) + .fillFirstPaymentDate(firstPaymentDate) + .fillLastPaymentDate(lastPaymentDate) + .fillFirstAmount(firstAmount) + .clickSave() + .onPrintPage() + .closePrintWindow() + .onPrintInstructionPage() + .clickRightButton() + .onPrintInstructionPage() + .storeRootId() + .clickCenterButton() + .onClientChargedPage() + .clickOkToListTp() + .checkStandingOrderStatusValid(harness.get(ROOT_ID_KEY)) + .clickOnStandingOrder(harness.get(ROOT_ID_KEY)) + .then(bankaTasks.payment().changeStandingOrderFromList(finalAmount)) + .then(bankaTasks.payment().clickSignedAndStoreEditedRootId()) + .checkStandingOrderAmount(harness.get(ROOT_ID_KEY), "2") + .clickOnStandingOrder(harness.get(ROOT_ID_KEY)) + .then(bankaTasks.payment().deleteStandingOrderAndCheckStatusDeleted(String.valueOf(Integer.valueOf(harness.get(ROOT_ID_KEY)) + 1))); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/OneClick.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/OneClick.java new file mode 100644 index 0000000..9bf6274 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/OneClick.java @@ -0,0 +1,43 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.data.client.IdCard; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Teller must be able to crate a new customer with BU, PK and IB over OneClick") +public class OneClick { + + /** + * Tests only part of manual test. + * Ends at step 21 (4.2.2025) on the page BAL035_S002_SummaryOfProductFoundationRetailPage. + **/ + @TestCase(name = "Bank teller is able to login and create a new customer with BU, PK and IB over OneClick", environments = {TST1, PPE}) + @JiraTestCase(id = "POB-T19525") + public void oneClickTest(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + NonClient nonClient = harness.data().newNonClient().withMobileNumber("725559544") + .withIdCard(new IdCard("208243633", LocalDate.now(), LocalDate.now().plusYears(3))); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.oneClick().createOneClickFon()) + .checkProductActive("Tom Plus") + .checkProductActive("PK") + .checkProductActive("Internet Banka heslo/MK; Aktivní"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/ViewClient.java b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/ViewClient.java new file mode 100644 index 0000000..d87a939 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/branch/archive/ViewClient.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.channels.branch.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled +@TestScenario(name = "Teller must be able to find a newly created client by CIF") +public class ViewClient { + + NonClient nonClient; + + @BeforeEach + public void createClient(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + nonClient = harness.data().newNonClient(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())); + } + + @TestCase(name = "Teller must be able to find a newly created client by CIF", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "POB-T10644") + public void checkClientData(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(harness.get(HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .verifyThatCifIsValid() + .checkPageId(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/cards/blockprocesses/fon/DebitCardsProcessesFon.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/cards/blockprocesses/fon/DebitCardsProcessesFon.java new file mode 100644 index 0000000..4d6558d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/cards/blockprocesses/fon/DebitCardsProcessesFon.java @@ -0,0 +1,103 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.cards.blockprocesses.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled("Test card setup will be done differently") +@TestScenarioWithOrder(name = "Debit cards blocking processes") +public class DebitCardsProcessesFon { + String loginName; + String password; + String lastFourDigits; + NewIbTasks newIbTasks; + + @BeforeAll + protected void createDebitCardFon(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String clientCif = harness.getConfig("nib.fon.cif"); + long accountNumber = Long.parseLong(harness.getConfig("nib.fon.account-number")); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByCif(clientCif)) + .then(bankaTasks.cardsOnboarding().createNewStandardDebitCardForExistingCurrentAccount(CardTypeAndDesign.PRIDE.getValue(), "Plastik", accountNumber)) + .storeCardLastFourDigits(); + + harness.storeGlobal("NEW_DEBIT_CARD_CREATED", "PASS"); + } + + @BeforeEach + void setUp(Harness harness) { + newIbTasks = harness.tasks().newIb(); + lastFourDigits = harness.getGlobal("LAST_FOUR_DIGITS"); + loginName = harness.getConfig("nib.fon.login-name"); + password = harness.getConfig("nib.client.password"); + } + + @EnableIfSet(globalKey = "NEW_DEBIT_CARD_CREATED") + @Order(1) + @TestCase(name = "Temporary block debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBO-T887") + public void temporaryBlockDebitCardFon(Harness harness) { + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(loginName, password)) + .then(newIbTasks.getIntoBlockingScreen(lastFourDigits, "Neaktivní")) + .clickBlockCardRadio() + .clickContinue() + .then(newIbTasks.smsKeyAuthorizationPopup()) + .blockMessageAppeared(); + + harness.storeGlobal("DEBIT_CARD_BLOCKED", "PASS"); + } + + @EnableIfSet(globalKey = "DEBIT_CARD_BLOCKED") + @Order(2) + @TestCase(name = "Unblock debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBO-T888") + public void unblockDebitCardFon(Harness harness) { + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(loginName, password)) + .then(newIbTasks.getIntoBlockingScreen(lastFourDigits, "Dočasně blokovaná")) + .clickUnblockCardRadio() + .clickContinue() + .then(newIbTasks.smsKeyAuthorizationPopup()) + .unblockMessageAppeared(); + + harness.storeGlobal("DEBIT_CARD_UNBLOCKED", "PASS"); + } + + @EnableIfSet(globalKey = "DEBIT_CARD_UNBLOCKED") + @Order(3) + @TestCase(name = "Cancel debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBO-T892") + public void cancelDebitCardFon(Harness harness) { + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(loginName, password)) + .then(newIbTasks.getIntoBlockingScreen(lastFourDigits, "Neaktivní")) + .clickCancelCardRadio() + .clickContinue() + .then(newIbTasks.smsKeyAuthorizationPopup()) + .cancelMessageAppeared() + .clickBackToCard() + .clickDetailsAndSettings() + .checkCardDetailInfo("Zrušená"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/cards/blockprocesses/fop/DebitCardsProcessesFop.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/cards/blockprocesses/fop/DebitCardsProcessesFop.java new file mode 100644 index 0000000..c589152 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/cards/blockprocesses/fop/DebitCardsProcessesFop.java @@ -0,0 +1,105 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.cards.blockprocesses.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled("Test card setup will be done differently") +@TestScenarioWithOrder(name = "Debit cards blocking processes") +public class DebitCardsProcessesFop { + String loginName; + String password; + String lastFourDigits; + NewIbTasks newIbTasks; + + @BeforeAll + protected void createDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String clientCif = harness.getConfig("nib.fop.cif"); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByCif(clientCif)) + .then(bankaTasks.newDebitCard().createDebitCard(CardTypeAndDesign.BUSINESS.getValue(), DebitCardFeePlan.FREE)) + .storeCardLastFourDigits(); + + harness.storeGlobal("NEW_DEBIT_CARD_CREATED", "PASS"); + } + + @BeforeEach + void setUp(Harness harness) { + newIbTasks = harness.tasks().newIb(); + lastFourDigits = harness.getGlobal("LAST_FOUR_DIGITS"); + loginName = harness.getConfig("nib.fop.login-name"); + password = harness.getConfig("nib.client.password"); + } + + @EnableIfSet(globalKey = "NEW_DEBIT_CARD_CREATED") + @Order(1) + @TestCase(name = "Temporary block debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBO-T915") + public void temporaryBlockCardFop(Harness harness) { + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(loginName, password)) + .then(newIbTasks.getIntoBlockingScreen(lastFourDigits, "Neaktivní")) + .clickBlockCardRadio() + .clickContinue() + .then(newIbTasks.smsKeyAuthorizationPopup()) + .blockMessageAppeared(); + + harness.storeGlobal("DEBIT_CARD_BLOCKED", "PASS"); + } + + @EnableIfSet(globalKey = "DEBIT_CARD_BLOCKED") + @Order(2) + @TestCase(name = "Unblock debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBO-T916") + public void unblockCardFop(Harness harness) { + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(loginName, password)) + .then(newIbTasks.getIntoBlockingScreen(lastFourDigits, "Dočasně blokovaná")) + .clickUnblockCardRadio() + .clickContinue() + .then(newIbTasks.smsKeyAuthorizationPopup()) + .unblockMessageAppeared(); + + harness.storeGlobal("DEBIT_CARD_UNBLOCKED", "PASS"); + } + + @EnableIfSet(globalKey = "DEBIT_CARD_UNBLOCKED") + @Order(3) + @TestCase(name = "Cancel debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBO-T917") + public void cancelDebitCardFop(Harness harness) { + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(loginName, password)) + .then(newIbTasks.getIntoBlockingScreen(lastFourDigits, "Neaktivní")) + .clickCancelCardRadio() + .clickContinue() + .then(newIbTasks.smsKeyAuthorizationPopup()) + .cancelMessageAppeared() + .clickBackToCard() + .clickDetailsAndSettings() + .checkCardDetailInfo("Zrušená"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/cards/blockprocesses/po/DebitCardsProcessesPo.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/cards/blockprocesses/po/DebitCardsProcessesPo.java new file mode 100644 index 0000000..53fc5e5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/cards/blockprocesses/po/DebitCardsProcessesPo.java @@ -0,0 +1,106 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.cards.blockprocesses.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Disabled("New card creation not working") +@TestScenarioWithOrder(name = "Debit cards blocking processes") +public class DebitCardsProcessesPo { + String loginName; + String password; + String lastFourDigits; + NewIbTasks newIbTasks; + + @BeforeAll + protected void createDebitCardPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String clientIco = harness.getConfig("nib.po.ico"); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findLegalRepresentativeByIco(clientIco)) + .then(bankaTasks.newDebitCard().createDebitCard(CardTypeAndDesign.BUSINESS.getValue(), DebitCardFeePlan.FREE)) + .storeCardLastFourDigits(); + + harness.storeGlobal("NEW_DEBIT_CARD_CREATED", "PASS"); + } + + @BeforeEach + void setUp(Harness harness) { + newIbTasks = harness.tasks().newIb(); + lastFourDigits = harness.getGlobal("LAST_FOUR_DIGITS"); + loginName = harness.getConfig("nib.po.login-name"); + password = harness.getConfig("nib.client.password"); + } + + @EnableIfSet(globalKey = "NEW_DEBIT_CARD_CREATED") + @Order(1) + @TestCase(name = "Temporary block debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBO-T918") + public void temporaryBlockDebitCardPo(Harness harness) { + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(loginName, password)) + .then(newIbTasks.getIntoBlockingScreen(lastFourDigits,"Neaktivní")) + .clickBlockCardRadio() + .clickContinue() + .then(newIbTasks.smsKeyAuthorizationPopup()) + .blockMessageAppeared(); + + harness.storeGlobal("DEBIT_CARD_BLOCKED", "PASS"); + } + + @EnableIfSet(globalKey = "DEBIT_CARD_BLOCKED") + @Order(2) + @TestCase(name = "Unblock debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBO-T922") + public void unblockDebitCardPo(Harness harness) { + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(loginName, password)) + .then(newIbTasks.getIntoBlockingScreen(lastFourDigits, "Dočasně blokovaná")) + .clickUnblockCardRadio() + .clickContinue() + .then(newIbTasks.smsKeyAuthorizationPopup()) + .unblockMessageAppeared(); + + harness.storeGlobal("DEBIT_CARD_UNBLOCKED", "PASS"); + } + + @EnableIfSet(globalKey = "DEBIT_CARD_UNBLOCKED") + @Order(3) + @TestCase(name = "Cancel debit card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBO-T920") + public void cancelDebitCardPo(Harness harness) { + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(loginName, password)) + .then(newIbTasks.getIntoBlockingScreen(lastFourDigits, "Neaktivní")) + .clickCancelCardRadio() + .clickContinue() + .then(newIbTasks.smsKeyAuthorizationPopup()) + .cancelMessageAppeared() + .clickBackToCard() + .clickDetailsAndSettings() + .checkCardDetailInfo("Zrušená"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/dashboard/DashboardTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/dashboard/DashboardTest.java new file mode 100644 index 0000000..52f737a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/dashboard/DashboardTest.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.dashboard; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + + +@TestScenarioWithOrder(name = "Payments options on Dashboard test") +public class DashboardTest { + Credentials clientCredentials; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.payments-one-account"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + } + + @Order(1) + @Disabled("Due to rewriting all IB regression tests") + @TestCase(name = "Payments options on Dashboard", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NIB-T1581") + public void paymentsOptionsOnDashboard(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkPaymentOptionsOnDashboard()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/exchange/NewIbExchangeTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/exchange/NewIbExchangeTest.java new file mode 100644 index 0000000..2c68be9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/exchange/NewIbExchangeTest.java @@ -0,0 +1,93 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.exchange; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.ExchangeFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Exchange test") +public class NewIbExchangeTest { + + private Credentials loadCredentials(Harness harness, String configKey) { + String rc = harness.getConfig(configKey); + return harness.tasks() + .udebs() + .findCredentialsByRC(rc); + } + + @Order(1) + @TestCase(name = "Exchange test client with EUR and USD accounts", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9184") + public void checkExchange(Harness harness) { + + Credentials clientCredentials = loadCredentials(harness, "nib.rc.exchange.all.accounts"); + + ExchangeFormData formData = ExchangeFormData.builder() + .firstAmount("2000") + .secondAmount("200") + .build(); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkExchange(formData)); + } + + @Order(2) + @TestCase(name = "Exchange test client without EUR and USD accounts", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9183") + public void checkExchangeWithoutEurAndUsdAccounts(Harness harness) { + + Credentials clientCredentials = loadCredentials(harness, "nib.rc.exchange.no.foreign.account"); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .goToForeignCurrencyAccountFromExchange(); + } + + @Order(3) + @TestCase(name = "Exchange test client with EUR account", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9182") + public void checkExchangeWithEurAccount(Harness harness) { + + Credentials clientCredentials = loadCredentials(harness, "nib.rc.exchange.eur.foreign.account"); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .goToExchange() + .checkForeignTitleIsPresent("USD") + .clickOnCreateAccount() + .checkForeignCurrencyIsPresent("USD"); + } + + @Order(4) + @TestCase(name = "Exchange test client with USD account", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9748") + public void checkExchangeWithUsdAccount(Harness harness) { + + Credentials clientCredentials = loadCredentials(harness, "nib.rc.exchange.usd.foreign.account"); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .goToExchange() + .checkForeignTitleIsPresent("EUR") + .clickOnCreateAccount() + .checkForeignCurrencyIsPresent("EUR"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/login/fon/LoginLogoutNibFonTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/login/fon/LoginLogoutNibFonTest.java new file mode 100644 index 0000000..fe42a77 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/login/fon/LoginLogoutNibFonTest.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.login.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "Test to login and logout to new IB Fon") +public class LoginLogoutNibFonTest { + Credentials clientCredentials; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.login-logout"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + } + + @TestCase(name = "Login to new IB and logout Fon", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9268") + public void loginAndLogoutInNewIbFon(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.loginLogoutNewIb()); + } + + @TestCase(name = "Login to new IB and wait to session timeout Fon", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9959") + public void loginAndLogoutAfterFiveMinutesFon(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.loginLogoutAfterSessionTimeoutNewIb()) + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .waitFiveMinutesToLogout() + .checkLogoutSessionTimeoutText(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/login/fop/LoginLogoutNibFopTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/login/fop/LoginLogoutNibFopTest.java new file mode 100644 index 0000000..58a7757 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/login/fop/LoginLogoutNibFopTest.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.login.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "Test to login and logout to new IB Fop") +public class LoginLogoutNibFopTest { + Credentials clientCredentials; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.login-logout-fop"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + } + + @TestCase(name = "Login to new IB and logout Fop", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9284") + public void loginAndLogoutInNewIbFop(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.loginLogoutNewIb()); + } + + @TestCase(name = "Login to new IB and wait to session timeout Fop", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9282") + public void loginAndLogoutAfterFiveMinutesFop(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.loginLogoutAfterSessionTimeoutNewIb()) + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .waitFiveMinutesToLogout() + .checkLogoutSessionTimeoutText(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/messages/MessagesTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/messages/MessagesTest.java new file mode 100644 index 0000000..6d5c6ca --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/messages/MessagesTest.java @@ -0,0 +1,41 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.messages; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Messages tests") +public class MessagesTest { + Credentials clientCredentials; + String clientId; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.messages"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + } + + @Order(1) + @TestCase(name = "Messages - received messages", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9178") + public void receivedMessagesTest(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.receivedMessagesTest()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/AdviceFonTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/AdviceFonTest.java new file mode 100644 index 0000000..5914f12 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/AdviceFonTest.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Advice tests") +public class AdviceFonTest { + + Credentials clientCredentials; + String clientId; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.payments.advice.fon"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + } + + @Order(1) + @TestCase(name = "CA - advice on the advice tab", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9220") + public void adviceFonTest(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.adviceFonTest()); + } + + @Order(2) + @TestCase(name = "CA - advice on the transaction detail", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9221") + public void adviceOnTheTransactionDetailFonTest(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.adviceOnTheTransactionDetailFonTest()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/BulkPaymentTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/BulkPaymentTest.java new file mode 100644 index 0000000..e68d92e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/BulkPaymentTest.java @@ -0,0 +1,100 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Bulk payment tests") +public class BulkPaymentTest { + + Credentials clientCredentials; + PaymentFormData formData; + int generatedPayment1; + int generatedPayment2; + String totalFormatted; + + private int generateRandomPayment() { + return ThreadLocalRandom.current().nextInt(1, 9); + } + + @BeforeAll + public void setup(Harness harness) { + generatedPayment1 = generateRandomPayment(); + harness.log("Generated payment 1 is " + generatedPayment1); + generatedPayment2 = generateRandomPayment(); + harness.log("Generated payment 2 is " + generatedPayment2); + + int total = generatedPayment1 + generatedPayment2; + totalFormatted = String.valueOf(total); + + harness.log("Total generated payment: " + total); + + String clientBirthNumber = harness.getConfig("nib.rc.bulk-payment"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.bulk-payment"); + String recipientAccountNumber = harness.getConfig("nib.recipientaccount.czk-currency"); + String recipientAccountNumberOtherBank = harness.getConfig("nib.recipientaccount.outside-moneta.czk-currency"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumber(recipientAccountNumber) + .bankCode("0600") + .recipientAccountNumberOtherBank(recipientAccountNumberOtherBank) + .bankCodeOtherBank("0100") + .amount(String.valueOf(generatedPayment1)) + .amountForBulkPayment(String.valueOf(generatedPayment2)) + .amountOverLimit("30000") + .variableSymbol("666") + .constantSymbol("777") + .specificSymbol("888") + .recipientMessage("this is recipient message from automation test") + .myNote("this is my note from automation test") + .overLimitPaymentWarningText("Zadaná částka překračuje Váš denní limit pro platby. Navýšit ho můžete v Nastavení.") + .build(); + + harness.tasks().wso2().client().subsidyCzkAccount(fromAccountNumber, total); + } + + @Order(1) + @TestCase(name = "Bulk payment - happy path", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9219") + public void bulkPayment(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setNumberOfPayments("2"); + formData.setNumberOfBulkPaymentVictoryText("2 platby"); + formData.setTotalAmountBulkPayment(totalFormatted); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setBulkPaymentForm(formData)) + .then(newIbTasks.checkSummaryBulkPaymentPageAndConfirmWithMobileKey(formData)); + + double amount1FromUdebs = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), formData.getRecipientAccountNumber(), String.valueOf(generatedPayment1)); + + Assertions.assertEquals(Double.valueOf(generatedPayment1), amount1FromUdebs, "Payment entered in IB was " + generatedPayment1 + " but last payment in udebs is " + amount1FromUdebs); + harness.log("Generated payment 1 is:" + generatedPayment1 + " and amount in UDEBS is: " + amount1FromUdebs); + + double amount2FromUdebs = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), formData.getRecipientAccountNumberOtherBank(), String.valueOf(generatedPayment2)); + + Assertions.assertEquals(Double.valueOf(generatedPayment2), amount2FromUdebs, "Payment entered in IB was " + generatedPayment2 + " but last payment in udebs is " + amount2FromUdebs); + harness.log("Generated payment 2 is:" + generatedPayment2 + " and amount in UDEBS is: " + amount2FromUdebs); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/DirectDebitTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/DirectDebitTest.java new file mode 100644 index 0000000..33b8849 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/DirectDebitTest.java @@ -0,0 +1,73 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; + +import java.text.DecimalFormat; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.harness.support.data.GeneratorType.ACCOUNT_NUMBER; + +@TestScenarioWithOrder(name = "Direct debit tests") +public class DirectDebitTest { + Credentials clientCredentials; + PaymentFormData formData; + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextDouble(100.01, 500.99); + return new DecimalFormat("0.00").format(doubleNumber).replace(".", ","); + } + + private String getDate() { + return DateUtils.getFormattedTodayDateTime("MMddHHmmss"); + } + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.direct.debit-payment"); + String fromAccountNumber = harness.getConfig("nib.from.account.direct.debit"); + String directDebitname = ("NameDD" + getDate()); + String directDebitAcc = harness.generate(ACCOUNT_NUMBER); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumberPrefix("123") + .recipientAccountNumber(directDebitAcc) + .bankCode("0100") + .dateOfFirstPayment(DateUtils.getNextWorkday().format(DateTimeFormatter.ofPattern("d. M. yyyy"))) + .directDebitName(directDebitname) + .directDebitLimit(generateRandomPayment()) + .dateOfLastPayment("1. 1. 2040") + .frequencyOfPayments("Týdně") + .build(); + } + + @JiraTestCase(id = "SB-T9218") + @TestCase(name = "Direct debit - happy path", environments = {Environment.TST1, Environment.PPE}) + public void directDebitFon(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDirectDebitForm(formData)) + .then(newIbTasks.checkSummaryDebitForm(formData)) + .then(newIbTasks.checkVictoryPageOfDirectDebit(formData)) + .clickOnDeleteDirectDebit(formData.getDirectDebitName()) + .then(newIbTasks.deleteDirectDebitFromSettings(formData)) + .checkDirectDebitIsDeletedAndRefreshIfNeeded(formData.getDirectDebitName()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/DomesticPaymentOrderTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/DomesticPaymentOrderTest.java new file mode 100644 index 0000000..9acffc4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/DomesticPaymentOrderTest.java @@ -0,0 +1,339 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.text.DecimalFormat; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.newib.tasks.NewIbTasks.DEFAULT_MOBILE_KEY; +import static cz.moneta.test.harness.support.data.GeneratorType.ACCOUNT_NUMBER; + +@TestScenarioWithOrder(name = "Domestic payment order") +public class DomesticPaymentOrderTest { + Credentials clientCredentials; + PaymentFormData formData; + double generatedPayment; + String generatedPaymentString; + String clientId; + String generatedRecipientAccountNumber; + + private double generateRandomPayment() { + String random = new DecimalFormat("#.00").format(ThreadLocalRandom.current().nextDouble(1.00, 2.00)); + generatedPaymentString = random.replace(".", ","); + return Double.parseDouble(random.replace(",", ".")); + } + + @BeforeEach + public void generatePayment(Harness harness) { + generatedPayment = generateRandomPayment(); + harness.log("Generated payment is " + generatedPayment); + } + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.priority-payment"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.priority-payment"); + String recipientAccountNumber = harness.getConfig("nib.recipientaccount.czk-currency"); + String recipientAccountNumberOtherBank = harness.getConfig("nib.recipientaccount.outside-moneta.czk-currency"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + + generatedRecipientAccountNumber = harness.generate(ACCOUNT_NUMBER); + + formData = PaymentFormData.builder() + .fromAccountType("Běžný účet CZK") + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumber(recipientAccountNumber) + .recipientAccountNumberOtherBank(recipientAccountNumberOtherBank) + .category("Bankomat") + .bankCode("0600") + .bankCodeOtherBank("0100") + .variableSymbol("111") + .constantSymbol("2222") + .specificSymbol("33333") + .recipientMessage("Toto je zpráva pro příjemce") + .myNote("Toto je moje poznamka") + .build(); + + harness.tasks().wso2().client().subsidyCzkAccount(fromAccountNumber, 12); + } + + private void assertAmountsEqual(double expected, double actual) { + Assertions.assertEquals(expected, actual, "Expected payment: " + expected + ", but actual payment in udebs: " + actual); + } + + @Order(1) + @TestCase(name = "Domestic payment order – Priority - all steps", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9192") + public void domesticPaymentOrderPriorityAllSteps(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentString); + formData.setDateOfPayment(DateUtils.getFormattedTodayDate("d. M. yyyy")); + formData.setTypeOfPayment("Prioritní"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPriorityPaymentFirstStep(formData)) + .then(newIbTasks.setDomesticPriorityPaymentSecondStep(formData)) + .then(newIbTasks.setDomesticPaymentThirdStep(formData)); + + double amount = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), formData.getRecipientAccountNumberOtherBank(), String.valueOf(generatedPayment)); + + assertAmountsEqual(generatedPayment, amount); + harness.log("Generated payment is:" + generatedPayment + " and amount in UDEBS is: " + amount); + } + + @Order(2) + @TestCase(name = "Domestic payment order – payment from template", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9362") + public void domesticPaymentOrderFromTemplate(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentString); + formData.setTemplateName("Název šablony" + generatedPaymentString); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPaymentSaveTemplate(formData)) + .then(newIbTasks.setDomesticPaymentFromTemplate(formData)) + .clickOverviewTransactions() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPayment) + .clickOnSettings() + .clickOnTemplates() + .then(newIbTasks.deleteTemplate(formData)); + + double amount = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), formData.getRecipientAccountNumber(), String.valueOf(generatedPayment)); + + assertAmountsEqual(generatedPayment, amount); + harness.log("Generated payment is:" + generatedPayment + " and amount in UDEBS is: " + amount); + } + + @Order(3) + @TestCase(name = "Domestic payment order – Instant - all steps", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9195") + public void domesticPaymentOrderInstantAllSteps(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentString); + formData.setTypeOfPayment("Okamžitá"); + formData.setDateOfPayment("Okamžitě"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPaymentFirstStep(formData)) + .clickContinue() + .then(newIbTasks.checkSummaryPaymentPageAndConfirmWithMobileKey(formData)) + .then(newIbTasks.setDomesticPaymentThirdStep(formData)); + + double amount = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), formData.getRecipientAccountNumber(), String.valueOf(generatedPayment)); + + assertAmountsEqual(generatedPayment, amount); + harness.log("Generated payment is:" + generatedPayment + " and amount in UDEBS is: " + amount); + } + + @Order(4) + @TestCase(name = "Domestic payment order – standard", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9196") + public void domesticPaymentOrderStandardAllSteps(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentString); + formData.setTypeOfPayment("Standardní"); + formData.setDateOfPayment(DateUtils.getFormattedTodayDate("d. M. yyyy")); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPaymentFirstStep(formData)) + .clickContinue() + .then(newIbTasks.checkSummaryPaymentPageAndConfirmWithMobileKey(formData)) + .then(newIbTasks.setDomesticPaymentThirdStep(formData)); + + double amount = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), formData.getRecipientAccountNumber(), String.valueOf(generatedPayment)); + + assertAmountsEqual(generatedPayment, amount); + harness.log("Generated payment is:" + generatedPayment + " and amount in UDEBS is: " + amount); + } + + @Order(5) + @TestCase(name = "Domestic payment order – standard – future due date", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9190") + public void domesticPaymentOrderStandardFutureDueDate(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentString); + formData.setTypeOfPayment("Standardní"); + formData.setDateOfPayment(DateUtils.getNextWorkday().format(DateTimeFormatter.ofPattern("d. M. yyyy"))); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPaymentFirstStep(formData)) + .fillDate(formData.getDateOfPayment()) + .clickContinue() + .then(newIbTasks.checkSummaryPaymentPageAndConfirmWithMobileKey(formData)) + .clickOverviewTransactions() + .clickOnFuturePayment() + .checkFuturePaymentVisible(formData.getAmount()) + .clickOnFutureOrderPayment(formData.getAmount()) + .then(newIbTasks.checkFutureTransaction(formData)); + } + + @Order(6) + @TestCase(name = "Domestic payment order – standard – future due date cancel", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9191") + public void DomesticPaymentOrderStandardFutureDueDateCancel(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentString); + formData.setTypeOfPayment("Standardní"); + formData.setDateOfPayment(DateUtils.getNextWorkday().format(DateTimeFormatter.ofPattern("d. M. yyyy"))); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPaymentFirstStep(formData)) + .fillDate(formData.getDateOfPayment()) + .clickContinue() + .then(newIbTasks.checkSummaryPaymentPageAndConfirmWithMobileKey(formData)) + .clickOverviewTransactions() + .clickOnFuturePayment() + .checkFuturePaymentVisible(formData.getAmount()) + .clickOnFutureOrderPayment(formData.getAmount()) + .clickOnCancelPaymentButton() + .clickOnConfirmCancelPaymentButton() + .checkCancelVictoryText(); + } + + //only PPE due to hackemon settings + @Order(7) + @TestCase(name = "Switching from instant payment to standard payment and cancel it", environments = {Environment.PPE}) + @JiraTestCase(id = "SB-T9703") + public void fromInstantToStandardPaymentCancel(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount("26000"); + formData.setTypeOfPayment("Okamžitá"); + formData.setRecipientAccountNumber(generatedRecipientAccountNumber); + formData.setBankCode("0300"); + String channelId = "15"; + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPaymentFirstStep(formData)) + .clickContinue() + .clickContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickMobileKey() + .checkPaymentSwithToStandardTitle() + .checkPaymentSwithToStandardText() + .clickCancelPayment(); + + String statusCanceledDomesticPayment = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, "301", channelId, 30, "65"); + + Assertions.assertEquals("65", statusCanceledDomesticPayment, "Status of created payment is not equals expected status"); + harness.log("Expected status is: " + "65" + " and status in UDEBS is: " + statusCanceledDomesticPayment); + + String statusCreatedSwitchedPayment = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, "317", channelId, 30, "60"); + + Assertions.assertEquals("60", statusCreatedSwitchedPayment, "Status of created operation is not equals expected status"); + harness.log("Expected status is: " + "60" + " and status in UDEBS is: " + statusCreatedSwitchedPayment); + } + + //only PPE due to hackemon settings + @Order(8) + @TestCase(name = "Switching from instant payment to standard payment and confirm it", environments = {Environment.PPE}) + @JiraTestCase(id = "SB-T9536") + public void fromInstantToStandardPaymentConfirm(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount("26000"); + formData.setTypeOfPayment("Okamžitá"); + formData.setRecipientAccountNumber(generatedRecipientAccountNumber); + formData.setBankCode("0300"); + String channelId = "15"; + String fromAccountNumber = formData.getFromAccountNumber(); + harness.tasks().wso2().client().subsidyCzkAccount(fromAccountNumber, 26000); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPaymentFirstStep(formData)) + .clickContinue() + .clickContinue() + .fillMobileKey(DEFAULT_MOBILE_KEY) + .clickMobileKey() + .checkPaymentSwithToStandardTitle() + .checkPaymentSwithToStandardText() + .confirmStandardPayment(); + + String statusConfirmDomesticPayment = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, "301", channelId, 30, "46"); + + Assertions.assertEquals("46", statusConfirmDomesticPayment, "Status of created payment is not equals expected status"); + harness.log("Expected status is: " + "46" + " and status in UDEBS is: " + statusConfirmDomesticPayment); + + String statusCreatedSwitchedPayment = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, "317", channelId, 30, "60"); + + Assertions.assertEquals("60", statusCreatedSwitchedPayment, "Status of created operation is not equals expected status"); + harness.log("Expected status is: " + "60" + " and status in UDEBS is: " + statusCreatedSwitchedPayment); + } + + @Order(9) + @TestCase(name = "Domestic payment order – to own accounts", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9726") + public void domesticPaymentOrderToOwnAccountFon(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentString); + formData.setRecipientAccountNumber(formData.getRecipientAccountNumber()); + + String savingsAccount = harness.getConfig("nib.savings.account.fon"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPaymentToOwnAccount(formData, savingsAccount)) + .clickContinue() + .then(newIbTasks.checkSummaryPaymentToOwnAccountPageAndConfirm(formData, savingsAccount)) + .then(newIbTasks.setDomesticPaymentThirdStep(formData)); + + double amount = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), savingsAccount, String.valueOf(generatedPayment)); + + assertAmountsEqual(generatedPayment, amount); + harness.log("Generated payment is:" + generatedPayment + " and amount in UDEBS is: " + amount); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/ForeignPaymentTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/ForeignPaymentTest.java new file mode 100644 index 0000000..bbf9871 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/ForeignPaymentTest.java @@ -0,0 +1,572 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.text.DecimalFormat; +import java.time.LocalTime; +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Foreign payment tests") +public class ForeignPaymentTest { + + Credentials clientCredentials; + PaymentFormData formData; + String generatedPaymentAmount; + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextDouble(1.00, 2.00); + return new DecimalFormat("0.00").format(doubleNumber).replace(".", ","); + } + + private String formatAccountNumber(String accountNumber) { + return accountNumber.length() == 9 ? "0" + accountNumber : accountNumber; + } + + @BeforeEach + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.foreign-payment"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.foreign-payment"); + String recipientAccountNumberEur = harness.getConfig("nib.recipientaccount.eur-currency"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumber("BE62 5100 0754 7061") + .currency("EUR") + .typeOfCharge("SHA") + .recipientName("Romelu Lukaku") + .recipientAddressStreet("Greewek 1") + .recipientAddressCity("Brusel") + .recipientAddressCountry("BE - Belgie") + .recipientMessage("Test message for recipient - foreign payment") + .confirmationEmail("tomas.habinak@moneta.cz") + .bankCountry("BE - Belgie") + .bankCodeBic("VAPEBE22XXX") + .bankNameAddress("VAN DE PUT AND CO PRIVATE BANKERS") + .fromAccountType("Běžný účet CZK") + .recipientAccountNumberEur(recipientAccountNumberEur) + .bankCode("0600") + .variableSymbol("111") + .constantSymbol("2222") + .specificSymbol("33333") + .recipientBankAddressStreet("BANIYAS ROAD") + .recipientBankCity("DUBAI") + .validationCurrency("Zvolenou měnu banka nepřijímá, vyberte prosím jinou.") + .alertCzIban("Zadali jste platbu v CZK na český IBAN. Proveďte platbu raději jako tuzemskou.") + .errorIban("Toto pole je povinné.") + .typeOfPayment("Prioritní ") + .feeForeignPriorityPayment("500") + .feeForeignPriorityPaymentSummary("500,00") + .chargeBearerValue("SHA") + .feeType("SHA") + .estimatedAmountCurrency("GBP") + .submitSourceCurrency("CZK") + .conversionFeeCurrency("CZK") + .paymentFeeCurrency("CZK") + .changedRecipientAccountNumber("AT48 3200 0000 1234 58") + .fees("BEN") + .build(); + + harness.tasks().wso2().client().subsidyCzkAccount(fromAccountNumber, 100); + } + + @Order(1) + @TestCase(name = "Foreign payment - happy path", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9198") + public void foreignPayment(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payment is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setForeignPaymentForm(formData)) + .then(newIbTasks.checkSummaryForeignPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } + + @Order(2) + @TestCase(name = "Domestic payment order – foreign (foreign currency) payment within MMB", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9189") + public void domesticPaymentOrderForeignPaymentWithinMMB(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payment is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticForeignPaymentForm(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } + + @Order(3) + @TestCase(name = "Foreign payment - bank not accepting the given currency", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9235") + public void foreignPaymentBankNotAcceptingTheGivenCurrency(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payment is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setCurrency("CZK"); + formData.setRecipientAccountNumber("AE870260000959062683901"); + formData.setBankCodeBic("EBILAEADXXX"); + formData.setBankNameAddress("EMIRATES NBD BANK PJSC"); + formData.setBankCountry("AE"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.foreignPaymentBankNotAcceptingTheGivenCurrency(formData)); + } + + @Order(4) + @TestCase(name = "Foreign payment order - BIC check", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9229") + public void bicContainsTheCountryOfTheRecipientBank(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setCurrency("USD"); + formData.setRecipientAccountNumber("CZ62 5100 0754 7061"); + formData.setBankCodeBic("IRVTUS3N"); + formData.setBankNameAddress("THE BANK OF NEW YORK MELLON"); + formData.setRecipientBankAddressStreet("240 GREENWICH STREET"); + formData.setRecipientBankCity("NEW YORK"); + formData.setBankCountry("US - USA"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.bicContainsTheCountryOfTheRecipientBank(formData)) + .then(newIbTasks.checkSummaryForeignPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } + + @Order(5) + @TestCase(name = "Foreign payment - CZK payment from CZK account to CZ bank", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9234") + public void foreignCzkPaymentFromCzkAccountToCzBank(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setCurrency("CZK"); + formData.setRecipientAccountNumber("CZ55 0800 0000 0012 3456 7899"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.foreignCzkPaymentFromCzkAccountToCzBank(formData)); + } + + @Order(6) + @TestCase(name = "Foreign payment - mandatory IBAN", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9230") + public void foreignPaymentMandatoryIban(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setCurrency("USD"); + formData.setBankCodeBic("RIBLSARIXXX"); + formData.setBankNameAddress("RIYAD BANK"); + formData.setRecipientBankAddressStreet("A1 TOWER"); + formData.setRecipientBankCity("RIYADH"); + formData.setBankCountry("SA - Saúdská Arábie"); + formData.setRecipientAccountNumber("SA44 2000 0001 2345 6789 1234"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.foreignPaymentMandatoryIban(formData)) + .then(newIbTasks.checkSummaryForeignPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } + + @Order(7) + @TestCase(name = "Foreign order - priority foreign payment", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9222") + public void priorityForeignPayment(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setCurrency("USD"); + formData.setRecipientAccountNumber("CZ62 5100 0754 7061"); + formData.setBankCodeBic("IRVTUS3N"); + formData.setBankNameAddress("THE BANK OF NEW YORK MELLON"); + formData.setRecipientBankAddressStreet("240 GREENWICH STREET"); + formData.setRecipientBankCity("NEW YORK"); + formData.setBankCountry("US - USA"); + + Assumptions.assumeTrue(LocalTime.now().isBefore(LocalTime.of(13, 30)), + "Skipped: Because COT is 13:30 and it's after 13:30"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.priorityForeignPayment(formData)) + .then(newIbTasks.checkSummaryForeignPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } + + @Order(8) + @TestCase(name = "Foreign payment - SEPA confirmation", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9225") + public void sepaConfirmation(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.sepaConfirmation(formData)) + .then(newIbTasks.checkSummaryForeignPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } + + @Order(9) + @TestCase(name = "Foreign payment - foreign order confirmation", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9224") + public void foreignOrderConfirmation(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setCurrency("USD"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.foreignOrderConfirmation(formData)) + .then(newIbTasks.checkSummaryForeignPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } + + @Order(10) + @TestCase(name = "Foreign order - priority SEPA payment", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9223") + public void prioritySepaPayment(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setCurrency("EUR"); + formData.setRecipientAccountNumber("AT48 3200 0000 1234 5864"); + formData.setBankCodeBic("RLNWATWWXXX"); + formData.setBankNameAddress("RAIFFEISENLANDESBANK NIEDEROESTERRE"); + formData.setRecipientBankAddressStreet("Friedrich-Wilhelm-Raiffeisenplatz 1"); + formData.setRecipientBankCity("VIENNA"); + formData.setBankCountry("AT - Rakousko"); + formData.setFeeForeignPriorityPayment("0"); + formData.setFeeForeignPriorityPaymentSummary("0,00"); + + Assumptions.assumeTrue(LocalTime.now().isBefore(LocalTime.of(13, 0)), + "Skipped: Because COT is 13:00 and it's after 13:00"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.prioritySepaPayment(formData)) + .then(newIbTasks.checkSummaryForeignPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } + + @Order(11) + @TestCase(name = "Foreign payment - fee calcucator, exchange rate difference", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9232") + public void foreignPaymentFeeCalculatorAndExchangeRateDifference(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setCurrency("GBP"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.foreignPaymentFeeCalculatorAndExchangeRateDifference(formData)) + .then(newIbTasks.checkSummaryForeignPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); +} + + @Order(12) + @TestCase(name = "SEPA payment - fee calcucator, exchange rate difference", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9233") + public void sepaPaymentFeeCalculatorAndExchangeRateDifference(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setRecipientAccountNumber("AT48 3200 0000 1234 5864"); + formData.setEstimatedAmountCurrency("EUR"); + formData.setBankCodeBic("RLNWATWWXXX"); + formData.setBankNameAddress("RAIFFEISENLANDESBANK NIEDEROESTERRE"); + formData.setRecipientBankAddressStreet("Friedrich-Wilhelm-Raiffeisenplatz 1"); + formData.setRecipientBankCity("VIENNA"); + formData.setBankCountry("AT - Rakousko"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.sepaPaymentFeeCalculatorAndExchangeRateDifference(formData)) + .then(newIbTasks.checkSummaryForeignPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } + + @Order(13) + @TestCase(name = "SEPA payment - mandatory IBAN to countries in the IBAN code list", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9231") + public void sepaPaymentMandatoryIbanToCountriesInTheIbanCodeList(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setBankCodeBic("SOGEDEFFXXX"); + formData.setBankNameAddress("SOCIETE GENERALE S.A."); + formData.setRecipientBankAddressStreet("NEUE MAINZER STRASSE 46-50"); + formData.setRecipientBankCity("FRANKFURT AM MAIN"); + formData.setBankCountry("DE - Německo"); + formData.setRecipientAccountNumber("DE75 5121 0800 1245 1261 99"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.sepaPaymentMandatoryIbanToCountriesInTheIbanCodeList(formData)) + .then(newIbTasks.checkSummaryForeignPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } + + @Order(14) + @TestCase(name = "Foreign payment - all currencies within the EEA with SHA fee only", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9228") + public void foreignPaymentAllCurrenciesWithinTheEeaWithShaFeeOnly(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setRecipientAccountNumber("AT48 3200 0000 1234 5864"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.foreignPaymentAllCurrenciesWithinTheEeaWithShaFeeOnly(formData)); + } + + @Order(15) + @TestCase(name = "Foreign payment - all currencies outside the EEA with any fee", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9227") + public void foreignPaymentAllCurrenciesOutsideTheEeaWithAnyFee(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setRecipientAccountNumber("US64 SVBK US6S 3300 9588"); + formData.setBankCodeBic("IRVTUS3NXXX"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.foreignPaymentAllCurrenciesOutsideTheEeaWithAnyFee(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } + + @Order(16) + @TestCase(name = "Foreign payment - payment status in case of NSF", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9226") + public void foreignPaymentPaymentStatusInCaseOfNsf(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.foreign-overdraft-payment"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.foreign-overdraft-payment"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payments is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setFromAccountNumber(fromAccountNumber); + formData.setAmount(generatedPaymentAmount); + formData.setRecipientAccountNumber("DE75 5121 0800 1245 1261 99"); + formData.setBankCodeBic("SOGEDEFFXXX"); + formData.setBankNameAddress("SOCIETE GENERALE S.A."); + formData.setRecipientBankAddressStreet("NEUE MAINZER STRASSE 46-50"); + formData.setRecipientBankCity("HESSEN"); + formData.setBankCountry("DE - Německo"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.foreignPaymentPaymentStatusInCaseOfNsfEur(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount) + .clickOnOverviewButton() + .then(newIbTasks.foreignPaymentPaymentStatusInCaseOfNsfCad(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/OtherPaymentsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/OtherPaymentsTest.java new file mode 100644 index 0000000..a91c88c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/OtherPaymentsTest.java @@ -0,0 +1,87 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.*; + +import java.text.DecimalFormat; +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Other payments tests") +public class OtherPaymentsTest { + Credentials clientCredentials; + PaymentFormData formData; + String generatedPayment; + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextDouble(10001.00, 10999.00); + return new DecimalFormat("#.00").format(doubleNumber).replace(".", ","); + } + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.payment-over-limit"); + String recipientAccountNumber = harness.getConfig("nib.recipientaccount.payments-one-account"); + generatedPayment = generateRandomPayment(); + harness.log("Generated payment is " + generatedPayment); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .recipientAccountNumber(recipientAccountNumber) + .bankCode("0600") + .recipientAccountNumberEur("DE89 3704 0044 0532 013000") + .currency("CZK") + .recipientName("Mirek Kereškéni") + .fromAccountNumber("609-206971718/0600") + .recipientAccountNumberCzk("3681-7128151/0600") + .category("denní") + .build(); + } + + //payment over week limit is in settings test SB-T9339 + @Order(1) + @TestCase(name = "Payment over limit", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9207") + public void paymentOverLimit(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPayment); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setPaymentOverLimit(formData)); + } + + @Order(2) + @TestCase(name = "Download cash receipts", environments = {Environment.PPE}) + @JiraTestCase(id = "SB-T9211") + public void downloadCashReceiptsFon(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC("6306083531"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.downloadCashReceipts(formData)); + + harness.withOpenApi() + .prepareUnsecuredRequest() + .withPath("/account/transaction/receipt") + .withHeader("dispo-context-id", "10062336") + .withPayload("{\"transactionId\":\"0206971718:20250917:00013:250917C01846101\"}") + .post() + .andAssertFieldValue("status", "OK") + .saveBase64FieldAsFile("responseObject.base64PdfReceipt"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/PaymentMobileOperatorsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/PaymentMobileOperatorsTest.java new file mode 100644 index 0000000..06a8cc1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/PaymentMobileOperatorsTest.java @@ -0,0 +1,103 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.text.DecimalFormat; +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Payments tests - Mobile operators") +public class PaymentMobileOperatorsTest { + Credentials clientCredentials; + PaymentFormData formData; + String generatedPaymentAmount; + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextInt(300, 400); + return new DecimalFormat("0").format(doubleNumber).replace(".", ","); + } + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.mobilecredit-invoice-payment"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.mobilecredit-invoice-payment"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .phoneNumber("606 777 888") + .mobileOperator("O2") + .category("Auto") + .recipientMessage("Test message for recipient.") + .confirmationPhoneNumber("777 111 888") + .build(); + } + + @Order(1) + @TestCase(name = "Test - credit payment", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9212") + public void creditPaymentFon(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated payment for credit payment is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setCreditPaymentForm(formData)) + .then(newIbTasks.checkSummaryCreditPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkCreditPaymentTransaction("+420" + formData.getPhoneNumber().replaceAll("\\s+", ""), "-" + formData.getAmount()); + + String totalAmount = harness.withUdebs() + .paymentOrder() + .getAmountOfLastPaymentOrderDomestic(15, formData.getFromAccountNumber()); + + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + totalAmount); + + Assertions.assertEquals(generatedPaymentAmount, totalAmount, "Credit-Payment entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + totalAmount); + } + + @Order(2) + @TestCase(name = "Test - vodafone invoice payment", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9213") + public void vodafoneInvoicePaymentFon(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated payment for vodafone invoice is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setPhoneNumber("777999333"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setVodafoneInvoicePaymentForm(formData)) + .checkVictoryPageVodafoneOff(formData.getPhoneNumber()); + + //TODO vodafone backend is temporarily off + //.then(newIbTasks.checkSummaryVodafoneInvoicePaymentPageAndConfirmWithMobileKey(formData)) + //.clickOnTransactionOverview() + //.onHistoryTabs() + //.checkCreditPaymentTransaction("+420" + formData.getPhoneNumber().replaceAll("\\s+", ""), "-" + formData.getAmount()); + + //String totalAmount = harness.withUdebs() + //.paymentOrder() + //.getAmountOfLastPaymentOrderDomestic(15, formData.getFromAccountNumber()); + + //Assertions.assertEquals(generatedPaymentAmount, totalAmount, "Invoice amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + totalAmount); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/SipoOrderTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/SipoOrderTest.java new file mode 100644 index 0000000..52d6a40 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/SipoOrderTest.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.support.data.GeneratorType.SIPO; + +@TestScenarioWithOrder(name = "New sipo order") +public class SipoOrderTest { + Credentials clientCredentials; + PaymentFormData formData; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.sipo-order"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.sipo-order"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .limit("500") + .lastDateOfPayment("31. 3. 2045") + .monthOfEndSending("3/2045") + .build(); + } + + @Order(1) + @TestCase(name = "SIPO payment - happy path", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9206") + public void sipoOrderFon(Harness harness) { + String rawSipo = harness.generate(SIPO); + harness.log("Generated SIPO connection number is: " + rawSipo); + String sipo = rawSipo.replaceFirst("^0+", ""); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setSipoNumber(sipo); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setSipoOrderForm(formData)) + .then(newIbTasks.checkSipoOrderSummaryPageAndConfirmWithMobileKey(formData)) + .then(newIbTasks.deleteSipoOrder(formData)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/StandingOrderTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/StandingOrderTest.java new file mode 100644 index 0000000..182fdad --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fon/StandingOrderTest.java @@ -0,0 +1,75 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.text.DecimalFormat; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Standing order tests") +public class StandingOrderTest { + + Credentials clientCredentials; + PaymentFormData formData; + String generatedPaymentAmount; + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextDouble(0.01, 0.99); + return new DecimalFormat("0.00").format(doubleNumber).replace(".", ","); + } + + private String getDate() { + return DateUtils.getFormattedTodayDateTime("MM/dd-HH:mm:ss"); + } + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.standing-order"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.standing-order"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumber("123457") + .bankCode("0710") + .standingOrderName(getDate()) + .lastDateOfPayment("3. 6. 2028") + .dateOfFirstPayment(DateUtils.getNextWorkday().format(DateTimeFormatter.ofPattern("d. M. yyyy"))) + .paymentFrequency("Týdně") + .variableSymbol("111111") + .constantSymbol("222222") + .specificSymbol("333333") + .recipientMessage("Standing order msg") + .build(); + } + + @Order(1) + @TestCase(name = "Standing order - happy path - via Payment button ", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9201") + public void standingOrderCreateAndDelete(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for standing order is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setStandingOrderForm(formData)) + .then(newIbTasks.checkSummaryStandingOrderPageAndConfirmWithMobileKey(formData)) + .then(newIbTasks.goToStandingOrdersOverviewAndDeleteCreatedOne(formData)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/AdviceFopTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/AdviceFopTest.java new file mode 100644 index 0000000..4b34585 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/AdviceFopTest.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Advice tests") +public class AdviceFopTest { + + Credentials clientCredentials; + String clientId; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.payments.advice.fop"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + } + + @Order(1) + @TestCase(name = "CA - advice on the advice tab", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9252") + public void adviceFopTest(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.adviceFopTest()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/BulkPaymentFopTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/BulkPaymentFopTest.java new file mode 100644 index 0000000..569cdb6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/BulkPaymentFopTest.java @@ -0,0 +1,100 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Bulk Payment tests FOP") +public class BulkPaymentFopTest { + + Credentials clientCredentials; + PaymentFormData formData; + int generatedPayment1; + int generatedPayment2; + String totalFormatted; + + private int generatedRandomPayment() { + return ThreadLocalRandom.current().nextInt(1, 9); + } + + @BeforeAll + public void setup(Harness harness) { + generatedPayment1 = generatedRandomPayment(); + harness.log("Generated payment 1 is " + generatedPayment1); + generatedPayment2 = generatedRandomPayment(); + harness.log("Generated payment 2 is " + generatedPayment2); + + int total = generatedPayment1 + generatedPayment2; + totalFormatted = String.valueOf(total); + + harness.log("Total generated payment" + total); + + String clientBirthNumber = harness.getConfig("nib.rc.sipo-order-fop"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.sipo-order-fop"); + String recipientAccountNumber = harness.getConfig("nib.recipientaccount.czk-currency"); + String recipientAccountNumberOtherBank = harness.getConfig("nib.recipientaccount.outside-moneta.czk-currency"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumber(recipientAccountNumber) + .bankCode("0600") + .recipientAccountNumberOtherBank(recipientAccountNumberOtherBank) + .bankCodeOtherBank("0100") + .amount(String.valueOf(generatedPayment1)) + .amountForBulkPayment(String.valueOf(generatedPayment2)) + .amountOverLimit("30000") + .variableSymbol("666") + .constantSymbol("777") + .specificSymbol("888") + .recipientMessage("this is recipient message from automation test") + .myNote("this is my note from automation test") + .overLimitPaymentWarningText("Zadaná částka překračuje Váš denní limit pro platby. Navýšit ho můžete v Nastavení.") + .build(); + + harness.tasks().wso2().client().subsidyCzkAccount(fromAccountNumber, total); + } + + @Order(1) + @TestCase( name = "Bulk payment FOP - happy path", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9262") + public void bulkPaymentFop(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setNumberOfPayments("2"); + formData.setNumberOfBulkPaymentVictoryText("2 platby"); + formData.setTotalAmountBulkPayment(totalFormatted); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setBulkPaymentForm(formData)) + .then(newIbTasks.checkSummaryBulkPaymentPageAndConfirmWithMobileKey(formData)); + + double amount1FromUdebs = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), formData.getRecipientAccountNumber(), String.valueOf(generatedPayment1)); + + Assertions.assertEquals(Double.valueOf(generatedPayment1), amount1FromUdebs, "Payment entered in IB was " + generatedPayment1 + " but last payment in udebs is " + amount1FromUdebs); + harness.log("Generated payment 1 is:" + generatedPayment1 + " and amount in UDEBS is: " + amount1FromUdebs); + + double amount2FromUdebs = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), formData.getRecipientAccountNumberOtherBank(), String.valueOf(generatedPayment2)); + + Assertions.assertEquals(Double.valueOf(generatedPayment2), amount2FromUdebs, "Payment entered in IB was " + generatedPayment2 + " but last payment in udebs is " + amount2FromUdebs); + harness.log("Generated payment 2 is:" + generatedPayment2 + " and amount in UDEBS is: " + amount2FromUdebs); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/DirectDebitFopTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/DirectDebitFopTest.java new file mode 100644 index 0000000..95a2931 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/DirectDebitFopTest.java @@ -0,0 +1,73 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; + +import java.text.DecimalFormat; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.harness.support.data.GeneratorType.ACCOUNT_NUMBER; + +@TestScenarioWithOrder(name = "Direct debit Fop test") +public class DirectDebitFopTest { + Credentials clientCredentials; + PaymentFormData formData; + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextDouble(100.01, 500.99); + return new DecimalFormat("0.00").format(doubleNumber).replace(".", ","); + } + + private String getDate() { + return DateUtils.getFormattedTodayDateTime("MMddHHmmss"); + } + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.direct.debit-payment-fop"); + String fromAccountNumber = harness.getConfig("nib.from.account.direct.debit-fop"); + String directDebitName = ("FopDD" + getDate()); + String directDebitAcc = harness.generate(ACCOUNT_NUMBER); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumberPrefix("123") + .recipientAccountNumber(directDebitAcc) + .bankCode("0100") + .dateOfFirstPayment(DateUtils.getNextWorkday().format(DateTimeFormatter.ofPattern("d. M. yyyy"))) + .directDebitName(directDebitName) + .directDebitLimit(generateRandomPayment()) + .dateOfLastPayment("1. 1. 2040") + .frequencyOfPayments("Týdně") + .build(); + } + + @JiraTestCase(id = "SB-T9256") + @TestCase(name = "Direct debit - Fop - happy path", environments = {Environment.TST1, Environment.PPE}) + public void directDebitFop(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDirectDebitForm(formData)) + .then(newIbTasks.checkSummaryDebitForm(formData)) + .then(newIbTasks.checkVictoryPageOfDirectDebit(formData)) + .clickOnDeleteDirectDebit(formData.getDirectDebitName()) + .then(newIbTasks.deleteDirectDebitFromSettings(formData)) + .checkDirectDebitIsDeletedAndRefreshIfNeeded(formData.getDirectDebitName()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/DomesticPaymentOrderFopTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/DomesticPaymentOrderFopTest.java new file mode 100644 index 0000000..9f96062 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/DomesticPaymentOrderFopTest.java @@ -0,0 +1,172 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.text.DecimalFormat; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Domestic payment order") +public class DomesticPaymentOrderFopTest { + Credentials clientCredentials; + PaymentFormData formData; + double generatedPayment; + String generatedPaymentString; + + private double generateRandomPayment() { + String random = new DecimalFormat("#.00").format(ThreadLocalRandom.current().nextDouble(1.00, 2.00)); + generatedPaymentString = random.replace(".", ","); + return Double.parseDouble(random.replace(",", ".")); + } + + @BeforeEach + public void generatePayment(Harness harness) { + generatedPayment = generateRandomPayment(); + harness.log("Generated payment is " + generatedPayment); + } + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.priority-payment-fop"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.priority-payment-fop"); + String recipientAccountNumber = harness.getConfig("nib.recipientaccount.czk-currency"); + String recipientAccountNumberOtherBank = harness.getConfig("nib.recipientaccount.outside-moneta.czk-currency"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountType("Běžný účet CZK") + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumber(recipientAccountNumber) + .recipientAccountNumberOtherBank(recipientAccountNumberOtherBank) + .category("Bankomat") + .bankCode("0600") + .bankCodeOtherBank("0100") + .variableSymbol("111") + .constantSymbol("2222") + .specificSymbol("33333") + .recipientMessage("Toto je zpráva pro příjemce") + .myNote("Toto je moje poznamka") + .build(); + + harness.tasks().wso2().client().subsidyCzkAccount(fromAccountNumber, 12); + } + + private void assertAmountsEqual(double expected, double actual) { + Assertions.assertEquals(expected, actual, "Expected payment: " + expected + ", but actual payment in udebs: " + actual); + } + + @Order(1) + @TestCase(name = "Domestic payment order – Priority - all steps", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9264") + public void domesticPaymentOrderPriorityAllStepsFop(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentString); + formData.setDateOfPayment(DateUtils.getFormattedTodayDate("d. M. yyyy")); + formData.setTypeOfPayment("Prioritní"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPriorityPaymentFirstStep(formData)) + .then(newIbTasks.setDomesticPriorityPaymentSecondStep(formData)) + .then(newIbTasks.setDomesticPaymentThirdStep(formData)); + + double amount = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), formData.getRecipientAccountNumberOtherBank(), String.valueOf(generatedPayment)); + + assertAmountsEqual(generatedPayment, amount); + harness.log("Generated payment is:" + generatedPayment + " and amount in UDEBS is: " + amount); + } + + @Order(2) + @TestCase(name = "Domestic payment order – Instant - all steps", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9265") + public void domesticPaymentOrderInstantAllStepsFop(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentString); + formData.setTypeOfPayment("Okamžitá"); + formData.setDateOfPayment("Okamžitě"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPaymentFirstStep(formData)) + .clickContinue() + .then(newIbTasks.checkSummaryPaymentPageAndConfirmWithMobileKey(formData)) + .then(newIbTasks.setDomesticPaymentThirdStep(formData)); + + double amount = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), formData.getRecipientAccountNumber(), String.valueOf(generatedPayment)); + + assertAmountsEqual(generatedPayment, amount); + harness.log("Generated payment is:" + generatedPayment + " and amount in UDEBS is: " + amount); + } + + @Order(3) + @TestCase(name = "Domestic payment order – standard", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9266") + public void domesticPaymentOrderStandardAllStepsFop(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentString); + formData.setTypeOfPayment("Standardní"); + formData.setDateOfPayment(DateUtils.getFormattedTodayDate("d. M. yyyy")); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPaymentFirstStep(formData)) + .clickContinue() + .then(newIbTasks.checkSummaryPaymentPageAndConfirmWithMobileKey(formData)) + .then(newIbTasks.setDomesticPaymentThirdStep(formData)); + + double amount = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), formData.getRecipientAccountNumber(), String.valueOf(generatedPayment)); + + assertAmountsEqual(generatedPayment, amount); + harness.log("Generated payment is:" + generatedPayment + " and amount in UDEBS is: " + amount); + } + + @Order(4) + @TestCase(name = "Domestic payment order – to own accounts", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9727") + public void domesticPaymentOrderToOwnAccountFop(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentString); + formData.setRecipientAccountNumber(formData.getRecipientAccountNumber()); + + String savingsAccount = harness.getConfig("nib.savings.account.fop"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticPaymentToOwnAccount(formData, savingsAccount)) + .clickContinue() + .then(newIbTasks.checkSummaryPaymentToOwnAccountPageAndConfirm(formData, savingsAccount)) + .then(newIbTasks.setDomesticPaymentThirdStep(formData)); + + double amount = harness.withUdebs() + .accountMovements() + .getAmountLastAccountMovement(180, formData.getFromAccountNumber(), savingsAccount, String.valueOf(generatedPayment)); + + assertAmountsEqual(generatedPayment, amount); + harness.log("Generated payment is:" + generatedPayment + " and amount in UDEBS is: " + amount); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/ForeignPaymentFopTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/ForeignPaymentFopTest.java new file mode 100644 index 0000000..8d47956 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/ForeignPaymentFopTest.java @@ -0,0 +1,112 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.text.DecimalFormat; +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Foreign payment tests") +public class ForeignPaymentFopTest { + + Credentials clientCredentials; + PaymentFormData formData; + String generatedPaymentAmount; + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextDouble(1.00, 2.00); + return new DecimalFormat("0.00").format(doubleNumber).replace(".", ","); + } + + private String formatAccountNumber(String accountNumber) { + return accountNumber.length() == 9 ? "0" + accountNumber : accountNumber; + } + + @BeforeEach + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.priority-payment-fop"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.priority-payment-fop"); + String recipientAccountNumberEur = harness.getConfig("nib.recipientaccount.eur-currency"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumber("BE62 5100 0754 7061") + .currency("EUR") + .typeOfCharge("SHA") + .recipientName("Romelu Lukaku") + .recipientAddressStreet("Greewek 1") + .recipientAddressCity("Brusel") + .recipientAddressCountry("BE - Belgie") + .recipientMessage("Test message for recipient - foreign payment") + .confirmationEmail("tomas.habinak@moneta.cz") + .bankCountry("BE - Belgie") + .bankCodeBic("VAPEBE22XXX") + .bankNameAddress("VAN DE PUT AND CO PRIVATE BANKERS") + .fromAccountType("Běžný účet CZK") + .recipientAccountNumberEur(recipientAccountNumberEur) + .bankCode("0600") + .variableSymbol("111") + .constantSymbol("2222") + .specificSymbol("33333") + .recipientBankAddressStreet("BANIYAS ROAD") + .recipientBankCity("DUBAI") + .validationCurrency("Zvolenou měnu banka nepřijímá, vyberte prosím jinou.") + .alertCzIban("Zadali jste platbu v CZK na český IBAN. Proveďte platbu raději jako tuzemskou.") + .errorIban("Toto pole je povinné.") + .typeOfPayment("Prioritní ") + .feeForeignPriorityPayment("500") + .feeForeignPriorityPaymentSummary("500,00") + .chargeBearerValue("SHA") + .feeType("SHA") + .estimatedAmountCurrency("GBP") + .submitSourceCurrency("CZK") + .conversionFeeCurrency("CZK") + .paymentFeeCurrency("CZK") + .changedRecipientAccountNumber("AT48 3200 0000 1234 58") + .fees("BEN") + .build(); + + harness.tasks().wso2().client().subsidyCzkAccount(fromAccountNumber, 100); + } + + @Order(1) + @TestCase(name = "Foreign payment - happy path", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9263") + public void foreignPaymentFop(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for foreign payment is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setForeignPaymentForm(formData)) + .then(newIbTasks.checkSummaryForeignPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkTransaction(formData.getRecipientAccountNumber(), "-" + generatedPaymentAmount); + + double actual = harness.withUdebs() + .paymentOrder() + .getAmountOfLastForeignPaymentOrder(5, formatAccountNumber(formData.getFromAccountNumber())); + + double expected = Double.parseDouble(generatedPaymentAmount.replace(",", ".")); + + Assertions.assertEquals(expected, actual, "Foreign payment amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + actual); + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + actual); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/OtherPaymentsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/OtherPaymentsTest.java new file mode 100644 index 0000000..1053f31 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/OtherPaymentsTest.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Other payments tests") +public class OtherPaymentsTest { + Credentials clientCredentials; + PaymentFormData formData; + + @BeforeAll + public void setup(Harness harness) { + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC("7052270269"); + + formData = PaymentFormData.builder() + .fromAccountNumber("236142179/0600") + .recipientAccountNumberCzk("3681-7127701/0600") + .build(); + } + + @Order(1) + @TestCase(name = "Download cash receipts", environments = {Environment.PPE}) + @JiraTestCase(id = "SB-T9260") + public void downloadCashReceiptsFop(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.downloadCashReceipts(formData)); + + harness.withOpenApi() + .prepareUnsecuredRequest() + .withPath("/account/transaction/receipt") + .withHeader("dispo-context-id", "10021778") + .withPayload("{\"transactionId\":\"0236142179:20251231:00001:251231GTA990002\"}") + .post() + .andAssertFieldValue("status", "OK") + .saveBase64FieldAsFile("responseObject.base64PdfReceipt"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/PaymentMobileOperatorsFopTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/PaymentMobileOperatorsFopTest.java new file mode 100644 index 0000000..cce4f1b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/PaymentMobileOperatorsFopTest.java @@ -0,0 +1,103 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.text.DecimalFormat; +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Payments tests - Mobile operators") +public class PaymentMobileOperatorsFopTest { + Credentials clientCredentials; + PaymentFormData formData; + String generatedPaymentAmount; + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextInt(300, 400); + return new DecimalFormat("0").format(doubleNumber).replace(".", ","); + } + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.mobilecredit-invoice-payment-fop"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.mobilecredit-invoice-payment-fop"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .phoneNumber("606 777 888") + .mobileOperator("O2") + .category("Auto") + .recipientMessage("Test message for recipient.") + .confirmationPhoneNumber("777 111 888") + .build(); + } + + @Order(1) + @TestCase(name = "Test - credit payment", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9254") + public void creditPaymentFop(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated payment for credit payment is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setCreditPaymentForm(formData)) + .then(newIbTasks.checkSummaryCreditPaymentPageAndConfirmWithMobileKey(formData)) + .clickOnTransactionOverview() + .onHistoryTabs() + .checkCreditPaymentTransaction("+420" + formData.getPhoneNumber().replaceAll("\\s+", ""), "-" + formData.getAmount()); + + String totalAmount = harness.withUdebs() + .paymentOrder() + .getAmountOfLastPaymentOrderDomestic(15, formData.getFromAccountNumber()); + + harness.log("Generated payment is:" + generatedPaymentAmount + " and amount in UDEBS is: " + totalAmount); + + Assertions.assertEquals(generatedPaymentAmount, totalAmount, "Credit-Payment entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + totalAmount); + } + + @Order(2) + @TestCase(name = "Test - vodafone invoice payment", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9253") + public void vodafoneInvoicePaymentFop(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated payment for vodafone invoice is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + formData.setPhoneNumber("777999333"); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setVodafoneInvoicePaymentForm(formData)) + .checkVictoryPageVodafoneOff(formData.getPhoneNumber()); + + //TODO vodafone backend is temporarily off + //.then(newIbTasks.checkSummaryVodafoneInvoicePaymentPageAndConfirmWithMobileKey(formData)) + //.clickOnTransactionOverview() + //.onHistoryTabs() + //.checkCreditPaymentTransaction("+420" + formData.getPhoneNumber().replaceAll("\\s+", ""), "-" + formData.getAmount()); + + //String totalAmount = harness.withUdebs() + //.paymentOrder() + //.getAmountOfLastPaymentOrderDomestic(15, formData.getFromAccountNumber()); + + //Assertions.assertEquals(generatedPaymentAmount, totalAmount, "Invoice amount entered in IB was " + generatedPaymentAmount + " but last amount in udebs is " + totalAmount); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/SipoOrderFopTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/SipoOrderFopTest.java new file mode 100644 index 0000000..176c1e5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/SipoOrderFopTest.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "FOP - Check No SIPO") +public class SipoOrderFopTest { + Credentials clientCredentials; + PaymentFormData formData; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.sipo-order-fop"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.sipo-order-fop"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + } + + @Order(1) + @TestCase(name = "SIPO payment - FOP - check no SIPO", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9255") + public void sipoOrderFop(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkNoSipo()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/StandingOrderFopTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/StandingOrderFopTest.java new file mode 100644 index 0000000..635bbdb --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/payment/fop/StandingOrderFopTest.java @@ -0,0 +1,75 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.payment.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.text.DecimalFormat; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Standing order Fop tests") +public class StandingOrderFopTest { + + Credentials clientCredentials; + PaymentFormData formData; + String generatedPaymentAmount; + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextDouble(0.01, 0.99); + return new DecimalFormat("0.00").format(doubleNumber).replace(".", ","); + } + + private String getDate() { + return DateUtils.getFormattedTodayDateTime("MM/dd-HH:mm:ss"); + } + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.sipo-order-fop"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.sipo-order-fop"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumber("123457") + .bankCode("0710") + .standingOrderName(getDate()) + .lastDateOfPayment("3. 6. 2028") + .dateOfFirstPayment(DateUtils.getNextWorkday().format(DateTimeFormatter.ofPattern("d. M. yyyy"))) + .paymentFrequency("Týdně") + .variableSymbol("111111") + .constantSymbol("222222") + .specificSymbol("333333") + .recipientMessage("Standing order msg") + .build(); + } + + @Order(1) + @TestCase(name = "Standing order FOP - happy path - via Payment button ", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9257") + public void standingOrderCreateAndDelete(Harness harness) { + generatedPaymentAmount = generateRandomPayment(); + harness.log("Generated amount for standing order is: " + generatedPaymentAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setAmount(generatedPaymentAmount); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setStandingOrderForm(formData)) + .then(newIbTasks.checkSummaryStandingOrderPageAndConfirmWithMobileKey(formData)) + .then(newIbTasks.goToStandingOrdersOverviewAndDeleteCreatedOne(formData)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fon/BuildingSavingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fon/BuildingSavingsTest.java new file mode 100644 index 0000000..4e4b15a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fon/BuildingSavingsTest.java @@ -0,0 +1,81 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.savings.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.SavingsFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.*; + +@TestScenarioWithOrder(name = "Building savings tests") +public class BuildingSavingsTest { + + private static final String OPER_ID_BS = "955"; + private static final String CHANNEL_ID = "15"; + private static final String EXPECTED_STATUS_SAVING_ACCOUNT = "40"; + + private Credentials clientCredentials; + private String clientId; + private String userId; + private SavingsFormData formData; + + @BeforeEach + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.buildingSavings"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + + userId = harness.withUdebs() + .usersTable() + .getUserId(clientBirthNumber); + + formData = SavingsFormData.builder() + .minMonthlyPayment("500") + .maxMonthlyPayment("50000") + .defaultMonthlyPayment("1700") + .build(); + } + + //run only in PPE, because of starbuild environment limitations + @Order(1) + @TestCase(name = "Establishment building savings - happy path", environments = {Environment.PPE}) + @JiraTestCase(id = "SB-T9291") + public void establishmentBuildingSavings(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.establishmentBuildingSavings(formData)); + + String statusCreatedBs = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, OPER_ID_BS, CHANNEL_ID, 60, EXPECTED_STATUS_SAVING_ACCOUNT); + + Assertions.assertEquals(EXPECTED_STATUS_SAVING_ACCOUNT, statusCreatedBs, + "Status of created building savings is not equal to expected status"); + + harness.log("Expected status is: " + EXPECTED_STATUS_SAVING_ACCOUNT + " and status in UDEBS is: " + statusCreatedBs + " for clientId=" + clientId); + } + + @AfterEach + protected void resetTransactionStatusTo51(Harness harness) { + String packageId = harness.withUdebs() + .transactionsClient() + .getLastTransactionPackageId(clientId, OPER_ID_BS, CHANNEL_ID, 60); + + harness.withUdebs() + .setTransactionStatus() + .setStatusTo51(packageId, userId); + + harness.log("Transaction with packageId=" + packageId + " reset to status 51 for userId=" + userId); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fon/DpsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fon/DpsTest.java new file mode 100644 index 0000000..a8decbc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fon/DpsTest.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.savings.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "DPS tests") +public class DpsTest { + + Credentials clientCredentials; + String clientId; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.dps.fon"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + } + + @Order(1) + @TestCase(name = "DPS - displayed on the dashboard and in the savings section", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9295") + public void dpsDisplayedOntheDashboardAndInTheSavingsSection(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.dpsDisplayedOntheDashboardAndInTheSavingsSection()); + } + + @Order(2) + @TestCase(name = "DPS - change of contribution and deposit", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9551") + public void dpsChangeOfContributionAndDeposit(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.dpsChangeOfContributionAndDeposit()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fon/SavingsFonTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fon/SavingsFonTest.java new file mode 100644 index 0000000..9e1cc2a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fon/SavingsFonTest.java @@ -0,0 +1,222 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.savings.fon; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.SavingsFormData; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Create Savings FON test") +public class SavingsFonTest { + Credentials clientCredentials; + String clientId; + SavingsFormData formData; + + @BeforeEach + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.termDepositFon"); + String accountNumberRtvServicingDeposit = harness.getConfig("nib.accountNumberRtvServicingDepositFon"); + String destinationAccountNumberDeposit = harness.getConfig("nib.destinationAccountNumberDepositFon"); + String accountNumberRtvServicingWithdrawal = harness.getConfig("nib.accountNumberRtvServicingWithdrawalFon"); + String sourceNumberRtvServicingWithdrawal = harness.getConfig("nib.sourceNumberRtvServicingWithdrawalFon"); + String destinationAccountRtvServicingWithdrawal= harness.getConfig("nib.destinationAccountRtvServicingWithdrawalFon"); + String accountNumberRtvServicingCancel = harness.getConfig("nib.accountNumberRtvServicingCancelFon"); + String sourceNumberRtvServicingCancel = harness.getConfig("nib.sourceNumberRtvServicingCancelFon"); + String destinationAccountRtvServicingCancel= harness.getConfig("nib.destinationAccountRtvServicingCancelFon"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + + formData = SavingsFormData.builder() + .accountNumberRtvServicingDeposit(accountNumberRtvServicingDeposit) + .destinationAccountNumberDeposit(destinationAccountNumberDeposit) + .accountNumberRtvServicingWithdrawal(accountNumberRtvServicingWithdrawal) + .sourceNumberRtvServicingWithdrawal(sourceNumberRtvServicingWithdrawal) + .destinationAccountRtvServicingWithdrawal(destinationAccountRtvServicingWithdrawal) + .accountNumberRtvServicingCancel(accountNumberRtvServicingCancel) + .sourceNumberRtvServicingCancel(sourceNumberRtvServicingCancel) + .destinationAccountRtvServicingCancel(destinationAccountRtvServicingCancel) + .build(); + } + + private SavingsFormData createFormData(String currency, String amount, String type, String period, String limitAmountMin, String limitAmountMax, String taxResidence1, String taxResidence2) { + return SavingsFormData.builder() + .currency(currency) + .amount(amount) + .limitAmountMin(limitAmountMin) + .limitAmountMax(limitAmountMax) + .termDepositType(type) + .termDepositPeriod(period) + .taxResidence1(taxResidence1) + .taxResidence2(taxResidence2) + .build(); + } + + @Order(1) + @TestCase(name = "Create FON JTV + RTV", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9357") + public void termDepositCreateFon(Harness harness) { + String accountNumberCzk = harness.getConfig("nib.currentaccount.termDepositCzkFon"); + String accountNumberEur = harness.getConfig("nib.currentaccount.termDepositEurFon"); + double depositAmountCzk = 50000; + harness.tasks().wso2().client().subsidyCzkAccount(accountNumberCzk, depositAmountCzk); + double depositAmountEur = 500; + harness.tasks().wso2().client().subsidyEurAccount(accountNumberEur, depositAmountEur); + String operIdJtv = "411"; + String operIdRtv = "412"; + String channelId = "15"; + String expectedStatusSavingAccount = "60"; + + SavingsFormData formDataJtv = createFormData("CZK", "50000", "JTV", "3 měsíce", "14999", "999999999999", "Slovensko", "Česká republika"); + SavingsFormData formDataRtv = createFormData("EUR", "500", "RTV", "6 měsíců", "499", "999999999999", "Americká Samoa", "Slovensko"); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.createTermDeposit(formDataJtv)) + .then(newIbTasks.createTermDeposit(formDataRtv)); + + String statusCreatedJtv = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, operIdJtv, channelId, 60, expectedStatusSavingAccount); + + Assertions.assertEquals(expectedStatusSavingAccount, statusCreatedJtv, "Status of created JTV is not equals expected status"); + harness.log("Expected status is: " + expectedStatusSavingAccount + " and status in UDEBS is: " + statusCreatedJtv); + + String statusCreatedRtv = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, operIdRtv, channelId, 60, expectedStatusSavingAccount); + + Assertions.assertEquals(expectedStatusSavingAccount, statusCreatedRtv, "Status of created RTV is not equals expected status"); + harness.log("Expected status is: " + expectedStatusSavingAccount + " and status in UDEBS is: " + statusCreatedRtv); + } + + @Order(2) + @TestCase(name = "Servicing RTV FON - Deposit", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9297") + public void rtvServicingDepositFon(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.rtvServicingDepositFon"); + String operIdRtv = "413"; + String nextOperIdRtv= "404"; + String channelId = "15"; + String expectedStatusRtv = "60"; + String expectedStatusNextRtvTrn = "55"; + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.rtvServicingDeposit(formData)); + + String statusRtv = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, operIdRtv, channelId, 60, expectedStatusRtv); + + String statusNextRtvTrn = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, nextOperIdRtv, channelId, 60, expectedStatusNextRtvTrn); + + harness.log("Expected status is: " + expectedStatusRtv + " and status in UDEBS is: " + statusRtv); + Assertions.assertEquals(expectedStatusRtv, statusRtv, "Status of Rtv is not equals expected status"); + + harness.log("Expected status is: " + expectedStatusNextRtvTrn + " and status in UDEBS is: " + statusNextRtvTrn); + Assertions.assertEquals(expectedStatusNextRtvTrn, statusNextRtvTrn, "Status of Rtv is not equals expected status"); + } + + @Order(3) + @TestCase(name = "Servicing RTV FON - Withdrawal", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9298") + public void rtvServicingWithdrawalFon(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.rtvServicingWithdrawalFon"); + String operIdRtv = "413"; + String nextOperIdRtv= "404"; + String channelId = "15"; + String expectedStatusRtv = "60"; + String expectedStatusNextRtvTrn = "55"; + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.rtvServicingWithdrawal(formData)); + + String statusRtv = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, operIdRtv, channelId, 60, expectedStatusRtv); + + String statusNextRtvTrn = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, nextOperIdRtv, channelId, 60, expectedStatusNextRtvTrn); + + harness.log("Expected status is: " + expectedStatusRtv + " and status in UDEBS is: " + statusRtv); + Assertions.assertEquals(expectedStatusRtv, statusRtv, "Status of Rtv is not equals expected status"); + + harness.log("Expected status is: " + expectedStatusNextRtvTrn + " and status in UDEBS is: " + statusNextRtvTrn); + Assertions.assertEquals(expectedStatusNextRtvTrn, statusNextRtvTrn, "Status of Rtv is not equals expected status"); + } + + @Order(4) + @TestCase(name = "Servicing RTV FON - Cancel", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9299") + public void rtvServicingCancelFon(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.rtvServicingCancelFon"); + String operIdRtv = "413"; + String nextOperIdRtv= "404"; + String channelId = "15"; + String expectedStatusRtv = "60"; + String expectedStatusNextRtvTrn = "55"; + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.rtvServicingCancel(formData)); + + String statusRtv = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, operIdRtv, channelId, 60, expectedStatusRtv); + + String statusNextRtvTrn = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, nextOperIdRtv, channelId, 60, expectedStatusNextRtvTrn); + + harness.log("Expected status is: " + expectedStatusRtv + " and status in UDEBS is: " + statusRtv); + Assertions.assertEquals(expectedStatusRtv, statusRtv, "Status of Rtv is not equals expected status"); + + harness.log("Expected status is: " + expectedStatusNextRtvTrn + " and status in UDEBS is: " + statusNextRtvTrn); + Assertions.assertEquals(expectedStatusNextRtvTrn, statusNextRtvTrn, "Status of Rtv is not equals expected status"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fop/SavingsFopTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fop/SavingsFopTest.java new file mode 100644 index 0000000..be78ff6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/savings/fop/SavingsFopTest.java @@ -0,0 +1,82 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.savings.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.SavingsFormData; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Create Savings FOP test") +public class SavingsFopTest { + Credentials clientCredentials; + String clientId; + + @BeforeEach + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.termDepositFop"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + } + + private SavingsFormData createFormData(String currency, String amount, String type, String period, String limitAmountMin, String limitAmountMax, String taxResidence1, String taxResidence2) { + return SavingsFormData.builder() + .currency(currency) + .amount(amount) + .limitAmountMin(limitAmountMin) + .limitAmountMax(limitAmountMax) + .termDepositType(type) + .termDepositPeriod(period) + .taxResidence1(taxResidence1) + .taxResidence2(taxResidence2) + .build(); + } + + @Order(1) + @TestCase(name = "Create FOP JTV + RTV", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9352") + public void termDepositCreateFop(Harness harness) { + String accountNumberCzk = harness.getConfig("nib.currentaccount.termDepositCzkFop"); + String accountNumberEur = harness.getConfig("nib.currentaccount.termDepositEurFop"); + double depositAmountCzk = 50000; + harness.tasks().wso2().client().subsidyCzkAccount(accountNumberCzk, depositAmountCzk); + double depositAmountEur = 500; + harness.tasks().wso2().client().subsidyEurAccount(accountNumberEur, depositAmountEur); + String operIdJtv = "411"; + String operIdRtv = "412"; + String channelId = "15"; + String expectedStatusSavingAccount = "60"; + + SavingsFormData formDataJtv = createFormData("CZK", "50000", "JTV", "3 měsíce", "14999", "999999999999", "Slovensko", "Česká republika"); + SavingsFormData formDataRtv = createFormData("EUR", "500", "RTV", "6 měsíců", "499", "999999999999", "Americká Samoa", "Slovensko"); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.createTermDeposit(formDataJtv)) + .then(newIbTasks.createTermDeposit(formDataRtv)); + + String statusCreatedJtv = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, operIdJtv, channelId, 60, expectedStatusSavingAccount); + + Assertions.assertEquals(expectedStatusSavingAccount, statusCreatedJtv, "Status of created JTV is not equals expected status"); + harness.log("Expected status is: " + expectedStatusSavingAccount + " and status in UDEBS is: " + statusCreatedJtv); + + String statusCreatedRtv = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, operIdRtv, channelId, 60, expectedStatusSavingAccount); + + Assertions.assertEquals(expectedStatusSavingAccount, statusCreatedRtv, "Status of created RTV is not equals expected status"); + harness.log("Expected status is: " + expectedStatusSavingAccount + " and status in UDEBS is: " + statusCreatedRtv); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/AboutTheSmartBanka.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/AboutTheSmartBanka.java new file mode 100644 index 0000000..3cdf6d2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/AboutTheSmartBanka.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "About the smart banka") +public class AboutTheSmartBanka { + Credentials clientCredentials; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.aboutTheSmartBanka"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + } + + @Disabled + @Order(1) + @TestCase(name = "About the smart banka - settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NIB-T1836") + public void aboutTheSmartBankaSettings(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkAboutTheSmartBanka()); + } + + @Disabled + @Order(2) + @TestCase(name = "About the smart banka - authorization", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NIB-T1840") + public void aboutTheSmartBankaAuthorization(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkAboutTheSmartBankaAuthorization()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/AccountsSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/AccountsSettingsTest.java new file mode 100644 index 0000000..a61abbc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/AccountsSettingsTest.java @@ -0,0 +1,77 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Accounts settings tests") + +public class AccountsSettingsTest { + Credentials clientCredentials; + String currentAccNumber; + String currentAccIban; + String savingsAccNumber; + String savingsAccIban; + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.accounts-settings"); + currentAccNumber = harness.getConfig("nib.accountNumber.accounts-settings"); + currentAccIban = harness.getConfig("nib.iban.accounts-settings"); + savingsAccNumber = harness.getConfig("nib.savingsAccountNumber.accounts-settings"); + savingsAccIban = harness.getConfig("nib.iban.savingsAccount-settings"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + } + + private PaymentFormData createFormData(String fromAccountType, String fromAccountNumber, String iban) { + return PaymentFormData.builder() + .fromAccountType(fromAccountType) + .fromAccountNumber(fromAccountNumber) + .iban(iban) + .build(); + } + + @Order(1) + @TestCase(name = "Check current account via settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9343") + public void checkCurrentAccountSettings(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + PaymentFormData currentAccountData = createFormData("Gold", currentAccNumber, currentAccIban); + + String accountType = "currentAccounts"; + String accountTestName = "Current"; + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkAccountsSettings(currentAccountData, accountType, accountTestName)); + } + + @Order(2) + @TestCase(name = "Check savings account via settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9340") + public void checkSavingsAccountSettings(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + PaymentFormData savingsAccountData = createFormData("SÚ Gold Plus", savingsAccNumber, savingsAccIban); + + String accountType = "savingsAccounts"; + String accountTestName = "Savings"; + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkAccountsSettings(savingsAccountData, accountType, accountTestName)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/CardsSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/CardsSettingsTest.java new file mode 100644 index 0000000..2dd4b1d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/CardsSettingsTest.java @@ -0,0 +1,72 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Cards") +public class CardsSettingsTest { + + Credentials clientCredentials; + String clientId; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.settings.cards.fon"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + } + + @Order(1) + @TestCase(name = "Debit cards - detail and adjusting settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9740") + public void cardsSettingsTest(Harness harness) { + + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.cardsSettingsTest()); + } + + @Order(2) + @TestCase(name = "Debit cards - temporary blocking and unblocking", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9741") + public void cardsSettingsTemporaryBlockingTest(Harness harness) { + + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.cardsSettingsTemporaryBlockingTest()); + } + + @Order(3) + @TestCase(name = "Credit cards - detail", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9839") + public void creditCardsSettingsTest(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.settings.creditCards.fon"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.creditCardsSettingsTest()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/ChangeIdSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/ChangeIdSettingsTest.java new file mode 100644 index 0000000..3ff5231 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/ChangeIdSettingsTest.java @@ -0,0 +1,38 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Change ID tests") + +public class ChangeIdSettingsTest { + Credentials clientCredentials; + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.limits"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + } + + @Order(1) + @TestCase(name = "Change ID via settings test", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9332") + public void changeIdViaSettings(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.changeIdViaSettings()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/ChangePasswordSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/ChangePasswordSettingsTest.java new file mode 100644 index 0000000..32fac8f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/ChangePasswordSettingsTest.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Change password") +public class ChangePasswordSettingsTest { + Credentials clientCredentials; + String clientId; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.changePassword"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + } + + @Order(1) + @TestCase(name = "Change password in settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9333") + public void changePasswordSettings(Harness harness) { + String operIdPasswordChange= "10"; + String expectedStatusPasswordChange = "60"; + String channelId = "15"; + + NewIbTasks newIbTasks = harness.tasks().newIb(); + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.changePasswordSettings()); + + String statusPasswordChange = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, operIdPasswordChange, channelId, 60, expectedStatusPasswordChange); + + harness.log("Expected status is: " + expectedStatusPasswordChange + " and status in UDEBS is: " + statusPasswordChange); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/ContactsSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/ContactsSettingsTest.java new file mode 100644 index 0000000..df6b6c9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/ContactsSettingsTest.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.ContactsFormData; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Contacts tests") +public class ContactsSettingsTest { + Credentials clientCredentials; + ContactsFormData formData; + + private String getDate() { + return DateUtils.getFormattedTodayDateTime("MMddHHmmss"); + } + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.contacts"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = ContactsFormData.builder() + .name(getDate()) + .phoneNumber("776770770") + .operator("Vodafone") + .build(); + } + + @Order(1) + @TestCase(name = "Contacts - via Settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9329") + public void newContactCreateAndDelete(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.createNewContactAndDeleteCreatedOne(formData)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/DirectDebitSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/DirectDebitSettingsTest.java new file mode 100644 index 0000000..a5d780f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/DirectDebitSettingsTest.java @@ -0,0 +1,76 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.text.DecimalFormat; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.harness.support.data.GeneratorType.ACCOUNT_NUMBER; + +@TestScenarioWithOrder(name = "Direct debit settings tests") +public class DirectDebitSettingsTest { + Credentials clientCredentials; + PaymentFormData formData; + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextDouble(100.00, 500.99); + return new DecimalFormat("0.00").format(doubleNumber).replace(".", ","); + } + + private String getDate() { + return DateUtils.getFormattedTodayDateTime("MMddHHmmss"); + } + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.direct.debit-payment"); + String fromAccountNumber = harness.getConfig("nib.from.account.direct.debit"); + String directDebitName = ("NameDD" + getDate()); + String directDebitAcc = harness.generate(ACCOUNT_NUMBER); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumberPrefix("123") + .recipientAccountNumber(directDebitAcc) + .bankCode("0100") + .dateOfFirstPayment(DateUtils.getNextWorkday().format(DateTimeFormatter.ofPattern("d. M. yyyy"))) + .directDebitName(directDebitName) + .directDebitLimit(generateRandomPayment()) + .dateOfLastPayment("1. 1. 2040") + .frequencyOfPayments("Týdně") + .build(); + } + + @Order(1) + @JiraTestCase(id = "SB-T9344") + @TestCase(name = "Direct debit settings - happy path", environments = {Environment.TST1, Environment.PPE}) + public void directDebitCreateEditDelete(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDirectDebitForm(formData)) + .then(newIbTasks.checkSummaryDebitForm(formData)) + .then(newIbTasks.checkVictoryPageOfDirectDebit(formData)) + .then(newIbTasks.changeDirectDebitFromSettings(formData)) + .clickOnDeleteDirectDebit(formData.getDirectDebitName() + "Ch") + .then(newIbTasks.deleteDirectDebitFromSettings(formData)) + .checkDirectDebitIsDeletedAndRefreshIfNeeded(formData.getDirectDebitName() + "Ch"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/DisponentsSettings.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/DisponentsSettings.java new file mode 100644 index 0000000..0b32e31 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/DisponentsSettings.java @@ -0,0 +1,38 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Check Disponents tests") + +public class DisponentsSettings { + Credentials clientCredentials; + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.disponents"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + } + + @Order(1) + @TestCase(name = "Check Disponents via settings test", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9334") + public void checkDisponentsViaSettings(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkDisponentsViaSettings()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/EnvelopesSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/EnvelopesSettingsTest.java new file mode 100644 index 0000000..0587a5c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/EnvelopesSettingsTest.java @@ -0,0 +1,57 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.EnvelopesFormData; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.text.DecimalFormat; +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Envelopes tests") +public class EnvelopesSettingsTest { + Credentials clientCredentials; + EnvelopesFormData formData; + + private String getDate() { + return DateUtils.getFormattedTodayDateTime("MM/dd-HH:mm:ss"); + } + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextDouble(100.01, 900.99); + return new DecimalFormat("0.00").format(doubleNumber).replace(".", ","); + } + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.envelopes"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + formData = EnvelopesFormData.builder() + .envelopeName(getDate()) + .amount(generateRandomPayment()) + .category("auto") + .build(); + } + + @Order(1) + @TestCase(name = "Envelopes - via Settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9342") + public void newEnvelopeCreateEditAndDelete(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.createNewEnvelopeEditAndDeleteCreatedOne(formData)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/LimitsSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/LimitsSettingsTest.java new file mode 100644 index 0000000..8d6fa29 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/LimitsSettingsTest.java @@ -0,0 +1,57 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Limits") +public class LimitsSettingsTest { + Credentials clientCredentials; + PaymentFormData formData; + + @BeforeAll + public void setup(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.limits"); + String recipientAccountNumber = harness.getConfig("nib.recipientaccount.payments-one-account"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .recipientAccountNumber(recipientAccountNumber) + .bankCode("0600") + .amount("500") + .variableSymbol("111") + .constantSymbol("222") + .specificSymbol("333") + .recipientMessage("over Limit") + .recipientAccountNumberEur("BE62 5100 0754 7061") + .currency("CZK") + .recipientName("Mirek Kereškéni") + .fromAccountNumber("609-206971718/0600") + .category("týdenní") + .build(); + } + + @Order(1) + @TestCase(name = "Change limits via settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9339") + public void limitsSettings(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.changeLimitsViaSettings(formData)) + .then(newIbTasks.setPaymentOverLimit(formData)) + .then(newIbTasks.resetLimitsViaSettings(formData)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/PersonalAndContactDetailsSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/PersonalAndContactDetailsSettingsTest.java new file mode 100644 index 0000000..bebcb0d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/PersonalAndContactDetailsSettingsTest.java @@ -0,0 +1,37 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Personal and Contact Details") +public class PersonalAndContactDetailsSettingsTest { + Credentials clientCredentials; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.personalAndContactDetails"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + } + + @Order(1) + @TestCase(name = "Check Personal and Contact Details in settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9336") + public void personalAndContactDetailsSettings(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.personalAndContactDetailsSettings()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/SipoSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/SipoSettingsTest.java new file mode 100644 index 0000000..e071ad9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/SipoSettingsTest.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.support.data.GeneratorType.SIPO; + +@TestScenarioWithOrder(name = "Settings - SIPO creation test") +public class SipoSettingsTest { + Credentials clientCredentials; + PaymentFormData formData; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.sipo-order"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.sipo-order"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .fromAccountNumber(fromAccountNumber) + .limit("100") + .lastDateOfPayment("31. 3. 2045") + .build(); + } + + @Order(1) + @TestCase(name = "SIPO creation test - via Settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9341") + public void sipoCreationEditDeleteViaSettings(Harness harness) { + String rawSipo = harness.generate(SIPO); + harness.log("Generated SIPO connection number is: " + rawSipo); + String sipo = rawSipo.replaceFirst("^0+", ""); + NewIbTasks newIbTasks = harness.tasks().newIb(); + formData.setSipoNumber(sipo); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.createSipoOrderViaSettings(formData)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/StandingOrdersSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/StandingOrdersSettingsTest.java new file mode 100644 index 0000000..4cf2753 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/StandingOrdersSettingsTest.java @@ -0,0 +1,69 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.text.DecimalFormat; +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Settings - Standing order creation test") +public class StandingOrdersSettingsTest { + Credentials clientCredentials; + PaymentFormData formData; + + private String generateRandomPayment() { + double doubleNumber = ThreadLocalRandom.current().nextDouble(0.01, 0.99); + return new DecimalFormat("0.00").format(doubleNumber).replace(".", ","); + } + + private String getDate() { + return DateUtils.getFormattedTodayDateTime("MM/dd-HH:mm:ss"); + } + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.standing-order"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.standing-order"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .prefixAccountNumber("19") + .fromAccountNumber(fromAccountNumber) + .recipientAccountNumber("123457") + .bankCode("0710") + .standingOrderName(getDate()) + .lastDateOfPayment("6. 6. 2038") + .paymentFrequency("Ročně") + .recipientMessage(getDate()) + .build(); + } + + @Order(1) + @TestCase(name = "Standing order - Settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9345") + public void standingOrderSettings(Harness harness) { + String initialAmount = generateRandomPayment(); + String updatedAmount = generateRandomPayment(); + harness.log("Generated initial amount for standing order: " + initialAmount + " and updated amount for change test: " + updatedAmount); + formData.setAmount(initialAmount); + formData.setAmount2(updatedAmount); + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.createStandingOrderViaSettings(formData)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/TemplatesTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/TemplatesTest.java new file mode 100644 index 0000000..82e30f7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/TemplatesTest.java @@ -0,0 +1,86 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.PaymentFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import java.text.SimpleDateFormat; + +@TestScenarioWithOrder(name = "Settings - Template creation tests") +public class TemplatesTest { + Credentials clientCredentials; + PaymentFormData formData; + + private String getDate() { + return new SimpleDateFormat("MM/dd-HH:mm:ss").format(new java.util.Date()); + } + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.templates"); + String fromAccountNumber = harness.getConfig("nib.fromaccount.templates"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = PaymentFormData.builder() + .templateName(getDate()) + .prefixAccountNumber("19") + .recipientAccountNumber("19019") + .bankCode("3030") + .amount("222") + .variableSymbol("1111") + .constantSymbol("2222") + .specificSymbol("3333") + .recipientMessage("recipient message") + .myNote("note for me") + .category("Bydlení") + .iban("BE62510007547061") + .currency("PLN") + .typeOfCharge("SHA") + .recipientName("Autotest Test") + .recipientAddressStreet("Autotest street") + .recipientAddressCity("Autotest city") + .recipientAddressCountry("AR - Argentina") + .recipientMessage("autotest message for recipient") + .confirmationEmail("autotest@mmb.cz") + .build(); + } + + @Disabled + @Order(1) + @TestCase(name = "Domestic template create", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NIB-T1593") + public void domesticTemplateCreation(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setDomesticTemplateForm(formData)) + .then(newIbTasks.checkTemplateAndDeleteCreatedOne(formData)); + } + + @Disabled + @Order(2) + @TestCase(name = "Foreign template create", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NIB-T1594") + public void foreignTemplateCreation(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.setForeignTemplateForm(formData)) + .then(newIbTasks.checkForeignTemplateAndDeleteCreatedOne(formData)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/TrustedContactsSettingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/TrustedContactsSettingsTest.java new file mode 100644 index 0000000..8c89130 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/settings/TrustedContactsSettingsTest.java @@ -0,0 +1,45 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.settings; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.newib.util.TrustedContactsFormData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Trusted contacts") +public class TrustedContactsSettingsTest { + Credentials clientCredentials; + TrustedContactsFormData formData; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.limits"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + formData = TrustedContactsFormData.builder() + .setNameOfTrustedContactLong("123456789123456789201234") + .setNameOfTrustedContactShort("4545") + .build(); + } + + //trusted contacts not possible right now + @Order(1) + @TestCase(name = "Check Trusted contacts in settings", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9346") + public void checkTrustedContactsSettings(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkTrustedContacts(formData)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/smoke/NewIbSmokeTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/smoke/NewIbSmokeTest.java new file mode 100644 index 0000000..43e87ca --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/newib/smoke/NewIbSmokeTest.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.channels.digital.ib.newib.smoke; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Smoke test") +public class NewIbSmokeTest { + Credentials clientCredentials; + + @BeforeAll + public void getCredentials(Harness harness) { + String clientBirthNumber = harness.getConfig("nib.rc.accounts-settings"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + } + + @Order(1) + @TestCase(name = "Vertical menu items test", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9244") + public void verticalMenuItems(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkVerticalMenuItems()); + } + + @Order(2) + @TestCase(name = "Horizontal menu items test", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SB-T9245") + public void horizontalMenuItems(Harness harness) { + NewIbTasks newIbTasks = harness.tasks().newIb(); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(clientCredentials.getUsername(), clientCredentials.getPassword())) + .then(newIbTasks.checkHorizontalMenuItems()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/ChangeIbLimitTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/ChangeIbLimitTest.java new file mode 100644 index 0000000..8a9d598 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/ChangeIbLimitTest.java @@ -0,0 +1,66 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.settings.ib.PasswordAndChannelManagementPage; +import cz.moneta.test.dsl.ib.utils.IbUtils; +import cz.moneta.test.dsl.util.task.ib.IbTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +import java.time.LocalDateTime; + +@TestScenario(name = "Change limit in Internet banking") +public class ChangeIbLimitTest { + private Credentials credentials; + private String clientId; + + @BeforeAll + public void clientData(Harness harness) { + String clientBirthNumber = harness.getConfig("IB.rc.change.limit"); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + + credentials = harness.withUdebs() + .ib() + .usernameAndPassword() + .getUsernameAndPasswordByRc(clientBirthNumber); + } + + @Disabled("Due to rewriting all IB regression tests") + @TestCase(name = "Change limit in Internet banking") + public void changeLimitInIB(Harness harness) { + IbTasks ibTasks = harness.tasks().ib(); + String pattern = "Kč| "; + LocalDateTime localDateTime = LocalDateTime.now(); + + PasswordAndChannelManagementPage passwordAndChannelManagementPage = + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(credentials)) + .goToSettings() + .passwordAndChannelManagement(); + + String actualLimit = passwordAndChannelManagementPage.getActualLimit().replaceAll(pattern, ""); + int limit = Integer.parseInt(actualLimit) - 1; + + passwordAndChannelManagementPage.changeLimit() + .setDailyLimit(limit) + .continueToConfirmPage() + .compareLimit(limit) + .setMobileKeyAndSign(IbTasks.DEFAULT_MOBILE_KEY) + .clickOnchannelManagement(); + + IbUtils.verifyTransactionStatus(harness, localDateTime, clientId, "781", 3); + + int changedLimit = Integer.parseInt(passwordAndChannelManagementPage.getActualLimit().replaceAll(pattern, "")); + + Assertions.assertEquals(limit, changedLimit, "Previous limit is not equal to limit value"); + + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/IbMailTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/IbMailTest.java new file mode 100644 index 0000000..6b08a9f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/IbMailTest.java @@ -0,0 +1,69 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ib.IbTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Create and delete a mail in IB") +public class IbMailTest { + private Credentials credentials; + private String mailSubject; + private String mailMessage; + + @BeforeAll + public void clientData(Harness harness) { + String clientBirthNumber = harness.getConfig("IB.rc.message.user-with-SU"); + mailSubject = RandomStringUtils.randomAlphabetic(15); + mailMessage = RandomStringUtils.randomAlphabetic(15); + + credentials = harness.withUdebs() + .ib() + .usernameAndPassword() + .getUsernameAndPasswordByRc(clientBirthNumber); + } + + @Disabled("Due to rewriting all IB regression tests") + @Order(1) + @TestCase(name = "Create a mail in IB") + public void createMail(Harness harness) { + IbTasks ibTasks = harness.tasks().ib(); + String mailTopic = "Účty"; + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(credentials)) + .messages() + .clickOnWriteNewMail() + .typeMailSubject(mailSubject) + .selectMailTopic(mailTopic) + .typeMailText(mailMessage) + .clickOnSendMail() + .checkInfoText() + .clickOnSentMails() + .openMail(mailSubject) + .compareSentMailData(mailSubject, mailMessage); + } + + @Disabled("Due to rewriting all IB regression tests") + @Order(2) + @TestCase(name = "Delete a mail in IB") + public void deleteMail(Harness harness) { + IbTasks ibTasks = harness.tasks().ib(); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(credentials)) + .messages() + .clickOnSentMails() + .openMail(mailSubject) + .compareSentMailData(mailSubject, mailMessage) + .deleteMail() + .checkDeletedMailInfoText(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/current/AccountTransactionsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/current/AccountTransactionsTest.java new file mode 100644 index 0000000..cd8dbae --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/current/AccountTransactionsTest.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.account.current; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.annotations.JiraTestCase; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "Verify transaction history of current accounts") +public class AccountTransactionsTest { + + @Disabled("Due to rewriting all IB regression tests") + @TestCase(name = "Go to current account and list transaction history") + @JiraTestCase(id="IB-T8244") + void userWithCurrentAccount_shouldSeeTransactionsHistory(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .checkUserHasACurrentAccount() + .clickTransactions() + .checkUserHasSomeTransactions(); + } + + @Disabled("Due to rewriting all IB regression tests") + @TestCase(name = "Go to current account and filter transaction history") + @JiraTestCase(id="IB-T8245") + void userWithCurrentAccount_shouldSeeFilteredTransactionsHistory(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .checkUserHasACurrentAccount() + .clickTransactions() + .clickFilterTransactions() + .checkUserHasSomeTransactions(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/directdebit/DirectDebitTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/directdebit/DirectDebitTest.java new file mode 100644 index 0000000..9137cb0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/directdebit/DirectDebitTest.java @@ -0,0 +1,108 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.account.directdebit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.utils.IbUtils; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import java.time.LocalDateTime; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Verify new direct debit order") +public class DirectDebitTest { + private static final String MOBILE_KEY = "12341234"; + private static final String DIRECT_DEBIT_CONTENT = "Limit inkasa"; + private String birthNumber, clientID; + private Credentials udebsCredentials; + private LocalDateTime testExecutionStartTime; + + @BeforeAll + public void getInfo(Harness harness) { + birthNumber = harness.getConfig("IB.rc.direct-debit"); + clientID = harness.withUdebs().usersTable().getClientId(birthNumber); + udebsCredentials = harness.withUdebs() + .ib() + .usernameAndPassword() + .getUsernameAndPasswordByRc(birthNumber); + } + + @Disabled + @Order(1) + @TestCase(name = "Create new direct debit order", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8262") + void userWithCurrentAccount_shouldCreateNewDirectDebitOrder(Harness harness) { + testExecutionStartTime = LocalDateTime.now(); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickAccountsAndTransactions() + .clickStandingOrders() + .clicNewDirectDebidOrder() + .clickFromAccountSelect() + .getAndFillAccountFromNumber() + .fillToAccountBank("3030") + .fillUserNote("New incasso from automated test") + .fillDirectDebitLimit("100") + .fillEndDate("29.05.2040") + .clickContinueButton() + .typeSmsCode(MOBILE_KEY) + .clickSign() + .clickDirectDebitList(); + + IbUtils.verifyTransactionStatus(harness, testExecutionStartTime, clientID, "333", 60); + } + + @Disabled + @Order(2) + @TestCase(name = "Change of existing direct debit order", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8263") + void userWithCurrentAccount_shouldChangeDirectDebitOrder(Harness harness) { + testExecutionStartTime = LocalDateTime.now(); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickAccountsAndTransactions() + .clickStandingOrders() + .clickChangeDirectDebit() + .fillUserNote("Changed incasso from automated test") + .fillDirectDebitLimit("200") + .fillEndDate("28.11.2039") + .clickContinueButton() + .checkDirectDebitLimitPresence(DIRECT_DEBIT_CONTENT) + .typeSmsCode(MOBILE_KEY) + .clickSign() + .clickDirectDebitList(); + + IbUtils.verifyTransactionStatus(harness, testExecutionStartTime, clientID, "355", 60); + } + + @Disabled + @Order(3) + @TestCase(name = "Delete existing direct debit order", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8264") + void userWithCurrentAccount_shouldCancelDirectDebitOrder(Harness harness) { + testExecutionStartTime = LocalDateTime.now(); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickAccountsAndTransactions() + .clickStandingOrders() + .clickCancelDirectDebit() + .checkDirectDebitLimitPresence(DIRECT_DEBIT_CONTENT) + .typeSmsCode(MOBILE_KEY) + .clickSign() + .clickBack(); + + IbUtils.verifyTransactionStatus(harness, testExecutionStartTime, clientID, "355", 60); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/saving/EstablishmentOfSavingsAccount.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/saving/EstablishmentOfSavingsAccount.java new file mode 100644 index 0000000..50d9687 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/saving/EstablishmentOfSavingsAccount.java @@ -0,0 +1,126 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.account.saving; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import java.text.SimpleDateFormat; +import java.util.Date; + +@TestScenarioWithOrder(name = "Opening and cancel a savings account in Internet Bank") +public class EstablishmentOfSavingsAccount { + private static final String ACCOUNT_NAME = "TestSavingAccount"; + private static final String SMS_KEY = "12341234"; + private static final String CHANNEL_ID = "15"; + private static final String EXPECTED_STATUS_SAVING_ACCOUNT = "60"; + private Credentials credentials; + private String clientId; + + private String nowDateTimeWithFromat() { + Date nowDateTime = new Date(); + SimpleDateFormat createdAccountDateTime = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); + return createdAccountDateTime.format(nowDateTime); + } + + @BeforeAll + public void createClientWithBuAndIb(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + NewClientWithCurrentAccountInformation newCustomerWithCurrentAccountAndIb = harness.dataPrepare() + .createNewFoCustomerWithCurrentAccountAndIbViaWso2(banker.getUsername()); + + String clientBirthNumber = newCustomerWithCurrentAccountAndIb.getClientData().birthNumber(); + + credentials = harness.tasks().wso2().idm().getIbCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + } + + @Disabled + @Order(1) + @TestCase(name = "Establishment saving account for new client in Internet Bank", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id="IB-T8528") + public void establishmentOfSavingAccountForNewClient(Harness harness) { + String operIdCreatedSavingAccount = "332"; + String operIdDocuments = "334"; + int numberOfExpectedDocument = 6; + + harness.log("ClientID is: " + clientId); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .checkAndConfirmCookies() + .clickSavings() + .clickButtonEstablishmentOnlineSavingAccount() + .fillInAccountName(ACCOUNT_NAME) + .selectTaxJurisdiction("Česká republika") + .confirmCheckPrecontractualInformation() + .confirmCheckProductionConditions() + .clickToContinueButton() + .fillInSmsKey(SMS_KEY) + .clickToConfirmationButton() + .clickLogOff(); + + String dateTimeCreatedSavingAccount = nowDateTimeWithFromat(); + harness.log("Create saving account: " + dateTimeCreatedSavingAccount); + + String statusCreatedSavingAccount = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, operIdCreatedSavingAccount, CHANNEL_ID, 180, EXPECTED_STATUS_SAVING_ACCOUNT); + Assertions.assertEquals(EXPECTED_STATUS_SAVING_ACCOUNT, statusCreatedSavingAccount, "Status of created saving account is not equals expected status"); + + int numberOfCreatedDocuments = harness.withUdebs() + .transactionsClient() + .delayAndGetNumberOfTransactionsCreatedDocuments(clientId, operIdDocuments, CHANNEL_ID, dateTimeCreatedSavingAccount, 330); + harness.log("Number of drocuments transactions in UDEBS: " + numberOfCreatedDocuments); + Assertions.assertEquals(numberOfExpectedDocument, numberOfCreatedDocuments, "Number of created documents transactions is not equale number of expected transactions"); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickToMyDocuments() + .checkDocumentName("Předsmluvní informace spořicího účtu") + .checkDocumentName("Parametry spořicího účtu") + .checkDocumentName("Úrokový lístek") + .checkDocumentName("Sazebník poplatků za produkty a služby") + .checkDocumentName("Ostatní produktové podmínky") + .clickSavings() + .clickToSpecificSavingAccountOnSavingAccountPage(ACCOUNT_NAME); + } + + @Disabled + @Order(2) + @TestCase(name = "Cancel saving account for client in Internet Bank", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id="IB-T8529") + public void cancelSavingAccountToClient(Harness harness) { + String operIdCancelingSavingAccount = "352"; + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .checkAndConfirmCookies() + .clickSavings() + .clickToSpecificSavingAccountOnSavingAccountPage(ACCOUNT_NAME) + .clickToCancel() + .clickToContinueButton() + .fillInMobileKey(SMS_KEY) + .clickSignButton() + .clickLogOff(); + + String statusCreatedSavingAccount = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, operIdCancelingSavingAccount, CHANNEL_ID, 120, EXPECTED_STATUS_SAVING_ACCOUNT); + Assertions.assertEquals(EXPECTED_STATUS_SAVING_ACCOUNT, statusCreatedSavingAccount, "Status of created saving account is not equals expected status"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/saving/SavingAccountsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/saving/SavingAccountsTest.java new file mode 100644 index 0000000..25683ec --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/saving/SavingAccountsTest.java @@ -0,0 +1,23 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.account.saving; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.annotations.JiraTestCase; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "Verify saving accounts") +public class SavingAccountsTest { + + @Disabled + @TestCase(name = "Login into IB using Mobile Key and list saving accounts") + @JiraTestCase(id="IB-T8243") + void anyUser_shouldSeeListOfSavingAccounts(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickSavings(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/saving/TransferOfFoundsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/saving/TransferOfFoundsTest.java new file mode 100644 index 0000000..eead627 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/saving/TransferOfFoundsTest.java @@ -0,0 +1,217 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.account.saving; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ib.IbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.data.Browser; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import java.text.SimpleDateFormat; +import java.util.Date; + +import static cz.moneta.test.dsl.ib.welcome.WelcomePage.CURRENT_ACCOUNT_DISPO_KEY; +import static cz.moneta.test.dsl.ib.welcome.WelcomePage.SAVING_ACCOUNT_DISPO_KEY; +import static cz.moneta.test.dsl.util.task.ib.IbTasks.DEFAULT_MOBILE_KEY; + +@TestScenarioWithOrder(name = "Transfer of founds between current account and saving account", browsers = Browser.GOOGLE_CHROME) +public class TransferOfFoundsTest { + private static final String CHANNEL_ID = "15"; + private static final String EXPECTED_STATUS_SAVING_ACCOUNT = "60"; + private static final String OPER_ID_TRANSACTION_353 = "353"; + private static final String OPER_ID_TRANSACTION_354 = "354"; + String clientId; + Credentials clientCredentials; + String amountToTransfer = "1,00"; + + private double parseDispoFromStoreElementContentIb(Harness harness, String keyStoreElementContentIb) { + String parsedAvailableBalance = harness.get(keyStoreElementContentIb) + .toString() + .replaceAll("\\s", "") + .replace("Kč", "") + .replace(",", "."); + return Double.valueOf(parsedAvailableBalance); + } + + private double calculateDisponibileBalanceAfterTest(Harness harness, String keyStoreElementContentIb) { + double dispoValueAfterCalculate = parseDispoFromStoreElementContentIb(harness, keyStoreElementContentIb); + return dispoValueAfterCalculate + Double.valueOf(amountToTransfer.replace(",", ".")); + } + + private double calculateDisponibileBalanceFromSavingAccountAfterTest(Harness harness, String keyStoreElementContentIb) { + double dispoValueAfterCalculate = parseDispoFromStoreElementContentIb(harness, keyStoreElementContentIb); + return dispoValueAfterCalculate - Double.valueOf(amountToTransfer.replace(",", ".")); + } + + private String nowDateTimeWithFormat() { + Date nowDateTime = new Date(); + SimpleDateFormat createdAccountDateTime = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); + return createdAccountDateTime.format(nowDateTime); + } + + @BeforeEach + public void getCredentialsFromUdebs(Harness harness) { + String clientBirthNumber = harness.getConfig("IB.rc.transfer-founds"); + + clientCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(clientBirthNumber); + } + + @Disabled + @Order(1) + @TestCase(name = "Transfer of founds from current account to saving account in IB", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id="IB-T8530") + public void transferOfFoundsFromCurrentAccountToSavingAccount(Harness harness) { + IbTasks ibTasks = harness.tasks() + .ib(); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(clientCredentials)) + .then(ibTasks.transferOfFoundsSavingAccount()) + .inputAmountToTransfer(amountToTransfer) + .checkElementsTransferToSavingAccount() + .clickToContinueButton() + .checkValuesToTransactionToSavingAccount(amountToTransfer) + .clickToWithoutSignButton() + .clickToOverviewSavingAccounts() + .clickLogOff(); + + String dateTimeCreatedSavingAccount = nowDateTimeWithFormat(); + harness.log("Create transaction: " + dateTimeCreatedSavingAccount); + + String statusTransaction = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, OPER_ID_TRANSACTION_353, CHANNEL_ID, 60, dateTimeCreatedSavingAccount, EXPECTED_STATUS_SAVING_ACCOUNT); + Assertions.assertEquals(EXPECTED_STATUS_SAVING_ACCOUNT, statusTransaction, "Status of created transaction is not equals expected status"); + + double expectedDispoSavingAccount = calculateDisponibileBalanceAfterTest(harness, SAVING_ACCOUNT_DISPO_KEY); + harness.log("Dispo saving account before test " + expectedDispoSavingAccount); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(clientCredentials)) + .getDispoSavingAccount() + .clickLogOff(); + + double dispoSavingAccountAfterTest = parseDispoFromStoreElementContentIb(harness, SAVING_ACCOUNT_DISPO_KEY); + harness.log("Dispo saving account after test " + dispoSavingAccountAfterTest); + Assertions.assertEquals(expectedDispoSavingAccount, dispoSavingAccountAfterTest, 0, "The disposition balance does not equal the expected after test in IB"); + } + + @Disabled + @Order(2) + @TestCase(name = "Transfer of founds from saving account to current account in IB", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id="IB-T8531") + public void transferOfFoundsFromSavingAccountToCurrentAccount(Harness harness) { + IbTasks ibTasks = harness.tasks() + .ib(); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(clientCredentials)) + .then(ibTasks.transferOfFoundsSavingAccount()) + .chooseTransferFromSavingAccount() + .inputAmountToTransfer(amountToTransfer) + .checkElementsTransferFromSavingAccount() + .clickToContinueButton() + .checkValuesToTransactionFromSavingAccount(amountToTransfer) + .clickToWithoutSignButton() + .clickToOverviewSavingAccounts() + .clickLogOff(); + + String dateTimeCreatedSavingAccount = nowDateTimeWithFormat(); + harness.log("Create transaction: " + dateTimeCreatedSavingAccount); + + String statusTransaction = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, OPER_ID_TRANSACTION_353, CHANNEL_ID, 60, dateTimeCreatedSavingAccount, EXPECTED_STATUS_SAVING_ACCOUNT); + Assertions.assertEquals(EXPECTED_STATUS_SAVING_ACCOUNT, statusTransaction, "Status of created transaction is not equals expected status"); + + double expectedDispoSavingAccount = calculateDisponibileBalanceFromSavingAccountAfterTest(harness, SAVING_ACCOUNT_DISPO_KEY); + harness.log("Dispo saving account before test " + expectedDispoSavingAccount); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(clientCredentials)) + .getDispoSavingAccount() + .clickLogOff(); + + double dispoSavingAccountAfterTest = parseDispoFromStoreElementContentIb(harness, SAVING_ACCOUNT_DISPO_KEY); + harness.log("Dispo saving account after test " + dispoSavingAccountAfterTest); + Assertions.assertEquals(expectedDispoSavingAccount, dispoSavingAccountAfterTest, 0, "The disposition balance does not equal the expected after test in IB"); + + } + + @Disabled + @Order(3) + @TestCase(name = "Transfer of founds from saving account to current account in IB", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id="IB-T8532") + public void transferOfFoundsSaveToSign(Harness harness) { + IbTasks ibTasks = harness.tasks() + .ib(); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(clientCredentials)) + .then(ibTasks.transferOfFoundsSavingAccount()) + .inputAmountToTransfer(amountToTransfer) + .checkElementsTransferToSavingAccount() + .clickToContinueButton() + .checkValuesToTransactionToSavingAccount(amountToTransfer) + .clickSaveToSignButton() + .clickToWelcomePageButton() + .then(ibTasks.transferOfFoundsSavingAccount()) + .chooseTransferFromSavingAccount() + .checkElementsTransferFromSavingAccount() + .inputAmountToTransfer(amountToTransfer) + .clickToContinueButton() + .clickSaveToSignButton() + .clickPaymentsToSingButton() + .clicSelectAll() + .clicSignSelected() + .clickSign() + .typeSmsCode(DEFAULT_MOBILE_KEY) + .clickSignSms() + .clickLogOff(); + + String dateTimeCreatedSavingAccount = nowDateTimeWithFormat(); + harness.log("Create transaction: " + dateTimeCreatedSavingAccount); + + double dispoSavingAccountBeforeTest = parseDispoFromStoreElementContentIb(harness, SAVING_ACCOUNT_DISPO_KEY); + double dispoCurrentAccountBeforeTest = parseDispoFromStoreElementContentIb(harness, CURRENT_ACCOUNT_DISPO_KEY); + + String statusTransaction353 = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, OPER_ID_TRANSACTION_353, CHANNEL_ID, 60, dateTimeCreatedSavingAccount, EXPECTED_STATUS_SAVING_ACCOUNT); + Assertions.assertEquals(EXPECTED_STATUS_SAVING_ACCOUNT, statusTransaction353, "Status of created transaction 353 is not equals expected status 60"); + + String statusTransaction354 = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientId, OPER_ID_TRANSACTION_354, CHANNEL_ID, 0, dateTimeCreatedSavingAccount, EXPECTED_STATUS_SAVING_ACCOUNT); + Assertions.assertEquals(EXPECTED_STATUS_SAVING_ACCOUNT, statusTransaction354, "Status of created transaction 354 is not equals expected status 60"); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(clientCredentials)) + .getDispoSavingAccount() + .getDispoCurrentAccount() + .clickLogOff(); + + double dispoSavingAccountAfterTest = parseDispoFromStoreElementContentIb(harness, SAVING_ACCOUNT_DISPO_KEY); + double dispoCurrentAccountAfterTest = parseDispoFromStoreElementContentIb(harness, CURRENT_ACCOUNT_DISPO_KEY); + Assertions.assertEquals(dispoSavingAccountBeforeTest, dispoSavingAccountAfterTest, 0, "The disposition balance on saving account does not equal the expected after test in IB"); + Assertions.assertEquals(dispoCurrentAccountBeforeTest, dispoCurrentAccountAfterTest, 0, "The disposition balance on current account does not equal the expected after test in IB"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/sipopayment/SipoOrderTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/sipopayment/SipoOrderTest.java new file mode 100644 index 0000000..d26bd06 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/sipopayment/SipoOrderTest.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.account.sipopayment; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.data.generators.SipoGenerator; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Verify new sipo order") +public class SipoOrderTest { + + @Disabled + @TestCase(name = "Create new sipo order", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8265") + void userWithCurrentAccount_shouldCreateNewSipoOrder(Harness harness, @Key("ib.client") Credentials credentials) { + SipoGenerator sipoGenerator = new SipoGenerator(); + String sipo = sipoGenerator.generate(harness); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickStandingOrders() + .clicNewSipoOrder() + .clickFromAccountSelect() + .fillSipoNumber(sipo) + .fillSipoLimit("100") + .fillEndDate("12.2040") + .clickContinueButton() + .typeSmsCode("12341234") + .clickSign() + .clickSipoList(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/standingorder/StandingOrderTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/standingorder/StandingOrderTest.java new file mode 100644 index 0000000..82ee93d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/account/standingorder/StandingOrderTest.java @@ -0,0 +1,39 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.account.standingorder; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "Verify Create Standing Orders") +public class StandingOrderTest { + + @Disabled("Due to rewriting all IB regression tests") + @TestCase(name = "Go to account page and create standing order") + @JiraTestCase(id = "IB-T8259") + void userWithCurrentAccount_shouldCreateStandingOrder(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickStandingOrders() + .clickNewStandingOrder() + .clickAccountSelect() + .fillPartnerAccountBank("0600") + .fillPartnerAccount("0215793693") + .fillOrderName("Testovací jméno") + .fillAmount("1") + .fillVariableSymbol("124") + .fillConstSymbol("85") + .fillSpecificSymbol("158") + .fillMessage("testovací TP") + .clickContinue() + .clickSign() + .typeSmsCode("12341234") + .clickSend() + .clickListStandingOrderButton(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/authentication/LoginVariantsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/authentication/LoginVariantsTest.java new file mode 100644 index 0000000..4597eac --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/authentication/LoginVariantsTest.java @@ -0,0 +1,29 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.authentication; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "IB clickLogin type variations test") +public class LoginVariantsTest { + + @Disabled("Due to rewriting all IB regression tests") + @TestCase(name = "Login into IB using Mobile Key") + @JiraTestCase(id = "IB-T8242") + void userWithMobileKey_shouldLoginWithMobileKey(Harness harness, @Key("ib.client") Credentials client) { + harness.withIB() + .openLoginPage() + .typeUsername(client.getUsername()) + .typePassword(client.getPassword()) + .clickLogin() + .onAuthMobileKeyPage() + .fillMobileKey("12341234") + .clickLogin() + .onWelcomePage() + .checkWelcomePageImageIsPresent(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/disponents/DisponentsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/disponents/DisponentsTest.java new file mode 100644 index 0000000..b862f41 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/disponents/DisponentsTest.java @@ -0,0 +1,395 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.disponents; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.settings.ib.ediponents.ConfirmSetDiponentPage; +import cz.moneta.test.dsl.ib.settings.ib.ediponents.DisponentsOverview; +import cz.moneta.test.dsl.ib.welcome.WelcomePage; +import cz.moneta.test.dsl.util.task.ib.IbTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.endpoints.ib.IbEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.web.Lookup; +import org.junit.jupiter.api.*; + +import java.util.Arrays; +import java.util.List; + +import static cz.moneta.test.dsl.util.task.ib.IbTasks.DEFAULT_MOBILE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Test scenario to set disponents rights and send payments") +public class DisponentsTest { + private Credentials mainUserCredentials; + private Credentials activeUserCredentials; + private Credentials pasiveUserCredentials; + private String clientIdManinUser; + private String SAVING_ACCOUNT = "Spořicí účet"; + private String CURRENT_ACCOUNT = "Běžný účet"; + private String EXPRESS_ACCOUNT = "Expres"; + private String AUTOMATICLLY_ADDED_NEW_ACCOUNT = "Automaticky přidávat nové účty"; + private String LIMIT = "50000"; + private String OPERID_CHANGE_RIGHTS = "471"; + private String EXPECTED_STATUS_CHANGE_RIGHTS = "60"; + private String CHANNEL_ID = "15"; + private String ACCOUNT_NUMBER_TO_SEND = "123"; + private String ACCOUNT_BANK_TO_SEND = "0600"; + private String AMOUNT_TO_SEND = "1"; + private String statusTransactionActiveUser; + private String statusTransactionPasiveUser; + private String currentAccountNumber; + private String activeDisponentName; + private String pasiveDisponentName; + private String mainUserName; + private boolean isActiveSetRightsToMinimum; + private boolean isPasiveSetRightsToMinimum; + private boolean isActiveSetAutomaticllyAddedNewAccount; + private boolean isPasiveSetAutomaticllyAddedNewAccount; + + private Credentials getCredentialsByRc(Harness harness, String keyInConfigForBirthNumber) { + String clientBirthNumber = harness.getConfig(keyInConfigForBirthNumber); + return harness.tasks() + .udebs() + .findCredentialsByRC(clientBirthNumber); + } + + @BeforeAll + public void prepareDataForTests(Harness harness) { + mainUserCredentials = getCredentialsByRc(harness, "IB.rc.diponents-main-user"); + activeUserCredentials = getCredentialsByRc(harness, "IB.rc.diponents-active-user"); + pasiveUserCredentials = getCredentialsByRc(harness, "IB.rc.diponents-pasive-user"); + currentAccountNumber = harness.getConfig("IB.rc.diponents-current-account-number"); + + clientIdManinUser = harness.withUdebs() + .usersTable() + .getClientId(harness.getConfig("IB.rc.diponents-main-user")); + + } + + @Disabled + @Order(1) + @TestCase(name = "Test case for set disponents rights to minimum level", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8533") + public void setDisponibileRightsToMinimum(Harness harness) { + IbTasks ibTasks = harness.tasks().ib(); + + DisponentsOverview activeDisponent = harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(mainUserCredentials)) + .getNameFromWelcomePage() + .goToSettings() + .clickToEdisponentsAdministration() + .getActiveDisponentName(activeUserCredentials.getUsername()) + .chooseDisponent(activeUserCredentials.getUsername()) + .clickToChangeSettings() + .rightsForAccountsClicksToCheckboxes(Arrays.asList(SAVING_ACCOUNT, EXPRESS_ACCOUNT)) + .clickToContinueButtonWithoutSelection() + .accpetAlertWindow() + .clickCheckboxPaymentsLimits() + .typeLimit(LIMIT) + .rightsForAccountsClickToCheckbox(CURRENT_ACCOUNT) + .clickToContinueButton() + .checkPaymentLimit(LIMIT) + .checkSetAccountName(CURRENT_ACCOUNT) + .fillInMobileKey(DEFAULT_MOBILE_KEY) + .clickSign() + .clickOverviewDisponents(); + + isActiveSetRightsToMinimum = true; + + statusTransactionActiveUser = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientIdManinUser, OPERID_CHANGE_RIGHTS, CHANNEL_ID, 60, EXPECTED_STATUS_CHANGE_RIGHTS); + Assertions.assertEquals(EXPECTED_STATUS_CHANGE_RIGHTS, statusTransactionActiveUser, "Status of transacaction for active disponent "); + + activeDisponent.clickToDetail(activeUserCredentials.getUsername()) + .checkRightsForAccountAndSmartBank(CURRENT_ACCOUNT); + + DisponentsOverview pasiveDisponent = harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(mainUserCredentials)) + .goToSettings() + .clickToEdisponentsAdministration() + .getPasiveDisponentName(pasiveUserCredentials.getUsername()) + .chooseDisponent(pasiveUserCredentials.getUsername()) + .clickToChangeSettings() + .rightsForAccountsClicksToCheckboxes(Arrays.asList(AUTOMATICLLY_ADDED_NEW_ACCOUNT, CURRENT_ACCOUNT, SAVING_ACCOUNT, EXPRESS_ACCOUNT)) + .clickToContinueButtonWithoutSelection() + .accpetAlertWindow() + .rightsForAccountsClickToCheckbox(CURRENT_ACCOUNT) + .clickToContinueButton() + .checkSetAccountName(CURRENT_ACCOUNT) + .fillInMobileKey(DEFAULT_MOBILE_KEY) + .clickSign() + .clickOverviewDisponents(); + + isPasiveSetRightsToMinimum = true; + + statusTransactionPasiveUser = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientIdManinUser, OPERID_CHANGE_RIGHTS, CHANNEL_ID, 60, EXPECTED_STATUS_CHANGE_RIGHTS); + Assertions.assertEquals(EXPECTED_STATUS_CHANGE_RIGHTS, statusTransactionPasiveUser, "Status of transacaction for pasive disponent"); + + pasiveDisponent.clickToDetail(pasiveUserCredentials.getUsername()) + .checkRightsForAccountAndSmartBank(CURRENT_ACCOUNT); + + } + + @Disabled + @Order(2) + @TestCase(name = "Test case for check disponents rights and payments", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8534") + public void checkDisponentsRightsAndPayments(Harness harness) { + List notClickableMenuItemsActive = Arrays.asList("Spoření", "karty", "Půjčky", "Hypotéky"); + List notClickableMenuItemsPasive = Arrays.asList("Spoření", "karty", "Půjčky", "Hypotéky", "Investování"); + IbTasks ibTasks = harness.tasks().ib(); + + Assertions.assertTrue(isActiveSetRightsToMinimum && isPasiveSetRightsToMinimum, "One of disponents or both did not have set rights in setDisponibileRightsToMinimum"); + + WelcomePage activeDisponentWelcomePage = harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(activeUserCredentials)) + .checkAndConfirmCookies() + .getNameFromWelcomePage(); + + activeDisponentName = harness.get("MY_NAME").toString().trim(); + + activeDisponentWelcomePage + .checkMainMenuItemsIsNotClickable(notClickableMenuItemsActive) + .clickAccountsAndTransactions() + .checkExistJustCurrentAccount(currentAccountNumber) + .then(ibTasks.paymentsIbTasks().preparePaymentToSignatureFromActiveDisponent(CURRENT_ACCOUNT, ACCOUNT_NUMBER_TO_SEND, ACCOUNT_BANK_TO_SEND, AMOUNT_TO_SEND)) + .then(ibTasks.paymentsIbTasks().preparePaymentToSignatureFromActiveDisponent(CURRENT_ACCOUNT, ACCOUNT_NUMBER_TO_SEND, ACCOUNT_BANK_TO_SEND, AMOUNT_TO_SEND)) + .then(ibTasks.paymentsIbTasks().preparePaymentToSignatureFromActiveDisponent(CURRENT_ACCOUNT, ACCOUNT_NUMBER_TO_SEND, ACCOUNT_BANK_TO_SEND, AMOUNT_TO_SEND)) + .then(ibTasks.paymentsIbTasks().rejectPaymentForSignature(activeDisponentName)) + .clickPaymentsWaitingForSignature() + .selectAuthorPaymentAndClickShowButton(activeDisponentName) + .selectAuthorPaymentAndClickShowButton(activeDisponentName) + .selectFirstPayment() + .clickSignSelectedButton() + .clickSign() + .typeSmsCode(DEFAULT_MOBILE_KEY) + .clickSignSms() + .clickNewDomesticPaymentOrder() + .selectFromAccountByName(CURRENT_ACCOUNT) + .fillToAccountNumber(ACCOUNT_NUMBER_TO_SEND) + .fillToAccountBank(ACCOUNT_BANK_TO_SEND) + .fillAmount(AMOUNT_TO_SEND) + .clickInstantPayment() + .clickContinueButton() + .clickSign() + .typeSmsCode(DEFAULT_MOBILE_KEY) + .clickSend(); + + WelcomePage pasiveDisponentWelcomePage = harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(pasiveUserCredentials)) + .checkAndConfirmCookies() + .getNameFromWelcomePage(); + + pasiveDisponentName = harness.get("MY_NAME").toString().trim(); + + pasiveDisponentWelcomePage + .checkMainMenuItemsIsNotClickable(notClickableMenuItemsPasive) + .clickAccountsAndTransactions() + .checkExistJustCurrentAccount(currentAccountNumber) + .then(ibTasks.paymentsIbTasks().preparePaymentToSignatureFromPasiveDisponent(CURRENT_ACCOUNT, ACCOUNT_NUMBER_TO_SEND, ACCOUNT_BANK_TO_SEND, AMOUNT_TO_SEND)) + .then(ibTasks.paymentsIbTasks().preparePaymentToSignatureFromPasiveDisponent(CURRENT_ACCOUNT, ACCOUNT_NUMBER_TO_SEND, ACCOUNT_BANK_TO_SEND, AMOUNT_TO_SEND)) + .then(ibTasks.paymentsIbTasks().preparePaymentToSignatureFromPasiveDisponent(CURRENT_ACCOUNT, ACCOUNT_NUMBER_TO_SEND, ACCOUNT_BANK_TO_SEND, AMOUNT_TO_SEND)) + .then(ibTasks.paymentsIbTasks().rejectPaymentForSignature(pasiveDisponentName)); + } + + @Disabled + @Order(3) + @TestCase(name = "Login to main user account and sign payments", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8535") + public void loginToMainUserAndSignPayments(Harness harness) { + IbTasks ibTasks = harness.tasks().ib(); + + Assertions.assertTrue(isActiveSetRightsToMinimum && isPasiveSetRightsToMinimum, "One of disponents or both did not have set rights in setDisponibileRightsToMinimum and did not prepare payments"); + + WelcomePage mainUserWelcomePage = harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(mainUserCredentials)) + .getNameFromWelcomePage(); + + mainUserName = harness.get("MY_NAME").toString().trim(); + + mainUserWelcomePage + .clickAccountsAndTransactions() + .then(ibTasks.paymentsIbTasks().preparePaymentToSignatureFromActiveDisponent(CURRENT_ACCOUNT, ACCOUNT_NUMBER_TO_SEND, ACCOUNT_BANK_TO_SEND, AMOUNT_TO_SEND)) + .then(ibTasks.paymentsIbTasks().preparePaymentToSignatureFromActiveDisponent(CURRENT_ACCOUNT, ACCOUNT_NUMBER_TO_SEND, ACCOUNT_BANK_TO_SEND, AMOUNT_TO_SEND)) + .clickPaymentsWaitingForSignature() + .selectFirstPaymentByAuthor(mainUserName) + .selectFirstPaymentByAuthor(activeDisponentName) + .selectFirstPaymentByAuthor(pasiveDisponentName) + .clickSignSelectedButton() + .clickSign() + .typeSmsCode(DEFAULT_MOBILE_KEY) + .clickSignSms(); + } + + @Disabled + @Order(4) + @TestCase(name = "Login to active user account and sign payments", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8536") + public void loginToActiveUserAndSignPayments(Harness harness) { + IbTasks ibTasks = harness.tasks().ib(); + + Assertions.assertTrue(isActiveSetRightsToMinimum && isPasiveSetRightsToMinimum, "One of disponents or both did not have set rights in setDisponibileRightsToMinimum and did not prepare payments"); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(activeUserCredentials)) + .getNameFromWelcomePage() + .clickAccountsAndTransactions() + .clickPaymentsWaitingForSignature() + .selectFirstPaymentByAuthor(mainUserName) + .selectFirstPaymentByAuthor(pasiveDisponentName) + .clickSignSelectedButton() + .clickSign() + .typeSmsCode(DEFAULT_MOBILE_KEY) + .clickSignSms(); + } + + @Disabled + @Order(5) + @TestCase(name = "Login to main user account, change and check rights for disponents", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8537") + public void changeDispinentsRight(Harness harness) { + IbTasks ibTasks = harness.tasks().ib(); + List automaticllyAddedNewAccount = Arrays.asList(AUTOMATICLLY_ADDED_NEW_ACCOUNT); + List mainMenuItemsToCheck = Arrays.asList("Spoření", "Půjčky"); + + ConfirmSetDiponentPage mainUserConfirmSetDisponentPage = harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(mainUserCredentials)) + .then(ibTasks.disponentsRightsIbTasks().mainUserSetDisponentsRights(activeUserCredentials.getUsername(), automaticllyAddedNewAccount)); + + isActiveSetAutomaticllyAddedNewAccount = true; + + mainUserConfirmSetDisponentPage + .clickToWelcomePageButton() + .then(ibTasks.disponentsRightsIbTasks().mainUserSetDisponentsRights(pasiveUserCredentials.getUsername(), automaticllyAddedNewAccount)); + + isPasiveSetAutomaticllyAddedNewAccount = true; + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(activeUserCredentials)) + .checkMainMenuItemsIsClickable(mainMenuItemsToCheck); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(pasiveUserCredentials)) + .checkMainMenuItemsIsClickable(mainMenuItemsToCheck); + } + + @Disabled + @Order(6) + @TestCase(name = "Login to main user account, change and check rights for disponents", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8538") + public void testToDeactivateDisponents(Harness harness) { + IbTasks ibTasks = harness.tasks().ib(); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(mainUserCredentials)) + .goToSettings() + .clickToEdisponentsAdministration() + .chooseDisponent(activeUserCredentials.getUsername()) + .clickDeactiveDisponentButton() + .checkDeactiveStatusAndClickToContinue() + .checkDeactiveStatusAndSign() + .clickOverviewDisponents() + .chooseDisponent(pasiveUserCredentials.getUsername()) + .clickDeactiveDisponentButton() + .checkDeactiveStatusAndClickToContinue() + .checkDeactiveStatusAndSign() + .clickOverviewDisponents() + .clickLogOff(); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithUsernamePasswordAndMobileKey(activeUserCredentials.getUsername(), activeUserCredentials.getPassword(), DEFAULT_MOBILE_KEY)) + .onNonactiveDisponentWelcomePage() + .checkInformationTextToNonactiveDisponentPage(); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithUsernamePasswordAndMobileKey(pasiveUserCredentials.getUsername(), pasiveUserCredentials.getPassword(), DEFAULT_MOBILE_KEY)) + .onNonactiveDisponentWelcomePage() + .checkInformationTextToNonactiveDisponentPage(); + } + + private void activateInactiveDisponents(Harness harness) { + IbTasks ibTasks = harness.tasks().ib(); + String ACTIVATE_EDISPONENT = "//input[@value='%s']/ancestor::td[@class='listItem']/following-sibling::td[contains(text(),'Neaktivní')]"; + + DisponentsOverview disponentsOverview = harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(mainUserCredentials)) + .goToSettings() + .clickToEdisponentsAdministration(); + + IbEndpoint ibEndpoint = harness.getEndpoint(IbEndpoint.class); + if (ibEndpoint.isElementPresent(String.format(ACTIVATE_EDISPONENT, activeUserCredentials.getUsername()), Lookup.XPATH)) { + disponentsOverview.chooseDisponent(activeUserCredentials.getUsername()) + .clickActivateDisponentButton() + .checkActiveStatusAndClickToContinue() + .checkActiveStatusAndSign() + .clickOverviewDisponents(); + } + + if (ibEndpoint.isElementPresent(String.format(ACTIVATE_EDISPONENT, pasiveUserCredentials.getUsername()), Lookup.XPATH)) { + disponentsOverview.chooseDisponent(pasiveUserCredentials.getUsername()) + .clickActivateDisponentButton() + .checkActiveStatusAndClickToContinue() + .checkActiveStatusAndSign() + .clickOverviewDisponents(); + } + + disponentsOverview.clickLogOff(); + } + + private void revertRightsForDisponent(Harness harness, String usernameDisponent, List namesOfItemsToClickCheckboxes) { + IbTasks ibTasks = harness.tasks().ib(); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(mainUserCredentials)) + .goToSettings() + .clickToEdisponentsAdministration() + .chooseDisponent(usernameDisponent) + .clickToChangeSettings() + .rightsForAccountsClicksToCheckboxes(namesOfItemsToClickCheckboxes) + .clickToContinueButton() + .fillInMobileKey(DEFAULT_MOBILE_KEY) + .clickSign(); + } + + @AfterAll + public void revertDisponibileRight(Harness harness) { + activateInactiveDisponents(harness); + + if (isActiveSetRightsToMinimum && !isActiveSetAutomaticllyAddedNewAccount) { + List nameOfItemsToClicks = Arrays.asList(SAVING_ACCOUNT, EXPRESS_ACCOUNT, CURRENT_ACCOUNT); + revertRightsForDisponent(harness, activeUserCredentials.getUsername(), nameOfItemsToClicks); + harness.log("Rights to active disponent was reverted"); + } + + if (isActiveSetAutomaticllyAddedNewAccount) { + List nameOfItemsToClicks = Arrays.asList(AUTOMATICLLY_ADDED_NEW_ACCOUNT, CURRENT_ACCOUNT); + revertRightsForDisponent(harness, activeUserCredentials.getUsername(), nameOfItemsToClicks); + harness.log("Rights to active disponent was reverted"); + } + + if (isPasiveSetRightsToMinimum && !isPasiveSetAutomaticllyAddedNewAccount) { + List nameOfItemsToClicks = Arrays.asList(AUTOMATICLLY_ADDED_NEW_ACCOUNT); + revertRightsForDisponent(harness, pasiveUserCredentials.getUsername(), nameOfItemsToClicks); + harness.log("Rights to pasive disponent was reverted"); + } + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/flexicredit/ArrangementFlexiCreditTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/flexicredit/ArrangementFlexiCreditTest.java new file mode 100644 index 0000000..e369e15 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/flexicredit/ArrangementFlexiCreditTest.java @@ -0,0 +1,148 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.flexicredit; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.loans.flexicredit.FlexicreditFinalPage; +import cz.moneta.test.dsl.ib.utils.IbUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.dsl.util.task.ib.IbContactDataTasks; +import cz.moneta.test.dsl.util.task.ib.IbTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Random; + +@TestScenarioWithOrder(name = "IB sjednání flexikreditu") +public class ArrangementFlexiCreditTest { + private Credentials credentials; + private LocalDateTime testExecutionStartTime; + private NewClientWithCurrentAccountInformation newClientData; + private IbTasks ibTasks; + private String clientId; + private String currentAccount; + private String udebsBalance; + private String amount = "2000"; + private String flexiCreditParameters = "Parametry Flexikreditu"; + private String specialOverdraft = "Zvláštní ujednání ke kontokorentnímu úvěru Flexikredit"; + private String standardInformation = "Standardní informace o spotřebitelském úvěru"; + + @BeforeAll + public void createClientWithBuAndIb(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + newClientData = harness.tasks() + .dataPrepareTasks() + .createNewFoCustomerWithCurrentAccountAndIbViaWso2(banker.getUsername()); + String birthNumber = newClientData.getClientData().birthNumber(); + + newClientData.getClientData().lastName(); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(birthNumber); + + currentAccount = harness.withUdebs() + .accountNumbers() + .getTopCurrentAccount(birthNumber); + + credentials = harness.tasks().wso2().idm().getIbCredentialsByRC(birthNumber); + + harness.withIlods().setScore("FXON01S3", birthNumber, null); + harness.withIlods().setSegment("CUST_INC_VER", "POI_VALID_STRICTLY", birthNumber, null); + } + + @Disabled + @Order(1) + @TestCase(name = "IB sjednání flexikreditu TEA-594") + public void arrangementFlexiCreditTest(Harness harness) { + testExecutionStartTime = LocalDateTime.now(); + String date = testExecutionStartTime.format(DateTimeFormatter.ofPattern("d.M.yyyy")); + + ibTasks = harness.tasks().ib(); + FlexicreditFinalPage flexicreditFinalPage = + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(credentials)) + .clickLoans() + .flexicreditApplication() + .setLoanAmount(amount) + .clickContinueButton() + .clickContinueButton() + .typeMonthlyIncome("50000") + .typeMonthlyHouseIncome("80000") + .typeOtherMonthlyInstallments("0") + .typeOtherLivingCosts("0") + .typeDeductionsFromSalary("0") + .setResidenceFlag(true) + .clickContinueButton() + .setSecondDocument("Pas") + .agreeAndContinueToOverdraftAmount() + .confirmAndContinueToPreContract() + .readContract() + .readContractAndBack() + .onFlexicreditReadContractInformation() + .contractIsReadAndAgree() + .readContract() + .readContractAndBack() + .onFlexicreditPreparedToSignPage() + .signDocuments() + .typeSmsCodeAndSignDocuments("12341234"); + + IbUtils.verifyTransactionStatus(harness, testExecutionStartTime, clientId, "65", 3); + + flexicreditFinalPage + .backToWelcomePage() + .clickAccountsAndTransactions() + .verifyFlexiCreditAmount(currentAccount, amount) + .clickMyDocuments() + .setDateFrom(date) + .selectGroup("Půjčky") + .showDocuments() + .checkDocumentName(flexiCreditParameters) + .checkDocumentName(specialOverdraft) + .checkDocumentName(standardInformation); + + udebsBalance = harness.withUdebs() + .transactionsClient() + .getAccountBalance(newClientData.getCurrentAccount()).format().replaceAll("\\D+", ""); + + Assertions.assertEquals(amount, udebsBalance, "Balance in UDEBS DB is not equals to set balance "); + } + + @Disabled + @Order(2) + @TestCase(name = "IB - změna kontaktních informací") + public void changeContactInformation(Harness harness) { + ibTasks = harness.tasks().ib(); + String newAddress = "Auomation" + new Random().nextInt(999); + IbContactDataTasks contactDataTasks = harness.tasks().ib().ibContactDataTasks(); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(credentials)) + .goToSettings() + .contactInformation() + .then(contactDataTasks.verifyContactData(newClientData)) + .changeContactData() + .setStreet(newAddress) + .continueToSignPage() + .then(contactDataTasks.verifyContactDataOnSignPage( + newClientData.getClientData().firstName(), + newClientData.getClientData().lastName(), + newAddress, + newClientData.getClientData().residencyAddress().getDescriptiveNumber(), + newClientData.getClientData().residencyAddress().getZip(), + newClientData.getClientData().residencyAddress().getCity(), + newClientData.getClientData().mobileNumber(), + newClientData.getClientData().email())) + .typeMobileKeyAndSendRequest(IbTasks.DEFAULT_MOBILE_KEY) + .overviewContactInformation() + .checkChangedDataText("UPOZORNĚNÍ: Váš požadavek na úpravu kontaktních informací je nyní ve stavu zpracování, další úpravy je možné provádět po jeho dokončení. V případě, že Váš požadavek nebyl zpracován během 24 hodin, kontaktujte náš Zákaznický servis na tel.: 224 443 636."); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/AccidentInsuranceTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/AccidentInsuranceTest.java new file mode 100644 index 0000000..a850914 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/AccidentInsuranceTest.java @@ -0,0 +1,110 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.*; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import java.time.LocalDate; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Verify accident insurance") +public class AccidentInsuranceTest { + + private String birthNumber; + + @BeforeEach + void cancelInsurance(Harness harness) { + birthNumber = harness.getConfig("IB.rc.accident-insurance"); + harness.tasks() + .insuranceTasks() + .setInsuranceStatusTask() + .cancelInsurance(birthNumber); + } + + @Disabled + @Order(1) + @TestCase(name = "Go to insurance page and create accident insurance - variant junior", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8358") + void userWithCurrentAccount_shouldCreateAccidentInsuranceJunior(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + LocalDate bornFrom = LocalDate.now().minusYears(14); + LocalDate bornTo = LocalDate.now(); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickInsurance() + .clickCreateAccidentInsurence() + .clickAccountSelect() + .clickInsuranceSelectJunior() + .fillToFirstName("Jan") + .fillToLastName("Novák") + .fillToIdentificationNumberName(harness.data().newNonClient().birthNumber(bornFrom, bornTo)) + .clickChildrenAgreement() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Úrazové pojištění - varianta Junior"); + } + + @Disabled + @Order(2) + @TestCase(name = "Go to insurance page and create accident insurance - variant adult", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8359") + void userWithCurrentAccount_shouldCreateAccidentInsuranceAdult(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickInsurance() + .clickCreateAccidentInsurence() + .clickAccountSelect() + .clickInsuranceSelectAdult() + .clickInvalidityAgreement() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Úrazové pojištění - varianta Dospělý"); + } + + @Disabled + @Order(3) + @TestCase(name = "Go to insurance page and create accident insurance - variant family", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8360") + void userWithCurrentAccount_shouldCreateAccidentInsuranceFamily(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickInsurance() + .clickCreateAccidentInsurence() + .clickAccountSelect() + .clickInsuranceSelectFamily() + .clickInvalidityAgreement() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Úrazové pojištění - varianta Family"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/ElectronicPaymentInsuranceTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/ElectronicPaymentInsuranceTest.java new file mode 100644 index 0000000..44e7555 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/ElectronicPaymentInsuranceTest.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeEach; +import cz.moneta.test.harness.annotations.JiraTestCase; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Verify electronic payment insurance") +public class ElectronicPaymentInsuranceTest { + + private String birthNumber; + + @BeforeEach + void cancelInsurance(Harness harness) { + birthNumber = harness.getConfig("IB.rc.electronic-payment-insurance"); + harness.tasks() + .insuranceTasks() + .setInsuranceStatusTask() + .cancelInsurance(birthNumber); + } + + @Disabled + @TestCase(name = "Go to insurance page and create electronic payment insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8233") + void userWithCurrentAccount_shouldCreateElectronicPaymentInsurance(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickInsurance() + .clickCreateElectronicPaymentInsurance() + .clickAccountSelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Pojištění elektronických plateb"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/ExhaustedAmountInsuranceTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/ExhaustedAmountInsuranceTest.java new file mode 100644 index 0000000..2afa8e8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/ExhaustedAmountInsuranceTest.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ib.IbTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "Test create exhausted amount insurance for client with Smart credit card in IB") +public class ExhaustedAmountInsuranceTest { + + private String mobileKey = IbTasks.DEFAULT_MOBILE_KEY; + private String birthNumber; + private Credentials userCredentialsIb; + + @BeforeEach + void cancelInsurance(Harness harness) { + birthNumber = harness.getConfig("IB.rc.smart-card"); + + userCredentialsIb = harness.tasks() + .udebs() + .findCredentialsByRC(birthNumber); + + harness.tasks() + .wso2() + .cards() + .deactivateExhaustedAmountInsuranceCreditCard(birthNumber); + } + + @Disabled + @TestCase(name = "Exhausted amount insurance test for client with Smart credit card", environments = Environment.PPE) + void exhaustedAmountInsuranceTestForSmartCard(Harness harness) { + IbTasks taskIb = harness.tasks().ib(); + + harness.withIB() + .openLoginPage() + .then(taskIb.loginWithDefaultMobileKeyAnd(userCredentialsIb)) + .checkAndConfirmCookies() + .clickInsurance() + .clickCreateExhaustedAmountInsurance() + .clickCheckToInformationMaterial() + .clickAgreementWithInsurance() + .clickCountinueButton() + .fillInMobileKey(mobileKey) + .clickSignButton() + .clickCards() + .clickToAdditionalServices() + .waitToAdditional(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/InsuranceOfPropertyCardsAndInternetRisksTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/InsuranceOfPropertyCardsAndInternetRisksTest.java new file mode 100644 index 0000000..09d2bc0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/InsuranceOfPropertyCardsAndInternetRisksTest.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeEach; +import cz.moneta.test.harness.annotations.JiraTestCase; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Verify Insurance of property, cards and internet risks") +public class InsuranceOfPropertyCardsAndInternetRisksTest { + + private String birthNumber; + + @BeforeEach + void cancelInsurance(Harness harness) { + birthNumber = harness.getConfig("IB.rc.property-cards-internetrisks-insurance"); + harness.tasks() + .insuranceTasks() + .setInsuranceStatusTask() + .cancelInsurance(birthNumber); + } + + @Disabled + @TestCase(name = "Go to insurance page and create insurance of property, cards and internet risks", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8232") + void userWithCurrentAccount_shouldCreateInsuranceOfThingsCardsAndInternetRisks(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickInsurance() + .clickCreateInsuranceOfPropertyCardsAndInternetRisks() + .clickAccountSelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/LongTermTravelInsuranceTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/LongTermTravelInsuranceTest.java new file mode 100644 index 0000000..b404bad --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/LongTermTravelInsuranceTest.java @@ -0,0 +1,126 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Verify long-term travel insurance") +public class LongTermTravelInsuranceTest { + + private Credentials credentials; + + @BeforeEach + public void createClientWithBuAndIb(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + NewClientWithCurrentAccountInformation newCustomerWithCurrentAccountAndIb = harness.dataPrepare() + .createNewFoCustomerWithCurrentAccountAndIbViaWso2(banker.getUsername()); + + String clientBirthNumber = newCustomerWithCurrentAccountAndIb.getClientData().birthNumber(); + + credentials = harness.tasks().wso2().idm().getIbCredentialsByRC(clientBirthNumber); + } + + @Disabled + @Order(1) + @TestCase(name = "Go to insurance page and create long-term travel insurance variant Europe-Single", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8228") + void userWithCurrentAccount_shouldCreateLongTermInsuranceEuropeSingle(Harness harness) { + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickInsurance() + .clickCreateLongTermInsurance() + .clickAccountSelect() + .clickRegionEuropeSelect() + .clickVariantSingleSelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Dlouhodobé cestovní pojištění Evropa (single)"); + } + + @Disabled + @Order(2) + @TestCase(name = "Go to insurance page and create long-term travel insurance variant Europe-Family", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8229") + void userWithCurrentAccount_shouldCreateLongTermInsuranceEuropeFamily(Harness harness) { + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickInsurance() + .clickCreateLongTermInsurance() + .clickAccountSelect() + .clickRegionEuropeSelect() + .clickVariantFamilySelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Dlouhodobé cestovní pojištění Evropa (family)"); + } + + @Disabled + @Order(3) + @TestCase(name = "Go to insurance page and create long-term travel insurance variant World-Single", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8230") + void userWithCurrentAccount_shouldCreateLongTermInsuranceWorldSingle(Harness harness) { + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickInsurance() + .clickCreateLongTermInsurance() + .clickAccountSelect() + .clickRegionWorldSelect() + .clickVariantSingleSelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Dlouhodobé cestovní pojištění Svět (single)"); + } + + @Disabled + @Order(4) + @TestCase(name = "Go to insurance page and create long-term travel insurance variant World-Family", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8231") + void userWithCurrentAccount_shouldCreateLongTermInsuranceWorldFamily(Harness harness) { + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickInsurance() + .clickCreateLongTermInsurance() + .clickAccountSelect() + .clickRegionWorldSelect() + .clickVariantFamilySelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Dlouhodobé cestovní pojištění Svět (family)"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/ShortTermTravelInsuranceTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/ShortTermTravelInsuranceTest.java new file mode 100644 index 0000000..9a74de0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/insurance/ShortTermTravelInsuranceTest.java @@ -0,0 +1,126 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Verify short-term travel insurance") +public class ShortTermTravelInsuranceTest { + + private Credentials credentials; + + @BeforeAll + public void createClientWithBuAndIb(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + NewClientWithCurrentAccountInformation newCustomerWithCurrentAccountAndIb = harness.dataPrepare() + .createNewFoCustomerWithCurrentAccountAndIbViaWso2(banker.getUsername()); + + String clientBirthNumber = newCustomerWithCurrentAccountAndIb.getClientData().birthNumber(); + + credentials = harness.tasks().wso2().idm().getIbCredentialsByRC(clientBirthNumber); + } + + @Disabled + @Order(1) + @TestCase(name = "Go to insurance page and create short-term travel insurance variant europe-single", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8224") + void userWithCurrentAccount_shouldCreateShortTermInsuranceEuropeSingle(Harness harness) { + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickInsurance() + .clickCreateShortTermInsurance() + .clickAccountSelect() + .clickRegionEuropeSelect() + .clickVariantSingleSelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Krátkodobé cestovní pojištění Evropa single"); + } + + @Disabled + @Order(2) + @TestCase(name = "Go to insurance page and create short-term travel insurance variant europe-family", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8225") + void userWithCurrentAccount_shouldCreateShortTermInsuranceEuropeFamily(Harness harness) { + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickInsurance() + .clickCreateShortTermInsurance() + .clickAccountSelect() + .clickRegionEuropeSelect() + .clickVariantFamilySelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Krátkodobé cestovní pojištění Evropa family"); + } + + @Disabled + @Order(3) + @TestCase(name = "Go to insurance page and create short-term travel insurance variant world-single", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8226") + void userWithCurrentAccount_shouldCreateShortTermInsuranceWorldSingle(Harness harness) { + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickInsurance() + .clickCreateShortTermInsurance() + .clickAccountSelect() + .clickRegionWorldSelect() + .clickVariantSingleSelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Krátkodobé cestovní pojištění Svět single"); + } + + @Disabled + @Order(4) + @TestCase(name = "Go to insurance page and create short-term travel insurance variant world-family", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8227") + void userWithCurrentAccount_shouldCreateShortTermInsuranceWorldFamily(Harness harness) { + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickInsurance() + .clickCreateShortTermInsurance() + .clickAccountSelect() + .clickRegionWorldSelect() + .clickVariantFamilySelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode("12341234") + .clickSend() + .clickListInsurace() + .checkInsuranceIsFound("Krátkodobé cestovní pojištění Svět family"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/loan/ArrangingExpressLoanTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/loan/ArrangingExpressLoanTest.java new file mode 100644 index 0000000..fa7915a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/loan/ArrangingExpressLoanTest.java @@ -0,0 +1,97 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.loan; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.loans.IbLoanData; +import cz.moneta.test.dsl.ib.utils.IbUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.dsl.util.task.ib.IbTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +import static cz.moneta.test.dsl.util.task.ib.IbTasks.DEFAULT_MOBILE_KEY; + +@TestScenario(name = "TEA-601 – sjednání expres půjčky") +public class ArrangingExpressLoanTest { + private Credentials credentials; + private NewClientWithCurrentAccountInformation newClientData; + private LocalDateTime testExecutionStartTime; + private String clientId; + + @BeforeAll + public void createClientWithBuAndIb(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + newClientData = harness.tasks() + .dataPrepareTasks() + .createNewFoCustomerWithCurrentAccountAndIbViaWso2(banker.getUsername()); + String birthNumber = newClientData.getClientData().birthNumber(); + + credentials = harness.tasks().wso2().idm().getIbCredentialsByRC(birthNumber); + + clientId = harness.withUdebs() + .usersTable() + .getClientId(birthNumber); + + harness.withIlods().setScore("EXON01S2", birthNumber, null); + harness.withIlods().setSegment("CUST_INC_VER", "POI_VALID_STRICTLY", birthNumber, null); + } + + @Disabled + @TestCase(name = "sjednání expres půjčky") + public void arrangingExpressLoan(Harness harness) { + IbTasks ibTasks = harness.tasks().ib(); + IbLoanData ibLoanData = new IbLoanData(); + testExecutionStartTime = LocalDateTime.now(); + ibLoanData.setEmail(RandomStringUtils.randomAlphabetic(6) + "@moneta.cz"); + ibLoanData.setOccupationType("manager/ředitel"); + ibLoanData.setEmploymentSince(DateUtils.getDateWithFormat(LocalDate.now().minusYears(5), "dd.MM.yyyy")); + ibLoanData.setLoanAmount("5000"); + ibLoanData.setLoanTerms("6"); + ibLoanData.setSecondaryDocument("Cestovní pas"); + + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWithDefaultMobileKeyAnd(credentials)) + .clickLoans() + .expressLoan() + .setLoanAmount(ibLoanData.getLoanAmount()) + .setLoanTerms(ibLoanData.getLoanTerms()) + .getDataAndContinueToPersonalData(ibLoanData) + .verifyLoanInformation(ibLoanData.getLoanAmount(), ibLoanData.getLoanTerms(), ibLoanData.getMonthlyInstallment(), ibLoanData.getIntRate()) + .setEmail(ibLoanData.getEmail()) + .selectSecondaryIdType(ibLoanData.getSecondaryDocument()) + .continueToAdditionalInformation() + .continueToPermanentResidenceAndContactAddress() + .continueToEmploymentAndIncomeExpenses() + .backToPermanentResidenceAndContactAddress() + .continueToEmploymentAndIncomeExpenses() + .secOccupationType(ibLoanData.getOccupationType()) + .setEmploymentSince(ibLoanData.getEmploymentSince()) + .setEmploymentCount("1") + .typeAverageIncome("50000") + .typeAverageHomeIncome("80000") + .typeOtherLoans("0") + .typeOtherCosts("0") + .typeWagesDeduction("0") + .setNoneNoticePeriod() + .agreementCheckboxAndContinue() + .wantInsurance() + .toInsure() + .acceptAndContinue() + .continueToSign() + .typeMobileKey(DEFAULT_MOBILE_KEY) + .sendLoanRequest() + .loansOverview() + .verifyExpressLoanData(); + + IbUtils.verifyTransactionStatus(harness, testExecutionStartTime, clientId, "905", 60); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/loan/LoanConsolidation.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/loan/LoanConsolidation.java new file mode 100644 index 0000000..d8e3de9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/loan/LoanConsolidation.java @@ -0,0 +1,98 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.loan; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.loans.consolidationloans.YouRequestToMergeLoansPage; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; + +import java.util.Arrays; +import java.util.List; + +import static cz.moneta.test.dsl.ib.loans.consolidationloans.ConsolidationCalculatorPage.TOTAL_CONSOLIDATION_PAYMENT_KEY; +import static cz.moneta.test.dsl.ib.loans.consolidationloans.ConsolidationCalculatorPage.TOTAL_MONTHLY_PAYMENT_KEY; + +@TestScenario(name = "Loan consolidation for Moneta client in IB") +public class LoanConsolidation { + + private long removeWhitespaceAndParseInLong(String valueInString) { + return Long.parseLong(valueInString.replaceAll("\\s", "")); + } + + private long sumOfValuesFromString(String... values) { + List valuesList = Arrays.asList(values); + return valuesList.stream() + .map(s -> Long.parseLong(s)) + .reduce(0L, Long::sum); + } + + private long calculationTotalConsolidation(String loanRemainingFirst, String loanRemainingSecond, String cardPaymentFirst, String cardPaymentSecond, String overdraftPaymentFirst, String overdraftPaymentSecond) { + return sumOfValuesFromString(loanRemainingFirst, loanRemainingSecond, cardPaymentFirst, cardPaymentSecond, overdraftPaymentFirst, overdraftPaymentSecond); + } + + private long calculationMonthltPayment(String loanPaymentFirst, String loanPaymentSecond, String cardPaymentFirst, String cardPaymentSecond, String overdraftPaymentFirst, String overdraftPaymentSecond) { + long monthlyPayment = sumOfValuesFromString(loanPaymentFirst, loanPaymentSecond); + long dispozition = sumOfValuesFromString(cardPaymentFirst, cardPaymentSecond, overdraftPaymentFirst, overdraftPaymentSecond); + return monthlyPayment + (dispozition / 100 * 5); + } + + @Disabled("Aktualne je proces konsolidace ve starem IB vypnuty") + @TestCase(name = "Client create request to loan consolidation in IB", environments = {Environment.TST1, Environment.PPE}) + public void clientRequestToLoansConsolidationInIb(Harness harness) { + String birthNumber = harness.getConfig("IB.rc.loans-consolidation"); + String loanRemainingFirst = "5000"; + String loanRemainingSecond = "6000"; + String loanRemainingThird = "2000"; + String loanPaymentFirst = "200"; + String loanPaymentSecond = "500"; + String loanPaymentThird = "800"; + String cardPaymentFirst = "6000"; + String cardPaymentSecond = "4000"; + String cardPaymentThird = "2000"; + String overdraftPaymentFirst = "1000"; + String overdraftPaymentSecond = "2000"; + String overdraftPaymentThird = "3000"; + + + Credentials udebsCredentials = harness.tasks() + .udebs() + .findCredentialsByRC(birthNumber); + + YouRequestToMergeLoansPage calculationPage = harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickLoans() + .clickRequirementToConsolidationLoans() + .twoTimesClickToAddAnotherLoanButton() + .fillInInputsLoanFields(loanRemainingFirst, loanRemainingSecond, loanRemainingThird, loanPaymentFirst, loanPaymentSecond, loanPaymentThird) + .selectProvidersInLoanField("Komerční banka, a.s.", "MONETA Money Bank, a.s.", "Provident Financial s.r.o.") + .clickToRemoveButtonInLoanField("3") + .threeTimesClickToAddCreditCardButton() + .fillInInputsCardFields(cardPaymentFirst, cardPaymentSecond, cardPaymentThird) + .selectProvidersInCardField("Česká spořitelna, a.s.", "Hello bank! By Cetelem", "UniCredit Bank") + .clickToRemoveButtonInCardField("3") + .threeTimesClickToAddOverdraftButton() + .fillInInputsOverdraftFields(overdraftPaymentFirst, overdraftPaymentSecond, overdraftPaymentThird) + .selectProvidersInOverdraftField("Air Bank, a.s.", "Raiffeisenbank a.s.", "Home Credit a.s.") + .clickToRemoveButtonInOverdraftField("3") + .getTotalMonthlyPaymentAndConsolidationPaymentValues() + .clickToContinueButton(); + + long totalConsolidationFromIb = removeWhitespaceAndParseInLong(harness.get(TOTAL_CONSOLIDATION_PAYMENT_KEY).toString()); + long totalMonthlyPaymentFromIb = removeWhitespaceAndParseInLong(harness.get(TOTAL_MONTHLY_PAYMENT_KEY).toString()); + long calculateVauleForTotalConsolidation = calculationTotalConsolidation(loanRemainingFirst, loanRemainingSecond, cardPaymentFirst, cardPaymentSecond, overdraftPaymentFirst, overdraftPaymentSecond); + long calculateVauleForMonthlyPayment = calculationMonthltPayment(loanPaymentFirst, loanPaymentSecond, cardPaymentFirst, cardPaymentSecond, overdraftPaymentFirst, overdraftPaymentSecond); + Assertions.assertEquals(calculateVauleForTotalConsolidation, totalConsolidationFromIb); + Assertions.assertEquals(calculateVauleForMonthlyPayment, totalMonthlyPaymentFromIb); + + calculationPage.moveSlidersAndCheckValues() + .clickToInsuranceRadioButton() + .checkLablesInResultTable("Nová výše splátky", "Nová výše úvěru", "Měsíčně ušetříte na splátce") + .fillInLoanAndTermInput("10000", "30") + .clickToRequirementOnlineButton() + .clickContinueToOverviewLoansButton(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/loan/MortgageCalculatorTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/loan/MortgageCalculatorTest.java new file mode 100644 index 0000000..9b8aa96 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/loan/MortgageCalculatorTest.java @@ -0,0 +1,39 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.loan; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "Functionality test of mortgage calculator in Internet bank") +public class MortgageCalculatorTest { + + @Disabled + @TestCase(name = "Test of fields and recalculation mortgage value after change parameters", environments = {Environment.TST1, Environment.PPE}) + public void recalculationMortgagesValues(Harness harness) { + String mortgageAmount = "700000"; + String freeResources = "125000"; + String birthNumber = harness.getConfig("IB.rc.mortgages.calculator"); + + Credentials credentialsIb = harness.withUdebs() + .ib() + .usernameAndPassword() + .getUsernameAndPasswordByRc(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentialsIb)) + .clickMortgages() + .clickToMortgageCalculatorInMenu() + .checkCalculatorInputsPanelElements() + .checkCalculatorRsultPanelElements() + .getMonthlyPaymentAndCheckNotUndefinedValue() + .changeMortgageAmountAndCheckChangeValueMonthlyPayment(mortgageAmount) + .changeFreeResourcesAndCheckChangeValueMonthlyPayment(freeResources) + .changeFixationLenghtAndCheckChangeValueMonthlyPayment() + .insuranceAbilityPaymentAndCheckChangeValueMonthlyPayment() + .clickIAmInterestedButton(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/payment/DomesticPaymentOrderTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/payment/DomesticPaymentOrderTest.java new file mode 100644 index 0000000..94f0917 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/payment/DomesticPaymentOrderTest.java @@ -0,0 +1,193 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.payment; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.annotations.JiraTestCase; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Verify domestic payments") +public class DomesticPaymentOrderTest { + private static final String DATE_FORMAT = "dd.MM.yyyy HH:mm:ss"; + private static final String TO_ACCOUNT_NUMBER = "123"; + private static final String TO_BANK_NUMBER = "0600"; + private static final String MOBILE_KEY = "12341234"; + private static final String VARIABLE_SYMBOL = "1234567890"; + private static final String CONSTANT_SYMBOL = "9876543210"; + private static final String PAYMENT_VALUE = "1"; + + @Disabled + @TestCase(name = "Go to current account and make standard domestic payment", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8237") + void userWithCurrentAccount_shouldCreateNewStandardDomesticPayment(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickNewDomesticPaymentOrder() + .clickFromAccountSelect() + .fillToAccountNumber(TO_ACCOUNT_NUMBER) + .fillToAccountBank(TO_BANK_NUMBER) + .fillAmount(PAYMENT_VALUE) + .fillVariableSymbol(VARIABLE_SYMBOL) + .fillConstantSymbol(CONSTANT_SYMBOL) + .fillNoteForRecipient("My standard payment for You") + .clickStandardPayment() + .fillNote("My standard payment") + .clickCategorySelect() + .clickContinueButton() + .clickSign() + .typeSmsCode(MOBILE_KEY) + .clickSend() + .clickListPaymentOrders(); + } + + @Disabled + @TestCase(name = "Go to current account and make instant domestic payment", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8268") + void userWithCurrentAccount_shouldCreateNewInstantDomesticPayment(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickNewDomesticPaymentOrder() + .clickFromAccountSelect() + .fillToAccountNumber(TO_ACCOUNT_NUMBER) + .fillToAccountBank(TO_BANK_NUMBER) + .fillAmount(PAYMENT_VALUE) + .fillVariableSymbol(VARIABLE_SYMBOL) + .fillConstantSymbol(CONSTANT_SYMBOL) + .fillNoteForRecipient("My instant payment for You") + .clickInstantPayment() + .fillNote("My instant payment") + .clickCategorySelect() + .clickContinueButton() + .clickSign() + .typeSmsCode(MOBILE_KEY) + .clickSend() + .clickListPaymentOrders(); + } + + @Disabled + @TestCase(name = "Go to current account and make priority domestic payment", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8269") + void userWithCurrentAccount_shouldCreateNewPriorityDomesticPayment(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickNewDomesticPaymentOrder() + .clickFromAccountSelect() + .fillToAccountNumber(TO_ACCOUNT_NUMBER) + .fillToAccountBank("0800") + .fillAmount(PAYMENT_VALUE) + .fillVariableSymbol(VARIABLE_SYMBOL) + .fillConstantSymbol(CONSTANT_SYMBOL) + .fillNoteForRecipient("My priority payment for You") + .clickPriorityPayment() + .fillNote("My priority payment") + .clickCategorySelect() + .clickContinueButton() + .clickSign() + .typeSmsCode(MOBILE_KEY) + .clickSend() + .clickListPaymentOrders(); + } + + @Disabled + @TestCase(name = "Go to current account and make transfer between own CZK accoutns", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8361") + void userWithTwoCurrentAccount_shouldCreateNewTransferBetweenOwnAccounts(Harness harness) { + String rcOfClientWithTwoCZKacc = harness.getConfig("IB.rc.user-with-two-CZK-accounts"); + + Credentials udebsCredentials = harness.withUdebs() + .ib() + .usernameAndPassword() + .getUsernameAndPasswordByRc(rcOfClientWithTwoCZKacc); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickAccountsAndTransactions() + .clickNewDomesticPaymentOrder() + .clickTransferBetweenOwnAccounts() + .clickFromFirstAccountSelect() + .clickToSecondOwnAccountSelect() + .fillAmount(PAYMENT_VALUE) + .fillNote("Transfer Between Own Accounts") + .clickContinueButton() + .clickSignTransferBetweenOwnAcc() + .clickListPaymentOrders(); + } + + @Disabled + @TestCase(name = "Go to current account and make mass payment", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8433") + void userWithTwoCurrentAccount_shouldCreateMassPayment(Harness harness) { + String rcOfClientMassPayment = harness.getConfig("IB.rc.mass-payment"); + String clientID = harness.withUdebs().usersTable().getClientId(rcOfClientMassPayment); + LocalDateTime nowDateTime = LocalDateTime.now(); + LocalDateTime plusThreeMinutesDateTime = nowDateTime.plusMinutes(3); + String fromDateTime = DateTimeFormatter.ofPattern(DATE_FORMAT).format(nowDateTime); + String toDateTime = DateTimeFormatter.ofPattern(DATE_FORMAT).format(plusThreeMinutesDateTime); + + Credentials udebsCredentials = harness.withUdebs() + .ib() + .usernameAndPassword() + .getUsernameAndPasswordByRc(rcOfClientMassPayment); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickAccountsAndTransactions() + .clickNewDomesticPaymentOrder() + .clickMassPayment() + .clickFromFirstAccountMassPaymentSelect() + .fillToAccountNumber(TO_ACCOUNT_NUMBER) + .fillToAccountBank(TO_BANK_NUMBER) + .fillAmount(PAYMENT_VALUE) + .fillVariableSymbol(VARIABLE_SYMBOL) + .fillConstantSymbol(CONSTANT_SYMBOL) + .fillNoteForRecipient("Mass payment") + .clickContinueButtonMassPayment() + .clickAddPaymentOrder() + .fillToAccountNumber(TO_ACCOUNT_NUMBER) + .fillToAccountBank(TO_BANK_NUMBER) + .fillAmount(PAYMENT_VALUE) + .fillVariableSymbol(VARIABLE_SYMBOL) + .fillConstantSymbol(CONSTANT_SYMBOL) + .fillNoteForRecipientMassPayment("Mass payment 2") + .clickMassPaymentContinueButton() + .clickSignMassPayment() + .typeSmsCodeMassPayment(MOBILE_KEY) + .clickSendMassPayment() + .clickListMassPaymentOrders(); + + String transactionStatus = harness.withUdebs() + .transactionsClient() + .getLastTransactionStatus(clientID, "340", "15", fromDateTime, toDateTime, 15, "60"); + + Assertions.assertEquals("60", transactionStatus, "Verify that the mass payment transaction is in the correct statusID"); + } + + @Disabled + @TestCase(name = "Go to current account and list waiting payment order", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8238") + void userWithCurrentAccount_shouldSeeListOfWaitingPaymentOrders(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions(); + } +} + + diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/payment/ForeignPaymentOrderTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/payment/ForeignPaymentOrderTest.java new file mode 100644 index 0000000..d9eb47e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/payment/ForeignPaymentOrderTest.java @@ -0,0 +1,115 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.payment; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.annotations.JiraTestCase; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "Verify foreign payments") +public class ForeignPaymentOrderTest { + + @Disabled + @TestCase(name = "Go to current account and make foreign payment") + @JiraTestCase(id="IB-T8239") + void userWithCurrentAccount_shouldCreateNewForeignPayment(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickNewForeignPaymentOrder() + .clickFromAccountSelect() + .fillAmount("10") + .clickCurrencySelect("EUR") + .clickChargeSelect("BEN") + .fillToAccountNumber("CR23015108410026012345") + .fillRecipientName("Karl von Banhof") + .fillRecipientAddress("Dircksenstr. 2") + .fillRecipientCity("10179 Frankfurt") + .fillNote("Note") + .clickContinueButton() + .clickSign() + .typeSmsCode("12341234") + .clickSend() + .clickListPaymentOrders(); + } + + @Disabled + @TestCase(name = "Go to current account and make foreign SEPA payment") + @JiraTestCase(id="IB-T8240") + void userWithCurrentAccount_shouldCreateNewForeignSEPAPayment(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickNewForeignPaymentOrder() + .clickSEPAPayment() + .clickFromAccountSelect() + .fillAmount("1") + .clickCurrencySelect("EUR") + .clickChargeSelect("SHA") + .fillToSEPAAccountNumber("DE89370400440532013000") + .fillRecipientName("Karl von Banhof") + .fillRecipientAddress("Dircksenstr. 2") + .fillRecipientCity("10179 Frankfurt") + .fillNote("Note") + .clickContinueButton() + .clickSign() + .typeSmsCode("12341234") + .clickSend() + .clickListPaymentOrders(); + } + + @Disabled + @TestCase(name = "Foreign currency order between own accounts") + @JiraTestCase(id="IB-T8250") + void userWithTwoCurrentAccount_shouldCreateNewForeignOrderBetweenOwnAccounts(Harness harness){ + String rcOfClientWithCZKandEURacc = harness.getConfig("IB.rc.user-with-CZK-and-EUR-account"); + + Credentials udebsCredentials = harness.withUdebs() + .ib() + .usernameAndPassword() + .getUsernameAndPasswordByRc(rcOfClientWithCZKandEURacc); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickAccountsAndTransactions() + .clickNewForeignPaymentOrder() + .clickForeignPaymentBetweenOwnPayment() + .clickFromFirstAccountSelect() + .clickToOwnSecondAccountSelect() + .fillAmount("1") + .clickCurrencySelect("EUR") + .clickContinueButton() + .clickSign() + .typeSmsCode("12341234") + .clickSend() + .clickListPaymentOrders(); + } + + @Disabled + @TestCase(name = "Foreign currency order within MONETA Money Bank") + @JiraTestCase(id="IB-T8255") + void userWithCurrentAccount_shouldCreateNewForeignOrderBetweenMmbAccounts(Harness harness, @Key("ib.client") Credentials credentials){ + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickNewForeignPaymentOrder() + .clickForeignPaymentBetweenMMBAccountsPayment() + .clickFromAccountSelect() + .fillToMMBAccountNumber("123") + .clickCheckRecipientsAccButton() + .fillAmount("1") + .clickCurrencySelect("CZK") + .clickContinueButton() + .clickSign() + .typeSmsCode("12341234") + .clickSend() + .clickListPaymentOrders(); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/payment/PaymentsWaitingForSignature.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/payment/PaymentsWaitingForSignature.java new file mode 100644 index 0000000..3cc00b4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/payment/PaymentsWaitingForSignature.java @@ -0,0 +1,62 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.payment; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Creating a standard payment waiting for signature and than its signing.") +public class PaymentsWaitingForSignature { + + @Disabled + @Order(1) + @TestCase(name = "Go to current account and make standard payment waiting for signature") + @JiraTestCase(id = "IB-T8258") + void userWithCurrentAccount_shouldCreateNewStandardPaymentWaitingForSignature(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickNewDomesticPaymentOrder() + .clickFromAccountSelect() + .fillToAccountNumber("123") + .fillToAccountBank("0600") + .fillAmount("1") + .fillVariableSymbol("1") + .fillConstantSymbol("308") + .fillNoteForRecipient("My standard payment for You") + .clickStandardPayment() + .fillNote("My standard payment") + .clickCategorySelect() + .clickContinueButton() + .clickSaveToSign(); + } + + @Disabled + @Order(2) + @TestCase(name = "Go to current account and make standard payment waiting for signature") + @JiraTestCase(id = "IB-T8388") + void userWithCurrentAccount_shouldSignAllPaymentsWaitingForSignatuere(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickPaymentsWaitingForSignature() + .clicSelectAll() + .clicSignSelected() + .clickSign() + .typeSmsCode("12341234") + .clickSignSms() + .clickPaymentsWaitingForSignature(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateDomesticPaymentOrder.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateDomesticPaymentOrder.java new file mode 100644 index 0000000..b72f002 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateDomesticPaymentOrder.java @@ -0,0 +1,44 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.templates; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.support.data.GeneratorType; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Verify Create Template domestic payment order") +public class TemplateDomesticPaymentOrder { + + @Disabled + @TestCase(name = "Go to templates page and create template domestic payment order", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8252") + void userWithCurrentAccount_shouldCreateTemplateDomesticPaymentOrder(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickTemplatesSetting() + .clickNewTemplate() + .fillTemplateName(harness.generate(GeneratorType.ICO)) + .clickDomesticAccountSelect() + .fillDomesticPartnerAccount("0216068709") + .fillDomesticPartnerBank("0600") + .fillDomesticAmount("1") + .fillTemplateDomesticVs("158") + .fillTemplateDomesticCs("85") + .fillTemplateDomesticSs("46") + .fillDomesticRecipientMsg("test Domácí příkaz k úhradě") + .clickCategorySelect() + .fillRecipientNote("Recipient note") + .clickNextButton() + .typeSmsCode("12341234") + .clickSendButton() + .clickTemplateOverview(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateForeignBetweenMMBAccounts.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateForeignBetweenMMBAccounts.java new file mode 100644 index 0000000..4bac7a5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateForeignBetweenMMBAccounts.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.templates; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.support.data.GeneratorType; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Verify Create Template foreign payment between MMB accounts") +public class TemplateForeignBetweenMMBAccounts { + + @Disabled + @TestCase(name = "Go to templates page and create template payment between MMB accounts",environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8249") + void userWithCurrentAccount_shouldCreateTemplateBetweenMMBAccounts(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickTemplatesSetting() + .clickNewTemplate() + .clickTypePayment() + .fillTemplateName(harness.generate(GeneratorType.ICO)) + .clickAccountSelect() + .fillPartnerAccount("123") + .clickCheckButton() + .fillTemplateAmount("1") + .clickDetailUrl() + .fillTemplateVs("183") + .fillTemplateCs("58") + .fillTemplateSs("126") + .clickCurrencySelect() + .fillRecipientMsg("Testovací zpráva") + .clickNextButton() + .typeSmsCode("12341234") + .clickSendButton() + .clickTemplateOverview(); + } +} + + diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateForeignBetweenOwnAccounts.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateForeignBetweenOwnAccounts.java new file mode 100644 index 0000000..5b6094e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateForeignBetweenOwnAccounts.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.templates; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; + +import cz.moneta.test.harness.support.data.GeneratorType; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Verify Create Template foreign payment between own accounts") +public class TemplateForeignBetweenOwnAccounts { + + @Disabled + @TestCase(name = "Go to templates page and create template foreign payment between own accounts", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8256") + void userWithCurrentAccount_shouldCreateTemplateBetweenOwnAccounts(Harness harness) { + String rcOfClientWithTwoCZKacc = harness.getConfig("IB.rc.user-with-CZK-and-EUR-account"); + + Credentials udebsCredentials = harness.withUdebs() + .ib() + .usernameAndPassword() + .getUsernameAndPasswordByRc(rcOfClientWithTwoCZKacc); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(udebsCredentials)) + .clickAccountsAndTransactions() + .clickTemplatesSetting() + .clickNewTemplate() + .clickTypeOwnPayment() + .fillTemplateName(harness.generate(GeneratorType.ICO)) + .clickAccountOwnSelect() + .clickSecondOwnAccount() + .fillTemplateAmount("1") + .clickCurrencyOwnSelect() + .clickDetailUrl() + .fillRecipientMsg("Šablona cizoměnové platby mezi vlastními účty") + .clickNextButton() + .typeSmsCode("12341234") + .clickSendButton() + .clickTemplateOverview(); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateForeignSEPA.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateForeignSEPA.java new file mode 100644 index 0000000..e6984f2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ib/oldib/templates/TemplateForeignSEPA.java @@ -0,0 +1,44 @@ +package cz.moneta.test.regression.channels.digital.ib.oldib.templates; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.support.data.GeneratorType; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Verify Create Template foreign SEPA payment") +public class TemplateForeignSEPA { + + @Disabled + @TestCase(name = "Go to templates page and create template of SEPA payment", environments = {TST1, PPE}) + @JiraTestCase(id = "IB-T8254") + void userWithCurrentAccount_shouldCreateTemplateSepaPayment(Harness harness, @Key("ib.client") Credentials credentials) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithDefaultMobileKeyAnd(credentials)) + .clickAccountsAndTransactions() + .clickTemplatesSetting() + .clickNewTemplate() + .clickTypeSepaPayment() + .fillTemplateName(harness.generate(GeneratorType.ICO)) + .clickAccountSepaSelect() + .fillSepaAmount("1") + .fillSepaIban("DE89 3704 0044 0532 0130 00") + .fillSepaPayeeName("Testovaci Klient") + .fillSepaPayeeAddress("KAISERSTRASSE 16") + .fillSepaPayeeAddress2("60261 FRANKFURT AM MAIN") + .clickSepaCountryPayee() + .fillSepaRecipientMsg("testovaci Platba SEPA") + .fillSepaReference("popis") + .clickNextButton() + .typeSmsCode("12341234") + .clickSendButton() + .clickTemplateOverview(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/BrokerProfileTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/BrokerProfileTest.java new file mode 100644 index 0000000..a268a9f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/BrokerProfileTest.java @@ -0,0 +1,27 @@ +package cz.moneta.test.regression.channels.digital.ml.brokersportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.brokerPortal; + +@NonConcurrentTestScenario(name = "Check broker profile") +public class BrokerProfileTest { + + @TestCase(name = "Check broker profile") + @JiraTestCase(id = "ML-T2587") + public void tcCheckBrokerProfile(Harness harness, @Key(brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.menuTasks().clickProfileSettings()) + .clickNotificationsButtons() + .checkCheckboxKompletaceSlozky(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/CalculatorTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/CalculatorTest.java new file mode 100644 index 0000000..444d7a3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/CalculatorTest.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.channels.digital.ml.brokersportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.brokerportal.enums.Client.*; +import static cz.moneta.test.dsl.util.credentials.Keys.brokerPortal; + +@NonConcurrentTestScenario(name = "Calculator Page") +public class CalculatorTest { + private BrokerPortalTasks tasks; + + @BeforeEach + public void setup(Harness harness) { + tasks = harness.tasks().brokerPortal(); + } + + @TestCase(name = "Fill and save calculator") + @JiraTestCase(id = "ML-T150") + public void tcNewContract(Harness harness, @Key(brokerPortal.broker) Credentials broker) { + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.menuTasks().selectProductMortgage()) + .then(tasks.calculatorTasks().fillFullCalculator("1000001")) + .then(tasks.calculatorTasks().calculateAndSaveCalculator()); + } + + @TestCase(name = "Fill and save calculator with more clients") + @JiraTestCase(id = "ML-T168") + public void tcNewContractMoreClients(Harness harness, @Key(brokerPortal.broker) Credentials broker) { + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.menuTasks().selectProductMortgage()) + .then(tasks.calculatorTasks().fillClient(FIRST_CLIENT)) + .then(tasks.calculatorTasks().addAndFillClient(SECOND_CLIENT)) + .then(tasks.calculatorTasks().addAndFillClient(THIRD_CLIENT)) + .then(tasks.calculatorTasks().fillLoan("1000003")) + .then(tasks.calculatorTasks().calculateAndSaveCalculator()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/ContractDetailTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/ContractDetailTest.java new file mode 100644 index 0000000..fd8d252 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/ContractDetailTest.java @@ -0,0 +1,67 @@ +package cz.moneta.test.regression.channels.digital.ml.brokersportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.brokerportal.enums.Client.FIRST_CLIENT; +import static cz.moneta.test.dsl.brokerportal.enums.Client.SECOND_CLIENT; + +@NonConcurrentTestScenario(name = "Contract Detail Page") +public class ContractDetailTest { + + @TestCase(name = "Edit Contact Details") + @JiraTestCase(id = "ML-T2247") + public void tcEditContactDetails(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.menuTasks().selectProductMortgage()) + .then(tasks.calculatorTasks().fillCalculator("1000001")) + .then(tasks.calculatorTasks().calculateAndSaveCalculator()) + .opensContractDetailPage() + .then(tasks.contractDetailTasks().fillAndSaveContactDetails()); + } + + @TestCase(name = "Check assign to bank") + @JiraTestCase(id = "ML-T2589") + public void tcAssingToBank(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.menuTasks().selectProductMortgage()) + .then(tasks.calculatorTasks().fillCalculator("1000001")) + .then(tasks.calculatorTasks().calculateAndSaveCalculator()) + .clickToShortApplicationButton() + .then(tasks.shortApplicationTasks().fillAndConfirmShortApplication()) + .then(tasks.shortApplicationTasks().checkShortApplicationSummary()) + .clickCreateApplicationButton() + .then(tasks.shortApplicationTasks().signShortApplication()) + .clickToContractDetail() + .clickAssignProcessingTeam() + .checkMissingDocument(); + } + + @TestCase(name = "Check checklist upload doc") + @JiraTestCase(id = "ML-T2591") + public void tcCheckChecklistDoc(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.menuTasks().selectProductMortgage()) + .then(tasks.calculatorTasks().fillClient(FIRST_CLIENT)) + .then(tasks.calculatorTasks().addAndFillClient(SECOND_CLIENT)) + .then(tasks.calculatorTasks().fillLoan("1000002")) + .then(tasks.calculatorTasks().calculateAndSaveCalculator()) + .opensContractDetailPage() + .then(tasks.contractDetailTasks().uploadChecklistDoc("Občanský průkaz")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/ContractListTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/ContractListTest.java new file mode 100644 index 0000000..d6f06b1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/ContractListTest.java @@ -0,0 +1,30 @@ +package cz.moneta.test.regression.channels.digital.ml.brokersportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.brokerPortal; + +@NonConcurrentTestScenario(name = "Check contract list") +public class ContractListTest { + + @TestCase(name = "Check contract list") + @JiraTestCase(id = "ML-T2588") + public void tcCheckContractList(Harness harness, @Key(brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + String contractState = "Obchod založen - kontrola OK"; + + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .clickContracts() + .selectState(contractState) + .searchContracts() + .checkContractState(contractState); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/FullApplicationTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/FullApplicationTest.java new file mode 100644 index 0000000..9ed0840 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/FullApplicationTest.java @@ -0,0 +1,35 @@ +package cz.moneta.test.regression.channels.digital.ml.brokersportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.brokerPortal; + +@NonConcurrentTestScenario(name = "Full Application Page") +public class FullApplicationTest { + + @TestCase(name = "Process until sign full application") + @JiraTestCase(id = "ML-T456") + public void tcSignFullApplication(Harness harness, @Key(brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.menuTasks().selectProductMortgage()) + .then(tasks.calculatorTasks().fillCalculator("1000001")) + .then(tasks.calculatorTasks().calculateAndSaveCalculator()) + .clickToShortApplicationButton() + .then(tasks.shortApplicationTasks().fillAndConfirmShortApplication()) + .then(tasks.shortApplicationTasks().checkShortApplicationSummary()) + .clickCreateApplicationButton() + .then(tasks.shortApplicationTasks().signShortApplication()) + .clickToFullApplication() + .then(tasks.fullApplicationTasks().fillAndSaveFullApplication()) + .then(tasks.fullApplicationTasks().signFullApplication()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/LoginTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/LoginTest.java new file mode 100644 index 0000000..a6ec02b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/brokersportal/LoginTest.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.channels.digital.ml.brokersportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.util.credentials.Keys.brokerPortal; + +@NonConcurrentTestScenario(name = "Check login") +public class LoginTest { + private BrokerPortalTasks tasks; + + @BeforeEach + public void setup(Harness harness) { + tasks = harness.tasks().brokerPortal(); + } + + @TestCase(name = "Check correct login") + @JiraTestCase(id = "ML-T154") + public void tcLogin(Harness harness, @Key(brokerPortal.broker) Credentials broker) { + harness.withBrokerPortal() + .openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .checkPresentUserProfile(); + } + + @TestCase(name = "Check forgotten password") + @JiraTestCase(id = "ML-T157") + public void tcForgottenPassword(Harness harness, @Key(brokerPortal.broker) Credentials broker) { + harness.withBrokerPortal() + .openLoginPage() + .clickForgottenPasswordButton() + .fillLogin(broker.getUsername()) + .clickSendButton() + .clickGoToLoginPage(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/CadasterTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/CadasterTest.java new file mode 100644 index 0000000..27b812a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/CadasterTest.java @@ -0,0 +1,75 @@ +package cz.moneta.test.regression.channels.digital.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.CadasterRequestType; +import cz.moneta.test.dsl.hypos.enums.DocumentTemplate; +import cz.moneta.test.dsl.hypos.enums.HyposProfile; +import cz.moneta.test.dsl.hypos.tasks.HyposDbTasks; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.hypos.pages.contract.realty.UnitDetailPage.CONTRACT_ID; + +@TestScenario(name = "Cadaster tests") +public class CadasterTest { + + @TestCase(name = "Check search redoc") + @JiraTestCase(id = "ML-T2609") + public void tcCadasterSearchRedoc(Harness harness) { + harness.withHypos() + .openLoginPage() + .switchToCadasterPage() + .clickCadasterRequestPage() + .selectFilterType(CadasterRequestType.OWNER_LIST.getValue()) + .clickSearchButton() + .clickRedocDetail() + .checkCadasterRequest(); + } + + @TestCase(name = "Check generated documents NnV and ZS") + @JiraTestCase(id = "ML-T2883") + public void tcCadasterGenerateNnvZs(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + String messageDocumentGenerationTimeout = "Document was not generated in 120 seconds interval."; + String lvId = "2869"; + String lvCode = "729795"; + String lvFlatNumber = "592/3"; + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .switchToRealtyPage() + .then(tasks.valuationTasks().searchCadasterRedocDetail(lvCode, lvId)) + .clickFlatUnitDetail(lvFlatNumber) + .getContractId(harness); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(harness.get(CONTRACT_ID))) + .clickProcessChecklist() + .clickPledgeAgreementSubmit() + .clickHomepage(); + + Assertions.assertTrue( + new HyposDbTasks(harness).contractDocumentFinished(harness.get(CONTRACT_ID), DocumentTemplate.DEPOSIT_PROPOSAL), + messageDocumentGenerationTimeout + ); + Assertions.assertTrue( + new HyposDbTasks(harness).contractDocumentFinished(harness.get(CONTRACT_ID), DocumentTemplate.PLEDGE_AGREEMENT), + messageDocumentGenerationTimeout + ); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(harness.get(CONTRACT_ID))) + .clickDocuments() + .selectDraftDocument(DocumentTemplate.DEPOSIT_PROPOSAL.getName()) + .selectDraftDocument(DocumentTemplate.PLEDGE_AGREEMENT.getName()) + .then(tasks.contractTasks().deleteSelectedDocument()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/ContractDetailTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/ContractDetailTest.java new file mode 100644 index 0000000..59a3a38 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/ContractDetailTest.java @@ -0,0 +1,60 @@ +package cz.moneta.test.regression.channels.digital.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.HyposContractState; +import cz.moneta.test.dsl.hypos.enums.HyposProfile; +import cz.moneta.test.dsl.hypos.tasks.HyposDbTasks; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Contract detail tests") +public class ContractDetailTest { + + @TestCase(name = "Check manual fee collection") + @JiraTestCase(id = "ML-T512") + public void tcManualFeeCollection(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + String contractId = new HyposDbTasks(harness).getContractIdWithBuByState(HyposContractState.UVER_SPLACENI); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.contractTasks().cashCollectedFee()); + } + + @TestCase(name = "Check contract detail pages") + @JiraTestCase(id = "ML-T511") + public void tcCheckContractPages(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + String contractId = new HyposDbTasks(harness).getContractIdByState(HyposContractState.UVER_SPLACENI); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(contractId)) + .clickProcessChecklist() + .clickClients() + .clickLoan() + .clickLifeInsurance() + .clickRealtyInsurance() + .clickRealty() + .clickForms() + .clickDocuments() + .clickApprovalChecklist() + .clickCommunication() + .clickNotifications() + .clickWithdrawalRequests() + .clickFees() + .clickPktu() + .clickExternalSources() + .clickUrgent() + .clickScoring() + .clickRetention() + .clickService() + .clickBackOffice() + .clickComplaints(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/ContractTests.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/ContractTests.java new file mode 100644 index 0000000..4845d55 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/ContractTests.java @@ -0,0 +1,280 @@ +package cz.moneta.test.regression.channels.digital.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.contractPrepare.data.ContractDataPrepare; +import cz.moneta.test.dsl.hypos.contractPrepare.process.ContractProcessPrepare; +import cz.moneta.test.dsl.hypos.enums.HyposProfile; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.hypos.HyposContract; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +@NonConcurrentTestScenario(name = "End to end Hypos test scenario") +public class ContractTests { + + @TestCase(name = "Create and draw new contract (product Flexible mortgage) - E2E", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T1159") + public void tcCreateAndDrawFlexibleContract(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("flexibleMortgage/simpleContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } + + @Disabled("Temporarily disabled, replaced by another TC") + @TestCase(name = "Create and draw new contract with life insurance (product Flexible mortgage) - E2E", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T2236") + public void tcCreateAndDrawFlexibleContractWithCardif(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("flexibleMortgage/cardif1ContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillLifeInsuranceData(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } + + @Disabled("Temporarily disabled, replaced by another TC") + @TestCase(name = "Create and draw new contract with two clients (product Flexible mortgage) - E2E", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T2407") + public void tcCreateAndDrawFlexibleContractWithTwoClients(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("flexibleMortgage/twoClientsContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } + + @Disabled("Temporarily disabled, replaced by another TC") + @TestCase(name = "Create and draw new contract (product American mortgage) - E2E", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T1429") + public void tcCreateAndDrawAmericanContract(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("americanMortgage/simpleContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } + + @Disabled("Temporarily disabled, replaced by another TC") + @TestCase(name = "Create and draw new contract with life insurance (product American mortgage) - E2E", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T2237") + public void tcCreateAndDrawAmericanContractWithCardif(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("americanMortgage/cardif1ContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillLifeInsuranceData(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } + + @Disabled("Temporarily disabled, replaced by another TC") + @TestCase(name = "Create and draw new contract with two clients (product American mortgage) - E2E", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T2610") + public void tcCreateAndDrawAmericanContractWithTwoClients(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("americanMortgage/twoClientsContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } + + @Disabled("Temporarily disabled, replaced by another TC") + @TestCase(name = "Create and draw new contract (product Variable Mortgage) - E2E", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T1430") + public void tcCreateAndDrawVariableContract(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("variableMortgage/simpleContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } + + @Disabled("Temporarily disabled, replaced by another TC") + @TestCase(name = "Create and draw new contract with two clients (product Variable mortgage) - E2E", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T2611") + public void tcCreateAndDrawVariableContractWithTwoClients(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("variableMortgage/twoClientsContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } + + @Disabled("Temporarily disabled, replaced by another TC") + @TestCase(name = "Create new contract until draw (product Flexible mortgage)", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T2612") + public void tcCreateFlexibleContractUntilDraw(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + HyposTasks tasks = harness.tasks().hypos(); + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("flexibleMortgage/simpleContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Úvěr podepsán")) + .then(tasks.contractTasks().setLandAreaRegistrationDates()) + .then(tasks.contractTasks().setClientCurrentAccount(hyposContract.getCurrentAccountNumber())) + .then(tasks.contractTasks().approveDrawingConditions()); + } + + @Disabled("Temporarily disabled, replaced by another TC") + @TestCase(name = "Create new contract until draw with 2 clients and Cardif 1 (product Flexible mortgage)", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T3156") + public void tcCreateAndDrawFlexibleContractWithTwoClientsAndCardif1(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("flexibleMortgage/twoClientsCardif1ContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } + + @Disabled("Temporarily disabled, replaced by another TC") + @TestCase(name = "Create new contract until draw with 2 clients and Cardif 1+1 (product Flexible mortgage)", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T3155") + public void tcCreateAndDrawFlexibleContractWithTwoClientsAndCardif2(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("flexibleMortgage/twoClientsCardif2ContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } + + @TestCase(name = "Create new contract until generate US with refinancing and money to account (product Flexible mortgage) - E2E", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T3287") + public void tcCreateAndDrawFlexibleContractWithRefinancing(Harness harness, @Key(Keys.ufo.banka.banker) Credentials banker) { + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("flexibleMortgage/twoTranchesContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + contractProcessPrepare.generateAndSignLoanContractDocuments(hyposContract); + contractProcessPrepare.createCurrentAccount(hyposContract, banker); + contractProcessPrepare.fillDataAndCreateDrawRequest(hyposContract); + contractProcessPrepare.verifyDrawRequest(hyposContract); + contractProcessPrepare.doDrawInIcbs(hyposContract); + contractProcessPrepare.checkContractDrawing(hyposContract); + } + + @TestCase(name = "Create and draw new contract with employee (product Flexible mortgage) - E2E", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + @JiraTestCase(id = "ML-T3288") + public void tcCreateContractUntilSignWithEmployee(Harness harness) { + HyposTasks tasks = harness.tasks().hypos(); + ContractProcessPrepare contractProcessPrepare = new ContractProcessPrepare(harness); + ContractDataPrepare contractDataPrepare = new ContractDataPrepare(harness); + HyposContract hyposContract = contractDataPrepare.prepareContractData("flexibleMortgage/employeeContractData", harness); + + contractProcessPrepare.createNewHypokalkulacka(hyposContract); + contractProcessPrepare.fillDataAndStartPrescoring(hyposContract); + contractProcessPrepare.fillDataAndStartScoringManual(hyposContract); + contractProcessPrepare.approveContract(hyposContract); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(hyposContract.getContractId(), "Úvěr schválen")) + .then(tasks.contractTasks().setEventsFlagsUw2()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/LoginTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/LoginTest.java new file mode 100644 index 0000000..baa09c7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/LoginTest.java @@ -0,0 +1,18 @@ +package cz.moneta.test.regression.channels.digital.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Login tests") +public class LoginTest { + + @TestCase(name = "Check login") + @JiraTestCase(id = "ML-T181") + public void tcLogin(Harness harness) { + harness.withHypos() + .openLoginPage() + .checkSecondaryProfile(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/MptTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/MptTest.java new file mode 100644 index 0000000..4d572ce --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/MptTest.java @@ -0,0 +1,20 @@ +package cz.moneta.test.regression.channels.digital.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Mpt tests") +public class MptTest { + + @TestCase(name = "Check search contracts") + @JiraTestCase(id = "ML-T2608") + public void tcMptSearchContracts(Harness harness) { + harness.withHypos() + .openLoginPage() + .switchToMptPage() + .clickSearchButton() + .checkContractList(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/RiskTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/RiskTest.java new file mode 100644 index 0000000..e8c18b4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/RiskTest.java @@ -0,0 +1,377 @@ +package cz.moneta.test.regression.channels.digital.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.*; +import cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage; +import cz.moneta.test.dsl.hypos.tasks.HyposDbTasks; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.dsl.util.data.hypos.*; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +import java.util.ArrayList; +import java.util.List; + +import static cz.moneta.test.dsl.hypos.enums.Client.*; +import static cz.moneta.test.dsl.hypos.pages.contract.approval.ApVerificationPage.TASK_IDS; +import static cz.moneta.test.dsl.hypos.pages.contract.approval.ScoringPage.AP_ID; +import static cz.moneta.test.dsl.hypos.pages.hypokalkulacka.HypokalkulackaPage.HYPOKALKULACKA_ID; + +@NonConcurrentTestScenario(name = "Scoring test scenario") +public class RiskTest { + List scoringParameters; + private HyposContract hyposContract; + private HyposTasks tasks; + private String hypokalkulackaId, contractId; + + @BeforeAll + public void setup(Harness harness) { + tasks = harness.tasks().hypos(); + + //CLIENT 1 + String birthNumber1 = "9703067132"; + + Address permanentAddress1 = Address.builder() + .street("Pražská") + .descriptiveNumber("121") + .orientationNumber("") + .city("Kolín") + .zip("28002") + .country("CZ") + .build(); + + NonClient nonClient1 = harness.data().newNonClient() + .withBirthNumber(birthNumber1) + .withFirstName("Matěj") + .withLastName("Havlík") + .withEmail(TestUtils.getEmailBasedOnRc(birthNumber1)) + .withPlaceOfBirth("Praha") + .withNationality(ClientNationality.CZ.getValue()) + .withMaritalStatus(MaritalStatus.SINGLE) + .withEducationLevel(EducationLevel.HIGHER) + .withGrossIncome(190000) + .withNetMonthlyIncome(140000) + .withEmployer(Employer.builder().ico("00007064").build()) + .withOccupationStatus(OccupationStatus.FULL_TIME_EMPLOYEE) + .withOccupationEmploymentFromRaw(DateUtils.getSpecificDayRaw(1, 1, 2000)) + .withOccupationType(OccupationType.IT_GUYS) + .withAccommodationType(AccommodationType.PARENTS) + .withResidencyAddress(permanentAddress1); + + BusinessIncome businessIncome1 = BusinessIncome.builder() + .turnoverLatest(800000) + .taxBaseLatest(600000) + .paidTax(200000) + .costAccounting("Daňová evidence") + .naceCode("64921") + .turnoverPenultimate(850000) + .taxBasePenultimate(650000) + .ico("25672720") + .startDate("1.12.2000") + .currency(IncomeCurrency.CZK.getValue()) + .build(); + + List otherIncome1 = new ArrayList() {{ + add(OtherIncome.builder().type(OtherIncomeType.ALIMENT.getValue()).amount("800").currency(IncomeCurrency.CZK.getValue()).build()); + add(OtherIncome.builder().type(OtherIncomeType.PARENTAL_CONTRIBUTION.getValue()).amount("1200").currency(IncomeCurrency.CZK.getValue()).build()); + add(OtherIncome.builder().type(OtherIncomeType.OTHER.getValue()).amount("900").currency(IncomeCurrency.CZK.getValue()).build()); + }}; + + List expenditures1 = new ArrayList(){{ + add(Expenditure.builder() + .type(ExpenditureType.OTHER_CLIENT.getValue()) + .amount("1000") + .correction(CorrectionType.NO_CORRECTION.getValue()) + .build()); + }}; + + HyposClient hyposClient1 = HyposClient.builder() + .nonClient(nonClient1) + .businessIncome(businessIncome1) + .otherIncomes(otherIncome1) + .stayType(StayType.PERMANENT_WITH_PIN.getValue()) + .livingType(LivingType.WITH_PARENTS.getValue()) + .expenditures(expenditures1) + .household("1") + .build(); + + //CLIENT 2 + String birthNumber2 = "9703068738"; + + Address permanentAddress2 = Address.builder() + .street("Vyskočilova") + .descriptiveNumber("1442") + .orientationNumber("1b") + .city("Praha") + .zip("14000") + .country("CZ") + .build(); + + NonClient nonClient2 = harness.data().newNonClient() + .withBirthNumber(birthNumber2) + .withFirstName("Karel") + .withLastName("Havlík") + .withEmail(TestUtils.getEmailBasedOnRc(birthNumber2)) + .withPlaceOfBirth("Praha") + .withNationality(ClientNationality.CZ.getValue()) + .withMaritalStatus(MaritalStatus.SINGLE) + .withEducationLevel(EducationLevel.HIGHER) + .withGrossIncome(150000) + .withNetMonthlyIncome(110000) + .withEmployer(Employer.builder().ico("00007064").build()) + .withOccupationStatus(OccupationStatus.FULL_TIME_EMPLOYEE) + .withOccupationEmploymentFromRaw(DateUtils.getSpecificDayRaw(1, 1, 2000)) + .withOccupationType(OccupationType.IT_GUYS) + .withAccommodationType(AccommodationType.PARENTS) + .withResidencyAddress(permanentAddress2); + + List otherIncome2 = new ArrayList() {{ + add(OtherIncome.builder().type(OtherIncomeType.ALIMENT.getValue()).amount("800").currency(IncomeCurrency.CZK.getValue()).build()); + add(OtherIncome.builder().type(OtherIncomeType.PARENTAL_CONTRIBUTION.getValue()).amount("1200").currency(IncomeCurrency.CZK.getValue()).build()); + add(OtherIncome.builder().type(OtherIncomeType.OTHER.getValue()).amount("900").currency(IncomeCurrency.CZK.getValue()).build()); + }}; + + List expenditures2 = new ArrayList(){{ + add(Expenditure.builder() + .type(ExpenditureType.OTHER_CLIENT.getValue()) + .amount("1000") + .correction(CorrectionType.NO_CORRECTION.getValue()) + .build()); + }}; + + HyposClient hyposClient2 = HyposClient.builder() + .nonClient(nonClient2) + .otherIncomes(otherIncome2) + .stayType(StayType.PERMANENT_WITH_PIN.getValue()) + .clientRelation(ClientRelationType.PARTNER.getValue()) + .livingType(LivingType.WITH_PARENTS.getValue()) + .expenditures(expenditures2) + .household("1") + .build(); + + //CLIENT 3 + String birthNumber3 = "9703067693"; + + Address permanentAddress3 = Address.builder() + .street("Vyskočilova") + .descriptiveNumber("1442") + .orientationNumber("1b") + .city("Praha") + .zip("14000") + .country("CZ") + .build(); + + NonClient nonClient3 = harness.data().newNonClient() + .withBirthNumber(birthNumber3) + .withFirstName("Jan") + .withLastName("Novák") + .withEmail(TestUtils.getEmailBasedOnRc(birthNumber3)) + .withPlaceOfBirth("Praha") + .withNationality(ClientNationality.CZ.getValue()) + .withMaritalStatus(MaritalStatus.SINGLE) + .withEducationLevel(EducationLevel.HIGHER) + .withGrossIncome(100000) + .withNetMonthlyIncome(80000) + .withEmployer(Employer.builder().ico("00007064").build()) + .withOccupationStatus(OccupationStatus.FULL_TIME_EMPLOYEE) + .withOccupationEmploymentFromRaw(DateUtils.getSpecificDayRaw(1, 1, 2000)) + .withOccupationType(OccupationType.IT_GUYS) + .withAccommodationType(AccommodationType.PARENTS) + .withResidencyAddress(permanentAddress3); + + List otherIncome3 = new ArrayList() {{ + add(OtherIncome.builder().type(OtherIncomeType.ALIMENT.getValue()).amount("800").currency(IncomeCurrency.CZK.getValue()).build()); + add(OtherIncome.builder().type(OtherIncomeType.PARENTAL_CONTRIBUTION.getValue()).amount("1200").currency(IncomeCurrency.CZK.getValue()).build()); + }}; + + + List expenditures3 = new ArrayList(){{ + add(Expenditure.builder() + .type(ExpenditureType.OTHER_CLIENT.getValue()) + .amount("1000") + .correction(CorrectionType.NO_CORRECTION.getValue()) + .build()); + }}; + + HyposClient hyposClient3 = HyposClient.builder() + .nonClient(nonClient3) + .otherIncomes(otherIncome3) + .stayType(StayType.PERMANENT_WITH_PIN.getValue()) + .clientRelation(ClientRelationType.CHILD.getValue()) + .livingType(LivingType.WITH_PARENTS.getValue()) + .expenditures(expenditures3) + .household("2") + .build(); + + //HYPOS CONTRACT + List hyposClients = new ArrayList() {{ + add(hyposClient1); + add(hyposClient2); + add(hyposClient3); + }}; + + Realty realty = Realty.builder() + .searchByRealtyType(RealtySearchType.FLAT.getValue()) + .registerArea("Brno") + .autosuggestionText("Město Brno") + .descriptiveNumber("1234") + .flatNumber("1") + .realtyPrice(3000000) + .realtyPriceCurrent(3500000) + .realtyType(RealtyType.FLAT.getValue()) + .pledgeType(PledgeType.PROPERTY_HOUSING.getValue()) + .contractRelation(ContranctRelation.PLEDGE_WITH_CURRENT_REALTY.getValue()) + .collateralType(CollateralType.FLAT.getValue()) + .appraiserCompany(AppraiserCompany.MONETA_SUPERVISION.getValue()) + .build(); + + List loanPurposes = new ArrayList() {{ + add(LoanPurpose.builder().type(LoanPurposeType.BUY.getValue()).amount("1000000").tranche("1").paymentType(PaymentType.GROUP_PURPOSE_BUY.getValue()).build()); + }}; + + List drawingConditions = new ArrayList() {{ + add(DrawingCondition.builder().condition("ZS 01 A) návrh na vklad VP").tranches(new ArrayList() {{ + add("1"); + }}).build()); + add(DrawingCondition.builder().condition("01 c) Uzavření zástavní smlouvy a podání návrhu na vklad").tranches(new ArrayList() {{ + add("1"); + }}).build()); + }}; + + hyposContract = HyposContract.builder() + .clients(hyposClients) + .realty(realty) + .mortgageLoanAmount(1000000) + .mortgageOwnResources(0) + .mortgageOtherResources(0) + .loanObjectType(LoanObjectType.FLAT.getValue()) + .purchaseReason(PurchaseReason.OWN_HOUSING.getValue()) + .firstHouseholdIncome(HouseholdIncome.builder().withIncome(2).withoutIncome(0).build()) + .secondHouseholdIncome(HouseholdIncome.builder().withIncome(1).withoutIncome(0).build()) + .loanPurposes(loanPurposes) + .drawingConditions(drawingConditions) + .build(); + + //SCORING PARAMETERS + scoringParameters = new ArrayList() {{ + add(ScoringParameter.builder().type(ScoringParameterType.LIMIT).name("FIN_AMT_AUT").expectedValue("-1214167.4").build()); + add(ScoringParameter.builder().type(ScoringParameterType.LIMIT).name("FIN_AMT_MAN").expectedValue("4845098.38").build()); + add(ScoringParameter.builder().type(ScoringParameterType.LIMIT).name("FINA_MAX_MAN").expectedValue("4845098.38").build()); + add(ScoringParameter.builder().type(ScoringParameterType.LIMIT).name("FINA_MAX_AUT").expectedValue("160000").build()); + add(ScoringParameter.builder().type(ScoringParameterType.APPROVAL_RESULT).expectedValue("Schválení").build()); + add(ScoringParameter.builder().type(ScoringParameterType.BONITY).name("ČNB DTI").automat(ScoringApprovalResultType.AUTOMAT).expectedValue("0,00").build()); + add(ScoringParameter.builder().type(ScoringParameterType.BONITY).name("ČNB DSTI").automat(ScoringApprovalResultType.AUTOMAT).expectedValue("30 526,99").build()); + add(ScoringParameter.builder().type(ScoringParameterType.BONITY).name("ČNB DSTI").automat(ScoringApprovalResultType.MANUAL).expectedValue("51 268,00").build()); + add(ScoringParameter.builder().type(ScoringParameterType.BONITY_LTV).name("LTV pro Automat").expectedValue("33,33").build()); + add(ScoringParameter.builder().type(ScoringParameterType.BONITY_LTV).name("LTV pro Manual").expectedValue("50,00").build()); + add(ScoringParameter.builder().type(ScoringParameterType.REFUSAL_REASON).name("R221").build()); + add(ScoringParameter.builder().type(ScoringParameterType.REFUSAL_REASON).name("R111").build()); + add(ScoringParameter.builder().type(ScoringParameterType.REFUSAL_REASON).name("R999").build()); + add(ScoringParameter.builder().type(ScoringParameterType.STRATEGY).name("MainApplicant").expectedValue("1").build()); + }}; + } + + @Disabled("Missing data") + @TestCase(name = "Scoring with AP verification", environments = {Environment.TST1}) + @JiraTestCase(id = "ML-T513") + public void tcScoringWithApVerification(Harness harness) { + HypokalkulackaPage hypokalkulackaPage = harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .switchToHypokalkulacka() + + + .then(tasks.hypokalkulackaTasks().addClientData(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientAddress(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientIncomeBusiness(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientIncomeOther(hyposContract, FIRST_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientExpenditure(hyposContract, FIRST_CLIENT.getValue())) + + .then(tasks.hypokalkulackaTasks().addClientData(hyposContract, SECOND_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientAddress(hyposContract, SECOND_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientIncomeEmployee(hyposContract, SECOND_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientIncomeOther(hyposContract, SECOND_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientExpenditure(hyposContract, SECOND_CLIENT.getValue())) + + .then(tasks.hypokalkulackaTasks().addClientData(hyposContract, THIRD_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientAddress(hyposContract, THIRD_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientIncomeEmployee(hyposContract, THIRD_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientIncomeOther(hyposContract, THIRD_CLIENT.getValue())) + .then(tasks.hypokalkulackaTasks().addClientExpenditure(hyposContract, THIRD_CLIENT.getValue())) + + .then(tasks.hypokalkulackaTasks().addHouseholds(hyposContract)) + .then(tasks.hypokalkulackaTasks().addSecondHousehold(hyposContract)) + .then(tasks.hypokalkulackaTasks().addRealtyData(hyposContract)) + .then(tasks.hypokalkulackaTasks().addLoanData(hyposContract)) + .then(tasks.hypokalkulackaTasks().addApplicationData(hyposContract)) + .clickSaveHypokalkulackaButtonAndCheckAlertText() + .then(tasks.hypokalkulackaTasks().generateAndSignAgreements101()) + .then(tasks.hypokalkulackaTasks().generateAndSignMortgageApplication()) + .getHypokalkulackaVersion(harness); + + hypokalkulackaId = harness.get(HYPOKALKULACKA_ID).toString(); + hypokalkulackaPage.then(tasks.hypokalkulackaTasks().saveHypokalkulacka()); + harness.withHypos().closeHypos(); + Assertions.assertNotNull(hypokalkulackaId, "Hypokalkulačka ID is empty. Stopping test."); + contractId = new HyposDbTasks(harness).getContractId(hypokalkulackaId); + Assertions.assertNotNull(contractId, "Contract ID is empty. Stopping test."); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .switchToHypokom() + .then(tasks.hypokomTasks().searchClientByContractId(contractId)) + .then(tasks.hypokomTasks().setClientAppointmentDate()) + .then(tasks.hypokomTasks().createNewContract(contractId, hyposContract)); + + harness.withHypos().closeHypos(); + Assertions.assertEquals(true, new HyposDbTasks(harness).contractPrescoringFinished(contractId), "Prescoring was not finished in 180 seconds interval."); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(contractId, "Obchod založen - kontrola OK")) + .then(tasks.contractTasks().setLoanAndDrawingConditions(hyposContract)) + .then(tasks.contractTasks().setNewRealtyAndSupervision(hyposContract)) + .then(tasks.contractTasks().importChecklistUwDocument()) + .then(tasks.hypokalkulackaTasks().setClientDetailIncomeBusiness(hyposContract, FIRST_CLIENT)) + .then(tasks.hypokalkulackaTasks().setClientDetailIncomeEmployee(hyposContract, SECOND_CLIENT)) + .then(tasks.hypokalkulackaTasks().setClientDetailIncomeEmployee(hyposContract, THIRD_CLIENT)) + .then(tasks.contractTasks().setScoringAutomat()); + + harness.withHypos().closeHypos(); + Assertions.assertEquals(true, new HyposDbTasks(harness).contractScoringWithApVerificationFinished(contractId), "Scoring with AP verification was not finished in 180 seconds interval."); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(contractId, "Scoring")) + .then(tasks.contractTasks().setApVerification()); + + harness.withHypos().closeHypos(); + Assertions.assertNotNull(harness.get(AP_ID).toString(), "AP ID is empty. Stopping test."); + List taskIds = harness.get(TASK_IDS); + Assertions.assertFalse(taskIds.isEmpty(), "Task ID is empty. Stopping test."); + Assertions.assertEquals(true, new HyposDbTasks(harness).contractScoringFinished(contractId), "Scoring was not finished in 180 seconds interval."); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContractAndCheckState(contractId, "Ověřování")) + .then(tasks.contractTasks().checkScoringResult(scoringParameters)); + + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.EMERGENCY)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.contractTasks().setCancelContract()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/StructureTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/StructureTest.java new file mode 100644 index 0000000..30a6276 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/StructureTest.java @@ -0,0 +1,32 @@ +package cz.moneta.test.regression.channels.digital.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.tasks.HyposStructureTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Structure tests") +public class StructureTest { + + @TestCase(name = "Check Hypos structures - reports and statistics") + @JiraTestCase(id = "ML-T510") + public void tcStructuresCheck(Harness harness) { + HyposStructureTasks tasks = harness.tasks().hypos().hyposStructureTasks(); + harness.withHypos() + .openLoginPage() + .switchToStructurePage() + .then(tasks.checkStructureDrawPostponed()) + .then(tasks.checkStructureDraw()) + .then(tasks.checkStructureUw2()) + .then(tasks.checkStructureDocsVerification()) + .then(tasks.checkStructureAppraisementFee()) + .then(tasks.checkStructureLetter()) + .then(tasks.checkStructurePpd()) + .then(tasks.checkStructureUw1()) + .then(tasks.checkStructureOpus()) + .then(tasks.checkStructurePktu()) + .then(tasks.checkStructureClientChange()) + .then(tasks.checkStructureFinancialException()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/TaskListTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/TaskListTest.java new file mode 100644 index 0000000..bc88d0a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/ml/hypos/TaskListTest.java @@ -0,0 +1,23 @@ +package cz.moneta.test.regression.channels.digital.ml.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Task list tests") +public class TaskListTest { + + @TestCase(name = "Check task detail") + @JiraTestCase(id = "ML-T2615") + public void tcTaskDetail(Harness harness) { + harness.withHypos() + .openLoginPage() + .switchToTaskListPage() + .selectFilterMode("-- bez filtru --") + .selectFilterType("Změna podmínek čerpání / PPD") + .clickSearchButton() + .clickTaskDetail() + .checkPageTitle(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/sb/CrateTemplate.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/sb/CrateTemplate.java new file mode 100644 index 0000000..4073937 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/sb/CrateTemplate.java @@ -0,0 +1,32 @@ +package cz.moneta.test.regression.channels.digital.sb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.mobile.smartbanking.templates.TemplateFiling; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.mobile.smartbanking.landing.SmartBankingLoginKeyboard.*; + + +@TestScenario(name = "Crate Template") +public class CrateTemplate { + + @Disabled(value = "Test needs to be updated to match changes in appium endpoint changes.") + @TestCase(name = "Create Template") + public void createTemplate(Harness harness) { + TemplateFiling templateFiling = new TemplateFiling(); + harness.withSB() + .onLandingPage() + .enterPinUsingKeyboard(harness, KEY_1, KEY_2, KEY_3, KEY_4) + .onBalanceView() + .openMenu() + .clickOnMyTemplate() + .clickOnAddTemplate() + .setTemplate(templateFiling) + .clickOnTemplateCompletion() + .clickOnTemplateReturn() + .clickOnTemplateReturnEnd() + .clickOnMyMoney(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/sb/MobileTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/sb/MobileTest.java new file mode 100644 index 0000000..072d800 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/sb/MobileTest.java @@ -0,0 +1,36 @@ +package cz.moneta.test.regression.channels.digital.sb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.mobile.smartbanking.landing.SmartBankingLoginKeyboard; +import cz.moneta.test.dsl.mobile.smartbanking.payment.Payment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.dsl.mobile.smartbanking.landing.SmartBankingLoginKeyboard.*; + +@TestScenario(name = "Mobile scenario") +public class MobileTest { + + @TestCase(name = "Mobile test") + public void createPayment(Harness harness) { + Payment payment = new Payment(); + SmartBankingLoginKeyboard[] pin = {KEY_1, KEY_2, KEY_3, KEY_4}; + + harness.withSB() + .onLandingPage() + .enterPinUsingKeyboard(harness, pin) + .onBalanceView() + .openMenu() + .currentAccountsUserHasOneAccount() + //.clickOnAccount(harness, payment) use this method if user has more than one account + .payment() + .setPaymentDestinationData(payment.getToAccountNumber(), payment.getBankCode()) + .continueButton() + .setPaymentData(payment.getAmount(), payment.getVariableSymbol()) + .continueButton() + .checkPaymentData(harness, payment) + .certifyButton() + .enterPinUsingKeyboard(harness, pin) + .onSentPaymentView(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/sb/RegistrationSmartBankingUserTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/sb/RegistrationSmartBankingUserTest.java new file mode 100644 index 0000000..a3c261f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/sb/RegistrationSmartBankingUserTest.java @@ -0,0 +1,62 @@ +package cz.moneta.test.regression.channels.digital.sb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.settings.smartbanka.DeviceRegistrationWizard; +import cz.moneta.test.dsl.mobile.smartbanking.landing.SmartBankingLoginKeyboard; +import cz.moneta.test.dsl.mobile.smartbanking.activation.FinishActivationView; +import cz.moneta.test.dsl.util.data.sb.FourPartToken; +import cz.moneta.test.dsl.util.task.ib.IbTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "Registration SB in IB") +public class RegistrationSmartBankingUserTest { + + @Disabled(value = "Duplicate with smoke test SmartBankingSmokeTests#registrationSmartBankingUser") + @TestCase(name = "Activate new user in IB") + public void registrationSmartBankingUser(Harness harness, @Key("client.with.ib") Credentials credentials) { + SmartBankingLoginKeyboard[] pin = {SmartBankingLoginKeyboard.KEY_1, SmartBankingLoginKeyboard.KEY_2, SmartBankingLoginKeyboard.KEY_3, SmartBankingLoginKeyboard.KEY_4}; + + IbTasks ibTasks = harness.tasks().ib(); + String mobileKey = "12341234"; + + DeviceRegistrationWizard currentActivation = + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWith(credentials, mobileKey)) + .goToSettings() + .selectSmartBanka() + .startRegistration(harness, mobileKey); + + FourPartToken token = + harness.data() + .fourPartToken(currentActivation.getDeviceRegistrationCode()); + + FinishActivationView finishActivationOnMobile = + harness.withSB() + .onActivationPage() + .activateSmartBanking() + .swipeToSecondActivationView() + .swipeToThirdActivationView() + .swipeToLastActivationView() + .chooseManualCodeEntry() + .typePartsOfCode(token.first(), token.second(), token.third(), token.fourth()) + .tapOnContinueButton() + .enterPinUsingKeyboard(harness, pin) + .onConfirmView() + .enterPinUsingKeyboard(harness, pin) + .onFinishActivationView(); + + currentActivation + .afterMobileActivation() + .typeSmsCode(mobileKey) + .validateMobileKey() + .onSuccessRegisteredMobileDevice(); + + finishActivationOnMobile.tapOnCompleteActivationButton() + .startUsingSmartBaking(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BridgingLoanTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BridgingLoanTest.java new file mode 100644 index 0000000..e126655 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BridgingLoanTest.java @@ -0,0 +1,59 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check bridging loan page") +public class BridgingLoanTest { + + @TestCase(name = "Check bridging loan calculator", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T405") + public void tcBridgingLoanCalculator(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openBridgingLoanPage() + .clickBridgingCalculatorSection() + .then(tasks.calculatorTasks().fillLoanCalculator("1200000", 70, "24", 16)); + } + + @TestCase(name = "Check W2B for bridging loan page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T406") + public void tcBridgingLoanW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openBridgingLoanPage() + .clickNaviblocksW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(3,6,"Petr Testovič", "777777777", "petr.pollak@moneta.cz")); + } + + @TestCase(name = "Check W2C for bridging loan page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T407") + public void tcBridgingLoanW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openBridgingLoanPage() + .clickNaviblocksW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BuildingSavingsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BuildingSavingsTest.java new file mode 100644 index 0000000..bdfa673 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BuildingSavingsTest.java @@ -0,0 +1,87 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled("Not currently maintained") +@TestScenario(name = "Building savings page") +public class BuildingSavingsTest { + + @TestCase(name = "Check Building savings calculator", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T444") + public void tcBuildingSavingsCalculator(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openBuildingSavingsPage() + .clickBuildingSavingCalculatorAmountInput() + .fillBuildingSavingCalculatorAmountInput("2300") + .moveBuildingSavingCalculatorAmountSlider(20) + .moveBuildingSavingCalculatorLengthBySlider(15); + //.then(tasks.calculatorTasks().fillBusinessCalculator("440000", 94, "94", 88)); + } + + @TestCase(name = "Check Building savings A la carte form", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T445") + public void tcBuildingSavingsForm(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openBuildingSavingsPage() + .clickNaviblocksBuildingSavingsCreateNewClientsOnline() + .then(tasks.formTasks().fillOnboardingForm("Petr","Testovič","petr.pollak@moneta.cz","777777777")); + + } + + @TestCase(name = "Check IB from Building savings page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T446") + public void tcBuildingSavingsIBPage(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openBuildingSavingsPage() + .openNaviblocksOpenIB() + .checkIBPage(); + } + + @TestCase(name = "Check W2B for Building savings page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T447") + public void tcBuildingSavingsW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openBuildingSavingsPage() + .clickNaviblocksW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(4,5,"Petr Testovič", "777777777", "petr.pollak@moneta.cz")); + } + + @TestCase(name = "Check W2C for Building savings page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T448") + public void tcBuildingSavingsW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openBuildingSavingsPage() + .clickFooterCallFreeW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BuilgingSavingsLoanTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BuilgingSavingsLoanTest.java new file mode 100644 index 0000000..4434a0d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BuilgingSavingsLoanTest.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check buildings savings loan page") +public class BuilgingSavingsLoanTest { + + @TestCase(name = "Check W2B for buildings savings loan page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T449") + public void tcBuildingSavingsLoanW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openBuildingSavingsLoanPage() + .clickNaviblocksSection() + .clickNaviblocksW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(2,6,"Petr Testovič", "777777777", "petr.pollak@moneta.cz")); + } + + @TestCase(name = "Check W2C for buildings savings loan page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T450") + public void tcBuildingSavingsLoanW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openBuildingSavingsLoanPage() + .clickNaviblocksSection() + .clickNaviblocksW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BusinessLoanTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BusinessLoanTest.java new file mode 100644 index 0000000..353ca7b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/BusinessLoanTest.java @@ -0,0 +1,71 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check business loan page") +public class BusinessLoanTest { + + @TestCase(name = "Check business loan calculator", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T396") + public void tcBusinessLoanCalculator(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openExpressBusinessLoanPage() + .clickBusinessCalculatorSection() + .then(tasks.calculatorTasks().fillBusinessCalculator("440000", 94, "94", 88)); + } + + @TestCase(name = "Check business loan wizard", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T397") + public void tcBusinessLoanWizard(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openExpressBusinessLoanPage() + .clickNaviblocksCreateBusinessExpressOnline() + .clickBusinessWizardContinue() + .checkBusinessWizardICO(); + } + + @TestCase(name = "Check W2B for business loan page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T398") + public void tcBusinessLoanW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openExpressBusinessLoanPage() + .clickNaviblocksW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2BICO(4,3,"Petr Testovič", "25672720", "777777777", "petr.pollak@moneta.cz")); + } + + @TestCase(name = "Check IB from business loan page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T399") + public void tcOpenIBPage(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openExpressBusinessLoanPage() + .openNaviblocksOpenIB() + .checkIBPage(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/CreditAccountTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/CreditAccountTest.java new file mode 100644 index 0000000..ba98675 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/CreditAccountTest.java @@ -0,0 +1,112 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled +@TestScenario(name = "Check credit account page") +public class CreditAccountTest { + @TestCase(name = "Check W2B for credit account page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T437") + public void tcCreditAccountW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCreditAccountPage() + .clickNaviblocksW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(3,3,"Petr Testovič","777777777", "petr.pollak@moneta.cz")); + } + + @TestCase(name = "Check W2C for credit account page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T438") + public void tcCreditAccountW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCreditAccountPage() + .clickNaviblocksW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } + + @Disabled + @TestCase(name = "Check credit account calculator", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T439") + public void tcCreditAccountCalculator(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCreditAccountPage() + .clickCreditOnlineSection() + .clickNaviblocksCreditAccountButton() + .fillCreditCalculatorAmountInput("44000") + .moveCreditCalculatorAmount(5); + } + + @Disabled + @TestCase(name = "Check credit account form", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T440") + public void tcCreditAccountForm(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCreditAccountPage() + .clickCreditOnlineSection() + .clickNaviblocksCreditAccountButton() + .clickCreditCalculatorOnlineButton() + .then(tasks.formTasks().fillOnboardingForm("Petr","Testovič","petr.pollak@moneta.cz","777777777")); + } + + @Disabled + @TestCase(name = "Check W2B for get credit account page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T441") + public void tcGetCreditAccountW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCreditAccountPage() + .clickCreditOnlineSection() + .clickNaviblocksCreditAccountButton() + .clickNaviblocksW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(1,3,"Petr Testovič","777777777", "petr.pollak@moneta.cz")); + } + + @Disabled + @TestCase(name = "Check W2C for get credit account page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T442") + public void tcGetCreditAccountW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCreditAccountPage() + .clickCreditOnlineSection() + .clickNaviblocksCreditAccountButton() + .clickNaviblocksW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/CreditCardTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/CreditCardTest.java new file mode 100644 index 0000000..4917e94 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/CreditCardTest.java @@ -0,0 +1,83 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check credit card page") +public class CreditCardTest { + + @TestCase(name = "Check credit card calculator", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T432") + public void tcCreditCardCalculator(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCreditCardPage() + .fillCreditCalculatorAmountInput("44000") + .moveCreditCalculatorAmount(5); + } + + @TestCase(name = "Check credit card form", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T433") + public void tcCreditCardForm(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCreditCardPage() + .clickCreditCalculatorOnlineButton() + .then(tasks.formTasks().fillOnboardingForm("Petr","Testovič","petr.pollak@moneta.cz","777777777")); + } + + @TestCase(name = "Check Smart bank from credit card page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T434") + public void tcCreditCardSmartBank(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCreditCardPage() + .openNaviblocksSB() + .checkSBPage(); + } + + @TestCase(name = "Check W2C for credit card page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T435") + public void tcCreditCardW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCreditCardPage() + .clickNaviblocksW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } + + @TestCase(name = "Check W2B for credit card page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T436") + public void tcCreditCardW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCreditCardPage() + .clickNaviblocksW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(3,3,"Petr Testovič","777777777", "petr.pollak@moneta.cz")); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/CurrentAccountTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/CurrentAccountTest.java new file mode 100644 index 0000000..9c29e8b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/CurrentAccountTest.java @@ -0,0 +1,61 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check Current account page") +public class CurrentAccountTest { + @TestCase(name = "Check Current account form", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T458") + public void tcCurrentAccountForm(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCurrentAccountPage() + .clickCurrentAccountNaviblocksSection() + .clickNaviblocksCurrentAccountCreateNewClientsOnline() + .then(tasks.formTasks().fillOnboardingForm("Petr","Testovič","petr.pollak@moneta.cz","777777777")); + } + + @TestCase(name = "Check W2B for Current account page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T459") + public void tcCurrentAccountW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCurrentAccountPage() + .clickCurrentAccountNaviblocksSection() + .clickNaviblocksW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(1,5,"Petr Testovič", "777777777", "petr.pollak@moneta.cz")); + } + + @TestCase(name = "Check W2C for Current account page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T460") + public void tcCurrentAccountW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openAccountsMenu() + .openCurrentAccountPage() + .clickCurrentAccountNaviblocksSection() + .clickNaviblocksW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/ExchangeRatesTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/ExchangeRatesTest.java new file mode 100644 index 0000000..247fba5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/ExchangeRatesTest.java @@ -0,0 +1,26 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check exchange rates") +public class ExchangeRatesTest { + + @Disabled + @TestCase(name = "Check exchange rates table and calculator", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T74") + public void tcExchangeRates(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .openMoreMenu() + .openExchangeRates() + .selectExchangeRatesCurrencyFrom("CZK") + .selectExchangeRatesCurrencyTo("PLN") + .fillEchangeRatesAmount("55000"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/ExpressLoanTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/ExpressLoanTest.java new file mode 100644 index 0000000..02cc8e4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/ExpressLoanTest.java @@ -0,0 +1,71 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check express loan page") +public class ExpressLoanTest { + + @TestCase(name = "Check express loan calculator", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T360") + public void tcExpressLoanCalculator(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openExpressLoanPage() + .then(tasks.calculatorTasks().fillLoanBannerCalculator("450000", 36, 12)); + } + + @TestCase(name = "Check express loan form", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T361") + public void tcExpressLoanForm(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openExpressLoanPage() + .clickNaviblocksCreateNewClientsOnline() + .then(tasks.formTasks().fillOnboardingForm("Petr","Testovič","petr.pollak@moneta.cz","777777777")); + } + + @TestCase(name = "Check W2B for express loan page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T362") + public void tcExpressLoanW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openExpressLoanPage() + .clickNaviblocksW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(3,3,"Petr Testovič","777777777", "petr.pollak@moneta.cz")); + } + + @TestCase(name = "Check W2C for express loan page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T363") + public void tcExpressLoanW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openExpressLoanPage() + .clickQuestionQuickCallW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HoldingFundsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HoldingFundsTest.java new file mode 100644 index 0000000..710a5a0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HoldingFundsTest.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check holding funds page") +public class HoldingFundsTest { + + @TestCase(name = "Check holding funds form", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T454") + public void tcHoldingFundsForm(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openHoldingFundsPage() + .clickHoldingFundsPageNaviblocksSection() + .clickNaviblocksInvestOnline() + .then(tasks.formTasks().fillOnboardingForm("Petr","Testovič","petr.pollak@moneta.cz","777777777")); + } + + @TestCase(name = "Check W2C for holding funds page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T455") + public void tcHoldingFundsW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openHoldingFundsPage() + .clickHoldingFundsPageNaviblocksSection() + .clickNaviblocksW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } + + @TestCase(name = "Check opening branch page from holding funds page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T456") + public void tcHoldingFundsBranchPage(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openHoldingFundsPage() + .clickFooterCallFreeBranchPage() + .checkBranchesMap(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HomePageENTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HomePageENTest.java new file mode 100644 index 0000000..e3ba86b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HomePageENTest.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check Homepage EN") +public class HomePageENTest { + @TestCase(name = "Check Current account form", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T474") + public void tcHomePageEnExchangeRates(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .clickENPage() + .checkHomePageExchangeRatesTable() + .clickExchangeRatesTableMore() + .checkExchangeRatesTable(); + } + + @TestCase(name = "Check W2B for EN Homepage", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T475") + public void tcHomePageEnW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .clickENPage() + .clickHomePageW2B() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(1,5,"Petr Testovič", "777777777", "petr.pollak@moneta.cz")); + } + + @TestCase(name = "Check W2C for EN Homepage", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T476") + public void tcHomePageEnW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .clickENPage() + .clickHomePageW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HomePageTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HomePageTest.java new file mode 100644 index 0000000..17464c7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HomePageTest.java @@ -0,0 +1,93 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check Homepage") +public class HomePageTest { + + @TestCase(name = "Check W2C from Homepage", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T364") + public void tcHomePageW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .clickHomePageW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } + + @TestCase(name = "Check W2B from Homepage", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T365") + public void tcHomePageW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .clickHomePageW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(3,8,"Petr Testovič","777777777", "petr.pollak@moneta.cz")); + } + + @TestCase(name = "Check online support page from Homepage", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T368") + public void tcHomePageOnlineSupport(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .clickOnlineSupport() + .checkOnlineSupportBanner(); + } + + @TestCase(name = "Check Exchange rates from HomePage", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T369") + public void tcHomePageExchangeRates(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .checkHomePageExchangeRatesTable() + .clickExchangeRatesTableMore() + .checkExchangeRatesTable(); + } + + @TestCase(name = "Check ATMs from Homepage", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T420") + public void tcHomePageATMs(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .clickHomePageATMs() + .checkATMsMap(); + } + + @TestCase(name = "Check branches from Homepage", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T421") + public void tcHomePageBranches(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .clickHomePageBranches() + .checkBranchesMap(); + } + + @TestCase(name = "Check online product page from Homepage", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T422") + public void tcHomePageOnlineProduct(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .clickOnlineProducts() + .checkOnlineProductBorder(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HypoLoanTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HypoLoanTest.java new file mode 100644 index 0000000..d549a21 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/HypoLoanTest.java @@ -0,0 +1,29 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MortgageTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Check Hypoloan page") +public class HypoLoanTest { + + @TestCase(name = "Kalkulačky - Hypotéka", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T860") + public void tcHypoLoanCalculator(Harness harness) { + MortgageTasks tasks = harness.tasks().monetaPortal().mortgageTasks(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openProductsDropDown() + .clickMortgage() + .then(tasks.fillAndStoreFindMaxCalculator()) + .then(tasks.checkTransferredResult()) + .then(tasks.fillAndStoreMortgageCalculator()) + .then(tasks.storeFinansoPreFilledData()) + .then(tasks.checkTransferredDataToFinanso()); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/InvestmentFundsTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/InvestmentFundsTest.java new file mode 100644 index 0000000..3f9767e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/InvestmentFundsTest.java @@ -0,0 +1,36 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Investment fund detail page") +public class InvestmentFundsTest { + @TestCase(name = "Podílové fondy - detail", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T901") + public void tcRefreshInvestmentFundDetail(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openProductsDropDown() + .clickFunds() + .clickRiskFilterSelect() + .clickOptionByValue("Nízká") + .clickFundByOrder("3") + .verifyChartBehavior(); + } + + @TestCase(name = "Podílové fondy - přehled", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T900") + public void tcRefreshInvestmentFundsList(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openProductsDropDown() + .clickFunds() + .clickAllFunds() + .checkAllFilters(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/SavingAccountTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/SavingAccountTest.java new file mode 100644 index 0000000..58e9fc9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/SavingAccountTest.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check Saving account page") +public class SavingAccountTest { + @TestCase(name = "Check Saving account form", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T471") + public void tcSavingAccountForm(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openSavingAccountPage() + .clickSavingAccountNaviblocksSection() + .clickNaviblocksSavingAccountCreateNewClientsOnline() + .then(tasks.formTasks().fillOnboardingForm("Petr","Testovič","petr.pollak@moneta.cz","777777777")); + } + + @TestCase(name = "Check IB from Saving account page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T472") + public void tcOpenIBPage(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openSavingAccountPage() + .clickSavingAccountNaviblocksSection() + .openNaviblocksIB() + .checkIBPage(); + } + + @TestCase(name = "Check W2C for Saving account page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T473") + public void tcSavingAccountW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openSavingAccountPage() + .clickSavingAccountNaviblocksSection() + .clickNaviblocksW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/SupplementaryRetirementSchemesTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/SupplementaryRetirementSchemesTest.java new file mode 100644 index 0000000..7d5ade0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/SupplementaryRetirementSchemesTest.java @@ -0,0 +1,61 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check Supplementary Retirement Schemes page") +public class SupplementaryRetirementSchemesTest { + @TestCase(name = "Check IB from Supplementary Retirement Schemes page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T480") + public void tcOpenIBPage(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openSupplementaryRetirementSchemesPage() + .clickSupplementaryRetirementSchemestNaviblocksSection() + .openNaviblocksOpenInternetBanking() + .checkIBPage(); + } + + @TestCase(name = "Check W2B for Supplementary Retirement Schemes page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T481") + public void tcSupplementaryRetirementSchemesW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openSupplementaryRetirementSchemesPage() + .clickSupplementaryRetirementSchemestNaviblocksSection() + .clickNaviblocksW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(2,5,"Petr Testovič", "777777777", "petr.pollak@moneta.cz")); + } + + @TestCase(name = "Check W2C for Supplementary Retirement Schemes page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T482") + public void tcSupplementaryRetirementSchemesW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openSavingsMenu() + .openSupplementaryRetirementSchemesPage() + .clickSupplementaryRetirementSchemestNaviblocksSection() + .clickNaviblocksW2C() + .then(tasks.commonTasks().fillW2C("777777777")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/UDCLoanTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/UDCLoanTest.java new file mode 100644 index 0000000..5cca342 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/UDCLoanTest.java @@ -0,0 +1,84 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.monetaportal.MonetaPortalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.BRUMLOVKA; + +@Disabled("Not currently maintained") +@TestScenario(name = "Check UDC loan") +public class UDCLoanTest { + + @TestCase(name = "Check UDC calculator", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T400") + public void tcUDCCalculator(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openUdcLoan() + .clickCalculatorSection() + .then(tasks.calculatorTasks().fillLoanCalculator("550000", 36, 18)); + } + + @TestCase(name = "Check UDC form", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T401") + public void tcUDCLoanForm(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openUdcLoan() + .clickNaviblocksCreateUDCOnline() + .then(tasks.formTasks().fillOnboardingForm("Petr","Testovič","petr.pollak@moneta.cz","777777777")); + } + + @TestCase(name = "Check W2B for UDC loan page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T402") + public void tcUDCLoanW2B(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openUdcLoan() + .clickNaviblocksW2B() + .clickW2BSearchBranch() + .fillW2BSearchBranch(BRUMLOVKA.getValue()) + .clickW2BSearchResultBranches(BRUMLOVKA) + .clickW2BArrangeAppointment() + .then(tasks.commonTasks().fillW2B(2,3,"Petr Testovič","777777777", "petr.pollak@moneta.cz")); + } + + @TestCase(name = "Check IB from UDC loan page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T403") + public void tcOpenIBPage(Harness harness) { + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openUdcLoan() + .openNaviblocksIB() + .checkIBPage(); + } + + @TestCase(name = "Check W2C for UDC loan page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T404") + public void tcUDCLoanW2C(Harness harness) { + MonetaPortalTasks tasks = harness.tasks().monetaPortal(); + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openUdcLoan() + .clickNaviblocksW2CLink() + .then(tasks.commonTasks().fillW2C("777777777")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/W2BTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/W2BTest.java new file mode 100644 index 0000000..83f0dab --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/W2BTest.java @@ -0,0 +1,145 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.forte.components.ForteRoles; +import cz.moneta.test.dsl.forte.pages.appointments.AppointmentDetail; +import cz.moneta.test.dsl.monetaportal.components.Web2Branch; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.monetaportal.responses.GetContactsResponse; +import cz.moneta.test.dsl.util.task.monetaportal.responses.Opportunity; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +import java.util.Date; +import java.util.List; +import java.util.Objects; + +import static cz.moneta.test.dsl.monetaportal.enums.SearchBranchName.CESKE_BUDEJOVICE; +import static cz.moneta.test.harness.constants.HarnessConfigConstants.SELENIUM_GRID_PLATFORM; + +@TestScenario(name = "Check W2B") +public class W2BTest { + + @TestCase(name = "W2B retail", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T761") + public void tcW2B(Harness harness) { + int testHash = new Date().hashCode(); + NonClient client = harness.data().newNonClient() + .withEmail("automat" + testHash + "@test.cz") + .withMobileNumber("602475132"); + + String note = "Message" + testHash; + + harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openExpressLoanPage() + .clickArrangeAppointmentAtBranch() + .fillW2BSearchBranch(CESKE_BUDEJOVICE.getValue()) + .clickW2BSearchResultBranches(CESKE_BUDEJOVICE) + .clickW2BArrangeAppointment() + .clickAppointmentDate().clickFirstOption() + .clickAppointmentTime().clickFirstOption() + .storeAppointmentDateTime("d.M.yyyy") + .clickW2BContinue() + .fillW2BClientFullName(client.fullName()) + .fillW2BClientPhoneNumber(client.mobileNumber()) + .fillW2BClientEmail(client.email()) + .fillW2BMessage(note) + .clickW2BSubmit() + .checkW2BSuccessMessage(); + + // TODO: Absolutely temporary solution!!! + harness.putConfig(SELENIUM_GRID_PLATFORM, "Windows"); + harness.putConfig("selenium.webdriver.chrome.options", "--kiosk-printing --no-first-run --disable-gpu --enable-logging --v=1 --disable-crash-reporter --disable-extensions --disable-dev-shm-usage --window-size=1920,1080 --proxy-server=http://wsa.mbid.cz:8008 --proxy-bypass-list=*.verisign.com,fonts.googleapis.com,assets.adobedtm.com,smetrics.internetbanka.cz,cdn.mxpnl.com,demdex.net,forgetest*,fortetest*,forteppe* --acceptInsecureCerts=true --ignore-certificate-errors=true --use-fake-device-for-media-stream --use-fake-ui-for-media-stream"); + + AppointmentDetail detail = harness + .withForte() + .openForteHomePage() + .clickAppointments() + .selectRoleMenu(ForteRoles.BANKER) + .selectOm(CESKE_BUDEJOVICE.getValue()) + .clickNotAssignedAppointments() + .fillClientFilter(client.fullName()) + .fillNoteFilter(note) + .clickSubmitFilter() + .clickFirstAppointmentDetail(); + + Assertions.assertEquals(client.fullName(), detail.getClientName()); + Assertions.assertEquals("+420" + client.mobileNumber(), detail.getClientPhoneNumber()); + Assertions.assertEquals(client.email(), detail.getClientEmail()); + Assertions.assertEquals("Expres", detail.getAppointmentProduct()); + Assertions.assertEquals(harness.get("APPOINTMENT_DATE"), detail.getAppointmentDate()); + Assertions.assertEquals(harness.get("APPOINTMENT_TIME"), detail.getAppointmentTimeFrom()); + Assertions.assertEquals("Schůzka z nového webu - Web", detail.getAppointmentSource()); + Assertions.assertEquals(note, detail.getAppointmentNote()); + } + + @TestCase(name = "W2B business", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T762") + public void tcW2B_business(Harness harness) { + int testHash = new Date().hashCode(); + String branchId = "86001340"; + NonClient client = harness.data().newNonClient() + .withEmail("automattest" + testHash + "@test.cz") + .withMobileNumber("602475132") + .withIco("07470975"); + + String note = "Message" + testHash; + + Web2Branch w2b = harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openExpressLoanPage() + .clickArrangeAppointmentAtBranch() + .fillW2BSearchBranch(CESKE_BUDEJOVICE.getValue()) + .clickW2BSearchResultBranches(CESKE_BUDEJOVICE) + .clickW2BArrangeAppointment() + .clickHasIco() + .clickAppointmentDate().clickFirstOption() + .clickAppointmentTime().clickFirstOption() + .storeAppointmentDateTime("yyyy-MM-dd") + .clickW2BContinue() + .fillW2BClientICO(client.ico()) + .fillW2BClientFullName(client.fullName()) + .fillW2BClientPhoneNumber(client.mobileNumber()) + .fillW2BClientEmail(client.email()) + .fillW2BMessage(note); + + String now = DateUtils.getDateWithFormat(new Date(), "yyyy-MM-dd HH:mm:ss"); + + w2b.clickW2BSubmit() + .checkW2BSuccessMessage(); + + List opportunities = harness.tasks().monetaPortal().wso2Tasks() + .getOpportunitiesForClient(now, client, branchId).RS_DATA.stream().filter(o -> + Objects.equals(o.CONTACT_NAME, client.fullName())).toList(); + + Assertions.assertFalse(opportunities.isEmpty(), + "Opportunity with ico: " + client.ico() + ", branch " + branchId + " and with name " + client.fullName() + " doesn't exists."); + + String expectedDate = harness.get("APPOINTMENT_DATE").toString(); + String actualDate = opportunities.get(0).CONTACT_DATE; + Assertions.assertTrue(actualDate.contains(expectedDate), "expected: " + expectedDate + ", actual: " + actualDate); + + String expectedTime = harness.get("APPOINTMENT_TIME").toString(); + String actualTime = opportunities.get(0).CONTACT_TIME_NOTE; + Assertions.assertTrue(expectedTime.contains(actualTime), "expected: " + expectedTime + ", actual: " + actualTime); + + Assertions.assertEquals(opportunities.get(0).DESCRIPTION,note); + + GetContactsResponse contacts = harness.tasks().monetaPortal().wso2Tasks().getContacts(client); + Assertions.assertFalse(contacts.RS_DATA.stream().filter(c -> + Objects.equals(c.FIRST_NAME, client.firstName()) && + Objects.equals(c.LAST_NAME, client.lastName()) && + Objects.equals(c.MOBILE, "+420" + client.mobileNumber()) && + Objects.equals(c.EMAIL, client.email())).toList().isEmpty()); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/W2CTest.java b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/W2CTest.java new file mode 100644 index 0000000..99113e9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/digital/web/W2CTest.java @@ -0,0 +1,41 @@ +package cz.moneta.test.regression.channels.digital.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.monetaportal.components.Web2Call; +import cz.moneta.test.dsl.util.task.monetaportal.Wso2Tasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.data.GeneratorType; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "Check W2C") +public class W2CTest { + + @TestCase(name = "W2C", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "NWP-T760") + public void tcW2C(Harness harness) { + + String telephone = harness.generate(GeneratorType.MOBILE_PHONE_NUMBER); + String campaignName = "Expres půjčka"; + + Web2Call web2Call = harness.withMonetaPortal() + .openHomePage() + .acceptCookies() + .openLoansMenu() + .openExpressLoanPage() + .clickToCall() + .fillW2CPhone(telephone); + + Wso2Tasks wso2Tasks = harness.tasks().monetaPortal().wso2Tasks(); + int before = wso2Tasks.getCampaignsCount(harness, telephone, campaignName); + + web2Call.clickW2CSubmit() + .checkW2CSuccessMessage(); + + int after = wso2Tasks.getCampaignsCount(harness, telephone, campaignName); + + Assertions.assertEquals(before + 1, after); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/channels/package-info.java b/tests/src/test/java/cz/moneta/test/regression/channels/package-info.java new file mode 100644 index 0000000..9fe2852 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/channels/package-info.java @@ -0,0 +1,4 @@ +/** + * Value Stream: Channels + */ +package cz.moneta.test.regression.channels; \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/AllValuations.java b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/AllValuations.java new file mode 100644 index 0000000..ef1d551 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/AllValuations.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.collateral.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalPreconditions; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.ParameterizedTestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.params.provider.ValueSource; + +@TestScenario(name = "Prepare data for valuation testing") +public class AllValuations { + + private final static int VERIFIKACE_FLAT = 0; + private final static int DESKTOP_FLAT = 1; + private final static int FULL_FLAT = 2; + private final static int ONLINE_FLAT = 3; + + private final static int DESKTOP_HOUSE = 0; + private final static int FULL_HOUSE = 1; + + private static String contractId; + + @BeforeEach + public void setup(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalPreconditions bpPreconditions = new BrokerPortalPreconditions(harness, broker); + contractId = bpPreconditions.createNewContract(); + bpPreconditions.closeBrowser(); + } + + @ParameterizedTestCase(name = "Broker portal valuations for flats.") + @ValueSource(ints = {VERIFIKACE_FLAT, DESKTOP_FLAT, FULL_FLAT, ONLINE_FLAT}) + public void flatValuations(int valuationType, Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal().openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.brokerPortalValuations().findContract(contractId)) + .then(tasks.brokerPortalValuations().evaluateFlat(valuationType, contractId)) + ; + + } + @ParameterizedTestCase(name = "Broker portal valuations for houses.") + @ValueSource(ints = {DESKTOP_HOUSE, FULL_HOUSE}) + public void houseValuations(int valuationType, Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal().openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.brokerPortalValuations().findContract(contractId)) + .then(tasks.brokerPortalValuations().evaluateHouse(valuationType, contractId)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/DesktopFlat.java b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/DesktopFlat.java new file mode 100644 index 0000000..1660c3a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/DesktopFlat.java @@ -0,0 +1,34 @@ +package cz.moneta.test.regression.collateral.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalPreconditions; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +@TestScenario(name = "Desktop valuation test for flat") +public class DesktopFlat { + private final static int DESKTOP_FLAT = 1; + private static String contractId; + + @BeforeEach + public void setup(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalPreconditions bpPreconditions = new BrokerPortalPreconditions(harness, broker); + contractId = bpPreconditions.createNewContract(); + bpPreconditions.closeBrowser(); + } + + @TestCase(name = "Create valuation with Desktop result") + public void flatValuations(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal().openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.brokerPortalValuations().findContract(contractId)) + .then(tasks.brokerPortalValuations().evaluateFlat(DESKTOP_FLAT, contractId)) + ; + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/DesktopHouse.java b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/DesktopHouse.java new file mode 100644 index 0000000..707370a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/DesktopHouse.java @@ -0,0 +1,33 @@ +package cz.moneta.test.regression.collateral.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalPreconditions; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +@TestScenario(name = "Desktop valuation test for house") +public class DesktopHouse { + private final static int DESKTOP_HOUSE = 0; + private static String contractId; + + @BeforeEach + public void setup(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalPreconditions bpPreconditions = new BrokerPortalPreconditions(harness, broker); + contractId = bpPreconditions.createNewContract(); + bpPreconditions.closeBrowser(); + } + + @TestCase(name = "Create valuation with desktop result for house") + public void houseValuations(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal().openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.brokerPortalValuations().findContract(contractId)) + .then(tasks.brokerPortalValuations().evaluateHouse(DESKTOP_HOUSE, contractId)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/FullFlat.java b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/FullFlat.java new file mode 100644 index 0000000..7807ed0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/FullFlat.java @@ -0,0 +1,34 @@ +package cz.moneta.test.regression.collateral.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalPreconditions; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +@TestScenario(name = "Full valuation test for flat") +public class FullFlat { + private final static int FULL_FLAT = 2; + private static String contractId; + + @BeforeEach + public void setup(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalPreconditions bpPreconditions = new BrokerPortalPreconditions(harness, broker); + contractId = bpPreconditions.createNewContract(); + bpPreconditions.closeBrowser(); + } + + @TestCase(name = "Create valuation with Full result") + public void flatValuations(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal().openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.brokerPortalValuations().findContract(contractId)) + .then(tasks.brokerPortalValuations().evaluateFlat(FULL_FLAT, contractId)) + ; + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/FullHouse.java b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/FullHouse.java new file mode 100644 index 0000000..636412c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/FullHouse.java @@ -0,0 +1,33 @@ +package cz.moneta.test.regression.collateral.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalPreconditions; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +@TestScenario(name = "Full valuation test for houses") +public class FullHouse { + private final static int FULL_HOUSE = 1; + private static String contractId; + + @BeforeEach + public void setup(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalPreconditions bpPreconditions = new BrokerPortalPreconditions(harness, broker); + contractId = bpPreconditions.createNewContract(); + bpPreconditions.closeBrowser(); + } + + @TestCase(name = "Create valuation with full result for house") + public void houseValuations(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal().openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.brokerPortalValuations().findContract(contractId)) + .then(tasks.brokerPortalValuations().evaluateHouse(FULL_HOUSE, contractId)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/OnlineFlat.java b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/OnlineFlat.java new file mode 100644 index 0000000..609e385 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/OnlineFlat.java @@ -0,0 +1,34 @@ +package cz.moneta.test.regression.collateral.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalPreconditions; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +@TestScenario(name = "Online valuation test for flat") +public class OnlineFlat { + private final static int ONLINE_FLAT = 3; + private static String contractId; + + @BeforeEach + public void setup(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalPreconditions bpPreconditions = new BrokerPortalPreconditions(harness, broker); + contractId = bpPreconditions.createNewContract(); + bpPreconditions.closeBrowser(); + } + + @TestCase(name = "Create valuation with Online result for flat") + public void flatValuations(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal().openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.brokerPortalValuations().findContract(contractId)) + .then(tasks.brokerPortalValuations().evaluateFlat(ONLINE_FLAT, contractId)) + ; + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/VerificationFlat.java b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/VerificationFlat.java new file mode 100644 index 0000000..4cac607 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/collateral/brokerportal/VerificationFlat.java @@ -0,0 +1,34 @@ +package cz.moneta.test.regression.collateral.brokerportal; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalPreconditions; +import cz.moneta.test.dsl.util.task.brokerportal.BrokerPortalTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +@TestScenario(name = "Verification valuation test for flat") +public class VerificationFlat { + private final static int VERIFICATION_FLAT = 0; + private static String contractId; + + @BeforeEach + public void setup(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalPreconditions bpPreconditions = new BrokerPortalPreconditions(harness, broker); + contractId = bpPreconditions.createNewContract(); + bpPreconditions.closeBrowser(); + } + + @TestCase(name = "Create valuation with Verification result") + public void flatValuations(Harness harness, @Key(Keys.brokerPortal.broker) Credentials broker) { + BrokerPortalTasks tasks = harness.tasks().brokerPortal(); + harness.withBrokerPortal().openLoginPage() + .then(tasks.loginTasks().loginWithCredentials(broker)) + .then(tasks.brokerPortalValuations().findContract(contractId)) + .then(tasks.brokerPortalValuations().evaluateFlat(VERIFICATION_FLAT, contractId)) + ; + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/collateral/hypos/MarketValuationForm.java b/tests/src/test/java/cz/moneta/test/regression/collateral/hypos/MarketValuationForm.java new file mode 100644 index 0000000..f6de834 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/collateral/hypos/MarketValuationForm.java @@ -0,0 +1,77 @@ +package cz.moneta.test.regression.collateral.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.contractPrepare.HyposContractPrepare; +import cz.moneta.test.dsl.hypos.enums.HyposProfile; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.BeforeEach; + +@TestScenario(name = "Tests in Hypos") +public class MarketValuationForm { + + private HyposTasks tasks; + private static String contractId; + final static int REALTY_FLAT_VERIFICATION = 0; + + @BeforeEach + public void setup(Harness harness) { + HyposContractPrepare contractPrepare = new HyposContractPrepare(harness); + contractId = contractPrepare.createNewContract(harness); + contractPrepare.createNewContract(harness); + contractPrepare.closeBrowser(); + contractPrepare.addUnitToRealty(harness, contractId, REALTY_FLAT_VERIFICATION); + contractPrepare.closeBrowser(); + contractPrepare.createValuationFlat(harness, contractId); + contractPrepare.closeBrowser(); + } + + //TODO add tests for disappearing values after refresh + @TestCase(name = "Check elements presence, correctness of calculations and disappearing values after refresh.") + public void checkFlatValuationForm(Harness harness){ + tasks = harness.tasks().hypos(); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.SUPERVISOR)) + .then(tasks.searchAndOpenContract(contractId)) + .clickRealty() + .clickRealtyDetail() + .openFirstOrder() + .checkSharedElements() + .then(tasks.valuationTasks().checkFlatElements()) + .then(tasks.valuationTasks().verifyReproductivePrice()) + ; + } + + @TestCase(name = "Tests all possible operations with order with check in operations history.") + public void orderOperations(Harness harness) { + tasks = harness.tasks().hypos(); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.SUPERVISOR)) + .then(tasks.searchAndOpenContract(contractId)) + .clickRealty() + .clickRealtyDetail() + .openFirstOrder() + .then(tasks.valuationTasks().giveOrder()) + .then(tasks.valuationTasks().takeOrder()) + .then(tasks.valuationTasks().deferOrder()) + .then(tasks.valuationTasks().cancelOrder()) + ; + } + + @TestCase(name = "Finish order test with verification about successful result.") + public void finishOrder(Harness harness) { + tasks = harness.tasks().hypos(); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.SUPERVISOR)) + .then(tasks.searchAndOpenContract(contractId)) + .clickRealty() + .clickRealtyDetail() + .openFirstOrder() + .then(tasks.valuationTasks().finishOrder()) + ; + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/collateral/hypos/MarketValuationOrderForm.java b/tests/src/test/java/cz/moneta/test/regression/collateral/hypos/MarketValuationOrderForm.java new file mode 100644 index 0000000..68b136b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/collateral/hypos/MarketValuationOrderForm.java @@ -0,0 +1,69 @@ +package cz.moneta.test.regression.collateral.hypos; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.contractPrepare.HyposContractPrepare; +import cz.moneta.test.dsl.hypos.enums.HyposProfile; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.BeforeEach; + +@TestScenario(name = "Tests in Hypos") +public class MarketValuationOrderForm { + + private HyposTasks tasks; + private static String contractId; + final static int REALTY_FLAT_VERIFICATION = 0; + final static int REALTY_FLAT_DESKTOP = 1; + final static int REALTY_FLAT_FULL = 2; + + final static int REALTY_HOUSE_DESKTOP = 0; + final static int REALTY_HOUSE_FULL = 1; + + @BeforeEach + public void setup(Harness harness){ + HyposContractPrepare contractPrepare = new HyposContractPrepare(harness); + contractId = contractPrepare.createNewContract(harness); + contractPrepare.createNewContract(harness); + contractPrepare.closeBrowser(); + contractPrepare.addUnitToRealty(harness, contractId, REALTY_FLAT_VERIFICATION); + contractPrepare.closeBrowser(); + } + + @TestCase(name = "Adding unit to created realty.") + public void checkOrderFormElements(Harness harness) { + tasks = harness.tasks().hypos(); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.SUPERVISOR)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.valuationTasks().goToMarketValuationForm()) + .then(tasks.valuationTasks().checkElementsInOrderForm()) + ; + } + + @TestCase(name = "Creating a new valuation for flat.") + public void createValuationFlat(Harness harness){ + tasks = harness.tasks().hypos(); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.SUPERVISOR)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.valuationTasks().goToMarketValuationForm()) + .then(tasks.valuationTasks().doFlatMarketValuation(REALTY_FLAT_DESKTOP)) + ; + } + + @TestCase(name = "Creating a new valuation for house.") + public void createValuationHouse(Harness harness){ + tasks = harness.tasks().hypos(); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.SUPERVISOR)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.valuationTasks().goToMarketValuationForm()) + .then(tasks.valuationTasks().doHouseMarketValuation(REALTY_HOUSE_FULL)) + ; + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/collateral/hypos/RealtyUnitTests.java b/tests/src/test/java/cz/moneta/test/regression/collateral/hypos/RealtyUnitTests.java new file mode 100644 index 0000000..1787d56 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/collateral/hypos/RealtyUnitTests.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.collateral.hypos; + +import cz.moneta.test.dsl.hypos.contractPrepare.HyposContractPrepare; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.hypos.enums.HyposProfile; +import cz.moneta.test.dsl.hypos.tasks.HyposTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.BeforeAll; + + +@TestScenario(name = "Tests with unit in realties") +public class RealtyUnitTests { + + final static int REALTY_FLAT = 0; + final static int REALTY_HOUSE = 1; + + private HyposTasks tasks; + private static String contractId; + + @BeforeAll + public void setup(Harness harness){ + HyposContractPrepare contractPrepare = new HyposContractPrepare(harness); + contractId = contractPrepare.createNewContract(harness); + contractPrepare.closeBrowser(); + } + + @TestCase(name = "Adding unit to created realty.") + public void addUnitToRealty(Harness harness) { + tasks = harness.tasks().hypos(); + harness.withHypos() + .openLoginPage() + .then(tasks.loginToHyposWithProfile(HyposProfile.SUPERVISOR)) + .then(tasks.searchAndOpenContract(contractId)) + .then(tasks.valuationTasks().setNewRealty(REALTY_FLAT)) + .then(tasks.valuationTasks().checkUnitUsage(REALTY_FLAT)) + .then(tasks.valuationTasks().addUnitToRealty(REALTY_FLAT)) + ; + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/autoapi/codebooks/TokenTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/autoapi/codebooks/TokenTest.java new file mode 100644 index 0000000..f663cf8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/autoapi/codebooks/TokenTest.java @@ -0,0 +1,34 @@ +package cz.moneta.test.regression.commercial.auto.autoapi.codebooks; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.dsl.util.credentials.Keys.smart; + +@TestScenario(name = "Sending REST request to get authentication TOKEN") +public class TokenTest { + + @JiraTestCase(id = "LAMD-T1033") + @TestCase(name = "Call POST /lamder/authentication/login") + public void tcGetToken(Harness harness, @Key(smart.auto.general) Credentials credentials) { + String token = harness.withAutoApi() + .lamder() + .authentication() + .prepareLoginRequest() + .password(credentials.getPassword()) + .userName(credentials.getUsername()) + .securityCode("") + .send() + .getAccessToken() + .getToken(); + + harness.log("Authorization token from response is: " + token); + + Assertions.assertNotNull(token); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/AbstractTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/AbstractTest.java new file mode 100644 index 0000000..86615b2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/AbstractTest.java @@ -0,0 +1,87 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.*; +import org.junit.jupiter.api.BeforeEach; + +public abstract class AbstractTest { + + protected Harness harness; + protected Credentials generalCredentials; + + @BeforeEach + public void init(Harness harness, @Key(Keys.smart.auto.general) Credentials credentials) { + this.harness = harness; + generalCredentials = credentials; + } + + protected final void motorcycleTasks(CalculationData calculationData) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CompanyData companyData = SharedMock.prepareCompanyData(); + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(generalCredentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .then(smartAutoTasks.verification().checkNewCalculation()); + + } + + protected final void sharedTasks(CalculationData calculationData) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CompanyData companyData = SharedMock.prepareCompanyData(); + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(generalCredentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .then(smartAutoTasks.verification().checkNewCalculation()); + } + + protected final void trailerTasks(CalculationData calculationData) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CompanyData companyData = SharedMock.prepareCompanyData(); + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(generalCredentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .then(smartAutoTasks.verification().checkNewCalculation()); + } + + protected final void agroTpTasks(CalculationData calculationData) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CompanyData companyData = SharedMock.prepareCompanyData(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(generalCredentials)) + .then(smartAutoTasks.calculationType().makeCalculationAgro(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .then(smartAutoTasks.verification().checkNewCalculation()); + } + + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/AgroTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/AgroTest.java new file mode 100644 index 0000000..9916d42 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/AgroTest.java @@ -0,0 +1,125 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.*; + +@TestScenario(name = "Successfully filled agro.") +public class AgroTest extends InsuranceAndBenefitData { + + @JiraTestCase(id = "LAMD-T1411") + @TestCase(name = "Successfully filled agro with TP") + public void tcAgroWithTP(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = AgroMock.prepareCalculationDataWithTP(); + CompanyData companyData = SharedMock.prepareCompanyData(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculationAgro(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .clickVehiclePage() + .then(smartAutoTasks.data().doNotHaveVIN()) + .then(smartAutoTasks.data().checkAgroInformation(calculationData.getBrand(), calculationData.getModel())) + .then(smartAutoTasks.validation().validateVehiclePage()); + } + + @JiraTestCase(id = "LAMD-T1412") + @TestCase(name = "Successfully filled agro without TP") + public void tcAgroWithoutTP(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = AgroMock.prepareCalculationDataWithoutTP(); + CompanyData companyData = SharedMock.prepareCompanyData(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculationAgroWithoutTP(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .clickVehiclePage() + .then(smartAutoTasks.data().doNotHaveVIN()) + .then(smartAutoTasks.data().fillAgroAdditionalDataWithoutTP(null)) + .then(smartAutoTasks.data().checkAgroInformation(calculationData.getBrand(), calculationData.getModel())) + .then(smartAutoTasks.validation().validateVehiclePage()); + } + + @JiraTestCase(id = "LAMD-T1413") + @TestCase(name = "Successfully filled agro with TP C2C - Consumer") + public void tcAgroWithTPC2CConsumer(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = AgroMock.prepareCalculationDataWithTPC2C(); + CompanyData companyData = SharedMock.prepareCompanyData(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculationAgro(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .clickVehiclePage() + .then(smartAutoTasks.data().doNotHaveVIN()) + .then(smartAutoTasks.data().checkAgroInformation(calculationData.getBrand(), calculationData.getModel())) + .then(smartAutoTasks.validation().validateVehiclePage()) + .then(smartAutoTasks.account().fillOthersPageForC2CConsumer(777666555, 51, BankCode.KOMERCNI_BANKA, "Ok", "Jan", "Novák", "01.01.2000")); + } + + @JiraTestCase(id = "LAMD-T1414") + @TestCase(name = "Successfully filled agro with TP C2C - Businessman") + public void tcAgroWithTPC2CBusiness(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = AgroMock.prepareCalculationDataWithTPC2C(); + CompanyData companyData = SharedMock.prepareCompanyData(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculationAgro(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .clickVehiclePage() + .then(smartAutoTasks.data().checkAgroInformation(calculationData.getBrand(), calculationData.getModel())) + .then(smartAutoTasks.data().doNotHaveVIN()) + .then(smartAutoTasks.validation().validateVehiclePage()) + .then(smartAutoTasks.account().fillOthersPageForC2CBussiness(777777777, 51, BankCode.KOMERCNI_BANKA, "OK", "Nejlepší firma", "123654")); + } + + @JiraTestCase(id = "LAMD-T1638") + @TestCase(name = "Successfully filled agro with TP - Irregular payments - Businessman") + public void tcAgroWithTPIrregular(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = AgroMock.prepareCalculationDataWithTP(); + CompanyData companyData = SharedMock.prepareCompanyData(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculationAgro(calculationData)) + .then(smartAutoTasks.irregularPaymentTasks().addIrregularPayment(50000L)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .clickVehiclePage() + .then(smartAutoTasks.data().doNotHaveVIN()) + .then(smartAutoTasks.data().checkAgroInformation(calculationData.getBrand(), calculationData.getModel())) + .then(smartAutoTasks.validation().validateVehiclePage()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/ApplicationDuplicationTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/ApplicationDuplicationTest.java new file mode 100644 index 0000000..a94735b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/ApplicationDuplicationTest.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import java.util.Date; +import java.text.SimpleDateFormat; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "Application duplication.") +public class ApplicationDuplicationTest { + + @JiraTestCase(id = "LAMD-T1069") + @TestCase(name = "Successfully duplicated application.") + public void tcApplicationDuplicate(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + String duplicateDate = DateUtils.getFormattedTodayDate("dd.MM.yyyy"); + String duplicateTitle = "TestDuplikace-" + new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date()); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .clickMenuQueue() + .checkHeadingSendApplication() + .clickOpenApplication() + .clickDuplicateApplication() + .typeCalculationName(duplicateTitle) + .clickDuplicateApplicationButtonOk() + .clickMenuSaved() + .checkSavedCalculationHeading() + .checkForCalculationTitle(duplicateTitle) + .checkForCalculationDate(duplicateDate) + .checkForCalculationStatus(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationAgroTPTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationAgroTPTest.java new file mode 100644 index 0000000..6fa939f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationAgroTPTest.java @@ -0,0 +1,73 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.AgroMock; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.SharedMock; + +@TestScenario(name = "Successful filled new calculation for Agro.") +public class CalculationAgroTPTest extends AbstractTest { + + @JiraTestCase(id = "LAMD-T1359") + @TestCase(name = "Customer : Businessman_with_vat | State : New | Vat : Yes | Agro : Registered | Donation : Young farmer") + public void tcCalculationAgro1() { + agroTpTasks(AgroMock.prepareCalculationAgro1()); + } + + @JiraTestCase(id = "LAMD-T1373") + @TestCase(name = "Customer : Businessman_with_vat | State : Used | Vat : Yes | Agro : Registered | Donation : Young farmer") + public void tcCalculationAgro2() { + agroTpTasks(AgroMock.prepareCalculationAgro2()); + } + + @JiraTestCase(id = "LAMD-T1374") + @TestCase(name = "Customer : Businessman_without_vat | State : New | Vat : Yes | Agro : Registered | Donation : Young farmer") + public void tcCalculationAgro3() { + agroTpTasks(AgroMock.prepareCalculationAgro3()); + } + + @JiraTestCase(id = "LAMD-T1375") + @TestCase(name = "Customer : Businessman_without_vat | State : Used | Vat : Yes | Agro : Registered | Donation : Young farmer") + public void tcCalculationAgro4() { + agroTpTasks(AgroMock.prepareCalculationAgro4()); + } + + @JiraTestCase(id = "LAMD-T1514") + @TestCase(name = "Deferred drawing | Customer : Businessman_without_vat | State : New | Vat : Yes | Agro : Registered | Donation : Young farmer") + public void tcCalculationAgro5(Harness harness, @Key(smart.auto.general) Credentials credentials) { + CalculationData calculationData = AgroMock.prepareCalculationAgro5(); + CompanyData companyData = SharedMock.prepareCompanyData(); + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculationAgroDeferredDrawing(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .then(smartAutoTasks.verification().checkNewCalculation()) + .then(smartAutoTasks.save().saveNewCalculationPage()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillCompanyInformationFallbackAgro(companyData)) + .then(smartAutoTasks.identification().fillFirstRepresentativeIdentification(contactData, identificationData)) + .then(smartAutoTasks.bankContact().fillBusinessmanBankContact("51", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.financial().fillDoubleEntry(150000, 10000, 20000, 50000, 200000)) + .then(smartAutoTasks.validation().validateCustomerPage()) + .then(smartAutoTasks.data().checkAgroInformation(Brand.JCB, Model.MODEL)) + .then(smartAutoTasks.data().fillDeferredDrawing("Popis", "Příslušenství")) + .then(smartAutoTasks.validation().validateVehiclePage()) + .then(smartAutoTasks.account().fillOthersPageForStandard(721456790, "Testuji automaticky :)")) + .then(smartAutoTasks.validation().validateOthersPage()) + .then(smartAutoTasks.application().sendApplicationPGRLF()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationAgroWithoutTPTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationAgroWithoutTPTest.java new file mode 100644 index 0000000..446c3d8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationAgroWithoutTPTest.java @@ -0,0 +1,67 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.*; + +@TestScenario(name = "Successful filled new calculation for Agro.") +public class CalculationAgroWithoutTPTest { + + @JiraTestCase(id = "LAMD-T1360") + @TestCase(name = "Customer : Businessman_with_vat | State : New | Vat : Yes | Agro : Not registered | Donation : Young farmer") + public void tcCalculationAgroNoTP1(Harness harness, @Key(smart.auto.general) Credentials credentials) { + CalculationData calculationData = AgroMock.prepareCalculationAgroNoTP1(); + CompanyData companyData = SharedMock.prepareCompanyData(); + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculationAgroWithoutTP(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .then(smartAutoTasks.verification().checkNewCalculation()); + } + + @JiraTestCase(id = "LAMD-T1513") + @TestCase(name = "Deferred drawing | Customer : Businessman_without_vat | State : New | Vat : Yes | Agro : Not registered | Donation : Young farmer") + public void tcCalculationAgroNoTP2(Harness harness, @Key(smart.auto.general) Credentials credentials) { + CalculationData calculationData = AgroMock.prepareCalculationAgroNoTP2(); + CompanyData companyData = SharedMock.prepareCompanyData(); + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculationAgroWithoutTPDeferredDrawing(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .then(smartAutoTasks.verification().checkNewCalculation()) + .then(smartAutoTasks.save().saveNewCalculationPage()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillCompanyInformation(companyData)) + .then(smartAutoTasks.identification().fillFirstRepresentativeIdentification(contactData, identificationData)) + .then(smartAutoTasks.bankContact().fillBusinessmanBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.financial().fillDoubleEntry(150000, 10000, 20000, 50000, 200000)) + .then(smartAutoTasks.validation().validateCustomerPage()) + .then(smartAutoTasks.data().checkAgroInformation(Brand.JCB, Model.MODEL)) + .then(smartAutoTasks.data().fillDeferredDrawing("Popis", "Příslušenství")) + .then(smartAutoTasks.validation().validateVehiclePage()) + .then(smartAutoTasks.account().fillOthersPageForStandard(721456790, "Testuji automaticky :)")) + .then(smartAutoTasks.validation().validateOthersPage()) + .then(smartAutoTasks.application().sendApplicationPGRLF()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationCarTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationCarTest.java new file mode 100644 index 0000000..4b8253b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationCarTest.java @@ -0,0 +1,86 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.CarMock; + +@TestScenario(name = "Successful filled new calculation for car.") +public class CalculationCarTest extends AbstractTest { + @JiraTestCase(id = "LAMD-T981") + @TestCase(name = "Commodity: car, Customer: consumer, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCar1() { + sharedTasks(CarMock.prepareCalculationCar1()); + } + + @JiraTestCase(id = "LAMD-T982") + @TestCase(name = "Commodity: car, Customer: consumer, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: Standard, VAT: yes, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCar1_1() { + sharedTasks(CarMock.prepareCalculationCar1_1()); + } + + @JiraTestCase(id = "LAMD-T983") + @TestCase(name = "Commodity: car, Customer: consumer, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCar2() { + sharedTasks(CarMock.prepareCalculationCar2()); + } + + @JiraTestCase(id = "LAMD-T984") + @TestCase(name = "Commodity: car, Customer: consumer, State: used, Type: M1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCar4() { + sharedTasks(CarMock.prepareCalculationCar4()); + } + + @JiraTestCase(id = "LAMD-T985") + @TestCase(name = "Commodity: car, Customer: consumer, State: used, Type: M1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCar5() { + sharedTasks(CarMock.prepareCalculationCar5()); + } + + @JiraTestCase(id = "LAMD-T986") + @TestCase(name = "Commodity: car, Customer: businessman without vat, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCar7() { + sharedTasks(CarMock.prepareCalculationCar7()); + } + + @JiraTestCase(id = "LAMD-T987") + @TestCase(name = "Commodity: car, Customer: businessman without vat, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCar8() { + sharedTasks(CarMock.prepareCalculationCar8()); + } + + @JiraTestCase(id = "LAMD-T988") + @TestCase(name = "Commodity: car, Customer: businessman without vat, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: Back loan, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCar9() { + sharedTasks(CarMock.prepareCalculationCar9()); + } + + @JiraTestCase(id = "LAMD-T989") + @TestCase(name = "Commodity: car, Customer: businessman without vat, State: used, Type: M1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCar10() { + sharedTasks(CarMock.prepareCalculationCar10()); + } + + @JiraTestCase(id = "LAMD-T990") + @TestCase(name = "Commodity: car, Customer: businessman without vat, State: used, Type: M1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCar11() { + sharedTasks(CarMock.prepareCalculationCar11()); + } + + @JiraTestCase(id = "LAMD-T991") + @TestCase(name = "Commodity: car, Customer: businessman without vat, State: used, Type: M1, Product: autoCREDIT," + + "Product Type: Back loan, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCar12() { + sharedTasks(CarMock.prepareCalculationCar12()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationCaravanTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationCaravanTest.java new file mode 100644 index 0000000..05e802c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationCaravanTest.java @@ -0,0 +1,86 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.CaravanMock; + +@TestScenario(name = "Successful filled new calculation for caravan.") +public class CalculationCaravanTest extends AbstractTest { + @JiraTestCase(id = "LAMD-T970") + @TestCase(name = "Commodity: caravan, Customer: consumer, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCaravan1() { + sharedTasks(CaravanMock.prepareCalculationCaravan1()); + } + + @JiraTestCase(id = "LAMD-T971") + @TestCase(name = "Commodity: caravan, Customer: consumer, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: Standard, VAT: yes, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCaravan1_1() { + sharedTasks(CaravanMock.prepareCalculationCaravan1_1()); + } + + @JiraTestCase(id = "LAMD-T972") + @TestCase(name = "Commodity: caravan, Customer: consumer, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCaravan2() { + sharedTasks(CaravanMock.prepareCalculationCaravan2()); + } + + @JiraTestCase(id = "LAMD-T973") + @TestCase(name = "Commodity: caravan, Customer: consumer, State: used, Type: M1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCaravan4() { + sharedTasks(CaravanMock.prepareCalculationCaravan4()); + } + + @JiraTestCase(id = "LAMD-T974") + @TestCase(name = "Commodity: caravan, Customer: consumer, State: used, Type: M1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCaravan5() { + sharedTasks(CaravanMock.prepareCalculationCaravan5()); + } + + @JiraTestCase(id = "LAMD-T975") + @TestCase(name = "Commodity: caravan, Customer: businessman without vat, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCaravan7() { + sharedTasks(CaravanMock.prepareCalculationCaravan7()); + } + + @JiraTestCase(id = "LAMD-T976") + @TestCase(name = "Commodity: caravan, Customer: businessman without vat, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCaravan8() { + sharedTasks(CaravanMock.prepareCalculationCaravan8()); + } + + @JiraTestCase(id = "LAMD-T977") + @TestCase(name = "Commodity: caravan, Customer: businessman without vat, State: new, Type: M1, Product: autoCREDIT," + + "Product Type: Back loan, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCaravan9() { + sharedTasks(CaravanMock.prepareCalculationCaravan9()); + } + + @JiraTestCase(id = "LAMD-T978") + @TestCase(name = "Commodity: caravan, Customer: businessman without vat, State: used, Type: M1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCaravan10() { + sharedTasks(CaravanMock.prepareCalculationCaravan10()); + } + + @JiraTestCase(id = "LAMD-T979") + @TestCase(name = "Commodity: caravan, Customer: businessman without vat, State: used, Type: M1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCaravan11() { + sharedTasks(CaravanMock.prepareCalculationCaravan11()); + } + + @JiraTestCase(id = "LAMD-T980") + @TestCase(name = "Commodity: caravan, Customer: businessman without vat, State: used, Type: M1, Product: autoCREDIT," + + "Product Type: Back loan, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationCaravan12() { + sharedTasks(CaravanMock.prepareCalculationCaravan12()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationMotorcycleTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationMotorcycleTest.java new file mode 100644 index 0000000..43186db --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationMotorcycleTest.java @@ -0,0 +1,87 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.MotorcycleMock; + +@TestScenario(name = "Successful filled new calculation for motorcycle.") +public class CalculationMotorcycleTest extends AbstractTest { + + @JiraTestCase(id = "LAMD-T992") + @TestCase(name = "Commodity: motorcycle, Customer: consumer, State: new, Type: L3, Product: motoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationMotorcycle1() { + motorcycleTasks(MotorcycleMock.prepareCalculationMotorcycle1()); + } + + @JiraTestCase(id = "LAMD-T993") + @TestCase(name = "Commodity: motorcycle, Customer: consumer, State: new, Type: L3, Product: motoCREDIT," + + "Product Type: Standard, VAT: yes, Insurance: yes, Accident insurance: yes.") + public void tcCalculationMotorcycle1_1() { + motorcycleTasks(MotorcycleMock.prepareCalculationMotorcycle1_1()); + } + + @JiraTestCase(id = "LAMD-T994") + @TestCase(name = "Commodity: motorcycle, Customer: consumer, State: new, Type: L3, Product: motoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationMotorcycle2() { + motorcycleTasks(MotorcycleMock.prepareCalculationMotorcycle2()); + } + + @JiraTestCase(id = "LAMD-T995") + @TestCase(name = "Commodity: motorcycle, Customer: consumer, State: used, Type: L3, Product: motoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationMotorcycle4() { + motorcycleTasks(MotorcycleMock.prepareCalculationMotorcycle4()); + } + + @JiraTestCase(id = "LAMD-T996") + @TestCase(name = "Commodity: motorcycle, Customer: consumer, State: used, Type: L3, Product: motoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationMotorcycle5() { + motorcycleTasks(MotorcycleMock.prepareCalculationMotorcycle5()); + } + + @JiraTestCase(id = "LAMD-T997") + @TestCase(name = "Commodity: motorcycle, Customer: businessman without vat, State: new, Type: L3, Product: motoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationMotorcycle7() { + motorcycleTasks(MotorcycleMock.prepareCalculationMotorcycle7()); + } + + @JiraTestCase(id = "LAMD-T998") + @TestCase(name = "Commodity: motorcycle, Customer: businessman without vat, State: new, Type: L3, Product: motoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationMotorcycle8() { + motorcycleTasks(MotorcycleMock.prepareCalculationMotorcycle8()); + } + + @JiraTestCase(id = "LAMD-T999") + @TestCase(name = "Commodity: motorcycle, Customer: businessman without vat, State: new, Type: L3, Product: motoCREDIT," + + "Product Type: Back loan, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationMotorcycle9() { + motorcycleTasks(MotorcycleMock.prepareCalculationMotorcycle9()); + } + + @JiraTestCase(id = "LAMD-T1000") + @TestCase(name = "Commodity: motorcycle, Customer: businessman without vat, State: used, Type: L3, Product: motoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationMotorcycle10() { + motorcycleTasks(MotorcycleMock.prepareCalculationMotorcycle10()); + } + + @JiraTestCase(id = "LAMD-T1001") + @TestCase(name = "Commodity: motorcycle, Customer: businessman without vat, State: used, Type: L3, Product: motoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationMotorcycle11() { + motorcycleTasks(MotorcycleMock.prepareCalculationMotorcycle11()); + } + + @JiraTestCase(id = "LAMD-T1002") + @TestCase(name = "Commodity: motorcycle, Customer: businessman without vat, State: used, Type: L3, Product: motoCREDIT," + + "Product Type: Back loan, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationMotorcycle12() { + motorcycleTasks(MotorcycleMock.prepareCalculationMotorcycle12()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationTrailerTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationTrailerTest.java new file mode 100644 index 0000000..349b806 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CalculationTrailerTest.java @@ -0,0 +1,100 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.TrailerMock; + +@TestScenario(name = "Successful filled new calculation for trailer.") +public class CalculationTrailerTest extends AbstractTest { + + /* + * CONSUMER + */ + @JiraTestCase(id = "LAMD-T1003") + @TestCase(name = "Commodity: trailer, Customer: consumer, State: new, Type: O1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationTrailer1() { + trailerTasks(TrailerMock.PrepareCalculationTrailer1()); + } + + @JiraTestCase(id = "LAMD-T1004") + @TestCase(name = "Commodity: trailer, Customer: consumer, State: new, Type: O1, Product: autoCREDIT," + + "Product Type: Standard, VAT: yes, Insurance: yes, Accident insurance: yes.") + public void tcCalculationTrailer1_1() { + trailerTasks(TrailerMock.PrepareCalculationTrailer1_1()); + } + + @JiraTestCase(id = "LAMD-T1005") + @TestCase(name = "Commodity: trailer, Customer: consumer, State: new, Type: O1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationTrailer2() { + trailerTasks(TrailerMock.PrepareCalculationTrailer2()); + } + + /* + * PLACEHOLDER FOR TC 3 BACK LOAN CONSUMER NEW - NOT SELLING AT THIS MOMENT + */ + @JiraTestCase(id = "LAMD-T1006") + @TestCase(name = "Commodity: trailer, Customer: consumer, State: used, Type: O1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationTrailer4() { + trailerTasks(TrailerMock.PrepareCalculationTrailer4()); + } + + @JiraTestCase(id = "LAMD-T1007") + @TestCase(name = "Commodity: trailer, Customer: consumer, State: used, Type: O1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationTrailer5() { + trailerTasks(TrailerMock.PrepareCalculationTrailer5()); + } + + /* + * PLACEHOLDER FOR TC 6 BACK LOAN CONSUMER USED - NOT SELLING AT THIS MOMENT + */ + + /* + * BUSINESSMAN WITHOUT VAT + */ + @JiraTestCase(id = "LAMD-T1008") + @TestCase(name = "Commodity: trailer, Customer: businessman without vat, State: new, Type: O1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationTrailer7() { + trailerTasks(TrailerMock.PrepareCalculationTrailer7()); + } + + @JiraTestCase(id = "LAMD-T1009") + @TestCase(name = "Commodity: trailer, Customer: businessman without vat, State: new, Type: O1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationTrailer8() { + trailerTasks(TrailerMock.PrepareCalculationTrailer8()); + } + + @JiraTestCase(id = "LAMD-T1010") + @TestCase(name = "Commodity: trailer, Customer: businessman without vat, State: new, Type: O1, Product: autoCREDIT," + + "Product Type: Back loan, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationTrailer9() { + trailerTasks(TrailerMock.PrepareCalculationTrailer9()); + } + + @JiraTestCase(id = "LAMD-T1011") + @TestCase(name = "Commodity: trailer, Customer: businessman without vat, State: used, Type: O1, Product: autoCREDIT," + + "Product Type: Standard, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationTrailer10() { + trailerTasks(TrailerMock.PrepareCalculationTrailer10()); + } + + @JiraTestCase(id = "LAMD-T1012") + @TestCase(name = "Commodity: trailer, Customer: businessman without vat, State: used, Type: O1, Product: autoCREDIT," + + "Product Type: C2C, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationTrailer11() { + trailerTasks(TrailerMock.PrepareCalculationTrailer11()); + } + + @JiraTestCase(id = "LAMD-T1013") + @TestCase(name = "Commodity: trailer, Customer: businessman without vat, State: used, Type: O1, Product: autoCREDIT," + + "Product Type: Back loan, VAT: no, Insurance: yes, Accident insurance: yes.") + public void tcCalculationTrailer12() { + trailerTasks(TrailerMock.PrepareCalculationTrailer12()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/ChangePasswordTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/ChangePasswordTest.java new file mode 100644 index 0000000..242c0a2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/ChangePasswordTest.java @@ -0,0 +1,37 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "Change password") +public class ChangePasswordTest { + + @JiraTestCase(id = "LAMD-T1014") + @TestCase(name = "Operator is able to successfully change password") + public void tcSuccessfulChangePassword(Harness harness, @Key(smart.auto.general) Credentials credentials) { + + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .clickOperatorOptions() + .clickChangePassword() + .typeOldPassword(credentials.getPassword()) + .typeNewPassword("Automobil1*") + .typeNewPasswordConfirm("Automobil1*") + .clickChangePassword() + .checkSuccessfulChangedPasswordMessage() + .typeOldPassword("Automobil1*") + .typeNewPassword(credentials.getPassword()) + .typeNewPasswordConfirm(credentials.getPassword()) + .clickChangePassword() + .checkSuccessfulChangedPasswordMessage(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CompleteApplicationTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CompleteApplicationTest.java new file mode 100644 index 0000000..bf87177 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CompleteApplicationTest.java @@ -0,0 +1,189 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.NewCalculationPage; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.auto.smartauto.util.MonthUtil; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.SharedMock; + +import java.util.function.Function; + +@TestScenario(name = "Successful created complete application.") +public class CompleteApplicationTest { + + @JiraTestCase(id = "LAMD-T967") + @TestCase(name = "Customer: businessman, Commodity: car, Product: C2C") + public void tcCompleteApplicationBusinessmanCar(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = prepareCalculationData(Customer.BUSINESSMAN_WITHOUT_VAT, PrGroup.CAR, Group.M1, Brand.SKODA, Model.FABIA, Product.AUTO_CREDIT_C2C, "TMBPH16Y013217915", null); + + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + CompanyData companyData = SharedMock.prepareCompanyData(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .then(smartAutoTasks.verification().checkNewCalculation()) + .then(smartAutoTasks.save().saveNewCalculationPage()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillBusinessmanInformation(companyData)) + .then(smartAutoTasks.identification().fillFirstRepresentativeIdentification(contactData, identificationData)) + .then(smartAutoTasks.bankContact().fillBusinessmanBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.financial().clickDoubleEntry()) + .then(smartAutoTasks.validation().validateCustomerPage()) + .then(smartAutoTasks.data().checkVehicleInformation(Brand.SKODA, Model.FABIA)) + .then(smartAutoTasks.data().checkAndAddAdditionalData(FilterFuel.PETROL, 5000, "Popis vozidla", ImportVehicle.NO, DealerIsOwner.NO)) + .then(smartAutoTasks.validation().validateVehiclePage()) + .then(smartAutoTasks.account().fillOthersPageForC2CBussiness(721456790, 19, BankCode.KOMERCNI_BANKA, "Testuji automaticky :)", "VSV Group s.r.o.", "24789712")) + .then(smartAutoTasks.validation().validateOthersPage()) + .then(smartAutoTasks.application().sendApplication()); + } + + @JiraTestCase(id = "LAMD-T968") + @TestCase(name = "Customer: consumer, Commodity: motorcycle, Product: Standard") + public void tcCompleteApplicationConsumerMotorcycle(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = prepareCalculationData(Customer.CONSUMER, PrGroup.MOTORCYCLE, Group.LC, Brand.HARLEY, Model.SOFTAIL, Product.MOTO_CREDIT_STANDARD, "1HD1JRV15DB031048", FilterFuel.PETROL); + calculationData.setYear(Year._2023).setMonth("Prosinec").setPrClass(PrClass.CARUSED); + + ContactData contactData = SharedMock.prepareContactDataWoman(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataWoman(); + CompanyData companyData = SharedMock.prepareCompanyData(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculationWithRegistrationDate(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .then(editInstalmentComputation()) + .then(smartAutoTasks.verification().checkNewCalculation()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillContactInformation(contactData)) + .then(smartAutoTasks.identification().fillIdentification(identificationData)) + .then(smartAutoTasks.bankContact().fillBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.personalData().fillPersonalData(MaritalStatus.SINGLE, 2, HousingKind.OWN_FLAT, Education.COLLEGE)) + .then(smartAutoTasks.employment().fillEmploymentCertainPeriodNoticePeriod("01.01.2018", "01.01.2035", "01.01.2035", "SW Developer")) + .then(smartAutoTasks.revenuesAndExpenses().fillRevenuesAndExpensesNoSource(300000, 500000, 10000, 10000)) + .then(smartAutoTasks.company().fillCompanyRegistered(companyData)) + .then(smartAutoTasks.save().saveCustomerPage()) + .then(smartAutoTasks.validation().validateCustomerPage()) + .then(smartAutoTasks.data().checkVehicleInformation(Brand.HARLEY, Model.SOFTAIL)) + .then(smartAutoTasks.search().searchVehicleWithFilters(FilterFuel.PETROL, null, FilterBodywork.OTHERS, FilterGearbox.MANUAL, FilterDoors.ZERO, Model.SOFTAIL_BREAKOUT)) + .then(smartAutoTasks.data().checkAndAddAdditionalData(FilterFuel.PETROL, 5000, "Popis vozidla", ImportVehicle.NO, DealerIsOwner.NO)) + .then(smartAutoTasks.save().saveVehiclePage()) + .then(smartAutoTasks.validation().validateVehiclePage()) + .then(smartAutoTasks.account().fillOthersPageForStandard(721456790, "Testuji automaticky :)")) + .then(smartAutoTasks.save().saveOthersPage()) + .then(smartAutoTasks.validation().validateOthersPage()) + .then(smartAutoTasks.application().sendApplication()); + } + + @JiraTestCase(id = "LAMD-T943") + @TestCase(name = "Customer: businessman, Commodity: caravan, Product: Back loan") + public void tcCompleteApplicationBusinessmanCaravan(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = prepareCalculationData(Customer.BUSINESSMAN_WITHOUT_VAT, PrGroup.CAR, Group.M1, Brand.FIAT, Model.BRAVO, Product.AUTO_CREDIT_BACK_LOAN, "ZFA18200004677459", null); + + calculationData.setUsage(Usage.CARAVAN); + calculationData.setYear(Year._2019).setMonth("Prosinec").setPrClass(PrClass.CARUSED); + + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + CompanyData companyData = SharedMock.prepareCompanyData(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculationWithRegistrationDate(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .then(smartAutoTasks.verification().checkNewCalculation()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillBusinessmanInformation(companyData)) + .then(smartAutoTasks.identification().fillFirstRepresentativeIdentification(contactData, identificationData)) + .then(smartAutoTasks.bankContact().fillBusinessmanBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.financial().fillDoubleEntry(100000, 50000, 100000, 100000, 100000)) + .then(smartAutoTasks.validation().validateCustomerPage()) + .then(smartAutoTasks.data().checkVehicleInformation(Brand.FIAT, Model.BRAVO)) + .then(smartAutoTasks.data().checkAndAddAdditionalData(FilterFuel.OIL, 5000, "Popis vozidla", ImportVehicle.NO, DealerIsOwner.NO)) + .then(smartAutoTasks.validation().validateVehiclePage()) + .then(smartAutoTasks.account().fillOthersPageForStandard(721456790, "Testuji automaticky :)")) + .then(smartAutoTasks.validation().validateOthersPage()) + .then(smartAutoTasks.application().sendApplication()); + } + + @JiraTestCase(id = "LAMD-T1044") + @TestCase(name = "Customer: consumer, Commodity: trailer, Product: C2C") + public void tcCompleteApplicationConsumerTrailer(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = prepareCalculationData(Customer.CONSUMER, PrGroup.TRAILER, Group.O1, Brand.AGADOS, Model.HANDY, Product.AUTO_CREDIT_C2C, "", FilterFuel.WITHOUT_FUEL); + calculationData.setUsage(Usage.OTHERS); + calculationData.setYear(Year._2019).setMonth("Leden").setPrClass(PrClass.CARUSED); + + ContactData contactData = SharedMock.prepareContactDataWoman(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataWoman(); + CompanyData companyData = SharedMock.prepareCompanyData(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculationWithRegistrationDate(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .then(smartAutoTasks.verification().checkNewCalculation()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillContactInformation(contactData)) + .then(smartAutoTasks.identification().fillIdentification(identificationData)) + .then(smartAutoTasks.bankContact().fillBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.personalData().fillPersonalData(MaritalStatus.SINGLE, 2, HousingKind.OWN_FLAT, Education.COLLEGE)) + .then(smartAutoTasks.employment().fillEmploymentCertainPeriodNoticePeriod("01.01.2018", "01.01.2036", "01.01.2036", "SW Developer")) + .then(smartAutoTasks.revenuesAndExpenses().fillRevenuesAndExpensesNoSource(300000, 500000, 100000, 100000)) + .then(smartAutoTasks.company().fillCompanyRegistered(companyData)) + .then(smartAutoTasks.validation().validateCustomerPage()) + .then(smartAutoTasks.data().doNotHaveVIN()) + .then(smartAutoTasks.data().checkVehicleInformation(Brand.AGADOS, Model.HANDY)) + .then(smartAutoTasks.data().fillFilterFuel2(FilterFuel.WITHOUT_FUEL, 5000, "Popis vozidla", ImportVehicle.NO, DealerIsOwner.NO)) + .then(smartAutoTasks.validation().validateVehiclePage()) + .then(smartAutoTasks.account().fillOthersPageForC2CConsumer(721456790, 19, BankCode.KOMERCNI_BANKA, "Testuji automaticky :)", "František", "Tester", "19.02.2002")) + .then(smartAutoTasks.validation().validateOthersPage()) + .then(smartAutoTasks.application().sendApplication()); + } + + private Function editInstalmentComputation() { + return start -> start.editInstalmentComputation(((Integer) 30).toString()) + .lostFocus(); + } + + private CalculationData prepareCalculationData(Customer customer, PrGroup prGroup, Group group, Brand brand, Model model, Product product, String vin, FilterFuel fuel) { + CalculationData calculationData = new CalculationData(); + return calculationData.setCustomer(customer) + .setPrClass(PrClass.CARNEW) + .setPrGroup(prGroup) + .setGroup(group) + .setBrand(brand) + .setModel(model) + .setVin(vin) + .setFuel(fuel) + .setPrice(500000) + .setVat(Vat.NO) + .setUsage(Usage.OTHERS) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(product); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CustomerBusinessmanTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CustomerBusinessmanTest.java new file mode 100644 index 0000000..73dc92b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CustomerBusinessmanTest.java @@ -0,0 +1,91 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.CarMock; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.SharedMock; + +@TestScenario(name = "Filling Customer businessman.") +public class CustomerBusinessmanTest extends InsuranceAndBenefitData { + + @JiraTestCase(id = "LAMD-T1015") + @TestCase(name = "Representative: one, Nationality: CZ, Financial information: double entry, Sex: man") + public void tcCustomerBusinessman1(Harness harness, @Key(Keys.smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + CompanyData companyData = SharedMock.prepareCompanyData(); + CalculationData calculationData = CarMock.prepareCalculationCar11(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillCompanyInformation(companyData)) + .then(smartAutoTasks.identification().fillFirstRepresentativeIdentification(contactData, identificationData)) + .then(smartAutoTasks.bankContact().fillBusinessmanBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.financial().clickDoubleEntry()) + .then(smartAutoTasks.validation().validateCustomerPage()); + } + + @JiraTestCase(id = "LAMD-T1016") + @TestCase(name = "Representative: one, Nationality: Slovakia, Financial information: tax records, Sex: woman") + public void tcCustomerBusinessman2(Harness harness, @Key(Keys.smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + ContactData contactData = SharedMock.prepareContactDataWoman(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataWoman().setNationality(Nationality.SLOVAKIA).setStayType(StayType.PERMANENT); + CompanyData companyData = SharedMock.prepareCompanyData().setCompany(Company.ELTODO).setIco(Ico.ELTODO); + CalculationData calculationData = CarMock.prepareCalculationCar11(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillBusinessmanInformation(companyData)) + .then(smartAutoTasks.identification().fillFirstRepresentativeIdentificationNotResident(contactData, identificationData)) + .then(smartAutoTasks.bankContact().fillBusinessmanBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.financial().clickDoubleEntry()) + .then(smartAutoTasks.validation().validateCustomerPage()); + } + + @JiraTestCase(id = "LAMD-T1017") + @TestCase(name = "Representative: two, Nationality: CZ, Financial information: tax records, Sex: man") + public void tcCustomerBusinessman3(Harness harness, @Key(Keys.smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + CompanyData companyData = SharedMock.prepareCompanyData(); + CalculationData calculationData = CarMock.prepareCalculationCar11(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData, companyData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillCompanyInformation(companyData)) + .then(smartAutoTasks.identification().fillFirstRepresentativeIdentification(contactData, identificationData)) + .then(smartAutoTasks.financial().clickDoubleEntry()) + .then(smartAutoTasks.validation().validateCustomerPage()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CustomerConsumerTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CustomerConsumerTest.java new file mode 100644 index 0000000..1f9d493 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/CustomerConsumerTest.java @@ -0,0 +1,155 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.CarMock; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.SharedMock; + +@TestScenario(name = "Filling Customer consumer.") +public class CustomerConsumerTest extends InsuranceAndBenefitData { + + @JiraTestCase(id = "LAMD-T1018") + @TestCase(name = "Nationality: CZ, Employment: indefinite period, Employer: registered in CZ") + public void tcCustomerConsumer1(Harness harness, @Key(Keys.smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + ContactData contactData = SharedMock.prepareContactDataWoman(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataWoman(); + CompanyData companyData = SharedMock.prepareCompanyData(); + CalculationData calculationData = CarMock.prepareCalculationCar1(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillContactInformation(contactData)) + .then(smartAutoTasks.identification().fillIdentification(identificationData)) + .then(smartAutoTasks.bankContact().fillBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.personalData().fillPersonalData(MaritalStatus.SINGLE, 2, HousingKind.OWN_FLAT, Education.COLLEGE)) + .then(smartAutoTasks.employment().fillEmployment(Employment.INDEFINITE_PERIOD, "01.01.2010", "SW Developer")) + .then(smartAutoTasks.revenuesAndExpenses().fillRevenuesAndExpenses(30000, 50000, 10000, 10000)) + .then(smartAutoTasks.company().fillCompanyRegistered(companyData)) + .then(smartAutoTasks.validation().validateCustomerPage()); + } + + @JiraTestCase(id = "LAMD-T1019") + @TestCase(name = "Nationality: CZ, Employment: indefinite period, Employer: NOT registered in CZ") + public void tcCustomerConsumer2(Harness harness, @Key(Keys.smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + ContactData contactData = SharedMock.prepareContactDataWoman(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataWoman(); + CompanyData companyData = SharedMock.prepareCompanyData(); + CalculationData calculationData = CarMock.prepareCalculationCar1(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillContactInformation(contactData)) + .then(smartAutoTasks.identification().fillIdentification(identificationData)) + .then(smartAutoTasks.bankContact().fillBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.personalData().fillPersonalData(MaritalStatus.SINGLE, 2, HousingKind.OWN_FLAT, Education.COLLEGE)) + .then(smartAutoTasks.employment().fillEmployment(Employment.INDEFINITE_PERIOD, "01.01.2010", "SW Developer")) + .then(smartAutoTasks.revenuesAndExpenses().fillRevenuesAndExpenses(30000, 50000, 10000, 10000)) + .then(smartAutoTasks.company().fillCompanyRegistered(companyData)) + .then(smartAutoTasks.validation().validateCustomerPage()); + } + + @JiraTestCase(id = "LAMD-T1020") + @TestCase(name = "Nationality: SLOVAKIA, Employment: indefinite period, Employer: registered in CZ") + public void tcCustomerConsumer3(Harness harness, @Key(Keys.smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + CompanyData companyData = SharedMock.prepareCompanyData(); + CalculationData calculationData = CarMock.prepareCalculationCar1(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillContactInformation(contactData)) + .then(smartAutoTasks.identification().fillIdentification(identificationData)) + .then(smartAutoTasks.bankContact().fillBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.personalData().fillPersonalData(MaritalStatus.SINGLE, 2, HousingKind.OWN_FLAT, Education.COLLEGE)) + .then(smartAutoTasks.employment().fillEmployment(Employment.INDEFINITE_PERIOD, "01.01.2010", "SW Developer")) + .then(smartAutoTasks.revenuesAndExpenses().fillRevenuesAndExpenses(30000, 50000, 10000, 10000)) + .then(smartAutoTasks.company().fillCompanyRegistered(companyData)) + .then(smartAutoTasks.validation().validateCustomerPage()); + } + + @JiraTestCase(id = "LAMD-T1021") + @TestCase(name = "Nationality: CZ, Employment: retirement") + public void tcCustomerConsumer4(Harness harness, @Key(Keys.smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + ContactData contactData = SharedMock.prepareContactDataWoman(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataWoman(); + CalculationData calculationData = CarMock.prepareCalculationCar1(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillContactInformation(contactData)) + .then(smartAutoTasks.identification().fillIdentification(identificationData)) + .then(smartAutoTasks.bankContact().fillBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.personalData().fillPersonalData(MaritalStatus.SINGLE, 2, HousingKind.RENTED_FLAT, Education.HIGHSCHOOL)) + .then(smartAutoTasks.employment().fillEmploymentRetirement("01.01.2010")) + .then(smartAutoTasks.revenuesAndExpenses().fillRevenuesAndExpenses(30000, 50000, 10000, 10000)) + .then(smartAutoTasks.validation().validateCustomerPage()); + } + + @JiraTestCase(id = "LAMD-T1022") + @TestCase(name = "Nationality: CZ, Employment: certain time, client in notice period, Employer: registered in CZ") + public void tcCustomerConsumer5(Harness harness, @Key(Keys.smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + ContactData contactData = SharedMock.prepareContactDataWoman(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataWoman(); + CompanyData companyData = SharedMock.prepareCompanyData(); + CalculationData calculationData = CarMock.prepareCalculationCar1(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillContactInformation(contactData)) + .then(smartAutoTasks.identification().fillIdentification(identificationData)) + .then(smartAutoTasks.bankContact().fillBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.personalData().fillPersonalData(MaritalStatus.SINGLE, 2, HousingKind.OWN_FLAT, Education.COLLEGE)) + .then(smartAutoTasks.employment().fillEmploymentCertainPeriodNoticePeriod("01.01.2018", "01.01.2035", "01.01.2035", "SW Developer")) + .then(smartAutoTasks.revenuesAndExpenses().fillRevenuesAndExpenses(30000, 500000, 10000, 10000)) + .then(smartAutoTasks.company().fillCompanyRegistered(companyData)) + .then(smartAutoTasks.validation().validateCustomerPage()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/ESubsidiesTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/ESubsidiesTest.java new file mode 100644 index 0000000..9b12adf --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/ESubsidiesTest.java @@ -0,0 +1,65 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.auto.smartauto.util.MonthUtil; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.SharedMock; + +@TestScenario(name = "eSubsidies at SMARTauto.") +public class ESubsidiesTest { + + @JiraTestCase(id = "LAMD-T1800") + @TestCase(name = "Test Full Calculation with Subsidy") + public void tcESubsidyCalculation(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = prepareCalculationData(Customer.BUSINESSMAN_WITHOUT_VAT); + CompanyData companyData = SharedMock.prepareCompanyData(); + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeSubsidyCalculation(calculationData, companyData, contactData, identificationData, smartAutoTasks)) + .then(smartAutoTasks.verification().checkNewCalculation()) + .then(smartAutoTasks.save().saveNewCalculationPage()) + .clickCreateApplication() + .then(smartAutoTasks.contact().fillBusinessmanInformation(companyData)) + .then(smartAutoTasks.identification().fillFirstRepresentativeIdentification(contactData, identificationData)) + .then(smartAutoTasks.contact().fillCompanyInformationFallback(companyData)) + .then(smartAutoTasks.bankContact().fillBusinessmanBankContact("212345", BankCode.KOMERCNI_BANKA)) + .then(smartAutoTasks.financial().clickDoubleEntry()) + .then(smartAutoTasks.validation().validateCustomerPage()) + .then(smartAutoTasks.data().checkVehicleInformation(calculationData.getBrand(), calculationData.getModel())) + .then(smartAutoTasks.search().searchVehicleWithVin("TMBEA6NJXFZ070004", FilterFuel.PETROL, Model.FABIA)) + .then(smartAutoTasks.data().checkAndAddAdditionalData(FilterFuel.PETROL, 5000, "Popis vozidla", ImportVehicle.NO, DealerIsOwner.NO)) + .then(smartAutoTasks.validation().validateVehiclePage()) + .then(smartAutoTasks.account().fillOthersPageForStandard(721456790, "eDotace Testy :D")) + .then(smartAutoTasks.validation().validateOthersPage()) + .then(smartAutoTasks.application().sendSubsidyApplication()); + } + + private CalculationData prepareCalculationData(Customer customer) { + CalculationData calculationData = new CalculationData(); + return calculationData.setCustomer(customer) + .setPrClass(PrClass.CARNEW) + .setPrGroup(PrGroup.CAR) + .setGroup(Group.M1) + .setBrand(Brand.SKODA) + .setModel(Model.FABIA) + .setPrice(1500000) + .setVat(Vat.NO) + .setUsage(Usage.OTHERS) + .setMonth(MonthUtil.getCurrentMonth()) + .setSubsidy(Subsidy.ELEKTROMOBILITA) + .setProduct(Product.AUTO_CREDIT_IC_STANDARD) + .setFirstPayment(600000); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/InvoicesTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/InvoicesTest.java new file mode 100644 index 0000000..3035d20 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/InvoicesTest.java @@ -0,0 +1,34 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.DateData; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.SharedMock; + +@TestScenario(name = "Invoices at SMARTauto.") +public class InvoicesTest { + + @JiraTestCase(id = "LAMD-1801") + @TestCase(name = "Invoices test filter by date.") + public void tcInvoicesTestFilterByDate(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + DateData dateDataFrom = SharedMock.prepareDateDataFrom(); + DateData dateDataTo = SharedMock.prepareDateDataTo(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.goTo().invoicesPage()) + .then(smartAutoTasks.invoicesTasks().setFromDate(dateDataFrom)) + .then(smartAutoTasks.invoicesTasks().setToDate(dateDataTo)) + .then(smartAutoTasks.invoicesTasks().search()); + } + + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/LoginTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/LoginTest.java new file mode 100644 index 0000000..b5167ab --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/LoginTest.java @@ -0,0 +1,36 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "Successful login to SMARTauto.") +public class LoginTest { + + @JiraTestCase(id = "LAMD-T1023") + @TestCase(name = "Successful login.") + public void tcSuccessfulLogin(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.verification().checkMenu()); + } + + @JiraTestCase(id = "LAMD-T1024") + @TestCase(name = "Failed login.") + public void tcFailedLogin(Harness harness, @Key(smart.auto.general) Credentials credentials) { + harness.withSmartAuto() + .openLoginPage() + .typeUsername("test") + .typePassword("test") + .clickLoginToFail() + .checkUnauthorizedAccess(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/OthersTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/OthersTest.java new file mode 100644 index 0000000..7d247ff --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/OthersTest.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.auto.smartauto.util.MonthUtil; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "Successful filled others.") +public class OthersTest { + + @JiraTestCase(id = "LAMD-T1025") + @TestCase(name = "Successful filled others.") + public void tcOthersC2C(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = prepareCalculationData(Customer.CONSUMER); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .clickCreateApplication() + .clickOthersPage() + .then(smartAutoTasks.account().fillOthersPageForC2CConsumer(721456789, 19, BankCode.KOMERCNI_BANKA, "Testuji automaticky :)", "František", "Tester", "19.02.2002")) + .then(smartAutoTasks.validation().validateOthersPage()); + } + + private CalculationData prepareCalculationData(Customer customer) { + CalculationData calculationData = new CalculationData(); + return calculationData.setCustomer(customer) + .setPrClass(PrClass.CARNEW) + .setPrGroup(PrGroup.CAR) + .setGroup(Group.M1) + .setBrand(Brand.SKODA) + .setModel(Model.FABIA) + .setPrice(300000) + .setVat(Vat.NO) + .setUsage(Usage.OTHERS) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_C2C); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/QueueTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/QueueTest.java new file mode 100644 index 0000000..6068d26 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/QueueTest.java @@ -0,0 +1,33 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.SharedMock; + +@TestScenario(name = "Queue at SMARTauto.") +public class QueueTest { + + @JiraTestCase(id = "LAMD-T1802") + @TestCase(name = "Filter Queue by date.") + public void tcTestQueueFilterByDate(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + DateData dateDataFrom = SharedMock.prepareDateDataFrom(); + DateData dateDataTo = SharedMock.prepareDateDataTo(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.goTo().queuePage()) + .then(smartAutoTasks.queue().setFromDate(dateDataFrom)) + .then(smartAutoTasks.queue().setToDate(dateDataTo)) + .then(smartAutoTasks.queue().search()) + .then(smartAutoTasks.queue().checkQueueItem()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/SavedCalculationsTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/SavedCalculationsTest.java new file mode 100644 index 0000000..db74701 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/SavedCalculationsTest.java @@ -0,0 +1,33 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.DateData; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.SharedMock; + +@TestScenario(name = "Saved Calculations at SMARTauto.") +public class SavedCalculationsTest { + + @JiraTestCase(id = "LAMD-T1803") + @TestCase(name = "Filter Saved Calculations by datum.") + public void tcFilterSavedCalculationsByDatum(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + DateData dateDataFrom = SharedMock.prepareDateDataFrom(); + DateData dateDataTo = SharedMock.prepareDateDataTo(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.goTo().savedCalculationsPage()) + .then(smartAutoTasks.savedCalculations().setFromDate(dateDataFrom)) + .then(smartAutoTasks.savedCalculations().setToDate(dateDataTo)) + .then(smartAutoTasks.savedCalculations().search()) + .then(smartAutoTasks.savedCalculations().checkSavedItem()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/VehicleTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/VehicleTest.java new file mode 100644 index 0000000..377d206 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/VehicleTest.java @@ -0,0 +1,63 @@ +package cz.moneta.test.regression.commercial.auto.smartauto; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.SmartAutoTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.CarMock; +import cz.moneta.test.regression.commercial.auto.smartauto.mockdata.SharedMock; + +@TestScenario(name = "Successful filled vehicle.") +public class VehicleTest extends InsuranceAndBenefitData { + + @JiraTestCase(id = "LAMD-T1026") + @TestCase(name = "Successful filled vehicle using filters.") + public void tcVehicleWithFilters(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = CarMock.prepareCalculationCar1(); + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceDataFilters(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .clickVehiclePage() + .then(smartAutoTasks.data().checkVehicleInformation(Brand.SKODA, Model.FABIA)) + .then(smartAutoTasks.search().searchVehicleWithFilters(FilterFuel.PETROL, "70", FilterBodywork.OTHERS, FilterGearbox.MANUAL, FilterDoors.FOUR_TO_FIVE, Model.FABIA)) + .then(smartAutoTasks.data().checkAndAddAdditionalData(FilterFuel.PETROL, 5000, "Popis vozidla", ImportVehicle.NO, DealerIsOwner.NO)) + .then(smartAutoTasks.validation().validateVehiclePage()); + } + + @JiraTestCase(id = "LAMD-T1027") + @TestCase(name = "Successful filled vehicle using VIN.") + public void tcVehicleWithVin(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoTasks smartAutoTasks = harness.tasks().auto().smartAuto(); + CalculationData calculationData = CarMock.prepareCalculationCar1(); + ContactData contactData = SharedMock.prepareContactDataMan(); + IdentificationData identificationData = SharedMock.prepareIdentificationDataMan(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoTasks.login().loginWithCredentials(credentials)) + .then(smartAutoTasks.calculationType().makeCalculation(calculationData)) + .then(smartAutoTasks.insuranceTasks().fillCustomerData(calculationData, smartAutoTasks, contactData, identificationData)) + .then(smartAutoTasks.insuranceTasks().fillInsuranceData(calculationData, smartAutoTasks)) + .then(smartAutoTasks.calculationType().closeInsuranceModal()) + .clickCreateApplication() + .clickVehiclePage() + .then(smartAutoTasks.data().checkVehicleInformation(Brand.SKODA, Model.FABIA)) + .then(smartAutoTasks.search().searchVehicleWithVin(calculationData.getVin(), FilterFuel.PETROL, Model.FABIA)) + .then(smartAutoTasks.data().checkAndAddAdditionalData(FilterFuel.PETROL, 5000, "Popis vozidla", ImportVehicle.NO, DealerIsOwner.NO)) + .then(smartAutoTasks.validation().validateVehiclePage()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/cr/ForBillingTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/cr/ForBillingTest.java new file mode 100644 index 0000000..753da61 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/cr/ForBillingTest.java @@ -0,0 +1,27 @@ +package cz.moneta.test.regression.commercial.auto.smartauto.cr; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.cr.SmartAutoCrTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "For Billing") +public class ForBillingTest { + + @JiraTestCase(id = "LAMD-T1046") + @TestCase(name = "Go to CR module and check For Billing page elements") + public void tcCheckCrForBilling(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoCrTasks smartAutoCrTasks = harness.tasks().auto().smartAutoCr(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoCrTasks.login().loginWithCredentials(credentials)) + .checkForBillingTexts() + .checkForBillingTitles() + .checkForBillingButtons(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/df/DashboardTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/df/DashboardTest.java new file mode 100644 index 0000000..f0fa8b6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/df/DashboardTest.java @@ -0,0 +1,26 @@ +package cz.moneta.test.regression.commercial.auto.smartauto.df; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.df.SmartAutoDfTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "Dashboard") +public class DashboardTest { + + @JiraTestCase(id = "LAMD-T1045") + @TestCase(name = "Go to DF module and check Dashboard page elements") + public void tcCheckDfDashboard(Harness harness, @Key(smart.auto.general) Credentials credentials) { + SmartAutoDfTasks smartAutoDfTasks = harness.tasks().auto().smartAutoDf(); + + harness.withSmartAuto() + .openLoginPage() + .then(smartAutoDfTasks.login().loginWithCredentials(credentials)) + .checkDashboardTexts() + .checkDashboardTitles(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/AgroMock.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/AgroMock.java new file mode 100644 index 0000000..471698f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/AgroMock.java @@ -0,0 +1,143 @@ +package cz.moneta.test.regression.commercial.auto.smartauto.mockdata; + +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.auto.smartauto.util.MonthUtil; + +public class AgroMock { + public static CalculationData prepareCalculationDataWithTP() { + return prepareCalculationDataAgro() + .setPrGroup(PrGroup.AGROTP) + .setGroup(Group.T) + .setSubsidy(Subsidy.PGRLF) + .setSubsidy(Subsidy.YOUNG_FARMER) + .setProduct(Product.AGRO_CREDIT_YOUNG_FARMER) + .setItemType(ItemType.TRACTOR); + } + + public static CalculationData prepareCalculationDataWithTPC2C() { + return prepareCalculationDataAgro() + .setPrGroup(PrGroup.AGROTP) + .setGroup(Group.T) + .setSubsidy(Subsidy.PGRLF) + .setSubsidy(Subsidy.YOUNG_FARMER) + .setProduct(Product.AGRO_WITHTP_YOUNG_FARMER_C2C) + .setItemType(ItemType.TRACTOR); + } + + public static CalculationData prepareCalculationDataWithoutTP() { + return prepareCalculationDataAgro() + .setPrGroup(PrGroup.AGROWITHOUTTP) + .setGroup(Group.WORK_MACHINES) + .setProduct(Product.AGRO_WITHOUT_TP_YOUNG_FARMER); + } + + private static CalculationData prepareCalculationDataAgro() { + CalculationData calculationData = new CalculationData(); + return calculationData + .setCustomer(Customer.BUSINESSMAN_WITH_VAT) + .setPrClass(PrClass.AGRONEW) + .setVat(Vat.NO) + .setVolume("250") + .setPower("86") + .setWeight("1850") + .setFuel(FilterFuel.PETROL) + .setBrand(Brand.JCB) + .setModel(Model.MODEL) + .setUsage(Usage.OTHERS) + .setPrice(5000000) + .setFirstPayment(1250000) + .setMonth(MonthUtil.getCurrentMonth()); + } + + // CalculationAgroTPTest + public static CalculationData prepareCalculationAgro1() { + return prepareCalculationDataAgroTP() + .setCustomer(Customer.BUSINESSMAN_WITH_VAT) + .setPrClass(PrClass.AGRONEW); + } + + public static CalculationData prepareCalculationAgro2() { + return prepareCalculationDataAgroTP() + .setCustomer(Customer.BUSINESSMAN_WITH_VAT) + .setPrClass(PrClass.AGROUSED); + } + + public static CalculationData prepareCalculationAgro3() { + return prepareCalculationDataAgroTP() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.AGRONEW) + .setSubsidy(Subsidy.PGRLF) + .setSubsidy(Subsidy.YOUNG_FARMER); + } + + public static CalculationData prepareCalculationAgro4() { + return prepareCalculationDataAgroTP() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.AGROUSED) + .setSubsidy(Subsidy.PGRLF) + .setSubsidy(Subsidy.YOUNG_FARMER); + } + + public static CalculationData prepareCalculationAgro5() { + return prepareCalculationDataAgroTP() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.AGRONEW) + .setSubsidy(Subsidy.PGRLF); + } + + private static CalculationData prepareCalculationDataAgroTP() { + CalculationData calculationData = new CalculationData(); + return calculationData + .setProduct(Product.AGRO_CREDIT_YOUNG_FARMER) + .setVat(Vat.NO) + .setPrGroup(PrGroup.AGROTP) + .setGroup(Group.T) + .setBrand(Brand.JCB) + .setModel(Model.MODEL) + .setVolume("250") + .setPower("86") + .setWeight("1850") + .setFuel(FilterFuel.PETROL) + .setFirstPayment(125000) + .setPrice(3000000) + .setUsage(Usage.OTHERS) + .setItemType(ItemType.TRACTOR); + } + + // CalculationAgroWithoutTPTest + public static CalculationData prepareCalculationAgroNoTP1() { + return prepareCalculationDataAgroWithoutTP() + .setCustomer(Customer.BUSINESSMAN_WITH_VAT); + } + + public static CalculationData prepareCalculationAgroNoTP2() { + return prepareCalculationDataAgroWithoutTP() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT); + + } + + private static CalculationData prepareCalculationDataAgroWithoutTP() { + CalculationData calculationData = new CalculationData(); + return calculationData + .setProduct(Product.AGRO_WITHOUT_TP_YOUNG_FARMER) + .setPrClass(PrClass.AGRONEW) + .setPrGroup(PrGroup.AGROWITHOUTTP) + .setGroup(Group.WORK_MACHINES) + .setPrice(800000) + .setVolume("250") + .setPower("86") + .setWeight("1850") + .setFuel(FilterFuel.PETROL) + .setUsage(Usage.OTHERS) + .setMonth(MonthUtil.getCurrentMonth()) + .setBrand(Brand.JCB) + .setModel(Model.MODEL) + .setFirstPayment(125000) + .setVat(Vat.NO); + } + + // AGRO INSURANCE + public static Insurance insurance() { + return Insurance.INDIVIDUAL; + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/CarMock.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/CarMock.java new file mode 100644 index 0000000..1e2a7ce --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/CarMock.java @@ -0,0 +1,127 @@ +package cz.moneta.test.regression.commercial.auto.smartauto.mockdata; + +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.auto.smartauto.util.MonthUtil; + +public class CarMock { + public static CalculationData prepareCalculationCar1() { + return prepareCarTest(). + setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationCar1_1() { + return prepareCarTest(). + setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.YES) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationCar2() { + return prepareCarTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationCar4() { + return prepareCarTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationCar5() { + return prepareCarTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationCar7() { + return prepareCarTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_IC_C2C); + } + + public static CalculationData prepareCalculationCar8() { + return prepareCarTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationCar9() { + return prepareCarTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_BACK_LOAN); + } + + public static CalculationData prepareCalculationCar10() { + return prepareCarTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationCar11() { + return prepareCarTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationCar12() { + return prepareCarTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.AUTO_CREDIT_BACK_LOAN); + } + + + private static CalculationData prepareCarTest() { + CalculationData calculationData = new CalculationData(); + return calculationData + .setPrGroup(PrGroup.CAR) + .setGroup(Group.M1) + .setBrand(Brand.SKODA) + .setModel(Model.FABIA) + .setVin("TMBPH16Y013217915") + .setPrice(2649000) + .setFuel(FilterFuel.PETROL) + .setWeight("2120") + .setPower("112") + .setVolume("45") + .setUsage(Usage.OTHERS); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/CaravanMock.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/CaravanMock.java new file mode 100644 index 0000000..c34df03 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/CaravanMock.java @@ -0,0 +1,88 @@ +package cz.moneta.test.regression.commercial.auto.smartauto.mockdata; + +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.auto.smartauto.util.MonthUtil; + +public class CaravanMock { + public static CalculationData prepareCalculationCaravan1() { + return prepareCaravanTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARNEW) + .setProduct(Product.AUTO_CREDIT_STANDARD); + } + public static CalculationData prepareCalculationCaravan1_1() { + return prepareCaravanTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARNEW) + .setProduct(Product.AUTO_CREDIT_STANDARD); + } + public static CalculationData prepareCalculationCaravan2() { + return prepareCaravanTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARNEW) + .setProduct(Product.AUTO_CREDIT_C2C); + } + public static CalculationData prepareCalculationCaravan4() { + return prepareCaravanTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARUSED) + .setProduct(Product.AUTO_CREDIT_STANDARD); + } + public static CalculationData prepareCalculationCaravan5() { + return prepareCaravanTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARUSED) + .setProduct(Product.AUTO_CREDIT_C2C); + } + public static CalculationData prepareCalculationCaravan7() { + return prepareCaravanTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARNEW) + .setProduct(Product.AUTO_CREDIT_STANDARD); + } + public static CalculationData prepareCalculationCaravan8() { + return prepareCaravanTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARNEW) + .setProduct(Product.AUTO_CREDIT_C2C); + } + public static CalculationData prepareCalculationCaravan9() { + return prepareCaravanTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARNEW) + .setProduct(Product.AUTO_CREDIT_BACK_LOAN); + } + public static CalculationData prepareCalculationCaravan10() { + return prepareCaravanTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARUSED) + .setProduct(Product.AUTO_CREDIT_STANDARD); + } + public static CalculationData prepareCalculationCaravan11() { + return prepareCaravanTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARUSED) + .setProduct(Product.AUTO_CREDIT_C2C); + } + public static CalculationData prepareCalculationCaravan12() { + return prepareCaravanTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARUSED) + .setProduct(Product.AUTO_CREDIT_BACK_LOAN); + } + + private static CalculationData prepareCaravanTest() { + CalculationData calculationData = new CalculationData(); + return calculationData + .setPrGroup(PrGroup.CAR) + .setGroup(Group.M1) + .setBrand(Brand.FIAT) + .setModel(Model.BRAVO) + .setPrice(253000) + .setVin("ZFA18200004677459") + .setVat(Vat.NO) + .setUsage(Usage.CARAVAN) + .setYear(Year.getPreviousYear()) + .setMonth(MonthUtil.getCurrentMonth()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/MotorcycleMock.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/MotorcycleMock.java new file mode 100644 index 0000000..0fa8d0d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/MotorcycleMock.java @@ -0,0 +1,124 @@ +package cz.moneta.test.regression.commercial.auto.smartauto.mockdata; + +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.auto.smartauto.util.MonthUtil; + +public class MotorcycleMock { + + public static CalculationData prepareCalculationMotorcycle1() { + return prepareMotorcycleTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.MOTO_CREDIT_STANDARD); + } + + public static CalculationData prepareCalculationMotorcycle1_1() { + return prepareMotorcycleTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.YES) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.MOTO_CREDIT_STANDARD); + } + + public static CalculationData prepareCalculationMotorcycle2() { + return prepareMotorcycleTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.MOTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationMotorcycle4() { + return prepareMotorcycleTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.MOTO_CREDIT_STANDARD); + } + + public static CalculationData prepareCalculationMotorcycle5() { + return prepareMotorcycleTest() + .setCustomer(Customer.CONSUMER) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.MOTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationMotorcycle7() { + return prepareMotorcycleTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.MOTO_CREDIT_STANDARD); + } + + public static CalculationData prepareCalculationMotorcycle8() { + return prepareMotorcycleTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.MOTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationMotorcycle9() { + return prepareMotorcycleTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARNEW) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.MOTO_CREDIT_BACK_LOAN); + } + + public static CalculationData prepareCalculationMotorcycle10() { + return prepareMotorcycleTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.MOTO_CREDIT_STANDARD); + } + + public static CalculationData prepareCalculationMotorcycle11() { + return prepareMotorcycleTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.MOTO_CREDIT_C2C); + } + + public static CalculationData prepareCalculationMotorcycle12() { + return prepareMotorcycleTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.MOTO_CREDIT_BACK_LOAN); + } + + private static CalculationData prepareMotorcycleTest() { + CalculationData calculationData = new CalculationData(); + return calculationData + .setPrGroup(PrGroup.MOTORCYCLE) + .setPrice(300000) + .setVin("1HD1JRV15DB031048") + .setFuel(FilterFuel.PETROL) + .setGroup(Group.LC) + .setBrand(Brand.HARLEY) + .setModel(Model.SOFTAIL) + .setUsage(Usage.OTHERS); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/SharedMock.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/SharedMock.java new file mode 100644 index 0000000..5b123c0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/SharedMock.java @@ -0,0 +1,82 @@ +package cz.moneta.test.regression.commercial.auto.smartauto.mockdata; + +import cz.moneta.test.dsl.auto.smartauto.shared.*; + +public class SharedMock { + + // CONTACT + public static CompanyData prepareCompanyData() { + CompanyData companyData = new CompanyData(); + return companyData.setCompany(Company.AVAST) + .setCompanyContactAddress(Address.BRANICKA) + .setCompanyPhoneNumber("721456789") + .setCompanyOtherPhoneNumber("721852963") + .setCompanyEmail("test@test.cz") + .setIco(Ico.AVAST) + .setCompanyCountry(Nationality.CZECH_REPUBLIC); + } + + public static ContactData prepareContactDataWoman() { + ContactData contactData = new ContactData(); + return contactData.setName("Jana") + .setSurname("Překrásná") + .setTitleBefore("Ing.") + .setTitleAfter("Ph.D.") + .setPhoneNumber("721456789") + .setOtherPhoneNumber("721741852") + .setEmail("jana@prekrasna.cz") + .setAddress(Address.BRANICKA) + .setContactAddress(Address.BRANICKA); + } + + public static IdentificationData prepareIdentificationDataWoman() { + IdentificationData identificationData = new IdentificationData(); + return identificationData.setNationality(Nationality.CZECH_REPUBLIC) + .setCountry(Country.CZECH_REPUBLIC) + .setPin(Pin.DEFAULT_PIN_WOMAN) + .setBirthdate(Birthdate.DEFAULT_BIRTHDATE_WOMAN) + .setBirthplace("Praha") + .setIdentificationType(IdentificationType.IDENTITY_CARD) + .setIdentificationIdNumber("200115551") + .setIdentificationIdValidity("28.01.2029") + .setCompanyRole(CompanyRole.SECRETARY) + .setStayType(StayType.PERMANENT); + + } + + public static ContactData prepareContactDataMan() { + ContactData contactData = new ContactData(); + return contactData.setName("Karel") + .setSurname("Nový") + .setTitleBefore("Ing.") + .setTitleAfter("Ph.D.") + .setPhoneNumber("721456789") + .setOtherPhoneNumber("721741852") + .setEmail("karel@novy.cz") + .setAddress(Address.BRANICKA) + .setContactAddress(Address.BRANICKA); + } + + public static IdentificationData prepareIdentificationDataMan() { + IdentificationData identificationData = new IdentificationData(); + return identificationData.setNationality(Nationality.CZECH_REPUBLIC) + .setCountry(Country.CZECH_REPUBLIC) + .setPin(Pin.DEFAULT_PIN_MAN) + .setBirthdate(Birthdate.DEFAULT_BIRTHDATE_MAN) + .setBirthplace("Praha") + .setIdentificationType(IdentificationType.IDENTITY_CARD) + .setIdentificationIdNumber("200115551") + .setIdentificationIdValidity("28.01.2029") + .setCompanyRole(CompanyRole.SECRETARY) + .setStayType(StayType.PERMANENT); + } + + // DATE + public static DateData prepareDateDataFrom() { + return new DateData(Year._2023, new Month(4), new Day(13)); + } + + public static DateData prepareDateDataTo() { + return new DateData(Year._2024, new Month(4), new Day(13)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/TrailerMock.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/TrailerMock.java new file mode 100644 index 0000000..35652ad --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/mockdata/TrailerMock.java @@ -0,0 +1,122 @@ +package cz.moneta.test.regression.commercial.auto.smartauto.mockdata; + +import cz.moneta.test.dsl.auto.smartauto.shared.*; +import cz.moneta.test.dsl.auto.smartauto.util.MonthUtil; + +public class TrailerMock { + public static CalculationData PrepareCalculationTrailer1() { + return prepareTrailerTest() + .setPrClass(PrClass.CARNEW) + .setCustomer(Customer.CONSUMER) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_STANDARD); + } + + public static CalculationData PrepareCalculationTrailer1_1() { + return prepareTrailerTest() + .setPrClass(PrClass.CARNEW) + .setCustomer(Customer.CONSUMER) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_STANDARD); + } + + public static CalculationData PrepareCalculationTrailer2() { + return prepareTrailerTest() + .setPrClass(PrClass.CARNEW) + .setCustomer(Customer.CONSUMER) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData PrepareCalculationTrailer4() { + return prepareTrailerTest() + .setPrClass(PrClass.CARUSED) + .setCustomer(Customer.CONSUMER) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.AUTO_CREDIT_STANDARD); + } + + public static CalculationData PrepareCalculationTrailer5() { + return prepareTrailerTest() + .setPrClass(PrClass.CARUSED) + .setCustomer(Customer.CONSUMER) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData PrepareCalculationTrailer7() { + return prepareTrailerTest() + .setPrClass(PrClass.CARNEW) + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_STANDARD); + } + + public static CalculationData PrepareCalculationTrailer8() { + return prepareTrailerTest() + .setPrClass(PrClass.CARNEW) + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData PrepareCalculationTrailer9() { + return prepareTrailerTest() + .setPrClass(PrClass.CARNEW) + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setProduct(Product.AUTO_CREDIT_BACK_LOAN); + } + + public static CalculationData PrepareCalculationTrailer10() { + return prepareTrailerTest() + .setPrClass(PrClass.CARUSED) + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.AUTO_CREDIT_STANDARD); + } + + public static CalculationData PrepareCalculationTrailer11() { + return prepareTrailerTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.AUTO_CREDIT_C2C); + } + + public static CalculationData PrepareCalculationTrailer12() { + return prepareTrailerTest() + .setCustomer(Customer.BUSINESSMAN_WITHOUT_VAT) + .setPrClass(PrClass.CARUSED) + .setVat(Vat.NO) + .setMonth(MonthUtil.getCurrentMonth()) + .setYear(Year.getPreviousYear()) + .setProduct(Product.AUTO_CREDIT_BACK_LOAN); + } + + private static CalculationData prepareTrailerTest() { + CalculationData calculationData = new CalculationData(); + return calculationData + .setPrGroup(PrGroup.TRAILER) + .setGroup(Group.O1) + .setBrand(Brand.AGADOS) + .setModel(Model.HANDY) + .setFuel(FilterFuel.WITHOUT_FUEL) + .setPrice(500000) + .setUsage(Usage.OTHERS); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/setman/DealersTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/setman/DealersTest.java new file mode 100644 index 0000000..da8d776 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/setman/DealersTest.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.commercial.auto.smartauto.setman; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.setman.SmartAutoSetmanTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "Dealers") +public class DealersTest { + + @JiraTestCase(id = "LAMD-T1028") + @TestCase(name = "Go to New Dealers page and check elements") + public void tcCheckNewDealers(Harness harness, @Key(smart.auto.setman) Credentials credentials) { + SmartAutoSetmanTasks smartAutoSetmanTasks = harness.tasks().auto().smartAutoSetman(); + + harness.withSmartAutoSetman() + .openLoginPage() + .logoutIfNecessary(harness) + .then(smartAutoSetmanTasks.login().loginWithCredentials(credentials)) + .then(smartAutoSetmanTasks.dealers().goToNewDealersPage()); + } + + @JiraTestCase(id = "LAMD-T1029") + @TestCase(name = "Go to Dealers page and check elements") + public void tcCheckDealers(Harness harness, @Key(smart.auto.setman) Credentials credentials) { + SmartAutoSetmanTasks smartAutoSetmanTasks = harness.tasks().auto().smartAutoSetman(); + + harness.withSmartAutoSetman() + .openLoginPage() + .logoutIfNecessary(harness) + .then(smartAutoSetmanTasks.login().loginWithCredentials(credentials)) + .then(smartAutoSetmanTasks.dealers().goToDealersPage()); + } + + @JiraTestCase(id = "LAMD-T1030") + @TestCase(name = "Go to Dealers Detail page and check elements") + public void tcCheckDealersDetail(Harness harness, @Key(smart.auto.setman) Credentials credentials) { + SmartAutoSetmanTasks smartAutoSetmanTasks = harness.tasks().auto().smartAutoSetman(); + + harness.withSmartAutoSetman() + .openLoginPage() + .logoutIfNecessary(harness) + .then(smartAutoSetmanTasks.login().loginWithCredentials(credentials)) + .then(smartAutoSetmanTasks.dealers().goToDealersPage()) + .clickFirstDealer() + .then(smartAutoSetmanTasks.verification().checkDealersDetailPage()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/setman/LoginTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/setman/LoginTest.java new file mode 100644 index 0000000..44d835a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/auto/smartauto/setman/LoginTest.java @@ -0,0 +1,39 @@ +package cz.moneta.test.regression.commercial.auto.smartauto.setman; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys.smart; +import cz.moneta.test.dsl.util.task.auto.smartauto.setman.SmartAutoSetmanTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "Successful login to parametrization tool SETMAN.") +public class LoginTest { + /** + * Odhlášení po přihlášení kvůli Kerberosu + */ + @JiraTestCase(id = "LAMD-T1031") + @TestCase(name = "Successful login.") + public void tcSuccessfulLogin(Harness harness, @Key(smart.auto.setman) Credentials credentials) { + SmartAutoSetmanTasks smartAutoSetmanTasks = harness.tasks().auto().smartAutoSetman(); + harness.withSmartAutoSetman() + .openLoginPage() + .logoutIfNecessary(harness) + .then(smartAutoSetmanTasks.login().loginWithCredentials(credentials)) + .then(smartAutoSetmanTasks.verification().checkMenu()); + } + + @JiraTestCase(id = "LAMD-T1032") + @TestCase(name = "Failed login.") + public void tcFailedLogin(Harness harness, @Key(smart.auto.setman) Credentials credentials) { + harness.withSmartAutoSetman() + .openLoginPage() + .logoutIfNecessary(harness) + .typeUsername("test") + .typePassword("test") + .clickLoginToFail() + .checkUnauthorizedAccess(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/ClientInvolvement.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/ClientInvolvement.java new file mode 100644 index 0000000..ada75a7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/ClientInvolvement.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.commercial.cb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.*; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.FULL_NAME_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenarioWithOrder(name = "Client Involvement") +public class ClientInvolvement { + + private String clientIco; + + @TestCase(name = "Client Involvement FOP", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T2113") + @Order(1) + public void clientInvolvementFop(Harness harness) { + + clientInvolvement(harness, harness.getConfig("commercial.cb.ico.fop")); + } + + @TestCase(name = "Client Involvement PO", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T2136") + @Order(2) + public void clientInvolvementPo(Harness harness) { + + clientInvolvement(harness, harness.getConfig("commercial.cb.ico.po")); + } + + private void clientInvolvement(Harness harness, String ico) { + clientIco = ico; + CommercialTasks commercialTasks = harness.tasks().ufo().cb(); + harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .then(commercialTasks.searchClient(clientIco)) + .storeClientFullName() + .then(commercialTasks.checkInvolvementCalculation()); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nIČO klienta: " + clientIco + + "\nJméno klienta: " + harness.get(FULL_NAME_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/LoadingKOCriteria.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/LoadingKOCriteria.java new file mode 100644 index 0000000..9b50ab8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/LoadingKOCriteria.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.commercial.cb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.*; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.FULL_NAME_KEY; +import static cz.moneta.test.dsl.ufo.cb.landing.AUT402_S001_KOCriteriaListPage.UFO_SECOND_WINDOW_SESSION_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenarioWithOrder(name = "Loading KO Criteria") +public class LoadingKOCriteria { + + private String clientIco; + + @TestCase(name = "Loading KO Criteria FOP", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T2114") + @Order(1) + public void loadingKOCriteriaFop(Harness harness) { + + loadingKOCriteria(harness, harness.getConfig("commercial.cb.ico.fop")); + } + + @TestCase(name = "Loading KO Criteria PO", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T2137") + @Order(2) + public void loadingKOCriteriaPo(Harness harness) { + + loadingKOCriteria(harness, harness.getConfig("commercial.cb.ico.po")); + } + + private void loadingKOCriteria(Harness harness, String ico) { + clientIco = ico; + CommercialTasks commercialTasks = harness.tasks().ufo().cb(); + harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .then(commercialTasks.searchClient(clientIco)) + .storeClientFullName() + .clickKOCriteria() + .switchToOtherWindow() + .then(commercialTasks.checkKOCriteriaCalculation()); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nIČO klienta: " + clientIco + + "\nJméno klienta: " + harness.get(FULL_NAME_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nUFO Session ID second window: " + harness.get(UFO_SECOND_WINDOW_SESSION_ID_KEY, true)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/SearchClient.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/SearchClient.java new file mode 100644 index 0000000..83f68ee --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/SearchClient.java @@ -0,0 +1,87 @@ +package cz.moneta.test.regression.commercial.cb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.*; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Order; + +import java.util.Optional; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.FULL_NAME_KEY; +import static cz.moneta.test.dsl.ufo.cb.landing.SME401_S001_SearchPage.SEARCH_HISTORY_CLIENT_ICO_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenarioWithOrder(name = "Search for specific clients") +public class SearchClient { + + private String clientIco; + + @TestCase(name = "Search for client FOP", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T2112") + @Order(1) + public void searchClientFop(Harness harness) { + searchClient(harness, harness.getConfig("commercial.cb.ico.fop")); + } + + @TestCase(name = "Search for client PO", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T2135") + @Order(2) + public void searchClientPo(Harness harness) { + + searchClient(harness, harness.getConfig("commercial.cb.ico.po")); + } + + @TestCase(name = "Search for first client from history FOP", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T2200") + @Order(3) + public void searchHistoryClientFop(Harness harness) { + searchClientFromSearchHistory(harness, "FOP"); + } + + @TestCase(name = "Search for first client from history PO", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T2201") + @Order(4) + public void searchHistoryClientPo(Harness harness) { + + searchClientFromSearchHistory(harness, "PO"); + } + + private void searchClient(Harness harness, String ico) { + clientIco = ico; + CommercialTasks commercialTasks = harness.tasks().ufo().cb(); + harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .then(commercialTasks.searchClient(clientIco)) + .storeClientFullName() + .checkIco(clientIco); + + } + + private void searchClientFromSearchHistory(Harness harness, String legalPersonType) { + clientIco = null; + CommercialTasks commercialTasks = harness.tasks().ufo().cb(); + harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .clickSearchLink() + .storeIcoOfFirstClientInSearchHistoryByLegalType(legalPersonType) + .clickFirstClientInSearchHistoryByLegalType(legalPersonType) + .storeClientFullName() + .checkIco(harness.get(SEARCH_HISTORY_CLIENT_ICO_KEY)); + + } + + @AfterEach + protected void teardown(Harness harness) { + + String historyClientICO = harness.get(SEARCH_HISTORY_CLIENT_ICO_KEY, true); + clientIco = Optional.ofNullable(historyClientICO).orElseGet(() -> clientIco); + harness.store(JIRA_COMMENT_STORE_KEY, + "\nIČO klienta: " + clientIco + + "\nJméno klienta: " + harness.get(FULL_NAME_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/VerifyClients.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/VerifyClients.java new file mode 100644 index 0000000..0cd2d7f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/VerifyClients.java @@ -0,0 +1,66 @@ +package cz.moneta.test.regression.commercial.cb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.fon.UploadUtil; +import cz.moneta.test.dsl.ufo.operations.shared.UfoOpsUtils; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.*; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.params.provider.MethodSource; + +import java.util.List; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.FULL_NAME_KEY; +import static cz.moneta.test.dsl.ufo.cb.landing.AUT402_S001_KOCriteriaListPage.UFO_SECOND_WINDOW_SESSION_ID_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Verify Clients - Client Involvement, KO Criteria, Establish Financial Sheet") +public class VerifyClients { + + private String currentClientICO = null; + String path; + + @BeforeAll + public void setUp(Harness harness) { + path = UploadUtil.getResourcePath(harness.getConfig("commercial.cb.ico-list-for-verifying-clients")); + } + + private List returnValuesForTest() { + return UfoOpsUtils.loadClientsIcoFromTextFile(path); + } + + @ParameterizedTestCase(name = "Verify Clients", environments = {Environment.TST1}) + @MethodSource("returnValuesForTest") + @JiraTestCase(id = "SC-T2212") + public void verifyClients(String clientIco, Harness harness) { + currentClientICO = clientIco; + CommercialTasks commercialTasks = harness.tasks().ufo().cb(); + harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .then(commercialTasks.searchClient(clientIco)) + .storeClientFullName() + .checkIco(clientIco) + .then(commercialTasks.checkDetailClientInfo()) + .then(commercialTasks.checkInvolvementCalculation()) + .clickKOCriteria() + .switchToOtherWindow() + .then(commercialTasks.checkKOCriteriaCalculation()); + + harness.withUfo().openLoginPage() + .then(commercialTasks.loginAsCbContractualDocumentAdministrator()) + .then(commercialTasks.searchClient(clientIco)) + .clickFinancialSheets() + .then(commercialTasks.createFinancialSheet()); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nIČO klienta: " + currentClientICO + + "\nJméno klienta: " + harness.get(FULL_NAME_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true) + + "\nUFO Session ID second window: " + harness.get(UFO_SECOND_WINDOW_SESSION_ID_KEY, true)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/VerifyLoadingOfScreens.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/VerifyLoadingOfScreens.java new file mode 100644 index 0000000..71d9854 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/VerifyLoadingOfScreens.java @@ -0,0 +1,32 @@ +package cz.moneta.test.regression.commercial.cb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Verify Loading of Screens") +public class VerifyLoadingOfScreens { + + @TestCase(name = "Verify Loading of Screens") + @JiraTestCase(id = "SC-T2218") + public void verifyLoadingOfScreens(Harness harness) { + + //these proposals are asigned on clients which are asigned to GEBTHA6 (jenkins user) need to change for local testing + String proposalId = harness.getConfig("commercial.cb.proposal-id"); + + CommercialTasks commercialTasks = harness.tasks().ufo().cb(); + harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .selectProposal(proposalId) + .clickProcessButton() + .clickSaveSignPost() + .clickProposalPart("Obchod - zákl. parametry") + .clickSignPost() + .clickRelations() + .then(commercialTasks.checkLoadOfScreens()) + .clickPreviousPage(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckClientDetailPage.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckClientDetailPage.java new file mode 100644 index 0000000..13e6ce6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckClientDetailPage.java @@ -0,0 +1,31 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Test checks client details") +public class CheckClientDetailPage { + + @TestCase(name = "Check if client card details are ok", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T364") + public void checkClientCard(Harness harness) { + String ico = harness.getConfig("commercial.cb.ico"); + CommercialTasks tasks = harness.tasks().ufo().cb(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .clickClientCard() + .checkElementClientCard() + .clickCardIsChecked(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckCreditLineCreateDelete.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckCreditLineCreateDelete.java new file mode 100644 index 0000000..2568f91 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckCreditLineCreateDelete.java @@ -0,0 +1,80 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.data.EventData; +import cz.moneta.test.dsl.salesforce.data.OpportunityData; +import cz.moneta.test.dsl.salesforce.data.SaleData; +import cz.moneta.test.dsl.ufo.cb.landing.proposals.CreditLine; +import cz.moneta.test.dsl.util.data.client.NewClientCommercial; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.dsl.util.task.ufo.cb.ProposalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenarioWithOrder(name = "Test checks creation of proposal and delete of proposal") +public class CheckCreditLineCreateDelete { + private CreditLine proposal; + private String ico; + private CommercialTasks tasks; + private ProposalTasks proposalTasks; + + + @BeforeAll + public void setUp(Harness harness) { + tasks = harness.tasks().ufo().cb(); + proposalTasks = tasks.proposalTasks(); + NewClientCommercial newClientCommercial = tasks.createNewFop(); + tasks.linkNewFopClientToSalesForce(newClientCommercial); + ico = newClientCommercial.getClientData().ico(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + } + + @Order(value = 1) + @TestCase(name = "Test creates proposal in SalesForce", environments = {Environment.TST1, Environment.PPE}) + public void createProposalInSalesforce(Harness harness) { + OpportunityData opportunityData = OpportunityData.builder().build().getInvestmentOpportunity(); + opportunityData.setAccount(ico); + EventData eventData = EventData.builder().build().getMeetingActiveBusiness(); + SaleData saleData = SaleData.builder().build().getInvestmentSale(); + harness.withSalesForce() + .openLoginPage() + .then(harness.tasks().salesForce().loginAsBanker()) + .then(harness.tasks().salesForce().newOpportunityTasks().newOpportunity(opportunityData, eventData, saleData)); + } + + @Order(value = 2) + @TestCase(name = "Test creates proposal - Kreditni linka", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T396") + public void createProposal(Harness harness) { + proposal = new CreditLine(); + + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .then(proposalTasks.createProposal()) + .then(proposalTasks.fillProposalCreditLine(proposal)) + .then(proposalTasks.saveProposal(proposal)); + tasks.appendJiraComment(String.format("Proposal ID: %s", proposal.getProposalId())); + } + + @Order(value = 3) + @TestCase(name = "Test deletes proposal - Kreditni linka", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T410") + public void deleteProposal(Harness harness) { + Assertions.assertNotEquals(null, proposal.getProposalId(), "Proposal was not created, that means it can not be deleted."); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(proposalTasks.deleteProposal(proposal.getProposalId())); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckEuInvestmentCreateDelete.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckEuInvestmentCreateDelete.java new file mode 100644 index 0000000..99a7ff1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckEuInvestmentCreateDelete.java @@ -0,0 +1,79 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.data.EventData; +import cz.moneta.test.dsl.salesforce.data.OpportunityData; +import cz.moneta.test.dsl.salesforce.data.SaleData; +import cz.moneta.test.dsl.ufo.cb.landing.proposals.EuInvestment; +import cz.moneta.test.dsl.util.data.client.NewClientCommercial; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.dsl.util.task.ufo.cb.ProposalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenarioWithOrder(name = "Test checks creation of proposal and delete of proposal") +public class CheckEuInvestmentCreateDelete { + + private EuInvestment proposal; + private String ico; + private CommercialTasks tasks; + private ProposalTasks proposalTasks; + + @BeforeAll + public void setUp(Harness harness) { + tasks = harness.tasks().ufo().cb(); + proposalTasks = tasks.proposalTasks(); + NewClientCommercial newClientCommercial = tasks.createNewFop(); + tasks.linkNewFopClientToSalesForce(newClientCommercial); + ico = newClientCommercial.getClientData().ico(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + } + + @Order(value = 1) + @TestCase(name = "Test creates proposal in SalesForce", environments = {Environment.TST1, Environment.PPE}) + public void createProposalInSalesforce(Harness harness) { + OpportunityData opportunityData = OpportunityData.builder().build().getInvestmentOpportunity(); + opportunityData.setAccount(ico); + EventData eventData = EventData.builder().build().getMeetingActiveBusiness(); + SaleData saleData = SaleData.builder().build().getInvestmentSale(); + harness.withSalesForce() + .openLoginPage() + .then(harness.tasks().salesForce().loginAsBanker()) + .then(harness.tasks().salesForce().newOpportunityTasks().newOpportunity(opportunityData, eventData, saleData)); + } + + @Order(value = 2) + @TestCase(name = "Test creates proposal - EU Investice", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T395") + public void createProposal(Harness harness) { + proposal = new EuInvestment(); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .then(proposalTasks.createProposal()) + .then(proposalTasks.fillProposalEuInvestment(proposal)) + .then(proposalTasks.saveProposal(proposal)); + tasks.appendJiraComment(String.format("Proposal ID: %s", proposal.getProposalId())); + } + + @Order(value = 3) + @TestCase(name = "Test deletes proposal - EU Investice", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T407") + public void deleteProposal(Harness harness) { + Assertions.assertNotEquals(null, proposal.getProposalId(), "Proposal was not created, that means it can not be deleted."); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(proposalTasks.deleteProposal(proposal.getProposalId())); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckEuInvestmentWorkFlow.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckEuInvestmentWorkFlow.java new file mode 100644 index 0000000..af94b8c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckEuInvestmentWorkFlow.java @@ -0,0 +1,210 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.data.EventData; +import cz.moneta.test.dsl.salesforce.data.OpportunityData; +import cz.moneta.test.dsl.salesforce.data.SaleData; +import cz.moneta.test.dsl.ufo.cb.landing.KOM401_S001_ProposalParameters; +import cz.moneta.test.dsl.ufo.cb.landing.proposals.EuInvestment; +import cz.moneta.test.dsl.util.data.client.NewClientCommercial; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.dsl.util.task.ufo.cb.ProposalTasks; +import cz.moneta.test.dsl.util.task.wso2.ClientTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Test checks workflow of product") +public class CheckEuInvestmentWorkFlow { + + private EuInvestment proposal; + private CommercialTasks commercialTasks; + private ProposalTasks proposalTasks; + private String ico; + + @BeforeAll + public void setUp(Harness harness) { + commercialTasks = harness.tasks().ufo().cb(); + proposalTasks = commercialTasks.proposalTasks(); + NewClientCommercial newClientCommercial = commercialTasks.createNewFop(); + commercialTasks.linkNewFopClientToSalesForce(newClientCommercial); + ico = newClientCommercial.getClientData().ico(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + Assertions.assertNotEquals(-1, newClientCommercial.getPersonId().intValue(), "Client was not saved in Comoda."); + OpportunityData opportunityData = OpportunityData.builder().build().getInvestmentOpportunity(); + opportunityData.setAccount(ico); + EventData eventData = EventData.builder().build().getMeetingActiveBusiness(); + SaleData saleData = SaleData.builder().build().getInvestmentSale(); + harness.withSalesForce() + .openLoginPage() + .then(harness.tasks().salesForce().loginAsBanker()) + .then(harness.tasks().salesForce().newOpportunityTasks().newOpportunity(opportunityData, eventData, saleData)); + proposal = new EuInvestment(); + ClientTasks clientTasks = harness.tasks().wso2().client(); + harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .then(commercialTasks.searchClient(ico)) + .then(proposalTasks.createProposal()) + .then(proposalTasks.fillProposalEuInvestment(proposal)) + .then(proposalTasks.saveProposal(proposal)); + commercialTasks.appendJiraComment(String.format("Proposal ID: %s", proposal.getProposalId())); + clientTasks.calculateTotalExposurePerson(newClientCommercial.getPersonId()); + } + + @AfterAll + public void destroy(Harness harness) { + Assertions.assertNotEquals(null, proposal.getProposalId(), "Proposal was not created, that means it can not be deleted."); + harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .then(proposalTasks.deleteProposal(proposal.getProposalId())); + } + + private KOM401_S001_ProposalParameters accessProposal(Harness harness) { + return harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .then(proposalTasks.proposalSignpost(proposal.getProposalId())); + } + + @TestCase(name = "Check relations screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T444") + public void checkRelationsScreen(Harness harness) { + accessProposal(harness).clickRelations(); + } + + @TestCase(name = "Check client card screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T445") + public void checkClientCardScreen(Harness harness) { + accessProposal(harness).clickClient(); + } + + @TestCase(name = "Check fv screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T446") + public void checkFvScreen(Harness harness) { + accessProposal(harness).clickFv(); + } + + @TestCase(name = "Check rating screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T447") + public void checkRatingScreen(Harness harness) { + accessProposal(harness).clickRating(); + } + + @TestCase(name = "Check cru screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T449") + public void checkCruScreen(Harness harness) { + accessProposal(harness).clickCru(); + } + + @TestCase(name = "Check modelation screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T450") + public void checkModelationScreen(Harness harness) { + accessProposal(harness).clickModelation(); + } + + @TestCase(name = "Check pledge bonds screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T451") + public void checkPledgeBondsScreen(Harness harness) { + accessProposal(harness).clickPledgeBonds(); + } + + @TestCase(name = "Check black lists screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T452") + public void checkBlackListsScreen(Harness harness) { + accessProposal(harness).clickBlackLists(); + } + + @TestCase(name = "Check pricing screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T453") + public void checkPricingScreen(Harness harness) { + accessProposal(harness).clickPricing(); + } + + @TestCase(name = "Check nrki brki screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T454") + public void checkNrkiBrkiScreen(Harness harness) { + accessProposal(harness).clickNrkiBrki(); + } + + @TestCase(name = "Check description screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T455") + public void checkDescriptionScreen(Harness harness) { + accessProposal(harness).clickDescription(); + } + + @TestCase(name = "Check basic information screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T456") + public void checkBasicInformationScreen(Harness harness) { + accessProposal(harness).clickBasicInformation(); + } + + @TestCase(name = "Check resources moneta screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T457") + public void checkResourcesMonetaScreen(Harness harness) { + accessProposal(harness).clickResourcesMoneta(); + } + + @TestCase(name = "Check resources screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T458") + public void checkResourcesScreen(Harness harness) { + accessProposal(harness).clickResources(); + } + + @TestCase(name = "Check sales employee screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T459") + public void checkSalesEmployeeScreen(Harness harness) { + accessProposal(harness).clickSalesEmployee(); + } + + @TestCase(name = "Check risk screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T460") + public void checkRiskScreen(Harness harness) { + accessProposal(harness).clickRisk(); + } + + @TestCase(name = "Check client accounts screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T461") + public void checkClientAccountsScreen(Harness harness) { + accessProposal(harness).clickClientAccounts(); + } + + @TestCase(name = "Check covenants in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T462") + public void checkCovenantScreen(Harness harness) { + accessProposal(harness).clickCovenants(); + } + + @TestCase(name = "Check conditions fulfilment screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T463") + public void checkConditionsFulfilmentScreen(Harness harness) { + accessProposal(harness).clickConditionsFulfilment(); + } + + @TestCase(name = "Check deal conditions in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T464") + public void checkDealConditionsScreen(Harness harness) { + accessProposal(harness).clickDealConditions(); + } + + @TestCase(name = "Check checklists screen in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T465") + public void checkChecklistsScreen(Harness harness) { + accessProposal(harness).clickChecklists(); + } + + @TestCase(name = "Check send proposal in proposal.", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T466") + public void checkSendProposalScreen(Harness harness) { + accessProposal(harness).clickSendProposal(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckEuWcCreateDelete.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckEuWcCreateDelete.java new file mode 100644 index 0000000..d35da4e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckEuWcCreateDelete.java @@ -0,0 +1,78 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.data.EventData; +import cz.moneta.test.dsl.salesforce.data.OpportunityData; +import cz.moneta.test.dsl.salesforce.data.SaleData; +import cz.moneta.test.dsl.ufo.cb.landing.proposals.EuWorkingCapital; +import cz.moneta.test.dsl.util.data.client.NewClientCommercial; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.dsl.util.task.ufo.cb.ProposalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenarioWithOrder(name = "Test checks creation of proposal and delete of proposal") +public class CheckEuWcCreateDelete { + private EuWorkingCapital proposal; + private String ico; + private CommercialTasks tasks; + private ProposalTasks proposalTasks; + + @BeforeAll + public void setUp(Harness harness) { + tasks = harness.tasks().ufo().cb(); + proposalTasks = tasks.proposalTasks(); + NewClientCommercial newClientCommercial = tasks.createNewFop(); + tasks.linkNewFopClientToSalesForce(newClientCommercial); + ico = newClientCommercial.getClientData().ico(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + } + + @Order(value = 1) + @TestCase(name = "Test creates proposal in SalesForce", environments = {Environment.TST1, Environment.PPE}) + public void createProposalInSalesforce(Harness harness) { + OpportunityData opportunityData = OpportunityData.builder().build().getInvestmentOpportunity(); + opportunityData.setAccount(ico); + EventData eventData = EventData.builder().build().getMeetingActiveBusiness(); + SaleData saleData = SaleData.builder().build().getInvestmentSale(); + harness.withSalesForce() + .openLoginPage() + .then(harness.tasks().salesForce().loginAsBanker()) + .then(harness.tasks().salesForce().newOpportunityTasks().newOpportunity(opportunityData, eventData, saleData)); + } + + @Order(value = 2) + @TestCase(name = "Test creates proposal - EU Provoz", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T397") + public void createProposal(Harness harness) { + proposal = new EuWorkingCapital(); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .then(proposalTasks.createProposal()) + .then(proposalTasks.fillProposalEuWc(proposal)) + .then(proposalTasks.saveProposal(proposal)); + tasks.appendJiraComment(String.format("Proposal ID: %s", proposal.getProposalId())); + } + + @Order(value = 3) + @TestCase(name = "Test deletes proposal - EU Provoz", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T408") + public void deleteProposal(Harness harness) { + Assertions.assertNotEquals(null, proposal.getProposalId(), "Proposal was not created, that means it can not be deleted."); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(proposalTasks.deleteProposal(proposal.getProposalId())); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckFlexiWcCreateDelete.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckFlexiWcCreateDelete.java new file mode 100644 index 0000000..a762f95 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckFlexiWcCreateDelete.java @@ -0,0 +1,78 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.data.EventData; +import cz.moneta.test.dsl.salesforce.data.OpportunityData; +import cz.moneta.test.dsl.salesforce.data.SaleData; +import cz.moneta.test.dsl.ufo.cb.landing.proposals.FlexiWorkingCapital; +import cz.moneta.test.dsl.util.data.client.NewClientCommercial; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.dsl.util.task.ufo.cb.ProposalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenarioWithOrder(name = "Test checks creation of proposal and delete of proposal") +public class CheckFlexiWcCreateDelete { + private FlexiWorkingCapital proposal; + private String ico; + private CommercialTasks tasks; + private ProposalTasks proposalTasks; + + @BeforeAll + public void setUp(Harness harness) { + tasks = harness.tasks().ufo().cb(); + proposalTasks = tasks.proposalTasks(); + NewClientCommercial newClientCommercial = tasks.createNewFop(); + tasks.linkNewFopClientToSalesForce(newClientCommercial); + ico = newClientCommercial.getClientData().ico(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + } + + @Order(value = 1) + @TestCase(name = "Test creates proposal in SalesForce", environments = {Environment.TST1, Environment.PPE}) + public void createProposalInSalesforce(Harness harness) { + OpportunityData opportunityData = OpportunityData.builder().build().getInvestmentOpportunity(); + opportunityData.setAccount(ico); + EventData eventData = EventData.builder().build().getMeetingActiveBusiness(); + SaleData saleData = SaleData.builder().build().getInvestmentSale(); + harness.withSalesForce() + .openLoginPage() + .then(harness.tasks().salesForce().loginAsBanker()) + .then(harness.tasks().salesForce().newOpportunityTasks().newOpportunity(opportunityData, eventData, saleData)); + } + + @Order(value = 2) + @TestCase(name = "Test creates proposal - Flexi Provoz", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T398") + public void createProposal(Harness harness) { + proposal = new FlexiWorkingCapital(); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .then(proposalTasks.createProposal()) + .then(proposalTasks.fillProposalFlexiWc(proposal)) + .then(proposalTasks.saveProposal(proposal)); + tasks.appendJiraComment(String.format("Proposal ID: %s", proposal.getProposalId())); + } + + @Order(value = 3) + @TestCase(name = "Test deletes proposal - Flexi Provoz", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T409") + public void deleteProposal(Harness harness) { + Assertions.assertNotEquals(null, proposal.getProposalId(), "Proposal was not created, that means it can not be deleted."); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(proposalTasks.deleteProposal(proposal.getProposalId())); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckGeneralWarrantyCreateDelete.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckGeneralWarrantyCreateDelete.java new file mode 100644 index 0000000..3918e1a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckGeneralWarrantyCreateDelete.java @@ -0,0 +1,78 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.data.EventData; +import cz.moneta.test.dsl.salesforce.data.OpportunityData; +import cz.moneta.test.dsl.salesforce.data.SaleData; +import cz.moneta.test.dsl.ufo.cb.landing.proposals.GeneralWarranty; +import cz.moneta.test.dsl.util.data.client.NewClientCommercial; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.dsl.util.task.ufo.cb.ProposalTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenarioWithOrder(name = "Test checks creation of proposal and delete of proposal") +public class CheckGeneralWarrantyCreateDelete { + private GeneralWarranty proposal; + private String ico; + private CommercialTasks tasks; + private ProposalTasks proposalTasks; + + @BeforeAll + public void setUp(Harness harness) { + tasks = harness.tasks().ufo().cb(); + proposalTasks = tasks.proposalTasks(); + NewClientCommercial newClientCommercial = tasks.createNewFop(); + tasks.linkNewFopClientToSalesForce(newClientCommercial); + ico = newClientCommercial.getClientData().ico(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + } + + @Order(value = 1) + @TestCase(name = "Test creates proposal in SalesForce", environments = {Environment.TST1, Environment.PPE}) + public void createProposalInSalesforce(Harness harness) { + OpportunityData opportunityData = OpportunityData.builder().build().getInvestmentOpportunity(); + opportunityData.setAccount(ico); + EventData eventData = EventData.builder().build().getMeetingActiveBusiness(); + SaleData saleData = SaleData.builder().build().getInvestmentSale(); + harness.withSalesForce() + .openLoginPage() + .then(harness.tasks().salesForce().loginAsBanker()) + .then(harness.tasks().salesForce().newOpportunityTasks().newOpportunity(opportunityData, eventData, saleData)); + } + + @Order(value = 2) + @TestCase(name = "Test creates proposal - Ramcova zaruka", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T399") + public void createProposal(Harness harness) { + proposal = new GeneralWarranty(); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .then(proposalTasks.createProposal()) + .then(proposalTasks.fillProposalGeneralWarranty(proposal)) + .then(proposalTasks.saveProposal(proposal)); + tasks.appendJiraComment(String.format("Proposal ID: %s", proposal.getProposalId())); + } + + @Order(value = 3) + @TestCase(name = "Test deletes proposal - Ramcova zaruka", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T411") + public void deleteProposal(Harness harness) { + Assertions.assertNotEquals(null, proposal.getProposalId(), "Proposal was not created, that means it can not be deleted."); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(proposalTasks.deleteProposal(proposal.getProposalId())); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckLoadingPages.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckLoadingPages.java new file mode 100644 index 0000000..754728d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckLoadingPages.java @@ -0,0 +1,209 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.cb.landing.IKL402_S001_ClientPage; +import cz.moneta.test.dsl.ufo.cb.landing.SME451_S001_UfoCbLandingPage; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Test loading pages") +public class CheckLoadingPages { + private CommercialTasks tasks; + + private SME451_S001_UfoCbLandingPage accessLandingPage(Harness harness) { + return harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()); + } + + private IKL402_S001_ClientPage accessClientPage(Harness harness) { + String ico = harness.getConfig("commercial.cb.ico"); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + return harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)); + } + + @BeforeAll + public void setUp(Harness harness) { + tasks = harness.tasks().ufo().cb(); + } + + @TestCase(name = "Check loading page EVD420_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T365") + public void checkBillGuarantorPage(Harness harness) { + accessLandingPage(harness) + .clickBillGuarantorLink() + .clickSearchButton() + .checkResultTablePresent(); + } + + @TestCase(name = "Check loading page ZST425_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T366") + public void checkSearchCollateralPage(Harness harness) { + accessLandingPage(harness) + .clickCollateralLink(); + } + + @TestCase(name = "Check loading page DSB451_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T367") + public void checkTaskPage(Harness harness) { + accessLandingPage(harness) + .clickTasksLink(); + } + + @TestCase(name = "Check loading page PRC402_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T368") + public void checkPricingApprovalPage(Harness harness) { + accessLandingPage(harness) + .clickPricingApprovalLink(); + } + + @TestCase(name = "Check loading page SME401_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T481") + public void checkSearchPage(Harness harness) { + accessLandingPage(harness) + .clickSearchLink(); + } + + @TestCase(name = "Check loading page DMS402_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T482") + public void checkSearchDocumentPage(Harness harness) { + accessLandingPage(harness) + .clickDocumentsLink(); + } + + @TestCase(name = "Check loading page NAP401_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T483") + public void checkUserHelpContactPage(Harness harness) { + accessLandingPage(harness) + .clickUserHelpLink(); + } + + @TestCase(name = "Check loading page SPV412_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T484") + public void checkSupervisionPage(Harness harness) { + accessLandingPage(harness) + .clickSupervisionLink(); + } + + @TestCase(name = "Check loading page DMS421_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T485") + public void checkDocumentScanPage(Harness harness) { + accessLandingPage(harness) + .clickDocumentScanLink(); + } + + @TestCase(name = "Check loading page CPL401_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T486") + public void checkCashPoolingPage(Harness harness) { + accessLandingPage(harness) + .clickCashPoolingLink(); + } + + @TestCase(name = "Check loading page SME410_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T487") + public void checkTemplatesPage(Harness harness) { + accessLandingPage(harness) + .clickTemplatesLink(); + } + + @TestCase(name = "Check loading page KAC402_S001 from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T488") + public void checkEventCalendarPage(Harness harness) { + accessLandingPage(harness) + .clickEventCalendarLink(); + } + + @TestCase(name = "Check opening signpost report from SME451_S001", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T414") + public void checkOpeningSignpostReport(Harness harness) { + accessLandingPage(harness) + .clickSignPostLink() + .switchToSignPostReportsWindowAndCheckUrl("https://financesupport2/retailsales/mainPage.php"); + } + + @TestCase(name = "Check loading CLIENT CARD PAGE from CLIENT PAGE", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T579") + public void checkClientCardPage(Harness harness) { + accessClientPage(harness) + .clickClientCard(); + } + + @TestCase(name = "Check loading RELATIONS PAGE from CLIENT PAGE", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T580") + public void checkRelationsPage(Harness harness) { + accessClientPage(harness) + .clickRelationsButton(); + } + + @TestCase(name = "Check loading FINANCIAL SHEETS PAGE from CLIENT PAGE", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T581") + public void checkFinancialSheetsPage(Harness harness) { + accessClientPage(harness) + .clickFinancialSheets(); + } + + @TestCase(name = "Check loading SUMMARY OF TASKS from CLIENT PAGE", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T582") + public void checkSummaryOfTasksPage(Harness harness) { + accessClientPage(harness) + .clickTasks(); + } + + @TestCase(name = "Check loading PRICING PAGE from CLIENT PAGE", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T583") + public void checkPricingPage(Harness harness) { + accessClientPage(harness) + .clickPricing(); + } + + @TestCase(name = "Check loading COLLATERAL PAGE from CLIENT PAGE", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T584") + public void checkCollateralPage(Harness harness) { + accessClientPage(harness) + .clickCollateral(); + } + + @TestCase(name = "Check loading DOCUMENTS PAGE from CLIENT PAGE", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T585") + public void checkDocumentsPage(Harness harness) { + accessClientPage(harness) + .clickDocuments(); + } + + @TestCase(name = "Check loading CLIENT RECORDS PAGE from CLIENT PAGE", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T586") + public void checkClientRecordsPage(Harness harness) { + String registrationNumber = harness.getConfig("commercial.cb.reg-number"); + String selectValue = registrationNumber + "|||"; + accessClientPage(harness) + .clickClientRecord() + .selectRegistrationNumberAndClick(selectValue) + .checkFirstRecordRegistrationNumber(registrationNumber); + } + + @TestCase(name = "Check loading CHECKLISTS PAGE from CLIENT PAGE", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T587") + public void checkChecklistsPage(Harness harness) { + accessClientPage(harness) + .clickChecklists(); + } + + @TestCase(name = "Check loading RATING LGD PAGE from CLIENT PAGE", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T588") + public void checkRatingLgdPage(Harness harness) { + accessClientPage(harness) + .clickRatingLgd(); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckSearchingClient.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckSearchingClient.java new file mode 100644 index 0000000..bde48db --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/CheckSearchingClient.java @@ -0,0 +1,147 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.cb.landing.SME401_S001_SearchPage; +import cz.moneta.test.dsl.util.data.client.NewClientCommercial; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Test checks searching by ICO") +public class CheckSearchingClient { + + private NewClientCommercial client; + private CommercialTasks tasks; + + @BeforeAll + public void setUp(Harness harness) { + tasks = harness.tasks().ufo().cb(); + client = tasks.createNewGlobalFopBe(); + } + + private SME401_S001_SearchPage accessSearchPage(Harness harness) { + return harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .clickSearchLink(); + } + + @TestCase(name = "Check if searching by ICO is working", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T369") + public void checkSearchByIco(Harness harness) { + String ico = this.client.getClientData().ico(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + accessSearchPage(harness) + .pickIco() + .typeDetailForSearch(ico) + .clickSearch() + .checkIco(ico); + } + + @TestCase(name = "Check if searching by ICO starting with 0 is working", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T370") + public void checkSearchByIcoStartingZero(Harness harness) { + String ico = harness.getConfig("commercial.cb.ico-zero"); //TODO replace witch dynamic data in the future + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + accessSearchPage(harness) + .pickIco() + .typeDetailForSearch(ico) + .clickSearch() + .checkIco(ico); + } + + @TestCase(name = "Check if searching by RC is working", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T371") + public void checkSearchByRc(Harness harness) { + String rc = harness.getConfig("commercial.cb.rc-fo"); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("RC: %s
", rc)); + accessSearchPage(harness) + .pickRc() + .typeDetailForSearch(rc) + .clickSearch() + .checkRc(rc); + } + + @TestCase(name = "Check if searching by CIF is working", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T372") + public void checkSearchByCif(Harness harness) { + String cif = client.getCif(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("CIF: %s
", cif)); + accessSearchPage(harness) + .pickCif() + .typeDetailForSearch(cif) + .clickSearch() + .clickDetailedClientInfo() + .checkCif(cif); + } + + @TestCase(name = "Check if searching by proposalID is working", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T373") + public void checkSearchByProposalId(Harness harness) { + String proposalId = harness.getConfig("commercial.cb.proposal-id"); //TODO replace witch dynamic data in the future + harness.store(JIRA_COMMENT_STORE_KEY, String.format("Proposal ID: %s
", proposalId)); + accessSearchPage(harness) + .pickProposalId() + .typeDetailForSearch(proposalId) + .clickSearch() + .checkProposalId(proposalId); + } + + @TestCase(name = "Check if searching by ACCOUNT NUMBER is working", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T381") + public void checkSearchByAccountNumber(Harness harness) { + String accNum = harness.getConfig("commercial.cb.account-number"); //TODO replace witch dynamic data in the future + harness.store(JIRA_COMMENT_STORE_KEY, String.format("Account number: %s
", accNum)); + accessSearchPage(harness) + .pickAccountNumber() + .typeDetailForSearch(accNum) + .clickSearch() + .checkAccNum(accNum); + } + + @TestCase(name = "Check if searching by ACCOUNT NUMBER starting with 0 is working", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T875") + public void checkSearchByAccountNumberStartingZero(Harness harness) { + String accNum = harness.getConfig("commercial.cb.account-number-zero"); + String regex = "^0+(?!$)"; + String accNumWithoutZeros = accNum.replaceAll(regex, ""); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("Account number: %s
", accNum)); + accessSearchPage(harness) + .pickAccountNumber() + .typeDetailForSearch(accNum) + .clickSearch() + .checkAccNum(accNumWithoutZeros); + } + + @TestCase(name = "Check if searching by CLIENT ID is working", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T374") + public void checkSearchByClientId(Harness harness) { + String personId = this.client.getPersonId().toString(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("Person ID: %s
", personId)); + accessSearchPage(harness) + .pickClientId() + .typeDetailForSearch(personId) + .clickSearch() + .clickDetailedClientInfo() + .checkClientId(personId); + } + + @TestCase(name = "Check if searching by REG NUMBER is working", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T375") + public void checkSearchByRegNum(Harness harness) { + String regNum = harness.getConfig("commercial.cb.reg-number"); //TODO replace witch dynamic data in the future + harness.store(JIRA_COMMENT_STORE_KEY, String.format("Registration number: %s
", regNum)); + accessSearchPage(harness) + .pickRegNum() + .typeDetailForSearch(regNum) + .clickSearch() + .checkRegNum(regNum); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadAllTradesAndProposals.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadAllTradesAndProposals.java new file mode 100644 index 0000000..7239961 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadAllTradesAndProposals.java @@ -0,0 +1,31 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Test loads all client trades and proposals") +public class LoadAllTradesAndProposals { + + @TestCase(name = "Check flow and loads in trade and proposals", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T376") + public void checkFlowInTradeAndProposals(Harness harness) { + String ico = harness.getConfig("commercial.cb.ico"); + CommercialTasks tasks = harness.tasks().ufo().cb(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .clickAllTrades() + .checkElementListOfTrades() + .clickBack(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadBlackListsRelevantPersons.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadBlackListsRelevantPersons.java new file mode 100644 index 0000000..434425a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadBlackListsRelevantPersons.java @@ -0,0 +1,32 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Test loads all blacklists of relevant persons") +public class LoadBlackListsRelevantPersons { + + @TestCase(name = "Check flows and loads in blacklists of relevant persons", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T377") + public void checkFlowsAndLoadsBlacklists(Harness harness) { + String ico = harness.getConfig("commercial.cb.ico"); + CommercialTasks tasks = harness.tasks().ufo().cb(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .checkElementListProposals() + .checkProduct() + .clickRelevantPersonsBlackLists() + .clickBackToClientCard(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadDetailOfFirstDealOrProposal.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadDetailOfFirstDealOrProposal.java new file mode 100644 index 0000000..bdbbc19 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadDetailOfFirstDealOrProposal.java @@ -0,0 +1,30 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Test shows detail of first propsal or trade.") +public class LoadDetailOfFirstDealOrProposal { + + @TestCase(name = "Check flow and loads in trade and proposals", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T378") + public void checkFlowInTradeAndProposals(Harness harness) { + String ico = harness.getConfig("commercial.cb.ico"); + CommercialTasks tasks = harness.tasks().ufo().cb(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .checkElementListProposals() + .checkProduct(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadDiscussion.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadDiscussion.java new file mode 100644 index 0000000..702a197 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/LoadDiscussion.java @@ -0,0 +1,35 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Test loads client discussion") +public class LoadDiscussion { + + @TestCase(name = "Check flow and loads in chat", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T379") + public void checkFlowAndLoadsChat(Harness harness) { + String ico = harness.getConfig("commercial.cb.ico"); + CommercialTasks tasks = harness.tasks().ufo().cb(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .checkProduct() + .clickChat() + .checkElementLoadDiscussion() + .clickLoadDiscussion() + .clickPostDetail() + .clickCloseDetail() + .clickEndChat(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/SaveDocumentToClient.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/SaveDocumentToClient.java new file mode 100644 index 0000000..5eccca7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/SaveDocumentToClient.java @@ -0,0 +1,122 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.cb.landing.DMS424_S001_UploadFile; +import cz.moneta.test.dsl.util.data.client.NewClientCommercial; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenarioWithOrder(name = "Save documents to client") +public class SaveDocumentToClient { + + private String ico; + private CommercialTasks tasks; + + @BeforeAll + public void setUp(Harness harness) { + tasks = harness.tasks().ufo().cb(); + NewClientCommercial newClientCommercial = tasks.createNewGlobalFopBe(); + ico = newClientCommercial.getClientData().ico(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + } + + private DMS424_S001_UploadFile accessSavingDocument(Harness harness) { + String type = "Ostatní"; + return harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbBanker()) + .then(tasks.searchClient(ico)) + .clickDocuments() + .clickNewDocumentButton() + .selectDocumentType(type) + .saveDocument(); + + } + + @Order(1) + @TestCase(name = "Save PDF document to client", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T358") + public void savePdfDocument(Harness harness) { + String doc_path = "regression/ufo/cb/Pdf.pdf"; + String name = doc_path.substring(doc_path.length() - 3).toUpperCase() + " " + java.time.LocalTime.now() + " " + java.time.LocalDate.now(); + accessSavingDocument(harness) + .typeDocumentName(name) + .uploadDocument(doc_path) + .clickSaveButton() + .checkDocumentName(name); + } + + @Order(2) + @TestCase(name = "Save DOC document to client", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T359") + public void saveDocDocument(Harness harness) { + String doc_path = "regression/ufo/cb/Doc.doc"; + String name = doc_path.substring(doc_path.length() - 3).toUpperCase() + " " + java.time.LocalTime.now() + " " + java.time.LocalDate.now(); + accessSavingDocument(harness) + .typeDocumentName(name) + .uploadDocument(doc_path) + .clickSaveButton() + .checkDocumentName(name); + } + + @Order(3) + @TestCase(name = "Save MSG document to client", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T360") + public void saveMsgDocument(Harness harness) { + String doc_path = "regression/ufo/cb/Msg.msg"; + String name = doc_path.substring(doc_path.length() - 3).toUpperCase() + " " + java.time.LocalTime.now() + " " + java.time.LocalDate.now(); + accessSavingDocument(harness) + .typeDocumentName(name) + .uploadDocument(doc_path) + .clickSaveButton() + .checkDocumentName(name); + } + + @Order(4) + @TestCase(name = "Save TIF document to client", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T361") + public void saveTifDocument(Harness harness) { + String doc_path = "regression/ufo/cb/Tiff.tif"; + String name = doc_path.substring(doc_path.length() - 3).toUpperCase() + " " + java.time.LocalTime.now() + " " + java.time.LocalDate.now(); + accessSavingDocument(harness) + .typeDocumentName(name) + .uploadDocument(doc_path) + .clickSaveButton() + .checkDocumentName(name); + } + + @Order(5) + @TestCase(name = "Save XLS document to client", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T362") + public void saveXlsDocument(Harness harness) { + String doc_path = "regression/ufo/cb/Xls.xls"; + String name = doc_path.substring(doc_path.length() - 3).toUpperCase() + " " + java.time.LocalTime.now() + " " + java.time.LocalDate.now(); + accessSavingDocument(harness) + .typeDocumentName(name) + .uploadDocument(doc_path) + .clickSaveButton() + .checkDocumentName(name); + } + + @Order(6) + @TestCase(name = "Save JPG document to client", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T363") + public void saveJpgDocument(Harness harness) { + String doc_path = "regression/ufo/cb/Jpg.jpg"; + String name = doc_path.substring(doc_path.length() - 3).toUpperCase() + " " + java.time.LocalTime.now() + " " + java.time.LocalDate.now(); + accessSavingDocument(harness) + .typeDocumentName(name) + .uploadDocument(doc_path) + .clickSaveButton() + .checkDocumentName(name); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/SaveNotesToDocument.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/SaveNotesToDocument.java new file mode 100644 index 0000000..71c61f6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/archive/SaveNotesToDocument.java @@ -0,0 +1,39 @@ +package cz.moneta.test.regression.commercial.cb.archive; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@Disabled +@TestScenario(name = "Test saves note in documents page") +public class SaveNotesToDocument { + + @TestCase(name = "Check flow and loads in documents page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T380") + public void checkFlowAndLoadsDocument(Harness harness) { + String ico = harness.getConfig("commercial.cb.ico"); + String note = "\n" + "Dne " + TestUtils.getTodayDate() + " proběhl automatický test"; + CommercialTasks tasks = harness.tasks().ufo().cb(); + harness.store(JIRA_COMMENT_STORE_KEY, String.format("ICO: %s
", ico)); + harness.withUfo() + .openLoginPage() + .then(tasks.loginAsCbReader()) + .clickDocumentsLink() + .checkOtherDocuments() + .checkIC() + .typeDetailForDocument(ico) + .clickSearchDocuments() + .checkDocument() + .clickDocumentDetail() + .checkElementNotes() + .typeDocumentNotes(note) + .clickSaveNotes(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/cb/datapreparation/CreateFinancialSheetOnClients.java b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/datapreparation/CreateFinancialSheetOnClients.java new file mode 100644 index 0000000..e08a781 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/cb/datapreparation/CreateFinancialSheetOnClients.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.commercial.cb.datapreparation; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.shared.UfoOpsUtils; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.*; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.params.provider.MethodSource; + +import java.util.List; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.FULL_NAME_KEY; +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Create Financial Sheet On Clients") + +public class CreateFinancialSheetOnClients { + + private String currentClientICO = null; + String path; + + @BeforeAll + public void setUp(Harness harness) { + path = harness.getConfig("commercial.cb.ico-list-for-financial-sheet"); + } + + private List returnValuesForTest() { + return UfoOpsUtils.loadClientsIcoFromTextFile(path); + } + + @ParameterizedTestCase(name = "Create Financial Sheets", environments = {Environment.TST1}) + @MethodSource("returnValuesForTest") + @JiraTestCase(id = "SC-T2211") + public void createFinancialSheets(String clientIco, Harness harness) { + currentClientICO = clientIco; + CommercialTasks commercialTasks = harness.tasks().ufo().cb(); + harness.withUfo().openLoginPage() + .then(commercialTasks.loginAsCbContractualDocumentAdministrator()) + .then(commercialTasks.searchClient(clientIco)) + .clickFinancialSheets() + .then(commercialTasks.createFinancialSheet()); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nIČO klienta: " + currentClientICO + + "\nJméno klienta: " + harness.get(FULL_NAME_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid", true)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/package-info.java b/tests/src/test/java/cz/moneta/test/regression/commercial/package-info.java new file mode 100644 index 0000000..d74366b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/package-info.java @@ -0,0 +1,4 @@ +/** + * Value Stream: Commercial + */ +package cz.moneta.test.regression.commercial; \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/api/GetElasticVersionTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/api/GetElasticVersionTest.java new file mode 100644 index 0000000..a22647c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/api/GetElasticVersionTest.java @@ -0,0 +1,24 @@ +package cz.moneta.test.regression.commercial.salesforce.api; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +@TestScenario +public class GetElasticVersionTest { + + @TestCase + public void getElasticVersion(Harness harness) { + String token = harness.tasks().elasticApiTasks().getAuthorizationToken(); + + RawRestRequest.Response response = harness.withElasticApi() + .prepareReadRequest() + .withPath("/") + .withHeader("Authorization", "Basic " + token) + .get() + .andAssertStatus(200); + + harness.log("Response: " + response.extract("").toString()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/api/GetSalesForceVersionTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/api/GetSalesForceVersionTest.java new file mode 100644 index 0000000..fc7b4ea --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/api/GetSalesForceVersionTest.java @@ -0,0 +1,22 @@ +package cz.moneta.test.regression.commercial.salesforce.api; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +@TestScenario(name = "Test application availability") +public class GetSalesForceVersionTest { + + @TestCase(name = "Get app versions", environments = {Environment.TST1, Environment.PPE}) + public void getSalesForceVersion(Harness harness) { + RawRestRequest.Response response = harness.withSalesForceApi() + .prepareRequest() + .withPath("/data") + .get() + .andAssertStatus(200); + + harness.log("Response: " + response.extract("").toString()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/DownloadTests.java b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/DownloadTests.java new file mode 100644 index 0000000..e8e39d6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/DownloadTests.java @@ -0,0 +1,29 @@ +package cz.moneta.test.regression.commercial.salesforce.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.tasks.SalesForceTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Downloads client pricing review file and check its name") +public class DownloadTests { + + //TODO SalesForce on PPE is not up to date, needs to be added and retested after its update + @TestCase(name = "Downloads client pricing review file and check its name", environments = {Environment.TST1}) + @JiraTestCase(id = "SC-T771") + public void downloadClientPricingReview(Harness harness) { + SalesForceTasks tasks = harness.tasks().salesForce(); + String account = harness.getConfig("salesforce.test.account"); + + harness.withSalesForce() + .openLoginPage() + .then(tasks.loginAsBanker()) + .then(tasks.openAccountDetail(account)) + .onAccountDetailPage() + .clickPricingReviewAndWaitForDownload() + .logoutUser(); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/LockUnlockAccountTests.java b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/LockUnlockAccountTests.java new file mode 100644 index 0000000..42cfc49 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/LockUnlockAccountTests.java @@ -0,0 +1,96 @@ +package cz.moneta.test.regression.commercial.salesforce.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.pages.accounts.AccountDetailPage; +import cz.moneta.test.dsl.salesforce.tasks.SalesForceTasks; +import cz.moneta.test.dsl.salesforceapi.tasks.SalesForceApiTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; + +@NonConcurrentTestScenario(name = "Search and lock account") +public class LockUnlockAccountTests { + private String account; + private String accountRemedial; + private String accountId; + private SalesForceTasks tasks; + private SalesForceApiTasks apiTasks; + + @BeforeAll + public void checkAccountLock(Harness harness) { + account = harness.getConfig("salesforce.test.account"); + accountRemedial = harness.getConfig("salesforce.test.accountRemedialYes"); + accountId = harness.getConfig("salesforce.test.accountId"); + tasks = harness.tasks().salesForce(); + apiTasks = harness.tasks().salesForceApiTasks(); + } + + //TODO SalesForce on PPE is not up to date, needs to be added and retested after its update + @TestCase(name = "Search and lock account", environments = {Environment.TST1}) + @JiraTestCase(id = "SC-T710") + public void lockAccount(Harness harness) { + String accountOwner; + String accountLocked; + AccountDetailPage onAccountDetailPage; + + apiTasks.unlockAccount(accountId); + + onAccountDetailPage = harness.withSalesForce() + .openLoginPage() + .then(tasks.loginAsBanker()) + .then(tasks.openAccountDetail(account)) + .clickLockAccount() + .selectAndSaveAccountOwner("Automation Test") + .refreshPage(); + accountLocked = onAccountDetailPage.getAccountLock(); + accountOwner = onAccountDetailPage.getAccountOwner(); + onAccountDetailPage.logoutUser(); + + Assertions.assertEquals("Ano", accountLocked, String.format("Account %s is not locked. Should be locked.", account)); + Assertions.assertEquals("Test Automation", accountOwner, String.format("Account owner is: %s. Expected: Test Automation", accountOwner)); + } + + //TODO SalesForce on PPE is not up to date, needs to be added and retested after its update + @TestCase(name = "Search and unlock account", environments = {Environment.TST1}) + @JiraTestCase(id = "SC-T766") + public void unlockAccount(Harness harness) { + String accountOwner; + String accountLocked; + AccountDetailPage onAccountDetailPage; + + apiTasks.lockAccount(accountId); + + onAccountDetailPage = harness.withSalesForce() + .openLoginPage() + .then(tasks.loginAsBanker()) + .then(tasks.openAccountDetail(account)) + .clickUnlockAccount() + .refreshPage(); + accountLocked = onAccountDetailPage.getAccountLock(); + accountOwner = onAccountDetailPage.getAccountOwner(); + onAccountDetailPage.logoutUser(); + + Assertions.assertEquals("Ne", accountLocked, String.format("Account %s is locked. Should be unlocked.", account)); + Assertions.assertEquals("-", accountOwner, String.format("Account owner is: %s. Expected: -", accountOwner)); + } + + //TODO SalesForce on PPE is not up to date, needs to be added and retested after its update + @TestCase(name = "Search and unlock account with Remedial flag - YES", environments = {Environment.TST1}) + @JiraTestCase(id = "SC-T773") + public void lockAccountRemedial(Harness harness) { + AccountDetailPage onAccountDetailPage; + + onAccountDetailPage = harness.withSalesForce() + .openLoginPage() + .then(tasks.loginAsBanker()) + .then(tasks.openAccountDetail(accountRemedial)) + .clickLockAccount() + .checkIfSubjectInRemedial() + .cancelDialogWindow(); + onAccountDetailPage.logoutUser(); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/NewOpportunityTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/NewOpportunityTest.java new file mode 100644 index 0000000..a6c3245 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/NewOpportunityTest.java @@ -0,0 +1,46 @@ +package cz.moneta.test.regression.commercial.salesforce.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.data.OpportunityData; +import cz.moneta.test.dsl.salesforce.tasks.SalesForceTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import org.junit.jupiter.api.Disabled; + +@NonConcurrentTestScenario(name = "Create new opportunity") +public class NewOpportunityTest { + + //TODO the Salesforce was updated, this test is not up to date + @TestCase(name = "Create new opportunity for account", environments = {Environment.TST1}) + @JiraTestCase(id = "SC-T751") + @Disabled + public void newOpportunity(Harness harness) { + SalesForceTasks tasks = harness.tasks().salesForce(); + OpportunityData opportunityData = OpportunityData.builder().build().getInvestmentOpportunity(); + + harness.withSalesForce() + .openLoginPage() + .then(tasks.loginAsBanker()) + .then(tasks.openAccountDetail(opportunityData.getAccount())) + .onAccountDetailPage() + .clickNewOpportunityButton() + .onNewOpportunityPage() + .selectOpportunityInitiator(opportunityData.getInitiator()) + .selectOpportunitySource(opportunityData.getSource()) + .inputOpportunityBranch(opportunityData.getBranch()) + .fillOpportunityAmount(opportunityData.getAmount()) + .fillOpportunityProbability(opportunityData.getProbability()) + .fillOpportunitySignatureDate(opportunityData.getSignatureDate()) + .fillOpportunityDescription(opportunityData.getDescription()) + .selectProductPotentials(opportunityData.getProductPotential()) + .clickNext() + .onOpportunityConfirmationPage() + .clickFinishButton() + .onOpportunityDetailPage() + .checkAccountId(opportunityData.getAccount()) + .logoutUser(); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/NotesSummaryTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/NotesSummaryTest.java new file mode 100644 index 0000000..797e5d4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/NotesSummaryTest.java @@ -0,0 +1,27 @@ +package cz.moneta.test.regression.commercial.salesforce.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.tasks.SalesForceTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "View summary of notes on client account page.") +public class NotesSummaryTest { + + @TestCase(name = "Login to SalesForce, search account and view notes summary.", environments = {Environment.TST1}) + @JiraTestCase(id = "SC-T776") + public void viewNotesSummary(Harness harness) { + String account = harness.getConfig("salesforce.test.account"); + SalesForceTasks tasks = harness.tasks().salesForce(); + + harness.withSalesForce() + .openLoginPage() + .then(tasks.loginAsBanker()) + .then(tasks.openAccountDetail(account)) + .then(tasks.openNoteSummaryDetail(account)) + .logoutUser(); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/SearchTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/SearchTest.java new file mode 100644 index 0000000..3d53b3e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/salesforce/web/SearchTest.java @@ -0,0 +1,26 @@ +package cz.moneta.test.regression.commercial.salesforce.web; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.tasks.SalesForceTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Login to SalesForce and search account") +public class SearchTest { + + @TestCase(name = "Login to SalesForce and search account", environments = {Environment.TST1}) + @JiraTestCase(id = "SC-T752") + public void loginAndSearchAccount(Harness harness) { + String accountToSearch = harness.getConfig("salesforce.test.account"); + SalesForceTasks tasks = harness.tasks().salesForce(); + + harness.withSalesForce() + .openLoginPage() + .then(tasks.loginAsBanker()) + .then(tasks.openAccountDetail(accountToSearch)) + .logoutUser(); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/DataPrepare.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/DataPrepare.java new file mode 100644 index 0000000..c8ba509 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/DataPrepare.java @@ -0,0 +1,68 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.client.*; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.util.DateUtils.getSpecificDayRaw; + +public final class DataPrepare { + + public static NonClient setUpFop(Harness harness) { + return harness.data().newNonClient() + .withEmail("dummy.a1a2a3a4a5a6a7a8@hanka.hu") + .withMobileNumber("725559544") + .withIdNumber("208243633") + .withIdNumberExpiration("09.06.2027") + .withDriverLicenceId("EK 608907") + .withDriveLicenceExpiryDateRaw(getSpecificDayRaw(31, 8, 2026)) + .withMaritalStatus(MaritalStatus.SINGLE) + .withEducationLevel(EducationLevel.HIGHER) + .withAccommodationType(AccommodationType.OWN) + .withOccupationType(OccupationType.PODNIKATEL) + .withDependants(0); + } + + public static NonClient setUpPo(Harness harness) { + return harness.data().newNonClient() + .withEmail("dummy.a1a2a3a4a5a6a7a8@hanka.hu") + .withMobileNumber("725559544") + .withIdNumber("208243633") + .withIdNumberExpiration("09.06.2027") + .withDriverLicenceId("EK 608907") + .withDriveLicenceExpiryDateRaw(getSpecificDayRaw(31, 8, 2026)) + .withEmployer(Employer.builder() + .name("Ministerstvo automatizovaných testů") + .build()) + .withOccupationStatus(OccupationStatus.ENTREPRENEUR) + .withIncomeType(IncomeType.BUSINESS_INCOME) + .withIncomeSubtype(IncomeSubtype.BUSINESS) + .withOccupationType(OccupationType.PODNIKATEL) + .withAccommodationType(AccommodationType.OWN) + .withMaritalStatus(MaritalStatus.SINGLE) + .withEducationLevel(EducationLevel.HIGHER) + .withResidencyAddress(Address.builder() + .street("Horní lán") + .descriptiveNumber("445") + .city("Olomouc") + .zip("78301") + .build()); + } + + public static NonClient setAssociatedFop(Harness harness) { + return harness.data().newNonClient() + .withIncomeType(IncomeType.BUSINESS_INCOME) + .withIncomeSubtype(IncomeSubtype.BUSINESS) + .withOccupationType(OccupationType.PODNIKATEL); + } + + public static String getLastYear() { + return DateUtils.getLastDayOfYear(LocalDate.now().minusYears(1).getYear(), "dd.MM.yyyy"); + } + + public static String getYearBeforeLast() { + return DateUtils.getLastDayOfYear(LocalDate.now().minusYears(2).getYear(), "dd.MM.yyyy"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/TearDown.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/TearDown.java new file mode 100644 index 0000000..74a0be3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/TearDown.java @@ -0,0 +1,39 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.BankaUtils; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.BIRTH_NUMBER_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.FULL_NAME_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.ICO_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage.DOCUMENT_URLS_STORE_KEY; + +public final class TearDown { + + public static void storeIcoFullNameCifSessionId(Harness harness) { + harness.store("reports.tmfj.execution.comment", + "\nIČO klienta: " + harness.get(ICO_KEY, true) + + "\nJméno klienta: " + harness.get(FULL_NAME_KEY, true) + + "\nCIF klienta: " + harness.get(CLIENT_CIF_STORE_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nURL dokumentov: \n" + BankaUtils.formatDocumentUrls(harness.get(DOCUMENT_URLS_STORE_KEY, true))); + } + + public static void storeBirthNumberFullNameCifSessionId(Harness harness) { + harness.store("reports.tmfj.execution.comment", + "\nRČ klienta: " + harness.get(BIRTH_NUMBER_STORE_KEY, true) + + "\nJméno klienta: " + harness.get(FULL_NAME_KEY, true) + + "\nCIF klienta: " + harness.get(CLIENT_CIF_STORE_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nURL dokumentov: \n" + BankaUtils.formatDocumentUrls(harness.get(DOCUMENT_URLS_STORE_KEY, true))); + } + + public static void depersonalizeFopClient(Harness harness, String ico, String cif) { + harness.tasks().wso2().depersonalization().depersonalizeClientFOP(ico, cif); + } + + public static void depersonalizeFonClient(Harness harness, String rc, String cif) { + harness.tasks().wso2().depersonalization().depersonalizeClientFON(rc, cif); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/AresPoRefreshTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/AresPoRefreshTest.java new file mode 100644 index 0000000..6c793a1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/AresPoRefreshTest.java @@ -0,0 +1,35 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.backendtests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.AresPoRefreshRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.AresPoRefreshResponse; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "API Test for Forcing PO Update in CDI via ARES") +public class AresPoRefreshTest { + private static final String ICO = "49062671"; + private static final String SSO = "543831687"; + + @TestCase(name = "PO Update in CDI via ARES", environments = {TST1}) + @JiraTestCase(id = "SBD-T1202") + + public void aresPoRefreshTest(Harness harness) { + AresPoRefreshResponse response = harness.tasks() + .wso2() + .restRequest() + .prepareRequestFromUfo("/t/digitalchannels.sb/CBL/ARES_PO_REFRESH/001") + .withPojoPayload(AresPoRefreshRequest.builder() + .ico(ICO) + .sso(SSO) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(AresPoRefreshResponse.class); + assertNotNull(response, "API response must not be NULL"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/CurrentAccountTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/CurrentAccountTest.java new file mode 100644 index 0000000..6e74272 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/CurrentAccountTest.java @@ -0,0 +1,152 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.backendtests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Current account opening FOP") +public class CurrentAccountTest { + + private static final String CIF = "9070123752"; + + @TestCase(name = "Current account opening FOP", environments = {TST1}) + @JiraTestCase(id = "SBD-T1201") + public void currentAccount_opening(Harness harness) { + //Get NACE for customer + String nace = getNaceFromCif(harness, CIF); + + //Get SME deposit offer for given NACE + getDepositOfferNyNace(harness, nace); + + //Load individual IR plan + getDepositIndividualRatePlan(harness); + + //Open current account + String currentAccountNumber = openCurrentAccount(harness, CIF); + + //Get info for created CA + getSelectedCurrentAccountInfo(harness, currentAccountNumber); + + harness.log("Current account flow finished successfully. CA number=", currentAccountNumber); + + //Cleanup + cancelCurrentAccount(harness, currentAccountNumber); + } + + private String getNaceFromCif(Harness harness, String CIF) { + GetCustCommercialByCifResponse response = harness.tasks() + .wso2() + .restRequest() + .prepareRequestFromUfo("/t/customer.cluster/GET_CUST_COMMERCIAL_BY_CIF/001") + .withPojoPayload(GetCustCommercialByCifRequest.builder() + .cif(CIF) + .znovuNacistUpominky(0) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetCustCommercialByCifResponse.class); + + assertNotNull(response, "GET_CUST_COMMERCIAL_BY_CIF response must not be null"); + String nace = response.getOkec(); + assertNotNull(nace, "NACE must not be null"); + return nace; + } + + + private void getDepositOfferNyNace(Harness harness, String nace) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/IPE/GET_SELECTED_SME_DEPOSIT_OFFER/001") + .withPojoPayload(GetSelectedSmeDepositOfferRequest.builder() + .channelId("POS") + .nace(nace) + .residence("1") + .productClass("12") + .legalFormId("101") + .clientType("2") + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetSelectedSmeDepositOfferResponse.class); + } + + private void getDepositIndividualRatePlan(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/NAS/GET_SME_DEPOSIT_INDIVIDUAL_IR_PLAN/001") + .withPojoPayload(GetSmeDepositIndividualIrPlanRequest.builder() + .cif(CIF) + .prod_code("1202013") + .channel_id("POS") + .prod_class("12") + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetSmeDepositIndividualIrPlanResponse.class); + } + + private String openCurrentAccount(Harness harness, String CIF) { + CrtAccountIcbResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/deposit.cluster/IPE/CRT_ACCOUNT_ICB/001") + .withPojoPayload(CrtAccountIcbRequest.builder() + .obchodniJmeno("Dagmar Dokoupilová") + .produktKod("1202013") + .primarniUrednik("GEBTDEA") + .obchodniMistoAlternativni("86001340") + .postovniPoukazka("0") + .pouzitaAA("1") + .nuloveUroceni("1") + .cif(CIF) + .distribuceVypisu("1") + .periodaVypisu("2") + .poplatkovyPlanMatersky("J") + .aaZeme("52") + .obchodniMistoKod("86001340") + .datumOtevreni("2026-01-27") + .vypisNaKonciMesice(true) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(CrtAccountIcbResponse.class); + + assertNotNull(response, "CRT_ACCOUNT_ICB response must not be null"); + String currentAccountNumber = response.getCisloUctu(); + assertNotNull(currentAccountNumber, "Current account number must not be null"); + return currentAccountNumber; + } + + private void getSelectedCurrentAccountInfo(Harness harness, String currentAccountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/digitalchannels.ib/IPE/GET_SELECTED_BU_INFO/001") + .withPojoPayload(GetSelectedBuInfoRequest.builder() + .cisloUctu(currentAccountNumber) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetSelectedBuInfoResponse.class); + } + + private void cancelCurrentAccount(Harness harness, String currentAccountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/payments.cluster/IPE/DO_CANCEL_CURRENT_ACCOUNT/001/") + .withPojoPayload(DoCancelCurrentAccountRequest.builder() + .cisloUctu(currentAccountNumber) + .cisloUctuPrijemceKodBanky("0100") + .branchId("86001340") + .cisloCostCentra(3134L) + .produktKod("1202013") + .cisloUctuPrijemceVS("3004464615") + .cisluUctuPrijemceInterni("301030") + .sdeleniID(10L) + .sso("543831687") + .poplatekZaZruseni((double) 0) + .sdeleniText("Klient: Nechce uvést") + .channelId("UFO") + .build()) + .post() + .andAssertStatus(200); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/DoSmeDepositProductOfferTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/DoSmeDepositProductOfferTest.java new file mode 100644 index 0000000..9b584cd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/DoSmeDepositProductOfferTest.java @@ -0,0 +1,446 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.backendtests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.DoSmeDepositProductOfferRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.DoSmeDepositProductOfferResponse; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Order; + +import java.util.Arrays; +import java.util.Set; + +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@TestScenario(name = "Deposit product offer does not return duplicated fee plans for saving account.") +public class DoSmeDepositProductOfferTest { + + @TestCase(name = "Health worker resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1164") + @Order(1) + public void smeDepositOffer_healthWorkersResidentNTB_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("2") + .legalFormId(null) + .nace("1750000") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Health worker non resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1165") + @Order(2) + public void smeDepositOffer_healthWorkersNonResidentNTB_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("2") + .legalFormId(null) + .nace("1750000") + .residence("2") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Company notary resident - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1166") + @Order(3) + public void smeDepositOffer_companyNotaryResident_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("3") + .legalFormId(null) + .nace("1691000") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Entrepreneur notary resident - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1167") + @Order(4) + public void smeDepositOffer_entrepreneurNotaryResident_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("2") + .legalFormId(null) + .nace("1691000") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Municipality resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1168") + @Order(5) + public void smeDepositOffer_municipalitiesResidentNewToBank_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("3") + .legalFormId("711") + .nace("1841000") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Municipality resident client - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1169") + @Order(6) + public void smeDepositOffer_municipalitiesResidentClient_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderClient() + .clientType("3") + .legalFormId("711") + .nace("1841000") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Municipality non resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1170") + @Order(7) + public void smeDepositOffer_municipalitiesNonResidentClient_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("3") + .legalFormId("711") + .nace("1841000") + .residence("2") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Religious organisation resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1171") + @Order(8) + public void smeDepositOffer_religiousOrganisationResidentNewToBank_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("3") + .legalFormId("721") + .nace("1949100") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Religious organisation resident client - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1172") + @Order(9) + public void smeDepositOffer_religiousOrganisationResidentClient_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderClient() + .clientType("3") + .legalFormId("721") + .nace("1949100") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Housing cooperative associations resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1173") + @Order(10) + public void smeDepositOffer_housingCooperativeAssociationsResidentNewToBank_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("3") + .legalFormId("145") + .nace("1410000") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Housing cooperative associations non resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1174") + @Order(11) + public void smeDepositOffer_housingCooperativeAssociationsNonResidentNewToBank_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("3") + .legalFormId("145") + .nace("1410000") + .residence("2") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Housing cooperative associations resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1175") + @Order(12) + public void smeDepositOffer_housingCooperativeAssociationsResidentClient_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderClient() + .clientType("3") + .legalFormId("145") + .nace("1410000") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Housing cooperative associations non resident client - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1176") + @Order(13) + public void smeDepositOffer_housingCooperativeAssociationsNonResidentClient_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderClient() + .clientType("3") + .legalFormId("145") + .nace("1410000") + .residence("2") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Non bank institution resident - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1177") + @Order(14) + public void smeDepositOffer_nonBankInstitutionsResident_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderClient() + .clientType("3") + .legalFormId(null) + .nace("1642000") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Bank institution resident - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1178") + @Order(15) + public void smeDepositOffer_bankInstitutionsResident_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderClient() + .clientType("3") + .legalFormId(null) + .nace("1641900") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Entrepreneur resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1163") + @Order(16) + public void smeDepositOffer_entrepreneurResidentNewToBank_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("2") + .legalFormId(null) + .nace("1014700") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Entrepreneur resident client - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1179") + @Order(17) + public void smeDepositOffer_entrepreneurResidentClient_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderClient() + .clientType("2") + .legalFormId(null) + .nace("1014700") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Entrepreneur non resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1180") + @Order(18) + public void smeDepositOffer_entrepreneurNonResidentNewToBank_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("2") + .legalFormId(null) + .nace("1014700") + .residence("2") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Entrepreneur non resident client - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1181") + @Order(19) + public void smeDepositOffer_entrepreneurNonResidentClient_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderClient() + .clientType("2") + .legalFormId(null) + .nace("1014700") + .residence("2") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Company resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1182") + @Order(20) + public void smeDepositOffer_companyResidentNewToBank_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("3") + .legalFormId(null) + .nace("1014700") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Company resident client - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1183") + @Order(21) + public void smeDepositOffer_companyResidentClient_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderClient() + .clientType("3") + .legalFormId(null) + .nace("1014700") + .residence("1") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Company non resident new to bank - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1184") + @Order(22) + public void smeDepositOffer_companyNonResidentNewToBank_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderNewToBank() + .clientType("3") + .legalFormId(null) + .nace("1014700") + .residence("2") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Company non resident client - check for duplicate fee plans.", environments = {TST1}) + @JiraTestCase(id = "SBD-T1185") + @Order(23) + public void smeDepositOffer_companyNonResidentClient_shouldNotHaveDuplicatedOffer(Harness harness) { + var request = requestBuilderClient() + .clientType("3") + .legalFormId(null) + .nace("1014700") + .residence("2") + .build(); + + var response = sendRequest(request, harness); + + assertFalse(hasDuplicates(response)); + } + + @TestCase(name = "Has duplicates - check for duplicate fee plans.", environments = {TST1}) + @Order(25) + public void hasDuplicates() { + var responseWithDuplicates = DoSmeDepositProductOfferResponse.builder() + .rsData(Arrays.asList(DoSmeDepositProductOfferResponse.RsData.builder() + .feePlan("1") + .build(), + DoSmeDepositProductOfferResponse.RsData.builder() + .feePlan("1") + .build())) + .build(); + + var responseWithoutDuplicates = DoSmeDepositProductOfferResponse.builder() + .rsData(Arrays.asList(DoSmeDepositProductOfferResponse.RsData.builder() + .feePlan("1") + .build(), + DoSmeDepositProductOfferResponse.RsData.builder() + .feePlan("2") + .build())) + .build(); + + assertTrue(hasDuplicates(responseWithDuplicates)); + assertFalse(hasDuplicates(responseWithoutDuplicates)); + } + + private DoSmeDepositProductOfferResponse sendRequest(DoSmeDepositProductOfferRequest request, Harness harness) { + return harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/NAS/GET_SME_DEPOSIT_PRODUCT_OFFER_007/001") + .withHeader("Content-Type", "application/json") + .withPojoPayload(request) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(DoSmeDepositProductOfferResponse.class); + } + + private Boolean hasDuplicates(DoSmeDepositProductOfferResponse response) { + Set seen = new java.util.HashSet<>(); + return response.getRsData().stream() + .map(DoSmeDepositProductOfferResponse.RsData::getFeePlan) + .anyMatch(p -> !seen.add(p)); + } + + private DoSmeDepositProductOfferRequest.DoSmeDepositProductOfferRequestBuilder requestBuilderNewToBank() { + return DoSmeDepositProductOfferRequest.builder() + .channelId("POS") + .cif(null) + .prodClass("13") + .currencyIn("0"); + } + + private DoSmeDepositProductOfferRequest.DoSmeDepositProductOfferRequestBuilder requestBuilderClient() { + return DoSmeDepositProductOfferRequest.builder() + .channelId("POS") + .cif("9070182556") + .prodClass("13") + .currencyIn("0"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/EdisponentOnboardingTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/EdisponentOnboardingTest.java new file mode 100644 index 0000000..a5b1134 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/EdisponentOnboardingTest.java @@ -0,0 +1,573 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.backendtests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.wso2.WaitForApiRequest; +import cz.moneta.test.dsl.util.wso2.WaitForApiUtils; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.AddEmContextRoleRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.ChgEmChnLimRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.CrtEmployeeRoleRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.CrtEmployeeRoleResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.CrtIbDispoAppRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.CrtIbDispoAppResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.DltEmCliContextsRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.DoStartPckgOpeningRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetAppIbDataRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetAppIbDataResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetDigiEdisponentListRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetDigiEdisponentListResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetEmCliContextsListRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetEmCliContextsListResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetProcessTasksRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetProcessTasksResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetProdOpenTasksRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetProdOpenTasksResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetSmePckgAppStateRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetSmePckgAppStateResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.LockTaskRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.MWF9C6Request; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.MWF9C6Response; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.MWFEW4Request; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.MWFIT4Request; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.MWFIT4Response; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.MWFIU6Request; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.MWFIU6Response; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.SetEmContextRightsSimpleRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.SetEmContextStatusRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.SetProdOpenTaskRequest; +import cz.moneta.test.dsl.wso2.objects.traininggov.DoDepersCustTestRequest; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.exception.HarnessException; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Order; + +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static java.util.Collections.singletonList; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenarioWithOrder(name = "Edisponent onboarding happy path test.") +public class EdisponentOnboardingTest { + + private static final String CIF = "9070230381"; + private static final List DISPO_NON_ACTIVE_STATES = List.of("CANCELED", "INACTIVE"); + private static final String BIRTH_NUMBER = "7801017708"; + private static final List DEPERSONALISATION_SYSTEMS = List.of("DGE0", "NAS0", "UDB0"); + + @TestCase(name = "Onboard edisponent", environments = {TST1}) + @JiraTestCase(id = "SBD-T1193") + @Order(1) + public void edisponentOnboarding(Harness harness) throws InterruptedException { + // prepare + cleanDisponentsOnCif(harness); + + // onboarding + Long appKey = createDisponentApplication(harness); // creating application in NAS + Long prodPackageKey = createProdPackage(harness, appKey); // creating product package in ODS + moveWpsToApproval(harness, appKey); // start risk approving and approval workflow in WPS + waitUntilApplicationApproved(harness, prodPackageKey); // waiting until the approving workflow in WPS reaches the approved state + createBankerSignRole(harness, appKey); // create banker sing role in application + startPackageOpening(harness, prodPackageKey); // start product opening workflow in WPS + String wfId = getOpeningWorkFlowId(harness, appKey); + Thread.sleep(5000L); + continueOpening(harness, prodPackageKey); // notify WPS to continue opening (WPS waiting for human task) + waitUntilContractPrinted(harness, prodPackageKey); // waiting until the opening workflow in WPS reaches the contract printed state + startDisbursing(harness, wfId); // notify WPS to start disbursing - DO_MOVE_STATE + waitUntilDisbursed(harness, prodPackageKey); // waiting until the opening workflow in WPS reaches the contract disbursed state + GetAppIbDataResponse ibData = getAppIbData(harness, appKey); + setEdisponentContextStatus(harness, ibData); // setting active statues on edisponent rights to entitlement model + setEdisponentContextRole(harness, ibData); // setting edisponent role to entitlement model + setEdisponentContextRights(harness, ibData); // setting set of rights to entitlement model + Long userId = getDispomodelUserId(harness, ibData); + setEdisponentLimits(harness, ibData, userId); // setting payment limits to entitlement model + + // check + checkEdisponentContext(harness); + harness.log("SBD-T1193: Edisponent onboarding flow finished successfully. appKey=" + appKey + ", prodPackageKey=" + prodPackageKey); + } + + @TestCase(name = "Cancel edisponent rights", environments = {TST1}) + @JiraTestCase(id = "SBD-T1194") + @Order(2) + public void cancelEdisponentRights(Harness harness) { + List contextIds = getClientContexts(harness); + assertEquals(1L, contextIds.size()); // only one edisponent should exist + + deleteEdisponents(harness, contextIds); + noEdisponentShouldExist(harness); + harness.log("SBD-T1194: Edisponent cancel flow finished successfully."); + } + + @AfterAll + public void depersonalizeEdisponent(Harness harness) { + DoDepersCustTestRequest request = DoDepersCustTestRequest.builder() + .rcNum(BIRTH_NUMBER) + .rsData(DEPERSONALISATION_SYSTEMS.stream() + .map(id -> DoDepersCustTestRequest.Rs1.builder() + .srcSysIdIn(id) + .build()) + .collect(Collectors.toList())) + .build(); + + harness.tasks().wso2().depersonalization().depersonalizeClient(request); + } + + private void checkEdisponentContext(Harness harness) { + GetDigiEdisponentListResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/get-digi-edisponent-list/v1/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(GetDigiEdisponentListRequest.builder() + .cif(CIF) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetDigiEdisponentListResponse.class); + + Integer countOfContexts = countOfActiveContexts(response); + + assertEquals(1, countOfContexts); + + GetDigiEdisponentListResponse.Person activeContext = response.getPersons() + .stream() + .filter(p -> !DISPO_NON_ACTIVE_STATES.contains(p.getDispoEmStatus())) + .findFirst() + .orElseThrow(() -> new NoSuchElementException("No active context")); + + assertEquals("ACTIVE", activeContext.getDispoEmStatus()); + assertEquals("Lumír", activeContext.getDispoFirstName()); + assertEquals("Mika", activeContext.getDispoLastName()); + } + + private Integer countOfActiveContexts(GetDigiEdisponentListResponse contexts) { + return contexts.getPersons().stream() + .filter(p -> !DISPO_NON_ACTIVE_STATES.contains(p.getDispoEmStatus())) + .toList().size(); + } + + private Long getDispomodelUserId(Harness harness, GetAppIbDataResponse ibData) { + GetEmCliContextsListResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/digitalchannels.sb/GET_EM_CLI_CONTEXTS_LIST/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(GetEmCliContextsListRequest.builder() + .cif(CIF) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetEmCliContextsListResponse.class); + + return response.getRsData().stream() + .filter(d -> d.getContextId().equals(ibData.getDigiContextId())) + .map(GetEmCliContextsListResponse.RsData::getUserId) + .findFirst() + .orElseThrow(() -> new HarnessException("UserId not found.")); + } + + private void setEdisponentLimits(Harness harness, GetAppIbDataResponse ibData, Long userId) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/digitalchannels.sb/CHG_EM_CHN_LIM/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(ChgEmChnLimRequest.builder() + .contextId(ibData.getDigiContextId()) + .entityId(ibData.getDigiEntityId()) + .cif(CIF) + .monthLimit("0") + .channel("3401001") + .dayLimit("1") + .weekLimit("0") + .dayLimitValue(1111D) + .userId(userId) + .build()) + .post() + .andAssertStatus(200); + } + + private void setEdisponentContextRights(Harness harness, GetAppIbDataResponse ibData) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/digitalchannels.sb/SET_EM_CONTEXT_RIGHTS_SIMPLE/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(SetEmContextRightsSimpleRequest.builder() + .contextId(ibData.getDigiContextId()) + .templateId(2L) + .build()) + .post() + .andAssertStatus(200); + } + + private void setEdisponentContextRole(Harness harness, GetAppIbDataResponse ibData) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/digitalchannels.sb/CBL/ADD_EM_CONTEXT_ROLE/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(AddEmContextRoleRequest.builder() + .contextId(ibData.getDigiContextId()) + .roleId(20001L) + .build()) + .post() + .andAssertStatus(200); + } + + private void setEdisponentContextStatus(Harness harness, GetAppIbDataResponse ibData) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/digitalchannels.sb/SET_EM_CONTEXT_STATUS/001") + .withHeader("Content-Type", "application/json") + .withPojoPayload(SetEmContextStatusRequest.builder() + .contextId(ibData.getDigiContextId()) + .status("ACTIVE") + .build()) + .post() + .andAssertStatus(200); + } + + private GetAppIbDataResponse getAppIbData(Harness harness, Long appKey) { + return harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/digitalchannels.ib/NAS/GET_APP_IB_DATA/001") + .withHeader("Content-Type", "application/json") + .withPojoPayload(GetAppIbDataRequest.builder() + .appKey(appKey) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetAppIbDataResponse.class); + } + + private void noEdisponentShouldExist(Harness harness) { + GetDigiEdisponentListResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/get-digi-edisponent-list/v1/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(GetDigiEdisponentListRequest.builder() + .cif(CIF) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetDigiEdisponentListResponse.class); + + Long countOfUncancelledAccounts = response.getPersons().stream() + .map(GetDigiEdisponentListResponse.Person::getDispoEmStatus) + .filter(Objects::nonNull) + .filter(status -> !DISPO_NON_ACTIVE_STATES.contains((status))) + .count(); + + assertEquals(0, countOfUncancelledAccounts); + } + + private List getClientContexts(Harness harness) { + GetDigiEdisponentListResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/get-digi-edisponent-list/v1/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(GetDigiEdisponentListRequest.builder() + .cif(CIF) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetDigiEdisponentListResponse.class); + + return response.getPersons().stream() + .filter(c -> !DISPO_NON_ACTIVE_STATES.contains(c.getDispoEmStatus())) + .map(GetDigiEdisponentListResponse.Person::getDispoEmContextId) + .filter(Objects::nonNull) + .toList(); + } + + private void cleanDisponentsOnCif(Harness harness) { + List contextIds = getClientContexts(harness); + if (!contextIds.isEmpty()) { + deleteEdisponents(harness, contextIds); + } + } + + private void deleteEdisponents(Harness harness, List contextIds) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/digitalchannels.sb/DLT_EM_CLI_CONTEXTS/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(DltEmCliContextsRequest.builder() + .cif(CIF) + .fee("0") + .rsData(contextIds.stream() + .map(c -> DltEmCliContextsRequest.RsData.builder() + .contextId(c) + .build()) + .toList()) + .build()) + .post() + .andAssertStatus(200); + } + + private void createBankerSignRole(Harness harness, Long appKey) { + CrtEmployeeRoleResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/risk.cluster/NAS/CRT_EMPLOYEE_ROLE_004/001") + .withHeader("Content-Type", "application/json") + .withPojoPayload(CrtEmployeeRoleRequest.builder() + .appKey(appKey) + .ssoId("543829528") + .empProcessRoleId("17") + .empRoleId("3") + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(CrtEmployeeRoleResponse.class); + + assertNotNull(response.getEmpRoleKey()); + harness.log("SBD-T1193: CRT_EMPLOYEE_ROLE_004 returned employee sign role key=" + response.getEmpRoleKey()); + } + + private void waitUntilDisbursed(Harness harness, Long prodPackageKey) throws InterruptedException { + Long disbursedStateId = 6L; + Long failureStateId = 4L; + + Predicate isPrintedPredicate = resp -> resp != null && disbursedStateId.equals(resp.getWorkFlowState()); + Predicate isErrorPredicate = resp -> resp != null && failureStateId.equals(resp.getWorkFlowState()); + + WaitForApiRequest req = WaitForApiRequest.builder() + .responseClass(MWF9C6Response.class) + .path("/t/mwf.legacy/HUB/MWF9C6/001/") + .requestPojo(MWF9C6Request.builder() + .prodPackageKey(prodPackageKey) + .build()) + .successPredicate(isPrintedPredicate) + .failurePredicate(isErrorPredicate) + .timeoutSeconds(300) + .intervalSeconds(30) + .testCaseId("SBD-T1193") + .build(); + + WaitForApiUtils.waitForApi(harness, req); + } + + // This method replicates /t/integration.gov/IPE/DO_MOVE_STATE/001/ but with faster response time. Originally UFO calls DO_MOVE_STATE. + // Harness can't call this API due to hardcoded 10 second timeout limit. + // Original request should be: DoMoveStateRequest.builder() + // .wfid(wfId) + // .bankersProfile("GEBTSBM") + // .contractSigningDate("2025-12-02T12:00:00.000+01:00") + // .build() + private void startDisbursing(Harness harness, String wfId) throws InterruptedException { + Thread.sleep(15000L); + String tkiId = getTkiId(harness, wfId); + lockTask(harness, tkiId); + setProdOpenTask(harness, tkiId); + Thread.sleep(15000L); // simulates MWFHH8 15s wait + } + + private void setProdOpenTask(Harness harness, String tkiId) { + harness.tasks().wso2().restRequest() + .prepareRequestFromHub("/t/integration.gov/SET_PRODOPEN_TASK/001") + .withHeader("Content-Type", "application/json") + .withPojoPayload(SetProdOpenTaskRequest.builder() + .tkiid(tkiId) + .contractsigningdate("2025-12-02T12:00:00.000+01:00") + .bankersprofile("GEBTSBM") + .build()) + .post() + .andAssertStatus(200); + } + + private void lockTask(Harness harness, String tkiId) { + harness.tasks().wso2().restRequest() + .prepareRequestFromHub("/t/backoffice.cluster/LOCK_TASK/001") + .withHeader("Content-Type", "application/json") + .withPojoPayload(LockTaskRequest.builder() + .tkiid(tkiId) + .build()) + .post() + .andAssertStatus(200); + } + + private String getTkiId(Harness harness, String wfId) { + GetProdOpenTasksResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromHub("/t/integration.gov/GET_PRODOPEN_TASKS/001") + .withHeader("Content-Type", "application/json") + .withPojoPayload(GetProdOpenTasksRequest.builder() + .dataType1("STRING") + .itemFirst(0L) + .itemLast(5L) + .operator1("=") + .value1(wfId) + .globalOperator("AND") + .operand1("WFID") + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetProdOpenTasksResponse.class); + + String tkiId = response.getRsData().stream() + .findFirst() + .map(GetProdOpenTasksResponse.RsData::getTkiid) + .orElseThrow(() -> new HarnessException("tkiId not found in GET_PRODOPEN_TASKS response.")); + + assertNotNull(tkiId); + harness.log("SBD-T1193: GET_PRODOPEN_TASKS returned tkiId=" + tkiId); + return tkiId; + } + + private String getOpeningWorkFlowId(Harness harness, Long appKey) { + GetProcessTasksResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/integration.gov/GET_PROCESS_TASKS/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(GetProcessTasksRequest.builder() + .applicationKey(appKey) + .cycleContext(1L) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetProcessTasksResponse.class); + + String wfId = response.getWfid(); + + assertNotNull(wfId); + harness.log("SBD-T1193: GET_PROCESS_TASKS returned wfId=" + wfId); + return wfId; + } + + private void waitUntilContractPrinted(Harness harness, Long prodPackageKey) throws InterruptedException { + Long printedStateId = 3L; + Long failureStateId = 4L; + + Predicate isPrintedPredicate = resp -> resp != null && printedStateId.equals(resp.getWorkFlowState()); + Predicate isFailurePredicate = resp -> resp != null && failureStateId.equals(resp.getWorkFlowState()); + + WaitForApiRequest req = WaitForApiRequest.builder() + .responseClass(MWF9C6Response.class) + .path("/t/mwf.legacy/HUB/MWF9C6/001/") + .requestPojo(MWF9C6Request.builder() + .prodPackageKey(prodPackageKey) + .build()) + .successPredicate(isPrintedPredicate) + .failurePredicate(isFailurePredicate) + .timeoutSeconds(300) + .intervalSeconds(30) + .testCaseId("SBD-T1193") + .build(); + + WaitForApiUtils.waitForApi(harness, req); + } + + private void continueOpening(Harness harness, Long prodPackageKey) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/mwf.legacy/HUB/MWFIU6/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(MWFIU6Request.builder() + .branchId("86007040") + .cif(CIF) + .prodPackageKey(prodPackageKey) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(MWFIU6Response.class); + } + + private void startPackageOpening(Harness harness, Long prodPackageKey) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/integration.gov/IPE/DO_START_PCKG_OPENING/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(DoStartPckgOpeningRequest.builder() + .branchId("86007040") + .cif(CIF) + .completationChannel("POS") + .prodPackageKey(prodPackageKey) + .build() + ) + .post() + .andAssertStatus(200); + } + + private Long createDisponentApplication(Harness harness) { + CrtIbDispoAppResponse crtResponse = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/NAS/CRT_IB_DISPO_APP_002/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(CrtIbDispoAppRequest.builder() + .posId("86001340") + .channelId("POS") + .bankerSso("212626884") + .applicantCif(CIF) + .dispoBirthPlace("Praha") + .dispoRcNumber(BIRTH_NUMBER) + .dispoBirthCountryId("52") + .dispoBirthDate("1978-01-01") + .dispoResAddrStreetDescNo("2") + .dispoResAddrStreet("Na Kleovce") + .dispoResAddrCity("Praha 2") + .dispoResAddrZipcode("12000") + .dispoResAddrCountry("52") + .dispoResAddrPostOffice("Praha 2") + .dispoName("Lumír") + .dispoSurname("Mika") + .dispoIdCardNr("210354736") + .dispoGenderId("1") + .dispoIdCardCntryId("52") + .dispoIdCardExpDate("2028-11-20") + .dispoIdCardType("98") + .dispoPhonePin("420724612248") + .dispoEmail("ilods@moneta.cz") + .dispoCitizenship("52") + .dispoIdentityVerificationType("6") + .rs1(singletonList(CrtIbDispoAppRequest.Rs1.builder() + .dispoRole("6") + .build())) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(CrtIbDispoAppResponse.class); + + Long appKey = crtResponse.getAppKey(); + harness.log("SBD-T1193: CRT_IB_DISPO_APP returned appKey=" + appKey); + return appKey; + } + + private Long createProdPackage(Harness harness, Long appKey) { + MWFIT4Response mwfit4Response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/mwf.legacy/HUB/MWFIT4/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(MWFIT4Request.builder() + .data(singletonList(MWFIT4Request.DataItem.builder().rsAppkey(appKey).build())) + .prodPackageType("dispo_ib_creds") + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(MWFIT4Response.class); + + Long prodPackageKey = mwfit4Response.getProdPackageKey(); + harness.log("SBD-T1193: MWFIT4 returned prodPackageKey=" + prodPackageKey); + return prodPackageKey; + } + + private void moveWpsToApproval(Harness harness, Long appKey) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/mwf.legacy/HUB/MWFEW4/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(MWFEW4Request.builder() + .applKey(appKey) + .build()) + .post() + .andAssertStatus(200); + } + + private void waitUntilApplicationApproved(Harness harness, Long prodPackageKey) throws InterruptedException { + String applicationIsApprovedState = "8"; + String applicationIsErrorState = "15"; + + Predicate isApprovedPredicate = resp -> applicationIsApprovedState.equals(resp.getAggregatedState()); + Predicate isErrorPredicate = resp -> applicationIsErrorState.equals(resp.getAggregatedState()); + + WaitForApiRequest req = WaitForApiRequest.builder() + .responseClass(GetSmePckgAppStateResponse.class) + .path("/t/small.business/NAS/GET_SME_PCKG_APP_STATE/001") + .requestPojo(GetSmePckgAppStateRequest.builder() + .prodPckgKey(prodPackageKey) + .build()) + .successPredicate(isApprovedPredicate) + .failurePredicate(isErrorPredicate) + .testCaseId("SBD-T1193") + .timeoutSeconds(300) + .intervalSeconds(30) + .build(); + + WaitForApiUtils.waitForApi(harness, req); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/JuridicaIdentificationTest.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/JuridicaIdentificationTest.java new file mode 100644 index 0000000..a18d73a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/backendtests/JuridicaIdentificationTest.java @@ -0,0 +1,376 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.backendtests; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.CrtAccountIcbRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.CrtAccountIcbResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.DltJuridicaAccountRolesRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.DltJuridicaFundOwnersComplete; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.DoCancelCurrentAccountRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.DoPrepareJuridicaIdentificationRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.DoSmeDepositProductOfferResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.DoStartJuridicaIdentificationRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetCurrentAccountRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetCurrentAccountResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetDepositAccForLegalRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetDepositAccForLegalResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetJuridicaIdentificationStateRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetJuridicaIdentificationStateResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetJuridicaRelatedPersonsDataRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.GetJuridicaRelatedPersonsDataResponse; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.MWFIS3Request; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.SetJuridicaRelatedPersionDetailRequest; +import cz.moneta.test.dsl.wso2.objects.smallbusiness.SetJuridicaTotalAmountsRequest; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.Order; + +import java.math.BigDecimal; + +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@TestScenarioWithOrder(name = "Juridica identification happy path test.") +public class JuridicaIdentificationTest { + + private static final String CIF = "9070230246"; + + @TestCase(name = "Create juridica account", environments = {TST1}) + @JiraTestCase(id = "SBD-T1189") + @Order(1) + public void createJuridicaAccount(Harness harness) { + String accountNumber = createAccount(harness); + harness.storeGlobal("SBD_ACC_JURIDICA", accountNumber); + blockAccount(harness, accountNumber); + checkAccount(harness, accountNumber); + + harness.log("SBD-T1189: Created juridica account: " + accountNumber); + } + + @TestCase(name = "Juridica identification process", environments = {TST1}) + @JiraTestCase(id = "SBD-T1188") + @Order(2) + public void juridicaIdentificationAndUnidentification(Harness harness) throws InterruptedException { + String accountNumber = harness.getGlobal("SBD_ACC_JURIDICA"); + harness.log("SBD-T1188: Running test on account: " + accountNumber); + + juridicaIdentificationHappyPath(harness, accountNumber); + } + + @TestCase(name = "Juridica cancel account", environments = {TST1}) + @JiraTestCase(id = "SBD-T1191") + @Order(3) + public void cancelAccount(Harness harness) { + String accountNumber = harness.getGlobal("SBD_ACC_JURIDICA"); + harness.log("SBD-T1191: Running test on account: " + accountNumber); + + cancelAccount(harness, accountNumber); + checkAccountIsCanceled(harness, accountNumber); + } + + private void juridicaIdentificationHappyPath(Harness harness, String accountNumber) throws InterruptedException { + /* + Udebs tables used in juridica process: + UDEBSGE.ACCOUNTFUNDOWNER_SUGG_IDENT = AFOSI + UDEBSGE.ACCOUNTFUNDOWNER = AFO + UDEBSGE.ACCOUNTFUNDOWNER_SUGGESTION = AFOS + */ + + // identification + doPrepareJuridicaIdentification(harness, accountNumber); // If AFO has records → create AFOSI records; else → create an empty AFOSI record. + setJuridicaTotalAmountsDepositAmount(harness, accountNumber); // Save deposit amount do AFOSI + setJuridicaRelatedPersonDetailShareOwner(harness, accountNumber); // Saves person shareholder as AFOS record + setJuridicaTotalAmountsPaidAmount(harness, accountNumber); // Save paid amount do AFOSI + setJuridicaRelatedPersonDetailShareCompetent(harness, accountNumber); // Saves person competent (authorized person) as AFOS record + doStartWpsJuridicaIdentification(harness, accountNumber); // Starts identification workflow in WPS + + // check identification + checkIfIdentificationFinishedSuccessfully(harness, accountNumber); + + // unidentification + deleteJuridicaAccountRoles(harness, accountNumber); // Remove AFOS record or set action to DEL + deleteJuridicaFundOwners(harness, accountNumber); // Remove AFOSI record and AFOS records + + // check unidentification + checkIfDeletedInUdebs(harness, accountNumber); + } + + private void checkAccountIsCanceled(Harness harness, String accountNumber) { + GetDepositAccForLegalResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/payments.cluster/IPE/GET_DEPOSIT_ACC_FOR_LEGAL/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(GetDepositAccForLegalRequest.builder() + .cif(CIF) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetDepositAccForLegalResponse.class); + + // account is not held under CIF + assertFalse(response.getData().stream() + .anyMatch(acc -> accountNumber.equals(acc.getCisloUctu()))); + } + + private void cancelAccount(Harness harness, String accountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/payments.cluster/IPE/DO_CANCEL_CURRENT_ACCOUNT/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(DoCancelCurrentAccountRequest.builder() + .cisloUctu(accountNumber) + .cisloUctuPrijemceKodBanky("0800") + .branchId("86007040") + .cisloCostCentra(3704L) + .produktKod("4401001") + .cisloUctuPrijemceVS("236634202") + .sdeleniID(10L) + .sso("543829528") + .poplatekZaZruseni((double) 0) + .sdeleniText("Doplacení úvěru") + .channelId("UFO") + .build()) + .post() + .andAssertStatus(200); + } + + private void checkAccount(Harness harness, String accountNumber) { + GetCurrentAccountResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/payments.cluster/GET_CURRENT_ACCOUNT/001") + .withHeader("Content-Type", "application/json") + .withPojoPayload(GetCurrentAccountRequest.builder() + .cisloUctu(accountNumber) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetCurrentAccountResponse.class); + + assertEquals("3", response.getStavUctu()); // 3 - Uzavřený pro zápis podle HCisStavUctu + } + + private void blockAccount(Harness harness, String accountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/mwf.legacy/HUB/MWFIS3/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(MWFIS3Request.builder() + .currentAccount(accountNumber) + .build()) + .post() + .andAssertStatus(200); + } + + private String createAccount(Harness harness) { + CrtAccountIcbResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/deposit.cluster/IPE/CRT_ACCOUNT_ICB/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(CrtAccountIcbRequest.builder() + .cif(CIF) + .produktKod("4401004") + .poplatkovyPlan("148") + .obchodniJmeno("ADVOKÁTNÍ KANCELÁŘ Kříženecký & partneři") + .aaAdresat("Advokátní úschova") + .pouzitaAA("1") + .primarniUrednik("GEBTSBM") + .postovniPoukazka("0") + .ulozPSCBezKontroly("Y") + .nuloveUroceni("0") + .distribuceVypisu("4") + .periodaVypisu("1") + .obchodniMistoKod("86007040") + .vypisNaKonciMesice(true) + .datumOtevreni(DateUtils.getTodayRawDateForWso2()) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(CrtAccountIcbResponse.class); + + return response.getCisloUctu(); + } + + private void doPrepareJuridicaIdentification(Harness harness, String accountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/CBL/DO_PREPARE_JURIDICA_IDENTIFICATION/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(DoPrepareJuridicaIdentificationRequest.builder() + .accountNumber(accountNumber) + .channelId("21") + .sso("212622644") + .clientIdentificationNumber("26033755") + .build()) + .post() + .andAssertStatus(200); + } + + private void setJuridicaRelatedPersonDetailShareOwner(Harness harness, String accountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/CBL/SET_JURIDICA_RELATED_PERSON_DETAIL/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(SetJuridicaRelatedPersionDetailRequest.builder() + .country("52") + .companyName(null) + .bankIban(null) + .addressHouseNumber("827") + .clientType("1") + .addressLandRegistryNumber("11") + .surname("Borec") + .action("ADD") + .bankAccountNumber(null) + .birthNumber("7807147590") + .instPtKey(null) + .email("michal.seibert@moneta.cz") + .addressCity("Praha") + .sharePercentage(null) + .addressCountry("52") + .addressZipCode("14800") + .companyIdentificationNumber(null) + .bankCode(null) + .suggestionId(null) + .accountNumber(accountNumber) + .birthDate("1978-07-14") + .shareAmount(BigDecimal.valueOf(222)) + .addressStreet("Klatovská") + .phone("725005644") + .partyRole("SHARE_OWNER") + .name("Vasek") + .bankIdCode(null) + .build()) + .post() + .andAssertStatus(200); + } + + private void setJuridicaTotalAmountsDepositAmount(Harness harness, String accountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/CBL/SET_JURIDICA_TOTAL_AMOUNTS/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(SetJuridicaTotalAmountsRequest.builder() + .depositAmount(BigDecimal.valueOf(222)) + .accountNumber(accountNumber) + .paidAmount(null) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(DoSmeDepositProductOfferResponse.class); + } + + private void setJuridicaTotalAmountsPaidAmount(Harness harness, String accountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/CBL/SET_JURIDICA_TOTAL_AMOUNTS/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(SetJuridicaTotalAmountsRequest.builder() + .depositAmount(BigDecimal.valueOf(222)) + .accountNumber(accountNumber) + .paidAmount(BigDecimal.valueOf(111)) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(DoSmeDepositProductOfferResponse.class); + } + + private void setJuridicaRelatedPersonDetailShareCompetent(Harness harness, String accountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/CBL/SET_JURIDICA_RELATED_PERSON_DETAIL/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(SetJuridicaRelatedPersionDetailRequest.builder() + .country("52") + .companyName(null) + .bankIban(null) + .addressHouseNumber("187") + .clientType("1") + .addressLandRegistryNumber("7") + .surname("Filtros") + .action("ADD") + .bankAccountNumber("222-1111") + .birthNumber("7807147634") + .instPtKey(null) + .email("michal.seibert@moneta.cz") + .addressCity("Cheb") + .sharePercentage(null) + .addressCountry("52") + .addressZipCode("35002") + .companyIdentificationNumber(null) + .bankCode("0710") + .suggestionId(null) + .accountNumber(accountNumber) + .birthDate("1978-07-14") + .shareAmount(BigDecimal.valueOf(111)) + .addressStreet("Šumavská") + .phone("725005644") + .partyRole("COMPETENT") + .name("Uwe") + .bankIdCode(null) + .build()) + .post() + .andAssertStatus(200); + } + + private void doStartWpsJuridicaIdentification(Harness harness, String accountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/CBL/DO_START_WPS_JURIDICA_IDENTIFICATION/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(DoStartJuridicaIdentificationRequest.builder() + .clientIdentificationFile(CIF) + .productClass(44) + .emptyClientEmailConfirmedFlag(0) + .accountNumber(accountNumber) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(DoSmeDepositProductOfferResponse.class); + } + + private void checkIfIdentificationFinishedSuccessfully(Harness harness, String accountNumber) throws InterruptedException { + Thread.sleep(30000); // waiting for WPS workflow finish + GetJuridicaIdentificationStateResponse response = getJuridicaIdentificationState(harness, accountNumber); + assertEquals("Identified", response.getIdentificationState()); + } + + private GetJuridicaIdentificationStateResponse getJuridicaIdentificationState(Harness harness, String accountNumber) { + return harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/CBL/GET_JURIDICA_IDENTIFICATION_STATE/001") + .withHeader("Content-Type", "application/json") + .withPojoPayload(GetJuridicaIdentificationStateRequest.builder() + .accountNumber(accountNumber) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetJuridicaIdentificationStateResponse.class); + } + + private void deleteJuridicaAccountRoles(Harness harness, String accountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/CBL/DLT_JURIDICA_ACCOUNT_ROLES/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(DltJuridicaAccountRolesRequest.builder() + .accountNumber(accountNumber) + .build()) + .post() + .andAssertStatus(200); + } + + private void deleteJuridicaFundOwners(Harness harness, String accountNumber) { + harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/CBL/DLT_JURIDICA_FUND_OWNERS_COMPLETE/001/") + .withHeader("Content-Type", "application/json") + .withPojoPayload(DltJuridicaFundOwnersComplete.builder() + .accountNumber(accountNumber) + .build()) + .post() + .andAssertStatus(200); + } + + private void checkIfDeletedInUdebs(Harness harness, String accountNumber) { + GetJuridicaRelatedPersonsDataResponse response = harness.tasks().wso2().restRequest() + .prepareRequestFromUfo("/t/small.business/CBL/GET_JURIDICA_RELATED_PERSONS_DATA/001") + .withHeader("Content-Type", "application/json") + .withPojoPayload(GetJuridicaRelatedPersonsDataRequest.builder() + .accountNumber(accountNumber) + .confirmFlag(1L) + .build()) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetJuridicaRelatedPersonsDataResponse.class); + + assertTrue(response.getData().isEmpty()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/banka/CreateNewFopBuExpresFlexiDebitSavingAccount.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/banka/CreateNewFopBuExpresFlexiDebitSavingAccount.java new file mode 100644 index 0000000..75d9f5b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/banka/CreateNewFopBuExpresFlexiDebitSavingAccount.java @@ -0,0 +1,200 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.jenkinstests.banka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewSmeAutomatFopTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewSmeAutomatSubTasks; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.*; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.APPLICATION_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage.DOCUMENT_URLS_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.SMA002_S001_SMEAutomatsApplicationOverview.ACCOUNT_NUMBER_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Create New FOP Client with IB, Income module, Saving Account, Debit Card and EB/FB") +public class CreateNewFopBuExpresFlexiDebitSavingAccount { + + private NonClient nonClient; + private BankaTasks bankaTasks; + private NewSmeAutomatFopTasks newSmeAutomatFopTasks; + private NewSmeAutomatSubTasks newSmeAutomatSubTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + newSmeAutomatFopTasks = bankaTasks.newSmeAutomatFopTasks(); + newSmeAutomatSubTasks = bankaTasks.newSmeAutomatSubTasks(); + } + + @TestCase(name = "Create New FOP Client", environments = {TST1, PPE}) + @Order(1) + @JiraTestCase(id = "SBD-T480") + public void createNewFopCif(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewIco(nonClient.ico())) + .then(bankaTasks.newFopClient().createFopCif(nonClient)); + + harness.storeGlobal("FOP_CIF_PASSED", "PASS"); + harness.storeGlobal(CLIENT_CIF_STORE_KEY, harness.get(CLIENT_CIF_STORE_KEY).toString()); + } + + @EnableIfSet(globalKey = "FOP_CIF_PASSED") + @TestCase(name = "Create Current Account with Internet Banking", environments = {TST1, PPE}) + @Order(2) + @JiraTestCase(id = "SBD-T402") + public void createCurrentAccountForFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.newCurrentAccountTasks().createCurrentAccountFop(harness, nonClient)) + .verifyThatClientHasSomeActiveProducts(); + + harness.storeGlobal("CURR_ACC_PASSED", "PASS"); + } + + @EnableIfSet(globalKey = "CURR_ACC_PASSED") + @TestCase(name = "Fill Income Module", environments = {TST1, PPE}) + @Order(3) + @JiraTestCase(id = "SBD-T497") + public void fillIncomeModuleFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.newIncomeModuleTasks().fillIncomeModuleFop(lastYear, yearBeforeLast)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()); + + harness.storeGlobal("FOP_INC_MOD_PASSED", "PASS"); + } + + @EnableIfSet(globalKey = "FOP_INC_MOD_PASSED") + @TestCase(name = "Create SME Automats - Expres Business/Flexi Business", environments = {TST1, PPE}) + @Order(4) + @JiraTestCase(id = "SBD-T433") + public void createSmeAutomatsExpresAndFlexiBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanExpresAmount = "250000"; + String loanFlexiAmount = "250000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.newSmeAutomatFopTasks().withExpresBusinessAndFlexiBusiness(harness, dummyEmail, loanExpresAmount, loanFlexiAmount, lastYear, yearBeforeLast)); + harness.storeGlobal("FOP_SME_AUTOMATS_PASSED", "PASS"); + } + + @EnableIfSet(globalKey = "CURR_ACC_PASSED") + @TestCase(name = "Create Debit Card", environments = {TST1, PPE}) + @Order(5) + @JiraTestCase(id = "SBD-T487") + public void createDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.newDebitCard().createDebitCard(CardTypeAndDesign.BUSINESS.getValue(), DebitCardFeePlan.FREE)); + } + + @EnableIfSet(globalKey = "CURR_ACC_PASSED") + @TestCase(name = "Saving Account", environments = {TST1, PPE}) + @Order(6) + @JiraTestCase(id = "SBD-T456") + public void createSavingAccountFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.newProduct().createNewSavingsAccount("Spořící účet")); + } + + @EnableIfSet(globalKey = "FOP_SME_AUTOMATS_PASSED") + @TestCase(name = "Draw Down Fee Express And Flexi Business", environments = {TST1, PPE}) + @Order(7) + @JiraTestCase(id = "SBD-T939") + public void drawDownFeeExpressBusinessAndFlexiBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, + @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + + HLO001_S001_ClientSearchPage second_instance = harness.withUfoSecondInstance() + .openLoginPage() + .then(bankaTasks.login().withCredentialsSecondBanker(secondBanker)) + .storeBankerName(); + + String bankerName = BankaUtils.formatBankerName(harness.get("BANKER_NAME")); + + OBR003_S001_ClientContractSignPage first_instance = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .storeClientIdNumber() + .selectFromListOfRequests() + .then(newSmeAutomatFopTasks.drawDownFeeExpresAndFlexiBusiness(harness, bankerName)) + .then(newSmeAutomatFopTasks.printAndSignExpresBusiness(harness, bankerName)); + + second_instance + .then(bankaTasks.cardsServicing().secondBankerApplicationSign(harness.get(APPLICATION_ID_KEY), harness.get(CLIENT_ID_KEY))); + + first_instance + .then(newSmeAutomatFopTasks.finishDrawingDown(harness, "Úvěr načerpán")) + .clickRequest(harness.get(APPLICATION_ID_KEY)) + .clickOpenRequestDetail() + .onSMEAutomatsApplicationsOverview() + .then(newSmeAutomatFopTasks.printAndSignFlexiBusiness(harness, bankerName)); + + second_instance + .then(bankaTasks.cardsServicing().secondBankerApplicationSign(harness.get(APPLICATION_ID_KEY), harness.get("CLIENT_ID"))); + + first_instance + .then(newSmeAutomatFopTasks.finishDrawingDown(harness, "Rámec otevřen")) + .clickBackToMainPage() + .then(newSmeAutomatSubTasks.storeAccountNumber(harness.get(APPLICATION_ID_KEY), "Expres Business")) + .then(newSmeAutomatSubTasks.checkEstablishedExpresBusinessAccountDetail(harness)) + .then(newSmeAutomatSubTasks.storeAccountNumber(harness.get(APPLICATION_ID_KEY), "Flexi Business")) + .then(newSmeAutomatSubTasks.checkEstablishedKontokorentDetail(harness.get(ACCOUNT_NUMBER_KEY))); + + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + "\nRČ klienta: " + nonClient.birthNumber() + + "\nIČO klienta: " + nonClient.ico() + + "\nJméno klienta: " + nonClient.fullName() + + "\nCIF klienta: " + harness.get(CLIENT_CIF_STORE_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nURL dokumentov: \n" + BankaUtils.formatDocumentUrls(harness.get(DOCUMENT_URLS_STORE_KEY, true))); + } + + @AfterAll + public void finalTearDown(Harness harness) { + TearDown.depersonalizeFopClient(harness, nonClient.ico(), harness.get(CLIENT_CIF_STORE_KEY, true)); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/banka/CreateNewPoOneclickExpresSavingAccount.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/banka/CreateNewPoOneclickExpresSavingAccount.java new file mode 100644 index 0000000..abf5005 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/banka/CreateNewPoOneclickExpresSavingAccount.java @@ -0,0 +1,173 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.jenkinstests.banka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.APPLICATION_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.PSP004_S001_PrintPage.DOCUMENT_URLS_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.po.ZAS003_S001_StatutoryAuthorityEvidencePage.BIRTH_NUMBER_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Create PO CIF, Income module, statutory authority, OneClick, Expres Business, Saving Account") +public class CreateNewPoOneclickExpresSavingAccount { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create New PO Client", environments = {TST1, PPE}) + @Order(1) + @JiraTestCase(id = "SBD-T481") + public void createNewCifForPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewIco(nonPoClient.ico())) + .then(bankaTasks.newPoClient().createPoCif(nonPoClient)); + + harness.storeGlobal("PO_CIF_PASSED", "PASS"); + } + + @EnableIfSet(globalKey = "PO_CIF_PASSED") + @TestCase(name = "Create FON Statutory Authority", environments = {TST1, PPE}) + @Order(2) + @JiraTestCase(id = "SBD-T486") + public void createFonStatutoryAuthority(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewRc(nonPoClient.birthNumber())) + .then(bankaTasks.newStatutoryAuthority().createStatutoryAuthority(nonPoClient)); + + harness.storeGlobal("STAT_AUTH_PASSED", "PASS"); + } + + @EnableIfSet(globalKey = "STAT_AUTH_PASSED") + @TestCase(name = "OneClick PO", environments = {TST1, PPE}) + @Order(3) + @JiraTestCase(id = "SBD-T483") + public void oneClickPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.oneClick().createOneClickPo(harness)); + + harness.storeGlobal("ONECLICK_PASSED", "PASS"); + } + + @EnableIfSet(globalKey = "ONECLICK_PASSED") + @TestCase(name = "Fill Income Module", environments = {TST1, PPE}) + @Order(4) + @JiraTestCase(id = "SBD-T498") + public void incomeModulePo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.newIncomeModuleTasks().fillIncomeModulePo(lastYear, yearBeforeLast)); + + harness.storeGlobal("PO_INC_MOD_PASSED", "PASS"); + } + + @EnableIfSet(globalKey = "PO_INC_MOD_PASSED") + @TestCase(name = "Create Expres Business PO", environments = {TST1, PPE}) + @Order(5) + @JiraTestCase(id = "SBD-T455") + public void createExpresBusinessForPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + String loanExpresAmount = "500000"; + String financingReason = "nákup strojů, výrobních zařízení"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.newSmeAutomatPoTasks().withExpresBusiness(harness, loanExpresAmount, lastYear, yearBeforeLast, financingReason)); + harness.storeGlobal("CREATE_EB_PASSED", "PASS"); + } + + @EnableIfSet(globalKey = "ONECLICK_PASSED") + @TestCase(name = "Saving Account PO", environments = {TST1, PPE}) + @Order(6) + @JiraTestCase(id = "SBD-T457") + public void savingAccountPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.newProduct().createSavingAccountWithInternetBanking()); + } + + @EnableIfSet(globalKey = "CREATE_EB_PASSED") + @TestCase(name = "Draw Down Fee Expres Business", environments = {TST1, PPE}) + @Order(7) + @JiraTestCase(id = "SBD-T1021") + public void drawDownFeeExpressBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, + @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + + HLO001_S001_ClientSearchPage second_instance = harness.withUfoSecondInstance() + .openLoginPage() + .then(bankaTasks.login().withCredentialsSecondBanker(secondBanker)) + .storeBankerName() + .closeSearchedHistoryIfVisible() + .fillSearchTerm(nonPoClient.ico()) + .clickIcoRadioAndContinueToStatutoryAuthorityEvidencePage() + .storeBirthNumber() + .clickEnd() + .then(bankaTasks.search().findByRC(harness.get(BIRTH_NUMBER_KEY))) + .storeClientIdNumber() + .clickSearch(); + + String bankerName = BankaUtils.formatBankerName(harness.get("BANKER_NAME")); + + OBR003_S001_ClientContractSignPage first_instance = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findLegalRepresentativeByIco(nonPoClient.ico())) + .selectFromListOfRequests() + .then(bankaTasks.newSmeAutomatPoTasks().drawDownFeeExpresBusiness(harness, bankerName)); + + second_instance + .then(bankaTasks.cardsServicing().secondBankerApplicationSign(harness.get(APPLICATION_ID_KEY), harness.get(CLIENT_ID_KEY))); + + first_instance + .then(bankaTasks.newSmeAutomatPoTasks().finishDrawingDownPo(harness, "Úvěr načerpán")) + .then(bankaTasks.newSmeAutomatSubTasks().storeAccountNumber(harness.get(APPLICATION_ID_KEY), "Expres Business")) + .then(bankaTasks.newSmeAutomatSubTasks().checkEstablishedExpresBusinessAccountDetail(harness)); + } + + @AfterEach + protected void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + "\nIČO klienta: " + nonPoClient.ico() + + "\nRČ klienta: " + nonPoClient.birthNumber() + + "\nCIF klienta: " + harness.get(CLIENT_CIF_STORE_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid") + + "\nURL dokumentov: \n" + BankaUtils.formatDocumentUrls(harness.get(DOCUMENT_URLS_STORE_KEY, true))); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/existing/CCBannerOnExist.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/existing/CCBannerOnExist.java new file mode 100644 index 0000000..80f7f01 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/existing/CCBannerOnExist.java @@ -0,0 +1,28 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.jenkinstests.existing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "Credit card banner must be visible for FOP clients with valid IL.") +@Disabled("Obsolete test - old IB") +public class CCBannerOnExist { + + private static final String USER_NAME = "304002708"; + private static final String PASSWORD = "jSZKQsaJ"; + private static final String MOBILE_KEY = "12341234"; + + @TestCase(name = "Verify FOP client see credit card banner on homepage") + @JiraTestCase(id = "SBD-T50") + public void tc_fop_client_see_loan_banner(Harness harness) { + harness.withIB() + .openLoginPage() + //FIXME add credentials + .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey(USER_NAME, PASSWORD, MOBILE_KEY)) + .onWelcomePage() + .checkUserHasACommercialCreditCardBanner(); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/existing/FlexiBannerOnExist.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/existing/FlexiBannerOnExist.java new file mode 100644 index 0000000..2fa96bf --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/existing/FlexiBannerOnExist.java @@ -0,0 +1,27 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.jenkinstests.existing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "FlexiBusiness banner must be visible for FOP clients with valid IL.") +@Disabled("Obsolete test - old IB") +public class FlexiBannerOnExist { + + private static final String USER_NAME = "304024748"; + private static final String PASSWORD = "5wfgqhUP"; + private static final String MOBILE_KEY = "12341234"; + + @TestCase(name = "Verify FOP client see flexi banner on homepage") + @JiraTestCase(id = "SBD-T49") + public void tc_fop_client_see_loan_banner(Harness harness) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey(USER_NAME, PASSWORD, MOBILE_KEY)) + .onWelcomePage() + .checkUserHasALoanBanner(); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/existing/LoanBannerOnExist.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/existing/LoanBannerOnExist.java new file mode 100644 index 0000000..e323bb9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/existing/LoanBannerOnExist.java @@ -0,0 +1,28 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.jenkinstests.existing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +//FIXME add credentails +@TestScenario(name = "ExpresBusiness banner must be visible for FOP clients with valid IL.") +@Disabled("Obsolete test - old IB") +public class LoanBannerOnExist { + + private static final String USER_NAME = "303996700"; + private static final String PASSWORD = "FmMCq5a8"; + private static final String MOBILE_KEY = "12341234"; + + @TestCase(name = "Verify FOP client see loan banner on homepage") + @JiraTestCase(id = "SBD-T47") + public void tc_fop_client_see_loan_banner(Harness harness) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey(USER_NAME, PASSWORD, MOBILE_KEY)) + .onWelcomePage() + .checkUserHasALoanBanner(); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/newtobank/CardUntilScoring.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/newtobank/CardUntilScoring.java new file mode 100644 index 0000000..048cc3f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/newtobank/CardUntilScoring.java @@ -0,0 +1,30 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.jenkinstests.newtobank; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +//FIXME add credentials +@TestScenario(name = "ExpresBusiness banner must be visible for FOP clients with valid IL") +@Disabled("Obsolete test - old IB") +public class CardUntilScoring { + + private static final String USER_NAME = "304002708"; + private static final String PASSWORD = "jSZKQsaJ"; + private static final String MOBILE_KEY = "12341234"; + + @TestCase(name = "Verify FOP client see loan banner on homepage") + @JiraTestCase(id = "SBD-T53") + public void tc_fop_client_see_loan_banner(Harness harness) { + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey(USER_NAME, PASSWORD, MOBILE_KEY)) + .onWelcomePage() + .checkUserHasACommercialCreditCardBanner() + .clickInterestedInCard() + .typeLoanAmount("63000") + .continueToSummary(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/newtobank/OnboardingIdentifyTests.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/newtobank/OnboardingIdentifyTests.java new file mode 100644 index 0000000..17332df --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/newtobank/OnboardingIdentifyTests.java @@ -0,0 +1,155 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.jenkinstests.newtobank; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.openapi.smeonboarding.SmallBusinessOnboardingEndpointsConstants; +import cz.moneta.test.dsl.openapi.smeonboarding.direct_channels.*; +import cz.moneta.test.dsl.openapi.smeonboarding.identify.CompanyIdentificationForm; +import cz.moneta.test.dsl.openapi.smeonboarding.identify.CompanyIdentificationNumber; +import cz.moneta.test.dsl.openapi.smeonboarding.identify.IdentifyRequestBody; +import cz.moneta.test.dsl.openapi.smeonboarding.identify.ProductInstance; +import cz.moneta.test.dsl.openapi.smeonboarding.process.SmallBusinessOnboardingProcessUtils; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "Call onboarding identify api tests") +public class OnboardingIdentifyTests { + + private String token; + private static final String COUNTRY = "\"52\""; + private static final String NAME = "\"Michael Čihák\""; + + @TestCase(name = "NTB test 03 - /smeonboarding/application-open") + @JiraTestCase(id = "SBD-T78") + @Order(1) + public void testOpen(Harness harness) { + harness.withOpenApi() + .prepareUnsecuredRequest() + .withPath(SmallBusinessOnboardingEndpointsConstants.APPLICATION_OPEN_ENDPOINT) + .withHeader("Content-Type", "application/json") + .get() + .andAssertStatus(200); + } + + @TestCase(name = "NTB test 02 - /smeonboarding/identify") + @JiraTestCase(id = "SBD-T77") + @Order(2) + public void testIdentify(Harness harness) { + token = SmallBusinessOnboardingProcessUtils.startProcessAndGetToken(harness); + + IdentifyRequestBody identifyRequestBody = IdentifyRequestBody.builder() + .productInstance(ProductInstance.builder() + .amount(350000) + .installment(4900) + .installmentCount(24) + .interestRate(6) + .productType("SME_EXPRESS") + .build()) + .companyIdentificationForm(CompanyIdentificationForm.builder() + .companyIdentificationNumber(CompanyIdentificationNumber.builder() + .value("04418093") + .name("companyIdentificationNumber") + .build()) + .build()) + .build(); + + harness.withOpenApi() + .prepareSecuredRequest() + .withPath(SmallBusinessOnboardingEndpointsConstants.IDENTIFY_ENDPOINT) + .withHeader("Content-Type", "application/json") + .withHeader("Authorization", "Bearer " + token) + .withPojoPayload(identifyRequestBody) + .post() + .andAssertStatus(200); + } + + @TestCase(name = "NTB test 04 - /smeonboarding/business/detail") + @JiraTestCase(id = "SBD-T79") + @Order(3) + public void testBusinessDetail(Harness harness) { + + JsonNode responseObject = harness.withOpenApi() + .prepareSecuredRequest() + .withPath(SmallBusinessOnboardingEndpointsConstants.BUSINESS_DETAIL) + .withHeader("Content-Type", "application/json") + .withHeader("Authorization", "Bearer " + token) + .get() + .andAssertStatus(200) + .extract("responseObject"); + String countryResponse = responseObject.findValue("country").toString(); + String nameResponse = responseObject.findValue("name").toString(); + + if ((countryResponse.equals(COUNTRY) && (nameResponse.equals(NAME)))) { + return; + } + throw new AssertionError("Invalid body"); + } + + @TestCase(name = "NTB test 05 - /smeonboarding/business/detail/commit") + @JiraTestCase(id = "SBD-T168") + @Order(4) + public void testCommit(Harness harness) { + harness.withOpenApi() + .prepareSecuredRequest() + .withPath(SmallBusinessOnboardingEndpointsConstants.DETAIL_COMMIT) + .withHeader("Content-Type", "application/json") + .withHeader("Authorization", "Bearer " + token) + .withPayload("{}") + .post() + .andAssertStatus(200); + } + + @TestCase(name = "NTB test 06 - /smeonboarding/process/utm") + @JiraTestCase(id = "SBD-T171") + @Order(5) + public void testUtm(Harness harness) { + harness.withOpenApi() + .prepareSecuredRequest() + .withPath(SmallBusinessOnboardingEndpointsConstants.PROCESS_UTM) + .withHeader("Content-Type", "application/json") + .withHeader("Authorization", "Bearer " + token) + .withPayload("{}") + .post() + .andAssertStatus(200); + } + + @TestCase(name = "NTB test 07 - /smeonboarding/person/contact/direct-channels") + @JiraTestCase(id = "SBD-T172") + @Order(6) + public void testDirectChannel(Harness harness) { + DirectChannelsRequestBody directChannelsRequestBody = DirectChannelsRequestBody.builder() + .contactDirectChannelsForm(ContactDirectChannelsForm.builder() + .email(Email.builder() + .name("email") + .value("auto@test.cz") + .build()) + .phoneNumber(PhoneNumber.builder() + .name("phoneNumber") + .value("776132886") + .build()) + .phonePrefix(PhonePrefix.builder() + .name("phonePrefix") + .value("+420") + .build()) + .unsecuredCommunicationConsent(UnsecuredCommunicationConsent.builder() + .name("unsecuredCommunicationConsent") + .value("true") + .build()) + .build()) + .build(); + + harness.withOpenApi() + .prepareSecuredRequest() + .withPath(SmallBusinessOnboardingEndpointsConstants.DIRECT_CHANNELS) + .withHeader("Content-Type", "application/json") + .withHeader("Authorization", "Bearer " + token) + .withPojoPayload(directChannelsRequestBody) + .post() + .andAssertStatus(200); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/newtobank/OnboardingProcessStart.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/newtobank/OnboardingProcessStart.java new file mode 100644 index 0000000..82dac03 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/jenkinstests/newtobank/OnboardingProcessStart.java @@ -0,0 +1,28 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.jenkinstests.newtobank; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.openapi.smeonboarding.process.SmallBusinessOnboardingProcessUtils; +import cz.moneta.test.dsl.openapi.smeonboarding.process.start.SmallBusinessOnboardingProcessStartResponse; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "Call onboarding process start api tests") +public class OnboardingProcessStart { + + @TestCase(name = "NTB test 01 - /smeonboarding/process/start") + @JiraTestCase(id = "SBD-T76") + public void testProcessStart(Harness harness) { + SmallBusinessOnboardingProcessStartResponse smallBusinessOnboardingProcessStartResponse = SmallBusinessOnboardingProcessUtils.createStartProcessUnsecuredRequest(harness) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(SmallBusinessOnboardingProcessStartResponse.class); + + String token = smallBusinessOnboardingProcessStartResponse.getResponseObject() + .getToken(); + + Assertions.assertNotNull(token, "Token value is null. It should contains some String."); + Assertions.assertNotEquals("", token, "Token value has to be nonempty String."); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateAcceleratedCifFop.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateAcceleratedCifFop.java new file mode 100644 index 0000000..e77e6af --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateAcceleratedCifFop.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.client; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Accelerated FOP Client") +public class CreateAcceleratedCifFop { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create New Accelerated FOP CIF", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T454") + public void createNewAcceleratedFopCif(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewIco(nonClient.ico())) + .then(bankaTasks.newAcceleratedFopClientTasks().createAcceleratedFopCif(nonClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateCifFop.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateCifFop.java new file mode 100644 index 0000000..c291250 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateCifFop.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.client; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Fop CIF") +public class CreateCifFop { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create New FOP Client", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T480") + public void createNewFopCif(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewIco(nonClient.ico())) + .then(bankaTasks.newFopClient().createFopCif(nonClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .verifyThatCifIsValid(); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateCifFopAndEdit.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateCifFopAndEdit.java new file mode 100644 index 0000000..0238202 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateCifFopAndEdit.java @@ -0,0 +1,67 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.client; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Fop CIF and edit") +public class CreateCifFopAndEdit { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create New FOP Client and edit", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T475") + public void createNewFopCifAndEdit(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewIco(nonClient.ico())) + .then(bankaTasks.newFopClient().createFopCif(nonClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .verifyThatCifIsValid() + .clickEdit() + .onEditPoFopPage() + .fillPhoneNumber("725559544") + .fillIdCard("209373723") + .fillIdValid("19.02.2029") + .clickSend() + .onEditFoWhenEditingFopPage() + .fillEmail(nonClient.email()) + .clickNotPoliticallyExposedPerson() + .clickSend() + .onAppendixConfirmationPage() + .continueWithPrint() + .onPrintPage() + .saveDocumentUrl() + .closePrintWindow() + .onContinueAfterSignPage() + .continueMainClientPage(); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateCifPo.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateCifPo.java new file mode 100644 index 0000000..ae277b0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateCifPo.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.client; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create New PO Client") +public class CreateCifPo { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create New PO Client", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T481") + public void createNewCifForPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewIco(nonPoClient.ico())) + .then(bankaTasks.newPoClient().createPoCif(nonPoClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .verifyThatCifIsValid(); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateFonStatutoryAuthority.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateFonStatutoryAuthority.java new file mode 100644 index 0000000..52724a1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/client/CreateFonStatutoryAuthority.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.client; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create FON Statutory Authority") +public class CreateFonStatutoryAuthority { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create FON Statutory Authority", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T486") + public void createFonStatutoryAuthority(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewRc(nonPoClient.birthNumber())) + .then(bankaTasks.newStatutoryAuthority().createStatutoryAuthority(nonPoClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndBirthNumber()); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeBirthNumberFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/incomemodule/FillIncomeModuleFop.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/incomemodule/FillIncomeModuleFop.java new file mode 100644 index 0000000..9e25493 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/incomemodule/FillIncomeModuleFop.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.incomemodule; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Fill Income Module FOP") +public class FillIncomeModuleFop { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Fill Income Module", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T497") + public void incomeModuleFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newIncomeModuleTasks().fillIncomeModuleFop(lastYear, yearBeforeLast)); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/incomemodule/FillIncomeModulePo.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/incomemodule/FillIncomeModulePo.java new file mode 100644 index 0000000..353147a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/incomemodule/FillIncomeModulePo.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.incomemodule; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Fill Income Module PO") +public class FillIncomeModulePo { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Fill Income Module", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T498") + public void incomeModulePo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newIncomeModuleTasks().fillIncomeModulePo(lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/CreateDebitCard.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/CreateDebitCard.java new file mode 100644 index 0000000..26c470d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/CreateDebitCard.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Debit Card") +public class CreateDebitCard { + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Debit Card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T487") + public void createDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newDebitCard().createDebitCard(CardTypeAndDesign.BUSINESS.getValue(), DebitCardFeePlan.FREE)); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/CreateTermDeposit.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/CreateTermDeposit.java new file mode 100644 index 0000000..dbc29e5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/CreateTermDeposit.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisTermDepositPeriod; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisTermDepositProducts; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Term Deposit") +public class CreateTermDeposit { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Term Deposit", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T488") + public void createTermDeposit(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String depositAmount = "100000"; + String termDepositProduct = HCisTermDepositProducts.CZK_FOP.getValue(); + String termDepositPeriod = HCisTermDepositPeriod.M5.getValue(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newTermDeposit().createTermDeposit(termDepositProduct, depositAmount, termDepositPeriod)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/currentaccount/CurrentAccountFon.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/currentaccount/CurrentAccountFon.java new file mode 100644 index 0000000..76d769a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/currentaccount/CurrentAccountFon.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.accounts.currentaccount; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Current Account with Internet Banking for FON") +public class CurrentAccountFon { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create Current Account with Internet Banking", environments = {TST1, PPE}) + public void createCurrentAccountFon(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(nonClient.birthNumber())) + .then(bankaTasks.sharedTasks().storeFullNameAndBirthNumber()) + .then(bankaTasks.newCurrentAccountTasks().createCurrentAccountFon()); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeBirthNumberFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/currentaccount/CurrentAccountWithIbForFop.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/currentaccount/CurrentAccountWithIbForFop.java new file mode 100644 index 0000000..a59e563 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/currentaccount/CurrentAccountWithIbForFop.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.accounts.currentaccount; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Current Account with Internet Banking for FOP") +public class CurrentAccountWithIbForFop { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Current Account with Internet Banking", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T402") + public void createCurrentAccountForFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newCurrentAccountTasks().createCurrentAccountFop(harness, nonClient)) + .verifyThatClientHasSomeActiveProducts(); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/currentaccount/CurrentAccountWithIbForPo.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/currentaccount/CurrentAccountWithIbForPo.java new file mode 100644 index 0000000..f036e0a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/currentaccount/CurrentAccountWithIbForPo.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.accounts.currentaccount; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Current Account with Internet Banking for PO") +public class CurrentAccountWithIbForPo { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create Current Account with Internet Banking", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T432") + public void createCurrentAccountForPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newCurrentAccountTasks().createCurrentAccountPo(harness, nonPoClient)) + .verifyThatClientHasSomeActiveProducts(); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/oneclick/OneClickFop.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/oneclick/OneClickFop.java new file mode 100644 index 0000000..320f4c2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/oneclick/OneClickFop.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.accounts.oneclick; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Fop OneClick") +public class OneClickFop { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "OneClick - BU, DK, IB", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T492") + public void oneClickFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.oneClick().createOneClickFop(harness)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/oneclick/OneClickPo.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/oneclick/OneClickPo.java new file mode 100644 index 0000000..76a34c4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/oneclick/OneClickPo.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.accounts.oneclick; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create PO OneClick") +public class OneClickPo { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "OneClick PO", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T483") + public void oneClickPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.oneClick().createOneClickPo(harness)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/savingaccount/SavingAccountFop.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/savingaccount/SavingAccountFop.java new file mode 100644 index 0000000..80df0bf --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/savingaccount/SavingAccountFop.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.accounts.savingaccount; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Saving Account for FOP") +public class SavingAccountFop { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Saving Account for FOP", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T456") + public void createSavingAccountFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newProduct().createNewSavingsAccount("Spořící účet")); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/savingaccount/SavingAccountPo.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/savingaccount/SavingAccountPo.java new file mode 100644 index 0000000..87cca4b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/accounts/savingaccount/SavingAccountPo.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.accounts.savingaccount; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Saving Account PO") +public class SavingAccountPo { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Saving Account PO", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T457") + public void savingAccountPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newProduct().createSavingAccountWithInternetBanking()); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateBusinessCreditConsolidation.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateBusinessCreditConsolidation.java new file mode 100644 index 0000000..006d62f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateBusinessCreditConsolidation.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Business Credit Consolidation for FOP") +public class CreateBusinessCreditConsolidation { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Business Credit Consolidation", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T496") + public void createBusinessCreditConsolidation(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String consolidationType = "Konsolidace podnikatelských úvěrů"; + String loanConsolidationAmount = "250000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withBusinessCreditConsolidation(harness, consolidationType, dummyEmail, loanConsolidationAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateBusinessCreditConsolidationRetail.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateBusinessCreditConsolidationRetail.java new file mode 100644 index 0000000..9c6c3f4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateBusinessCreditConsolidationRetail.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Business Credit Consolidation for FOP Retail") +public class CreateBusinessCreditConsolidationRetail { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Business Credit Consolidation Retail", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T508") + public void createBusinessCreditConsolidation(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String consolidationType = "Konsolidace podnikatelských úvěrů Retail"; + String loanConsolidationAmount = "250000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withBusinessCreditConsolidation(harness, consolidationType, dummyEmail, loanConsolidationAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusiness.java new file mode 100644 index 0000000..b26dc93 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusiness.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business for FOP") +public class CreateExpresBusiness { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Expres Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T484") + public void createExpresBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanExpresAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withExpresBusiness(harness, dummyEmail, loanExpresAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessAndFlexiBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessAndFlexiBusiness.java new file mode 100644 index 0000000..c576193 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessAndFlexiBusiness.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business and Flexi Business") +public class CreateExpresBusinessAndFlexiBusiness { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Expres Business and Flexi Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T433") + public void createExpresBusinessAndFlexiBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanExpresAmount = "250000"; + String loanFlexiAmount = "250000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withExpresBusinessAndFlexiBusiness(harness, dummyEmail, loanExpresAmount, loanFlexiAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCard.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCard.java new file mode 100644 index 0000000..5379e74 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCard.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business and Flexi Business and Moneta Business Card") +public class CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCard { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Expres Business and Flexi Business And Moneta Business Card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T956") + public void createExpresBusinessAndFlexiBusinessAndMonetaBusinessCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanExpresAmount = "250000"; + String loanFlexiAmount = "250000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withExpresBusinessAndFlexiBusinessAndMonetaBusinessCard(harness, dummyEmail, loanExpresAmount, loanFlexiAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessEafEasi.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessEafEasi.java new file mode 100644 index 0000000..955c651 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessEafEasi.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business EAF EaSI") +public class CreateExpresBusinessEafEasi { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create SME Automats - Expres Business EIF EaSI", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T453") + public void createExpresBusinessEafEasi(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanEasiAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withExpresBusinessEasi(harness, dummyEmail, loanEasiAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessRetail.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessRetail.java new file mode 100644 index 0000000..1849836 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessRetail.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business Retail for FOP") +public class CreateExpresBusinessRetail { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Expres Business Retail", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T495") + public void createExpresBusinessRetail(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanExpresAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withExpresBusinessRetail(harness, dummyEmail, loanExpresAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessWithSignNIB.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessWithSignNIB.java new file mode 100644 index 0000000..89fa9b2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateExpresBusinessWithSignNIB.java @@ -0,0 +1,68 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.banka.pages.po.HPO018_S001_AdcPage.INTERNET_BANKING_ID_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business with NIB for FOP") +public class CreateExpresBusinessWithSignNIB { + + private NonClient nonClient; + private BankaTasks bankaTasks; + private NewIbTasks newIbTasks; + String DEFAULT_PASSWORD = "Aa123456"; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + newIbTasks = harness.tasks().newIb(); + } + + @TestCase(name = "Create Expres Business With Sign NIB", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T986") + public void createExpresBusinessWithSignNIB(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanExpresAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + HKO101_S001_MainClientPage first_instance = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withExpresBusinessSendToNIB(harness, dummyEmail, loanExpresAmount, lastYear, yearBeforeLast)) + .then(bankaTasks.sharedTasks().storeInternetBankingID()); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(harness.get(INTERNET_BANKING_ID_KEY), DEFAULT_PASSWORD)) + .then(newIbTasks.conditionallyApproveApplicationInProgress()); + + first_instance + .then(bankaTasks.newSmeAutomatFopTasks().finishExpressApplicationAFterNIBSign(harness, "PODMÍNĚNÝ SOUHLAS")); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateFlexiBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateFlexiBusiness.java new file mode 100644 index 0000000..1ea2704 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateFlexiBusiness.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Flexi Business") +public class CreateFlexiBusiness { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Flexi Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T450") + public void createFlexiBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanFlexiAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withFlexiBusiness(harness, dummyEmail, loanFlexiAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateGreenExpresBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateGreenExpresBusiness.java new file mode 100644 index 0000000..bcfd27d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateGreenExpresBusiness.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Green Expres Business") +public class CreateGreenExpresBusiness { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Green Expres Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T452") + public void createGreenExpresBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanGreenAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withGreenExpresBusiness(harness, dummyEmail, loanGreenAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateMonetaBusinessCard.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateMonetaBusinessCard.java new file mode 100644 index 0000000..261e257 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateMonetaBusinessCard.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Moneta Business Card") +public class CreateMonetaBusinessCard { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Moneta Business Card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T449") + public void createMonetaBusinessCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withMonetaBusinessCard(harness, dummyEmail, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateReserveProBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateReserveProBusiness.java new file mode 100644 index 0000000..feeda78 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/CreateReserveProBusiness.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Reserve PRO Business") +public class CreateReserveProBusiness { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Reserve PRO Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T451") + public void createReserveProBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanReserveAmount = "150000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withReserveProBusiness(harness, dummyEmail, loanReserveAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/DrawDownFeeExpressBusinessAndFlexiBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/DrawDownFeeExpressBusinessAndFlexiBusiness.java new file mode 100644 index 0000000..8895c37 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/DrawDownFeeExpressBusinessAndFlexiBusiness.java @@ -0,0 +1,93 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewSmeAutomatFopTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewSmeAutomatSubTasks; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.APPLICATION_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.products.sme.SMA002_S001_SMEAutomatsApplicationOverview.ACCOUNT_NUMBER_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Draw Down Fee Express And Flexi Business") +public class DrawDownFeeExpressBusinessAndFlexiBusiness { + + private NonClient nonClient; + private BankaTasks bankaTasks; + private NewSmeAutomatFopTasks newSmeAutomatFopTasks; + private NewSmeAutomatSubTasks newSmeAutomatSubTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + newSmeAutomatFopTasks = bankaTasks.newSmeAutomatFopTasks(); + newSmeAutomatSubTasks = bankaTasks.newSmeAutomatSubTasks(); + } + + @TestCase(name = "Draw Down Fee Expres Business And Flexi Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T939") + public void drawDownFeeExpressBusinessAndFlexiBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, + @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + + HLO001_S001_ClientSearchPage second_instance = harness.withUfoSecondInstance() + .openLoginPage() + .then(bankaTasks.login().withCredentialsSecondBanker(secondBanker)) + .storeBankerName(); + + String bankerName = BankaUtils.formatBankerName(harness.get("BANKER_NAME")); + + OBR003_S001_ClientContractSignPage first_instance = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .storeClientIdNumber() + .selectFromListOfRequests() + .then(newSmeAutomatFopTasks.drawDownFeeExpresAndFlexiBusiness(harness, bankerName)) + .then(newSmeAutomatFopTasks.printAndSignExpresBusiness(harness, bankerName)); + + second_instance + .then(bankaTasks.cardsServicing().secondBankerApplicationSign(harness.get(APPLICATION_ID_KEY), harness.get(CLIENT_ID_KEY))); + + first_instance + .then(newSmeAutomatFopTasks.finishDrawingDown(harness, "Úvěr načerpán")) + .clickRequest(harness.get(APPLICATION_ID_KEY)) + .clickOpenRequestDetail() + .onSMEAutomatsApplicationsOverview() + .then(newSmeAutomatFopTasks.printAndSignFlexiBusiness(harness, bankerName)); + + second_instance + .then(bankaTasks.cardsServicing().secondBankerApplicationSign(harness.get(APPLICATION_ID_KEY), harness.get(CLIENT_ID_KEY))); + + first_instance + .then(newSmeAutomatFopTasks.finishDrawingDown(harness, "Rámec otevřen")) + .clickBackToMainPage() + .then(newSmeAutomatSubTasks.storeAccountNumber(harness.get(APPLICATION_ID_KEY), "Expres Business")) + .then(newSmeAutomatSubTasks.checkEstablishedExpresBusinessAccountDetail(harness)) + .then(newSmeAutomatSubTasks.storeAccountNumber(harness.get(APPLICATION_ID_KEY), "Flexi Business")) + .then(newSmeAutomatSubTasks.checkEstablishedKontokorentDetail(harness.get(ACCOUNT_NUMBER_KEY))); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/DrawDownFeeExpressBusinessWithSignNIB.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/DrawDownFeeExpressBusinessWithSignNIB.java new file mode 100644 index 0000000..8a7bace --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/DrawDownFeeExpressBusinessWithSignNIB.java @@ -0,0 +1,80 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.ufo.banka.pages.requests.BAL006_S002_ClientRequestPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewSmeAutomatFopTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewSmeAutomatSubTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.APPLICATION_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.po.HPO018_S001_AdcPage.INTERNET_BANKING_ID_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Draw Down Fee Express With Sign NIB") +public class DrawDownFeeExpressBusinessWithSignNIB { + + private NonClient nonClient; + private BankaTasks bankaTasks; + private NewSmeAutomatFopTasks newSmeAutomatFopTasks; + private NewSmeAutomatSubTasks newSmeAutomatSubTasks; + private NewIbTasks newIbTasks; + String DEFAULT_PASSWORD = "Aa123456"; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + newSmeAutomatFopTasks = bankaTasks.newSmeAutomatFopTasks(); + newSmeAutomatSubTasks = bankaTasks.newSmeAutomatSubTasks(); + newIbTasks = harness.tasks().newIb(); + } + + @TestCase(name = "Draw Down Fee Expres Business With Sign NIB", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T1019") + public void drawDownFeeExpressBusinessWithSignNIB(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + BAL006_S002_ClientRequestPage first_instance = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.sharedTasks().storeInternetBankingID()) + .then(newSmeAutomatFopTasks.drawDownFeeWithSignNIBExpresBusiness(harness)); + + harness.withNewIb() + .openLoginPage() + .then(newIbTasks.loginWithUsernamePasswordAndDefaultMobKey(harness.get(INTERNET_BANKING_ID_KEY), DEFAULT_PASSWORD)) + .then(newIbTasks.checkAndSignNewDocument()); + + first_instance + .clickRequest(harness.get(APPLICATION_ID_KEY)) + .clickOpenRequestDetail() + .onSMEAutomatsApplicationsOverview() + .storeAccountNumber("Expres Business"); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(newSmeAutomatSubTasks.checkEstablishedExpresBusinessAccountDetail(harness)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/clipdeclip/ClipMonetaBusinessCard.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/clipdeclip/ClipMonetaBusinessCard.java new file mode 100644 index 0000000..391c7bb --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/clipdeclip/ClipMonetaBusinessCard.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop.clipdeclip; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Clip Moneta Business Card") +public class ClipMonetaBusinessCard { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Clip Moneta Business Card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T514") + public void clipMonetaBusinessCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.clipDeclipFop().clipMbc(harness, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/clipdeclip/DeclipMonetaBusinessCard.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/clipdeclip/DeclipMonetaBusinessCard.java new file mode 100644 index 0000000..867ce59 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/clipdeclip/DeclipMonetaBusinessCard.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop.clipdeclip; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Declip Moneta Business Card") +public class DeclipMonetaBusinessCard { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Declip Moneta Business Card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T515") + public void declipMonetaBusinessCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.clipDeclipFop().declipMbc(harness)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/familybusiness/CreateExpresBusinessFamilyBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/familybusiness/CreateExpresBusinessFamilyBusiness.java new file mode 100644 index 0000000..fd5f089 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/familybusiness/CreateExpresBusinessFamilyBusiness.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop.familybusiness; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business with Family Business") +public class CreateExpresBusinessFamilyBusiness { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Expres Business with Family Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T1139") + public void createExpresBusinessFamilyBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanExpresAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + String financingReason = "opravy aut"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndSelectFirstOmAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withExpresBusinessFamilyBusiness(harness, dummyEmail, loanExpresAmount, lastYear, yearBeforeLast, financingReason)); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/familybusiness/CreateFlexiBusinessFamilyBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/familybusiness/CreateFlexiBusinessFamilyBusiness.java new file mode 100644 index 0000000..d52e3a2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/familybusiness/CreateFlexiBusinessFamilyBusiness.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop.familybusiness; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Flexi Business with Family Business") +public class CreateFlexiBusinessFamilyBusiness { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Flexi Business with Family Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T510") + public void createFlexiBusinessFamilyBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanFlexiAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withFlexiBusinessFamilyBusiness(harness, dummyEmail, loanFlexiAmount, lastYear, yearBeforeLast)); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/familybusiness/CreateMonetaBusinessCardFamilyBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/familybusiness/CreateMonetaBusinessCardFamilyBusiness.java new file mode 100644 index 0000000..98c27b6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/familybusiness/CreateMonetaBusinessCardFamilyBusiness.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop.familybusiness; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Moneta Business Card Family Business") +public class CreateMonetaBusinessCardFamilyBusiness { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Moneta Business Card Family Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T1140") + public void createMonetaBusinessCardFamilyBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withMonetaBusinessCardFamilyBusiness(harness, dummyEmail, lastYear, yearBeforeLast)); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/unionfop/CreateExpresBusinessAssociationFop.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/unionfop/CreateExpresBusinessAssociationFop.java new file mode 100644 index 0000000..1926277 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/unionfop/CreateExpresBusinessAssociationFop.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop.unionfop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business with FOP Association") +public class CreateExpresBusinessAssociationFop { + private NonClient nonClient; + private BankaTasks bankaTasks; + private NonClient associatedMember; + + @BeforeAll + protected void setUp(Harness harness) { + nonClient = DataPrepare.setUpFop(harness); + associatedMember = DataPrepare.setAssociatedFop(harness); + } + + @TestCase(name = "Create Expres Business with FOP Association", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T1136") + public void createExpresBusinessFopAssociation(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + bankaTasks = harness.tasks().ufo().banka(); + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanExpresAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withExpressBusinessAssociationFop(harness, dummyEmail, loanExpresAmount, lastYear, yearBeforeLast, associatedMember)); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/unionfop/CreateFlexiBusinessAssociationFop.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/unionfop/CreateFlexiBusinessAssociationFop.java new file mode 100644 index 0000000..bfa7177 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/unionfop/CreateFlexiBusinessAssociationFop.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop.unionfop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Flexi Business with FOP Association") +public class CreateFlexiBusinessAssociationFop { + + private NonClient nonClient; + private BankaTasks bankaTasks; + private NonClient associatedMember; + + @BeforeAll + protected void setUp(Harness harness) { + nonClient = DataPrepare.setUpFop(harness); + associatedMember = DataPrepare.setAssociatedFop(harness); + } + + @TestCase(name = "Create Flexi Business with FOP Association", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T509") + public void createFlexiBusinessFopAssociation(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + bankaTasks = harness.tasks().ufo().banka(); + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanFlexiAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withFlexiBusinessAssociationFop(harness, dummyEmail, loanFlexiAmount, lastYear, yearBeforeLast, associatedMember)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/unionfop/CreateMonetaBusinessCardAssociationFop.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/unionfop/CreateMonetaBusinessCardAssociationFop.java new file mode 100644 index 0000000..ac54641 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/unionfop/CreateMonetaBusinessCardAssociationFop.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop.unionfop; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Moneta Business Card With Association Fop") +public class CreateMonetaBusinessCardAssociationFop { + + private NonClient nonClient; + private NonClient associatedMember; + + @BeforeAll + protected void setUp(Harness harness) { + nonClient = DataPrepare.setUpFop(harness); + associatedMember = DataPrepare.setAssociatedFop(harness); + } + + @TestCase(name = "Create Moneta Business Card With Association Fop", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T1137") + public void createMonetaBusinessCardWithAssociationFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withMonetaBusinessCardAssociationFop(harness, dummyEmail, lastYear, yearBeforeLast, associatedMember)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/withwife/CreateExpresBusinessWithWife.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/withwife/CreateExpresBusinessWithWife.java new file mode 100644 index 0000000..249b5e0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/withwife/CreateExpresBusinessWithWife.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop.withwife; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business with wife") +public class CreateExpresBusinessWithWife { + + private NonClient nonClient; + private BankaTasks bankaTasks; + private NonClient wifeData; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + wifeData = harness.data().newWomanNonClient(); + } + + @TestCase(name = "Create Expres Business with wife", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T489") + public void createExpresBusinessWithWife(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanExpresAmount = "1000000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withExpresBusinessWithWife(harness, dummyEmail, loanExpresAmount, lastYear, yearBeforeLast, wifeData)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/withwife/CreateFlexiBusinessWithWife.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/withwife/CreateFlexiBusinessWithWife.java new file mode 100644 index 0000000..cbdc496 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/withwife/CreateFlexiBusinessWithWife.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop.withwife; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Flexi Business with wife") +public class CreateFlexiBusinessWithWife { + + private NonClient nonClient; + private BankaTasks bankaTasks; + private NonClient wifeData; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + wifeData = harness.data().newWomanNonClient(); + } + + @TestCase(name = "Create Flexi Business with wife", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T490") + public void createFlexiBusinessWithWife(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanFlexiAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withFlexiBusinessWithWife(harness, dummyEmail, loanFlexiAmount, wifeData, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/withwife/CreateMbcWithWife.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/withwife/CreateMbcWithWife.java new file mode 100644 index 0000000..ed026af --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/fop/withwife/CreateMbcWithWife.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.fop.withwife; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Moneta Business Card with wife") +public class CreateMbcWithWife { + + private NonClient nonClient; + private BankaTasks bankaTasks; + private NonClient wifeData; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + wifeData = harness.data().newWomanNonClient(); + } + + @TestCase(name = "Create Moneta Business Card with wife", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T491") + public void createMonetaBusinessCardWithWife(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatFopTasks().withMonetaBusinessCardWithWife(harness, dummyEmail, lastYear, yearBeforeLast, wifeData)); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateBusinessCreditConsolidation.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateBusinessCreditConsolidation.java new file mode 100644 index 0000000..1e67adb --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateBusinessCreditConsolidation.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Business Credit Consolidation for FOP") +public class CreateBusinessCreditConsolidation { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create Business Credit Consolidation", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T519") + public void createBusinessCreditConsolidation(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanConsolidationAmount = "250000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatPoTasks().withBusinessCreditConsolidation(harness, dummyEmail, loanConsolidationAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusiness.java new file mode 100644 index 0000000..ce801ac --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusiness.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "Create Expres Business for PO") +public class CreateExpresBusiness { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create Expres Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T455") + public void createExpresBusinessForPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + String loanExpresAmount = "500000"; + String financingReason = "nákup strojů, výrobních zařízení"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findLegalRepresentativeByIco(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatPoTasks().withExpresBusiness(harness, loanExpresAmount, lastYear, yearBeforeLast, financingReason)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCard.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCard.java new file mode 100644 index 0000000..f18aa58 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCard.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business and Flexi Business and Moneta Business Card for PO") +public class CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCard { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create Expres Business and Flexi Business and Moneta Business Card for PO", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T957") + public void createExpresBusinessAndFlexiBusinessAndMonetaBusinessCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + String loanExpresAmount = "500000"; + String loanFlexiAmount = "500000"; + String financingReason = "nákup strojů, výrobních zařízení"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findLegalRepresentativeByIco(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatPoTasks().withExpresBusinessAndFlexiBusinessAndMonetaBusinessCard(harness, loanExpresAmount, loanFlexiAmount, lastYear, yearBeforeLast, financingReason)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCardTwoRepresentatives.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCardTwoRepresentatives.java new file mode 100644 index 0000000..cde1e8b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCardTwoRepresentatives.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business and Flexi Business and Moneta Business Card for PO with 2 Representatives") +public class CreateExpresBusinessAndFlexiBusinessAndMonetaBusinessCardTwoRepresentatives { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create Expres Business and Flexi Business and Moneta Business Card for PO with 2 Representatives", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T1020") + public void createExpresBusinessAndFlexiBusinessAndMonetaBusinessCardWithTwoRepresentatives(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + String loanExpresAmount = "500000"; + String loanFlexiAmount = "500000"; + String financingReason = "nákup strojů, výrobních zařízení"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findTwoLegalRepresentativesByIco(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatPoTasks().withExpresBusinessAndFlexiBusinessAndMonetaBusinessCardWithTwoRepresentatives(harness, loanExpresAmount, loanFlexiAmount, lastYear, yearBeforeLast, financingReason)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessBdSvj.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessBdSvj.java new file mode 100644 index 0000000..84d19b2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessBdSvj.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "Create Expres Business Po Bytové družstvo/Společenství vlastníků jednotek") +public class CreateExpresBusinessBdSvj { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create Expres Business Bd/Svj", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SBD-T1051") + public void createExpresBusinessBdSvj(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + String loanExpresAmount = "500000"; + String numberOfPayments = "360"; + String financingReason = "Modernizace"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findLegalRepresentativeByIco(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatPoTasks().withExpresBusinessCooperativeOwnership(harness, loanExpresAmount, numberOfPayments, lastYear, yearBeforeLast, financingReason)); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessEafEasi.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessEafEasi.java new file mode 100644 index 0000000..7f66648 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateExpresBusinessEafEasi.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Expres Business EAF EaSI") +public class CreateExpresBusinessEafEasi { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create SME Automats - Expres Business EIF EaSI", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T520") + public void createExpresBusinessEafEasi(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanEasiAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatPoTasks().withExpresBusinessEasi(harness, dummyEmail, loanEasiAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateFlexiBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateFlexiBusiness.java new file mode 100644 index 0000000..9d67f8a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateFlexiBusiness.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Flexi Business for PO") +public class CreateFlexiBusiness { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create Flexi Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T482") + public void createFlexiBusinessForPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + String loanFlexiAmount = "500000"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findLegalRepresentativeByIco(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatPoTasks().withFlexiBusiness(harness, loanFlexiAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateGreenExpresBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateGreenExpresBusiness.java new file mode 100644 index 0000000..9049cd3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateGreenExpresBusiness.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Green Expres Business") +public class CreateGreenExpresBusiness { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create Green Expres Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T518") + public void createGreenExpresBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanGreenAmount = "500000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatPoTasks().withGreenExpresBusiness(harness, dummyEmail, loanGreenAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateMonetaBusinessCard.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateMonetaBusinessCard.java new file mode 100644 index 0000000..4f54b75 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateMonetaBusinessCard.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Moneta Business Card for PO") +public class CreateMonetaBusinessCard { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create Moneta Business Card", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T485") + public void createMonetaBusinessCardForPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@hanka.hu"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findLegalRepresentativeByIco(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatPoTasks().withMonetaBusinessCard(harness, dummyEmail, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateReserveProBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateReserveProBusiness.java new file mode 100644 index 0000000..a014d2c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/CreateReserveProBusiness.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Reserve PRO Business") +public class CreateReserveProBusiness { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create Reserve PRO Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T517") + public void createReserveProBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String dummyEmail = "dummy.a1a2a3a4a5a6a7a8@ge.com"; + String loanReserveAmount = "150000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.newSmeAutomatPoTasks().withReserveProBusiness(harness, dummyEmail, loanReserveAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/DrawDownFeeExpressBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/DrawDownFeeExpressBusiness.java new file mode 100644 index 0000000..2694988 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/DrawDownFeeExpressBusiness.java @@ -0,0 +1,86 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.debit.OBR003_S001_ClientContractSignPage; +import cz.moneta.test.dsl.ufo.banka.pages.search.HLO001_S001_ClientSearchPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewSmeAutomatPoTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.products.NewSmeAutomatSubTasks; +import cz.moneta.test.dsl.util.BankaUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.OPN008_S001_SignContractPage.APPLICATION_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_ID_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.po.ZAS003_S001_StatutoryAuthorityEvidencePage.BIRTH_NUMBER_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + + +@TestScenario(name = "Draw Down Fee Express") +public class DrawDownFeeExpressBusiness { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + private NewSmeAutomatPoTasks newSmeAutomatPoTasks; + private NewSmeAutomatSubTasks newSmeAutomatSubTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + newSmeAutomatPoTasks = bankaTasks.newSmeAutomatPoTasks(); + newSmeAutomatSubTasks = bankaTasks.newSmeAutomatSubTasks(); + } + + @TestCase(name = "Draw Down Fee Expres Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T1021") + public void drawDownFeeExpressBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials, + @Key(Keys.ufo.banka.secondBanker) Credentials secondBanker) { + + HLO001_S001_ClientSearchPage second_instance = harness.withUfoSecondInstance() + .openLoginPage() + .then(bankaTasks.login().withCredentialsSecondBanker(secondBanker)) + .storeBankerName() + .closeSearchedHistoryIfVisible() + .fillSearchTerm(nonPoClient.ico()) + .clickIcoRadioAndContinueToStatutoryAuthorityEvidencePage() + .storeBirthNumber() + .clickEnd() + .then(bankaTasks.search().findByRC(harness.get(BIRTH_NUMBER_KEY))) + .storeClientIdNumber() + .clickSearch(); + + String bankerName = BankaUtils.formatBankerName(harness.get("BANKER_NAME")); + + OBR003_S001_ClientContractSignPage first_instance = harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findLegalRepresentativeByIco(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .selectFromListOfRequests() + .then(newSmeAutomatPoTasks.drawDownFeeExpresBusiness(harness, bankerName)); + + second_instance + .then(bankaTasks.cardsServicing().secondBankerApplicationSign(harness.get(APPLICATION_ID_KEY), harness.get(CLIENT_ID_KEY))); + + first_instance + .then(newSmeAutomatPoTasks.finishDrawingDownPo(harness, "Úvěr načerpán")) + .then(newSmeAutomatSubTasks.storeAccountNumber(harness.get(APPLICATION_ID_KEY), "Expres Business")) + .then(newSmeAutomatSubTasks.checkEstablishedExpresBusinessAccountDetail(harness)); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeBirthNumberFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/clipdeclip/ClipFlexiBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/clipdeclip/ClipFlexiBusiness.java new file mode 100644 index 0000000..8cc842c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/clipdeclip/ClipFlexiBusiness.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po.clipdeclip; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Clip Flexi Business") +public class ClipFlexiBusiness { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Clip Flexi Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T109") + public void clipFlexiBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String increaseAmount = "550000"; + String lastYear = DataPrepare.getLastYear(); + String yearBeforeLast = DataPrepare.getYearBeforeLast(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.clipDeclipPo().clipFlexi(harness, increaseAmount, lastYear, yearBeforeLast)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/clipdeclip/DeclipFlexiBusiness.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/clipdeclip/DeclipFlexiBusiness.java new file mode 100644 index 0000000..1a256aa --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/products/smeautomats/po/clipdeclip/DeclipFlexiBusiness.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.products.smeautomats.po.clipdeclip; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Declip Flexi Business") +public class DeclipFlexiBusiness { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Declip Flexi Business", environments = {TST1, PPE}) + @JiraTestCase(id = "SBD-T110") + public void declipFlexiBusiness(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String decreaseAmount = "450000"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .then(bankaTasks.clipDeclipPo().declipFlexi(harness, decreaseAmount)); + + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFonWithRetailHunter.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFonWithRetailHunter.java new file mode 100644 index 0000000..a664fd3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFonWithRetailHunter.java @@ -0,0 +1,68 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.testscenarios; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Create FON CIF with Moneta Business Card - Retail Hunter") +public class CreateFonWithRetailHunter { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create FON Statutory Authority", environments = {TST1, PPE}) + @Order(1) + @JiraTestCase(id = "SBD-T486") + public void createFonStatutoryAuthority(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewRc(nonClient.birthNumber())) + .then(bankaTasks.newStatutoryAuthority().createStatutoryAuthority(nonClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndBirthNumber()); + + harness.storeGlobal("FON_STAT_PASSED", "PASS"); + } + + /** + * V teste nutne vyplnit realne ICO do premennej "businessIco" + */ + @EnableIfSet(globalKey = "FON_STAT_PASSED") + @TestCase(name = "Moneta Business Card for FON - Retail Hunter", environments = {TST1, PPE}) + @Order(2) + @JiraTestCase(id = "SBD-T493") + public void retailHunter(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String businessIco = "74564684"; + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByRC(nonClient.birthNumber())) + .then(bankaTasks.retailHunter().createRetailHunter(nonClient, businessIco)) + .then(bankaTasks.sharedTasks().storeFullNameAndBirthNumber()); + } + + @AfterEach + public void tearDown(Harness harness) { + TearDown.storeBirthNumberFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFopDebitCard.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFopDebitCard.java new file mode 100644 index 0000000..efae92e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFopDebitCard.java @@ -0,0 +1,87 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.testscenarios; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardTypeAndDesign; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.*; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Debit card for FOP") +public class CreateFopDebitCard { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create New FOP Client", environments = {TST1, PPE}) + @Order(1) + @JiraTestCase(id = "SBD-T480") + public void createNewFopCif(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewIco(nonClient.ico())) + .then(bankaTasks.newFopClient().createFopCif(nonClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .verifyThatCifIsValid(); + + harness.storeGlobal("FOP_CIF_CREATED", "PASS"); + } + + @EnableIfSet(globalKey = "FOP_CIF_CREATED") + @TestCase(name = "Create Current Account with Internet Banking", environments = {TST1, PPE}) + @Order(2) + @JiraTestCase(id = "SBD-T402") + public void createCurrentAccountForFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.newCurrentAccountTasks().createCurrentAccountFop(harness, nonClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .verifyThatClientHasSomeActiveProducts(); + + harness.storeGlobal("CURR_ACC_PASSED", "PASS"); + } + + @EnableIfSet(globalKey = "CURR_ACC_PASSED") + @TestCase(name = "Create Debit Card", environments = {TST1, PPE}) + @Order(3) + @JiraTestCase(id = "SBD-T288") + public void createDebitCard(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.newDebitCard().createDebitCard(CardTypeAndDesign.BUSINESS.getValue(), DebitCardFeePlan.FREE)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()); + } + + @AfterEach + public void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFopSavingAccount.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFopSavingAccount.java new file mode 100644 index 0000000..070d45d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFopSavingAccount.java @@ -0,0 +1,87 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.testscenarios; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Saving Account FOP") +public class CreateFopSavingAccount { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create New FOP Client", environments = {TST1, PPE}) + @Order(1) + @JiraTestCase(id = "SBD-T480") + public void createNewFopCif(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewIco(nonClient.ico())) + .then(bankaTasks.newFopClient().createFopCif(nonClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .verifyThatCifIsValid(); + + harness.storeGlobal("FOP_CIF_CREATED", "PASS"); + } + + @EnableIfSet(globalKey = "FOP_CIF_CREATED") + @TestCase(name = "Create Current Account with Internet Banking", environments = {TST1, PPE}) + @Order(2) + @JiraTestCase(id = "SBD-T402") + public void createCurrentAccountForFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.newCurrentAccountTasks().createCurrentAccountFop(harness, nonClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .verifyThatClientHasSomeActiveProducts(); + + harness.storeGlobal("CURR_ACC_PASSED", "PASS"); + } + + @EnableIfSet(globalKey = "CURR_ACC_PASSED") + @TestCase(name = "Saving Account", environments = {TST1, PPE}) + @Order(3) + @JiraTestCase(id = "SBD-T456") + public void createSavingAccountFop(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.newProduct().createNewSavingsAccount("Spořící účet")) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()); + } + + @AfterEach + public void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFopWithOneClick.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFopWithOneClick.java new file mode 100644 index 0000000..bb142e8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreateFopWithOneClick.java @@ -0,0 +1,69 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.testscenarios; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Create Fop Cif with Current Account, Debit Card, IB with OneClick") +public class CreateFopWithOneClick { + + private NonClient nonClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonClient = DataPrepare.setUpFop(harness); + } + + @TestCase(name = "Create New FOP Client", environments = {TST1, PPE}) + @Order(1) + @JiraTestCase(id = "SBD-T480") + public void createNewFopCif(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewIco(nonClient.ico())) + .then(bankaTasks.newFopClient().createFopCif(nonClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .verifyThatCifIsValid(); + + harness.storeGlobal("FOP_CIF_CREATED", "PASS"); + } + + @EnableIfSet(globalKey = "FOP_CIF_CREATED") + @TestCase(name = "OneClick - BU, DK, IB", environments = {TST1, PPE}) + @Order(2) + @JiraTestCase(id = "SBD-T492") + public void oneClickBuDkIb(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.oneClick().createOneClickFop(harness)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()); + } + + @AfterEach + public void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreatePoSavingAccount.java b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreatePoSavingAccount.java new file mode 100644 index 0000000..3cd8f48 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/commercial/smallbusiness/digital/localtests/banka/testscenarios/CreatePoSavingAccount.java @@ -0,0 +1,122 @@ +package cz.moneta.test.regression.commercial.smallbusiness.digital.localtests.banka.testscenarios; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.EnableIfSet; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.DataPrepare; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Saving Account PO") +public class CreatePoSavingAccount { + + private NonClient nonPoClient; + private BankaTasks bankaTasks; + + @BeforeAll + protected void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + nonPoClient = DataPrepare.setUpPo(harness); + } + + @TestCase(name = "Create New PO Client", environments = {TST1, PPE}) + @Order(1) + @JiraTestCase(id = "SBD-T481") + public void createNewCifForPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewIco(nonPoClient.ico())) + .then(bankaTasks.newPoClient().createPoCif(nonPoClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + .verifyThatCifIsValid(); + + harness.storeGlobal("PO_CIF_CREATED", "PASS"); + } + + @EnableIfSet(globalKey = "PO_CIF_CREATED") + @TestCase(name = "Create FON Statutory Authority", environments = {TST1, PPE}) + @Order(2) + @JiraTestCase(id = "SBD-T486") + public void createFonStatutoryAuthority(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByNewRc(nonPoClient.birthNumber())) + .then(bankaTasks.newStatutoryAuthority().createStatutoryAuthority(nonPoClient)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()); + + harness.storeGlobal("FON_STAT_CREATED", "PASS"); + } + + @EnableIfSet(globalKey = "FON_STAT_CREATED") + @TestCase(name = "OneClick PO", environments = {TST1, PPE}) + @Order(3) + @JiraTestCase(id = "SBD-T483") + public void oneClickPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .then(bankaTasks.oneClick().createOneClickPo(harness)) + .then(bankaTasks.sharedTasks().storeFullNameAndIco()) + ; + + harness.storeGlobal("ONECLICK_PASSED", "PASS"); + } + + @EnableIfSet(globalKey = "ONECLICK_PASSED") + @TestCase(name = "Saving Account PO", environments = {TST1, PPE}) + @Order(4) + @JiraTestCase(id = "SBD-T457") + public void savingAccountPo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIcoPo(nonPoClient.ico())) + .createNewProduct(HCisProductClass.SAVINGS_ACCOUNT) + .onRegistrationCertificatePage() + .clickRightButton() + .onScoringPage() + .waitForLoader() + .onSavingAccountPage() + .selectProduct("SÚ_PRO_podnikání_4_PO") + .selectFirstAccountNumber() + .selectDistribution("Elektronicky IB") + .selectPeriodicity("Měsíční") + .clickSend() + .onDocumentationSendPage() + .sendDocumentsToClient() + .clickLeftButton() + .onAppendixSignedPage() + .clickNoButton() + .clickCenterButton() + .onDispositionGeneratePage() + .clickGenerateLater() + .onProductsListPage() + .clickContinueButtonAndContinueToMainClientPage() + .then(bankaTasks.sharedTasks().storeFullNameAndIco()); + } + + @AfterEach + public void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/creditdistribution/deposits/ChildBuildingSavingsTests.java b/tests/src/test/java/cz/moneta/test/regression/creditdistribution/deposits/ChildBuildingSavingsTests.java new file mode 100644 index 0000000..25446b9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/creditdistribution/deposits/ChildBuildingSavingsTests.java @@ -0,0 +1,74 @@ +package cz.moneta.test.regression.creditdistribution.deposits; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.util.task.monetaportal.childbuildingsavings.ChildBuildingSavingsUtils; +import cz.moneta.test.dsl.szrmock.SzrMockData; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.monetaportal.childbuildingsavings.ChildBuildingSavingsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.harness.annotations.Environment.*; + +@NonConcurrentTestScenario(name = "Regression tests for Child Building Savings") +public class ChildBuildingSavingsTests { + NonClient father; + NonClient mother; + NonClient youngerChild; + NonClient olderChild; + SzrMockData szrData; + Credentials ibCred; + Credentials credentials; + + @BeforeAll + public void beforeAll(Harness harness, @Key(banker) Credentials credentials) { + this.credentials = credentials; + ChildBuildingSavingsUtils utils = new ChildBuildingSavingsUtils(harness); + father = utils.createClientFatherData(); + mother = utils.createClientMotherData(father); + youngerChild = utils.createChildClientData(father, 0, 14); + olderChild = utils.createChildClientData(father, 15, 18); + szrData = SzrMockData.builder().client(father).build(); + ibCred = utils.createClient(szrData); + utils.createChildExist(olderChild); + harness.withIlods().setSegment("AML1_SAS", "M", father.birthNumber(), ""); + } + + @TestCase(name = "SS pro dítě - NTB 0 - 14 let", environments = {DEV, TST1, PPE}) + @JiraTestCase(id = "MSS-T1462", project = "MSS Development") + public void childBuildingSavings_NTB_young(Harness harness) { + doFLow(harness, true, youngerChild); + } + + @TestCase(name = "SS pro dítě - ETB 15-17 let", environments = {DEV, TST1, PPE}) + @JiraTestCase(id = "MSS-T1463", project = "MSS Development") + public void childBuildingSavings_ETB_old(Harness harness) { + doFLow(harness, false, olderChild); + } + + private void doFLow(Harness harness, boolean isLessThan15YearsOld, NonClient child) { + ChildBuildingSavingsTasks tasks = harness.tasks().monetaPortal().childBuildingSavingsTasks(); + NewIbTasks ibTasks = harness.tasks().newIb(); + harness.withNewIb().openLoginPage() + .then(ibTasks.loginWithUsernamePasswordAndDefaultMobKey(ibCred.getUsername(), ibCred.getPassword())) + .goToChildBuildingSavings(harness) + .then(tasks.fillCalculator("1000", "10", true)) + .then(tasks.logTestData(szrData.getCif(), child, father, mother)) + .then(tasks.fillConsents(isLessThan15YearsOld)) + .then(tasks.fillPersonalDetail()) + .then(tasks.fillPersonalAddress()) + .then(tasks.takeIdentity(child, isLessThan15YearsOld, mother.birthNumber(), father.birthNumber())) + .then(tasks.fillPermanentAddress(isLessThan15YearsOld)) + .then(tasks.fillAdditionalInformation(child.nationality())) + .then(tasks.fillAml()) + .then(tasks.fillPreContract()) + .then(tasks.fillContract()) + .then(tasks.processManualFraudCheckTask(child, isLessThan15YearsOld, credentials)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/creditdistribution/loans/ExpresLoanTests.java b/tests/src/test/java/cz/moneta/test/regression/creditdistribution/loans/ExpresLoanTests.java new file mode 100644 index 0000000..ef8865e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/creditdistribution/loans/ExpresLoanTests.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.creditdistribution.loans; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.LoanData; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + + +@TestScenario(name = "Expres loan regression tests") +public class ExpresLoanTests { + private BankaTasks bankaTasks; + private LoanData data; + + @BeforeEach + public void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + data = bankaTasks.expresTasks().expressLoanDataPreparationTasks().preBuildLoanData(); + bankaTasks.expresTasks().expressLoanDataPreparationTasks().prepareClient(data.getClient()); + } + + @TestCase(name = "Cloan Expres OM - verifikace 4 očí - happy flow") + @JiraTestCase(id = "CLOANS-T886", project = "Cloans") + public void expresLoanTest_happy(Harness harness, @Key(banker) Credentials credentials) { + data.setAmount(99000); + data.setTerm(72); + data.setInsurance(true); + data.setInsuranceName("Poj. schopnosti splácet 2025"); + NEP006_S001_ExpressScoringResultPage page = harness.withUfo().openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.expresTasks().expresLoanE2ETask(data)); + Assertions.assertEquals("Úvěr načerpán", page.getAppStat()); + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", bankaTasks.expresTasks().housingLoanLoggingTasks().getLogExpresDataString(data)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/creditdistribution/loans/HousingLoanTests.java b/tests/src/test/java/cz/moneta/test/regression/creditdistribution/loans/HousingLoanTests.java new file mode 100644 index 0000000..07c9549 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/creditdistribution/loans/HousingLoanTests.java @@ -0,0 +1,129 @@ +package cz.moneta.test.regression.creditdistribution.loans; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.HousingLoanData; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.LoanData; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisAllLoanObject; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisBLRateFixation; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisPropertyOwnershipType; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisUcelUveruExpres; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.expres.ExpresLoanDataPreparationTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; + +import java.util.List; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + + +@NonConcurrentTestScenario(name = "Housing loan (Expres Home) regression tests") +public class HousingLoanTests { + private BankaTasks bankaTasks; + private LoanData data; + + @BeforeEach + public void setUp(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + data = bankaTasks.expresTasks().expressLoanDataPreparationTasks().preBuildLoanData(); + bankaTasks.expresTasks().expressLoanDataPreparationTasks().prepareClient(data.getClient()); + } + + @TestCase(name = "Cloan Expres Home RT1 - automat, papírem, střednědobý, vlastní, výstavba") + @JiraTestCase(id = "CLOANS-T953", project = "Cloans") + public void housingLoanTest_01_Construction(Harness harness, @Key(banker) Credentials credentials) { + HousingLoanData hlData = data.getHousingLoanData(); + hlData.setRealityCustomAddress(false); + hlData.setRealityType(HCisAllLoanObject.FAMILY_HOUSE); + hlData.setOwnershipType(HCisPropertyOwnershipType.PERSONAL); + hlData.setPurposeType(HCisUcelUveruExpres.CONSTRUCTION); + hlData.setFixation(HCisBLRateFixation._5Y); + data.setAmount(75000); + data.setTerm(60); + ExpresLoanDataPreparationTasks preparationTasks = bankaTasks.expresTasks().expressLoanDataPreparationTasks(); + data.setCoApplicants(List.of(preparationTasks.createCoApplicantData())); + + preparationTasks.prepareCoApplicants(data.getCoApplicants()); + + NEP006_S001_ExpressScoringResultPage page = harness.withUfo().openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.expresTasks().housingLoanTasks().housingLoanE2ETask(data)); + + Assertions.assertEquals("Úvěr načerpán", page.getAppStat()); + } + + @TestCase(name = "Cloan Expres Home RT2 - automat, papírem, krátkodobý, rekonstrukce rodinného domu") + @JiraTestCase(id = "CLOANS-T954", project = "Cloans") + public void housingLoanTest_02_Reconstruction(Harness harness, @Key(banker) Credentials credentials) { + HousingLoanData hlData = data.getHousingLoanData(); + hlData.setRealityCustomAddress(false); + hlData.setRealityType(HCisAllLoanObject.FAMILY_HOUSE); + hlData.setOwnershipType(HCisPropertyOwnershipType.PERSONAL); + hlData.setPurposeType(HCisUcelUveruExpres.RECONSTRUCTION); + hlData.setFixation(HCisBLRateFixation._5Y); + data.setAmount(55000); + data.setTerm(12); + ExpresLoanDataPreparationTasks preparationTasks = bankaTasks.expresTasks().expressLoanDataPreparationTasks(); + data.setCoApplicants(List.of(preparationTasks.createCoApplicantData(), preparationTasks.createSecondCoApplicantData())); + + preparationTasks.prepareCoApplicants(data.getCoApplicants()); + + NEP006_S001_ExpressScoringResultPage page = harness.withUfo().openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.expresTasks().housingLoanTasks().housingLoanE2ETask(data)); + + Assertions.assertEquals("Úvěr načerpán", page.getAppStat()); + } + + @TestCase(name = "Cloan Expres Home RT6 - automat, papírem, střednědobý, výstavba rodinného domu s energ. úsporami") + @JiraTestCase(id = "CLOANS-T988", project = "Cloans") + public void housingLoanTest_03_ConstructionWithEnergySavings(Harness harness, @Key(banker) Credentials credentials) { + HousingLoanData hlData = data.getHousingLoanData(); + hlData.setRealityCustomAddress(false); + hlData.setRealityType(HCisAllLoanObject.FAMILY_HOUSE); + hlData.setOwnershipType(HCisPropertyOwnershipType.PERSONAL); + hlData.setPurposeType(HCisUcelUveruExpres.CONSTRUCTION_WITH_ENERGY_SAVINGS); + hlData.setFixation(HCisBLRateFixation._5Y); + data.setAmount(700000); + data.setTerm(300); + + NEP006_S001_ExpressScoringResultPage page = harness.withUfo().openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.expresTasks().housingLoanTasks().housingLoanE2ETask(data)); + + Assertions.assertEquals("Úvěr načerpán", page.getAppStat()); + } + + @TestCase(name = "CCloan Expres Home RT7 - automat, papírem, střednědobý, rekonstrukce bytu s energ. úsporami") + @JiraTestCase(id = "CLOANS-T989", project = "Cloans") + public void housingLoanTest_04_ReconstructionWithEnergySavings(Harness harness, @Key(banker) Credentials credentials) { + HousingLoanData hlData = data.getHousingLoanData(); + hlData.setRealityCustomAddress(false); + hlData.setRealityType(HCisAllLoanObject.APARTMENT); + hlData.setOwnershipType(HCisPropertyOwnershipType.PERSONAL); + hlData.setPurposeType(HCisUcelUveruExpres.RECONSTRUCTION_WITH_ENERGY_SAVINGS); + hlData.setFixation(HCisBLRateFixation._5Y); + data.setInsurance(true); + data.setInsuranceName("Poj. schopnosti splácet 2025 Home"); + data.setAmount(55000); + data.setTerm(12); + + NEP006_S001_ExpressScoringResultPage page = harness.withUfo().openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.expresTasks().housingLoanTasks().housingLoanE2ETask(data)); + + Assertions.assertEquals("Úvěr načerpán", page.getAppStat()); + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", bankaTasks.expresTasks().housingLoanLoggingTasks().getLogExpresHomeDataString(data)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/creditdistribution/package-info.java b/tests/src/test/java/cz/moneta/test/regression/creditdistribution/package-info.java new file mode 100644 index 0000000..2fdf8fa --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/creditdistribution/package-info.java @@ -0,0 +1,4 @@ +/** + * Value Stream: Credit Distribution + */ +package cz.moneta.test.regression.creditdistribution; \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/callcentrum/ApiCrtCrcContactRtdm.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/callcentrum/ApiCrtCrcContactRtdm.java new file mode 100644 index 0000000..4e823a4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/callcentrum/ApiCrtCrcContactRtdm.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.cvm.api.callcentrum; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API CRT_CRC_CONTACT_RTDM to WSO2 and assert response parameters") +public class ApiCrtCrcContactRtdm { + + @TestCase(name = "Call API CRT_CRC_CONTACT_RTDM to WSO2", environments = {TST1, PPE}) + public void postCrtCrcContactRtdm(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("callcentrum.cluster/CRT_CRC_CONTACT_RTDM/001", true, + "{\n" + + " \"TS_CIS_SUBJEKTU\": 1,\n" + + " \"HODNOTA_SUBJEKTU\": 461119129,\n" + + " \"JMENO\": \"Jiří\",\n" + + " \"PRIJMENI\": \"Postman\",\n" + + " \"TELEFON\": 776192982,\n" + + " \"TELEFON2\": null,\n" + + " \"TELEFON3\": null,\n" + + " \"TELEFON4\": null,\n" + + " \"TELEFON5\": null,\n" + + " \"EXC_CAMPAIGN_SK\": 10390,\n" + + " \"EXC_CAMPAIGN_CD\": \"2857\",\n" + + " \"EXC_CAMPAIGN_NM\": \"Nenačerpaná žádost s dokončením v IB, klient se souhlasem.\",\n" + + " \"EXC_CAMPAIGN_DESC\": \"Nenačerpání předschválené žádosti o Expres půjčku. Klient a může dokončit žádost v " + + "IB, se zaškrtnutím mkt. souhlasu.\",\n" + + " \"EXC_USER_BUSINESS\": \"GEMCB\",\n" + + " \"EXC_EVD_PURPOSE\": \"MARKETING\",\n" + + " \"EXC_COMM_SK\": null,\n" + + " \"EXC_COMM_CD\": null,\n" + + " \"EXC_COMM_NM\": null,\n" + + " \"EXC_COMM_DESC\": null,\n" + + " \"EXC_EXPORT_DTTM\": null,\n" + + " \"EXC_EXPORT_OPERATOR\": \"123066435\",\n" + + " \"EXC_EXECUTION_MODE\": 3,\n" + + " \"EXC_CRM_CHANNEL\": 201,\n" + + " \"EXC_ACTION_CODE\": \"XS_WEB_EXP_SCHV_NEC_DOKL_DOK_V_IB\",\n" + + " \"ONLY_RTDM_PHONES\": 1,\n" + + " \"POZNAMKA\": \"Rámec: 50000 Kč, Splatnost: 75 měsíců, Splátka: 1050 Kč, Úrok: 15.4 %, RPSN: 17.72 %, PPI: Ne," + + " Poplatek: 0 Kč\",\n" + + " \"SYNCHRON_TELEF\": 0\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("ID_TS_KAMPANE") + .andAssertPresent("ID_TS_KAMPANE_KLIENTI"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/callcentrum/ApiGetTlsCampOfferDetails.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/callcentrum/ApiGetTlsCampOfferDetails.java new file mode 100644 index 0000000..0f7bebf --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/callcentrum/ApiGetTlsCampOfferDetails.java @@ -0,0 +1,28 @@ +package cz.moneta.test.regression.cvm.api.callcentrum; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_TLS_CAMP_OFFER_DETAILS to WSO2 and assert response parameters") +public class ApiGetTlsCampOfferDetails { + + @TestCase(name = "Call API GET_TLS_CAMP_OFFER_DETAILS to WSO2", environments = {TST1, PPE}) + public void postGetTlsCampOfferDetails(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("callcentrum.cluster/GET_TLS_CAMP_OFFER_DETAILS/001", true, + "{\n" + + " \"ID_TS_HOVORY\": 14664479\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("ID_TS_KAMPANE_KLIENTI") + .andAssertPresent("ID_TS_KAMPANE") + .andAssertPresent("POCET_KONTAKTU") + .andAssertPresent("CELKOVY_POCET_VOLANI"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/callcentrum/ApiGetTlsLastReqContact.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/callcentrum/ApiGetTlsLastReqContact.java new file mode 100644 index 0000000..0f2cb66 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/callcentrum/ApiGetTlsLastReqContact.java @@ -0,0 +1,26 @@ +package cz.moneta.test.regression.cvm.api.callcentrum; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_TLS_LAST_REQ_CONTACT to WSO2 and assert response parameters") +public class ApiGetTlsLastReqContact { + + @TestCase(name = "Call API GET_TLS_LAST_REQ_CONTACT to WSO2", environments = {TST1, PPE}) + public void postGetTlsLastReqContact(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("callcentrum.cluster/GET_TLS_LAST_REQ_CONTACT/001", true, + "{\n" + + " \"ID_TS_CIS_SUBJEKTY\": 19,\n" + + " \"HODNOTA_SUBJEKT\": \"420775489589\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("DATUM_GENEROVANI"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBasicRegistersDuplicityEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBasicRegistersDuplicityEvent.java new file mode 100644 index 0000000..35ee541 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBasicRegistersDuplicityEvent.java @@ -0,0 +1,44 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Disabled; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API basic-registers-duplicity-event to WSO2 and assert response parameters") +@Disabled("Subscription does not exist") +public class ApiBasicRegistersDuplicityEvent { + + public static final String BASIC_REGISTERS_DUPLICITY_EVENT_PATH = "cvm.cluster/basic-registers-duplicity-event/1.0.0"; + + @TestCase(name = "Call API basic-registers-duplicity-event to WSO2", environments = {TST1, PPE}) + public void postBasicRegistersDuplicityEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + BASIC_REGISTERS_DUPLICITY_EVENT_PATH, false, + "{\n" + + " \"uniptKey\": \"34456666\",\n" + + " \"business\": \"GEMCB\",\n" + + " \"instPtSrcSysID\": \"ICB01\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBasicRegistersDuplicityTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBasicRegistersDuplicityTrigger.java new file mode 100644 index 0000000..dffc9cf --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBasicRegistersDuplicityTrigger.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API basic-registers-duplicity-trigger to WSO2 and assert response parameters") +public class ApiBasicRegistersDuplicityTrigger { + + public static final String BASIC_REGISTERS_DUPLICITY_TRIGGER_PATH = "cvm.cluster/basic-registers-duplicity-trigger/1.0.0"; + + @TestCase(name = "Call API basic-registers-duplicity-trigger to WSO2", environments = {TST1, PPE}) + public void postBasicRegistersDuplicityTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + BASIC_REGISTERS_DUPLICITY_TRIGGER_PATH, false, + "{\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"version\": 1,\n" + + " \"inputs\": {\n" + + " \"uniptKey\": \"34456666\",\n" + + " \"business\": \"GEMCB\",\n" + + " \"instPtSrcSysID\": \"ICB01\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"configurationEventName\": \"register-duplicity-rem2\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBranchesClientReservation.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBranchesClientReservation.java new file mode 100644 index 0000000..3fd2134 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBranchesClientReservation.java @@ -0,0 +1,38 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API branches-client-reservation to WSO2 and assert response parameters") +public class ApiBranchesClientReservation { + + public static final String BRANCHES_CLIENT_RESERVATION_PATH = "cvm.cluster/branches-client-reservation/1.0.0"; + + @TestCase(name = "Call API branches-client-reservation to WSO2", environments = {TST1, PPE}) + public void postBranchesClientReservation(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + BRANCHES_CLIENT_RESERVATION_PATH, false, + "{\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"version\": 1,\n" + + " \"inputs\": {\n" + + " \"POS_ID\": \"86009260\",\n" + + " \"PRODUCT_CATEGORY\": \"EXP\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBranchesClientsReservation.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBranchesClientsReservation.java new file mode 100644 index 0000000..5743fe7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiBranchesClientsReservation.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API BRANCHES_CLIENTS_RESERVATION to WSO2 and assert response parameters") +public class ApiBranchesClientsReservation { + + public static final String BRANCHES_CLIENTS_RESERVATION_PATH = "cvm.cluster/BRANCHES_CLIENTS_RESERVATION/001"; + + @TestCase(name = "Call API BRANCHES_CLIENTS_RESERVATION to WSO2", environments = {TST1, PPE}) + public void postBranchesClientsReservation(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + BRANCHES_CLIENTS_RESERVATION_PATH, false, + "{\n" + + " \"count\": 0,\n" + + " \"posId\": \"86009260\",\n" + + " \"productCategory\": \"EXP\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCblDigitalchannelsLoanApplicationLastStep.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCblDigitalchannelsLoanApplicationLastStep.java new file mode 100644 index 0000000..7cd9f58 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCblDigitalchannelsLoanApplicationLastStep.java @@ -0,0 +1,28 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API CBL_DIGITALCHANNELS_LOAN_APPLICATION_LAST_STEP to WSO2 and assert response parameters") +public class ApiCblDigitalchannelsLoanApplicationLastStep { + + @TestCase(name = "Call API CBL_DIGITALCHANNELS_LOAN_APPLICATION_LAST_STEP to WSO2", environments = {TST1, PPE}) + public void postCblDigitalchannelsLoanApplicationLastStep(Harness harness) { + JsonNode body = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/CBL_DIGITALCHANNELS_LOAN_APPLICATION_LAST_STEP/001", false, + "{\n" + + " \"userId\": " + harness.getConfig("cvm.client.userid") + "\n" + + "}") + .post() + .andAssertStatus(200) + .extract(""); + + Assertions.assertNotNull(body, "Not found output in response"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubIncomingMessagesEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubIncomingMessagesEvent.java new file mode 100644 index 0000000..898794b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubIncomingMessagesEvent.java @@ -0,0 +1,68 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API commhub-incoming-messages-event to WSO2 and assert response parameters") +public class ApiCommhubIncomingMessagesEvent { + + public static final String COMMHUB_INCOMING_MESSAGES_EVENT_PATH = "cvm.cluster/commhub-incoming-messages-event/1.0.0"; + + @TestCase(name = "Call API commhub-incoming-messages-event to WSO2", environments = {TST1, PPE}) + public void postCommhubIncomingMessagesEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromHubToCvm( + COMMHUB_INCOMING_MESSAGES_EVENT_PATH, false, + "{\n" + + " \"channelMessageId\": 302361894,\n" + + " \"sourceChannelMessageId\": 302361894,\n" + + " \"sourceCommunicationCode\": \"3005\",\n" + + " \"sourceOrganizationalUnit\": \"CRM_RETAIL\",\n" + + " \"messageStatus\": \"SENT\",\n" + + " \"communicationCode\": \"30069\",\n" + + " \"channel\": \"SMS\",\n" + + " \"messageSubject\": \"\",\n" + + " \"messageBody\": \"\",\n" + + " \"senderInfo\": \"MONETA\",\n" + + " \"replyTo\": \"string\",\n" + + " \"attachmentCount\": 0,\n" + + " \"partyId\": \"80013358219\",\n" + + " \"recipientAddress\": \"string\",\n" + + " \"telephoneNumber\": \"420605906050\",\n" + + " \"accountId\": \"string\",\n" + + " \"organizationalUnit\": \"string\",\n" + + " \"messageDataKey\": \"string\",\n" + + " \"messageDataValues\": \"string\",\n" + + " \"createDateTime\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"receivedDateTime\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"sourceReference\": \"string\",\n" + + " \"sourceCommunicationRecordId\": \"string\",\n" + + " \"sourceMessageId\": 0,\n" + + " \"sourceSendDateTime\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"sourcePersonalStateRegistrationNumber\": \"string\",\n" + + " \"sourceCompanyStateRegistrationNumber\": \"string\",\n" + + " \"sourceTelephoneNumber\": \"string\",\n" + + " \"sourceAddress\": \"string\",\n" + + " \"sourceChannel\": \"string\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubIncomingMessagesTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubIncomingMessagesTrigger.java new file mode 100644 index 0000000..3079088 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubIncomingMessagesTrigger.java @@ -0,0 +1,68 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API commhub-incoming-messages-trigger to WSO2 and assert response parameters") +public class ApiCommhubIncomingMessagesTrigger { + + public static final String COMMHUB_INCOMING_MESSAGES_TRIGGER_PATH = "cvm.cluster/commhub-incoming-messages-trigger/1.0.0"; + + @TestCase(name = "Call API commhub-incoming-messages-trigger to WSO2", environments = {TST1, PPE}) + public void postCommhubIncomingMessagesTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + COMMHUB_INCOMING_MESSAGES_TRIGGER_PATH, false, + "{\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"version\": 1,\n" + + " \"inputs\": {\n" + + " \"channelMessageId\": 302538558,\n" + + " \"sourceChannelMessageId\": 302538558,\n" + + " \"sourceCommunicationCode\": \"2150RTDM\",\n" + + " \"sourceOrganizationalUnit\": \"CRM_RETAIL\",\n" + + " \"messageStatus\": \"DELIVERED\",\n" + + " \"communicationCode\": \"12345\",\n" + + " \"channel\": \"SMS\",\n" + + " \"messageSubject\": \"\",\n" + + " \"messageBody\": \"Pujcka\",\n" + + " \"senderInfo\": \"MONETA\",\n" + + " \"replyTo\": \"\",\n" + + " \"attachmentCount\": 0,\n" + + " \"partyId\": \"34456666\",\n" + + " \"recipientAddress\": \"\",\n" + + " \"telephoneNumber\": \"734585306\",\n" + + " \"accountId\": \"string\",\n" + + " \"organizationalUnit\": \"CRM_RETAIL\",\n" + + " \"messageDataKey\": \"\",\n" + + " \"messageDataValues\": \"pujcka\",\n" + + " \"createDateTime\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"receivedDateTime\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"sourceReference\": \"\",\n" + + " \"sourceCommunicationRecordId\": \"\",\n" + + " \"sourceMessageId\": 1094146,\n" + + " \"sourceSendDateTime\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"sourcePersonalStateRegistrationNumber\": \"\",\n" + + " \"sourceCompanyStateRegistrationNumber\": \"\",\n" + + " \"sourceTelephoneNumber\": \"\",\n" + + " \"sourceAddress\": \"\",\n" + + " \"sourceChannel\": \"SMS\",\n" + + " \"configurationEventName\": \"commhub-incoming-messages-event\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubNotificationEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubNotificationEvent.java new file mode 100644 index 0000000..1f1ef9a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubNotificationEvent.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API commhub-notification-event to WSO2 and assert response parameters") +public class ApiCommhubNotificationEvent { + + public static final String COMMHUB_NOTIFICATION_EVENT_PATH = "cvm.cluster/commhub-notification-event/1.0.0"; + + @TestCase(name = "Call API commhub-notification-event to WSO2", environments = {TST1, PPE}) + public void postCommhubNotificationEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromOptimusHubToCvm( + COMMHUB_NOTIFICATION_EVENT_PATH, false, + "{\n" + + " \"eventId\": 302538606,\n" + + " \"channelMessageId\": 302538558,\n" + + " \"messageId\": 302538558,\n" + + " \"type\": \"SEND\",\n" + + " \"messageState\": \"SENT\",\n" + + " \"eventDateTime\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"channel\": \"SMS\",\n" + + " \"partyId\": 850980,\n" + + " \"communicationRecordId\": null,\n" + + " \"communicationCode\": \"2150RTDM\",\n" + + " \"costCenter\": \"A000\",\n" + + " \"organizationalUnit\": \"CRM_RETAIL\",\n" + + " \"senderInfo\": \"420736343000\",\n" + + " \"telephoneNumber\": \"420776132887\",\n" + + " \"eventDetailsValueType\": \"\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubNotificationTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubNotificationTrigger.java new file mode 100644 index 0000000..7581918 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiCommhubNotificationTrigger.java @@ -0,0 +1,57 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API commhub-notification-trigger to WSO2 and assert response parameters") +public class ApiCommhubNotificationTrigger { + + public static final String COMMHUB_NOTIFICATION_TRIGGER_PATH = "cvm.cluster/commhub-notification-trigger/1.0.0"; + + @TestCase(name = "Call API commhub-notification-trigger to WSO2", environments = {TST1, PPE}) + public void postCommhubNotificationTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + COMMHUB_NOTIFICATION_TRIGGER_PATH, false, + "{\n" + + " \"version\": 1,\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"inputs\": {\n" + + " \"configurationEventName\": \"commHubEvent/cvm\",\n" + + " \"eventId\": 302538606,\n" + + " \"channelMessageId\": 302538558,\n" + + " \"messageId\": 302538558,\n" + + " \"reference\": null,\n" + + " \"type\": \"DELIVER\",\n" + + " \"value\": null,\n" + + " \"messageState\": \"DELIVERED\",\n" + + " \"eventDateTime\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"channel\": \"EMAIL\",\n" + + " \"partyId\": null,\n" + + " \"communicationRecordId\": null,\n" + + " \"communicationCode\": \"2150RTDM\",\n" + + " \"costCenter\": \"3005\",\n" + + " \"organizationalUnit\": \"CRM_KOMERCNI\",\n" + + " \"senderInfo\": \"stavebko@moneta.cz\",\n" + + " \"emailAddress\": \"212625901@moneta.cz\",\n" + + " \"telephoneNumber\": null,\n" + + " \"deviceId\": null,\n" + + " \"eventDetailsValueType\": \"\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiInvestmentEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiInvestmentEvent.java new file mode 100644 index 0000000..f63a561 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiInvestmentEvent.java @@ -0,0 +1,46 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API digi-investment-event to WSO2 and assert response parameters") +public class ApiDigiInvestmentEvent { + + public static final String DIGI_INVESTMENT_EVENT_PATH = "cvm.cluster/digi-investment-event/1.0.0"; + + @TestCase(name = "Call API digi-investment-event to WSO2", environments = {TST1, PPE}) + public void postDigiInvestmentEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + DIGI_INVESTMENT_EVENT_PATH, false, + "{\n" + + " \"channelId\": \"15\",\n" + + " \"clientCif\": " + harness.getConfig("cvm.client.investment.cif") + ",\n" + + " \"clientInvestmentDeals\": 7797484,\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"investmentFrameworkAgreement\": true,\n" + + " \"questionaireClientProfile\": \"3\",\n" + + " \"screenId\": \"INVESTMENT_LIST\",\n" + + " \"userId\": " + harness.getConfig("cvm.client.userid") + "\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiInvestmentTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiInvestmentTrigger.java new file mode 100644 index 0000000..603f241 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiInvestmentTrigger.java @@ -0,0 +1,60 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API digi-investment-trigger to WSO2 and assert response parameters") +public class ApiDigiInvestmentTrigger { + + public static final String DIGI_INVESTMENT_TRIGGER_PATH = "cvm.cluster/digi-investment-trigger/1.0.0"; + + @TestCase(name = "Call API digi-investment-trigger to WSO2", environments = {TST1, PPE}) + public void postDigiInvestmentTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm(DIGI_INVESTMENT_TRIGGER_PATH, false, + "{\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"version\": 1,\n" + + " \"inputs\": {\n" + + " \"channelId\": \"17\",\n" + + " \"clientCif\": \"" + harness.getConfig("cvm.client.investment.cif") + "\",\n" + + " \"clientInvestmentDeals\": 73327,\n" + + " \"configurationEventName\": \"PUSH\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"investmentFrameworkAgreement\": true,\n" + + " \"questionaireClientProfile\": \"4\",\n" + + " \"screenId\": \"INVESTMENT_LIST\",\n" + + " \"userId\": " + harness.getConfig("cvm.client.userid") + "\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } + + @TestCase(name = "Call API digi-investment-trigger to WSO2 with bad request", environments = {TST1, PPE}) + public void postDigiInvestmentTriggerBadRequest(Harness harness) { + JsonNode message = harness.tasks().wso2().restRequest().prepareRequestFromCvm(DIGI_INVESTMENT_TRIGGER_PATH, false, + "{\n" + + "}") + .post() + .andAssertStatus(400) + .extract("message"); + + assertNotNull(message); + assertEquals("Unable to parse decision request for decisionId SBA_InvestmentTrigger.", message.asText()); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRepaymentPushEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRepaymentPushEvent.java new file mode 100644 index 0000000..17056ea --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRepaymentPushEvent.java @@ -0,0 +1,45 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API DIGI_REPAYMENT_PUSH_EVENT to WSO2 and assert response parameters") +public class ApiDigiRepaymentPushEvent { + + public static final String DIGI_REPAYMENT_PUSH_EVENT_PATH = "cvm.cluster/DIGI_REPAYMENT_PUSH_EVENT/001"; + + @TestCase(name = "Call API DIGI_REPAYMENT_PUSH_EVENT to WSO2", environments = {TST1, PPE}) + public void postDigiRepaymentPushEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + DIGI_REPAYMENT_PUSH_EVENT_PATH, false, + "{\n" + + " \"amountToPay\": \"0\",\n" + + " \"cif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"accountId\": \"0215887577\",\n" + + " \"wpsId\": \"EAPA_0000000192\",\n" + + " \"payOffReason\": \"X9\",\n" + + " \"eventType\": \"fullRepayment\",\n" + + " \"wpsState\": \"Canceled\",\n" + + " \"productType\": \"LOAN\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRepaymentPushTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRepaymentPushTrigger.java new file mode 100644 index 0000000..4ec4e69 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRepaymentPushTrigger.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API digi-repayment-push-trigger to WSO2 and assert response parameters") +public class ApiDigiRepaymentPushTrigger { + + public static final String DIGI_REPAYMENT_PUSH_TRIGGER_PATH = "cvm.cluster/digi-repayment-push-trigger/1.0.0"; + + @TestCase(name = "Call API digi-repayment-push-trigger to WSO2", environments = {TST1, PPE}) + public void postDigiRepaymentPushTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm(DIGI_REPAYMENT_PUSH_TRIGGER_PATH, false, + "{\n" + + " \"version\": 1,\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"inputs\": {\n" + + " \"configurationEventName\": \"repayment/push\",\n" + + " \"eventType\": \"fullRepayment\",\n" + + " \"wpsId\": \"EAPA_0000000191\",\n" + + " \"cif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"accountId\": \"0215883461\",\n" + + " \"amountToPay\": 0,\n" + + " \"payOffReason\": \"X9\",\n" + + " \"productType\": \"LOAN\",\n" + + " \"wpsState\": \"Canceled\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRetentionEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRetentionEvent.java new file mode 100644 index 0000000..6906e1d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRetentionEvent.java @@ -0,0 +1,45 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API digi-retention-event to WSO2 and assert response parameters") +public class ApiDigiRetentionEvent { + + public static final String DIGI_RETENTION_EVENT_PATH = "cvm.cluster/digi-retention-event/1.0.0"; + + @TestCase(name = "Call API digi-retention-event to WSO2", environments = {TST1, PPE}) + public void postDigiRetentionEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + DIGI_RETENTION_EVENT_PATH, false, + "{\n" + + " \"accountId\": \"0215887577\",\n" + + " \"amountToPay\": 122896,\n" + + " \"cblSessionId\": \"" + UUID.randomUUID() + "\",\n" + + " \"cif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"eventType\": \"fullRepayment\",\n" + + " \"productType\": \"LOAN\",\n" + + " \"screenId\": \"SB:LOANS:REPAYMENT:SIGN\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRetentionTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRetentionTrigger.java new file mode 100644 index 0000000..4b77118 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiRetentionTrigger.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API digi-retention-trigger to WSO2 and assert response parameters") +public class ApiDigiRetentionTrigger { + + public static final String DIGI_RETENTION_TRIGGER_PATH = "cvm.cluster/digi-retention-trigger/1.0.0"; + + @TestCase(name = "Call API digi-retention-trigger to WSO2", environments = {TST1, PPE}) + public void postDigiRetentionTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm(DIGI_RETENTION_TRIGGER_PATH, false, + "{\n" + + " \"version\": 1,\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"inputs\": {\n" + + " \"configurationEventName\": \"retention/CC\",\n" + + " \"eventType\": \"fullRepayment\",\n" + + " \"cblSessionId\": \"" + UUID.randomUUID() + "\",\n" + + " \"channel\": null,\n" + + " \"cif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"accountId\": \"0215887577\",\n" + + " \"amountToPay\": 123286,\n" + + " \"payOffReason\": null,\n" + + " \"productType\": \"LOAN\",\n" + + " \"wpsId\": \"EAPA_0000000192\",\n" + + " \"screenId\": \"SB:LOANS:REPAYMENT:VICTORY\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiUdcEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiUdcEvent.java new file mode 100644 index 0000000..6855f87 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiUdcEvent.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API digi-udc-event to WSO2 and assert response parameters") +public class ApiDigiUdcEvent { + + public static final String DIGI_UDC_EVENT_PATH = "cvm.cluster/digi-udc-event/1.0.0"; + + @TestCase(name = "Call API digi-udc-event to WSO2", environments = {TST1, PPE}) + public void postDigiUdcEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + DIGI_UDC_EVENT_PATH, false, + "{\n" + + " \"applicationKey\": 68153896,\n" + + " \"channelId\": \"SB\",\n" + + " \"clientCif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"consolidationInstalment\": 3173.23,\n" + + " \"consolidationRpsn\": 5.63,\n" + + " \"consolidationTotalLoanAmount\": 246000,\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"ppiFlag\": 0,\n" + + " \"screenId\": \"DOCUMENTS_VERIFIED\",\n" + + " \"userId\": " + harness.getConfig("cvm.client.userid") + "\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiUdcTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiUdcTrigger.java new file mode 100644 index 0000000..eab3b09 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiDigiUdcTrigger.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API digi-udc-trigger to WSO2 and assert response parameters") +public class ApiDigiUdcTrigger { + + public static final String DIGI_UDC_TRIGGER_PATH = "cvm.cluster/digi-udc-trigger/1.0.0"; + + @TestCase(name = "Call API digi-udc-trigger to WSO2", environments = {TST1, PPE}) + public void postDigiRetentionTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm(DIGI_UDC_TRIGGER_PATH, false, + "{\n" + + " \"version\": 1,\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"inputs\": {\n" + + " \"configurationEventName\": \"SCORING/CC\",\n" + + " \"channelId\": \"IB\",\n" + + " \"clientCif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"applicationKey\": 68149725,\n" + + " \"consolidationTotalLoanAmount\": 212000,\n" + + " \"consolidationInstalment\": 3018.57,\n" + + " \"consolidationRpsn\": 8.5,\n" + + " \"ppiFlag\": 0,\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"screenId\": \"SCORING\",\n" + + " \"userId\": " + harness.getConfig("cvm.client.userid") + "\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiErrorNotFoundTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiErrorNotFoundTrigger.java new file mode 100644 index 0000000..900fce8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiErrorNotFoundTrigger.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API error-not-found-trigger to WSO2 and assert response parameters") +public class ApiErrorNotFoundTrigger { + + public static final String ERROR_NOT_FOUND_TRIGGER_PATH = "cvm.cluster/error-not-found-trigger/1.0.0"; + + @TestCase(name = "Call API error-not-found-trigger to WSO2", environments = {TST1, PPE}) + public void postErrorNotFoundTrigger(Harness harness) { + JsonNode message = harness.tasks().wso2().restRequest().prepareRequestFromCvm(ERROR_NOT_FOUND_TRIGGER_PATH, false, + "{\n" + + " \"version\": 1,\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"inputs\": {\n" + + " }\n" + + "}") + .post() + .andAssertStatus(404) + .extract("message"); + + assertNotNull(message); + assertEquals("No decision definition with id \"ErrorNotFoundTrigger\" found. Please ensure a decision flow associated with the " + + "decision definition \"ErrorNotFoundTrigger\" is active.", message.asText()); + } + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbGetBanners.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbGetBanners.java new file mode 100644 index 0000000..49c3a0d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbGetBanners.java @@ -0,0 +1,41 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API ib-get-banners to WSO2 and assert response parameters") +public class ApiIbGetBanners { + + @TestCase(name = "Call API ib-get-banners to WSO2", environments = {TST1, PPE}) + public void postIbGetBanners(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + "cvm.cluster/decision/ib-get-banners/1.0.0", false, + "{\n" + + " \"version\": 1,\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"inputs\": {\n" + + " \"cif\": \"9001179954\",\n" + + " \"userId\": 123,\n" + + " \"channelId\": \"IBS\",\n" + + " \"language\": \"CS\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + + JsonNode count = outputs.findValue("count"); + Assertions.assertTrue(count != null && count.asInt() >= 0, "Not found count with value >= 0"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbLoanNtcEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbLoanNtcEvent.java new file mode 100644 index 0000000..69a0e0f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbLoanNtcEvent.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API ib-loan-ntc-event to WSO2 and assert response parameters") +public class ApiIbLoanNtcEvent { + + public static final String IB_LOAN_NTC_EVENT_PATH = "cvm.cluster/ib-loan-ntc-event/1.0.0"; + + @TestCase(name = "Call API ib-loan-ntc-event to WSO2", environments = {TST1, PPE}) + public void postIbLoanNtcEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + IB_LOAN_NTC_EVENT_PATH, false, + "{\n" + + " \"stateName\": \"CONTRACT_SIGNED\",\n" + + " \"transactionId\": \"2\",\n" + + " \"phoneNumber\": \"666666666\",\n" + + " \"loanAmount\": 10000.50,\n" + + " \"installmentCount\": 50,\n" + + " \"insuranceFlag\": true,\n" + + " \"interestRate\": 9.99,\n" + + " \"emailAddress\": \"email\",\n" + + " \"businessName\": \"name\",\n" + + " \"firstName\": null,\n" + + " \"surname\": null,\n" + + " \"ico\": \"123456\",\n" + + " \"appKey\": \"xxx\",\n" + + " \"appDate\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"channel\": \"IB\",\n" + + " \"cif\": \"" + harness.getConfig("cvm.client.cif") + "\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbLoanNtcTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbLoanNtcTrigger.java new file mode 100644 index 0000000..8e4f6b2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbLoanNtcTrigger.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API ib-loan-ntc-trigger to WSO2 and assert response parameters") +public class ApiIbLoanNtcTrigger { + + public static final String IB_LOAN_NTC_TRIGGER_PATH = "cvm.cluster/ib-loan-ntc-trigger/1.0.0"; + + @TestCase(name = "Call API ib-loan-ntc-trigger to WSO2", environments = {TST1, PPE}) + public void postIbLoanNtcTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm(IB_LOAN_NTC_TRIGGER_PATH, false, + "{\n" + + " \"version\": 1,\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"inputs\": {\n" + + " \"configurationEventName\": \"CONTRACT_SIGNED\",\n" + + " \"stateName\": \"CONTRACT_SIGNED\",\n" + + " \"transactionId\": \"2\",\n" + + " \"phoneNumber\": \"666666666\",\n" + + " \"loanAmount\": 10000.50,\n" + + " \"installmentCount\": 50,\n" + + " \"insuranceFlag\": true,\n" + + " \"interestRate\": 9.99,\n" + + " \"emailAddress\": \"email\",\n" + + " \"businessName\": \"name\",\n" + + " \"firstName\": null,\n" + + " \"surname\": null,\n" + + " \"ico\": \"123456\",\n" + + " \"appKey\": \"xxx\",\n" + + " \"appDate\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"channel\": \"IB\",\n" + + " \"cif\": \"" + harness.getConfig("cvm.client.cif") + "\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbSetResponse.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbSetResponse.java new file mode 100644 index 0000000..576f44d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbSetResponse.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API ib-set-response to WSO2 and assert response parameters") +public class ApiIbSetResponse { + + @TestCase(name = "Call API ib-set-response to WSO2", environments = {TST1, PPE}) + public void postIbSetResponse(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + "cvm.cluster/decision/ib-set-response/1.0.0", false, + "{\n" + + " \"version\": 1,\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"inputs\": {\n" + + " \"cif\": \"9000949039\",\n" + + " \"userId\": 1234,\n" + + " \"channelId\": \"IBS\",\n" + + " \"actionType\": \"VIEW\",\n" + + " \"bannerId\": [\n" + + " 2000002\n" + + " ],\n" + + " \"locationId\": [\n" + + " 2000001\n" + + " ],\n" + + " \"treatmentTrackingCd\": [\n" + + " \"389004\"\n" + + " ],\n" + + " \"responseTrackingCd\": \"111770101\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbUdcCalcEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbUdcCalcEvent.java new file mode 100644 index 0000000..8d4c7f2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbUdcCalcEvent.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API ib-udc-calc-event to WSO2 and assert response parameters") +public class ApiIbUdcCalcEvent { + + @TestCase(name = "Call API ib-udc-calc-event to WSO2", environments = {TST1, PPE}) + @Disabled + public void postIbUdcCalcEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + "cvm.cluster/ib-udc-calc-event/1.0.0", false, + "{\n" + + " \"channelId\": \"IB\",\n" + + " \"clientCif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"userId\": " + harness.getConfig("cvm.client.userid") + ",\n" + + " \"consolidationTotalLoanAmount\": 123.45,\n" + + " \"consolidationInstalment\": 20.36,\n" + + " \"consolidationInstalmentLength\": 12,\n" + + " \"consolidationRpsn\": 9.99,\n" + + " \"financialObligations\": [\n" + + " {\n" + + " \"obligationAmount\": 1234,\n" + + " \"obligationType\": \"CREDIT_CARD\"\n" + + " }\n" + + " ],\n" + + " \"formLastStepPage\": \"step3\",\n" + + " \"userNotifiedAlready\": false\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(body, "Not found output in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbUdcCalcTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbUdcCalcTrigger.java new file mode 100644 index 0000000..0355cfe --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiIbUdcCalcTrigger.java @@ -0,0 +1,53 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API ib-udc-calc-trigger to WSO2 and assert response parameters") +public class ApiIbUdcCalcTrigger { + + @TestCase(name = "Call API ib-udc-calc-trigger to WSO2", environments = {TST1, PPE}) + @Disabled + public void postIbUdcCalcTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/ib-udc-calc-trigger/1.0.0", false, + "{\n" + + " \"version\": 1,\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"inputs\": {\n" + + " \"clientCif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"userId\": " + harness.getConfig("cvm.client.userid") + ",\n" + + " \"channelId\": \"IB\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"consolidationTotalLoanAmount\": 456.45,\n" + + " \"consolidationInstalment\": 21.36,\n" + + " \"consolidationInstalmentLength\": 24,\n" + + " \"consolidationRpsn\": 7.99,\n" + + " \"financialObligationAmounts\": [\n" + + " 1235\n" + + " ],\n" + + " \"financialObligationTypes\": [\n" + + " \"CREDIT_CARD\"\n" + + " ],\n" + + " \"formLastStepPage\": \"step1\"\n" + + " }\n" + + "}\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRetentionMortgagesEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRetentionMortgagesEvent.java new file mode 100644 index 0000000..2f02995 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRetentionMortgagesEvent.java @@ -0,0 +1,57 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API retention-mortgages-event to WSO2 and assert response parameters") +public class ApiRetentionMortgagesEvent { + + public static final String RETENTION_MORTGAGES_EVENT_PATH = "cvm.cluster/retention-mortgages-event/1.0.0"; + + @TestCase(name = "Call API retention-mortgages-event to WSO2", environments = {TST1, PPE}) + public void postRetentionMortgagesEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromMortgagesToCvm( + RETENTION_MORTGAGES_EVENT_PATH, false, + "{\n" + + " \"accountActive\": 2,\n" + + " \"amountOutstandingPrincipal\": 968887,\n" + + " \"cif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"contractId\": \"HY19022100\",\n" + + " \"currentLtv\": 48.66,\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"fixation\": 0,\n" + + " \"interestRate\": 3.5,\n" + + " \"numberInstalmentsPaid\": 20,\n" + + " \"offsetFlag\": true,\n" + + " \"ppiFlag\": false,\n" + + " \"productType\": \"PRU\\u017dN\\u00c1 FIXN\\u00cd HYPOT\\u00c9KA\",\n" + + " \"realEstateStateFlag\": null,\n" + + " \"redemptionAccountType\": \"TU\",\n" + + " \"remainingRepaymentTime\": 284,\n" + + " \"retentionFlag\": false,\n" + + " \"retentionInstallmentAmount\": 4448.26,\n" + + " \"retentionInterestRate\": 2.34,\n" + + " \"uniPtKey\": \"" + harness.getConfig("cvm.client.uniptkey") + "\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRetentionMortgagesTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRetentionMortgagesTrigger.java new file mode 100644 index 0000000..fce02dd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRetentionMortgagesTrigger.java @@ -0,0 +1,57 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API retention-mortgages-trigger to WSO2 and assert response parameters") +public class ApiRetentionMortgagesTrigger { + + public static final String RETENTION_MORTGAGES_TRIGGER_PATH = "cvm.cluster/retention-mortgages-trigger/1.0.0"; + + @TestCase(name = "Call API retention-mortgages-trigger to WSO2", environments = {TST1, PPE}) + public void postRetentionMortgagesTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm(RETENTION_MORTGAGES_TRIGGER_PATH, false, + "{\n" + + " \"version\": 1,\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"inputs\": {\n" + + " \"configurationEventName\": \"CC\",\n" + + " \"uniPtKey\": \"" + harness.getConfig("cvm.client.uniptkey") + "\",\n" + + " \"contractId\": \"HY17008500\",\n" + + " \"retentionFlag\": false,\n" + + " \"realEstateStateFlag\": null,\n" + + " \"redemptionAccountType\": \"BU\",\n" + + " \"numberInstalmentsPaid\": 54,\n" + + " \"remainingRepaymentTime\": 186,\n" + + " \"cif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"fixation\": 0,\n" + + " \"interestRate\": 3.69,\n" + + " \"ppiFlag\": false,\n" + + " \"productType\": \"PRUŽNÁ FIXNÍ HYPOTÉKA\",\n" + + " \"currentLtv\": 28.04,\n" + + " \"amountOutstandingPrincipal\": 831132,\n" + + " \"accountActive\": null,\n" + + " \"offsetFlag\": true,\n" + + " \"retentionInstallmentAmount\": 5348.3,\n" + + " \"retentionInterestRate\": 2.34,\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdDigitalchannelsLoanApplicationStarted.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdDigitalchannelsLoanApplicationStarted.java new file mode 100644 index 0000000..6764b35 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdDigitalchannelsLoanApplicationStarted.java @@ -0,0 +1,70 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbGetDataTasks; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbVerificationTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API RTRD_DIGITALCHANNELS_LOAN_APPLICATION_STARTED to WSO2 and assert response parameters") +public class ApiRtrdDigitalchannelsLoanApplicationStarted { + + @TestCase(name = "Call API RTRD_DIGITALCHANNELS_LOAN_APPLICATION_STARTED to WSO2", environments = {TST1, PPE}) + public void postRtrdDigitalchannelsLoanApplicationStarted(Harness harness) throws InterruptedException { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/RTRD_DIGITALCHANNELS_LOAN_APPLICATION_STARTED/001", false, + "{\n" + + " \"applicationEditFormState\": \"hallo\",\n" + + " \"applicationKey\": " + harness.getConfig("cvm.application.key") + ",\n" + + " \"applicationLoanAmount\": 25000,\n" + + " \"channelId\": \"IB\",\n" + + " \"clientCif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"userId\": " + harness.getConfig("cvm.client.userid") + "\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(body, "Not found output in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + final String activityId = activityIds.get(0).toString(); + + Thread.sleep(2000); // Delay to finish async code + + OnlineDbGetDataTasks onlineDbGetDataTasks = harness.tasks().cvm().onlineDbGetData(); + Result onlineDbRecords = onlineDbGetDataTasks.getPlannedTasks( + OnlineDbGetDataTasks.PAYLOAD_ATTRIBUTE_NAME_ACTIVITY_ID, activityId); + Assertions.assertEquals(1, onlineDbRecords.size(), "Should plan one event"); + final Record onlineDbRecord = onlineDbRecords.get(0); + + OnlineDbVerificationTasks onlineDbVerificationTasks = harness.tasks().cvm().onlineDbVerification(); + onlineDbVerificationTasks.assertOnlineDbRecordIsValid(onlineDbRecord, "digitalChannelsLoanApplicationStartedTask", + "cvm.cluster/IB_EXP_APP/1.0.0", 40 * 60, + data -> Assertions.assertEquals(25000, data.get("applicationLoanAmount").getAsInt(), "Event data should contain correct data")); + + Result triggerLogRecords = onlineDbGetDataTasks.getTriggerLogs( + "RTRD_DIGITALCHANNELS_LOAN_APPLICATION_STARTED", activityId); + Assertions.assertEquals(1, triggerLogRecords.size(), "Should log one record"); + + onlineDbVerificationTasks.assertTriggerLogRecordIsPlanned(triggerLogRecords.get(0), onlineDbRecord, + "cvm.cluster/IB_EXP_APP/1.0.0", + logData -> Assertions.assertEquals("{\"CIF\":\"" + harness.getConfig("cvm.client.cif") + "\"," + + "\"USER_ID\":\"" + harness.getConfig("cvm.client.userid") + "\"}", logData, "Planned call with correct additional data should be logged")); + + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdDigitalchannelsLoanCalculatorCalculation.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdDigitalchannelsLoanCalculatorCalculation.java new file mode 100644 index 0000000..704aa04 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdDigitalchannelsLoanCalculatorCalculation.java @@ -0,0 +1,72 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbGetDataTasks; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbVerificationTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API RTRD_DIGITALCHANNELS_LOAN_CALCULATOR_CALCULATION to WSO2 and assert response parameters") +public class ApiRtrdDigitalchannelsLoanCalculatorCalculation { + + @TestCase(name = "Call API RTRD_DIGITALCHANNELS_LOAN_CALCULATOR_CALCULATION to WSO2", environments = {TST1, PPE}) + public void postRtrdDigitalchannelsLoanCalculatorCalculation(Harness harness) throws InterruptedException { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/RTRD_DIGITALCHANNELS_LOAN_CALCULATOR_CALCULATION/001", false, + "{\n" + + " \"calculationInstalment\": 5000,\n" + + " \"calculationInstalmentLength\": 24,\n" + + " \"calculationLoanAmount\": 100000,\n" + + " \"calculationRpsn\": 4,\n" + + " \"channelId\": \"IB\",\n" + + " \"clientCif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"userId\": " + harness.getConfig("cvm.client.userid") + "\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(body, "Not found output in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + final String activityId = activityIds.get(0).toString(); + + Thread.sleep(2000); // Delay to finish async code + + OnlineDbGetDataTasks onlineDbGetDataTasks = harness.tasks().cvm().onlineDbGetData(); + Result onlineDbRecords = onlineDbGetDataTasks.getPlannedTasks( + OnlineDbGetDataTasks.PAYLOAD_ATTRIBUTE_NAME_ACTIVITY_ID, activityId); + Assertions.assertEquals(1, onlineDbRecords.size(), "Should plan one event"); + final Record onlineDbRecord = onlineDbRecords.get(0); + + OnlineDbVerificationTasks onlineDbVerificationTasks = harness.tasks().cvm().onlineDbVerification(); + onlineDbVerificationTasks.assertOnlineDbRecordIsValid(onlineDbRecord, "digitalChannelsCalculatorCalculationTask", + "cvm.cluster/IB_EXP_CALC/1.0.0", 40 * 60, + data -> Assertions.assertEquals(100000, data.get("calculationLoanAmount").getAsInt(), "Event data should contain correct data")); + + Result triggerLogRecords = onlineDbGetDataTasks.getTriggerLogs( + "RTRD_DIGITALCHANNELS_LOAN_CALCULATOR_CALCULATION", activityId); + Assertions.assertEquals(1, triggerLogRecords.size(), "Should log one record"); + + onlineDbVerificationTasks.assertTriggerLogRecordIsPlanned(triggerLogRecords.get(0), onlineDbRecord, + "cvm.cluster/IB_EXP_CALC/1.0.0", + logData -> Assertions.assertEquals("{\"CIF\":\"" + harness.getConfig("cvm.client.cif") + "\"," + + "\"USER_ID\":\"" + harness.getConfig("cvm.client.userid") + "\"}", logData, + "Planned call with correct additional data should be logged")); + + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdHello.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdHello.java new file mode 100644 index 0000000..a5e5dde --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdHello.java @@ -0,0 +1,30 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API RTRD_HELLO to WSO2 and assert response parameters") +public class ApiRtrdHello { + + @TestCase(name = "Call API RTRD_HELLO to WSO2", environments = {TST1, PPE}) + public void getRtrdDigitalchannelsLoanCalculatorCalculation(Harness harness) { + String tokenCvmSrt = harness.tasks().wso2().authorization().getToken("CVM_SRT"); + + JsonNode message = harness.withWso2() + .prepareRequest() + .withPath("/t/cvm.cluster/rtrd/hello/001") + .withHeader("Authorization", tokenCvmSrt) + .withHeader("Accept", "application/json") + .get() + .andAssertStatus(200) + .extract("message"); + + Assertions.assertTrue(message != null && "Hello from RTRD".equals(message.textValue()), "Not found hello message output in response"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdOdsConsentsChange.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdOdsConsentsChange.java new file mode 100644 index 0000000..ec4c121 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdOdsConsentsChange.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API RTRD_ODS_CONSENTS_CHANGE to WSO2 and assert response parameters") +public class ApiRtrdOdsConsentsChange { + + @TestCase(name = "Call API RTRD_ODS_CONSENTS_CHANGE to WSO2", environments = {TST1, PPE}) + public void postRtrdOdsConsentsChange(Harness harness) throws InterruptedException { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/RTRD_ODS_CONSENTS_CHANGE/001", false, + "{\n" + + " \"uniPtKeyList\": [\n" + + " \"" + harness.getConfig("cvm.client.odsconsentschange.uniptkey") + "\"\n" + + " ]\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(body, "Not found output in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + + Thread.sleep(6000); // Delay to finish async code + + Result onlineDbRecords = harness.tasks().cvm().onlineDbGetData() + .getOnlineData("ODS_GET_EVDCNST_DATA", activityIds.get(0).toString()); + Assertions.assertTrue(onlineDbRecords.size() > 10, "Should create at least 10 records in OnlineDB, but created only " + onlineDbRecords.size()); + Assertions.assertEquals(activityIds.get(0).toString() + ".1", onlineDbRecords.get(0).getValue("MSG_ID"), "First record should contain activityId.1 as message id"); + Assertions.assertEquals("UNI_PT_KEY", onlineDbRecords.get(0).getValue("NAME"), "First record should contain UNI_PT_KEY attribute name"); + Assertions.assertEquals(harness.getConfig("cvm.client.odsconsentschange.uniptkey"), onlineDbRecords.get(0).getValue("VAL"), "First record should contain requested client uni pt key as attribute value"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdOdsGetCardDebitRejectedTransactionsAtm.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdOdsGetCardDebitRejectedTransactionsAtm.java new file mode 100644 index 0000000..b622e43 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdOdsGetCardDebitRejectedTransactionsAtm.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.time.LocalDateTime; +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API RTRD_ODS_GET_CARD_DEBIT_REJECTED_TRANSACTIONS_ATM to WSO2 and assert response parameters") +public class ApiRtrdOdsGetCardDebitRejectedTransactionsAtm { + + public static final String RTRD_ODS_GET_CARD_DEBIT_REJECTED_TRANSACTIONS_ATM_PATH = "cvm.cluster" + + "/RTRD_ODS_GET_CARD_DEBIT_REJECTED_TRANSACTIONS_ATM/001"; + + @TestCase(name = "Call API RTRD_ODS_GET_CARD_DEBIT_REJECTED_TRANSACTIONS_ATM to WSO2", environments = {TST1, PPE}) + public void postRtrdOdsGetCardDebitRejectedTransactionsAtm(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + RTRD_ODS_GET_CARD_DEBIT_REJECTED_TRANSACTIONS_ATM_PATH, false, + "{\n" + + " \"transactionDataList\": [\n" + + " {\n" + + " \"accountNumber\": \"\",\n" + + " \"authorizationDate\": \"" + LocalDateTime.now() + "\",\n" + + " \"cardNumber\": \"5351221100009987\",\n" + + " \"rejectReason\": \"284\",\n" + + " \"merchantCategory\": \"6011\",\n" + + " \"transactionAmount\": 60000\n" + + " }\n" + + " ]\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + final String activityId = activityIds.get(0).toString(); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdOdsInfolimitSet.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdOdsInfolimitSet.java new file mode 100644 index 0000000..75418a0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdOdsInfolimitSet.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API RTRD_ODS_INFOLIMIT_SET to WSO2 and assert response parameters") +public class ApiRtrdOdsInfolimitSet { + + @TestCase(name = "Call API RTRD_ODS_INFOLIMIT_SET to WSO2", environments = {TST1, PPE}) + public void postRtrdOdsInfolimitSet(Harness harness) throws InterruptedException { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/RTRD_ODS_INFOLIMIT_SET/001", false, + "{\n" + + " \"uniPtKeyList\": [\n" + + " \"" + harness.getConfig("cvm.client.infolimit.uniptkey") + "\"\n" + + " ]\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(body, "Not found output in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + + Thread.sleep(5000); // Delay to finish async code + + Result onlineDbRecords = harness.tasks().cvm().onlineDbGetData() + .getOnlineData("GET_UNIPARTY_INFOLIMIT_VAR_DATA", activityIds.get(0).toString()); + Assertions.assertTrue(onlineDbRecords.size() >= 10, "Should create at least 10 records in OnlineDB"); + Assertions.assertEquals(activityIds.get(0).toString() + ".1", onlineDbRecords.get(0).getValue("MSG_ID"), "First record should contain activityId.1 as message id"); + Assertions.assertEquals("UNI_PT_KEY", onlineDbRecords.get(0).getValue("NAME"), "First record should contain UNI_PT_KEY attribute name"); + Assertions.assertEquals(harness.getConfig("cvm.client.infolimit.uniptkey"), onlineDbRecords.get(0).getValue("VAL"), "First record should contain requested client uni pt key as attribute value"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdSaveAppSaveRest.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdSaveAppSaveRest.java new file mode 100644 index 0000000..03d8af8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdSaveAppSaveRest.java @@ -0,0 +1,57 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import java.time.Instant; +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API RTRD_SAVE_APP_SAVE_REST to WSO2 and assert response parameters") +public class ApiRtrdSaveAppSaveRest { + + @TestCase(name = "Call API RTRD_SAVE_APP_SAVE_REST to WSO2", environments = {TST1, PPE}) + public void postRtrdSaveAppSaveRest(Harness harness) throws InterruptedException { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/RTRD_SAVE_APP_SAVE_REST/001", false, + "{ \"birthNumber\": \"string\",\n" + + " \"changeDate\": \"" + Instant.now() + "\",\n" + + " \"channelId\": \"SBA\",\n" + + " \"cif\": \"string\",\n" + + " \"ico\": \"string\",\n" + + " \"key\": 76589,\n" + + " \"productClass\": \"50\",\n" + + " \"signDate\": \"" + Instant.now() + "\",\n" + + " \"state\": \"9\",\n" + + " \"subtypeId\": \"Sc\",\n" + + " \"typeId\": \"Sc\",\n" + + " \"id\": \"12\",\n" + + " \"loanAmount\": 0,\n" + + " \"uniPtKey\": \"78279459666\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode result = response.extract("result"); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(result, "Not found result in response"); + Assertions.assertEquals("OK", result.textValue(), "Not found OK in result in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + + Thread.sleep(2000); // Delay to finish async code + + Result onlineDbRecords = harness.tasks().cvm().onlineDbGetData().getOnlineData( + "RTRD_NAS_APP_SAVE", activityIds.get(0).toString()); + Assertions.assertEquals(14, onlineDbRecords.size(), "Should create 14 records in OnlineDB"); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdSmsResponse.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdSmsResponse.java new file mode 100644 index 0000000..e83c18a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdSmsResponse.java @@ -0,0 +1,37 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API RTRD_SMS_Response to WSO2 and assert response parameters") +public class ApiRtrdSmsResponse { + + @TestCase(name = "Call API RTRD_SMS_Response to WSO2", environments = {TST1, PPE}) + public void postRtrdSmsResponse(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/RTRD_SMS_Response/001", false, + "{\n" + + " \"phoneNumber\": \"123454321\",\n" + + " \"smsText\": \"zprava dne4\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode result = response.extract("result"); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(result, "Not found result in response"); + Assertions.assertEquals("OK", result.textValue(), "Not found OK in result in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdWebTriggerExpres.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdWebTriggerExpres.java new file mode 100644 index 0000000..3c1bb1c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiRtrdWebTriggerExpres.java @@ -0,0 +1,127 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbGetDataTasks; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbVerificationTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import java.util.List; +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API RTRD_WEB_TRIGGER_Expres to WSO2 and assert response parameters") +public class ApiRtrdWebTriggerExpres { + + @TestCase(name = "Call API RTRD_WEB_TRIGGER_Expres to WSO2", environments = {TST1, PPE}) + public void postRtrdWebTriggerExpres(Harness harness) throws InterruptedException { + UUID processCacheCode = UUID.randomUUID(); + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/RTRD_WEB_TRIGGER_Expres/001", false, + "{\n" + + " \"PROCESS_CACHECODE\": \"" + processCacheCode + "\",\n" + + " \"PROCESS_LASTTRACKER\": \"process.tracker.expressAppCreated\",\n" + + " \"CLIENT_HASHEDCIF\": \"3214521\",\n" + + " \"PRODUCT_EXPRES_LOANAMOUNT\": 50000,\n" + + " \"PRODUCT_EXPRES_TERM\": 24,\n" + + " \"PRODUCT_EXPRES_RPSN\": 8,\n" + + " \"CLIENT_FIRSTNAME\": \"Aleš\",\n" + + " \"CLIENT_LASTNAME\": \"Slunce\",\n" + + " \"CLIENT_MOBILEPHONENUMBER\": \"420725810842\",\n" + + " \"CLIENT_EMAIL\": \"ales.zlamal@neexistujicidomana.com\",\n" + + " \"CLIENT_CONSENTTOOFFERMARKETING\": true,\n" + + " \"CLIENT_PERMANENTADDRESS_STREET\": \"Novotného\",\n" + + " \"CLIENT_PERMANENTADDRESS_LANDREGISTRYNUMBER\": 22,\n" + + " \"CLIENT_PERMANENTADDRESS_HOUSENUMBER\": \"3a\",\n" + + " \"CLIENT_PERMANENTADDRESS_CITY\": \"Praha\",\n" + + " \"CLIENT_PERMANENTADDRESS_ZIP\": 12000,\n" + + " \"CLIENT_PERMANENTADDRESS_STAYONADDRESSSINCE\": \"2017-04-10 14:16:14\",\n" + + " \"CLIENT_CONTACTADDRESS_STREET\": \"Novotného\",\n" + + " \"CLIENT_CONTACTADDRESS_LANDREGISTRYNUMBER\": 2,\n" + + " \"CLIENT_CONTACTADDRESS_HOUSENUMBER\": \"3a\",\n" + + " \"CLIENT_CONTACTADDRESS_CITY\": \"Praha\",\n" + + " \"CLIENT_CONTACTADDRESS_ZIP\": 12000,\n" + + " \"CLIENT_IDENTITYCARD_NUMBER\": 6207066536,\n" + + " \"CLIENT_IDENTITYCARD_EXPIRATION\": \"2020-06-18 14:16:14\",\n" + + " \"CLIENT_BIRTHNUMBER\": \"5487456987\",\n" + + " \"CLIENT_MARITALSTATUS\": \"2\",\n" + + " \"CLIENT_NATIONALITY\": \"52\",\n" + + " \"CLIENT_COUNTRYOFBIRTH\": \"52\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYMENTTYPECODE\": \"2\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYERNAME\": \"Moneta a.s.\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYERID\": \"25672720\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEDFROM\": \"2016-06-18 14:16:14\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEDTO\": \"\",\n" + + " \"CLIENT_EMPLOYMENT_TRIALPERIOD\": false,\n" + + " \"CLIENT_EMPLOYMENT_NOTICEPERIOD\": false,\n" + + " \"CLIENT_NET3MONTHINCOME\": 149820,\n" + + " \"CLIENT_NET3MONTHHOUSEHOLDINCOME\": 281452,\n" + + " \"CLIENT_INSTALLMENTSOUTSIDEMONETA\": 5000,\n" + + " \"CLIENT_OTHERCOSTOFLIVING\": 25000,\n" + + " \"CLIENT_NUMBEROFDEPENDENTS\": 2,\n" + + " \"CLIENT_EDUCATION\": \"4\",\n" + + " \"CLIENT_LIVINGTYPE\": \"3\",\n" + + " \"CLIENT_CIF\": \"362173978\",\n" + + " \"CLIENT_MARKETINGCLIENTTYPE\": \"3\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEEFLAG\": true,\n" + + " \"PRODUCT_EXISTINGINTERNETBANK\": true,\n" + + " \"PRODUCT_PRODPACKAGEKEY\": 12345698,\n" + + " \"PRODUCT_APPKEYEXPRES\": 67950039,\n" + + " \"PRODUCT_APPKEYCA\": 3216547,\n" + + " \"PRODUCT_APPKEYDC\": 3214521,\n" + + " \"PRODUCT_APPKEYIB\": 12345657,\n" + + " \"PRODUCT_INSTPTKEYEXPRES\": 12358965,\n" + + " \"CLIENT_UNIKEY\": 148881,\n" + + " \"PRODUCT_COMPLETABLEIB\": true,\n" + + " \"PRODUCT_INSURANCEREQUESTED\": true,\n" + + " \"CLIENT_REALNET3MONTHINCOME\": 148881,\n" + + " \"PRODUCT_APPKEYCIF\": 12365455,\n" + + " \"PROCESS_FRAUDCHECK_PRIORITY\": \"MANUAL_FRAUD_CHECK\"," + + " \"PROCESS_CLIENTCHECKWFID\": \"CLCH_0000000123\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(body, "Not found output in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + final String activityId = activityIds.get(0).toString(); + + Thread.sleep(2000); // Delay to finish async code + + OnlineDbGetDataTasks onlineDbGetDataTasks = harness.tasks().cvm().onlineDbGetData(); + Result onlineDbRecords = onlineDbGetDataTasks.getPlannedTasks( + OnlineDbGetDataTasks.PAYLOAD_ATTRIBUTE_NAME_ACTIVITY_ID, activityId); + Assertions.assertEquals(1, onlineDbRecords.size(), "Should plan one event"); + final Record onlineDbRecord = onlineDbRecords.get(0); + + OnlineDbVerificationTasks onlineDbVerificationTasks = harness.tasks().cvm().onlineDbVerification(); + onlineDbVerificationTasks.assertOnlineDbRecordIsValid(onlineDbRecord, "digitalChannelsLoanWebExpressTask", + "cvm.cluster/SAS_RTDM_Web_Exp_Approved_CC/1.0.0", 3 * 24 * 60 * 60, + data -> Assertions.assertEquals(12365455, data.get("productAppKeyCif").getAsInt(), "Event data should contain correct data")); + onlineDbVerificationTasks.assertOnlineDbRecordIsValid(onlineDbRecord, "digitalChannelsLoanWebExpressTask", + "cvm.cluster/SAS_RTDM_Web_Exp_Approved_CC/1.0.0", 3 * 24 * 60 * 60, + data -> Assertions.assertEquals("CLCH_0000000123", data.get("processClientCheckWfId").getAsString(), "Event data should contain correct data")); + + Result triggerLogRecords = onlineDbGetDataTasks.getTriggerLogs( + "RTRD_WEB_TRIGGER_Expres", activityId); + Assertions.assertEquals(1, triggerLogRecords.size(), "Should log one record"); + + onlineDbVerificationTasks.assertTriggerLogRecordIsPlanned(triggerLogRecords.get(0), onlineDbRecord, + "cvm.cluster/SAS_RTDM_Web_Exp_Approved_CC/1.0.0", + logData -> Assertions.assertEquals("{\"BIRTH_NUMBER\":\"5487456987\",\"CACHE_CODE\":\"" + processCacheCode + "\",\"CIF\":\"362173978\"," + + "\"PHONE_NUMBER\":\"420725810842\",\"PROCESS_TRACKER\":\"process.tracker.expressAppCreated\"," + + "\"UNI_PT_KEY\":\"148881\"}", logData, "Planned call with correct additional data should be logged")); + + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasPricingSensitivityPos.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasPricingSensitivityPos.java new file mode 100644 index 0000000..c3898c3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasPricingSensitivityPos.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API SAS_PricingSensitivity_POS to WSO2 and assert response parameters") +public class ApiSasPricingSensitivityPos { + + @TestCase(name = "Call API SAS_PricingSensitivity_POS to WSO2", environments = {TST1, PPE}) + public void postSasPricingSensitivityPos(Harness harness) { + JsonNode response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/SAS_PricingSensitivity_POS/001", false, + "{ \"APP_KEY\": 567899,\n" + + " \"BIRTH_NUMBER\": \"8509021818\",\n" + + " \"IDENTIFICATION_NUMBER\": 0,\n" + + " \"SSO\": \"123015070\",\n" + + " \"BROKER_FLAG\": \"0\",\n" + + " \"FAMILY_INCOME\": 123455880,\n" + + " \"UNIPT_KEY\": 3601656,\n" + + " \"CHANNEL_ID\": \"POS\",\n" + + " \"PRODUCT_CLASS\": \"50\",\n" + + " \"BUS_PROD_TYPE\": \"5005\",\n" + + " \"SALES_BUS_PROD_TYPE\": \"50005\",\n" + + " \"REQ_FINA_AMT\": 78678,\n" + + " \"REQ_INSTL_CNT\": 23,\n" + + " \"MIN_INTRS_RX\": 1.65,\n" + + " \"PRICE_INTRS_RX\": 1.78,\n" + + " \"INCOME\": 98765,\n" + + " \"RBP_GRADE\": \"B\"}") + .post() + .andAssertStatus(200) + .extract(""); + + Assertions.assertNotNull(response, "Not found result in response"); + Assertions.assertNotNull(response.findValue("MODEL_ID").textValue(), "Not found MODEL_ID element"); + Assertions.assertNotNull(response.findValue("INTRS_MODIF").textValue(), "Not found INTRS_MODIF element"); + Assertions.assertEquals("OK", response.findValue("result").textValue(), "Not found OK in result in response"); + Assertions.assertEquals("NORMAL", response.findValue("RESPONSE_TYPE").textValue(), "Not found REPLY_TYPE with value NORMAL"); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmIbExpApp.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmIbExpApp.java new file mode 100644 index 0000000..e155af2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmIbExpApp.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API SAS_RTDM_IB_EXP_APP to WSO2 and assert response parameters") +public class ApiSasRtdmIbExpApp { + + @TestCase(name = "Call API SAS_RTDM_IB_EXP_APP to WSO2", environments = {TST1, PPE}) + public void postSasRtdmIbExpApp(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/IB_EXP_APP/1.0.0", false, + "{\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"version\": 1,\n" + + " \"inputs\": {" + + " \"clientCif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"userId\": " + harness.getConfig("cvm.client.userid") + ",\n" + + " \"channelId\": \"IB\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"applicationKey\": " + harness.getConfig("cvm.application.key") + ",\n" + + " \"applicationLoanAmount\": 120000,\n" + + " \"applicationEditFormState\": \"edit\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmIbExpCalc.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmIbExpCalc.java new file mode 100644 index 0000000..4576daa --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmIbExpCalc.java @@ -0,0 +1,43 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API SAS_RTDM_IB_EXP_CALC to WSO2 and assert response parameters") +public class ApiSasRtdmIbExpCalc { + + @TestCase(name = "Call API SAS_RTDM_IB_EXP_CALC to WSO2", environments = {TST1, PPE}) + public void postSasRtdmIbExpCalc(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/IB_EXP_CALC/1.0.0", false, + "{\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"version\": 1,\n" + + " \"inputs\": {\n" + + " \"calculationInstalment\": 4300,\n" + + " \"calculationInstalmentLength\": 36,\n" + + " \"calculationLoanAmount\": 0,\n" + + " \"calculationRpsn\": 4,\n" + + " \"channelId\": \"IB\",\n" + + " \"clientCif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"userId\": " + harness.getConfig("cvm.client.userid") + "\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmIbRejApp.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmIbRejApp.java new file mode 100644 index 0000000..aa8f638 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmIbRejApp.java @@ -0,0 +1,46 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API SAS_RTDM_IB_REJ_APP to WSO2 and assert response parameters") +public class ApiSasRtdmIbRejApp { + + @TestCase(name = "Call API SAS_RTDM_IB_REJ_APP to WSO2", environments = {TST1, PPE}) + public void postSasRtdmIbRejApp(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/SAS_RTDM_IB_REJ_APP/1.0.0", false, + "{\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"version\": 1,\n" + + " \"inputs\": {\n" + + " \"applicationState\": \"10\",\n" + + " \"applicationKey\": " + harness.getConfig("cvm.application.key") + ",\n" + + " \"applicationLoanAmount\": 100000,\n" + + " \"channelId\": \"IBS\",\n" + + " \"clientCif\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"uniPtKey\": null,\n" + + " \"birthNumber\": null,\n" + + " \"productClass\": \"50\",\n" + + " \"subtypeId\": \"\",\n" + + " \"typeId\": \"Sc\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmNotificationCardtransaction.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmNotificationCardtransaction.java new file mode 100644 index 0000000..1a94b11 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmNotificationCardtransaction.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.time.Instant; +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API SAS_RTDM_Notification_CardTransaction to WSO2 and assert response parameters") +public class ApiSasRtdmNotificationCardtransaction { + + @TestCase(name = "Call API SAS_RTDM_Notification_CardTransaction to WSO2", environments = {TST1, PPE}) + public void postSasRtdmNotificationCardtransaction(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/Notification_CardTransaction/1.0.0", false, + "{\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"version\": 1, \n" + + " \"inputs\": {\n" + + " \"UNIPT_KEY\": \"" + harness.getConfig("cvm.client.uniptkey") + "\",\n" + + " \"AUTH_TIME\": \"" + Instant.now() + "\",\n" + + " \"TRN_AMT\": 10000,\n" + + " \"AUTH_REJ_RSN_CODE\": \"24\",\n" + + " \"MERCHANT_CATEGORY_CODE\": \"6011\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmSbaExpApp.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmSbaExpApp.java new file mode 100644 index 0000000..f81dca2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmSbaExpApp.java @@ -0,0 +1,46 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API SAS_RTDM_SBA_EXP_APP to WSO2 and assert response parameters") +public class ApiSasRtdmSbaExpApp { + + @TestCase(name = "Call API SAS_RTDM_SBA_EXP_APP to WSO2", environments = {TST1, PPE}) + public void postSasRtdmSbaExpApp(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/SAS_RTDM_SBA_EXP_APP/1.0.0", false, + "{\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"version\": 1,\n" + + " \"inputs\": {\n" + + " \"applicationState\": \"1\",\n" + + " \"applicationKey\": " + harness.getConfig("cvm.application.key") + ",\n" + + " \"applicationLoanAmount\": 100000,\n" + + " \"channelId\": \"SBA\",\n" + + " \"clientCif\": \"" + harness.getConfig("cvm.client.sbaexpapp.cif") + "\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"uniPtKey\": null,\n" + + " \"birthNumber\": null,\n" + + " \"productClass\": \"50\",\n" + + " \"subtypeId\": \"sc\",\n" + + " \"typeId\": \"Sc\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmWebExpAppCreatedCc.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmWebExpAppCreatedCc.java new file mode 100644 index 0000000..42cccce --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmWebExpAppCreatedCc.java @@ -0,0 +1,93 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API SAS_RTDM_Web_Exp_AppCreated_CC to WSO2 and assert response parameters") +public class ApiSasRtdmWebExpAppCreatedCc { + + @TestCase(name = "Call API SAS_RTDM_Web_Exp_AppCreated_CC to WSO2", environments = {TST1, PPE}) + public void postSasRtdmWebExpAppCreatedCc(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/SAS_RTDM_Web_Exp_AppCreated_CC/1.0.0", false, + "{\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"version\": 1,\n" + + " \"inputs\": {\n" + + " \"PROCESS_CACHECODE\": \"" + UUID.randomUUID() + "\",\n" + + " \"PROCESS_LASTTRACKER\": \"process.tracker.financeDetails\",\n" + + " \"PROCESS_CLIENTCHECKWFID\": \"CLCH_0000123456\",\n" + + " \"PROCESS_UTMPARAMS\": \"Kampan 1\",\n" + + " \"CLIENT_HASHEDCIF\": \"3214521\",\n" + + " \"PRODUCT_EXPRES_LOANAMOUNT\": 50000,\n" + + " \"PRODUCT_EXPRES_TERM\": 24,\n" + + " \"PRODUCT_EXPRES_RPSN\": 5,\n" + + " \"CLIENT_FIRSTNAME\": \"Aleš\",\n" + + " \"CLIENT_LASTNAME\": \"Zlámal\",\n" + + " \"CLIENT_MOBILEPHONENUMBER\": \"420725810842\",\n" + + " \"CLIENT_EMAIL\": \"ales.zlamal@neexistujicidomana.com\",\n" + + " \"CLIENT_CONSENTTOOFFERMARKETING\": true,\n" + + " \"CLIENT_PERMANENTADDRESS_STREET\": \"Novotného\",\n" + + " \"CLIENT_PERMANENTADDRESS_LANDREGISTRYNUMBER\": 2,\n" + + " \"CLIENT_PERMANENTADDRESS_HOUSENUMBER\": \"3a\",\n" + + " \"CLIENT_PERMANENTADDRESS_CITY\": \"Praha\",\n" + + " \"CLIENT_PERMANENTADDRESS_ZIP\": 12000,\n" + + " \"CLIENT_PERMANENTADDRESS_STAYONADDRESSSINCE\": \"2017-04-10 14:16:14\",\n" + + " \"CLIENT_CONTACTADDRESS_STREET\": \"Novotného\",\n" + + " \"CLIENT_CONTACTADDRESS_LANDREGISTRYNUMBER\": 2,\n" + + " \"CLIENT_CONTACTADDRESS_HOUSENUMBER\": \"3a\",\n" + + " \"CLIENT_CONTACTADDRESS_CITY\": \"Praha\",\n" + + " \"CLIENT_CONTACTADDRESS_ZIP\": 12000,\n" + + " \"CLIENT_IDENTITYCARD_NUMBER\": 6207066536,\n" + + " \"CLIENT_IDENTITYCARD_EXPIRATION\": \"2020-06-18 14:16:14\",\n" + + " \"CLIENT_BIRTHNUMBER\": \"5487456987\",\n" + + " \"CLIENT_MARITALSTATUS\": \"2\",\n" + + " \"CLIENT_NATIONALITY\": \"52\",\n" + + " \"CLIENT_BIRTHPLACE\": \"Praha\",\n" + + " \"CLIENT_COUNTRYOFBIRTH\": \"52\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYMENTTYPECODE\": \"2\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYERNAME\": \"Moneta a.s.\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYERID\": \"25672720\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEDFROM\": \"2016-06-18 14:16:14\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEDTO\": \"\",\n" + + " \"CLIENT_EMPLOYMENT_TRIALPERIOD\": false,\n" + + " \"CLIENT_EMPLOYMENT_NOTICEPERIOD\": false,\n" + + " \"CLIENT_NET3MONTHINCOME\": 149820,\n" + + " \"CLIENT_NET3MONTHHOUSEHOLDINCOME\": 281452,\n" + + " \"CLIENT_INSTALLMENTSOUTSIDEMONETA\": 5000,\n" + + " \"CLIENT_OTHERCOSTOFLIVING\": 25000,\n" + + " \"CLIENT_NUMBEROFDEPENDENTS\": 2,\n" + + " \"CLIENT_EDUCATION\": \"4\",\n" + + " \"CLIENT_LIVINGTYPE\": \"3\",\n" + + " \"CLIENT_CIF\": \"362173978\",\n" + + " \"CLIENT_MARKETINGCLIENTTYPE\": \"3\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEEFLAG\": true,\n" + + " \"PRODUCT_EXISTINGINTERNETBANK\": true,\n" + + " \"PRODUCT_PRODPACKAGEKEY\": 12345698,\n" + + " \"PRODUCT_APPKEYEXPRES\": 123456852,\n" + + " \"PRODUCT_APPKEYCA\": 3216547,\n" + + " \"PRODUCT_APPKEYDC\": 3214521,\n" + + " \"PRODUCT_APPKEYIB\": 12345657,\n" + + " \"PRODUCT_INSTPTKEYEXPRES\": 12358965,\n" + + " \"CLIENT_UNIKEY\": 148881,\n" + + " \"PRODUCT_COMPLETABLEIB\": true,\n" + + " \"PRODUCT_INSURANCEREQUESTED\": true,\n" + + " \"CLIENT_REALNET3MONTHINCOME\": 148881,\n" + + " \"PRODUCT_APPKEYCIF\": 12365455\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmWebExpApprovedCc.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmWebExpApprovedCc.java new file mode 100644 index 0000000..02f4bab --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmWebExpApprovedCc.java @@ -0,0 +1,93 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API SAS_RTDM_Web_Exp_Approved_CC to WSO2 and assert response parameters") +public class ApiSasRtdmWebExpApprovedCc { + + @TestCase(name = "Call API SAS_RTDM_Web_Exp_Approved_CC to WSO2", environments = {TST1, PPE}) + public void postSasRtdmWebExpApprovedCc(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/SAS_RTDM_Web_Exp_Approved_CC/1.0.0", false, + "{\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"version\": 1,\n" + + " \"inputs\": {\n" + + " \"PROCESS_CACHECODE\": \"" + UUID.randomUUID() + "\",\n" + + " \"PROCESS_LASTTRACKER\": \"process.tracker.financeDetails\",\n" + + " \"PROCESS_CLIENTCHECKWFID\": \"CLCH_0000123456\",\n" + + " \"PROCESS_UTMPARAMS\": \"Kampan 1\",\n" + + " \"CLIENT_HASHEDCIF\": \"3214521\",\n" + + " \"PRODUCT_EXPRES_LOANAMOUNT\": 50000,\n" + + " \"PRODUCT_EXPRES_TERM\": 24,\n" + + " \"PRODUCT_EXPRES_RPSN\": 5,\n" + + " \"CLIENT_FIRSTNAME\": \"Aleš\",\n" + + " \"CLIENT_LASTNAME\": \"Zlámal\",\n" + + " \"CLIENT_MOBILEPHONENUMBER\": \"420725810842\",\n" + + " \"CLIENT_EMAIL\": \"ales.zlamal@neexistujicidomana.com\",\n" + + " \"CLIENT_CONSENTTOOFFERMARKETING\": true,\n" + + " \"CLIENT_PERMANENTADDRESS_STREET\": \"Novotného\",\n" + + " \"CLIENT_PERMANENTADDRESS_LANDREGISTRYNUMBER\": 2,\n" + + " \"CLIENT_PERMANENTADDRESS_HOUSENUMBER\": \"3a\",\n" + + " \"CLIENT_PERMANENTADDRESS_CITY\": \"Praha\",\n" + + " \"CLIENT_PERMANENTADDRESS_ZIP\": 12000,\n" + + " \"CLIENT_PERMANENTADDRESS_STAYONADDRESSSINCE\": \"2017-04-10 14:16:14\",\n" + + " \"CLIENT_CONTACTADDRESS_STREET\": \"Novotného\",\n" + + " \"CLIENT_CONTACTADDRESS_LANDREGISTRYNUMBER\": 2,\n" + + " \"CLIENT_CONTACTADDRESS_HOUSENUMBER\": \"3a\",\n" + + " \"CLIENT_CONTACTADDRESS_CITY\": \"Praha\",\n" + + " \"CLIENT_CONTACTADDRESS_ZIP\": 12000,\n" + + " \"CLIENT_IDENTITYCARD_NUMBER\": 6207066536,\n" + + " \"CLIENT_IDENTITYCARD_EXPIRATION\": \"2020-06-18 14:16:14\",\n" + + " \"CLIENT_BIRTHNUMBER\": \"5487456987\",\n" + + " \"CLIENT_MARITALSTATUS\": \"2\",\n" + + " \"CLIENT_NATIONALITY\": \"52\",\n" + + " \"CLIENT_BIRTHPLACE\": \"Praha\",\n" + + " \"CLIENT_COUNTRYOFBIRTH\": \"52\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYMENTTYPECODE\": \"2\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYERNAME\": \"Moneta a.s.\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYERID\": \"25672720\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEDFROM\": \"2016-06-18 14:16:14\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEDTO\": \"\",\n" + + " \"CLIENT_EMPLOYMENT_TRIALPERIOD\": false,\n" + + " \"CLIENT_EMPLOYMENT_NOTICEPERIOD\": false,\n" + + " \"CLIENT_NET3MONTHINCOME\": 149820,\n" + + " \"CLIENT_NET3MONTHHOUSEHOLDINCOME\": 281452,\n" + + " \"CLIENT_INSTALLMENTSOUTSIDEMONETA\": 5000,\n" + + " \"CLIENT_OTHERCOSTOFLIVING\": 25000,\n" + + " \"CLIENT_NUMBEROFDEPENDENTS\": 2,\n" + + " \"CLIENT_EDUCATION\": \"4\",\n" + + " \"CLIENT_LIVINGTYPE\": \"3\",\n" + + " \"CLIENT_CIF\": \"362173978\",\n" + + " \"CLIENT_MARKETINGCLIENTTYPE\": \"3\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEEFLAG\": true,\n" + + " \"PRODUCT_EXISTINGINTERNETBANK\": true,\n" + + " \"PRODUCT_PRODPACKAGEKEY\": 12345698,\n" + + " \"PRODUCT_APPKEYEXPRES\": 123456852,\n" + + " \"PRODUCT_APPKEYCA\": 3216547,\n" + + " \"PRODUCT_APPKEYDC\": 3214521,\n" + + " \"PRODUCT_APPKEYIB\": 12345657,\n" + + " \"PRODUCT_INSTPTKEYEXPRES\": 12358965,\n" + + " \"CLIENT_UNIKEY\": 148881,\n" + + " \"PRODUCT_COMPLETABLEIB\": true,\n" + + " \"PRODUCT_INSURANCEREQUESTED\": true,\n" + + " \"CLIENT_REALNET3MONTHINCOME\": 148881,\n" + + " \"PRODUCT_APPKEYCIF\": 12365455\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmWebExpDropoutCc.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmWebExpDropoutCc.java new file mode 100644 index 0000000..4c839cc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSasRtdmWebExpDropoutCc.java @@ -0,0 +1,94 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API SAS_RTDM_WEB_EXP_DROPOUT_CC to WSO2 and assert response parameters") +public class ApiSasRtdmWebExpDropoutCc { + + @TestCase(name = "Call API SAS_RTDM_WEB_EXP_DROPOUT_CC to WSO2", environments = {TST1, PPE}) + public void postSasRtdmWebExpDropoutCc(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/WEB_EXP_DROPOUT_CC/1.0.0", false, + "{\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"version\": 1,\n" + + " \"inputs\": {\n" + + " \"PROCESS_CACHECODE\": \"" + UUID.randomUUID() + "\",\n" + + " \"PROCESS_LASTTRACKER\": \"process.tracker.financeDetails\",\n" + + " \"PROCESS_CLIENTCHECKWFID\": \"CLCH_0000123456\",\n" + + " \"PROCESS_UTMPARAMS\": \"Kampan 1\",\n" + + " \"CLIENT_HASHEDCIF\": \"3214521\",\n" + + " \"PRODUCT_EXPRES_LOANAMOUNT\": 50000,\n" + + " \"PRODUCT_EXPRES_TERM\": 24,\n" + + " \"PRODUCT_EXPRES_RPSN\": 5,\n" + + " \"CLIENT_FIRSTNAME\": \"WSO2\",\n" + + " \"CLIENT_LASTNAME\": \"WSO2\",\n" + + " \"CLIENT_MOBILEPHONENUMBER\": \"420725810842\",\n" + + " \"CLIENT_EMAIL\": \"ales.zlamal@neexistujicidomana.com\",\n" + + " \"CLIENT_CONSENTTOOFFERMARKETING\": true,\n" + + " \"CLIENT_PERMANENTADDRESS_STREET\": \"Novotného\",\n" + + " \"CLIENT_PERMANENTADDRESS_LANDREGISTRYNUMBER\": 2,\n" + + " \"CLIENT_PERMANENTADDRESS_HOUSENUMBER\": \"3a\",\n" + + " \"CLIENT_PERMANENTADDRESS_CITY\": \"Praha\",\n" + + " \"CLIENT_PERMANENTADDRESS_ZIP\": 12000,\n" + + " \"CLIENT_PERMANENTADDRESS_STAYONADDRESSSINCE\": \"2017-04-10 14:16:14\",\n" + + " \"CLIENT_CONTACTADDRESS_STREET\": \"Novotného\",\n" + + " \"CLIENT_CONTACTADDRESS_LANDREGISTRYNUMBER\": 2,\n" + + " \"CLIENT_CONTACTADDRESS_HOUSENUMBER\": \"3a\",\n" + + " \"CLIENT_CONTACTADDRESS_CITY\": \"Praha\",\n" + + " \"CLIENT_CONTACTADDRESS_ZIP\": 12000,\n" + + " \"CLIENT_IDENTITYCARD_NUMBER\": 6207066536,\n" + + " \"CLIENT_IDENTITYCARD_EXPIRATION\": \"2020-06-18 14:16:14\",\n" + + " \"CLIENT_BIRTHNUMBER\": \"5487456987\",\n" + + " \"CLIENT_MARITALSTATUS\": \"2\",\n" + + " \"CLIENT_NATIONALITY\": \"52\",\n" + + " \"CLIENT_BIRTHPLACE\": \"Praha\",\n" + + " \"CLIENT_COUNTRYOFBIRTH\": \"52\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYMENTTYPECODE\": \"2\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYERNAME\": \"Moneta a.s.\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYERID\": \"25672720\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEDFROM\": \"2016-06-18 14:16:14\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEDTO\": \"\",\n" + + " \"CLIENT_EMPLOYMENT_TRIALPERIOD\": false,\n" + + " \"CLIENT_EMPLOYMENT_NOTICEPERIOD\": false,\n" + + " \"CLIENT_NET3MONTHINCOME\": 149820,\n" + + " \"CLIENT_NET3MONTHHOUSEHOLDINCOME\": 281452,\n" + + " \"CLIENT_INSTALLMENTSOUTSIDEMONETA\": 5000,\n" + + " \"CLIENT_OTHERCOSTOFLIVING\": 25000,\n" + + " \"CLIENT_NUMBEROFDEPENDENTS\": 2,\n" + + " \"CLIENT_EDUCATION\": \"4\",\n" + + " \"CLIENT_LIVINGTYPE\": \"3\",\n" + + " \"CLIENT_CIF\": \"00362173978\",\n" + + " \"CLIENT_MARKETINGCLIENTTYPE\": \"3\",\n" + + " \"CLIENT_EMPLOYMENT_EMPLOYEEFLAG\": true,\n" + + " \"PRODUCT_EXISTINGINTERNETBANK\": true,\n" + + " \"PRODUCT_PRODPACKAGEKEY\": 12345698,\n" + + " \"PRODUCT_APPKEYEXPRES\": 123456852,\n" + + " \"PRODUCT_APPKEYCA\": 3216547,\n" + + " \"PRODUCT_APPKEYDC\": 3214521,\n" + + " \"PRODUCT_APPKEYIB\": 12345657,\n" + + " \"PRODUCT_INSTPTKEYEXPRES\": 12358965,\n" + + " \"CLIENT_UNIKEY\": 148881,\n" + + " \"PRODUCT_COMPLETABLEIB\": true,\n" + + " \"PRODUCT_INSURANCEREQUESTED\": true,\n" + + " \"CLIENT_REALNET3MONTHINCOME\": 148881,\n" + + " \"PRODUCT_APPKEYCIF\": 12365455\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbBuildingSavingsApplicationEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbBuildingSavingsApplicationEvent.java new file mode 100644 index 0000000..eaa2cdc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbBuildingSavingsApplicationEvent.java @@ -0,0 +1,43 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API sb-building-savings-application-event to WSO2 and assert response parameters") +public class ApiSbBuildingSavingsApplicationEvent { + + @TestCase(name = "Call API sb-building-savings-application-event to WSO2", environments = {TST1, PPE}) + public void postSbBuildingSavingsApplicationEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + "cvm.cluster/sb-building-savings-application-event/1.0.0", false, + "{\n" + + " \"channelId\": \"17\",\n" + + " \"clientCif\": \"123456\",\n" + + " \"monthlyDeposit\": 1500,\n" + + " \"savingsPeriod\": 72,\n" + + " \"targetAmount\": 150000,\n" + + " \"screenId\": \"calculator\",\n" + + " \"userId\": 123457,\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(body, "Not found output in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbBuildingSavingsApplicationTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbBuildingSavingsApplicationTrigger.java new file mode 100644 index 0000000..426ad97 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbBuildingSavingsApplicationTrigger.java @@ -0,0 +1,44 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API sb-building-savings-application-trigger to WSO2 and assert response parameters") +public class ApiSbBuildingSavingsApplicationTrigger { + + @TestCase(name = "Call API sb-building-savings-application-trigger to WSO2", environments = {TST1, PPE}) + public void postSbBuildingSavingsApplicationTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/sb-building-savings-application-trigger/1.0.0", false, + "{\n" + + " \"version\": 1,\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"inputs\": {\n" + + " \"configurationEventName\": \"calculator/push\",\n" + + " \"channelId\": \"17\",\n" + + " \"clientCif\": \"123456\",\n" + + " \"monthlyDeposit\": 2500,\n" + + " \"savingsPeriod\": 72,\n" + + " \"targetAmount\": 300000,\n" + + " \"screenId\": \"calculator\",\n" + + " \"userId\": 123457," + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbUnifiedOnboardingEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbUnifiedOnboardingEvent.java new file mode 100644 index 0000000..23b9854 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbUnifiedOnboardingEvent.java @@ -0,0 +1,48 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API sb-unified-onboarding-event to WSO2 and assert response parameters") +public class ApiSbUnifiedOnboardingEvent { + + @TestCase(name = "Call API sb-unified-onboarding-event to WSO2", environments = {TST1, PPE}) + public void postSbUnifiedOnboardingEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + "cvm.cluster/sb-unified-onboarding-event/1.0.0", false, + "{\n" + + " \"birthNumber\": \"8812210022\",\n" + + " \"channel\": \"SBA\",\n" + + " \"email\": \"prijde.pushka.pro.sb.onboarding@neexistujicidomana.com\",\n" + + " \"eventDateTime\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"firstName\": \"Prijde\",\n" + + " \"lastName\": \"Pushka\",\n" + + " \"marketingCnst\": true,\n" + + " \"phoneNumber\": \"+420725810843\",\n" + + " \"productClass\": \"12\",\n" + + " \"screenId\": \"ONBOARDING_SB_MINI_IDENTIFIED\",\n" + + " \"status\": \"OK\",\n" + + " \"unecncryptedCommunicationCnst\": true,\n" + + " \"wustenrotClientFlag\": false\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(body, "Not found output in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbUnifiedOnboardingTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbUnifiedOnboardingTrigger.java new file mode 100644 index 0000000..d1de6b5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbUnifiedOnboardingTrigger.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API sb-unified-onboarding-trigger to WSO2 and assert response parameters") +public class ApiSbUnifiedOnboardingTrigger { + + @TestCase(name = "Call API sb-unified-onboarding-trigger to WSO2", environments = {TST1, PPE}) + public void postSbUnifiedOnboardingTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/sb-unified-onboarding-trigger/1.0.0", false, + "{\n" + + " \"version\": 1,\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"inputs\": {\n" + + " \"appKey\": null,\n" + + " \"birthNumber\": \"8812210022\",\n" + + " \"channel\": \"SBA\",\n" + + " \"cif\": null,\n" + + " \"configurationEventDelay\": 3600,\n" + + " \"email\": \"prijde.pushka.pro.sb.onboarding@neexistujicidomana.com\",\n" + + " \"eventDateTime\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\",\n" + + " \"firstName\": \"Prijde\",\n" + + " \"lastName\": \"Pushka\",\n" + + " \"marketingCnst\": true,\n" + + " \"phoneNumber\": \"+420725810843\",\n" + + " \"productClass\": \"12\",\n" + + " \"promotion\": null,\n" + + " \"screenId\": \"ONBOARDING\",\n" + + " \"status\": \"OK\",\n" + + " \"transactionId\": null,\n" + + " \"unecncryptedCommunicationCnst\": true,\n" + + " \"userId\": null,\n" + + " \"wfId\": null,\n" + + " \"wustenrotClientFlag\": true\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbaSasRtdmGetbanners.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbaSasRtdmGetbanners.java new file mode 100644 index 0000000..db4d0e8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbaSasRtdmGetbanners.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API SBA_SAS_RTDM_GetBanners to WSO2 and assert response parameters") +public class ApiSbaSasRtdmGetbanners { + + @TestCase(name = "Call API SBA_SAS_RTDM_GetBanners to WSO2", environments = {TST1, PPE}) + public void postSbaSasRtdmGetbanners(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/SBA_GetBanners/1.0.0", false, + "{\n" + + " \"version\": 1,\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"inputs\": {\n" + + " \"CIF\": \"" + harness.getConfig("cvm.client.cif") + "\",\n" + + " \"USER_ID\": 1234,\n" + + " \"CHANNEL_ID\": \"SBA\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + + JsonNode count = outputs.findValue("COUNT"); + Assertions.assertTrue(count != null && count.asInt() >= 0, "Not found COUNT with value >= 0"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbaSasRtdmSetResponse.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbaSasRtdmSetResponse.java new file mode 100644 index 0000000..3c50e78 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSbaSasRtdmSetResponse.java @@ -0,0 +1,46 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; + +@TestScenario(name = "Call API SBA_SAS_RTDM_SetResponse to WSO2 and assert response parameters") +public class ApiSbaSasRtdmSetResponse { + + @TestCase(name = "Call API SBA_SAS_RTDM_SetResponse to WSO2", environments = {TST1, PPE}) + public void postSbaSasRtdmSetResponse(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/SBA_SetResponse/1.0.0", false, + "{\n" + + " \"version\": 1,\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"inputs\": { \n" + + " \"ACTION_TYPE\": \"VIEW\", \n" + + " \"BANNER_ID\": [ 1000045 ], \n" + + " \"CHANNEL_ID\": \"SBA\",\n" + + " \"CIF\": \"" + harness.getConfig("cvm.client.setresponse.cif") + "\", \n" + + " \"RESPONSE_TRACKING_CD\": \"106060101\", \n" + + " \"TREATMENT_TRACKING_CD\": [ \"1353001\" ], \n" + + " \"USER_ID\": 2829314, \n" + + " \"pushOrderId\": [ \"2129\" ] }, \n" + + " \"version\": 1 \n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + + assertEquals("OK", outputs.findValue("STATUS").textValue(), "Not found REPLY_TYPE with value STANDARD or NORMAL"); + + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSendEmailOffer.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSendEmailOffer.java new file mode 100644 index 0000000..26d50bb --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSendEmailOffer.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API send-email-offer to WSO2 and assert response parameters") +public class ApiSendEmailOffer { + + @TestCase(name = "Call API send-email-offer to WSO2", environments = {TST1, PPE}) + @Disabled + public void postSendEmailOffer(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/send-email-offer/1.0.0", false, + "{\n" + + " \"version\": 1,\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"inputs\": {\n" + + " \"additionalIdentifier\": " + harness.getConfig("cvm.wustenrot.ruskey") + ",\n" + + " \"additionalIdentifierType\": \"RUS_KLIC\",\n" + + " \"clientIdentifier\": null,\n" + + " \"clientIdentifierType\": null,\n" + + " \"email\": null\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSendSecure3dInfoEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSendSecure3dInfoEvent.java new file mode 100644 index 0000000..6946d60 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSendSecure3dInfoEvent.java @@ -0,0 +1,42 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API send-secure3d-info-event to WSO2 and assert response parameters") +public class ApiSendSecure3dInfoEvent { + + @TestCase(name = "Call API send-secure3d-info-event to WSO2", environments = {TST1, PPE}) + public void postSendSecure3dInfoEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + "cvm.cluster/send-secure3d-info-event/1.0.0", false, + "{\n" + + " \"phoneNumber\": \"777123456\",\n" + + " \"refId\": \"123\",\n" + + " \"cardBin\": \"111\",\n" + + " \"cardNumber\": \"5351233153047817\",\n" + + " \"amount\": 5000.0,\n" + + " \"currency\": \"CZK\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(body, "Not found output in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSendSecure3dInfoTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSendSecure3dInfoTrigger.java new file mode 100644 index 0000000..a19d915 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiSendSecure3dInfoTrigger.java @@ -0,0 +1,43 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API send-secure3d-info-trigger to WSO2 and assert response parameters") +public class ApiSendSecure3dInfoTrigger { + + @TestCase(name = "Call API send-secure3d-info-trigger to WSO2", environments = {TST1, PPE}) + public void postSendSecure3dInfoTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/send-secure3d-info-trigger/1.0.0", false, + "{\n" + + " \"version\": 1,\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"inputs\": {\n" + + " \"configurationEventName\": \"send3DSecureEmail\",\n" + + " \"phoneNumber\": \"777123456\",\n" + + " \"refId\": \"123\",\n" + + " \"cardBin\": \"111\",\n" + + " \"cardNumber\": \"5351233153047817\",\n" + + " \"amount\": 5000.0,\n" + + " \"currency\": \"CZK\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebBuildingSavingsEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebBuildingSavingsEvent.java new file mode 100644 index 0000000..629d6f7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebBuildingSavingsEvent.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API web-building-savings-event to WSO2 and assert response parameters") +public class ApiWebBuildingSavingsEvent { + + @TestCase(name = "Call API web-building-savings-event to WSO2", environments = {TST1, PPE}) + public void postWebBuildingSavingsEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + "cvm.cluster/web-building-savings-event/1.0.0", false, + "{\n" + + " \"firstName\": \"Tomik\",\n" + + " \"lastName\": \"Chlupatejsi\",\n" + + " \"email\": \"volani.cc@moneta.cz\",\n" + + " \"phoneNumber\": \"777763548\",\n" + + " \"marketing\": true,\n" + + " \"unsecuredCommunication\": false,\n" + + " \"birthNumber\": \"1334567890\",\n" + + " \"clientCheckWFID\": \"456def\",\n" + + " \"screenID\": \"identity_check\",\n" + + " \"exitResult\": \"OPAKOVANI_MOZNE\",\n" + + " \"exitDescription\": \"nejaka chyba\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + Assertions.assertNotNull(body, "Not found output in response"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebBuildingSavingsTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebBuildingSavingsTrigger.java new file mode 100644 index 0000000..db503e5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebBuildingSavingsTrigger.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API web-building-savings-trigger to WSO2 and assert response parameters") +public class ApiWebBuildingSavingsTrigger { + + @TestCase(name = "Call API web-building-savings-trigger to WSO2", environments = {TST1, PPE}) + public void postWebBuildingSavingsTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "cvm.cluster/web-building-savings-trigger/1.0.0", false, + "{\n" + + " \"version\": 1,\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"inputs\": {\n" + + " \"configurationEventName\": \"ERROR/OPAKOVANI_MOZNE/CC\",\n" + + " \"firstName\": \"Tomik\",\n" + + " \"lastName\": \"Chlupatejsi\",\n" + + " \"email\": \"volani.cc@neexistujicidomana.com\",\n" + + " \"phoneNumber\": \"777763549\",\n" + + " \"marketing\": true,\n" + + " \"unsecuredCommunication\": false,\n" + + " \"birthNumber\": \"8812210022\",\n" + + " \"cif\": null,\n" + + " \"clientCheckWFID\": \"456def\",\n" + + " \"screenID\": \"identity_check\",\n" + + " \"exitResult\": \"OPAKOVANI_MOZNE\",\n" + + " \"exitDescription\": \"nejaka chyba\",\n" + + " \"eventTimeStamp\": \"" + DateUtils.getFormattedTodayDateTimeForWso2() + "\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebLoanPoEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebLoanPoEvent.java new file mode 100644 index 0000000..9367277 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebLoanPoEvent.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API web-loan-po-event to WSO2 and assert response parameters") +public class ApiWebLoanPoEvent { + + public static final String WEB_LOAN_PO_EVENT_PATH = "cvm.cluster/web-loan-po-event/1.0.0"; + + @TestCase(name = "Call API web-loan-po-event to WSO2", environments = {TST1, PPE}) + public void postWebLoanPoEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + WEB_LOAN_PO_EVENT_PATH, false, + "{\n" + + " \"appDate\": \"2021-08-23T16:14:16+02:00\",\n" + + " \"appKey\": \"62673241\",\n" + + " \"businessName\": \"Jaromír Musil\",\n" + + " \"channel\": \"BROKER_APP\",\n" + + " \"emailAddress\": \"michael.cihak@moneta.cz\",\n" + + " \"firstName\": \"Jaromír\",\n" + + " \"ico\": \"01133063\",\n" + + " \"installmentCount\": 81,\n" + + " \"insuranceFlag\": true,\n" + + " \"interestRate\": 5.9,\n" + + " \"loanAmount\": 286000,\n" + + " \"phoneNumber\": \"+420776132887\",\n" + + " \"stateId\": 65,\n" + + " \"stateName\": \"PENNY_PAYMENT_WAITING\",\n" + + " \"surname\": \"Musil\",\n" + + " \"transactionId\": 28326,\n" + + " \"wfId\": \"CLCH_0000005356\"\n" + + "}\n") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebLoanPoTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebLoanPoTrigger.java new file mode 100644 index 0000000..6bd653c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebLoanPoTrigger.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API web-loan-po-trigger to WSO2 and assert response parameters") +public class ApiWebLoanPoTrigger { + + public static final String WEB_LOAN_PO_TRIGGER_PATH = "cvm.cluster/web-loan-po-trigger/1.0.0"; + + @TestCase(name = "Call API web-loan-po-trigger to WSO2", environments = {TST1, PPE}) + public void postWebLoanPoTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm(WEB_LOAN_PO_TRIGGER_PATH, false, + "{\n" + + " \"version\": 1,\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"inputs\": {\n" + + " \"configurationEventName\": \"PENNY_PAYMENT_WAITING/CC\",\n" + + " \"stateId\": 65,\n" + + " \"stateName\": \"PENNY_PAYMENT_WAITING\",\n" + + " \"transactionId\": 28295,\n" + + " \"phoneNumber\": \"+420776132887\",\n" + + " \"loanAmount\": 345000,\n" + + " \"installmentCount\": 58,\n" + + " \"insuranceFlag\": true,\n" + + " \"interestRate\": 5.9,\n" + + " \"emailAddress\": \"michael.cihak@moneta.cz\",\n" + + " \"businessName\": \"Jaromír Marek\",\n" + + " \"firstName\": \"Jaromír\",\n" + + " \"surname\": \"Marek\",\n" + + " \"ico\": \"16096355\",\n" + + " \"appKey\": \"62672661\",\n" + + " \"appDate\": \"2021-08-17T11:06:26.000+02:00\",\n" + + " \"wfId\": \"CLCH_0000005348\",\n" + + " \"channel\": \"BROKER_APP\",\n" + + " \"linkSaveReturn\": null\n" + + " }\n" + + "}\n") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebMortgagesRetentionEvent.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebMortgagesRetentionEvent.java new file mode 100644 index 0000000..a674e12 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebMortgagesRetentionEvent.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +@TestScenario(name = "Call API web-mortgages-retention-event to WSO2 and assert response parameters") +public class ApiWebMortgagesRetentionEvent { + + public static final String WEB_MORTGAGES_RETENTION_EVENT_PATH = "cvm.cluster/web-mortgages-retention-event/1.0.0"; + + @TestCase(name = "Call API web-mortgages-retention-event to WSO2", environments = {TST1, PPE}) + public void postWebMortgagesRetentionEvent(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCblToCvm( + WEB_MORTGAGES_RETENTION_EVENT_PATH, false, + "{\n" + + " \"RC\": \"9361283074\",\n" + + " \"bankRefinancing\": \"OTHER\",\n" + + " \"email\": \"marketa@mikesovi.com\",\n" + + " \"firstName\": \"Markéta\",\n" + + " \"lastName\": \"S Other\",\n" + + " \"mobilePhone\": \"+420731955939\",\n" + + " \"mortgageID\": \"90000000\",\n" + + " \"mortgagesCompany\": \"WHB\",\n" + + " \"operationId\": \"T_0000965810101\",\n" + + " \"originFinancialMeans\": \"OTHER\",\n" + + " \"payOffDate\": \"2021-08-16\",\n" + + " \"reason\": \"REPAY_MORTGAGE_EARLY\"\n" + + "}") + .postExtended() + .andAssertStatus(200); + + JsonNode body = response.extract(""); + List activityIds = response.getHeader("activityId"); + + assertNotNull(body, "Not found output in response"); + assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebMortgagesRetentionTrigger.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebMortgagesRetentionTrigger.java new file mode 100644 index 0000000..66375ec --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/cvm/ApiWebMortgagesRetentionTrigger.java @@ -0,0 +1,49 @@ +package cz.moneta.test.regression.cvm.api.cvm; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.UUID; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API web-mortgages-retention-trigger to WSO2 and assert response parameters") +public class ApiWebMortgagesRetentionTrigger { + + public static final String WEB_MORTGAGES_RETENTION_TRIGGER_PATH = "cvm.cluster/web-mortgages-retention-trigger/1.0.0"; + + @TestCase(name = "Call API web-mortgages-retention-trigger to WSO2", environments = {TST1, PPE}) + public void postWebMortgagesRetentionTrigger(Harness harness) { + JsonNode outputs = harness.tasks().wso2().restRequest().prepareRequestFromCvm(WEB_MORTGAGES_RETENTION_TRIGGER_PATH, false, + "{\n" + + " \"version\": 1,\n" + + " \"correlationId\": \"" + UUID.randomUUID() + "\",\n" + + " \"clientTimeZone\": \"Europe/Prague\",\n" + + " \"inputs\": {\n" + + " \"configurationEventName\": \"CC\",\n" + + " \"firstName\": \"Markéta\",\n" + + " \"lastName\": \"S Other\",\n" + + " \"mobilePhone\": \"+420731955939\",\n" + + " \"email\": \"marketa@mikesovi.com\",\n" + + " \"mortgagesCompany\": \"WHB\",\n" + + " \"reason\": \"REPAY_MORTGAGE_EARLY\",\n" + + " \"mortgageID\": \"90000000\",\n" + + " \"payOffDate\": \"2021-08-16\",\n" + + " \"originFinancialMeans\": \"OTHER\",\n" + + " \"bankRefinancing\": \"OTHER\",\n" + + " \"operationId\": \"T_0000965810101\",\n" + + " \"RC\": \"9361283074\"\n" + + " }\n" + + "}") + .post() + .andAssertStatus(201) + .extract("outputs"); + + harness.tasks().cvm().cvmWso2().assertResponseOutputs(outputs); + } + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetCardData.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetCardData.java new file mode 100644 index 0000000..2d352ec --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetCardData.java @@ -0,0 +1,29 @@ +package cz.moneta.test.regression.cvm.api.data; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_CARD_DATA to WSO2 and assert response parameters") +public class ApiGetCardData { + + @TestCase(name = "Call API GET_CARD_DATA to WSO2", environments = {TST1, PPE}) + public void postGetCardData(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("data.cluster/GET_CARD_DATA/001", true, + "{\n" + + " \"RS_7\": [\n" + + " {\n" + + " \"CARD_NUM_IN\": \"0004243360100039277\"\n" + + " }\n" + + " ]\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_3") + .andAssertPresent("RS_8"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetEvdcnstData.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetEvdcnstData.java new file mode 100644 index 0000000..063ebef --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetEvdcnstData.java @@ -0,0 +1,28 @@ +package cz.moneta.test.regression.cvm.api.data; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_EVDCNST_DATA to WSO2 and assert response parameters") +public class ApiGetEvdcnstData { + + @TestCase(name = "Call API GET_EVDCNST_DATA to WSO2", environments = {TST1, PPE}) + public void postGetEvdcnstData(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("data.cluster/GET_EVDCNST_DATA/001", true, + "{\n" + + " \"BUS_ID\": \"GEMCB\",\n" + + " \"UNI_PT_KEY_IN\": " + harness.getConfig("cvm.client.odsconsentschange.uniptkey") + "\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_1") + .andAssertPresent("RS_1[0]") + .andAssertPresent("RS_1[0].INST_PT_KEY") + .andAssertPresent("RS_2"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetProdinstData.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetProdinstData.java new file mode 100644 index 0000000..220e6cf --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetProdinstData.java @@ -0,0 +1,38 @@ +package cz.moneta.test.regression.cvm.api.data; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_PRODINST_DATA to WSO2 and assert response parameters") +public class ApiGetProdinstData { + + public static final String GET_PRODINST_DATA_PATH = "data.cluster/GET_PRODINST_DATA/001"; + + @TestCase(name = "Call API GET_PRODINST_DATA to WSO2", environments = {TST1, PPE}) + public void postGetProdinstData(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm(GET_PRODINST_DATA_PATH, true, + "{\n" + + " \"SRC_SYS_ID\": \"SBU03\",\n" + + " \"RS_2\": [\n" + + " {}\n" + + " ],\n" + + " \"RS_1\": [\n" + + " {\n" + + " \"UNI_PT_KEY_IN\": " + harness.getConfig("cvm.client.uniptkey") + "\n" + + " }\n" + + " ],\n" + + " \"PURPOSE\": \"2\",\n" + + " \"BUSINESS\": \"GEMCB\",\n" + + " \"BANK_SECRET\": \"0\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_4") + .andAssertPresent("RS_5") + .andAssertPresent("RS_3"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetUniPtKey.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetUniPtKey.java new file mode 100644 index 0000000..46e4615 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetUniPtKey.java @@ -0,0 +1,28 @@ +package cz.moneta.test.regression.cvm.api.data; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_UNI_PT_KEY to WSO2 and assert response parameters") +public class ApiGetUniPtKey { + + @TestCase(name = "Call API GET_UNI_PT_KEY to WSO2", environments = {TST1, PPE}) + public void postGetUniPtKey(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("data.cluster/GET_UNI_PT_KEY/001", true, + "{\n" + + " \"BUS_ID\": \"GEMCB\",\n" + + " \"UNI_PT_KEY_IN\": " + harness.getConfig("cvm.client.uniptkey") + "\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_1") + .andAssertPresent("RS_1[0]") + .andAssertPresent("RS_1[0].PT_TYPE_OUT") + .andAssertFieldValue("RS_1[0].UNI_PT_KEY_OUT", harness.getConfig("cvm.client.uniptkey")); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetUniptinfolimitvarData.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetUniptinfolimitvarData.java new file mode 100644 index 0000000..89de6bc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/data/ApiGetUniptinfolimitvarData.java @@ -0,0 +1,29 @@ +package cz.moneta.test.regression.cvm.api.data; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_UNIPTINFOLIMITVAR_DATA to WSO2 and assert response parameters") +public class ApiGetUniptinfolimitvarData { + + @TestCase(name = "Call API GET_UNIPTINFOLIMITVAR_DATA to WSO2", environments = {TST1, PPE}) + public void postGetUniptinfolimitvarData(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("data.cluster/GET_UNIPTINFOLIMITVAR_DATA/001", true, + "{\n" + + " \"UNI_PT_KEY\": " + harness.getConfig("cvm.client.infolimit.uniptkey") + "\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_1") + .andAssertPresent("RS_1[0]") + .andAssertPresent("RS_1[0].UNI_PT_INFOLIMIT_KEY") + .andAssertPresent("RS_1[0].INFOLIMIT_AMT") + .andAssertPresent("RS_1[0].BUS_PROD_CLASS_CODE") + .andAssertPresent("RS_2"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/digitalchannelssb/ApiGetCardAuthorizations.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/digitalchannelssb/ApiGetCardAuthorizations.java new file mode 100644 index 0000000..e4abe90 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/digitalchannelssb/ApiGetCardAuthorizations.java @@ -0,0 +1,37 @@ +package cz.moneta.test.regression.cvm.api.digitalchannelssb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Assertions; + +import java.time.ZonedDateTime; +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API get-card-authorizations to WSO2 and assert response parameters") +public class ApiGetCardAuthorizations { + + @TestCase(name = "Call API get-card-authorizations to WSO2", environments = {TST1, PPE}) + public void postGetCardAuthorizations(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "digitalchannels.sb/get-card-authorizations/001", false, + "{\n" + + " \"amountTo\": 100000,\n" + + " \"amountFrom\": 100,\n" + + " \"currency\": \"CZK\",\n" + + " \"dateFrom\": \"" + ZonedDateTime.now().withNano(0).minusDays(1).withFixedOffsetZone() + "\",\n" + + " \"cardNumber\": \"5351233153047817\"\n" + + "}") + .postExtended() + .andAssertPresent("authorizations") + .andAssertPresent("count") + .andAssertStatus(200); + + List activityIds = response.getHeader("activityId"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/digitalchannelssb/ApiPushMessageSend.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/digitalchannelssb/ApiPushMessageSend.java new file mode 100644 index 0000000..28863ca --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/digitalchannelssb/ApiPushMessageSend.java @@ -0,0 +1,37 @@ +package cz.moneta.test.regression.cvm.api.digitalchannelssb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API push-message-send to WSO2 and assert response parameters") +public class ApiPushMessageSend { + + @TestCase(name = "Call API push-message-send to WSO2", environments = {TST1, PPE}) + public void postPushMessageSend(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "digitalchannels.sb/push-message-send/1.0", false, + "{\n" + + " \"cif\": \"" + harness.getConfig("cvm.client.pushmessagesend.cif") + "\",\n" + + " \"priority\": 1,\n" + + " \"responseTrackingCode\": \"1234\",\n" + + " \"templateId\": 1000045,\n" + + " \"treatmentTrackingCode\": \"1234\"\n" + + "}") + .postExtended() + .andAssertPresent("pushExtensionId") + .andAssertPresent("pushOrderId") + .andAssertStatus(200); + + List activityIds = response.getHeader("activityId"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/digitalchannelssb/ApiWustenrotCredentialsCreate.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/digitalchannelssb/ApiWustenrotCredentialsCreate.java new file mode 100644 index 0000000..b8029bd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/digitalchannelssb/ApiWustenrotCredentialsCreate.java @@ -0,0 +1,34 @@ +package cz.moneta.test.regression.cvm.api.digitalchannelssb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Assertions; + +import java.util.List; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API wustenrot-credentials-create to WSO2 and assert response parameters") +public class ApiWustenrotCredentialsCreate { + + @TestCase(name = "Call API wustenrot-credentials-create to WSO2", environments = {TST1, PPE}) + public void postWustenrotCredentialsCreate(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest().prepareRequestFromCvm( + "digitalchannels.sb/wustenrot-credentials-create/1.0", false, + "{\n" + + " \"uniPtKey\": " + harness.getConfig("cvm.client.wustenrotcredentials.uniptkey") + "\n" + + "}") + .postExtended() + .andAssertPresent("password") + .andAssertPresent("qrContent") + .andAssertPresent("qrUrl") + .andAssertStatus(200); + + List activityIds = response.getHeader("activityId"); + Assertions.assertEquals(1, activityIds.size(), "API should return activityId header"); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/enterpriseitservices/ApiCmhSendLetter.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/enterpriseitservices/ApiCmhSendLetter.java new file mode 100644 index 0000000..a72f420 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/enterpriseitservices/ApiCmhSendLetter.java @@ -0,0 +1,47 @@ +package cz.moneta.test.regression.cvm.api.enterpriseitservices; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.regression.cvm.api.inegrationgov.ApiMWFAE1; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API CMH_SEND_LETTER to WSO2 and assert response parameters") +public class ApiCmhSendLetter { + + @TestCase(name = "Call API CMH_SEND_LETTER to WSO2", environments = {TST1, PPE}) + public void postCmhSendLetter(Harness harness) { + final String documentURL = new ApiMWFAE1().getResponseOfCallMWFAE1(harness).extract("documentURL").textValue(); + + harness.tasks().wso2().restRequest().prepareRequestFromCvm("enterpriseit.services/CMH_SEND_LETTER/001", true, + "{\n" + + " \"AdresaJmeno\": \"Bart Simpson\",\n" + + " \"AdresaMesto\": \"Praha\",\n" + + " \"AdresaPSC\": \"15400\",\n" + + " \"AdresaPoznamka\": \"\",\n" + + " \"AdresaUlice\": \"Ječná 67\",\n" + + " \"AdresaZeme\": \"52\",\n" + + " \"CisloSmlouvy\": \"\",\n" + + " \"CisloUctu\": \"\",\n" + + " \"CostCentrum\": \"CC2150\",\n" + + " \"FormatDokumentu\": \"PDF\",\n" + + " \"IDInstanceKlienta\": null,\n" + + " \"IDSystemu\": \"\",\n" + + " \"IDUnifikovanehoKlienta\": null,\n" + + " \"LimitProDoruceni\": null,\n" + + " \"PocetStranek\": 2,\n" + + " \"PristupoveHeslo\": \"\",\n" + + " \"Spolecnost\": \"GEMCB\",\n" + + " \"StartWPS\": null,\n" + + " \"TypOdeslani\": \"1\",\n" + + " \"TypPrilohy\": \"\",\n" + + " \"TypSablony\": null,\n" + + " \"URIDokumentu\": \"" + documentURL + "\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/enterpriseitservices/ApiCrtMsgEmailOnline.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/enterpriseitservices/ApiCrtMsgEmailOnline.java new file mode 100644 index 0000000..aa84bba --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/enterpriseitservices/ApiCrtMsgEmailOnline.java @@ -0,0 +1,28 @@ +package cz.moneta.test.regression.cvm.api.enterpriseitservices; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API CRT_MSG_EMAIL_ONLINE to WSO2 and assert response parameters") +public class ApiCrtMsgEmailOnline { + + @TestCase(name = "Call API CRT_MSG_EMAIL_ONLINE to WSO2", environments = {TST1, PPE}) + public void postCrtMsgEmailOnline(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("enterpriseit.services/CRT_MSG_EMAIL_ONLINE/001", true, + "{\n" + + " \"CLIENT_ADDRESS_TO\": \"michal.sida@moneta.cz\",\n" + + " \"COST_CENTER_ID\": 32,\n" + + " \"FORMAT_ID\": 11492,\n" + + " \"GATEWAY_ADDRESS\": \"dedictvi@moneta.cz\",\n" + + " \"GW_SYS_ID\": 99,\n" + + " \"MESG_PARAMS\": \"PAR1|PAR2|PAR3|PAR4\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("MESG_ID"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/enterpriseitservices/ApiMessageSend.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/enterpriseitservices/ApiMessageSend.java new file mode 100644 index 0000000..ca46666 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/enterpriseitservices/ApiMessageSend.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.cvm.api.enterpriseitservices; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API message-send to WSO2 and assert response parameters") +@Disabled +public class ApiMessageSend { + + public static final String MESSAGE_SEND_PATH = "enterpriseit.services/message/send/001"; + + @TestCase(name = "Call API message-send to WSO2", environments = {TST1, PPE}) + public void postMessageSend(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm(MESSAGE_SEND_PATH, true, + "{\n" + + " \"communicationCode\": \"MMB_WHATSAPP_CVM_API\",\n" + + " \"reference\": \"12345\",\n" + + " \"cif\": \"9000671065\",\n" + + " \"senderInfo\": \"MONETA\",\n" + + " \"telephoneNumber\": \"420776028798\",\n" + + " \"channels\": [\n" + + " {\n" + + " \"channel\": \"WHATSAPP\"\n" + + " }\n" + + " ],\n" + + " \"personalStateRegistrationNumber\": \"1000012217\",\n" + + " \"messageDetails\": [\n" + + " {\n" + + " \"detailValue\": \"Vážený pane\",\n" + + " \"detailKey\": \"SALUTATION_DEC_5\"\n" + + " },\n" + + " {\n" + + " \"detailValue\": \"Vomáčko\",\n" + + " \"detailKey\": \"SUB1_LAST_NAME_DEC_5\"\n" + + " },\n" + + " {\n" + + " \"detailValue\": \"OP\",\n" + + " \"detailKey\": \"CALC_ITEM_1\"\n" + + " }\n" + + " ],\n" + + " \"createdBy\": \"123007844\",\n" + + " \"templateAlias\": \"870005\",\n" + + " \"partyId\": \"850980\",\n" + + " \"isTesting\": true\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("messageId"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/inegrationgov/ApiGetCheckControls.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/inegrationgov/ApiGetCheckControls.java new file mode 100644 index 0000000..ec1b3cf --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/inegrationgov/ApiGetCheckControls.java @@ -0,0 +1,29 @@ +package cz.moneta.test.regression.cvm.api.inegrationgov; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_CHECK_CONTROLS to WSO2 and assert response parameters") +public class ApiGetCheckControls { + + @TestCase(name = "Call API GET_CHECK_CONTROLS to WSO2", environments = {TST1, PPE}) + public void postGetCheckControls(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("integration.gov/GET_CHECK_CONTROLS/001", true, + "{\n" + + " \"WFID\": \"CLCH_0000001101\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("RS_DATA") + .andAssertPresent("RS_DATA[0]") + .andAssertPresent("RS_DATA[0].PRODPACKAGEKEY") + .andAssertPresent("RS_DATA[0].CIFAPPKEY") + .andAssertPresent("RS_DATA[0].NAME"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/inegrationgov/ApiMWFAE1.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/inegrationgov/ApiMWFAE1.java new file mode 100644 index 0000000..4b7a1f4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/inegrationgov/ApiMWFAE1.java @@ -0,0 +1,59 @@ +package cz.moneta.test.regression.cvm.api.inegrationgov; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API MWFAE1 to WSO2 and assert response parameters") +public class ApiMWFAE1 { + + @TestCase(name = "Call API MWFAE1 to WSO2", environments = {TST1, PPE}) + public void postMWFAE1(Harness harness) { + getResponseOfCallMWFAE1(harness); + } + + public RawRestRequest.Response getResponseOfCallMWFAE1(Harness harness) { + return harness.tasks().wso2().restRequest().prepareRequestFromCvm("integration.gov/MWFAE1/001", true, + "{\n" + + " \"Data\": [\n" + + " {\n" + + " \"RS_NAME\": \"string\",\n" + + " \"RS_VALUE\": \"string\"\n" + + " }\n" + + " ],\n" + + " \"InteractiveContractId\": null,\n" + + " \"InteractiveContractName\": null,\n" + + " \"InteractiveHolderRole\": null,\n" + + " \"InteractiveHolderUserName\": null,\n" + + " \"InteractiveState\": null,\n" + + " \"IsInteractive\": null,\n" + + " \"directPrintEnable\": null,\n" + + " \"docType\": \"PDF\",\n" + + " \"duplexMode\": null,\n" + + " \"numberOfCopies\": null,\n" + + " \"printDoc\": null,\n" + + " \"printerAddress\": null,\n" + + " \"printerPort\": null,\n" + + " \"rptData\": \"KlimtováMilan Novák777777777Milan" + + ".Novak@wustenrot.czhttps://moneta.page.link/?apn=cz.moneta.smartbanka&isi=1122443334&ibi=cz" + + ".moneta.smartbanka&si=https://www.moneta.cz/documents/cz/wustenrot/page.png&link=https://smartbanka.moneta" + + ".cz/?user_lead%3Df9316c185d1a4cc1857ae3d97261ba3f7d907ae89a99432aad4bd5037734e3d1\",\n" + + " \"rptName\": \"vcs://Runtime/Non-UFO/WPS/WELCOME_WUSTENROT_MONETA.wfd\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("result") + .andAssertPresent("numberOfPages") + .andAssertPresent("InteractiveTicketId") + .andAssertPresent("documentURL") + .andAssertPresent("docGuid"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/investments/ApiGetClientDeals.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/investments/ApiGetClientDeals.java new file mode 100644 index 0000000..82c56d5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/investments/ApiGetClientDeals.java @@ -0,0 +1,28 @@ +package cz.moneta.test.regression.cvm.api.investments; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_CLIENT_DEALS to WSO2 and assert response parameters") +public class ApiGetClientDeals { + + @TestCase(name = "Call API GET_CLIENT_DEALS to WSO2", environments = {TST1, PPE}) + public void postGetClientDeals(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("investments.cluster/GET_CLIENT_DEALS/001", true, + "{\n" + + "\"CIF\":\"" + harness.getConfig("cvm.client.investment.cif") + "\",\n" + + "\"Produkt\": \"1\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_DATA") + .andAssertPresent("RS_DATA[0]") + .andAssertPresent("RS_DATA[0].Status") + .andAssertPresent("RS_DATA[0].ISIN") + .andAssertPresent("RS_DATA[0].Cena"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiDoInfolimit011.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiDoInfolimit011.java new file mode 100644 index 0000000..9ae02b8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiDoInfolimit011.java @@ -0,0 +1,37 @@ +package cz.moneta.test.regression.cvm.api.risk; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API DO_INFOLIMIT_011 to WSO2 and assert response parameters") +public class ApiDoInfolimit011 { + + @TestCase(name = "Call API DO_INFOLIMIT_011 to WSO2", environments = {TST1, PPE}) + public void postDoInfolimit011(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("risk.cluster/NAS/DO_INFOLIMIT_011/001", true, + "{\n" + + " \"RC\": \"0123456789\",\n" + + " \"CONTRACT_ID\": \"0123456789\",\n" + + " \"CONTRACT_SYSTEM\": null,\n" + + " \"NAME\": \"Jan\",\n" + + " \"SURNAME\": \"Novák\",\n" + + " \"ICO\": \"01234567\",\n" + + " \"CLIENT_TYPE\": null,\n" + + " \"POS_ID\": \"86001430\",\n" + + " \"ONLINE_CHECK\": \"0\",\n" + + " \"DISTR_CHANNEL_ID\": \"POS\",\n" + + " \"UID\": 123456,\n" + + " \"CACHE_MODE\": 0\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("RS_DATA") + .andAssertPresent("RS2_DATA"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiDoKo005.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiDoKo005.java new file mode 100644 index 0000000..20c0115 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiDoKo005.java @@ -0,0 +1,30 @@ +package cz.moneta.test.regression.cvm.api.risk; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API DO_KO_005 to WSO2 and assert response parameters") +public class ApiDoKo005 { + + @TestCase(name = "Call API DO_KO_005 to WSO2", environments = {TST1, PPE}) + public void postDoKo005(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("risk.cluster/NAS/DO_KO_005/001", true, + "{\n" + + " \"RC\": \"461119444\",\n" + + " \"ONLINE_CHECK\":1\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("RS_DATA") + .andAssertPresent("RS_DATA[0]") + .andAssertPresent("RS_DATA[0].ID_BUSINESS") + .andAssertPresent("RS_DATA[0].CUST_TYPE") + .andAssertPresent("KO_FLAG"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppClientReasons016.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppClientReasons016.java new file mode 100644 index 0000000..c508ba5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppClientReasons016.java @@ -0,0 +1,35 @@ +package cz.moneta.test.regression.cvm.api.risk; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_APP_CLIENT_REASONS_016 to WSO2 and assert response parameters") +public class ApiGetAppClientReasons016 { + + @TestCase(name = "Call API GET_APP_CLIENT_REASONS_016 to WSO2", environments = {TST1, PPE}) + public void postGetAppClientReasons016(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("risk.cluster/NAS/GET_APP_CLIENT_REASONS_016/001", true, + "{\n" + + " \"APP_KEY\": 62572561,\n" + + " \"INST_CUST_ID\": null,\n" + + " \"INST_OBLGTN_KEY\": \"\",\n" + + " \"DECISION_TYPE\": \"\",\n" + + " \"INST_DOC_KEY\": null,\n" + + " \"REASON_ADD_ROLE\": \"\",\n" + + " \"EMP_ROLE\": \"\",\n" + + " \"REASON_TEXT_TYPE\": \"DEF\",\n" + + " \"SCREEN_ID\": \"\",\n" + + " \"FILTER_VALID_ONLY_FLAG\": \"\",\n" + + " \"REASONS_FILTER\": \"\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("RS_DATA"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppId.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppId.java new file mode 100644 index 0000000..101fee1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppId.java @@ -0,0 +1,25 @@ +package cz.moneta.test.regression.cvm.api.risk; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_APP_ID to WSO2 and assert response parameters") +public class ApiGetAppId { + + @TestCase(name = "Call API GET_APP_ID to WSO2", environments = {TST1, PPE}) + public void postGetAppId(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("risk.cluster/NAS/GET_APP_ID/001", true, + "{\n" + + " \"APP_KEY\": " + harness.getConfig("cvm.application.getappid.key") + "\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("APP_ID"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppLst016.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppLst016.java new file mode 100644 index 0000000..aeaaeb3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppLst016.java @@ -0,0 +1,44 @@ +package cz.moneta.test.regression.cvm.api.risk; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_APP_LST_016 to WSO2 and assert response parameters") +public class ApiGetAppLst016 { + + @TestCase(name = "Call API GET_APP_LST_016 to WSO2", environments = {TST1, PPE}) + public void postGetAppLst016(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("risk.cluster/NAS/GET_APP_LST_016/001", true, + "{\n" + + " \"CIF_IN\": 3000056095,\n" + + " \"RWS_DATA_01\": [\n" + + " {\n" + + " \"APP_STATE_IN\": null\n" + + " }\n" + + " ],\n" + + " \"RWS_DATA_02\": [\n" + + " {\n" + + " \"FE_CHANNEL_IN\": \"SBA\"\n" + + " }\n" + + " ],\n" + + " \"RWS_DATA_03\": [\n" + + " {\n" + + " \"BUS_PROD_CLASS_IN\": \"50\" }\n" + + " ],\n" + + " \"RWS_DATA_05\": [\n" + + " {\n" + + " \"EMPLOYEE_PROCESS_ROLE\": null\n" + + " }\n" + + " ]\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("RWS_DATA_04"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppsStates.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppsStates.java new file mode 100644 index 0000000..9832ac0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetAppsStates.java @@ -0,0 +1,29 @@ +package cz.moneta.test.regression.cvm.api.risk; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_APPS_STATES to WSO2 and assert response parameters") +public class ApiGetAppsStates { + + @TestCase(name = "Call API GET_APPS_STATES to WSO2", environments = {TST1, PPE}) + public void postGetAppsStates(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("risk.cluster/NAS/GET_APPS_STATES/001", true, + "{\n" + + " \"RS_IN\": [\n" + + " {\n" + + " \"APP_KEY\": " + harness.getConfig("cvm.application.key") + "\n" + + " }\n" + + " ]\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("RS_OUT"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetPrdctCandApp026.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetPrdctCandApp026.java new file mode 100644 index 0000000..a83a3fd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetPrdctCandApp026.java @@ -0,0 +1,31 @@ +package cz.moneta.test.regression.cvm.api.risk; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_PRDCT_CAND_APP_026 to WSO2 and assert response parameters") +public class ApiGetPrdctCandApp026 { + + @TestCase(name = "Call API GET_PRDCT_CAND_APP_026 to WSO2", environments = {TST1, PPE}) + public void postGetPrdctCandApp026(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("risk.cluster/NAS/GET_PRDCT_CAND_APP_026/001", true, + "{\n" + + " \"APP_KEY\": 62546575,\n" + + " \"PRODUCT_CANDIDATE_TYPE_IN\": \"R\",\n" + + " \"CONTEXT_TYPE\": \"\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("RS_DATA") + .andAssertPresent("RS_DATA[0]") + .andAssertPresent("RS_DATA[0].PC_INS_DT") + .andAssertPresent("RS_DATA[0].INST_AMOUNT") + .andAssertPresent("RS_DATA[0].LOAN_AMOUNT"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetRqDocsVariant003.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetRqDocsVariant003.java new file mode 100644 index 0000000..bc660fe --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/risk/ApiGetRqDocsVariant003.java @@ -0,0 +1,32 @@ +package cz.moneta.test.regression.cvm.api.risk; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API GET_RQ_DOCS_VARIANT_003 to WSO2 and assert response parameters") +public class ApiGetRqDocsVariant003 { + + @TestCase(name = "Call API GET_RQ_DOCS_VARIANT_003 to WSO2", environments = {TST1}) + public void postGetRqDocsVariant003(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm("risk.cluster/NAS/GET_RQ_DOCS_VARIANT_003/001", true, + "{" + + " \"RS_DATA_IN\": [\n" + + " {\n" + + " \"APP_KEY\": 68048358\n" + + " }\n" + + " ]\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("tifResponseStatus.resultCode", "0") + .andAssertPresent("RS_DATA_OUT") + .andAssertPresent("RS_DATA_OUT[0]") + .andAssertPresent("RS_DATA_OUT[0].DOC_TP") + .andAssertPresent("RS_DATA_OUT[0].REQD_DOC_CATG") + .andAssertPresent("RS_DATA_OUT[0].REQD_DOC_PURP"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/api/sme/ApiCrtCampaign.java b/tests/src/test/java/cz/moneta/test/regression/cvm/api/sme/ApiCrtCampaign.java new file mode 100644 index 0000000..c0d0b38 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/api/sme/ApiCrtCampaign.java @@ -0,0 +1,34 @@ +package cz.moneta.test.regression.cvm.api.sme; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Call API crt-campaign to WSO2 and assert response parameters") +public class ApiCrtCampaign { + + public static final String CRT_CAMPAIGN_PATH = "sme.cluster/crt-campaign/001"; + + @TestCase(name = "Call API crt-campaign to WSO2", environments = {TST1}) + public void postCrtCampaign(Harness harness) { + harness.tasks().wso2().restRequest().prepareRequestFromCvm(CRT_CAMPAIGN_PATH, true, + "{\n" + + " \"RC\": \"\",\n" + + " \"IC\": \"45272956\",\n" + + " \"CATEGORY\": \"9\",\n" + + " \"FIRST_NAME\": \"Emanuel\",\n" + + " \"LAST_NAME\": \"Sklenář\",\n" + + " \"EMAIL\": \"j.novak@seznam.cz\",\n" + + " \"MOBILE\": \"+420777213293\",\n" + + " \"REQUESTED_LOAN_AMOUNT\": 677.78,\n" + + " \"ID_CAMPAIGN_EXT\": \"Web_express\",\n" + + " \"CAMPAIGN_TYPE\": \"9\",\n" + + " \"CAMPAIGN_NAME\": \"Toto je test\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("ID_OPPORTUNITY"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/process/ProcessConsentChange.java b/tests/src/test/java/cz/moneta/test/regression/cvm/process/ProcessConsentChange.java new file mode 100644 index 0000000..cf2ea9a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/process/ProcessConsentChange.java @@ -0,0 +1,115 @@ +package cz.moneta.test.regression.cvm.process; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.STO704_S001_ClientConsentsPage; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbGetDataTasks; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbVerificationTasks; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.jooq.Record; +import org.jooq.Result; + +import java.time.LocalDateTime; +import java.time.LocalTime; + +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@TestScenario(name = "Change client's consents and check state in online DB") +public class ProcessConsentChange { + + public static final String GRANTED = "CNST_GRANTED"; + public static final String RETRACTED = "CNST_RETRACTED"; + public static final String SOURCE_SYSTEM = "ODS_GET_EVDCNST_DATA"; + + public static final String MARKETING_CONSENT_TYPE_ATTR_NAME = "EVD_CNST_TP_ID"; + public static final String MARKETING_CONSENT_VALUE_ATTR_NAME = "EVD_CNST_STAT_ID"; + public static final String MARKETING_CONSENT_TYPE_IB_SB_VALUE = "MKTG_BYONLINE"; + public static final String MARKETING_CONSENT_TYPE_SMS_VALUE = "MKTG_BYTEXTMSG"; + public static final String MARKETING_CONSENT_TYPE_POST_VALUE = "MKTG_BYPOST"; + + public static final String MARKETING_CONSENT_IB_SB_COLUMN = "CNST_MKT_IB_SB"; + public static final String MARKETING_CONSENT_SMS_COLUMN = "CNST_MKT_SMS"; + public static final String MARKETING_CONSENT_POST_COLUMN = "CNST_MKT_POST"; + public static final String MARKETING_CONSENT_UPDATE_DT_COLUMN = "CNST_UPD_DT"; + + public static final String UI_CONSENT_REVOKED = "odvolaný"; + public static final String UI_GRANTED = "platný"; + + @TestCase(name = "Check of SMS consent state on client. If enabled, check of enabled IB/SB and post consent state, disable IB, SMS " + + "and Post consent. If disabled, check of disabled IB/SB and post consent state, enable all consents. Check creation of " + + "records in SASRT_ONLINE_DATA", environments = {TST1}) + public void switchConsentsStateAndControlInDB(Harness harness, @Key("ufo-banka-banker") Credentials credentials) throws InterruptedException { + Long clientUniPtKey = Long.valueOf(harness.getConfig("cvm.client.processconsentchange.uniptkey")); + OnlineDbGetDataTasks onlineDbGetDataTasks = harness.tasks().cvm().onlineDbGetData(); + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + Record oldClientConsents = onlineDbGetDataTasks.getClientConsents(clientUniPtKey); + + assertTrue(GRANTED.equals(oldClientConsents.getValue(MARKETING_CONSENT_IB_SB_COLUMN)) + || RETRACTED.equals(oldClientConsents.getValue(MARKETING_CONSENT_IB_SB_COLUMN)), + "IB/SB consent should be granted or revoked in SASRT_CLIENT"); + + String actualState = (String) oldClientConsents.getValue(MARKETING_CONSENT_IB_SB_COLUMN); + boolean willRevokeConsents = GRANTED.equals(actualState); + String futureState = willRevokeConsents ? RETRACTED : GRANTED; + + STO704_S001_ClientConsentsPage clientConsentsPage = harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .fillSearchInput(clientUniPtKey.toString()) + .searchBy(SearchBy.UID) + .onClientDetailsPage() + .clickClientConsents(); + + if (willRevokeConsents) { + clientConsentsPage + .clickRevokeIbSbConsent() + .clickRevokeSmsConsent() + .clickRevokePostConsent() + .assertIbSBConsentRevoked(UI_CONSENT_REVOKED) + .assertSmsConsentRevoked(UI_CONSENT_REVOKED) + .assertPostConsentRevoked(UI_CONSENT_REVOKED); + } else { + clientConsentsPage + .clickGiveAllConsents() + .clickOkButton() + .assertAllConsentsValid(UI_GRANTED); + } + + Thread.sleep(5000 + 5000); // Delay to finish async code (one retry 5s and maximum delay of scheduler 5s) + + assertEquals(actualState, oldClientConsents.getValue(MARKETING_CONSENT_IB_SB_COLUMN), + "IB/SB consent should be " + actualState + " in SASRT_CLIENT"); + assertEquals(actualState, oldClientConsents.getValue(MARKETING_CONSENT_SMS_COLUMN), + "SMS consent should be " + actualState + " in SASRT_CLIENT"); + assertEquals(actualState, oldClientConsents.getValue(MARKETING_CONSENT_POST_COLUMN), + "Post consent should be " + actualState + " in SASRT_CLIENT"); + if (LocalTime.now().getHour() >= 9) { + // At least one test run today + assertTrue(LocalDateTime.now().plusHours(-5).isBefore( + LocalDateTime.parse((String) oldClientConsents.getValue(MARKETING_CONSENT_UPDATE_DT_COLUMN))), + "Consents should be changed in last 5 hours"); + } + + String baseMsgId = onlineDbGetDataTasks.getOnlineDataBaseMsgIdLastChanged(SOURCE_SYSTEM, + clientUniPtKey.toString()); + assertNotNull(baseMsgId, "There should be logged event data in SASRT_ONLINE_DATA"); + + OnlineDbVerificationTasks onlineDbVerificationTasks = harness.tasks().cvm().onlineDbVerification(); + + Result onlineDataConsents = onlineDbGetDataTasks.getOnlineData(SOURCE_SYSTEM, baseMsgId); + + onlineDbVerificationTasks.assertOnlineDbRecordFindSubMessageAndCheckAttribute(onlineDataConsents, + MARKETING_CONSENT_TYPE_ATTR_NAME, MARKETING_CONSENT_TYPE_IB_SB_VALUE, MARKETING_CONSENT_VALUE_ATTR_NAME, futureState); + onlineDbVerificationTasks.assertOnlineDbRecordFindSubMessageAndCheckAttribute(onlineDataConsents, + MARKETING_CONSENT_TYPE_ATTR_NAME, MARKETING_CONSENT_TYPE_SMS_VALUE, MARKETING_CONSENT_VALUE_ATTR_NAME, futureState); + onlineDbVerificationTasks.assertOnlineDbRecordFindSubMessageAndCheckAttribute(onlineDataConsents, + MARKETING_CONSENT_TYPE_ATTR_NAME, MARKETING_CONSENT_TYPE_POST_VALUE, MARKETING_CONSENT_VALUE_ATTR_NAME, futureState); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/cvm/process/ProcessWebExpressDropOut.java b/tests/src/test/java/cz/moneta/test/regression/cvm/process/ProcessWebExpressDropOut.java new file mode 100644 index 0000000..89175a4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/cvm/process/ProcessWebExpressDropOut.java @@ -0,0 +1,165 @@ +package cz.moneta.test.regression.cvm.process; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbGetDataTasks; +import cz.moneta.test.dsl.util.task.cvm.onlinedb.OnlineDbVerificationTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.jooq.Record; +import org.jooq.Result; + +import java.time.*; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +@TestScenario(name = "Starts web express loan process and leave it alone. It expects that will be run every day after 8:30") +public class ProcessWebExpressDropOut { + + private static final String EVENT_DATA_TO_FIND = "\"PHONE_NUMBER\":\"%s\""; + private static final String LOAN_AMOUNT = "295000"; + private static final String LOAN_DURATION = "50"; + private static final String WEB_EXP_DROPOUT_CC = "cvm.cluster/WEB_EXP_DROPOUT_CC/1.0.0"; + private static final String CLIENT_PHONENUMBER_CONFIG_KEY = "cvm.client.webexpressdropout.phonenumber"; + + @TestCase(name = "Starts web express loan process and check, whether RTRD_WEB_TRIGGER_Expres planned drop out event", + environments = {TST1, PPE}) + public void startWebExpressProcess(Harness harness) throws InterruptedException { + // 2026-02 VV: FullyOnline no longer exists and has been removed from Harness + // FullyOnlineExpressTasks tasksFullyOnline = harness.tasks().retail().loans().cloanFullyOnline(); + String clientPhoneNumber = harness.getConfig(CLIENT_PHONENUMBER_CONFIG_KEY); + // NonClient nonClient = tasksFullyOnline.createFullyOnlineNonClient() + // .withMobileNumber(clientPhoneNumber.substring(4)); + // harness.withFullyOnline() + // .openWelcomePage() + // .then(tasksFullyOnline.setBasicLoanParams(LOAN_AMOUNT, LOAN_DURATION)) + // .then(tasksFullyOnline.fillClientInfo(nonClient)); + + Thread.sleep(2000); // Delay to finish async code + + OnlineDbGetDataTasks onlineDbGetDataTasks = harness.tasks().cvm().onlineDbGetData(); + Result onlineDbRecords = onlineDbGetDataTasks.getPlannedTasks( + OnlineDbGetDataTasks.PAYLOAD_ATTRIBUTE_NAME_CLIENT_PHONE_NUMBER, clientPhoneNumber); + assertTrue(onlineDbRecords.isNotEmpty(), "Should exist at least one planned event"); + Record onlineDbRecord = onlineDbRecords.get(onlineDbRecords.size() - 1); + + OnlineDbVerificationTasks onlineDbVerificationTasks = harness.tasks().cvm().onlineDbVerification(); + String activityId = onlineDbVerificationTasks.assertOnlineDbRecordIsValid(onlineDbRecord, + "digitalChannelsLoanWebExpressTask", WEB_EXP_DROPOUT_CC, 40 * 60, + data -> { + assertEquals(LOAN_AMOUNT, data.get("productExpresLoanAmount").getAsString(), + "Event data should contain correct data"); + assertEquals(LOAN_DURATION, data.get("productExpresTerm").getAsString(), + "Event data should contain correct data"); + }); + + Result triggerLogRecords = onlineDbGetDataTasks.getTriggerLogs( + "RTRD_WEB_TRIGGER_Expres", activityId); + assertEquals(1, triggerLogRecords.size(), "Should log one record"); + + onlineDbVerificationTasks.assertTriggerLogRecordIsPlanned(triggerLogRecords.get(0), onlineDbRecord, + WEB_EXP_DROPOUT_CC, + logData -> assertTrue(logData.contains("\"PHONE_NUMBER\":\"" + clientPhoneNumber + + "\",\"PROCESS_TRACKER\":\"process.tracker.clientInfo\"}"), + "Planned call with correct additional data should be logged")); + } + + @TestCase(name = "Check, whether web express loan drop out process initiated by previous startWebExpressProcess was successfully " + + "finished in last day", environments = {TST1}) + public void checkFinishOfWebExpressDropOutInLastDayTst1(Harness harness) { + OnlineDbGetDataTasks onlineDbGetDataTasks = harness.tasks().cvm().onlineDbGetData(); + String clientPhoneNumber = harness.getConfig(CLIENT_PHONENUMBER_CONFIG_KEY); + DayOfWeek todayDayOfWeek = LocalDate.now().getDayOfWeek(); + if (todayDayOfWeek == DayOfWeek.SUNDAY || + (todayDayOfWeek == DayOfWeek.MONDAY && LocalTime.now().isBefore(LocalTime.of(8, 30))) || + DateUtils.isStateHoliday(LocalDate.now())) { + return; // Skip test + } + Result triggerLogRecords = onlineDbGetDataTasks.getTriggerLogsFinishedInLastDay( + String.format(EVENT_DATA_TO_FIND, clientPhoneNumber)); + assertTrue(triggerLogRecords.isNotEmpty(), "Should be there at least one record"); + + Result decisionLogRecords = onlineDbGetDataTasks.getDecisionLogInLastDay("Web_Exp_Dropout_CC", + "\"MOB_PHONE\":\"" + clientPhoneNumber + "\""); + + assertEquals(triggerLogRecords.size(), decisionLogRecords.size(), + "Should be same count of finished tasks in RTRD and decisions in RTDM"); + + for (int i = 0; i < triggerLogRecords.size(); i++) { + Record triggerLogRecord = triggerLogRecords.get(i); + Record decisionLogRecord = decisionLogRecords.get(i); + + String response = (String) decisionLogRecord.getValue("RESPONSE_VARIABLES_STRING"); + assertTrue(response.contains("\"REPLY_TYPE\":\"STANDARD\"") || response.contains("\"REPLY_TYPE\":\"NORMAL\""), + "Associated decision log should have had the correct response, but had: " + response); + ZonedDateTime decisionTime = LocalDateTime.parse((String) decisionLogRecord.getValue("EVENT_DT")) + .atZone(ZoneId.systemDefault()); + + OnlineDbVerificationTasks onlineDbVerificationTasks = harness.tasks().cvm().onlineDbVerification(); + onlineDbVerificationTasks.assertTriggerLogRecordSucceeded(triggerLogRecord, WEB_EXP_DROPOUT_CC, decisionTime); + } + + } + + @TestCase(name = "Check, whether web express loan drop out process initiated by previous startWebExpressProcess was successfully " + + "finished in last day", environments = {PPE}) + public void checkFinishOfWebExpressDropOutInLastDayPpe(Harness harness) { + OnlineDbGetDataTasks onlineDbGetDataTasks = harness.tasks().cvm().onlineDbGetData(); + String clientPhoneNumber = harness.getConfig(CLIENT_PHONENUMBER_CONFIG_KEY); + DayOfWeek todayDayOfWeek = LocalDate.now().getDayOfWeek(); + if (todayDayOfWeek == DayOfWeek.SUNDAY || + (todayDayOfWeek == DayOfWeek.MONDAY && LocalTime.now().isBefore(LocalTime.of(8, 30))) || + DateUtils.isStateHoliday(LocalDate.now())) { + return; // Skip test + } + Result triggerLogRecords = onlineDbGetDataTasks.getTriggerLogsFinishedInLastDay( + String.format(EVENT_DATA_TO_FIND, clientPhoneNumber)); + assertTrue(triggerLogRecords.isNotEmpty(), "Should be there at least one record"); + + } + + @TestCase(name = "Check, there is not any finished drop out event in last 24 hours on sunday test run", environments = {TST1, PPE}) + public void checkNoFinishOfWebExpressDropOutInLastDayOnSunday(Harness harness) { + if ((LocalDate.now().getDayOfWeek() == DayOfWeek.SUNDAY && LocalTime.now().isAfter(LocalTime.of(12, 0))) || + (LocalDate.now().getDayOfWeek() == DayOfWeek.MONDAY && LocalTime.now().isBefore(LocalTime.of(8, 30)))) { + String clientPhoneNumber = harness.getConfig(CLIENT_PHONENUMBER_CONFIG_KEY); + Result triggerLogRecords = harness.tasks().cvm().onlineDbGetData().getTriggerLogsFinishedInLastDay( + String.format(EVENT_DATA_TO_FIND, clientPhoneNumber)); + + assertEquals(0, triggerLogRecords.size(), "Should not be there any finished record"); + } + } + + @TestCase(name = "Check, whether there is exactly one planned web express loan drop out on monday morning for all processes " + + "initiated by startWebExpressProcess calls during weekend", environments = {TST1, PPE}) + public void checkOnlyOneWebExpressDropOutPlannedToMondayMorning(Harness harness) { + String clientPhoneNumber = harness.getConfig(CLIENT_PHONENUMBER_CONFIG_KEY); + DayOfWeek todayDayOfWeek = LocalDate.now().getDayOfWeek(); + if (todayDayOfWeek == DayOfWeek.SUNDAY) { + OnlineDbGetDataTasks onlineDbGetDataTasks = harness.tasks().cvm().onlineDbGetData(); + Result triggerLogRecords = onlineDbGetDataTasks.getTriggerLogsPlanned(String.format(EVENT_DATA_TO_FIND, + clientPhoneNumber)); + + assertTrue(triggerLogRecords.isNotEmpty(), "Should be there at least one planned event"); + OnlineDbVerificationTasks onlineDbVerificationTasks = harness.tasks().cvm().onlineDbVerification(); + onlineDbVerificationTasks.assertLogRecordsPlannedToMondayMorning(WEB_EXP_DROPOUT_CC, triggerLogRecords.get(0), false); + for (int i = 1; i < triggerLogRecords.size(); i++) { + onlineDbVerificationTasks.assertLogRecordsPlannedToMondayMorning(WEB_EXP_DROPOUT_CC, triggerLogRecords.get(i), true); + } + + if (LocalTime.now().isAfter(LocalTime.of(12, 0))) { + Result canceledTriggerLogRecords = + onlineDbGetDataTasks.getTriggerLogsCanceledInLastDay(String.format(EVENT_DATA_TO_FIND, clientPhoneNumber)); + + assertTrue(canceledTriggerLogRecords.isNotEmpty(), "Should be there at least one canceled event"); + for (Record canceledTriggerLogRecord : canceledTriggerLogRecords) { + onlineDbVerificationTasks.assertLogRecordsPlannedToMondayMorning(WEB_EXP_DROPOUT_CC, canceledTriggerLogRecord, false); + } + } + } + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/PrivateApiCreateRequestViaCaGwTest.java b/tests/src/test/java/cz/moneta/test/regression/data/api/PrivateApiCreateRequestViaCaGwTest.java new file mode 100644 index 0000000..e46dc01 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/PrivateApiCreateRequestViaCaGwTest.java @@ -0,0 +1,98 @@ +package cz.moneta.test.regression.data.api; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application.ApplicationTokenResponse; +import cz.moneta.test.dsl.cagw.api.v1.external.product.cloan.application.Loan; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Defect; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; + +import java.util.Calendar; +import java.util.GregorianCalendar; + +@TestScenario(name = "Create request via CA GW, verify it in ib") +public class PrivateApiCreateRequestViaCaGwTest { + + @SuppressWarnings("unchecked") + @Defect("Nor finished, waiting for HRIS integration. TA-473") + @TestCase(name = "End to end testcase create customer and then create payment via CA GW") + public void tc_create_Request_with_private_api_ca_gw(Harness harness, @Key("ufo-banka-banker") Credentials credentials) { + Calendar passportExpiry = GregorianCalendar.getInstance(); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + passportExpiry.set(2020, Calendar.JULY, 14); + + NonClient clientTestData = harness.data().newNonClient() + .withEmail("123456@moneta.cz") + .withPassportExpiryDateRaw(passportExpiry.getTime()) + .withPassportId("39729636"); + + long applicationId = harness.withCaGw().api().v1().external().product().cbl().application() + .prepareApplicationRequest() + .withApplicationId("l7xx7877406788d04174b71e28cf5158a34f") + .withApplicationSecret("e47267567a0344d4b5a1175e56e79196") + .log("Application ID is: {}", ApplicationTokenResponse::getApplicationId) + .loan(Loan.builder() + .termMonths(96) + .amount(150000) + .build()) + .client(harness.tasks().caGw().api().client() + .from(clientTestData)) + .send() + .getApplicationId(); + + Assertions.assertTrue(applicationId != 0, "ApplicationId from response is empty"); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(clientTestData, credentials.getUsername())) + .selectFromListOfRequests() + .clickOpenRequestDetail() + .onExpressScoringResultPage() + .waitForStatusAndRefresh("PODMÍNĚNÝ SOUHLAS") + .clickCreateAccounts() + .onSelectApprovedVariantPage() + .clickSecondVariant() + .clickSelect() + .onMegaExpressRequestPage() + .clickFinishRequestButton() + .clickContinueButtonToMegaExpressRequestPage() + .clickFillInDocuments() + .continueToClientRequiredDocumentsListPage() + .clickAddDocument() + .continueToConfirmationOfReceiptAddPage() + .then(bankaTasks.expresTasks().fillConfirmationOfReceipt(clientTestData)) + .continueToClientRequiredDocumentsListPage() + .clickContinue() + .waitForStatusAndRefresh("SOUHLAS") + .clickCreateAccounts() + .onPreContractualInformationPrintedPage() + .continueToPrintCopyOfContractProposalPage() + .clickContinue() + .onCurrentAccountPage() + .selectFeePlan(CurrentAccountsEnum.GENIUS_FREE_FLEXI.getAccountName()) + .clickConfirm() + .onPreContractInformationPage() + .clickOnSigned() + .continueToDispositionOwnerPage() + .clickNotCreateNow() + .clickSkipCreate() + .onAddCodeOfRecommendedPersonPage() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onSuspendDispositionPrintPage() + .clickPrintEmpowermentNow() + .onClientFinalSignatureConfirmationPage() + .continueToSecondBankerJoiningPage() + .fillSurnameInput("Harness") + .clickSearchButton() + .selectBankerByLogin(credentials.getUsername()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/kyc/KycCaGwGetClientInformation.java b/tests/src/test/java/cz/moneta/test/regression/data/api/kyc/KycCaGwGetClientInformation.java new file mode 100644 index 0000000..3e28599 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/kyc/KycCaGwGetClientInformation.java @@ -0,0 +1,107 @@ +package cz.moneta.test.regression.data.api.kyc; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.v2.external.client.kyc.businesscard.BusinessCardResponse; +import cz.moneta.test.dsl.cagw.api.v4.token.TokenResponse; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.Date; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@SuppressWarnings("unchecked") +@NonConcurrentTestScenario(name = "KYC - confirm client identity via CAGW") +public class KycCaGwGetClientInformation { + + private static final String MOBILE_KEY = "12341234"; + private static final String OAUTH_2_CLIENT_ID = "l7xx3580306d692b4bd49a896b806582945e"; + private static final String OAUTH_2_CLIENT_SECRET = "f3f4222f5068421b939cf67d3ab35513"; + private static final String STATE = "S" + new Date().getTime(); + private static final String DATE_FROM = TestUtils.getTodayDate("dd.MM.yyyy"); + private static final String DATE_TO = new SimpleDateFormat("dd.MM.yyyy").format(java.sql.Date + .valueOf(LocalDate.parse(TestUtils.getTodayDate("yyyy-MM-dd")).plusDays(1))); + private static final String CLIENT_ID = "3289615"; + + @TestCase(name = "Login via KYC, get token, calling api with client client's business card ," + + " check data in UDEBS ", environments = {TST1}) + @JiraTestCase(id = "AO-T422") + public void tc_check_accounts_via_ca_gw_psd2(Harness harness, @Key("api.client") Credentials client) throws IOException { + + harness.withOauth2Web() + .onOauth2WebTransitionsKyc() + .openApproveAccessToAccountPageKyc(STATE, OAUTH_2_CLIENT_ID) + .then(harness.tasks().oauth2().web().loginToApproveAccessPageKyc(client.getUsername(), client.getPassword())) + .fillSmsKey(MOBILE_KEY) + .continueButton() + .getAuthTokenAndStoreItKyc(); + + String authToken = harness.withCaGw() + .api().v4().token() + .prepareTokenRequest() + .log("Token is: {}", TokenResponse::getAccess_token) + .then(harness.tasks().oauth2().token().setRequestValuesV2(OAUTH_2_CLIENT_ID, OAUTH_2_CLIENT_SECRET)) + .send() + .getAccess_token(); + + //KYC - GET /kyc/businessCard + BusinessCardResponse businesscard = harness.withCaGw() + .api().v2().external().client().kyc().bussinesCard() + .prepareBusinessCardRequest() + .then(harness.tasks().caGw().api().businessCard().setRequestValues(authToken)) + .send(); + + Assertions.assertEquals(businesscard.getFirstName(), "Jan"); + Assertions.assertEquals(businesscard.getLastName(), "Polang"); + Assertions.assertEquals(businesscard.getNationality(), "CZ"); + Assertions.assertEquals(businesscard.getGender(), "MALE"); + Assertions.assertEquals(businesscard.getBirthDate(), "1982-02-12"); + Assertions.assertEquals(businesscard.getBirthPlace(), "Praha"); + Assertions.assertEquals(businesscard.getAddress().getBuildingNumber(), "208"); + Assertions.assertEquals(businesscard.getAddress().getStreetNumber(), "8"); + Assertions.assertEquals(businesscard.getAddress().getStreet(), "Nerudova"); + Assertions.assertEquals(businesscard.getAddress().getCity(), "Praha"); + Assertions.assertEquals(businesscard.getAddress().getZip(), "11800"); + Assertions.assertEquals(businesscard.getAddress().getCountry(), "CZ"); + Assertions.assertEquals(businesscard.getBirthNumber(), "8202128627"); + Assertions.assertEquals(businesscard.getPrimaryIdentityPaper().getNumber(), "200115551"); + Assertions.assertEquals(businesscard.getPrimaryIdentityPaper().getExpirationDate(), "2022-01-28"); + Assertions.assertEquals(businesscard.getPrimaryIdentityPaper().getIssuingCountry(), "CZ"); + Assertions.assertEquals(businesscard.getPrimaryIdentityPaper().getType(), "ID_CARD_CR"); + + Result records = harness.withUdebs() + .transactionForKyc() + .getTransaction(DATE_FROM, DATE_TO, CLIENT_ID, STATE); + + harness.log(records.formatJSON()); + + Assertions.assertEquals(records.get(0).getValue("OPERID").toString(), "914"); + Assertions.assertEquals(records.get(0).getValue("STATUSID").toString(), "60"); + Assertions.assertEquals(records.get(0).getValue("CHANNELID").toString(), "23"); + + ObjectMapper mapper = new ObjectMapper(); + JsonNode json = mapper.readValue(records.get(0).getValue("DATA").toString(), JsonNode.class); + + Assertions.assertEquals(json.findValuesAsText("applicationName").get(0), "Testovaci klient"); + Assertions.assertEquals(json.findValuesAsText("applicationApiKey").get(0), OAUTH_2_CLIENT_ID); + Assertions.assertEquals(json.findValuesAsText("mobileNumber").get(0), "+420777123321"); + Assertions.assertEquals(json.get("scopes").get(0).toString(), "\"KYC\""); + Assertions.assertNotNull(json.findValuesAsText("state").get(0)); + Assertions.assertEquals(json.findValuesAsText("thirdPartyCode").get(0), "111456121"); + Assertions.assertNotNull(json.findValuesAsText("validFrom").get(0)); + Assertions.assertNotNull(json.findValuesAsText("validTo").get(0)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/aisp/Psd2CaGwGetAccountInformation.java b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/aisp/Psd2CaGwGetAccountInformation.java new file mode 100644 index 0000000..c4ecb5d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/aisp/Psd2CaGwGetAccountInformation.java @@ -0,0 +1,89 @@ +package cz.moneta.test.regression.data.api.psd2.aisp; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.AccountsResponse.Accounts; +import cz.moneta.test.dsl.cagw.oauth2.token.Oauth2TokenResponse; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.util.Locale; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@SuppressWarnings("unchecked") +@NonConcurrentTestScenario(name = "Check client accounts, account balance and verify it in UFO Banka") +public class Psd2CaGwGetAccountInformation { + + private static final String PATTERN = "###,###.##"; + private static final String BIRTH_NUMBER = "8202128627"; + private static final String OAUTH_2_CLIENT_SECRET = "2f43959c06f14c4f9b60c1776b7f0b7b"; + private static final String OAUTH_2_CLIENT_ID = "l7xx91bb88abcbda4b0db4cc8906803d56c4"; + private static final String MOBILE_KEY = "12341234"; + + @TestCase(name = "Check client accounts, account balance - end to end testcase via CA GW", environments = {TST1}) + @JiraTestCase(id = "AO-T423") + public void tc_check_accounts_via_ca_gw_psd2(Harness harness, @Key("api.client") Credentials client) { + + harness.withOauth2Web() + .onOauth2WebTransitions() + .openApproveAccessToAccountPage(OAUTH_2_CLIENT_ID) + .then(harness.tasks().oauth2().web().loginToApproveAccessPage(client.getUsername(), client.getPassword())) + .fillSmsKey(MOBILE_KEY) + .clickApproveAccessButton() + .getAuthTokenAndStoreIt(); + + String authToken = harness.withCaGw() + .oauth2().token() + .prepareOauth2TokenRequest() + .log("Oauth2 token is: {}", Oauth2TokenResponse::getAccess_token) + .then(harness.tasks().oauth2().token().setRequestValues(OAUTH_2_CLIENT_ID, OAUTH_2_CLIENT_SECRET)) + .send() + .getAccess_token(); + + //AISP - GET /psd/aisp/my/accounts?sort=&order= + Accounts account = harness.withCaGw() + .api().cbl().psd().aisp().my() + .prepareAccountsWithParamsRequest() + .then(harness.tasks().caGw().api().accounts().setRequestValuesAccountsWithParams(authToken, + "identification.other", "asc")) + .send() + .getAccounts()[0]; + + String accountNumber = account.getIdentification().getOther(); + accountNumber = accountNumber.substring(0, accountNumber.indexOf("/")); + harness.log("Account number is: " + accountNumber); + + String accountId = account.getId(); + + //AISP - GET /psd/aisp/my/accounts/{id}/balance + double amountValue = harness.withCaGw() + .api().cbl().psd().aisp().my().accounts().id() + .prepareBalanceRequest() + .then(harness.tasks().caGw().api().balance().setRequestValues(authToken, accountId)) + .send() + .getBalances()[0].getAmount().getValue(); + + + DecimalFormatSymbols formatSymbols = new DecimalFormatSymbols(new Locale("cs_CZ")); + formatSymbols.setDecimalSeparator(','); + formatSymbols.setGroupingSeparator(' '); + + DecimalFormat decimalFormat = new DecimalFormat(PATTERN, formatSymbols); + String formatAmountValue = decimalFormat.format(amountValue); + harness.log("Balance of account is: " + formatAmountValue); + + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().banka().login().asBanker()) + .fillSearchTerm(BIRTH_NUMBER) + .clickSearchByRc() + .onClientDetailPage() + .checkProductActive(accountNumber) + .checkProductActive(formatAmountValue); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/aisp/Psd2CaGwGetAccountTransactions.java b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/aisp/Psd2CaGwGetAccountTransactions.java new file mode 100644 index 0000000..153395c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/aisp/Psd2CaGwGetAccountTransactions.java @@ -0,0 +1,137 @@ +package cz.moneta.test.regression.data.api.psd2.aisp; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.AccountsResponse.Accounts; +import cz.moneta.test.dsl.cagw.api.cbl.psd.aisp.my.accounts.id.transactions.TransactionsResponse.Transactions; +import cz.moneta.test.dsl.cagw.oauth2.token.Oauth2TokenResponse; +import cz.moneta.test.dsl.dmbsib.ThirdPartyApplicationPageWithStatusCode; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; +import cz.moneta.test.harness.support.auth.Credentials; + +import java.util.Date; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@SuppressWarnings("unchecked") +@NonConcurrentTestScenario(name = "Check client transactions via CA GW - PSD2") +public class Psd2CaGwGetAccountTransactions { + + private static final String MOBILE_KEY = "12341234"; + private static final String OAUTH2_CLIENT_ID = "l7xx91bb88abcbda4b0db4cc8906803d56c4"; + private static final String OAUTH_2_CLIENT_SECRET = "2f43959c06f14c4f9b60c1776b7f0b7b"; + private static final String DEBTOR_ACCOUNT_NUMBER = "214789641/0600"; + private static final String CREDIT_ACCOUNT_IBAN = "CZ0735000000001000377902"; + private static final String ACTUAL_DATE = TestUtils.getTodayDate("yyyy-MM-dd"); + private static final String CURRENCY = "CZK"; + private static final int PAYMENT_AMOUNT = 1; + private static final String VS = (String.valueOf(new Date().getTime())).substring(0, 10); + private static final String KS = "2222222222"; + private static final String SS = "3333333333"; + private static final String REFERENCE = "VS:" + VS + ",KS:" + KS + ",SS:" + SS; + private static final String UNSTRUCTURED = "Domaci platba z automatu pres CAGW"; + + @TestCase(name = "Check client transactions via PSD2 - end to end testcase via CA GW with create new payment," + + " booking and check via PSD2 api", environments = {TST1}) + @JiraTestCase(id = "AO-T424") + public void tc_check_accounts_via_ca_gw_psd2(Harness harness, @Key("api.client") Credentials client) { + + harness.withOauth2Web() + .onOauth2WebTransitions() + .openApproveAccessToAccountPage(OAUTH2_CLIENT_ID) + .then(harness.tasks().oauth2().web().loginToApproveAccessPage(client.getUsername(), client.getPassword())) + .fillSmsKey(MOBILE_KEY) + .clickApproveAccessButton() + .getAuthTokenAndStoreIt(); + + String authToken = harness.withCaGw() + .oauth2().token() + .prepareOauth2TokenRequest() + .log("Oauth2 token is: {}", Oauth2TokenResponse::getAccess_token) + .then(harness.tasks().oauth2().token().setRequestValues(OAUTH2_CLIENT_ID, OAUTH_2_CLIENT_SECRET)) + .send() + .getAccess_token(); + + //AISP - GET /psd/aisp/my/accounts + Accounts account = harness.withCaGw() + .api().cbl().psd().aisp().my() + .prepareAccountsRequest() + .then(harness.tasks().caGw().api().accounts().setRequestValues(authToken)) + .send() + .getAccounts()[0]; + + String accountId = account.getId(); + + //AISP - GET /psd/aisp/my/accounts/{id}/transactions + harness.withCaGw() + .api().cbl().psd().aisp().my().accounts().id() + .prepareTransactionsRequest() + .then(harness.tasks().caGw().api().transactions().setRequestValuesTransactions(authToken, accountId)) + .send(); + + String transId = harness.withCaGw() + .api().cbl().psd().pisp().my() + .preparePaymentRequest() + .log("Transaction id is: {}", r -> r.getPaymentIdentification().getTransactionIdentification()) + .then(harness.tasks().caGw().api().payment().setRequestValuesForDomesticPayment(authToken, CURRENCY, + PAYMENT_AMOUNT, CREDIT_ACCOUNT_IBAN, DEBTOR_ACCOUNT_NUMBER, REFERENCE, UNSTRUCTURED, ACTUAL_DATE)) + .send() + .getPaymentIdentification() + .getTransactionIdentification(); + + harness.withDmbsIb() + .onDmbsIbTransitions() + .openLoginPage(transId) + .then(harness.tasks().dmbsib().login(client.getUsername(), client.getPassword(), MOBILE_KEY)) + .clickSendMobileKey() + .fillMobileKey(MOBILE_KEY) + .verifyMobileKeyAndContinueToSuccessPage() + .getAuthTokenAndStoreIt(); + + Assertions.assertEquals("OK", harness.get(ThirdPartyApplicationPageWithStatusCode.STATUS_CODE_STORE)); + + harness.withCaGw() + .api().cbl().psd().pisp().my().payments().paymentId() + .prepareStatusRequest() + .then(harness.tasks().caGw().api().status().setRequestValues(authToken, transId)) + .then(harness.tasks().caGw().api().status().sendAndWaitForStatus("ACSC")); + + /*AISP - GET /psd/aisp/my/accounts/{id}/transactions?size={size}&page={page}&fromDate={fromDate} + &toDate={toDate}&sort={sort}&order={order}*/ + Transactions transaction = harness.withCaGw() + .api().cbl().psd().aisp().my().accounts().id() + .prepareTransactionsWithParamsRequest() + .then(harness.tasks().caGw().api().transactions().setRequestValuesTransactionsWithAllParams(authToken, + accountId, ACTUAL_DATE, ACTUAL_DATE, "1", "0", "date", "DESC")) + .then(harness.tasks().caGw().api().transactions().sendAndWaitForTransaction((VS))) + .getTransactions()[0]; + + Assertions.assertEquals(PAYMENT_AMOUNT, transaction.getAmount().getValue()); + Assertions.assertEquals(CURRENCY, transaction.getAmount().getCurrency()); + Assertions.assertEquals("DBIT", transaction.getCreditDebitIndicator()); + Assertions.assertEquals(TestUtils.getTodayDate("yyyy-MM-dd"), transaction + .getBookingDate().getDate()); + Assertions.assertEquals("PAYMENT_ORDER_DOMESTIC", transaction.getEntryDetails().getTransactionDetails() + .getReferences().getClearingSystemReference()); + Assertions.assertEquals("PŘÍKAZ K ÚHRADĚ ", transaction.getEntryDetails().getTransactionDetails() + .getReferences().getTransactionDescription()); + Assertions.assertEquals(DEBTOR_ACCOUNT_NUMBER, transaction.getEntryDetails().getTransactionDetails() + .getRelatedParties().getDebtorAccount().getIdentification().getOther().getIdentification()); + Assertions.assertEquals(UNSTRUCTURED, transaction.getEntryDetails().getTransactionDetails() + .getRemittanceInformation().getUnstructured()); + Assertions.assertEquals(VS, transaction.getEntryDetails().getTransactionDetails() + .getReferences().getEndToEndIdentification()); + Assertions.assertEquals(KS, transaction.getEntryDetails().getTransactionDetails() + .getReferences().getInstructionIdentification()); + Assertions.assertEquals(SS, transaction.getEntryDetails().getTransactionDetails() + .getReferences().getPaymentInformationIdentification()); + Assertions.assertEquals(REFERENCE.replace(",", " "), transaction.getEntryDetails().getTransactionDetails() + .getRemittanceInformation().getStructured().getCreditorReferenceInformation().getReference()); + Assertions.assertEquals(ACTUAL_DATE, transaction.getValueDate().getDate()); + Assertions.assertEquals(ACTUAL_DATE, transaction.getBookingDate().getDate()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateDomesticForeignCurrencyPaymentTest.java b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateDomesticForeignCurrencyPaymentTest.java new file mode 100644 index 0000000..55532b6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateDomesticForeignCurrencyPaymentTest.java @@ -0,0 +1,99 @@ +package cz.moneta.test.regression.data.api.psd2.pisp; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.oauth2.token.Oauth2TokenResponse; +import cz.moneta.test.dsl.dmbsib.ThirdPartyApplicationPageWithStatusCode; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.task.cagw.api.PaymentTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@SuppressWarnings("unchecked") +@NonConcurrentTestScenario(name = "Create Domestic Foreign Currency payment via CA GW, verify it in ib") +public class Psd2CaGwCreateDomesticForeignCurrencyPaymentTest { + + @TestCase(name = "End to end testcase create customer and then create payment via CA GW", environments = {TST1}) + @JiraTestCase(id = "AO-T425") + public void tc_create_payment_via_ca_gw_psd2(Harness harness, @Key("api.client") Credentials client) { + String mobileKey = "12341234"; + String currencyAmount = "USD"; + String identificationDebtorAccount = "214789641/0600"; + String identificationCreditorAccount = "214553225/0600"; + String oauth2ClientId = "l7xx91bb88abcbda4b0db4cc8906803d56c4"; + String oauth2ClientSecret = "2f43959c06f14c4f9b60c1776b7f0b7b"; + String requestedExecutionDate = TestUtils.getTodayDate("yyyy-MM-dd"); + int valueAmount = 5; + String transactionsType = "Všechny typy"; + PaymentTasks paymentTasks = harness.tasks().caGw().api().payment(); + + harness.withOauth2Web() + .onOauth2WebTransitions() + .openApproveAccessToAccountPage(oauth2ClientId) + .then(harness.tasks().oauth2().web().loginToApproveAccessPage(client.getUsername(), client.getPassword())) + .fillSmsKey(mobileKey) + .clickApproveAccessButton() + .getAuthTokenAndStoreIt(); + + String authToken = harness.withCaGw().oauth2().token() + .prepareOauth2TokenRequest() + .log("Oauth2 token is: {}", Oauth2TokenResponse::getAccess_token) + .then(harness.tasks().oauth2().token().setRequestValues(oauth2ClientId, oauth2ClientSecret)) + .send() + .getAccess_token(); + + String transId = harness.withCaGw() + .api().cbl().psd().pisp().my() + .preparePaymentRequest() + .log("Transaction id is: {}", r -> r.getPaymentIdentification().getTransactionIdentification()) + .then(paymentTasks.setRequestValuesForDomForeignCurrPayment(authToken, currencyAmount, valueAmount, + identificationCreditorAccount, identificationDebtorAccount, requestedExecutionDate)) + .send() + .getPaymentIdentification() + .getTransactionIdentification(); + + harness.withDmbsIb() + .onDmbsIbTransitions() + .openLoginPage(transId) + .then(harness.tasks().dmbsib().login(client.getUsername(), client.getPassword(), mobileKey)) + .clickSendMobileKey() + .fillMobileKey(mobileKey) + .verifyMobileKeyAndContinueToSuccessPage() + .getAuthTokenAndStoreIt(); + + Assertions.assertEquals("OK", harness.get(ThirdPartyApplicationPageWithStatusCode.STATUS_CODE_STORE)); + + harness.withCaGw() + .api().cbl().psd().pisp().my().payments().paymentId() + .prepareStatusRequest() + .then(harness.tasks().caGw().api().status().setRequestValues(authToken, transId)) + .then(harness.tasks().caGw().api().status().sendAndWaitForStatus("ACSC")); + + Result records = harness.withUdebs() + .fromWPsd2Tokens() + .selectFromW_psd2_tokens(transId); + + String packageId = records.get(0).getValue("PACKAGEID").toString(); + harness.log(records.format()); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey(client.getUsername(), client.getPassword(), mobileKey)) + .onWelcomePage() + .clickAccountsAndTransactions() + .clickPaymentOrders() + .selectTransactionsTypes(transactionsType) + .fillDateFrom(TestUtils.getTodayDate()) + .clickDisplayTransactions() + .clickOrderTransactionsById() + .clickOrderTransactionsById() + .checkElementContentPackageId(packageId); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateDomesticPaymentTest.java b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateDomesticPaymentTest.java new file mode 100644 index 0000000..a1f0fd0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateDomesticPaymentTest.java @@ -0,0 +1,101 @@ +package cz.moneta.test.regression.data.api.psd2.pisp; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.oauth2.token.Oauth2TokenResponse; +import cz.moneta.test.dsl.dmbsib.ThirdPartyApplicationPageWithStatusCode; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.task.cagw.api.PaymentTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@SuppressWarnings("unchecked") +@NonConcurrentTestScenario(name = "Create Domestic payment via CA GW, verify it in ib") +public class Psd2CaGwCreateDomesticPaymentTest { + + @TestCase(name = "End to end testcase create customer and then create payment via CA GW", environments = {TST1}) + @JiraTestCase(id = "AO-T426") + public void tc_create_payment_via_ca_gw_psd2(Harness harness, @Key("api.client") Credentials client) { + String mobileKey = "12341234"; + String currencyAmount = "CZK"; + String identificationDebtorAccount = "214789641/0600"; + String ibanCreditorAccount = "CZ0735000000001000377902"; + String oauth2ClientId = "l7xx91bb88abcbda4b0db4cc8906803d56c4"; + String oauth2ClientSecret = "2f43959c06f14c4f9b60c1776b7f0b7b"; + String requestedExecutionDate = TestUtils.getTodayDate("yyyy-MM-dd"); + String unstructured = "Domaci platba z automatu pres CAGW"; + String reference = "VS:1111111111,KS:2222222222,SS:3333333333"; + int valueAmount = 5; + String transactionsType = "Domácí příkaz"; + PaymentTasks paymentTasks = harness.tasks().caGw().api().payment(); + + harness.withOauth2Web() + .onOauth2WebTransitions() + .openApproveAccessToAccountPage(oauth2ClientId) + .then(harness.tasks().oauth2().web().loginToApproveAccessPage(client.getUsername(), client.getPassword())) + .fillSmsKey(mobileKey) + .clickApproveAccessButton() + .getAuthTokenAndStoreIt(); + + String authToken = harness.withCaGw().oauth2().token() + .prepareOauth2TokenRequest() + .log("Oauth2 token is: {}", Oauth2TokenResponse::getAccess_token) + .then(harness.tasks().oauth2().token().setRequestValues(oauth2ClientId, oauth2ClientSecret)) + .send() + .getAccess_token(); + + String transId = harness.withCaGw() + .api().cbl().psd().pisp().my() + .preparePaymentRequest() + .log("Transaction id is: {}", r -> r.getPaymentIdentification().getTransactionIdentification()) + .then(paymentTasks.setRequestValuesForDomesticPayment(authToken, currencyAmount, valueAmount, + ibanCreditorAccount, identificationDebtorAccount, reference, unstructured, requestedExecutionDate)) + .send() + .getPaymentIdentification() + .getTransactionIdentification(); + + harness.withDmbsIb() + .onDmbsIbTransitions() + .openLoginPage(transId) + .then(harness.tasks().dmbsib().login(client.getUsername(), client.getPassword(), mobileKey)) + .clickSendMobileKey() + .fillMobileKey(mobileKey) + .verifyMobileKeyAndContinueToSuccessPage() + .getAuthTokenAndStoreIt(); + + Assertions.assertEquals("OK", harness.get(ThirdPartyApplicationPageWithStatusCode.STATUS_CODE_STORE)); + + harness.withCaGw() + .api().cbl().psd().pisp().my().payments().paymentId() + .prepareStatusRequest() + .then(harness.tasks().caGw().api().status().setRequestValues(authToken, transId)) + .then(harness.tasks().caGw().api().status().sendAndWaitForStatus("ACSC")); + + Result records = harness.withUdebs() + .fromWPsd2Tokens() + .selectFromW_psd2_tokens(transId); + + String packageId = records.get(0).getValue("PACKAGEID").toString(); + harness.log(records.format()); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey(client.getUsername(), client.getPassword(), mobileKey)) + .onWelcomePage() + .clickAccountsAndTransactions() + .clickPaymentOrders() + .fillDateFrom(TestUtils.getTodayDate()) + .selectTransactionsTypes(transactionsType) + .clickDisplayTransactions() + .clickOrderTransactionsById() + .clickOrderTransactionsById() + .checkElementContentPackageId(packageId); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateForeignPaymentTest.java b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateForeignPaymentTest.java new file mode 100644 index 0000000..d3a9f3f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateForeignPaymentTest.java @@ -0,0 +1,109 @@ +package cz.moneta.test.regression.data.api.psd2.pisp; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.oauth2.token.Oauth2TokenResponse; +import cz.moneta.test.dsl.dmbsib.ThirdPartyApplicationPageWithStatusCode; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.task.cagw.api.PaymentTasks; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@SuppressWarnings("unchecked") +@NonConcurrentTestScenario(name = "Create Foreign payment via CA GW, verify it in ib") +public class Psd2CaGwCreateForeignPaymentTest { + + @TestCase(name = "End to end testcase create customer and then create payment via CA GW", environments = {TST1}) + @JiraTestCase(id = "AO-T427") + public void tc_create_payment_via_ca_gw_psd2(Harness harness, @Key("api.client-with-allowed-international-payments") Credentials client) { + String mobileKey = "12341234"; + String currencyAmount = "USD"; + String ibanDebtorAccount = "CZ4006000000000191684002"; + String identificationCreditAccount = "400789392838"; + String oauth2ClientId = "l7xx91bb88abcbda4b0db4cc8906803d56c4"; + String oauth2ClientSecret = "2f43959c06f14c4f9b60c1776b7f0b7b"; + String requestedExecutionDate = TestUtils.getTodayDate("yyyy-MM-dd"); + String unstructured = "Zahranicni platba z automatu pres CAGW"; + String chargeBearer = "OUR"; + int valueAmount = 1; + String transactionConfirmation = "mailer@mailme.com"; + String nameCreditorAgent = "INTESA SANPAOLO SPA"; + String addressLineCreditorAgent = "1 QUEENS ROAD CENTRAL"; + String countryCreditorAgent = "HK"; + String bicCreditorAgent = "HSBCHKHHHKH"; + String nameCreditor = "SHENZHEN SHENZE ELECTRONIC CO."; + String addressLineCreditor = "HONGKONG"; + String transactionsType = " Zahraniční příkaz"; + PaymentTasks paymentTasks = harness.tasks().caGw().api().payment(); + + + harness.withOauth2Web() + .onOauth2WebTransitions() + .openApproveAccessToAccountPage(oauth2ClientId) + .then(harness.tasks().oauth2().web().loginToApproveAccessPage(client.getUsername(), client.getPassword())) + .fillSmsKey(mobileKey) + .clickApproveAccessButton() + .getAuthTokenAndStoreIt(); + + String authToken = harness.withCaGw().oauth2().token() + .prepareOauth2TokenRequest() + .log("Oauth2 token is: {}", Oauth2TokenResponse::getAccess_token) + .then(harness.tasks().oauth2().token().setRequestValues(oauth2ClientId, oauth2ClientSecret)) + .send() + .getAccess_token(); + + String transId = harness.withCaGw() + .api().cbl().psd().pisp().my() + .preparePaymentRequest() + .log("Transaction id is: {}", r -> r.getPaymentIdentification().getTransactionIdentification()) + .then(paymentTasks.setRequestValuesForForeignPayment(authToken, currencyAmount, valueAmount, chargeBearer, + nameCreditor, addressLineCreditor, identificationCreditAccount, nameCreditorAgent, + bicCreditorAgent, addressLineCreditorAgent, countryCreditorAgent, ibanDebtorAccount, + unstructured, requestedExecutionDate, transactionConfirmation)) + .send() + .getPaymentIdentification() + .getTransactionIdentification(); + + harness.withDmbsIb() + .onDmbsIbTransitions() + .openLoginPage(transId) + .then(harness.tasks().dmbsib().login(client.getUsername(), client.getPassword(), mobileKey)) + .clickSendMobileKey() + .fillMobileKey(mobileKey) + .verifyMobileKeyAndContinueToSuccessPage() + .getAuthTokenAndStoreIt(); + + Assertions.assertEquals("OK", harness.get(ThirdPartyApplicationPageWithStatusCode.STATUS_CODE_STORE)); + + harness.withCaGw() + .api().cbl().psd().pisp().my().payments().paymentId() + .prepareStatusRequest() + .then(harness.tasks().caGw().api().status().setRequestValues(authToken, transId)) + .then(harness.tasks().caGw().api().status().sendAndWaitForStatus("ACSC")); + + Result records = harness.withUdebs() + .fromWPsd2Tokens() + .selectFromW_psd2_tokens(transId); + + String packageId = records.get(0).getValue("PACKAGEID").toString(); + harness.log(records.format()); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey(client.getUsername(), client.getPassword(), mobileKey)) + .onWelcomePage() + .clickAccountsAndTransactions() + .clickPaymentOrders() + .selectTransactionsTypes(transactionsType) + .fillDateFrom(TestUtils.getTodayDate()) + .clickDisplayTransactions() + .clickOrderTransactionsById() + .clickOrderTransactionsById() + .checkElementContentPackageId(packageId); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreatePaymentTest.java b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreatePaymentTest.java new file mode 100644 index 0000000..285eda6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreatePaymentTest.java @@ -0,0 +1,83 @@ +package cz.moneta.test.regression.data.api.psd2.pisp; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.oauth2.token.Oauth2TokenResponse; +import cz.moneta.test.dsl.dmbsib.ThirdPartyApplicationPageWithStatusCode; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@SuppressWarnings("unchecked") +@NonConcurrentTestScenario(name = "Create payment via CA GW, verify it in ib") +public class Psd2CaGwCreatePaymentTest { + + @TestCase(name = "End to end testcase create customer and then create payment via CA GW", environments = {TST1}) + @JiraTestCase(id = "AO-T428") + public void tc_create_payment_via_ca_gw_psd2(Harness harness, @Key("api.client") Credentials client) { + String mobileKey = "12341234"; + String currency = "CZK"; + String debtorAccountNumber = "214789641/0600"; + String creditAccountIban = "CZ0735000000001000377902"; + String oauth2ClientId = "l7xx91bb88abcbda4b0db4cc8906803d56c4"; + String oauth2ClientSecret = "2f43959c06f14c4f9b60c1776b7f0b7b"; + int paymentAmount = 1; + + harness.withOauth2Web() + .onOauth2WebTransitions() + .openApproveAccessToAccountPage(oauth2ClientId) + .then(harness.tasks().oauth2().web().loginToApproveAccessPage(client.getUsername(), client.getPassword())) + .fillSmsKey(mobileKey) + .clickApproveAccessButton() + .getAuthTokenAndStoreIt(); + + String authToken = harness.withCaGw() + .oauth2().token() + .prepareOauth2TokenRequest() + .log("Oauth2 token is: {}", Oauth2TokenResponse::getAccess_token) + .then(harness.tasks().oauth2().token().setRequestValues(oauth2ClientId, oauth2ClientSecret)) + .send() + .getAccess_token(); + + String transId = harness.withCaGw() + .api().cbl().psd().pisp().my() + .preparePaymentRequest() + .log("Transaction id is: {}", r -> r.getPaymentIdentification().getTransactionIdentification()) + .then(harness.tasks().caGw().api().payment() + .setRequestValues(authToken, currency, paymentAmount, debtorAccountNumber, creditAccountIban)) + .send() + .getPaymentIdentification() + .getTransactionIdentification(); + + harness.withDmbsIb() + .onDmbsIbTransitions() + .openLoginPage(transId) + .then(harness.tasks().dmbsib().login(client.getUsername(), client.getPassword(), mobileKey)) + .clickSendMobileKey() + .fillMobileKey(mobileKey) + .verifyMobileKeyAndContinueToSuccessPage() + .getAuthTokenAndStoreIt(); + + Assertions.assertEquals("OK", harness.get(ThirdPartyApplicationPageWithStatusCode.STATUS_CODE_STORE)); + + harness.withCaGw() + .api().cbl().psd().pisp().my().payments().paymentId() + .prepareStatusRequest() + .then(harness.tasks().caGw().api().status().setRequestValues(authToken, transId)) + .then(harness.tasks().caGw().api().status().sendAndWaitForStatus("ACSC")); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey(client.getUsername(), client.getPassword(), mobileKey)) + .onWelcomePage() + .clickAccountsAndTransactions() + .clickTransactions() + .checkDateOfTransactionIfPresent(DateUtils.getFormattedTodayDate(DateFormatPatterns.IB_DATE_FORMAT)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateSepaPaymentTest.java b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateSepaPaymentTest.java new file mode 100644 index 0000000..8cfdc83 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/psd2/pisp/Psd2CaGwCreateSepaPaymentTest.java @@ -0,0 +1,113 @@ +package cz.moneta.test.regression.data.api.psd2.pisp; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cagw.oauth2.token.Oauth2TokenResponse; +import cz.moneta.test.dsl.dmbsib.ThirdPartyApplicationPageWithStatusCode; +import cz.moneta.test.dsl.oauth2.web.ThirdPartyApplicationPageWithToken; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.task.cagw.api.PaymentTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@SuppressWarnings("unchecked") +@NonConcurrentTestScenario(name = "Create Sepa payment via CA GW, verify it in ib") +public class Psd2CaGwCreateSepaPaymentTest { + + @TestCase(name = "End to end testcase create customer and then create payment via CA GW", environments = {TST1}) + @JiraTestCase(id = "AO-T429") + public void tc_create_payment_via_ca_gw_psd2(Harness harness, @Key("api.client-with-allowed-international-payments") Credentials client) { + String mobileKey = "12341234"; + String currencyAmount = "EUR"; + String ibanDebtorAccount = "CZ4006000000000191684002"; + String ibanCreditorAccount = "IT56H0306936291074000108376"; + String oauth2ClientId = "l7xx91bb88abcbda4b0db4cc8906803d56c4"; + String oauth2ClientSecret = "2f43959c06f14c4f9b60c1776b7f0b7b"; + String requestedExecutionDate = TestUtils.getTodayDate("yyyy-MM-dd"); + String unstructured = "SEPA platba z automatu pres CAGW"; + String chargeBearer = "SHA"; + int valueAmount = 1; + String transactionConfirmation = "ludek.misalko@moneta.cz"; + String nameCreditorAgent = "INTESA SANPAOLO SPA"; + String endToEndIdentification = "FA 1234567"; + String nameCreditor = "EUROPA TOURIST GROUP, UNITAS MARINA"; + String addressLineCreditor = "CORSO DEGLI ALISEI, 39"; + String countryCreditor = "IT"; + String townNameCreditor = "LIGNANO"; + String transactionsType = " Zahraniční příkaz"; + PaymentTasks paymentTasks = harness.tasks().caGw().api().payment(); + + harness.withOauth2Web() + .onOauth2WebTransitions() + .openApproveAccessToAccountPage(oauth2ClientId) + .then(harness.tasks().oauth2().web().loginToApproveAccessPage(client.getUsername(), client.getPassword())) + .fillSmsKey(mobileKey) + .clickApproveAccessButton() + .getAuthTokenAndStoreIt(); + + harness.log("oauth2ClientId: " + oauth2ClientId + "; oauth2ClientSecret: " + oauth2ClientSecret + "; ThirdPartyApplicationPageWithToken.AUTH_CODE_STORE: " + harness.get(ThirdPartyApplicationPageWithToken.AUTH_CODE_STORE)); + + String authToken = harness.withCaGw().oauth2().token() + .prepareOauth2TokenRequest() + .log("Oauth2 token is: {}", Oauth2TokenResponse::getAccess_token) + .then(harness.tasks().oauth2().token().setRequestValues(oauth2ClientId, oauth2ClientSecret)) + .send() + .getAccess_token(); + + String transId = harness.withCaGw() + .api().cbl().psd().pisp().my() + .preparePaymentRequest() + .log("Transaction id is: {}", r -> r.getPaymentIdentification().getTransactionIdentification()) + .then(paymentTasks.setRequestValuesForSepaPayment(authToken, currencyAmount, valueAmount, chargeBearer, + nameCreditor, addressLineCreditor, countryCreditor, townNameCreditor, + ibanCreditorAccount, nameCreditorAgent, ibanDebtorAccount, endToEndIdentification, unstructured, + requestedExecutionDate, transactionConfirmation)) + .send() + .getPaymentIdentification() + .getTransactionIdentification(); + + harness.withDmbsIb() + .onDmbsIbTransitions() + .openLoginPage(transId) + .then(harness.tasks().dmbsib().login(client.getUsername(), client.getPassword(), mobileKey)) + .clickSendMobileKey() + .fillMobileKey(mobileKey) + .verifyMobileKeyAndContinueToSuccessPage() + .getAuthTokenAndStoreIt(); + + Assertions.assertEquals("OK", harness.get(ThirdPartyApplicationPageWithStatusCode.STATUS_CODE_STORE)); + + harness.withCaGw() + .api().cbl().psd().pisp().my().payments().paymentId() + .prepareStatusRequest() + .then(harness.tasks().caGw().api().status().setRequestValues(authToken, transId)) + .then(harness.tasks().caGw().api().status().sendAndWaitForStatus("ACSC")); + + Result records = harness.withUdebs() + .fromWPsd2Tokens() + .selectFromW_psd2_tokens(transId); + + String packageId = records.get(0).getValue("PACKAGEID").toString(); + harness.log(records.format()); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey(client.getUsername(), client.getPassword(), mobileKey)) + .onWelcomePage() + .clickAccountsAndTransactions() + .clickPaymentOrders() + .selectTransactionsTypes(transactionsType) + .fillDateFrom(TestUtils.getTodayDate()) + .clickDisplayTransactions() + .clickOrderTransactionsById() + .clickOrderTransactionsById() + .checkElementContentPackageId(packageId); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/smoke/ApiSquadSmokeTests.java b/tests/src/test/java/cz/moneta/test/regression/data/api/smoke/ApiSquadSmokeTests.java new file mode 100644 index 0000000..3a2eb7f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/smoke/ApiSquadSmokeTests.java @@ -0,0 +1,38 @@ +package cz.moneta.test.regression.data.api.smoke; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Smoke tests for api squad") +public class ApiSquadSmokeTests { + + @TestCase(name = "API Squad - Smoke test - calling echo api for CAGW", environments = {TST1}) + @JiraTestCase(id = "AO-T430") + public void tc_call_echo_cagw(Harness harness) { + + harness.withOauth2Web() + .onOauth2WebEcho() + .callEcho(); + } + + @TestCase(name = "API Squad - Smoke test - calling Federated login page", environments = {TST1}) + @JiraTestCase(id = "AO-T431") + public void tc_call_federated_login_page(Harness harness) { + + harness.withOauth2Web() + .onOauth2WebFederatedLogin() + .callFederatedLogin(); + } + + @TestCase(name = "API Squad - Smoke test - calling CA Api portal login page", environments = {TST1}) + @JiraTestCase(id = "AO-T432") + public void tc_call_api_portal_login_page(Harness harness) { + + harness.withMonetaApiPortal() + .openLoginPage(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/ufobanka/AuthorizationCispUfoBanka.java b/tests/src/test/java/cz/moneta/test/regression/data/api/ufobanka/AuthorizationCispUfoBanka.java new file mode 100644 index 0000000..494ef4b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/ufobanka/AuthorizationCispUfoBanka.java @@ -0,0 +1,129 @@ +package cz.moneta.test.regression.data.api.ufobanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.AuthSupport; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import java.text.SimpleDateFormat; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CURRENT_ACCOUNT_NUMBER; +import static cz.moneta.test.dsl.ufo.banka.pages.main.adc.ADC026_S001_BankApiDetailPage.THIRD_PARTY_ACTIVE_DATE_FROM; +import static cz.moneta.test.dsl.ufo.banka.pages.main.adc.ADC026_S001_BankApiDetailPage.THIRD_PARTY_HISTORY_DATE_FROM; +import static cz.moneta.test.dsl.ufo.banka.pages.main.adc.ADC026_S001_BankApiDetailPage.THIRD_PARTY_HISTORY_DATE_TO; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "UFOBanka - action with Authorization CISP") +public class AuthorizationCispUfoBanka { + + private static final String THIRD_PARTY_NUMBER = "111456121"; + private static final String THIRD_PARTY_NAME = "Testovaci klient"; + + @TestCase(name = "Enable PSD2 Cisp via UFOBanka", environments = {TST1}) + @JiraTestCase(id = "AO-T433") + public void tc_enable_psd2_cisp_via_ufobanka(Harness harness) { + + BankaTasks tasks = harness.tasks().ufo().banka(); + NonClient nonClient = harness.data().newNonClient(); + String bankerUsername = AuthSupport.getCredentials(banker, harness).getUsername(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().asBanker()) + .then(tasks.login().turnSignpadOff()) + .then(tasks.newClient().create(nonClient, bankerUsername)) + .then(tasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)) + .getCurrentAccountNumberAndStore() + .clickInternetBankWithMobileKey() + .activationBankApiChannel() + .acceptAlert() + .clickGenerateLater() + .onMainClientPage() + .clickBankApi() + .editBankApiChannel() + .selectThirdParty(THIRD_PARTY_NAME + "|" + THIRD_PARTY_NUMBER) + .selectAccount(harness.get(CURRENT_ACCOUNT_NUMBER)) + .activateCisp() + .clickRightButton() + .onBankApiDetailPage() + .checkThirdPartyTableAccount(harness.get(CURRENT_ACCOUNT_NUMBER)) + .checkThirdPartyTableNumber(THIRD_PARTY_NUMBER) + .checkThirdPartyTableName(THIRD_PARTY_NAME) + .storeThirdPartyDateFrom() + .selectThirdParty(THIRD_PARTY_NAME + "|" + THIRD_PARTY_NUMBER) + .selectAccount(harness.get(CURRENT_ACCOUNT_NUMBER)) + .activateCispValidationMessage() + .checkAlertAndAcceptActivation(); + + Result records = harness.withUdebs() + .thirdParty() + .getThirdPartyRights("0" + harness.get(CURRENT_ACCOUNT_NUMBER)); + + Assertions.assertEquals(records.get(0).getValue(0), THIRD_PARTY_NUMBER); + Assertions.assertEquals(records.get(0).getValue(3), harness.get(CLIENT_CIF_STORE_KEY)); + Assertions.assertEquals(new SimpleDateFormat("d.M.yyyy H:mm:ss") + .format(records.get(0).getValue(1)), harness.get(THIRD_PARTY_ACTIVE_DATE_FROM)); + Assertions.assertNull(records.get(0).getValue(2)); + } + + @TestCase(name = "Diseable PSD2 Cisp via UFOBanka", environments = {TST1}) + @JiraTestCase(id = "AO-T434") + public void tc_diseable_psd2_cisp_via_ufobanka(Harness harness) { + + BankaTasks tasks = harness.tasks().ufo().banka(); + NonClient nonClient = harness.data().newNonClient(); + String bankerUsername = AuthSupport.getCredentials(banker, harness).getUsername(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().asBanker()) + .then(tasks.login().turnSignpadOff()) + .then(tasks.newClient().create(nonClient, bankerUsername)) + .then(tasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)) + .getCurrentAccountNumberAndStore() + .clickInternetBankWithMobileKey() + .activationBankApiChannel() + .acceptAlert() + .clickGenerateLater() + .onMainClientPage() + .clickBankApi() + .editBankApiChannel() + .selectThirdParty(THIRD_PARTY_NAME + "|" + THIRD_PARTY_NUMBER) + .selectAccount(harness.get(CURRENT_ACCOUNT_NUMBER)) + .activateCisp() + .clickRightButton() + .onBankApiDetailPage() + .selectFirstRow() + .deactivateCisp() + .clickRightButton() + .onBankApiDetailPage() + .historyCispSettings() + .checkHistoryTableAccount(harness.get(CURRENT_ACCOUNT_NUMBER)) + .checkHistoryTableNumber(THIRD_PARTY_NUMBER) + .checkHistoryTableName(THIRD_PARTY_NAME) + .storeThirdPartyHistoryDates() + .closeThirdPartyHistory() + .deactivateCispValidationMessage() + .checkAlertAndAcceptDeactivate(); + + Result records = harness.withUdebs() + .thirdParty() + .getThirdPartyRights("0" + harness.get(CURRENT_ACCOUNT_NUMBER)); + + Assertions.assertEquals(records.get(0).getValue(0), THIRD_PARTY_NUMBER); + Assertions.assertEquals(records.get(0).getValue(3), harness.get(CLIENT_CIF_STORE_KEY)); + Assertions.assertEquals(new SimpleDateFormat("d.M.yyyy H:mm:ss") + .format(records.get(0).getValue(1)), harness.get(THIRD_PARTY_HISTORY_DATE_FROM)); + Assertions.assertEquals(new SimpleDateFormat("d.M.yyyy H:mm:ss") + .format(records.get(0).getValue(2)), harness.get(THIRD_PARTY_HISTORY_DATE_TO)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/data/api/ufobanka/BankApiChannelUfoBanka.java b/tests/src/test/java/cz/moneta/test/regression/data/api/ufobanka/BankApiChannelUfoBanka.java new file mode 100644 index 0000000..3ecce71 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/api/ufobanka/BankApiChannelUfoBanka.java @@ -0,0 +1,133 @@ +package cz.moneta.test.regression.data.api.ufobanka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.AuthSupport; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "UFOBanka - action with Bank Api channel") +public class BankApiChannelUfoBanka { + + private static final String BANKAPI_LIMIT_EDIT = "60000"; + private static final String BANKAPI_LIMIT_NEW = "50000"; + + @TestCase(name = "Create new customer and create bank api channel", environments = {TST1}) + @JiraTestCase(id = "AO-T435") + public void tc_create_bank_api_channel_via_ufobanka(Harness harness) { + + BankaTasks tasks = harness.tasks().ufo().banka(); + NonClient nonClient = harness.data().newNonClient(); + String bankerUsername = AuthSupport.getCredentials(banker, harness).getUsername(); + + String limit = harness.withUfo() + .openLoginPage() + .then(tasks.login().asBanker()) + .then(tasks.login().turnSignpadOff()) + .then(tasks.newClient().create(nonClient, bankerUsername)) + .then(tasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)) + .clickInternetBankWithMobileKey() + .activationBankApiChannel() + .acceptAlert() + .clickGenerateLater() + .onMainClientPage() + .checkProductActive("Bank API; Aktivní") + .clickBankApi() + .getLimit(); + + Assertions.assertEquals(limit, BANKAPI_LIMIT_NEW); + + Result records = harness.withUdebs() + .clientPaymentsLimits() + .getLimitsAmount(harness.get(CLIENT_CIF_STORE_KEY)); + + limit = records.getValue(0, "LIMIT").toString(); + + Assertions.assertEquals(limit, BANKAPI_LIMIT_NEW); + } + + @TestCase(name = "Edit bank api channel, setting limit", environments = {TST1}) + @JiraTestCase(id = "AO-T436") + public void tc_edit_bank_api_channel_via_ufobanka(Harness harness) { + + BankaTasks tasks = harness.tasks().ufo().banka(); + NonClient nonClient = harness.data().newNonClient(); + String bankerUsername = AuthSupport.getCredentials(banker, harness).getUsername(); + + String limit = harness.withUfo() + .openLoginPage() + .then(tasks.login().asBanker()) + .then(tasks.login().turnSignpadOff()) + .then(tasks.newClient().create(nonClient, bankerUsername)) + .then(tasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)) + .clickInternetBankWithMobileKey() + .activationBankApiChannel() + .acceptAlert() + .clickGenerateLater() + .onMainClientPage() + .clickBankApi() + .editBankApiChannel() + .fillDailyLimit(BANKAPI_LIMIT_EDIT) + .saveLimitBanApi() + .clickGenerateLater() + .onOnlineChannelsPage() + .getLimit(); + + Assertions.assertEquals(limit, BANKAPI_LIMIT_EDIT); + + Result records = harness.withUdebs() + .clientPaymentsLimits() + .getLimitsAmount(harness.get(CLIENT_CIF_STORE_KEY)); + + limit = records.getValue(0, "LIMIT").toString(); + + Assertions.assertEquals(limit, BANKAPI_LIMIT_EDIT); + } + + @Disabled //k oprave + @TestCase(name = "Cancel bank api channel with remove IB channel", environments = {TST1}) + public void tc_cancel_bank_api_channel_via_ufobanka(Harness harness) { + + BankaTasks tasks = harness.tasks().ufo().banka(); + NonClient nonClient = harness.data().newNonClient(); + String bankerUsername = AuthSupport.getCredentials(banker, harness).getUsername(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().asBanker()) + .then(tasks.login().turnSignpadOff()) + .then(tasks.newClient().create(nonClient, bankerUsername)) + .then(tasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)) + .clickInternetBankWithMobileKey() + .activationBankApiChannel() + .acceptAlert() + .clickGenerateLater() + .onMainClientPage() + .clickBankApi() + .editIbPasswordMkChannel() + .cancelInternetBankChannel() + .acceptAlert() + .continueToPrint() + .clickPrintEmpowermentNow() + .onClientFinalSignatureConfirmationPage() + .clickClientAgreedAndSignedAllInfo() + .returnHKO(); + + Result records = harness.withUdebs() + .clientPaymentsLimits() + .getLimitsAmount(harness.get(CLIENT_CIF_STORE_KEY)); + + Assertions.assertEquals(records.size(), 0); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/data/package-info.java b/tests/src/test/java/cz/moneta/test/regression/data/package-info.java new file mode 100644 index 0000000..d384533 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/data/package-info.java @@ -0,0 +1,4 @@ +/** + * Value Stream: Data + */ +package cz.moneta.test.regression.data; \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/PpiAdditionalInsurance.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/PpiAdditionalInsurance.java new file mode 100644 index 0000000..7f6af58 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/PpiAdditionalInsurance.java @@ -0,0 +1,82 @@ +package cz.moneta.test.regression.feeincome; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "PPI AdditionalInsurance TestSuite basic tests cases") +public class PpiAdditionalInsurance { + + @TestCase(name = "AdditionalInsurance Exp in UFO Bank", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T358") + public void checkExpresInsuranceBank(Harness harness, @Key("ufo-banka-banker") Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + String birthnumber = harness.getConfig("rc.checkExpresInsuranceBank"); + String expresNumber = harness.getConfig("expres.checkExpresInsuranceBank"); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(credentials)) + .then(bankaTasks.search().searchByRc(birthnumber)) + .clickExpresDetail(expresNumber) + .clickEditIns() + .then(bankaTasks.newInsurancePpiTasks().createAndCancelInsurance()); + } + + @TestCase(name = "AdditionalInsurance UDC in UFO Bank", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T394") + public void checkUdcInsuranceBank(Harness harness, @Key("ufo-banka-banker") Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + String birthnumber = harness.getConfig("rc.checkUdcInsuranceBank"); + String expresNumber = harness.getConfig("expres.checkUdcInsuranceBank"); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(credentials)) + .then(bankaTasks.search().searchByRc(birthnumber)) + .clickExpresDetail(expresNumber) + .clickEditIns() + .then(bankaTasks.newInsurancePpiTasks().createAndCancelInsurance()); + } + + @TestCase(name = "AdditionalInsurance Exp Plus in UFO Bank", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T395") + public void checkExpresPlusInsuranceBank(Harness harness, @Key("ufo-banka-banker") Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + String birthnumber = harness.getConfig("rc.checkExpresPlusInsuranceBank"); + String expresNumber = harness.getConfig("expres.checkExpresPlusInsuranceBank"); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(credentials)) + .then(bankaTasks.search().searchByRc(birthnumber)) + .clickExpresDetail(expresNumber) + .clickServiceCredit() + .clickEditInsurancePlus() + .then(bankaTasks.newInsurancePpiPlusTasks().createAndCancelInsurancePlus()); + } + + @TestCase(name = "Pripojisteni Udc Plus in UFO Bank", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T396") + public void checkUdcPlusInsuranceBank(Harness harness, @Key("ufo-banka-banker") Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + String birthnumber = harness.getConfig("rc.checkUdcPlusInsuranceBank"); + String expresNumber = harness.getConfig("expres.checkUdcPlusInsuranceBank"); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(credentials)) + .then(bankaTasks.search().searchByRc(birthnumber)) + .clickExpresDetail(expresNumber) + .clickServiceCredit() + .clickEditInsurancePlus() + .then(bankaTasks.newInsurancePpiPlusTasks().createAndCancelInsurancePlus()); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/AccidentInsuranceIb.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/AccidentInsuranceIb.java new file mode 100644 index 0000000..2cca2a4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/AccidentInsuranceIb.java @@ -0,0 +1,92 @@ +package cz.moneta.test.regression.feeincome.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import java.time.LocalDate; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Verify Accident Insurance in Internet Banka") +public class AccidentInsuranceIb { + + private String birthNumber; + + @BeforeEach + void cancelInsurance(Harness harness) { + birthNumber = harness.getConfig("rc.accidentInsuranceIb"); + harness.tasks() + .insuranceTasks() + .setInsuranceStatusTask() + .cancelInsurance(birthNumber); + } + + @Order(1) + @TestCase(name = "Go to insurance page and create Accident Family Insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T328") + void createAccidentFamilyInsuraceIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateAccidentInsurence() + .clickAccountSelect() + .clickInsuranceSelectFamily() + .clickInvalidityAgreement() + .then(harness.tasks().ib().insuranceIbTasks().createAccidentInsuranceWithDefaultMobileKey()) + .checkAccidentFamilyInsuranceIsFound(); + } + + @Order(2) + @TestCase(name = "Go to insurance page and create Accident Adult Insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T327") + void createAccidentAdultInsuranceIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateAccidentInsurence() + .clickAccountSelect() + .clickInsuranceSelectAdult() + .clickInvalidityAgreement() + .then(harness.tasks().ib().insuranceIbTasks().createAccidentInsuranceWithDefaultMobileKey()) + .checkAccidentAdultInsuranceIsFound(); + } + + @Order(3) + @TestCase(name = "Go to insurance page and create Accident Junior Insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T329") + void createAccidentJuniorInsuranceIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + LocalDate bornFrom = LocalDate.now().minusYears(14); + LocalDate bornTo = LocalDate.now(); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateAccidentInsurence() + .clickAccountSelect() + .clickInsuranceSelectJunior() + .fillToFirstName("Petr") + .fillToLastName("Svetr") + .fillToIdentificationNumberName(harness.data().newNonClient().birthNumber(bornFrom, bornTo)) + .clickChildrenAgreement() + .then(harness.tasks().ib().insuranceIbTasks().createAccidentInsuranceWithDefaultMobileKey()) + .checkAccidentJuniorInsuranceIsFound(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/LongTermTravelInsuranceIb.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/LongTermTravelInsuranceIb.java new file mode 100644 index 0000000..1a3576e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/LongTermTravelInsuranceIb.java @@ -0,0 +1,101 @@ +package cz.moneta.test.regression.feeincome.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Verify Long Term Travel Insurance") +public class LongTermTravelInsuranceIb { + + private String birthNumber; + + @BeforeEach + void cancelInsurance(Harness harness) { + birthNumber = harness.getConfig("rc.longTermTravelInsuranceIb"); + harness.tasks() + .insuranceTasks() + .setInsuranceStatusTask() + .cancelInsurance(birthNumber); + } + + @Order(1) + @TestCase(name = "Go to insurance page and create LongTerm Travell Insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T331") + void createLongTermTravelInsuranceEuropaFamilyIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateLongTermInsurance() + .clickAccountSelect() + .clickRegionEuropeSelect() + .clickVariantFamilySelect() + .then(harness.tasks().ib().insuranceIbTasks().createLongTermTravelInsuranceWithDefaultMobileKey()) + .checkLongTravelEuropeFamilyInsuranceIsFound(); + } + + @Order(2) + @TestCase(name = "Go to insurance page and create LongTerm Travell Insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T332") + void createLongTermTravelInsuranceEuropaSingleIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateLongTermInsurance() + .clickAccountSelect() + .clickRegionEuropeSelect() + .clickVariantSingleSelect() + .then(harness.tasks().ib().insuranceIbTasks().createLongTermTravelInsuranceWithDefaultMobileKey()) + .checkLongTravelEuropeSingleInsuranceIsFound(); + } + + @Order(3) + @TestCase(name = "Go to insurance page and create LongTerm Travell Insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T333") + void createLongTermTravelInsuranceWorldFamilyIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateLongTermInsurance() + .clickAccountSelect() + .clickRegionWorldSelect() + .clickVariantFamilySelect() + .then(harness.tasks().ib().insuranceIbTasks().createLongTermTravelInsuranceWithDefaultMobileKey()) + .checkLongTravelWorldFamilyInsuranceIsFound(); + } + + @Order(4) + @TestCase(name = "Go to insurance page and create LongTerm Travell Insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T334") + void createLongTermTravelInsuranceWorldSingleIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateLongTermInsurance() + .clickAccountSelect() + .clickRegionWorldSelect() + .clickVariantSingleSelect() + .then(harness.tasks().ib().insuranceIbTasks().createLongTermTravelInsuranceWithDefaultMobileKey()) + .checkLongTravelWorldSingleInsuranceIsFound(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/PaymentsCardsExpensesRiskInsurance.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/PaymentsCardsExpensesRiskInsurance.java new file mode 100644 index 0000000..886027e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/PaymentsCardsExpensesRiskInsurance.java @@ -0,0 +1,92 @@ +package cz.moneta.test.regression.feeincome.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Verify Insurance for Paymants, Cards, Expenses and Risks") +public class PaymentsCardsExpensesRiskInsurance { + + private String birthNumber; + private final String SMS_CODE = "12341234"; + + @BeforeEach + void cancelInsurance(Harness harness) { + birthNumber = harness.getConfig("rc.createElectronicPaymantsInsuranceIb"); + harness.tasks() + .insuranceTasks() + .setInsuranceStatusTask() + .cancelInsurance(birthNumber); + } + + @Order(1) + @TestCase(name = "Go to insurance page and create Electronic Paymants Insurance") + @JiraTestCase(id = "INS-T330") + void createElectronicPaymantsInsuranceIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateElectronicPaymentInsurance() + .clickAccountSelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode(SMS_CODE) + .clickSend() + .clickListInsurace() + .checkElectronicPaymentInsuranceIsFound(); + } + + @Order(2) + @TestCase(name = "Go to insurance page and create Payments and Expense Insurance") + @JiraTestCase(id = "INS-T338") + void createPaymentsAndExpensesInsuranceIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreatePaymentsAndExpensesInsurance() + .clickAccountSelect() + .clickHealthCOnditionConfirmation() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode(SMS_CODE) + .clickSend() + .clickListInsurace() + .checkPaymentsAndExpensesInsuranceIsFound(); + } + + @Order(3) + @TestCase(name = "Go to insurance page and create Electronic Paymants Insurance") + @JiraTestCase(id = "INS-T339") + void createPropertyCardsAndInternetRisksInsuranceIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateInsuranceOfPropertyCardsAndInternetRisks() + .clickAccountSelect() + .clickLicenceAgreement() + .clickInsuranceAgreement() + .clickContinueButton() + .typeSmsCode(SMS_CODE) + .clickSend() + .clickListInsurace() + .checkPropertyCardsAndInternetRiskInsuranceIsFound(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/ShortTermTravelInsurance.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/ShortTermTravelInsurance.java new file mode 100644 index 0000000..bb9fa29 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/ib/ShortTermTravelInsurance.java @@ -0,0 +1,101 @@ +package cz.moneta.test.regression.feeincome.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Verify Short Term Travel Insurance") +public class ShortTermTravelInsurance { + + private String birthNumber; + + @BeforeEach + void cancelInsurance(Harness harness) { + birthNumber = harness.getConfig("rc.shortTermTravelInsuranceIb"); + harness.tasks() + .insuranceTasks() + .setInsuranceStatusTask() + .cancelInsurance(birthNumber); + } + + @Order(1) + @TestCase(name = "Go to insurance page and create ShortTerm Travell Insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T340") + void createShortTermTravelInsuranceEuropaFamilyIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateShortTermInsurance() + .clickAccountSelect() + .clickRegionEuropeSelect() + .clickVariantFamilySelect() + .then(harness.tasks().ib().insuranceIbTasks().createShortTermTravelInsuranceWithDefaultMobileKey()) + .checkShortTravelEuropeFamilyInsuranceIsFound(); + } + + @Order(2) + @TestCase(name = "Go to insurance page and create ShortTerm Travell Insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T335") + void createShortTermTravelInsuranceEuropaSingleIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateShortTermInsurance() + .clickAccountSelect() + .clickRegionEuropeSelect() + .clickVariantSingleSelect() + .then(harness.tasks().ib().insuranceIbTasks().createShortTermTravelInsuranceWithDefaultMobileKey()) + .checkShortTravelEuropeSingleInsuranceIsFound(); + } + + @Order(3) + @TestCase(name = "Go to insurance page and create ShortTerm Travell Insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T336") + void createShortTermTravelInsuranceWorldFamilyIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateShortTermInsurance() + .clickAccountSelect() + .clickRegionWorldSelect() + .clickVariantFamilySelect() + .then(harness.tasks().ib().insuranceIbTasks().createShortTermTravelInsuranceWithDefaultMobileKey()) + .checkShortTravelWorldFamilyInsuranceIsFound(); + } + + @Order(4) + @TestCase(name = "Go to insurance page and create ShortTerm Travell Insurance", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T337") + void createShortTermTravelInsuranceWorldSingleIb(Harness harness) { + Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(birthNumber); + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().insuranceIbTasks().loginWithDefaultMobileKeyAndClickInsurance(udebsCredentials)) + .clickCreateShortTermInsurance() + .clickAccountSelect() + .clickRegionWorldSelect() + .clickVariantSingleSelect() + .then(harness.tasks().ib().insuranceIbTasks().createShortTermTravelInsuranceWithDefaultMobileKey()) + .checkShortTravelWorldSingleInsuranceIsFound(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/AccidentInsuranceUfo.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/AccidentInsuranceUfo.java new file mode 100644 index 0000000..91445ca --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/AccidentInsuranceUfo.java @@ -0,0 +1,88 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Create Accident Insurance on the client in UFO Banka ") +public class AccidentInsuranceUfo { + + private String birthNumber; + private String cifNumber; + + @BeforeEach + void cancelInsurance(Harness harness) { + cifNumber = harness.getConfig("cif.accidentInsuranceUfo"); + birthNumber = harness.getConfig("rc.accidentInsuranceUfo"); + harness.tasks() + .insuranceTasks() + .setInsuranceStatusTask() + .cancelInsurance(birthNumber); + } + + @Order(1) + @TestCase(name = "Log on UFO BANKA and new accident insurance family", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T343") + void arrangementAccidentInsuranceFamily(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoBanker) { + String productName = "Úrazové pojištění - varianta Rodina"; + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(birthNumber).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .then(tasks.newInsuranceGroupTasks().findCifAndCreateGroupInsuranceProduct(cifNumber, productName, account)) + .then(tasks.newInsuranceGroupTasks().completeAndCheckActiveInsurance(productName)); + } + + @Order(2) + @TestCase(name = "Log on UFO BANKA and new accident insurance for adults ", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T344") + void arrangementInsuranceAccidentInsuranceForAdults(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoBanker) { + String productName = "Úrazové pojištění - varianta Dospělý"; + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(birthNumber).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .then(tasks.newInsuranceGroupTasks().findCifAndCreateGroupInsuranceProduct(cifNumber, productName, account)) + .then(tasks.newInsuranceGroupTasks().completeAndCheckActiveInsurance(productName)); + } + + @Order(3) + @TestCase(name = "Log on UFO BANKA and new accident insurance junior", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T345") + void arrangementInsuranceJunior(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoBanker) { + String productName = "Úrazové pojištění - varianta Junior - rodičovský"; + String rcJunior = harness.tasks().common().getRcByMaxAge(7); + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(birthNumber).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .then(tasks.newInsuranceGroupTasks().findCifAndCreateGroupInsuranceProduct(cifNumber, productName, account)) + .fillRc(rcJunior) + .fillGivenName("Junior") + .fillFamilyName("Pojisteny") + .clickCheckBox() + .then(tasks.newInsuranceGroupTasks().completeAndCheckActiveInsurance(productName)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/KomexAdditionalInsurance.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/KomexAdditionalInsurance.java new file mode 100644 index 0000000..52527ab --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/KomexAdditionalInsurance.java @@ -0,0 +1,40 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = " Komex aditionall Insurance TestSuite basic tests cases") +public class KomexAdditionalInsurance { + + @TestCase(name = "Komex Expres Business in UFO Bank", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T346") + public void checkKomexInsuranceBank(Harness harness, @Key("ufo-banka-banker") Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + String ico = harness.getConfig("ico.komexInsuranceBank"); + String expresAccount = harness.getConfig("expres.komexInsuranceBank"); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(ico)) + .clickExpresKomexDetail(expresAccount) + .clickEditInsuranceKomex() + .clickAddKomexButton() + .clickInvalidCheckButton() + .clickConfirmChangeKomex() + .clickConfirmSignedButton() + .clickInsChangeVictoryButton() + .clickEditInsuranceKomex() + .clickKomexTerminationButton() + .clickConfirmChangeCancelKomex() + .clickInsChangeVictoryCancelButton(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/LifeInsuranceTest.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/LifeInsuranceTest.java new file mode 100644 index 0000000..f1cf813 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/LifeInsuranceTest.java @@ -0,0 +1,41 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.insurance.InsuranceIndividualTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; + +@TestScenario() +public class LifeInsuranceTest { + @TestCase(name = "Zivotni pojisteni NN") + @JiraTestCase(id = "INS-T914", project = "Insurance Cluster") + public void lifeInsuranceViaUFOTest(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + InsuranceIndividualTasks insuranceTasks = bankaTasks.newInsuranceIndividualTasks(); + NonClient client = insuranceTasks.prepareClientViaWSO(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + //.openLoginPageTomcat() //tomcat + //.selectFirstOm() //tomcat + //.selectUfoBankaAndContinue() //tomcat + .then(insuranceTasks.searchClientAndOpenIndividualInsuranceForm(client)) + .then(insuranceTasks.fillInsuranceForm()) + .then(insuranceTasks.signDocuments()) + .clickOpenNNAndSwitchTab() + .storeNnInputValues(); + + Assertions.assertEquals(client.firstName(), harness.get("NN_FIRSTNAME")); + Assertions.assertEquals(client.lastName(), harness.get("NN_LASTNAME")); + Assertions.assertEquals(insuranceTasks.formatBirthDate(client.birthDate()), harness.get("NN_BIRTHDATE")); + Assertions.assertEquals("Male", harness.get("NN_SEX")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/LongTermTravelInsurance.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/LongTermTravelInsurance.java new file mode 100644 index 0000000..0e61c81 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/LongTermTravelInsurance.java @@ -0,0 +1,98 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "New Long Term Travel Insurance 2019") +public class LongTermTravelInsurance { + + private String birthNumber; + private String cifNumber; + + @BeforeEach + void cancelInsurance(Harness harness) { + cifNumber = harness.getConfig("cif.longTermTravelInsuranceUfo"); + birthNumber = harness.getConfig("rc.longTermTravelInsuranceUfo"); + harness.tasks() + .insuranceTasks() + .setInsuranceStatusTask() + .cancelInsurance(birthNumber); + } + + @Order(1) + @TestCase(name = "Log on UFO BANKA and new Long Term Travel Insurance Europe Family", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T347") + void createLongTermTravelEuropeFamilyInsuranceUfo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoBanker) { + String productName = "Dlouhodobé cestovní pojištění Evropa 2019 (family)"; + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(birthNumber).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .then(tasks.newInsuranceGroupTasks().findCifAndCreateGroupInsuranceProduct(cifNumber, productName, account)) + .then(tasks.newInsuranceGroupTasks().completeAndCheckActiveInsurance(productName)); + } + + @Order(2) + @TestCase(name = "Log on UFO BANKA and new Long Term Travel Insurance Europe Single", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T348") + void createLongTermTravelEuropeSingleInsuranceUfo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoBanker) { + String productName = "Dlouhodobé cestovní pojištění Evropa 2019 (single)"; + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(birthNumber).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .then(tasks.newInsuranceGroupTasks().findCifAndCreateGroupInsuranceProduct(cifNumber, productName, account)) + .then(tasks.newInsuranceGroupTasks().completeAndCheckActiveInsurance(productName)); + } + + @Order(3) + @TestCase(name = "Log on UFO BANKA and new Long Term Travel Insurance World Family", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T349") + void createLongTermTravelWorldFamilyInsuranceUfo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoBanker) { + String productName = "Dlouhodobé cestovní pojištění Svět 2019 (family)"; + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(birthNumber).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .then(tasks.newInsuranceGroupTasks().findCifAndCreateGroupInsuranceProduct(cifNumber, productName, account)) + .then(tasks.newInsuranceGroupTasks().completeAndCheckActiveInsurance(productName)); + } + + @Order(4) + @TestCase(name = "Log on UFO BANKA and new Long Term Travel Insurance World Single", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T351") + void createLongTermTravelWorldSingleInsuranceUfo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoBanker) { + String productName = "Dlouhodobé cestovní pojištění Svět 2019 (single)"; + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(birthNumber).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .then(tasks.newInsuranceGroupTasks().findCifAndCreateGroupInsuranceProduct(cifNumber, productName, account)) + .then(tasks.newInsuranceGroupTasks().completeAndCheckActiveInsurance(productName)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewClientWithInsuranceUfo.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewClientWithInsuranceUfo.java new file mode 100644 index 0000000..650407c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewClientWithInsuranceUfo.java @@ -0,0 +1,80 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.*; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Creating a new client and setting up insurance") +public class NewClientWithInsuranceUfo { + + private NonClient nonClient; + private String birthNumber; + + @BeforeAll + void setUpNewClient(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newNonClient(); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + @Order(1) + @TestCase(name = "Log on UFO BANKA and new accident insurance junior", environments = {TST1, PPE}) + void arrangementInsuranceJunior(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoBanker) { + String productName = "Úrazové pojištění - varianta Junior - rodičovský"; + birthNumber = nonClient.birthNumber(); + String rcJunior = harness.tasks().common().getRcByMaxAge(7); + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(birthNumber).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .then(tasks.newInsuranceGroupTasks().findCifAndCreateGroupInsuranceProduct(harness.get(CLIENT_CIF_STORE_KEY), productName, account)) + .fillRc(rcJunior) + .fillGivenName("Junior") + .fillFamilyName("Pojisteny") + .clickCheckBox() + .then(tasks.newInsuranceGroupTasks().completeAndCheckActiveInsurance(productName)); + } + + @Order(2) + @TestCase(name = "Log on UFO BANKA and new Long Term Travel Insurance Europe Family", environments = {TST1, PPE}) + void createLongTermTravelEuropeFamilyInsuranceUfo(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoBanker) { + String productName = "Dlouhodobé cestovní pojištění Evropa 2019 (family)"; + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(birthNumber).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .then(tasks.newInsuranceGroupTasks().findCifAndCreateGroupInsuranceProduct(harness.get(CLIENT_CIF_STORE_KEY), productName, account)) + .then(tasks.newInsuranceGroupTasks().completeAndCheckActiveInsurance(productName)); + } + + @AfterEach + void cancelInsurance(Harness harness) { + harness.tasks() + .insuranceTasks() + .setInsuranceStatusTask() + .cancelInsurance(birthNumber); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewInsuranceCheck.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewInsuranceCheck.java new file mode 100644 index 0000000..d1bc1a0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewInsuranceCheck.java @@ -0,0 +1,33 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "New Insurance Check") +public class NewInsuranceCheck { + + @TestCase(name = "New Insurance check", environments = {TST1, PPE}) + @JiraTestCase(id = "INS-T393") + void arrangementNewInsuranceCheck(Harness harness, @Key(ufo.banka.banker) Credentials ufoBanker) { + String productName = "Pojištění osobních věcí, platebních karet a internetových rizik"; + String birthNumber = harness.getConfig("rc.arrangementNewInsuranceCheck"); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentials(ufoBanker)) + .fillSearchTerm(birthNumber) + .clickSearchByRc() + .onClientDetailPage() + .checkProductActive(productName); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewInsuranceOfPaymentsAndExpenses.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewInsuranceOfPaymentsAndExpenses.java new file mode 100644 index 0000000..2a5817d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewInsuranceOfPaymentsAndExpenses.java @@ -0,0 +1,66 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage.ACCOUNT_NUMBER_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.INSURANCE; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; + +@TestScenario(name = "New Insurance Of Payments And Expenses") +public class NewInsuranceOfPaymentsAndExpenses { + + private NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newNonClient(); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + @TestCase(name = "Log on UFO BANKA and new insurance of payments and expenses") + @JiraTestCase(id = "INS-T352") + void arrangementInsuranceOfPaymentsAndExpenses(Harness harness, @Key(ufo.banka.banker) Credentials ufoBanker) { + String productName = "Pojištění splátek a výdajů"; + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .createNewProduct(INSURANCE) + .onInsuranceSelectPage() + .clickGroupInsuranceButtonAndContinueToChooseInsurancePage() + .selectInsurance(productName) + .selectAccount(harness.get(ACCOUNT_NUMBER_KEY)) + .clickContinue() + .onSignerSelectionPage() + .chooseCitizen() + .clickContinue() + .onVerificationOfSignaturePage() + .clickSignedButtonAndContinueToEnterIntoOtherInsurancePage() + .clickFinishButtonAndContinueToPrintDispositionsPage() + .clickPostponePrintButtonAndContinueToProductsListPage() + .clickClientAgreedAndSignedAll() + .clickContinue() + .onMainClientPage() + .checkProductActive(productName); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewPIP.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewPIP.java new file mode 100644 index 0000000..8c7b4c8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/NewPIP.java @@ -0,0 +1,66 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage.ACCOUNT_NUMBER_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.INSURANCE; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; + +@TestScenario(name = "Verify transaction history of current accounts") +public class NewPIP { + + private NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newNonClient(); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + @TestCase(name = "Log on UFO BANKA and new PIP+") + @JiraTestCase(id = "INS-T353") + void arrangementNewPIP(Harness harness, @Key(ufo.banka.banker) Credentials ufoBanker) { + String productName = "Pojištění osobních věcí, platebních karet a internetových rizik"; + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .fillSearchTerm(harness.get(HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .createNewProduct(INSURANCE) + .onInsuranceSelectPage() + .clickGroupInsuranceButtonAndContinueToChooseInsurancePage() + .selectInsurance(productName) + .selectAccount(harness.get(ACCOUNT_NUMBER_KEY)) + .clickContinue() + .onSignerSelectionPage() + .chooseCitizen() + .clickContinue() + .onVerificationOfSignaturePage() + .clickSignedButtonAndContinueToEnterIntoOtherInsurancePage() + .clickFinishButtonAndContinueToPrintDispositionsPage() + .clickPostponePrintButtonAndContinueToProductsListPage() + .clickClientAgreedAndSignedAll() + .clickContinue() + .onMainClientPage() + .checkProductActive(productName); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceEuropeFamily.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceEuropeFamily.java new file mode 100644 index 0000000..04f27c8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceEuropeFamily.java @@ -0,0 +1,78 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.INSURANCE; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; + +@TestScenario(name = "Short Term Travel Insurance Europe Family") +public class ShortTermTravelInsuranceEuropeFamily { + + private NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newNonClient(); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + @TestCase(name = "Log on UFO BANKA and arrangement new short term travel insurance europe family ") + @JiraTestCase(id = "INS-T354") + void arrangementShortTermTravelInsuranceEuropeFamily(Harness harness, @Key(ufo.banka.banker) Credentials ufoBanker) { + String productName = "Krátkodobé cestovní pojištění Evropa (family)"; + String rc = nonClient.birthNumber(); + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(rc).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .createNewProduct(INSURANCE) + .onInsuranceSelectPage() + .clickGroupInsuranceButtonAndContinueToChooseInsurancePage() + .selectInsurance(productName) + .waitUntilLoaderIsGone() + .selectAccount(account) + .waitUntilLoaderIsGone() + .fillDateFrom(LocalDate.now().plusDays(1)) + .fillDateUntil(LocalDate.now().plusDays(3)) + .waitUntilPriceIsCalculated() + .clickContinue() + .onSignerSelectionPage() + .clickContinue() + .onVerificationOfSignaturePage() + .clickSignedButtonAndContinueToEnterIntoOtherInsurancePage() + .clickFinishButtonAndContinueToDispositionsPage() + .clickGenerateNow() + .onContractDocumentationPage() + .clickContinue() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .checkProductActive(productName); + } + + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceEuropeSingle.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceEuropeSingle.java new file mode 100644 index 0000000..5a8f2f5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceEuropeSingle.java @@ -0,0 +1,78 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.INSURANCE; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; + +@TestScenario(name = "Short Term Travel Insurance Europe Single") +public class ShortTermTravelInsuranceEuropeSingle { + + private NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newNonClient(); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + @TestCase(name = "Log on UFO BANKA and arrangement new short term travel insurance europe single ") + @JiraTestCase(id = "INS-T355") + void arrangementShortTermTravelInsuranceEuropeSingle(Harness harness, @Key(ufo.banka.banker) Credentials ufoBanker) { + String productName = "Krátkodobé cestovní pojištění Evropa (single)"; + String rc = nonClient.birthNumber(); + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(rc).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .createNewProduct(INSURANCE) + .onInsuranceSelectPage() + .clickGroupInsuranceButtonAndContinueToChooseInsurancePage() + .selectInsurance(productName) + .waitUntilLoaderIsGone() + .selectAccount(account) + .waitUntilLoaderIsGone() + .fillDateFrom(LocalDate.now().plusDays(1)) + .fillDateUntil(LocalDate.now().plusDays(3)) + .waitUntilPriceIsCalculated() + .clickContinue() + .onSignerSelectionPage() + .clickContinue() + .onVerificationOfSignaturePage() + .clickSignedButtonAndContinueToEnterIntoOtherInsurancePage() + .clickFinishButtonAndContinueToDispositionsPage() + .clickGenerateNow() + .onContractDocumentationPage() + .clickContinue() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .checkProductActive(productName); + } + + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceWorldFamily.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceWorldFamily.java new file mode 100644 index 0000000..7a0dc28 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceWorldFamily.java @@ -0,0 +1,78 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.INSURANCE; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; + +@TestScenario(name = "Short Term Travel Insurance World Family") +public class ShortTermTravelInsuranceWorldFamily { + + private NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newNonClient(); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + @TestCase(name = "Log on UFO BANKA and arrangement new short term travel insurance world family") + @JiraTestCase(id = "INS-T356") + void arrangementShortTermTravelInsuranceWorldFamily(Harness harness, @Key(ufo.banka.banker) Credentials ufoBanker) { + String productName = "Krátkodobé cestovní pojištění Svět (family)"; + String rc = nonClient.birthNumber(); + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(rc).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .createNewProduct(INSURANCE) + .onInsuranceSelectPage() + .clickGroupInsuranceButtonAndContinueToChooseInsurancePage() + .selectInsurance(productName) + .waitUntilLoaderIsGone() + .selectAccount(account) + .waitUntilLoaderIsGone() + .fillDateFrom(LocalDate.now().plusDays(1)) + .fillDateUntil(LocalDate.now().plusDays(3)) + .waitUntilPriceIsCalculated() + .clickContinue() + .onSignerSelectionPage() + .clickContinue() + .onVerificationOfSignaturePage() + .clickSignedButtonAndContinueToEnterIntoOtherInsurancePage() + .clickFinishButtonAndContinueToDispositionsPage() + .clickGenerateNow() + .onContractDocumentationPage() + .clickContinue() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .checkProductActive(productName); + } + + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceWorldSingle.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceWorldSingle.java new file mode 100644 index 0000000..d2d0f83 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/insurance/ShortTermTravelInsuranceWorldSingle.java @@ -0,0 +1,78 @@ +package cz.moneta.test.regression.feeincome.insurance; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass.INSURANCE; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; + +@TestScenario(name = "Short Term Travel Insurance World Single") +public class ShortTermTravelInsuranceWorldSingle { + + private NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newNonClient(); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + @TestCase(name = "Log on UFO BANKA and arrangement new short term travel insurance world single ") + @JiraTestCase(id = "INS-T357") + void arrangementShortTermTravelInsuranceWorldngle(Harness harness, @Key(ufo.banka.banker) Credentials ufoBanker) { + String productName = "Krátkodobé cestovní pojištění Svět (single)"; + String rc = nonClient.birthNumber(); + String account = harness.withUdebs().accountNumbers().getTopCurrentAccount(rc).substring(1); + BankaTasks tasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(tasks.login().withCredentialsAndTurnOffSignpad(ufoBanker)) + .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .createNewProduct(INSURANCE) + .onInsuranceSelectPage() + .clickGroupInsuranceButtonAndContinueToChooseInsurancePage() + .selectInsurance(productName) + .waitUntilLoaderIsGone() + .selectAccount(account) + .waitUntilLoaderIsGone() + .fillDateFrom(LocalDate.now().plusDays(1)) + .fillDateUntil(LocalDate.now().plusDays(3)) + .waitUntilPriceIsCalculated() + .clickContinue() + .onSignerSelectionPage() + .clickContinue() + .onVerificationOfSignaturePage() + .clickSignedButtonAndContinueToEnterIntoOtherInsurancePage() + .clickFinishButtonAndContinueToDispositionsPage() + .clickGenerateNow() + .onContractDocumentationPage() + .clickContinue() + .onSummaryStartDocumentsPage() + .clickContinue() + .onMainClientPage() + .checkProductActive(productName); + } + + +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/feeincome/package-info.java b/tests/src/test/java/cz/moneta/test/regression/feeincome/package-info.java new file mode 100644 index 0000000..56e5c50 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/feeincome/package-info.java @@ -0,0 +1,4 @@ +/** + * Value Stream: Fee Income + */ +package cz.moneta.test.regression.feeincome; \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/internal/forte/AppointmentsTest.java b/tests/src/test/java/cz/moneta/test/regression/internal/forte/AppointmentsTest.java new file mode 100644 index 0000000..e18485a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/internal/forte/AppointmentsTest.java @@ -0,0 +1,46 @@ +package cz.moneta.test.regression.internal.forte; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.forte.components.ForteRoles; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Appointments") +public class AppointmentsTest { + + @Order(1) + @TestCase(name = "Appointments - Add branch and change capacity", environments = {Environment.TST1}) + public void appointmentsAddBranchAndChangeCapacity(Harness harness) { + harness.withForte() + .openForteHomePage() + .clickAppointments() + .selectRoleMenu(ForteRoles.BANKER) + .clickAddOM() + .fillBranchName("bbc") + .clickFirstSearchedOm() + .clickRoleMenu("Osobní bankéř") + .clickSubmit() + .clickSetActiveBranch() + .clickChangeCapacity() + .fillCapacity(10) + .clickSetCapacity() + .checkBranchCapacity(10); + } + + @Order(2) + @TestCase(name = "Appointments - check menu", environments = {Environment.TST1}) + public void openFindAppointmentsParam(Harness harness) { + harness.withForte() + .openForteHomePage() + .clickAppointments() + .selectRoleMenu(ForteRoles.APP_ADMIN) + .clickRolesAdministration() + .checkTablePresents() + .clickProductTypes() + .checkTablePresents() + .clickListOfEmptySlots() + .checkTablePresents(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/internal/forte/BranchesTest.java b/tests/src/test/java/cz/moneta/test/regression/internal/forte/BranchesTest.java new file mode 100644 index 0000000..8a7a637 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/internal/forte/BranchesTest.java @@ -0,0 +1,55 @@ +package cz.moneta.test.regression.internal.forte; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.forte.components.ForteRoles; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Open MMB branch search and upload photo") +public class BranchesTest { + + @Order(1) + @TestCase(name = "Searching MMB branch", environments = {Environment.TST1}) + public void findMmbBranches(Harness harness) { // TODO: hotovo + harness.withForte() + .openForteHomePage() + .clickBranches() + .selectRoleMenu(ForteRoles.USER_MODE) + .clickMmbFindBranches() + .fillBranchName("Brno") + .clickSearch() + .checkFoundBranchesTitle() + .checkFoundBranchesElements("Brno"); + } + + @Order(2) + @TestCase(name = "Upload MMB branch photo", environments = {Environment.TST1, Environment.DEV}) + public void uploadBranchPhoto(Harness harness) { + String doc_path = "regression/forte/pobocka.jpg"; + + harness.withForte() + .openForteHomePage() + .clickBranches() + .selectRoleMenu(ForteRoles.ADMIN_RETAIL) + .clickMmbBranchesList() + .clickExportToExcel() + .fillAddressFilter("Brno") + .clickSubmitFilter() + .clickFirstBranchDetail() + .clickShowOnMap() + .clickMmbBranchesList() + .fillAddressFilter("Brno") + .clickSubmitFilter() + .clickFirstBranchDetail() + .clickPhotoAdministration() + .clickAddNewPhotoDocument() + .fillRecordName("Testovací dokument") + .uploadDocument(doc_path) + .clickAddButton() + .checkDocumentPresence("Testovací dokument") + .clickRemoveLastDocument() + .clickYes(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/internal/forte/BrnControlsTest.java b/tests/src/test/java/cz/moneta/test/regression/internal/forte/BrnControlsTest.java new file mode 100644 index 0000000..1cdbf2c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/internal/forte/BrnControlsTest.java @@ -0,0 +1,70 @@ +package cz.moneta.test.regression.internal.forte; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.forte.components.ForteRoles; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.Order; + +import java.time.LocalDate; + +@TestScenarioWithOrder(name = "Kontroly_OM") +public class BrnControlsTest { + + @Order(1) + @TestCase(name = "Kontroly_OM", environments = {Environment.TST1}) + public void newBrnControlsParam(Harness harness) { + String transactionDate = DateUtils.getDateWithFormat(LocalDate.now().minusMonths(3), "yyyy-MM-dd"); + harness.withForte() + .openForteHomePage() + .clickControlsOM() + .selectRoleMenu(ForteRoles.RSZP) + .clickControlsOnOM() + .clickCurrentQuarterFilterButton() + .clickFirstControlDetail() + .clickAddTransactionControl() + .selectControlType(1) + .fillTransactionDate(transactionDate) + .fillAccountNumber("123456/0100") + .fillTransactionNumber("1234") + .selectTransactionType(21) + .selectControlResult(1) + .fillBankerSSO("212623428") + .clickSubmit() + .checkFirstTransactionDate(transactionDate); + } + + @Order(2) + @TestCase(name = "Branches controls - check menu", environments = {Environment.TST1}) + public void openBrnControlsParam(Harness harness) { + harness.withForte() + .openForteHomePage() + .clickControlsOM() + .selectRoleMenu(ForteRoles.ADMINISTRATOR) + .clickControlsEnumsTotalResult() + .clickControlsEnumsErrorTypes() + .clickControlsEnumsTransactionForms() + .clientControlsEnumsTransactionTypes() + .clickControlsEnumsTrendControl() + .clickControlsEnumsControlTypes() + .clickControlsEnumsProductTypes() + .clickControlsEnumsControlResults() + .clickSecurityEnumsControlsTypes() + .clickSecurityEnumsControlResults(); + } + + @Order(3) + @TestCase(name = "Branches controls - check reports filter", environments = {Environment.TST1}) + public void reportBrnControlsParam(Harness harness) { + harness.withForte() + .openForteHomePage() + .clickControlsOM() + .selectRoleMenu(ForteRoles.ADMINISTRATOR) + .clickReportsControlsOnOM() + .selectQuarterByIndex(2) + .clickSearch() + .checkResultTablePresence(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/internal/forte/ContractsTest.java b/tests/src/test/java/cz/moneta/test/regression/internal/forte/ContractsTest.java new file mode 100644 index 0000000..e947491 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/internal/forte/ContractsTest.java @@ -0,0 +1,60 @@ +package cz.moneta.test.regression.internal.forte; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.forte.components.ForteRoles; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder(name = "Contracts tests") +public class ContractsTest { + + @Order(1) + @TestCase(name = "Find contract by params", environments = {Environment.TST1}) + public void findContractByParam(Harness harness) { + harness.withForte() + .openForteHomePage() + .clickContracts() + .selectRoleMenu(ForteRoles.OPERATOR_FINANCE) + .clickFindContracts() + .clickClearForm() + .clickFindContracts() + .selectSearchBy("Parametry") + .fillContractName("Lidl") + .clickSearchContract() + .clickFirstResultDetail(); + } + + @Order(2) + @TestCase(name = "Open payments detail", environments = {Environment.TST1}) + public void checkPaymentsList(Harness harness) { + harness.withForte() + .openForteHomePage() + .clickContracts() + .selectRoleMenu(ForteRoles.OPERATOR_FINANCE) + .clickPaymentsList() + .clickCurrentMonth() + .clickFirstPaymentDetail(); + } + + @Order(3) + @TestCase(name = "Contracts - check menu", environments = {Environment.TST1}) + public void checkContractsMenu(Harness harness) { + harness.withForte() + .openForteHomePage() + .clickContracts() + .selectRoleMenu(ForteRoles.OPERATOR_FINANCE) + .clickEnumsCdrAccounts() + .clickEnumsCurrency() + .clickEnumsCostCenters() + .clickEnumsDphRates() + .clickEnumsPaymentCategories() + .clickEnumsPaymentTerms() + .clickEnumsValorization() + .clickEnumsAccountingBridge() + .clickEnumsChangeTypes() + .clickEnumsDiscountRates() + .clickEnumsBLE(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/internal/forte/OpenLogPageTest.java b/tests/src/test/java/cz/moneta/test/regression/internal/forte/OpenLogPageTest.java new file mode 100644 index 0000000..8287e39 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/internal/forte/OpenLogPageTest.java @@ -0,0 +1,20 @@ +package cz.moneta.test.regression.internal.forte; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.forte.components.ForteRoles; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Open Portal log page") +public class OpenLogPageTest { + + @TestCase(name = "Open Portal log page", environments = {Environment.TST1, Environment.DEV}) + public void openLogPage(Harness harness) { + harness.withForte() + .openForteHomePage() + .clickPortal() + .selectRoleMenu(ForteRoles.SUPERUSER) + .clickLogs(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/internal/fortelight/IntermediaryTest.java b/tests/src/test/java/cz/moneta/test/regression/internal/fortelight/IntermediaryTest.java new file mode 100644 index 0000000..c72de8e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/internal/fortelight/IntermediaryTest.java @@ -0,0 +1,32 @@ +package cz.moneta.test.regression.internal.fortelight; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Import dealers to Intermediary application") +public class IntermediaryTest { + + @TestCase(name = "Import dealers", environments = {Environment.TST1, Environment.DEV}) + public void uploadBranchPhoto(Harness harness) { + String adminBo = harness.withForteLight() + .openForteLightHomePage() + .clickIntermediaryMenu() + .getAdminBoId(); + + String doc_path = "regression/forte/dealer.xlsx"; + + harness.withForteLight() + .openForteLightHomePage() + .clickIntermediaryMenu() + .selectRoleMenu(adminBo) + .clickImportDealerMenu() + .checkPageTitle("Nahrát soubor") + .uploadDocument(doc_path) + .clickUploadButton() + .checkPageTitle("Kontrola nových prodejců") + .clickRemoveDealer() + .clickYes(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/internal/fortelight/OpenAttendanceTest.java b/tests/src/test/java/cz/moneta/test/regression/internal/fortelight/OpenAttendanceTest.java new file mode 100644 index 0000000..d22b35f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/internal/fortelight/OpenAttendanceTest.java @@ -0,0 +1,21 @@ +package cz.moneta.test.regression.internal.fortelight; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +@Disabled("Padá na 401") +@TestScenario(name = "Open user's attendance timesheet in Forge") +public class OpenAttendanceTest { + + @TestCase(name = "Open user's attendance timesheet", environments = {Environment.TST1, Environment.DEV}) + public void openAttendanceTimesheet(Harness harness) { + harness.withForteLight() + .openForteLightHomePage() + .clickMyProfile() + .clickAttendanceIcon() + .checkPageTitle("Výkaz docházky za období"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/internal/fortelight/OpenLogPageTest.java b/tests/src/test/java/cz/moneta/test/regression/internal/fortelight/OpenLogPageTest.java new file mode 100644 index 0000000..e54203e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/internal/fortelight/OpenLogPageTest.java @@ -0,0 +1,25 @@ +package cz.moneta.test.regression.internal.fortelight; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Open Portal log page") +public class OpenLogPageTest { + + @TestCase(name = "Open Portal log page", environments = {Environment.TST1, Environment.DEV}) + public void openLogPage(Harness harness) { + String admin = harness.withForteLight() + .openForteLightHomePage() + .clickPortalMenu() + .getAdminId(); + + harness.withForteLight() + .openForteLightHomePage() + .clickPortalMenu() + .SelectSuperAdmin(admin) + .clickLogsLink() + .CheckPageTitle("HTML chyby"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/investments/InvestmentsPurchaseTests.java b/tests/src/test/java/cz/moneta/test/regression/investments/InvestmentsPurchaseTests.java new file mode 100644 index 0000000..5446da2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/investments/InvestmentsPurchaseTests.java @@ -0,0 +1,50 @@ +package cz.moneta.test.regression.investments; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.investments.InvestmentsTasks; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.dsl.util.data.client.NewClientWithCurrentAccountInformation; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +@TestScenarioWithOrder() +public class InvestmentsPurchaseTests { + NewClientWithCurrentAccountInformation newClient; + + @BeforeAll + public void createClientForBuying(Harness harness) { + InvestmentsTasks investTasks = harness.tasks().investmentsTasks(); + newClient = investTasks.prepareClientViaWSO(); + investTasks.logClientInfo(newClient); + } + + @Order(1) + @TestCase(name = "Establishment Of An Investment in IB") + @JiraTestCase(id = "INVEST-T587", project = "Investments") + public void investment_01_EstablishmentOfAnInvestmentInIB(Harness harness) { + InvestmentsTasks tasks = harness.tasks().investmentsTasks(); + NewIbTasks ib = harness.tasks().newIb(); + harness.withNewIb().openLoginPage() + .then(ib.loginWithUsernamePasswordAndDefaultMobKey(newClient.getCredentials().getUsername(), newClient.getCredentials().getPassword())) + .then(tasks.establishFirstInvestmentE2E()); + } + + @Order(2) + @TestCase(name = "Purchase fund from each risk profile in IB") + @JiraTestCase(id = "INVEST-T590", project = "Investments") + public void investment_02_PurchaseFundFromEachRiskProfile(Harness harness) { + InvestmentsTasks tasks = harness.tasks().investmentsTasks(); + NewIbTasks ib = harness.tasks().newIb(); + harness.withNewIb().openLoginPage() + .then(ib.loginWithUsernamePasswordAndDefaultMobKey(newClient.getCredentials().getUsername(), newClient.getCredentials().getPassword())) + .goToInvestments() + .clickInvestmentsCard() + .confirmDisclaimer() + .waitForMenu() + .uncoverEntireFundList() + .then(tasks.purchasedInvestmentFromEachRiskProfile(tasks.getRiskProfileNumbers(), "111111", "11111")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/investments/InvestmentsSaleTests.java b/tests/src/test/java/cz/moneta/test/regression/investments/InvestmentsSaleTests.java new file mode 100644 index 0000000..9bdf3c5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/investments/InvestmentsSaleTests.java @@ -0,0 +1,37 @@ +package cz.moneta.test.regression.investments; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.tasks.NewIbTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario() +public class InvestmentsSaleTests { + + @TestCase(name = "Sale assets in IB") + @JiraTestCase(id = "INVEST-T591", project = "Investments") + public void investmentSale(Harness harness) { + String username = harness.getConfig("investments.sale.nib-credentials.clientUsername"); + String password = harness.getConfig("investments.sale.nib-credentials.clientPassword"); + String isin = harness.getConfig("investments.sale.isin"); + harness.log("username: " + username); + harness.log("password: " + password); + harness.log("isin: " + isin); + NewIbTasks ib = harness.tasks().newIb(); + harness.withNewIb().openLoginPage() + .then(ib.loginWithUsernamePasswordAndDefaultMobKey(username, password)) + .goToInvestments() + .clickInvestmentsCard() + .confirmDisclaimer() + .waitForMenu() + .clickMyPortfolio() + .clickInvestmentByIsin(isin) + .clickSale() + .fillAmount("5") + .clickSubmit() + .clickSaleAnyway() + .fillMobileKey("12341234") + .clickSecondFactorSubmit(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/package-info.java b/tests/src/test/java/cz/moneta/test/regression/package-info.java new file mode 100644 index 0000000..822fe87 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/package-info.java @@ -0,0 +1,7 @@ +/** + * Regression tests are meant to be run periodically to make sure that something that was working before still works.\ + * Typically they are run against a fully-integrated environment ( DivDev + TST1, TST3, PPE) + * + * More about types of tests: https://monetamoneybank.atlassian.net/wiki/spaces/CONT/pages/824770608/Test+Repository+Structure + */ +package cz.moneta.test.regression; \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/risk/BlacklistedClientsTests.java b/tests/src/test/java/cz/moneta/test/regression/risk/BlacklistedClientsTests.java new file mode 100644 index 0000000..39af9b1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/risk/BlacklistedClientsTests.java @@ -0,0 +1,96 @@ +package cz.moneta.test.regression.risk; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.data.ClientUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.harness.support.util.Level; +import org.junit.jupiter.api.*; + +import java.util.ArrayList; +import java.util.List; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Loan applications for blacklisted clients") +public class BlacklistedClientsTests { + private NonClient applicant; + private BankaTasks bankaTasks; + private OperationsTasks operationsTasks; + private final int EXPRESS_TERM = 60; + private final int DEFAULT_LOAN_AMOUNT = 30000; + protected List clientBirthNumbers = new ArrayList<>(); + + @BeforeAll + void setup(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + operationsTasks = harness.tasks().ufo().operations(); + } + + @BeforeEach + void prepareClient(Harness harness) { + applicant = ClientUtils.getRiskDefaultClient(harness); + } + + @AfterEach + void logBirthNumber() { + clientBirthNumbers.add(applicant.birthNumber()); + } + + @AfterAll + protected void logBirthNumbers(Harness harness) { + clientBirthNumbers.forEach(rc -> harness.log(Level.INFO, rc)); + } + + @TestCase(name = "Express loan application for blacklisted client (risk-430)") + public void express_for_blacklisted_client(Harness harness, @Key(banker) Credentials credentials) { + int amount = 50000; + + bankaTasks.newClient().openUfoAndCreateClient(harness, credentials, applicant) + .then(operationsTasks.blacklistWhitelist().addToRcBlacklistFromUfoBankaAndSwitchBackToClient(applicant.birthNumber())) + .then(bankaTasks.expresTasks().createNewExpressApplication(applicant, amount, EXPRESS_TERM, HCisAllStavZadosti.VERIFICATION)); + + Assertions.assertEquals(HCisAllStavZadosti.VERIFICATION.getValue(), harness.get(NEP006_S001_ExpressScoringResultPage.APP_STAT_STORE)); + } + + @TestCase(name = "New Express loan application for blacklisted client with a co-applicant") + public void express_for_blacklisted_client_with_coApplicant(Harness harness, @Key(banker) Credentials credentials) { + NonClient coApplicant = ClientUtils.getRiskDefaultClient(harness); + int amount = 200000; + + bankaTasks.newClient().openUfoAndCreateClient(harness, credentials, coApplicant) + .clickSearch() + .then(bankaTasks.newClient().createWithIdCard(applicant, credentials.getUsername())) + .then(operationsTasks.blacklistWhitelist().addToRcBlacklistFromUfoBankaAndSwitchBackToClient(applicant.birthNumber())) + .then(bankaTasks.expresTasks().createNewExpressApplicationWithCoApplicant(applicant, coApplicant, amount, EXPRESS_TERM, HCisAllStavZadosti.VERIFICATION)); + + Assertions.assertEquals(HCisAllStavZadosti.VERIFICATION.getValue(), harness.get(NEP006_S001_ExpressScoringResultPage.APP_STAT_STORE)); + } + + @TestCase(name = "New FlexiCredit application for blacklisted client") + public void flexicredit_for_blacklisted_client(Harness harness, @Key(banker) Credentials credentials) { + bankaTasks.newClient().openUfoAndCreateClient(harness, credentials, applicant) + .then(operationsTasks.blacklistWhitelist().addToRcBlacklistFromUfoBankaAndSwitchBackToClient(applicant.birthNumber())) + .then(bankaTasks.flexiCreditTasks().createNewFlexiCreditApplication(applicant, DEFAULT_LOAN_AMOUNT, HCisAllStavZadosti.VERIFICATION)); + + Assertions.assertEquals(HCisAllStavZadosti.VERIFICATION.getValue(), harness.get(NFL006_S001_FlexikreditScoringResultPage.APP_STAT_STORE)); + } + + @TestCase(name = "New Credit Card application for blacklisted client") + public void credit_card_for_blacklisted_client(Harness harness, @Key(banker) Credentials credentials) { + bankaTasks.newClient().openUfoAndCreateClient(harness, credentials, applicant) + .then(operationsTasks.blacklistWhitelist().addToRcBlacklistFromUfoBankaAndSwitchBackToClient(applicant.birthNumber())) + .then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplication(applicant, DEFAULT_LOAN_AMOUNT, HCisAllStavZadosti.VERIFICATION)); + + Assertions.assertEquals(HCisAllStavZadosti.VERIFICATION.getValue(), harness.get(NEP006_S001_ExpressScoringResultPage.APP_STAT_STORE)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/risk/RiskRetailTests.java b/tests/src/test/java/cz/moneta/test/regression/risk/RiskRetailTests.java new file mode 100644 index 0000000..b521769 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/risk/RiskRetailTests.java @@ -0,0 +1,206 @@ +package cz.moneta.test.regression.risk; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardBrand; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO019_S001_CreditCardDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ProductType; +import cz.moneta.test.dsl.ufo.banka.pages.ib.HPO008_IbDetailPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.OPN008_S001_ExpressSignaturePage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.data.ClientUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Defect; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.secondBanker; + +@TestScenario(name = "Test for Risk RETAIL & SMALL BUSINESS RISK - UNSECURED PRODUCTS") +public class RiskRetailTests { + + private BankaTasks bankaTasks; + private NonClient applicant; + private final String CARD_ACTIVATED = "Aktivovaná karta"; + private final String ID_CARD_TYPE = "OP"; + private final int DEFAULT_LOAN_AMOUNT = 50000; + private final int DEFAULT_FLEXI_LOAN_AMOUNT = 30000; + private final int DEFAULT_TERM = 60; + private final int SHORT_TERM = 24; + private final String SECOND_BANKER_NAME = "TestJB Harness";//zatím voláno pouze lokálně + + @BeforeEach + public void setup(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + applicant = ClientUtils.getRiskDefaultClient(harness); + } + + //6 CIF + BU + IBS + KK MC Smart a na ní žádost o Clip přes IBS- todo + @Defect("Not finished") + @TestCase(name = "IBS Credit Card clip") + public void newClientWithIbsCreditCardClip(Harness harness, @Key(banker) Credentials credentials) { + + bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplication(applicant, DEFAULT_LOAN_AMOUNT, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.cardsOnboarding().creditCards().createAccountsForNewCreditCardWithExistingIbAndBu(DEFAULT_LOAN_AMOUNT)) + .then(bankaTasks.cardsServicing().creditCards().activateCreditCardWithoutSignatureSelect(ProductType.MONEYCARD_SMART.getValue(), ID_CARD_TYPE, applicant.idCardNumber())) + .then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplicationWithPrefilledData(DEFAULT_LOAN_AMOUNT)); + + Assertions.assertEquals(CARD_ACTIVATED, harness.get(HPO019_S001_CreditCardDetailPage.PROD_STAT_STORE)); + //todo JBR - IBS clip + } + + //7 žádost o product transfer přes POS z MC Smart (klidně stejná KK z bodu 4) na Kreditní účet - todo + @Defect("Not working in UFO") //todo JBR + @TestCase(name = "New client with Credit Card Product Transfer")//8 + public void newClientWithCreditCardProductTransfer(Harness harness, @Key(banker) Credentials credentials) { + + ProductType productType = ProductType.CREDIT_ACCOUNT; + CardBrand cardBrand = CardBrand.VISA; + + bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplicationDetailed(applicant, DEFAULT_LOAN_AMOUNT, productType, cardBrand, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.cardsOnboarding().creditCards().createAccountsForNewCreditCardWithExistingIbAndBu(DEFAULT_LOAN_AMOUNT)) + .then(bankaTasks.cardsServicing().creditCards().activateCreditCardWithoutSignatureSelect(productType.getValue(), ID_CARD_TYPE, applicant.idCardNumber())) + .then(bankaTasks.cardsOnboarding().creditCards().createProductTransferApplication(productType.getValue(), applicant)); + + //Assertions.assertEquals(expectedCardStat, harness.get(HPO019_CreditCardDetailPage.PROD_STAT_STORE)); + } + + @TestCase(name = "New client with two Credit Card applications")//8 + public void newClientWithTwoCreditCardApplications(Harness harness, @Key(banker) Credentials credentials) { + + ProductType productType = ProductType.CREDIT_ACCOUNT; + CardBrand cardBrand = CardBrand.VISA; + + bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplicationDetailed(applicant, DEFAULT_LOAN_AMOUNT, productType, cardBrand, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.cardsOnboarding().creditCards().createAccountsForNewCreditCardWithExistingIbAndBu(DEFAULT_LOAN_AMOUNT)) + .then(bankaTasks.cardsServicing().creditCards().activateCreditCardWithoutSignatureSelect(productType.getValue(), ID_CARD_TYPE, applicant.idCardNumber())) + .then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplicationWithPrefilledData(DEFAULT_LOAN_AMOUNT)); + + Assertions.assertEquals(CARD_ACTIVATED, harness.get(HPO019_S001_CreditCardDetailPage.PROD_STAT_STORE)); + + } + + // 9. žádost o 1. KK (jakýkoliv typ) s externí UVA vyšší než 500 tis Kč + @Defect("Not finished")//todo JBR + @TestCase(name = "New client with external UVA > 500K Kc")//9 + public void newClientWithExternalUva(Harness harness, @Key(banker) Credentials credentials) { + HKO101_S001_MainClientPage window = bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant); + + //set external UVA > 500 + + window.then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplication(applicant, DEFAULT_LOAN_AMOUNT)); + + } + + @Defect("Not finished")//todo JBR + @TestCase(name = "New client with scorecard CCON01S1 and score 483-528")//10 + public void newClientWithScorecardCcon01s1(Harness harness, @Key(banker) Credentials credentials) { + + HKO101_S001_MainClientPage window = bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant); + + //set scorecard CCON01S1 in ILODS + + window.then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplication(applicant, DEFAULT_LOAN_AMOUNT)); + + } + + @Defect("Not finished")//todo JBR + @TestCase(name = "New client with scorecard CCON01S2 and score 483-528")//11 + public void newClientWithScorecardCcon01s2(Harness harness, @Key(banker) Credentials credentials) { + + HKO101_S001_MainClientPage window = bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant); + + //set scorecard CCON01S2 in ILODS + + window.then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplication(applicant, DEFAULT_LOAN_AMOUNT)); + } + + @TestCase(name = "New client with second Express loan application")//14 + public void newClientWithTwoExpressLoans(Harness harness, @Key(banker) Credentials credentials, @Key(secondBanker) Credentials secondCredentials) { + int firstLoanAmount = 150000; + + OPN008_S001_ExpressSignaturePage firstBankerWindow = + bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.newProduct().createSBA()) + .then(bankaTasks.expresTasks().createNewExpressApplication(applicant, firstLoanAmount, DEFAULT_TERM, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.expresTasks().createAccountsForNewExpressUntilSignature(SECOND_BANKER_NAME)); + + bankaTasks.newProduct().openUfoAndVerifyApplicationAsSecondBanker(secondCredentials, harness.get(NEP006_S001_ExpressScoringResultPage.APP_ID_STORE)); + firstBankerWindow + .then(bankaTasks.expresTasks().finishAccountCreationAfterSecondBankerSignature(HCisAllStavZadosti.LOAN_DRAWN)) + .then(bankaTasks.expresTasks().createNewExpressApplicationWithExistingAndPrefilledData(DEFAULT_LOAN_AMOUNT, SHORT_TERM, HCisAllStavZadosti.APPLICATION_DENIED)); + } + + @Defect("Not finished") + @TestCase(name = "FlexiCredit clip in IB")//19 + public void flexiCreditClipIb(Harness harness, @Key(banker) Credentials credentials) { + + String secondBankerName = "Šubrt";// "Gelnar"; + + OPN008_S001_ExpressSignaturePage firstBankerWindow = + bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.flexiCreditTasks().createNewFlexiCreditApplication(applicant, DEFAULT_FLEXI_LOAN_AMOUNT, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.flexiCreditTasks().createAccountsForNewFlexiCreditWithExistingBuAndIbUntilSignature(DEFAULT_FLEXI_LOAN_AMOUNT, secondBankerName)); + + //second banker signature + firstBankerWindow.then(bankaTasks.flexiCreditTasks().finishAccountCreation(HCisAllStavZadosti.LOAN_ACCOUNT_OPEN)) + .clickActiveProduct("Internet Banka") + .onIbDetailPage() + .storeIbLogin() + .clickBackButton(); + + harness.withIB().openLoginPage() + .typeUsername(HPO008_IbDetailPage.IB_LOGIN_STORE); + // .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey(harness.get(HPO008_IbDetailPage.IB_LOGIN_STORE), "jJMdR68h", "12341234")); + + } + + @Defect("Not finished") + @TestCase(name = "FlexiCredit declip") //22 + public void flexiCreditDeclip(Harness harness, @Key(banker) Credentials credentials, @Key(secondBanker) Credentials secondCredentials) { + + //9509149617 + int declipLoanAmount = 20000; + + OPN008_S001_ExpressSignaturePage firstBankerWindow = + bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant) + .then(bankaTasks.flexiCreditTasks().createNewFlexiCreditApplication(applicant, DEFAULT_FLEXI_LOAN_AMOUNT, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)) + .then(bankaTasks.flexiCreditTasks().createAccountsForNewFlexiCreditWithExistingBuAndIbUntilSignature(DEFAULT_FLEXI_LOAN_AMOUNT, SECOND_BANKER_NAME)); + + bankaTasks.newProduct().openUfoAndVerifyApplicationAsSecondBanker(secondCredentials, harness.get(NFL006_S001_FlexikreditScoringResultPage.APP_ID_STORE)); //wait for second banker signature + + firstBankerWindow.then(bankaTasks.flexiCreditTasks().finishAccountCreation(HCisAllStavZadosti.LOAN_ACCOUNT_OPEN)) + .clickActiveProduct("FLEXIKREDIT") + .onFlexiCreditDetailPage() + .clickDeclipButton() + .fillLoanAmount(declipLoanAmount) + .clickSendButton() + .clickEnd() + .onFlexiCreditDetailPage() + .clickBackButton(); + } + + @Defect("Not finished") + @TestCase(name = "FlexiCredit for Slovak citizen") //23 + public void flexiCreditSlovakCitizen(Harness harness, @Key(banker) Credentials credentials) { + + //OPN008_ExpressSignaturePage firstBankerWindow = + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndSelectOmByOrderAndTurnOffSignpad(credentials, 1));//todo JBR - finish + + // firstBankerWindow.then(bankaTasks.flexiCreditTasks().finishAccountCreation(expectedAppStat)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/risk/UfoOpsChecks.java b/tests/src/test/java/cz/moneta/test/regression/risk/UfoOpsChecks.java new file mode 100644 index 0000000..6793eca --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/risk/UfoOpsChecks.java @@ -0,0 +1,203 @@ +package cz.moneta.test.regression.risk; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.loans.flexikredit.NFL006_S001_FlexikreditScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.operations.client.ClientEvaluationPage; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.data.ClientUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@NonConcurrentTestScenario +public class UfoOpsChecks { + + private final String SCORECARD_EXPRESS_WALKIN = "EXON01S1"; + private final String SCORECARD_EXPRESS_EXIST = "EXON01S2"; + private final String SCORECARD_FLEXICREDIT_WALKIN = "FXON01S1"; + private final String SCORECARD_FLEXICREDIT_EXIST = "FXON01S2"; + private final String SCORECARD_CREDIT_CARD_WALKIN = "CCON01S1"; + private final String SCORECARD_CREDIT_CARD_EXIST = "CCON01S2"; + + //Risk internal values + private float dstiCoefWalkin; + private float dstiCoefCr1; + private float dstiCoefCr3; + + //Risk internal values + private int cutoffExpressLoan; + private int cutoffFlexiCredit; + private int cutoffCreditCard; + private int cutoffExist; + + private int loanAmount = 30000; + private int term = 60; + private NonClient applicant; + private BankaTasks bankaTasks; + private OperationsTasks operationsTasks; + private HKO101_S001_MainClientPage ufoPage; + private String applicationId; + private float dstiCoef; + private String scorecardId; + private int cutoffValue; + private boolean useApplicationScore = true; + + @BeforeAll + void setup(Harness harness) { + bankaTasks = harness.tasks().ufo().banka(); + operationsTasks = harness.tasks().ufo().operations(); + readInternalValues(harness); + } + + void readInternalValues(Harness harness) { + dstiCoefWalkin = Float.parseFloat(harness.getSystemOrConfigValue("dstiCoefWalkin")); + dstiCoefCr1 = Float.parseFloat(harness.getSystemOrConfigValue("dstiCoefCr1")); + dstiCoefCr3 = Float.parseFloat(harness.getSystemOrConfigValue("dstiCoefCr3")); + + cutoffExpressLoan = Integer.parseInt(harness.getSystemOrConfigValue("cutoffExpressLoan")); + cutoffFlexiCredit = Integer.parseInt(harness.getSystemOrConfigValue("cutoffFlexiCredit")); + cutoffCreditCard = Integer.parseInt(harness.getSystemOrConfigValue("cutoffCreditCard")); + cutoffExist = Integer.parseInt(harness.getSystemOrConfigValue("cutoffExist")); + } + + @BeforeEach + void createClient(Harness harness, @Key(banker) Credentials credentials) { + applicant = ClientUtils.getRiskDefaultClient(harness); + ufoPage = + bankaTasks.newProduct().createClientWithIb(harness, credentials, applicant); + } + + void setScorecardId(String scorecardId, Harness harness) { + this.scorecardId = scorecardId; + if (!scorecardId.endsWith("N01S1")) { + useApplicationScore = false; + setScorecard(harness); + } + } + + void setScorecard(Harness harness) { + harness.withIlods().setScore(scorecardId, applicant.birthNumber(), null); + try { + Thread.sleep(60000);//must wait, otherwise UFO uses default scorecard + } catch (InterruptedException e) { + } + } + + void setDstiCoef(Harness harness) { +/* if (useApplicationScore) {//currently not used + dstiCoef = dstiCoefWalkin; + return; + } +*/ + String grade = harness.get(ClientEvaluationPage.GRADE_STORE); + switch (grade) { + case "CR1": + case "CR2": + dstiCoef = dstiCoefCr1; + break; + case "CR3": + dstiCoef = dstiCoefCr3; + break; + default: + dstiCoef = dstiCoefWalkin; + break; + } + } + + @TestCase(name = "New client with Express loan application, check score values in UFO OPS") + public void newClientExpressLoan(Harness harness) { + setScorecardId(SCORECARD_EXPRESS_WALKIN, harness); + cutoffValue = cutoffExpressLoan; + + ufoPage = ufoPage + .then(bankaTasks.expresTasks().createNewExpressApplication(applicant, loanAmount, term, HCisAllStavZadosti.NONE)); + + applicationId = harness.get(NEP006_S001_ExpressScoringResultPage.APP_ID_STORE); + } + + @TestCase(name = "Existing with Express loan application, check score values in UFO OPS") + public void existingClientExpressLoan(Harness harness) { + setScorecardId(SCORECARD_EXPRESS_EXIST, harness); + cutoffValue = cutoffExist; + + ufoPage = ufoPage + .then(bankaTasks.expresTasks().createNewExpressApplication(applicant, loanAmount, term, HCisAllStavZadosti.NONE)); + + applicationId = harness.get(NEP006_S001_ExpressScoringResultPage.APP_ID_STORE); + } + + @TestCase(name = "New client with FlexiCredit application, check score values in UFO OPS") + public void newClientFlexiCredit(Harness harness) { + setScorecardId(SCORECARD_FLEXICREDIT_WALKIN, harness); + cutoffValue = cutoffFlexiCredit; + + ufoPage = ufoPage + .then(bankaTasks.flexiCreditTasks().createNewFlexiCreditApplication(applicant, loanAmount, HCisAllStavZadosti.NONE)); + + applicationId = harness.get(NFL006_S001_FlexikreditScoringResultPage.APP_ID_STORE); + } + + @TestCase(name = "Existing client with FlexiCredit application, check score values in UFO OPS") + public void existingClientFlexiCredit(Harness harness) { + setScorecardId(SCORECARD_FLEXICREDIT_EXIST, harness); + cutoffValue = cutoffExist; + + ufoPage = ufoPage + .then(bankaTasks.flexiCreditTasks().createNewFlexiCreditApplication(applicant, loanAmount, HCisAllStavZadosti.NONE)); + + applicationId = harness.get(NFL006_S001_FlexikreditScoringResultPage.APP_ID_STORE); + } + + @TestCase(name = "New client with Credit Card application, check score values in UFO OPS") + public void newClientCreditCard(Harness harness) { + setScorecardId(SCORECARD_CREDIT_CARD_WALKIN, harness); + cutoffValue = cutoffCreditCard; + + ufoPage = ufoPage + .then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplication(applicant, loanAmount)); + + applicationId = harness.get(NFL006_S001_FlexikreditScoringResultPage.APP_ID_STORE); + } + + @TestCase(name = "Existing client with Credit Card application, check score values in UFO OPS") + public void existingClientCreditCard(Harness harness) { + setScorecardId(SCORECARD_CREDIT_CARD_EXIST, harness); + cutoffValue = cutoffExist; + + ufoPage = ufoPage + .then(bankaTasks.cardsOnboarding().creditCards().createNewCreditCardApplication(applicant, loanAmount)); + + applicationId = harness.get(NFL006_S001_FlexikreditScoringResultPage.APP_ID_STORE); + } + + @AfterEach + void checkValuesInOps(Harness harness) { + ClientEvaluationPage opsPage = + ufoPage + .clickSearch() + .clickLoginMenu() + .selectFirstOmIfPresent() + .selectUfoOperationsAndContinueWithoutOmSelect() + .clickSearchApRisk() + .then(operationsTasks.searchClient().byAP(applicationId)) + .clickClientEvaluationLink() + .logClientGrade(useApplicationScore); + + setDstiCoef(harness); + + opsPage + .checkDstiValues(dstiCoef) + .checkScorecardValues(useApplicationScore, scorecardId, cutoffValue); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/risk/applications/existingclient/ExpressLoanApplicationExistingClient.java b/tests/src/test/java/cz/moneta/test/regression/risk/applications/existingclient/ExpressLoanApplicationExistingClient.java new file mode 100644 index 0000000..fd0e7dd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/risk/applications/existingclient/ExpressLoanApplicationExistingClient.java @@ -0,0 +1,44 @@ +package cz.moneta.test.regression.risk.applications.existingclient; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.code.lists.HCisDoklady; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.Employer; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import java.util.List; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Regression test - Expres Loan application for an existing client") +public class ExpressLoanApplicationExistingClient extends DefaultLoan { + + private final Employer EMPLOYER = new Employer("Pianoclassic s.r.o.", "17466865", Address.builder().street("Hvězdova").descriptiveNumber("1716").orientationNumber("2b").city("Praha").zip("14000").country("CZ").build(), "733303555"); + @BeforeEach + public void initApplicant() { + applicant.withEmployer(EMPLOYER); + applicant.withHomeIncome(150000); + applicant.withOtherLoanPayments(200); + } + + @TestCase(name = "Regression test - Expres Loan application for an existing client", environments = {Environment.TST1}) + @JiraTestCase(id = "RISK-T2072") + public void newClientWithExpressLoanApplication(Harness harness, @Key(banker) Credentials credentials) { + String birthNumber = "9803148201"; + + HKO101_S001_MainClientPage ufoWindow = bankaTasks.newClient().openUfoAndFindClient(harness, credentials, birthNumber); + List applList = harness.tasks().nasDb().getAllPendingApllicationsForClient(birthNumber); + ufoWindow = harness.tasks().ufo().banka().expresTasks().cancelAllPendingApplications(applList, ufoWindow); + ufoWindow.then(bankaTasks.expresTasks().createNewExpressApplicationWithExisting(applicant, LOAN_AMOUNT, TERM, HCisAllStavZadosti.DOCUMENTS_REQUIRED, HCisDoklady.RP)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/risk/applications/newclient/ExpressLoanApplication.java b/tests/src/test/java/cz/moneta/test/regression/risk/applications/newclient/ExpressLoanApplication.java new file mode 100644 index 0000000..01fa77b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/risk/applications/newclient/ExpressLoanApplication.java @@ -0,0 +1,30 @@ +package cz.moneta.test.regression.risk.applications.newclient; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.Employer; +import cz.moneta.test.dsl.util.data.client.IdCard; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Test for Risk Retail - Data preparation - client with Expres Loan application") +public class ExpressLoanApplication extends DefaultLoan { + + @TestCase + @JiraTestCase(id = "RISK-T2071") + public void newClientWithExpressLoanApplication(Harness harness, @Key(banker) Credentials credentials) { + applicant.withEmployer(new Employer("Pianoclassic s.r.o.", "17466865", Address.builder().street("Hvězdova").descriptiveNumber("1716").orientationNumber("2b").city("Praha").zip("14000").country("CZ").build(), "733303555")); + applicant .withIdCard(new IdCard("212595668", LocalDate.of(2015, 1, 19), LocalDate.of(2031, 1, 19))); + bankaTasks.newClient().openUfoAndCreateClient(harness, credentials, applicant) + .then(bankaTasks.expresTasks().createNewExpressApplication(applicant, LOAN_AMOUNT, TERM, HCisAllStavZadosti.DOCUMENTS_REQUIRED)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/risk/applications/newclient/FlexikreditApplication.java b/tests/src/test/java/cz/moneta/test/regression/risk/applications/newclient/FlexikreditApplication.java new file mode 100644 index 0000000..5f7b92d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/risk/applications/newclient/FlexikreditApplication.java @@ -0,0 +1,24 @@ +package cz.moneta.test.regression.risk.applications.newclient; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Test for Risk Retail - Data preparation - client with Flexikredit application") +public class FlexikreditApplication extends DefaultLoan { + + @TestCase + public void newClientWithFlexikreditApplication(Harness harness, @Key(banker) Credentials credentials) { + bankaTasks.newClient().openUfoAndCreateClient(harness, credentials, applicant) + .then(bankaTasks.newProduct().createIBAndCurrentAccount(CurrentAccountsEnum.TOM_PLUS, applicant.mobileNumber())) + .then(bankaTasks.flexiCreditTasks().createNewFlexiCreditApplication(applicant, 10000, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/risk/applications/retail/ExpressLoanTests.java b/tests/src/test/java/cz/moneta/test/regression/risk/applications/retail/ExpressLoanTests.java new file mode 100644 index 0000000..8d5dcee --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/risk/applications/retail/ExpressLoanTests.java @@ -0,0 +1,127 @@ +package cz.moneta.test.regression.risk.applications.retail; + +import cz.moneta.test.dataprepare.risk.DefaultLoan; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.code.lists.HCisAllStavZadosti; +import cz.moneta.test.dsl.util.code.lists.HCisDoklady; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.Employer; +import cz.moneta.test.dsl.util.data.client.IncomeSubtype; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.time.ZoneId; +import java.util.Date; +import java.util.List; + +import static cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage.APP_KEY_STORE; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.*; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + + +@TestScenarioWithOrder(name = "Express Loan Tests") +public class ExpressLoanTests extends DefaultLoan { + + private final Employer EMPLOYER = new Employer("Pianoclassic s.r.o.", "17466865", Address.builder().street("Hvězdova").descriptiveNumber("1716").orientationNumber("2b").city("Praha").zip("14000").country("CZ").build(), "733303555"); + + @BeforeEach + public void initApplicant() { + applicant.withEmployer(EMPLOYER); + applicant.withHomeIncome(150000); + applicant.withOtherLoanPayments(200); + } + + @Order(1) + @TestCase(name = "POS Schválení - Expres žádost - Podmíněný souhlas pro částku 560 tis. Kč na 84 měsíců", environments = {Environment.TST1}) + @JiraTestCase(id = "RISK-T2052") + public void newClientWithExpressLoanApplicationAccept(Harness harness, @Key(banker) Credentials credentials) { + applicant.withBirthNumber("8905173552"); + applicant.withNetMonthlyIncome(95000); + applicant.withOtherExpenses(11000); + + openUfoAndPrepareClient(harness, credentials) + .then(bankaTasks.expresTasks().createNewExpressApplicationWithExisting(applicant, 560000, 84, HCisAllStavZadosti.APPROVED, HCisDoklady.CP)); + } + + @Order(2) + @TestCase(name = "POS Zamítnutí - Expres žádost - Zamítnutí pro částku 560 tis. Kč na 84 měsíců", environments = {Environment.TST1}) + @JiraTestCase(id = "RISK-T2053") + public void newClientWithExpressLoanApplicationDeclined(Harness harness, @Key(banker) Credentials credentials) { + applicant.withBirthNumber("8905173552"); + applicant.withNetMonthlyIncome(95000); + applicant.withOtherExpenses(94000); + + openUfoAndPrepareClient(harness, credentials) + .then(bankaTasks.expresTasks().createNewExpressApplicationWithExisting(applicant, 560000, 84, HCisAllStavZadosti.APPLICATION_DENIED, HCisDoklady.CP)); + } + + @Order(3) + @TestCase(name = "POS Doplň doklad PoP - Expres žádost - Požadavek na doplnění dokladu příjmu", environments = {Environment.TST1}) + @JiraTestCase(id = "RISK-T2054") + public void newClientWithExpressLoanApplicationIncomeProofRequired(Harness harness, @Key(banker) Credentials credentials) { + applicant.withBirthNumber("8905173255"); + applicant.withNetMonthlyIncome(140000); + applicant.withOtherExpenses(12000); + applicant.withIncomeSubtype(IncomeSubtype.EMPLOYMENT_PER_FIXED); + applicant.withOccupationTrialPeriod(false); + applicant.withOccupationEmploymentTillRaw(Date.from(DateUtils.getNextWorkday().plusYears(2).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant())); + + openUfoAndPrepareClient(harness, credentials) + .then(bankaTasks.expresTasks().createNewExpressApplicationWithExisting(applicant, 560000, 84, HCisAllStavZadosti.DOCUMENTS_REQUIRED, HCisDoklady.CP)); + } + + @Order(4) + @TestCase(name = "POS Žádost se spolužadatelem - Expres žádost - Podmíněný souhlas při více žadatelích", environments = {Environment.TST1}) + @JiraTestCase(id = "RISK-T2057") + public void newClientWithExpressLoanApplicationWithCoApplicant(Harness harness, @Key(banker) Credentials credentials) { + applicant.withBirthNumber("8905173552"); + applicant.withNetMonthlyIncome(95000); + applicant.withOtherExpenses(12000); + NonClient coApplicant = harness.data().newNonClient() + .withBirthNumber("8905172903") + .withHomeIncome(120000) + .withOtherLoanPayments(200) + .withOtherExpenses(300) + .withHousingExpenses(16000); + + openUfoAndPrepareClient(harness, credentials) + .then(bankaTasks.expresTasks().createNewExpressApplicationWithCoApplicant(applicant, coApplicant, 560000, 84, HCisAllStavZadosti.APPLICATION_CONDITIONALLY_APROVED)); + } + + @Order(5) + @TestCase(name = "POS Semiscoring - Scénář bez externích závazků", environments = {Environment.TST1}) + @JiraTestCase(id = "RISK-T2056") + public void newClientWithSemiscoringNoExternalObligations(Harness harness, @Key(banker) Credentials credentials) { + applicant.withBirthNumber("8905173552"); + applicant.withNetMonthlyIncome(140000); + applicant.withOtherExpenses(12000); + + openUfoAndPrepareClient(harness, credentials) + .then(bankaTasks.newProduct().createUzofka(applicant, LOAN_AMOUNT, TERM)); + + } + + @AfterEach + public void tearDown(Harness harness) { + harness.store("reports.tmfj.execution.comment", + "\nCIF klienta: " + harness.get(CLIENT_CIF_STORE_KEY, true) + + "\nAPP_KEY žádosti: " + harness.get(APP_KEY_STORE, true) + + "\nRC klienta: " + harness.get(BIRTH_NUMBER_STORE_KEY, true) + + "\nJméno klienta: " + harness.get(FULL_NAME_KEY, true) + + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid")); + } + + private HKO101_S001_MainClientPage openUfoAndPrepareClient(Harness harness, Credentials credentials) { + harness.store(BIRTH_NUMBER_STORE_KEY, applicant.birthNumber()); + HKO101_S001_MainClientPage ufoWindow = bankaTasks.newClient().openUfoAndFindClient(harness, credentials, applicant.birthNumber()); + List applList = harness.tasks().nasDb().getAllPendingApllicationsForClient(applicant.birthNumber()); + return harness.tasks().ufo().banka().expresTasks().cancelAllPendingApplications(applList, ufoWindow); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/risk/refinanso/OpenRefinansoTest.java b/tests/src/test/java/cz/moneta/test/regression/risk/refinanso/OpenRefinansoTest.java new file mode 100644 index 0000000..ce916e3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/risk/refinanso/OpenRefinansoTest.java @@ -0,0 +1,15 @@ +package cz.moneta.test.regression.risk.refinanso; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Open Refinanso home page test") +public class OpenRefinansoTest { + + @TestCase(name = "Open Refinanso home page test") + public void openHomePage(Harness harness){ + harness.withRefinanso() + .openHomePage(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/risk/refinanso/wso2/CreateNewContractTest.java b/tests/src/test/java/cz/moneta/test/regression/risk/refinanso/wso2/CreateNewContractTest.java new file mode 100644 index 0000000..0cbd9db --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/risk/refinanso/wso2/CreateNewContractTest.java @@ -0,0 +1,995 @@ +package cz.moneta.test.regression.risk.refinanso.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.refinanso.util.data.Calculation; +import cz.moneta.test.dsl.refinanso.util.data.Client; +import cz.moneta.test.dsl.refinanso.util.data.model.NasApprovalResponse; +import cz.moneta.test.dsl.refinanso.util.data.model.RsRsn; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.harness.support.util.Level; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; + +import java.util.List; + +@TestScenario(name = "Create new contract in Refinanso via WSO2 APIs") +public class CreateNewContractTest { + private RawRestRequest.Response response; + private String jsonBody, tokenMortgages; + private Calculation calculation; + private int delayTimeout = 10000; + private int maxRequestLoops = 12; + + @BeforeAll + public void setup(Harness harness) { + tokenMortgages = harness.tasks().wso2().authorization().getToken("REFINANSO_HYP"); + + Client mainClient = Client.builder() + .firstName("Pavel") + .lastName("Pavelka") + .pin("8304032649") + .nationality(52) + .maritalStatus("unmarried") + .instalmentAmountOther(0) + .income(120000) + .isStable(true) + .noCollDependent(true) + .noForeignCurrencyntIsStable(true) + .build(); + + calculation = Calculation.builder() + .mainClient(mainClient) + .callContext("standard") + .creditWorthinessVariant("simple") + .channel("refinanso") + .fixation(7) + .bankName("Hypoteční banka, a.s.") + .lifeInsuranceVariant("1") + .offsetType("reduction") + .product(8) + .purposesID(87) + .refinancingDate(DateUtils.getFormattedTodayDate("yyyy-MM-dd")) + .installmentAmount(7200) + .loanAmount(1000001) + .maturity(15) + .isCollApplicabilityClient(true) + .isCollApplicabilityProcess(true) + .pledgeReferenceNumber("V-3132/2013-704") + .personsWithIncome(1) + .personsWithoutIncome(0) + .build(); + } + + @TestCase(name = "Create new contract", environments = {Environment.TST1, Environment.PPE}) + public void createNewContract(Harness harness) { + String contractId, queueId, dmsId; + String orderId = null; + + //1. SAVE-CALC + jsonBody = "{\n" + + " \"author\": { \"name\": \"" + calculation.getMainClient().getFirstName() + " " + calculation.getMainClient().getLastName() + "\", \"role\": \"client\"},\n" + + " \"calc\": {\n" + + " \"callContext\": \"" + calculation.getCallContext() + "\",\n" + + " \"channel\": \"" + calculation.getChannel() + "\",\n" + + " \"creditWorthinessVariant\": \"" + calculation.getCreditWorthinessVariant() + "\",\n" + + " \"fixation\": " + calculation.getFixation() + ",\n" + + " \"households\": [\n" + + " {\n" + + " \"persons\": [{\n" + + " \"addresses\":[],\n" + + " \"cellphone\":\"420721559695\",\n" + + " \"email\": \"jan.danhel@moneta.cz\",\n" + + " \"expenditures\": [{\n" + + " \"correction\": \"refunding\",\n" + + " \"installmentAmount\": " + calculation.getInstallmentAmount() + ",\n" + + " \"type\": \"loan_mortgage\"\n" + + " },\n" + + " {\"installmentAmount\": " + calculation.getMainClient().getInstalmentAmountOther() + ", \"type\": \"other\"}],\n" + + " \"firstName\": \"" + calculation.getMainClient().getFirstName() + "\",\n" + + " \"lastName\": \"" + calculation.getMainClient().getLastName() + "\",\n" + + " \"identities\": [],\n" + + " \"incomes\":{\n" + + " \"other\":[{\n" + + " \"amount\": " + calculation.getMainClient().getIncome() + ",\n" + + " \"type\": \"unspecified\"\n" + + " }]\n" + + " },\n" + + " \"lifeInsuranceVariant\": \"" + calculation.getLifeInsuranceVariant() + "\",\n" + + " \"pin\": \"" + calculation.getMainClient().getPin() + "\"\n" + + " }],\n" + + " \"personsWithIncome\": " + calculation.getPersonsWithIncome() + ",\n" + + " \"personsWithoutIncome\": " + calculation.getPersonsWithoutIncome() + "\n" + + " }\n" + + " ],\n" + + " \"loanAmount\": " + calculation.getLoanAmount() + ",\n" + + " \"maturity\": " + calculation.getMaturity() + ",\n" + + " \"offsetType\": \"" + calculation.getOffsetType() + "\",\n" + + " \"product\": " + calculation.getProduct() + ",\n" + + " \"purposes\": [\n" + + " {\n" + + " \"amount\": " + calculation.getLoanAmount() + ",\n" + + " \"id\": " + calculation.getPurposesID() + "\n" + + " }\n" + + " ],\n" + + " \"realties\": [\n" + + " {\n" + + " \"contractRelationType\": \"pledge_loan_object\",\n" + + " \"price\": 1428730,\n" + + " \"realtyType\": \"not_available\"\n" + + " }\n" + + " ],\n" + + " \"source\": \"web_online\"\n" + + " }\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/save-calc/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true") + .andAssertPresent("contract"); + harness.log(Level.DEBUG, response.extract("").toString()); + contractId = response.extract("contract").asText(); + harness.log("contractId: " + contractId); + + //2.STORE_CONSENTS + jsonBody = "{\n" + + " \"consents\": [\n" + + " {\n" + + " \"consentType\": \"mandatory\",\n" + + " \"pin\": \"" + calculation.getMainClient().getPin() + "\"\n" + + " }\n" + + " ],\n" + + " \"contract\": " + contractId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/store_consents/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + + //3.CREATE_CONTRACT + jsonBody = "{\n" + + " \"contract\": " + contractId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/create_contract/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + + //GET_HYP_APPROVAL_RSLT_PRESCORING + for (int i = 0; i <= maxRequestLoops; i++) { + jsonBody = "{\n" + + " \"HYPOS_ID\": " + contractId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/risk.cluster/NAS/GET_HYP_APPROVAL_RSLT_004/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withHeader("USERID_L2", "HYPREFI") + .withPayload(jsonBody) + .post() + .andAssertStatus(200); + harness.log(Level.DEBUG, response.extract("").toString()); + + if (response.extract("APPL_STATUS").asInt() == 8 && response.extract("tifResponseStatus.resultCode").asInt() == 0) { + if (containsNasResponseError(response)) { + harness.log(Level.ERROR, "NAS response: " + response.extract("RS_RSN")); + Assertions.fail("Response contained error message. Stopping test execution."); + break; + } else { + harness.log("Prescoring finished successfully. Continuing with test."); + break; + } + } else { + try { + if (i == maxRequestLoops) { + harness.log(Level.ERROR, String.format("Prescoring result was not set after %s calls. Stopping test execution.", maxRequestLoops)); + Assertions.fail(); + } + harness.log(String.format("Does not have prescoring result yet. Waiting for next request in %ss.", delayTimeout / 1000)); + Thread.sleep(delayTimeout); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + //4.CONTRACT-STATE-SIMPLE + for (int i = 0; i <= maxRequestLoops; i++) { + jsonBody = "{\n" + + " \"contract\": " + contractId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/contract-state-simple/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200); + harness.log(Level.DEBUG, response.extract("").toString()); + harness.log("Contract state: " + response.extract("state").asText()); + if (response.extract("state").asText().equals("stt_obchod_zalozen_kontrola_ok")) { + harness.log("Contract state is stt_obchod_zalozen_kontrola_ok. Continuing with test."); + break; + } else { + try { + if (i == maxRequestLoops) { + harness.log(Level.ERROR, String.format("Scoring result was not set after %s calls. Stopping test execution.", maxRequestLoops)); + Assertions.fail(); + } + harness.log(String.format("Does not have scoring result yet. Waiting for next request in %ss.", delayTimeout / 1000)); + Thread.sleep(delayTimeout); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + //5.SAVE-CALC + jsonBody = "{\n" + + " \"author\": { \"name\": \"" + calculation.getMainClient().getFirstName() + " " + calculation.getMainClient().getLastName() + "\", \"role\": \"client\"},\n" + + " \"calc\": {\n" + + " \"callContext\": \"" + calculation.getCallContext() + "\",\n" + + " \"channel\": \"" + calculation.getChannel() + "\",\n" + + " \"creditWorthinessVariant\": \"" + calculation.getCreditWorthinessVariant() + "\",\n" + + " \"fixation\": " + calculation.getFixation() + ",\n" + + " \"households\": [\n" + + " {\n" + + " \"persons\": [{\n" + + " \"addresses\":[],\n" + + " \"cellphone\":\"420721559695\",\n" + + " \"email\": \"jan.danhel@moneta.cz\",\n" + + " \"expenditures\": [{\n" + + " \"correction\": \"refunding\",\n" + + " \"installmentAmount\": " + calculation.getInstallmentAmount() + ",\n" + + " \"type\": \"loan_mortgage\"\n" + + " },\n" + + " {\"installmentAmount\": " + calculation.getMainClient().getInstalmentAmountOther() + ", \"type\": \"other\"}],\n" + + " \"firstName\": \"" + calculation.getMainClient().getFirstName() + "\",\n" + + " \"lastName\": \"" + calculation.getMainClient().getLastName() + "\",\n" + + " \"identities\": [],\n" + + " \"incomes\":{\n" + + " \"other\":[{\n" + + " \"amount\": " + calculation.getMainClient().getIncome() + ",\n" + + " \"type\": \"unspecified\"\n" + + " }]\n" + + " },\n" + + " \"lifeInsuranceVariant\": \"" + calculation.getLifeInsuranceVariant() + "\",\n" + + " \"pin\": \"" + calculation.getMainClient().getPin() + "\"\n" + + " }],\n" + + " \"personsWithIncome\": " + calculation.getPersonsWithIncome() + ",\n" + + " \"personsWithoutIncome\": " + calculation.getPersonsWithoutIncome() + "\n" + + " }\n" + + " ],\n" + + " \"loanAmount\": " + calculation.getLoanAmount() + ",\n" + + " \"maturity\": " + calculation.getMaturity() + ",\n" + + " \"offsetType\": \"" + calculation.getOffsetType() + "\",\n" + + " \"product\": " + calculation.getProduct() + ",\n" + + " \"purposes\": [\n" + + " {\n" + + " \"amount\": " + calculation.getLoanAmount() + ",\n" + + " \"id\": " + calculation.getPurposesID() + "\n" + + " }\n" + + " ],\n" + + " \"realties\": [\n" + + " {\n" + + " \"contractRelationType\": \"pledge_loan_object\",\n" + + " \"price\": 1428730,\n" + + " \"realtyType\": \"not_available\"\n" + + " }\n" + + " ],\n" + + " \"source\": \"web_online\"\n" + + " },\n" + + " \"collApplicabilityClient\": " + calculation.isCollApplicabilityClient() + ",\n" + + " \"collApplicabilityProcess\": " + calculation.isCollApplicabilityProcess() + ",\n" + + " \"contract\": " + contractId + ",\n" + + " \"pledgeReferenceNumber\": \"" + calculation.getPledgeReferenceNumber() + "\"\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/save_calc/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + + //6.STORE_CONSENTS + jsonBody = "{\n" + + " \"consents\": [\n" + + " {\n" + + " \"consentType\": \"secret_by_unsecured\",\n" + + " \"pin\": \"" + calculation.getMainClient().getPin() + "\"\n" + + " }\n" + + " ],\n" + + " \"contract\": " + contractId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/store_consents/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + + //7.STORE-HEALTH-FORM-NEW + jsonBody = "{\n" + + " \"channel\": \"" + calculation.getChannel() + "\",\n" + + " \"contract\": " + contractId + ",\n" + + " \"pin\": \"" + calculation.getMainClient().getPin() + "\",\n" + + " \"practitionerContact\": \"Franta Zdravý, Praha 2\",\n" + + " \"questions\": [\n" + + " {\n" + + " \"answer\": false,\n" + + " \"question\": \"aids\"\n" + + " },\n" + + " {\n" + + " \"answer\": false,\n" + + " \"question\": \"cancer\"\n" + + " },\n" + + " {\n" + + " \"answer\": false,\n" + + " \"question\": \"diabetes\"\n" + + " },\n" + + " {\n" + + " \"answer\": false,\n" + + " \"question\": \"disability\"\n" + + " },\n" + + " {\n" + + " \"answer\": false,\n" + + " \"question\": \"drugs\"\n" + + " },\n" + + " {\n" + + " \"answer\": false,\n" + + " \"question\": \"heart\"\n" + + " },\n" + + " {\n" + + " \"answer\": false,\n" + + " \"question\": \"liver_kidney\"\n" + + " },\n" + + " {\n" + + " \"answer\": false,\n" + + " \"question\": \"lungs\"\n" + + " },\n" + + " {\n" + + " \"answer\": false,\n" + + " \"question\": \"sclerosis\"\n" + + " },\n" + + " {\n" + + " \"answer\": false,\n" + + " \"question\": \"sick_leave\"\n" + + " }\n" + + " ]\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/store-health-form/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + + //8.INIT_ONLINE_VALUATION TST-NEW + jsonBody = "{\n" + + " \"contract\": " + contractId + ",\n" + + " \"redocs\": [\n" + + " {\n" + + " \"flats\": [\n" + + " {\n" + + " \"isknId\": \"34376704\",\n" + + " \"mainUnit\": true,\n" + + " \"metadata\": [\n" + + " {\n" + + " \"name\": \"building_no\",\n" + + " \"value\": \"2340\"\n" + + " },\n" + + " {\n" + + " \"name\": \"building_town\",\n" + + " \"value\": \"Břeclav\"\n" + + " },\n" + + " {\n" + + " \"name\": \"building_street\",\n" + + " \"value\": \"Fintajslova\"\n" + + " },\n" + + " {\n" + + " \"name\": \"building_post_code\",\n" + + " \"value\": \"69002\"\n" + + " },\n" + + " {\n" + + " \"name\": \"lease_property\",\n" + + " \"value\": \"0\"\n" + + " },\n" + + " {\n" + + " \"name\": \"contact_person_name\",\n" + + " \"value\": \"" + calculation.getMainClient().getFirstName() + "\"\n" + + " },\n" + + " {\n" + + " \"name\": \"building_construction_material\",\n" + + " \"value\": \"brick\"\n" + + " },\n" + + " {\n" + + " \"name\": \"flag_control\",\n" + + " \"value\": \"0\"\n" + + " },\n" + + " {\n" + + " \"name\": \"floor_area_other\",\n" + + " \"value\": \"0.00\"\n" + + " },\n" + + " {\n" + + " \"name\": \"land_area\",\n" + + " \"value\": \"0.00\"\n" + + " },\n" + + " {\n" + + " \"name\": \"upstairs_floor\",\n" + + " \"value\": \"7\"\n" + + " },\n" + + " {\n" + + " \"name\": \"flat_floor_area\",\n" + + " \"value\": \"80.00\"\n" + + " },\n" + + " {\n" + + " \"name\": \"contact_person_surname\",\n" + + " \"value\": \"" + calculation.getMainClient().getLastName() + "\"\n" + + " },\n" + + " {\n" + + " \"name\": \"construction_year_building\",\n" + + " \"value\": \"2011\"\n" + + " },\n" + + " {\n" + + " \"name\": \"contact_person_role\",\n" + + " \"value\": \"loan_applicant\"\n" + + " },\n" + + " {\n" + + " \"name\": \"contact_person_telephone\",\n" + + " \"value\": \"+420718091553\"\n" + + " },\n" + + " {\n" + + " \"name\": \"flat_type\",\n" + + " \"value\": \"flat\"\n" + + " },\n" + + " {\n" + + " \"name\": \"flat_placing\",\n" + + " \"value\": \"other\"\n" + + " },\n" + + " {\n" + + " \"name\": \"garage_flat\",\n" + + " \"value\": \"0\"\n" + + " },\n" + + " {\n" + + " \"name\": \"parking_place_outside\",\n" + + " \"value\": \"0\"\n" + + " },\n" + + " {\n" + + " \"name\": \"parking_place_inside\",\n" + + " \"value\": \"0\"\n" + + " },\n" + + " {\n" + + " \"name\": \"floor_area\",\n" + + " \"value\": \"80.00\"\n" + + " }\n" + + " ],\n" + + " \"pricemapData\": [\n" + + " {\n" + + " \"name\": \"valuation_number\",\n" + + " \"value\": \"MONETA-REFI-TST-2019-000441\"\n" + + " },\n" + + " {\n" + + " \"name\": \"number_of_prices\",\n" + + " \"value\": \"0\"\n" + + " },\n" + + " {\n" + + " \"name\": \"floorspace_from_cm\",\n" + + " \"value\": \"57.70\"\n" + + " },\n" + + " {\n" + + " \"name\": \"number_of_parking_cm\",\n" + + " \"value\": \"0\"\n" + + " },\n" + + " {\n" + + " \"name\": \"segment\",\n" + + " \"value\": \"Ostatni vystavba\"\n" + + " },\n" + + " {\n" + + " \"name\": \"building_type\",\n" + + " \"value\": \"Panelovy dum\"\n" + + " },\n" + + " {\n" + + " \"name\": \"url_edit\",\n" + + " \"value\": \"https://www.cenovamapa.org/valuator/?ValuatorID=91585&ValuatorMode=2\"\n" + + " },\n" + + " {\n" + + " \"name\": \"url_readonly\",\n" + + " \"value\": \"CM2\"\n" + + " },\n" + + " {\n" + + " \"name\": \"allow_change\",\n" + + " \"value\": \"1\"\n" + + " },\n" + + " {\n" + + " \"name\": \"is_error\",\n" + + " \"value\": \"0\"\n" + + " },\n" + + " {\n" + + " \"name\": \"valuator_id\",\n" + + " \"value\": \"91585\"\n" + + " }\n" + + " ]\n" + + " }\n" + + " ],\n" + + " \"lands\": [\n" + + " {\n" + + " \"isknId\": \"2764717704\"\n" + + " }\n" + + " ],\n" + + " \"request\": 24988,\n" + + " \"shares\": [\n" + + " {\n" + + " \"isknId\": \"1067590704\",\n" + + " \"type\": \"community_property\"\n" + + " }\n" + + " ]\n" + + " }\n" + + " ],\n" + + " \"valuation\": {\n" + + " \"automaticApprovalEligible\": 1,\n" + + " \"floodArea\": false,\n" + + " \"processType\": \"online_verify\",\n" + + " \"propertyValue\": 90000000,\n" + + " \"reproductionPropertyValue\": 80000000\n" + + " }\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/init_online_valuation/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + queueId = response.extract("queueId").asText(); + harness.log("queueId: " + queueId); + + //9.VALUATION-ORDER-STATE + for (int i = 0; i <= maxRequestLoops; i++) { + jsonBody = "{\n" + + " \"contract\": " + contractId + ",\n" + + " \"queueId\": " + queueId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/valuation-order-state/v1") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withHeader("USERID_L2", "HYPREFI") + .withPayload(jsonBody) + .post() + .andAssertStatus(200); + harness.log(Level.DEBUG, response.extract("").toString()); + if (response.extract("queueState").asText().equals("done")) { + orderId = response.andAssertPresent("order").extract("order.id").asText(); + break; + } else if (response.extract("queueState").asText().equals("error")) { + harness.log(Level.ERROR, "valuation-order-state returned an error: " + response.extract("")); + Assertions.fail("Response contained error message. Stopping test execution."); + break; + } else { + try { + if (i == maxRequestLoops) { + harness.log(Level.ERROR, String.format("Scoring result was not set after %s calls. Stopping test execution.", maxRequestLoops)); + Assertions.fail(); + } + harness.log(String.format("Does not have scoring result yet. Waiting for next request in %ss.", delayTimeout / 1000)); + Thread.sleep(delayTimeout); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + //10.CreateItem + jsonBody = "{\n" + + " \"binary_name\": \"nemovitost_foto_Loznice.jpg\",\n" + + " \"MIMEType\": \"image/jpeg\",\n" + + " \"originalFileName\": \"Loznice.jpg\",\n" + + " \"mtomRef\": \"/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9fP25/jB8cfgD/wAIv4y+GHgLw/8AE7wF4f8Atd18QvDcEk48ZX1n+4EL6CgItp7iJTczPbzkNcCFIYSskgIz/wDgnt+29qv/AAUA0TUviJomh6fa/BfVrR08Hawkztda3cWuv6/p11JIknlyxRvaWGk3KRvbxmM30sZeUxnZ2H7Yv7Lt5+2J4Eh8A6n4l/sf4Za9uh8a6bYwXUGr+IrMSQyLYwahDdRfY7eby5ILpTDM09tcSxI1ux82tD4T/sh+DfgP8ZfGHjPwXDqHhmT4iXcuq+KNGs7o/wBja1qjiBf7UNq4ZLe82QsryW3ki5MzvcrcSJC8QB6hRRRQB//Z\"\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/dms-hypos/1.0/CreateItem") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("createStatus", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + dmsId = response.extract("dmsId").asText(); + harness.log("dmsId: " + dmsId); + + //11.APPRAISEMENT-ORDER-ATTACH-FILE + jsonBody = "{\n" + + " \"contract\": " + contractId + ",\n" + + " \"dmsId\": " + dmsId + ",\n" + + " \"name\": \"nemovitost_foto_Loznice.jpg\",\n" + + " \"orderId\": " + orderId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/appraisement-order-attach-file/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + + //12.APPRAISEMENT-ORDER-ENQUEUE + jsonBody = "{\n" + + " \"contract\": " + contractId + ",\n" + + " \"orderId\": " + orderId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/appraisement-order-enqueue/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + + //13.SAVE_CALC + jsonBody = "{\n" + + " \"author\": { \"name\": \"" + calculation.getMainClient().getFirstName() + " " + calculation.getMainClient().getLastName() + "\", \"role\": \"client\"},\n" + + " \"bankName\": \"" + calculation.getBankName() + "\",\n" + + " \"calc\": {\n" + + " \"callContext\": \"" + calculation.getCallContext() + "\",\n" + + " \"channel\": \"" + calculation.getChannel() + "\",\n" + + " \"creditWorthinessVariant\": \"" + calculation.getCreditWorthinessVariant() + "\",\n" + + " \"fixation\": " + calculation.getFixation() + ",\n" + + " \"households\": [\n" + + " {\n" + + " \"persons\": [{\n" + + " \"addresses\":[{\n" + + " \"descriptiveNumber\": \"661\",\n" + + " \"orientationNumber\": \"42\",\n" + + " \"postCode\": \"16900\",\n" + + " \"street\": \"Hošťálkova\",\n" + + " \"town\": \"Praha\",\n" + + " \"townPart\": \"Břevnov\",\n" + + " \"type\": \"permanent\"\n" + + " },\n" + + " {\n" + + " \"descriptiveNumber\": \"661\",\n" + + " \"orientationNumber\": \"42\",\n" + + " \"postCode\": \"16900\",\n" + + " \"street\": \"Hošťálkova\",\n" + + " \"town\": \"Praha\",\n" + + " \"townPart\": \"Břevnov\",\n" + + " \"type\": \"temporary\"\n" + + " },\n" + + " {\n" + + " \"descriptiveNumber\": \"661\",\n" + + " \"orientationNumber\": \"42\",\n" + + " \"postCode\": \"16900\",\n" + + " \"street\": \"Hošťálkova\",\n" + + " \"town\": \"Praha\",\n" + + " \"townPart\": \"Břevnov\",\n" + + " \"type\": \"real_stay\"\n" + + " }],\n" + + " \"cellphone\":\"420721559695\",\n" + + " \"email\": \"jan.danhel@moneta.cz\",\n" + + " \"expenditures\": [{\n" + + " \"correction\": \"refunding\",\n" + + " \"installmentAmount\": " + calculation.getInstallmentAmount() + ",\n" + + " \"type\": \"loan_mortgage\"\n" + + " },\n" + + " {\"installmentAmount\": " + calculation.getMainClient().getInstalmentAmountOther() + ", \"type\": \"other\"}],\n" + + " \"firstName\": \"" + calculation.getMainClient().getFirstName() + "\",\n" + + " \"lastName\": \"" + calculation.getMainClient().getLastName() + "\",\n" + + " \"identities\": [],\n" + + " \"incomes\":{\n" + + " \"other\":[{\n" + + " \"amount\": " + calculation.getMainClient().getIncome() + ",\n" + + " \"type\": \"unspecified\",\n" + + " \"source\": \"main\"\n" + + " }],\n" + + " \"specification:{ \"isStable\": " + calculation.getMainClient().isStable() + ",\n" + + " \"noCollDependent\": " + calculation.getMainClient().isNoCollDependent() + ",\n" + + " \"noForeignCurrency\": " + calculation.getMainClient().isNoForeignCurrencyntIsStable() + "}\n" + + " },\n" + + " \"lifeInsuranceVariant\": \"" + calculation.getLifeInsuranceVariant() + "\",\n" + + " \"maritalStatus\": \"" + calculation.getMainClient().getMaritalStatus() + "\",\n" + + " \"nationality\": " + calculation.getMainClient().getNationality() + ",\n" + + " \"pin\": \"" + calculation.getMainClient().getPin() + "\"\n" + + " }],\n" + + " \"personsWithIncome\": " + calculation.getPersonsWithIncome() + ",\n" + + " \"personsWithoutIncome\": " + calculation.getPersonsWithoutIncome() + "\n" + + " }\n" + + " ],\n" + + " \"loanAmount\": " + calculation.getLoanAmount() + ",\n" + + " \"maturity\": " + calculation.getMaturity() + ",\n" + + " \"offsetType\": \"" + calculation.getOffsetType() + "\",\n" + + " \"product\": " + calculation.getProduct() + ",\n" + + " \"purposes\": [\n" + + " {\n" + + " \"amount\": " + calculation.getLoanAmount() + ",\n" + + " \"id\": " + calculation.getPurposesID() + "\n" + + " }\n" + + " ],\n" + + " \"realties\": [\n" + + " {\n" + + " \"contractRelationType\": \"pledge_loan_object\",\n" + + " \"price\": 1428730,\n" + + " \"realtyType\": \"not_available\"\n" + + " }\n" + + " ],\n" + + " \"refinancingDate\": \"" + calculation.getRefinancingDate() + "\",\n" + + " \"source\": \"web_online\"\n" + + " },\n" + + " \"collApplicabilityClient\": " + calculation.isCollApplicabilityClient() + ",\n" + + " \"collApplicabilityProcess\": " + calculation.isCollApplicabilityProcess() + ",\n" + + " \"contract\": " + contractId + ",\n" + + " \"pledgeReferenceNumber\": \"" + calculation.getPledgeReferenceNumber() + "\"\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/save-calc/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + + //14.SEND_TO_SCORING + jsonBody = "{\n" + + " \"contract\": " + contractId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/send_to_scoring/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + + //15.GET_HYP_APPROVAL_RSLT + for (int i = 0; i <= maxRequestLoops; i++) { + jsonBody = "{\n" + + " \"HYPOS_ID\": " + contractId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/risk.cluster/NAS/GET_HYP_APPROVAL_RSLT_003/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withHeader("USERID_L2", "HYPREFI") + .withPayload(jsonBody) + .post() + .andAssertStatus(200); + harness.log(Level.DEBUG, response.extract("").toString()); + + if (response.extract("APPL_STATUS").asInt() == 8 && response.extract("tifResponseStatus.resultCode").asInt() == 0) { + if (containsNasResponseError(response)) { + harness.log(Level.ERROR, "NAS response: " + response.extract("RS_RSN")); + Assertions.fail("Response contained error message. Stopping test execution."); + break; + } else { + harness.log("Scoring finished successfully. Continuing with test."); + break; + } + } else if (response.extract("APPL_STATUS").asInt() == 5 && response.extract("tifResponseStatus.resultCode").asInt() == 0) { + if (containsNasResponseError(response)) { + harness.log(Level.ERROR, "NAS response: " + response.extract("RS_RSN")); + Assertions.fail("Response contained error message. Stopping test execution."); + break; + } else { + harness.log("Scoring is missing client documents. Continuing with document import."); + importAndProcessDocuments(harness, contractId); + } + } else { + try { + if (i == maxRequestLoops) { + harness.log(Level.ERROR, String.format("Scoring result was not set after %s calls. Stopping test execution.", maxRequestLoops)); + Assertions.fail(); + } + harness.log(String.format("Does not have scoring result yet. Waiting for next request in %ss.", delayTimeout / 1000)); + Thread.sleep(delayTimeout); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + //21.GET_HYP_APPROVAL_RSLT + for (int i = 0; i <= maxRequestLoops; i++) { + jsonBody = "{\n" + + " \"HYPOS_ID\": " + contractId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/risk.cluster/NAS/GET_HYP_APPROVAL_RSLT_003/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withHeader("USERID_L2", "HYPREFI") + .withPayload(jsonBody) + .post() + .andAssertStatus(200); + harness.log(Level.DEBUG, response.extract("").toString()); + + if (response.extract("APPL_STATUS").asInt() == 8) { + harness.log("Scoring finished successfully."); + break; + } else { + try { + if (i == maxRequestLoops) { + harness.log(Level.ERROR, String.format("Scoring result was not set after %s calls. Stopping test execution.", maxRequestLoops)); + Assertions.fail(); + } + harness.log(String.format("Does not have scoring result yet. Waiting for next request in %ss.", delayTimeout / 1000)); + Thread.sleep(delayTimeout); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + + private void importAndProcessDocuments(Harness harness, String contractId) { + //16.CreateItem + jsonBody = "{\n" + + " \"H_kategorie_dok\": \"1\",\n" + + " \"H_typ_dok\": \"96\",\n" + + " \"IDHypo\": " + contractId + ",\n" + + " \"H_nazev_dok\": \"Výpis z BÚ - Příjem ze zaměstnání.jpg\",\n" + + " \"MIMEType\": \"image/jpeg\",\n" + + " \"originalFileName\": \"prijmy.jpg\",\n" + + " \"mtomRef\": \"/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9fP25/jB8cfgD/wAIv4y+GHgLw/8AE7wF4f8Atd18QvDcEk48ZX1n+4EL6CgItp7iJTczPbzkNcCFIYSskgIz/wDgnt+29qv/AAUA0TUviJomh6fa/BfVrR08Hawkztda3cWuv6/p11JIknlyxRvaWGk3KRvbxmM30sZeUxnZ2H7Yv7Lt5+2J4Eh8A6n4l/sf4Za9uh8a6bYwXUGr+IrMSQyLYwahDdRfY7eby5ILpTDM09tcSxI1ux82tD4T/sh+DfgP8ZfGHjPwXDqHhmT4iXcuq+KNGs7o/wBja1qjiBf7UNq4ZLe82QsryW3ki5MzvcrcSJC8QB6hRRRQB//Z\"\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/dms-hypos/1.0/CreateItem") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("createStatus", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + String dmsId1 = response.extract("dmsId").asText(); + + //17.IMPORT_DOCUMENT + jsonBody = "{\n" + + " \"contract\": " + contractId + ",\n" + + " \"dmsId\": \"" + dmsId1 + "\",\n" + + " \"documentName\": \"Výpis z BÚ - Příjem ze zaměstnání.jpg\",\n" + + " \"scanType\": \"r_vypisy_z_uctu_vyplatni_pasky\",\n" + + " \"template\": \"digital_folder\",\n" + + " \"comment\": \"Komentář k souboru a nejaky text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text, text\",\n" + + " \"author\": { \"name\": \"" + calculation.getMainClient().getFirstName() + " " + calculation.getMainClient().getLastName() + "\", \"role\": \"client\"}\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/import_document/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + + //18.CreateItem 2 + jsonBody = "{\n" + + " \"H_kategorie_dok\": \"1\",\n" + + " \"H_typ_dok\": \"96\",\n" + + " \"IDHypo\": " + contractId + ",\n" + + " \"H_nazev_dok\": \"PoP.jpg\",\n" + + " \"MIMEType\": \"image/jpeg\",\n" + + " \"originalFileName\": \"PoP.jpg\",\n" + + " \"mtomRef\": \"/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAPABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9fP25/jB8cfgD/wAIv4y+GHgLw/8AE7wF4f8Atd18QvDcEk48ZX1n+4EL6CgItp7iJTczPbzkNcCFIYSskgIz/wDgnt+29qv/AAUA0TUviJomh6fa/BfVrR08Hawkztda3cWuv6/p11JIknlyxRvaWGk3KRvbxmM30sZeUxnZ2H7Yv7Lt5+2J4Eh8A6n4l/sf4Za9uh8a6bYwXUGr+IrMSQyLYwahDdRfY7eby5ILpTDM09tcSxI1ux82tD4T/sh+DfgP8ZfGHjPwXDqHhmT4iXcuq+KNGs7o/wBja1qjiBf7UNq4ZLe82QsryW3ki5MzvcrcSJC8QB6hRRRQB//Z\"\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/dms-hypos/1.0/CreateItem") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("createStatus", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + String dmsId2 = response.extract("dmsId").asText(); + + //19.IMPORT_DOCUMENT 2 + jsonBody = "{\n" + + " \"contract\": " + contractId + ",\n" + + " \"dmsId\": \"" + dmsId2 + "\",\n" + + " \"documentName\": \"PoP.jpg\",\n" + + " \"scanType\": \"r_vypisy_z_uctu_vyplatni_pasky\",\n" + + " \"template\": \"digital_folder\",\n" + + " \"comment\": \"Komentář k souboru 2\",\n" + + " \"author\": { \"name\": \"" + calculation.getMainClient().getFirstName() + " " + calculation.getMainClient().getLastName() + "\", \"role\": \"client\"}\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/import_document/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + + //20.process-incomplete-docs + jsonBody = "{\n" + + " \"clientsDocs\": [{docs: [" + dmsId1 + ", " + dmsId2 + "], \"pin\": \"" + calculation.getMainClient().getPin() + "\"}],\n" + + " \"contract\": " + contractId + "\n" + + "}"; + response = harness.withWso2() + .prepareRequest() + .withPath("/t/mortgages.cluster/process-incomplete-docs/001") + .withHeader("Authorization", tokenMortgages) + .withHeader("Accept", "application/json") + .withPayload(jsonBody) + .post() + .andAssertStatus(200) + .andAssertFieldValue("result.status", "true"); + harness.log(Level.DEBUG, response.extract("").toString()); + } + + private Boolean containsNasResponseError(RawRestRequest.Response response) { + boolean containsError = false; + List rsRsnList = response.mapResponseIntoObject(NasApprovalResponse.class).getRsRsnList(); + if (!rsRsnList.isEmpty()) { + for (RsRsn rsRsn : rsRsnList) { + if (rsRsn.getDetReason().equals("KO") + || rsRsn.getDetReason().equals("externalSystemsUnavailable") + || rsRsn.getDetReason().equals("bonityKO")) { + containsError = true; + break; + } + } + } + return containsError; + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/risk/ufoops/UfoOpsApprovalScreenTest.java b/tests/src/test/java/cz/moneta/test/regression/risk/ufoops/UfoOpsApprovalScreenTest.java new file mode 100644 index 0000000..676476a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/risk/ufoops/UfoOpsApprovalScreenTest.java @@ -0,0 +1,36 @@ +package cz.moneta.test.regression.risk.ufoops; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "UFO OPS Risk approval screen test") +public class UfoOpsApprovalScreenTest { + + @TestCase(name = "Open Risk approval screens - client and application evaluation for an existing client/application", environments = {Environment.TST1}) + @JiraTestCase(id = "RISK-T2073") + public void ufoOpsClientEvaluationScreenTest(Harness harness, @Key(banker) Credentials credentials) { + harness + .withUfo() + .openLoginPage() + .typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage() + .selectFirstOmIfPresent() + .selectUfoOperationsAndContinueWithoutOmSelect() + .clickSearchApRisk() + .fillBirthNumber("6605127287") + .clickSearch() + .clickAP("230224N07B") + .clickApprovalDataButton() + .clickClientEvaluationLink() + .clickApplicationEvaluationLink() + .clickEssExposureDetailLink() + .clickEssMemberExposureDetailLink(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/commercial/DebitMcBusinessPremium.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/commercial/DebitMcBusinessPremium.java new file mode 100644 index 0000000..855f033 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/commercial/DebitMcBusinessPremium.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.transactional.cards.commercial; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Defect; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "ONB.COM.DC.06 - Commercial DC - Existing Account - Card Onboarding - (Debit MC Business Premium (Gold)) - PO - BRANCH") +public class DebitMcBusinessPremium { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClientEmployee() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(30000) + .withOtherLoanPayments(0) + .withWageDeductions(0); + //.withIco("19644981"); + } + + @Defect("Not Finished") + @TestCase(name = "ONB.COM.DC.06 - Commercial DC - Existing Account - Card Onboarding - (Debit MC Business Premium (Gold)) - PO - BRANCH", environments = {TST1}) + public void fromBranchCommercialDc(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newFopClient().createFopCif(nonClient)); + + final String cardName = "Debit MC Business Premium (Gold) (FV)|"; + + harness.withUfo().openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findByIco(nonClient.ico())) + .then(bankaTasks.newSmeProducts().createNewSmeCurrentAccountDC()) + .then(bankaTasks.newProduct().createNewDebitCardForExistingCurrentAccount(cardName, DebitCardFeePlan.FREE)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/account/origination/Employee_fromBranch_toBranch.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/account/origination/Employee_fromBranch_toBranch.java new file mode 100644 index 0000000..53d098e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/account/origination/Employee_fromBranch_toBranch.java @@ -0,0 +1,203 @@ +package cz.moneta.test.regression.transactional.cards.retail.account.origination; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardBrand; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NeedInsurance; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ProductType; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.Product; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.Employer; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Defect; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.testautomationdb.TestAutomationDbEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CreditCardsAdvantages.ELECTRONICS; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CreditCardsPromo.Zamestanec_MMB; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@TestScenario(name = "ONB.RET.CC.27 - Retail CC - Account Onboarding - Employee MoneyCard Gold") +public class Employee_fromBranch_toBranch { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClientEmployee() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(30000) + .withOtherLoanPayments(0) + .withWageDeductions(0) + .withIncomeSources("1") + .withEmployer(Employer.builder() + .name("MONETA Money Bank, a.s.") + .ico("25672720") + .address(Address.builder() + .street("Vyskočilova") + .descriptiveNumber("1442") + .orientationNumber("1b") + .city("Praha") + .zip("14028") + .country("CZ") + .build()) + .phoneNumber("224443636") + .build()); + + String cifFo = harness.tasks().wso2().client().createCifFo(nonClient); + String createdDateTime = DateUtils.getFormattedTodayDateTime("yyyy-MM-dd hh:mm:ss"); + harness.getEndpoint(TestAutomationDbEndpoint.class) + .insertCreatedClientInfo(cifFo, nonClient.birthNumber(), null, createdDateTime, credentials.getUsername(), "MWF", null); + + harness.tasks().wso2().client().setGdprConsent(cifFo); + harness.tasks().wso2().client().setCrAsTaxResidency(cifFo); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(cifFo) + .clickSearchByCif() + .onEmployeeClientPage() + .clickContinueToCifMainPage() + .clickElectronicDocumentation() + .clickScanDocuments() + .uploadAndAssignFakeId() + .clickSkipButton() + .onClientDocumentationPage() + .clickEnd() + .then(harness.tasks().ufo().banka().contactAddress().createContactAddress()); + + harness.tasks().nasDb().insertUser(nonClient); + } + + @Defect("Not Finished") + @JiraTestCase(id = "FVP-T1513") + @TestCase(name = "ONB.RET.CC.27 - Retail CC - Account Onboarding - Employee MoneyCard Gold", environments = {TST3}) + public void fromBranch_toBranch(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo().openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.search().findEmployeeByRC(nonClient.birthNumber())) + .clickContinueToCifMainPage() + .then(bankaTasks.newProduct().createNewCreditCard(nonClient, + ProductType.MONEYCARD_GOLD, + NeedInsurance.NO, + CardBrand.MC_GOLD, + ELECTRONICS, + Zamestanec_MMB, + "150000", + "30000", + "100000", + "100000")) + .dismissClientNotificationAlert() + .onSelectionOfSubmittedDocumentsPage() + .selectIdCardRadio() + .selectPassportRadio() + .clickDocumentsCheckButton() + .clickContinue() + .onCreditCardApplicantInformationPage() + .selectValidationStatus("údaj z OP") + .selectNoticePeriod("Ne") + .selectProbation("Ne") + .selectOccupation("manager/ředitel") + .fillIncomeSources(nonClient.incomeSources()) + .fillNetIncome(nonClient.netMonthlyIncome()) + .fillHomeIncome(nonClient.homeIncome()) + .fillOtherLoanPayments(nonClient.otherLoanPayments()) + .fillWageDeductions(nonClient.wageDeductions()) + .fillOtherExpenses(nonClient.otherExpenses()) + .selectSubmittedIncomeType("Potvrzení o příjmu") + .checkValidCheckboxesAndContinue() + .clickContinueButton() + .clickApplicantSignatureCheckbox() + .clickYes() + .onScanDocumentsPage() + .uploadAndAssignFakeIncomeConfirmation() + .clickSkipButton() + .onCreditCardScoringResultPage() + .waitForStatusAndRefresh("SOUHLAS") + .clickCreateProductAndPrintContract() + .onSelectingApprovedVariantsPage() + .clickToLoanAmountRadioButton() + .typeIntoLoanAmount("150000") + .clickSelectButtonToPreContractualPage() + .clickContinueButtonToDraftContractCopyPage() + .clickContinue() + .onCreditCardRepaymentMethodConfirmation() + .clickOk() + .onCurrentAccountPage() + .selectDistributionType("Elektronicky IB") + .selectFeePlan("Tom účet") + .clickConfirm() + .onElectronicDistributionChannelCreationPage() + .selectDistributionChannel("IB Heslo/MK") + .clickContinueDismissAlertIfPresent() + .onSignerPage() + .chooseCitizen() + .clickContinue() + .onPreContractualInformationPage() + .clickOnSignedAndContinueDocumentsProvidedToClientPage() + .clickContinue() + .onAccountDispositionOwnerPage() + .clickOwnerOnly() + .onSignaturePatternsEditPage() + .clickSignaturePhysical() + .onConfirmSignaturePage() + .clickRightButton() + .onConfirmationPage() + .clickConfirmed() + .onConfirmationOfSignaturePage() + .clickClientAgreedAndSignedEmpowerment() + .checkProductNotRecommended() + .clickWithoutRecommendationAndDismissAlertIfvisible() + .onAccountSelectionPage() + .selectAccount(2) + .clickSave() + .onIbPasswordKeyPage() + .typeDailyLimit("30000") + .enterMobilePhoneNumber("602520104") + .insertEnvelopeNumber() + .clickContinueToSettingADCPage() + .clickSave() + .onDispositionPrintPage() + .clickPrintEmpowermentNow() + .onConfirmationPage() + .clickOK() + .continueToSignContractPage() + .clickFirstSignerCheckbox() + .clickYesButton() + .clickOk() + .clickContinue() + .clickContinue() + .fillPriceLimitInput("15000") + .clickSaveContinueToSelectDisposition() + .selectNothingAndGoBack() + .clickSigned() + .clickContinue() + .onMainClientPage() + .checkProductActive(Product.ADC_IB_MK_ACTIVE.getValue()) + .checkProductActive(ProductType.MONEYCARD_GOLD.getValue()); + + harness.tasks().firstVision().verifyCreditCard( + nonClient, + "861", + "680", + "0", + "1" + ); + + // FIXME .. or the other - workflow is different in the test script + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/finishing/Client_fromCallCenter_toBranch.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/finishing/Client_fromCallCenter_toBranch.java new file mode 100644 index 0000000..d0e9f6b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/finishing/Client_fromCallCenter_toBranch.java @@ -0,0 +1,156 @@ +package cz.moneta.test.regression.transactional.cards.retail.creditcard.finishing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO019_S001_CreditCardDetailPage.CONTRACT_NUMBER_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.operations.client.NewProductsByNameUfoOps.CREDIT_CARD; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@TestScenario(name = "ONB.RET.CC.28 - Retail CC - Application finishing (MoneyCard Smart) (from CallCenter) - BRANCH") +public class Client_fromCallCenter_toBranch { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withNetMonthlyIncome(70000) + .withHomeIncome(70000) + .withOtherExpenses(10000) + .withOtherLoanPayments(0); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + @JiraTestCase(id = "FVP-T78") + @TestCase(name = "Retail Customer wants to get his MoneyCard Smart on Moneta CallCenter and he will complete origination process on BRANCH", environments = {TST3, TST1}) + public void Retail_CC_Application_Origination_MoneyCard_Smart_BRANCH(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + + String requestedAmount = "30000"; + String cardName = "MONEYCARD SMART"; + + String dailyPurchaseLimit = "30000"; + String dailyWithdrawLimit = "30000"; + String dailyOnlinePaymentsLimit = "30000"; + + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().operations().login().withCredentialsExpectingError(credentials)) + .dismissErrorPage() + .fillSearchInput(harness.get(CLIENT_CIF_STORE_KEY)) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .then(harness.tasks().ufo().operations().clientDetails().createNewProductByName(CREDIT_CARD)) + .clickContinue() + .onCreditCardScoring() + .assertScoringResultIs("OK") + .continueToProductSelection() + .then(harness.tasks().ufo().operations().productActivation().createCreditCardWithDiscountPackage( + nonClient, + cardName, + "KARTA - KARTA", + "MC Standard", + "Bez akce", + requestedAmount, + "Na dobu neurčitou", + dailyPurchaseLimit, + dailyWithdrawLimit, + dailyOnlinePaymentsLimit, + "bene+ (více na www.beneplus.cz)", + "Cestování a sport", + "BÚ Genius Free & Flexi", + "111111" + )) + .checkProduct("Kreditní karta") + .scheduleMeetingAtABranch() + .then(harness.tasks().ufo().operations().meetingTasks().scheduleMeeting( + "ČESKÉ BUDĚJOVICE - JÍROVCOVA - Jírovcova 1863/1", + "Prodej", + "Kreditní karta" + )) + .openApplicationList() + .assertFirstApplicationState("SOUHLAS") + .assertFirstApplicationRequestedAmount(requestedAmount) + .assertFirstApplicationApprovedAmount(requestedAmount) + .clickLogout(); + + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().banka().login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .selectFromListOfRequests() + .selectFirstApplication() + .clickOpenRequestDetail() + .onCreditCardRequestPage() + .clickCreateProductAndPrintContract() + .onPreContractualInformationPrintedPage() + .continueToPrintCopyOfContractProposalPage() + .clickContinue() + .onCreditCardRepaymentMethodConfirmation() + .clickOk() + .onConfirmationPage() + .clickLeftButton() + .onAccountSelectionPage() + .selectAccount(2) + .clickSave() + .onConfirmationPage() + .clickDoNotCreateButton() + .onSignerSelectionPage() + .clickContinue() + .onSignContractPage() + .clickFirstSignerCheckbox() + .clickYesButton() + .clickOk() + .clickContinue() + .clickContinue() + .fillPriceLimitInput(requestedAmount) + .clickSaveButton() + .clickSigned() + .clickContinue() + .onClientRequestPage() + .clickBackToMainPage() + .openProductDetail(cardName) + .onCreditCardDetailPage() + .storeContractNumber() + .assertPaymentMethod("Inkasem z účtu"); + + harness.withGreenScreen() + .logIn() + .openCustomerSearch() + .searchByIdentificationNumber(nonClient.birthNumber()) + .openCustomerDetail() + .openAccountDetail() + .checkOrg("861") + .checkCardLogo("670") + .checkName(nonClient.firstName().toUpperCase() + " " + nonClient.lastName().toUpperCase()) + .checkCardholderFlag("0") + .checkCardAction("1"); + + + harness.tasks() + .wso2().cards() + .getCreditCardInfo(harness.get(CONTRACT_NUMBER_KEY)) + .andAssertFieldValue("RS_3.rows.row.CARD_VARIANT", "1") + .andAssertFieldValue("RS_3.rows.row.ACC_STAT", "1"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/finishing/Employee_fromIB_toBranch.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/finishing/Employee_fromIB_toBranch.java new file mode 100644 index 0000000..7369174 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/finishing/Employee_fromIB_toBranch.java @@ -0,0 +1,122 @@ +package cz.moneta.test.regression.transactional.cards.retail.creditcard.finishing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@TestScenario(name = "ONB.RET.CC.39 - Employee - Application finishing (Employee MoneyCard Smart) (from other channels > IB) - BRANCH") +public class Employee_fromIB_toBranch { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClientEmployee() + .withNetMonthlyIncome(70000) + .withHomeIncome(70000) + .withOtherExpenses(10000) + .withOtherLoanPayments(0); + +// BankaTasks bankaTasks = harness.tasks().ufo().banka(); +// harness.withUfo() +// .openLoginPage() +// .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) +// .then(bankaTasks.newClient().create(nonClient)) +// .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(CurrentAccountsEnum.GENIUS_FREE_FLEXI)); +// +// nonClient.withBirthNumber("7209130852"); + +// harness.tasks().nasDb().insertUser(nonClient); + } + + @JiraTestCase(id = "FVP-T312") + @TestCase(name = "Employee wants to get his MoneyCard Smart on Moneta other channels and he will complete origination process on BRANCH.", environments = {TST3}) + public void fromIB_toBranch(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { +// IbCardsApplicationTasks cardTasks = harness.tasks().ib().cardsApplication(); +// Credentials udebsCredentials = harness.tasks().udebs().findCredentialsByRC(nonClient.birthNumber()); +// +// int limit = 100000; +// +// harness.withIB() +// .openLoginPage() +// .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey( +// udebsCredentials.getUsername(), +// udebsCredentials.getPassword(), +// "12341234")) +// .onWelcomePage() +// .consentToCookies() +// .checkCreditCardOfferPresent("Kreditní karta Smart") +// .clickIamInterested() +// .then(cardTasks.fillCardDetails( +// TestUtils.toString(limit), +// "50000", +// "50000", +// "Elektronicky", +// "111111", +// "29.-28.", +// "Bankovním příkazem" +// )) +// .selectSecondIdType("Řidičský průkaz") +// .setSecondIdNumber("EK 608907") +// .setSecondIdValidTo("31.8.2026") +// .continueToEmploymentDetails() +// .setApproximateMonthlyIncomeAverage(nonClient.netMonthlyIncome()) +// .setHouseholdMonthlyIncome(nonClient.homeIncome()) +// .setOtherNonMMBMonthlyPayments(nonClient.otherLoanPayments()) +// .setOtherMonthlyExpenses(nonClient.otherExpenses()) +// .setSalaryDiscounts(nonClient.wageDeductions()) +// .setEmployment(nonClient.occupationAdditionalInformation()) +// .setEmploymentStartDate(DateUtils.getDateWithFormat(nonClient.occupationEmploymentFromRaw(), "dd.MM.yyyy")) +// .setCounty("Česká republika") +// .continueApplicationConfirmation() +// .typeSmsCode("12341234") +// .validateMobileKey() +// .onApplicationFinishingPage() +// .continueToApplicationOvereview() +// .waitForApproval() +// .signApplicationAndContinueToPrepareContractPage() +// .clickConfirm() +// .clickAgreeAndContinueToReview() +// .clickConfirm() +// .typeSmsCode("12341234") +// .signContractAndContinueToConfirmationPage() +// .continueToApplicationOverviewPage() +// .checkFirstApplicationStatus("Schválená") +// .checkFirstApplicationLimit(TestUtils.toStringWithTwoDecimals(limit)) +// .clickLogOff(); +// +// harness.withUfo() +// .openLoginPage() +// .then(harness.tasks().ufo().banka().login().withCredentialsAndTurnOffSignpad(credentials)) +//// .fillSearchTerm(nonClient.birthNumber()) +//// .clickSearchByRc() +// .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) +// .clickSearchByCif() +// .onEmployeeClientPage() +// .clickContinueToCifMainPage() +// .clickClientRequests() +// .clickOpenRequestDetail() +// .onConfirmationPage() +// .clickOKAndContinueToCardRequestPage() +// .clickCreateProductButton() +// .continueToPrintCopyOfContractProposalPage() +// .clickContinue() +// .onSignContractPage() +// .clickFirstSignerCheckbox() +// .clickYesButton() +// .clickContinue(); + + harness.withGreenScreen() + .logIn(); + + System.out.println(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_fromBranch_toBranch_Tom_VisaFix.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_fromBranch_toBranch_Tom_VisaFix.java new file mode 100644 index 0000000..0d4228c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_fromBranch_toBranch_Tom_VisaFix.java @@ -0,0 +1,87 @@ +package cz.moneta.test.regression.transactional.cards.retail.creditcard.origination; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardBrand; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NeedInsurance; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ProductType; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CreditCardsAdvantages.ELECTRONICS; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CreditCardsPromo.NO_PROMO; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO019_S001_CreditCardDetailPage.CONTRACT_NUMBER_KEY; + +@TestScenario(name = "ONB.PM.RET.CC.34 - CC - Retail - Card Onboarding - MONEYCARD VISA FIX with existing Tom - BRANCH") +public class Client_fromBranch_toBranch_Tom_VisaFix { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(5000) + .withOtherLoanPayments(0); + + nonClient.withBirthNumber("7204016083"); + +// BankaTasks bankaTasks = harness.tasks().ufo().banka(); +// harness.withUfo() +// .openLoginPage() +// .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) +// .then(bankaTasks.newClient().create(nonClient)) +// .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + @JiraTestCase(id = "FVP-T1206") + @TestCase(name = "Banker creates for a retail client Credit card MONEYCARD VISA FIX. Bank account Tom exists", environments = {Environment.TST3}) + public void Retail_CC_Application_Origination_MoneyCard_Smart_BRANCH(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String requestedAmount = "30000"; + String cardName = "MONEYCARD FIX"; + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(nonClient.birthNumber()) + .clickSearchByRc() + .onClientDetailPage() + .then(bankaTasks.newProduct().createNewCreditCard( + nonClient, + ProductType.MONEYCARD_FIX, + NeedInsurance.YES, + CardBrand.VISA, + ELECTRONICS, + NO_PROMO, + requestedAmount, + "30000", + "100000", + "100000")) + .then(bankaTasks.newProduct().verifyCreditCardDetails( + cardName)); + + harness.tasks().firstVision().verifyCreditCard( + nonClient, + "861", + "670", + "0", + "1" + ); + + harness.tasks() + .wso2().cards() + .getCreditCardInfo(harness.get(CONTRACT_NUMBER_KEY)) + .andAssertFieldValue("RS_3.rows.row.RC_NUM_HOLDER", nonClient.birthNumber()) + .andAssertFieldValue("RS_3.rows.row.RC_NUM_OWNR", nonClient.birthNumber()) + .andAssertFieldValue("RS_3.rows.row.ACC_STAT", "1"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_fromBranch_toBranch_Tom_VisaSmart.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_fromBranch_toBranch_Tom_VisaSmart.java new file mode 100644 index 0000000..baff99a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_fromBranch_toBranch_Tom_VisaSmart.java @@ -0,0 +1,87 @@ +package cz.moneta.test.regression.transactional.cards.retail.creditcard.origination; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CardBrand; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.NeedInsurance; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.ProductType; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CreditCardsAdvantages.ELECTRONICS; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CreditCardsPromo.NO_PROMO; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO019_S001_CreditCardDetailPage.CONTRACT_NUMBER_KEY; + +@TestScenario(name = "ONB.PM.RET.CC.30 - CC - Retail - Card Onboarding - MONEYCARD VISA SMART with existing Tom - BRANCH") +public class Client_fromBranch_toBranch_Tom_VisaSmart { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(5000) + .withOtherLoanPayments(0); + + nonClient.withBirthNumber("7204016083"); + +// BankaTasks bankaTasks = harness.tasks().ufo().banka(); +// harness.withUfo() +// .openLoginPage() +// .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) +// .then(bankaTasks.newClient().create(nonClient)) +// .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + @JiraTestCase(id = "FVP-T1206") + @TestCase(name = "Banker creates for a retail client Credit card MONEYCARD VISA SMART. Bank account Tom exists", environments = {Environment.TST3}) + public void Retail_CC_Application_Origination_MoneyCard_Smart_BRANCH(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String requestedAmount = "30000"; + String cardName = "MONEYCARD SMART"; + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(nonClient.birthNumber()) + .clickSearchByRc() + .onClientDetailPage() + .then(bankaTasks.newProduct().createNewCreditCard( + nonClient, + ProductType.MONEYCARD_SMART, + NeedInsurance.NO, + CardBrand.VISA, + ELECTRONICS, + NO_PROMO, + requestedAmount, + "30000", + "100000", + "100000")) + .then(bankaTasks.newProduct().verifyCreditCardDetails( + cardName)); + + harness.tasks().firstVision().verifyCreditCard( + nonClient, + "861", + "670", + "0", + "1" + ); + + harness.tasks() + .wso2().cards() + .getCreditCardInfo(harness.get(CONTRACT_NUMBER_KEY)) + .andAssertFieldValue("RS_3.rows.row.RC_NUM_HOLDER", nonClient.birthNumber()) + .andAssertFieldValue("RS_3.rows.row.RC_NUM_OWNR", nonClient.birthNumber()) + .andAssertFieldValue("RS_3.rows.row.ACC_STAT", "1"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_fromCallCenter_toCallCenter.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_fromCallCenter_toCallCenter.java new file mode 100644 index 0000000..eb74797 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_fromCallCenter_toCallCenter.java @@ -0,0 +1,86 @@ +package cz.moneta.test.regression.transactional.cards.retail.creditcard.origination; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.ufo.operations.client.NewProductsByNameUfoOps; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; + +@TestScenario(name = "ONB.RET.CC.08 - Retail CC - Application Origination - MoneyCard Gold - CC") +public class Client_fromCallCenter_toCallCenter { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + nonClient = harness.data().newFVNonClient() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(10000) + .withOtherLoanPayments(0) + .withWageDeductions(0) + .withIncomeSources("1"); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + @JiraTestCase(id = "FVP-T64") + @TestCase(name = "Retail Customer wants to get his Credit Card on Moneta CALL CENTRUM and he will complete origination process on Call Centrum.", environments = Environment.TST3) + public void Retail_CC_Application_Origination_MoneyCard_Gold_CC(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + + String creditAmount = "40000"; + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().operations().login().withCredentialsExpectingError(credentials)) + .dismissErrorPage() + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .then(harness.tasks().ufo().operations().clientDetails().createNewProductByName(NewProductsByNameUfoOps.CREDIT_CARD)) + .clickContinue() + .onCreditCardScoring() + .continueToProductSelection() + .then(harness.tasks().ufo().operations().productActivation().createCreditCard( + nonClient, + "MoneyCard Gold", + "KARTA - KARTA", + "MC Gold", + "Bez akce", + "40000", + "Na dobu neurčitou", + "30000", + "30000", + "30000", + "bene+ (více na www.beneplus.cz)", + "BÚ Genius Free & Flexi", + "111111" + )) + .checkProduct("Kreditní karta") + .scheduleMeetingAtABranch() + .setMeetingToFirstWorkingDayOfNextMonth() + .setMeetingTimeSlot(5) + .setNotificationsToDoNotSend() + .confirmMeeting() + .openApplicationList() + .assertFirstApplicationState("SOUHLAS") + .assertFirstApplicationProductType("Credit card") + .assertFirstApplicationRequestedAmount("40000") + .assertFirstApplicationApprovedAmount("40000"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_inBranch_ApplicationOnly.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_inBranch_ApplicationOnly.java new file mode 100644 index 0000000..b18b812 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Client_inBranch_ApplicationOnly.java @@ -0,0 +1,86 @@ +package cz.moneta.test.regression.transactional.cards.retail.creditcard.origination; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.cards.credit.HPO019_S001_CreditCardDetailPage; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CreditCardsAdvantages.TRAVEL_AND_SPORT; +import static cz.moneta.test.dsl.ufo.banka.pages.cards.credit.CreditCardsPromo.NO_PROMO; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum.GENIUS_FREE_FLEXI; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; + +@TestScenario(name = "ONB.RET.CC.01 - Retail CC - Application Origination - MoneyCard Smart - BRANCH") +public class Client_inBranch_ApplicationOnly { + + NonClient nonClient; + private static final double DELTA = 1e-4; + + @BeforeEach + void setUp(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(5000) + .withOtherLoanPayments(0); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); +//TODO MWF CIF create, remove notes after it works in TST3 +// IHubTasks iHubTasks = new IHubTasks(harness); +// harness.store(CLIENT_CIF_STORE_KEY, iHubTasks.createCifFo(nonClient)); +// harness.log("New CIF was created via iHub CIF is: " + harness.get(CLIENT_CIF_STORE_KEY)); +// harness.withUfo() +// .openLoginPage() +// .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) +// .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) +// .clickSearchByCif() +// .onClientDetailPage() +// .then(bankaTasks.newProduct().ibWithMobileKey(GENIUS_FREE_FLEXI)); + +//TODO UFO CIF create, remove this code after add MWF CIF create + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, GENIUS_FREE_FLEXI)); + } + + @JiraTestCase(id = "FVP-T13") + @TestCase(name = "Retail Customer wants to get his Credit Card on Moneta BRANCH and he will complete origination process on Branch", environments = {Environment.TST3}) + public void Retail_CC_Application_Origination_MoneyCard_Smart_BRANCH(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + + String creditAmount = "50000"; + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .then(bankaTasks.newProduct().createNewCreditCardByQuickRequest(nonClient, TRAVEL_AND_SPORT, NO_PROMO, creditAmount)) + .openProductDetail("MONEYCARD SMART") + .onCreditCardDetailPage() + .storeCreditCardValues() + .clickBackToClient() + .selectFromListOfRequests() + .checkSelectedLinesTextContent("Credit card", "PODEPSANÁ", "50\u00a0000"); //UFO is using   instead of space, this sucks, I know. + + double actualCreditAmount = TestUtils.toNumber(harness.get(HPO019_S001_CreditCardDetailPage.TOTAL_CREDIT_STORE)).doubleValue(); + double actualCreditforCashWithdraw = TestUtils.toNumber(harness.get(HPO019_S001_CreditCardDetailPage.CREDIT_FOR_CASH_WITHDRAV_STORE)).doubleValue(); + + Assertions.assertEquals(TestUtils.toNumber(creditAmount).doubleValue(), actualCreditAmount, DELTA); + Assertions.assertEquals(TestUtils.toNumber(creditAmount).doubleValue(), actualCreditforCashWithdraw, DELTA); + Assertions.assertEquals("Inkasem z účtu", harness.get(HPO019_S001_CreditCardDetailPage.METHOD_OF_PAYMENT_STORE_KEY)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Employee_fromIB_toIB.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Employee_fromIB_toIB.java new file mode 100644 index 0000000..0a66ce2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/creditcard/origination/Employee_fromIB_toIB.java @@ -0,0 +1,117 @@ +package cz.moneta.test.regression.transactional.cards.retail.creditcard.origination; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.tasks.cards.application.IbCardsApplicationTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@TestScenario(name = "ONB.RET.CC.14 - Retail CC - Application Origination") +public class Employee_fromIB_toIB { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClientEmployee() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(5000) + .withOtherLoanPayments(0); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + + harness.tasks().nasDb().insertUser(nonClient); + } + + @JiraTestCase(id = "FVP-T70") + @TestCase(name = "Employee wants to get his Credit Card on Moneta INTERNET BANKING and he will complete origination process on Internet Banking", environments = {TST3}) + public void fromIBtoIB(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + IbCardsApplicationTasks cardTasks = harness.tasks().ib().cardsApplication(); + Credentials udebsCredentials = harness.tasks().wso2().idm().getIbCredentialsByRC(nonClient.birthNumber()); + + int limit = 100000; + + harness.withIB() + .openLoginPage() + .then(harness.tasks().ib().loginWithUsernamePasswordAndMobileKey( + udebsCredentials.getUsername(), + udebsCredentials.getPassword(), + "12341234")) + .onWelcomePage() + .consentToCookies() + .checkCreditCardOfferPresent("Kreditní karta Smart") + .clickIamInterested() + .then(cardTasks.fillCardDetails( + TestUtils.toString(limit), + "50000", + "50000", + "Elektronicky", + "111111", + "29.-28.", + "Bankovním příkazem" + )) + .selectSecondIdType("Řidičský průkaz") + .setSecondIdNumber("EK 608907") + .setSecondIdValidTo("31.8.2026") + .continueToEmploymentDetails() + .setApproximateMonthlyIncomeAverage(nonClient.netMonthlyIncome()) + .setHouseholdMonthlyIncome(nonClient.homeIncome()) + .setOtherNonMMBMonthlyPayments(nonClient.otherLoanPayments()) + .setOtherMonthlyExpenses(nonClient.otherExpenses()) + .setSalaryDiscounts(nonClient.wageDeductions()) + .setEmployment(nonClient.occupationAdditionalInformation()) + .setEmploymentStartDate(DateUtils.getDateWithFormat(nonClient.occupationEmploymentFromRaw(), "dd.MM.yyyy")) + .setCounty("Česká republika") + .continueApplicationConfirmation() + .typeSmsCode("12341234") + .validateMobileKey() + .onApplicationFinishingPage() + .continueToApplicationOvereview() + .waitForApproval() + .signApplicationAndContinueToPrepareContractPage() + .clickConfirm() + .clickAgreeAndContinueToReview() + .clickConfirm() + .typeSmsCode("12341234") + .signContractAndContinueToConfirmationPage() + .continueToApplicationOverviewPage() + .checkFirstApplicationStatus("Schválená") + .checkFirstApplicationLimit(TestUtils.toStringWithTwoDecimals(limit)) + .clickLogOff(); + +// // Step 24 - UFO Ops check + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().operations().login().withCredentialsExpectingError(credentials)) + .dismissErrorPage() + .fillSearchInput(harness.get(CLIENT_CIF_STORE_KEY)) + .searchBy(SearchBy.CIF) + .onEmployeeDetailsConfirmationPage() + .clickYes() + .openApplicationList() + .assertFirstApplicationProductType("Credit card") + .assertFirstApplicationRequestedAmount("100000") + .assertFirstApplicationApprovedAmount("100000") + .assertFirstApplicationState("SOUHLAS") + .assertFirstApplicationChannel("IBS"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_Eur.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_Eur.java new file mode 100644 index 0000000..a3a4c2f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_Eur.java @@ -0,0 +1,60 @@ +package cz.moneta.test.regression.transactional.cards.retail.debitcard.origination; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Defect; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@TestScenario(name = "ONB.RET.DC.40 - Retail DC - Account&Card Onboarding (EUR - Debit MC Standard EUR)") +public class Client_fromBranch_toBranch_Eur { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(5000) + .withOtherLoanPayments(0); + +// nonClient.withBirthNumber("6411064946"); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) +// .fillSearchTerm(nonClient.birthNumber()) +// .clickSearchByRc() +// .onClientDetailPage() + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_GOLD)); + } + + @Defect(value = "Not Finished", environments = {TST3}) + @JiraTestCase(id = "FVP-T306") + @TestCase(name = "Banker creates Standard Account (EUR) and Debit card (Debit MC Standard EUR) for an existing client with existing account Genius Gold", environments = {TST3}) + public void Retail_CC_Application_Origination_MoneyCard_Smart_BRANCH(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(nonClient.birthNumber()) + .clickSearchByRc() + .onClientDetailPage() + .then(bankaTasks.newProduct().createNewCurrentAccount(CurrentAccountsEnum.TOM)); +// .then(bankaTasks.newProduct().createNewCurrentAccountWithoutContactAddress(CurrentAccountsEnum.TOM)); + + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_TOM_VISA_Gold.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_TOM_VISA_Gold.java new file mode 100644 index 0000000..6f75e9c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_TOM_VISA_Gold.java @@ -0,0 +1,96 @@ +package cz.moneta.test.regression.transactional.cards.retail.debitcard.origination; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.greenscreen.AZXI.AZXI01_CustomerViewSelectScreen.CARD_NUMBER_KEY; +import static cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan.FREE; +import static cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage.ACCOUNT_NUMBER_KEY; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@TestScenario(name = "ONB.PM.RET.DC.07 - DC - Retail - Card Onboarding - Debit VISA GOLD with existing Tom - BRANCH") +public class Client_fromBranch_toBranch_TOM_VISA_Gold { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(5000) + .withOtherLoanPayments(0); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newProduct().createNewCurrentAccount(CurrentAccountsEnum.TOM)) + .then(bankaTasks.newProduct().ibWithMobileKey(nonClient)); + } + + @JiraTestCase(id = "FVP-T388") // DISP.RET.DC53 + @JiraTestCase(id = "FVP-T1182") + @TestCase(name = "Banker creates for a retail client Debit card Visa GOLD. Bank account Tom exists", environments = {TST3}) + public void tc1(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + + final String cardName = "Debit VISA Gold (FV)"; + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(nonClient.birthNumber()) + .clickSearchByRc() + .onClientDetailPage() + .then(bankaTasks.newProduct().createNewDebitCardForExistingCurrentAccount(cardName, FREE)) + .then(bankaTasks.newProduct().verifyDebitCardDetails( + nonClient, + cardName, + "Zpoplatněná", + "Expirovaná", + "30 000", + "100 000", + "0", + "000000" + )) + .then(bankaTasks.newProduct().verifyCurrentAccountDetails( + "Tom účet", + "-200,00", + "CZK", + "BÚ-FO- KONTO GENIUS /R/", + TestUtils.getTodayDate(), + "Tom účet" + )); + + String accountNumber = harness.get(ACCOUNT_NUMBER_KEY); + harness.tasks().firstVision().verifyDebitCard( + nonClient, + accountNumber, + "860", + "151", + "A" + ); + + String cardNumber = harness.get(CARD_NUMBER_KEY); + harness.tasks() + .wso2().cards() + .getDebitCardInfo(accountNumber) + .andAssertFieldValue("RS_3.rows.row.CARD_NUM", cardNumber) + .andAssertFieldValue("RS_3.rows.row.RC_NUM_HOLDER", nonClient.birthNumber()) + .andAssertFieldValue("RS_3.rows.row.ACC_STAT", "1"); + + // TODO: Add ICBS Check + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_TOM_VISA_Standard.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_TOM_VISA_Standard.java new file mode 100644 index 0000000..cfcc31c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_TOM_VISA_Standard.java @@ -0,0 +1,98 @@ +package cz.moneta.test.regression.transactional.cards.retail.debitcard.origination; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.greenscreen.AZXI.AZXI01_CustomerViewSelectScreen.CARD_NUMBER_KEY; +import static cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan.FREE; +import static cz.moneta.test.dsl.ufo.banka.pages.main.BAL001_S008_SummaryStartDocumentsPage.ACCOUNT_NUMBER_KEY; +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@TestScenario(name = "ONB.RET.DC.01 - Retail DC - Card Onboarding (Tom - add Debit VISA Standard) - BRANCH") +public class Client_fromBranch_toBranch_TOM_VISA_Standard { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClientEmployee() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(5000) + .withOtherLoanPayments(0); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newProduct().createNewCurrentAccount(CurrentAccountsEnum.TOM)) + .then(bankaTasks.newProduct().ibWithMobileKey(nonClient)); + + harness.tasks().nasDb().insertUser(nonClient); + } + + @JiraTestCase(id = "FVP-T291") + @TestCase(name = "ONB.RET.DC.01 - Retail DC - Card Onboarding (Tom - add Debit VISA Standard) - BRANCH. Banker creates Debit card (Debit VISA Standard) for an existing client with existing account", environments = {TST3}) + public void tc1(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + + final String cardName = "Debit VISA Standard (FV)"; + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(nonClient.birthNumber()) + .clickSearchByRc() + .onEmployeeClientPage() + .clickContinueToCifMainPage() + .then(bankaTasks.newProduct().createNewDebitCardForExistingCurrentAccount(cardName, FREE)) + .then(bankaTasks.newProduct().verifyDebitCardDetails( + nonClient, + cardName, + "Zpoplatněná", + "Expirovaná", + "10 000", + "40 000", + "0", + "000000" + )) + .then(bankaTasks.newProduct().verifyCurrentAccountDetails( + "Tom účet", + "-200,00", + "CZK", + "BÚ-FO- KONTO GENIUS /R/", + TestUtils.getTodayDate(), + "Tom účet" + )); + + String accountNumber = harness.get(ACCOUNT_NUMBER_KEY); + harness.tasks().firstVision().verifyDebitCard( + nonClient, + accountNumber, + "860", + "141", + "A" + ); + + String cardNumber = harness.get(CARD_NUMBER_KEY); + harness.tasks() + .wso2().cards() + .getDebitCardInfo(accountNumber) + .andAssertFieldValue("RS_3.rows.row.CARD_NUM", cardNumber) + .andAssertFieldValue("RS_3.rows.row.RC_NUM_HOLDER", nonClient.birthNumber()) + .andAssertFieldValue("RS_3.rows.row.ACC_STAT", "1"); + + // TODO: Add ICBS Check + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_Usd.java b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_Usd.java new file mode 100644 index 0000000..fe2183a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/cards/retail/debitcard/origination/Client_fromBranch_toBranch_Usd.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.transactional.cards.retail.debitcard.origination; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeEach; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@TestScenario(name = "ONB.RET.DC.43 - ONB.RET.DC.43 - Retail DC - Account&Card Onboarding (Tom - USD - Debit MC Standard USD - fee)") +public class Client_fromBranch_toBranch_Usd { + + NonClient nonClient; + + @BeforeEach + void setUp(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClientEmployee() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(5000) + .withOtherLoanPayments(0); + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newProduct().createNewCurrentAccount(CurrentAccountsEnum.TOM)); + + harness.tasks().nasDb().insertUser(nonClient); + } + + @JiraTestCase(id = "FVP-T309") + @TestCase(name = "Banker creates Standard Account (USD) and Debit card (Debit MC Standard USD) for an existing client with existing account TOM", environments = {TST3}) + public void Retail_CC_Application_Origination_MoneyCard_Smart_BRANCH(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(nonClient.birthNumber()) + .clickSearchByRc() + .onClientDetailPage() + .then(bankaTasks.newProduct().createNewCurrentAccount(CurrentAccountsEnum.TOM)); + + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/package-info.java b/tests/src/test/java/cz/moneta/test/regression/transactional/package-info.java new file mode 100644 index 0000000..7448418 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/package-info.java @@ -0,0 +1,4 @@ +/** + * Value Stream: Transactional Banking + */ +package cz.moneta.test.regression.transactional; \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/KSNLogin.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/KSNLogin.java new file mode 100644 index 0000000..483d384 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/KSNLogin.java @@ -0,0 +1,26 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Defect; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.kasanova; + +@NonConcurrentTestScenario(name = "Kasanova login test") +public class KSNLogin { + + @Defect("Util TA-416 is solved") + @TestCase(name = "Login into Kasanova by using password") + void userWithPasswordAccessOnly_shouldLoginDirectly(Harness harness, @Key(kasanova.banker) Credentials banker) { + harness.withKasanova() + .openLoginPage() + .typeUsername(banker.getUsername()) + .typePassword(banker.getPassword()) + .clickLogin() + .logOut(); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction11Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction11Test.java new file mode 100644 index 0000000..b55dec1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction11Test.java @@ -0,0 +1,308 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section1; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPersons; +import cz.moneta.test.dsl.kasanova.components.enums.KSNRelationShipToTheOwner; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section3.KSNFunction31Test; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +import static cz.moneta.test.dsl.util.credentials.Keys.kasanova; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 11) Vklad v měně účtu, BÚ)") +public class KSNFunction11Test { + private KSNFunction31Test function31test; + private boolean doOpposite; + private final String BU_CZK_609_206971718 = "609-206971718"; + + @Order(1) + @JiraTestCase(id="PAY-T1287") + @TestCase(name = "(Fce 11 - 3.osoba - podlimit)") + public void func11underLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimitNoDispo(harness, banker, doOpposite); + } + + public void underLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 11 UnderLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction11() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction11() + .depositAmount("350") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_100_INPUT, "4") + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.underLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 11 UnderLimitNoDispo) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1343") + @TestCase(name = "(Fce 11 - 3.osoba - mezilimit") + public void func11middleLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimitNoDispo(harness, banker, doOpposite); + } + + public void middleLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 11 MiddleLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction11() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction11() + .depositAmount("49950") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.middleLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 11 MiddleLimitNoDispo) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1344") + @TestCase(name = "(Fce 11 - 3.osoba - nadlimit") + public void func11overLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimitNoDispo(harness, banker, verifyBanker, doOpposite); + } + + public void overLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 11 OverLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction11() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction11() + .depositAmount("499500") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_2.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_23.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- END TEST (FUNCTION 11 OverLimitNoDispo) ----------------"); + } + + @Order(4) + @JiraTestCase(id="PAY-T1345") + @TestCase(name = "(Fce 11 - oprávněná osoba - podlimit)") + public void func11underLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimitWithDispo(harness, banker, doOpposite); + } + + public void underLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 11 UnderLimitWithDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction11() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction11() + .depositAmount("400") + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_100_INPUT, "4") + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.underLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 11 UnderLimitWithDispo) ----------------"); + } + + @Order(5) + @JiraTestCase(id="PAY-T1346") + @TestCase(name = "(Fce 11 - oprávněná osoba - mezilimit") + public void func11middleLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimitWithDispo(harness, banker, doOpposite); + } + + public void middleLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 11 MiddleLimitWithDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction11() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction11() + .depositAmount("50000") + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.middleLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 11 MiddleLimitWithDispo) ----------------"); + } + + @Order(6) + @JiraTestCase(id="PAY-T1347") + @TestCase(name = "(Fce 11 - oprávněná osoba - nadlimit") + public void func11overLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimitWithDispo(harness, banker, verifyBanker, doOpposite); + } + + public void overLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 11 OverLimitWithDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction11() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction11() + .depositAmount("500000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_2.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_23.getValue()) + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- END TEST (FUNCTION 11 OverLimitWithDispo) ----------------"); + } + + @Order(7) + @JiraTestCase(id="PAY-T1870") + @TestCase(name = "(Fce 11 - ext. tvar uctu)") + public void func11externalAccForm(Harness harness, @Key(kasanova.banker) Credentials banker) { + harness.log("---------------- START TEST (FUNCTION 11 ExternalAccForm) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction11() + .MA_AccountNumber(BU_CZK_609_206971718) + .EnterFunction11() + .backToMainMenu() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 11 ExternalAccForm) ----------------"); + } + + @Order(8) + @JiraTestCase(id="PAY-T2825") + @TestCase(name = "(Fce 11 - Vklad 100EUR na učet v jiné měně)") + public void func11underLimit100EUR(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit100EUR(harness, banker, doOpposite); + } + + public void underLimit100EUR(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + harness.log("---------------- START TEST (FUNCTION 11 UnderLimit100EUR) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction11() + .MA_AccountNumber(KSNAccounts.CZK_215667013.getValue()) + .EnterFunction11() + .depositAmount("100") + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_EUR_50_INPUT, "2") + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.underLimit100EUR(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 11 UnderLimit100EUR) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction12Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction12Test.java new file mode 100644 index 0000000..59cb658 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction12Test.java @@ -0,0 +1,291 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section1; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPersons; +import cz.moneta.test.dsl.kasanova.components.enums.KSNRelationShipToTheOwner; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section3.KSNFunction33Test; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 12) Vklad v měně účtu, VK)") +public class KSNFunction12Test { + + private KSNFunction33Test function33test; + private boolean doOpposite; + private final String VK_CZK_2110_3226830764 = "2110-3226830764"; + + @Order(1) + @JiraTestCase(id = "PAY-T1388") + @TestCase(name = "(Fce 12 - podlimit - 3.osoba)") + public void func12underLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimitNoDispo(harness, banker, doOpposite); + } + + public void underLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 12 UnderLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction12() + .MA_AccountNumber(KSNAccounts.VK_CZK_4170859.getValue()) + .enterFunction12() + .depositAmount("400") + .lineNumber("2") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_200_INPUT, "2") + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function33test = new KSNFunction33Test(); + function33test.underLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 12 UnderLimitNoDispo) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1389") + @TestCase(name = "(Fce 12 - mezilimit - 3.osoba)") + public void func12middleLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimitNoDispo(harness, banker, doOpposite); + } + + public void middleLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 12 MiddleLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction12() + .MA_AccountNumber(KSNAccounts.VK_CZK_4170859.getValue()) + .enterFunction12() + .depositAmount("50000") + .lineNumber("2") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function33test = new KSNFunction33Test(); + function33test.middleLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 12 MiddleLimitNoDispo) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1390") + @TestCase(name = "(Fce 12 - nadlimit - 3.osoba)") + public void func12overLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimitNoDispo(harness, banker, verifyBanker, doOpposite); + } + + public void overLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 12 OverLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction12() + .MA_AccountNumber(KSNAccounts.VK_CZK_4170859.getValue()) + .enterFunction12() + .depositAmount("500000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_8.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_25.getValue()) + .lineNumber("2") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function33test = new KSNFunction33Test(); + function33test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- END TEST (FUNCTION 12 OverLimitNoDispo) ----------------"); + } + + @Order(4) + @JiraTestCase(id = "PAY-T1391") + @TestCase(name = "(Fce 12 - podlimit - oprávněná osoba)") + public void func12underLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimitWithDispo(harness, banker, doOpposite); + } + + public void underLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 12 UnderLimitWithDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction12() + .MA_AccountNumber(KSNAccounts.VK_CZK_4170859.getValue()) + .enterFunction12() + .depositAmount("400") + .lineNumber("2") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_200_INPUT, "2") + .authPerson(KSNPersons.LEOS_CHALUPA.getValue()) + .fillIdentificationAndSymbolsForDepositbook() + .continueWithPrintAction() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function33test = new KSNFunction33Test(); + function33test.underLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 12 UnderLimitWithDispo) ----------------"); + } + + @Order(5) + @JiraTestCase(id = "PAY-T1392") + @TestCase(name = "(Fce 12 - mezilimit - oprávněná osoba)") + public void func12middleLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimitWithDispo(harness, banker, doOpposite); + } + + public void middleLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 12 MiddleLimitWithDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction12() + .MA_AccountNumber(KSNAccounts.VK_CZK_4170859.getValue()) + .enterFunction12() + .depositAmount("50000") + .lineNumber("2") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .authPerson(KSNPersons.LEOS_CHALUPA.getValue()) + .fillIdentificationAndSymbolsForDepositbook() + .continueWithPrintAction() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function33test = new KSNFunction33Test(); + function33test.middleLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 12 MiddleLimitWithDispo) ----------------"); + } + + @Order(6) + @JiraTestCase(id = "PAY-T1393") + @TestCase(name = "(Fce 12 - nadlimit - oprávněná osoba)") + public void func12overLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimitWithDispo(harness, banker, verifyBanker, doOpposite); + } + + public void overLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 12 OverLimitWithDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction12() + .MA_AccountNumber(KSNAccounts.VK_CZK_4170859.getValue()) + .enterFunction12() + .depositAmount("500000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_8.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_25.getValue()) + .lineNumber("2") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .authPerson(KSNPersons.LEOS_CHALUPA.getValue()) + .fillIdentificationAndSymbolsForDepositbook() + .continueWithPrintAction() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function33test = new KSNFunction33Test(); + function33test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- END TEST (FUNCTION 12 OverLimitWithDispo) ----------------"); + } + + @Order(7) + @JiraTestCase(id="PAY-T1876") + @TestCase(name = "(Fce 12 - ext. tvar uctu)") + public void func12externalAccForm(Harness harness, @Key(kasanova.banker) Credentials banker) { + harness.log("---------------- START TEST (FUNCTION 12 ExternalAccForm) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction12() + .MA_AccountNumber(VK_CZK_2110_3226830764) + .enterFunction12() + .backToMainMenu() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 12 ExternalAccForm) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction13Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction13Test.java new file mode 100644 index 0000000..8e039f4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction13Test.java @@ -0,0 +1,105 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section1; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNRelationShipToTheOwner; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 13) Vklad v měně účtu, TV)") +public class KSNFunction13Test { + + @Order(1) + @JiraTestCase(id = "PAY-T1385") + @TestCase(name = "(Fce 13 - 3.osoba - podlimit)") + public void func13underLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 13 UnderLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction13() + .MA_AccountNumber(KSNAccounts.TV_CZK_156748779.getValue()) + .enterFunction13() + .depositAmount("400") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_100_INPUT, "4") + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 13 UnderLimitNoDispo) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1386") + @TestCase(name = "(Fce 13 - 3.osoba - mezilimit") + public void func13middleLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 13 MiddleLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction13() + .MA_AccountNumber(KSNAccounts.TV_CZK_156748779.getValue()) + .enterFunction13() + .depositAmount("50000") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 13 MiddleLimitNoDispo) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1387") + @TestCase(name = "(Fce 13 - 3.osoba - nadlimit") + public void func13overLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 13 OverLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction13() + .MA_AccountNumber(KSNAccounts.TV_CZK_156748779.getValue()) + .enterFunction13() + .depositAmount("500000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_3.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_21.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 13 OverLimitNoDispo) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction14Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction14Test.java new file mode 100644 index 0000000..b5c776c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction14Test.java @@ -0,0 +1,255 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section1; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCurrencies; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNRelationShipToTheOwner; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section3.KSNFunction34Test; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 14) Vklad v měně účtu, HK") +public class KSNFunction14Test { + + private KSNFunction34Test function34test; + private boolean doOpposite; + private static final String PENIZE_NA_CESTE = "Penize na ceste"; + + @Order(1) + @JiraTestCase(id="PAY-T1323") + @TestCase(name = "(Fce 14 - podlimit)") + public void func14underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit(harness, banker, doOpposite); + } + + public void underLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 14 UnderLimit) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction14() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .EnterFunction14() + .depositAmount("200") + .fillIdentificationAndSymbolsShort() + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_100_INPUT, "2") + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function34test = new KSNFunction34Test(); + function34test.underLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 14 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1361") + @TestCase(name = "(Fce 14 - mezilimit)") + public void func14middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimit(harness, banker, doOpposite); + } + + public void middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 14 MiddleLimit) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction14() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .EnterFunction14() + .depositAmount("50000") + .fillIdentificationAndSymbolsLong() + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function34test = new KSNFunction34Test(); + function34test.middleLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 14 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1362") + @TestCase(name = "(Fce 14 - nadlimit)") + public void func14overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimit(harness, banker, verifyBanker, doOpposite); + } + + public void overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 14 OverLimit) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction14() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .EnterFunction14() + .depositAmount("500000") + .kasanovaDialogClickOK() + .fillIdentificationAndSymbolsLong() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_5.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_23.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function34test = new KSNFunction34Test(); + function34test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- END TEST (FUNCTION 14 OverLimit) ----------------"); + } + + @Order(4) + @JiraTestCase(id="PAY-T1363") + @TestCase(name = "(Fce 14 - podlimit - cizí měna)") + public void func14underLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimitForeignCurrency(harness, banker, doOpposite); + } + + public void underLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 14 UnderLimit Foreign Currency) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction14() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction14() + .depositAmount("20") + .fillIdentificationAndSymbolsShort() + .coinSplitTable(KSNCoinSplits.COINSPLIT_EUR_20_INPUT, "1") + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function34test = new KSNFunction34Test(); + function34test.underLimitForeignCurrency(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 14 UnderLimit Foreign Currency) ----------------"); + } + + @Order(5) + @JiraTestCase(id="PAY-T1364") + @TestCase(name = "(Fce 14 - mezilimit - cizí měna)") + public void func14middleLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimitForeignCurrency(harness, banker, doOpposite); + } + + public void middleLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 14 MiddleLimit Foreign Currency) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction14() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.USD_NAME.getValue()) + .EnterFunction14() + .depositAmount("2500") + .fillIdentificationAndSymbolsLong() + .coinSplitTable(KSNCoinSplits.COINSPLIT_USD_100_INPUT, "25") + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function34test = new KSNFunction34Test(); + function34test.middleLimitForeignCurrency(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 14 MiddleLimit Foreign Currency) ----------------"); + } + + @Order(6) + @JiraTestCase(id="PAY-T1365") + @TestCase(name = "(Fce 14 - nadlimit - cizí měna)") + public void func14overLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimitForeignCurrency(harness, banker, verifyBanker, doOpposite); + } + + public void overLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 14 OverLimit Foreign Currency) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction14() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction14() + .depositAmount("20000") + .kasanovaDialogClickOK() + .fillIdentificationAndSymbolsLong() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_5.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_23.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_EUR_500_INPUT, "40") + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function34test = new KSNFunction34Test(); + function34test.overLimitForeignCurrency(harness, banker, verifyBanker, false); + } + + harness.log("---------------- END TEST (FUNCTION 14 OverLimit Foreign Currency) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction15Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction15Test.java new file mode 100644 index 0000000..d8a5110 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction15Test.java @@ -0,0 +1,117 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section1; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNRelationShipToTheOwner; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 15) Vklad na BÚ - Vklad hypotéka") +public class KSNFunction15Test { + + @Order(1) + @JiraTestCase(id = "PAY-T1715") + @TestCase(name = "(Fce 15 - podlimit)") + public void func15underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 15 UnderLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction15() + .MA_AccountNumber(KSNAccounts.UCET_HYPOTEKA.getValue()) + .enterFunction15() + .depositAmount("100") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_100_INPUT, "1") + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 15 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1716") + @TestCase(name = "(Fce 15 - mezilimit)") + public void func15middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 15 MiddleLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction15() + .MA_AccountNumber(KSNAccounts.UCET_HYPOTEKA.getValue()) + .enterFunction15() + .depositAmount("50000") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 15 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1717") + @TestCase(name = "(Fce 15 - nadlimit)") + public void func15overLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 15 OverLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction15() + .MA_AccountNumber(KSNAccounts.UCET_HYPOTEKA.getValue()) + .enterFunction15() + .depositAmount("500000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_2.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_22.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 15 OverLimit) ----------------"); + } + + @Order(4) + @JiraTestCase(id = "PAY-T1718") + @TestCase(name = "(Fce 15 - přesměrování z funkce 11)") + public void func15redirect(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 15 Redirect) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction11() + .MA_AccountNumber(KSNAccounts.UCET_HYPOTEKA.getValue()) + .enterFunction15() + .checkRedirect("15 - Vklad na BÚ - Vklad hypotéka") + .backToMainMenu() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 15 Redirect) ----------------"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction16Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction16Test.java new file mode 100644 index 0000000..1e542cb --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction16Test.java @@ -0,0 +1,215 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section1; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPersons; +import cz.moneta.test.dsl.kasanova.components.enums.KSNRelationShipToTheOwner; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section3.KSNFunction31Test; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 16) Vklad v měně účtu, Odvod uzavřenými obaly") +public class KSNFunction16Test { + + private KSNFunction31Test function31test; + private boolean doOpposite; + + @Order(1) + @JiraTestCase(id = "PAY-T1339") + @TestCase(name = "(Fce 16 - podlimit - 3.osoba)") + public void func16underLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 16 UnderLimitNoDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction16() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction16() + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_200_INPUT, "2") + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .kasanovaDialogClickOK() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.underLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 16 UnderLimitNoDispo) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1375") + @TestCase(name = "(Fce 16 - mezilimit - 3.osoba)") + public void func16middleLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 16 MiddleLimitNoDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction16() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction16() + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickOK() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.middleLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 16 MiddleLimitNoDispo) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1376") + @TestCase(name = "(Fce 16 - nadlimit - 3.osoba)") + public void func16overLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 16 OverLimitNoDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction16() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction16() + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_2.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_23.getValue()) + .continueWithPrintAction() + .kasanovaDialogClickOK() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- END TEST (FUNCTION 16 OverLimitNoDispo) ----------------"); + } + + @Order(4) + @JiraTestCase(id = "PAY-T1377") + @TestCase(name = "(Fce 16 - podlimit - oprávněná osoba)") + public void func16underLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 16 UnderLimitWithDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction16() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction16() + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_200_INPUT, "2") + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .kasanovaDialogClickOK() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.underLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 16 UnderLimitWithDispo) ----------------"); + } + + @Order(5) + @JiraTestCase(id = "PAY-T1378") + @TestCase(name = "(Fce 16 - mezilimit - oprávněná osoba)") + public void func16middleLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 16 MiddleLimitWithDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction16() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction16() + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .kasanovaDialogClickOK() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.middleLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 16 MiddleLimitWithDispo) ----------------"); + } + + @Order(6) + @JiraTestCase(id = "PAY-T1379") + @TestCase(name = "(Fce 16 - nadlimit - oprávněná osoba)") + public void func16overLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 16 OverLimitWithDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction16() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction16() + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_1.getValue()) + .continueWithPrintAction() + .kasanovaDialogClickOK() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- END TEST (FUNCTION 16 OverLimitWithDispo) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction18Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction18Test.java new file mode 100644 index 0000000..1835505 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction18Test.java @@ -0,0 +1,292 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section1; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPersons; +import cz.moneta.test.dsl.kasanova.components.enums.KSNRelationShipToTheOwner; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section3.KSNFunction31Test; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 18) Vklad v měně účtu, Hromadný vklad") +public class KSNFunction18Test { + + private KSNFunction31Test function31test; + private boolean doOpposite; + private final String BU_CZK_609_206971718 = "609-206971718"; + + @Order(1) + @JiraTestCase(id = "PAY-T1401") + @TestCase(name = "(Fce 18 - podlimit - 3.osoba)") + public void func18underLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 18 UnderLimitNoDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction18() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction18() + .depositAmount("350") + .firstDepositAmount("200") + .firstDepositVarSymbol("1") + .clickAddAnotherDeposit() + .secondDepositAmount("150") + .secondDepositVarSymbol("2") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_200_INPUT, "2") + .fillIdentificationAndConstantSymbolMini() + .clickPrintSmry() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .continueWithPrintAction() + .dismissPrintWindow() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.underLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 18 UnderLimitNoDispo) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1402") + @TestCase(name = "(Fce 18 - mezilimit - 3.osoba)") + public void func18middleLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 18 MiddleLimitNoDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction18() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction18() + .depositAmount("49950") + .firstDepositAmount("20000") + .firstDepositVarSymbol("1") + .clickAddAnotherDeposit() + .secondDepositAmount("29950") + .secondDepositVarSymbol("2") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .fillIdentificationAndConstantSymbolLong() + .clickPrintSmry() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.middleLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 18 MiddleLimitNoDispo) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1403") + @TestCase(name = "(Fce 18 - nadlimit - 3.osoba)") + public void func18overLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 18 OverLimitNoDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction18() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction18() + .depositAmount("499500") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_2.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_23.getValue()) + .firstDepositAmount("200000") + .firstDepositVarSymbol("1") + .clickAddAnotherDeposit() + .secondDepositAmount("299500") + .secondDepositVarSymbol("2") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .fillIdentificationAndConstantSymbolLong() + .clickPrintSmry() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- END TEST (FUNCTION 18 OverLimitNoDispo) ----------------"); + } + + @Order(4) + @JiraTestCase(id = "PAY-T1404") + @TestCase(name = "(Fce 18 - podlimit - oprávněná osoba)") + public void func18underLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 18 UnderLimitWithDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction18() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction18() + .depositAmount("400") + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_200_INPUT, "2") + .firstDepositAmount("300") + .firstDepositVarSymbol("1") + .clickAddAnotherDeposit() + .secondDepositAmount("100") + .secondDepositVarSymbol("2") + .clickPrintSmry() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .continueWithPrintAction() + .dismissPrintWindow() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.underLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 18 UnderLimitWithDispo) ----------------"); + } + + @Order(5) + @JiraTestCase(id = "PAY-T1405") + @TestCase(name = "(Fce 18 - mezilimit - oprávněná osoba)") + public void func18middleLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 18 MiddleLimitWithDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction18() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction18() + .depositAmount("50000") + .firstDepositAmount("20000") + .firstDepositVarSymbol("1") + .clickAddAnotherDeposit() + .secondDepositAmount("30000") + .secondDepositVarSymbol("2") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .clickPrintSmry() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .continueWithPrintAction() + .dismissPrintWindow() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.middleLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 18 MiddleLimitWithDispo) ----------------"); + } + + @Order(6) + @JiraTestCase(id = "PAY-T1406") + @TestCase(name = "(Fce 18 - nadlimit - oprávněná osoba)") + public void func18overLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + harness.log("---------------- START TEST (FUNCTION 18 OverLimitWithDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction18() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .enterFunction18() + .depositAmount("500000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_1.getValue()) + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .firstDepositAmount("200000") + .firstDepositVarSymbol("1") + .clickAddAnotherDeposit() + .secondDepositAmount("300000") + .secondDepositVarSymbol("2") + .clickPrintSmry() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .continueWithPrintAction() + .dismissPrintWindow() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function31test = new KSNFunction31Test(); + function31test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- END TEST (FUNCTION 18 OverLimitWithDispo) ----------------"); + } + + @Order(7) + @JiraTestCase(id="PAY-T1874") + @TestCase(name = "(Fce 18 - ext. tvar uctu)") + public void func18externalAccForm(Harness harness, @Key(kasanova.banker) Credentials banker) { + harness.log("---------------- START TEST (FUNCTION 18 ExternalAccForm) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction18() + .MA_AccountNumber(BU_CZK_609_206971718) + .enterFunction18() + .backToMainMenu() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 18 ExternalAccForm) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction19Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction19Test.java new file mode 100644 index 0000000..0c485fe --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section1/KSNFunction19Test.java @@ -0,0 +1,117 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section1; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNRelationShipToTheOwner; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 19) Vklad na BÚ - MONETA - Stavební spořitelna)") +public class KSNFunction19Test { + + @Order(1) + @JiraTestCase(id = "PAY-T1710") + @TestCase(name = "(Fce 19 - podlimit)") + public void func19underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 19 UnderLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction19() + .WUNumber() + .enterFunction19() + .depositAmount("100") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_100_INPUT, "1") + .fillIdentificationAndSymbolsFunc19Short() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 19 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1711") + @TestCase(name = "(Fce 19 - mezilimit)") + public void func19middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 19 MiddleLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction19() + .WUNumber() + .enterFunction19() + .depositAmount("50000") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "10") + .fillIdentificationAndSymbolsFunc19Long() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 19 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1712") + @TestCase(name = "(Fce 19 - nadlimit)") + public void func19overLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 19 OverLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction19() + .WUNumber() + .enterFunction19() + .depositAmount("500000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_1.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_21.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .fillIdentificationAndSymbolsFunc19Long() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 19 OverLimit) ----------------"); + } + + @Order(4) + @JiraTestCase(id = "PAY-T1713") + @TestCase(name = "(Fce 19 - přesměrování z funkce 11)") + public void func19redirect(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 19 Redirect) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection1() + .KSNFunction11() + .MA_AccountNumber(KSNAccounts.UCET_STAVEBNI_SPORITELNA.getValue()) + .enterFunction19() + .checkRedirect("19 - Vklad na BÚ - MONETA - Stavební spořitelna") + .backToMainMenu() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 19 Redirect) ----------------"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section2/KSNFunction21Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section2/KSNFunction21Test.java new file mode 100644 index 0000000..029b910 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section2/KSNFunction21Test.java @@ -0,0 +1,284 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section2; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCurrencies; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPersons; +import cz.moneta.test.dsl.kasanova.components.enums.KSNRelationShipToTheOwner; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section4.KSNFunction41Test; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 21) Vklad v jiné měně, BÚ") +public class KSNFunction21Test { + private KSNFunction41Test function41test; + private boolean doOpposite; + + @Order(1) + @JiraTestCase(id="PAY-T1309") + @TestCase(name = "(Fce 21 - 3.osoba - podlimit)") + public void func21underLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimitNoDispo(harness, banker, doOpposite); + } + + public void underLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- (FUNCTION 21 UnderLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection2() + .KSNFunction21() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction21() + .depositAmount("500") + .coinSplitTable(KSNCoinSplits.COINSPLIT_EUR_100_INPUT, "5") + .fillFeeCoinsplit() + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function41test = new KSNFunction41Test(); + function41test.underLimit(harness, banker, false); + } + + harness.log("---------------- (FUNCTION 21 UnderLimitNoDispo) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1356") + @TestCase(name = "(Fce 21 - 3.osoba - mezilimit)") + public void func21middleLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimitNoDispo(harness, banker, doOpposite); + } + + public void middleLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- (FUNCTION 21 MiddleLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection2() + .KSNFunction21() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction21() + .depositAmount("2000") + .coinSplitTable(KSNCoinSplits.COINSPLIT_EUR_500_INPUT, "4") + .fillFeeCoinsplit() + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function41test = new KSNFunction41Test(); + function41test.middleLimit(harness, banker, false); + } + + harness.log("---------------- (FUNCTION 21 MiddleLimitNoDispo) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1357") + @TestCase(name = "(Fce 21 - 3.osoba - nadlimit)") + public void func21overLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimitNoDispo(harness, banker, verifyBanker, doOpposite); + } + + public void overLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- (FUNCTION 21 OverLimitNoDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection2() + .KSNFunction21() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction21() + .depositAmount("16600") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_2.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_23.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_EUR_500_INPUT, "33") + .coinSplitTable(KSNCoinSplits.COINSPLIT_EUR_100_INPUT, "1") + .fillFeeCoinsplit() + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function41test = new KSNFunction41Test(); + function41test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- (FUNCTION 21 OverLimitNoDispo) ----------------"); + } + + @Order(4) + @JiraTestCase(id="PAY-T1358") + @TestCase(name = "(Fce 21 - oprávněná osoba - podlimit)") + public void func21underLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimitWithDispo(harness, banker, doOpposite); + } + + public void underLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- (FUNCTION 21 UnderLimitWithDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection2() + .KSNFunction21() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction21() + .depositAmount("500") + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_EUR_100_INPUT, "5") + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function41test = new KSNFunction41Test(); + function41test.underLimit(harness, banker, false); + } + + harness.log("---------------- (FUNCTION 21 UnderLimitWithDispo) ----------------"); + } + + @Order(5) + @JiraTestCase(id="PAY-T1359") + @TestCase(name = "(Fce 21 - oprávněná osoba - mezilimit)") + public void func21middleLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimitWithDispo(harness, banker, doOpposite); + } + + public void middleLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- (FUNCTION 21 MiddleLimitWithDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection2() + .KSNFunction21() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction21() + .depositAmount("2000") + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_EUR_500_INPUT, "4") + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function41test = new KSNFunction41Test(); + function41test.middleLimit(harness, banker, false); + } + + harness.log("---------------- (FUNCTION 21 MiddleLimitWithDispo) ----------------"); + } + + @Order(6) + @JiraTestCase(id="PAY-T1360") + @TestCase(name = "(Fce 21 - oprávněná osoba - nadlimit)") + public void func21overLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimitWithDispo(harness, banker, verifyBanker, doOpposite); + } + + public void overLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- (FUNCTION 21 OverLimitWithDispo) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection2() + .KSNFunction21() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction21() + .depositAmount("20000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_2.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_23.getValue()) + .authPerson(KSNPersons.VACLAV_KARTAK.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_EUR_500_INPUT, "40") + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if(doOpposite == true) { + function41test = new KSNFunction41Test(); + function41test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- (FUNCTION 21 OverLimitWithDispo) ----------------"); + } + + @Order(7) + @JiraTestCase(id = "PAY-T1764") + @TestCase(name = "(Fce 21 - přesměrování do funkce 11)") + public void func21redirect(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 21 Redirect) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection2() + .KSNFunction21() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.CZK_NAME.getValue()) + .EnterFunction11() + .checkRedirect("11 - Vklad v měně účtu na BÚ") + .backToMainMenu() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 21 Redirect) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section2/KSNFunction22Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section2/KSNFunction22Test.java new file mode 100644 index 0000000..87a37b8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section2/KSNFunction22Test.java @@ -0,0 +1,143 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section2; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCurrencies; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNRelationShipToTheOwner; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section4.KSNFunction42Test; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 22) Vklad v jiné měně, HK") +public class KSNFunction22Test { + + private KSNFunction42Test function42test; + private boolean doOpposite; + private static final String PENIZE_NA_CESTE = "Penize na ceste"; + + @Order(1) + @JiraTestCase(id = "PAY-T1327") + @TestCase(name = "(Fce 22 - podlimit)") + public void func22underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit(harness, banker, doOpposite); + } + + public void underLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 22 UnderLimit) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection2() + .KSNFunction22() + .HK2_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.USD.getValue()) + .EnterFunction22() + .depositAmount("500") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_500_INPUT, "1") + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function42test = new KSNFunction42Test(); + function42test.underLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 22 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1371") + @TestCase(name = "(Fce 22 - mezilimit)") + public void func22middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimit(harness, banker, doOpposite); + } + + public void middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 22 MiddleLimit) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection2() + .KSNFunction22() + .HK2_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.USD.getValue()) + .EnterFunction22() + .depositAmount("40000") + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "8") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function42test = new KSNFunction42Test(); + function42test.middleLimit(harness, banker, false); + } + + harness.log("---------------- END TEST (FUNCTION 22 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1372") + @TestCase(name = "(Fce 22 - nadlimit)") + public void func22overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimit(harness, banker, verifyBanker, doOpposite); + } + + public void overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 22 OverLimit) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection2() + .KSNFunction22() + .HK2_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.USD.getValue()) + .EnterFunction22() + .depositAmount("500000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_2.getValue()) + .relationToTheOwner(KSNRelationShipToTheOwner.VZTAH_K_MAJITELI_22.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite == true) { + function42test = new KSNFunction42Test(); + function42test.overLimit(harness, banker, verifyBanker, false); + } + + harness.log("---------------- END TEST (FUNCTION 22 OverLimit) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction31Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction31Test.java new file mode 100644 index 0000000..d8d2209 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction31Test.java @@ -0,0 +1,187 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section3; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section1.KSNFunction11Test; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 31) Výběr v měně účtu, BÚ") +public class KSNFunction31Test { + private KSNFunction11Test function11test; + private boolean doOpposite; + private final String BU_CZK_609_206971718 = "609-206971718"; + + @Order(1) + @JiraTestCase(id="PAY-T1299") + @TestCase(name = "(Fce 31 - podlimit)") + public void func31underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit(harness, banker, doOpposite); + } + + public void underLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 31 UnderLimit) ----------------"); + + if(doOpposite == true) { + function11test = new KSNFunction11Test(); + function11test.underLimitWithDispo(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction31() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction31() + .withdrawAmount("400") + .authPerson4() + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 31 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1348") + @TestCase(name = "(Fce 31 - mezilimit)") + public void func31middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimit(harness, banker, doOpposite); + } + + public void middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 31 MiddleLimit) ----------------"); + + if(doOpposite == true) { + function11test = new KSNFunction11Test(); + function11test.middleLimitWithDispo(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction31() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction31() + .withdrawAmount("50000") + .authPerson4() + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 31 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1349") + @TestCase(name = "(Fce 31 - nadlimit)") + public void func31overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimit(harness, banker, verifyBanker, doOpposite); + } + + public void overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 31 OverLimit) ----------------"); + + if(doOpposite == true) { + function11test = new KSNFunction11Test(); + function11test.overLimitWithDispo(harness, banker, verifyBanker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction31() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction31() + .withdrawAmount("500000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_11.getValue()) + .authPerson4() + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, "500000", KSNAccounts.CZK_206971718.getValue(), verifyBanker) + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 31 OverLimit) ----------------"); + } + + @Order(4) + @JiraTestCase(id="PAY-T1875") + @TestCase(name = "(Fce 31 - ext. tvar uctu)") + public void func31externalAccForm(Harness harness, @Key(kasanova.banker) Credentials banker) { + harness.log("---------------- START TEST (FUNCTION 31 ExternalAccForm) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction31() + .MA_AccountNumber(BU_CZK_609_206971718) + .EnterFunction31() + .backToMainMenu() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 31 ExternalAccForm) ----------------"); + } + + @Order(5) + @JiraTestCase(id="PAY-T2826") + @TestCase(name = "(Fce 31 - Výběr 100EUR z účtu v jiné měně)") + public void func31underLimit100EUR(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit100EUR(harness, banker, doOpposite); + } + + public void underLimit100EUR(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + harness.log("---------------- START TEST (FUNCTION 31 UnderLimit100EUR) ----------------"); + + if(doOpposite == true) { + function11test = new KSNFunction11Test(); + function11test.underLimit100EUR(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction31().MA_AccountNumber(KSNAccounts.CZK_215667013.getValue()) + .EnterFunction31() + .withdrawAmount("100") + .authPerson1() + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 31 UnderLimit100EUR) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction33Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction33Test.java new file mode 100644 index 0000000..6869fa1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction33Test.java @@ -0,0 +1,167 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section3; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPersons; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section1.KSNFunction12Test; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 33) Výběr v měně účtu, VK") +public class KSNFunction33Test { + + private KSNFunction12Test function12test; + private boolean doOpposite; + private final String VK_CZK_2110_3226830764 = "2110-3226830764"; + + @Order(1) + @JiraTestCase(id = "PAY-T1394") + @TestCase(name = "(Fce 33 - podlimit)") + public void func33underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit(harness, banker, doOpposite); + } + + public void underLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 33 UnderLimit) ----------------"); + + if (doOpposite == true) { + function12test = new KSNFunction12Test(); + function12test.underLimitWithDispo(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction33() + .MA_AccountNumber(KSNAccounts.VK_CZK_4170859.getValue()) + .enterFunction33() + .withdrawAmount("408") + .kasanovaDialogClickOK() + .checkPaycheck(400.0) + .authPerson(KSNPersons.LEOS_CHALUPA.getValue()) + .fillIdentificationAndSymbolsForDepositbook() + .continueWithPrintAction() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 33 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1395") + @TestCase(name = "(Fce 33 - mezilimit)") + public void func33middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimit(harness, banker, doOpposite); + } + + public void middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 33 MiddleLimit) ----------------"); + + if (doOpposite == true) { + function12test = new KSNFunction12Test(); + function12test.middleLimitWithDispo(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction33() + .MA_AccountNumber(KSNAccounts.VK_CZK_4170859.getValue()) + .enterFunction33() + .withdrawAmount("51020") + .kasanovaDialogClickOK() + .checkPaycheck(50000.0) + .authPerson(KSNPersons.LEOS_CHALUPA.getValue()) + .fillIdentificationAndSymbolsForDepositbook() + .continueWithPrintAction() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 33 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1396") + @TestCase(name = "(Fce 33 - nadlimit)") + public void func33overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimit(harness, banker, verifyBanker, doOpposite); + } + + public void overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 33 OverLimit) ----------------"); + + if (doOpposite == true) { + function12test = new KSNFunction12Test(); + function12test.overLimitWithDispo(harness, banker, verifyBanker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction33() + .MA_AccountNumber(KSNAccounts.VK_CZK_4170859.getValue()) + .enterFunction33() + .withdrawAmount("510204") + .waitSec() + .kasanovaDialogClickOK() + .checkPaycheck(500000.0) + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_1.getValue()) + .authPerson(KSNPersons.LEOS_CHALUPA.getValue()) + .fillIdentificationAndSymbolsForDepositbook() + .continueWithPrintAction() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, "510204", KSNAccounts.VK_CZK_4170859.getValue(), verifyBanker) + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 33 OverLimit) ----------------"); + } + + @Order(4) + @JiraTestCase(id="PAY-T1877") + @TestCase(name = "(Fce 33 - ext. tvar uctu)") + public void func33externalAccForm(Harness harness, @Key(kasanova.banker) Credentials banker) { + harness.log("---------------- START TEST (FUNCTION 33 ExternalAccForm) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction33() + .MA_AccountNumber(VK_CZK_2110_3226830764) + .enterFunction33() + .backToMainMenu() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 33 ExternalAccForm) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction34Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction34Test.java new file mode 100644 index 0000000..3322b28 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction34Test.java @@ -0,0 +1,248 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section3; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCurrencies; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section1.KSNFunction14Test; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 34) Výběr v měně účtu, HK") +public class KSNFunction34Test { + + private KSNFunction14Test function14test; + private boolean doOpposite; + private static final String PENIZE_NA_CESTE = "Penize na ceste"; + + @Order(1) + @JiraTestCase(id="PAY-T1326") + @TestCase(name = "(Fce 34 - podlimit)") + public void func34underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit(harness, banker, doOpposite); + } + + public void underLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 34 UnderLimit) ----------------"); + + if(doOpposite == true) { + function14test = new KSNFunction14Test(); + function14test.underLimit(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction34() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .EnterFunction34() + .withdrawAmount("200") + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 34 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1366") + @TestCase(name = "(Fce 34 - mezilimit)") + public void func34middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimit(harness, banker, doOpposite); + } + + public void middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 34 MiddleLimit) ----------------"); + + if(doOpposite == true) { + function14test = new KSNFunction14Test(); + function14test.middleLimit(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction34() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .EnterFunction34() + .withdrawAmount("50000") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 34 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1367") + @TestCase(name = "(Fce 34 - nadlimit)") + public void func34overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimit(harness, banker, verifyBanker, doOpposite); + } + + public void overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 34 OverLimit) ----------------"); + + if(doOpposite == true) { + function14test = new KSNFunction14Test(); + function14test.overLimit(harness, banker, verifyBanker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction34() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .EnterFunction34() + .withdrawAmount("500000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_5.getValue()) + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, "500000", KSNAccounts.UCET_PENIZE_NA_CESTE.getValue(), verifyBanker) + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 34 OverLimit) ----------------"); + } + + @Order(4) + @JiraTestCase(id="PAY-T1368") + @TestCase(name = "(Fce 34 - podlimit - cizí měna)") + public void func34underLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimitForeignCurrency(harness, banker, doOpposite); + } + + public void underLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 34 UnderLimit Foreign Currency) ----------------"); + + if(doOpposite == true) { + function14test = new KSNFunction14Test(); + function14test.underLimitForeignCurrency(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction34() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction34() + .withdrawAmount("20") + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 34 UnderLimit Foreign Currency) ----------------"); + } + + @Order(5) + @JiraTestCase(id="PAY-T1369") + @TestCase(name = "(Fce 34 - mezilimit - cizí měna)") + public void func34middleLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimitForeignCurrency(harness, banker, doOpposite); + } + + public void middleLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 34 MiddleLimit Foreign Currency) ----------------"); + + if(doOpposite == true) { + function14test = new KSNFunction14Test(); + function14test.middleLimitForeignCurrency(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction34() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.USD_NAME.getValue()) + .EnterFunction34() + .withdrawAmount("2500") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 34 MiddleLimit Foreign Currency) ----------------"); + } + + @Order(6) + @JiraTestCase(id="PAY-T1370") + @TestCase(name = "(Fce 34 - nadlimit - cizí měna)") + public void func34overLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimitForeignCurrency(harness, banker, verifyBanker, doOpposite); + } + + public void overLimitForeignCurrency(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 34 OverLimit Foreign Currency) ----------------"); + + if(doOpposite == true) { + function14test = new KSNFunction14Test(); + function14test.overLimitForeignCurrency(harness, banker, verifyBanker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction34() + .HK_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction34() + .withdrawAmount("20000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_3.getValue()) + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, "20000", KSNAccounts.UCET_PENIZE_NA_CESTE.getValue(), verifyBanker) + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 34 OverLimit Foreign Currency) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction36Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction36Test.java new file mode 100644 index 0000000..c83b9a3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section3/KSNFunction36Test.java @@ -0,0 +1,115 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section3; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section1.KSNFunction11Test; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 36) Výběr v měně účtu, BÚ - třetí osoba") +public class KSNFunction36Test { + private KSNFunction11Test function11test; + private boolean doOpposite; + + @Order(1) + @JiraTestCase(id="PAY-T1300") + @TestCase(name = "(Fce 36 - podlimit)") + public void func36underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + if(doOpposite == true) { + function11test = new KSNFunction11Test(); + function11test.underLimitWithDispo(harness, banker, false); + } + + harness.log("---------------- START TEST (FUNCTION 36 UnderLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction36() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction36() + .withdrawAmount("400") + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 36 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1352") + @TestCase(name = "(Fce 36 - mezilimit)") + public void func36middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + if(doOpposite == true) { + function11test = new KSNFunction11Test(); + function11test.middleLimitWithDispo(harness, banker, false); + } + + harness.log("---------------- START TEST (FUNCTION 36 MiddleLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction36() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction36() + .withdrawAmount("50000") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 36 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1353") + @TestCase(name = "(Fce 36 - nadlimit)") + public void func36overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + if(doOpposite == true) { + function11test = new KSNFunction11Test(); + function11test.overLimitWithDispo(harness, banker, verifyBanker, false); + } + + harness.log("---------------- START TEST (FUNCTION 36 OverLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection3() + .KSNFunction36() + .MA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .EnterFunction36() + .withdrawAmount("500000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_11.getValue()) + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, "500000", KSNAccounts.CZK_206971718.getValue(), verifyBanker) + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 36 OverLimit) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section4/KSNFunction41Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section4/KSNFunction41Test.java new file mode 100644 index 0000000..fbb14a7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section4/KSNFunction41Test.java @@ -0,0 +1,158 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section4; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCurrencies; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section2.KSNFunction21Test; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 41) Výběr v jiné měně, BÚ") +public class KSNFunction41Test { + private KSNFunction21Test function21test; + private boolean doOpposite; + + @Order(1) + @JiraTestCase(id="PAY-T1308") + @TestCase(name = "(Fce 41 - podlimit)") + public void func41underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit(harness, banker, doOpposite); + } + + public void underLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- (FUNCTION 41 UnderLimit) ----------------"); + + if(doOpposite == true) { + function21test = new KSNFunction21Test(); + function21test.underLimitWithDispo(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection4() + .KSNFunction41() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction41() + .withdrawAmount("500") + .authPerson4() + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- (FUNCTION 41 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1350") + @TestCase(name = "(Fce 41 - mezilimit)") + public void func41middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimit(harness, banker, doOpposite); + } + + public void middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- (FUNCTION 41 MiddleLimit) ----------------"); + + if(doOpposite == true) { + function21test = new KSNFunction21Test(); + function21test.middleLimitWithDispo(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection4() + .KSNFunction41() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction41() + .withdrawAmount("2000") + .authPerson4() + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- (FUNCTION 41 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1351") + @TestCase(name = "(Fce 41 - nadlimit)") + public void func41overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimit(harness, banker, verifyBanker, doOpposite); + } + + public void overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- (FUNCTION 41 OverLimit) ----------------"); + + if(doOpposite == true) { + function21test = new KSNFunction21Test(); + function21test.overLimitWithDispo(harness, banker, verifyBanker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection4() + .KSNFunction41() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction41() + .withdrawAmount("20000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_9.getValue()) + .authPerson4() + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, "20000", KSNAccounts.CZK_206971718.getValue(), verifyBanker) + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- (FUNCTION 41 OverLimit) ----------------"); + } + + @Order(4) + @JiraTestCase(id = "PAY-T1765") + @TestCase(name = "(Fce 41 - přesměrování do funkce 31)") + public void func41redirect(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 41 Redirect) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection4() + .KSNFunction41() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.CZK_NAME.getValue()) + .EnterFunction31() + .checkRedirect("31 - Výběr z BÚ v měně účtu") + .backToMainMenu() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 41 Redirect) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section4/KSNFunction42Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section4/KSNFunction42Test.java new file mode 100644 index 0000000..31617ac --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section4/KSNFunction42Test.java @@ -0,0 +1,145 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section4; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCurrencies; +import cz.moneta.test.dsl.kasanova.components.enums.KSNGender; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section2.KSNFunction22Test; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 42) Výběr v jiné měně, HK") +public class KSNFunction42Test { + + private KSNFunction22Test function22test; + private boolean doOpposite; + private static final String PENIZE_NA_CESTE = "Penize na ceste"; + + @Order(1) + @JiraTestCase(id = "PAY-T1329") + @TestCase(name = "(Fce 42 - podlimit)") + public void func42underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit(harness, banker, doOpposite); + } + + public void underLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 42 UnderLimit) ----------------"); + + if (doOpposite == true) { + function22test = new KSNFunction22Test(); + function22test.underLimit(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection4() + .KSNFunction42() + .HK2_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.USD.getValue()) + .EnterFunction42() + .calculateWithdrawAmount(500) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_500_INPUT, "1") + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 42 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1373") + @TestCase(name = "(Fce 42 - mezilimit)") + public void func42middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimit(harness, banker, doOpposite); + } + + public void middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 42 MiddleLimit) ----------------"); + + if (doOpposite == true) { + function22test = new KSNFunction22Test(); + function22test.middleLimit(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection4() + .KSNFunction42() + .HK2_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.USD.getValue()) + .EnterFunction42() + .calculateWithdrawAmount(40000) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "8") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 42 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1374") + @TestCase(name = "(Fce 42 - nadlimit)") + public void func42overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimit(harness, banker, verifyBanker, doOpposite); + } + + public void overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker, boolean doOpposite) { + + harness.log("---------------- START TEST (FUNCTION 42 OverLimit) ----------------"); + + if (doOpposite == true) { + function22test = new KSNFunction22Test(); + function22test.overLimit(harness, banker, verifyBanker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection4() + .KSNFunction42() + .HK2_AccountNameSelect(PENIZE_NA_CESTE) + .Currency(KSNCurrencies.USD.getValue()) + .EnterFunction42() + .calculateWithdrawAmount(500000) + .sex(KSNGender.MAN.getValue()) + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_1.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "100") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, KSNAccounts.UCET_PENIZE_NA_CESTE.getValue(), verifyBanker) + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 42 OverLimit) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section4/KSNFunction43Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section4/KSNFunction43Test.java new file mode 100644 index 0000000..dffb141 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section4/KSNFunction43Test.java @@ -0,0 +1,142 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section4; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCurrencies; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.transactional.payments.cash.kasanova.section2.KSNFunction21Test; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 43) Výběr v jiné měně, BÚ - třetí osoba") +public class KSNFunction43Test { + private KSNFunction21Test function21test; + private boolean doOpposite; + + @Order(1) + @JiraTestCase(id="PAY-T1321") + @TestCase(name = "(Fce 43 - podlimit)") + public void func43underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + if(doOpposite == true) { + function21test = new KSNFunction21Test(); + function21test.underLimitWithDispo(harness, banker, false); + } + + harness.log("---------------- START TEST (FUNCTION 43 UnderLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection4() + .KSNFunction43() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction43() + .withdrawAmount("500") + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 43 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1354") + @TestCase(name = "(Fce 43 - mezilimit)") + public void func43middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + if(doOpposite == true) { + function21test = new KSNFunction21Test(); + function21test.middleLimitWithDispo(harness, banker, false); + } + + harness.log("---------------- START TEST (FUNCTION 43 MiddleLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection4() + .KSNFunction43() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction43() + .withdrawAmount("2000") + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 43 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1355") + @TestCase(name = "(Fce 43 - nadlimit)") + public void func43overLimit(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + + if(doOpposite == true) { + function21test = new KSNFunction21Test(); + function21test.overLimitWithDispo(harness, banker, verifyBanker, false); + } + + harness.log("---------------- START TEST (FUNCTION 43 OverLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection4() + .KSNFunction43() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.EUR_NAME.getValue()) + .EnterFunction43() + .withdrawAmount("20000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_10.getValue()) + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, "20000", KSNAccounts.CZK_206971718.getValue(), verifyBanker) + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 43 OverLimit) ----------------"); + } + + @Order(4) + @JiraTestCase(id = "PAY-T1766") + @TestCase(name = "(Fce 43 - přesměrování do funkce 36)") + public void func43redirect(Harness harness, @Key(kasanova.banker) Credentials banker) { + + harness.log("---------------- START TEST (FUNCTION 43 Redirect) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection4() + .KSNFunction43() + .CA_AccountNumber(KSNAccounts.CZK_206971718.getValue()) + .Currency(KSNCurrencies.CZK_NAME.getValue()) + .EnterFunction36() + .checkRedirect("36 - Výběr z běžného účtu v měně účtu třetí osob") + .backToMainMenu() + .logOut(); + harness.log("---------------- END TEST (FUNCTION 43 Redirect) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section5/KSNFunction51Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section5/KSNFunction51Test.java new file mode 100644 index 0000000..9b7c68f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section5/KSNFunction51Test.java @@ -0,0 +1,123 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section5; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 51) Zrušení účtu - BÚ") +public class KSNFunction51Test { + + @Order(1) + @JiraTestCase(id = "PAY-T1757") + @TestCase(name = "(Fce 51 - 3.osoba - podlimit)") + public void func51underLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 51 UnderLimitNoDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection5() + .KSNFunction51() + .MA_AccountNumber(KSNAccounts.CZK_214419499.getValue()) + .enterFunction51() + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), "15834", KSNAccounts.CZK_214419499.getValue(), + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + harness.log("---------------- END TEST (FUNCTION 51 UnderLimitNoDispo) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1758") + @TestCase(name = "(Fce 51 - 3.osoba - nadlimit)") + public void func51overLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 51 OverLimitNoDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection5() + .KSNFunction51() + .MA_AccountNumber(KSNAccounts.CZK_206973713.getValue()) + .enterFunction51() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_4.getValue()) + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, "4992529", KSNAccounts.CZK_206973713.getValue(), verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), "4992529", KSNAccounts.CZK_206973713.getValue(), + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + harness.log("---------------- END TEST (FUNCTION 51 OverLimitNoDispo) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1759") + @TestCase(name = "(Fce 51 - oprávněná osoba - podlimit)") + public void func51underLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 51 UnderLimitWithDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection5() + .KSNFunction51() + .MA_AccountNumber(KSNAccounts.CZK_214419499.getValue()) + .enterFunction51() + .authPerson1() + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), "15834", KSNAccounts.CZK_214419499.getValue(), + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + harness.log("---------------- END TEST (FUNCTION 51 UnderLimitWithDispo) ----------------"); + } + + @Order(4) + @JiraTestCase(id = "PAY-T1760") + @TestCase(name = "(Fce 51 - oprávněná osoba - nadlimit)") + public void func51overLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 51 OverLimitWithDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection5() + .KSNFunction51() + .MA_AccountNumber(KSNAccounts.CZK_206973713.getValue()) + .enterFunction51() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_3.getValue()) + .authPerson3() + .fillIdentificationAndSymbolsMini() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, "4992529", KSNAccounts.CZK_206973713.getValue(), verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), "4992529", KSNAccounts.CZK_206973713.getValue(), + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + harness.log("---------------- END TEST (FUNCTION 51 OverLimitWithDispo) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section5/KSNFunction53Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section5/KSNFunction53Test.java new file mode 100644 index 0000000..50018ec --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section5/KSNFunction53Test.java @@ -0,0 +1,129 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section5; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNAccounts; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.kasanova.components.enums.KSNPersons; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +import static cz.moneta.test.dsl.util.credentials.Keys.kasanova; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 53) Zrušení účtu - TV)") +public class KSNFunction53Test { + + private final String accountBalance = "286045"; + private final String TV_CZK_202990663 = "202990663"; + + @Order(1) + @JiraTestCase(id="PAY-T1755") + @TestCase(name = "(Fce 53 - 3.osoba - mezilimit)") + public void middleLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 53 MiddleLimitNoDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection5() + .KSNFunction53() + .MA_AccountNumber(TV_CZK_202990663) + .EnterFunction53() + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), accountBalance, TV_CZK_202990663, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),1) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 53 MiddleLimitNoDispo) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1756") + @TestCase(name = "(Fce 53 - oprávněná osoba - mezilimit)") + public void middleLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + harness.log("---------------- START TEST (FUNCTION 53 MiddleLimitWithDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection5() + .KSNFunction53() + .MA_AccountNumber(TV_CZK_202990663) + .EnterFunction53() + .authPerson(KSNPersons.DRAHOSLAV_VRZAL.getValue()) + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), accountBalance, TV_CZK_202990663, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),1) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 53 MiddleLimitWithDispo) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1750") + @TestCase(name = "(Fce 53 - 3.osoba - nadilimit)") + public void overLimitNoDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + harness.log("---------------- START TEST (FUNCTION 53 OverLimitNoDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection5() + .KSNFunction53() + .MA_AccountNumber(KSNAccounts.TV_CZK_214564530.getValue()) + .EnterFunction53() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_2.getValue()) + .fillIdentificationAndSymbolsLong() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, "510003,57", KSNAccounts.TV_CZK_214564530.getValue(), verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), "510004", KSNAccounts.TV_CZK_214564530.getValue(), + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),1) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 53 OverLimitNoDispo) ----------------"); + } + + @Order(4) + @JiraTestCase(id="PAY-T1754") + @TestCase(name = "(Fce 53 - oprávněná osoba - nadilimit)") + public void overLimitWithDispo(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + harness.log("---------------- START TEST (FUNCTION 53 OverLimitWithDispo) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection5() + .KSNFunction53() + .MA_AccountNumber(KSNAccounts.TV_CZK_214564530.getValue()) + .EnterFunction53() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_2.getValue()) + .authPerson(KSNPersons.VACLAV_KSNTESTY.getValue()) + .fillIdentificationAndSymbolsShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, "510003,57", KSNAccounts.TV_CZK_214564530.getValue(), verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), "510004", KSNAccounts.TV_CZK_214564530.getValue(), + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),1) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 53 OverLimitWithDispo) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section6/KSNFunction61Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section6/KSNFunction61Test.java new file mode 100644 index 0000000..1998635 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section6/KSNFunction61Test.java @@ -0,0 +1,129 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section6; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.Order; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 61) Směnárna, Nákup valut bankou") +public class KSNFunction61Test { + + KSNFunction62Test function62test; + private boolean doOpposite; + + @Order(1) + @JiraTestCase(id = "PAY-T1692") + @TestCase(name = "(Fce 61 - podlimit)") + public void func61underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit(harness, banker, doOpposite); + } + public void underLimit(Harness harness, Credentials banker, boolean doOpposite) { + harness.log("---------------- START TEST (FUNCTION 61 UnderLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection6() + .KSNFunction61() + .enterFunction61() + .smenaAmount("5") + .coinSplitTable(KSNCoinSplits.SMENA_COINSPLIT_USD_5_INPUT, "1") + .fillIdentificationAndSymbolsSmenaShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite) { + function62test = new KSNFunction62Test(); + function62test.underLimit(harness, banker, false); + } + harness.log("---------------- END TEST (FUNCTION 61 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1693") + @TestCase(name = "(Fce 61 - mezilimit)") + public void func61middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimit(harness, banker, doOpposite); + } + public void middleLimit(Harness harness, Credentials banker, boolean doOpposite) { + harness.log("---------------- START TEST (FUNCTION 61 MiddleLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection6() + .KSNFunction61() + .enterFunction61() + .smenaAmount("1600") + .kasanovaDialogClickOK() + .coinSplitTable(KSNCoinSplits.SMENA_COINSPLIT_USD_100_INPUT, "16") + .fillIdentificationAndSymbolsSmenaLong() + .clickPrintInfo() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite) { + function62test = new KSNFunction62Test(); + function62test.middleLimit(harness, banker, false); + } + harness.log("---------------- END TEST (FUNCTION 61 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1694") + @TestCase(name = "(Fce 61 - nadlimit)") + public void func61overLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimit(harness, banker, doOpposite); + } + public void overLimit(Harness harness, Credentials banker, boolean doOpposite) { + harness.log("---------------- START TEST (FUNCTION 61 OverLimit) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection6() + .KSNFunction61() + .enterFunction61() + .smenaAmount("18000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_2.getValue()) + .originePurpose2(KSNOriginDeposit.PUVOD_VKLADU_3.getValue()) + .coinSplitTable(KSNCoinSplits.SMENA_COINSPLIT_USD_100_INPUT, "180") + .fillIdentificationAndSymbolsSmenaLong() + .clickPrintInfo() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + if (doOpposite) { + function62test = new KSNFunction62Test(); + function62test.overLimit(harness, banker, false); + } + harness.log("---------------- END TEST (FUNCTION 61 OverLimit) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section6/KSNFunction62Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section6/KSNFunction62Test.java new file mode 100644 index 0000000..a10b75d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section6/KSNFunction62Test.java @@ -0,0 +1,134 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section6; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.Order; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 62) Směnárna, Prodej valut bankou") +public class KSNFunction62Test { + + KSNFunction61Test function61test; + private boolean doOpposite; + + @Order(1) + @JiraTestCase(id = "PAY-T1695") + @TestCase(name = "(Fce 62 - podlimit)") + public void func62underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit(harness, banker, doOpposite); + } + public void underLimit(Harness harness, Credentials banker, boolean doOpposite) { + harness.log("---------------- START TEST (FUNCTION 62 UnderLimit) ----------------"); + + if (doOpposite) { + function61test = new KSNFunction61Test(); + function61test.underLimit(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection6() + .KSNFunction62() + .enterFunction62() + .vyplataAmount("5") + .fillCoinsplitTable() + .fillIdentificationAndSymbolsSmenaShort() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 62 UnderLimit) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1696") + @TestCase(name = "(Fce 62 - mezilimit)") + public void func62middleLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + middleLimit(harness, banker, doOpposite); + } + public void middleLimit(Harness harness, Credentials banker, boolean doOpposite) { + harness.log("---------------- START TEST (FUNCTION 62 MiddleLimit) ----------------"); + + if (doOpposite) { + function61test = new KSNFunction61Test(); + function61test.middleLimit(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection6() + .KSNFunction62() + .enterFunction62() + .vyplataAmount("1600") + .kasanovaDialogClickOK() + .fillCoinsplitTable() + .fillIdentificationAndSymbolsSmenaLong() + .clickPrintInfo() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 62 MiddleLimit) ----------------"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T1697") + @TestCase(name = "(Fce 62 - nadlimit)") + public void func62overLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + overLimit(harness, banker, doOpposite); + } + public void overLimit(Harness harness, Credentials banker, boolean doOpposite) { + harness.log("---------------- START TEST (FUNCTION 62 OverLimit) ----------------"); + + if (doOpposite) { + function61test = new KSNFunction61Test(); + function61test.overLimit(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection6() + .KSNFunction62() + .enterFunction62() + .vyplataAmount("18000") + .kasanovaDialogClickOK() + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_7.getValue()) + .originePurpose2(KSNOriginDeposit.PUVOD_VKLADU_10.getValue()) + .fillCoinsplitTable() + .fillIdentificationAndSymbolsSmenaLong() + .clickPrintInfo() + .kasanovaDialogClickOK() + .dismissPrintWindow() + .kasanovaDialogClickOK() + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 62 OverLimit) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction71Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction71Test.java new file mode 100644 index 0000000..380287f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction71Test.java @@ -0,0 +1,110 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section7; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 71) Bezhotovostní převod") +public class KSNFunction71Test { + + private final String debetAmount = "1000"; + private final String BU_CZK_206971718 = "206971718"; + private final String BU_CZK_16916363 = "16916363"; + private final String HK_CZK_1191000 = "1191000"; + + @Order(1) + @JiraTestCase(id="PAY-T1784") + @TestCase(name = "(Fce 71 - fromBUtoBU)") + public void func71fromBUtoBU(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 71 fromBUtoBU) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction71() + .debet_AccountNumber(BU_CZK_206971718) + .credit_AccountNumber(BU_CZK_16916363) + .EnterFunction71() + .debetAmount(debetAmount) + .authPerson4() + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, BU_CZK_206971718, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, BU_CZK_206971718, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 71 fromBUtoBU) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1785") + @TestCase(name = "(Fce 71 - fromHKtoBU)") + public void func71fromHKtoBU(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 71 fromHKtoBU) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction71() + .debet_AccountNumber(HK_CZK_1191000) + .clickDebetHlKnihaCheckbox() + .credit_AccountNumber(BU_CZK_16916363) + .EnterFunction71() + .debetAmount(debetAmount) + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, HK_CZK_1191000, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, HK_CZK_1191000, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 71 fromHKtoBU) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1786") + @TestCase(name = "(Fce 71 - fromBUtoHK)") + public void func71fromBUtoHK(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 71 fromBUtoHK) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction71() + .debet_AccountNumber(BU_CZK_206971718) + .clickKreditHlKnihaCheckbox() + .credit_AccountNumber(HK_CZK_1191000) + .EnterFunction71() + .debetAmount(debetAmount) + .authPerson4() + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, BU_CZK_206971718, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, BU_CZK_206971718, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 71 fromBUtoHK) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction72Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction72Test.java new file mode 100644 index 0000000..01f062d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction72Test.java @@ -0,0 +1,110 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section7; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 72) Storno bezhotovostních operací") +public class KSNFunction72Test { + + private final String debetAmount = "1000"; + private final String BU_CZK_206971718 = "206971718"; + private final String BU_CZK_16916363 = "16916363"; + private final String HK_CZK_1191000 = "1191000"; + + @Order(1) + @JiraTestCase(id="PAY-T1798") + @TestCase(name = "(Fce 72 - fromBUtoBU)") + public void func72fromBUtoBU(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 72 fromBUtoBU) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction72() + .debet_AccountNumber(BU_CZK_206971718) + .credit_AccountNumber(BU_CZK_16916363) + .EnterFunction72() + .debetAmount2(debetAmount) + .authPerson4() + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, BU_CZK_206971718, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, BU_CZK_206971718, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 72 fromBUtoBU) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1799") + @TestCase(name = "(Fce 72 - fromHKtoBU)") + public void func72fromHKtoBU(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 72 fromHKtoBU) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction72() + .debet_AccountNumber(HK_CZK_1191000) + .clickDebetHlKnihaCheckbox() + .credit_AccountNumber(BU_CZK_16916363) + .EnterFunction72() + .debetAmount2(debetAmount) + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, HK_CZK_1191000, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, HK_CZK_1191000, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 72 fromHKtoBU) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1800") + @TestCase(name = "(Fce 72 - fromBUtoHK)") + public void func72fromBUtoHK(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 72 fromBUtoHK) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction72() + .debet_AccountNumber(BU_CZK_206971718) + .clickKreditHlKnihaCheckbox() + .credit_AccountNumber(HK_CZK_1191000) + .EnterFunction72() + .debetAmount2(debetAmount) + .authPerson4() + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, BU_CZK_206971718, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, BU_CZK_206971718, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 72 fromBUtoHK) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction74Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction74Test.java new file mode 100644 index 0000000..ea5b268 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction74Test.java @@ -0,0 +1,109 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section7; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 74) Převod bez klienta") +public class KSNFunction74Test { + + private final String debetAmount = "1000"; + private final String BU_CZK_206971718 = "206971718"; + private final String BU_CZK_16916363 = "16916363"; + private final String HK_CZK_1191000 = "1191000"; + + @Order(1) + @JiraTestCase(id="PAY-T1806") + @TestCase(name = "(Fce 74 - fromBUtoBU)") + public void func74fromBUtoBU(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 74 fromBUtoBU) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction74() + .debet_AccountNumber(BU_CZK_206971718) + .credit_AccountNumber(BU_CZK_16916363) + .EnterFunction74() + .debetAmount(debetAmount) + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, BU_CZK_206971718, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, BU_CZK_206971718, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 74 fromBUtoBU) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1807") + @TestCase(name = "(Fce 74 - fromHKtoBU)") + public void func74fromHKtoBU(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 74 fromHKtoBU) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction74() + .debet_AccountNumber(HK_CZK_1191000) + .clickDebetHlKnihaCheckbox() + .credit_AccountNumber(BU_CZK_16916363) + .EnterFunction74() + .debetAmount(debetAmount) + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, HK_CZK_1191000, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, HK_CZK_1191000, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 74 fromHKtoBU) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1808") + @TestCase(name = "(Fce 74 - fromBUtoHK)") + public void func74fromBUtoHK(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 74 fromBUtoHK) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction74() + .debet_AccountNumber(BU_CZK_206971718) + .clickKreditHlKnihaCheckbox() + .credit_AccountNumber(HK_CZK_1191000) + .EnterFunction74() + .debetAmount(debetAmount) + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, BU_CZK_206971718, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, BU_CZK_206971718, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 74 fromBUtoHK) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction75Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction75Test.java new file mode 100644 index 0000000..8afa14a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section7/KSNFunction75Test.java @@ -0,0 +1,109 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section7; + +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 75) Storno bezhotovostních operací bez klienta") +public class KSNFunction75Test { + + private final String debetAmount = "1000"; + private final String BU_CZK_206971718 = "206971718"; + private final String BU_CZK_16916363 = "16916363"; + private final String HK_CZK_1191000 = "1191000"; + + @Order(1) + @JiraTestCase(id="PAY-T1801") + @TestCase(name = "(Fce 75 - fromBUtoBU)") + public void func75fromBUtoBU(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 75 fromBUtoBU) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction75() + .debet_AccountNumber(BU_CZK_206971718) + .credit_AccountNumber(BU_CZK_16916363) + .EnterFunction75() + .debetAmount2(debetAmount) + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, BU_CZK_206971718, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, BU_CZK_206971718, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 75 fromBUtoBU) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1802") + @TestCase(name = "(Fce 75 - fromHKtoBU)") + public void func75fromHKtoBU(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 75 fromHKtoBU) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction75() + .debet_AccountNumber(HK_CZK_1191000) + .clickDebetHlKnihaCheckbox() + .credit_AccountNumber(BU_CZK_16916363) + .EnterFunction75() + .debetAmount2(debetAmount) + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, HK_CZK_1191000, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, HK_CZK_1191000, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 75 fromHKtoBU) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1803") + @TestCase(name = "(Fce 75 - fromBUtoHK)") + public void func75fromBUtoHK(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 75 fromBUtoHK) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection7() + .KSNFunction75() + .debet_AccountNumber(BU_CZK_206971718) + .clickKreditHlKnihaCheckbox() + .credit_AccountNumber(HK_CZK_1191000) + .EnterFunction75() + .debetAmount2(debetAmount) + .fillSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .doVerification(harness, debetAmount, BU_CZK_206971718, verifyBanker) + .checkFunctionIsDone() + .doStorno(harness.withKasanova().isStornoOn(), debetAmount, BU_CZK_206971718, + harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword(),0) + .logOut(); + + harness.log("---------------- END TEST (FUNCTION 75 fromBUtoHK) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section8/KSNFunction81Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section8/KSNFunction81Test.java new file mode 100644 index 0000000..2922425 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section8/KSNFunction81Test.java @@ -0,0 +1,54 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section8; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCurrencies; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 81) Odvod pokladny") +public class KSNFunction81Test { + private KSNFunction83Test function83test; + private boolean doOpposite; + + @Order(1) + @JiraTestCase(id="PAY-T1705") + @TestCase(name = "(Fce 81)") + public void func81underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit(harness, banker, doOpposite); + } + + public void underLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + harness.log("---------------- (FUNCTION 81) ----------------"); + + if(doOpposite == true) { + function83test = new KSNFunction83Test(); + function83test.underLimit(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection8() + .KSNFunction81() + .CurrencyTillTrans(KSNCurrencies.CZK_NAME.getValue()) + .EnterFunction81() + .fillAmount("500") + .fillConstantAndSpecificSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- (FUNCTION 81) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section8/KSNFunction83Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section8/KSNFunction83Test.java new file mode 100644 index 0000000..d802a06 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section8/KSNFunction83Test.java @@ -0,0 +1,76 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section8; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCurrencies; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 83) Dotace pokladny") +public class KSNFunction83Test { + private KSNFunction81Test function81test; + private boolean doOpposite; + + @Order(1) + @JiraTestCase(id="PAY-T1707") + @TestCase(name = "(Fce 83)") + public void func83underLimit(Harness harness, @Key(kasanova.banker) Credentials banker) { + doOpposite = Boolean.parseBoolean(harness.getConfig("kasanova-config.doOpposite")); + underLimit(harness, banker, doOpposite); + } + + public void underLimit(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + harness.log("---------------- (FUNCTION 83) ----------------"); + + if(doOpposite == true) { + function81test = new KSNFunction81Test(); + function81test.underLimit(harness, banker, false); + } + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection8() + .KSNFunction83() + .CurrencyTillTrans(KSNCurrencies.CZK_NAME.getValue()) + .EnterFunction83() + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_500_INPUT, "1") + .fillConstantAndSpecificSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- (FUNCTION 83) ----------------"); + } + + public void forFunc86(Harness harness, @Key(kasanova.banker) Credentials banker, boolean doOpposite) { + harness.log("---------------- (FUNCTION 83) ----------------"); + + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection8() + .KSNFunction83() + .CurrencyTillTrans(KSNCurrencies.CZK_NAME.getValue()) + .EnterFunction83() + .coinSplitTable(KSNCoinSplits.COINSPLIT_CZK_5000_INPUT, "1") + .fillConstantAndSpecificSymbols() + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- (FUNCTION 83) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section8/KSNFunction86Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section8/KSNFunction86Test.java new file mode 100644 index 0000000..56c8071 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanova/section8/KSNFunction86Test.java @@ -0,0 +1,96 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanova.section8; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.kasanova.components.enums.KSNCoinSplits; +import cz.moneta.test.dsl.kasanova.components.enums.KSNGender; +import cz.moneta.test.dsl.kasanova.components.enums.KSNOriginDeposit; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 86) Výměna hotovosti") +public class KSNFunction86Test { + + @Order(1) + @JiraTestCase(id="PAY-T1720") + @TestCase(name = "(Fce 86)") + public void func86incompleteBanknotes(Harness harness, @Key(kasanova.banker) Credentials banker) { + harness.log("---------------- (FUNCTION 86) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection8() + .KSNFunction86() + .coinSplitTable(KSNCoinSplits.COINSPLIT_DELIVERED_CZK_10_INPUT, "500") + .coinSplitTable(KSNCoinSplits.COINSPLIT_REQUESTED_CZK_10_INPUT, "500") + .fillIdentificationMini() + .sex(KSNGender.getRandomGenderValue()) + .selectFee("Necelé bankovky") + .continueWithPrintAction() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- (FUNCTION 86) ----------------"); + } + + @Order(2) + @JiraTestCase(id="PAY-T1721") + @TestCase(name = "(Fce 86)") + public void func86unsortedCash(Harness harness, @Key(kasanova.banker) Credentials banker) { + harness.log("---------------- (FUNCTION 86) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection8() + .KSNFunction86() + .coinSplitTable(KSNCoinSplits.COINSPLIT_DELIVERED_CZK_5000_INPUT, "10") + .coinSplitTable(KSNCoinSplits.COINSPLIT_REQUESTED_CZK_5000_INPUT, "10") + .fillIdentificationShort() + .sex(KSNGender.getRandomGenderValue()) + .selectFee("10.00% Neroztříděná hotovost") + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- (FUNCTION 86) ----------------"); + } + + @Order(3) + @JiraTestCase(id="PAY-T1722") + @TestCase(name = "(Fce 86)") + public void func86cashExchange(Harness harness, @Key(kasanova.banker) Credentials banker) { + harness.log("---------------- (FUNCTION 86) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection8() + .KSNFunction86() + .coinSplitTable(KSNCoinSplits.COINSPLIT_DELIVERED_CZK_5000_INPUT, "100") + .sex(KSNGender.getRandomGenderValue()) + .dismissMultiAlerts(3) + .originePurpose(KSNOriginDeposit.PUVOD_VKLADU_1.getValue()) + .coinSplitTable(KSNCoinSplits.COINSPLIT_REQUESTED_CZK_5000_INPUT, "100") + .fillIdentificationLong() + .selectFee("Výměna hotovosti") + .continueWithPrintAction() + .kasanovaDialogClickYes() + .dismissPrintWindow() + .continueWithSaveAction() + .checkFunctionIsDone() + .logOut(); + + harness.log("---------------- (FUNCTION 86) ----------------"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanovaLastTest/KSNFunction88Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanovaLastTest/KSNFunction88Test.java new file mode 100644 index 0000000..095d88c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cash/kasanovaLastTest/KSNFunction88Test.java @@ -0,0 +1,75 @@ +package cz.moneta.test.regression.transactional.payments.cash.kasanovaLastTest; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys.kasanova; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; + +/** + * Process: + * 1) Function 88 - Uzaverka + * 2) Function 93 - Permanent Logout + * 3) Login + * 4) Function 95 - get Till Summary + * 5) Function 91 - Start Day + * 6) Logout + */ +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@NonConcurrentTestScenario(name = "(Fce 88 + Fce 91) Uzávěrka + Start Dne") +public class KSNFunction88Test { + + @Order(1) + @JiraTestCase(id = "PAY-T1788") + @TestCase(name = "(Fce 88 - Uzávěrka)") + public void func88uzaverka(Harness harness, @Key(kasanova.banker) Credentials banker, @Key(kasanova.verifyBanker) Credentials verifyBanker) { + + harness.log("---------------- START TEST (FUNCTION 88 Uzaverka) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection8() + .KSNFunction88() + .checkCurrencyAndGoNext("CZK") + .checkCurrencyAndGoNext("USD") + .checkCurrencyAndGoNext("EUR") + .clickCashBalance() + .checkCurrencyAndGoNext("CZK") + .checkCurrencyAndGoNext("USD") + .checkCurrencyAndGoNext("EUR") + .fillVerification(harness.getConfig("kasanova-config.verify-banker.uid"), verifyBanker.getUsername(), verifyBanker.getPassword()) + .clickNext() + .kasaDialogClickOK(15) + .kasaDialogClickOK(15) + .verificationInfoDialogClose() + .KSNSection9() + .KSNFunction93(); + harness.log("---------------- END TEST (FUNCTION 88 Uzaverka) ----------------"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T1797") + @TestCase(name = "(Fce 91 - Start Dne)") + public void func91startDay(Harness harness, @Key(kasanova.banker) Credentials banker) { + harness.log("---------------- START TEST (FUNCTION 91 StartDay) ----------------"); + harness.withKasanova() + .openLoginPage() + .then(harness.tasks().kasanova().loginWithUserAndPassword(banker)) + .KSNSection9() + .KSNFunction95() + .fillTillId("7043") + .enterFunction95() + .switchToDefaultFrame() + .switchToMainFrame() + .checkRedirect("95 - Celkový sumář pokladny") + .executeStartDay("7043") + .logOut(); + harness.log("---------------- END TEST (FUNCTION 91 StartDay) ----------------"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/cache24/AvailableBalances.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/cache24/AvailableBalances.java new file mode 100644 index 0000000..53fb40b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/cache24/AvailableBalances.java @@ -0,0 +1,216 @@ +package cz.moneta.test.regression.transactional.payments.cashless.cache24; + +import com.google.gson.JsonObject; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.mainpage.AccountsPage; +import cz.moneta.test.dsl.newib.mainpage.DashboardPage; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +import static cz.moneta.test.dsl.ib.account.current.CurrentAccountPage.AVAILABLE_BALANCE_VALUE_KEY; +import static cz.moneta.test.dsl.payment_engine.PaymentEngineDetailAccountPage.DISPO_BALANCE_VALUE_KEY; + +@TestScenarioWithOrder(name = "Test accounting for instant payments in IB - ICBS - PaymentEnginee online") +public class AvailableBalances { + + private double dispositionBalanceApi; + private double dispositionBalance; + private double payment; + private double expectedAvailableBalance; + private String accountNumberClient; + private String creditorAccountNumber; + + private double parseValueFromStoreElementContentIb(Harness harness, String keyStoreElementContentIb) { + String parsedAvailableBalance = harness.get(keyStoreElementContentIb) + .toString() + .replaceAll("\\s", "") + .replaceAll("CZK", "") + .replace(",", "."); + return Double.valueOf(parsedAvailableBalance); + } + + private double parseValueGlobalStorePaymentEngine(Harness harness, String keyGlobalStorePaymentEngine) { + String parsedAvailableBalance = harness.get(keyGlobalStorePaymentEngine) + .toString() + .replaceAll("\\.", "") + .replace(",", "."); + return Double.valueOf(parsedAvailableBalance); + } + + private double calculateExpectedAvailableBalance(double dispositionBalance, double payment) { + double expectedBalanceValue = dispositionBalance - payment; + //Double.toString() The best way to create a BigDecimal object with an initial decimal value is via a string because solve problem to precision decimal numbers + BigDecimal decimal = new BigDecimal(Double.toString(expectedBalanceValue)); + return decimal.setScale(2, RoundingMode.HALF_UP).doubleValue(); + } + + //Get available balance with WSO2 API - frontend-account-controller + @BeforeAll + void getAvailableBalanceWso2Api(Harness harness) { + String tokenCbl = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + accountNumberClient = harness.getConfig("payments_cashless.availableBalances.accounts").split(",")[0]; + creditorAccountNumber = harness.getConfig("payments_cashless.availableBalances.accounts").split(",")[1]; + + dispositionBalanceApi = harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/frontend-account-controller/v1/frontend/account/balance/" + accountNumberClient) + .withHeader("Authorization", tokenCbl) + .get() + .andAssertStatus(200) + .extract("dispositionBalance") + .get("amount") + .doubleValue(); + + harness.log("Disposition balance value from WSO2 API is " + dispositionBalanceApi); + + double generatedNumber = ThreadLocalRandom.current().nextDouble(1.00, 5.00); + BigDecimal decimal = new BigDecimal(Double.toString(generatedNumber)); + payment = decimal.setScale(2, RoundingMode.HALF_UP).doubleValue(); + harness.log("Generated payment is " + payment); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1657") + @Order(1) + @TestCase(name = "Check disposition balance in IB", environments = {Environment.TST1, Environment.PPE}) + void checkIbAvailable(Harness harness) { + String clientBirthNum = harness.getConfig("payments_cashless.availableBalances.rc").split(",")[0]; + + Credentials ibCredentials = harness.withUdebs() + .ib() + .usernameAndPassword() + .getUsernameAndPasswordByRc(clientBirthNum); + + harness.withNewIb() + .openLoginPage() + .closeCookiesPanelIfVisible() + .clickLoginWithIdAndPassword() + .typeUsername(ibCredentials.getUsername()) + .clickContinue() + .typePassword(ibCredentials.getPassword()) + .clickToLogin() + .onAuthMobileKeyPage() + .typeSmsKey("12341234") + .clickSend() + .onDashboardPage() + .getAvailableBalance(); + + dispositionBalance = parseValueFromStoreElementContentIb(harness, AVAILABLE_BALANCE_VALUE_KEY); + harness.log("Disposition balance after logging to IB is " + dispositionBalance); + Assertions.assertEquals(dispositionBalanceApi, dispositionBalance, 0, "Disposition balance is not same in API and IB"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1663") + @Order(2) + @TestCase(name = "Check new disposition balance (after payment) in IB", environments = {Environment.TST1, Environment.PPE}) + void checkIbAvailableBalanceAfterPayment(Harness harness) throws InterruptedException { + sendInstantPayment(harness); + expectedAvailableBalance = calculateExpectedAvailableBalance(dispositionBalanceApi, payment); + harness.log("Expected disposition balance is " + expectedAvailableBalance); + String clientBirthNum = harness.getConfig("payments_cashless.availableBalances.rc").split(",")[0]; + String transactionIb = "-" + String.format("%.2f", payment).replace(".", ","); + transactionIb = transactionIb.length() == 4 ? transactionIb + "0" : transactionIb; + + Credentials ibCredentials = harness.withUdebs() + .ib() + .usernameAndPassword() + .getUsernameAndPasswordByRc(clientBirthNum); + + DashboardPage dashboardPage = harness.withNewIb() + .openLoginPage() + .then(harness.tasks().newIb().loginWithUsernamePasswordAndDefaultMobKey(ibCredentials.getUsername(), ibCredentials.getPassword())) + .getAvailableBalance(); + + double newDispositionBalanceIb = parseValueFromStoreElementContentIb(harness, AVAILABLE_BALANCE_VALUE_KEY); + harness.log("New IB disposition balance after payment is " + newDispositionBalanceIb); + Assertions.assertEquals(expectedAvailableBalance, newDispositionBalanceIb, 0, "The disposition balance does not equal the expected one after the payment in IB"); + + + AccountsPage accountsTabs = dashboardPage.goToAccounts() + .getAvailableBalance(); + + newDispositionBalanceIb = parseValueFromStoreElementContentIb(harness, AVAILABLE_BALANCE_VALUE_KEY); + harness.log("New IB disposition balance after payment is " + newDispositionBalanceIb); + Assertions.assertEquals(expectedAvailableBalance, newDispositionBalanceIb, 0, "The disposition balance does not equal the expected one after the payment in IB"); + + accountsTabs + .clickAdvancedSearch() + .fillDateFrom(TestUtils.getTodayDate()) + .clickFilterTransactions() + .checkPaymentValue(transactionIb); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1660") + @Order(3) + @TestCase(name = "Check new disposition balance in PaE", environments = {Environment.TST1, Environment.PPE}) + void checkDispositionInPymentEngineAfterPayment(Harness harness, @Key("payment.engine") Credentials credentials) { + harness.withPaymentEngine() + .openLoginPage() + .login(credentials.getUsername(), credentials.getPassword()) + .clickOkButton() + .clickOnCache24_7() + .clickOnAccountAndReservation() + .typeInternalAccountNumberAndClickApply(accountNumberClient) + .clickOnAccountDetail() + .getDispoBalance(); + + double newDispoBalancePaymentEngine = parseValueGlobalStorePaymentEngine(harness, DISPO_BALANCE_VALUE_KEY); + harness.log("New dispo balance in PaymentEngine " + newDispoBalancePaymentEngine); + Assertions.assertEquals(expectedAvailableBalance, newDispoBalancePaymentEngine, 0, "The disposition balance does not equal the expected one after the payment in UFO"); + } + + + private String createRequestForTransaction(String debtorAccountId, String creditorAccountId, Double amount) { + JsonObject json = new JsonObject(); + Random ran = new Random(); + json.addProperty("instructionId", ran.nextInt()); + json.addProperty("debetorAccountId", debtorAccountId); + json.addProperty("creditorAccountId", creditorAccountId); + json.addProperty("creditorBankNumber", "0600"); + json.addProperty("amount", amount); + json.addProperty("constantSymbol", "12"); + json.addProperty("specificSymbol", "34"); + json.addProperty("variableSymbol", "56"); + json.addProperty("AVMessage", "Automated test"); + json.addProperty("channelId", "IB"); + json.addProperty("userId", "GEMTEST"); + return json.toString(); + } + + void sendInstantPayment(Harness harness) throws InterruptedException { + String TOKEN = harness.tasks().wso2().authorization().getToken("ATM"); + String request = createRequestForTransaction(accountNumberClient, creditorAccountNumber, payment); + harness.log("Instant payment amount: " + payment); + + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/CRT_INST_PAYM/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload(request) + .post() + .andAssertStatus(201) + .andAssertFieldValue("rejectionReason", ""); + + TimeUnit.SECONDS.sleep(5L); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/cashman/CreateNewOrderTests.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/cashman/CreateNewOrderTests.java new file mode 100644 index 0000000..b3b34b9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/cashman/CreateNewOrderTests.java @@ -0,0 +1,64 @@ +package cz.moneta.test.regression.transactional.payments.cashless.cashman; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cashman.tasks.CashmanTasks; +import cz.moneta.test.dsl.cashman.utils.CashmanUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.cashman.enums.CashmanOrderStatus.APPROVED; +import static cz.moneta.test.dsl.cashman.pages.menu_OM.CashmanOMNewOrderPage.ORDER_ID_KEY; + +@TestScenarioWithOrder(name = "Create New Order") +public class CreateNewOrderTests { + private PaymentData data; + private CashmanTasks tasks; + + @BeforeAll + void setUpTestData() { + data = PaymentData.builder() + .todayDate(DateUtils.getFormattedTodayDate("dd.MM.yyyy")) + .build(); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + data.setBanknotesAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 5))); + data.setCoinsAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 5))); + data.setCoinsAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 5))); + tasks = new CashmanTasks(harness); + } + + @Order(1) + @JiraTestCase(id = "PAY-T4315") + @TestCase(name = "Create New Order And Check In OM And Deposit", environments = {Environment.TST1, Environment.DEV}) + void createNewOrderAndCheckInOMAndDeposit(Harness harness) { + data.setBanknotesSummary(String.valueOf(100 * Integer.valueOf(data.getBanknotesAmount()))); + data.setCoinsSummary(String.valueOf(10 * Integer.valueOf(data.getCoinsAmount()))); + data.setSummary(String.valueOf(Integer.valueOf(data.getBanknotesSummary()) + Integer.valueOf(data.getCoinsSummary()))); + + tasks.loginTasks().openCashmanHomePage(harness) + .then(tasks.createNewOrder(data)) + .then(tasks.checkOrderSummaries(data)) + .then(tasks.submitNewOrder(data)); + harness.withCashman().closeCashman(); + + data.setOrderId(CashmanUtils.getOrderId(harness)); + + tasks.loginTasks().openCashmanHomePage(harness) + .then(tasks.checkOrderPresence(data, APPROVED)) + .then(tasks.checkOrderPresenceInDeposit(data)); + harness.withCashman().closeCashman(); + + harness.store("reports.tmfj.execution.comment", harness.get(ORDER_ID_KEY)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/instant_payment/InstantPaymentValidations.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/instant_payment/InstantPaymentValidations.java new file mode 100644 index 0000000..012daf2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/instant_payment/InstantPaymentValidations.java @@ -0,0 +1,163 @@ +package cz.moneta.test.regression.transactional.payments.cashless.instant_payment; + +import com.google.gson.JsonObject; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +import java.math.BigDecimal; +import java.util.Random; + + +@TestScenario(name = "Test instant payment validations") +public class InstantPaymentValidations { + + String TOKEN_CBL; + String TOKEN_ATM; + + @BeforeAll + void testSetUp(Harness harness) { + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + TOKEN_ATM = harness.tasks().wso2().authorization().getToken("ATM"); + } + + @JiraTestCase(id = "PAY-T1290") + @TestCase(name = "Test transaction duplicity", environments = {Environment.TST1, Environment.PPE}) + void transactionDuplicityValidation(Harness harness) { + String account = harness.getConfig("payments_cashless.instantPaymentValidations.accounts").split(",")[0]; + String creditor = harness.getConfig("payments_cashless.instantPaymentValidations.accounts").split(",")[1]; + String request = createRequestForTransaction(account, creditor, "AD"); + + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/CRT_INST_PAYM/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_ATM) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload(request) + .post() + .andAssertStatus(201) + .andAssertFieldValue("rejectionReason", ""); + + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/CRT_INST_PAYM/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_ATM) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload(request) + .post() + .andAssertStatus(201) + .andAssertFieldValue("rejectionReason", "AM05"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1640") + @TestCase(name = "Test creditor bank outage", environments = {Environment.TST1}) + void limitsCreditorBankOutage(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_INST_PAYM_LIMITS/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_ATM) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload(createRequestForLimits("123", BigDecimal.valueOf(1.99), "2000", "")) + .post() + .andAssertStatus(200) + .andAssertFieldValue("notInstantReason", "BANK_OUTAGE"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1639") + @TestCase(name = "Test amount limit external", environments = {Environment.TST1, Environment.PPE}) + void limitsAmountLimitExternal(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_INST_PAYM_LIMITS/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_ATM) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload(createRequestForLimits("123", BigDecimal.valueOf(500000), "0100", "")) + .post() + .andAssertStatus(200) + .andAssertFieldValue("notInstantReason", "LIMIT_EXCEEDED"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1641") + @TestCase(name = "Test amount limit internal", environments = {Environment.TST1, Environment.PPE}) + void limitsAmountLimitInternal(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_INST_PAYM_LIMITS/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_ATM) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload(createRequestForLimits("123", BigDecimal.valueOf(500000), "0600", "")) + .post() + .andAssertStatus(200) + .andAssertFieldValue("instantPaymentPossible", "true"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1643") + @TestCase(name = "Test account AGB format", environments = {Environment.TST1, Environment.PPE}) + void limitsAGBAccount(Harness harness) { + String[] accountIds = harness.getConfig("payments_cashless.instantPaymentValidations.AGBAccount").split("-"); + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_INST_PAYM_LIMITS/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_ATM) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload(createRequestForLimits(accountIds[1], BigDecimal.valueOf(1000), "0600", accountIds[0])) + .post() + .andAssertStatus(200) + .andAssertFieldValue("instantPaymentPossible", "true"); + } + + private String createRequestForTransaction(String debtorAccountId, String creditorAccountId, String channel) { + JsonObject json = new JsonObject(); + Random ran = new Random(); + json.addProperty("instructionId", ran.nextInt()); + json.addProperty("debetorAccountId", debtorAccountId); + json.addProperty("creditorAccountId", creditorAccountId); + json.addProperty("creditorBankNumber", "0600"); + json.addProperty("amount", 1); + json.addProperty("constantSymbol", "12"); + json.addProperty("specificSymbol", "34"); + json.addProperty("variableSymbol", "56"); + json.addProperty("AVMessage", "Automated test"); + json.addProperty("channelId", channel); + json.addProperty("additionalPaymentTextDB1", "VKLAD ATM MONETA"); + json.addProperty("additionalPaymentTextDB2", "RADEK HRUBY"); + json.addProperty("additionalPaymentTextDB3", "S1DS2079 Křížová 9, Brno"); + json.addProperty("additionalPaymentTextCR1", "VKLAD ATM MONETA"); + json.addProperty("additionalPaymentTextCR2", "RADEK HRUBY"); + json.addProperty("additionalPaymentTextCR3", "S1DS2079 Křížová 9, Brno"); + json.addProperty("userId", "GEMTEST"); + return json.toString(); + } + + private String createRequestForLimits(String creditorAccountId, BigDecimal amount, String creditorBankNumber, String creditorPrefix) { + JsonObject json = new JsonObject(); + Random ran = new Random(); + json.addProperty("messageId", ran.nextInt()); + json.addProperty("debetorAccountId", 193840582); + json.addProperty("creditorBankNumber", creditorBankNumber); + json.addProperty("creditorAccountId", creditorAccountId); + json.addProperty("creditorAccountIdPrefix", creditorPrefix); + json.addProperty("amount", amount); + return json.toString(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/analytical/ReservationsController.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/analytical/ReservationsController.java new file mode 100644 index 0000000..15d6912 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/analytical/ReservationsController.java @@ -0,0 +1,286 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.newib.mainpage.AccountsPage; +import cz.moneta.test.dsl.payment_engine.PaymentEngineReservationPage; +import cz.moneta.test.dsl.payment_engine.enums.PaymentDirection; +import cz.moneta.test.dsl.payment_engine.enums.PaymentType; +import cz.moneta.test.dsl.payment_engine.model.ReservationListSuccessResponse; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_cache24_7.PaymentsEngineCache24SearchAccountsNumber; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import net.bytebuddy.utility.RandomString; +import org.apache.commons.lang3.StringUtils; +import org.junit.jupiter.api.*; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.PaymentEngineReservationPage.LAST_RESERVATION_DATE_KEY; +import static cz.moneta.test.dsl.payment_engine.PaymentEngineReservationPage.SELECTED_RESERVATION_ID_KEY; +import static org.apache.commons.lang3.StringUtils.replace; + + +@TestScenarioWithOrder(name = "Create manual reservation and check reservation in IB") +public class ReservationsController { + private String TOKEN_CBL; + private String TOKEN_PAE; + private PaymentData data; + + @BeforeAll + void testSetUp(Harness harness) { + data = PaymentData.builder() + .accountNumberClient(harness.getConfig("payments_cashless.reservationController.account")) + .clientBirthNum(harness.getConfig("payments_cashless.reservationController.rc")) + .todayDate(DateUtils.getFormattedTodayDate("yyyy-MM-dd")) + .description("Automated test") + .smsCode("12341234") + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + TOKEN_PAE = harness.tasks().wso2().authorization().getToken("PAYMENTS_PAE"); + } + + @BeforeEach + void setUpBeforeEach() { + generateUniqueAmount(); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1646") + @Order(1) + @TestCase(name = "Log into PE and create reservation", environments = {Environment.TST1, Environment.PPE}) + void createManualReservationAndCheckInIB(Harness harness, @Key("payment.engine") Credentials credentials) { + searchAccountNumber(harness, credentials) + .clickOnReservationButton() + .clickCreateOnButton() + .clickOnSelectType() + .selectType(PaymentType.MANUAL) + .clickOnDirection() + .selectDirection(PaymentDirection.DEBET) + .fillManualData(data.getAmount(), data.getDescription(), data.getDescription()) + .clickSubmit() + .getLastReservationDate(); + harness.closeEndpoint(harness.getEndpoint(PaymentEngineEndpoint.class)); + + data.setReservationDate(harness.get(LAST_RESERVATION_DATE_KEY)); + + harness.log("New reservation was created with amount: " + data.getAmount() + " with date: " + data.getReservationDate()); + + logIndIBAndGoToPendingTransactionPage(harness) + .selectAccountNumber(data.getAccountNumberClient() + "/0600") + .searchAmount(data.getAmount1()) + .checkReservationDate(data.getReservationDate()) + .checkReservationAmount("-" + data.getAmount()) + .checkReservationDescription("Ostatní blokace"); + + harness.log("Reservation was found"); + } + + @JiraTestCase(id = "PAY-T1648") + @Order(2) + @TestCase(name = "Update reservation", environments = {Environment.TST1, Environment.PPE}) + void updateManualReservation(Harness harness, @Key("payment.engine") Credentials credentials) { + searchAccountNumber(harness, credentials) + .clickOnReservationButton() + .clickOnFirstManualReservation() + .clickOnEditButton() + .fillManualData( + data.getAmount(), "Update Automated test", + "Update Automated test") + .clickSubmit() + .clickOnFirstManualReservation() + .checkSelectedReservationAmount(data.getAmount()); + + harness.log("Manual reservation amount was successfully changed to " + data.getAmount()); + harness.store("reports.tmfj.execution.comment", "Manual reservation amount was successfully changed to " + data.getAmount() + + "\n" + "Account number: " + data.getAccountNumberClient()); + } + + @JiraTestCase(id = "PAY-T1649") + @Order(3) + @TestCase(name = "Delete reservation", environments = {Environment.TST1, Environment.PPE}) + void deleteManualReservation(Harness harness, @Key("payment.engine") Credentials credentials) { + PaymentEngineReservationPage saveSelectedReservationId = searchAccountNumber(harness, credentials) + .clickOnReservationButton() + .getSelectedReservationId(); + + String reservationToBeDeleted = harness.get(SELECTED_RESERVATION_ID_KEY); + + saveSelectedReservationId + .clickOnDeleteButton() + .clickSubmit() + .getSelectedReservationId(); + + Assertions.assertNotEquals(reservationToBeDeleted, harness.get(SELECTED_RESERVATION_ID_KEY)); + harness.log("Manual reservation " + reservationToBeDeleted + " was successfully deleted."); + harness.store("reports.tmfj.execution.comment", "Manual reservation " + reservationToBeDeleted + " was successfully deleted." + + "\n" + "Account number: " + data.getAccountNumberClient()); + } + + @JiraTestCase(id = "PAY-T1655") + @Order(4) + @TestCase(name = "Create Card Reservation in PAE and check in ICBS", environments = {Environment.TST1, Environment.PPE}) + void createCardReservationInPAEAndCheckInICBS(Harness harness, @Key("payment.engine") Credentials credentials) { + String cardId = "4417123456789113"; + String createDate = DateUtils.getFormattedTodayDateTime("dd.MM.yyyy HH:mm:ss"); + String accountDay = DateUtils.getFormattedTodayDate("dd.MM.yyyy"); + String generatedId = generateId(); + + searchAccountNumber(harness, credentials) + .clickOnReservationButton() + .clickCreateOnButton() + .clickOnSelectType() + .selectType(PaymentType.CARD) + .clickOnDirection() + .selectDirection(PaymentDirection.DEBET) + .fillCardData( + generatedId, data.getAmount(), + createDate, + accountDay, + data.getDescription(), + data.getDescription(), + cardId, + generatedId) + .clickSubmit() + .getLastReservationDate(); + harness.closeEndpoint(harness.getEndpoint(PaymentEngineEndpoint.class)); + + data.setReservationDate(formatDate(harness.get(LAST_RESERVATION_DATE_KEY))); + String request = harness.tasks().wso2().payments().createRequestForListOfReservationsInICBS(Integer.valueOf(data.getAccountNumberClient())); + + harness.tasks() + .wso2() + .payments() + .checkReservationPresence(TOKEN_CBL, request, data.getAmount1(), data); + + harness.log("New card reservation was created with amount: " + data.getAmount() + " with date: " + data.getReservationDate()); + harness.store("reports.tmfj.execution.comment", "Account number: " + data.getAccountNumberClient() + + "\n" + + "Card number: " + cardId + + "\n" + + "New card reservation was created with amount: " + data.getAmount() + " with date: " + data.getReservationDate() + + "\n" + + "Card reservation was successfully found in ICBS."); + } + + @JiraTestCase(id = "PAY-T2936") + @Order(5) + @TestCase(name = "Create manual reservation in PAE and check in ICBS", environments = {Environment.TST1, Environment.PPE}) + void createManualReservationInPAEAndCheckInICBS(Harness harness, @Key("payment.engine") Credentials credentials) { + searchAccountNumber(harness, credentials) + .clickOnReservationButton() + .clickCreateOnButton() + .clickOnSelectType() + .selectType(PaymentType.MANUAL) + .clickOnDirection() + .selectDirection(PaymentDirection.DEBET) + .fillManualData(data.getAmount(), data.getDescription(), data.getDescription()) + .clickSubmit() + .getLastReservationDate(); + harness.closeEndpoint(harness.getEndpoint(PaymentEngineEndpoint.class)); + + data.setReservationDate(formatDate(harness.get(LAST_RESERVATION_DATE_KEY))); + String request = harness.tasks().wso2().payments().createRequestForListOfReservationsInICBS(Integer.valueOf(data.getAccountNumberClient())); + + harness.tasks() + .wso2() + .payments() + .checkReservationPresence(TOKEN_CBL, request, data.getAmount1(), data); + + harness.log("New manual reservation was created with amount: " + data.getAmount() + " with date: " + data.getReservationDate()); + harness.store("reports.tmfj.execution.comment", "Account number: " + data.getAccountNumberClient() + + "\n" + + "New manual reservation was created with amount: " + data.getAmount() + " with date: " + data.getReservationDate() + + "\n" + + "Manual reservation was successfully found in ICBS."); + } + + @AfterAll + void refreshTestDataAndDeleteReservations(Harness harness, @Key("payment.engine") Credentials credentials) { + String path; + //get active reservations via FE API + ReservationListSuccessResponse res = harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/frontend-reservation-controller/v1/frontend/reservations/" + data.getAccountNumberClient()) + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_CBL) + .withHeader("cache-control", "no-cache,no-cache") + .get() + .mapResponseIntoObject(ReservationListSuccessResponse.class); + + if (res.reservations.size() > 70) { + for (int i = 0; i < 50; i++) { + path = data.getAccountNumberClient() + "/" + res.reservations.get(i).cacheId + "/" + res.reservations.get(i).version; + //delete active reservations via API for PE GUI + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/gui-reservation-controller/v1/gui/reservation/" + path) + .withHeader("Content-Type", "application/json;charset=UTF-8") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_PAE) + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("userSsoId", credentials.getUsername()) + .delete(); + } + } + } + + PaymentsEngineCache24SearchAccountsNumber searchAccountNumber(Harness harness, @Key("payment.engine") Credentials credentials) { + return harness.withPaymentEngine() + .openLoginPage() + .login(credentials.getUsername(), credentials.getPassword()) + .clickOkButton() + .clickOnCache24_7() + .clickOnAccountAndReservation() + .typeInternalAccountNumberAndClickApply(data.getAccountNumberClient()); + } + + AccountsPage logIndIBAndGoToPendingTransactionPage(Harness harness) { + Credentials ibCredentials = harness.withUdebs() + .ib() + .usernameAndPassword() + .getUsernameAndPasswordByRc(data.getClientBirthNum()); + + return harness.withNewIb() + .openLoginPage() + .closeCookiesPanelIfVisible() + .clickLoginWithIdAndPassword() + .typeUsername(ibCredentials.getUsername()) + .clickContinue() + .typePassword(ibCredentials.getPassword()) + .clickToLogin() + .onAuthMobileKeyPage() + .typeSmsKey(data.getSmsCode()) + .clickSend() + .onDashboardPage() + .goToAccounts(); + } + + void generateUniqueAmount() { + double generatedNumber = ThreadLocalRandom.current().nextDouble(1.00, 5.00); + BigDecimal decimal = new BigDecimal(Double.toString(generatedNumber)); + data.setAmount(replace(String.valueOf(decimal.setScale(2, RoundingMode.HALF_UP).doubleValue()), ".", ",")); + data.setAmount(data.getAmount().length() == 3 ? data.getAmount() + "0" : data.getAmount()); + data.setAmount1(data.getAmount().replace(",", ".")); + } + + String generateId() { + return new RandomString(6).nextString(); + } + + private String formatDate(String date) { + date = date.replaceFirst("(\\d{2}).(\\d{2}).(\\d{4})", "$1. $2. $3"); + date = date.replaceFirst("^0", ""); + date = date.replaceFirst(". 0", ". "); + return StringUtils.substringBeforeLast(date, " "); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/analytical/SendStaticAccountDataTest.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/analytical/SendStaticAccountDataTest.java new file mode 100644 index 0000000..dbbeb71 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/analytical/SendStaticAccountDataTest.java @@ -0,0 +1,224 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.AccountStates; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients.PaymentEngineClientsListOfClients; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients.PaymentEngineClientsListOfClientsAccounts; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.AccountStates.*; + +@TestScenarioWithOrder(name = "Send online static account data") +public class SendStaticAccountDataTest { + + private String clientId; + private String clientsAccount; + private String timeAccount; + private String loanAccount; + private String TOKEN_CBL; + private String TOKEN_UFO; + private String TOKEN_HUB; + private String randomNameNumber; + private static final String oldBranchCode = "704"; + private static final String newBranchCode = "770"; + private NonClient nonClient; + private PaymentEngineTasks tasks; + + @BeforeAll + void testSetUp(Harness harness) { + randomNameNumber = String.valueOf(ThreadLocalRandom.current().nextInt(100, 999)); + clientId = harness.getConfig("payments_cashless.domesticPayment.clientId"); + clientsAccount = harness.getConfig("payments_cashless.domesticPayment.clientsAccount"); + timeAccount = harness.getConfig("payments_cashless.domesticPayment.timeAcc"); + loanAccount = harness.getConfig("payments_cashless.domesticPayment.loanAcc"); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + TOKEN_UFO = harness.tasks().wso2().authorization().getToken("UFO"); + TOKEN_HUB = harness.tasks().wso2().authorization().getToken("HUB"); + nonClient = harness.data().newNonClient() + .withFirstName("Sylvester" + randomNameNumber) + .withLastName("Stallone") + .withResidencyAddress(Address.builder() + .street("Nerudova") + .orientationNumber("8") + .city("Praha") + .cityPart("Malá Strana") + .zip("118 00") + .country("Česká republika") + .build()); + } + + @BeforeEach + void testSetUpUniqueData(Harness harness) { + tasks = harness.tasks().paymentEngineTasks(); + } + + private void changeClientsAccountState(Harness harness, String clientId, NonClient nonClient) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForClientNameChange(clientId, nonClient); + harness.tasks() + .wso2() + .payments() + .changeClientName(TOKEN_CBL, request); + } + + private void changeClientsAccountState(Harness harness, String account, AccountStates clientsAccountState) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForClientsAccountStateChange(account, clientsAccountState); + harness.tasks() + .wso2() + .payments() + .changeClientsAccountState(TOKEN_CBL, request); + } + + private void changeClientsTimeAccountState(Harness harness, String account, AccountStates clientsAccountState) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForClientsTimeAccountStateChange(account, clientsAccountState); + harness.tasks() + .wso2() + .payments() + .changeClientsTimeAccountState(TOKEN_UFO, request); + } + + private void changeClientsLoanAccountBranchCode(Harness harness, String account, String branchCode) { + String request1 = harness.tasks() + .wso2() + .payments() + .createRequestForClientsLoanAccountBranchCodeChange(account, branchCode); + harness.tasks() + .wso2() + .payments() + .changeClientsLoanAccountBranchCode(TOKEN_HUB, request1); + } + + @JiraTestCase(id = "PAY-T3562") + @Order(1) + @TestCase(name = "Send online static account data - change CIF name", environments = {Environment.TST1, Environment.PPE}) + void changeClientNameInICBSAndCheckInPAE(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) { + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchClientAndStoreClientName(clientId)); + String clientName1 = harness.get(PaymentEngineClientsListOfClients.CLIENT_NAME_KEY); + harness.withPaymentEngine().closePaymentEngine(); + + changeClientsAccountState(harness, clientId, nonClient); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.checkAndStoreNewClientName(clientId, nonClient)); + String clientName2 = harness.get(PaymentEngineClientsListOfClients.CLIENT_NAME_KEY); + PaymentEngineUtils.logChangeOfClientName(harness, clientName1, clientName2, clientId); + harness.withPaymentEngine().closePaymentEngine(); + Assertions.assertNotEquals(clientName1, clientName2, "The account's name does not equal the previous one after the change"); + } + + @JiraTestCase(id = "PAY-T3563") + @Order(2) + @TestCase(name = "Send online static account data - change clients account state", environments = {Environment.TST1, Environment.PPE}) + void changeAccountStatusInICBSAndCheckInPAE(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) { + + changeClientsAccountState(harness, clientsAccount, ACTIVE); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchClientAccount(clientsAccount)) + .then(tasks.checkClientAccountStateActive()); + harness.withPaymentEngine().closePaymentEngine(); + + changeClientsAccountState(harness, clientsAccount, BLOCKED); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchClientAccount(clientsAccount)) + .wait10sec() //PayHub cannot process the change on PPE environment faster than 10 seconds + .clickOnRefresh() + .then(tasks.checkClientAccountStateBlocked()); + harness.withPaymentEngine().closePaymentEngine(); + + changeClientsAccountState(harness, clientsAccount, ACTIVE); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchClientAccount(clientsAccount)) + .wait10sec() //PayHub cannot process the change on PPE environment faster than 10 seconds + .clickOnRefresh() + .then(tasks.checkClientAccountStateActive()); + PaymentEngineUtils.logChangeOfClientAccountState(harness, clientsAccount, ACTIVE, BLOCKED); + harness.withPaymentEngine().closePaymentEngine(); + } + + @JiraTestCase(id = "PAY-T3564") + @Order(3) + @TestCase(name = "Send online static account data - change clients TIME account state", environments = {Environment.TST1, Environment.PPE}) + void changeTimeAccountStatusInICBSAndCheckInPAE(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) { + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchClientAccount(timeAccount)) + .then(tasks.checkClientAccountStateActive()); + harness.withPaymentEngine().closePaymentEngine(); + + changeClientsTimeAccountState(harness, timeAccount, CLOSED_FOR_ENROLLMENT); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchClientAccount(timeAccount)) + .wait5sec() + .then(tasks.checkClientAccountStateBlocked()); + harness.withPaymentEngine().closePaymentEngine(); + + changeClientsTimeAccountState(harness, timeAccount, ACTIVE); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchClientAccount(timeAccount)) + .wait5sec() + .then(tasks.checkClientAccountStateActive()); + PaymentEngineUtils.logChangeOfClientAccountState(harness, timeAccount, ACTIVE, CLOSED_FOR_ENROLLMENT); + harness.withPaymentEngine().closePaymentEngine(); + } + + @JiraTestCase(id = "PAY-T3565") + @Order(4) + @TestCase(name = "Send online static account data - change clients LOAN account branch code", environments = {Environment.TST1, Environment.PPE}) + void changeLoanAccountBranchCodeInICBSAndCheckInPAE(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) { + + changeClientsLoanAccountBranchCode(harness, loanAccount, newBranchCode); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchClientAccount(loanAccount)) + .waitForValue(harness, newBranchCode) + .then(tasks.storeClientAccountBranchCode()); + harness.withPaymentEngine().closePaymentEngine(); + + String branchCode1 = harness.get(PaymentEngineClientsListOfClientsAccounts.BRANCH_CODE_KEY); + Assertions.assertEquals(newBranchCode, branchCode1); + + changeClientsLoanAccountBranchCode(harness, loanAccount, oldBranchCode); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchClientAccount(loanAccount)) + .waitForValue(harness, oldBranchCode) + .then(tasks.storeClientAccountBranchCode()); + harness.withPaymentEngine().closePaymentEngine(); + + String branchCode2 = harness.get(PaymentEngineClientsListOfClientsAccounts.BRANCH_CODE_KEY); + Assertions.assertNotEquals(newBranchCode, branchCode2, "The account's branch code does not equal the previous one after the change"); + + PaymentEngineUtils.logChangeOfClientAccountBranchCode(harness, loanAccount, branchCode1, branchCode2); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/AuthorizationForDirectDebit.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/AuthorizationForDirectDebit.java new file mode 100644 index 0000000..16b6181 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/AuthorizationForDirectDebit.java @@ -0,0 +1,85 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.domestic.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients.PaymentEngineClientsAuthorizationsForDirectDebits; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +@TestScenarioWithOrder(name = "Create/edit/delete Authorization For Direct Debit") +public class AuthorizationForDirectDebit { + private PaymentData data; + private static final String statusValid = "Platný"; + private static final String statusArchiv = "Archivovaný"; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")) + .creditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")) + .amount(String.valueOf(ThreadLocalRandom.current().nextInt(50, 99))) + .transactionName("Autotest založení inkasa") + .description("Autotest založení inkasa") + .branchCode("134") + .period("Měsíčně") + .build(); + } + + @Order(1) + @JiraTestCase(id = "PAY-T2999") + @TestCase(name = "Create/edit/delete authorization for direct debit", environments = {Environment.TST1, Environment.PPE}) + void createEditDeleteAuthorizationForDirectDebitInhouseAndVerify(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + + PaymentEngineTasks tasks = harness.tasks().paymentEngineTasks(); + tasks.assumptionAuthorizationForDirectDebitExistence(data, user2, user1); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createAuthorizationForDirectDebit(data)); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAuthorizationForDirectDebit(data)); + String rootId1 = harness.get(PaymentEngineClientsAuthorizationsForDirectDebits.AUTH_ROOT_ID_KEY); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.checkAuthorizationForDirectDebitStatus(statusValid, rootId1)) + .then(tasks.editAuthorizationForDirectDebit(data)); + String rootId2 = harness.get(PaymentEngineClientsAuthorizationsForDirectDebits.AUTH_ROOT_ID_KEY); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyEditingOfAuthorizationsForDirectDebits(rootId2)) + .closeTab() + .then(tasks.checkAuthorizationForDirectDebitStatus(statusArchiv, rootId1)) + .closeTab() + .then(tasks.checkAuthorizationForDirectDebitStatus(statusValid, rootId2)) + .then(tasks.deleteAuthorizationForDirectDebitAndStoreRootId(data)); + String rootId3 = harness.get(PaymentEngineClientsAuthorizationsForDirectDebits.AUTH_ROOT_ID_KEY); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.verifyEditingOfAuthorizationsForDirectDebits(rootId3)) + .closeTab() + .then(tasks.checkAuthorizationForDirectDebitStatus(statusArchiv, rootId1)) + .closeTab() + .then(tasks.checkAuthorizationForDirectDebitStatus(statusArchiv, rootId2)) + .closeTab() + .then(tasks.checkAuthorizationForDirectDebitStatus(statusArchiv, rootId3)); + harness.withPaymentEngine().closePaymentEngine(); + + PaymentEngineUtils.logAuthorizationForDirectDebitStatus(harness, rootId1, rootId2, rootId3, data); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/InhouseIFCY.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/InhouseIFCY.java new file mode 100644 index 0000000..f25d1c2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/InhouseIFCY.java @@ -0,0 +1,177 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.domestic.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.CurrencyPAE; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.CurrencyPAE.*; +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.ARCHIV; + +@TestScenarioWithOrder(name = "Create IFCY payment and verify") +public class InhouseIFCY { + private String TOKEN_CBL; + private PaymentData data; + private PaymentEngineTasks tasks; + private String transactionId; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .channelId("PAE - Payment Engine") + .icbsProfile("COUFX - FX konverze") + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(10, 99))); + tasks = new PaymentEngineTasks(harness); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + private void createInhouseIfcyPaymentInEur(Harness harness, Credentials user1, CurrencyPAE currencyPAE) { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createInhouseIfcyPaymentInEur(data, currencyPAE)); + transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + } + + private void createInhouseIfcyPaymentInCzk(Harness harness, Credentials user1, CurrencyPAE currencyPAE) { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createInhouseIfcyPaymentInCzk(data, currencyPAE)); + transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3556") + @TestCase(name = "Create inhouse IFCY payment with maximal data filling - CZK to EUR - currency EUR", environments = {Environment.TST1, Environment.PPE}) + void createInhouseIfcyPaymentCzkToEurInEurMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accountCZK")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.accountEUR")); + + createInhouseIfcyPaymentInEur(harness, user1, CURRENCY_EUR_LONG); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, ARCHIV)) + .wait5sec() //ICBS cannot book IFCY transaction faster than 5 seconds + .storeEquivalentAmountEur(); + harness.withPaymentEngine().closePaymentEngine(); + + data.setEquivalentAmount(harness.get(PaymentEngineSearchPage.EQUIVALENT_AMOUNT_KEY).toString().replace(".", "").replace(",", ".")); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getEquivalentAmount(), transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultWithEquivalentAmount(harness, transactionId, data.getDebtorAcc(), + data.getCreditorAcc(), data.getAmount() + " EUR", data.getEquivalentAmount() + " CZK"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T3557") + @TestCase(name = "Create inhouse IFCY payment with maximal data filling - EUR to CZK - currency EUR", environments = {Environment.TST1, Environment.PPE}) + void createInhouseIfcyPaymentEurToCzkInEurMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accountEUR")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.accountCZK")); + + createInhouseIfcyPaymentInCzk(harness, user1, CURRENCY_EUR_LONG); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, ARCHIV)) + .clickLifeCycle() + .refreshLifeCycle() + .wait5sec() //ICBS cannot book IFCY transaction faster than 5 seconds + .storeEquivalentAmountCzk("1"); + harness.withPaymentEngine().closePaymentEngine(); + + data.setEquivalentAmount(harness.get(PaymentEngineSearchPage.EQUIVALENT_AMOUNT_KEY).toString().replace(".", "").replace(",", ".")); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getEquivalentAmount(), transactionId); + + PaymentEngineUtils.logResultWithEquivalentAmount(harness, transactionId, data.getDebtorAcc(), + data.getCreditorAcc(), data.getAmount() + " EUR", data.getEquivalentAmount() + " CZK"); + } + + @Order(3) + @JiraTestCase(id = "PAY-T3558") + @TestCase(name = "Create inhouse IFCY payment with maximal data filling - CZK to EUR - currency CZK", environments = {Environment.TST1, Environment.PPE}) + void createInhouseIfcyPaymentCzkToEurInCzkMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accountCZK")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.accountEUR")); + + createInhouseIfcyPaymentInCzk(harness, user1, CURRENCY_CZK_LONG); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, ARCHIV)) + .clickLifeCycle() + .refreshLifeCycle() + .wait5sec() //ICBS cannot book IFCY transaction faster than 5 seconds + .storeEquivalentAmountEur(); + harness.withPaymentEngine().closePaymentEngine(); + + data.setEquivalentAmount(harness.get(PaymentEngineSearchPage.EQUIVALENT_AMOUNT_KEY).toString().replace(".", "").replace(",", ".")); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getEquivalentAmount(), transactionId); + + PaymentEngineUtils.logResultWithEquivalentAmount(harness, transactionId, data.getDebtorAcc(), + data.getCreditorAcc(), data.getAmount() + " CZK", data.getEquivalentAmount() + " EUR"); + } + + @Order(4) + @JiraTestCase(id = "PAY-T3559") + @TestCase(name = "Create inhouse IFCY payment with maximal data filling - EUR to CZK - currency CZK", environments = {Environment.TST1, Environment.PPE}) + void createInhouseIfcyPaymentEurToCzkInCzkMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accountEUR")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.accountCZK")); + + createInhouseIfcyPaymentInEur(harness, user1, CURRENCY_CZK_LONG); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, ARCHIV)) + .wait5sec() //ICBS cannot book IFCY transaction faster than 5 seconds + .storeEquivalentAmountCzk(); + harness.withPaymentEngine().closePaymentEngine(); + + data.setEquivalentAmount(harness.get(PaymentEngineSearchPage.EQUIVALENT_AMOUNT_KEY).toString().replace(".", "").replace(",", ".")); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getEquivalentAmount(), transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultWithEquivalentAmount(harness, transactionId, data.getDebtorAcc(), + data.getCreditorAcc(), data.getAmount() + " CZK", data.getEquivalentAmount() + " EUR"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/InstantPaymentErrors.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/InstantPaymentErrors.java new file mode 100644 index 0000000..e54dd52 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/InstantPaymentErrors.java @@ -0,0 +1,423 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.domestic.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.AccountStates; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.PaymentEngineDetailAccountPage.ACC_BALANCE_VALUE_KEY; +import static cz.moneta.test.dsl.payment_engine.PaymentEngineDetailAccountPage.DISPO_BALANCE_VALUE_KEY; +import static cz.moneta.test.dsl.payment_engine.enums.AccountStates.*; +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.HPO001_S001_CurrentAccountDetailsPage.ACC_BALANCE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.products.current.account.HPO001_S001_CurrentAccountDetailsPage.DISPO_BALANCE_KEY; + +@TestScenarioWithOrder(name = "Create domestic instant payment") +public class InstantPaymentErrors { + private String TOKEN_CBL; + private PaymentData data; + private PaymentEngineTasks paymentEngineTasks; + private BankaTasks bankaTasks; + private String transactionId; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .accPrefix(harness.getConfig("payments_cashless.domesticPayment.accPrefixForExternal1")) + .bankCode("0600 - MONETA Money Bank, a.s.") + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + data.setAmount(ThreadLocalRandom.current().nextInt(25, 50) + "," + ThreadLocalRandom.current().nextInt(10, 99)); + paymentEngineTasks = harness.tasks().paymentEngineTasks(); + bankaTasks = harness.tasks().ufo().banka(); + } + + private void changeClientsAccountState(Harness harness, String account, AccountStates clientsAccountState) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForClientsAccountStateChange(account, clientsAccountState); + harness.tasks() + .wso2() + .payments() + .changeClientsAccountState(TOKEN_CBL, request); + } + + private void createAndVerifyTransactionWithoutPrefix(Harness harness, Credentials user1, Credentials user2, TransactionReasonPAE status) { + paymentEngineTasks.loginTasks().logInPae(harness, user1) + .then(paymentEngineTasks.createInstantTransactionWithoutPrefix(data)); + transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + + paymentEngineTasks.loginTasks().logInPae(harness, user2) + .then(paymentEngineTasks.verifyAndWaitForStatus(transactionId, status)); + harness.withPaymentEngine().closePaymentEngine(); + } + + private void createAndVerifyTransactionWithPrefix(Harness harness, Credentials user1, Credentials user2, TransactionReasonPAE status) { + paymentEngineTasks.loginTasks().logInPae(harness, user1) + .then(paymentEngineTasks.createInstantTransactionWithPrefix(data)); + String transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + + paymentEngineTasks.loginTasks().logInPae(harness, user2) + .then(paymentEngineTasks.verifyAndWaitForStatus(transactionId, status)); + harness.withPaymentEngine().closePaymentEngine(); + } + + private void checkAccountState(Harness harness, Credentials user1, PaymentData data, AccountStates state) { + paymentEngineTasks.loginTasks().logInPae(harness, user1) + .then(paymentEngineTasks.checkAccountState(data.getDebtorAcc(), state)); + harness.withPaymentEngine().closePaymentEngine(); + } + + @Order(1) + @JiraTestCase(id = "PAY-T2887") + @TestCase(name = "HD:02 - Create Internal to Internal transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentIntToIntAndCompareBalancesWithUfo(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials paeCredentials1, + @Key(Keys.paymentEngine.secondUser) Credentials paeCredentials2, + @Key(Keys.ufo.banka.banker) Credentials ufoCredentials) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAccBalances")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInt")); + + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials1) + .then(paymentEngineTasks.storeBalancesFromCache24(data)) + .closeTab() + .then(paymentEngineTasks.createInstantTransactionWithoutPrefix(data)); + String transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + + String dispoBalancePaymentEngine = harness.get(DISPO_BALANCE_VALUE_KEY); + String accBalancePaymentEngine = harness.get(ACC_BALANCE_VALUE_KEY); + double dispoBalancePaymentEngineDouble = parseValueGlobalStorePaymentEngine(dispoBalancePaymentEngine); + double accBalancePaymentEngineDouble = parseValueGlobalStorePaymentEngine(accBalancePaymentEngine); + + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials2) + .then(paymentEngineTasks.verifyAndWaitForStatus(transactionId, ARCHIV)) + .wait5sec() //UFO cannot book transaction faster than 5 seconds + .closeTab() + .then(paymentEngineTasks.storeBalancesFromCache24(data)); + harness.withPaymentEngine().closePaymentEngine(); + + String newDispoBalancePaymentEngine = harness.get(DISPO_BALANCE_VALUE_KEY); + String newAccBalancePaymentEngine = harness.get(ACC_BALANCE_VALUE_KEY); + double newDispoBalancePaymentEngineDouble = parseValueGlobalStorePaymentEngine(newDispoBalancePaymentEngine); + double newAccBalancePaymentEngineDouble = parseValueGlobalStorePaymentEngine(newAccBalancePaymentEngine); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().searchAccountByProduct(data.getDebtorAcc())) + .then(bankaTasks.payment().storeBalancesFromUfoBanka()); + harness.withUfo().closeApplication(); + + double newDispoBalanceUfo = parseValueGlobalStorePaymentEngine(harness.get(DISPO_BALANCE_KEY)); + double newAccBalanceUfo = parseValueGlobalStorePaymentEngine(harness.get(ACC_BALANCE_KEY)); + + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully verified" + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + "/" + data.getBankCode() + + "\n" + + "Amount: " + data.getAmount() + " CZK" + + "\n" + + "Previous Dispo balance in PAE and UFO: " + dispoBalancePaymentEngine + + "\n" + + "New Dispo balance in PAE and UFO: " + newDispoBalancePaymentEngine + + "\n" + + "Previous Acc balance in PAE and UFO: " + accBalancePaymentEngine + + "\n" + + "New Acc balance in PAE and UFO: " + newAccBalancePaymentEngine); + + Long expectedDispoBalancePaymentEngineDouble = Math.round(Double.valueOf(dispoBalancePaymentEngineDouble - parseValueGlobalStorePaymentEngine(data.getAmount()))); + Long expectedAccBalancePaymentEngineDouble = Math.round(Double.valueOf(accBalancePaymentEngineDouble - parseValueGlobalStorePaymentEngine(data.getAmount()))); + + Assertions.assertEquals(expectedDispoBalancePaymentEngineDouble, Math.round(newDispoBalancePaymentEngineDouble)); + Assertions.assertEquals(expectedAccBalancePaymentEngineDouble, Math.round(newAccBalancePaymentEngineDouble)); + Assertions.assertEquals(newDispoBalancePaymentEngineDouble, newDispoBalanceUfo); + Assertions.assertEquals(newAccBalancePaymentEngineDouble, newAccBalanceUfo); + harness.log("Transaction " + transactionId + " was successfully verified"); + + } + + @Order(2) + @JiraTestCase(id = "PAY-T2874") + @TestCase(name = "HD:02 - Create Closed to Normal transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentClosedToNormal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.closedAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + + changeClientsAccountState(harness, data.getDebtorAcc(), SLEEPING); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, CLOSED_DEBTOR); + String transactionId1 = transactionId; + + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.closedAcc")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, REJECT); + String transactionId2 = transactionId; + + changeClientsAccountState(harness, data.getCreditorAcc(), ACTIVE); + + PaymentEngineUtils.logResultLong(harness, transactionId1, transactionId2, data); + } + + @Order(3) + @JiraTestCase(id = "PAY-T2878") + @TestCase(name = "HD:02 - Create Sleeping account to Normal transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentRestingToNormal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.sleepingAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, SLEEPING_DEBTOR); + String transactionId1 = transactionId; + + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.sleepingAcc")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, ARCHIV); + String transactionId2 = transactionId; + + PaymentEngineUtils.logResultLong(harness, transactionId1, transactionId2, data); + } + + @Order(4) + @JiraTestCase(id = "PAY-T2875") + @TestCase(name = "HD:02 - Create Closed (State 7) to Internal transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentClosedState7ToNormal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.closedState7")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, BLOCKED_DEBTOR); + String transactionId1 = transactionId; + + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.closedState7")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, REJECT); + String transactionId2 = transactionId; + + PaymentEngineUtils.logResultLong(harness, transactionId1, transactionId2, data); + } + + @Order(5) + @JiraTestCase(id = "PAY-T2866") + @TestCase(name = "HD:02 - Create Blocked to Internal transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentBlockedToNormal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.blockedDebitsAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, BLOCKED_DEBTOR); + String transactionId1 = transactionId; + + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.blockedDebitsAcc")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, ARCHIV); + String transactionId2 = transactionId; + + PaymentEngineUtils.logResultLong(harness, transactionId1, transactionId2, data); + } + + @Order(6) + @JiraTestCase(id = "PAY-T2884") + @TestCase(name = "HD:02 - Create Internal to Internal/External as Internal transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentInternalToExternalAsInternal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.accExternalAsInternal1")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, ARCHIV); + + PaymentEngineUtils.logResultShort(harness, transactionId, data); + } + + @Order(7) + @JiraTestCase(id = "PAY-T2885") + @TestCase(name = "HD:02 - Create Internal to Internal/External as External transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentAndVerify(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.accExternal1")); + + createAndVerifyTransactionWithPrefix(harness, user1, user2, ARCHIV); + + PaymentEngineUtils.logResultShortWithPrefix(harness, transactionId, data); + } + + @Order(8) + @JiraTestCase(id = "PAY-T2886") + @TestCase(name = "HD:02 - Create External as Internal to Internal transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentExternalAsInternalToInternal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accExternalAsInternal1")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInt")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, ARCHIV); + + PaymentEngineUtils.logResultShort(harness, transactionId, data); + } + + @Order(9) + @JiraTestCase(id = "PAY-T2888") + @TestCase(name = "HD:02 - Create External as Internal to External as Internal transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentExternalAsInternalToExternalAsInternal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accExternalAsInternal1")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.accExternalAsInternal2")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, ARCHIV); + + PaymentEngineUtils.logResultShort(harness, transactionId, data); + } + + @Order(10) + @JiraTestCase(id = "PAY-T2889") + @TestCase(name = "HD:02 - Create External as Internal to External transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentExternalAsInternalToExternal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accExternalAsInternal2")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.accExternal1")); + + createAndVerifyTransactionWithPrefix(harness, user1, user2, ARCHIV); + + PaymentEngineUtils.logResultShortWithPrefix(harness, transactionId, data); + } + + @Order(11) + @JiraTestCase(id = "PAY-T2882") + @TestCase(name = "HD:02 - Create inhouse TIME transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentTimeToNormal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accTime")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, INVALID_DEBTOR); + String transactionId1 = transactionId; + + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.accTime")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, REJECT); + String transactionId2 = transactionId; + + PaymentEngineUtils.logResultLong(harness, transactionId1, transactionId2, data); + } + + @Order(12) + @JiraTestCase(id = "PAY-T2883") + @TestCase(name = "HD:02 - Create inhouse LOAN transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentLoanToNormal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accLoan")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, INVALID_DEBTOR); + String transactionId1 = transactionId; + + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.accLoan")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, REJECT); + String transactionId2 = transactionId; + + PaymentEngineUtils.logResultLong(harness, transactionId1, transactionId2, data); + } + + @Order(13) + @JiraTestCase(id = "PAY-T2880") + @TestCase(name = "HD:02 - Create inhouse Bankbook transaction and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentBankbookToNormal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accBankbook")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, INVALID_DEBTOR); + String transactionId1 = transactionId; + + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.accBankbook")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, REJECT); + String transactionId2 = transactionId; + + PaymentEngineUtils.logResultLong(harness, transactionId1, transactionId2, data); + } + + @Order(14) + @JiraTestCase(id = "PAY-T3000") + @TestCase(name = "Change State Of Account From Active (1) To Closed (7)", environments = {Environment.TST1, Environment.PPE}) + void changeStateOfAccount(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.activeAccount")); + + changeClientsAccountState(harness, data.getDebtorAcc(), ACTIVE); + + checkAccountState(harness, user1, data, ACTIVE); + + changeClientsAccountState(harness, data.getDebtorAcc(), BLOCKED); + + checkAccountState(harness, user1, data, CLOSED_FOR_ENROLLMENT); + + changeClientsAccountState(harness, data.getDebtorAcc(), ACTIVE); + + harness.log("Account " + data.getDebtorAcc() + " state has been changed from " + ACTIVE.getState() + " to " + BLOCKED.getState() + " and back."); + harness.store("reports.tmfj.execution.comment", "Account " + data.getDebtorAcc() + " state has been changed from " + ACTIVE.getState() + " to " + BLOCKED.getState() + " and back."); + } + + @Order(15) + @JiraTestCase(id = "PAY-T2879") + @TestCase(name = "HD:02 - create Instant Payment New Opened (6) To Active (1)", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentNewOpenedState6ToNormal(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.newAccount")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + + checkAccountState(harness, user1, data, ACTIVE); + + changeClientsAccountState(harness, data.getDebtorAcc(), CLOSED_FOR_ENROLLMENT); + + checkAccountState(harness, user1, data, TODAY_OPENED); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, ARCHIV); + + changeClientsAccountState(harness, data.getDebtorAcc(), ACTIVE); + + checkAccountState(harness, user1, data, ACTIVE); + + PaymentEngineUtils.logResultShortWithAccountStateChange(harness, ACTIVE, TODAY_OPENED, transactionId, data); + } + + private double parseValueGlobalStorePaymentEngine(String keyGlobalStorePaymentEngine) { + String parsedAvailableBalance = keyGlobalStorePaymentEngine + .replaceAll("\s", "") + .replaceAll("\\.", "") + .replaceAll(",", "."); + return Double.parseDouble(parsedAvailableBalance); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/StandingOrder.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/StandingOrder.java new file mode 100644 index 0000000..ba84ced --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/StandingOrder.java @@ -0,0 +1,111 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.domestic.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients.PaymentEngineClientsListOfStandingOrders; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_clients.PaymentEngineClientsListOfStandingOrdersTransactions.TRANSACTION_BY_DATE_ID_KEY; + +@TestScenarioWithOrder(name = "Create/edit/delete domestic standing order") +public class StandingOrder { + private static final String statusValid = "Platný"; + private static final String statusArchiv = "Archivovaný"; + private PaymentData data; + private PaymentEngineTasks tasks; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .transactionType("HD:11 Úhrada klientská") + .period("Měsíčně") + .transactionName("Harness Autotest TPP") + .description("Harness Autotest TPP") + .branchCode("134") + .dayMonth(String.valueOf(ThreadLocalRandom.current().nextInt(1, 25))) + .amount(String.valueOf(ThreadLocalRandom.current().nextInt(50, 99))) + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")) + .creditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")) + .build(); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + tasks = harness.tasks().paymentEngineTasks(); + } + + @Order(1) + @JiraTestCase(id = "PAY-T2998") + @TestCase(name = "Create/edit/delete standing order CZ", environments = {Environment.TST1, Environment.PPE}) + void createEditDeleteStandingOrder(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createStandingOrderCZ(data)); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyStandingOrder(data)); + String rootId1 = harness.get(PaymentEngineClientsListOfStandingOrders.STAND_ORDER_ROOT_ID_KEY); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.checkStandingOrderStatus(statusValid, rootId1)) + .then(tasks.editStandingOrder(data)); + String rootId2 = harness.get(PaymentEngineClientsListOfStandingOrders.STAND_ORDER_ROOT_ID_KEY); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyEditingOfStandingOrder(rootId2)) + .then(tasks.checkStandingOrderStatus(statusArchiv, rootId1)) + .closeTab() + .then(tasks.checkStandingOrderStatus(statusValid, rootId2)) + .then(tasks.deleteStandingOrder(data)); + String rootId3 = harness.get(PaymentEngineClientsListOfStandingOrders.STAND_ORDER_ROOT_ID_KEY); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.verifyEditingOfStandingOrder(rootId3)) + .then(tasks.checkStandingOrderStatus(statusArchiv, rootId1)) + .closeTab() + .then(tasks.checkStandingOrderStatus(statusArchiv, rootId2)) + .closeTab() + .then(tasks.checkStandingOrderStatus(statusArchiv, rootId3)); + harness.withPaymentEngine().closePaymentEngine(); + + PaymentEngineUtils.logStandingOrderStatus(harness, rootId1, rootId2, rootId3, data); + } + + @Order(2) + @JiraTestCase(id = "PAY-T4048") + @TestCase(name = "Check Transaction From Standing Order CZ Created", environments = {Environment.TST1, Environment.PPE}) + void checkTransactionFromStandingOrderCZCreated(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) { + + data.setOrderId(harness.getConfig("payments_cashless.domesticPayment.standingOrderId")); + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accountCZK")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setAmount("15,49"); + data.setSettlementDate(DateUtils.getFormattedTodayDate("dd.MM.yyyy")); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.checkStandingOrderStatus(statusValid, data.getOrderId())) + .then(tasks.checkStandingOrderTransactionsPresence(data)); + harness.withPaymentEngine().closePaymentEngine(); + + PaymentEngineUtils.logStandingOrderTransactionStatus(harness, data.getOrderId(), harness.get(TRANSACTION_BY_DATE_ID_KEY), data); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/StarbuildTests.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/StarbuildTests.java new file mode 100644 index 0000000..012d8c9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/analytical/StarbuildTests.java @@ -0,0 +1,244 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.domestic.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.model.FileForInputPreparation; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Disabled; + +import java.io.File; +import java.io.IOException; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords.TRANSACTION_ID_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPageLifeCycle.TRANSACTION_BY_TYPE_ID_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionFiles.TRANSACTION_FILE_NAME_KEY; + +@TestScenarioWithOrder(name = "Simulate Starbuild Payments") +public class StarbuildTests extends FileForInputPreparation { + private String TOKEN_CBL; + private String HD11_FILE; + private String HD32_FILE; + private PaymentData data; + private PaymentEngineTasks tasks; + private String transactionId; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .bankName("MONETA Money Bank, a.s.") + .nextDayDist("Ne") + .payScheme("CZ CT Non-priority") + .build(); + HD11_FILE = harness.getConfig("payments_cashless.foreignPayment.HD11_Starbuild"); + HD32_FILE = harness.getConfig("payments_cashless.foreignPayment.HD32_Starbuild"); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + tasks = new PaymentEngineTasks(harness); + data.setAmountIcbs(ThreadLocalRandom.current().nextInt(10, 99) + "." + ThreadLocalRandom.current().nextInt(10, 99)); + data.setAmount(data.getAmountIcbs().replace(".", "")); + data.setRandom(String.valueOf(ThreadLocalRandom.current().nextInt(1000000, 2999999))); + data.setMessageId("YWP" + ThreadLocalRandom.current().nextInt(100000000, 999999999)); + } + + private void simulateIngoingFromStarBuildAndVerify(Harness harness, Credentials user1, Credentials user2, + String fileName, File file, TransactionReasonPAE status) { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.inputTrxFromStarBuild(file.getAbsolutePath())); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatusOfInputFromStarBuild(fileName, status)); + harness.withPaymentEngine().closePaymentEngine(); + + transactionId = harness.get(TRANSACTION_ID_KEY); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3589") + @TestCase(name = "Simulate Outgoing HD:11 From StarBuild To ICBS - Max Data", environments = {Environment.TST1, Environment.PPE}) + void simulateOutgoingHD11FromStarBuildToIcbsMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) throws IOException { + data.setDebtorAcc("374299"); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + data.setBankCode("0600"); + data.setHdType("11"); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyMMdd")); + + String HD11FileName = "W" + data.getTodayDate() + ".00" + ThreadLocalRandom.current().nextInt(100, 999); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")); + File HD11File = prepareFileForInput(harness, HD11_FILE, HD11FileName, data); + + try { + simulateIngoingFromStarBuildAndVerify(harness, user1, user2, HD11FileName, HD11File, ARCHIV); + + String transactionIdIcbs = data.getTodayDate() + data.getMessageId(); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyy-MM-dd")); + + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmountIcbs(), transactionIdIcbs); + + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully archived and booked in ICBS." + + "\n" + "StarBuild file name: " + HD11FileName + + "\n" + "Debtor account: " + data.getDebtorAcc() + "/" + data.getBankCode() + + "\n" + "Creditor account: " + data.getCreditorAcc() + + "\n" + "Amount: " + data.getAmountIcbs() + " CZK"); + + } catch (Exception e) { + throw e; + } finally { + HD11File.delete(); + } + } + + @Order(2) + @Disabled("Disabled on request from Martin Sudek") + @JiraTestCase(id = "PAY-T3590") + @TestCase(name = "Simulate Outgoing HD:11 From StarBuild - Max Data", environments = {Environment.TST1, Environment.PPE}) + void simulateOutgoingHD11FromStarBuildMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) throws IOException { + data.setDebtorAcc("374299"); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + data.setBankCode("0100"); + data.setHdType("11"); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyMMdd")); + data.setChannelName("O_CCO_CERTIS"); + + String HD11FileName = "W" + data.getTodayDate() + ".00" + ThreadLocalRandom.current().nextInt(100, 999); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")); + File HD11File = prepareFileForInput(harness, HD11_FILE, HD11FileName, data); + + try { + simulateIngoingFromStarBuildAndVerify(harness, user1, user2, HD11FileName, HD11File, DISTRIBUTION); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.sendAndRunCZCTDDistribution(data, ARCHIV, harness.get(TRANSACTION_ID_KEY))) + .then(tasks.checkTransactionChannelAndStoreFileName(data)); + harness.withPaymentEngine().closePaymentEngine(); + + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully archived." + + "\n" + "StarBuild file name: " + HD11FileName + + "\n" + "CERTIS file name: " + harness.get(TRANSACTION_FILE_NAME_KEY) + + "\n" + "Debtor account: " + data.getDebtorAcc() + "/" + data.getBankCode() + + "\n" + "Creditor account: " + data.getCreditorAcc() + + "\n" + "Amount: " + data.getAmountIcbs() + " CZK"); + + } catch (Exception e) { + throw e; + } finally { + HD11File.delete(); + } + } + + @Order(3) + @Disabled("Disabled on request from Martin Sudek") + @JiraTestCase(id = "PAY-T3591") + @TestCase(name = "Simulate Outgoing HD:32 From StarBuild to ICBS - Max Data", environments = {Environment.TST1, Environment.PPE}) + void simulateOutgoingHD32FromStarBuildToIcbsMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) throws IOException { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc("90870957"); + data.setBankCode("0600"); + data.setHdType("32"); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyMMdd")); + data.setChannelName("O_CCI_SB_HD"); + data.setTransactionType("HD:55 (HD:32) prichozi"); + + String HD32FileName = "W" + data.getTodayDate() + "." + ThreadLocalRandom.current().nextInt(100, 999); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")); + File HD32File = prepareFileForInput(harness, HD32_FILE, HD32FileName, data); + try { + simulateIngoingFromStarBuildAndVerify(harness, user1, user2, HD32FileName, HD32File, ARCHIV); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, transactionId)) + .clickLifeCycle() + .waitForStatus(harness, INGOING_WAIT) + .storeTransactionIdByType(data.getTransactionType()) + .closeTab() + .then(tasks.sendAndRunStarBuildDistribution()) + .then(tasks.searchTransactionAndWaitForStatus(REDIRECT_TO_STARBUILD, harness.get(TRANSACTION_BY_TYPE_ID_KEY))) + .waitForStatus(harness, INGOING_ARCHIV) + .then(tasks.checkTransactionChannelAndStoreFileName(data)); + harness.withPaymentEngine().closePaymentEngine(); + + harness.store("reports.tmfj.execution.comment", "HD:32 transaction " + transactionId + " was successfully archived." + + "\n" + "HD:55 transaction " + harness.get(TRANSACTION_BY_TYPE_ID_KEY) + " was successfully redirected to StarBuild." + + "\n" + "StarBuild file name: " + HD32FileName + + "\n" + "CERTIS file name: " + harness.get(TRANSACTION_FILE_NAME_KEY) + + "\n" + "Debtor account: " + data.getDebtorAcc() + "/" + data.getBankCode() + + "\n" + "Creditor account: " + data.getCreditorAcc() + + "\n" + "Amount: " + data.getAmountIcbs() + " CZK"); + + } catch (Exception e) { + throw e; + } finally { + HD32File.delete(); + } + } + + @Order(4) + @Disabled("Disabled on request from Martin Sudek") + @JiraTestCase(id = "PAY-T3592") + @TestCase(name = "Simulate Outgoing HD:32 From StarBuild - Max Data", environments = {Environment.TST1, Environment.PPE}) + void simulateOutgoingHD32FromStarBuildMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) throws IOException { + data.setDebtorAcc("123"); + data.setCreditorAcc("90870957"); + data.setBankCode("0300"); + data.setHdType("32"); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyMMdd")); + data.setChannelName("O_CCO_CERTIS"); + data.setTransactionType("HD:32 odchozi"); + + String HD32FileName = "W" + data.getTodayDate() + "." + ThreadLocalRandom.current().nextInt(100, 999); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")); + File HD32File = prepareFileForInput(harness, HD32_FILE, HD32FileName, data); + try { + simulateIngoingFromStarBuildAndVerify(harness, user1, user2, HD32FileName, HD32File, DISTRIBUTION); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.sendAndRunCZCTDDistribution(data, ARCHIV, transactionId)) + .then(tasks.checkTransactionChannelAndStoreFileName(data)); + harness.withPaymentEngine().closePaymentEngine(); + + harness.store("reports.tmfj.execution.comment", "HD:32 transaction " + transactionId + " was successfully archived." + + "\n" + "StarBuild file name: " + HD32FileName + + "\n" + "CERTIS file name: " + harness.get(TRANSACTION_FILE_NAME_KEY) + + "\n" + "Debtor account: " + data.getDebtorAcc() + "/" + data.getBankCode() + + "\n" + "Creditor account: " + data.getCreditorAcc() + + "\n" + "Amount: " + data.getAmountIcbs() + " CZK"); + + } catch (Exception e) { + throw e; + } finally { + HD32File.delete(); + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/business/InstantPayment.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/business/InstantPayment.java new file mode 100644 index 0000000..0643f82 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/domestic/business/InstantPayment.java @@ -0,0 +1,146 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.domestic.business; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; + +@TestScenarioWithOrder(name = "Create domestic instant payment") +public class InstantPayment { + private PaymentData data; + private String TOKEN_CBL; + private PaymentEngineTasks tasks; + private String transactionId; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .bankCode("0600 - MONETA Money Bank, a.s.") + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 299))); + tasks = harness.tasks().paymentEngineTasks(); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + private void createAndVerifyTransactionWithoutPrefix(Harness harness, Credentials user1, Credentials user2, TransactionReasonPAE status) { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createInstantTransactionWithoutPrefix(data)); + transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, status)); + harness.withPaymentEngine().closePaymentEngine(); + } + + private void createAndVerifyTransactionWithMaxData(Harness harness, Credentials user1, Credentials user2, TransactionReasonPAE status) { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createInstantTransactionWithMaxData(data)); + transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, status)); + harness.withPaymentEngine().closePaymentEngine(); + } + + @Order(1) + @JiraTestCase(id = "PAY-T2541") + @TestCase(name = "Create instant payment and verify", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentAndVerify(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, ARCHIV); + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultShortWithICBS(harness, transactionId, data); + } + + @Order(2) + @JiraTestCase(id = "PAY-T2819") + @TestCase(name = "Create instant payment - rejected", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentAndReject(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInvalid")); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, REJECT); + + PaymentEngineUtils.logResultShort(harness, transactionId, data); + } + + @Order(3) + @JiraTestCase(id = "PAY-T2824") + @TestCase(name = "Create instant payment - NSF", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentAndNSF(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAccNSF")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + data.setAmount("999999999"); + + createAndVerifyTransactionWithoutPrefix(harness, user1, user2, BUSINESS_ERROR); + + PaymentEngineUtils.logResultShort(harness, transactionId, data); + } + + @Order(4) + @JiraTestCase(id = "PAY-T3004") + @TestCase(name = "Create instant payment - Max VS,KS and SS", environments = {Environment.TST1, Environment.PPE}) + void createInstantPaymentMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccMax2")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAccMax2")); + + createAndVerifyTransactionWithMaxData(harness, user1, user2, ARCHIV); + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultShortWithICBS(harness, transactionId, data); + } + + @Order(5) + @JiraTestCase(id = "PAY-T3005") + @TestCase(name = "Create outgoing instant payment - Max VS,KS and SS", environments = {Environment.TST1, Environment.PPE}) + void createOutgoingInstantPaymentMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccOut")); + data.setBankCode(harness.getConfig("payments_cashless.domesticPayment.bankCodeCreditorOut")); + + createAndVerifyTransactionWithMaxData(harness, user1, user2, NOSTRO); + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultShortWithICBS(harness, transactionId, data); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/ingoing/ForeignPaymentFromCapitolTest.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/ingoing/ForeignPaymentFromCapitolTest.java new file mode 100644 index 0000000..c3a4549 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/ingoing/ForeignPaymentFromCapitolTest.java @@ -0,0 +1,92 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.foreign.ingoing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.dsl.payment_engine.model.FileForInputPreparation; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.io.*; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.CurrencyPAE.CURRENCY_EUR_SHORT; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords.TRANSACTION_ID_KEY; +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.DISTRIBUTION; + +@TestScenario(name = "Foreign Payment From Capitol controller") +public class ForeignPaymentFromCapitolTest extends FileForInputPreparation { + private String PACS009_FILE; + private String PAIN001_FILE; + private PaymentData data; + private PaymentEngineTasks tasks; + + @BeforeAll + void testSetUp(Harness harness) { + PACS009_FILE = harness.getConfig("payments_cashless.foreignPayment.pacs009File"); + PAIN001_FILE = harness.getConfig("payments_cashless.foreignPayment.pain001File"); + } + + @BeforeEach + public void testSetUpUniqueData(Harness harness) { + data = PaymentData.builder() + .amount(ThreadLocalRandom.current().nextInt(1, 9) + "." + ThreadLocalRandom.current().nextInt(10, 99)) + .messageId(String.valueOf(ThreadLocalRandom.current().nextInt(100, 999))) + .random(String.valueOf(ThreadLocalRandom.current().nextInt(10000, 99999))) + .build(); + tasks = harness.tasks().paymentEngineTasks(); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3595") + @TestCase(name = "Create Input Pacs009 From Capitol", environments = {Environment.TST1, Environment.PPE}) + void createInputPacs009FromCapitol(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + + String newFileName = "Pacs.009_" + DateUtils.getFormattedTodayDate("yyyyMMdd") + data.getRandom() + ".xml"; + File file = createTemporaryFileForInput(PACS009_FILE, newFileName); + + try { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.inputPacs009FromCapitol(file.getAbsolutePath())) + .then(tasks.checkStatusOfPacs009FromCapitol(DISTRIBUTION, newFileName)); + harness.withPaymentEngine().closePaymentEngine(); + + PaymentEngineUtils.logResultOfInput(harness, newFileName, harness.get(TRANSACTION_ID_KEY), data.getAmount(), CURRENCY_EUR_SHORT.getCurrency()); + } catch (Exception e) { + throw e; + } finally { + file.delete(); + } + } + + @Order(2) + @JiraTestCase(id = "PAY-T3596") + @TestCase(name = "Create Input Pain001 From Capitol", environments = {Environment.TST1, Environment.PPE}) + void createInputPain001FromCapitol(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + + String newFileName = "Pain.001_" + DateUtils.getFormattedTodayDate("yyyyMMdd") + data.getRandom() + ".xml"; + File file = createTemporaryFileForInput(PAIN001_FILE, newFileName); + try { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.inputPain001FromCapitol(file.getAbsolutePath())) + .then(tasks.checkStatusOfPain001FromCapitol(DISTRIBUTION, newFileName)); + harness.withPaymentEngine().closePaymentEngine(); + + PaymentEngineUtils.logResultOfInput(harness, newFileName, harness.get(TRANSACTION_ID_KEY), data.getAmount(), CURRENCY_EUR_SHORT.getCurrency()); + } catch (Exception e) { + throw e; + } finally { + file.delete(); + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/ingoing/IngoingMt103Test.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/ingoing/IngoingMt103Test.java new file mode 100644 index 0000000..ef66a6d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/ingoing/IngoingMt103Test.java @@ -0,0 +1,432 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.foreign.ingoing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.ParameterChannels; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceLifeCycle; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineRunInstance; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionRecordDetail; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.dsl.payment_engine.model.FileForInputPreparation; +import org.apache.commons.lang.StringUtils; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import java.io.*; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.CurrencyPAE.CURRENCY_CZK_LONG; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_administration.PaymentEngineParametersChannelParameters.PARAMETER_VALUE_ID_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords.TRANSACTION_ID_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceLifeCycle.FEE_TRANSACTION_ID_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineRunInstance.LAST_SEQUENCE_NUMBER_KEY; +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage.EQUIVALENT_AMOUNT_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionDetail.REF_TRANSACTION_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionDetailLifeCycle.*; +import static org.junit.jupiter.api.Assumptions.assumeTrue; + +@NonConcurrentTestScenario +@TestScenarioWithOrder(name = "Ingoing foreign payment controller") +public class IngoingMt103Test extends FileForInputPreparation { + + private String MT_FILE = ""; + private String MT103_FOR_HD21; + private String MT103_OUR; + private String HD21_WITH_MT191; + private String HD21_FILE; + private String MT103_WITH_MT191; + private String TOKEN_CBL; + private String transactionId; + private String returnedAmount; + private final String transactionTypeFee = "xCT Klientsky poplatek"; + private final String transactionTypeHD21 = "HD:21 proplaceni odchozi"; + private final String filesTabName = "Soubory"; + private PaymentData data; + private PaymentEngineTasks tasks; + + @BeforeAll + public void testSetUp(Harness harness) { + data = PaymentData.builder() + .todayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")) + .distributionDate(LocalDate.now().format(DateTimeFormatter.ofPattern("dd.MM.yyyy"))) + .transactionType("xCT MT103 Return odchozi") + .build(); + MT103_FOR_HD21 = harness.getConfig("payments_cashless.foreignPayment.MT103_FOR_HD21"); + MT103_OUR = harness.getConfig("payments_cashless.foreignPayment.MT103_OUR"); + HD21_WITH_MT191 = harness.getConfig("payments_cashless.foreignPayment.HD21_WITH_MT191"); + HD21_FILE = harness.getConfig("payments_cashless.foreignPayment.HD21_FILE"); + MT103_WITH_MT191 = harness.getConfig("payments_cashless.foreignPayment.MT103_WITH_MT191"); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + public void setUpUniqueData(Harness harness) { + data.setRandom("HARNESS" + ThreadLocalRandom.current().nextInt(100000000, 999999999)); + data.setMessageId("HARNESS" + ThreadLocalRandom.current().nextInt(100000000, 999999999)); + data.setAmount(ThreadLocalRandom.current().nextInt(10, 99) + "," + ThreadLocalRandom.current().nextInt(10, 99)); + data.setAmount1(data.getAmount().replace(",", "")); + data.setAmountIcbs(data.getAmount().replace(",", ".")); + data.setLastNonpriorityField(ThreadLocalRandom.current().nextInt(501, 699)); + tasks = harness.tasks().paymentEngineTasks(); + } + + private void checkForeignTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkForeignTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + @Disabled + @Order(1) + @JiraTestCase(id = "PAY-T1849") + @TestCase(environments = {Environment.TST1, Environment.PPE}) + public void simulateIngoingMt103(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + data.setIban(harness.getConfig("payments_cashless.foreignPayment.MT103")); + assumptionForTestExecution_IngoingPayment(harness, user1); + harness.log("Random amount is: " + data.getAmount()); + MT_FILE = "regression/transactional/cashless/MT103.out"; + PaymentEngineRunInstance getId = getLastMTId(harness, logInToPae(harness, user1), tasks); + + lastField = Integer.valueOf(harness.get(LAST_SEQUENCE_NUMBER_KEY)); + String newFileName = String.format("0106%04d.out", lastField + 1); + File file = prepareFileForInput(harness, MT_FILE, newFileName, data); + + try { + uploadFileAndCheckMtTransactionStatus(harness, getId, + ARCHIV, file.getAbsolutePath(), newFileName); + harness.withPaymentEngine().closePaymentEngine(); + } catch (Exception e) { + throw e; + } finally { + file.delete(); + } + transactionId = harness.get(TRANSACTION_ID_KEY); + + harness.store("reports.tmfj.execution.comment", "Transaction amount: " + data.getAmount() + + "\nMT103 file name: " + newFileName + + "\nPrevious file ID: " + lastField + + "\nTransaction ID: " + transactionId); + } + + @Order(2) + @JiraTestCase(id = "PAY-T3630") + @TestCase(name = "Simulate Ingoing SCT Recall", environments = {Environment.TST1, Environment.PPE}) + public void simulateIngoingSCTRecall(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.foreignPayment.MT103acc")); + + logInToPae(harness, user1) + .then(tasks.createRequestForSCTIngoingPaymentReturn(transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + + logInToPae(harness, user2) + .then(tasks.verifyIngoing(transactionId)) + .then(tasks.searchTransactionAndWaitForStatus(RETURN, transactionId)) + .then(tasks.checkLifeCycleAndWaitForStatus(data, DISTRIBUTION)) + .storeTransactionIdByType(data.getTransactionType()) + .closeTab() + .then(tasks.sendAndRunXCTDistribution()) + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, harness.get(TRANSACTION_BY_TYPE_ID_KEY))) + .storeEquivalentAmountUsd(); + harness.withPaymentEngine().closePaymentEngine(); + returnedAmount = harness.get(EQUIVALENT_AMOUNT_KEY).toString().replace(".", "").replace(",", "."); + + checkForeignTransactionStatusBooked(harness, data.getDebtorAcc(), returnedAmount, harness.get(TRANSACTION_BY_TYPE_ID_KEY)); + + PaymentEngineUtils.logResultOfReturn(harness, transactionId, + harness.get(TRANSACTION_BY_TYPE_ID_KEY), data.getDebtorAcc(), data.getAmountIcbs(), returnedAmount); + } + + @Disabled + @Order(3) + @JiraTestCase(id = "PAY-T2460") + @TestCase(environments = {Environment.TST1, Environment.PPE}) + public void simulateIngoingMt103WithCover(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + data.setIban(harness.getConfig("payments_cashless.foreignPayment.MT103")); + assumptionForTestExecution_IngoingPayment(harness, user1); + harness.log("Random amount is: " + data.getAmount()); + MT_FILE = "regression/transactional/cashless/MT103_WITH_COVER.out"; + + PaymentEngineRunInstance getId = getLastMTId(harness, logInToPae(harness, user1), tasks); + + lastField = Integer.valueOf(harness.get(LAST_SEQUENCE_NUMBER_KEY)); + String mt103FileName = String.format("0106%04d.out", lastField + 1); + File mt103File = prepareFileForInput(harness, MT_FILE, mt103FileName, data); + PaymentEngineMonitoringInstanceFileRecords mt; + + try { + mt = uploadFileAndCheckMtTransactionStatus(harness, getId, + COVER_WAIT, mt103File.getAbsolutePath(), mt103FileName); + harness.withPaymentEngine().closePaymentEngine(); + } catch (Exception e) { + throw e; + } finally { + mt103File.delete(); + } + + MT_FILE = "regression/transactional/cashless/MT910_COVER.out"; + + getId = getLastMTId(harness, logInToPae(harness, user1), tasks); + + lastField = Integer.valueOf(harness.get(LAST_SEQUENCE_NUMBER_KEY)); + String mt109FileName = String.format("0106%04d.out", lastField + 1); + File mt109File = prepareFileForInput(harness, MT_FILE, mt109FileName, data); + + try { + mt = uploadFileAndCheckMtTransactionStatus(harness, getId, + ARCHIV, mt109File.getAbsolutePath(), mt109FileName); + } catch (Exception e) { + throw e; + } finally { + mt109File.delete(); + } + + mt.clickOnLifeCycleButton() + .waitForXctStatus(harness, ARCHIV.getStatus()); + harness.withPaymentEngine().closePaymentEngine(); + + harness.store("reports.tmfj.execution.comment", "Transaction amount is: " + data.getAmount() + + "\nMT103 file name is: " + mt103FileName + + "\nMT109 file name is: " + mt109FileName + + "\nPrevious file ID: " + lastField + + "\nTransaction ID is: " + harness.get(TRANSACTION_ID_KEY)); + } + + @Disabled + @Order(4) + @JiraTestCase(id = "PAY-T2490") + @TestCase(name = "Create Ingoing MT103 with HD:21", environments = {Environment.TST1, Environment.PPE}) + void createIngoingMt103ForHd21(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + + data.setIban(harness.getConfig("payments_cashless.foreignPayment.foreignIban")); + data.setRandom(String.valueOf(ThreadLocalRandom.current().nextInt(100, 999))); + data.setCreditorAcc(harness.getConfig("payments_cashless.foreignPayment.foreignCreditor")); + + logInToPae(harness, user1) + .then(tasks.storeLastMTId(filesTabName)); + harness.withPaymentEngine().closePaymentEngine(); + + lastField = Integer.valueOf(harness.get(LAST_SEQUENCE_NUMBER_KEY)); + String MT103FileName = String.format("0106%04d.out", lastField + 1); + File MT103File = prepareFileForInput(harness, MT103_FOR_HD21, MT103FileName, data); + + String HD21FileName = data.getTodayDate() + "_0600_000" + data.getLastNonpriorityField() + "_IL"; + File HD21File = prepareFileForInput(harness, HD21_FILE, HD21FileName, data); + + try { + logInToPae(harness, user1) + .then(tasks.inputMTFromSAA(MT103File.getAbsolutePath())) + .then(tasks.checkStatusOfMTFromSAA(MT103FileName, COVER_WAIT)) + .closeTab() + .then(tasks.inputCCIFromCERTIS(HD21File.getAbsolutePath())) + .then(tasks.checkStatusOfCCIFromCERTIS(HD21FileName, ARCHIV)) + .then(tasks.checkStatusOfTransactionsFromSAA(MT103FileName, ARCHIV, data.getAmount(), transactionTypeFee)); + harness.withPaymentEngine().closePaymentEngine(); + + String transactionId = harness.get(PaymentEngineMonitoringInstanceFileRecords.TRANSACTION_ID_KEY); + String ingoingTransactionId = harness.get(PaymentEngineMonitoringInstanceLifeCycle.INGOING_TRANSACTION_ID_KEY); + String feeTransactionId = harness.get(PaymentEngineMonitoringInstanceLifeCycle.FEE_TRANSACTION_ID_KEY); + String feeAmount = harness.get(PaymentEngineMonitoringInstanceLifeCycle.FEE_AMOUNT_KEY).toString().replace(",", "."); + + checkForeignTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmountIcbs(), transactionId); + + PaymentEngineUtils.logResultWithFeeAmount(harness, transactionId, ingoingTransactionId, feeTransactionId, data.getCreditorAcc(), data.getAmount(), feeAmount); + + } catch (Exception e) { + throw e; + } finally { + MT103File.delete(); + HD21File.delete(); + } + } + + @Disabled + @Order(5) + @JiraTestCase(id = "PAY-T2491") + @TestCase(name = "Create Ingoing MT103 with credit statement HD:21", environments = {Environment.TST1, Environment.PPE}) + void createIngoingMt103WithCreditStatementHd21(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) throws IOException { + + data.setIban(harness.getConfig("payments_cashless.foreignPayment.foreignIban")); + data.setRandom(String.valueOf(ThreadLocalRandom.current().nextInt(100, 999))); + data.setDebtorAcc(harness.getConfig("payments_cashless.foreignPayment.coverAccountIngoing")); + data.setCreditorAcc(harness.getConfig("payments_cashless.foreignPayment.foreignCreditor")); + + logInToPae(harness, user1) + .then(tasks.storeLastMTId(filesTabName)); + harness.withPaymentEngine().closePaymentEngine(); + + lastField = Integer.valueOf(harness.get(LAST_SEQUENCE_NUMBER_KEY)); + String MT103FileName = String.format("0106%04d.out", lastField + 1); + File MT103File = prepareFileForInput(harness, MT103_OUR, MT103FileName, data); + File HD21File = null; + + try { + logInToPae(harness, user1) + .then(tasks.inputMTFromSAA(MT103File.getAbsolutePath())) + .then(tasks.checkStatusOfMTFromSAA(MT103FileName, COVER_WAIT)) + .closeTab() + .then(tasks.editAndReleaseIngoingWaiting(harness.get(PaymentEngineMonitoringInstanceFileRecords.TRANSACTION_ID_KEY), data.getDebtorAcc())); + harness.withPaymentEngine().closePaymentEngine(); + + String transactionId = harness.get(PaymentEngineMonitoringInstanceFileRecords.TRANSACTION_ID_KEY); + + logInToPae(harness, user2) + .then(tasks.verifyIngoing(transactionId)) + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, transactionId)) + .then(tasks.checkLifeCycleAndStoreRowTransactionId(DISTRIBUTION)) + .then(tasks.sendAndRunXCTDistribution()); + harness.withPaymentEngine().closePaymentEngine(); + + String mt191TransactionId = harness.get(SECOND_ROW_TRANSACTION_ID_KEY); + String mt191Amount = harness.get(SECOND_ROW_TRANSACTION_AMOUNT_KEY); + data.setTrxReference(harness.get(REF_TRANSACTION_KEY)); + + String HD21FileName = data.getTodayDate() + "_0600_000" + data.getLastNonpriorityField() + "_IL"; + HD21File = prepareFileForInput(harness, HD21_WITH_MT191, HD21FileName, data); + + logInToPae(harness, user1) + .then(tasks.inputCCIFromCERTIS(HD21File.getAbsolutePath())) + .then(tasks.checkStatusOfCCIFromCERTIS(HD21FileName, ARCHIV)) + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, mt191TransactionId)) + .then(tasks.checkLifeCycleAndStoreThirdRowTransactionId(ARCHIV)); + harness.withPaymentEngine().closePaymentEngine(); + + String creditStatementHd21Id = harness.get(THIRD_ROW_TRANSACTION_ID_KEY); + checkForeignTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmountIcbs(), transactionId); + + PaymentEngineUtils.logResultOfMt103WithCreditStatementHd21(harness, transactionId, mt191TransactionId, + creditStatementHd21Id, data.getCreditorAcc(), data.getAmount(), mt191Amount); + + } catch (Exception e) { + throw e; + } finally { + MT103File.delete(); + HD21File.delete(); + } + } + + @JiraTestCase(id = "PAY-T2492") + @Order(6) + @TestCase(name = "Test priority MT103 with MT191 + HD21", environments = {Environment.TST1, Environment.PPE}) + void outgoingPriorityMT103WithMT191AndHD21(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) throws IOException { + + data.setDebtorIban(harness.getConfig("payments_cashless.foreignPayment.foreignIban")); + data.setCreditorIban(harness.getConfig("payments_cashless.foreignPayment.MT191.creditorIban")); + data.setCreditorName("Fifinka, s.r.o."); + data.setCreditorBic("BGLLLULLXXX"); + data.setBankName(""); + data.setCreditorAcc(""); + data.setAmount1(ThreadLocalRandom.current().nextInt(1, 299) + "," + ThreadLocalRandom.current().nextInt(1, 99)); + + logInToPae(harness, user1) + .then(tasks.createForeignPriorityPayment(data, CURRENCY_CZK_LONG)); + harness.withPaymentEngine().closePaymentEngine(); + + transactionId = StringUtils.substringBetween(harness.get("TRANSACTION_ID_KEY"), "ID ", "."); + + logInToPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, DISTRIBUTION)) + .closeTab() + .then(tasks.sendAndRunXCTDistribution()) + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, transactionId)) + .then(tasks.checkPriorityMT103AndHD21RecordDetail(data.getDistributionDate())) + .then(tasks.storeLastMTId(filesTabName)); + harness.withPaymentEngine().closePaymentEngine(); + + data.setTrxReference(harness.get(PaymentEngineSearchTransactionRecordDetail.REF_TRANSACTION_KEY)); + lastField = Integer.valueOf(harness.get(LAST_SEQUENCE_NUMBER_KEY)); + String MT103FileName = String.format("0106%04d.out", lastField + 1); + File MT103File = prepareFileForInput(harness, MT103_WITH_MT191, MT103FileName, data); + + try { + + logInToPae(harness, user1) + .then(tasks.inputMTFromSAA(MT103File.getAbsolutePath())) + .then(tasks.checkStatusOfMTFromSAA(MT103FileName, ARCHIV)) + .closeTab() + .then(tasks.checkStatusOfTransactionsFromSAA(MT103FileName, ARCHIV, data.getAmount1(), transactionTypeHD21)); + harness.withPaymentEngine().closePaymentEngine(); + + } catch (Exception e) { + throw e; + } finally { + MT103File.delete(); + } + + harness.store("reports.tmfj.execution.comment", "\nPriority xCT MT103 outgoing " + transactionId + " was successfully archived." + + "\nxCT MTx91 ingoing " + harness.get(FEE_TRANSACTION_ID_KEY) + " was successfully archived." + + "\nDebtor IBAN: " + data.getIban() + + "\nCreditor IBAN: " + data.getCreditorIban() + + "\nPriority xCT MT103 outgoing amount: " + data.getAmount() + + "\nxCT MTx91 ingoing amount: " + data.getAmount1() + + "\nMT103 file name is: " + MT103FileName); + } + + PaymentEngineHomePage logInToPae(Harness harness, @Key("payment.engine") Credentials credentials) { + return harness.withPaymentEngine() + .openLoginPage() + .login(credentials.getUsername(), credentials.getPassword()) + .clickOkButton(); + } + + void assumptionForTestExecution_IngoingPayment(Harness harness, @Key("payment.engine") Credentials credentials) { + logInToPae(harness, credentials) + .clickAdministrationAndChooseChannelParametersFromParameters() + .fillParameterName("VALIDATE_CHECKSUM") + .clickOnChannel() + .selectChannel(ParameterChannels.MT) + .clickApplyButton() + .getParameterValue(); + harness.withPaymentEngine().closePaymentEngine(); + assumeTrue(harness.get(PARAMETER_VALUE_ID_KEY).equals("N")); + } + + private PaymentEngineMonitoringInstanceFileRecords uploadFileAndCheckMtTransactionStatus(Harness harness, PaymentEngineRunInstance getId, TransactionReasonPAE reason, String filePath, String fileName) { + + return getId.clickOnUploadFileButton() + .uploadFile(filePath) + .clickSendPopupButton() + .clickOkPopupButton() + .clickOnFileTab("Soubory") + .waitForFileAndClickOnIt(fileName) + .clickOkButton() + .closeTab() + .clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(fileName) + .storeTransactionId() + .waitForStatus(harness, reason); + + } + + private PaymentEngineRunInstance getLastMTId(Harness harness, PaymentEngineHomePage page, PaymentEngineTasks tasks) { + return page.then(tasks.checkQueForMTExistence(filesTabName)) + .clickOnInputMT() + .clickOnRunButton() + .storeLastNumberInSequence(harness); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/ingoing/IngoingSepaTest.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/ingoing/IngoingSepaTest.java new file mode 100644 index 0000000..d42385d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/ingoing/IngoingSepaTest.java @@ -0,0 +1,130 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.foreign.ingoing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineRunInstance; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.dsl.payment_engine.model.FileForInputPreparation; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.io.*; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage.TRANSACTION_ID_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionDetailLifeCycle.TRANSACTION_BY_TYPE_ID_KEY; + +@TestScenarioWithOrder(name = "Ingoing foreign payment controller") +public class IngoingSepaTest extends FileForInputPreparation { + + private String SEPA_FILE; + private PaymentData data; + private PaymentEngineTasks tasks; + + @BeforeAll + public void testSetUp(Harness harness) { + data = PaymentData.builder() + .payScheme("SEPA Credit Transfer") + .front("Distribuce clearing: archiv") + .debtorAcc(harness.getConfig("payments_cashless.foreignPayment.XCTacc")) + .settlementDateFrom(DateUtils.getFormattedPreviousWorkday("dd.MM.yyyy")) + .settlementDateTo(DateUtils.getFormattedTodayDate("dd.MM.yyyy")) + .transactionCode("FRAD - Fraudulent Origin") + .transactionType("SCT Recall odchozi") + .trxReference(DateUtils.getFormattedTodayDateTime("yyyyMMddhhmmssSS")) + .iban(harness.getConfig("payments_cashless.foreignPayment.XCT")) + .count(ThreadLocalRandom.current().nextInt(1, 999999)) + .build(); + data.setMessageId(data.getTrxReference() + "-" + ThreadLocalRandom.current().nextInt(100, 999)); + SEPA_FILE = harness.getConfig("payments_cashless.foreignPayment.sepaFile"); + } + + @BeforeEach + public void testSetUpUniqueData(Harness harness) { + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(100, 999))); + data.setRandom(String.valueOf(ThreadLocalRandom.current().nextInt(100000, 999999))); + tasks = harness.tasks().paymentEngineTasks(); + } + + @JiraTestCase(id = "PAY-T2457") + @Order(1) + @TestCase(environments = {Environment.TST1, Environment.PPE}) + public void simulateIngoingSepa(Harness harness, @Key("payment.engine") Credentials credentials) throws IOException { + harness.log("Random amount is: " + data.getAmount()); + + PaymentEngineRunInstance instance = logInPae(harness, credentials) + .clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputSepa() + .clickOnRunButton(); + + String newFileName = DateUtils.getFormattedTodayDate("yyyy-MM-dd") + "_AGBA_SCF_0" + data.getCount() + "_P008.xml"; + File file = prepareFileForInput(harness, SEPA_FILE, newFileName, data); + + try { + PaymentEngineMonitoringInstanceFileRecords records = instance.clickOnUploadFileButton() + .uploadFile(file.getAbsolutePath()) + .clickSendPopupButton() + .clickOkPopupButton() + .clickOnFileTab("Soubory") + .waitForFileAndClickOnIt(newFileName) + .clickOkButton() + .closeTab() + .clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(newFileName) + .storeTransactionId(); + + harness.store("reports.tmfj.execution.comment", "Transaction amount: " + data.getAmount() + + "\nFile name: " + newFileName + + "\nTransaction ID: " + harness.get(PaymentEngineMonitoringInstanceFileRecords.TRANSACTION_ID_KEY)); + + records.waitForStatus(harness, ARCHIV); + } catch (Exception e) { + throw e; + } finally { + file.delete(); + } + } + + @JiraTestCase(id = "PAY-T3629") + @Order(2) + @TestCase(name = "Foreign SCT Ingoing Payment Reject", environments = {Environment.TST1, Environment.PPE}) + void requestForeignSCTIngoingPaymentReject(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + + logInPae(harness, user1) + .then(tasks.searchTransactionBySettlement(data, ARCHIV)) + .then(tasks.searchTransactionAndRequestForCancellation(harness.get(TRANSACTION_ID_KEY), data)); + harness.withPaymentEngine().closePaymentEngine(); + + String transactionalId = harness.get(TRANSACTION_ID_KEY); + + logInPae(harness, user2) + .then(tasks.verifyDistributionToClearingAndWaitForStatus(transactionalId, ARCHIV)) + .then(tasks.checkLifeCycleAndWaitForStatus(data, DISTRIBUTION)) + .storeTransactionIdByType(data.getTransactionType()); + harness.withPaymentEngine().closePaymentEngine(); + + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionalId + " was successfully archived." + + "\n" + "SCT Recall outgoing " + harness.get(TRANSACTION_BY_TYPE_ID_KEY) + " status: " + DISTRIBUTION + + "\n" + "Debtor account: " + data.getDebtorAcc()); + } + + PaymentEngineHomePage logInPae(Harness harness, @Key("payment.engine") Credentials credentials) { + return harness.withPaymentEngine() + .openLoginPage() + .login(credentials.getUsername(), credentials.getPassword()) + .clickOkButton(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/AbstractOutgoingXctClientPaymentTest.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/AbstractOutgoingXctClientPaymentTest.java new file mode 100644 index 0000000..7a4d29b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/AbstractOutgoingXctClientPaymentTest.java @@ -0,0 +1,129 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.foreign.outgoing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.ForeignChannelIdentities; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.model.FileForInputPreparation; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import org.apache.commons.lang.StringUtils; + +import java.io.*; + +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.DISTRIBUTION; +import static org.junit.jupiter.api.Assumptions.assumeTrue; + +public abstract class AbstractOutgoingXctClientPaymentTest extends FileForInputPreparation { + + protected static String transactionId; + protected static File file; + private static String CREDITOR_ACCOUNT; + private static String CREDITOR_IBAN; + private static String CREDITOR_BIC; + private static String CREDITOR_NAME; + private static String CREDITOR_BANK_NAME; + private static String MESSAGE; + private static String CURRENCY; + private static final String MT101_PATH = "regression/transactional/cashless/MT101.out"; + private static final String MT101 = "0105X.out"; + + abstract void verifyForeignPaymentXct(Harness harness, Credentials credentials); + + abstract void createForeignPaymentXct(Harness harness, Credentials credentials); + + abstract void outgoingXctAutomaticTracing(Harness harness, Credentials user1, Credentials user2); + + abstract void outgoingXctManualTracing(Harness harness, Credentials user1, Credentials user2); + + abstract void outgoingXctBasedOnIncomingMT101(Harness harness, Credentials credentials) throws IOException; + + protected static PaymentEngineHomePage logInPae(Harness harness, Credentials credentials) { + return harness.withPaymentEngine() + .openLoginPage() + .login(credentials.getUsername(), credentials.getPassword()) + .clickOkButton(); + } + + protected static void verifyForeignPaymentAndClosePAE(Harness harness, Credentials credentials) { + verifyTransactionAndWaitForStatus(harness, credentials, DISTRIBUTION); + harness.closeEndpoint(harness.getEndpoint(PaymentEngineEndpoint.class)); + harness.log("Transaction " + transactionId + " was successfully verified"); + } + + protected static PaymentEngineSearchPage verifyTransactionAndWaitForStatus(Harness harness, Credentials credentials, + TransactionReasonPAE status) { + return logInPae(harness, credentials) + .clickTransactionAndChooseForVerificationFromCreateManualMenu() + .pressSearch() + .fillId(transactionId) + .searchUnverified() + .selectTransaction(transactionId) + .clickVerifyTransaction() + .clickSubmit() + .clickSubmitIfStillVisible() + .search() + .typeId(transactionId) + .clickSearch() + .waitForStatus(harness, status); + } + + protected void createForeignPayment(Harness harness, Credentials credentials, PaymentData data) { + logInPae(harness, credentials) + .clickTransactionAndChooseCreateXctClientPaymentFromCreateManualMenu() + .clickOnChannelIdentity() + .selectChannelIdentity(ForeignChannelIdentities.PAE) + .fillManualData(data.getAmount(), + CREDITOR_ACCOUNT, + CREDITOR_IBAN, + MESSAGE, + CURRENCY, + CREDITOR_NAME, + CREDITOR_BIC, + CREDITOR_BANK_NAME) + .clickToExecutionDateCalendar() + .chooseTodayExecution() + .selectDebtorByIban(data.getDebtorIban()) + .clickSubmit() + .storeTransactionId() + .clickNo(); + + transactionId = StringUtils.substringBetween(harness.get("TRANSACTION_ID_KEY"), "ID ", "."); + } + + + protected static void setTransactionData(String creditorAccount, String creditorIban, String message, String currency, + String creditorName, String creditorBic, String creditorBankName) { + CREDITOR_ACCOUNT = creditorAccount; + CREDITOR_IBAN = creditorIban; + MESSAGE = message; + CURRENCY = currency; + CREDITOR_NAME = creditorName; + CREDITOR_BIC = creditorBic; + CREDITOR_BANK_NAME = creditorBankName; + } + + protected void assumption_BicExistence(Harness harness, Credentials credentials, String bic, boolean wantExistBic) { + + try { + logInPae(harness, credentials) + .clickAdministrationAndChooseXCTRoutingTableFromTransactionsRouting() + .choseBicAndApply(bic) + .checkBicExistence(); + } catch (Exception e) { + harness.closeEndpoint(harness.getEndpoint(PaymentEngineEndpoint.class)); + assumeTrue(!wantExistBic); + return; + } + harness.closeEndpoint(harness.getEndpoint(PaymentEngineEndpoint.class)); + assumeTrue(wantExistBic); + } + + protected void createMT101TemFile(Harness harness, PaymentData data) throws IOException { + String mt101FileName = MT101.replace("X", StringUtils.leftPad(String.valueOf(lastField + Integer.valueOf(data.getRandom())), 4, "0")); + data.setIban(CREDITOR_IBAN); + file = prepareFileForInput(harness, MT101_PATH, mt101FileName, data); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/FeeCalculator.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/FeeCalculator.java new file mode 100644 index 0000000..27921d9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/FeeCalculator.java @@ -0,0 +1,92 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.foreign.outgoing; + +import com.google.gson.JsonObject; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.dsl.payment_engine.model.CustFeeCalculatorResponse; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.platform.commons.util.StringUtils; + +import java.math.BigDecimal; + +@TestScenarioWithOrder(name = "Fee calculator tests for foreign payments") +public class FeeCalculator { + + private String TOKEN_CBL; + + @BeforeAll + void testSetUp(Harness harness) { + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @JiraTestCase(id = "PAY-T1664") + @TestCase(name = "Call calculator with accountId", environments = {Environment.TST1, Environment.PPE}) + void callCalculatorWithAccountId(Harness harness) { + String accountId = harness.getConfig("payments_cashless.feeCalculator.account"); + String request = createRequest(accountId, "", "USD", new BigDecimal(700), "PMFAUS66", "NORM"); + + CustFeeCalculatorResponse response = harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/PAE/cust-fee-calculator/v1/calculate") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_CBL) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload(request) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(CustFeeCalculatorResponse.class); + + Assertions.assertEquals(new BigDecimal("220"), response.fees.get(0).getFeeAmount().getValue()); + Assertions.assertEquals("BOF_STP", response.fees.get(0).getFeeCode().toString()); + + } + + @JiraTestCase(id = "PAY-T1665") + @TestCase(name = "Call calculator with Iban", environments = {Environment.TST1, Environment.PPE}) + void callCalculatorWithIban(Harness harness) { + String iban = harness.getConfig("payments_cashless.feeCalculator.iban"); + String request = createRequest("", iban, "USD", new BigDecimal(700), "PMFAUS66", "NORM"); + + CustFeeCalculatorResponse response = harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/PAE/cust-fee-calculator/v1/calculate") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_CBL) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload(request) + .post() + .andAssertStatus(200) + .mapResponseIntoObject(CustFeeCalculatorResponse.class); + + Assertions.assertEquals(new BigDecimal("220"), response.fees.get(0).getFeeAmount().getValue()); + Assertions.assertEquals("BOF_STP", response.fees.get(0).getFeeCode().toString()); + } + + private String createRequest(String accountId, String iban, String currency, BigDecimal value, String bic, String priority) { + JsonObject json = new JsonObject(); + JsonObject account = new JsonObject(); + JsonObject amount = new JsonObject(); + + if (StringUtils.isBlank(accountId)) { + account.addProperty("iban", iban); + } else { + account.addProperty("accountIdentification", accountId); + } + + amount.addProperty("currency", currency); + amount.addProperty("value", value); + + json.add("account", account); + json.add("amount", amount); + json.addProperty("creditorBic", bic); + json.addProperty("instructionPriority", priority); + return json.toString(); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/ForeignIFCY.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/ForeignIFCY.java new file mode 100644 index 0000000..8cf4959 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/ForeignIFCY.java @@ -0,0 +1,121 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.foreign.outgoing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.CurrencyPAE; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.dsl.util.task.wso2.payments.PaymentsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.CurrencyPAE.CURRENCY_EUR_SHORT; +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.ARCHIV; + +@TestScenarioWithOrder(name = "Create foreign IFCY payment") +public class ForeignIFCY { + + private String TOKEN_CBL; + private PaymentData data; + private PaymentEngineTasks tasks; + private String transactionId; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .typeOfMessage("11") + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .exchangeRate("24.5289") + .payScheme("IFCY") + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.accountCZK")) + .creditorAcc(harness.getConfig("payments_cashless.domesticPayment.accountEUR")) + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 199))); + tasks = new PaymentEngineTasks(harness); + } + + private void createIFCYTransaction(Harness harness, CurrencyPAE currencyPAE) { + String request = harness.tasks().wso2().payments().createRequestForIFCYTransactionCreating(data, currencyPAE); + harness.tasks() + .wso2() + .payments() + .createIFCYTransaction(TOKEN_CBL, request); + transactionId = harness.get(PaymentsTasks.TRANSACTION_ID_KEY); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + private void checkTransactionStatusPaeAndStoreEquivalentAmount(Harness harness, Credentials user2, + TransactionReasonPAE status, String transactionRow) { + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.searchTransactionAndWaitForStatus(status, transactionId)) + .clickLifeCycle() + .refreshLifeCycle() + .wait3sec() + .storeEquivalentAmountCzk(transactionRow); + harness.withPaymentEngine().closePaymentEngine(); + data.setEquivalentAmount(harness.get(PaymentEngineSearchPage.EQUIVALENT_AMOUNT_KEY) + .toString().replace(".", "").replace(",", ".")); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3609") + @TestCase(name = "Create foreign IFCY payment with FEXR exchange rate type", environments = {Environment.TST1, Environment.PPE}) + void createForeignIfcyPaymentWithFexrRateType(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user2) { + data.setRateType("FEXR"); + data.setIcbsProfile("COUFX"); + + createIFCYTransaction(harness, CURRENCY_EUR_SHORT); + checkTransactionStatusPaeAndStoreEquivalentAmount(harness, user2, ARCHIV, "2"); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getEquivalentAmount(), transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultWithEquivalentAmount(harness, transactionId, data.getDebtorAcc(), + data.getCreditorAcc(), data.getAmount() + " EUR", data.getEquivalentAmount() + " CZK"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T3610") + @TestCase(name = "Create foreign IFCY payment with BANK exchange rate type", environments = {Environment.TST1, Environment.PPE}) + void createForeignIfcyPaymentWithBankRateType(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user2) { + data.setRateType("BANK"); + data.setIcbsProfile("COU15"); + + createIFCYTransaction(harness, CURRENCY_EUR_SHORT); + checkTransactionStatusPaeAndStoreEquivalentAmount(harness, user2, ARCHIV, "2"); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getEquivalentAmount(), transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultWithEquivalentAmount(harness, transactionId, data.getDebtorAcc(), + data.getCreditorAcc(), data.getAmount() + " EUR", data.getEquivalentAmount() + " CZK"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/OutgoingSepaTest.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/OutgoingSepaTest.java new file mode 100644 index 0000000..927f4be --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/OutgoingSepaTest.java @@ -0,0 +1,216 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.foreign.outgoing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.ForeignChannelIdentities; +import cz.moneta.test.dsl.payment_engine.enums.ForeignPaymentType; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.apache.commons.lang.StringUtils; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.ForeignChannelIdentities.PAE; +import static cz.moneta.test.dsl.payment_engine.enums.ForeignPaymentType.SEPA_CREDIT_TRANSFER; +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage.EQUIVALENT_AMOUNT_KEY; + +@TestScenarioWithOrder(name = "Create foreign payment in PAE and verify.") +public class OutgoingSepaTest { + private String transactionId; + private PaymentData data; + private PaymentEngineTasks tasks; + private String TOKEN_CBL; + + @BeforeAll + void testSetUp(Harness harness) { + data = PaymentData.builder() + .debtorIban(harness.getConfig("payments_cashless.foreignPayment.SEPA")) + .debtorAcc(harness.getConfig("payments_cashless.foreignPayment.XCTacc")) + .creditorIban("IT95G0503411401000000102077") + .amount(ThreadLocalRandom.current().nextInt(1, 10) + "," + ThreadLocalRandom.current().nextInt(1, 99)) + .distributionGroup("SIPS") + .payScheme("SEPA Credit Transfer") + .instruction("OUR CLIENT REQUESTED TO CONFIRM DATE OF VALUE FOR THIS PAYMENT") + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .creditorName("FIT \"FIT\"") + .creditorAdressLine1("FIT Okruzni .FIT. ") + .creditorAdressLine2("Bratislava .FIT.") + .e2eRefDb("FIT \"FIT\"") + .message("FIT 3rd flook \"FIT\"") + .channelId("IB") + .currencyCode("23") + .feeType("SHA") + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void testSetUpUniqueData(Harness harness) { + tasks = harness.tasks().paymentEngineTasks(); + } + + private void createForeignTransaction(Harness harness) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForForeignTransactionCreating(data); + harness.tasks() + .wso2() + .payments() + .createForeignTransaction(TOKEN_CBL, request); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + private void createForeignSepa(Harness harness, Credentials user1, ForeignPaymentType paymentType, + ForeignChannelIdentities channelIdentities) { + logInPae(harness, user1) + .clickTransactionAndChooseCreateSctFromCreateManualMenu() + .clickOnPaymentScheme() + .selectPaymentScheme(paymentType) + .clickOnChannelIdentity() + .selectChannelIdentity(channelIdentities) + .fillManualData(data.getAmount(), data.getDebtorIban(), data.getCreditorIban(), data.getMessageMin1()) + .clickOnExecutionDateCalendar() + .chooseTodayExecution() + .clickSubmit() + .storeTransactionId() + .clickNo(); + harness.withPaymentEngine().closePaymentEngine(); + transactionId = StringUtils.substringBetween(harness.get("TRANSACTION_ID_KEY"), "ID ", "."); + } + + private void verifyForeignSepa(Harness harness, Credentials user2, + TransactionReasonPAE status1, TransactionReasonPAE status2) { + logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, status1)) + .closeTab() + .then(tasks.sendAndRunSCTDistribution(data)) + .then(tasks.searchTransactionAndWaitForStatus(status2, transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + } + + @JiraTestCase(id = "PAY-T1752") + @Order(1) + @TestCase(name = "Create foreign payment", environments = {Environment.TST1, Environment.PPE}) + void createForeignPaymentSepa(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) { + createForeignSepa(harness, user1, SEPA_CREDIT_TRANSFER, PAE); + + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully created." + + "\n" + "Debtor IBAN: " + data.getDebtorIban() + + "\n" + "Creditor IBAN: " + data.getCreditorIban() + + "\n" + "Amount: " + data.getAmount()); + } + + @JiraTestCase(id = "PAY-T1753") + @Order(2) + @TestCase(name = "Verify foreign payment", environments = {Environment.TST1, Environment.PPE}) + void verifyForeignPaymentSepa(Harness harness, @Key(Keys.paymentEngine.secondUser) Credentials user2) { + + verifyForeignSepa(harness, user2, DISTRIBUTION, ARCHIV); + + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully archived." + + "\n" + "Debtor IBAN: " + data.getDebtorIban() + + "\n" + "Creditor IBAN: " + data.getCreditorIban() + + "\n" + "Amount: " + data.getAmount()); + } + + @JiraTestCase(id = "PAY-T3631") + @Order(3) + @TestCase(name = "Foreign SCT Outgoing Payment Status Inquiry", environments = {Environment.TST1, Environment.PPE}) + void requestForeignSCTOutgoingPaymentStatusInquiry(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + String transactionIdSepa = transactionId; + + logInPae(harness, user1) + .then(tasks.createRequestForSCTOutgoingPaymentStatusInquiry(transactionIdSepa, data)); + harness.withPaymentEngine().closePaymentEngine(); + + transactionId = PaymentEngineUtils.getTransactionalId(harness); + + verifyForeignSepa(harness, user2, DISTRIBUTION, SENT_WAIT); + + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionIdSepa + " was successfully archived." + + "\n" + "SCT request " + transactionId + " was successfully sent, waiting for a reply (ISD)." + + "\n" + "Debtor IBAN: " + data.getDebtorIban() + + "\n" + "Creditor IBAN: " + data.getCreditorIban() + + "\n" + "Amount: " + data.getAmount()); + } + + @JiraTestCase(id = "PAY-T3769") + @Order(4) + @TestCase(name = "Create Foreign SCT Outgoing - Automatic False Positive", environments = {Environment.TST1, Environment.PPE}) + void createForeignSCTOutgoingAutomaticFalsePositive(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + + data.setDebtorIban("CZ5606000000000115115115"); + createForeignSepa(harness, user1, SEPA_CREDIT_TRANSFER, PAE); + + verifyForeignSepa(harness, user2, DISTRIBUTION, ARCHIV); + + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully archived." + + "\n" + "Debtor IBAN: " + data.getDebtorIban() + + "\n" + "Creditor IBAN: " + data.getCreditorIban() + + "\n" + "Amount: " + data.getAmount()); + } + + @JiraTestCase(id = "PAY-T3770") + @Order(5) + @TestCase(name = "Create Foreign SCT Outgoing From IB to Pae - FIT", environments = {Environment.TST1, Environment.PPE}) + void createForeignSCTOutgoingFromIBtoPaeFIT(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + + data.setDebtorIban(harness.getConfig("payments_cashless.foreignPayment.SEPA")); + data.setCreditorIban("SK1509000000000054174233"); + data.setAmount(ThreadLocalRandom.current().nextInt(1, 10) + "." + ThreadLocalRandom.current().nextInt(1, 99)); + + createForeignTransaction(harness); + + transactionId = harness.get("TRANSACTION_ID_KEY"); + + logInPae(harness, user1) + .then(tasks.searchTransactionAndWaitForStatus(DISTRIBUTION, transactionId)) + .closeTab() + .then(tasks.sendAndRunSCTDistribution(data)) + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, transactionId)) + .storeEquivalentAmountEur(); + harness.withPaymentEngine().closePaymentEngine(); + + data.setEquivalentAmount(harness.get(EQUIVALENT_AMOUNT_KEY).toString().replace(",", ".")); + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getEquivalentAmount(), transactionId); + + PaymentEngineUtils.logResultWithEquivalentAmount(harness, transactionId, data.getDebtorIban(), + data.getCreditorIban(), data.getAmount() + " EUR", data.getEquivalentAmount() + " CZK"); + + } + + PaymentEngineHomePage logInPae(Harness harness, Credentials credentials) { + return harness.withPaymentEngine() + .openLoginPage() + .login(credentials.getUsername(), credentials.getPassword()) + .clickOkButton(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/OutgoingXctClientPaymentTest.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/OutgoingXctClientPaymentTest.java new file mode 100644 index 0000000..a2d7dca --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/OutgoingXctClientPaymentTest.java @@ -0,0 +1,282 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.foreign.outgoing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.home.PaymentEngineHomePage; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineRunInstance; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.endpoints.payment_engine.PaymentEngineEndpoint; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.*; + +import java.io.IOException; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineRunInstance.LAST_SEQUENCE_NUMBER_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionRecordDetail.SETTLEMENT_DATE_KEY; +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; + +@NonConcurrentTestScenario +@TestScenarioWithOrder(name = "Create foreign payment in PAE and verify.") +public class OutgoingXctClientPaymentTest extends AbstractOutgoingXctClientPaymentTest { + + private static final String CREDITOR_BIC_AUTO = "KOMBCZPPXXX"; + private static final String CREDITOR_BIC_MAN = "CEKOCZPPXXX"; + private static final String CLEARING_PARTNER = "CERTIS-CZK"; + private static final String CORESP_PARTNER = "CNBACZPP"; + private String INTERMEDIARY_BIC; + private static final String COVERAGE_ACCOUNT = "10110666996123/0300"; + private PaymentData data; + + @BeforeAll + void testSetUp(Harness harness) { + INTERMEDIARY_BIC = harness.getConfig("payments_cashless.foreignPayment.IntermediaryBIC"); + data = PaymentData.builder().distributionDate(LocalDate.now().format(DateTimeFormatter.ofPattern("dd.MM.yyyy"))) + .debtorIban(harness.getConfig("payments_cashless.foreignPayment.XCT")) + .iban(harness.getConfig("payments_cashless.foreignPayment.foreignIban")) + .build(); + } + + @BeforeEach + void testSetUpUniqueData() { + data.setAmount(ThreadLocalRandom.current().nextInt(1, 10) + "," + ThreadLocalRandom.current().nextInt(1, 99)); + data.setAmount1(ThreadLocalRandom.current().nextInt(1, 299) + "," + ThreadLocalRandom.current().nextInt(1, 99)); + data.setRandom(String.valueOf(ThreadLocalRandom.current().nextInt(1, 5))); + } + + @JiraTestCase(id = "PAY-T2464") + @Order(1) + @TestCase(name = "Create foreign payment", environments = {Environment.TST1, Environment.PPE}) + void createForeignPaymentXct(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials credentials) { + setTransactionData("8765434567890", + "", + "Harrness automated test XCT Client Payment", + "USD - US Dollar", + "Barack Obama", + "IRVTUS3N", "Bank of New York Mellon" + ); + createForeignPayment(harness, credentials, data); + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully created." + + "\n" + "Amount: " + data.getAmount() + + "\n" + "Debtor IBAN: " + data.getDebtorIban() + + "\n" + "Creditor Account: 8765434567890"); + } + + @JiraTestCase(id = "PAY-T2465") + @Order(2) + @TestCase(name = "Verify foreign payment", environments = {Environment.TST1, Environment.PPE}) + void verifyForeignPaymentXct(Harness harness, @Key(Keys.paymentEngine.secondUser) Credentials credentials) { + verifyForeignPaymentAndClosePAE(harness, credentials); + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully verified." + + "\n" + "Amount: " + data.getAmount() + + "\n" + "Debtor IBAN: " + data.getDebtorIban() + + "\n" + "Creditor Account: 8765434567890"); + } + + @JiraTestCase(id = "PAY-T2420") + @Order(3) + @TestCase(name = "Test Xct with automatic tracing", environments = {Environment.TST1, Environment.PPE}) + void outgoingXctAutomaticTracing(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + assumption_BicExistence(harness, user1, "BYLADEMMXXX", true); + + setTransactionData("", + "DE63702501500029263621", + "Harness CZK automaticke trasovani", + "CZK - Czech Koruna", + "ANGELA MERKEL", + "", + "" + ); + + //create transaction + createForeignPayment(harness, user1, data); + harness.closeEndpoint(harness.getEndpoint(PaymentEngineEndpoint.class)); + + //verify transaction by user2 + verifyForeignPaymentAndClosePAE(harness, user2); + + //run distribution and check result with user1 + logInPae(harness, user1) + .clickMonitoringAndChooseProcessListFromProcessMonitoring() + .enterXCTDistribution() + .clickOnRunButton() + .clickOnOk() + .closeErrorPopUpIfVisibleXCT() + .closeTab() + .search() + .typeId(transactionId) + .clickSearch() + .waitForStatus(harness, ARCHIV) + .clickOnTransactionDetail() + .clickOnRecordDetail() + .checkXctRecordDetailElements(CREDITOR_BIC_AUTO, CORESP_PARTNER, CREDITOR_BIC_AUTO, INTERMEDIARY_BIC) + .clickExitFromRecordDetail() + .clickOnLifeCycle() + .clickOnHD21() + .clickOnHD21Detail() + .clickOnRecordDetail() + .checkDistributionDate(data.getDistributionDate()) + .storeSettlementDate(); + + Assertions.assertTrue(LocalDate.now().isBefore(LocalDate.parse(harness.get(SETTLEMENT_DATE_KEY), DateTimeFormatter.ofPattern("dd.MM.yyyy")))); + + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully created." + + "\n" + "Amount: " + data.getAmount() + + "\n" + "Debtor IBAN: " + data.getDebtorIban() + + "\n" + "Creditor IBAN: DE63702501500029263621" + + "\n" + "Settlement date: " + harness.get(SETTLEMENT_DATE_KEY)); + } + + @JiraTestCase(id = "PAY-T2421") + @Order(4) + @TestCase(name = "Test Xct with manual tracing", environments = {Environment.TST1, Environment.PPE}) + void outgoingXctManualTracing(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + + assumption_BicExistence(harness, user1, "DABAFIHHXXX", false); + + setTransactionData("", + "FI8280002618079049", + "Harness CZK manualni trasovani", + "CZK - Czech Koruna", + "JO NESBO", + "", + "" + ); + + //create transaction + createForeignPayment(harness, user1, data); + harness.closeEndpoint(harness.getEndpoint(PaymentEngineEndpoint.class)); + + //verify transaction by user2 and edit it + verifyTransactionAndWaitForStatus(harness, user2, IRREDUCIBLE) + .closeTab() + .clickTransactionAndChooseManualFromOutgoing() + .clickOnFilterButton() + .fillTransactionId(transactionId) + .clickOnSearchButtonAndWaitForResult(transactionId) + .clickOnManualActions() + .clickOnEditAndRelease() + .fillAdditionalData(CREDITOR_BIC_MAN, COVERAGE_ACCOUNT, CREDITOR_BIC_MAN) + .clickOnClearingPartnerList() + .selectClearingPartner(CLEARING_PARTNER) + .clickOnOKButton(); + + harness.closeEndpoint(harness.getEndpoint(PaymentEngineEndpoint.class)); + + //verify transaction and check HD21 + logInPae(harness, user1) + .clickTransactionAndChooseForVerificationFromOutgoing() + .pressSearch() + .fillId(transactionId) + .searchUnverified() + .selectTransaction(transactionId) + .clickOnVerifyTransaction() + .clickOnAccept() + .clickOnOk() + .closeTab() + .search() + .typeId(transactionId) + .clickSearch() + .waitForStatus(harness, DISTRIBUTION) + .closeTab() + .clickMonitoringAndChooseProcessListFromProcessMonitoring() + .enterXCTDistribution() + .clickOnRunButton() + .clickOnOk() + .closeErrorPopUpIfVisibleXCT() + .closeTab() + .search() + .typeId(transactionId) + .clickSearch() + .waitForStatus(harness, ARCHIV) + .clickOnTransactionDetail() + .clickOnLifeCycle() + .clickOnHD21() + .clickOnHD21Detail() + .clickOnRecordDetail() + .checkDistributionDate(data.getDistributionDate()) + .storeSettlementDate(); + + Assertions.assertTrue(LocalDate.now().isBefore(LocalDate.parse(harness.get(SETTLEMENT_DATE_KEY), DateTimeFormatter.ofPattern("dd.MM.yyyy")))); + + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully created." + + "\n" + "Amount: " + data.getAmount() + + "\n" + "Debtor IBAN: " + data.getDebtorIban() + + "\n" + "Creditor IBAN: FI8280002618079049" + + "\n" + "Settlement date: " + harness.get(SETTLEMENT_DATE_KEY)); + } + + @Disabled + @JiraTestCase(id = "PAY-T2489") + @Order(5) + @TestCase(name = "Test Xct with incoming MT101", environments = {Environment.TST1, Environment.PPE}) + void outgoingXctBasedOnIncomingMT101(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials credentials) throws IOException { + + setTransactionData("", harness.getConfig("payments_cashless.foreignPayment.MT101"), "", "", "", "", ""); + + PaymentEngineRunInstance getId = logInPae(harness, credentials) + .clickMonitoringAndChooseChannelListFromChanelMonitoring() + .clickOnInputMT101() + .clickOnRunButton() + .storeLastNumberInSequence(harness); + + lastField = Integer.valueOf(harness.get(LAST_SEQUENCE_NUMBER_KEY)); + createMT101TemFile(harness, data); + + PaymentEngineHomePage homePage; + try { + homePage = getId.clickOnUploadFileButton() + .uploadFile(file.getAbsolutePath()) + .clickSendPopupButton() + .clickOkPopupButton() + .clickOnFileTab("Soubory") + .waitForFileAndClickOnIt(file.getName()) + .clickOkButton() + .closeTab(); + file.delete(); + } catch (Exception e) { + throw e; + } finally { + file.delete(); + } + + homePage = homePage.clickMonitoringAndChooseChannelInstanceFromChanelMonitoring() + .clickOnSelectStatus() + .selectStatusSuccess() + .clickOnApplyButton() + .waitForChannelAndClickOnRecords(file.getName()) + .storeTransactionId() + .waitForStatus(harness, DISTRIBUTION) + .closeTab(); + transactionId = harness.get("TRANSACTION_ID"); + harness.closeEndpoint(harness.getEndpoint(PaymentEngineEndpoint.class)); + + logInPae(harness, credentials).clickMonitoringAndChooseProcessListFromProcessMonitoring() + .enterXCTDistribution() + .clickOnRunButton() + .clickOnOk() + .closeErrorPopUpIfVisibleXCT() + .closeTab() + .search() + .typeId(transactionId) + .clickSearch() + .waitForStatus(harness, ARCHIV) + .clickOnTransactionDetail() + .clickOnLifeCycle() + .clickOnHD21() + .clickOnHD21Detail() + .clickOnRecordDetail() + .storeSettlementDate(); + + Assertions.assertEquals(data.getDistributionDate(), harness.get(SETTLEMENT_DATE_KEY)); + harness.store("reports.tmfj.execution.comment", "Transaction id is " + transactionId + + "\n" + "Settlement date: " + harness.get(SETTLEMENT_DATE_KEY)); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/OutgoingXctFI2FITest.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/OutgoingXctFI2FITest.java new file mode 100644 index 0000000..c599bc6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/payment_engine/foreign/outgoing/OutgoingXctFI2FITest.java @@ -0,0 +1,119 @@ +package cz.moneta.test.regression.transactional.payments.cashless.payment_engine.foreign.outgoing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchPage; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; + +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.CurrencyPAE.*; +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; + +@TestScenarioWithOrder(name = "Create foreign Xct FI2FI payment in PAE and verify.") +public class OutgoingXctFI2FITest { + private String TOKEN_CBL; + private PaymentData data; + private PaymentEngineTasks tasks; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .debtorAcc(harness.getConfig("payments_cashless.foreignPayment.debtorAccXCT.FI2FI")) + .bicBank(harness.getConfig("payments_cashless.foreignPayment.bicBankXCT.FI2FI")) + .bankCode(harness.getConfig("payments_cashless.foreignPayment.bankCodeXCT.FI2FI")) + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 99))); + data.setTrxReference("AUTO" + ThreadLocalRandom.current().nextInt(100000, 999999)); + data.setPreviousReference(String.valueOf(ThreadLocalRandom.current().nextInt(100000, 999999))); + tasks = harness.tasks().paymentEngineTasks(); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3597") + @TestCase(name = "Create foreign Xct FI2FI payment and verify - without bank account", environments = {Environment.TST1, Environment.PPE}) + void createXctFI2FIPaymentWithoutBankAccountAndVerify(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setBicFi(harness.getConfig("payments_cashless.foreignPayment.bicFiEurXCT.FI2FI")); + data.setCreditorName(harness.getConfig("payments_cashless.foreignPayment.bankNameEurXCT.FI2FI")); + data.setClearingPartner("INGB-EUR"); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createXctFI2FIPaymentWithoutBankCode(data, CURRENCY_EUR_LONG)); + String transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, DISTRIBUTION)) + .storeEquivalentAmountEur() + .closeTab() + .then(tasks.sendAndRunXCTDistribution()) + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + + String equivalentAmount = harness.get(PaymentEngineSearchPage.EQUIVALENT_AMOUNT_KEY).toString().replace(".", "").replace(",", "."); + checkTransactionStatusBooked(harness, data.getDebtorAcc(), equivalentAmount, transactionId); + + PaymentEngineUtils.logResultWithEquivalentAmount(harness, transactionId, data.getDebtorAcc(), + data.getBicFi() + " (BIC)", data.getAmount() + " EUR", equivalentAmount + " CZK"); + } + + @Order(2) + @JiraTestCase(id = "PAY-T3598") + @TestCase(name = "Create foreign XCT FI2FI payment and verify - with bank account", environments = {Environment.TST1, Environment.PPE}) + void createXctFI2FIPaymentWithBankAccountAndVerify(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setBicFi(harness.getConfig("payments_cashless.foreignPayment.bicFiUsdXCT.FI2FI")); + data.setCreditorName(harness.getConfig("payments_cashless.foreignPayment.bankNameUsdXCT.FI2FI")); + data.setClearingPartner("CITI-USD"); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createXctFI2FIPaymentWithBankCode(data, CURRENCY_USD_LONG)); + String transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, DISTRIBUTION)) + .storeEquivalentAmountUsd() + .closeTab() + .then(tasks.sendAndRunXCTDistribution()) + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + + String equivalentAmount = harness.get(PaymentEngineSearchPage.EQUIVALENT_AMOUNT_KEY).toString().replace(".", "").replace(",", "."); + checkTransactionStatusBooked(harness, data.getDebtorAcc(), equivalentAmount, transactionId); + + PaymentEngineUtils.logResultWithEquivalentAmount(harness, transactionId, data.getDebtorAcc(), + data.getBicFi() + " (BIC)", data.getAmount() + " USD", equivalentAmount + " CZK"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/AuthorizationForDirectDebitUfoBankaTest.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/AuthorizationForDirectDebitUfoBankaTest.java new file mode 100644 index 0000000..7b544d3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/AuthorizationForDirectDebitUfoBankaTest.java @@ -0,0 +1,117 @@ +package cz.moneta.test.regression.transactional.payments.cashless.ufo.banka.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage.ROOT_ID_KEY; + +@TestScenarioWithOrder(name = "Create/edit/delete Authorization For Direct Debit - UFO Banka") +public class AuthorizationForDirectDebitUfoBankaTest { + private PaymentData data; + private static final String statusValid = "Platný"; + private static final String statusArchiv = "Archivovaný"; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .amount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 9))) + .equivalentAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 9))) + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAccUFO")) + .creditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")) + .period("Měsíční") + .bankCode("0600") + .build(); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3541") + @TestCase(name = "Create/edit/delete Authorization For Direct Debit in UFO and check in PAE", environments = {Environment.TST1, Environment.PPE}) + void createEditDeleteAuthorizationForDirectDebitInUfoBankaAndCheckInPAE(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoCredentials, + @Key(Keys.paymentEngine.firstUser) Credentials paeCredentials1, + @Key(Keys.paymentEngine.secondUser) Credentials paeCredentials2) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + PaymentEngineTasks paymentEngineTasks = harness.tasks().paymentEngineTasks(); + paymentEngineTasks.assumptionAuthorizationForDirectDebitExistence(data, paeCredentials1, paeCredentials2); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().searchAccountByProduct(data.getDebtorAcc())) + .then(bankaTasks.payment().createAuthorizationForDirectDebit(data)) + .then(bankaTasks.payment().clickSignedAndStoreRootId()); + harness.withUfo().closeApplication(); + + String rootId1 = harness.get(ROOT_ID_KEY); + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials1) + .then(paymentEngineTasks.checkAuthorizationForDirectDebitStatus(statusValid, rootId1)); + harness.withPaymentEngine().closePaymentEngine(); + + harness.store("reports.tmfj.execution.comment", "Authorization For Direct Debit " + rootId1 + " was successfully created in UFO and checked in PAE."); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().searchAccountByProduct(data.getDebtorAcc())) + .then(bankaTasks.payment().chooseAuthorizationForDirectDebitList(rootId1)) + .then(bankaTasks.payment().changeAuthorizationForDirectDebitFromList(data.getEquivalentAmount())) + .then(bankaTasks.payment().clickSignedAndStoreRootId()); + harness.withUfo().closeApplication(); + + String rootId2 = String.valueOf(Integer.valueOf(rootId1) + 1); + String rootId3 = String.valueOf(Integer.valueOf(rootId2) + 1); + + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials1) + .then(paymentEngineTasks.checkAuthorizationForDirectDebitStatus(statusArchiv, rootId1)) + .closeTab() + .then(paymentEngineTasks.checkAuthorizationForDirectDebitStatus(statusValid, rootId2)); + harness.withPaymentEngine().closePaymentEngine(); + + harness.store("reports.tmfj.execution.comment", "Authorization For Direct Debit " + rootId1 + " was successfully edited in UFO and checked in PAE." + + "\n" + "Authorization For Direct Debit " + rootId2 + " was successfully archived in UFO and checked in PAE."); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().searchAccountByProduct(data.getDebtorAcc())) + .then(bankaTasks.payment().chooseAuthorizationForDirectDebitList(rootId2)) + .then(bankaTasks.payment().deleteAuthorizationForDirectDebitAndCheckStatus(rootId3)); + harness.withUfo().closeApplication(); + + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials1) + .then(paymentEngineTasks.checkAuthorizationForDirectDebitStatus(statusArchiv, rootId1)) + .closeTab() + .then(paymentEngineTasks.checkAuthorizationForDirectDebitStatus(statusArchiv, rootId2)) + .closeTab() + .then(paymentEngineTasks.checkAuthorizationForDirectDebitStatus(statusArchiv, rootId3)); + harness.withPaymentEngine().closePaymentEngine(); + + harness.log("Authorization For Direct Debit " + rootId1 + " was successfully created, edited and deleted in UFO and checked in PAE."); + harness.store("reports.tmfj.execution.comment", "Authorization For Direct Debit " + rootId1 + " was successfully created in UFO and checked in PAE." + + "\n" + + "Authorization For Direct Debit " + rootId2 + " was successfully edited in UFO and checked in PAE." + + "\n" + + "Authorization For Direct Debit " + rootId3 + " was successfully deleted in UFO and checked in PAE." + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + + "\n" + + "Amount: " + data.getAmount() + " CZK" + + "\n" + + "Changed amount: " + data.getAmount() + data.getEquivalentAmount() + " CZK"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/BankBookPaymentUfoBanka.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/BankBookPaymentUfoBanka.java new file mode 100644 index 0000000..0608ac5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/BankBookPaymentUfoBanka.java @@ -0,0 +1,126 @@ +package cz.moneta.test.regression.transactional.payments.cashless.ufo.banka.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.ARCHIV; +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.RELEASE; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage.ROOT_ID_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenarioWithOrder(name = "Create Bank Book Payment UFO Banka") +public class BankBookPaymentUfoBanka { + private PaymentData data; + private String TOKEN_CBL; + private BankaTasks bankaTasks; + private PaymentEngineTasks paymentEngineTasks; + private String transactionId; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAccUFO")) + .creditorAcc("2298050") + .bankCode("0600") + .postingValue("Y") + .initiatorValue("B") + .icbsProfile("COU15") + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 299))); + bankaTasks = harness.tasks().ufo().banka(); + paymentEngineTasks = harness.tasks().paymentEngineTasks(); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + private void releaseManualOutgoingAndWaitForStatus(Harness harness, Credentials paeCredentials1, TransactionReasonPAE status) { + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials1) + .then(paymentEngineTasks.releaseManualOutgoing(transactionId)) + .closeTab() + .then(paymentEngineTasks.searchTransactionAndWaitForStatus(status, transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + } + + private void verifyRequestAndWaitForStatusAndData(Harness harness, Credentials paeCredentials2, TransactionReasonPAE status) { + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials2) + .then(paymentEngineTasks.verifyRequestAndWaitForStatus(transactionId, status)) + .then(paymentEngineTasks.checkDebitInitiatorAndIcbsProfilData(data)); + harness.withPaymentEngine().closePaymentEngine(); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3547") + @TestCase(name = "Create Bank Book Payment in UFO Banka and check in PAE and ICBS", environments = {TST1, PPE}) + void createBankBookPaymentInUfoAndCheckInPaeAndIcbs(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoCredentials, + @Key(Keys.paymentEngine.firstUser) Credentials paeCredentials1, + @Key(Keys.paymentEngine.secondUser) Credentials paeCredentials2) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().createBankBookPayment(data)); + harness.withUfo().closeApplication(); + + transactionId = harness.get(ROOT_ID_KEY); + releaseManualOutgoingAndWaitForStatus(harness, paeCredentials1, RELEASE); + verifyRequestAndWaitForStatusAndData(harness, paeCredentials2, ARCHIV); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + data.setCreditorAcc("3704-2298050"); + PaymentEngineUtils.logResultUfoWithPaeAndICBS(harness, transactionId, data); + } + + @Order(2) + @JiraTestCase(id = "PAY-T3548") + @TestCase(name = "Create Bank Book Payment in UFO Banka and check in PAE and ICBS - Max Data", environments = {TST1, PPE}) + void createBankBookPaymentInUfoAndCheckInPaeAndIcbsMaxData(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoCredentials, + @Key(Keys.paymentEngine.firstUser) Credentials paeCredentials1, + @Key(Keys.paymentEngine.secondUser) Credentials paeCredentials2) { + data.setCreditorAcc("2298050"); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().createBankBookPaymentMaxData(data)); + harness.withUfo().closeApplication(); + + transactionId = harness.get(ROOT_ID_KEY); + releaseManualOutgoingAndWaitForStatus(harness, paeCredentials1, RELEASE); + verifyRequestAndWaitForStatusAndData(harness, paeCredentials2, ARCHIV); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + data.setCreditorAcc("3704-2298050"); + PaymentEngineUtils.logResultUfoWithPaeAndICBS(harness, transactionId, data); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/PriorityPaymentUfoBanka.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/PriorityPaymentUfoBanka.java new file mode 100644 index 0000000..a9a9570 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/PriorityPaymentUfoBanka.java @@ -0,0 +1,84 @@ +package cz.moneta.test.regression.transactional.payments.cashless.ufo.banka.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.ARCHIV; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage.ROOT_ID_KEY; +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Create Priority Payment UFO Banka") +public class PriorityPaymentUfoBanka { + private BankaTasks bankaTasks; + private PaymentEngineTasks paymentEngineTasks; + private PaymentData data; + private String TOKEN_CBL; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAccUFO")) + .creditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")) + .bankCode("0600") + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueData(Harness harness) { + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 299))); + bankaTasks = harness.tasks().ufo().banka(); + paymentEngineTasks = harness.tasks().paymentEngineTasks(); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3542") + @TestCase(name = "Create Priority Payment in UFO Banka and check in PAE and ICBS", environments = {TST1, PPE}) + void createPriorityPaymentInUfoAndCheckInPaeAndIcbs(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoCredentials, + @Key(Keys.paymentEngine.firstUser) Credentials paeCredentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().createPriorityPaymentMaxData(data)) + .then(bankaTasks.payment().savePaymentOrder()); + harness.withUfo().closeApplication(); + + String transactionId = harness.get(ROOT_ID_KEY); + + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials) + .then(paymentEngineTasks.searchTransactionAndWaitForStatus(ARCHIV, transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultUfoWithPaeAndICBS(harness, transactionId, data); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/StandardPaymentUfoBanka.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/StandardPaymentUfoBanka.java new file mode 100644 index 0000000..df701bb --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/StandardPaymentUfoBanka.java @@ -0,0 +1,147 @@ +package cz.moneta.test.regression.transactional.payments.cashless.ufo.banka.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage.ROOT_ID_KEY; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Create Standard Payment UFO Banka") +public class StandardPaymentUfoBanka { + private BankaTasks bankaTasks; + private PaymentEngineTasks paymentEngineTasks; + private PaymentData data; + private String TOKEN_CBL; + private String transactionId; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAccUFO")) + .bankName("MONETA Money Bank, a.s.") + .payScheme("CZ CT Non-priority") + .nextDayDist("Ne") + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueData(Harness harness) { + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 299))); + bankaTasks = harness.tasks().ufo().banka(); + paymentEngineTasks = harness.tasks().paymentEngineTasks(); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + private void createStandardPaymentMaxData(Harness harness, Credentials ufoCredentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().createStandardPaymentMaxData(data)) + .then(bankaTasks.payment().savePaymentOrder()); + harness.withUfo().closeApplication(); + transactionId = harness.get(ROOT_ID_KEY); + } + + private void createStandardPayment(Harness harness, Credentials ufoCredentials) { + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().createStandardPayment(data)) + .then(bankaTasks.payment().savePaymentOrder()); + harness.withUfo().closeApplication(); + transactionId = harness.get(ROOT_ID_KEY); + } + + private void searchTransactionAndWaitForStatus(Harness harness, Credentials paeCredentials, TransactionReasonPAE status) { + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials) + .then(paymentEngineTasks.searchTransactionAndWaitForStatus(status, transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3544") + @TestCase(name = "Create Outgoing Standard Payment in UFO Banka and check in PAE and ICBS - Max Data", environments = {TST1, PPE}) + void createOutgoingStandardPaymentInUfoAndCheckInPaeAndIcbsMaxData(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoCredentials, + @Key(Keys.paymentEngine.firstUser) Credentials paeCredentials) { + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAcc")); + data.setBankCode(harness.getConfig("payments_cashless.domesticPayment.bankCodeCr")); + + createStandardPaymentMaxData(harness, ufoCredentials); + + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials) + .then(paymentEngineTasks.searchTransactionAndWaitForStatus(RELEASE, transactionId)) + .closeTab() + .then(paymentEngineTasks.runReleaseAfterDispoCheck(DISTRIBUTION, transactionId)) + .closeTab() + .then(paymentEngineTasks.sendAndRunCZCTDDistribution(data, ARCHIV, transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultUfoWithPaeAndICBS(harness, transactionId, data); + } + + @Order(2) + @JiraTestCase(id = "PAY-T3545") + @TestCase(name = "Create Inhouse Standard Payment in UFO Banka and check in PAE and ICBS - Max Data", environments = {TST1, PPE}) + void createInhouseStandardPaymentInUfoAndCheckInPaeAndIcbsMaxData(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoCredentials, + @Key(Keys.paymentEngine.firstUser) Credentials paeCredentials) { + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + data.setBankCode("0600"); + + createStandardPaymentMaxData(harness, ufoCredentials); + searchTransactionAndWaitForStatus(harness, paeCredentials, ARCHIV); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultUfoWithPaeAndICBS(harness, transactionId, data); + } + + @Order(3) + @JiraTestCase(id = "PAY-T3546") + @TestCase(name = "Create Inhouse Standard Payment in UFO Banka and check in PAE and ICBS", environments = {TST1, PPE}) + void createInhouseStandardPaymentInUfoAndCheckInPaeAndIcbs(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoCredentials, + @Key(Keys.paymentEngine.firstUser) Credentials paeCredentials) { + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + data.setBankCode("0600"); + + createStandardPayment(harness, ufoCredentials); + searchTransactionAndWaitForStatus(harness, paeCredentials, ARCHIV); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultUfoWithPaeAndICBS(harness, transactionId, data); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/StandingOrderUfoBankaTest.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/StandingOrderUfoBankaTest.java new file mode 100644 index 0000000..252c4b3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/ufo/banka/analytical/StandingOrderUfoBankaTest.java @@ -0,0 +1,118 @@ +package cz.moneta.test.regression.transactional.payments.cashless.ufo.banka.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.ufo.banka.pages.common.pages.OBR001_S001_PrintInstructionPage.ROOT_ID_KEY; + +@TestScenarioWithOrder(name = "Create/edit/delete domestic standing order - UFO Banka") +public class StandingOrderUfoBankaTest { + private PaymentData data; + private static final String statusValid = "Platný"; + private static final String statusArchiv = "Archivovaný"; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .amount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 9))) + .equivalentAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 9))) + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAccUFO")) + .creditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")) + .firstPaymentDate(DateUtils.getNextWorkday().format(DateTimeFormatter.ofPattern("dd.MM.yyyy"))) + .lastPaymentDate(LocalDate.now().plusYears(1).format(DateTimeFormatter.ofPattern("dd.MM.yyyy"))) + .bankCode("0600") + .build(); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3540") + @TestCase(name = "Create/edit/delete standing order CZ in UFO and check in PAE", environments = {Environment.TST1, Environment.PPE}) + void createEditDeleteStandingOrderInUfoBankaAndCheckInPAE(Harness harness, @Key(Keys.ufo.banka.banker) Credentials ufoCredentials, + @Key(Keys.paymentEngine.firstUser) Credentials paeCredentials1) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + PaymentEngineTasks paymentEngineTasks = harness.tasks().paymentEngineTasks(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().searchAccountByProduct(data.getDebtorAcc())) + .then(bankaTasks.payment().createStandingOrder(data)) + .then(bankaTasks.payment().clickSignedAndStoreRootId()); + harness.withUfo().closeApplication(); + + String rootId1 = harness.get(ROOT_ID_KEY); + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials1) + .then(paymentEngineTasks.checkStandingOrderStatus(statusValid, rootId1)); + harness.withPaymentEngine().closePaymentEngine(); + + harness.store("reports.tmfj.execution.comment", "Standing Order " + rootId1 + " was successfully created in UFO and checked in PAE."); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().searchAccountByProduct(data.getDebtorAcc())) + .then(bankaTasks.payment().chooseStandingOrderFromList(rootId1)) + .then(bankaTasks.payment().changeStandingOrderFromList(data.getEquivalentAmount())) + .then(bankaTasks.payment().clickSignedAndStoreEditedRootId()); + harness.withUfo().closeApplication(); + + String rootId2 = harness.get(ROOT_ID_KEY); + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials1) + .then(paymentEngineTasks.checkStandingOrderStatus(statusArchiv, rootId1)) + .closeTab() + .then(paymentEngineTasks.checkStandingOrderStatus(statusValid, rootId2)); + harness.withPaymentEngine().closePaymentEngine(); + + harness.store("reports.tmfj.execution.comment", "Standing Order " + rootId2 + " was successfully edited in UFO and checked in PAE." + + "\n" + "Standing Order " + rootId1 + " was successfully archived in UFO and checked in PAE."); + + String rootId3 = String.valueOf(Integer.valueOf(rootId2) + 1); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(ufoCredentials)) + .then(bankaTasks.payment().searchAccountByProduct(data.getDebtorAcc())) + .then(bankaTasks.payment().chooseStandingOrderFromList(rootId2)) + .then(bankaTasks.payment().deleteStandingOrderAndCheckStatusDeleted(rootId3)); + harness.withUfo().closeApplication(); + + paymentEngineTasks.loginTasks().logInPae(harness, paeCredentials1) + .then(paymentEngineTasks.checkStandingOrderStatus(statusArchiv, rootId1)) + .closeTab() + .then(paymentEngineTasks.checkStandingOrderStatus(statusArchiv, rootId2)) + .closeTab() + .then(paymentEngineTasks.checkStandingOrderStatus(statusArchiv, rootId3)); + harness.withPaymentEngine().closePaymentEngine(); + + harness.log("Standing Order " + rootId1 + " was successfully created, edited and deleted in UFO and checked in PAE."); + harness.store("reports.tmfj.execution.comment", "Standing Order " + rootId1 + " was successfully created in UFO and checked in PAE." + + "\n" + + "Standing Order " + rootId2 + " was successfully edited in UFO and checked in PAE." + + "\n" + + "Standing Order " + rootId3 + " was successfully deleted in UFO and checked in PAE." + + "\n" + + "Debtor account: " + data.getDebtorAcc() + + "\n" + + "Creditor account: " + data.getCreditorAcc() + + "\n" + + "Amount: " + data.getAmount() + " CZK" + + "\n" + + "Changed amount: " + data.getAmount() + data.getEquivalentAmount() + " CZK"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/wso2/Wso2BackendsConnection.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/wso2/Wso2BackendsConnection.java new file mode 100644 index 0000000..3828bd5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/wso2/Wso2BackendsConnection.java @@ -0,0 +1,144 @@ +package cz.moneta.test.regression.transactional.payments.cashless.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + + +@TestScenarioWithOrder(name = "Test connection to all payments cluster backends via WSO2") +public class Wso2BackendsConnection { + + String TOKEN_INTEGRATOR; + String TOKEN_UFO; + String TOKEN_CBL; + + @BeforeAll + void testSetUp(Harness harness) { + TOKEN_INTEGRATOR = harness.tasks().wso2().authorization().getToken("PAYMENTS_INTEGRATOR"); + TOKEN_UFO = harness.tasks().wso2().authorization().getToken("UFO"); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1698") + @TestCase(name = "Get kasanova users" , environments = {Environment.TST1, Environment.PPE}) + void kasanovaConnection(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/user-controller/v1/read-users") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_INTEGRATOR) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload("{}") + .post() + .andAssertStatus(200) + .andAssertFieldValue("ouwmsg", "Success"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1699") + @TestCase(name = "Get FIPU users" , environments = {Environment.TST1, Environment.PPE}) + void fipuConnection(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_ALL_USRS/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_INTEGRATOR) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload("{\"INUSER\":\"\"}") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_DATA"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1700") + @TestCase(name = "Get ICBS users", environments = {Environment.TST1, Environment.PPE}) + void icbsConnection(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_CBS_USR2/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_INTEGRATOR) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload("{\"INCURSOR\":\"1\", \"INROWS\":\"2\"}") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_DATA"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1701") + @TestCase(name = "Get not authorized transactions", environments = {Environment.TST1, Environment.PPE}) + void paeConnection_GWAndTif(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_PAYMENT_AUTH/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_UFO) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload("{\"TX_STS\": \"8\",\"BRANCH_ID_IN\": 86001340}") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_DATA"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1702") + @TestCase(name = "RTE health check", environments = {Environment.TST1, Environment.PPE}) + void rteConnection(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/rte-management/v1/management/health") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_INTEGRATOR) + .withHeader("cache-control", "no-cache,no-cache") + .get() + .andAssertStatus(200) + .andAssertPresent("status"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1703") + @TestCase(name = "C24 health check", environments = {Environment.TST1, Environment.PPE}) + void c24Connection(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/management/v1/management/health") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_INTEGRATOR) + .withHeader("cache-control", "no-cache,no-cache") + .get() + .andAssertPresent("status"); + } + + @Disabled("Not currently maintained") + @JiraTestCase(id = "PAY-T1704") + @TestCase(name = "G400", environments = {Environment.TST1, Environment.PPE}) + void G400Connection(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_G4CUST/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization",TOKEN_CBL) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload("{\n" + + " \"INBANK\": 1,\n" + + " \"INCIF\": \"string\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("OUSTAT"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/wso2/Wso2EiServices.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/wso2/Wso2EiServices.java new file mode 100644 index 0000000..01444d4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashless/wso2/Wso2EiServices.java @@ -0,0 +1,105 @@ +package cz.moneta.test.regression.transactional.payments.cashless.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.dsl.payment_engine.model.GetAcctsBalancesResponse; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "Regression tests for WSO2 EI services. Only assumed responses are controlled") +public class Wso2EiServices { + + String TOKEN_UFO; + String TOKEN_HUB; + String accountId; + + @BeforeAll + void testSetUp(Harness harness) { + TOKEN_UFO = harness.tasks().wso2().authorization().getToken("UFO"); + TOKEN_HUB = harness.tasks().wso2().authorization().getToken("HUB"); + accountId = harness.getConfig("payments_cashless.wso2ei.account"); + } + + @Disabled ("Not currently maintained.") + @TestCase(name = "Get transaction for verification - ICB_GetTITTranAuth_TIFv1", environments = {Environment.TST1, Environment.PPE}) + void getTransactionForVerification(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/ICB_GetTITTranAuth_TIFv1/001") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("USERID_L2", "GEMTEST") + .withHeader("Authorization", TOKEN_UFO) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload("{\n" + + " \"KodOM\":\"86001340\" \n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("PocetCelkem"); + } + + @Disabled ("Not currently maintained.") + @TestCase(name = "Get number of transactions for verification - GET_NUM_NVRF_TRN", environments = {Environment.TST1, Environment.PPE}) + void getNumberOfTransactionsForVerification(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_NUM_NVRF_TRN/001/") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_UFO) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload("{\"KodOM\":\"86001340\"}") + .post() + .andAssertStatus(200) + .andAssertPresent("PocetNezverifikovanychHlatkychPlateb") + .andAssertPresent("PocetNezverifikovanychBankovnichTransakci"); + } + + @Disabled ("Not currently maintained.") + @TestCase(name = "Get account balances - GET_ACCOUNT_BALANCES", environments = {Environment.TST1, Environment.PPE}) + void getAccountBalances(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_ACC_BALANCES/001/") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_HUB) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload("{\n" + + " \"accountIdentification\": \"" + accountId + "\"\n" + + "}") + .post() + .andAssertStatus(200) + .andAssertPresent("dispositionBalance"); + } + + @Disabled ("Not currently maintained.") + @TestCase(name = "Get accounts balances - GET_ACCTS_BALANCES", environments = {Environment.TST1, Environment.PPE}) + void getAccountsBalances(Harness harness) { + GetAcctsBalancesResponse response = harness.withWso2() + .prepareRequest() + .withPath("/t/payments.cluster/GET_ACCTS_BALANCES/001/") + .withHeader("Content-Type", "application/json") + .withHeader("Accept", "application/json") + .withHeader("Authorization", TOKEN_HUB) + .withHeader("cache-control", "no-cache,no-cache") + .withPayload("{\n" + + " \"accountsIdentificationsList\": [\n" + + " {\n" + + " \"accountIdentification\": \"" + accountId + "\",\n" + + " \"dispositionBalance\": \"123\"\n" + + " }\n" + + " ]\n" + + "}") + .post() + .andAssertStatus(200) + .mapResponseIntoObject(GetAcctsBalancesResponse.class); + + Assertions.assertNotEquals("123", response.balancesList.get(0).getDispositionBalance()); + Assertions.assertEquals(accountId, response.balancesList.get(0).getAccountIdentification()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/analytical/IngoingCertisTest.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/analytical/IngoingCertisTest.java new file mode 100644 index 0000000..9163a70 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/analytical/IngoingCertisTest.java @@ -0,0 +1,242 @@ +package cz.moneta.test.regression.transactional.payments.cashlessFirstTests.payment_engine.domestic.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.model.FileForInputPreparation; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.io.File; +import java.io.IOException; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords.SECOND_ROW_AMOUNT_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords.TRANSACTION_ID_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionDetailLifeCycle.*; + +@TestScenarioWithOrder(name = "Simulate Ingoing From Certis") +public class IngoingCertisTest extends FileForInputPreparation { + private String TOKEN_CBL; + private String HD01_FILE; + private String HD11_14_FILE; + private String HD32FILE; + private PaymentData data; + private PaymentEngineTasks tasks; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")) + .creditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")) + .bankName("MONETA Money Bank, a.s.") + .nextDayDist("Ne") + .payScheme("CZ CT Non-priority") + .build(); + HD01_FILE = harness.getConfig("payments_cashless.foreignPayment.HD01_FILE"); + HD11_14_FILE = harness.getConfig("payments_cashless.foreignPayment.HD11-14_FILE"); + HD32FILE = harness.getConfig("payments_cashless.foreignPayment.HD32_FILE"); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + tasks = new PaymentEngineTasks(harness); + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 299))); + data.setRandom(String.valueOf(ThreadLocalRandom.current().nextInt(1000000, 2999999))); + data.setMessageId(String.valueOf(ThreadLocalRandom.current().nextInt(100000, 999999))); + data.setLastNonpriorityField(ThreadLocalRandom.current().nextInt(501, 698)); + data.setLastPriorityField(ThreadLocalRandom.current().nextInt(701, 898)); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3585") + @TestCase(name = "Simulate Ingoing HD:01 From Certis - Max Data", environments = {Environment.TST1, Environment.PPE}) + void simulateIngoingHD01FromCertisMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + data.setHdType("01"); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")); + + String HD01FileName = data.getTodayDate() + "_0600_000" + data.getLastPriorityField() + "_IH"; + File HD01File = prepareFileForInput(harness, HD01_FILE, HD01FileName, data); + + simulateIngoingFromCertis(harness, user1, HD01FileName, HD01File); + } + + @Order(2) + @JiraTestCase(id = "PAY-T3602") + @TestCase(name = "Simulate Ingoing HD:12 From Certis - Max Data", environments = {Environment.TST1, Environment.PPE}) + void simulateIngoingHD12FromCertisMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + data.setHdType("12"); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")); + + String HD11_14FileName = data.getTodayDate() + "_0600_000" + data.getLastNonpriorityField() + "_IL"; + File HD11_14File = prepareFileForInput(harness, HD11_14_FILE, HD11_14FileName, data); + + simulateIngoingFromCertis(harness, user1, HD11_14FileName, HD11_14File); + } + + @Order(3) + @JiraTestCase(id = "PAY-T3603") + @TestCase(name = "Simulate Ingoing HD:13 From Certis - Max Data", environments = {Environment.TST1, Environment.PPE}) + void simulateIngoingHD13FromCertisMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + data.setHdType("13"); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")); + + String HD11_14FileName = data.getTodayDate() + "_0600_000" + data.getLastNonpriorityField() + "_IL"; + File HD11_14File = prepareFileForInput(harness, HD11_14_FILE, HD11_14FileName, data); + + simulateIngoingFromCertis(harness, user1, HD11_14FileName, HD11_14File); + } + + @Order(4) + @JiraTestCase(id = "PAY-T3604") + @TestCase(name = "Simulate Ingoing HD:14 From Certis - Max Data", environments = {Environment.TST1, Environment.PPE}) + void simulateIngoingHD14FromCertisMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + data.setHdType("14"); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")); + + String HD11_14FileName = data.getTodayDate() + "_0600_000" + data.getLastNonpriorityField() + "_IL"; + File HD11_14File = prepareFileForInput(harness, HD11_14_FILE, HD11_14FileName, data); + + simulateIngoingFromCertis(harness, user1, HD11_14FileName, HD11_14File); + } + + @Order(5) + @JiraTestCase(id = "PAY-T3587") + @TestCase(name = "Simulate Ingoing HD:32 From Certis With HD:12 - valid authorization for direct debit", environments = {Environment.TST1, Environment.PPE}) + void simulateIngoingHD32FromCertisWithHD12(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + data.setHdType("32"); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")); + data.setTransactionType("HD:12 odchozi"); + + String HD32FileName = data.getTodayDate() + "_0600_000" + data.getLastNonpriorityField() + "_IL"; + File HD32File = prepareFileForInput(harness, HD32FILE, HD32FileName, data); + + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyy-MM-dd")); + + try { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.inputCCIFromCERTIS(HD32File.getAbsolutePath())) + .then(tasks.checkStatusOfCCIFromCERTIS(HD32FileName, ARCHIV)) + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, harness.get(TRANSACTION_ID_KEY))) + .then(tasks.checkLifeCycleAndWaitForStatus(data, RELEASE)) + .storeTransactionIdByType(data.getTransactionType()) + .closeTab() + .then(tasks.runReleaseAfterDispoCheck(DISTRIBUTION, harness.get(TRANSACTION_BY_TYPE_ID_KEY))) + .closeTab() + .then(tasks.sendAndRunCZCTDDistribution(data, ARCHIV, harness.get(TRANSACTION_BY_TYPE_ID_KEY))); + harness.withPaymentEngine().closePaymentEngine(); + + String transactionId = harness.get(TRANSACTION_ID_KEY); + String transactionIdFromFile = DateUtils.getFormattedTodayDate("yyMMdd") + "IDHD" + data.getHdType() + "x" + data.getMessageId(); + data.setAmount(harness.get(SECOND_ROW_AMOUNT_KEY).toString().replace(",", ".")); + + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionIdFromFile); + + harness.store("reports.tmfj.execution.comment", "HD:32 " + transactionId + " was successfully archived." + + "\n" + "Originators Document ID " + transactionIdFromFile + " was successfully archived in ICBS." + + "\n" + "HD:12 " + harness.get(TRANSACTION_BY_TYPE_ID_KEY) + " was successfully archived. " + + "\n" + "File name: " + HD32FileName + + "\n" + "Debtor account: " + data.getDebtorAcc() + + "\n" + "Creditor account: " + data.getCreditorAcc() + + "\n" + "Amount: " + data.getAmount()); + + } catch (Exception e) { + throw e; + } finally { + HD32File.delete(); + } + } + + @Order(6) + @JiraTestCase(id = "PAY-T3593") + @TestCase(name = "Simulate Ingoing HD:32 From Certis With HD:55", environments = {Environment.TST1, Environment.PPE}) + void simulateIngoingHD32FromCertisWithHD55(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accountCZK")); + data.setHdType("32"); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")); + data.setTransactionType("HD:55 (HD:32) odchozi"); + + String HD32FileName = data.getTodayDate() + "_0600_000" + data.getLastNonpriorityField() + "_IL"; + File HD32File = prepareFileForInput(harness, HD32FILE, HD32FileName, data); + + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyy-MM-dd")); + + try { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.inputCCIFromCERTIS(HD32File.getAbsolutePath())) + .then(tasks.checkStatusOfCCIFromCERTIS(HD32FileName, ARCHIV)) + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, harness.get(TRANSACTION_ID_KEY))) + .then(tasks.checkLifeCycleAndWaitForStatus(data, DISTRIBUTION)) + .storeTransactionIdByType(data.getTransactionType()) + .closeTab() + .then(tasks.sendAndRunCZCTDDistribution(data, ARCHIV, harness.get(TRANSACTION_BY_TYPE_ID_KEY))); + harness.withPaymentEngine().closePaymentEngine(); + + harness.store("reports.tmfj.execution.comment", "HD:32 " + harness.get(TRANSACTION_ID_KEY) + " was successfully archived." + + "\n" + "HD:55 " + harness.get(TRANSACTION_BY_TYPE_ID_KEY) + " was successfully archived." + + "\n" + "File name: " + HD32FileName + + "\n" + "Debtor account: " + data.getDebtorAcc() + + "\n" + "Creditor account: " + data.getCreditorAcc() + + "\n" + "Amount: " + harness.get(SECOND_ROW_AMOUNT_KEY)); + + } catch (Exception e) { + throw e; + } finally { + HD32File.delete(); + } + } + + private void simulateIngoingFromCertis(Harness harness, Credentials user1, String fileName, File file) { + + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyy-MM-dd")); + + try { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.inputCCIFromCERTIS(file.getAbsolutePath())) + .then(tasks.checkStatusOfCCIFromCERTIS(fileName, RELEASE)) + .then(tasks.runReleaseAfterDispoCheck(ARCHIV, harness.get(TRANSACTION_ID_KEY))); + harness.withPaymentEngine().closePaymentEngine(); + + String transactionId = harness.get(TRANSACTION_ID_KEY); + String transactionIdFromFile = DateUtils.getFormattedTodayDate("yyMMdd") + "IDHD" + data.getHdType() + "x" + data.getMessageId(); + data.setAmount(harness.get(SECOND_ROW_AMOUNT_KEY).toString().replace(",", ".")); + + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionIdFromFile); + + harness.store("reports.tmfj.execution.comment", "Transaction " + transactionId + " was successfully archived." + + "\n" + "Originators Document ID " + transactionIdFromFile + " was successfully archived in ICBS." + + "\n" + "File name: " + fileName + + "\n" + "Debtor account: " + data.getDebtorAcc() + + "\n" + "Creditor account: " + data.getCreditorAcc() + + "\n" + "Amount: " + data.getAmount()); + + } catch (Exception e) { + throw e; + } finally { + file.delete(); + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/analytical/RequestForDirectDebitReturn.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/analytical/RequestForDirectDebitReturn.java new file mode 100644 index 0000000..ba5bdf3 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/analytical/RequestForDirectDebitReturn.java @@ -0,0 +1,222 @@ +package cz.moneta.test.regression.transactional.payments.cashlessFirstTests.payment_engine.domestic.analytical; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.model.FileForInputPreparation; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; + +import java.io.File; +import java.io.IOException; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords.SECOND_ROW_AMOUNT_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords.TRANSACTION_ID_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionDetailLifeCycle.*; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionFiles.TRANSACTION_FILE_NAME_KEY; + +@TestScenarioWithOrder(name = "Create Request For Direct Debit Return") +public class RequestForDirectDebitReturn extends FileForInputPreparation { + + private String TOKEN_CBL; + private String HD11_FILE; + private String HD33_FILE; + private PaymentData data; + private PaymentEngineTasks tasks; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .channelId("PAE - Payment Engine") + .debtorName("TEST") + .icbsProfile("COU11 - HD:11") + .bankCode("0600") + .bankName("MONETA Money Bank, a.s.") + .payScheme("CZ CT Non-priority") + .nextDayDist("Ne") + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .submissionDate(DateUtils.getFormattedTodayDateTime("dd.MM.yyyy HH:mm:ss")) + .documentDate(DateUtils.getFormattedTodayDate("dd.MM.yyyy")) + .documentId(String.valueOf(ThreadLocalRandom.current().nextInt(100, 999))) + .dateXpath("") + .channelName("O_CCO_CERTIS") + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")) + .hdType("79") + .lastNonpriorityField(ThreadLocalRandom.current().nextInt(501, 698)) + .random(String.valueOf(ThreadLocalRandom.current().nextInt(1000000, 2999999))) + .messageId(String.valueOf(ThreadLocalRandom.current().nextInt(100000, 999999))) + .build(); + HD11_FILE = harness.getConfig("payments_cashless.foreignPayment.HD11-14_FILE"); + HD33_FILE = harness.getConfig("payments_cashless.foreignPayment.HD33_FILE"); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + tasks = new PaymentEngineTasks(harness); + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 299))); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + private void checkTransactionTypeStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionTypeStatusBooked(TOKEN_CBL, request, transactionId, data); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3624") + @TestCase(name = "Create inhouse Request For Direct Debit Return HD:33", environments = {Environment.TST1, Environment.PPE}) + void createInhouseRequestForDirectDebitReturn(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + + data.setTransactionType("HD:11 Úhrada klientská"); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createDomesticPayment(data)); + harness.withPaymentEngine().closePaymentEngine(); + + String transactionId1 = PaymentEngineUtils.getTransactionalId(harness); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId1, ARCHIV)) + .closeTab() + .then(tasks.createInternalRequestForCancellation(transactionId1)); + harness.withPaymentEngine().closePaymentEngine(); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.verifyRequestAndWaitForStatus(transactionId1, ARCHIV)) + .then(tasks.checkLifeCycleAndStoreRowTransactionIds()) + .waitForRowStatus(harness, harness.get(FORTH_ROW_TRANSACTION_ID_KEY), SENT) + .waitForRowStatus(harness, harness.get(FIFTH_ROW_TRANSACTION_ID_KEY), ARCHIV) + .storeSixthRowTransactionId() + .waitForRowStatus(harness, harness.get(SIXTH_ROW_TRANSACTION_ID_KEY), ARCHIV); + harness.withPaymentEngine().closePaymentEngine(); + + String transactionId2 = harness.get(SECOND_ROW_TRANSACTION_ID_KEY); + String transactionId3 = harness.get(THIRD_ROW_TRANSACTION_ID_KEY); + String transactionId4 = harness.get(FORTH_ROW_TRANSACTION_ID_KEY); + String transactionId5 = harness.get(FIFTH_ROW_TRANSACTION_ID_KEY); + String transactionId6 = harness.get(SIXTH_ROW_TRANSACTION_ID_KEY); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId1); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId1); + checkTransactionTypeStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId1); + + PaymentEngineUtils.logResultOfRequestForDirectDebitReturn(harness, transactionId1, transactionId2, transactionId3, + transactionId4, transactionId5, transactionId6, data); + } + + @Order(2) + @JiraTestCase(id = "PAY-T3626") + @TestCase(name = "Create Outgoing Request For Direct Debit Return HD:33", environments = {Environment.TST1, Environment.PPE}) + void createOutgoingRequestForDirectDebitReturn(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + + data.setTransactionType("HD:33 Žádost o storno úhrady (KS 5)"); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAcc")); + data.setBankCode(harness.getConfig("payments_cashless.domesticPayment.bankCodeCr")); + data.setBankName(harness.getConfig("payments_cashless.domesticPayment.bankNameCr")); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createDomesticPaymentWithDates(data)); + harness.withPaymentEngine().closePaymentEngine(); + + String transactionId = PaymentEngineUtils.getTransactionalId(harness); + data.setBankName("MONETA Money Bank, a.s."); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, DISTRIBUTION)) + .closeTab() + .then(tasks.sendAndRunCZCTDDistribution(data, SENT_WAIT, transactionId)) + .then(tasks.checkTransactionChannelAndStoreFileName(data)); + harness.withPaymentEngine().closePaymentEngine(); + + PaymentEngineUtils.logResultShortWithFileName(harness, transactionId, + harness.get(TRANSACTION_FILE_NAME_KEY), data); + } + + @Order(3) + @JiraTestCase(id = "PAY-T3611") + @TestCase(name = "Create Ingoing Request For Direct Debit Return HD:33", environments = {Environment.TST1, Environment.PPE}) + void createIngoingRequestForDirectDebitReturn(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) throws IOException { + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyyMMdd")); + data.setHdType("11"); + + String HD11FileName = data.getTodayDate() + "_0600_000" + data.getLastNonpriorityField() + "_IL"; + File HD11File = prepareFileForInput(harness, HD11_FILE, HD11FileName, data); + + data.setRandom(String.valueOf(ThreadLocalRandom.current().nextInt(1000000, 2999999))); + String HD33FileName = data.getTodayDate() + "_0600_000" + (data.getLastNonpriorityField() + 1) + "_IL"; + File HD33File = prepareFileForInput(harness, HD33_FILE, HD33FileName, data); + + data.setTodayDate(DateUtils.getFormattedTodayDate("yyyy-MM-dd")); + + try { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.inputCCIFromCERTIS(HD11File.getAbsolutePath())) + .wait3sec() //the previous instance has to be finished + .then(tasks.inputCCIFromCERTIS(HD33File.getAbsolutePath())) + .then(tasks.checkStatusOfCCIFromCERTIS(HD11FileName, RELEASE)) + .then(tasks.runReleaseAfterDispoCheck(ARCHIV, harness.get(TRANSACTION_ID_KEY))); + harness.withPaymentEngine().closePaymentEngine(); + + data.setAmount(harness.get(SECOND_ROW_AMOUNT_KEY).toString().replace(",", ".")); + String HD11TransactionId = harness.get(TRANSACTION_ID_KEY); + String transactionIdFromFile = DateUtils.getFormattedTodayDate("yyMMdd") + "IDHD11x" + data.getMessageId(); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionIdFromFile); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.checkStatusOfCCIFromCERTIS(HD33FileName, SENT)); + harness.withPaymentEngine().closePaymentEngine(); + + String HD33TransactionId = harness.get(TRANSACTION_ID_KEY); + + harness.store("reports.tmfj.execution.comment", "HD:11 ingoing " + HD11TransactionId + " was successfully archived." + + "\n" + "HD:33 outgoing " + HD33TransactionId + " status: " + SENT + + "\n" + "Originators Document ID " + transactionIdFromFile + " was successfully archived in ICBS." + + "\n" + "HD:11 file: " + HD11FileName + + "\n" + "HD:33 file: " + HD33FileName + + "\n" + "Debtor account: " + data.getDebtorAcc() + + "\n" + "Creditor account: " + data.getCreditorAcc() + + "\n" + "Amount: " + data.getAmount()); + + } catch (Exception e) { + throw e; + } finally { + HD11File.delete(); + HD33File.delete(); + } + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/business/PriorityPayment.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/business/PriorityPayment.java new file mode 100644 index 0000000..bb94f14 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/business/PriorityPayment.java @@ -0,0 +1,163 @@ +package cz.moneta.test.regression.transactional.payments.cashlessFirstTests.payment_engine.domestic.business; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; + +@TestScenarioWithOrder(name = "Create domestic priority payment") +public class PriorityPayment { + private String TOKEN_CBL; + private PaymentData data; + private PaymentEngineTasks tasks; + private String transactionId; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .transactionType("HD:01 Prioritní úhrada klientská") + .channelId("PAE - Payment Engine") + .nextDayDist("Ne") + .payScheme("CZ CT Priority") + .debtorName("TEST") + .icbsProfile("COU01 - HD:01") + .bankCode(harness.getConfig("payments_cashless.domesticPayment.bankCodeCr")) + .bankName(harness.getConfig("payments_cashless.domesticPayment.bankNameCr")) + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .submissionDate(DateUtils.getFormattedTodayDateTime("dd.MM.yyyy HH:mm:ss")) + .documentDate(DateUtils.getFormattedTodayDate("dd.MM.yyyy")) + .documentId(String.valueOf(ThreadLocalRandom.current().nextInt(100, 999))) + .dateXpath("") + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")) + .creditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAcc")) + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 299))); + tasks = new PaymentEngineTasks(harness); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + public void createDomesticPayment(Harness harness, Credentials user1) { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createDomesticPayment(data)); + transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + } + + public void createDomesticPaymentMaxData(Harness harness, Credentials user1) { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createDomesticPaymentWithMaxData(data)); + transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + } + + public void verifyAndWaitForStatusAndRunCZCTDDistribution(Harness harness, Credentials user2, + TransactionReasonPAE status1, TransactionReasonPAE status2) { + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, status1)) + .closeTab() + .then(tasks.sendAndRunCZCTDDistribution(data, status2, transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + } + + @Order(1) + @JiraTestCase(id = "PAY-T2827") + @TestCase(name = "Create outgoing priority payment and verify", environments = {Environment.TST1, Environment.PPE}) + void CreateOutgoingPriorityPaymentAndVerify(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + createDomesticPayment(harness, user1); + data.setBankName("MONETA Money Bank, a.s."); + + verifyAndWaitForStatusAndRunCZCTDDistribution(harness, user2, DISTRIBUTION, ARCHIV); + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultShortWithICBS(harness, transactionId, data); + } + + @Order(2) + @JiraTestCase(id = "PAY-T3001") + @TestCase(name = "Create outgoing priority payment - Max SS, VS, KS", environments = {Environment.TST1, Environment.PPE}) + void CreateOutgoingPriorityPaymentMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setBankName(harness.getConfig("payments_cashless.domesticPayment.bankNameCr")); + + createDomesticPaymentMaxData(harness, user1); + + data.setBankName("MONETA Money Bank, a.s."); + + verifyAndWaitForStatusAndRunCZCTDDistribution(harness, user2, DISTRIBUTION, ARCHIV); + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultShortWithICBS(harness, transactionId, data); + } + + @Order(3) + @JiraTestCase(id = "PAY-T3553") + @TestCase(name = "Create inhouse priority payment - Max SS, VS, KS", environments = {Environment.TST1, Environment.PPE}) + void CreateInhousePriorityPaymentMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + data.setBankCode("0600"); + data.setBankName("MONETA Money Bank, a.s."); + + createDomesticPaymentMaxData(harness, user1); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, ARCHIV)) + .checkSelectedTransactionData("HD:11 odchozi"); + harness.withPaymentEngine().closePaymentEngine(); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultShortWithICBS(harness, transactionId, data); + } + + @Disabled("Not currently maintained") + @Order(4) + @JiraTestCase(id = "PAY-T2828") + @TestCase(name = "Create inhouse priority payment and verify", environments = {Environment.TST1, Environment.PPE}) + void CreateInhousePriorityPaymentAndVerify(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + data.setBankCode("0600"); + data.setBankName("MONETA Money Bank, a.s."); + + createDomesticPayment(harness, user1); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, ARCHIV)); + harness.withPaymentEngine().closePaymentEngine(); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultShortWithICBS(harness, transactionId, data); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/business/StandardPayment.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/business/StandardPayment.java new file mode 100644 index 0000000..16dbdab --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/domestic/business/StandardPayment.java @@ -0,0 +1,292 @@ +package cz.moneta.test.regression.transactional.payments.cashlessFirstTests.payment_engine.domestic.business; + + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionDetailLifeCycle.TRANSACTION_BY_TYPE_ID_KEY; + +@TestScenarioWithOrder(name = "Create domestic standard payment and verify") +public class StandardPayment { + private String TOKEN_CBL; + private PaymentData data; + private PaymentEngineTasks tasks; + private String transactionId; + + @BeforeAll + void setUpTestData(Harness harness) { + data = PaymentData.builder() + .transactionType("HD:11 Úhrada klientská") + .channelId("PAE - Payment Engine") + .debtorName("TEST") + .icbsProfile("COU11 - HD:11") + .bankCode("0600") + .bankName("MONETA Money Bank, a.s.") + .nextDayDist("Ne") + .payScheme("CZ CT Non-priority") + .submissionDate(DateUtils.getFormattedTodayDateTime("dd.MM.yyyy HH:mm:ss")) + .documentDate(DateUtils.getFormattedTodayDate("dd.MM.yyyy")) + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .documentId(String.valueOf(ThreadLocalRandom.current().nextInt(100, 999))) + .dateXpath("//following-sibling::td[1]/a") + .debtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")) + .creditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")) + .build(); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + } + + @BeforeEach + void setUpUniqueTestData(Harness harness) { + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1, 299))); + tasks = new PaymentEngineTasks(harness); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + protected void createDomesticPayment(Harness harness, Credentials user1) { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createDomesticPayment(data)); + transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + } + + protected void createDomesticPaymentWithMaxData(Harness harness, Credentials user1) { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createDomesticPaymentWithMaxData(data)); + transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + } + + protected void verifyAndWaitForStatus(Harness harness, Credentials user2, TransactionReasonPAE status) { + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, status)); + harness.withPaymentEngine().closePaymentEngine(); + } + + @Disabled("Not currently maintained") + @Order(1) + @JiraTestCase(id = "PAY-T2829") + @TestCase(name = "Create outgoing standard payment and verify - MIN data", environments = {Environment.TST1, Environment.PPE}) + void createOutgoingStandardPaymentAndVerify(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setBankCode(harness.getConfig("payments_cashless.domesticPayment.bankCodeCr")); + data.setBankName(harness.getConfig("payments_cashless.domesticPayment.bankNameCr")); + + createDomesticPayment(harness, user1); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, DISTRIBUTION)) + .closeTab() + .then(tasks.sendAndRunCZCTDDistribution(data, ARCHIV, transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultShortWithICBS(harness, transactionId, data); + } + + @Disabled("Not currently maintained") + @Order(2) + @JiraTestCase(id = "PAY-T2830") + @TestCase(name = "Create inhouse standard payment and verify", environments = {Environment.TST1, Environment.PPE}) + void createInhouseStandardPaymentAndVerify(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setBankCode("0600 - MONETA Money Bank, a.s."); + data.setBankName("MONETA Money Bank, a.s."); + + createDomesticPayment(harness, user1); + verifyAndWaitForStatus(harness, user2, ARCHIV); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultShortWithICBS(harness, transactionId, data); + } + + @Order(3) + @JiraTestCase(id = "PAY-T3002") + @TestCase(name = "Create inhouse standard payment - Max SS, VS, KS", environments = {Environment.TST1, Environment.PPE}) + void createInhouseStandardPaymentMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setBankCode("0600"); + data.setBankName("MONETA Money Bank, a.s."); + + createDomesticPaymentWithMaxData(harness, user1); + verifyAndWaitForStatus(harness, user2, ARCHIV); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultShortWithICBS(harness, transactionId, data); + } + + @Order(4) + @JiraTestCase(id = "PAY-T2876") + @TestCase(name = "Create outgoing standard payment - D+1", environments = {Environment.TST1, Environment.PPE}) + void createOutgoingStandardPaymentNextDay(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAcc")); + data.setBankCode(harness.getConfig("payments_cashless.domesticPayment.bankCodeCr")); + data.setBankName(harness.getConfig("payments_cashless.domesticPayment.bankNameCr")); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.createDomesticPaymentWithDates(data)); + transactionId = PaymentEngineUtils.getTransactionalId(harness); + harness.withPaymentEngine().closePaymentEngine(); + + verifyAndWaitForStatus(harness, user2, FUTURE_MATURITY); + + PaymentEngineUtils.logResultShort(harness, transactionId, data); + } + + @Order(5) + @JiraTestCase(id = "PAY-T2873") + @TestCase(name = "Create outgoing standard payment - NSF", environments = {Environment.TST1, Environment.PPE}) + void createOutgoingStandardPaymentAndNSF(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAccNSF")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAcc")); + data.setBankCode(harness.getConfig("payments_cashless.domesticPayment.bankCodeCr")); + data.setBankName(harness.getConfig("payments_cashless.domesticPayment.bankNameCr")); + + createDomesticPayment(harness, user1); + verifyAndWaitForStatus(harness, user2, REPEAT); + + PaymentEngineUtils.logResultShort(harness, transactionId, data); + } + + @Disabled("Not currently maintained") + @Order(6) + @JiraTestCase(id = "PAY-T3003") + @TestCase(name = "Create inhouse standard payment with maximal data filling", environments = {Environment.TST1, Environment.PPE}) + void createInhouseStandardPaymentMaxAmount(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccMax1")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAccMax1")); + data.setAmount("999999999"); + + createDomesticPaymentWithMaxData(harness, user1); + String transactionId1 = transactionId; + + verifyAndWaitForStatus(harness, user2, ARCHIV); + + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAccMax1")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccMax1")); + + createDomesticPaymentWithMaxData(harness, user1); + String transactionId2 = transactionId; + + verifyAndWaitForStatus(harness, user2, ARCHIV); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId1); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId2); + + PaymentEngineUtils.logResultLongWithICBS(harness, transactionId1, transactionId2, data); + } + + @Order(7) + @JiraTestCase(id = "PAY-T3594") + @TestCase(name = "Create outgoing standard payment and verify - MAX data", environments = {Environment.TST1, Environment.PPE}) + void createOutgoingStandardPaymentAndVerifyMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAcc")); + data.setBankCode(harness.getConfig("payments_cashless.domesticPayment.bankCodeCr")); + data.setBankName(harness.getConfig("payments_cashless.domesticPayment.bankNameCr")); + + createDomesticPaymentWithMaxData(harness, user1); + + data.setBankName("MONETA Money Bank, a.s."); + + tasks.loginTasks().logInPae(harness, user2) + .then(tasks.verifyAndWaitForStatus(transactionId, RELEASE)) + .closeTab() + .then(tasks.runReleaseAfterDispoCheck(DISTRIBUTION, transactionId)) + .closeTab() + .then(tasks.sendAndRunCZCTDDistribution(data, ARCHIV, transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logResultShortWithICBS(harness, transactionId, data); + } + + @Order(8) + @JiraTestCase(id = "PAY-T3560") + @TestCase(name = "Create Inhouse HD:32 Payment And Invalid Mandate - Max Data", environments = {Environment.TST1, Environment.PPE}) + void createInhouseHD32PaymentAndInvalidMandateMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setTransactionType("HD:32 Žádost o inkaso"); + data.setBankCode("0600"); + data.setBankName("MONETA Money Bank, a.s."); + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + + createDomesticPaymentWithMaxData(harness, user1); + verifyAndWaitForStatus(harness, user2, REJECT); + + data.setTransactionType("HD:12 odchozi"); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchTransactionAndWaitForStatus(REJECT, transactionId)) + .then(tasks.checkLifeCycleAndWaitForStatus(data, WITHOUT_MANDATE)) + .storeTransactionIdByType(data.getTransactionType()); + harness.withPaymentEngine().closePaymentEngine(); + PaymentEngineUtils.logHD32Result(harness, transactionId, harness.get(TRANSACTION_BY_TYPE_ID_KEY), data, REJECT, WITHOUT_MANDATE); + } + + @Order(9) + @JiraTestCase(id = "PAY-T3561") + @TestCase(name = "Create Inhouse HD:32 Payment And Valid Mandate - Max Data", environments = {Environment.TST1, Environment.PPE}) + void createInhouseHD32PaymentAndValidMandateMaxData(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1, + @Key(Keys.paymentEngine.secondUser) Credentials user2) { + data.setTransactionType("HD:32 Žádost o inkaso"); + data.setBankCode("0600"); + data.setBankName("MONETA Money Bank, a.s."); + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.accountCZK")); + data.setCreditorAcc(harness.getConfig("payments_cashless.domesticPayment.creditorAccInh")); + + createDomesticPaymentWithMaxData(harness, user1); + verifyAndWaitForStatus(harness, user2, SENT_WAIT); + + data.setTransactionType("HD:12 odchozi"); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchTransactionAndWaitForStatus(SENT_WAIT, transactionId)) + .then(tasks.checkLifeCycleAndWaitForStatus(data, RELEASE)) + .storeTransactionIdByType(data.getTransactionType()) + .closeTab() + .then(tasks.runReleaseAfterDispoCheck(ARCHIV, harness.get(TRANSACTION_BY_TYPE_ID_KEY))) + .closeTab() + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, transactionId)); + harness.withPaymentEngine().closePaymentEngine(); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), data.getAmount(), transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), data.getAmount(), transactionId); + + PaymentEngineUtils.logHD32Result(harness, transactionId, harness.get(TRANSACTION_BY_TYPE_ID_KEY), data, ARCHIV, ARCHIV); + + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/foreign/ingoing/ForeignPaymentFromMcTest.java b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/foreign/ingoing/ForeignPaymentFromMcTest.java new file mode 100644 index 0000000..f80b78a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/transactional/payments/cashlessFirstTests/payment_engine/foreign/ingoing/ForeignPaymentFromMcTest.java @@ -0,0 +1,227 @@ +package cz.moneta.test.regression.transactional.payments.cashlessFirstTests.payment_engine.foreign.ingoing; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords; +import cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceLifeCycle; +import cz.moneta.test.dsl.payment_engine.tasks.PaymentEngineTasks; +import cz.moneta.test.dsl.payment_engine.utils.PaymentEngineUtils; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.payment.PaymentData; +import cz.moneta.test.harness.annotations.*; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.dsl.payment_engine.model.FileForInputPreparation; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; + +import java.io.*; +import java.util.concurrent.ThreadLocalRandom; + +import static cz.moneta.test.dsl.payment_engine.enums.CurrencyPAE.*; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineMonitoringInstanceFileRecords.*; +import static cz.moneta.test.dsl.payment_engine.enums.TransactionReasonPAE.*; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_monitoring.PaymentEngineRunInstance.LAST_SEQUENCE_NUMBER_KEY; +import static cz.moneta.test.dsl.payment_engine.parts_of_menu.menu_search.PaymentEngineSearchTransactionDetail.REF_TRANSACTION_KEY; + +@TestScenarioWithOrder(name = "Foreign Payment From MC controller") +public class ForeignPaymentFromMcTest extends FileForInputPreparation { + private String TOKEN_CBL; + private String MC_CFA_FILE; + private String MC_PAIN_FILE; + private String MC_CFD_FILE; + private String XCT_RETURN_FILE; + private String transactionId; + private PaymentEngineTasks tasks; + private final String filesTabName = "Soubory"; + private PaymentData data; + + @BeforeAll + public void testSetUp(Harness harness) { + MC_CFA_FILE = harness.getConfig("payments_cashless.foreignPayment.cfaFile"); + MC_PAIN_FILE = harness.getConfig("payments_cashless.foreignPayment.painFile"); + MC_CFD_FILE = harness.getConfig("payments_cashless.foreignPayment.cfdFile"); + XCT_RETURN_FILE = harness.getConfig("payments_cashless.foreignPayment.xctReturnFile"); + TOKEN_CBL = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + data = PaymentData.builder() + .iban(harness.getConfig("payments_cashless.foreignPayment.foreignIban")) + .todayDate(DateUtils.convertRawDateForWso2(DateUtils.getTodayRawDate())) + .build(); + } + + @BeforeEach + public void testSetUpUniqueData(Harness harness) { + tasks = harness.tasks().paymentEngineTasks(); + data.setAmount(ThreadLocalRandom.current().nextInt(1, 9) + "," + ThreadLocalRandom.current().nextInt(10, 99)); + data.setAmount1(data.getAmount().replace(",", ".")); + data.setRandom(String.valueOf(ThreadLocalRandom.current().nextInt(100000000, 999999999))); + } + + private void checkTransactionStatusBooked(Harness harness, String account, String amountICBS, String transactionId) { + String request = harness.tasks() + .wso2() + .payments() + .createRequestForTransactionCheck(account, data.getTodayDate(), amountICBS); + harness.tasks() + .wso2() + .payments() + .checkTransactionStatusBooked(TOKEN_CBL, request, transactionId); + } + + @Order(1) + @JiraTestCase(id = "PAY-T3599") + @TestCase(name = "Create Input CFA From MC", environments = {Environment.TST1, Environment.PPE}) + void createInputCFAFromMC(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + + data.setDebtorAcc(harness.getConfig("payments_cashless.foreignPayment.debtorAccMcCFA")); + String newFileName = DateUtils.getFormattedTodayDate("yyMMdd") + "11525" + data.getRandom() + "_0.CFA"; + File file = prepareFileForInput(harness, MC_CFA_FILE, newFileName, data); + + try { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.inputCFAFromMC(file.getAbsolutePath())) + .then(tasks.checkStatusOfCFAFromMC(DISTRIBUTION, newFileName)) + .then(tasks.sendAndRunXCTDistribution()) + .then(tasks.checkStatusOfCFAFromMC(ARCHIV, newFileName)); + harness.withPaymentEngine().closePaymentEngine(); + + transactionId = harness.get(TRANSACTION_ID_KEY); + String equivalentAmount = harness.get(PaymentEngineMonitoringInstanceFileRecords.EQUIVALENT_AMOUNT_KEY) + .toString().replace(".", "").replace(",", "."); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), equivalentAmount, transactionId); + + PaymentEngineUtils.logResultOfInputWithEquivalentAmount(harness, newFileName, transactionId, data.getAmount(), + CURRENCY_USD_SHORT, equivalentAmount, CURRENCY_CZK_SHORT); + + } catch (Exception e) { + throw e; + } finally { + file.delete(); + } + } + + @Disabled + @Order(2) + @JiraTestCase(id = "PAY-T3691") + @TestCase(name = "Create Return Input CFA From MC", environments = {Environment.TST1, Environment.PPE}) + void createReturnInputCFAFromMC(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + + data.setDebtorAcc(harness.getConfig("payments_cashless.foreignPayment.debtorAccMcCFA")); + data.setIban(harness.getConfig("payments_cashless.foreignPayment.ibanMcCFA")); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.searchTransactionAndWaitForStatus(ARCHIV, transactionId)) + .then(tasks.checkTransactionDetailAndStoreRefTransactionId()); + harness.withPaymentEngine().closePaymentEngine(); + File xctReturnFile = null; + + try { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.storeLastMTId(filesTabName)); + harness.withPaymentEngine().closePaymentEngine(); + + data.setTrxReference(harness.get(REF_TRANSACTION_KEY)); + lastField = Integer.valueOf(harness.get(LAST_SEQUENCE_NUMBER_KEY)); + String xctReturnFileName = String.format("0106%04d.out", lastField + 1); + xctReturnFile = prepareFileForInput(harness, XCT_RETURN_FILE, xctReturnFileName, data); + + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.inputMTFromSAA(xctReturnFile.getAbsolutePath())) + .then(tasks.checkStatusOfMTFromSAA(xctReturnFileName, ARCHIV)) + .storeEquivalentAmountCzk(); + harness.withPaymentEngine().closePaymentEngine(); + + transactionId = harness.get(TRANSACTION_ID_KEY); + String equivalentAmount = harness.get(PaymentEngineMonitoringInstanceFileRecords.EQUIVALENT_AMOUNT_KEY) + .toString().replace(".", "").replace(",", "."); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), equivalentAmount, transactionId); + + PaymentEngineUtils.logResultOfInputWithEquivalentAmount(harness, xctReturnFileName, transactionId, data.getAmount(), + CURRENCY_USD_SHORT, equivalentAmount, CURRENCY_CZK_SHORT); + + } catch (Exception e) { + throw e; + } finally { + xctReturnFile.delete(); + } + } + + @Order(3) + @JiraTestCase(id = "PAY-T3601") + @TestCase(name = "Create Input PAIN From MC", environments = {Environment.TST1, Environment.PPE}) + void createInputPAINFromMC(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + + data.setDebtorAcc(harness.getConfig("payments_cashless.foreignPayment.foreignCreditor")); + data.setIban(harness.getConfig("payments_cashless.foreignPayment.foreignIban")); + + String newFileName = DateUtils.getFormattedTodayDate("yyMMdd") + "11032" + data.getRandom() + "_0.CCT"; + File file = prepareFileForInput(harness, MC_PAIN_FILE, newFileName, data); + + try { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.inputPAINFromMC(file.getAbsolutePath())) + .then(tasks.checkStatusOfPAINFromMC(newFileName, DISTRIBUTION)) + .then(tasks.sendAndRunXCTDistribution()) + .then(tasks.checkStatusOfPAINFromMC(newFileName, ARCHIV)); + harness.withPaymentEngine().closePaymentEngine(); + + transactionId = harness.get(TRANSACTION_ID_KEY); + String equivalentAmount = harness.get(PaymentEngineMonitoringInstanceFileRecords.EQUIVALENT_AMOUNT_KEY) + .toString().replace(".", "").replace(",", "."); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), equivalentAmount, transactionId); + + PaymentEngineUtils.logResultOfInputWithEquivalentAmount(harness, newFileName, transactionId, data.getAmount1(), + CURRENCY_EUR_SHORT, equivalentAmount, CURRENCY_CZK_SHORT); + + } catch (Exception e) { + throw e; + } finally { + file.delete(); + } + } + + @Order(4) + @JiraTestCase(id = "PAY-T3600") + @TestCase(name = "Create Input CFD From MC", environments = {Environment.TST1, Environment.PPE}) + void createInputCFDFromMC(Harness harness, @Key(Keys.paymentEngine.firstUser) Credentials user1) throws IOException { + + data.setDebtorAcc(harness.getConfig("payments_cashless.domesticPayment.debtorAcc")); + data.setCreditorAcc(harness.getConfig("payments_cashless.foreignPayment.foreignCreditor")); + data.setAmount(String.valueOf(ThreadLocalRandom.current().nextInt(1000, 9999))); + data.setAmount1(String.valueOf(ThreadLocalRandom.current().nextInt(1000, 9999))); + data.setTrxReference(String.valueOf(Integer.parseInt(data.getAmount()) + Integer.parseInt(data.getAmount1()))); + + String newFileName = DateUtils.getFormattedTodayDate("yyMMdd") + "08043" + data.getRandom() + "_0.CFD"; + File file = prepareFileForInput(harness, MC_CFD_FILE, newFileName, data); + + try { + tasks.loginTasks().logInPae(harness, user1) + .then(tasks.inputCFDFromMC(file.getAbsolutePath())) + .then(tasks.checkStatusOfCFDFromMC(newFileName, ARCHIV)); + harness.withPaymentEngine().closePaymentEngine(); + + String outgoingTransactionId = harness.get(TRANSACTION_ID_KEY); + transactionId = harness.get(OUTGOING_TRANSACTION_ID_KEY); + String ingoingTransactionId = harness.get(PaymentEngineMonitoringInstanceLifeCycle.INGOING_HD11_TRANSACTION_ID_KEY); + String transactionAmount = harness.get(FIRST_ROW_AMOUNT_KEY).toString().replace(",", "."); + String outgoingTransactionAmount = harness.get(SECOND_ROW_AMOUNT_KEY).toString().replace(",", "."); + + checkTransactionStatusBooked(harness, data.getDebtorAcc(), transactionAmount, transactionId); + checkTransactionStatusBooked(harness, data.getCreditorAcc(), outgoingTransactionAmount, outgoingTransactionId); + checkTransactionStatusBooked(harness, data.getDebtorAcc(), outgoingTransactionAmount, outgoingTransactionId); + + PaymentEngineUtils.logResultOfInputLong(harness, newFileName, outgoingTransactionId, outgoingTransactionAmount, + ingoingTransactionId, transactionId, transactionAmount, CURRENCY_CZK_SHORT); + + } catch (Exception e) { + throw e; + } finally { + file.delete(); + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/ufoframework/ClientSearch.java b/tests/src/test/java/cz/moneta/test/regression/ufoframework/ClientSearch.java new file mode 100644 index 0000000..274923d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/ufoframework/ClientSearch.java @@ -0,0 +1,37 @@ +package cz.moneta.test.regression.ufoframework; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Client Search") +public class ClientSearch { + + @TestCase(name = "Client Search", environments = {TST1, PPE}) + @JiraTestCase(id = "UFO-T511") + public void clientSearch(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String clientCif = harness.getConfig("ufo_framework_team.ufo_banka.client.cif"); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(credentials)) + .then(bankaTasks.search().findByCif(clientCif)) + .verifyClientsProductsNotEmpty(); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeBirthNumberFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/ufoframework/ExternalFunctioneArchiv.java b/tests/src/test/java/cz/moneta/test/regression/ufoframework/ExternalFunctioneArchiv.java new file mode 100644 index 0000000..d826105 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/ufoframework/ExternalFunctioneArchiv.java @@ -0,0 +1,27 @@ +package cz.moneta.test.regression.ufoframework; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +@TestScenario(name = "External Function eArchiv") +public class ExternalFunctioneArchiv { + + @TestCase(name = "External Function eArchiv", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "UFO-T514") + public void externalFunctioneArchiv(Harness harness, @Key(Keys.ufo.banka.banker) + Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .clickEarchiv(); + + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/regression/ufoframework/FileUpload.java b/tests/src/test/java/cz/moneta/test/regression/ufoframework/FileUpload.java new file mode 100644 index 0000000..13f6f79 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/ufoframework/FileUpload.java @@ -0,0 +1,51 @@ +package cz.moneta.test.regression.ufoframework; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.fon.UploadUtil; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.ICO_KEY; +import static cz.moneta.test.harness.annotations.Environment.DEV; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "File Upload") +public class FileUpload { + + @TestCase(name = "File Upload", environments = {TST1, PPE, DEV}) + @JiraTestCase(id = "UFO-T516") + public void fileUpload(Harness harness) { + + String clientIco = "48155497"; + harness.store(ICO_KEY, clientIco); + String registrationNumber = harness.getConfig("commercial.cb.registration-number"); + String documentTitle = "test"; + String filePath = UploadUtil.getResourcePath("regression/ufo/cb/TEST_FILE_UPLOAD.pdf"); + + CommercialTasks commercialTasks = harness.tasks().ufo().cb(); + harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .then(commercialTasks.searchClient(clientIco)) + .clickDocuments() + .clickNewDocumentButton() + .clickDocumentSentAsNormalLetter() + .selectAccountNumberByRegistrationNumber(registrationNumber) + .selectDocumentType("Ostatní") + .saveDocument() + .typeDocumentName(documentTitle) + .uploadDocument(filePath) + .clickSaveButton() + .checkFirstDocumentName(documentTitle); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeIcoFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/ufoframework/GenerateSession.java b/tests/src/test/java/cz/moneta/test/regression/ufoframework/GenerateSession.java new file mode 100644 index 0000000..b741d0f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/ufoframework/GenerateSession.java @@ -0,0 +1,36 @@ +package cz.moneta.test.regression.ufoframework; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.ufoframework.tasks.FunctionalTestsTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; + +@TestScenario(name = "Generate Session") +public class GenerateSession { + + @TestCase(name = "Generate Session", environments = {Environment.TST1, Environment.PPE, Environment.DEV,}) + @JiraTestCase(id = "UFO-T513") + public void generateSessions(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + FunctionalTestsTasks functionalTestsTasks = harness.tasks().ufo().functionalTests(); + harness.withUfo() + .openLoginPage() + .then(functionalTestsTasks.login().withCredentials(credentials)) + .clickOtherErika() + .fillStepCount("90000") + .clickGenerateSession() + .waitForGeneratingSessions(); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeBirthNumberFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/ufoframework/IncludePage.java b/tests/src/test/java/cz/moneta/test/regression/ufoframework/IncludePage.java new file mode 100644 index 0000000..36a755b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/ufoframework/IncludePage.java @@ -0,0 +1,38 @@ +package cz.moneta.test.regression.ufoframework; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks.JIRA_COMMENT_STORE_KEY; + +@TestScenario(name = "Include Page") +public class IncludePage { + + @TestCase(name = "Include Page", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "UFO-T507") + public void includePage(Harness harness, @Key(Keys.ufo.banka.banker) + Credentials credentials) { + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentialsAndSelectFirstOM(credentials)) + .clickTasks() + .storeFirstRecordTaskId() + .clickThirdPage() + .checkFirstRecordTaskIdChanged(); + } + + @AfterEach + protected void teardown(Harness harness) { + harness.store(JIRA_COMMENT_STORE_KEY, + "\nUFO Session ID: " + harness.get("reports.tmfj.execution.commentufosessionid")); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/ufoframework/SlaveSessionUfoBanka.java b/tests/src/test/java/cz/moneta/test/regression/ufoframework/SlaveSessionUfoBanka.java new file mode 100644 index 0000000..2f351fc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/ufoframework/SlaveSessionUfoBanka.java @@ -0,0 +1,36 @@ +package cz.moneta.test.regression.ufoframework; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.harness.annotations.Environment.DEV; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Slave Session Ufo Banka") +public class SlaveSessionUfoBanka { + + @TestCase(name = "Slave Session Ufo Banka", environments = {TST1, PPE, DEV}) + @JiraTestCase(id = "UFO-T508") + public void slaveSessionUfoBanka(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfoSecondInstance() + .openLoginPage() + .then(bankaTasks.login().withCredentials(credentials)) + .clickSecondSignature(); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeBirthNumberFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/ufoframework/SlaveSessionUfoOperations.java b/tests/src/test/java/cz/moneta/test/regression/ufoframework/SlaveSessionUfoOperations.java new file mode 100644 index 0000000..17ca5a5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/ufoframework/SlaveSessionUfoOperations.java @@ -0,0 +1,52 @@ +package cz.moneta.test.regression.ufoframework; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.recorder.RecorderNameOfGroup; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.harness.annotations.Environment.DEV; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Slave Session Ufo Operations") +public class SlaveSessionUfoOperations { + + @TestCase(name = "Slave Session Ufo Operations", environments = {TST1, PPE, DEV}) + @JiraTestCase(id = "UFO-T506") + public void slaveSessionUfoOperations(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + RecorderNameOfGroup[] requirements = { + RecorderNameOfGroup.CC_INCOMING_CALL, + RecorderNameOfGroup.CC_OUTCOMING_CALL, + RecorderNameOfGroup.CC_SUGGESTIONS_TO_IMPROVE_AND_PRAISES, + RecorderNameOfGroup.CC_CENTER_AUTO, + RecorderNameOfGroup.GECL, + RecorderNameOfGroup.MMB, + RecorderNameOfGroup.CARDS_CREDIT, + RecorderNameOfGroup.TELEMARKETING, + RecorderNameOfGroup.SALES, + RecorderNameOfGroup.RETENTION, + RecorderNameOfGroup.CLIENT_SERVICE_ABROAD + }; + + OperationsTasks operationsTasksTasks = harness.tasks().ufo().operations(); + harness.withUfo() + .openLoginPage() + .then(operationsTasksTasks.login().withCredentials(credentials)) + .clickRecorder() + .checkRequirementsAreVisible(requirements); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeBirthNumberFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/ufoframework/UfoBankaLogTest.java b/tests/src/test/java/cz/moneta/test/regression/ufoframework/UfoBankaLogTest.java new file mode 100644 index 0000000..7f4e18d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/ufoframework/UfoBankaLogTest.java @@ -0,0 +1,39 @@ +package cz.moneta.test.regression.ufoframework; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Ufo Banka Log Test") +public class UfoBankaLogTest { + + @TestCase(name = "Ufo Banka Log Test", environments = {TST1, PPE}) + @JiraTestCase(id = "UFO-T512") + public void ufoBankaLogTest(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String clientCif = harness.getConfig("ufo_framework_team.ufo_banka.client.cif"); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentials(credentials)) + .then(bankaTasks.search().findByCif(clientCif)) + .clickLog() + .verifyLogDataNotEmpty() + .clickCopyLog(); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeBirthNumberFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/regression/ufoframework/ValidationTests.java b/tests/src/test/java/cz/moneta/test/regression/ufoframework/ValidationTests.java new file mode 100644 index 0000000..dbc7503 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/regression/ufoframework/ValidationTests.java @@ -0,0 +1,56 @@ +package cz.moneta.test.regression.ufoframework; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.ufoframework.tasks.FunctionalTestsTasks; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.regression.commercial.smallbusiness.digital.TearDown; +import org.junit.jupiter.api.AfterEach; + +import static cz.moneta.test.harness.annotations.Environment.DEV; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Validation Tests") +public class ValidationTests { + + @TestCase(name = "Validation Tests", environments = {TST1, PPE, DEV}) + @JiraTestCase(id = "UFO-T509") + public void validations(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + String validHAccountNumber = "123"; + String notValidHAccountNumber = "1234"; + String validHEmail = "name@mail.subdomain.com"; + String notValidHEmail = "user@"; + String validHDate = "12.11.2025"; + String notValidHDate = "2025-07-14"; + String validHBirthNumber = "8202075090"; + String notValidHBirthNumber = "11"; + String validHIco = "48155497"; + String notValidHIco = "11"; + String validHFullName = "Jakub Slapnička"; + String notValidHFullName = "11"; + + FunctionalTestsTasks functionalTestsTasks = harness.tasks().ufo().functionalTests(); + harness.withUfo() + .openLoginPage() + .then(functionalTestsTasks.login().withCredentials(credentials)) + .clickOtherJarda() + .clickValidationValueTypes() + .then(functionalTestsTasks.verificationsTasks().verifyHAccountNumber(validHAccountNumber, notValidHAccountNumber)) + .then(functionalTestsTasks.verificationsTasks().verifyHEmail(validHEmail, notValidHEmail)) + .then(functionalTestsTasks.verificationsTasks().verifyHDate(validHDate, notValidHDate)) + .then(functionalTestsTasks.verificationsTasks().verifyHBirthNumber(validHBirthNumber, notValidHBirthNumber)) + .then(functionalTestsTasks.verificationsTasks().verifyHIco(validHIco, notValidHIco)) + .then(functionalTestsTasks.verificationsTasks().verifyHFullName(validHFullName, notValidHFullName)); + } + + @AfterEach + protected void tearDown(Harness harness) { + TearDown.storeBirthNumberFullNameCifSessionId(harness); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sandbox/connectiontests/jenkinsapi/DatabaseConnectionTest.java b/tests/src/test/java/cz/moneta/test/sandbox/connectiontests/jenkinsapi/DatabaseConnectionTest.java new file mode 100644 index 0000000..b278782 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sandbox/connectiontests/jenkinsapi/DatabaseConnectionTest.java @@ -0,0 +1,50 @@ +package cz.moneta.test.sandbox.connectiontests.jenkinsapi; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.hypos.hyposdb.HyposDbEndpoint; +import cz.moneta.test.harness.endpoints.nasdb.NasDbEndpoint; +import cz.moneta.test.harness.endpoints.ods.OdsEndpoint; +import cz.moneta.test.harness.endpoints.testautomationdb.TestAutomationDbEndpoint; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "Check Environment Database Connections") +public class DatabaseConnectionTest { + + @TestCase(name = "Check Harness DB Connection") + public void testHarnessDbConnection(Harness harness) { + Result result = harness.getEndpoint(TestAutomationDbEndpoint.class).executeSql("SELECT 1"); + Assertions.assertTrue(result.isNotEmpty()); + } + + @TestCase(name = "Check ODS DB Connection", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void testOdsDbConnection(Harness harness) { + Result result = harness.getEndpoint(OdsEndpoint.class).executeSql("SELECT 1 FROM DUAL"); + Assertions.assertTrue(result.isNotEmpty()); + } + + @TestCase(name = "Check UDEBS DB Connection", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void testUdebsDbConnection(Harness harness) { + Result result = harness.getEndpoint(UdebsEndpoint.class).executeSql("SELECT 1 FROM DUAL"); + Assertions.assertTrue(result.isNotEmpty()); + } + + @TestCase(name = "Check NAS DB Connection", environments = {Environment.TST1, Environment.PPE}) + public void testNasDbConnection(Harness harness) { + Result result = harness.getEndpoint(NasDbEndpoint.class).executeSql("SELECT 1 FROM DUAL"); + Assertions.assertTrue(result.isNotEmpty()); + } + + @TestCase(name = "Check Hypos DB Connection", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void testHyposDbConnection(Harness harness) { + Result result = harness.getEndpoint(HyposDbEndpoint.class).executeSql("SELECT 1"); + Assertions.assertTrue(result.isNotEmpty()); + } + +} + diff --git a/tests/src/test/java/cz/moneta/test/sandbox/connectiontests/jenkinsapi/RestApiConnectionTest.java b/tests/src/test/java/cz/moneta/test/sandbox/connectiontests/jenkinsapi/RestApiConnectionTest.java new file mode 100644 index 0000000..4136420 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sandbox/connectiontests/jenkinsapi/RestApiConnectionTest.java @@ -0,0 +1,108 @@ +package cz.moneta.test.sandbox.connectiontests.jenkinsapi; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.connectors.VaultConnector; +import cz.moneta.test.harness.endpoints.jira.JiraEndpoint; +import cz.moneta.test.harness.exception.HarnessException; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.system.ilodsserver.IlodsServerTest; +import cz.moneta.test.system.openapi.OpenApiTest; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "Check Global REST API Connections") +public class RestApiConnectionTest { + + @TestCase(name = "Check OpenAPI Connection", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void testOpenApiConnection(Harness harness) { + new OpenApiTest().callOpenApi(harness); + } + + @TestCase(name = "Check WSO2 Connection", environments = {Environment.TST1, Environment.PPE, Environment.FVE}) + public void testWSO2Connection(Harness harness) { + String token = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + Assertions.assertNotNull(token); + } + + @TestCase(name = "Check CA API GW Connection", environments = {Environment.TST1, Environment.PPE}) + public void testCaApiGwConnection(Harness harness) { + String token = harness.tasks().caGw().authorization().getVoicebotToken(); + Assertions.assertNotNull(token); + } + + @TestCase(name = "Check WireMock Server Connection", environments = {Environment.DEV}) + public void testWireMockServerConnection(Harness harness) { + harness.withMockServer() + .prepareRequest() + .withPath("/__admin/health") + .get() + .andAssertFieldValue("status", "healthy"); + } + + @TestCase(name = "Check MVCR Connection") + public void testMvcrConnection(Harness harness) { + harness.tasks().mvcr().checkIdCardValidity("123456123"); + } + + @TestCase(name = "Check Elastic Read Connection") + public void testElasticReadConnection(Harness harness) { + harness.withElasticApi() + .prepareReadRequest() + .withPath("/") + .withHeader("Authorization", "Basic " + harness.tasks().elasticApiTasks().getAuthorizationToken()) + .get() + .andAssertStatus(200); + } + + @TestCase(name = "Check Elastic Write Connection") + public void testElasticWriteConnection(Harness harness) { + harness.withElasticApi() + .prepareWriteRequest() + .withPath("/") + .withHeader("Authorization", "Basic " + harness.tasks().elasticApiTasks().getAuthorizationToken()) + .get() + .andAssertStatus(200); + } + + @TestCase(name = "Check Vault Connection") + public void testVaultConnection(Harness harness) { + new VaultConnector(harness.getConfig("vault.url"), harness.getConfig("vault.username"), harness.getConfig("vault.password")); + } + + @TestCase(name = "Check Jira API Connection") + public void testJiraConnection(Harness harness) { + VaultConnector v = new VaultConnector(harness.getConfig("vault.url"), harness.getConfig("vault.username"), harness.getConfig("vault.password")); + String token = (String) v.getValue("/kv/autotesty/common/jira", "token").orElseThrow(() -> new HarnessException("Cannot get Jira token from Vault")); + + RawRestRequest.Response comment = RawRestRequest.jsonBuilder(new JiraEndpoint(harness.getConfig("endpoints.jira.core"))) + .withPath("issue/TEA-245") + .withHeader("Authorization", "Basic " + token) + .get() + .andAssertStatus(200); + } + @TestCase(name = "Check Jira Zephyr API Connection") + public void testJiraZephyrConnection(Harness harness) { + VaultConnector v = new VaultConnector(harness.getConfig("vault.url"), harness.getConfig("vault.username"), harness.getConfig("vault.password")); + String token = (String) v.getValue("/kv/autotesty/common/jira", "token").orElseThrow(() -> new HarnessException("Cannot get Jira token from Vault")); + + RawRestRequest.Response comment = RawRestRequest.jsonBuilder(new JiraEndpoint(harness.getConfig("reports.tmfj.url"))) + .withPath("testcase/TEA-T10") + .withHeader("Authorization", "Basic " + token) + .get() + .andAssertStatus(200); + } + + @TestCase(name = "Check ILODS Server Connection") + public void testIlodsServer(Harness harness) { + new IlodsServerTest().callTestAction(harness); + } + + @TestCase(name = "Check Selenium Hub Connection") + public void testTestSeleniumHubConnection(Harness harness) { + harness.withTestAutomationPage() + .openHomePage(); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/sandbox/connectiontests/seleniumnodes/WebConnectionTest.java b/tests/src/test/java/cz/moneta/test/sandbox/connectiontests/seleniumnodes/WebConnectionTest.java new file mode 100644 index 0000000..7f0dbd6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sandbox/connectiontests/seleniumnodes/WebConnectionTest.java @@ -0,0 +1,104 @@ +package cz.moneta.test.sandbox.connectiontests.seleniumnodes; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Disabled; + +@TestScenario(name = "Check Environment Web Connections") +public class WebConnectionTest { + + @TestCase(name = "Check Web TestAutomation Connection") + public void testTestAutomationPageConnection(Harness harness) { + harness.withTestAutomationPage() + .openHomePage(); + } + + @Disabled(value = "Endpoint is not used anywhere") + @TestCase(name = "Check Cashman Connection", environments = {Environment.TST1, Environment.DEV}) + public void testCashmanConnection(Harness harness) { + harness.withCashman() + .openCashmanHomePage(); + } + + @TestCase(name = "Check NewIB Connection", environments = {Environment.TST1, Environment.PPE, Environment.DEV, Environment.FVE}) + public void testNewIBConnection(Harness harness) { + harness.withNewIb() + .openLoginPage(); + } + + @Disabled(value = "Actually endpoint is not used from Jenkins") + @TestCase(name = "Check Exevido Connection", environments = {Environment.TST1, Environment.PPE}) + public void testExevidoConnection(Harness harness) { + harness.withExevido() + .openLoginPage(); + } + + @TestCase(name = "Check Forge Connection", environments = {Environment.TST1, Environment.DEV}) + public void testForgeConnection(Harness harness) { + harness.withForteLight() + .openForteLightHomePage(); + } + + @TestCase(name = "Check Forte Connection", environments = {Environment.TST1, Environment.PPE, Environment.DEV}) + public void testForteConnection(Harness harness) { + harness.withForte() + .openForteHomePage(); + } + + @TestCase(name = "Check UFO Connection", environments = {Environment.TST1, Environment.PPE, Environment.DEV}) + public void testUfoConnection(Harness harness) { + harness.withUfo() + .openLoginPage(); + } + + @TestCase(name = "Check Hypos Connection", environments = {Environment.TST1, Environment.PPE}) + public void testHyposConnection(Harness harness) { + harness.withHypos() + .openLoginPage(); + } + + @TestCase(name = "Check Kasanova Connection", environments = {Environment.TST1}) + public void testKasanovaConnection(Harness harness) { + harness.withKasanova() + .openLoginPage(); + } + + @TestCase(name = "Check SalesForce Connection", environments = {Environment.TST1, Environment.PPE}) + public void testSalesForceConnection(Harness harness) { + harness.withSalesForce() + .openLoginPage(); + } + + @TestCase(name = "Check PayHub Connection", environments = {Environment.TST1, Environment.PPE}) + public void testPayHubConnection(Harness harness) { + harness.withPaymentEngine() + .openLoginPage(); + } + + @TestCase(name = "Check Moneta Portal Connection", environments = {Environment.TST1, Environment.PPE}) + public void testMonetaPortalConnection(Harness harness) { + harness.withMonetaPortal() + .openHomePage(); + } + + @TestCase(name = "Check Refinanso Connection", environments = {Environment.TST1, Environment.PPE}) + public void testRefinansoConnection(Harness harness) { + harness.withRefinanso() + .openHomePage(); + } + + @TestCase(name = "Check Broker Portal Connection", environments = {Environment.TST1, Environment.PPE}) + public void testBrokerPortalConnection(Harness harness) { + harness.withBrokerPortal() + .openLoginPage(); + } + + @TestCase(name = "Check Smart Auto Connection", environments = {Environment.TST1, Environment.PPE}) + public void testSmartAutoConnection(Harness harness) { + harness.withSmartAuto() + .openLoginPage(); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/sandbox/demo/HarnessDemoTest.java b/tests/src/test/java/cz/moneta/test/sandbox/demo/HarnessDemoTest.java new file mode 100644 index 0000000..19740e6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sandbox/demo/HarnessDemoTest.java @@ -0,0 +1,26 @@ +package cz.moneta.test.sandbox.demo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.demo.SpiritRef; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "HarnessDemoTest scenario used to validate initial setup") +public class HarnessDemoTest { + + @TestCase(name = "Summon the spirit of Count Dooku and make sure the spirit of Qui-Gon Jinn does not follow him") + public void firstHarnessTest(Harness harness) { + SpiritRef countDooku = harness.withDemo() + .summonSpirit("Count Dooku"); + + harness.withDemo() + .verify() + .thatWeAreInPresenceOf(countDooku) + .thatThereIsNoSignOf("Qui-Gon Jinn"); + + harness.withDemo() + .expel(countDooku) + .verify() + .thatThereIsNoSignOf(countDooku); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sandbox/demo/WebDemoTest.java b/tests/src/test/java/cz/moneta/test/sandbox/demo/WebDemoTest.java new file mode 100644 index 0000000..10fed2f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sandbox/demo/WebDemoTest.java @@ -0,0 +1,21 @@ +package cz.moneta.test.sandbox.demo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "WebDemoTest is used to validate local configuration.") +public class WebDemoTest { + + @TestCase(name = "Test open chrome for web testing.") + public void chromeOpenTest(Harness harness) { + harness.withDemoChromeTestPage() + .openTestPage(); + } + + @TestCase(name = "Test open edge for web testing.") + public void edgeOpenTest(Harness harness) { + harness.withDemoEdgeTestPage() + .openTestPage(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sandbox/dsl/CsvParametrizedTestExample.java b/tests/src/test/java/cz/moneta/test/sandbox/dsl/CsvParametrizedTestExample.java new file mode 100644 index 0000000..7286607 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sandbox/dsl/CsvParametrizedTestExample.java @@ -0,0 +1,23 @@ +package cz.moneta.test.sandbox.dsl; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.ParameterizedTestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.params.provider.CsvFileSource; + +import java.util.stream.Collectors; +import java.util.stream.Stream; + +@TestScenario(name = "Example of ParameterizedTestCase from CSV") +public class CsvParametrizedTestExample { + + /** + * https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests-argument-aggregation-custom + */ + @ParameterizedTestCase(name = "Example of ParameterizedTestCase from CSV") + @CsvFileSource(resources = "/sandbox/csv_file_source_example.csv", delimiter = ';', numLinesToSkip = 1) + public void allBridgeLoanPurposes(String column1, String column2, String column3, Harness harness) { + harness.log("This test is running with parameters: " + Stream.of(column1, column2, column3).collect(Collectors.joining(", "))); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/sandbox/dsl/util/DefaultsTest.java b/tests/src/test/java/cz/moneta/test/sandbox/dsl/util/DefaultsTest.java new file mode 100644 index 0000000..5d2b235 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sandbox/dsl/util/DefaultsTest.java @@ -0,0 +1,60 @@ +package cz.moneta.test.sandbox.dsl.util; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.data.client.Address; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +import java.util.Date; + +@TestScenario(name = "Tests for TestUtils.") +public class DefaultsTest { + + @TestCase(name = "Tests unique birth number generator happy path.") + void shouldGenerateRandomBirthNumber(Harness harness) { + String birthNumber = harness.data().newNonClient().birthNumber(); + Assertions.assertNotNull(birthNumber); + } + + @TestCase(name = "Tests unique mobile phone number generator happy path.") + void shouldGenerateMobileNumber(Harness harness) { + String mobileNumber = harness.data().newNonClient().mobileNumber(); + Assertions.assertNotNull(mobileNumber); + } + + @TestCase(name = "Tests unique fix line phone number generator happy path.") + void shouldGenerateFixLineNumber(Harness harness) { + String fixPhoneNumberHome = harness.data().newNonClient().fixPhoneNumberHome(); + Assertions.assertNotNull(fixPhoneNumberHome); + } + + @TestCase(name = "Tests proper handling of default methods") + void shouldReturnAddress(Harness harness) { + Address residencyAddress = harness.data().newNonClient().residencyAddress(); + Assertions.assertNotNull(residencyAddress); + } + + @TestCase(name = "Tests proper parsing of @Value annotation") + void shouldReturnOccupationCode(Harness harness) { + int occupationCode = Integer.parseInt(harness.data().newNonClient().occupationType().getHCisValue()); + Assertions.assertEquals(8, occupationCode); + } + + @TestCase(name = "Tests proper parsing of @Date annotation.") + void shouldReturnIdCardExpiryDate(Harness harness) { + Date expiryDate = harness.data().newNonClient().idCardExpiredRaw(); + Assertions.assertNotNull(expiryDate); + } + + @TestCase(name = "Manual fraud check number") + void shouldReturnRightCheckNumber(Harness harness) { + NonClient client = harness.data().newNonClient() + .withBirthNumber("9108273977") + .withIdNumber("209351641") + .withIdNumberExpiration("8.3.2028"); + Assertions.assertEquals("0", client.idNumberCheckDigit()); + } + +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/sandbox/generators/IdCardGeneratorTest.java b/tests/src/test/java/cz/moneta/test/sandbox/generators/IdCardGeneratorTest.java new file mode 100644 index 0000000..c153dc2 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sandbox/generators/IdCardGeneratorTest.java @@ -0,0 +1,66 @@ +package cz.moneta.test.sandbox.generators; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.data.client.IdCard; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +import java.time.LocalDate; +import java.time.ZoneId; + +@TestScenario(name = "check ID card validity") +public class IdCardGeneratorTest { + + @TestCase(name = "under 15") + public void check_valid_before_15(Harness harness) { + NonClient nonClient = harness.data().newNonClient(); + IdCard idCard = nonClient.idCard(LocalDate.of(2016, 1, 1)); + Assertions.assertEquals(idCard.getValidFrom().plusYears(5), idCard.getValidTo()); + Assertions.assertEquals( + idCard.getValidFrom().plusYears(5), + nonClient.idCardExpiredRaw().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); + Assertions.assertTrue(nonClient.birthNumber().startsWith("16")); + } + + @TestCase(name = "test over 70") + public void check_validity_after_70(Harness harness) { + NonClient nonClient = harness.data().newNonClient(); + IdCard idCard = nonClient.idCard(LocalDate.of(1915, 1, 1)); + Assertions.assertEquals(idCard.getValidFrom().plusYears(35), idCard.getValidTo()); + Assertions.assertEquals( + idCard.getValidFrom().plusYears(35), + nonClient.idCardExpiredRaw().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); + Assertions.assertTrue(nonClient.birthNumber().startsWith("15")); + } + + @TestCase(name = "test default validity") + public void check_default_validity(Harness harness) { + NonClient nonClient = harness.data().newNonClient(); + IdCard idCard = nonClient.idCard(LocalDate.of(1996, 1, 1)); + Assertions.assertEquals(idCard.getValidFrom().plusYears(10), idCard.getValidTo()); + Assertions.assertEquals( + idCard.getValidFrom().plusYears(10), + nonClient.idCardExpiredRaw().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); + Assertions.assertTrue(nonClient.birthNumber().startsWith("96")); + } + + @TestCase(name = "test pre-defined RC < 15 years old") + public void validity_with_custom_rc(Harness harness) { + NonClient nonClient = harness.data().newNonClient(); + nonClient.withBirthNumber("0912316482"); + IdCard idCard = nonClient.idCard(); + Assertions.assertEquals(idCard.getValidFrom().plusYears(5), idCard.getValidTo()); + Assertions.assertTrue(nonClient.birthNumber().startsWith("09")); + } + + @TestCase(name = "test random card validity") + public void check_random_validity(Harness harness) { + NonClient nonClient = harness.data().newNonClient(); + IdCard idCard = nonClient.idCard(); + Assertions.assertTrue(idCard.getValidTo().isAfter(LocalDate.now())); + Assertions.assertTrue(idCard.getValidTo().isBefore(LocalDate.now().plusYears(10))); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/sandbox/package-info.java b/tests/src/test/java/cz/moneta/test/sandbox/package-info.java new file mode 100644 index 0000000..0397731 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sandbox/package-info.java @@ -0,0 +1,5 @@ +/** + * Test in this section are not executed automatically in any pipeline. Get a package for your squad and + * knock yourself out. Anything goes as far as it compiles. + */ +package cz.moneta.test.sandbox; diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/SmokeData.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/SmokeData.java new file mode 100644 index 0000000..92f2f5b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/SmokeData.java @@ -0,0 +1,119 @@ +package cz.moneta.test.sanity.transactional; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.connectors.VaultConnector; +import cz.moneta.test.harness.endpoints.jira.JiraEndpoint; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.harness.support.util.Level; + +import java.io.IOException; +import java.io.StringReader; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +public class SmokeData { + private static SmokeData INSTANCE; + private final Harness harness; + private final CardData creditClient; + private final CardData debitClient; + private final Properties smokeTestsConfig; + private final boolean isGW; + private final Properties gwPaths = new Properties(); + private final Properties eiPaths = new Properties(); + private final Map environmentConfig = new HashMap<>(); + + private SmokeData(Harness harness) { + this.harness = harness; + environmentConfig.put("fve", "FVP-T4262"); + environmentConfig.put("ppe", "FVP-T2850"); + environmentConfig.put("tst3", "FVP-T6566"); + smokeTestsConfig = getDataFromJiraTestPrecondition(); + isGW = Boolean.valueOf(smokeTestsConfig.getProperty("Wso2GW")); + creditClient = harness.tasks().wso2().cards().getCardInfoByRc(smokeTestsConfig.getProperty("creditRc"), "C"); + debitClient = harness.tasks().wso2().cards().getCardInfoByRc(smokeTestsConfig.getProperty("debitRc"), "D"); + harness.log(Level.INFO, "Credit client " + creditClient); + harness.log(Level.INFO, "Debit client " + debitClient); + + try { + gwPaths.load(getClass().getClassLoader().getResourceAsStream("regression/transactional/cards/sme/Wso2GwPaths")); + eiPaths.load(getClass().getClassLoader().getResourceAsStream("regression/transactional/cards/sme/Wso2EIPaths")); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static SmokeData getInstance(Harness harness) { + synchronized (SmokeData.class) { + if (INSTANCE == null) { + synchronized (SmokeData.class) { + INSTANCE = new SmokeData(harness); + } + } + return INSTANCE; + } + } + + private static String getAccessToken(Harness store) { + VaultConnector v = new VaultConnector(store.getConfig("vault.url"), store.getConfig("vault.username"), store.getConfig("vault.password")); + return (String) v.getValue("/kv/autotesty/common/jira", "token") + .orElse(store.getConfig("reports.tmfj.token")); + } + + private JiraEndpoint getJiraEndpoint() { + return new JiraEndpoint(harness.getConfig("reports.tmfj.url")); + } + + public CardData getCreditData() { + return creditClient; + } + + public CardData getDebitData() { + return debitClient; + } + + private Properties getDataFromJiraTestPrecondition() { + String comment = RawRestRequest.jsonBuilder(getJiraEndpoint()) + .withPath("testcase/" + environmentConfig.get(harness.getConfig("environment.type"))) + .withHeader("Authorization", "Basic " + getAccessToken(harness)) + .get().extract("precondition").textValue() + .replaceAll("<.{1,4}>", "\n"); + Properties result = new Properties(); + try { + result.load(new StringReader(comment)); + } catch (IOException e) { + throw new RuntimeException(e); + } + return result; + } + + public String getPath(String apiId) { + return "/t/cards.cluster/" + (isGW ? gwPaths.getProperty(apiId) : eiPaths.getProperty(apiId)); + } + + public boolean isGw() { + return isGW; + } + + public String getAccountWithStatements() { + return smokeTestsConfig.getProperty("accountWithStatements"); + } + + public String getCardForRenew() { + return smokeTestsConfig.getProperty("cardForRenewal"); + } + + public String getStudentBU() { + return smokeTestsConfig.getProperty("studentBU"); + } + + public String getLostAccount() { + return smokeTestsConfig.getProperty("lostAccount"); + } + + public String getTransferAccount() { + return smokeTestsConfig.getProperty("transferAccount"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountCancel.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountCancel.java new file mode 100644 index 0000000..ce5da43 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountCancel.java @@ -0,0 +1,43 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +import java.time.LocalDate; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.FV; +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.SVC_RETURN; +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.VMX_MSGIN; + +@TestScenario(name = "VMX.ACCT.CANCEL.UPD") +public class AccountCancel { + private String account; + + @BeforeAll + public void getInfo(Harness harness) { + account = SmokeData.getInstance(harness).getCreditData().getAccount(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3882") + public void accountCancelUpdate(Harness harness) { + String cancelDateString = DateUtils.getDateWithFormat(LocalDate.now().plusDays(7), + DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITHOUT_SEPARATOR); + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.ACCT.CANCEL.UPD", "E8V1")) + .addField(VMX_MSGIN, "ACCT_NBR", account) + .addField(VMX_MSGIN, "CNCL_DATE", cancelDateString) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue(SVC_RETURN, "P"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountTransfer.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountTransfer.java new file mode 100644 index 0000000..7168d4a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountTransfer.java @@ -0,0 +1,52 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "M.CMS.ACCTTRANSFER.ACT.EMEA E8V4") +public class AccountTransfer { + private String account; + + @BeforeAll + public void getInfo(Harness harness) { + account = SmokeData.getInstance(harness).getTransferAccount(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1912") + public void transferAccountAndReverse(Harness harness) { + RawRestRequest.Response response = prepareRequest(harness, "P")// product transfer + .postExtended() + .andAssertStatus(200); + if (response.extract(SVC_RETURN).textValue().equals("F")) { + response.andAssertFieldValue(VMX_MSGOUT + ".RC_DATA.RETURN_DESC", + "ACCT HAS ALREADY BEEN TRANSFERRED TODAY"); + } else + response.andAssertFieldValue(SVC_RETURN, "P"); + } + + private RawRestRequest.Post prepareRequest(Harness harness, String function) { + return harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.CMS.ACCTTRANSFER.ACT.EMEA", "E8V4")) + .addField(VMX_MSGIN, "FUNCTION", function)// P/R forward/revert product transfer + .addField(VMX_MSGIN, "NEW_ACCT_LOGO", "470") + .addField(VMX_MSGIN, "CYCLE", "10") //day in month + .addField(VMX_MSGIN, "FROM_ACCT_NBR", account); + } + + @AfterAll + public void reverseTransfer(Harness harness) { + prepareRequest(harness, "R").post(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountUpdate.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountUpdate.java new file mode 100644 index 0000000..8b4bf32 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountUpdate.java @@ -0,0 +1,34 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "M.CMS.ACCT.USER.DATA.UPD R8V3A") +public class AccountUpdate { + private String account; + + @BeforeAll + public void getInfo(Harness harness) { + account = SmokeData.getInstance(harness).getCreditData().getAccount(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3137") + public void AccountDataUpdate(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.CMS.ACCT.USER.DATA.UPD", "R8V3A")) + .addField(VMX_MSGIN, "ACCT_NBR", account) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue(SVC_RETURN, "P"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountWaiveFlg.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountWaiveFlg.java new file mode 100644 index 0000000..166aef6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/AccountWaiveFlg.java @@ -0,0 +1,35 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "R3 VMX.ACCTWAIVEFLG.UPD.EMEA.E8V4") +public class AccountWaiveFlg { + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1916") + public void VMX_ACCTWAIVEFLG_UPD_EMEA(Harness harness) { + String accountInput = SmokeData.getInstance(harness).getCreditData().getAccount(); + String startDate = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDate.now().plusDays(30)); + String expDate = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDate.now().plusDays(90)); + harness.withWso2() + .prepareRequestXml() + .withPath(FV) + .withPayloadFromFile("regression/transactional/cards/sme/R3-VMX.ACCTWAIVEFLG.UPD.EMEA.E8V4.xml") + .addField(VMX_MSGIN, "ACCT_NBR", accountInput) + .addField(VMX_MSGIN, "FOREX_FEE_WV_ST_DT", startDate) + .addField(VMX_MSGIN, "FOREX_FEE_WV_EXP_DT", expDate) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue(SVC_RETURN, "P"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/ActionUpd.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/ActionUpd.java new file mode 100644 index 0000000..3a52bb0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/ActionUpd.java @@ -0,0 +1,35 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "R3 VMX.EMB.CARDACTION.UPD E8V4") +public class ActionUpd { + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1920") + public void VMX_EMB_CARDACTION_UPD(Harness harness) { + String card = SmokeData.getInstance(harness).getCreditData().getCard(); + RawRestRequest.Response response = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.EMB.CARDACTION.UPD", "E8V4")) + .addField(VMX_MSGIN, "CRD_NBR", card) + .addField(VMX_MSGIN, "ACTN", "0") + .postExtended() + .andAssertStatus(200); + if ("P".equals(response.extract(SVC_RETURN).textValue())) { + response.andAssertFieldValue(VMX_MSGOUT + ".CRD_NBR", card); + } else { //in case if test is run more times before ATRF batch + response.andAssertFieldValue(VMX_MSGOUT + ".RC_DATA.RETURN_DESC", + "CARD ACTION CHANGE NOT ALLOWED DUE TO PENDING CARD ACTION"); + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Activation.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Activation.java new file mode 100644 index 0000000..26b810a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Activation.java @@ -0,0 +1,29 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "R3 VMX.CARDACTIVATION.UPD R8V2") +public class Activation { + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1918") + public void VMX_CARDACTIVATION_UPD(Harness harness) { + String account = SmokeData.getInstance(harness).getCreditData().getAccount(); + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.CARDACTIVATION.UPD", "R8V2")) + .addField(VMX_MSGIN, "ACCT", account) + .addField(VMX_MSGIN, "SVC_TYPE", "A") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".CARD_NBR", account); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Authentication.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Authentication.java new file mode 100644 index 0000000..7b7fa53 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Authentication.java @@ -0,0 +1,48 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import com.fasterxml.jackson.annotation.JsonProperty; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import lombok.Data; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "M.FAS.AUTH.REQST.REV.UPD R8V2") +public class Authentication { + + private final String VMX_MSGIN_DATE_EXPIRE = "VMX_MSGIN.DATE_EXPIRE"; + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T4633") + public void M_FAS_AUTH_REQST_REV_UPD(Harness harness) { + String card = SmokeData.getInstance(harness).getCreditData().getCard(); + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.FAS.AUTH.REQST.REV.UPD", "R8V2")) + .addField(VMX_MSGIN, "CARD_NBR", card) + .addField(VMX_MSGIN, "STORE_NBR", "999999998") + .addField(VMX_MSGIN, "AMT", "70000") + .addField(VMX_MSGIN, "PLAN", "10002") + .addField(VMX_MSGIN, "ACTION_CODE", "AUTH") + .addField(VMX_MSGIN, "SERVICE_FLAG", "A") + .addField(VMX_MSGIN, "SEC_PRES_IND", "0") + .addField(VMX_MSGIN, "DATE_EXPIRE", new DATE_EXPIRE()) + .addField(VMX_MSGIN_DATE_EXPIRE, "DATE_EXPIRE_MM", "8") + .addField(VMX_MSGIN_DATE_EXPIRE, "DATE_EXPIRE_YY", "23") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P"); + } + + @Data + private static class DATE_EXPIRE { + @JsonProperty("DATE_EXPIRE_MM") + private String monthExpire; + @JsonProperty("DATE_EXPIRE_YY") + private String yearExpire; + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/BlockUpdate.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/BlockUpdate.java new file mode 100644 index 0000000..7075060 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/BlockUpdate.java @@ -0,0 +1,31 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "blocking/unblocking card") +public class BlockUpdate { + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1899") + public void M_CMS_BLOCKCODE_UPD_EMEA(Harness harness) { + String card = SmokeData.getInstance(harness).getCreditData().getCard(); + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.CMS.BLOCKCODE.UPD.EMEA", "E8V1")) + .addField(VMX_MSGIN, "CARD_NBR", card) + .addField(VMX_MSGIN, "SVC_FUNC_CODE", "U") + .addField(VMX_MSGIN, "BLOCK_CODE", "") //unblock + .addField(VMX_MSGIN, "RSN_BLOCK_CODE_1", "01") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".RESV_DATE_1", "0"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/CardCreation.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/CardCreation.java new file mode 100644 index 0000000..168c72b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/CardCreation.java @@ -0,0 +1,48 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.apache.commons.lang3.RandomStringUtils; + +import java.util.Random; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.FV; +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.SVC_RETURN; +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.VMX_MSGIN; +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.VMX_MSGOUT; + +@TestScenario(name = "creating new card") +public class CardCreation { + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1901") + public void createCard(Harness harness) { + String dateString = DateUtils.getFormattedTodayDate(DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITHOUT_SEPARATOR); + Random random = new Random(); + String user = random.nextInt(9999999) + ""; + String uniqueId = "000861" + random.nextInt(999_999_999); + String taxId = random.nextInt(999_999_999) + 100_000_000 + ""; + String firstName = RandomStringUtils.randomAlphabetic(5); + String lastName = "samo" + RandomStringUtils.randomAlphabetic(10); + //TODO: response xml has attributes which harness convert to fields with data loss +// -> 00005 + harness.withWso2() + .prepareRequestXml() + .withPath(FV) + .withPayloadFromFile("regression/transactional/cards/sme/VMX.CUST.ACCT.CARD.ADD.EMEA.E8VG5.xml") + .addField(VMX_MSGIN + ".ACCOUNT_DATA_SEGMENT", "USER_APPL_1", user) + .addField(VMX_MSGIN + ".CUSTOMER_DATA_SEGMENT", "UNIQUE_ID", uniqueId) + .addField(VMX_MSGIN + ".CUSTOMER_DATA_SEGMENT.M_C_TABLE", "TAX_ID", taxId) + .addField(VMX_MSGIN + ".CUSTOMER_DATA_SEGMENT.M_C_TABLE", "FIRST_NAME", firstName) + .addField(VMX_MSGIN + ".CUSTOMER_DATA_SEGMENT.M_C_TABLE", "LAST_NAME", lastName) + .addField(VMX_MSGIN + ".ACCOUNT_DATA_SEGMENT", "DATE_OPENED", dateString) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".CARD_DATA.CARD_ADD_RESULT", "1"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/CreditLimitUpd.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/CreditLimitUpd.java new file mode 100644 index 0000000..04b980c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/CreditLimitUpd.java @@ -0,0 +1,33 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; + +import java.util.Random; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "updates credit limit on card") +public class CreditLimitUpd { + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3102") + public void VMX_CMS_CREDITLIMIT_UPD_EMEA(Harness harness) { + String account = SmokeData.getInstance(harness).getCreditData().getAccount(); + int newLimit = new Random().nextInt(10000); + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.CMS.CREDITLIMIT.UPD.EMEA", "E8V2")) + .addField(VMX_MSGIN, "ACCOUNT", account) + .addField(VMX_MSGIN, "CRLIM", newLimit) + .addField(VMX_MSGIN, "RESET_HOLD_AMT", "0") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".CRLIM", newLimit + ""); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Customer.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Customer.java new file mode 100644 index 0000000..22a1688 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Customer.java @@ -0,0 +1,56 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.apache.commons.lang3.StringUtils; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "Customer update/inquiry") +public class Customer { + private String account; + private String name; + private String bu; + + @BeforeAll + public void getInfo(Harness harness) { + SmokeData smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + account = creditData.getAccount(); + name = creditData.getName(); + bu = StringUtils.repeat('0', 8) + creditData.getBu(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1910") + public void VMX_CUSTOMER_UPD_EMEA_E8V7(Harness harness) { + harness.withWso2() + .prepareRequestXml() + .withPath(FV) + .withPayloadFromFile("regression/transactional/cards/sme/R2-VMX.CUSTOMER.UPD.EMEA.E8V7.xml") + .addField(VMX_MSGIN + ".MODULE005-VMXMSGIN.CUST_AFFORD_UPDATE_IN", "ACCT_NBR", account) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".ORG", "861"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1917") + public void VMX_CARD_CUST_ACCT_INQ_CINEMA(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.CARD.CUST.ACCT.INQ.CINEMA", "E8VCE")) + .addField(VMX_MSGIN, "ACCOUNT", account) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".ACCOUNT_OUTPUT.SHORT_NAME", name.toUpperCase()) + .andAssertFieldValue(VMX_MSGOUT + ".ACCOUNT_OUTPUT.BANK_ACCT", bu); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/DirectDebit.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/DirectDebit.java new file mode 100644 index 0000000..9c663e1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/DirectDebit.java @@ -0,0 +1,54 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import com.fasterxml.jackson.annotation.JsonProperty; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import lombok.Data; +import org.junit.jupiter.api.BeforeAll; + +import java.time.LocalDate; +import java.util.Random; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "VMX.ACCT.DIRECTDB.UPD E8V5") +public class DirectDebit { + private String inputDate; + private String outputDate; + private String account; + + @BeforeAll + public void getInfo(Harness harness) { + account = SmokeData.getInstance(harness).getCreditData().getAccount(); + LocalDate expireDate = LocalDate.now().plusMonths(1).plusDays(new Random().nextInt(30)); + inputDate = DateUtils.getDateWithFormat(expireDate, DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITHOUT_SEPARATOR); + outputDate = DateUtils.getDateWithFormat(expireDate, DateFormatPatterns.FIRST_VISION_DATE_MODERN_JULIAN_FORMAT); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T4630") + public void VMX_ACCT_DIRECTDB_UPD(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.ACCT.DIRECTDB.UPD", "E8V5")) + .addField(VMX_MSGIN, "ACCT_NBR", account) + .addField(VMX_MSGIN, "DD_DATA", new DD_DATA()) + .addField(VMX_MSGIN + ".DD_DATA", "ACH_PMT_EXPR_DATE", inputDate) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".DATE_ACH_PMT_EXPR", outputDate); + } + + @Data + private static class DD_DATA { + @JsonProperty("ACH_PMT_EXPR_DATE") + private String date; + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Embosser.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Embosser.java new file mode 100644 index 0000000..82dfd68 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Embosser.java @@ -0,0 +1,77 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Embosser update") +public class Embosser { + private String account; + private String card; + private String newEmbosser; + private String embosser; + + @BeforeAll + public void getInfo(Harness harness) { + SmokeData smokeData = SmokeData.getInstance(harness); + account = smokeData.getCreditData().getAccount(); + card = smokeData.getCreditData().getCard(); + newEmbosser = RandomStringUtils.randomAlphabetic(13); + embosser = smokeData.getCreditData().getName(); + } + + @Order(1) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3144") + public void VMX_EMBOSSER_UPD_EMEA_E8VBA(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.EMBOSSER.UPD.EMEA", "E8VBA")) + .addField(VMX_MSGIN, "CARD_NBR", card) + .addField(VMX_MSGIN, "ORG", "861") + .addField(VMX_MSGIN, "CARD_SEQ", "1") + .addField(VMX_MSGIN, "FOREIGN_USE", "0") + .addField(VMX_MSGIN, "EMBR_NAME_1", newEmbosser) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_DATA.CARD_NBR", card) + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_DATA.EMBR_NAME_1", newEmbosser); + } + + @Order(2) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1902") + public void VMX_EMBOSSER_INQ_E8V7B(Harness harness) { + getEmbosser(harness, "E8V7B", card) + .andAssertFieldValue(VMX_MSGOUT + ".CARD_NBR", card) + .andAssertFieldValue(VMX_MSGOUT + ".POST_NBR", account) + .andAssertFieldValue(VMX_MSGOUT + ".EMB_NAME_1", embosser.toUpperCase()) + .extract(VMX_MSGOUT + ".USER_3").textValue(); + } + + public static RawRestRequest.Response getEmbosser(Harness harness, String version, String card) { + return harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.EMBOSSER.INQ", version)) + .addField(VMX_MSGIN, "ACCOUNT", card) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Enroll.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Enroll.java new file mode 100644 index 0000000..a0b631a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Enroll.java @@ -0,0 +1,135 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import com.fasterxml.jackson.annotation.JsonProperty; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import lombok.Data; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import static cz.moneta.test.dsl.util.DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITHOUT_SEPARATOR; +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "enroll") +public class Enroll { + private final String VMX_MSGIN_MODULE3 = "VMX_MSGIN.MODULE003-VMXMSGIN.BLNC_TRNSFR_OFR_DTLS_IN"; + private String account; + private String offerId; + private String startDate; + private String expireDate; + private String offerStatus; + + @BeforeAll + public void getInfo(Harness harness) { + account = SmokeData.getInstance(harness).getCreditData().getAccount(); + offerId = "CCP0010001"; + } + + @Order(1) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3103") + public void M_OMS_ENROLL_ADD(Harness harness) { + RawRestRequest.Response response = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.OMS.ENROLL.ADD", "R8V1")) + .addField(VMX_MSGIN, "ACCT_CUST_NBR", account) + .addField(VMX_MSGIN, "OFFER_ID", offerId) + .addField(VMX_MSGIN, "OFFER_PRIORITY", "1") + .addField(VMX_MSGIN, "ENROLL_ACTION", "0") + .postExtended(); + String svcReturn = response + .extract(SVC_RETURN).textValue(); + + if ("F".equalsIgnoreCase(svcReturn)) { + response.andAssertFieldValue(VMX_MSGOUT + ".RC_DATA.RETURN_DESC", "OFFER ENROLLMENT ALREADY ON FILE"); + } else { + response.andAssertFieldValue(SVC_RETURN, "P"); + } + } + + @Order(2) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3104") + public void OMS_ENROLL_INQ(Harness harness) { + RawRestRequest.Response response = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("OMS.ENROLL.INQ", "R8V4")) + .addField(VMX_MSGIN, "ACCT_NBR", account) + .addField(VMX_MSGIN, "OFFER_ID", offerId) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT-AREA.OFFER_ID", offerId); + + startDate = response.extract(VMX_MSGOUT + ".OUTPUT-AREA.START_DATE").textValue(); + expireDate = response.extract(VMX_MSGOUT + ".OUTPUT-AREA.EXPIRE_DATE").textValue(); + offerStatus = response.extract(VMX_MSGOUT + ".OUTPUT-AREA.OFFER_STATUS").textValue(); + + } + + @Order(3) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3141") + public void M_OMS_ENROLL_UPD(Harness harness) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(FIRST_VISION_DATE_FORMAT_WITHOUT_SEPARATOR); + String newExpire = LocalDate.parse(expireDate, formatter).minusDays(1).format(formatter); + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.OMS.ENROLL.UPD", "R8V2")) + .addField(VMX_MSGIN, "ACCT_NBR", account) + .addField(VMX_MSGIN, "OFFER_ID", offerId) + .addField(VMX_MSGIN, "ENROLLMENT_ACTION", "") + .addField(VMX_MSGIN, "PRIORITY", "1") + .addField(VMX_MSGIN, "START_DATE", startDate) + .addField(VMX_MSGIN, "EXPIRE_DATE", newExpire) + .addField(VMX_MSGIN, "OFFER_STATUS", offerStatus) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OFFER_ID", offerId); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T4622") + public void M_OMS_OFFERDEF_INQ(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.OMS.OFFERDEF.INQ", "R8V3")) + .addField(VMX_MSGIN, "MODULE003-VMXMSGIN", new MODULE003_VMXMSGIN()) + .addField("VMX_MSGIN.MODULE003-VMXMSGIN", "BLNC_TRNSFR_OFR_DTLS_IN", new BLNC_TRNSFR_OFR_DTLS_IN()) + .addField(VMX_MSGIN_MODULE3, "ORG", "861") + .addField(VMX_MSGIN_MODULE3, "OFFER_CD", offerId) + .postExtended() + .andAssertFieldValue(VMX_MSGOUT + ".SVC_RETURN", "P"); + } + + @Data + private static class MODULE003_VMXMSGIN { + @JsonProperty("BLNC_TRNSFR_OFR_DTLS_IN") + private String module003; + } + + @Data + private static class BLNC_TRNSFR_OFR_DTLS_IN { + @JsonProperty("ORG") + private String org; + @JsonProperty("OFFER_CD") + private String offerCD; + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Insurance.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Insurance.java new file mode 100644 index 0000000..dee5fc4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Insurance.java @@ -0,0 +1,64 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "R6 VMX.INSURANCE.STATUS.UPD.E8V2") +public class Insurance { + private String account; + + @BeforeAll + public void getInfo(Harness harness) { + account = SmokeData.getInstance(harness).getCreditData().getAccount(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1928") + public void VMX_INSURANCE_STATUS_UPD(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.INSURANCE.STATUS.UPD", "E8V3")) + .addField(VMX_MSGIN, "ACCOUNT", account) + .addField(VMX_MSGIN, "INS_PROD_CODE", "DD") + .addField(VMX_MSGIN, "INS_STATUS_CODE", "F") + .addField(VMX_MSGIN, "INS_EFF_DATE", "20190520") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_AREA.ACCOUNT", account) + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_AREA.INS_PROD_CODE", "DD") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_AREA.INS_STATUS_CODE", "F"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3138") + public void VMX_ACCT_INSURANCE_ADD(Harness harness) { + RawRestRequest.Response response = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.ACCT.INSURANCE.ADD", "E8V2")) + .addField(VMX_MSGIN, "ACCOUNT", account) + .addField(VMX_MSGIN, "INS_PROD_CD", "DD") + .addField(VMX_MSGIN, "INS_STAT_CD", "F") + .postExtended(); + String status = response.extract(SVC_RETURN).textValue(); + + if ("P".equalsIgnoreCase(status)) { + response.andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_AREA.ACCOUNT", account) + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_AREA.INS_PROD_CODE", "DD") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_AREA.INS_STATUS_CODE", "F"); + } else { + response.andAssertFieldValue(VMX_MSGOUT + ".RETURN_CODE_DATA.RC_DATA.RETURN_DESC", + "INSURANCE PRODUCT ALREADY ADDED FOR THIS ACCOUNT"); + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/LostStolenCard.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/LostStolenCard.java new file mode 100644 index 0000000..f7e479a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/LostStolenCard.java @@ -0,0 +1,90 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.util.Level; +import cz.moneta.test.sanity.transactional.SmokeData; +import lombok.Builder; +import lombok.Data; +import org.junit.jupiter.api.BeforeAll; + +import java.util.stream.StreamSupport; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "VMX.LOSTSTOLEN.UPD.E8V3") +public class LostStolenCard { + private String cardToLoose; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + String lostAccount = smokeData.getLostAccount(); + cardToLoose = getActiveCard(harness, lostAccount); + } + + private String getActiveCard(Harness harness, String account) { + JsonNode data = harness.tasks().wso2().restRequest() //fixme find another API to get active card + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFBQ7")) + .addField("CisloKaretnihoUctu", account) + .postExtended() + .extract("Data"); + harness.log(Level.INFO, "Total cards on account:" + data.size()); + return StreamSupport.stream(data.spliterator(), false) + .filter(i -> "".equalsIgnoreCase(i.path("DuvodBlokace").textValue())) + .map(i -> i.path("CisloKarty").textValue()) + .findFirst() + .orElse(""); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1922") + public void looseActiveCard(Harness harness) { + String today = DateUtils.getFormattedTodayDate(DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITHOUT_SEPARATOR); + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.LOSTSTOLEN.UPD", "E8V3")) + .addField(VMX_MSGIN, "MODULE005-VMXMSGIN", new MessageIn()) + .addField(VMX_MSGIN + ".MODULE005-VMXMSGIN.RPT_LST_STOLEN_CRD_IN", "CARD_NBR", cardToLoose) + .addField(VMX_MSGIN + ".MODULE005-VMXMSGIN.RPT_LST_STOLEN_CRD_IN", "LOSS_DATE", today) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P"); + } + + @Data + private static class MessageIn { + @JsonProperty("RPT_LST_STOLEN_CRD_IN") + private LostStolenCardIn module; + + private MessageIn() { + this.module = LostStolenCardIn.builder() + .cardBlock("L") + .lossType("1") + .countryOfLoss("CZE") + .lossLocation("5") + .build(); + } + } + + @Data + @Builder + private static class LostStolenCardIn { + @JsonProperty("CARD_BLK") + private String cardBlock; + @JsonProperty("LOSS_TYPE") + private String lossType; + @JsonProperty("COUNTRY_OF_LOSS") + private String countryOfLoss; + @JsonProperty("LOSS_LOCATION") + private String lossLocation; + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/MESSAGE.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/MESSAGE.java new file mode 100644 index 0000000..c912131 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/MESSAGE.java @@ -0,0 +1,26 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class MESSAGE { + public final static String FV = "t/cards.cluster/call-fv/v1"; + public final static String VMX_MSGIN = "VMX_MSGIN"; + public final static String VMX_MSGOUT = "VMX_ROOT.VMX_MSGOUT"; + public final static String SVC_RETURN = VMX_MSGOUT +".SVC_RETURN"; + @JsonProperty("API-NAME") + private final String apiName; + @JsonProperty("API-VERSION") + private final String apiVersion; + @JsonProperty(VMX_MSGIN) + private VMX_MSGIN msg = new VMX_MSGIN(); + + public MESSAGE(String apiName, String apiVersion) { + this.apiName = apiName; + this.apiVersion = apiVersion; + } + + private static class VMX_MSGIN { + @JsonProperty("CONTEXT") + private String context = "00000MMB"; + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Memos.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Memos.java new file mode 100644 index 0000000..b6ebfe8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Memos.java @@ -0,0 +1,43 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "VMX.MEMOS") +public class Memos { + private String account; + private String card; + private String memo; + + @BeforeAll + public void getInfo(Harness harness) { + SmokeData data = SmokeData.getInstance(harness); + account = data.getCreditData().getAccount(); + card = data.getCreditData().getCard(); + memo = RandomStringUtils.randomAlphabetic(10); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1923") + public void VMX_MEMO_ADD(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.MEMO.ADD", "E8V1")) + .addField(VMX_MSGIN, "CARD_NBR", card) + .addField(VMX_MSGIN, "ACCOUNT", account) + .addField(VMX_MSGIN, "ACTN_CD", "BLAC") + .addField(VMX_MSGIN, "MEMO_LINE_1", memo) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/NonMonetaryUpd.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/NonMonetaryUpd.java new file mode 100644 index 0000000..68473a5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/NonMonetaryUpd.java @@ -0,0 +1,55 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import com.fasterxml.jackson.annotation.JsonProperty; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import lombok.Builder; +import lombok.Data; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "R1 VMX.NON.MON.UPD E8V5") +public class NonMonetaryUpd { + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1904") + public void VMX_NONMON_UPD(Harness harness) { + String accountInput = SmokeData.getInstance(harness).getCreditData().getAccount(); + MEMOS memos = MEMOS.builder() + .memo1("some memo1") + .memo2("another memo2") + .build(); + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.NONMON.UPD", "E8V5")) + .addField(VMX_MSGIN, "ACCOUNT", accountInput) + .addField(VMX_MSGIN, "ORG", "861") + .addField(VMX_MSGIN, "ACTION_CODE", "BLAC") + .addField(VMX_MSGIN, "REVIEW_DATE", "0") + .addField(VMX_MSGIN, "REVIEW_TIME", "0") + .addField(VMX_MSGIN, "CARD_SEQUENCE", "1") + .addField(VMX_MSGIN, "MEMOS", memos) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P"); + } + + @Data + @Builder + private static class MEMOS { + @JsonProperty("MEMO_1") + private String memo1; + @JsonProperty("MEMO_2") + private String memo2; + @JsonProperty("MEMO_3") + private String memo3; + @JsonProperty("MEMO_4") + private String memo4; + @JsonProperty("MEMO_5") + private String memo5; + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Payments.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Payments.java new file mode 100644 index 0000000..997fd64 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Payments.java @@ -0,0 +1,90 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +import java.text.DecimalFormat; +import java.text.NumberFormat; +import java.time.Duration; +import java.time.LocalDateTime; +import java.util.Random; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.FV; +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.SVC_RETURN; +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.VMX_MSGIN; +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.VMX_MSGOUT; + +@TestScenario(name = "R2 M.CMS.FASTER.PMT.EMEA.E8V2") +public class Payments { + private String account; + + public static synchronized String getFpsId() { + LocalDateTime january1st = LocalDateTime.of(2019, 9, 1, 0, 0); + LocalDateTime now = LocalDateTime.now(); + long seconds = Duration.between(january1st, now).getSeconds(); + seconds += 500_000_000; + String timeStamp = String.format("%015d", seconds); + int random = new Random().nextInt(900) + 100; + return timeStamp + random; + } + + @BeforeAll + public void getInfo(Harness harness) { + account = SmokeData.getInstance(harness).getCreditData().getAccount(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1907") + public void M_CMS_FASTER_PMT_EMEA(Harness harness) { + String date = DateUtils.getFormattedTodayDate(DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITHOUT_SEPARATOR); + String fpsID = getFpsId() + "10" + date + "CZK0000SMOKETE"; + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.CMS.FASTER.PMT.EMEA", "E8V2")) + .addField(VMX_MSGIN, "ACCT_NO", account) + .addField(VMX_MSGIN, "FPS_ID", fpsID) + .addField(VMX_MSGIN, "SRC_CNL", "BNK") + .addField(VMX_MSGIN, "AMT", "400") + .addField(VMX_MSGIN, "SVC_TYPE", "PYMT") + .addField(VMX_MSGIN, "SORT_CODE", "PAYCORE") + .addField(VMX_MSGIN, "SENDING_ACC_NO", "PAYCORE") + .addField(VMX_MSGIN, "VAL_DATE", "20180410") + .addField(VMX_MSGIN, "SETT_ID", "20190410") + .addField(VMX_MSGIN, "TIME_STAMP", "20190410 1010010") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".ACCT_NO", account); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2778") + public void M_ASM_MONETARY_UPD_EMEA_E8V6(Harness harness) { + int amount = new Random().nextInt(1000) + 1; + NumberFormat formatter = new DecimalFormat("#.00"); + String expectedAmount = formatter.format(amount / 100.0); + harness.withWso2() + .prepareRequestXml() + .withPath(FV) + .withPayloadFromFile("regression/transactional/cards/sme/M_ASM_MONETARY_UPD_EMEA.xml") + .addField(VMX_MSGIN, "ACCT_NBR", account) + .addField(VMX_MSGIN, "FOREIGN_USE", "0") + .addField(VMX_MSGIN, "MCC", "0") + .addField(VMX_MSGIN + ".TXN_DATA", "ACTION_CODE", "INTR") + .addField(VMX_MSGIN + ".TXN_DATA", "TXN_AMOUNT", amount) + .addField(VMX_MSGIN + ".TXN_DATA", "PLAN_NBR", "10002") + .addField(VMX_MSGIN + ".TXN_DATA", "STORE_NBR", "999999998") + .addField(VMX_MSGIN + ".MEMO_DATA", "LINE_1", "Automation test transaction") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_DATA.ACCT_NBR", account) + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_DATA.TXN_DATA.TXN_AMOUNT", expectedAmount); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/PricingTable.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/PricingTable.java new file mode 100644 index 0000000..d7a6ffd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/PricingTable.java @@ -0,0 +1,53 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "Pricing table") +public class PricingTable { + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1915") + public void VMX_ACCT_PRICING_CTRL_UPD_EMEA(Harness harness) { + String account = SmokeData.getInstance(harness).getCreditData().getAccount(); + + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 1); + Date date = c.getTime(); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String startDate = dateFormat.format(date); + c.add(Calendar.MONTH, 1); + date = c.getTime(); + String expireDate = dateFormat.format(date); + RawRestRequest.Post request = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.ACCT.PRICING.CTRL.UPD.EMEA", "E8V1")) + .addField(VMX_MSGIN, "STATE_OF_RESID", "T04") + .addField(VMX_MSGIN, "PCT_CTL_ID", "R04") + .addField(VMX_MSGIN, "PCT_START_DATE", startDate) + .addField(VMX_MSGIN, "PCT_EXPIRE_DATE", expireDate) + .addField(VMX_MSGIN, "ACCOUNT", account); + + RawRestRequest.Response response = request.postExtended(); + + if (response.extract(SVC_RETURN).textValue().equals("F")) { + request.addField(VMX_MSGIN, "STATE_OF_RESID", "W04") + .postExtended(); + } + + response.andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_DATA.PCT_CTL_ID", "R04"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Statements.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Statements.java new file mode 100644 index 0000000..292eb04 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/Statements.java @@ -0,0 +1,77 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision; + +import com.fasterxml.jackson.annotation.JsonProperty; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import lombok.AllArgsConstructor; +import lombok.Data; +import org.junit.jupiter.api.BeforeAll; + +import java.time.LocalDate; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; +import static cz.moneta.test.sanity.transactional.cards.firstvision.pilotfirstvision.Inquiry.getCard; + +@TestScenario(name = "Statements for last month") +public class Statements { + private String account; + private String card; + private String lastDayOfPreviousMonthWithoutSeparator; + + @BeforeAll + public void setUp(Harness harness) { + account = SmokeData.getInstance(harness).getAccountWithStatements(); + card = getCard(harness, account).extract(VMX_MSGOUT + ".OUTPUT_DATA.CARD_TABLE.CARD_NBRS_SEQ.CARD_NBR").textValue(); + LocalDate lastDayOfPreviousMonth = LocalDate.now().withDayOfMonth(1).minusDays(1); + lastDayOfPreviousMonthWithoutSeparator = DateUtils.getDateWithFormat(lastDayOfPreviousMonth, + DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITHOUT_SEPARATOR); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1925") + public void VMX_STMT_REPRINT_UPD(Harness harness) { + StatementInfo statementInfo = new StatementInfo(lastDayOfPreviousMonthWithoutSeparator, "C"); + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.STMT.REPRINT.UPD", "R8V1")) + .addField(VMX_MSGIN, "CARD_NBR", card) + .addField(VMX_MSGIN, "STMT_NBR_OCCUR", "01") + .addField(VMX_MSGIN, "STATEMENT_INFO", statementInfo) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_AREA.INPUT_ACCT", card) + .andAssertPresent(VMX_MSGOUT + ".OUTPUT_AREA.STATEMENT_INFO"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3140") + public void M_CMS_STMTOPTIONS_UPD(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.CMS.STMTOPTIONS.UPD", "R8V1")) + .addField(VMX_MSGIN, "ACCOUNT", account) + .addField(VMX_MSGIN, "STMT_NOTIFY_IND", "1") + .addField(VMX_MSGIN, "STMT_NOTIFY_MOD", "1") + .addField(VMX_MSGIN, "EMAIL_ADDR", "dummy.64@xxx.xx") + .addField(VMX_MSGIN, "EMAIL_IND", "1") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P"); + } + + @Data + @AllArgsConstructor + private static class StatementInfo { + @JsonProperty("STATEMENT_DATE") + private String statementDate; + @JsonProperty("REPRINT_FLAG") + private String reprintFlag; + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/pilotfirstvision/Inquiry.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/pilotfirstvision/Inquiry.java new file mode 100644 index 0000000..e888f7c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/pilotfirstvision/Inquiry.java @@ -0,0 +1,249 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision.pilotfirstvision; + +import com.fasterxml.jackson.annotation.JsonProperty; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE; +import lombok.AllArgsConstructor; +import lombok.Data; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.Embosser.getEmbosser; +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "Customer inquiry") +public class Inquiry { + private String account; + private String card; + private String embosser; + private String rc; + private String offerId; + + @BeforeAll + public void getInfo(Harness harness) { + SmokeData smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + account = creditData.getAccount(); + card = creditData.getCard(); + embosser = creditData.getName(); + rc = creditData.getRc(); + offerId = "CCP0010001"; + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3139") + public void VmxEmbosserInqE8V7A(Harness harness) { + getEmbosser(harness, "E8V7A", card) + .andAssertFieldValue(VMX_MSGOUT + ".CARD_NBR", card) + .andAssertFieldValue(VMX_MSGOUT + ".POST_NBR", account) + .andAssertFieldValue(VMX_MSGOUT + ".EMB_NAME_1", embosser.toUpperCase()); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1898") + public void VmxAcctToCardInq(Harness harness) { + getCard(harness, account) + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_DATA.CARD_TABLE.CARD_NBRS_SEQ.CARD_NBR", card); + } + + public static RawRestRequest.Response getCard(Harness harness, String account) { + return harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.ACCT.TO.CARD.INQ", "R8V3B")) + .addField(VMX_MSGIN, "ACCT_NBR", account) + .postExtended(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1900") + public void VmxAccountInqE8VEA(Harness harness) { + getAccountDetails(harness, "E8VEA", account) + .andAssertFieldValue(VMX_MSGOUT + ".ACCT_BS_OUTPUT.ACCT_NBR", account) + .andAssertFieldValue(VMX_MSGOUT + ".ACCT_BS_OUTPUT.SHORT_NAME", embosser.toUpperCase()); + } + + private RawRestRequest.Response getAccountDetails(Harness harness, String apiVersion, String account) { + return harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.ACCOUNT.INQ", apiVersion)) + .addField(VMX_MSGIN, "ACCOUNT", account) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1913") + public void MCmsCardToCardInqEMEA(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.CMS.CARD.TO.CARD.INQ.EMEA", "E8V1")) + .addField(VMX_MSGIN, "CARD_NBR", card) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT_AREA.OUTPUT_DATA.CARD_NBR", card); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T4623") + public void LoanCustAcctInqCinema(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.LOAN.CUST.ACCT.INQ.CINEMA", "E8VC")) + .addField(VMX_MSGIN, "ACCOUNT", account) + .addField(VMX_MSGIN, "ORG", "861") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".ACCOUNT_OUTPUT.ACCOUNT", account) + .andAssertPresent(VMX_MSGOUT + ".LOAN_DATA"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1919") + public void VmxCmsAcctSummInqEMEA(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.CMS.ACCT.SUMM.INQ.EMEA", "R8V3")) + .addField(VMX_MSGIN, "ACCOUNT_NBR", account) + .addField(VMX_MSGIN, "ORG", "861") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT-AREA.ACCT_INFO.ACCT_NBR", account) + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT-AREA.ACCT_INFO.SHORT_NAME", embosser.toUpperCase()); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1921") + public void VmxExtendedLookupInq(Harness harness) { + harness.withWso2() + .prepareRequestXml() + .withPath(FV) + .withPayloadFromFile("regression/transactional/cards/sme/R3-VMX.EXTENDED.LOOKUP.INQ.E8V2.xml") + .addField(VMX_MSGIN + ".KEY_FLDS.PRIMARY_KEY_FLDS", "ID", rc) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".TXN_DATA.BS_ACCT", account); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T4625") + public void MCmsPlanViewerInq(Harness harness) { + String count = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.CMS.PLAN.VIEWER.INQ", "R8V4")) + .addField("VMX_MSGIN", "ACCT", account) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".ACCT", account) + .extract(VMX_MSGOUT + ".NBR_RETURNED_ITEMS") + .textValue(); + Assertions.assertTrue(Integer.valueOf(count) > 0, "no fee plans found on " + account); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2755") + public void MOmsAccenrollInqEMEA(Harness harness) { + String count = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.OMS.ACCTENROLL.INQ.EMEA", "E8V4")) + .addField(VMX_MSGIN, "ACCT_NBR", account) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .extract(VMX_MSGOUT + ".SVC_RECS_NUM") + .textValue(); + Assertions.assertTrue(Integer.valueOf(count) > 0, "no discount packages found on " + account); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1927") + public void VmxAcctInsuranceInq(Harness harness) { + String insuranceCount = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.ACCT.INSURANCE.INQ", "E8V2A")) + .addField(VMX_MSGIN, "ACCOUNT", account) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".ACCOUNT", account) + .extract(VMX_MSGOUT + ".NBR_INS_PRD").textValue(); + Assertions.assertTrue(Integer.valueOf(insuranceCount) > 0, "No insurance found on account " + account); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3104") + public void OmsEnrollInq(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("OMS.ENROLL.INQ", "R8V4")) + .addField(VMX_MSGIN, "ACCT_NBR", account) + .addField(VMX_MSGIN, "OFFER_ID", offerId) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".OUTPUT-AREA.OFFER_ID", offerId); + + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1924") + public void VmxMemoInq(Harness harness) { + String memoCount = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.MEMO.INQ", "E8V1")) + .addField(VMX_MSGIN, "ACCT_NBR", account) + .addField(VMX_MSGIN, "SVC_FUNC_CD", "N") + .addField(VMX_MSGIN, "NBR_REC", "20") + .addField(VMX_MSGIN, "CONT_DATA", new CONT_DATA()) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .extract(VMX_MSGOUT + ".NBR_MEMOS") + .textValue(); + + Assertions.assertTrue(Integer.parseInt(memoCount) > 1, "No memos for account " + account); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1905") + public void VmxUniquelocateInqEMEA(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.UNIQUELOCATE.INQ.EMEA", "R8V1A")) + .addField(VMX_MSGIN, "INPUTDATA", new INPUTDATA("A")) + .addField(VMX_MSGIN + ".INPUTDATA", "NBR", account) + .postExtended() + .andAssertFieldValue(VMX_MSGOUT + ".SVC_RTN", "P"); + } + + @Data + private static class CONT_DATA { + @JsonProperty("CONT_DATE") + private String date = "2030-12-20"; + @JsonProperty("CONT_TIME") + private String time = "010101"; + @JsonProperty("CONT_REC_TYPE") + private String recType = "M"; + } + + @Data + @AllArgsConstructor + private static class INPUTDATA { + @JsonProperty("SEARCH_TYP") + private String searchType; + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/pilotfirstvision/Transactions.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/pilotfirstvision/Transactions.java new file mode 100644 index 0000000..51ed991 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvision/pilotfirstvision/Transactions.java @@ -0,0 +1,112 @@ +package cz.moneta.test.sanity.transactional.cards.firstvision.pilotfirstvision; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; + +import java.time.LocalDate; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.*; + +@TestScenario(name = "Customer transactions/statements") +public class Transactions { + private String account; + private String accountStatement; + private String lastDayOfPreviousMonthWithSeparator; + + @BeforeAll + public void getInfo(Harness harness) { + SmokeData smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + account = creditData.getAccount(); + accountStatement = SmokeData.getInstance(harness).getAccountWithStatements(); + LocalDate lastDayOfPreviousMonth = LocalDate.now().withDayOfMonth(1).minusDays(1); + lastDayOfPreviousMonthWithSeparator = DateUtils.getDateWithFormat(lastDayOfPreviousMonth, + DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITH_SEPARATOR); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1914") + public void MFasOutstandingAuthInq(Harness harness) { + Integer authCount = Integer.valueOf(harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.FAS.OUTSTANDING.AUTH.INQ", "R8V3A")) + .addField(VMX_MSGIN, "ACCT", account) + .addField(VMX_MSGIN, "ORG", "861") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .extract(VMX_MSGOUT + ".NBR_RETURNED_ITEMS").textValue()); + Assertions.assertTrue(authCount > 0, "No outstanding auth found"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1926") + public void VmxStmtSummInq(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.STMT.SUMM.INQ", "E8V5A")) + .addField(VMX_MSGIN, "ACCOUNT", accountStatement) + .addField(VMX_MSGIN, "SERVICE_TYPE", "S") + .addField(VMX_MSGIN, "STATEMENT_DATE", lastDayOfPreviousMonthWithSeparator) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3142") + public void VmxTransInq(Harness harness) { + String count = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.TRANS.INQ", "E8VD")) + .addField(VMX_MSGIN, "ACCOUNT", account) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .extract(VMX_MSGOUT + ".NBR_TXN_RECS") + .asText(); + Assertions.assertTrue(Integer.valueOf(count) > 0, "No transactions on account " + account); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2779") + public void VmxStatementDateInqEMEA(Harness harness) { + String count = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.STATEMENTDATE.INQ.EMEA", "E8V1")) + .addField(VMX_MSGIN, "ACCOUNT", accountStatement) + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .extract(VMX_MSGOUT + ".SD_NBR_OCCUR") + .textValue(); + Assertions.assertTrue(Integer.valueOf(count) > 0, "No transactions on account " + accountStatement); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2756") + public void MCmsStatementInqEMEA(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.CMS.STATEMENT.INQ.EMEA", "E8V2")) + .addField(VMX_MSGIN, "ACCOUNT", accountStatement) + .addField(VMX_MSGIN, "STMT_DT", lastDayOfPreviousMonthWithSeparator) + .addField(VMX_MSGIN, "SVC_TYP", "S") + .postExtended() + .andAssertFieldValue(SVC_RETURN, "P") + .andAssertFieldValue(VMX_MSGOUT + ".ACCT_NBR", accountStatement); + } + + +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvisionStatus/FvHeartBeat.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvisionStatus/FvHeartBeat.java new file mode 100644 index 0000000..7281068 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/firstvisionStatus/FvHeartBeat.java @@ -0,0 +1,50 @@ +package cz.moneta.test.sanity.transactional.cards.firstvisionStatus; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE; +import org.junit.jupiter.api.Assertions; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.FV; + +@TestScenario(name = "Customer update/inquiry") +public class FvHeartBeat { + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T5072") + public void VMX_SYSTEM_STATUS_EMEA(Harness harness) { + // services should be available (status == 0) in working hours [0:00:00 to 21:00:00] of local time + // services should be unavailable (status <> 0) in after hours (21:00:00 to 0:00:00) of local time + LocalDateTime now = LocalDateTime.now(); + LocalDateTime startOfAfterHours = LocalDateTime.of(LocalDate.now(), LocalTime.of(21, 0, 0)); + boolean afterHours = now.isAfter(startOfAfterHours); + RawRestRequest.Response response = harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.SYSTEM.STATUS.EMEA", "E8V1")) + .addField("VMX_MSGIN", "ORG", "861") + .postExtended() + .andAssertFieldValue("VMX_ROOT.VMX_MSGOUT.SVC_RETURN", "P"); + Object activityId = response.getHeader("activityId"); + JsonNode output = response.extract("VMX_ROOT.VMX_MSGOUT.OUTPUT_AREA"); + String cmsStatus = output.path("CMS_PROCESSING_STATUS").textValue(); + String omsStatus = output.path("OMS_PROCESSING_STATUS").textValue(); + + if (afterHours) { + Assertions.assertNotEquals("0", cmsStatus, "CMS is available " + now + " activityId->" + activityId); + Assertions.assertNotEquals("0", omsStatus, "OMS is available " + now + " activityId->" + activityId); + } else { + Assertions.assertEquals("0", cmsStatus, "CMS is unavailable " + now + " activityId->" + activityId); + Assertions.assertEquals("0", omsStatus, "OMS is unavailable " + now + " activityId->" + activityId); + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ib/CustomerLogin.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ib/CustomerLogin.java new file mode 100644 index 0000000..d911450 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ib/CustomerLogin.java @@ -0,0 +1,45 @@ +package cz.moneta.test.sanity.transactional.cards.ib; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.*; + + +@TestScenario(name = "IB clickLogin type variations test") +public class CustomerLogin { + + @TestCase(name = "Login into IB as retail customer using Mobile Key", environments = {TST1, TST3, FVE, PPE}) + @JiraTestCase(id = "FVP-T1893") + void retailCustomer_shouldLoginWithMobileKey(Harness harness, @Key("ib.client") Credentials client) { + harness.withIB() + .openLoginPage() + .typeUsername(client.getUsername()) + .typePassword(client.getPassword()) + .clickLogin() + .onAuthMobileKeyPage() + .fillMobileKey("12341234") + .clickLogin() + .onWelcomePage() + .checkWelcomePageImageIsPresent(); + } + + @TestCase(name = "Login into IB as commercial customer using Mobile Key", environments = {TST3, FVE, PPE}) + @JiraTestCase(id = "FVP-T1894") + void commercialCustomer_shouldLoginWithMobileKey(Harness harness, @Key("ib.commercial.client") Credentials client) { + harness.withIB() + .openLoginPage() + .typeUsername(client.getUsername()) + .typePassword(client.getPassword()) + .clickLogin() + .onAuthMobileKeyPage() + .fillMobileKey("12341234") + .clickLogin() + .onWelcomePage() + .checkWelcomePageImageIsPresent(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ods/InstPtKey.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ods/InstPtKey.java new file mode 100644 index 0000000..8ddbd27 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ods/InstPtKey.java @@ -0,0 +1,80 @@ +package cz.moneta.test.sanity.transactional.cards.ods; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "get and use UniPtKey") +public class InstPtKey { + private String rc; + private String instPtKey; + private String cif; + private String firstName; + private String lastName; + + @BeforeAll + public void getInfo(Harness harness) { + SmokeData smokeData = SmokeData.getInstance(harness); + rc = smokeData.getCreditData().getRc(); + cif = smokeData.getCreditData().getCif(); + String name = smokeData.getCreditData().getName(); + String[] split = name.split(" "); + lastName = split[split.length - 1]; + firstName = split[split.length - 2]; + } + + @Order(1) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3657") + public void GET_INST_PT_KEY(Harness harness) { + instPtKey = harness.withWso2() + .prepareRequestXml() + .withPath("/t/cards.cluster/test-ods-get-inst-pt-key") + .withPayload("" + + "" + rc + "" + + "ICB0" + + "") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_1") + .andAssertPresent("RS_1.rows") + .andAssertPresent("RS_1.rows.row") + .andAssertPresent("RS_1.rows.row.INST_PT_KEY") + .andAssertFieldValue("RS_1.rows.row.CIF", cif) + .andAssertFieldValue("RS_1.rows.row.FAMILY_NAME", lastName) + .andAssertFieldValue("RS_1.rows.row.FIRST_NAME", firstName) + .extract("RS_1.rows.row.INST_PT_KEY") + .textValue(); + } + + @Order(2) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3658") + public void ODS_GET_INSTPT_DATA(Harness harness) { + harness.withWso2() + .prepareRequestXml() + .withPath("/t/cards.cluster/test-ods-get-instpt-data") + .withPayload("" + + "1" + + "1" + + "" + instPtKey + "" + + "") + .post() + .andAssertStatus(200) + .andAssertFieldValue("IPT_FIRST_NAME", firstName) + .andAssertFieldValue("IPT_FAMILY_NAME", lastName) + .andAssertFieldValue("IPT_CIF", cif) + .andAssertFieldValue("IPT_RC_NUM", rc); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ods/UniPtKey.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ods/UniPtKey.java new file mode 100644 index 0000000..b2f7599 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ods/UniPtKey.java @@ -0,0 +1,88 @@ +package cz.moneta.test.sanity.transactional.cards.ods; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "get and use UniPtKey") +public class UniPtKey { + private String rc; + private String uniPtKey; + private String cardType; + private String firstName; + private String lastName; + private String card; + private String account; + private String contract; + + @BeforeAll + public void getInfo(Harness harness) { + SmokeData smokeData = SmokeData.getInstance(harness); + cardType = "C"; //credit card + rc = smokeData.getCreditData().getRc(); + card = smokeData.getCreditData().getCard(); + account = smokeData.getCreditData().getAccount(); + contract = smokeData.getCreditData().getContract(); + String name = smokeData.getCreditData().getName(); + String[] split = name.split(" "); + lastName = split[split.length - 1]; + firstName = split[split.length - 2]; + } + + @Order(1) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3655") + public void GET_UNI_PT_KEY(Harness harness) { + uniPtKey = harness.withWso2() + .prepareRequestXml() + .withPath("/t/cards.cluster/test-ods-get-uni-pt-key") + .withPayload("" + + "" + rc + "" + + "") + .post() + .andAssertStatus(200) + .andAssertPresent("RS_1") + .andAssertPresent("RS_1.rows") + .andAssertPresent("RS_1.rows.row") + .andAssertPresent("RS_1.rows.row.UNI_PT_KEY_OUT") + .andAssertFieldValue("RS_1.rows.row.FAMILY_NAME_OUT", lastName) + .andAssertFieldValue("RS_1.rows.row.FIRST_NAME_OUT", firstName) + .extract("RS_1.rows.row.UNI_PT_KEY_OUT") + .textValue(); + } + + @Order(2) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3656") + public void ODS_GET_CARD_DATA(Harness harness) { + harness.withWso2() + .prepareRequestXml() + .withPath("/t/cards.cluster/test-ods-get-card-data") + .withPayload("" + + "" + cardType + "" + + "1" + + "" + + "" + uniPtKey + "" + + "" + + "") + .post() + .andAssertStatus(200) + .andAssertFieldValue("RS_3.rows.row.RC_NUM_HOLDER", rc) + .andAssertFieldValue("RS_3.rows.row.FIRST_NAME_OWNR", firstName) + .andAssertFieldValue("RS_3.rows.row.FAMILY_NAME_OWNR", lastName) + .andAssertFieldValue("RS_3.rows.row.CONTR_NUM", contract) + .andAssertFieldValue("RS_3.rows.row.ACC_NUM", account) + .andAssertFieldValue("RS_3.rows.row.CARD_NUM", card); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/onboarding/RetailCCMoneyCardGold.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/onboarding/RetailCCMoneyCardGold.java new file mode 100644 index 0000000..d56d546 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/onboarding/RetailCCMoneyCardGold.java @@ -0,0 +1,155 @@ +package cz.moneta.test.sanity.transactional.cards.onboarding; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.ufo.operations.client.NewProductsByNameUfoOps; +import cz.moneta.test.dsl.ufo.operations.search.SearchBy; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.greenscreen.AZXI.AZXI01_CustomerViewSelectScreen.CARD_NUMBER_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; + +@TestScenario(name = "Create customer, credit card") +public class RetailCCMoneyCardGold { + private NonClient nonClient; + + private void setUp(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(5000) + .withOtherLoanPayments(0); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)); + } + + //ONB.RET.CC.08 - Retail CC - Application Origination - MoneyCard Gold - CC + @Disabled + @JiraTestCase(id = "FVP-T2750") + @TestCase(name = "Retail CC - MoneyCard Gold", environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + public void createRetailCC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + setUp(harness, credentials); + String requestedAmount = "40000"; + String cardName = "MoneyCard Gold"; + + String dailyPurchaseLimit = "40000"; + String dailyWithdrawLimit = "40000"; + String dailyOnlinePaymentsLimit = "40000"; + + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().operations().login().withCredentials(credentials)) + .fillSearchInput(harness.get(CLIENT_CIF_STORE_KEY)) + .searchBy(SearchBy.CIF) + .onClientDetailsPage() + .then(harness.tasks().ufo().operations().clientDetails().createNewProductByName(NewProductsByNameUfoOps.CREDIT_CARD)) + .clickContinue() + .onCreditCardScoring() + .assertScoringResultIs("OK") + .continueToProductSelection() + .then(harness.tasks().ufo().operations().productActivation().createCreditCard( + nonClient, + cardName, + "KARTA - KARTA", + "MC Gold", + "Bez akce", + requestedAmount, + "Na dobu neurčitou", + dailyPurchaseLimit, + dailyWithdrawLimit, + dailyOnlinePaymentsLimit, + "bene+ (více na www.beneplus.cz)", + "BÚ Genius Free & Flexi", + "111111" + )) + .checkProduct("Kreditní karta") + .scheduleMeetingAtABranch() + .then(harness.tasks().ufo().operations().meetingTasks().scheduleMeeting( + "ČESKÉ BUDĚJOVICE - JÍROVCOVA - Jírovcova 1863/1", + "Prodej", + "Kreditní karta" + )) + .openApplicationList() + .assertFirstApplicationState("SOUHLAS") + .assertFirstApplicationRequestedAmount(requestedAmount) + .assertFirstApplicationApprovedAmount(requestedAmount) + .clickLogout() + .clickRelogin(); +// ONB.RET.CC.28 - Retail CC + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().banka().login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .selectFromListOfRequests() + .selectFirstApplication() + .clickOpenRequestDetail() + .onCreditCardRequestPage() + .clickCreateProductAndPrintContract() + .onPreContractualInformationPrintedPage() + .continueToPrintCopyOfContractProposalPage() + .clickContinue() + .onCreditCardRepaymentMethodConfirmation() + .clickOk() + .onConfirmationPage() + .clickLeftButton() + .onAccountSelectionPage() + .selectAccount(2) + .clickSave() + .onConfirmationPage() + .clickDoNotCreateButton() + .onSignerSelectionPage() + .clickContinue() + .onSignContractPage() + .clickFirstSignerCheckbox() + .clickYesButton() + .clickOk() + .clickContinue() + .clickContinue() + .fillPriceLimitInput(requestedAmount) + .clickSaveButton() + .clickSigned() + .clickContinue() + .onClientRequestPage() + .clickBackToMainPage(); + + harness.withGreenScreen() + .logIn() + .openCustomerSearch() + .searchByIdentificationNumber(nonClient.birthNumber()) + .openCustomerDetail() + + .openAccountDetail() + + .checkOrg("861") + .checkCardLogo("680") + .checkName(nonClient.firstName().toUpperCase() + " " + nonClient.lastName().toUpperCase()) + .checkCardholderFlag("0") + .checkCardAction("1"); + + harness.tasks().firstVision() + .updateExpirationDateCC(nonClient.birthNumber(), LocalDate.parse("2023-10-10")); + + harness.tasks().wso2().cards().activateCard(harness.get(CARD_NUMBER_KEY)); + harness.store("reports.tmfj.execution.comment", "Card successfully created, client " + + nonClient.firstName() + " " + nonClient.lastName() + + " (" + nonClient.birthNumber() + ")"); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/onboarding/RetailDCVisaStandard.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/onboarding/RetailDCVisaStandard.java new file mode 100644 index 0000000..06315c4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/onboarding/RetailDCVisaStandard.java @@ -0,0 +1,95 @@ +package cz.moneta.test.sanity.transactional.cards.onboarding; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisProductClass; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.ufo.banka.tasks.accountenums.CurrentAccountsEnum; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.firstvision.FirstVisionTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Disabled; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.greenscreen.AZXI.AZXI01_CustomerViewSelectScreen.CARD_NUMBER_KEY; +import static cz.moneta.test.dsl.ufo.banka.tasks.accountenums.DebitCardFeePlan.CHARGED; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CLIENT_CIF_STORE_KEY; +import static cz.moneta.test.dsl.ufo.banka.pages.main.HKO101_S001_MainClientPage.CURRENT_ACCOUNT_NUMBER; + +@TestScenario(name = "Create customer, debit card") +public class RetailDCVisaStandard { + + private NonClient nonClient; + + private void setUp(Harness harness, Credentials credentials) { + nonClient = harness.data().newFVNonClient() + .withNetMonthlyIncome(100000) + .withHomeIncome(100000) + .withOtherExpenses(5000) + .withOtherLoanPayments(0); + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.newClient().create(nonClient, credentials.getUsername())) + .then(bankaTasks.newPackagedProductTasks().ibWithMobileKeyAndCurrentAccount(nonClient, CurrentAccountsEnum.GENIUS_FREE_FLEXI)) + .getCurrentAccountNumberAndStore(); + } + + //name = "ONB.RET.DC.01 - Retail DC - Card Onboarding (Debit VISA Standard) - BRANCH. Banker creates Debit card (Debit VISA Standard) for an existing client with existing account" + @Disabled + @JiraTestCase(id = "FVP-T2763") + @TestCase(name = "retail_DC_VISA_Standard_onboarding", environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + public void createRetailDC(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + setUp(harness, credentials); + final String cardName = "Debit VISA Standard (FV)"; + BankaTasks bankaTasks = harness.tasks().ufo().banka(); + harness.withUfo() + .openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .fillSearchTerm(harness.get(CLIENT_CIF_STORE_KEY)) + .clickSearchByCif() + .onClientDetailPage() + .getCurrentAccountNumberAndStore() + .createNewProduct(HCisProductClass.DEBIT_CARD) + .onSelectionOfSubmittedDocumentsPage() + .selectIdCardRadio() + .clickDocumentsCheckButton() + .clickContinue() + .onDebitCardRequestPage() + .selectCurrentAccountByIndex(2) + .selectDebitCardType(cardName + "|Nabízet") + .selectDebitCardFeePlan(CHARGED) + .typeActivatePassword("000000") + .clickClientDataHolderButton() + .clickEnterButton() + .onAddHolderPage() + .clickOnHolderOwnerButton() + .clickCardDeliveryToPermanentAddress() + .clickPinDeliveryToPermanentAddress() + .dismissPinChargeAlert() + .waitForLoadAndClickSend() + .onSignerSelectionPage() + .clickContinue() + .onPrintDocumentationPage() + .continueToGeneralContractAndDispositionPage() + .continueToSummaryPage() + .checkTextLabelContent("Debetní karta byla úspěšně založena") + .clickOk() + .onMainClientPage(); + + String accountNumber = harness.get(CURRENT_ACCOUNT_NUMBER); + FirstVisionTasks fv = harness.tasks().firstVision(); + fv.updateExpirationDate(accountNumber, LocalDate.parse("2023-10-10")); + harness.tasks().wso2().cards().activateCard(harness.get(CARD_NUMBER_KEY)); + harness.store("reports.tmfj.execution.comment", "Card successfully created, client " + + nonClient.firstName() + " " + nonClient.lastName() + + " (" + nonClient.birthNumber() + ")"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ufo/banka/LookupClientByRC.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ufo/banka/LookupClientByRC.java new file mode 100644 index 0000000..e609c7e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ufo/banka/LookupClientByRC.java @@ -0,0 +1,33 @@ +package cz.moneta.test.sanity.transactional.cards.ufo.banka; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.sanity.transactional.SmokeData; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.FVE; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@TestScenario(name = "Teller must be able to find client by RC") +public class LookupClientByRC { + + @TestCase(name = "Bank teller is able to login and lookup client by RC", environments = {TST1, TST3, FVE, PPE}) + @JiraTestCase(id = "FVP-T1895") + public void tc_bank_teller_is_able_to_find_client_by_RC(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + String RCofExistingClient = SmokeData.getInstance(harness).getCreditData().getRc(); + + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().banka().login().withCredentials(credentials)) + .fillSearchTerm(RCofExistingClient) + .clickSearchByRc() + .onClientDetailPage() + .verifyThatClientHasSomeActiveProducts(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ufo/operations/BasicLogin.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ufo/operations/BasicLogin.java new file mode 100644 index 0000000..35141d8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/ufo/operations/BasicLogin.java @@ -0,0 +1,32 @@ +package cz.moneta.test.sanity.transactional.cards.ufo.operations; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import cz.moneta.test.sanity.transactional.SmokeData; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.FVE; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@TestScenario(name = "Bank teller must be able to login to UFO Ops") +public class BasicLogin { + + @TestCase(name = "Bank teller is able to login into UFO OPS", environments = {TST1, TST3, FVE, PPE}) + @JiraTestCase(id = "FVP-T1896") + public void tc_bank_teller_is_able_to_find_client_by_RC(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + String RCofExistingClient = SmokeData.getInstance(harness).getCreditData().getRc(); + + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().operations().login().withCredentials(credentials)) + .fillSearchInput(RCofExistingClient) + .clickSearchClient() + .onClientDetailsPage(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/AccountMonetaryUpd.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/AccountMonetaryUpd.java new file mode 100644 index 0000000..9aa55d8 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/AccountMonetaryUpd.java @@ -0,0 +1,49 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +import java.util.concurrent.ThreadLocalRandom; + +@TestScenario(name = "ACCOUNT_MONETARY_UPD") +public class AccountMonetaryUpd { + private String account; + private SmokeData smokeData; + private int randomAmount; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + account = smokeData.getCreditData().getAccount(); + randomAmount = ThreadLocalRandom.current().nextInt(100, 300 + 1); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2751") + public void MWFXXX8_ACCOUNT_MONETARY_UPDATE(Harness harness) { + String todayDate = DateUtils.getFormattedTodayDate(DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITH_SEPARATOR); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromErn(smokeData.getPath("MWFXXX8")) + .addField("ACCT_ORG", "500") + .addField("ACCT_NBR", account) + .addField("CURR_CODE", "203")//CZK currency + .addField("FOREIGN_USE", "0") + .addField("ACTION_CODE", "PCOL")//Fee for reminder mail + .addField("EFF_DATE", todayDate) + .addField("TXN_AMOUNT", randomAmount) + .addField("PLAN_NBR", "10000") + .addField("MCC", "0") + .addField("STORE_NBR", "999999998") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("CARD_NBR", account) + .andAssertFieldValue("TXN_AMOUNT", Double.toString(randomAmount / 100.)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/BlockUnblock.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/BlockUnblock.java new file mode 100644 index 0000000..2d76e38 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/BlockUnblock.java @@ -0,0 +1,219 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.jupiter.api.*; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import java.time.LocalDate; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Block Unblock card") +public class BlockUnblock { + private String card; + private String account; + private String bu; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData debitData = smokeData.getDebitData(); + card = debitData.getCard(); + account = debitData.getAccount(); + bu = debitData.getBu(); + } + + @Order(1) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1943") + public void MWFA63_DO_CARD_SERVICING_BLOCK_CAR(Harness harness) { + String desc = RandomStringUtils.randomAlphabetic(10); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA63")) + .addField("CisloKarty", card) + .addField("DruhBlokace", "25") + .addField("DuvodAkce", desc) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("DuvodAkce", desc); + } + + @Order(2) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2403") + public void MWFA86_DO_CARD_SERVICING_UNLOCKING(Harness harness) { + unblockCard(harness, card) + .andAssertStatus(200) + .andAssertFieldValue("VysledekKontrol", "OK"); + } + + @Order(3) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2416") + public void MWF2E0_ODS_BLOCK_CARD(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF2E0")) + .addField("CardInstanceNumber", card) + .addField("CardInstanceBlockCode", "U") + .postExtended() + .andAssertStatus(200); + } + + @Order(4) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2418") + public void MWF2E2_ODS_UNBLOCK_CARD(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF2E2")) + .addField("CardInstanceNumber", card) + .postExtended() + .andAssertStatus(200); + } + + @Order(5) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2417") + public void MWF2E1_ODS_BLOCK_ACCOUNT(Harness harness) { + String blockCode = "D"; + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF2E1")) + .addField("CardAccountNumber", account) + .addField("CardAccountBlockCode1", "") + .addField("CardAccountBlockCode2", blockCode) + .postExtended() + .andAssertStatus(200); + } + + @Order(6) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2433") + public void MWFJW3_DO_CARD_SERV_RECALL_CANCELLING(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJW3")) + .addField("CisloKaretnihoUctu", account) + .postExtended() + .andAssertStatus(200); + } + + @Order(7) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2419") + public void MWF2E3_ODS_UNBLOCK_ACCOUNT(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF2E3")) + .addField("CardAccountNumber", account) + .postExtended() + .andAssertStatus(200); + } + + @Order(8) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2093") + public void MWFA88_DO_CARD_SERVICING_STOP_RENEWAL(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA88")) + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200); + } + + @Order(9) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2098") + public void MWFII9_DO_CARD_SERV_UNBLOCK_WTH_RENEW(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFII9")) + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200); + } + + @Order(10) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2415") + public void MWF2DV_BATCH_UPDATES_BLOCK_DEBIT_CARD(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromIcb(smokeData.getPath("MWF2DV")) + .addField("CurrentAccountNumber", bu) + .post() + .andAssertStatus(200); + } + + @Order(11) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2782") + public void MWFXX11_CARD_SERVICING_CARD_BLOCK_UPD(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFXX11")) + .addField("CisloKarty", card) + .addField("DuvodZruseni", "7") + .postExtended() + .andAssertStatus(200); + } + + @Order(12) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2091") + public void MWFA83_CRT_CARD_SERVICING_TERMINATION(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA83")) + .addField("CisloKaretnihoUctu", account) + .addField("DuvodZruseni", "6") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Result", "OK"); + unblockAccount(harness, account); + } + + @Order(13) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2099") + public void MWFXXX2_DO_ACCOUNT_ACTION_WRITE_OFF(Harness harness) { + String cancelDateString = DateUtils.getDateWithFormat(LocalDate.now().plusDays(7), + DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITH_SEPARATOR); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFXXX2")) + .addField("ACCT_NBR", account) + .addField("ORG", "3") + .addField("TC_EFF_DATE", cancelDateString) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("ACCT_NBR", account) + .andAssertFieldValue("ORG", "3"); + unblockAccount(harness, account); + } + + private void unblockAccount(Harness harness, String account) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJW3")) + .addField("CisloKaretnihoUctu", account) + .postExtended(); + } + + private RawRestRequest.Response unblockCard(Harness harness, String card) { + return harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA86")) + .addField("CisloKarty", card) + .addField("DuvodOdblokovani", "21") + .addField("OdblokokaceKaretnihoUctu", "1") + .addField("VypnoutKontroly", "1") + .postExtended(); + } + + @AfterAll + public void unblockAfterTests(Harness harness) { + unblockCard(harness, card); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardActivation.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardActivation.java new file mode 100644 index 0000000..e3082a1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardActivation.java @@ -0,0 +1,29 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "CardActivation") +public class CardActivation { + private String card; + + @BeforeAll + public void getInfo(Harness harness) { + card = SmokeData.getInstance(harness).getCreditData().getCard(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1963") + public void MWFI79_DO_CARD_SERVICING_ACTIVATION(Harness harness) { + //this test should use only already activated card + harness.tasks().wso2().cards().activateCard(card) + .andAssertStatus(400) + .andAssertFieldValue("tifResponseStatus.errorDesc", + "MWFI79: Karta je jiz aktivovana"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardBundles.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardBundles.java new file mode 100644 index 0000000..19f21de --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardBundles.java @@ -0,0 +1,97 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.*; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import java.util.stream.StreamSupport; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "Bundle") +public class CardBundles { + private String idBundle; + private String account; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + account = smokeData.getCreditData().getAccount(); + idBundle = "CCP0010001"; + } + + @Order(1) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2730") + public void MWFJZ3_VLS_SET_BUNDLE(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJZ3")) + .addField("ACCOUNT", account) + .addField("CHANNEL", "POS") + .addField("ID_BUNDLE", idBundle) + .addField("SSO", "543830300") + .postExtended(); + if (response.getStatus() == 500) { + response.andAssertFieldValue("tifResponseStatus.errorDesc", "VPLBSAE20S: OFFER ENROLLMENT ALREADY ON FILE"); + } else + response.andAssertStatus(200); + } + + @Order(2) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2731") + public void MWFJZ2_VLS_GET_BUNDLE_HISTORY(Harness harness) { + JsonNode data = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJZ2")) + .addField("ACCOUNT", account) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Data") + .andAssertPresent("NBR_OF_REC") + .extract("Data"); + boolean bundleFound = StreamSupport.stream(data.spliterator(), false) + .map(i -> i.path("RS_ID_BUNDLE").textValue()) + .anyMatch(idBundle::equals); + Assertions.assertTrue(bundleFound, "Bundle " + idBundle + " not found on card"); + } + + @Order(3) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2732") + public void MWFJZ5_VLS_GET_ACCOUNT(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJZ5")) + .addField("ACCOUNT", account) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("ID_BUNDLE_ACT", idBundle) + .andAssertPresent("ACT_BUNDLE_ACTIVE_FROM"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3149") + public void MWFC14_VLS_GET_CARD_DETAIL(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFC14")) + .addField("CisloKaretnihoUctu", account) + .post() + .andAssertStatus(200) + .andAssertPresent("BodyDoKonceMesice") + .andAssertPresent("CelkovyAktualniPocetOdmen") + .andAssertPresent("OdmenyOdZacatkuRoku") + .andAssertPresent("OdmenyOdVydaniKarty") + .andAssertPresent("Pocet") + .andAssertPresent("Data") + .andAssertPresent("DatumDalsihoVypisu") + .andAssertPresent("CelkovyAktualniPocetBodu"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardChange.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardChange.java new file mode 100644 index 0000000..2b81e93 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardChange.java @@ -0,0 +1,104 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.jupiter.api.BeforeAll; + +import java.util.Collections; +import java.util.Random; + +@TestScenario(name = "CHG_CARD_BUSINESS_NAME") +public class CardChange { + private String card; + private String account; + private String cif; + private String adresat; + private String co; + private String cp; + private String obec; + private String psc; + private String posta; + private String ulice; + private String zeme; + private SmokeData smokeData; + + @BeforeAll + public void setUp(Harness harness) { + smokeData = SmokeData.getInstance(harness); + account = smokeData.getCreditData().getAccount(); + card = smokeData.getCreditData().getCard(); + cif = smokeData.getCreditData().getCif(); + Random random = new Random(); + adresat = RandomStringUtils.randomAlphabetic(10); + co = String.valueOf(random.nextInt(10_000)); + cp = String.valueOf(random.nextInt(10_000)); + obec = "Praha"; + posta = "Zimohrad 10"; + ulice = "HOLEJ"; + psc = "14000"; + zeme = "52"; + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1941") + public void MWF8B1_CHG_CARD_BUSINESS_NAME(Harness harness) { + String name = RandomStringUtils.randomAlphabetic(12); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF8B1")) + .addField("CisloKaretnihoUctu", account) + .addField("VytlaceneJmeno", name) + .postExtended() + .andAssertStatus(200); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1940") + public void MWF7G2_CHG_CARD_EMBOS_NAME(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF7G2")) + .addField("CIF", cif) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("PocetZmenenychKaret"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1976") + public void MWFK28_CHG_CARD_STMT_DISTRIBUTION(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFK28")) + .addField("CisloKaretnihoUctu", account) + .addField("CisloKarty", "") + .addField("ZpusobDistribuceVypisu", "1") + .postExtended() + .andAssertStatus(200); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1930") + public void MWF140_SET_CARD_CHANGE_PIN_ADDRESS(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF140")) + .addField("Adresat", adresat) + .addField("CO", co) + .addField("CP", cp) + .addField("Obec", obec) + .addField("PSC", psc) + .addField("Pocet", 1) + .addField("PolePoradi", account) + .addField("Ulice", ulice) + .addField("Zeme", zeme) + .addField("Posta", posta) + .addField("inputset", Collections.emptyList()) + .appendToArray("inputset", new Object()) + .addField("inputset[0]", "CisloProduktu", card) + .addField("inputset[0]", "Adresat", adresat) + .postExtended() + .andAssertStatus(200); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardDelivery.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardDelivery.java new file mode 100644 index 0000000..3446a28 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardDelivery.java @@ -0,0 +1,37 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import cz.moneta.test.sanity.transactional.cards.firstvision.Embosser; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "CARD_DELIVERY_TRACK_STATUS") +public class CardDelivery { + private String mailingId; + private String card; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + card = smokeData.getCreditData().getCard(); + mailingId = Embosser.getEmbosser(harness, "E8V7B", card).extract("VMX_ROOT.VMX_MSGOUT.USER_3").textValue(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2431") + public void MWFJJ8_CHG_CARD_DELIVERY_TRACK_STATUS(Harness harness) { + // change + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJJ8")) + .addField("MailingID", mailingId) + .addField("StavDodani", "1") // ON_THE_WAY_TO_BRANCH + .addField("DuvodVraceni", 3) //ADDRESSEE_NOT_FOUND + .postExtended() + .andAssertStatus(200); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardFeePlan.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardFeePlan.java new file mode 100644 index 0000000..6bb6ea5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardFeePlan.java @@ -0,0 +1,43 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "change student card fee plan") +public class CardFeePlan { + private String bu; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + bu = smokeData.getStudentBU(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3146") + public void MWF2DU_BATCH_UPDATES_DEB_CARD_ACC_FEE_PLAN(Harness harness) { + changeFeePlan(harness, "162") // free & flexi + .andAssertStatus(200); + } + + private RawRestRequest.Response changeFeePlan(Harness harness, String feePlan) { + return harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromIcb(smokeData.getPath("MWF2DU")) + .addField("CurrentAccountNumber", bu) + .addField("CurrentAccountFeePlan", feePlan) + .postExtended(); + } + + @AfterAll + public void restoreFeePlan(Harness harness) { + changeFeePlan(harness, "140"); //student + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardInsurance.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardInsurance.java new file mode 100644 index 0000000..f2a4da4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardInsurance.java @@ -0,0 +1,92 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.*; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "SERVICE ACTIVATION/DEACTIVATION") +public class CardInsurance { + private String serviceCode; + private String card; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + serviceCode = "BC"; + card = smokeData.getCreditData().getCard(); + } + + @Order(1) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2092") + public void MWFA84_CRT_ADD_SERVICES(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA84")) + .addField("CisloKarty", card) + .addField("KodDS", serviceCode) + .postExtended() + .andAssertStatus(200); + } + + @Order(2) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2444") + public void MWFA82_DO_ADD_SERVICES_DEACTIVATE(Harness harness) { + String date = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDate.now().minusDays(30)); + deactivateServices(harness, date); + } + + private void deactivateServices(Harness harness, String date) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA82")) + .addField("CisloKarty", card) + .addField("DSDatumZruseniDoruceno", date) + .addField("DSKodDistribucnihoKanalu", "7") + .addField("KodDS", serviceCode) + .postExtended() + .andAssertStatus(200); + } + + @Order(3) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2437") + public void MWFS86_ADD_SERVICES_REACTIVATE_CREDIT(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFS86")) + .addField("CARD", card) + .addField("DS", serviceCode) + .postExtended() + .andAssertStatus(200); + } + + @Order(4) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2096") + public void MWFAS7_GET_LIST_ADD_SERVICES(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFAS7")) + .addField("CisloKarty", card) + .addField("DruhKarty", "1") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].PopisDS", "BCC/POJIŠTĚNÍ VYČERPANÉ ČÁSTKY"); + } + + @AfterAll + public void deactivateService(Harness harness) { + String date = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDate.now().minusDays(30)); + deactivateServices(harness, date); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardLimits.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardLimits.java new file mode 100644 index 0000000..731bdc0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardLimits.java @@ -0,0 +1,55 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +import java.util.Random; + +@TestScenario(name = "DO_CARD_SERV_ADJUST_DATA") +public class CardLimits { + private SmokeData smokeData; + private String card; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + card = smokeData.getCreditData().getCard(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1960") + public void MWFH02_DO_CARD_SERV_ADJUST_DATA(Harness harness) { + //TODO not changing limit + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFH02")) + .addField("CisloKarty", card) + .addField("LimitBankomat", 7000) + .addField("LimitMOTOInternet", 8000) + .addField("LimitObchodnik", 9000) + .postExtended() + .andAssertStatus(200); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2428") + public void MWFDB8_DO_CARD_AUTHORIZATION(Harness harness) { + String amount = new Random().nextInt(100) + ""; + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFDB8")) + .addField("CARDNUMBER", card) + .addField("AMOUNT", amount) + .addField("TRANSACTIONTYPE", 0) + .addField("CARDEXPIRYDATE", "2310") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("CARDNUMBER", card) + .andAssertFieldValue("AMOUNT", amount) + .andAssertPresent("RESULT") + .andAssertPresent("RESPONSECODE"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardMemo.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardMemo.java new file mode 100644 index 0000000..ce278b5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardMemo.java @@ -0,0 +1,38 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "CARD MEMOS") +public class CardMemo { + private String card; + private String memo; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + card = creditData.getCard(); + memo = RandomStringUtils.randomAlphabetic(15); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1970") + public void MWFJ93_CRT_ACCOUNT_ACTION_MEMO(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJ93")) + .addField("CisloKarty", card) + .addField("Poznamka", memo) + .postExtended() + .andAssertStatus(200); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardNotes.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardNotes.java new file mode 100644 index 0000000..983da9c --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardNotes.java @@ -0,0 +1,34 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "CRT_NOTE_ACCOUNT_ACTION") +public class CardNotes { + private SmokeData smokeData; + private String card; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + card = smokeData.getCreditData().getCard(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1954") + public void MWFBK6_ACCOUNT_ACTION_CREATE_NOTE(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFBK6")) + .addField("AkcniKod", "ADDR") + .addField("LogoKarty", "5601042") + .addField("CisloKarty", card) + .addField("Temp_Note1", "sample temp note") + .postExtended() + .andAssertStatus(200); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardPctTable.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardPctTable.java new file mode 100644 index 0000000..0cf088a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardPctTable.java @@ -0,0 +1,68 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +import java.util.Collections; + +@TestScenario(name = "CardPctTable") +public class CardPctTable { + private String card; + private String cardDebit; + private String account; + private String accountDebit; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + card = creditData.getCard(); + account = creditData.getAccount(); + CardData debitData = smokeData.getDebitData(); + accountDebit = debitData.getAccount(); + cardDebit = debitData.getCard(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1931") + public void MWF1G4_SET_PCT_TABLE(Harness harness) { + String newPct = "T04".equalsIgnoreCase(GET_PCT_TABLE(harness, card)) ? "W04" : "T04"; + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF1G4")) + .addField("CardAccountNumber", account) + .addField("PctId", newPct) + .postExtended() + .andAssertStatus(200); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2783") + public void MWFXX12_card_change_supp_fee(Harness harness) { + String newPct = GET_PCT_TABLE(harness, cardDebit).equalsIgnoreCase("GI0") ? "GO0" : "GI0"; + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFXX12")) + .addField("CisloKaretnihoUctu", accountDebit) + .addField("PCTTabulka", newPct) + .addField("Data", Collections.emptyList()) + .appendToArray("Data", cardDebit) + .postExtended() + .andAssertStatus(200); + } + + private String GET_PCT_TABLE(Harness harness, String card) { + return harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJY9")) + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("PCTTabulkaNaKarte") + .extract("PCTTabulkaNaKarte").textValue(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardPromoCodes.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardPromoCodes.java new file mode 100644 index 0000000..495bf1b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardPromoCodes.java @@ -0,0 +1,76 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.Wso2Utils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +@TestScenario(name = "Card promos") +public class CardPromoCodes { + private String account; + private String promoCode; + private String offerId; + private SmokeData smokeData; + private String dateTo; + private String datefrom; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + account = smokeData.getCreditData().getAccount(); + promoCode = "CBK0010001"; + offerId = "CCP0010001"; + dateTo = "2027-01-01"; + datefrom = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDateTime.now().plusDays(6)); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2729") + public void MWFJX6_CARD_PROMO_SET(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJX6")) + .addField("ACCOUNT", account) + .addField("CATEGORY", "RET") + .addField("CHANNEL_ID", "OM") + .addField("DATE_TO", dateTo) + .addField("PROMO_CODE", promoCode) + .postExtended(); + + //fixme promo code can be set only once during batch period. Else got 500. Design ? + Wso2Utils.validateResponse(response, + 500, + smokeData.isGw(), + "tifResponseStatus.errorDesc", + "VPLBSAE20S: OFFER ENROLLMENT ALREADY ON FILE", + "errorMessage", + "OFFER ENROLLMENT ALREADY ON FILE"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3151") + public void MWFXXX7_CARD_PROMO_ADD_LOYALTY(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFXXX7")) + .addField("cardAccountNr", account) + .addField("offerId", offerId) + .addField("channelId", "POS") + .addField("startDate", datefrom) + .addField("expirationDate", dateTo) + .addField("SSO", "543830666") + .postExtended(); + //fixme loyalty can be set only once during batch period. Else got 500. Design ? + if (response.getStatus() == 500) { + response.andAssertFieldValue("tifResponseStatus.errorDesc", "VPLBSAE20S: OFFER ENROLLMENT ALREADY ON FILE"); + } else { + response.andAssertStatus(200); + } + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardServices.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardServices.java new file mode 100644 index 0000000..28393c7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardServices.java @@ -0,0 +1,50 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "GET_ADD_SERVICES_REFUND_FEE_CC") +public class CardServices { + private SmokeData smokeData; + private String bu; + private String cif; + private String prodInstKey; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData debitData = smokeData.getDebitData(); + bu = debitData.getBu(); + cif = debitData.getCif(); + prodInstKey = debitData.getProdInstKey(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2423") + public void MWF5F0_ADD_SERVICES_SET_PACKAGE_STATE(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF5F0")) + .addField("AccountNumber", bu) + .addField("CIF", cif) + .addField("ChannelId", "POS") + .addField("Currency", "0") + .addField("EmployeeRoleId", "5") + .addField("PackageId", "ATM") + .addField("Period", "2") + .addField("Price", 2) + .addField("ProductCode", "2713999") + .addField("ProductType", "1299001") + .addField("SSO", "543830626") + .addField("ProdInstKey", prodInstKey) + .addField("AdditionalServiceState", "15") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("DebitCardExist", "TRUE"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardStatements.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardStatements.java new file mode 100644 index 0000000..99204a1 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CardStatements.java @@ -0,0 +1,42 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +import java.time.LocalDate; + +@TestScenario(name = "Statements on card") +public class CardStatements { + private String account; + private SmokeData smokeData; + private String lastDayOfPreviousMonth; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + account = smokeData.getAccountWithStatements(); + lastDayOfPreviousMonth = DateUtils.getDateWithFormat(LocalDate.now().withDayOfMonth(1).minusDays(1), + DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITH_SEPARATOR); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2095") + public void MWFA95_DO_STATEMENTS_PRINT(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA95")) + .addField("CisloKaretnihoUctu", account) + .addField("CisloKarty", "") + .addField("DuvodTisku", "STAT") + .addField("TransakceDatumVypisu", lastDayOfPreviousMonth) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("DuvodAkce", "Zaslání kopie výpisu"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ChangeCardBasedOnRequest.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ChangeCardBasedOnRequest.java new file mode 100644 index 0000000..24f22c7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ChangeCardBasedOnRequest.java @@ -0,0 +1,107 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import java.util.Random; + +import static cz.moneta.test.sanity.transactional.SmokeData.getInstance; + +@Execution(ExecutionMode.SAME_THREAD) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestScenario(name = "CC application") +public class ChangeCardBasedOnRequest { + private int request; + private String contract; + private String bu; + private String account; + private SmokeData smokeData; + private String applToCancel; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = getInstance(harness); + CardData creditData = smokeData.getCreditData(); + contract = creditData.getContract(); + account = creditData.getAccount(); + bu = creditData.getBu(); + } + + private int getRequestKey(Harness harness) { + return Double.valueOf(harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJR2")) + .addField("CisloSmlouvy", contract) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Data[0].APP_KEY") + .extract("Data[0].APP_KEY") + .asText()) + .intValue(); + } + + private RawRestRequest.Response getApplicationDetail(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFAV5")) + .addField("Zadost_KEY", request) + .addField("Channel_ID", "IBS") + .postExtended(); + applToCancel = response.extract("ZadostAP").textValue(); + return response; + } + + @Order(1) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2511") + public void MWFJR2_CLIP_PROCESS_GET_APPLICATION(Harness harness) { + request = getRequestKey(harness); + } + + @Order(2) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1947") + public void MWFAV5_GET_APPLICATION_DETAIL(Harness harness) { + request = getRequestKey(harness); + getApplicationDetail(harness) + .andAssertStatus(200) + .andAssertFieldValue("BUCisloUctu", bu) + .andAssertFieldValue("CisloSmlouvy", contract); + } + + @Order(3) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2735") + public void MWF7D3_CARD_CHANGE_CREDIT_LIMIT(Harness harness) { + int newLimit = new Random().nextInt(40_000); + request = getRequestKey(harness); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromWps(smokeData.getPath("MWF7D3")) + .addField("CisloKaretnihoUctu", account) + .addField("IDZadosti", request) + .addField("UverovyRamecNovy", newLimit) + .postExtended() + .andAssertStatus(200); + } + + @Order(4) + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2785") + public void MWFBX3_clip_process_cancel_application(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromNas(smokeData.getPath("MWFBX3")) + .addField("APPL_ID", applToCancel) + .postExtended() + .andAssertStatus(200); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ChangeCardFacade.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ChangeCardFacade.java new file mode 100644 index 0000000..f68844d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ChangeCardFacade.java @@ -0,0 +1,120 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; + +import java.util.Random; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.FV; + +@TestScenario(name = "change card facade") +public class ChangeCardFacade { + private String card; + private String account; + private String bu; + private String pctTable; + private String limitBankomat; + private SmokeData smokeData; + + private String newBu; + private String newMobile; + private String newPctTable; + private String newLimitBankomat; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + card = creditData.getCard(); + account = creditData.getAccount(); + bu = creditData.getBu(); + pctTable = getPctTable(harness); + limitBankomat = getLimitBankomat(harness); + //generated data + Random random = new Random(); + newBu = random.nextInt(900_000) + 19_000_000 + ""; + newMobile = "420" + (100_000_000 + random.nextInt(899_999_999)); + newLimitBankomat = random.nextInt(50000) + ""; + newPctTable = random.nextInt(4) + 1001 + ""; + } + + private String getLimitBankomat(Harness harness) { + JsonNode embosser = getEmbosser(harness); + return embosser.path("ATM_CASH_AMT").asText(); + } + + private String getPctTable(Harness harness) { + JsonNode embosser = getEmbosser(harness); + return Integer.valueOf(embosser.path("SUPP_FEE_IND").asText()) + 1000 + ""; + } + + private JsonNode getEmbosser(Harness harness) { + return harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.EMBOSSER.INQ", "E8V7B")) + .addField("VMX_MSGIN", "ACCOUNT", card) + .postExtended() + .andAssertFieldValue("VMX_ROOT.VMX_MSGOUT.SVC_RETURN", "P") + .extract("VMX_ROOT.VMX_MSGOUT"); + } + + private String getBu(Harness harness) { + return harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("VMX.CARD.CUST.ACCT.INQ.CINEMA", "E8VCE")) + .addField("VMX_MSGIN", "ACCOUNT", account) + .postExtended() + .andAssertFieldValue("VMX_ROOT.VMX_MSGOUT.SVC_RETURN", "P") + .extract("VMX_ROOT.VMX_MSGOUT.ACCOUNT_OUTPUT.BANK_ACCT") + .textValue() + .substring(9); + } + + private String getMobile(Harness harness) { + return getEmbosser(harness).path("EMB_PIN_MOBILE_NBR").asText(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1945") + public void MWFAS6_CHG_CARD_FACADE(Harness harness) { + Object activityId = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFAS6")) + .addField("CisloKarty", card) + .addField("CisloKaretnihoUctu", account) + .addField("CisloBU", newBu) + .addField("DrzitelTelefonMobilni", newMobile) + .addField("LimitBankomat", newLimitBankomat) + .addField("PCTTabulka", newPctTable) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("OnlineFlag", "1") + .getHeader("activityId"); + String id = " activityId -> " + activityId; + Assertions.assertEquals(newMobile, getMobile(harness), "Mobile number was not changed." + id); + Assertions.assertEquals(newLimitBankomat + "00", getLimitBankomat(harness), "Bankomat limit was not changed." + id); + Assertions.assertEquals(newBu, getBu(harness), "BU is not changed." + id); + } + + @AfterAll + public void restorePreviousData(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFAS6")) + .addField("CisloKarty", card) + .addField("CisloBU", bu) + .addField("LimitBankomat", limitBankomat) + .addField("PCTTabulka", pctTable) + .post(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ChangeSmartBank.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ChangeSmartBank.java new file mode 100644 index 0000000..c3d60d5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ChangeSmartBank.java @@ -0,0 +1,33 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "change current account to Tom ucet") +public class ChangeSmartBank { + private String bu; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + bu = smokeData.getDebitData().getBu(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2087") + public void MWF2C0_CHG_CURRENT_ACCOUNT_SMART_BANK(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF2C0")) + .addField("AccountNumber", bu) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Data") + .andAssertFieldValue("Data[0].FeePlan", "460"); // Tom account + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CheckClientContactCMPG.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CheckClientContactCMPG.java new file mode 100644 index 0000000..a77848d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/CheckClientContactCMPG.java @@ -0,0 +1,35 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "CHK_ETM_CLIENT_CONTACT_CMPG") +public class CheckClientContactCMPG { + private SmokeData smokeData; + private String card; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + card = smokeData.getCreditData().getCard(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2097") + public void MWFBV1_CHK_ETM_CLIENT_CONTACT_CMPG(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromWps(smokeData.getPath("MWFBV1")) + .addField("campVerifCodes", "5") + .addField("cardNumber", card) + .addField("instPtKey", "0") + .addField("srcSysId", "4") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("failedTypeId", "16"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/DeclipSaveDocument.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/DeclipSaveDocument.java new file mode 100644 index 0000000..18b99a7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/DeclipSaveDocument.java @@ -0,0 +1,42 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "declip-process/save-document") +public class DeclipSaveDocument { + private String card; + private String contract; + private String rc; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + card = creditData.getCard(); + contract = creditData.getContract(); + rc = creditData.getRc(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2728") + public void MWFFK8_DECLIP_PROCESS_SAVE_DOCUMENT(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromWps(smokeData.getPath("MWFFK8")) + .addField("CisloKarty", card) + .addField("ContractNumber", contract) + .addField("GERodneCislo", rc) + .addField("ProductClass", "1") + .postExtended() + .andAssertStatus(200) + .andAssertPresent("URLDoc") + .andAssertPresent("DocumentID"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/DirectDebit.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/DirectDebit.java new file mode 100644 index 0000000..c4673f4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/DirectDebit.java @@ -0,0 +1,36 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "CARD_SERVICING_DIRECT_DEBIT") +public class DirectDebit { + private String card; + private String bu; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + card = smokeData.getCreditData().getCard(); + bu = smokeData.getCreditData().getBu(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1961") + public void MWFH02plus_CARD_SERVICING_DIRECT_DEBIT(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFH02+")) + .addField("CisloKarty", card) + .addField("ZpusobUhrady", "7") + .addField("KodBanky", "0600") + .addField("CisloBU", bu) + .postExtended() + .andAssertStatus(200); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/DltStatements.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/DltStatements.java new file mode 100644 index 0000000..47dd64f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/DltStatements.java @@ -0,0 +1,31 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "DLT_STATEMENTS_NO_SENDING_FLAG") +public class DltStatements { + private SmokeData smokeData; + private String account; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + account = smokeData.getCreditData().getAccount(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1962") + public void MWFHG8_DLT_STATEMENTS_NO_SENDING_FLAG(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFHG8")) + .addField("CisloKaretnihoUctu", account) + .postExtended() + .andAssertStatus(200); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/GeneratePin.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/GeneratePin.java new file mode 100644 index 0000000..3060b6d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/GeneratePin.java @@ -0,0 +1,47 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.Wso2Utils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +import java.util.Random; + +@TestScenario(name = "card-servicing/generate-pin") +public class GeneratePin { + private SmokeData smokeData; + private String card; + private String mobile; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + card = smokeData.getCreditData().getCard(); + mobile = (100_000_000 + new Random().nextInt(899_999_999)) + ""; + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2424") + public void MWFA85_CARD_SERVICING_GENERATE_PIN(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA85")) + .addField("CisloKarty", card) + .addField("ZpusobDistribucePIN", "1") + .addField("SmartPINNumber", mobile) + .postExtended(); + + //fixme this test can be run only once during batch period, else got 500 + Wso2Utils.validateResponse(response, + 500, + smokeData.isGw(), + "tifResponseStatus.errorDesc", + "VPL5SPR29S: CARD ACTION CHANGE NOT ALLOWED DUE TO PENDING CARD ACTION", + "errorMessage", + "CARD ACTION CHANGE NOT ALLOWED DUE TO PENDING CARD ACTION"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/Inputless.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/Inputless.java new file mode 100644 index 0000000..38f65bd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/Inputless.java @@ -0,0 +1,60 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "no client required") +public class Inputless { + private SmokeData smokeData; + private String rc; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + rc = "8706107399"; + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1929") + public void MWF0E0_DO_BIRTH_NUMBER_PARSE(Harness harness) { + String date = "19" + rc.substring(0, 2) + "-" + + rc.substring(2, 4) + "-" + + rc.substring(4, 6); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF0E0")) + .addField("BirthNumber", rc) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("BirthDate", date); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1981") + public void MWFXXX1_GET_CARD_DETAIL_EMBOSS_NAME(Harness harness) { + String titleBefore = RandomStringUtils.randomAlphabetic(3); + String nameFirst = RandomStringUtils.randomAlphabetic(8); + String nameLast = RandomStringUtils.randomAlphabetic(8); + String titleAfter = RandomStringUtils.randomAlphabetic(3); + String expectedNameEmbossed = titleBefore.toUpperCase() + " " + + nameFirst.toUpperCase() + " " + nameLast.toUpperCase(); + String expectedNameShortened = titleBefore + " " + nameFirst + " " + nameLast; + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFXXX1")) + .addField("titleBefore", titleBefore) + .addField("nameFirst", nameFirst) + .addField("nameLast", nameLast) + .addField("titleAfter", titleAfter) + .addField("busName", "") + .addField("nameLengthMax", "") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("NAME_EMBOSSED", expectedNameEmbossed) + .andAssertFieldValue("NAME_SHORTENED", expectedNameShortened); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ListCreditCards.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ListCreditCards.java new file mode 100644 index 0000000..8a348ed --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/ListCreditCards.java @@ -0,0 +1,41 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "List CC by different input data") +public class ListCreditCards { + private String card; + private String contract; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + card = creditData.getCard(); + contract = creditData.getContract(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2734") + public void MWFIR1plus_GET_CARD_LIST_BY_ID(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromCbl(smokeData.getPath("MWFIR1+")) + .addField("ID", contract) + .addField("Org", "500") + .postExtended() + .andAssertStatus(200) + .andAssertPresent("UverovyRamec") + .andAssertPresent("DisponibilniZustatek") + .andAssertPresent("Data") + .andAssertFieldValue("Data[0].CisloKarty", card.substring(3)); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/RenewalProcess.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/RenewalProcess.java new file mode 100644 index 0000000..3aec465 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/RenewalProcess.java @@ -0,0 +1,105 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.Wso2Utils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import static cz.moneta.test.sanity.transactional.cards.firstvision.MESSAGE.FV; + +@Execution(ExecutionMode.SAME_THREAD) +@TestScenario(name = "renewal of card/accounts") +public class RenewalProcess { + private String cardRenew; + private String debitCard; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + cardRenew = smokeData.getCardForRenew(); + debitCard = smokeData.getDebitData().getCard(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2784") + public void MWF208_add_services_card_renewal(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF208")) + .addField("CisloKarty", debitCard) + .addField("KodDS", "PP") + .postExtended(); + //fixme card renewal is possible only once per batch period, else got 500. Is it by design ? + Wso2Utils.validateResponse(response, + 500, + smokeData.isGw(), + "tifResponseStatus.errorDesc", + "VPL5SPR29S: CARD ACTION CHANGE NOT ALLOWED DUE TO PENDING CARD ACTION", + "errorMessage", + "CARD ACTION CHANGE NOT ALLOWED DUE TO PENDING CARD ACTION"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2089") + public void MWF2E5_DO_ONBOARD_RENEW_ACC_BY_CARD(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromHub(smokeData.getPath("MWF2E5")) + .addField("CardInstanceNumber", debitCard) + .addField("CardTargetInstanceNumber", debitCard) + .postExtended() + .andAssertStatus(200); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1932") + public void MWF209_DO_CARD_SERVICING_REPLICA(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF209")) + .addField("CisloPK", debitCard) + .addField("DuvodObnovy", "22") //obnova karty + .postExtended(); + //fixme cardReplica only once per batch repiod + Wso2Utils.validateResponse(response, 500, smokeData.isGw(), + "tifResponseStatus.errorDesc", + "VPL5SPR29S: CARD ACTION CHANGE NOT ALLOWED DUE TO PENDING CARD ACTION", + "errorMessage", + "CARD ACTION CHANGE NOT ALLOWED DUE TO PENDING CARD ACTION"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2425") + public void MWFA87_CARD_SERVICING_DO_RENEWAL(Harness harness) { + blockCard(harness, cardRenew); + RawRestRequest.Response response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA87")) + .addField("CisloKarty", cardRenew) + .addField("DuvodObnovy", "22")// Obnova PK + .postExtended(); + //fixme one time action during batch period + Wso2Utils.validateResponse(response, 500, smokeData.isGw(), + "tifResponseStatus.errorDesc", + "VPL5SLS28E: CARD ALREADY TRANSFERRED CANNOT TRANSFER AGAIN", + "errorMessage", + "CARD ALREADY TRANSFERRED CANNOT TRANSFER AGAIN"); + } + + private void blockCard(Harness harness, String card) { + harness.withWso2() + .prepareRequest() + .withPath(FV) + .withPojoPayload(new MESSAGE("M.CMS.BLOCKCODE.UPD.EMEA", "E8V1")) + .addField("VMX_MSGIN", "CARD_NBR", card) + .addField("VMX_MSGIN", "SVC_FUNC_CODE", "U") + .addField("VMX_MSGIN", "BLOCK_CODE", "L") // lost card + .addField("VMX_MSGIN", "RSN_BLOCK_CODE_1", "01") + .postExtended(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/RepaymentTransactions.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/RepaymentTransactions.java new file mode 100644 index 0000000..11461a6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/RepaymentTransactions.java @@ -0,0 +1,84 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import cz.moneta.test.sanity.transactional.cards.firstvision.Payments; +import org.apache.commons.lang3.RandomStringUtils; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "REPAYMENT TRANSACTION") +public class RepaymentTransactions { + private String account; + private String contract; + private String date; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + account = creditData.getAccount(); + contract = creditData.getContract(); + date = DateUtils.getFormattedTodayDate(DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITH_SEPARATOR); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2421") + public void MWF420_SET_REPAYMENT_TRANSACTION(Harness harness) { + String paycoreId = Payments.getFpsId().substring(6); + String description = "smoke" + RandomStringUtils.randomAlphabetic(25); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromPay(smokeData.getPath("MWF420")) + .addField("CONSTANT_SYMBOL", 0) + .addField("CONTRACT_NBR", contract) + .addField("CONTRACT_ORG", "500") + .addField("CURR_CODE", 203) + .addField("CUST_BANK_ACCT", account) + .addField("CUST_BANK_CODE", "0600") + .addField("DATE_OF_PAYMENT", date) + .addField("DESCRIPTION", description) + .addField("PAYCORE_ID", paycoreId) + .addField("TRAN_UNIQUE_ID", "V00" + paycoreId) + .addField("SPECIFIC_SYMBOL", 0) + .addField("TXN_AMOUNT", 665) + .addField("TXN_TYPE", "PYMT") + .addField("TYPE_OF_PAYMENT", 10) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("PAYCORE_ID", paycoreId) + .andAssertFieldValue("TRAN_UNIQUE_ID", "V00" + paycoreId); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2422") + public void MWF420plus_SET_NEG_REPAYMENT_TRANSACTION(Harness harness) { + String paycoreId = Payments.getFpsId().substring(6); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromPay(smokeData.getPath("MWF420+")) + .addField("PAYCORE_ID", paycoreId) + .addField("CUST_BANK_ACCT", account) + .addField("TXN_AMOUNT", 333) + .addField("DATE_OF_PAYMENT", date) + .addField("TXN_TYPE", "PYRV") + .addField("CUST_BANK_CODE", "0600") + .addField("CONSTANT_SYMBOL", 0) + .addField("CONTRACT_NBR", contract) + .addField("CONTRACT_ORG", "500") + .addField("CURR_CODE", 203) + .addField("DESCRIPTION", "some negative description") + .addField("TRAN_UNIQUE_ID", "V00" + paycoreId) + .addField("SPECIFIC_SYMBOL", 0) + .addField("TYPE_OF_PAYMENT", 10) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("PAYCORE_ID", paycoreId) + .andAssertFieldValue("TRAN_UNIQUE_ID", "V00" + paycoreId); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/Secure3D.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/Secure3D.java new file mode 100644 index 0000000..40ed994 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/Secure3D.java @@ -0,0 +1,52 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +import java.util.Random; + +@TestScenario(name = "secure3D") +public class Secure3D { + private String card; + private String mobile; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + card = smokeData.getCreditData().getCard(); + mobile = "420" + (100_000_000 + new Random().nextInt(899_999_999)); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2786") + public void MWFGR7_card_change_secure3D(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFGR7")) + .addField("CARD_NUMBER", card) + .addField("LOGO", "2713005") + .addField("MOBILE_PHONE", mobile) + .addField("CHG_3DSEC_PHONE", "1") + .addField("CHG_REGISTER_CARD", "1") + .addField("ORGANIZATION", "1") + .postExtended() + .andAssertStatus(200); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T3143") + public void MWF7D5_card_change_set_secure3D(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF7D5")) + .addField("CARD_NUMBER", card) + .addField("CARD_LOGO", "2713005") + .addField("MOBILE_PHONE", mobile) + .postExtended() + .andAssertStatus(200); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/Termination.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/Termination.java new file mode 100644 index 0000000..7311c01 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/Termination.java @@ -0,0 +1,50 @@ +package cz.moneta.test.sanity.transactional.cards.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; + +import static cz.moneta.test.dsl.util.DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITHOUT_SEPARATOR; + +@Execution(ExecutionMode.SAME_THREAD) +@TestScenario(name = "adding/terminating new card") +public class Termination { + private String account; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + account = smokeData.getCreditData().getAccount(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2435") + public void MWFL57_AUTOMATIC_CANCELLATION_CREATE(Harness harness) { + String todayString = DateUtils.getFormattedTodayDate(FIRST_VISION_DATE_FORMAT_WITHOUT_SEPARATOR); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFL57")) + .addField("CisloKaretnihoUctu", account) + .addField("DatumPrijeti", todayString) + .addField("ZpusobZruseni", "2") + .addField("TiskDopisu", "0") + .postExtended() + .andAssertStatus(200); + } + + @AfterAll + public void unblockAccount(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJW3")) + .addField("CisloKaretnihoUctu", account) + .postExtended(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/AccountState.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/AccountState.java new file mode 100644 index 0000000..49e65b7 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/AccountState.java @@ -0,0 +1,56 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "CARD_SERVICING_GET_LAST_STATE_AMNT") +public class AccountState { + private SmokeData smokeData; + private String account; + private String card; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + account = smokeData.getCreditData().getAccount(); + card = smokeData.getCreditData().getCard(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1938") + public void MWF4H9GetCardServLastStateAmnt(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromCbl(smokeData.getPath("MWF4H9")) + .addField("CisloKaretnihoUctu", account) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("DisponibilniZustatek") + .andAssertPresent("UverovyRamec") + .andAssertPresent("UverovyRamecVycerpany") + .andAssertPresent("VysePosledniSplatky"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1953") + public void MWFBK2_CHK_CARD_STATUS(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFBK2")) + .addField("CisloKarty", card) + .addField("PrvniSada", "500") + .addField("PrvniSadaBlockAccountExcept", "R") + .addField("PrvniSadaNonBlockedAccount", "1") + .addField("PrvniSadaNonExpired", "1") + .addField("DruhaSada", "600") + .addField("DruhaSadaBlockAccountExcept", "R") + .addField("DruhaSadaNonBlockedAccount", "1") + .addField("DruhaSadaNonExpired", "1") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Vysledek", "OK"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/CardDetails.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/CardDetails.java new file mode 100644 index 0000000..d6b4b70 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/CardDetails.java @@ -0,0 +1,195 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.apache.commons.lang3.StringUtils; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "CARD DETAILS") +public class CardDetails { + private String card; + private String account; + private String contract; + private String rc; + private String name; + private String bu; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + card = creditData.getCard(); + account = creditData.getAccount(); + contract = creditData.getContract(); + rc = creditData.getRc(); + name = creditData.getName(); + bu = creditData.getBu(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1969") + public void MWFIY1GetAccountCardDetail(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFIY1")) + .addField("CisloKarty", card) + .addField("CisloKaretnihoUctu", account) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("CisloInstantniKarty") + .andAssertFieldValue("CisloKaretnihoUctu", account) + .andAssertFieldValue("CisloSmlouvy", contract); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2420") + public void MWF35DCardDetailGetCardOwner(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromNas(smokeData.getPath("MWF35D")) + .addField("CARD_NUMBER", card) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("CONTRACT_NUMBER", contract) + .andAssertFieldValue("PERSONAL_ID_CARD_OWNER", rc); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1934") + public void MWF423GetCardListDetailForPrint(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF423")) + .addField("CisloKaretnihoUctu", account) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].CisloSmlouvy", contract) + .andAssertFieldValue("Data[0].JmenoMajitel", name.toUpperCase()); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1967") + public void MWFIX1GetCardAccountDispositions(Harness harness) { + //only credit card + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFIX1")) + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("CisloKaretnihoUctu", account) + .andAssertFieldValue("CisloSmlouvy", contract); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1968") + public void MWFIY0GetAccountBasicCardDetail(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFIY0")) + .addField("CisloKaretnihoUctu", account) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("CisloKaretnihoUctu", account) + .andAssertFieldValue("MajitelJmeno", name.toUpperCase()) + .andAssertFieldValue("CisloSmlouvy", contract); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1948") + public void MWFB05ChkCardType(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFB05")) + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("DruhKarty", "1") + .andAssertFieldValue("KartaExistuje", "1"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1950") + public void MWFB63GetCardDetailSme(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFB63")) + .addField("CisloKaretnihoUctu", account) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("APodPSC"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1964") + public void MWFI80GetAccountDetail(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromWps(smokeData.getPath("MWFI80")) + .addField("CONTRACT_NUMBER", account) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("REL_NUMBER", "000861000" + contract); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2434") + public void MWFL55GetAutoCancelInterestList(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFL55")) + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Data") + .andAssertFieldValue("Data[0].UrokyCelkem", "0"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1979") + public void MWFL56GetAutoCancelDetail(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFL56")) + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("BlokacniKod") + .andAssertPresent("DatumZacatkuZruseni"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1965") + public void MWFIR1GetCardListAllForIb(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareRequestFromCbl(smokeData.getPath("MWFIR1"), "{\"RWS_VstupniKarty\":[{}]}") + .addField("RWS_VstupniKarty[0]", "CARD_NBR", card) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("RWS_DetailyKaret[0].CisloKaretnihoUctu", account) + .andAssertFieldValue("RWS_DetailyKaret[0].CisloSmlouvy", contract); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2438") + public void MWFXXX4AccountGetDetail(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFXXX4")) + .addField("ACCOUNT", account) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("ACCT_ACCT_NBR", account) + .andAssertFieldValue("ACCT_SHORT_NAME", name.toUpperCase()) + .andAssertFieldValue("ACCT_BANK_ACCT_NBR", StringUtils.repeat('0', 8) + bu); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1973") + public void MWFJP3DoCardServMaskCardNumber(Harness harness) { + String expectedMask = account.substring(0, 4) + + StringUtils.repeat('*', 11) + + account.substring(15); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromHub(smokeData.getPath("MWFJP3")) + .addField("CisloKaretnihoUctu", account) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("CisloKaretnihoUctuMask", expectedMask); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/CardTransactions.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/CardTransactions.java new file mode 100644 index 0000000..5398e69 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/CardTransactions.java @@ -0,0 +1,146 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; + +import java.time.LocalDate; + +@TestScenario(name = "CARD TRANSACTIONS") +public class CardTransactions { + private String account; + private String accountStatements; + private String card; + private SmokeData smokeData; + private String lastDayOfPreviousMonth; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + account = creditData.getAccount(); + accountStatements = smokeData.getAccountWithStatements(); + card = creditData.getCard(); + lastDayOfPreviousMonth = DateUtils.getDateWithFormat(LocalDate.now().withDayOfMonth(1).minusDays(1), + DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITH_SEPARATOR); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1936") + public void MWF485GetTransactionAuthorizList(Harness harness) { + int count = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromCbl(smokeData.getPath("MWF485")) + .addField("CardAccountNumber", account) + .addField("Org", "500") + .postExtended() + .andAssertStatus(200) + .extract("Data") + .size(); + Assertions.assertTrue(count > 0, "No authorized transactions on CC"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1933") + public void MWF235GetTransactBlockListCRDNM(Harness harness) { + int count = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF235")) + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Pocet") + .andAssertPresent("Data") + .extract("Data") + .size(); + Assertions.assertTrue(count > 0, "No blocked transactions on CC"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1958") + public void MWFDB1GetTransactionMiniStatement(Harness harness) { + int count = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromAtm(smokeData.getPath("MWFDB1")) + .addField("CisloKarty", card) + .addField("DelkaPopisuTransakce", 10) + .addField("PocetTransakci", 3) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Data[0].Castka") + .extract("Data") + .size(); + Assertions.assertTrue(count > 0, "No transactions on card"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2426") + public void MWFA90TransactionGetList(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA90")) + .addField("CisloKaretnihoUctu", account) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("UcetZpusobUhrady") + .andAssertPresent("UcetKodBanky") + .andAssertPresent("UcetCisloBU") + .andAssertPresent("UcetSpecifickySymbol") + .andAssertPresent("UcetZpusubUhradyJednoduchy") + .andAssertPresent("Data"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2702") + public void MWFA89TransactionGetListOnStatement(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA89")) + .addField("CisloKaretnihoUctu", accountStatements) + .addField("DruhKarty", "1") + .addField("DatumVypisu", lastDayOfPreviousMonth) + .postExtended(); + int count = response.andAssertStatus(200) + .andAssertPresent("Pocet") + .extract("Data").size(); + Assertions.assertTrue(count > 0, "No transaction on CC"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2090") + public void MWFA80GetStatementsList(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA80")) + .addField("CisloKaretnihoUctu", accountStatements) + .addField("DruhKarty", "1") + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Pocet") + .andAssertPresent("Data[0].DatumVypisu") + .andAssertPresent("Data[0].DisponibilniZustatek") + .andAssertPresent("Data[0].DatumGenerovaniVypisu") + .andAssertPresent("Data[0].CelkovaSplatnaSplatka") + .andAssertPresent("Data[0].VyseVycerpanehoRamceKonec") + .andAssertPresent("Data[0].VyseVycerpanehoRamceZacatek") + .andAssertPresent("Data[0].SplatkaBezneObdobi"); + String pocet = response.extract("Pocet").asText(); + Assertions.assertTrue(Double.valueOf(pocet) > 0, "No statements on account " + account); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2701") + public void MWFXXX3TransactionsGetTransactions(Harness harness) { + String recCount = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFXXX3")) + .addField("ACCOUNT", account) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("NBR_TXN_RECS") + .extract("NBR_TXN_RECS").asText(); + Assertions.assertTrue(Integer.valueOf(recCount) > 0, "no transaction on account " + account); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/ClientInfo.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/ClientInfo.java new file mode 100644 index 0000000..39b92b4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/ClientInfo.java @@ -0,0 +1,87 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "ClientInfo") +public class ClientInfo { + private String cif; + private String bu; + private String rc; + private String card; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + cif = creditData.getCif(); + bu = creditData.getBu(); + rc = creditData.getRc(); + card = creditData.getCard(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2436") + public void MWFN03DealGetList(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFN03")) + .addField("CIF", cif) + .addField("ID_Osoba", rc) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].CisloUctu", bu); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1959") + public void MWFGA4GetContactAllAddress(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFGA4")) + .addField("CIF", cif) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Data") + .andAssertPresent("Data[0].Mesto") + .andAssertPresent("Data[0].PSC") + .andAssertPresent("Data[0].Ulice") + .andAssertPresent("Data[0].Zeme") + .andAssertPresent("Data[0].Posta") + .andAssertPresent("Data[0].CisloOrientacni") + .andAssertPresent("Data[0].CisloPopisne"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2430") + public void MWFGA6GetContactAllPhoneEmail(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFGA6")) + .addField("CIF", cif) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Data") + .andAssertPresent("Data[0].Email") + .andAssertPresent("Data[0].Telefon") + .andAssertPresent("Data[0].TelefonPredvolba") + .andAssertPresent("Data[0].TelefonTyp") + .andAssertPresent("Data[0].SystemID"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1966") + public void MWFIW3GetMassCardBlockPhoneNum(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromWps(smokeData.getPath("MWFIW3")) + .addField("CardNumber", card) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("MobilePhone") + .andAssertPresent("MobilePhone[0]"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/Delivery.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/Delivery.java new file mode 100644 index 0000000..b22d472 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/Delivery.java @@ -0,0 +1,42 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import cz.moneta.test.sanity.transactional.cards.firstvision.Embosser; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "CARD_DELIVERY_TRACK_STATUS") +public class Delivery { + private String mailingId; + private String account; + private String card; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + account = smokeData.getCreditData().getAccount(); + card = smokeData.getCreditData().getCard(); + mailingId = Embosser.getEmbosser(harness, "E8V7B", card).extract("VMX_ROOT.VMX_MSGOUT.USER_3").textValue(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2429") + public void MWFDN7GetCardDeliveryTrackList(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFDN7")) + .addField("MailingID", mailingId) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Data") + .andAssertFieldValue("Data[0].DuvodVraceni", "3") //ADDRESSEE_NOT_FOUND + .andAssertFieldValue("Data[0].StavDodani", "1") //ON_THE_WAY_TO_BRANCH + .andAssertFieldValue("Data[0].IDMail", mailingId) + .andAssertFieldValue("Data[0].CisloKaretnihoUctu", account) + .andAssertFieldValue("Data[0].CisloPK", card.substring(3)); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/GetClosedList.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/GetClosedList.java new file mode 100644 index 0000000..5c42131 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/GetClosedList.java @@ -0,0 +1,33 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "current-account/get-closed-list") +public class GetClosedList { + private SmokeData smokeData; + private String cif; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + cif = smokeData.getCreditData().getCif(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2781") + public void MWFY13CurrentAccountGetClosedList(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFY13")) + .addField("CIF", cif) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Pocet") + .andAssertPresent("Data"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/Limits.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/Limits.java new file mode 100644 index 0000000..353b1ba --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/Limits.java @@ -0,0 +1,43 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "DO_CARD_SERV_ADJUST_DATA") +public class Limits { + private SmokeData smokeData; + private String card; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + card = smokeData.getCreditData().getCard(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1980") + public void MWFX01GetCardDetailAtmLimit(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromAtm(smokeData.getPath("MWFX01")) + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Limit"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1952") + public void MWFBB9GetCardListClientCard(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFBB9")) + .addField("CARD_NUMBER", card) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Data[0].AUTH_LIMIT_AMOUNT_POS"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/ListCard.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/ListCard.java new file mode 100644 index 0000000..715a3b4 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/ListCard.java @@ -0,0 +1,218 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; + +import java.util.stream.StreamSupport; + +@TestScenario(name = "Card disposition") +public class ListCard { + private String contract; + private String creditCard; + private String debitCard; + private String rc; + private String name; + private String account; + private String creditCif; + private String debitCif; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + contract = creditData.getContract(); + creditCard = creditData.getCard(); + rc = creditData.getRc(); + name = creditData.getName(); + account = creditData.getAccount(); + creditCif = creditData.getCif(); + CardData debitData = smokeData.getDebitData(); + debitCif = debitData.getCif(); + debitCard = debitData.getCard(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1949") + public void MWFB62GetCardListByCurrentAcc(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFB62")) + .addField("BU", contract) + .addField("Organization", "1") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].CisloPK", creditCard.substring(3)); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1951") + public void MWFB71GetCardListByBirthNum(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFB71")) + .addField("RodneCislo", rc) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].CisloKarty", creditCard.substring(3)); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1939") + public void MWF625GetCardListByContractAll(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF625")) + .addField("CisloSmlouvy", contract) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].CisloKarty", creditCard.substring(3)) + .andAssertFieldValue("Data[0].JmenoMajitel", name.toUpperCase()) + .andAssertFieldValue("Data[0].CisloSmlouvy", contract) + .andAssertFieldValue("Data[0].RodneCisloMajitel", rc) + .andAssertFieldValue("Data[0].Organizace", "1"); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2094") + public void MWFA93GetCardListByCardAccount(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA93")) + .addField("CisloKaretnihoUctu", account) + .addField("DruhKarty", "1") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].CisloKarty", creditCard.substring(3)); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1956") + public void MWFBR6GetCardListByName(Harness harness) { + String[] nameInput = name.split(" "); + String firstName = nameInput[nameInput.length - 2]; + String lastName = nameInput[nameInput.length - 1]; + JsonNode data = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFBR6")) + .addField("Jmeno", firstName.toUpperCase()) + .addField("Prijmeni", lastName.toUpperCase()) + .addField("DruhKarty", "1") + .postExtended() + .andAssertStatus(200) + .extract("Data"); + boolean found = StreamSupport.stream(data.spliterator(), false) + .map(i -> i.path("CisloKaretnihoUctu").textValue()) + .anyMatch(a -> account.equals(a)); + + Assertions.assertTrue(found, "Account " + account + " not found for client " + name); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1942") + public void MWF987GetCardListByRelNum(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF987")) + .addField("ORGANIZATION", "1") + .addField("RELATIONSHIP_NUMBER", contract) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].ACCOUNT_NUMBER", account); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1955") + public void MWFBQ7GetCardListWithAddCards(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFBQ7")) + .addField("CisloKaretnihoUctu", account) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].CisloKarty", creditCard.substring(3)) + .andAssertFieldValue("Data[0].CisloSmlouvy", contract); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1957") + public void MWFD75GetCardListAllCards(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFD75")) + .addField("RodneCislo", rc) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].CisloKarty", creditCard); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1978") + public void MWFKDVGetAddServicesInsCCAcc(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromHub(smokeData.getPath("MWFKDV")) + .addField("ClientCif", creditCif) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("InsuranceView[0].AccountNumber", account) + .andAssertFieldValue("InsuranceView[0].InsuranceContractNumber", contract); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1937") + public void MWF494GetCardListActiveForADC(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromCbl(smokeData.getPath("MWF494")) + .addField("BirthNumber", rc) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Data[0].AccountNumber") + .andAssertFieldValue("Data[0].AccountNumber", account) + .andAssertFieldValue("Data[0].CardNumber", creditCard); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1977") + public void MWFK32_GetCardListAllByBirthNum(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFK32")) + .addField("RodneCislo", rc) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].CisloKarty", creditCard.substring(3)); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2439") + public void MWFXXX5_GetFirstVisionCardAccount(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFXXX5")) + .addField("SEARCH_KEY", contract) + .addField("ORGANIZATION", "1") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("ACCT_NBR", account); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2088") + public void MWF2D0GetDispositionsCardList(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWF2D0")) + .addField("ClientCif", debitCif) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].CardNumber", debitCard); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2427") + public void MWFCC2GetCardListContractCards(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFCC2")) + .addField("CONTRACT_NUMBER", contract) + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("Data[0].CARD_NUMBER", creditCard); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/MemoInq.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/MemoInq.java new file mode 100644 index 0000000..a622668 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/MemoInq.java @@ -0,0 +1,44 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "CARD MEMOS") +public class MemoInq { + private String account; + private String card; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + card = creditData.getCard(); + account = creditData.getAccount(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1944") + public void MWFA94AccountAactionGetList(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFA94")) + .addField("CisloKaretnihoUctu", account) + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("Data") + .andAssertPresent("Data[0].Operator") + .andAssertPresent("Data[0].Datum") + .andAssertPresent("Data[0].Cas") + .andAssertPresent("Data[0].AkcniKod") + .extract("Data"); + + } +} + diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/PctTable.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/PctTable.java new file mode 100644 index 0000000..ffb3d3f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/PctTable.java @@ -0,0 +1,50 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.data.CardData; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "CardPctTable") +public class PctTable { + private String card; + private String contract; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + CardData creditData = smokeData.getCreditData(); + card = creditData.getCard(); + contract = creditData.getContract(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1975") + public void MWFJY9GetPctTable(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJY9")) + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("PCTTabulkaNaKarte") + .extract("PCTTabulkaNaKarte").textValue(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1935") + public void MWF427GetPctTableByContrNumber(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromNas(smokeData.getPath("MWF427")) + .addField("ContractNumber", contract) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("IssuanceId") + .andAssertPresent("ResidenceId") + .andAssertPresent("PctId"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/ProductTransfer.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/ProductTransfer.java new file mode 100644 index 0000000..0f951ae --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/ProductTransfer.java @@ -0,0 +1,41 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.wso2.Wso2Utils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "ProductTransfer") +public class ProductTransfer { + private String contract; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + contract = smokeData.getCreditData().getContract(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T2432") + public void MWFJS5ProductTransferCheck(Harness harness) { + RawRestRequest.Response response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromWps(smokeData.getPath("MWFJS5")) + .addField("CisloSmlouvy", contract) + .addField("CilovyProdukt", "29010") + .postExtended(); + + Wso2Utils.validateResponse(response, + 400, + smokeData.isGw(), + "tifResponseStatus.errorDesc", + "MWFJS5: INACTIVE", + "errorMessage", + "INACTIVE"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/PromoCodes.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/PromoCodes.java new file mode 100644 index 0000000..86f961d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/PromoCodes.java @@ -0,0 +1,33 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "Card promos") +public class PromoCodes { + private String account; + private SmokeData smokeData; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + account = smokeData.getCreditData().getAccount(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1974") + public void MWFJX5GetCardPromoListByAccount(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJX5")) + .addField("ACCOUNT", account) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("NBR_OF_RECS") + .andAssertPresent("Data"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/Services.java b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/Services.java new file mode 100644 index 0000000..4aa4c4b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/sanity/transactional/cards/wso2/pilotwso2/Services.java @@ -0,0 +1,38 @@ +package cz.moneta.test.sanity.transactional.cards.wso2.pilotwso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.DateFormatPatterns; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.sanity.transactional.SmokeData; +import org.junit.jupiter.api.BeforeAll; + +@TestScenario(name = "GET_ADD_SERVICES_REFUND_FEE_CC") +public class Services { + private SmokeData smokeData; + private String card; + + @BeforeAll + public void getInfo(Harness harness) { + smokeData = SmokeData.getInstance(harness); + card = smokeData.getCreditData().getCard(); + } + + @TestCase(environments = {Environment.TST3, Environment.FVE, Environment.PPE}) + @JiraTestCase(id = "FVP-T1971") + public void MWFJA7getAddServicesRefundFeeCC(Harness harness) { + String date = DateUtils.getFormattedTodayDate(DateFormatPatterns.FIRST_VISION_DATE_FORMAT_WITH_SEPARATOR); + harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromUfo(smokeData.getPath("MWFJA7")) + .addField("DSDatumPristoupeni", date) + .addField("DSDatumZruseni", date) + .addField("KodDS", "") + .addField("CisloKarty", card) + .postExtended() + .andAssertStatus(200) + .andAssertPresent("CastkaPoplatku"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/cloans/CloansWSO2Tests.java b/tests/src/test/java/cz/moneta/test/smoke/cloans/CloansWSO2Tests.java new file mode 100644 index 0000000..94a77fc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/cloans/CloansWSO2Tests.java @@ -0,0 +1,22 @@ +package cz.moneta.test.smoke.cloans; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Smoke tests for Cloans") +public class CloansWSO2Tests { + + @TestCase(name = "Simple test for loans.cluster/client-info/001/check-existing-client") + @JiraTestCase(id = "CLOANS-T111", project = "CLoans") + public void clientInfo(Harness harness) { + harness.tasks().wso2() + .restRequest() + .prepareEmptyRequestFromCbl("/t/loans.cluster/client-info/001/check-existing-client") + .addField("BirthNumber", "6403164900") + .postExtended() + .andAssertStatus(200) + .andAssertFieldValue("AppInManFraudFlag", "0"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/chrome/LoginToIbWithMobileKey.java b/tests/src/test/java/cz/moneta/test/smoke/itp/chrome/LoginToIbWithMobileKey.java new file mode 100644 index 0000000..fb231de --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/chrome/LoginToIbWithMobileKey.java @@ -0,0 +1,25 @@ +package cz.moneta.test.smoke.itp.chrome; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@NonConcurrentTestScenario(name = "IB smoke test. Login to IB with mobile key.") +public class LoginToIbWithMobileKey { + + @TestCase(name = "Login into IB using Mobile Key", environments = {TST1, TST3, PPE}) + @JiraTestCase(id = "TEA-T19") + void loginWithMobileKeySmokeTest(Harness harness, @Key("ib.client") Credentials client) { + harness.withNewIb() + .openLoginPage() + .then(harness.tasks().newIb().loginWithUsernamePasswordAndDefaultMobKey(client.getUsername(), client.getPassword())) + .checkUrl(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/chrome/NewDomesticPaymentIb.java b/tests/src/test/java/cz/moneta/test/smoke/itp/chrome/NewDomesticPaymentIb.java new file mode 100644 index 0000000..3b0452b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/chrome/NewDomesticPaymentIb.java @@ -0,0 +1,46 @@ +package cz.moneta.test.smoke.itp.chrome; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.NonConcurrentTestScenario; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.support.auth.Credentials; +import org.junit.jupiter.api.BeforeAll; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@NonConcurrentTestScenario(name = "Verify domestic payments in IB") +public class NewDomesticPaymentIb { + private Credentials credentials; + + @BeforeAll + public void clientData(Harness harness) { + String clientBirthNumber = harness.getConfig("IB.rc.smokeuser-with-one-CZK-account"); + + credentials = harness.tasks() + .wso2() + .idm() + .getIbCredentialsByRC(clientBirthNumber); + } + + @TestCase(name = "Go to current account and make domestic payment", environments = {TST1, PPE}) + @JiraTestCase(id = "TEA-T27") + void createNewDomesticPaymentSmokeTest(Harness harness) { + harness.withNewIb() + .openLoginPage() + .then(harness.tasks().newIb().loginWithUsernamePasswordAndDefaultMobKey(credentials.getUsername(), credentials.getPassword())) + .goToNewPayment() + .fillNumberOfAccount("0233949348") + .fillBankCode("0600") + .fillAmount("1") + .fillVariableSymbol("1") + .fillConstantSymbol("308") + .fillRecipientMessage("My payment for You") + .fillMyNote("My payment") + .clickContinue() + .clickContinue() + .fillMobileKey("12341234") + .clickContinueMobileKey(); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/CallMWFAE1ToGMC.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/CallMWFAE1ToGMC.java new file mode 100644 index 0000000..1bb87ff --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/CallMWFAE1ToGMC.java @@ -0,0 +1,95 @@ +package cz.moneta.test.smoke.itp.ieandmwf; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Smoke test GMC") +public class CallMWFAE1ToGMC { + + @TestCase(name = "Test GMC system with CRT_SERVER_PRINT", environments = {TST1, TST3, PPE, EDU}) + public void testCRT_SERVER_PRINT(Harness harness) { + RawRestRequest.Response response = harness.withWso2() + .prepareRequest() + .withPath("/t/branch.cluster/IPE/CRT_SERVER_PRINT/001") + .withHeader("Authorization", harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL")) + .withHeader("activityId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("requestId", harness.tasks().wso2().restRequest().getRandomId()) + .withPayload("{" + + " \"docType\" : \"PDF\"," + + " \"rptName\" : \"vcs://Runtime/Non-UFO/Central/SmokeTest/SmokeTestGMC.wfd\", " + + " \"rptData\" : \"\\\"" + + " " + + " " + + " 200000" + + " 108" + + " 343001.67" + + " " + + " 3410.42" + + " 3410.42" + + " 20" + + " " + + " " + + " 13.2" + + " 14.02" + + " " + + " 10" + + " " + + " 29.09.2019" + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " ICA - 10371259" + + " WEB_SALES" + + " " + + " 1" + + " 0" + + " " + + " " + + " " + + " " + + " " + + " " + + " C" + + " ICA - 10371259" + + " " + + " " + + " " + + " " + + " " + + " " + + " S" + + " Mobilní klíč (nešifrovaný SMS)" + + " Jakub" + + " Testovací" + + " 12345" + + " 25.09.2019 13:10:32" + + " " + + " " + + " " + + " " + + "\\\"\"" + + "}") + .post() + .andAssertStatus(200); + + Assertions.assertNotNull(response.extract("documentURL")); + + harness.log("URL dokumentu: " + response.extract("documentURL")); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/CallMWFIQ1ToNAS.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/CallMWFIQ1ToNAS.java new file mode 100644 index 0000000..f4da1ba --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/CallMWFIQ1ToNAS.java @@ -0,0 +1,34 @@ +package cz.moneta.test.smoke.itp.ieandmwf; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Test NAS system with MWFIQ1 - formal control") +public class CallMWFIQ1ToNAS { + + @TestCase(name = "Test NAS system with MWFIQ1.", environments = {TST1, TST3, PPE, EDU}) + @JiraTestCase(id = "TEA-T21") + public void testDO_FAST_FORMAL_CHECK_002(Harness harness) { + JsonNode result = harness.tasks().wso2().restRequest() + .prepareRequestFromRefinansoHyp("/t/risk.cluster/NAS/DO_FAST_FORMAL_CHECK_002/001", + "{\"RS_DATA_IN\":[" + + "{\"FORM_ITEM\":\"firstName\", \"VALUE\":\"Štefan\"}," + + "{\"FORM_ITEM\":\"lastName\",\"VALUE\":\"Sudra\"}," + + "{\"FORM_ITEM\":\"personalId\",\"VALUE\":\"7804222470\"}," + + "{\"FORM_ITEM\":\"identityCard.number\",\"VALUE\":\"208243633\"}," + + "{\"FORM_ITEM\":\"identityCard.valid\",\"VALUE\":\"09.06.2027\"}," + + "{\"FORM_ITEM\":\"birthDate\",\"VALUE\":\"22.4.1978\"}" + + "]}") + .post() + .andAssertStatus(200) + .extract("RS_DATA_OUT"); + + Assertions.assertTrue(result.isEmpty()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/FindTaskUfoOPS.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/FindTaskUfoOPS.java new file mode 100644 index 0000000..1d0b9fd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/FindTaskUfoOPS.java @@ -0,0 +1,28 @@ +package cz.moneta.test.smoke.itp.ieandmwf; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.TypesOfViewFilter; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Find first task in UFO Operations.") +public class FindTaskUfoOPS { + + @TestCase(name = "Find Ufo Operations Task.", environments = {TST1, PPE, TST3, EDU, FVE}) + @JiraTestCase(id = "TEA-T22") + void findUfoOperationsTasks(Harness harness, @Key("ufo-banka-banker") Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().operations().login().withCredentials(credentials)) + .clickTasks() + .selectTypeOfView(TypesOfViewFilter.TASK_SEARCH) + .clickFind() + .clickToFirstTask() + .checkTaskIdPresence(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LoginToUfoCB.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LoginToUfoCB.java new file mode 100644 index 0000000..b10ce6f --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LoginToUfoCB.java @@ -0,0 +1,23 @@ +package cz.moneta.test.smoke.itp.ieandmwf; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Test login to UFO CB application.") +public class LoginToUfoCB { + + @TestCase(name = "Check login to UFO CB", environments = {TST1, TST3, PPE, FVE}) + @JiraTestCase(id = "TEA-T23") + public void checkLoginUfoCB(Harness harness, @Key("ufocb-ctenar") Credentials credentials) { + harness.withUfo() + .openLoginPage() + .typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onUfoCbPage(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LoginToUfoOPS.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LoginToUfoOPS.java new file mode 100644 index 0000000..4c867ee --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LoginToUfoOPS.java @@ -0,0 +1,28 @@ +package cz.moneta.test.smoke.itp.ieandmwf; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.FVE; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; +import static cz.moneta.test.harness.annotations.Environment.TST3; + +@TestScenario(name = "Test login to UFO Operations application.") +public class LoginToUfoOPS { + @TestCase(name = "Test login to UFO OPS", environments = {TST1, TST3, PPE, EDU, FVE}) + @JiraTestCase(id = "TEA-T24") + public void checkLoginToUfoOPS(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().operations().login().withCredentials(credentials)) + .checkSearchInputInMainPage(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LoginToUfoSelector.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LoginToUfoSelector.java new file mode 100644 index 0000000..2c362d9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LoginToUfoSelector.java @@ -0,0 +1,24 @@ +package cz.moneta.test.smoke.itp.ieandmwf; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Login to UFO selector.") +public class LoginToUfoSelector { + + @TestCase(name = "Login to UFO selector", environments = {TST1, TST3, PPE, EDU, FVE}) + @JiraTestCase(id = "TEA-T25") + public void loginToUfoSelector(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LookupClientByRC.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LookupClientByRC.java new file mode 100644 index 0000000..9d99b9b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LookupClientByRC.java @@ -0,0 +1,31 @@ +package cz.moneta.test.smoke.itp.ieandmwf; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Teller must be able to find client by RC") +public class LookupClientByRC { + + @TestCase(name = "Bank teller is able to login and lookup client by RC", environments = {TST1, TST3, PPE, EDU, FVE}) + @JiraTestCase(id = "TEA-T26") + public void tc_bank_teller_is_able_to_find_client_by_RC(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + + String rcOfExistingClient = harness.getConfig("channels.branch.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().banka().login().withCredentials(credentials)) + .closeSearchedHistoryIfVisible() + .fillSearchTerm(rcOfExistingClient) + .clickSearchByRc() + .onClientDetailPage() + .verifyThatClientHasSomeActiveProducts(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LookupClientByRcUfoCb.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LookupClientByRcUfoCb.java new file mode 100644 index 0000000..6f3f987 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LookupClientByRcUfoCb.java @@ -0,0 +1,30 @@ +package cz.moneta.test.smoke.itp.ieandmwf; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "UFO CB teller must be able to find client by RC") +public class LookupClientByRcUfoCb { + + @TestCase(name = "UFO CB teller is able to login and lookup client by RC", environments = {TST1, PPE}) + @JiraTestCase(id = "TEA-T30") + void lookupClientByRcUfoCbSmokeTest(Harness harness) { + String rcOfExistingClient = harness.getConfig("channels.branch.rc-of-existing-client"); + CommercialTasks commercialTasks = harness.tasks().ufo().cb(); + + harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .clickSearchLink() + .pickRc() + .typeDetailForSearch(rcOfExistingClient) + .clickSearch() + .checkRc(rcOfExistingClient); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LookupClientByRcUfoOps.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LookupClientByRcUfoOps.java new file mode 100644 index 0000000..ebc1344 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieandmwf/LookupClientByRcUfoOps.java @@ -0,0 +1,34 @@ +package cz.moneta.test.smoke.itp.ieandmwf; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.EDU; +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "UFO OPS teller must be able to find client by RC") +public class LookupClientByRcUfoOps { + + @TestCase(name = "UFO OPS teller is able to login and lookup client by RC", environments = {TST1, PPE, EDU}) + @JiraTestCase(id = "TEA-T29") + void lookupClientByRcUfoOpsSmokeTest(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String rcOfExistingClient = harness.getConfig("channels.branch.rc-of-existing-client"); + OperationsTasks operationsTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(rcOfExistingClient) + .clickSearchClientWithHover() + .onClientDetailsPage() + .checkClientRc(rcOfExistingClient); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/FindTaskUfoTomcatOps.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/FindTaskUfoTomcatOps.java new file mode 100644 index 0000000..9c47804 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/FindTaskUfoTomcatOps.java @@ -0,0 +1,26 @@ +package cz.moneta.test.smoke.itp.ieufotomcat; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.operations.ufoOperations.taskslist.TypesOfViewFilter; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Find first task in UFO Operations on Tomcat.") +public class FindTaskUfoTomcatOps { + + @TestCase(name = "Find Ufo Operations on Tomcat Task.", environments = {TST1, PPE, TST3, EDU, FVE}) + void findUfoOperationsTomcatTasks(Harness harness, @Key("ufo-banka-banker") Credentials credentials) { + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().operations().login().withCredentials(credentials)) + .clickTasks() + .selectTypeOfView(TypesOfViewFilter.TASK_SEARCH) + .clickFind() + .clickToFirstTask() + .checkTaskIdPresence(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LoginToUfoTomcatCb.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LoginToUfoTomcatCb.java new file mode 100644 index 0000000..0480661 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LoginToUfoTomcatCb.java @@ -0,0 +1,21 @@ +package cz.moneta.test.smoke.itp.ieufotomcat; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Test login to UFO CB on Tomcat application.") +public class LoginToUfoTomcatCb { + + @TestCase(name = "Check login to UFO CB on Tomcat", environments = {TST1, TST3, PPE, FVE}) + public void checkLoginUfoCbTomcat(Harness harness, @Key("ufocb-ctenar") Credentials credentials) { + harness.withUfo() + .openLoginPage() + .typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onUfoCbPage(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LoginToUfoTomcatOps.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LoginToUfoTomcatOps.java new file mode 100644 index 0000000..4687471 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LoginToUfoTomcatOps.java @@ -0,0 +1,23 @@ +package cz.moneta.test.smoke.itp.ieufotomcat; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Test login to UFO Operations on Tomcat application.") +public class LoginToUfoTomcatOps { + + @TestCase(name = "Test login to UFO OPS on Tomcat", environments = {TST1, TST3, PPE, EDU, FVE}) + public void checkLoginToUfoOpsTomcat(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().operations().login().withCredentials(credentials)) + .checkSearchInputInMainPage(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LoginToUfoTomcatSelector.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LoginToUfoTomcatSelector.java new file mode 100644 index 0000000..a4266ef --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LoginToUfoTomcatSelector.java @@ -0,0 +1,22 @@ +package cz.moneta.test.smoke.itp.ieufotomcat; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "Login to UFO selector on Tomcat.") +public class LoginToUfoTomcatSelector { + + @TestCase(name = "Login to UFO selector on Tomcat", environments = {TST1, TST3, PPE, EDU, FVE}) + public void loginToUfoTomcatSelector(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + harness.withUfo() + .openLoginPage() + .typeUserNameAndPasswordAndClickLogin(credentials.getUsername(), credentials.getPassword()) + .onApplicationSelectPage(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LookupClientByRcUfoTomcatBanka.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LookupClientByRcUfoTomcatBanka.java new file mode 100644 index 0000000..4f6cae6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LookupClientByRcUfoTomcatBanka.java @@ -0,0 +1,28 @@ +package cz.moneta.test.smoke.itp.ieufotomcat; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo; +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "UFO Bank on Tomcat teller must be able to find client by RC on UFO Tomcat") +public class LookupClientByRcUfoTomcatBanka { + + @TestCase(name = "UFO Bank on Tomcat teller is able to login and lookup client by RC on UFO Tomcat", environments = {TST1, TST3, PPE, EDU, FVE}) + public void tcUfoBankTomcatTellerIsAbleToFindClientByRc(Harness harness, @Key(ufo.banka.banker) Credentials credentials) { + + String rcOfExistingClient = harness.getConfig("channels.branch.rc-of-existing-client"); + + harness.withUfo() + .openLoginPage() + .then(harness.tasks().ufo().banka().login().withCredentials(credentials)) + .fillSearchTerm(rcOfExistingClient) + .clickSearchByRc() + .onClientDetailPage() + .verifyThatClientHasSomeActiveProducts(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LookupClientByRcUfoTomcatCb.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LookupClientByRcUfoTomcatCb.java new file mode 100644 index 0000000..f47cc3d --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LookupClientByRcUfoTomcatCb.java @@ -0,0 +1,28 @@ +package cz.moneta.test.smoke.itp.ieufotomcat; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.task.ufo.cb.CommercialTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "UFO CB on Tomcat teller must be able to find client by RC") +public class LookupClientByRcUfoTomcatCb { + + @TestCase(name = "UFO CB on Tomcat teller is able to login and lookup client by RC", environments = {TST1, PPE}) + void lookupClientByRcUfoCbTomcatSmokeTest(Harness harness) { + String rcOfExistingClient = harness.getConfig("channels.branch.rc-of-existing-client"); + CommercialTasks commercialTasks = harness.tasks().ufo().cb(); + + harness.withUfo() + .openLoginPage() + .then(commercialTasks.loginAsCbBanker()) + .clickSearchLink() + .pickRc() + .typeDetailForSearch(rcOfExistingClient) + .clickSearch() + .checkRc(rcOfExistingClient); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LookupClientByRcUfoTomcatOps.java b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LookupClientByRcUfoTomcatOps.java new file mode 100644 index 0000000..735b7bf --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/itp/ieufotomcat/LookupClientByRcUfoTomcatOps.java @@ -0,0 +1,30 @@ +package cz.moneta.test.smoke.itp.ieufotomcat; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.task.ufo.operations.OperationsTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import static cz.moneta.test.harness.annotations.Environment.*; + +@TestScenario(name = "UFO OPS on Tomcat teller must be able to find client by RC") +public class LookupClientByRcUfoTomcatOps { + + @TestCase(name = "UFO OPS on Tomcat teller is able to login and lookup client by RC", environments = {TST1, PPE, EDU}) + void lookupClientByRcUfoOpsTomcatSmokeTest(Harness harness, @Key(Keys.ufo.banka.banker) Credentials credentials) { + String rcOfExistingClient = harness.getConfig("channels.branch.rc-of-existing-client"); + OperationsTasks operationsTasks = harness.tasks().ufo().operations(); + + harness.withUfo() + .openLoginPage() + .then(operationsTasks.login().withCredentials(credentials)) + .clickRcRadio() + .fillSearchInput(rcOfExistingClient) + .clickSearchClient() + .onClientDetailsPage() + .checkClientRc(rcOfExistingClient); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/salesforce/SearchAccount.java b/tests/src/test/java/cz/moneta/test/smoke/salesforce/SearchAccount.java new file mode 100644 index 0000000..cc29baf --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/salesforce/SearchAccount.java @@ -0,0 +1,25 @@ +package cz.moneta.test.smoke.salesforce; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.salesforce.tasks.SalesForceTasks; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Login to SalesForce and search account") +public class SearchAccount { + + @TestCase(name = "Login to SalesForce and search account", environments = {Environment.TST1, Environment.PPE}) + @JiraTestCase(id = "SC-T752") + public void loginAndSearchAccount(Harness harness) { + String accountToSearch = harness.getConfig("salesforce.test.account"); + SalesForceTasks tasks = harness.tasks().salesForce(); + + harness.withSalesForce() + .openLoginPage() + .then(tasks.loginAsBanker()) + .then(tasks.openAccountDetail(accountToSearch)) + .logoutUser(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/smoke/sb/SmartBankingSmokeTests.java b/tests/src/test/java/cz/moneta/test/smoke/sb/SmartBankingSmokeTests.java new file mode 100644 index 0000000..861b6f5 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/smoke/sb/SmartBankingSmokeTests.java @@ -0,0 +1,82 @@ +package cz.moneta.test.smoke.sb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ib.settings.smartbanka.DeviceRegistrationWizard; +import cz.moneta.test.dsl.mobile.smartbanking.activation.FinishActivationView; +import cz.moneta.test.dsl.mobile.smartbanking.landing.SmartBankingLoginKeyboard; +import cz.moneta.test.dsl.util.data.sb.FourPartToken; +import cz.moneta.test.dsl.util.task.ib.IbTasks; +import cz.moneta.test.harness.annotations.JiraTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenarioWithOrder; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Order; + +import static cz.moneta.test.dsl.util.task.sb.SbTasks.PIN; + +@TestScenarioWithOrder(name = "Smart banking smoke tests") +public class SmartBankingSmokeTests { + + @Order(1) + @TestCase(name = "Install and open SB test") + public void openSB(Harness harness) { + harness.withSB() + .onActivationPage(); + } + + @Order(2) + @TestCase(name = "Activate new user in IB") + @JiraTestCase(id = "TEA-T31") + public void registrationSmartBankingUser(Harness harness, @Key("client.with.ib") Credentials credentials) { + SmartBankingLoginKeyboard[] pin = {SmartBankingLoginKeyboard.KEY_1, SmartBankingLoginKeyboard.KEY_2, SmartBankingLoginKeyboard.KEY_3, SmartBankingLoginKeyboard.KEY_4}; + + IbTasks ibTasks = harness.tasks().ib(); + String mobileKey = "12341234"; + + DeviceRegistrationWizard currentActivation = + harness.withIB() + .openLoginPage() + .then(ibTasks.loginWith(credentials, mobileKey)) + .goToSettings() + .selectSmartBanka() + .startRegistration(harness, mobileKey); + + FourPartToken token = + harness.data() + .fourPartToken(currentActivation.getDeviceRegistrationCode()); + + FinishActivationView finishActivationOnMobile = + harness.withSB() + .onActivationPage() + .activateSmartBanking() + .swipeToSecondActivationView() + .swipeToThirdActivationView() + .swipeToLastActivationView() + .chooseManualCodeEntry() + .typePartsOfCode(token.first(), token.second(), token.third(), token.fourth()) + .tapOnContinueButton() + .enterPinUsingKeyboard(harness, pin) + .onConfirmView() + .enterPinUsingKeyboard(harness, pin) + .onFinishActivationView(); + + currentActivation + .afterMobileActivation() + .typeSmsCode(mobileKey) + .validateMobileKey() + .onSuccessRegisteredMobileDevice(); + + finishActivationOnMobile.tapOnCompleteActivationButton() + .startUsingSmartBaking(); + } + + @Order(3) + @TestCase(name = "Login to SB") + @JiraTestCase(id = "TEA-T28") + public void mobileLogin(Harness harness) { + harness.withSB() + .onLandingPage() + .typePinAndContinue(PIN); + } +} diff --git a/tests/src/test/java/cz/moneta/test/system/aresapi/AresApiTest.java b/tests/src/test/java/cz/moneta/test/system/aresapi/AresApiTest.java new file mode 100644 index 0000000..7a21ed0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/aresapi/AresApiTest.java @@ -0,0 +1,26 @@ +package cz.moneta.test.system.aresapi; + +import com.fasterxml.jackson.databind.JsonNode; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario +public class AresApiTest { + + @TestCase(name = "Call POST Ares Api and extract random ico from response") + public void testAresPostApi(Harness harness) { + JsonNode jsonNode = harness.withAresApi() + .prepareRequest() + .withPath("ekonomicke-subjekty/vyhledat") + .withHeader("Content-Type", "application/json") + .withPayloadFromFile("regression/aresapi/aresSearch.json") + .post() + .andAssertStatus(200) + .extract("ekonomickeSubjekty"); + + int randomIndex = (int) (Math.random() * jsonNode.size()); + String randIco = jsonNode.get(randomIndex).get("ico").toPrettyString().replaceAll("\"", ""); + harness.log("Random ico: " + randIco); + } +} diff --git a/tests/src/test/java/cz/moneta/test/system/cebia/VehicleIdentification.java b/tests/src/test/java/cz/moneta/test/system/cebia/VehicleIdentification.java new file mode 100644 index 0000000..20c7f13 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/cebia/VehicleIdentification.java @@ -0,0 +1,20 @@ +package cz.moneta.test.system.cebia; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.cebia.schemas.iva.service.VehicleIdentification1Response; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "verifies a vehicle against Cebia") +public class VehicleIdentification { + + @TestCase(name = "verifies a vehicle against Cebia") + public void validateVehicle(Harness harness) { + VehicleIdentification1Response response = harness.tasks() + .cebia() + .verifyVehicle("UU1KSDAFH39569658"); + + Assertions.assertNotNull(response); + } +} diff --git a/tests/src/test/java/cz/moneta/test/system/greenscreen/CheckCardDetails.java b/tests/src/test/java/cz/moneta/test/system/greenscreen/CheckCardDetails.java new file mode 100644 index 0000000..97d9b7a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/greenscreen/CheckCardDetails.java @@ -0,0 +1,38 @@ +package cz.moneta.test.system.greenscreen; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "connects to green screen checks card details") +public class CheckCardDetails { + + @TestCase(name = "connects to green screen checks card details") + public void checkCardDetails(Harness harness) { + harness.withGreenScreen() + .logIn() + .openCustomerSearch() + .searchByIdentificationNumber("8106179257") + .checkCustomerNumber("0008611000200026460") + .openCustomerDetail() + .checkCardAccountNumber("0008614700200000624") + .checkCardNumber("0004243367070285269") + .checkOrgValueForAccountAndCard("861", "861") + .openAccountDetail() + .checkName("ING. OLIVER SEVEN") + .checkAddress("NA KLEOVCE 2162/2", "PRAHA") + .checkCardAccountNumber("0008614700200000624") + .checkCardNumber("0004243367070285269") + .checkCustomerNumber("0008611000200026460") + .checkCardLogo("470") + .checkEmblem("47002") + .switchToNextAccountDetailScreen() + .checkRetailAmount("00000000002000000") + .checkAtmAmount("00000000002000000") + .checkOtcAmount("00000000002000000") + .switchToUserFieldsScreen() + .checkBirthNumber("8106179257") + .checkPinMobileNumber("420603179257") + .checkPassword("375534"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/system/harness/HarnessTest.java b/tests/src/test/java/cz/moneta/test/system/harness/HarnessTest.java new file mode 100644 index 0000000..da072a6 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/harness/HarnessTest.java @@ -0,0 +1,35 @@ +package cz.moneta.test.system.harness; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.testautomationpage.TestAutomationPageHome; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "Open Harness test page") +public class HarnessTest { + + private static final String PAGE_TITLE = "Hello Harness"; + + @TestCase(name = "Check most used annotations on Harness test page") + public void openTestPage(Harness harness) { + harness.withTestAutomationPage() + .openHomePage() + .selectCombobox("Combobox 3") + .typeIntoTextfield("test") + .checkCheckbox() + .checkElementPresent() + .checkElementContent(PAGE_TITLE) + .executeJavaScript() + .acceptAlert() + .executeJavaScript() + .dismissAlert() + .log() + .storeElementContent() + .customAction() + .keyPressTab() + .clickSubmitButton(); + + Assertions.assertEquals(PAGE_TITLE, harness.get(TestAutomationPageHome.STORE_KEY)); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/system/hyposdb/TestDatabaseConnection.java b/tests/src/test/java/cz/moneta/test/system/hyposdb/TestDatabaseConnection.java new file mode 100644 index 0000000..fcd0bc0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/hyposdb/TestDatabaseConnection.java @@ -0,0 +1,24 @@ +package cz.moneta.test.system.hyposdb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.hypos.hyposdb.HyposDbEndpoint; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "Test Hypos DB connection") +public class TestDatabaseConnection { + + @TestCase(name = "Get SQL Server version", environments = {Environment.TST1, Environment.PPE, Environment.EDU, Environment.FVE}) + public void getSqlServerVersion(Harness harness){ + String sqlSelect = "SELECT @@VERSION"; + Result sqlResult = harness.getEndpoint(HyposDbEndpoint.class).executeSql(sqlSelect); + harness.log("SQL server version: " + sqlResult.formatXML()); + + Assertions.assertTrue(sqlResult.format().contains("Microsoft SQL Server")); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/system/ihub/CheckBirthNumber.java b/tests/src/test/java/cz/moneta/test/system/ihub/CheckBirthNumber.java new file mode 100644 index 0000000..c6add84 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/ihub/CheckBirthNumber.java @@ -0,0 +1,25 @@ +package cz.moneta.test.system.ihub; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.mwf.MWF3A3; +import cz.moneta.test.dsl.mwf.MWF3A3Response; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +@Deprecated +@TestScenario(name = "Checks if birth number is already in use by the systems") +public class CheckBirthNumber { + + @Deprecated + @TestCase(name = "Checks if birth number is already in use by the systems") + public void checkBirthNumber(Harness harness) { + MWF3A3Response response = harness.withIHub() + .prepareRequestAsCbl(MWF3A3.class) + .birthNumber("7910182929") + .send(); + + Assertions.assertEquals("1", response.allowed()); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/system/ihub/CreateCIF.java b/tests/src/test/java/cz/moneta/test/system/ihub/CreateCIF.java new file mode 100644 index 0000000..fce8aeb --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/ihub/CreateCIF.java @@ -0,0 +1,77 @@ +package cz.moneta.test.system.ihub; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.mwf.createcustomer.MWF109; +import cz.moneta.test.dsl.mwf.createcustomer.MWF109Response; +import cz.moneta.test.dsl.ufo.mwf.MWFHK8; +import cz.moneta.test.dsl.util.DateUtils; +import cz.moneta.test.dsl.util.TestUtils; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +@Deprecated +@TestScenario(name = "Checks if birth number is already in use by the systems") +public class CreateCIF { + + @Deprecated + @TestCase(name = "Checks if birth number is already in use by the systems") + public void verifyInOds(Harness harness) { + harness.withIHub() + .prepareRequestAsUfo(MWFHK8.class) + .Rc("9308106489")//8111117399 / 8703234815 + .UcelDotazu("9") + .BusinessRequestor("GEMCB") + .AdresyOutputSysIDs("ICB|VIS|HYP|CMD") + .IDZdrojovehoSystemuOUTPUT("ICB0") + .MaximalniPocetZaznamu(50L) + .PriznakBankovniTajemstvi("1") + .PriznakRozsirenyVystup("1") + .TypyOsobyFiltr("1|2|5") + .AdresyOutputAktualniFlag("1") + .send(); + + NonClient client = harness.data().newNonClient(); + + MWF109Response resp = harness.withIHub() + .prepareRequestAsUfo(MWF109.class) + .RodneCislo(client.birthNumber()) + .DatumNarozeni(TestUtils.dateFromString(client.birthDate(), "d.M.yyyy")) //YYYY-MM-DD + .DatumExpiraceKontaktnichUdaju(DateUtils.getRawTodayDateIncrementedByDays(730)) + .PlatnostOPdo(client.idCardExpiredRaw()) + .DatumPotvrzeniPrijmu(client.dateOfIssueConfirmationOfReceipt()) + .DatumZalozeniCIFu(TestUtils.getTodayAsDate()) + .SerieACisloOP(client.idCardNumber()) + .OPStatVydal("52") + .PrvniJmeno(client.firstName()) + .Prijmeni(client.lastName()) + .Co(client.residencyAddress().getOrientationNumber()) + .Cp(client.residencyAddress().getDescriptiveNumber()) + .KlasifikaceKlienta("0") + .KodObchodnihoMista("86007040") + .MistoNarozeni(client.placeOfBirth()) + .Psc(client.residencyAddress().getZip()) + .NazevZamestnavatele(client.employer().getName()) + .PlatnostKontaktnichUdaju("1") + .CistyMesicniPrijem(30000d) + .PocetVyzivovanychDeti(0L) + .TelefonDomu(client.fixPhoneNumberHome()) + .TelefonZamestnani(client.employer().getPhoneNumber()) + .NejvyssiDosazeneVzdelani("4") + .EkonomickySektor("44") + .DruhPrijmuKlienta("1") + .DruhBydleni("1") + .PlatnostKontaktnichUdaju("1") + .SocialneEkonomickaSkupina("1") + .ZkraceneJmeno("ZkrJm") + .TypKlienta("1") + .Zeme("52") + .ZemeNarozeni("52") + .StatniPrislusnost("52") + .send(); + + Assertions.assertEquals(10, resp.Cif().length()); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/system/ilodsserver/IlodsServerTest.java b/tests/src/test/java/cz/moneta/test/system/ilodsserver/IlodsServerTest.java new file mode 100644 index 0000000..cb651d9 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/ilodsserver/IlodsServerTest.java @@ -0,0 +1,43 @@ +package cz.moneta.test.system.ilodsserver; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlApplTp; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlBusProdClass; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlSubType; +import itSodTesting.sharedResources.objects.ilods.enumerations.IlType; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "Check Ilods Server functions") +public class IlodsServerTest { + + @TestCase(name = "Test Ilods Server availability") + public void callTestAction(Harness harness) { + String response = harness.withIlods().sendTestRequest(); + Assertions.assertEquals("OK", response); + } + + @TestCase(name = "Test set score function") + public void testSetScore(Harness harness) { + harness.withIlods().setScore("AFX01", "451224666", null); + } + + @TestCase(name = "Test set turnovers function") + public void testSetTurnovers(Harness harness) { + String result = harness.withIlods().setTurnovers("207782484", "3000046363", 50000); + Assertions.assertEquals("0", result); + } + + @TestCase(name = "Test set infolimit function") + public void testSetInfolimit(Harness harness) { + String result = harness.withIlods().setInfolimit(IlBusProdClass.KK, IlType.NEZAVAZNY_A, IlSubType.XIL_ON_PROD, 50000, IlApplTp.Sc, "451224666", null); + Assertions.assertEquals("0", result); + } + + @TestCase(name = "Test set segment function") + public void testSetSegment(Harness harness) { + String result = harness.withIlods().setSegment("AS_FAM", "EXIST", "451224666", null); + Assertions.assertEquals("0", result); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/system/mvcr/CheckIdCard.java b/tests/src/test/java/cz/moneta/test/system/mvcr/CheckIdCard.java new file mode 100644 index 0000000..0d65a65 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/mvcr/CheckIdCard.java @@ -0,0 +1,23 @@ +package cz.moneta.test.system.mvcr; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "check ID card validity") +public class CheckIdCard { + + @TestCase(name = "check valid ID card") + public void check_valid_id_card(Harness harness) { + boolean isInvalid = harness.tasks().mvcr().checkIdCardValidity("123456123"); + Assertions.assertTrue(isInvalid); + } + + @TestCase(name = "check invalid ID card") + public void check_invalid_id_card(Harness harness) { + boolean isInvalid = harness.tasks().mvcr().checkIdCardValidity("206177232"); + Assertions.assertFalse(isInvalid); + } +} + diff --git a/tests/src/test/java/cz/moneta/test/system/nasdb/InsertUser.java b/tests/src/test/java/cz/moneta/test/system/nasdb/InsertUser.java new file mode 100644 index 0000000..40d906b --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/nasdb/InsertUser.java @@ -0,0 +1,31 @@ +package cz.moneta.test.system.nasdb; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.tasks.BankaTasks; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.AuthSupport; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "creates a client and promotes them to an internal user respectively") +public class InsertUser { + + @TestCase(name = "creates a client and promotes them to an internal user respectively") + public void insert_user(Harness harness) { + NonClient person = harness.data().newNonClient(); + BankaTasks withBanka = harness.tasks().ufo().banka(); + String bankerUsername = AuthSupport.getCredentials(banker, harness).getUsername(); + + harness.withUfo() + .openLoginPage() + .then(withBanka.login().asBanker()) + .then(withBanka.login().turnSignpadOff()) + .then(withBanka.newClient().create(person, bankerUsername)); + + harness.tasks().nasDb().insertUser(person); + + //TODO assert SSO created + } +} diff --git a/tests/src/test/java/cz/moneta/test/system/ods/FindIco.java b/tests/src/test/java/cz/moneta/test/system/ods/FindIco.java new file mode 100644 index 0000000..610b525 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/ods/FindIco.java @@ -0,0 +1,18 @@ +package cz.moneta.test.system.ods; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.data.GeneratorType; + +@TestScenario(name = "Fetches ICO information ODS") +public class FindIco { + + @TestCase(name = "Fetches ICO information ODS") + public void find_ico(Harness harness) { + + String ico = harness.generate(GeneratorType.ICO); + + System.out.println("found unique ICO: " + ico); + } +} diff --git a/tests/src/test/java/cz/moneta/test/system/ods/OdsCardInfo.java b/tests/src/test/java/cz/moneta/test/system/ods/OdsCardInfo.java new file mode 100644 index 0000000..d9af9eb --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/ods/OdsCardInfo.java @@ -0,0 +1,50 @@ +package cz.moneta.test.system.ods; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.jooq.Record; +import org.jooq.Result; + +@TestScenario(name = "Fetches card information from ODS") +public class OdsCardInfo { + + @TestCase(name = "Fetches card information from ODS") + public void get_card_info(Harness harness) { + + Result cardInfo = harness.tasks().ods() + .getCardInfo("0001022637"); + + harness.log("INST_PT_KEY: {}", cardInfo.getValue(0, "INST_PT_KEY")); + harness.log("ACC_NUM: {}", cardInfo.getValue(0, "ACC_NUM")); + harness.log("PRODUKT: {}", cardInfo.getValue(0, "PRODUKT")); + harness.log("POS_ID: {}", cardInfo.getValue(0, "POS_ID")); + harness.log("CONTR_BLOCK_CODE_1: {}", cardInfo.getValue(0, "CONTR_BLOCK_CODE_1")); + harness.log("CONTR_BLOCK_CODE_2: {}", cardInfo.getValue(0, "CONTR_BLOCK_CODE_2")); + harness.log("EMP_FLAG: {}", cardInfo.getValue(0, "EMP_FLAG")); + harness.log("CARD_NUM: {}", cardInfo.getValue(0, "CARD_NUM")); + harness.log("CARD_VARIANT: {}", cardInfo.getValue(0, "CARD_VARIANT")); + harness.log("CARD_COBRAND: {}", cardInfo.getValue(0, "CARD_COBRAND")); + harness.log("CARD_BRAND: {}", cardInfo.getValue(0, "CARD_BRAND")); + harness.log("DESIGN_CARD_TP_ID: {}", cardInfo.getValue(0, "DESIGN_CARD_TP_ID")); + harness.log("AUTH_LMT_AMT_ATM: {}", cardInfo.getValue(0, "AUTH_LMT_AMT_ATM")); + harness.log("AUTH_LMT_AMT_POS: {}", cardInfo.getValue(0, "AUTH_LMT_AMT_POS")); + harness.log("EXPR_DATE: {}", cardInfo.getValue(0, "EXPR_DATE")); + harness.log("LMT_TYPE: {}", cardInfo.getValue(0, "LMT_TYPE")); + harness.log("CARD_BLOCK_CODE: {}", cardInfo.getValue(0, "CARD_BLOCK_CODE")); + harness.log("CARD_BLOCK_DATE: {}", cardInfo.getValue(0, "CARD_BLOCK_DATE")); + harness.log("CARD_TECHNOLOGY: {}", cardInfo.getValue(0, "CARD_TECHNOLOGY")); + harness.log("AUTH_LMT_AMT_OTC: {}", cardInfo.getValue(0, "AUTH_LMT_AMT_OTC")); + harness.log("FACILITY_LMT_AMT: {}", cardInfo.getValue(0, "FACILITY_LMT_AMT")); + harness.log("SYS_PROD_TP_ID: {}", cardInfo.getValue(0, "SYS_PROD_TP_ID")); + harness.log("CONTR_NUM: {}", cardInfo.getValue(0, "CONTR_NUM")); + harness.log("SIGN_DATE: {}", cardInfo.getValue(0, "SIGN_DATE")); + harness.log("CARD_PCT_ID: {}", cardInfo.getValue(0, "CARD_PCT_ID")); + harness.log("VAR_PROD_TP_ID: {}", cardInfo.getValue(0, "VAR_PROD_TP_ID")); + harness.log("SUPLEMENTARY_CARD_FLAG: {}", cardInfo.getValue(0, "SUPLEMENTARY_CARD_FLAG")); + harness.log("CURR_ID: {}", cardInfo.getValue(0, "CURR_ID")); + harness.log("ACC_STAT: {}", cardInfo.getValue(0, "ACC_STAT")); + + + } +} diff --git a/tests/src/test/java/cz/moneta/test/system/openapi/OpenApiTest.java b/tests/src/test/java/cz/moneta/test/system/openapi/OpenApiTest.java new file mode 100644 index 0000000..6b71c54 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/openapi/OpenApiTest.java @@ -0,0 +1,30 @@ +package cz.moneta.test.system.openapi; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "Test OpenApi") +public class OpenApiTest { + + @TestCase(name = "Check OpenApi connection") + public void callOpenApi(Harness harness) { + harness.withOpenApi() + .prepareRequest() + .withPath("/hello") + .get() + .andAssertFieldValue("status", "OK"); + } + + @TestCase(name = "Rest download base64 file preview") + public void callOpenApiAndDownloadReceipt(Harness harness) { + harness.withOpenApi() + .prepareUnsecuredRequest() + .withPath("/account/transaction/receipt") + .withHeader("dispo-context-id", "10062336") + .withPayload("{\"transactionId\":\"0206971718:20250917:00013:250917C01846101\"}") + .post() + .andAssertFieldValue("status", "OK") + .saveBase64FieldAsFile("responseObject.base64PdfReceipt"); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/system/package-info.java b/tests/src/test/java/cz/moneta/test/system/package-info.java new file mode 100644 index 0000000..a8f81cf --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/package-info.java @@ -0,0 +1,8 @@ +/** + * System tests are (typically) out of process tests limited to one particular system/application. The goal of system + * test is to ensure that SUT inputs trigger behaviour that is needed. They can be black box (controlling only outputs) + * or grey/white box (validating internal state of the system). + * + * More about types of tests: https://monetamoneybank.atlassian.net/wiki/spaces/CONT/pages/824770608/Test+Repository+Structure + */ +package cz.moneta.test.system; \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/system/wso2/CheckBirthNumber.java b/tests/src/test/java/cz/moneta/test/system/wso2/CheckBirthNumber.java new file mode 100644 index 0000000..e789102 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/wso2/CheckBirthNumber.java @@ -0,0 +1,24 @@ +package cz.moneta.test.system.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "Checks if birth number is already in use by the systems") +public class CheckBirthNumber { + + @TestCase(name = "Checks if birth number is already in use by the systems") + public void checkBirthNumber(Harness harness) { + String response = harness.tasks().wso2().restRequest() + .prepareEmptyRequestFromCbl("/t/mwf.legacy/HUB/MWF3A3/001") + .addField("BirthNumber", "7910182929") + .post() + .andAssertStatus(200) + .extract("Allowed") + .asText(); + + Assertions.assertEquals("1", response); + } + +} diff --git a/tests/src/test/java/cz/moneta/test/system/wso2/ClientSecretTest.java b/tests/src/test/java/cz/moneta/test/system/wso2/ClientSecretTest.java new file mode 100644 index 0000000..2972f77 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/wso2/ClientSecretTest.java @@ -0,0 +1,18 @@ +package cz.moneta.test.system.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.wso2.Wso2GatewayEndpoint; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "retrieve client secret from vault") +public class ClientSecretTest { + + @TestCase(name = "retrieve client secret from vault", environments = { Environment.TST1, Environment.PPE } ) + public void getClientSecret(Harness harness) { + String secret = harness.getEndpoint(Wso2GatewayEndpoint.class).getClientSecret("CID_UFO"); + Assertions.assertNotNull(secret); + } +} diff --git a/tests/src/test/java/cz/moneta/test/system/wso2/CreateCIF.java b/tests/src/test/java/cz/moneta/test/system/wso2/CreateCIF.java new file mode 100644 index 0000000..424bb79 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/wso2/CreateCIF.java @@ -0,0 +1,26 @@ +package cz.moneta.test.system.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "Checks if birth number is already in use by the systems") +public class CreateCIF { + + @TestCase(name = "Checks if birth number is already in use by the systems") + public void verifyInOds(Harness harness) { + boolean exists = harness.tasks().wso2().client().existInOds("9308106489"); + + Assertions.assertFalse(exists); + } + + @TestCase(name = "Create CIF") + public void createCif(Harness harness) { + NonClient client = harness.data().newNonClient(); + String cif = harness.tasks().wso2().client().createCifFo(client); + + Assertions.assertEquals(10, cif.length()); + } +} diff --git a/tests/src/test/java/cz/moneta/test/system/wso2/DummyRequestTest.java b/tests/src/test/java/cz/moneta/test/system/wso2/DummyRequestTest.java new file mode 100644 index 0000000..4456acd --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/wso2/DummyRequestTest.java @@ -0,0 +1,187 @@ +package cz.moneta.test.system.wso2; + +import com.fasterxml.jackson.annotation.JsonProperty; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import cz.moneta.test.harness.support.util.Template; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; + +import static cz.moneta.test.harness.annotations.Environment.PPE; +import static cz.moneta.test.harness.annotations.Environment.TST1; + +@TestScenario(name = "Authenticates and calls a dummy request") +public class DummyRequestTest { + + private String token; + private String uniPtKey; + + @BeforeAll + public void setup(Harness harness) { + token = harness.tasks().wso2().authorization().getToken("DigitalchannelsSB_CBL"); + uniPtKey = harness.getConfig("system.wso2.dummyrequesttest.uniptkey"); + } + + @Disabled + @TestCase(name = "generates an authentication token") + public void generateToken(Harness harness) { + RawRestRequest.Response response = harness.withWso2() + .prepareRequest() + .withPath("token") + .withHeader("Authorization", "Basic " + + "ZXR4bWZhS3phWTFEZlQ1aHdtZmhNY3VXSFdZYTpnVXd6ZlltTVhBUHZCcVBod2RlSEJYbjNIeHdh") + .withPayload("grant_type=client_credentials") + .post(); + + Assertions.assertNotNull(response); + } + + @TestCase(name = "calls a dummy request", environments = {TST1, PPE}) + public void callDummyRequest(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/data.cluster/ODS/GET_ACC_DATA/001") + .withHeader("activityId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("requestId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("Authorization", "Bearer " + token) + .withHeader("Content-Type", "application/json") + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "GEBTTOT") + .withPayload("{" + + " \"BUSINESS\": \"GEM\"," + + " \"PURPOSE\": \"1\"," + + " \"RS_1\": [" + + " {" + + " \"UNI_PT_KEY_IN\": \"" + uniPtKey + "\"" + + " }" + + " ]" + + "}") + .post() + .andAssertFieldValue("RS_4[0].DUE_INSUR_BAL", "0") + .andAssertFieldValue("RS_4[1].ACC_SRC_SYS", "ICB01"); + } + + @TestCase(name = "calls a dummy request from file", environments = TST1) + public void callDummyRequestFromFile(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/data.cluster/ODS/GET_ACC_DATA/001") + .withHeader("activityId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("requestId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("Authorization", "Bearer " + token) + .withHeader("Content-Type", "application/json") + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "GEBTTOT") + .withPayloadFromFile("system/wso2/dummy_request_from_file_tst1.json") + .post() + .andAssertFieldValue("RS_4[0].DUE_INSUR_BAL", "0") + .andAssertFieldValue("RS_4[1].ACC_SRC_SYS", "ICB01"); + } + + @TestCase(name = "calls a dummy request from file") + public void callDummyRequestFromTemplate(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("/t/data.cluster/ODS/GET_ACC_DATA/001") + .withHeader("activityId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("requestId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("Authorization", "Bearer " + token) + .withHeader("Content-Type", "application/json") + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "GEBTTOT") + .withPayloadFromTemplate(Template.fromFilepath("system/wso2/dummy_request_from_template.json") + .set("UNI_PT_KEY", uniPtKey)) + .post() + .andAssertFieldValue("RS_4[0].DUE_INSUR_BAL", "0") + .andAssertFieldValue("RS_4[1].ACC_SRC_SYS", "ICB01"); + } + + @TestCase(name = "calls a dummy request from file") + public void callDummyRequestAndJsonUnit(Harness harness) { + harness.tasks().wso2().restRequest() + .prepareRequestFromCbl("/t/data.cluster/ODS/GET_ACC_DATA/001", + Template.fromFilepath("system/wso2/dummy_request_from_template.json") + .set("UNI_PT_KEY", uniPtKey).render()) + .post() + .andAssertStatus(200) + .andAssertWithAssertJ().inPath("$.RS_4[?(@.ACC_SRC_SYS=='ICB03')]").isNotNull(); + } + + @Disabled("This API doesn't exist, this is just an example") + @TestCase(name = "calls a dynamically created dummy request") + public void callDynamicDummyRequest(Harness harness) { + harness.withWso2() + .prepareRequest() + .withPath("t/training.gov/PHR_mapping_numbers/001") + .withHeader("activityId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("requestId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("Authorization", "Bearer 6e017015-a2be-3777-9482-8985ca86ba3d") + .withHeader("Content-Type", "application/json") + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "GEBTTOT") + .withPayload("{\"SPECIAL_CODE\": \"100\"}") + .addField("", "RS_persons", Collections.emptyList()) + .appendToArray("RS_persons", new Dummy("abcd", "Adam", "Jihlava")) + .appendToArray("RS_persons", new Dummy("aaaaaa", "David", "Plzeň")) + .post() + .andAssertFieldValue("RS_persons[0].my_string", "abcd") + .andAssertFieldValue("RS_persons[1].my_string", "aaaaaa"); + + } + + @Disabled("This API doesn't exist, this is just an example") + @TestCase(name = "calls a dummy request created from pojo") + public void callPojoDummyRequest(Harness harness) { + DummyRequest request = DummyRequest.builder() + .specialCode("100") + .rsPersons(Arrays.asList( + new Dummy("abcd", "Adam", "Jihlava"), + new Dummy("aaaaaa", "David", "Plzeň"))) + .build(); + + harness.withWso2() + .prepareRequest() + .withPath("t/training.gov/PHR_mapping_numbers/001") + .withHeader("activityId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("requestId", harness.tasks().wso2().restRequest().getRandomId()) + .withHeader("Authorization", "Bearer 6e017015-a2be-3777-9482-8985ca86ba3d") + .withHeader("Content-Type", "application/json") + .withHeader("cache-control", "no-cache,no-cache") + .withHeader("USERID_L2", "GEBTTOT") + .withPojoPayload(request) + .post() + .andAssertFieldValue("RS_persons[0].my_string", "abcd") + .andAssertFieldValue("RS_persons[1].my_string", "aaaaaa"); + + } + + @Data + @Builder + @AllArgsConstructor + private static class DummyRequest { + @JsonProperty("SPECIAL_CODE") + private String specialCode; + @JsonProperty("RS_persons") + private Collection rsPersons; + } + + @Data + @AllArgsConstructor + private static class Dummy { + @JsonProperty("my_string") + private String myString; + private String name; + private String city; + } + +} diff --git a/tests/src/test/java/cz/moneta/test/system/wso2/EnterpriseIntegratorTest.java b/tests/src/test/java/cz/moneta/test/system/wso2/EnterpriseIntegratorTest.java new file mode 100644 index 0000000..1e1925e --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/wso2/EnterpriseIntegratorTest.java @@ -0,0 +1,30 @@ +package cz.moneta.test.system.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +@TestScenario(name = "calls WSO2 Enterprise Integrator") +public class EnterpriseIntegratorTest { + + @TestCase(name = "calls WSO2 Enterprise Integrator") + public void callARequest(Harness harness) { + harness.withWso2() + .prepareRequestXml() + .withPath("call-fv/v1") + .withPayload("" + + "" + + " VMX.ACCOUNT.INQ" + + " E8VDA" + + " " + + " 00000MMB" + + " " + + " 861" + + " 0008616700200000028" + + " " + + " " + + "") + .post() + .andAssertFieldValue("VMX_ROOT.VMX_MSGOUT.SVC_RETURN", "P"); + } +} diff --git a/tests/src/test/java/cz/moneta/test/system/wso2/SendTifMessageToWSO2.java b/tests/src/test/java/cz/moneta/test/system/wso2/SendTifMessageToWSO2.java new file mode 100644 index 0000000..847d2f0 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/wso2/SendTifMessageToWSO2.java @@ -0,0 +1,43 @@ +package cz.moneta.test.system.wso2; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.mwf.CMH_MSG_EMAIL_PLANNED; +import cz.moneta.test.dsl.mwf.CMH_MSG_EMAIL_PLANNEDResponse; +import cz.moneta.test.dsl.mwf.getstatus.GET_STATUS; +import cz.moneta.test.dsl.mwf.getstatus.GET_STATUSResponse; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.util.Level; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "System test for sending TIF messages to WSO2") +public class SendTifMessageToWSO2 { + + @TestCase(name = "Sends an marketing email to client for a planned marketing campaign", environments = {Environment.TST1, Environment.TST3, Environment.PPE, Environment.EDU}) + public void sendMarketingEmail(Harness harness) { + CMH_MSG_EMAIL_PLANNEDResponse response = harness.withWso2() + .prepareTifRequestAsUfo(CMH_MSG_EMAIL_PLANNED.class) + .clientAddressTo("jiri.jaros1@moneta.cz") + .clientBirthNum("6543211234") + .cmpId(188729L) + .gwSysId("14") + .mesgAllowPairing(1L) + .mesgParams("01.06.2020") + .refId(999L) + .send(); + + harness.log(Level.INFO, "Response message from WSO2: " + response.toString()); + Assertions.assertNotNull(response.mesgId().toString(), "Reponse MESG_ID is empty."); + } + + @TestCase(name = "Sends get status message", environments = {Environment.TST1, Environment.TST3, Environment.PPE, Environment.EDU}) + public void getStatusMessage(Harness harness) { + GET_STATUSResponse response = harness.withWso2() + .prepareTifRequestAsCbl(GET_STATUS.class) + .send(); + + harness.log(Level.INFO, "Response message from WSO2: " + response.toString()); + Assertions.assertNotNull(response.statusCode().toString(), "Reponse STATUS_CODE is empty."); + } +} diff --git a/tests/src/test/java/cz/moneta/test/system/xyzmo/SignpadTest.java b/tests/src/test/java/cz/moneta/test/system/xyzmo/SignpadTest.java new file mode 100644 index 0000000..702ffde --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/system/xyzmo/SignpadTest.java @@ -0,0 +1,50 @@ +package cz.moneta.test.system.xyzmo; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.rest.RawRestRequest; +import org.apache.commons.lang3.tuple.Pair; +import org.junit.jupiter.api.Assertions; + +@TestScenario(name = "tessts various Xyzmo scenarios") +public class SignpadTest { + + @TestCase(name = "attepts to start a xyzmo session") + public void startXyzmoSession(Harness harness) { + Pair workstepAndTokenIds = harness.tasks() + .xyzmo() + .startSession(); + + RawRestRequest.Response signDocument = harness.tasks() + .xyzmo() + .signDocument(workstepAndTokenIds.getLeft()); + + RawRestRequest.Response setTaskResult = harness.tasks() + .xyzmo() + .setTaskResult(workstepAndTokenIds.getLeft()); + + RawRestRequest.Response finishWorkstep = harness.tasks() + .xyzmo() + .finishWorkstep(workstepAndTokenIds.getRight()); + + RawRestRequest.Response sessionStatus = harness.tasks() + .xyzmo() + .getSessionStatus(workstepAndTokenIds.getRight()); + + Assertions.assertNotNull(sessionStatus); + } + + @TestCase(name = "attepts to start a xyzmo session") + public void getWorkstepId(Harness harness) { + Pair workstepAndTokenIds = harness.tasks() + .xyzmo() + .startSession(); + + String workstepId = harness.tasks() + .xyzmo() + .getWorkstepId(workstepAndTokenIds.getRight()); + + Assertions.assertEquals(workstepAndTokenIds.getLeft(), workstepId); + } +} diff --git a/tests/src/test/java/cz/moneta/test/unit/dsl/util/DateUtilsTest.java b/tests/src/test/java/cz/moneta/test/unit/dsl/util/DateUtilsTest.java new file mode 100644 index 0000000..29aeccc --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/unit/dsl/util/DateUtilsTest.java @@ -0,0 +1,41 @@ +package cz.moneta.test.unit.dsl.util; + +import cz.moneta.test.dsl.util.DateUtils; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import static org.junit.jupiter.api.Assertions.fail; + +public class DateUtilsTest { + + private static final String DATE_FORMAT = "dd.MM.yyyy"; + + @Test + void isWorkingDay() { + Assertions.assertTrue(DateUtils.isWorkingDay(LocalDate.of(2020, 9, 22))); + } + + @Test + void isStateHoliday() { + Assertions.assertTrue(DateUtils.isStateHoliday(LocalDate.of(2020, 9, 28))); + } + + @Test + void getTodayDateIncrementedByDays() { + Assertions.assertEquals(LocalDate.now().plusDays(10).format(DateTimeFormatter.ofPattern(DATE_FORMAT)), + DateUtils.getTodayDateIncrementedByDays(10, DATE_FORMAT)); + } + + @Test + void getRandomDate() { + try { + LocalDate date = LocalDate.parse(DateUtils.getRandomDate(1971, 2020, DATE_FORMAT), DateTimeFormatter.ofPattern(DATE_FORMAT)); + Assertions.assertTrue(date.isAfter(LocalDate.of(1970, 12, 31)) && date.isBefore(LocalDate.of(2021, 1, 1))); + } catch (Exception e) { + fail("Cannot parse generated random date"); + } + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/utils/JiraHashConvertor.java b/tests/src/test/java/cz/moneta/test/utils/JiraHashConvertor.java new file mode 100644 index 0000000..a614725 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/utils/JiraHashConvertor.java @@ -0,0 +1,21 @@ +package cz.moneta.test.utils; + +import java.util.Base64; +import java.util.Scanner; + +/** + * Method for creating a hash for Jira logging + * Local use only + */ +public class JiraHashConvertor { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + System.out.println("Enter your SSO: "); + String username = scanner.nextLine(); + System.out.println("Enter your Windows password: "); + String pwd = scanner.nextLine(); + + String encodedString = Base64.getEncoder().encodeToString((username + ":" + pwd).getBytes()); + System.out.println("\nYour Jira hash is: \n" + encodedString); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/utils/cards/BroadcomMonitor.java b/tests/src/test/java/cz/moneta/test/utils/cards/BroadcomMonitor.java new file mode 100644 index 0000000..2ed4fad --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/utils/cards/BroadcomMonitor.java @@ -0,0 +1,40 @@ +package cz.moneta.test.utils.cards; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.harness.annotations.Environment; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; + +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; + +@TestScenario(name = "Broadcom monitoring") +public class BroadcomMonitor { + + @TestCase(name = "Broadcom monitoring", environments = Environment.LIVE) + public void broadcomMonitoring(Harness harness, @Key("cards.broadcom") Credentials credentials) { + + LocalDateTime from = harness.tasks().elasticApiTasks().getBroadcomLastLogTime().minusMinutes(2); + LocalDateTime to = LocalDateTime.now(ZoneOffset.UTC); + + String minutes = harness.getConfig("broadcom.intervalFromLastRecord"); + if (minutes != null) { + to = from.plusMinutes(Long.parseLong(minutes)); + } + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMdduuHHmm"); + String dates = from.format(formatter) + "_" + to.format(formatter); + harness.log("Calculated dates for download are: " + dates); + + harness.withBroadcom() + .openBroadcomLoginPage() + .loginWithUsernameAndPassword(credentials.getUsername(), credentials.getPassword()) + .switchFrameAndGoToAllTransactions() + .fillFromDateTime(String.valueOf(from.getYear()), String.valueOf(from.getMonthValue()), String.valueOf(from.getDayOfMonth()), String.valueOf(from.getHour()), String.valueOf(from.getMinute())) + .fillToDateTime(String.valueOf(to.getYear()), String.valueOf(to.getMonthValue()), String.valueOf(to.getDayOfMonth()), String.valueOf(to.getHour()), String.valueOf(to.getMinute())) + .clickToExportAndDownloadFile(dates); + } +} \ No newline at end of file diff --git a/tests/src/test/java/cz/moneta/test/utils/loans/BridgeLoanUtilTests.java b/tests/src/test/java/cz/moneta/test/utils/loans/BridgeLoanUtilTests.java new file mode 100644 index 0000000..3ea2526 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/utils/loans/BridgeLoanUtilTests.java @@ -0,0 +1,94 @@ +package cz.moneta.test.utils.loans; + +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.util.credentials.Keys; +import cz.moneta.test.dsl.util.data.client.IdCard; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.dsl.util.task.monetaportal.childbuildingsavings.ChildBuildingSavingsUtils; +import cz.moneta.test.dsl.util.task.retail.loans.RetailSQL; +import cz.moneta.test.dsl.util.task.retail.other.DocumentUploaderTasks; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.endpoints.nasdb.NasDbEndpoint; +import cz.moneta.test.harness.endpoints.udebs.UdebsEndpoint; +import cz.moneta.test.harness.support.auth.AuthSupport; +import cz.moneta.test.harness.support.auth.Credentials; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Assertions; + +import java.time.LocalDate; + +import static cz.moneta.test.dsl.util.task.retail.loans.constants.BridgeLoanSQL.DU_APPLICANT_DATA_BY_RC_SQL; +import static cz.moneta.test.dsl.util.task.retail.loans.constants.BridgeLoanSQL.DU_CO_APPLICANT_DATA_BY_RC_SQL; +import static cz.moneta.test.dsl.util.task.retail.loans.constants.DefaultLoansConstants.DEFAULT_CLIENT_ADDRESS; +import static cz.moneta.test.dsl.util.task.retail.loans.constants.DefaultLoansConstants.DEFAULT_ID_CARD; + +@TestScenario() +public class BridgeLoanUtilTests { + + @TestCase(name = "BL DU Applicant by BirthNumber") + public void bridgeLoanDU(Harness harness) { + DocumentUploaderTasks tasks = harness.tasks().retail().documentUploaderTasks(); + NonClient client = harness.data().newNonClient() + .withResidencyAddress(DEFAULT_CLIENT_ADDRESS) + .withIdCard(DEFAULT_ID_CARD) + .withBirthNumber(harness.getSystemOrConfigValue("birthNumber")); + + Result resultList = harness.getEndpoint(UdebsEndpoint.class) + .executeSql(DU_APPLICANT_DATA_BY_RC_SQL + .replaceAll("_BIRTHNUMBER_", client.birthNumber())); + Assertions.assertFalse(resultList.isEmpty(), String.format("For BirthNumber %s was not found DU Code in UDEBSE", client.birthNumber())); + Assertions.assertNotNull(resultList.getValue(0, "CODE"), String.format("For BirthNumber %s was not found DU Code in UDEBSE", client.birthNumber())); + client.withFirstName(resultList.getValue(0, "FIRSTNAME").toString()) + .withLastName(resultList.getValue(0, "LASTNAME").toString()); + + harness.store("CODE", resultList.getValue(0, "CODE").toString()); + tasks.takeIdentityBE(client, "22"); + } + + @TestCase(name = "BL DU Co-Applicant by BirthNumber") + public void bridgeLoanDUCoApplicant(Harness harness) { + DocumentUploaderTasks tasks = harness.tasks().retail().documentUploaderTasks(); + NonClient coApplicant = harness.data().newNonClient() + .withIdCard(new IdCard("209373728", LocalDate.of(2018, 8, 12), LocalDate.of(2028, 8, 12))) + .withResidencyAddress(DEFAULT_CLIENT_ADDRESS) + .withBirthNumber(harness.getSystemOrConfigValue("birthNumber")); + + Result resultList = harness.getEndpoint(UdebsEndpoint.class) + .executeSql(DU_CO_APPLICANT_DATA_BY_RC_SQL + .replaceAll("_BIRTHNUMBER_", coApplicant.birthNumber())); + Assertions.assertFalse(resultList.isEmpty(), String.format("For BirthNumber %s was not found DU Code in UDEBSE", coApplicant.birthNumber())); + Assertions.assertNotNull(resultList.getValue(0, "CODE"), String.format("For BirthNumber %s was not found DU Code in UDEBSE", coApplicant.birthNumber())); + coApplicant.withFirstName(resultList.getValue(0, "FIRSTNAME").toString()) + .withLastName(resultList.getValue(0, "LASTNAME").toString()); + harness.store("CODE", resultList.getValue(0, "CODE").toString()); + tasks.takeIdentityBE(coApplicant, "22"); + } + + @TestCase(name = "Zpracování Manual Approving") + public void nasStates(Harness harness) { + String birthNumber = "9008243563"; + +// Result resultList = harness.getEndpoint(NasDbEndpoint.class) +// .executeSql(String.format(RetailSQL.GET_APP_STATE_CIF_BY_RC, birthNumber)); +// harness.log(RetailUtils.getValueFromResult(resultList, "APPL_STAT_KEY")); +// = 8 Schválená - MFCH OK + + Result resultList = harness.getEndpoint(NasDbEndpoint.class) + .executeSql(String.format(RetailSQL.GET_APP_STATE_NBL_BY_RC, birthNumber)); + Assertions.assertEquals("9", ChildBuildingSavingsUtils.getValueFromResult(resultList, "APPL_STAT_KEY"), "Žádost není v Manuálním schvalování"); + // 9 = Manuální Schvalování + + Credentials bankerCred = AuthSupport.getCredentials(Keys.ufo.banka.banker, harness); + harness.withUfo().openLoginPage() + .typeUserNameAndPasswordAndClickLogin(bankerCred.getUsername(), bankerCred.getPassword()) + .onApplicationSelectPage() + .selectFirstOmIfPresent() + .selectUfoOperationsAndContinueWithoutOmSelect() + .clickRiskManualApprovingQueue() + .selectQueueAndSubmit("MSS") + .clickEditManualApproving(birthNumber) + .clickDecide(); + } +} diff --git a/tests/src/test/java/cz/moneta/test/utils/loans/HousingLoanUtilTests.java b/tests/src/test/java/cz/moneta/test/utils/loans/HousingLoanUtilTests.java new file mode 100644 index 0000000..42b6562 --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/utils/loans/HousingLoanUtilTests.java @@ -0,0 +1,89 @@ +package cz.moneta.test.utils.loans; + +import cz.moneta.test.dataprepare.retail.loans.BeforeEachExpresLoanTest; +import cz.moneta.test.dsl.Harness; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.HousingLoanData; +import cz.moneta.test.dsl.ufo.banka.pages.loans.expres.NEP006_S001_ExpressScoringResultPage; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisAllLoanObject; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisBLRateFixation; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisPropertyOwnershipType; +import cz.moneta.test.dsl.ufo.banka.pages.main.codelists.HCisUcelUveruExpres; +import cz.moneta.test.dsl.ufo.banka.tasks.expres.ExpresLoanDataPreparationTasks; +import cz.moneta.test.dsl.util.data.client.MaritalStatus; +import cz.moneta.test.dsl.util.data.client.NonClient; +import cz.moneta.test.harness.annotations.ParameterizedTestCase; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; +import cz.moneta.test.harness.support.auth.Credentials; +import cz.moneta.test.harness.support.auth.Key; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +import java.util.List; +import java.util.stream.Stream; + +import static cz.moneta.test.dsl.util.credentials.Keys.ufo.banka.banker; + +@TestScenario(name = "Housing Loan Data Preparation and Purpose Validation") +public class HousingLoanUtilTests extends BeforeEachExpresLoanTest { + + private final Harness harness; + + public HousingLoanUtilTests(Harness harness) { + this.harness = harness; + } + + @TestCase(name = "Data preparation for Expres with married couple") + public void prepareDataWithMarriedClients(Harness harness) { + data.setClient(data.getClient().withMaritalStatus(MaritalStatus.MARRIED)); + + NonClient wife = bankaTasks.expresTasks().expressLoanDataPreparationTasks().createWifeData() + .withResidencyAddress(data.getClient().residencyAddress()); + + //data.getHousingLoanData().isRealityCustomAddress(true); + data.setCoApplicants(List.of(wife)); + bankaTasks.expresTasks().expressLoanDataPreparationTasks().prepareCoApplicants(data.getCoApplicants()); + harness.log("\n" + + "Husband: " + data.getClient().fullName() + ", " + data.getClient().birthNumber() + "\n" + + "Wife: " + wife.fullName() + ", " + wife.birthNumber() + ", ID number: " + wife.idCard().getNumber()); + } + + @ParameterizedTestCase(name = "Housing loans with each purpose") + @MethodSource("getValuesForTest") + public void housingLoanEachPurpose(int amount, int term, List coApplicants, HCisAllLoanObject realityType, HCisPropertyOwnershipType ownershipType, HCisUcelUveruExpres loanPurpose, Harness harness, @Key(banker) Credentials credentials) { + data.setCoApplicants(coApplicants); + HousingLoanData hlData = data.getHousingLoanData(); + hlData.setRealityCustomAddress(false); + hlData.setRealityType(realityType); + hlData.setOwnershipType(ownershipType); + hlData.setPurposeType(loanPurpose); + hlData.setFixation(HCisBLRateFixation._5Y); + data.setAmount(amount); + data.setTerm(term); + + ExpresLoanDataPreparationTasks preparationTasks = bankaTasks.expresTasks().expressLoanDataPreparationTasks(); + + if (data.getCoApplicants() != null && !data.getCoApplicants().isEmpty()) { + preparationTasks.prepareCoApplicants(data.getCoApplicants()); + } + + NEP006_S001_ExpressScoringResultPage page = harness.withUfo().openLoginPage() + .then(bankaTasks.login().withCredentialsAndTurnOffSignpad(credentials)) + .then(bankaTasks.expresTasks().housingLoanTasks().housingLoanE2ETask(data)); + Assertions.assertEquals("Úvěr načerpán", page.getAppStat()); + } + + + private Stream getValuesForTest() { + ExpresLoanDataPreparationTasks tasks = harness.tasks().ufo().banka().expresTasks().expressLoanDataPreparationTasks(); + return Stream.of( + Arguments.of(50000, 60, null, HCisAllLoanObject.FAMILY_HOUSE, HCisPropertyOwnershipType.PERSONAL, HCisUcelUveruExpres.RECONSTRUCTION), + Arguments.of(55000, 61, null, HCisAllLoanObject.FAMILY_HOUSE, HCisPropertyOwnershipType.PERSONAL, HCisUcelUveruExpres.RECONSTRUCTION_WITH_ENERGY_SAVINGS), + Arguments.of(200000, 75, null, HCisAllLoanObject.FAMILY_HOUSE, HCisPropertyOwnershipType.PERSONAL, HCisUcelUveruExpres.CONSTRUCTION), + Arguments.of(75000, 13, null, HCisAllLoanObject.FAMILY_HOUSE, HCisPropertyOwnershipType.PERSONAL, HCisUcelUveruExpres.CONSTRUCTION_WITH_ENERGY_SAVINGS), + Arguments.of(799000, 300, null, HCisAllLoanObject.APARTMENT, HCisPropertyOwnershipType.PERSONAL, HCisUcelUveruExpres.RECONSTRUCTION), + Arguments.of(200000, 108, List.of(tasks.createCoApplicantData(), tasks.createSecondCoApplicantData()), HCisAllLoanObject.APARTMENT, HCisPropertyOwnershipType.COOPERATIVE, HCisUcelUveruExpres.TRANSFER_OF_COOPERATIVE_SHARE) + ); + } +} diff --git a/tests/src/test/java/cz/moneta/test/utils/task/wso2/depersonalization/DepersonalizationTasksTest.java b/tests/src/test/java/cz/moneta/test/utils/task/wso2/depersonalization/DepersonalizationTasksTest.java new file mode 100644 index 0000000..6e38b7a --- /dev/null +++ b/tests/src/test/java/cz/moneta/test/utils/task/wso2/depersonalization/DepersonalizationTasksTest.java @@ -0,0 +1,61 @@ +package cz.moneta.test.utils.task.wso2.depersonalization; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import cz.moneta.test.dsl.wso2.objects.traininggov.DoDepersCustTestRequest; +import cz.moneta.test.harness.annotations.TestCase; +import cz.moneta.test.harness.annotations.TestScenario; + +import java.util.Arrays; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@TestScenario() +public class DepersonalizationTasksTest { + private final ObjectMapper jackson = new ObjectMapper(); + + @TestCase + public void depersonalizationTasksNullValues() throws JsonProcessingException { + DoDepersCustTestRequest request = DoDepersCustTestRequest.builder() + .fonCif(null) + .fopCif(null) + .rcNum(null) + .icoNum(null) + .rsData(null) + .build(); + + String requestJson = this.jackson.writeValueAsString(request); + + assertEquals("{\"ICO_NUM\":null,\"FOPCIF\":null,\"RC_NUM\":null,\"FONCIF\":null,\"RS_1\":null}", requestJson); + } + + @TestCase + public void depersonalizationTasksEmptyValues() throws JsonProcessingException { + DoDepersCustTestRequest request = DoDepersCustTestRequest.builder() + .build(); + + String requestJson = this.jackson.writeValueAsString(request); + + assertEquals("{\"ICO_NUM\":null,\"FOPCIF\":null,\"RC_NUM\":null,\"FONCIF\":null,\"RS_1\":[]}", requestJson); + } + + @TestCase + public void depersonalizationTasksFilledValues() throws JsonProcessingException { + DoDepersCustTestRequest request = DoDepersCustTestRequest.builder() + .fonCif("VALUE_FON_CIF") + .fopCif("VALUE_FOP_CIF") + .rcNum("VALUE_RC_NUM") + .icoNum("VALUE_ICO_NUM") + .rsData(Arrays.asList(DoDepersCustTestRequest.Rs1.builder() + .srcSysIdIn("NAS0") + .build(), + DoDepersCustTestRequest.Rs1.builder() + .srcSysIdIn("ICB0") + .build())) + .build(); + + String requestJson = this.jackson.writeValueAsString(request); + + assertEquals("{\"ICO_NUM\":\"VALUE_ICO_NUM\",\"FOPCIF\":\"VALUE_FOP_CIF\",\"RC_NUM\":\"VALUE_RC_NUM\",\"FONCIF\":\"VALUE_FON_CIF\",\"RS_1\":[{\"SRC_SYS_ID_IN\":\"NAS0\"},{\"SRC_SYS_ID_IN\":\"ICB0\"}]}", requestJson); + } +} diff --git a/tests/src/test/resources/envs/auto/dev b/tests/src/test/resources/envs/auto/dev new file mode 100644 index 0000000..e3ac737 --- /dev/null +++ b/tests/src/test/resources/envs/auto/dev @@ -0,0 +1,9 @@ +# This is shared config for environment.type=auto/tst. Do not edit it unless you know what you are doing. +environment.from=default + +#Smart Auto +endpoints.smart-auto.url=https://dev.monetasmartauto.cz/lamder/ + +#Auto API +endpoints.auto-api.url=https://dev.monetasmartauto.cz/autoapi/ + diff --git a/tests/src/test/resources/envs/auto/ppe b/tests/src/test/resources/envs/auto/ppe new file mode 100644 index 0000000..0a54364 --- /dev/null +++ b/tests/src/test/resources/envs/auto/ppe @@ -0,0 +1,14 @@ +# This is shared config for environment.type=auto/tst. Do not edit it unless you know what you are doing. +environment.from=default + +#Smart Auto +endpoints.smart-auto.url=https://ppe.monetasmartauto.cz/lamder/ + +#Smart Auto Setman +endpoints.smart-auto-setman.url=https://ppe.monetasmartauto.cz/setman/ + +#Auto API +endpoints.auto-api.url=https://ppe.monetasmartauto.cz/autoapi/ + +#Auto DB +endpoints.auto-db.url=jdbc:oracle:thin:@//AUTOT3.ux.mbid.cz:1521/LAMD_T3 diff --git a/tests/src/test/resources/envs/auto/tst b/tests/src/test/resources/envs/auto/tst new file mode 100644 index 0000000..6f9f832 --- /dev/null +++ b/tests/src/test/resources/envs/auto/tst @@ -0,0 +1,17 @@ +# This is shared config for environment.type=auto/tst. Do not edit it unless you know what you are doing. +environment.from=default + +#Smart Auto +endpoints.smart-auto.url=https://tst.monetasmartauto.cz/lamder/ + +#Smart Auto Setman +endpoints.smart-auto-setman.url=https://tst.monetasmartauto.cz/setman/ + +#Auto API +endpoints.auto-api.url=https://tst.monetasmartauto.cz/autoapi/ + +#Auto DB +endpoints.auto-db.url=jdbc:oracle:thin:@//AUTOT3.ux.mbid.cz:1521/LAMD_T3 + +#PSmartAuto +endpoints.auto-api.psmartauto.url=https://tst.monetasmartauto.cz/autoapi/psmartauto diff --git a/tests/src/test/resources/envs/common/default b/tests/src/test/resources/envs/common/default new file mode 100644 index 0000000..2cbc4f3 --- /dev/null +++ b/tests/src/test/resources/envs/common/default @@ -0,0 +1,4 @@ +#This is default set of config parameters for Jenkins. +vault.username=$vault.username +vault.password=$vault.password +vault.path.base.common=/kv/autotesty/common \ No newline at end of file diff --git a/tests/src/test/resources/envs/common/sharedseleniumgrid b/tests/src/test/resources/envs/common/sharedseleniumgrid new file mode 100644 index 0000000..92bacbb --- /dev/null +++ b/tests/src/test/resources/envs/common/sharedseleniumgrid @@ -0,0 +1,5 @@ +#This is default set of config parameters for shared Selenium grid run from Jenkins. +selenium.grid.shared.url=http://selenium-hub.svc.k8s.moneta-containers.net:4445/ +selenium.webdriver.chrome.options=--headless --disable-gpu --enable-logging --v=1 --disable-crash-reporter --no-first-run --kiosk-printing --disable-search-engine-choice-screen --disable-extensions --disable-dev-shm-usage --window-size=1920,1080 --proxy-server=http://squid-restricted-http-proxy.jenkins.svc.cluster.local:3128 --proxy-bypass-list=*.verisign.com,smetrics.internetbanka.cz,cdn.mxpnl.com,demdex.net,hypostst3*,hyposppe*,hypostst*,payhubppe*,payhubtst*,testy*,forgetest*,fortetest*,forgedev5*,fortedev5*,forteppe*,frontendpp*,frontendtom*,frontendedu*,frontendfv*,frontendtsta*,kasatest*,cashman* --acceptInsecureCerts=true --ignore-certificate-errors --use-fake-device-for-media-stream --use-fake-ui-for-media-stream +selenium.webdriver.edge.options=--headless --disable-gpu --enable-logging --v=1 --disable-crash-reporter --no-first-run --kiosk-printing --disable-search-engine-choice-screen --disable-extensions --disable-dev-shm-usage --window-size=1920,1080 --proxy-server=http://squid-restricted-http-proxy.jenkins.svc.cluster.local:3128 --proxy-bypass-list=*.verisign.com,smetrics.internetbanka.cz,cdn.mxpnl.com,demdex.net,hypostst3*,hyposppe*,hypostst*,payhubppe*,payhubtst*,testy*,forgetest*,fortetest*,forgedev5*,fortedev5*,forteppe*,frontendpp*,frontendtom*,frontendedu*,frontendfv*,frontendtsta*,kasatest*,cashman* --acceptInsecureCerts=true --ignore-certificate-errors --use-fake-device-for-media-stream --use-fake-ui-for-media-stream +selenium.grid.platform=linux \ No newline at end of file diff --git a/tests/src/test/resources/envs/default b/tests/src/test/resources/envs/default new file mode 100644 index 0000000..ba86ecd --- /dev/null +++ b/tests/src/test/resources/envs/default @@ -0,0 +1,24 @@ +#This is default set of config parameters. You can override them in your config file +#Selenium default setup +selenium.webdriver.chrome.options=--disable-gpu --enable-logging --v=1 --disable-crash-reporter --no-first-run --disable-search-engine-choice-screen --disable-extensions --disable-dev-shm-usage --window-size=1920,1080 --acceptInsecureCerts=true --ignore-certificate-errors --use-fake-device-for-media-stream --use-fake-ui-for-media-stream +selenium.webdriver.edge.options=--disable-gpu --enable-logging --v=1 --disable-crash-reporter --no-first-run --disable-search-engine-choice-screen --disable-extensions --disable-dev-shm-usage --window-size=1920,1080 --acceptInsecureCerts=true --ignore-certificate-errors --use-fake-device-for-media-stream --use-fake-ui-for-media-stream + +#Test Harness +vault.url=https://vault.svc.k8s.moneta-containers.net +vault.path.base.common=/kv/autotesty/common +endpoints.web.testautomationpage.url=https://testy.ux.mbid.cz/harness/ +endpoints.testautomationdb.url=jdbc:postgresql://psql-autotests-ss.c20q5jiegguo.eu-central-1.rds.amazonaws.com:5432/autotest_db + +#Greenscreen +endpoints.greenscreen.url=217.73.44.10 + +#Jira and Zephyr +reports.tmfj.url=https://jira.moneta.cz/rest/atm/1.0 +endpoints.jira.core=https://jira.moneta.cz/rest/api/2 + +#Elastic +endpoints.elastic.read.url=https://elasticclusterawscoord.lb.mbid.cz:12200 +endpoints.elastic.write.url=https://elasticclusterawsingest.lb.mbid.cz:12200 + +#Ares API +endpoints.ares-api.url=https://ares.gov.cz/ekonomicke-subjekty-v-be/rest/ \ No newline at end of file diff --git a/tests/src/test/resources/envs/demo b/tests/src/test/resources/envs/demo new file mode 100644 index 0000000..a55aa06 --- /dev/null +++ b/tests/src/test/resources/envs/demo @@ -0,0 +1,5 @@ +endpoints.demo.spirits.location=force + +browser=edge + +environment.type=dev diff --git a/tests/src/test/resources/envs/dev b/tests/src/test/resources/envs/dev new file mode 100644 index 0000000..517377c --- /dev/null +++ b/tests/src/test/resources/envs/dev @@ -0,0 +1,23 @@ +# This is shared config for environment.type=tst1. Do not edit it unless you know what you are doing. +environment.from=default + +#Vault +vault.path.base=/kv/autotesty/dev + +#IB application +endpoints.new.ib.url=https://dmbs.internetbanka.cz/digdev0/spacex-ib/#/ + +#Mockserver +endpoints.mockserver.url=https://mbczvl1dl0mockt.ux.mbid.cz:1080/ + +#UFO banka +endpoints.ufo.banka.url=https://frontendtomdev.lb.mbid.cz/dev1/ufo/Snapshot + +#Cashman +endpoints.cashman.url=https://cashmandev.mbid.cz/ + +#Forte-light +endpoints.fortelight.url=https://forgedev5.ux.mbid.cz/portal/home/ + +#Forte +endpoints.forte.url=https://fortedev5.ux.mbid.cz/portal/home/ \ No newline at end of file diff --git a/tests/src/test/resources/envs/dyn b/tests/src/test/resources/envs/dyn new file mode 100644 index 0000000..bfa5915 --- /dev/null +++ b/tests/src/test/resources/envs/dyn @@ -0,0 +1 @@ +environment.from=tst1 \ No newline at end of file diff --git a/tests/src/test/resources/envs/edu b/tests/src/test/resources/envs/edu new file mode 100644 index 0000000..4551c3f --- /dev/null +++ b/tests/src/test/resources/envs/edu @@ -0,0 +1,35 @@ +# This is shared config for environment.type=tst3. Do not edit it unless you know what you are doing. +environment.from=default + +#Vault +vault.path.base=/kv/autotesty/edu +vault.secure.store.path=/kv/tif/educ/securestores +vault.client.secrets.path=/kv/autotesty/edu/wso2-keys + +#Open API +endpoints.openapi.url=https://teibs.internetbanka.cz/edu/openapi/ + +#Open API CA - this is not implemented on EDU +#endpoints.openapica.url=https://teibs.internetbanka.cz/edu/caapi/ + +#CBL +endpoints.cbl.url=https://teibs.internetbanka.cz/tst1/openapi/ + +#CBL CA +endpoints.cblca.url=https://teibs.internetbanka.cz/tst1/caapi/ + +# UFO Banka +endpoints.ufo.banka.url=https://frontendedu.lb.mbid.cz/edu/ufo/bankaTech +//URL for UFO WAS on EDU https://frontendppe/EDU/ufo/banka + +#ODS DB +endpoints.ods.url=jdbc:oracle:thin:@//odststx.ux.mbid.cz:1521/ODS_EDU + +#UDEBS Database +endpoints.udebs.url=jdbc:oracle:thin:@gemtestx.ux.mbid.cz:1521:udebsedu + +#Hypos db +endpoints.hyposdb.url=jdbc:sqlserver://MBCZVW6AL0SQLT5.mbid.cz;databaseName=HyposEDU + +#WSO2 GW +endpoints.wso2.gw.url=https://wso2-edu-gw.ux.mbid.cz diff --git a/tests/src/test/resources/envs/fixme/dev-with-data b/tests/src/test/resources/envs/fixme/dev-with-data new file mode 100644 index 0000000..03fc020 --- /dev/null +++ b/tests/src/test/resources/envs/fixme/dev-with-data @@ -0,0 +1,7 @@ +# +# This file contains data that we don't create in tests, but rather expect to be present on the FVE environment. +# +environment.from=dev +environment.type=dev + + diff --git a/tests/src/test/resources/envs/fixme/edu-with-data b/tests/src/test/resources/envs/fixme/edu-with-data new file mode 100644 index 0000000..3bb0ee3 --- /dev/null +++ b/tests/src/test/resources/envs/fixme/edu-with-data @@ -0,0 +1,14 @@ +# +# This file contains data that we don't create in tests, but rather expect to be present on the EDU environment. +# + +environment.from=edu +environment.type=edu + +channels.branch.rc-of-existing-client=8309275799 + +#UFO Branch clients - not to be used for other teams +branch.squad.rc.client=8510319477 + +#UFO Operations clients - not to be used for other teams +ufo.operations.rc-of-existing-client=6755176978 diff --git a/tests/src/test/resources/envs/fixme/fve-with-data b/tests/src/test/resources/envs/fixme/fve-with-data new file mode 100644 index 0000000..e395fe0 --- /dev/null +++ b/tests/src/test/resources/envs/fixme/fve-with-data @@ -0,0 +1,8 @@ +# +# This file contains data that we don't create in tests, but rather expect to be present on the FVE environment. +# +environment.from=fve +environment.type=fve + +channels.branch.rc-of-existing-client=7806103437 + diff --git a/tests/src/test/resources/envs/fixme/ppe-with-data b/tests/src/test/resources/envs/fixme/ppe-with-data new file mode 100644 index 0000000..89b5917 --- /dev/null +++ b/tests/src/test/resources/envs/fixme/ppe-with-data @@ -0,0 +1,386 @@ +# +# This file contains data that we don't create in tests, but rather expect to be present on the PPE environment. +# + +environment.from=ppe +environment.type=ppe + +channels.branch.rc-of-existing-client=7302112862 +system.wso2.dummyrequesttest.uniptkey=78198156884 + +#UFO Branch clients - not to be used for other teams +branch.squad.rc.client=7804151872 +branch.ico=32877315 + +#UFO Operations clients - not to be used for other teams +ufo.operations.rc-of-existing-client=8805072540 +ufo.operations.rc-for-change-address=8508031312 +ufo.operations.account-number=235581460 +ufo.operations.account-number-recipient=235581313 +ufo.operations.account-number-for-payment-order-and-verification=236354649 +ufo.operations.cif=3000026802 + +#UFO CB clients - not to be used for other teams +commercial.cb.rc-fo=9503305306 +commercial.cb.ico-zero=02642239 +commercial.cb.ico=72293012 +commercial.cb.ico.fop=76026710 +commercial.cb.ico.po=03864511 +commercial.cb.cif=3000047256 +commercial.cb.proposal-id=314565 +commercial.cb.account-number=207682432 +commercial.cb.account-number-zero=0190369959 +commercial.cb.client-id=1192571 +commercial.cb.reg-number=134 18 000078 +commercial.cb.registration-number=438 21 001652 + +#Exevido +commercial.exevido.receiver=5nqh2a3 +commercial.exevido.recipient-for-send-failure=ic6g77w +commercial.exevido.message-zfo-id=12484718 +commercial.exevido.attachment-for-processing=regression/exevido/JanaKafkova.pdf +commercial.exevido.subject-for-processing=Jana Kafková +commercial.exevido.internal-reference-number-for-processing=101874/25/MMB Děd/Ned + +# CVM cluster data +cvm.client.cif=9002194682 +cvm.client.userid=3541801 +cvm.client.uniptkey=78198480437 +cvm.client.odsconsentschange.uniptkey=78198480437 +cvm.client.processconsentchange.uniptkey=78198480437 +cvm.client.infolimit.uniptkey=75116638 +cvm.client.webexpressdropout.phonenumber=+420777874593 +cvm.client.wustenrotcredentials.uniptkey=78198480916 +cvm.client.pushmessagesend.cif=3000059960 +cvm.client.investment.cif=3000048458 +cvm.client.sbaexpapp.cif=9000218427 +cvm.client.setresponse.cif=9000218427 +cvm.application.key=62600767 +cvm.application.getappid.key=62600767 +cvm.wustenrot.ruskey=91247400002 + +# Insurance squad data - not to be used for other teams +rc.accidentInsuranceIb=7212127054 +rc.longTermTravelInsuranceIb=7212127109 +rc.shortTermTravelInsuranceIb=7212127131 +rc.createElectronicPaymantsInsuranceIb=8204084691 + +#InternetBanka +IB.rc.user-with-CZK-and-EUR-account=8602082390 +IB.rc.user-with-two-CZK-accounts=8602080663 +IB.rc.electronic-payment-insurance=8506256110 +IB.rc.accident-insurance=8506255967 +IB.rc.long-term-travel-insurance=8410307202 +IB.rc.short-term-travel-insurance=8410307191 +IB.rc.property-cards-internetrisks-insurance=8506255945 +IB.rc.mass-payment=8506255868 +IB.rc.direct-debit=8506256077 +IB.rc.change.limit=8707226946 +IB.rc.loans-consolidation=7910270929 +IB.rc.transfer-founds=7201218739 +IB.rc.message.user-with-SU=8506255923 +IB.rc.mortgages.calculator=6410052198 +IB.rc.smart-card=8806185916 +IB.rc.diponents-main-user=9705288406 +IB.rc.diponents-active-user=9605282401 +IB.rc.diponents-pasive-user=9007058632 +IB.rc.diponents-current-account-number=233789612 +IB.rc.smokeuser-with-one-CZK-account=9112061541 + +#New InternetBanka +nib.rc.login-logout=9901027257 +nib.rc.login-logout-fop=7352169671 +nib.rc.payments-one-account=6407282662 +nib.fromaccount.payments-one-account=233760115 +nib.recipientaccount.payments-one-account=233574291 +nib.recipientOtherBankAccount.payments-other-bank-account=19019 +nib.rc.mobilecredit-invoice-payment=9407272941 +nib.fromaccount.mobilecredit-invoice-payment=233797743 +nib.rc.mobilecredit-invoice-payment-fop=8107040447 +nib.fromaccount.mobilecredit-invoice-payment-fop=236061504 +nib.rc.foreign-payment=8003216100 +nib.rc.foreign-overdraft-payment=0202148133 +nib.fromaccount.foreign-payment=235563502 +nib.fromaccount.foreign-overdraft-payment=0236455191 +nib.rc.standing-order=8003214934 +nib.fromaccount.standing-order=235561777 +nib.rc.sipo-order=8003214923 +nib.fromaccount.sipo-order=235561726 +nib.rc.messages=9601040163 +nib.fromaccount.messages=233827236 +nib.rc.templates=8303063340 +nib.fromaccount.templates=233875617 +nib.rc.bulk-payment=8003215880 +nib.fromaccount.bulk-payment=235563027 +nib.rc.contacts=9210194554 +nib.rc.authorization=9010040886 +nib.rc.aboutTheSmartBanka=8701276408 +nib.rc.accountSetAsPreffered=8701276386 +nib.rc.limits=9412104361 +nib.rc.trustedContacts=8701276188 +nib.rc.personalAndContactDetails=9904148562 +nib.rc.envelopes=8305205183 +nib.rc.termDepositFon=8003215176 +nib.currentaccount.termDepositCzkFon=235562083 +nib.currentaccount.termDepositEurFon=235735618 +nib.currentaccount.termDepositUsdFon=235734850 +nib.rc.termDepositFop=5405021985 +nib.currentaccount.termDepositCzkFop=236382826 +nib.currentaccount.termDepositEurFop=236382877 +nib.fromaccount.foreign-currency-payment=235563502 +nib.recipientaccount.eur-currency=234108081 +nib.recipientaccount.czk-currency=235563158 +nib.rc.priority-payment=8003215396 +nib.fromaccount.priority-payment=235562382 +nib.rc.priority-payment-fop=9302168117 +nib.fromaccount.priority-payment-fop=235748451 +nib.recipientaccount.outside-moneta.czk-currency=123 +nib.rc.direct.debit-payment=8003214890 +nib.from.account.direct.debit=235561697 +nib.from.account.direct.debit-fop=236045336 +nib.rc.payment-over-limit=8003214868 +nib.fon.cif=3000218748 +nib.fon.account-number=236350795 +nib.fon.login-name=306791518 +nib.fop.login-name=306790962 +nib.fop.cif=3000217621 +nib.po.login-name=306739024 +nib.po.ico=03115968 +nib.client.password=Aa123456 +nib.rc.bulk-payment-fop=6703291331 +nib.fromaccount.bulk-payment-fop=235734025 +nib.rc.standing-order-fop=8305307021 +nib.fromaccount.standing-order-fop=236127008 +nib.rc.buildingSavings=9904148595 +nib.rc.direct.debit-payment-fop=9008109363 +nib.fromaccount.direct.debit-fop=236045336 +nib.rc.sipo-order-fop=9212188546 +nib.fromaccount.sipo-order-fop=236059762 +nib.rc.rtvServicingDepositFon=9904148584 +nib.accountNumberRtvServicingDepositFon=236506606 +nib.destinationAccountNumberDepositFon=0236499370 +nib.rc.rtvServicingWithdrawalFon=8011270993 +nib.accountNumberRtvServicingWithdrawalFon=236554309 +nib.sourceNumberRtvServicingWithdrawalFon=0236554309 +nib.destinationAccountRtvServicingWithdrawalFon=236553840 +nib.rc.rtvServicingCancelFon=8011271015 +nib.accountNumberRtvServicingCancelFon=236554317 +nib.sourceNumberRtvServicingCancelFon=0236554317 +nib.destinationAccountRtvServicingCancelFon=236553875 +nib.rc.changePassword=8011270982 +nib.rc.accounts-settings=8112085894 +nib.accountNumber.accounts-settings=236144641 +nib.iban.accounts-settings=CZ61 0600 0000 0002 3614 4641 +nib.savingsAccountNumber.accounts-settings=236144705 +nib.iban.savingsAccount-settings=CZ79 0600 0000 0002 3614 4705 +nib.savings.account.fop=235069379 +nib.savings.account.fon=235562411 +nib.rc.settings.cards.fon=8011271004 +nib.rc.disponents=9952018692 +nib.rc.exchange.no.foreign.account=8003215462 +nib.rc.exchange.eur.foreign.account=8003215473 +nib.rc.exchange.usd.foreign.account=8003215484 +nib.rc.settings.creditCards.fon=7951276619 +nib.rc.exchange.all.accounts=9808082009 +nib.rc.payments.advice.fop=6005121166 +nib.rc.payments.advice.fon=8003216100 +nib.rc.dps.fon=8301062495 +nib.rc.messages=8905050770 + +# PaymenEngine squad data - not to be used for other teams +payments_cashless.reservationController.account=233561335 +payments_cashless.reservationController.rc=8811110209 +payments_cashless.instantPaymentValidations.accounts=0207413670,0207182788 +payments_cashless.availableBalances.accounts=233533318,215893475 +payments_cashless.availableBalances.rc=7301185078,8207086613 +payments_cashless.feeCalculator.account=215893475 +payments_cashless.feeCalculator.iban=CZ1206000000000215893475 +payments_cashless.instantPaymentValidations.AGBAccount=10006-1446557 +payments_cashless.wso2ei.account=207602092 +payments_cashless.foreignPayment.MT101=CZ8606000000000233725205 +payments_cashless.foreignPayment.XCT=CZ6306000000000207030346 +payments_cashless.foreignPayment.XCTacc=207030346 +payments_cashless.foreignPayment.MT191.creditorIban=LU210030534867664600 +payments_cashless.foreignPayment.SEPA=CZ6306000000000207030346 +payments_cashless.foreignPayment.foreignIban=CZ6206000000000234554890 +payments_cashless.foreignPayment.foreignCreditor=234554890 +payments_cashless.foreignPayment.debtorAccMcCFA=234554890 +payments_cashless.foreignPayment.ibanMcCFA=CZ6206000000000234554890 +payments_cashless.foreignPayment.debtorAccXCT.FI2FI=115115115 +payments_cashless.foreignPayment.coverAccountIngoing=50121866998523/0300 +payments_cashless.foreignPayment.bicFiEurXCT.FI2FI=BOTKNL2X +payments_cashless.foreignPayment.bicFiUsdXCT.FI2FI=COSRPAPA +payments_cashless.foreignPayment.bicBankXCT.FI2FI=AGBACZPP +payments_cashless.foreignPayment.bankNameEurXCT.FI2FI=BBRUBEBB010 +payments_cashless.foreignPayment.bankNameUsdXCT.FI2FI=CITIUS33 +payments_cashless.foreignPayment.bankCodeXCT.FI2FI=36002163 +payments_cashless.foreignPayment.sepaFile=regression/transactional/cashless/sepaPPE.xml +payments_cashless.foreignPayment.pacs009File=regression/transactional/cashless/CAP_PACS009_PPE.xml +payments_cashless.foreignPayment.pain001File=regression/transactional/cashless/CAP_PAIN001_PPE.xml +payments_cashless.foreignPayment.cfaFile=regression/transactional/cashless/MC_CFA.xml +payments_cashless.foreignPayment.painFile=regression/transactional/cashless/MC_PAIN.xml +payments_cashless.foreignPayment.cfdFile=regression/transactional/cashless/MC_CFD.xml +payments_cashless.foreignPayment.XCT_FOR_HD21=regression/transactional/cashless/XCT_FOR_HD21.xml +payments_cashless.foreignPayment.XCT_OUR=regression/transactional/cashless/XCT_OUR.xml +payments_cashless.foreignPayment.XCT_WITH_MT191=regression/transactional/cashless/XCT_WITH_MT191.xml +payments_cashless.foreignPayment.HD11_Starbuild=regression/transactional/cashless/HD11_Starbuild.xml +payments_cashless.foreignPayment.HD32_Starbuild=regression/transactional/cashless/HD32_Starbuild.xml +payments_cashless.foreignPayment.HD21_WITH_MT191=regression/transactional/cashless/HD21_WITH_MT191.xml +payments_cashless.foreignPayment.HD21_FILE=regression/transactional/cashless/HD21.xml +payments_cashless.foreignPayment.HD01_FILE=regression/transactional/cashless/HD01.xml +payments_cashless.foreignPayment.HD11-14_FILE=regression/transactional/cashless/HD11-14.xml +payments_cashless.foreignPayment.HD32_FILE=regression/transactional/cashless/HD32.xml +payments_cashless.foreignPayment.HD33_FILE=regression/transactional/cashless/HD33.xml +payments_cashless.foreignPayment.xctReturnFile=regression/transactional/cashless/XCT_RETURN.xml +payments_cashless.domesticPayment.timeAcc=206942896 +payments_cashless.domesticPayment.loanAcc=171520967 +payments_cashless.domesticPayment.debtorAccBalances=235557882 +payments_cashless.domesticPayment.debtorAccUFO=207867066 +payments_cashless.domesticPayment.debtorAcc=194076766 +payments_cashless.domesticPayment.creditorAcc=9093215 +payments_cashless.domesticPayment.creditorAccInh=207363116 +payments_cashless.domesticPayment.bankCodeCr=3030 +payments_cashless.domesticPayment.bankNameCr=Air Bank a.s. +payments_cashless.domesticPayment.debtorAccNSF=207510569 +payments_cashless.domesticPayment.creditorAccInvalid=215379994 +payments_cashless.domesticPayment.clientId=3000130275 +payments_cashless.domesticPayment.clientsAccount=207945108 +payments_cashless.domesticPayment.accountCZK=233898632 +payments_cashless.domesticPayment.accountEUR=233617968 +payments_cashless.foreignPayment.IntermediaryBIC=BYLADEMMXXX +payments_cashless.domesticPayment.newAccount=233913433 +payments_cashless.domesticPayment.activeAccount=198873789 +payments_cashless.domesticPayment.debtorAccMax1=235058733 +payments_cashless.domesticPayment.creditorAccMax1=207326315 +payments_cashless.domesticPayment.debtorAccMax2=207850838 +payments_cashless.domesticPayment.creditorAccMax2=207219966 +payments_cashless.domesticPayment.creditorAccOut=123 +payments_cashless.domesticPayment.bankCodeCreditorOut=0300 - Československá obchodní banka, a.s. +payments_cashless.domesticPayment.creditorAccInt=194326948 +payments_cashless.domesticPayment.closedAcc=207931101 +payments_cashless.domesticPayment.sleepingAcc=207737640 +payments_cashless.domesticPayment.closedState7=207280871 +payments_cashless.domesticPayment.blockedDebitsAcc=207326008 +payments_cashless.domesticPayment.accPrefixForExternal1=609 +payments_cashless.domesticPayment.accExternal1=0000186028 +payments_cashless.domesticPayment.accExternalAsInternal1=156041853 +payments_cashless.domesticPayment.accExternalAsInternal2=207103832 +payments_cashless.domesticPayment.accTime=150474199 +payments_cashless.domesticPayment.accLoan=234658139 +payments_cashless.domesticPayment.accBankbook=195572702 +payments_cashless.domesticPayment.standingOrderId=15068724 + +# Cards team +cards_team.retail.op=210055555 +cards_team.retail.rc=7802165272 +cards_team.retail.account.number1=234763262 +cards_team.retail.account.number2=234809558 +cards_team.retail.account.number3=234809689 +cards_team.retail.account.number4=234822955 +cards_team.retail.account.number5=234923991 +cards_team.retail.account.number6=234924361 +cards_team.retail.standard.DC=4644614152817880 +cards_team.retail.standard.virtual.DC=4644614144231506 +cards_team.retail.standard.virtual.pride.DC=4644614149718050 +cards_team.retail.usd.DC=4644618349573298 +cards_team.retail.eur.DC=4644619347230600 +cards_team.retail.standard.DC.for.block=5037 +cards_team.retail.standard.DC.for.cancel=5464 +cards_team.retail.standard.DC.for.Activation=4269 +cards_team.retail.gold.DC=4644615150683398 +cards_team.retail.virtual.gold.DC=4644615150683398 +cards_team.retail.rc2=9406251668 +cards_team.retail.account.number7=236103188 +cards_team.retail.standard.DC.3=4644614150364711 +cards_team.retail.smart.CC=4243367042231789 +cards_team.retail.rc3=6204195316 +cards_team.retail.account.number7=0236437217 +cards_team.retail.standard.DC.for.IB=4644614151314533 +cards_team.retail.standard.CC.for.IB=4243360153387656 +cards_team.retail.rc4=9406251657 +cards_team.retail.account.CC=4243367043051509 +cards_team.retail.rc5=9406251646 +cards_team.retail.gold.CC=4243360148021493 +cards_team.child.rc=1001013574 +cards_team.child.op=208243633 +cards_team.child.card=4644614153403730 +cards_team.commercial.ico=75240564 +cards_team.commercial.ico.with.cards=43991076 +cards_team.commercial.DC=4785446146885536 +cards_team.commercial.premium.DC=4785447153306911 +cards_team.commercial.CC=4785533045324798 +cards_team.commercial.USD=4785448448761985 +cards_team.commercial.EUR=4785449440333104 +cards_team.retail.rc.for.temporary.block=7005245830 +cards_team.retail.standard.DC.for.temporary.block=4644614140986581 +cards_team.retail.eur.DC.for.temporary.block=4644619354660657 +cards_team.retail.rc.for.temporary.block.2=8908136182 +cards_team.retail.gold.DC.for.temporary.block=4644615146619266 +cards_team.retail.usd.DC.for.temporary.block=4644618346603841 +cards_team.retail.rc.for.temporary.block.CC=9801259006 +cards_team.retail.smart.CC.for.temporary.block=4243367052967991 +cards_team.retail.rc.for.temporary.block.CC.2=7601033957 +cards_team.retail.account.CC.for.temporary.block=4243367040810337 +cards_team.retail.rc.for.temporary.block.CC.3=9709054146 +cards_team.retail.gold.CC.for.temporary.block=4243360153012924 +cards_team.commercial.ico.for.temporary.block=08924015 +cards_team.commercial.DC.for.temporary.block=4785446151089461 +cards_team.commercial.premium.DC.for.temporary.block=4785447148387356 +cards_team.commercial.usd.DC.for.temporary.block=4785448445758000 +cards_team.commercial.eur.DC.for.temporary.block=4785449450643616 +cards_team.MBC.for.temporary.block=4785533048876067 +cards_team.child.rc.for.temporary.block=1111140283 +cards_team.child.card.for.temporary.block=4644614147641494 +cards_team.retail.rc.for.CC.clip1=7112236648 +cards_team.retail.smart.CC.clip=4243367050406018 +cards_team.retail.rc.for.CC.clip2=8408062751 +cards_team.retail.account.CC.clip=4243367043940115 +cards_team.retail.rc.for.CC.clip3=6312045146 +cards_team.retail.gold.CC.clip=4243360152762503 +cards_team.child.onboarding.birth.number=1611188964 +cards_team.child.onboarding.firstname=Dávid +cards_team.child.onboarding.lastname=Plochý +cards_team.child.onboarding.parent.birth.number=8603076493 +cards_team.child.onboarding.birth.date=7.3.1986 + +#investments +investments.sale.nib-credentials.clientUsername=306773913 +investments.sale.nib-credentials.clientPassword=Aa123456 +investments.sale.isin=CZ0008474145 + +#contact-center cluster +cc.client.email=212627870@moneta.cz +cc.client.phone-number=774825827 +cc.client.rc=9208262932 +cc.debitCardTestsClient.rc=9712057938 +cc.debitCardTests.phonenumber=734426356 +cc.creditCardClient.rc=9206176287 +cc.currentAccountTests.rc=0001060620 +cc.savingAccountTestsClient.rc=9807148164 +cc.GdprClient.rc=0001060631 +cc.internetBanka.rc=0001060642 +cc.transactionClient.rc=7960087762 +cc.ufoCrc.rc=9306024123 +cc.confirmatonOfAccountClient.rc=9206177420 +cc.ras.rc=9206176276 +cc.viewDocumentationOnClient.rc=8801264142 +cc.accessEmployee.rc=9812058531 +cc.sendingFormsClient.rc=9206176331 +cc.createInfoserviceClientFO.rc=9712057850 +cc.createInfoserviceClientFOP.ic=15851974 +cc.createInfoserviceClientPO.ic=43001688 +cc.somTaskListClient.rc=9206177420 +cc.somTaskListClient.cif=3000228490 +cc.arrangementXcom.rc=9206177398 +cc.disablingOnlinePaymentsClientFO.rc=9712057949 +cc.disablingOnlinePaymentsClientFOP.cif=3000234952 +cc.disablingOnlinePaymentsClientPO.ico=49437518 +cc.activitesOnCardClient.rc=8412075199 +cc.sendingDebitCardOnOmFO.rc=9712057916 +cc.sendingDebitCardOnOmFOP.ico=11372311 +cc.numberOfDebitCard.number=4644********2841 +cc.numberOfAccount.number=BÚ|236503894 + +#ufo framework team +ufo_framework_team.ufo_banka.client.cif=3000184501 + diff --git a/tests/src/test/resources/envs/fixme/tst1-with-data b/tests/src/test/resources/envs/fixme/tst1-with-data new file mode 100644 index 0000000..cbdfbd5 --- /dev/null +++ b/tests/src/test/resources/envs/fixme/tst1-with-data @@ -0,0 +1,400 @@ +# +# This file contains data that we don't create in tests, but rather expect to be present on the TST1 environment. +# + +environment.from=tst1 +environment.type=tst1 + +channels.branch.rc-of-existing-client=8807053530 +system.wso2.dummyrequesttest.uniptkey=78254460180 + +#UFO Branch clients - not to be used for other teams +branch.squad.rc.client=6305104113 +branch.ico=05425808 + +#UFO Operations clients - not to be used for other teams +ufo.operations.rc-of-existing-client=9404151218 +ufo.operations.rc-for-change-address=8112310910 +ufo.operations.account-number=3003385421 +ufo.operations.account-number-recipient=3003385448 +ufo.operations.account-number-for-payment-order-and-verification=216014436 +ufo.operations.cif=9001913002 + +#UFO CB clients - not to be used for other teams +commercial.cb.rc-fo=9503305306 +commercial.cb.ico-zero=01437798 +commercial.cb.ico=72293012 +commercial.cb.ico.fop=07998422 +commercial.cb.ico.po=00110515 +commercial.cb.cif=9002197106 +commercial.cb.proposal-id=314533 +commercial.cb.account-number=215216271 +commercial.cb.account-number-zero=0017316706 +commercial.cb.client-id=1277707 +commercial.cb.reg-number=400 18 000005 +commercial.cb.ico-list-for-verifying-clients=regression/ufo/cb/ListOfClientsIco_SME.txt +commercial.cb.ico-list-for-financial-sheet=regression/ufo/cb/ListOfClientsForCreatingFinancialSheetIco_SME.txt +commercial.cb.registration-number=425 21 000942 + +#Exevido +commercial.exevido.receiver=uchhtu9 +commercial.exevido.recipient-for-send-failure=5bwg8d9 +commercial.exevido.message-zfo-id=12501613 +commercial.exevido.attachment-for-processing=regression/exevido/MiladaSkodova.pdf +commercial.exevido.subject-for-processing=Milada Škodová +commercial.exevido.internal-reference-number-for-processing=41852/25/MMB Děd/Ned + +#Kasanova - additional config +kasanova-config.verify-banker.uid=9704 +kasanova-config.doOpposite=false +kasanova-config.doStorno=true + +#InternetBanka +IB.rc.user-with-CZK-and-EUR-account=8005137976 +IB.rc.user-with-two-CZK-accounts=8005137536 +IB.rc.electronic-payment-insurance=8506250104 +IB.rc.accident-insurance=8908061173 +IB.rc.long-term-travel-insurance=8908061140 +IB.rc.short-term-travel-insurance=9108192434 +IB.rc.property-cards-internetrisks-insurance=8506250148 +IB.rc.mass-payment=8506250280 +IB.rc.direct-debit=8506250335 +IB.rc.change.limit=6104072623 +IB.rc.loans-consolidation=7906260241 +IB.rc.transfer-founds=8506250236 +IB.rc.message.user-with-SU=8506250137 +IB.rc.mortgages.calculator=6404261391 +IB.rc.diponents-main-user=8506250225 +IB.rc.diponents-active-user=9509305278 +IB.rc.diponents-pasive-user=7112185982 +IB.rc.diponents-current-account-number=216061275 +IB.rc.smokeuser-with-one-CZK-account=8511160031 + +#New InternetBanka +nib.rc.login-logout=0003017245 +nib.rc.login-logout-fop=8506136914 +nib.rc.payments-one-account=8301196145 +nib.fromaccount.payments-one-account=3000210749 +nib.recipientaccount.payments-one-account=3000064913 +nib.recipientOtherBankAccount.payments-other-bank-account=19019 +nib.rc.mobilecredit-invoice-payment=8805143435 +nib.rc.mobilecredit-invoice-payment-fop=0109032506 +nib.fromaccount.mobilecredit-invoice-payment=3000253378 +nib.fromaccount.mobilecredit-invoice-payment-fop=3004020408 +nib.rc.foreign-payment=8908026314 +nib.rc.foreign-overdraft-payment=0202149178 +nib.fromaccount.foreign-payment=3003367848 +nib.fromaccount.foreign-overdraft-payment=3004272090 +nib.rc.standing-order=8908026006 +nib.fromaccount.standing-order=3003367266 +nib.rc.sipo-order=8908025511 +nib.fromaccount.sipo-order=3003366466 +nib.rc.messages=8812251745 +nib.fromaccount.messages=3000298306 +nib.rc.templates=8303066860 +nib.fromaccount.templates=3000298250 +nib.rc.bulk-payment=8908026061 +nib.fromaccount.bulk-payment=3003367370 +nib.rc.contacts=9905128640 +nib.rc.authorization=8908061459 +nib.rc.direct.debit-payment=8908025489 +nib.from.account.direct.debit=3003366423 +nib.rc.aboutTheSmartBanka=8804131138 +nib.rc.accountSetAsPreffered=8804131204 +nib.rc.limits=8804131149 +nib.rc.trustedContacts=8804131237 +nib.rc.personalAndContactDetails=8803268298 +nib.rc.envelopes=7604271246 +nib.rc.termDepositFon=8908026336 +nib.currentaccount.termDepositCzkFon=3003367813 +nib.currentaccount.termDepositEurFon=3000374911 +nib.currentaccount.termDepositUsdFon=3000024399 +nib.rc.termDepositFop=6152271015 +nib.currentaccount.termDepositCzkFop=3003973733 +nib.currentaccount.termDepositEurFop=3004295276 +nib.fromaccount.foreign-currency-payment=3003367848 +nib.recipientaccount.eur-currency=3000375770 +nib.recipientaccount.czk-currency=3003367792 +nib.rc.priority-payment=8908025500 +nib.fromaccount.priority-payment=3003366538 +nib.rc.priority-payment-fop=8253152061 +nib.fromaccount.priority-payment-fop=3004051570 +nib.recipientaccount.outside-moneta.czk-currency=123 +nib.rc.payment-over-limit=8908025467 +nib.fon.cif=9070215220 +nib.fon.account-number=3004108047 +nib.fon.login-name=304101037 +nib.fop.login-name=304100976 +nib.fop.cif=9070215060 +nib.po.login-name=304103986 +nib.po.ico=14498421 +nib.client.password=Aa123456 +nib.rc.bulk-payment-fop=6808216888 +nib.fromaccount.bulk-payment-fop=3003942849 +nib.rc.standing-order-fop=9608242864 +nib.fromaccount.standing-order-fop=3004279508 +nib.rc.direct.debit-payment-fop=9608242853 +nib.from.account.direct.debit-fop=3004279487 +nib.rc.sipo-order-fop=9608242842 +nib.fromaccount.sipo-order-fop=3004279516 +nib.rc.buildingSavings=9906214351 +nib.rc.rtvServicingDepositFon=9906214318 +nib.accountNumberRtvServicingDepositFon=3004324081 +nib.destinationAccountNumberDepositFon=3004304814 +nib.rc.rtvServicingWithdrawalFon=8712283756 +nib.accountNumberRtvServicingWithdrawalFon=3004367137 +nib.sourceNumberRtvServicingWithdrawalFon=3004367137 +nib.destinationAccountRtvServicingWithdrawalFon=3004366812 +nib.rc.rtvServicingCancelFon=8712283789 +nib.accountNumberRtvServicingCancelFon=3004367217 +nib.sourceNumberRtvServicingCancelFon=3004367217 +nib.destinationAccountRtvServicingCancelFon=3004366935 +nib.rc.accounts-settings=8506270663 +nib.accountNumber.accounts-settings=3004341420 +nib.iban.accounts-settings=CZ28 0600 0000 0030 0434 1420 +nib.savingsAccountNumber.accounts-settings=3004341439 +nib.iban.savingsAccount-settings=CZ97 0600 0000 0030 0434 1439 +nib.rc.changePassword=8712283734 +nib.savings.account.fop=3002779197 +nib.savings.account.fon=3003366642 +nib.rc.settings.cards.fon=8712283778 +nib.rc.disponents=8010234584 +nib.rc.exchange.no.foreign.account=8908025808 +nib.rc.exchange.eur.foreign.account=8908025819 +nib.rc.exchange.usd.foreign.account=8908025830 +nib.rc.exchange.all.accounts=8908025643 +nib.rc.settings.creditCards.fon=9910247380 +nib.rc.payments.advice.fop=7802278924 +nib.rc.payments.advice.fon=8908026314 +nib.rc.dps.fon=6409015492 +nib.rc.messages=9007166278 + +# CVM cluster data +cvm.client.cif=9002194682 +cvm.client.userid=3541801 +cvm.client.uniptkey=17918 +cvm.client.odsconsentschange.uniptkey=78279709776 +cvm.client.processconsentchange.uniptkey=78231590650 +cvm.client.infolimit.uniptkey=17918 +cvm.client.webexpressdropout.phonenumber=+420777874592 +cvm.client.wustenrotcredentials.uniptkey=78279801039 +cvm.client.pushmessagesend.cif=9002194682 +cvm.client.investment.cif=9002174685 +cvm.client.sbaexpapp.cif=9002194682 +cvm.client.setresponse.cif=9002194682 +cvm.application.key=67946893 +cvm.application.getappid.key=68048738 +cvm.wustenrot.ruskey=91247400002 + +# Insurance squad data - not to be used for other teams +rc.accidentInsuranceIb=7701146585 +rc.longTermTravelInsuranceIb=7312039163 +rc.shortTermTravelInsuranceIb=5611225939 +rc.createElectronicPaymantsInsuranceIb=7104269315 +rc.arrangementNewInsuranceCheck=8207247389 +rc.accidentInsuranceUfo=6008139423 +cif.accidentInsuranceUfo=9070044433 +rc.longTermTravelInsuranceUfo=6002275719 +cif.longTermTravelInsuranceUfo=9070044655 +ico.komexInsuranceBank=10134051 +expres.komexInsuranceBank=215220983 +rc.checkExpresInsuranceBank=6501158917 +expres.checkExpresInsuranceBank=215488322 +rc.checkUdcInsuranceBank=6501158939 +expres.checkUdcInsuranceBank=215488461 +rc.checkExpresPlusInsuranceBank=6501158928 +expres.checkExpresPlusInsuranceBank=215488349 +rc.checkUdcPlusInsuranceBank=6501158950 +expres.checkUdcPlusInsuranceBank=215488621 + +# PaymenEngine squad data - not to be used for other teams +payments_cashless.reservationController.account=214571087 +payments_cashless.reservationController.rc=8708047194 +payments_cashless.instantPaymentValidations.accounts=0214640652,0214490025 +payments_cashless.availableBalances.accounts=3000067743,216090623 +payments_cashless.availableBalances.rc=9909096351,0008100609 +payments_cashless.feeCalculator.account=3000067743 +payments_cashless.feeCalculator.iban=CZ4706000000003000067743 +payments_cashless.instantPaymentValidations.AGBAccount=174-1016932464 +payments_cashless.wso2ei.account=215876181 +payments_cashless.foreignPayment.MT101=CZ5406000000000189558189 +payments_cashless.foreignPayment.XCT=CZ0806000000000215864447 +payments_cashless.foreignPayment.XCTacc=215864447 +payments_cashless.foreignPayment.MT191.creditorIban=LU210030534867664600 +payments_cashless.foreignPayment.SEPA=CZ0806000000000215864447 +payments_cashless.foreignPayment.foreignIban=CZ4706000000003001810930 +payments_cashless.foreignPayment.foreignCreditor=3001810930 +payments_cashless.foreignPayment.debtorAccMcCFA=3002837510 +payments_cashless.foreignPayment.ibanMcCFA=CZ4006000000003002837510 +payments_cashless.foreignPayment.debtorAccXCT.FI2FI=115115115 +payments_cashless.foreignPayment.coverAccountIngoing=50121866998523/0300 +payments_cashless.foreignPayment.bicFiEurXCT.FI2FI=BOTKNL2X +payments_cashless.foreignPayment.bicFiUsdXCT.FI2FI=COSRPAPA +payments_cashless.foreignPayment.bicBankXCT.FI2FI=AGBACZPP +payments_cashless.foreignPayment.bankNameEurXCT.FI2FI=BBRUBEBB010 +payments_cashless.foreignPayment.bankNameUsdXCT.FI2FI=CITIUS33 +payments_cashless.foreignPayment.bankCodeXCT.FI2FI=36002163 +payments_cashless.foreignPayment.sepaFile=regression/transactional/cashless/sepa.xml +payments_cashless.foreignPayment.pacs009File=regression/transactional/cashless/CAP_PACS009_TST1.xml +payments_cashless.foreignPayment.pain001File=regression/transactional/cashless/CAP_PAIN001_TST1.xml +payments_cashless.foreignPayment.XCT_FOR_HD21=regression/transactional/cashless/XCT_FOR_HD21.xml +payments_cashless.foreignPayment.XCT_OUR=regression/transactional/cashless/XCT_OUR.xml +payments_cashless.foreignPayment.XCT_WITH_MT191=regression/transactional/cashless/XCT_WITH_MT191.xml +payments_cashless.foreignPayment.HD11_Starbuild=regression/transactional/cashless/HD11_Starbuild.xml +payments_cashless.foreignPayment.HD32_Starbuild=regression/transactional/cashless/HD32_Starbuild.xml +payments_cashless.foreignPayment.HD21_WITH_MT191=regression/transactional/cashless/HD21_WITH_MT191.xml +payments_cashless.foreignPayment.HD21_FILE=regression/transactional/cashless/HD21.xml +payments_cashless.foreignPayment.HD01_FILE=regression/transactional/cashless/HD01.xml +payments_cashless.foreignPayment.HD11-14_FILE=regression/transactional/cashless/HD11-14.xml +payments_cashless.foreignPayment.HD32_FILE=regression/transactional/cashless/HD32.xml +payments_cashless.foreignPayment.HD33_FILE=regression/transactional/cashless/HD33.xml +payments_cashless.foreignPayment.cfaFile=regression/transactional/cashless/MC_CFA.xml +payments_cashless.foreignPayment.painFile=regression/transactional/cashless/MC_PAIN.xml +payments_cashless.foreignPayment.cfdFile=regression/transactional/cashless/MC_CFD.xml +payments_cashless.foreignPayment.xctReturnFile=regression/transactional/cashless/XCT_RETURN.xml +payments_cashless.domesticPayment.timeAcc=3002875314 +payments_cashless.domesticPayment.loanAcc=3002921536 +payments_cashless.domesticPayment.debtorAccBalances=151416249 +payments_cashless.domesticPayment.debtorAccUFO=216194756 +payments_cashless.domesticPayment.debtorAcc=3002859402 +payments_cashless.domesticPayment.creditorAcc=4055377073 +payments_cashless.domesticPayment.creditorAccInh=3000227217 +payments_cashless.domesticPayment.bankCodeCr=5500 +payments_cashless.domesticPayment.bankNameCr=Raiffeisenbank a.s. +payments_cashless.domesticPayment.debtorAccNSF=215235798 +payments_cashless.domesticPayment.creditorAccInvalid=215379994 +payments_cashless.domesticPayment.clientId=9070004586 +payments_cashless.domesticPayment.clientsAccount=215437971 +payments_cashless.domesticPayment.accountCZK=3002860163 +payments_cashless.domesticPayment.accountEUR=3000025770 +payments_cashless.foreignPayment.IntermediaryBIC=BYLADEM1KMS +payments_cashless.domesticPayment.newAccount=3002861916 +payments_cashless.domesticPayment.activeAccount=214608089 +payments_cashless.domesticPayment.debtorAccMax1=3002861377 +payments_cashless.domesticPayment.creditorAccMax1=3002859402 +payments_cashless.domesticPayment.debtorAccMax2=3003018533 +payments_cashless.domesticPayment.creditorAccMax2=3002861764 +payments_cashless.domesticPayment.creditorAccOut=123 +payments_cashless.domesticPayment.bankCodeCreditorOut=0300 - Československá obchodní banka, a.s. +payments_cashless.domesticPayment.creditorAccInt=215929909 +payments_cashless.domesticPayment.closedAcc=215884202 +payments_cashless.domesticPayment.sleepingAcc=215263449 +payments_cashless.domesticPayment.closedState7=215997389 +payments_cashless.domesticPayment.blockedDebitsAcc=214523392 +payments_cashless.domesticPayment.accPrefixForExternal1=50008 +payments_cashless.domesticPayment.accExternal1=8022225514 +payments_cashless.domesticPayment.accExternalAsInternal1=2885527 +payments_cashless.domesticPayment.accExternalAsInternal2=1887897 +payments_cashless.domesticPayment.accTime=2375391 +payments_cashless.domesticPayment.accLoan=3001424183 +payments_cashless.domesticPayment.accBankbook=3872525 +payments_cashless.domesticPayment.standingOrderId=15105803 + +# SalesForce data +salesforce.test.account=07470975 +salesforce.test.accountId=0011X00000pQPGfQAO +salesforce.test.systemUserId=00520000003HFQGAA4 +salesforce.test.testAutomationUserId=0051X000008OMd0QAG +salesforce.test.accountRemedialYes=25851136 +salesforce.test.accountRemedialYesId=0011X00000pQ5ikQAC + +# Cards team +cards_team.retail.rc=8607240840 +cards_team.retail.standard.DC=4644614153948858 +cards_team.retail.standard.virtual.DC=4644614141598013 +cards_team.retail.standard.virtual.pride.DC=4644614140199375 +cards_team.retail.gold.DC=4644615142614832 +cards_team.retail.virtual.gold.DC=4644615142614832 +cards_team.retail.eur.DC=4644619347649890 +cards_team.retail.usd.DC=4644618346879003 +cards_team.retail.rc3=8703126410 +cards_team.retail.account.number7=3003996820 +cards_team.retail.standard.DC.for.IB=4644614144019660 +cards_team.retail.standard.CC.for.IB=4243360148629451 +cards_team.retail.rc2=8712045661 +cards_team.retail.smart.CC=4243367048709978 +cards_team.retail.rc4=9652267493 +cards_team.retail.account.CC=4243367046568574 +cards_team.retail.rc5=9652268912 +cards_team.retail.gold.CC=4243360146483620 +cards_team.child.rc=1408251240 +cards_team.child.op=210055555 +cards_team.child.card=4644614150052332 +cards_team.commercial.ico.with.cards=87557878 +cards_team.commercial.DC=4785446140278621 +cards_team.commercial.premium.DC=4785447146768755 +cards_team.commercial.CC=5530613041354323 +cards_team.commercial.USD=4785448444953891 +cards_team.commercial.EUR=4785449445728076 +cards_team.retail.rc.for.temporary.block=0310303389 +cards_team.retail.standard.DC.for.temporary.block=4644614154298352 +cards_team.retail.eur.DC.for.temporary.block=4644619346343107 +cards_team.retail.rc.for.temporary.block.2=0310303389 +cards_team.retail.gold.DC.for.temporary.block=4644615150703865 +cards_team.retail.usd.DC.for.temporary.block=4644618347444104 +cards_team.retail.rc.for.temporary.block.CC=9403171547 +cards_team.retail.smart.CC.for.temporary.block=4243367047315082 +cards_team.retail.rc.for.temporary.block.CC.2=8107026521 +cards_team.retail.account.CC.for.temporary.block=4243367041424260 +cards_team.retail.rc.for.temporary.block.CC.3=83110294089403171547 +cards_team.retail.gold.CC.for.temporary.block=4243360141650355 +cards_team.commercial.ico.for.temporary.block=67813003 +cards_team.commercial.DC.for.temporary.block=4785446151056627 +cards_team.commercial.premium.DC.for.temporary.block=4785447142552765 +cards_team.commercial.usd.DC.for.temporary.block=4785448452109014 +cards_team.commercial.eur.DC.for.temporary.block=4785449450087913 +cards_team.MBC.for.temporary.block=4785533044768136 +cards_team.child.rc.for.temporary.block=1056151074 +cards_team.child.card.for.temporary.block=4644614154504049 +cards_team.retail.rc.for.CC.clip1=9305227228 +cards_team.retail.smart.CC.clip=4243367053767135 +cards_team.retail.rc.for.CC.clip2=8703113892 +cards_team.retail.account.CC.clip=4243367052253434 +cards_team.retail.rc.for.CC.clip3=6008173677 +cards_team.retail.gold.CC.clip=4243360148721035 +cards_team.child.onboarding.birth.number=1611181286 +cards_team.child.onboarding.firstname=Nicolas +cards_team.child.onboarding.lastname=Čejka +cards_team.child.onboarding.parent.birth.number=8209228577 +cards_team.child.onboarding.birth.date=22.9.1982 + +#investments +investments.sale.nib-credentials.clientUsername=304083473 +investments.sale.nib-credentials.clientPassword=Aa123456 +investments.sale.isin=CZ0008474145 + +#contact-center cluster +cc.client.email=212628185@moneta.cz +cc.client.phone-number=734426356 +cc.client.rc=8801264142 +cc.debitCardTestsClient.rc=9712057938 +cc.debitCardTests.phonenumber=734426356 +cc.creditCardClient.rc=9206176287 +cc.currentAccountTests.rc=0001060620 +cc.savingAccountTestsClient.rc=9807148164 +cc.GdprClient.rc=0001060631 +cc.internetBanka.rc=0001060642 +cc.transactionClient.rc=7960087762 +cc.viewDocumentationOnClient.rc=8801264142 +cc.ufoCrc.rc=9306024123 +cc.ras.rc=9206176276 +cc.sendingFormsClient.rc=9206176331 +cc.confirmatonOfAccountClient.rc=9206177420 +cc.accessEmployee.rc=9812058531 +cc.somTaskListClient.rc=9206177409 +cc.somTaskListClient.cif=9070227451 +cc.arrangementXcom.rc=9206177398 +cc.disablingOnlinePaymentsClientFO.rc=9712057949 +cc.disablingOnlinePaymentsClientFOP.cif=9070233356 +cc.disablingOnlinePaymentsClientPO.ico=49437518 +cc.activitesOnCardClient.rc=8412075199 +cc.sendingDebitCardOnOmFO.rc=9712057916 +cc.sendingDebitCardOnOmFOP.ico=11372311 +cc.createInfoserviceClientFO.rc=9712057850 +cc.createInfoserviceClientFOP.ic=15851974 +cc.createInfoserviceClientPO.ic=43001688 +cc.numberOfDebitCard.number=4644********7490 +cc.numberOfAccount.number=BÚ|3004313577 + +#ufo framework team +ufo_framework_team.ufo_banka.client.cif=9070080227 \ No newline at end of file diff --git a/tests/src/test/resources/envs/fixme/tst3-with-data b/tests/src/test/resources/envs/fixme/tst3-with-data new file mode 100644 index 0000000..afde2af --- /dev/null +++ b/tests/src/test/resources/envs/fixme/tst3-with-data @@ -0,0 +1,8 @@ +# +# This file contains data that we don't create in tests, but rather expect to be present on the TST3 environment. +# +environment.from=tst3 +environment.type=tst3 + +channels.branch.rc-of-existing-client=7303025323 + diff --git a/tests/src/test/resources/envs/fve b/tests/src/test/resources/envs/fve new file mode 100644 index 0000000..c478970 --- /dev/null +++ b/tests/src/test/resources/envs/fve @@ -0,0 +1,35 @@ +# This is shared config for environment.type=tst1. Do not edit it unless you know what you are doing. +environment.from=default + +#Vault +vault.path.base=/kv/autotesty/fve +vault.secure.store.path=/kv/tif/test/securestore +vault.client.secrets.path=/kv/autotesty/fve/wso2-keys + +#UDEBS Database +endpoints.udebs.url=jdbc:oracle:thin:@udebsfvea.ux.mbid.cz:1521:gem_fve + +# UFO Banka +endpoints.ufo.banka.url=https://frontendfv.lb.mbid.cz/fve/ufo/bankaTech + +#WSO2 +endpoints.wso2.gw.url=https://wso2-fve-gw.ux.mbid.cz + +#IB application +endpoints.ib.url=https://fvibs.internetbanka.cz/ibs/ControllerServlet +endpoints.new.ib.url=https://fvmbs.internetbanka.cz/spacex-ib/#/ + +#Open API +endpoints.openapi.url=https://fvmbs.internetbanka.cz/openapi + +#Open API CA +endpoints.openapica.url=https://fvmbs.internetbanka.cz/caapi + +#ODS DB +endpoints.ods.url=jdbc:oracle:thin:@//exadrc5tst01-scan1.ux.mbid.cz:1521/ODS_FVE + +#Hypos +endpoints.hypos.url=https://hyposfve.mbid.cz/ + +#Hypos db +endpoints.hyposdb.url=jdbc:sqlserver://MBCZVW6AL0SQLT5.mbid.cz:1433;databaseName=HyposFVE diff --git a/tests/src/test/resources/envs/live b/tests/src/test/resources/envs/live new file mode 100644 index 0000000..5871d53 --- /dev/null +++ b/tests/src/test/resources/envs/live @@ -0,0 +1,7 @@ +environment.from=default + +#Vault +vault.path.base=/kv/autotesty/live + +#Broadcom +endpoints.broadcom.url=https://secure7.arcot.com/vpas/admin/adminlogin.jsp \ No newline at end of file diff --git a/tests/src/test/resources/envs/ppe b/tests/src/test/resources/envs/ppe new file mode 100644 index 0000000..9a67b83 --- /dev/null +++ b/tests/src/test/resources/envs/ppe @@ -0,0 +1,79 @@ +# This is shared config for environment.type=ppe. Do not edit it unless you know what you are doing. +environment.from=auto/ppe + +#Vault +vault.path.base=/kv/autotesty/ppe +vault.secure.store.path=/kv/tif/test/securestore +vault.client.secrets.path=/kv/autotesty/ppe/wso2-keys +vault.cagw.client.secrets.path=/kv/autotesty/ppe/cagw-keys + +#Open API +endpoints.openapi.url=https://tmbs.internetbanka.cz/openapi/ + +#Open API CA +endpoints.openapica.url=https://tmbs.internetbanka.cz/caapi/ + +# UFO Banka +endpoints.ufo.banka.url=https://frontendppe.lb.mbid.cz/ppe/ufo/bankaTech +// URL for UFO WAS on PPE endpoints.ufo.banka.url=https://frontendppe/PPE/ufo/banka + +#Brokers portal +endpoints.broker-portal.url=https://ppe-broker.moneta.cz/#/ + +#IB applications +endpoints.ib.url=https://tibs.internetbanka.cz/ppe/ibs/ControllerServlet +endpoints.new.ib.url=https://tmbs.internetbanka.cz/spacex-ib/#/ + +#WSO2 GW +endpoints.wso2.gw.url=https://wso2-ppe-gw.ux.mbid.cz + +#Hypos +endpoints.hypos.url=https://hyposppe.mbid.cz/ + +#UDEBS Database +endpoints.udebs.url=jdbc:oracle:thin:@ldap://oidldap1.ux.mbid.cz:389/UDEBS_T2,cn=OracleContext,dc=oracle,dc=moneta,dc=cz ldap://oidldap2.ux.mbid.cz:389/UDEBS_T2,cn=OracleContext,dc=oracle,dc=moneta,dc=cz +#endpoints.udebs.url=jdbc:oracle:thin:@gemppea.ux.mbid.cz:1521:udebs_t2 + +#NAS DB +endpoints.nasdb.url=jdbc:oracle:thin:@ldap://oidldap1.ux.mbid.cz:389/NAS_TST2,cn=OracleContext,dc=oracle,dc=moneta,dc=cz ldap://oidldap2.ux.mbid.cz:389/NAS_TST2,cn=OracleContext,dc=oracle,dc=moneta,dc=cz +#endpoints.nasdb.url=jdbc:oracle:thin:@tstnasdbx.ux.mbid.cz:1521:NASTST2 + +#ODS DB +endpoints.ods.url=jdbc:oracle:thin:@ldap://oidldap1.ux.mbid.cz:389/ODS_TST2,cn=OracleContext,dc=oracle,dc=moneta,dc=cz ldap://oidldap2.ux.mbid.cz:389/ODS_TST2,cn=OracleContext,dc=oracle,dc=moneta,dc=cz +#endpoints.ods.url=jdbc:oracle:thin:@//exadrc3tst-scan.ux.mbid.cz:1521/ODS_TST2_SVC + +#CA GW +endpoints.cagw.url=https://api.ppe.moneta-containers.net + +#Moneta API portal +endpoints.moneta-api-portal.url=https://portal.ppe.ux.mbid.cz/ + +#Hypos db +endpoints.hyposdb.url=jdbc:sqlserver://MBCZVW6AL0SQLP4.mbid.cz\\SQL2016:1433;databaseName=HyposPPE + +#MONETA portal +endpoints.moneta-portal.url=https://ppe.moneta.cz/ + +#Payment engine +endpoints.payment-engine.url=https://payhubppe.lb.mbid.cz/login + +#Refinanso web portal +endpoints.refinanso.url=https://ppe-hypoteka.moneta.cz/refinancing/#krok-1 + +#Finanso web portal +endpoints.finanso.url=https://ppe-hypoteka.moneta.cz/app/income + +#Sales Force +endpoints.sales-force.url=https://test.salesforce.com + +#Sales Force API +endpoints.sales-force.api.url=https://moneta--ppe.my.salesforce.com/services + +#SZR mock server +endpoints.szr-mock-api.url=https://api-szr.ppe.moneta-containers.net + +#Forte +endpoints.forte.url=https://forteppe.ux.mbid.cz/portal/home/ + +#Exevido +endpoints.exevido.url=https://exevido.ppe.moneta-containers.net/#/auth/login \ No newline at end of file diff --git a/tests/src/test/resources/envs/tst1 b/tests/src/test/resources/envs/tst1 new file mode 100644 index 0000000..b6d1a1e --- /dev/null +++ b/tests/src/test/resources/envs/tst1 @@ -0,0 +1,100 @@ +# This is shared config for environment.type=tst1. Do not edit it unless you know what you are doing. +environment.from=auto/tst + +#Vault +vault.path.base=/kv/autotesty/tst1 +vault.secure.store.path=/kv/tif/test/securestore +vault.client.secrets.path=/kv/autotesty/tst1/wso2-keys +vault.cagw.client.secrets.path=/kv/autotesty/tst1/cagw-keys + +#UDEBS Database +endpoints.udebs.url=jdbc:oracle:thin:@ldap://oidldap1.ux.mbid.cz:389/GEMTEST,cn=OracleContext,dc=oracle,dc=moneta,dc=cz ldap://oidldap2.ux.mbid.cz:389/GEMTEST,cn=OracleContext,dc=oracle,dc=moneta,dc=cz +#endpoints.udebs.url=jdbc:oracle:thin:@gemtesta.ux.mbid.cz:1521:gemtest + +#IB applications +endpoints.ib.url=https://teibs.internetbanka.cz/tst1/ibs/ControllerServlet +endpoints.new.ib.url=https://tembs.internetbanka.cz/spacex-ib/#/ + +#Open API +endpoints.openapi.url=https://tembs.internetbanka.cz/openapi + +#Open API CA +endpoints.openapica.url=https://tembs.internetbanka.cz/caapi + +#CA GW +endpoints.cagw.url=https://api.tst.moneta-containers.net + +#CA GW AUTH +endpoints.cagw.auth.url=https://apiauth-test.moneta.cz/ + +#MONETA portal +endpoints.moneta-portal.url=https://test1-aws.moneta.cz/ + +# UFO Banka +endpoints.ufo.banka.url=https://frontendtsta.lb.mbid.cz/tst1/ufo/bankaTech +// URL for UFO WAS on TST1 endpoints.ufo.banka.url=https://frontendtst.lb.mbid.cz/TST1/ufo/banka + +#OAUTH2 +endpoints.oauth2.web.url=https://api-test.moneta.cz/ + +# Kasanova +endpoints.kasanova.url=https://kasatest:8095/KasanovaWeb/ + +#DMBSIB +endpoints.dmbsib.web.url = https://dmbs.internetbanka.cz/digdev8/ + +#NAS DB +endpoints.nasdb.url=jdbc:oracle:thin:@ldap://oidldap1.ux.mbid.cz:389/NAS_TST,cn=OracleContext,dc=oracle,dc=moneta,dc=cz ldap://oidldap2.ux.mbid.cz:389/NAS_TST,cn=OracleContext,dc=oracle,dc=moneta,dc=cz +#endpoints.nasdb.url=jdbc:oracle:thin:@tstnasdbx.ux.mbid.cz:1521:NASTST + +#Hypos +endpoints.hypos.url=https://hypostst.mbid.cz/ + +#Brokers portal +endpoints.broker-portal.url=https://test-broker.moneta.cz/#/ + +#ODS DB +endpoints.ods.url=jdbc:oracle:thin:@ldap://oidldap1.ux.mbid.cz:389/ODS_TST1,cn=OracleContext,dc=oracle,dc=moneta,dc=cz ldap://oidldap2.ux.mbid.cz:389/ODS_TST1,cn=OracleContext,dc=oracle,dc=moneta,dc=cz +#endpoints.ods.url=jdbc:oracle:thin:@//exattc5tst01-scan1.ux.mbid.cz:1521/ODSTST1_SVC + +#Moneta API portal +endpoints.moneta-api-portal.url=https://portal.tst.ux.mbid.cz/ + +#WSO2 GW +endpoints.wso2.gw.url=https://wso2-tst1-gw.ux.mbid.cz + +#Payment engine +endpoints.payment-engine.url=https://payhubtst.lb.mbid.cz/login + +#Hypos db +endpoints.hyposdb.url=jdbc:sqlserver://MBCZVW6AL0SQLT5.mbid.cz\\SQL2016:1433;databaseName=HyposTST + +#Demo endpoint +endpoints.demo.url=https://www.monetaauto.cz/ + +#Refinanso web portal +endpoints.refinanso.url=https://test1-hypoteka.moneta.cz/refinancing/#krok-1 + +#Finanso web portal +endpoints.finanso.url=https://test1-hypoteka.moneta.cz/app/income + +#Sales Force +endpoints.sales-force.url=https://moneta--tst1.sandbox.my.salesforce.com + +#Sales Force API +endpoints.sales-force.api.url=https://moneta--tst1.my.salesforce.com/services + +#Forte-light +endpoints.fortelight.url=https://forgetest.ux.mbid.cz/portal/home/ + +#Forte +endpoints.forte.url=https://fortetest.ux.mbid.cz/portal/home/ + +#SZR mock server +endpoints.szr-mock-api.url=https://api-szr.tst.moneta-containers.net + +#Exevido +endpoints.exevido.url=https://exevido.tst.moneta-containers.net/#/auth/login + +#Cashman +endpoints.cashman.url=https://cashmantst.mbid.cz/ \ No newline at end of file diff --git a/tests/src/test/resources/envs/tst3 b/tests/src/test/resources/envs/tst3 new file mode 100644 index 0000000..a801d9f --- /dev/null +++ b/tests/src/test/resources/envs/tst3 @@ -0,0 +1,47 @@ +# This is shared config for environment.type=tst3. Do not edit it unless you know what you are doing. +environment.from=default + +#Vault +vault.path.base=/kv/autotesty/tst3 +vault.secure.store.path=/kv/tif/test/securestore +vault.client.secrets.path=/kv/autotesty/tst3/wso2-keys + +#Open API +endpoints.openapi.url=https://tst3.internetbanka.cz/openapi/ + +#Open API CA +endpoints.openapica.url=https://tst3.internetbanka.cz/caapi/ + +#UFO CB +endpoints.ufo.cb.url=https://frontendtst/TST3/ufo/SME + +#IB application +endpoints.ib.url=https://tst3.internetbanka.cz/ibs/ControllerServlet + +#CBL +endpoints.cbl.url=https://tst3.internetbanka.cz/openapi + +#CBLCA +endpoints.cblca.url=https://tst3.internetbanka.cz/caapi/ + +#UFO Banka +endpoints.ufo.banka.url=https://frontendtst/TST3/ufo/banka + +#WSO2 +endpoints.wso2.gw.url=https://mbczvl1dl0ihat3.ux.mbid.cz:8243/ + +#UDEBS Database +endpoints.udebs.url=jdbc:oracle:thin:@gemtestx.ux.mbid.cz:1521:gemtest3 + +#NAS DB +endpoints.nasdb.url=jdbc:oracle:thin:@tstnasdbx.ux.mbid.cz:1521:NASTST3 + +#MONETA portal +# WARNING: test2-nwp is temporary, for FV project only +endpoints.moneta-portal.url=https://test2-nwp.moneta.cz/ + +#ODS DB +endpoints.ods.url=jdbc:oracle:thin:@exadrc3-scan1.ux.mbid.cz:1521:odstst3 + +#Hypos +endpoints.hypos.url=http://hypostst3.mbid.cz/Hypos/ diff --git a/tests/src/test/resources/junit-platform.properties b/tests/src/test/resources/junit-platform.properties new file mode 100644 index 0000000..fd9f8f9 --- /dev/null +++ b/tests/src/test/resources/junit-platform.properties @@ -0,0 +1,5 @@ +junit.jupiter.execution.parallel.enabled = true +junit.jupiter.execution.parallel.config.strategy = custom +junit.jupiter.execution.parallel.config.custom.class = cz.moneta.test.testrunner.HarnessJunitParallelStrategy +junit.jupiter.execution.parallel.mode.default = concurrent +junit.jupiter.execution.parallel.mode.classes.default = same_thread \ No newline at end of file diff --git a/tests/src/test/resources/log4j2-DEBUG.xml b/tests/src/test/resources/log4j2-DEBUG.xml new file mode 100644 index 0000000..ab04367 --- /dev/null +++ b/tests/src/test/resources/log4j2-DEBUG.xml @@ -0,0 +1,30 @@ + + + + + %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n + target/logs + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/src/test/resources/log4j2.xml b/tests/src/test/resources/log4j2.xml new file mode 100644 index 0000000..03dbf33 --- /dev/null +++ b/tests/src/test/resources/log4j2.xml @@ -0,0 +1,49 @@ + + + + target/logs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/aresapi/aresSearch.json b/tests/src/test/resources/regression/aresapi/aresSearch.json new file mode 100644 index 0000000..fb06eee --- /dev/null +++ b/tests/src/test/resources/regression/aresapi/aresSearch.json @@ -0,0 +1,11 @@ +{ + "pravniForma": [ + "101" + ], + "czNace": [ + "014" + ], + "pocet": 10, + "start": 0, + "razeni": [] +} \ No newline at end of file diff --git a/tests/src/test/resources/regression/exevido/JanaKafkova.pdf b/tests/src/test/resources/regression/exevido/JanaKafkova.pdf new file mode 100644 index 0000000..1048e56 Binary files /dev/null and b/tests/src/test/resources/regression/exevido/JanaKafkova.pdf differ diff --git a/tests/src/test/resources/regression/exevido/MiladaSkodova.pdf b/tests/src/test/resources/regression/exevido/MiladaSkodova.pdf new file mode 100644 index 0000000..bf0443d Binary files /dev/null and b/tests/src/test/resources/regression/exevido/MiladaSkodova.pdf differ diff --git a/tests/src/test/resources/regression/exevido/exeMessage.json b/tests/src/test/resources/regression/exevido/exeMessage.json new file mode 100644 index 0000000..c9e2716 --- /dev/null +++ b/tests/src/test/resources/regression/exevido/exeMessage.json @@ -0,0 +1,30 @@ +{ + "exevido_subject": null, + "message_state": null, + "origin": "API", + "sender_name": null, + "sender_id": null, + "issue_number": null, + "date_created_to": "2025-09-08T09:58:58.798Z", + "acceptance_time_to": null, + "date_created_from": "2025-05-08T09:58:58.798Z", + "sorting_parameter_name": null, + "databox_isds_id": null, + "sender_identification": null, + "delivery_date_from": null, + "recipient_id": null, + "recipient_identification": null, + "date_completed_to": null, + "date_to_solve_to": null, + "acceptance_time_from": null, + "source_system": null, + "message_id": null, + "message_type": "INCOMING", + "paginate_offset": 0, + "paginate_max": 10, + "date_completed_from": null, + "delivery_date_to": null, + "recipient_name": null, + "date_to_solve_from": null, + "sorting_type": null +} \ No newline at end of file diff --git a/tests/src/test/resources/regression/exevido/incomeMessage.json b/tests/src/test/resources/regression/exevido/incomeMessage.json new file mode 100644 index 0000000..590b5e9 --- /dev/null +++ b/tests/src/test/resources/regression/exevido/incomeMessage.json @@ -0,0 +1,13 @@ +{ + "recipientName": "Banka", + "annotation": "Automat TEST", + "recipientAddress": "Vyskočilova 1422 Praha 4 14028", + "recipientId": "5nqh2a3", + "attachments": [ + { + "name": "OBRATPORUSSP07470975_11092025.pdf", + "uniqueBusDocTypeId": "PR_LO_9664", + "url": "https://dmstst1.mbid.cz:443/icmrm/ICMResourceManager/OBRATPORUSSP07470975_11092025.pdf?order=retrieve&item-id=A1001001A25I11A90015A34183&version=1&collection=S3Only&libname=icmnlsdb&update-date=2025-09-11+07%3A00%3A14.973316000&token=ADUA.OBnFTtuGK.U2_AZSI4ZbHuyD90sjIa_yyY7UjPrXJEFqAyYtkh5g.8BV;&content-length=0&content-type=application%2Fpdf" + } + ] +} \ No newline at end of file diff --git a/tests/src/test/resources/regression/exevido/isdsDataboxSearch.json b/tests/src/test/resources/regression/exevido/isdsDataboxSearch.json new file mode 100644 index 0000000..7b8ea0f --- /dev/null +++ b/tests/src/test/resources/regression/exevido/isdsDataboxSearch.json @@ -0,0 +1,16 @@ +{ + "databoxId": "4rfajux", + "databoxType": "", + "ico": "25672720", + "firstName": "", + "lastName": "", + "firmName": "", + "city": "", + "street": "", + "numberInMunicipality": "", + "numberInStreet": "", + "zipCode": "", + "disableFulltext": "false", + "pageSize": "100", + "page": "0" +} \ No newline at end of file diff --git a/tests/src/test/resources/regression/exevido/outgoingMessage.json b/tests/src/test/resources/regression/exevido/outgoingMessage.json new file mode 100644 index 0000000..b4459e8 --- /dev/null +++ b/tests/src/test/resources/regression/exevido/outgoingMessage.json @@ -0,0 +1,20 @@ +{ + "annotation": "Návrh úrokové sazby pro příští úrokové období 201354876", + "recipientId": "uchhtu9", + "recipientName": "MONETA Stavební Spořitelna, a.s.", + "senderId": "4rfajux", + "solverId": "900900311", + "costCentrum": "4008", + "sourceSystem": "UFO_CB", + "recipientIdentification": "", + "senderIdentification": "201354876", + "recipientReferenceNumber": "", + "senderReferenceNumber": "FIX_US_OTO_1201354876", + "attachments": [ + { + "name": "FIX_US_OTO_1201354876_13082025.pdf", + "uniqueBusDocTypeId": "PR_LO_9364", + "url": "https://dmstst1.mbid.cz:443/icmrm/ICMResourceManager/FIX_US_OTO_1201354876_13082025.pdf?order=retrieve&item-id=A1001001A25H13A90009G45819&version=1&collection=S3Only&libname=icmnlsdb&update-date=2025-08-13+07%3A00%3A09.627660000&token=ADUA.O9OJyEYtp8U2__1ZjvpfkP4zm62xvfO6UQOtPdncYI1nrk53cXpZz9KN;&content-length=0&content-type=application%2Fpdf" + } + ] +} \ No newline at end of file diff --git a/tests/src/test/resources/regression/exevido/testExevido.txt b/tests/src/test/resources/regression/exevido/testExevido.txt new file mode 100644 index 0000000..3b12464 --- /dev/null +++ b/tests/src/test/resources/regression/exevido/testExevido.txt @@ -0,0 +1 @@ +TEST \ No newline at end of file diff --git a/tests/src/test/resources/regression/exevido/testExevido2.txt b/tests/src/test/resources/regression/exevido/testExevido2.txt new file mode 100644 index 0000000..fdbd793 --- /dev/null +++ b/tests/src/test/resources/regression/exevido/testExevido2.txt @@ -0,0 +1,2 @@ +Tento soubor byl vygenerován automatickým testem. +Slouží k ověření funkcionality nahrávání a stahování příloh. \ No newline at end of file diff --git a/tests/src/test/resources/regression/forte/dealer.xlsx b/tests/src/test/resources/regression/forte/dealer.xlsx new file mode 100644 index 0000000..6990e03 Binary files /dev/null and b/tests/src/test/resources/regression/forte/dealer.xlsx differ diff --git a/tests/src/test/resources/regression/forte/pobocka.jpg b/tests/src/test/resources/regression/forte/pobocka.jpg new file mode 100644 index 0000000..4344791 Binary files /dev/null and b/tests/src/test/resources/regression/forte/pobocka.jpg differ diff --git a/tests/src/test/resources/regression/loans/BIRTH_CERTIFICATE.jpg b/tests/src/test/resources/regression/loans/BIRTH_CERTIFICATE.jpg new file mode 100644 index 0000000..f2573e0 Binary files /dev/null and b/tests/src/test/resources/regression/loans/BIRTH_CERTIFICATE.jpg differ diff --git a/tests/src/test/resources/regression/loans/ID_BACK.jpg b/tests/src/test/resources/regression/loans/ID_BACK.jpg new file mode 100644 index 0000000..023fe81 Binary files /dev/null and b/tests/src/test/resources/regression/loans/ID_BACK.jpg differ diff --git a/tests/src/test/resources/regression/loans/ID_FRONT.jpeg b/tests/src/test/resources/regression/loans/ID_FRONT.jpeg new file mode 100644 index 0000000..5c37595 Binary files /dev/null and b/tests/src/test/resources/regression/loans/ID_FRONT.jpeg differ diff --git a/tests/src/test/resources/regression/loans/PASSPORT.jpeg b/tests/src/test/resources/regression/loans/PASSPORT.jpeg new file mode 100644 index 0000000..851dadc Binary files /dev/null and b/tests/src/test/resources/regression/loans/PASSPORT.jpeg differ diff --git a/tests/src/test/resources/regression/loans/RP.jpg b/tests/src/test/resources/regression/loans/RP.jpg new file mode 100644 index 0000000..098cd23 Binary files /dev/null and b/tests/src/test/resources/regression/loans/RP.jpg differ diff --git a/tests/src/test/resources/regression/loans/fake_liveness.webm b/tests/src/test/resources/regression/loans/fake_liveness.webm new file mode 100644 index 0000000..da946da Binary files /dev/null and b/tests/src/test/resources/regression/loans/fake_liveness.webm differ diff --git a/tests/src/test/resources/regression/loans/invalid_image.jpg b/tests/src/test/resources/regression/loans/invalid_image.jpg new file mode 100644 index 0000000..efcfb0e Binary files /dev/null and b/tests/src/test/resources/regression/loans/invalid_image.jpg differ diff --git a/tests/src/test/resources/regression/transactional/cards/VMX.ACCOUNT.INQ.xml b/tests/src/test/resources/regression/transactional/cards/VMX.ACCOUNT.INQ.xml new file mode 100644 index 0000000..e6ca2e4 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/VMX.ACCOUNT.INQ.xml @@ -0,0 +1,8 @@ + + VMX.ACCOUNT.INQ + E8VEA + + 00000MMB + + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/getCardData.xml b/tests/src/test/resources/regression/transactional/cards/getCardData.xml new file mode 100644 index 0000000..22ec3c4 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/getCardData.xml @@ -0,0 +1,11 @@ + + GEMCB + OBCHOD + H + + + + + + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/getInstPtKey.xml b/tests/src/test/resources/regression/transactional/cards/getInstPtKey.xml new file mode 100644 index 0000000..633802c --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/getInstPtKey.xml @@ -0,0 +1,4 @@ + + + ICB0 + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/get_credit_card_details.xml b/tests/src/test/resources/regression/transactional/cards/get_credit_card_details.xml new file mode 100644 index 0000000..96a868b --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/get_credit_card_details.xml @@ -0,0 +1,10 @@ + + GEMCB + 2 + 1 + 1 + + 1 + 1 + 1 + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/get_debit_card_details.xml b/tests/src/test/resources/regression/transactional/cards/get_debit_card_details.xml new file mode 100644 index 0000000..c7a027b --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/get_debit_card_details.xml @@ -0,0 +1,7 @@ + + GEMCB + 2 + 1 + 1 + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/sme/M_ASM_MONETARY_UPD_EMEA.xml b/tests/src/test/resources/regression/transactional/cards/sme/M_ASM_MONETARY_UPD_EMEA.xml new file mode 100644 index 0000000..21d9296 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/sme/M_ASM_MONETARY_UPD_EMEA.xml @@ -0,0 +1,18 @@ + + M.ASM.MONETARY.UPD.EMEA + E8V6 + + 00000MMB + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/sme/R2-VMX.CUSTOMER.UPD.EMEA.E8V7.xml b/tests/src/test/resources/regression/transactional/cards/sme/R2-VMX.CUSTOMER.UPD.EMEA.E8V7.xml new file mode 100644 index 0000000..c54502a --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/sme/R2-VMX.CUSTOMER.UPD.EMEA.E8V7.xml @@ -0,0 +1,26 @@ + + VMX.CUSTOMER.UPD.EMEA + E8V7 + + 00000MMB + 00000MMB + + + 1 + 300000 + 32 + 33 + 34 + 35 + 366 + 35666 + 4456 + 445 + 0 + + + 0 + 0 + 0 + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/sme/R3-M.CMS.ACCTTRANSFER.ACT.EMEA.E8V4.xml b/tests/src/test/resources/regression/transactional/cards/sme/R3-M.CMS.ACCTTRANSFER.ACT.EMEA.E8V4.xml new file mode 100644 index 0000000..a314062 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/sme/R3-M.CMS.ACCTTRANSFER.ACT.EMEA.E8V4.xml @@ -0,0 +1,62 @@ + + M.CMS.ACCTTRANSFER.ACT.EMEA + E8V4 + + 00000MMB + P + 861 + + 411 + + + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/sme/R3-VMX.ACCTWAIVEFLG.UPD.EMEA.E8V4.xml b/tests/src/test/resources/regression/transactional/cards/sme/R3-VMX.ACCTWAIVEFLG.UPD.EMEA.E8V4.xml new file mode 100644 index 0000000..48411c8 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/sme/R3-VMX.ACCTWAIVEFLG.UPD.EMEA.E8V4.xml @@ -0,0 +1,44 @@ + + VMX.ACCTWAIVEFLG.UPD.EMEA + E8V4 + + 00000MMB + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + + 1 + + + 2 + + + 1 + + + 4 + + 1 + 1 + 1 + + + 1 + 1 + + + 1 + 98 + W + + + 1 + 1 + 0 + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/sme/R3-VMX.EXTENDED.LOOKUP.INQ.E8V2.xml b/tests/src/test/resources/regression/transactional/cards/sme/R3-VMX.EXTENDED.LOOKUP.INQ.E8V2.xml new file mode 100644 index 0000000..fc5b348 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/sme/R3-VMX.EXTENDED.LOOKUP.INQ.E8V2.xml @@ -0,0 +1,17 @@ + + VMX.EXTENDED.LOOKUP.INQ + E8V2 + + 00000MMB + 00000MMB + + 0 + 1 + + + + + + + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/sme/VMX.CUST.ACCT.CARD.ADD.EMEA.E8VG5.xml b/tests/src/test/resources/regression/transactional/cards/sme/VMX.CUST.ACCT.CARD.ADD.EMEA.E8VG5.xml new file mode 100644 index 0000000..14f1250 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/sme/VMX.CUST.ACCT.CARD.ADD.EMEA.E8VG5.xml @@ -0,0 +1,207 @@ + + VMX.CUST.ACCT.CARD.ADD.EMEA + E8VG5 + + 00000MMB + 00000MMB + A + A + A + + + + 670 + + + + 0 + 861 + + 1 + + 0 + 000861{{$randomInt}} + str1234 + str1234 + str + 3000 + + str1234 + Testnm1 + + Testnm2 + + + + Testadr1 + Testadr2 + prague + str + str1234 + CZE + 1 + 01234 + 11234 + 21234 + 31234 + 1234@gmail.com + 19560226 + 0 + 0 + str1234 + str1234 + str1234 + str1234 + + jr + + str1234 + + + {{taxid}} + 0 + + str1234 + str + str1234 + str1234 + str1234 + st + st + str1234 + s + s + st + st + str + str + 1234 + 1234 + str1234 + str1234 + str1234 + str1234 + + + + + 861 + 670 + + 0 + + + + 3000 + + 0 + 1 + 0 + + + 0 + 20190416 + + + + 0 + 10 + + + + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 999999998 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 0 + {{$randomInt}} + + + + + + + + + + + + Jan + Sam + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CS + + + + + 1 + + + + + + + + + + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/sme/Wso2EIPaths b/tests/src/test/resources/regression/transactional/cards/sme/Wso2EIPaths new file mode 100644 index 0000000..23965f4 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/sme/Wso2EIPaths @@ -0,0 +1,144 @@ +MWF138=contact-get-address-list-by-cif-v1 +MWF140=card-change-set-pin-address-v1 +MWF1G4=pct-table-set-v1 +MWF208=add-services-card-renewal-v1 +MWF209=card-servicing-do-replica-v1 +MWF235=transaction-get-block-list-card-num-v1 +MWF2C0=current-account-change-smart-bank-v1 +MWF2D0=dispositions-get-card-list-v1 +MWF2DU=batch-updates-deb-card-acc-fee-plan-v1 +MWF2DV=batch-updates-block-debit-card-v1 +MWF2DW=batch-updates-block-floan-card-v1 +MWF2E5=onboarding-renew-card-acc-by-card-v1 +MWF420=transaction-set-repayment-v1 +MWF427=pct-table-get-by-contract-number-v1 +MWF485=transaction-get-authorizations-list-v1 +MWF494=card-list-get-active-for-adc-v1 +MWF4H9=card-servicing-get-last-state-amnt-v1 +MWF2E0=ods-block-card-v1 +MWF2E1=ods-block-account-v1 +MWF2E2=ods-unblock-card-v1 +MWF0E0=birth-number-parse-v1 +MWF2E3=ods-unblock-account-v1 +MWFXXX2=account-action-write-off-v1 +MWFXXX3=transaction-get-transactions-v1 +MWFXXX4=account-get-detail-v1 +MWFXXX5=account-get-card-acc-v1 +MWFXXX6=account-monetary-act-v1 +MWFIR1+=card-list-get-by-id-v1 +MWFXXX9=product-transfer-execute-debit-v1 +MWFGR7=card-change-secure3D-v1 +MWF7D5=card-change-set-secure3D-v1 +MWFXX11=card-servicing-card-block-upd-v1 +MWFXX12=card-change-supp-fee-v1 +MWFXX10=product-transfer-check-debit-v1 +MWFXXX8=account-monetary-upd-v1 +MWF5C2=onboarding-create-debit-card-v1 +MWF5F0=add-services-set-package-state-v1 +MWF625=card-list-get-by-contract-all-v1 +MWF65D=pct-table-get-interest-list-v1 +MWF7D3=card-change-credit-limit-v1 +MWFA83=card-servicing-create-termination-v1 +MWFA84=add-services-create-credit-card-v1 +MWFA85=card-servicing-generate-pin-v1 +MWF987=card-list-get-by-relation-number-v1 +MWFA63=card-servicing-block-card-v1 +MWF7G2=card-change-emboss-name-v1 +MWFA86=card-servicing-unblock-card-v1 +MWFA87=card-servicing-do-renewal-v1 +MWFA88=card-servicing-stop-renewal-v1 +MWFA89=transaction-get-list-on-statement-v1 +MWFA90=transaction-get-list-v1 +MWFA93=card-list-get-by-card-account-v1 +MWFA94=account-action-get-list-v1 +MWFA95=statements-print-v1 +MWFAQ1=multibrand-card-authorizations-v1 +MWFAS6=card-change-facade-v1 +MWFAS7=add-services-get-list-v1 +MWFB05=card-check-get-card-type-v1 +MWFB16=fees-get-list-by-logo-v1 +MWFB62=card-list-get-by-current-account-v1 +MWFB63=card-detail-get-card-detail-sme-v1 +MWFB71=card-list-get-by-birth-number-v1 +MWFBC3=product-transfer-execute-v1 +MWFBC5=add-services-get-settings-v1 +MWFBK2=card-check-check-card-status-v1 +MWFBK6=account-action-create-note-v1 +MWFBQ2=card-servicing-terminate-execution-v1 +MWFBQ7=card-list-get-card-acc-w-add-cards-v1 +MWFBR6=card-list-get-by-name-v1 +MWFBV1=etm-client-contact-chck-client-cmpg-v1 +MWFC14=vls-get-card-detail-v1 +MWFC18=vls-get-transaction-list-v1 +MWFC19=vls-get-statement-list-v1 +MWFC26=card-detail-get-shared-id-v1 +MWFD75=card-list-get-all-cards-v1 +MWFDB1=transaction-get-mini-statement-v1 +MWFDN7=card-delivery-track-get-card-list-v1 +MWFFK8=declip-process-save-document-v1 +MWFGA4=contact-get-all-client-address-v1 +MWFGA6=contact-get-all-client-phone-email-v1 +MWFGS2=card-check-get-tms-action-v1 +MWFH02=card-servicing-adjust-data-v1 +MWFHG1=pct-table-recalculate-v1 +MWFHG8=statements-delete-no-sending-flag-v1 +MWFI79=card-servicing-do-activation-v1 +MWFI80=card-detail-get-v1 +MWFIB7=card-check-call-tms-v1 +MWFII9=card-servicing-do-unblocking-with-renewal-v1 +MWFIW3=mass-card-blocking-get-phone-number-v1 +MWFIX1=dispositions-get-card-account-v1 +MWFIY0=card-detail-get-card-account-basic-v1 +MWFIY1=card-detail-get-card-account-v1 +MWFJ93=account-action-create-memo-v1 +MWFJA7=add-services-get-refund-fees-cc-v1 +MWFJD8=card-delivery-track-get-card-count-v1 +MWFJE0=card-servicing-do-activation-atm-v1 +MWFJE7=onboarding-generate-instant-cards-v1 +MWFJE8=onboarding-set-card-account-v1 +MWFJE9=onboarding-set-card-acc-into-nas-v1 +MWF8B1=card-change-business-name-v1 +MWFA82=add-services-deactivate-credit-v1 +MWFJJ8=card-delivery-track-change-status-v1 +MWFJO6=transaction-get-list-money-manager-v1 +MWFJP8=card-check-check-nfc-possibility-v1 +MWFJS3=onboarding-send-pin-sms-v1 +MWFJS5=card-product-transfer-check-acc-for-tran-v1 +MWFJW3=card-servicing-recall-cancelling-v1 +MWFJX4=card-promo-get-definitions-v1 +MWFJX5=card-promo-get-list-by-account-v1 +MWFJX6=card-promo-set-v1 +MWFJY9=pct-table-get-v1 +MWFJZ2=vls-get-bundle-history-v1 +MWFJZ3=vls-set-bundle-v1 +MWFJZ5=vls-get-account-v1 +MWFK28=card-change-stmt-distribution-v1 +MWFK32=card-list-get-all-by-birth-num-v1 +MWFKD6=product-transfer-execute-pin-change-v1 +MWFKDV=add-services-get-ins-cc-accounts-v1 +MWFL55=auto-cancel-get-interest-list-v1 +MWFL56=auto-cancel-get-detail-v1 +MWFL57=auto-cancel-create-v1 +MWFLK4=interest-get-list-by-logo-v1 +MWFN03=deal-get-list-v1 +MWFS86=add-services-reactivat-credit-v1 +MWFX01=card-detail-get-atm-limit-v1 +MWFX94=card-servicing-change-blocation-exe-v1 +MWFY13=current-account-get-closed-list-v1 +MWFY19=card-servicing-unblock-card-exe-v1 +MWFA80=statements-get-list-v1 +MWFBB9=card-list-get-client-card-appr-v1 +MWFCC2=card-list-get-contract-cards-v1 +MWF35D=card-detail-get-card-owner-v1 +MWFAV5=application-get-detail-v1 +MWFAVE=application-get-detail-temporary-v1 +MWFBX3=clip-process-cancel-application-v1 +MWFJR2=clip-process-get-application-v1 +MWFJP3=card-servicing-mask-card-number-v1 +MWFDB8=card-servicing-set-authorization-v1 +MWF420+=transaction-set-neg-repayment-v1 +MWFXXX1=card-detail-get-emboss-name-v1 +MWFXXX7=card-promo-add-loyalty-v1 +MWFIR1=card-list-get-all-for-ib-v1 +MWF423=card-list-get-detail-for-print-v1 +MWFH02+=card-servicing-direct-debit-v1 \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/sme/Wso2GwPaths b/tests/src/test/resources/regression/transactional/cards/sme/Wso2GwPaths new file mode 100644 index 0000000..a5f5d0e --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/sme/Wso2GwPaths @@ -0,0 +1,144 @@ +MWF427=GET_PCT_TABLE_BY_CONTR_NUMBER/001 +MWF485=GET_TRANSACTION_AUTHORIZ_LIST/001 +MWF494=GET_CARD_LIST_ACTIVE_FOR_ADC/001 +MWF7G2=CHG_CARD_EMBOSS_NAME/001 +MWF4H9=GET_CARD_SERV_LAST_STATE_AMNT/001 +MWFC18=GET_VLS_TRANSACTION_LIST/001 +MWFC19=GET_VLS_STATEMENT_LIST/001 +MWFC26=GET_CARD_DETAIL_SHARED_ID/001 +MWFD75=GET_CARD_LIST_ALL_CARDS/001 +MWFDB1=GET_TRANSACTION_MINI_STATEMENT/001 +MWFDN7=GET_CARD_DELIVERY_TRACK_LIST/001 +MWFFK8=DO_DECLIP_PROCESS_SAVE_DOC/001 +MWFGA4=GET_CONTACT_ALL_ADDRESS/001 +MWFII9=card-servicing-do-unblocking-with-renewal-v1 +MWF987=GET_CARD_LIST_BY_REL_NUM/001 +MWFA63=DO_CARD_SERVICING_BLOCK_CARD/001 +MWF2C0=CHG_CURRENT_ACCOUNT_SMART_BANK/001 +MWFA80=GET_STATEMENTS_LIST/001 +MWFIR1=GET_CARD_LIST_ALL_FOR_IB/001 +MWFGA6=GET_CONTACT_ALL_PHONE_EMAIL/001 +MWFGS2=GET_CARD_CHECK_TMS_ACTION/001 +MWFBC3=DO_PRODUCT_TRANSFER_EXECUTE/001 +MWFBC5=GET_ADD_SERVICES_SETTINGS/001 +MWFBK2=CHK_CARD_STATUS/001 +MWFBK6=CRT_NOTE_ACCOUNT_ACTION/001 +MWFBQ2=DO_CARD_SERV_TERMINATE_EXECUT/001 +MWFBQ7=GET_CARD_LIST_WITH_ADD_CARDS/001 +MWFBR6=GET_CARD_LIST_BY_NAME/001 +MWFBV1=CHK_ETM_CLIENT_CONTACT_CMPG/001 +MWFC14=GET_VLS_CARD_DETAIL/001 +MWFH02=DO_CARD_SERV_ADJUST_DATA/001 +MWFHG1=DO_PCT_TABLE_RECALCULATE/001 +MWFA86=DO_CARD_SERVICING_UNBLOCK_CARD/001 +MWFA87=DO_CARD_SERVICING_RENEWAL/001 +MWFA88=DO_CARD_SERVICING_STOP_RENEWAL/001 +MWFA89=GET_TRANSACT_LIST_ON_STATEMENT/001 +MWFA90=GET_TRANSACTION_GET_LIST/001 +MWFA93=GET_CARD_LIST_BY_CARD_ACCOUNT/001 +MWFA94=CHG_ACCOUNT_GET_LIST/001 +MWFA95=DO_STATEMENTS_PRINT/001 +MWFAQ1=DO_MULTIBRAND_CARD_AUTHORIZAT/001 +MWFAS6=CHG_CARD_FACADE/001 +MWFAS7=GET_LIST_ADD_SERVICES/001 +MWFB05=CHK_CARD_TYPE/001 +MWFB16=GET_FEES_LIST_BY_LOGO/001 +MWFB62=GET_CARD_LIST_BY_CURRENT_ACC/001 +MWFB63=GET_CARD_DETAIL_SME/001 +MWFB71=GET_CARD_LIST_BY_BIRTH_NUM/001 +MWFHG8=DLT_STATEMENTS_NO_SENDING_FLAG/001 +MWFI79=DO_CARD_SERVICING_ACTIVATION/001 +MWFI80=GET_ACCOUNT_DETAIL/001 +MWFIB7=DO_CARD_CHECK_CALL_TMS/001 +MWF5C2=CRT_DEBIT_CARD_ONBOARDING/001 +MWF5F0=SET_ADD_SERVICES_PACKAGE_STATE/001 +MWF625=GET_CARD_LIST_BY_CONTRACT_ALL/001 +MWF65D=GET_PCT_TABLE_INTEREST_LIST/001 +MWF7D3=CHG_CARD_CREDIT_LIMIT/001 +MWF8B1=CHG_CARD_BUSINESS_NAME/001 +MWFA82=DO_ADD_SERVICES_DEACTIVATE/001 +MWFA83=CRT_CARD_SERVICING_TERMINATION/001 +MWF138=GET_CONTACT_ADDR_LIST_BY_CIF/001 +MWFIW3=GET_MASS_CARD_BLOCK_PHONE_NUM/001 +MWFIX1=GET_CARD_ACCOUNT_DISPOSITIONS/001 +MWFIY0=GET_ACCOUNT_BASIC_CARD_DETAIL/001 +MWFIY1=GET_ACCOUNT_CARD_DETAIL/001 +MWFJ93=CRT_ACCOUNT_ACTION_MEMO/001 +MWFJA7=GET_ADD_SERVICES_REFUND_FEE_CC/001 +MWFJD8=GET_CARD_DELIVERY_TRACK_COUNT/001 +MWFJE0=DO_CARD_SERV_ACTIVATION_ATM/001 +MWFJE7=DO_ONBOARD_GENERATE_INST_CARDS/001 +MWFJE8=SET_CARD_ACCOUNT_ONBOARDING/001 +MWF1G4=SET_PCT_TABLE/001 +MWF140=SET_CARD_CHANGE_PIN_ADDRESS/001 +MWF208=DO_CARD_RENEWAL_ADD_SERVICES/001 +MWF209=DO_CARD_SERVICING_REPLICA/001 +MWF235=GET_TRANSACT_BLOCK_LIST_CRD_NM/001 +MWF2D0=GET_DISPOSITIONS_CARD_LIST/001 +MWF2DU=CHG_BATCH_DEB_CRD_ACC_FEE_PLAN/001 +MWF2DV=DO_BATCH_UPDATES_DEBIT_CARD/001 +MWF2DW=DO_BATCH_UPDATES_FLOAN_CARD/001 +MWF2E5=DO_ONBOARD_RENEW_ACC_BY_CARD/001 +MWF420=transaction-set-repayment-v1 +MWFA84=CRT_ADD_SERVICES/001 +MWFA85=DO_CARD_SERVICING_GENERATE_PIN/001 +MWFJE9=SET_CARD_ACCOUNT_NAS/001 +MWFJJ8=CHG_CARD_DELIVERY_TRACK_STATUS/001 +MWFJO6=GET_TRANSACT_LIST_MONEY_MNGR/001 +MWFJP8=CHK_CARD_NFC_POSSIBILITY/001 +MWFJS3=DO_ONBOARD_SEND_PIN_SMS/001 +MWFJS5=CHK_PROD_TRANSFER_ACC_FOR_TRAN/001 +MWFJW3=DO_CARD_SERV_RECALL_CANCELLING/001 +MWFJX4=GET_CARD_PROMO_DEFINITIONS/001 +MWFJX5=GET_CARD_PROMO_LIST_BY_ACCOUNT/001 +MWFJX6=SET_CARD_PROMO/001 +MWFJY9=GET_PCT_TABLE/001 +MWFJZ2=GET_VLS_BUNDLE_HISTORY/001 +MWFJZ3=SET_VLS_BUNDLE/001 +MWFJZ5=GET_VLS_ACCOUNT/001 +MWFK28=CHG_CARD_STMT_DISTRIBUTION/001 +MWFK32=card-list-get-all-by-birth-num-v1 +MWFKD6=DO_PRODUCT_TRANSFER_PIN_CHANGE/001 +MWFKDV=GET_ADD_SERVICES_INS_CC_ACC/001 +MWFL55=GET_AUTO_CANCEL_INTEREST_LIST/001 +MWFL56=GET_AUTO_CANCEL_DETAIL/001 +MWFL57=CRT_AUTO_CANCEL/001 +MWFLK4=GET_INTEREST_LIST_BY_LOGO/001 +MWFN03=GET_DEAL_LIST/001 +MWFS86=DO_ADD_SERVICES_REACTIVATION/001 +MWFX01=GET_CARD_DETAIL_ATM_LIMIT/001 +MWFX94=CHG_CARD_SERV_BLOCATION_EXE/001 +MWFY13=GET_CURRENT_ACC_CLOSED_LIST/001 +MWFY19=DO_CARD_SERV_UNBLOCK_CARD_EXE/001 +MWFBB9=GET_CARD_LIST_CLIENT_CARD_APPR/001 +MWFCC2=GET_CARD_LIST_CONTRACT_CARDS/001 +MWF35D=GET_CARD_DETAIL_OWNER/001 +MWF2E2=ods-unblock-card-v1 +MWFAV5=GET_APPLICATION_DETAIL/001 +MWFAVE=GET_APPLICATION_DETAIL_TEMP/001 +MWFBX3=DO_CLIP_CANCEL_APPLICATION/001 +MWFJR2=GET_CLIP_PROCESS_APPLICATION/001 +MWFJP3=DO_CARD_SERV_MASK_CARD_NUMBER/001 +MWFDB8=DO_CARD_AUTHORIZATION/001 +MWF420+=transaction-set-neg-repayment-v1 +MWFXXX1=GET_CARD_DETAIL_EMBOSS_NAME/001 +MWFXXX7=card-promo-add-loyalty-v1 +MWF423=GET_CARD_LIST_DETAIL_FOR_PRINT/001 +MWFH02+=DO_CARD_SERV_DIRECT_DEBIT/001 +MWF0E0=birth-number-parse-v1 +MWF2E0=ods-block-card-v1 +MWF2E1=ods-block-account-v1 +MWF2E3=ods-unblock-account-v1 +MWFXXX2=account-action-write-off-v1 +MWFXXX3=transaction-get-transactions-v1 +MWFXXX5=account-get-card-acc-v1 +MWFXXX4=account-get-detail-v1 +MWFXXX6=CHG_FIRSTVISION_MONETARY_ACT/001 +MWFIR1+=GET_CARD_LIST_BY_ID/001 +MWFXXX9=CHK_PROD_TRANSFER_DEBIT/001 +MWFGR7=DO_CARD_CHANGE_SECURE3D/001 +MWF7D5=card-change-set-secure3D-v1 +MWFXXX8=CHG_FIRSTVISION_MONETARY_UPD/001 +MWFXX10=DO_PRODUCT_TRANSFER_DEBIT/001 +MWFXX11=DO_CARD_SERV_CARD_BLOCK_UPD/001 +MWFXX12=CHG_CARD_SUPP_FEE/001 \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/sme/empty.json b/tests/src/test/resources/regression/transactional/cards/sme/empty.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/sme/empty.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cards/sme/empty.xml b/tests/src/test/resources/regression/transactional/cards/sme/empty.xml new file mode 100644 index 0000000..bb9b580 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cards/sme/empty.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/CAP_PACS009_PPE.xml b/tests/src/test/resources/regression/transactional/cashless/CAP_PACS009_PPE.xml new file mode 100644 index 0000000..ad2c98b --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/CAP_PACS009_PPE.xml @@ -0,0 +1,80 @@ + + + + + 106 + 2026-01-14T11:08:08.977 + 2 + + INDA + + + + + FP202601130163 + + 292.5260 + 2026-01-14 + + + AGBACZPP + + + + + CZ8306000000000259918072 + + + + + BBHCUS33 + + + + + FR7630056000100010000512237 + + + + /BNF/6502421 + //GSAM SUBRED ACC + //202601130163 LU0119195450 361126 + + + + + + FP202601130164 + + 162.2940 + 2026-01-14 + + + AGBACZPP + + + + + CZ8306000000000259918072 + + + + + BBHCUS33 + + + + + FR7630056000100010000512237 + + + + /BNF/6502421 + //GSAM SUBRED ACC + //202601130164 LU0146257711 361126 + + + + + diff --git a/tests/src/test/resources/regression/transactional/cashless/CAP_PACS009_TST1.xml b/tests/src/test/resources/regression/transactional/cashless/CAP_PACS009_TST1.xml new file mode 100644 index 0000000..c0359f7 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/CAP_PACS009_TST1.xml @@ -0,0 +1,45 @@ + + + + + 377 + 2026-01-12T11:58:29.360 + 1 + + INDA + + + + + FP202601120093 + + 243.6810 + 2026-01-12 + + + AGBACZPP + + + + + CZ8306000000000259918072 + + + + + BBHCUS33 + + + + + FR7630056000100010000512237 + + + + /BNF/6502421 + //GSAM SUBRED ACC + //202601120093 LU0146257711 361126 + + + + diff --git a/tests/src/test/resources/regression/transactional/cashless/CAP_PAIN001_PPE.xml b/tests/src/test/resources/regression/transactional/cashless/CAP_PAIN001_PPE.xml new file mode 100644 index 0000000..139965a --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/CAP_PAIN001_PPE.xml @@ -0,0 +1,490 @@ + + + + + 21591 + 2026-01-22T12:27:46.693 + 10 + + Capitol + + + + 202601220067 + TRF + +
2026-01-22
+
+ + CAP + + + + CZ0206000000000225293537 + + + + + AGBACZPP + + + + + 202601220067 + + + 111111.0000 + + SHAR + + + BBHCUS33XXX + + + + Fidelity FUNDS + + 2A RUE ALBERT BORSCHETTE LUXEMBOURG + + + + + + 3724093 + + + + + /BNF/MONA104575//AC3724093 FIDELITY FUNDS//202601220067LU1400167216 + + +
+ + 202601220068 + TRF + +
2026-01-22
+
+ + CAP + + + + CZ0206000000000225293537 + + + + + AGBACZPP + + + + + 202601220068 + + + 155555.0000 + + SHAR + + + BBHCUS33XXX + + + + Fidelity FUNDS + + 2A RUE ALBERT BORSCHETTE LUXEMBOURG + + + + + + 3724093 + + + + + /BNF/MONA104575//AC3724093 FIDELITY FUNDS//202601220068LU1961889083 + + +
+ + 202601220069 + TRF + +
2026-01-22
+
+ + CAP + + + + CZ0206000000000225293537 + + + + + AGBACZPP + + + + + 202601220069 + + + 1188.0000 + + SHAR + + + BBHCUS33XXX + + + + Fidelity FUNDS + + 2A RUE ALBERT BORSCHETTE LUXEMBOURG + + + + + + 3724093 + + + + + /BNF/MONA104575//AC3724093 FIDELITY FUNDS//202601220069LU2111945700 + + +
+ + 202601220070 + TRF + +
2026-01-22
+
+ + CAP + + + + CZ0206000000000225293537 + + + + + AGBACZPP + + + + + 202601220070 + + + 5527.8100 + + SHAR + + + BBHCUS33XXX + + + + Fidelity FUNDS + + 2A RUE ALBERT BORSCHETTE LUXEMBOURG + + + + + + 3724093 + + + + + /BNF/MONA104575//AC3724093 FIDELITY FUNDS//202601220070LU2807456855 + + +
+ + 202601220071 + TRF + +
2026-01-22
+
+ + CAP + + + + CZ7106000000000226670859 + + + + + AGBACZPP + + + + + 202601220071 + + + 148147.6000 + + SHAR + + + WBWCLULLXXX + + + + EDB Collection Account AFS-Subscription + + + + LU440580000900869000 + + + + payment for order 202601220071 LU2868129458 + + +
+ + 202601220072 + TRF + +
2026-01-22
+
+ + CAP + + + + CZ1206000000000237554933 + + + + + AGBACZPP + + + + + 202601220072 + + + 864.0700 + + SHAR + + + ESSELU22XXX + + + + ESPIRIA - ESPIRIA 30 - CZK + + 6A CIRCUIT DE LA FOIRE INTERNATIONALE,LUXEMBOURG + + + + + LU474100000020089019 + + + + payment for order 202601220072 LU2368120650 + + +
+ + 202601220073 + TRF + +
2026-01-22
+
+ + CAP + + + + CZ1206000000000237554933 + + + + + AGBACZPP + + + + + 202601220073 + + + 1925.4900 + + SHAR + + + ESSELU22XXX + + + + ESPIRIA - ESPIRIA 60 - CZK + + 6A CIRCUIT DE LA FOIRE INTERNATIONALE,LUXEMBOURG + + + + + LU834100000020090020 + + + + payment for order 202601220073 LU2968731443 + + +
+ + 202601220079 + TRF + +
2026-01-22
+
+ + CAP + + + + CZ5506000000000274715150 + + + + + AGBACZPP + + + + + 202601220079 + + + 6930.7000 + + SHAR + + + SOGEFRPPAFI + + + + MICAV COL/CZK + + + + FR7630003056050620315297375 + + + + payment for order 202601220079 IE000PM12TN1 + + +
+ + 202601220080 + TRF + +
2026-01-22
+
+ + CAP + + + + CZ5506000000000274715150 + + + + + AGBACZPP + + + + + 202601220080 + + + 10946.8000 + + SHAR + + + SOGEFRPPAFI + + + + MICAV COL/CZK + + + + FR7630003056050620315297375 + + + + payment for order 202601220080 IE000N6PPGB0 + + +
+ + 202601220081 + TRF + +
2026-01-22
+
+ + CAP + + + + CZ5506000000000274715150 + + + + + AGBACZPP + + + + + 202601220081 + + + 487.8000 + + SHAR + + + SOGEFRPPAFI + + + + MICAV COL/CZK + + + + FR7630003056050620315297375 + + + + payment for order 202601220081 IE000YZM15Q6 + + +
+
+
diff --git a/tests/src/test/resources/regression/transactional/cashless/CAP_PAIN001_TST1.xml b/tests/src/test/resources/regression/transactional/cashless/CAP_PAIN001_TST1.xml new file mode 100644 index 0000000..c1bdf5a --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/CAP_PAIN001_TST1.xml @@ -0,0 +1,616 @@ + + + + + 38676 + 2026-01-07T16:59:50.873 + 35 + + Capitol + + + + 202601070764 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ0206000000000225293537 + + + + + AGBACZPP + + + + + 202601070764 + + + 1650.2500 + + SHAR + + + BBHCUS33XXX + + + + Fidelity FUNDS + + 2A RUE ALBERT BORSCHETTE LUXEMBOURG + + + + + + 3724093 + + + + + /BNF/MONA104575//AC3724093 FIDELITY FUNDS//202601070764LU2111945700 + + +
+ + 202601070769 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ7106000000000226670859 + + + + + AGBACZPP + + + + + 202601070769 + + + 11815.6100 + + SHAR + + + WBWCLULLXXX + + + + EDB Collection Account AFS-Subscription + + + + LU440580000900869000 + + + + payment for order 202601070769 LU2868129458 + + +
+ + 202601070770 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ1206000000000237554933 + + + + + AGBACZPP + + + + + 202601070770 + + + 11489.7600 + + SHAR + + + ESSELU22XXX + + + + EAST CAPITAL GLOBAL EMERGING MARKETS SUSTAINABLE CZK + + 6A CIRCUIT DE LA FOIRE INTERNATIONALE,LUXEMBOURG + + + + + LU364100000020093000 + + + + payment for order 202601070770 LU2223384681 + + +
+ + 202601070771 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ1206000000000237554933 + + + + + AGBACZPP + + + + + 202601070771 + + + 32180.8000 + + SHAR + + + ESSELU22XXX + + + + ESPIRIA - ESPIRIA 30 - CZK + + 6A CIRCUIT DE LA FOIRE INTERNATIONALE,LUXEMBOURG + + + + + LU474100000020089019 + + + + payment for order 202601070771 LU2368120650 + + +
+ + 202601070772 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ1206000000000237554933 + + + + + AGBACZPP + + + + + 202601070772 + + + 97320.0800 + + SHAR + + + ESSELU22XXX + + + + ESPIRIA - ESPIRIA NORDIC CORPORATE BOND - CZK + + 6A CIRCUIT DE LA FOIRE INTERNATIONALE,LUXEMBOURG + + + + + LU984100000020091011 + + + + payment for order 202601070772 LU2544647329 + + +
+ + 202601070773 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ1206000000000237554933 + + + + + AGBACZPP + + + + + 202601070773 + + + 2515.6800 + + SHAR + + + ESSELU22XXX + + + + ESPIRIA - ESPIRIA 60 - CZK + + 6A CIRCUIT DE LA FOIRE INTERNATIONALE,LUXEMBOURG + + + + + LU834100000020090020 + + + + payment for order 202601070773 LU2968731443 + + +
+ + 202601070774 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ5906000000000241066748 + + + + + AGBACZPP + + + + + 202601070774 + + + 133498.0200 + + SHAR + + + CHASLULXXXX + + + + Invesco Funds SICAV CZK + + + + LU600670006550045951 + + + + payment for order 202601070774 LU2382294135 + + +
+ + 202601070775 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ5906000000000241066748 + + + + + AGBACZPP + + + + + 202601070775 + + + 6000.0000 + + SHAR + + + CHASLULXXXX + + + + Invesco Funds SICAV CZK + + + + LU600670006550045951 + + + + payment for order 202601070775 LU2382294218 + + +
+ + 202601070783 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ5506000000000274715150 + + + + + AGBACZPP + + + + + 202601070783 + + + 66325.4400 + + SHAR + + + SOGEFRPPAFI + + + + MICAV COL/CZK + + + + FR7630003056050620315297375 + + + + payment for order 202601070783 IE000PM12TN1 + + +
+ + 202601070784 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ5506000000000274715150 + + + + + AGBACZPP + + + + + 202601070784 + + + 658.1000 + + SHAR + + + SOGEFRPPAFI + + + + MICAV COL/CZK + + + + FR7630003056050620315297375 + + + + payment for order 202601070784 IE000VHJLW78 + + +
+ + 202601070785 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ5506000000000274715150 + + + + + AGBACZPP + + + + + 202601070785 + + + 12480.7600 + + SHAR + + + SOGEFRPPAFI + + + + MICAV COL/CZK + + + + FR7630003056050620315297375 + + + + payment for order 202601070785 IE000N6PPGB0 + + +
+ + 202601070786 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ5506000000000274715150 + + + + + AGBACZPP + + + + + 202601070786 + + + 462046.6500 + + SHAR + + + SOGEFRPPAFI + + + + MICAV COL/CZK + + + + FR7630003056050620315297375 + + + + payment for order 202601070786 IE000HD0CWC2 + + +
+ + 202601070787 + TRF + +
2026-01-07
+
+ + CAP + + + + CZ5506000000000274715150 + + + + + AGBACZPP + + + + + 202601070787 + + + 228611.9100 + + SHAR + + + SOGEFRPPAFI + + + + MICAV COL/CZK + + + + FR7630003056050620315297375 + + + + payment for order 202601070787 IE000YZM15Q6 + + +
+
+
diff --git a/tests/src/test/resources/regression/transactional/cashless/HD01.xml b/tests/src/test/resources/regression/transactional/cashless/HD01.xml new file mode 100644 index 0000000..e579b65 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/HD01.xml @@ -0,0 +1,36 @@ +HD:01 #YYYYMMDD# 0000800 1000001 0000600 #RANDOM# 0000000 +KC:#AMOUNT# #YYYYMMDD# CZK +ID:#YYYYMMDD# IDHD01x#MESSAGEID# +UD:000000 #DEBTOR# debtor +DI:DI pole...........................1 + DI pole...........................2 + DI pole...........................3 + DI pole...........................4 +UK:000000 #CREDITOR# creditor +AK:9999999999 +KI:KI pole...........................1 + KI pole...........................2 + KI pole...........................3 + KI pole...........................4 +EC:0123456789 +ZK:1111111111 +ZP:ZP pole...........................1 + ZP pole...........................2 + ZP pole...........................3 + ZP pole...........................4 +AV:AV pole...........................1 + AV pole...........................2 + AV pole...........................3 + AV pole...........................4 +HD:51 #YYYYMMDD# 0000730 0000000 0000600 0000000 0000000 +IN:#RANDOM# #RANDOM# +S0:0000001 0000000000000#AMOUNT# +S1:0000000 00000000000000000 +S2:0000000 00000000000000000 +S3:0000000 00000000000000000 +S4:0000000 00000000000000000 +S5:0000000 00000000000000000 +S6:0000000 00000000000000000 +S7:0000000 00000000000000000 +S8:0000000 00000000000000000 + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/HD11-14.xml b/tests/src/test/resources/regression/transactional/cashless/HD11-14.xml new file mode 100644 index 0000000..529f6ce --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/HD11-14.xml @@ -0,0 +1,36 @@ +HD:#HDTYPE# #YYYYMMDD# 0000100 1000020 0000600 #RANDOM# 0000000 +KC:#AMOUNT# #YYYYMMDD# CZK +ID:#YYYYMMDD# IDHD#HDTYPE#x#MESSAGEID# +UD:000000 #DEBTOR# debtor +DI:DI pole...........................1 + DI pole...........................2 + DI pole...........................3 + DI pole...........................4 +UK:000000 #CREDITOR# creditor +AK:9999999999 +KI:KI pole...........................1 + KI pole...........................2 + KI pole...........................3 + KI pole...........................4 +EC:0123456789 +ZK:#YYMMDD#0010 +ZP:ZP pole...........................1 + ZP pole...........................2 + ZP pole...........................3 + ZP pole...........................4 +AV:AV pole...........................1 + AV pole...........................2 + AV pole...........................3 + AV pole...........................4 +HD:51 #YYYYMMDD# 0000730 0000000 0000600 0000000 0000000 +IN:#RANDOM# #RANDOM# +S0:0000000 00000000000000000 +S1:0000001 00000000000000#AMOUNT# +S2:0000000 00000000000000000 +S3:0000000 00000000000000000 +S4:0000000 00000000000000000 +S5:0000000 00000000000000000 +S6:0000000 00000000000000000 +S7:0000000 00000000000000000 +S8:0000000 00000000000000000 + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/HD11_Starbuild.xml b/tests/src/test/resources/regression/transactional/cashless/HD11_Starbuild.xml new file mode 100644 index 0000000..e642dba --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/HD11_Starbuild.xml @@ -0,0 +1,36 @@ +HD:#HDTYPE# #YYYYMMDD# 0000600 #RANDOM# 000#BANKCODE# 0000000 0000000 +KC:#AMOUNT# #YYYYMMDD# CZK +ID:#YYYYMMDD# #MESSAGEID# +UD: #DEBTOR# debtor +DI:DI pole...........................1 + DI pole...........................2 + DI pole...........................3 + DI pole...........................4 +UK: #CREDITOR# creditor +AK:9999999999 +KI:KI pole...........................1 + KI pole...........................2 + KI pole...........................3 + KI pole...........................4 +EC:5555555555 +ZK:1111111111 +ZP:ZP pole...........................1 + ZP pole...........................2 + ZP pole...........................3 + ZP pole...........................4 +AV:AV pole...........................1 + AV pole...........................2 + AV pole...........................3 + AV pole...........................4 +HD:51 #YYYYMMDD# 0000600 0000000 0000600 0000000 0000000 +IN:#RANDOM# #RANDOM# +S0:0000000 00000000000000000 +S1:0000001 0000000000000#AMOUNT# +S2:0000000 00000000000000000 +S3:0000000 00000000000000000 +S4:0000000 00000000000000000 +S5:0000000 00000000000000000 +S6:0000000 00000000000000000 +S7:0000000 00000000000000000 +S8:0000000 00000000000000000 + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/HD21.xml b/tests/src/test/resources/regression/transactional/cashless/HD21.xml new file mode 100644 index 0000000..3681f24 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/HD21.xml @@ -0,0 +1,20 @@ +HD:21 #YYYYMMDD# 0000300 0000026 0000600 5000#RANDOM# 0000000 +KC:#AMOUNT1# #YYYYMMDD# CZK +ID:#YYYYMMDD# 00000096762 +UD:005012 1866998523 B-ZUC-PLATBY FX/MM + +UK:304418 1315050007 +AK:456 +EC:308 +ZK:300902#LASTFIELD# +AV:COVER OF MT103 TRN 300902#LASTFIELD# +HD:51 #YYYYMMDD# 0000730 0000000 0000600 0000000 0000000 +IN:5000#RANDOM# 5000#RANDOM# +S0:0000000 00000000000000000 +S1:0000000 00000000000000000 +S2:0000001 0000000000000#AMOUNT1# +S3:0000000 00000000000000000 +S4:0000000 00000000000000000 +S5:0000000 00000000000000000 +S6:0000000 00000000000000000 +S7:0000000 00000000000000000 +S8:0000000 00000000000000000 \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/HD21_WITH_MT191.xml b/tests/src/test/resources/regression/transactional/cashless/HD21_WITH_MT191.xml new file mode 100644 index 0000000..7238d74 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/HD21_WITH_MT191.xml @@ -0,0 +1,20 @@ +HD:21 #YYYYMMDD# 0000300 0405408 0000600 500#RANDOM# 0000000 +KC:#AMOUNT1# #YYYYMMDD# CZK +ID:#YYYYMMDD# 635012705 +UD:001011 0666996123 B-ZUC-CSOB TPS-VYSL+ +UK:304418 1315050007 +ZK:300902#LASTFIELD# +AV:MT191 #REF# +K MT103 300902#LASTFIELD# +HD:51 #YYYYMMDD# 0000730 0000000 0000600 0000000 0000000 +IN:500#RANDOM# 500#RANDOM# +S0:0000000 00000000000000000 +S1:0000000 00000000000000000 +S2:0000001 0000000000000#AMOUNT1# +S3:0000000 00000000000000000 +S4:0000000 00000000000000000 +S5:0000000 00000000000000000 +S6:0000000 00000000000000000 +S7:0000000 00000000000000000 +S8:0000000 00000000000000000 + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/HD32.xml b/tests/src/test/resources/regression/transactional/cashless/HD32.xml new file mode 100644 index 0000000..15cca60 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/HD32.xml @@ -0,0 +1,36 @@ +HD:#HDTYPE# #YYYYMMDD# 0000800 1000003 0000600 #RANDOM# 0000000 +KC:#AMOUNT# #YYYYMMDD# CZK +ID:#YYYYMMDD# IDHD#HDTYPE#x#MESSAGEID# +UD:000000 #DEBTOR# debtor +DI:DI pole...........................1 + DI pole...........................2 + DI pole...........................3 + DI pole...........................4 +UK:000000 #CREDITOR# creditor +AK:9999999999 +KI:KI pole...........................1 + KI pole...........................2 + KI pole...........................3 + KI pole...........................4 +EC:0123456789 +ZK:1111111111 +ZP:ZP pole...........................1 + ZP pole...........................2 + ZP pole...........................3 + ZP pole...........................4 +AV:AV pole...........................1 + AV pole...........................2 + AV pole...........................3 + AV pole...........................4 +HD:51 #YYYYMMDD# 0000730 0000000 0000600 0000000 0000000 +IN:#RANDOM# #RANDOM# +S0:0000000 00000000000000000 +S1:0000000 00000000000000000 +S2:0000000 00000000000000000 +S3:0000001 0000000000000#AMOUNT# +S4:0000000 00000000000000000 +S5:0000000 00000000000000000 +S6:0000000 00000000000000000 +S7:0000000 00000000000000000 +S8:0000000 00000000000000000 + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/HD32_Starbuild.xml b/tests/src/test/resources/regression/transactional/cashless/HD32_Starbuild.xml new file mode 100644 index 0000000..6d562de --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/HD32_Starbuild.xml @@ -0,0 +1,36 @@ +HD:#HDTYPE# #YYYYMMDD# 0000600 #RANDOM# 000#BANKCODE# 0000000 0000000 +KC:#AMOUNT# #YYYYMMDD# CZK +ID:#YYYYMMDD# #MESSAGEID# +UD: #DEBTOR# debtor +DI:DI pole...........................1 + DI pole...........................2 + DI pole...........................3 + DI pole...........................4 +UK: #CREDITOR# creditor +AK:9999999999 +KI:KI pole...........................1 + KI pole...........................2 + KI pole...........................3 + KI pole...........................4 +EC:5555555555 +ZK:1111111111 +ZP:ZP pole...........................1 + ZP pole...........................2 + ZP pole...........................3 + ZP pole...........................4 +AV:AV pole...........................1 + AV pole...........................2 + AV pole...........................3 + AV pole...........................4 +HD:51 #YYYYMMDD# 0000600 0000000 0000600 0000000 0000000 +IN:#RANDOM# #RANDOM# +S0:0000000 00000000000000000 +S1:0000000 00000000000000000 +S2:0000000 00000000000000000 +S3:0000001 0000000000000#AMOUNT# +S4:0000000 00000000000000000 +S5:0000000 00000000000000000 +S6:0000000 00000000000000000 +S7:0000000 00000000000000000 +S8:0000000 00000000000000000 + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/HD33.xml b/tests/src/test/resources/regression/transactional/cashless/HD33.xml new file mode 100644 index 0000000..47ccdc0 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/HD33.xml @@ -0,0 +1,18 @@ +HD:33 #YYYYMMDD# 0000100 1000021 0000600 #RANDOM# 0000000 +KC:#AMOUNT# #YYYYMMDD# CZK +ID:#YYYYMMDD# IDHD11x#MESSAGEID# +UD:000000 #DEBTOR# debtor +UK:000131 #CREDITOR# creditor +ZK:#YYMMDD#0010 +HD:51 #YYYYMMDD# 0000730 0000000 0000600 0000000 0000000 +IN:#RANDOM# #RANDOM# +S0:0000000 00000000000000000 +S1:0000000 00000000000000000 +S2:0000000 00000000000000000 +S3:0000001 00000000000000#AMOUNT# +S4:0000000 00000000000000000 +S5:0000000 00000000000000000 +S6:0000000 00000000000000000 +S7:0000000 00000000000000000 +S8:0000000 00000000000000000 + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/MC_CFA.xml b/tests/src/test/resources/regression/transactional/cashless/MC_CFA.xml new file mode 100644 index 0000000..1112b98 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/MC_CFA.xml @@ -0,0 +1,32 @@ + +:01: +:02:#AMOUNT# +:03:00001 +:04:AGBACZPP +:05:MONETA MONEY BANK +PPE PROSTüEDÖ +VYSKO¬ILOVA 1442/1B +14028 PRAHA 4 - MICHLE +:07:#YYMMDD#0005.C +{1:F010600XXXXAXXX0001000001}{2:I100CHASUS33AXXXU1}{4: +:20: +:32A:#YYMMDD#USD#AMOUNT# +:50:MONETA MONEY BANK +PPE PROSTüEDÖ +VYSKO¬ILOVA 1442/1B +14028 PRAHA 4 - MICHLE +:52D:000000#DEBTOR# +000000#DEBTOR# +CZK CZK +000 US US +:57A:CHASUS33XXX +:57D:JP MORGAN +TEST +TEST +:59:/801380023838 +ALENA TESTOVACI +:71A:BN1 +:72:00 00 00 00 + + +-} \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/MC_CFD.xml b/tests/src/test/resources/regression/transactional/cashless/MC_CFD.xml new file mode 100644 index 0000000..90c15ac --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/MC_CFD.xml @@ -0,0 +1,23 @@ +DATE-TIME:#YYYYMMDD#080430 +HD:11 #YYMMDD# 0600 1 0600 +KC:#AMOUNT# 000000 CZK +UD: #DEBTOR# THE TEST +DI:ID177338 +UK: #CREDITOR# +AK:#CREDITOR# +KI:VYBER TEST +EC:0 +ZK:1030257340 +AV:AUTOMATIZOVANY TEST 1 +HD:11 #YYMMDD# 0600 2 0800 +KC:#AMOUNT1# 000000 CZK +UD: #DEBTOR# THE TEST +DI:ID177339 +UK: 123 +AK:123 +KI:VYBER TEST +EC:0 +ZK:1030257348 +AV:AUTOMATIZOVAN7 TEST 2 +S1:000000002 #REF# +S3:000000000 000 \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/MC_PAIN.xml b/tests/src/test/resources/regression/transactional/cashless/MC_PAIN.xml new file mode 100644 index 0000000..4d7b406 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/MC_PAIN.xml @@ -0,0 +1,72 @@ + + + + + MCSPAC#YYMMDD#16RHYAJRBCLX + #DATETIME# + 1 + #AMOUNT1# + + CASHPOOL s.r.o blabla + + + + 1101406OJ6FA02H0 + TRF + true + 1 + #AMOUNT1# + + + SEPA + + + #YYYY-MM-DD# + + CASHPOOL s.r.o blabla + + CZ + ulice 2 + Praha + + + + + #IBAN# + + EUR + + + + AGBACZPP + + + SLEV + + + MCSPAC#YYMMDD#7HA20YN2BN8Y + E2ESPAC#YYMMDD#LCJJDR5FR5DA + + + #AMOUNT1# + + + + + NOTPROVIDED + + + + + Karl von Bahnhoff + + + + DE89370400440532013000 + + + + + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/MT101.out b/tests/src/test/resources/regression/transactional/cashless/MT101.out new file mode 100644 index 0000000..b970e8d --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/MT101.out @@ -0,0 +1,19 @@ +{1:F21AGBACZPPAXXX2342361180}{4:{177:2203041459}{451:0}}{1:F01AGBACZPPAXXX2342361180}{2:O1010859220304CHASUS33KVSE09949633872203041459N}{4: +:20:CR-#RANDOM# +:28D:1/1 +:50H:/#IBAN# +MONETA MONEY BANK AS +Vyskocilova 1422/1a Praha 4 - Michl +e CZ 140 28 +:52A:AGBACZPP +:30:#YYMMDD# +:21:CR-#RANDOM# +:23E:URGP +:32B:CZK#AMOUNT# +:57A:CHASGB2L +:59:/GB48CHAS60924241046000 +VISA Europe +1 Sheldon Square, London, W2 6TT +GB +:71A:SHA +-}{5:{MAC:00000000}{CHK:DED0CA2440AF}}{S:{SAC:}{COP:S}{MDG:B9F3CD356212A90DD26F4070ADC063591C2057E63AF7FEBFE03D3BC5222FA5E2}} \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/MT103.out b/tests/src/test/resources/regression/transactional/cashless/MT103.out new file mode 100644 index 0000000..6c0fa1c --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/MT103.out @@ -0,0 +1,15 @@ +{1:F21AGBACZPPAXXX2615011503}{4:{177:2011090801}{451:0}}{1:F01AGBACZPPAXXX2615011503}{2:O1031739201106CHASUS33IXXX06941350662011090801N}{3:{108:S046278ICP110620}{111:001}{121:bdffd9af-97cd-42b1-99b2-74e868aed805}}{4: +:20:#MESSAGEID# +:23B:CRED +:32A:#YYMMDD#USD#AMOUNT# +:33B:USD#AMOUNT# +:50F:/410144999000USD +1/EVO PAYMENTS INTERNATIONAL GMBH +2/ELSA-BRAENDSTROEM-STR. 10-12 +3/DE/50668 KOELN +:52A:OJBAVNVXXXX +:59:/#IBAN# +FRANTA FLINTA +:70:MT103SERIAL +:71A:SHA +-}{5:{MAC:00000000}{CHK:2E8CA91528C1}{TNG:}{DLM:}}{S:{SAI:}{COP:P}{MDG:955D9EE72C23E67BC4DD4D30888E96D4978B63AEA372FEA7262EF5293846CF88}} \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/MT103_FOR_HD21.xml b/tests/src/test/resources/regression/transactional/cashless/MT103_FOR_HD21.xml new file mode 100644 index 0000000..2d9c725 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/MT103_FOR_HD21.xml @@ -0,0 +1,18 @@ +{1:F21AGBACZPPAXXX2123300952}{4:{177:2109291156}{451:0}}{1:F01AGBACZPPAXXX2123300952}{2:O1031156210929CEKOSKBXAXXX14310438442109291156N}{3:{108:000000688775330}{119:STP}{121:efb94276-f8a4-4f6e-8a26-bd6a66ccf4d4}}{4: +:20:300902#LASTFIELD# +:23B:CRED +:32A:#YYMMDD#CZK#AMOUNT# +:33B:CZK#AMOUNT# +:50K:/SK3875000000000025624143 +CARMEUSE SLOVAKIA, S.R.O. +ROZVOJOVA 2/B +04011 KOSICE +/SK/ +:53A:CEKOCZPP +:59:/#IBAN# +JAN PAYMENT +/CZ/ +:70:VS2101024 +:71A:SHA +:71F:CZK0, +-}{5:{MAC:00000000}{CHK:2DBCE9A3DFCF}}{S:{SAC:}{COP:S}{MDG:5D189BE317453D952C4AA100F28A77189D368ED7893A106818CE40B888FA03E5}} \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/MT103_OUR.xml b/tests/src/test/resources/regression/transactional/cashless/MT103_OUR.xml new file mode 100644 index 0000000..62195d7 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/MT103_OUR.xml @@ -0,0 +1,17 @@ +{1:F21AGBACZPPAXXX2123300952}{4:{177:2109291156}{451:0}}{1:F01AGBACZPPAXXX2123300952}{2:O1031156210929CEKOSKBXAXXX14310438442109291156N}{3:{108:000000688775330}{119:STP}{121:efb94276-f8a4-4f6e-8a26-bd6a66ccf4d4}}{4: +:20:300902#LASTFIELD# +:23B:CRED +:32A:#YYMMDD#CZK#AMOUNT# +:33B:CZK#AMOUNT# +:50K:/SK3875000000000025624143 +CARMEUSE SLOVAKIA, S.R.O. +ROZVOJOVA 2/B +04011 KOSICE +/SK/ +:53A:CEKOCZPP +:59:/#IBAN# +ADAMIKOVA PETRA +/CZ/ +:70:VS2101024 +:71A:OUR +-}{5:{MAC:00000000}{CHK:2DBCE9A3DFCF}}{S:{SAC:}{COP:S}{MDG:5D189BE317453D952C4AA100F28A77189D368ED7893A106818CE40B888FA03E5}} \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/MT103_WITH_COVER.out b/tests/src/test/resources/regression/transactional/cashless/MT103_WITH_COVER.out new file mode 100644 index 0000000..73c9c0b --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/MT103_WITH_COVER.out @@ -0,0 +1,23 @@ +{1:F21AGBACZPPAXXX2328355125}{4:{177:2202231217}{451:0}}{1:F01AGBACZPPAXXX2328355125}{2:O1031217220223KOMBCZPPAXXX10854350282202231217N}{3:{119:STP}{111:001}{121:fa2f7a85-cf62-4db5-9540-09591d97c302}}{4: +:20:#MESSAGEID# +:23B:CRED +:32A:#YYMMDD#USD#AMOUNT# +:33B:USD#AMOUNT# +:50K:/CZ8101000001079147090267 +GOPAY S.R.O. +PLANA 67 +PLANA +370 01 CZ +:52A:KOMBCZPPXXX +:53A:BOFAUS3NXXX +:54A:BKTRUS33XXX +:57A:AGBACZPPXXX +:59:/#IBAN# +FRANTA FLINTA +MLYNSKA 19/18 +SMRZICE +CZ +:70:MT103COVER +:71A:SHA +:71F:USD0, +-}{5:{MAC:00000000}{CHK:E5CD584A7E2F}}{S:{SAC:}{COP:S}{MDG:C08939B3C5233A459FB6AF4FD1A4CB101053AD76229957CDF64906753CAD2EBF}} \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/MT103_WITH_MT191.xml b/tests/src/test/resources/regression/transactional/cashless/MT103_WITH_MT191.xml new file mode 100644 index 0000000..363d1b2 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/MT103_WITH_MT191.xml @@ -0,0 +1,6 @@ +{1:F21AGBACZPPAXXX2111298004}{4:{177:#YYMMDD#0844}{451:0}}{1:F01AGBACZPPAXXX2111298004}{2:O1910843#YYMMDD#BACXCZPPAXXX8618410004#YYMMDD#0844N}{3:{108:2192006063401A00}{121:cc269d99-4062-40cb-a053-9605300a1c4e}}{4: +:20:IP00#YYMMDD#004626 +:21:#REF# +:32B:CZK#AMOUNT1# +:71B:/COMM/PSD REQUEST +-}{5:{MAC:00000000}{CHK:194FFC5E3343}}{S:{SAC:}{COP:S}{MDG:A55F3AAC5FCC47E09BCA03E27A2EFEE5EFA05254C41C1B0305F2B5CC68E73BA8}} \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/MT910_COVER.out b/tests/src/test/resources/regression/transactional/cashless/MT910_COVER.out new file mode 100644 index 0000000..a7abe9d --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/MT910_COVER.out @@ -0,0 +1,14 @@ +{1:F21AGBACZPPAXXX2330355309}{4:{177:2202240701}{451:0}}{1:F01AGBACZPPAXXX2330355309}{2:O9102140220223BKTRUS33HXXX06340355752202240701N}{3:{108:S058329ICP022422}}{4: +:20:#RANDOM# +:21:#MESSAGEID# +:25:04416556 +:13D:#YYMMDD#2139-0500 +:32A:#YYMMDD#USD#AMOUNT# +:52D:/006550153531 +KOMERCNI BANKA +INTERNATIONAL DIVISION +NA PRIKOPE 33 +11407 PRAHA 1, CZECH REPUBLIC +:56A://CP0959 +BOFAUS3NXXX +-}{5:{CHK:66CBC59F47DB}{DLM:}}{S:{COP:S}{MDG:9D0F07C1DAEA05BCB45823309DC9B053603F0F0C7F52C455F0A0650CBD384ED2}} \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/XCT_RETURN.xml b/tests/src/test/resources/regression/transactional/cashless/XCT_RETURN.xml new file mode 100644 index 0000000..6805687 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/XCT_RETURN.xml @@ -0,0 +1,20 @@ +{1:F21AGBACZPPAXXX3402693898}{4:{177:#YYMMDD#1347}{451:0}}{1:F01AGBACZPPAXXX3402693898}{2:O1031347240405BBRUBEBBB0105666514167#YYMMDD#1347N}{3:{108:IRM0004675545411}{111:001}{121:147da919-ddd9-441f-a063-112a3e0a91d6}}{4: +:20:H0140#RANDOM# +:23B:CRED +:32A:#YYMMDD#USD#AMOUNT# +:33B:USD#AMOUNT1# +:50F:/801380023838 +1/TEST SA/NV +2/Avenue Marnixlaan 2 +3/BE/1000 Brussels +:59:/#IBAN# +Test Zeta +Hostětín 35 +683 52 Krenovice -Hoste +CZ +:71A:SHA +:71F:GBP30,02 +:72:/RETN/59 +/BE01/ +/MREF/#REF# +-}{5:{MAC:00000000}{CHK:6F50429CA86F}}{S:{SAC:}{COP:S}{MDG:3F1CE0E47DF4D6FE89FA63C931C096B10B2C18EFE01041E42E626E3C6F1A4746}} \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/sepa.xml b/tests/src/test/resources/regression/transactional/cashless/sepa.xml new file mode 100644 index 0000000..7af91a5 --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/sepa.xml @@ -0,0 +1,175 @@ + + + + EBAPFRPA + AGBACZPP + SCT + T + SCF + #REF# + ALL + #YYYY-MM-DD# + 01 + + + #MESSAGEID# + #DATETIME# + 2 + #AMOUNT# + #YYYY-MM-DD# + + CLRG + + ST2 + + + + + VDSPBE91XXX + + + + + + HARR8015531901 + HARN#RANDOM# + #RANDOM# + + + + SEPA + + + SCT + + + CPCD + + + #AMOUNT# + SLEV + + + VDSPBE91XXX + + + + CARLOS SAINZ + + + AAAAAAAA + + + + + CARLOS SAINZ + + Dbtr_dept + Dbtr_SubDept + Dbtr_StrtNm + 43 + Dbtr_BldgNm + 3 + 222 + Dbtr_Room + 99988 + Dbtr_TwnNm + Dbtr_TwnLctnNm + Dbtr_DstrctNm + Dbtr_CtrySubDvsn + IT + VIA RESEGA 21 28021 BORGOMANERO NO + Dbtr_Adrline1 + + + + 22222222222222222222 + + + + + + IT36Y0100545220000000001120 + + + + AABD + + DbtrAcct_Prxy_Id + + + + + BNLIITRRXXX + + + + + AGBACZPP + + + + FRANTA FLINTA + + Cdtr_dept + Cdtr_SubDept + Cdtr_StrtNm + 43 + Cdtr_BldgNm + 3 + 222 + Cdtr_Room + 99988 + Cdtr_TwnNm + Cdtr_TwnLctnNm + Cdtr_DstrctNm + Cdtr_CtrySubDvsn + UK + Cdtr_Adrline1 + Cdtr_Adrline1 + + + + + 1967-08-13 + PrvtId_Province + PrvtId_City + CZ + + + + + + + CZ0806000000000215864447 + + + + XXVV + + CdtrAcct_Prxy_Id + + + + Jan Samuel Novák + + + + 1967-08-13 + Province + City + CZ + + + + + + PURK + + + TEST_SEPA_HARNESS + + + + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/sepaPPE.xml b/tests/src/test/resources/regression/transactional/cashless/sepaPPE.xml new file mode 100644 index 0000000..9e4861e --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/sepaPPE.xml @@ -0,0 +1,174 @@ + + + + EBAPFRPA + AGBACZPP + SCT + T + SCF + #REF# + ALL + #YYYY-MM-DD# + 01 + + + #MESSAGEID# + #DATETIME# + 2 + #AMOUNT# + #YYYY-MM-DD# + + CLRG + + ST2 + + + + + VDSPBE91XXX + + + + + + HARR8015531901 + HARN628536 + #RANDOM# + + + + SEPA + + + SCT + + + CPCD + + + #AMOUNT# + SLEV + + + VDSPBE91XXX + + + + CARLOS SAINZ + + + AAAAAAAA + + + + + CARLOS SAINZ + + Dbtr_dept + Dbtr_SubDept + Dbtr_StrtNm + 43 + Dbtr_BldgNm + 3 + 222 + Dbtr_Room + 99988 + Dbtr_TwnNm + Dbtr_TwnLctnNm + Dbtr_DstrctNm + Dbtr_CtrySubDvsn + IT + VIA RESEGA 21 28021 BORGOMANERO NO + Dbtr_Adrline1 + + + + 22222222222222222222 + + + + + + IT36Y0100545220000000001120 + + + + AABD + + DbtrAcct_Prxy_Id + + + + + BNLIITRRXXX + + + + + AGBACZPP + + + + FRANTA FLINTA + + Cdtr_dept + Cdtr_SubDept + Cdtr_StrtNm + 43 + Cdtr_BldgNm + 3 + 222 + Cdtr_Room + 99988 + Cdtr_TwnNm + Cdtr_TwnLctnNm + Cdtr_DstrctNm + Cdtr_CtrySubDvsn + UK + Cdtr_Adrline1 + Cdtr_Adrline1 + + + + + 1967-08-13 + PrvtId_Province + PrvtId_City + CZ + + + + + + + CZ6306000000000207030346 + + + + XXVV + + CdtrAcct_Prxy_Id + + + + Jan Samuel Novák + + + + 1967-08-13 + Province + City + CZ + + + + + + PURK + + + TEST_SEPA_HARNESS + + + + \ No newline at end of file diff --git a/tests/src/test/resources/regression/transactional/cashless/sepaPuvodni.xml b/tests/src/test/resources/regression/transactional/cashless/sepaPuvodni.xml new file mode 100644 index 0000000..2c6b8dc --- /dev/null +++ b/tests/src/test/resources/regression/transactional/cashless/sepaPuvodni.xml @@ -0,0 +1,79 @@ + + + NBSBSKB0SIP + AGBACZPP + SCT + T + SCF + #REF# + ALL + #YYYY-MM-DD# + 01 + + + #MESSAGEID# + #DATETIME# + 1 + #AMOUNT# + #YYYY-MM-DD# + + CLRG + + ST2 + + + + + AGBACZPP + + + + + + HARN#RANDOM# + #RANDOM# + + + + SEPA + + + #AMOUNT# + SLEV + + CARLOS SAINZ + + IT + VIA RESEGA 21 28021 BORGOMANERO NO + + + + + IT36Y0100545220000000001120 + + + + + BNLIITRRXXX + + + + + AGBACZPPXXX + + + + FRANTA FLINTA + + + + #IBAN# + + + + TEST_SEPA_HARNESS + + + + diff --git a/tests/src/test/resources/regression/ufo/DP.pdf b/tests/src/test/resources/regression/ufo/DP.pdf new file mode 100644 index 0000000..42c0ebd Binary files /dev/null and b/tests/src/test/resources/regression/ufo/DP.pdf differ diff --git a/tests/src/test/resources/regression/ufo/ID-card_CZ_2012.jpg b/tests/src/test/resources/regression/ufo/ID-card_CZ_2012.jpg new file mode 100644 index 0000000..d00e167 Binary files /dev/null and b/tests/src/test/resources/regression/ufo/ID-card_CZ_2012.jpg differ diff --git a/tests/src/test/resources/regression/ufo/ID-card_CZ_2012_b_chip.jpg b/tests/src/test/resources/regression/ufo/ID-card_CZ_2012_b_chip.jpg new file mode 100644 index 0000000..78d9799 Binary files /dev/null and b/tests/src/test/resources/regression/ufo/ID-card_CZ_2012_b_chip.jpg differ diff --git a/tests/src/test/resources/regression/ufo/ZL.jpg b/tests/src/test/resources/regression/ufo/ZL.jpg new file mode 100644 index 0000000..7c45b3e Binary files /dev/null and b/tests/src/test/resources/regression/ufo/ZL.jpg differ diff --git a/tests/src/test/resources/regression/ufo/cb/Doc.doc b/tests/src/test/resources/regression/ufo/cb/Doc.doc new file mode 100644 index 0000000..1cad564 Binary files /dev/null and b/tests/src/test/resources/regression/ufo/cb/Doc.doc differ diff --git a/tests/src/test/resources/regression/ufo/cb/Jpg.jpg b/tests/src/test/resources/regression/ufo/cb/Jpg.jpg new file mode 100644 index 0000000..292c8ad Binary files /dev/null and b/tests/src/test/resources/regression/ufo/cb/Jpg.jpg differ diff --git a/tests/src/test/resources/regression/ufo/cb/ListOfClientsForCreatingFinancialSheetIco_SME.txt b/tests/src/test/resources/regression/ufo/cb/ListOfClientsForCreatingFinancialSheetIco_SME.txt new file mode 100644 index 0000000..f8248b4 --- /dev/null +++ b/tests/src/test/resources/regression/ufo/cb/ListOfClientsForCreatingFinancialSheetIco_SME.txt @@ -0,0 +1 @@ +25043307 \ No newline at end of file diff --git a/tests/src/test/resources/regression/ufo/cb/ListOfClientsIco_SME.txt b/tests/src/test/resources/regression/ufo/cb/ListOfClientsIco_SME.txt new file mode 100644 index 0000000..165576f --- /dev/null +++ b/tests/src/test/resources/regression/ufo/cb/ListOfClientsIco_SME.txt @@ -0,0 +1,10 @@ +64876373 +69418284 +67136796 +66985421 +67140335 +27101835 +25648756 +47217588 +62065424 +49810120 \ No newline at end of file diff --git a/tests/src/test/resources/regression/ufo/cb/Msg.msg b/tests/src/test/resources/regression/ufo/cb/Msg.msg new file mode 100644 index 0000000..da544be Binary files /dev/null and b/tests/src/test/resources/regression/ufo/cb/Msg.msg differ diff --git a/tests/src/test/resources/regression/ufo/cb/Pdf.pdf b/tests/src/test/resources/regression/ufo/cb/Pdf.pdf new file mode 100644 index 0000000..5f89d88 --- /dev/null +++ b/tests/src/test/resources/regression/ufo/cb/Pdf.pdf @@ -0,0 +1,1117 @@ +%PDF-1.1 +1 0 obj +<< +/Creator (Developer 2000) +/CreatorDate (Thu Nov 04 11:27:15 AM 2004) +/Author (Oracle Reports) +/Producer (Oracle PDF driver) +/Title (1010353020.PDF) +>> +endobj +3 0 obj +<< +/Type /Pages +/Kids 4 0 R +/Count 5 0 R +>> +endobj +7 0 obj +<> +stream +0.00 w +0 J +0 j +6.00 784.00 m 552.00 784.00 l S +BT +186.00 809.72 TD +/F0 12.00 Tf +(Informace o prbhu zen) Tj +ET +5.40 39.24 m 554.40 39.24 l S +BT +5.44 31.92 TD +/F1 8.00 Tf +(Vyhotovil:) Tj +201.60 0.60 TD +(esk ad zemmick a katastrln - SCD) Tj +273.64 -0.64 TD +(04.11.2004 11:27) Tj +-419.44 0.28 TD +(VPUSER) Tj +206.84 -8.08 TD +(strana ) Tj +(1) Tj +(/) Tj +(2) Tj +-207.64 745.72 TD +/F0 9.00 Tf +(V-3491/2004-704) Tj +-57.60 0.00 TD +/F2 9.00 Tf +(slo zen) Tj +50.68 -12.60 TD +/F0 9.00 Tf +(Katastrln ad pro Jihomoravsk kraj, Katastrln pracovit Beclav) Tj +-50.68 0.00 TD +/F2 9.00 Tf +(Pracovit) Tj +36.44 -22.36 TD +/F0 9.00 Tf +(Vklad) Tj +-36.44 0.00 TD +/F2 9.00 Tf +(Nzev) Tj +30.60 -12.60 TD +/F0 9.00 Tf +(Zaplombovno) Tj +-30.60 0.00 TD +/F2 9.00 Tf +(Stav) Tj +79.20 -12.60 TD +/F0 9.00 Tf +(02.11.2004) Tj +-79.20 0.00 TD +/F2 9.00 Tf +(Datum vytvoen) Tj +45.00 -12.60 TD +/F0 9.00 Tf +(500) Tj +-45.00 0.00 TD +/F2 9.00 Tf +(Kolek) Tj +39.60 -12.60 TD +/F0 9.00 Tf +(Zemnkov) Tj +-39.60 0.00 TD +/F2 9.00 Tf +(Popis) Tj +0.00 -110.00 TD +/F0 9.00 Tf +(GE Capital Bank, a.s.) Tj +0.00 -28.32 TD +(Ing. Kupsk Zdenk) Tj +0.00 40.92 TD +/F2 9.00 Tf +(Nzev astnka) Tj +162.00 -12.60 TD +/F0 9.00 Tf +(25672720) Tj +0.00 -28.32 TD +(541019) Tj +0.00 40.92 TD +/F2 9.00 Tf +(Identifikace) Tj +68.40 -12.60 TD +/F0 9.00 Tf +(Vyskoilova 1422/1a, Praha - Michle,) Tj +0.00 -14.16 TD +(140 28) Tj +0.00 -14.16 TD +(Vilov 659, 691 42 Valtice) Tj +0.00 40.92 TD +/F2 9.00 Tf +(Adresa) Tj +8.16 11.88 TD +/F0 10.00 Tf +(astnci zen) Tj +152.04 -24.48 TD +/F0 9.00 Tf +(Zstavn vitel) Tj +0.00 -28.32 TD +(Zstavce) Tj +0.00 40.92 TD +/F2 9.00 Tf +(Typy astnka) Tj +-390.60 -93.64 TD +/F0 9.00 Tf +(Zstavn prvo) Tj +0.00 12.60 TD +/F2 9.00 Tf +(Nzev) Tj +236.20 11.88 TD +/F0 10.00 Tf +(Pedmt zen) Tj +-236.20 -75.00 TD +/F0 9.00 Tf +(776688 valy u Valtic) Tj +0.00 12.60 TD +/F2 9.00 Tf +(Nzev) Tj +233.56 11.88 TD +/F0 10.00 Tf +(Katastrln zem) Tj +-233.56 -89.48 TD +/F0 9.00 Tf +( 539/13 valy u Valtic) Tj +0.00 -12.64 TD +( 540/25 valy u Valtic) Tj +0.00 -12.60 TD +( 548/15 valy u Valtic) Tj +0.00 -12.60 TD +( 548/18 valy u Valtic) Tj +0.00 -12.60 TD +( 548/26 valy u Valtic) Tj +0.00 -12.60 TD +( 556/21 valy u Valtic) Tj +0.00 -12.60 TD +( 556/22 valy u Valtic) Tj +0.00 -12.60 TD +( 556/42 valy u Valtic) Tj +0.00 -12.60 TD +( 628/27 valy u Valtic) Tj +0.00 -12.60 TD +(GP 355 valy u Valtic) Tj +0.00 -12.60 TD +(GP 357 valy u Valtic) Tj +0.00 -12.60 TD +(GP 379 valy u Valtic) Tj +0.00 -12.60 TD +(GP 383 valy u Valtic) Tj +0.00 -12.64 TD +(GP 385 valy u Valtic) Tj +0.00 -12.60 TD +(GP 396 valy u Valtic) Tj +0.00 -12.60 TD +(GP 413 valy u Valtic) Tj +0.00 -12.60 TD +(GP 414 valy u Valtic) Tj +0.00 -12.60 TD +(GP 481 valy u Valtic) Tj +0.00 -12.60 TD +(GP 486 valy u Valtic) Tj +0.00 -12.60 TD +(GP 531 valy u Valtic) Tj +0.00 -12.60 TD +(GP 533 valy u Valtic) Tj +0.00 -12.60 TD +(GP 544 valy u Valtic) Tj +0.00 -12.60 TD +(GP 558 valy u Valtic) Tj +0.00 -12.60 TD +(GP 559 valy u Valtic) Tj +0.00 -12.64 TD +(GP 617 valy u Valtic) Tj +0.00 -12.60 TD +(GP 665 valy u Valtic) Tj +0.00 -12.60 TD +(GP 667 valy u Valtic) Tj +0.00 351.08 TD +/F2 9.00 Tf +(Parcela) Tj +175.48 -23.36 TD +/F0 9.00 Tf +() Tj +0.00 -12.64 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.64 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.64 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +-5.40 351.08 TD +/F2 9.00 Tf +(Dl) Tj +15.32 -23.36 TD +/F0 9.00 Tf +(PKN) Tj +0.00 -12.64 TD +(PKN) Tj +0.00 -12.60 TD +(PKN) Tj +0.00 -12.60 TD +(PKN) Tj +0.00 -12.60 TD +(PKN) Tj +0.00 -12.60 TD +(PKN) Tj +0.00 -12.60 TD +(PKN) Tj +0.00 -12.60 TD +(PKN) Tj +0.00 -12.60 TD +(PKN) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.64 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.64 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 351.08 TD +/F2 9.00 Tf +(Typ parcely) Tj +86.40 -23.36 TD +/F0 9.00 Tf +() Tj +0.00 -12.64 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.64 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.64 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 351.08 TD +/F2 9.00 Tf +(Zdroj) Tj +25.20 -23.36 TD +/F0 9.00 Tf +() Tj +0.00 -12.64 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.64 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.64 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 351.08 TD +/F2 9.00 Tf +(Pv.k..) Tj +-80.72 11.92 TD +/F0 10.00 Tf +(Objekty zen - parcely) Tj +-158.08 254.48 TD +/F0 9.00 Tf +(U_EDITACE_V) Tj +-58.20 0.00 TD +/F2 9.00 Tf +(Piazeno:) Tj +0.80 -14.24 TD +(Datum podn:) Tj +73.16 0.00 TD +/F0 9.00 Tf +(01-LIS-04) Tj +ET +endstream +endobj +8 0 obj +6064 +endobj +9 0 obj +<> +endobj +10 0 obj +[460 460 460 460 460 460 460 460 460 320 +460 540 540 880 720 220 320 320 380 580 +260 320 260 260 540 540 540 540 540 540 +540 540 540 540 320 320 580 580 580 600 +960 720 720 720 720 660 600 760 720 260 +540 720 600 820 720 760 660 760 720 660 +600 720 660 940 660 660 600 320 260 320 +580 540 320 540 600 540 600 540 320 600 +600 260 260 540 260 880 600 600 600 600 +380 540 320 600 540 760 540 540 500 380 +260 380 580 700 460 460 260 460 500 1000 +540 540 460 1000 660 320 660 600 600 600 +460 260 260 500 500 340 540 1000 460 1000 +540 320 540 460 500 500 460 320 320 600 +540 720 260 540 320 720 660 540 580 320 +720 600 380 540 320 260 320 560 540 260 +320 540 540 540 600 320 380 500 720 720 +720 720 720 600 720 720 720 660 660 660 +660 260 260 720 720 720 720 760 760 760 +760 580 720 720 720 720 720 660 600 600 +380 540 540 540 540 260 540 540 540 540 +540 540 540 260 260 700 600 600 600 600 +600 600 600 540 380 600 600 600 600 540 +320 320 ] +endobj +11 0 obj +<< +/Type /FontDescriptor +/FontName /ArialCE,Bold +/Ascent 720 +/CapHeight 520 +/Descent -200 +/Flags 32 +/FontBBox [0 0 0 0] +/ItalicAngle 0 +/StemV 0 +/AvgWidth 460 +/MaxWidth 1040 +>> +endobj +12 0 obj +<> +endobj +13 0 obj +[570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 570 570 570 570 570 570 570 570 +570 570 ] +endobj +14 0 obj +<< +/Type /FontDescriptor +/FontName /CourierNewCE +/Ascent 630 +/CapHeight 150 +/Descent -180 +/Flags 33 +/FontBBox [0 0 0 0] +/ItalicAngle 0 +/StemV 0 +/AvgWidth 570 +/MaxWidth 720 +>> +endobj +15 0 obj +<> +endobj +16 0 obj +[427 427 427 427 427 427 427 427 427 267 +347 533 533 880 667 187 320 320 373 560 +267 320 267 267 533 533 533 533 533 533 +533 533 533 533 267 267 560 560 560 533 +1013 667 667 720 720 667 587 773 720 267 +480 667 533 827 720 773 667 773 720 667 +587 720 667 933 667 667 587 267 267 267 +453 533 320 533 533 480 533 533 267 533 +533 213 213 480 213 827 533 533 533 533 +320 480 267 533 480 720 480 480 480 320 +240 320 560 693 427 427 213 427 320 987 +533 533 427 987 667 320 667 587 587 587 +427 213 213 320 320 347 533 987 427 987 +480 320 480 347 480 480 427 320 320 533 +533 667 240 533 320 720 667 533 560 320 +720 587 373 533 320 213 320 560 533 267 +320 533 480 533 533 320 267 480 720 667 +667 667 667 533 720 720 720 667 667 667 +667 267 267 720 720 720 720 773 773 773 +773 560 720 720 720 720 720 667 587 587 +320 533 533 533 533 213 480 480 480 533 +533 533 533 267 267 613 533 533 533 533 +533 533 533 533 320 533 533 533 533 480 +267 320 ] +endobj +17 0 obj +<< +/Type /FontDescriptor +/FontName /ArialCE,Italic +/Ascent 720 +/CapHeight 533 +/Descent -187 +/Flags 96 +/FontBBox [0 0 0 0] +/ItalicAngle 1 +/StemV 0 +/AvgWidth 427 +/MaxWidth 1067 +>> +endobj +6 0 obj +<< +/Type /Page +/MediaBox [0 0 595 822] +/Parent 3 0 R +/Resources <> >> +/Contents 7 0 R +/CropBox [0 0 595 822] +>> +endobj +19 0 obj +<> +stream +0.00 w +0 J +0 j +6.00 784.00 m 552.00 784.00 l S +BT +186.00 809.72 TD +/F0 12.00 Tf +(Informace o prbhu zen) Tj +ET +5.40 39.24 m 554.40 39.24 l S +BT +5.44 31.92 TD +/F1 8.00 Tf +(Vyhotovil:) Tj +201.60 0.60 TD +(esk ad zemmick a katastrln - SCD) Tj +273.64 -0.64 TD +(04.11.2004 11:27) Tj +-419.44 0.28 TD +(VPUSER) Tj +206.84 -8.08 TD +(strana ) Tj +(2) Tj +(/) Tj +(2) Tj +125.24 314.00 TD +/F0 9.00 Tf +() Tj +-227.28 -0.16 TD +(o zzen zstavnho prva) Tj +0.00 -14.12 TD +(podle ob.z.) Tj +-163.20 396.20 TD +(GP 694 valy u Valtic) Tj +0.00 -12.60 TD +(GP 703 valy u Valtic) Tj +0.00 -12.60 TD +(GP 732 valy u Valtic) Tj +0.00 -12.60 TD +(GP 745 valy u Valtic) Tj +0.00 -12.60 TD +(GP 751 valy u Valtic) Tj +0.00 -12.64 TD +(GP 758 valy u Valtic) Tj +0.00 -12.60 TD +(GP 759 valy u Valtic) Tj +0.00 -12.60 TD +(GP 760 valy u Valtic) Tj +0.00 -12.60 TD +(GP 768 valy u Valtic) Tj +0.00 -12.60 TD +(GP 771 valy u Valtic) Tj +0.00 -12.60 TD +(GP 773 valy u Valtic) Tj +0.00 -12.60 TD +(GP 776 valy u Valtic) Tj +0.00 -12.60 TD +(GP 783 valy u Valtic) Tj +0.00 -12.60 TD +(GP 788 valy u Valtic) Tj +0.00 -12.60 TD +(GP 792 valy u Valtic) Tj +0.00 -12.60 TD +(GP 807 valy u Valtic) Tj +0.00 -12.64 TD +(GP 809 valy u Valtic) Tj +0.00 -12.60 TD +(GP 815 valy u Valtic) Tj +0.00 -12.60 TD +(GP 919 valy u Valtic) Tj +0.00 -12.60 TD +(GP 931 valy u Valtic) Tj +0.00 -12.60 TD +(GP 945 valy u Valtic) Tj +0.00 -12.60 TD +(GP 955 valy u Valtic) Tj +0.00 -12.60 TD +(GP 960 valy u Valtic) Tj +0.00 -12.60 TD +(GP 986 valy u Valtic) Tj +0.00 -12.60 TD +(GP 991 valy u Valtic) Tj +0.00 -12.60 TD +(GP 997 valy u Valtic) Tj +0.00 -12.60 TD +(GP 1016 valy u Valtic) Tj +0.00 351.08 TD +/F2 9.00 Tf +(Parcela) Tj +175.48 -23.40 TD +/F0 9.00 Tf +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.64 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.64 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +-5.40 351.08 TD +/F2 9.00 Tf +(Dl) Tj +15.32 -23.40 TD +/F0 9.00 Tf +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.64 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.64 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 -12.60 TD +(PZE) Tj +0.00 351.08 TD +/F2 9.00 Tf +(Typ parcely) Tj +86.40 -23.40 TD +/F0 9.00 Tf +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.64 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.64 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 -12.60 TD +(GP) Tj +0.00 351.08 TD +/F2 9.00 Tf +(Zdroj) Tj +25.20 -23.40 TD +/F0 9.00 Tf +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.64 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.64 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.60 TD +() Tj +0.00 351.08 TD +/F2 9.00 Tf +(Pv.k..) Tj +-80.72 11.88 TD +/F0 10.00 Tf +(Objekty zen - parcely) Tj +-215.52 -417.36 TD +/F0 9.00 Tf +(Smlouva) Tj +-0.76 14.12 TD +/F2 9.00 Tf +(Nzev) Tj +392.04 0.16 TD +(Popis) Tj +-156.84 11.72 TD +/F0 10.00 Tf +(Piazen listiny) Tj +-235.20 -129.00 TD +/F0 9.00 Tf +(1) Tj +0.00 -12.60 TD +(2) Tj +0.00 -12.56 TD +(43) Tj +0.00 37.76 TD +/F2 9.00 Tf +(Typ) Tj +41.40 -12.60 TD +/F0 9.00 Tf +(Zaloen zen) Tj +0.00 -12.60 TD +(Zaplombovn) Tj +0.00 -12.56 TD +(Pedn ke zpracovn) Tj +0.00 37.76 TD +/F2 9.00 Tf +(Nzev) Tj +102.60 -12.60 TD +/F0 9.00 Tf +() Tj +0.00 -12.60 TD +() Tj +0.00 -12.56 TD +() Tj +0.00 37.76 TD +/F2 9.00 Tf +(Text) Tj +166.48 -12.60 TD +/F0 9.00 Tf +(02.11.2004) Tj +0.00 -12.60 TD +(02.11.2004) Tj +0.00 -12.56 TD +(02.11.2004) Tj +0.00 37.76 TD +/F2 9.00 Tf +(Datum) Tj +88.64 -12.60 TD +/F0 9.00 Tf +(02.11.2004) Tj +0.00 -12.60 TD +(02.11.2004) Tj +0.00 -12.56 TD +(02.11.2004) Tj +0.00 37.76 TD +/F2 9.00 Tf +(Ukoneno) Tj +-192.92 11.88 TD +/F0 10.00 Tf +(Seznam vkonnch operac) Tj +-206.20 -102.40 TD +/F0 9.00 Tf +(532) Tj +0.00 12.60 TD +/F2 9.00 Tf +(Kd) Tj +41.40 -12.60 TD +/F0 9.00 Tf +(astnk byl automaticky) Tj +0.00 -14.16 TD +(oven proti CRO) Tj +0.00 26.76 TD +/F2 9.00 Tf +(Nzev) Tj +135.00 -12.60 TD +/F0 9.00 Tf +(Ing. Kupsk Zdenk, 541019/0830) Tj +0.00 12.60 TD +/F2 9.00 Tf +(Text) Tj +222.84 -12.60 TD +/F0 9.00 Tf +(02.11.2004) Tj +0.00 12.60 TD +/F2 9.00 Tf +(Datum) Tj +-196.32 11.88 TD +/F0 10.00 Tf +(Seznam operac typu udlost) Tj +-37.80 170.56 TD +/F2 9.00 Tf +(Dal daje) Tj +-156.24 -45.96 TD +(Vyhotovitel listiny) Tj +0.84 -13.72 TD +(Listina ze dne) Tj +382.28 -0.76 TD +(Nabyt prvn moci) Tj +-301.64 15.00 TD +/F0 9.00 Tf +() Tj +0.08 -13.52 TD +(26-J-04) Tj +387.76 0.00 TD +() Tj +ET +endstream +endobj +20 0 obj +6083 +endobj +18 0 obj +<< +/Type /Page +/MediaBox [0 0 595 822] +/Parent 3 0 R +/Resources <> >> +/Contents 19 0 R +/CropBox [0 0 595 822] +>> +endobj +2 0 obj +<< +/Type /Catalog +/Pages 3 0 R +>> +endobj +4 0 obj +[ 6 0 R 18 0 R ] +endobj +5 0 obj +2 +endobj +xref +0 21 +0000000000 65535 f +0000000009 00000 n +0000016938 00000 n +0000000178 00000 n +0000016987 00000 n +0000017019 00000 n +0000010392 00000 n +0000000237 00000 n +0000006351 00000 n +0000006371 00000 n +0000006546 00000 n +0000007520 00000 n +0000007712 00000 n +0000007888 00000 n +0000008858 00000 n +0000009049 00000 n +0000009227 00000 n +0000010198 00000 n +0000016742 00000 n +0000010586 00000 n +0000016721 00000 n +trailer +<< +/Size 21 +/Root 2 0 R +/Info 1 0 R +>> +startxref +17036 +%%EOF \ No newline at end of file diff --git a/tests/src/test/resources/regression/ufo/cb/TEST_FILE_UPLOAD.pdf b/tests/src/test/resources/regression/ufo/cb/TEST_FILE_UPLOAD.pdf new file mode 100644 index 0000000..88b2c7a Binary files /dev/null and b/tests/src/test/resources/regression/ufo/cb/TEST_FILE_UPLOAD.pdf differ diff --git a/tests/src/test/resources/regression/ufo/cb/Tiff.tif b/tests/src/test/resources/regression/ufo/cb/Tiff.tif new file mode 100644 index 0000000..7d10751 Binary files /dev/null and b/tests/src/test/resources/regression/ufo/cb/Tiff.tif differ diff --git a/tests/src/test/resources/regression/ufo/cb/Xls.xls b/tests/src/test/resources/regression/ufo/cb/Xls.xls new file mode 100644 index 0000000..0c6eb78 Binary files /dev/null and b/tests/src/test/resources/regression/ufo/cb/Xls.xls differ diff --git a/tests/src/test/resources/regression/ufo/task_document.pdf b/tests/src/test/resources/regression/ufo/task_document.pdf new file mode 100644 index 0000000..ee14aeb Binary files /dev/null and b/tests/src/test/resources/regression/ufo/task_document.pdf differ diff --git a/tests/src/test/resources/regression/ufo/vypis_RES.pdf b/tests/src/test/resources/regression/ufo/vypis_RES.pdf new file mode 100644 index 0000000..26c9c34 Binary files /dev/null and b/tests/src/test/resources/regression/ufo/vypis_RES.pdf differ diff --git a/tests/src/test/resources/sandbox/csv_file_source_example.csv b/tests/src/test/resources/sandbox/csv_file_source_example.csv new file mode 100644 index 0000000..5aebef7 --- /dev/null +++ b/tests/src/test/resources/sandbox/csv_file_source_example.csv @@ -0,0 +1,4 @@ +Colum1_Name;Column2_Name;Column3_Name +Column1_Row1;Column2_Row1;Column3_Row1 +Column1_Row2;Column2_Row2;Column3_Row2 +Column1_Row3;Column2_Row3;Column3_Row3 diff --git a/tests/src/test/resources/system/wso2/dummy_request_from_file_tst1.json b/tests/src/test/resources/system/wso2/dummy_request_from_file_tst1.json new file mode 100644 index 0000000..b016039 --- /dev/null +++ b/tests/src/test/resources/system/wso2/dummy_request_from_file_tst1.json @@ -0,0 +1,9 @@ +{ + "BUSINESS" : "GEM", + "PURPOSE" : "1", + "RS_1" : [ + { + "UNI_PT_KEY_IN" : "78254460180" + } + ] +} \ No newline at end of file diff --git a/tests/src/test/resources/system/wso2/dummy_request_from_template.json b/tests/src/test/resources/system/wso2/dummy_request_from_template.json new file mode 100644 index 0000000..92df8b2 --- /dev/null +++ b/tests/src/test/resources/system/wso2/dummy_request_from_template.json @@ -0,0 +1,9 @@ +{ + "BUSINESS" : "GEM", + "PURPOSE" : "1", + "RS_1" : [ + { + "UNI_PT_KEY_IN" : "" + } + ] +} \ No newline at end of file diff --git a/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/MWFAO2.json b/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/MWFAO2.json new file mode 100644 index 0000000..8df8d05 --- /dev/null +++ b/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/MWFAO2.json @@ -0,0 +1,25 @@ +{ + "TelPredvolba": null, + "CIF": , + "PSC": "28002", + "TypUctu": "2", + "Email": null, + "Jmeno": , + "Titul": null, + "Zeme": "Česká republika", + "MobilPredvolba": null, + "ObchodniMistoKod": "86007040", + "UcetPoplatku": , + "Prijmeni": , + "BITSFlag": null, + "Mobil": null, + "OsobniCislo": , + "ADCKlient": null, + "Ulice": "Pražská 121", + "Obec": "Kolín", + "TypKlienta": "1", + "Posta": "Kolín 2", + "ZkraceneJmeno": "", + "Telefon": "+420775134961", + "Adresat": +} \ No newline at end of file diff --git a/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/MWFEQ5.json b/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/MWFEQ5.json new file mode 100644 index 0000000..7d1b753 --- /dev/null +++ b/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/MWFEQ5.json @@ -0,0 +1,6 @@ +{ + "INBANK": 1, + "INCNBR": , + "INCURSOR": 1, + "INROWS": 999999 +} \ No newline at end of file diff --git a/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/crt_pr_sdeleni.json b/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/crt_pr_sdeleni.json new file mode 100644 index 0000000..b352f2b --- /dev/null +++ b/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/crt_pr_sdeleni.json @@ -0,0 +1,6 @@ +{ + "IDPRODEJCE": 2620, + "OBCHOD": , + "TEXT": , + "TYP": 0 +} \ No newline at end of file diff --git a/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/get_em_ib_loginname.json b/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/get_em_ib_loginname.json new file mode 100644 index 0000000..5dc3880 --- /dev/null +++ b/tests/src/test/resources/system/wso2/mortgages_cluster/createInternetBankApis/get_em_ib_loginname.json @@ -0,0 +1,7 @@ +{ + "CIF": , + "ENTITY_ID": null, + "CONTEXT_ID": null, + "TIMESTAMP": null, + "USERID": null +} \ No newline at end of file diff --git a/tests/src/test/resources/video/liveness.mp4 b/tests/src/test/resources/video/liveness.mp4 new file mode 100644 index 0000000..8cf040d Binary files /dev/null and b/tests/src/test/resources/video/liveness.mp4 differ diff --git a/tests/src/test/resources/video/liveness1.mp4 b/tests/src/test/resources/video/liveness1.mp4 new file mode 100644 index 0000000..c18b097 Binary files /dev/null and b/tests/src/test/resources/video/liveness1.mp4 differ